diff --git a/.claude/skills/orca-translations/SKILL.md b/.claude/skills/orca-translations/SKILL.md
new file mode 100644
index 0000000000..ea2932fb27
--- /dev/null
+++ b/.claude/skills/orca-translations/SKILL.md
@@ -0,0 +1,220 @@
+---
+name: orca-translations
+description: Use when updating, filling, reviewing or fixing OrcaSlicer translations in localization/i18n — running scripts/run_gettext --full, translating empty or new msgids in the .po catalogs, AI translation passes and their "# AI Translated" / "# Needs human review" comments, plural forms, msgctxt homonyms, and keeping catalogs consistent with the localization glossary (OrcaSlicer_WIKI localization_glossary.tsv), including adding new glossary terms. Also use for msgfmt or run_gettext failures, placeholder or line-break mismatches, and reviewing a translation PR against the glossary.
+---
+
+# OrcaSlicer translations
+
+The UI strings live in gettext catalogs: `localization/i18n/OrcaSlicer.pot` is the template, and
+`localization/i18n//OrcaSlicer_.po` holds each language. The `en` catalog is empty on
+purpose, so skip it. Recurring terms are fixed by the
+[localization glossary](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/developer_reference/localization_glossary.md),
+whose source is `developer_reference/localization_glossary.tsv` in the **OrcaSlicer_WIKI** repository.
+A translation pass therefore touches two repositories: the catalogs here, and the glossary there.
+
+All catalog editing goes through [`scripts/po_tool.py`](scripts/po_tool.py) (standard library only).
+It lists empty entries with the glossary terms they contain and validates each translation. It writes
+only the entries it changes, in the layout `msgmerge --no-wrap` produces, and adds the AI comments.
+Run commands from the repository root, with `python3` (`python` or `py -3` on Windows):
+
+```bash
+T=.claude/skills/orca-translations/scripts/po_tool.py
+python3 $T --help
+```
+
+Read [translation-rules.md](references/translation-rules.md) before translating. It holds the
+mechanical rules, how to pick words, style, and when to flag an entry for review. To find hard-coded
+English, strings that need a plural form or a context, or files missing from the extraction list, read
+[source-audit.md](references/source-audit.md); that work changes C++ and comes before a translation pass.
+
+## Workflow: fill every empty translation
+
+Unless the user asks for something narrower, a translation pass means the steps below, in order.
+
+### 1. Find the glossary
+
+The tool looks for an `OrcaSlicer_WIKI` clone in `--wiki`, then `$ORCA_WIKI_DIR`, then next to this
+repository.
+- **A clone is found:** `git -C fetch` and make sure it is on an up-to-date `main`. The tool
+ notes when it reads another branch, or a clone that is behind.
+- **No clone:** the tool reads the published glossary read-only. That is enough to translate, but not
+ to add terms (see step 3).
+
+### 2. Run the full gettext
+
+This comes first, always. It regenerates the template from the sources and merges it into every
+catalog:
+
+```bash
+./scripts/run_gettext.sh --full # Linux/macOS: needs gettext and python3 on PATH
+scripts\run_gettext.bat --full # Windows (PowerShell: & .\scripts\run_gettext.bat --full)
+```
+
+It must exit 0. New msgids arrive empty, and removed ones become obsolete `#~` entries. A msgid that
+comes back gets its old translation revived from `#~`, which is one reason never to purge obsolete
+entries. It also compiles the `.mo` files (gitignored). The bundled Windows gettext may re-wrap a long
+`#:` reference line. That churn is harmless.
+
+Then take stock: `python3 $T status`.
+
+### 3. Settle new glossary terms before translating anything
+
+Terms are decided once, for every language, so all the catalogs agree.
+
+1. `python3 $T candidates` lists recurring phrases in the empty entries that the glossary lacks. Read it
+ together with the new msgids themselves.
+2. Pick the real terms: feature and mode names, labels that tooltips repeat, and anything translators
+ would otherwise render in several ways.
+3. Brand names and acronyms belong in the glossary page's hand-written *Kept in English* table instead.
+4. Skip ordinary words.
+5. For each term, choose a rendering per language: check `lookup` for existing usage, and follow each
+ language's conventions. Then record it:
+
+ ```bash
+ python3 $T glossary-set --term "Belt printer" \
+ --description "One sentence saying what it is, and what it is not." \
+ --set de=... --set es=... --set pt_BR=...
+ ```
+
+ The command adds or updates the row, keeps the TSV's BOM and line endings, and regenerates the page.
+ - **An established cell:** it refuses to change it without `--replace`. Changing an established term
+ also means fixing every catalog entry that uses it, so do that only on request.
+ - **An empty cell:** fill it the same way when a pending string establishes the term for that
+ language.
+
+**No clone, and a new term is needed: stop.** Tell the user the glossary must be updated with these
+terms, and list each one with its description and proposed renderings (`glossary-set` prints them too).
+Ask them to clone `https://github.com/OrcaSlicer/OrcaSlicer_WIKI` next to this repository, or to give
+its path. Translate nothing that uses those terms until they answer.
+
+### 4. Translate, language by language, in batches
+
+For each language:
+
+1. Read its glossary column and notes once: `python3 $T glossary --lang `.
+2. Loop over the empty entries:
+
+ ```bash
+ python3 $T pending --lang --limit 60 --out /.json
+ # write /-tr.json: [{"id": "...", "msgstr": "..."}, ...], "msgstr_plural" for plurals,
+ # plus "review": "" where unsure
+ python3 $T apply --lang --input /-tr.json
+ ```
+
+ - **Batch files go in a scratch directory, not the repository.**
+ - **Each entry's `id` identifies it,** so the translation file need not repeat the English. `apply`
+ also accepts `msgid` with `msgctxt`, or the pending file itself with its `msgstr` fields filled.
+ - **Translate every entry in the batch.** A blank `msgstr` is skipped, not cleared.
+ - **Next batch:** applied entries leave the list, so run `pending` again at offset 0. Use `--offset`
+ only to step past entries you deliberately leave blank.
+ - **What each entry carries:**
+ - `glossary`: the terms it contains, with the language's rendering.
+ - `note`: the developer's `TRN` comment.
+ - `flags`: `c-format` or `boost-format`.
+ - `description`: present when a sense has to be chosen.
+3. Read every apply message:
+ - **REJECTED:** a hard rule broke. Fix the translation and apply the corrected items again.
+ - **WARNING:** something worth a second look, such as a glossary rendering not found, ending
+ punctuation, or snake_case. A glossary warning on an inflected form you checked is fine.
+ Otherwise correct the translation (`apply --overwrite` replaces your own entry), or add a
+ `review` reason.
+
+`apply` adds `# AI Translated` to every entry it writes, and `# Needs human review: ` where an
+item has `review`. On an `--overwrite`, `"review": ""` removes an earlier note. Never add either to a translation a person wrote. `--human` is for applying their
+text.
+
+**The work is large:** every new string, times every language. When subagents are available, give each
+one a language or a few. Each agent only touches its own catalogs, so they can run
+in parallel. Settle step 3 first. Give each agent the language list, this skill's path, the rules file,
+and these instructions:
+- Fill every empty entry.
+- Don't add glossary rows.
+- Report what it could not translate, the review notes it added, and any term it thinks the glossary
+ still lacks.
+
+Add the terms they report yourself, then have the affected languages revisit the entries.
+
+### 5. Verify
+
+```bash
+python3 $T check --lang --warnings # every AI-translated entry, plus msgfmt --check-format
+```
+
+- **Run the full gettext again.** It must exit 0 and leave the catalogs as the pass left them.
+- **Run `python generate_glossary.py --check` in the wiki clone.**
+- **Errors on entries you didn't write predate the pass.** Report them rather than fixing them in the
+ same change.
+
+### 6. Report
+
+Report:
+- the entries filled, per language;
+- the review notes added;
+- anything left empty, and why;
+- the glossary rows added or filled.
+
+The catalogs (and `OrcaSlicer.pot`) and the glossary (`localization_glossary.tsv` and `.md`) are
+separate changes in separate repositories. The wiki change should land with, or before, the catalog
+change. Commit or open PRs only when asked.
+
+## Rules
+
+1. **Run the full gettext first.** Translate against the regenerated template, never a stale one.
+2. **The glossary is binding.** Use the language's rendering for each term, in the right sense. When a
+ rendering looks wrong, use it and flag the entry. Then raise the change with the user, rather than
+ deviating in one string.
+3. **New recurring terms go into the glossary before the translations that use them.** Without a wiki
+ clone, stop and tell the user (step 3).
+4. **Fill, don't rewrite.** A fill pass writes only empty and fuzzy entries.
+ - Existing translations, human or AI, change only on request (`--overwrite`).
+ - A glossary violation in a human translation is reported, not changed.
+5. **Machine output is labelled.** Every AI translation gets `# AI Translated`; uncertain ones also get
+ `# Needs human review: `. Never use `fuzzy`.
+6. **Never edit `msgid`, `msgctxt`, the header, or obsolete `#~` entries,** and never fix the English in
+ a translation. Report source problems (see the rules file).
+7. **Write catalogs only through `po_tool.py` or gettext.** PO libraries such as polib reflow unrelated
+ entries, and hand edits skip the validation.
+
+## Changing an established term
+
+A glossary cell is usually copied from the catalog's own label. When the label is wrong, the glossary
+inherits the mistake, so fix both in the same change:
+
+1. **Check the catalog's usage first.** `lookup --lang ""` searches the English, and with
+ `--msgstr` it searches the translations.
+ - When most entries already use the correct form, move the cell to it.
+ - When the wrong form is used consistently throughout, leave both as they are and ask a
+ translator.
+2. **Update the cell:** `glossary-set --term "" --replace --set =`.
+3. **Rewrite the entries that still use the old form,** only where the term has that meaning.
+ - Write `[{"id": "", "msgstr": ""}]` and run
+ `apply --overwrite`.
+ - The rewritten entries are marked `# AI Translated`.
+
+## Reviewing a translation change
+
+Review it for these:
+- glossary compliance (`check --scope all --warnings` on the language, then read the hits);
+- placeholders and line breaks (`check` errors);
+- `# AI Translated` kept on text a person rewrote, or added to text a person wrote;
+- purged obsolete entries;
+- reflowed unrelated entries;
+- plural forms short of `nplurals`.
+
+When a reviewer disputes a term, compare it with the glossary first. A machine translation that follows
+the glossary is correct even if the term itself is debatable. Then the fix is a glossary change, made
+with the translators, followed by the catalogs.
+
+## Source of truth
+
+When this skill and the checkouts disagree, the checkouts win:
+- `scripts/run_gettext.sh` / `.bat` for extraction and merging;
+- `localization/i18n/list.txt` for the scanned sources;
+- the wiki's `localization_guide.md` and `localization_glossary.md` / `.tsv` for the rules and terms;
+- `AGENTS.md` (Localization & translations) for the repository's conventions.
+
+## Editing this skill
+
+State rules and procedures, not the state of the catalogs: no counts, lists of untranslated strings or
+per-language defects. Language-specific terminology belongs in the glossary's *Language specifics*
+section, not here.
diff --git a/.claude/skills/orca-translations/references/source-audit.md b/.claude/skills/orca-translations/references/source-audit.md
new file mode 100644
index 0000000000..006a0b893f
--- /dev/null
+++ b/.claude/skills/orca-translations/references/source-audit.md
@@ -0,0 +1,64 @@
+# Auditing the source for translatable text
+
+Use this when asked to find hard-coded English, strings that need a context, or strings that need plural
+forms. It changes C++ and the `.pot`, so it runs before a translation pass and is followed by one.
+
+## How a string reaches translators
+
+- `xgettext` reads only the files named in `localization/i18n/list.txt`, and only the macros
+ `L`, `_L`, `_u8L`, `L_CONTEXT`, `_L_CONTEXT`, `_u8L_CONTEXT` and `_L_PLURAL`.
+ - A file that marks strings but is missing from `list.txt` is silently never extracted. Find such
+ files by comparing `grep -l` for the macros with the list.
+ - `_()`, `_utf8()` and `wxGetTranslation()` do not extract. Calls that rely on them need an `L()`
+ or `_L()` somewhere xgettext sees.
+- **GUI code:** `_L` gives a `wxString`, `_u8L` a UTF-8 `std::string` (use it for ImGui). `L` only
+ marks the string; the display site must translate it.
+- **libslic3r:** the macro is whatever the file defines. Some files `#define L(s)
+ Slic3r::I18N::translate(s)`, so `L()` translates at runtime there. Others, such as `PrintConfig.cpp`,
+ define it as a no-op marker, and the GUI translates the text later. Read the top of the file before
+ judging a `format(L(...))` call. libslic3r has no plural or context lookup at runtime.
+- The libslic3r translate callback is installed in `GUI_App::on_init_inner`. Text produced before it
+ is installed stays in English.
+
+## What to look for
+
+1. **Visible English with no macro:** labels, tooltips, menu items, dialog text, notifications and
+ ImGui text. `scripts/find_untranslated.py OUT_DIR` lists candidates; most are noise, so trace each
+ one to the place it is shown.
+2. **Sentences built from translated pieces:** `_L("A") + name + _L(" is B")`, or a translated word
+ spliced into another sentence. Translators cannot reorder or inflect these. Replace each with one
+ msgid with placeholders. A spliced fragment with a leading or trailing space is the usual sign.
+3. **Counts next to words that must agree:** `(s)`, "%d objects", a verb that follows a number. Use
+ `_L_PLURAL(singular, plural, n)`. If the singular and plural are identical on purpose, translators
+ still inflect each form.
+4. **One English word with several meanings:** a short msgid used in files with different meanings
+ (a verb in one place, a noun in another, a mode name, a CAD term). Generate locations with
+ `xgettext` *without* `--no-location` and list short msgids that occur in two or more files.
+5. **Code that compares translated text with English,** or decides behaviour from a message text.
+ Translation breaks it. Compare ids or flags instead.
+6. **Tests that quote message text:** `grep` the tests for a message before rewording it.
+
+## What not to translate
+
+Keys, config values and identifiers; log and debug output; assertion and check messages; developer-only
+UI behind debug switches; undo/redo snapshot names (the history is never shown); text returned to a
+plugin's code; HTML, JS and desktop-file content in string literals; brand, printer-model and format
+names.
+
+## Adding a context
+
+- Keep the most common sense without a context, so its existing translations stay valid. Give the
+ other senses a short, readable context.
+- A context cannot be carried through code that translates generically: enum labels that
+ `Field.cpp` translates with `_()`, tables translated by a loop, and anything in libslic3r. Leave that
+ sense on the plain entry and give the contexts to the other uses.
+
+## After the edits
+
+1. Build and run the tests (`libslic3r_tests` in particular).
+2. Run `run_gettext --full`. Reworded strings become new empty entries and the old ones become
+ obsolete, which keeps their translations as a memory. Strings that gain a plural form leave a fuzzy
+ entry.
+3. Run the translation pass from SKILL.md. `po_tool.py pending` suggests the closest earlier translation
+ for each entry.
+4. Fix English typos *before* the translation pass; fixing one afterwards orphans every translation.
diff --git a/.claude/skills/orca-translations/references/translation-rules.md b/.claude/skills/orca-translations/references/translation-rules.md
new file mode 100644
index 0000000000..deaa8f6b8b
--- /dev/null
+++ b/.claude/skills/orca-translations/references/translation-rules.md
@@ -0,0 +1,102 @@
+# Translation rules
+
+The rules a translation must follow, condensed from the wiki's
+[Localization guide](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/developer_reference/localization_guide.md),
+the [glossary](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/developer_reference/localization_glossary.md)
+and the localization section of `AGENTS.md`. `po_tool.py apply` rejects the mechanical violations it
+can detect; everything else is on the translator.
+
+## Mechanical: enforced by `apply`
+
+A rejected entry is not written. Fix it and apply again.
+
+- **Placeholders stay exactly as written:** `%s`, `%d`, `%.1f`, `%1$d`, `%1%`, `%%`. Never `%1 %`, never
+ `%` for `%%`. Plain printf placeholders keep their order; only positional ones (`%1$s`, `%1%`) may move.
+ A broken placeholder crashes the app.
+- **Line breaks:** the same number of `\n`, with the same leading and trailing ones. Don't add breaks to fit
+ text, least of all in parameter names.
+- **Leading and trailing spaces** are kept. A leading space usually means the string is appended to another.
+- **HTML tags** are kept, and the text between them is translated: `Click here to install it.`
+- **`℃`** (U+2103) stays one character, written exactly as in the source: `%d℃`, never `°C`, `° C` or
+ `%d ℃`.
+- **Tokens stay verbatim:** `{placeholders}`, `[macros]`, G-code commands (`M141`, `G28`). Setting keys
+ in snake_case (`use_relative_e_distances`) are flagged as warnings, because a few snake_case msgids
+ are really labels (`top_front`). Keep a key unless the string uses it as a display name.
+- **Plural entries** need every form from the catalog's `Plural-Forms` header (`nplurals`: 1 for
+ ja/ko/zh/th/vi, 3 for ru/cs/pl/lt, 4 for uk). Each form is really inflected for its quantity. Repeating
+ one sentence is a bug in Slavic and Baltic languages, but correct in Turkish and Hungarian.
+
+## Mechanical: not detectable, still required
+
+- Edit only `msgstr`. Never change `msgid`, `msgctxt`, the header or another entry's text.
+- **Ending punctuation follows the source:** no added period, and no dropped one. `apply` warns.
+- Units follow the SI convention of the language: `s`, not `sec`. A parameter description holds no
+ unit, because the field shows it.
+- **A button or short label holds one translation:** no alternatives in parentheses. They widen the
+ control.
+- Don't use `fuzzy` for uncertainty. Fuzzy entries are hidden, and users then see English.
+
+## Choosing the words
+
+- **The glossary is binding.** Use the language's rendering for every glossary term the `pending`
+ output lists, inflected as the sentence needs.
+ - **Rows that share a base term are different senses:** `Seam` (the print seam) versus `Seam (UV)`
+ (the unwrap cut), and `Instance` versus `Instance (application)`. Pick by the description.
+ - **A qualified row may be a false match.** `Feature (Design)` does not apply to "features of the
+ app".
+ - **A cell marked ⚠ (or holding two renderings) is unsettled.** Use the form the catalog already
+ uses for that sense (`lookup`), and flag the entry for review.
+- **Kept in English:** brand and product names (OrcaSlicer, Bambu Lab, Orca Cloud, AMS, Micro-Lidar),
+ acronyms (FDM, LAN, HTTPS), file formats, material codes (PLA, PETG-CF), G-code, macros and variables
+ stay as written. In "Adaptive Pressure Advance", only "Pressure Advance" stays English. See the
+ glossary page's *Kept in English* table.
+- **Language specifics** on the glossary page (`po_tool.py glossary --lang L` prints them) override
+ general habits for that language.
+- **Consistency beyond the glossary:** before translating a label, or a tooltip that names a setting,
+ run `lookup` for the setting name. Quote the label's existing translation exactly, so the tooltip and
+ the field match. Reuse obsolete (`#~`) entries as a translation memory.
+- **`msgctxt` separates homonyms.** `Back` in *Camera View* is the rear view, and `Back` in
+ *Navigation* is the go-back button. Translate each context on its own.
+- **Overloaded English: translate the meaning.**
+ - *Flow ratio* is a multiplier, *Flow Rate* is throughput, and *Flow Dynamics* is pressure
+ compensation. These are three different terms.
+ - *Extruder* can mean the toolhead, the feeder motor ("High extruder current on filament swap") or
+ the nozzle ("all extruders must have the same diameter").
+ - When a short label is ambiguous, grep `src/` for the msgid to see the widget it labels.
+- **Boilerplate stays uniform.** `Failed to connect to …`, `Are you sure you want to …?` and
+ `If expressed as a %, it will be computed over …` each get one template in the language, even where
+ the English varies.
+
+## Style
+
+- **Localize, don't translate word-for-word.** Know what the string controls before translating it.
+- **Simplify developer phrasing** when the meaning survives. *"This option determines whether
+ OrcaSlicer should apply the retract reduction on infill"* reads better as *"Disable retractions while
+ printing infill."* Introduce nuances in following sentences, not in one packed clause.
+- **Don't expand.** A machine translation adds no facts the English doesn't state. Expanding
+ descriptions is for human translators, who can confirm the extra content.
+- **Write for both audiences:** professionals and people with a printer at home. Keep the established
+ terminology, used as plainly as the string allows.
+
+## When to add a review note
+
+Add `"review": ""` to an item when the translation is probable but unconfirmed. It
+becomes `# Needs human review: …`, and the entry still ships. Typical reasons:
+
+- The English is ambiguous out of context: "Tile" as a verb or a noun.
+- A short label's role only shows in the app.
+- Two established terms compete, or the glossary cell is unsettled.
+- The string's grammar depends on a value substituted at runtime: `%zu %s` counts with no plural entry.
+
+Say exactly what to look at and where: *"Row name in the Design tab tool-offer menu; check it reads
+right for the whole row."*
+
+## Problems that belong in the source, not the translation
+
+Report these; don't work around them in a catalog.
+
+- **The English is wrong.** Never "fix" it in the translation only.
+- **One msgid needs two translations.** The source needs `_L_CONTEXT` / `_u8L_CONTEXT` (a code change).
+- **A literal `%` in a string xgettext flagged `possible-c-format`** fails `msgfmt`. The fix is a
+ `// xgettext:no-c-format, no-boost-format` comment above the string in the source, not `%%` in the
+ translation.
diff --git a/.claude/skills/orca-translations/scripts/find_untranslated.py b/.claude/skills/orca-translations/scripts/find_untranslated.py
new file mode 100644
index 0000000000..5a5bdfcf1c
--- /dev/null
+++ b/.claude/skills/orca-translations/scripts/find_untranslated.py
@@ -0,0 +1,113 @@
+"""List C++ string literals that look like user-facing English but are not marked for translation.
+
+Usage: find_untranslated.py OUT_DIR (one hits file per source area; each line is file:line: [call] "text" | code)
+Works on whole files, so literals continuing a translation macro call from an earlier line are
+recognised. Skips comments, log/assert/check calls, includes, printer model lists and markup."""
+import re, sys
+from pathlib import Path
+
+REPO = Path(__file__).resolve().parents[4]
+OUT = Path(sys.argv[1]); OUT.mkdir(parents=True, exist_ok=True)
+MACROS = {"_L", "_u8L", "L", "_L_CONTEXT", "_u8L_CONTEXT", "L_CONTEXT", "_L_PLURAL", "_devL", "_omitL",
+ "_CHB", "_utf8", "_", "translate", "translate_utf8", "wxGetTranslation", "T"}
+NOISE_CALLS = {"BOOST_LOG_TRIVIAL", "wxCHECK", "wxCHECK_MSG", "wxCHECK_RET", "wxASSERT", "wxASSERT_MSG", "wxFAIL_MSG",
+ "assert", "static_assert", "printf", "fprintf", "sprintf", "snprintf", "wxLogDebug", "wxLogTrace",
+ "wxLogMessage", "wxLogError", "wxLogWarning", "OutputDebugStringA", "OutputDebugStringW", "DEBUG_LOG",
+ "glsafe", "GLShaderProgram", "find", "count", "contains", "starts_with", "ends_with", "get_value",
+ "has", "opt_bool", "opt_int", "opt_float", "opt_string", "option", "get", "set_key_value", "at",
+ "boost_log", "LOGD", "LOGE", "LOGI", "LOGW", "SPDLOG", "CLI_LOG"}
+LIT = re.compile(r'"((?:[^"\\\n]|\\.)*)"')
+WORD = re.compile(r"[A-Za-z]{2,}")
+
+def strip_comments(text):
+ # Replace comments with spaces, keeping offsets and string literals intact.
+ out, i, n = [], 0, len(text)
+ while i < n:
+ c = text[i]
+ if c == '"' or c == "'":
+ j = i + 1
+ while j < n and text[j] != c and text[j] != "\n":
+ j += 2 if text[j] == "\\" else 1
+ out.append(text[i:j + 1]); i = j + 1
+ elif text.startswith("//", i):
+ j = text.find("\n", i); j = n if j < 0 else j
+ out.append(" " * (j - i)); i = j
+ elif text.startswith("/*", i):
+ j = text.find("*/", i + 2); j = n if j < 0 else j + 2
+ out.append(re.sub(r"[^\n]", " ", text[i:j])); i = j
+ else:
+ out.append(c); i += 1
+ return "".join(out)
+
+def enclosing_call(text, pos):
+ depth = 0
+ i = pos - 1
+ while i >= 0:
+ c = text[i]
+ if c == '"': # skip over a literal backwards
+ i -= 1
+ while i >= 0 and not (text[i] == '"' and text[i - 1] != "\\"):
+ i -= 1
+ elif c in ")]}":
+ depth += 1
+ elif c in "([{":
+ if depth == 0:
+ if c != "(":
+ return None
+ m = re.search(r"([A-Za-z_][\w:]*)\s*$", text[max(0, i - 80):i])
+ return m.group(1).split("::")[-1] if m else None
+ depth -= 1
+ elif c == ";" and depth == 0:
+ return None
+ i -= 1
+ return None
+
+def looks_user_facing(s):
+ if len(WORD.findall(s)) < 2 and not re.fullmatch(r"[A-Z][a-z]{2,}[.!?:]?", s):
+ return False
+ if " " not in s and re.fullmatch(r"[\w./\\:#%-]+", s):
+ return False
+ if re.search(r"https?://|<\w+[^>]*>|\.(png|svg|json|ini|3mf|stl|gcode|bbl|js|html|css|txt|xml|zip)\b|=\s*\w+;|^\s*[-\w]+\s*:\s*[\w#]", s):
+ return False
+ if re.fullmatch(r"[a-z0-9_ ]+", s) and "_" in s:
+ return False
+ return bool(re.search(r"[A-Za-z]{2,} [a-z]{2,}|^[A-Z][a-z]{2,}", s))
+
+groups = {}
+for path in sorted((REPO / "src").rglob("*.[ch]pp")):
+ rel = path.relative_to(REPO).as_posix()
+ if "/dev-utils/" in rel or "/libvgcode/" in rel or rel.startswith("src/libnest2d") or "/tests/" in rel:
+ continue
+ raw = path.read_text(encoding="utf-8", errors="replace")
+ text = strip_comments(raw)
+ line_starts = [0] + [m.end() for m in re.finditer("\n", text)]
+ lines = raw.splitlines()
+ hits = []
+ for m in LIT.finditer(text):
+ s = m.group(1)
+ if not looks_user_facing(s):
+ continue
+ call = enclosing_call(text, m.start())
+ if call in MACROS or call in NOISE_CALLS:
+ continue
+ ln = next(k for k in range(len(line_starts) - 1, -1, -1) if line_starts[k] <= m.start()) + 1
+ src = lines[ln - 1].strip()
+ if re.search(r"BOOST_LOG|#\s*include|<<\s*\"|\"\s*<<|std::cerr|std::cout", src):
+ continue
+ # printer model / vendor tables
+ if len(LIT.findall(src)) >= 4 and not re.search(r"_L|_u8L", src):
+ continue
+ hits.append(f"{rel}:{ln}: [{call or '-'}] \"{s[:150]}\" | {src[:170]}")
+ if hits:
+ parts = rel.split("/")
+ if parts[1] == "slic3r":
+ key = f"GUI/{parts[3] if len(parts) > 4 else 'root'}" if parts[2] == "GUI" else f"slic3r/{parts[2]}"
+ else:
+ key = parts[1].replace(".cpp", "")
+ groups.setdefault(key, []).extend(hits)
+total = 0
+for key, hits in sorted(groups.items()):
+ (OUT / (key.replace("/", "_") + ".txt")).write_text("\n".join(hits) + "\n", encoding="utf-8")
+ total += len(hits)
+ print(f"{len(hits):5} {key}")
+print("total", total)
diff --git a/.claude/skills/orca-translations/scripts/po_tool.py b/.claude/skills/orca-translations/scripts/po_tool.py
new file mode 100644
index 0000000000..218eaf3db7
--- /dev/null
+++ b/.claude/skills/orca-translations/scripts/po_tool.py
@@ -0,0 +1,870 @@
+#!/usr/bin/env python3
+"""Translation helper for the OrcaSlicer gettext catalogs and the wiki glossary.
+
+Standard library only. Edits a catalog in place, rewriting just the entries it
+changes in the layout `msgmerge --no-wrap` writes, so every other byte stays put.
+
+ status [--lang L ...] per-catalog counts
+ pending --lang L [--offset N --limit N] [--out FILE] [--no-include-fuzzy] (adds similar earlier translations)
+ apply --lang L --input FILE [--overwrite] [--dry-run] adds "# AI Translated"
+ check [--lang L ...] [--scope ai|all] [--warnings]
+ lookup --lang L PATTERN [--msgstr] existing translations with ids, obsolete ones included
+ glossary --lang L [TERM] the language's glossary column and notes
+ candidates [--min-count N] [--limit N] recurring untranslated phrases not in the glossary
+ glossary-set --term T [--description D] --set L=VALUE ... [--replace]
+
+The glossary is read from an OrcaSlicer_WIKI clone (--wiki, $ORCA_WIKI_DIR, or a
+sibling of this repository). Without one it is downloaded read-only, and
+glossary-set refuses to run.
+"""
+
+import argparse
+import hashlib
+import json
+import os
+import re
+import subprocess
+import sys
+import tempfile
+import time
+import unicodedata
+import urllib.request
+from pathlib import Path
+
+REPO = Path(__file__).resolve().parents[4]
+I18N = REPO / "localization" / "i18n"
+SKIP_LANGS = {"en"} # the English catalog is intentionally empty
+GLOSSARY_TSV = Path("developer_reference") / "localization_glossary.tsv"
+GLOSSARY_MD = Path("developer_reference") / "localization_glossary.md"
+MISSING = {"", "—"}
+RAW_URL = "https://raw.githubusercontent.com/OrcaSlicer/OrcaSlicer_WIKI/main/"
+AI_TAG = "AI Translated"
+REVIEW_TAG = "Needs human review:"
+
+
+# ---------------------------------------------------------------------------
+# PO parsing and writing
+
+_UNESCAPE = {"n": "\n", "t": "\t", "r": "\r", "a": "\a", "b": "\b", "f": "\f", "v": "\v", '"': '"', "\\": "\\"}
+_ESCAPE = {v: "\\" + k for k, v in _UNESCAPE.items()}
+
+
+def unescape(s):
+ return re.sub(r'\\(.)', lambda m: _UNESCAPE.get(m.group(1), m.group(0)), s)
+
+
+def escape(s):
+ return "".join(_ESCAPE.get(c, c) for c in s)
+
+
+def format_field(keyword, value, prefix=""):
+ """Lines for `keyword "value"` as msgmerge --no-wrap writes them."""
+ parts = value.split("\n")
+ segments = [p + "\n" for p in parts[:-1]] + ([parts[-1]] if parts[-1] else [])
+ if len(segments) <= 1:
+ return [f'{prefix}{keyword} "{escape(value)}"']
+ return [f'{prefix}{keyword} ""'] + [f'{prefix}"{escape(s)}"' for s in segments]
+
+
+class Entry:
+ """One blank-line-delimited block of a PO file."""
+
+ def __init__(self, lines, first_line):
+ self.lines = lines
+ self.first_line = first_line # 0-based index in the file
+ self.obsolete = all(l.startswith("#~") for l in lines if not l.startswith("#") or l.startswith("#~"))
+ self.tcomments, self.xcomments, self.flags = [], [], []
+ self.fields = {} # keyword -> [value, start, end)
+ self.order = []
+ current = None
+ for i, raw in enumerate(lines):
+ line = raw
+ if self.obsolete and line.startswith("#~"):
+ line = line[2:].lstrip(" ")
+ if line.startswith("|"):
+ current = None
+ continue
+ elif line.startswith("#"):
+ current = None
+ if line.startswith("#."):
+ self.xcomments.append(line[2:].strip())
+ elif line.startswith("#,"):
+ self.flags += [f.strip() for f in line[2:].split(",") if f.strip()]
+ elif line == "#" or line.startswith("# "):
+ self.tcomments.append(line[2:])
+ continue
+ m = re.match(r'^(msgctxt|msgid_plural|msgid|msgstr(?:\[\d+\])?)\s+"(.*)"\s*$', line)
+ if m:
+ current = m.group(1)
+ self.fields[current] = [unescape(m.group(2)), i, i + 1]
+ self.order.append(current)
+ elif line.startswith('"') and current:
+ self.fields[current][0] += unescape(line.strip()[1:-1])
+ self.fields[current][2] = i + 1
+
+ def get(self, key, default=None):
+ f = self.fields.get(key)
+ return f[0] if f else default
+
+ @property
+ def msgctxt(self):
+ return self.get("msgctxt")
+
+ @property
+ def msgid(self):
+ return self.get("msgid", "")
+
+ @property
+ def msgid_plural(self):
+ return self.get("msgid_plural")
+
+ @property
+ def is_header(self):
+ return self.msgid == "" and "msgid" in self.fields and not self.msgctxt
+
+ def msgstrs(self):
+ if self.msgid_plural is None:
+ return [self.get("msgstr", "")]
+ idx = sorted(int(k[7:-1]) for k in self.fields if k.startswith("msgstr["))
+ return [self.get(f"msgstr[{i}]", "") for i in range(max(idx) + 1)] if idx else []
+
+ @property
+ def fuzzy(self):
+ return "fuzzy" in self.flags
+
+ @property
+ def ai(self):
+ return any(c.strip() == AI_TAG for c in self.tcomments)
+
+ @property
+ def review(self):
+ return [c for c in self.tcomments if c.startswith(REVIEW_TAG)]
+
+ def key(self):
+ return (self.msgctxt, self.msgid)
+
+ def id(self):
+ """Short stable handle, so a translation file need not repeat the English."""
+ return hashlib.sha1(f"{self.msgctxt or ''}\x04{self.msgid}".encode("utf-8")).hexdigest()[:10]
+
+ def rewrite(self, msgstrs, ai=True, review=None):
+ """Replace the translation; add the AI and review comments; clear fuzzy."""
+ lines = list(self.lines)
+ # translations
+ keys = [k for k in self.order if k.startswith("msgstr")]
+ start = min(self.fields[k][1] for k in keys)
+ end = max(self.fields[k][2] for k in keys)
+ if self.msgid_plural is None:
+ new = format_field("msgstr", msgstrs[0])
+ else:
+ new = [l for i, s in enumerate(msgstrs) for l in format_field(f"msgstr[{i}]", s)]
+ lines[start:end] = new
+ # flags and previous-msgid lines of a fuzzy entry
+ out = []
+ for line in lines:
+ if line.startswith("#,"):
+ flags = [f.strip() for f in line[2:].split(",") if f.strip() and f.strip() != "fuzzy"]
+ if flags:
+ out.append("#, " + ", ".join(flags))
+ continue
+ if line.startswith("#|") and self.fuzzy:
+ continue
+ out.append(line)
+ lines = out
+ # translator comments go first, before #. #: #,
+ pos = 0
+ while pos < len(lines) and (lines[pos] == "#" or lines[pos].startswith("# ")):
+ pos += 1
+ add = []
+ if review is not None: # "" clears an earlier note, a reason replaces it
+ lines = [l for l in lines if not l.startswith("# " + REVIEW_TAG)]
+ pos = 0
+ while pos < len(lines) and (lines[pos] == "#" or lines[pos].startswith("# ")):
+ pos += 1
+ if ai and not any(l == "# " + AI_TAG for l in lines[:pos]):
+ add.append("# " + AI_TAG)
+ if review:
+ add.append(f"# {REVIEW_TAG} {' '.join(review.split())}")
+ lines[pos:pos] = add
+ return lines
+
+
+class Catalog:
+ def __init__(self, path):
+ self.path = Path(path)
+ data = self.path.read_bytes()
+ self.bom = data.startswith(b"\xef\xbb\xbf")
+ text = data.decode("utf-8-sig")
+ self.newline = "\r\n" if "\r\n" in text else "\n"
+ self.trailing = text.endswith(("\n", "\r"))
+ self.lines = text.splitlines()
+ self.entries = []
+ block, first = [], 0
+ for i, line in enumerate(self.lines + [""]):
+ if line.strip() == "":
+ if block:
+ self.entries.append(Entry(block, first))
+ block = []
+ else:
+ if not block:
+ first = i
+ block.append(line)
+ self.header = next((e for e in self.entries if e.is_header), None)
+ m = re.search(r"nplurals\s*=\s*(\d+)", self.header.msgstrs()[0] if self.header else "")
+ self.nplurals = int(m.group(1)) if m else 2
+ self.changes = {} # entry index -> new lines
+
+ def active(self):
+ return [e for e in self.entries if not e.obsolete and not e.is_header]
+
+ def index(self):
+ return {e.key(): i for i, e in enumerate(self.entries) if not e.obsolete and not e.is_header}
+
+ def save(self):
+ lines = list(self.lines)
+ for i in sorted(self.changes, reverse=True):
+ e = self.entries[i]
+ lines[e.first_line:e.first_line + len(e.lines)] = self.changes[i]
+ text = self.newline.join(lines) + (self.newline if self.trailing else "")
+ self.path.write_bytes((b"\xef\xbb\xbf" if self.bom else b"") + text.encode("utf-8"))
+
+
+def needs_translation(e, nplurals, include_fuzzy=False):
+ strs = e.msgstrs()
+ if e.msgid_plural is not None and len(strs) < nplurals:
+ return True
+ return any(s == "" for s in strs) or (include_fuzzy and e.fuzzy)
+
+
+def catalog_path(lang):
+ p = I18N / lang / f"OrcaSlicer_{lang}.po"
+ if not p.exists():
+ sys.exit(f"no catalog for '{lang}': {p}")
+ return p
+
+
+def all_langs():
+ return sorted(d.name for d in I18N.iterdir() if (d / f"OrcaSlicer_{d.name}.po").exists() and d.name not in SKIP_LANGS)
+
+
+# ---------------------------------------------------------------------------
+# Glossary
+
+def find_wiki(arg):
+ for cand in [arg, os.environ.get("ORCA_WIKI_DIR"), REPO.parent / "OrcaSlicer_WIKI", REPO.parent / "OrcaSlicer.wiki"]:
+ if cand and (Path(cand) / GLOSSARY_TSV).exists():
+ return Path(cand)
+ return None
+
+
+def _download(rel):
+ cache = Path(tempfile.gettempdir()) / ("orca_glossary_" + rel.name)
+ if not cache.exists() or time.time() - cache.stat().st_mtime > 3600:
+ with urllib.request.urlopen(RAW_URL + rel.as_posix(), timeout=30) as r:
+ cache.write_bytes(r.read())
+ return cache
+
+
+class Glossary:
+ def __init__(self, wiki_arg=None, quiet=False):
+ self.wiki = find_wiki(wiki_arg)
+ if self.wiki:
+ self.tsv, self.md = self.wiki / GLOSSARY_TSV, self.wiki / GLOSSARY_MD
+ if not quiet:
+ self.report_clone_state()
+ else:
+ if not quiet:
+ print("note: no OrcaSlicer_WIKI clone found; using the published glossary read-only", file=sys.stderr)
+ self.tsv, self.md = _download(GLOSSARY_TSV), _download(GLOSSARY_MD)
+ self.load()
+
+ def report_clone_state(self):
+ git = lambda *args: subprocess.run(["git", "-C", str(self.wiki), *args], capture_output=True, text=True).stdout.strip()
+ try:
+ branch = git("rev-parse", "--abbrev-ref", "HEAD")
+ behind = git("rev-list", "--count", "HEAD..origin/main")
+ except OSError:
+ return
+ if branch and branch != "main":
+ print(f"note: glossary read from wiki branch '{branch}', not main", file=sys.stderr)
+ if behind and behind != "0":
+ print(f"note: the wiki clone is {behind} commits behind origin/main (as of its last fetch)", file=sys.stderr)
+
+ def load(self):
+ rows = [l.split("\t") for l in self.tsv.read_text(encoding="utf-8-sig").splitlines() if l.strip()]
+ self.header = rows[0]
+ # "—" marks a language with no established rendering yet
+ self.rows = [[c if c.strip() not in MISSING else "" for c in r] + [""] * (len(rows[0]) - len(r)) for r in rows[1:]]
+ self.matchers = []
+ for row in self.rows:
+ base = re.sub(r"\s*\([^)]*\)\s*$", "", row[0]).strip()
+ alts = [a.strip() for a in base.split(" / ") if a.strip()]
+ pats = [re.compile(r"(? (e - s) for s2, e2, r2 in spans if r2 is not row) for s, e in mine):
+ keep.append(row)
+ return keep
+
+ def hints(self, text, lang):
+ col = self.column(lang)
+ return [{"term": r[0], "translation": (r[col] if col is not None else "") or None, "description": r[1]} for r in self.matches(text)]
+
+ def language_notes(self, lang):
+ text = self.md.read_text(encoding="utf-8-sig")
+ m = re.search(r"^### [^\n]*\(" + re.escape(lang) + r"\)\s*$(.*?)(?=^##|\Z)", text, re.M | re.S)
+ return m.group(0).strip() if m else None
+
+
+def _norm(s):
+ s = unicodedata.normalize("NFD", s.casefold())
+ return "".join(c for c in s if unicodedata.category(c) != "Mn")
+
+
+def glossary_ok(msgstr, translation):
+ """Loose check that a glossary rendering appears in msgstr, tolerating inflection."""
+ target = _norm(msgstr)
+ for alt in re.split(r"\s*/\s*", re.sub(r"\([^)]*\)|⚠", "", translation)):
+ words = [w for w in re.findall(r"\w+", _norm(alt)) if len(w) > 2] or re.findall(r"\w+", _norm(alt))
+ if not words:
+ return True
+ if all(w in target or (len(w) > 4 and w[:max(4, len(w) * 2 // 3)] in target) for w in words):
+ return True
+ return False
+
+
+# ---------------------------------------------------------------------------
+# Validation
+
+C_FMT = re.compile(r"%(?:(\d+)\$)?[-+ #0']*(?:\d+|\*)?(?:\.(?:\d+|\*))?(?:hh|h|ll|l|L|q|j|z|Z|t)?[diouxXeEfFgGaAcspn]")
+BOOST_FMT = re.compile(r"%\d+%")
+TAG = re.compile(r"?[A-Za-z][^<>]*>")
+SNAKE = re.compile(r"[a-z][a-z0-9]*(?:_[a-z0-9]+)+")
+IDENT = re.compile(r"\b[a-z][a-z0-9]*(?:_[a-z0-9]+)+\b|\b[GM]\d{1,4}\b|\{[A-Za-z_][\w.\[\]]*\}|\[[a-z_]+\]")
+END = re.compile(r"[.:?!。:?!]$")
+
+
+def _placeholders(s, flags):
+ s = s.replace("%%", "")
+ boost = BOOST_FMT.findall(s)
+ s2 = BOOST_FMT.sub("", s) if "boost-format" in flags or boost else s
+ c = [m.group(0) for m in C_FMT.finditer(s2)] if "no-c-format" not in flags else []
+ return boost, c
+
+
+def validate(e, msgstrs, nplurals, glossary=None, lang=None):
+ """Return (errors, warnings) for a proposed translation of entry e."""
+ errors, warnings = [], []
+ flags = set(e.flags)
+ if e.msgid_plural is not None and len(msgstrs) != nplurals:
+ errors.append(f"plural entry needs {nplurals} forms, got {len(msgstrs)}")
+ for i, s in enumerate(msgstrs):
+ src = e.msgid if (e.msgid_plural is None or (i == 0 and nplurals > 1)) else e.msgid_plural
+ tag = f"[{i}] " if e.msgid_plural is not None else ""
+ if not s:
+ errors.append(f"{tag}empty translation")
+ continue
+ b1, c1 = _placeholders(src, flags)
+ b2, c2 = _placeholders(s, flags)
+ positional = any("$" in p for p in c1)
+ c_bad = sorted(c1) != sorted(c2) if positional else c1 != c2
+ bad = []
+ if sorted(b1) != sorted(b2):
+ bad.append(f"boost placeholders {b1} -> {b2}")
+ if c_bad:
+ bad.append(f"printf placeholders {c1} -> {c2}" + ("" if positional else " (order must match)"))
+ if bad:
+ strict = flags & {"c-format", "boost-format"} and not (e.msgid_plural is not None and i == 0 and nplurals > 1 and not c2 and not b2)
+ (errors if strict else warnings).extend(tag + b for b in bad)
+ if s.count("%%") != src.count("%%") and "c-format" in flags:
+ errors.append(f"{tag}'%%' count differs")
+ if src.count("\n") != s.count("\n"):
+ errors.append(f"{tag}line breaks: {src.count(chr(10))} in source, {s.count(chr(10))} in translation")
+ else:
+ lead = lambda t: len(t) - len(t.lstrip("\n"))
+ trail = lambda t: len(t) - len(t.rstrip("\n"))
+ if lead(src) != lead(s) or trail(src) != trail(s):
+ errors.append(f"{tag}leading/trailing line breaks differ")
+ ls = lambda t: re.match(r"[ \t]*", t.strip("\n")).group(0)
+ ts = lambda t: re.search(r"[ \t]*$", t.strip("\n")).group(0)
+ if ls(src) != ls(s) or ts(src) != ts(s):
+ errors.append(f"{tag}leading/trailing spaces differ")
+ if sorted(TAG.findall(src)) != sorted(TAG.findall(s)):
+ errors.append(f"{tag}HTML tags {TAG.findall(src)} -> {TAG.findall(s)}")
+ if src.count("℃") != s.count("℃"):
+ errors.append(f"{tag}'℃' count differs (keep U+2103, not °C)")
+ missing = [t for t in set(IDENT.findall(src)) if t not in s]
+ tokens = [t for t in missing if not SNAKE.fullmatch(t)]
+ if tokens:
+ errors.append(f"{tag}tokens must stay verbatim: {tokens}")
+ if len(tokens) < len(missing): # snake_case is usually a setting key, sometimes a label
+ warnings.append(f"{tag}snake_case kept? {[t for t in missing if SNAKE.fullmatch(t)]}")
+ e1, e2 = END.search(src.rstrip()), END.search(s.rstrip())
+ if bool(e1) != bool(e2) and lang != "th": # Thai has no sentence-final period
+ warnings.append(f"{tag}ending punctuation: source {'ends with ' + repr(e1.group(0)) if e1 else 'has none'}, translation {'ends with ' + repr(e2.group(0)) if e2 else 'has none'}")
+ if s == src and len(src.split()) >= 3:
+ warnings.append(f"{tag}identical to the English")
+ if glossary and lang:
+ # Rows sharing a base term ("Seam", "Seam (UV)") are competing senses; one is enough.
+ # A match on qualified rows only ("Feature (Design)") may be another sense entirely.
+ for base, senses in group_senses(glossary.hints(src, lang)).items():
+ if all(h["term"] != base for h in senses) or not strong_match(src, base):
+ continue
+ if not any(glossary_ok(s, h["translation"]) for h in senses):
+ wanted = " or ".join(f"'{h['translation']}' ({h['term']})" for h in senses)
+ warnings.append(f"{tag}glossary: expected {wanted}")
+ return errors, warnings
+
+
+def strong_match(src, base):
+ """Whether a term is surely meant as the glossary term, not as everyday English
+ ("each part of a frame"): a multi-word term, a short label, or capitalised mid-sentence."""
+ if any(" " in alt for alt in base.split(" / ")) or len(src.split()) <= 5:
+ return True
+ for alt in base.split(" / "):
+ for m in re.finditer(r"(?7} {'empty':>6} {'plural':>6} {'fuzzy':>6} {'AI':>6} {'review':>6}")
+ for lang in a.lang or all_langs():
+ c = Catalog(catalog_path(lang))
+ act = c.active()
+ empty = sum(1 for e in act if needs_translation(e, c.nplurals) and e.msgid_plural is None)
+ plural = sum(1 for e in act if needs_translation(e, c.nplurals) and e.msgid_plural is not None)
+ print(f"{lang:7} {len(act):7} {empty:6} {plural:6} {sum(e.fuzzy for e in act):6} {sum(e.ai for e in act):6} {sum(bool(e.review) for e in act):6}")
+
+
+def similar_entries(c, e, pool, cutoff=0.72):
+ """The closest earlier translation of a similar English text: obsolete entries and translated
+ active ones. A reworded or split string usually still has one, and reusing it keeps the wording."""
+ import difflib
+ sm = difflib.SequenceMatcher(autojunk=False)
+ sm.set_seq2(e.msgid)
+ best = []
+ for other, msgstr, obsolete in pool:
+ sm.set_seq1(other)
+ if sm.real_quick_ratio() < cutoff or sm.quick_ratio() < cutoff:
+ continue
+ r = sm.ratio()
+ if r >= cutoff and other != e.msgid:
+ best.append((r, other, msgstr, obsolete))
+ best.sort(key=lambda t: -t[0])
+ return [{"msgid": o, "msgstr": s, "obsolete": ob, "similarity": round(r, 2)} for r, o, s, ob in best[:2]]
+
+
+def cmd_pending(a):
+ c = Catalog(catalog_path(a.lang))
+ g = Glossary(a.wiki)
+ todo = [e for e in c.active() if needs_translation(e, c.nplurals, a.include_fuzzy)]
+ batch = todo[a.offset:a.offset + a.limit] if a.limit else todo[a.offset:]
+ pool = [(x.msgid, x.msgstrs()[0], x.obsolete) for x in c.entries
+ if not x.is_header and x.msgstrs() and x.msgstrs()[0] and not x.fuzzy and 8 < len(x.msgid) < 600]
+ items = []
+ for e in batch:
+ item = {"id": e.id(), "msgctxt": e.msgctxt, "msgid": e.msgid}
+ if e.msgid_plural is not None:
+ item["msgid_plural"] = e.msgid_plural
+ item["msgstr_plural"] = (e.msgstrs() + [""] * c.nplurals)[:c.nplurals]
+ else:
+ item["msgstr"] = e.msgstrs()[0]
+ if e.xcomments:
+ item["note"] = " ".join(e.xcomments)
+ flags = [f for f in e.flags if f != "fuzzy"]
+ if flags:
+ item["flags"] = flags
+ if e.fuzzy:
+ item["fuzzy"] = True
+ if e.msgstrs()[0]:
+ item["previous_translation"] = e.msgstrs()[0]
+ if len(e.msgid) > 8:
+ sim = similar_entries(c, e, pool)
+ if sim:
+ item["similar"] = sim
+ hints = g.hints(e.msgid + "\n" + (e.msgid_plural or ""), a.lang)
+ if hints:
+ # Descriptions only where the sense must be chosen or no rendering exists yet.
+ bases = [base_term(h["term"]) for h in hints]
+ item["glossary"] = [{k: v for k, v in h.items() if k != "description" or not h["translation"] or bases.count(b) > 1 or b != h["term"]}
+ for h, b in zip(hints, bases)]
+ items.append({k: v for k, v in item.items() if v is not None})
+ out_json({"lang": a.lang, "nplurals": c.nplurals, "plural_forms": re.search(r"Plural-Forms: ([^\n]*)", c.header.msgstrs()[0]).group(1) if c.header else None,
+ "total_pending": len(todo), "offset": a.offset, "count": len(items), "entries": items}, a.out)
+
+
+def cmd_apply(a):
+ c = Catalog(catalog_path(a.lang))
+ g = None if a.no_glossary else Glossary(a.wiki, quiet=True)
+ data = json.loads(Path(a.input).read_text(encoding="utf-8"))
+ items = data["entries"] if isinstance(data, dict) else data
+ idx = c.index()
+ by_id = {c.entries[i].id(): i for i in idx.values()}
+ applied, skipped, rejected, warned = 0, 0, [], []
+ for it in items:
+ if "msgid" in it:
+ key = (it.get("msgctxt"), it["msgid"])
+ i = idx.get(key)
+ label = (f"[{key[0]}] " if key[0] else "") + key[1][:70].replace("\n", "\\n")
+ else:
+ i = by_id.get(it.get("id"))
+ label = f"id {it.get('id')}" if i is None else c.entries[i].msgid[:70].replace("\n", "\\n")
+ if i is None:
+ rejected.append((label, ["no such entry in the catalog (give its id, or msgid and msgctxt)"]))
+ continue
+ e = c.entries[i]
+ if e.msgid_plural is not None and "msgstr_plural" not in it:
+ rejected.append((label, [f"plural entry: give msgstr_plural with {c.nplurals} forms"]))
+ continue
+ strs = it["msgstr_plural"] if e.msgid_plural is not None else [it.get("msgstr", "")]
+ if not strs or all(not s for s in strs):
+ skipped += 1
+ continue
+ if not a.overwrite and not needs_translation(e, c.nplurals, include_fuzzy=True):
+ rejected.append((label, ["already translated (pass --overwrite to replace)"]))
+ continue
+ errors, warnings = validate(e, strs, c.nplurals, g, a.lang)
+ if errors:
+ rejected.append((label, errors))
+ continue
+ if warnings:
+ warned.append((label, warnings))
+ c.changes[i] = e.rewrite(strs, ai=not a.human, review=it.get("review"))
+ applied += 1
+ if not a.dry_run and c.changes:
+ c.save()
+ for label, msgs in rejected:
+ print(f"REJECTED {label}\n " + "\n ".join(msgs))
+ for label, msgs in warned:
+ print(f"WARNING {label}\n " + "\n ".join(msgs))
+ print(f"{'would apply' if a.dry_run else 'applied'} {applied}, rejected {len(rejected)}, warnings {len(warned)}, blank skipped {skipped}")
+ return 1 if rejected else 0
+
+
+def find_msgfmt():
+ exe = REPO / "tools" / "msgfmt.exe"
+ if os.name == "nt" and exe.exists():
+ return str(exe)
+ from shutil import which
+ return which("msgfmt")
+
+
+def cmd_check(a):
+ g = None if a.no_glossary else Glossary(a.wiki, quiet=True)
+ msgfmt = find_msgfmt()
+ status = 0
+ for lang in a.lang or all_langs():
+ c = Catalog(catalog_path(lang))
+ errs = warns = 0
+ for e in c.active():
+ if a.scope == "ai" and not e.ai:
+ continue
+ strs = e.msgstrs()
+ if all(s == "" for s in strs) or e.fuzzy:
+ continue
+ errors, warnings = validate(e, strs, c.nplurals, g, lang)
+ if errors or (warnings and a.warnings):
+ label = (f"[{e.msgctxt}] " if e.msgctxt else "") + e.msgid[:70].replace("\n", "\\n")
+ print(f"{lang} line {e.first_line + 1}: {label}")
+ for m in errors:
+ print(f" ERROR {m}")
+ for m in warnings if a.warnings else []:
+ print(f" warn {m}")
+ errs += bool(errors)
+ warns += bool(warnings)
+ if msgfmt:
+ fd, mo = tempfile.mkstemp(suffix=".mo") # Windows msgfmt cannot write to "nul"
+ os.close(fd)
+ r = subprocess.run([msgfmt, "--check-format", "-o", mo, str(c.path)], capture_output=True, text=True)
+ os.unlink(mo)
+ if r.returncode:
+ print(f"{lang}: msgfmt --check-format failed\n{r.stderr.strip()}")
+ status = 1
+ print(f"{lang}: {errs} entries with errors, {warns} with warnings (scope: {a.scope})")
+ status |= bool(errs)
+ if not msgfmt:
+ print("note: msgfmt not found; skipped --check-format", file=sys.stderr)
+ return status
+
+
+def cmd_lookup(a):
+ c = Catalog(catalog_path(a.lang))
+ rx = re.compile(a.pattern, re.I)
+ n = 0
+ for e in c.entries:
+ strs = [s for s in e.msgstrs() if s]
+ if e.is_header or not strs:
+ continue
+ texts = strs if a.msgstr else [e.msgid, e.msgid_plural or ""]
+ if not any(rx.search(t) for t in texts):
+ continue
+ mark = "obsolete " if e.obsolete else f"{e.id()} " + ("AI " if e.ai else "")
+ ctx = f"[{e.msgctxt}] " if e.msgctxt else ""
+ print(f"{mark}{ctx}{json.dumps(e.msgid, ensure_ascii=False)}\n -> {json.dumps(strs[0] if len(strs) == 1 else strs, ensure_ascii=False)}")
+ n += 1
+ if n >= a.limit:
+ print("... (limit reached)")
+ break
+
+
+def cmd_glossary(a):
+ g = Glossary(a.wiki)
+ col = g.column(a.lang)
+ if col is None:
+ print(f"'{a.lang}' has no glossary column yet; add one with glossary-set --set {a.lang}=...")
+ rx = re.compile(a.term, re.I) if a.term else None
+ for r in g.rows:
+ if rx and not rx.search(r[0]):
+ continue
+ val = r[col] if col is not None and r[col] else "—"
+ print(f"{r[0]} => {val}\n {r[1]}")
+ notes = g.language_notes(a.lang)
+ if notes and not a.term:
+ print("\n" + notes)
+
+
+STOP = set("""a an and are as at be been but by can could do does for from has have how if in into is it its
+may more most must no not of on once one only or other out over same set should so some such than that the
+their them then there these this those to too two up use used uses using very was when where whether which
+while will with without would you your yet all any each every per both also between before after first last
+off new now get gets let lets just already instead still even back down here make makes made via""".split())
+
+
+def _singular(key):
+ return " ".join(re.sub(r"(?<=[a-z]{3})(es|s)$", "", w) for w in key.split())
+
+
+def kept_in_english(g):
+ """Names from the glossary page's "Kept in English" table."""
+ text = g.md.read_text(encoding="utf-8-sig")
+ m = re.search(r"^## Kept in English.*?$(.*?)(?=^## )", text, re.M | re.S)
+ names = set()
+ for row in re.findall(r"^\| (.*?) \|", m.group(1) if m else "", re.M):
+ for piece in re.split(r"[,/:]|\bplus\b", row.replace("**", "").replace("`", "")):
+ if piece.strip():
+ names.add(_norm(piece.strip()))
+ return names
+
+
+def cmd_candidates(a):
+ g = Glossary(a.wiki)
+ known = kept_in_english(g)
+ for row, _ in g.matchers:
+ known |= {_norm(x.strip()) for x in base_term(row[0]).split(" / ")}
+ known |= {_singular(k) for k in known}
+ known |= {w for k in known if " " in k for w in k.split()} # "tower" of "prime tower"
+ pending = {}
+ labels = set()
+ for lang in all_langs():
+ c = Catalog(catalog_path(lang))
+ for e in c.active():
+ labels.add(_norm(e.msgid))
+ if needs_translation(e, c.nplurals):
+ pending.setdefault(e.key(), set()).add(lang)
+ counts = {} # phrase -> [strings, max langs, display, example, capitalised mid-sentence]
+ for (ctx, msgid), langs in pending.items():
+ seen = set()
+ for chunk in re.split(r"[.,;:!?()\[\]\"\n—–]+|\s-\s", msgid):
+ words = [re.sub(r"'s$", "", w) for w in re.findall(r"[A-Za-z][A-Za-z0-9-]*(?:'s)?", chunk)]
+ # Capitals only mean a name inside an ordinary sentence, not in a Title Case label.
+ sentence = len(words) >= 4 and sum(w[0].isupper() for w in words) * 2 < len(words)
+ for n in (1, 2, 3):
+ for i in range(len(words) - n + 1):
+ gram = words[i:i + n]
+ if gram[0].lower() in STOP or gram[-1].lower() in STOP or len("".join(gram)) < 4 \
+ or any(w.lower() in STOP and w.lower() != "of" for w in gram):
+ continue
+ key = _norm(" ".join(gram))
+ if key in seen or key in known or _singular(key) in known:
+ continue
+ seen.add(key)
+ d = counts.setdefault(key, [0, 0, " ".join(gram), msgid, False])
+ d[0] += 1
+ d[1] = max(d[1], len(langs))
+ d[4] |= sentence and i > 0 and all(w[0].isupper() for w in gram)
+ # A term is a phrase, or a word capitalised mid-sentence or written as an acronym.
+ keep = {k: v for k, v in counts.items()
+ if v[0] >= a.min_count and (" " in k or v[4] or v[2].isupper())}
+ # Drop fragments only ever seen inside a longer candidate ("IQEX parallel" in "IDEX IQEX parallel").
+ keep = {k: v for k, v in keep.items()
+ if not any(k != k2 and re.search(r"(^| )" + re.escape(k) + r"( |$)", k2) and v2[0] >= v[0] for k2, v2 in keep.items())}
+ rows = sorted(keep.items(), key=lambda kv: (-kv[1][0], -len(kv[0].split())))
+ print("strings langs phrase [label = also a msgid of its own] e.g.")
+ for k, (cnt, langs, text, example, _) in rows[:a.limit]:
+ ex = example.replace("\n", " ")
+ print(f"{cnt:7} {langs:6} {text}{' [label]' if k in labels else ''} e.g. {ex[:70]}{'…' if len(ex) > 70 else ''}")
+
+
+def cmd_glossary_set(a):
+ wiki = find_wiki(a.wiki)
+ if not wiki:
+ print("No OrcaSlicer_WIKI clone found (looked at --wiki, $ORCA_WIKI_DIR and next to this repository).\n"
+ "The glossary must be updated with these terms before the translations that use them ship:\n"
+ f" {a.term}: " + ", ".join(a.set) + "\n"
+ "Clone https://github.com/OrcaSlicer/OrcaSlicer_WIKI next to this repository, or pass --wiki.", file=sys.stderr)
+ return 2
+ tsv = wiki / GLOSSARY_TSV
+ lock = tsv.with_suffix(".lock")
+ for _ in range(100):
+ try:
+ fd = os.open(lock, os.O_CREAT | os.O_EXCL)
+ break
+ except FileExistsError:
+ time.sleep(0.1)
+ else:
+ sys.exit(f"could not lock {lock}; remove it if no other run is active")
+ try:
+ data = tsv.read_bytes()
+ bom = data.startswith(b"\xef\xbb\xbf")
+ text = data.decode("utf-8-sig")
+ nl = "\r\n" if "\r\n" in text else "\n"
+ lines = text.splitlines()
+ header = lines[0].split("\t")
+ values = {}
+ for s in a.set:
+ lang, _, val = s.partition("=")
+ if lang not in header:
+ sys.exit(f"no glossary column '{lang}'")
+ if "\t" in val or "\n" in val:
+ sys.exit("values cannot contain tabs or line breaks")
+ values[header.index(lang)] = val.strip()
+ row_i = next((i for i, l in enumerate(lines[1:], 1) if l.split("\t")[0] == a.term), None)
+ new = row_i is None
+ if new:
+ if not a.description:
+ sys.exit("a new term needs --description (one sentence saying what it is)")
+ row = [a.term, a.description] + [""] * (len(header) - 2)
+ lines.append("")
+ row_i = len(lines) - 1
+ else:
+ row = lines[row_i].split("\t")
+ row += [""] * (len(header) - len(row))
+ if a.description:
+ row[1] = a.description
+ conflicts = [f"{header[i]}: '{row[i]}' -> '{v}'" for i, v in values.items() if row[i].strip() not in MISSING and row[i] != v]
+ if conflicts and not a.replace:
+ sys.exit("established translations differ (pass --replace, and update the catalogs to match):\n " + "\n ".join(conflicts))
+ for i, v in values.items():
+ row[i] = v
+ lines[row_i] = "\t".join(row)
+ tsv.write_bytes((b"\xef\xbb\xbf" if bom else b"") + (nl.join(lines) + nl).encode("utf-8"))
+ finally:
+ os.close(fd)
+ os.unlink(lock)
+ print(f"glossary: {'added' if new else 'updated'} '{a.term}'")
+ gen = wiki / "generate_glossary.py"
+ if gen.exists():
+ r = subprocess.run([sys.executable, str(gen), "--update"], cwd=wiki, capture_output=True, text=True)
+ print((r.stdout + r.stderr).strip())
+ return r.returncode
+ return 0
+
+
+def main():
+ p = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
+ p.add_argument("--wiki", help="path to an OrcaSlicer_WIKI clone")
+ p.add_argument("--i18n", help="catalog root to use instead of localization/i18n")
+ sub = p.add_subparsers(dest="cmd", required=True)
+
+ s = sub.add_parser("status")
+ s.add_argument("--lang", action="append")
+ s.set_defaults(func=cmd_status)
+
+ s = sub.add_parser("pending")
+ s.add_argument("--lang", required=True)
+ s.add_argument("--offset", type=int, default=0)
+ s.add_argument("--limit", type=int, default=60)
+ s.add_argument("--out")
+ s.add_argument("--include-fuzzy", action=argparse.BooleanOptionalAction, default=True,
+ help="list fuzzy entries too (default): users never see them")
+ s.set_defaults(func=cmd_pending)
+
+ s = sub.add_parser("apply")
+ s.add_argument("--lang", required=True)
+ s.add_argument("--input", required=True)
+ s.add_argument("--overwrite", action="store_true", help="also replace existing translations")
+ s.add_argument("--human", action="store_true", help="do not add '# AI Translated' (a person wrote these)")
+ s.add_argument("--dry-run", action="store_true")
+ s.add_argument("--no-glossary", action="store_true")
+ s.set_defaults(func=cmd_apply)
+
+ s = sub.add_parser("check")
+ s.add_argument("--lang", action="append")
+ s.add_argument("--scope", choices=["ai", "all"], default="ai")
+ s.add_argument("--warnings", action="store_true", help="also print warnings")
+ s.add_argument("--no-glossary", action="store_true")
+ s.set_defaults(func=cmd_check)
+
+ s = sub.add_parser("lookup")
+ s.add_argument("--lang", required=True)
+ s.add_argument("pattern")
+ s.add_argument("--msgstr", action="store_true", help="search the translations instead of the English")
+ s.add_argument("--limit", type=int, default=40)
+ s.set_defaults(func=cmd_lookup)
+
+ s = sub.add_parser("glossary")
+ s.add_argument("--lang", required=True)
+ s.add_argument("term", nargs="?")
+ s.set_defaults(func=cmd_glossary)
+
+ s = sub.add_parser("candidates")
+ s.add_argument("--min-count", type=int, default=3)
+ s.add_argument("--limit", type=int, default=80)
+ s.set_defaults(func=cmd_candidates)
+
+ s = sub.add_parser("glossary-set")
+ s.add_argument("--term", required=True)
+ s.add_argument("--description")
+ s.add_argument("--set", action="append", default=[], metavar="LANG=VALUE")
+ s.add_argument("--replace", action="store_true")
+ s.set_defaults(func=cmd_glossary_set)
+
+ a = p.parse_args()
+ if a.i18n:
+ global I18N
+ I18N = Path(a.i18n)
+ sys.stdout.reconfigure(encoding="utf-8")
+ sys.stderr.reconfigure(encoding="utf-8")
+ sys.exit(a.func(a) or 0)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/.claude/skills/orca-wxwidgets/references/platforms.md b/.claude/skills/orca-wxwidgets/references/platforms.md
index f391aecf27..0ec78aaa43 100644
--- a/.claude/skills/orca-wxwidgets/references/platforms.md
+++ b/.claude/skills/orca-wxwidgets/references/platforms.md
@@ -569,12 +569,18 @@ on the **first** call. So:
#endif
```
-**Before GTK starts**, only the environment exists. `CLI::run` (`src/OrcaSlicer.cpp`) branches on
-`GDK_BACKEND` (an `x11` prefix means the X11 opt-in). On the default path it forces `GDK_BACKEND=x11`
-when wx lacks EGL and `WAYLAND_DISPLAY` is set. It sets `WEBKIT_DISABLE_COMPOSITING_MODE=1`
-(non-replacing) only when both `DISPLAY` and `WAYLAND_DISPLAY` are set, and calls `XInitThreads()`
+**Before GTK starts**, only the environment exists. `CLI::run` (`src/OrcaSlicer.cpp`) sets the NVIDIA
+DMABUF workaround and then branches on `GDK_BACKEND` (an `x11` prefix means the X11 opt-in). On both
+paths, when `/proc/driver/nvidia/version` exists and the linked WebKitGTK honours the switch (>= 2.44,
+`WebView::SupportsForceSharedMemory()`), it sets `WEBKIT_DMABUF_RENDERER_FORCE_SHM=1` and
+`WEBKIT_FORCE_DMABUF_RENDERER=1` (non-replacing): the proprietary driver cannot back WebKit's hardware
+DMABUF renderer. On the default path it forces `GDK_BACKEND=x11` when wx lacks EGL and `WAYLAND_DISPLAY`
+is set, and sets `WEBKIT_DISABLE_COMPOSITING_MODE=1` (non-replacing) inside that branch when the linked
+WebKitGTK is older than 2.42: a forced X11 backend in a Wayland session is the only default-path case
+that runs through XWayland, which `DISPLAY` and `WAYLAND_DISPLAY` alone do not tell you (a native
+Wayland app inherits both). It calls `XInitThreads()`
only when `DISPLAY` is set. With neither variable set, the GUI refuses to start ("Neither DISPLAY nor
-WAYLAND_DISPLAY set"). The details and the WebKit rule (c12912e0df) are in
+WAYLAND_DISPLAY set"). The details and the WebKit rules (c12912e0df) are in
`references/webview-gl-aui-media.md` §WebKitGTK on Linux sessions.
**wx's own detectors**, for reference:
diff --git a/.claude/skills/orca-wxwidgets/references/popups-menus.md b/.claude/skills/orca-wxwidgets/references/popups-menus.md
index 3fab369436..1ad6a09271 100644
--- a/.claude/skills/orca-wxwidgets/references/popups-menus.md
+++ b/.claude/skills/orca-wxwidgets/references/popups-menus.md
@@ -570,6 +570,11 @@ Details [source] (`Widgets/PopupWindow.cpp`).
- On GTK the sub binds an idle handler. While both are shown and the cursor is over main but not over the
sub, it builds a `wxMouseEvent(wxEVT_MOTION)` from `wxGetMousePosition()`, calls `mainDropDown->mouseMove(ev)`
**directly** (nothing is posted), and calls `e.RequestMore()` to keep polling.
+ - On GTK the sub also receives the wheel events the user raises over main: GDK sends a `wl_pointer.axis` only
+ to the surface the pointer is over, and GTK then hands that `GDK_SCROLL` to the chain's grab widget, which is
+ the sub. The sub installs a `GtkWidget::event` handler that replays the event on main with
+ `gtk_propagate_event(main->GetConnectWidget(), event)` when the event's GDK window belongs to main
+ (`DropDown::messureSize`).
- **GTK wrapper sizing.** `messureSize` calls `gtk_window_resize` on `m_widget` after `SetSize`, because wxGTK's
`DoSetSize` only uses `gtk_widget_set_size_request` ("gtk_window_resize does not work for GTK_WINDOW_POPUP",
`src/gtk/popupwin.cpp:181-188`).
@@ -607,6 +612,32 @@ Details [source] (`Widgets/PopupWindow.cpp`).
```
Cite: c0ae2bda99, b9ff15054f (`DropDown::mouseMove`, `DropDown::messureSize`, `DropDown::ShouldDismissOnTopWindowDeactivate`,
`PopupWindow::ShouldDismissOnTopWindowDeactivate`).
+- **Rule:** On GTK, route a chained popup's wheel event by the GDK window it names, not by the grab widget and not
+ by the global cursor position.
+ **Why:** While the sub holds the grab, `gtk_main_do_event` hands every `GDK_SCROLL` of the chain to the grab
+ widget (the sub) with its original, un-rebased coordinates [source] (`gtkmain.c:1789-1792`, 1923-1924), while
+ GDK Wayland sends the axis to the surface under the pointer only (`pointer_handle_axis` → `create_scroll_event`,
+ `gdkdevice-wayland.c:1929, 1527`). The sub therefore sees and consumes wheel events raised over main, so the
+ main list never scrolls, on X11 and Wayland alike. A hit test against `wxGetMousePosition()` cannot replace the
+ window test: global coordinates are unreliable on Wayland (`mouse-keyboard-focus.md`). `DropDown` connects a
+ `GtkWidget::event` handler on the sub's `GtkWindow` (its `m_widget`), which is emitted before wx's
+ `::scroll-event` handler on the same widget and suppresses it when it returns TRUE (`gtkwidget.c:7696`), then
+ delivers the event with `gtk_propagate_event(main->GetConnectWidget(), event)`. Returning TRUE there also stops
+ the parent-chain propagation.
+ ```cpp
+ // Wrong: emitted on the popup's outer GtkWindow, where wx has no handlers at all
+ g_signal_emit_by_name(main->m_widget, "scroll-event", event, &handled);
+ // Right (wxGTK): replay GTK's own delivery on the widget wx listens to
+ gtk_propagate_event(main->GetConnectWidget(), event);
+ ```
+ **Where wx listens [source].** `wxPopupWindow::Create` builds a popup from two widgets: `m_widget` is the outer
+ `GtkWindow` and `m_wxwindow` is a `wxPizza` child added to it. `wxWindowGTK::GetConnectWidget()` is
+ `m_wxwindow ? m_wxwindow : m_widget`, and `ConnectWidget()` — which binds `button_press_event`, `motion_notify_event`
+ and `scroll_event` — is called on that widget (`src/gtk/window.cpp` `Create`, `GetConnectWidget`). A signal emitted
+ on the outer `GtkWindow` therefore reaches no wx handler; only events GTK delivers to the inner widget, or to a
+ descendant of the grab widget, are seen by wx. `GTKGetConnectWindow()`/`GTKGetMainWindow()` are the matching
+ GdkWindows.
+ Cite: `DropDown::messureSize`, `DropDown::mouseWheelMoved`.
- **Rule:** When shrinking a dropdown to fit above the display bottom, give up if fewer than two rows would
remain.
**Why:** On Wayland the popup can land where almost no vertical space is left. Clamping to that sliver made an
diff --git a/.claude/skills/orca-wxwidgets/references/webview-gl-aui-media.md b/.claude/skills/orca-wxwidgets/references/webview-gl-aui-media.md
index b8856b21ca..e7ff4fadde 100644
--- a/.claude/skills/orca-wxwidgets/references/webview-gl-aui-media.md
+++ b/.claude/skills/orca-wxwidgets/references/webview-gl-aui-media.md
@@ -61,7 +61,8 @@ available; GTK2/WebKit1 is an opt-out configuration the GUI does not support.
11. A web host that re-themes in place handles `EVT_WEBVIEW_RECREATED` without `Skip()`; one that
needs a reload lets it through. §[Orca wrapper](#orca-webview-wrapper-widgetswebview)
12. Keep `WebViewWebKit`'s destructor removing the `"wx"` handler. §[Orca wrapper](#orca-webview-wrapper-widgetswebview)
-13. Do not widen `WEBKIT_DISABLE_COMPOSITING_MODE` beyond Orca's default-path XWayland case, and never
+13. Do not widen `WEBKIT_DISABLE_COMPOSITING_MODE` beyond the no-EGL default path where Orca forces
+ `GDK_BACKEND=x11`, for WebKitGTK older than 2.42, and never
make a page's progress depend only on a C++→JS callback. §[WebKitGTK on Linux](#webkitgtk-on-linux-sessions)
14. GL attribute lists: legacy `int[]` lists end with `0` and spell out `WX_GL_RGBA` and
`WX_GL_DOUBLEBUFFER`; `wxGLAttributes`/`wxGLContextAttrs` end with `EndList()`; MSAA is requested
@@ -567,33 +568,69 @@ vue-resize workaround script and sets a persistent SQLite cookie store on the vi
## WebKitGTK on Linux sessions
**Mechanism.** `CLI::run` (`src/OrcaSlicer.cpp`, under `#ifdef __WXGTK__`, before GTK initialises)
-branches on `GDK_BACKEND`:
+sets the NVIDIA DMABUF workaround and then branches on `GDK_BACKEND`:
+- **Both paths**, before the split: when `/proc/driver/nvidia/version` exists and the linked WebKitGTK
+ honours the switch (>= 2.44, `WebView::SupportsForceSharedMemory()`), it sets
+ `WEBKIT_DMABUF_RENDERER_FORCE_SHM=1` and `WEBKIT_FORCE_DMABUF_RENDERER=1` non-replacing. The
+ proprietary driver cannot back WebKit's hardware DMABUF renderer, so the shared-memory transport keeps
+ accelerated compositing instead of dropping it; `WEBKIT_FORCE_DMABUF_RENDERER` clears the
+ Debian/Ubuntu/openSUSE `isNVIDIA()` early return, which otherwise returns before the FORCE_SHM check.
- **Default path** (`GDK_BACKEND` unset or not starting with `x11`): if wx lacks EGL (`!wxHAS_EGL`) and
- `WAYLAND_DISPLAY` is set, it forces `GDK_BACKEND=x11`; it sets `WEBKIT_DISABLE_COMPOSITING_MODE=1`
- non-replacing **only** when both `DISPLAY` and `WAYLAND_DISPLAY` are non-empty (a Wayland session with
- XWayland available — the session, not the backend GTK will pick); `XInitThreads()` runs only when
- `DISPLAY` is set.
+ `WAYLAND_DISPLAY` is set, it forces `GDK_BACKEND=x11`, and in that same branch it sets
+ `WEBKIT_DISABLE_COMPOSITING_MODE=1` non-replacing when the linked WebKitGTK predates 2.42
+ (`WebView::NeedsCompositingWorkaround()`). That forced X11 backend in a Wayland session is the only
+ default-path case that really runs through XWayland; `DISPLAY` and `WAYLAND_DISPLAY` alone do not
+ identify it, because a native Wayland app inherits both. `XInitThreads()` runs only when `DISPLAY` is
+ set.
- **`GDK_BACKEND=x11…` opt-in path**: sets `DRI_PRIME=1` (and the NVIDIA PRIME variables when
`/proc/driver/nvidia/version` exists), calls `XInitThreads()`, and deliberately does **not** disable
- compositing (the comment: the WebKit2GTK XWayland bug appears fixed in WebKit2GTK ≥ 2.42, and leaving
- compositing on keeps hardware acceleration for Device / Setup Wizard / login pages).
+ compositing, which keeps hardware acceleration for Device / Setup Wizard / login pages.
Runtime backend detection elsewhere uses Orca's `is_running_on_wayland()` / `is_running_on_x11()`
(see `references/platforms.md`), not these environment variables.
**Pitfall.**
-- **Rule:** Set `WEBKIT_DISABLE_COMPOSITING_MODE` only on the default path in Wayland sessions,
- non-replacing (`setenv(..., false)`, so a value the user already exported wins), before GTK
- initialises; never unconditionally. Keep JS-side fallbacks so a page never
+- **Rule:** On NVIDIA reach for `WEBKIT_DMABUF_RENDERER_FORCE_SHM` before
+ `WEBKIT_DISABLE_COMPOSITING_MODE`. **Why:** the proprietary driver cannot back WebKit's hardware
+ DMABUF renderer, leaving web views blank or slow; FORCE_SHM keeps accelerated compositing and only
+ skips the hardware path, while disabling compositing drops it. Threaded scrolling is a separate,
+ release-dependent default (off in 2.44/2.45, on from 2.46). `WEBKIT_DISABLE_DMABUF_RENDERER` is not a
+ substitute — it is read first, leaves the transport set empty (no compositing from 2.44 on, where the
+ X11/Wayland fallback renderers were removed) and has a reported crash path. On Debian/Ubuntu and
+ openSUSE the `isNVIDIA()` patch returns before the FORCE_SHM check, so `WEBKIT_FORCE_DMABUF_RENDERER=1`
+ must clear it first; that variable exists only in those patches. WebKit reads all of these once per
+ process, before the first WebView.
+ The test is `/proc/driver/nvidia/version`, so a hybrid laptop that renders on its iGPU also takes the
+ shared-memory path, which is a per-frame GPU readback rather than zero-copy; exporting
+ `WEBKIT_DMABUF_RENDERER_FORCE_SHM=0` in the environment restores the hardware path.
+ ```cpp
+ // Wrong: kills compositing and threaded scrolling (and can crash on modern WebKit)
+ ::setenv("WEBKIT_DISABLE_DMABUF_RENDERER", "1", false);
+ // Right: keep compositing, skip only the hardware DMABUF path
+ if (::access("/proc/driver/nvidia/version", F_OK) == 0 && WebView::SupportsForceSharedMemory()) {
+ ::setenv("WEBKIT_DMABUF_RENDERER_FORCE_SHM", "1", /*replace*/ false);
+ ::setenv("WEBKIT_FORCE_DMABUF_RENDERER", "1", /*replace*/ false);
+ }
+ ```
+ Cite: WebKit 2.52.6 `Source/WebKit/UIProcess/gtk/AcceleratedBackingStore.cpp`
+ (`rendererBufferTransportMode()`), Debian `disable-nvidia-dmabuf.patch`, WebKit bug 262607.
+- **Rule:** Set `WEBKIT_DISABLE_COMPOSITING_MODE` only on the default path, in the branch where wx
+ lacks EGL and Orca forces `GDK_BACKEND=x11`, non-replacing (`setenv(..., false)`, so a value the user
+ already exported wins), before GTK
+ initialises; never unconditionally, and only for the WebKitGTK releases that need it (older than
+ 2.42, `WebView::NeedsCompositingWorkaround()`). Keep JS-side fallbacks so a page never
waits forever for a C++→JS call.
- **Why:** WebKit2GTK accelerated compositing could fail silently under XWayland, leaving web views
- blank (Setup Wizard stuck on "Loading..."); disabling it everywhere needlessly drops hardware
- acceleration; without the JS timeout the user is stuck when the signal is lost.
+ **Why:** WebKit2GTK accelerated compositing could fail silently under XWayland before 2.42, leaving
+ web views blank (Setup Wizard stuck on "Loading..."); the variable also turns off threaded scrolling,
+ so applying it on a newer WebKit needlessly drops both GPU compositing and async scrolling (the
+ Device tab loses its smoothness); without the JS timeout the user is stuck when the signal is lost.
```cpp
// Wrong: unconditional, kills HW acceleration everywhere
::setenv("WEBKIT_DISABLE_COMPOSITING_MODE", "1", false);
- // Right (default path only): non-replacing, before GTK init, Wayland session with XWayland
- if (display && *display && wayland && *wayland)
+ // Right (default path only): non-replacing, before GTK init, WebKitGTK < 2.42,
+ // and only in the branch that forces GDK_BACKEND=x11 (wx without EGL), the
+ // case that runs through XWayland
+ if (WebView::NeedsCompositingWorkaround() && wayland && *wayland)
::setenv("WEBKIT_DISABLE_COMPOSITING_MODE", "1", /*replace*/ false);
```
Cite: c12912e0df (`src/OrcaSlicer.cpp`; `resources/web/guide/0/load.js` `OnInit`
diff --git a/.github/actions/deploy-nightly/action.yml b/.github/actions/deploy-nightly/action.yml
new file mode 100644
index 0000000000..cfcd1c7fcb
--- /dev/null
+++ b/.github/actions/deploy-nightly/action.yml
@@ -0,0 +1,29 @@
+name: 'Deploy Nightly'
+description: 'Upload a file to a release, replacing the asset of the same name'
+inputs:
+ asset_path:
+ description: 'Path of the file to upload'
+ required: true
+ asset_name:
+ description: 'Asset name on the release'
+ required: true
+ content_type:
+ description: 'Content type of the uploaded file'
+ required: false
+ default: 'application/octet-stream'
+ tag:
+ description: 'Tag of the release to upload to'
+ required: false
+ default: 'nightly-builds'
+runs:
+ using: 'composite'
+ steps:
+ - name: Replace release asset
+ shell: bash
+ env:
+ GH_TOKEN: ${{ github.token }}
+ ASSET_PATH: ${{ inputs.asset_path }}
+ ASSET_NAME: ${{ inputs.asset_name }}
+ CONTENT_TYPE: ${{ inputs.content_type }}
+ RELEASE_TAG: ${{ inputs.tag }}
+ run: bash "$GITHUB_ACTION_PATH/deploy.sh"
diff --git a/.github/actions/deploy-nightly/deploy.sh b/.github/actions/deploy-nightly/deploy.sh
new file mode 100644
index 0000000000..9d5b22b9a8
--- /dev/null
+++ b/.github/actions/deploy-nightly/deploy.sh
@@ -0,0 +1,104 @@
+#!/usr/bin/env bash
+# Replaces one asset of a GitHub release, uploading under a temporary name
+# first so a failed upload leaves the old asset in place.
+#
+# Environment: GH_TOKEN, ASSET_PATH, ASSET_NAME, CONTENT_TYPE, RELEASE_TAG and
+# the GITHUB_* variables Actions sets.
+
+# The $names inside the single-quoted jq programs are jq variables.
+# shellcheck disable=SC2016
+set -euo pipefail
+
+repo_api="$GITHUB_API_URL/repos/$GITHUB_REPOSITORY"
+
+if [ ! -f "$ASSET_PATH" ]; then
+ echo "::error::$ASSET_PATH does not exist"
+ exit 1
+fi
+
+# The speed limit turns a stalled transfer into an error that --retry handles.
+curl_opts=(-sS --retry 3 --connect-timeout 30 --speed-limit 1024 --speed-time 60
+ -H "Authorization: Bearer $GH_TOKEN")
+
+# Prints the response body, or reports GitHub's error body and fails.
+api() {
+ local out
+ if ! out=$(curl "${curl_opts[@]}" --fail-with-body "$@"); then
+ # A workflow command ends at the first newline.
+ echo "::error::GitHub API request failed: ${out//[$'\r\n']/ }" >&2
+ return 1
+ fi
+ printf '%s\n' "$out"
+}
+
+http_status() {
+ curl "${curl_opts[@]}" -o /dev/null -w '%{http_code}' "$@"
+}
+
+# jq prints CRLF on Windows.
+jqr() {
+ jq -r "$@" | tr -d '\r'
+}
+
+delete_asset() {
+ local code
+ code=$(http_status -X DELETE "$repo_api/releases/assets/$1")
+ case $code in
+ # A 404 means a concurrent run already deleted the asset.
+ 204 | 404) ;;
+ *)
+ echo "::error::Deleting release asset $1 failed with HTTP $code" >&2
+ return 1
+ ;;
+ esac
+}
+
+list_assets() {
+ local page=1 json
+ while :; do
+ # Callers run this inside $(...), where bash ignores set -e.
+ json=$(api "$repo_api/releases/$release_id/assets?per_page=100&page=$page") || exit 1
+ printf '%s\n' "$json"
+ [ "$(jqr length <<<"$json")" -eq 100 ] || break
+ page=$((page + 1))
+ done | jq -s add
+}
+
+release=$(api "$repo_api/releases/tags/$RELEASE_TAG")
+release_id=$(jqr .id <<<"$release")
+upload_url=$(jqr .upload_url <<<"$release")
+upload_url=${upload_url%%\{*}
+
+# Unique per run attempt, so concurrent runs never upload to the same name.
+tmp_name="$ASSET_NAME.partial-$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT"
+
+# Deletes leftover partials older than an hour, an age no upload in progress reaches.
+stale_ids=$(list_assets | jqr --arg prefix "$ASSET_NAME.partial-" \
+ '.[] | select((.name | startswith($prefix)) and (.created_at | fromdateiso8601) < now - 3600) | .id')
+for id in $stale_ids; do
+ delete_asset "$id"
+done
+
+name_query=$(jqr -n --arg name "$tmp_name" '$name | @uri')
+# Uploads once, since a retry after an upload that succeeded fails on the taken name.
+new_id=$(api --retry 0 -X POST -H "Content-Type: $CONTENT_TYPE" -T "$ASSET_PATH" \
+ "$upload_url?name=$name_query" | jqr .id)
+trap 'delete_asset "$new_id" || true' EXIT
+
+rename_body=$(jq -n --arg name "$ASSET_NAME" '{name: $name}')
+# Retries on HTTP 422, which a concurrent run causes by renaming its own upload
+# between this delete and this rename.
+for _ in 1 2 3; do
+ old_ids=$(list_assets | jqr --arg name "$ASSET_NAME" '.[] | select(.name == $name) | .id')
+ for id in $old_ids; do
+ delete_asset "$id"
+ done
+ code=$(http_status -X PATCH -d "$rename_body" "$repo_api/releases/assets/$new_id")
+ if [ "$code" = 200 ]; then
+ trap - EXIT
+ exit 0
+ fi
+ [ "$code" = 422 ] || break
+done
+echo "::error::Renaming $tmp_name to $ASSET_NAME failed with HTTP $code" >&2
+exit 1
diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml
index ab4cd57f5f..ff07d1efb7 100644
--- a/.github/workflows/build_all.yml
+++ b/.github/workflows/build_all.yml
@@ -5,9 +5,10 @@ on:
branches:
- main
- release/*
- - belt-printer
paths:
- 'deps/**'
+ - 'deps_src/**'
+ - 'cmake/**'
- 'src/**'
- '**/CMakeLists.txt'
- 'version.inc'
@@ -15,8 +16,10 @@ on:
- 'resources/**'
- ".github/workflows/build_*.yml"
- ".github/workflows/unit_tests*.yml"
+ - 'build_linux.sh'
- 'build_win.bat'
- 'scripts/test_build_win.ps1'
+ - 'build_release_macos.sh'
- 'scripts/build_preset_cache.*'
- 'scripts/flatpak/**'
- 'scripts/msix/**'
@@ -29,6 +32,7 @@ on:
paths:
- 'deps/**'
- 'deps_src/**'
+ - 'cmake/**'
- 'src/**'
- '**/CMakeLists.txt'
- 'version.inc'
@@ -55,7 +59,9 @@ on:
default: false
concurrency:
- group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }}
+ # cancel_closed_pr_builds.yml joins this group by name, so update that file
+ # with any change here.
+ group: build-all-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }}
# Pushes don't cancel a running build, because only a finished branch build
# saves caches every pull request can restore.
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
@@ -262,9 +268,6 @@ jobs:
date:
ver:
ver_pure:
- # Belt-printer nightlies share the main nightly release but carry a `_belt`
- # suffix so they never overwrite the main assets.
- nightly_suffix: ${{ github.ref == 'refs/heads/belt-printer' && '_belt' || '' }}
steps:
- name: "Remove unneeded stuff to free disk space"
run:
@@ -439,15 +442,11 @@ jobs:
name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
path: '/__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak'
- name: Deploy Flatpak to nightly release
- if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/belt-printer')
- uses: WebFreak001/deploy-nightly@v3.2.0
+ if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main'
+ uses: ./.github/actions/deploy-nightly
with:
- upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
- release_id: 137995723
asset_path: /__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
- asset_name: OrcaSlicer-Linux-flatpak_nightly${{ env.nightly_suffix }}_${{ matrix.variant.arch }}.flatpak
- asset_content_type: application/octet-stream
- max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
+ asset_name: OrcaSlicer-Linux-flatpak_nightly_${{ matrix.variant.arch }}.flatpak
# The asset is /app (the exes link it at runtime) plus the build tree
# slimmed to what ctest needs.
- name: Package flatpak test asset
diff --git a/.github/workflows/build_check_cache.yml b/.github/workflows/build_check_cache.yml
index 31fdd6cb28..0da6c2b7b4 100644
--- a/.github/workflows/build_check_cache.yml
+++ b/.github/workflows/build_check_cache.yml
@@ -1,73 +1,198 @@
-name: Check Cache
-
-on:
- workflow_call:
- inputs:
- os:
- required: true
- type: string
- arch:
- required: false
- type: string
- compiler:
- required: false
- type: string
- default: msvc
- build-deps-only:
- required: false
- type: boolean
- force-build:
- required: false
- type: boolean
-
-jobs:
- check_cache: # determines if there is a cache and outputs variables used in caching process
- name: Check Cache
- runs-on: ${{ inputs.os }}
- outputs:
- cache-key: ${{ steps.set_outputs.outputs.cache-key }}
- cache-path: ${{ steps.set_outputs.outputs.cache-path }}
- valid-cache: ${{ steps.cache_deps.outputs.cache-hit }}
- steps:
- - name: Checkout
- uses: actions/checkout@v7
- with:
- lfs: 'false'
-
- - name: set outputs
- id: set_outputs
- env:
- # Anything that changes how the tree is built belongs in the key, or a job
- # restores one it cannot use. Linux amd64 passes no arch deliberately, so
- # 'linux-clang' keeps the cache it already has.
- cache-os: ${{ runner.os == 'macOS' && format('{0}-{1}', inputs.os, inputs.arch) || (runner.os == 'Windows' && format('windows-{0}-{1}', inputs.arch, inputs.compiler) || format('linux-clang{0}', inputs.arch && format('-{0}', inputs.arch) || '')) }}
- # The Windows ARM64 deps build in build-arm64, all others under build;
- # build_deps.yml and build_orca.yml pass the Windows directory to build_win.bat.
- dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || (runner.os == 'Windows' && inputs.arch == 'arm64') && '-arm64/OrcaSlicer_dep' || '/OrcaSlicer_dep' }}
- output-cmd: ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}}
- run: |
- echo cache-key=${{ env.cache-os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }}
- echo cache-path=${{ github.workspace }}/deps/build${{ env.dep-folder-name }} >> ${{ env.output-cmd }}
-
- - name: load cache
- id: cache_deps
- uses: actions/cache@v6
- with:
- path: ${{ steps.set_outputs.outputs.cache-path }}
- key: ${{ steps.set_outputs.outputs.cache-key }}
- lookup-only: true
-
- build_deps: # call next step
- name: Build Deps
- needs: [check_cache]
- uses: ./.github/workflows/build_deps.yml
- with:
- cache-key: ${{ needs.check_cache.outputs.cache-key }}
- cache-path: ${{ needs.check_cache.outputs.cache-path }}
- valid-cache: ${{ needs.check_cache.outputs.valid-cache == 'true' }}
- os: ${{ inputs.os }}
- arch: ${{ inputs.arch }}
- compiler: ${{ inputs.compiler }}
- build-deps-only: ${{ inputs.build-deps-only }}
- force-build: ${{ inputs.force-build }}
- secrets: inherit
+name: Check Cache
+
+on:
+ workflow_call:
+ inputs:
+ os:
+ required: true
+ type: string
+ arch:
+ required: false
+ type: string
+ compiler:
+ required: false
+ type: string
+ default: msvc
+ build-deps-only:
+ required: false
+ type: boolean
+ force-build:
+ required: false
+ type: boolean
+
+# Read by scripts/ci_deps_cache.sh.
+env:
+ REPO: ${{ github.repository }}
+ WORKFLOW_REF: ${{ github.workflow_ref }}
+ BASE_REF: ${{ github.base_ref }}
+
+jobs:
+ check_cache: # determines if there is a cache and outputs variables used in caching process
+ name: Check Cache
+ # Hosted macOS runners are scarce, so their lookup runs on Linux.
+ runs-on: ${{ startsWith(inputs.os, 'macos-') && 'ubuntu-24.04' || inputs.os }}
+ outputs:
+ cache-key: ${{ steps.set_outputs.outputs.cache-key }}
+ cache-path: ${{ steps.set_outputs.outputs.cache-path }}
+ valid-cache: ${{ steps.cache_deps.outputs.cache-hit }}
+ macos-path: ${{ steps.macos_path.outputs.path }}
+ key-inputs: ${{ steps.wait_check.outputs.key-inputs }}
+ wait-for: ${{ steps.wait_check.outputs.wait-for }}
+ wait-since: ${{ steps.wait_check.outputs.wait-since }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v7
+ with:
+ lfs: 'false'
+ # The wait check compares the merge commit with its first parent.
+ fetch-depth: ${{ startsWith(inputs.os, 'macos-') && 2 || 1 }}
+ # Fetches only deps/, which the key hashes, and the wait script.
+ sparse-checkout: |
+ /deps/
+ /scripts/ci_deps_cache.sh
+ sparse-checkout-cone-mode: false
+
+ - name: set outputs
+ id: set_outputs
+ env:
+ # Anything that changes how the tree is built belongs in the key, or a job
+ # restores one it cannot use. Linux amd64 passes no arch deliberately, so
+ # 'linux-clang' keeps the cache it already has.
+ cache-os: ${{ (runner.os == 'macOS' || startsWith(inputs.os, 'macos-')) && format('{0}-{1}', inputs.os, inputs.arch) || (runner.os == 'Windows' && format('windows-{0}-{1}', inputs.arch, inputs.compiler) || format('linux-clang{0}', inputs.arch && format('-{0}', inputs.arch) || '')) }}
+ # The Windows ARM64 deps build in build-arm64, all others under build;
+ # build_deps.yml and build_orca.yml pass the Windows directory to build_win.bat.
+ dep-folder-name: ${{ (runner.os == 'macOS' || startsWith(inputs.os, 'macos-')) && format('/{0}', inputs.arch) || (runner.os == 'Windows' && inputs.arch == 'arm64') && '-arm64/OrcaSlicer_dep' || '/OrcaSlicer_dep' }}
+ output-cmd: ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}}
+ run: |
+ echo cache-key=${{ env.cache-os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }}
+ # Relative to the workspace, which differs from the build's when this job runs on Linux.
+ echo cache-path=deps/build${{ env.dep-folder-name }} >> ${{ env.output-cmd }}
+
+ # actions/cache matches the path too, so a Linux lookup for macOS uses the
+ # workspace of a hosted macOS job.
+ - name: macOS cache path
+ id: macos_path
+ if: ${{ startsWith(inputs.os, 'macos-') }}
+ run: echo "path=/Users/runner/work/${GITHUB_REPOSITORY#*/}/${GITHUB_REPOSITORY#*/}/${{ steps.set_outputs.outputs.cache-path }}" >> "$GITHUB_OUTPUT"
+
+ - name: load cache
+ id: cache_deps
+ uses: actions/cache@v6
+ with:
+ path: ${{ steps.macos_path.outputs.path || format('{0}/{1}', github.workspace, steps.set_outputs.outputs.cache-path) }}
+ key: ${{ steps.set_outputs.outputs.cache-key }}
+ lookup-only: true
+
+ # A pull request that misses the cache can wait for a base branch build of the same deps.
+ - name: check for a base branch build to wait for
+ id: wait_check
+ if: ${{ startsWith(inputs.os, 'macos-') && github.event_name == 'pull_request' && steps.cache_deps.outputs.cache-hit != 'true' }}
+ env:
+ GH_TOKEN: ${{ github.token }}
+ run: bash scripts/ci_deps_cache.sh check
+
+ wait_for_deps:
+ name: Wait for base branch deps
+ needs: [check_cache]
+ if: ${{ needs.check_cache.outputs.wait-for != '' }}
+ runs-on: ubuntu-24.04
+ env:
+ WAIT_MINUTES: 120
+ # Must exceed WAIT_MINUTES.
+ timeout-minutes: 130
+ # Waiting runs queue here, and only the first one holds a runner.
+ concurrency:
+ group: deps-wait-${{ github.base_ref }}-${{ needs.check_cache.outputs.cache-key }}
+ queue: max
+ outputs:
+ hit: ${{ steps.lookup.outputs.cache-hit }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v7
+ with:
+ sparse-checkout: scripts/ci_deps_cache.sh
+ sparse-checkout-cone-mode: false
+
+ - name: wait for the deps cache
+ env:
+ GH_TOKEN: ${{ github.token }}
+ KEY: ${{ needs.check_cache.outputs.cache-key }}
+ KEY_INPUTS: ${{ needs.check_cache.outputs.key-inputs }}
+ WAIT_FOR: ${{ needs.check_cache.outputs.wait-for }}
+ WAIT_SINCE: ${{ needs.check_cache.outputs.wait-since }}
+ ARCH: ${{ inputs.arch }}
+ run: bash scripts/ci_deps_cache.sh wait
+
+ - name: load cache
+ id: lookup
+ uses: actions/cache@v6
+ with:
+ path: ${{ needs.check_cache.outputs.macos-path }}
+ key: ${{ needs.check_cache.outputs.cache-key }}
+ lookup-only: true
+
+ # Hosted macOS runners are scarce, so a pull request's macOS build waits until
+ # one is free that push and nightly builds do not need. See the script.
+ macos_admission:
+ name: Wait for a macOS runner
+ needs: [check_cache, wait_for_deps]
+ if: ${{ !cancelled() && needs.check_cache.result == 'success' && startsWith(inputs.os, 'macos-') && github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'macos-priority') }}
+ runs-on: ubuntu-24.04
+ env:
+ WAIT_MINUTES: 240
+ PRIORITY: false
+ # Must exceed WAIT_MINUTES.
+ timeout-minutes: 250
+ # One line for every arch of every pull request, and only its first job polls.
+ concurrency:
+ group: macos-admission
+ queue: max
+ steps: &macos_admission_steps
+ - name: Checkout
+ uses: actions/checkout@v7
+ with:
+ sparse-checkout: scripts/ci_macos_admission.py
+ sparse-checkout-cone-mode: false
+
+ - name: wait for a macOS runner
+ env:
+ GH_TOKEN: ${{ github.token }}
+ MACOS_RUNNER_LIMIT: ${{ vars.MACOS_RUNNER_LIMIT }}
+ # -u, or the log shows nothing until the wait ends.
+ run: python3 -u scripts/ci_macos_admission.py
+
+ # The macos-priority label, when the run starts, puts a pull request in its own
+ # line, which the normal one yields to. The names are fixed, because a skipped
+ # job is listed under its unevaluated name, and the script matches both.
+ macos_admission_priority:
+ name: Wait for a macOS runner (priority)
+ needs: [check_cache, wait_for_deps]
+ if: ${{ !cancelled() && needs.check_cache.result == 'success' && startsWith(inputs.os, 'macos-') && github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'macos-priority') }}
+ runs-on: ubuntu-24.04
+ env:
+ WAIT_MINUTES: 240
+ PRIORITY: true
+ # Must exceed WAIT_MINUTES.
+ timeout-minutes: 250
+ concurrency:
+ group: macos-admission-priority
+ queue: max
+ steps: *macos_admission_steps
+
+ build_deps: # call next step
+ name: Build Deps
+ needs: [check_cache, wait_for_deps, macos_admission, macos_admission_priority]
+ # A failed wait counts as no cache, so the deps are built here. A failed
+ # admission still builds rather than skip macOS.
+ if: ${{ !cancelled() && needs.check_cache.result == 'success' }}
+ uses: ./.github/workflows/build_deps.yml
+ with:
+ cache-key: ${{ needs.check_cache.outputs.cache-key }}
+ cache-path: ${{ needs.check_cache.outputs.cache-path }}
+ valid-cache: ${{ needs.check_cache.outputs.valid-cache == 'true' || needs.wait_for_deps.outputs.hit == 'true' }}
+ os: ${{ inputs.os }}
+ arch: ${{ inputs.arch }}
+ compiler: ${{ inputs.compiler }}
+ build-deps-only: ${{ inputs.build-deps-only }}
+ force-build: ${{ inputs.force-build }}
+ secrets: inherit
diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml
index f1cc9a9723..3c778d03e6 100644
--- a/.github/workflows/build_deps.yml
+++ b/.github/workflows/build_deps.yml
@@ -45,7 +45,7 @@ jobs:
- name: load cached deps
uses: actions/cache@v6
with:
- path: ${{ inputs.cache-path }}
+ path: ${{ github.workspace }}/${{ inputs.cache-path }}
key: ${{ inputs.cache-key }}
- uses: lukka/get-cmake@latest
@@ -122,7 +122,7 @@ jobs:
choco install strawberryperl
}
# cache-path is the install directory inside the deps build directory.
- $deps = (Split-Path "${{ inputs.cache-path }}").Replace('\', '/')
+ $deps = (Split-Path "${{ github.workspace }}/${{ inputs.cache-path }}").Replace('\', '/')
# -l compiles with Visual Studio's clang-cl and -x builds with Ninja; --msvc --msbuild is cl under the Visual Studio generator.
$flags = if ("${{ inputs.compiler }}" -eq "clang") { "-l", "-x" } else { "--msvc", "--msbuild" }
.\build_win.bat -d --arch ${{ inputs.arch }} --deps-dir $deps @flags
diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml
index 7b001a8c48..60456ad171 100644
--- a/.github/workflows/build_orca.yml
+++ b/.github/workflows/build_orca.yml
@@ -33,11 +33,8 @@ jobs:
ubuntu-ver: '2404'
ubuntu-ver-str: '_Ubuntu2404'
ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }}
- # Branches whose builds are published to the nightly release. The
- # belt-printer branch ships alongside main but its assets carry a `_belt`
- # suffix (nightly_suffix) so they never overwrite the main nightly assets.
- deploy_nightly: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/belt-printer' }}
- nightly_suffix: ${{ github.ref == 'refs/heads/belt-printer' && '_belt' || '' }}
+ NSIS_VERSION: '3.13'
+ NSIS_SHA256: BA63DFFC4410EE89193E1CB5A41989991BD77C61068DA17E3156D136B7B0B3D8
steps:
- name: Checkout
@@ -49,7 +46,7 @@ jobs:
if: ${{ !(runner.os == 'macOS' && inputs.macos-combine-only) }}
uses: actions/cache@v6
with:
- path: ${{ inputs.cache-path }}
+ path: ${{ github.workspace }}/${{ inputs.cache-path }}
key: ${{ inputs.cache-key }}
fail-on-cache-miss: true
@@ -184,6 +181,13 @@ jobs:
if: runner.os == 'macOS' && !inputs.macos-combine-only && !vars.SELF_HOSTED
run: |
df -hI /
+ # Deleting the unused Xcodes takes minutes, so only do it when the
+ # build might not fit. A cold build uses under 4 GiB after this step.
+ avail_gib=$(df -g / | awk 'NR == 2 { print $4 }')
+ if [ "$avail_gib" -ge 15 ]; then
+ echo "$avail_gib GiB free, enough for the build"
+ exit 0
+ fi
# Keep only the selected Xcode
xcode=$(basename "$(cd "$(xcode-select -p)/../.." && pwd -P)")
sudo find /Applications -maxdepth 1 -type d -name "Xcode_*.app" ! -name "$xcode" -exec rm -rf {} +
@@ -260,7 +264,7 @@ jobs:
# Thanks to RaySajuuk, it's working now
- name: Sign app and notary
- if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/belt-printer' || startsWith(github.ref, 'refs/heads/release/')) && runner.os == 'macOS' && inputs.macos-combine-only
+ if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && runner.os == 'macOS' && inputs.macos-combine-only
timeout-minutes: 30
working-directory: ${{ github.workspace }}
env:
@@ -339,16 +343,16 @@ jobs:
# Notarize main DMG
xcrun notarytool submit "OrcaSlicer_Mac_universal_${{ env.ver }}.dmg" --apple-id "${{ secrets.APPLE_DEV_ACCOUNT }}" --team-id "${{ secrets.TEAM_ID }}" --password "${{ secrets.APP_PWD }}" --wait
- xcrun stapler staple OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
+ retry xcrun stapler staple OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
# Notarize profile validator DMG if it exists
if [ -f "OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg" ]; then
xcrun notarytool submit "OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg" --apple-id "${{ secrets.APPLE_DEV_ACCOUNT }}" --team-id "${{ secrets.TEAM_ID }}" --password "${{ secrets.APP_PWD }}" --wait
- xcrun stapler staple OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
+ retry xcrun stapler staple OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
fi
- name: Create DMG without notary
- if: github.ref != 'refs/heads/main' && github.ref != 'refs/heads/belt-printer' && runner.os == 'macOS' && inputs.macos-combine-only
+ if: github.ref != 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only
working-directory: ${{ github.workspace }}
run: |
# Load the `retry` helper (retries flaky commands such as `hdiutil create`).
@@ -394,26 +398,19 @@ jobs:
if-no-files-found: ignore
- name: Deploy Mac release
- if: github.repository == 'OrcaSlicer/OrcaSlicer' && env.deploy_nightly == 'true' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
- uses: WebFreak001/deploy-nightly@v3.2.0
- with:
- upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
- release_id: 137995723
- asset_path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
- asset_name: OrcaSlicer_Mac_universal_nightly${{ env.nightly_suffix }}.dmg
- asset_content_type: application/octet-stream
- max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
-
- - name: Deploy Mac OrcaSlicer_profile_validator DMG release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
- uses: WebFreak001/deploy-nightly@v3.2.0
+ uses: ./.github/actions/deploy-nightly
+ with:
+ asset_path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
+ asset_name: OrcaSlicer_Mac_universal_nightly.dmg
+
+ # The DMG is only built when the validator app was.
+ - name: Deploy Mac OrcaSlicer_profile_validator DMG release
+ if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED && hashFiles(format('OrcaSlicer_profile_validator_Mac_universal_{0}.dmg', env.ver)) != ''
+ uses: ./.github/actions/deploy-nightly
with:
- upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
- release_id: 137995723
asset_path: ${{ github.workspace }}/OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
asset_name: OrcaSlicer_profile_validator_Mac_universal_nightly.dmg
- asset_content_type: application/octet-stream
- max_releases: 1
# Windows
- name: Set Windows build variables
@@ -432,40 +429,53 @@ jobs:
if: runner.os == 'Windows'
uses: microsoft/setup-msbuild@v3
- - name: Install nsis
+ # NSIS builds the installer. A pinned portable copy is kept in the Actions
+ # cache, so most runs never download it, and a cache miss fetches the
+ # release archive from SourceForge instead of going through the Chocolatey
+ # community feed, which hosted runners often cannot reach. Prepending it to
+ # PATH also makes cpack use it over the NSIS preinstalled on some images.
+ - name: Restore NSIS
+ id: nsis-cache
+ if: runner.os == 'Windows' && !vars.SELF_HOSTED
+ uses: actions/cache/restore@v6
+ with:
+ path: ${{ runner.temp }}/nsis
+ key: nsis-${{ env.NSIS_VERSION }}
+
+ - name: Install NSIS
if: runner.os == 'Windows' && !vars.SELF_HOSTED
shell: pwsh
- # The Chocolatey community feed intermittently 504s, and `choco install`
- # exits 0 when package resolution fails that way. Unchecked, the job then
- # builds for ~25 minutes before `cpack -G NSIS` reports a missing makensis.
- # Retry the install and verify makensis itself, so a real failure stops here.
run: |
dir "C:/Program Files (x86)/Windows Kits/10/Include"
- $nsisDir = Join-Path ${env:ProgramFiles(x86)} 'NSIS'
+ $nsisDir = Join-Path $env:RUNNER_TEMP 'nsis'
$makensis = Join-Path $nsisDir 'makensis.exe'
- for ($attempt = 1; $attempt -le 3 -and -not (Test-Path $makensis); $attempt++) {
- if ($attempt -gt 1) { Start-Sleep -Seconds (15 * $attempt) }
- Write-Host "::group::choco install nsis (attempt $attempt)"
- choco install nsis --yes --no-progress
- Write-Host "::endgroup::"
- }
if (-not (Test-Path $makensis)) {
- throw "NSIS install failed: $makensis not found after 3 attempts."
+ $zip = Join-Path $env:RUNNER_TEMP "nsis-$env:NSIS_VERSION.zip"
+ curl.exe -fsSL --retry 5 --retry-all-errors --retry-delay 15 -o $zip "https://downloads.sourceforge.net/project/nsis/NSIS%203/$env:NSIS_VERSION/nsis-$env:NSIS_VERSION.zip"
+ if ($LASTEXITCODE -ne 0) { throw "NSIS $env:NSIS_VERSION download failed." }
+ if ((Get-FileHash $zip -Algorithm SHA256).Hash -ne $env:NSIS_SHA256) {
+ throw "NSIS $env:NSIS_VERSION archive does not match its pinned SHA256."
+ }
+ Expand-Archive $zip $env:RUNNER_TEMP
+ Move-Item (Join-Path $env:RUNNER_TEMP "nsis-$env:NSIS_VERSION") $nsisDir
}
& $makensis /VERSION
$nsisDir | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
+ - name: Save NSIS
+ if: runner.os == 'Windows' && !vars.SELF_HOSTED && steps.nsis-cache.outputs.cache-hit != 'true'
+ uses: actions/cache/save@v6
+ with:
+ path: ${{ runner.temp }}/nsis
+ key: nsis-${{ env.NSIS_VERSION }}
+
- name: Build slicer Win
if: runner.os == 'Windows'
working-directory: ${{ github.workspace }}
- # Orca: Removed Netfabb STL fixing service support in favor of CGAL.
- # env:
- # WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\'
- # WindowsSDKVersion: '10.0.26100.0\'
# --tests builds the unit tests too; the unit_tests_windows_* jobs run them.
run: |
# cache-path is the install directory inside the deps build directory.
- $deps = (Split-Path "${{ inputs.cache-path }}").Replace('\', '/')
+ $deps = (Split-Path "${{ github.workspace }}/${{ inputs.cache-path }}").Replace('\', '/')
# -l compiles with Visual Studio's clang-cl and -x builds with Ninja; --msvc --msbuild is cl under the Visual Studio generator.
$flags = if ("${{ inputs.compiler }}" -eq "clang") { "-l", "-x" } else { "--msvc", "--msbuild" }
.\build_win.bat -s --tests -i --arch ${{ inputs.arch }} --build-dir $env:BUILD_DIR --deps-dir $deps @flags
@@ -543,37 +553,28 @@ jobs:
path: ${{ github.workspace }}/build/src/Release/OrcaSlicer_profile_validator.exe
- name: Deploy Windows release portable
- if: github.repository == 'OrcaSlicer/OrcaSlicer' && env.deploy_nightly == 'true' && runner.os == 'Windows' && !vars.SELF_HOSTED
- uses: WebFreak001/deploy-nightly@v3.2.0
+ if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
+ uses: ./.github/actions/deploy-nightly
with:
- upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
- release_id: 137995723
asset_path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer_Windows_${{ env.ver }}${{ env.ARCH_SUFFIX }}_portable.zip
- asset_name: OrcaSlicer_Windows${{ env.ARCH_SUFFIX }}_nightly${{ env.nightly_suffix }}_portable.zip
- asset_content_type: application/x-zip-compressed
- max_releases: 1
+ asset_name: OrcaSlicer_Windows${{ env.ARCH_SUFFIX }}_nightly_portable.zip
+ content_type: application/x-zip-compressed
- name: Deploy Windows release installer
- if: github.repository == 'OrcaSlicer/OrcaSlicer' && env.deploy_nightly == 'true' && runner.os == 'Windows' && !vars.SELF_HOSTED
- uses: WebFreak001/deploy-nightly@v3.2.0
+ if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
+ uses: ./.github/actions/deploy-nightly
with:
- upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
- release_id: 137995723
asset_path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer_Windows_Installer_${{ env.ver }}${{ env.ARCH_SUFFIX }}.exe
- asset_name: OrcaSlicer_Windows_Installer${{ env.ARCH_SUFFIX }}_nightly${{ env.nightly_suffix }}.exe
- asset_content_type: application/x-msdownload
- max_releases: 1
+ asset_name: OrcaSlicer_Windows_Installer${{ env.ARCH_SUFFIX }}_nightly.exe
+ content_type: application/x-msdownload
- name: Deploy Windows OrcaSlicer_profile_validator release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && inputs.arch != 'arm64' && !vars.SELF_HOSTED
- uses: WebFreak001/deploy-nightly@v3.2.0
+ uses: ./.github/actions/deploy-nightly
with:
- upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
- release_id: 137995723
asset_path: ${{ github.workspace }}/build/src/Release/OrcaSlicer_profile_validator.exe
asset_name: OrcaSlicer_profile_validator_Windows_nightly.exe
- asset_content_type: application/x-msdownload
- max_releases: 1
+ content_type: application/x-msdownload
- name: Build MSIX Store package Win
if: runner.os == 'Windows' && !vars.SELF_HOSTED
@@ -701,56 +702,37 @@ jobs:
path: './build/src/dev-utils/Release/generate_system_cache'
- name: Deploy Ubuntu release
- if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && env.deploy_nightly == 'true' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
- uses: WebFreak001/deploy-nightly@v3.2.0
+ if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
+ uses: ./.github/actions/deploy-nightly
with:
- upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
- release_id: 137995723
asset_path: ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}${{ env.arch_suffix }}_${{ env.ver }}.AppImage
- asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}${{ env.arch_suffix }}_nightly${{ env.nightly_suffix }}.AppImage
- asset_content_type: application/octet-stream
- max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
+ asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}${{ env.arch_suffix }}_nightly.AppImage
- name: Deploy Ubuntu release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED && inputs.arch != 'aarch64' }}
- uses: rickstaa/action-create-tag@v1
- with:
- tag: "nightly-builds"
- tag_exists_error: false
- force_push_tag: true
- message: "nightly-builds"
+ run: |
+ git -c user.name="${GITHUB_ACTOR}" -c user.email="${GITHUB_ACTOR}@users.noreply.github.com" tag -f -a nightly-builds "${GITHUB_SHA}" -m nightly-builds
+ git push -f origin refs/tags/nightly-builds
- name: Deploy Ubuntu OrcaSlicer_profile_validator release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED && inputs.arch != 'aarch64' }}
- uses: WebFreak001/deploy-nightly@v3.2.0
+ uses: ./.github/actions/deploy-nightly
with:
- upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
- release_id: 137995723
asset_path: ./build/src/Release/OrcaSlicer_profile_validator
asset_name: OrcaSlicer_profile_validator_Linux${{ env.ubuntu-ver-str }}_nightly
- asset_content_type: application/octet-stream
- max_releases: 1
- name: Deploy Ubuntu generate_system_cache release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED && inputs.arch != 'aarch64' }}
- uses: WebFreak001/deploy-nightly@v3.2.0
+ uses: ./.github/actions/deploy-nightly
with:
- upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
- release_id: 137995723
asset_path: ./build/src/dev-utils/Release/generate_system_cache
asset_name: generate_system_cache_Linux${{ env.ubuntu-ver-str }}_nightly
- asset_content_type: application/octet-stream
- max_releases: 1
- name: Deploy orca_custom_preset_tests
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED && inputs.arch != 'aarch64' }}
- uses: WebFreak001/deploy-nightly@v3.2.0
+ uses: ./.github/actions/deploy-nightly
with:
- upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
- release_id: 137995723
asset_path: ${{ github.workspace }}/resources/profiles/orca_custom_preset_tests.zip
asset_name: orca_custom_preset_tests.zip
- asset_content_type: application/octet-stream
- max_releases: 1
# The build has just touched everything it can use, so an object
# untouched for a week is dead, usually orphaned by a flag change.
diff --git a/.github/workflows/cancel_closed_pr_builds.yml b/.github/workflows/cancel_closed_pr_builds.yml
new file mode 100644
index 0000000000..c0c9c52fee
--- /dev/null
+++ b/.github/workflows/cancel_closed_pr_builds.yml
@@ -0,0 +1,21 @@
+name: Cancel builds of closed pull requests
+
+on:
+ # pull_request_target needs no approval for first-time contributors and must never
+ # check out pull request code.
+ pull_request_target:
+ types:
+ - closed
+
+permissions: {}
+
+jobs:
+ cancel:
+ # Matches the concurrency group in build_all.yml, so joining it cancels the pull
+ # request's unfinished Build all run.
+ concurrency:
+ group: build-all-pull_request-${{ github.event.pull_request.number }}
+ cancel-in-progress: true
+ runs-on: ubuntu-latest
+ steps:
+ - run: echo "Joined concurrency group build-all-pull_request-${{ github.event.pull_request.number }}."
diff --git a/.github/workflows/check_profiles.yml b/.github/workflows/check_profiles.yml
index 2a6ed8f0a4..4167cc705b 100644
--- a/.github/workflows/check_profiles.yml
+++ b/.github/workflows/check_profiles.yml
@@ -13,6 +13,7 @@ on:
# both it and its tests live in scripts/, so a PR touching only those must still run
# this workflow.
- 'resources/printers/**'
+ - 'resources/info/legacy_compatible_printers.json'
- 'scripts/**'
# orca_profile_tool.py reads the variant key sets from PrintConfig.cpp, and its
# tests the obsolete keys, so a PR changing either must be checked against the profiles.
@@ -59,6 +60,21 @@ jobs:
python3 ./scripts/orca_profile_tool.py check 2>&1 | tee ${{ runner.temp }}/profile_tool.log
exit ${PIPESTATUS[0]}
+ # The app migrates user filament presets made against 2.4.2 back to the printers their
+ # parent listed then, from resources/info/legacy_compatible_printers.json. A PR that
+ # renames a filament preset or narrows its compatible_printers changes what that map
+ # must say, so it has to regenerate it.
+ - name: Check the legacy compatible printers map
+ id: legacy_compat
+ continue-on-error: true
+ run: |
+ set -o pipefail
+ base="${{ runner.temp }}/v2.4.2"
+ git fetch --no-tags --depth=1 origin refs/tags/v2.4.2:refs/tags/v2.4.2
+ mkdir -p "$base"
+ git archive v2.4.2 resources/profiles | tar -x -C "$base"
+ python3 ./scripts/orca_profile_tool.py legacy-compat --base "$base/resources/profiles" --check 2>&1 | tee ${{ runner.temp }}/legacy_compat.log
+
# download
- name: Download
working-directory: ${{ github.workspace }}
@@ -74,12 +90,26 @@ jobs:
set +e
./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 2>&1 | tee ${{ runner.temp }}/validate_system.log
exit ${PIPESTATUS[0]}
+ # The validator above is the nightly build of main, so it cannot slice profiles that use
+ # settings a PR adds to the engine: it reports their placeholders as undefined. A PR that
+ # changes src/ also runs Build all, whose Slice check runs this same sweep with the
+ # validator built from the PR, so the sweep below only runs for the other PRs.
+ - name: Detect engine changes
+ id: engine_changes
+ if: ${{ github.event_name == 'pull_request' }}
+ run: |
+ base=${{ github.event.pull_request.base.sha }}
+ if git fetch --no-tags --depth=1 origin "$base" && ! git diff --quiet "$base" HEAD -- src/; then
+ echo "changed=true" >> "$GITHUB_OUTPUT"
+ echo "::notice::This PR changes src/, so Build all's Slice check slices the profiles with the PR-built validator."
+ fi
# Slice a two-colour cube through every printer, and through every system process/filament whose
# templates no printer's own slice reaches, so every custom g-code and filename_format shipped is
# expanded (names in {if} branches not taken included) - catches undefined-placeholder /
# invalid-flow bugs the static checks above cannot see.
- name: validate slice (expand custom g-code)
id: validate_slice
+ if: ${{ steps.engine_changes.outputs.changed != 'true' }}
continue-on-error: true
run: |
set +e
@@ -203,7 +233,7 @@ jobs:
echo "${{ github.event.pull_request.number }}" > ${{ runner.temp }}/profile-check-results/pr_number.txt
- name: Prepare comment artifact
- if: ${{ always() && github.event_name == 'pull_request' && (steps.profile_tool.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_slice.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
+ if: ${{ always() && github.event_name == 'pull_request' && (steps.profile_tool.outcome == 'failure' || steps.legacy_compat.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_slice.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
run: |
{
# Marker matched by check_profiles_comment.yml to delete prior comments.
@@ -220,6 +250,17 @@ jobs:
echo ""
fi
+ if [ "${{ steps.legacy_compat.outcome }}" = "failure" ]; then
+ echo "### Legacy Compatible Printers Map Out of Date"
+ echo ""
+ echo '```'
+ head -c 30000 ${{ runner.temp }}/legacy_compat.log || echo "No output captured"
+ echo '```'
+ echo ""
+ echo 'Regenerate it: `git archive v2.4.2 resources/profiles | tar -x -C /tmp/v2.4.2`, then `python3 scripts/orca_profile_tool.py legacy-compat --base /tmp/v2.4.2/resources/profiles`.'
+ echo ""
+ fi
+
if [ "${{ steps.validate_system.outcome }}" = "failure" ]; then
echo "### System Profile Validation Failed"
echo ""
@@ -269,7 +310,7 @@ jobs:
retention-days: 1
- name: Fail if any check failed
- if: ${{ always() && (steps.profile_tool.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_slice.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
+ if: ${{ always() && (steps.profile_tool.outcome == 'failure' || steps.legacy_compat.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_slice.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
run: |
echo "One or more profile checks failed; see the step logs above."
echo 'Reproduce the whole run locally with scripts/check_profile.sh (scripts\check_profile.bat on Windows).'
diff --git a/.github/workflows/clang_tidy.yml b/.github/workflows/clang_tidy.yml
index 2f27a0eaff..445f294fcc 100644
--- a/.github/workflows/clang_tidy.yml
+++ b/.github/workflows/clang_tidy.yml
@@ -16,6 +16,15 @@ on:
permissions:
contents: read
+ # Listing caches and builds while waiting for a deps cache.
+ actions: read
+
+# Read by scripts/ci_deps_cache.sh.
+env:
+ REPO: ${{ github.repository }}
+ WORKFLOW: build_all.yml
+ BASE_REF: ${{ github.base_ref }}
+ JOB: build_linux (${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }})
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
@@ -35,7 +44,7 @@ jobs:
# The PR merge commit plus its first parent, the base it is diffed against.
fetch-depth: 2
- - name: Look for changed C++ files
+ - name: Look for changed files
id: changes
run: |
if git -c core.quotePath=false diff --name-only HEAD^1 -- src tests | grep -qE '\.(cpp|cc|cxx|hpp|h|hxx)$'; then
@@ -43,18 +52,75 @@ jobs:
else
echo "No C++ changes under src/ or tests/."
fi
+ if ! git diff --quiet HEAD^1 -- deps; then
+ echo "deps=true" >> "$GITHUB_OUTPUT"
+ fi
+ echo "deps-key=linux-clang-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }}" >> "$GITHUB_OUTPUT"
- # Parsing needs the dependency headers, not a build of this PR's deps/, so
- # a PR that changes deps/ falls back to the newest cache main has.
+ # Parsing needs the dependency headers, not a build of this PR's deps/.
+ # Without an exact match the job waits for the build that saves it: this
+ # PR's own when it changes deps/, otherwise a running push build of the
+ # base branch with the same deps. With neither, a PR that keeps deps/
+ # falls back to the newest cache.
- name: Restore cached deps
+ id: deps_cache
if: steps.changes.outputs.cpp == 'true'
uses: actions/cache/restore@v6
with:
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep
- key: linux-clang-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }}
+ key: ${{ steps.changes.outputs.deps-key }}
+
+ - name: Look for a build to wait for
+ id: wait_check
+ if: steps.changes.outputs.cpp == 'true' && steps.deps_cache.outputs.cache-hit != 'true'
+ env:
+ GH_TOKEN: ${{ github.token }}
+ HEAD_SHA: ${{ github.event.pull_request.head.sha }}
+ run: bash scripts/ci_deps_cache.sh ${{ steps.changes.outputs.deps == 'true' && 'own' || 'check' }}
+
+ # Linux Build Deps takes about 35 minutes on GitHub-hosted runners. The
+ # wait ends early when the deps job fails.
+ - name: Wait for the deps cache
+ if: steps.wait_check.outputs.wait-for != ''
+ timeout-minutes: 100
+ env:
+ GH_TOKEN: ${{ github.token }}
+ KEY: ${{ steps.changes.outputs.deps-key }}
+ CACHE_REF: ${{ steps.changes.outputs.deps == 'true' && github.ref || format('refs/heads/{0}', github.base_ref) }}
+ KEY_INPUTS: ${{ steps.wait_check.outputs.key-inputs }}
+ WAIT_FOR: ${{ steps.wait_check.outputs.wait-for }}
+ WAIT_SINCE: ${{ steps.wait_check.outputs.wait-since }}
+ WAIT_MINUTES: 90
+ run: bash scripts/ci_deps_cache.sh wait
+
+ - name: Restore the deps cache after waiting
+ id: waited_cache
+ if: steps.wait_check.outputs.wait-for != ''
+ uses: actions/cache/restore@v6
+ with:
+ path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep
+ key: ${{ steps.changes.outputs.deps-key }}
+
+ - name: Fail without this PR's deps cache
+ if: steps.changes.outputs.deps == 'true' && steps.wait_check.outcome == 'success' && steps.waited_cache.outputs.cache-hit != 'true'
+ run: |
+ echo "::error::No deps cache ${{ steps.changes.outputs.deps-key }}. Check this PR's Linux Build Deps job, then rerun clang-tidy."
+ exit 1
+
+ - name: Restore the newest cached deps
+ id: newest_cache
+ if: steps.changes.outputs.deps != 'true' && steps.wait_check.outcome == 'success' && steps.waited_cache.outputs.cache-hit != 'true'
+ uses: actions/cache/restore@v6
+ with:
+ path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep
+ key: ${{ steps.changes.outputs.deps-key }}
restore-keys: linux-clang-cache-orcaslicer_deps-build-
fail-on-cache-miss: true
+ - name: Warn about older deps
+ if: steps.newest_cache.outcome == 'success' && steps.newest_cache.outputs.cache-hit != 'true'
+ run: echo "::warning title=Older deps::No cache matches this PR's deps/, so clang-tidy parsed against ${{ steps.newest_cache.outputs.cache-matched-key }}. If it reports errors in code that uses a dependency, rerun clang-tidy once the base branch's Build all has saved the new deps."
+
- name: Apt-Install Dependencies
if: steps.changes.outputs.cpp == 'true' && !vars.SELF_HOSTED
uses: ./.github/actions/apt-install-deps
diff --git a/.github/workflows/parity_nightly.yml b/.github/workflows/parity_nightly.yml
index 44937fdad5..7980990a6f 100644
--- a/.github/workflows/parity_nightly.yml
+++ b/.github/workflows/parity_nightly.yml
@@ -156,7 +156,7 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
- libopengl0 libglu1-mesa libgl1 libegl1 libwebkit2gtk-4.1-0
+ libopengl0 libgl1 libegl1 libwebkit2gtk-4.1-0
- uses: actions/setup-python@v6
with:
@@ -224,7 +224,7 @@ jobs:
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
xvfb xdotool imagemagick openbox mesa-utils \
- libopengl0 libglu1-mesa libgl1 libegl1 libwebkit2gtk-4.1-0
+ libopengl0 libgl1 libegl1 libwebkit2gtk-4.1-0
- name: Run the parity harness
run: |
diff --git a/AGENTS.md b/AGENTS.md
index 8e7b141718..8dc4cf601e 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -67,6 +67,7 @@ ctest --test-dir ./tests/fff_print -C Release
- Keep code concise and clear. Manually simplify AI generated bloated codes before review.
- Include targeted tests or documented verification for behavior changes, especially in slicing logic, profiles, formats, and GUI defaults.
- For profile changes (`resources/profiles//**`), check that `version` in the sibling `resources/profiles/.json` was bumped.
+- For new or changed UI strings, check they follow [Writing translatable strings in the source](#writing-translatable-strings-in-the-source): no concatenated fragments, plural forms for counts, contexts for ambiguous words.
- For translation changes (`localization/i18n/**/*.po`), check that recurring terms match the [Localization glossary](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/developer_reference/localization_glossary.md) for that language.
## Localization & translations
@@ -74,6 +75,19 @@ ctest --test-dir ./tests/fff_print -C Release
Catalogs live in `localization/i18n//OrcaSlicer_.po`; the template is `OrcaSlicer.pot`.
See the [Localization guide](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/developer_reference/localization_guide.md) for the human-facing version of these principles.
+### Writing translatable strings in the source
+
+Translators see one msgid at a time and cannot change the code around it, so each message must be complete in a single msgid. Use the wrapper that fits instead of assembling text from pieces:
+
+- **One msgid per sentence, with placeholders.** Never build a message by concatenating translated fragments (`_L("A") + name + _L(" is B")`) or by splicing a translated word such as `_L("left")` into another sentence: the translator can't reorder or inflect the parts. Write `format(_L("%1% is too close to others"), name)`.
+- **A count needs a plural form.** Don't write `file(s)` or leave a verb unchanged after a number. Use `_L_PLURAL("%1% object", "%1% objects", n)`. libslic3r has no plural lookup, so word the message so it doesn't depend on a count, or build it in the GUI.
+- **An ambiguous word needs a context.** When a short string means different things in different places (verb or noun, a mode name, a CAD term), give each sense its own context with `_L_CONTEXT`/`_u8L_CONTEXT`/`L_CONTEXT`. Keep the most common sense without a context so its existing translations stay valid.
+- **Mark every user-visible string** (`_L`/`_u8L`, or `L` where it is translated later) and list new source files in `localization/i18n/list.txt`: files that aren't listed are never extracted.
+- Add a `// TRN` comment above a new string whose meaning or placeholders aren't obvious.
+- Never choose behavior by comparing translated text; compare ids or flags.
+
+See `.claude/skills/orca-translations/references/source-audit.md` for the full checklist.
+
### Terminology
- Use the [Localization glossary](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/developer_reference/localization_glossary.md) as the source of truth for recurring terms, so the same English term is always rendered the same way within a language, and terms that must stay in English (brand/product names, acronyms, materials, file formats, G-code tokens, macros/variables/identifiers) are not translated.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2bfb01a657..06ea0dbd6f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -288,6 +288,19 @@ if (APPLE)
# Type"); Ninja/-Wall does not, and under -Werror it fails Xcode builds on code CI accepts.
set(CMAKE_XCODE_ATTRIBUTE_GCC_WARN_64_TO_32_BIT_CONVERSION "NO")
+ # The Xcode generator ignores CMAKE__COMPILER_LAUNCHER, so hand the launcher to
+ # Xcode's own Compiler Launcher setting, which wraps every clang compile (C, C++,
+ # Objective-C++ and the precompiled header) with one program: the C++ launcher wins when
+ # both are set. The setting takes a single program path, not a CMake launcher list.
+ # Xcode versions without it ignore it and build uncached.
+ if (CMAKE_GENERATOR STREQUAL "Xcode")
+ if (CMAKE_CXX_COMPILER_LAUNCHER)
+ set(CMAKE_XCODE_ATTRIBUTE_C_COMPILER_LAUNCHER "${CMAKE_CXX_COMPILER_LAUNCHER}")
+ elseif (CMAKE_C_COMPILER_LAUNCHER)
+ set(CMAKE_XCODE_ATTRIBUTE_C_COMPILER_LAUNCHER "${CMAKE_C_COMPILER_LAUNCHER}")
+ endif ()
+ endif ()
+
message(STATUS "Orca: IS_CROSS_COMPILE: ${IS_CROSS_COMPILE}")
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(CMAKE_INSTALL_RPATH "$ORIGIN")
@@ -497,47 +510,6 @@ endif()
# Once we get rid of Perl and libslic3r is linked statically, we can get rid of -fPIC
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-# WIN10SDK_PATH is used to point CMake to the WIN10 SDK installation directory.
-# We pick it from environment if it is not defined in another way
-# ORCA: Removed Netfabb STL fixing service support in favor of CGAL.
-# if(WIN32)
-# if(NOT DEFINED WIN10SDK_PATH)
-# if(DEFINED ENV{WIN10SDK_PATH})
-# set(WIN10SDK_PATH "$ENV{WIN10SDK_PATH}")
-# endif()
-# endif()
-# if(DEFINED WIN10SDK_PATH)
-# #BBS: modify win10sdk_path
-# if (EXISTS "${WIN10SDK_PATH}/winrt/windows.graphics.printing3d.h")
-# set(WIN10SDK_INCLUDE_PATH "${WIN10SDK_PATH}")
-# else()
-# message("WIN10SDK_PATH is invalid: ${WIN10SDK_PATH}")
-# message("${WIN10SDK_PATH}/winrt/windows.graphics.printing3d.h was not found")
-# message("STL fixing by the Netfabb service will not be compiled")
-# unset(WIN10SDK_PATH)
-# endif()
-# else()
-# # Try to use the default Windows 10 SDK path.
-# if (DEFINED ENV{WindowsSdkDir} AND DEFINED ENV{WindowsSDKVersion})
-# set(WIN10SDK_INCLUDE_PATH "$ENV{WindowsSdkDir}/Include/$ENV{WindowsSDKVersion}")
-# else ()
-# set(WIN10SDK_INCLUDE_PATH "C:/Program Files (x86)/Windows Kits/10/Include/10.0.26100.0")
-# endif ()
-# if (NOT EXISTS "${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h")
-# message("${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h was not found")
-# message("STL fixing by the Netfabb service will not be compiled")
-# unset(WIN10SDK_INCLUDE_PATH)
-# endif()
-# endif()
-# if(WIN10SDK_INCLUDE_PATH)
-# message("Building with Win10 Netfabb STL fixing service support")
-# add_definitions(-DHAS_WIN10SDK)
-# include_directories(SYSTEM "${WIN10SDK_INCLUDE_PATH}")
-# else()
-# message("Building without Win10 Netfabb STL fixing service support")
-# endif()
-# endif()
-
if (APPLE)
message("OS X SDK Path: ${CMAKE_OSX_SYSROOT}")
if (CMAKE_OSX_DEPLOYMENT_TARGET)
@@ -1084,10 +1056,10 @@ endif ()
find_path(SPNAV_INCLUDE_DIR spnav.h)
if (SPNAV_INCLUDE_DIR)
- find_library(SPNAV_LIB NAMES libspnav.a) # Force linking libspnav statically
+ find_library(SPNAV_LIB NAMES libspnav.a spnav)
if (SPNAV_LIB)
add_definitions(-DHAVE_SPNAV)
- message(STATUS "SPNAV library found")
+ message(STATUS "SPNAV library found: ${SPNAV_LIB}")
else()
message(STATUS "SPNAV library NOT found, Spacenavd not supported")
endif()
@@ -1386,7 +1358,8 @@ set (CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
set (CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/resources/images\\\\OrcaSlicer.ico")
set (CPACK_NSIS_MUI_ICON "${CPACK_PACKAGE_ICON}")
set (CPACK_NSIS_MUI_UNIICON "${CPACK_PACKAGE_ICON}")
-set (CPACK_NSIS_INSTALLED_ICON_NAME "$INSTDIR\\\\orca-slicer.exe")
+# Relative to the install dir: CPack's NSIS template prefixes $INSTDIR itself.
+set (CPACK_NSIS_INSTALLED_ICON_NAME "orca-slicer.exe")
set (CPACK_PACKAGE_CHECKSUM SHA256)
set (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "OrcaSlicer")
set (CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
diff --git a/README.md b/README.md
index 40ba7637b9..1c87cd00b8 100644
--- a/README.md
+++ b/README.md
@@ -68,6 +68,10 @@ If you come across any of these in search results, please report them as
Regular updates fueled by continuous community contributions.
- **Wide Printer Compatibility**
Supports a broad range of printers: Bambu Lab, Prusa, Creality, Voron, and more.
+- **[Belt Printer Support](https://www.orcaslicer.com/wiki/belt_printing)**
+ Slice for belt / conveyor (infinite-Z) printers, with belt-aware supports and a tilted-bed preview. Contributed by [Joseph Robertson (@HarrierPigeon)](https://github.com/HarrierPigeon).
+- **[IDEX/IQEX Parallel Printing Support](https://www.orcaslicer.com/wiki/idex_iqex_parallel_printing)**
+ Print copies or mirror images of a part on every carriage of an IDEX or IQEX printer at once, with the mode chosen per plate and nozzle clearance zones shown on the bed. Contributed by [Clifford (@cgarwood82)](https://github.com/cgarwood82).
- Additional features can be found in the [change notes](https://github.com/OrcaSlicer/OrcaSlicer/releases/).
# Wiki
@@ -82,24 +86,14 @@ The [wiki](https://www.orcaslicer.com/wiki) aims to provide a detailed explanati
## Stable Release
📥 **[Download the Latest Stable Release](https://github.com/OrcaSlicer/OrcaSlicer/releases/latest)**
-Visit our GitHub Releases page for the latest stable version of OrcaSlicer, recommended for most users.
+Visit our GitHub Releases page for the latest stable version of OrcaSlicer, recommended for most users.
+Windows release binaries are code signed; see our [Code signing policy](#code-signing-policy).
## Nightly Builds
🌙 **[Download the Latest Nightly Build](https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/nightly-builds)**
Explore the latest developments in OrcaSlicer with our nightly builds. Feedback on these versions is highly appreciated.
-### Belt Printer Builds
-
-The [nightly release](https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/nightly-builds) ships **two parallel builds**: the standard build and a belt-printer build. Both are attached to the same release — tell them apart by the filename suffix:
-
-- **Standard** — no suffix (e.g. `OrcaSlicer_Windows_Installer_x64_nightly.exe`)
-- **Belt** — `_belt` suffix (e.g. `OrcaSlicer_Windows_Installer_x64_nightly_belt.exe`)
-
-The `_belt` builds add **experimental support for belt / conveyor (infinite-Z) printers**, where the model is sliced against a tilted belt surface instead of a flat horizontal bed. They include ready-to-use belt printer profiles, the full belt slicing pipeline (mesh rotation and G-code transforms), belt-aware support generation, and a tilted-bed preview.
-
-> ⚠️ Belt printer support is under active development and is **not yet merged into `main`** — it currently ships only in these parallel `_belt` builds, produced from the [`belt-printer`](https://github.com/OrcaSlicer/OrcaSlicer/tree/belt-printer) branch. See tracking PR [#14394](https://github.com/OrcaSlicer/OrcaSlicer/pull/14394) and the original documentation in [#12998](https://github.com/OrcaSlicer/OrcaSlicer/pull/12998).
-
# How to install
## Windows
@@ -251,6 +245,16 @@ OrcaSlicer began in that same spirit, drawing from BambuStudio, PrusaSlicer, and
The OrcaSlicer logo was designed by community member [Justin Levine](https://github.com/jal-co).
+# Code Signing Policy
+
+Free code signing provided by [SignPath.io](https://about.signpath.io), certificate by [SignPath Foundation](https://signpath.org).
+
+Windows release binaries are built by GitHub Actions from this repository and signed through the SignPath Foundation program. Every signing request is manually approved.
+
+**Team roles:** [SoftFever](https://github.com/SoftFever) is the committer, reviewer and approver for all signed releases.
+
+**Privacy policy:** See the [OrcaSlicer privacy policy](https://www.orcaslicer.com/privacy-policy/).
+
# License
- **OrcaSlicer** is licensed under the GNU Affero General Public License, version 3.
diff --git a/build_linux.sh b/build_linux.sh
index 6d65a10e41..cf07d7e9df 100755
--- a/build_linux.sh
+++ b/build_linux.sh
@@ -8,9 +8,10 @@ SCRIPT_PATH=$(dirname "$(readlink -f "${0}")")
pushd "${SCRIPT_PATH}" > /dev/null
function usage() {
- echo "Usage: ./${SCRIPT_NAME} [-1][-b][-c][-d][-D][-e][-F][-g][-h][-i][-j N][-p][-r][-s][-t][-u][-l][-L]"
+ echo "Usage: ./${SCRIPT_NAME} [-1][-b][-c][-d][-D][-e][-F][-g][-h][-i][-j N][-J N][-p][-r][-s][-t][-u][-l][-L] [-- CMAKE_ARGS...]"
echo " -1: limit builds to one core (where possible)"
echo " -j N: limit builds to N cores (where possible)"
+ echo " -J N: build up to N dependencies at a time, each still using -j jobs (default: 1)"
echo " -b: build in Debug mode"
echo " -c: force a clean build"
echo " -C: enable ANSI-colored compile output (GNU/Clang only)"
@@ -21,27 +22,32 @@ function usage() {
echo " -g: run the requested build steps inside a Docker/Podman Ubuntu 24.04 container similar to the GitHub Actions Linux runner"
echo " -h: prints this help text"
echo " -i: build the Orca Slicer AppImage (optional)"
- echo " -p: boost ccache hit rate by disabling precompiled headers (default: ON)"
+ echo " -p: disable precompiled headers (on by default): more ccache hits after header changes, slower misses"
echo " -r: skip RAM and disk checks (low RAM compiling)"
echo " -s: build the Orca Slicer (optional)"
echo " -t: build tests (optional), requires -s flag"
echo " -u: install system dependencies (asks for sudo password; build prerequisite)"
echo " -l: use Clang instead of GCC (default: GCC)"
echo " -L: use ld.lld as linker (if available)"
+ echo " -- CMAKE_ARGS...: pass everything after '--' to the cmake configure step of the deps (-d) and OrcaSlicer (-s/-t) builds,"
+ echo " e.g. -DCMAKE_CXX_FLAGS=\"-O2 -march=native\", -DCMAKE_CXX_COMPILER=g++-14, -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=mold."
+ echo " They come last on the cmake command line, so they override what -l and -L set."
echo "For a first use, you want to './${SCRIPT_NAME} -u'"
echo " and then './${SCRIPT_NAME} -dsi'"
echo "For a GitHub Actions-like Linux build locally, use './${SCRIPT_NAME} -g -istrlL'"
echo "Use './${SCRIPT_NAME} -gF -istrlL' to rebuild the cached runner image first."
echo "Set ORCA_CONTAINER_CLI, ORCA_DOCKER_IMAGE, ORCA_DOCKER_BASE_IMAGE, or ORCA_DOCKER_CMAKE_VERSION to override the container runtime, cached image tag, base image, or CMake version."
+ echo "DEPS_EXTRA_BUILD_ARGS and ORCA_EXTRA_BUILD_ARGS add whitespace-separated cmake configure arguments to the deps and OrcaSlicer builds; prefer '--' for arguments that contain spaces."
}
SLIC3R_PRECOMPILED_HEADERS="ON"
+DEPS_PARALLEL=""
unset name
BUILD_DIR=build
BUILD_CONFIG=Release
FORWARDED_ARGS=()
-while getopts ":1j:bcCdDeFghiprstulL" opt ; do
+while getopts ":1j:J:bcCdDeFghiprstulL" opt ; do
case ${opt} in
1 )
export CMAKE_BUILD_PARALLEL_LEVEL=1
@@ -51,6 +57,10 @@ while getopts ":1j:bcCdDeFghiprstulL" opt ; do
export CMAKE_BUILD_PARALLEL_LEVEL=$OPTARG
FORWARDED_ARGS+=("-j" "$OPTARG")
;;
+ J )
+ DEPS_PARALLEL=$OPTARG
+ FORWARDED_ARGS+=("-J" "$OPTARG")
+ ;;
b )
BUILD_DIR=build-dbg
BUILD_CONFIG=Debug
@@ -125,6 +135,20 @@ while getopts ":1j:bcCdDeFghiprstulL" opt ; do
esac
done
+# getopts stops at '--'; whatever follows is handed to cmake unchanged.
+if [[ ${OPTIND} -le $# ]] ; then
+ separator_index=$((OPTIND-1))
+ if [[ "${!separator_index}" != "--" ]] ; then
+ echo "Unexpected argument '${!OPTIND}': cmake arguments must follow '--', aborting."
+ exit 1
+ fi
+fi
+shift $((OPTIND-1))
+EXTRA_CMAKE_ARGS=("$@")
+if [[ ${#EXTRA_CMAKE_ARGS[@]} -gt 0 ]] ; then
+ FORWARDED_ARGS+=("--" "${EXTRA_CMAKE_ARGS[@]}")
+fi
+
if [ ${OPTIND} -eq 1 ] ; then
usage
exit 1
@@ -135,6 +159,11 @@ if [[ -n "${CLEAN_DOCKER_IMAGE}" ]] && [[ -z "${USE_DOCKER}" ]] ; then
exit 1
fi
+if [[ -n "${DEPS_PARALLEL}" ]] && ! [[ "${DEPS_PARALLEL}" =~ ^[1-9][0-9]*$ ]] ; then
+ echo "Error: -J expects a positive integer."
+ exit 1
+fi
+
function check_available_memory_and_disk() {
FREE_MEM_GB=$(free --gibi --total | grep 'Mem' | rev | cut --delimiter=" " --fields=1 | rev)
MIN_MEM_GB=10
@@ -520,6 +549,20 @@ fi
if [ -n "${CMAKE_CCACHE}" ] ; then
echo "${CMAKE_CCACHE} found, enabling compiler caching..."
export CMAKE_CCACHE_ARGS=(-DCMAKE_C_COMPILER_LAUNCHER="${CMAKE_CCACHE}" -DCMAKE_CXX_COMPILER_LAUNCHER="${CMAKE_CCACHE}")
+ # The same ccache settings as the CI build. Without this sloppiness ccache refuses every
+ # compile that uses the precompiled header, which is most of OrcaSlicer, and skips headers
+ # a checkout has just written. It is added to the sloppiness already configured, and
+ # CCACHE_SLOPPINESS or CCACHE_(NO)DEPEND set in the environment win.
+ if [[ "$(basename "${CMAKE_CCACHE}")" == ccache ]] ; then
+ if [[ -z "${CCACHE_SLOPPINESS+x}" ]] ; then
+ CCACHE_SLOPPINESS=$("${CMAKE_CCACHE}" --get-config sloppiness 2>/dev/null || true)
+ export CCACHE_SLOPPINESS="${CCACHE_SLOPPINESS:+${CCACHE_SLOPPINESS},}pch_defines,time_macros,include_file_mtime,include_file_ctime"
+ fi
+ # Hash the includes the compiler reports instead of preprocessing every miss.
+ if [[ -z "${CCACHE_DEPEND+x}${CCACHE_NODEPEND+x}" ]] ; then
+ export CCACHE_DEPEND=1
+ fi
+ fi
else
echo "Note: ccache or sccache are not found. Install either of them for faster rebuilds."
fi
@@ -536,8 +579,30 @@ if [[ -n "${BUILD_DEPS}" ]] ; then
BUILD_ARGS+=(-DCMAKE_BUILD_TYPE="${BUILD_CONFIG}")
fi
- print_and_run cmake -S deps -B deps/$BUILD_DIR "${CMAKE_C_CXX_COMPILER_CLANG[@]}" "${CMAKE_LLD_LINKER_ARGS[@]}" "${CMAKE_CCACHE_ARGS[@]}" -G Ninja "${COLORED_OUTPUT}" "${BUILD_ARGS[@]}"
- print_and_run cmake --build deps/$BUILD_DIR -j1
+ print_and_run cmake -S deps -B deps/$BUILD_DIR "${CMAKE_C_CXX_COMPILER_CLANG[@]}" "${CMAKE_LLD_LINKER_ARGS[@]}" "${CMAKE_CCACHE_ARGS[@]}" -G Ninja "${COLORED_OUTPUT}" "${BUILD_ARGS[@]}" "${EXTRA_CMAKE_ARGS[@]}"
+ # The top-level build runs one dependency at a time by default, which keeps the console
+ # output readable and lets that dependency's own build use all of CMAKE_BUILD_PARALLEL_LEVEL.
+ # -J raises the top level instead, and -j still applies in full to every dependency, so the
+ # worst case is -J times -j compile jobs at once. Ninja has no job server to share a pool
+ # across the nested builds, so that ceiling is not enforced anywhere: pick -J to suit the RAM.
+ DEPS_JOBS=1
+ if [[ -n "${DEPS_PARALLEL}" ]] ; then
+ DEPS_JOBS=${DEPS_PARALLEL}
+ SAVED_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL-}
+ export CMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL:-$(nproc)}
+ echo "Building up to ${DEPS_JOBS} dependencies at a time, ${CMAKE_BUILD_PARALLEL_LEVEL} jobs each: up to $(( DEPS_JOBS * CMAKE_BUILD_PARALLEL_LEVEL )) compile jobs at once."
+ fi
+
+ print_and_run cmake --build deps/$BUILD_DIR -j"${DEPS_JOBS}"
+
+ if [[ -n "${DEPS_PARALLEL}" ]] ; then
+ # Give the whole -j back to the OrcaSlicer build below.
+ if [[ -n "${SAVED_PARALLEL_LEVEL}" ]] ; then
+ export CMAKE_BUILD_PARALLEL_LEVEL=${SAVED_PARALLEL_LEVEL}
+ else
+ unset CMAKE_BUILD_PARALLEL_LEVEL
+ fi
+ fi
fi
if [[ -n "${BUILD_ORCA}" ]] || [[ -n "${BUILD_TESTS}" ]] ; then
@@ -560,7 +625,8 @@ if [[ -n "${BUILD_ORCA}" ]] || [[ -n "${BUILD_TESTS}" ]] ; then
-DSLIC3R_PCH=${SLIC3R_PRECOMPILED_HEADERS} \
-DORCA_TOOLS=ON \
"${COLORED_OUTPUT}" \
-"${BUILD_ARGS[@]}"
+"${BUILD_ARGS[@]}" \
+"${EXTRA_CMAKE_ARGS[@]}"
echo "done"
if [[ -n "${BUILD_ORCA}" ]]; then
echo "Building OrcaSlicer ..."
diff --git a/build_release_macos.sh b/build_release_macos.sh
index db03cb4ecd..cdc5dbbe3c 100755
--- a/build_release_macos.sh
+++ b/build_release_macos.sh
@@ -104,13 +104,61 @@ fi
CMAKE_VERSION=$(cmake --version | head -1 | sed 's/[^0-9]*\([0-9]*\).*/\1/')
if [ "$CMAKE_VERSION" -ge 4 ] 2>/dev/null; then
- export CMAKE_POLICY_VERSION_MINIMUM=3.5
- export CMAKE_POLICY_COMPAT="-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
+ export CMAKE_POLICY_VERSION_MINIMUM=3.10
+ export CMAKE_POLICY_COMPAT="-DCMAKE_POLICY_VERSION_MINIMUM=3.10"
echo "Detected CMake 4.x, adding compatibility flag (env + cmake arg)"
else
export CMAKE_POLICY_COMPAT=""
fi
+# Compiler cache, as in build_linux.sh. The program comes from CMAKE_CCACHE, else from a
+# launcher already set in the environment (the CI build sets ccache there), else sccache or
+# ccache from PATH; one program serves both languages. Each run applies its own choice to the
+# build directories, replacing a launcher an earlier run or a hand-run configure recorded.
+CMAKE_CCACHE_ARGS=()
+CCACHE_VAR=""
+for var in CMAKE_CCACHE CMAKE_CXX_COMPILER_LAUNCHER CMAKE_C_COMPILER_LAUNCHER; do
+ if [ -n "${!var:-}" ]; then
+ CCACHE_VAR=$var
+ break
+ fi
+done
+if [ -n "$CCACHE_VAR" ]; then
+ CCACHE_PROGRAM=${!CCACHE_VAR}
+ echo "Checking ${CCACHE_VAR} environment variable for compiler cache program..."
+ CMAKE_CCACHE=$(command -v "${CCACHE_PROGRAM}") || {
+ echo "${CCACHE_VAR} environment variable is set to '${CCACHE_PROGRAM}' but it was not found in PATH."
+ CMAKE_CCACHE=""
+ }
+elif command -v sccache >/dev/null 2>&1 ; then
+ CMAKE_CCACHE=$(command -v sccache)
+elif command -v ccache >/dev/null 2>&1 ; then
+ CMAKE_CCACHE=$(command -v ccache)
+fi
+if [ -n "${CMAKE_CCACHE}" ] ; then
+ echo "${CMAKE_CCACHE} found, enabling compiler caching..."
+ CMAKE_CCACHE_ARGS=(-DCMAKE_C_COMPILER_LAUNCHER="${CMAKE_CCACHE}" -DCMAKE_CXX_COMPILER_LAUNCHER="${CMAKE_CCACHE}")
+ # The same ccache settings as the CI build. Without this sloppiness ccache refuses every
+ # compile that uses the precompiled header, which is most of OrcaSlicer, and skips headers
+ # a checkout has just written. It is added to the sloppiness already configured, and
+ # CCACHE_SLOPPINESS or CCACHE_(NO)DEPEND set in the environment win.
+ if [[ "$(basename "${CMAKE_CCACHE}")" == ccache ]] ; then
+ if [[ -z "${CCACHE_SLOPPINESS+x}" ]] ; then
+ CCACHE_SLOPPINESS=$("${CMAKE_CCACHE}" --get-config sloppiness 2>/dev/null || true)
+ export CCACHE_SLOPPINESS="${CCACHE_SLOPPINESS:+${CCACHE_SLOPPINESS},}pch_defines,time_macros,include_file_mtime,include_file_ctime"
+ fi
+ # Hash the includes the compiler reports instead of preprocessing every miss.
+ if [[ -z "${CCACHE_DEPEND+x}${CCACHE_NODEPEND+x}" ]] ; then
+ export CCACHE_DEPEND=1
+ fi
+ fi
+else
+ echo "Note: ccache or sccache are not found. Install either of them for faster rebuilds."
+ # Clear a launcher recorded by an earlier configure. The entries must be set empty rather
+ # than removed: CMake fills a missing launcher entry from the environment.
+ CMAKE_CCACHE_ARGS=(-DCMAKE_C_COMPILER_LAUNCHER:STRING= -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=)
+fi
+
echo "Build params:"
echo " - ARCH: $ARCH"
echo " - BUILD_CONFIG: $BUILD_CONFIG"
@@ -162,6 +210,7 @@ function build_deps() {
-DCMAKE_OSX_ARCHITECTURES:STRING="${_ARCH}" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_IGNORE_PREFIX_PATH="${CMAKE_IGNORE_PREFIX_PATH}" \
+ "${CMAKE_CCACHE_ARGS[@]}" \
${CMAKE_POLICY_COMPAT}
fi
cmake --build . --config "$BUILD_CONFIG" --target deps
@@ -264,6 +313,7 @@ function build_slicer() {
-DCMAKE_OSX_ARCHITECTURES="${_ARCH}" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}" \
-DCMAKE_IGNORE_PREFIX_PATH="${CMAKE_IGNORE_PREFIX_PATH}" \
+ "${CMAKE_CCACHE_ARGS[@]}" \
${CMAKE_POLICY_COMPAT}
fi
cmake --build . --config "$BUILD_CONFIG" --target "$SLICER_BUILD_TARGET"
diff --git a/build_win.bat b/build_win.bat
index 098d6fe1ff..dc19df06bc 100644
--- a/build_win.bat
+++ b/build_win.bat
@@ -42,6 +42,7 @@ call :add_arg build_deps bool d deps "Download and build the dependencies, neede
call :add_arg build_slicer bool s slicer "Build OrcaSlicer"
call :add_arg build_tests bool "" tests "Build the unit tests"
call :add_arg run_tests bool "" run-tests "Build the unit tests and run them"
+call :add_arg make_installer bool "" installer "Build OrcaSlicer and package it into an NSIS installer"
call :add_arg pack_deps bool p pack "Bundle the built dependencies into a zip file"
call :add_arg install_deps bool u install-deps "Install or update CMake, Perl and Git with WinGet"
call :add_arg install_vs string "" install-vs "Also install Visual Studio: buildtools or ide"
@@ -185,6 +186,9 @@ if "%build_deps%%build_slicer%%pack_deps%%install_deps%%install_vs%" == "" (
if "%run_tests%" == "ON" set "build_slicer=ON"
)
+REM The installer packages the slicer build, so it always needs one.
+if "%make_installer%" == "ON" set "build_slicer=ON"
+
REM Options like --config or -j only shape a build. Without one of the actions
REM there is nothing for them to shape, so say so rather than resolving a whole
REM build and reporting it took no time. The block above may have added one.
@@ -222,6 +226,30 @@ if "%build_slicer%" == "ON" if "%install_slicer%" == "ON" if not "%slicer_target
echo --install needs the executable, but --slicer-target names "%slicer_target%".
exit /b 1
)
+REM cpack runs the same install, so it has the same need.
+if "%make_installer%" == "ON" if not "%slicer_target%" == "" if /I not "%slicer_target%" == "OrcaSlicer" (
+ echo --installer needs the executable, but --slicer-target names "%slicer_target%".
+ exit /b 1
+)
+
+REM cpack finds makensis on PATH or through the registry key the NSIS installer
+REM writes, so look in the same places, and before the build rather than after
+REM it. The value is read past its REG_SZ marker because the name column is
+REM localised and may hold spaces.
+if not "%make_installer%" == "ON" goto :nsis_ready
+if "%dry_run%" == "ON" goto :nsis_ready
+where makensis >nul 2>nul && goto :nsis_ready
+for %%v in (32 64) do (
+ for /f "delims=" %%l in ('reg query "HKLM\SOFTWARE\NSIS" /ve /reg:%%v 2^>nul ^| findstr REG_SZ') do (
+ set "nsis_line=%%l"
+ set "nsis_line=!nsis_line:*REG_SZ=!"
+ for /f "tokens=*" %%d in ("!nsis_line!") do if exist "%%d\makensis.exe" goto :nsis_ready
+ )
+)
+echo NSIS was not found, and --installer needs it to build the installer.
+echo Install it with "winget install NSIS.NSIS", then run this again.
+exit /b 1
+:nsis_ready
if not "%vs_version%" == "" if "!vs_gen_%vs_version%!" == "" (
echo Unknown Visual Studio release "%vs_version%". Known releases: 2019, 2022, 2026.
exit /b 1
@@ -734,6 +762,14 @@ if "%build_slicer%" == "ON" (
call :print_and_run cmake --build "%build_dir%" --target install --config %build_type%
%error_check%
)
+
+ REM cpack installs into its own staging tree, so this does not need -i.
+ REM Unlike CI it skips the preset cache, whose packaging step prunes the
+ REM checkout's preset JSONs.
+ if "%make_installer%" == "ON" (
+ call :print_and_run cpack -G NSIS -C %build_type% --config "%build_dir%\CPackConfig.cmake" -B "%build_dir%"
+ %error_check%
+ )
)
REM Elapsed wall clock. The 1%%a-100 trick strips a leading zero, which set /A
@@ -820,6 +856,16 @@ REM worked out the same way in either run.
if "%build_slicer%" == "ON" if not "%linked%" == "ON" echo Target %slicer_target%
if "%build_slicer%" == "ON" if not "%using_ninja%" == "ON" echo Solution %build_full%\!solution!
if "%pack_deps%" == "ON" if defined bundle echo Bundle !bundle!
+ if "%make_installer%" == "ON" (
+ REM The file name carries the version, which only CMake knows, so name
+ REM the newest match, or the pattern when there is none yet.
+ set "installer="
+ for /f "delims=" %%f in ('dir /b /o-d "!build_full!\OrcaSlicer_Windows_Installer_*.exe" 2^>nul') do (
+ if not defined installer set "installer=!build_full!\%%f"
+ )
+ if not defined installer set "installer=!build_full!\OrcaSlicer_Windows_Installer_*.exe"
+ echo Installer !installer!
+ )
echo.
echo Next
diff --git a/cmake/modules/ClangClShowIncludes.cmake b/cmake/modules/ClangClShowIncludes.cmake
index 91b9a18069..fcc48fe3f7 100644
--- a/cmake/modules/ClangClShowIncludes.cmake
+++ b/cmake/modules/ClangClShowIncludes.cmake
@@ -1,10 +1,18 @@
# ccache does not parse the -clang: arguments CMake uses for clang-cl's gcc-style
# depfile, so a cache hit writes the object and no depfile, and Ninja then records
# no headers for that object. ccache reproduces /showIncludes output on a hit.
+#
+# Clang also records the modification time of every input in a precompiled header
+# and rejects the header once one differs. ccache caches the compile that creates
+# the header, so a tree that regenerates cmake_pch.cxx gets back a header stamped
+# with the old file's time, and every compile that uses it fails. The build system
+# already rebuilds the header when an input changes. This covers the dependencies,
+# such as wxWidgets; PrecompiledHeader.cmake does the same for OrcaSlicer's targets.
foreach (_lang C CXX)
if (CMAKE_${_lang}_COMPILER_ID STREQUAL "Clang" AND
CMAKE_${_lang}_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
set(CMAKE_DEPFILE_FLAGS_${_lang} "/showIncludes")
set(CMAKE_${_lang}_DEPFILE_FORMAT msvc)
+ list(APPEND CMAKE_${_lang}_COMPILE_OPTIONS_CREATE_PCH -Xclang -fno-pch-timestamp)
endif ()
endforeach ()
diff --git a/cmake/modules/FindAlienWx.cmake b/cmake/modules/FindAlienWx.cmake
deleted file mode 100644
index 65221172be..0000000000
--- a/cmake/modules/FindAlienWx.cmake
+++ /dev/null
@@ -1,109 +0,0 @@
-# Find the wxWidgets module based on the information provided by the Perl Alien::wxWidgets module.
-
-# Check for the Perl & PerlLib modules
-include(LibFindMacros)
-libfind_package(AlienWx Perl)
-libfind_package(AlienWx PerlLibs)
-
-if (AlienWx_DEBUG)
- message(STATUS " AlienWx_FIND_COMPONENTS=${AlienWx_FIND_COMPONENTS}")
-endif()
-
-# Execute an Alien::Wx module to find the relevant information regarding
-# the wxWidgets used by the Perl interpreter.
-# Perl specific stuff
-set(AlienWx_TEMP_INCLUDE ${CMAKE_CURRENT_BINARY_DIR}/AlienWx_TEMP_INCLUDE.txt)
-execute_process(
- COMMAND ${PERL_EXECUTABLE} -e "
-# Import Perl modules.
-use strict;
-use warnings;
-use Text::ParseWords;
-
-BEGIN {
- # CMake sets the environment variables CC and CXX to the detected C compiler.
- # There is an issue with the Perl ExtUtils::CBuilder, which does not handle whitespaces
- # in the paths correctly on Windows, so we rather drop the CMake auto-detected paths.
- delete \$ENV{CC};
- delete \$ENV{CXX};
-}
-
-use Alien::wxWidgets;
-use ExtUtils::CppGuess;
-
-# Test for a Visual Studio compiler
-my \$cpp_guess = ExtUtils::CppGuess->new;
-my \$mswin = \$^O eq 'MSWin32';
-my \$msvc = \$cpp_guess->is_msvc;
-
-# List of wxWidgets components to be used.
-my @components = split /;/, '${AlienWx_FIND_COMPONENTS}';
-
-# Query the available data from Alien::wxWidgets.
-my \$version = Alien::wxWidgets->version;
-my \$config = Alien::wxWidgets->config;
-my \$compiler = Alien::wxWidgets->compiler;
-my \$linker = Alien::wxWidgets->linker;
-my \$include_path = ' ' . Alien::wxWidgets->include_path;
-my \$defines = ' ' . Alien::wxWidgets->defines;
-my \$cflags = Alien::wxWidgets->c_flags;
-my \$linkflags = Alien::wxWidgets->link_flags;
-my \$libraries = ' ' . Alien::wxWidgets->libraries(@components);
-my \$gui_toolkit = Alien::wxWidgets->config->{toolkit};
-#my @libraries = Alien::wxWidgets->link_libraries(@components);
-#my @implib = Alien::wxWidgets->import_libraries(@components);
-#my @shrlib = Alien::wxWidgets->shared_libraries(@components);
-#my @keys = Alien::wxWidgets->library_keys; # 'gl', 'adv', ...
-#my \$library_path = Alien::wxWidgets->shared_library_path;
-#my \$key = Alien::wxWidgets->key;
-#my \$prefix = Alien::wxWidgets->prefix;
-
-my \$filename = '${AlienWx_TEMP_INCLUDE}';
-open(my $fh, '>', \$filename) or die \"Could not open file '\$filename' \$!\";
-
-# Convert a space separated lists to CMake semicolon separated lists,
-# escape the backslashes,
-# export the resulting list to a temp file.
-sub cmake_set_var {
- my (\$varname, \$content) = @_;
- # Remove line separators.
- \$content =~ s/\\r|\\n//g;
- # Escape the path separators.
- \$content =~ s/\\\\/\\\\\\\\\\\\\\\\/g;
- my @words = shellwords(\$content);
- print \$fh \"set(AlienWx_\$varname \\\"\" . join(';', @words) . \"\\\")\\n\";
-}
-cmake_set_var('VERSION', \$version);
-\$include_path =~ s/ -I/ /g;
-cmake_set_var('INCLUDE_DIRS', \$include_path);
-\$libraries =~ s/ -L/ -LIBPATH:/g if \$msvc;
-cmake_set_var('LIBRARIES', \$libraries);
-#cmake_set_var('LIBRARY_DIRS', );
-#\$defines =~ s/ -D/ /g;
-cmake_set_var('DEFINITIONS', \$defines);
-#cmake_set_var('DEFINITIONS_DEBUG', );
-cmake_set_var('CXX_FLAGS', \$cflags);
-cmake_set_var('GUI_TOOLKIT', \$gui_toolkit);
-close \$fh;
-")
-include(${AlienWx_TEMP_INCLUDE})
-file(REMOVE ${AlienWx_TEMP_INCLUDE})
-unset(AlienWx_TEMP_INCLUDE)
-
-if (AlienWx_DEBUG)
- message(STATUS " AlienWx_VERSION = ${AlienWx_VERSION}")
- message(STATUS " AlienWx_INCLUDE_DIRS = ${AlienWx_INCLUDE_DIRS}")
- message(STATUS " AlienWx_LIBRARIES = ${AlienWx_LIBRARIES}")
- message(STATUS " AlienWx_LIBRARY_DIRS = ${AlienWx_LIBRARY_DIRS}")
- message(STATUS " AlienWx_DEFINITIONS = ${AlienWx_DEFINITIONS}")
- message(STATUS " AlienWx_DEFINITIONS_DEBUG = ${AlienWx_DEFINITIONS_DEBUG}")
- message(STATUS " AlienWx_CXX_FLAGS = ${AlienWx_CXX_FLAGS}")
- message(STATUS " AlienWx_GUI_TOOLKIT = ${AlienWx_GUI_TOOLKIT}")
-endif()
-
-include(FindPackageHandleStandardArgs)
-
-find_package_handle_standard_args(AlienWx
- REQUIRED_VARS AlienWx_INCLUDE_DIRS AlienWx_LIBRARIES
-# HANDLE_COMPONENTS
- VERSION_VAR AlienWx_VERSION)
diff --git a/cmake/modules/FindGLEW.cmake b/cmake/modules/FindGLEW.cmake
deleted file mode 100644
index e9ac3b6436..0000000000
--- a/cmake/modules/FindGLEW.cmake
+++ /dev/null
@@ -1,359 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-# PrusaSlicer specifics:
-# This file is backported from CMake 3.15 distribution to behave uniformly
-# across all versions of CMake. It explicitly adds GLEW_STATIC compile
-# definition to static targets which is needed to prevent link errors.
-
-#[=======================================================================[.rst:
-FindGLEW
---------
-
-Find the OpenGL Extension Wrangler Library (GLEW)
-
-Input Variables
-^^^^^^^^^^^^^^^
-
-The following variables may be set to influence this module’s behavior:
-
-``GLEW_USE_STATIC_LIBS``
- to find and create :prop_tgt:`IMPORTED` target for static linkage.
-
-``GLEW_VERBOSE``
- to output a detailed log of this module.
-
-Imported Targets
-^^^^^^^^^^^^^^^^
-
-This module defines the following :ref:`Imported Targets `:
-
-
-``GLEW::glew``
- The GLEW shared library.
-``GLEW::glew_s``
- The GLEW static library, if ``GLEW_USE_STATIC_LIBS`` is set to ``TRUE``.
-``GLEW::GLEW``
- Duplicates either ``GLEW::glew`` or ``GLEW::glew_s`` based on availability.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module defines the following variables:
-
-``GLEW_INCLUDE_DIRS``
- include directories for GLEW
-``GLEW_LIBRARIES``
- libraries to link against GLEW
-``GLEW_SHARED_LIBRARIES``
- libraries to link against shared GLEW
-``GLEW_STATIC_LIBRARIES``
- libraries to link against static GLEW
-``GLEW_FOUND``
- true if GLEW has been found and can be used
-``GLEW_VERSION``
- GLEW version
-``GLEW_VERSION_MAJOR``
- GLEW major version
-``GLEW_VERSION_MINOR``
- GLEW minor version
-``GLEW_VERSION_MICRO``
- GLEW micro version
-
-#]=======================================================================]
-
-include(FindPackageHandleStandardArgs)
-
-
-if(APPLE)
- find_package(OpenGL QUIET)
-
- if(OpenGL_FOUND)
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: Found OpenGL Framework.")
- message(STATUS "FindGLEW: OPENGL_LIBRARIES: ${OPENGL_LIBRARIES}")
- endif()
- else()
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: could not find GLEW library.")
- endif()
- return()
- endif()
-endif()
-
-
-function(__glew_set_find_library_suffix shared_or_static)
- if((UNIX AND NOT APPLE) AND "${shared_or_static}" MATCHES "SHARED")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".so")
- elseif((UNIX AND NOT APPLE) AND "${shared_or_static}" MATCHES "STATIC")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
- elseif(APPLE AND "${shared_or_static}" MATCHES "SHARED")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib;.so")
- elseif(APPLE AND "${shared_or_static}" MATCHES "STATIC")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
- elseif(WIN32 AND "${shared_or_static}" MATCHES "SHARED")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
- elseif(WIN32 AND "${shared_or_static}" MATCHES "STATIC")
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib;.a;.dll.a")
- endif()
-
- set(CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_FIND_LIBRARY_SUFFIXES}" PARENT_SCOPE)
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: CMAKE_FIND_LIBRARY_SUFFIXES for ${shared_or_static}: ${CMAKE_FIND_LIBRARY_SUFFIXES}")
- endif()
-endfunction()
-
-
-if(GLEW_VERBOSE)
- if(DEFINED GLEW_USE_STATIC_LIBS)
- message(STATUS "FindGLEW: GLEW_USE_STATIC_LIBS: ${GLEW_USE_STATIC_LIBS}.")
- else()
- message(STATUS "FindGLEW: GLEW_USE_STATIC_LIBS is undefined. Treated as FALSE.")
- endif()
-endif()
-
-find_path(GLEW_INCLUDE_DIR GL/glew.h)
-mark_as_advanced(GLEW_INCLUDE_DIR)
-
-set(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR})
-
-if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: GLEW_INCLUDE_DIR: ${GLEW_INCLUDE_DIR}")
- message(STATUS "FindGLEW: GLEW_INCLUDE_DIRS: ${GLEW_INCLUDE_DIRS}")
-endif()
-
-if("${CMAKE_GENERATOR_PLATFORM}" MATCHES "x64" OR "${CMAKE_GENERATOR}" MATCHES "Win64")
- set(_arch "x64")
-elseif("${CMAKE_GENERATOR_PLATFORM}" MATCHES "ARM64")
- set(_arch "x64") # GLEW ships one header set; ARM64 uses the x64 import path
-else()
- set(_arch "Win32")
-endif()
-
-
-set(__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
-
-__glew_set_find_library_suffix(SHARED)
-
-find_library(GLEW_SHARED_LIBRARY_RELEASE
- NAMES GLEW glew glew32
- PATH_SUFFIXES lib lib64 libx32 lib/Release/${_arch}
- PATHS ENV GLEW_ROOT)
-
-find_library(GLEW_SHARED_LIBRARY_DEBUG
- NAMES GLEWd glewd glew32d
- PATH_SUFFIXES lib lib64
- PATHS ENV GLEW_ROOT)
-
-
-__glew_set_find_library_suffix(STATIC)
-
-find_library(GLEW_STATIC_LIBRARY_RELEASE
- NAMES GLEW glew glew32s
- PATH_SUFFIXES lib lib64 libx32 lib/Release/${_arch}
- PATHS ENV GLEW_ROOT)
-
-find_library(GLEW_STATIC_LIBRARY_DEBUG
- NAMES GLEWds GLEWd glewd glewds glew32ds
- PATH_SUFFIXES lib lib64
- PATHS ENV GLEW_ROOT)
-
-set(CMAKE_FIND_LIBRARY_SUFFIXES ${__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES})
-unset(__GLEW_CURRENT_FIND_LIBRARY_SUFFIXES)
-
-include(SelectLibraryConfigurations)
-
-select_library_configurations(GLEW_SHARED)
-select_library_configurations(GLEW_STATIC)
-
-if(NOT GLEW_USE_STATIC_LIBS)
- set(GLEW_LIBRARIES ${GLEW_SHARED_LIBRARY})
-else()
- set(GLEW_LIBRARIES ${GLEW_STATIC_LIBRARY})
-endif()
-
-
-if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY_RELEASE: ${GLEW_SHARED_LIBRARY_RELEASE}")
- message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY_RELEASE: ${GLEW_STATIC_LIBRARY_RELEASE}")
- message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY_DEBUG: ${GLEW_SHARED_LIBRARY_DEBUG}")
- message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY_DEBUG: ${GLEW_STATIC_LIBRARY_DEBUG}")
- message(STATUS "FindGLEW: GLEW_SHARED_LIBRARY: ${GLEW_SHARED_LIBRARY}")
- message(STATUS "FindGLEW: GLEW_STATIC_LIBRARY: ${GLEW_STATIC_LIBRARY}")
- message(STATUS "FindGLEW: GLEW_LIBRARIES: ${GLEW_LIBRARIES}")
-endif()
-
-
-# Read version from GL/glew.h file
-if(EXISTS "${GLEW_INCLUDE_DIR}/GL/glew.h")
- file(STRINGS "${GLEW_INCLUDE_DIR}/GL/glew.h" _contents REGEX "^VERSION_.+ [0-9]+")
- if(_contents)
- string(REGEX REPLACE ".*VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MAJOR "${_contents}")
- string(REGEX REPLACE ".*VERSION_MINOR[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MINOR "${_contents}")
- string(REGEX REPLACE ".*VERSION_MICRO[ \t]+([0-9]+).*" "\\1" GLEW_VERSION_MICRO "${_contents}")
- set(GLEW_VERSION "${GLEW_VERSION_MAJOR}.${GLEW_VERSION_MINOR}.${GLEW_VERSION_MICRO}")
- endif()
-endif()
-
-if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: GLEW_VERSION_MAJOR: ${GLEW_VERSION_MAJOR}")
- message(STATUS "FindGLEW: GLEW_VERSION_MINOR: ${GLEW_VERSION_MINOR}")
- message(STATUS "FindGLEW: GLEW_VERSION_MICRO: ${GLEW_VERSION_MICRO}")
- message(STATUS "FindGLEW: GLEW_VERSION: ${GLEW_VERSION}")
-endif()
-
-find_package_handle_standard_args(GLEW
- REQUIRED_VARS GLEW_INCLUDE_DIRS GLEW_LIBRARIES
- VERSION_VAR GLEW_VERSION)
-
-if(NOT GLEW_FOUND)
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: could not find GLEW library.")
- endif()
- return()
-endif()
-
-
-if(NOT TARGET GLEW::glew AND NOT GLEW_USE_STATIC_LIBS)
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: Creating GLEW::glew imported target.")
- endif()
-
- add_library(GLEW::glew UNKNOWN IMPORTED)
-
- set_target_properties(GLEW::glew
- PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
-
- if(APPLE)
- if(CMAKE_VERSION VERSION_GREATER_EQUAL "4.0")
- set_target_properties(GLEW::glew
- PROPERTIES INTERFACE_LINK_LIBRARIES "-framework OpenGL")
- else()
- set_target_properties(GLEW::glew
- PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL)
- endif()
- endif()
-
- if(GLEW_SHARED_LIBRARY_RELEASE)
- set_property(TARGET GLEW::glew
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
-
- set_target_properties(GLEW::glew
- PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_SHARED_LIBRARY_RELEASE}")
- endif()
-
- if(GLEW_SHARED_LIBRARY_DEBUG)
- set_property(TARGET GLEW::glew
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
-
- set_target_properties(GLEW::glew
- PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_SHARED_LIBRARY_DEBUG}")
- endif()
-
-elseif(NOT TARGET GLEW::glew_s AND GLEW_USE_STATIC_LIBS)
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: Creating GLEW::glew_s imported target.")
- endif()
-
- add_library(GLEW::glew_s UNKNOWN IMPORTED)
-
- set_target_properties(GLEW::glew_s
- PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
-
- set_target_properties(GLEW::glew_s PROPERTIES INTERFACE_COMPILE_DEFINITIONS GLEW_STATIC)
-
- if(APPLE)
- if(CMAKE_VERSION VERSION_GREATER_EQUAL "4.0")
- set_target_properties(GLEW::glew_s
- PROPERTIES INTERFACE_LINK_LIBRARIES "-framework OpenGL")
- else()
- set_target_properties(GLEW::glew_s
- PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL)
- endif()
- endif()
-
- if(GLEW_STATIC_LIBRARY_RELEASE)
- set_property(TARGET GLEW::glew_s
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
-
- set_target_properties(GLEW::glew_s
- PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_STATIC_LIBRARY_RELEASE}")
- endif()
-
- if(GLEW_STATIC_LIBRARY_DEBUG)
- set_property(TARGET GLEW::glew_s
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
-
- set_target_properties(GLEW::glew_s
- PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_STATIC_LIBRARY_DEBUG}")
- endif()
-endif()
-
-if(NOT TARGET GLEW::GLEW)
- if(GLEW_VERBOSE)
- message(STATUS "FindGLEW: Creating GLEW::GLEW imported target.")
- endif()
-
- add_library(GLEW::GLEW UNKNOWN IMPORTED)
-
- set_target_properties(GLEW::GLEW
- PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
-
- if(APPLE)
- if(CMAKE_VERSION VERSION_GREATER_EQUAL "4.0")
- set_target_properties(GLEW::GLEW
- PROPERTIES INTERFACE_LINK_LIBRARIES "-framework OpenGL")
- else()
- set_target_properties(GLEW::GLEW
- PROPERTIES INTERFACE_LINK_LIBRARIES OpenGL::GL)
- endif()
- endif()
-
- if(TARGET GLEW::glew)
- if(GLEW_SHARED_LIBRARY_RELEASE)
- set_property(TARGET GLEW::GLEW
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
-
- set_target_properties(GLEW::GLEW
- PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_SHARED_LIBRARY_RELEASE}")
- endif()
-
- if(GLEW_SHARED_LIBRARY_DEBUG)
- set_property(TARGET GLEW::GLEW
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
-
- set_target_properties(GLEW::GLEW
- PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_SHARED_LIBRARY_DEBUG}")
- endif()
-
- elseif(TARGET GLEW::glew_s)
- if(GLEW_STATIC_LIBRARY_RELEASE)
- set_property(TARGET GLEW::GLEW
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
-
- set_target_properties(GLEW::GLEW
- PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_STATIC_LIBRARY_RELEASE}"
- INTERFACE_COMPILE_DEFINITIONS GLEW_STATIC)
- endif()
-
- if(GLEW_STATIC_LIBRARY_DEBUG AND GLEW_USE_STATIC_LIBS)
- set_property(TARGET GLEW::GLEW
- APPEND
- PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
-
- set_target_properties(GLEW::GLEW
- PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_STATIC_LIBRARY_DEBUG}"
- INTERFACE_COMPILE_DEFINITIONS GLEW_STATIC)
- endif()
-
- elseif(GLEW_VERBOSE)
- message(WARNING "FindGLEW: no `GLEW::glew` or `GLEW::glew_s` target was created. Something went wrong in FindGLEW target creation.")
- endif()
-endif()
diff --git a/cmake/modules/FindPerlEmbed.cmake b/cmake/modules/FindPerlEmbed.cmake
deleted file mode 100644
index b12fc40634..0000000000
--- a/cmake/modules/FindPerlEmbed.cmake
+++ /dev/null
@@ -1,88 +0,0 @@
-# Find the dependencies for linking with the Perl runtime library.
-
-# Check for the Perl & PerlLib modules
-include(LibFindMacros)
-libfind_package(PerlEmbed Perl)
-libfind_package(PerlEmbed PerlLibs)
-
-# Execute an Alien::Wx module to find the relevant information regarding
-# the wxWidgets used by the Perl interpreter.
-# Perl specific stuff
-set(PerlEmbed_TEMP_INCLUDE ${CMAKE_CURRENT_BINARY_DIR}/PerlEmbed_TEMP_INCLUDE.txt)
-execute_process(
- COMMAND ${PERL_EXECUTABLE} -MExtUtils::Embed -e "
-# Import Perl modules.
-use strict;
-use warnings;
-use Config;
-use Text::ParseWords;
-use ExtUtils::CppGuess;
-
-# Test for a Visual Studio compiler
-my \$cpp_guess = ExtUtils::CppGuess->new;
-my \$mswin = \$^O eq 'MSWin32';
-my \$msvc = \$cpp_guess->is_msvc;
-
-# Query the available data from Alien::wxWidgets.
-my \$ccflags;
-my \$ldflags;
-{ local *STDOUT; open STDOUT, '>', \\\$ccflags; ccflags; }
-{ local *STDOUT; open STDOUT, '>', \\\$ldflags; ldopts; }
-\$ccflags = ' ' . \$ccflags;
-\$ldflags = ' ' . \$ldflags;
-
-my \$filename = '${PerlEmbed_TEMP_INCLUDE}';
-open(my $fh, '>', \$filename) or die \"Could not open file '\$filename' \$!\";
-
-# Convert a space separated lists to CMake semicolon separated lists,
-# escape the backslashes,
-# export the resulting list to a temp file.
-sub cmake_set_var {
- my (\$varname, \$content) = @_;
- # Remove line separators.
- \$content =~ s/\\r|\\n//g;
- # Escape the path separators.
- \$content =~ s/\\\\/\\\\\\\\\\\\\\\\/g;
- my @words = shellwords(\$content);
- print \$fh \"set(PerlEmbed_\$varname \\\"\" . join(';', @words) . \"\\\")\\n\";
-}
-cmake_set_var('ARCHNAME', \$Config{archname});
-cmake_set_var('CCFLAGS', \$ccflags);
-\$ldflags =~ s/ -L/ -LIBPATH:/g if \$msvc;
-cmake_set_var('LD', \$Config{ld});
-cmake_set_var('LDFLAGS', \$ldflags);
-cmake_set_var('CCCDLFLAGS', \$Config{cccdlflags});
-cmake_set_var('LDDLFLAGS', \$Config{lddlflags});
-cmake_set_var('DLEXT', \$Config{dlext});
-close \$fh;
-")
-include(${PerlEmbed_TEMP_INCLUDE})
-file(REMOVE ${PerlEmbed_TEMP_INCLUDE})
-unset(PerlEmbed_TEMP_INCLUDE)
-
-if (PerlEmbed_DEBUG)
- # First show the configuration extracted by FindPerl & FindPerlLibs:
- message(STATUS " PERL_INCLUDE_PATH = ${PERL_INCLUDE_PATH}")
- message(STATUS " PERL_LIBRARY = ${PERL_LIBRARY}")
- message(STATUS " PERL_EXECUTABLE = ${PERL_EXECUTABLE}")
- message(STATUS " PERL_SITESEARCH = ${PERL_SITESEARCH}")
- message(STATUS " PERL_SITELIB = ${PERL_SITELIB}")
- message(STATUS " PERL_VENDORARCH = ${PERL_VENDORARCH}")
- message(STATUS " PERL_VENDORLIB = ${PERL_VENDORLIB}")
- message(STATUS " PERL_ARCHLIB = ${PERL_ARCHLIB}")
- message(STATUS " PERL_PRIVLIB = ${PERL_PRIVLIB}")
- message(STATUS " PERL_EXTRA_C_FLAGS = ${PERL_EXTRA_C_FLAGS}")
- # Second show the configuration extracted by this module (FindPerlEmbed):
- message(STATUS " PerlEmbed_ARCHNAME = ${PerlEmbed_ARCHNAME}")
- message(STATUS " PerlEmbed_CCFLAGS = ${PerlEmbed_CCFLAGS}")
- message(STATUS " PerlEmbed_CCCDLFLAGS = ${PerlEmbed_CCCDLFLAGS}")
- message(STATUS " LD = ${PerlEmbed_LD}")
- message(STATUS " PerlEmbed_LDFLAGS = ${PerlEmbed_LDFLAGS}")
- message(STATUS " PerlEmbed_LDDLFLAGS = ${PerlEmbed_LDDLFLAGS}")
-endif()
-
-include(FindPackageHandleStandardArgs)
-
-find_package_handle_standard_args(PerlEmbed
- REQUIRED_VARS PerlEmbed_CCFLAGS PerlEmbed_LDFLAGS
- VERSION_VAR PERL_VERSION)
diff --git a/cmake/modules/LibFindMacros.cmake b/cmake/modules/LibFindMacros.cmake
deleted file mode 100644
index f6800aa7bd..0000000000
--- a/cmake/modules/LibFindMacros.cmake
+++ /dev/null
@@ -1,265 +0,0 @@
-# Version 2.2
-# Public Domain, originally written by Lasse Kärkkäinen
-# Maintained at https://github.com/Tronic/cmake-modules
-# Please send your improvements as pull requests on Github.
-
-# Find another package and make it a dependency of the current package.
-# This also automatically forwards the "REQUIRED" argument.
-# Usage: libfind_package( [extra args to find_package])
-macro (libfind_package PREFIX PKG)
- set(${PREFIX}_args ${PKG} ${ARGN})
- if (${PREFIX}_FIND_REQUIRED)
- set(${PREFIX}_args ${${PREFIX}_args} REQUIRED)
- endif()
- find_package(${${PREFIX}_args})
- set(${PREFIX}_DEPENDENCIES ${${PREFIX}_DEPENDENCIES};${PKG})
- unset(${PREFIX}_args)
-endmacro()
-
-# A simple wrapper to make pkg-config searches a bit easier.
-# Works the same as CMake's internal pkg_check_modules but is always quiet.
-macro (libfind_pkg_check_modules)
- find_package(PkgConfig QUIET)
- if (PKG_CONFIG_FOUND)
- pkg_check_modules(${ARGN} QUIET)
- endif()
-endmacro()
-
-# Avoid useless copy&pasta by doing what most simple libraries do anyway:
-# pkg-config, find headers, find library.
-# Usage: libfind_pkg_detect( FIND_PATH [other args] FIND_LIBRARY [other args])
-# E.g. libfind_pkg_detect(SDL2 sdl2 FIND_PATH SDL.h PATH_SUFFIXES SDL2 FIND_LIBRARY SDL2)
-function (libfind_pkg_detect PREFIX)
- # Parse arguments
- set(argname pkgargs)
- foreach (i ${ARGN})
- if ("${i}" STREQUAL "FIND_PATH")
- set(argname pathargs)
- elseif ("${i}" STREQUAL "FIND_LIBRARY")
- set(argname libraryargs)
- else()
- set(${argname} ${${argname}} ${i})
- endif()
- endforeach()
- if (NOT pkgargs)
- message(FATAL_ERROR "libfind_pkg_detect requires at least a pkg_config package name to be passed.")
- endif()
- # Find library
- libfind_pkg_check_modules(${PREFIX}_PKGCONF ${pkgargs})
- if (pathargs)
- find_path(${PREFIX}_INCLUDE_DIR NAMES ${pathargs} HINTS ${${PREFIX}_PKGCONF_INCLUDE_DIRS})
- endif()
- if (libraryargs)
- find_library(${PREFIX}_LIBRARY NAMES ${libraryargs} HINTS ${${PREFIX}_PKGCONF_LIBRARY_DIRS})
- endif()
-endfunction()
-
-# Extracts a version #define from a version.h file, output stored to _VERSION.
-# Usage: libfind_version_header(Foobar foobar/version.h FOOBAR_VERSION_STR)
-# Fourth argument "QUIET" may be used for silently testing different define names.
-# This function does nothing if the version variable is already defined.
-function (libfind_version_header PREFIX VERSION_H DEFINE_NAME)
- # Skip processing if we already have a version or if the include dir was not found
- if (${PREFIX}_VERSION OR NOT ${PREFIX}_INCLUDE_DIR)
- return()
- endif()
- set(quiet ${${PREFIX}_FIND_QUIETLY})
- # Process optional arguments
- foreach(arg ${ARGN})
- if (arg STREQUAL "QUIET")
- set(quiet TRUE)
- else()
- message(AUTHOR_WARNING "Unknown argument ${arg} to libfind_version_header ignored.")
- endif()
- endforeach()
- # Read the header and parse for version number
- set(filename "${${PREFIX}_INCLUDE_DIR}/${VERSION_H}")
- if (NOT EXISTS ${filename})
- if (NOT quiet)
- message(AUTHOR_WARNING "Unable to find ${${PREFIX}_INCLUDE_DIR}/${VERSION_H}")
- endif()
- return()
- endif()
- file(READ "${filename}" header)
- string(REGEX REPLACE ".*#[ \t]*define[ \t]*${DEFINE_NAME}[ \t]*\"([^\n]*)\".*" "\\1" match "${header}")
- # No regex match?
- if (match STREQUAL header)
- if (NOT quiet)
- message(AUTHOR_WARNING "Unable to find \#define ${DEFINE_NAME} \"\" from ${${PREFIX}_INCLUDE_DIR}/${VERSION_H}")
- endif()
- return()
- endif()
- # Export the version string
- set(${PREFIX}_VERSION "${match}" PARENT_SCOPE)
-endfunction()
-
-# Do the final processing once the paths have been detected.
-# If include dirs are needed, ${PREFIX}_PROCESS_INCLUDES should be set to contain
-# all the variables, each of which contain one include directory.
-# Ditto for ${PREFIX}_PROCESS_LIBS and library files.
-# Will set ${PREFIX}_FOUND, ${PREFIX}_INCLUDE_DIRS and ${PREFIX}_LIBRARIES.
-# Also handles errors in case library detection was required, etc.
-function (libfind_process PREFIX)
- # Skip processing if already processed during this configuration run
- if (${PREFIX}_FOUND)
- return()
- endif()
-
- set(found TRUE) # Start with the assumption that the package was found
-
- # Did we find any files? Did we miss includes? These are for formatting better error messages.
- set(some_files FALSE)
- set(missing_headers FALSE)
-
- # Shorthands for some variables that we need often
- set(quiet ${${PREFIX}_FIND_QUIETLY})
- set(required ${${PREFIX}_FIND_REQUIRED})
- set(exactver ${${PREFIX}_FIND_VERSION_EXACT})
- set(findver "${${PREFIX}_FIND_VERSION}")
- set(version "${${PREFIX}_VERSION}")
-
- # Lists of config option names (all, includes, libs)
- unset(configopts)
- set(includeopts ${${PREFIX}_PROCESS_INCLUDES})
- set(libraryopts ${${PREFIX}_PROCESS_LIBS})
-
- # Process deps to add to
- foreach (i ${PREFIX} ${${PREFIX}_DEPENDENCIES})
- if (DEFINED ${i}_INCLUDE_OPTS OR DEFINED ${i}_LIBRARY_OPTS)
- # The package seems to export option lists that we can use, woohoo!
- list(APPEND includeopts ${${i}_INCLUDE_OPTS})
- list(APPEND libraryopts ${${i}_LIBRARY_OPTS})
- else()
- # If plural forms don't exist or they equal singular forms
- if ((NOT DEFINED ${i}_INCLUDE_DIRS AND NOT DEFINED ${i}_LIBRARIES) OR
- ({i}_INCLUDE_DIR STREQUAL ${i}_INCLUDE_DIRS AND ${i}_LIBRARY STREQUAL ${i}_LIBRARIES))
- # Singular forms can be used
- if (DEFINED ${i}_INCLUDE_DIR)
- list(APPEND includeopts ${i}_INCLUDE_DIR)
- endif()
- if (DEFINED ${i}_LIBRARY)
- list(APPEND libraryopts ${i}_LIBRARY)
- endif()
- else()
- # Oh no, we don't know the option names
- message(FATAL_ERROR "We couldn't determine config variable names for ${i} includes and libs. Aieeh!")
- endif()
- endif()
- endforeach()
-
- if (includeopts)
- list(REMOVE_DUPLICATES includeopts)
- endif()
-
- if (libraryopts)
- list(REMOVE_DUPLICATES libraryopts)
- endif()
-
- string(REGEX REPLACE ".*[ ;]([^ ;]*(_INCLUDE_DIRS|_LIBRARIES))" "\\1" tmp "${includeopts} ${libraryopts}")
- if (NOT tmp STREQUAL "${includeopts} ${libraryopts}")
- message(AUTHOR_WARNING "Plural form ${tmp} found in config options of ${PREFIX}. This works as before but is now deprecated. Please only use singular forms INCLUDE_DIR and LIBRARY, and update your find scripts for LibFindMacros > 2.0 automatic dependency system (most often you can simply remove the PROCESS variables entirely).")
- endif()
-
- # Include/library names separated by spaces (notice: not CMake lists)
- unset(includes)
- unset(libs)
-
- # Process all includes and set found false if any are missing
- foreach (i ${includeopts})
- list(APPEND configopts ${i})
- if (NOT "${${i}}" STREQUAL "${i}-NOTFOUND")
- list(APPEND includes "${${i}}")
- else()
- set(found FALSE)
- set(missing_headers TRUE)
- endif()
- endforeach()
-
- # Process all libraries and set found false if any are missing
- foreach (i ${libraryopts})
- list(APPEND configopts ${i})
- if (NOT "${${i}}" STREQUAL "${i}-NOTFOUND")
- list(APPEND libs "${${i}}")
- else()
- set (found FALSE)
- endif()
- endforeach()
-
- # Version checks
- if (found AND findver)
- if (NOT version)
- message(WARNING "The find module for ${PREFIX} does not provide version information, so we'll just assume that it is OK. Please fix the module or remove package version requirements to get rid of this warning.")
- elseif (version VERSION_LESS findver OR (exactver AND NOT version VERSION_EQUAL findver))
- set(found FALSE)
- set(version_unsuitable TRUE)
- endif()
- endif()
-
- # If all-OK, hide all config options, export variables, print status and exit
- if (found)
- foreach (i ${configopts})
- mark_as_advanced(${i})
- endforeach()
- if (NOT quiet)
- message(STATUS "Found ${PREFIX} ${${PREFIX}_VERSION}")
- if (LIBFIND_DEBUG)
- message(STATUS " ${PREFIX}_DEPENDENCIES=${${PREFIX}_DEPENDENCIES}")
- message(STATUS " ${PREFIX}_INCLUDE_OPTS=${includeopts}")
- message(STATUS " ${PREFIX}_INCLUDE_DIRS=${includes}")
- message(STATUS " ${PREFIX}_LIBRARY_OPTS=${libraryopts}")
- message(STATUS " ${PREFIX}_LIBRARIES=${libs}")
- endif()
- set (${PREFIX}_INCLUDE_OPTS ${includeopts} PARENT_SCOPE)
- set (${PREFIX}_LIBRARY_OPTS ${libraryopts} PARENT_SCOPE)
- set (${PREFIX}_INCLUDE_DIRS ${includes} PARENT_SCOPE)
- set (${PREFIX}_LIBRARIES ${libs} PARENT_SCOPE)
- set (${PREFIX}_FOUND TRUE PARENT_SCOPE)
- endif()
- return()
- endif()
-
- # Format messages for debug info and the type of error
- set(vars "Relevant CMake configuration variables:\n")
- foreach (i ${configopts})
- mark_as_advanced(CLEAR ${i})
- set(val ${${i}})
- if ("${val}" STREQUAL "${i}-NOTFOUND")
- set (val "")
- elseif (val AND NOT EXISTS ${val})
- set (val "${val} (does not exist)")
- else()
- set(some_files TRUE)
- endif()
- set(vars "${vars} ${i}=${val}\n")
- endforeach()
- set(vars "${vars}You may use CMake GUI, cmake -D or ccmake to modify the values. Delete CMakeCache.txt to discard all values and force full re-detection if necessary.\n")
- if (version_unsuitable)
- set(msg "${PREFIX} ${${PREFIX}_VERSION} was found but")
- if (exactver)
- set(msg "${msg} only version ${findver} is acceptable.")
- else()
- set(msg "${msg} version ${findver} is the minimum requirement.")
- endif()
- else()
- if (missing_headers)
- set(msg "We could not find development headers for ${PREFIX}. Do you have the necessary dev package installed?")
- elseif (some_files)
- set(msg "We only found some files of ${PREFIX}, not all of them. Perhaps your installation is incomplete or maybe we just didn't look in the right place?")
- if(findver)
- set(msg "${msg} This could also be caused by incompatible version (if it helps, at least ${PREFIX} ${findver} should work).")
- endif()
- else()
- set(msg "We were unable to find package ${PREFIX}.")
- endif()
- endif()
-
- # Fatal error out if REQUIRED
- if (required)
- set(msg "REQUIRED PACKAGE NOT FOUND\n${msg} This package is REQUIRED and you need to install it or adjust CMake configuration in order to continue building ${CMAKE_PROJECT_NAME}.")
- message(FATAL_ERROR "${msg}\n${vars}")
- endif()
- # Otherwise just print a nasty warning
- if (NOT quiet)
- message(WARNING "WARNING: MISSING PACKAGE\n${msg} This package is NOT REQUIRED and you may ignore this warning but by doing so you may miss some functionality of ${CMAKE_PROJECT_NAME}. \n${vars}")
- endif()
-endfunction()
diff --git a/cmake/modules/bin2h.cmake b/cmake/modules/bin2h.cmake
deleted file mode 100644
index b838650f32..0000000000
--- a/cmake/modules/bin2h.cmake
+++ /dev/null
@@ -1,89 +0,0 @@
-# Source: https://gist.github.com/sivachandran/3a0de157dccef822a230#file-bin2h-cmake
-# Added modifications to suit prusaslicer
-include(CMakeParseArguments)
-
-# Function to wrap a given string into multiple lines at the given column position.
-# Parameters:
-# VARIABLE - The name of the CMake variable holding the string.
-# AT_COLUMN - The column position at which string will be wrapped.
-function(WRAP_STRING)
- set(oneValueArgs VARIABLE AT_COLUMN)
- cmake_parse_arguments(WRAP_STRING "${options}" "${oneValueArgs}" "" ${ARGN})
-
- string(LENGTH ${${WRAP_STRING_VARIABLE}} stringLength)
- math(EXPR offset "0")
-
- while(stringLength GREATER 0)
-
- if(stringLength GREATER ${WRAP_STRING_AT_COLUMN})
- math(EXPR length "${WRAP_STRING_AT_COLUMN}")
- else()
- math(EXPR length "${stringLength}")
- endif()
-
- string(SUBSTRING ${${WRAP_STRING_VARIABLE}} ${offset} ${length} line)
- set(lines "${lines}\n${line}")
-
- math(EXPR stringLength "${stringLength} - ${length}")
- math(EXPR offset "${offset} + ${length}")
- endwhile()
-
- set(${WRAP_STRING_VARIABLE} "${lines}" PARENT_SCOPE)
-endfunction()
-
-# Function to embed contents of a file as byte array in C/C++ header file(.h). The header file
-# will contain a byte array and integer variable holding the size of the array.
-# Parameters
-# SOURCE_FILE - The path of source file whose contents will be embedded in the header file.
-# VARIABLE_NAME - The name of the variable for the byte array. The string "_SIZE" will be append
-# to this name and will be used a variable name for size variable.
-# HEADER_FILE - The path of header file.
-# APPEND - If specified appends to the header file instead of overwriting it
-# NULL_TERMINATE - If specified a null byte(zero) will be append to the byte array. This will be
-# useful if the source file is a text file and we want to use the file contents
-# as string. But the size variable holds size of the byte array without this
-# null byte.
-# Usage:
-# bin2h(SOURCE_FILE "Logo.png" HEADER_FILE "Logo.h" VARIABLE_NAME "LOGO_PNG")
-function(BIN2H)
- set(options APPEND NULL_TERMINATE ADD_WARNING_TEXT)
- set(oneValueArgs SOURCE_FILE VARIABLE_NAME HEADER_FILE)
- cmake_parse_arguments(BIN2H "${options}" "${oneValueArgs}" "" ${ARGN})
-
- # reads source file contents as hex string
- file(READ ${BIN2H_SOURCE_FILE} hexString HEX)
- string(LENGTH ${hexString} hexStringLength)
-
- # appends null byte if asked
- if(BIN2H_NULL_TERMINATE)
- set(hexString "${hexString}00")
- endif()
-
- # wraps the hex string into multiple lines at column 32(i.e. 16 bytes per line)
- wrap_string(VARIABLE hexString AT_COLUMN 32)
- math(EXPR arraySize "${hexStringLength} / 2")
-
- # adds '0x' prefix and comma suffix before and after every byte respectively
- string(REGEX REPLACE "([0-9a-f][0-9a-f])" "0x\\1, " arrayValues ${hexString})
- # removes trailing comma
- string(REGEX REPLACE ", $" "" arrayValues ${arrayValues})
-
- # converts the variable name into proper C identifier
- string(MAKE_C_IDENTIFIER "${BIN2H_VARIABLE_NAME}" BIN2H_VARIABLE_NAME)
- # string(TOUPPER "${BIN2H_VARIABLE_NAME}" BIN2H_VARIABLE_NAME)
-
- # declares byte array and the length variables
- set(arrayDefinition "const unsigned char ${BIN2H_VARIABLE_NAME}[] = { ${arrayValues} };")
- set(arraySizeDefinition "const size_t ${BIN2H_VARIABLE_NAME}_SIZE = ${arraySize};")
- set(warnTxt "")
- if (BIN2H_ADD_WARNING_TEXT)
- set(warnTxt "/* WARN: This file is auto-generated from ${BIN2H_SOURCE_FILE} */\n")
- endif ()
-
- set(declarations "${warnTxt}${arrayDefinition}\n\n${arraySizeDefinition}\n\n")
- if(BIN2H_APPEND)
- file(APPEND ${BIN2H_HEADER_FILE} "${declarations}")
- else()
- file(WRITE ${BIN2H_HEADER_FILE} "${declarations}")
- endif()
-endfunction()
\ No newline at end of file
diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt
index aa64ad4dc9..97afd16498 100644
--- a/deps/CMakeLists.txt
+++ b/deps/CMakeLists.txt
@@ -1,5 +1,5 @@
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "4.0")
- set(CMAKE_POLICY_VERSION_MINIMUM 3.5 CACHE STRING "" FORCE)
+ set(CMAKE_POLICY_VERSION_MINIMUM 3.10 CACHE STRING "" FORCE)
endif()
#
@@ -24,7 +24,7 @@ endif()
# therefore, unfortunately, the installation cannot be copied/moved elsewhere without re-installing wxWidgets.
#
-cmake_minimum_required(VERSION 3.2)
+cmake_minimum_required(VERSION 3.10)
if (APPLE)
# if CMAKE_OSX_DEPLOYMENT_TARGET is not set, set it to 12.0 (the lowest Xcode 27 accepts)
if (NOT CMAKE_OSX_DEPLOYMENT_TARGET)
@@ -224,7 +224,7 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE)
${_source_dir_arg}
${_gen}
CMAKE_ARGS
- -DCMAKE_POLICY_VERSION_MINIMUM=3.5
+ -DCMAKE_POLICY_VERSION_MINIMUM=3.10
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}
-DCMAKE_MODULE_PATH:STRING=${PROJECT_SOURCE_DIR}/../cmake/modules
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}
@@ -279,7 +279,7 @@ else()
${_source_dir_arg}
${_gen}
CMAKE_ARGS
- -DCMAKE_POLICY_VERSION_MINIMUM=3.5
+ -DCMAKE_POLICY_VERSION_MINIMUM=3.10
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}
-DCMAKE_IGNORE_PREFIX_PATH:STRING=${CMAKE_IGNORE_PREFIX_PATH}
@@ -379,10 +379,8 @@ include(Boost/Boost.cmake)
include(Cereal/Cereal.cmake)
include(Qhull/Qhull.cmake)
-include(GLEW/GLEW.cmake)
include(GLFW/GLFW.cmake)
-include(OpenCSG/OpenCSG.cmake)
set(SLVS_PKG "")
if (SLIC3R_CAD)
include(SLVS/SLVS.cmake)
@@ -478,7 +476,6 @@ set(_dep_list
dep_Draco
dep_NLopt
dep_OpenVDB
- dep_OpenCSG
${SLVS_PKG}
dep_OpenCV
dep_Eigen
diff --git a/deps/EXPAT/EXPAT.cmake b/deps/EXPAT/EXPAT.cmake
index fd5c4c5c4d..be949835b8 100644
--- a/deps/EXPAT/EXPAT.cmake
+++ b/deps/EXPAT/EXPAT.cmake
@@ -1,6 +1,4 @@
orcaslicer_add_cmake_project(EXPAT
- # GIT_REPOSITORY https://github.com/nigels-com/glew.git
- # GIT_TAG 3a8eff7 # 2.1.0
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/expat
)
diff --git a/deps/GLEW/GLEW.cmake b/deps/GLEW/GLEW.cmake
deleted file mode 100644
index 82bfc0bb84..0000000000
--- a/deps/GLEW/GLEW.cmake
+++ /dev/null
@@ -1,14 +0,0 @@
-# We have to check for OpenGL to compile GLEW
-set(OpenGL_GL_PREFERENCE "LEGACY") # to prevent a nasty warning by cmake
-find_package(OpenGL QUIET REQUIRED)
-
-orcaslicer_add_cmake_project(
- GLEW
- SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/glew
- CMAKE_ARGS
- -DGLEW_USE_EGL=OFF
-)
-
-if (MSVC)
- add_debug_dep(dep_GLEW)
-endif ()
diff --git a/deps/GLEW/glew/CMakeLists.txt b/deps/GLEW/glew/CMakeLists.txt
deleted file mode 100644
index 7f1687c4e2..0000000000
--- a/deps/GLEW/glew/CMakeLists.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-cmake_minimum_required(VERSION 3.0)
-project(GLEW)
-
-find_package(OpenGL REQUIRED)
-
-# Allow parent project to control EGL usage.
-# Default to OFF since OrcaSlicer forces GDK_BACKEND=x11 (using GLX contexts).
-# GLEW must use glXGetProcAddressARB (GLX) to match wxWidgets GL canvas.
-# Using EGL function loading with GLX contexts causes rendering failures.
-option(GLEW_USE_EGL "Use EGL instead of GLX for OpenGL function loading" OFF)
-
-if(GLEW_USE_EGL)
- message(STATUS "Building GLEW with EGL support")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGLEW_EGL")
-else()
- message(STATUS "Building GLEW with GLX support")
-endif()
-
-add_library(GLEW src/glew.c)
-target_include_directories(GLEW PRIVATE include/)
-target_link_libraries(GLEW PUBLIC OpenGL::GL)
-
-if (NOT BUILD_SHARED_LIBS)
- target_compile_definitions(GLEW PUBLIC GLEW_STATIC)
-endif ()
-
-include(GNUInstallDirs)
-
-install(
- FILES
- ${PROJECT_SOURCE_DIR}/include/GL/glew.h
- ${PROJECT_SOURCE_DIR}/include/GL/wglew.h
- ${PROJECT_SOURCE_DIR}/include/GL/glxew.h
- ${PROJECT_SOURCE_DIR}/include/GL/eglew.h
- DESTINATION
- ${CMAKE_INSTALL_INCLUDEDIR}/GL
-)
-
-install(TARGETS GLEW GLEW
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-)
\ No newline at end of file
diff --git a/deps/GLEW/glew/LICENSE.txt b/deps/GLEW/glew/LICENSE.txt
deleted file mode 100644
index f7078042e9..0000000000
--- a/deps/GLEW/glew/LICENSE.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-The OpenGL Extension Wrangler Library
-Copyright (C) 2002-2007, Milan Ikits
-Copyright (C) 2002-2007, Marcelo E. Magallon
-Copyright (C) 2002, Lev Povalahev
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* The name of the author may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-
-
-Mesa 3-D graphics library
-Version: 7.0
-
-Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Copyright (c) 2007 The Khronos Group Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and/or associated documentation files (the
-"Materials"), to deal in the Materials without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Materials, and to
-permit persons to whom the Materials are furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Materials.
-
-THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
diff --git a/deps/GLEW/glew/README.md b/deps/GLEW/glew/README.md
deleted file mode 100644
index 475c69afc8..0000000000
--- a/deps/GLEW/glew/README.md
+++ /dev/null
@@ -1,251 +0,0 @@
-# GLEW - The OpenGL Extension Wrangler Library
-
-The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.
-
-
-
-http://glew.sourceforge.net/
-
-https://github.com/nigels-com/glew
-
-[](https://travis-ci.org/nigels-com/glew)
-[](https://gitter.im/nigels-com/glew?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
-[](https://sourceforge.net/projects/glew/files/latest/download)
-
-## Table of Contents
-
-* [Downloads](#downloads)
- * [Recent snapshots](#recent-snapshots)
-* [Build](#build)
- * [Linux and Mac](#linux-and-mac)
- * [Using GNU Make](#using-gnu-make)
- * [Install build tools](#install-build-tools)
- * [Build](#build-1)
- * [Linux EGL](#linux-egl)
- * [Linux mingw-w64](#linux-mingw-w64)
- * [Using cmake](#using-cmake)
- * [Install build tools](#install-build-tools-1)
- * [Build](#build-2)
- * [Windows](#windows)
- * [Visual Studio](#visual-studio)
- * [MSYS/Mingw](#msysmingw)
- * [MSYS2/Mingw-w64](#msys2mingw-w64)
-* [glewinfo](#glewinfo)
-* [Code Generation](#code-generation)
-* [Authors](#authors)
-* [Contributions](#contributions)
-* [Copyright and Licensing](#copyright-and-licensing)
-
-## Downloads
-
-Current release is [2.1.0](https://sourceforge.net/projects/glew/files/glew/2.1.0/).
-[(Change Log)](http://glew.sourceforge.net/log.html)
-
-Sources available as
-[ZIP](https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0.zip/download) or
-[TGZ](https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0.tgz/download).
-
-Windows binaries for [32-bit and 64-bit](https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0-win32.zip/download).
-
-### Recent snapshots
-
-Snapshots may contain new features, bug-fixes or new OpenGL extensions ahead of tested, official releases.
-
-[glew-20200115.tgz](https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20200115.tgz/download) *GLEW 2.2.0 RC3: fixes*
-
-[glew-20190928.tgz](https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20190928.tgz/download) *GLEW 2.2.0 RC2: New extensions, bug fixes*
-
-## Build
-
-It is highly recommended to build from a tgz or zip release snapshot.
-The code generation workflow is a complex brew of gnu make, perl and python, that works best on Linux or Mac.
-The code generation is known to work on Windows using [MSYS2](https://www.msys2.org/).
-For most end-users of GLEW the official releases are the best choice, with first class support.
-
-### Linux and Mac
-
-#### Using GNU Make
-
-GNU make is the primary build system for GLEW, historically.
-It includes targets for building the sources and headers, for maintenance purposes.
-
-##### Install build tools
-
-Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev`
-
-RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel`
-
-FreeBSD: `# pkg install xorg lang/gcc git cmake gmake bash python perl5`
-
-##### Build
-
- $ make
- $ sudo make install
- $ make clean
-
-Targets: `all, glew.lib (sub-targets: glew.lib.shared, glew.lib.static), glew.bin, clean, install, uninstall`
-
-Variables: `SYSTEM=linux-clang, GLEW_DEST=/usr/local, STRIP=`
-
-_Note: you may need to call `make` in the **auto** folder first_
-
-##### Linux EGL
-
- $ sudo apt install libegl1-mesa-dev
- $ make SYSTEM=linux-egl
-
-##### Linux mingw-w64
-
- $ sudo apt install mingw-w64
- $ make SYSTEM=linux-mingw32
- $ make SYSTEM=linux-mingw64
-
-#### Using cmake
-
-The cmake build is mostly contributer maintained.
-Due to the multitude of use cases this is maintained on a _best effort_ basis.
-Pull requests are welcome.
-
-*CMake 2.8.12 or higher is required.*
-
-##### Install build tools
-
-Debian/Ubuntu/Mint: `$ sudo apt-get install build-essential libxmu-dev libxi-dev libgl-dev cmake git`
-
-RedHat/CentOS/Fedora: `$ sudo yum install libXmu-devel libXi-devel libGL-devel cmake git`
-
-##### Build
-
- $ cd build
- $ cmake ./cmake
- $ make -j4
-
-| Target | Description |
-| ---------- | ----------- |
-| glew | Build the glew shared library. |
-| glew_s | Build the glew static library. |
-| glewinfo | Build the `glewinfo` executable (requires `BUILD_UTILS` to be `ON`). |
-| visualinfo | Build the `visualinfo` executable (requires `BUILD_UTILS` to be `ON`). |
-| install | Install all enabled targets into `CMAKE_INSTALL_PREFIX`. |
-| clean | Clean up build artifacts. |
-| all | Build all enabled targets (default target). |
-
-| Variables | Description |
-| --------------- | ----------- |
-| BUILD_UTILS | Build the `glewinfo` and `visualinfo` executables. |
-| GLEW_REGAL | Build in Regal mode. |
-| BUILD_FRAMEWORK | Build as MacOSX Framework. Setting `CMAKE_INSTALL_PREFIX` to `/Library/Frameworks` is recommended. |
-
-### Windows
-
-#### Visual Studio
-
-Use the provided Visual Studio project file in build/vc15/
-
-Projects for vc6, vc10, vc12 and vc14 are also provided
-
-#### MSYS/Mingw
-
-Available from [Mingw](http://www.mingw.org/)
-
-Requirements: bash, make, gcc
-
- $ mingw32-make
- $ mingw32-make install
- $ mingw32-make install.all
-
-Alternative toolchain: `SYSTEM=mingw-win32`
-
-#### MSYS2/Mingw-w64
-
-Available from [Msys2](http://msys2.github.io/) and/or [Mingw-w64](http://mingw-w64.org/)
-
-Requirements: bash, make, gcc
-
- $ pacman -S gcc make mingw-w64-i686-gcc mingw-w64-x86_64-gcc
- $ make
- $ make install
- $ make install.all
-
-Alternative toolchain: `SYSTEM=msys, SYSTEM=msys-win32, SYSTEM=msys-win64`
-
-## glewinfo
-
-`glewinfo` is a command-line tool useful for inspecting the capabilities of an
-OpenGL implementation and GLEW support for that. Please include `glewinfo.txt`
-with bug reports, as appropriate.
-
- ---------------------------
- GLEW Extension Info
- ---------------------------
-
- GLEW version 2.0.0
- Reporting capabilities of pixelformat 3
- Running on a Intel(R) HD Graphics 3000 from Intel
- OpenGL version 3.1.0 - Build 9.17.10.4229 is supported
-
- GL_VERSION_1_1: OK
- ---------------
-
- GL_VERSION_1_2: OK
- ---------------
- glCopyTexSubImage3D: OK
- glDrawRangeElements: OK
- glTexImage3D: OK
- glTexSubImage3D: OK
-
- ...
-
-## Code Generation
-
-A Unix or Mac environment is needed for building GLEW from scratch to
-include new extensions, or customize the code generation. The extension
-data is regenerated from the top level source directory with:
-
- make extensions
-
-An alternative to generating the GLEW sources from scratch is to
-download a pre-generated (unsupported) snapshot:
-
-https://sourceforge.net/projects/glew/files/glew/snapshots/
-
-## Authors
-
-GLEW is currently maintained by [Nigel Stewart](https://github.com/nigels-com)
-with bug fixes, new OpenGL extension support and new releases.
-
-GLEW was developed by [Milan Ikits](http://www.cs.utah.edu/~ikits/)
-and [Marcelo Magallon](http://wwwvis.informatik.uni-stuttgart.de/~magallon/).
-Aaron Lefohn, Joe Kniss, and Chris Wyman were the first users and also
-assisted with the design and debugging process.
-
-The acronym GLEW originates from Aaron Lefohn.
-Pasi Kärkkäinen identified and fixed several problems with
-GLX and SDL. Nate Robins created the `wglinfo` utility, to
-which modifications were made by Michael Wimmer.
-
-## Contributions
-
-GLEW welcomes community contributions. Typically these are co-ordinated
-via [Issues](https://github.com/nigels-com/glew/issues) or
-[Pull Requests](https://github.com/nigels-com/glew/pulls) in the
-GitHub web interface.
-
-Be sure to mention platform and compiler toolchain details when filing
-a bug report. The output of `glewinfo` can be quite useful for discussion
-also.
-
-Generally GLEW is usually released once a year, around the time of the Siggraph
-computer graphics conference. If you're not using the current release
-version of GLEW, be sure to check if the issue or bug is fixed there.
-
-## Copyright and Licensing
-
-GLEW is originally derived from the EXTGL project by Lev Povalahev.
-The source code is licensed under the
-[Modified BSD License](http://glew.sourceforge.net/glew.txt), the
-[Mesa 3-D License](http://glew.sourceforge.net/mesa.txt) (MIT) and the
-[Khronos License](http://glew.sourceforge.net/khronos.txt) (MIT).
-
-The automatic code generation scripts are released under the
-[GNU GPL](http://glew.sourceforge.net/gpl.txt).
diff --git a/deps/GLEW/glew/VERSION b/deps/GLEW/glew/VERSION
deleted file mode 100644
index ccbccc3dc6..0000000000
--- a/deps/GLEW/glew/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-2.2.0
diff --git a/deps/GLEW/glew/include/GL/eglew.h b/deps/GLEW/glew/include/GL/eglew.h
deleted file mode 100644
index e9e5a0b297..0000000000
--- a/deps/GLEW/glew/include/GL/eglew.h
+++ /dev/null
@@ -1,3051 +0,0 @@
-/*
-** The OpenGL Extension Wrangler Library
-** Copyright (C) 2008-2019, Nigel Stewart
-** Copyright (C) 2002-2008, Milan Ikits
-** Copyright (C) 2002-2008, Marcelo E. Magallon
-** Copyright (C) 2002, Lev Povalahev
-** All rights reserved.
-**
-** Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are met:
-**
-** * Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** * The name of the author may be used to endorse or promote products
-** derived from this software without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-** THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * Mesa 3-D graphics library
- * Version: 7.0
- *
- * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
-** Copyright (c) 2007 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-#ifndef __eglew_h__
-#define __eglew_h__
-#define __EGLEW_H__
-
-#ifdef __eglext_h_
-#error eglext.h included before eglew.h
-#endif
-
-#if defined(__egl_h_)
-#error egl.h included before eglew.h
-#endif
-
-#define __eglext_h_
-
-#define __egl_h_
-
-#ifndef EGLAPIENTRY
-#define EGLAPIENTRY
-#endif
-#ifndef EGLAPI
-#define EGLAPI extern
-#endif
-
-/* EGL Types */
-#include
-
-#include
-#include
-
-#ifndef GLEW_INCLUDE
-# include
-#else
-# include GLEW_INCLUDE
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef int32_t EGLint;
-
-typedef unsigned int EGLBoolean;
-typedef void *EGLDisplay;
-typedef void *EGLConfig;
-typedef void *EGLSurface;
-typedef void *EGLContext;
-typedef void (*__eglMustCastToProperFunctionPointerType)(void);
-
-typedef unsigned int EGLenum;
-typedef void *EGLClientBuffer;
-
-typedef void *EGLSync;
-typedef intptr_t EGLAttrib;
-typedef khronos_utime_nanoseconds_t EGLTime;
-typedef void *EGLImage;
-
-typedef void *EGLSyncKHR;
-typedef intptr_t EGLAttribKHR;
-typedef void *EGLLabelKHR;
-typedef void *EGLObjectKHR;
-typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
-typedef khronos_utime_nanoseconds_t EGLTimeKHR;
-typedef void *EGLImageKHR;
-typedef void *EGLStreamKHR;
-typedef khronos_uint64_t EGLuint64KHR;
-typedef int EGLNativeFileDescriptorKHR;
-typedef khronos_ssize_t EGLsizeiANDROID;
-typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
-typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
-typedef void *EGLDeviceEXT;
-typedef void *EGLOutputLayerEXT;
-typedef void *EGLOutputPortEXT;
-typedef void *EGLSyncNV;
-typedef khronos_utime_nanoseconds_t EGLTimeNV;
-typedef khronos_utime_nanoseconds_t EGLuint64NV;
-typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
-
-struct EGLClientPixmapHI;
-struct AHardwareBuffer;
-
-#define EGL_DONT_CARE ((EGLint)-1)
-
-#define EGL_NO_CONTEXT ((EGLContext)0)
-#define EGL_NO_DISPLAY ((EGLDisplay)0)
-#define EGL_NO_IMAGE ((EGLImage)0)
-#define EGL_NO_SURFACE ((EGLSurface)0)
-#define EGL_NO_SYNC ((EGLSync)0)
-
-#define EGL_UNKNOWN ((EGLint)-1)
-
-#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
-
-EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname);
-/* ---------------------------- EGL_VERSION_1_0 ---------------------------- */
-
-#ifndef EGL_VERSION_1_0
-#define EGL_VERSION_1_0 1
-
-#define EGL_FALSE 0
-#define EGL_PBUFFER_BIT 0x0001
-#define EGL_TRUE 1
-#define EGL_PIXMAP_BIT 0x0002
-#define EGL_WINDOW_BIT 0x0004
-#define EGL_SUCCESS 0x3000
-#define EGL_NOT_INITIALIZED 0x3001
-#define EGL_BAD_ACCESS 0x3002
-#define EGL_BAD_ALLOC 0x3003
-#define EGL_BAD_ATTRIBUTE 0x3004
-#define EGL_BAD_CONFIG 0x3005
-#define EGL_BAD_CONTEXT 0x3006
-#define EGL_BAD_CURRENT_SURFACE 0x3007
-#define EGL_BAD_DISPLAY 0x3008
-#define EGL_BAD_MATCH 0x3009
-#define EGL_BAD_NATIVE_PIXMAP 0x300A
-#define EGL_BAD_NATIVE_WINDOW 0x300B
-#define EGL_BAD_PARAMETER 0x300C
-#define EGL_BAD_SURFACE 0x300D
-#define EGL_BUFFER_SIZE 0x3020
-#define EGL_ALPHA_SIZE 0x3021
-#define EGL_BLUE_SIZE 0x3022
-#define EGL_GREEN_SIZE 0x3023
-#define EGL_RED_SIZE 0x3024
-#define EGL_DEPTH_SIZE 0x3025
-#define EGL_STENCIL_SIZE 0x3026
-#define EGL_CONFIG_CAVEAT 0x3027
-#define EGL_CONFIG_ID 0x3028
-#define EGL_LEVEL 0x3029
-#define EGL_MAX_PBUFFER_HEIGHT 0x302A
-#define EGL_MAX_PBUFFER_PIXELS 0x302B
-#define EGL_MAX_PBUFFER_WIDTH 0x302C
-#define EGL_NATIVE_RENDERABLE 0x302D
-#define EGL_NATIVE_VISUAL_ID 0x302E
-#define EGL_NATIVE_VISUAL_TYPE 0x302F
-#define EGL_SAMPLES 0x3031
-#define EGL_SAMPLE_BUFFERS 0x3032
-#define EGL_SURFACE_TYPE 0x3033
-#define EGL_TRANSPARENT_TYPE 0x3034
-#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
-#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
-#define EGL_TRANSPARENT_RED_VALUE 0x3037
-#define EGL_NONE 0x3038
-#define EGL_SLOW_CONFIG 0x3050
-#define EGL_NON_CONFORMANT_CONFIG 0x3051
-#define EGL_TRANSPARENT_RGB 0x3052
-#define EGL_VENDOR 0x3053
-#define EGL_VERSION 0x3054
-#define EGL_EXTENSIONS 0x3055
-#define EGL_HEIGHT 0x3056
-#define EGL_WIDTH 0x3057
-#define EGL_LARGEST_PBUFFER 0x3058
-#define EGL_DRAW 0x3059
-#define EGL_READ 0x305A
-#define EGL_CORE_NATIVE_ENGINE 0x305B
-
-typedef EGLBoolean ( * PFNEGLCHOOSECONFIGPROC) (EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config);
-typedef EGLBoolean ( * PFNEGLCOPYBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
-typedef EGLContext ( * PFNEGLCREATECONTEXTPROC) (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint * attrib_list);
-typedef EGLSurface ( * PFNEGLCREATEPBUFFERSURFACEPROC) (EGLDisplay dpy, EGLConfig config, const EGLint * attrib_list);
-typedef EGLSurface ( * PFNEGLCREATEPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint * attrib_list);
-typedef EGLSurface ( * PFNEGLCREATEWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list);
-typedef EGLBoolean ( * PFNEGLDESTROYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx);
-typedef EGLBoolean ( * PFNEGLDESTROYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface);
-typedef EGLBoolean ( * PFNEGLGETCONFIGATTRIBPROC) (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value);
-typedef EGLBoolean ( * PFNEGLGETCONFIGSPROC) (EGLDisplay dpy, EGLConfig * configs, EGLint config_size, EGLint * num_config);
-typedef EGLDisplay ( * PFNEGLGETCURRENTDISPLAYPROC) ( void );
-typedef EGLSurface ( * PFNEGLGETCURRENTSURFACEPROC) (EGLint readdraw);
-typedef EGLDisplay ( * PFNEGLGETDISPLAYPROC) (EGLNativeDisplayType display_id);
-typedef EGLint ( * PFNEGLGETERRORPROC) ( void );
-typedef EGLBoolean ( * PFNEGLINITIALIZEPROC) (EGLDisplay dpy, EGLint * major, EGLint * minor);
-typedef EGLBoolean ( * PFNEGLMAKECURRENTPROC) (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
-typedef EGLBoolean ( * PFNEGLQUERYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value);
-typedef const char * ( * PFNEGLQUERYSTRINGPROC) (EGLDisplay dpy, EGLint name);
-typedef EGLBoolean ( * PFNEGLQUERYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint * value);
-typedef EGLBoolean ( * PFNEGLSWAPBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface);
-typedef EGLBoolean ( * PFNEGLTERMINATEPROC) (EGLDisplay dpy);
-typedef EGLBoolean ( * PFNEGLWAITGLPROC) ( void );
-typedef EGLBoolean ( * PFNEGLWAITNATIVEPROC) (EGLint engine);
-
-#define eglChooseConfig EGLEW_GET_FUN(__eglewChooseConfig)
-#define eglCopyBuffers EGLEW_GET_FUN(__eglewCopyBuffers)
-#define eglCreateContext EGLEW_GET_FUN(__eglewCreateContext)
-#define eglCreatePbufferSurface EGLEW_GET_FUN(__eglewCreatePbufferSurface)
-#define eglCreatePixmapSurface EGLEW_GET_FUN(__eglewCreatePixmapSurface)
-#define eglCreateWindowSurface EGLEW_GET_FUN(__eglewCreateWindowSurface)
-#define eglDestroyContext EGLEW_GET_FUN(__eglewDestroyContext)
-#define eglDestroySurface EGLEW_GET_FUN(__eglewDestroySurface)
-#define eglGetConfigAttrib EGLEW_GET_FUN(__eglewGetConfigAttrib)
-#define eglGetConfigs EGLEW_GET_FUN(__eglewGetConfigs)
-#define eglGetCurrentDisplay EGLEW_GET_FUN(__eglewGetCurrentDisplay)
-#define eglGetCurrentSurface EGLEW_GET_FUN(__eglewGetCurrentSurface)
-#define eglGetDisplay EGLEW_GET_FUN(__eglewGetDisplay)
-#define eglGetError EGLEW_GET_FUN(__eglewGetError)
-#define eglInitialize EGLEW_GET_FUN(__eglewInitialize)
-#define eglMakeCurrent EGLEW_GET_FUN(__eglewMakeCurrent)
-#define eglQueryContext EGLEW_GET_FUN(__eglewQueryContext)
-#define eglQueryString EGLEW_GET_FUN(__eglewQueryString)
-#define eglQuerySurface EGLEW_GET_FUN(__eglewQuerySurface)
-#define eglSwapBuffers EGLEW_GET_FUN(__eglewSwapBuffers)
-#define eglTerminate EGLEW_GET_FUN(__eglewTerminate)
-#define eglWaitGL EGLEW_GET_FUN(__eglewWaitGL)
-#define eglWaitNative EGLEW_GET_FUN(__eglewWaitNative)
-
-#define EGLEW_VERSION_1_0 EGLEW_GET_VAR(__EGLEW_VERSION_1_0)
-
-#endif /* EGL_VERSION_1_0 */
-
-/* ---------------------------- EGL_VERSION_1_1 ---------------------------- */
-
-#ifndef EGL_VERSION_1_1
-#define EGL_VERSION_1_1 1
-
-#define EGL_CONTEXT_LOST 0x300E
-#define EGL_BIND_TO_TEXTURE_RGB 0x3039
-#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
-#define EGL_MIN_SWAP_INTERVAL 0x303B
-#define EGL_MAX_SWAP_INTERVAL 0x303C
-#define EGL_NO_TEXTURE 0x305C
-#define EGL_TEXTURE_RGB 0x305D
-#define EGL_TEXTURE_RGBA 0x305E
-#define EGL_TEXTURE_2D 0x305F
-#define EGL_TEXTURE_FORMAT 0x3080
-#define EGL_TEXTURE_TARGET 0x3081
-#define EGL_MIPMAP_TEXTURE 0x3082
-#define EGL_MIPMAP_LEVEL 0x3083
-#define EGL_BACK_BUFFER 0x3084
-
-typedef EGLBoolean ( * PFNEGLBINDTEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-typedef EGLBoolean ( * PFNEGLRELEASETEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-typedef EGLBoolean ( * PFNEGLSURFACEATTRIBPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
-typedef EGLBoolean ( * PFNEGLSWAPINTERVALPROC) (EGLDisplay dpy, EGLint interval);
-
-#define eglBindTexImage EGLEW_GET_FUN(__eglewBindTexImage)
-#define eglReleaseTexImage EGLEW_GET_FUN(__eglewReleaseTexImage)
-#define eglSurfaceAttrib EGLEW_GET_FUN(__eglewSurfaceAttrib)
-#define eglSwapInterval EGLEW_GET_FUN(__eglewSwapInterval)
-
-#define EGLEW_VERSION_1_1 EGLEW_GET_VAR(__EGLEW_VERSION_1_1)
-
-#endif /* EGL_VERSION_1_1 */
-
-/* ---------------------------- EGL_VERSION_1_2 ---------------------------- */
-
-#ifndef EGL_VERSION_1_2
-#define EGL_VERSION_1_2 1
-
-#define EGL_OPENGL_ES_BIT 0x0001
-#define EGL_OPENVG_BIT 0x0002
-#define EGL_LUMINANCE_SIZE 0x303D
-#define EGL_ALPHA_MASK_SIZE 0x303E
-#define EGL_COLOR_BUFFER_TYPE 0x303F
-#define EGL_RENDERABLE_TYPE 0x3040
-#define EGL_SINGLE_BUFFER 0x3085
-#define EGL_RENDER_BUFFER 0x3086
-#define EGL_COLORSPACE 0x3087
-#define EGL_ALPHA_FORMAT 0x3088
-#define EGL_COLORSPACE_LINEAR 0x308A
-#define EGL_ALPHA_FORMAT_NONPRE 0x308B
-#define EGL_ALPHA_FORMAT_PRE 0x308C
-#define EGL_CLIENT_APIS 0x308D
-#define EGL_RGB_BUFFER 0x308E
-#define EGL_LUMINANCE_BUFFER 0x308F
-#define EGL_HORIZONTAL_RESOLUTION 0x3090
-#define EGL_VERTICAL_RESOLUTION 0x3091
-#define EGL_PIXEL_ASPECT_RATIO 0x3092
-#define EGL_SWAP_BEHAVIOR 0x3093
-#define EGL_BUFFER_PRESERVED 0x3094
-#define EGL_BUFFER_DESTROYED 0x3095
-#define EGL_OPENVG_IMAGE 0x3096
-#define EGL_CONTEXT_CLIENT_TYPE 0x3097
-#define EGL_OPENGL_ES_API 0x30A0
-#define EGL_OPENVG_API 0x30A1
-#define EGL_DISPLAY_SCALING 10000
-
-typedef EGLBoolean ( * PFNEGLBINDAPIPROC) (EGLenum api);
-typedef EGLSurface ( * PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint * attrib_list);
-typedef EGLenum ( * PFNEGLQUERYAPIPROC) ( void );
-typedef EGLBoolean ( * PFNEGLRELEASETHREADPROC) ( void );
-typedef EGLBoolean ( * PFNEGLWAITCLIENTPROC) ( void );
-
-#define eglBindAPI EGLEW_GET_FUN(__eglewBindAPI)
-#define eglCreatePbufferFromClientBuffer EGLEW_GET_FUN(__eglewCreatePbufferFromClientBuffer)
-#define eglQueryAPI EGLEW_GET_FUN(__eglewQueryAPI)
-#define eglReleaseThread EGLEW_GET_FUN(__eglewReleaseThread)
-#define eglWaitClient EGLEW_GET_FUN(__eglewWaitClient)
-
-#define EGLEW_VERSION_1_2 EGLEW_GET_VAR(__EGLEW_VERSION_1_2)
-
-#endif /* EGL_VERSION_1_2 */
-
-/* ---------------------------- EGL_VERSION_1_3 ---------------------------- */
-
-#ifndef EGL_VERSION_1_3
-#define EGL_VERSION_1_3 1
-
-#define EGL_OPENGL_ES2_BIT 0x0004
-#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020
-#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040
-#define EGL_MATCH_NATIVE_PIXMAP 0x3041
-#define EGL_CONFORMANT 0x3042
-#define EGL_VG_COLORSPACE 0x3087
-#define EGL_VG_ALPHA_FORMAT 0x3088
-#define EGL_VG_COLORSPACE_LINEAR 0x308A
-#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B
-#define EGL_VG_ALPHA_FORMAT_PRE 0x308C
-#define EGL_CONTEXT_CLIENT_VERSION 0x3098
-
-#define EGLEW_VERSION_1_3 EGLEW_GET_VAR(__EGLEW_VERSION_1_3)
-
-#endif /* EGL_VERSION_1_3 */
-
-/* ---------------------------- EGL_VERSION_1_4 ---------------------------- */
-
-#ifndef EGL_VERSION_1_4
-#define EGL_VERSION_1_4 1
-
-#define EGL_OPENGL_BIT 0x0008
-#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200
-#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400
-#define EGL_MULTISAMPLE_RESOLVE 0x3099
-#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A
-#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B
-#define EGL_OPENGL_API 0x30A2
-
-typedef EGLContext ( * PFNEGLGETCURRENTCONTEXTPROC) ( void );
-
-#define eglGetCurrentContext EGLEW_GET_FUN(__eglewGetCurrentContext)
-
-#define EGLEW_VERSION_1_4 EGLEW_GET_VAR(__EGLEW_VERSION_1_4)
-
-#endif /* EGL_VERSION_1_4 */
-
-/* ---------------------------- EGL_VERSION_1_5 ---------------------------- */
-
-#ifndef EGL_VERSION_1_5
-#define EGL_VERSION_1_5 1
-
-#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
-#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001
-#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
-#define EGL_OPENGL_ES3_BIT 0x00000040
-#define EGL_GL_COLORSPACE_SRGB 0x3089
-#define EGL_GL_COLORSPACE_LINEAR 0x308A
-#define EGL_CONTEXT_MAJOR_VERSION 0x3098
-#define EGL_CL_EVENT_HANDLE 0x309C
-#define EGL_GL_COLORSPACE 0x309D
-#define EGL_GL_TEXTURE_2D 0x30B1
-#define EGL_GL_TEXTURE_3D 0x30B2
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
-#define EGL_GL_RENDERBUFFER 0x30B9
-#define EGL_GL_TEXTURE_LEVEL 0x30BC
-#define EGL_GL_TEXTURE_ZOFFSET 0x30BD
-#define EGL_IMAGE_PRESERVED 0x30D2
-#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0
-#define EGL_SYNC_STATUS 0x30F1
-#define EGL_SIGNALED 0x30F2
-#define EGL_UNSIGNALED 0x30F3
-#define EGL_TIMEOUT_EXPIRED 0x30F5
-#define EGL_CONDITION_SATISFIED 0x30F6
-#define EGL_SYNC_TYPE 0x30F7
-#define EGL_SYNC_CONDITION 0x30F8
-#define EGL_SYNC_FENCE 0x30F9
-#define EGL_CONTEXT_MINOR_VERSION 0x30FB
-#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD
-#define EGL_SYNC_CL_EVENT 0x30FE
-#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF
-#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0
-#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
-#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
-#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
-#define EGL_NO_RESET_NOTIFICATION 0x31BE
-#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF
-#define EGL_FOREVER 0xFFFFFFFFFFFFFFFF
-
-typedef EGLint ( * PFNEGLCLIENTWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
-typedef EGLImage ( * PFNEGLCREATEIMAGEPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib * attrib_list);
-typedef EGLSurface ( * PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLAttrib * attrib_list);
-typedef EGLSurface ( * PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list);
-typedef EGLSync ( * PFNEGLCREATESYNCPROC) (EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list);
-typedef EGLBoolean ( * PFNEGLDESTROYIMAGEPROC) (EGLDisplay dpy, EGLImage image);
-typedef EGLBoolean ( * PFNEGLDESTROYSYNCPROC) (EGLDisplay dpy, EGLSync sync);
-typedef EGLDisplay ( * PFNEGLGETPLATFORMDISPLAYPROC) (EGLenum platform, void * native_display, const EGLAttrib * attrib_list);
-typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBPROC) (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value);
-typedef EGLBoolean ( * PFNEGLWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags);
-
-#define eglClientWaitSync EGLEW_GET_FUN(__eglewClientWaitSync)
-#define eglCreateImage EGLEW_GET_FUN(__eglewCreateImage)
-#define eglCreatePlatformPixmapSurface EGLEW_GET_FUN(__eglewCreatePlatformPixmapSurface)
-#define eglCreatePlatformWindowSurface EGLEW_GET_FUN(__eglewCreatePlatformWindowSurface)
-#define eglCreateSync EGLEW_GET_FUN(__eglewCreateSync)
-#define eglDestroyImage EGLEW_GET_FUN(__eglewDestroyImage)
-#define eglDestroySync EGLEW_GET_FUN(__eglewDestroySync)
-#define eglGetPlatformDisplay EGLEW_GET_FUN(__eglewGetPlatformDisplay)
-#define eglGetSyncAttrib EGLEW_GET_FUN(__eglewGetSyncAttrib)
-#define eglWaitSync EGLEW_GET_FUN(__eglewWaitSync)
-
-#define EGLEW_VERSION_1_5 EGLEW_GET_VAR(__EGLEW_VERSION_1_5)
-
-#endif /* EGL_VERSION_1_5 */
-
-/* ------------------------ EGL_ANDROID_GLES_layers ------------------------ */
-
-#ifndef EGL_ANDROID_GLES_layers
-#define EGL_ANDROID_GLES_layers 1
-
-#define EGLEW_ANDROID_GLES_layers EGLEW_GET_VAR(__EGLEW_ANDROID_GLES_layers)
-
-#endif /* EGL_ANDROID_GLES_layers */
-
-/* ------------------------- EGL_ANDROID_blob_cache ------------------------ */
-
-#ifndef EGL_ANDROID_blob_cache
-#define EGL_ANDROID_blob_cache 1
-
-typedef void ( * PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
-
-#define eglSetBlobCacheFuncsANDROID EGLEW_GET_FUN(__eglewSetBlobCacheFuncsANDROID)
-
-#define EGLEW_ANDROID_blob_cache EGLEW_GET_VAR(__EGLEW_ANDROID_blob_cache)
-
-#endif /* EGL_ANDROID_blob_cache */
-
-/* ---------------- EGL_ANDROID_create_native_client_buffer ---------------- */
-
-#ifndef EGL_ANDROID_create_native_client_buffer
-#define EGL_ANDROID_create_native_client_buffer 1
-
-#define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001
-#define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002
-#define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004
-#define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143
-
-typedef EGLClientBuffer ( * PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint* attrib_list);
-
-#define eglCreateNativeClientBufferANDROID EGLEW_GET_FUN(__eglewCreateNativeClientBufferANDROID)
-
-#define EGLEW_ANDROID_create_native_client_buffer EGLEW_GET_VAR(__EGLEW_ANDROID_create_native_client_buffer)
-
-#endif /* EGL_ANDROID_create_native_client_buffer */
-
-/* --------------------- EGL_ANDROID_framebuffer_target -------------------- */
-
-#ifndef EGL_ANDROID_framebuffer_target
-#define EGL_ANDROID_framebuffer_target 1
-
-#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147
-
-#define EGLEW_ANDROID_framebuffer_target EGLEW_GET_VAR(__EGLEW_ANDROID_framebuffer_target)
-
-#endif /* EGL_ANDROID_framebuffer_target */
-
-/* ----------------- EGL_ANDROID_front_buffer_auto_refresh ----------------- */
-
-#ifndef EGL_ANDROID_front_buffer_auto_refresh
-#define EGL_ANDROID_front_buffer_auto_refresh 1
-
-#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C
-
-#define EGLEW_ANDROID_front_buffer_auto_refresh EGLEW_GET_VAR(__EGLEW_ANDROID_front_buffer_auto_refresh)
-
-#endif /* EGL_ANDROID_front_buffer_auto_refresh */
-
-/* -------------------- EGL_ANDROID_get_frame_timestamps ------------------- */
-
-#ifndef EGL_ANDROID_get_frame_timestamps
-#define EGL_ANDROID_get_frame_timestamps 1
-
-#define EGL_TIMESTAMPS_ANDROID 0x3430
-#define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431
-#define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432
-#define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433
-#define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434
-#define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435
-#define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436
-#define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437
-#define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438
-#define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439
-#define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A
-#define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B
-#define EGL_READS_DONE_TIME_ANDROID 0x343C
-
-typedef EGLBoolean ( * PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint* names, EGLnsecsANDROID* values);
-typedef EGLBoolean ( * PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint name);
-typedef EGLBoolean ( * PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
-typedef EGLBoolean ( * PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint* timestamps, EGLnsecsANDROID* values);
-typedef EGLBoolean ( * PFNEGLGETNEXTFRAMEIDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR* frameId);
-
-#define eglGetCompositorTimingANDROID EGLEW_GET_FUN(__eglewGetCompositorTimingANDROID)
-#define eglGetCompositorTimingSupportedANDROID EGLEW_GET_FUN(__eglewGetCompositorTimingSupportedANDROID)
-#define eglGetFrameTimestampSupportedANDROID EGLEW_GET_FUN(__eglewGetFrameTimestampSupportedANDROID)
-#define eglGetFrameTimestampsANDROID EGLEW_GET_FUN(__eglewGetFrameTimestampsANDROID)
-#define eglGetNextFrameIdANDROID EGLEW_GET_FUN(__eglewGetNextFrameIdANDROID)
-
-#define EGLEW_ANDROID_get_frame_timestamps EGLEW_GET_VAR(__EGLEW_ANDROID_get_frame_timestamps)
-
-#endif /* EGL_ANDROID_get_frame_timestamps */
-
-/* ------------------ EGL_ANDROID_get_native_client_buffer ----------------- */
-
-#ifndef EGL_ANDROID_get_native_client_buffer
-#define EGL_ANDROID_get_native_client_buffer 1
-
-typedef EGLClientBuffer ( * PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer* buffer);
-
-#define eglGetNativeClientBufferANDROID EGLEW_GET_FUN(__eglewGetNativeClientBufferANDROID)
-
-#define EGLEW_ANDROID_get_native_client_buffer EGLEW_GET_VAR(__EGLEW_ANDROID_get_native_client_buffer)
-
-#endif /* EGL_ANDROID_get_native_client_buffer */
-
-/* -------------------- EGL_ANDROID_image_native_buffer -------------------- */
-
-#ifndef EGL_ANDROID_image_native_buffer
-#define EGL_ANDROID_image_native_buffer 1
-
-#define EGL_NATIVE_BUFFER_ANDROID 0x3140
-
-#define EGLEW_ANDROID_image_native_buffer EGLEW_GET_VAR(__EGLEW_ANDROID_image_native_buffer)
-
-#endif /* EGL_ANDROID_image_native_buffer */
-
-/* --------------------- EGL_ANDROID_native_fence_sync --------------------- */
-
-#ifndef EGL_ANDROID_native_fence_sync
-#define EGL_ANDROID_native_fence_sync 1
-
-#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144
-#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145
-#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146
-
-typedef EGLint ( * PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync);
-
-#define eglDupNativeFenceFDANDROID EGLEW_GET_FUN(__eglewDupNativeFenceFDANDROID)
-
-#define EGLEW_ANDROID_native_fence_sync EGLEW_GET_VAR(__EGLEW_ANDROID_native_fence_sync)
-
-#endif /* EGL_ANDROID_native_fence_sync */
-
-/* --------------------- EGL_ANDROID_presentation_time --------------------- */
-
-#ifndef EGL_ANDROID_presentation_time
-#define EGL_ANDROID_presentation_time 1
-
-typedef EGLBoolean ( * PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
-
-#define eglPresentationTimeANDROID EGLEW_GET_FUN(__eglewPresentationTimeANDROID)
-
-#define EGLEW_ANDROID_presentation_time EGLEW_GET_VAR(__EGLEW_ANDROID_presentation_time)
-
-#endif /* EGL_ANDROID_presentation_time */
-
-/* ------------------------- EGL_ANDROID_recordable ------------------------ */
-
-#ifndef EGL_ANDROID_recordable
-#define EGL_ANDROID_recordable 1
-
-#define EGL_RECORDABLE_ANDROID 0x3142
-
-#define EGLEW_ANDROID_recordable EGLEW_GET_VAR(__EGLEW_ANDROID_recordable)
-
-#endif /* EGL_ANDROID_recordable */
-
-/* ---------------- EGL_ANGLE_d3d_share_handle_client_buffer --------------- */
-
-#ifndef EGL_ANGLE_d3d_share_handle_client_buffer
-#define EGL_ANGLE_d3d_share_handle_client_buffer 1
-
-#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
-
-#define EGLEW_ANGLE_d3d_share_handle_client_buffer EGLEW_GET_VAR(__EGLEW_ANGLE_d3d_share_handle_client_buffer)
-
-#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */
-
-/* -------------------------- EGL_ANGLE_device_d3d ------------------------- */
-
-#ifndef EGL_ANGLE_device_d3d
-#define EGL_ANGLE_device_d3d 1
-
-#define EGL_D3D9_DEVICE_ANGLE 0x33A0
-#define EGL_D3D11_DEVICE_ANGLE 0x33A1
-
-#define EGLEW_ANGLE_device_d3d EGLEW_GET_VAR(__EGLEW_ANGLE_device_d3d)
-
-#endif /* EGL_ANGLE_device_d3d */
-
-/* -------------------- EGL_ANGLE_query_surface_pointer -------------------- */
-
-#ifndef EGL_ANGLE_query_surface_pointer
-#define EGL_ANGLE_query_surface_pointer 1
-
-typedef EGLBoolean ( * PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void** value);
-
-#define eglQuerySurfacePointerANGLE EGLEW_GET_FUN(__eglewQuerySurfacePointerANGLE)
-
-#define EGLEW_ANGLE_query_surface_pointer EGLEW_GET_VAR(__EGLEW_ANGLE_query_surface_pointer)
-
-#endif /* EGL_ANGLE_query_surface_pointer */
-
-/* ------------- EGL_ANGLE_surface_d3d_texture_2d_share_handle ------------- */
-
-#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle
-#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
-
-#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200
-
-#define EGLEW_ANGLE_surface_d3d_texture_2d_share_handle EGLEW_GET_VAR(__EGLEW_ANGLE_surface_d3d_texture_2d_share_handle)
-
-#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
-
-/* ---------------------- EGL_ANGLE_window_fixed_size ---------------------- */
-
-#ifndef EGL_ANGLE_window_fixed_size
-#define EGL_ANGLE_window_fixed_size 1
-
-#define EGL_FIXED_SIZE_ANGLE 0x3201
-
-#define EGLEW_ANGLE_window_fixed_size EGLEW_GET_VAR(__EGLEW_ANGLE_window_fixed_size)
-
-#endif /* EGL_ANGLE_window_fixed_size */
-
-/* -------------------------- EGL_ARM_image_format ------------------------- */
-
-#ifndef EGL_ARM_image_format
-#define EGL_ARM_image_format 1
-
-#define EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287
-#define EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288
-
-#define EGLEW_ARM_image_format EGLEW_GET_VAR(__EGLEW_ARM_image_format)
-
-#endif /* EGL_ARM_image_format */
-
-/* --------------------- EGL_ARM_implicit_external_sync -------------------- */
-
-#ifndef EGL_ARM_implicit_external_sync
-#define EGL_ARM_implicit_external_sync 1
-
-#define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A
-
-#define EGLEW_ARM_implicit_external_sync EGLEW_GET_VAR(__EGLEW_ARM_implicit_external_sync)
-
-#endif /* EGL_ARM_implicit_external_sync */
-
-/* ------------------- EGL_ARM_pixmap_multisample_discard ------------------ */
-
-#ifndef EGL_ARM_pixmap_multisample_discard
-#define EGL_ARM_pixmap_multisample_discard 1
-
-#define EGL_DISCARD_SAMPLES_ARM 0x3286
-
-#define EGLEW_ARM_pixmap_multisample_discard EGLEW_GET_VAR(__EGLEW_ARM_pixmap_multisample_discard)
-
-#endif /* EGL_ARM_pixmap_multisample_discard */
-
-/* ------------------------- EGL_EXT_bind_to_front ------------------------- */
-
-#ifndef EGL_EXT_bind_to_front
-#define EGL_EXT_bind_to_front 1
-
-#define EGL_FRONT_BUFFER_EXT 0x3464
-
-#define EGLEW_EXT_bind_to_front EGLEW_GET_VAR(__EGLEW_EXT_bind_to_front)
-
-#endif /* EGL_EXT_bind_to_front */
-
-/* --------------------------- EGL_EXT_buffer_age -------------------------- */
-
-#ifndef EGL_EXT_buffer_age
-#define EGL_EXT_buffer_age 1
-
-#define EGL_BUFFER_AGE_EXT 0x313D
-
-#define EGLEW_EXT_buffer_age EGLEW_GET_VAR(__EGLEW_EXT_buffer_age)
-
-#endif /* EGL_EXT_buffer_age */
-
-/* ----------------------- EGL_EXT_client_extensions ----------------------- */
-
-#ifndef EGL_EXT_client_extensions
-#define EGL_EXT_client_extensions 1
-
-#define EGLEW_EXT_client_extensions EGLEW_GET_VAR(__EGLEW_EXT_client_extensions)
-
-#endif /* EGL_EXT_client_extensions */
-
-/* -------------------------- EGL_EXT_client_sync -------------------------- */
-
-#ifndef EGL_EXT_client_sync
-#define EGL_EXT_client_sync 1
-
-#define EGL_SYNC_CLIENT_EXT 0x3364
-#define EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365
-
-typedef EGLBoolean ( * PFNEGLCLIENTSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib* attrib_list);
-
-#define eglClientSignalSyncEXT EGLEW_GET_FUN(__eglewClientSignalSyncEXT)
-
-#define EGLEW_EXT_client_sync EGLEW_GET_VAR(__EGLEW_EXT_client_sync)
-
-#endif /* EGL_EXT_client_sync */
-
-/* --------------------------- EGL_EXT_compositor -------------------------- */
-
-#ifndef EGL_EXT_compositor
-#define EGL_EXT_compositor 1
-
-#define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460
-#define EGL_EXTERNAL_REF_ID_EXT 0x3461
-#define EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462
-#define EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463
-
-typedef EGLBoolean ( * PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC) (EGLint external_win_id);
-typedef EGLBoolean ( * PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC) (EGLint external_ref_id, const EGLint* context_attributes, EGLint num_entries);
-typedef EGLBoolean ( * PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC) (const EGLint* external_ref_ids, EGLint num_entries);
-typedef EGLBoolean ( * PFNEGLCOMPOSITORSETSIZEEXTPROC) (EGLint external_win_id, EGLint width, EGLint height);
-typedef EGLBoolean ( * PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC) (EGLint external_win_id, const EGLint* window_attributes, EGLint num_entries);
-typedef EGLBoolean ( * PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC) (EGLint external_ref_id, const EGLint* external_win_ids, EGLint num_entries);
-typedef EGLBoolean ( * PFNEGLCOMPOSITORSWAPPOLICYEXTPROC) (EGLint external_win_id, EGLint policy);
-
-#define eglCompositorBindTexWindowEXT EGLEW_GET_FUN(__eglewCompositorBindTexWindowEXT)
-#define eglCompositorSetContextAttributesEXT EGLEW_GET_FUN(__eglewCompositorSetContextAttributesEXT)
-#define eglCompositorSetContextListEXT EGLEW_GET_FUN(__eglewCompositorSetContextListEXT)
-#define eglCompositorSetSizeEXT EGLEW_GET_FUN(__eglewCompositorSetSizeEXT)
-#define eglCompositorSetWindowAttributesEXT EGLEW_GET_FUN(__eglewCompositorSetWindowAttributesEXT)
-#define eglCompositorSetWindowListEXT EGLEW_GET_FUN(__eglewCompositorSetWindowListEXT)
-#define eglCompositorSwapPolicyEXT EGLEW_GET_FUN(__eglewCompositorSwapPolicyEXT)
-
-#define EGLEW_EXT_compositor EGLEW_GET_VAR(__EGLEW_EXT_compositor)
-
-#endif /* EGL_EXT_compositor */
-
-/* ------------------- EGL_EXT_create_context_robustness ------------------- */
-
-#ifndef EGL_EXT_create_context_robustness
-#define EGL_EXT_create_context_robustness 1
-
-#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
-#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
-#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE
-#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF
-
-#define EGLEW_EXT_create_context_robustness EGLEW_GET_VAR(__EGLEW_EXT_create_context_robustness)
-
-#endif /* EGL_EXT_create_context_robustness */
-
-/* -------------------------- EGL_EXT_device_base -------------------------- */
-
-#ifndef EGL_EXT_device_base
-#define EGL_EXT_device_base 1
-
-#define EGL_BAD_DEVICE_EXT 0x322B
-#define EGL_DEVICE_EXT 0x322C
-
-#define EGLEW_EXT_device_base EGLEW_GET_VAR(__EGLEW_EXT_device_base)
-
-#endif /* EGL_EXT_device_base */
-
-/* --------------------------- EGL_EXT_device_drm -------------------------- */
-
-#ifndef EGL_EXT_device_drm
-#define EGL_EXT_device_drm 1
-
-#define EGL_DRM_DEVICE_FILE_EXT 0x3233
-#define EGL_DRM_MASTER_FD_EXT 0x333C
-
-#define EGLEW_EXT_device_drm EGLEW_GET_VAR(__EGLEW_EXT_device_drm)
-
-#endif /* EGL_EXT_device_drm */
-
-/* ----------------------- EGL_EXT_device_enumeration ---------------------- */
-
-#ifndef EGL_EXT_device_enumeration
-#define EGL_EXT_device_enumeration 1
-
-typedef EGLBoolean ( * PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT* devices, EGLint* num_devices);
-
-#define eglQueryDevicesEXT EGLEW_GET_FUN(__eglewQueryDevicesEXT)
-
-#define EGLEW_EXT_device_enumeration EGLEW_GET_VAR(__EGLEW_EXT_device_enumeration)
-
-#endif /* EGL_EXT_device_enumeration */
-
-/* ------------------------- EGL_EXT_device_openwf ------------------------- */
-
-#ifndef EGL_EXT_device_openwf
-#define EGL_EXT_device_openwf 1
-
-#define EGL_OPENWF_DEVICE_ID_EXT 0x3237
-
-#define EGLEW_EXT_device_openwf EGLEW_GET_VAR(__EGLEW_EXT_device_openwf)
-
-#endif /* EGL_EXT_device_openwf */
-
-/* -------------------------- EGL_EXT_device_query ------------------------- */
-
-#ifndef EGL_EXT_device_query
-#define EGL_EXT_device_query 1
-
-#define EGL_BAD_DEVICE_EXT 0x322B
-#define EGL_DEVICE_EXT 0x322C
-
-typedef EGLBoolean ( * PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib* value);
-typedef const char* ( * PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name);
-typedef EGLBoolean ( * PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib* value);
-
-#define eglQueryDeviceAttribEXT EGLEW_GET_FUN(__eglewQueryDeviceAttribEXT)
-#define eglQueryDeviceStringEXT EGLEW_GET_FUN(__eglewQueryDeviceStringEXT)
-#define eglQueryDisplayAttribEXT EGLEW_GET_FUN(__eglewQueryDisplayAttribEXT)
-
-#define EGLEW_EXT_device_query EGLEW_GET_VAR(__EGLEW_EXT_device_query)
-
-#endif /* EGL_EXT_device_query */
-
-/* ------------------ EGL_EXT_gl_colorspace_bt2020_linear ------------------ */
-
-#ifndef EGL_EXT_gl_colorspace_bt2020_linear
-#define EGL_EXT_gl_colorspace_bt2020_linear 1
-
-#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F
-
-#define EGLEW_EXT_gl_colorspace_bt2020_linear EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_bt2020_linear)
-
-#endif /* EGL_EXT_gl_colorspace_bt2020_linear */
-
-/* -------------------- EGL_EXT_gl_colorspace_bt2020_pq -------------------- */
-
-#ifndef EGL_EXT_gl_colorspace_bt2020_pq
-#define EGL_EXT_gl_colorspace_bt2020_pq 1
-
-#define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340
-
-#define EGLEW_EXT_gl_colorspace_bt2020_pq EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_bt2020_pq)
-
-#endif /* EGL_EXT_gl_colorspace_bt2020_pq */
-
-/* -------------------- EGL_EXT_gl_colorspace_display_p3 ------------------- */
-
-#ifndef EGL_EXT_gl_colorspace_display_p3
-#define EGL_EXT_gl_colorspace_display_p3 1
-
-#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363
-
-#define EGLEW_EXT_gl_colorspace_display_p3 EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_display_p3)
-
-#endif /* EGL_EXT_gl_colorspace_display_p3 */
-
-/* ---------------- EGL_EXT_gl_colorspace_display_p3_linear ---------------- */
-
-#ifndef EGL_EXT_gl_colorspace_display_p3_linear
-#define EGL_EXT_gl_colorspace_display_p3_linear 1
-
-#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362
-
-#define EGLEW_EXT_gl_colorspace_display_p3_linear EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_display_p3_linear)
-
-#endif /* EGL_EXT_gl_colorspace_display_p3_linear */
-
-/* -------------- EGL_EXT_gl_colorspace_display_p3_passthrough ------------- */
-
-#ifndef EGL_EXT_gl_colorspace_display_p3_passthrough
-#define EGL_EXT_gl_colorspace_display_p3_passthrough 1
-
-#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490
-
-#define EGLEW_EXT_gl_colorspace_display_p3_passthrough EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_display_p3_passthrough)
-
-#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */
-
-/* ---------------------- EGL_EXT_gl_colorspace_scrgb ---------------------- */
-
-#ifndef EGL_EXT_gl_colorspace_scrgb
-#define EGL_EXT_gl_colorspace_scrgb 1
-
-#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351
-
-#define EGLEW_EXT_gl_colorspace_scrgb EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_scrgb)
-
-#endif /* EGL_EXT_gl_colorspace_scrgb */
-
-/* ------------------- EGL_EXT_gl_colorspace_scrgb_linear ------------------ */
-
-#ifndef EGL_EXT_gl_colorspace_scrgb_linear
-#define EGL_EXT_gl_colorspace_scrgb_linear 1
-
-#define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350
-
-#define EGLEW_EXT_gl_colorspace_scrgb_linear EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_scrgb_linear)
-
-#endif /* EGL_EXT_gl_colorspace_scrgb_linear */
-
-/* ---------------------- EGL_EXT_image_dma_buf_import --------------------- */
-
-#ifndef EGL_EXT_image_dma_buf_import
-#define EGL_EXT_image_dma_buf_import 1
-
-#define EGL_LINUX_DMA_BUF_EXT 0x3270
-#define EGL_LINUX_DRM_FOURCC_EXT 0x3271
-#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
-#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
-#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
-#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
-#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
-#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
-#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
-#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
-#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
-#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
-#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C
-#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
-#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
-#define EGL_ITU_REC601_EXT 0x327F
-#define EGL_ITU_REC709_EXT 0x3280
-#define EGL_ITU_REC2020_EXT 0x3281
-#define EGL_YUV_FULL_RANGE_EXT 0x3282
-#define EGL_YUV_NARROW_RANGE_EXT 0x3283
-#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284
-#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285
-
-#define EGLEW_EXT_image_dma_buf_import EGLEW_GET_VAR(__EGLEW_EXT_image_dma_buf_import)
-
-#endif /* EGL_EXT_image_dma_buf_import */
-
-/* ----------------- EGL_EXT_image_dma_buf_import_modifiers ---------------- */
-
-#ifndef EGL_EXT_image_dma_buf_import_modifiers
-#define EGL_EXT_image_dma_buf_import_modifiers 1
-
-#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
-#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
-#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
-#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
-#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
-#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
-#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
-#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
-#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
-#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
-#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
-
-typedef EGLBoolean ( * PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint* formats, EGLint* num_formats);
-typedef EGLBoolean ( * PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR* modifiers, EGLBoolean* external_only, EGLint* num_modifiers);
-
-#define eglQueryDmaBufFormatsEXT EGLEW_GET_FUN(__eglewQueryDmaBufFormatsEXT)
-#define eglQueryDmaBufModifiersEXT EGLEW_GET_FUN(__eglewQueryDmaBufModifiersEXT)
-
-#define EGLEW_EXT_image_dma_buf_import_modifiers EGLEW_GET_VAR(__EGLEW_EXT_image_dma_buf_import_modifiers)
-
-#endif /* EGL_EXT_image_dma_buf_import_modifiers */
-
-/* ---------------------- EGL_EXT_image_gl_colorspace ---------------------- */
-
-#ifndef EGL_EXT_image_gl_colorspace
-#define EGL_EXT_image_gl_colorspace 1
-
-#define EGL_GL_COLORSPACE 0x309D
-#define EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D
-
-#define EGLEW_EXT_image_gl_colorspace EGLEW_GET_VAR(__EGLEW_EXT_image_gl_colorspace)
-
-#endif /* EGL_EXT_image_gl_colorspace */
-
-/* ------------------ EGL_EXT_image_implicit_sync_control ------------------ */
-
-#ifndef EGL_EXT_image_implicit_sync_control
-#define EGL_EXT_image_implicit_sync_control 1
-
-#define EGL_IMPORT_SYNC_TYPE_EXT 0x3470
-#define EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471
-#define EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472
-
-#define EGLEW_EXT_image_implicit_sync_control EGLEW_GET_VAR(__EGLEW_EXT_image_implicit_sync_control)
-
-#endif /* EGL_EXT_image_implicit_sync_control */
-
-/* ------------------------ EGL_EXT_multiview_window ----------------------- */
-
-#ifndef EGL_EXT_multiview_window
-#define EGL_EXT_multiview_window 1
-
-#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134
-
-#define EGLEW_EXT_multiview_window EGLEW_GET_VAR(__EGLEW_EXT_multiview_window)
-
-#endif /* EGL_EXT_multiview_window */
-
-/* -------------------------- EGL_EXT_output_base -------------------------- */
-
-#ifndef EGL_EXT_output_base
-#define EGL_EXT_output_base 1
-
-#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D
-#define EGL_BAD_OUTPUT_PORT_EXT 0x322E
-#define EGL_SWAP_INTERVAL_EXT 0x322F
-
-typedef EGLBoolean ( * PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib* attrib_list, EGLOutputLayerEXT* layers, EGLint max_layers, EGLint* num_layers);
-typedef EGLBoolean ( * PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib* attrib_list, EGLOutputPortEXT* ports, EGLint max_ports, EGLint* num_ports);
-typedef EGLBoolean ( * PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
-typedef EGLBoolean ( * PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
-typedef EGLBoolean ( * PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib* value);
-typedef const char* ( * PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
-typedef EGLBoolean ( * PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib* value);
-typedef const char* ( * PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
-
-#define eglGetOutputLayersEXT EGLEW_GET_FUN(__eglewGetOutputLayersEXT)
-#define eglGetOutputPortsEXT EGLEW_GET_FUN(__eglewGetOutputPortsEXT)
-#define eglOutputLayerAttribEXT EGLEW_GET_FUN(__eglewOutputLayerAttribEXT)
-#define eglOutputPortAttribEXT EGLEW_GET_FUN(__eglewOutputPortAttribEXT)
-#define eglQueryOutputLayerAttribEXT EGLEW_GET_FUN(__eglewQueryOutputLayerAttribEXT)
-#define eglQueryOutputLayerStringEXT EGLEW_GET_FUN(__eglewQueryOutputLayerStringEXT)
-#define eglQueryOutputPortAttribEXT EGLEW_GET_FUN(__eglewQueryOutputPortAttribEXT)
-#define eglQueryOutputPortStringEXT EGLEW_GET_FUN(__eglewQueryOutputPortStringEXT)
-
-#define EGLEW_EXT_output_base EGLEW_GET_VAR(__EGLEW_EXT_output_base)
-
-#endif /* EGL_EXT_output_base */
-
-/* --------------------------- EGL_EXT_output_drm -------------------------- */
-
-#ifndef EGL_EXT_output_drm
-#define EGL_EXT_output_drm 1
-
-#define EGL_DRM_CRTC_EXT 0x3234
-#define EGL_DRM_PLANE_EXT 0x3235
-#define EGL_DRM_CONNECTOR_EXT 0x3236
-
-#define EGLEW_EXT_output_drm EGLEW_GET_VAR(__EGLEW_EXT_output_drm)
-
-#endif /* EGL_EXT_output_drm */
-
-/* ------------------------- EGL_EXT_output_openwf ------------------------- */
-
-#ifndef EGL_EXT_output_openwf
-#define EGL_EXT_output_openwf 1
-
-#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238
-#define EGL_OPENWF_PORT_ID_EXT 0x3239
-
-#define EGLEW_EXT_output_openwf EGLEW_GET_VAR(__EGLEW_EXT_output_openwf)
-
-#endif /* EGL_EXT_output_openwf */
-
-/* ----------------------- EGL_EXT_pixel_format_float ---------------------- */
-
-#ifndef EGL_EXT_pixel_format_float
-#define EGL_EXT_pixel_format_float 1
-
-#define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339
-#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A
-#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
-
-#define EGLEW_EXT_pixel_format_float EGLEW_GET_VAR(__EGLEW_EXT_pixel_format_float)
-
-#endif /* EGL_EXT_pixel_format_float */
-
-/* ------------------------- EGL_EXT_platform_base ------------------------- */
-
-#ifndef EGL_EXT_platform_base
-#define EGL_EXT_platform_base 1
-
-typedef EGLSurface ( * PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void* native_pixmap, const EGLint* attrib_list);
-typedef EGLSurface ( * PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void* native_window, const EGLint* attrib_list);
-typedef EGLDisplay ( * PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void* native_display, const EGLint* attrib_list);
-
-#define eglCreatePlatformPixmapSurfaceEXT EGLEW_GET_FUN(__eglewCreatePlatformPixmapSurfaceEXT)
-#define eglCreatePlatformWindowSurfaceEXT EGLEW_GET_FUN(__eglewCreatePlatformWindowSurfaceEXT)
-#define eglGetPlatformDisplayEXT EGLEW_GET_FUN(__eglewGetPlatformDisplayEXT)
-
-#define EGLEW_EXT_platform_base EGLEW_GET_VAR(__EGLEW_EXT_platform_base)
-
-#endif /* EGL_EXT_platform_base */
-
-/* ------------------------ EGL_EXT_platform_device ------------------------ */
-
-#ifndef EGL_EXT_platform_device
-#define EGL_EXT_platform_device 1
-
-#define EGL_PLATFORM_DEVICE_EXT 0x313F
-
-#define EGLEW_EXT_platform_device EGLEW_GET_VAR(__EGLEW_EXT_platform_device)
-
-#endif /* EGL_EXT_platform_device */
-
-/* ------------------------ EGL_EXT_platform_wayland ----------------------- */
-
-#ifndef EGL_EXT_platform_wayland
-#define EGL_EXT_platform_wayland 1
-
-#define EGL_PLATFORM_WAYLAND_EXT 0x31D8
-
-#define EGLEW_EXT_platform_wayland EGLEW_GET_VAR(__EGLEW_EXT_platform_wayland)
-
-#endif /* EGL_EXT_platform_wayland */
-
-/* -------------------------- EGL_EXT_platform_x11 ------------------------- */
-
-#ifndef EGL_EXT_platform_x11
-#define EGL_EXT_platform_x11 1
-
-#define EGL_PLATFORM_X11_EXT 0x31D5
-#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
-
-#define EGLEW_EXT_platform_x11 EGLEW_GET_VAR(__EGLEW_EXT_platform_x11)
-
-#endif /* EGL_EXT_platform_x11 */
-
-/* ----------------------- EGL_EXT_protected_content ----------------------- */
-
-#ifndef EGL_EXT_protected_content
-#define EGL_EXT_protected_content 1
-
-#define EGL_PROTECTED_CONTENT_EXT 0x32C0
-
-#define EGLEW_EXT_protected_content EGLEW_GET_VAR(__EGLEW_EXT_protected_content)
-
-#endif /* EGL_EXT_protected_content */
-
-/* ----------------------- EGL_EXT_protected_surface ----------------------- */
-
-#ifndef EGL_EXT_protected_surface
-#define EGL_EXT_protected_surface 1
-
-#define EGL_PROTECTED_CONTENT_EXT 0x32C0
-
-#define EGLEW_EXT_protected_surface EGLEW_GET_VAR(__EGLEW_EXT_protected_surface)
-
-#endif /* EGL_EXT_protected_surface */
-
-/* ------------------- EGL_EXT_stream_consumer_egloutput ------------------- */
-
-#ifndef EGL_EXT_stream_consumer_egloutput
-#define EGL_EXT_stream_consumer_egloutput 1
-
-typedef EGLBoolean ( * PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
-
-#define eglStreamConsumerOutputEXT EGLEW_GET_FUN(__eglewStreamConsumerOutputEXT)
-
-#define EGLEW_EXT_stream_consumer_egloutput EGLEW_GET_VAR(__EGLEW_EXT_stream_consumer_egloutput)
-
-#endif /* EGL_EXT_stream_consumer_egloutput */
-
-/* ------------------- EGL_EXT_surface_CTA861_3_metadata ------------------- */
-
-#ifndef EGL_EXT_surface_CTA861_3_metadata
-#define EGL_EXT_surface_CTA861_3_metadata 1
-
-#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360
-#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361
-
-#define EGLEW_EXT_surface_CTA861_3_metadata EGLEW_GET_VAR(__EGLEW_EXT_surface_CTA861_3_metadata)
-
-#endif /* EGL_EXT_surface_CTA861_3_metadata */
-
-/* ------------------- EGL_EXT_surface_SMPTE2086_metadata ------------------ */
-
-#ifndef EGL_EXT_surface_SMPTE2086_metadata
-#define EGL_EXT_surface_SMPTE2086_metadata 1
-
-#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341
-#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342
-#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343
-#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344
-#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345
-#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346
-#define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347
-#define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348
-#define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349
-#define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A
-#define EGL_METADATA_SCALING_EXT 50000
-
-#define EGLEW_EXT_surface_SMPTE2086_metadata EGLEW_GET_VAR(__EGLEW_EXT_surface_SMPTE2086_metadata)
-
-#endif /* EGL_EXT_surface_SMPTE2086_metadata */
-
-/* -------------------- EGL_EXT_swap_buffers_with_damage ------------------- */
-
-#ifndef EGL_EXT_swap_buffers_with_damage
-#define EGL_EXT_swap_buffers_with_damage 1
-
-typedef EGLBoolean ( * PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint* rects, EGLint n_rects);
-
-#define eglSwapBuffersWithDamageEXT EGLEW_GET_FUN(__eglewSwapBuffersWithDamageEXT)
-
-#define EGLEW_EXT_swap_buffers_with_damage EGLEW_GET_VAR(__EGLEW_EXT_swap_buffers_with_damage)
-
-#endif /* EGL_EXT_swap_buffers_with_damage */
-
-/* --------------------------- EGL_EXT_sync_reuse -------------------------- */
-
-#ifndef EGL_EXT_sync_reuse
-#define EGL_EXT_sync_reuse 1
-
-typedef EGLBoolean ( * PFNEGLUNSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib* attrib_list);
-
-#define eglUnsignalSyncEXT EGLEW_GET_FUN(__eglewUnsignalSyncEXT)
-
-#define EGLEW_EXT_sync_reuse EGLEW_GET_VAR(__EGLEW_EXT_sync_reuse)
-
-#endif /* EGL_EXT_sync_reuse */
-
-/* -------------------------- EGL_EXT_yuv_surface -------------------------- */
-
-#ifndef EGL_EXT_yuv_surface
-#define EGL_EXT_yuv_surface 1
-
-#define EGL_YUV_BUFFER_EXT 0x3300
-#define EGL_YUV_ORDER_EXT 0x3301
-#define EGL_YUV_ORDER_YUV_EXT 0x3302
-#define EGL_YUV_ORDER_YVU_EXT 0x3303
-#define EGL_YUV_ORDER_YUYV_EXT 0x3304
-#define EGL_YUV_ORDER_UYVY_EXT 0x3305
-#define EGL_YUV_ORDER_YVYU_EXT 0x3306
-#define EGL_YUV_ORDER_VYUY_EXT 0x3307
-#define EGL_YUV_ORDER_AYUV_EXT 0x3308
-#define EGL_YUV_CSC_STANDARD_EXT 0x330A
-#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B
-#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C
-#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D
-#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
-#define EGL_YUV_SUBSAMPLE_EXT 0x3312
-#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313
-#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314
-#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315
-#define EGL_YUV_DEPTH_RANGE_EXT 0x3317
-#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318
-#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319
-#define EGL_YUV_PLANE_BPP_EXT 0x331A
-#define EGL_YUV_PLANE_BPP_0_EXT 0x331B
-#define EGL_YUV_PLANE_BPP_8_EXT 0x331C
-#define EGL_YUV_PLANE_BPP_10_EXT 0x331D
-
-#define EGLEW_EXT_yuv_surface EGLEW_GET_VAR(__EGLEW_EXT_yuv_surface)
-
-#endif /* EGL_EXT_yuv_surface */
-
-/* -------------------------- EGL_HI_clientpixmap -------------------------- */
-
-#ifndef EGL_HI_clientpixmap
-#define EGL_HI_clientpixmap 1
-
-#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74
-
-typedef EGLSurface ( * PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
-
-#define eglCreatePixmapSurfaceHI EGLEW_GET_FUN(__eglewCreatePixmapSurfaceHI)
-
-#define EGLEW_HI_clientpixmap EGLEW_GET_VAR(__EGLEW_HI_clientpixmap)
-
-#endif /* EGL_HI_clientpixmap */
-
-/* -------------------------- EGL_HI_colorformats -------------------------- */
-
-#ifndef EGL_HI_colorformats
-#define EGL_HI_colorformats 1
-
-#define EGL_COLOR_FORMAT_HI 0x8F70
-#define EGL_COLOR_RGB_HI 0x8F71
-#define EGL_COLOR_RGBA_HI 0x8F72
-#define EGL_COLOR_ARGB_HI 0x8F73
-
-#define EGLEW_HI_colorformats EGLEW_GET_VAR(__EGLEW_HI_colorformats)
-
-#endif /* EGL_HI_colorformats */
-
-/* ------------------------ EGL_IMG_context_priority ----------------------- */
-
-#ifndef EGL_IMG_context_priority
-#define EGL_IMG_context_priority 1
-
-#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100
-#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101
-#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102
-#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103
-
-#define EGLEW_IMG_context_priority EGLEW_GET_VAR(__EGLEW_IMG_context_priority)
-
-#endif /* EGL_IMG_context_priority */
-
-/* ---------------------- EGL_IMG_image_plane_attribs ---------------------- */
-
-#ifndef EGL_IMG_image_plane_attribs
-#define EGL_IMG_image_plane_attribs 1
-
-#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105
-#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106
-
-#define EGLEW_IMG_image_plane_attribs EGLEW_GET_VAR(__EGLEW_IMG_image_plane_attribs)
-
-#endif /* EGL_IMG_image_plane_attribs */
-
-/* ---------------------------- EGL_KHR_cl_event --------------------------- */
-
-#ifndef EGL_KHR_cl_event
-#define EGL_KHR_cl_event 1
-
-#define EGL_CL_EVENT_HANDLE_KHR 0x309C
-#define EGL_SYNC_CL_EVENT_KHR 0x30FE
-#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
-
-#define EGLEW_KHR_cl_event EGLEW_GET_VAR(__EGLEW_KHR_cl_event)
-
-#endif /* EGL_KHR_cl_event */
-
-/* --------------------------- EGL_KHR_cl_event2 --------------------------- */
-
-#ifndef EGL_KHR_cl_event2
-#define EGL_KHR_cl_event2 1
-
-#define EGL_CL_EVENT_HANDLE_KHR 0x309C
-#define EGL_SYNC_CL_EVENT_KHR 0x30FE
-#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
-
-typedef EGLSyncKHR ( * PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR* attrib_list);
-
-#define eglCreateSync64KHR EGLEW_GET_FUN(__eglewCreateSync64KHR)
-
-#define EGLEW_KHR_cl_event2 EGLEW_GET_VAR(__EGLEW_KHR_cl_event2)
-
-#endif /* EGL_KHR_cl_event2 */
-
-/* ----------------- EGL_KHR_client_get_all_proc_addresses ----------------- */
-
-#ifndef EGL_KHR_client_get_all_proc_addresses
-#define EGL_KHR_client_get_all_proc_addresses 1
-
-#define EGLEW_KHR_client_get_all_proc_addresses EGLEW_GET_VAR(__EGLEW_KHR_client_get_all_proc_addresses)
-
-#endif /* EGL_KHR_client_get_all_proc_addresses */
-
-/* ------------------------- EGL_KHR_config_attribs ------------------------ */
-
-#ifndef EGL_KHR_config_attribs
-#define EGL_KHR_config_attribs 1
-
-#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020
-#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040
-#define EGL_CONFORMANT_KHR 0x3042
-
-#define EGLEW_KHR_config_attribs EGLEW_GET_VAR(__EGLEW_KHR_config_attribs)
-
-#endif /* EGL_KHR_config_attribs */
-
-/* --------------------- EGL_KHR_context_flush_control --------------------- */
-
-#ifndef EGL_KHR_context_flush_control
-#define EGL_KHR_context_flush_control 1
-
-#define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0
-#define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097
-#define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098
-
-#define EGLEW_KHR_context_flush_control EGLEW_GET_VAR(__EGLEW_KHR_context_flush_control)
-
-#endif /* EGL_KHR_context_flush_control */
-
-/* ------------------------- EGL_KHR_create_context ------------------------ */
-
-#ifndef EGL_KHR_create_context
-#define EGL_KHR_create_context 1
-
-#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001
-#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001
-#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002
-#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002
-#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004
-#define EGL_OPENGL_ES3_BIT 0x00000040
-#define EGL_OPENGL_ES3_BIT_KHR 0x00000040
-#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098
-#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
-#define EGL_CONTEXT_FLAGS_KHR 0x30FC
-#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD
-#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD
-#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE
-#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF
-
-#define EGLEW_KHR_create_context EGLEW_GET_VAR(__EGLEW_KHR_create_context)
-
-#endif /* EGL_KHR_create_context */
-
-/* -------------------- EGL_KHR_create_context_no_error -------------------- */
-
-#ifndef EGL_KHR_create_context_no_error
-#define EGL_KHR_create_context_no_error 1
-
-#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3
-
-#define EGLEW_KHR_create_context_no_error EGLEW_GET_VAR(__EGLEW_KHR_create_context_no_error)
-
-#endif /* EGL_KHR_create_context_no_error */
-
-/* ----------------------------- EGL_KHR_debug ----------------------------- */
-
-#ifndef EGL_KHR_debug
-#define EGL_KHR_debug 1
-
-#define EGL_OBJECT_THREAD_KHR 0x33B0
-#define EGL_OBJECT_DISPLAY_KHR 0x33B1
-#define EGL_OBJECT_CONTEXT_KHR 0x33B2
-#define EGL_OBJECT_SURFACE_KHR 0x33B3
-#define EGL_OBJECT_IMAGE_KHR 0x33B4
-#define EGL_OBJECT_SYNC_KHR 0x33B5
-#define EGL_OBJECT_STREAM_KHR 0x33B6
-#define EGL_DEBUG_CALLBACK_KHR 0x33B8
-#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9
-#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA
-#define EGL_DEBUG_MSG_WARN_KHR 0x33BB
-#define EGL_DEBUG_MSG_INFO_KHR 0x33BC
-
-typedef EGLint ( * PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib* attrib_list);
-typedef EGLint ( * PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
-typedef EGLBoolean ( * PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib* value);
-
-#define eglDebugMessageControlKHR EGLEW_GET_FUN(__eglewDebugMessageControlKHR)
-#define eglLabelObjectKHR EGLEW_GET_FUN(__eglewLabelObjectKHR)
-#define eglQueryDebugKHR EGLEW_GET_FUN(__eglewQueryDebugKHR)
-
-#define EGLEW_KHR_debug EGLEW_GET_VAR(__EGLEW_KHR_debug)
-
-#endif /* EGL_KHR_debug */
-
-/* ----------------------- EGL_KHR_display_reference ----------------------- */
-
-#ifndef EGL_KHR_display_reference
-#define EGL_KHR_display_reference 1
-
-#define EGL_TRACK_REFERENCES_KHR 0x3352
-
-typedef EGLBoolean ( * PFNEGLQUERYDISPLAYATTRIBKHRPROC) (EGLDisplay dpy, EGLint name, EGLAttrib* value);
-
-#define eglQueryDisplayAttribKHR EGLEW_GET_FUN(__eglewQueryDisplayAttribKHR)
-
-#define EGLEW_KHR_display_reference EGLEW_GET_VAR(__EGLEW_KHR_display_reference)
-
-#endif /* EGL_KHR_display_reference */
-
-/* --------------------------- EGL_KHR_fence_sync -------------------------- */
-
-#ifndef EGL_KHR_fence_sync
-#define EGL_KHR_fence_sync 1
-
-#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
-#define EGL_SYNC_CONDITION_KHR 0x30F8
-#define EGL_SYNC_FENCE_KHR 0x30F9
-
-#define EGLEW_KHR_fence_sync EGLEW_GET_VAR(__EGLEW_KHR_fence_sync)
-
-#endif /* EGL_KHR_fence_sync */
-
-/* --------------------- EGL_KHR_get_all_proc_addresses -------------------- */
-
-#ifndef EGL_KHR_get_all_proc_addresses
-#define EGL_KHR_get_all_proc_addresses 1
-
-#define EGLEW_KHR_get_all_proc_addresses EGLEW_GET_VAR(__EGLEW_KHR_get_all_proc_addresses)
-
-#endif /* EGL_KHR_get_all_proc_addresses */
-
-/* ------------------------- EGL_KHR_gl_colorspace ------------------------- */
-
-#ifndef EGL_KHR_gl_colorspace
-#define EGL_KHR_gl_colorspace 1
-
-#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089
-#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A
-#define EGL_GL_COLORSPACE_KHR 0x309D
-
-#define EGLEW_KHR_gl_colorspace EGLEW_GET_VAR(__EGLEW_KHR_gl_colorspace)
-
-#endif /* EGL_KHR_gl_colorspace */
-
-/* --------------------- EGL_KHR_gl_renderbuffer_image --------------------- */
-
-#ifndef EGL_KHR_gl_renderbuffer_image
-#define EGL_KHR_gl_renderbuffer_image 1
-
-#define EGL_GL_RENDERBUFFER_KHR 0x30B9
-
-#define EGLEW_KHR_gl_renderbuffer_image EGLEW_GET_VAR(__EGLEW_KHR_gl_renderbuffer_image)
-
-#endif /* EGL_KHR_gl_renderbuffer_image */
-
-/* ---------------------- EGL_KHR_gl_texture_2D_image ---------------------- */
-
-#ifndef EGL_KHR_gl_texture_2D_image
-#define EGL_KHR_gl_texture_2D_image 1
-
-#define EGL_GL_TEXTURE_2D_KHR 0x30B1
-#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC
-
-#define EGLEW_KHR_gl_texture_2D_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_2D_image)
-
-#endif /* EGL_KHR_gl_texture_2D_image */
-
-/* ---------------------- EGL_KHR_gl_texture_3D_image ---------------------- */
-
-#ifndef EGL_KHR_gl_texture_3D_image
-#define EGL_KHR_gl_texture_3D_image 1
-
-#define EGL_GL_TEXTURE_3D_KHR 0x30B2
-#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD
-
-#define EGLEW_KHR_gl_texture_3D_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_3D_image)
-
-#endif /* EGL_KHR_gl_texture_3D_image */
-
-/* -------------------- EGL_KHR_gl_texture_cubemap_image ------------------- */
-
-#ifndef EGL_KHR_gl_texture_cubemap_image
-#define EGL_KHR_gl_texture_cubemap_image 1
-
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8
-
-#define EGLEW_KHR_gl_texture_cubemap_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_cubemap_image)
-
-#endif /* EGL_KHR_gl_texture_cubemap_image */
-
-/* ----------------------------- EGL_KHR_image ----------------------------- */
-
-#ifndef EGL_KHR_image
-#define EGL_KHR_image 1
-
-#define EGL_NATIVE_PIXMAP_KHR 0x30B0
-
-typedef EGLImageKHR ( * PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint* attrib_list);
-typedef EGLBoolean ( * PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
-
-#define eglCreateImageKHR EGLEW_GET_FUN(__eglewCreateImageKHR)
-#define eglDestroyImageKHR EGLEW_GET_FUN(__eglewDestroyImageKHR)
-
-#define EGLEW_KHR_image EGLEW_GET_VAR(__EGLEW_KHR_image)
-
-#endif /* EGL_KHR_image */
-
-/* --------------------------- EGL_KHR_image_base -------------------------- */
-
-#ifndef EGL_KHR_image_base
-#define EGL_KHR_image_base 1
-
-#define EGL_IMAGE_PRESERVED_KHR 0x30D2
-
-#define EGLEW_KHR_image_base EGLEW_GET_VAR(__EGLEW_KHR_image_base)
-
-#endif /* EGL_KHR_image_base */
-
-/* -------------------------- EGL_KHR_image_pixmap ------------------------- */
-
-#ifndef EGL_KHR_image_pixmap
-#define EGL_KHR_image_pixmap 1
-
-#define EGL_NATIVE_PIXMAP_KHR 0x30B0
-
-#define EGLEW_KHR_image_pixmap EGLEW_GET_VAR(__EGLEW_KHR_image_pixmap)
-
-#endif /* EGL_KHR_image_pixmap */
-
-/* -------------------------- EGL_KHR_lock_surface ------------------------- */
-
-#ifndef EGL_KHR_lock_surface
-#define EGL_KHR_lock_surface 1
-
-#define EGL_READ_SURFACE_BIT_KHR 0x0001
-#define EGL_WRITE_SURFACE_BIT_KHR 0x0002
-#define EGL_LOCK_SURFACE_BIT_KHR 0x0080
-#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
-#define EGL_MATCH_FORMAT_KHR 0x3043
-#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
-#define EGL_FORMAT_RGB_565_KHR 0x30C1
-#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
-#define EGL_FORMAT_RGBA_8888_KHR 0x30C3
-#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
-#define EGL_LOCK_USAGE_HINT_KHR 0x30C5
-#define EGL_BITMAP_POINTER_KHR 0x30C6
-#define EGL_BITMAP_PITCH_KHR 0x30C7
-#define EGL_BITMAP_ORIGIN_KHR 0x30C8
-#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
-#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
-#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
-#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
-#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
-#define EGL_LOWER_LEFT_KHR 0x30CE
-#define EGL_UPPER_LEFT_KHR 0x30CF
-
-typedef EGLBoolean ( * PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint* attrib_list);
-typedef EGLBoolean ( * PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface);
-
-#define eglLockSurfaceKHR EGLEW_GET_FUN(__eglewLockSurfaceKHR)
-#define eglUnlockSurfaceKHR EGLEW_GET_FUN(__eglewUnlockSurfaceKHR)
-
-#define EGLEW_KHR_lock_surface EGLEW_GET_VAR(__EGLEW_KHR_lock_surface)
-
-#endif /* EGL_KHR_lock_surface */
-
-/* ------------------------- EGL_KHR_lock_surface2 ------------------------- */
-
-#ifndef EGL_KHR_lock_surface2
-#define EGL_KHR_lock_surface2 1
-
-#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
-
-#define EGLEW_KHR_lock_surface2 EGLEW_GET_VAR(__EGLEW_KHR_lock_surface2)
-
-#endif /* EGL_KHR_lock_surface2 */
-
-/* ------------------------- EGL_KHR_lock_surface3 ------------------------- */
-
-#ifndef EGL_KHR_lock_surface3
-#define EGL_KHR_lock_surface3 1
-
-#define EGL_READ_SURFACE_BIT_KHR 0x0001
-#define EGL_WRITE_SURFACE_BIT_KHR 0x0002
-#define EGL_LOCK_SURFACE_BIT_KHR 0x0080
-#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100
-#define EGL_MATCH_FORMAT_KHR 0x3043
-#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0
-#define EGL_FORMAT_RGB_565_KHR 0x30C1
-#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2
-#define EGL_FORMAT_RGBA_8888_KHR 0x30C3
-#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4
-#define EGL_LOCK_USAGE_HINT_KHR 0x30C5
-#define EGL_BITMAP_POINTER_KHR 0x30C6
-#define EGL_BITMAP_PITCH_KHR 0x30C7
-#define EGL_BITMAP_ORIGIN_KHR 0x30C8
-#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9
-#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA
-#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB
-#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC
-#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD
-#define EGL_LOWER_LEFT_KHR 0x30CE
-#define EGL_UPPER_LEFT_KHR 0x30CF
-#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110
-
-typedef EGLBoolean ( * PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR * value);
-
-#define eglQuerySurface64KHR EGLEW_GET_FUN(__eglewQuerySurface64KHR)
-
-#define EGLEW_KHR_lock_surface3 EGLEW_GET_VAR(__EGLEW_KHR_lock_surface3)
-
-#endif /* EGL_KHR_lock_surface3 */
-
-/* --------------------- EGL_KHR_mutable_render_buffer --------------------- */
-
-#ifndef EGL_KHR_mutable_render_buffer
-#define EGL_KHR_mutable_render_buffer 1
-
-#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000
-
-#define EGLEW_KHR_mutable_render_buffer EGLEW_GET_VAR(__EGLEW_KHR_mutable_render_buffer)
-
-#endif /* EGL_KHR_mutable_render_buffer */
-
-/* ----------------------- EGL_KHR_no_config_context ----------------------- */
-
-#ifndef EGL_KHR_no_config_context
-#define EGL_KHR_no_config_context 1
-
-#define EGLEW_KHR_no_config_context EGLEW_GET_VAR(__EGLEW_KHR_no_config_context)
-
-#endif /* EGL_KHR_no_config_context */
-
-/* ------------------------- EGL_KHR_partial_update ------------------------ */
-
-#ifndef EGL_KHR_partial_update
-#define EGL_KHR_partial_update 1
-
-#define EGL_BUFFER_AGE_KHR 0x313D
-
-typedef EGLBoolean ( * PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint* rects, EGLint n_rects);
-
-#define eglSetDamageRegionKHR EGLEW_GET_FUN(__eglewSetDamageRegionKHR)
-
-#define EGLEW_KHR_partial_update EGLEW_GET_VAR(__EGLEW_KHR_partial_update)
-
-#endif /* EGL_KHR_partial_update */
-
-/* ------------------------ EGL_KHR_platform_android ----------------------- */
-
-#ifndef EGL_KHR_platform_android
-#define EGL_KHR_platform_android 1
-
-#define EGL_PLATFORM_ANDROID_KHR 0x3141
-
-#define EGLEW_KHR_platform_android EGLEW_GET_VAR(__EGLEW_KHR_platform_android)
-
-#endif /* EGL_KHR_platform_android */
-
-/* -------------------------- EGL_KHR_platform_gbm ------------------------- */
-
-#ifndef EGL_KHR_platform_gbm
-#define EGL_KHR_platform_gbm 1
-
-#define EGL_PLATFORM_GBM_KHR 0x31D7
-
-#define EGLEW_KHR_platform_gbm EGLEW_GET_VAR(__EGLEW_KHR_platform_gbm)
-
-#endif /* EGL_KHR_platform_gbm */
-
-/* ------------------------ EGL_KHR_platform_wayland ----------------------- */
-
-#ifndef EGL_KHR_platform_wayland
-#define EGL_KHR_platform_wayland 1
-
-#define EGL_PLATFORM_WAYLAND_KHR 0x31D8
-
-#define EGLEW_KHR_platform_wayland EGLEW_GET_VAR(__EGLEW_KHR_platform_wayland)
-
-#endif /* EGL_KHR_platform_wayland */
-
-/* -------------------------- EGL_KHR_platform_x11 ------------------------- */
-
-#ifndef EGL_KHR_platform_x11
-#define EGL_KHR_platform_x11 1
-
-#define EGL_PLATFORM_X11_KHR 0x31D5
-#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6
-
-#define EGLEW_KHR_platform_x11 EGLEW_GET_VAR(__EGLEW_KHR_platform_x11)
-
-#endif /* EGL_KHR_platform_x11 */
-
-/* ------------------------- EGL_KHR_reusable_sync ------------------------- */
-
-#ifndef EGL_KHR_reusable_sync
-#define EGL_KHR_reusable_sync 1
-
-#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
-#define EGL_SYNC_STATUS_KHR 0x30F1
-#define EGL_SIGNALED_KHR 0x30F2
-#define EGL_UNSIGNALED_KHR 0x30F3
-#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5
-#define EGL_CONDITION_SATISFIED_KHR 0x30F6
-#define EGL_SYNC_TYPE_KHR 0x30F7
-#define EGL_SYNC_REUSABLE_KHR 0x30FA
-#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFF
-
-typedef EGLint ( * PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
-typedef EGLSyncKHR ( * PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint* attrib_list);
-typedef EGLBoolean ( * PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
-typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint* value);
-typedef EGLBoolean ( * PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
-
-#define eglClientWaitSyncKHR EGLEW_GET_FUN(__eglewClientWaitSyncKHR)
-#define eglCreateSyncKHR EGLEW_GET_FUN(__eglewCreateSyncKHR)
-#define eglDestroySyncKHR EGLEW_GET_FUN(__eglewDestroySyncKHR)
-#define eglGetSyncAttribKHR EGLEW_GET_FUN(__eglewGetSyncAttribKHR)
-#define eglSignalSyncKHR EGLEW_GET_FUN(__eglewSignalSyncKHR)
-
-#define EGLEW_KHR_reusable_sync EGLEW_GET_VAR(__EGLEW_KHR_reusable_sync)
-
-#endif /* EGL_KHR_reusable_sync */
-
-/* ----------------------------- EGL_KHR_stream ---------------------------- */
-
-#ifndef EGL_KHR_stream
-#define EGL_KHR_stream 1
-
-#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210
-#define EGL_PRODUCER_FRAME_KHR 0x3212
-#define EGL_CONSUMER_FRAME_KHR 0x3213
-#define EGL_STREAM_STATE_KHR 0x3214
-#define EGL_STREAM_STATE_CREATED_KHR 0x3215
-#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216
-#define EGL_STREAM_STATE_EMPTY_KHR 0x3217
-#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218
-#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219
-#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A
-#define EGL_BAD_STREAM_KHR 0x321B
-#define EGL_BAD_STATE_KHR 0x321C
-
-typedef EGLStreamKHR ( * PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint* attrib_list);
-typedef EGLBoolean ( * PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
-typedef EGLBoolean ( * PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint* value);
-typedef EGLBoolean ( * PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR* value);
-typedef EGLBoolean ( * PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
-
-#define eglCreateStreamKHR EGLEW_GET_FUN(__eglewCreateStreamKHR)
-#define eglDestroyStreamKHR EGLEW_GET_FUN(__eglewDestroyStreamKHR)
-#define eglQueryStreamKHR EGLEW_GET_FUN(__eglewQueryStreamKHR)
-#define eglQueryStreamu64KHR EGLEW_GET_FUN(__eglewQueryStreamu64KHR)
-#define eglStreamAttribKHR EGLEW_GET_FUN(__eglewStreamAttribKHR)
-
-#define EGLEW_KHR_stream EGLEW_GET_VAR(__EGLEW_KHR_stream)
-
-#endif /* EGL_KHR_stream */
-
-/* ------------------------- EGL_KHR_stream_attrib ------------------------- */
-
-#ifndef EGL_KHR_stream_attrib
-#define EGL_KHR_stream_attrib 1
-
-#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210
-#define EGL_STREAM_STATE_KHR 0x3214
-#define EGL_STREAM_STATE_CREATED_KHR 0x3215
-#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216
-
-typedef EGLStreamKHR ( * PFNEGLCREATESTREAMATTRIBKHRPROC) (EGLDisplay dpy, const EGLAttrib* attrib_list);
-typedef EGLBoolean ( * PFNEGLQUERYSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib* value);
-typedef EGLBoolean ( * PFNEGLSETSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
-typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib* attrib_list);
-typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib* attrib_list);
-
-#define eglCreateStreamAttribKHR EGLEW_GET_FUN(__eglewCreateStreamAttribKHR)
-#define eglQueryStreamAttribKHR EGLEW_GET_FUN(__eglewQueryStreamAttribKHR)
-#define eglSetStreamAttribKHR EGLEW_GET_FUN(__eglewSetStreamAttribKHR)
-#define eglStreamConsumerAcquireAttribKHR EGLEW_GET_FUN(__eglewStreamConsumerAcquireAttribKHR)
-#define eglStreamConsumerReleaseAttribKHR EGLEW_GET_FUN(__eglewStreamConsumerReleaseAttribKHR)
-
-#define EGLEW_KHR_stream_attrib EGLEW_GET_VAR(__EGLEW_KHR_stream_attrib)
-
-#endif /* EGL_KHR_stream_attrib */
-
-/* ------------------- EGL_KHR_stream_consumer_gltexture ------------------- */
-
-#ifndef EGL_KHR_stream_consumer_gltexture
-#define EGL_KHR_stream_consumer_gltexture 1
-
-#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E
-
-typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
-typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
-typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
-
-#define eglStreamConsumerAcquireKHR EGLEW_GET_FUN(__eglewStreamConsumerAcquireKHR)
-#define eglStreamConsumerGLTextureExternalKHR EGLEW_GET_FUN(__eglewStreamConsumerGLTextureExternalKHR)
-#define eglStreamConsumerReleaseKHR EGLEW_GET_FUN(__eglewStreamConsumerReleaseKHR)
-
-#define EGLEW_KHR_stream_consumer_gltexture EGLEW_GET_VAR(__EGLEW_KHR_stream_consumer_gltexture)
-
-#endif /* EGL_KHR_stream_consumer_gltexture */
-
-/* -------------------- EGL_KHR_stream_cross_process_fd -------------------- */
-
-#ifndef EGL_KHR_stream_cross_process_fd
-#define EGL_KHR_stream_cross_process_fd 1
-
-typedef EGLStreamKHR ( * PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
-typedef EGLNativeFileDescriptorKHR ( * PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream);
-
-#define eglCreateStreamFromFileDescriptorKHR EGLEW_GET_FUN(__eglewCreateStreamFromFileDescriptorKHR)
-#define eglGetStreamFileDescriptorKHR EGLEW_GET_FUN(__eglewGetStreamFileDescriptorKHR)
-
-#define EGLEW_KHR_stream_cross_process_fd EGLEW_GET_VAR(__EGLEW_KHR_stream_cross_process_fd)
-
-#endif /* EGL_KHR_stream_cross_process_fd */
-
-/* -------------------------- EGL_KHR_stream_fifo -------------------------- */
-
-#ifndef EGL_KHR_stream_fifo
-#define EGL_KHR_stream_fifo 1
-
-#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC
-#define EGL_STREAM_TIME_NOW_KHR 0x31FD
-#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE
-#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF
-
-typedef EGLBoolean ( * PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR* value);
-
-#define eglQueryStreamTimeKHR EGLEW_GET_FUN(__eglewQueryStreamTimeKHR)
-
-#define EGLEW_KHR_stream_fifo EGLEW_GET_VAR(__EGLEW_KHR_stream_fifo)
-
-#endif /* EGL_KHR_stream_fifo */
-
-/* ----------------- EGL_KHR_stream_producer_aldatalocator ----------------- */
-
-#ifndef EGL_KHR_stream_producer_aldatalocator
-#define EGL_KHR_stream_producer_aldatalocator 1
-
-#define EGLEW_KHR_stream_producer_aldatalocator EGLEW_GET_VAR(__EGLEW_KHR_stream_producer_aldatalocator)
-
-#endif /* EGL_KHR_stream_producer_aldatalocator */
-
-/* ------------------- EGL_KHR_stream_producer_eglsurface ------------------ */
-
-#ifndef EGL_KHR_stream_producer_eglsurface
-#define EGL_KHR_stream_producer_eglsurface 1
-
-#define EGL_STREAM_BIT_KHR 0x0800
-
-typedef EGLSurface ( * PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint* attrib_list);
-
-#define eglCreateStreamProducerSurfaceKHR EGLEW_GET_FUN(__eglewCreateStreamProducerSurfaceKHR)
-
-#define EGLEW_KHR_stream_producer_eglsurface EGLEW_GET_VAR(__EGLEW_KHR_stream_producer_eglsurface)
-
-#endif /* EGL_KHR_stream_producer_eglsurface */
-
-/* ---------------------- EGL_KHR_surfaceless_context ---------------------- */
-
-#ifndef EGL_KHR_surfaceless_context
-#define EGL_KHR_surfaceless_context 1
-
-#define EGLEW_KHR_surfaceless_context EGLEW_GET_VAR(__EGLEW_KHR_surfaceless_context)
-
-#endif /* EGL_KHR_surfaceless_context */
-
-/* -------------------- EGL_KHR_swap_buffers_with_damage ------------------- */
-
-#ifndef EGL_KHR_swap_buffers_with_damage
-#define EGL_KHR_swap_buffers_with_damage 1
-
-typedef EGLBoolean ( * PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint* rects, EGLint n_rects);
-
-#define eglSwapBuffersWithDamageKHR EGLEW_GET_FUN(__eglewSwapBuffersWithDamageKHR)
-
-#define EGLEW_KHR_swap_buffers_with_damage EGLEW_GET_VAR(__EGLEW_KHR_swap_buffers_with_damage)
-
-#endif /* EGL_KHR_swap_buffers_with_damage */
-
-/* ------------------------ EGL_KHR_vg_parent_image ------------------------ */
-
-#ifndef EGL_KHR_vg_parent_image
-#define EGL_KHR_vg_parent_image 1
-
-#define EGL_VG_PARENT_IMAGE_KHR 0x30BA
-
-#define EGLEW_KHR_vg_parent_image EGLEW_GET_VAR(__EGLEW_KHR_vg_parent_image)
-
-#endif /* EGL_KHR_vg_parent_image */
-
-/* --------------------------- EGL_KHR_wait_sync --------------------------- */
-
-#ifndef EGL_KHR_wait_sync
-#define EGL_KHR_wait_sync 1
-
-typedef EGLint ( * PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
-
-#define eglWaitSyncKHR EGLEW_GET_FUN(__eglewWaitSyncKHR)
-
-#define EGLEW_KHR_wait_sync EGLEW_GET_VAR(__EGLEW_KHR_wait_sync)
-
-#endif /* EGL_KHR_wait_sync */
-
-/* --------------------------- EGL_MESA_drm_image -------------------------- */
-
-#ifndef EGL_MESA_drm_image
-#define EGL_MESA_drm_image 1
-
-#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001
-#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002
-#define EGL_DRM_BUFFER_USE_CURSOR_MESA 0x00000004
-#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
-#define EGL_DRM_BUFFER_USE_MESA 0x31D1
-#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2
-#define EGL_DRM_BUFFER_MESA 0x31D3
-#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4
-
-typedef EGLImageKHR ( * PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint* attrib_list);
-typedef EGLBoolean ( * PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint* name, EGLint* handle, EGLint* stride);
-
-#define eglCreateDRMImageMESA EGLEW_GET_FUN(__eglewCreateDRMImageMESA)
-#define eglExportDRMImageMESA EGLEW_GET_FUN(__eglewExportDRMImageMESA)
-
-#define EGLEW_MESA_drm_image EGLEW_GET_VAR(__EGLEW_MESA_drm_image)
-
-#endif /* EGL_MESA_drm_image */
-
-/* --------------------- EGL_MESA_image_dma_buf_export --------------------- */
-
-#ifndef EGL_MESA_image_dma_buf_export
-#define EGL_MESA_image_dma_buf_export 1
-
-typedef EGLBoolean ( * PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int* fds, EGLint* strides, EGLint* offsets);
-typedef EGLBoolean ( * PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int* fourcc, int* num_planes, EGLuint64KHR* modifiers);
-
-#define eglExportDMABUFImageMESA EGLEW_GET_FUN(__eglewExportDMABUFImageMESA)
-#define eglExportDMABUFImageQueryMESA EGLEW_GET_FUN(__eglewExportDMABUFImageQueryMESA)
-
-#define EGLEW_MESA_image_dma_buf_export EGLEW_GET_VAR(__EGLEW_MESA_image_dma_buf_export)
-
-#endif /* EGL_MESA_image_dma_buf_export */
-
-/* ------------------------- EGL_MESA_platform_gbm ------------------------- */
-
-#ifndef EGL_MESA_platform_gbm
-#define EGL_MESA_platform_gbm 1
-
-#define EGL_PLATFORM_GBM_MESA 0x31D7
-
-#define EGLEW_MESA_platform_gbm EGLEW_GET_VAR(__EGLEW_MESA_platform_gbm)
-
-#endif /* EGL_MESA_platform_gbm */
-
-/* --------------------- EGL_MESA_platform_surfaceless --------------------- */
-
-#ifndef EGL_MESA_platform_surfaceless
-#define EGL_MESA_platform_surfaceless 1
-
-#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD
-
-#define EGLEW_MESA_platform_surfaceless EGLEW_GET_VAR(__EGLEW_MESA_platform_surfaceless)
-
-#endif /* EGL_MESA_platform_surfaceless */
-
-/* ------------------------- EGL_MESA_query_driver ------------------------- */
-
-#ifndef EGL_MESA_query_driver
-#define EGL_MESA_query_driver 1
-
-typedef char* ( * PFNEGLGETDISPLAYDRIVERCONFIGPROC) (EGLDisplay dpy);
-typedef const char* ( * PFNEGLGETDISPLAYDRIVERNAMEPROC) (EGLDisplay dpy);
-
-#define eglGetDisplayDriverConfig EGLEW_GET_FUN(__eglewGetDisplayDriverConfig)
-#define eglGetDisplayDriverName EGLEW_GET_FUN(__eglewGetDisplayDriverName)
-
-#define EGLEW_MESA_query_driver EGLEW_GET_VAR(__EGLEW_MESA_query_driver)
-
-#endif /* EGL_MESA_query_driver */
-
-/* -------------------------- EGL_NOK_swap_region -------------------------- */
-
-#ifndef EGL_NOK_swap_region
-#define EGL_NOK_swap_region 1
-
-typedef EGLBoolean ( * PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
-
-#define eglSwapBuffersRegionNOK EGLEW_GET_FUN(__eglewSwapBuffersRegionNOK)
-
-#define EGLEW_NOK_swap_region EGLEW_GET_VAR(__EGLEW_NOK_swap_region)
-
-#endif /* EGL_NOK_swap_region */
-
-/* -------------------------- EGL_NOK_swap_region2 ------------------------- */
-
-#ifndef EGL_NOK_swap_region2
-#define EGL_NOK_swap_region2 1
-
-typedef EGLBoolean ( * PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects);
-
-#define eglSwapBuffersRegion2NOK EGLEW_GET_FUN(__eglewSwapBuffersRegion2NOK)
-
-#define EGLEW_NOK_swap_region2 EGLEW_GET_VAR(__EGLEW_NOK_swap_region2)
-
-#endif /* EGL_NOK_swap_region2 */
-
-/* ---------------------- EGL_NOK_texture_from_pixmap ---------------------- */
-
-#ifndef EGL_NOK_texture_from_pixmap
-#define EGL_NOK_texture_from_pixmap 1
-
-#define EGL_Y_INVERTED_NOK 0x307F
-
-#define EGLEW_NOK_texture_from_pixmap EGLEW_GET_VAR(__EGLEW_NOK_texture_from_pixmap)
-
-#endif /* EGL_NOK_texture_from_pixmap */
-
-/* ------------------------ EGL_NV_3dvision_surface ------------------------ */
-
-#ifndef EGL_NV_3dvision_surface
-#define EGL_NV_3dvision_surface 1
-
-#define EGL_AUTO_STEREO_NV 0x3136
-
-#define EGLEW_NV_3dvision_surface EGLEW_GET_VAR(__EGLEW_NV_3dvision_surface)
-
-#endif /* EGL_NV_3dvision_surface */
-
-/* -------------------- EGL_NV_context_priority_realtime ------------------- */
-
-#ifndef EGL_NV_context_priority_realtime
-#define EGL_NV_context_priority_realtime 1
-
-#define EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357
-
-#define EGLEW_NV_context_priority_realtime EGLEW_GET_VAR(__EGLEW_NV_context_priority_realtime)
-
-#endif /* EGL_NV_context_priority_realtime */
-
-/* ------------------------- EGL_NV_coverage_sample ------------------------ */
-
-#ifndef EGL_NV_coverage_sample
-#define EGL_NV_coverage_sample 1
-
-#define EGL_COVERAGE_BUFFERS_NV 0x30E0
-#define EGL_COVERAGE_SAMPLES_NV 0x30E1
-
-#define EGLEW_NV_coverage_sample EGLEW_GET_VAR(__EGLEW_NV_coverage_sample)
-
-#endif /* EGL_NV_coverage_sample */
-
-/* --------------------- EGL_NV_coverage_sample_resolve -------------------- */
-
-#ifndef EGL_NV_coverage_sample_resolve
-#define EGL_NV_coverage_sample_resolve 1
-
-#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131
-#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132
-#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133
-
-#define EGLEW_NV_coverage_sample_resolve EGLEW_GET_VAR(__EGLEW_NV_coverage_sample_resolve)
-
-#endif /* EGL_NV_coverage_sample_resolve */
-
-/* --------------------------- EGL_NV_cuda_event --------------------------- */
-
-#ifndef EGL_NV_cuda_event
-#define EGL_NV_cuda_event 1
-
-#define EGL_CUDA_EVENT_HANDLE_NV 0x323B
-#define EGL_SYNC_CUDA_EVENT_NV 0x323C
-#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D
-
-#define EGLEW_NV_cuda_event EGLEW_GET_VAR(__EGLEW_NV_cuda_event)
-
-#endif /* EGL_NV_cuda_event */
-
-/* ------------------------- EGL_NV_depth_nonlinear ------------------------ */
-
-#ifndef EGL_NV_depth_nonlinear
-#define EGL_NV_depth_nonlinear 1
-
-#define EGL_DEPTH_ENCODING_NONE_NV 0
-#define EGL_DEPTH_ENCODING_NV 0x30E2
-#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
-
-#define EGLEW_NV_depth_nonlinear EGLEW_GET_VAR(__EGLEW_NV_depth_nonlinear)
-
-#endif /* EGL_NV_depth_nonlinear */
-
-/* --------------------------- EGL_NV_device_cuda -------------------------- */
-
-#ifndef EGL_NV_device_cuda
-#define EGL_NV_device_cuda 1
-
-#define EGL_CUDA_DEVICE_NV 0x323A
-
-#define EGLEW_NV_device_cuda EGLEW_GET_VAR(__EGLEW_NV_device_cuda)
-
-#endif /* EGL_NV_device_cuda */
-
-/* -------------------------- EGL_NV_native_query -------------------------- */
-
-#ifndef EGL_NV_native_query
-#define EGL_NV_native_query 1
-
-typedef EGLBoolean ( * PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType* display_id);
-typedef EGLBoolean ( * PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType* pixmap);
-typedef EGLBoolean ( * PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType* window);
-
-#define eglQueryNativeDisplayNV EGLEW_GET_FUN(__eglewQueryNativeDisplayNV)
-#define eglQueryNativePixmapNV EGLEW_GET_FUN(__eglewQueryNativePixmapNV)
-#define eglQueryNativeWindowNV EGLEW_GET_FUN(__eglewQueryNativeWindowNV)
-
-#define EGLEW_NV_native_query EGLEW_GET_VAR(__EGLEW_NV_native_query)
-
-#endif /* EGL_NV_native_query */
-
-/* ---------------------- EGL_NV_post_convert_rounding --------------------- */
-
-#ifndef EGL_NV_post_convert_rounding
-#define EGL_NV_post_convert_rounding 1
-
-#define EGLEW_NV_post_convert_rounding EGLEW_GET_VAR(__EGLEW_NV_post_convert_rounding)
-
-#endif /* EGL_NV_post_convert_rounding */
-
-/* ------------------------- EGL_NV_post_sub_buffer ------------------------ */
-
-#ifndef EGL_NV_post_sub_buffer
-#define EGL_NV_post_sub_buffer 1
-
-#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE
-
-typedef EGLBoolean ( * PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
-
-#define eglPostSubBufferNV EGLEW_GET_FUN(__eglewPostSubBufferNV)
-
-#define EGLEW_NV_post_sub_buffer EGLEW_GET_VAR(__EGLEW_NV_post_sub_buffer)
-
-#endif /* EGL_NV_post_sub_buffer */
-
-/* ------------------------ EGL_NV_quadruple_buffer ------------------------ */
-
-#ifndef EGL_NV_quadruple_buffer
-#define EGL_NV_quadruple_buffer 1
-
-#define EGL_QUADRUPLE_BUFFER_NV 0x3231
-
-#define EGLEW_NV_quadruple_buffer EGLEW_GET_VAR(__EGLEW_NV_quadruple_buffer)
-
-#endif /* EGL_NV_quadruple_buffer */
-
-/* ------------------ EGL_NV_robustness_video_memory_purge ----------------- */
-
-#ifndef EGL_NV_robustness_video_memory_purge
-#define EGL_NV_robustness_video_memory_purge 1
-
-#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C
-
-#define EGLEW_NV_robustness_video_memory_purge EGLEW_GET_VAR(__EGLEW_NV_robustness_video_memory_purge)
-
-#endif /* EGL_NV_robustness_video_memory_purge */
-
-/* ------------------ EGL_NV_stream_consumer_gltexture_yuv ----------------- */
-
-#ifndef EGL_NV_stream_consumer_gltexture_yuv
-#define EGL_NV_stream_consumer_gltexture_yuv 1
-
-#define EGL_YUV_BUFFER_EXT 0x3300
-#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311
-#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C
-#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D
-#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E
-
-typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib* attrib_list);
-
-#define eglStreamConsumerGLTextureExternalAttribsNV EGLEW_GET_FUN(__eglewStreamConsumerGLTextureExternalAttribsNV)
-
-#define EGLEW_NV_stream_consumer_gltexture_yuv EGLEW_GET_VAR(__EGLEW_NV_stream_consumer_gltexture_yuv)
-
-#endif /* EGL_NV_stream_consumer_gltexture_yuv */
-
-/* ---------------------- EGL_NV_stream_cross_display ---------------------- */
-
-#ifndef EGL_NV_stream_cross_display
-#define EGL_NV_stream_cross_display 1
-
-#define EGL_STREAM_CROSS_DISPLAY_NV 0x334E
-
-#define EGLEW_NV_stream_cross_display EGLEW_GET_VAR(__EGLEW_NV_stream_cross_display)
-
-#endif /* EGL_NV_stream_cross_display */
-
-/* ----------------------- EGL_NV_stream_cross_object ---------------------- */
-
-#ifndef EGL_NV_stream_cross_object
-#define EGL_NV_stream_cross_object 1
-
-#define EGL_STREAM_CROSS_OBJECT_NV 0x334D
-
-#define EGLEW_NV_stream_cross_object EGLEW_GET_VAR(__EGLEW_NV_stream_cross_object)
-
-#endif /* EGL_NV_stream_cross_object */
-
-/* --------------------- EGL_NV_stream_cross_partition --------------------- */
-
-#ifndef EGL_NV_stream_cross_partition
-#define EGL_NV_stream_cross_partition 1
-
-#define EGL_STREAM_CROSS_PARTITION_NV 0x323F
-
-#define EGLEW_NV_stream_cross_partition EGLEW_GET_VAR(__EGLEW_NV_stream_cross_partition)
-
-#endif /* EGL_NV_stream_cross_partition */
-
-/* ---------------------- EGL_NV_stream_cross_process ---------------------- */
-
-#ifndef EGL_NV_stream_cross_process
-#define EGL_NV_stream_cross_process 1
-
-#define EGL_STREAM_CROSS_PROCESS_NV 0x3245
-
-#define EGLEW_NV_stream_cross_process EGLEW_GET_VAR(__EGLEW_NV_stream_cross_process)
-
-#endif /* EGL_NV_stream_cross_process */
-
-/* ----------------------- EGL_NV_stream_cross_system ---------------------- */
-
-#ifndef EGL_NV_stream_cross_system
-#define EGL_NV_stream_cross_system 1
-
-#define EGL_STREAM_CROSS_SYSTEM_NV 0x334F
-
-#define EGLEW_NV_stream_cross_system EGLEW_GET_VAR(__EGLEW_NV_stream_cross_system)
-
-#endif /* EGL_NV_stream_cross_system */
-
-/* --------------------------- EGL_NV_stream_dma --------------------------- */
-
-#ifndef EGL_NV_stream_dma
-#define EGL_NV_stream_dma 1
-
-#define EGL_STREAM_DMA_NV 0x3371
-#define EGL_STREAM_DMA_SERVER_NV 0x3372
-
-#define EGLEW_NV_stream_dma EGLEW_GET_VAR(__EGLEW_NV_stream_dma)
-
-#endif /* EGL_NV_stream_dma */
-
-/* ------------------------ EGL_NV_stream_fifo_next ------------------------ */
-
-#ifndef EGL_NV_stream_fifo_next
-#define EGL_NV_stream_fifo_next 1
-
-#define EGL_PENDING_FRAME_NV 0x3329
-#define EGL_STREAM_TIME_PENDING_NV 0x332A
-
-#define EGLEW_NV_stream_fifo_next EGLEW_GET_VAR(__EGLEW_NV_stream_fifo_next)
-
-#endif /* EGL_NV_stream_fifo_next */
-
-/* --------------------- EGL_NV_stream_fifo_synchronous -------------------- */
-
-#ifndef EGL_NV_stream_fifo_synchronous
-#define EGL_NV_stream_fifo_synchronous 1
-
-#define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336
-
-#define EGLEW_NV_stream_fifo_synchronous EGLEW_GET_VAR(__EGLEW_NV_stream_fifo_synchronous)
-
-#endif /* EGL_NV_stream_fifo_synchronous */
-
-/* -------------------------- EGL_NV_stream_flush -------------------------- */
-
-#ifndef EGL_NV_stream_flush
-#define EGL_NV_stream_flush 1
-
-typedef EGLBoolean ( * PFNEGLSTREAMFLUSHNVPROC) (EGLDisplay dpy, EGLStreamKHR stream);
-
-#define eglStreamFlushNV EGLEW_GET_FUN(__eglewStreamFlushNV)
-
-#define EGLEW_NV_stream_flush EGLEW_GET_VAR(__EGLEW_NV_stream_flush)
-
-#endif /* EGL_NV_stream_flush */
-
-/* ----------------------- EGL_NV_stream_frame_limits ---------------------- */
-
-#ifndef EGL_NV_stream_frame_limits
-#define EGL_NV_stream_frame_limits 1
-
-#define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337
-#define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338
-
-#define EGLEW_NV_stream_frame_limits EGLEW_GET_VAR(__EGLEW_NV_stream_frame_limits)
-
-#endif /* EGL_NV_stream_frame_limits */
-
-/* ------------------------- EGL_NV_stream_metadata ------------------------ */
-
-#ifndef EGL_NV_stream_metadata
-#define EGL_NV_stream_metadata 1
-
-#define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250
-#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251
-#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252
-#define EGL_PRODUCER_METADATA_NV 0x3253
-#define EGL_CONSUMER_METADATA_NV 0x3254
-#define EGL_METADATA0_SIZE_NV 0x3255
-#define EGL_METADATA1_SIZE_NV 0x3256
-#define EGL_METADATA2_SIZE_NV 0x3257
-#define EGL_METADATA3_SIZE_NV 0x3258
-#define EGL_METADATA0_TYPE_NV 0x3259
-#define EGL_METADATA1_TYPE_NV 0x325A
-#define EGL_METADATA2_TYPE_NV 0x325B
-#define EGL_METADATA3_TYPE_NV 0x325C
-#define EGL_PENDING_METADATA_NV 0x3328
-
-typedef EGLBoolean ( * PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib* value);
-typedef EGLBoolean ( * PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void* data);
-typedef EGLBoolean ( * PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void* data);
-
-#define eglQueryDisplayAttribNV EGLEW_GET_FUN(__eglewQueryDisplayAttribNV)
-#define eglQueryStreamMetadataNV EGLEW_GET_FUN(__eglewQueryStreamMetadataNV)
-#define eglSetStreamMetadataNV EGLEW_GET_FUN(__eglewSetStreamMetadataNV)
-
-#define EGLEW_NV_stream_metadata EGLEW_GET_VAR(__EGLEW_NV_stream_metadata)
-
-#endif /* EGL_NV_stream_metadata */
-
-/* -------------------------- EGL_NV_stream_origin ------------------------- */
-
-#ifndef EGL_NV_stream_origin
-#define EGL_NV_stream_origin 1
-
-#define EGL_STREAM_FRAME_ORIGIN_X_NV 0x3366
-#define EGL_STREAM_FRAME_ORIGIN_Y_NV 0x3367
-#define EGL_STREAM_FRAME_MAJOR_AXIS_NV 0x3368
-#define EGL_CONSUMER_AUTO_ORIENTATION_NV 0x3369
-#define EGL_PRODUCER_AUTO_ORIENTATION_NV 0x336A
-#define EGL_LEFT_NV 0x336B
-#define EGL_RIGHT_NV 0x336C
-#define EGL_TOP_NV 0x336D
-#define EGL_BOTTOM_NV 0x336E
-#define EGL_X_AXIS_NV 0x336F
-#define EGL_Y_AXIS_NV 0x3370
-
-#define EGLEW_NV_stream_origin EGLEW_GET_VAR(__EGLEW_NV_stream_origin)
-
-#endif /* EGL_NV_stream_origin */
-
-/* -------------------------- EGL_NV_stream_remote ------------------------- */
-
-#ifndef EGL_NV_stream_remote
-#define EGL_NV_stream_remote 1
-
-#define EGL_STREAM_STATE_INITIALIZING_NV 0x3240
-#define EGL_STREAM_TYPE_NV 0x3241
-#define EGL_STREAM_PROTOCOL_NV 0x3242
-#define EGL_STREAM_ENDPOINT_NV 0x3243
-#define EGL_STREAM_LOCAL_NV 0x3244
-#define EGL_STREAM_PROTOCOL_FD_NV 0x3246
-#define EGL_STREAM_PRODUCER_NV 0x3247
-#define EGL_STREAM_CONSUMER_NV 0x3248
-
-#define EGLEW_NV_stream_remote EGLEW_GET_VAR(__EGLEW_NV_stream_remote)
-
-#endif /* EGL_NV_stream_remote */
-
-/* -------------------------- EGL_NV_stream_reset -------------------------- */
-
-#ifndef EGL_NV_stream_reset
-#define EGL_NV_stream_reset 1
-
-#define EGL_SUPPORT_RESET_NV 0x3334
-#define EGL_SUPPORT_REUSE_NV 0x3335
-
-typedef EGLBoolean ( * PFNEGLRESETSTREAMNVPROC) (EGLDisplay dpy, EGLStreamKHR stream);
-
-#define eglResetStreamNV EGLEW_GET_FUN(__eglewResetStreamNV)
-
-#define EGLEW_NV_stream_reset EGLEW_GET_VAR(__EGLEW_NV_stream_reset)
-
-#endif /* EGL_NV_stream_reset */
-
-/* -------------------------- EGL_NV_stream_socket ------------------------- */
-
-#ifndef EGL_NV_stream_socket
-#define EGL_NV_stream_socket 1
-
-#define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B
-#define EGL_SOCKET_HANDLE_NV 0x324C
-#define EGL_SOCKET_TYPE_NV 0x324D
-
-#define EGLEW_NV_stream_socket EGLEW_GET_VAR(__EGLEW_NV_stream_socket)
-
-#endif /* EGL_NV_stream_socket */
-
-/* ----------------------- EGL_NV_stream_socket_inet ----------------------- */
-
-#ifndef EGL_NV_stream_socket_inet
-#define EGL_NV_stream_socket_inet 1
-
-#define EGL_SOCKET_TYPE_INET_NV 0x324F
-
-#define EGLEW_NV_stream_socket_inet EGLEW_GET_VAR(__EGLEW_NV_stream_socket_inet)
-
-#endif /* EGL_NV_stream_socket_inet */
-
-/* ----------------------- EGL_NV_stream_socket_unix ----------------------- */
-
-#ifndef EGL_NV_stream_socket_unix
-#define EGL_NV_stream_socket_unix 1
-
-#define EGL_SOCKET_TYPE_UNIX_NV 0x324E
-
-#define EGLEW_NV_stream_socket_unix EGLEW_GET_VAR(__EGLEW_NV_stream_socket_unix)
-
-#endif /* EGL_NV_stream_socket_unix */
-
-/* --------------------------- EGL_NV_stream_sync -------------------------- */
-
-#ifndef EGL_NV_stream_sync
-#define EGL_NV_stream_sync 1
-
-#define EGL_SYNC_TYPE_KHR 0x30F7
-#define EGL_SYNC_NEW_FRAME_NV 0x321F
-
-typedef EGLSyncKHR ( * PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint* attrib_list);
-
-#define eglCreateStreamSyncNV EGLEW_GET_FUN(__eglewCreateStreamSyncNV)
-
-#define EGLEW_NV_stream_sync EGLEW_GET_VAR(__EGLEW_NV_stream_sync)
-
-#endif /* EGL_NV_stream_sync */
-
-/* ------------------------------ EGL_NV_sync ------------------------------ */
-
-#ifndef EGL_NV_sync
-#define EGL_NV_sync 1
-
-#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001
-#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6
-#define EGL_SYNC_STATUS_NV 0x30E7
-#define EGL_SIGNALED_NV 0x30E8
-#define EGL_UNSIGNALED_NV 0x30E9
-#define EGL_ALREADY_SIGNALED_NV 0x30EA
-#define EGL_TIMEOUT_EXPIRED_NV 0x30EB
-#define EGL_CONDITION_SATISFIED_NV 0x30EC
-#define EGL_SYNC_TYPE_NV 0x30ED
-#define EGL_SYNC_CONDITION_NV 0x30EE
-#define EGL_SYNC_FENCE_NV 0x30EF
-#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFF
-
-typedef EGLint ( * PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
-typedef EGLSyncNV ( * PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint* attrib_list);
-typedef EGLBoolean ( * PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
-typedef EGLBoolean ( * PFNEGLFENCENVPROC) (EGLSyncNV sync);
-typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint* value);
-typedef EGLBoolean ( * PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
-
-#define eglClientWaitSyncNV EGLEW_GET_FUN(__eglewClientWaitSyncNV)
-#define eglCreateFenceSyncNV EGLEW_GET_FUN(__eglewCreateFenceSyncNV)
-#define eglDestroySyncNV EGLEW_GET_FUN(__eglewDestroySyncNV)
-#define eglFenceNV EGLEW_GET_FUN(__eglewFenceNV)
-#define eglGetSyncAttribNV EGLEW_GET_FUN(__eglewGetSyncAttribNV)
-#define eglSignalSyncNV EGLEW_GET_FUN(__eglewSignalSyncNV)
-
-#define EGLEW_NV_sync EGLEW_GET_VAR(__EGLEW_NV_sync)
-
-#endif /* EGL_NV_sync */
-
-/* --------------------------- EGL_NV_system_time -------------------------- */
-
-#ifndef EGL_NV_system_time
-#define EGL_NV_system_time 1
-
-typedef EGLuint64NV ( * PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void);
-typedef EGLuint64NV ( * PFNEGLGETSYSTEMTIMENVPROC) (void);
-
-#define eglGetSystemTimeFrequencyNV EGLEW_GET_FUN(__eglewGetSystemTimeFrequencyNV)
-#define eglGetSystemTimeNV EGLEW_GET_FUN(__eglewGetSystemTimeNV)
-
-#define EGLEW_NV_system_time EGLEW_GET_VAR(__EGLEW_NV_system_time)
-
-#endif /* EGL_NV_system_time */
-
-/* -------------------------- EGL_NV_triple_buffer ------------------------- */
-
-#ifndef EGL_NV_triple_buffer
-#define EGL_NV_triple_buffer 1
-
-#define EGL_TRIPLE_BUFFER_NV 0x3230
-
-#define EGLEW_NV_triple_buffer EGLEW_GET_VAR(__EGLEW_NV_triple_buffer)
-
-#endif /* EGL_NV_triple_buffer */
-
-/* --------------------- EGL_TIZEN_image_native_buffer --------------------- */
-
-#ifndef EGL_TIZEN_image_native_buffer
-#define EGL_TIZEN_image_native_buffer 1
-
-#define EGL_NATIVE_BUFFER_TIZEN 0x32A0
-
-#define EGLEW_TIZEN_image_native_buffer EGLEW_GET_VAR(__EGLEW_TIZEN_image_native_buffer)
-
-#endif /* EGL_TIZEN_image_native_buffer */
-
-/* --------------------- EGL_TIZEN_image_native_surface -------------------- */
-
-#ifndef EGL_TIZEN_image_native_surface
-#define EGL_TIZEN_image_native_surface 1
-
-#define EGL_NATIVE_SURFACE_TIZEN 0x32A1
-
-#define EGLEW_TIZEN_image_native_surface EGLEW_GET_VAR(__EGLEW_TIZEN_image_native_surface)
-
-#endif /* EGL_TIZEN_image_native_surface */
-
-/* ---------------------- EGL_WL_bind_wayland_display ---------------------- */
-
-#ifndef EGL_WL_bind_wayland_display
-#define EGL_WL_bind_wayland_display 1
-
-#define EGL_WAYLAND_BUFFER_WL 0x31D5
-#define EGL_WAYLAND_PLANE_WL 0x31D6
-#define EGL_TEXTURE_Y_U_V_WL 0x31D7
-#define EGL_TEXTURE_Y_UV_WL 0x31D8
-#define EGL_TEXTURE_Y_XUXV_WL 0x31D9
-#define EGL_TEXTURE_EXTERNAL_WL 0x31DA
-#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB
-
-typedef EGLBoolean ( * PFNEGLBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display* display);
-typedef EGLBoolean ( * PFNEGLQUERYWAYLANDBUFFERWLPROC) (EGLDisplay dpy, struct wl_resource* buffer, EGLint attribute, EGLint* value);
-typedef EGLBoolean ( * PFNEGLUNBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display* display);
-
-#define eglBindWaylandDisplayWL EGLEW_GET_FUN(__eglewBindWaylandDisplayWL)
-#define eglQueryWaylandBufferWL EGLEW_GET_FUN(__eglewQueryWaylandBufferWL)
-#define eglUnbindWaylandDisplayWL EGLEW_GET_FUN(__eglewUnbindWaylandDisplayWL)
-
-#define EGLEW_WL_bind_wayland_display EGLEW_GET_VAR(__EGLEW_WL_bind_wayland_display)
-
-#endif /* EGL_WL_bind_wayland_display */
-
-/* ---------------- EGL_WL_create_wayland_buffer_from_image ---------------- */
-
-#ifndef EGL_WL_create_wayland_buffer_from_image
-#define EGL_WL_create_wayland_buffer_from_image 1
-
-typedef struct wl_buffer* ( * PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC) (EGLDisplay dpy, EGLImageKHR image);
-
-#define eglCreateWaylandBufferFromImageWL EGLEW_GET_FUN(__eglewCreateWaylandBufferFromImageWL)
-
-#define EGLEW_WL_create_wayland_buffer_from_image EGLEW_GET_VAR(__EGLEW_WL_create_wayland_buffer_from_image)
-
-#endif /* EGL_WL_create_wayland_buffer_from_image */
-
-/* ------------------------------------------------------------------------- */
-
-#define EGLEW_FUN_EXPORT GLEW_FUN_EXPORT
-#define EGLEW_VAR_EXPORT GLEW_VAR_EXPORT
-
-EGLEW_FUN_EXPORT PFNEGLCHOOSECONFIGPROC __eglewChooseConfig;
-EGLEW_FUN_EXPORT PFNEGLCOPYBUFFERSPROC __eglewCopyBuffers;
-EGLEW_FUN_EXPORT PFNEGLCREATECONTEXTPROC __eglewCreateContext;
-EGLEW_FUN_EXPORT PFNEGLCREATEPBUFFERSURFACEPROC __eglewCreatePbufferSurface;
-EGLEW_FUN_EXPORT PFNEGLCREATEPIXMAPSURFACEPROC __eglewCreatePixmapSurface;
-EGLEW_FUN_EXPORT PFNEGLCREATEWINDOWSURFACEPROC __eglewCreateWindowSurface;
-EGLEW_FUN_EXPORT PFNEGLDESTROYCONTEXTPROC __eglewDestroyContext;
-EGLEW_FUN_EXPORT PFNEGLDESTROYSURFACEPROC __eglewDestroySurface;
-EGLEW_FUN_EXPORT PFNEGLGETCONFIGATTRIBPROC __eglewGetConfigAttrib;
-EGLEW_FUN_EXPORT PFNEGLGETCONFIGSPROC __eglewGetConfigs;
-EGLEW_FUN_EXPORT PFNEGLGETCURRENTDISPLAYPROC __eglewGetCurrentDisplay;
-EGLEW_FUN_EXPORT PFNEGLGETCURRENTSURFACEPROC __eglewGetCurrentSurface;
-EGLEW_FUN_EXPORT PFNEGLGETDISPLAYPROC __eglewGetDisplay;
-EGLEW_FUN_EXPORT PFNEGLGETERRORPROC __eglewGetError;
-EGLEW_FUN_EXPORT PFNEGLINITIALIZEPROC __eglewInitialize;
-EGLEW_FUN_EXPORT PFNEGLMAKECURRENTPROC __eglewMakeCurrent;
-EGLEW_FUN_EXPORT PFNEGLQUERYCONTEXTPROC __eglewQueryContext;
-EGLEW_FUN_EXPORT PFNEGLQUERYSTRINGPROC __eglewQueryString;
-EGLEW_FUN_EXPORT PFNEGLQUERYSURFACEPROC __eglewQuerySurface;
-EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSPROC __eglewSwapBuffers;
-EGLEW_FUN_EXPORT PFNEGLTERMINATEPROC __eglewTerminate;
-EGLEW_FUN_EXPORT PFNEGLWAITGLPROC __eglewWaitGL;
-EGLEW_FUN_EXPORT PFNEGLWAITNATIVEPROC __eglewWaitNative;
-
-EGLEW_FUN_EXPORT PFNEGLBINDTEXIMAGEPROC __eglewBindTexImage;
-EGLEW_FUN_EXPORT PFNEGLRELEASETEXIMAGEPROC __eglewReleaseTexImage;
-EGLEW_FUN_EXPORT PFNEGLSURFACEATTRIBPROC __eglewSurfaceAttrib;
-EGLEW_FUN_EXPORT PFNEGLSWAPINTERVALPROC __eglewSwapInterval;
-
-EGLEW_FUN_EXPORT PFNEGLBINDAPIPROC __eglewBindAPI;
-EGLEW_FUN_EXPORT PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC __eglewCreatePbufferFromClientBuffer;
-EGLEW_FUN_EXPORT PFNEGLQUERYAPIPROC __eglewQueryAPI;
-EGLEW_FUN_EXPORT PFNEGLRELEASETHREADPROC __eglewReleaseThread;
-EGLEW_FUN_EXPORT PFNEGLWAITCLIENTPROC __eglewWaitClient;
-
-EGLEW_FUN_EXPORT PFNEGLGETCURRENTCONTEXTPROC __eglewGetCurrentContext;
-
-EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCPROC __eglewClientWaitSync;
-EGLEW_FUN_EXPORT PFNEGLCREATEIMAGEPROC __eglewCreateImage;
-EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC __eglewCreatePlatformPixmapSurface;
-EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEPROC __eglewCreatePlatformWindowSurface;
-EGLEW_FUN_EXPORT PFNEGLCREATESYNCPROC __eglewCreateSync;
-EGLEW_FUN_EXPORT PFNEGLDESTROYIMAGEPROC __eglewDestroyImage;
-EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCPROC __eglewDestroySync;
-EGLEW_FUN_EXPORT PFNEGLGETPLATFORMDISPLAYPROC __eglewGetPlatformDisplay;
-EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBPROC __eglewGetSyncAttrib;
-EGLEW_FUN_EXPORT PFNEGLWAITSYNCPROC __eglewWaitSync;
-
-EGLEW_FUN_EXPORT PFNEGLSETBLOBCACHEFUNCSANDROIDPROC __eglewSetBlobCacheFuncsANDROID;
-
-EGLEW_FUN_EXPORT PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC __eglewCreateNativeClientBufferANDROID;
-
-EGLEW_FUN_EXPORT PFNEGLGETCOMPOSITORTIMINGANDROIDPROC __eglewGetCompositorTimingANDROID;
-EGLEW_FUN_EXPORT PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC __eglewGetCompositorTimingSupportedANDROID;
-EGLEW_FUN_EXPORT PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC __eglewGetFrameTimestampSupportedANDROID;
-EGLEW_FUN_EXPORT PFNEGLGETFRAMETIMESTAMPSANDROIDPROC __eglewGetFrameTimestampsANDROID;
-EGLEW_FUN_EXPORT PFNEGLGETNEXTFRAMEIDANDROIDPROC __eglewGetNextFrameIdANDROID;
-
-EGLEW_FUN_EXPORT PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC __eglewGetNativeClientBufferANDROID;
-
-EGLEW_FUN_EXPORT PFNEGLDUPNATIVEFENCEFDANDROIDPROC __eglewDupNativeFenceFDANDROID;
-
-EGLEW_FUN_EXPORT PFNEGLPRESENTATIONTIMEANDROIDPROC __eglewPresentationTimeANDROID;
-
-EGLEW_FUN_EXPORT PFNEGLQUERYSURFACEPOINTERANGLEPROC __eglewQuerySurfacePointerANGLE;
-
-EGLEW_FUN_EXPORT PFNEGLCLIENTSIGNALSYNCEXTPROC __eglewClientSignalSyncEXT;
-
-EGLEW_FUN_EXPORT PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC __eglewCompositorBindTexWindowEXT;
-EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC __eglewCompositorSetContextAttributesEXT;
-EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC __eglewCompositorSetContextListEXT;
-EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSETSIZEEXTPROC __eglewCompositorSetSizeEXT;
-EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC __eglewCompositorSetWindowAttributesEXT;
-EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC __eglewCompositorSetWindowListEXT;
-EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSWAPPOLICYEXTPROC __eglewCompositorSwapPolicyEXT;
-
-EGLEW_FUN_EXPORT PFNEGLQUERYDEVICESEXTPROC __eglewQueryDevicesEXT;
-
-EGLEW_FUN_EXPORT PFNEGLQUERYDEVICEATTRIBEXTPROC __eglewQueryDeviceAttribEXT;
-EGLEW_FUN_EXPORT PFNEGLQUERYDEVICESTRINGEXTPROC __eglewQueryDeviceStringEXT;
-EGLEW_FUN_EXPORT PFNEGLQUERYDISPLAYATTRIBEXTPROC __eglewQueryDisplayAttribEXT;
-
-EGLEW_FUN_EXPORT PFNEGLQUERYDMABUFFORMATSEXTPROC __eglewQueryDmaBufFormatsEXT;
-EGLEW_FUN_EXPORT PFNEGLQUERYDMABUFMODIFIERSEXTPROC __eglewQueryDmaBufModifiersEXT;
-
-EGLEW_FUN_EXPORT PFNEGLGETOUTPUTLAYERSEXTPROC __eglewGetOutputLayersEXT;
-EGLEW_FUN_EXPORT PFNEGLGETOUTPUTPORTSEXTPROC __eglewGetOutputPortsEXT;
-EGLEW_FUN_EXPORT PFNEGLOUTPUTLAYERATTRIBEXTPROC __eglewOutputLayerAttribEXT;
-EGLEW_FUN_EXPORT PFNEGLOUTPUTPORTATTRIBEXTPROC __eglewOutputPortAttribEXT;
-EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC __eglewQueryOutputLayerAttribEXT;
-EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC __eglewQueryOutputLayerStringEXT;
-EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC __eglewQueryOutputPortAttribEXT;
-EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC __eglewQueryOutputPortStringEXT;
-
-EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC __eglewCreatePlatformPixmapSurfaceEXT;
-EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC __eglewCreatePlatformWindowSurfaceEXT;
-EGLEW_FUN_EXPORT PFNEGLGETPLATFORMDISPLAYEXTPROC __eglewGetPlatformDisplayEXT;
-
-EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMEROUTPUTEXTPROC __eglewStreamConsumerOutputEXT;
-
-EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC __eglewSwapBuffersWithDamageEXT;
-
-EGLEW_FUN_EXPORT PFNEGLUNSIGNALSYNCEXTPROC __eglewUnsignalSyncEXT;
-
-EGLEW_FUN_EXPORT PFNEGLCREATEPIXMAPSURFACEHIPROC __eglewCreatePixmapSurfaceHI;
-
-EGLEW_FUN_EXPORT PFNEGLCREATESYNC64KHRPROC __eglewCreateSync64KHR;
-
-EGLEW_FUN_EXPORT PFNEGLDEBUGMESSAGECONTROLKHRPROC __eglewDebugMessageControlKHR;
-EGLEW_FUN_EXPORT PFNEGLLABELOBJECTKHRPROC __eglewLabelObjectKHR;
-EGLEW_FUN_EXPORT PFNEGLQUERYDEBUGKHRPROC __eglewQueryDebugKHR;
-
-EGLEW_FUN_EXPORT PFNEGLQUERYDISPLAYATTRIBKHRPROC __eglewQueryDisplayAttribKHR;
-
-EGLEW_FUN_EXPORT PFNEGLCREATEIMAGEKHRPROC __eglewCreateImageKHR;
-EGLEW_FUN_EXPORT PFNEGLDESTROYIMAGEKHRPROC __eglewDestroyImageKHR;
-
-EGLEW_FUN_EXPORT PFNEGLLOCKSURFACEKHRPROC __eglewLockSurfaceKHR;
-EGLEW_FUN_EXPORT PFNEGLUNLOCKSURFACEKHRPROC __eglewUnlockSurfaceKHR;
-
-EGLEW_FUN_EXPORT PFNEGLQUERYSURFACE64KHRPROC __eglewQuerySurface64KHR;
-
-EGLEW_FUN_EXPORT PFNEGLSETDAMAGEREGIONKHRPROC __eglewSetDamageRegionKHR;
-
-EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCKHRPROC __eglewClientWaitSyncKHR;
-EGLEW_FUN_EXPORT PFNEGLCREATESYNCKHRPROC __eglewCreateSyncKHR;
-EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCKHRPROC __eglewDestroySyncKHR;
-EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBKHRPROC __eglewGetSyncAttribKHR;
-EGLEW_FUN_EXPORT PFNEGLSIGNALSYNCKHRPROC __eglewSignalSyncKHR;
-
-EGLEW_FUN_EXPORT PFNEGLCREATESTREAMKHRPROC __eglewCreateStreamKHR;
-EGLEW_FUN_EXPORT PFNEGLDESTROYSTREAMKHRPROC __eglewDestroyStreamKHR;
-EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMKHRPROC __eglewQueryStreamKHR;
-EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMU64KHRPROC __eglewQueryStreamu64KHR;
-EGLEW_FUN_EXPORT PFNEGLSTREAMATTRIBKHRPROC __eglewStreamAttribKHR;
-
-EGLEW_FUN_EXPORT PFNEGLCREATESTREAMATTRIBKHRPROC __eglewCreateStreamAttribKHR;
-EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMATTRIBKHRPROC __eglewQueryStreamAttribKHR;
-EGLEW_FUN_EXPORT PFNEGLSETSTREAMATTRIBKHRPROC __eglewSetStreamAttribKHR;
-EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC __eglewStreamConsumerAcquireAttribKHR;
-EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC __eglewStreamConsumerReleaseAttribKHR;
-
-EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERACQUIREKHRPROC __eglewStreamConsumerAcquireKHR;
-EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC __eglewStreamConsumerGLTextureExternalKHR;
-EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERRELEASEKHRPROC __eglewStreamConsumerReleaseKHR;
-
-EGLEW_FUN_EXPORT PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC __eglewCreateStreamFromFileDescriptorKHR;
-EGLEW_FUN_EXPORT PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC __eglewGetStreamFileDescriptorKHR;
-
-EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMTIMEKHRPROC __eglewQueryStreamTimeKHR;
-
-EGLEW_FUN_EXPORT PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC __eglewCreateStreamProducerSurfaceKHR;
-
-EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC __eglewSwapBuffersWithDamageKHR;
-
-EGLEW_FUN_EXPORT PFNEGLWAITSYNCKHRPROC __eglewWaitSyncKHR;
-
-EGLEW_FUN_EXPORT PFNEGLCREATEDRMIMAGEMESAPROC __eglewCreateDRMImageMESA;
-EGLEW_FUN_EXPORT PFNEGLEXPORTDRMIMAGEMESAPROC __eglewExportDRMImageMESA;
-
-EGLEW_FUN_EXPORT PFNEGLEXPORTDMABUFIMAGEMESAPROC __eglewExportDMABUFImageMESA;
-EGLEW_FUN_EXPORT PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC __eglewExportDMABUFImageQueryMESA;
-
-EGLEW_FUN_EXPORT PFNEGLGETDISPLAYDRIVERCONFIGPROC __eglewGetDisplayDriverConfig;
-EGLEW_FUN_EXPORT PFNEGLGETDISPLAYDRIVERNAMEPROC __eglewGetDisplayDriverName;
-
-EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSREGIONNOKPROC __eglewSwapBuffersRegionNOK;
-
-EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSREGION2NOKPROC __eglewSwapBuffersRegion2NOK;
-
-EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEDISPLAYNVPROC __eglewQueryNativeDisplayNV;
-EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEPIXMAPNVPROC __eglewQueryNativePixmapNV;
-EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEWINDOWNVPROC __eglewQueryNativeWindowNV;
-
-EGLEW_FUN_EXPORT PFNEGLPOSTSUBBUFFERNVPROC __eglewPostSubBufferNV;
-
-EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC __eglewStreamConsumerGLTextureExternalAttribsNV;
-
-EGLEW_FUN_EXPORT PFNEGLSTREAMFLUSHNVPROC __eglewStreamFlushNV;
-
-EGLEW_FUN_EXPORT PFNEGLQUERYDISPLAYATTRIBNVPROC __eglewQueryDisplayAttribNV;
-EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMMETADATANVPROC __eglewQueryStreamMetadataNV;
-EGLEW_FUN_EXPORT PFNEGLSETSTREAMMETADATANVPROC __eglewSetStreamMetadataNV;
-
-EGLEW_FUN_EXPORT PFNEGLRESETSTREAMNVPROC __eglewResetStreamNV;
-
-EGLEW_FUN_EXPORT PFNEGLCREATESTREAMSYNCNVPROC __eglewCreateStreamSyncNV;
-
-EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCNVPROC __eglewClientWaitSyncNV;
-EGLEW_FUN_EXPORT PFNEGLCREATEFENCESYNCNVPROC __eglewCreateFenceSyncNV;
-EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCNVPROC __eglewDestroySyncNV;
-EGLEW_FUN_EXPORT PFNEGLFENCENVPROC __eglewFenceNV;
-EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBNVPROC __eglewGetSyncAttribNV;
-EGLEW_FUN_EXPORT PFNEGLSIGNALSYNCNVPROC __eglewSignalSyncNV;
-
-EGLEW_FUN_EXPORT PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC __eglewGetSystemTimeFrequencyNV;
-EGLEW_FUN_EXPORT PFNEGLGETSYSTEMTIMENVPROC __eglewGetSystemTimeNV;
-
-EGLEW_FUN_EXPORT PFNEGLBINDWAYLANDDISPLAYWLPROC __eglewBindWaylandDisplayWL;
-EGLEW_FUN_EXPORT PFNEGLQUERYWAYLANDBUFFERWLPROC __eglewQueryWaylandBufferWL;
-EGLEW_FUN_EXPORT PFNEGLUNBINDWAYLANDDISPLAYWLPROC __eglewUnbindWaylandDisplayWL;
-
-EGLEW_FUN_EXPORT PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC __eglewCreateWaylandBufferFromImageWL;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_0;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_1;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_2;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_3;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_4;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_5;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_GLES_layers;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_blob_cache;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_create_native_client_buffer;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_framebuffer_target;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_front_buffer_auto_refresh;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_get_frame_timestamps;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_get_native_client_buffer;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_image_native_buffer;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_native_fence_sync;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_presentation_time;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_recordable;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_d3d_share_handle_client_buffer;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_device_d3d;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_query_surface_pointer;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_surface_d3d_texture_2d_share_handle;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_window_fixed_size;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ARM_image_format;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ARM_implicit_external_sync;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_ARM_pixmap_multisample_discard;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_bind_to_front;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_buffer_age;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_client_extensions;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_client_sync;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_compositor;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_create_context_robustness;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_base;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_drm;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_enumeration;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_openwf;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_query;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_bt2020_linear;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_bt2020_pq;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_display_p3;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_display_p3_linear;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_display_p3_passthrough;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_scrgb;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_scrgb_linear;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_dma_buf_import;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_dma_buf_import_modifiers;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_gl_colorspace;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_implicit_sync_control;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_multiview_window;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_base;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_drm;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_openwf;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_pixel_format_float;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_base;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_device;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_wayland;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_x11;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_protected_content;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_protected_surface;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_stream_consumer_egloutput;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_surface_CTA861_3_metadata;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_surface_SMPTE2086_metadata;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_swap_buffers_with_damage;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_sync_reuse;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_yuv_surface;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_HI_clientpixmap;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_HI_colorformats;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_IMG_context_priority;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_IMG_image_plane_attribs;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_cl_event;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_cl_event2;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_client_get_all_proc_addresses;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_config_attribs;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_context_flush_control;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_create_context;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_create_context_no_error;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_debug;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_display_reference;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_fence_sync;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_get_all_proc_addresses;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_colorspace;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_renderbuffer_image;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_2D_image;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_3D_image;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_cubemap_image;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image_base;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image_pixmap;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface2;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface3;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_mutable_render_buffer;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_no_config_context;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_partial_update;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_android;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_gbm;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_wayland;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_x11;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_reusable_sync;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_attrib;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_consumer_gltexture;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_cross_process_fd;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_fifo;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_producer_aldatalocator;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_producer_eglsurface;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_surfaceless_context;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_swap_buffers_with_damage;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_vg_parent_image;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_wait_sync;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_drm_image;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_image_dma_buf_export;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_platform_gbm;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_platform_surfaceless;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_query_driver;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_swap_region;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_swap_region2;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_texture_from_pixmap;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_3dvision_surface;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_context_priority_realtime;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_coverage_sample;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_coverage_sample_resolve;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_cuda_event;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_depth_nonlinear;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_device_cuda;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_native_query;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_post_convert_rounding;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_post_sub_buffer;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_quadruple_buffer;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_robustness_video_memory_purge;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_consumer_gltexture_yuv;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_display;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_object;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_partition;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_process;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_system;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_dma;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_fifo_next;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_fifo_synchronous;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_flush;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_frame_limits;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_metadata;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_origin;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_remote;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_reset;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket_inet;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket_unix;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_sync;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_sync;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_system_time;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_triple_buffer;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_TIZEN_image_native_buffer;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_TIZEN_image_native_surface;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_WL_bind_wayland_display;
-EGLEW_VAR_EXPORT GLboolean __EGLEW_WL_create_wayland_buffer_from_image;
-/* ------------------------------------------------------------------------ */
-
-GLEWAPI GLenum GLEWAPIENTRY eglewInit (EGLDisplay display);
-GLEWAPI GLboolean GLEWAPIENTRY eglewIsSupported (const char *name);
-
-#define EGLEW_GET_VAR(x) (*(const GLboolean*)&x)
-#define EGLEW_GET_FUN(x) x
-
-GLEWAPI GLboolean GLEWAPIENTRY eglewGetExtension (const char *name);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __eglew_h__ */
diff --git a/deps/GLEW/glew/include/GL/glew.h b/deps/GLEW/glew/include/GL/glew.h
deleted file mode 100644
index 234591bb59..0000000000
--- a/deps/GLEW/glew/include/GL/glew.h
+++ /dev/null
@@ -1,26427 +0,0 @@
-/*
-** The OpenGL Extension Wrangler Library
-** Copyright (C) 2008-2019, Nigel Stewart
-** Copyright (C) 2002-2008, Milan Ikits
-** Copyright (C) 2002-2008, Marcelo E. Magallon
-** Copyright (C) 2002, Lev Povalahev
-** All rights reserved.
-**
-** Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are met:
-**
-** * Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** * The name of the author may be used to endorse or promote products
-** derived from this software without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-** THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * Mesa 3-D graphics library
- * Version: 7.0
- *
- * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
-** Copyright (c) 2007 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-#ifndef __glew_h__
-#define __glew_h__
-#define __GLEW_H__
-
-#if defined(__gl_h_) || defined(__GL_H__) || defined(_GL_H) || defined(__X_GL_H)
-#error gl.h included before glew.h
-#endif
-#if defined(__gl2_h_)
-#error gl2.h included before glew.h
-#endif
-#if defined(__gltypes_h_)
-#error gltypes.h included before glew.h
-#endif
-#if defined(__REGAL_H__)
-#error Regal.h included before glew.h
-#endif
-#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_)
-#error glext.h included before glew.h
-#endif
-#if defined(__gl_ATI_h_)
-#error glATI.h included before glew.h
-#endif
-
-#define __gl_h_
-#define __gl2_h_
-#define __GL_H__
-#define _GL_H
-#define __gltypes_h_
-#define __REGAL_H__
-#define __X_GL_H
-#define __glext_h_
-#define __GLEXT_H_
-#define __gl_glext_h_
-#define __gl_ATI_h_
-
-#if defined(_WIN32)
-
-/*
- * GLEW does not include to avoid name space pollution.
- * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t
- * defined properly.
- */
-/* and */
-#ifdef APIENTRY
-# ifndef GLAPIENTRY
-# define GLAPIENTRY APIENTRY
-# endif
-# ifndef GLEWAPIENTRY
-# define GLEWAPIENTRY APIENTRY
-# endif
-#else
-#define GLEW_APIENTRY_DEFINED
-# if defined(__MINGW32__) || defined(__CYGWIN__) || (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__)
-# define APIENTRY __stdcall
-# ifndef GLAPIENTRY
-# define GLAPIENTRY __stdcall
-# endif
-# ifndef GLEWAPIENTRY
-# define GLEWAPIENTRY __stdcall
-# endif
-# else
-# define APIENTRY
-# endif
-#endif
-#ifndef GLAPI
-# if defined(__MINGW32__) || defined(__CYGWIN__)
-# define GLAPI extern
-# endif
-#endif
-/* */
-#ifndef CALLBACK
-#define GLEW_CALLBACK_DEFINED
-# if defined(__MINGW32__) || defined(__CYGWIN__)
-# define CALLBACK __attribute__ ((__stdcall__))
-# elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
-# define CALLBACK __stdcall
-# else
-# define CALLBACK
-# endif
-#endif
-/* and */
-#ifndef WINGDIAPI
-#define GLEW_WINGDIAPI_DEFINED
-#define WINGDIAPI __declspec(dllimport)
-#endif
-/* */
-#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED)
-typedef unsigned short wchar_t;
-# define _WCHAR_T_DEFINED
-#endif
-/* */
-#if !defined(_W64)
-# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300
-# define _W64 __w64
-# else
-# define _W64
-# endif
-#endif
-#if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__)
-# ifdef _WIN64
-typedef __int64 ptrdiff_t;
-# else
-typedef _W64 int ptrdiff_t;
-# endif
-# define _PTRDIFF_T_DEFINED
-# define _PTRDIFF_T_
-#endif
-
-#ifndef GLAPI
-# if defined(__MINGW32__) || defined(__CYGWIN__)
-# define GLAPI extern
-# else
-# define GLAPI WINGDIAPI
-# endif
-#endif
-
-/*
- * GLEW_STATIC is defined for static library.
- * GLEW_BUILD is defined for building the DLL library.
- */
-
-#ifdef GLEW_STATIC
-# define GLEWAPI extern
-#else
-# ifdef GLEW_BUILD
-# define GLEWAPI extern __declspec(dllexport)
-# else
-# define GLEWAPI extern __declspec(dllimport)
-# endif
-#endif
-
-#else /* _UNIX */
-
-/*
- * Needed for ptrdiff_t in turn needed by VBO. This is defined by ISO
- * C. On my system, this amounts to _3 lines_ of included code, all of
- * them pretty much harmless. If you know of a way of detecting 32 vs
- * 64 _targets_ at compile time you are free to replace this with
- * something that's portable. For now, _this_ is the portable solution.
- * (mem, 2004-01-04)
- */
-
-#if defined(__APPLE__) || defined(__linux__)
-# if defined(__cplusplus)
-# include
-# include
-# else
-# include
-# include
-# endif
-#else
-
-# include
-
-/* SGI MIPSPro doesn't like stdint.h in C++ mode */
-/* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */
-
-# if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__)
-# include
-# else
-# include
-# endif
-#endif
-
-#define GLEW_APIENTRY_DEFINED
-#define APIENTRY
-
-/*
- * GLEW_STATIC is defined for static library.
- */
-
-#ifdef GLEW_STATIC
-# define GLEWAPI extern
-#else
-# if defined(__GNUC__) && __GNUC__>=4
-# define GLEWAPI extern __attribute__ ((visibility("default")))
-# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-# define GLEWAPI extern __global
-# else
-# define GLEWAPI extern
-# endif
-#endif
-
-/* */
-#ifndef GLAPI
-#define GLAPI extern
-#endif
-
-#endif /* _WIN32 */
-
-#ifndef GLAPIENTRY
-#define GLAPIENTRY
-#endif
-
-#ifndef GLEWAPIENTRY
-#define GLEWAPIENTRY
-#endif
-
-#define GLEW_VAR_EXPORT GLEWAPI
-#define GLEW_FUN_EXPORT GLEWAPI
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ----------------------------- GL_VERSION_1_1 ---------------------------- */
-
-#ifndef GL_VERSION_1_1
-#define GL_VERSION_1_1 1
-
-typedef unsigned int GLenum;
-typedef unsigned int GLbitfield;
-typedef unsigned int GLuint;
-typedef int GLint;
-typedef int GLsizei;
-typedef unsigned char GLboolean;
-typedef signed char GLbyte;
-typedef short GLshort;
-typedef unsigned char GLubyte;
-typedef unsigned short GLushort;
-typedef unsigned long GLulong;
-typedef float GLfloat;
-typedef float GLclampf;
-typedef double GLdouble;
-typedef double GLclampd;
-typedef void GLvoid;
-#if defined(_MSC_VER) && _MSC_VER < 1400
-typedef __int64 GLint64EXT;
-typedef unsigned __int64 GLuint64EXT;
-#elif defined(_MSC_VER) || defined(__BORLANDC__)
-typedef signed long long GLint64EXT;
-typedef unsigned long long GLuint64EXT;
-#else
-# if defined(__MINGW32__) || defined(__CYGWIN__)
-#include
-# endif
-typedef int64_t GLint64EXT;
-typedef uint64_t GLuint64EXT;
-#endif
-typedef GLint64EXT GLint64;
-typedef GLuint64EXT GLuint64;
-typedef struct __GLsync *GLsync;
-
-typedef char GLchar;
-
-typedef void *GLeglImageOES; /* GL_EXT_EGL_image_storage */
-
-#define GL_ZERO 0
-#define GL_FALSE 0
-#define GL_LOGIC_OP 0x0BF1
-#define GL_NONE 0
-#define GL_TEXTURE_COMPONENTS 0x1003
-#define GL_NO_ERROR 0
-#define GL_POINTS 0x0000
-#define GL_CURRENT_BIT 0x00000001
-#define GL_TRUE 1
-#define GL_ONE 1
-#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001
-#define GL_LINES 0x0001
-#define GL_LINE_LOOP 0x0002
-#define GL_POINT_BIT 0x00000002
-#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002
-#define GL_LINE_STRIP 0x0003
-#define GL_LINE_BIT 0x00000004
-#define GL_TRIANGLES 0x0004
-#define GL_TRIANGLE_STRIP 0x0005
-#define GL_TRIANGLE_FAN 0x0006
-#define GL_QUADS 0x0007
-#define GL_QUAD_STRIP 0x0008
-#define GL_POLYGON_BIT 0x00000008
-#define GL_POLYGON 0x0009
-#define GL_POLYGON_STIPPLE_BIT 0x00000010
-#define GL_PIXEL_MODE_BIT 0x00000020
-#define GL_LIGHTING_BIT 0x00000040
-#define GL_FOG_BIT 0x00000080
-#define GL_DEPTH_BUFFER_BIT 0x00000100
-#define GL_ACCUM 0x0100
-#define GL_LOAD 0x0101
-#define GL_RETURN 0x0102
-#define GL_MULT 0x0103
-#define GL_ADD 0x0104
-#define GL_NEVER 0x0200
-#define GL_ACCUM_BUFFER_BIT 0x00000200
-#define GL_LESS 0x0201
-#define GL_EQUAL 0x0202
-#define GL_LEQUAL 0x0203
-#define GL_GREATER 0x0204
-#define GL_NOTEQUAL 0x0205
-#define GL_GEQUAL 0x0206
-#define GL_ALWAYS 0x0207
-#define GL_SRC_COLOR 0x0300
-#define GL_ONE_MINUS_SRC_COLOR 0x0301
-#define GL_SRC_ALPHA 0x0302
-#define GL_ONE_MINUS_SRC_ALPHA 0x0303
-#define GL_DST_ALPHA 0x0304
-#define GL_ONE_MINUS_DST_ALPHA 0x0305
-#define GL_DST_COLOR 0x0306
-#define GL_ONE_MINUS_DST_COLOR 0x0307
-#define GL_SRC_ALPHA_SATURATE 0x0308
-#define GL_STENCIL_BUFFER_BIT 0x00000400
-#define GL_FRONT_LEFT 0x0400
-#define GL_FRONT_RIGHT 0x0401
-#define GL_BACK_LEFT 0x0402
-#define GL_BACK_RIGHT 0x0403
-#define GL_FRONT 0x0404
-#define GL_BACK 0x0405
-#define GL_LEFT 0x0406
-#define GL_RIGHT 0x0407
-#define GL_FRONT_AND_BACK 0x0408
-#define GL_AUX0 0x0409
-#define GL_AUX1 0x040A
-#define GL_AUX2 0x040B
-#define GL_AUX3 0x040C
-#define GL_INVALID_ENUM 0x0500
-#define GL_INVALID_VALUE 0x0501
-#define GL_INVALID_OPERATION 0x0502
-#define GL_STACK_OVERFLOW 0x0503
-#define GL_STACK_UNDERFLOW 0x0504
-#define GL_OUT_OF_MEMORY 0x0505
-#define GL_2D 0x0600
-#define GL_3D 0x0601
-#define GL_3D_COLOR 0x0602
-#define GL_3D_COLOR_TEXTURE 0x0603
-#define GL_4D_COLOR_TEXTURE 0x0604
-#define GL_PASS_THROUGH_TOKEN 0x0700
-#define GL_POINT_TOKEN 0x0701
-#define GL_LINE_TOKEN 0x0702
-#define GL_POLYGON_TOKEN 0x0703
-#define GL_BITMAP_TOKEN 0x0704
-#define GL_DRAW_PIXEL_TOKEN 0x0705
-#define GL_COPY_PIXEL_TOKEN 0x0706
-#define GL_LINE_RESET_TOKEN 0x0707
-#define GL_EXP 0x0800
-#define GL_VIEWPORT_BIT 0x00000800
-#define GL_EXP2 0x0801
-#define GL_CW 0x0900
-#define GL_CCW 0x0901
-#define GL_COEFF 0x0A00
-#define GL_ORDER 0x0A01
-#define GL_DOMAIN 0x0A02
-#define GL_CURRENT_COLOR 0x0B00
-#define GL_CURRENT_INDEX 0x0B01
-#define GL_CURRENT_NORMAL 0x0B02
-#define GL_CURRENT_TEXTURE_COORDS 0x0B03
-#define GL_CURRENT_RASTER_COLOR 0x0B04
-#define GL_CURRENT_RASTER_INDEX 0x0B05
-#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
-#define GL_CURRENT_RASTER_POSITION 0x0B07
-#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08
-#define GL_CURRENT_RASTER_DISTANCE 0x0B09
-#define GL_POINT_SMOOTH 0x0B10
-#define GL_POINT_SIZE 0x0B11
-#define GL_POINT_SIZE_RANGE 0x0B12
-#define GL_POINT_SIZE_GRANULARITY 0x0B13
-#define GL_LINE_SMOOTH 0x0B20
-#define GL_LINE_WIDTH 0x0B21
-#define GL_LINE_WIDTH_RANGE 0x0B22
-#define GL_LINE_WIDTH_GRANULARITY 0x0B23
-#define GL_LINE_STIPPLE 0x0B24
-#define GL_LINE_STIPPLE_PATTERN 0x0B25
-#define GL_LINE_STIPPLE_REPEAT 0x0B26
-#define GL_LIST_MODE 0x0B30
-#define GL_MAX_LIST_NESTING 0x0B31
-#define GL_LIST_BASE 0x0B32
-#define GL_LIST_INDEX 0x0B33
-#define GL_POLYGON_MODE 0x0B40
-#define GL_POLYGON_SMOOTH 0x0B41
-#define GL_POLYGON_STIPPLE 0x0B42
-#define GL_EDGE_FLAG 0x0B43
-#define GL_CULL_FACE 0x0B44
-#define GL_CULL_FACE_MODE 0x0B45
-#define GL_FRONT_FACE 0x0B46
-#define GL_LIGHTING 0x0B50
-#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51
-#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
-#define GL_LIGHT_MODEL_AMBIENT 0x0B53
-#define GL_SHADE_MODEL 0x0B54
-#define GL_COLOR_MATERIAL_FACE 0x0B55
-#define GL_COLOR_MATERIAL_PARAMETER 0x0B56
-#define GL_COLOR_MATERIAL 0x0B57
-#define GL_FOG 0x0B60
-#define GL_FOG_INDEX 0x0B61
-#define GL_FOG_DENSITY 0x0B62
-#define GL_FOG_START 0x0B63
-#define GL_FOG_END 0x0B64
-#define GL_FOG_MODE 0x0B65
-#define GL_FOG_COLOR 0x0B66
-#define GL_DEPTH_RANGE 0x0B70
-#define GL_DEPTH_TEST 0x0B71
-#define GL_DEPTH_WRITEMASK 0x0B72
-#define GL_DEPTH_CLEAR_VALUE 0x0B73
-#define GL_DEPTH_FUNC 0x0B74
-#define GL_ACCUM_CLEAR_VALUE 0x0B80
-#define GL_STENCIL_TEST 0x0B90
-#define GL_STENCIL_CLEAR_VALUE 0x0B91
-#define GL_STENCIL_FUNC 0x0B92
-#define GL_STENCIL_VALUE_MASK 0x0B93
-#define GL_STENCIL_FAIL 0x0B94
-#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
-#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
-#define GL_STENCIL_REF 0x0B97
-#define GL_STENCIL_WRITEMASK 0x0B98
-#define GL_MATRIX_MODE 0x0BA0
-#define GL_NORMALIZE 0x0BA1
-#define GL_VIEWPORT 0x0BA2
-#define GL_MODELVIEW_STACK_DEPTH 0x0BA3
-#define GL_PROJECTION_STACK_DEPTH 0x0BA4
-#define GL_TEXTURE_STACK_DEPTH 0x0BA5
-#define GL_MODELVIEW_MATRIX 0x0BA6
-#define GL_PROJECTION_MATRIX 0x0BA7
-#define GL_TEXTURE_MATRIX 0x0BA8
-#define GL_ATTRIB_STACK_DEPTH 0x0BB0
-#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1
-#define GL_ALPHA_TEST 0x0BC0
-#define GL_ALPHA_TEST_FUNC 0x0BC1
-#define GL_ALPHA_TEST_REF 0x0BC2
-#define GL_DITHER 0x0BD0
-#define GL_BLEND_DST 0x0BE0
-#define GL_BLEND_SRC 0x0BE1
-#define GL_BLEND 0x0BE2
-#define GL_LOGIC_OP_MODE 0x0BF0
-#define GL_INDEX_LOGIC_OP 0x0BF1
-#define GL_COLOR_LOGIC_OP 0x0BF2
-#define GL_AUX_BUFFERS 0x0C00
-#define GL_DRAW_BUFFER 0x0C01
-#define GL_READ_BUFFER 0x0C02
-#define GL_SCISSOR_BOX 0x0C10
-#define GL_SCISSOR_TEST 0x0C11
-#define GL_INDEX_CLEAR_VALUE 0x0C20
-#define GL_INDEX_WRITEMASK 0x0C21
-#define GL_COLOR_CLEAR_VALUE 0x0C22
-#define GL_COLOR_WRITEMASK 0x0C23
-#define GL_INDEX_MODE 0x0C30
-#define GL_RGBA_MODE 0x0C31
-#define GL_DOUBLEBUFFER 0x0C32
-#define GL_STEREO 0x0C33
-#define GL_RENDER_MODE 0x0C40
-#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
-#define GL_POINT_SMOOTH_HINT 0x0C51
-#define GL_LINE_SMOOTH_HINT 0x0C52
-#define GL_POLYGON_SMOOTH_HINT 0x0C53
-#define GL_FOG_HINT 0x0C54
-#define GL_TEXTURE_GEN_S 0x0C60
-#define GL_TEXTURE_GEN_T 0x0C61
-#define GL_TEXTURE_GEN_R 0x0C62
-#define GL_TEXTURE_GEN_Q 0x0C63
-#define GL_PIXEL_MAP_I_TO_I 0x0C70
-#define GL_PIXEL_MAP_S_TO_S 0x0C71
-#define GL_PIXEL_MAP_I_TO_R 0x0C72
-#define GL_PIXEL_MAP_I_TO_G 0x0C73
-#define GL_PIXEL_MAP_I_TO_B 0x0C74
-#define GL_PIXEL_MAP_I_TO_A 0x0C75
-#define GL_PIXEL_MAP_R_TO_R 0x0C76
-#define GL_PIXEL_MAP_G_TO_G 0x0C77
-#define GL_PIXEL_MAP_B_TO_B 0x0C78
-#define GL_PIXEL_MAP_A_TO_A 0x0C79
-#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0
-#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1
-#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2
-#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3
-#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4
-#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5
-#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6
-#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7
-#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8
-#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9
-#define GL_UNPACK_SWAP_BYTES 0x0CF0
-#define GL_UNPACK_LSB_FIRST 0x0CF1
-#define GL_UNPACK_ROW_LENGTH 0x0CF2
-#define GL_UNPACK_SKIP_ROWS 0x0CF3
-#define GL_UNPACK_SKIP_PIXELS 0x0CF4
-#define GL_UNPACK_ALIGNMENT 0x0CF5
-#define GL_PACK_SWAP_BYTES 0x0D00
-#define GL_PACK_LSB_FIRST 0x0D01
-#define GL_PACK_ROW_LENGTH 0x0D02
-#define GL_PACK_SKIP_ROWS 0x0D03
-#define GL_PACK_SKIP_PIXELS 0x0D04
-#define GL_PACK_ALIGNMENT 0x0D05
-#define GL_MAP_COLOR 0x0D10
-#define GL_MAP_STENCIL 0x0D11
-#define GL_INDEX_SHIFT 0x0D12
-#define GL_INDEX_OFFSET 0x0D13
-#define GL_RED_SCALE 0x0D14
-#define GL_RED_BIAS 0x0D15
-#define GL_ZOOM_X 0x0D16
-#define GL_ZOOM_Y 0x0D17
-#define GL_GREEN_SCALE 0x0D18
-#define GL_GREEN_BIAS 0x0D19
-#define GL_BLUE_SCALE 0x0D1A
-#define GL_BLUE_BIAS 0x0D1B
-#define GL_ALPHA_SCALE 0x0D1C
-#define GL_ALPHA_BIAS 0x0D1D
-#define GL_DEPTH_SCALE 0x0D1E
-#define GL_DEPTH_BIAS 0x0D1F
-#define GL_MAX_EVAL_ORDER 0x0D30
-#define GL_MAX_LIGHTS 0x0D31
-#define GL_MAX_CLIP_PLANES 0x0D32
-#define GL_MAX_TEXTURE_SIZE 0x0D33
-#define GL_MAX_PIXEL_MAP_TABLE 0x0D34
-#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35
-#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
-#define GL_MAX_NAME_STACK_DEPTH 0x0D37
-#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
-#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
-#define GL_MAX_VIEWPORT_DIMS 0x0D3A
-#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B
-#define GL_SUBPIXEL_BITS 0x0D50
-#define GL_INDEX_BITS 0x0D51
-#define GL_RED_BITS 0x0D52
-#define GL_GREEN_BITS 0x0D53
-#define GL_BLUE_BITS 0x0D54
-#define GL_ALPHA_BITS 0x0D55
-#define GL_DEPTH_BITS 0x0D56
-#define GL_STENCIL_BITS 0x0D57
-#define GL_ACCUM_RED_BITS 0x0D58
-#define GL_ACCUM_GREEN_BITS 0x0D59
-#define GL_ACCUM_BLUE_BITS 0x0D5A
-#define GL_ACCUM_ALPHA_BITS 0x0D5B
-#define GL_NAME_STACK_DEPTH 0x0D70
-#define GL_AUTO_NORMAL 0x0D80
-#define GL_MAP1_COLOR_4 0x0D90
-#define GL_MAP1_INDEX 0x0D91
-#define GL_MAP1_NORMAL 0x0D92
-#define GL_MAP1_TEXTURE_COORD_1 0x0D93
-#define GL_MAP1_TEXTURE_COORD_2 0x0D94
-#define GL_MAP1_TEXTURE_COORD_3 0x0D95
-#define GL_MAP1_TEXTURE_COORD_4 0x0D96
-#define GL_MAP1_VERTEX_3 0x0D97
-#define GL_MAP1_VERTEX_4 0x0D98
-#define GL_MAP2_COLOR_4 0x0DB0
-#define GL_MAP2_INDEX 0x0DB1
-#define GL_MAP2_NORMAL 0x0DB2
-#define GL_MAP2_TEXTURE_COORD_1 0x0DB3
-#define GL_MAP2_TEXTURE_COORD_2 0x0DB4
-#define GL_MAP2_TEXTURE_COORD_3 0x0DB5
-#define GL_MAP2_TEXTURE_COORD_4 0x0DB6
-#define GL_MAP2_VERTEX_3 0x0DB7
-#define GL_MAP2_VERTEX_4 0x0DB8
-#define GL_MAP1_GRID_DOMAIN 0x0DD0
-#define GL_MAP1_GRID_SEGMENTS 0x0DD1
-#define GL_MAP2_GRID_DOMAIN 0x0DD2
-#define GL_MAP2_GRID_SEGMENTS 0x0DD3
-#define GL_TEXTURE_1D 0x0DE0
-#define GL_TEXTURE_2D 0x0DE1
-#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0
-#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1
-#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2
-#define GL_SELECTION_BUFFER_POINTER 0x0DF3
-#define GL_SELECTION_BUFFER_SIZE 0x0DF4
-#define GL_TEXTURE_WIDTH 0x1000
-#define GL_TRANSFORM_BIT 0x00001000
-#define GL_TEXTURE_HEIGHT 0x1001
-#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
-#define GL_TEXTURE_BORDER_COLOR 0x1004
-#define GL_TEXTURE_BORDER 0x1005
-#define GL_DONT_CARE 0x1100
-#define GL_FASTEST 0x1101
-#define GL_NICEST 0x1102
-#define GL_AMBIENT 0x1200
-#define GL_DIFFUSE 0x1201
-#define GL_SPECULAR 0x1202
-#define GL_POSITION 0x1203
-#define GL_SPOT_DIRECTION 0x1204
-#define GL_SPOT_EXPONENT 0x1205
-#define GL_SPOT_CUTOFF 0x1206
-#define GL_CONSTANT_ATTENUATION 0x1207
-#define GL_LINEAR_ATTENUATION 0x1208
-#define GL_QUADRATIC_ATTENUATION 0x1209
-#define GL_COMPILE 0x1300
-#define GL_COMPILE_AND_EXECUTE 0x1301
-#define GL_BYTE 0x1400
-#define GL_UNSIGNED_BYTE 0x1401
-#define GL_SHORT 0x1402
-#define GL_UNSIGNED_SHORT 0x1403
-#define GL_INT 0x1404
-#define GL_UNSIGNED_INT 0x1405
-#define GL_FLOAT 0x1406
-#define GL_2_BYTES 0x1407
-#define GL_3_BYTES 0x1408
-#define GL_4_BYTES 0x1409
-#define GL_DOUBLE 0x140A
-#define GL_CLEAR 0x1500
-#define GL_AND 0x1501
-#define GL_AND_REVERSE 0x1502
-#define GL_COPY 0x1503
-#define GL_AND_INVERTED 0x1504
-#define GL_NOOP 0x1505
-#define GL_XOR 0x1506
-#define GL_OR 0x1507
-#define GL_NOR 0x1508
-#define GL_EQUIV 0x1509
-#define GL_INVERT 0x150A
-#define GL_OR_REVERSE 0x150B
-#define GL_COPY_INVERTED 0x150C
-#define GL_OR_INVERTED 0x150D
-#define GL_NAND 0x150E
-#define GL_SET 0x150F
-#define GL_EMISSION 0x1600
-#define GL_SHININESS 0x1601
-#define GL_AMBIENT_AND_DIFFUSE 0x1602
-#define GL_COLOR_INDEXES 0x1603
-#define GL_MODELVIEW 0x1700
-#define GL_PROJECTION 0x1701
-#define GL_TEXTURE 0x1702
-#define GL_COLOR 0x1800
-#define GL_DEPTH 0x1801
-#define GL_STENCIL 0x1802
-#define GL_COLOR_INDEX 0x1900
-#define GL_STENCIL_INDEX 0x1901
-#define GL_DEPTH_COMPONENT 0x1902
-#define GL_RED 0x1903
-#define GL_GREEN 0x1904
-#define GL_BLUE 0x1905
-#define GL_ALPHA 0x1906
-#define GL_RGB 0x1907
-#define GL_RGBA 0x1908
-#define GL_LUMINANCE 0x1909
-#define GL_LUMINANCE_ALPHA 0x190A
-#define GL_BITMAP 0x1A00
-#define GL_POINT 0x1B00
-#define GL_LINE 0x1B01
-#define GL_FILL 0x1B02
-#define GL_RENDER 0x1C00
-#define GL_FEEDBACK 0x1C01
-#define GL_SELECT 0x1C02
-#define GL_FLAT 0x1D00
-#define GL_SMOOTH 0x1D01
-#define GL_KEEP 0x1E00
-#define GL_REPLACE 0x1E01
-#define GL_INCR 0x1E02
-#define GL_DECR 0x1E03
-#define GL_VENDOR 0x1F00
-#define GL_RENDERER 0x1F01
-#define GL_VERSION 0x1F02
-#define GL_EXTENSIONS 0x1F03
-#define GL_S 0x2000
-#define GL_ENABLE_BIT 0x00002000
-#define GL_T 0x2001
-#define GL_R 0x2002
-#define GL_Q 0x2003
-#define GL_MODULATE 0x2100
-#define GL_DECAL 0x2101
-#define GL_TEXTURE_ENV_MODE 0x2200
-#define GL_TEXTURE_ENV_COLOR 0x2201
-#define GL_TEXTURE_ENV 0x2300
-#define GL_EYE_LINEAR 0x2400
-#define GL_OBJECT_LINEAR 0x2401
-#define GL_SPHERE_MAP 0x2402
-#define GL_TEXTURE_GEN_MODE 0x2500
-#define GL_OBJECT_PLANE 0x2501
-#define GL_EYE_PLANE 0x2502
-#define GL_NEAREST 0x2600
-#define GL_LINEAR 0x2601
-#define GL_NEAREST_MIPMAP_NEAREST 0x2700
-#define GL_LINEAR_MIPMAP_NEAREST 0x2701
-#define GL_NEAREST_MIPMAP_LINEAR 0x2702
-#define GL_LINEAR_MIPMAP_LINEAR 0x2703
-#define GL_TEXTURE_MAG_FILTER 0x2800
-#define GL_TEXTURE_MIN_FILTER 0x2801
-#define GL_TEXTURE_WRAP_S 0x2802
-#define GL_TEXTURE_WRAP_T 0x2803
-#define GL_CLAMP 0x2900
-#define GL_REPEAT 0x2901
-#define GL_POLYGON_OFFSET_UNITS 0x2A00
-#define GL_POLYGON_OFFSET_POINT 0x2A01
-#define GL_POLYGON_OFFSET_LINE 0x2A02
-#define GL_R3_G3_B2 0x2A10
-#define GL_V2F 0x2A20
-#define GL_V3F 0x2A21
-#define GL_C4UB_V2F 0x2A22
-#define GL_C4UB_V3F 0x2A23
-#define GL_C3F_V3F 0x2A24
-#define GL_N3F_V3F 0x2A25
-#define GL_C4F_N3F_V3F 0x2A26
-#define GL_T2F_V3F 0x2A27
-#define GL_T4F_V4F 0x2A28
-#define GL_T2F_C4UB_V3F 0x2A29
-#define GL_T2F_C3F_V3F 0x2A2A
-#define GL_T2F_N3F_V3F 0x2A2B
-#define GL_T2F_C4F_N3F_V3F 0x2A2C
-#define GL_T4F_C4F_N3F_V4F 0x2A2D
-#define GL_CLIP_PLANE0 0x3000
-#define GL_CLIP_PLANE1 0x3001
-#define GL_CLIP_PLANE2 0x3002
-#define GL_CLIP_PLANE3 0x3003
-#define GL_CLIP_PLANE4 0x3004
-#define GL_CLIP_PLANE5 0x3005
-#define GL_LIGHT0 0x4000
-#define GL_COLOR_BUFFER_BIT 0x00004000
-#define GL_LIGHT1 0x4001
-#define GL_LIGHT2 0x4002
-#define GL_LIGHT3 0x4003
-#define GL_LIGHT4 0x4004
-#define GL_LIGHT5 0x4005
-#define GL_LIGHT6 0x4006
-#define GL_LIGHT7 0x4007
-#define GL_HINT_BIT 0x00008000
-#define GL_POLYGON_OFFSET_FILL 0x8037
-#define GL_POLYGON_OFFSET_FACTOR 0x8038
-#define GL_ALPHA4 0x803B
-#define GL_ALPHA8 0x803C
-#define GL_ALPHA12 0x803D
-#define GL_ALPHA16 0x803E
-#define GL_LUMINANCE4 0x803F
-#define GL_LUMINANCE8 0x8040
-#define GL_LUMINANCE12 0x8041
-#define GL_LUMINANCE16 0x8042
-#define GL_LUMINANCE4_ALPHA4 0x8043
-#define GL_LUMINANCE6_ALPHA2 0x8044
-#define GL_LUMINANCE8_ALPHA8 0x8045
-#define GL_LUMINANCE12_ALPHA4 0x8046
-#define GL_LUMINANCE12_ALPHA12 0x8047
-#define GL_LUMINANCE16_ALPHA16 0x8048
-#define GL_INTENSITY 0x8049
-#define GL_INTENSITY4 0x804A
-#define GL_INTENSITY8 0x804B
-#define GL_INTENSITY12 0x804C
-#define GL_INTENSITY16 0x804D
-#define GL_RGB4 0x804F
-#define GL_RGB5 0x8050
-#define GL_RGB8 0x8051
-#define GL_RGB10 0x8052
-#define GL_RGB12 0x8053
-#define GL_RGB16 0x8054
-#define GL_RGBA2 0x8055
-#define GL_RGBA4 0x8056
-#define GL_RGB5_A1 0x8057
-#define GL_RGBA8 0x8058
-#define GL_RGB10_A2 0x8059
-#define GL_RGBA12 0x805A
-#define GL_RGBA16 0x805B
-#define GL_TEXTURE_RED_SIZE 0x805C
-#define GL_TEXTURE_GREEN_SIZE 0x805D
-#define GL_TEXTURE_BLUE_SIZE 0x805E
-#define GL_TEXTURE_ALPHA_SIZE 0x805F
-#define GL_TEXTURE_LUMINANCE_SIZE 0x8060
-#define GL_TEXTURE_INTENSITY_SIZE 0x8061
-#define GL_PROXY_TEXTURE_1D 0x8063
-#define GL_PROXY_TEXTURE_2D 0x8064
-#define GL_TEXTURE_PRIORITY 0x8066
-#define GL_TEXTURE_RESIDENT 0x8067
-#define GL_TEXTURE_BINDING_1D 0x8068
-#define GL_TEXTURE_BINDING_2D 0x8069
-#define GL_VERTEX_ARRAY 0x8074
-#define GL_NORMAL_ARRAY 0x8075
-#define GL_COLOR_ARRAY 0x8076
-#define GL_INDEX_ARRAY 0x8077
-#define GL_TEXTURE_COORD_ARRAY 0x8078
-#define GL_EDGE_FLAG_ARRAY 0x8079
-#define GL_VERTEX_ARRAY_SIZE 0x807A
-#define GL_VERTEX_ARRAY_TYPE 0x807B
-#define GL_VERTEX_ARRAY_STRIDE 0x807C
-#define GL_NORMAL_ARRAY_TYPE 0x807E
-#define GL_NORMAL_ARRAY_STRIDE 0x807F
-#define GL_COLOR_ARRAY_SIZE 0x8081
-#define GL_COLOR_ARRAY_TYPE 0x8082
-#define GL_COLOR_ARRAY_STRIDE 0x8083
-#define GL_INDEX_ARRAY_TYPE 0x8085
-#define GL_INDEX_ARRAY_STRIDE 0x8086
-#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
-#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
-#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
-#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C
-#define GL_VERTEX_ARRAY_POINTER 0x808E
-#define GL_NORMAL_ARRAY_POINTER 0x808F
-#define GL_COLOR_ARRAY_POINTER 0x8090
-#define GL_INDEX_ARRAY_POINTER 0x8091
-#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
-#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093
-#define GL_COLOR_INDEX1_EXT 0x80E2
-#define GL_COLOR_INDEX2_EXT 0x80E3
-#define GL_COLOR_INDEX4_EXT 0x80E4
-#define GL_COLOR_INDEX8_EXT 0x80E5
-#define GL_COLOR_INDEX12_EXT 0x80E6
-#define GL_COLOR_INDEX16_EXT 0x80E7
-#define GL_EVAL_BIT 0x00010000
-#define GL_LIST_BIT 0x00020000
-#define GL_TEXTURE_BIT 0x00040000
-#define GL_SCISSOR_BIT 0x00080000
-#define GL_ALL_ATTRIB_BITS 0x000fffff
-#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff
-
-GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value);
-GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref);
-GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);
-GLAPI void GLAPIENTRY glArrayElement (GLint i);
-GLAPI void GLAPIENTRY glBegin (GLenum mode);
-GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture);
-GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
-GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
-GLAPI void GLAPIENTRY glCallList (GLuint list);
-GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const void *lists);
-GLAPI void GLAPIENTRY glClear (GLbitfield mask);
-GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-GLAPI void GLAPIENTRY glClearDepth (GLclampd depth);
-GLAPI void GLAPIENTRY glClearIndex (GLfloat c);
-GLAPI void GLAPIENTRY glClearStencil (GLint s);
-GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation);
-GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue);
-GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v);
-GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue);
-GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue);
-GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue);
-GLAPI void GLAPIENTRY glColor3iv (const GLint *v);
-GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue);
-GLAPI void GLAPIENTRY glColor3sv (const GLshort *v);
-GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue);
-GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v);
-GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue);
-GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v);
-GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue);
-GLAPI void GLAPIENTRY glColor3usv (const GLushort *v);
-GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
-GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v);
-GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
-GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha);
-GLAPI void GLAPIENTRY glColor4iv (const GLint *v);
-GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha);
-GLAPI void GLAPIENTRY glColor4sv (const GLshort *v);
-GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
-GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v);
-GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha);
-GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v);
-GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha);
-GLAPI void GLAPIENTRY glColor4usv (const GLushort *v);
-GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode);
-GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
-GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
-GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
-GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
-GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-GLAPI void GLAPIENTRY glCullFace (GLenum mode);
-GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range);
-GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
-GLAPI void GLAPIENTRY glDepthFunc (GLenum func);
-GLAPI void GLAPIENTRY glDepthMask (GLboolean flag);
-GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar);
-GLAPI void GLAPIENTRY glDisable (GLenum cap);
-GLAPI void GLAPIENTRY glDisableClientState (GLenum array);
-GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
-GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode);
-GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
-GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
-GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag);
-GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const void *pointer);
-GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag);
-GLAPI void GLAPIENTRY glEnable (GLenum cap);
-GLAPI void GLAPIENTRY glEnableClientState (GLenum array);
-GLAPI void GLAPIENTRY glEnd (void);
-GLAPI void GLAPIENTRY glEndList (void);
-GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u);
-GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u);
-GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u);
-GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u);
-GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v);
-GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u);
-GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v);
-GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u);
-GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2);
-GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
-GLAPI void GLAPIENTRY glEvalPoint1 (GLint i);
-GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j);
-GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer);
-GLAPI void GLAPIENTRY glFinish (void);
-GLAPI void GLAPIENTRY glFlush (void);
-GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param);
-GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params);
-GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param);
-GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params);
-GLAPI void GLAPIENTRY glFrontFace (GLenum mode);
-GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range);
-GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures);
-GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params);
-GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation);
-GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params);
-GLAPI GLenum GLAPIENTRY glGetError (void);
-GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params);
-GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params);
-GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
-GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params);
-GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v);
-GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v);
-GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v);
-GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
-GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params);
-GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values);
-GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values);
-GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values);
-GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, void* *params);
-GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask);
-GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name);
-GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
-GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params);
-GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params);
-GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
-GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params);
-GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
-GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
-GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
-GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
-GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
-GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode);
-GLAPI void GLAPIENTRY glIndexMask (GLuint mask);
-GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const void *pointer);
-GLAPI void GLAPIENTRY glIndexd (GLdouble c);
-GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c);
-GLAPI void GLAPIENTRY glIndexf (GLfloat c);
-GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c);
-GLAPI void GLAPIENTRY glIndexi (GLint c);
-GLAPI void GLAPIENTRY glIndexiv (const GLint *c);
-GLAPI void GLAPIENTRY glIndexs (GLshort c);
-GLAPI void GLAPIENTRY glIndexsv (const GLshort *c);
-GLAPI void GLAPIENTRY glIndexub (GLubyte c);
-GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c);
-GLAPI void GLAPIENTRY glInitNames (void);
-GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const void *pointer);
-GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap);
-GLAPI GLboolean GLAPIENTRY glIsList (GLuint list);
-GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture);
-GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param);
-GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params);
-GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param);
-GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params);
-GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param);
-GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params);
-GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param);
-GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params);
-GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern);
-GLAPI void GLAPIENTRY glLineWidth (GLfloat width);
-GLAPI void GLAPIENTRY glListBase (GLuint base);
-GLAPI void GLAPIENTRY glLoadIdentity (void);
-GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m);
-GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m);
-GLAPI void GLAPIENTRY glLoadName (GLuint name);
-GLAPI void GLAPIENTRY glLogicOp (GLenum opcode);
-GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
-GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
-GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
-GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
-GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2);
-GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2);
-GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
-GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
-GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param);
-GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
-GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param);
-GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params);
-GLAPI void GLAPIENTRY glMatrixMode (GLenum mode);
-GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m);
-GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m);
-GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode);
-GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz);
-GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v);
-GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz);
-GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
-GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz);
-GLAPI void GLAPIENTRY glNormal3iv (const GLint *v);
-GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz);
-GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v);
-GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer);
-GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-GLAPI void GLAPIENTRY glPassThrough (GLfloat token);
-GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values);
-GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values);
-GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values);
-GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param);
-GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param);
-GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param);
-GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param);
-GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor);
-GLAPI void GLAPIENTRY glPointSize (GLfloat size);
-GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode);
-GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
-GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask);
-GLAPI void GLAPIENTRY glPopAttrib (void);
-GLAPI void GLAPIENTRY glPopClientAttrib (void);
-GLAPI void GLAPIENTRY glPopMatrix (void);
-GLAPI void GLAPIENTRY glPopName (void);
-GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities);
-GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask);
-GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask);
-GLAPI void GLAPIENTRY glPushMatrix (void);
-GLAPI void GLAPIENTRY glPushName (GLuint name);
-GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y);
-GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y);
-GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y);
-GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v);
-GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y);
-GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v);
-GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z);
-GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z);
-GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z);
-GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v);
-GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z);
-GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v);
-GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w);
-GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v);
-GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w);
-GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v);
-GLAPI void GLAPIENTRY glReadBuffer (GLenum mode);
-GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
-GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
-GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2);
-GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
-GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2);
-GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2);
-GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2);
-GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
-GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2);
-GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode);
-GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
-GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
-GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z);
-GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z);
-GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
-GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer);
-GLAPI void GLAPIENTRY glShadeModel (GLenum mode);
-GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
-GLAPI void GLAPIENTRY glStencilMask (GLuint mask);
-GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
-GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s);
-GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s);
-GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glTexCoord1i (GLint s);
-GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v);
-GLAPI void GLAPIENTRY glTexCoord1s (GLshort s);
-GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v);
-GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t);
-GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t);
-GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t);
-GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v);
-GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t);
-GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v);
-GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r);
-GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r);
-GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r);
-GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v);
-GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r);
-GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v);
-GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
-GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q);
-GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v);
-GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q);
-GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v);
-GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
-GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param);
-GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params);
-GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param);
-GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params);
-GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param);
-GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params);
-GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param);
-GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params);
-GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param);
-GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params);
-GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
-GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
-GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
-GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
-GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
-GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
-GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
-GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
-GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z);
-GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
-GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y);
-GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y);
-GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y);
-GLAPI void GLAPIENTRY glVertex2iv (const GLint *v);
-GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y);
-GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v);
-GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z);
-GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z);
-GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z);
-GLAPI void GLAPIENTRY glVertex3iv (const GLint *v);
-GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z);
-GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v);
-GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v);
-GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v);
-GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w);
-GLAPI void GLAPIENTRY glVertex4iv (const GLint *v);
-GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w);
-GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v);
-GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
-GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
-
-#define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1)
-
-#endif /* GL_VERSION_1_1 */
-
-/* ---------------------------------- GLU ---------------------------------- */
-
-#ifndef GLEW_NO_GLU
-# ifdef __APPLE__
-# include
-# if defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
-# define GLEW_NO_GLU
-# endif
-# endif
-#endif
-
-#ifndef GLEW_NO_GLU
-/* this is where we can safely include GLU */
-# if defined(__APPLE__) && defined(__MACH__)
-# include
-# else
-# include
-# endif
-#endif
-
-/* ----------------------------- GL_VERSION_1_2 ---------------------------- */
-
-#ifndef GL_VERSION_1_2
-#define GL_VERSION_1_2 1
-
-#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
-#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
-#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
-#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
-#define GL_UNSIGNED_BYTE_3_3_2 0x8032
-#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
-#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
-#define GL_UNSIGNED_INT_8_8_8_8 0x8035
-#define GL_UNSIGNED_INT_10_10_10_2 0x8036
-#define GL_RESCALE_NORMAL 0x803A
-#define GL_TEXTURE_BINDING_3D 0x806A
-#define GL_PACK_SKIP_IMAGES 0x806B
-#define GL_PACK_IMAGE_HEIGHT 0x806C
-#define GL_UNPACK_SKIP_IMAGES 0x806D
-#define GL_UNPACK_IMAGE_HEIGHT 0x806E
-#define GL_TEXTURE_3D 0x806F
-#define GL_PROXY_TEXTURE_3D 0x8070
-#define GL_TEXTURE_DEPTH 0x8071
-#define GL_TEXTURE_WRAP_R 0x8072
-#define GL_MAX_3D_TEXTURE_SIZE 0x8073
-#define GL_BGR 0x80E0
-#define GL_BGRA 0x80E1
-#define GL_MAX_ELEMENTS_VERTICES 0x80E8
-#define GL_MAX_ELEMENTS_INDICES 0x80E9
-#define GL_CLAMP_TO_EDGE 0x812F
-#define GL_TEXTURE_MIN_LOD 0x813A
-#define GL_TEXTURE_MAX_LOD 0x813B
-#define GL_TEXTURE_BASE_LEVEL 0x813C
-#define GL_TEXTURE_MAX_LEVEL 0x813D
-#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
-#define GL_SINGLE_COLOR 0x81F9
-#define GL_SEPARATE_SPECULAR_COLOR 0x81FA
-#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
-#define GL_UNSIGNED_SHORT_5_6_5 0x8363
-#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
-#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
-#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
-#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
-#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
-
-typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
-typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
-
-#define glCopyTexSubImage3D GLEW_GET_FUN(__glewCopyTexSubImage3D)
-#define glDrawRangeElements GLEW_GET_FUN(__glewDrawRangeElements)
-#define glTexImage3D GLEW_GET_FUN(__glewTexImage3D)
-#define glTexSubImage3D GLEW_GET_FUN(__glewTexSubImage3D)
-
-#define GLEW_VERSION_1_2 GLEW_GET_VAR(__GLEW_VERSION_1_2)
-
-#endif /* GL_VERSION_1_2 */
-
-/* ---------------------------- GL_VERSION_1_2_1 --------------------------- */
-
-#ifndef GL_VERSION_1_2_1
-#define GL_VERSION_1_2_1 1
-
-#define GLEW_VERSION_1_2_1 GLEW_GET_VAR(__GLEW_VERSION_1_2_1)
-
-#endif /* GL_VERSION_1_2_1 */
-
-/* ----------------------------- GL_VERSION_1_3 ---------------------------- */
-
-#ifndef GL_VERSION_1_3
-#define GL_VERSION_1_3 1
-
-#define GL_MULTISAMPLE 0x809D
-#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
-#define GL_SAMPLE_COVERAGE 0x80A0
-#define GL_SAMPLE_BUFFERS 0x80A8
-#define GL_SAMPLES 0x80A9
-#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
-#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
-#define GL_CLAMP_TO_BORDER 0x812D
-#define GL_TEXTURE0 0x84C0
-#define GL_TEXTURE1 0x84C1
-#define GL_TEXTURE2 0x84C2
-#define GL_TEXTURE3 0x84C3
-#define GL_TEXTURE4 0x84C4
-#define GL_TEXTURE5 0x84C5
-#define GL_TEXTURE6 0x84C6
-#define GL_TEXTURE7 0x84C7
-#define GL_TEXTURE8 0x84C8
-#define GL_TEXTURE9 0x84C9
-#define GL_TEXTURE10 0x84CA
-#define GL_TEXTURE11 0x84CB
-#define GL_TEXTURE12 0x84CC
-#define GL_TEXTURE13 0x84CD
-#define GL_TEXTURE14 0x84CE
-#define GL_TEXTURE15 0x84CF
-#define GL_TEXTURE16 0x84D0
-#define GL_TEXTURE17 0x84D1
-#define GL_TEXTURE18 0x84D2
-#define GL_TEXTURE19 0x84D3
-#define GL_TEXTURE20 0x84D4
-#define GL_TEXTURE21 0x84D5
-#define GL_TEXTURE22 0x84D6
-#define GL_TEXTURE23 0x84D7
-#define GL_TEXTURE24 0x84D8
-#define GL_TEXTURE25 0x84D9
-#define GL_TEXTURE26 0x84DA
-#define GL_TEXTURE27 0x84DB
-#define GL_TEXTURE28 0x84DC
-#define GL_TEXTURE29 0x84DD
-#define GL_TEXTURE30 0x84DE
-#define GL_TEXTURE31 0x84DF
-#define GL_ACTIVE_TEXTURE 0x84E0
-#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
-#define GL_MAX_TEXTURE_UNITS 0x84E2
-#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
-#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
-#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
-#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
-#define GL_SUBTRACT 0x84E7
-#define GL_COMPRESSED_ALPHA 0x84E9
-#define GL_COMPRESSED_LUMINANCE 0x84EA
-#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
-#define GL_COMPRESSED_INTENSITY 0x84EC
-#define GL_COMPRESSED_RGB 0x84ED
-#define GL_COMPRESSED_RGBA 0x84EE
-#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
-#define GL_NORMAL_MAP 0x8511
-#define GL_REFLECTION_MAP 0x8512
-#define GL_TEXTURE_CUBE_MAP 0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
-#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
-#define GL_COMBINE 0x8570
-#define GL_COMBINE_RGB 0x8571
-#define GL_COMBINE_ALPHA 0x8572
-#define GL_RGB_SCALE 0x8573
-#define GL_ADD_SIGNED 0x8574
-#define GL_INTERPOLATE 0x8575
-#define GL_CONSTANT 0x8576
-#define GL_PRIMARY_COLOR 0x8577
-#define GL_PREVIOUS 0x8578
-#define GL_SOURCE0_RGB 0x8580
-#define GL_SOURCE1_RGB 0x8581
-#define GL_SOURCE2_RGB 0x8582
-#define GL_SOURCE0_ALPHA 0x8588
-#define GL_SOURCE1_ALPHA 0x8589
-#define GL_SOURCE2_ALPHA 0x858A
-#define GL_OPERAND0_RGB 0x8590
-#define GL_OPERAND1_RGB 0x8591
-#define GL_OPERAND2_RGB 0x8592
-#define GL_OPERAND0_ALPHA 0x8598
-#define GL_OPERAND1_ALPHA 0x8599
-#define GL_OPERAND2_ALPHA 0x859A
-#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
-#define GL_TEXTURE_COMPRESSED 0x86A1
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
-#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
-#define GL_DOT3_RGB 0x86AE
-#define GL_DOT3_RGBA 0x86AF
-#define GL_MULTISAMPLE_BIT 0x20000000
-
-typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture);
-typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, void *img);
-typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]);
-typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]);
-typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]);
-typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
-typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
-
-#define glActiveTexture GLEW_GET_FUN(__glewActiveTexture)
-#define glClientActiveTexture GLEW_GET_FUN(__glewClientActiveTexture)
-#define glCompressedTexImage1D GLEW_GET_FUN(__glewCompressedTexImage1D)
-#define glCompressedTexImage2D GLEW_GET_FUN(__glewCompressedTexImage2D)
-#define glCompressedTexImage3D GLEW_GET_FUN(__glewCompressedTexImage3D)
-#define glCompressedTexSubImage1D GLEW_GET_FUN(__glewCompressedTexSubImage1D)
-#define glCompressedTexSubImage2D GLEW_GET_FUN(__glewCompressedTexSubImage2D)
-#define glCompressedTexSubImage3D GLEW_GET_FUN(__glewCompressedTexSubImage3D)
-#define glGetCompressedTexImage GLEW_GET_FUN(__glewGetCompressedTexImage)
-#define glLoadTransposeMatrixd GLEW_GET_FUN(__glewLoadTransposeMatrixd)
-#define glLoadTransposeMatrixf GLEW_GET_FUN(__glewLoadTransposeMatrixf)
-#define glMultTransposeMatrixd GLEW_GET_FUN(__glewMultTransposeMatrixd)
-#define glMultTransposeMatrixf GLEW_GET_FUN(__glewMultTransposeMatrixf)
-#define glMultiTexCoord1d GLEW_GET_FUN(__glewMultiTexCoord1d)
-#define glMultiTexCoord1dv GLEW_GET_FUN(__glewMultiTexCoord1dv)
-#define glMultiTexCoord1f GLEW_GET_FUN(__glewMultiTexCoord1f)
-#define glMultiTexCoord1fv GLEW_GET_FUN(__glewMultiTexCoord1fv)
-#define glMultiTexCoord1i GLEW_GET_FUN(__glewMultiTexCoord1i)
-#define glMultiTexCoord1iv GLEW_GET_FUN(__glewMultiTexCoord1iv)
-#define glMultiTexCoord1s GLEW_GET_FUN(__glewMultiTexCoord1s)
-#define glMultiTexCoord1sv GLEW_GET_FUN(__glewMultiTexCoord1sv)
-#define glMultiTexCoord2d GLEW_GET_FUN(__glewMultiTexCoord2d)
-#define glMultiTexCoord2dv GLEW_GET_FUN(__glewMultiTexCoord2dv)
-#define glMultiTexCoord2f GLEW_GET_FUN(__glewMultiTexCoord2f)
-#define glMultiTexCoord2fv GLEW_GET_FUN(__glewMultiTexCoord2fv)
-#define glMultiTexCoord2i GLEW_GET_FUN(__glewMultiTexCoord2i)
-#define glMultiTexCoord2iv GLEW_GET_FUN(__glewMultiTexCoord2iv)
-#define glMultiTexCoord2s GLEW_GET_FUN(__glewMultiTexCoord2s)
-#define glMultiTexCoord2sv GLEW_GET_FUN(__glewMultiTexCoord2sv)
-#define glMultiTexCoord3d GLEW_GET_FUN(__glewMultiTexCoord3d)
-#define glMultiTexCoord3dv GLEW_GET_FUN(__glewMultiTexCoord3dv)
-#define glMultiTexCoord3f GLEW_GET_FUN(__glewMultiTexCoord3f)
-#define glMultiTexCoord3fv GLEW_GET_FUN(__glewMultiTexCoord3fv)
-#define glMultiTexCoord3i GLEW_GET_FUN(__glewMultiTexCoord3i)
-#define glMultiTexCoord3iv GLEW_GET_FUN(__glewMultiTexCoord3iv)
-#define glMultiTexCoord3s GLEW_GET_FUN(__glewMultiTexCoord3s)
-#define glMultiTexCoord3sv GLEW_GET_FUN(__glewMultiTexCoord3sv)
-#define glMultiTexCoord4d GLEW_GET_FUN(__glewMultiTexCoord4d)
-#define glMultiTexCoord4dv GLEW_GET_FUN(__glewMultiTexCoord4dv)
-#define glMultiTexCoord4f GLEW_GET_FUN(__glewMultiTexCoord4f)
-#define glMultiTexCoord4fv GLEW_GET_FUN(__glewMultiTexCoord4fv)
-#define glMultiTexCoord4i GLEW_GET_FUN(__glewMultiTexCoord4i)
-#define glMultiTexCoord4iv GLEW_GET_FUN(__glewMultiTexCoord4iv)
-#define glMultiTexCoord4s GLEW_GET_FUN(__glewMultiTexCoord4s)
-#define glMultiTexCoord4sv GLEW_GET_FUN(__glewMultiTexCoord4sv)
-#define glSampleCoverage GLEW_GET_FUN(__glewSampleCoverage)
-
-#define GLEW_VERSION_1_3 GLEW_GET_VAR(__GLEW_VERSION_1_3)
-
-#endif /* GL_VERSION_1_3 */
-
-/* ----------------------------- GL_VERSION_1_4 ---------------------------- */
-
-#ifndef GL_VERSION_1_4
-#define GL_VERSION_1_4 1
-
-#define GL_BLEND_DST_RGB 0x80C8
-#define GL_BLEND_SRC_RGB 0x80C9
-#define GL_BLEND_DST_ALPHA 0x80CA
-#define GL_BLEND_SRC_ALPHA 0x80CB
-#define GL_POINT_SIZE_MIN 0x8126
-#define GL_POINT_SIZE_MAX 0x8127
-#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
-#define GL_POINT_DISTANCE_ATTENUATION 0x8129
-#define GL_GENERATE_MIPMAP 0x8191
-#define GL_GENERATE_MIPMAP_HINT 0x8192
-#define GL_DEPTH_COMPONENT16 0x81A5
-#define GL_DEPTH_COMPONENT24 0x81A6
-#define GL_DEPTH_COMPONENT32 0x81A7
-#define GL_MIRRORED_REPEAT 0x8370
-#define GL_FOG_COORDINATE_SOURCE 0x8450
-#define GL_FOG_COORDINATE 0x8451
-#define GL_FRAGMENT_DEPTH 0x8452
-#define GL_CURRENT_FOG_COORDINATE 0x8453
-#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
-#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
-#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
-#define GL_FOG_COORDINATE_ARRAY 0x8457
-#define GL_COLOR_SUM 0x8458
-#define GL_CURRENT_SECONDARY_COLOR 0x8459
-#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
-#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
-#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
-#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
-#define GL_SECONDARY_COLOR_ARRAY 0x845E
-#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
-#define GL_TEXTURE_FILTER_CONTROL 0x8500
-#define GL_TEXTURE_LOD_BIAS 0x8501
-#define GL_INCR_WRAP 0x8507
-#define GL_DECR_WRAP 0x8508
-#define GL_TEXTURE_DEPTH_SIZE 0x884A
-#define GL_DEPTH_TEXTURE_MODE 0x884B
-#define GL_TEXTURE_COMPARE_MODE 0x884C
-#define GL_TEXTURE_COMPARE_FUNC 0x884D
-#define GL_COMPARE_R_TO_TEXTURE 0x884E
-
-typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode);
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDDPROC) (GLdouble coord);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *coord);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDFPROC) (GLfloat coord);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const* indices, GLsizei drawcount);
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p);
-
-#define glBlendColor GLEW_GET_FUN(__glewBlendColor)
-#define glBlendEquation GLEW_GET_FUN(__glewBlendEquation)
-#define glBlendFuncSeparate GLEW_GET_FUN(__glewBlendFuncSeparate)
-#define glFogCoordPointer GLEW_GET_FUN(__glewFogCoordPointer)
-#define glFogCoordd GLEW_GET_FUN(__glewFogCoordd)
-#define glFogCoorddv GLEW_GET_FUN(__glewFogCoorddv)
-#define glFogCoordf GLEW_GET_FUN(__glewFogCoordf)
-#define glFogCoordfv GLEW_GET_FUN(__glewFogCoordfv)
-#define glMultiDrawArrays GLEW_GET_FUN(__glewMultiDrawArrays)
-#define glMultiDrawElements GLEW_GET_FUN(__glewMultiDrawElements)
-#define glPointParameterf GLEW_GET_FUN(__glewPointParameterf)
-#define glPointParameterfv GLEW_GET_FUN(__glewPointParameterfv)
-#define glPointParameteri GLEW_GET_FUN(__glewPointParameteri)
-#define glPointParameteriv GLEW_GET_FUN(__glewPointParameteriv)
-#define glSecondaryColor3b GLEW_GET_FUN(__glewSecondaryColor3b)
-#define glSecondaryColor3bv GLEW_GET_FUN(__glewSecondaryColor3bv)
-#define glSecondaryColor3d GLEW_GET_FUN(__glewSecondaryColor3d)
-#define glSecondaryColor3dv GLEW_GET_FUN(__glewSecondaryColor3dv)
-#define glSecondaryColor3f GLEW_GET_FUN(__glewSecondaryColor3f)
-#define glSecondaryColor3fv GLEW_GET_FUN(__glewSecondaryColor3fv)
-#define glSecondaryColor3i GLEW_GET_FUN(__glewSecondaryColor3i)
-#define glSecondaryColor3iv GLEW_GET_FUN(__glewSecondaryColor3iv)
-#define glSecondaryColor3s GLEW_GET_FUN(__glewSecondaryColor3s)
-#define glSecondaryColor3sv GLEW_GET_FUN(__glewSecondaryColor3sv)
-#define glSecondaryColor3ub GLEW_GET_FUN(__glewSecondaryColor3ub)
-#define glSecondaryColor3ubv GLEW_GET_FUN(__glewSecondaryColor3ubv)
-#define glSecondaryColor3ui GLEW_GET_FUN(__glewSecondaryColor3ui)
-#define glSecondaryColor3uiv GLEW_GET_FUN(__glewSecondaryColor3uiv)
-#define glSecondaryColor3us GLEW_GET_FUN(__glewSecondaryColor3us)
-#define glSecondaryColor3usv GLEW_GET_FUN(__glewSecondaryColor3usv)
-#define glSecondaryColorPointer GLEW_GET_FUN(__glewSecondaryColorPointer)
-#define glWindowPos2d GLEW_GET_FUN(__glewWindowPos2d)
-#define glWindowPos2dv GLEW_GET_FUN(__glewWindowPos2dv)
-#define glWindowPos2f GLEW_GET_FUN(__glewWindowPos2f)
-#define glWindowPos2fv GLEW_GET_FUN(__glewWindowPos2fv)
-#define glWindowPos2i GLEW_GET_FUN(__glewWindowPos2i)
-#define glWindowPos2iv GLEW_GET_FUN(__glewWindowPos2iv)
-#define glWindowPos2s GLEW_GET_FUN(__glewWindowPos2s)
-#define glWindowPos2sv GLEW_GET_FUN(__glewWindowPos2sv)
-#define glWindowPos3d GLEW_GET_FUN(__glewWindowPos3d)
-#define glWindowPos3dv GLEW_GET_FUN(__glewWindowPos3dv)
-#define glWindowPos3f GLEW_GET_FUN(__glewWindowPos3f)
-#define glWindowPos3fv GLEW_GET_FUN(__glewWindowPos3fv)
-#define glWindowPos3i GLEW_GET_FUN(__glewWindowPos3i)
-#define glWindowPos3iv GLEW_GET_FUN(__glewWindowPos3iv)
-#define glWindowPos3s GLEW_GET_FUN(__glewWindowPos3s)
-#define glWindowPos3sv GLEW_GET_FUN(__glewWindowPos3sv)
-
-#define GLEW_VERSION_1_4 GLEW_GET_VAR(__GLEW_VERSION_1_4)
-
-#endif /* GL_VERSION_1_4 */
-
-/* ----------------------------- GL_VERSION_1_5 ---------------------------- */
-
-#ifndef GL_VERSION_1_5
-#define GL_VERSION_1_5 1
-
-#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE
-#define GL_FOG_COORD GL_FOG_COORDINATE
-#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY
-#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
-#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER
-#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE
-#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE
-#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
-#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA
-#define GL_SRC0_RGB GL_SOURCE0_RGB
-#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA
-#define GL_SRC1_RGB GL_SOURCE1_RGB
-#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA
-#define GL_SRC2_RGB GL_SOURCE2_RGB
-#define GL_BUFFER_SIZE 0x8764
-#define GL_BUFFER_USAGE 0x8765
-#define GL_QUERY_COUNTER_BITS 0x8864
-#define GL_CURRENT_QUERY 0x8865
-#define GL_QUERY_RESULT 0x8866
-#define GL_QUERY_RESULT_AVAILABLE 0x8867
-#define GL_ARRAY_BUFFER 0x8892
-#define GL_ELEMENT_ARRAY_BUFFER 0x8893
-#define GL_ARRAY_BUFFER_BINDING 0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
-#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
-#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
-#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
-#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899
-#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
-#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
-#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
-#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
-#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E
-#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
-#define GL_READ_ONLY 0x88B8
-#define GL_WRITE_ONLY 0x88B9
-#define GL_READ_WRITE 0x88BA
-#define GL_BUFFER_ACCESS 0x88BB
-#define GL_BUFFER_MAPPED 0x88BC
-#define GL_BUFFER_MAP_POINTER 0x88BD
-#define GL_STREAM_DRAW 0x88E0
-#define GL_STREAM_READ 0x88E1
-#define GL_STREAM_COPY 0x88E2
-#define GL_STATIC_DRAW 0x88E4
-#define GL_STATIC_READ 0x88E5
-#define GL_STATIC_COPY 0x88E6
-#define GL_DYNAMIC_DRAW 0x88E8
-#define GL_DYNAMIC_READ 0x88E9
-#define GL_DYNAMIC_COPY 0x88EA
-#define GL_SAMPLES_PASSED 0x8914
-
-typedef ptrdiff_t GLintptr;
-typedef ptrdiff_t GLsizeiptr;
-
-typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
-typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void* data, GLenum usage);
-typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void* data);
-typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers);
-typedef void (GLAPIENTRY * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLENDQUERYPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers);
-typedef void (GLAPIENTRY * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void** params);
-typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void* data);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer);
-typedef GLboolean (GLAPIENTRY * PFNGLISQUERYPROC) (GLuint id);
-typedef void* (GLAPIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
-typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target);
-
-#define glBeginQuery GLEW_GET_FUN(__glewBeginQuery)
-#define glBindBuffer GLEW_GET_FUN(__glewBindBuffer)
-#define glBufferData GLEW_GET_FUN(__glewBufferData)
-#define glBufferSubData GLEW_GET_FUN(__glewBufferSubData)
-#define glDeleteBuffers GLEW_GET_FUN(__glewDeleteBuffers)
-#define glDeleteQueries GLEW_GET_FUN(__glewDeleteQueries)
-#define glEndQuery GLEW_GET_FUN(__glewEndQuery)
-#define glGenBuffers GLEW_GET_FUN(__glewGenBuffers)
-#define glGenQueries GLEW_GET_FUN(__glewGenQueries)
-#define glGetBufferParameteriv GLEW_GET_FUN(__glewGetBufferParameteriv)
-#define glGetBufferPointerv GLEW_GET_FUN(__glewGetBufferPointerv)
-#define glGetBufferSubData GLEW_GET_FUN(__glewGetBufferSubData)
-#define glGetQueryObjectiv GLEW_GET_FUN(__glewGetQueryObjectiv)
-#define glGetQueryObjectuiv GLEW_GET_FUN(__glewGetQueryObjectuiv)
-#define glGetQueryiv GLEW_GET_FUN(__glewGetQueryiv)
-#define glIsBuffer GLEW_GET_FUN(__glewIsBuffer)
-#define glIsQuery GLEW_GET_FUN(__glewIsQuery)
-#define glMapBuffer GLEW_GET_FUN(__glewMapBuffer)
-#define glUnmapBuffer GLEW_GET_FUN(__glewUnmapBuffer)
-
-#define GLEW_VERSION_1_5 GLEW_GET_VAR(__GLEW_VERSION_1_5)
-
-#endif /* GL_VERSION_1_5 */
-
-/* ----------------------------- GL_VERSION_2_0 ---------------------------- */
-
-#ifndef GL_VERSION_2_0
-#define GL_VERSION_2_0 1
-
-#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
-#define GL_CURRENT_VERTEX_ATTRIB 0x8626
-#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
-#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
-#define GL_STENCIL_BACK_FUNC 0x8800
-#define GL_STENCIL_BACK_FAIL 0x8801
-#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
-#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
-#define GL_MAX_DRAW_BUFFERS 0x8824
-#define GL_DRAW_BUFFER0 0x8825
-#define GL_DRAW_BUFFER1 0x8826
-#define GL_DRAW_BUFFER2 0x8827
-#define GL_DRAW_BUFFER3 0x8828
-#define GL_DRAW_BUFFER4 0x8829
-#define GL_DRAW_BUFFER5 0x882A
-#define GL_DRAW_BUFFER6 0x882B
-#define GL_DRAW_BUFFER7 0x882C
-#define GL_DRAW_BUFFER8 0x882D
-#define GL_DRAW_BUFFER9 0x882E
-#define GL_DRAW_BUFFER10 0x882F
-#define GL_DRAW_BUFFER11 0x8830
-#define GL_DRAW_BUFFER12 0x8831
-#define GL_DRAW_BUFFER13 0x8832
-#define GL_DRAW_BUFFER14 0x8833
-#define GL_DRAW_BUFFER15 0x8834
-#define GL_BLEND_EQUATION_ALPHA 0x883D
-#define GL_POINT_SPRITE 0x8861
-#define GL_COORD_REPLACE 0x8862
-#define GL_MAX_VERTEX_ATTRIBS 0x8869
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
-#define GL_MAX_TEXTURE_COORDS 0x8871
-#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
-#define GL_FRAGMENT_SHADER 0x8B30
-#define GL_VERTEX_SHADER 0x8B31
-#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
-#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
-#define GL_MAX_VARYING_FLOATS 0x8B4B
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
-#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
-#define GL_SHADER_TYPE 0x8B4F
-#define GL_FLOAT_VEC2 0x8B50
-#define GL_FLOAT_VEC3 0x8B51
-#define GL_FLOAT_VEC4 0x8B52
-#define GL_INT_VEC2 0x8B53
-#define GL_INT_VEC3 0x8B54
-#define GL_INT_VEC4 0x8B55
-#define GL_BOOL 0x8B56
-#define GL_BOOL_VEC2 0x8B57
-#define GL_BOOL_VEC3 0x8B58
-#define GL_BOOL_VEC4 0x8B59
-#define GL_FLOAT_MAT2 0x8B5A
-#define GL_FLOAT_MAT3 0x8B5B
-#define GL_FLOAT_MAT4 0x8B5C
-#define GL_SAMPLER_1D 0x8B5D
-#define GL_SAMPLER_2D 0x8B5E
-#define GL_SAMPLER_3D 0x8B5F
-#define GL_SAMPLER_CUBE 0x8B60
-#define GL_SAMPLER_1D_SHADOW 0x8B61
-#define GL_SAMPLER_2D_SHADOW 0x8B62
-#define GL_DELETE_STATUS 0x8B80
-#define GL_COMPILE_STATUS 0x8B81
-#define GL_LINK_STATUS 0x8B82
-#define GL_VALIDATE_STATUS 0x8B83
-#define GL_INFO_LOG_LENGTH 0x8B84
-#define GL_ATTACHED_SHADERS 0x8B85
-#define GL_ACTIVE_UNIFORMS 0x8B86
-#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
-#define GL_SHADER_SOURCE_LENGTH 0x8B88
-#define GL_ACTIVE_ATTRIBUTES 0x8B89
-#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
-#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
-#define GL_CURRENT_PROGRAM 0x8B8D
-#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
-#define GL_LOWER_LEFT 0x8CA1
-#define GL_UPPER_LEFT 0x8CA2
-#define GL_STENCIL_BACK_REF 0x8CA3
-#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
-#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
-
-typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
-typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name);
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
-typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader);
-typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void);
-typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type);
-typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program);
-typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader);
-typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
-typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
-typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs);
-typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
-typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders);
-typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param);
-typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
-typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source);
-typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param);
-typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name);
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void** pointer);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program);
-typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader);
-typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program);
-typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const* string, const GLint* length);
-typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
-typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
-typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program);
-typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer);
-
-#define glAttachShader GLEW_GET_FUN(__glewAttachShader)
-#define glBindAttribLocation GLEW_GET_FUN(__glewBindAttribLocation)
-#define glBlendEquationSeparate GLEW_GET_FUN(__glewBlendEquationSeparate)
-#define glCompileShader GLEW_GET_FUN(__glewCompileShader)
-#define glCreateProgram GLEW_GET_FUN(__glewCreateProgram)
-#define glCreateShader GLEW_GET_FUN(__glewCreateShader)
-#define glDeleteProgram GLEW_GET_FUN(__glewDeleteProgram)
-#define glDeleteShader GLEW_GET_FUN(__glewDeleteShader)
-#define glDetachShader GLEW_GET_FUN(__glewDetachShader)
-#define glDisableVertexAttribArray GLEW_GET_FUN(__glewDisableVertexAttribArray)
-#define glDrawBuffers GLEW_GET_FUN(__glewDrawBuffers)
-#define glEnableVertexAttribArray GLEW_GET_FUN(__glewEnableVertexAttribArray)
-#define glGetActiveAttrib GLEW_GET_FUN(__glewGetActiveAttrib)
-#define glGetActiveUniform GLEW_GET_FUN(__glewGetActiveUniform)
-#define glGetAttachedShaders GLEW_GET_FUN(__glewGetAttachedShaders)
-#define glGetAttribLocation GLEW_GET_FUN(__glewGetAttribLocation)
-#define glGetProgramInfoLog GLEW_GET_FUN(__glewGetProgramInfoLog)
-#define glGetProgramiv GLEW_GET_FUN(__glewGetProgramiv)
-#define glGetShaderInfoLog GLEW_GET_FUN(__glewGetShaderInfoLog)
-#define glGetShaderSource GLEW_GET_FUN(__glewGetShaderSource)
-#define glGetShaderiv GLEW_GET_FUN(__glewGetShaderiv)
-#define glGetUniformLocation GLEW_GET_FUN(__glewGetUniformLocation)
-#define glGetUniformfv GLEW_GET_FUN(__glewGetUniformfv)
-#define glGetUniformiv GLEW_GET_FUN(__glewGetUniformiv)
-#define glGetVertexAttribPointerv GLEW_GET_FUN(__glewGetVertexAttribPointerv)
-#define glGetVertexAttribdv GLEW_GET_FUN(__glewGetVertexAttribdv)
-#define glGetVertexAttribfv GLEW_GET_FUN(__glewGetVertexAttribfv)
-#define glGetVertexAttribiv GLEW_GET_FUN(__glewGetVertexAttribiv)
-#define glIsProgram GLEW_GET_FUN(__glewIsProgram)
-#define glIsShader GLEW_GET_FUN(__glewIsShader)
-#define glLinkProgram GLEW_GET_FUN(__glewLinkProgram)
-#define glShaderSource GLEW_GET_FUN(__glewShaderSource)
-#define glStencilFuncSeparate GLEW_GET_FUN(__glewStencilFuncSeparate)
-#define glStencilMaskSeparate GLEW_GET_FUN(__glewStencilMaskSeparate)
-#define glStencilOpSeparate GLEW_GET_FUN(__glewStencilOpSeparate)
-#define glUniform1f GLEW_GET_FUN(__glewUniform1f)
-#define glUniform1fv GLEW_GET_FUN(__glewUniform1fv)
-#define glUniform1i GLEW_GET_FUN(__glewUniform1i)
-#define glUniform1iv GLEW_GET_FUN(__glewUniform1iv)
-#define glUniform2f GLEW_GET_FUN(__glewUniform2f)
-#define glUniform2fv GLEW_GET_FUN(__glewUniform2fv)
-#define glUniform2i GLEW_GET_FUN(__glewUniform2i)
-#define glUniform2iv GLEW_GET_FUN(__glewUniform2iv)
-#define glUniform3f GLEW_GET_FUN(__glewUniform3f)
-#define glUniform3fv GLEW_GET_FUN(__glewUniform3fv)
-#define glUniform3i GLEW_GET_FUN(__glewUniform3i)
-#define glUniform3iv GLEW_GET_FUN(__glewUniform3iv)
-#define glUniform4f GLEW_GET_FUN(__glewUniform4f)
-#define glUniform4fv GLEW_GET_FUN(__glewUniform4fv)
-#define glUniform4i GLEW_GET_FUN(__glewUniform4i)
-#define glUniform4iv GLEW_GET_FUN(__glewUniform4iv)
-#define glUniformMatrix2fv GLEW_GET_FUN(__glewUniformMatrix2fv)
-#define glUniformMatrix3fv GLEW_GET_FUN(__glewUniformMatrix3fv)
-#define glUniformMatrix4fv GLEW_GET_FUN(__glewUniformMatrix4fv)
-#define glUseProgram GLEW_GET_FUN(__glewUseProgram)
-#define glValidateProgram GLEW_GET_FUN(__glewValidateProgram)
-#define glVertexAttrib1d GLEW_GET_FUN(__glewVertexAttrib1d)
-#define glVertexAttrib1dv GLEW_GET_FUN(__glewVertexAttrib1dv)
-#define glVertexAttrib1f GLEW_GET_FUN(__glewVertexAttrib1f)
-#define glVertexAttrib1fv GLEW_GET_FUN(__glewVertexAttrib1fv)
-#define glVertexAttrib1s GLEW_GET_FUN(__glewVertexAttrib1s)
-#define glVertexAttrib1sv GLEW_GET_FUN(__glewVertexAttrib1sv)
-#define glVertexAttrib2d GLEW_GET_FUN(__glewVertexAttrib2d)
-#define glVertexAttrib2dv GLEW_GET_FUN(__glewVertexAttrib2dv)
-#define glVertexAttrib2f GLEW_GET_FUN(__glewVertexAttrib2f)
-#define glVertexAttrib2fv GLEW_GET_FUN(__glewVertexAttrib2fv)
-#define glVertexAttrib2s GLEW_GET_FUN(__glewVertexAttrib2s)
-#define glVertexAttrib2sv GLEW_GET_FUN(__glewVertexAttrib2sv)
-#define glVertexAttrib3d GLEW_GET_FUN(__glewVertexAttrib3d)
-#define glVertexAttrib3dv GLEW_GET_FUN(__glewVertexAttrib3dv)
-#define glVertexAttrib3f GLEW_GET_FUN(__glewVertexAttrib3f)
-#define glVertexAttrib3fv GLEW_GET_FUN(__glewVertexAttrib3fv)
-#define glVertexAttrib3s GLEW_GET_FUN(__glewVertexAttrib3s)
-#define glVertexAttrib3sv GLEW_GET_FUN(__glewVertexAttrib3sv)
-#define glVertexAttrib4Nbv GLEW_GET_FUN(__glewVertexAttrib4Nbv)
-#define glVertexAttrib4Niv GLEW_GET_FUN(__glewVertexAttrib4Niv)
-#define glVertexAttrib4Nsv GLEW_GET_FUN(__glewVertexAttrib4Nsv)
-#define glVertexAttrib4Nub GLEW_GET_FUN(__glewVertexAttrib4Nub)
-#define glVertexAttrib4Nubv GLEW_GET_FUN(__glewVertexAttrib4Nubv)
-#define glVertexAttrib4Nuiv GLEW_GET_FUN(__glewVertexAttrib4Nuiv)
-#define glVertexAttrib4Nusv GLEW_GET_FUN(__glewVertexAttrib4Nusv)
-#define glVertexAttrib4bv GLEW_GET_FUN(__glewVertexAttrib4bv)
-#define glVertexAttrib4d GLEW_GET_FUN(__glewVertexAttrib4d)
-#define glVertexAttrib4dv GLEW_GET_FUN(__glewVertexAttrib4dv)
-#define glVertexAttrib4f GLEW_GET_FUN(__glewVertexAttrib4f)
-#define glVertexAttrib4fv GLEW_GET_FUN(__glewVertexAttrib4fv)
-#define glVertexAttrib4iv GLEW_GET_FUN(__glewVertexAttrib4iv)
-#define glVertexAttrib4s GLEW_GET_FUN(__glewVertexAttrib4s)
-#define glVertexAttrib4sv GLEW_GET_FUN(__glewVertexAttrib4sv)
-#define glVertexAttrib4ubv GLEW_GET_FUN(__glewVertexAttrib4ubv)
-#define glVertexAttrib4uiv GLEW_GET_FUN(__glewVertexAttrib4uiv)
-#define glVertexAttrib4usv GLEW_GET_FUN(__glewVertexAttrib4usv)
-#define glVertexAttribPointer GLEW_GET_FUN(__glewVertexAttribPointer)
-
-#define GLEW_VERSION_2_0 GLEW_GET_VAR(__GLEW_VERSION_2_0)
-
-#endif /* GL_VERSION_2_0 */
-
-/* ----------------------------- GL_VERSION_2_1 ---------------------------- */
-
-#ifndef GL_VERSION_2_1
-#define GL_VERSION_2_1 1
-
-#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F
-#define GL_PIXEL_PACK_BUFFER 0x88EB
-#define GL_PIXEL_UNPACK_BUFFER 0x88EC
-#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
-#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
-#define GL_FLOAT_MAT2x3 0x8B65
-#define GL_FLOAT_MAT2x4 0x8B66
-#define GL_FLOAT_MAT3x2 0x8B67
-#define GL_FLOAT_MAT3x4 0x8B68
-#define GL_FLOAT_MAT4x2 0x8B69
-#define GL_FLOAT_MAT4x3 0x8B6A
-#define GL_SRGB 0x8C40
-#define GL_SRGB8 0x8C41
-#define GL_SRGB_ALPHA 0x8C42
-#define GL_SRGB8_ALPHA8 0x8C43
-#define GL_SLUMINANCE_ALPHA 0x8C44
-#define GL_SLUMINANCE8_ALPHA8 0x8C45
-#define GL_SLUMINANCE 0x8C46
-#define GL_SLUMINANCE8 0x8C47
-#define GL_COMPRESSED_SRGB 0x8C48
-#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
-#define GL_COMPRESSED_SLUMINANCE 0x8C4A
-#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B
-
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
-
-#define glUniformMatrix2x3fv GLEW_GET_FUN(__glewUniformMatrix2x3fv)
-#define glUniformMatrix2x4fv GLEW_GET_FUN(__glewUniformMatrix2x4fv)
-#define glUniformMatrix3x2fv GLEW_GET_FUN(__glewUniformMatrix3x2fv)
-#define glUniformMatrix3x4fv GLEW_GET_FUN(__glewUniformMatrix3x4fv)
-#define glUniformMatrix4x2fv GLEW_GET_FUN(__glewUniformMatrix4x2fv)
-#define glUniformMatrix4x3fv GLEW_GET_FUN(__glewUniformMatrix4x3fv)
-
-#define GLEW_VERSION_2_1 GLEW_GET_VAR(__GLEW_VERSION_2_1)
-
-#endif /* GL_VERSION_2_1 */
-
-/* ----------------------------- GL_VERSION_3_0 ---------------------------- */
-
-#ifndef GL_VERSION_3_0
-#define GL_VERSION_3_0 1
-
-#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0
-#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1
-#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2
-#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3
-#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4
-#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5
-#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB
-#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES
-#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS
-#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001
-#define GL_MAJOR_VERSION 0x821B
-#define GL_MINOR_VERSION 0x821C
-#define GL_NUM_EXTENSIONS 0x821D
-#define GL_CONTEXT_FLAGS 0x821E
-#define GL_DEPTH_BUFFER 0x8223
-#define GL_STENCIL_BUFFER 0x8224
-#define GL_RGBA32F 0x8814
-#define GL_RGB32F 0x8815
-#define GL_RGBA16F 0x881A
-#define GL_RGB16F 0x881B
-#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
-#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
-#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
-#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
-#define GL_CLAMP_VERTEX_COLOR 0x891A
-#define GL_CLAMP_FRAGMENT_COLOR 0x891B
-#define GL_CLAMP_READ_COLOR 0x891C
-#define GL_FIXED_ONLY 0x891D
-#define GL_TEXTURE_RED_TYPE 0x8C10
-#define GL_TEXTURE_GREEN_TYPE 0x8C11
-#define GL_TEXTURE_BLUE_TYPE 0x8C12
-#define GL_TEXTURE_ALPHA_TYPE 0x8C13
-#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14
-#define GL_TEXTURE_INTENSITY_TYPE 0x8C15
-#define GL_TEXTURE_DEPTH_TYPE 0x8C16
-#define GL_TEXTURE_1D_ARRAY 0x8C18
-#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
-#define GL_TEXTURE_2D_ARRAY 0x8C1A
-#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
-#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
-#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
-#define GL_R11F_G11F_B10F 0x8C3A
-#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
-#define GL_RGB9_E5 0x8C3D
-#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
-#define GL_TEXTURE_SHARED_SIZE 0x8C3F
-#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
-#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
-#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
-#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
-#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
-#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
-#define GL_PRIMITIVES_GENERATED 0x8C87
-#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
-#define GL_RASTERIZER_DISCARD 0x8C89
-#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
-#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
-#define GL_INTERLEAVED_ATTRIBS 0x8C8C
-#define GL_SEPARATE_ATTRIBS 0x8C8D
-#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
-#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
-#define GL_RGBA32UI 0x8D70
-#define GL_RGB32UI 0x8D71
-#define GL_RGBA16UI 0x8D76
-#define GL_RGB16UI 0x8D77
-#define GL_RGBA8UI 0x8D7C
-#define GL_RGB8UI 0x8D7D
-#define GL_RGBA32I 0x8D82
-#define GL_RGB32I 0x8D83
-#define GL_RGBA16I 0x8D88
-#define GL_RGB16I 0x8D89
-#define GL_RGBA8I 0x8D8E
-#define GL_RGB8I 0x8D8F
-#define GL_RED_INTEGER 0x8D94
-#define GL_GREEN_INTEGER 0x8D95
-#define GL_BLUE_INTEGER 0x8D96
-#define GL_ALPHA_INTEGER 0x8D97
-#define GL_RGB_INTEGER 0x8D98
-#define GL_RGBA_INTEGER 0x8D99
-#define GL_BGR_INTEGER 0x8D9A
-#define GL_BGRA_INTEGER 0x8D9B
-#define GL_SAMPLER_1D_ARRAY 0x8DC0
-#define GL_SAMPLER_2D_ARRAY 0x8DC1
-#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
-#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
-#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
-#define GL_UNSIGNED_INT_VEC2 0x8DC6
-#define GL_UNSIGNED_INT_VEC3 0x8DC7
-#define GL_UNSIGNED_INT_VEC4 0x8DC8
-#define GL_INT_SAMPLER_1D 0x8DC9
-#define GL_INT_SAMPLER_2D 0x8DCA
-#define GL_INT_SAMPLER_3D 0x8DCB
-#define GL_INT_SAMPLER_CUBE 0x8DCC
-#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
-#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
-#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
-#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
-#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
-#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
-#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
-#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
-#define GL_QUERY_WAIT 0x8E13
-#define GL_QUERY_NO_WAIT 0x8E14
-#define GL_QUERY_BY_REGION_WAIT 0x8E15
-#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
-
-typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
-typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint colorNumber, const GLchar* name);
-typedef void (GLAPIENTRY * PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
-typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil);
-typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawBuffer, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawBuffer, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawBuffer, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLCOLORMASKIPROC) (GLuint buf, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-typedef void (GLAPIENTRY * PFNGLDISABLEIPROC) (GLenum cap, GLuint index);
-typedef void (GLAPIENTRY * PFNGLENABLEIPROC) (GLenum cap, GLuint index);
-typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void);
-typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void);
-typedef void (GLAPIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum pname, GLuint index, GLboolean* data);
-typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar* name);
-typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
-typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIPROC) (GLenum cap, GLuint index);
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint* params);
-typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint v0, GLint v1);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint v0, GLuint v1);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint v0, GLint v1, GLint v2);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint v0, GLint v1, GLint v2, GLint v3);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort* v0);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void*pointer);
-
-#define glBeginConditionalRender GLEW_GET_FUN(__glewBeginConditionalRender)
-#define glBeginTransformFeedback GLEW_GET_FUN(__glewBeginTransformFeedback)
-#define glBindFragDataLocation GLEW_GET_FUN(__glewBindFragDataLocation)
-#define glClampColor GLEW_GET_FUN(__glewClampColor)
-#define glClearBufferfi GLEW_GET_FUN(__glewClearBufferfi)
-#define glClearBufferfv GLEW_GET_FUN(__glewClearBufferfv)
-#define glClearBufferiv GLEW_GET_FUN(__glewClearBufferiv)
-#define glClearBufferuiv GLEW_GET_FUN(__glewClearBufferuiv)
-#define glColorMaski GLEW_GET_FUN(__glewColorMaski)
-#define glDisablei GLEW_GET_FUN(__glewDisablei)
-#define glEnablei GLEW_GET_FUN(__glewEnablei)
-#define glEndConditionalRender GLEW_GET_FUN(__glewEndConditionalRender)
-#define glEndTransformFeedback GLEW_GET_FUN(__glewEndTransformFeedback)
-#define glGetBooleani_v GLEW_GET_FUN(__glewGetBooleani_v)
-#define glGetFragDataLocation GLEW_GET_FUN(__glewGetFragDataLocation)
-#define glGetStringi GLEW_GET_FUN(__glewGetStringi)
-#define glGetTexParameterIiv GLEW_GET_FUN(__glewGetTexParameterIiv)
-#define glGetTexParameterIuiv GLEW_GET_FUN(__glewGetTexParameterIuiv)
-#define glGetTransformFeedbackVarying GLEW_GET_FUN(__glewGetTransformFeedbackVarying)
-#define glGetUniformuiv GLEW_GET_FUN(__glewGetUniformuiv)
-#define glGetVertexAttribIiv GLEW_GET_FUN(__glewGetVertexAttribIiv)
-#define glGetVertexAttribIuiv GLEW_GET_FUN(__glewGetVertexAttribIuiv)
-#define glIsEnabledi GLEW_GET_FUN(__glewIsEnabledi)
-#define glTexParameterIiv GLEW_GET_FUN(__glewTexParameterIiv)
-#define glTexParameterIuiv GLEW_GET_FUN(__glewTexParameterIuiv)
-#define glTransformFeedbackVaryings GLEW_GET_FUN(__glewTransformFeedbackVaryings)
-#define glUniform1ui GLEW_GET_FUN(__glewUniform1ui)
-#define glUniform1uiv GLEW_GET_FUN(__glewUniform1uiv)
-#define glUniform2ui GLEW_GET_FUN(__glewUniform2ui)
-#define glUniform2uiv GLEW_GET_FUN(__glewUniform2uiv)
-#define glUniform3ui GLEW_GET_FUN(__glewUniform3ui)
-#define glUniform3uiv GLEW_GET_FUN(__glewUniform3uiv)
-#define glUniform4ui GLEW_GET_FUN(__glewUniform4ui)
-#define glUniform4uiv GLEW_GET_FUN(__glewUniform4uiv)
-#define glVertexAttribI1i GLEW_GET_FUN(__glewVertexAttribI1i)
-#define glVertexAttribI1iv GLEW_GET_FUN(__glewVertexAttribI1iv)
-#define glVertexAttribI1ui GLEW_GET_FUN(__glewVertexAttribI1ui)
-#define glVertexAttribI1uiv GLEW_GET_FUN(__glewVertexAttribI1uiv)
-#define glVertexAttribI2i GLEW_GET_FUN(__glewVertexAttribI2i)
-#define glVertexAttribI2iv GLEW_GET_FUN(__glewVertexAttribI2iv)
-#define glVertexAttribI2ui GLEW_GET_FUN(__glewVertexAttribI2ui)
-#define glVertexAttribI2uiv GLEW_GET_FUN(__glewVertexAttribI2uiv)
-#define glVertexAttribI3i GLEW_GET_FUN(__glewVertexAttribI3i)
-#define glVertexAttribI3iv GLEW_GET_FUN(__glewVertexAttribI3iv)
-#define glVertexAttribI3ui GLEW_GET_FUN(__glewVertexAttribI3ui)
-#define glVertexAttribI3uiv GLEW_GET_FUN(__glewVertexAttribI3uiv)
-#define glVertexAttribI4bv GLEW_GET_FUN(__glewVertexAttribI4bv)
-#define glVertexAttribI4i GLEW_GET_FUN(__glewVertexAttribI4i)
-#define glVertexAttribI4iv GLEW_GET_FUN(__glewVertexAttribI4iv)
-#define glVertexAttribI4sv GLEW_GET_FUN(__glewVertexAttribI4sv)
-#define glVertexAttribI4ubv GLEW_GET_FUN(__glewVertexAttribI4ubv)
-#define glVertexAttribI4ui GLEW_GET_FUN(__glewVertexAttribI4ui)
-#define glVertexAttribI4uiv GLEW_GET_FUN(__glewVertexAttribI4uiv)
-#define glVertexAttribI4usv GLEW_GET_FUN(__glewVertexAttribI4usv)
-#define glVertexAttribIPointer GLEW_GET_FUN(__glewVertexAttribIPointer)
-
-#define GLEW_VERSION_3_0 GLEW_GET_VAR(__GLEW_VERSION_3_0)
-
-#endif /* GL_VERSION_3_0 */
-
-/* ----------------------------- GL_VERSION_3_1 ---------------------------- */
-
-#ifndef GL_VERSION_3_1
-#define GL_VERSION_3_1 1
-
-#define GL_TEXTURE_RECTANGLE 0x84F5
-#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
-#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
-#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
-#define GL_SAMPLER_2D_RECT 0x8B63
-#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
-#define GL_TEXTURE_BUFFER 0x8C2A
-#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
-#define GL_TEXTURE_BINDING_BUFFER 0x8C2C
-#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
-#define GL_TEXTURE_BUFFER_FORMAT 0x8C2E
-#define GL_SAMPLER_BUFFER 0x8DC2
-#define GL_INT_SAMPLER_2D_RECT 0x8DCD
-#define GL_INT_SAMPLER_BUFFER 0x8DD0
-#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
-#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
-#define GL_RED_SNORM 0x8F90
-#define GL_RG_SNORM 0x8F91
-#define GL_RGB_SNORM 0x8F92
-#define GL_RGBA_SNORM 0x8F93
-#define GL_R8_SNORM 0x8F94
-#define GL_RG8_SNORM 0x8F95
-#define GL_RGB8_SNORM 0x8F96
-#define GL_RGBA8_SNORM 0x8F97
-#define GL_R16_SNORM 0x8F98
-#define GL_RG16_SNORM 0x8F99
-#define GL_RGB16_SNORM 0x8F9A
-#define GL_RGBA16_SNORM 0x8F9B
-#define GL_SIGNED_NORMALIZED 0x8F9C
-#define GL_PRIMITIVE_RESTART 0x8F9D
-#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
-#define GL_BUFFER_ACCESS_FLAGS 0x911F
-#define GL_BUFFER_MAP_LENGTH 0x9120
-#define GL_BUFFER_MAP_OFFSET 0x9121
-
-typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount);
-typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalFormat, GLuint buffer);
-
-#define glDrawArraysInstanced GLEW_GET_FUN(__glewDrawArraysInstanced)
-#define glDrawElementsInstanced GLEW_GET_FUN(__glewDrawElementsInstanced)
-#define glPrimitiveRestartIndex GLEW_GET_FUN(__glewPrimitiveRestartIndex)
-#define glTexBuffer GLEW_GET_FUN(__glewTexBuffer)
-
-#define GLEW_VERSION_3_1 GLEW_GET_VAR(__GLEW_VERSION_3_1)
-
-#endif /* GL_VERSION_3_1 */
-
-/* ----------------------------- GL_VERSION_3_2 ---------------------------- */
-
-#ifndef GL_VERSION_3_2
-#define GL_VERSION_3_2 1
-
-#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
-#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
-#define GL_LINES_ADJACENCY 0x000A
-#define GL_LINE_STRIP_ADJACENCY 0x000B
-#define GL_TRIANGLES_ADJACENCY 0x000C
-#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
-#define GL_PROGRAM_POINT_SIZE 0x8642
-#define GL_GEOMETRY_VERTICES_OUT 0x8916
-#define GL_GEOMETRY_INPUT_TYPE 0x8917
-#define GL_GEOMETRY_OUTPUT_TYPE 0x8918
-#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
-#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
-#define GL_GEOMETRY_SHADER 0x8DD9
-#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
-#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
-#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
-#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
-#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
-#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
-#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
-#define GL_CONTEXT_PROFILE_MASK 0x9126
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum value, GLint64 * data);
-typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum pname, GLuint index, GLint64 * data);
-
-#define glFramebufferTexture GLEW_GET_FUN(__glewFramebufferTexture)
-#define glGetBufferParameteri64v GLEW_GET_FUN(__glewGetBufferParameteri64v)
-#define glGetInteger64i_v GLEW_GET_FUN(__glewGetInteger64i_v)
-
-#define GLEW_VERSION_3_2 GLEW_GET_VAR(__GLEW_VERSION_3_2)
-
-#endif /* GL_VERSION_3_2 */
-
-/* ----------------------------- GL_VERSION_3_3 ---------------------------- */
-
-#ifndef GL_VERSION_3_3
-#define GL_VERSION_3_3 1
-
-#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
-#define GL_RGB10_A2UI 0x906F
-
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor);
-
-#define glVertexAttribDivisor GLEW_GET_FUN(__glewVertexAttribDivisor)
-
-#define GLEW_VERSION_3_3 GLEW_GET_VAR(__GLEW_VERSION_3_3)
-
-#endif /* GL_VERSION_3_3 */
-
-/* ----------------------------- GL_VERSION_4_0 ---------------------------- */
-
-#ifndef GL_VERSION_4_0
-#define GL_VERSION_4_0 1
-
-#define GL_SAMPLE_SHADING 0x8C36
-#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37
-#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
-#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
-#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F
-#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
-#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
-#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B
-#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
-#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
-#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
-#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
-
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst);
-typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC) (GLclampf value);
-
-#define glBlendEquationSeparatei GLEW_GET_FUN(__glewBlendEquationSeparatei)
-#define glBlendEquationi GLEW_GET_FUN(__glewBlendEquationi)
-#define glBlendFuncSeparatei GLEW_GET_FUN(__glewBlendFuncSeparatei)
-#define glBlendFunci GLEW_GET_FUN(__glewBlendFunci)
-#define glMinSampleShading GLEW_GET_FUN(__glewMinSampleShading)
-
-#define GLEW_VERSION_4_0 GLEW_GET_VAR(__GLEW_VERSION_4_0)
-
-#endif /* GL_VERSION_4_0 */
-
-/* ----------------------------- GL_VERSION_4_1 ---------------------------- */
-
-#ifndef GL_VERSION_4_1
-#define GL_VERSION_4_1 1
-
-#define GLEW_VERSION_4_1 GLEW_GET_VAR(__GLEW_VERSION_4_1)
-
-#endif /* GL_VERSION_4_1 */
-
-/* ----------------------------- GL_VERSION_4_2 ---------------------------- */
-
-#ifndef GL_VERSION_4_2
-#define GL_VERSION_4_2 1
-
-#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
-#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
-#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C
-#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D
-#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E
-#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F
-#define GL_COPY_READ_BUFFER_BINDING 0x8F36
-#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
-
-#define GLEW_VERSION_4_2 GLEW_GET_VAR(__GLEW_VERSION_4_2)
-
-#endif /* GL_VERSION_4_2 */
-
-/* ----------------------------- GL_VERSION_4_3 ---------------------------- */
-
-#ifndef GL_VERSION_4_3
-#define GL_VERSION_4_3 1
-
-#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9
-#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E
-
-#define GLEW_VERSION_4_3 GLEW_GET_VAR(__GLEW_VERSION_4_3)
-
-#endif /* GL_VERSION_4_3 */
-
-/* ----------------------------- GL_VERSION_4_4 ---------------------------- */
-
-#ifndef GL_VERSION_4_4
-#define GL_VERSION_4_4 1
-
-#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
-#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
-#define GL_TEXTURE_BUFFER_BINDING 0x8C2A
-
-#define GLEW_VERSION_4_4 GLEW_GET_VAR(__GLEW_VERSION_4_4)
-
-#endif /* GL_VERSION_4_4 */
-
-/* ----------------------------- GL_VERSION_4_5 ---------------------------- */
-
-#ifndef GL_VERSION_4_5
-#define GL_VERSION_4_5 1
-
-#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004
-
-typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSPROC) (void);
-typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLsizei bufSize, GLvoid *pixels);
-typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEPROC) (GLenum tex, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *pixels);
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
-
-#define glGetGraphicsResetStatus GLEW_GET_FUN(__glewGetGraphicsResetStatus)
-#define glGetnCompressedTexImage GLEW_GET_FUN(__glewGetnCompressedTexImage)
-#define glGetnTexImage GLEW_GET_FUN(__glewGetnTexImage)
-#define glGetnUniformdv GLEW_GET_FUN(__glewGetnUniformdv)
-
-#define GLEW_VERSION_4_5 GLEW_GET_VAR(__GLEW_VERSION_4_5)
-
-#endif /* GL_VERSION_4_5 */
-
-/* ----------------------------- GL_VERSION_4_6 ---------------------------- */
-
-#ifndef GL_VERSION_4_6
-#define GL_VERSION_4_6 1
-
-#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008
-#define GL_PARAMETER_BUFFER 0x80EE
-#define GL_PARAMETER_BUFFER_BINDING 0x80EF
-#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC
-#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED
-#define GL_VERTICES_SUBMITTED 0x82EE
-#define GL_PRIMITIVES_SUBMITTED 0x82EF
-#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0
-#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1
-#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2
-#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3
-#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4
-#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5
-#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6
-#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7
-#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
-#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
-#define GL_POLYGON_OFFSET_CLAMP 0x8E1B
-#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551
-#define GL_SPIR_V_BINARY 0x9552
-#define GL_SPIR_V_EXTENSIONS 0x9553
-#define GL_NUM_SPIR_V_EXTENSIONS 0x9554
-
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) (GLenum mode, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLSPECIALIZESHADERPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue);
-
-#define glMultiDrawArraysIndirectCount GLEW_GET_FUN(__glewMultiDrawArraysIndirectCount)
-#define glMultiDrawElementsIndirectCount GLEW_GET_FUN(__glewMultiDrawElementsIndirectCount)
-#define glSpecializeShader GLEW_GET_FUN(__glewSpecializeShader)
-
-#define GLEW_VERSION_4_6 GLEW_GET_VAR(__GLEW_VERSION_4_6)
-
-#endif /* GL_VERSION_4_6 */
-
-/* -------------------------- GL_3DFX_multisample -------------------------- */
-
-#ifndef GL_3DFX_multisample
-#define GL_3DFX_multisample 1
-
-#define GL_MULTISAMPLE_3DFX 0x86B2
-#define GL_SAMPLE_BUFFERS_3DFX 0x86B3
-#define GL_SAMPLES_3DFX 0x86B4
-#define GL_MULTISAMPLE_BIT_3DFX 0x20000000
-
-#define GLEW_3DFX_multisample GLEW_GET_VAR(__GLEW_3DFX_multisample)
-
-#endif /* GL_3DFX_multisample */
-
-/* ---------------------------- GL_3DFX_tbuffer ---------------------------- */
-
-#ifndef GL_3DFX_tbuffer
-#define GL_3DFX_tbuffer 1
-
-typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask);
-
-#define glTbufferMask3DFX GLEW_GET_FUN(__glewTbufferMask3DFX)
-
-#define GLEW_3DFX_tbuffer GLEW_GET_VAR(__GLEW_3DFX_tbuffer)
-
-#endif /* GL_3DFX_tbuffer */
-
-/* -------------------- GL_3DFX_texture_compression_FXT1 ------------------- */
-
-#ifndef GL_3DFX_texture_compression_FXT1
-#define GL_3DFX_texture_compression_FXT1 1
-
-#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0
-#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1
-
-#define GLEW_3DFX_texture_compression_FXT1 GLEW_GET_VAR(__GLEW_3DFX_texture_compression_FXT1)
-
-#endif /* GL_3DFX_texture_compression_FXT1 */
-
-/* ----------------------- GL_AMD_blend_minmax_factor ---------------------- */
-
-#ifndef GL_AMD_blend_minmax_factor
-#define GL_AMD_blend_minmax_factor 1
-
-#define GL_FACTOR_MIN_AMD 0x901C
-#define GL_FACTOR_MAX_AMD 0x901D
-
-#define GLEW_AMD_blend_minmax_factor GLEW_GET_VAR(__GLEW_AMD_blend_minmax_factor)
-
-#endif /* GL_AMD_blend_minmax_factor */
-
-/* --------------------- GL_AMD_compressed_3DC_texture --------------------- */
-
-#ifndef GL_AMD_compressed_3DC_texture
-#define GL_AMD_compressed_3DC_texture 1
-
-#define GL_3DC_X_AMD 0x87F9
-#define GL_3DC_XY_AMD 0x87FA
-
-#define GLEW_AMD_compressed_3DC_texture GLEW_GET_VAR(__GLEW_AMD_compressed_3DC_texture)
-
-#endif /* GL_AMD_compressed_3DC_texture */
-
-/* --------------------- GL_AMD_compressed_ATC_texture --------------------- */
-
-#ifndef GL_AMD_compressed_ATC_texture
-#define GL_AMD_compressed_ATC_texture 1
-
-#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
-#define GL_ATC_RGB_AMD 0x8C92
-#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93
-
-#define GLEW_AMD_compressed_ATC_texture GLEW_GET_VAR(__GLEW_AMD_compressed_ATC_texture)
-
-#endif /* GL_AMD_compressed_ATC_texture */
-
-/* ----------------------- GL_AMD_conservative_depth ----------------------- */
-
-#ifndef GL_AMD_conservative_depth
-#define GL_AMD_conservative_depth 1
-
-#define GLEW_AMD_conservative_depth GLEW_GET_VAR(__GLEW_AMD_conservative_depth)
-
-#endif /* GL_AMD_conservative_depth */
-
-/* -------------------------- GL_AMD_debug_output -------------------------- */
-
-#ifndef GL_AMD_debug_output
-#define GL_AMD_debug_output 1
-
-#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143
-#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
-#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145
-#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146
-#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147
-#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148
-#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149
-#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A
-#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B
-#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C
-#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D
-#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E
-#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F
-#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
-
-typedef void (GLAPIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, void* userParam);
-
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam);
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar* buf);
-typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, GLchar* message);
-
-#define glDebugMessageCallbackAMD GLEW_GET_FUN(__glewDebugMessageCallbackAMD)
-#define glDebugMessageEnableAMD GLEW_GET_FUN(__glewDebugMessageEnableAMD)
-#define glDebugMessageInsertAMD GLEW_GET_FUN(__glewDebugMessageInsertAMD)
-#define glGetDebugMessageLogAMD GLEW_GET_FUN(__glewGetDebugMessageLogAMD)
-
-#define GLEW_AMD_debug_output GLEW_GET_VAR(__GLEW_AMD_debug_output)
-
-#endif /* GL_AMD_debug_output */
-
-/* ---------------------- GL_AMD_depth_clamp_separate ---------------------- */
-
-#ifndef GL_AMD_depth_clamp_separate
-#define GL_AMD_depth_clamp_separate 1
-
-#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E
-#define GL_DEPTH_CLAMP_FAR_AMD 0x901F
-
-#define GLEW_AMD_depth_clamp_separate GLEW_GET_VAR(__GLEW_AMD_depth_clamp_separate)
-
-#endif /* GL_AMD_depth_clamp_separate */
-
-/* ----------------------- GL_AMD_draw_buffers_blend ----------------------- */
-
-#ifndef GL_AMD_draw_buffers_blend
-#define GL_AMD_draw_buffers_blend 1
-
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst);
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-
-#define glBlendEquationIndexedAMD GLEW_GET_FUN(__glewBlendEquationIndexedAMD)
-#define glBlendEquationSeparateIndexedAMD GLEW_GET_FUN(__glewBlendEquationSeparateIndexedAMD)
-#define glBlendFuncIndexedAMD GLEW_GET_FUN(__glewBlendFuncIndexedAMD)
-#define glBlendFuncSeparateIndexedAMD GLEW_GET_FUN(__glewBlendFuncSeparateIndexedAMD)
-
-#define GLEW_AMD_draw_buffers_blend GLEW_GET_VAR(__GLEW_AMD_draw_buffers_blend)
-
-#endif /* GL_AMD_draw_buffers_blend */
-
-/* ---------------- GL_AMD_framebuffer_multisample_advanced ---------------- */
-
-#ifndef GL_AMD_framebuffer_multisample_advanced
-#define GL_AMD_framebuffer_multisample_advanced 1
-
-#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2
-#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3
-#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4
-#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5
-#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6
-#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7
-
-typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
-
-#define glNamedRenderbufferStorageMultisampleAdvancedAMD GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleAdvancedAMD)
-#define glRenderbufferStorageMultisampleAdvancedAMD GLEW_GET_FUN(__glewRenderbufferStorageMultisampleAdvancedAMD)
-
-#define GLEW_AMD_framebuffer_multisample_advanced GLEW_GET_VAR(__GLEW_AMD_framebuffer_multisample_advanced)
-
-#endif /* GL_AMD_framebuffer_multisample_advanced */
-
-/* ------------------ GL_AMD_framebuffer_sample_positions ------------------ */
-
-#ifndef GL_AMD_framebuffer_sample_positions
-#define GL_AMD_framebuffer_sample_positions 1
-
-#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F
-#define GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD 0x91AE
-#define GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD 0x91AF
-#define GL_ALL_PIXELS_AMD 0xFFFFFFFF
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat* values);
-typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC) (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC) (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat* values);
-
-#define glFramebufferSamplePositionsfvAMD GLEW_GET_FUN(__glewFramebufferSamplePositionsfvAMD)
-#define glGetFramebufferParameterfvAMD GLEW_GET_FUN(__glewGetFramebufferParameterfvAMD)
-#define glGetNamedFramebufferParameterfvAMD GLEW_GET_FUN(__glewGetNamedFramebufferParameterfvAMD)
-#define glNamedFramebufferSamplePositionsfvAMD GLEW_GET_FUN(__glewNamedFramebufferSamplePositionsfvAMD)
-
-#define GLEW_AMD_framebuffer_sample_positions GLEW_GET_VAR(__GLEW_AMD_framebuffer_sample_positions)
-
-#endif /* GL_AMD_framebuffer_sample_positions */
-
-/* --------------------------- GL_AMD_gcn_shader --------------------------- */
-
-#ifndef GL_AMD_gcn_shader
-#define GL_AMD_gcn_shader 1
-
-#define GLEW_AMD_gcn_shader GLEW_GET_VAR(__GLEW_AMD_gcn_shader)
-
-#endif /* GL_AMD_gcn_shader */
-
-/* ---------------------- GL_AMD_gpu_shader_half_float --------------------- */
-
-#ifndef GL_AMD_gpu_shader_half_float
-#define GL_AMD_gpu_shader_half_float 1
-
-#define GL_FLOAT16_NV 0x8FF8
-#define GL_FLOAT16_VEC2_NV 0x8FF9
-#define GL_FLOAT16_VEC3_NV 0x8FFA
-#define GL_FLOAT16_VEC4_NV 0x8FFB
-#define GL_FLOAT16_MAT2_AMD 0x91C5
-#define GL_FLOAT16_MAT3_AMD 0x91C6
-#define GL_FLOAT16_MAT4_AMD 0x91C7
-#define GL_FLOAT16_MAT2x3_AMD 0x91C8
-#define GL_FLOAT16_MAT2x4_AMD 0x91C9
-#define GL_FLOAT16_MAT3x2_AMD 0x91CA
-#define GL_FLOAT16_MAT3x4_AMD 0x91CB
-#define GL_FLOAT16_MAT4x2_AMD 0x91CC
-#define GL_FLOAT16_MAT4x3_AMD 0x91CD
-
-#define GLEW_AMD_gpu_shader_half_float GLEW_GET_VAR(__GLEW_AMD_gpu_shader_half_float)
-
-#endif /* GL_AMD_gpu_shader_half_float */
-
-/* ------------------- GL_AMD_gpu_shader_half_float_fetch ------------------ */
-
-#ifndef GL_AMD_gpu_shader_half_float_fetch
-#define GL_AMD_gpu_shader_half_float_fetch 1
-
-#define GL_FLOAT16_SAMPLER_1D_AMD 0x91CE
-#define GL_FLOAT16_SAMPLER_2D_AMD 0x91CF
-#define GL_FLOAT16_SAMPLER_3D_AMD 0x91D0
-#define GL_FLOAT16_SAMPLER_CUBE_AMD 0x91D1
-#define GL_FLOAT16_SAMPLER_2D_RECT_AMD 0x91D2
-#define GL_FLOAT16_SAMPLER_1D_ARRAY_AMD 0x91D3
-#define GL_FLOAT16_SAMPLER_2D_ARRAY_AMD 0x91D4
-#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_AMD 0x91D5
-#define GL_FLOAT16_SAMPLER_BUFFER_AMD 0x91D6
-#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_AMD 0x91D7
-#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_ARRAY_AMD 0x91D8
-#define GL_FLOAT16_SAMPLER_1D_SHADOW_AMD 0x91D9
-#define GL_FLOAT16_SAMPLER_2D_SHADOW_AMD 0x91DA
-#define GL_FLOAT16_SAMPLER_2D_RECT_SHADOW_AMD 0x91DB
-#define GL_FLOAT16_SAMPLER_1D_ARRAY_SHADOW_AMD 0x91DC
-#define GL_FLOAT16_SAMPLER_2D_ARRAY_SHADOW_AMD 0x91DD
-#define GL_FLOAT16_SAMPLER_CUBE_SHADOW_AMD 0x91DE
-#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_SHADOW_AMD 0x91DF
-#define GL_FLOAT16_IMAGE_1D_AMD 0x91E0
-#define GL_FLOAT16_IMAGE_2D_AMD 0x91E1
-#define GL_FLOAT16_IMAGE_3D_AMD 0x91E2
-#define GL_FLOAT16_IMAGE_2D_RECT_AMD 0x91E3
-#define GL_FLOAT16_IMAGE_CUBE_AMD 0x91E4
-#define GL_FLOAT16_IMAGE_1D_ARRAY_AMD 0x91E5
-#define GL_FLOAT16_IMAGE_2D_ARRAY_AMD 0x91E6
-#define GL_FLOAT16_IMAGE_CUBE_MAP_ARRAY_AMD 0x91E7
-#define GL_FLOAT16_IMAGE_BUFFER_AMD 0x91E8
-#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_AMD 0x91E9
-#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_ARRAY_AMD 0x91EA
-
-#define GLEW_AMD_gpu_shader_half_float_fetch GLEW_GET_VAR(__GLEW_AMD_gpu_shader_half_float_fetch)
-
-#endif /* GL_AMD_gpu_shader_half_float_fetch */
-
-/* ------------------------ GL_AMD_gpu_shader_int16 ------------------------ */
-
-#ifndef GL_AMD_gpu_shader_int16
-#define GL_AMD_gpu_shader_int16 1
-
-#define GLEW_AMD_gpu_shader_int16 GLEW_GET_VAR(__GLEW_AMD_gpu_shader_int16)
-
-#endif /* GL_AMD_gpu_shader_int16 */
-
-/* ------------------------ GL_AMD_gpu_shader_int64 ------------------------ */
-
-#ifndef GL_AMD_gpu_shader_int64
-#define GL_AMD_gpu_shader_int64 1
-
-#define GLEW_AMD_gpu_shader_int64 GLEW_GET_VAR(__GLEW_AMD_gpu_shader_int64)
-
-#endif /* GL_AMD_gpu_shader_int64 */
-
-/* ---------------------- GL_AMD_interleaved_elements ---------------------- */
-
-#ifndef GL_AMD_interleaved_elements
-#define GL_AMD_interleaved_elements 1
-
-#define GL_RED 0x1903
-#define GL_GREEN 0x1904
-#define GL_BLUE 0x1905
-#define GL_ALPHA 0x1906
-#define GL_RG8UI 0x8238
-#define GL_RG16UI 0x823A
-#define GL_RGBA8UI 0x8D7C
-#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4
-#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5
-
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPARAMETERIAMDPROC) (GLuint index, GLenum pname, GLint param);
-
-#define glVertexAttribParameteriAMD GLEW_GET_FUN(__glewVertexAttribParameteriAMD)
-
-#define GLEW_AMD_interleaved_elements GLEW_GET_VAR(__GLEW_AMD_interleaved_elements)
-
-#endif /* GL_AMD_interleaved_elements */
-
-/* ----------------------- GL_AMD_multi_draw_indirect ---------------------- */
-
-#ifndef GL_AMD_multi_draw_indirect
-#define GL_AMD_multi_draw_indirect 1
-
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride);
-
-#define glMultiDrawArraysIndirectAMD GLEW_GET_FUN(__glewMultiDrawArraysIndirectAMD)
-#define glMultiDrawElementsIndirectAMD GLEW_GET_FUN(__glewMultiDrawElementsIndirectAMD)
-
-#define GLEW_AMD_multi_draw_indirect GLEW_GET_VAR(__GLEW_AMD_multi_draw_indirect)
-
-#endif /* GL_AMD_multi_draw_indirect */
-
-/* ------------------------- GL_AMD_name_gen_delete ------------------------ */
-
-#ifndef GL_AMD_name_gen_delete
-#define GL_AMD_name_gen_delete 1
-
-#define GL_DATA_BUFFER_AMD 0x9151
-#define GL_PERFORMANCE_MONITOR_AMD 0x9152
-#define GL_QUERY_OBJECT_AMD 0x9153
-#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154
-#define GL_SAMPLER_OBJECT_AMD 0x9155
-
-typedef void (GLAPIENTRY * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint* names);
-typedef void (GLAPIENTRY * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint* names);
-typedef GLboolean (GLAPIENTRY * PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name);
-
-#define glDeleteNamesAMD GLEW_GET_FUN(__glewDeleteNamesAMD)
-#define glGenNamesAMD GLEW_GET_FUN(__glewGenNamesAMD)
-#define glIsNameAMD GLEW_GET_FUN(__glewIsNameAMD)
-
-#define GLEW_AMD_name_gen_delete GLEW_GET_VAR(__GLEW_AMD_name_gen_delete)
-
-#endif /* GL_AMD_name_gen_delete */
-
-/* ---------------------- GL_AMD_occlusion_query_event --------------------- */
-
-#ifndef GL_AMD_occlusion_query_event
-#define GL_AMD_occlusion_query_event 1
-
-#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001
-#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002
-#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004
-#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008
-#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F
-#define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF
-
-typedef void (GLAPIENTRY * PFNGLQUERYOBJECTPARAMETERUIAMDPROC) (GLenum target, GLuint id, GLenum pname, GLuint param);
-
-#define glQueryObjectParameteruiAMD GLEW_GET_FUN(__glewQueryObjectParameteruiAMD)
-
-#define GLEW_AMD_occlusion_query_event GLEW_GET_VAR(__GLEW_AMD_occlusion_query_event)
-
-#endif /* GL_AMD_occlusion_query_event */
-
-/* ----------------------- GL_AMD_performance_monitor ---------------------- */
-
-#ifndef GL_AMD_performance_monitor
-#define GL_AMD_performance_monitor 1
-
-#define GL_COUNTER_TYPE_AMD 0x8BC0
-#define GL_COUNTER_RANGE_AMD 0x8BC1
-#define GL_UNSIGNED_INT64_AMD 0x8BC2
-#define GL_PERCENTAGE_AMD 0x8BC3
-#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
-#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
-#define GL_PERFMON_RESULT_AMD 0x8BC6
-
-typedef void (GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
-typedef void (GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors);
-typedef void (GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
-typedef void (GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors);
-typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten);
-typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data);
-typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar *counterString);
-typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters);
-typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, GLchar *groupString);
-typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups);
-typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList);
-
-#define glBeginPerfMonitorAMD GLEW_GET_FUN(__glewBeginPerfMonitorAMD)
-#define glDeletePerfMonitorsAMD GLEW_GET_FUN(__glewDeletePerfMonitorsAMD)
-#define glEndPerfMonitorAMD GLEW_GET_FUN(__glewEndPerfMonitorAMD)
-#define glGenPerfMonitorsAMD GLEW_GET_FUN(__glewGenPerfMonitorsAMD)
-#define glGetPerfMonitorCounterDataAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterDataAMD)
-#define glGetPerfMonitorCounterInfoAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterInfoAMD)
-#define glGetPerfMonitorCounterStringAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterStringAMD)
-#define glGetPerfMonitorCountersAMD GLEW_GET_FUN(__glewGetPerfMonitorCountersAMD)
-#define glGetPerfMonitorGroupStringAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupStringAMD)
-#define glGetPerfMonitorGroupsAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupsAMD)
-#define glSelectPerfMonitorCountersAMD GLEW_GET_FUN(__glewSelectPerfMonitorCountersAMD)
-
-#define GLEW_AMD_performance_monitor GLEW_GET_VAR(__GLEW_AMD_performance_monitor)
-
-#endif /* GL_AMD_performance_monitor */
-
-/* -------------------------- GL_AMD_pinned_memory ------------------------- */
-
-#ifndef GL_AMD_pinned_memory
-#define GL_AMD_pinned_memory 1
-
-#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160
-
-#define GLEW_AMD_pinned_memory GLEW_GET_VAR(__GLEW_AMD_pinned_memory)
-
-#endif /* GL_AMD_pinned_memory */
-
-/* ----------------------- GL_AMD_program_binary_Z400 ---------------------- */
-
-#ifndef GL_AMD_program_binary_Z400
-#define GL_AMD_program_binary_Z400 1
-
-#define GL_Z400_BINARY_AMD 0x8740
-
-#define GLEW_AMD_program_binary_Z400 GLEW_GET_VAR(__GLEW_AMD_program_binary_Z400)
-
-#endif /* GL_AMD_program_binary_Z400 */
-
-/* ----------------------- GL_AMD_query_buffer_object ---------------------- */
-
-#ifndef GL_AMD_query_buffer_object
-#define GL_AMD_query_buffer_object 1
-
-#define GL_QUERY_BUFFER_AMD 0x9192
-#define GL_QUERY_BUFFER_BINDING_AMD 0x9193
-#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194
-
-#define GLEW_AMD_query_buffer_object GLEW_GET_VAR(__GLEW_AMD_query_buffer_object)
-
-#endif /* GL_AMD_query_buffer_object */
-
-/* ------------------------ GL_AMD_sample_positions ------------------------ */
-
-#ifndef GL_AMD_sample_positions
-#define GL_AMD_sample_positions 1
-
-#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F
-
-typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat* val);
-
-#define glSetMultisamplefvAMD GLEW_GET_FUN(__glewSetMultisamplefvAMD)
-
-#define GLEW_AMD_sample_positions GLEW_GET_VAR(__GLEW_AMD_sample_positions)
-
-#endif /* GL_AMD_sample_positions */
-
-/* ------------------ GL_AMD_seamless_cubemap_per_texture ------------------ */
-
-#ifndef GL_AMD_seamless_cubemap_per_texture
-#define GL_AMD_seamless_cubemap_per_texture 1
-
-#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
-
-#define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_AMD_seamless_cubemap_per_texture)
-
-#endif /* GL_AMD_seamless_cubemap_per_texture */
-
-/* -------------------- GL_AMD_shader_atomic_counter_ops ------------------- */
-
-#ifndef GL_AMD_shader_atomic_counter_ops
-#define GL_AMD_shader_atomic_counter_ops 1
-
-#define GLEW_AMD_shader_atomic_counter_ops GLEW_GET_VAR(__GLEW_AMD_shader_atomic_counter_ops)
-
-#endif /* GL_AMD_shader_atomic_counter_ops */
-
-/* -------------------------- GL_AMD_shader_ballot ------------------------- */
-
-#ifndef GL_AMD_shader_ballot
-#define GL_AMD_shader_ballot 1
-
-#define GLEW_AMD_shader_ballot GLEW_GET_VAR(__GLEW_AMD_shader_ballot)
-
-#endif /* GL_AMD_shader_ballot */
-
-/* ---------------- GL_AMD_shader_explicit_vertex_parameter ---------------- */
-
-#ifndef GL_AMD_shader_explicit_vertex_parameter
-#define GL_AMD_shader_explicit_vertex_parameter 1
-
-#define GLEW_AMD_shader_explicit_vertex_parameter GLEW_GET_VAR(__GLEW_AMD_shader_explicit_vertex_parameter)
-
-#endif /* GL_AMD_shader_explicit_vertex_parameter */
-
-/* ------------------- GL_AMD_shader_image_load_store_lod ------------------ */
-
-#ifndef GL_AMD_shader_image_load_store_lod
-#define GL_AMD_shader_image_load_store_lod 1
-
-#define GLEW_AMD_shader_image_load_store_lod GLEW_GET_VAR(__GLEW_AMD_shader_image_load_store_lod)
-
-#endif /* GL_AMD_shader_image_load_store_lod */
-
-/* ---------------------- GL_AMD_shader_stencil_export --------------------- */
-
-#ifndef GL_AMD_shader_stencil_export
-#define GL_AMD_shader_stencil_export 1
-
-#define GLEW_AMD_shader_stencil_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_export)
-
-#endif /* GL_AMD_shader_stencil_export */
-
-/* ------------------- GL_AMD_shader_stencil_value_export ------------------ */
-
-#ifndef GL_AMD_shader_stencil_value_export
-#define GL_AMD_shader_stencil_value_export 1
-
-#define GLEW_AMD_shader_stencil_value_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_value_export)
-
-#endif /* GL_AMD_shader_stencil_value_export */
-
-/* ---------------------- GL_AMD_shader_trinary_minmax --------------------- */
-
-#ifndef GL_AMD_shader_trinary_minmax
-#define GL_AMD_shader_trinary_minmax 1
-
-#define GLEW_AMD_shader_trinary_minmax GLEW_GET_VAR(__GLEW_AMD_shader_trinary_minmax)
-
-#endif /* GL_AMD_shader_trinary_minmax */
-
-/* ------------------------- GL_AMD_sparse_texture ------------------------- */
-
-#ifndef GL_AMD_sparse_texture
-#define GL_AMD_sparse_texture 1
-
-#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001
-#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195
-#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196
-#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197
-#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198
-#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199
-#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A
-#define GL_MIN_SPARSE_LEVEL_AMD 0x919B
-#define GL_MIN_LOD_WARNING_AMD 0x919C
-
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGESPARSEAMDPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGESPARSEAMDPROC) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
-
-#define glTexStorageSparseAMD GLEW_GET_FUN(__glewTexStorageSparseAMD)
-#define glTextureStorageSparseAMD GLEW_GET_FUN(__glewTextureStorageSparseAMD)
-
-#define GLEW_AMD_sparse_texture GLEW_GET_VAR(__GLEW_AMD_sparse_texture)
-
-#endif /* GL_AMD_sparse_texture */
-
-/* ------------------- GL_AMD_stencil_operation_extended ------------------- */
-
-#ifndef GL_AMD_stencil_operation_extended
-#define GL_AMD_stencil_operation_extended 1
-
-#define GL_SET_AMD 0x874A
-#define GL_REPLACE_VALUE_AMD 0x874B
-#define GL_STENCIL_OP_VALUE_AMD 0x874C
-#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D
-
-typedef void (GLAPIENTRY * PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value);
-
-#define glStencilOpValueAMD GLEW_GET_FUN(__glewStencilOpValueAMD)
-
-#define GLEW_AMD_stencil_operation_extended GLEW_GET_VAR(__GLEW_AMD_stencil_operation_extended)
-
-#endif /* GL_AMD_stencil_operation_extended */
-
-/* --------------------- GL_AMD_texture_gather_bias_lod -------------------- */
-
-#ifndef GL_AMD_texture_gather_bias_lod
-#define GL_AMD_texture_gather_bias_lod 1
-
-#define GLEW_AMD_texture_gather_bias_lod GLEW_GET_VAR(__GLEW_AMD_texture_gather_bias_lod)
-
-#endif /* GL_AMD_texture_gather_bias_lod */
-
-/* ------------------------ GL_AMD_texture_texture4 ------------------------ */
-
-#ifndef GL_AMD_texture_texture4
-#define GL_AMD_texture_texture4 1
-
-#define GLEW_AMD_texture_texture4 GLEW_GET_VAR(__GLEW_AMD_texture_texture4)
-
-#endif /* GL_AMD_texture_texture4 */
-
-/* --------------- GL_AMD_transform_feedback3_lines_triangles -------------- */
-
-#ifndef GL_AMD_transform_feedback3_lines_triangles
-#define GL_AMD_transform_feedback3_lines_triangles 1
-
-#define GLEW_AMD_transform_feedback3_lines_triangles GLEW_GET_VAR(__GLEW_AMD_transform_feedback3_lines_triangles)
-
-#endif /* GL_AMD_transform_feedback3_lines_triangles */
-
-/* ----------------------- GL_AMD_transform_feedback4 ---------------------- */
-
-#ifndef GL_AMD_transform_feedback4
-#define GL_AMD_transform_feedback4 1
-
-#define GL_STREAM_RASTERIZATION_AMD 0x91A0
-
-#define GLEW_AMD_transform_feedback4 GLEW_GET_VAR(__GLEW_AMD_transform_feedback4)
-
-#endif /* GL_AMD_transform_feedback4 */
-
-/* ----------------------- GL_AMD_vertex_shader_layer ---------------------- */
-
-#ifndef GL_AMD_vertex_shader_layer
-#define GL_AMD_vertex_shader_layer 1
-
-#define GLEW_AMD_vertex_shader_layer GLEW_GET_VAR(__GLEW_AMD_vertex_shader_layer)
-
-#endif /* GL_AMD_vertex_shader_layer */
-
-/* -------------------- GL_AMD_vertex_shader_tessellator ------------------- */
-
-#ifndef GL_AMD_vertex_shader_tessellator
-#define GL_AMD_vertex_shader_tessellator 1
-
-#define GL_SAMPLER_BUFFER_AMD 0x9001
-#define GL_INT_SAMPLER_BUFFER_AMD 0x9002
-#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003
-#define GL_TESSELLATION_MODE_AMD 0x9004
-#define GL_TESSELLATION_FACTOR_AMD 0x9005
-#define GL_DISCRETE_AMD 0x9006
-#define GL_CONTINUOUS_AMD 0x9007
-
-typedef void (GLAPIENTRY * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor);
-typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode);
-
-#define glTessellationFactorAMD GLEW_GET_FUN(__glewTessellationFactorAMD)
-#define glTessellationModeAMD GLEW_GET_FUN(__glewTessellationModeAMD)
-
-#define GLEW_AMD_vertex_shader_tessellator GLEW_GET_VAR(__GLEW_AMD_vertex_shader_tessellator)
-
-#endif /* GL_AMD_vertex_shader_tessellator */
-
-/* ------------------ GL_AMD_vertex_shader_viewport_index ------------------ */
-
-#ifndef GL_AMD_vertex_shader_viewport_index
-#define GL_AMD_vertex_shader_viewport_index 1
-
-#define GLEW_AMD_vertex_shader_viewport_index GLEW_GET_VAR(__GLEW_AMD_vertex_shader_viewport_index)
-
-#endif /* GL_AMD_vertex_shader_viewport_index */
-
-/* -------------------- GL_ANDROID_extension_pack_es31a -------------------- */
-
-#ifndef GL_ANDROID_extension_pack_es31a
-#define GL_ANDROID_extension_pack_es31a 1
-
-#define GLEW_ANDROID_extension_pack_es31a GLEW_GET_VAR(__GLEW_ANDROID_extension_pack_es31a)
-
-#endif /* GL_ANDROID_extension_pack_es31a */
-
-/* ------------------------- GL_ANGLE_depth_texture ------------------------ */
-
-#ifndef GL_ANGLE_depth_texture
-#define GL_ANGLE_depth_texture 1
-
-#define GLEW_ANGLE_depth_texture GLEW_GET_VAR(__GLEW_ANGLE_depth_texture)
-
-#endif /* GL_ANGLE_depth_texture */
-
-/* ----------------------- GL_ANGLE_framebuffer_blit ----------------------- */
-
-#ifndef GL_ANGLE_framebuffer_blit
-#define GL_ANGLE_framebuffer_blit 1
-
-#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6
-#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8
-#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9
-#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA
-
-typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-
-#define glBlitFramebufferANGLE GLEW_GET_FUN(__glewBlitFramebufferANGLE)
-
-#define GLEW_ANGLE_framebuffer_blit GLEW_GET_VAR(__GLEW_ANGLE_framebuffer_blit)
-
-#endif /* GL_ANGLE_framebuffer_blit */
-
-/* -------------------- GL_ANGLE_framebuffer_multisample ------------------- */
-
-#ifndef GL_ANGLE_framebuffer_multisample
-#define GL_ANGLE_framebuffer_multisample 1
-
-#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56
-#define GL_MAX_SAMPLES_ANGLE 0x8D57
-
-typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-
-#define glRenderbufferStorageMultisampleANGLE GLEW_GET_FUN(__glewRenderbufferStorageMultisampleANGLE)
-
-#define GLEW_ANGLE_framebuffer_multisample GLEW_GET_VAR(__GLEW_ANGLE_framebuffer_multisample)
-
-#endif /* GL_ANGLE_framebuffer_multisample */
-
-/* ----------------------- GL_ANGLE_instanced_arrays ----------------------- */
-
-#ifndef GL_ANGLE_instanced_arrays
-#define GL_ANGLE_instanced_arrays 1
-
-#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE
-
-typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor);
-
-#define glDrawArraysInstancedANGLE GLEW_GET_FUN(__glewDrawArraysInstancedANGLE)
-#define glDrawElementsInstancedANGLE GLEW_GET_FUN(__glewDrawElementsInstancedANGLE)
-#define glVertexAttribDivisorANGLE GLEW_GET_FUN(__glewVertexAttribDivisorANGLE)
-
-#define GLEW_ANGLE_instanced_arrays GLEW_GET_VAR(__GLEW_ANGLE_instanced_arrays)
-
-#endif /* GL_ANGLE_instanced_arrays */
-
-/* -------------------- GL_ANGLE_pack_reverse_row_order -------------------- */
-
-#ifndef GL_ANGLE_pack_reverse_row_order
-#define GL_ANGLE_pack_reverse_row_order 1
-
-#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4
-
-#define GLEW_ANGLE_pack_reverse_row_order GLEW_GET_VAR(__GLEW_ANGLE_pack_reverse_row_order)
-
-#endif /* GL_ANGLE_pack_reverse_row_order */
-
-/* ------------------------ GL_ANGLE_program_binary ------------------------ */
-
-#ifndef GL_ANGLE_program_binary
-#define GL_ANGLE_program_binary 1
-
-#define GL_PROGRAM_BINARY_ANGLE 0x93A6
-
-#define GLEW_ANGLE_program_binary GLEW_GET_VAR(__GLEW_ANGLE_program_binary)
-
-#endif /* GL_ANGLE_program_binary */
-
-/* ------------------- GL_ANGLE_texture_compression_dxt1 ------------------- */
-
-#ifndef GL_ANGLE_texture_compression_dxt1
-#define GL_ANGLE_texture_compression_dxt1 1
-
-#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0
-#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1
-#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
-#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
-
-#define GLEW_ANGLE_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt1)
-
-#endif /* GL_ANGLE_texture_compression_dxt1 */
-
-/* ------------------- GL_ANGLE_texture_compression_dxt3 ------------------- */
-
-#ifndef GL_ANGLE_texture_compression_dxt3
-#define GL_ANGLE_texture_compression_dxt3 1
-
-#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0
-#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1
-#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
-#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
-
-#define GLEW_ANGLE_texture_compression_dxt3 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt3)
-
-#endif /* GL_ANGLE_texture_compression_dxt3 */
-
-/* ------------------- GL_ANGLE_texture_compression_dxt5 ------------------- */
-
-#ifndef GL_ANGLE_texture_compression_dxt5
-#define GL_ANGLE_texture_compression_dxt5 1
-
-#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0
-#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1
-#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
-#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
-
-#define GLEW_ANGLE_texture_compression_dxt5 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt5)
-
-#endif /* GL_ANGLE_texture_compression_dxt5 */
-
-/* ------------------------- GL_ANGLE_texture_usage ------------------------ */
-
-#ifndef GL_ANGLE_texture_usage
-#define GL_ANGLE_texture_usage 1
-
-#define GL_TEXTURE_USAGE_ANGLE 0x93A2
-#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3
-
-#define GLEW_ANGLE_texture_usage GLEW_GET_VAR(__GLEW_ANGLE_texture_usage)
-
-#endif /* GL_ANGLE_texture_usage */
-
-/* -------------------------- GL_ANGLE_timer_query ------------------------- */
-
-#ifndef GL_ANGLE_timer_query
-#define GL_ANGLE_timer_query 1
-
-#define GL_QUERY_COUNTER_BITS_ANGLE 0x8864
-#define GL_CURRENT_QUERY_ANGLE 0x8865
-#define GL_QUERY_RESULT_ANGLE 0x8866
-#define GL_QUERY_RESULT_AVAILABLE_ANGLE 0x8867
-#define GL_TIME_ELAPSED_ANGLE 0x88BF
-#define GL_TIMESTAMP_ANGLE 0x8E28
-
-typedef void (GLAPIENTRY * PFNGLBEGINQUERYANGLEPROC) (GLenum target, GLuint id);
-typedef void (GLAPIENTRY * PFNGLDELETEQUERIESANGLEPROC) (GLsizei n, const GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLENDQUERYANGLEPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLGENQUERIESANGLEPROC) (GLsizei n, GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VANGLEPROC) (GLuint id, GLenum pname, GLint64* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVANGLEPROC) (GLuint id, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VANGLEPROC) (GLuint id, GLenum pname, GLuint64* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVANGLEPROC) (GLuint id, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYIVANGLEPROC) (GLenum target, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISQUERYANGLEPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERANGLEPROC) (GLuint id, GLenum target);
-
-#define glBeginQueryANGLE GLEW_GET_FUN(__glewBeginQueryANGLE)
-#define glDeleteQueriesANGLE GLEW_GET_FUN(__glewDeleteQueriesANGLE)
-#define glEndQueryANGLE GLEW_GET_FUN(__glewEndQueryANGLE)
-#define glGenQueriesANGLE GLEW_GET_FUN(__glewGenQueriesANGLE)
-#define glGetQueryObjecti64vANGLE GLEW_GET_FUN(__glewGetQueryObjecti64vANGLE)
-#define glGetQueryObjectivANGLE GLEW_GET_FUN(__glewGetQueryObjectivANGLE)
-#define glGetQueryObjectui64vANGLE GLEW_GET_FUN(__glewGetQueryObjectui64vANGLE)
-#define glGetQueryObjectuivANGLE GLEW_GET_FUN(__glewGetQueryObjectuivANGLE)
-#define glGetQueryivANGLE GLEW_GET_FUN(__glewGetQueryivANGLE)
-#define glIsQueryANGLE GLEW_GET_FUN(__glewIsQueryANGLE)
-#define glQueryCounterANGLE GLEW_GET_FUN(__glewQueryCounterANGLE)
-
-#define GLEW_ANGLE_timer_query GLEW_GET_VAR(__GLEW_ANGLE_timer_query)
-
-#endif /* GL_ANGLE_timer_query */
-
-/* ------------------- GL_ANGLE_translated_shader_source ------------------- */
-
-#ifndef GL_ANGLE_translated_shader_source
-#define GL_ANGLE_translated_shader_source 1
-
-#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0
-
-typedef void (GLAPIENTRY * PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
-
-#define glGetTranslatedShaderSourceANGLE GLEW_GET_FUN(__glewGetTranslatedShaderSourceANGLE)
-
-#define GLEW_ANGLE_translated_shader_source GLEW_GET_VAR(__GLEW_ANGLE_translated_shader_source)
-
-#endif /* GL_ANGLE_translated_shader_source */
-
-/* ----------------------- GL_APPLE_aux_depth_stencil ---------------------- */
-
-#ifndef GL_APPLE_aux_depth_stencil
-#define GL_APPLE_aux_depth_stencil 1
-
-#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14
-
-#define GLEW_APPLE_aux_depth_stencil GLEW_GET_VAR(__GLEW_APPLE_aux_depth_stencil)
-
-#endif /* GL_APPLE_aux_depth_stencil */
-
-/* ------------------------ GL_APPLE_client_storage ------------------------ */
-
-#ifndef GL_APPLE_client_storage
-#define GL_APPLE_client_storage 1
-
-#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
-
-#define GLEW_APPLE_client_storage GLEW_GET_VAR(__GLEW_APPLE_client_storage)
-
-#endif /* GL_APPLE_client_storage */
-
-/* ------------------------- GL_APPLE_clip_distance ------------------------ */
-
-#ifndef GL_APPLE_clip_distance
-#define GL_APPLE_clip_distance 1
-
-#define GL_MAX_CLIP_DISTANCES_APPLE 0x0D32
-#define GL_CLIP_DISTANCE0_APPLE 0x3000
-#define GL_CLIP_DISTANCE1_APPLE 0x3001
-#define GL_CLIP_DISTANCE2_APPLE 0x3002
-#define GL_CLIP_DISTANCE3_APPLE 0x3003
-#define GL_CLIP_DISTANCE4_APPLE 0x3004
-#define GL_CLIP_DISTANCE5_APPLE 0x3005
-#define GL_CLIP_DISTANCE6_APPLE 0x3006
-#define GL_CLIP_DISTANCE7_APPLE 0x3007
-
-#define GLEW_APPLE_clip_distance GLEW_GET_VAR(__GLEW_APPLE_clip_distance)
-
-#endif /* GL_APPLE_clip_distance */
-
-/* ------------------- GL_APPLE_color_buffer_packed_float ------------------ */
-
-#ifndef GL_APPLE_color_buffer_packed_float
-#define GL_APPLE_color_buffer_packed_float 1
-
-#define GLEW_APPLE_color_buffer_packed_float GLEW_GET_VAR(__GLEW_APPLE_color_buffer_packed_float)
-
-#endif /* GL_APPLE_color_buffer_packed_float */
-
-/* ---------------------- GL_APPLE_copy_texture_levels --------------------- */
-
-#ifndef GL_APPLE_copy_texture_levels
-#define GL_APPLE_copy_texture_levels 1
-
-typedef void (GLAPIENTRY * PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
-
-#define glCopyTextureLevelsAPPLE GLEW_GET_FUN(__glewCopyTextureLevelsAPPLE)
-
-#define GLEW_APPLE_copy_texture_levels GLEW_GET_VAR(__GLEW_APPLE_copy_texture_levels)
-
-#endif /* GL_APPLE_copy_texture_levels */
-
-/* ------------------------- GL_APPLE_element_array ------------------------ */
-
-#ifndef GL_APPLE_element_array
-#define GL_APPLE_element_array 1
-
-#define GL_ELEMENT_ARRAY_APPLE 0x8A0C
-#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D
-#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E
-
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count);
-typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
-typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount);
-
-#define glDrawElementArrayAPPLE GLEW_GET_FUN(__glewDrawElementArrayAPPLE)
-#define glDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewDrawRangeElementArrayAPPLE)
-#define glElementPointerAPPLE GLEW_GET_FUN(__glewElementPointerAPPLE)
-#define glMultiDrawElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawElementArrayAPPLE)
-#define glMultiDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawRangeElementArrayAPPLE)
-
-#define GLEW_APPLE_element_array GLEW_GET_VAR(__GLEW_APPLE_element_array)
-
-#endif /* GL_APPLE_element_array */
-
-/* ----------------------------- GL_APPLE_fence ---------------------------- */
-
-#ifndef GL_APPLE_fence
-#define GL_APPLE_fence 1
-
-#define GL_DRAW_PIXELS_APPLE 0x8A0A
-#define GL_FENCE_APPLE 0x8A0B
-
-typedef void (GLAPIENTRY * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint* fences);
-typedef void (GLAPIENTRY * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence);
-typedef void (GLAPIENTRY * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name);
-typedef void (GLAPIENTRY * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint* fences);
-typedef GLboolean (GLAPIENTRY * PFNGLISFENCEAPPLEPROC) (GLuint fence);
-typedef void (GLAPIENTRY * PFNGLSETFENCEAPPLEPROC) (GLuint fence);
-typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCEAPPLEPROC) (GLuint fence);
-typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name);
-
-#define glDeleteFencesAPPLE GLEW_GET_FUN(__glewDeleteFencesAPPLE)
-#define glFinishFenceAPPLE GLEW_GET_FUN(__glewFinishFenceAPPLE)
-#define glFinishObjectAPPLE GLEW_GET_FUN(__glewFinishObjectAPPLE)
-#define glGenFencesAPPLE GLEW_GET_FUN(__glewGenFencesAPPLE)
-#define glIsFenceAPPLE GLEW_GET_FUN(__glewIsFenceAPPLE)
-#define glSetFenceAPPLE GLEW_GET_FUN(__glewSetFenceAPPLE)
-#define glTestFenceAPPLE GLEW_GET_FUN(__glewTestFenceAPPLE)
-#define glTestObjectAPPLE GLEW_GET_FUN(__glewTestObjectAPPLE)
-
-#define GLEW_APPLE_fence GLEW_GET_VAR(__GLEW_APPLE_fence)
-
-#endif /* GL_APPLE_fence */
-
-/* ------------------------- GL_APPLE_float_pixels ------------------------- */
-
-#ifndef GL_APPLE_float_pixels
-#define GL_APPLE_float_pixels 1
-
-#define GL_HALF_APPLE 0x140B
-#define GL_RGBA_FLOAT32_APPLE 0x8814
-#define GL_RGB_FLOAT32_APPLE 0x8815
-#define GL_ALPHA_FLOAT32_APPLE 0x8816
-#define GL_INTENSITY_FLOAT32_APPLE 0x8817
-#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
-#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
-#define GL_RGBA_FLOAT16_APPLE 0x881A
-#define GL_RGB_FLOAT16_APPLE 0x881B
-#define GL_ALPHA_FLOAT16_APPLE 0x881C
-#define GL_INTENSITY_FLOAT16_APPLE 0x881D
-#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
-#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
-#define GL_COLOR_FLOAT_APPLE 0x8A0F
-
-#define GLEW_APPLE_float_pixels GLEW_GET_VAR(__GLEW_APPLE_float_pixels)
-
-#endif /* GL_APPLE_float_pixels */
-
-/* ---------------------- GL_APPLE_flush_buffer_range ---------------------- */
-
-#ifndef GL_APPLE_flush_buffer_range
-#define GL_APPLE_flush_buffer_range 1
-
-#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
-#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13
-
-typedef void (GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size);
-
-#define glBufferParameteriAPPLE GLEW_GET_FUN(__glewBufferParameteriAPPLE)
-#define glFlushMappedBufferRangeAPPLE GLEW_GET_FUN(__glewFlushMappedBufferRangeAPPLE)
-
-#define GLEW_APPLE_flush_buffer_range GLEW_GET_VAR(__GLEW_APPLE_flush_buffer_range)
-
-#endif /* GL_APPLE_flush_buffer_range */
-
-/* -------------------- GL_APPLE_framebuffer_multisample ------------------- */
-
-#ifndef GL_APPLE_framebuffer_multisample
-#define GL_APPLE_framebuffer_multisample 1
-
-#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6
-#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8
-#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9
-#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA
-#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56
-#define GL_MAX_SAMPLES_APPLE 0x8D57
-
-typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
-
-#define glRenderbufferStorageMultisampleAPPLE GLEW_GET_FUN(__glewRenderbufferStorageMultisampleAPPLE)
-#define glResolveMultisampleFramebufferAPPLE GLEW_GET_FUN(__glewResolveMultisampleFramebufferAPPLE)
-
-#define GLEW_APPLE_framebuffer_multisample GLEW_GET_VAR(__GLEW_APPLE_framebuffer_multisample)
-
-#endif /* GL_APPLE_framebuffer_multisample */
-
-/* ----------------------- GL_APPLE_object_purgeable ----------------------- */
-
-#ifndef GL_APPLE_object_purgeable
-#define GL_APPLE_object_purgeable 1
-
-#define GL_BUFFER_OBJECT_APPLE 0x85B3
-#define GL_RELEASED_APPLE 0x8A19
-#define GL_VOLATILE_APPLE 0x8A1A
-#define GL_RETAINED_APPLE 0x8A1B
-#define GL_UNDEFINED_APPLE 0x8A1C
-#define GL_PURGEABLE_APPLE 0x8A1D
-
-typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params);
-typedef GLenum (GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
-typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
-
-#define glGetObjectParameterivAPPLE GLEW_GET_FUN(__glewGetObjectParameterivAPPLE)
-#define glObjectPurgeableAPPLE GLEW_GET_FUN(__glewObjectPurgeableAPPLE)
-#define glObjectUnpurgeableAPPLE GLEW_GET_FUN(__glewObjectUnpurgeableAPPLE)
-
-#define GLEW_APPLE_object_purgeable GLEW_GET_VAR(__GLEW_APPLE_object_purgeable)
-
-#endif /* GL_APPLE_object_purgeable */
-
-/* ------------------------- GL_APPLE_pixel_buffer ------------------------- */
-
-#ifndef GL_APPLE_pixel_buffer
-#define GL_APPLE_pixel_buffer 1
-
-#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10
-
-#define GLEW_APPLE_pixel_buffer GLEW_GET_VAR(__GLEW_APPLE_pixel_buffer)
-
-#endif /* GL_APPLE_pixel_buffer */
-
-/* ---------------------------- GL_APPLE_rgb_422 --------------------------- */
-
-#ifndef GL_APPLE_rgb_422
-#define GL_APPLE_rgb_422 1
-
-#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
-#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
-#define GL_RGB_422_APPLE 0x8A1F
-#define GL_RGB_RAW_422_APPLE 0x8A51
-
-#define GLEW_APPLE_rgb_422 GLEW_GET_VAR(__GLEW_APPLE_rgb_422)
-
-#endif /* GL_APPLE_rgb_422 */
-
-/* --------------------------- GL_APPLE_row_bytes -------------------------- */
-
-#ifndef GL_APPLE_row_bytes
-#define GL_APPLE_row_bytes 1
-
-#define GL_PACK_ROW_BYTES_APPLE 0x8A15
-#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16
-
-#define GLEW_APPLE_row_bytes GLEW_GET_VAR(__GLEW_APPLE_row_bytes)
-
-#endif /* GL_APPLE_row_bytes */
-
-/* ------------------------ GL_APPLE_specular_vector ----------------------- */
-
-#ifndef GL_APPLE_specular_vector
-#define GL_APPLE_specular_vector 1
-
-#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
-
-#define GLEW_APPLE_specular_vector GLEW_GET_VAR(__GLEW_APPLE_specular_vector)
-
-#endif /* GL_APPLE_specular_vector */
-
-/* ----------------------------- GL_APPLE_sync ----------------------------- */
-
-#ifndef GL_APPLE_sync
-#define GL_APPLE_sync 1
-
-#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001
-#define GL_SYNC_OBJECT_APPLE 0x8A53
-#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111
-#define GL_OBJECT_TYPE_APPLE 0x9112
-#define GL_SYNC_CONDITION_APPLE 0x9113
-#define GL_SYNC_STATUS_APPLE 0x9114
-#define GL_SYNC_FLAGS_APPLE 0x9115
-#define GL_SYNC_FENCE_APPLE 0x9116
-#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117
-#define GL_UNSIGNALED_APPLE 0x9118
-#define GL_SIGNALED_APPLE 0x9119
-#define GL_ALREADY_SIGNALED_APPLE 0x911A
-#define GL_TIMEOUT_EXPIRED_APPLE 0x911B
-#define GL_CONDITION_SATISFIED_APPLE 0x911C
-#define GL_WAIT_FAILED_APPLE 0x911D
-#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull
-
-typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync GLsync, GLbitfield flags, GLuint64 timeout);
-typedef void (GLAPIENTRY * PFNGLDELETESYNCAPPLEPROC) (GLsync GLsync);
-typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags);
-typedef void (GLAPIENTRY * PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64* params);
-typedef void (GLAPIENTRY * PFNGLGETSYNCIVAPPLEPROC) (GLsync GLsync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values);
-typedef GLboolean (GLAPIENTRY * PFNGLISSYNCAPPLEPROC) (GLsync GLsync);
-typedef void (GLAPIENTRY * PFNGLWAITSYNCAPPLEPROC) (GLsync GLsync, GLbitfield flags, GLuint64 timeout);
-
-#define glClientWaitSyncAPPLE GLEW_GET_FUN(__glewClientWaitSyncAPPLE)
-#define glDeleteSyncAPPLE GLEW_GET_FUN(__glewDeleteSyncAPPLE)
-#define glFenceSyncAPPLE GLEW_GET_FUN(__glewFenceSyncAPPLE)
-#define glGetInteger64vAPPLE GLEW_GET_FUN(__glewGetInteger64vAPPLE)
-#define glGetSyncivAPPLE GLEW_GET_FUN(__glewGetSyncivAPPLE)
-#define glIsSyncAPPLE GLEW_GET_FUN(__glewIsSyncAPPLE)
-#define glWaitSyncAPPLE GLEW_GET_FUN(__glewWaitSyncAPPLE)
-
-#define GLEW_APPLE_sync GLEW_GET_VAR(__GLEW_APPLE_sync)
-
-#endif /* GL_APPLE_sync */
-
-/* -------------------- GL_APPLE_texture_2D_limited_npot ------------------- */
-
-#ifndef GL_APPLE_texture_2D_limited_npot
-#define GL_APPLE_texture_2D_limited_npot 1
-
-#define GLEW_APPLE_texture_2D_limited_npot GLEW_GET_VAR(__GLEW_APPLE_texture_2D_limited_npot)
-
-#endif /* GL_APPLE_texture_2D_limited_npot */
-
-/* -------------------- GL_APPLE_texture_format_BGRA8888 ------------------- */
-
-#ifndef GL_APPLE_texture_format_BGRA8888
-#define GL_APPLE_texture_format_BGRA8888 1
-
-#define GL_BGRA_EXT 0x80E1
-#define GL_BGRA8_EXT 0x93A1
-
-#define GLEW_APPLE_texture_format_BGRA8888 GLEW_GET_VAR(__GLEW_APPLE_texture_format_BGRA8888)
-
-#endif /* GL_APPLE_texture_format_BGRA8888 */
-
-/* ----------------------- GL_APPLE_texture_max_level ---------------------- */
-
-#ifndef GL_APPLE_texture_max_level
-#define GL_APPLE_texture_max_level 1
-
-#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D
-
-#define GLEW_APPLE_texture_max_level GLEW_GET_VAR(__GLEW_APPLE_texture_max_level)
-
-#endif /* GL_APPLE_texture_max_level */
-
-/* --------------------- GL_APPLE_texture_packed_float --------------------- */
-
-#ifndef GL_APPLE_texture_packed_float
-#define GL_APPLE_texture_packed_float 1
-
-#define GL_R11F_G11F_B10F_APPLE 0x8C3A
-#define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B
-#define GL_RGB9_E5_APPLE 0x8C3D
-#define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E
-
-#define GLEW_APPLE_texture_packed_float GLEW_GET_VAR(__GLEW_APPLE_texture_packed_float)
-
-#endif /* GL_APPLE_texture_packed_float */
-
-/* ------------------------- GL_APPLE_texture_range ------------------------ */
-
-#ifndef GL_APPLE_texture_range
-#define GL_APPLE_texture_range 1
-
-#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
-#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
-#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
-#define GL_STORAGE_PRIVATE_APPLE 0x85BD
-#define GL_STORAGE_CACHED_APPLE 0x85BE
-#define GL_STORAGE_SHARED_APPLE 0x85BF
-
-typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params);
-typedef void (GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, void *pointer);
-
-#define glGetTexParameterPointervAPPLE GLEW_GET_FUN(__glewGetTexParameterPointervAPPLE)
-#define glTextureRangeAPPLE GLEW_GET_FUN(__glewTextureRangeAPPLE)
-
-#define GLEW_APPLE_texture_range GLEW_GET_VAR(__GLEW_APPLE_texture_range)
-
-#endif /* GL_APPLE_texture_range */
-
-/* ------------------------ GL_APPLE_transform_hint ------------------------ */
-
-#ifndef GL_APPLE_transform_hint
-#define GL_APPLE_transform_hint 1
-
-#define GL_TRANSFORM_HINT_APPLE 0x85B1
-
-#define GLEW_APPLE_transform_hint GLEW_GET_VAR(__GLEW_APPLE_transform_hint)
-
-#endif /* GL_APPLE_transform_hint */
-
-/* ---------------------- GL_APPLE_vertex_array_object --------------------- */
-
-#ifndef GL_APPLE_vertex_array_object
-#define GL_APPLE_vertex_array_object 1
-
-#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5
-
-typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
-typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays);
-typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays);
-typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array);
-
-#define glBindVertexArrayAPPLE GLEW_GET_FUN(__glewBindVertexArrayAPPLE)
-#define glDeleteVertexArraysAPPLE GLEW_GET_FUN(__glewDeleteVertexArraysAPPLE)
-#define glGenVertexArraysAPPLE GLEW_GET_FUN(__glewGenVertexArraysAPPLE)
-#define glIsVertexArrayAPPLE GLEW_GET_FUN(__glewIsVertexArrayAPPLE)
-
-#define GLEW_APPLE_vertex_array_object GLEW_GET_VAR(__GLEW_APPLE_vertex_array_object)
-
-#endif /* GL_APPLE_vertex_array_object */
-
-/* ---------------------- GL_APPLE_vertex_array_range ---------------------- */
-
-#ifndef GL_APPLE_vertex_array_range
-#define GL_APPLE_vertex_array_range 1
-
-#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D
-#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
-#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
-#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520
-#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
-#define GL_STORAGE_CLIENT_APPLE 0x85B4
-#define GL_STORAGE_CACHED_APPLE 0x85BE
-#define GL_STORAGE_SHARED_APPLE 0x85BF
-
-typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer);
-
-#define glFlushVertexArrayRangeAPPLE GLEW_GET_FUN(__glewFlushVertexArrayRangeAPPLE)
-#define glVertexArrayParameteriAPPLE GLEW_GET_FUN(__glewVertexArrayParameteriAPPLE)
-#define glVertexArrayRangeAPPLE GLEW_GET_FUN(__glewVertexArrayRangeAPPLE)
-
-#define GLEW_APPLE_vertex_array_range GLEW_GET_VAR(__GLEW_APPLE_vertex_array_range)
-
-#endif /* GL_APPLE_vertex_array_range */
-
-/* ------------------- GL_APPLE_vertex_program_evaluators ------------------ */
-
-#ifndef GL_APPLE_vertex_program_evaluators
-#define GL_APPLE_vertex_program_evaluators 1
-
-#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00
-#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01
-#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02
-#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03
-#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04
-#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05
-#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06
-#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07
-#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08
-#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09
-
-typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
-typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
-typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname);
-typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
-typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
-typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
-typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
-
-#define glDisableVertexAttribAPPLE GLEW_GET_FUN(__glewDisableVertexAttribAPPLE)
-#define glEnableVertexAttribAPPLE GLEW_GET_FUN(__glewEnableVertexAttribAPPLE)
-#define glIsVertexAttribEnabledAPPLE GLEW_GET_FUN(__glewIsVertexAttribEnabledAPPLE)
-#define glMapVertexAttrib1dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1dAPPLE)
-#define glMapVertexAttrib1fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1fAPPLE)
-#define glMapVertexAttrib2dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2dAPPLE)
-#define glMapVertexAttrib2fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2fAPPLE)
-
-#define GLEW_APPLE_vertex_program_evaluators GLEW_GET_VAR(__GLEW_APPLE_vertex_program_evaluators)
-
-#endif /* GL_APPLE_vertex_program_evaluators */
-
-/* --------------------------- GL_APPLE_ycbcr_422 -------------------------- */
-
-#ifndef GL_APPLE_ycbcr_422
-#define GL_APPLE_ycbcr_422 1
-
-#define GL_YCBCR_422_APPLE 0x85B9
-
-#define GLEW_APPLE_ycbcr_422 GLEW_GET_VAR(__GLEW_APPLE_ycbcr_422)
-
-#endif /* GL_APPLE_ycbcr_422 */
-
-/* ------------------------ GL_ARB_ES2_compatibility ----------------------- */
-
-#ifndef GL_ARB_ES2_compatibility
-#define GL_ARB_ES2_compatibility 1
-
-#define GL_FIXED 0x140C
-#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
-#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
-#define GL_RGB565 0x8D62
-#define GL_LOW_FLOAT 0x8DF0
-#define GL_MEDIUM_FLOAT 0x8DF1
-#define GL_HIGH_FLOAT 0x8DF2
-#define GL_LOW_INT 0x8DF3
-#define GL_MEDIUM_INT 0x8DF4
-#define GL_HIGH_INT 0x8DF5
-#define GL_SHADER_BINARY_FORMATS 0x8DF8
-#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
-#define GL_SHADER_COMPILER 0x8DFA
-#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
-#define GL_MAX_VARYING_VECTORS 0x8DFC
-#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
-
-typedef int GLfixed;
-
-typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf d);
-typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f);
-typedef void (GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision);
-typedef void (GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC) (void);
-typedef void (GLAPIENTRY * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const void*binary, GLsizei length);
-
-#define glClearDepthf GLEW_GET_FUN(__glewClearDepthf)
-#define glDepthRangef GLEW_GET_FUN(__glewDepthRangef)
-#define glGetShaderPrecisionFormat GLEW_GET_FUN(__glewGetShaderPrecisionFormat)
-#define glReleaseShaderCompiler GLEW_GET_FUN(__glewReleaseShaderCompiler)
-#define glShaderBinary GLEW_GET_FUN(__glewShaderBinary)
-
-#define GLEW_ARB_ES2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES2_compatibility)
-
-#endif /* GL_ARB_ES2_compatibility */
-
-/* ----------------------- GL_ARB_ES3_1_compatibility ---------------------- */
-
-#ifndef GL_ARB_ES3_1_compatibility
-#define GL_ARB_ES3_1_compatibility 1
-
-typedef void (GLAPIENTRY * PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers);
-
-#define glMemoryBarrierByRegion GLEW_GET_FUN(__glewMemoryBarrierByRegion)
-
-#define GLEW_ARB_ES3_1_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_1_compatibility)
-
-#endif /* GL_ARB_ES3_1_compatibility */
-
-/* ----------------------- GL_ARB_ES3_2_compatibility ---------------------- */
-
-#ifndef GL_ARB_ES3_2_compatibility
-#define GL_ARB_ES3_2_compatibility 1
-
-#define GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE
-#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381
-#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382
-
-typedef void (GLAPIENTRY * PFNGLPRIMITIVEBOUNDINGBOXARBPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
-
-#define glPrimitiveBoundingBoxARB GLEW_GET_FUN(__glewPrimitiveBoundingBoxARB)
-
-#define GLEW_ARB_ES3_2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_2_compatibility)
-
-#endif /* GL_ARB_ES3_2_compatibility */
-
-/* ------------------------ GL_ARB_ES3_compatibility ----------------------- */
-
-#ifndef GL_ARB_ES3_compatibility
-#define GL_ARB_ES3_compatibility 1
-
-#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
-#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
-#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
-#define GL_MAX_ELEMENT_INDEX 0x8D6B
-#define GL_COMPRESSED_R11_EAC 0x9270
-#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
-#define GL_COMPRESSED_RG11_EAC 0x9272
-#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
-#define GL_COMPRESSED_RGB8_ETC2 0x9274
-#define GL_COMPRESSED_SRGB8_ETC2 0x9275
-#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
-#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
-#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
-#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
-
-#define GLEW_ARB_ES3_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_compatibility)
-
-#endif /* GL_ARB_ES3_compatibility */
-
-/* ------------------------ GL_ARB_arrays_of_arrays ------------------------ */
-
-#ifndef GL_ARB_arrays_of_arrays
-#define GL_ARB_arrays_of_arrays 1
-
-#define GLEW_ARB_arrays_of_arrays GLEW_GET_VAR(__GLEW_ARB_arrays_of_arrays)
-
-#endif /* GL_ARB_arrays_of_arrays */
-
-/* -------------------------- GL_ARB_base_instance ------------------------- */
-
-#ifndef GL_ARB_base_instance
-#define GL_ARB_base_instance 1
-
-typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance);
-
-#define glDrawArraysInstancedBaseInstance GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstance)
-#define glDrawElementsInstancedBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstance)
-#define glDrawElementsInstancedBaseVertexBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstance)
-
-#define GLEW_ARB_base_instance GLEW_GET_VAR(__GLEW_ARB_base_instance)
-
-#endif /* GL_ARB_base_instance */
-
-/* ------------------------ GL_ARB_bindless_texture ------------------------ */
-
-#ifndef GL_ARB_bindless_texture
-#define GL_ARB_bindless_texture 1
-
-#define GL_UNSIGNED_INT64_ARB 0x140F
-
-typedef GLuint64 (GLAPIENTRY * PFNGLGETIMAGEHANDLEARBPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
-typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLEARBPROC) (GLuint texture);
-typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLEARBPROC) (GLuint texture, GLuint sampler);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VARBPROC) (GLuint index, GLenum pname, GLuint64EXT* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle);
-typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle);
-typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) (GLuint64 handle);
-typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle, GLenum access);
-typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) (GLuint64 handle);
-typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) (GLuint program, GLint location, GLuint64 value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values);
-typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64ARBPROC) (GLint location, GLuint64 value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64ARBPROC) (GLuint index, GLuint64EXT x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VARBPROC) (GLuint index, const GLuint64EXT* v);
-
-#define glGetImageHandleARB GLEW_GET_FUN(__glewGetImageHandleARB)
-#define glGetTextureHandleARB GLEW_GET_FUN(__glewGetTextureHandleARB)
-#define glGetTextureSamplerHandleARB GLEW_GET_FUN(__glewGetTextureSamplerHandleARB)
-#define glGetVertexAttribLui64vARB GLEW_GET_FUN(__glewGetVertexAttribLui64vARB)
-#define glIsImageHandleResidentARB GLEW_GET_FUN(__glewIsImageHandleResidentARB)
-#define glIsTextureHandleResidentARB GLEW_GET_FUN(__glewIsTextureHandleResidentARB)
-#define glMakeImageHandleNonResidentARB GLEW_GET_FUN(__glewMakeImageHandleNonResidentARB)
-#define glMakeImageHandleResidentARB GLEW_GET_FUN(__glewMakeImageHandleResidentARB)
-#define glMakeTextureHandleNonResidentARB GLEW_GET_FUN(__glewMakeTextureHandleNonResidentARB)
-#define glMakeTextureHandleResidentARB GLEW_GET_FUN(__glewMakeTextureHandleResidentARB)
-#define glProgramUniformHandleui64ARB GLEW_GET_FUN(__glewProgramUniformHandleui64ARB)
-#define glProgramUniformHandleui64vARB GLEW_GET_FUN(__glewProgramUniformHandleui64vARB)
-#define glUniformHandleui64ARB GLEW_GET_FUN(__glewUniformHandleui64ARB)
-#define glUniformHandleui64vARB GLEW_GET_FUN(__glewUniformHandleui64vARB)
-#define glVertexAttribL1ui64ARB GLEW_GET_FUN(__glewVertexAttribL1ui64ARB)
-#define glVertexAttribL1ui64vARB GLEW_GET_FUN(__glewVertexAttribL1ui64vARB)
-
-#define GLEW_ARB_bindless_texture GLEW_GET_VAR(__GLEW_ARB_bindless_texture)
-
-#endif /* GL_ARB_bindless_texture */
-
-/* ----------------------- GL_ARB_blend_func_extended ---------------------- */
-
-#ifndef GL_ARB_blend_func_extended
-#define GL_ARB_blend_func_extended 1
-
-#define GL_SRC1_COLOR 0x88F9
-#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
-#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
-#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
-
-typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
-typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar * name);
-
-#define glBindFragDataLocationIndexed GLEW_GET_FUN(__glewBindFragDataLocationIndexed)
-#define glGetFragDataIndex GLEW_GET_FUN(__glewGetFragDataIndex)
-
-#define GLEW_ARB_blend_func_extended GLEW_GET_VAR(__GLEW_ARB_blend_func_extended)
-
-#endif /* GL_ARB_blend_func_extended */
-
-/* ------------------------- GL_ARB_buffer_storage ------------------------- */
-
-#ifndef GL_ARB_buffer_storage
-#define GL_ARB_buffer_storage 1
-
-#define GL_MAP_READ_BIT 0x0001
-#define GL_MAP_WRITE_BIT 0x0002
-#define GL_MAP_PERSISTENT_BIT 0x00000040
-#define GL_MAP_COHERENT_BIT 0x00000080
-#define GL_DYNAMIC_STORAGE_BIT 0x0100
-#define GL_CLIENT_STORAGE_BIT 0x0200
-#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
-#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
-#define GL_BUFFER_STORAGE_FLAGS 0x8220
-
-typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
-
-#define glBufferStorage GLEW_GET_FUN(__glewBufferStorage)
-
-#define GLEW_ARB_buffer_storage GLEW_GET_VAR(__GLEW_ARB_buffer_storage)
-
-#endif /* GL_ARB_buffer_storage */
-
-/* ---------------------------- GL_ARB_cl_event ---------------------------- */
-
-#ifndef GL_ARB_cl_event
-#define GL_ARB_cl_event 1
-
-#define GL_SYNC_CL_EVENT_ARB 0x8240
-#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241
-
-typedef struct _cl_context *cl_context;
-typedef struct _cl_event *cl_event;
-
-typedef GLsync (GLAPIENTRY * PFNGLCREATESYNCFROMCLEVENTARBPROC) (cl_context context, cl_event event, GLbitfield flags);
-
-#define glCreateSyncFromCLeventARB GLEW_GET_FUN(__glewCreateSyncFromCLeventARB)
-
-#define GLEW_ARB_cl_event GLEW_GET_VAR(__GLEW_ARB_cl_event)
-
-#endif /* GL_ARB_cl_event */
-
-/* ----------------------- GL_ARB_clear_buffer_object ---------------------- */
-
-#ifndef GL_ARB_clear_buffer_object
-#define GL_ARB_clear_buffer_object 1
-
-typedef void (GLAPIENTRY * PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
-typedef void (GLAPIENTRY * PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
-typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
-typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
-
-#define glClearBufferData GLEW_GET_FUN(__glewClearBufferData)
-#define glClearBufferSubData GLEW_GET_FUN(__glewClearBufferSubData)
-#define glClearNamedBufferDataEXT GLEW_GET_FUN(__glewClearNamedBufferDataEXT)
-#define glClearNamedBufferSubDataEXT GLEW_GET_FUN(__glewClearNamedBufferSubDataEXT)
-
-#define GLEW_ARB_clear_buffer_object GLEW_GET_VAR(__GLEW_ARB_clear_buffer_object)
-
-#endif /* GL_ARB_clear_buffer_object */
-
-/* -------------------------- GL_ARB_clear_texture ------------------------- */
-
-#ifndef GL_ARB_clear_texture
-#define GL_ARB_clear_texture 1
-
-#define GL_CLEAR_TEXTURE 0x9365
-
-typedef void (GLAPIENTRY * PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
-typedef void (GLAPIENTRY * PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
-
-#define glClearTexImage GLEW_GET_FUN(__glewClearTexImage)
-#define glClearTexSubImage GLEW_GET_FUN(__glewClearTexSubImage)
-
-#define GLEW_ARB_clear_texture GLEW_GET_VAR(__GLEW_ARB_clear_texture)
-
-#endif /* GL_ARB_clear_texture */
-
-/* -------------------------- GL_ARB_clip_control -------------------------- */
-
-#ifndef GL_ARB_clip_control
-#define GL_ARB_clip_control 1
-
-#define GL_LOWER_LEFT 0x8CA1
-#define GL_UPPER_LEFT 0x8CA2
-#define GL_CLIP_ORIGIN 0x935C
-#define GL_CLIP_DEPTH_MODE 0x935D
-#define GL_NEGATIVE_ONE_TO_ONE 0x935E
-#define GL_ZERO_TO_ONE 0x935F
-
-typedef void (GLAPIENTRY * PFNGLCLIPCONTROLPROC) (GLenum origin, GLenum depth);
-
-#define glClipControl GLEW_GET_FUN(__glewClipControl)
-
-#define GLEW_ARB_clip_control GLEW_GET_VAR(__GLEW_ARB_clip_control)
-
-#endif /* GL_ARB_clip_control */
-
-/* ----------------------- GL_ARB_color_buffer_float ----------------------- */
-
-#ifndef GL_ARB_color_buffer_float
-#define GL_ARB_color_buffer_float 1
-
-#define GL_RGBA_FLOAT_MODE_ARB 0x8820
-#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A
-#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B
-#define GL_CLAMP_READ_COLOR_ARB 0x891C
-#define GL_FIXED_ONLY_ARB 0x891D
-
-typedef void (GLAPIENTRY * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp);
-
-#define glClampColorARB GLEW_GET_FUN(__glewClampColorARB)
-
-#define GLEW_ARB_color_buffer_float GLEW_GET_VAR(__GLEW_ARB_color_buffer_float)
-
-#endif /* GL_ARB_color_buffer_float */
-
-/* -------------------------- GL_ARB_compatibility ------------------------- */
-
-#ifndef GL_ARB_compatibility
-#define GL_ARB_compatibility 1
-
-#define GLEW_ARB_compatibility GLEW_GET_VAR(__GLEW_ARB_compatibility)
-
-#endif /* GL_ARB_compatibility */
-
-/* ---------------- GL_ARB_compressed_texture_pixel_storage ---------------- */
-
-#ifndef GL_ARB_compressed_texture_pixel_storage
-#define GL_ARB_compressed_texture_pixel_storage 1
-
-#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
-#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
-#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
-#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A
-#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B
-#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C
-#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D
-#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E
-
-#define GLEW_ARB_compressed_texture_pixel_storage GLEW_GET_VAR(__GLEW_ARB_compressed_texture_pixel_storage)
-
-#endif /* GL_ARB_compressed_texture_pixel_storage */
-
-/* ------------------------- GL_ARB_compute_shader ------------------------- */
-
-#ifndef GL_ARB_compute_shader
-#define GL_ARB_compute_shader 1
-
-#define GL_COMPUTE_SHADER_BIT 0x00000020
-#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262
-#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263
-#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264
-#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265
-#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266
-#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267
-#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC
-#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED
-#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE
-#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF
-#define GL_COMPUTE_SHADER 0x91B9
-#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB
-#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC
-#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD
-#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE
-#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF
-
-typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
-typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect);
-
-#define glDispatchCompute GLEW_GET_FUN(__glewDispatchCompute)
-#define glDispatchComputeIndirect GLEW_GET_FUN(__glewDispatchComputeIndirect)
-
-#define GLEW_ARB_compute_shader GLEW_GET_VAR(__GLEW_ARB_compute_shader)
-
-#endif /* GL_ARB_compute_shader */
-
-/* ------------------- GL_ARB_compute_variable_group_size ------------------ */
-
-#ifndef GL_ARB_compute_variable_group_size
-#define GL_ARB_compute_variable_group_size 1
-
-#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB
-#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF
-#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344
-#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345
-
-typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
-
-#define glDispatchComputeGroupSizeARB GLEW_GET_FUN(__glewDispatchComputeGroupSizeARB)
-
-#define GLEW_ARB_compute_variable_group_size GLEW_GET_VAR(__GLEW_ARB_compute_variable_group_size)
-
-#endif /* GL_ARB_compute_variable_group_size */
-
-/* ------------------- GL_ARB_conditional_render_inverted ------------------ */
-
-#ifndef GL_ARB_conditional_render_inverted
-#define GL_ARB_conditional_render_inverted 1
-
-#define GL_QUERY_WAIT_INVERTED 0x8E17
-#define GL_QUERY_NO_WAIT_INVERTED 0x8E18
-#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19
-#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A
-
-#define GLEW_ARB_conditional_render_inverted GLEW_GET_VAR(__GLEW_ARB_conditional_render_inverted)
-
-#endif /* GL_ARB_conditional_render_inverted */
-
-/* ----------------------- GL_ARB_conservative_depth ----------------------- */
-
-#ifndef GL_ARB_conservative_depth
-#define GL_ARB_conservative_depth 1
-
-#define GLEW_ARB_conservative_depth GLEW_GET_VAR(__GLEW_ARB_conservative_depth)
-
-#endif /* GL_ARB_conservative_depth */
-
-/* --------------------------- GL_ARB_copy_buffer -------------------------- */
-
-#ifndef GL_ARB_copy_buffer
-#define GL_ARB_copy_buffer 1
-
-#define GL_COPY_READ_BUFFER 0x8F36
-#define GL_COPY_WRITE_BUFFER 0x8F37
-
-typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);
-
-#define glCopyBufferSubData GLEW_GET_FUN(__glewCopyBufferSubData)
-
-#define GLEW_ARB_copy_buffer GLEW_GET_VAR(__GLEW_ARB_copy_buffer)
-
-#endif /* GL_ARB_copy_buffer */
-
-/* --------------------------- GL_ARB_copy_image --------------------------- */
-
-#ifndef GL_ARB_copy_image
-#define GL_ARB_copy_image 1
-
-typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
-
-#define glCopyImageSubData GLEW_GET_FUN(__glewCopyImageSubData)
-
-#define GLEW_ARB_copy_image GLEW_GET_VAR(__GLEW_ARB_copy_image)
-
-#endif /* GL_ARB_copy_image */
-
-/* -------------------------- GL_ARB_cull_distance ------------------------- */
-
-#ifndef GL_ARB_cull_distance
-#define GL_ARB_cull_distance 1
-
-#define GL_MAX_CULL_DISTANCES 0x82F9
-#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA
-
-#define GLEW_ARB_cull_distance GLEW_GET_VAR(__GLEW_ARB_cull_distance)
-
-#endif /* GL_ARB_cull_distance */
-
-/* -------------------------- GL_ARB_debug_output -------------------------- */
-
-#ifndef GL_ARB_debug_output
-#define GL_ARB_debug_output 1
-
-#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
-#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
-#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
-#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
-#define GL_DEBUG_SOURCE_API_ARB 0x8246
-#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
-#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
-#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
-#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
-#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
-#define GL_DEBUG_TYPE_ERROR_ARB 0x824C
-#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
-#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
-#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
-#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
-#define GL_DEBUG_TYPE_OTHER_ARB 0x8251
-#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
-#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
-#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
-#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
-#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
-#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
-
-typedef void (GLAPIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam);
-
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam);
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
-typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
-
-#define glDebugMessageCallbackARB GLEW_GET_FUN(__glewDebugMessageCallbackARB)
-#define glDebugMessageControlARB GLEW_GET_FUN(__glewDebugMessageControlARB)
-#define glDebugMessageInsertARB GLEW_GET_FUN(__glewDebugMessageInsertARB)
-#define glGetDebugMessageLogARB GLEW_GET_FUN(__glewGetDebugMessageLogARB)
-
-#define GLEW_ARB_debug_output GLEW_GET_VAR(__GLEW_ARB_debug_output)
-
-#endif /* GL_ARB_debug_output */
-
-/* ----------------------- GL_ARB_depth_buffer_float ----------------------- */
-
-#ifndef GL_ARB_depth_buffer_float
-#define GL_ARB_depth_buffer_float 1
-
-#define GL_DEPTH_COMPONENT32F 0x8CAC
-#define GL_DEPTH32F_STENCIL8 0x8CAD
-#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
-
-#define GLEW_ARB_depth_buffer_float GLEW_GET_VAR(__GLEW_ARB_depth_buffer_float)
-
-#endif /* GL_ARB_depth_buffer_float */
-
-/* --------------------------- GL_ARB_depth_clamp -------------------------- */
-
-#ifndef GL_ARB_depth_clamp
-#define GL_ARB_depth_clamp 1
-
-#define GL_DEPTH_CLAMP 0x864F
-
-#define GLEW_ARB_depth_clamp GLEW_GET_VAR(__GLEW_ARB_depth_clamp)
-
-#endif /* GL_ARB_depth_clamp */
-
-/* -------------------------- GL_ARB_depth_texture ------------------------- */
-
-#ifndef GL_ARB_depth_texture
-#define GL_ARB_depth_texture 1
-
-#define GL_DEPTH_COMPONENT16_ARB 0x81A5
-#define GL_DEPTH_COMPONENT24_ARB 0x81A6
-#define GL_DEPTH_COMPONENT32_ARB 0x81A7
-#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
-#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
-
-#define GLEW_ARB_depth_texture GLEW_GET_VAR(__GLEW_ARB_depth_texture)
-
-#endif /* GL_ARB_depth_texture */
-
-/* ----------------------- GL_ARB_derivative_control ----------------------- */
-
-#ifndef GL_ARB_derivative_control
-#define GL_ARB_derivative_control 1
-
-#define GLEW_ARB_derivative_control GLEW_GET_VAR(__GLEW_ARB_derivative_control)
-
-#endif /* GL_ARB_derivative_control */
-
-/* ----------------------- GL_ARB_direct_state_access ---------------------- */
-
-#ifndef GL_ARB_direct_state_access
-#define GL_ARB_direct_state_access 1
-
-#define GL_TEXTURE_TARGET 0x1006
-#define GL_QUERY_TARGET 0x82EA
-
-typedef void (GLAPIENTRY * PFNGLBINDTEXTUREUNITPROC) (GLuint unit, GLuint texture);
-typedef void (GLAPIENTRY * PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target);
-typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
-typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
-typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
-typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint* buffers);
-typedef void (GLAPIENTRY * PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers);
-typedef void (GLAPIENTRY * PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines);
-typedef void (GLAPIENTRY * PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLCREATERENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers);
-typedef void (GLAPIENTRY * PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint* samplers);
-typedef void (GLAPIENTRY * PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint* textures);
-typedef void (GLAPIENTRY * PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLCREATEVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays);
-typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
-typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
-typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
-typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPPROC) (GLuint texture);
-typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLsizei bufSize, void *pixels);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void** params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint* param);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
-typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64* param);
-typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint* param);
-typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint* param);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint64* param);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXEDIVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYIVPROC) (GLuint vaobj, GLenum pname, GLint* param);
-typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments);
-typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access);
-typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
-typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
-typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
-typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) (GLuint framebuffer, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) (GLuint framebuffer, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
-typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, const GLuint* params);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFPROC) (GLuint texture, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, const GLfloat* param);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIPROC) (GLuint texture, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, const GLint* param);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
-typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
-typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBBINDINGPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBIFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBLFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDINGDIVISORPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYELEMENTBUFFERPROC) (GLuint vaobj, GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERSPROC) (GLuint vaobj, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides);
-
-#define glBindTextureUnit GLEW_GET_FUN(__glewBindTextureUnit)
-#define glBlitNamedFramebuffer GLEW_GET_FUN(__glewBlitNamedFramebuffer)
-#define glCheckNamedFramebufferStatus GLEW_GET_FUN(__glewCheckNamedFramebufferStatus)
-#define glClearNamedBufferData GLEW_GET_FUN(__glewClearNamedBufferData)
-#define glClearNamedBufferSubData GLEW_GET_FUN(__glewClearNamedBufferSubData)
-#define glClearNamedFramebufferfi GLEW_GET_FUN(__glewClearNamedFramebufferfi)
-#define glClearNamedFramebufferfv GLEW_GET_FUN(__glewClearNamedFramebufferfv)
-#define glClearNamedFramebufferiv GLEW_GET_FUN(__glewClearNamedFramebufferiv)
-#define glClearNamedFramebufferuiv GLEW_GET_FUN(__glewClearNamedFramebufferuiv)
-#define glCompressedTextureSubImage1D GLEW_GET_FUN(__glewCompressedTextureSubImage1D)
-#define glCompressedTextureSubImage2D GLEW_GET_FUN(__glewCompressedTextureSubImage2D)
-#define glCompressedTextureSubImage3D GLEW_GET_FUN(__glewCompressedTextureSubImage3D)
-#define glCopyNamedBufferSubData GLEW_GET_FUN(__glewCopyNamedBufferSubData)
-#define glCopyTextureSubImage1D GLEW_GET_FUN(__glewCopyTextureSubImage1D)
-#define glCopyTextureSubImage2D GLEW_GET_FUN(__glewCopyTextureSubImage2D)
-#define glCopyTextureSubImage3D GLEW_GET_FUN(__glewCopyTextureSubImage3D)
-#define glCreateBuffers GLEW_GET_FUN(__glewCreateBuffers)
-#define glCreateFramebuffers GLEW_GET_FUN(__glewCreateFramebuffers)
-#define glCreateProgramPipelines GLEW_GET_FUN(__glewCreateProgramPipelines)
-#define glCreateQueries GLEW_GET_FUN(__glewCreateQueries)
-#define glCreateRenderbuffers GLEW_GET_FUN(__glewCreateRenderbuffers)
-#define glCreateSamplers GLEW_GET_FUN(__glewCreateSamplers)
-#define glCreateTextures GLEW_GET_FUN(__glewCreateTextures)
-#define glCreateTransformFeedbacks GLEW_GET_FUN(__glewCreateTransformFeedbacks)
-#define glCreateVertexArrays GLEW_GET_FUN(__glewCreateVertexArrays)
-#define glDisableVertexArrayAttrib GLEW_GET_FUN(__glewDisableVertexArrayAttrib)
-#define glEnableVertexArrayAttrib GLEW_GET_FUN(__glewEnableVertexArrayAttrib)
-#define glFlushMappedNamedBufferRange GLEW_GET_FUN(__glewFlushMappedNamedBufferRange)
-#define glGenerateTextureMipmap GLEW_GET_FUN(__glewGenerateTextureMipmap)
-#define glGetCompressedTextureImage GLEW_GET_FUN(__glewGetCompressedTextureImage)
-#define glGetNamedBufferParameteri64v GLEW_GET_FUN(__glewGetNamedBufferParameteri64v)
-#define glGetNamedBufferParameteriv GLEW_GET_FUN(__glewGetNamedBufferParameteriv)
-#define glGetNamedBufferPointerv GLEW_GET_FUN(__glewGetNamedBufferPointerv)
-#define glGetNamedBufferSubData GLEW_GET_FUN(__glewGetNamedBufferSubData)
-#define glGetNamedFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameteriv)
-#define glGetNamedFramebufferParameteriv GLEW_GET_FUN(__glewGetNamedFramebufferParameteriv)
-#define glGetNamedRenderbufferParameteriv GLEW_GET_FUN(__glewGetNamedRenderbufferParameteriv)
-#define glGetQueryBufferObjecti64v GLEW_GET_FUN(__glewGetQueryBufferObjecti64v)
-#define glGetQueryBufferObjectiv GLEW_GET_FUN(__glewGetQueryBufferObjectiv)
-#define glGetQueryBufferObjectui64v GLEW_GET_FUN(__glewGetQueryBufferObjectui64v)
-#define glGetQueryBufferObjectuiv GLEW_GET_FUN(__glewGetQueryBufferObjectuiv)
-#define glGetTextureImage GLEW_GET_FUN(__glewGetTextureImage)
-#define glGetTextureLevelParameterfv GLEW_GET_FUN(__glewGetTextureLevelParameterfv)
-#define glGetTextureLevelParameteriv GLEW_GET_FUN(__glewGetTextureLevelParameteriv)
-#define glGetTextureParameterIiv GLEW_GET_FUN(__glewGetTextureParameterIiv)
-#define glGetTextureParameterIuiv GLEW_GET_FUN(__glewGetTextureParameterIuiv)
-#define glGetTextureParameterfv GLEW_GET_FUN(__glewGetTextureParameterfv)
-#define glGetTextureParameteriv GLEW_GET_FUN(__glewGetTextureParameteriv)
-#define glGetTransformFeedbacki64_v GLEW_GET_FUN(__glewGetTransformFeedbacki64_v)
-#define glGetTransformFeedbacki_v GLEW_GET_FUN(__glewGetTransformFeedbacki_v)
-#define glGetTransformFeedbackiv GLEW_GET_FUN(__glewGetTransformFeedbackiv)
-#define glGetVertexArrayIndexed64iv GLEW_GET_FUN(__glewGetVertexArrayIndexed64iv)
-#define glGetVertexArrayIndexediv GLEW_GET_FUN(__glewGetVertexArrayIndexediv)
-#define glGetVertexArrayiv GLEW_GET_FUN(__glewGetVertexArrayiv)
-#define glInvalidateNamedFramebufferData GLEW_GET_FUN(__glewInvalidateNamedFramebufferData)
-#define glInvalidateNamedFramebufferSubData GLEW_GET_FUN(__glewInvalidateNamedFramebufferSubData)
-#define glMapNamedBuffer GLEW_GET_FUN(__glewMapNamedBuffer)
-#define glMapNamedBufferRange GLEW_GET_FUN(__glewMapNamedBufferRange)
-#define glNamedBufferData GLEW_GET_FUN(__glewNamedBufferData)
-#define glNamedBufferStorage GLEW_GET_FUN(__glewNamedBufferStorage)
-#define glNamedBufferSubData GLEW_GET_FUN(__glewNamedBufferSubData)
-#define glNamedFramebufferDrawBuffer GLEW_GET_FUN(__glewNamedFramebufferDrawBuffer)
-#define glNamedFramebufferDrawBuffers GLEW_GET_FUN(__glewNamedFramebufferDrawBuffers)
-#define glNamedFramebufferParameteri GLEW_GET_FUN(__glewNamedFramebufferParameteri)
-#define glNamedFramebufferReadBuffer GLEW_GET_FUN(__glewNamedFramebufferReadBuffer)
-#define glNamedFramebufferRenderbuffer GLEW_GET_FUN(__glewNamedFramebufferRenderbuffer)
-#define glNamedFramebufferTexture GLEW_GET_FUN(__glewNamedFramebufferTexture)
-#define glNamedFramebufferTextureLayer GLEW_GET_FUN(__glewNamedFramebufferTextureLayer)
-#define glNamedRenderbufferStorage GLEW_GET_FUN(__glewNamedRenderbufferStorage)
-#define glNamedRenderbufferStorageMultisample GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisample)
-#define glTextureBuffer GLEW_GET_FUN(__glewTextureBuffer)
-#define glTextureBufferRange GLEW_GET_FUN(__glewTextureBufferRange)
-#define glTextureParameterIiv GLEW_GET_FUN(__glewTextureParameterIiv)
-#define glTextureParameterIuiv GLEW_GET_FUN(__glewTextureParameterIuiv)
-#define glTextureParameterf GLEW_GET_FUN(__glewTextureParameterf)
-#define glTextureParameterfv GLEW_GET_FUN(__glewTextureParameterfv)
-#define glTextureParameteri GLEW_GET_FUN(__glewTextureParameteri)
-#define glTextureParameteriv GLEW_GET_FUN(__glewTextureParameteriv)
-#define glTextureStorage1D GLEW_GET_FUN(__glewTextureStorage1D)
-#define glTextureStorage2D GLEW_GET_FUN(__glewTextureStorage2D)
-#define glTextureStorage2DMultisample GLEW_GET_FUN(__glewTextureStorage2DMultisample)
-#define glTextureStorage3D GLEW_GET_FUN(__glewTextureStorage3D)
-#define glTextureStorage3DMultisample GLEW_GET_FUN(__glewTextureStorage3DMultisample)
-#define glTextureSubImage1D GLEW_GET_FUN(__glewTextureSubImage1D)
-#define glTextureSubImage2D GLEW_GET_FUN(__glewTextureSubImage2D)
-#define glTextureSubImage3D GLEW_GET_FUN(__glewTextureSubImage3D)
-#define glTransformFeedbackBufferBase GLEW_GET_FUN(__glewTransformFeedbackBufferBase)
-#define glTransformFeedbackBufferRange GLEW_GET_FUN(__glewTransformFeedbackBufferRange)
-#define glUnmapNamedBuffer GLEW_GET_FUN(__glewUnmapNamedBuffer)
-#define glVertexArrayAttribBinding GLEW_GET_FUN(__glewVertexArrayAttribBinding)
-#define glVertexArrayAttribFormat GLEW_GET_FUN(__glewVertexArrayAttribFormat)
-#define glVertexArrayAttribIFormat GLEW_GET_FUN(__glewVertexArrayAttribIFormat)
-#define glVertexArrayAttribLFormat GLEW_GET_FUN(__glewVertexArrayAttribLFormat)
-#define glVertexArrayBindingDivisor GLEW_GET_FUN(__glewVertexArrayBindingDivisor)
-#define glVertexArrayElementBuffer GLEW_GET_FUN(__glewVertexArrayElementBuffer)
-#define glVertexArrayVertexBuffer GLEW_GET_FUN(__glewVertexArrayVertexBuffer)
-#define glVertexArrayVertexBuffers GLEW_GET_FUN(__glewVertexArrayVertexBuffers)
-
-#define GLEW_ARB_direct_state_access GLEW_GET_VAR(__GLEW_ARB_direct_state_access)
-
-#endif /* GL_ARB_direct_state_access */
-
-/* -------------------------- GL_ARB_draw_buffers -------------------------- */
-
-#ifndef GL_ARB_draw_buffers
-#define GL_ARB_draw_buffers 1
-
-#define GL_MAX_DRAW_BUFFERS_ARB 0x8824
-#define GL_DRAW_BUFFER0_ARB 0x8825
-#define GL_DRAW_BUFFER1_ARB 0x8826
-#define GL_DRAW_BUFFER2_ARB 0x8827
-#define GL_DRAW_BUFFER3_ARB 0x8828
-#define GL_DRAW_BUFFER4_ARB 0x8829
-#define GL_DRAW_BUFFER5_ARB 0x882A
-#define GL_DRAW_BUFFER6_ARB 0x882B
-#define GL_DRAW_BUFFER7_ARB 0x882C
-#define GL_DRAW_BUFFER8_ARB 0x882D
-#define GL_DRAW_BUFFER9_ARB 0x882E
-#define GL_DRAW_BUFFER10_ARB 0x882F
-#define GL_DRAW_BUFFER11_ARB 0x8830
-#define GL_DRAW_BUFFER12_ARB 0x8831
-#define GL_DRAW_BUFFER13_ARB 0x8832
-#define GL_DRAW_BUFFER14_ARB 0x8833
-#define GL_DRAW_BUFFER15_ARB 0x8834
-
-typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bufs);
-
-#define glDrawBuffersARB GLEW_GET_FUN(__glewDrawBuffersARB)
-
-#define GLEW_ARB_draw_buffers GLEW_GET_VAR(__GLEW_ARB_draw_buffers)
-
-#endif /* GL_ARB_draw_buffers */
-
-/* ----------------------- GL_ARB_draw_buffers_blend ----------------------- */
-
-#ifndef GL_ARB_draw_buffers_blend
-#define GL_ARB_draw_buffers_blend 1
-
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst);
-
-#define glBlendEquationSeparateiARB GLEW_GET_FUN(__glewBlendEquationSeparateiARB)
-#define glBlendEquationiARB GLEW_GET_FUN(__glewBlendEquationiARB)
-#define glBlendFuncSeparateiARB GLEW_GET_FUN(__glewBlendFuncSeparateiARB)
-#define glBlendFunciARB GLEW_GET_FUN(__glewBlendFunciARB)
-
-#define GLEW_ARB_draw_buffers_blend GLEW_GET_VAR(__GLEW_ARB_draw_buffers_blend)
-
-#endif /* GL_ARB_draw_buffers_blend */
-
-/* -------------------- GL_ARB_draw_elements_base_vertex ------------------- */
-
-#ifndef GL_ARB_draw_elements_base_vertex
-#define GL_ARB_draw_elements_base_vertex 1
-
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
-typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei* count, GLenum type, const void*const *indices, GLsizei drawcount, const GLint *basevertex);
-
-#define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex)
-#define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex)
-#define glDrawRangeElementsBaseVertex GLEW_GET_FUN(__glewDrawRangeElementsBaseVertex)
-#define glMultiDrawElementsBaseVertex GLEW_GET_FUN(__glewMultiDrawElementsBaseVertex)
-
-#define GLEW_ARB_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_ARB_draw_elements_base_vertex)
-
-#endif /* GL_ARB_draw_elements_base_vertex */
-
-/* -------------------------- GL_ARB_draw_indirect ------------------------- */
-
-#ifndef GL_ARB_draw_indirect
-#define GL_ARB_draw_indirect 1
-
-#define GL_DRAW_INDIRECT_BUFFER 0x8F3F
-#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43
-
-typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect);
-
-#define glDrawArraysIndirect GLEW_GET_FUN(__glewDrawArraysIndirect)
-#define glDrawElementsIndirect GLEW_GET_FUN(__glewDrawElementsIndirect)
-
-#define GLEW_ARB_draw_indirect GLEW_GET_VAR(__GLEW_ARB_draw_indirect)
-
-#endif /* GL_ARB_draw_indirect */
-
-/* ------------------------- GL_ARB_draw_instanced ------------------------- */
-
-#ifndef GL_ARB_draw_instanced
-#define GL_ARB_draw_instanced 1
-
-#define GLEW_ARB_draw_instanced GLEW_GET_VAR(__GLEW_ARB_draw_instanced)
-
-#endif /* GL_ARB_draw_instanced */
-
-/* ------------------------ GL_ARB_enhanced_layouts ------------------------ */
-
-#ifndef GL_ARB_enhanced_layouts
-#define GL_ARB_enhanced_layouts 1
-
-#define GL_LOCATION_COMPONENT 0x934A
-#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B
-#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C
-
-#define GLEW_ARB_enhanced_layouts GLEW_GET_VAR(__GLEW_ARB_enhanced_layouts)
-
-#endif /* GL_ARB_enhanced_layouts */
-
-/* -------------------- GL_ARB_explicit_attrib_location -------------------- */
-
-#ifndef GL_ARB_explicit_attrib_location
-#define GL_ARB_explicit_attrib_location 1
-
-#define GLEW_ARB_explicit_attrib_location GLEW_GET_VAR(__GLEW_ARB_explicit_attrib_location)
-
-#endif /* GL_ARB_explicit_attrib_location */
-
-/* -------------------- GL_ARB_explicit_uniform_location ------------------- */
-
-#ifndef GL_ARB_explicit_uniform_location
-#define GL_ARB_explicit_uniform_location 1
-
-#define GL_MAX_UNIFORM_LOCATIONS 0x826E
-
-#define GLEW_ARB_explicit_uniform_location GLEW_GET_VAR(__GLEW_ARB_explicit_uniform_location)
-
-#endif /* GL_ARB_explicit_uniform_location */
-
-/* ------------------- GL_ARB_fragment_coord_conventions ------------------- */
-
-#ifndef GL_ARB_fragment_coord_conventions
-#define GL_ARB_fragment_coord_conventions 1
-
-#define GLEW_ARB_fragment_coord_conventions GLEW_GET_VAR(__GLEW_ARB_fragment_coord_conventions)
-
-#endif /* GL_ARB_fragment_coord_conventions */
-
-/* --------------------- GL_ARB_fragment_layer_viewport -------------------- */
-
-#ifndef GL_ARB_fragment_layer_viewport
-#define GL_ARB_fragment_layer_viewport 1
-
-#define GLEW_ARB_fragment_layer_viewport GLEW_GET_VAR(__GLEW_ARB_fragment_layer_viewport)
-
-#endif /* GL_ARB_fragment_layer_viewport */
-
-/* ------------------------ GL_ARB_fragment_program ------------------------ */
-
-#ifndef GL_ARB_fragment_program
-#define GL_ARB_fragment_program 1
-
-#define GL_FRAGMENT_PROGRAM_ARB 0x8804
-#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
-#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
-#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
-#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
-#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
-#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
-#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
-#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
-#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
-#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
-#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
-#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
-#define GL_MAX_TEXTURE_COORDS_ARB 0x8871
-#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
-
-#define GLEW_ARB_fragment_program GLEW_GET_VAR(__GLEW_ARB_fragment_program)
-
-#endif /* GL_ARB_fragment_program */
-
-/* --------------------- GL_ARB_fragment_program_shadow -------------------- */
-
-#ifndef GL_ARB_fragment_program_shadow
-#define GL_ARB_fragment_program_shadow 1
-
-#define GLEW_ARB_fragment_program_shadow GLEW_GET_VAR(__GLEW_ARB_fragment_program_shadow)
-
-#endif /* GL_ARB_fragment_program_shadow */
-
-/* ------------------------- GL_ARB_fragment_shader ------------------------ */
-
-#ifndef GL_ARB_fragment_shader
-#define GL_ARB_fragment_shader 1
-
-#define GL_FRAGMENT_SHADER_ARB 0x8B30
-#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
-
-#define GLEW_ARB_fragment_shader GLEW_GET_VAR(__GLEW_ARB_fragment_shader)
-
-#endif /* GL_ARB_fragment_shader */
-
-/* -------------------- GL_ARB_fragment_shader_interlock ------------------- */
-
-#ifndef GL_ARB_fragment_shader_interlock
-#define GL_ARB_fragment_shader_interlock 1
-
-#define GLEW_ARB_fragment_shader_interlock GLEW_GET_VAR(__GLEW_ARB_fragment_shader_interlock)
-
-#endif /* GL_ARB_fragment_shader_interlock */
-
-/* ------------------- GL_ARB_framebuffer_no_attachments ------------------- */
-
-#ifndef GL_ARB_framebuffer_no_attachments
-#define GL_ARB_framebuffer_no_attachments 1
-
-#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310
-#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311
-#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312
-#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313
-#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314
-#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315
-#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316
-#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317
-#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param);
-
-#define glFramebufferParameteri GLEW_GET_FUN(__glewFramebufferParameteri)
-#define glGetFramebufferParameteriv GLEW_GET_FUN(__glewGetFramebufferParameteriv)
-#define glGetNamedFramebufferParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferParameterivEXT)
-#define glNamedFramebufferParameteriEXT GLEW_GET_FUN(__glewNamedFramebufferParameteriEXT)
-
-#define GLEW_ARB_framebuffer_no_attachments GLEW_GET_VAR(__GLEW_ARB_framebuffer_no_attachments)
-
-#endif /* GL_ARB_framebuffer_no_attachments */
-
-/* ----------------------- GL_ARB_framebuffer_object ----------------------- */
-
-#ifndef GL_ARB_framebuffer_object
-#define GL_ARB_framebuffer_object 1
-
-#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
-#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
-#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
-#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
-#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
-#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
-#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
-#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
-#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
-#define GL_FRAMEBUFFER_DEFAULT 0x8218
-#define GL_FRAMEBUFFER_UNDEFINED 0x8219
-#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
-#define GL_INDEX 0x8222
-#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
-#define GL_DEPTH_STENCIL 0x84F9
-#define GL_UNSIGNED_INT_24_8 0x84FA
-#define GL_DEPTH24_STENCIL8 0x88F0
-#define GL_TEXTURE_STENCIL_SIZE 0x88F1
-#define GL_UNSIGNED_NORMALIZED 0x8C17
-#define GL_SRGB 0x8C40
-#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
-#define GL_FRAMEBUFFER_BINDING 0x8CA6
-#define GL_RENDERBUFFER_BINDING 0x8CA7
-#define GL_READ_FRAMEBUFFER 0x8CA8
-#define GL_DRAW_FRAMEBUFFER 0x8CA9
-#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
-#define GL_RENDERBUFFER_SAMPLES 0x8CAB
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
-#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
-#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
-#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
-#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
-#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
-#define GL_COLOR_ATTACHMENT0 0x8CE0
-#define GL_COLOR_ATTACHMENT1 0x8CE1
-#define GL_COLOR_ATTACHMENT2 0x8CE2
-#define GL_COLOR_ATTACHMENT3 0x8CE3
-#define GL_COLOR_ATTACHMENT4 0x8CE4
-#define GL_COLOR_ATTACHMENT5 0x8CE5
-#define GL_COLOR_ATTACHMENT6 0x8CE6
-#define GL_COLOR_ATTACHMENT7 0x8CE7
-#define GL_COLOR_ATTACHMENT8 0x8CE8
-#define GL_COLOR_ATTACHMENT9 0x8CE9
-#define GL_COLOR_ATTACHMENT10 0x8CEA
-#define GL_COLOR_ATTACHMENT11 0x8CEB
-#define GL_COLOR_ATTACHMENT12 0x8CEC
-#define GL_COLOR_ATTACHMENT13 0x8CED
-#define GL_COLOR_ATTACHMENT14 0x8CEE
-#define GL_COLOR_ATTACHMENT15 0x8CEF
-#define GL_DEPTH_ATTACHMENT 0x8D00
-#define GL_STENCIL_ATTACHMENT 0x8D20
-#define GL_FRAMEBUFFER 0x8D40
-#define GL_RENDERBUFFER 0x8D41
-#define GL_RENDERBUFFER_WIDTH 0x8D42
-#define GL_RENDERBUFFER_HEIGHT 0x8D43
-#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
-#define GL_STENCIL_INDEX1 0x8D46
-#define GL_STENCIL_INDEX4 0x8D47
-#define GL_STENCIL_INDEX8 0x8D48
-#define GL_STENCIL_INDEX16 0x8D49
-#define GL_RENDERBUFFER_RED_SIZE 0x8D50
-#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
-#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
-#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
-#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
-#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
-#define GL_MAX_SAMPLES 0x8D57
-
-typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
-typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
-typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers);
-typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer);
-typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers);
-typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers);
-typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
-typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
-typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-
-#define glBindFramebuffer GLEW_GET_FUN(__glewBindFramebuffer)
-#define glBindRenderbuffer GLEW_GET_FUN(__glewBindRenderbuffer)
-#define glBlitFramebuffer GLEW_GET_FUN(__glewBlitFramebuffer)
-#define glCheckFramebufferStatus GLEW_GET_FUN(__glewCheckFramebufferStatus)
-#define glDeleteFramebuffers GLEW_GET_FUN(__glewDeleteFramebuffers)
-#define glDeleteRenderbuffers GLEW_GET_FUN(__glewDeleteRenderbuffers)
-#define glFramebufferRenderbuffer GLEW_GET_FUN(__glewFramebufferRenderbuffer)
-#define glFramebufferTexture1D GLEW_GET_FUN(__glewFramebufferTexture1D)
-#define glFramebufferTexture2D GLEW_GET_FUN(__glewFramebufferTexture2D)
-#define glFramebufferTexture3D GLEW_GET_FUN(__glewFramebufferTexture3D)
-#define glFramebufferTextureLayer GLEW_GET_FUN(__glewFramebufferTextureLayer)
-#define glGenFramebuffers GLEW_GET_FUN(__glewGenFramebuffers)
-#define glGenRenderbuffers GLEW_GET_FUN(__glewGenRenderbuffers)
-#define glGenerateMipmap GLEW_GET_FUN(__glewGenerateMipmap)
-#define glGetFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetFramebufferAttachmentParameteriv)
-#define glGetRenderbufferParameteriv GLEW_GET_FUN(__glewGetRenderbufferParameteriv)
-#define glIsFramebuffer GLEW_GET_FUN(__glewIsFramebuffer)
-#define glIsRenderbuffer GLEW_GET_FUN(__glewIsRenderbuffer)
-#define glRenderbufferStorage GLEW_GET_FUN(__glewRenderbufferStorage)
-#define glRenderbufferStorageMultisample GLEW_GET_FUN(__glewRenderbufferStorageMultisample)
-
-#define GLEW_ARB_framebuffer_object GLEW_GET_VAR(__GLEW_ARB_framebuffer_object)
-
-#endif /* GL_ARB_framebuffer_object */
-
-/* ------------------------ GL_ARB_framebuffer_sRGB ------------------------ */
-
-#ifndef GL_ARB_framebuffer_sRGB
-#define GL_ARB_framebuffer_sRGB 1
-
-#define GL_FRAMEBUFFER_SRGB 0x8DB9
-
-#define GLEW_ARB_framebuffer_sRGB GLEW_GET_VAR(__GLEW_ARB_framebuffer_sRGB)
-
-#endif /* GL_ARB_framebuffer_sRGB */
-
-/* ------------------------ GL_ARB_geometry_shader4 ------------------------ */
-
-#ifndef GL_ARB_geometry_shader4
-#define GL_ARB_geometry_shader4 1
-
-#define GL_LINES_ADJACENCY_ARB 0xA
-#define GL_LINE_STRIP_ADJACENCY_ARB 0xB
-#define GL_TRIANGLES_ADJACENCY_ARB 0xC
-#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0xD
-#define GL_PROGRAM_POINT_SIZE_ARB 0x8642
-#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
-#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9
-#define GL_GEOMETRY_SHADER_ARB 0x8DD9
-#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA
-#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB
-#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC
-#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD
-#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE
-#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF
-#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0
-#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
-typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value);
-
-#define glFramebufferTextureARB GLEW_GET_FUN(__glewFramebufferTextureARB)
-#define glFramebufferTextureFaceARB GLEW_GET_FUN(__glewFramebufferTextureFaceARB)
-#define glFramebufferTextureLayerARB GLEW_GET_FUN(__glewFramebufferTextureLayerARB)
-#define glProgramParameteriARB GLEW_GET_FUN(__glewProgramParameteriARB)
-
-#define GLEW_ARB_geometry_shader4 GLEW_GET_VAR(__GLEW_ARB_geometry_shader4)
-
-#endif /* GL_ARB_geometry_shader4 */
-
-/* ----------------------- GL_ARB_get_program_binary ----------------------- */
-
-#ifndef GL_ARB_get_program_binary
-#define GL_ARB_get_program_binary 1
-
-#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
-#define GL_PROGRAM_BINARY_LENGTH 0x8741
-#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
-#define GL_PROGRAM_BINARY_FORMATS 0x87FF
-
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, void*binary);
-typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
-typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value);
-
-#define glGetProgramBinary GLEW_GET_FUN(__glewGetProgramBinary)
-#define glProgramBinary GLEW_GET_FUN(__glewProgramBinary)
-#define glProgramParameteri GLEW_GET_FUN(__glewProgramParameteri)
-
-#define GLEW_ARB_get_program_binary GLEW_GET_VAR(__GLEW_ARB_get_program_binary)
-
-#endif /* GL_ARB_get_program_binary */
-
-/* ---------------------- GL_ARB_get_texture_sub_image --------------------- */
-
-#ifndef GL_ARB_get_texture_sub_image
-#define GL_ARB_get_texture_sub_image 1
-
-typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
-typedef void (GLAPIENTRY * PFNGLGETTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
-
-#define glGetCompressedTextureSubImage GLEW_GET_FUN(__glewGetCompressedTextureSubImage)
-#define glGetTextureSubImage GLEW_GET_FUN(__glewGetTextureSubImage)
-
-#define GLEW_ARB_get_texture_sub_image GLEW_GET_VAR(__GLEW_ARB_get_texture_sub_image)
-
-#endif /* GL_ARB_get_texture_sub_image */
-
-/* ---------------------------- GL_ARB_gl_spirv ---------------------------- */
-
-#ifndef GL_ARB_gl_spirv
-#define GL_ARB_gl_spirv 1
-
-#define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551
-#define GL_SPIR_V_BINARY_ARB 0x9552
-
-typedef void (GLAPIENTRY * PFNGLSPECIALIZESHADERARBPROC) (GLuint shader, const GLchar* pEntryPoint, GLuint numSpecializationConstants, const GLuint* pConstantIndex, const GLuint* pConstantValue);
-
-#define glSpecializeShaderARB GLEW_GET_FUN(__glewSpecializeShaderARB)
-
-#define GLEW_ARB_gl_spirv GLEW_GET_VAR(__GLEW_ARB_gl_spirv)
-
-#endif /* GL_ARB_gl_spirv */
-
-/* --------------------------- GL_ARB_gpu_shader5 -------------------------- */
-
-#ifndef GL_ARB_gpu_shader5
-#define GL_ARB_gpu_shader5 1
-
-#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
-#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A
-#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B
-#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C
-#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D
-#define GL_MAX_VERTEX_STREAMS 0x8E71
-
-#define GLEW_ARB_gpu_shader5 GLEW_GET_VAR(__GLEW_ARB_gpu_shader5)
-
-#endif /* GL_ARB_gpu_shader5 */
-
-/* ------------------------- GL_ARB_gpu_shader_fp64 ------------------------ */
-
-#ifndef GL_ARB_gpu_shader_fp64
-#define GL_ARB_gpu_shader_fp64 1
-
-#define GL_DOUBLE_MAT2 0x8F46
-#define GL_DOUBLE_MAT3 0x8F47
-#define GL_DOUBLE_MAT4 0x8F48
-#define GL_DOUBLE_MAT2x3 0x8F49
-#define GL_DOUBLE_MAT2x4 0x8F4A
-#define GL_DOUBLE_MAT3x2 0x8F4B
-#define GL_DOUBLE_MAT3x4 0x8F4C
-#define GL_DOUBLE_MAT4x2 0x8F4D
-#define GL_DOUBLE_MAT4x3 0x8F4E
-#define GL_DOUBLE_VEC2 0x8FFC
-#define GL_DOUBLE_VEC3 0x8FFD
-#define GL_DOUBLE_VEC4 0x8FFE
-
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-
-#define glGetUniformdv GLEW_GET_FUN(__glewGetUniformdv)
-#define glUniform1d GLEW_GET_FUN(__glewUniform1d)
-#define glUniform1dv GLEW_GET_FUN(__glewUniform1dv)
-#define glUniform2d GLEW_GET_FUN(__glewUniform2d)
-#define glUniform2dv GLEW_GET_FUN(__glewUniform2dv)
-#define glUniform3d GLEW_GET_FUN(__glewUniform3d)
-#define glUniform3dv GLEW_GET_FUN(__glewUniform3dv)
-#define glUniform4d GLEW_GET_FUN(__glewUniform4d)
-#define glUniform4dv GLEW_GET_FUN(__glewUniform4dv)
-#define glUniformMatrix2dv GLEW_GET_FUN(__glewUniformMatrix2dv)
-#define glUniformMatrix2x3dv GLEW_GET_FUN(__glewUniformMatrix2x3dv)
-#define glUniformMatrix2x4dv GLEW_GET_FUN(__glewUniformMatrix2x4dv)
-#define glUniformMatrix3dv GLEW_GET_FUN(__glewUniformMatrix3dv)
-#define glUniformMatrix3x2dv GLEW_GET_FUN(__glewUniformMatrix3x2dv)
-#define glUniformMatrix3x4dv GLEW_GET_FUN(__glewUniformMatrix3x4dv)
-#define glUniformMatrix4dv GLEW_GET_FUN(__glewUniformMatrix4dv)
-#define glUniformMatrix4x2dv GLEW_GET_FUN(__glewUniformMatrix4x2dv)
-#define glUniformMatrix4x3dv GLEW_GET_FUN(__glewUniformMatrix4x3dv)
-
-#define GLEW_ARB_gpu_shader_fp64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_fp64)
-
-#endif /* GL_ARB_gpu_shader_fp64 */
-
-/* ------------------------ GL_ARB_gpu_shader_int64 ------------------------ */
-
-#ifndef GL_ARB_gpu_shader_int64
-#define GL_ARB_gpu_shader_int64 1
-
-#define GL_INT64_ARB 0x140E
-#define GL_UNSIGNED_INT64_ARB 0x140F
-#define GL_INT64_VEC2_ARB 0x8FE9
-#define GL_INT64_VEC3_ARB 0x8FEA
-#define GL_INT64_VEC4_ARB 0x8FEB
-#define GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5
-#define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6
-#define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7
-
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VARBPROC) (GLuint program, GLint location, GLint64* params);
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLuint64* params);
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint64* params);
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint64* params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64ARBPROC) (GLuint program, GLint location, GLint64 x);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64ARBPROC) (GLuint program, GLint location, GLuint64 x);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1I64ARBPROC) (GLint location, GLint64 x);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VARBPROC) (GLint location, GLsizei count, const GLint64* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64ARBPROC) (GLint location, GLuint64 x);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2I64ARBPROC) (GLint location, GLint64 x, GLint64 y);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VARBPROC) (GLint location, GLsizei count, const GLint64* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VARBPROC) (GLint location, GLsizei count, const GLint64* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VARBPROC) (GLint location, GLsizei count, const GLint64* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value);
-
-#define glGetUniformi64vARB GLEW_GET_FUN(__glewGetUniformi64vARB)
-#define glGetUniformui64vARB GLEW_GET_FUN(__glewGetUniformui64vARB)
-#define glGetnUniformi64vARB GLEW_GET_FUN(__glewGetnUniformi64vARB)
-#define glGetnUniformui64vARB GLEW_GET_FUN(__glewGetnUniformui64vARB)
-#define glProgramUniform1i64ARB GLEW_GET_FUN(__glewProgramUniform1i64ARB)
-#define glProgramUniform1i64vARB GLEW_GET_FUN(__glewProgramUniform1i64vARB)
-#define glProgramUniform1ui64ARB GLEW_GET_FUN(__glewProgramUniform1ui64ARB)
-#define glProgramUniform1ui64vARB GLEW_GET_FUN(__glewProgramUniform1ui64vARB)
-#define glProgramUniform2i64ARB GLEW_GET_FUN(__glewProgramUniform2i64ARB)
-#define glProgramUniform2i64vARB GLEW_GET_FUN(__glewProgramUniform2i64vARB)
-#define glProgramUniform2ui64ARB GLEW_GET_FUN(__glewProgramUniform2ui64ARB)
-#define glProgramUniform2ui64vARB GLEW_GET_FUN(__glewProgramUniform2ui64vARB)
-#define glProgramUniform3i64ARB GLEW_GET_FUN(__glewProgramUniform3i64ARB)
-#define glProgramUniform3i64vARB GLEW_GET_FUN(__glewProgramUniform3i64vARB)
-#define glProgramUniform3ui64ARB GLEW_GET_FUN(__glewProgramUniform3ui64ARB)
-#define glProgramUniform3ui64vARB GLEW_GET_FUN(__glewProgramUniform3ui64vARB)
-#define glProgramUniform4i64ARB GLEW_GET_FUN(__glewProgramUniform4i64ARB)
-#define glProgramUniform4i64vARB GLEW_GET_FUN(__glewProgramUniform4i64vARB)
-#define glProgramUniform4ui64ARB GLEW_GET_FUN(__glewProgramUniform4ui64ARB)
-#define glProgramUniform4ui64vARB GLEW_GET_FUN(__glewProgramUniform4ui64vARB)
-#define glUniform1i64ARB GLEW_GET_FUN(__glewUniform1i64ARB)
-#define glUniform1i64vARB GLEW_GET_FUN(__glewUniform1i64vARB)
-#define glUniform1ui64ARB GLEW_GET_FUN(__glewUniform1ui64ARB)
-#define glUniform1ui64vARB GLEW_GET_FUN(__glewUniform1ui64vARB)
-#define glUniform2i64ARB GLEW_GET_FUN(__glewUniform2i64ARB)
-#define glUniform2i64vARB GLEW_GET_FUN(__glewUniform2i64vARB)
-#define glUniform2ui64ARB GLEW_GET_FUN(__glewUniform2ui64ARB)
-#define glUniform2ui64vARB GLEW_GET_FUN(__glewUniform2ui64vARB)
-#define glUniform3i64ARB GLEW_GET_FUN(__glewUniform3i64ARB)
-#define glUniform3i64vARB GLEW_GET_FUN(__glewUniform3i64vARB)
-#define glUniform3ui64ARB GLEW_GET_FUN(__glewUniform3ui64ARB)
-#define glUniform3ui64vARB GLEW_GET_FUN(__glewUniform3ui64vARB)
-#define glUniform4i64ARB GLEW_GET_FUN(__glewUniform4i64ARB)
-#define glUniform4i64vARB GLEW_GET_FUN(__glewUniform4i64vARB)
-#define glUniform4ui64ARB GLEW_GET_FUN(__glewUniform4ui64ARB)
-#define glUniform4ui64vARB GLEW_GET_FUN(__glewUniform4ui64vARB)
-
-#define GLEW_ARB_gpu_shader_int64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_int64)
-
-#endif /* GL_ARB_gpu_shader_int64 */
-
-/* ------------------------ GL_ARB_half_float_pixel ------------------------ */
-
-#ifndef GL_ARB_half_float_pixel
-#define GL_ARB_half_float_pixel 1
-
-#define GL_HALF_FLOAT_ARB 0x140B
-
-#define GLEW_ARB_half_float_pixel GLEW_GET_VAR(__GLEW_ARB_half_float_pixel)
-
-#endif /* GL_ARB_half_float_pixel */
-
-/* ------------------------ GL_ARB_half_float_vertex ----------------------- */
-
-#ifndef GL_ARB_half_float_vertex
-#define GL_ARB_half_float_vertex 1
-
-#define GL_HALF_FLOAT 0x140B
-
-#define GLEW_ARB_half_float_vertex GLEW_GET_VAR(__GLEW_ARB_half_float_vertex)
-
-#endif /* GL_ARB_half_float_vertex */
-
-/* ----------------------------- GL_ARB_imaging ---------------------------- */
-
-#ifndef GL_ARB_imaging
-#define GL_ARB_imaging 1
-
-#define GL_CONSTANT_COLOR 0x8001
-#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
-#define GL_CONSTANT_ALPHA 0x8003
-#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
-#define GL_BLEND_COLOR 0x8005
-#define GL_FUNC_ADD 0x8006
-#define GL_MIN 0x8007
-#define GL_MAX 0x8008
-#define GL_BLEND_EQUATION 0x8009
-#define GL_FUNC_SUBTRACT 0x800A
-#define GL_FUNC_REVERSE_SUBTRACT 0x800B
-#define GL_CONVOLUTION_1D 0x8010
-#define GL_CONVOLUTION_2D 0x8011
-#define GL_SEPARABLE_2D 0x8012
-#define GL_CONVOLUTION_BORDER_MODE 0x8013
-#define GL_CONVOLUTION_FILTER_SCALE 0x8014
-#define GL_CONVOLUTION_FILTER_BIAS 0x8015
-#define GL_REDUCE 0x8016
-#define GL_CONVOLUTION_FORMAT 0x8017
-#define GL_CONVOLUTION_WIDTH 0x8018
-#define GL_CONVOLUTION_HEIGHT 0x8019
-#define GL_MAX_CONVOLUTION_WIDTH 0x801A
-#define GL_MAX_CONVOLUTION_HEIGHT 0x801B
-#define GL_POST_CONVOLUTION_RED_SCALE 0x801C
-#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
-#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
-#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
-#define GL_POST_CONVOLUTION_RED_BIAS 0x8020
-#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
-#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
-#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
-#define GL_HISTOGRAM 0x8024
-#define GL_PROXY_HISTOGRAM 0x8025
-#define GL_HISTOGRAM_WIDTH 0x8026
-#define GL_HISTOGRAM_FORMAT 0x8027
-#define GL_HISTOGRAM_RED_SIZE 0x8028
-#define GL_HISTOGRAM_GREEN_SIZE 0x8029
-#define GL_HISTOGRAM_BLUE_SIZE 0x802A
-#define GL_HISTOGRAM_ALPHA_SIZE 0x802B
-#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
-#define GL_HISTOGRAM_SINK 0x802D
-#define GL_MINMAX 0x802E
-#define GL_MINMAX_FORMAT 0x802F
-#define GL_MINMAX_SINK 0x8030
-#define GL_TABLE_TOO_LARGE 0x8031
-#define GL_COLOR_MATRIX 0x80B1
-#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
-#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
-#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
-#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
-#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
-#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
-#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
-#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
-#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
-#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
-#define GL_COLOR_TABLE 0x80D0
-#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
-#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
-#define GL_PROXY_COLOR_TABLE 0x80D3
-#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
-#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
-#define GL_COLOR_TABLE_SCALE 0x80D6
-#define GL_COLOR_TABLE_BIAS 0x80D7
-#define GL_COLOR_TABLE_FORMAT 0x80D8
-#define GL_COLOR_TABLE_WIDTH 0x80D9
-#define GL_COLOR_TABLE_RED_SIZE 0x80DA
-#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB
-#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC
-#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
-#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
-#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
-#define GL_IGNORE_BORDER 0x8150
-#define GL_CONSTANT_BORDER 0x8151
-#define GL_WRAP_BORDER 0x8152
-#define GL_REPLICATE_BORDER 0x8153
-#define GL_CONVOLUTION_BORDER_COLOR 0x8154
-
-typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table);
-typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
-typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image);
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image);
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, void *table);
-typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, void *image);
-typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
-typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (GLAPIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, void *values);
-typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
-typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span);
-typedef void (GLAPIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
-typedef void (GLAPIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
-typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLRESETMINMAXPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column);
-
-#define glColorSubTable GLEW_GET_FUN(__glewColorSubTable)
-#define glColorTable GLEW_GET_FUN(__glewColorTable)
-#define glColorTableParameterfv GLEW_GET_FUN(__glewColorTableParameterfv)
-#define glColorTableParameteriv GLEW_GET_FUN(__glewColorTableParameteriv)
-#define glConvolutionFilter1D GLEW_GET_FUN(__glewConvolutionFilter1D)
-#define glConvolutionFilter2D GLEW_GET_FUN(__glewConvolutionFilter2D)
-#define glConvolutionParameterf GLEW_GET_FUN(__glewConvolutionParameterf)
-#define glConvolutionParameterfv GLEW_GET_FUN(__glewConvolutionParameterfv)
-#define glConvolutionParameteri GLEW_GET_FUN(__glewConvolutionParameteri)
-#define glConvolutionParameteriv GLEW_GET_FUN(__glewConvolutionParameteriv)
-#define glCopyColorSubTable GLEW_GET_FUN(__glewCopyColorSubTable)
-#define glCopyColorTable GLEW_GET_FUN(__glewCopyColorTable)
-#define glCopyConvolutionFilter1D GLEW_GET_FUN(__glewCopyConvolutionFilter1D)
-#define glCopyConvolutionFilter2D GLEW_GET_FUN(__glewCopyConvolutionFilter2D)
-#define glGetColorTable GLEW_GET_FUN(__glewGetColorTable)
-#define glGetColorTableParameterfv GLEW_GET_FUN(__glewGetColorTableParameterfv)
-#define glGetColorTableParameteriv GLEW_GET_FUN(__glewGetColorTableParameteriv)
-#define glGetConvolutionFilter GLEW_GET_FUN(__glewGetConvolutionFilter)
-#define glGetConvolutionParameterfv GLEW_GET_FUN(__glewGetConvolutionParameterfv)
-#define glGetConvolutionParameteriv GLEW_GET_FUN(__glewGetConvolutionParameteriv)
-#define glGetHistogram GLEW_GET_FUN(__glewGetHistogram)
-#define glGetHistogramParameterfv GLEW_GET_FUN(__glewGetHistogramParameterfv)
-#define glGetHistogramParameteriv GLEW_GET_FUN(__glewGetHistogramParameteriv)
-#define glGetMinmax GLEW_GET_FUN(__glewGetMinmax)
-#define glGetMinmaxParameterfv GLEW_GET_FUN(__glewGetMinmaxParameterfv)
-#define glGetMinmaxParameteriv GLEW_GET_FUN(__glewGetMinmaxParameteriv)
-#define glGetSeparableFilter GLEW_GET_FUN(__glewGetSeparableFilter)
-#define glHistogram GLEW_GET_FUN(__glewHistogram)
-#define glMinmax GLEW_GET_FUN(__glewMinmax)
-#define glResetHistogram GLEW_GET_FUN(__glewResetHistogram)
-#define glResetMinmax GLEW_GET_FUN(__glewResetMinmax)
-#define glSeparableFilter2D GLEW_GET_FUN(__glewSeparableFilter2D)
-
-#define GLEW_ARB_imaging GLEW_GET_VAR(__GLEW_ARB_imaging)
-
-#endif /* GL_ARB_imaging */
-
-/* ----------------------- GL_ARB_indirect_parameters ---------------------- */
-
-#ifndef GL_ARB_indirect_parameters
-#define GL_ARB_indirect_parameters 1
-
-#define GL_PARAMETER_BUFFER_ARB 0x80EE
-#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF
-
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
-
-#define glMultiDrawArraysIndirectCountARB GLEW_GET_FUN(__glewMultiDrawArraysIndirectCountARB)
-#define glMultiDrawElementsIndirectCountARB GLEW_GET_FUN(__glewMultiDrawElementsIndirectCountARB)
-
-#define GLEW_ARB_indirect_parameters GLEW_GET_VAR(__GLEW_ARB_indirect_parameters)
-
-#endif /* GL_ARB_indirect_parameters */
-
-/* ------------------------ GL_ARB_instanced_arrays ------------------------ */
-
-#ifndef GL_ARB_instanced_arrays
-#define GL_ARB_instanced_arrays 1
-
-#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
-
-typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor);
-
-#define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB)
-#define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB)
-#define glVertexAttribDivisorARB GLEW_GET_FUN(__glewVertexAttribDivisorARB)
-
-#define GLEW_ARB_instanced_arrays GLEW_GET_VAR(__GLEW_ARB_instanced_arrays)
-
-#endif /* GL_ARB_instanced_arrays */
-
-/* ---------------------- GL_ARB_internalformat_query ---------------------- */
-
-#ifndef GL_ARB_internalformat_query
-#define GL_ARB_internalformat_query 1
-
-#define GL_NUM_SAMPLE_COUNTS 0x9380
-
-typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params);
-
-#define glGetInternalformativ GLEW_GET_FUN(__glewGetInternalformativ)
-
-#define GLEW_ARB_internalformat_query GLEW_GET_VAR(__GLEW_ARB_internalformat_query)
-
-#endif /* GL_ARB_internalformat_query */
-
-/* ---------------------- GL_ARB_internalformat_query2 --------------------- */
-
-#ifndef GL_ARB_internalformat_query2
-#define GL_ARB_internalformat_query2 1
-
-#define GL_INTERNALFORMAT_SUPPORTED 0x826F
-#define GL_INTERNALFORMAT_PREFERRED 0x8270
-#define GL_INTERNALFORMAT_RED_SIZE 0x8271
-#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272
-#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273
-#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
-#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
-#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
-#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277
-#define GL_INTERNALFORMAT_RED_TYPE 0x8278
-#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279
-#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A
-#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
-#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
-#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
-#define GL_MAX_WIDTH 0x827E
-#define GL_MAX_HEIGHT 0x827F
-#define GL_MAX_DEPTH 0x8280
-#define GL_MAX_LAYERS 0x8281
-#define GL_MAX_COMBINED_DIMENSIONS 0x8282
-#define GL_COLOR_COMPONENTS 0x8283
-#define GL_DEPTH_COMPONENTS 0x8284
-#define GL_STENCIL_COMPONENTS 0x8285
-#define GL_COLOR_RENDERABLE 0x8286
-#define GL_DEPTH_RENDERABLE 0x8287
-#define GL_STENCIL_RENDERABLE 0x8288
-#define GL_FRAMEBUFFER_RENDERABLE 0x8289
-#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
-#define GL_FRAMEBUFFER_BLEND 0x828B
-#define GL_READ_PIXELS 0x828C
-#define GL_READ_PIXELS_FORMAT 0x828D
-#define GL_READ_PIXELS_TYPE 0x828E
-#define GL_TEXTURE_IMAGE_FORMAT 0x828F
-#define GL_TEXTURE_IMAGE_TYPE 0x8290
-#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
-#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292
-#define GL_MIPMAP 0x8293
-#define GL_MANUAL_GENERATE_MIPMAP 0x8294
-#define GL_AUTO_GENERATE_MIPMAP 0x8295
-#define GL_COLOR_ENCODING 0x8296
-#define GL_SRGB_READ 0x8297
-#define GL_SRGB_WRITE 0x8298
-#define GL_SRGB_DECODE_ARB 0x8299
-#define GL_FILTER 0x829A
-#define GL_VERTEX_TEXTURE 0x829B
-#define GL_TESS_CONTROL_TEXTURE 0x829C
-#define GL_TESS_EVALUATION_TEXTURE 0x829D
-#define GL_GEOMETRY_TEXTURE 0x829E
-#define GL_FRAGMENT_TEXTURE 0x829F
-#define GL_COMPUTE_TEXTURE 0x82A0
-#define GL_TEXTURE_SHADOW 0x82A1
-#define GL_TEXTURE_GATHER 0x82A2
-#define GL_TEXTURE_GATHER_SHADOW 0x82A3
-#define GL_SHADER_IMAGE_LOAD 0x82A4
-#define GL_SHADER_IMAGE_STORE 0x82A5
-#define GL_SHADER_IMAGE_ATOMIC 0x82A6
-#define GL_IMAGE_TEXEL_SIZE 0x82A7
-#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
-#define GL_IMAGE_PIXEL_FORMAT 0x82A9
-#define GL_IMAGE_PIXEL_TYPE 0x82AA
-#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
-#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
-#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
-#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
-#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
-#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
-#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
-#define GL_CLEAR_BUFFER 0x82B4
-#define GL_TEXTURE_VIEW 0x82B5
-#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6
-#define GL_FULL_SUPPORT 0x82B7
-#define GL_CAVEAT_SUPPORT 0x82B8
-#define GL_IMAGE_CLASS_4_X_32 0x82B9
-#define GL_IMAGE_CLASS_2_X_32 0x82BA
-#define GL_IMAGE_CLASS_1_X_32 0x82BB
-#define GL_IMAGE_CLASS_4_X_16 0x82BC
-#define GL_IMAGE_CLASS_2_X_16 0x82BD
-#define GL_IMAGE_CLASS_1_X_16 0x82BE
-#define GL_IMAGE_CLASS_4_X_8 0x82BF
-#define GL_IMAGE_CLASS_2_X_8 0x82C0
-#define GL_IMAGE_CLASS_1_X_8 0x82C1
-#define GL_IMAGE_CLASS_11_11_10 0x82C2
-#define GL_IMAGE_CLASS_10_10_10_2 0x82C3
-#define GL_VIEW_CLASS_128_BITS 0x82C4
-#define GL_VIEW_CLASS_96_BITS 0x82C5
-#define GL_VIEW_CLASS_64_BITS 0x82C6
-#define GL_VIEW_CLASS_48_BITS 0x82C7
-#define GL_VIEW_CLASS_32_BITS 0x82C8
-#define GL_VIEW_CLASS_24_BITS 0x82C9
-#define GL_VIEW_CLASS_16_BITS 0x82CA
-#define GL_VIEW_CLASS_8_BITS 0x82CB
-#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
-#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
-#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
-#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
-#define GL_VIEW_CLASS_RGTC1_RED 0x82D0
-#define GL_VIEW_CLASS_RGTC2_RG 0x82D1
-#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2
-#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
-
-typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params);
-
-#define glGetInternalformati64v GLEW_GET_FUN(__glewGetInternalformati64v)
-
-#define GLEW_ARB_internalformat_query2 GLEW_GET_VAR(__GLEW_ARB_internalformat_query2)
-
-#endif /* GL_ARB_internalformat_query2 */
-
-/* ----------------------- GL_ARB_invalidate_subdata ----------------------- */
-
-#ifndef GL_ARB_invalidate_subdata
-#define GL_ARB_invalidate_subdata 1
-
-typedef void (GLAPIENTRY * PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
-typedef void (GLAPIENTRY * PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments);
-typedef void (GLAPIENTRY * PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
-
-#define glInvalidateBufferData GLEW_GET_FUN(__glewInvalidateBufferData)
-#define glInvalidateBufferSubData GLEW_GET_FUN(__glewInvalidateBufferSubData)
-#define glInvalidateFramebuffer GLEW_GET_FUN(__glewInvalidateFramebuffer)
-#define glInvalidateSubFramebuffer GLEW_GET_FUN(__glewInvalidateSubFramebuffer)
-#define glInvalidateTexImage GLEW_GET_FUN(__glewInvalidateTexImage)
-#define glInvalidateTexSubImage GLEW_GET_FUN(__glewInvalidateTexSubImage)
-
-#define GLEW_ARB_invalidate_subdata GLEW_GET_VAR(__GLEW_ARB_invalidate_subdata)
-
-#endif /* GL_ARB_invalidate_subdata */
-
-/* ---------------------- GL_ARB_map_buffer_alignment ---------------------- */
-
-#ifndef GL_ARB_map_buffer_alignment
-#define GL_ARB_map_buffer_alignment 1
-
-#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC
-
-#define GLEW_ARB_map_buffer_alignment GLEW_GET_VAR(__GLEW_ARB_map_buffer_alignment)
-
-#endif /* GL_ARB_map_buffer_alignment */
-
-/* ------------------------ GL_ARB_map_buffer_range ------------------------ */
-
-#ifndef GL_ARB_map_buffer_range
-#define GL_ARB_map_buffer_range 1
-
-#define GL_MAP_READ_BIT 0x0001
-#define GL_MAP_WRITE_BIT 0x0002
-#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
-#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
-#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
-#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
-
-typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
-typedef void * (GLAPIENTRY * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
-
-#define glFlushMappedBufferRange GLEW_GET_FUN(__glewFlushMappedBufferRange)
-#define glMapBufferRange GLEW_GET_FUN(__glewMapBufferRange)
-
-#define GLEW_ARB_map_buffer_range GLEW_GET_VAR(__GLEW_ARB_map_buffer_range)
-
-#endif /* GL_ARB_map_buffer_range */
-
-/* ------------------------- GL_ARB_matrix_palette ------------------------- */
-
-#ifndef GL_ARB_matrix_palette
-#define GL_ARB_matrix_palette 1
-
-#define GL_MATRIX_PALETTE_ARB 0x8840
-#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
-#define GL_MAX_PALETTE_MATRICES_ARB 0x8842
-#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
-#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844
-#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845
-#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
-#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
-#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
-#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
-
-typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index);
-typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, void *pointer);
-typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, GLubyte *indices);
-typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, GLuint *indices);
-typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, GLushort *indices);
-
-#define glCurrentPaletteMatrixARB GLEW_GET_FUN(__glewCurrentPaletteMatrixARB)
-#define glMatrixIndexPointerARB GLEW_GET_FUN(__glewMatrixIndexPointerARB)
-#define glMatrixIndexubvARB GLEW_GET_FUN(__glewMatrixIndexubvARB)
-#define glMatrixIndexuivARB GLEW_GET_FUN(__glewMatrixIndexuivARB)
-#define glMatrixIndexusvARB GLEW_GET_FUN(__glewMatrixIndexusvARB)
-
-#define GLEW_ARB_matrix_palette GLEW_GET_VAR(__GLEW_ARB_matrix_palette)
-
-#endif /* GL_ARB_matrix_palette */
-
-/* --------------------------- GL_ARB_multi_bind --------------------------- */
-
-#ifndef GL_ARB_multi_bind
-#define GL_ARB_multi_bind 1
-
-typedef void (GLAPIENTRY * PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint* buffers);
-typedef void (GLAPIENTRY * PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
-typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint* textures);
-typedef void (GLAPIENTRY * PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint* samplers);
-typedef void (GLAPIENTRY * PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint* textures);
-typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides);
-
-#define glBindBuffersBase GLEW_GET_FUN(__glewBindBuffersBase)
-#define glBindBuffersRange GLEW_GET_FUN(__glewBindBuffersRange)
-#define glBindImageTextures GLEW_GET_FUN(__glewBindImageTextures)
-#define glBindSamplers GLEW_GET_FUN(__glewBindSamplers)
-#define glBindTextures GLEW_GET_FUN(__glewBindTextures)
-#define glBindVertexBuffers GLEW_GET_FUN(__glewBindVertexBuffers)
-
-#define GLEW_ARB_multi_bind GLEW_GET_VAR(__GLEW_ARB_multi_bind)
-
-#endif /* GL_ARB_multi_bind */
-
-/* ----------------------- GL_ARB_multi_draw_indirect ---------------------- */
-
-#ifndef GL_ARB_multi_draw_indirect
-#define GL_ARB_multi_draw_indirect 1
-
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride);
-
-#define glMultiDrawArraysIndirect GLEW_GET_FUN(__glewMultiDrawArraysIndirect)
-#define glMultiDrawElementsIndirect GLEW_GET_FUN(__glewMultiDrawElementsIndirect)
-
-#define GLEW_ARB_multi_draw_indirect GLEW_GET_VAR(__GLEW_ARB_multi_draw_indirect)
-
-#endif /* GL_ARB_multi_draw_indirect */
-
-/* --------------------------- GL_ARB_multisample -------------------------- */
-
-#ifndef GL_ARB_multisample
-#define GL_ARB_multisample 1
-
-#define GL_MULTISAMPLE_ARB 0x809D
-#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
-#define GL_SAMPLE_COVERAGE_ARB 0x80A0
-#define GL_SAMPLE_BUFFERS_ARB 0x80A8
-#define GL_SAMPLES_ARB 0x80A9
-#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
-#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
-#define GL_MULTISAMPLE_BIT_ARB 0x20000000
-
-typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert);
-
-#define glSampleCoverageARB GLEW_GET_FUN(__glewSampleCoverageARB)
-
-#define GLEW_ARB_multisample GLEW_GET_VAR(__GLEW_ARB_multisample)
-
-#endif /* GL_ARB_multisample */
-
-/* -------------------------- GL_ARB_multitexture -------------------------- */
-
-#ifndef GL_ARB_multitexture
-#define GL_ARB_multitexture 1
-
-#define GL_TEXTURE0_ARB 0x84C0
-#define GL_TEXTURE1_ARB 0x84C1
-#define GL_TEXTURE2_ARB 0x84C2
-#define GL_TEXTURE3_ARB 0x84C3
-#define GL_TEXTURE4_ARB 0x84C4
-#define GL_TEXTURE5_ARB 0x84C5
-#define GL_TEXTURE6_ARB 0x84C6
-#define GL_TEXTURE7_ARB 0x84C7
-#define GL_TEXTURE8_ARB 0x84C8
-#define GL_TEXTURE9_ARB 0x84C9
-#define GL_TEXTURE10_ARB 0x84CA
-#define GL_TEXTURE11_ARB 0x84CB
-#define GL_TEXTURE12_ARB 0x84CC
-#define GL_TEXTURE13_ARB 0x84CD
-#define GL_TEXTURE14_ARB 0x84CE
-#define GL_TEXTURE15_ARB 0x84CF
-#define GL_TEXTURE16_ARB 0x84D0
-#define GL_TEXTURE17_ARB 0x84D1
-#define GL_TEXTURE18_ARB 0x84D2
-#define GL_TEXTURE19_ARB 0x84D3
-#define GL_TEXTURE20_ARB 0x84D4
-#define GL_TEXTURE21_ARB 0x84D5
-#define GL_TEXTURE22_ARB 0x84D6
-#define GL_TEXTURE23_ARB 0x84D7
-#define GL_TEXTURE24_ARB 0x84D8
-#define GL_TEXTURE25_ARB 0x84D9
-#define GL_TEXTURE26_ARB 0x84DA
-#define GL_TEXTURE27_ARB 0x84DB
-#define GL_TEXTURE28_ARB 0x84DC
-#define GL_TEXTURE29_ARB 0x84DD
-#define GL_TEXTURE30_ARB 0x84DE
-#define GL_TEXTURE31_ARB 0x84DF
-#define GL_ACTIVE_TEXTURE_ARB 0x84E0
-#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
-#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
-
-typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
-typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
-
-#define glActiveTextureARB GLEW_GET_FUN(__glewActiveTextureARB)
-#define glClientActiveTextureARB GLEW_GET_FUN(__glewClientActiveTextureARB)
-#define glMultiTexCoord1dARB GLEW_GET_FUN(__glewMultiTexCoord1dARB)
-#define glMultiTexCoord1dvARB GLEW_GET_FUN(__glewMultiTexCoord1dvARB)
-#define glMultiTexCoord1fARB GLEW_GET_FUN(__glewMultiTexCoord1fARB)
-#define glMultiTexCoord1fvARB GLEW_GET_FUN(__glewMultiTexCoord1fvARB)
-#define glMultiTexCoord1iARB GLEW_GET_FUN(__glewMultiTexCoord1iARB)
-#define glMultiTexCoord1ivARB GLEW_GET_FUN(__glewMultiTexCoord1ivARB)
-#define glMultiTexCoord1sARB GLEW_GET_FUN(__glewMultiTexCoord1sARB)
-#define glMultiTexCoord1svARB GLEW_GET_FUN(__glewMultiTexCoord1svARB)
-#define glMultiTexCoord2dARB GLEW_GET_FUN(__glewMultiTexCoord2dARB)
-#define glMultiTexCoord2dvARB GLEW_GET_FUN(__glewMultiTexCoord2dvARB)
-#define glMultiTexCoord2fARB GLEW_GET_FUN(__glewMultiTexCoord2fARB)
-#define glMultiTexCoord2fvARB GLEW_GET_FUN(__glewMultiTexCoord2fvARB)
-#define glMultiTexCoord2iARB GLEW_GET_FUN(__glewMultiTexCoord2iARB)
-#define glMultiTexCoord2ivARB GLEW_GET_FUN(__glewMultiTexCoord2ivARB)
-#define glMultiTexCoord2sARB GLEW_GET_FUN(__glewMultiTexCoord2sARB)
-#define glMultiTexCoord2svARB GLEW_GET_FUN(__glewMultiTexCoord2svARB)
-#define glMultiTexCoord3dARB GLEW_GET_FUN(__glewMultiTexCoord3dARB)
-#define glMultiTexCoord3dvARB GLEW_GET_FUN(__glewMultiTexCoord3dvARB)
-#define glMultiTexCoord3fARB GLEW_GET_FUN(__glewMultiTexCoord3fARB)
-#define glMultiTexCoord3fvARB GLEW_GET_FUN(__glewMultiTexCoord3fvARB)
-#define glMultiTexCoord3iARB GLEW_GET_FUN(__glewMultiTexCoord3iARB)
-#define glMultiTexCoord3ivARB GLEW_GET_FUN(__glewMultiTexCoord3ivARB)
-#define glMultiTexCoord3sARB GLEW_GET_FUN(__glewMultiTexCoord3sARB)
-#define glMultiTexCoord3svARB GLEW_GET_FUN(__glewMultiTexCoord3svARB)
-#define glMultiTexCoord4dARB GLEW_GET_FUN(__glewMultiTexCoord4dARB)
-#define glMultiTexCoord4dvARB GLEW_GET_FUN(__glewMultiTexCoord4dvARB)
-#define glMultiTexCoord4fARB GLEW_GET_FUN(__glewMultiTexCoord4fARB)
-#define glMultiTexCoord4fvARB GLEW_GET_FUN(__glewMultiTexCoord4fvARB)
-#define glMultiTexCoord4iARB GLEW_GET_FUN(__glewMultiTexCoord4iARB)
-#define glMultiTexCoord4ivARB GLEW_GET_FUN(__glewMultiTexCoord4ivARB)
-#define glMultiTexCoord4sARB GLEW_GET_FUN(__glewMultiTexCoord4sARB)
-#define glMultiTexCoord4svARB GLEW_GET_FUN(__glewMultiTexCoord4svARB)
-
-#define GLEW_ARB_multitexture GLEW_GET_VAR(__GLEW_ARB_multitexture)
-
-#endif /* GL_ARB_multitexture */
-
-/* ------------------------- GL_ARB_occlusion_query ------------------------ */
-
-#ifndef GL_ARB_occlusion_query
-#define GL_ARB_occlusion_query 1
-
-#define GL_QUERY_COUNTER_BITS_ARB 0x8864
-#define GL_CURRENT_QUERY_ARB 0x8865
-#define GL_QUERY_RESULT_ARB 0x8866
-#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
-#define GL_SAMPLES_PASSED_ARB 0x8914
-
-typedef void (GLAPIENTRY * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id);
-typedef void (GLAPIENTRY * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLENDQUERYARBPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISQUERYARBPROC) (GLuint id);
-
-#define glBeginQueryARB GLEW_GET_FUN(__glewBeginQueryARB)
-#define glDeleteQueriesARB GLEW_GET_FUN(__glewDeleteQueriesARB)
-#define glEndQueryARB GLEW_GET_FUN(__glewEndQueryARB)
-#define glGenQueriesARB GLEW_GET_FUN(__glewGenQueriesARB)
-#define glGetQueryObjectivARB GLEW_GET_FUN(__glewGetQueryObjectivARB)
-#define glGetQueryObjectuivARB GLEW_GET_FUN(__glewGetQueryObjectuivARB)
-#define glGetQueryivARB GLEW_GET_FUN(__glewGetQueryivARB)
-#define glIsQueryARB GLEW_GET_FUN(__glewIsQueryARB)
-
-#define GLEW_ARB_occlusion_query GLEW_GET_VAR(__GLEW_ARB_occlusion_query)
-
-#endif /* GL_ARB_occlusion_query */
-
-/* ------------------------ GL_ARB_occlusion_query2 ------------------------ */
-
-#ifndef GL_ARB_occlusion_query2
-#define GL_ARB_occlusion_query2 1
-
-#define GL_ANY_SAMPLES_PASSED 0x8C2F
-
-#define GLEW_ARB_occlusion_query2 GLEW_GET_VAR(__GLEW_ARB_occlusion_query2)
-
-#endif /* GL_ARB_occlusion_query2 */
-
-/* --------------------- GL_ARB_parallel_shader_compile -------------------- */
-
-#ifndef GL_ARB_parallel_shader_compile
-#define GL_ARB_parallel_shader_compile 1
-
-#define GL_MAX_SHADER_COMPILER_THREADS_ARB 0x91B0
-#define GL_COMPLETION_STATUS_ARB 0x91B1
-
-typedef void (GLAPIENTRY * PFNGLMAXSHADERCOMPILERTHREADSARBPROC) (GLuint count);
-
-#define glMaxShaderCompilerThreadsARB GLEW_GET_FUN(__glewMaxShaderCompilerThreadsARB)
-
-#define GLEW_ARB_parallel_shader_compile GLEW_GET_VAR(__GLEW_ARB_parallel_shader_compile)
-
-#endif /* GL_ARB_parallel_shader_compile */
-
-/* -------------------- GL_ARB_pipeline_statistics_query ------------------- */
-
-#ifndef GL_ARB_pipeline_statistics_query
-#define GL_ARB_pipeline_statistics_query 1
-
-#define GL_VERTICES_SUBMITTED_ARB 0x82EE
-#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF
-#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0
-#define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1
-#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2
-#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3
-#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4
-#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5
-#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6
-#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7
-#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
-
-#define GLEW_ARB_pipeline_statistics_query GLEW_GET_VAR(__GLEW_ARB_pipeline_statistics_query)
-
-#endif /* GL_ARB_pipeline_statistics_query */
-
-/* ----------------------- GL_ARB_pixel_buffer_object ---------------------- */
-
-#ifndef GL_ARB_pixel_buffer_object
-#define GL_ARB_pixel_buffer_object 1
-
-#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB
-#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC
-#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED
-#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF
-
-#define GLEW_ARB_pixel_buffer_object GLEW_GET_VAR(__GLEW_ARB_pixel_buffer_object)
-
-#endif /* GL_ARB_pixel_buffer_object */
-
-/* ------------------------ GL_ARB_point_parameters ------------------------ */
-
-#ifndef GL_ARB_point_parameters
-#define GL_ARB_point_parameters 1
-
-#define GL_POINT_SIZE_MIN_ARB 0x8126
-#define GL_POINT_SIZE_MAX_ARB 0x8127
-#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128
-#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
-
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat* params);
-
-#define glPointParameterfARB GLEW_GET_FUN(__glewPointParameterfARB)
-#define glPointParameterfvARB GLEW_GET_FUN(__glewPointParameterfvARB)
-
-#define GLEW_ARB_point_parameters GLEW_GET_VAR(__GLEW_ARB_point_parameters)
-
-#endif /* GL_ARB_point_parameters */
-
-/* -------------------------- GL_ARB_point_sprite -------------------------- */
-
-#ifndef GL_ARB_point_sprite
-#define GL_ARB_point_sprite 1
-
-#define GL_POINT_SPRITE_ARB 0x8861
-#define GL_COORD_REPLACE_ARB 0x8862
-
-#define GLEW_ARB_point_sprite GLEW_GET_VAR(__GLEW_ARB_point_sprite)
-
-#endif /* GL_ARB_point_sprite */
-
-/* ---------------------- GL_ARB_polygon_offset_clamp ---------------------- */
-
-#ifndef GL_ARB_polygon_offset_clamp
-#define GL_ARB_polygon_offset_clamp 1
-
-#define GL_POLYGON_OFFSET_CLAMP 0x8E1B
-
-typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETCLAMPPROC) (GLfloat factor, GLfloat units, GLfloat clamp);
-
-#define glPolygonOffsetClamp GLEW_GET_FUN(__glewPolygonOffsetClamp)
-
-#define GLEW_ARB_polygon_offset_clamp GLEW_GET_VAR(__GLEW_ARB_polygon_offset_clamp)
-
-#endif /* GL_ARB_polygon_offset_clamp */
-
-/* ----------------------- GL_ARB_post_depth_coverage ---------------------- */
-
-#ifndef GL_ARB_post_depth_coverage
-#define GL_ARB_post_depth_coverage 1
-
-#define GLEW_ARB_post_depth_coverage GLEW_GET_VAR(__GLEW_ARB_post_depth_coverage)
-
-#endif /* GL_ARB_post_depth_coverage */
-
-/* --------------------- GL_ARB_program_interface_query -------------------- */
-
-#ifndef GL_ARB_program_interface_query
-#define GL_ARB_program_interface_query 1
-
-#define GL_UNIFORM 0x92E1
-#define GL_UNIFORM_BLOCK 0x92E2
-#define GL_PROGRAM_INPUT 0x92E3
-#define GL_PROGRAM_OUTPUT 0x92E4
-#define GL_BUFFER_VARIABLE 0x92E5
-#define GL_SHADER_STORAGE_BLOCK 0x92E6
-#define GL_IS_PER_PATCH 0x92E7
-#define GL_VERTEX_SUBROUTINE 0x92E8
-#define GL_TESS_CONTROL_SUBROUTINE 0x92E9
-#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA
-#define GL_GEOMETRY_SUBROUTINE 0x92EB
-#define GL_FRAGMENT_SUBROUTINE 0x92EC
-#define GL_COMPUTE_SUBROUTINE 0x92ED
-#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE
-#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF
-#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0
-#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1
-#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2
-#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3
-#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4
-#define GL_ACTIVE_RESOURCES 0x92F5
-#define GL_MAX_NAME_LENGTH 0x92F6
-#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7
-#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8
-#define GL_NAME_LENGTH 0x92F9
-#define GL_TYPE 0x92FA
-#define GL_ARRAY_SIZE 0x92FB
-#define GL_OFFSET 0x92FC
-#define GL_BLOCK_INDEX 0x92FD
-#define GL_ARRAY_STRIDE 0x92FE
-#define GL_MATRIX_STRIDE 0x92FF
-#define GL_IS_ROW_MAJOR 0x9300
-#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301
-#define GL_BUFFER_BINDING 0x9302
-#define GL_BUFFER_DATA_SIZE 0x9303
-#define GL_NUM_ACTIVE_VARIABLES 0x9304
-#define GL_ACTIVE_VARIABLES 0x9305
-#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306
-#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307
-#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308
-#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309
-#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A
-#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B
-#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C
-#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D
-#define GL_LOCATION 0x930E
-#define GL_LOCATION_INDEX 0x930F
-
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint* params);
-typedef GLuint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar* name);
-typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar* name);
-typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar* name);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar *name);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLint *params);
-
-#define glGetProgramInterfaceiv GLEW_GET_FUN(__glewGetProgramInterfaceiv)
-#define glGetProgramResourceIndex GLEW_GET_FUN(__glewGetProgramResourceIndex)
-#define glGetProgramResourceLocation GLEW_GET_FUN(__glewGetProgramResourceLocation)
-#define glGetProgramResourceLocationIndex GLEW_GET_FUN(__glewGetProgramResourceLocationIndex)
-#define glGetProgramResourceName GLEW_GET_FUN(__glewGetProgramResourceName)
-#define glGetProgramResourceiv GLEW_GET_FUN(__glewGetProgramResourceiv)
-
-#define GLEW_ARB_program_interface_query GLEW_GET_VAR(__GLEW_ARB_program_interface_query)
-
-#endif /* GL_ARB_program_interface_query */
-
-/* ------------------------ GL_ARB_provoking_vertex ------------------------ */
-
-#ifndef GL_ARB_provoking_vertex
-#define GL_ARB_provoking_vertex 1
-
-#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
-#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
-#define GL_LAST_VERTEX_CONVENTION 0x8E4E
-#define GL_PROVOKING_VERTEX 0x8E4F
-
-typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXPROC) (GLenum mode);
-
-#define glProvokingVertex GLEW_GET_FUN(__glewProvokingVertex)
-
-#define GLEW_ARB_provoking_vertex GLEW_GET_VAR(__GLEW_ARB_provoking_vertex)
-
-#endif /* GL_ARB_provoking_vertex */
-
-/* ----------------------- GL_ARB_query_buffer_object ---------------------- */
-
-#ifndef GL_ARB_query_buffer_object
-#define GL_ARB_query_buffer_object 1
-
-#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
-#define GL_QUERY_BUFFER 0x9192
-#define GL_QUERY_BUFFER_BINDING 0x9193
-#define GL_QUERY_RESULT_NO_WAIT 0x9194
-
-#define GLEW_ARB_query_buffer_object GLEW_GET_VAR(__GLEW_ARB_query_buffer_object)
-
-#endif /* GL_ARB_query_buffer_object */
-
-/* ------------------ GL_ARB_robust_buffer_access_behavior ----------------- */
-
-#ifndef GL_ARB_robust_buffer_access_behavior
-#define GL_ARB_robust_buffer_access_behavior 1
-
-#define GLEW_ARB_robust_buffer_access_behavior GLEW_GET_VAR(__GLEW_ARB_robust_buffer_access_behavior)
-
-#endif /* GL_ARB_robust_buffer_access_behavior */
-
-/* --------------------------- GL_ARB_robustness --------------------------- */
-
-#ifndef GL_ARB_robustness
-#define GL_ARB_robustness 1
-
-#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
-#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
-#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
-#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
-#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
-#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
-#define GL_NO_RESET_NOTIFICATION_ARB 0x8261
-
-typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void);
-typedef void (GLAPIENTRY * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table);
-typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void* img);
-typedef void (GLAPIENTRY * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image);
-typedef void (GLAPIENTRY * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values);
-typedef void (GLAPIENTRY * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint* v);
-typedef void (GLAPIENTRY * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values);
-typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat* values);
-typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint* values);
-typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort* values);
-typedef void (GLAPIENTRY * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte* pattern);
-typedef void (GLAPIENTRY * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, void*column, void*span);
-typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img);
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data);
-
-#define glGetGraphicsResetStatusARB GLEW_GET_FUN(__glewGetGraphicsResetStatusARB)
-#define glGetnColorTableARB GLEW_GET_FUN(__glewGetnColorTableARB)
-#define glGetnCompressedTexImageARB GLEW_GET_FUN(__glewGetnCompressedTexImageARB)
-#define glGetnConvolutionFilterARB GLEW_GET_FUN(__glewGetnConvolutionFilterARB)
-#define glGetnHistogramARB GLEW_GET_FUN(__glewGetnHistogramARB)
-#define glGetnMapdvARB GLEW_GET_FUN(__glewGetnMapdvARB)
-#define glGetnMapfvARB GLEW_GET_FUN(__glewGetnMapfvARB)
-#define glGetnMapivARB GLEW_GET_FUN(__glewGetnMapivARB)
-#define glGetnMinmaxARB GLEW_GET_FUN(__glewGetnMinmaxARB)
-#define glGetnPixelMapfvARB GLEW_GET_FUN(__glewGetnPixelMapfvARB)
-#define glGetnPixelMapuivARB GLEW_GET_FUN(__glewGetnPixelMapuivARB)
-#define glGetnPixelMapusvARB GLEW_GET_FUN(__glewGetnPixelMapusvARB)
-#define glGetnPolygonStippleARB GLEW_GET_FUN(__glewGetnPolygonStippleARB)
-#define glGetnSeparableFilterARB GLEW_GET_FUN(__glewGetnSeparableFilterARB)
-#define glGetnTexImageARB GLEW_GET_FUN(__glewGetnTexImageARB)
-#define glGetnUniformdvARB GLEW_GET_FUN(__glewGetnUniformdvARB)
-#define glGetnUniformfvARB GLEW_GET_FUN(__glewGetnUniformfvARB)
-#define glGetnUniformivARB GLEW_GET_FUN(__glewGetnUniformivARB)
-#define glGetnUniformuivARB GLEW_GET_FUN(__glewGetnUniformuivARB)
-#define glReadnPixelsARB GLEW_GET_FUN(__glewReadnPixelsARB)
-
-#define GLEW_ARB_robustness GLEW_GET_VAR(__GLEW_ARB_robustness)
-
-#endif /* GL_ARB_robustness */
-
-/* ---------------- GL_ARB_robustness_application_isolation ---------------- */
-
-#ifndef GL_ARB_robustness_application_isolation
-#define GL_ARB_robustness_application_isolation 1
-
-#define GLEW_ARB_robustness_application_isolation GLEW_GET_VAR(__GLEW_ARB_robustness_application_isolation)
-
-#endif /* GL_ARB_robustness_application_isolation */
-
-/* ---------------- GL_ARB_robustness_share_group_isolation ---------------- */
-
-#ifndef GL_ARB_robustness_share_group_isolation
-#define GL_ARB_robustness_share_group_isolation 1
-
-#define GLEW_ARB_robustness_share_group_isolation GLEW_GET_VAR(__GLEW_ARB_robustness_share_group_isolation)
-
-#endif /* GL_ARB_robustness_share_group_isolation */
-
-/* ------------------------ GL_ARB_sample_locations ------------------------ */
-
-#ifndef GL_ARB_sample_locations
-#define GL_ARB_sample_locations 1
-
-#define GL_SAMPLE_LOCATION_ARB 0x8E50
-#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB 0x933D
-#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB 0x933E
-#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB 0x933F
-#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB 0x9340
-#define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341
-#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342
-#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v);
-
-#define glFramebufferSampleLocationsfvARB GLEW_GET_FUN(__glewFramebufferSampleLocationsfvARB)
-#define glNamedFramebufferSampleLocationsfvARB GLEW_GET_FUN(__glewNamedFramebufferSampleLocationsfvARB)
-
-#define GLEW_ARB_sample_locations GLEW_GET_VAR(__GLEW_ARB_sample_locations)
-
-#endif /* GL_ARB_sample_locations */
-
-/* ------------------------- GL_ARB_sample_shading ------------------------- */
-
-#ifndef GL_ARB_sample_shading
-#define GL_ARB_sample_shading 1
-
-#define GL_SAMPLE_SHADING_ARB 0x8C36
-#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37
-
-typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value);
-
-#define glMinSampleShadingARB GLEW_GET_FUN(__glewMinSampleShadingARB)
-
-#define GLEW_ARB_sample_shading GLEW_GET_VAR(__GLEW_ARB_sample_shading)
-
-#endif /* GL_ARB_sample_shading */
-
-/* ------------------------- GL_ARB_sampler_objects ------------------------ */
-
-#ifndef GL_ARB_sampler_objects
-#define GL_ARB_sampler_objects 1
-
-#define GL_SAMPLER_BINDING 0x8919
-
-typedef void (GLAPIENTRY * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
-typedef void (GLAPIENTRY * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint * samplers);
-typedef void (GLAPIENTRY * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint* samplers);
-typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISSAMPLERPROC) (GLuint sampler);
-typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint* params);
-typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint* params);
-
-#define glBindSampler GLEW_GET_FUN(__glewBindSampler)
-#define glDeleteSamplers GLEW_GET_FUN(__glewDeleteSamplers)
-#define glGenSamplers GLEW_GET_FUN(__glewGenSamplers)
-#define glGetSamplerParameterIiv GLEW_GET_FUN(__glewGetSamplerParameterIiv)
-#define glGetSamplerParameterIuiv GLEW_GET_FUN(__glewGetSamplerParameterIuiv)
-#define glGetSamplerParameterfv GLEW_GET_FUN(__glewGetSamplerParameterfv)
-#define glGetSamplerParameteriv GLEW_GET_FUN(__glewGetSamplerParameteriv)
-#define glIsSampler GLEW_GET_FUN(__glewIsSampler)
-#define glSamplerParameterIiv GLEW_GET_FUN(__glewSamplerParameterIiv)
-#define glSamplerParameterIuiv GLEW_GET_FUN(__glewSamplerParameterIuiv)
-#define glSamplerParameterf GLEW_GET_FUN(__glewSamplerParameterf)
-#define glSamplerParameterfv GLEW_GET_FUN(__glewSamplerParameterfv)
-#define glSamplerParameteri GLEW_GET_FUN(__glewSamplerParameteri)
-#define glSamplerParameteriv GLEW_GET_FUN(__glewSamplerParameteriv)
-
-#define GLEW_ARB_sampler_objects GLEW_GET_VAR(__GLEW_ARB_sampler_objects)
-
-#endif /* GL_ARB_sampler_objects */
-
-/* ------------------------ GL_ARB_seamless_cube_map ----------------------- */
-
-#ifndef GL_ARB_seamless_cube_map
-#define GL_ARB_seamless_cube_map 1
-
-#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
-
-#define GLEW_ARB_seamless_cube_map GLEW_GET_VAR(__GLEW_ARB_seamless_cube_map)
-
-#endif /* GL_ARB_seamless_cube_map */
-
-/* ------------------ GL_ARB_seamless_cubemap_per_texture ------------------ */
-
-#ifndef GL_ARB_seamless_cubemap_per_texture
-#define GL_ARB_seamless_cubemap_per_texture 1
-
-#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
-
-#define GLEW_ARB_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_ARB_seamless_cubemap_per_texture)
-
-#endif /* GL_ARB_seamless_cubemap_per_texture */
-
-/* --------------------- GL_ARB_separate_shader_objects -------------------- */
-
-#ifndef GL_ARB_separate_shader_objects
-#define GL_ARB_separate_shader_objects 1
-
-#define GL_VERTEX_SHADER_BIT 0x00000001
-#define GL_FRAGMENT_SHADER_BIT 0x00000002
-#define GL_GEOMETRY_SHADER_BIT 0x00000004
-#define GL_TESS_CONTROL_SHADER_BIT 0x00000008
-#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010
-#define GL_PROGRAM_SEPARABLE 0x8258
-#define GL_ACTIVE_PROGRAM 0x8259
-#define GL_PROGRAM_PIPELINE_BINDING 0x825A
-#define GL_ALL_SHADER_BITS 0xFFFFFFFF
-
-typedef void (GLAPIENTRY * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program);
-typedef void (GLAPIENTRY * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline);
-typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar * const * strings);
-typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint* pipelines);
-typedef void (GLAPIENTRY * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar *infoLog);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble x);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat x);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint x);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint x);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint x, GLint y);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint x, GLuint y);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
-typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline);
-
-#define glActiveShaderProgram GLEW_GET_FUN(__glewActiveShaderProgram)
-#define glBindProgramPipeline GLEW_GET_FUN(__glewBindProgramPipeline)
-#define glCreateShaderProgramv GLEW_GET_FUN(__glewCreateShaderProgramv)
-#define glDeleteProgramPipelines GLEW_GET_FUN(__glewDeleteProgramPipelines)
-#define glGenProgramPipelines GLEW_GET_FUN(__glewGenProgramPipelines)
-#define glGetProgramPipelineInfoLog GLEW_GET_FUN(__glewGetProgramPipelineInfoLog)
-#define glGetProgramPipelineiv GLEW_GET_FUN(__glewGetProgramPipelineiv)
-#define glIsProgramPipeline GLEW_GET_FUN(__glewIsProgramPipeline)
-#define glProgramUniform1d GLEW_GET_FUN(__glewProgramUniform1d)
-#define glProgramUniform1dv GLEW_GET_FUN(__glewProgramUniform1dv)
-#define glProgramUniform1f GLEW_GET_FUN(__glewProgramUniform1f)
-#define glProgramUniform1fv GLEW_GET_FUN(__glewProgramUniform1fv)
-#define glProgramUniform1i GLEW_GET_FUN(__glewProgramUniform1i)
-#define glProgramUniform1iv GLEW_GET_FUN(__glewProgramUniform1iv)
-#define glProgramUniform1ui GLEW_GET_FUN(__glewProgramUniform1ui)
-#define glProgramUniform1uiv GLEW_GET_FUN(__glewProgramUniform1uiv)
-#define glProgramUniform2d GLEW_GET_FUN(__glewProgramUniform2d)
-#define glProgramUniform2dv GLEW_GET_FUN(__glewProgramUniform2dv)
-#define glProgramUniform2f GLEW_GET_FUN(__glewProgramUniform2f)
-#define glProgramUniform2fv GLEW_GET_FUN(__glewProgramUniform2fv)
-#define glProgramUniform2i GLEW_GET_FUN(__glewProgramUniform2i)
-#define glProgramUniform2iv GLEW_GET_FUN(__glewProgramUniform2iv)
-#define glProgramUniform2ui GLEW_GET_FUN(__glewProgramUniform2ui)
-#define glProgramUniform2uiv GLEW_GET_FUN(__glewProgramUniform2uiv)
-#define glProgramUniform3d GLEW_GET_FUN(__glewProgramUniform3d)
-#define glProgramUniform3dv GLEW_GET_FUN(__glewProgramUniform3dv)
-#define glProgramUniform3f GLEW_GET_FUN(__glewProgramUniform3f)
-#define glProgramUniform3fv GLEW_GET_FUN(__glewProgramUniform3fv)
-#define glProgramUniform3i GLEW_GET_FUN(__glewProgramUniform3i)
-#define glProgramUniform3iv GLEW_GET_FUN(__glewProgramUniform3iv)
-#define glProgramUniform3ui GLEW_GET_FUN(__glewProgramUniform3ui)
-#define glProgramUniform3uiv GLEW_GET_FUN(__glewProgramUniform3uiv)
-#define glProgramUniform4d GLEW_GET_FUN(__glewProgramUniform4d)
-#define glProgramUniform4dv GLEW_GET_FUN(__glewProgramUniform4dv)
-#define glProgramUniform4f GLEW_GET_FUN(__glewProgramUniform4f)
-#define glProgramUniform4fv GLEW_GET_FUN(__glewProgramUniform4fv)
-#define glProgramUniform4i GLEW_GET_FUN(__glewProgramUniform4i)
-#define glProgramUniform4iv GLEW_GET_FUN(__glewProgramUniform4iv)
-#define glProgramUniform4ui GLEW_GET_FUN(__glewProgramUniform4ui)
-#define glProgramUniform4uiv GLEW_GET_FUN(__glewProgramUniform4uiv)
-#define glProgramUniformMatrix2dv GLEW_GET_FUN(__glewProgramUniformMatrix2dv)
-#define glProgramUniformMatrix2fv GLEW_GET_FUN(__glewProgramUniformMatrix2fv)
-#define glProgramUniformMatrix2x3dv GLEW_GET_FUN(__glewProgramUniformMatrix2x3dv)
-#define glProgramUniformMatrix2x3fv GLEW_GET_FUN(__glewProgramUniformMatrix2x3fv)
-#define glProgramUniformMatrix2x4dv GLEW_GET_FUN(__glewProgramUniformMatrix2x4dv)
-#define glProgramUniformMatrix2x4fv GLEW_GET_FUN(__glewProgramUniformMatrix2x4fv)
-#define glProgramUniformMatrix3dv GLEW_GET_FUN(__glewProgramUniformMatrix3dv)
-#define glProgramUniformMatrix3fv GLEW_GET_FUN(__glewProgramUniformMatrix3fv)
-#define glProgramUniformMatrix3x2dv GLEW_GET_FUN(__glewProgramUniformMatrix3x2dv)
-#define glProgramUniformMatrix3x2fv GLEW_GET_FUN(__glewProgramUniformMatrix3x2fv)
-#define glProgramUniformMatrix3x4dv GLEW_GET_FUN(__glewProgramUniformMatrix3x4dv)
-#define glProgramUniformMatrix3x4fv GLEW_GET_FUN(__glewProgramUniformMatrix3x4fv)
-#define glProgramUniformMatrix4dv GLEW_GET_FUN(__glewProgramUniformMatrix4dv)
-#define glProgramUniformMatrix4fv GLEW_GET_FUN(__glewProgramUniformMatrix4fv)
-#define glProgramUniformMatrix4x2dv GLEW_GET_FUN(__glewProgramUniformMatrix4x2dv)
-#define glProgramUniformMatrix4x2fv GLEW_GET_FUN(__glewProgramUniformMatrix4x2fv)
-#define glProgramUniformMatrix4x3dv GLEW_GET_FUN(__glewProgramUniformMatrix4x3dv)
-#define glProgramUniformMatrix4x3fv GLEW_GET_FUN(__glewProgramUniformMatrix4x3fv)
-#define glUseProgramStages GLEW_GET_FUN(__glewUseProgramStages)
-#define glValidateProgramPipeline GLEW_GET_FUN(__glewValidateProgramPipeline)
-
-#define GLEW_ARB_separate_shader_objects GLEW_GET_VAR(__GLEW_ARB_separate_shader_objects)
-
-#endif /* GL_ARB_separate_shader_objects */
-
-/* -------------------- GL_ARB_shader_atomic_counter_ops ------------------- */
-
-#ifndef GL_ARB_shader_atomic_counter_ops
-#define GL_ARB_shader_atomic_counter_ops 1
-
-#define GLEW_ARB_shader_atomic_counter_ops GLEW_GET_VAR(__GLEW_ARB_shader_atomic_counter_ops)
-
-#endif /* GL_ARB_shader_atomic_counter_ops */
-
-/* --------------------- GL_ARB_shader_atomic_counters --------------------- */
-
-#ifndef GL_ARB_shader_atomic_counters
-#define GL_ARB_shader_atomic_counters 1
-
-#define GL_ATOMIC_COUNTER_BUFFER 0x92C0
-#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1
-#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2
-#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3
-#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4
-#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5
-#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6
-#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7
-#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8
-#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9
-#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA
-#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB
-#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC
-#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD
-#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE
-#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF
-#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0
-#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1
-#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2
-#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3
-#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4
-#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5
-#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6
-#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7
-#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8
-#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9
-#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA
-#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB
-#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC
-
-typedef void (GLAPIENTRY * PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint* params);
-
-#define glGetActiveAtomicCounterBufferiv GLEW_GET_FUN(__glewGetActiveAtomicCounterBufferiv)
-
-#define GLEW_ARB_shader_atomic_counters GLEW_GET_VAR(__GLEW_ARB_shader_atomic_counters)
-
-#endif /* GL_ARB_shader_atomic_counters */
-
-/* -------------------------- GL_ARB_shader_ballot ------------------------- */
-
-#ifndef GL_ARB_shader_ballot
-#define GL_ARB_shader_ballot 1
-
-#define GLEW_ARB_shader_ballot GLEW_GET_VAR(__GLEW_ARB_shader_ballot)
-
-#endif /* GL_ARB_shader_ballot */
-
-/* ----------------------- GL_ARB_shader_bit_encoding ---------------------- */
-
-#ifndef GL_ARB_shader_bit_encoding
-#define GL_ARB_shader_bit_encoding 1
-
-#define GLEW_ARB_shader_bit_encoding GLEW_GET_VAR(__GLEW_ARB_shader_bit_encoding)
-
-#endif /* GL_ARB_shader_bit_encoding */
-
-/* -------------------------- GL_ARB_shader_clock -------------------------- */
-
-#ifndef GL_ARB_shader_clock
-#define GL_ARB_shader_clock 1
-
-#define GLEW_ARB_shader_clock GLEW_GET_VAR(__GLEW_ARB_shader_clock)
-
-#endif /* GL_ARB_shader_clock */
-
-/* --------------------- GL_ARB_shader_draw_parameters --------------------- */
-
-#ifndef GL_ARB_shader_draw_parameters
-#define GL_ARB_shader_draw_parameters 1
-
-#define GLEW_ARB_shader_draw_parameters GLEW_GET_VAR(__GLEW_ARB_shader_draw_parameters)
-
-#endif /* GL_ARB_shader_draw_parameters */
-
-/* ------------------------ GL_ARB_shader_group_vote ----------------------- */
-
-#ifndef GL_ARB_shader_group_vote
-#define GL_ARB_shader_group_vote 1
-
-#define GLEW_ARB_shader_group_vote GLEW_GET_VAR(__GLEW_ARB_shader_group_vote)
-
-#endif /* GL_ARB_shader_group_vote */
-
-/* --------------------- GL_ARB_shader_image_load_store -------------------- */
-
-#ifndef GL_ARB_shader_image_load_store
-#define GL_ARB_shader_image_load_store 1
-
-#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
-#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
-#define GL_UNIFORM_BARRIER_BIT 0x00000004
-#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
-#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
-#define GL_COMMAND_BARRIER_BIT 0x00000040
-#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
-#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
-#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
-#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
-#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
-#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
-#define GL_MAX_IMAGE_UNITS 0x8F38
-#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
-#define GL_IMAGE_BINDING_NAME 0x8F3A
-#define GL_IMAGE_BINDING_LEVEL 0x8F3B
-#define GL_IMAGE_BINDING_LAYERED 0x8F3C
-#define GL_IMAGE_BINDING_LAYER 0x8F3D
-#define GL_IMAGE_BINDING_ACCESS 0x8F3E
-#define GL_IMAGE_1D 0x904C
-#define GL_IMAGE_2D 0x904D
-#define GL_IMAGE_3D 0x904E
-#define GL_IMAGE_2D_RECT 0x904F
-#define GL_IMAGE_CUBE 0x9050
-#define GL_IMAGE_BUFFER 0x9051
-#define GL_IMAGE_1D_ARRAY 0x9052
-#define GL_IMAGE_2D_ARRAY 0x9053
-#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054
-#define GL_IMAGE_2D_MULTISAMPLE 0x9055
-#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056
-#define GL_INT_IMAGE_1D 0x9057
-#define GL_INT_IMAGE_2D 0x9058
-#define GL_INT_IMAGE_3D 0x9059
-#define GL_INT_IMAGE_2D_RECT 0x905A
-#define GL_INT_IMAGE_CUBE 0x905B
-#define GL_INT_IMAGE_BUFFER 0x905C
-#define GL_INT_IMAGE_1D_ARRAY 0x905D
-#define GL_INT_IMAGE_2D_ARRAY 0x905E
-#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F
-#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060
-#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
-#define GL_UNSIGNED_INT_IMAGE_1D 0x9062
-#define GL_UNSIGNED_INT_IMAGE_2D 0x9063
-#define GL_UNSIGNED_INT_IMAGE_3D 0x9064
-#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065
-#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
-#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067
-#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068
-#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
-#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
-#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
-#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
-#define GL_MAX_IMAGE_SAMPLES 0x906D
-#define GL_IMAGE_BINDING_FORMAT 0x906E
-#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
-#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8
-#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9
-#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA
-#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB
-#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC
-#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD
-#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
-#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
-#define GL_ALL_BARRIER_BITS 0xFFFFFFFF
-
-typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
-typedef void (GLAPIENTRY * PFNGLMEMORYBARRIERPROC) (GLbitfield barriers);
-
-#define glBindImageTexture GLEW_GET_FUN(__glewBindImageTexture)
-#define glMemoryBarrier GLEW_GET_FUN(__glewMemoryBarrier)
-
-#define GLEW_ARB_shader_image_load_store GLEW_GET_VAR(__GLEW_ARB_shader_image_load_store)
-
-#endif /* GL_ARB_shader_image_load_store */
-
-/* ------------------------ GL_ARB_shader_image_size ----------------------- */
-
-#ifndef GL_ARB_shader_image_size
-#define GL_ARB_shader_image_size 1
-
-#define GLEW_ARB_shader_image_size GLEW_GET_VAR(__GLEW_ARB_shader_image_size)
-
-#endif /* GL_ARB_shader_image_size */
-
-/* ------------------------- GL_ARB_shader_objects ------------------------- */
-
-#ifndef GL_ARB_shader_objects
-#define GL_ARB_shader_objects 1
-
-#define GL_PROGRAM_OBJECT_ARB 0x8B40
-#define GL_SHADER_OBJECT_ARB 0x8B48
-#define GL_OBJECT_TYPE_ARB 0x8B4E
-#define GL_OBJECT_SUBTYPE_ARB 0x8B4F
-#define GL_FLOAT_VEC2_ARB 0x8B50
-#define GL_FLOAT_VEC3_ARB 0x8B51
-#define GL_FLOAT_VEC4_ARB 0x8B52
-#define GL_INT_VEC2_ARB 0x8B53
-#define GL_INT_VEC3_ARB 0x8B54
-#define GL_INT_VEC4_ARB 0x8B55
-#define GL_BOOL_ARB 0x8B56
-#define GL_BOOL_VEC2_ARB 0x8B57
-#define GL_BOOL_VEC3_ARB 0x8B58
-#define GL_BOOL_VEC4_ARB 0x8B59
-#define GL_FLOAT_MAT2_ARB 0x8B5A
-#define GL_FLOAT_MAT3_ARB 0x8B5B
-#define GL_FLOAT_MAT4_ARB 0x8B5C
-#define GL_SAMPLER_1D_ARB 0x8B5D
-#define GL_SAMPLER_2D_ARB 0x8B5E
-#define GL_SAMPLER_3D_ARB 0x8B5F
-#define GL_SAMPLER_CUBE_ARB 0x8B60
-#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61
-#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62
-#define GL_SAMPLER_2D_RECT_ARB 0x8B63
-#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
-#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80
-#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
-#define GL_OBJECT_LINK_STATUS_ARB 0x8B82
-#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83
-#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
-#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85
-#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86
-#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
-#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
-
-typedef char GLcharARB;
-typedef unsigned int GLhandleARB;
-
-typedef void (GLAPIENTRY * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj);
-typedef void (GLAPIENTRY * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj);
-typedef GLhandleARB (GLAPIENTRY * PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
-typedef GLhandleARB (GLAPIENTRY * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
-typedef void (GLAPIENTRY * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj);
-typedef void (GLAPIENTRY * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj);
-typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name);
-typedef void (GLAPIENTRY * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei* count, GLhandleARB *obj);
-typedef GLhandleARB (GLAPIENTRY * PFNGLGETHANDLEARBPROC) (GLenum pname);
-typedef void (GLAPIENTRY * PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *infoLog);
-typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *source);
-typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name);
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint* params);
-typedef void (GLAPIENTRY * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj);
-typedef void (GLAPIENTRY * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint *length);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj);
-typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj);
-
-#define glAttachObjectARB GLEW_GET_FUN(__glewAttachObjectARB)
-#define glCompileShaderARB GLEW_GET_FUN(__glewCompileShaderARB)
-#define glCreateProgramObjectARB GLEW_GET_FUN(__glewCreateProgramObjectARB)
-#define glCreateShaderObjectARB GLEW_GET_FUN(__glewCreateShaderObjectARB)
-#define glDeleteObjectARB GLEW_GET_FUN(__glewDeleteObjectARB)
-#define glDetachObjectARB GLEW_GET_FUN(__glewDetachObjectARB)
-#define glGetActiveUniformARB GLEW_GET_FUN(__glewGetActiveUniformARB)
-#define glGetAttachedObjectsARB GLEW_GET_FUN(__glewGetAttachedObjectsARB)
-#define glGetHandleARB GLEW_GET_FUN(__glewGetHandleARB)
-#define glGetInfoLogARB GLEW_GET_FUN(__glewGetInfoLogARB)
-#define glGetObjectParameterfvARB GLEW_GET_FUN(__glewGetObjectParameterfvARB)
-#define glGetObjectParameterivARB GLEW_GET_FUN(__glewGetObjectParameterivARB)
-#define glGetShaderSourceARB GLEW_GET_FUN(__glewGetShaderSourceARB)
-#define glGetUniformLocationARB GLEW_GET_FUN(__glewGetUniformLocationARB)
-#define glGetUniformfvARB GLEW_GET_FUN(__glewGetUniformfvARB)
-#define glGetUniformivARB GLEW_GET_FUN(__glewGetUniformivARB)
-#define glLinkProgramARB GLEW_GET_FUN(__glewLinkProgramARB)
-#define glShaderSourceARB GLEW_GET_FUN(__glewShaderSourceARB)
-#define glUniform1fARB GLEW_GET_FUN(__glewUniform1fARB)
-#define glUniform1fvARB GLEW_GET_FUN(__glewUniform1fvARB)
-#define glUniform1iARB GLEW_GET_FUN(__glewUniform1iARB)
-#define glUniform1ivARB GLEW_GET_FUN(__glewUniform1ivARB)
-#define glUniform2fARB GLEW_GET_FUN(__glewUniform2fARB)
-#define glUniform2fvARB GLEW_GET_FUN(__glewUniform2fvARB)
-#define glUniform2iARB GLEW_GET_FUN(__glewUniform2iARB)
-#define glUniform2ivARB GLEW_GET_FUN(__glewUniform2ivARB)
-#define glUniform3fARB GLEW_GET_FUN(__glewUniform3fARB)
-#define glUniform3fvARB GLEW_GET_FUN(__glewUniform3fvARB)
-#define glUniform3iARB GLEW_GET_FUN(__glewUniform3iARB)
-#define glUniform3ivARB GLEW_GET_FUN(__glewUniform3ivARB)
-#define glUniform4fARB GLEW_GET_FUN(__glewUniform4fARB)
-#define glUniform4fvARB GLEW_GET_FUN(__glewUniform4fvARB)
-#define glUniform4iARB GLEW_GET_FUN(__glewUniform4iARB)
-#define glUniform4ivARB GLEW_GET_FUN(__glewUniform4ivARB)
-#define glUniformMatrix2fvARB GLEW_GET_FUN(__glewUniformMatrix2fvARB)
-#define glUniformMatrix3fvARB GLEW_GET_FUN(__glewUniformMatrix3fvARB)
-#define glUniformMatrix4fvARB GLEW_GET_FUN(__glewUniformMatrix4fvARB)
-#define glUseProgramObjectARB GLEW_GET_FUN(__glewUseProgramObjectARB)
-#define glValidateProgramARB GLEW_GET_FUN(__glewValidateProgramARB)
-
-#define GLEW_ARB_shader_objects GLEW_GET_VAR(__GLEW_ARB_shader_objects)
-
-#endif /* GL_ARB_shader_objects */
-
-/* ------------------------ GL_ARB_shader_precision ------------------------ */
-
-#ifndef GL_ARB_shader_precision
-#define GL_ARB_shader_precision 1
-
-#define GLEW_ARB_shader_precision GLEW_GET_VAR(__GLEW_ARB_shader_precision)
-
-#endif /* GL_ARB_shader_precision */
-
-/* ---------------------- GL_ARB_shader_stencil_export --------------------- */
-
-#ifndef GL_ARB_shader_stencil_export
-#define GL_ARB_shader_stencil_export 1
-
-#define GLEW_ARB_shader_stencil_export GLEW_GET_VAR(__GLEW_ARB_shader_stencil_export)
-
-#endif /* GL_ARB_shader_stencil_export */
-
-/* ------------------ GL_ARB_shader_storage_buffer_object ------------------ */
-
-#ifndef GL_ARB_shader_storage_buffer_object
-#define GL_ARB_shader_storage_buffer_object 1
-
-#define GL_SHADER_STORAGE_BARRIER_BIT 0x2000
-#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
-#define GL_SHADER_STORAGE_BUFFER 0x90D2
-#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
-#define GL_SHADER_STORAGE_BUFFER_START 0x90D4
-#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
-#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
-#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7
-#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8
-#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9
-#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
-#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
-#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
-#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
-#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
-#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
-
-typedef void (GLAPIENTRY * PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
-
-#define glShaderStorageBlockBinding GLEW_GET_FUN(__glewShaderStorageBlockBinding)
-
-#define GLEW_ARB_shader_storage_buffer_object GLEW_GET_VAR(__GLEW_ARB_shader_storage_buffer_object)
-
-#endif /* GL_ARB_shader_storage_buffer_object */
-
-/* ------------------------ GL_ARB_shader_subroutine ----------------------- */
-
-#ifndef GL_ARB_shader_subroutine
-#define GL_ARB_shader_subroutine 1
-
-#define GL_ACTIVE_SUBROUTINES 0x8DE5
-#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6
-#define GL_MAX_SUBROUTINES 0x8DE7
-#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8
-#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47
-#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48
-#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49
-#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
-#define GL_COMPATIBLE_SUBROUTINES 0x8E4B
-
-typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name);
-typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name);
-typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint* values);
-typedef GLuint (GLAPIENTRY * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar* name);
-typedef GLint (GLAPIENTRY * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar* name);
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint* indices);
-
-#define glGetActiveSubroutineName GLEW_GET_FUN(__glewGetActiveSubroutineName)
-#define glGetActiveSubroutineUniformName GLEW_GET_FUN(__glewGetActiveSubroutineUniformName)
-#define glGetActiveSubroutineUniformiv GLEW_GET_FUN(__glewGetActiveSubroutineUniformiv)
-#define glGetProgramStageiv GLEW_GET_FUN(__glewGetProgramStageiv)
-#define glGetSubroutineIndex GLEW_GET_FUN(__glewGetSubroutineIndex)
-#define glGetSubroutineUniformLocation GLEW_GET_FUN(__glewGetSubroutineUniformLocation)
-#define glGetUniformSubroutineuiv GLEW_GET_FUN(__glewGetUniformSubroutineuiv)
-#define glUniformSubroutinesuiv GLEW_GET_FUN(__glewUniformSubroutinesuiv)
-
-#define GLEW_ARB_shader_subroutine GLEW_GET_VAR(__GLEW_ARB_shader_subroutine)
-
-#endif /* GL_ARB_shader_subroutine */
-
-/* ------------------ GL_ARB_shader_texture_image_samples ------------------ */
-
-#ifndef GL_ARB_shader_texture_image_samples
-#define GL_ARB_shader_texture_image_samples 1
-
-#define GLEW_ARB_shader_texture_image_samples GLEW_GET_VAR(__GLEW_ARB_shader_texture_image_samples)
-
-#endif /* GL_ARB_shader_texture_image_samples */
-
-/* ----------------------- GL_ARB_shader_texture_lod ----------------------- */
-
-#ifndef GL_ARB_shader_texture_lod
-#define GL_ARB_shader_texture_lod 1
-
-#define GLEW_ARB_shader_texture_lod GLEW_GET_VAR(__GLEW_ARB_shader_texture_lod)
-
-#endif /* GL_ARB_shader_texture_lod */
-
-/* ------------------- GL_ARB_shader_viewport_layer_array ------------------ */
-
-#ifndef GL_ARB_shader_viewport_layer_array
-#define GL_ARB_shader_viewport_layer_array 1
-
-#define GLEW_ARB_shader_viewport_layer_array GLEW_GET_VAR(__GLEW_ARB_shader_viewport_layer_array)
-
-#endif /* GL_ARB_shader_viewport_layer_array */
-
-/* ---------------------- GL_ARB_shading_language_100 ---------------------- */
-
-#ifndef GL_ARB_shading_language_100
-#define GL_ARB_shading_language_100 1
-
-#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C
-
-#define GLEW_ARB_shading_language_100 GLEW_GET_VAR(__GLEW_ARB_shading_language_100)
-
-#endif /* GL_ARB_shading_language_100 */
-
-/* -------------------- GL_ARB_shading_language_420pack -------------------- */
-
-#ifndef GL_ARB_shading_language_420pack
-#define GL_ARB_shading_language_420pack 1
-
-#define GLEW_ARB_shading_language_420pack GLEW_GET_VAR(__GLEW_ARB_shading_language_420pack)
-
-#endif /* GL_ARB_shading_language_420pack */
-
-/* -------------------- GL_ARB_shading_language_include -------------------- */
-
-#ifndef GL_ARB_shading_language_include
-#define GL_ARB_shading_language_include 1
-
-#define GL_SHADER_INCLUDE_ARB 0x8DAE
-#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9
-#define GL_NAMED_STRING_TYPE_ARB 0x8DEA
-
-typedef void (GLAPIENTRY * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length);
-typedef void (GLAPIENTRY * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name, GLsizei bufSize, GLint *stringlen, GLchar *string);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar* name, GLenum pname, GLint *params);
-typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name);
-typedef void (GLAPIENTRY * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar* name, GLint stringlen, const GLchar *string);
-
-#define glCompileShaderIncludeARB GLEW_GET_FUN(__glewCompileShaderIncludeARB)
-#define glDeleteNamedStringARB GLEW_GET_FUN(__glewDeleteNamedStringARB)
-#define glGetNamedStringARB GLEW_GET_FUN(__glewGetNamedStringARB)
-#define glGetNamedStringivARB GLEW_GET_FUN(__glewGetNamedStringivARB)
-#define glIsNamedStringARB GLEW_GET_FUN(__glewIsNamedStringARB)
-#define glNamedStringARB GLEW_GET_FUN(__glewNamedStringARB)
-
-#define GLEW_ARB_shading_language_include GLEW_GET_VAR(__GLEW_ARB_shading_language_include)
-
-#endif /* GL_ARB_shading_language_include */
-
-/* -------------------- GL_ARB_shading_language_packing -------------------- */
-
-#ifndef GL_ARB_shading_language_packing
-#define GL_ARB_shading_language_packing 1
-
-#define GLEW_ARB_shading_language_packing GLEW_GET_VAR(__GLEW_ARB_shading_language_packing)
-
-#endif /* GL_ARB_shading_language_packing */
-
-/* ----------------------------- GL_ARB_shadow ----------------------------- */
-
-#ifndef GL_ARB_shadow
-#define GL_ARB_shadow 1
-
-#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C
-#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D
-#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E
-
-#define GLEW_ARB_shadow GLEW_GET_VAR(__GLEW_ARB_shadow)
-
-#endif /* GL_ARB_shadow */
-
-/* ------------------------- GL_ARB_shadow_ambient ------------------------- */
-
-#ifndef GL_ARB_shadow_ambient
-#define GL_ARB_shadow_ambient 1
-
-#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
-
-#define GLEW_ARB_shadow_ambient GLEW_GET_VAR(__GLEW_ARB_shadow_ambient)
-
-#endif /* GL_ARB_shadow_ambient */
-
-/* -------------------------- GL_ARB_sparse_buffer ------------------------- */
-
-#ifndef GL_ARB_sparse_buffer
-#define GL_ARB_sparse_buffer 1
-
-#define GL_SPARSE_STORAGE_BIT_ARB 0x0400
-#define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8
-
-typedef void (GLAPIENTRY * PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit);
-
-#define glBufferPageCommitmentARB GLEW_GET_FUN(__glewBufferPageCommitmentARB)
-
-#define GLEW_ARB_sparse_buffer GLEW_GET_VAR(__GLEW_ARB_sparse_buffer)
-
-#endif /* GL_ARB_sparse_buffer */
-
-/* ------------------------- GL_ARB_sparse_texture ------------------------- */
-
-#ifndef GL_ARB_sparse_texture
-#define GL_ARB_sparse_texture 1
-
-#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195
-#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196
-#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197
-#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198
-#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199
-#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A
-#define GL_TEXTURE_SPARSE_ARB 0x91A6
-#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7
-#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8
-#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9
-#define GL_NUM_SPARSE_LEVELS_ARB 0x91AA
-
-typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
-
-#define glTexPageCommitmentARB GLEW_GET_FUN(__glewTexPageCommitmentARB)
-
-#define GLEW_ARB_sparse_texture GLEW_GET_VAR(__GLEW_ARB_sparse_texture)
-
-#endif /* GL_ARB_sparse_texture */
-
-/* ------------------------- GL_ARB_sparse_texture2 ------------------------ */
-
-#ifndef GL_ARB_sparse_texture2
-#define GL_ARB_sparse_texture2 1
-
-#define GLEW_ARB_sparse_texture2 GLEW_GET_VAR(__GLEW_ARB_sparse_texture2)
-
-#endif /* GL_ARB_sparse_texture2 */
-
-/* ---------------------- GL_ARB_sparse_texture_clamp ---------------------- */
-
-#ifndef GL_ARB_sparse_texture_clamp
-#define GL_ARB_sparse_texture_clamp 1
-
-#define GLEW_ARB_sparse_texture_clamp GLEW_GET_VAR(__GLEW_ARB_sparse_texture_clamp)
-
-#endif /* GL_ARB_sparse_texture_clamp */
-
-/* ------------------------ GL_ARB_spirv_extensions ------------------------ */
-
-#ifndef GL_ARB_spirv_extensions
-#define GL_ARB_spirv_extensions 1
-
-#define GL_SPIR_V_EXTENSIONS 0x9553
-#define GL_NUM_SPIR_V_EXTENSIONS 0x9554
-
-#define GLEW_ARB_spirv_extensions GLEW_GET_VAR(__GLEW_ARB_spirv_extensions)
-
-#endif /* GL_ARB_spirv_extensions */
-
-/* ------------------------ GL_ARB_stencil_texturing ----------------------- */
-
-#ifndef GL_ARB_stencil_texturing
-#define GL_ARB_stencil_texturing 1
-
-#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA
-
-#define GLEW_ARB_stencil_texturing GLEW_GET_VAR(__GLEW_ARB_stencil_texturing)
-
-#endif /* GL_ARB_stencil_texturing */
-
-/* ------------------------------ GL_ARB_sync ------------------------------ */
-
-#ifndef GL_ARB_sync
-#define GL_ARB_sync 1
-
-#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
-#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
-#define GL_OBJECT_TYPE 0x9112
-#define GL_SYNC_CONDITION 0x9113
-#define GL_SYNC_STATUS 0x9114
-#define GL_SYNC_FLAGS 0x9115
-#define GL_SYNC_FENCE 0x9116
-#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
-#define GL_UNSIGNALED 0x9118
-#define GL_SIGNALED 0x9119
-#define GL_ALREADY_SIGNALED 0x911A
-#define GL_TIMEOUT_EXPIRED 0x911B
-#define GL_CONDITION_SATISFIED 0x911C
-#define GL_WAIT_FAILED 0x911D
-#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull
-
-typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout);
-typedef void (GLAPIENTRY * PFNGLDELETESYNCPROC) (GLsync GLsync);
-typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCPROC) (GLenum condition,GLbitfield flags);
-typedef void (GLAPIENTRY * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64* params);
-typedef void (GLAPIENTRY * PFNGLGETSYNCIVPROC) (GLsync GLsync,GLenum pname,GLsizei bufSize,GLsizei* length, GLint *values);
-typedef GLboolean (GLAPIENTRY * PFNGLISSYNCPROC) (GLsync GLsync);
-typedef void (GLAPIENTRY * PFNGLWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout);
-
-#define glClientWaitSync GLEW_GET_FUN(__glewClientWaitSync)
-#define glDeleteSync GLEW_GET_FUN(__glewDeleteSync)
-#define glFenceSync GLEW_GET_FUN(__glewFenceSync)
-#define glGetInteger64v GLEW_GET_FUN(__glewGetInteger64v)
-#define glGetSynciv GLEW_GET_FUN(__glewGetSynciv)
-#define glIsSync GLEW_GET_FUN(__glewIsSync)
-#define glWaitSync GLEW_GET_FUN(__glewWaitSync)
-
-#define GLEW_ARB_sync GLEW_GET_VAR(__GLEW_ARB_sync)
-
-#endif /* GL_ARB_sync */
-
-/* ----------------------- GL_ARB_tessellation_shader ---------------------- */
-
-#ifndef GL_ARB_tessellation_shader
-#define GL_ARB_tessellation_shader 1
-
-#define GL_PATCHES 0xE
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1
-#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C
-#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D
-#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E
-#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F
-#define GL_PATCH_VERTICES 0x8E72
-#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73
-#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74
-#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75
-#define GL_TESS_GEN_MODE 0x8E76
-#define GL_TESS_GEN_SPACING 0x8E77
-#define GL_TESS_GEN_VERTEX_ORDER 0x8E78
-#define GL_TESS_GEN_POINT_MODE 0x8E79
-#define GL_ISOLINES 0x8E7A
-#define GL_FRACTIONAL_ODD 0x8E7B
-#define GL_FRACTIONAL_EVEN 0x8E7C
-#define GL_MAX_PATCH_VERTICES 0x8E7D
-#define GL_MAX_TESS_GEN_LEVEL 0x8E7E
-#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F
-#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80
-#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81
-#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82
-#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83
-#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84
-#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85
-#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86
-#define GL_TESS_EVALUATION_SHADER 0x8E87
-#define GL_TESS_CONTROL_SHADER 0x8E88
-#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89
-#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A
-
-typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat* values);
-typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value);
-
-#define glPatchParameterfv GLEW_GET_FUN(__glewPatchParameterfv)
-#define glPatchParameteri GLEW_GET_FUN(__glewPatchParameteri)
-
-#define GLEW_ARB_tessellation_shader GLEW_GET_VAR(__GLEW_ARB_tessellation_shader)
-
-#endif /* GL_ARB_tessellation_shader */
-
-/* ------------------------- GL_ARB_texture_barrier ------------------------ */
-
-#ifndef GL_ARB_texture_barrier
-#define GL_ARB_texture_barrier 1
-
-typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERPROC) (void);
-
-#define glTextureBarrier GLEW_GET_FUN(__glewTextureBarrier)
-
-#define GLEW_ARB_texture_barrier GLEW_GET_VAR(__GLEW_ARB_texture_barrier)
-
-#endif /* GL_ARB_texture_barrier */
-
-/* ---------------------- GL_ARB_texture_border_clamp ---------------------- */
-
-#ifndef GL_ARB_texture_border_clamp
-#define GL_ARB_texture_border_clamp 1
-
-#define GL_CLAMP_TO_BORDER_ARB 0x812D
-
-#define GLEW_ARB_texture_border_clamp GLEW_GET_VAR(__GLEW_ARB_texture_border_clamp)
-
-#endif /* GL_ARB_texture_border_clamp */
-
-/* ---------------------- GL_ARB_texture_buffer_object --------------------- */
-
-#ifndef GL_ARB_texture_buffer_object
-#define GL_ARB_texture_buffer_object 1
-
-#define GL_TEXTURE_BUFFER_ARB 0x8C2A
-#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B
-#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C
-#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D
-#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E
-
-typedef void (GLAPIENTRY * PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer);
-
-#define glTexBufferARB GLEW_GET_FUN(__glewTexBufferARB)
-
-#define GLEW_ARB_texture_buffer_object GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object)
-
-#endif /* GL_ARB_texture_buffer_object */
-
-/* ------------------- GL_ARB_texture_buffer_object_rgb32 ------------------ */
-
-#ifndef GL_ARB_texture_buffer_object_rgb32
-#define GL_ARB_texture_buffer_object_rgb32 1
-
-#define GLEW_ARB_texture_buffer_object_rgb32 GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object_rgb32)
-
-#endif /* GL_ARB_texture_buffer_object_rgb32 */
-
-/* ---------------------- GL_ARB_texture_buffer_range ---------------------- */
-
-#ifndef GL_ARB_texture_buffer_range
-#define GL_ARB_texture_buffer_range 1
-
-#define GL_TEXTURE_BUFFER_OFFSET 0x919D
-#define GL_TEXTURE_BUFFER_SIZE 0x919E
-#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F
-
-typedef void (GLAPIENTRY * PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
-typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEEXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
-
-#define glTexBufferRange GLEW_GET_FUN(__glewTexBufferRange)
-#define glTextureBufferRangeEXT GLEW_GET_FUN(__glewTextureBufferRangeEXT)
-
-#define GLEW_ARB_texture_buffer_range GLEW_GET_VAR(__GLEW_ARB_texture_buffer_range)
-
-#endif /* GL_ARB_texture_buffer_range */
-
-/* ----------------------- GL_ARB_texture_compression ---------------------- */
-
-#ifndef GL_ARB_texture_compression
-#define GL_ARB_texture_compression 1
-
-#define GL_COMPRESSED_ALPHA_ARB 0x84E9
-#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
-#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
-#define GL_COMPRESSED_INTENSITY_ARB 0x84EC
-#define GL_COMPRESSED_RGB_ARB 0x84ED
-#define GL_COMPRESSED_RGBA_ARB 0x84EE
-#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
-#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
-#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
-#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
-
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, void *img);
-
-#define glCompressedTexImage1DARB GLEW_GET_FUN(__glewCompressedTexImage1DARB)
-#define glCompressedTexImage2DARB GLEW_GET_FUN(__glewCompressedTexImage2DARB)
-#define glCompressedTexImage3DARB GLEW_GET_FUN(__glewCompressedTexImage3DARB)
-#define glCompressedTexSubImage1DARB GLEW_GET_FUN(__glewCompressedTexSubImage1DARB)
-#define glCompressedTexSubImage2DARB GLEW_GET_FUN(__glewCompressedTexSubImage2DARB)
-#define glCompressedTexSubImage3DARB GLEW_GET_FUN(__glewCompressedTexSubImage3DARB)
-#define glGetCompressedTexImageARB GLEW_GET_FUN(__glewGetCompressedTexImageARB)
-
-#define GLEW_ARB_texture_compression GLEW_GET_VAR(__GLEW_ARB_texture_compression)
-
-#endif /* GL_ARB_texture_compression */
-
-/* -------------------- GL_ARB_texture_compression_bptc -------------------- */
-
-#ifndef GL_ARB_texture_compression_bptc
-#define GL_ARB_texture_compression_bptc 1
-
-#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C
-#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D
-#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E
-#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F
-
-#define GLEW_ARB_texture_compression_bptc GLEW_GET_VAR(__GLEW_ARB_texture_compression_bptc)
-
-#endif /* GL_ARB_texture_compression_bptc */
-
-/* -------------------- GL_ARB_texture_compression_rgtc -------------------- */
-
-#ifndef GL_ARB_texture_compression_rgtc
-#define GL_ARB_texture_compression_rgtc 1
-
-#define GL_COMPRESSED_RED_RGTC1 0x8DBB
-#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
-#define GL_COMPRESSED_RG_RGTC2 0x8DBD
-#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
-
-#define GLEW_ARB_texture_compression_rgtc GLEW_GET_VAR(__GLEW_ARB_texture_compression_rgtc)
-
-#endif /* GL_ARB_texture_compression_rgtc */
-
-/* ------------------------ GL_ARB_texture_cube_map ------------------------ */
-
-#ifndef GL_ARB_texture_cube_map
-#define GL_ARB_texture_cube_map 1
-
-#define GL_NORMAL_MAP_ARB 0x8511
-#define GL_REFLECTION_MAP_ARB 0x8512
-#define GL_TEXTURE_CUBE_MAP_ARB 0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
-#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
-
-#define GLEW_ARB_texture_cube_map GLEW_GET_VAR(__GLEW_ARB_texture_cube_map)
-
-#endif /* GL_ARB_texture_cube_map */
-
-/* --------------------- GL_ARB_texture_cube_map_array --------------------- */
-
-#ifndef GL_ARB_texture_cube_map_array
-#define GL_ARB_texture_cube_map_array 1
-
-#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009
-#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A
-#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B
-#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C
-#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D
-#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E
-#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F
-
-#define GLEW_ARB_texture_cube_map_array GLEW_GET_VAR(__GLEW_ARB_texture_cube_map_array)
-
-#endif /* GL_ARB_texture_cube_map_array */
-
-/* ------------------------- GL_ARB_texture_env_add ------------------------ */
-
-#ifndef GL_ARB_texture_env_add
-#define GL_ARB_texture_env_add 1
-
-#define GLEW_ARB_texture_env_add GLEW_GET_VAR(__GLEW_ARB_texture_env_add)
-
-#endif /* GL_ARB_texture_env_add */
-
-/* ----------------------- GL_ARB_texture_env_combine ---------------------- */
-
-#ifndef GL_ARB_texture_env_combine
-#define GL_ARB_texture_env_combine 1
-
-#define GL_SUBTRACT_ARB 0x84E7
-#define GL_COMBINE_ARB 0x8570
-#define GL_COMBINE_RGB_ARB 0x8571
-#define GL_COMBINE_ALPHA_ARB 0x8572
-#define GL_RGB_SCALE_ARB 0x8573
-#define GL_ADD_SIGNED_ARB 0x8574
-#define GL_INTERPOLATE_ARB 0x8575
-#define GL_CONSTANT_ARB 0x8576
-#define GL_PRIMARY_COLOR_ARB 0x8577
-#define GL_PREVIOUS_ARB 0x8578
-#define GL_SOURCE0_RGB_ARB 0x8580
-#define GL_SOURCE1_RGB_ARB 0x8581
-#define GL_SOURCE2_RGB_ARB 0x8582
-#define GL_SOURCE0_ALPHA_ARB 0x8588
-#define GL_SOURCE1_ALPHA_ARB 0x8589
-#define GL_SOURCE2_ALPHA_ARB 0x858A
-#define GL_OPERAND0_RGB_ARB 0x8590
-#define GL_OPERAND1_RGB_ARB 0x8591
-#define GL_OPERAND2_RGB_ARB 0x8592
-#define GL_OPERAND0_ALPHA_ARB 0x8598
-#define GL_OPERAND1_ALPHA_ARB 0x8599
-#define GL_OPERAND2_ALPHA_ARB 0x859A
-
-#define GLEW_ARB_texture_env_combine GLEW_GET_VAR(__GLEW_ARB_texture_env_combine)
-
-#endif /* GL_ARB_texture_env_combine */
-
-/* ---------------------- GL_ARB_texture_env_crossbar ---------------------- */
-
-#ifndef GL_ARB_texture_env_crossbar
-#define GL_ARB_texture_env_crossbar 1
-
-#define GLEW_ARB_texture_env_crossbar GLEW_GET_VAR(__GLEW_ARB_texture_env_crossbar)
-
-#endif /* GL_ARB_texture_env_crossbar */
-
-/* ------------------------ GL_ARB_texture_env_dot3 ------------------------ */
-
-#ifndef GL_ARB_texture_env_dot3
-#define GL_ARB_texture_env_dot3 1
-
-#define GL_DOT3_RGB_ARB 0x86AE
-#define GL_DOT3_RGBA_ARB 0x86AF
-
-#define GLEW_ARB_texture_env_dot3 GLEW_GET_VAR(__GLEW_ARB_texture_env_dot3)
-
-#endif /* GL_ARB_texture_env_dot3 */
-
-/* ------------------- GL_ARB_texture_filter_anisotropic ------------------- */
-
-#ifndef GL_ARB_texture_filter_anisotropic
-#define GL_ARB_texture_filter_anisotropic 1
-
-#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
-#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
-
-#define GLEW_ARB_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_ARB_texture_filter_anisotropic)
-
-#endif /* GL_ARB_texture_filter_anisotropic */
-
-/* ---------------------- GL_ARB_texture_filter_minmax --------------------- */
-
-#ifndef GL_ARB_texture_filter_minmax
-#define GL_ARB_texture_filter_minmax 1
-
-#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366
-#define GL_WEIGHTED_AVERAGE_ARB 0x9367
-
-#define GLEW_ARB_texture_filter_minmax GLEW_GET_VAR(__GLEW_ARB_texture_filter_minmax)
-
-#endif /* GL_ARB_texture_filter_minmax */
-
-/* -------------------------- GL_ARB_texture_float ------------------------- */
-
-#ifndef GL_ARB_texture_float
-#define GL_ARB_texture_float 1
-
-#define GL_RGBA32F_ARB 0x8814
-#define GL_RGB32F_ARB 0x8815
-#define GL_ALPHA32F_ARB 0x8816
-#define GL_INTENSITY32F_ARB 0x8817
-#define GL_LUMINANCE32F_ARB 0x8818
-#define GL_LUMINANCE_ALPHA32F_ARB 0x8819
-#define GL_RGBA16F_ARB 0x881A
-#define GL_RGB16F_ARB 0x881B
-#define GL_ALPHA16F_ARB 0x881C
-#define GL_INTENSITY16F_ARB 0x881D
-#define GL_LUMINANCE16F_ARB 0x881E
-#define GL_LUMINANCE_ALPHA16F_ARB 0x881F
-#define GL_TEXTURE_RED_TYPE_ARB 0x8C10
-#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11
-#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12
-#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13
-#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14
-#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15
-#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16
-#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17
-
-#define GLEW_ARB_texture_float GLEW_GET_VAR(__GLEW_ARB_texture_float)
-
-#endif /* GL_ARB_texture_float */
-
-/* ------------------------- GL_ARB_texture_gather ------------------------- */
-
-#ifndef GL_ARB_texture_gather
-#define GL_ARB_texture_gather 1
-
-#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E
-#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F
-#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F
-
-#define GLEW_ARB_texture_gather GLEW_GET_VAR(__GLEW_ARB_texture_gather)
-
-#endif /* GL_ARB_texture_gather */
-
-/* ------------------ GL_ARB_texture_mirror_clamp_to_edge ------------------ */
-
-#ifndef GL_ARB_texture_mirror_clamp_to_edge
-#define GL_ARB_texture_mirror_clamp_to_edge 1
-
-#define GL_MIRROR_CLAMP_TO_EDGE 0x8743
-
-#define GLEW_ARB_texture_mirror_clamp_to_edge GLEW_GET_VAR(__GLEW_ARB_texture_mirror_clamp_to_edge)
-
-#endif /* GL_ARB_texture_mirror_clamp_to_edge */
-
-/* --------------------- GL_ARB_texture_mirrored_repeat -------------------- */
-
-#ifndef GL_ARB_texture_mirrored_repeat
-#define GL_ARB_texture_mirrored_repeat 1
-
-#define GL_MIRRORED_REPEAT_ARB 0x8370
-
-#define GLEW_ARB_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_ARB_texture_mirrored_repeat)
-
-#endif /* GL_ARB_texture_mirrored_repeat */
-
-/* ----------------------- GL_ARB_texture_multisample ---------------------- */
-
-#ifndef GL_ARB_texture_multisample
-#define GL_ARB_texture_multisample 1
-
-#define GL_SAMPLE_POSITION 0x8E50
-#define GL_SAMPLE_MASK 0x8E51
-#define GL_SAMPLE_MASK_VALUE 0x8E52
-#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
-#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
-#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
-#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
-#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
-#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
-#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
-#define GL_TEXTURE_SAMPLES 0x9106
-#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
-#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
-#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
-#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
-#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
-#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
-#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
-#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
-#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
-#define GL_MAX_INTEGER_SAMPLES 0x9110
-
-typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val);
-typedef void (GLAPIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask);
-typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
-typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
-
-#define glGetMultisamplefv GLEW_GET_FUN(__glewGetMultisamplefv)
-#define glSampleMaski GLEW_GET_FUN(__glewSampleMaski)
-#define glTexImage2DMultisample GLEW_GET_FUN(__glewTexImage2DMultisample)
-#define glTexImage3DMultisample GLEW_GET_FUN(__glewTexImage3DMultisample)
-
-#define GLEW_ARB_texture_multisample GLEW_GET_VAR(__GLEW_ARB_texture_multisample)
-
-#endif /* GL_ARB_texture_multisample */
-
-/* -------------------- GL_ARB_texture_non_power_of_two -------------------- */
-
-#ifndef GL_ARB_texture_non_power_of_two
-#define GL_ARB_texture_non_power_of_two 1
-
-#define GLEW_ARB_texture_non_power_of_two GLEW_GET_VAR(__GLEW_ARB_texture_non_power_of_two)
-
-#endif /* GL_ARB_texture_non_power_of_two */
-
-/* ---------------------- GL_ARB_texture_query_levels ---------------------- */
-
-#ifndef GL_ARB_texture_query_levels
-#define GL_ARB_texture_query_levels 1
-
-#define GLEW_ARB_texture_query_levels GLEW_GET_VAR(__GLEW_ARB_texture_query_levels)
-
-#endif /* GL_ARB_texture_query_levels */
-
-/* ------------------------ GL_ARB_texture_query_lod ----------------------- */
-
-#ifndef GL_ARB_texture_query_lod
-#define GL_ARB_texture_query_lod 1
-
-#define GLEW_ARB_texture_query_lod GLEW_GET_VAR(__GLEW_ARB_texture_query_lod)
-
-#endif /* GL_ARB_texture_query_lod */
-
-/* ------------------------ GL_ARB_texture_rectangle ----------------------- */
-
-#ifndef GL_ARB_texture_rectangle
-#define GL_ARB_texture_rectangle 1
-
-#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
-#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
-#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
-#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
-#define GL_SAMPLER_2D_RECT_ARB 0x8B63
-#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
-
-#define GLEW_ARB_texture_rectangle GLEW_GET_VAR(__GLEW_ARB_texture_rectangle)
-
-#endif /* GL_ARB_texture_rectangle */
-
-/* --------------------------- GL_ARB_texture_rg --------------------------- */
-
-#ifndef GL_ARB_texture_rg
-#define GL_ARB_texture_rg 1
-
-#define GL_COMPRESSED_RED 0x8225
-#define GL_COMPRESSED_RG 0x8226
-#define GL_RG 0x8227
-#define GL_RG_INTEGER 0x8228
-#define GL_R8 0x8229
-#define GL_R16 0x822A
-#define GL_RG8 0x822B
-#define GL_RG16 0x822C
-#define GL_R16F 0x822D
-#define GL_R32F 0x822E
-#define GL_RG16F 0x822F
-#define GL_RG32F 0x8230
-#define GL_R8I 0x8231
-#define GL_R8UI 0x8232
-#define GL_R16I 0x8233
-#define GL_R16UI 0x8234
-#define GL_R32I 0x8235
-#define GL_R32UI 0x8236
-#define GL_RG8I 0x8237
-#define GL_RG8UI 0x8238
-#define GL_RG16I 0x8239
-#define GL_RG16UI 0x823A
-#define GL_RG32I 0x823B
-#define GL_RG32UI 0x823C
-
-#define GLEW_ARB_texture_rg GLEW_GET_VAR(__GLEW_ARB_texture_rg)
-
-#endif /* GL_ARB_texture_rg */
-
-/* ----------------------- GL_ARB_texture_rgb10_a2ui ----------------------- */
-
-#ifndef GL_ARB_texture_rgb10_a2ui
-#define GL_ARB_texture_rgb10_a2ui 1
-
-#define GL_RGB10_A2UI 0x906F
-
-#define GLEW_ARB_texture_rgb10_a2ui GLEW_GET_VAR(__GLEW_ARB_texture_rgb10_a2ui)
-
-#endif /* GL_ARB_texture_rgb10_a2ui */
-
-/* ------------------------ GL_ARB_texture_stencil8 ------------------------ */
-
-#ifndef GL_ARB_texture_stencil8
-#define GL_ARB_texture_stencil8 1
-
-#define GL_STENCIL_INDEX 0x1901
-#define GL_STENCIL_INDEX8 0x8D48
-
-#define GLEW_ARB_texture_stencil8 GLEW_GET_VAR(__GLEW_ARB_texture_stencil8)
-
-#endif /* GL_ARB_texture_stencil8 */
-
-/* ------------------------- GL_ARB_texture_storage ------------------------ */
-
-#ifndef GL_ARB_texture_storage
-#define GL_ARB_texture_storage 1
-
-#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
-
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
-
-#define glTexStorage1D GLEW_GET_FUN(__glewTexStorage1D)
-#define glTexStorage2D GLEW_GET_FUN(__glewTexStorage2D)
-#define glTexStorage3D GLEW_GET_FUN(__glewTexStorage3D)
-
-#define GLEW_ARB_texture_storage GLEW_GET_VAR(__GLEW_ARB_texture_storage)
-
-#endif /* GL_ARB_texture_storage */
-
-/* ------------------- GL_ARB_texture_storage_multisample ------------------ */
-
-#ifndef GL_ARB_texture_storage_multisample
-#define GL_ARB_texture_storage_multisample 1
-
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
-
-#define glTexStorage2DMultisample GLEW_GET_FUN(__glewTexStorage2DMultisample)
-#define glTexStorage3DMultisample GLEW_GET_FUN(__glewTexStorage3DMultisample)
-#define glTextureStorage2DMultisampleEXT GLEW_GET_FUN(__glewTextureStorage2DMultisampleEXT)
-#define glTextureStorage3DMultisampleEXT GLEW_GET_FUN(__glewTextureStorage3DMultisampleEXT)
-
-#define GLEW_ARB_texture_storage_multisample GLEW_GET_VAR(__GLEW_ARB_texture_storage_multisample)
-
-#endif /* GL_ARB_texture_storage_multisample */
-
-/* ------------------------- GL_ARB_texture_swizzle ------------------------ */
-
-#ifndef GL_ARB_texture_swizzle
-#define GL_ARB_texture_swizzle 1
-
-#define GL_TEXTURE_SWIZZLE_R 0x8E42
-#define GL_TEXTURE_SWIZZLE_G 0x8E43
-#define GL_TEXTURE_SWIZZLE_B 0x8E44
-#define GL_TEXTURE_SWIZZLE_A 0x8E45
-#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
-
-#define GLEW_ARB_texture_swizzle GLEW_GET_VAR(__GLEW_ARB_texture_swizzle)
-
-#endif /* GL_ARB_texture_swizzle */
-
-/* -------------------------- GL_ARB_texture_view -------------------------- */
-
-#ifndef GL_ARB_texture_view
-#define GL_ARB_texture_view 1
-
-#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB
-#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC
-#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD
-#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE
-#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
-
-typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
-
-#define glTextureView GLEW_GET_FUN(__glewTextureView)
-
-#define GLEW_ARB_texture_view GLEW_GET_VAR(__GLEW_ARB_texture_view)
-
-#endif /* GL_ARB_texture_view */
-
-/* --------------------------- GL_ARB_timer_query -------------------------- */
-
-#ifndef GL_ARB_timer_query
-#define GL_ARB_timer_query 1
-
-#define GL_TIME_ELAPSED 0x88BF
-#define GL_TIMESTAMP 0x8E28
-
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params);
-typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target);
-
-#define glGetQueryObjecti64v GLEW_GET_FUN(__glewGetQueryObjecti64v)
-#define glGetQueryObjectui64v GLEW_GET_FUN(__glewGetQueryObjectui64v)
-#define glQueryCounter GLEW_GET_FUN(__glewQueryCounter)
-
-#define GLEW_ARB_timer_query GLEW_GET_VAR(__GLEW_ARB_timer_query)
-
-#endif /* GL_ARB_timer_query */
-
-/* ----------------------- GL_ARB_transform_feedback2 ---------------------- */
-
-#ifndef GL_ARB_transform_feedback2
-#define GL_ARB_transform_feedback2 1
-
-#define GL_TRANSFORM_FEEDBACK 0x8E22
-#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23
-#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24
-#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
-
-typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id);
-typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id);
-typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids);
-typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void);
-typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void);
-
-#define glBindTransformFeedback GLEW_GET_FUN(__glewBindTransformFeedback)
-#define glDeleteTransformFeedbacks GLEW_GET_FUN(__glewDeleteTransformFeedbacks)
-#define glDrawTransformFeedback GLEW_GET_FUN(__glewDrawTransformFeedback)
-#define glGenTransformFeedbacks GLEW_GET_FUN(__glewGenTransformFeedbacks)
-#define glIsTransformFeedback GLEW_GET_FUN(__glewIsTransformFeedback)
-#define glPauseTransformFeedback GLEW_GET_FUN(__glewPauseTransformFeedback)
-#define glResumeTransformFeedback GLEW_GET_FUN(__glewResumeTransformFeedback)
-
-#define GLEW_ARB_transform_feedback2 GLEW_GET_VAR(__GLEW_ARB_transform_feedback2)
-
-#endif /* GL_ARB_transform_feedback2 */
-
-/* ----------------------- GL_ARB_transform_feedback3 ---------------------- */
-
-#ifndef GL_ARB_transform_feedback3
-#define GL_ARB_transform_feedback3 1
-
-#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70
-#define GL_MAX_VERTEX_STREAMS 0x8E71
-
-typedef void (GLAPIENTRY * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id);
-typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream);
-typedef void (GLAPIENTRY * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index);
-typedef void (GLAPIENTRY * PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params);
-
-#define glBeginQueryIndexed GLEW_GET_FUN(__glewBeginQueryIndexed)
-#define glDrawTransformFeedbackStream GLEW_GET_FUN(__glewDrawTransformFeedbackStream)
-#define glEndQueryIndexed GLEW_GET_FUN(__glewEndQueryIndexed)
-#define glGetQueryIndexediv GLEW_GET_FUN(__glewGetQueryIndexediv)
-
-#define GLEW_ARB_transform_feedback3 GLEW_GET_VAR(__GLEW_ARB_transform_feedback3)
-
-#endif /* GL_ARB_transform_feedback3 */
-
-/* ------------------ GL_ARB_transform_feedback_instanced ------------------ */
-
-#ifndef GL_ARB_transform_feedback_instanced
-#define GL_ARB_transform_feedback_instanced 1
-
-typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei primcount);
-typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei primcount);
-
-#define glDrawTransformFeedbackInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackInstanced)
-#define glDrawTransformFeedbackStreamInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackStreamInstanced)
-
-#define GLEW_ARB_transform_feedback_instanced GLEW_GET_VAR(__GLEW_ARB_transform_feedback_instanced)
-
-#endif /* GL_ARB_transform_feedback_instanced */
-
-/* ---------------- GL_ARB_transform_feedback_overflow_query --------------- */
-
-#ifndef GL_ARB_transform_feedback_overflow_query
-#define GL_ARB_transform_feedback_overflow_query 1
-
-#define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC
-#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED
-
-#define GLEW_ARB_transform_feedback_overflow_query GLEW_GET_VAR(__GLEW_ARB_transform_feedback_overflow_query)
-
-#endif /* GL_ARB_transform_feedback_overflow_query */
-
-/* ------------------------ GL_ARB_transpose_matrix ------------------------ */
-
-#ifndef GL_ARB_transpose_matrix
-#define GL_ARB_transpose_matrix 1
-
-#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
-#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
-#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
-#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
-
-typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]);
-typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]);
-typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]);
-typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]);
-
-#define glLoadTransposeMatrixdARB GLEW_GET_FUN(__glewLoadTransposeMatrixdARB)
-#define glLoadTransposeMatrixfARB GLEW_GET_FUN(__glewLoadTransposeMatrixfARB)
-#define glMultTransposeMatrixdARB GLEW_GET_FUN(__glewMultTransposeMatrixdARB)
-#define glMultTransposeMatrixfARB GLEW_GET_FUN(__glewMultTransposeMatrixfARB)
-
-#define GLEW_ARB_transpose_matrix GLEW_GET_VAR(__GLEW_ARB_transpose_matrix)
-
-#endif /* GL_ARB_transpose_matrix */
-
-/* ---------------------- GL_ARB_uniform_buffer_object --------------------- */
-
-#ifndef GL_ARB_uniform_buffer_object
-#define GL_ARB_uniform_buffer_object 1
-
-#define GL_UNIFORM_BUFFER 0x8A11
-#define GL_UNIFORM_BUFFER_BINDING 0x8A28
-#define GL_UNIFORM_BUFFER_START 0x8A29
-#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
-#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
-#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
-#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
-#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
-#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
-#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
-#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
-#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
-#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
-#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
-#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
-#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
-#define GL_UNIFORM_TYPE 0x8A37
-#define GL_UNIFORM_SIZE 0x8A38
-#define GL_UNIFORM_NAME_LENGTH 0x8A39
-#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
-#define GL_UNIFORM_OFFSET 0x8A3B
-#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
-#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
-#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
-#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
-#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
-#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
-#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
-#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
-#define GL_INVALID_INDEX 0xFFFFFFFFu
-
-typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
-typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
-typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
-typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data);
-typedef GLuint (GLAPIENTRY * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar* uniformBlockName);
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* const * uniformNames, GLuint* uniformIndices);
-typedef void (GLAPIENTRY * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
-
-#define glBindBufferBase GLEW_GET_FUN(__glewBindBufferBase)
-#define glBindBufferRange GLEW_GET_FUN(__glewBindBufferRange)
-#define glGetActiveUniformBlockName GLEW_GET_FUN(__glewGetActiveUniformBlockName)
-#define glGetActiveUniformBlockiv GLEW_GET_FUN(__glewGetActiveUniformBlockiv)
-#define glGetActiveUniformName GLEW_GET_FUN(__glewGetActiveUniformName)
-#define glGetActiveUniformsiv GLEW_GET_FUN(__glewGetActiveUniformsiv)
-#define glGetIntegeri_v GLEW_GET_FUN(__glewGetIntegeri_v)
-#define glGetUniformBlockIndex GLEW_GET_FUN(__glewGetUniformBlockIndex)
-#define glGetUniformIndices GLEW_GET_FUN(__glewGetUniformIndices)
-#define glUniformBlockBinding GLEW_GET_FUN(__glewUniformBlockBinding)
-
-#define GLEW_ARB_uniform_buffer_object GLEW_GET_VAR(__GLEW_ARB_uniform_buffer_object)
-
-#endif /* GL_ARB_uniform_buffer_object */
-
-/* ------------------------ GL_ARB_vertex_array_bgra ----------------------- */
-
-#ifndef GL_ARB_vertex_array_bgra
-#define GL_ARB_vertex_array_bgra 1
-
-#define GL_BGRA 0x80E1
-
-#define GLEW_ARB_vertex_array_bgra GLEW_GET_VAR(__GLEW_ARB_vertex_array_bgra)
-
-#endif /* GL_ARB_vertex_array_bgra */
-
-/* ----------------------- GL_ARB_vertex_array_object ---------------------- */
-
-#ifndef GL_ARB_vertex_array_object
-#define GL_ARB_vertex_array_object 1
-
-#define GL_VERTEX_ARRAY_BINDING 0x85B5
-
-typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array);
-typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays);
-typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays);
-typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array);
-
-#define glBindVertexArray GLEW_GET_FUN(__glewBindVertexArray)
-#define glDeleteVertexArrays GLEW_GET_FUN(__glewDeleteVertexArrays)
-#define glGenVertexArrays GLEW_GET_FUN(__glewGenVertexArrays)
-#define glIsVertexArray GLEW_GET_FUN(__glewIsVertexArray)
-
-#define GLEW_ARB_vertex_array_object GLEW_GET_VAR(__GLEW_ARB_vertex_array_object)
-
-#endif /* GL_ARB_vertex_array_object */
-
-/* ----------------------- GL_ARB_vertex_attrib_64bit ---------------------- */
-
-#ifndef GL_ARB_vertex_attrib_64bit
-#define GL_ARB_vertex_attrib_64bit 1
-
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer);
-
-#define glGetVertexAttribLdv GLEW_GET_FUN(__glewGetVertexAttribLdv)
-#define glVertexAttribL1d GLEW_GET_FUN(__glewVertexAttribL1d)
-#define glVertexAttribL1dv GLEW_GET_FUN(__glewVertexAttribL1dv)
-#define glVertexAttribL2d GLEW_GET_FUN(__glewVertexAttribL2d)
-#define glVertexAttribL2dv GLEW_GET_FUN(__glewVertexAttribL2dv)
-#define glVertexAttribL3d GLEW_GET_FUN(__glewVertexAttribL3d)
-#define glVertexAttribL3dv GLEW_GET_FUN(__glewVertexAttribL3dv)
-#define glVertexAttribL4d GLEW_GET_FUN(__glewVertexAttribL4d)
-#define glVertexAttribL4dv GLEW_GET_FUN(__glewVertexAttribL4dv)
-#define glVertexAttribLPointer GLEW_GET_FUN(__glewVertexAttribLPointer)
-
-#define GLEW_ARB_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_64bit)
-
-#endif /* GL_ARB_vertex_attrib_64bit */
-
-/* ---------------------- GL_ARB_vertex_attrib_binding --------------------- */
-
-#ifndef GL_ARB_vertex_attrib_binding
-#define GL_ARB_vertex_attrib_binding 1
-
-#define GL_VERTEX_ATTRIB_BINDING 0x82D4
-#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
-#define GL_VERTEX_BINDING_DIVISOR 0x82D6
-#define GL_VERTEX_BINDING_OFFSET 0x82D7
-#define GL_VERTEX_BINDING_STRIDE 0x82D8
-#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
-#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
-#define GL_VERTEX_BINDING_BUFFER 0x8F4F
-
-typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
-typedef void (GLAPIENTRY * PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor);
-
-#define glBindVertexBuffer GLEW_GET_FUN(__glewBindVertexBuffer)
-#define glVertexArrayBindVertexBufferEXT GLEW_GET_FUN(__glewVertexArrayBindVertexBufferEXT)
-#define glVertexArrayVertexAttribBindingEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribBindingEXT)
-#define glVertexArrayVertexAttribFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribFormatEXT)
-#define glVertexArrayVertexAttribIFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIFormatEXT)
-#define glVertexArrayVertexAttribLFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLFormatEXT)
-#define glVertexArrayVertexBindingDivisorEXT GLEW_GET_FUN(__glewVertexArrayVertexBindingDivisorEXT)
-#define glVertexAttribBinding GLEW_GET_FUN(__glewVertexAttribBinding)
-#define glVertexAttribFormat GLEW_GET_FUN(__glewVertexAttribFormat)
-#define glVertexAttribIFormat GLEW_GET_FUN(__glewVertexAttribIFormat)
-#define glVertexAttribLFormat GLEW_GET_FUN(__glewVertexAttribLFormat)
-#define glVertexBindingDivisor GLEW_GET_FUN(__glewVertexBindingDivisor)
-
-#define GLEW_ARB_vertex_attrib_binding GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_binding)
-
-#endif /* GL_ARB_vertex_attrib_binding */
-
-/* -------------------------- GL_ARB_vertex_blend -------------------------- */
-
-#ifndef GL_ARB_vertex_blend
-#define GL_ARB_vertex_blend 1
-
-#define GL_MODELVIEW0_ARB 0x1700
-#define GL_MODELVIEW1_ARB 0x850A
-#define GL_MAX_VERTEX_UNITS_ARB 0x86A4
-#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
-#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6
-#define GL_VERTEX_BLEND_ARB 0x86A7
-#define GL_CURRENT_WEIGHT_ARB 0x86A8
-#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
-#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
-#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
-#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
-#define GL_WEIGHT_ARRAY_ARB 0x86AD
-#define GL_MODELVIEW2_ARB 0x8722
-#define GL_MODELVIEW3_ARB 0x8723
-#define GL_MODELVIEW4_ARB 0x8724
-#define GL_MODELVIEW5_ARB 0x8725
-#define GL_MODELVIEW6_ARB 0x8726
-#define GL_MODELVIEW7_ARB 0x8727
-#define GL_MODELVIEW8_ARB 0x8728
-#define GL_MODELVIEW9_ARB 0x8729
-#define GL_MODELVIEW10_ARB 0x872A
-#define GL_MODELVIEW11_ARB 0x872B
-#define GL_MODELVIEW12_ARB 0x872C
-#define GL_MODELVIEW13_ARB 0x872D
-#define GL_MODELVIEW14_ARB 0x872E
-#define GL_MODELVIEW15_ARB 0x872F
-#define GL_MODELVIEW16_ARB 0x8730
-#define GL_MODELVIEW17_ARB 0x8731
-#define GL_MODELVIEW18_ARB 0x8732
-#define GL_MODELVIEW19_ARB 0x8733
-#define GL_MODELVIEW20_ARB 0x8734
-#define GL_MODELVIEW21_ARB 0x8735
-#define GL_MODELVIEW22_ARB 0x8736
-#define GL_MODELVIEW23_ARB 0x8737
-#define GL_MODELVIEW24_ARB 0x8738
-#define GL_MODELVIEW25_ARB 0x8739
-#define GL_MODELVIEW26_ARB 0x873A
-#define GL_MODELVIEW27_ARB 0x873B
-#define GL_MODELVIEW28_ARB 0x873C
-#define GL_MODELVIEW29_ARB 0x873D
-#define GL_MODELVIEW30_ARB 0x873E
-#define GL_MODELVIEW31_ARB 0x873F
-
-typedef void (GLAPIENTRY * PFNGLVERTEXBLENDARBPROC) (GLint count);
-typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, void *pointer);
-typedef void (GLAPIENTRY * PFNGLWEIGHTBVARBPROC) (GLint size, GLbyte *weights);
-typedef void (GLAPIENTRY * PFNGLWEIGHTDVARBPROC) (GLint size, GLdouble *weights);
-typedef void (GLAPIENTRY * PFNGLWEIGHTFVARBPROC) (GLint size, GLfloat *weights);
-typedef void (GLAPIENTRY * PFNGLWEIGHTIVARBPROC) (GLint size, GLint *weights);
-typedef void (GLAPIENTRY * PFNGLWEIGHTSVARBPROC) (GLint size, GLshort *weights);
-typedef void (GLAPIENTRY * PFNGLWEIGHTUBVARBPROC) (GLint size, GLubyte *weights);
-typedef void (GLAPIENTRY * PFNGLWEIGHTUIVARBPROC) (GLint size, GLuint *weights);
-typedef void (GLAPIENTRY * PFNGLWEIGHTUSVARBPROC) (GLint size, GLushort *weights);
-
-#define glVertexBlendARB GLEW_GET_FUN(__glewVertexBlendARB)
-#define glWeightPointerARB GLEW_GET_FUN(__glewWeightPointerARB)
-#define glWeightbvARB GLEW_GET_FUN(__glewWeightbvARB)
-#define glWeightdvARB GLEW_GET_FUN(__glewWeightdvARB)
-#define glWeightfvARB GLEW_GET_FUN(__glewWeightfvARB)
-#define glWeightivARB GLEW_GET_FUN(__glewWeightivARB)
-#define glWeightsvARB GLEW_GET_FUN(__glewWeightsvARB)
-#define glWeightubvARB GLEW_GET_FUN(__glewWeightubvARB)
-#define glWeightuivARB GLEW_GET_FUN(__glewWeightuivARB)
-#define glWeightusvARB GLEW_GET_FUN(__glewWeightusvARB)
-
-#define GLEW_ARB_vertex_blend GLEW_GET_VAR(__GLEW_ARB_vertex_blend)
-
-#endif /* GL_ARB_vertex_blend */
-
-/* ---------------------- GL_ARB_vertex_buffer_object ---------------------- */
-
-#ifndef GL_ARB_vertex_buffer_object
-#define GL_ARB_vertex_buffer_object 1
-
-#define GL_BUFFER_SIZE_ARB 0x8764
-#define GL_BUFFER_USAGE_ARB 0x8765
-#define GL_ARRAY_BUFFER_ARB 0x8892
-#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
-#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
-#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
-#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
-#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
-#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
-#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
-#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
-#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
-#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
-#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
-#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
-#define GL_READ_ONLY_ARB 0x88B8
-#define GL_WRITE_ONLY_ARB 0x88B9
-#define GL_READ_WRITE_ARB 0x88BA
-#define GL_BUFFER_ACCESS_ARB 0x88BB
-#define GL_BUFFER_MAPPED_ARB 0x88BC
-#define GL_BUFFER_MAP_POINTER_ARB 0x88BD
-#define GL_STREAM_DRAW_ARB 0x88E0
-#define GL_STREAM_READ_ARB 0x88E1
-#define GL_STREAM_COPY_ARB 0x88E2
-#define GL_STATIC_DRAW_ARB 0x88E4
-#define GL_STATIC_READ_ARB 0x88E5
-#define GL_STATIC_COPY_ARB 0x88E6
-#define GL_DYNAMIC_DRAW_ARB 0x88E8
-#define GL_DYNAMIC_READ_ARB 0x88E9
-#define GL_DYNAMIC_COPY_ARB 0x88EA
-
-typedef ptrdiff_t GLintptrARB;
-typedef ptrdiff_t GLsizeiptrARB;
-
-typedef void (GLAPIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage);
-typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data);
-typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint* buffers);
-typedef void (GLAPIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint* buffers);
-typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, void** params);
-typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data);
-typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERARBPROC) (GLuint buffer);
-typedef void * (GLAPIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access);
-typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target);
-
-#define glBindBufferARB GLEW_GET_FUN(__glewBindBufferARB)
-#define glBufferDataARB GLEW_GET_FUN(__glewBufferDataARB)
-#define glBufferSubDataARB GLEW_GET_FUN(__glewBufferSubDataARB)
-#define glDeleteBuffersARB GLEW_GET_FUN(__glewDeleteBuffersARB)
-#define glGenBuffersARB GLEW_GET_FUN(__glewGenBuffersARB)
-#define glGetBufferParameterivARB GLEW_GET_FUN(__glewGetBufferParameterivARB)
-#define glGetBufferPointervARB GLEW_GET_FUN(__glewGetBufferPointervARB)
-#define glGetBufferSubDataARB GLEW_GET_FUN(__glewGetBufferSubDataARB)
-#define glIsBufferARB GLEW_GET_FUN(__glewIsBufferARB)
-#define glMapBufferARB GLEW_GET_FUN(__glewMapBufferARB)
-#define glUnmapBufferARB GLEW_GET_FUN(__glewUnmapBufferARB)
-
-#define GLEW_ARB_vertex_buffer_object GLEW_GET_VAR(__GLEW_ARB_vertex_buffer_object)
-
-#endif /* GL_ARB_vertex_buffer_object */
-
-/* ------------------------- GL_ARB_vertex_program ------------------------- */
-
-#ifndef GL_ARB_vertex_program
-#define GL_ARB_vertex_program 1
-
-#define GL_COLOR_SUM_ARB 0x8458
-#define GL_VERTEX_PROGRAM_ARB 0x8620
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
-#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
-#define GL_PROGRAM_LENGTH_ARB 0x8627
-#define GL_PROGRAM_STRING_ARB 0x8628
-#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
-#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
-#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
-#define GL_CURRENT_MATRIX_ARB 0x8641
-#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
-#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
-#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
-#define GL_PROGRAM_BINDING_ARB 0x8677
-#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
-#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
-#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
-#define GL_PROGRAM_FORMAT_ARB 0x8876
-#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
-#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
-#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
-#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
-#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
-#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
-#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
-#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
-#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
-#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
-#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
-#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
-#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
-#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
-#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
-#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
-#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
-#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
-#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
-#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
-#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
-#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
-#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
-#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
-#define GL_MATRIX0_ARB 0x88C0
-#define GL_MATRIX1_ARB 0x88C1
-#define GL_MATRIX2_ARB 0x88C2
-#define GL_MATRIX3_ARB 0x88C3
-#define GL_MATRIX4_ARB 0x88C4
-#define GL_MATRIX5_ARB 0x88C5
-#define GL_MATRIX6_ARB 0x88C6
-#define GL_MATRIX7_ARB 0x88C7
-#define GL_MATRIX8_ARB 0x88C8
-#define GL_MATRIX9_ARB 0x88C9
-#define GL_MATRIX10_ARB 0x88CA
-#define GL_MATRIX11_ARB 0x88CB
-#define GL_MATRIX12_ARB 0x88CC
-#define GL_MATRIX13_ARB 0x88CD
-#define GL_MATRIX14_ARB 0x88CE
-#define GL_MATRIX15_ARB 0x88CF
-#define GL_MATRIX16_ARB 0x88D0
-#define GL_MATRIX17_ARB 0x88D1
-#define GL_MATRIX18_ARB 0x88D2
-#define GL_MATRIX19_ARB 0x88D3
-#define GL_MATRIX20_ARB 0x88D4
-#define GL_MATRIX21_ARB 0x88D5
-#define GL_MATRIX22_ARB 0x88D6
-#define GL_MATRIX23_ARB 0x88D7
-#define GL_MATRIX24_ARB 0x88D8
-#define GL_MATRIX25_ARB 0x88D9
-#define GL_MATRIX26_ARB 0x88DA
-#define GL_MATRIX27_ARB 0x88DB
-#define GL_MATRIX28_ARB 0x88DC
-#define GL_MATRIX29_ARB 0x88DD
-#define GL_MATRIX30_ARB 0x88DE
-#define GL_MATRIX31_ARB 0x88DF
-
-typedef void (GLAPIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
-typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint* programs);
-typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
-typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
-typedef void (GLAPIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint* programs);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void** pointer);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program);
-typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
-
-#define glBindProgramARB GLEW_GET_FUN(__glewBindProgramARB)
-#define glDeleteProgramsARB GLEW_GET_FUN(__glewDeleteProgramsARB)
-#define glDisableVertexAttribArrayARB GLEW_GET_FUN(__glewDisableVertexAttribArrayARB)
-#define glEnableVertexAttribArrayARB GLEW_GET_FUN(__glewEnableVertexAttribArrayARB)
-#define glGenProgramsARB GLEW_GET_FUN(__glewGenProgramsARB)
-#define glGetProgramEnvParameterdvARB GLEW_GET_FUN(__glewGetProgramEnvParameterdvARB)
-#define glGetProgramEnvParameterfvARB GLEW_GET_FUN(__glewGetProgramEnvParameterfvARB)
-#define glGetProgramLocalParameterdvARB GLEW_GET_FUN(__glewGetProgramLocalParameterdvARB)
-#define glGetProgramLocalParameterfvARB GLEW_GET_FUN(__glewGetProgramLocalParameterfvARB)
-#define glGetProgramStringARB GLEW_GET_FUN(__glewGetProgramStringARB)
-#define glGetProgramivARB GLEW_GET_FUN(__glewGetProgramivARB)
-#define glGetVertexAttribPointervARB GLEW_GET_FUN(__glewGetVertexAttribPointervARB)
-#define glGetVertexAttribdvARB GLEW_GET_FUN(__glewGetVertexAttribdvARB)
-#define glGetVertexAttribfvARB GLEW_GET_FUN(__glewGetVertexAttribfvARB)
-#define glGetVertexAttribivARB GLEW_GET_FUN(__glewGetVertexAttribivARB)
-#define glIsProgramARB GLEW_GET_FUN(__glewIsProgramARB)
-#define glProgramEnvParameter4dARB GLEW_GET_FUN(__glewProgramEnvParameter4dARB)
-#define glProgramEnvParameter4dvARB GLEW_GET_FUN(__glewProgramEnvParameter4dvARB)
-#define glProgramEnvParameter4fARB GLEW_GET_FUN(__glewProgramEnvParameter4fARB)
-#define glProgramEnvParameter4fvARB GLEW_GET_FUN(__glewProgramEnvParameter4fvARB)
-#define glProgramLocalParameter4dARB GLEW_GET_FUN(__glewProgramLocalParameter4dARB)
-#define glProgramLocalParameter4dvARB GLEW_GET_FUN(__glewProgramLocalParameter4dvARB)
-#define glProgramLocalParameter4fARB GLEW_GET_FUN(__glewProgramLocalParameter4fARB)
-#define glProgramLocalParameter4fvARB GLEW_GET_FUN(__glewProgramLocalParameter4fvARB)
-#define glProgramStringARB GLEW_GET_FUN(__glewProgramStringARB)
-#define glVertexAttrib1dARB GLEW_GET_FUN(__glewVertexAttrib1dARB)
-#define glVertexAttrib1dvARB GLEW_GET_FUN(__glewVertexAttrib1dvARB)
-#define glVertexAttrib1fARB GLEW_GET_FUN(__glewVertexAttrib1fARB)
-#define glVertexAttrib1fvARB GLEW_GET_FUN(__glewVertexAttrib1fvARB)
-#define glVertexAttrib1sARB GLEW_GET_FUN(__glewVertexAttrib1sARB)
-#define glVertexAttrib1svARB GLEW_GET_FUN(__glewVertexAttrib1svARB)
-#define glVertexAttrib2dARB GLEW_GET_FUN(__glewVertexAttrib2dARB)
-#define glVertexAttrib2dvARB GLEW_GET_FUN(__glewVertexAttrib2dvARB)
-#define glVertexAttrib2fARB GLEW_GET_FUN(__glewVertexAttrib2fARB)
-#define glVertexAttrib2fvARB GLEW_GET_FUN(__glewVertexAttrib2fvARB)
-#define glVertexAttrib2sARB GLEW_GET_FUN(__glewVertexAttrib2sARB)
-#define glVertexAttrib2svARB GLEW_GET_FUN(__glewVertexAttrib2svARB)
-#define glVertexAttrib3dARB GLEW_GET_FUN(__glewVertexAttrib3dARB)
-#define glVertexAttrib3dvARB GLEW_GET_FUN(__glewVertexAttrib3dvARB)
-#define glVertexAttrib3fARB GLEW_GET_FUN(__glewVertexAttrib3fARB)
-#define glVertexAttrib3fvARB GLEW_GET_FUN(__glewVertexAttrib3fvARB)
-#define glVertexAttrib3sARB GLEW_GET_FUN(__glewVertexAttrib3sARB)
-#define glVertexAttrib3svARB GLEW_GET_FUN(__glewVertexAttrib3svARB)
-#define glVertexAttrib4NbvARB GLEW_GET_FUN(__glewVertexAttrib4NbvARB)
-#define glVertexAttrib4NivARB GLEW_GET_FUN(__glewVertexAttrib4NivARB)
-#define glVertexAttrib4NsvARB GLEW_GET_FUN(__glewVertexAttrib4NsvARB)
-#define glVertexAttrib4NubARB GLEW_GET_FUN(__glewVertexAttrib4NubARB)
-#define glVertexAttrib4NubvARB GLEW_GET_FUN(__glewVertexAttrib4NubvARB)
-#define glVertexAttrib4NuivARB GLEW_GET_FUN(__glewVertexAttrib4NuivARB)
-#define glVertexAttrib4NusvARB GLEW_GET_FUN(__glewVertexAttrib4NusvARB)
-#define glVertexAttrib4bvARB GLEW_GET_FUN(__glewVertexAttrib4bvARB)
-#define glVertexAttrib4dARB GLEW_GET_FUN(__glewVertexAttrib4dARB)
-#define glVertexAttrib4dvARB GLEW_GET_FUN(__glewVertexAttrib4dvARB)
-#define glVertexAttrib4fARB GLEW_GET_FUN(__glewVertexAttrib4fARB)
-#define glVertexAttrib4fvARB GLEW_GET_FUN(__glewVertexAttrib4fvARB)
-#define glVertexAttrib4ivARB GLEW_GET_FUN(__glewVertexAttrib4ivARB)
-#define glVertexAttrib4sARB GLEW_GET_FUN(__glewVertexAttrib4sARB)
-#define glVertexAttrib4svARB GLEW_GET_FUN(__glewVertexAttrib4svARB)
-#define glVertexAttrib4ubvARB GLEW_GET_FUN(__glewVertexAttrib4ubvARB)
-#define glVertexAttrib4uivARB GLEW_GET_FUN(__glewVertexAttrib4uivARB)
-#define glVertexAttrib4usvARB GLEW_GET_FUN(__glewVertexAttrib4usvARB)
-#define glVertexAttribPointerARB GLEW_GET_FUN(__glewVertexAttribPointerARB)
-
-#define GLEW_ARB_vertex_program GLEW_GET_VAR(__GLEW_ARB_vertex_program)
-
-#endif /* GL_ARB_vertex_program */
-
-/* -------------------------- GL_ARB_vertex_shader ------------------------- */
-
-#ifndef GL_ARB_vertex_shader
-#define GL_ARB_vertex_shader 1
-
-#define GL_VERTEX_SHADER_ARB 0x8B31
-#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
-#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
-#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
-#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
-#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
-
-typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB* name);
-typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name);
-typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name);
-
-#define glBindAttribLocationARB GLEW_GET_FUN(__glewBindAttribLocationARB)
-#define glGetActiveAttribARB GLEW_GET_FUN(__glewGetActiveAttribARB)
-#define glGetAttribLocationARB GLEW_GET_FUN(__glewGetAttribLocationARB)
-
-#define GLEW_ARB_vertex_shader GLEW_GET_VAR(__GLEW_ARB_vertex_shader)
-
-#endif /* GL_ARB_vertex_shader */
-
-/* ------------------- GL_ARB_vertex_type_10f_11f_11f_rev ------------------ */
-
-#ifndef GL_ARB_vertex_type_10f_11f_11f_rev
-#define GL_ARB_vertex_type_10f_11f_11f_rev 1
-
-#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
-
-#define GLEW_ARB_vertex_type_10f_11f_11f_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_10f_11f_11f_rev)
-
-#endif /* GL_ARB_vertex_type_10f_11f_11f_rev */
-
-/* ------------------- GL_ARB_vertex_type_2_10_10_10_rev ------------------- */
-
-#ifndef GL_ARB_vertex_type_2_10_10_10_rev
-#define GL_ARB_vertex_type_2_10_10_10_rev 1
-
-#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
-#define GL_INT_2_10_10_10_REV 0x8D9F
-
-typedef void (GLAPIENTRY * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color);
-typedef void (GLAPIENTRY * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint* color);
-typedef void (GLAPIENTRY * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color);
-typedef void (GLAPIENTRY * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint* color);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint* coords);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint* coords);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint* coords);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint* coords);
-typedef void (GLAPIENTRY * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords);
-typedef void (GLAPIENTRY * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint* coords);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint* color);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint* coords);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint* coords);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint* coords);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint* coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value);
-typedef void (GLAPIENTRY * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value);
-typedef void (GLAPIENTRY * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value);
-typedef void (GLAPIENTRY * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint* value);
-
-#define glColorP3ui GLEW_GET_FUN(__glewColorP3ui)
-#define glColorP3uiv GLEW_GET_FUN(__glewColorP3uiv)
-#define glColorP4ui GLEW_GET_FUN(__glewColorP4ui)
-#define glColorP4uiv GLEW_GET_FUN(__glewColorP4uiv)
-#define glMultiTexCoordP1ui GLEW_GET_FUN(__glewMultiTexCoordP1ui)
-#define glMultiTexCoordP1uiv GLEW_GET_FUN(__glewMultiTexCoordP1uiv)
-#define glMultiTexCoordP2ui GLEW_GET_FUN(__glewMultiTexCoordP2ui)
-#define glMultiTexCoordP2uiv GLEW_GET_FUN(__glewMultiTexCoordP2uiv)
-#define glMultiTexCoordP3ui GLEW_GET_FUN(__glewMultiTexCoordP3ui)
-#define glMultiTexCoordP3uiv GLEW_GET_FUN(__glewMultiTexCoordP3uiv)
-#define glMultiTexCoordP4ui GLEW_GET_FUN(__glewMultiTexCoordP4ui)
-#define glMultiTexCoordP4uiv GLEW_GET_FUN(__glewMultiTexCoordP4uiv)
-#define glNormalP3ui GLEW_GET_FUN(__glewNormalP3ui)
-#define glNormalP3uiv GLEW_GET_FUN(__glewNormalP3uiv)
-#define glSecondaryColorP3ui GLEW_GET_FUN(__glewSecondaryColorP3ui)
-#define glSecondaryColorP3uiv GLEW_GET_FUN(__glewSecondaryColorP3uiv)
-#define glTexCoordP1ui GLEW_GET_FUN(__glewTexCoordP1ui)
-#define glTexCoordP1uiv GLEW_GET_FUN(__glewTexCoordP1uiv)
-#define glTexCoordP2ui GLEW_GET_FUN(__glewTexCoordP2ui)
-#define glTexCoordP2uiv GLEW_GET_FUN(__glewTexCoordP2uiv)
-#define glTexCoordP3ui GLEW_GET_FUN(__glewTexCoordP3ui)
-#define glTexCoordP3uiv GLEW_GET_FUN(__glewTexCoordP3uiv)
-#define glTexCoordP4ui GLEW_GET_FUN(__glewTexCoordP4ui)
-#define glTexCoordP4uiv GLEW_GET_FUN(__glewTexCoordP4uiv)
-#define glVertexAttribP1ui GLEW_GET_FUN(__glewVertexAttribP1ui)
-#define glVertexAttribP1uiv GLEW_GET_FUN(__glewVertexAttribP1uiv)
-#define glVertexAttribP2ui GLEW_GET_FUN(__glewVertexAttribP2ui)
-#define glVertexAttribP2uiv GLEW_GET_FUN(__glewVertexAttribP2uiv)
-#define glVertexAttribP3ui GLEW_GET_FUN(__glewVertexAttribP3ui)
-#define glVertexAttribP3uiv GLEW_GET_FUN(__glewVertexAttribP3uiv)
-#define glVertexAttribP4ui GLEW_GET_FUN(__glewVertexAttribP4ui)
-#define glVertexAttribP4uiv GLEW_GET_FUN(__glewVertexAttribP4uiv)
-#define glVertexP2ui GLEW_GET_FUN(__glewVertexP2ui)
-#define glVertexP2uiv GLEW_GET_FUN(__glewVertexP2uiv)
-#define glVertexP3ui GLEW_GET_FUN(__glewVertexP3ui)
-#define glVertexP3uiv GLEW_GET_FUN(__glewVertexP3uiv)
-#define glVertexP4ui GLEW_GET_FUN(__glewVertexP4ui)
-#define glVertexP4uiv GLEW_GET_FUN(__glewVertexP4uiv)
-
-#define GLEW_ARB_vertex_type_2_10_10_10_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_2_10_10_10_rev)
-
-#endif /* GL_ARB_vertex_type_2_10_10_10_rev */
-
-/* ------------------------- GL_ARB_viewport_array ------------------------- */
-
-#ifndef GL_ARB_viewport_array
-#define GL_ARB_viewport_array 1
-
-#define GL_DEPTH_RANGE 0x0B70
-#define GL_VIEWPORT 0x0BA2
-#define GL_SCISSOR_BOX 0x0C10
-#define GL_SCISSOR_TEST 0x0C11
-#define GL_MAX_VIEWPORTS 0x825B
-#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C
-#define GL_VIEWPORT_BOUNDS_RANGE 0x825D
-#define GL_LAYER_PROVOKING_VERTEX 0x825E
-#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F
-#define GL_UNDEFINED_VERTEX 0x8260
-#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
-#define GL_LAST_VERTEX_CONVENTION 0x8E4E
-#define GL_PROVOKING_VERTEX 0x8E4F
-
-typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd * v);
-typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f);
-typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble* data);
-typedef void (GLAPIENTRY * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat* data);
-typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint * v);
-typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint * v);
-typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat * v);
-typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
-typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat * v);
-
-#define glDepthRangeArrayv GLEW_GET_FUN(__glewDepthRangeArrayv)
-#define glDepthRangeIndexed GLEW_GET_FUN(__glewDepthRangeIndexed)
-#define glGetDoublei_v GLEW_GET_FUN(__glewGetDoublei_v)
-#define glGetFloati_v GLEW_GET_FUN(__glewGetFloati_v)
-#define glScissorArrayv GLEW_GET_FUN(__glewScissorArrayv)
-#define glScissorIndexed GLEW_GET_FUN(__glewScissorIndexed)
-#define glScissorIndexedv GLEW_GET_FUN(__glewScissorIndexedv)
-#define glViewportArrayv GLEW_GET_FUN(__glewViewportArrayv)
-#define glViewportIndexedf GLEW_GET_FUN(__glewViewportIndexedf)
-#define glViewportIndexedfv GLEW_GET_FUN(__glewViewportIndexedfv)
-
-#define GLEW_ARB_viewport_array GLEW_GET_VAR(__GLEW_ARB_viewport_array)
-
-#endif /* GL_ARB_viewport_array */
-
-/* --------------------------- GL_ARB_window_pos --------------------------- */
-
-#ifndef GL_ARB_window_pos
-#define GL_ARB_window_pos 1
-
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVARBPROC) (const GLint* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVARBPROC) (const GLshort* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVARBPROC) (const GLint* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p);
-
-#define glWindowPos2dARB GLEW_GET_FUN(__glewWindowPos2dARB)
-#define glWindowPos2dvARB GLEW_GET_FUN(__glewWindowPos2dvARB)
-#define glWindowPos2fARB GLEW_GET_FUN(__glewWindowPos2fARB)
-#define glWindowPos2fvARB GLEW_GET_FUN(__glewWindowPos2fvARB)
-#define glWindowPos2iARB GLEW_GET_FUN(__glewWindowPos2iARB)
-#define glWindowPos2ivARB GLEW_GET_FUN(__glewWindowPos2ivARB)
-#define glWindowPos2sARB GLEW_GET_FUN(__glewWindowPos2sARB)
-#define glWindowPos2svARB GLEW_GET_FUN(__glewWindowPos2svARB)
-#define glWindowPos3dARB GLEW_GET_FUN(__glewWindowPos3dARB)
-#define glWindowPos3dvARB GLEW_GET_FUN(__glewWindowPos3dvARB)
-#define glWindowPos3fARB GLEW_GET_FUN(__glewWindowPos3fARB)
-#define glWindowPos3fvARB GLEW_GET_FUN(__glewWindowPos3fvARB)
-#define glWindowPos3iARB GLEW_GET_FUN(__glewWindowPos3iARB)
-#define glWindowPos3ivARB GLEW_GET_FUN(__glewWindowPos3ivARB)
-#define glWindowPos3sARB GLEW_GET_FUN(__glewWindowPos3sARB)
-#define glWindowPos3svARB GLEW_GET_FUN(__glewWindowPos3svARB)
-
-#define GLEW_ARB_window_pos GLEW_GET_VAR(__GLEW_ARB_window_pos)
-
-#endif /* GL_ARB_window_pos */
-
-/* ----------------------- GL_ARM_mali_program_binary ---------------------- */
-
-#ifndef GL_ARM_mali_program_binary
-#define GL_ARM_mali_program_binary 1
-
-#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61
-
-#define GLEW_ARM_mali_program_binary GLEW_GET_VAR(__GLEW_ARM_mali_program_binary)
-
-#endif /* GL_ARM_mali_program_binary */
-
-/* ----------------------- GL_ARM_mali_shader_binary ----------------------- */
-
-#ifndef GL_ARM_mali_shader_binary
-#define GL_ARM_mali_shader_binary 1
-
-#define GL_MALI_SHADER_BINARY_ARM 0x8F60
-
-#define GLEW_ARM_mali_shader_binary GLEW_GET_VAR(__GLEW_ARM_mali_shader_binary)
-
-#endif /* GL_ARM_mali_shader_binary */
-
-/* ------------------------------ GL_ARM_rgba8 ----------------------------- */
-
-#ifndef GL_ARM_rgba8
-#define GL_ARM_rgba8 1
-
-#define GL_RGBA8_OES 0x8058
-
-#define GLEW_ARM_rgba8 GLEW_GET_VAR(__GLEW_ARM_rgba8)
-
-#endif /* GL_ARM_rgba8 */
-
-/* -------------------- GL_ARM_shader_framebuffer_fetch -------------------- */
-
-#ifndef GL_ARM_shader_framebuffer_fetch
-#define GL_ARM_shader_framebuffer_fetch 1
-
-#define GL_FETCH_PER_SAMPLE_ARM 0x8F65
-#define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66
-
-#define GLEW_ARM_shader_framebuffer_fetch GLEW_GET_VAR(__GLEW_ARM_shader_framebuffer_fetch)
-
-#endif /* GL_ARM_shader_framebuffer_fetch */
-
-/* ------------- GL_ARM_shader_framebuffer_fetch_depth_stencil ------------- */
-
-#ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil
-#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1
-
-#define GLEW_ARM_shader_framebuffer_fetch_depth_stencil GLEW_GET_VAR(__GLEW_ARM_shader_framebuffer_fetch_depth_stencil)
-
-#endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */
-
-/* ---------------- GL_ARM_texture_unnormalized_coordinates ---------------- */
-
-#ifndef GL_ARM_texture_unnormalized_coordinates
-#define GL_ARM_texture_unnormalized_coordinates 1
-
-#define GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM 0x8F6A
-
-#define GLEW_ARM_texture_unnormalized_coordinates GLEW_GET_VAR(__GLEW_ARM_texture_unnormalized_coordinates)
-
-#endif /* GL_ARM_texture_unnormalized_coordinates */
-
-/* ------------------------- GL_ATIX_point_sprites ------------------------- */
-
-#ifndef GL_ATIX_point_sprites
-#define GL_ATIX_point_sprites 1
-
-#define GL_TEXTURE_POINT_MODE_ATIX 0x60B0
-#define GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1
-#define GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2
-#define GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3
-#define GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4
-#define GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5
-
-#define GLEW_ATIX_point_sprites GLEW_GET_VAR(__GLEW_ATIX_point_sprites)
-
-#endif /* GL_ATIX_point_sprites */
-
-/* ---------------------- GL_ATIX_texture_env_combine3 --------------------- */
-
-#ifndef GL_ATIX_texture_env_combine3
-#define GL_ATIX_texture_env_combine3 1
-
-#define GL_MODULATE_ADD_ATIX 0x8744
-#define GL_MODULATE_SIGNED_ADD_ATIX 0x8745
-#define GL_MODULATE_SUBTRACT_ATIX 0x8746
-
-#define GLEW_ATIX_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATIX_texture_env_combine3)
-
-#endif /* GL_ATIX_texture_env_combine3 */
-
-/* ----------------------- GL_ATIX_texture_env_route ----------------------- */
-
-#ifndef GL_ATIX_texture_env_route
-#define GL_ATIX_texture_env_route 1
-
-#define GL_SECONDARY_COLOR_ATIX 0x8747
-#define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748
-#define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749
-
-#define GLEW_ATIX_texture_env_route GLEW_GET_VAR(__GLEW_ATIX_texture_env_route)
-
-#endif /* GL_ATIX_texture_env_route */
-
-/* ---------------- GL_ATIX_vertex_shader_output_point_size ---------------- */
-
-#ifndef GL_ATIX_vertex_shader_output_point_size
-#define GL_ATIX_vertex_shader_output_point_size 1
-
-#define GL_OUTPUT_POINT_SIZE_ATIX 0x610E
-
-#define GLEW_ATIX_vertex_shader_output_point_size GLEW_GET_VAR(__GLEW_ATIX_vertex_shader_output_point_size)
-
-#endif /* GL_ATIX_vertex_shader_output_point_size */
-
-/* -------------------------- GL_ATI_draw_buffers -------------------------- */
-
-#ifndef GL_ATI_draw_buffers
-#define GL_ATI_draw_buffers 1
-
-#define GL_MAX_DRAW_BUFFERS_ATI 0x8824
-#define GL_DRAW_BUFFER0_ATI 0x8825
-#define GL_DRAW_BUFFER1_ATI 0x8826
-#define GL_DRAW_BUFFER2_ATI 0x8827
-#define GL_DRAW_BUFFER3_ATI 0x8828
-#define GL_DRAW_BUFFER4_ATI 0x8829
-#define GL_DRAW_BUFFER5_ATI 0x882A
-#define GL_DRAW_BUFFER6_ATI 0x882B
-#define GL_DRAW_BUFFER7_ATI 0x882C
-#define GL_DRAW_BUFFER8_ATI 0x882D
-#define GL_DRAW_BUFFER9_ATI 0x882E
-#define GL_DRAW_BUFFER10_ATI 0x882F
-#define GL_DRAW_BUFFER11_ATI 0x8830
-#define GL_DRAW_BUFFER12_ATI 0x8831
-#define GL_DRAW_BUFFER13_ATI 0x8832
-#define GL_DRAW_BUFFER14_ATI 0x8833
-#define GL_DRAW_BUFFER15_ATI 0x8834
-
-typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum* bufs);
-
-#define glDrawBuffersATI GLEW_GET_FUN(__glewDrawBuffersATI)
-
-#define GLEW_ATI_draw_buffers GLEW_GET_VAR(__GLEW_ATI_draw_buffers)
-
-#endif /* GL_ATI_draw_buffers */
-
-/* -------------------------- GL_ATI_element_array ------------------------- */
-
-#ifndef GL_ATI_element_array
-#define GL_ATI_element_array 1
-
-#define GL_ELEMENT_ARRAY_ATI 0x8768
-#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769
-#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A
-
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count);
-typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count);
-typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void *pointer);
-
-#define glDrawElementArrayATI GLEW_GET_FUN(__glewDrawElementArrayATI)
-#define glDrawRangeElementArrayATI GLEW_GET_FUN(__glewDrawRangeElementArrayATI)
-#define glElementPointerATI GLEW_GET_FUN(__glewElementPointerATI)
-
-#define GLEW_ATI_element_array GLEW_GET_VAR(__GLEW_ATI_element_array)
-
-#endif /* GL_ATI_element_array */
-
-/* ------------------------- GL_ATI_envmap_bumpmap ------------------------- */
-
-#ifndef GL_ATI_envmap_bumpmap
-#define GL_ATI_envmap_bumpmap 1
-
-#define GL_BUMP_ROT_MATRIX_ATI 0x8775
-#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
-#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
-#define GL_BUMP_TEX_UNITS_ATI 0x8778
-#define GL_DUDV_ATI 0x8779
-#define GL_DU8DV8_ATI 0x877A
-#define GL_BUMP_ENVMAP_ATI 0x877B
-#define GL_BUMP_TARGET_ATI 0x877C
-
-typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param);
-typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param);
-typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param);
-typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param);
-
-#define glGetTexBumpParameterfvATI GLEW_GET_FUN(__glewGetTexBumpParameterfvATI)
-#define glGetTexBumpParameterivATI GLEW_GET_FUN(__glewGetTexBumpParameterivATI)
-#define glTexBumpParameterfvATI GLEW_GET_FUN(__glewTexBumpParameterfvATI)
-#define glTexBumpParameterivATI GLEW_GET_FUN(__glewTexBumpParameterivATI)
-
-#define GLEW_ATI_envmap_bumpmap GLEW_GET_VAR(__GLEW_ATI_envmap_bumpmap)
-
-#endif /* GL_ATI_envmap_bumpmap */
-
-/* ------------------------- GL_ATI_fragment_shader ------------------------ */
-
-#ifndef GL_ATI_fragment_shader
-#define GL_ATI_fragment_shader 1
-
-#define GL_2X_BIT_ATI 0x00000001
-#define GL_RED_BIT_ATI 0x00000001
-#define GL_4X_BIT_ATI 0x00000002
-#define GL_COMP_BIT_ATI 0x00000002
-#define GL_GREEN_BIT_ATI 0x00000002
-#define GL_8X_BIT_ATI 0x00000004
-#define GL_BLUE_BIT_ATI 0x00000004
-#define GL_NEGATE_BIT_ATI 0x00000004
-#define GL_BIAS_BIT_ATI 0x00000008
-#define GL_HALF_BIT_ATI 0x00000008
-#define GL_QUARTER_BIT_ATI 0x00000010
-#define GL_EIGHTH_BIT_ATI 0x00000020
-#define GL_SATURATE_BIT_ATI 0x00000040
-#define GL_FRAGMENT_SHADER_ATI 0x8920
-#define GL_REG_0_ATI 0x8921
-#define GL_REG_1_ATI 0x8922
-#define GL_REG_2_ATI 0x8923
-#define GL_REG_3_ATI 0x8924
-#define GL_REG_4_ATI 0x8925
-#define GL_REG_5_ATI 0x8926
-#define GL_CON_0_ATI 0x8941
-#define GL_CON_1_ATI 0x8942
-#define GL_CON_2_ATI 0x8943
-#define GL_CON_3_ATI 0x8944
-#define GL_CON_4_ATI 0x8945
-#define GL_CON_5_ATI 0x8946
-#define GL_CON_6_ATI 0x8947
-#define GL_CON_7_ATI 0x8948
-#define GL_MOV_ATI 0x8961
-#define GL_ADD_ATI 0x8963
-#define GL_MUL_ATI 0x8964
-#define GL_SUB_ATI 0x8965
-#define GL_DOT3_ATI 0x8966
-#define GL_DOT4_ATI 0x8967
-#define GL_MAD_ATI 0x8968
-#define GL_LERP_ATI 0x8969
-#define GL_CND_ATI 0x896A
-#define GL_CND0_ATI 0x896B
-#define GL_DOT2_ADD_ATI 0x896C
-#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D
-#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
-#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
-#define GL_NUM_PASSES_ATI 0x8970
-#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
-#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
-#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
-#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
-#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975
-#define GL_SWIZZLE_STR_ATI 0x8976
-#define GL_SWIZZLE_STQ_ATI 0x8977
-#define GL_SWIZZLE_STR_DR_ATI 0x8978
-#define GL_SWIZZLE_STQ_DQ_ATI 0x8979
-#define GL_SWIZZLE_STRQ_ATI 0x897A
-#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B
-
-typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
-typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
-typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
-typedef void (GLAPIENTRY * PFNGLBEGINFRAGMENTSHADERATIPROC) (void);
-typedef void (GLAPIENTRY * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
-typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
-typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
-typedef void (GLAPIENTRY * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLENDFRAGMENTSHADERATIPROC) (void);
-typedef GLuint (GLAPIENTRY * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range);
-typedef void (GLAPIENTRY * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle);
-typedef void (GLAPIENTRY * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle);
-typedef void (GLAPIENTRY * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat* value);
-
-#define glAlphaFragmentOp1ATI GLEW_GET_FUN(__glewAlphaFragmentOp1ATI)
-#define glAlphaFragmentOp2ATI GLEW_GET_FUN(__glewAlphaFragmentOp2ATI)
-#define glAlphaFragmentOp3ATI GLEW_GET_FUN(__glewAlphaFragmentOp3ATI)
-#define glBeginFragmentShaderATI GLEW_GET_FUN(__glewBeginFragmentShaderATI)
-#define glBindFragmentShaderATI GLEW_GET_FUN(__glewBindFragmentShaderATI)
-#define glColorFragmentOp1ATI GLEW_GET_FUN(__glewColorFragmentOp1ATI)
-#define glColorFragmentOp2ATI GLEW_GET_FUN(__glewColorFragmentOp2ATI)
-#define glColorFragmentOp3ATI GLEW_GET_FUN(__glewColorFragmentOp3ATI)
-#define glDeleteFragmentShaderATI GLEW_GET_FUN(__glewDeleteFragmentShaderATI)
-#define glEndFragmentShaderATI GLEW_GET_FUN(__glewEndFragmentShaderATI)
-#define glGenFragmentShadersATI GLEW_GET_FUN(__glewGenFragmentShadersATI)
-#define glPassTexCoordATI GLEW_GET_FUN(__glewPassTexCoordATI)
-#define glSampleMapATI GLEW_GET_FUN(__glewSampleMapATI)
-#define glSetFragmentShaderConstantATI GLEW_GET_FUN(__glewSetFragmentShaderConstantATI)
-
-#define GLEW_ATI_fragment_shader GLEW_GET_VAR(__GLEW_ATI_fragment_shader)
-
-#endif /* GL_ATI_fragment_shader */
-
-/* ------------------------ GL_ATI_map_object_buffer ----------------------- */
-
-#ifndef GL_ATI_map_object_buffer
-#define GL_ATI_map_object_buffer 1
-
-typedef void * (GLAPIENTRY * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer);
-
-#define glMapObjectBufferATI GLEW_GET_FUN(__glewMapObjectBufferATI)
-#define glUnmapObjectBufferATI GLEW_GET_FUN(__glewUnmapObjectBufferATI)
-
-#define GLEW_ATI_map_object_buffer GLEW_GET_VAR(__GLEW_ATI_map_object_buffer)
-
-#endif /* GL_ATI_map_object_buffer */
-
-/* ----------------------------- GL_ATI_meminfo ---------------------------- */
-
-#ifndef GL_ATI_meminfo
-#define GL_ATI_meminfo 1
-
-#define GL_VBO_FREE_MEMORY_ATI 0x87FB
-#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC
-#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD
-
-#define GLEW_ATI_meminfo GLEW_GET_VAR(__GLEW_ATI_meminfo)
-
-#endif /* GL_ATI_meminfo */
-
-/* -------------------------- GL_ATI_pn_triangles -------------------------- */
-
-#ifndef GL_ATI_pn_triangles
-#define GL_ATI_pn_triangles 1
-
-#define GL_PN_TRIANGLES_ATI 0x87F0
-#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
-#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
-#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
-#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
-#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
-#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
-#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
-#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
-
-typedef void (GLAPIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param);
-
-#define glPNTrianglesfATI GLEW_GET_FUN(__glewPNTrianglesfATI)
-#define glPNTrianglesiATI GLEW_GET_FUN(__glewPNTrianglesiATI)
-
-#define GLEW_ATI_pn_triangles GLEW_GET_VAR(__GLEW_ATI_pn_triangles)
-
-#endif /* GL_ATI_pn_triangles */
-
-/* ------------------------ GL_ATI_separate_stencil ------------------------ */
-
-#ifndef GL_ATI_separate_stencil
-#define GL_ATI_separate_stencil 1
-
-#define GL_STENCIL_BACK_FUNC_ATI 0x8800
-#define GL_STENCIL_BACK_FAIL_ATI 0x8801
-#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
-#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
-
-typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
-typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
-
-#define glStencilFuncSeparateATI GLEW_GET_FUN(__glewStencilFuncSeparateATI)
-#define glStencilOpSeparateATI GLEW_GET_FUN(__glewStencilOpSeparateATI)
-
-#define GLEW_ATI_separate_stencil GLEW_GET_VAR(__GLEW_ATI_separate_stencil)
-
-#endif /* GL_ATI_separate_stencil */
-
-/* ----------------------- GL_ATI_shader_texture_lod ----------------------- */
-
-#ifndef GL_ATI_shader_texture_lod
-#define GL_ATI_shader_texture_lod 1
-
-#define GLEW_ATI_shader_texture_lod GLEW_GET_VAR(__GLEW_ATI_shader_texture_lod)
-
-#endif /* GL_ATI_shader_texture_lod */
-
-/* ---------------------- GL_ATI_text_fragment_shader ---------------------- */
-
-#ifndef GL_ATI_text_fragment_shader
-#define GL_ATI_text_fragment_shader 1
-
-#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200
-
-#define GLEW_ATI_text_fragment_shader GLEW_GET_VAR(__GLEW_ATI_text_fragment_shader)
-
-#endif /* GL_ATI_text_fragment_shader */
-
-/* --------------------- GL_ATI_texture_compression_3dc -------------------- */
-
-#ifndef GL_ATI_texture_compression_3dc
-#define GL_ATI_texture_compression_3dc 1
-
-#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837
-
-#define GLEW_ATI_texture_compression_3dc GLEW_GET_VAR(__GLEW_ATI_texture_compression_3dc)
-
-#endif /* GL_ATI_texture_compression_3dc */
-
-/* ---------------------- GL_ATI_texture_env_combine3 ---------------------- */
-
-#ifndef GL_ATI_texture_env_combine3
-#define GL_ATI_texture_env_combine3 1
-
-#define GL_MODULATE_ADD_ATI 0x8744
-#define GL_MODULATE_SIGNED_ADD_ATI 0x8745
-#define GL_MODULATE_SUBTRACT_ATI 0x8746
-
-#define GLEW_ATI_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATI_texture_env_combine3)
-
-#endif /* GL_ATI_texture_env_combine3 */
-
-/* -------------------------- GL_ATI_texture_float ------------------------- */
-
-#ifndef GL_ATI_texture_float
-#define GL_ATI_texture_float 1
-
-#define GL_RGBA_FLOAT32_ATI 0x8814
-#define GL_RGB_FLOAT32_ATI 0x8815
-#define GL_ALPHA_FLOAT32_ATI 0x8816
-#define GL_INTENSITY_FLOAT32_ATI 0x8817
-#define GL_LUMINANCE_FLOAT32_ATI 0x8818
-#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
-#define GL_RGBA_FLOAT16_ATI 0x881A
-#define GL_RGB_FLOAT16_ATI 0x881B
-#define GL_ALPHA_FLOAT16_ATI 0x881C
-#define GL_INTENSITY_FLOAT16_ATI 0x881D
-#define GL_LUMINANCE_FLOAT16_ATI 0x881E
-#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
-
-#define GLEW_ATI_texture_float GLEW_GET_VAR(__GLEW_ATI_texture_float)
-
-#endif /* GL_ATI_texture_float */
-
-/* ----------------------- GL_ATI_texture_mirror_once ---------------------- */
-
-#ifndef GL_ATI_texture_mirror_once
-#define GL_ATI_texture_mirror_once 1
-
-#define GL_MIRROR_CLAMP_ATI 0x8742
-#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743
-
-#define GLEW_ATI_texture_mirror_once GLEW_GET_VAR(__GLEW_ATI_texture_mirror_once)
-
-#endif /* GL_ATI_texture_mirror_once */
-
-/* ----------------------- GL_ATI_vertex_array_object ---------------------- */
-
-#ifndef GL_ATI_vertex_array_object
-#define GL_ATI_vertex_array_object 1
-
-#define GL_STATIC_ATI 0x8760
-#define GL_DYNAMIC_ATI 0x8761
-#define GL_PRESERVE_ATI 0x8762
-#define GL_DISCARD_ATI 0x8763
-#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764
-#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765
-#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766
-#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767
-
-typedef void (GLAPIENTRY * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
-typedef void (GLAPIENTRY * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer);
-typedef GLuint (GLAPIENTRY * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void *pointer, GLenum usage);
-typedef void (GLAPIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve);
-typedef void (GLAPIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
-
-#define glArrayObjectATI GLEW_GET_FUN(__glewArrayObjectATI)
-#define glFreeObjectBufferATI GLEW_GET_FUN(__glewFreeObjectBufferATI)
-#define glGetArrayObjectfvATI GLEW_GET_FUN(__glewGetArrayObjectfvATI)
-#define glGetArrayObjectivATI GLEW_GET_FUN(__glewGetArrayObjectivATI)
-#define glGetObjectBufferfvATI GLEW_GET_FUN(__glewGetObjectBufferfvATI)
-#define glGetObjectBufferivATI GLEW_GET_FUN(__glewGetObjectBufferivATI)
-#define glGetVariantArrayObjectfvATI GLEW_GET_FUN(__glewGetVariantArrayObjectfvATI)
-#define glGetVariantArrayObjectivATI GLEW_GET_FUN(__glewGetVariantArrayObjectivATI)
-#define glIsObjectBufferATI GLEW_GET_FUN(__glewIsObjectBufferATI)
-#define glNewObjectBufferATI GLEW_GET_FUN(__glewNewObjectBufferATI)
-#define glUpdateObjectBufferATI GLEW_GET_FUN(__glewUpdateObjectBufferATI)
-#define glVariantArrayObjectATI GLEW_GET_FUN(__glewVariantArrayObjectATI)
-
-#define GLEW_ATI_vertex_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_array_object)
-
-#endif /* GL_ATI_vertex_array_object */
-
-/* ------------------- GL_ATI_vertex_attrib_array_object ------------------- */
-
-#ifndef GL_ATI_vertex_attrib_array_object
-#define GL_ATI_vertex_attrib_array_object 1
-
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
-
-#define glGetVertexAttribArrayObjectfvATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectfvATI)
-#define glGetVertexAttribArrayObjectivATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectivATI)
-#define glVertexAttribArrayObjectATI GLEW_GET_FUN(__glewVertexAttribArrayObjectATI)
-
-#define GLEW_ATI_vertex_attrib_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_attrib_array_object)
-
-#endif /* GL_ATI_vertex_attrib_array_object */
-
-/* ------------------------- GL_ATI_vertex_streams ------------------------- */
-
-#ifndef GL_ATI_vertex_streams
-#define GL_ATI_vertex_streams 1
-
-#define GL_MAX_VERTEX_STREAMS_ATI 0x876B
-#define GL_VERTEX_SOURCE_ATI 0x876C
-#define GL_VERTEX_STREAM0_ATI 0x876D
-#define GL_VERTEX_STREAM1_ATI 0x876E
-#define GL_VERTEX_STREAM2_ATI 0x876F
-#define GL_VERTEX_STREAM3_ATI 0x8770
-#define GL_VERTEX_STREAM4_ATI 0x8771
-#define GL_VERTEX_STREAM5_ATI 0x8772
-#define GL_VERTEX_STREAM6_ATI 0x8773
-#define GL_VERTEX_STREAM7_ATI 0x8774
-
-typedef void (GLAPIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream);
-typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z);
-typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords);
-typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
-typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
-typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
-typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
-typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
-typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords);
-
-#define glClientActiveVertexStreamATI GLEW_GET_FUN(__glewClientActiveVertexStreamATI)
-#define glNormalStream3bATI GLEW_GET_FUN(__glewNormalStream3bATI)
-#define glNormalStream3bvATI GLEW_GET_FUN(__glewNormalStream3bvATI)
-#define glNormalStream3dATI GLEW_GET_FUN(__glewNormalStream3dATI)
-#define glNormalStream3dvATI GLEW_GET_FUN(__glewNormalStream3dvATI)
-#define glNormalStream3fATI GLEW_GET_FUN(__glewNormalStream3fATI)
-#define glNormalStream3fvATI GLEW_GET_FUN(__glewNormalStream3fvATI)
-#define glNormalStream3iATI GLEW_GET_FUN(__glewNormalStream3iATI)
-#define glNormalStream3ivATI GLEW_GET_FUN(__glewNormalStream3ivATI)
-#define glNormalStream3sATI GLEW_GET_FUN(__glewNormalStream3sATI)
-#define glNormalStream3svATI GLEW_GET_FUN(__glewNormalStream3svATI)
-#define glVertexBlendEnvfATI GLEW_GET_FUN(__glewVertexBlendEnvfATI)
-#define glVertexBlendEnviATI GLEW_GET_FUN(__glewVertexBlendEnviATI)
-#define glVertexStream1dATI GLEW_GET_FUN(__glewVertexStream1dATI)
-#define glVertexStream1dvATI GLEW_GET_FUN(__glewVertexStream1dvATI)
-#define glVertexStream1fATI GLEW_GET_FUN(__glewVertexStream1fATI)
-#define glVertexStream1fvATI GLEW_GET_FUN(__glewVertexStream1fvATI)
-#define glVertexStream1iATI GLEW_GET_FUN(__glewVertexStream1iATI)
-#define glVertexStream1ivATI GLEW_GET_FUN(__glewVertexStream1ivATI)
-#define glVertexStream1sATI GLEW_GET_FUN(__glewVertexStream1sATI)
-#define glVertexStream1svATI GLEW_GET_FUN(__glewVertexStream1svATI)
-#define glVertexStream2dATI GLEW_GET_FUN(__glewVertexStream2dATI)
-#define glVertexStream2dvATI GLEW_GET_FUN(__glewVertexStream2dvATI)
-#define glVertexStream2fATI GLEW_GET_FUN(__glewVertexStream2fATI)
-#define glVertexStream2fvATI GLEW_GET_FUN(__glewVertexStream2fvATI)
-#define glVertexStream2iATI GLEW_GET_FUN(__glewVertexStream2iATI)
-#define glVertexStream2ivATI GLEW_GET_FUN(__glewVertexStream2ivATI)
-#define glVertexStream2sATI GLEW_GET_FUN(__glewVertexStream2sATI)
-#define glVertexStream2svATI GLEW_GET_FUN(__glewVertexStream2svATI)
-#define glVertexStream3dATI GLEW_GET_FUN(__glewVertexStream3dATI)
-#define glVertexStream3dvATI GLEW_GET_FUN(__glewVertexStream3dvATI)
-#define glVertexStream3fATI GLEW_GET_FUN(__glewVertexStream3fATI)
-#define glVertexStream3fvATI GLEW_GET_FUN(__glewVertexStream3fvATI)
-#define glVertexStream3iATI GLEW_GET_FUN(__glewVertexStream3iATI)
-#define glVertexStream3ivATI GLEW_GET_FUN(__glewVertexStream3ivATI)
-#define glVertexStream3sATI GLEW_GET_FUN(__glewVertexStream3sATI)
-#define glVertexStream3svATI GLEW_GET_FUN(__glewVertexStream3svATI)
-#define glVertexStream4dATI GLEW_GET_FUN(__glewVertexStream4dATI)
-#define glVertexStream4dvATI GLEW_GET_FUN(__glewVertexStream4dvATI)
-#define glVertexStream4fATI GLEW_GET_FUN(__glewVertexStream4fATI)
-#define glVertexStream4fvATI GLEW_GET_FUN(__glewVertexStream4fvATI)
-#define glVertexStream4iATI GLEW_GET_FUN(__glewVertexStream4iATI)
-#define glVertexStream4ivATI GLEW_GET_FUN(__glewVertexStream4ivATI)
-#define glVertexStream4sATI GLEW_GET_FUN(__glewVertexStream4sATI)
-#define glVertexStream4svATI GLEW_GET_FUN(__glewVertexStream4svATI)
-
-#define GLEW_ATI_vertex_streams GLEW_GET_VAR(__GLEW_ATI_vertex_streams)
-
-#endif /* GL_ATI_vertex_streams */
-
-/* ------------------------- GL_DMP_program_binary ------------------------- */
-
-#ifndef GL_DMP_program_binary
-#define GL_DMP_program_binary 1
-
-#define GL_SMAPHS30_PROGRAM_BINARY_DMP 0x9251
-#define GL_SMAPHS_PROGRAM_BINARY_DMP 0x9252
-#define GL_DMP_PROGRAM_BINARY_DMP 0x9253
-
-#define GLEW_DMP_program_binary GLEW_GET_VAR(__GLEW_DMP_program_binary)
-
-#endif /* GL_DMP_program_binary */
-
-/* -------------------------- GL_DMP_shader_binary ------------------------- */
-
-#ifndef GL_DMP_shader_binary
-#define GL_DMP_shader_binary 1
-
-#define GL_SHADER_BINARY_DMP 0x9250
-
-#define GLEW_DMP_shader_binary GLEW_GET_VAR(__GLEW_DMP_shader_binary)
-
-#endif /* GL_DMP_shader_binary */
-
-/* --------------------------- GL_EXT_422_pixels --------------------------- */
-
-#ifndef GL_EXT_422_pixels
-#define GL_EXT_422_pixels 1
-
-#define GL_422_EXT 0x80CC
-#define GL_422_REV_EXT 0x80CD
-#define GL_422_AVERAGE_EXT 0x80CE
-#define GL_422_REV_AVERAGE_EXT 0x80CF
-
-#define GLEW_EXT_422_pixels GLEW_GET_VAR(__GLEW_EXT_422_pixels)
-
-#endif /* GL_EXT_422_pixels */
-
-/* ---------------------------- GL_EXT_Cg_shader --------------------------- */
-
-#ifndef GL_EXT_Cg_shader
-#define GL_EXT_Cg_shader 1
-
-#define GL_CG_VERTEX_SHADER_EXT 0x890E
-#define GL_CG_FRAGMENT_SHADER_EXT 0x890F
-
-#define GLEW_EXT_Cg_shader GLEW_GET_VAR(__GLEW_EXT_Cg_shader)
-
-#endif /* GL_EXT_Cg_shader */
-
-/* ------------------------- GL_EXT_EGL_image_array ------------------------ */
-
-#ifndef GL_EXT_EGL_image_array
-#define GL_EXT_EGL_image_array 1
-
-#define GLEW_EXT_EGL_image_array GLEW_GET_VAR(__GLEW_EXT_EGL_image_array)
-
-#endif /* GL_EXT_EGL_image_array */
-
-/* ------------------ GL_EXT_EGL_image_external_wrap_modes ----------------- */
-
-#ifndef GL_EXT_EGL_image_external_wrap_modes
-#define GL_EXT_EGL_image_external_wrap_modes 1
-
-#define GLEW_EXT_EGL_image_external_wrap_modes GLEW_GET_VAR(__GLEW_EXT_EGL_image_external_wrap_modes)
-
-#endif /* GL_EXT_EGL_image_external_wrap_modes */
-
-/* ------------------------ GL_EXT_EGL_image_storage ----------------------- */
-
-#ifndef GL_EXT_EGL_image_storage
-#define GL_EXT_EGL_image_storage 1
-
-typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list);
-typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
-
-#define glEGLImageTargetTexStorageEXT GLEW_GET_FUN(__glewEGLImageTargetTexStorageEXT)
-#define glEGLImageTargetTextureStorageEXT GLEW_GET_FUN(__glewEGLImageTargetTextureStorageEXT)
-
-#define GLEW_EXT_EGL_image_storage GLEW_GET_VAR(__GLEW_EXT_EGL_image_storage)
-
-#endif /* GL_EXT_EGL_image_storage */
-
-/* ---------------------------- GL_EXT_EGL_sync ---------------------------- */
-
-#ifndef GL_EXT_EGL_sync
-#define GL_EXT_EGL_sync 1
-
-#define GLEW_EXT_EGL_sync GLEW_GET_VAR(__GLEW_EXT_EGL_sync)
-
-#endif /* GL_EXT_EGL_sync */
-
-/* --------------------------- GL_EXT_YUV_target --------------------------- */
-
-#ifndef GL_EXT_YUV_target
-#define GL_EXT_YUV_target 1
-
-#define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7
-
-#define GLEW_EXT_YUV_target GLEW_GET_VAR(__GLEW_EXT_YUV_target)
-
-#endif /* GL_EXT_YUV_target */
-
-/* ------------------------------ GL_EXT_abgr ------------------------------ */
-
-#ifndef GL_EXT_abgr
-#define GL_EXT_abgr 1
-
-#define GL_ABGR_EXT 0x8000
-
-#define GLEW_EXT_abgr GLEW_GET_VAR(__GLEW_EXT_abgr)
-
-#endif /* GL_EXT_abgr */
-
-/* -------------------------- GL_EXT_base_instance ------------------------- */
-
-#ifndef GL_EXT_base_instance
-#define GL_EXT_base_instance 1
-
-typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
-
-#define glDrawArraysInstancedBaseInstanceEXT GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstanceEXT)
-#define glDrawElementsInstancedBaseInstanceEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstanceEXT)
-#define glDrawElementsInstancedBaseVertexBaseInstanceEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstanceEXT)
-
-#define GLEW_EXT_base_instance GLEW_GET_VAR(__GLEW_EXT_base_instance)
-
-#endif /* GL_EXT_base_instance */
-
-/* ------------------------------ GL_EXT_bgra ------------------------------ */
-
-#ifndef GL_EXT_bgra
-#define GL_EXT_bgra 1
-
-#define GL_BGR_EXT 0x80E0
-#define GL_BGRA_EXT 0x80E1
-
-#define GLEW_EXT_bgra GLEW_GET_VAR(__GLEW_EXT_bgra)
-
-#endif /* GL_EXT_bgra */
-
-/* ------------------------ GL_EXT_bindable_uniform ------------------------ */
-
-#ifndef GL_EXT_bindable_uniform
-#define GL_EXT_bindable_uniform 1
-
-#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
-#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
-#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
-#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
-#define GL_UNIFORM_BUFFER_EXT 0x8DEE
-#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
-
-typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location);
-typedef GLintptr (GLAPIENTRY * PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location);
-typedef void (GLAPIENTRY * PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer);
-
-#define glGetUniformBufferSizeEXT GLEW_GET_FUN(__glewGetUniformBufferSizeEXT)
-#define glGetUniformOffsetEXT GLEW_GET_FUN(__glewGetUniformOffsetEXT)
-#define glUniformBufferEXT GLEW_GET_FUN(__glewUniformBufferEXT)
-
-#define GLEW_EXT_bindable_uniform GLEW_GET_VAR(__GLEW_EXT_bindable_uniform)
-
-#endif /* GL_EXT_bindable_uniform */
-
-/* --------------------------- GL_EXT_blend_color -------------------------- */
-
-#ifndef GL_EXT_blend_color
-#define GL_EXT_blend_color 1
-
-#define GL_CONSTANT_COLOR_EXT 0x8001
-#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
-#define GL_CONSTANT_ALPHA_EXT 0x8003
-#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
-#define GL_BLEND_COLOR_EXT 0x8005
-
-typedef void (GLAPIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-
-#define glBlendColorEXT GLEW_GET_FUN(__glewBlendColorEXT)
-
-#define GLEW_EXT_blend_color GLEW_GET_VAR(__GLEW_EXT_blend_color)
-
-#endif /* GL_EXT_blend_color */
-
-/* --------------------- GL_EXT_blend_equation_separate -------------------- */
-
-#ifndef GL_EXT_blend_equation_separate
-#define GL_EXT_blend_equation_separate 1
-
-#define GL_BLEND_EQUATION_RGB_EXT 0x8009
-#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D
-
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha);
-
-#define glBlendEquationSeparateEXT GLEW_GET_FUN(__glewBlendEquationSeparateEXT)
-
-#define GLEW_EXT_blend_equation_separate GLEW_GET_VAR(__GLEW_EXT_blend_equation_separate)
-
-#endif /* GL_EXT_blend_equation_separate */
-
-/* ----------------------- GL_EXT_blend_func_extended ---------------------- */
-
-#ifndef GL_EXT_blend_func_extended
-#define GL_EXT_blend_func_extended 1
-
-#define GL_SRC_ALPHA_SATURATE_EXT 0x0308
-#define GL_SRC1_ALPHA_EXT 0x8589
-#define GL_SRC1_COLOR_EXT 0x88F9
-#define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA
-#define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB
-#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC
-#define GL_LOCATION_INDEX_EXT 0x930F
-
-typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
-typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXEXTPROC) (GLuint program, const GLchar * name);
-typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC) (GLuint program, GLenum programInterface, const GLchar* name);
-
-#define glBindFragDataLocationIndexedEXT GLEW_GET_FUN(__glewBindFragDataLocationIndexedEXT)
-#define glGetFragDataIndexEXT GLEW_GET_FUN(__glewGetFragDataIndexEXT)
-#define glGetProgramResourceLocationIndexEXT GLEW_GET_FUN(__glewGetProgramResourceLocationIndexEXT)
-
-#define GLEW_EXT_blend_func_extended GLEW_GET_VAR(__GLEW_EXT_blend_func_extended)
-
-#endif /* GL_EXT_blend_func_extended */
-
-/* ----------------------- GL_EXT_blend_func_separate ---------------------- */
-
-#ifndef GL_EXT_blend_func_separate
-#define GL_EXT_blend_func_separate 1
-
-#define GL_BLEND_DST_RGB_EXT 0x80C8
-#define GL_BLEND_SRC_RGB_EXT 0x80C9
-#define GL_BLEND_DST_ALPHA_EXT 0x80CA
-#define GL_BLEND_SRC_ALPHA_EXT 0x80CB
-
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
-
-#define glBlendFuncSeparateEXT GLEW_GET_FUN(__glewBlendFuncSeparateEXT)
-
-#define GLEW_EXT_blend_func_separate GLEW_GET_VAR(__GLEW_EXT_blend_func_separate)
-
-#endif /* GL_EXT_blend_func_separate */
-
-/* ------------------------- GL_EXT_blend_logic_op ------------------------- */
-
-#ifndef GL_EXT_blend_logic_op
-#define GL_EXT_blend_logic_op 1
-
-#define GLEW_EXT_blend_logic_op GLEW_GET_VAR(__GLEW_EXT_blend_logic_op)
-
-#endif /* GL_EXT_blend_logic_op */
-
-/* -------------------------- GL_EXT_blend_minmax -------------------------- */
-
-#ifndef GL_EXT_blend_minmax
-#define GL_EXT_blend_minmax 1
-
-#define GL_FUNC_ADD_EXT 0x8006
-#define GL_MIN_EXT 0x8007
-#define GL_MAX_EXT 0x8008
-#define GL_BLEND_EQUATION_EXT 0x8009
-
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
-
-#define glBlendEquationEXT GLEW_GET_FUN(__glewBlendEquationEXT)
-
-#define GLEW_EXT_blend_minmax GLEW_GET_VAR(__GLEW_EXT_blend_minmax)
-
-#endif /* GL_EXT_blend_minmax */
-
-/* ------------------------- GL_EXT_blend_subtract ------------------------- */
-
-#ifndef GL_EXT_blend_subtract
-#define GL_EXT_blend_subtract 1
-
-#define GL_FUNC_SUBTRACT_EXT 0x800A
-#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
-
-#define GLEW_EXT_blend_subtract GLEW_GET_VAR(__GLEW_EXT_blend_subtract)
-
-#endif /* GL_EXT_blend_subtract */
-
-/* ------------------------- GL_EXT_buffer_storage ------------------------- */
-
-#ifndef GL_EXT_buffer_storage
-#define GL_EXT_buffer_storage 1
-
-#define GL_MAP_READ_BIT 0x0001
-#define GL_MAP_WRITE_BIT 0x0002
-#define GL_MAP_PERSISTENT_BIT_EXT 0x0040
-#define GL_MAP_COHERENT_BIT_EXT 0x0080
-#define GL_DYNAMIC_STORAGE_BIT_EXT 0x0100
-#define GL_CLIENT_STORAGE_BIT_EXT 0x0200
-#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000
-#define GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F
-#define GL_BUFFER_STORAGE_FLAGS_EXT 0x8220
-
-typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEEXTPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
-typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
-
-#define glBufferStorageEXT GLEW_GET_FUN(__glewBufferStorageEXT)
-#define glNamedBufferStorageEXT GLEW_GET_FUN(__glewNamedBufferStorageEXT)
-
-#define GLEW_EXT_buffer_storage GLEW_GET_VAR(__GLEW_EXT_buffer_storage)
-
-#endif /* GL_EXT_buffer_storage */
-
-/* -------------------------- GL_EXT_clear_texture ------------------------- */
-
-#ifndef GL_EXT_clear_texture
-#define GL_EXT_clear_texture 1
-
-typedef void (GLAPIENTRY * PFNGLCLEARTEXIMAGEEXTPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
-typedef void (GLAPIENTRY * PFNGLCLEARTEXSUBIMAGEEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
-
-#define glClearTexImageEXT GLEW_GET_FUN(__glewClearTexImageEXT)
-#define glClearTexSubImageEXT GLEW_GET_FUN(__glewClearTexSubImageEXT)
-
-#define GLEW_EXT_clear_texture GLEW_GET_VAR(__GLEW_EXT_clear_texture)
-
-#endif /* GL_EXT_clear_texture */
-
-/* -------------------------- GL_EXT_clip_control -------------------------- */
-
-#ifndef GL_EXT_clip_control
-#define GL_EXT_clip_control 1
-
-#define GL_LOWER_LEFT_EXT 0x8CA1
-#define GL_UPPER_LEFT_EXT 0x8CA2
-#define GL_CLIP_ORIGIN_EXT 0x935C
-#define GL_CLIP_DEPTH_MODE_EXT 0x935D
-#define GL_NEGATIVE_ONE_TO_ONE_EXT 0x935E
-#define GL_ZERO_TO_ONE_EXT 0x935F
-
-typedef void (GLAPIENTRY * PFNGLCLIPCONTROLEXTPROC) (GLenum origin, GLenum depth);
-
-#define glClipControlEXT GLEW_GET_FUN(__glewClipControlEXT)
-
-#define GLEW_EXT_clip_control GLEW_GET_VAR(__GLEW_EXT_clip_control)
-
-#endif /* GL_EXT_clip_control */
-
-/* ----------------------- GL_EXT_clip_cull_distance ----------------------- */
-
-#ifndef GL_EXT_clip_cull_distance
-#define GL_EXT_clip_cull_distance 1
-
-#define GL_MAX_CLIP_DISTANCES_EXT 0x0D32
-#define GL_CLIP_DISTANCE0_EXT 0x3000
-#define GL_CLIP_DISTANCE1_EXT 0x3001
-#define GL_CLIP_DISTANCE2_EXT 0x3002
-#define GL_CLIP_DISTANCE3_EXT 0x3003
-#define GL_CLIP_DISTANCE4_EXT 0x3004
-#define GL_CLIP_DISTANCE5_EXT 0x3005
-#define GL_CLIP_DISTANCE6_EXT 0x3006
-#define GL_CLIP_DISTANCE7_EXT 0x3007
-#define GL_MAX_CULL_DISTANCES_EXT 0x82F9
-#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT 0x82FA
-
-#define GLEW_EXT_clip_cull_distance GLEW_GET_VAR(__GLEW_EXT_clip_cull_distance)
-
-#endif /* GL_EXT_clip_cull_distance */
-
-/* ------------------------ GL_EXT_clip_volume_hint ------------------------ */
-
-#ifndef GL_EXT_clip_volume_hint
-#define GL_EXT_clip_volume_hint 1
-
-#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0
-
-#define GLEW_EXT_clip_volume_hint GLEW_GET_VAR(__GLEW_EXT_clip_volume_hint)
-
-#endif /* GL_EXT_clip_volume_hint */
-
-/* ------------------------------ GL_EXT_cmyka ----------------------------- */
-
-#ifndef GL_EXT_cmyka
-#define GL_EXT_cmyka 1
-
-#define GL_CMYK_EXT 0x800C
-#define GL_CMYKA_EXT 0x800D
-#define GL_PACK_CMYK_HINT_EXT 0x800E
-#define GL_UNPACK_CMYK_HINT_EXT 0x800F
-
-#define GLEW_EXT_cmyka GLEW_GET_VAR(__GLEW_EXT_cmyka)
-
-#endif /* GL_EXT_cmyka */
-
-/* ----------------------- GL_EXT_color_buffer_float ----------------------- */
-
-#ifndef GL_EXT_color_buffer_float
-#define GL_EXT_color_buffer_float 1
-
-#define GLEW_EXT_color_buffer_float GLEW_GET_VAR(__GLEW_EXT_color_buffer_float)
-
-#endif /* GL_EXT_color_buffer_float */
-
-/* --------------------- GL_EXT_color_buffer_half_float -------------------- */
-
-#ifndef GL_EXT_color_buffer_half_float
-#define GL_EXT_color_buffer_half_float 1
-
-#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211
-#define GL_R16F_EXT 0x822D
-#define GL_RG16F_EXT 0x822F
-#define GL_RGBA16F_EXT 0x881A
-#define GL_RGB16F_EXT 0x881B
-#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17
-
-#define GLEW_EXT_color_buffer_half_float GLEW_GET_VAR(__GLEW_EXT_color_buffer_half_float)
-
-#endif /* GL_EXT_color_buffer_half_float */
-
-/* ------------------------- GL_EXT_color_subtable ------------------------- */
-
-#ifndef GL_EXT_color_subtable
-#define GL_EXT_color_subtable 1
-
-typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
-
-#define glColorSubTableEXT GLEW_GET_FUN(__glewColorSubTableEXT)
-#define glCopyColorSubTableEXT GLEW_GET_FUN(__glewCopyColorSubTableEXT)
-
-#define GLEW_EXT_color_subtable GLEW_GET_VAR(__GLEW_EXT_color_subtable)
-
-#endif /* GL_EXT_color_subtable */
-
-/* ---------------------- GL_EXT_compiled_vertex_array --------------------- */
-
-#ifndef GL_EXT_compiled_vertex_array
-#define GL_EXT_compiled_vertex_array 1
-
-#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
-#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
-
-typedef void (GLAPIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
-typedef void (GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void);
-
-#define glLockArraysEXT GLEW_GET_FUN(__glewLockArraysEXT)
-#define glUnlockArraysEXT GLEW_GET_FUN(__glewUnlockArraysEXT)
-
-#define GLEW_EXT_compiled_vertex_array GLEW_GET_VAR(__GLEW_EXT_compiled_vertex_array)
-
-#endif /* GL_EXT_compiled_vertex_array */
-
-/* ---------------- GL_EXT_compressed_ETC1_RGB8_sub_texture ---------------- */
-
-#ifndef GL_EXT_compressed_ETC1_RGB8_sub_texture
-#define GL_EXT_compressed_ETC1_RGB8_sub_texture 1
-
-#define GLEW_EXT_compressed_ETC1_RGB8_sub_texture GLEW_GET_VAR(__GLEW_EXT_compressed_ETC1_RGB8_sub_texture)
-
-#endif /* GL_EXT_compressed_ETC1_RGB8_sub_texture */
-
-/* ----------------------- GL_EXT_conservative_depth ----------------------- */
-
-#ifndef GL_EXT_conservative_depth
-#define GL_EXT_conservative_depth 1
-
-#define GLEW_EXT_conservative_depth GLEW_GET_VAR(__GLEW_EXT_conservative_depth)
-
-#endif /* GL_EXT_conservative_depth */
-
-/* --------------------------- GL_EXT_convolution -------------------------- */
-
-#ifndef GL_EXT_convolution
-#define GL_EXT_convolution 1
-
-#define GL_CONVOLUTION_1D_EXT 0x8010
-#define GL_CONVOLUTION_2D_EXT 0x8011
-#define GL_SEPARABLE_2D_EXT 0x8012
-#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013
-#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014
-#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015
-#define GL_REDUCE_EXT 0x8016
-#define GL_CONVOLUTION_FORMAT_EXT 0x8017
-#define GL_CONVOLUTION_WIDTH_EXT 0x8018
-#define GL_CONVOLUTION_HEIGHT_EXT 0x8019
-#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A
-#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B
-#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
-#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
-#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
-#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
-#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020
-#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
-#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
-#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
-
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image);
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image);
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *image);
-typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span);
-typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column);
-
-#define glConvolutionFilter1DEXT GLEW_GET_FUN(__glewConvolutionFilter1DEXT)
-#define glConvolutionFilter2DEXT GLEW_GET_FUN(__glewConvolutionFilter2DEXT)
-#define glConvolutionParameterfEXT GLEW_GET_FUN(__glewConvolutionParameterfEXT)
-#define glConvolutionParameterfvEXT GLEW_GET_FUN(__glewConvolutionParameterfvEXT)
-#define glConvolutionParameteriEXT GLEW_GET_FUN(__glewConvolutionParameteriEXT)
-#define glConvolutionParameterivEXT GLEW_GET_FUN(__glewConvolutionParameterivEXT)
-#define glCopyConvolutionFilter1DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter1DEXT)
-#define glCopyConvolutionFilter2DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter2DEXT)
-#define glGetConvolutionFilterEXT GLEW_GET_FUN(__glewGetConvolutionFilterEXT)
-#define glGetConvolutionParameterfvEXT GLEW_GET_FUN(__glewGetConvolutionParameterfvEXT)
-#define glGetConvolutionParameterivEXT GLEW_GET_FUN(__glewGetConvolutionParameterivEXT)
-#define glGetSeparableFilterEXT GLEW_GET_FUN(__glewGetSeparableFilterEXT)
-#define glSeparableFilter2DEXT GLEW_GET_FUN(__glewSeparableFilter2DEXT)
-
-#define GLEW_EXT_convolution GLEW_GET_VAR(__GLEW_EXT_convolution)
-
-#endif /* GL_EXT_convolution */
-
-/* ------------------------ GL_EXT_coordinate_frame ------------------------ */
-
-#ifndef GL_EXT_coordinate_frame
-#define GL_EXT_coordinate_frame 1
-
-#define GL_TANGENT_ARRAY_EXT 0x8439
-#define GL_BINORMAL_ARRAY_EXT 0x843A
-#define GL_CURRENT_TANGENT_EXT 0x843B
-#define GL_CURRENT_BINORMAL_EXT 0x843C
-#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E
-#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F
-#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440
-#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441
-#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442
-#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443
-#define GL_MAP1_TANGENT_EXT 0x8444
-#define GL_MAP2_TANGENT_EXT 0x8445
-#define GL_MAP1_BINORMAL_EXT 0x8446
-#define GL_MAP2_BINORMAL_EXT 0x8447
-
-typedef void (GLAPIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, void *pointer);
-typedef void (GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, void *pointer);
-
-#define glBinormalPointerEXT GLEW_GET_FUN(__glewBinormalPointerEXT)
-#define glTangentPointerEXT GLEW_GET_FUN(__glewTangentPointerEXT)
-
-#define GLEW_EXT_coordinate_frame GLEW_GET_VAR(__GLEW_EXT_coordinate_frame)
-
-#endif /* GL_EXT_coordinate_frame */
-
-/* --------------------------- GL_EXT_copy_image --------------------------- */
-
-#ifndef GL_EXT_copy_image
-#define GL_EXT_copy_image 1
-
-typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAEXTPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
-
-#define glCopyImageSubDataEXT GLEW_GET_FUN(__glewCopyImageSubDataEXT)
-
-#define GLEW_EXT_copy_image GLEW_GET_VAR(__GLEW_EXT_copy_image)
-
-#endif /* GL_EXT_copy_image */
-
-/* -------------------------- GL_EXT_copy_texture -------------------------- */
-
-#ifndef GL_EXT_copy_texture
-#define GL_EXT_copy_texture 1
-
-typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-
-#define glCopyTexImage1DEXT GLEW_GET_FUN(__glewCopyTexImage1DEXT)
-#define glCopyTexImage2DEXT GLEW_GET_FUN(__glewCopyTexImage2DEXT)
-#define glCopyTexSubImage1DEXT GLEW_GET_FUN(__glewCopyTexSubImage1DEXT)
-#define glCopyTexSubImage2DEXT GLEW_GET_FUN(__glewCopyTexSubImage2DEXT)
-#define glCopyTexSubImage3DEXT GLEW_GET_FUN(__glewCopyTexSubImage3DEXT)
-
-#define GLEW_EXT_copy_texture GLEW_GET_VAR(__GLEW_EXT_copy_texture)
-
-#endif /* GL_EXT_copy_texture */
-
-/* --------------------------- GL_EXT_cull_vertex -------------------------- */
-
-#ifndef GL_EXT_cull_vertex
-#define GL_EXT_cull_vertex 1
-
-#define GL_CULL_VERTEX_EXT 0x81AA
-#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB
-#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
-
-typedef void (GLAPIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params);
-
-#define glCullParameterdvEXT GLEW_GET_FUN(__glewCullParameterdvEXT)
-#define glCullParameterfvEXT GLEW_GET_FUN(__glewCullParameterfvEXT)
-
-#define GLEW_EXT_cull_vertex GLEW_GET_VAR(__GLEW_EXT_cull_vertex)
-
-#endif /* GL_EXT_cull_vertex */
-
-/* --------------------------- GL_EXT_debug_label -------------------------- */
-
-#ifndef GL_EXT_debug_label
-#define GL_EXT_debug_label 1
-
-#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
-#define GL_PROGRAM_OBJECT_EXT 0x8B40
-#define GL_SHADER_OBJECT_EXT 0x8B48
-#define GL_BUFFER_OBJECT_EXT 0x9151
-#define GL_QUERY_OBJECT_EXT 0x9153
-#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154
-
-typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei* length, GLchar *label);
-typedef void (GLAPIENTRY * PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar* label);
-
-#define glGetObjectLabelEXT GLEW_GET_FUN(__glewGetObjectLabelEXT)
-#define glLabelObjectEXT GLEW_GET_FUN(__glewLabelObjectEXT)
-
-#define GLEW_EXT_debug_label GLEW_GET_VAR(__GLEW_EXT_debug_label)
-
-#endif /* GL_EXT_debug_label */
-
-/* -------------------------- GL_EXT_debug_marker -------------------------- */
-
-#ifndef GL_EXT_debug_marker
-#define GL_EXT_debug_marker 1
-
-typedef void (GLAPIENTRY * PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar* marker);
-typedef void (GLAPIENTRY * PFNGLPOPGROUPMARKEREXTPROC) (void);
-typedef void (GLAPIENTRY * PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar* marker);
-
-#define glInsertEventMarkerEXT GLEW_GET_FUN(__glewInsertEventMarkerEXT)
-#define glPopGroupMarkerEXT GLEW_GET_FUN(__glewPopGroupMarkerEXT)
-#define glPushGroupMarkerEXT GLEW_GET_FUN(__glewPushGroupMarkerEXT)
-
-#define GLEW_EXT_debug_marker GLEW_GET_VAR(__GLEW_EXT_debug_marker)
-
-#endif /* GL_EXT_debug_marker */
-
-/* ------------------------ GL_EXT_depth_bounds_test ----------------------- */
-
-#ifndef GL_EXT_depth_bounds_test
-#define GL_EXT_depth_bounds_test 1
-
-#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890
-#define GL_DEPTH_BOUNDS_EXT 0x8891
-
-typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax);
-
-#define glDepthBoundsEXT GLEW_GET_FUN(__glewDepthBoundsEXT)
-
-#define GLEW_EXT_depth_bounds_test GLEW_GET_VAR(__GLEW_EXT_depth_bounds_test)
-
-#endif /* GL_EXT_depth_bounds_test */
-
-/* --------------------------- GL_EXT_depth_clamp -------------------------- */
-
-#ifndef GL_EXT_depth_clamp
-#define GL_EXT_depth_clamp 1
-
-#define GL_DEPTH_CLAMP_EXT 0x864F
-
-#define GLEW_EXT_depth_clamp GLEW_GET_VAR(__GLEW_EXT_depth_clamp)
-
-#endif /* GL_EXT_depth_clamp */
-
-/* ----------------------- GL_EXT_direct_state_access ---------------------- */
-
-#ifndef GL_EXT_direct_state_access
-#define GL_EXT_direct_state_access 1
-
-#define GL_PROGRAM_MATRIX_EXT 0x8E2D
-#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E
-#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F
-
-typedef void (GLAPIENTRY * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture);
-typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target);
-typedef void (GLAPIENTRY * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
-typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
-typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index);
-typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index);
-typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array);
-typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
-typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index);
-typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index);
-typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array);
-typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target);
-typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target);
-typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, void *img);
-typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, void *img);
-typedef void (GLAPIENTRY * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* param);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void** params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void *string);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, void** params);
-typedef void (GLAPIENTRY * PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, void** params);
-typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
-typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint* param);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, void** param);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, void** param);
-typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access);
-typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
-typedef void (GLAPIENTRY * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f);
-typedef void (GLAPIENTRY * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum matrixMode);
-typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXLOADDEXTPROC) (GLenum matrixMode, const GLdouble* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXLOADFEXTPROC) (GLenum matrixMode, const GLfloat* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXMULTDEXTPROC) (GLenum matrixMode, const GLdouble* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXMULTFEXTPROC) (GLenum matrixMode, const GLfloat* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXORTHOEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f);
-typedef void (GLAPIENTRY * PFNGLMATRIXPOPEXTPROC) (GLenum matrixMode);
-typedef void (GLAPIENTRY * PFNGLMATRIXPUSHEXTPROC) (GLenum matrixMode);
-typedef void (GLAPIENTRY * PFNGLMATRIXROTATEDEXTPROC) (GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLMATRIXROTATEFEXTPROC) (GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLMATRIXSCALEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLMATRIXSCALEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
-typedef void (GLAPIENTRY * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint* params);
-typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* param);
-typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* param);
-typedef void (GLAPIENTRY * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer);
-typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
-typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
-typedef void (GLAPIENTRY * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint* params);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint* params);
-typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string);
-typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
-typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint* params);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat* param);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* param);
-typedef void (GLAPIENTRY * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer);
-typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
-typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC) (GLuint vaobj, GLuint index, GLuint divisor);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
-
-#define glBindMultiTextureEXT GLEW_GET_FUN(__glewBindMultiTextureEXT)
-#define glCheckNamedFramebufferStatusEXT GLEW_GET_FUN(__glewCheckNamedFramebufferStatusEXT)
-#define glClientAttribDefaultEXT GLEW_GET_FUN(__glewClientAttribDefaultEXT)
-#define glCompressedMultiTexImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage1DEXT)
-#define glCompressedMultiTexImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage2DEXT)
-#define glCompressedMultiTexImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage3DEXT)
-#define glCompressedMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage1DEXT)
-#define glCompressedMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage2DEXT)
-#define glCompressedMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage3DEXT)
-#define glCompressedTextureImage1DEXT GLEW_GET_FUN(__glewCompressedTextureImage1DEXT)
-#define glCompressedTextureImage2DEXT GLEW_GET_FUN(__glewCompressedTextureImage2DEXT)
-#define glCompressedTextureImage3DEXT GLEW_GET_FUN(__glewCompressedTextureImage3DEXT)
-#define glCompressedTextureSubImage1DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage1DEXT)
-#define glCompressedTextureSubImage2DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage2DEXT)
-#define glCompressedTextureSubImage3DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage3DEXT)
-#define glCopyMultiTexImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexImage1DEXT)
-#define glCopyMultiTexImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexImage2DEXT)
-#define glCopyMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage1DEXT)
-#define glCopyMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage2DEXT)
-#define glCopyMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage3DEXT)
-#define glCopyTextureImage1DEXT GLEW_GET_FUN(__glewCopyTextureImage1DEXT)
-#define glCopyTextureImage2DEXT GLEW_GET_FUN(__glewCopyTextureImage2DEXT)
-#define glCopyTextureSubImage1DEXT GLEW_GET_FUN(__glewCopyTextureSubImage1DEXT)
-#define glCopyTextureSubImage2DEXT GLEW_GET_FUN(__glewCopyTextureSubImage2DEXT)
-#define glCopyTextureSubImage3DEXT GLEW_GET_FUN(__glewCopyTextureSubImage3DEXT)
-#define glDisableClientStateIndexedEXT GLEW_GET_FUN(__glewDisableClientStateIndexedEXT)
-#define glDisableClientStateiEXT GLEW_GET_FUN(__glewDisableClientStateiEXT)
-#define glDisableVertexArrayAttribEXT GLEW_GET_FUN(__glewDisableVertexArrayAttribEXT)
-#define glDisableVertexArrayEXT GLEW_GET_FUN(__glewDisableVertexArrayEXT)
-#define glEnableClientStateIndexedEXT GLEW_GET_FUN(__glewEnableClientStateIndexedEXT)
-#define glEnableClientStateiEXT GLEW_GET_FUN(__glewEnableClientStateiEXT)
-#define glEnableVertexArrayAttribEXT GLEW_GET_FUN(__glewEnableVertexArrayAttribEXT)
-#define glEnableVertexArrayEXT GLEW_GET_FUN(__glewEnableVertexArrayEXT)
-#define glFlushMappedNamedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedNamedBufferRangeEXT)
-#define glFramebufferDrawBufferEXT GLEW_GET_FUN(__glewFramebufferDrawBufferEXT)
-#define glFramebufferDrawBuffersEXT GLEW_GET_FUN(__glewFramebufferDrawBuffersEXT)
-#define glFramebufferReadBufferEXT GLEW_GET_FUN(__glewFramebufferReadBufferEXT)
-#define glGenerateMultiTexMipmapEXT GLEW_GET_FUN(__glewGenerateMultiTexMipmapEXT)
-#define glGenerateTextureMipmapEXT GLEW_GET_FUN(__glewGenerateTextureMipmapEXT)
-#define glGetCompressedMultiTexImageEXT GLEW_GET_FUN(__glewGetCompressedMultiTexImageEXT)
-#define glGetCompressedTextureImageEXT GLEW_GET_FUN(__glewGetCompressedTextureImageEXT)
-#define glGetDoubleIndexedvEXT GLEW_GET_FUN(__glewGetDoubleIndexedvEXT)
-#define glGetDoublei_vEXT GLEW_GET_FUN(__glewGetDoublei_vEXT)
-#define glGetFloatIndexedvEXT GLEW_GET_FUN(__glewGetFloatIndexedvEXT)
-#define glGetFloati_vEXT GLEW_GET_FUN(__glewGetFloati_vEXT)
-#define glGetFramebufferParameterivEXT GLEW_GET_FUN(__glewGetFramebufferParameterivEXT)
-#define glGetMultiTexEnvfvEXT GLEW_GET_FUN(__glewGetMultiTexEnvfvEXT)
-#define glGetMultiTexEnvivEXT GLEW_GET_FUN(__glewGetMultiTexEnvivEXT)
-#define glGetMultiTexGendvEXT GLEW_GET_FUN(__glewGetMultiTexGendvEXT)
-#define glGetMultiTexGenfvEXT GLEW_GET_FUN(__glewGetMultiTexGenfvEXT)
-#define glGetMultiTexGenivEXT GLEW_GET_FUN(__glewGetMultiTexGenivEXT)
-#define glGetMultiTexImageEXT GLEW_GET_FUN(__glewGetMultiTexImageEXT)
-#define glGetMultiTexLevelParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterfvEXT)
-#define glGetMultiTexLevelParameterivEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterivEXT)
-#define glGetMultiTexParameterIivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIivEXT)
-#define glGetMultiTexParameterIuivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIuivEXT)
-#define glGetMultiTexParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexParameterfvEXT)
-#define glGetMultiTexParameterivEXT GLEW_GET_FUN(__glewGetMultiTexParameterivEXT)
-#define glGetNamedBufferParameterivEXT GLEW_GET_FUN(__glewGetNamedBufferParameterivEXT)
-#define glGetNamedBufferPointervEXT GLEW_GET_FUN(__glewGetNamedBufferPointervEXT)
-#define glGetNamedBufferSubDataEXT GLEW_GET_FUN(__glewGetNamedBufferSubDataEXT)
-#define glGetNamedFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameterivEXT)
-#define glGetNamedProgramLocalParameterIivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIivEXT)
-#define glGetNamedProgramLocalParameterIuivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIuivEXT)
-#define glGetNamedProgramLocalParameterdvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterdvEXT)
-#define glGetNamedProgramLocalParameterfvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterfvEXT)
-#define glGetNamedProgramStringEXT GLEW_GET_FUN(__glewGetNamedProgramStringEXT)
-#define glGetNamedProgramivEXT GLEW_GET_FUN(__glewGetNamedProgramivEXT)
-#define glGetNamedRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetNamedRenderbufferParameterivEXT)
-#define glGetPointerIndexedvEXT GLEW_GET_FUN(__glewGetPointerIndexedvEXT)
-#define glGetPointeri_vEXT GLEW_GET_FUN(__glewGetPointeri_vEXT)
-#define glGetTextureImageEXT GLEW_GET_FUN(__glewGetTextureImageEXT)
-#define glGetTextureLevelParameterfvEXT GLEW_GET_FUN(__glewGetTextureLevelParameterfvEXT)
-#define glGetTextureLevelParameterivEXT GLEW_GET_FUN(__glewGetTextureLevelParameterivEXT)
-#define glGetTextureParameterIivEXT GLEW_GET_FUN(__glewGetTextureParameterIivEXT)
-#define glGetTextureParameterIuivEXT GLEW_GET_FUN(__glewGetTextureParameterIuivEXT)
-#define glGetTextureParameterfvEXT GLEW_GET_FUN(__glewGetTextureParameterfvEXT)
-#define glGetTextureParameterivEXT GLEW_GET_FUN(__glewGetTextureParameterivEXT)
-#define glGetVertexArrayIntegeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayIntegeri_vEXT)
-#define glGetVertexArrayIntegervEXT GLEW_GET_FUN(__glewGetVertexArrayIntegervEXT)
-#define glGetVertexArrayPointeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayPointeri_vEXT)
-#define glGetVertexArrayPointervEXT GLEW_GET_FUN(__glewGetVertexArrayPointervEXT)
-#define glMapNamedBufferEXT GLEW_GET_FUN(__glewMapNamedBufferEXT)
-#define glMapNamedBufferRangeEXT GLEW_GET_FUN(__glewMapNamedBufferRangeEXT)
-#define glMatrixFrustumEXT GLEW_GET_FUN(__glewMatrixFrustumEXT)
-#define glMatrixLoadIdentityEXT GLEW_GET_FUN(__glewMatrixLoadIdentityEXT)
-#define glMatrixLoadTransposedEXT GLEW_GET_FUN(__glewMatrixLoadTransposedEXT)
-#define glMatrixLoadTransposefEXT GLEW_GET_FUN(__glewMatrixLoadTransposefEXT)
-#define glMatrixLoaddEXT GLEW_GET_FUN(__glewMatrixLoaddEXT)
-#define glMatrixLoadfEXT GLEW_GET_FUN(__glewMatrixLoadfEXT)
-#define glMatrixMultTransposedEXT GLEW_GET_FUN(__glewMatrixMultTransposedEXT)
-#define glMatrixMultTransposefEXT GLEW_GET_FUN(__glewMatrixMultTransposefEXT)
-#define glMatrixMultdEXT GLEW_GET_FUN(__glewMatrixMultdEXT)
-#define glMatrixMultfEXT GLEW_GET_FUN(__glewMatrixMultfEXT)
-#define glMatrixOrthoEXT GLEW_GET_FUN(__glewMatrixOrthoEXT)
-#define glMatrixPopEXT GLEW_GET_FUN(__glewMatrixPopEXT)
-#define glMatrixPushEXT GLEW_GET_FUN(__glewMatrixPushEXT)
-#define glMatrixRotatedEXT GLEW_GET_FUN(__glewMatrixRotatedEXT)
-#define glMatrixRotatefEXT GLEW_GET_FUN(__glewMatrixRotatefEXT)
-#define glMatrixScaledEXT GLEW_GET_FUN(__glewMatrixScaledEXT)
-#define glMatrixScalefEXT GLEW_GET_FUN(__glewMatrixScalefEXT)
-#define glMatrixTranslatedEXT GLEW_GET_FUN(__glewMatrixTranslatedEXT)
-#define glMatrixTranslatefEXT GLEW_GET_FUN(__glewMatrixTranslatefEXT)
-#define glMultiTexBufferEXT GLEW_GET_FUN(__glewMultiTexBufferEXT)
-#define glMultiTexCoordPointerEXT GLEW_GET_FUN(__glewMultiTexCoordPointerEXT)
-#define glMultiTexEnvfEXT GLEW_GET_FUN(__glewMultiTexEnvfEXT)
-#define glMultiTexEnvfvEXT GLEW_GET_FUN(__glewMultiTexEnvfvEXT)
-#define glMultiTexEnviEXT GLEW_GET_FUN(__glewMultiTexEnviEXT)
-#define glMultiTexEnvivEXT GLEW_GET_FUN(__glewMultiTexEnvivEXT)
-#define glMultiTexGendEXT GLEW_GET_FUN(__glewMultiTexGendEXT)
-#define glMultiTexGendvEXT GLEW_GET_FUN(__glewMultiTexGendvEXT)
-#define glMultiTexGenfEXT GLEW_GET_FUN(__glewMultiTexGenfEXT)
-#define glMultiTexGenfvEXT GLEW_GET_FUN(__glewMultiTexGenfvEXT)
-#define glMultiTexGeniEXT GLEW_GET_FUN(__glewMultiTexGeniEXT)
-#define glMultiTexGenivEXT GLEW_GET_FUN(__glewMultiTexGenivEXT)
-#define glMultiTexImage1DEXT GLEW_GET_FUN(__glewMultiTexImage1DEXT)
-#define glMultiTexImage2DEXT GLEW_GET_FUN(__glewMultiTexImage2DEXT)
-#define glMultiTexImage3DEXT GLEW_GET_FUN(__glewMultiTexImage3DEXT)
-#define glMultiTexParameterIivEXT GLEW_GET_FUN(__glewMultiTexParameterIivEXT)
-#define glMultiTexParameterIuivEXT GLEW_GET_FUN(__glewMultiTexParameterIuivEXT)
-#define glMultiTexParameterfEXT GLEW_GET_FUN(__glewMultiTexParameterfEXT)
-#define glMultiTexParameterfvEXT GLEW_GET_FUN(__glewMultiTexParameterfvEXT)
-#define glMultiTexParameteriEXT GLEW_GET_FUN(__glewMultiTexParameteriEXT)
-#define glMultiTexParameterivEXT GLEW_GET_FUN(__glewMultiTexParameterivEXT)
-#define glMultiTexRenderbufferEXT GLEW_GET_FUN(__glewMultiTexRenderbufferEXT)
-#define glMultiTexSubImage1DEXT GLEW_GET_FUN(__glewMultiTexSubImage1DEXT)
-#define glMultiTexSubImage2DEXT GLEW_GET_FUN(__glewMultiTexSubImage2DEXT)
-#define glMultiTexSubImage3DEXT GLEW_GET_FUN(__glewMultiTexSubImage3DEXT)
-#define glNamedBufferDataEXT GLEW_GET_FUN(__glewNamedBufferDataEXT)
-#define glNamedBufferSubDataEXT GLEW_GET_FUN(__glewNamedBufferSubDataEXT)
-#define glNamedCopyBufferSubDataEXT GLEW_GET_FUN(__glewNamedCopyBufferSubDataEXT)
-#define glNamedFramebufferRenderbufferEXT GLEW_GET_FUN(__glewNamedFramebufferRenderbufferEXT)
-#define glNamedFramebufferTexture1DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture1DEXT)
-#define glNamedFramebufferTexture2DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture2DEXT)
-#define glNamedFramebufferTexture3DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture3DEXT)
-#define glNamedFramebufferTextureEXT GLEW_GET_FUN(__glewNamedFramebufferTextureEXT)
-#define glNamedFramebufferTextureFaceEXT GLEW_GET_FUN(__glewNamedFramebufferTextureFaceEXT)
-#define glNamedFramebufferTextureLayerEXT GLEW_GET_FUN(__glewNamedFramebufferTextureLayerEXT)
-#define glNamedProgramLocalParameter4dEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dEXT)
-#define glNamedProgramLocalParameter4dvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dvEXT)
-#define glNamedProgramLocalParameter4fEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fEXT)
-#define glNamedProgramLocalParameter4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fvEXT)
-#define glNamedProgramLocalParameterI4iEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4iEXT)
-#define glNamedProgramLocalParameterI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4ivEXT)
-#define glNamedProgramLocalParameterI4uiEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uiEXT)
-#define glNamedProgramLocalParameterI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uivEXT)
-#define glNamedProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameters4fvEXT)
-#define glNamedProgramLocalParametersI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4ivEXT)
-#define glNamedProgramLocalParametersI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4uivEXT)
-#define glNamedProgramStringEXT GLEW_GET_FUN(__glewNamedProgramStringEXT)
-#define glNamedRenderbufferStorageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageEXT)
-#define glNamedRenderbufferStorageMultisampleCoverageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleCoverageEXT)
-#define glNamedRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleEXT)
-#define glProgramUniform1fEXT GLEW_GET_FUN(__glewProgramUniform1fEXT)
-#define glProgramUniform1fvEXT GLEW_GET_FUN(__glewProgramUniform1fvEXT)
-#define glProgramUniform1iEXT GLEW_GET_FUN(__glewProgramUniform1iEXT)
-#define glProgramUniform1ivEXT GLEW_GET_FUN(__glewProgramUniform1ivEXT)
-#define glProgramUniform1uiEXT GLEW_GET_FUN(__glewProgramUniform1uiEXT)
-#define glProgramUniform1uivEXT GLEW_GET_FUN(__glewProgramUniform1uivEXT)
-#define glProgramUniform2fEXT GLEW_GET_FUN(__glewProgramUniform2fEXT)
-#define glProgramUniform2fvEXT GLEW_GET_FUN(__glewProgramUniform2fvEXT)
-#define glProgramUniform2iEXT GLEW_GET_FUN(__glewProgramUniform2iEXT)
-#define glProgramUniform2ivEXT GLEW_GET_FUN(__glewProgramUniform2ivEXT)
-#define glProgramUniform2uiEXT GLEW_GET_FUN(__glewProgramUniform2uiEXT)
-#define glProgramUniform2uivEXT GLEW_GET_FUN(__glewProgramUniform2uivEXT)
-#define glProgramUniform3fEXT GLEW_GET_FUN(__glewProgramUniform3fEXT)
-#define glProgramUniform3fvEXT GLEW_GET_FUN(__glewProgramUniform3fvEXT)
-#define glProgramUniform3iEXT GLEW_GET_FUN(__glewProgramUniform3iEXT)
-#define glProgramUniform3ivEXT GLEW_GET_FUN(__glewProgramUniform3ivEXT)
-#define glProgramUniform3uiEXT GLEW_GET_FUN(__glewProgramUniform3uiEXT)
-#define glProgramUniform3uivEXT GLEW_GET_FUN(__glewProgramUniform3uivEXT)
-#define glProgramUniform4fEXT GLEW_GET_FUN(__glewProgramUniform4fEXT)
-#define glProgramUniform4fvEXT GLEW_GET_FUN(__glewProgramUniform4fvEXT)
-#define glProgramUniform4iEXT GLEW_GET_FUN(__glewProgramUniform4iEXT)
-#define glProgramUniform4ivEXT GLEW_GET_FUN(__glewProgramUniform4ivEXT)
-#define glProgramUniform4uiEXT GLEW_GET_FUN(__glewProgramUniform4uiEXT)
-#define glProgramUniform4uivEXT GLEW_GET_FUN(__glewProgramUniform4uivEXT)
-#define glProgramUniformMatrix2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2fvEXT)
-#define glProgramUniformMatrix2x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3fvEXT)
-#define glProgramUniformMatrix2x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4fvEXT)
-#define glProgramUniformMatrix3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3fvEXT)
-#define glProgramUniformMatrix3x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2fvEXT)
-#define glProgramUniformMatrix3x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4fvEXT)
-#define glProgramUniformMatrix4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4fvEXT)
-#define glProgramUniformMatrix4x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2fvEXT)
-#define glProgramUniformMatrix4x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3fvEXT)
-#define glPushClientAttribDefaultEXT GLEW_GET_FUN(__glewPushClientAttribDefaultEXT)
-#define glTextureBufferEXT GLEW_GET_FUN(__glewTextureBufferEXT)
-#define glTextureImage1DEXT GLEW_GET_FUN(__glewTextureImage1DEXT)
-#define glTextureImage2DEXT GLEW_GET_FUN(__glewTextureImage2DEXT)
-#define glTextureImage3DEXT GLEW_GET_FUN(__glewTextureImage3DEXT)
-#define glTextureParameterIivEXT GLEW_GET_FUN(__glewTextureParameterIivEXT)
-#define glTextureParameterIuivEXT GLEW_GET_FUN(__glewTextureParameterIuivEXT)
-#define glTextureParameterfEXT GLEW_GET_FUN(__glewTextureParameterfEXT)
-#define glTextureParameterfvEXT GLEW_GET_FUN(__glewTextureParameterfvEXT)
-#define glTextureParameteriEXT GLEW_GET_FUN(__glewTextureParameteriEXT)
-#define glTextureParameterivEXT GLEW_GET_FUN(__glewTextureParameterivEXT)
-#define glTextureRenderbufferEXT GLEW_GET_FUN(__glewTextureRenderbufferEXT)
-#define glTextureSubImage1DEXT GLEW_GET_FUN(__glewTextureSubImage1DEXT)
-#define glTextureSubImage2DEXT GLEW_GET_FUN(__glewTextureSubImage2DEXT)
-#define glTextureSubImage3DEXT GLEW_GET_FUN(__glewTextureSubImage3DEXT)
-#define glUnmapNamedBufferEXT GLEW_GET_FUN(__glewUnmapNamedBufferEXT)
-#define glVertexArrayColorOffsetEXT GLEW_GET_FUN(__glewVertexArrayColorOffsetEXT)
-#define glVertexArrayEdgeFlagOffsetEXT GLEW_GET_FUN(__glewVertexArrayEdgeFlagOffsetEXT)
-#define glVertexArrayFogCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayFogCoordOffsetEXT)
-#define glVertexArrayIndexOffsetEXT GLEW_GET_FUN(__glewVertexArrayIndexOffsetEXT)
-#define glVertexArrayMultiTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayMultiTexCoordOffsetEXT)
-#define glVertexArrayNormalOffsetEXT GLEW_GET_FUN(__glewVertexArrayNormalOffsetEXT)
-#define glVertexArraySecondaryColorOffsetEXT GLEW_GET_FUN(__glewVertexArraySecondaryColorOffsetEXT)
-#define glVertexArrayTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayTexCoordOffsetEXT)
-#define glVertexArrayVertexAttribDivisorEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribDivisorEXT)
-#define glVertexArrayVertexAttribIOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIOffsetEXT)
-#define glVertexArrayVertexAttribOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribOffsetEXT)
-#define glVertexArrayVertexOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexOffsetEXT)
-
-#define GLEW_EXT_direct_state_access GLEW_GET_VAR(__GLEW_EXT_direct_state_access)
-
-#endif /* GL_EXT_direct_state_access */
-
-/* ----------------------- GL_EXT_discard_framebuffer ---------------------- */
-
-#ifndef GL_EXT_discard_framebuffer
-#define GL_EXT_discard_framebuffer 1
-
-#define GL_COLOR_EXT 0x1800
-#define GL_DEPTH_EXT 0x1801
-#define GL_STENCIL_EXT 0x1802
-
-typedef void (GLAPIENTRY * PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments);
-
-#define glDiscardFramebufferEXT GLEW_GET_FUN(__glewDiscardFramebufferEXT)
-
-#define GLEW_EXT_discard_framebuffer GLEW_GET_VAR(__GLEW_EXT_discard_framebuffer)
-
-#endif /* GL_EXT_discard_framebuffer */
-
-/* ---------------------- GL_EXT_disjoint_timer_query ---------------------- */
-
-#ifndef GL_EXT_disjoint_timer_query
-#define GL_EXT_disjoint_timer_query 1
-
-#define GL_QUERY_COUNTER_BITS_EXT 0x8864
-#define GL_CURRENT_QUERY_EXT 0x8865
-#define GL_QUERY_RESULT_EXT 0x8866
-#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867
-#define GL_TIME_ELAPSED_EXT 0x88BF
-#define GL_TIMESTAMP_EXT 0x8E28
-#define GL_GPU_DISJOINT_EXT 0x8FBB
-
-typedef void (GLAPIENTRY * PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id);
-typedef void (GLAPIENTRY * PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLENDQUERYEXTPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLGETINTEGER64VEXTPROC) (GLenum pname, GLint64* data);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISQUERYEXTPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target);
-
-#define glBeginQueryEXT GLEW_GET_FUN(__glewBeginQueryEXT)
-#define glDeleteQueriesEXT GLEW_GET_FUN(__glewDeleteQueriesEXT)
-#define glEndQueryEXT GLEW_GET_FUN(__glewEndQueryEXT)
-#define glGenQueriesEXT GLEW_GET_FUN(__glewGenQueriesEXT)
-#define glGetInteger64vEXT GLEW_GET_FUN(__glewGetInteger64vEXT)
-#define glGetQueryObjectivEXT GLEW_GET_FUN(__glewGetQueryObjectivEXT)
-#define glGetQueryObjectuivEXT GLEW_GET_FUN(__glewGetQueryObjectuivEXT)
-#define glGetQueryivEXT GLEW_GET_FUN(__glewGetQueryivEXT)
-#define glIsQueryEXT GLEW_GET_FUN(__glewIsQueryEXT)
-#define glQueryCounterEXT GLEW_GET_FUN(__glewQueryCounterEXT)
-
-#define GLEW_EXT_disjoint_timer_query GLEW_GET_VAR(__GLEW_EXT_disjoint_timer_query)
-
-#endif /* GL_EXT_disjoint_timer_query */
-
-/* -------------------------- GL_EXT_draw_buffers -------------------------- */
-
-#ifndef GL_EXT_draw_buffers
-#define GL_EXT_draw_buffers 1
-
-#define GL_MAX_DRAW_BUFFERS_EXT 0x8824
-#define GL_DRAW_BUFFER0_EXT 0x8825
-#define GL_DRAW_BUFFER1_EXT 0x8826
-#define GL_DRAW_BUFFER2_EXT 0x8827
-#define GL_DRAW_BUFFER3_EXT 0x8828
-#define GL_DRAW_BUFFER4_EXT 0x8829
-#define GL_DRAW_BUFFER5_EXT 0x882A
-#define GL_DRAW_BUFFER6_EXT 0x882B
-#define GL_DRAW_BUFFER7_EXT 0x882C
-#define GL_DRAW_BUFFER8_EXT 0x882D
-#define GL_DRAW_BUFFER9_EXT 0x882E
-#define GL_DRAW_BUFFER10_EXT 0x882F
-#define GL_DRAW_BUFFER11_EXT 0x8830
-#define GL_DRAW_BUFFER12_EXT 0x8831
-#define GL_DRAW_BUFFER13_EXT 0x8832
-#define GL_DRAW_BUFFER14_EXT 0x8833
-#define GL_DRAW_BUFFER15_EXT 0x8834
-#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
-#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
-#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
-#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
-#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
-#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
-#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
-#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
-#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
-#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
-#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
-#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
-#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
-#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
-#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
-#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
-#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
-
-typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum* bufs);
-
-#define glDrawBuffersEXT GLEW_GET_FUN(__glewDrawBuffersEXT)
-
-#define GLEW_EXT_draw_buffers GLEW_GET_VAR(__GLEW_EXT_draw_buffers)
-
-#endif /* GL_EXT_draw_buffers */
-
-/* -------------------------- GL_EXT_draw_buffers2 ------------------------- */
-
-#ifndef GL_EXT_draw_buffers2
-#define GL_EXT_draw_buffers2 1
-
-typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
-typedef void (GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
-typedef void (GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
-typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data);
-typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data);
-typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index);
-
-#define glColorMaskIndexedEXT GLEW_GET_FUN(__glewColorMaskIndexedEXT)
-#define glDisableIndexedEXT GLEW_GET_FUN(__glewDisableIndexedEXT)
-#define glEnableIndexedEXT GLEW_GET_FUN(__glewEnableIndexedEXT)
-#define glGetBooleanIndexedvEXT GLEW_GET_FUN(__glewGetBooleanIndexedvEXT)
-#define glGetIntegerIndexedvEXT GLEW_GET_FUN(__glewGetIntegerIndexedvEXT)
-#define glIsEnabledIndexedEXT GLEW_GET_FUN(__glewIsEnabledIndexedEXT)
-
-#define GLEW_EXT_draw_buffers2 GLEW_GET_VAR(__GLEW_EXT_draw_buffers2)
-
-#endif /* GL_EXT_draw_buffers2 */
-
-/* ---------------------- GL_EXT_draw_buffers_indexed ---------------------- */
-
-#ifndef GL_EXT_draw_buffers_indexed
-#define GL_EXT_draw_buffers_indexed 1
-
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIEXTPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIEXTPROC) (GLuint buf, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIEXTPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCIEXTPROC) (GLuint buf, GLenum src, GLenum dst);
-typedef void (GLAPIENTRY * PFNGLCOLORMASKIEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
-typedef void (GLAPIENTRY * PFNGLDISABLEIEXTPROC) (GLenum target, GLuint index);
-typedef void (GLAPIENTRY * PFNGLENABLEIEXTPROC) (GLenum target, GLuint index);
-typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIEXTPROC) (GLenum target, GLuint index);
-
-#define glBlendEquationSeparateiEXT GLEW_GET_FUN(__glewBlendEquationSeparateiEXT)
-#define glBlendEquationiEXT GLEW_GET_FUN(__glewBlendEquationiEXT)
-#define glBlendFuncSeparateiEXT GLEW_GET_FUN(__glewBlendFuncSeparateiEXT)
-#define glBlendFunciEXT GLEW_GET_FUN(__glewBlendFunciEXT)
-#define glColorMaskiEXT GLEW_GET_FUN(__glewColorMaskiEXT)
-#define glDisableiEXT GLEW_GET_FUN(__glewDisableiEXT)
-#define glEnableiEXT GLEW_GET_FUN(__glewEnableiEXT)
-#define glIsEnablediEXT GLEW_GET_FUN(__glewIsEnablediEXT)
-
-#define GLEW_EXT_draw_buffers_indexed GLEW_GET_VAR(__GLEW_EXT_draw_buffers_indexed)
-
-#endif /* GL_EXT_draw_buffers_indexed */
-
-/* -------------------- GL_EXT_draw_elements_base_vertex ------------------- */
-
-#ifndef GL_EXT_draw_elements_base_vertex
-#define GL_EXT_draw_elements_base_vertex 1
-
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
-typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount, const GLint *basevertex);
-
-#define glDrawElementsBaseVertexEXT GLEW_GET_FUN(__glewDrawElementsBaseVertexEXT)
-#define glDrawElementsInstancedBaseVertexEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexEXT)
-#define glDrawRangeElementsBaseVertexEXT GLEW_GET_FUN(__glewDrawRangeElementsBaseVertexEXT)
-#define glMultiDrawElementsBaseVertexEXT GLEW_GET_FUN(__glewMultiDrawElementsBaseVertexEXT)
-
-#define GLEW_EXT_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_EXT_draw_elements_base_vertex)
-
-#endif /* GL_EXT_draw_elements_base_vertex */
-
-/* ------------------------- GL_EXT_draw_instanced ------------------------- */
-
-#ifndef GL_EXT_draw_instanced
-#define GL_EXT_draw_instanced 1
-
-typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
-
-#define glDrawArraysInstancedEXT GLEW_GET_FUN(__glewDrawArraysInstancedEXT)
-#define glDrawElementsInstancedEXT GLEW_GET_FUN(__glewDrawElementsInstancedEXT)
-
-#define GLEW_EXT_draw_instanced GLEW_GET_VAR(__GLEW_EXT_draw_instanced)
-
-#endif /* GL_EXT_draw_instanced */
-
-/* ----------------------- GL_EXT_draw_range_elements ---------------------- */
-
-#ifndef GL_EXT_draw_range_elements
-#define GL_EXT_draw_range_elements 1
-
-#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
-#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
-
-typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
-
-#define glDrawRangeElementsEXT GLEW_GET_FUN(__glewDrawRangeElementsEXT)
-
-#define GLEW_EXT_draw_range_elements GLEW_GET_VAR(__GLEW_EXT_draw_range_elements)
-
-#endif /* GL_EXT_draw_range_elements */
-
-/* --------------------- GL_EXT_draw_transform_feedback -------------------- */
-
-#ifndef GL_EXT_draw_transform_feedback
-#define GL_EXT_draw_transform_feedback 1
-
-typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKEXTPROC) (GLenum mode, GLuint id);
-typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC) (GLenum mode, GLuint id, GLsizei instancecount);
-
-#define glDrawTransformFeedbackEXT GLEW_GET_FUN(__glewDrawTransformFeedbackEXT)
-#define glDrawTransformFeedbackInstancedEXT GLEW_GET_FUN(__glewDrawTransformFeedbackInstancedEXT)
-
-#define GLEW_EXT_draw_transform_feedback GLEW_GET_VAR(__GLEW_EXT_draw_transform_feedback)
-
-#endif /* GL_EXT_draw_transform_feedback */
-
-/* ------------------------- GL_EXT_external_buffer ------------------------ */
-
-#ifndef GL_EXT_external_buffer
-#define GL_EXT_external_buffer 1
-
-typedef void* GLeglClientBufferEXT;
-
-typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
-typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
-
-#define glBufferStorageExternalEXT GLEW_GET_FUN(__glewBufferStorageExternalEXT)
-#define glNamedBufferStorageExternalEXT GLEW_GET_FUN(__glewNamedBufferStorageExternalEXT)
-
-#define GLEW_EXT_external_buffer GLEW_GET_VAR(__GLEW_EXT_external_buffer)
-
-#endif /* GL_EXT_external_buffer */
-
-/* --------------------------- GL_EXT_float_blend -------------------------- */
-
-#ifndef GL_EXT_float_blend
-#define GL_EXT_float_blend 1
-
-#define GLEW_EXT_float_blend GLEW_GET_VAR(__GLEW_EXT_float_blend)
-
-#endif /* GL_EXT_float_blend */
-
-/* ---------------------------- GL_EXT_fog_coord --------------------------- */
-
-#ifndef GL_EXT_fog_coord
-#define GL_EXT_fog_coord 1
-
-#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
-#define GL_FOG_COORDINATE_EXT 0x8451
-#define GL_FRAGMENT_DEPTH_EXT 0x8452
-#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453
-#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
-#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
-#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
-#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457
-
-typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord);
-
-#define glFogCoordPointerEXT GLEW_GET_FUN(__glewFogCoordPointerEXT)
-#define glFogCoorddEXT GLEW_GET_FUN(__glewFogCoorddEXT)
-#define glFogCoorddvEXT GLEW_GET_FUN(__glewFogCoorddvEXT)
-#define glFogCoordfEXT GLEW_GET_FUN(__glewFogCoordfEXT)
-#define glFogCoordfvEXT GLEW_GET_FUN(__glewFogCoordfvEXT)
-
-#define GLEW_EXT_fog_coord GLEW_GET_VAR(__GLEW_EXT_fog_coord)
-
-#endif /* GL_EXT_fog_coord */
-
-/* --------------------------- GL_EXT_frag_depth --------------------------- */
-
-#ifndef GL_EXT_frag_depth
-#define GL_EXT_frag_depth 1
-
-#define GLEW_EXT_frag_depth GLEW_GET_VAR(__GLEW_EXT_frag_depth)
-
-#endif /* GL_EXT_frag_depth */
-
-/* ------------------------ GL_EXT_fragment_lighting ----------------------- */
-
-#ifndef GL_EXT_fragment_lighting
-#define GL_EXT_fragment_lighting 1
-
-#define GL_FRAGMENT_LIGHTING_EXT 0x8400
-#define GL_FRAGMENT_COLOR_MATERIAL_EXT 0x8401
-#define GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT 0x8402
-#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT 0x8403
-#define GL_MAX_FRAGMENT_LIGHTS_EXT 0x8404
-#define GL_MAX_ACTIVE_LIGHTS_EXT 0x8405
-#define GL_CURRENT_RASTER_NORMAL_EXT 0x8406
-#define GL_LIGHT_ENV_MODE_EXT 0x8407
-#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT 0x8408
-#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT 0x8409
-#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT 0x840A
-#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840B
-#define GL_FRAGMENT_LIGHT0_EXT 0x840C
-#define GL_FRAGMENT_LIGHT7_EXT 0x8413
-
-typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALEXTPROC) (GLenum face, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFEXTPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVEXTPROC) (GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIEXTPROC) (GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVEXTPROC) (GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFEXTPROC) (GLenum light, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIEXTPROC) (GLenum light, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFEXTPROC) (GLenum face, GLenum pname, const GLfloat param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIEXTPROC) (GLenum face, GLenum pname, const GLint param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLLIGHTENVIEXTPROC) (GLenum pname, GLint param);
-
-#define glFragmentColorMaterialEXT GLEW_GET_FUN(__glewFragmentColorMaterialEXT)
-#define glFragmentLightModelfEXT GLEW_GET_FUN(__glewFragmentLightModelfEXT)
-#define glFragmentLightModelfvEXT GLEW_GET_FUN(__glewFragmentLightModelfvEXT)
-#define glFragmentLightModeliEXT GLEW_GET_FUN(__glewFragmentLightModeliEXT)
-#define glFragmentLightModelivEXT GLEW_GET_FUN(__glewFragmentLightModelivEXT)
-#define glFragmentLightfEXT GLEW_GET_FUN(__glewFragmentLightfEXT)
-#define glFragmentLightfvEXT GLEW_GET_FUN(__glewFragmentLightfvEXT)
-#define glFragmentLightiEXT GLEW_GET_FUN(__glewFragmentLightiEXT)
-#define glFragmentLightivEXT GLEW_GET_FUN(__glewFragmentLightivEXT)
-#define glFragmentMaterialfEXT GLEW_GET_FUN(__glewFragmentMaterialfEXT)
-#define glFragmentMaterialfvEXT GLEW_GET_FUN(__glewFragmentMaterialfvEXT)
-#define glFragmentMaterialiEXT GLEW_GET_FUN(__glewFragmentMaterialiEXT)
-#define glFragmentMaterialivEXT GLEW_GET_FUN(__glewFragmentMaterialivEXT)
-#define glGetFragmentLightfvEXT GLEW_GET_FUN(__glewGetFragmentLightfvEXT)
-#define glGetFragmentLightivEXT GLEW_GET_FUN(__glewGetFragmentLightivEXT)
-#define glGetFragmentMaterialfvEXT GLEW_GET_FUN(__glewGetFragmentMaterialfvEXT)
-#define glGetFragmentMaterialivEXT GLEW_GET_FUN(__glewGetFragmentMaterialivEXT)
-#define glLightEnviEXT GLEW_GET_FUN(__glewLightEnviEXT)
-
-#define GLEW_EXT_fragment_lighting GLEW_GET_VAR(__GLEW_EXT_fragment_lighting)
-
-#endif /* GL_EXT_fragment_lighting */
-
-/* ------------------------ GL_EXT_framebuffer_blit ------------------------ */
-
-#ifndef GL_EXT_framebuffer_blit
-#define GL_EXT_framebuffer_blit 1
-
-#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6
-#define GL_READ_FRAMEBUFFER_EXT 0x8CA8
-#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
-#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
-
-typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-
-#define glBlitFramebufferEXT GLEW_GET_FUN(__glewBlitFramebufferEXT)
-
-#define GLEW_EXT_framebuffer_blit GLEW_GET_VAR(__GLEW_EXT_framebuffer_blit)
-
-#endif /* GL_EXT_framebuffer_blit */
-
-/* --------------------- GL_EXT_framebuffer_multisample -------------------- */
-
-#ifndef GL_EXT_framebuffer_multisample
-#define GL_EXT_framebuffer_multisample 1
-
-#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
-#define GL_MAX_SAMPLES_EXT 0x8D57
-
-typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-
-#define glRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewRenderbufferStorageMultisampleEXT)
-
-#define GLEW_EXT_framebuffer_multisample GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample)
-
-#endif /* GL_EXT_framebuffer_multisample */
-
-/* --------------- GL_EXT_framebuffer_multisample_blit_scaled -------------- */
-
-#ifndef GL_EXT_framebuffer_multisample_blit_scaled
-#define GL_EXT_framebuffer_multisample_blit_scaled 1
-
-#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA
-#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB
-
-#define GLEW_EXT_framebuffer_multisample_blit_scaled GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample_blit_scaled)
-
-#endif /* GL_EXT_framebuffer_multisample_blit_scaled */
-
-/* ----------------------- GL_EXT_framebuffer_object ----------------------- */
-
-#ifndef GL_EXT_framebuffer_object
-#define GL_EXT_framebuffer_object 1
-
-#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
-#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
-#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
-#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
-#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
-#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
-#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
-#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
-#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
-#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
-#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
-#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
-#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
-#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
-#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
-#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
-#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
-#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
-#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
-#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
-#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
-#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
-#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
-#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
-#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
-#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
-#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
-#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
-#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
-#define GL_FRAMEBUFFER_EXT 0x8D40
-#define GL_RENDERBUFFER_EXT 0x8D41
-#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
-#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
-#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
-#define GL_STENCIL_INDEX1_EXT 0x8D46
-#define GL_STENCIL_INDEX4_EXT 0x8D47
-#define GL_STENCIL_INDEX8_EXT 0x8D48
-#define GL_STENCIL_INDEX16_EXT 0x8D49
-#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
-#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
-#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
-#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
-#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
-#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
-
-typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer);
-typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer);
-typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint* framebuffers);
-typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint* renderbuffers);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint* framebuffers);
-typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint* renderbuffers);
-typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPEXTPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer);
-typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer);
-typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-
-#define glBindFramebufferEXT GLEW_GET_FUN(__glewBindFramebufferEXT)
-#define glBindRenderbufferEXT GLEW_GET_FUN(__glewBindRenderbufferEXT)
-#define glCheckFramebufferStatusEXT GLEW_GET_FUN(__glewCheckFramebufferStatusEXT)
-#define glDeleteFramebuffersEXT GLEW_GET_FUN(__glewDeleteFramebuffersEXT)
-#define glDeleteRenderbuffersEXT GLEW_GET_FUN(__glewDeleteRenderbuffersEXT)
-#define glFramebufferRenderbufferEXT GLEW_GET_FUN(__glewFramebufferRenderbufferEXT)
-#define glFramebufferTexture1DEXT GLEW_GET_FUN(__glewFramebufferTexture1DEXT)
-#define glFramebufferTexture2DEXT GLEW_GET_FUN(__glewFramebufferTexture2DEXT)
-#define glFramebufferTexture3DEXT GLEW_GET_FUN(__glewFramebufferTexture3DEXT)
-#define glGenFramebuffersEXT GLEW_GET_FUN(__glewGenFramebuffersEXT)
-#define glGenRenderbuffersEXT GLEW_GET_FUN(__glewGenRenderbuffersEXT)
-#define glGenerateMipmapEXT GLEW_GET_FUN(__glewGenerateMipmapEXT)
-#define glGetFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivEXT)
-#define glGetRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetRenderbufferParameterivEXT)
-#define glIsFramebufferEXT GLEW_GET_FUN(__glewIsFramebufferEXT)
-#define glIsRenderbufferEXT GLEW_GET_FUN(__glewIsRenderbufferEXT)
-#define glRenderbufferStorageEXT GLEW_GET_FUN(__glewRenderbufferStorageEXT)
-
-#define GLEW_EXT_framebuffer_object GLEW_GET_VAR(__GLEW_EXT_framebuffer_object)
-
-#endif /* GL_EXT_framebuffer_object */
-
-/* ------------------------ GL_EXT_framebuffer_sRGB ------------------------ */
-
-#ifndef GL_EXT_framebuffer_sRGB
-#define GL_EXT_framebuffer_sRGB 1
-
-#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
-#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
-
-#define GLEW_EXT_framebuffer_sRGB GLEW_GET_VAR(__GLEW_EXT_framebuffer_sRGB)
-
-#endif /* GL_EXT_framebuffer_sRGB */
-
-/* ----------------------- GL_EXT_geometry_point_size ---------------------- */
-
-#ifndef GL_EXT_geometry_point_size
-#define GL_EXT_geometry_point_size 1
-
-#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004
-#define GL_LINES_ADJACENCY_EXT 0xA
-#define GL_LINE_STRIP_ADJACENCY_EXT 0xB
-#define GL_TRIANGLES_ADJACENCY_EXT 0xC
-#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
-#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E
-#define GL_UNDEFINED_VERTEX_EXT 0x8260
-#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F
-#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916
-#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917
-#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918
-#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C
-#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32
-#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
-#define GL_PRIMITIVES_GENERATED_EXT 0x8C87
-#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
-#define GL_GEOMETRY_SHADER_EXT 0x8DD9
-#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
-#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
-#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
-#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
-#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
-#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A
-#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD
-#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7
-#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123
-#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124
-#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF
-#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5
-#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309
-#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312
-#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317
-
-#define GLEW_EXT_geometry_point_size GLEW_GET_VAR(__GLEW_EXT_geometry_point_size)
-
-#endif /* GL_EXT_geometry_point_size */
-
-/* ------------------------- GL_EXT_geometry_shader ------------------------ */
-
-#ifndef GL_EXT_geometry_shader
-#define GL_EXT_geometry_shader 1
-
-#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004
-#define GL_LINES_ADJACENCY_EXT 0xA
-#define GL_LINE_STRIP_ADJACENCY_EXT 0xB
-#define GL_TRIANGLES_ADJACENCY_EXT 0xC
-#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
-#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E
-#define GL_UNDEFINED_VERTEX_EXT 0x8260
-#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F
-#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916
-#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917
-#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918
-#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C
-#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32
-#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
-#define GL_PRIMITIVES_GENERATED_EXT 0x8C87
-#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
-#define GL_GEOMETRY_SHADER_EXT 0x8DD9
-#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
-#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
-#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
-#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
-#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
-#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A
-#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD
-#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7
-#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123
-#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124
-#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF
-#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5
-#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309
-#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312
-#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317
-
-#define GLEW_EXT_geometry_shader GLEW_GET_VAR(__GLEW_EXT_geometry_shader)
-
-#endif /* GL_EXT_geometry_shader */
-
-/* ------------------------ GL_EXT_geometry_shader4 ------------------------ */
-
-#ifndef GL_EXT_geometry_shader4
-#define GL_EXT_geometry_shader4 1
-
-#define GL_LINES_ADJACENCY_EXT 0xA
-#define GL_LINE_STRIP_ADJACENCY_EXT 0xB
-#define GL_TRIANGLES_ADJACENCY_EXT 0xC
-#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
-#define GL_PROGRAM_POINT_SIZE_EXT 0x8642
-#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
-#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
-#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
-#define GL_GEOMETRY_SHADER_EXT 0x8DD9
-#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
-#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
-#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
-#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
-#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
-#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
-#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
-#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
-typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
-
-#define glFramebufferTextureEXT GLEW_GET_FUN(__glewFramebufferTextureEXT)
-#define glFramebufferTextureFaceEXT GLEW_GET_FUN(__glewFramebufferTextureFaceEXT)
-#define glProgramParameteriEXT GLEW_GET_FUN(__glewProgramParameteriEXT)
-
-#define GLEW_EXT_geometry_shader4 GLEW_GET_VAR(__GLEW_EXT_geometry_shader4)
-
-#endif /* GL_EXT_geometry_shader4 */
-
-/* --------------------- GL_EXT_gpu_program_parameters --------------------- */
-
-#ifndef GL_EXT_gpu_program_parameters
-#define GL_EXT_gpu_program_parameters 1
-
-typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params);
-
-#define glProgramEnvParameters4fvEXT GLEW_GET_FUN(__glewProgramEnvParameters4fvEXT)
-#define glProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewProgramLocalParameters4fvEXT)
-
-#define GLEW_EXT_gpu_program_parameters GLEW_GET_VAR(__GLEW_EXT_gpu_program_parameters)
-
-#endif /* GL_EXT_gpu_program_parameters */
-
-/* --------------------------- GL_EXT_gpu_shader4 -------------------------- */
-
-#ifndef GL_EXT_gpu_shader4
-#define GL_EXT_gpu_shader4 1
-
-#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD
-#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
-#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
-#define GL_SAMPLER_BUFFER_EXT 0x8DC2
-#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
-#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
-#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
-#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
-#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
-#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
-#define GL_INT_SAMPLER_1D_EXT 0x8DC9
-#define GL_INT_SAMPLER_2D_EXT 0x8DCA
-#define GL_INT_SAMPLER_3D_EXT 0x8DCB
-#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC
-#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
-#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
-#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
-#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
-#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
-#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
-#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
-#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
-#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
-#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
-#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
-#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
-
-typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name);
-typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name);
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
-
-#define glBindFragDataLocationEXT GLEW_GET_FUN(__glewBindFragDataLocationEXT)
-#define glGetFragDataLocationEXT GLEW_GET_FUN(__glewGetFragDataLocationEXT)
-#define glGetUniformuivEXT GLEW_GET_FUN(__glewGetUniformuivEXT)
-#define glGetVertexAttribIivEXT GLEW_GET_FUN(__glewGetVertexAttribIivEXT)
-#define glGetVertexAttribIuivEXT GLEW_GET_FUN(__glewGetVertexAttribIuivEXT)
-#define glUniform1uiEXT GLEW_GET_FUN(__glewUniform1uiEXT)
-#define glUniform1uivEXT GLEW_GET_FUN(__glewUniform1uivEXT)
-#define glUniform2uiEXT GLEW_GET_FUN(__glewUniform2uiEXT)
-#define glUniform2uivEXT GLEW_GET_FUN(__glewUniform2uivEXT)
-#define glUniform3uiEXT GLEW_GET_FUN(__glewUniform3uiEXT)
-#define glUniform3uivEXT GLEW_GET_FUN(__glewUniform3uivEXT)
-#define glUniform4uiEXT GLEW_GET_FUN(__glewUniform4uiEXT)
-#define glUniform4uivEXT GLEW_GET_FUN(__glewUniform4uivEXT)
-#define glVertexAttribI1iEXT GLEW_GET_FUN(__glewVertexAttribI1iEXT)
-#define glVertexAttribI1ivEXT GLEW_GET_FUN(__glewVertexAttribI1ivEXT)
-#define glVertexAttribI1uiEXT GLEW_GET_FUN(__glewVertexAttribI1uiEXT)
-#define glVertexAttribI1uivEXT GLEW_GET_FUN(__glewVertexAttribI1uivEXT)
-#define glVertexAttribI2iEXT GLEW_GET_FUN(__glewVertexAttribI2iEXT)
-#define glVertexAttribI2ivEXT GLEW_GET_FUN(__glewVertexAttribI2ivEXT)
-#define glVertexAttribI2uiEXT GLEW_GET_FUN(__glewVertexAttribI2uiEXT)
-#define glVertexAttribI2uivEXT GLEW_GET_FUN(__glewVertexAttribI2uivEXT)
-#define glVertexAttribI3iEXT GLEW_GET_FUN(__glewVertexAttribI3iEXT)
-#define glVertexAttribI3ivEXT GLEW_GET_FUN(__glewVertexAttribI3ivEXT)
-#define glVertexAttribI3uiEXT GLEW_GET_FUN(__glewVertexAttribI3uiEXT)
-#define glVertexAttribI3uivEXT GLEW_GET_FUN(__glewVertexAttribI3uivEXT)
-#define glVertexAttribI4bvEXT GLEW_GET_FUN(__glewVertexAttribI4bvEXT)
-#define glVertexAttribI4iEXT GLEW_GET_FUN(__glewVertexAttribI4iEXT)
-#define glVertexAttribI4ivEXT GLEW_GET_FUN(__glewVertexAttribI4ivEXT)
-#define glVertexAttribI4svEXT GLEW_GET_FUN(__glewVertexAttribI4svEXT)
-#define glVertexAttribI4ubvEXT GLEW_GET_FUN(__glewVertexAttribI4ubvEXT)
-#define glVertexAttribI4uiEXT GLEW_GET_FUN(__glewVertexAttribI4uiEXT)
-#define glVertexAttribI4uivEXT GLEW_GET_FUN(__glewVertexAttribI4uivEXT)
-#define glVertexAttribI4usvEXT GLEW_GET_FUN(__glewVertexAttribI4usvEXT)
-#define glVertexAttribIPointerEXT GLEW_GET_FUN(__glewVertexAttribIPointerEXT)
-
-#define GLEW_EXT_gpu_shader4 GLEW_GET_VAR(__GLEW_EXT_gpu_shader4)
-
-#endif /* GL_EXT_gpu_shader4 */
-
-/* --------------------------- GL_EXT_gpu_shader5 -------------------------- */
-
-#ifndef GL_EXT_gpu_shader5
-#define GL_EXT_gpu_shader5 1
-
-#define GLEW_EXT_gpu_shader5 GLEW_GET_VAR(__GLEW_EXT_gpu_shader5)
-
-#endif /* GL_EXT_gpu_shader5 */
-
-/* ---------------------------- GL_EXT_histogram --------------------------- */
-
-#ifndef GL_EXT_histogram
-#define GL_EXT_histogram 1
-
-#define GL_HISTOGRAM_EXT 0x8024
-#define GL_PROXY_HISTOGRAM_EXT 0x8025
-#define GL_HISTOGRAM_WIDTH_EXT 0x8026
-#define GL_HISTOGRAM_FORMAT_EXT 0x8027
-#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028
-#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029
-#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A
-#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B
-#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C
-#define GL_HISTOGRAM_SINK_EXT 0x802D
-#define GL_MINMAX_EXT 0x802E
-#define GL_MINMAX_FORMAT_EXT 0x802F
-#define GL_MINMAX_SINK_EXT 0x8030
-
-typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
-typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
-typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
-typedef void (GLAPIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink);
-typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target);
-
-#define glGetHistogramEXT GLEW_GET_FUN(__glewGetHistogramEXT)
-#define glGetHistogramParameterfvEXT GLEW_GET_FUN(__glewGetHistogramParameterfvEXT)
-#define glGetHistogramParameterivEXT GLEW_GET_FUN(__glewGetHistogramParameterivEXT)
-#define glGetMinmaxEXT GLEW_GET_FUN(__glewGetMinmaxEXT)
-#define glGetMinmaxParameterfvEXT GLEW_GET_FUN(__glewGetMinmaxParameterfvEXT)
-#define glGetMinmaxParameterivEXT GLEW_GET_FUN(__glewGetMinmaxParameterivEXT)
-#define glHistogramEXT GLEW_GET_FUN(__glewHistogramEXT)
-#define glMinmaxEXT GLEW_GET_FUN(__glewMinmaxEXT)
-#define glResetHistogramEXT GLEW_GET_FUN(__glewResetHistogramEXT)
-#define glResetMinmaxEXT GLEW_GET_FUN(__glewResetMinmaxEXT)
-
-#define GLEW_EXT_histogram GLEW_GET_VAR(__GLEW_EXT_histogram)
-
-#endif /* GL_EXT_histogram */
-
-/* ----------------------- GL_EXT_index_array_formats ---------------------- */
-
-#ifndef GL_EXT_index_array_formats
-#define GL_EXT_index_array_formats 1
-
-#define GLEW_EXT_index_array_formats GLEW_GET_VAR(__GLEW_EXT_index_array_formats)
-
-#endif /* GL_EXT_index_array_formats */
-
-/* --------------------------- GL_EXT_index_func --------------------------- */
-
-#ifndef GL_EXT_index_func
-#define GL_EXT_index_func 1
-
-typedef void (GLAPIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLfloat ref);
-
-#define glIndexFuncEXT GLEW_GET_FUN(__glewIndexFuncEXT)
-
-#define GLEW_EXT_index_func GLEW_GET_VAR(__GLEW_EXT_index_func)
-
-#endif /* GL_EXT_index_func */
-
-/* ------------------------- GL_EXT_index_material ------------------------- */
-
-#ifndef GL_EXT_index_material
-#define GL_EXT_index_material 1
-
-typedef void (GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode);
-
-#define glIndexMaterialEXT GLEW_GET_FUN(__glewIndexMaterialEXT)
-
-#define GLEW_EXT_index_material GLEW_GET_VAR(__GLEW_EXT_index_material)
-
-#endif /* GL_EXT_index_material */
-
-/* -------------------------- GL_EXT_index_texture ------------------------- */
-
-#ifndef GL_EXT_index_texture
-#define GL_EXT_index_texture 1
-
-#define GLEW_EXT_index_texture GLEW_GET_VAR(__GLEW_EXT_index_texture)
-
-#endif /* GL_EXT_index_texture */
-
-/* ------------------------ GL_EXT_instanced_arrays ------------------------ */
-
-#ifndef GL_EXT_instanced_arrays
-#define GL_EXT_instanced_arrays 1
-
-#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE
-
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor);
-
-#define glVertexAttribDivisorEXT GLEW_GET_FUN(__glewVertexAttribDivisorEXT)
-
-#define GLEW_EXT_instanced_arrays GLEW_GET_VAR(__GLEW_EXT_instanced_arrays)
-
-#endif /* GL_EXT_instanced_arrays */
-
-/* -------------------------- GL_EXT_light_texture ------------------------- */
-
-#ifndef GL_EXT_light_texture
-#define GL_EXT_light_texture 1
-
-#define GL_FRAGMENT_MATERIAL_EXT 0x8349
-#define GL_FRAGMENT_NORMAL_EXT 0x834A
-#define GL_FRAGMENT_COLOR_EXT 0x834C
-#define GL_ATTENUATION_EXT 0x834D
-#define GL_SHADOW_ATTENUATION_EXT 0x834E
-#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F
-#define GL_TEXTURE_LIGHT_EXT 0x8350
-#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351
-#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352
-
-typedef void (GLAPIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode);
-typedef void (GLAPIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname);
-typedef void (GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode);
-
-#define glApplyTextureEXT GLEW_GET_FUN(__glewApplyTextureEXT)
-#define glTextureLightEXT GLEW_GET_FUN(__glewTextureLightEXT)
-#define glTextureMaterialEXT GLEW_GET_FUN(__glewTextureMaterialEXT)
-
-#define GLEW_EXT_light_texture GLEW_GET_VAR(__GLEW_EXT_light_texture)
-
-#endif /* GL_EXT_light_texture */
-
-/* ------------------------ GL_EXT_map_buffer_range ------------------------ */
-
-#ifndef GL_EXT_map_buffer_range
-#define GL_EXT_map_buffer_range 1
-
-#define GL_MAP_READ_BIT_EXT 0x0001
-#define GL_MAP_WRITE_BIT_EXT 0x0002
-#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004
-#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008
-#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010
-#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020
-
-typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
-typedef void * (GLAPIENTRY * PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
-
-#define glFlushMappedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedBufferRangeEXT)
-#define glMapBufferRangeEXT GLEW_GET_FUN(__glewMapBufferRangeEXT)
-
-#define GLEW_EXT_map_buffer_range GLEW_GET_VAR(__GLEW_EXT_map_buffer_range)
-
-#endif /* GL_EXT_map_buffer_range */
-
-/* -------------------------- GL_EXT_memory_object ------------------------- */
-
-#ifndef GL_EXT_memory_object
-#define GL_EXT_memory_object 1
-
-#define GL_UUID_SIZE_EXT 16
-#define GL_TEXTURE_TILING_EXT 0x9580
-#define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581
-#define GL_NUM_TILING_TYPES_EXT 0x9582
-#define GL_TILING_TYPES_EXT 0x9583
-#define GL_OPTIMAL_TILING_EXT 0x9584
-#define GL_LINEAR_TILING_EXT 0x9585
-#define GL_NUM_DEVICE_UUIDS_EXT 0x9596
-#define GL_DEVICE_UUID_EXT 0x9597
-#define GL_DRIVER_UUID_EXT 0x9598
-#define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B
-
-typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint* memoryObjects);
-typedef void (GLAPIENTRY * PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint* memoryObjects);
-typedef void (GLAPIENTRY * PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte* data);
-typedef void (GLAPIENTRY * PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte* data);
-typedef GLboolean (GLAPIENTRY * PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject);
-typedef void (GLAPIENTRY * PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM1DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
-
-#define glBufferStorageMemEXT GLEW_GET_FUN(__glewBufferStorageMemEXT)
-#define glCreateMemoryObjectsEXT GLEW_GET_FUN(__glewCreateMemoryObjectsEXT)
-#define glDeleteMemoryObjectsEXT GLEW_GET_FUN(__glewDeleteMemoryObjectsEXT)
-#define glGetMemoryObjectParameterivEXT GLEW_GET_FUN(__glewGetMemoryObjectParameterivEXT)
-#define glGetUnsignedBytei_vEXT GLEW_GET_FUN(__glewGetUnsignedBytei_vEXT)
-#define glGetUnsignedBytevEXT GLEW_GET_FUN(__glewGetUnsignedBytevEXT)
-#define glIsMemoryObjectEXT GLEW_GET_FUN(__glewIsMemoryObjectEXT)
-#define glMemoryObjectParameterivEXT GLEW_GET_FUN(__glewMemoryObjectParameterivEXT)
-#define glNamedBufferStorageMemEXT GLEW_GET_FUN(__glewNamedBufferStorageMemEXT)
-#define glTexStorageMem1DEXT GLEW_GET_FUN(__glewTexStorageMem1DEXT)
-#define glTexStorageMem2DEXT GLEW_GET_FUN(__glewTexStorageMem2DEXT)
-#define glTexStorageMem2DMultisampleEXT GLEW_GET_FUN(__glewTexStorageMem2DMultisampleEXT)
-#define glTexStorageMem3DEXT GLEW_GET_FUN(__glewTexStorageMem3DEXT)
-#define glTexStorageMem3DMultisampleEXT GLEW_GET_FUN(__glewTexStorageMem3DMultisampleEXT)
-#define glTextureStorageMem1DEXT GLEW_GET_FUN(__glewTextureStorageMem1DEXT)
-#define glTextureStorageMem2DEXT GLEW_GET_FUN(__glewTextureStorageMem2DEXT)
-#define glTextureStorageMem2DMultisampleEXT GLEW_GET_FUN(__glewTextureStorageMem2DMultisampleEXT)
-#define glTextureStorageMem3DEXT GLEW_GET_FUN(__glewTextureStorageMem3DEXT)
-#define glTextureStorageMem3DMultisampleEXT GLEW_GET_FUN(__glewTextureStorageMem3DMultisampleEXT)
-
-#define GLEW_EXT_memory_object GLEW_GET_VAR(__GLEW_EXT_memory_object)
-
-#endif /* GL_EXT_memory_object */
-
-/* ------------------------ GL_EXT_memory_object_fd ------------------------ */
-
-#ifndef GL_EXT_memory_object_fd
-#define GL_EXT_memory_object_fd 1
-
-#define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586
-
-typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd);
-
-#define glImportMemoryFdEXT GLEW_GET_FUN(__glewImportMemoryFdEXT)
-
-#define GLEW_EXT_memory_object_fd GLEW_GET_VAR(__GLEW_EXT_memory_object_fd)
-
-#endif /* GL_EXT_memory_object_fd */
-
-/* ----------------------- GL_EXT_memory_object_win32 ---------------------- */
-
-#ifndef GL_EXT_memory_object_win32
-#define GL_EXT_memory_object_win32 1
-
-#define GL_LUID_SIZE_EXT 8
-#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587
-#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588
-#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589
-#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A
-#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B
-#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C
-#define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594
-#define GL_D3D12_FENCE_VALUE_EXT 0x9595
-#define GL_DEVICE_LUID_EXT 0x9599
-#define GL_DEVICE_NODE_MASK_EXT 0x959A
-
-typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle);
-typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name);
-
-#define glImportMemoryWin32HandleEXT GLEW_GET_FUN(__glewImportMemoryWin32HandleEXT)
-#define glImportMemoryWin32NameEXT GLEW_GET_FUN(__glewImportMemoryWin32NameEXT)
-
-#define GLEW_EXT_memory_object_win32 GLEW_GET_VAR(__GLEW_EXT_memory_object_win32)
-
-#endif /* GL_EXT_memory_object_win32 */
-
-/* ------------------------- GL_EXT_misc_attribute ------------------------- */
-
-#ifndef GL_EXT_misc_attribute
-#define GL_EXT_misc_attribute 1
-
-#define GLEW_EXT_misc_attribute GLEW_GET_VAR(__GLEW_EXT_misc_attribute)
-
-#endif /* GL_EXT_misc_attribute */
-
-/* ------------------------ GL_EXT_multi_draw_arrays ----------------------- */
-
-#ifndef GL_EXT_multi_draw_arrays
-#define GL_EXT_multi_draw_arrays 1
-
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount);
-
-#define glMultiDrawArraysEXT GLEW_GET_FUN(__glewMultiDrawArraysEXT)
-#define glMultiDrawElementsEXT GLEW_GET_FUN(__glewMultiDrawElementsEXT)
-
-#define GLEW_EXT_multi_draw_arrays GLEW_GET_VAR(__GLEW_EXT_multi_draw_arrays)
-
-#endif /* GL_EXT_multi_draw_arrays */
-
-/* ----------------------- GL_EXT_multi_draw_indirect ---------------------- */
-
-#ifndef GL_EXT_multi_draw_indirect
-#define GL_EXT_multi_draw_indirect 1
-
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride);
-
-#define glMultiDrawArraysIndirectEXT GLEW_GET_FUN(__glewMultiDrawArraysIndirectEXT)
-#define glMultiDrawElementsIndirectEXT GLEW_GET_FUN(__glewMultiDrawElementsIndirectEXT)
-
-#define GLEW_EXT_multi_draw_indirect GLEW_GET_VAR(__GLEW_EXT_multi_draw_indirect)
-
-#endif /* GL_EXT_multi_draw_indirect */
-
-/* ------------------------ GL_EXT_multiple_textures ----------------------- */
-
-#ifndef GL_EXT_multiple_textures
-#define GL_EXT_multiple_textures 1
-
-#define GLEW_EXT_multiple_textures GLEW_GET_VAR(__GLEW_EXT_multiple_textures)
-
-#endif /* GL_EXT_multiple_textures */
-
-/* --------------------------- GL_EXT_multisample -------------------------- */
-
-#ifndef GL_EXT_multisample
-#define GL_EXT_multisample 1
-
-#define GL_MULTISAMPLE_EXT 0x809D
-#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
-#define GL_SAMPLE_MASK_EXT 0x80A0
-#define GL_1PASS_EXT 0x80A1
-#define GL_2PASS_0_EXT 0x80A2
-#define GL_2PASS_1_EXT 0x80A3
-#define GL_4PASS_0_EXT 0x80A4
-#define GL_4PASS_1_EXT 0x80A5
-#define GL_4PASS_2_EXT 0x80A6
-#define GL_4PASS_3_EXT 0x80A7
-#define GL_SAMPLE_BUFFERS_EXT 0x80A8
-#define GL_SAMPLES_EXT 0x80A9
-#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA
-#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB
-#define GL_SAMPLE_PATTERN_EXT 0x80AC
-#define GL_MULTISAMPLE_BIT_EXT 0x20000000
-
-typedef void (GLAPIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert);
-typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern);
-
-#define glSampleMaskEXT GLEW_GET_FUN(__glewSampleMaskEXT)
-#define glSamplePatternEXT GLEW_GET_FUN(__glewSamplePatternEXT)
-
-#define GLEW_EXT_multisample GLEW_GET_VAR(__GLEW_EXT_multisample)
-
-#endif /* GL_EXT_multisample */
-
-/* -------------------- GL_EXT_multisample_compatibility ------------------- */
-
-#ifndef GL_EXT_multisample_compatibility
-#define GL_EXT_multisample_compatibility 1
-
-#define GL_MULTISAMPLE_EXT 0x809D
-#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
-
-#define GLEW_EXT_multisample_compatibility GLEW_GET_VAR(__GLEW_EXT_multisample_compatibility)
-
-#endif /* GL_EXT_multisample_compatibility */
-
-/* ----------------- GL_EXT_multisampled_render_to_texture ----------------- */
-
-#ifndef GL_EXT_multisampled_render_to_texture
-#define GL_EXT_multisampled_render_to_texture 1
-
-#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
-#define GL_MAX_SAMPLES_EXT 0x8D57
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
-
-#define glFramebufferTexture2DMultisampleEXT GLEW_GET_FUN(__glewFramebufferTexture2DMultisampleEXT)
-
-#define GLEW_EXT_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_EXT_multisampled_render_to_texture)
-
-#endif /* GL_EXT_multisampled_render_to_texture */
-
-/* ----------------- GL_EXT_multisampled_render_to_texture2 ---------------- */
-
-#ifndef GL_EXT_multisampled_render_to_texture2
-#define GL_EXT_multisampled_render_to_texture2 1
-
-#define GLEW_EXT_multisampled_render_to_texture2 GLEW_GET_VAR(__GLEW_EXT_multisampled_render_to_texture2)
-
-#endif /* GL_EXT_multisampled_render_to_texture2 */
-
-/* --------------------- GL_EXT_multiview_draw_buffers --------------------- */
-
-#ifndef GL_EXT_multiview_draw_buffers
-#define GL_EXT_multiview_draw_buffers 1
-
-#define GL_DRAW_BUFFER_EXT 0x0C01
-#define GL_READ_BUFFER_EXT 0x0C02
-#define GL_COLOR_ATTACHMENT_EXT 0x90F0
-#define GL_MULTIVIEW_EXT 0x90F1
-#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2
-
-typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum* location, const GLint *indices);
-typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint* data);
-typedef void (GLAPIENTRY * PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index);
-
-#define glDrawBuffersIndexedEXT GLEW_GET_FUN(__glewDrawBuffersIndexedEXT)
-#define glGetIntegeri_vEXT GLEW_GET_FUN(__glewGetIntegeri_vEXT)
-#define glReadBufferIndexedEXT GLEW_GET_FUN(__glewReadBufferIndexedEXT)
-
-#define GLEW_EXT_multiview_draw_buffers GLEW_GET_VAR(__GLEW_EXT_multiview_draw_buffers)
-
-#endif /* GL_EXT_multiview_draw_buffers */
-
-/* ------------- GL_EXT_multiview_tessellation_geometry_shader ------------- */
-
-#ifndef GL_EXT_multiview_tessellation_geometry_shader
-#define GL_EXT_multiview_tessellation_geometry_shader 1
-
-#define GLEW_EXT_multiview_tessellation_geometry_shader GLEW_GET_VAR(__GLEW_EXT_multiview_tessellation_geometry_shader)
-
-#endif /* GL_EXT_multiview_tessellation_geometry_shader */
-
-/* ------------------ GL_EXT_multiview_texture_multisample ----------------- */
-
-#ifndef GL_EXT_multiview_texture_multisample
-#define GL_EXT_multiview_texture_multisample 1
-
-#define GLEW_EXT_multiview_texture_multisample GLEW_GET_VAR(__GLEW_EXT_multiview_texture_multisample)
-
-#endif /* GL_EXT_multiview_texture_multisample */
-
-/* ---------------------- GL_EXT_multiview_timer_query --------------------- */
-
-#ifndef GL_EXT_multiview_timer_query
-#define GL_EXT_multiview_timer_query 1
-
-#define GLEW_EXT_multiview_timer_query GLEW_GET_VAR(__GLEW_EXT_multiview_timer_query)
-
-#endif /* GL_EXT_multiview_timer_query */
-
-/* --------------------- GL_EXT_occlusion_query_boolean -------------------- */
-
-#ifndef GL_EXT_occlusion_query_boolean
-#define GL_EXT_occlusion_query_boolean 1
-
-#define GL_CURRENT_QUERY_EXT 0x8865
-#define GL_QUERY_RESULT_EXT 0x8866
-#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867
-#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F
-#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A
-
-#define GLEW_EXT_occlusion_query_boolean GLEW_GET_VAR(__GLEW_EXT_occlusion_query_boolean)
-
-#endif /* GL_EXT_occlusion_query_boolean */
-
-/* ---------------------- GL_EXT_packed_depth_stencil ---------------------- */
-
-#ifndef GL_EXT_packed_depth_stencil
-#define GL_EXT_packed_depth_stencil 1
-
-#define GL_DEPTH_STENCIL_EXT 0x84F9
-#define GL_UNSIGNED_INT_24_8_EXT 0x84FA
-#define GL_DEPTH24_STENCIL8_EXT 0x88F0
-#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1
-
-#define GLEW_EXT_packed_depth_stencil GLEW_GET_VAR(__GLEW_EXT_packed_depth_stencil)
-
-#endif /* GL_EXT_packed_depth_stencil */
-
-/* -------------------------- GL_EXT_packed_float -------------------------- */
-
-#ifndef GL_EXT_packed_float
-#define GL_EXT_packed_float 1
-
-#define GL_R11F_G11F_B10F_EXT 0x8C3A
-#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
-#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C
-
-#define GLEW_EXT_packed_float GLEW_GET_VAR(__GLEW_EXT_packed_float)
-
-#endif /* GL_EXT_packed_float */
-
-/* -------------------------- GL_EXT_packed_pixels ------------------------- */
-
-#ifndef GL_EXT_packed_pixels
-#define GL_EXT_packed_pixels 1
-
-#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032
-#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
-#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
-#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035
-#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036
-
-#define GLEW_EXT_packed_pixels GLEW_GET_VAR(__GLEW_EXT_packed_pixels)
-
-#endif /* GL_EXT_packed_pixels */
-
-/* ------------------------ GL_EXT_paletted_texture ------------------------ */
-
-#ifndef GL_EXT_paletted_texture
-#define GL_EXT_paletted_texture 1
-
-#define GL_TEXTURE_1D 0x0DE0
-#define GL_TEXTURE_2D 0x0DE1
-#define GL_PROXY_TEXTURE_1D 0x8063
-#define GL_PROXY_TEXTURE_2D 0x8064
-#define GL_COLOR_TABLE_FORMAT_EXT 0x80D8
-#define GL_COLOR_TABLE_WIDTH_EXT 0x80D9
-#define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA
-#define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB
-#define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC
-#define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD
-#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE
-#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF
-#define GL_COLOR_INDEX1_EXT 0x80E2
-#define GL_COLOR_INDEX2_EXT 0x80E3
-#define GL_COLOR_INDEX4_EXT 0x80E4
-#define GL_COLOR_INDEX8_EXT 0x80E5
-#define GL_COLOR_INDEX12_EXT 0x80E6
-#define GL_COLOR_INDEX16_EXT 0x80E7
-#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
-#define GL_TEXTURE_CUBE_MAP_ARB 0x8513
-#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
-
-typedef void (GLAPIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *data);
-typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void *data);
-typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params);
-
-#define glColorTableEXT GLEW_GET_FUN(__glewColorTableEXT)
-#define glGetColorTableEXT GLEW_GET_FUN(__glewGetColorTableEXT)
-#define glGetColorTableParameterfvEXT GLEW_GET_FUN(__glewGetColorTableParameterfvEXT)
-#define glGetColorTableParameterivEXT GLEW_GET_FUN(__glewGetColorTableParameterivEXT)
-
-#define GLEW_EXT_paletted_texture GLEW_GET_VAR(__GLEW_EXT_paletted_texture)
-
-#endif /* GL_EXT_paletted_texture */
-
-/* ----------------------- GL_EXT_pixel_buffer_object ---------------------- */
-
-#ifndef GL_EXT_pixel_buffer_object
-#define GL_EXT_pixel_buffer_object 1
-
-#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB
-#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC
-#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED
-#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF
-
-#define GLEW_EXT_pixel_buffer_object GLEW_GET_VAR(__GLEW_EXT_pixel_buffer_object)
-
-#endif /* GL_EXT_pixel_buffer_object */
-
-/* ------------------------- GL_EXT_pixel_transform ------------------------ */
-
-#ifndef GL_EXT_pixel_transform
-#define GL_EXT_pixel_transform 1
-
-#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330
-#define GL_PIXEL_MAG_FILTER_EXT 0x8331
-#define GL_PIXEL_MIN_FILTER_EXT 0x8332
-#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333
-#define GL_CUBIC_EXT 0x8334
-#define GL_AVERAGE_EXT 0x8335
-#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336
-#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337
-#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338
-
-typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, const GLfloat param);
-typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, const GLint param);
-typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params);
-
-#define glGetPixelTransformParameterfvEXT GLEW_GET_FUN(__glewGetPixelTransformParameterfvEXT)
-#define glGetPixelTransformParameterivEXT GLEW_GET_FUN(__glewGetPixelTransformParameterivEXT)
-#define glPixelTransformParameterfEXT GLEW_GET_FUN(__glewPixelTransformParameterfEXT)
-#define glPixelTransformParameterfvEXT GLEW_GET_FUN(__glewPixelTransformParameterfvEXT)
-#define glPixelTransformParameteriEXT GLEW_GET_FUN(__glewPixelTransformParameteriEXT)
-#define glPixelTransformParameterivEXT GLEW_GET_FUN(__glewPixelTransformParameterivEXT)
-
-#define GLEW_EXT_pixel_transform GLEW_GET_VAR(__GLEW_EXT_pixel_transform)
-
-#endif /* GL_EXT_pixel_transform */
-
-/* ------------------- GL_EXT_pixel_transform_color_table ------------------ */
-
-#ifndef GL_EXT_pixel_transform_color_table
-#define GL_EXT_pixel_transform_color_table 1
-
-#define GLEW_EXT_pixel_transform_color_table GLEW_GET_VAR(__GLEW_EXT_pixel_transform_color_table)
-
-#endif /* GL_EXT_pixel_transform_color_table */
-
-/* ------------------------ GL_EXT_point_parameters ------------------------ */
-
-#ifndef GL_EXT_point_parameters
-#define GL_EXT_point_parameters 1
-
-#define GL_POINT_SIZE_MIN_EXT 0x8126
-#define GL_POINT_SIZE_MAX_EXT 0x8127
-#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128
-#define GL_DISTANCE_ATTENUATION_EXT 0x8129
-
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat* params);
-
-#define glPointParameterfEXT GLEW_GET_FUN(__glewPointParameterfEXT)
-#define glPointParameterfvEXT GLEW_GET_FUN(__glewPointParameterfvEXT)
-
-#define GLEW_EXT_point_parameters GLEW_GET_VAR(__GLEW_EXT_point_parameters)
-
-#endif /* GL_EXT_point_parameters */
-
-/* ------------------------- GL_EXT_polygon_offset ------------------------- */
-
-#ifndef GL_EXT_polygon_offset
-#define GL_EXT_polygon_offset 1
-
-#define GL_POLYGON_OFFSET_EXT 0x8037
-#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038
-#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039
-
-typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias);
-
-#define glPolygonOffsetEXT GLEW_GET_FUN(__glewPolygonOffsetEXT)
-
-#define GLEW_EXT_polygon_offset GLEW_GET_VAR(__GLEW_EXT_polygon_offset)
-
-#endif /* GL_EXT_polygon_offset */
-
-/* ---------------------- GL_EXT_polygon_offset_clamp ---------------------- */
-
-#ifndef GL_EXT_polygon_offset_clamp
-#define GL_EXT_polygon_offset_clamp 1
-
-#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B
-
-typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp);
-
-#define glPolygonOffsetClampEXT GLEW_GET_FUN(__glewPolygonOffsetClampEXT)
-
-#define GLEW_EXT_polygon_offset_clamp GLEW_GET_VAR(__GLEW_EXT_polygon_offset_clamp)
-
-#endif /* GL_EXT_polygon_offset_clamp */
-
-/* ----------------------- GL_EXT_post_depth_coverage ---------------------- */
-
-#ifndef GL_EXT_post_depth_coverage
-#define GL_EXT_post_depth_coverage 1
-
-#define GLEW_EXT_post_depth_coverage GLEW_GET_VAR(__GLEW_EXT_post_depth_coverage)
-
-#endif /* GL_EXT_post_depth_coverage */
-
-/* --------------------- GL_EXT_primitive_bounding_box --------------------- */
-
-#ifndef GL_EXT_primitive_bounding_box
-#define GL_EXT_primitive_bounding_box 1
-
-#define GL_PRIMITIVE_BOUNDING_BOX_EXT 0x92BE
-
-typedef void (GLAPIENTRY * PFNGLPRIMITIVEBOUNDINGBOXEXTPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
-
-#define glPrimitiveBoundingBoxEXT GLEW_GET_FUN(__glewPrimitiveBoundingBoxEXT)
-
-#define GLEW_EXT_primitive_bounding_box GLEW_GET_VAR(__GLEW_EXT_primitive_bounding_box)
-
-#endif /* GL_EXT_primitive_bounding_box */
-
-/* ----------------------- GL_EXT_protected_textures ----------------------- */
-
-#ifndef GL_EXT_protected_textures
-#define GL_EXT_protected_textures 1
-
-#define GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT 0x00000010
-#define GL_TEXTURE_PROTECTED_EXT 0x8BFA
-
-#define GLEW_EXT_protected_textures GLEW_GET_VAR(__GLEW_EXT_protected_textures)
-
-#endif /* GL_EXT_protected_textures */
-
-/* ------------------------ GL_EXT_provoking_vertex ------------------------ */
-
-#ifndef GL_EXT_provoking_vertex
-#define GL_EXT_provoking_vertex 1
-
-#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C
-#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
-#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
-#define GL_PROVOKING_VERTEX_EXT 0x8E4F
-
-typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode);
-
-#define glProvokingVertexEXT GLEW_GET_FUN(__glewProvokingVertexEXT)
-
-#define GLEW_EXT_provoking_vertex GLEW_GET_VAR(__GLEW_EXT_provoking_vertex)
-
-#endif /* GL_EXT_provoking_vertex */
-
-/* --------------------------- GL_EXT_pvrtc_sRGB --------------------------- */
-
-#ifndef GL_EXT_pvrtc_sRGB
-#define GL_EXT_pvrtc_sRGB 1
-
-#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54
-#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55
-#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56
-#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57
-
-#define GLEW_EXT_pvrtc_sRGB GLEW_GET_VAR(__GLEW_EXT_pvrtc_sRGB)
-
-#endif /* GL_EXT_pvrtc_sRGB */
-
-/* ----------------------- GL_EXT_raster_multisample ----------------------- */
-
-#ifndef GL_EXT_raster_multisample
-#define GL_EXT_raster_multisample 1
-
-#define GL_COLOR_SAMPLES_NV 0x8E20
-#define GL_RASTER_MULTISAMPLE_EXT 0x9327
-#define GL_RASTER_SAMPLES_EXT 0x9328
-#define GL_MAX_RASTER_SAMPLES_EXT 0x9329
-#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A
-#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B
-#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C
-#define GL_DEPTH_SAMPLES_NV 0x932D
-#define GL_STENCIL_SAMPLES_NV 0x932E
-#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F
-#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330
-#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331
-#define GL_COVERAGE_MODULATION_NV 0x9332
-#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333
-
-typedef void (GLAPIENTRY * PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components);
-typedef void (GLAPIENTRY * PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufsize, GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations);
-
-#define glCoverageModulationNV GLEW_GET_FUN(__glewCoverageModulationNV)
-#define glCoverageModulationTableNV GLEW_GET_FUN(__glewCoverageModulationTableNV)
-#define glGetCoverageModulationTableNV GLEW_GET_FUN(__glewGetCoverageModulationTableNV)
-#define glRasterSamplesEXT GLEW_GET_FUN(__glewRasterSamplesEXT)
-
-#define GLEW_EXT_raster_multisample GLEW_GET_VAR(__GLEW_EXT_raster_multisample)
-
-#endif /* GL_EXT_raster_multisample */
-
-/* ------------------------ GL_EXT_read_format_bgra ------------------------ */
-
-#ifndef GL_EXT_read_format_bgra
-#define GL_EXT_read_format_bgra 1
-
-#define GL_BGRA_EXT 0x80E1
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365
-#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366
-
-#define GLEW_EXT_read_format_bgra GLEW_GET_VAR(__GLEW_EXT_read_format_bgra)
-
-#endif /* GL_EXT_read_format_bgra */
-
-/* -------------------------- GL_EXT_render_snorm -------------------------- */
-
-#ifndef GL_EXT_render_snorm
-#define GL_EXT_render_snorm 1
-
-#define GL_BYTE 0x1400
-#define GL_SHORT 0x1402
-#define GL_R8_SNORM 0x8F94
-#define GL_RG8_SNORM 0x8F95
-#define GL_RGBA8_SNORM 0x8F97
-#define GL_R16_SNORM_EXT 0x8F98
-#define GL_RG16_SNORM_EXT 0x8F99
-#define GL_RGBA16_SNORM_EXT 0x8F9B
-
-#define GLEW_EXT_render_snorm GLEW_GET_VAR(__GLEW_EXT_render_snorm)
-
-#endif /* GL_EXT_render_snorm */
-
-/* ------------------------- GL_EXT_rescale_normal ------------------------- */
-
-#ifndef GL_EXT_rescale_normal
-#define GL_EXT_rescale_normal 1
-
-#define GL_RESCALE_NORMAL_EXT 0x803A
-
-#define GLEW_EXT_rescale_normal GLEW_GET_VAR(__GLEW_EXT_rescale_normal)
-
-#endif /* GL_EXT_rescale_normal */
-
-/* --------------------------- GL_EXT_robustness --------------------------- */
-
-#ifndef GL_EXT_robustness
-#define GL_EXT_robustness 1
-
-#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252
-#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253
-#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254
-#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255
-#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256
-#define GL_NO_RESET_NOTIFICATION_EXT 0x8261
-#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3
-
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params);
-typedef void (GLAPIENTRY * PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
-
-#define glGetnUniformfvEXT GLEW_GET_FUN(__glewGetnUniformfvEXT)
-#define glGetnUniformivEXT GLEW_GET_FUN(__glewGetnUniformivEXT)
-#define glReadnPixelsEXT GLEW_GET_FUN(__glewReadnPixelsEXT)
-
-#define GLEW_EXT_robustness GLEW_GET_VAR(__GLEW_EXT_robustness)
-
-#endif /* GL_EXT_robustness */
-
-/* ------------------------------ GL_EXT_sRGB ------------------------------ */
-
-#ifndef GL_EXT_sRGB
-#define GL_EXT_sRGB 1
-
-#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210
-#define GL_SRGB_EXT 0x8C40
-#define GL_SRGB_ALPHA_EXT 0x8C42
-#define GL_SRGB8_ALPHA8_EXT 0x8C43
-
-#define GLEW_EXT_sRGB GLEW_GET_VAR(__GLEW_EXT_sRGB)
-
-#endif /* GL_EXT_sRGB */
-
-/* ----------------------- GL_EXT_sRGB_write_control ----------------------- */
-
-#ifndef GL_EXT_sRGB_write_control
-#define GL_EXT_sRGB_write_control 1
-
-#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
-
-#define GLEW_EXT_sRGB_write_control GLEW_GET_VAR(__GLEW_EXT_sRGB_write_control)
-
-#endif /* GL_EXT_sRGB_write_control */
-
-/* -------------------------- GL_EXT_scene_marker -------------------------- */
-
-#ifndef GL_EXT_scene_marker
-#define GL_EXT_scene_marker 1
-
-typedef void (GLAPIENTRY * PFNGLBEGINSCENEEXTPROC) (void);
-typedef void (GLAPIENTRY * PFNGLENDSCENEEXTPROC) (void);
-
-#define glBeginSceneEXT GLEW_GET_FUN(__glewBeginSceneEXT)
-#define glEndSceneEXT GLEW_GET_FUN(__glewEndSceneEXT)
-
-#define GLEW_EXT_scene_marker GLEW_GET_VAR(__GLEW_EXT_scene_marker)
-
-#endif /* GL_EXT_scene_marker */
-
-/* ------------------------- GL_EXT_secondary_color ------------------------ */
-
-#ifndef GL_EXT_secondary_color
-#define GL_EXT_secondary_color 1
-
-#define GL_COLOR_SUM_EXT 0x8458
-#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
-#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
-#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
-#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
-#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
-#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
-
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
-
-#define glSecondaryColor3bEXT GLEW_GET_FUN(__glewSecondaryColor3bEXT)
-#define glSecondaryColor3bvEXT GLEW_GET_FUN(__glewSecondaryColor3bvEXT)
-#define glSecondaryColor3dEXT GLEW_GET_FUN(__glewSecondaryColor3dEXT)
-#define glSecondaryColor3dvEXT GLEW_GET_FUN(__glewSecondaryColor3dvEXT)
-#define glSecondaryColor3fEXT GLEW_GET_FUN(__glewSecondaryColor3fEXT)
-#define glSecondaryColor3fvEXT GLEW_GET_FUN(__glewSecondaryColor3fvEXT)
-#define glSecondaryColor3iEXT GLEW_GET_FUN(__glewSecondaryColor3iEXT)
-#define glSecondaryColor3ivEXT GLEW_GET_FUN(__glewSecondaryColor3ivEXT)
-#define glSecondaryColor3sEXT GLEW_GET_FUN(__glewSecondaryColor3sEXT)
-#define glSecondaryColor3svEXT GLEW_GET_FUN(__glewSecondaryColor3svEXT)
-#define glSecondaryColor3ubEXT GLEW_GET_FUN(__glewSecondaryColor3ubEXT)
-#define glSecondaryColor3ubvEXT GLEW_GET_FUN(__glewSecondaryColor3ubvEXT)
-#define glSecondaryColor3uiEXT GLEW_GET_FUN(__glewSecondaryColor3uiEXT)
-#define glSecondaryColor3uivEXT GLEW_GET_FUN(__glewSecondaryColor3uivEXT)
-#define glSecondaryColor3usEXT GLEW_GET_FUN(__glewSecondaryColor3usEXT)
-#define glSecondaryColor3usvEXT GLEW_GET_FUN(__glewSecondaryColor3usvEXT)
-#define glSecondaryColorPointerEXT GLEW_GET_FUN(__glewSecondaryColorPointerEXT)
-
-#define GLEW_EXT_secondary_color GLEW_GET_VAR(__GLEW_EXT_secondary_color)
-
-#endif /* GL_EXT_secondary_color */
-
-/* ---------------------------- GL_EXT_semaphore --------------------------- */
-
-#ifndef GL_EXT_semaphore
-#define GL_EXT_semaphore 1
-
-#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530
-#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531
-#define GL_LAYOUT_GENERAL_EXT 0x958D
-#define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E
-#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F
-#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590
-#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591
-#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592
-#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593
-
-typedef void (GLAPIENTRY * PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint* semaphores);
-typedef void (GLAPIENTRY * PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint* semaphores);
-typedef void (GLAPIENTRY * PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore);
-typedef void (GLAPIENTRY * PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64* params);
-typedef void (GLAPIENTRY * PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts);
-typedef void (GLAPIENTRY * PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts);
-
-#define glDeleteSemaphoresEXT GLEW_GET_FUN(__glewDeleteSemaphoresEXT)
-#define glGenSemaphoresEXT GLEW_GET_FUN(__glewGenSemaphoresEXT)
-#define glGetSemaphoreParameterui64vEXT GLEW_GET_FUN(__glewGetSemaphoreParameterui64vEXT)
-#define glIsSemaphoreEXT GLEW_GET_FUN(__glewIsSemaphoreEXT)
-#define glSemaphoreParameterui64vEXT GLEW_GET_FUN(__glewSemaphoreParameterui64vEXT)
-#define glSignalSemaphoreEXT GLEW_GET_FUN(__glewSignalSemaphoreEXT)
-#define glWaitSemaphoreEXT GLEW_GET_FUN(__glewWaitSemaphoreEXT)
-
-#define GLEW_EXT_semaphore GLEW_GET_VAR(__GLEW_EXT_semaphore)
-
-#endif /* GL_EXT_semaphore */
-
-/* -------------------------- GL_EXT_semaphore_fd -------------------------- */
-
-#ifndef GL_EXT_semaphore_fd
-#define GL_EXT_semaphore_fd 1
-
-typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd);
-
-#define glImportSemaphoreFdEXT GLEW_GET_FUN(__glewImportSemaphoreFdEXT)
-
-#define GLEW_EXT_semaphore_fd GLEW_GET_VAR(__GLEW_EXT_semaphore_fd)
-
-#endif /* GL_EXT_semaphore_fd */
-
-/* ------------------------- GL_EXT_semaphore_win32 ------------------------ */
-
-#ifndef GL_EXT_semaphore_win32
-#define GL_EXT_semaphore_win32 1
-
-typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle);
-typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name);
-
-#define glImportSemaphoreWin32HandleEXT GLEW_GET_FUN(__glewImportSemaphoreWin32HandleEXT)
-#define glImportSemaphoreWin32NameEXT GLEW_GET_FUN(__glewImportSemaphoreWin32NameEXT)
-
-#define GLEW_EXT_semaphore_win32 GLEW_GET_VAR(__GLEW_EXT_semaphore_win32)
-
-#endif /* GL_EXT_semaphore_win32 */
-
-/* --------------------- GL_EXT_separate_shader_objects -------------------- */
-
-#ifndef GL_EXT_separate_shader_objects
-#define GL_EXT_separate_shader_objects 1
-
-#define GL_ACTIVE_PROGRAM_EXT 0x8B8D
-
-typedef void (GLAPIENTRY * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program);
-typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar* string);
-typedef void (GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program);
-
-#define glActiveProgramEXT GLEW_GET_FUN(__glewActiveProgramEXT)
-#define glCreateShaderProgramEXT GLEW_GET_FUN(__glewCreateShaderProgramEXT)
-#define glUseShaderProgramEXT GLEW_GET_FUN(__glewUseShaderProgramEXT)
-
-#define GLEW_EXT_separate_shader_objects GLEW_GET_VAR(__GLEW_EXT_separate_shader_objects)
-
-#endif /* GL_EXT_separate_shader_objects */
-
-/* --------------------- GL_EXT_separate_specular_color -------------------- */
-
-#ifndef GL_EXT_separate_specular_color
-#define GL_EXT_separate_specular_color 1
-
-#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
-#define GL_SINGLE_COLOR_EXT 0x81F9
-#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
-
-#define GLEW_EXT_separate_specular_color GLEW_GET_VAR(__GLEW_EXT_separate_specular_color)
-
-#endif /* GL_EXT_separate_specular_color */
-
-/* -------------------- GL_EXT_shader_framebuffer_fetch -------------------- */
-
-#ifndef GL_EXT_shader_framebuffer_fetch
-#define GL_EXT_shader_framebuffer_fetch 1
-
-#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void);
-
-#define glFramebufferFetchBarrierEXT GLEW_GET_FUN(__glewFramebufferFetchBarrierEXT)
-
-#define GLEW_EXT_shader_framebuffer_fetch GLEW_GET_VAR(__GLEW_EXT_shader_framebuffer_fetch)
-
-#endif /* GL_EXT_shader_framebuffer_fetch */
-
-/* -------------- GL_EXT_shader_framebuffer_fetch_non_coherent ------------- */
-
-#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent
-#define GL_EXT_shader_framebuffer_fetch_non_coherent 1
-
-#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
-
-#define GLEW_EXT_shader_framebuffer_fetch_non_coherent GLEW_GET_VAR(__GLEW_EXT_shader_framebuffer_fetch_non_coherent)
-
-#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */
-
-/* ------------------------ GL_EXT_shader_group_vote ----------------------- */
-
-#ifndef GL_EXT_shader_group_vote
-#define GL_EXT_shader_group_vote 1
-
-#define GLEW_EXT_shader_group_vote GLEW_GET_VAR(__GLEW_EXT_shader_group_vote)
-
-#endif /* GL_EXT_shader_group_vote */
-
-/* ------------------- GL_EXT_shader_image_load_formatted ------------------ */
-
-#ifndef GL_EXT_shader_image_load_formatted
-#define GL_EXT_shader_image_load_formatted 1
-
-#define GLEW_EXT_shader_image_load_formatted GLEW_GET_VAR(__GLEW_EXT_shader_image_load_formatted)
-
-#endif /* GL_EXT_shader_image_load_formatted */
-
-/* --------------------- GL_EXT_shader_image_load_store -------------------- */
-
-#ifndef GL_EXT_shader_image_load_store
-#define GL_EXT_shader_image_load_store 1
-
-#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001
-#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002
-#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004
-#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008
-#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020
-#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040
-#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080
-#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100
-#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200
-#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400
-#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800
-#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000
-#define GL_MAX_IMAGE_UNITS_EXT 0x8F38
-#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39
-#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A
-#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B
-#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C
-#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D
-#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E
-#define GL_IMAGE_1D_EXT 0x904C
-#define GL_IMAGE_2D_EXT 0x904D
-#define GL_IMAGE_3D_EXT 0x904E
-#define GL_IMAGE_2D_RECT_EXT 0x904F
-#define GL_IMAGE_CUBE_EXT 0x9050
-#define GL_IMAGE_BUFFER_EXT 0x9051
-#define GL_IMAGE_1D_ARRAY_EXT 0x9052
-#define GL_IMAGE_2D_ARRAY_EXT 0x9053
-#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054
-#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055
-#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056
-#define GL_INT_IMAGE_1D_EXT 0x9057
-#define GL_INT_IMAGE_2D_EXT 0x9058
-#define GL_INT_IMAGE_3D_EXT 0x9059
-#define GL_INT_IMAGE_2D_RECT_EXT 0x905A
-#define GL_INT_IMAGE_CUBE_EXT 0x905B
-#define GL_INT_IMAGE_BUFFER_EXT 0x905C
-#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D
-#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E
-#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F
-#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060
-#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061
-#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062
-#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063
-#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064
-#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065
-#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066
-#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067
-#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068
-#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069
-#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A
-#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B
-#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C
-#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D
-#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E
-#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF
-
-typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
-typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers);
-
-#define glBindImageTextureEXT GLEW_GET_FUN(__glewBindImageTextureEXT)
-#define glMemoryBarrierEXT GLEW_GET_FUN(__glewMemoryBarrierEXT)
-
-#define GLEW_EXT_shader_image_load_store GLEW_GET_VAR(__GLEW_EXT_shader_image_load_store)
-
-#endif /* GL_EXT_shader_image_load_store */
-
-/* ------------------- GL_EXT_shader_implicit_conversions ------------------ */
-
-#ifndef GL_EXT_shader_implicit_conversions
-#define GL_EXT_shader_implicit_conversions 1
-
-#define GLEW_EXT_shader_implicit_conversions GLEW_GET_VAR(__GLEW_EXT_shader_implicit_conversions)
-
-#endif /* GL_EXT_shader_implicit_conversions */
-
-/* ----------------------- GL_EXT_shader_integer_mix ----------------------- */
-
-#ifndef GL_EXT_shader_integer_mix
-#define GL_EXT_shader_integer_mix 1
-
-#define GLEW_EXT_shader_integer_mix GLEW_GET_VAR(__GLEW_EXT_shader_integer_mix)
-
-#endif /* GL_EXT_shader_integer_mix */
-
-/* ------------------------ GL_EXT_shader_io_blocks ------------------------ */
-
-#ifndef GL_EXT_shader_io_blocks
-#define GL_EXT_shader_io_blocks 1
-
-#define GLEW_EXT_shader_io_blocks GLEW_GET_VAR(__GLEW_EXT_shader_io_blocks)
-
-#endif /* GL_EXT_shader_io_blocks */
-
-/* ------------- GL_EXT_shader_non_constant_global_initializers ------------ */
-
-#ifndef GL_EXT_shader_non_constant_global_initializers
-#define GL_EXT_shader_non_constant_global_initializers 1
-
-#define GLEW_EXT_shader_non_constant_global_initializers GLEW_GET_VAR(__GLEW_EXT_shader_non_constant_global_initializers)
-
-#endif /* GL_EXT_shader_non_constant_global_initializers */
-
-/* ------------------- GL_EXT_shader_pixel_local_storage ------------------- */
-
-#ifndef GL_EXT_shader_pixel_local_storage
-#define GL_EXT_shader_pixel_local_storage 1
-
-#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63
-#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64
-#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67
-
-#define GLEW_EXT_shader_pixel_local_storage GLEW_GET_VAR(__GLEW_EXT_shader_pixel_local_storage)
-
-#endif /* GL_EXT_shader_pixel_local_storage */
-
-/* ------------------- GL_EXT_shader_pixel_local_storage2 ------------------ */
-
-#ifndef GL_EXT_shader_pixel_local_storage2
-#define GL_EXT_shader_pixel_local_storage2 1
-
-#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650
-#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651
-#define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652
-
-typedef void (GLAPIENTRY * PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC) (GLsizei offset, GLsizei n, const GLuint* values);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target, GLsizei size);
-typedef GLsizei (GLAPIENTRY * PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target);
-
-#define glClearPixelLocalStorageuiEXT GLEW_GET_FUN(__glewClearPixelLocalStorageuiEXT)
-#define glFramebufferPixelLocalStorageSizeEXT GLEW_GET_FUN(__glewFramebufferPixelLocalStorageSizeEXT)
-#define glGetFramebufferPixelLocalStorageSizeEXT GLEW_GET_FUN(__glewGetFramebufferPixelLocalStorageSizeEXT)
-
-#define GLEW_EXT_shader_pixel_local_storage2 GLEW_GET_VAR(__GLEW_EXT_shader_pixel_local_storage2)
-
-#endif /* GL_EXT_shader_pixel_local_storage2 */
-
-/* ----------------------- GL_EXT_shader_texture_lod ----------------------- */
-
-#ifndef GL_EXT_shader_texture_lod
-#define GL_EXT_shader_texture_lod 1
-
-#define GLEW_EXT_shader_texture_lod GLEW_GET_VAR(__GLEW_EXT_shader_texture_lod)
-
-#endif /* GL_EXT_shader_texture_lod */
-
-/* -------------------------- GL_EXT_shadow_funcs -------------------------- */
-
-#ifndef GL_EXT_shadow_funcs
-#define GL_EXT_shadow_funcs 1
-
-#define GLEW_EXT_shadow_funcs GLEW_GET_VAR(__GLEW_EXT_shadow_funcs)
-
-#endif /* GL_EXT_shadow_funcs */
-
-/* ------------------------- GL_EXT_shadow_samplers ------------------------ */
-
-#ifndef GL_EXT_shadow_samplers
-#define GL_EXT_shadow_samplers 1
-
-#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C
-#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D
-#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E
-#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62
-
-#define GLEW_EXT_shadow_samplers GLEW_GET_VAR(__GLEW_EXT_shadow_samplers)
-
-#endif /* GL_EXT_shadow_samplers */
-
-/* --------------------- GL_EXT_shared_texture_palette --------------------- */
-
-#ifndef GL_EXT_shared_texture_palette
-#define GL_EXT_shared_texture_palette 1
-
-#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB
-
-#define GLEW_EXT_shared_texture_palette GLEW_GET_VAR(__GLEW_EXT_shared_texture_palette)
-
-#endif /* GL_EXT_shared_texture_palette */
-
-/* ------------------------- GL_EXT_sparse_texture ------------------------- */
-
-#ifndef GL_EXT_sparse_texture
-#define GL_EXT_sparse_texture 1
-
-#define GL_TEXTURE_2D 0x0DE1
-#define GL_TEXTURE_3D 0x806F
-#define GL_TEXTURE_CUBE_MAP 0x8513
-#define GL_TEXTURE_2D_ARRAY 0x8C1A
-#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009
-#define GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195
-#define GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196
-#define GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197
-#define GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198
-#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199
-#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A
-#define GL_TEXTURE_SPARSE_EXT 0x91A6
-#define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7
-#define GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8
-#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9
-#define GL_NUM_SPARSE_LEVELS_EXT 0x91AA
-
-typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
-typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
-
-#define glTexPageCommitmentEXT GLEW_GET_FUN(__glewTexPageCommitmentEXT)
-#define glTexturePageCommitmentEXT GLEW_GET_FUN(__glewTexturePageCommitmentEXT)
-
-#define GLEW_EXT_sparse_texture GLEW_GET_VAR(__GLEW_EXT_sparse_texture)
-
-#endif /* GL_EXT_sparse_texture */
-
-/* ------------------------- GL_EXT_sparse_texture2 ------------------------ */
-
-#ifndef GL_EXT_sparse_texture2
-#define GL_EXT_sparse_texture2 1
-
-#define GLEW_EXT_sparse_texture2 GLEW_GET_VAR(__GLEW_EXT_sparse_texture2)
-
-#endif /* GL_EXT_sparse_texture2 */
-
-/* ----------------------- GL_EXT_static_vertex_array ---------------------- */
-
-#ifndef GL_EXT_static_vertex_array
-#define GL_EXT_static_vertex_array 1
-
-#define GLEW_EXT_static_vertex_array GLEW_GET_VAR(__GLEW_EXT_static_vertex_array)
-
-#endif /* GL_EXT_static_vertex_array */
-
-/* ------------------------ GL_EXT_stencil_clear_tag ----------------------- */
-
-#ifndef GL_EXT_stencil_clear_tag
-#define GL_EXT_stencil_clear_tag 1
-
-#define GL_STENCIL_TAG_BITS_EXT 0x88F2
-#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3
-
-#define GLEW_EXT_stencil_clear_tag GLEW_GET_VAR(__GLEW_EXT_stencil_clear_tag)
-
-#endif /* GL_EXT_stencil_clear_tag */
-
-/* ------------------------ GL_EXT_stencil_two_side ------------------------ */
-
-#ifndef GL_EXT_stencil_two_side
-#define GL_EXT_stencil_two_side 1
-
-#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910
-#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911
-
-typedef void (GLAPIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face);
-
-#define glActiveStencilFaceEXT GLEW_GET_FUN(__glewActiveStencilFaceEXT)
-
-#define GLEW_EXT_stencil_two_side GLEW_GET_VAR(__GLEW_EXT_stencil_two_side)
-
-#endif /* GL_EXT_stencil_two_side */
-
-/* -------------------------- GL_EXT_stencil_wrap -------------------------- */
-
-#ifndef GL_EXT_stencil_wrap
-#define GL_EXT_stencil_wrap 1
-
-#define GL_INCR_WRAP_EXT 0x8507
-#define GL_DECR_WRAP_EXT 0x8508
-
-#define GLEW_EXT_stencil_wrap GLEW_GET_VAR(__GLEW_EXT_stencil_wrap)
-
-#endif /* GL_EXT_stencil_wrap */
-
-/* --------------------------- GL_EXT_subtexture --------------------------- */
-
-#ifndef GL_EXT_subtexture
-#define GL_EXT_subtexture 1
-
-typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
-
-#define glTexSubImage1DEXT GLEW_GET_FUN(__glewTexSubImage1DEXT)
-#define glTexSubImage2DEXT GLEW_GET_FUN(__glewTexSubImage2DEXT)
-#define glTexSubImage3DEXT GLEW_GET_FUN(__glewTexSubImage3DEXT)
-
-#define GLEW_EXT_subtexture GLEW_GET_VAR(__GLEW_EXT_subtexture)
-
-#endif /* GL_EXT_subtexture */
-
-/* --------------------- GL_EXT_tessellation_point_size -------------------- */
-
-#ifndef GL_EXT_tessellation_point_size
-#define GL_EXT_tessellation_point_size 1
-
-#define GL_QUADS_EXT 0x0007
-#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008
-#define GL_PATCHES_EXT 0xE
-#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010
-#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
-#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C
-#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D
-#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E
-#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F
-#define GL_PATCH_VERTICES_EXT 0x8E72
-#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75
-#define GL_TESS_GEN_MODE_EXT 0x8E76
-#define GL_TESS_GEN_SPACING_EXT 0x8E77
-#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78
-#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79
-#define GL_ISOLINES_EXT 0x8E7A
-#define GL_FRACTIONAL_ODD_EXT 0x8E7B
-#define GL_FRACTIONAL_EVEN_EXT 0x8E7C
-#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D
-#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E
-#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F
-#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80
-#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81
-#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82
-#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83
-#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84
-#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85
-#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86
-#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87
-#define GL_TESS_CONTROL_SHADER_EXT 0x8E88
-#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89
-#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A
-#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB
-#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC
-#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8
-#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9
-#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD
-#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE
-#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3
-#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4
-#define GL_IS_PER_PATCH_EXT 0x92E7
-#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307
-#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308
-
-typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIEXTPROC) (GLenum pname, GLint value);
-
-#define glPatchParameteriEXT GLEW_GET_FUN(__glewPatchParameteriEXT)
-
-#define GLEW_EXT_tessellation_point_size GLEW_GET_VAR(__GLEW_EXT_tessellation_point_size)
-
-#endif /* GL_EXT_tessellation_point_size */
-
-/* ----------------------- GL_EXT_tessellation_shader ---------------------- */
-
-#ifndef GL_EXT_tessellation_shader
-#define GL_EXT_tessellation_shader 1
-
-#define GL_QUADS_EXT 0x0007
-#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008
-#define GL_PATCHES_EXT 0xE
-#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010
-#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
-#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C
-#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D
-#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E
-#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F
-#define GL_PATCH_VERTICES_EXT 0x8E72
-#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75
-#define GL_TESS_GEN_MODE_EXT 0x8E76
-#define GL_TESS_GEN_SPACING_EXT 0x8E77
-#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78
-#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79
-#define GL_ISOLINES_EXT 0x8E7A
-#define GL_FRACTIONAL_ODD_EXT 0x8E7B
-#define GL_FRACTIONAL_EVEN_EXT 0x8E7C
-#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D
-#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E
-#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F
-#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80
-#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81
-#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82
-#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83
-#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84
-#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85
-#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86
-#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87
-#define GL_TESS_CONTROL_SHADER_EXT 0x8E88
-#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89
-#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A
-#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB
-#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC
-#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8
-#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9
-#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD
-#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE
-#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3
-#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4
-#define GL_IS_PER_PATCH_EXT 0x92E7
-#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307
-#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308
-
-#define GLEW_EXT_tessellation_shader GLEW_GET_VAR(__GLEW_EXT_tessellation_shader)
-
-#endif /* GL_EXT_tessellation_shader */
-
-/* ----------------------------- GL_EXT_texture ---------------------------- */
-
-#ifndef GL_EXT_texture
-#define GL_EXT_texture 1
-
-#define GL_ALPHA4_EXT 0x803B
-#define GL_ALPHA8_EXT 0x803C
-#define GL_ALPHA12_EXT 0x803D
-#define GL_ALPHA16_EXT 0x803E
-#define GL_LUMINANCE4_EXT 0x803F
-#define GL_LUMINANCE8_EXT 0x8040
-#define GL_LUMINANCE12_EXT 0x8041
-#define GL_LUMINANCE16_EXT 0x8042
-#define GL_LUMINANCE4_ALPHA4_EXT 0x8043
-#define GL_LUMINANCE6_ALPHA2_EXT 0x8044
-#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
-#define GL_LUMINANCE12_ALPHA4_EXT 0x8046
-#define GL_LUMINANCE12_ALPHA12_EXT 0x8047
-#define GL_LUMINANCE16_ALPHA16_EXT 0x8048
-#define GL_INTENSITY_EXT 0x8049
-#define GL_INTENSITY4_EXT 0x804A
-#define GL_INTENSITY8_EXT 0x804B
-#define GL_INTENSITY12_EXT 0x804C
-#define GL_INTENSITY16_EXT 0x804D
-#define GL_RGB2_EXT 0x804E
-#define GL_RGB4_EXT 0x804F
-#define GL_RGB5_EXT 0x8050
-#define GL_RGB8_EXT 0x8051
-#define GL_RGB10_EXT 0x8052
-#define GL_RGB12_EXT 0x8053
-#define GL_RGB16_EXT 0x8054
-#define GL_RGBA2_EXT 0x8055
-#define GL_RGBA4_EXT 0x8056
-#define GL_RGB5_A1_EXT 0x8057
-#define GL_RGBA8_EXT 0x8058
-#define GL_RGB10_A2_EXT 0x8059
-#define GL_RGBA12_EXT 0x805A
-#define GL_RGBA16_EXT 0x805B
-#define GL_TEXTURE_RED_SIZE_EXT 0x805C
-#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D
-#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E
-#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F
-#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060
-#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061
-#define GL_REPLACE_EXT 0x8062
-#define GL_PROXY_TEXTURE_1D_EXT 0x8063
-#define GL_PROXY_TEXTURE_2D_EXT 0x8064
-
-#define GLEW_EXT_texture GLEW_GET_VAR(__GLEW_EXT_texture)
-
-#endif /* GL_EXT_texture */
-
-/* ---------------------------- GL_EXT_texture3D --------------------------- */
-
-#ifndef GL_EXT_texture3D
-#define GL_EXT_texture3D 1
-
-#define GL_PACK_SKIP_IMAGES_EXT 0x806B
-#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C
-#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D
-#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E
-#define GL_TEXTURE_3D_EXT 0x806F
-#define GL_PROXY_TEXTURE_3D_EXT 0x8070
-#define GL_TEXTURE_DEPTH_EXT 0x8071
-#define GL_TEXTURE_WRAP_R_EXT 0x8072
-#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073
-
-typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
-
-#define glTexImage3DEXT GLEW_GET_FUN(__glewTexImage3DEXT)
-
-#define GLEW_EXT_texture3D GLEW_GET_VAR(__GLEW_EXT_texture3D)
-
-#endif /* GL_EXT_texture3D */
-
-/* -------------------------- GL_EXT_texture_array ------------------------- */
-
-#ifndef GL_EXT_texture_array
-#define GL_EXT_texture_array 1
-
-#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
-#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
-#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18
-#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
-#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
-#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
-#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
-#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
-
-#define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT)
-
-#define GLEW_EXT_texture_array GLEW_GET_VAR(__GLEW_EXT_texture_array)
-
-#endif /* GL_EXT_texture_array */
-
-/* ---------------------- GL_EXT_texture_border_clamp ---------------------- */
-
-#ifndef GL_EXT_texture_border_clamp
-#define GL_EXT_texture_border_clamp 1
-
-#define GL_TEXTURE_BORDER_COLOR_EXT 0x1004
-#define GL_CLAMP_TO_BORDER_EXT 0x812D
-
-typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, const GLuint* params);
-
-#define glGetSamplerParameterIivEXT GLEW_GET_FUN(__glewGetSamplerParameterIivEXT)
-#define glGetSamplerParameterIuivEXT GLEW_GET_FUN(__glewGetSamplerParameterIuivEXT)
-#define glSamplerParameterIivEXT GLEW_GET_FUN(__glewSamplerParameterIivEXT)
-#define glSamplerParameterIuivEXT GLEW_GET_FUN(__glewSamplerParameterIuivEXT)
-
-#define GLEW_EXT_texture_border_clamp GLEW_GET_VAR(__GLEW_EXT_texture_border_clamp)
-
-#endif /* GL_EXT_texture_border_clamp */
-
-/* ------------------------- GL_EXT_texture_buffer ------------------------- */
-
-#ifndef GL_EXT_texture_buffer
-#define GL_EXT_texture_buffer 1
-
-#define GL_TEXTURE_BUFFER_BINDING_EXT 0x8C2A
-#define GL_TEXTURE_BUFFER_EXT 0x8C2A
-#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
-#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
-#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
-#define GL_SAMPLER_BUFFER_EXT 0x8DC2
-#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
-#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
-#define GL_IMAGE_BUFFER_EXT 0x9051
-#define GL_INT_IMAGE_BUFFER_EXT 0x905C
-#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067
-#define GL_TEXTURE_BUFFER_OFFSET_EXT 0x919D
-#define GL_TEXTURE_BUFFER_SIZE_EXT 0x919E
-#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F
-
-#define GLEW_EXT_texture_buffer GLEW_GET_VAR(__GLEW_EXT_texture_buffer)
-
-#endif /* GL_EXT_texture_buffer */
-
-/* ---------------------- GL_EXT_texture_buffer_object --------------------- */
-
-#ifndef GL_EXT_texture_buffer_object
-#define GL_EXT_texture_buffer_object 1
-
-#define GL_TEXTURE_BUFFER_EXT 0x8C2A
-#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
-#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
-#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
-#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
-
-typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer);
-
-#define glTexBufferEXT GLEW_GET_FUN(__glewTexBufferEXT)
-
-#define GLEW_EXT_texture_buffer_object GLEW_GET_VAR(__GLEW_EXT_texture_buffer_object)
-
-#endif /* GL_EXT_texture_buffer_object */
-
-/* -------------- GL_EXT_texture_compression_astc_decode_mode -------------- */
-
-#ifndef GL_EXT_texture_compression_astc_decode_mode
-#define GL_EXT_texture_compression_astc_decode_mode 1
-
-#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69
-
-#define GLEW_EXT_texture_compression_astc_decode_mode GLEW_GET_VAR(__GLEW_EXT_texture_compression_astc_decode_mode)
-
-#endif /* GL_EXT_texture_compression_astc_decode_mode */
-
-/* ----------- GL_EXT_texture_compression_astc_decode_mode_rgb9e5 ---------- */
-
-#ifndef GL_EXT_texture_compression_astc_decode_mode_rgb9e5
-#define GL_EXT_texture_compression_astc_decode_mode_rgb9e5 1
-
-#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69
-
-#define GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5 GLEW_GET_VAR(__GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5)
-
-#endif /* GL_EXT_texture_compression_astc_decode_mode_rgb9e5 */
-
-/* -------------------- GL_EXT_texture_compression_bptc -------------------- */
-
-#ifndef GL_EXT_texture_compression_bptc
-#define GL_EXT_texture_compression_bptc 1
-
-#define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C
-#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D
-#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT 0x8E8E
-#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT 0x8E8F
-
-#define GLEW_EXT_texture_compression_bptc GLEW_GET_VAR(__GLEW_EXT_texture_compression_bptc)
-
-#endif /* GL_EXT_texture_compression_bptc */
-
-/* -------------------- GL_EXT_texture_compression_dxt1 -------------------- */
-
-#ifndef GL_EXT_texture_compression_dxt1
-#define GL_EXT_texture_compression_dxt1 1
-
-#define GLEW_EXT_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_EXT_texture_compression_dxt1)
-
-#endif /* GL_EXT_texture_compression_dxt1 */
-
-/* -------------------- GL_EXT_texture_compression_latc -------------------- */
-
-#ifndef GL_EXT_texture_compression_latc
-#define GL_EXT_texture_compression_latc 1
-
-#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
-#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
-#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
-#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73
-
-#define GLEW_EXT_texture_compression_latc GLEW_GET_VAR(__GLEW_EXT_texture_compression_latc)
-
-#endif /* GL_EXT_texture_compression_latc */
-
-/* -------------------- GL_EXT_texture_compression_rgtc -------------------- */
-
-#ifndef GL_EXT_texture_compression_rgtc
-#define GL_EXT_texture_compression_rgtc 1
-
-#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
-#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
-#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
-#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
-
-#define GLEW_EXT_texture_compression_rgtc GLEW_GET_VAR(__GLEW_EXT_texture_compression_rgtc)
-
-#endif /* GL_EXT_texture_compression_rgtc */
-
-/* -------------------- GL_EXT_texture_compression_s3tc -------------------- */
-
-#ifndef GL_EXT_texture_compression_s3tc
-#define GL_EXT_texture_compression_s3tc 1
-
-#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
-#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
-#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
-#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
-
-#define GLEW_EXT_texture_compression_s3tc GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc)
-
-#endif /* GL_EXT_texture_compression_s3tc */
-
-/* ------------------ GL_EXT_texture_compression_s3tc_srgb ----------------- */
-
-#ifndef GL_EXT_texture_compression_s3tc_srgb
-#define GL_EXT_texture_compression_s3tc_srgb 1
-
-#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
-
-#define GLEW_EXT_texture_compression_s3tc_srgb GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc_srgb)
-
-#endif /* GL_EXT_texture_compression_s3tc_srgb */
-
-/* ------------------------ GL_EXT_texture_cube_map ------------------------ */
-
-#ifndef GL_EXT_texture_cube_map
-#define GL_EXT_texture_cube_map 1
-
-#define GL_NORMAL_MAP_EXT 0x8511
-#define GL_REFLECTION_MAP_EXT 0x8512
-#define GL_TEXTURE_CUBE_MAP_EXT 0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
-#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C
-
-#define GLEW_EXT_texture_cube_map GLEW_GET_VAR(__GLEW_EXT_texture_cube_map)
-
-#endif /* GL_EXT_texture_cube_map */
-
-/* --------------------- GL_EXT_texture_cube_map_array --------------------- */
-
-#ifndef GL_EXT_texture_cube_map_array
-#define GL_EXT_texture_cube_map_array 1
-
-#define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009
-#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A
-#define GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C
-#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D
-#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E
-#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F
-#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054
-#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F
-#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A
-
-#define GLEW_EXT_texture_cube_map_array GLEW_GET_VAR(__GLEW_EXT_texture_cube_map_array)
-
-#endif /* GL_EXT_texture_cube_map_array */
-
-/* ----------------------- GL_EXT_texture_edge_clamp ----------------------- */
-
-#ifndef GL_EXT_texture_edge_clamp
-#define GL_EXT_texture_edge_clamp 1
-
-#define GL_CLAMP_TO_EDGE_EXT 0x812F
-
-#define GLEW_EXT_texture_edge_clamp GLEW_GET_VAR(__GLEW_EXT_texture_edge_clamp)
-
-#endif /* GL_EXT_texture_edge_clamp */
-
-/* --------------------------- GL_EXT_texture_env -------------------------- */
-
-#ifndef GL_EXT_texture_env
-#define GL_EXT_texture_env 1
-
-#define GLEW_EXT_texture_env GLEW_GET_VAR(__GLEW_EXT_texture_env)
-
-#endif /* GL_EXT_texture_env */
-
-/* ------------------------- GL_EXT_texture_env_add ------------------------ */
-
-#ifndef GL_EXT_texture_env_add
-#define GL_EXT_texture_env_add 1
-
-#define GLEW_EXT_texture_env_add GLEW_GET_VAR(__GLEW_EXT_texture_env_add)
-
-#endif /* GL_EXT_texture_env_add */
-
-/* ----------------------- GL_EXT_texture_env_combine ---------------------- */
-
-#ifndef GL_EXT_texture_env_combine
-#define GL_EXT_texture_env_combine 1
-
-#define GL_COMBINE_EXT 0x8570
-#define GL_COMBINE_RGB_EXT 0x8571
-#define GL_COMBINE_ALPHA_EXT 0x8572
-#define GL_RGB_SCALE_EXT 0x8573
-#define GL_ADD_SIGNED_EXT 0x8574
-#define GL_INTERPOLATE_EXT 0x8575
-#define GL_CONSTANT_EXT 0x8576
-#define GL_PRIMARY_COLOR_EXT 0x8577
-#define GL_PREVIOUS_EXT 0x8578
-#define GL_SOURCE0_RGB_EXT 0x8580
-#define GL_SOURCE1_RGB_EXT 0x8581
-#define GL_SOURCE2_RGB_EXT 0x8582
-#define GL_SOURCE0_ALPHA_EXT 0x8588
-#define GL_SOURCE1_ALPHA_EXT 0x8589
-#define GL_SOURCE2_ALPHA_EXT 0x858A
-#define GL_OPERAND0_RGB_EXT 0x8590
-#define GL_OPERAND1_RGB_EXT 0x8591
-#define GL_OPERAND2_RGB_EXT 0x8592
-#define GL_OPERAND0_ALPHA_EXT 0x8598
-#define GL_OPERAND1_ALPHA_EXT 0x8599
-#define GL_OPERAND2_ALPHA_EXT 0x859A
-
-#define GLEW_EXT_texture_env_combine GLEW_GET_VAR(__GLEW_EXT_texture_env_combine)
-
-#endif /* GL_EXT_texture_env_combine */
-
-/* ------------------------ GL_EXT_texture_env_dot3 ------------------------ */
-
-#ifndef GL_EXT_texture_env_dot3
-#define GL_EXT_texture_env_dot3 1
-
-#define GL_DOT3_RGB_EXT 0x8740
-#define GL_DOT3_RGBA_EXT 0x8741
-
-#define GLEW_EXT_texture_env_dot3 GLEW_GET_VAR(__GLEW_EXT_texture_env_dot3)
-
-#endif /* GL_EXT_texture_env_dot3 */
-
-/* ------------------- GL_EXT_texture_filter_anisotropic ------------------- */
-
-#ifndef GL_EXT_texture_filter_anisotropic
-#define GL_EXT_texture_filter_anisotropic 1
-
-#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
-#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
-
-#define GLEW_EXT_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_EXT_texture_filter_anisotropic)
-
-#endif /* GL_EXT_texture_filter_anisotropic */
-
-/* ---------------------- GL_EXT_texture_filter_minmax --------------------- */
-
-#ifndef GL_EXT_texture_filter_minmax
-#define GL_EXT_texture_filter_minmax 1
-
-#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366
-#define GL_WEIGHTED_AVERAGE_EXT 0x9367
-
-#define GLEW_EXT_texture_filter_minmax GLEW_GET_VAR(__GLEW_EXT_texture_filter_minmax)
-
-#endif /* GL_EXT_texture_filter_minmax */
-
-/* --------------------- GL_EXT_texture_format_BGRA8888 -------------------- */
-
-#ifndef GL_EXT_texture_format_BGRA8888
-#define GL_EXT_texture_format_BGRA8888 1
-
-#define GL_BGRA_EXT 0x80E1
-
-#define GLEW_EXT_texture_format_BGRA8888 GLEW_GET_VAR(__GLEW_EXT_texture_format_BGRA8888)
-
-#endif /* GL_EXT_texture_format_BGRA8888 */
-
-/* ------------------ GL_EXT_texture_format_sRGB_override ------------------ */
-
-#ifndef GL_EXT_texture_format_sRGB_override
-#define GL_EXT_texture_format_sRGB_override 1
-
-#define GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT 0x8FBF
-
-#define GLEW_EXT_texture_format_sRGB_override GLEW_GET_VAR(__GLEW_EXT_texture_format_sRGB_override)
-
-#endif /* GL_EXT_texture_format_sRGB_override */
-
-/* ------------------------- GL_EXT_texture_integer ------------------------ */
-
-#ifndef GL_EXT_texture_integer
-#define GL_EXT_texture_integer 1
-
-#define GL_RGBA32UI_EXT 0x8D70
-#define GL_RGB32UI_EXT 0x8D71
-#define GL_ALPHA32UI_EXT 0x8D72
-#define GL_INTENSITY32UI_EXT 0x8D73
-#define GL_LUMINANCE32UI_EXT 0x8D74
-#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75
-#define GL_RGBA16UI_EXT 0x8D76
-#define GL_RGB16UI_EXT 0x8D77
-#define GL_ALPHA16UI_EXT 0x8D78
-#define GL_INTENSITY16UI_EXT 0x8D79
-#define GL_LUMINANCE16UI_EXT 0x8D7A
-#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B
-#define GL_RGBA8UI_EXT 0x8D7C
-#define GL_RGB8UI_EXT 0x8D7D
-#define GL_ALPHA8UI_EXT 0x8D7E
-#define GL_INTENSITY8UI_EXT 0x8D7F
-#define GL_LUMINANCE8UI_EXT 0x8D80
-#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81
-#define GL_RGBA32I_EXT 0x8D82
-#define GL_RGB32I_EXT 0x8D83
-#define GL_ALPHA32I_EXT 0x8D84
-#define GL_INTENSITY32I_EXT 0x8D85
-#define GL_LUMINANCE32I_EXT 0x8D86
-#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87
-#define GL_RGBA16I_EXT 0x8D88
-#define GL_RGB16I_EXT 0x8D89
-#define GL_ALPHA16I_EXT 0x8D8A
-#define GL_INTENSITY16I_EXT 0x8D8B
-#define GL_LUMINANCE16I_EXT 0x8D8C
-#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D
-#define GL_RGBA8I_EXT 0x8D8E
-#define GL_RGB8I_EXT 0x8D8F
-#define GL_ALPHA8I_EXT 0x8D90
-#define GL_INTENSITY8I_EXT 0x8D91
-#define GL_LUMINANCE8I_EXT 0x8D92
-#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93
-#define GL_RED_INTEGER_EXT 0x8D94
-#define GL_GREEN_INTEGER_EXT 0x8D95
-#define GL_BLUE_INTEGER_EXT 0x8D96
-#define GL_ALPHA_INTEGER_EXT 0x8D97
-#define GL_RGB_INTEGER_EXT 0x8D98
-#define GL_RGBA_INTEGER_EXT 0x8D99
-#define GL_BGR_INTEGER_EXT 0x8D9A
-#define GL_BGRA_INTEGER_EXT 0x8D9B
-#define GL_LUMINANCE_INTEGER_EXT 0x8D9C
-#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D
-#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E
-
-typedef void (GLAPIENTRY * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha);
-typedef void (GLAPIENTRY * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
-typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
-typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params);
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params);
-
-#define glClearColorIiEXT GLEW_GET_FUN(__glewClearColorIiEXT)
-#define glClearColorIuiEXT GLEW_GET_FUN(__glewClearColorIuiEXT)
-#define glGetTexParameterIivEXT GLEW_GET_FUN(__glewGetTexParameterIivEXT)
-#define glGetTexParameterIuivEXT GLEW_GET_FUN(__glewGetTexParameterIuivEXT)
-#define glTexParameterIivEXT GLEW_GET_FUN(__glewTexParameterIivEXT)
-#define glTexParameterIuivEXT GLEW_GET_FUN(__glewTexParameterIuivEXT)
-
-#define GLEW_EXT_texture_integer GLEW_GET_VAR(__GLEW_EXT_texture_integer)
-
-#endif /* GL_EXT_texture_integer */
-
-/* ------------------------ GL_EXT_texture_lod_bias ------------------------ */
-
-#ifndef GL_EXT_texture_lod_bias
-#define GL_EXT_texture_lod_bias 1
-
-#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
-#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
-#define GL_TEXTURE_LOD_BIAS_EXT 0x8501
-
-#define GLEW_EXT_texture_lod_bias GLEW_GET_VAR(__GLEW_EXT_texture_lod_bias)
-
-#endif /* GL_EXT_texture_lod_bias */
-
-/* ---------------------- GL_EXT_texture_mirror_clamp ---------------------- */
-
-#ifndef GL_EXT_texture_mirror_clamp
-#define GL_EXT_texture_mirror_clamp 1
-
-#define GL_MIRROR_CLAMP_EXT 0x8742
-#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
-#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912
-
-#define GLEW_EXT_texture_mirror_clamp GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp)
-
-#endif /* GL_EXT_texture_mirror_clamp */
-
-/* ------------------ GL_EXT_texture_mirror_clamp_to_edge ------------------ */
-
-#ifndef GL_EXT_texture_mirror_clamp_to_edge
-#define GL_EXT_texture_mirror_clamp_to_edge 1
-
-#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
-
-#define GLEW_EXT_texture_mirror_clamp_to_edge GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp_to_edge)
-
-#endif /* GL_EXT_texture_mirror_clamp_to_edge */
-
-/* ------------------------- GL_EXT_texture_norm16 ------------------------- */
-
-#ifndef GL_EXT_texture_norm16
-#define GL_EXT_texture_norm16 1
-
-#define GL_RGB16_EXT 0x8054
-#define GL_RGBA16_EXT 0x805B
-#define GL_R16_EXT 0x822A
-#define GL_RG16_EXT 0x822C
-#define GL_R16_SNORM_EXT 0x8F98
-#define GL_RG16_SNORM_EXT 0x8F99
-#define GL_RGB16_SNORM_EXT 0x8F9A
-#define GL_RGBA16_SNORM_EXT 0x8F9B
-
-#define GLEW_EXT_texture_norm16 GLEW_GET_VAR(__GLEW_EXT_texture_norm16)
-
-#endif /* GL_EXT_texture_norm16 */
-
-/* ------------------------- GL_EXT_texture_object ------------------------- */
-
-#ifndef GL_EXT_texture_object
-#define GL_EXT_texture_object 1
-
-#define GL_TEXTURE_PRIORITY_EXT 0x8066
-#define GL_TEXTURE_RESIDENT_EXT 0x8067
-#define GL_TEXTURE_1D_BINDING_EXT 0x8068
-#define GL_TEXTURE_2D_BINDING_EXT 0x8069
-#define GL_TEXTURE_3D_BINDING_EXT 0x806A
-
-typedef GLboolean (GLAPIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint* textures, GLboolean* residences);
-typedef void (GLAPIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture);
-typedef void (GLAPIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint* textures);
-typedef void (GLAPIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint* textures);
-typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture);
-typedef void (GLAPIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint* textures, const GLclampf* priorities);
-
-#define glAreTexturesResidentEXT GLEW_GET_FUN(__glewAreTexturesResidentEXT)
-#define glBindTextureEXT GLEW_GET_FUN(__glewBindTextureEXT)
-#define glDeleteTexturesEXT GLEW_GET_FUN(__glewDeleteTexturesEXT)
-#define glGenTexturesEXT GLEW_GET_FUN(__glewGenTexturesEXT)
-#define glIsTextureEXT GLEW_GET_FUN(__glewIsTextureEXT)
-#define glPrioritizeTexturesEXT GLEW_GET_FUN(__glewPrioritizeTexturesEXT)
-
-#define GLEW_EXT_texture_object GLEW_GET_VAR(__GLEW_EXT_texture_object)
-
-#endif /* GL_EXT_texture_object */
-
-/* --------------------- GL_EXT_texture_perturb_normal --------------------- */
-
-#ifndef GL_EXT_texture_perturb_normal
-#define GL_EXT_texture_perturb_normal 1
-
-#define GL_PERTURB_EXT 0x85AE
-#define GL_TEXTURE_NORMAL_EXT 0x85AF
-
-typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode);
-
-#define glTextureNormalEXT GLEW_GET_FUN(__glewTextureNormalEXT)
-
-#define GLEW_EXT_texture_perturb_normal GLEW_GET_VAR(__GLEW_EXT_texture_perturb_normal)
-
-#endif /* GL_EXT_texture_perturb_normal */
-
-/* ------------------------ GL_EXT_texture_query_lod ----------------------- */
-
-#ifndef GL_EXT_texture_query_lod
-#define GL_EXT_texture_query_lod 1
-
-#define GLEW_EXT_texture_query_lod GLEW_GET_VAR(__GLEW_EXT_texture_query_lod)
-
-#endif /* GL_EXT_texture_query_lod */
-
-/* ------------------------ GL_EXT_texture_rectangle ----------------------- */
-
-#ifndef GL_EXT_texture_rectangle
-#define GL_EXT_texture_rectangle 1
-
-#define GL_TEXTURE_RECTANGLE_EXT 0x84F5
-#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6
-#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7
-#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8
-
-#define GLEW_EXT_texture_rectangle GLEW_GET_VAR(__GLEW_EXT_texture_rectangle)
-
-#endif /* GL_EXT_texture_rectangle */
-
-/* --------------------------- GL_EXT_texture_rg --------------------------- */
-
-#ifndef GL_EXT_texture_rg
-#define GL_EXT_texture_rg 1
-
-#define GL_RED_EXT 0x1903
-#define GL_RG_EXT 0x8227
-#define GL_R8_EXT 0x8229
-#define GL_RG8_EXT 0x822B
-
-#define GLEW_EXT_texture_rg GLEW_GET_VAR(__GLEW_EXT_texture_rg)
-
-#endif /* GL_EXT_texture_rg */
-
-/* -------------------------- GL_EXT_texture_sRGB -------------------------- */
-
-#ifndef GL_EXT_texture_sRGB
-#define GL_EXT_texture_sRGB 1
-
-#define GL_SRGB_EXT 0x8C40
-#define GL_SRGB8_EXT 0x8C41
-#define GL_SRGB_ALPHA_EXT 0x8C42
-#define GL_SRGB8_ALPHA8_EXT 0x8C43
-#define GL_SLUMINANCE_ALPHA_EXT 0x8C44
-#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45
-#define GL_SLUMINANCE_EXT 0x8C46
-#define GL_SLUMINANCE8_EXT 0x8C47
-#define GL_COMPRESSED_SRGB_EXT 0x8C48
-#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49
-#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A
-#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
-#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
-
-#define GLEW_EXT_texture_sRGB GLEW_GET_VAR(__GLEW_EXT_texture_sRGB)
-
-#endif /* GL_EXT_texture_sRGB */
-
-/* ------------------------- GL_EXT_texture_sRGB_R8 ------------------------ */
-
-#ifndef GL_EXT_texture_sRGB_R8
-#define GL_EXT_texture_sRGB_R8 1
-
-#define GL_SR8_EXT 0x8FBD
-
-#define GLEW_EXT_texture_sRGB_R8 GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_R8)
-
-#endif /* GL_EXT_texture_sRGB_R8 */
-
-/* ------------------------ GL_EXT_texture_sRGB_RG8 ------------------------ */
-
-#ifndef GL_EXT_texture_sRGB_RG8
-#define GL_EXT_texture_sRGB_RG8 1
-
-#define GL_SRG8_EXT 0x8FBE
-
-#define GLEW_EXT_texture_sRGB_RG8 GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_RG8)
-
-#endif /* GL_EXT_texture_sRGB_RG8 */
-
-/* ----------------------- GL_EXT_texture_sRGB_decode ---------------------- */
-
-#ifndef GL_EXT_texture_sRGB_decode
-#define GL_EXT_texture_sRGB_decode 1
-
-#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48
-#define GL_DECODE_EXT 0x8A49
-#define GL_SKIP_DECODE_EXT 0x8A4A
-
-#define GLEW_EXT_texture_sRGB_decode GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_decode)
-
-#endif /* GL_EXT_texture_sRGB_decode */
-
-/* ----------------------- GL_EXT_texture_shadow_lod ----------------------- */
-
-#ifndef GL_EXT_texture_shadow_lod
-#define GL_EXT_texture_shadow_lod 1
-
-#define GLEW_EXT_texture_shadow_lod GLEW_GET_VAR(__GLEW_EXT_texture_shadow_lod)
-
-#endif /* GL_EXT_texture_shadow_lod */
-
-/* --------------------- GL_EXT_texture_shared_exponent -------------------- */
-
-#ifndef GL_EXT_texture_shared_exponent
-#define GL_EXT_texture_shared_exponent 1
-
-#define GL_RGB9_E5_EXT 0x8C3D
-#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E
-#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F
-
-#define GLEW_EXT_texture_shared_exponent GLEW_GET_VAR(__GLEW_EXT_texture_shared_exponent)
-
-#endif /* GL_EXT_texture_shared_exponent */
-
-/* -------------------------- GL_EXT_texture_snorm ------------------------- */
-
-#ifndef GL_EXT_texture_snorm
-#define GL_EXT_texture_snorm 1
-
-#define GL_RED_SNORM 0x8F90
-#define GL_RG_SNORM 0x8F91
-#define GL_RGB_SNORM 0x8F92
-#define GL_RGBA_SNORM 0x8F93
-#define GL_R8_SNORM 0x8F94
-#define GL_RG8_SNORM 0x8F95
-#define GL_RGB8_SNORM 0x8F96
-#define GL_RGBA8_SNORM 0x8F97
-#define GL_R16_SNORM 0x8F98
-#define GL_RG16_SNORM 0x8F99
-#define GL_RGB16_SNORM 0x8F9A
-#define GL_RGBA16_SNORM 0x8F9B
-#define GL_SIGNED_NORMALIZED 0x8F9C
-#define GL_ALPHA_SNORM 0x9010
-#define GL_LUMINANCE_SNORM 0x9011
-#define GL_LUMINANCE_ALPHA_SNORM 0x9012
-#define GL_INTENSITY_SNORM 0x9013
-#define GL_ALPHA8_SNORM 0x9014
-#define GL_LUMINANCE8_SNORM 0x9015
-#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016
-#define GL_INTENSITY8_SNORM 0x9017
-#define GL_ALPHA16_SNORM 0x9018
-#define GL_LUMINANCE16_SNORM 0x9019
-#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A
-#define GL_INTENSITY16_SNORM 0x901B
-
-#define GLEW_EXT_texture_snorm GLEW_GET_VAR(__GLEW_EXT_texture_snorm)
-
-#endif /* GL_EXT_texture_snorm */
-
-/* ------------------------- GL_EXT_texture_storage ------------------------ */
-
-#ifndef GL_EXT_texture_storage
-#define GL_EXT_texture_storage 1
-
-#define GL_ALPHA8_EXT 0x803C
-#define GL_LUMINANCE8_EXT 0x8040
-#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
-#define GL_RGB10_EXT 0x8052
-#define GL_RGB10_A2_EXT 0x8059
-#define GL_R8_EXT 0x8229
-#define GL_RG8_EXT 0x822B
-#define GL_R16F_EXT 0x822D
-#define GL_R32F_EXT 0x822E
-#define GL_RG16F_EXT 0x822F
-#define GL_RG32F_EXT 0x8230
-#define GL_RGBA32F_EXT 0x8814
-#define GL_RGB32F_EXT 0x8815
-#define GL_ALPHA32F_EXT 0x8816
-#define GL_LUMINANCE32F_EXT 0x8818
-#define GL_LUMINANCE_ALPHA32F_EXT 0x8819
-#define GL_RGBA16F_EXT 0x881A
-#define GL_RGB16F_EXT 0x881B
-#define GL_ALPHA16F_EXT 0x881C
-#define GL_LUMINANCE16F_EXT 0x881E
-#define GL_LUMINANCE_ALPHA16F_EXT 0x881F
-#define GL_RGB_RAW_422_APPLE 0x8A51
-#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F
-#define GL_BGRA8_EXT 0x93A1
-
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
-
-#define glTexStorage1DEXT GLEW_GET_FUN(__glewTexStorage1DEXT)
-#define glTexStorage2DEXT GLEW_GET_FUN(__glewTexStorage2DEXT)
-#define glTexStorage3DEXT GLEW_GET_FUN(__glewTexStorage3DEXT)
-#define glTextureStorage1DEXT GLEW_GET_FUN(__glewTextureStorage1DEXT)
-#define glTextureStorage2DEXT GLEW_GET_FUN(__glewTextureStorage2DEXT)
-#define glTextureStorage3DEXT GLEW_GET_FUN(__glewTextureStorage3DEXT)
-
-#define GLEW_EXT_texture_storage GLEW_GET_VAR(__GLEW_EXT_texture_storage)
-
-#endif /* GL_EXT_texture_storage */
-
-/* ------------------------- GL_EXT_texture_swizzle ------------------------ */
-
-#ifndef GL_EXT_texture_swizzle
-#define GL_EXT_texture_swizzle 1
-
-#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42
-#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43
-#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44
-#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45
-#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46
-
-#define GLEW_EXT_texture_swizzle GLEW_GET_VAR(__GLEW_EXT_texture_swizzle)
-
-#endif /* GL_EXT_texture_swizzle */
-
-/* ------------------- GL_EXT_texture_type_2_10_10_10_REV ------------------ */
-
-#ifndef GL_EXT_texture_type_2_10_10_10_REV
-#define GL_EXT_texture_type_2_10_10_10_REV 1
-
-#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
-
-#define GLEW_EXT_texture_type_2_10_10_10_REV GLEW_GET_VAR(__GLEW_EXT_texture_type_2_10_10_10_REV)
-
-#endif /* GL_EXT_texture_type_2_10_10_10_REV */
-
-/* -------------------------- GL_EXT_texture_view -------------------------- */
-
-#ifndef GL_EXT_texture_view
-#define GL_EXT_texture_view 1
-
-#define GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB
-#define GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC
-#define GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD
-#define GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE
-#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
-
-typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWEXTPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
-
-#define glTextureViewEXT GLEW_GET_FUN(__glewTextureViewEXT)
-
-#define GLEW_EXT_texture_view GLEW_GET_VAR(__GLEW_EXT_texture_view)
-
-#endif /* GL_EXT_texture_view */
-
-/* --------------------------- GL_EXT_timer_query -------------------------- */
-
-#ifndef GL_EXT_timer_query
-#define GL_EXT_timer_query 1
-
-#define GL_TIME_ELAPSED_EXT 0x88BF
-
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params);
-typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params);
-
-#define glGetQueryObjecti64vEXT GLEW_GET_FUN(__glewGetQueryObjecti64vEXT)
-#define glGetQueryObjectui64vEXT GLEW_GET_FUN(__glewGetQueryObjectui64vEXT)
-
-#define GLEW_EXT_timer_query GLEW_GET_VAR(__GLEW_EXT_timer_query)
-
-#endif /* GL_EXT_timer_query */
-
-/* ----------------------- GL_EXT_transform_feedback ----------------------- */
-
-#ifndef GL_EXT_transform_feedback
-#define GL_EXT_transform_feedback 1
-
-#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76
-#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F
-#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80
-#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83
-#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84
-#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85
-#define GL_PRIMITIVES_GENERATED_EXT 0x8C87
-#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88
-#define GL_RASTERIZER_DISCARD_EXT 0x8C89
-#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A
-#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B
-#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C
-#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D
-#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E
-#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F
-
-typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode);
-typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
-typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void);
-typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei *size, GLenum *type, GLchar *name);
-typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar * const* varyings, GLenum bufferMode);
-
-#define glBeginTransformFeedbackEXT GLEW_GET_FUN(__glewBeginTransformFeedbackEXT)
-#define glBindBufferBaseEXT GLEW_GET_FUN(__glewBindBufferBaseEXT)
-#define glBindBufferOffsetEXT GLEW_GET_FUN(__glewBindBufferOffsetEXT)
-#define glBindBufferRangeEXT GLEW_GET_FUN(__glewBindBufferRangeEXT)
-#define glEndTransformFeedbackEXT GLEW_GET_FUN(__glewEndTransformFeedbackEXT)
-#define glGetTransformFeedbackVaryingEXT GLEW_GET_FUN(__glewGetTransformFeedbackVaryingEXT)
-#define glTransformFeedbackVaryingsEXT GLEW_GET_FUN(__glewTransformFeedbackVaryingsEXT)
-
-#define GLEW_EXT_transform_feedback GLEW_GET_VAR(__GLEW_EXT_transform_feedback)
-
-#endif /* GL_EXT_transform_feedback */
-
-/* ------------------------- GL_EXT_unpack_subimage ------------------------ */
-
-#ifndef GL_EXT_unpack_subimage
-#define GL_EXT_unpack_subimage 1
-
-#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2
-#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3
-#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4
-
-#define GLEW_EXT_unpack_subimage GLEW_GET_VAR(__GLEW_EXT_unpack_subimage)
-
-#endif /* GL_EXT_unpack_subimage */
-
-/* -------------------------- GL_EXT_vertex_array -------------------------- */
-
-#ifndef GL_EXT_vertex_array
-#define GL_EXT_vertex_array 1
-
-#define GL_DOUBLE_EXT 0x140A
-#define GL_VERTEX_ARRAY_EXT 0x8074
-#define GL_NORMAL_ARRAY_EXT 0x8075
-#define GL_COLOR_ARRAY_EXT 0x8076
-#define GL_INDEX_ARRAY_EXT 0x8077
-#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078
-#define GL_EDGE_FLAG_ARRAY_EXT 0x8079
-#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A
-#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B
-#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C
-#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D
-#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E
-#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F
-#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080
-#define GL_COLOR_ARRAY_SIZE_EXT 0x8081
-#define GL_COLOR_ARRAY_TYPE_EXT 0x8082
-#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083
-#define GL_COLOR_ARRAY_COUNT_EXT 0x8084
-#define GL_INDEX_ARRAY_TYPE_EXT 0x8085
-#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086
-#define GL_INDEX_ARRAY_COUNT_EXT 0x8087
-#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088
-#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089
-#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
-#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B
-#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C
-#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D
-#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E
-#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F
-#define GL_COLOR_ARRAY_POINTER_EXT 0x8090
-#define GL_INDEX_ARRAY_POINTER_EXT 0x8091
-#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
-#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093
-
-typedef void (GLAPIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i);
-typedef void (GLAPIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
-typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean* pointer);
-typedef void (GLAPIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
-
-#define glArrayElementEXT GLEW_GET_FUN(__glewArrayElementEXT)
-#define glColorPointerEXT GLEW_GET_FUN(__glewColorPointerEXT)
-#define glDrawArraysEXT GLEW_GET_FUN(__glewDrawArraysEXT)
-#define glEdgeFlagPointerEXT GLEW_GET_FUN(__glewEdgeFlagPointerEXT)
-#define glIndexPointerEXT GLEW_GET_FUN(__glewIndexPointerEXT)
-#define glNormalPointerEXT GLEW_GET_FUN(__glewNormalPointerEXT)
-#define glTexCoordPointerEXT GLEW_GET_FUN(__glewTexCoordPointerEXT)
-#define glVertexPointerEXT GLEW_GET_FUN(__glewVertexPointerEXT)
-
-#define GLEW_EXT_vertex_array GLEW_GET_VAR(__GLEW_EXT_vertex_array)
-
-#endif /* GL_EXT_vertex_array */
-
-/* ------------------------ GL_EXT_vertex_array_bgra ----------------------- */
-
-#ifndef GL_EXT_vertex_array_bgra
-#define GL_EXT_vertex_array_bgra 1
-
-#define GL_BGRA 0x80E1
-
-#define GLEW_EXT_vertex_array_bgra GLEW_GET_VAR(__GLEW_EXT_vertex_array_bgra)
-
-#endif /* GL_EXT_vertex_array_bgra */
-
-/* ----------------------- GL_EXT_vertex_array_setXXX ---------------------- */
-
-#ifndef GL_EXT_vertex_array_setXXX
-#define GL_EXT_vertex_array_setXXX 1
-
-typedef void (GLAPIENTRY * PFNGLBINDARRAYSETEXTPROC) (const void *arrayset);
-typedef const void * (GLAPIENTRY * PFNGLCREATEARRAYSETEXTPROC) (void);
-typedef void (GLAPIENTRY * PFNGLDELETEARRAYSETSEXTPROC) (GLsizei n, const void *arrayset[]);
-
-#define glBindArraySetEXT GLEW_GET_FUN(__glewBindArraySetEXT)
-#define glCreateArraySetExt GLEW_GET_FUN(__glewCreateArraySetExt)
-#define glDeleteArraySetsEXT GLEW_GET_FUN(__glewDeleteArraySetsEXT)
-
-#define GLEW_EXT_vertex_array_setXXX GLEW_GET_VAR(__GLEW_EXT_vertex_array_setXXX)
-
-#endif /* GL_EXT_vertex_array_setXXX */
-
-/* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */
-
-#ifndef GL_EXT_vertex_attrib_64bit
-#define GL_EXT_vertex_attrib_64bit 1
-
-#define GL_DOUBLE_MAT2_EXT 0x8F46
-#define GL_DOUBLE_MAT3_EXT 0x8F47
-#define GL_DOUBLE_MAT4_EXT 0x8F48
-#define GL_DOUBLE_MAT2x3_EXT 0x8F49
-#define GL_DOUBLE_MAT2x4_EXT 0x8F4A
-#define GL_DOUBLE_MAT3x2_EXT 0x8F4B
-#define GL_DOUBLE_MAT3x4_EXT 0x8F4C
-#define GL_DOUBLE_MAT4x2_EXT 0x8F4D
-#define GL_DOUBLE_MAT4x3_EXT 0x8F4E
-#define GL_DOUBLE_VEC2_EXT 0x8FFC
-#define GL_DOUBLE_VEC3_EXT 0x8FFD
-#define GL_DOUBLE_VEC4_EXT 0x8FFE
-
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
-
-#define glGetVertexAttribLdvEXT GLEW_GET_FUN(__glewGetVertexAttribLdvEXT)
-#define glVertexArrayVertexAttribLOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLOffsetEXT)
-#define glVertexAttribL1dEXT GLEW_GET_FUN(__glewVertexAttribL1dEXT)
-#define glVertexAttribL1dvEXT GLEW_GET_FUN(__glewVertexAttribL1dvEXT)
-#define glVertexAttribL2dEXT GLEW_GET_FUN(__glewVertexAttribL2dEXT)
-#define glVertexAttribL2dvEXT GLEW_GET_FUN(__glewVertexAttribL2dvEXT)
-#define glVertexAttribL3dEXT GLEW_GET_FUN(__glewVertexAttribL3dEXT)
-#define glVertexAttribL3dvEXT GLEW_GET_FUN(__glewVertexAttribL3dvEXT)
-#define glVertexAttribL4dEXT GLEW_GET_FUN(__glewVertexAttribL4dEXT)
-#define glVertexAttribL4dvEXT GLEW_GET_FUN(__glewVertexAttribL4dvEXT)
-#define glVertexAttribLPointerEXT GLEW_GET_FUN(__glewVertexAttribLPointerEXT)
-
-#define GLEW_EXT_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_EXT_vertex_attrib_64bit)
-
-#endif /* GL_EXT_vertex_attrib_64bit */
-
-/* -------------------------- GL_EXT_vertex_shader ------------------------- */
-
-#ifndef GL_EXT_vertex_shader
-#define GL_EXT_vertex_shader 1
-
-#define GL_VERTEX_SHADER_EXT 0x8780
-#define GL_VERTEX_SHADER_BINDING_EXT 0x8781
-#define GL_OP_INDEX_EXT 0x8782
-#define GL_OP_NEGATE_EXT 0x8783
-#define GL_OP_DOT3_EXT 0x8784
-#define GL_OP_DOT4_EXT 0x8785
-#define GL_OP_MUL_EXT 0x8786
-#define GL_OP_ADD_EXT 0x8787
-#define GL_OP_MADD_EXT 0x8788
-#define GL_OP_FRAC_EXT 0x8789
-#define GL_OP_MAX_EXT 0x878A
-#define GL_OP_MIN_EXT 0x878B
-#define GL_OP_SET_GE_EXT 0x878C
-#define GL_OP_SET_LT_EXT 0x878D
-#define GL_OP_CLAMP_EXT 0x878E
-#define GL_OP_FLOOR_EXT 0x878F
-#define GL_OP_ROUND_EXT 0x8790
-#define GL_OP_EXP_BASE_2_EXT 0x8791
-#define GL_OP_LOG_BASE_2_EXT 0x8792
-#define GL_OP_POWER_EXT 0x8793
-#define GL_OP_RECIP_EXT 0x8794
-#define GL_OP_RECIP_SQRT_EXT 0x8795
-#define GL_OP_SUB_EXT 0x8796
-#define GL_OP_CROSS_PRODUCT_EXT 0x8797
-#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798
-#define GL_OP_MOV_EXT 0x8799
-#define GL_OUTPUT_VERTEX_EXT 0x879A
-#define GL_OUTPUT_COLOR0_EXT 0x879B
-#define GL_OUTPUT_COLOR1_EXT 0x879C
-#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
-#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
-#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
-#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
-#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
-#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
-#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
-#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
-#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
-#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
-#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
-#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
-#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
-#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
-#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
-#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
-#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
-#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
-#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
-#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
-#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
-#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
-#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
-#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
-#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
-#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
-#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
-#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
-#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
-#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
-#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
-#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
-#define GL_OUTPUT_FOG_EXT 0x87BD
-#define GL_SCALAR_EXT 0x87BE
-#define GL_VECTOR_EXT 0x87BF
-#define GL_MATRIX_EXT 0x87C0
-#define GL_VARIANT_EXT 0x87C1
-#define GL_INVARIANT_EXT 0x87C2
-#define GL_LOCAL_CONSTANT_EXT 0x87C3
-#define GL_LOCAL_EXT 0x87C4
-#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
-#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
-#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
-#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
-#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD
-#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
-#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
-#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
-#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
-#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
-#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
-#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
-#define GL_X_EXT 0x87D5
-#define GL_Y_EXT 0x87D6
-#define GL_Z_EXT 0x87D7
-#define GL_W_EXT 0x87D8
-#define GL_NEGATIVE_X_EXT 0x87D9
-#define GL_NEGATIVE_Y_EXT 0x87DA
-#define GL_NEGATIVE_Z_EXT 0x87DB
-#define GL_NEGATIVE_W_EXT 0x87DC
-#define GL_ZERO_EXT 0x87DD
-#define GL_ONE_EXT 0x87DE
-#define GL_NEGATIVE_ONE_EXT 0x87DF
-#define GL_NORMALIZED_RANGE_EXT 0x87E0
-#define GL_FULL_RANGE_EXT 0x87E1
-#define GL_CURRENT_VERTEX_EXT 0x87E2
-#define GL_MVP_MATRIX_EXT 0x87E3
-#define GL_VARIANT_VALUE_EXT 0x87E4
-#define GL_VARIANT_DATATYPE_EXT 0x87E5
-#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
-#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
-#define GL_VARIANT_ARRAY_EXT 0x87E8
-#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
-#define GL_INVARIANT_VALUE_EXT 0x87EA
-#define GL_INVARIANT_DATATYPE_EXT 0x87EB
-#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
-#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
-
-typedef void (GLAPIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC) (void);
-typedef GLuint (GLAPIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value);
-typedef GLuint (GLAPIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value);
-typedef GLuint (GLAPIENTRY * PFNGLBINDPARAMETEREXTPROC) (GLenum value);
-typedef GLuint (GLAPIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value);
-typedef GLuint (GLAPIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value);
-typedef void (GLAPIENTRY * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLENDVERTEXSHADEREXTPROC) (void);
-typedef void (GLAPIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
-typedef GLuint (GLAPIENTRY * PFNGLGENSYMBOLSEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components);
-typedef GLuint (GLAPIENTRY * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range);
-typedef void (GLAPIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
-typedef void (GLAPIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
-typedef void (GLAPIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
-typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
-typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
-typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
-typedef void (GLAPIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
-typedef void (GLAPIENTRY * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
-typedef void (GLAPIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
-typedef void (GLAPIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, void **data);
-typedef void (GLAPIENTRY * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
-typedef GLboolean (GLAPIENTRY * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap);
-typedef void (GLAPIENTRY * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, void *addr);
-typedef void (GLAPIENTRY * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, void *addr);
-typedef void (GLAPIENTRY * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1);
-typedef void (GLAPIENTRY * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
-typedef void (GLAPIENTRY * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
-typedef void (GLAPIENTRY * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
-typedef void (GLAPIENTRY * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, void *addr);
-typedef void (GLAPIENTRY * PFNGLVARIANTBVEXTPROC) (GLuint id, GLbyte *addr);
-typedef void (GLAPIENTRY * PFNGLVARIANTDVEXTPROC) (GLuint id, GLdouble *addr);
-typedef void (GLAPIENTRY * PFNGLVARIANTFVEXTPROC) (GLuint id, GLfloat *addr);
-typedef void (GLAPIENTRY * PFNGLVARIANTIVEXTPROC) (GLuint id, GLint *addr);
-typedef void (GLAPIENTRY * PFNGLVARIANTSVEXTPROC) (GLuint id, GLshort *addr);
-typedef void (GLAPIENTRY * PFNGLVARIANTUBVEXTPROC) (GLuint id, GLubyte *addr);
-typedef void (GLAPIENTRY * PFNGLVARIANTUIVEXTPROC) (GLuint id, GLuint *addr);
-typedef void (GLAPIENTRY * PFNGLVARIANTUSVEXTPROC) (GLuint id, GLushort *addr);
-typedef void (GLAPIENTRY * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
-
-#define glBeginVertexShaderEXT GLEW_GET_FUN(__glewBeginVertexShaderEXT)
-#define glBindLightParameterEXT GLEW_GET_FUN(__glewBindLightParameterEXT)
-#define glBindMaterialParameterEXT GLEW_GET_FUN(__glewBindMaterialParameterEXT)
-#define glBindParameterEXT GLEW_GET_FUN(__glewBindParameterEXT)
-#define glBindTexGenParameterEXT GLEW_GET_FUN(__glewBindTexGenParameterEXT)
-#define glBindTextureUnitParameterEXT GLEW_GET_FUN(__glewBindTextureUnitParameterEXT)
-#define glBindVertexShaderEXT GLEW_GET_FUN(__glewBindVertexShaderEXT)
-#define glDeleteVertexShaderEXT GLEW_GET_FUN(__glewDeleteVertexShaderEXT)
-#define glDisableVariantClientStateEXT GLEW_GET_FUN(__glewDisableVariantClientStateEXT)
-#define glEnableVariantClientStateEXT GLEW_GET_FUN(__glewEnableVariantClientStateEXT)
-#define glEndVertexShaderEXT GLEW_GET_FUN(__glewEndVertexShaderEXT)
-#define glExtractComponentEXT GLEW_GET_FUN(__glewExtractComponentEXT)
-#define glGenSymbolsEXT GLEW_GET_FUN(__glewGenSymbolsEXT)
-#define glGenVertexShadersEXT GLEW_GET_FUN(__glewGenVertexShadersEXT)
-#define glGetInvariantBooleanvEXT GLEW_GET_FUN(__glewGetInvariantBooleanvEXT)
-#define glGetInvariantFloatvEXT GLEW_GET_FUN(__glewGetInvariantFloatvEXT)
-#define glGetInvariantIntegervEXT GLEW_GET_FUN(__glewGetInvariantIntegervEXT)
-#define glGetLocalConstantBooleanvEXT GLEW_GET_FUN(__glewGetLocalConstantBooleanvEXT)
-#define glGetLocalConstantFloatvEXT GLEW_GET_FUN(__glewGetLocalConstantFloatvEXT)
-#define glGetLocalConstantIntegervEXT GLEW_GET_FUN(__glewGetLocalConstantIntegervEXT)
-#define glGetVariantBooleanvEXT GLEW_GET_FUN(__glewGetVariantBooleanvEXT)
-#define glGetVariantFloatvEXT GLEW_GET_FUN(__glewGetVariantFloatvEXT)
-#define glGetVariantIntegervEXT GLEW_GET_FUN(__glewGetVariantIntegervEXT)
-#define glGetVariantPointervEXT GLEW_GET_FUN(__glewGetVariantPointervEXT)
-#define glInsertComponentEXT GLEW_GET_FUN(__glewInsertComponentEXT)
-#define glIsVariantEnabledEXT GLEW_GET_FUN(__glewIsVariantEnabledEXT)
-#define glSetInvariantEXT GLEW_GET_FUN(__glewSetInvariantEXT)
-#define glSetLocalConstantEXT GLEW_GET_FUN(__glewSetLocalConstantEXT)
-#define glShaderOp1EXT GLEW_GET_FUN(__glewShaderOp1EXT)
-#define glShaderOp2EXT GLEW_GET_FUN(__glewShaderOp2EXT)
-#define glShaderOp3EXT GLEW_GET_FUN(__glewShaderOp3EXT)
-#define glSwizzleEXT GLEW_GET_FUN(__glewSwizzleEXT)
-#define glVariantPointerEXT GLEW_GET_FUN(__glewVariantPointerEXT)
-#define glVariantbvEXT GLEW_GET_FUN(__glewVariantbvEXT)
-#define glVariantdvEXT GLEW_GET_FUN(__glewVariantdvEXT)
-#define glVariantfvEXT GLEW_GET_FUN(__glewVariantfvEXT)
-#define glVariantivEXT GLEW_GET_FUN(__glewVariantivEXT)
-#define glVariantsvEXT GLEW_GET_FUN(__glewVariantsvEXT)
-#define glVariantubvEXT GLEW_GET_FUN(__glewVariantubvEXT)
-#define glVariantuivEXT GLEW_GET_FUN(__glewVariantuivEXT)
-#define glVariantusvEXT GLEW_GET_FUN(__glewVariantusvEXT)
-#define glWriteMaskEXT GLEW_GET_FUN(__glewWriteMaskEXT)
-
-#define GLEW_EXT_vertex_shader GLEW_GET_VAR(__GLEW_EXT_vertex_shader)
-
-#endif /* GL_EXT_vertex_shader */
-
-/* ------------------------ GL_EXT_vertex_weighting ------------------------ */
-
-#ifndef GL_EXT_vertex_weighting
-#define GL_EXT_vertex_weighting 1
-
-#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3
-#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6
-#define GL_MODELVIEW0_EXT 0x1700
-#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502
-#define GL_MODELVIEW1_MATRIX_EXT 0x8506
-#define GL_VERTEX_WEIGHTING_EXT 0x8509
-#define GL_MODELVIEW1_EXT 0x850A
-#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B
-#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C
-#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D
-#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E
-#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
-#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
-
-typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, void *pointer);
-typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight);
-typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight);
-
-#define glVertexWeightPointerEXT GLEW_GET_FUN(__glewVertexWeightPointerEXT)
-#define glVertexWeightfEXT GLEW_GET_FUN(__glewVertexWeightfEXT)
-#define glVertexWeightfvEXT GLEW_GET_FUN(__glewVertexWeightfvEXT)
-
-#define GLEW_EXT_vertex_weighting GLEW_GET_VAR(__GLEW_EXT_vertex_weighting)
-
-#endif /* GL_EXT_vertex_weighting */
-
-/* ------------------------ GL_EXT_win32_keyed_mutex ----------------------- */
-
-#ifndef GL_EXT_win32_keyed_mutex
-#define GL_EXT_win32_keyed_mutex 1
-
-typedef GLboolean (GLAPIENTRY * PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout);
-typedef GLboolean (GLAPIENTRY * PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key);
-
-#define glAcquireKeyedMutexWin32EXT GLEW_GET_FUN(__glewAcquireKeyedMutexWin32EXT)
-#define glReleaseKeyedMutexWin32EXT GLEW_GET_FUN(__glewReleaseKeyedMutexWin32EXT)
-
-#define GLEW_EXT_win32_keyed_mutex GLEW_GET_VAR(__GLEW_EXT_win32_keyed_mutex)
-
-#endif /* GL_EXT_win32_keyed_mutex */
-
-/* ------------------------ GL_EXT_window_rectangles ----------------------- */
-
-#ifndef GL_EXT_window_rectangles
-#define GL_EXT_window_rectangles 1
-
-#define GL_INCLUSIVE_EXT 0x8F10
-#define GL_EXCLUSIVE_EXT 0x8F11
-#define GL_WINDOW_RECTANGLE_EXT 0x8F12
-#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13
-#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14
-#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15
-
-typedef void (GLAPIENTRY * PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint box[]);
-
-#define glWindowRectanglesEXT GLEW_GET_FUN(__glewWindowRectanglesEXT)
-
-#define GLEW_EXT_window_rectangles GLEW_GET_VAR(__GLEW_EXT_window_rectangles)
-
-#endif /* GL_EXT_window_rectangles */
-
-/* ------------------------- GL_EXT_x11_sync_object ------------------------ */
-
-#ifndef GL_EXT_x11_sync_object
-#define GL_EXT_x11_sync_object 1
-
-#define GL_SYNC_X11_FENCE_EXT 0x90E1
-
-typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
-
-#define glImportSyncEXT GLEW_GET_FUN(__glewImportSyncEXT)
-
-#define GLEW_EXT_x11_sync_object GLEW_GET_VAR(__GLEW_EXT_x11_sync_object)
-
-#endif /* GL_EXT_x11_sync_object */
-
-/* ----------------------- GL_FJ_shader_binary_GCCSO ----------------------- */
-
-#ifndef GL_FJ_shader_binary_GCCSO
-#define GL_FJ_shader_binary_GCCSO 1
-
-#define GL_GCCSO_SHADER_BINARY_FJ 0x9260
-
-#define GLEW_FJ_shader_binary_GCCSO GLEW_GET_VAR(__GLEW_FJ_shader_binary_GCCSO)
-
-#endif /* GL_FJ_shader_binary_GCCSO */
-
-/* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */
-
-#ifndef GL_GREMEDY_frame_terminator
-#define GL_GREMEDY_frame_terminator 1
-
-typedef void (GLAPIENTRY * PFNGLFRAMETERMINATORGREMEDYPROC) (void);
-
-#define glFrameTerminatorGREMEDY GLEW_GET_FUN(__glewFrameTerminatorGREMEDY)
-
-#define GLEW_GREMEDY_frame_terminator GLEW_GET_VAR(__GLEW_GREMEDY_frame_terminator)
-
-#endif /* GL_GREMEDY_frame_terminator */
-
-/* ------------------------ GL_GREMEDY_string_marker ----------------------- */
-
-#ifndef GL_GREMEDY_string_marker
-#define GL_GREMEDY_string_marker 1
-
-typedef void (GLAPIENTRY * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void *string);
-
-#define glStringMarkerGREMEDY GLEW_GET_FUN(__glewStringMarkerGREMEDY)
-
-#define GLEW_GREMEDY_string_marker GLEW_GET_VAR(__GLEW_GREMEDY_string_marker)
-
-#endif /* GL_GREMEDY_string_marker */
-
-/* --------------------- GL_HP_convolution_border_modes -------------------- */
-
-#ifndef GL_HP_convolution_border_modes
-#define GL_HP_convolution_border_modes 1
-
-#define GLEW_HP_convolution_border_modes GLEW_GET_VAR(__GLEW_HP_convolution_border_modes)
-
-#endif /* GL_HP_convolution_border_modes */
-
-/* ------------------------- GL_HP_image_transform ------------------------- */
-
-#ifndef GL_HP_image_transform
-#define GL_HP_image_transform 1
-
-typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, const GLfloat param);
-typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, const GLint param);
-typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params);
-
-#define glGetImageTransformParameterfvHP GLEW_GET_FUN(__glewGetImageTransformParameterfvHP)
-#define glGetImageTransformParameterivHP GLEW_GET_FUN(__glewGetImageTransformParameterivHP)
-#define glImageTransformParameterfHP GLEW_GET_FUN(__glewImageTransformParameterfHP)
-#define glImageTransformParameterfvHP GLEW_GET_FUN(__glewImageTransformParameterfvHP)
-#define glImageTransformParameteriHP GLEW_GET_FUN(__glewImageTransformParameteriHP)
-#define glImageTransformParameterivHP GLEW_GET_FUN(__glewImageTransformParameterivHP)
-
-#define GLEW_HP_image_transform GLEW_GET_VAR(__GLEW_HP_image_transform)
-
-#endif /* GL_HP_image_transform */
-
-/* -------------------------- GL_HP_occlusion_test ------------------------- */
-
-#ifndef GL_HP_occlusion_test
-#define GL_HP_occlusion_test 1
-
-#define GLEW_HP_occlusion_test GLEW_GET_VAR(__GLEW_HP_occlusion_test)
-
-#endif /* GL_HP_occlusion_test */
-
-/* ------------------------- GL_HP_texture_lighting ------------------------ */
-
-#ifndef GL_HP_texture_lighting
-#define GL_HP_texture_lighting 1
-
-#define GLEW_HP_texture_lighting GLEW_GET_VAR(__GLEW_HP_texture_lighting)
-
-#endif /* GL_HP_texture_lighting */
-
-/* --------------------------- GL_IBM_cull_vertex -------------------------- */
-
-#ifndef GL_IBM_cull_vertex
-#define GL_IBM_cull_vertex 1
-
-#define GL_CULL_VERTEX_IBM 103050
-
-#define GLEW_IBM_cull_vertex GLEW_GET_VAR(__GLEW_IBM_cull_vertex)
-
-#endif /* GL_IBM_cull_vertex */
-
-/* ---------------------- GL_IBM_multimode_draw_arrays --------------------- */
-
-#ifndef GL_IBM_multimode_draw_arrays
-#define GL_IBM_multimode_draw_arrays 1
-
-typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum* mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
-typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum* mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei primcount, GLint modestride);
-
-#define glMultiModeDrawArraysIBM GLEW_GET_FUN(__glewMultiModeDrawArraysIBM)
-#define glMultiModeDrawElementsIBM GLEW_GET_FUN(__glewMultiModeDrawElementsIBM)
-
-#define GLEW_IBM_multimode_draw_arrays GLEW_GET_VAR(__GLEW_IBM_multimode_draw_arrays)
-
-#endif /* GL_IBM_multimode_draw_arrays */
-
-/* ------------------------- GL_IBM_rasterpos_clip ------------------------- */
-
-#ifndef GL_IBM_rasterpos_clip
-#define GL_IBM_rasterpos_clip 1
-
-#define GL_RASTER_POSITION_UNCLIPPED_IBM 103010
-
-#define GLEW_IBM_rasterpos_clip GLEW_GET_VAR(__GLEW_IBM_rasterpos_clip)
-
-#endif /* GL_IBM_rasterpos_clip */
-
-/* --------------------------- GL_IBM_static_data -------------------------- */
-
-#ifndef GL_IBM_static_data
-#define GL_IBM_static_data 1
-
-#define GL_ALL_STATIC_DATA_IBM 103060
-#define GL_STATIC_VERTEX_ARRAY_IBM 103061
-
-#define GLEW_IBM_static_data GLEW_GET_VAR(__GLEW_IBM_static_data)
-
-#endif /* GL_IBM_static_data */
-
-/* --------------------- GL_IBM_texture_mirrored_repeat -------------------- */
-
-#ifndef GL_IBM_texture_mirrored_repeat
-#define GL_IBM_texture_mirrored_repeat 1
-
-#define GL_MIRRORED_REPEAT_IBM 0x8370
-
-#define GLEW_IBM_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_IBM_texture_mirrored_repeat)
-
-#endif /* GL_IBM_texture_mirrored_repeat */
-
-/* ----------------------- GL_IBM_vertex_array_lists ----------------------- */
-
-#ifndef GL_IBM_vertex_array_lists
-#define GL_IBM_vertex_array_lists 1
-
-#define GL_VERTEX_ARRAY_LIST_IBM 103070
-#define GL_NORMAL_ARRAY_LIST_IBM 103071
-#define GL_COLOR_ARRAY_LIST_IBM 103072
-#define GL_INDEX_ARRAY_LIST_IBM 103073
-#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074
-#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075
-#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076
-#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077
-#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080
-#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081
-#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082
-#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083
-#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084
-#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085
-#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086
-#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087
-
-typedef void (GLAPIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride);
-typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean ** pointer, GLint ptrstride);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride);
-typedef void (GLAPIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride);
-typedef void (GLAPIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride);
-typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride);
-
-#define glColorPointerListIBM GLEW_GET_FUN(__glewColorPointerListIBM)
-#define glEdgeFlagPointerListIBM GLEW_GET_FUN(__glewEdgeFlagPointerListIBM)
-#define glFogCoordPointerListIBM GLEW_GET_FUN(__glewFogCoordPointerListIBM)
-#define glIndexPointerListIBM GLEW_GET_FUN(__glewIndexPointerListIBM)
-#define glNormalPointerListIBM GLEW_GET_FUN(__glewNormalPointerListIBM)
-#define glSecondaryColorPointerListIBM GLEW_GET_FUN(__glewSecondaryColorPointerListIBM)
-#define glTexCoordPointerListIBM GLEW_GET_FUN(__glewTexCoordPointerListIBM)
-#define glVertexPointerListIBM GLEW_GET_FUN(__glewVertexPointerListIBM)
-
-#define GLEW_IBM_vertex_array_lists GLEW_GET_VAR(__GLEW_IBM_vertex_array_lists)
-
-#endif /* GL_IBM_vertex_array_lists */
-
-/* ------------------------ GL_IMG_bindless_texture ------------------------ */
-
-#ifndef GL_IMG_bindless_texture
-#define GL_IMG_bindless_texture 1
-
-typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLEIMGPROC) (GLuint texture);
-typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLEIMGPROC) (GLuint texture, GLuint sampler);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC) (GLuint program, GLint location, GLuint64 value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values);
-typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64IMGPROC) (GLint location, GLuint64 value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VIMGPROC) (GLint location, GLsizei count, const GLuint64* value);
-
-#define glGetTextureHandleIMG GLEW_GET_FUN(__glewGetTextureHandleIMG)
-#define glGetTextureSamplerHandleIMG GLEW_GET_FUN(__glewGetTextureSamplerHandleIMG)
-#define glProgramUniformHandleui64IMG GLEW_GET_FUN(__glewProgramUniformHandleui64IMG)
-#define glProgramUniformHandleui64vIMG GLEW_GET_FUN(__glewProgramUniformHandleui64vIMG)
-#define glUniformHandleui64IMG GLEW_GET_FUN(__glewUniformHandleui64IMG)
-#define glUniformHandleui64vIMG GLEW_GET_FUN(__glewUniformHandleui64vIMG)
-
-#define GLEW_IMG_bindless_texture GLEW_GET_VAR(__GLEW_IMG_bindless_texture)
-
-#endif /* GL_IMG_bindless_texture */
-
-/* --------------------- GL_IMG_framebuffer_downsample --------------------- */
-
-#ifndef GL_IMG_framebuffer_downsample
-#define GL_IMG_framebuffer_downsample 1
-
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG 0x913C
-#define GL_NUM_DOWNSAMPLE_SCALES_IMG 0x913D
-#define GL_DOWNSAMPLE_SCALES_IMG 0x913E
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG 0x913F
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale);
-
-#define glFramebufferTexture2DDownsampleIMG GLEW_GET_FUN(__glewFramebufferTexture2DDownsampleIMG)
-#define glFramebufferTextureLayerDownsampleIMG GLEW_GET_FUN(__glewFramebufferTextureLayerDownsampleIMG)
-
-#define GLEW_IMG_framebuffer_downsample GLEW_GET_VAR(__GLEW_IMG_framebuffer_downsample)
-
-#endif /* GL_IMG_framebuffer_downsample */
-
-/* ----------------- GL_IMG_multisampled_render_to_texture ----------------- */
-
-#ifndef GL_IMG_multisampled_render_to_texture
-#define GL_IMG_multisampled_render_to_texture 1
-
-#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134
-#define GL_MAX_SAMPLES_IMG 0x9135
-#define GL_TEXTURE_SAMPLES_IMG 0x9136
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
-typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-
-#define glFramebufferTexture2DMultisampleIMG GLEW_GET_FUN(__glewFramebufferTexture2DMultisampleIMG)
-#define glRenderbufferStorageMultisampleIMG GLEW_GET_FUN(__glewRenderbufferStorageMultisampleIMG)
-
-#define GLEW_IMG_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_IMG_multisampled_render_to_texture)
-
-#endif /* GL_IMG_multisampled_render_to_texture */
-
-/* ------------------------- GL_IMG_program_binary ------------------------- */
-
-#ifndef GL_IMG_program_binary
-#define GL_IMG_program_binary 1
-
-#define GL_SGX_PROGRAM_BINARY_IMG 0x9130
-
-#define GLEW_IMG_program_binary GLEW_GET_VAR(__GLEW_IMG_program_binary)
-
-#endif /* GL_IMG_program_binary */
-
-/* --------------------------- GL_IMG_read_format -------------------------- */
-
-#ifndef GL_IMG_read_format
-#define GL_IMG_read_format 1
-
-#define GL_BGRA_IMG 0x80E1
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365
-
-#define GLEW_IMG_read_format GLEW_GET_VAR(__GLEW_IMG_read_format)
-
-#endif /* GL_IMG_read_format */
-
-/* -------------------------- GL_IMG_shader_binary ------------------------- */
-
-#ifndef GL_IMG_shader_binary
-#define GL_IMG_shader_binary 1
-
-#define GL_SGX_BINARY_IMG 0x8C0A
-
-#define GLEW_IMG_shader_binary GLEW_GET_VAR(__GLEW_IMG_shader_binary)
-
-#endif /* GL_IMG_shader_binary */
-
-/* -------------------- GL_IMG_texture_compression_pvrtc ------------------- */
-
-#ifndef GL_IMG_texture_compression_pvrtc
-#define GL_IMG_texture_compression_pvrtc 1
-
-#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00
-#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01
-#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02
-#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03
-
-#define GLEW_IMG_texture_compression_pvrtc GLEW_GET_VAR(__GLEW_IMG_texture_compression_pvrtc)
-
-#endif /* GL_IMG_texture_compression_pvrtc */
-
-/* ------------------- GL_IMG_texture_compression_pvrtc2 ------------------- */
-
-#ifndef GL_IMG_texture_compression_pvrtc2
-#define GL_IMG_texture_compression_pvrtc2 1
-
-#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137
-#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138
-
-#define GLEW_IMG_texture_compression_pvrtc2 GLEW_GET_VAR(__GLEW_IMG_texture_compression_pvrtc2)
-
-#endif /* GL_IMG_texture_compression_pvrtc2 */
-
-/* --------------- GL_IMG_texture_env_enhanced_fixed_function -------------- */
-
-#ifndef GL_IMG_texture_env_enhanced_fixed_function
-#define GL_IMG_texture_env_enhanced_fixed_function 1
-
-#define GL_DOT3_RGBA_IMG 0x86AF
-#define GL_MODULATE_COLOR_IMG 0x8C04
-#define GL_RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05
-#define GL_TEXTURE_ALPHA_MODULATE_IMG 0x8C06
-#define GL_FACTOR_ALPHA_MODULATE_IMG 0x8C07
-#define GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8C08
-#define GL_ADD_BLEND_IMG 0x8C09
-
-#define GLEW_IMG_texture_env_enhanced_fixed_function GLEW_GET_VAR(__GLEW_IMG_texture_env_enhanced_fixed_function)
-
-#endif /* GL_IMG_texture_env_enhanced_fixed_function */
-
-/* ---------------------- GL_IMG_texture_filter_cubic ---------------------- */
-
-#ifndef GL_IMG_texture_filter_cubic
-#define GL_IMG_texture_filter_cubic 1
-
-#define GL_CUBIC_IMG 0x9139
-#define GL_CUBIC_MIPMAP_NEAREST_IMG 0x913A
-#define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B
-
-#define GLEW_IMG_texture_filter_cubic GLEW_GET_VAR(__GLEW_IMG_texture_filter_cubic)
-
-#endif /* GL_IMG_texture_filter_cubic */
-
-/* -------------------------- GL_INGR_color_clamp -------------------------- */
-
-#ifndef GL_INGR_color_clamp
-#define GL_INGR_color_clamp 1
-
-#define GL_RED_MIN_CLAMP_INGR 0x8560
-#define GL_GREEN_MIN_CLAMP_INGR 0x8561
-#define GL_BLUE_MIN_CLAMP_INGR 0x8562
-#define GL_ALPHA_MIN_CLAMP_INGR 0x8563
-#define GL_RED_MAX_CLAMP_INGR 0x8564
-#define GL_GREEN_MAX_CLAMP_INGR 0x8565
-#define GL_BLUE_MAX_CLAMP_INGR 0x8566
-#define GL_ALPHA_MAX_CLAMP_INGR 0x8567
-
-#define GLEW_INGR_color_clamp GLEW_GET_VAR(__GLEW_INGR_color_clamp)
-
-#endif /* GL_INGR_color_clamp */
-
-/* ------------------------- GL_INGR_interlace_read ------------------------ */
-
-#ifndef GL_INGR_interlace_read
-#define GL_INGR_interlace_read 1
-
-#define GL_INTERLACE_READ_INGR 0x8568
-
-#define GLEW_INGR_interlace_read GLEW_GET_VAR(__GLEW_INGR_interlace_read)
-
-#endif /* GL_INGR_interlace_read */
-
-/* ----------------------- GL_INTEL_blackhole_render ----------------------- */
-
-#ifndef GL_INTEL_blackhole_render
-#define GL_INTEL_blackhole_render 1
-
-#define GL_BLACKHOLE_RENDER_INTEL 0x83FC
-
-#define GLEW_INTEL_blackhole_render GLEW_GET_VAR(__GLEW_INTEL_blackhole_render)
-
-#endif /* GL_INTEL_blackhole_render */
-
-/* ------------------ GL_INTEL_conservative_rasterization ------------------ */
-
-#ifndef GL_INTEL_conservative_rasterization
-#define GL_INTEL_conservative_rasterization 1
-
-#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
-
-#define GLEW_INTEL_conservative_rasterization GLEW_GET_VAR(__GLEW_INTEL_conservative_rasterization)
-
-#endif /* GL_INTEL_conservative_rasterization */
-
-/* ------------------- GL_INTEL_fragment_shader_ordering ------------------- */
-
-#ifndef GL_INTEL_fragment_shader_ordering
-#define GL_INTEL_fragment_shader_ordering 1
-
-#define GLEW_INTEL_fragment_shader_ordering GLEW_GET_VAR(__GLEW_INTEL_fragment_shader_ordering)
-
-#endif /* GL_INTEL_fragment_shader_ordering */
-
-/* ----------------------- GL_INTEL_framebuffer_CMAA ----------------------- */
-
-#ifndef GL_INTEL_framebuffer_CMAA
-#define GL_INTEL_framebuffer_CMAA 1
-
-#define GLEW_INTEL_framebuffer_CMAA GLEW_GET_VAR(__GLEW_INTEL_framebuffer_CMAA)
-
-#endif /* GL_INTEL_framebuffer_CMAA */
-
-/* -------------------------- GL_INTEL_map_texture ------------------------- */
-
-#ifndef GL_INTEL_map_texture
-#define GL_INTEL_map_texture 1
-
-#define GL_LAYOUT_DEFAULT_INTEL 0
-#define GL_LAYOUT_LINEAR_INTEL 1
-#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2
-#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF
-
-typedef void * (GLAPIENTRY * PFNGLMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level, GLbitfield access, GLint* stride, GLenum *layout);
-typedef void (GLAPIENTRY * PFNGLSYNCTEXTUREINTELPROC) (GLuint texture);
-typedef void (GLAPIENTRY * PFNGLUNMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level);
-
-#define glMapTexture2DINTEL GLEW_GET_FUN(__glewMapTexture2DINTEL)
-#define glSyncTextureINTEL GLEW_GET_FUN(__glewSyncTextureINTEL)
-#define glUnmapTexture2DINTEL GLEW_GET_FUN(__glewUnmapTexture2DINTEL)
-
-#define GLEW_INTEL_map_texture GLEW_GET_VAR(__GLEW_INTEL_map_texture)
-
-#endif /* GL_INTEL_map_texture */
-
-/* ------------------------ GL_INTEL_parallel_arrays ----------------------- */
-
-#ifndef GL_INTEL_parallel_arrays
-#define GL_INTEL_parallel_arrays 1
-
-#define GL_PARALLEL_ARRAYS_INTEL 0x83F4
-#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5
-#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6
-#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7
-#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8
-
-typedef void (GLAPIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer);
-typedef void (GLAPIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void** pointer);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer);
-typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer);
-
-#define glColorPointervINTEL GLEW_GET_FUN(__glewColorPointervINTEL)
-#define glNormalPointervINTEL GLEW_GET_FUN(__glewNormalPointervINTEL)
-#define glTexCoordPointervINTEL GLEW_GET_FUN(__glewTexCoordPointervINTEL)
-#define glVertexPointervINTEL GLEW_GET_FUN(__glewVertexPointervINTEL)
-
-#define GLEW_INTEL_parallel_arrays GLEW_GET_VAR(__GLEW_INTEL_parallel_arrays)
-
-#endif /* GL_INTEL_parallel_arrays */
-
-/* ----------------------- GL_INTEL_performance_query ---------------------- */
-
-#ifndef GL_INTEL_performance_query
-#define GL_INTEL_performance_query 1
-
-#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x0000
-#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x0001
-#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9
-#define GL_PERFQUERY_FLUSH_INTEL 0x83FA
-#define GL_PERFQUERY_WAIT_INTEL 0x83FB
-#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0
-#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1
-#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2
-#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3
-#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4
-#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5
-#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8
-#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9
-#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA
-#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB
-#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC
-#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD
-#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE
-#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF
-#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500
-
-typedef void (GLAPIENTRY * PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle);
-typedef void (GLAPIENTRY * PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint* queryHandle);
-typedef void (GLAPIENTRY * PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle);
-typedef void (GLAPIENTRY * PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle);
-typedef void (GLAPIENTRY * PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint* queryId);
-typedef void (GLAPIENTRY * PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint* nextQueryId);
-typedef void (GLAPIENTRY * PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar* counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue);
-typedef void (GLAPIENTRY * PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten);
-typedef void (GLAPIENTRY * PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar* queryName, GLuint *queryId);
-typedef void (GLAPIENTRY * PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar* queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask);
-
-#define glBeginPerfQueryINTEL GLEW_GET_FUN(__glewBeginPerfQueryINTEL)
-#define glCreatePerfQueryINTEL GLEW_GET_FUN(__glewCreatePerfQueryINTEL)
-#define glDeletePerfQueryINTEL GLEW_GET_FUN(__glewDeletePerfQueryINTEL)
-#define glEndPerfQueryINTEL GLEW_GET_FUN(__glewEndPerfQueryINTEL)
-#define glGetFirstPerfQueryIdINTEL GLEW_GET_FUN(__glewGetFirstPerfQueryIdINTEL)
-#define glGetNextPerfQueryIdINTEL GLEW_GET_FUN(__glewGetNextPerfQueryIdINTEL)
-#define glGetPerfCounterInfoINTEL GLEW_GET_FUN(__glewGetPerfCounterInfoINTEL)
-#define glGetPerfQueryDataINTEL GLEW_GET_FUN(__glewGetPerfQueryDataINTEL)
-#define glGetPerfQueryIdByNameINTEL GLEW_GET_FUN(__glewGetPerfQueryIdByNameINTEL)
-#define glGetPerfQueryInfoINTEL GLEW_GET_FUN(__glewGetPerfQueryInfoINTEL)
-
-#define GLEW_INTEL_performance_query GLEW_GET_VAR(__GLEW_INTEL_performance_query)
-
-#endif /* GL_INTEL_performance_query */
-
-/* ------------------- GL_INTEL_shader_integer_functions2 ------------------ */
-
-#ifndef GL_INTEL_shader_integer_functions2
-#define GL_INTEL_shader_integer_functions2 1
-
-#define GLEW_INTEL_shader_integer_functions2 GLEW_GET_VAR(__GLEW_INTEL_shader_integer_functions2)
-
-#endif /* GL_INTEL_shader_integer_functions2 */
-
-/* ------------------------ GL_INTEL_texture_scissor ----------------------- */
-
-#ifndef GL_INTEL_texture_scissor
-#define GL_INTEL_texture_scissor 1
-
-typedef void (GLAPIENTRY * PFNGLTEXSCISSORFUNCINTELPROC) (GLenum target, GLenum lfunc, GLenum hfunc);
-typedef void (GLAPIENTRY * PFNGLTEXSCISSORINTELPROC) (GLenum target, GLclampf tlow, GLclampf thigh);
-
-#define glTexScissorFuncINTEL GLEW_GET_FUN(__glewTexScissorFuncINTEL)
-#define glTexScissorINTEL GLEW_GET_FUN(__glewTexScissorINTEL)
-
-#define GLEW_INTEL_texture_scissor GLEW_GET_VAR(__GLEW_INTEL_texture_scissor)
-
-#endif /* GL_INTEL_texture_scissor */
-
-/* --------------------- GL_KHR_blend_equation_advanced -------------------- */
-
-#ifndef GL_KHR_blend_equation_advanced
-#define GL_KHR_blend_equation_advanced 1
-
-#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285
-#define GL_MULTIPLY_KHR 0x9294
-#define GL_SCREEN_KHR 0x9295
-#define GL_OVERLAY_KHR 0x9296
-#define GL_DARKEN_KHR 0x9297
-#define GL_LIGHTEN_KHR 0x9298
-#define GL_COLORDODGE_KHR 0x9299
-#define GL_COLORBURN_KHR 0x929A
-#define GL_HARDLIGHT_KHR 0x929B
-#define GL_SOFTLIGHT_KHR 0x929C
-#define GL_DIFFERENCE_KHR 0x929E
-#define GL_EXCLUSION_KHR 0x92A0
-#define GL_HSL_HUE_KHR 0x92AD
-#define GL_HSL_SATURATION_KHR 0x92AE
-#define GL_HSL_COLOR_KHR 0x92AF
-#define GL_HSL_LUMINOSITY_KHR 0x92B0
-
-typedef void (GLAPIENTRY * PFNGLBLENDBARRIERKHRPROC) (void);
-
-#define glBlendBarrierKHR GLEW_GET_FUN(__glewBlendBarrierKHR)
-
-#define GLEW_KHR_blend_equation_advanced GLEW_GET_VAR(__GLEW_KHR_blend_equation_advanced)
-
-#endif /* GL_KHR_blend_equation_advanced */
-
-/* ---------------- GL_KHR_blend_equation_advanced_coherent ---------------- */
-
-#ifndef GL_KHR_blend_equation_advanced_coherent
-#define GL_KHR_blend_equation_advanced_coherent 1
-
-#define GLEW_KHR_blend_equation_advanced_coherent GLEW_GET_VAR(__GLEW_KHR_blend_equation_advanced_coherent)
-
-#endif /* GL_KHR_blend_equation_advanced_coherent */
-
-/* ---------------------- GL_KHR_context_flush_control --------------------- */
-
-#ifndef GL_KHR_context_flush_control
-#define GL_KHR_context_flush_control 1
-
-#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB
-#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC
-
-#define GLEW_KHR_context_flush_control GLEW_GET_VAR(__GLEW_KHR_context_flush_control)
-
-#endif /* GL_KHR_context_flush_control */
-
-/* ------------------------------ GL_KHR_debug ----------------------------- */
-
-#ifndef GL_KHR_debug
-#define GL_KHR_debug 1
-
-#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
-#define GL_STACK_OVERFLOW 0x0503
-#define GL_STACK_UNDERFLOW 0x0504
-#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
-#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
-#define GL_DEBUG_CALLBACK_FUNCTION 0x8244
-#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
-#define GL_DEBUG_SOURCE_API 0x8246
-#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
-#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
-#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
-#define GL_DEBUG_SOURCE_APPLICATION 0x824A
-#define GL_DEBUG_SOURCE_OTHER 0x824B
-#define GL_DEBUG_TYPE_ERROR 0x824C
-#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
-#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
-#define GL_DEBUG_TYPE_PORTABILITY 0x824F
-#define GL_DEBUG_TYPE_PERFORMANCE 0x8250
-#define GL_DEBUG_TYPE_OTHER 0x8251
-#define GL_DEBUG_TYPE_MARKER 0x8268
-#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
-#define GL_DEBUG_TYPE_POP_GROUP 0x826A
-#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
-#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
-#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
-#define GL_BUFFER 0x82E0
-#define GL_SHADER 0x82E1
-#define GL_PROGRAM 0x82E2
-#define GL_QUERY 0x82E3
-#define GL_PROGRAM_PIPELINE 0x82E4
-#define GL_SAMPLER 0x82E6
-#define GL_DISPLAY_LIST 0x82E7
-#define GL_MAX_LABEL_LENGTH 0x82E8
-#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
-#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
-#define GL_DEBUG_LOGGED_MESSAGES 0x9145
-#define GL_DEBUG_SEVERITY_HIGH 0x9146
-#define GL_DEBUG_SEVERITY_MEDIUM 0x9147
-#define GL_DEBUG_SEVERITY_LOW 0x9148
-#define GL_DEBUG_OUTPUT 0x92E0
-
-typedef void (GLAPIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam);
-
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam);
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
-typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
-typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label);
-typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (void* ptr, GLsizei bufSize, GLsizei* length, GLchar *label);
-typedef void (GLAPIENTRY * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label);
-typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (void* ptr, GLsizei length, const GLchar* label);
-typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUPPROC) (void);
-typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar * message);
-
-#define glDebugMessageCallback GLEW_GET_FUN(__glewDebugMessageCallback)
-#define glDebugMessageControl GLEW_GET_FUN(__glewDebugMessageControl)
-#define glDebugMessageInsert GLEW_GET_FUN(__glewDebugMessageInsert)
-#define glGetDebugMessageLog GLEW_GET_FUN(__glewGetDebugMessageLog)
-#define glGetObjectLabel GLEW_GET_FUN(__glewGetObjectLabel)
-#define glGetObjectPtrLabel GLEW_GET_FUN(__glewGetObjectPtrLabel)
-#define glObjectLabel GLEW_GET_FUN(__glewObjectLabel)
-#define glObjectPtrLabel GLEW_GET_FUN(__glewObjectPtrLabel)
-#define glPopDebugGroup GLEW_GET_FUN(__glewPopDebugGroup)
-#define glPushDebugGroup GLEW_GET_FUN(__glewPushDebugGroup)
-
-#define GLEW_KHR_debug GLEW_GET_VAR(__GLEW_KHR_debug)
-
-#endif /* GL_KHR_debug */
-
-/* ---------------------------- GL_KHR_no_error ---------------------------- */
-
-#ifndef GL_KHR_no_error
-#define GL_KHR_no_error 1
-
-#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008
-
-#define GLEW_KHR_no_error GLEW_GET_VAR(__GLEW_KHR_no_error)
-
-#endif /* GL_KHR_no_error */
-
-/* --------------------- GL_KHR_parallel_shader_compile -------------------- */
-
-#ifndef GL_KHR_parallel_shader_compile
-#define GL_KHR_parallel_shader_compile 1
-
-#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0
-#define GL_COMPLETION_STATUS_KHR 0x91B1
-
-typedef void (GLAPIENTRY * PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count);
-
-#define glMaxShaderCompilerThreadsKHR GLEW_GET_FUN(__glewMaxShaderCompilerThreadsKHR)
-
-#define GLEW_KHR_parallel_shader_compile GLEW_GET_VAR(__GLEW_KHR_parallel_shader_compile)
-
-#endif /* GL_KHR_parallel_shader_compile */
-
-/* ------------------ GL_KHR_robust_buffer_access_behavior ----------------- */
-
-#ifndef GL_KHR_robust_buffer_access_behavior
-#define GL_KHR_robust_buffer_access_behavior 1
-
-#define GLEW_KHR_robust_buffer_access_behavior GLEW_GET_VAR(__GLEW_KHR_robust_buffer_access_behavior)
-
-#endif /* GL_KHR_robust_buffer_access_behavior */
-
-/* --------------------------- GL_KHR_robustness --------------------------- */
-
-#ifndef GL_KHR_robustness
-#define GL_KHR_robustness 1
-
-#define GL_CONTEXT_LOST 0x0507
-#define GL_LOSE_CONTEXT_ON_RESET 0x8252
-#define GL_GUILTY_CONTEXT_RESET 0x8253
-#define GL_INNOCENT_CONTEXT_RESET 0x8254
-#define GL_UNKNOWN_CONTEXT_RESET 0x8255
-#define GL_RESET_NOTIFICATION_STRATEGY 0x8256
-#define GL_NO_RESET_NOTIFICATION 0x8261
-#define GL_CONTEXT_ROBUST_ACCESS 0x90F3
-
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
-
-#define glGetnUniformfv GLEW_GET_FUN(__glewGetnUniformfv)
-#define glGetnUniformiv GLEW_GET_FUN(__glewGetnUniformiv)
-#define glGetnUniformuiv GLEW_GET_FUN(__glewGetnUniformuiv)
-#define glReadnPixels GLEW_GET_FUN(__glewReadnPixels)
-
-#define GLEW_KHR_robustness GLEW_GET_VAR(__GLEW_KHR_robustness)
-
-#endif /* GL_KHR_robustness */
-
-/* ------------------------- GL_KHR_shader_subgroup ------------------------ */
-
-#ifndef GL_KHR_shader_subgroup
-#define GL_KHR_shader_subgroup 1
-
-#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001
-#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002
-#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004
-#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008
-#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010
-#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020
-#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040
-#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080
-#define GL_SUBGROUP_SIZE_KHR 0x9532
-#define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533
-#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534
-#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535
-
-#define GLEW_KHR_shader_subgroup GLEW_GET_VAR(__GLEW_KHR_shader_subgroup)
-
-#endif /* GL_KHR_shader_subgroup */
-
-/* ------------------ GL_KHR_texture_compression_astc_hdr ------------------ */
-
-#ifndef GL_KHR_texture_compression_astc_hdr
-#define GL_KHR_texture_compression_astc_hdr 1
-
-#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
-#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
-#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
-#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
-#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
-#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
-#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
-#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
-#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
-#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
-#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
-#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
-#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
-#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
-#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0
-#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1
-#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2
-#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3
-#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4
-#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5
-#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6
-#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7
-#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8
-#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9
-
-#define GLEW_KHR_texture_compression_astc_hdr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_hdr)
-
-#endif /* GL_KHR_texture_compression_astc_hdr */
-
-/* ------------------ GL_KHR_texture_compression_astc_ldr ------------------ */
-
-#ifndef GL_KHR_texture_compression_astc_ldr
-#define GL_KHR_texture_compression_astc_ldr 1
-
-#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
-#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
-#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
-#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
-#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
-#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
-#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
-#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
-#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
-#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
-#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
-#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
-#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
-#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
-#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0
-#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1
-#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2
-#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3
-#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4
-#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5
-#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6
-#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7
-#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8
-#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9
-
-#define GLEW_KHR_texture_compression_astc_ldr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_ldr)
-
-#endif /* GL_KHR_texture_compression_astc_ldr */
-
-/* --------------- GL_KHR_texture_compression_astc_sliced_3d --------------- */
-
-#ifndef GL_KHR_texture_compression_astc_sliced_3d
-#define GL_KHR_texture_compression_astc_sliced_3d 1
-
-#define GLEW_KHR_texture_compression_astc_sliced_3d GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_sliced_3d)
-
-#endif /* GL_KHR_texture_compression_astc_sliced_3d */
-
-/* -------------------------- GL_KTX_buffer_region ------------------------- */
-
-#ifndef GL_KTX_buffer_region
-#define GL_KTX_buffer_region 1
-
-#define GL_KTX_FRONT_REGION 0x0
-#define GL_KTX_BACK_REGION 0x1
-#define GL_KTX_Z_REGION 0x2
-#define GL_KTX_STENCIL_REGION 0x3
-
-typedef GLuint (GLAPIENTRY * PFNGLBUFFERREGIONENABLEDPROC) (void);
-typedef void (GLAPIENTRY * PFNGLDELETEBUFFERREGIONPROC) (GLenum region);
-typedef void (GLAPIENTRY * PFNGLDRAWBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest);
-typedef GLuint (GLAPIENTRY * PFNGLNEWBUFFERREGIONPROC) (GLenum region);
-typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height);
-
-#define glBufferRegionEnabled GLEW_GET_FUN(__glewBufferRegionEnabled)
-#define glDeleteBufferRegion GLEW_GET_FUN(__glewDeleteBufferRegion)
-#define glDrawBufferRegion GLEW_GET_FUN(__glewDrawBufferRegion)
-#define glNewBufferRegion GLEW_GET_FUN(__glewNewBufferRegion)
-#define glReadBufferRegion GLEW_GET_FUN(__glewReadBufferRegion)
-
-#define GLEW_KTX_buffer_region GLEW_GET_VAR(__GLEW_KTX_buffer_region)
-
-#endif /* GL_KTX_buffer_region */
-
-/* ------------------------- GL_MESAX_texture_stack ------------------------ */
-
-#ifndef GL_MESAX_texture_stack
-#define GL_MESAX_texture_stack 1
-
-#define GL_TEXTURE_1D_STACK_MESAX 0x8759
-#define GL_TEXTURE_2D_STACK_MESAX 0x875A
-#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B
-#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C
-#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D
-#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E
-
-#define GLEW_MESAX_texture_stack GLEW_GET_VAR(__GLEW_MESAX_texture_stack)
-
-#endif /* GL_MESAX_texture_stack */
-
-/* ----------------------- GL_MESA_framebuffer_flip_y ---------------------- */
-
-#ifndef GL_MESA_framebuffer_flip_y
-#define GL_MESA_framebuffer_flip_y 1
-
-#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint* params);
-
-#define glFramebufferParameteriMESA GLEW_GET_FUN(__glewFramebufferParameteriMESA)
-#define glGetFramebufferParameterivMESA GLEW_GET_FUN(__glewGetFramebufferParameterivMESA)
-
-#define GLEW_MESA_framebuffer_flip_y GLEW_GET_VAR(__GLEW_MESA_framebuffer_flip_y)
-
-#endif /* GL_MESA_framebuffer_flip_y */
-
-/* -------------------------- GL_MESA_pack_invert -------------------------- */
-
-#ifndef GL_MESA_pack_invert
-#define GL_MESA_pack_invert 1
-
-#define GL_PACK_INVERT_MESA 0x8758
-
-#define GLEW_MESA_pack_invert GLEW_GET_VAR(__GLEW_MESA_pack_invert)
-
-#endif /* GL_MESA_pack_invert */
-
-/* --------------------- GL_MESA_program_binary_formats -------------------- */
-
-#ifndef GL_MESA_program_binary_formats
-#define GL_MESA_program_binary_formats 1
-
-#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F
-
-#define GLEW_MESA_program_binary_formats GLEW_GET_VAR(__GLEW_MESA_program_binary_formats)
-
-#endif /* GL_MESA_program_binary_formats */
-
-/* ------------------------- GL_MESA_resize_buffers ------------------------ */
-
-#ifndef GL_MESA_resize_buffers
-#define GL_MESA_resize_buffers 1
-
-typedef void (GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void);
-
-#define glResizeBuffersMESA GLEW_GET_FUN(__glewResizeBuffersMESA)
-
-#define GLEW_MESA_resize_buffers GLEW_GET_VAR(__GLEW_MESA_resize_buffers)
-
-#endif /* GL_MESA_resize_buffers */
-
-/* -------------------- GL_MESA_shader_integer_functions ------------------- */
-
-#ifndef GL_MESA_shader_integer_functions
-#define GL_MESA_shader_integer_functions 1
-
-#define GLEW_MESA_shader_integer_functions GLEW_GET_VAR(__GLEW_MESA_shader_integer_functions)
-
-#endif /* GL_MESA_shader_integer_functions */
-
-/* ----------------------- GL_MESA_tile_raster_order ----------------------- */
-
-#ifndef GL_MESA_tile_raster_order
-#define GL_MESA_tile_raster_order 1
-
-#define GLEW_MESA_tile_raster_order GLEW_GET_VAR(__GLEW_MESA_tile_raster_order)
-
-#endif /* GL_MESA_tile_raster_order */
-
-/* --------------------------- GL_MESA_window_pos -------------------------- */
-
-#ifndef GL_MESA_window_pos
-#define GL_MESA_window_pos 1
-
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint* p);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p);
-
-#define glWindowPos2dMESA GLEW_GET_FUN(__glewWindowPos2dMESA)
-#define glWindowPos2dvMESA GLEW_GET_FUN(__glewWindowPos2dvMESA)
-#define glWindowPos2fMESA GLEW_GET_FUN(__glewWindowPos2fMESA)
-#define glWindowPos2fvMESA GLEW_GET_FUN(__glewWindowPos2fvMESA)
-#define glWindowPos2iMESA GLEW_GET_FUN(__glewWindowPos2iMESA)
-#define glWindowPos2ivMESA GLEW_GET_FUN(__glewWindowPos2ivMESA)
-#define glWindowPos2sMESA GLEW_GET_FUN(__glewWindowPos2sMESA)
-#define glWindowPos2svMESA GLEW_GET_FUN(__glewWindowPos2svMESA)
-#define glWindowPos3dMESA GLEW_GET_FUN(__glewWindowPos3dMESA)
-#define glWindowPos3dvMESA GLEW_GET_FUN(__glewWindowPos3dvMESA)
-#define glWindowPos3fMESA GLEW_GET_FUN(__glewWindowPos3fMESA)
-#define glWindowPos3fvMESA GLEW_GET_FUN(__glewWindowPos3fvMESA)
-#define glWindowPos3iMESA GLEW_GET_FUN(__glewWindowPos3iMESA)
-#define glWindowPos3ivMESA GLEW_GET_FUN(__glewWindowPos3ivMESA)
-#define glWindowPos3sMESA GLEW_GET_FUN(__glewWindowPos3sMESA)
-#define glWindowPos3svMESA GLEW_GET_FUN(__glewWindowPos3svMESA)
-#define glWindowPos4dMESA GLEW_GET_FUN(__glewWindowPos4dMESA)
-#define glWindowPos4dvMESA GLEW_GET_FUN(__glewWindowPos4dvMESA)
-#define glWindowPos4fMESA GLEW_GET_FUN(__glewWindowPos4fMESA)
-#define glWindowPos4fvMESA GLEW_GET_FUN(__glewWindowPos4fvMESA)
-#define glWindowPos4iMESA GLEW_GET_FUN(__glewWindowPos4iMESA)
-#define glWindowPos4ivMESA GLEW_GET_FUN(__glewWindowPos4ivMESA)
-#define glWindowPos4sMESA GLEW_GET_FUN(__glewWindowPos4sMESA)
-#define glWindowPos4svMESA GLEW_GET_FUN(__glewWindowPos4svMESA)
-
-#define GLEW_MESA_window_pos GLEW_GET_VAR(__GLEW_MESA_window_pos)
-
-#endif /* GL_MESA_window_pos */
-
-/* ------------------------- GL_MESA_ycbcr_texture ------------------------- */
-
-#ifndef GL_MESA_ycbcr_texture
-#define GL_MESA_ycbcr_texture 1
-
-#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA
-#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB
-#define GL_YCBCR_MESA 0x8757
-
-#define GLEW_MESA_ycbcr_texture GLEW_GET_VAR(__GLEW_MESA_ycbcr_texture)
-
-#endif /* GL_MESA_ycbcr_texture */
-
-/* ----------- GL_NVX_blend_equation_advanced_multi_draw_buffers ----------- */
-
-#ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers
-#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1
-
-#define GLEW_NVX_blend_equation_advanced_multi_draw_buffers GLEW_GET_VAR(__GLEW_NVX_blend_equation_advanced_multi_draw_buffers)
-
-#endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */
-
-/* ----------------------- GL_NVX_conditional_render ----------------------- */
-
-#ifndef GL_NVX_conditional_render
-#define GL_NVX_conditional_render 1
-
-typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVXPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVXPROC) (void);
-
-#define glBeginConditionalRenderNVX GLEW_GET_FUN(__glewBeginConditionalRenderNVX)
-#define glEndConditionalRenderNVX GLEW_GET_FUN(__glewEndConditionalRenderNVX)
-
-#define GLEW_NVX_conditional_render GLEW_GET_VAR(__GLEW_NVX_conditional_render)
-
-#endif /* GL_NVX_conditional_render */
-
-/* ------------------------- GL_NVX_gpu_memory_info ------------------------ */
-
-#ifndef GL_NVX_gpu_memory_info
-#define GL_NVX_gpu_memory_info 1
-
-#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047
-#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
-#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
-#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A
-#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B
-
-#define GLEW_NVX_gpu_memory_info GLEW_GET_VAR(__GLEW_NVX_gpu_memory_info)
-
-#endif /* GL_NVX_gpu_memory_info */
-
-/* ------------------------- GL_NVX_gpu_multicast2 ------------------------- */
-
-#ifndef GL_NVX_gpu_multicast2
-#define GL_NVX_gpu_multicast2 1
-
-#define GL_UPLOAD_GPU_MASK_NVX 0x954A
-
-typedef GLsync (GLAPIENTRY * PFNGLASYNCCOPYBUFFERSUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint* waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray);
-typedef GLuint (GLAPIENTRY * PFNGLASYNCCOPYIMAGESUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint* waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray);
-typedef void (GLAPIENTRY * PFNGLMULTICASTSCISSORARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLint* v);
-typedef void (GLAPIENTRY * PFNGLMULTICASTVIEWPORTARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC) (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff);
-typedef void (GLAPIENTRY * PFNGLUPLOADGPUMASKNVXPROC) (GLbitfield mask);
-
-#define glAsyncCopyBufferSubDataNVX GLEW_GET_FUN(__glewAsyncCopyBufferSubDataNVX)
-#define glAsyncCopyImageSubDataNVX GLEW_GET_FUN(__glewAsyncCopyImageSubDataNVX)
-#define glMulticastScissorArrayvNVX GLEW_GET_FUN(__glewMulticastScissorArrayvNVX)
-#define glMulticastViewportArrayvNVX GLEW_GET_FUN(__glewMulticastViewportArrayvNVX)
-#define glMulticastViewportPositionWScaleNVX GLEW_GET_FUN(__glewMulticastViewportPositionWScaleNVX)
-#define glUploadGpuMaskNVX GLEW_GET_FUN(__glewUploadGpuMaskNVX)
-
-#define GLEW_NVX_gpu_multicast2 GLEW_GET_VAR(__GLEW_NVX_gpu_multicast2)
-
-#endif /* GL_NVX_gpu_multicast2 */
-
-/* ---------------------- GL_NVX_linked_gpu_multicast ---------------------- */
-
-#ifndef GL_NVX_linked_gpu_multicast
-#define GL_NVX_linked_gpu_multicast 1
-
-#define GL_LGPU_SEPARATE_STORAGE_BIT_NVX 0x0800
-#define GL_MAX_LGPU_GPUS_NVX 0x92BA
-
-typedef void (GLAPIENTRY * PFNGLLGPUCOPYIMAGESUBDATANVXPROC) (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
-typedef void (GLAPIENTRY * PFNGLLGPUINTERLOCKNVXPROC) (void);
-typedef void (GLAPIENTRY * PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
-
-#define glLGPUCopyImageSubDataNVX GLEW_GET_FUN(__glewLGPUCopyImageSubDataNVX)
-#define glLGPUInterlockNVX GLEW_GET_FUN(__glewLGPUInterlockNVX)
-#define glLGPUNamedBufferSubDataNVX GLEW_GET_FUN(__glewLGPUNamedBufferSubDataNVX)
-
-#define GLEW_NVX_linked_gpu_multicast GLEW_GET_VAR(__GLEW_NVX_linked_gpu_multicast)
-
-#endif /* GL_NVX_linked_gpu_multicast */
-
-/* ------------------------- GL_NVX_progress_fence ------------------------- */
-
-#ifndef GL_NVX_progress_fence
-#define GL_NVX_progress_fence 1
-
-typedef void (GLAPIENTRY * PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC) (GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray);
-typedef void (GLAPIENTRY * PFNGLSIGNALSEMAPHOREUI64NVXPROC) (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray);
-typedef void (GLAPIENTRY * PFNGLWAITSEMAPHOREUI64NVXPROC) (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray);
-
-#define glClientWaitSemaphoreui64NVX GLEW_GET_FUN(__glewClientWaitSemaphoreui64NVX)
-#define glSignalSemaphoreui64NVX GLEW_GET_FUN(__glewSignalSemaphoreui64NVX)
-#define glWaitSemaphoreui64NVX GLEW_GET_FUN(__glewWaitSemaphoreui64NVX)
-
-#define GLEW_NVX_progress_fence GLEW_GET_VAR(__GLEW_NVX_progress_fence)
-
-#endif /* GL_NVX_progress_fence */
-
-/* ------------------------ GL_NV_3dvision_settings ------------------------ */
-
-#ifndef GL_NV_3dvision_settings
-#define GL_NV_3dvision_settings 1
-
-#define GL_3DVISION_STEREO_NV 0x90F4
-#define GL_STEREO_SEPARATION_NV 0x90F5
-#define GL_STEREO_CONVERGENCE_NV 0x90F6
-#define GL_STEREO_CUTOFF_NV 0x90F7
-#define GL_STEREO_PROJECTION_NV 0x90F8
-#define GL_STEREO_PROJECTION_PERSPECTIVE_NV 0x90F9
-#define GL_STEREO_PROJECTION_ORTHO_NV 0x90FA
-
-typedef void (GLAPIENTRY * PFNGLSTEREOPARAMETERFNVPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLSTEREOPARAMETERINVPROC) (GLenum pname, GLint param);
-
-#define glStereoParameterfNV GLEW_GET_FUN(__glewStereoParameterfNV)
-#define glStereoParameteriNV GLEW_GET_FUN(__glewStereoParameteriNV)
-
-#define GLEW_NV_3dvision_settings GLEW_GET_VAR(__GLEW_NV_3dvision_settings)
-
-#endif /* GL_NV_3dvision_settings */
-
-/* ------------------- GL_NV_EGL_stream_consumer_external ------------------ */
-
-#ifndef GL_NV_EGL_stream_consumer_external
-#define GL_NV_EGL_stream_consumer_external 1
-
-#define GL_TEXTURE_EXTERNAL_OES 0x8D65
-#define GL_SAMPLER_EXTERNAL_OES 0x8D66
-#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
-#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
-
-#define GLEW_NV_EGL_stream_consumer_external GLEW_GET_VAR(__GLEW_NV_EGL_stream_consumer_external)
-
-#endif /* GL_NV_EGL_stream_consumer_external */
-
-/* ----------------- GL_NV_alpha_to_coverage_dither_control ---------------- */
-
-#ifndef GL_NV_alpha_to_coverage_dither_control
-#define GL_NV_alpha_to_coverage_dither_control 1
-
-#define GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV 0x92BF
-#define GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV 0x934D
-#define GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV 0x934E
-#define GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV 0x934F
-
-typedef void (GLAPIENTRY * PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC) (GLenum mode);
-
-#define glAlphaToCoverageDitherControlNV GLEW_GET_FUN(__glewAlphaToCoverageDitherControlNV)
-
-#define GLEW_NV_alpha_to_coverage_dither_control GLEW_GET_VAR(__GLEW_NV_alpha_to_coverage_dither_control)
-
-#endif /* GL_NV_alpha_to_coverage_dither_control */
-
-/* ------------------------------- GL_NV_bgr ------------------------------- */
-
-#ifndef GL_NV_bgr
-#define GL_NV_bgr 1
-
-#define GL_BGR_NV 0x80E0
-
-#define GLEW_NV_bgr GLEW_GET_VAR(__GLEW_NV_bgr)
-
-#endif /* GL_NV_bgr */
-
-/* ------------------- GL_NV_bindless_multi_draw_indirect ------------------ */
-
-#ifndef GL_NV_bindless_multi_draw_indirect
-#define GL_NV_bindless_multi_draw_indirect 1
-
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
-
-#define glMultiDrawArraysIndirectBindlessNV GLEW_GET_FUN(__glewMultiDrawArraysIndirectBindlessNV)
-#define glMultiDrawElementsIndirectBindlessNV GLEW_GET_FUN(__glewMultiDrawElementsIndirectBindlessNV)
-
-#define GLEW_NV_bindless_multi_draw_indirect GLEW_GET_VAR(__GLEW_NV_bindless_multi_draw_indirect)
-
-#endif /* GL_NV_bindless_multi_draw_indirect */
-
-/* ---------------- GL_NV_bindless_multi_draw_indirect_count --------------- */
-
-#ifndef GL_NV_bindless_multi_draw_indirect_count
-#define GL_NV_bindless_multi_draw_indirect_count 1
-
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, const void *indirect, GLintptr drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
-
-#define glMultiDrawArraysIndirectBindlessCountNV GLEW_GET_FUN(__glewMultiDrawArraysIndirectBindlessCountNV)
-#define glMultiDrawElementsIndirectBindlessCountNV GLEW_GET_FUN(__glewMultiDrawElementsIndirectBindlessCountNV)
-
-#define GLEW_NV_bindless_multi_draw_indirect_count GLEW_GET_VAR(__GLEW_NV_bindless_multi_draw_indirect_count)
-
-#endif /* GL_NV_bindless_multi_draw_indirect_count */
-
-/* ------------------------- GL_NV_bindless_texture ------------------------ */
-
-#ifndef GL_NV_bindless_texture
-#define GL_NV_bindless_texture 1
-
-typedef GLuint64 (GLAPIENTRY * PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
-typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture);
-typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler);
-typedef GLboolean (GLAPIENTRY * PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle);
-typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle);
-typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle);
-typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access);
-typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle);
-typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values);
-typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64* value);
-
-#define glGetImageHandleNV GLEW_GET_FUN(__glewGetImageHandleNV)
-#define glGetTextureHandleNV GLEW_GET_FUN(__glewGetTextureHandleNV)
-#define glGetTextureSamplerHandleNV GLEW_GET_FUN(__glewGetTextureSamplerHandleNV)
-#define glIsImageHandleResidentNV GLEW_GET_FUN(__glewIsImageHandleResidentNV)
-#define glIsTextureHandleResidentNV GLEW_GET_FUN(__glewIsTextureHandleResidentNV)
-#define glMakeImageHandleNonResidentNV GLEW_GET_FUN(__glewMakeImageHandleNonResidentNV)
-#define glMakeImageHandleResidentNV GLEW_GET_FUN(__glewMakeImageHandleResidentNV)
-#define glMakeTextureHandleNonResidentNV GLEW_GET_FUN(__glewMakeTextureHandleNonResidentNV)
-#define glMakeTextureHandleResidentNV GLEW_GET_FUN(__glewMakeTextureHandleResidentNV)
-#define glProgramUniformHandleui64NV GLEW_GET_FUN(__glewProgramUniformHandleui64NV)
-#define glProgramUniformHandleui64vNV GLEW_GET_FUN(__glewProgramUniformHandleui64vNV)
-#define glUniformHandleui64NV GLEW_GET_FUN(__glewUniformHandleui64NV)
-#define glUniformHandleui64vNV GLEW_GET_FUN(__glewUniformHandleui64vNV)
-
-#define GLEW_NV_bindless_texture GLEW_GET_VAR(__GLEW_NV_bindless_texture)
-
-#endif /* GL_NV_bindless_texture */
-
-/* --------------------- GL_NV_blend_equation_advanced --------------------- */
-
-#ifndef GL_NV_blend_equation_advanced
-#define GL_NV_blend_equation_advanced 1
-
-#define GL_XOR_NV 0x1506
-#define GL_RED_NV 0x1903
-#define GL_GREEN_NV 0x1904
-#define GL_BLUE_NV 0x1905
-#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280
-#define GL_BLEND_OVERLAP_NV 0x9281
-#define GL_UNCORRELATED_NV 0x9282
-#define GL_DISJOINT_NV 0x9283
-#define GL_CONJOINT_NV 0x9284
-#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
-#define GL_SRC_NV 0x9286
-#define GL_DST_NV 0x9287
-#define GL_SRC_OVER_NV 0x9288
-#define GL_DST_OVER_NV 0x9289
-#define GL_SRC_IN_NV 0x928A
-#define GL_DST_IN_NV 0x928B
-#define GL_SRC_OUT_NV 0x928C
-#define GL_DST_OUT_NV 0x928D
-#define GL_SRC_ATOP_NV 0x928E
-#define GL_DST_ATOP_NV 0x928F
-#define GL_PLUS_NV 0x9291
-#define GL_PLUS_DARKER_NV 0x9292
-#define GL_MULTIPLY_NV 0x9294
-#define GL_SCREEN_NV 0x9295
-#define GL_OVERLAY_NV 0x9296
-#define GL_DARKEN_NV 0x9297
-#define GL_LIGHTEN_NV 0x9298
-#define GL_COLORDODGE_NV 0x9299
-#define GL_COLORBURN_NV 0x929A
-#define GL_HARDLIGHT_NV 0x929B
-#define GL_SOFTLIGHT_NV 0x929C
-#define GL_DIFFERENCE_NV 0x929E
-#define GL_MINUS_NV 0x929F
-#define GL_EXCLUSION_NV 0x92A0
-#define GL_CONTRAST_NV 0x92A1
-#define GL_INVERT_RGB_NV 0x92A3
-#define GL_LINEARDODGE_NV 0x92A4
-#define GL_LINEARBURN_NV 0x92A5
-#define GL_VIVIDLIGHT_NV 0x92A6
-#define GL_LINEARLIGHT_NV 0x92A7
-#define GL_PINLIGHT_NV 0x92A8
-#define GL_HARDMIX_NV 0x92A9
-#define GL_HSL_HUE_NV 0x92AD
-#define GL_HSL_SATURATION_NV 0x92AE
-#define GL_HSL_COLOR_NV 0x92AF
-#define GL_HSL_LUMINOSITY_NV 0x92B0
-#define GL_PLUS_CLAMPED_NV 0x92B1
-#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2
-#define GL_MINUS_CLAMPED_NV 0x92B3
-#define GL_INVERT_OVG_NV 0x92B4
-
-typedef void (GLAPIENTRY * PFNGLBLENDBARRIERNVPROC) (void);
-typedef void (GLAPIENTRY * PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value);
-
-#define glBlendBarrierNV GLEW_GET_FUN(__glewBlendBarrierNV)
-#define glBlendParameteriNV GLEW_GET_FUN(__glewBlendParameteriNV)
-
-#define GLEW_NV_blend_equation_advanced GLEW_GET_VAR(__GLEW_NV_blend_equation_advanced)
-
-#endif /* GL_NV_blend_equation_advanced */
-
-/* ----------------- GL_NV_blend_equation_advanced_coherent ---------------- */
-
-#ifndef GL_NV_blend_equation_advanced_coherent
-#define GL_NV_blend_equation_advanced_coherent 1
-
-#define GLEW_NV_blend_equation_advanced_coherent GLEW_GET_VAR(__GLEW_NV_blend_equation_advanced_coherent)
-
-#endif /* GL_NV_blend_equation_advanced_coherent */
-
-/* ----------------------- GL_NV_blend_minmax_factor ----------------------- */
-
-#ifndef GL_NV_blend_minmax_factor
-#define GL_NV_blend_minmax_factor 1
-
-#define GL_FACTOR_MIN_AMD 0x901C
-#define GL_FACTOR_MAX_AMD 0x901D
-
-#define GLEW_NV_blend_minmax_factor GLEW_GET_VAR(__GLEW_NV_blend_minmax_factor)
-
-#endif /* GL_NV_blend_minmax_factor */
-
-/* --------------------------- GL_NV_blend_square -------------------------- */
-
-#ifndef GL_NV_blend_square
-#define GL_NV_blend_square 1
-
-#define GLEW_NV_blend_square GLEW_GET_VAR(__GLEW_NV_blend_square)
-
-#endif /* GL_NV_blend_square */
-
-/* ----------------------- GL_NV_clip_space_w_scaling ---------------------- */
-
-#ifndef GL_NV_clip_space_w_scaling
-#define GL_NV_clip_space_w_scaling 1
-
-#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C
-#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D
-#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E
-
-typedef void (GLAPIENTRY * PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff);
-
-#define glViewportPositionWScaleNV GLEW_GET_FUN(__glewViewportPositionWScaleNV)
-
-#define GLEW_NV_clip_space_w_scaling GLEW_GET_VAR(__GLEW_NV_clip_space_w_scaling)
-
-#endif /* GL_NV_clip_space_w_scaling */
-
-/* --------------------------- GL_NV_command_list -------------------------- */
-
-#ifndef GL_NV_command_list
-#define GL_NV_command_list 1
-
-#define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000
-#define GL_NOP_COMMAND_NV 0x0001
-#define GL_DRAW_ELEMENTS_COMMAND_NV 0x0002
-#define GL_DRAW_ARRAYS_COMMAND_NV 0x0003
-#define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV 0x0004
-#define GL_DRAW_ARRAYS_STRIP_COMMAND_NV 0x0005
-#define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV 0x0006
-#define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV 0x0007
-#define GL_ELEMENT_ADDRESS_COMMAND_NV 0x0008
-#define GL_ATTRIBUTE_ADDRESS_COMMAND_NV 0x0009
-#define GL_UNIFORM_ADDRESS_COMMAND_NV 0x000a
-#define GL_BLEND_COLOR_COMMAND_NV 0x000b
-#define GL_STENCIL_REF_COMMAND_NV 0x000c
-#define GL_LINE_WIDTH_COMMAND_NV 0x000d
-#define GL_POLYGON_OFFSET_COMMAND_NV 0x000e
-#define GL_ALPHA_REF_COMMAND_NV 0x000f
-#define GL_VIEWPORT_COMMAND_NV 0x0010
-#define GL_SCISSOR_COMMAND_NV 0x0011
-#define GL_FRONT_FACE_COMMAND_NV 0x0012
-
-typedef void (GLAPIENTRY * PFNGLCALLCOMMANDLISTNVPROC) (GLuint list);
-typedef void (GLAPIENTRY * PFNGLCOMMANDLISTSEGMENTSNVPROC) (GLuint list, GLuint segments);
-typedef void (GLAPIENTRY * PFNGLCOMPILECOMMANDLISTNVPROC) (GLuint list);
-typedef void (GLAPIENTRY * PFNGLCREATECOMMANDLISTSNVPROC) (GLsizei n, GLuint* lists);
-typedef void (GLAPIENTRY * PFNGLCREATESTATESNVPROC) (GLsizei n, GLuint* states);
-typedef void (GLAPIENTRY * PFNGLDELETECOMMANDLISTSNVPROC) (GLsizei n, const GLuint* lists);
-typedef void (GLAPIENTRY * PFNGLDELETESTATESNVPROC) (GLsizei n, const GLuint* states);
-typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSADDRESSNVPROC) (GLenum primitiveMode, const GLuint64* indirects, const GLsizei* sizes, GLuint count);
-typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSNVPROC) (GLenum primitiveMode, GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, GLuint count);
-typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC) (const GLuint64* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count);
-typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSSTATESNVPROC) (GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count);
-typedef GLuint (GLAPIENTRY * PFNGLGETCOMMANDHEADERNVPROC) (GLenum tokenID, GLuint size);
-typedef GLushort (GLAPIENTRY * PFNGLGETSTAGEINDEXNVPROC) (GLenum shadertype);
-typedef GLboolean (GLAPIENTRY * PFNGLISCOMMANDLISTNVPROC) (GLuint list);
-typedef GLboolean (GLAPIENTRY * PFNGLISSTATENVPROC) (GLuint state);
-typedef void (GLAPIENTRY * PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC) (GLuint list, GLuint segment, const void** indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count);
-typedef void (GLAPIENTRY * PFNGLSTATECAPTURENVPROC) (GLuint state, GLenum mode);
-
-#define glCallCommandListNV GLEW_GET_FUN(__glewCallCommandListNV)
-#define glCommandListSegmentsNV GLEW_GET_FUN(__glewCommandListSegmentsNV)
-#define glCompileCommandListNV GLEW_GET_FUN(__glewCompileCommandListNV)
-#define glCreateCommandListsNV GLEW_GET_FUN(__glewCreateCommandListsNV)
-#define glCreateStatesNV GLEW_GET_FUN(__glewCreateStatesNV)
-#define glDeleteCommandListsNV GLEW_GET_FUN(__glewDeleteCommandListsNV)
-#define glDeleteStatesNV GLEW_GET_FUN(__glewDeleteStatesNV)
-#define glDrawCommandsAddressNV GLEW_GET_FUN(__glewDrawCommandsAddressNV)
-#define glDrawCommandsNV GLEW_GET_FUN(__glewDrawCommandsNV)
-#define glDrawCommandsStatesAddressNV GLEW_GET_FUN(__glewDrawCommandsStatesAddressNV)
-#define glDrawCommandsStatesNV GLEW_GET_FUN(__glewDrawCommandsStatesNV)
-#define glGetCommandHeaderNV GLEW_GET_FUN(__glewGetCommandHeaderNV)
-#define glGetStageIndexNV GLEW_GET_FUN(__glewGetStageIndexNV)
-#define glIsCommandListNV GLEW_GET_FUN(__glewIsCommandListNV)
-#define glIsStateNV GLEW_GET_FUN(__glewIsStateNV)
-#define glListDrawCommandsStatesClientNV GLEW_GET_FUN(__glewListDrawCommandsStatesClientNV)
-#define glStateCaptureNV GLEW_GET_FUN(__glewStateCaptureNV)
-
-#define GLEW_NV_command_list GLEW_GET_VAR(__GLEW_NV_command_list)
-
-#endif /* GL_NV_command_list */
-
-/* ------------------------- GL_NV_compute_program5 ------------------------ */
-
-#ifndef GL_NV_compute_program5
-#define GL_NV_compute_program5 1
-
-#define GL_COMPUTE_PROGRAM_NV 0x90FB
-#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC
-
-#define GLEW_NV_compute_program5 GLEW_GET_VAR(__GLEW_NV_compute_program5)
-
-#endif /* GL_NV_compute_program5 */
-
-/* -------------------- GL_NV_compute_shader_derivatives ------------------- */
-
-#ifndef GL_NV_compute_shader_derivatives
-#define GL_NV_compute_shader_derivatives 1
-
-#define GLEW_NV_compute_shader_derivatives GLEW_GET_VAR(__GLEW_NV_compute_shader_derivatives)
-
-#endif /* GL_NV_compute_shader_derivatives */
-
-/* ------------------------ GL_NV_conditional_render ----------------------- */
-
-#ifndef GL_NV_conditional_render
-#define GL_NV_conditional_render 1
-
-#define GL_QUERY_WAIT_NV 0x8E13
-#define GL_QUERY_NO_WAIT_NV 0x8E14
-#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15
-#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16
-
-typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVPROC) (void);
-
-#define glBeginConditionalRenderNV GLEW_GET_FUN(__glewBeginConditionalRenderNV)
-#define glEndConditionalRenderNV GLEW_GET_FUN(__glewEndConditionalRenderNV)
-
-#define GLEW_NV_conditional_render GLEW_GET_VAR(__GLEW_NV_conditional_render)
-
-#endif /* GL_NV_conditional_render */
-
-/* ----------------------- GL_NV_conservative_raster ----------------------- */
-
-#ifndef GL_NV_conservative_raster
-#define GL_NV_conservative_raster 1
-
-#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346
-#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347
-#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348
-#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349
-
-typedef void (GLAPIENTRY * PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits);
-
-#define glSubpixelPrecisionBiasNV GLEW_GET_FUN(__glewSubpixelPrecisionBiasNV)
-
-#define GLEW_NV_conservative_raster GLEW_GET_VAR(__GLEW_NV_conservative_raster)
-
-#endif /* GL_NV_conservative_raster */
-
-/* -------------------- GL_NV_conservative_raster_dilate ------------------- */
-
-#ifndef GL_NV_conservative_raster_dilate
-#define GL_NV_conservative_raster_dilate 1
-
-#define GL_CONSERVATIVE_RASTER_DILATE_NV 0x9379
-#define GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV 0x937A
-#define GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV 0x937B
-
-typedef void (GLAPIENTRY * PFNGLCONSERVATIVERASTERPARAMETERFNVPROC) (GLenum pname, GLfloat value);
-
-#define glConservativeRasterParameterfNV GLEW_GET_FUN(__glewConservativeRasterParameterfNV)
-
-#define GLEW_NV_conservative_raster_dilate GLEW_GET_VAR(__GLEW_NV_conservative_raster_dilate)
-
-#endif /* GL_NV_conservative_raster_dilate */
-
-/* ------------------- GL_NV_conservative_raster_pre_snap ------------------ */
-
-#ifndef GL_NV_conservative_raster_pre_snap
-#define GL_NV_conservative_raster_pre_snap 1
-
-#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550
-
-#define GLEW_NV_conservative_raster_pre_snap GLEW_GET_VAR(__GLEW_NV_conservative_raster_pre_snap)
-
-#endif /* GL_NV_conservative_raster_pre_snap */
-
-/* -------------- GL_NV_conservative_raster_pre_snap_triangles ------------- */
-
-#ifndef GL_NV_conservative_raster_pre_snap_triangles
-#define GL_NV_conservative_raster_pre_snap_triangles 1
-
-#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D
-#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E
-#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F
-
-typedef void (GLAPIENTRY * PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param);
-
-#define glConservativeRasterParameteriNV GLEW_GET_FUN(__glewConservativeRasterParameteriNV)
-
-#define GLEW_NV_conservative_raster_pre_snap_triangles GLEW_GET_VAR(__GLEW_NV_conservative_raster_pre_snap_triangles)
-
-#endif /* GL_NV_conservative_raster_pre_snap_triangles */
-
-/* --------------- GL_NV_conservative_raster_underestimation --------------- */
-
-#ifndef GL_NV_conservative_raster_underestimation
-#define GL_NV_conservative_raster_underestimation 1
-
-#define GLEW_NV_conservative_raster_underestimation GLEW_GET_VAR(__GLEW_NV_conservative_raster_underestimation)
-
-#endif /* GL_NV_conservative_raster_underestimation */
-
-/* --------------------------- GL_NV_copy_buffer --------------------------- */
-
-#ifndef GL_NV_copy_buffer
-#define GL_NV_copy_buffer 1
-
-#define GL_COPY_READ_BUFFER_NV 0x8F36
-#define GL_COPY_WRITE_BUFFER_NV 0x8F37
-
-typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATANVPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);
-
-#define glCopyBufferSubDataNV GLEW_GET_FUN(__glewCopyBufferSubDataNV)
-
-#define GLEW_NV_copy_buffer GLEW_GET_VAR(__GLEW_NV_copy_buffer)
-
-#endif /* GL_NV_copy_buffer */
-
-/* ----------------------- GL_NV_copy_depth_to_color ----------------------- */
-
-#ifndef GL_NV_copy_depth_to_color
-#define GL_NV_copy_depth_to_color 1
-
-#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
-#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F
-
-#define GLEW_NV_copy_depth_to_color GLEW_GET_VAR(__GLEW_NV_copy_depth_to_color)
-
-#endif /* GL_NV_copy_depth_to_color */
-
-/* ---------------------------- GL_NV_copy_image --------------------------- */
-
-#ifndef GL_NV_copy_image
-#define GL_NV_copy_image 1
-
-typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
-
-#define glCopyImageSubDataNV GLEW_GET_FUN(__glewCopyImageSubDataNV)
-
-#define GLEW_NV_copy_image GLEW_GET_VAR(__GLEW_NV_copy_image)
-
-#endif /* GL_NV_copy_image */
-
-/* -------------------------- GL_NV_deep_texture3D ------------------------- */
-
-#ifndef GL_NV_deep_texture3D
-#define GL_NV_deep_texture3D 1
-
-#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0
-#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1
-
-#define GLEW_NV_deep_texture3D GLEW_GET_VAR(__GLEW_NV_deep_texture3D)
-
-#endif /* GL_NV_deep_texture3D */
-
-/* ------------------------ GL_NV_depth_buffer_float ----------------------- */
-
-#ifndef GL_NV_depth_buffer_float
-#define GL_NV_depth_buffer_float 1
-
-#define GL_DEPTH_COMPONENT32F_NV 0x8DAB
-#define GL_DEPTH32F_STENCIL8_NV 0x8DAC
-#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD
-#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF
-
-typedef void (GLAPIENTRY * PFNGLCLEARDEPTHDNVPROC) (GLdouble depth);
-typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax);
-typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar);
-
-#define glClearDepthdNV GLEW_GET_FUN(__glewClearDepthdNV)
-#define glDepthBoundsdNV GLEW_GET_FUN(__glewDepthBoundsdNV)
-#define glDepthRangedNV GLEW_GET_FUN(__glewDepthRangedNV)
-
-#define GLEW_NV_depth_buffer_float GLEW_GET_VAR(__GLEW_NV_depth_buffer_float)
-
-#endif /* GL_NV_depth_buffer_float */
-
-/* --------------------------- GL_NV_depth_clamp --------------------------- */
-
-#ifndef GL_NV_depth_clamp
-#define GL_NV_depth_clamp 1
-
-#define GL_DEPTH_CLAMP_NV 0x864F
-
-#define GLEW_NV_depth_clamp GLEW_GET_VAR(__GLEW_NV_depth_clamp)
-
-#endif /* GL_NV_depth_clamp */
-
-/* ------------------------- GL_NV_depth_nonlinear ------------------------- */
-
-#ifndef GL_NV_depth_nonlinear
-#define GL_NV_depth_nonlinear 1
-
-#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C
-
-#define GLEW_NV_depth_nonlinear GLEW_GET_VAR(__GLEW_NV_depth_nonlinear)
-
-#endif /* GL_NV_depth_nonlinear */
-
-/* ---------------------- GL_NV_depth_range_unclamped ---------------------- */
-
-#ifndef GL_NV_depth_range_unclamped
-#define GL_NV_depth_range_unclamped 1
-
-#define GL_SAMPLE_COUNT_BITS_NV 0x8864
-#define GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865
-#define GL_QUERY_RESULT_NV 0x8866
-#define GL_QUERY_RESULT_AVAILABLE_NV 0x8867
-#define GL_SAMPLE_COUNT_NV 0x8914
-
-#define GLEW_NV_depth_range_unclamped GLEW_GET_VAR(__GLEW_NV_depth_range_unclamped)
-
-#endif /* GL_NV_depth_range_unclamped */
-
-/* --------------------------- GL_NV_draw_buffers -------------------------- */
-
-#ifndef GL_NV_draw_buffers
-#define GL_NV_draw_buffers 1
-
-#define GL_MAX_DRAW_BUFFERS_NV 0x8824
-#define GL_DRAW_BUFFER0_NV 0x8825
-#define GL_DRAW_BUFFER1_NV 0x8826
-#define GL_DRAW_BUFFER2_NV 0x8827
-#define GL_DRAW_BUFFER3_NV 0x8828
-#define GL_DRAW_BUFFER4_NV 0x8829
-#define GL_DRAW_BUFFER5_NV 0x882A
-#define GL_DRAW_BUFFER6_NV 0x882B
-#define GL_DRAW_BUFFER7_NV 0x882C
-#define GL_DRAW_BUFFER8_NV 0x882D
-#define GL_DRAW_BUFFER9_NV 0x882E
-#define GL_DRAW_BUFFER10_NV 0x882F
-#define GL_DRAW_BUFFER11_NV 0x8830
-#define GL_DRAW_BUFFER12_NV 0x8831
-#define GL_DRAW_BUFFER13_NV 0x8832
-#define GL_DRAW_BUFFER14_NV 0x8833
-#define GL_DRAW_BUFFER15_NV 0x8834
-#define GL_COLOR_ATTACHMENT0_NV 0x8CE0
-#define GL_COLOR_ATTACHMENT1_NV 0x8CE1
-#define GL_COLOR_ATTACHMENT2_NV 0x8CE2
-#define GL_COLOR_ATTACHMENT3_NV 0x8CE3
-#define GL_COLOR_ATTACHMENT4_NV 0x8CE4
-#define GL_COLOR_ATTACHMENT5_NV 0x8CE5
-#define GL_COLOR_ATTACHMENT6_NV 0x8CE6
-#define GL_COLOR_ATTACHMENT7_NV 0x8CE7
-#define GL_COLOR_ATTACHMENT8_NV 0x8CE8
-#define GL_COLOR_ATTACHMENT9_NV 0x8CE9
-#define GL_COLOR_ATTACHMENT10_NV 0x8CEA
-#define GL_COLOR_ATTACHMENT11_NV 0x8CEB
-#define GL_COLOR_ATTACHMENT12_NV 0x8CEC
-#define GL_COLOR_ATTACHMENT13_NV 0x8CED
-#define GL_COLOR_ATTACHMENT14_NV 0x8CEE
-#define GL_COLOR_ATTACHMENT15_NV 0x8CEF
-
-typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum* bufs);
-
-#define glDrawBuffersNV GLEW_GET_FUN(__glewDrawBuffersNV)
-
-#define GLEW_NV_draw_buffers GLEW_GET_VAR(__GLEW_NV_draw_buffers)
-
-#endif /* GL_NV_draw_buffers */
-
-/* -------------------------- GL_NV_draw_instanced ------------------------- */
-
-#ifndef GL_NV_draw_instanced
-#define GL_NV_draw_instanced 1
-
-typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
-
-#define glDrawArraysInstancedNV GLEW_GET_FUN(__glewDrawArraysInstancedNV)
-#define glDrawElementsInstancedNV GLEW_GET_FUN(__glewDrawElementsInstancedNV)
-
-#define GLEW_NV_draw_instanced GLEW_GET_VAR(__GLEW_NV_draw_instanced)
-
-#endif /* GL_NV_draw_instanced */
-
-/* --------------------------- GL_NV_draw_texture -------------------------- */
-
-#ifndef GL_NV_draw_texture
-#define GL_NV_draw_texture 1
-
-typedef void (GLAPIENTRY * PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
-
-#define glDrawTextureNV GLEW_GET_FUN(__glewDrawTextureNV)
-
-#define GLEW_NV_draw_texture GLEW_GET_VAR(__GLEW_NV_draw_texture)
-
-#endif /* GL_NV_draw_texture */
-
-/* ------------------------ GL_NV_draw_vulkan_image ------------------------ */
-
-#ifndef GL_NV_draw_vulkan_image
-#define GL_NV_draw_vulkan_image 1
-
-typedef void (APIENTRY *GLVULKANPROCNV)(void);
-
-typedef void (GLAPIENTRY * PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
-typedef GLVULKANPROCNV (GLAPIENTRY * PFNGLGETVKPROCADDRNVPROC) (const GLchar* name);
-typedef void (GLAPIENTRY * PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence);
-typedef void (GLAPIENTRY * PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore);
-typedef void (GLAPIENTRY * PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore);
-
-#define glDrawVkImageNV GLEW_GET_FUN(__glewDrawVkImageNV)
-#define glGetVkProcAddrNV GLEW_GET_FUN(__glewGetVkProcAddrNV)
-#define glSignalVkFenceNV GLEW_GET_FUN(__glewSignalVkFenceNV)
-#define glSignalVkSemaphoreNV GLEW_GET_FUN(__glewSignalVkSemaphoreNV)
-#define glWaitVkSemaphoreNV GLEW_GET_FUN(__glewWaitVkSemaphoreNV)
-
-#define GLEW_NV_draw_vulkan_image GLEW_GET_VAR(__GLEW_NV_draw_vulkan_image)
-
-#endif /* GL_NV_draw_vulkan_image */
-
-/* ---------------------------- GL_NV_evaluators --------------------------- */
-
-#ifndef GL_NV_evaluators
-#define GL_NV_evaluators 1
-
-#define GL_EVAL_2D_NV 0x86C0
-#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1
-#define GL_MAP_TESSELLATION_NV 0x86C2
-#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3
-#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4
-#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5
-#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6
-#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7
-#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8
-#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9
-#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA
-#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB
-#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC
-#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD
-#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE
-#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF
-#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0
-#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1
-#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2
-#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3
-#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4
-#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5
-#define GL_MAX_MAP_TESSELLATION_NV 0x86D6
-#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7
-
-typedef void (GLAPIENTRY * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points);
-typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points);
-typedef void (GLAPIENTRY * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint* params);
-
-#define glEvalMapsNV GLEW_GET_FUN(__glewEvalMapsNV)
-#define glGetMapAttribParameterfvNV GLEW_GET_FUN(__glewGetMapAttribParameterfvNV)
-#define glGetMapAttribParameterivNV GLEW_GET_FUN(__glewGetMapAttribParameterivNV)
-#define glGetMapControlPointsNV GLEW_GET_FUN(__glewGetMapControlPointsNV)
-#define glGetMapParameterfvNV GLEW_GET_FUN(__glewGetMapParameterfvNV)
-#define glGetMapParameterivNV GLEW_GET_FUN(__glewGetMapParameterivNV)
-#define glMapControlPointsNV GLEW_GET_FUN(__glewMapControlPointsNV)
-#define glMapParameterfvNV GLEW_GET_FUN(__glewMapParameterfvNV)
-#define glMapParameterivNV GLEW_GET_FUN(__glewMapParameterivNV)
-
-#define GLEW_NV_evaluators GLEW_GET_VAR(__GLEW_NV_evaluators)
-
-#endif /* GL_NV_evaluators */
-
-/* --------------------- GL_NV_explicit_attrib_location -------------------- */
-
-#ifndef GL_NV_explicit_attrib_location
-#define GL_NV_explicit_attrib_location 1
-
-#define GLEW_NV_explicit_attrib_location GLEW_GET_VAR(__GLEW_NV_explicit_attrib_location)
-
-#endif /* GL_NV_explicit_attrib_location */
-
-/* ----------------------- GL_NV_explicit_multisample ---------------------- */
-
-#ifndef GL_NV_explicit_multisample
-#define GL_NV_explicit_multisample 1
-
-#define GL_SAMPLE_POSITION_NV 0x8E50
-#define GL_SAMPLE_MASK_NV 0x8E51
-#define GL_SAMPLE_MASK_VALUE_NV 0x8E52
-#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53
-#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54
-#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55
-#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56
-#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57
-#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58
-#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59
-
-typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat* val);
-typedef void (GLAPIENTRY * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask);
-typedef void (GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer);
-
-#define glGetMultisamplefvNV GLEW_GET_FUN(__glewGetMultisamplefvNV)
-#define glSampleMaskIndexedNV GLEW_GET_FUN(__glewSampleMaskIndexedNV)
-#define glTexRenderbufferNV GLEW_GET_FUN(__glewTexRenderbufferNV)
-
-#define GLEW_NV_explicit_multisample GLEW_GET_VAR(__GLEW_NV_explicit_multisample)
-
-#endif /* GL_NV_explicit_multisample */
-
-/* ---------------------- GL_NV_fbo_color_attachments ---------------------- */
-
-#ifndef GL_NV_fbo_color_attachments
-#define GL_NV_fbo_color_attachments 1
-
-#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF
-#define GL_COLOR_ATTACHMENT0_NV 0x8CE0
-#define GL_COLOR_ATTACHMENT1_NV 0x8CE1
-#define GL_COLOR_ATTACHMENT2_NV 0x8CE2
-#define GL_COLOR_ATTACHMENT3_NV 0x8CE3
-#define GL_COLOR_ATTACHMENT4_NV 0x8CE4
-#define GL_COLOR_ATTACHMENT5_NV 0x8CE5
-#define GL_COLOR_ATTACHMENT6_NV 0x8CE6
-#define GL_COLOR_ATTACHMENT7_NV 0x8CE7
-#define GL_COLOR_ATTACHMENT8_NV 0x8CE8
-#define GL_COLOR_ATTACHMENT9_NV 0x8CE9
-#define GL_COLOR_ATTACHMENT10_NV 0x8CEA
-#define GL_COLOR_ATTACHMENT11_NV 0x8CEB
-#define GL_COLOR_ATTACHMENT12_NV 0x8CEC
-#define GL_COLOR_ATTACHMENT13_NV 0x8CED
-#define GL_COLOR_ATTACHMENT14_NV 0x8CEE
-#define GL_COLOR_ATTACHMENT15_NV 0x8CEF
-
-#define GLEW_NV_fbo_color_attachments GLEW_GET_VAR(__GLEW_NV_fbo_color_attachments)
-
-#endif /* GL_NV_fbo_color_attachments */
-
-/* ------------------------------ GL_NV_fence ------------------------------ */
-
-#ifndef GL_NV_fence
-#define GL_NV_fence 1
-
-#define GL_ALL_COMPLETED_NV 0x84F2
-#define GL_FENCE_STATUS_NV 0x84F3
-#define GL_FENCE_CONDITION_NV 0x84F4
-
-typedef void (GLAPIENTRY * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint* fences);
-typedef void (GLAPIENTRY * PFNGLFINISHFENCENVPROC) (GLuint fence);
-typedef void (GLAPIENTRY * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint* fences);
-typedef void (GLAPIENTRY * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISFENCENVPROC) (GLuint fence);
-typedef void (GLAPIENTRY * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
-typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCENVPROC) (GLuint fence);
-
-#define glDeleteFencesNV GLEW_GET_FUN(__glewDeleteFencesNV)
-#define glFinishFenceNV GLEW_GET_FUN(__glewFinishFenceNV)
-#define glGenFencesNV GLEW_GET_FUN(__glewGenFencesNV)
-#define glGetFenceivNV GLEW_GET_FUN(__glewGetFenceivNV)
-#define glIsFenceNV GLEW_GET_FUN(__glewIsFenceNV)
-#define glSetFenceNV GLEW_GET_FUN(__glewSetFenceNV)
-#define glTestFenceNV GLEW_GET_FUN(__glewTestFenceNV)
-
-#define GLEW_NV_fence GLEW_GET_VAR(__GLEW_NV_fence)
-
-#endif /* GL_NV_fence */
-
-/* -------------------------- GL_NV_fill_rectangle ------------------------- */
-
-#ifndef GL_NV_fill_rectangle
-#define GL_NV_fill_rectangle 1
-
-#define GL_FILL_RECTANGLE_NV 0x933C
-
-#define GLEW_NV_fill_rectangle GLEW_GET_VAR(__GLEW_NV_fill_rectangle)
-
-#endif /* GL_NV_fill_rectangle */
-
-/* --------------------------- GL_NV_float_buffer -------------------------- */
-
-#ifndef GL_NV_float_buffer
-#define GL_NV_float_buffer 1
-
-#define GL_FLOAT_R_NV 0x8880
-#define GL_FLOAT_RG_NV 0x8881
-#define GL_FLOAT_RGB_NV 0x8882
-#define GL_FLOAT_RGBA_NV 0x8883
-#define GL_FLOAT_R16_NV 0x8884
-#define GL_FLOAT_R32_NV 0x8885
-#define GL_FLOAT_RG16_NV 0x8886
-#define GL_FLOAT_RG32_NV 0x8887
-#define GL_FLOAT_RGB16_NV 0x8888
-#define GL_FLOAT_RGB32_NV 0x8889
-#define GL_FLOAT_RGBA16_NV 0x888A
-#define GL_FLOAT_RGBA32_NV 0x888B
-#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
-#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
-#define GL_FLOAT_RGBA_MODE_NV 0x888E
-
-#define GLEW_NV_float_buffer GLEW_GET_VAR(__GLEW_NV_float_buffer)
-
-#endif /* GL_NV_float_buffer */
-
-/* --------------------------- GL_NV_fog_distance -------------------------- */
-
-#ifndef GL_NV_fog_distance
-#define GL_NV_fog_distance 1
-
-#define GL_FOG_DISTANCE_MODE_NV 0x855A
-#define GL_EYE_RADIAL_NV 0x855B
-#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C
-
-#define GLEW_NV_fog_distance GLEW_GET_VAR(__GLEW_NV_fog_distance)
-
-#endif /* GL_NV_fog_distance */
-
-/* -------------------- GL_NV_fragment_coverage_to_color ------------------- */
-
-#ifndef GL_NV_fragment_coverage_to_color
-#define GL_NV_fragment_coverage_to_color 1
-
-#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD
-#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE
-
-typedef void (GLAPIENTRY * PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color);
-
-#define glFragmentCoverageColorNV GLEW_GET_FUN(__glewFragmentCoverageColorNV)
-
-#define GLEW_NV_fragment_coverage_to_color GLEW_GET_VAR(__GLEW_NV_fragment_coverage_to_color)
-
-#endif /* GL_NV_fragment_coverage_to_color */
-
-/* ------------------------- GL_NV_fragment_program ------------------------ */
-
-#ifndef GL_NV_fragment_program
-#define GL_NV_fragment_program 1
-
-#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
-#define GL_FRAGMENT_PROGRAM_NV 0x8870
-#define GL_MAX_TEXTURE_COORDS_NV 0x8871
-#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872
-#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873
-#define GL_PROGRAM_ERROR_STRING_NV 0x8874
-
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble *params);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat *params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLdouble v[]);
-typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLfloat v[]);
-
-#define glGetProgramNamedParameterdvNV GLEW_GET_FUN(__glewGetProgramNamedParameterdvNV)
-#define glGetProgramNamedParameterfvNV GLEW_GET_FUN(__glewGetProgramNamedParameterfvNV)
-#define glProgramNamedParameter4dNV GLEW_GET_FUN(__glewProgramNamedParameter4dNV)
-#define glProgramNamedParameter4dvNV GLEW_GET_FUN(__glewProgramNamedParameter4dvNV)
-#define glProgramNamedParameter4fNV GLEW_GET_FUN(__glewProgramNamedParameter4fNV)
-#define glProgramNamedParameter4fvNV GLEW_GET_FUN(__glewProgramNamedParameter4fvNV)
-
-#define GLEW_NV_fragment_program GLEW_GET_VAR(__GLEW_NV_fragment_program)
-
-#endif /* GL_NV_fragment_program */
-
-/* ------------------------ GL_NV_fragment_program2 ------------------------ */
-
-#ifndef GL_NV_fragment_program2
-#define GL_NV_fragment_program2 1
-
-#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
-#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
-#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6
-#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7
-#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8
-
-#define GLEW_NV_fragment_program2 GLEW_GET_VAR(__GLEW_NV_fragment_program2)
-
-#endif /* GL_NV_fragment_program2 */
-
-/* ------------------------ GL_NV_fragment_program4 ------------------------ */
-
-#ifndef GL_NV_fragment_program4
-#define GL_NV_fragment_program4 1
-
-#define GLEW_NV_fragment_program4 GLEW_GET_VAR(__GLEW_NV_fragment_program4)
-
-#endif /* GL_NV_fragment_program4 */
-
-/* --------------------- GL_NV_fragment_program_option --------------------- */
-
-#ifndef GL_NV_fragment_program_option
-#define GL_NV_fragment_program_option 1
-
-#define GLEW_NV_fragment_program_option GLEW_GET_VAR(__GLEW_NV_fragment_program_option)
-
-#endif /* GL_NV_fragment_program_option */
-
-/* ------------------- GL_NV_fragment_shader_barycentric ------------------- */
-
-#ifndef GL_NV_fragment_shader_barycentric
-#define GL_NV_fragment_shader_barycentric 1
-
-#define GLEW_NV_fragment_shader_barycentric GLEW_GET_VAR(__GLEW_NV_fragment_shader_barycentric)
-
-#endif /* GL_NV_fragment_shader_barycentric */
-
-/* -------------------- GL_NV_fragment_shader_interlock -------------------- */
-
-#ifndef GL_NV_fragment_shader_interlock
-#define GL_NV_fragment_shader_interlock 1
-
-#define GLEW_NV_fragment_shader_interlock GLEW_GET_VAR(__GLEW_NV_fragment_shader_interlock)
-
-#endif /* GL_NV_fragment_shader_interlock */
-
-/* ------------------------- GL_NV_framebuffer_blit ------------------------ */
-
-#ifndef GL_NV_framebuffer_blit
-#define GL_NV_framebuffer_blit 1
-
-#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6
-#define GL_READ_FRAMEBUFFER_NV 0x8CA8
-#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9
-#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA
-
-typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-
-#define glBlitFramebufferNV GLEW_GET_FUN(__glewBlitFramebufferNV)
-
-#define GLEW_NV_framebuffer_blit GLEW_GET_VAR(__GLEW_NV_framebuffer_blit)
-
-#endif /* GL_NV_framebuffer_blit */
-
-/* -------------------- GL_NV_framebuffer_mixed_samples -------------------- */
-
-#ifndef GL_NV_framebuffer_mixed_samples
-#define GL_NV_framebuffer_mixed_samples 1
-
-#define GL_COLOR_SAMPLES_NV 0x8E20
-#define GL_RASTER_MULTISAMPLE_EXT 0x9327
-#define GL_RASTER_SAMPLES_EXT 0x9328
-#define GL_MAX_RASTER_SAMPLES_EXT 0x9329
-#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A
-#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B
-#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C
-#define GL_DEPTH_SAMPLES_NV 0x932D
-#define GL_STENCIL_SAMPLES_NV 0x932E
-#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F
-#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330
-#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331
-#define GL_COVERAGE_MODULATION_NV 0x9332
-#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333
-
-#define GLEW_NV_framebuffer_mixed_samples GLEW_GET_VAR(__GLEW_NV_framebuffer_mixed_samples)
-
-#endif /* GL_NV_framebuffer_mixed_samples */
-
-/* --------------------- GL_NV_framebuffer_multisample --------------------- */
-
-#ifndef GL_NV_framebuffer_multisample
-#define GL_NV_framebuffer_multisample 1
-
-#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56
-#define GL_MAX_SAMPLES_NV 0x8D57
-
-typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-
-#define glRenderbufferStorageMultisampleNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleNV)
-
-#define GLEW_NV_framebuffer_multisample GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample)
-
-#endif /* GL_NV_framebuffer_multisample */
-
-/* ----------------- GL_NV_framebuffer_multisample_coverage ---------------- */
-
-#ifndef GL_NV_framebuffer_multisample_coverage
-#define GL_NV_framebuffer_multisample_coverage 1
-
-#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
-#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10
-#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11
-#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12
-
-typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
-
-#define glRenderbufferStorageMultisampleCoverageNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleCoverageNV)
-
-#define GLEW_NV_framebuffer_multisample_coverage GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample_coverage)
-
-#endif /* GL_NV_framebuffer_multisample_coverage */
-
-/* ----------------------- GL_NV_generate_mipmap_sRGB ---------------------- */
-
-#ifndef GL_NV_generate_mipmap_sRGB
-#define GL_NV_generate_mipmap_sRGB 1
-
-#define GLEW_NV_generate_mipmap_sRGB GLEW_GET_VAR(__GLEW_NV_generate_mipmap_sRGB)
-
-#endif /* GL_NV_generate_mipmap_sRGB */
-
-/* ------------------------ GL_NV_geometry_program4 ------------------------ */
-
-#ifndef GL_NV_geometry_program4
-#define GL_NV_geometry_program4 1
-
-#define GL_GEOMETRY_PROGRAM_NV 0x8C26
-#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27
-#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
-
-typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit);
-
-#define glProgramVertexLimitNV GLEW_GET_FUN(__glewProgramVertexLimitNV)
-
-#define GLEW_NV_geometry_program4 GLEW_GET_VAR(__GLEW_NV_geometry_program4)
-
-#endif /* GL_NV_geometry_program4 */
-
-/* ------------------------- GL_NV_geometry_shader4 ------------------------ */
-
-#ifndef GL_NV_geometry_shader4
-#define GL_NV_geometry_shader4 1
-
-#define GLEW_NV_geometry_shader4 GLEW_GET_VAR(__GLEW_NV_geometry_shader4)
-
-#endif /* GL_NV_geometry_shader4 */
-
-/* ------------------- GL_NV_geometry_shader_passthrough ------------------- */
-
-#ifndef GL_NV_geometry_shader_passthrough
-#define GL_NV_geometry_shader_passthrough 1
-
-#define GLEW_NV_geometry_shader_passthrough GLEW_GET_VAR(__GLEW_NV_geometry_shader_passthrough)
-
-#endif /* GL_NV_geometry_shader_passthrough */
-
-/* -------------------------- GL_NV_gpu_multicast -------------------------- */
-
-#ifndef GL_NV_gpu_multicast
-#define GL_NV_gpu_multicast 1
-
-#define GL_PER_GPU_STORAGE_BIT_NV 0x0800
-#define GL_MULTICAST_GPUS_NV 0x92BA
-#define GL_PER_GPU_STORAGE_NV 0x9548
-#define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549
-#define GL_RENDER_GPU_MASK_NV 0x9558
-
-typedef void (GLAPIENTRY * PFNGLMULTICASTBARRIERNVPROC) (void);
-typedef void (GLAPIENTRY * PFNGLMULTICASTBLITFRAMEBUFFERNVPROC) (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-typedef void (GLAPIENTRY * PFNGLMULTICASTBUFFERSUBDATANVPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
-typedef void (GLAPIENTRY * PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC) (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
-typedef void (GLAPIENTRY * PFNGLMULTICASTCOPYIMAGESUBDATANVPROC) (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
-typedef void (GLAPIENTRY * PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint64* params);
-typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint64* params);
-typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLMULTICASTWAITSYNCNVPROC) (GLuint signalGpu, GLbitfield waitGpuMask);
-typedef void (GLAPIENTRY * PFNGLRENDERGPUMASKNVPROC) (GLbitfield mask);
-
-#define glMulticastBarrierNV GLEW_GET_FUN(__glewMulticastBarrierNV)
-#define glMulticastBlitFramebufferNV GLEW_GET_FUN(__glewMulticastBlitFramebufferNV)
-#define glMulticastBufferSubDataNV GLEW_GET_FUN(__glewMulticastBufferSubDataNV)
-#define glMulticastCopyBufferSubDataNV GLEW_GET_FUN(__glewMulticastCopyBufferSubDataNV)
-#define glMulticastCopyImageSubDataNV GLEW_GET_FUN(__glewMulticastCopyImageSubDataNV)
-#define glMulticastFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewMulticastFramebufferSampleLocationsfvNV)
-#define glMulticastGetQueryObjecti64vNV GLEW_GET_FUN(__glewMulticastGetQueryObjecti64vNV)
-#define glMulticastGetQueryObjectivNV GLEW_GET_FUN(__glewMulticastGetQueryObjectivNV)
-#define glMulticastGetQueryObjectui64vNV GLEW_GET_FUN(__glewMulticastGetQueryObjectui64vNV)
-#define glMulticastGetQueryObjectuivNV GLEW_GET_FUN(__glewMulticastGetQueryObjectuivNV)
-#define glMulticastWaitSyncNV GLEW_GET_FUN(__glewMulticastWaitSyncNV)
-#define glRenderGpuMaskNV GLEW_GET_FUN(__glewRenderGpuMaskNV)
-
-#define GLEW_NV_gpu_multicast GLEW_GET_VAR(__GLEW_NV_gpu_multicast)
-
-#endif /* GL_NV_gpu_multicast */
-
-/* --------------------------- GL_NV_gpu_program4 -------------------------- */
-
-#ifndef GL_NV_gpu_program4
-#define GL_NV_gpu_program4 1
-
-#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904
-#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905
-#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906
-#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907
-#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908
-#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909
-#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5
-#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
-
-typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
-
-#define glProgramEnvParameterI4iNV GLEW_GET_FUN(__glewProgramEnvParameterI4iNV)
-#define glProgramEnvParameterI4ivNV GLEW_GET_FUN(__glewProgramEnvParameterI4ivNV)
-#define glProgramEnvParameterI4uiNV GLEW_GET_FUN(__glewProgramEnvParameterI4uiNV)
-#define glProgramEnvParameterI4uivNV GLEW_GET_FUN(__glewProgramEnvParameterI4uivNV)
-#define glProgramEnvParametersI4ivNV GLEW_GET_FUN(__glewProgramEnvParametersI4ivNV)
-#define glProgramEnvParametersI4uivNV GLEW_GET_FUN(__glewProgramEnvParametersI4uivNV)
-#define glProgramLocalParameterI4iNV GLEW_GET_FUN(__glewProgramLocalParameterI4iNV)
-#define glProgramLocalParameterI4ivNV GLEW_GET_FUN(__glewProgramLocalParameterI4ivNV)
-#define glProgramLocalParameterI4uiNV GLEW_GET_FUN(__glewProgramLocalParameterI4uiNV)
-#define glProgramLocalParameterI4uivNV GLEW_GET_FUN(__glewProgramLocalParameterI4uivNV)
-#define glProgramLocalParametersI4ivNV GLEW_GET_FUN(__glewProgramLocalParametersI4ivNV)
-#define glProgramLocalParametersI4uivNV GLEW_GET_FUN(__glewProgramLocalParametersI4uivNV)
-
-#define GLEW_NV_gpu_program4 GLEW_GET_VAR(__GLEW_NV_gpu_program4)
-
-#endif /* GL_NV_gpu_program4 */
-
-/* --------------------------- GL_NV_gpu_program5 -------------------------- */
-
-#ifndef GL_NV_gpu_program5
-#define GL_NV_gpu_program5 1
-
-#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A
-#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B
-#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C
-#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D
-#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E
-#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F
-
-#define GLEW_NV_gpu_program5 GLEW_GET_VAR(__GLEW_NV_gpu_program5)
-
-#endif /* GL_NV_gpu_program5 */
-
-/* -------------------- GL_NV_gpu_program5_mem_extended -------------------- */
-
-#ifndef GL_NV_gpu_program5_mem_extended
-#define GL_NV_gpu_program5_mem_extended 1
-
-#define GLEW_NV_gpu_program5_mem_extended GLEW_GET_VAR(__GLEW_NV_gpu_program5_mem_extended)
-
-#endif /* GL_NV_gpu_program5_mem_extended */
-
-/* ------------------------- GL_NV_gpu_program_fp64 ------------------------ */
-
-#ifndef GL_NV_gpu_program_fp64
-#define GL_NV_gpu_program_fp64 1
-
-#define GLEW_NV_gpu_program_fp64 GLEW_GET_VAR(__GLEW_NV_gpu_program_fp64)
-
-#endif /* GL_NV_gpu_program_fp64 */
-
-/* --------------------------- GL_NV_gpu_shader5 --------------------------- */
-
-#ifndef GL_NV_gpu_shader5
-#define GL_NV_gpu_shader5 1
-
-#define GL_INT64_NV 0x140E
-#define GL_UNSIGNED_INT64_NV 0x140F
-#define GL_INT8_NV 0x8FE0
-#define GL_INT8_VEC2_NV 0x8FE1
-#define GL_INT8_VEC3_NV 0x8FE2
-#define GL_INT8_VEC4_NV 0x8FE3
-#define GL_INT16_NV 0x8FE4
-#define GL_INT16_VEC2_NV 0x8FE5
-#define GL_INT16_VEC3_NV 0x8FE6
-#define GL_INT16_VEC4_NV 0x8FE7
-#define GL_INT64_VEC2_NV 0x8FE9
-#define GL_INT64_VEC3_NV 0x8FEA
-#define GL_INT64_VEC4_NV 0x8FEB
-#define GL_UNSIGNED_INT8_NV 0x8FEC
-#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED
-#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE
-#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF
-#define GL_UNSIGNED_INT16_NV 0x8FF0
-#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
-#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
-#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
-#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5
-#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6
-#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7
-#define GL_FLOAT16_NV 0x8FF8
-#define GL_FLOAT16_VEC2_NV 0x8FF9
-#define GL_FLOAT16_VEC3_NV 0x8FFA
-#define GL_FLOAT16_VEC4_NV 0x8FFB
-
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT* params);
-typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT* params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x);
-typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y);
-typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
-typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
-typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value);
-
-#define glGetUniformi64vNV GLEW_GET_FUN(__glewGetUniformi64vNV)
-#define glGetUniformui64vNV GLEW_GET_FUN(__glewGetUniformui64vNV)
-#define glProgramUniform1i64NV GLEW_GET_FUN(__glewProgramUniform1i64NV)
-#define glProgramUniform1i64vNV GLEW_GET_FUN(__glewProgramUniform1i64vNV)
-#define glProgramUniform1ui64NV GLEW_GET_FUN(__glewProgramUniform1ui64NV)
-#define glProgramUniform1ui64vNV GLEW_GET_FUN(__glewProgramUniform1ui64vNV)
-#define glProgramUniform2i64NV GLEW_GET_FUN(__glewProgramUniform2i64NV)
-#define glProgramUniform2i64vNV GLEW_GET_FUN(__glewProgramUniform2i64vNV)
-#define glProgramUniform2ui64NV GLEW_GET_FUN(__glewProgramUniform2ui64NV)
-#define glProgramUniform2ui64vNV GLEW_GET_FUN(__glewProgramUniform2ui64vNV)
-#define glProgramUniform3i64NV GLEW_GET_FUN(__glewProgramUniform3i64NV)
-#define glProgramUniform3i64vNV GLEW_GET_FUN(__glewProgramUniform3i64vNV)
-#define glProgramUniform3ui64NV GLEW_GET_FUN(__glewProgramUniform3ui64NV)
-#define glProgramUniform3ui64vNV GLEW_GET_FUN(__glewProgramUniform3ui64vNV)
-#define glProgramUniform4i64NV GLEW_GET_FUN(__glewProgramUniform4i64NV)
-#define glProgramUniform4i64vNV GLEW_GET_FUN(__glewProgramUniform4i64vNV)
-#define glProgramUniform4ui64NV GLEW_GET_FUN(__glewProgramUniform4ui64NV)
-#define glProgramUniform4ui64vNV GLEW_GET_FUN(__glewProgramUniform4ui64vNV)
-#define glUniform1i64NV GLEW_GET_FUN(__glewUniform1i64NV)
-#define glUniform1i64vNV GLEW_GET_FUN(__glewUniform1i64vNV)
-#define glUniform1ui64NV GLEW_GET_FUN(__glewUniform1ui64NV)
-#define glUniform1ui64vNV GLEW_GET_FUN(__glewUniform1ui64vNV)
-#define glUniform2i64NV GLEW_GET_FUN(__glewUniform2i64NV)
-#define glUniform2i64vNV GLEW_GET_FUN(__glewUniform2i64vNV)
-#define glUniform2ui64NV GLEW_GET_FUN(__glewUniform2ui64NV)
-#define glUniform2ui64vNV GLEW_GET_FUN(__glewUniform2ui64vNV)
-#define glUniform3i64NV GLEW_GET_FUN(__glewUniform3i64NV)
-#define glUniform3i64vNV GLEW_GET_FUN(__glewUniform3i64vNV)
-#define glUniform3ui64NV GLEW_GET_FUN(__glewUniform3ui64NV)
-#define glUniform3ui64vNV GLEW_GET_FUN(__glewUniform3ui64vNV)
-#define glUniform4i64NV GLEW_GET_FUN(__glewUniform4i64NV)
-#define glUniform4i64vNV GLEW_GET_FUN(__glewUniform4i64vNV)
-#define glUniform4ui64NV GLEW_GET_FUN(__glewUniform4ui64NV)
-#define glUniform4ui64vNV GLEW_GET_FUN(__glewUniform4ui64vNV)
-
-#define GLEW_NV_gpu_shader5 GLEW_GET_VAR(__GLEW_NV_gpu_shader5)
-
-#endif /* GL_NV_gpu_shader5 */
-
-/* ---------------------------- GL_NV_half_float --------------------------- */
-
-#ifndef GL_NV_half_float
-#define GL_NV_half_float 1
-
-#define GL_HALF_FLOAT_NV 0x140B
-
-typedef unsigned short GLhalf;
-
-typedef void (GLAPIENTRY * PFNGLCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue);
-typedef void (GLAPIENTRY * PFNGLCOLOR3HVNVPROC) (const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLCOLOR4HNVPROC) (GLhalf red, GLhalf green, GLhalf blue, GLhalf alpha);
-typedef void (GLAPIENTRY * PFNGLCOLOR4HVNVPROC) (const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDHNVPROC) (GLhalf fog);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDHVNVPROC) (const GLhalf* fog);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalf s);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalf s, GLhalf t);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r, GLhalf q);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLNORMAL3HNVPROC) (GLhalf nx, GLhalf ny, GLhalf nz);
-typedef void (GLAPIENTRY * PFNGLNORMAL3HVNVPROC) (const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD1HNVPROC) (GLhalf s);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD1HVNVPROC) (const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2HNVPROC) (GLhalf s, GLhalf t);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2HVNVPROC) (const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD3HNVPROC) (GLhalf s, GLhalf t, GLhalf r);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD3HVNVPROC) (const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4HNVPROC) (GLhalf s, GLhalf t, GLhalf r, GLhalf q);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4HVNVPROC) (const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEX2HNVPROC) (GLhalf x, GLhalf y);
-typedef void (GLAPIENTRY * PFNGLVERTEX2HVNVPROC) (const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEX3HNVPROC) (GLhalf x, GLhalf y, GLhalf z);
-typedef void (GLAPIENTRY * PFNGLVERTEX3HVNVPROC) (const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEX4HNVPROC) (GLhalf x, GLhalf y, GLhalf z, GLhalf w);
-typedef void (GLAPIENTRY * PFNGLVERTEX4HVNVPROC) (const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalf x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalf x, GLhalf y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z, GLhalf w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHNVPROC) (GLhalf weight);
-typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight);
-
-#define glColor3hNV GLEW_GET_FUN(__glewColor3hNV)
-#define glColor3hvNV GLEW_GET_FUN(__glewColor3hvNV)
-#define glColor4hNV GLEW_GET_FUN(__glewColor4hNV)
-#define glColor4hvNV GLEW_GET_FUN(__glewColor4hvNV)
-#define glFogCoordhNV GLEW_GET_FUN(__glewFogCoordhNV)
-#define glFogCoordhvNV GLEW_GET_FUN(__glewFogCoordhvNV)
-#define glMultiTexCoord1hNV GLEW_GET_FUN(__glewMultiTexCoord1hNV)
-#define glMultiTexCoord1hvNV GLEW_GET_FUN(__glewMultiTexCoord1hvNV)
-#define glMultiTexCoord2hNV GLEW_GET_FUN(__glewMultiTexCoord2hNV)
-#define glMultiTexCoord2hvNV GLEW_GET_FUN(__glewMultiTexCoord2hvNV)
-#define glMultiTexCoord3hNV GLEW_GET_FUN(__glewMultiTexCoord3hNV)
-#define glMultiTexCoord3hvNV GLEW_GET_FUN(__glewMultiTexCoord3hvNV)
-#define glMultiTexCoord4hNV GLEW_GET_FUN(__glewMultiTexCoord4hNV)
-#define glMultiTexCoord4hvNV GLEW_GET_FUN(__glewMultiTexCoord4hvNV)
-#define glNormal3hNV GLEW_GET_FUN(__glewNormal3hNV)
-#define glNormal3hvNV GLEW_GET_FUN(__glewNormal3hvNV)
-#define glSecondaryColor3hNV GLEW_GET_FUN(__glewSecondaryColor3hNV)
-#define glSecondaryColor3hvNV GLEW_GET_FUN(__glewSecondaryColor3hvNV)
-#define glTexCoord1hNV GLEW_GET_FUN(__glewTexCoord1hNV)
-#define glTexCoord1hvNV GLEW_GET_FUN(__glewTexCoord1hvNV)
-#define glTexCoord2hNV GLEW_GET_FUN(__glewTexCoord2hNV)
-#define glTexCoord2hvNV GLEW_GET_FUN(__glewTexCoord2hvNV)
-#define glTexCoord3hNV GLEW_GET_FUN(__glewTexCoord3hNV)
-#define glTexCoord3hvNV GLEW_GET_FUN(__glewTexCoord3hvNV)
-#define glTexCoord4hNV GLEW_GET_FUN(__glewTexCoord4hNV)
-#define glTexCoord4hvNV GLEW_GET_FUN(__glewTexCoord4hvNV)
-#define glVertex2hNV GLEW_GET_FUN(__glewVertex2hNV)
-#define glVertex2hvNV GLEW_GET_FUN(__glewVertex2hvNV)
-#define glVertex3hNV GLEW_GET_FUN(__glewVertex3hNV)
-#define glVertex3hvNV GLEW_GET_FUN(__glewVertex3hvNV)
-#define glVertex4hNV GLEW_GET_FUN(__glewVertex4hNV)
-#define glVertex4hvNV GLEW_GET_FUN(__glewVertex4hvNV)
-#define glVertexAttrib1hNV GLEW_GET_FUN(__glewVertexAttrib1hNV)
-#define glVertexAttrib1hvNV GLEW_GET_FUN(__glewVertexAttrib1hvNV)
-#define glVertexAttrib2hNV GLEW_GET_FUN(__glewVertexAttrib2hNV)
-#define glVertexAttrib2hvNV GLEW_GET_FUN(__glewVertexAttrib2hvNV)
-#define glVertexAttrib3hNV GLEW_GET_FUN(__glewVertexAttrib3hNV)
-#define glVertexAttrib3hvNV GLEW_GET_FUN(__glewVertexAttrib3hvNV)
-#define glVertexAttrib4hNV GLEW_GET_FUN(__glewVertexAttrib4hNV)
-#define glVertexAttrib4hvNV GLEW_GET_FUN(__glewVertexAttrib4hvNV)
-#define glVertexAttribs1hvNV GLEW_GET_FUN(__glewVertexAttribs1hvNV)
-#define glVertexAttribs2hvNV GLEW_GET_FUN(__glewVertexAttribs2hvNV)
-#define glVertexAttribs3hvNV GLEW_GET_FUN(__glewVertexAttribs3hvNV)
-#define glVertexAttribs4hvNV GLEW_GET_FUN(__glewVertexAttribs4hvNV)
-#define glVertexWeighthNV GLEW_GET_FUN(__glewVertexWeighthNV)
-#define glVertexWeighthvNV GLEW_GET_FUN(__glewVertexWeighthvNV)
-
-#define GLEW_NV_half_float GLEW_GET_VAR(__GLEW_NV_half_float)
-
-#endif /* GL_NV_half_float */
-
-/* -------------------------- GL_NV_image_formats -------------------------- */
-
-#ifndef GL_NV_image_formats
-#define GL_NV_image_formats 1
-
-#define GLEW_NV_image_formats GLEW_GET_VAR(__GLEW_NV_image_formats)
-
-#endif /* GL_NV_image_formats */
-
-/* ------------------------- GL_NV_instanced_arrays ------------------------ */
-
-#ifndef GL_NV_instanced_arrays
-#define GL_NV_instanced_arrays 1
-
-#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE
-
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor);
-
-#define glVertexAttribDivisorNV GLEW_GET_FUN(__glewVertexAttribDivisorNV)
-
-#define GLEW_NV_instanced_arrays GLEW_GET_VAR(__GLEW_NV_instanced_arrays)
-
-#endif /* GL_NV_instanced_arrays */
-
-/* ------------------- GL_NV_internalformat_sample_query ------------------- */
-
-#ifndef GL_NV_internalformat_sample_query
-#define GL_NV_internalformat_sample_query 1
-
-#define GL_MULTISAMPLES_NV 0x9371
-#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372
-#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373
-#define GL_CONFORMANT_NV 0x9374
-
-typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint* params);
-
-#define glGetInternalformatSampleivNV GLEW_GET_FUN(__glewGetInternalformatSampleivNV)
-
-#define GLEW_NV_internalformat_sample_query GLEW_GET_VAR(__GLEW_NV_internalformat_sample_query)
-
-#endif /* GL_NV_internalformat_sample_query */
-
-/* ------------------------ GL_NV_light_max_exponent ----------------------- */
-
-#ifndef GL_NV_light_max_exponent
-#define GL_NV_light_max_exponent 1
-
-#define GL_MAX_SHININESS_NV 0x8504
-#define GL_MAX_SPOT_EXPONENT_NV 0x8505
-
-#define GLEW_NV_light_max_exponent GLEW_GET_VAR(__GLEW_NV_light_max_exponent)
-
-#endif /* GL_NV_light_max_exponent */
-
-/* ------------------------ GL_NV_memory_attachment ------------------------ */
-
-#ifndef GL_NV_memory_attachment
-#define GL_NV_memory_attachment 1
-
-#define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4
-#define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5
-#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6
-#define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7
-#define GL_MEMORY_ATTACHABLE_NV 0x95A8
-#define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9
-#define GL_DETACHED_TEXTURES_NV 0x95AA
-#define GL_DETACHED_BUFFERS_NV 0x95AB
-#define GL_MAX_DETACHED_TEXTURES_NV 0x95AC
-#define GL_MAX_DETACHED_BUFFERS_NV 0x95AD
-
-typedef void (GLAPIENTRY * PFNGLBUFFERATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERATTACHMEMORYNVPROC) (GLuint buffer, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLRESETMEMORYOBJECTPARAMETERNVPROC) (GLuint memory, GLenum pname);
-typedef void (GLAPIENTRY * PFNGLTEXATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset);
-typedef void (GLAPIENTRY * PFNGLTEXTUREATTACHMEMORYNVPROC) (GLuint texture, GLuint memory, GLuint64 offset);
-
-#define glBufferAttachMemoryNV GLEW_GET_FUN(__glewBufferAttachMemoryNV)
-#define glGetMemoryObjectDetachedResourcesuivNV GLEW_GET_FUN(__glewGetMemoryObjectDetachedResourcesuivNV)
-#define glNamedBufferAttachMemoryNV GLEW_GET_FUN(__glewNamedBufferAttachMemoryNV)
-#define glResetMemoryObjectParameterNV GLEW_GET_FUN(__glewResetMemoryObjectParameterNV)
-#define glTexAttachMemoryNV GLEW_GET_FUN(__glewTexAttachMemoryNV)
-#define glTextureAttachMemoryNV GLEW_GET_FUN(__glewTextureAttachMemoryNV)
-
-#define GLEW_NV_memory_attachment GLEW_GET_VAR(__GLEW_NV_memory_attachment)
-
-#endif /* GL_NV_memory_attachment */
-
-/* --------------------------- GL_NV_mesh_shader --------------------------- */
-
-#ifndef GL_NV_mesh_shader
-#define GL_NV_mesh_shader 1
-
-#define GL_MESH_SHADER_BIT_NV 0x00000040
-#define GL_TASK_SHADER_BIT_NV 0x00000080
-#define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60
-#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61
-#define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62
-#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63
-#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64
-#define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65
-#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66
-#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67
-#define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68
-#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69
-#define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A
-#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B
-#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C
-#define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D
-#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E
-#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F
-#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF
-#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536
-#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537
-#define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538
-#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539
-#define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A
-#define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B
-#define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C
-#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D
-#define GL_MESH_WORK_GROUP_SIZE_NV 0x953E
-#define GL_TASK_WORK_GROUP_SIZE_NV 0x953F
-#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543
-#define GL_MAX_MESH_VIEWS_NV 0x9557
-#define GL_MESH_SHADER_NV 0x9559
-#define GL_TASK_SHADER_NV 0x955A
-#define GL_MESH_VERTICES_OUT_NV 0x9579
-#define GL_MESH_PRIMITIVES_OUT_NV 0x957A
-#define GL_MESH_OUTPUT_TYPE_NV 0x957B
-#define GL_MESH_SUBROUTINE_NV 0x957C
-#define GL_TASK_SUBROUTINE_NV 0x957D
-#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E
-#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C
-#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D
-#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E
-#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F
-#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0
-#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1
-#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2
-#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3
-
-typedef void (GLAPIENTRY * PFNGLDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect);
-typedef void (GLAPIENTRY * PFNGLDRAWMESHTASKSNVPROC) (GLuint first, GLuint count);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride);
-
-#define glDrawMeshTasksIndirectNV GLEW_GET_FUN(__glewDrawMeshTasksIndirectNV)
-#define glDrawMeshTasksNV GLEW_GET_FUN(__glewDrawMeshTasksNV)
-#define glMultiDrawMeshTasksIndirectCountNV GLEW_GET_FUN(__glewMultiDrawMeshTasksIndirectCountNV)
-#define glMultiDrawMeshTasksIndirectNV GLEW_GET_FUN(__glewMultiDrawMeshTasksIndirectNV)
-
-#define GLEW_NV_mesh_shader GLEW_GET_VAR(__GLEW_NV_mesh_shader)
-
-#endif /* GL_NV_mesh_shader */
-
-/* ----------------------- GL_NV_multisample_coverage ---------------------- */
-
-#ifndef GL_NV_multisample_coverage
-#define GL_NV_multisample_coverage 1
-
-#define GL_COLOR_SAMPLES_NV 0x8E20
-
-#define GLEW_NV_multisample_coverage GLEW_GET_VAR(__GLEW_NV_multisample_coverage)
-
-#endif /* GL_NV_multisample_coverage */
-
-/* --------------------- GL_NV_multisample_filter_hint --------------------- */
-
-#ifndef GL_NV_multisample_filter_hint
-#define GL_NV_multisample_filter_hint 1
-
-#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534
-
-#define GLEW_NV_multisample_filter_hint GLEW_GET_VAR(__GLEW_NV_multisample_filter_hint)
-
-#endif /* GL_NV_multisample_filter_hint */
-
-/* ----------------------- GL_NV_non_square_matrices ----------------------- */
-
-#ifndef GL_NV_non_square_matrices
-#define GL_NV_non_square_matrices 1
-
-#define GL_FLOAT_MAT2x3_NV 0x8B65
-#define GL_FLOAT_MAT2x4_NV 0x8B66
-#define GL_FLOAT_MAT3x2_NV 0x8B67
-#define GL_FLOAT_MAT3x4_NV 0x8B68
-#define GL_FLOAT_MAT4x2_NV 0x8B69
-#define GL_FLOAT_MAT4x3_NV 0x8B6A
-
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-
-#define glUniformMatrix2x3fvNV GLEW_GET_FUN(__glewUniformMatrix2x3fvNV)
-#define glUniformMatrix2x4fvNV GLEW_GET_FUN(__glewUniformMatrix2x4fvNV)
-#define glUniformMatrix3x2fvNV GLEW_GET_FUN(__glewUniformMatrix3x2fvNV)
-#define glUniformMatrix3x4fvNV GLEW_GET_FUN(__glewUniformMatrix3x4fvNV)
-#define glUniformMatrix4x2fvNV GLEW_GET_FUN(__glewUniformMatrix4x2fvNV)
-#define glUniformMatrix4x3fvNV GLEW_GET_FUN(__glewUniformMatrix4x3fvNV)
-
-#define GLEW_NV_non_square_matrices GLEW_GET_VAR(__GLEW_NV_non_square_matrices)
-
-#endif /* GL_NV_non_square_matrices */
-
-/* ------------------------- GL_NV_occlusion_query ------------------------- */
-
-#ifndef GL_NV_occlusion_query
-#define GL_NV_occlusion_query 1
-
-#define GL_PIXEL_COUNTER_BITS_NV 0x8864
-#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
-#define GL_PIXEL_COUNT_NV 0x8866
-#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
-
-typedef void (GLAPIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (void);
-typedef void (GLAPIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id);
-
-#define glBeginOcclusionQueryNV GLEW_GET_FUN(__glewBeginOcclusionQueryNV)
-#define glDeleteOcclusionQueriesNV GLEW_GET_FUN(__glewDeleteOcclusionQueriesNV)
-#define glEndOcclusionQueryNV GLEW_GET_FUN(__glewEndOcclusionQueryNV)
-#define glGenOcclusionQueriesNV GLEW_GET_FUN(__glewGenOcclusionQueriesNV)
-#define glGetOcclusionQueryivNV GLEW_GET_FUN(__glewGetOcclusionQueryivNV)
-#define glGetOcclusionQueryuivNV GLEW_GET_FUN(__glewGetOcclusionQueryuivNV)
-#define glIsOcclusionQueryNV GLEW_GET_FUN(__glewIsOcclusionQueryNV)
-
-#define GLEW_NV_occlusion_query GLEW_GET_VAR(__GLEW_NV_occlusion_query)
-
-#endif /* GL_NV_occlusion_query */
-
-/* -------------------------- GL_NV_pack_subimage -------------------------- */
-
-#ifndef GL_NV_pack_subimage
-#define GL_NV_pack_subimage 1
-
-#define GL_PACK_ROW_LENGTH_NV 0x0D02
-#define GL_PACK_SKIP_ROWS_NV 0x0D03
-#define GL_PACK_SKIP_PIXELS_NV 0x0D04
-
-#define GLEW_NV_pack_subimage GLEW_GET_VAR(__GLEW_NV_pack_subimage)
-
-#endif /* GL_NV_pack_subimage */
-
-/* ----------------------- GL_NV_packed_depth_stencil ---------------------- */
-
-#ifndef GL_NV_packed_depth_stencil
-#define GL_NV_packed_depth_stencil 1
-
-#define GL_DEPTH_STENCIL_NV 0x84F9
-#define GL_UNSIGNED_INT_24_8_NV 0x84FA
-
-#define GLEW_NV_packed_depth_stencil GLEW_GET_VAR(__GLEW_NV_packed_depth_stencil)
-
-#endif /* GL_NV_packed_depth_stencil */
-
-/* --------------------------- GL_NV_packed_float -------------------------- */
-
-#ifndef GL_NV_packed_float
-#define GL_NV_packed_float 1
-
-#define GL_R11F_G11F_B10F_NV 0x8C3A
-#define GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B
-
-#define GLEW_NV_packed_float GLEW_GET_VAR(__GLEW_NV_packed_float)
-
-#endif /* GL_NV_packed_float */
-
-/* ----------------------- GL_NV_packed_float_linear ----------------------- */
-
-#ifndef GL_NV_packed_float_linear
-#define GL_NV_packed_float_linear 1
-
-#define GL_R11F_G11F_B10F_NV 0x8C3A
-#define GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B
-
-#define GLEW_NV_packed_float_linear GLEW_GET_VAR(__GLEW_NV_packed_float_linear)
-
-#endif /* GL_NV_packed_float_linear */
-
-/* --------------------- GL_NV_parameter_buffer_object --------------------- */
-
-#ifndef GL_NV_parameter_buffer_object
-#define GL_NV_parameter_buffer_object 1
-
-#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
-#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
-#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
-#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3
-#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4
-
-typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
-
-#define glProgramBufferParametersIivNV GLEW_GET_FUN(__glewProgramBufferParametersIivNV)
-#define glProgramBufferParametersIuivNV GLEW_GET_FUN(__glewProgramBufferParametersIuivNV)
-#define glProgramBufferParametersfvNV GLEW_GET_FUN(__glewProgramBufferParametersfvNV)
-
-#define GLEW_NV_parameter_buffer_object GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object)
-
-#endif /* GL_NV_parameter_buffer_object */
-
-/* --------------------- GL_NV_parameter_buffer_object2 -------------------- */
-
-#ifndef GL_NV_parameter_buffer_object2
-#define GL_NV_parameter_buffer_object2 1
-
-#define GLEW_NV_parameter_buffer_object2 GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object2)
-
-#endif /* GL_NV_parameter_buffer_object2 */
-
-/* -------------------------- GL_NV_path_rendering ------------------------- */
-
-#ifndef GL_NV_path_rendering
-#define GL_NV_path_rendering 1
-
-#define GL_CLOSE_PATH_NV 0x00
-#define GL_BOLD_BIT_NV 0x01
-#define GL_GLYPH_WIDTH_BIT_NV 0x01
-#define GL_GLYPH_HEIGHT_BIT_NV 0x02
-#define GL_ITALIC_BIT_NV 0x02
-#define GL_MOVE_TO_NV 0x02
-#define GL_RELATIVE_MOVE_TO_NV 0x03
-#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04
-#define GL_LINE_TO_NV 0x04
-#define GL_RELATIVE_LINE_TO_NV 0x05
-#define GL_HORIZONTAL_LINE_TO_NV 0x06
-#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07
-#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08
-#define GL_VERTICAL_LINE_TO_NV 0x08
-#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09
-#define GL_QUADRATIC_CURVE_TO_NV 0x0A
-#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B
-#define GL_CUBIC_CURVE_TO_NV 0x0C
-#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D
-#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E
-#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F
-#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10
-#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10
-#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11
-#define GL_SMALL_CCW_ARC_TO_NV 0x12
-#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13
-#define GL_SMALL_CW_ARC_TO_NV 0x14
-#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15
-#define GL_LARGE_CCW_ARC_TO_NV 0x16
-#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17
-#define GL_LARGE_CW_ARC_TO_NV 0x18
-#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19
-#define GL_CONIC_CURVE_TO_NV 0x1A
-#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B
-#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20
-#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40
-#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80
-#define GL_ROUNDED_RECT_NV 0xE8
-#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9
-#define GL_ROUNDED_RECT2_NV 0xEA
-#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB
-#define GL_ROUNDED_RECT4_NV 0xEC
-#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED
-#define GL_ROUNDED_RECT8_NV 0xEE
-#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF
-#define GL_RESTART_PATH_NV 0xF0
-#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2
-#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4
-#define GL_RECT_NV 0xF6
-#define GL_RELATIVE_RECT_NV 0xF7
-#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8
-#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA
-#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC
-#define GL_ARC_TO_NV 0xFE
-#define GL_RELATIVE_ARC_TO_NV 0xFF
-#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100
-#define GL_PRIMARY_COLOR_NV 0x852C
-#define GL_SECONDARY_COLOR_NV 0x852D
-#define GL_PRIMARY_COLOR 0x8577
-#define GL_PATH_FORMAT_SVG_NV 0x9070
-#define GL_PATH_FORMAT_PS_NV 0x9071
-#define GL_STANDARD_FONT_NAME_NV 0x9072
-#define GL_SYSTEM_FONT_NAME_NV 0x9073
-#define GL_FILE_NAME_NV 0x9074
-#define GL_PATH_STROKE_WIDTH_NV 0x9075
-#define GL_PATH_END_CAPS_NV 0x9076
-#define GL_PATH_INITIAL_END_CAP_NV 0x9077
-#define GL_PATH_TERMINAL_END_CAP_NV 0x9078
-#define GL_PATH_JOIN_STYLE_NV 0x9079
-#define GL_PATH_MITER_LIMIT_NV 0x907A
-#define GL_PATH_DASH_CAPS_NV 0x907B
-#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C
-#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D
-#define GL_PATH_DASH_OFFSET_NV 0x907E
-#define GL_PATH_CLIENT_LENGTH_NV 0x907F
-#define GL_PATH_FILL_MODE_NV 0x9080
-#define GL_PATH_FILL_MASK_NV 0x9081
-#define GL_PATH_FILL_COVER_MODE_NV 0x9082
-#define GL_PATH_STROKE_COVER_MODE_NV 0x9083
-#define GL_PATH_STROKE_MASK_NV 0x9084
-#define GL_PATH_STROKE_BOUND_NV 0x9086
-#define GL_COUNT_UP_NV 0x9088
-#define GL_COUNT_DOWN_NV 0x9089
-#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A
-#define GL_CONVEX_HULL_NV 0x908B
-#define GL_BOUNDING_BOX_NV 0x908D
-#define GL_TRANSLATE_X_NV 0x908E
-#define GL_TRANSLATE_Y_NV 0x908F
-#define GL_TRANSLATE_2D_NV 0x9090
-#define GL_TRANSLATE_3D_NV 0x9091
-#define GL_AFFINE_2D_NV 0x9092
-#define GL_AFFINE_3D_NV 0x9094
-#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096
-#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098
-#define GL_UTF8_NV 0x909A
-#define GL_UTF16_NV 0x909B
-#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C
-#define GL_PATH_COMMAND_COUNT_NV 0x909D
-#define GL_PATH_COORD_COUNT_NV 0x909E
-#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F
-#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0
-#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1
-#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2
-#define GL_SQUARE_NV 0x90A3
-#define GL_ROUND_NV 0x90A4
-#define GL_TRIANGULAR_NV 0x90A5
-#define GL_BEVEL_NV 0x90A6
-#define GL_MITER_REVERT_NV 0x90A7
-#define GL_MITER_TRUNCATE_NV 0x90A8
-#define GL_SKIP_MISSING_GLYPH_NV 0x90A9
-#define GL_USE_MISSING_GLYPH_NV 0x90AA
-#define GL_PATH_ERROR_POSITION_NV 0x90AB
-#define GL_PATH_FOG_GEN_MODE_NV 0x90AC
-#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD
-#define GL_ADJACENT_PAIRS_NV 0x90AE
-#define GL_FIRST_TO_REST_NV 0x90AF
-#define GL_PATH_GEN_MODE_NV 0x90B0
-#define GL_PATH_GEN_COEFF_NV 0x90B1
-#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2
-#define GL_PATH_GEN_COMPONENTS_NV 0x90B3
-#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4
-#define GL_MOVE_TO_RESETS_NV 0x90B5
-#define GL_MOVE_TO_CONTINUES_NV 0x90B6
-#define GL_PATH_STENCIL_FUNC_NV 0x90B7
-#define GL_PATH_STENCIL_REF_NV 0x90B8
-#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9
-#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD
-#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE
-#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF
-#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368
-#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369
-#define GL_FONT_UNAVAILABLE_NV 0x936A
-#define GL_FONT_UNINTELLIGIBLE_NV 0x936B
-#define GL_STANDARD_FONT_FORMAT_NV 0x936C
-#define GL_FRAGMENT_INPUT_NV 0x936D
-#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000
-#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000
-#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000
-#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000
-#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000
-#define GL_FONT_ASCENDER_BIT_NV 0x00200000
-#define GL_FONT_DESCENDER_BIT_NV 0x00400000
-#define GL_FONT_HEIGHT_BIT_NV 0x00800000
-#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000
-#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000
-#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000
-#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000
-#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000
-#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000
-
-typedef void (GLAPIENTRY * PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath);
-typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
-typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode);
-typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
-typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode);
-typedef void (GLAPIENTRY * PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range);
-typedef GLuint (GLAPIENTRY * PFNGLGENPATHSNVPROC) (GLsizei range);
-typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint* value);
-typedef void (GLAPIENTRY * PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte* commands);
-typedef void (GLAPIENTRY * PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat* coords);
-typedef void (GLAPIENTRY * PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat* dashArray);
-typedef GLfloat (GLAPIENTRY * PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments);
-typedef void (GLAPIENTRY * PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics);
-typedef void (GLAPIENTRY * PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics);
-typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint* value);
-typedef void (GLAPIENTRY * PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing);
-typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint* value);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLfloat *params);
-typedef void (GLAPIENTRY * PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
-typedef GLboolean (GLAPIENTRY * PFNGLISPATHNVPROC) (GLuint path);
-typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y);
-typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y);
-typedef void (GLAPIENTRY * PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat* m);
-typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat* m);
-typedef void (GLAPIENTRY * PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat* coeffs);
-typedef void (GLAPIENTRY * PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords);
-typedef void (GLAPIENTRY * PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords);
-typedef void (GLAPIENTRY * PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum zfunc);
-typedef void (GLAPIENTRY * PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat* dashArray);
-typedef void (GLAPIENTRY * PFNGLPATHFOGGENNVPROC) (GLenum genMode);
-typedef GLenum (GLAPIENTRY * PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
-typedef GLenum (GLAPIENTRY * PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2]);
-typedef void (GLAPIENTRY * PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
-typedef void (GLAPIENTRY * PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
-typedef GLenum (GLAPIENTRY * PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
-typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value);
-typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat* value);
-typedef void (GLAPIENTRY * PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value);
-typedef void (GLAPIENTRY * PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint* value);
-typedef void (GLAPIENTRY * PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units);
-typedef void (GLAPIENTRY * PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask);
-typedef void (GLAPIENTRY * PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString);
-typedef void (GLAPIENTRY * PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords);
-typedef void (GLAPIENTRY * PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords);
-typedef void (GLAPIENTRY * PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat* coeffs);
-typedef GLboolean (GLAPIENTRY * PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY);
-typedef void (GLAPIENTRY * PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat* coeffs);
-typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues);
-typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask);
-typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues);
-typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask);
-typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
-typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode);
-typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
-typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode);
-typedef void (GLAPIENTRY * PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat* transformValues);
-typedef void (GLAPIENTRY * PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint paths[], const GLfloat weights[]);
-
-#define glCopyPathNV GLEW_GET_FUN(__glewCopyPathNV)
-#define glCoverFillPathInstancedNV GLEW_GET_FUN(__glewCoverFillPathInstancedNV)
-#define glCoverFillPathNV GLEW_GET_FUN(__glewCoverFillPathNV)
-#define glCoverStrokePathInstancedNV GLEW_GET_FUN(__glewCoverStrokePathInstancedNV)
-#define glCoverStrokePathNV GLEW_GET_FUN(__glewCoverStrokePathNV)
-#define glDeletePathsNV GLEW_GET_FUN(__glewDeletePathsNV)
-#define glGenPathsNV GLEW_GET_FUN(__glewGenPathsNV)
-#define glGetPathColorGenfvNV GLEW_GET_FUN(__glewGetPathColorGenfvNV)
-#define glGetPathColorGenivNV GLEW_GET_FUN(__glewGetPathColorGenivNV)
-#define glGetPathCommandsNV GLEW_GET_FUN(__glewGetPathCommandsNV)
-#define glGetPathCoordsNV GLEW_GET_FUN(__glewGetPathCoordsNV)
-#define glGetPathDashArrayNV GLEW_GET_FUN(__glewGetPathDashArrayNV)
-#define glGetPathLengthNV GLEW_GET_FUN(__glewGetPathLengthNV)
-#define glGetPathMetricRangeNV GLEW_GET_FUN(__glewGetPathMetricRangeNV)
-#define glGetPathMetricsNV GLEW_GET_FUN(__glewGetPathMetricsNV)
-#define glGetPathParameterfvNV GLEW_GET_FUN(__glewGetPathParameterfvNV)
-#define glGetPathParameterivNV GLEW_GET_FUN(__glewGetPathParameterivNV)
-#define glGetPathSpacingNV GLEW_GET_FUN(__glewGetPathSpacingNV)
-#define glGetPathTexGenfvNV GLEW_GET_FUN(__glewGetPathTexGenfvNV)
-#define glGetPathTexGenivNV GLEW_GET_FUN(__glewGetPathTexGenivNV)
-#define glGetProgramResourcefvNV GLEW_GET_FUN(__glewGetProgramResourcefvNV)
-#define glInterpolatePathsNV GLEW_GET_FUN(__glewInterpolatePathsNV)
-#define glIsPathNV GLEW_GET_FUN(__glewIsPathNV)
-#define glIsPointInFillPathNV GLEW_GET_FUN(__glewIsPointInFillPathNV)
-#define glIsPointInStrokePathNV GLEW_GET_FUN(__glewIsPointInStrokePathNV)
-#define glMatrixLoad3x2fNV GLEW_GET_FUN(__glewMatrixLoad3x2fNV)
-#define glMatrixLoad3x3fNV GLEW_GET_FUN(__glewMatrixLoad3x3fNV)
-#define glMatrixLoadTranspose3x3fNV GLEW_GET_FUN(__glewMatrixLoadTranspose3x3fNV)
-#define glMatrixMult3x2fNV GLEW_GET_FUN(__glewMatrixMult3x2fNV)
-#define glMatrixMult3x3fNV GLEW_GET_FUN(__glewMatrixMult3x3fNV)
-#define glMatrixMultTranspose3x3fNV GLEW_GET_FUN(__glewMatrixMultTranspose3x3fNV)
-#define glPathColorGenNV GLEW_GET_FUN(__glewPathColorGenNV)
-#define glPathCommandsNV GLEW_GET_FUN(__glewPathCommandsNV)
-#define glPathCoordsNV GLEW_GET_FUN(__glewPathCoordsNV)
-#define glPathCoverDepthFuncNV GLEW_GET_FUN(__glewPathCoverDepthFuncNV)
-#define glPathDashArrayNV GLEW_GET_FUN(__glewPathDashArrayNV)
-#define glPathFogGenNV GLEW_GET_FUN(__glewPathFogGenNV)
-#define glPathGlyphIndexArrayNV GLEW_GET_FUN(__glewPathGlyphIndexArrayNV)
-#define glPathGlyphIndexRangeNV GLEW_GET_FUN(__glewPathGlyphIndexRangeNV)
-#define glPathGlyphRangeNV GLEW_GET_FUN(__glewPathGlyphRangeNV)
-#define glPathGlyphsNV GLEW_GET_FUN(__glewPathGlyphsNV)
-#define glPathMemoryGlyphIndexArrayNV GLEW_GET_FUN(__glewPathMemoryGlyphIndexArrayNV)
-#define glPathParameterfNV GLEW_GET_FUN(__glewPathParameterfNV)
-#define glPathParameterfvNV GLEW_GET_FUN(__glewPathParameterfvNV)
-#define glPathParameteriNV GLEW_GET_FUN(__glewPathParameteriNV)
-#define glPathParameterivNV GLEW_GET_FUN(__glewPathParameterivNV)
-#define glPathStencilDepthOffsetNV GLEW_GET_FUN(__glewPathStencilDepthOffsetNV)
-#define glPathStencilFuncNV GLEW_GET_FUN(__glewPathStencilFuncNV)
-#define glPathStringNV GLEW_GET_FUN(__glewPathStringNV)
-#define glPathSubCommandsNV GLEW_GET_FUN(__glewPathSubCommandsNV)
-#define glPathSubCoordsNV GLEW_GET_FUN(__glewPathSubCoordsNV)
-#define glPathTexGenNV GLEW_GET_FUN(__glewPathTexGenNV)
-#define glPointAlongPathNV GLEW_GET_FUN(__glewPointAlongPathNV)
-#define glProgramPathFragmentInputGenNV GLEW_GET_FUN(__glewProgramPathFragmentInputGenNV)
-#define glStencilFillPathInstancedNV GLEW_GET_FUN(__glewStencilFillPathInstancedNV)
-#define glStencilFillPathNV GLEW_GET_FUN(__glewStencilFillPathNV)
-#define glStencilStrokePathInstancedNV GLEW_GET_FUN(__glewStencilStrokePathInstancedNV)
-#define glStencilStrokePathNV GLEW_GET_FUN(__glewStencilStrokePathNV)
-#define glStencilThenCoverFillPathInstancedNV GLEW_GET_FUN(__glewStencilThenCoverFillPathInstancedNV)
-#define glStencilThenCoverFillPathNV GLEW_GET_FUN(__glewStencilThenCoverFillPathNV)
-#define glStencilThenCoverStrokePathInstancedNV GLEW_GET_FUN(__glewStencilThenCoverStrokePathInstancedNV)
-#define glStencilThenCoverStrokePathNV GLEW_GET_FUN(__glewStencilThenCoverStrokePathNV)
-#define glTransformPathNV GLEW_GET_FUN(__glewTransformPathNV)
-#define glWeightPathsNV GLEW_GET_FUN(__glewWeightPathsNV)
-
-#define GLEW_NV_path_rendering GLEW_GET_VAR(__GLEW_NV_path_rendering)
-
-#endif /* GL_NV_path_rendering */
-
-/* -------------------- GL_NV_path_rendering_shared_edge ------------------- */
-
-#ifndef GL_NV_path_rendering_shared_edge
-#define GL_NV_path_rendering_shared_edge 1
-
-#define GL_SHARED_EDGE_NV 0xC0
-
-#define GLEW_NV_path_rendering_shared_edge GLEW_GET_VAR(__GLEW_NV_path_rendering_shared_edge)
-
-#endif /* GL_NV_path_rendering_shared_edge */
-
-/* ----------------------- GL_NV_pixel_buffer_object ----------------------- */
-
-#ifndef GL_NV_pixel_buffer_object
-#define GL_NV_pixel_buffer_object 1
-
-#define GL_PIXEL_PACK_BUFFER_NV 0x88EB
-#define GL_PIXEL_UNPACK_BUFFER_NV 0x88EC
-#define GL_PIXEL_PACK_BUFFER_BINDING_NV 0x88ED
-#define GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88EF
-
-#define GLEW_NV_pixel_buffer_object GLEW_GET_VAR(__GLEW_NV_pixel_buffer_object)
-
-#endif /* GL_NV_pixel_buffer_object */
-
-/* ------------------------- GL_NV_pixel_data_range ------------------------ */
-
-#ifndef GL_NV_pixel_data_range
-#define GL_NV_pixel_data_range 1
-
-#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878
-#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879
-#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A
-#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B
-#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C
-#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D
-
-typedef void (GLAPIENTRY * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, void *pointer);
-
-#define glFlushPixelDataRangeNV GLEW_GET_FUN(__glewFlushPixelDataRangeNV)
-#define glPixelDataRangeNV GLEW_GET_FUN(__glewPixelDataRangeNV)
-
-#define GLEW_NV_pixel_data_range GLEW_GET_VAR(__GLEW_NV_pixel_data_range)
-
-#endif /* GL_NV_pixel_data_range */
-
-/* ------------------------- GL_NV_platform_binary ------------------------- */
-
-#ifndef GL_NV_platform_binary
-#define GL_NV_platform_binary 1
-
-#define GL_NVIDIA_PLATFORM_BINARY_NV 0x890B
-
-#define GLEW_NV_platform_binary GLEW_GET_VAR(__GLEW_NV_platform_binary)
-
-#endif /* GL_NV_platform_binary */
-
-/* --------------------------- GL_NV_point_sprite -------------------------- */
-
-#ifndef GL_NV_point_sprite
-#define GL_NV_point_sprite 1
-
-#define GL_POINT_SPRITE_NV 0x8861
-#define GL_COORD_REPLACE_NV 0x8862
-#define GL_POINT_SPRITE_R_MODE_NV 0x8863
-
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint* params);
-
-#define glPointParameteriNV GLEW_GET_FUN(__glewPointParameteriNV)
-#define glPointParameterivNV GLEW_GET_FUN(__glewPointParameterivNV)
-
-#define GLEW_NV_point_sprite GLEW_GET_VAR(__GLEW_NV_point_sprite)
-
-#endif /* GL_NV_point_sprite */
-
-/* --------------------------- GL_NV_polygon_mode -------------------------- */
-
-#ifndef GL_NV_polygon_mode
-#define GL_NV_polygon_mode 1
-
-#define GL_POLYGON_MODE_NV 0x0B40
-#define GL_POINT_NV 0x1B00
-#define GL_LINE_NV 0x1B01
-#define GL_FILL_NV 0x1B02
-#define GL_POLYGON_OFFSET_POINT_NV 0x2A01
-#define GL_POLYGON_OFFSET_LINE_NV 0x2A02
-
-typedef void (GLAPIENTRY * PFNGLPOLYGONMODENVPROC) (GLenum face, GLenum mode);
-
-#define glPolygonModeNV GLEW_GET_FUN(__glewPolygonModeNV)
-
-#define GLEW_NV_polygon_mode GLEW_GET_VAR(__GLEW_NV_polygon_mode)
-
-#endif /* GL_NV_polygon_mode */
-
-/* -------------------------- GL_NV_present_video -------------------------- */
-
-#ifndef GL_NV_present_video
-#define GL_NV_present_video 1
-
-#define GL_FRAME_NV 0x8E26
-#define GL_FIELDS_NV 0x8E27
-#define GL_CURRENT_TIME_NV 0x8E28
-#define GL_NUM_FILL_STREAMS_NV 0x8E29
-#define GL_PRESENT_TIME_NV 0x8E2A
-#define GL_PRESENT_DURATION_NV 0x8E2B
-
-typedef void (GLAPIENTRY * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT* params);
-typedef void (GLAPIENTRY * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT* params);
-typedef void (GLAPIENTRY * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3);
-typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1);
-
-#define glGetVideoi64vNV GLEW_GET_FUN(__glewGetVideoi64vNV)
-#define glGetVideoivNV GLEW_GET_FUN(__glewGetVideoivNV)
-#define glGetVideoui64vNV GLEW_GET_FUN(__glewGetVideoui64vNV)
-#define glGetVideouivNV GLEW_GET_FUN(__glewGetVideouivNV)
-#define glPresentFrameDualFillNV GLEW_GET_FUN(__glewPresentFrameDualFillNV)
-#define glPresentFrameKeyedNV GLEW_GET_FUN(__glewPresentFrameKeyedNV)
-
-#define GLEW_NV_present_video GLEW_GET_VAR(__GLEW_NV_present_video)
-
-#endif /* GL_NV_present_video */
-
-/* ------------------------ GL_NV_primitive_restart ------------------------ */
-
-#ifndef GL_NV_primitive_restart
-#define GL_NV_primitive_restart 1
-
-#define GL_PRIMITIVE_RESTART_NV 0x8558
-#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559
-
-typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index);
-typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void);
-
-#define glPrimitiveRestartIndexNV GLEW_GET_FUN(__glewPrimitiveRestartIndexNV)
-#define glPrimitiveRestartNV GLEW_GET_FUN(__glewPrimitiveRestartNV)
-
-#define GLEW_NV_primitive_restart GLEW_GET_VAR(__GLEW_NV_primitive_restart)
-
-#endif /* GL_NV_primitive_restart */
-
-/* ------------------------ GL_NV_query_resource_tag ----------------------- */
-
-#ifndef GL_NV_query_resource_tag
-#define GL_NV_query_resource_tag 1
-
-#define GLEW_NV_query_resource_tag GLEW_GET_VAR(__GLEW_NV_query_resource_tag)
-
-#endif /* GL_NV_query_resource_tag */
-
-/* --------------------------- GL_NV_read_buffer --------------------------- */
-
-#ifndef GL_NV_read_buffer
-#define GL_NV_read_buffer 1
-
-#define GL_READ_BUFFER_NV 0x0C02
-
-typedef void (GLAPIENTRY * PFNGLREADBUFFERNVPROC) (GLenum mode);
-
-#define glReadBufferNV GLEW_GET_FUN(__glewReadBufferNV)
-
-#define GLEW_NV_read_buffer GLEW_GET_VAR(__GLEW_NV_read_buffer)
-
-#endif /* GL_NV_read_buffer */
-
-/* ------------------------ GL_NV_read_buffer_front ------------------------ */
-
-#ifndef GL_NV_read_buffer_front
-#define GL_NV_read_buffer_front 1
-
-#define GL_READ_BUFFER_NV 0x0C02
-
-#define GLEW_NV_read_buffer_front GLEW_GET_VAR(__GLEW_NV_read_buffer_front)
-
-#endif /* GL_NV_read_buffer_front */
-
-/* ---------------------------- GL_NV_read_depth --------------------------- */
-
-#ifndef GL_NV_read_depth
-#define GL_NV_read_depth 1
-
-#define GLEW_NV_read_depth GLEW_GET_VAR(__GLEW_NV_read_depth)
-
-#endif /* GL_NV_read_depth */
-
-/* ------------------------ GL_NV_read_depth_stencil ----------------------- */
-
-#ifndef GL_NV_read_depth_stencil
-#define GL_NV_read_depth_stencil 1
-
-#define GLEW_NV_read_depth_stencil GLEW_GET_VAR(__GLEW_NV_read_depth_stencil)
-
-#endif /* GL_NV_read_depth_stencil */
-
-/* --------------------------- GL_NV_read_stencil -------------------------- */
-
-#ifndef GL_NV_read_stencil
-#define GL_NV_read_stencil 1
-
-#define GLEW_NV_read_stencil GLEW_GET_VAR(__GLEW_NV_read_stencil)
-
-#endif /* GL_NV_read_stencil */
-
-/* ------------------------ GL_NV_register_combiners ----------------------- */
-
-#ifndef GL_NV_register_combiners
-#define GL_NV_register_combiners 1
-
-#define GL_REGISTER_COMBINERS_NV 0x8522
-#define GL_VARIABLE_A_NV 0x8523
-#define GL_VARIABLE_B_NV 0x8524
-#define GL_VARIABLE_C_NV 0x8525
-#define GL_VARIABLE_D_NV 0x8526
-#define GL_VARIABLE_E_NV 0x8527
-#define GL_VARIABLE_F_NV 0x8528
-#define GL_VARIABLE_G_NV 0x8529
-#define GL_CONSTANT_COLOR0_NV 0x852A
-#define GL_CONSTANT_COLOR1_NV 0x852B
-#define GL_PRIMARY_COLOR_NV 0x852C
-#define GL_SECONDARY_COLOR_NV 0x852D
-#define GL_SPARE0_NV 0x852E
-#define GL_SPARE1_NV 0x852F
-#define GL_DISCARD_NV 0x8530
-#define GL_E_TIMES_F_NV 0x8531
-#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
-#define GL_UNSIGNED_IDENTITY_NV 0x8536
-#define GL_UNSIGNED_INVERT_NV 0x8537
-#define GL_EXPAND_NORMAL_NV 0x8538
-#define GL_EXPAND_NEGATE_NV 0x8539
-#define GL_HALF_BIAS_NORMAL_NV 0x853A
-#define GL_HALF_BIAS_NEGATE_NV 0x853B
-#define GL_SIGNED_IDENTITY_NV 0x853C
-#define GL_SIGNED_NEGATE_NV 0x853D
-#define GL_SCALE_BY_TWO_NV 0x853E
-#define GL_SCALE_BY_FOUR_NV 0x853F
-#define GL_SCALE_BY_ONE_HALF_NV 0x8540
-#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541
-#define GL_COMBINER_INPUT_NV 0x8542
-#define GL_COMBINER_MAPPING_NV 0x8543
-#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544
-#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545
-#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546
-#define GL_COMBINER_MUX_SUM_NV 0x8547
-#define GL_COMBINER_SCALE_NV 0x8548
-#define GL_COMBINER_BIAS_NV 0x8549
-#define GL_COMBINER_AB_OUTPUT_NV 0x854A
-#define GL_COMBINER_CD_OUTPUT_NV 0x854B
-#define GL_COMBINER_SUM_OUTPUT_NV 0x854C
-#define GL_MAX_GENERAL_COMBINERS_NV 0x854D
-#define GL_NUM_GENERAL_COMBINERS_NV 0x854E
-#define GL_COLOR_SUM_CLAMP_NV 0x854F
-#define GL_COMBINER0_NV 0x8550
-#define GL_COMBINER1_NV 0x8551
-#define GL_COMBINER2_NV 0x8552
-#define GL_COMBINER3_NV 0x8553
-#define GL_COMBINER4_NV 0x8554
-#define GL_COMBINER5_NV 0x8555
-#define GL_COMBINER6_NV 0x8556
-#define GL_COMBINER7_NV 0x8557
-
-typedef void (GLAPIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
-typedef void (GLAPIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
-typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
-typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint* params);
-
-#define glCombinerInputNV GLEW_GET_FUN(__glewCombinerInputNV)
-#define glCombinerOutputNV GLEW_GET_FUN(__glewCombinerOutputNV)
-#define glCombinerParameterfNV GLEW_GET_FUN(__glewCombinerParameterfNV)
-#define glCombinerParameterfvNV GLEW_GET_FUN(__glewCombinerParameterfvNV)
-#define glCombinerParameteriNV GLEW_GET_FUN(__glewCombinerParameteriNV)
-#define glCombinerParameterivNV GLEW_GET_FUN(__glewCombinerParameterivNV)
-#define glFinalCombinerInputNV GLEW_GET_FUN(__glewFinalCombinerInputNV)
-#define glGetCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetCombinerInputParameterfvNV)
-#define glGetCombinerInputParameterivNV GLEW_GET_FUN(__glewGetCombinerInputParameterivNV)
-#define glGetCombinerOutputParameterfvNV GLEW_GET_FUN(__glewGetCombinerOutputParameterfvNV)
-#define glGetCombinerOutputParameterivNV GLEW_GET_FUN(__glewGetCombinerOutputParameterivNV)
-#define glGetFinalCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterfvNV)
-#define glGetFinalCombinerInputParameterivNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterivNV)
-
-#define GLEW_NV_register_combiners GLEW_GET_VAR(__GLEW_NV_register_combiners)
-
-#endif /* GL_NV_register_combiners */
-
-/* ----------------------- GL_NV_register_combiners2 ----------------------- */
-
-#ifndef GL_NV_register_combiners2
-#define GL_NV_register_combiners2 1
-
-#define GL_PER_STAGE_CONSTANTS_NV 0x8535
-
-typedef void (GLAPIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat* params);
-
-#define glCombinerStageParameterfvNV GLEW_GET_FUN(__glewCombinerStageParameterfvNV)
-#define glGetCombinerStageParameterfvNV GLEW_GET_FUN(__glewGetCombinerStageParameterfvNV)
-
-#define GLEW_NV_register_combiners2 GLEW_GET_VAR(__GLEW_NV_register_combiners2)
-
-#endif /* GL_NV_register_combiners2 */
-
-/* ------------------- GL_NV_representative_fragment_test ------------------ */
-
-#ifndef GL_NV_representative_fragment_test
-#define GL_NV_representative_fragment_test 1
-
-#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F
-
-#define GLEW_NV_representative_fragment_test GLEW_GET_VAR(__GLEW_NV_representative_fragment_test)
-
-#endif /* GL_NV_representative_fragment_test */
-
-/* ------------------ GL_NV_robustness_video_memory_purge ------------------ */
-
-#ifndef GL_NV_robustness_video_memory_purge
-#define GL_NV_robustness_video_memory_purge 1
-
-#define GL_PURGED_CONTEXT_RESET_NV 0x92BB
-
-#define GLEW_NV_robustness_video_memory_purge GLEW_GET_VAR(__GLEW_NV_robustness_video_memory_purge)
-
-#endif /* GL_NV_robustness_video_memory_purge */
-
-/* --------------------------- GL_NV_sRGB_formats -------------------------- */
-
-#ifndef GL_NV_sRGB_formats
-#define GL_NV_sRGB_formats 1
-
-#define GL_ETC1_SRGB8_NV 0x88EE
-#define GL_SRGB8_NV 0x8C41
-#define GL_SLUMINANCE_ALPHA_NV 0x8C44
-#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45
-#define GL_SLUMINANCE_NV 0x8C46
-#define GL_SLUMINANCE8_NV 0x8C47
-#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E
-#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F
-
-#define GLEW_NV_sRGB_formats GLEW_GET_VAR(__GLEW_NV_sRGB_formats)
-
-#endif /* GL_NV_sRGB_formats */
-
-/* ------------------------- GL_NV_sample_locations ------------------------ */
-
-#ifndef GL_NV_sample_locations
-#define GL_NV_sample_locations 1
-
-#define GL_SAMPLE_LOCATION_NV 0x8E50
-#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D
-#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E
-#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F
-#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340
-#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341
-#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342
-#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLRESOLVEDEPTHVALUESNVPROC) (void);
-
-#define glFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewFramebufferSampleLocationsfvNV)
-#define glNamedFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewNamedFramebufferSampleLocationsfvNV)
-#define glResolveDepthValuesNV GLEW_GET_FUN(__glewResolveDepthValuesNV)
-
-#define GLEW_NV_sample_locations GLEW_GET_VAR(__GLEW_NV_sample_locations)
-
-#endif /* GL_NV_sample_locations */
-
-/* ------------------ GL_NV_sample_mask_override_coverage ------------------ */
-
-#ifndef GL_NV_sample_mask_override_coverage
-#define GL_NV_sample_mask_override_coverage 1
-
-#define GLEW_NV_sample_mask_override_coverage GLEW_GET_VAR(__GLEW_NV_sample_mask_override_coverage)
-
-#endif /* GL_NV_sample_mask_override_coverage */
-
-/* ------------------------ GL_NV_scissor_exclusive ------------------------ */
-
-#ifndef GL_NV_scissor_exclusive
-#define GL_NV_scissor_exclusive 1
-
-#define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555
-#define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556
-
-typedef void (GLAPIENTRY * PFNGLSCISSOREXCLUSIVEARRAYVNVPROC) (GLuint first, GLsizei count, const GLint* v);
-typedef void (GLAPIENTRY * PFNGLSCISSOREXCLUSIVENVPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
-
-#define glScissorExclusiveArrayvNV GLEW_GET_FUN(__glewScissorExclusiveArrayvNV)
-#define glScissorExclusiveNV GLEW_GET_FUN(__glewScissorExclusiveNV)
-
-#define GLEW_NV_scissor_exclusive GLEW_GET_VAR(__GLEW_NV_scissor_exclusive)
-
-#endif /* GL_NV_scissor_exclusive */
-
-/* ---------------------- GL_NV_shader_atomic_counters --------------------- */
-
-#ifndef GL_NV_shader_atomic_counters
-#define GL_NV_shader_atomic_counters 1
-
-#define GLEW_NV_shader_atomic_counters GLEW_GET_VAR(__GLEW_NV_shader_atomic_counters)
-
-#endif /* GL_NV_shader_atomic_counters */
-
-/* ----------------------- GL_NV_shader_atomic_float ----------------------- */
-
-#ifndef GL_NV_shader_atomic_float
-#define GL_NV_shader_atomic_float 1
-
-#define GLEW_NV_shader_atomic_float GLEW_GET_VAR(__GLEW_NV_shader_atomic_float)
-
-#endif /* GL_NV_shader_atomic_float */
-
-/* ---------------------- GL_NV_shader_atomic_float64 ---------------------- */
-
-#ifndef GL_NV_shader_atomic_float64
-#define GL_NV_shader_atomic_float64 1
-
-#define GLEW_NV_shader_atomic_float64 GLEW_GET_VAR(__GLEW_NV_shader_atomic_float64)
-
-#endif /* GL_NV_shader_atomic_float64 */
-
-/* -------------------- GL_NV_shader_atomic_fp16_vector -------------------- */
-
-#ifndef GL_NV_shader_atomic_fp16_vector
-#define GL_NV_shader_atomic_fp16_vector 1
-
-#define GLEW_NV_shader_atomic_fp16_vector GLEW_GET_VAR(__GLEW_NV_shader_atomic_fp16_vector)
-
-#endif /* GL_NV_shader_atomic_fp16_vector */
-
-/* ----------------------- GL_NV_shader_atomic_int64 ----------------------- */
-
-#ifndef GL_NV_shader_atomic_int64
-#define GL_NV_shader_atomic_int64 1
-
-#define GLEW_NV_shader_atomic_int64 GLEW_GET_VAR(__GLEW_NV_shader_atomic_int64)
-
-#endif /* GL_NV_shader_atomic_int64 */
-
-/* ------------------------ GL_NV_shader_buffer_load ----------------------- */
-
-#ifndef GL_NV_shader_buffer_load
-#define GL_NV_shader_buffer_load 1
-
-#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D
-#define GL_GPU_ADDRESS_NV 0x8F34
-#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35
-
-typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT* params);
-typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT* result);
-typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target);
-typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access);
-typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value);
-typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value);
-typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value);
-
-#define glGetBufferParameterui64vNV GLEW_GET_FUN(__glewGetBufferParameterui64vNV)
-#define glGetIntegerui64vNV GLEW_GET_FUN(__glewGetIntegerui64vNV)
-#define glGetNamedBufferParameterui64vNV GLEW_GET_FUN(__glewGetNamedBufferParameterui64vNV)
-#define glIsBufferResidentNV GLEW_GET_FUN(__glewIsBufferResidentNV)
-#define glIsNamedBufferResidentNV GLEW_GET_FUN(__glewIsNamedBufferResidentNV)
-#define glMakeBufferNonResidentNV GLEW_GET_FUN(__glewMakeBufferNonResidentNV)
-#define glMakeBufferResidentNV GLEW_GET_FUN(__glewMakeBufferResidentNV)
-#define glMakeNamedBufferNonResidentNV GLEW_GET_FUN(__glewMakeNamedBufferNonResidentNV)
-#define glMakeNamedBufferResidentNV GLEW_GET_FUN(__glewMakeNamedBufferResidentNV)
-#define glProgramUniformui64NV GLEW_GET_FUN(__glewProgramUniformui64NV)
-#define glProgramUniformui64vNV GLEW_GET_FUN(__glewProgramUniformui64vNV)
-#define glUniformui64NV GLEW_GET_FUN(__glewUniformui64NV)
-#define glUniformui64vNV GLEW_GET_FUN(__glewUniformui64vNV)
-
-#define GLEW_NV_shader_buffer_load GLEW_GET_VAR(__GLEW_NV_shader_buffer_load)
-
-#endif /* GL_NV_shader_buffer_load */
-
-/* ---------------- GL_NV_shader_noperspective_interpolation --------------- */
-
-#ifndef GL_NV_shader_noperspective_interpolation
-#define GL_NV_shader_noperspective_interpolation 1
-
-#define GLEW_NV_shader_noperspective_interpolation GLEW_GET_VAR(__GLEW_NV_shader_noperspective_interpolation)
-
-#endif /* GL_NV_shader_noperspective_interpolation */
-
-/* ------------------- GL_NV_shader_storage_buffer_object ------------------ */
-
-#ifndef GL_NV_shader_storage_buffer_object
-#define GL_NV_shader_storage_buffer_object 1
-
-#define GLEW_NV_shader_storage_buffer_object GLEW_GET_VAR(__GLEW_NV_shader_storage_buffer_object)
-
-#endif /* GL_NV_shader_storage_buffer_object */
-
-/* ------------------- GL_NV_shader_subgroup_partitioned ------------------- */
-
-#ifndef GL_NV_shader_subgroup_partitioned
-#define GL_NV_shader_subgroup_partitioned 1
-
-#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100
-
-#define GLEW_NV_shader_subgroup_partitioned GLEW_GET_VAR(__GLEW_NV_shader_subgroup_partitioned)
-
-#endif /* GL_NV_shader_subgroup_partitioned */
-
-/* --------------------- GL_NV_shader_texture_footprint -------------------- */
-
-#ifndef GL_NV_shader_texture_footprint
-#define GL_NV_shader_texture_footprint 1
-
-#define GLEW_NV_shader_texture_footprint GLEW_GET_VAR(__GLEW_NV_shader_texture_footprint)
-
-#endif /* GL_NV_shader_texture_footprint */
-
-/* ----------------------- GL_NV_shader_thread_group ----------------------- */
-
-#ifndef GL_NV_shader_thread_group
-#define GL_NV_shader_thread_group 1
-
-#define GL_WARP_SIZE_NV 0x9339
-#define GL_WARPS_PER_SM_NV 0x933A
-#define GL_SM_COUNT_NV 0x933B
-
-#define GLEW_NV_shader_thread_group GLEW_GET_VAR(__GLEW_NV_shader_thread_group)
-
-#endif /* GL_NV_shader_thread_group */
-
-/* ---------------------- GL_NV_shader_thread_shuffle ---------------------- */
-
-#ifndef GL_NV_shader_thread_shuffle
-#define GL_NV_shader_thread_shuffle 1
-
-#define GLEW_NV_shader_thread_shuffle GLEW_GET_VAR(__GLEW_NV_shader_thread_shuffle)
-
-#endif /* GL_NV_shader_thread_shuffle */
-
-/* ------------------------ GL_NV_shading_rate_image ----------------------- */
-
-#ifndef GL_NV_shading_rate_image
-#define GL_NV_shading_rate_image 1
-
-#define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B
-#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C
-#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D
-#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E
-#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F
-#define GL_SHADING_RATE_IMAGE_NV 0x9563
-#define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564
-#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565
-#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566
-#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567
-#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568
-#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569
-#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A
-#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B
-#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C
-#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D
-#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E
-#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F
-#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE
-#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF
-#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0
-
-typedef void (GLAPIENTRY * PFNGLBINDSHADINGRATEIMAGENVPROC) (GLuint texture);
-typedef void (GLAPIENTRY * PFNGLGETSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint entry, GLenum* rate);
-typedef void (GLAPIENTRY * PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC) (GLenum rate, GLuint samples, GLuint index, GLint* location);
-typedef void (GLAPIENTRY * PFNGLSHADINGRATEIMAGEBARRIERNVPROC) (GLenum order);
-typedef void (GLAPIENTRY * PFNGLSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint first, GLsizei count, const GLenum* rates);
-typedef void (GLAPIENTRY * PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC) (GLenum rate, GLuint samples, const GLint* locations);
-
-#define glBindShadingRateImageNV GLEW_GET_FUN(__glewBindShadingRateImageNV)
-#define glGetShadingRateImagePaletteNV GLEW_GET_FUN(__glewGetShadingRateImagePaletteNV)
-#define glGetShadingRateSampleLocationivNV GLEW_GET_FUN(__glewGetShadingRateSampleLocationivNV)
-#define glShadingRateImageBarrierNV GLEW_GET_FUN(__glewShadingRateImageBarrierNV)
-#define glShadingRateImagePaletteNV GLEW_GET_FUN(__glewShadingRateImagePaletteNV)
-#define glShadingRateSampleOrderCustomNV GLEW_GET_FUN(__glewShadingRateSampleOrderCustomNV)
-
-#define GLEW_NV_shading_rate_image GLEW_GET_VAR(__GLEW_NV_shading_rate_image)
-
-#endif /* GL_NV_shading_rate_image */
-
-/* ---------------------- GL_NV_shadow_samplers_array ---------------------- */
-
-#ifndef GL_NV_shadow_samplers_array
-#define GL_NV_shadow_samplers_array 1
-
-#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4
-
-#define GLEW_NV_shadow_samplers_array GLEW_GET_VAR(__GLEW_NV_shadow_samplers_array)
-
-#endif /* GL_NV_shadow_samplers_array */
-
-/* ----------------------- GL_NV_shadow_samplers_cube ---------------------- */
-
-#ifndef GL_NV_shadow_samplers_cube
-#define GL_NV_shadow_samplers_cube 1
-
-#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5
-
-#define GLEW_NV_shadow_samplers_cube GLEW_GET_VAR(__GLEW_NV_shadow_samplers_cube)
-
-#endif /* GL_NV_shadow_samplers_cube */
-
-/* ---------------------- GL_NV_stereo_view_rendering ---------------------- */
-
-#ifndef GL_NV_stereo_view_rendering
-#define GL_NV_stereo_view_rendering 1
-
-#define GLEW_NV_stereo_view_rendering GLEW_GET_VAR(__GLEW_NV_stereo_view_rendering)
-
-#endif /* GL_NV_stereo_view_rendering */
-
-/* ---------------------- GL_NV_tessellation_program5 ---------------------- */
-
-#ifndef GL_NV_tessellation_program5
-#define GL_NV_tessellation_program5 1
-
-#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
-#define GL_TESS_CONTROL_PROGRAM_NV 0x891E
-#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F
-#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74
-#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75
-
-#define GLEW_NV_tessellation_program5 GLEW_GET_VAR(__GLEW_NV_tessellation_program5)
-
-#endif /* GL_NV_tessellation_program5 */
-
-/* -------------------------- GL_NV_texgen_emboss -------------------------- */
-
-#ifndef GL_NV_texgen_emboss
-#define GL_NV_texgen_emboss 1
-
-#define GL_EMBOSS_LIGHT_NV 0x855D
-#define GL_EMBOSS_CONSTANT_NV 0x855E
-#define GL_EMBOSS_MAP_NV 0x855F
-
-#define GLEW_NV_texgen_emboss GLEW_GET_VAR(__GLEW_NV_texgen_emboss)
-
-#endif /* GL_NV_texgen_emboss */
-
-/* ------------------------ GL_NV_texgen_reflection ------------------------ */
-
-#ifndef GL_NV_texgen_reflection
-#define GL_NV_texgen_reflection 1
-
-#define GL_NORMAL_MAP_NV 0x8511
-#define GL_REFLECTION_MAP_NV 0x8512
-
-#define GLEW_NV_texgen_reflection GLEW_GET_VAR(__GLEW_NV_texgen_reflection)
-
-#endif /* GL_NV_texgen_reflection */
-
-/* -------------------------- GL_NV_texture_array -------------------------- */
-
-#ifndef GL_NV_texture_array
-#define GL_NV_texture_array 1
-
-#define GL_UNPACK_SKIP_IMAGES_NV 0x806D
-#define GL_UNPACK_IMAGE_HEIGHT_NV 0x806E
-#define GL_MAX_ARRAY_TEXTURE_LAYERS_NV 0x88FF
-#define GL_TEXTURE_2D_ARRAY_NV 0x8C1A
-#define GL_TEXTURE_BINDING_2D_ARRAY_NV 0x8C1D
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_NV 0x8CD4
-#define GL_SAMPLER_2D_ARRAY_NV 0x8DC1
-
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DNVPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERNVPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
-typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DNVPROC) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
-
-#define glCompressedTexImage3DNV GLEW_GET_FUN(__glewCompressedTexImage3DNV)
-#define glCompressedTexSubImage3DNV GLEW_GET_FUN(__glewCompressedTexSubImage3DNV)
-#define glCopyTexSubImage3DNV GLEW_GET_FUN(__glewCopyTexSubImage3DNV)
-#define glFramebufferTextureLayerNV GLEW_GET_FUN(__glewFramebufferTextureLayerNV)
-#define glTexImage3DNV GLEW_GET_FUN(__glewTexImage3DNV)
-#define glTexSubImage3DNV GLEW_GET_FUN(__glewTexSubImage3DNV)
-
-#define GLEW_NV_texture_array GLEW_GET_VAR(__GLEW_NV_texture_array)
-
-#endif /* GL_NV_texture_array */
-
-/* ------------------------- GL_NV_texture_barrier ------------------------- */
-
-#ifndef GL_NV_texture_barrier
-#define GL_NV_texture_barrier 1
-
-typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void);
-
-#define glTextureBarrierNV GLEW_GET_FUN(__glewTextureBarrierNV)
-
-#define GLEW_NV_texture_barrier GLEW_GET_VAR(__GLEW_NV_texture_barrier)
-
-#endif /* GL_NV_texture_barrier */
-
-/* ----------------------- GL_NV_texture_border_clamp ---------------------- */
-
-#ifndef GL_NV_texture_border_clamp
-#define GL_NV_texture_border_clamp 1
-
-#define GL_TEXTURE_BORDER_COLOR_NV 0x1004
-#define GL_CLAMP_TO_BORDER_NV 0x812D
-
-#define GLEW_NV_texture_border_clamp GLEW_GET_VAR(__GLEW_NV_texture_border_clamp)
-
-#endif /* GL_NV_texture_border_clamp */
-
-/* --------------------- GL_NV_texture_compression_latc -------------------- */
-
-#ifndef GL_NV_texture_compression_latc
-#define GL_NV_texture_compression_latc 1
-
-#define GL_COMPRESSED_LUMINANCE_LATC1_NV 0x8C70
-#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_NV 0x8C71
-#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_NV 0x8C72
-#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_NV 0x8C73
-
-#define GLEW_NV_texture_compression_latc GLEW_GET_VAR(__GLEW_NV_texture_compression_latc)
-
-#endif /* GL_NV_texture_compression_latc */
-
-/* --------------------- GL_NV_texture_compression_s3tc -------------------- */
-
-#ifndef GL_NV_texture_compression_s3tc
-#define GL_NV_texture_compression_s3tc 1
-
-#define GL_COMPRESSED_RGB_S3TC_DXT1_NV 0x83F0
-#define GL_COMPRESSED_RGBA_S3TC_DXT1_NV 0x83F1
-#define GL_COMPRESSED_RGBA_S3TC_DXT3_NV 0x83F2
-#define GL_COMPRESSED_RGBA_S3TC_DXT5_NV 0x83F3
-
-#define GLEW_NV_texture_compression_s3tc GLEW_GET_VAR(__GLEW_NV_texture_compression_s3tc)
-
-#endif /* GL_NV_texture_compression_s3tc */
-
-/* ----------------- GL_NV_texture_compression_s3tc_update ----------------- */
-
-#ifndef GL_NV_texture_compression_s3tc_update
-#define GL_NV_texture_compression_s3tc_update 1
-
-#define GLEW_NV_texture_compression_s3tc_update GLEW_GET_VAR(__GLEW_NV_texture_compression_s3tc_update)
-
-#endif /* GL_NV_texture_compression_s3tc_update */
-
-/* --------------------- GL_NV_texture_compression_vtc --------------------- */
-
-#ifndef GL_NV_texture_compression_vtc
-#define GL_NV_texture_compression_vtc 1
-
-#define GLEW_NV_texture_compression_vtc GLEW_GET_VAR(__GLEW_NV_texture_compression_vtc)
-
-#endif /* GL_NV_texture_compression_vtc */
-
-/* ----------------------- GL_NV_texture_env_combine4 ---------------------- */
-
-#ifndef GL_NV_texture_env_combine4
-#define GL_NV_texture_env_combine4 1
-
-#define GL_COMBINE4_NV 0x8503
-#define GL_SOURCE3_RGB_NV 0x8583
-#define GL_SOURCE3_ALPHA_NV 0x858B
-#define GL_OPERAND3_RGB_NV 0x8593
-#define GL_OPERAND3_ALPHA_NV 0x859B
-
-#define GLEW_NV_texture_env_combine4 GLEW_GET_VAR(__GLEW_NV_texture_env_combine4)
-
-#endif /* GL_NV_texture_env_combine4 */
-
-/* ---------------------- GL_NV_texture_expand_normal ---------------------- */
-
-#ifndef GL_NV_texture_expand_normal
-#define GL_NV_texture_expand_normal 1
-
-#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F
-
-#define GLEW_NV_texture_expand_normal GLEW_GET_VAR(__GLEW_NV_texture_expand_normal)
-
-#endif /* GL_NV_texture_expand_normal */
-
-/* ----------------------- GL_NV_texture_multisample ----------------------- */
-
-#ifndef GL_NV_texture_multisample
-#define GL_NV_texture_multisample 1
-
-#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045
-#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046
-
-typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
-typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
-typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
-typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
-typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
-typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
-
-#define glTexImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage2DMultisampleCoverageNV)
-#define glTexImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage3DMultisampleCoverageNV)
-#define glTextureImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage2DMultisampleCoverageNV)
-#define glTextureImage2DMultisampleNV GLEW_GET_FUN(__glewTextureImage2DMultisampleNV)
-#define glTextureImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage3DMultisampleCoverageNV)
-#define glTextureImage3DMultisampleNV GLEW_GET_FUN(__glewTextureImage3DMultisampleNV)
-
-#define GLEW_NV_texture_multisample GLEW_GET_VAR(__GLEW_NV_texture_multisample)
-
-#endif /* GL_NV_texture_multisample */
-
-/* ---------------------- GL_NV_texture_npot_2D_mipmap --------------------- */
-
-#ifndef GL_NV_texture_npot_2D_mipmap
-#define GL_NV_texture_npot_2D_mipmap 1
-
-#define GLEW_NV_texture_npot_2D_mipmap GLEW_GET_VAR(__GLEW_NV_texture_npot_2D_mipmap)
-
-#endif /* GL_NV_texture_npot_2D_mipmap */
-
-/* ------------------------ GL_NV_texture_rectangle ------------------------ */
-
-#ifndef GL_NV_texture_rectangle
-#define GL_NV_texture_rectangle 1
-
-#define GL_TEXTURE_RECTANGLE_NV 0x84F5
-#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6
-#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7
-#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
-
-#define GLEW_NV_texture_rectangle GLEW_GET_VAR(__GLEW_NV_texture_rectangle)
-
-#endif /* GL_NV_texture_rectangle */
-
-/* ------------------- GL_NV_texture_rectangle_compressed ------------------ */
-
-#ifndef GL_NV_texture_rectangle_compressed
-#define GL_NV_texture_rectangle_compressed 1
-
-#define GLEW_NV_texture_rectangle_compressed GLEW_GET_VAR(__GLEW_NV_texture_rectangle_compressed)
-
-#endif /* GL_NV_texture_rectangle_compressed */
-
-/* -------------------------- GL_NV_texture_shader ------------------------- */
-
-#ifndef GL_NV_texture_shader
-#define GL_NV_texture_shader 1
-
-#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C
-#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
-#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
-#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
-#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
-#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
-#define GL_DSDT_MAG_INTENSITY_NV 0x86DC
-#define GL_SHADER_CONSISTENT_NV 0x86DD
-#define GL_TEXTURE_SHADER_NV 0x86DE
-#define GL_SHADER_OPERATION_NV 0x86DF
-#define GL_CULL_MODES_NV 0x86E0
-#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1
-#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1
-#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2
-#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2
-#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3
-#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3
-#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4
-#define GL_CONST_EYE_NV 0x86E5
-#define GL_PASS_THROUGH_NV 0x86E6
-#define GL_CULL_FRAGMENT_NV 0x86E7
-#define GL_OFFSET_TEXTURE_2D_NV 0x86E8
-#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9
-#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA
-#define GL_DOT_PRODUCT_NV 0x86EC
-#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED
-#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE
-#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
-#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
-#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
-#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
-#define GL_HILO_NV 0x86F4
-#define GL_DSDT_NV 0x86F5
-#define GL_DSDT_MAG_NV 0x86F6
-#define GL_DSDT_MAG_VIB_NV 0x86F7
-#define GL_HILO16_NV 0x86F8
-#define GL_SIGNED_HILO_NV 0x86F9
-#define GL_SIGNED_HILO16_NV 0x86FA
-#define GL_SIGNED_RGBA_NV 0x86FB
-#define GL_SIGNED_RGBA8_NV 0x86FC
-#define GL_SIGNED_RGB_NV 0x86FE
-#define GL_SIGNED_RGB8_NV 0x86FF
-#define GL_SIGNED_LUMINANCE_NV 0x8701
-#define GL_SIGNED_LUMINANCE8_NV 0x8702
-#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
-#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
-#define GL_SIGNED_ALPHA_NV 0x8705
-#define GL_SIGNED_ALPHA8_NV 0x8706
-#define GL_SIGNED_INTENSITY_NV 0x8707
-#define GL_SIGNED_INTENSITY8_NV 0x8708
-#define GL_DSDT8_NV 0x8709
-#define GL_DSDT8_MAG8_NV 0x870A
-#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
-#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
-#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
-#define GL_HI_SCALE_NV 0x870E
-#define GL_LO_SCALE_NV 0x870F
-#define GL_DS_SCALE_NV 0x8710
-#define GL_DT_SCALE_NV 0x8711
-#define GL_MAGNITUDE_SCALE_NV 0x8712
-#define GL_VIBRANCE_SCALE_NV 0x8713
-#define GL_HI_BIAS_NV 0x8714
-#define GL_LO_BIAS_NV 0x8715
-#define GL_DS_BIAS_NV 0x8716
-#define GL_DT_BIAS_NV 0x8717
-#define GL_MAGNITUDE_BIAS_NV 0x8718
-#define GL_VIBRANCE_BIAS_NV 0x8719
-#define GL_TEXTURE_BORDER_VALUES_NV 0x871A
-#define GL_TEXTURE_HI_SIZE_NV 0x871B
-#define GL_TEXTURE_LO_SIZE_NV 0x871C
-#define GL_TEXTURE_DS_SIZE_NV 0x871D
-#define GL_TEXTURE_DT_SIZE_NV 0x871E
-#define GL_TEXTURE_MAG_SIZE_NV 0x871F
-
-#define GLEW_NV_texture_shader GLEW_GET_VAR(__GLEW_NV_texture_shader)
-
-#endif /* GL_NV_texture_shader */
-
-/* ------------------------- GL_NV_texture_shader2 ------------------------- */
-
-#ifndef GL_NV_texture_shader2
-#define GL_NV_texture_shader2 1
-
-#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
-#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
-#define GL_DSDT_MAG_INTENSITY_NV 0x86DC
-#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF
-#define GL_HILO_NV 0x86F4
-#define GL_DSDT_NV 0x86F5
-#define GL_DSDT_MAG_NV 0x86F6
-#define GL_DSDT_MAG_VIB_NV 0x86F7
-#define GL_HILO16_NV 0x86F8
-#define GL_SIGNED_HILO_NV 0x86F9
-#define GL_SIGNED_HILO16_NV 0x86FA
-#define GL_SIGNED_RGBA_NV 0x86FB
-#define GL_SIGNED_RGBA8_NV 0x86FC
-#define GL_SIGNED_RGB_NV 0x86FE
-#define GL_SIGNED_RGB8_NV 0x86FF
-#define GL_SIGNED_LUMINANCE_NV 0x8701
-#define GL_SIGNED_LUMINANCE8_NV 0x8702
-#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
-#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
-#define GL_SIGNED_ALPHA_NV 0x8705
-#define GL_SIGNED_ALPHA8_NV 0x8706
-#define GL_SIGNED_INTENSITY_NV 0x8707
-#define GL_SIGNED_INTENSITY8_NV 0x8708
-#define GL_DSDT8_NV 0x8709
-#define GL_DSDT8_MAG8_NV 0x870A
-#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
-#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
-#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
-
-#define GLEW_NV_texture_shader2 GLEW_GET_VAR(__GLEW_NV_texture_shader2)
-
-#endif /* GL_NV_texture_shader2 */
-
-/* ------------------------- GL_NV_texture_shader3 ------------------------- */
-
-#ifndef GL_NV_texture_shader3
-#define GL_NV_texture_shader3 1
-
-#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
-#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
-#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
-#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
-#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854
-#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
-#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
-#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
-#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858
-#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859
-#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
-#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B
-#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C
-#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
-#define GL_HILO8_NV 0x885E
-#define GL_SIGNED_HILO8_NV 0x885F
-#define GL_FORCE_BLUE_TO_ONE_NV 0x8860
-
-#define GLEW_NV_texture_shader3 GLEW_GET_VAR(__GLEW_NV_texture_shader3)
-
-#endif /* GL_NV_texture_shader3 */
-
-/* ------------------------ GL_NV_transform_feedback ----------------------- */
-
-#ifndef GL_NV_transform_feedback
-#define GL_NV_transform_feedback 1
-
-#define GL_BACK_PRIMARY_COLOR_NV 0x8C77
-#define GL_BACK_SECONDARY_COLOR_NV 0x8C78
-#define GL_TEXTURE_COORD_NV 0x8C79
-#define GL_CLIP_DISTANCE_NV 0x8C7A
-#define GL_VERTEX_ID_NV 0x8C7B
-#define GL_PRIMITIVE_ID_NV 0x8C7C
-#define GL_GENERIC_ATTRIB_NV 0x8C7D
-#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E
-#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F
-#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80
-#define GL_ACTIVE_VARYINGS_NV 0x8C81
-#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82
-#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83
-#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84
-#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85
-#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86
-#define GL_PRIMITIVES_GENERATED_NV 0x8C87
-#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88
-#define GL_RASTERIZER_DISCARD_NV 0x8C89
-#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A
-#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B
-#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C
-#define GL_SEPARATE_ATTRIBS_NV 0x8C8D
-#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E
-#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F
-
-typedef void (GLAPIENTRY * PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name);
-typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode);
-typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
-typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
-typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKNVPROC) (void);
-typedef void (GLAPIENTRY * PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
-typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location);
-typedef GLint (GLAPIENTRY * PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name);
-typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode);
-typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
-
-#define glActiveVaryingNV GLEW_GET_FUN(__glewActiveVaryingNV)
-#define glBeginTransformFeedbackNV GLEW_GET_FUN(__glewBeginTransformFeedbackNV)
-#define glBindBufferBaseNV GLEW_GET_FUN(__glewBindBufferBaseNV)
-#define glBindBufferOffsetNV GLEW_GET_FUN(__glewBindBufferOffsetNV)
-#define glBindBufferRangeNV GLEW_GET_FUN(__glewBindBufferRangeNV)
-#define glEndTransformFeedbackNV GLEW_GET_FUN(__glewEndTransformFeedbackNV)
-#define glGetActiveVaryingNV GLEW_GET_FUN(__glewGetActiveVaryingNV)
-#define glGetTransformFeedbackVaryingNV GLEW_GET_FUN(__glewGetTransformFeedbackVaryingNV)
-#define glGetVaryingLocationNV GLEW_GET_FUN(__glewGetVaryingLocationNV)
-#define glTransformFeedbackAttribsNV GLEW_GET_FUN(__glewTransformFeedbackAttribsNV)
-#define glTransformFeedbackVaryingsNV GLEW_GET_FUN(__glewTransformFeedbackVaryingsNV)
-
-#define GLEW_NV_transform_feedback GLEW_GET_VAR(__GLEW_NV_transform_feedback)
-
-#endif /* GL_NV_transform_feedback */
-
-/* ----------------------- GL_NV_transform_feedback2 ----------------------- */
-
-#ifndef GL_NV_transform_feedback2
-#define GL_NV_transform_feedback2 1
-
-#define GL_TRANSFORM_FEEDBACK_NV 0x8E22
-#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23
-#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24
-#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25
-
-typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id);
-typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id);
-typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint* ids);
-typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void);
-typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void);
-
-#define glBindTransformFeedbackNV GLEW_GET_FUN(__glewBindTransformFeedbackNV)
-#define glDeleteTransformFeedbacksNV GLEW_GET_FUN(__glewDeleteTransformFeedbacksNV)
-#define glDrawTransformFeedbackNV GLEW_GET_FUN(__glewDrawTransformFeedbackNV)
-#define glGenTransformFeedbacksNV GLEW_GET_FUN(__glewGenTransformFeedbacksNV)
-#define glIsTransformFeedbackNV GLEW_GET_FUN(__glewIsTransformFeedbackNV)
-#define glPauseTransformFeedbackNV GLEW_GET_FUN(__glewPauseTransformFeedbackNV)
-#define glResumeTransformFeedbackNV GLEW_GET_FUN(__glewResumeTransformFeedbackNV)
-
-#define GLEW_NV_transform_feedback2 GLEW_GET_VAR(__GLEW_NV_transform_feedback2)
-
-#endif /* GL_NV_transform_feedback2 */
-
-/* ------------------ GL_NV_uniform_buffer_unified_memory ------------------ */
-
-#ifndef GL_NV_uniform_buffer_unified_memory
-#define GL_NV_uniform_buffer_unified_memory 1
-
-#define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E
-#define GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F
-#define GL_UNIFORM_BUFFER_LENGTH_NV 0x9370
-
-#define GLEW_NV_uniform_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_uniform_buffer_unified_memory)
-
-#endif /* GL_NV_uniform_buffer_unified_memory */
-
-/* -------------------------- GL_NV_vdpau_interop -------------------------- */
-
-#ifndef GL_NV_vdpau_interop
-#define GL_NV_vdpau_interop 1
-
-#define GL_SURFACE_STATE_NV 0x86EB
-#define GL_SURFACE_REGISTERED_NV 0x86FD
-#define GL_SURFACE_MAPPED_NV 0x8700
-#define GL_WRITE_DISCARD_NV 0x88BE
-
-typedef GLintptr GLvdpauSurfaceNV;
-
-typedef void (GLAPIENTRY * PFNGLVDPAUFININVPROC) (void);
-typedef void (GLAPIENTRY * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values);
-typedef void (GLAPIENTRY * PFNGLVDPAUINITNVPROC) (const void* vdpDevice, const void*getProcAddress);
-typedef void (GLAPIENTRY * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface);
-typedef void (GLAPIENTRY * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces);
-typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
-typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
-typedef void (GLAPIENTRY * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access);
-typedef void (GLAPIENTRY * PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces);
-typedef void (GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface);
-
-#define glVDPAUFiniNV GLEW_GET_FUN(__glewVDPAUFiniNV)
-#define glVDPAUGetSurfaceivNV GLEW_GET_FUN(__glewVDPAUGetSurfaceivNV)
-#define glVDPAUInitNV GLEW_GET_FUN(__glewVDPAUInitNV)
-#define glVDPAUIsSurfaceNV GLEW_GET_FUN(__glewVDPAUIsSurfaceNV)
-#define glVDPAUMapSurfacesNV GLEW_GET_FUN(__glewVDPAUMapSurfacesNV)
-#define glVDPAURegisterOutputSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterOutputSurfaceNV)
-#define glVDPAURegisterVideoSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceNV)
-#define glVDPAUSurfaceAccessNV GLEW_GET_FUN(__glewVDPAUSurfaceAccessNV)
-#define glVDPAUUnmapSurfacesNV GLEW_GET_FUN(__glewVDPAUUnmapSurfacesNV)
-#define glVDPAUUnregisterSurfaceNV GLEW_GET_FUN(__glewVDPAUUnregisterSurfaceNV)
-
-#define GLEW_NV_vdpau_interop GLEW_GET_VAR(__GLEW_NV_vdpau_interop)
-
-#endif /* GL_NV_vdpau_interop */
-
-/* -------------------------- GL_NV_vdpau_interop2 ------------------------- */
-
-#ifndef GL_NV_vdpau_interop2
-#define GL_NV_vdpau_interop2 1
-
-typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure);
-
-#define glVDPAURegisterVideoSurfaceWithPictureStructureNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceWithPictureStructureNV)
-
-#define GLEW_NV_vdpau_interop2 GLEW_GET_VAR(__GLEW_NV_vdpau_interop2)
-
-#endif /* GL_NV_vdpau_interop2 */
-
-/* ------------------------ GL_NV_vertex_array_range ----------------------- */
-
-#ifndef GL_NV_vertex_array_range
-#define GL_NV_vertex_array_range 1
-
-#define GL_VERTEX_ARRAY_RANGE_NV 0x851D
-#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E
-#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F
-#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520
-#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521
-
-typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void);
-typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, void *pointer);
-
-#define glFlushVertexArrayRangeNV GLEW_GET_FUN(__glewFlushVertexArrayRangeNV)
-#define glVertexArrayRangeNV GLEW_GET_FUN(__glewVertexArrayRangeNV)
-
-#define GLEW_NV_vertex_array_range GLEW_GET_VAR(__GLEW_NV_vertex_array_range)
-
-#endif /* GL_NV_vertex_array_range */
-
-/* ----------------------- GL_NV_vertex_array_range2 ----------------------- */
-
-#ifndef GL_NV_vertex_array_range2
-#define GL_NV_vertex_array_range2 1
-
-#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
-
-#define GLEW_NV_vertex_array_range2 GLEW_GET_VAR(__GLEW_NV_vertex_array_range2)
-
-#endif /* GL_NV_vertex_array_range2 */
-
-/* ------------------- GL_NV_vertex_attrib_integer_64bit ------------------- */
-
-#ifndef GL_NV_vertex_attrib_integer_64bit
-#define GL_NV_vertex_attrib_integer_64bit 1
-
-#define GL_INT64_NV 0x140E
-#define GL_UNSIGNED_INT64_NV 0x140F
-
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT* params);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride);
-
-#define glGetVertexAttribLi64vNV GLEW_GET_FUN(__glewGetVertexAttribLi64vNV)
-#define glGetVertexAttribLui64vNV GLEW_GET_FUN(__glewGetVertexAttribLui64vNV)
-#define glVertexAttribL1i64NV GLEW_GET_FUN(__glewVertexAttribL1i64NV)
-#define glVertexAttribL1i64vNV GLEW_GET_FUN(__glewVertexAttribL1i64vNV)
-#define glVertexAttribL1ui64NV GLEW_GET_FUN(__glewVertexAttribL1ui64NV)
-#define glVertexAttribL1ui64vNV GLEW_GET_FUN(__glewVertexAttribL1ui64vNV)
-#define glVertexAttribL2i64NV GLEW_GET_FUN(__glewVertexAttribL2i64NV)
-#define glVertexAttribL2i64vNV GLEW_GET_FUN(__glewVertexAttribL2i64vNV)
-#define glVertexAttribL2ui64NV GLEW_GET_FUN(__glewVertexAttribL2ui64NV)
-#define glVertexAttribL2ui64vNV GLEW_GET_FUN(__glewVertexAttribL2ui64vNV)
-#define glVertexAttribL3i64NV GLEW_GET_FUN(__glewVertexAttribL3i64NV)
-#define glVertexAttribL3i64vNV GLEW_GET_FUN(__glewVertexAttribL3i64vNV)
-#define glVertexAttribL3ui64NV GLEW_GET_FUN(__glewVertexAttribL3ui64NV)
-#define glVertexAttribL3ui64vNV GLEW_GET_FUN(__glewVertexAttribL3ui64vNV)
-#define glVertexAttribL4i64NV GLEW_GET_FUN(__glewVertexAttribL4i64NV)
-#define glVertexAttribL4i64vNV GLEW_GET_FUN(__glewVertexAttribL4i64vNV)
-#define glVertexAttribL4ui64NV GLEW_GET_FUN(__glewVertexAttribL4ui64NV)
-#define glVertexAttribL4ui64vNV GLEW_GET_FUN(__glewVertexAttribL4ui64vNV)
-#define glVertexAttribLFormatNV GLEW_GET_FUN(__glewVertexAttribLFormatNV)
-
-#define GLEW_NV_vertex_attrib_integer_64bit GLEW_GET_VAR(__GLEW_NV_vertex_attrib_integer_64bit)
-
-#endif /* GL_NV_vertex_attrib_integer_64bit */
-
-/* ------------------- GL_NV_vertex_buffer_unified_memory ------------------ */
-
-#ifndef GL_NV_vertex_buffer_unified_memory
-#define GL_NV_vertex_buffer_unified_memory 1
-
-#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E
-#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F
-#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20
-#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21
-#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22
-#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23
-#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24
-#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25
-#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26
-#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27
-#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28
-#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29
-#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A
-#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B
-#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C
-#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D
-#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E
-#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F
-#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30
-#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31
-#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32
-#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33
-#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40
-#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41
-#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42
-
-typedef void (GLAPIENTRY * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
-typedef void (GLAPIENTRY * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT result[]);
-typedef void (GLAPIENTRY * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride);
-typedef void (GLAPIENTRY * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
-
-#define glBufferAddressRangeNV GLEW_GET_FUN(__glewBufferAddressRangeNV)
-#define glColorFormatNV GLEW_GET_FUN(__glewColorFormatNV)
-#define glEdgeFlagFormatNV GLEW_GET_FUN(__glewEdgeFlagFormatNV)
-#define glFogCoordFormatNV GLEW_GET_FUN(__glewFogCoordFormatNV)
-#define glGetIntegerui64i_vNV GLEW_GET_FUN(__glewGetIntegerui64i_vNV)
-#define glIndexFormatNV GLEW_GET_FUN(__glewIndexFormatNV)
-#define glNormalFormatNV GLEW_GET_FUN(__glewNormalFormatNV)
-#define glSecondaryColorFormatNV GLEW_GET_FUN(__glewSecondaryColorFormatNV)
-#define glTexCoordFormatNV GLEW_GET_FUN(__glewTexCoordFormatNV)
-#define glVertexAttribFormatNV GLEW_GET_FUN(__glewVertexAttribFormatNV)
-#define glVertexAttribIFormatNV GLEW_GET_FUN(__glewVertexAttribIFormatNV)
-#define glVertexFormatNV GLEW_GET_FUN(__glewVertexFormatNV)
-
-#define GLEW_NV_vertex_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_vertex_buffer_unified_memory)
-
-#endif /* GL_NV_vertex_buffer_unified_memory */
-
-/* -------------------------- GL_NV_vertex_program ------------------------- */
-
-#ifndef GL_NV_vertex_program
-#define GL_NV_vertex_program 1
-
-#define GL_VERTEX_PROGRAM_NV 0x8620
-#define GL_VERTEX_STATE_PROGRAM_NV 0x8621
-#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623
-#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624
-#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625
-#define GL_CURRENT_ATTRIB_NV 0x8626
-#define GL_PROGRAM_LENGTH_NV 0x8627
-#define GL_PROGRAM_STRING_NV 0x8628
-#define GL_MODELVIEW_PROJECTION_NV 0x8629
-#define GL_IDENTITY_NV 0x862A
-#define GL_INVERSE_NV 0x862B
-#define GL_TRANSPOSE_NV 0x862C
-#define GL_INVERSE_TRANSPOSE_NV 0x862D
-#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
-#define GL_MAX_TRACK_MATRICES_NV 0x862F
-#define GL_MATRIX0_NV 0x8630
-#define GL_MATRIX1_NV 0x8631
-#define GL_MATRIX2_NV 0x8632
-#define GL_MATRIX3_NV 0x8633
-#define GL_MATRIX4_NV 0x8634
-#define GL_MATRIX5_NV 0x8635
-#define GL_MATRIX6_NV 0x8636
-#define GL_MATRIX7_NV 0x8637
-#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640
-#define GL_CURRENT_MATRIX_NV 0x8641
-#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642
-#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643
-#define GL_PROGRAM_PARAMETER_NV 0x8644
-#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645
-#define GL_PROGRAM_TARGET_NV 0x8646
-#define GL_PROGRAM_RESIDENT_NV 0x8647
-#define GL_TRACK_MATRIX_NV 0x8648
-#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649
-#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A
-#define GL_PROGRAM_ERROR_POSITION_NV 0x864B
-#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650
-#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651
-#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652
-#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653
-#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654
-#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655
-#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656
-#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657
-#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658
-#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659
-#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A
-#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B
-#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C
-#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D
-#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E
-#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F
-#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660
-#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661
-#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662
-#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663
-#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664
-#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665
-#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666
-#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667
-#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668
-#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669
-#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A
-#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B
-#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C
-#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D
-#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E
-#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F
-#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670
-#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671
-#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672
-#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673
-#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674
-#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675
-#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676
-#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677
-#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678
-#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679
-#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A
-#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B
-#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C
-#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D
-#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E
-#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F
-
-typedef GLboolean (GLAPIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint* ids, GLboolean *residences);
-typedef void (GLAPIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id);
-typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte* program);
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, void** pointer);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id);
-typedef void (GLAPIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte* program);
-typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, GLuint* ids);
-typedef void (GLAPIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei n, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei n, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei n, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei n, const GLshort* v);
-typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei n, const GLubyte* v);
-
-#define glAreProgramsResidentNV GLEW_GET_FUN(__glewAreProgramsResidentNV)
-#define glBindProgramNV GLEW_GET_FUN(__glewBindProgramNV)
-#define glDeleteProgramsNV GLEW_GET_FUN(__glewDeleteProgramsNV)
-#define glExecuteProgramNV GLEW_GET_FUN(__glewExecuteProgramNV)
-#define glGenProgramsNV GLEW_GET_FUN(__glewGenProgramsNV)
-#define glGetProgramParameterdvNV GLEW_GET_FUN(__glewGetProgramParameterdvNV)
-#define glGetProgramParameterfvNV GLEW_GET_FUN(__glewGetProgramParameterfvNV)
-#define glGetProgramStringNV GLEW_GET_FUN(__glewGetProgramStringNV)
-#define glGetProgramivNV GLEW_GET_FUN(__glewGetProgramivNV)
-#define glGetTrackMatrixivNV GLEW_GET_FUN(__glewGetTrackMatrixivNV)
-#define glGetVertexAttribPointervNV GLEW_GET_FUN(__glewGetVertexAttribPointervNV)
-#define glGetVertexAttribdvNV GLEW_GET_FUN(__glewGetVertexAttribdvNV)
-#define glGetVertexAttribfvNV GLEW_GET_FUN(__glewGetVertexAttribfvNV)
-#define glGetVertexAttribivNV GLEW_GET_FUN(__glewGetVertexAttribivNV)
-#define glIsProgramNV GLEW_GET_FUN(__glewIsProgramNV)
-#define glLoadProgramNV GLEW_GET_FUN(__glewLoadProgramNV)
-#define glProgramParameter4dNV GLEW_GET_FUN(__glewProgramParameter4dNV)
-#define glProgramParameter4dvNV GLEW_GET_FUN(__glewProgramParameter4dvNV)
-#define glProgramParameter4fNV GLEW_GET_FUN(__glewProgramParameter4fNV)
-#define glProgramParameter4fvNV GLEW_GET_FUN(__glewProgramParameter4fvNV)
-#define glProgramParameters4dvNV GLEW_GET_FUN(__glewProgramParameters4dvNV)
-#define glProgramParameters4fvNV GLEW_GET_FUN(__glewProgramParameters4fvNV)
-#define glRequestResidentProgramsNV GLEW_GET_FUN(__glewRequestResidentProgramsNV)
-#define glTrackMatrixNV GLEW_GET_FUN(__glewTrackMatrixNV)
-#define glVertexAttrib1dNV GLEW_GET_FUN(__glewVertexAttrib1dNV)
-#define glVertexAttrib1dvNV GLEW_GET_FUN(__glewVertexAttrib1dvNV)
-#define glVertexAttrib1fNV GLEW_GET_FUN(__glewVertexAttrib1fNV)
-#define glVertexAttrib1fvNV GLEW_GET_FUN(__glewVertexAttrib1fvNV)
-#define glVertexAttrib1sNV GLEW_GET_FUN(__glewVertexAttrib1sNV)
-#define glVertexAttrib1svNV GLEW_GET_FUN(__glewVertexAttrib1svNV)
-#define glVertexAttrib2dNV GLEW_GET_FUN(__glewVertexAttrib2dNV)
-#define glVertexAttrib2dvNV GLEW_GET_FUN(__glewVertexAttrib2dvNV)
-#define glVertexAttrib2fNV GLEW_GET_FUN(__glewVertexAttrib2fNV)
-#define glVertexAttrib2fvNV GLEW_GET_FUN(__glewVertexAttrib2fvNV)
-#define glVertexAttrib2sNV GLEW_GET_FUN(__glewVertexAttrib2sNV)
-#define glVertexAttrib2svNV GLEW_GET_FUN(__glewVertexAttrib2svNV)
-#define glVertexAttrib3dNV GLEW_GET_FUN(__glewVertexAttrib3dNV)
-#define glVertexAttrib3dvNV GLEW_GET_FUN(__glewVertexAttrib3dvNV)
-#define glVertexAttrib3fNV GLEW_GET_FUN(__glewVertexAttrib3fNV)
-#define glVertexAttrib3fvNV GLEW_GET_FUN(__glewVertexAttrib3fvNV)
-#define glVertexAttrib3sNV GLEW_GET_FUN(__glewVertexAttrib3sNV)
-#define glVertexAttrib3svNV GLEW_GET_FUN(__glewVertexAttrib3svNV)
-#define glVertexAttrib4dNV GLEW_GET_FUN(__glewVertexAttrib4dNV)
-#define glVertexAttrib4dvNV GLEW_GET_FUN(__glewVertexAttrib4dvNV)
-#define glVertexAttrib4fNV GLEW_GET_FUN(__glewVertexAttrib4fNV)
-#define glVertexAttrib4fvNV GLEW_GET_FUN(__glewVertexAttrib4fvNV)
-#define glVertexAttrib4sNV GLEW_GET_FUN(__glewVertexAttrib4sNV)
-#define glVertexAttrib4svNV GLEW_GET_FUN(__glewVertexAttrib4svNV)
-#define glVertexAttrib4ubNV GLEW_GET_FUN(__glewVertexAttrib4ubNV)
-#define glVertexAttrib4ubvNV GLEW_GET_FUN(__glewVertexAttrib4ubvNV)
-#define glVertexAttribPointerNV GLEW_GET_FUN(__glewVertexAttribPointerNV)
-#define glVertexAttribs1dvNV GLEW_GET_FUN(__glewVertexAttribs1dvNV)
-#define glVertexAttribs1fvNV GLEW_GET_FUN(__glewVertexAttribs1fvNV)
-#define glVertexAttribs1svNV GLEW_GET_FUN(__glewVertexAttribs1svNV)
-#define glVertexAttribs2dvNV GLEW_GET_FUN(__glewVertexAttribs2dvNV)
-#define glVertexAttribs2fvNV GLEW_GET_FUN(__glewVertexAttribs2fvNV)
-#define glVertexAttribs2svNV GLEW_GET_FUN(__glewVertexAttribs2svNV)
-#define glVertexAttribs3dvNV GLEW_GET_FUN(__glewVertexAttribs3dvNV)
-#define glVertexAttribs3fvNV GLEW_GET_FUN(__glewVertexAttribs3fvNV)
-#define glVertexAttribs3svNV GLEW_GET_FUN(__glewVertexAttribs3svNV)
-#define glVertexAttribs4dvNV GLEW_GET_FUN(__glewVertexAttribs4dvNV)
-#define glVertexAttribs4fvNV GLEW_GET_FUN(__glewVertexAttribs4fvNV)
-#define glVertexAttribs4svNV GLEW_GET_FUN(__glewVertexAttribs4svNV)
-#define glVertexAttribs4ubvNV GLEW_GET_FUN(__glewVertexAttribs4ubvNV)
-
-#define GLEW_NV_vertex_program GLEW_GET_VAR(__GLEW_NV_vertex_program)
-
-#endif /* GL_NV_vertex_program */
-
-/* ------------------------ GL_NV_vertex_program1_1 ------------------------ */
-
-#ifndef GL_NV_vertex_program1_1
-#define GL_NV_vertex_program1_1 1
-
-#define GLEW_NV_vertex_program1_1 GLEW_GET_VAR(__GLEW_NV_vertex_program1_1)
-
-#endif /* GL_NV_vertex_program1_1 */
-
-/* ------------------------- GL_NV_vertex_program2 ------------------------- */
-
-#ifndef GL_NV_vertex_program2
-#define GL_NV_vertex_program2 1
-
-#define GLEW_NV_vertex_program2 GLEW_GET_VAR(__GLEW_NV_vertex_program2)
-
-#endif /* GL_NV_vertex_program2 */
-
-/* ---------------------- GL_NV_vertex_program2_option --------------------- */
-
-#ifndef GL_NV_vertex_program2_option
-#define GL_NV_vertex_program2_option 1
-
-#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
-#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
-
-#define GLEW_NV_vertex_program2_option GLEW_GET_VAR(__GLEW_NV_vertex_program2_option)
-
-#endif /* GL_NV_vertex_program2_option */
-
-/* ------------------------- GL_NV_vertex_program3 ------------------------- */
-
-#ifndef GL_NV_vertex_program3
-#define GL_NV_vertex_program3 1
-
-#define MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
-
-#define GLEW_NV_vertex_program3 GLEW_GET_VAR(__GLEW_NV_vertex_program3)
-
-#endif /* GL_NV_vertex_program3 */
-
-/* ------------------------- GL_NV_vertex_program4 ------------------------- */
-
-#ifndef GL_NV_vertex_program4
-#define GL_NV_vertex_program4 1
-
-#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD
-
-#define GLEW_NV_vertex_program4 GLEW_GET_VAR(__GLEW_NV_vertex_program4)
-
-#endif /* GL_NV_vertex_program4 */
-
-/* -------------------------- GL_NV_video_capture -------------------------- */
-
-#ifndef GL_NV_video_capture
-#define GL_NV_video_capture 1
-
-#define GL_VIDEO_BUFFER_NV 0x9020
-#define GL_VIDEO_BUFFER_BINDING_NV 0x9021
-#define GL_FIELD_UPPER_NV 0x9022
-#define GL_FIELD_LOWER_NV 0x9023
-#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024
-#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025
-#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026
-#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027
-#define GL_VIDEO_BUFFER_PITCH_NV 0x9028
-#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029
-#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A
-#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B
-#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C
-#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D
-#define GL_PARTIAL_SUCCESS_NV 0x902E
-#define GL_SUCCESS_NV 0x902F
-#define GL_FAILURE_NV 0x9030
-#define GL_YCBYCR8_422_NV 0x9031
-#define GL_YCBAYCR8A_4224_NV 0x9032
-#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033
-#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034
-#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035
-#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036
-#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037
-#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038
-#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039
-#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A
-#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B
-#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C
-
-typedef void (GLAPIENTRY * PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
-typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset);
-typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
-typedef void (GLAPIENTRY * PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
-typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint* params);
-typedef GLenum (GLAPIENTRY * PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint* sequence_num, GLuint64EXT *capture_time);
-typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params);
-typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params);
-
-#define glBeginVideoCaptureNV GLEW_GET_FUN(__glewBeginVideoCaptureNV)
-#define glBindVideoCaptureStreamBufferNV GLEW_GET_FUN(__glewBindVideoCaptureStreamBufferNV)
-#define glBindVideoCaptureStreamTextureNV GLEW_GET_FUN(__glewBindVideoCaptureStreamTextureNV)
-#define glEndVideoCaptureNV GLEW_GET_FUN(__glewEndVideoCaptureNV)
-#define glGetVideoCaptureStreamdvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamdvNV)
-#define glGetVideoCaptureStreamfvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamfvNV)
-#define glGetVideoCaptureStreamivNV GLEW_GET_FUN(__glewGetVideoCaptureStreamivNV)
-#define glGetVideoCaptureivNV GLEW_GET_FUN(__glewGetVideoCaptureivNV)
-#define glVideoCaptureNV GLEW_GET_FUN(__glewVideoCaptureNV)
-#define glVideoCaptureStreamParameterdvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterdvNV)
-#define glVideoCaptureStreamParameterfvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterfvNV)
-#define glVideoCaptureStreamParameterivNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterivNV)
-
-#define GLEW_NV_video_capture GLEW_GET_VAR(__GLEW_NV_video_capture)
-
-#endif /* GL_NV_video_capture */
-
-/* -------------------------- GL_NV_viewport_array ------------------------- */
-
-#ifndef GL_NV_viewport_array
-#define GL_NV_viewport_array 1
-
-#define GL_DEPTH_RANGE 0x0B70
-#define GL_VIEWPORT 0x0BA2
-#define GL_SCISSOR_BOX 0x0C10
-#define GL_SCISSOR_TEST 0x0C11
-#define GL_MAX_VIEWPORTS_NV 0x825B
-#define GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C
-#define GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D
-#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F
-
-typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYFVNVPROC) (GLuint first, GLsizei count, const GLfloat * v);
-typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDFNVPROC) (GLuint index, GLfloat n, GLfloat f);
-typedef void (GLAPIENTRY * PFNGLDISABLEINVPROC) (GLenum target, GLuint index);
-typedef void (GLAPIENTRY * PFNGLENABLEINVPROC) (GLenum target, GLuint index);
-typedef void (GLAPIENTRY * PFNGLGETFLOATI_VNVPROC) (GLenum target, GLuint index, GLfloat* data);
-typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINVPROC) (GLenum target, GLuint index);
-typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVNVPROC) (GLuint first, GLsizei count, const GLint * v);
-typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDNVPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVNVPROC) (GLuint index, const GLint * v);
-typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVNVPROC) (GLuint first, GLsizei count, const GLfloat * v);
-typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
-typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVNVPROC) (GLuint index, const GLfloat * v);
-
-#define glDepthRangeArrayfvNV GLEW_GET_FUN(__glewDepthRangeArrayfvNV)
-#define glDepthRangeIndexedfNV GLEW_GET_FUN(__glewDepthRangeIndexedfNV)
-#define glDisableiNV GLEW_GET_FUN(__glewDisableiNV)
-#define glEnableiNV GLEW_GET_FUN(__glewEnableiNV)
-#define glGetFloati_vNV GLEW_GET_FUN(__glewGetFloati_vNV)
-#define glIsEnablediNV GLEW_GET_FUN(__glewIsEnablediNV)
-#define glScissorArrayvNV GLEW_GET_FUN(__glewScissorArrayvNV)
-#define glScissorIndexedNV GLEW_GET_FUN(__glewScissorIndexedNV)
-#define glScissorIndexedvNV GLEW_GET_FUN(__glewScissorIndexedvNV)
-#define glViewportArrayvNV GLEW_GET_FUN(__glewViewportArrayvNV)
-#define glViewportIndexedfNV GLEW_GET_FUN(__glewViewportIndexedfNV)
-#define glViewportIndexedfvNV GLEW_GET_FUN(__glewViewportIndexedfvNV)
-
-#define GLEW_NV_viewport_array GLEW_GET_VAR(__GLEW_NV_viewport_array)
-
-#endif /* GL_NV_viewport_array */
-
-/* ------------------------- GL_NV_viewport_array2 ------------------------- */
-
-#ifndef GL_NV_viewport_array2
-#define GL_NV_viewport_array2 1
-
-#define GLEW_NV_viewport_array2 GLEW_GET_VAR(__GLEW_NV_viewport_array2)
-
-#endif /* GL_NV_viewport_array2 */
-
-/* ------------------------- GL_NV_viewport_swizzle ------------------------ */
-
-#ifndef GL_NV_viewport_swizzle
-#define GL_NV_viewport_swizzle 1
-
-#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350
-#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351
-#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352
-#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353
-#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354
-#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355
-#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356
-#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357
-#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358
-#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359
-#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A
-#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B
-
-typedef void (GLAPIENTRY * PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
-
-#define glViewportSwizzleNV GLEW_GET_FUN(__glewViewportSwizzleNV)
-
-#define GLEW_NV_viewport_swizzle GLEW_GET_VAR(__GLEW_NV_viewport_swizzle)
-
-#endif /* GL_NV_viewport_swizzle */
-
-/* ---------------------------- GL_OES_EGL_image --------------------------- */
-
-#ifndef GL_OES_EGL_image
-#define GL_OES_EGL_image 1
-
-typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
-typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
-
-#define glEGLImageTargetRenderbufferStorageOES GLEW_GET_FUN(__glewEGLImageTargetRenderbufferStorageOES)
-#define glEGLImageTargetTexture2DOES GLEW_GET_FUN(__glewEGLImageTargetTexture2DOES)
-
-#define GLEW_OES_EGL_image GLEW_GET_VAR(__GLEW_OES_EGL_image)
-
-#endif /* GL_OES_EGL_image */
-
-/* ----------------------- GL_OES_EGL_image_external ----------------------- */
-
-#ifndef GL_OES_EGL_image_external
-#define GL_OES_EGL_image_external 1
-
-#define GL_TEXTURE_EXTERNAL_OES 0x8D65
-#define GL_SAMPLER_EXTERNAL_OES 0x8D66
-#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
-#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
-
-#define GLEW_OES_EGL_image_external GLEW_GET_VAR(__GLEW_OES_EGL_image_external)
-
-#endif /* GL_OES_EGL_image_external */
-
-/* -------------------- GL_OES_EGL_image_external_essl3 -------------------- */
-
-#ifndef GL_OES_EGL_image_external_essl3
-#define GL_OES_EGL_image_external_essl3 1
-
-#define GLEW_OES_EGL_image_external_essl3 GLEW_GET_VAR(__GLEW_OES_EGL_image_external_essl3)
-
-#endif /* GL_OES_EGL_image_external_essl3 */
-
-/* --------------------- GL_OES_blend_equation_separate -------------------- */
-
-#ifndef GL_OES_blend_equation_separate
-#define GL_OES_blend_equation_separate 1
-
-#define GL_BLEND_EQUATION_RGB_OES 0x8009
-#define GL_BLEND_EQUATION_ALPHA_OES 0x883D
-
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEOESPROC) (GLenum modeRGB, GLenum modeAlpha);
-
-#define glBlendEquationSeparateOES GLEW_GET_FUN(__glewBlendEquationSeparateOES)
-
-#define GLEW_OES_blend_equation_separate GLEW_GET_VAR(__GLEW_OES_blend_equation_separate)
-
-#endif /* GL_OES_blend_equation_separate */
-
-/* ----------------------- GL_OES_blend_func_separate ---------------------- */
-
-#ifndef GL_OES_blend_func_separate
-#define GL_OES_blend_func_separate 1
-
-#define GL_BLEND_DST_RGB_OES 0x80C8
-#define GL_BLEND_SRC_RGB_OES 0x80C9
-#define GL_BLEND_DST_ALPHA_OES 0x80CA
-#define GL_BLEND_SRC_ALPHA_OES 0x80CB
-
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEOESPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
-
-#define glBlendFuncSeparateOES GLEW_GET_FUN(__glewBlendFuncSeparateOES)
-
-#define GLEW_OES_blend_func_separate GLEW_GET_VAR(__GLEW_OES_blend_func_separate)
-
-#endif /* GL_OES_blend_func_separate */
-
-/* ------------------------- GL_OES_blend_subtract ------------------------- */
-
-#ifndef GL_OES_blend_subtract
-#define GL_OES_blend_subtract 1
-
-#define GL_FUNC_ADD_OES 0x8006
-#define GL_BLEND_EQUATION_OES 0x8009
-#define GL_FUNC_SUBTRACT_OES 0x800A
-#define GL_FUNC_REVERSE_SUBTRACT_OES 0x800B
-
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONOESPROC) (GLenum mode);
-
-#define glBlendEquationOES GLEW_GET_FUN(__glewBlendEquationOES)
-
-#define GLEW_OES_blend_subtract GLEW_GET_VAR(__GLEW_OES_blend_subtract)
-
-#endif /* GL_OES_blend_subtract */
-
-/* ------------------------ GL_OES_byte_coordinates ------------------------ */
-
-#ifndef GL_OES_byte_coordinates
-#define GL_OES_byte_coordinates 1
-
-#define GLEW_OES_byte_coordinates GLEW_GET_VAR(__GLEW_OES_byte_coordinates)
-
-#endif /* GL_OES_byte_coordinates */
-
-/* ------------------ GL_OES_compressed_ETC1_RGB8_texture ------------------ */
-
-#ifndef GL_OES_compressed_ETC1_RGB8_texture
-#define GL_OES_compressed_ETC1_RGB8_texture 1
-
-#define GL_ETC1_RGB8_OES 0x8D64
-
-#define GLEW_OES_compressed_ETC1_RGB8_texture GLEW_GET_VAR(__GLEW_OES_compressed_ETC1_RGB8_texture)
-
-#endif /* GL_OES_compressed_ETC1_RGB8_texture */
-
-/* ------------------- GL_OES_compressed_paletted_texture ------------------ */
-
-#ifndef GL_OES_compressed_paletted_texture
-#define GL_OES_compressed_paletted_texture 1
-
-#define GL_PALETTE4_RGB8_OES 0x8B90
-#define GL_PALETTE4_RGBA8_OES 0x8B91
-#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
-#define GL_PALETTE4_RGBA4_OES 0x8B93
-#define GL_PALETTE4_RGB5_A1_OES 0x8B94
-#define GL_PALETTE8_RGB8_OES 0x8B95
-#define GL_PALETTE8_RGBA8_OES 0x8B96
-#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
-#define GL_PALETTE8_RGBA4_OES 0x8B98
-#define GL_PALETTE8_RGB5_A1_OES 0x8B99
-
-#define GLEW_OES_compressed_paletted_texture GLEW_GET_VAR(__GLEW_OES_compressed_paletted_texture)
-
-#endif /* GL_OES_compressed_paletted_texture */
-
-/* --------------------------- GL_OES_copy_image --------------------------- */
-
-#ifndef GL_OES_copy_image
-#define GL_OES_copy_image 1
-
-typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAOESPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
-
-#define glCopyImageSubDataOES GLEW_GET_FUN(__glewCopyImageSubDataOES)
-
-#define GLEW_OES_copy_image GLEW_GET_VAR(__GLEW_OES_copy_image)
-
-#endif /* GL_OES_copy_image */
-
-/* ----------------------------- GL_OES_depth24 ---------------------------- */
-
-#ifndef GL_OES_depth24
-#define GL_OES_depth24 1
-
-#define GL_DEPTH_COMPONENT24_OES 0x81A6
-
-#define GLEW_OES_depth24 GLEW_GET_VAR(__GLEW_OES_depth24)
-
-#endif /* GL_OES_depth24 */
-
-/* ----------------------------- GL_OES_depth32 ---------------------------- */
-
-#ifndef GL_OES_depth32
-#define GL_OES_depth32 1
-
-#define GL_DEPTH_COMPONENT32_OES 0x81A7
-
-#define GLEW_OES_depth32 GLEW_GET_VAR(__GLEW_OES_depth32)
-
-#endif /* GL_OES_depth32 */
-
-/* -------------------------- GL_OES_depth_texture ------------------------- */
-
-#ifndef GL_OES_depth_texture
-#define GL_OES_depth_texture 1
-
-#define GL_UNSIGNED_SHORT 0x1403
-#define GL_UNSIGNED_INT 0x1405
-#define GL_DEPTH_COMPONENT 0x1902
-
-#define GLEW_OES_depth_texture GLEW_GET_VAR(__GLEW_OES_depth_texture)
-
-#endif /* GL_OES_depth_texture */
-
-/* --------------------- GL_OES_depth_texture_cube_map --------------------- */
-
-#ifndef GL_OES_depth_texture_cube_map
-#define GL_OES_depth_texture_cube_map 1
-
-#define GL_UNSIGNED_SHORT 0x1403
-#define GL_UNSIGNED_INT 0x1405
-#define GL_DEPTH_COMPONENT 0x1902
-#define GL_DEPTH_STENCIL_OES 0x84F9
-#define GL_DEPTH24_STENCIL8_OES 0x88F0
-
-#define GLEW_OES_depth_texture_cube_map GLEW_GET_VAR(__GLEW_OES_depth_texture_cube_map)
-
-#endif /* GL_OES_depth_texture_cube_map */
-
-/* ---------------------- GL_OES_draw_buffers_indexed ---------------------- */
-
-#ifndef GL_OES_draw_buffers_indexed
-#define GL_OES_draw_buffers_indexed 1
-
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIOESPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
-typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIOESPROC) (GLuint buf, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIOESPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCIOESPROC) (GLuint buf, GLenum src, GLenum dst);
-typedef void (GLAPIENTRY * PFNGLCOLORMASKIOESPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
-typedef void (GLAPIENTRY * PFNGLDISABLEIOESPROC) (GLenum target, GLuint index);
-typedef void (GLAPIENTRY * PFNGLENABLEIOESPROC) (GLenum target, GLuint index);
-typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIOESPROC) (GLenum target, GLuint index);
-
-#define glBlendEquationSeparateiOES GLEW_GET_FUN(__glewBlendEquationSeparateiOES)
-#define glBlendEquationiOES GLEW_GET_FUN(__glewBlendEquationiOES)
-#define glBlendFuncSeparateiOES GLEW_GET_FUN(__glewBlendFuncSeparateiOES)
-#define glBlendFunciOES GLEW_GET_FUN(__glewBlendFunciOES)
-#define glColorMaskiOES GLEW_GET_FUN(__glewColorMaskiOES)
-#define glDisableiOES GLEW_GET_FUN(__glewDisableiOES)
-#define glEnableiOES GLEW_GET_FUN(__glewEnableiOES)
-#define glIsEnablediOES GLEW_GET_FUN(__glewIsEnablediOES)
-
-#define GLEW_OES_draw_buffers_indexed GLEW_GET_VAR(__GLEW_OES_draw_buffers_indexed)
-
-#endif /* GL_OES_draw_buffers_indexed */
-
-/* -------------------------- GL_OES_draw_texture -------------------------- */
-
-#ifndef GL_OES_draw_texture
-#define GL_OES_draw_texture 1
-
-#define GL_TEXTURE_CROP_RECT_OES 0x8B9D
-
-#define GLEW_OES_draw_texture GLEW_GET_VAR(__GLEW_OES_draw_texture)
-
-#endif /* GL_OES_draw_texture */
-
-/* ----------------------- GL_OES_element_index_uint ----------------------- */
-
-#ifndef GL_OES_element_index_uint
-#define GL_OES_element_index_uint 1
-
-#define GL_UNSIGNED_INT 0x1405
-
-#define GLEW_OES_element_index_uint GLEW_GET_VAR(__GLEW_OES_element_index_uint)
-
-#endif /* GL_OES_element_index_uint */
-
-/* --------------------- GL_OES_extended_matrix_palette -------------------- */
-
-#ifndef GL_OES_extended_matrix_palette
-#define GL_OES_extended_matrix_palette 1
-
-#define GLEW_OES_extended_matrix_palette GLEW_GET_VAR(__GLEW_OES_extended_matrix_palette)
-
-#endif /* GL_OES_extended_matrix_palette */
-
-/* ------------------------ GL_OES_fbo_render_mipmap ----------------------- */
-
-#ifndef GL_OES_fbo_render_mipmap
-#define GL_OES_fbo_render_mipmap 1
-
-#define GLEW_OES_fbo_render_mipmap GLEW_GET_VAR(__GLEW_OES_fbo_render_mipmap)
-
-#endif /* GL_OES_fbo_render_mipmap */
-
-/* --------------------- GL_OES_fragment_precision_high -------------------- */
-
-#ifndef GL_OES_fragment_precision_high
-#define GL_OES_fragment_precision_high 1
-
-#define GLEW_OES_fragment_precision_high GLEW_GET_VAR(__GLEW_OES_fragment_precision_high)
-
-#endif /* GL_OES_fragment_precision_high */
-
-/* ----------------------- GL_OES_framebuffer_object ----------------------- */
-
-#ifndef GL_OES_framebuffer_object
-#define GL_OES_framebuffer_object 1
-
-#define GL_NONE_OES 0
-#define GL_INVALID_FRAMEBUFFER_OPERATION_OES 0x0506
-#define GL_RGBA4_OES 0x8056
-#define GL_RGB5_A1_OES 0x8057
-#define GL_DEPTH_COMPONENT16_OES 0x81A5
-#define GL_MAX_RENDERBUFFER_SIZE_OES 0x84E8
-#define GL_FRAMEBUFFER_BINDING_OES 0x8CA6
-#define GL_RENDERBUFFER_BINDING_OES 0x8CA7
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES 0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES 0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES 0x8CD2
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8CD3
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4
-#define GL_FRAMEBUFFER_COMPLETE_OES 0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 0x8CD6
-#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES 0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES 0x8CD9
-#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES 0x8CDA
-#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES 0x8CDB
-#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES 0x8CDC
-#define GL_FRAMEBUFFER_UNSUPPORTED_OES 0x8CDD
-#define GL_COLOR_ATTACHMENT0_OES 0x8CE0
-#define GL_DEPTH_ATTACHMENT_OES 0x8D00
-#define GL_STENCIL_ATTACHMENT_OES 0x8D20
-#define GL_FRAMEBUFFER_OES 0x8D40
-#define GL_RENDERBUFFER_OES 0x8D41
-#define GL_RENDERBUFFER_WIDTH_OES 0x8D42
-#define GL_RENDERBUFFER_HEIGHT_OES 0x8D43
-#define GL_RENDERBUFFER_INTERNAL_FORMAT_OES 0x8D44
-#define GL_STENCIL_INDEX1_OES 0x8D46
-#define GL_STENCIL_INDEX4_OES 0x8D47
-#define GL_STENCIL_INDEX8_OES 0x8D48
-#define GL_RENDERBUFFER_RED_SIZE_OES 0x8D50
-#define GL_RENDERBUFFER_GREEN_SIZE_OES 0x8D51
-#define GL_RENDERBUFFER_BLUE_SIZE_OES 0x8D52
-#define GL_RENDERBUFFER_ALPHA_SIZE_OES 0x8D53
-#define GL_RENDERBUFFER_DEPTH_SIZE_OES 0x8D54
-#define GL_RENDERBUFFER_STENCIL_SIZE_OES 0x8D55
-#define GL_RGB565_OES 0x8D62
-
-typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEROESPROC) (GLenum target, GLuint framebuffer);
-typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEROESPROC) (GLenum target, GLuint renderbuffer);
-typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSOESPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSOESPROC) (GLsizei n, const GLuint* framebuffers);
-typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSOESPROC) (GLsizei n, const GLuint* renderbuffers);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEROESPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSOESPROC) (GLsizei n, GLuint* framebuffers);
-typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSOESPROC) (GLsizei n, GLuint* renderbuffers);
-typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPOESPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVOESPROC) (GLenum target, GLenum pname, GLint* params);
-typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEROESPROC) (GLuint framebuffer);
-typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEROESPROC) (GLuint renderbuffer);
-typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-
-#define glBindFramebufferOES GLEW_GET_FUN(__glewBindFramebufferOES)
-#define glBindRenderbufferOES GLEW_GET_FUN(__glewBindRenderbufferOES)
-#define glCheckFramebufferStatusOES GLEW_GET_FUN(__glewCheckFramebufferStatusOES)
-#define glDeleteFramebuffersOES GLEW_GET_FUN(__glewDeleteFramebuffersOES)
-#define glDeleteRenderbuffersOES GLEW_GET_FUN(__glewDeleteRenderbuffersOES)
-#define glFramebufferRenderbufferOES GLEW_GET_FUN(__glewFramebufferRenderbufferOES)
-#define glFramebufferTexture2DOES GLEW_GET_FUN(__glewFramebufferTexture2DOES)
-#define glGenFramebuffersOES GLEW_GET_FUN(__glewGenFramebuffersOES)
-#define glGenRenderbuffersOES GLEW_GET_FUN(__glewGenRenderbuffersOES)
-#define glGenerateMipmapOES GLEW_GET_FUN(__glewGenerateMipmapOES)
-#define glGetFramebufferAttachmentParameterivOES GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivOES)
-#define glGetRenderbufferParameterivOES GLEW_GET_FUN(__glewGetRenderbufferParameterivOES)
-#define glIsFramebufferOES GLEW_GET_FUN(__glewIsFramebufferOES)
-#define glIsRenderbufferOES GLEW_GET_FUN(__glewIsRenderbufferOES)
-#define glRenderbufferStorageOES GLEW_GET_FUN(__glewRenderbufferStorageOES)
-
-#define GLEW_OES_framebuffer_object GLEW_GET_VAR(__GLEW_OES_framebuffer_object)
-
-#endif /* GL_OES_framebuffer_object */
-
-/* ----------------------- GL_OES_geometry_point_size ---------------------- */
-
-#ifndef GL_OES_geometry_point_size
-#define GL_OES_geometry_point_size 1
-
-#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004
-#define GL_LINES_ADJACENCY_OES 0xA
-#define GL_LINE_STRIP_ADJACENCY_OES 0xB
-#define GL_TRIANGLES_ADJACENCY_OES 0xC
-#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0xD
-#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E
-#define GL_UNDEFINED_VERTEX_OES 0x8260
-#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F
-#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916
-#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917
-#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918
-#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C
-#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32
-#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29
-#define GL_PRIMITIVES_GENERATED_OES 0x8C87
-#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8
-#define GL_GEOMETRY_SHADER_OES 0x8DD9
-#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF
-#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0
-#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1
-#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D
-#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E
-#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A
-#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD
-#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7
-#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123
-#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124
-#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF
-#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5
-#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309
-#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312
-#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317
-
-#define GLEW_OES_geometry_point_size GLEW_GET_VAR(__GLEW_OES_geometry_point_size)
-
-#endif /* GL_OES_geometry_point_size */
-
-/* ------------------------- GL_OES_geometry_shader ------------------------ */
-
-#ifndef GL_OES_geometry_shader
-#define GL_OES_geometry_shader 1
-
-#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004
-#define GL_LINES_ADJACENCY_OES 0xA
-#define GL_LINE_STRIP_ADJACENCY_OES 0xB
-#define GL_TRIANGLES_ADJACENCY_OES 0xC
-#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0xD
-#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E
-#define GL_UNDEFINED_VERTEX_OES 0x8260
-#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F
-#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916
-#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917
-#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918
-#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C
-#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32
-#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29
-#define GL_PRIMITIVES_GENERATED_OES 0x8C87
-#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7
-#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8
-#define GL_GEOMETRY_SHADER_OES 0x8DD9
-#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF
-#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0
-#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1
-#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D
-#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E
-#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A
-#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD
-#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7
-#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123
-#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124
-#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF
-#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5
-#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309
-#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312
-#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317
-
-#define GLEW_OES_geometry_shader GLEW_GET_VAR(__GLEW_OES_geometry_shader)
-
-#endif /* GL_OES_geometry_shader */
-
-/* ----------------------- GL_OES_get_program_binary ----------------------- */
-
-#ifndef GL_OES_get_program_binary
-#define GL_OES_get_program_binary 1
-
-#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741
-#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE
-#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF
-
-typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, void*binary);
-typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLint length);
-
-#define glGetProgramBinaryOES GLEW_GET_FUN(__glewGetProgramBinaryOES)
-#define glProgramBinaryOES GLEW_GET_FUN(__glewProgramBinaryOES)
-
-#define GLEW_OES_get_program_binary GLEW_GET_VAR(__GLEW_OES_get_program_binary)
-
-#endif /* GL_OES_get_program_binary */
-
-/* --------------------------- GL_OES_gpu_shader5 -------------------------- */
-
-#ifndef GL_OES_gpu_shader5
-#define GL_OES_gpu_shader5 1
-
-#define GLEW_OES_gpu_shader5 GLEW_GET_VAR(__GLEW_OES_gpu_shader5)
-
-#endif /* GL_OES_gpu_shader5 */
-
-/* ---------------------------- GL_OES_mapbuffer --------------------------- */
-
-#ifndef GL_OES_mapbuffer
-#define GL_OES_mapbuffer 1
-
-#define GL_WRITE_ONLY_OES 0x88B9
-#define GL_BUFFER_ACCESS_OES 0x88BB
-#define GL_BUFFER_MAPPED_OES 0x88BC
-#define GL_BUFFER_MAP_POINTER_OES 0x88BD
-
-typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void** params);
-typedef void * (GLAPIENTRY * PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
-typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFEROESPROC) (GLenum target);
-
-#define glGetBufferPointervOES GLEW_GET_FUN(__glewGetBufferPointervOES)
-#define glMapBufferOES GLEW_GET_FUN(__glewMapBufferOES)
-#define glUnmapBufferOES GLEW_GET_FUN(__glewUnmapBufferOES)
-
-#define GLEW_OES_mapbuffer GLEW_GET_VAR(__GLEW_OES_mapbuffer)
-
-#endif /* GL_OES_mapbuffer */
-
-/* --------------------------- GL_OES_matrix_get --------------------------- */
-
-#ifndef GL_OES_matrix_get
-#define GL_OES_matrix_get 1
-
-#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898d
-#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898e
-#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898f
-
-#define GLEW_OES_matrix_get GLEW_GET_VAR(__GLEW_OES_matrix_get)
-
-#endif /* GL_OES_matrix_get */
-
-/* ------------------------- GL_OES_matrix_palette ------------------------- */
-
-#ifndef GL_OES_matrix_palette
-#define GL_OES_matrix_palette 1
-
-#define GL_MAX_VERTEX_UNITS_OES 0x86A4
-#define GL_WEIGHT_ARRAY_TYPE_OES 0x86A9
-#define GL_WEIGHT_ARRAY_STRIDE_OES 0x86AA
-#define GL_WEIGHT_ARRAY_SIZE_OES 0x86AB
-#define GL_WEIGHT_ARRAY_POINTER_OES 0x86AC
-#define GL_WEIGHT_ARRAY_OES 0x86AD
-#define GL_MATRIX_PALETTE_OES 0x8840
-#define GL_MAX_PALETTE_MATRICES_OES 0x8842
-#define GL_CURRENT_PALETTE_MATRIX_OES 0x8843
-#define GL_MATRIX_INDEX_ARRAY_OES 0x8844
-#define GL_MATRIX_INDEX_ARRAY_SIZE_OES 0x8846
-#define GL_MATRIX_INDEX_ARRAY_TYPE_OES 0x8847
-#define GL_MATRIX_INDEX_ARRAY_STRIDE_OES 0x8848
-#define GL_MATRIX_INDEX_ARRAY_POINTER_OES 0x8849
-#define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES 0x889E
-#define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8B9E
-
-typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXOESPROC) (GLuint index);
-typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, void *pointer);
-typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, void *pointer);
-
-#define glCurrentPaletteMatrixOES GLEW_GET_FUN(__glewCurrentPaletteMatrixOES)
-#define glMatrixIndexPointerOES GLEW_GET_FUN(__glewMatrixIndexPointerOES)
-#define glWeightPointerOES GLEW_GET_FUN(__glewWeightPointerOES)
-
-#define GLEW_OES_matrix_palette GLEW_GET_VAR(__GLEW_OES_matrix_palette)
-
-#endif /* GL_OES_matrix_palette */
-
-/* ---------------------- GL_OES_packed_depth_stencil ---------------------- */
-
-#ifndef GL_OES_packed_depth_stencil
-#define GL_OES_packed_depth_stencil 1
-
-#define GL_DEPTH_STENCIL_OES 0x84F9
-#define GL_UNSIGNED_INT_24_8_OES 0x84FA
-#define GL_DEPTH24_STENCIL8_OES 0x88F0
-
-#define GLEW_OES_packed_depth_stencil GLEW_GET_VAR(__GLEW_OES_packed_depth_stencil)
-
-#endif /* GL_OES_packed_depth_stencil */
-
-/* ------------------------ GL_OES_point_size_array ------------------------ */
-
-#ifndef GL_OES_point_size_array
-#define GL_OES_point_size_array 1
-
-#define GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A
-#define GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B
-#define GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C
-#define GL_POINT_SIZE_ARRAY_OES 0x8B9C
-#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F
-
-#define GLEW_OES_point_size_array GLEW_GET_VAR(__GLEW_OES_point_size_array)
-
-#endif /* GL_OES_point_size_array */
-
-/* -------------------------- GL_OES_point_sprite -------------------------- */
-
-#ifndef GL_OES_point_sprite
-#define GL_OES_point_sprite 1
-
-#define GL_POINT_SPRITE_OES 0x8861
-#define GL_COORD_REPLACE_OES 0x8862
-
-#define GLEW_OES_point_sprite GLEW_GET_VAR(__GLEW_OES_point_sprite)
-
-#endif /* GL_OES_point_sprite */
-
-/* --------------------------- GL_OES_read_format -------------------------- */
-
-#ifndef GL_OES_read_format
-#define GL_OES_read_format 1
-
-#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
-#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
-
-#define GLEW_OES_read_format GLEW_GET_VAR(__GLEW_OES_read_format)
-
-#endif /* GL_OES_read_format */
-
-/* --------------------- GL_OES_required_internalformat -------------------- */
-
-#ifndef GL_OES_required_internalformat
-#define GL_OES_required_internalformat 1
-
-#define GL_ALPHA8_OES 0x803C
-#define GL_LUMINANCE8_OES 0x8040
-#define GL_LUMINANCE4_ALPHA4_OES 0x8043
-#define GL_LUMINANCE8_ALPHA8_OES 0x8045
-#define GL_RGB8_OES 0x8051
-#define GL_RGB10_EXT 0x8052
-#define GL_RGBA4_OES 0x8056
-#define GL_RGB5_A1_OES 0x8057
-#define GL_RGBA8_OES 0x8058
-#define GL_RGB10_A2_EXT 0x8059
-#define GL_DEPTH_COMPONENT16_OES 0x81A5
-#define GL_DEPTH_COMPONENT24_OES 0x81A6
-#define GL_DEPTH_COMPONENT32_OES 0x81A7
-#define GL_DEPTH24_STENCIL8_OES 0x88F0
-#define GL_RGB565_OES 0x8D62
-
-#define GLEW_OES_required_internalformat GLEW_GET_VAR(__GLEW_OES_required_internalformat)
-
-#endif /* GL_OES_required_internalformat */
-
-/* --------------------------- GL_OES_rgb8_rgba8 --------------------------- */
-
-#ifndef GL_OES_rgb8_rgba8
-#define GL_OES_rgb8_rgba8 1
-
-#define GL_RGB8_OES 0x8051
-#define GL_RGBA8_OES 0x8058
-
-#define GLEW_OES_rgb8_rgba8 GLEW_GET_VAR(__GLEW_OES_rgb8_rgba8)
-
-#endif /* GL_OES_rgb8_rgba8 */
-
-/* ------------------------- GL_OES_sample_shading ------------------------- */
-
-#ifndef GL_OES_sample_shading
-#define GL_OES_sample_shading 1
-
-#define GL_SAMPLE_SHADING_OES 0x8C36
-#define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37
-
-typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGOESPROC) (GLfloat value);
-
-#define glMinSampleShadingOES GLEW_GET_FUN(__glewMinSampleShadingOES)
-
-#define GLEW_OES_sample_shading GLEW_GET_VAR(__GLEW_OES_sample_shading)
-
-#endif /* GL_OES_sample_shading */
-
-/* ------------------------ GL_OES_sample_variables ------------------------ */
-
-#ifndef GL_OES_sample_variables
-#define GL_OES_sample_variables 1
-
-#define GLEW_OES_sample_variables GLEW_GET_VAR(__GLEW_OES_sample_variables)
-
-#endif /* GL_OES_sample_variables */
-
-/* ----------------------- GL_OES_shader_image_atomic ---------------------- */
-
-#ifndef GL_OES_shader_image_atomic
-#define GL_OES_shader_image_atomic 1
-
-#define GLEW_OES_shader_image_atomic GLEW_GET_VAR(__GLEW_OES_shader_image_atomic)
-
-#endif /* GL_OES_shader_image_atomic */
-
-/* ------------------------ GL_OES_shader_io_blocks ------------------------ */
-
-#ifndef GL_OES_shader_io_blocks
-#define GL_OES_shader_io_blocks 1
-
-#define GLEW_OES_shader_io_blocks GLEW_GET_VAR(__GLEW_OES_shader_io_blocks)
-
-#endif /* GL_OES_shader_io_blocks */
-
-/* ---------------- GL_OES_shader_multisample_interpolation ---------------- */
-
-#ifndef GL_OES_shader_multisample_interpolation
-#define GL_OES_shader_multisample_interpolation 1
-
-#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B
-#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C
-#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D
-
-#define GLEW_OES_shader_multisample_interpolation GLEW_GET_VAR(__GLEW_OES_shader_multisample_interpolation)
-
-#endif /* GL_OES_shader_multisample_interpolation */
-
-/* ------------------------ GL_OES_single_precision ------------------------ */
-
-#ifndef GL_OES_single_precision
-#define GL_OES_single_precision 1
-
-typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFOESPROC) (GLclampf depth);
-typedef void (GLAPIENTRY * PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat* equation);
-typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f);
-typedef void (GLAPIENTRY * PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
-typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat* equation);
-typedef void (GLAPIENTRY * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
-
-#define glClearDepthfOES GLEW_GET_FUN(__glewClearDepthfOES)
-#define glClipPlanefOES GLEW_GET_FUN(__glewClipPlanefOES)
-#define glDepthRangefOES GLEW_GET_FUN(__glewDepthRangefOES)
-#define glFrustumfOES GLEW_GET_FUN(__glewFrustumfOES)
-#define glGetClipPlanefOES GLEW_GET_FUN(__glewGetClipPlanefOES)
-#define glOrthofOES GLEW_GET_FUN(__glewOrthofOES)
-
-#define GLEW_OES_single_precision GLEW_GET_VAR(__GLEW_OES_single_precision)
-
-#endif /* GL_OES_single_precision */
-
-/* ---------------------- GL_OES_standard_derivatives ---------------------- */
-
-#ifndef GL_OES_standard_derivatives
-#define GL_OES_standard_derivatives 1
-
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B
-
-#define GLEW_OES_standard_derivatives GLEW_GET_VAR(__GLEW_OES_standard_derivatives)
-
-#endif /* GL_OES_standard_derivatives */
-
-/* ---------------------------- GL_OES_stencil1 ---------------------------- */
-
-#ifndef GL_OES_stencil1
-#define GL_OES_stencil1 1
-
-#define GL_STENCIL_INDEX1_OES 0x8D46
-
-#define GLEW_OES_stencil1 GLEW_GET_VAR(__GLEW_OES_stencil1)
-
-#endif /* GL_OES_stencil1 */
-
-/* ---------------------------- GL_OES_stencil4 ---------------------------- */
-
-#ifndef GL_OES_stencil4
-#define GL_OES_stencil4 1
-
-#define GL_STENCIL_INDEX4_OES 0x8D47
-
-#define GLEW_OES_stencil4 GLEW_GET_VAR(__GLEW_OES_stencil4)
-
-#endif /* GL_OES_stencil4 */
-
-/* ---------------------------- GL_OES_stencil8 ---------------------------- */
-
-#ifndef GL_OES_stencil8
-#define GL_OES_stencil8 1
-
-#define GL_STENCIL_INDEX8_OES 0x8D48
-
-#define GLEW_OES_stencil8 GLEW_GET_VAR(__GLEW_OES_stencil8)
-
-#endif /* GL_OES_stencil8 */
-
-/* ----------------------- GL_OES_surfaceless_context ---------------------- */
-
-#ifndef GL_OES_surfaceless_context
-#define GL_OES_surfaceless_context 1
-
-#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219
-
-#define GLEW_OES_surfaceless_context GLEW_GET_VAR(__GLEW_OES_surfaceless_context)
-
-#endif /* GL_OES_surfaceless_context */
-
-/* --------------------- GL_OES_tessellation_point_size -------------------- */
-
-#ifndef GL_OES_tessellation_point_size
-#define GL_OES_tessellation_point_size 1
-
-#define GL_QUADS_OES 0x0007
-#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008
-#define GL_PATCHES_OES 0xE
-#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010
-#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221
-#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C
-#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D
-#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E
-#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F
-#define GL_PATCH_VERTICES_OES 0x8E72
-#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75
-#define GL_TESS_GEN_MODE_OES 0x8E76
-#define GL_TESS_GEN_SPACING_OES 0x8E77
-#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78
-#define GL_TESS_GEN_POINT_MODE_OES 0x8E79
-#define GL_ISOLINES_OES 0x8E7A
-#define GL_FRACTIONAL_ODD_OES 0x8E7B
-#define GL_FRACTIONAL_EVEN_OES 0x8E7C
-#define GL_MAX_PATCH_VERTICES_OES 0x8E7D
-#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E
-#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F
-#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80
-#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81
-#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82
-#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83
-#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84
-#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85
-#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86
-#define GL_TESS_EVALUATION_SHADER_OES 0x8E87
-#define GL_TESS_CONTROL_SHADER_OES 0x8E88
-#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89
-#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A
-#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB
-#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC
-#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8
-#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9
-#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD
-#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE
-#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3
-#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4
-#define GL_IS_PER_PATCH_OES 0x92E7
-#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307
-#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308
-
-#define GLEW_OES_tessellation_point_size GLEW_GET_VAR(__GLEW_OES_tessellation_point_size)
-
-#endif /* GL_OES_tessellation_point_size */
-
-/* ----------------------- GL_OES_tessellation_shader ---------------------- */
-
-#ifndef GL_OES_tessellation_shader
-#define GL_OES_tessellation_shader 1
-
-#define GL_QUADS_OES 0x0007
-#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008
-#define GL_PATCHES_OES 0xE
-#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010
-#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221
-#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C
-#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D
-#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E
-#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F
-#define GL_PATCH_VERTICES_OES 0x8E72
-#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75
-#define GL_TESS_GEN_MODE_OES 0x8E76
-#define GL_TESS_GEN_SPACING_OES 0x8E77
-#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78
-#define GL_TESS_GEN_POINT_MODE_OES 0x8E79
-#define GL_ISOLINES_OES 0x8E7A
-#define GL_FRACTIONAL_ODD_OES 0x8E7B
-#define GL_FRACTIONAL_EVEN_OES 0x8E7C
-#define GL_MAX_PATCH_VERTICES_OES 0x8E7D
-#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E
-#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F
-#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80
-#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81
-#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82
-#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83
-#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84
-#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85
-#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86
-#define GL_TESS_EVALUATION_SHADER_OES 0x8E87
-#define GL_TESS_CONTROL_SHADER_OES 0x8E88
-#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89
-#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A
-#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB
-#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC
-#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8
-#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9
-#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD
-#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE
-#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3
-#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4
-#define GL_IS_PER_PATCH_OES 0x92E7
-#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307
-#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308
-
-#define GLEW_OES_tessellation_shader GLEW_GET_VAR(__GLEW_OES_tessellation_shader)
-
-#endif /* GL_OES_tessellation_shader */
-
-/* --------------------------- GL_OES_texture_3D --------------------------- */
-
-#ifndef GL_OES_texture_3D
-#define GL_OES_texture_3D 1
-
-#define GL_TEXTURE_BINDING_3D_OES 0x806A
-#define GL_TEXTURE_3D_OES 0x806F
-#define GL_TEXTURE_WRAP_R_OES 0x8072
-#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073
-
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
-typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
-
-#define glCompressedTexImage3DOES GLEW_GET_FUN(__glewCompressedTexImage3DOES)
-#define glCompressedTexSubImage3DOES GLEW_GET_FUN(__glewCompressedTexSubImage3DOES)
-#define glCopyTexSubImage3DOES GLEW_GET_FUN(__glewCopyTexSubImage3DOES)
-#define glFramebufferTexture3DOES GLEW_GET_FUN(__glewFramebufferTexture3DOES)
-#define glTexImage3DOES GLEW_GET_FUN(__glewTexImage3DOES)
-#define glTexSubImage3DOES GLEW_GET_FUN(__glewTexSubImage3DOES)
-
-#define GLEW_OES_texture_3D GLEW_GET_VAR(__GLEW_OES_texture_3D)
-
-#endif /* GL_OES_texture_3D */
-
-/* ---------------------- GL_OES_texture_border_clamp ---------------------- */
-
-#ifndef GL_OES_texture_border_clamp
-#define GL_OES_texture_border_clamp 1
-
-#define GL_TEXTURE_BORDER_COLOR_OES 0x1004
-#define GL_CLAMP_TO_BORDER_OES 0x812D
-
-typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, GLuint* params);
-typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, const GLuint* params);
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, const GLuint* params);
-
-#define glGetSamplerParameterIivOES GLEW_GET_FUN(__glewGetSamplerParameterIivOES)
-#define glGetSamplerParameterIuivOES GLEW_GET_FUN(__glewGetSamplerParameterIuivOES)
-#define glGetTexParameterIivOES GLEW_GET_FUN(__glewGetTexParameterIivOES)
-#define glGetTexParameterIuivOES GLEW_GET_FUN(__glewGetTexParameterIuivOES)
-#define glSamplerParameterIivOES GLEW_GET_FUN(__glewSamplerParameterIivOES)
-#define glSamplerParameterIuivOES GLEW_GET_FUN(__glewSamplerParameterIuivOES)
-#define glTexParameterIivOES GLEW_GET_FUN(__glewTexParameterIivOES)
-#define glTexParameterIuivOES GLEW_GET_FUN(__glewTexParameterIuivOES)
-
-#define GLEW_OES_texture_border_clamp GLEW_GET_VAR(__GLEW_OES_texture_border_clamp)
-
-#endif /* GL_OES_texture_border_clamp */
-
-/* ------------------------- GL_OES_texture_buffer ------------------------- */
-
-#ifndef GL_OES_texture_buffer
-#define GL_OES_texture_buffer 1
-
-#define GL_TEXTURE_BUFFER_BINDING_OES 0x8C2A
-#define GL_TEXTURE_BUFFER_OES 0x8C2A
-#define GL_MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B
-#define GL_TEXTURE_BINDING_BUFFER_OES 0x8C2C
-#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES 0x8C2D
-#define GL_SAMPLER_BUFFER_OES 0x8DC2
-#define GL_INT_SAMPLER_BUFFER_OES 0x8DD0
-#define GL_UNSIGNED_INT_SAMPLER_BUFFER_OES 0x8DD8
-#define GL_IMAGE_BUFFER_OES 0x9051
-#define GL_INT_IMAGE_BUFFER_OES 0x905C
-#define GL_UNSIGNED_INT_IMAGE_BUFFER_OES 0x9067
-#define GL_TEXTURE_BUFFER_OFFSET_OES 0x919D
-#define GL_TEXTURE_BUFFER_SIZE_OES 0x919E
-#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F
-
-typedef void (GLAPIENTRY * PFNGLTEXBUFFEROESPROC) (GLenum target, GLenum internalformat, GLuint buffer);
-typedef void (GLAPIENTRY * PFNGLTEXBUFFERRANGEOESPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
-
-#define glTexBufferOES GLEW_GET_FUN(__glewTexBufferOES)
-#define glTexBufferRangeOES GLEW_GET_FUN(__glewTexBufferRangeOES)
-
-#define GLEW_OES_texture_buffer GLEW_GET_VAR(__GLEW_OES_texture_buffer)
-
-#endif /* GL_OES_texture_buffer */
-
-/* -------------------- GL_OES_texture_compression_astc -------------------- */
-
-#ifndef GL_OES_texture_compression_astc
-#define GL_OES_texture_compression_astc 1
-
-#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
-#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
-#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
-#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
-#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
-#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
-#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
-#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
-#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
-#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
-#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
-#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
-#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
-#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
-#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0
-#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1
-#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2
-#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3
-#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4
-#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5
-#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6
-#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7
-#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8
-#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8
-#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9
-
-#define GLEW_OES_texture_compression_astc GLEW_GET_VAR(__GLEW_OES_texture_compression_astc)
-
-#endif /* GL_OES_texture_compression_astc */
-
-/* ------------------------ GL_OES_texture_cube_map ------------------------ */
-
-#ifndef GL_OES_texture_cube_map
-#define GL_OES_texture_cube_map 1
-
-#define GL_TEXTURE_GEN_MODE_OES 0x2500
-#define GL_NORMAL_MAP_OES 0x8511
-#define GL_REFLECTION_MAP_OES 0x8512
-#define GL_TEXTURE_CUBE_MAP_OES 0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP_OES 0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851A
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES 0x851C
-#define GL_TEXTURE_GEN_STR_OES 0x8D60
-
-typedef void (GLAPIENTRY * PFNGLGETTEXGENFVOESPROC) (GLenum coord, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXGENIVOESPROC) (GLenum coord, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLTEXGENFOESPROC) (GLenum coord, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLTEXGENFVOESPROC) (GLenum coord, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLTEXGENIOESPROC) (GLenum coord, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLTEXGENIVOESPROC) (GLenum coord, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param);
-typedef void (GLAPIENTRY * PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed* params);
-
-#define glGetTexGenfvOES GLEW_GET_FUN(__glewGetTexGenfvOES)
-#define glGetTexGenivOES GLEW_GET_FUN(__glewGetTexGenivOES)
-#define glGetTexGenxvOES GLEW_GET_FUN(__glewGetTexGenxvOES)
-#define glTexGenfOES GLEW_GET_FUN(__glewTexGenfOES)
-#define glTexGenfvOES GLEW_GET_FUN(__glewTexGenfvOES)
-#define glTexGeniOES GLEW_GET_FUN(__glewTexGeniOES)
-#define glTexGenivOES GLEW_GET_FUN(__glewTexGenivOES)
-#define glTexGenxOES GLEW_GET_FUN(__glewTexGenxOES)
-#define glTexGenxvOES GLEW_GET_FUN(__glewTexGenxvOES)
-
-#define GLEW_OES_texture_cube_map GLEW_GET_VAR(__GLEW_OES_texture_cube_map)
-
-#endif /* GL_OES_texture_cube_map */
-
-/* --------------------- GL_OES_texture_cube_map_array --------------------- */
-
-#ifndef GL_OES_texture_cube_map_array
-#define GL_OES_texture_cube_map_array 1
-
-#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009
-#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES 0x900A
-#define GL_SAMPLER_CUBE_MAP_ARRAY_OES 0x900C
-#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES 0x900D
-#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900E
-#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900F
-#define GL_IMAGE_CUBE_MAP_ARRAY_OES 0x9054
-#define GL_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x905F
-#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x906A
-
-#define GLEW_OES_texture_cube_map_array GLEW_GET_VAR(__GLEW_OES_texture_cube_map_array)
-
-#endif /* GL_OES_texture_cube_map_array */
-
-/* ---------------------- GL_OES_texture_env_crossbar ---------------------- */
-
-#ifndef GL_OES_texture_env_crossbar
-#define GL_OES_texture_env_crossbar 1
-
-#define GLEW_OES_texture_env_crossbar GLEW_GET_VAR(__GLEW_OES_texture_env_crossbar)
-
-#endif /* GL_OES_texture_env_crossbar */
-
-/* --------------------- GL_OES_texture_mirrored_repeat -------------------- */
-
-#ifndef GL_OES_texture_mirrored_repeat
-#define GL_OES_texture_mirrored_repeat 1
-
-#define GL_MIRRORED_REPEAT 0x8370
-
-#define GLEW_OES_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_OES_texture_mirrored_repeat)
-
-#endif /* GL_OES_texture_mirrored_repeat */
-
-/* -------------------------- GL_OES_texture_npot -------------------------- */
-
-#ifndef GL_OES_texture_npot
-#define GL_OES_texture_npot 1
-
-#define GLEW_OES_texture_npot GLEW_GET_VAR(__GLEW_OES_texture_npot)
-
-#endif /* GL_OES_texture_npot */
-
-/* ------------------------ GL_OES_texture_stencil8 ------------------------ */
-
-#ifndef GL_OES_texture_stencil8
-#define GL_OES_texture_stencil8 1
-
-#define GL_STENCIL_INDEX 0x1901
-#define GL_STENCIL_INDEX8 0x8D48
-
-#define GLEW_OES_texture_stencil8 GLEW_GET_VAR(__GLEW_OES_texture_stencil8)
-
-#endif /* GL_OES_texture_stencil8 */
-
-/* -------------- GL_OES_texture_storage_multisample_2d_array -------------- */
-
-#ifndef GL_OES_texture_storage_multisample_2d_array
-#define GL_OES_texture_storage_multisample_2d_array 1
-
-#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102
-#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105
-#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B
-#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C
-#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D
-
-typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
-
-#define glTexStorage3DMultisampleOES GLEW_GET_FUN(__glewTexStorage3DMultisampleOES)
-
-#define GLEW_OES_texture_storage_multisample_2d_array GLEW_GET_VAR(__GLEW_OES_texture_storage_multisample_2d_array)
-
-#endif /* GL_OES_texture_storage_multisample_2d_array */
-
-/* -------------------------- GL_OES_texture_view -------------------------- */
-
-#ifndef GL_OES_texture_view
-#define GL_OES_texture_view 1
-
-#define GL_TEXTURE_VIEW_MIN_LEVEL_OES 0x82DB
-#define GL_TEXTURE_VIEW_NUM_LEVELS_OES 0x82DC
-#define GL_TEXTURE_VIEW_MIN_LAYER_OES 0x82DD
-#define GL_TEXTURE_VIEW_NUM_LAYERS_OES 0x82DE
-#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
-
-typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWOESPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
-
-#define glTextureViewOES GLEW_GET_FUN(__glewTextureViewOES)
-
-#define GLEW_OES_texture_view GLEW_GET_VAR(__GLEW_OES_texture_view)
-
-#endif /* GL_OES_texture_view */
-
-/* ----------------------- GL_OES_vertex_array_object ---------------------- */
-
-#ifndef GL_OES_vertex_array_object
-#define GL_OES_vertex_array_object 1
-
-#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5
-
-typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
-typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint* arrays);
-typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint* arrays);
-typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYOESPROC) (GLuint array);
-
-#define glBindVertexArrayOES GLEW_GET_FUN(__glewBindVertexArrayOES)
-#define glDeleteVertexArraysOES GLEW_GET_FUN(__glewDeleteVertexArraysOES)
-#define glGenVertexArraysOES GLEW_GET_FUN(__glewGenVertexArraysOES)
-#define glIsVertexArrayOES GLEW_GET_FUN(__glewIsVertexArrayOES)
-
-#define GLEW_OES_vertex_array_object GLEW_GET_VAR(__GLEW_OES_vertex_array_object)
-
-#endif /* GL_OES_vertex_array_object */
-
-/* ------------------------ GL_OES_vertex_half_float ----------------------- */
-
-#ifndef GL_OES_vertex_half_float
-#define GL_OES_vertex_half_float 1
-
-#define GL_HALF_FLOAT_OES 0x8D61
-
-#define GLEW_OES_vertex_half_float GLEW_GET_VAR(__GLEW_OES_vertex_half_float)
-
-#endif /* GL_OES_vertex_half_float */
-
-/* --------------------- GL_OES_vertex_type_10_10_10_2 --------------------- */
-
-#ifndef GL_OES_vertex_type_10_10_10_2
-#define GL_OES_vertex_type_10_10_10_2 1
-
-#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6
-#define GL_INT_10_10_10_2_OES 0x8DF7
-
-#define GLEW_OES_vertex_type_10_10_10_2 GLEW_GET_VAR(__GLEW_OES_vertex_type_10_10_10_2)
-
-#endif /* GL_OES_vertex_type_10_10_10_2 */
-
-/* ---------------------------- GL_OML_interlace --------------------------- */
-
-#ifndef GL_OML_interlace
-#define GL_OML_interlace 1
-
-#define GL_INTERLACE_OML 0x8980
-#define GL_INTERLACE_READ_OML 0x8981
-
-#define GLEW_OML_interlace GLEW_GET_VAR(__GLEW_OML_interlace)
-
-#endif /* GL_OML_interlace */
-
-/* ---------------------------- GL_OML_resample ---------------------------- */
-
-#ifndef GL_OML_resample
-#define GL_OML_resample 1
-
-#define GL_PACK_RESAMPLE_OML 0x8984
-#define GL_UNPACK_RESAMPLE_OML 0x8985
-#define GL_RESAMPLE_REPLICATE_OML 0x8986
-#define GL_RESAMPLE_ZERO_FILL_OML 0x8987
-#define GL_RESAMPLE_AVERAGE_OML 0x8988
-#define GL_RESAMPLE_DECIMATE_OML 0x8989
-
-#define GLEW_OML_resample GLEW_GET_VAR(__GLEW_OML_resample)
-
-#endif /* GL_OML_resample */
-
-/* ---------------------------- GL_OML_subsample --------------------------- */
-
-#ifndef GL_OML_subsample
-#define GL_OML_subsample 1
-
-#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982
-#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983
-
-#define GLEW_OML_subsample GLEW_GET_VAR(__GLEW_OML_subsample)
-
-#endif /* GL_OML_subsample */
-
-/* ---------------------------- GL_OVR_multiview --------------------------- */
-
-#ifndef GL_OVR_multiview
-#define GL_OVR_multiview 1
-
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630
-#define GL_MAX_VIEWS_OVR 0x9631
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632
-#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
-typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
-
-#define glFramebufferTextureMultiviewOVR GLEW_GET_FUN(__glewFramebufferTextureMultiviewOVR)
-#define glNamedFramebufferTextureMultiviewOVR GLEW_GET_FUN(__glewNamedFramebufferTextureMultiviewOVR)
-
-#define GLEW_OVR_multiview GLEW_GET_VAR(__GLEW_OVR_multiview)
-
-#endif /* GL_OVR_multiview */
-
-/* --------------------------- GL_OVR_multiview2 --------------------------- */
-
-#ifndef GL_OVR_multiview2
-#define GL_OVR_multiview2 1
-
-#define GLEW_OVR_multiview2 GLEW_GET_VAR(__GLEW_OVR_multiview2)
-
-#endif /* GL_OVR_multiview2 */
-
-/* ------------ GL_OVR_multiview_multisampled_render_to_texture ------------ */
-
-#ifndef GL_OVR_multiview_multisampled_render_to_texture
-#define GL_OVR_multiview_multisampled_render_to_texture 1
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews);
-
-#define glFramebufferTextureMultisampleMultiviewOVR GLEW_GET_FUN(__glewFramebufferTextureMultisampleMultiviewOVR)
-
-#define GLEW_OVR_multiview_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_OVR_multiview_multisampled_render_to_texture)
-
-#endif /* GL_OVR_multiview_multisampled_render_to_texture */
-
-/* --------------------------- GL_PGI_misc_hints --------------------------- */
-
-#ifndef GL_PGI_misc_hints
-#define GL_PGI_misc_hints 1
-
-#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 107000
-#define GL_CONSERVE_MEMORY_HINT_PGI 107005
-#define GL_RECLAIM_MEMORY_HINT_PGI 107006
-#define GL_NATIVE_GRAPHICS_HANDLE_PGI 107010
-#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011
-#define GL_NATIVE_GRAPHICS_END_HINT_PGI 107012
-#define GL_ALWAYS_FAST_HINT_PGI 107020
-#define GL_ALWAYS_SOFT_HINT_PGI 107021
-#define GL_ALLOW_DRAW_OBJ_HINT_PGI 107022
-#define GL_ALLOW_DRAW_WIN_HINT_PGI 107023
-#define GL_ALLOW_DRAW_FRG_HINT_PGI 107024
-#define GL_ALLOW_DRAW_MEM_HINT_PGI 107025
-#define GL_STRICT_DEPTHFUNC_HINT_PGI 107030
-#define GL_STRICT_LIGHTING_HINT_PGI 107031
-#define GL_STRICT_SCISSOR_HINT_PGI 107032
-#define GL_FULL_STIPPLE_HINT_PGI 107033
-#define GL_CLIP_NEAR_HINT_PGI 107040
-#define GL_CLIP_FAR_HINT_PGI 107041
-#define GL_WIDE_LINE_HINT_PGI 107042
-#define GL_BACK_NORMALS_HINT_PGI 107043
-
-#define GLEW_PGI_misc_hints GLEW_GET_VAR(__GLEW_PGI_misc_hints)
-
-#endif /* GL_PGI_misc_hints */
-
-/* -------------------------- GL_PGI_vertex_hints -------------------------- */
-
-#ifndef GL_PGI_vertex_hints
-#define GL_PGI_vertex_hints 1
-
-#define GL_VERTEX23_BIT_PGI 0x00000004
-#define GL_VERTEX4_BIT_PGI 0x00000008
-#define GL_COLOR3_BIT_PGI 0x00010000
-#define GL_COLOR4_BIT_PGI 0x00020000
-#define GL_EDGEFLAG_BIT_PGI 0x00040000
-#define GL_INDEX_BIT_PGI 0x00080000
-#define GL_MAT_AMBIENT_BIT_PGI 0x00100000
-#define GL_VERTEX_DATA_HINT_PGI 107050
-#define GL_VERTEX_CONSISTENT_HINT_PGI 107051
-#define GL_MATERIAL_SIDE_HINT_PGI 107052
-#define GL_MAX_VERTEX_HINT_PGI 107053
-#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000
-#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000
-#define GL_MAT_EMISSION_BIT_PGI 0x00800000
-#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000
-#define GL_MAT_SHININESS_BIT_PGI 0x02000000
-#define GL_MAT_SPECULAR_BIT_PGI 0x04000000
-#define GL_NORMAL_BIT_PGI 0x08000000
-#define GL_TEXCOORD1_BIT_PGI 0x10000000
-#define GL_TEXCOORD2_BIT_PGI 0x20000000
-#define GL_TEXCOORD3_BIT_PGI 0x40000000
-#define GL_TEXCOORD4_BIT_PGI 0x80000000
-
-#define GLEW_PGI_vertex_hints GLEW_GET_VAR(__GLEW_PGI_vertex_hints)
-
-#endif /* GL_PGI_vertex_hints */
-
-/* ----------------------- GL_QCOM_YUV_texture_gather ---------------------- */
-
-#ifndef GL_QCOM_YUV_texture_gather
-#define GL_QCOM_YUV_texture_gather 1
-
-#define GLEW_QCOM_YUV_texture_gather GLEW_GET_VAR(__GLEW_QCOM_YUV_texture_gather)
-
-#endif /* GL_QCOM_YUV_texture_gather */
-
-/* --------------------------- GL_QCOM_alpha_test -------------------------- */
-
-#ifndef GL_QCOM_alpha_test
-#define GL_QCOM_alpha_test 1
-
-#define GL_ALPHA_TEST_QCOM 0x0BC0
-#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1
-#define GL_ALPHA_TEST_REF_QCOM 0x0BC2
-
-typedef void (GLAPIENTRY * PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref);
-
-#define glAlphaFuncQCOM GLEW_GET_FUN(__glewAlphaFuncQCOM)
-
-#define GLEW_QCOM_alpha_test GLEW_GET_VAR(__GLEW_QCOM_alpha_test)
-
-#endif /* GL_QCOM_alpha_test */
-
-/* ------------------------ GL_QCOM_binning_control ------------------------ */
-
-#ifndef GL_QCOM_binning_control
-#define GL_QCOM_binning_control 1
-
-#define GL_DONT_CARE 0x1100
-#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0
-#define GL_CPU_OPTIMIZED_QCOM 0x8FB1
-#define GL_GPU_OPTIMIZED_QCOM 0x8FB2
-#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3
-
-#define GLEW_QCOM_binning_control GLEW_GET_VAR(__GLEW_QCOM_binning_control)
-
-#endif /* GL_QCOM_binning_control */
-
-/* ------------------------- GL_QCOM_driver_control ------------------------ */
-
-#ifndef GL_QCOM_driver_control
-#define GL_QCOM_driver_control 1
-
-typedef void (GLAPIENTRY * PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
-typedef void (GLAPIENTRY * PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
-typedef void (GLAPIENTRY * PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar *driverControlString);
-typedef void (GLAPIENTRY * PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint* num, GLsizei size, GLuint *driverControls);
-
-#define glDisableDriverControlQCOM GLEW_GET_FUN(__glewDisableDriverControlQCOM)
-#define glEnableDriverControlQCOM GLEW_GET_FUN(__glewEnableDriverControlQCOM)
-#define glGetDriverControlStringQCOM GLEW_GET_FUN(__glewGetDriverControlStringQCOM)
-#define glGetDriverControlsQCOM GLEW_GET_FUN(__glewGetDriverControlsQCOM)
-
-#define GLEW_QCOM_driver_control GLEW_GET_VAR(__GLEW_QCOM_driver_control)
-
-#endif /* GL_QCOM_driver_control */
-
-/* -------------------------- GL_QCOM_extended_get ------------------------- */
-
-#ifndef GL_QCOM_extended_get
-#define GL_QCOM_extended_get 1
-
-#define GL_TEXTURE_WIDTH_QCOM 0x8BD2
-#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3
-#define GL_TEXTURE_DEPTH_QCOM 0x8BD4
-#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5
-#define GL_TEXTURE_FORMAT_QCOM 0x8BD6
-#define GL_TEXTURE_TYPE_QCOM 0x8BD7
-#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8
-#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9
-#define GL_TEXTURE_TARGET_QCOM 0x8BDA
-#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB
-#define GL_STATE_RESTORE 0x8BDC
-
-typedef void (GLAPIENTRY * PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void** params);
-typedef void (GLAPIENTRY * PFNGLEXTGETBUFFERSQCOMPROC) (GLuint* buffers, GLint maxBuffers, GLint* numBuffers);
-typedef void (GLAPIENTRY * PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers);
-typedef void (GLAPIENTRY * PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers);
-typedef void (GLAPIENTRY * PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels);
-typedef void (GLAPIENTRY * PFNGLEXTGETTEXTURESQCOMPROC) (GLuint* textures, GLint maxTextures, GLint* numTextures);
-typedef void (GLAPIENTRY * PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
-
-#define glExtGetBufferPointervQCOM GLEW_GET_FUN(__glewExtGetBufferPointervQCOM)
-#define glExtGetBuffersQCOM GLEW_GET_FUN(__glewExtGetBuffersQCOM)
-#define glExtGetFramebuffersQCOM GLEW_GET_FUN(__glewExtGetFramebuffersQCOM)
-#define glExtGetRenderbuffersQCOM GLEW_GET_FUN(__glewExtGetRenderbuffersQCOM)
-#define glExtGetTexLevelParameterivQCOM GLEW_GET_FUN(__glewExtGetTexLevelParameterivQCOM)
-#define glExtGetTexSubImageQCOM GLEW_GET_FUN(__glewExtGetTexSubImageQCOM)
-#define glExtGetTexturesQCOM GLEW_GET_FUN(__glewExtGetTexturesQCOM)
-#define glExtTexObjectStateOverrideiQCOM GLEW_GET_FUN(__glewExtTexObjectStateOverrideiQCOM)
-
-#define GLEW_QCOM_extended_get GLEW_GET_VAR(__GLEW_QCOM_extended_get)
-
-#endif /* GL_QCOM_extended_get */
-
-/* ------------------------- GL_QCOM_extended_get2 ------------------------- */
-
-#ifndef GL_QCOM_extended_get2
-#define GL_QCOM_extended_get2 1
-
-typedef void (GLAPIENTRY * PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar* source, GLint* length);
-typedef void (GLAPIENTRY * PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint* programs, GLint maxPrograms, GLint* numPrograms);
-typedef void (GLAPIENTRY * PFNGLEXTGETSHADERSQCOMPROC) (GLuint* shaders, GLint maxShaders, GLint* numShaders);
-typedef GLboolean (GLAPIENTRY * PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
-
-#define glExtGetProgramBinarySourceQCOM GLEW_GET_FUN(__glewExtGetProgramBinarySourceQCOM)
-#define glExtGetProgramsQCOM GLEW_GET_FUN(__glewExtGetProgramsQCOM)
-#define glExtGetShadersQCOM GLEW_GET_FUN(__glewExtGetShadersQCOM)
-#define glExtIsProgramBinaryQCOM GLEW_GET_FUN(__glewExtIsProgramBinaryQCOM)
-
-#define GLEW_QCOM_extended_get2 GLEW_GET_VAR(__GLEW_QCOM_extended_get2)
-
-#endif /* GL_QCOM_extended_get2 */
-
-/* ---------------------- GL_QCOM_framebuffer_foveated --------------------- */
-
-#ifndef GL_QCOM_framebuffer_foveated
-#define GL_QCOM_framebuffer_foveated 1
-
-#define GL_FOVEATION_ENABLE_BIT_QCOM 0x1
-#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x2
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC) (GLuint fbo, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint* providedFeatures);
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC) (GLuint fbo, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea);
-
-#define glFramebufferFoveationConfigQCOM GLEW_GET_FUN(__glewFramebufferFoveationConfigQCOM)
-#define glFramebufferFoveationParametersQCOM GLEW_GET_FUN(__glewFramebufferFoveationParametersQCOM)
-
-#define GLEW_QCOM_framebuffer_foveated GLEW_GET_VAR(__GLEW_QCOM_framebuffer_foveated)
-
-#endif /* GL_QCOM_framebuffer_foveated */
-
-/* ---------------------- GL_QCOM_perfmon_global_mode ---------------------- */
-
-#ifndef GL_QCOM_perfmon_global_mode
-#define GL_QCOM_perfmon_global_mode 1
-
-#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0
-
-#define GLEW_QCOM_perfmon_global_mode GLEW_GET_VAR(__GLEW_QCOM_perfmon_global_mode)
-
-#endif /* GL_QCOM_perfmon_global_mode */
-
-/* -------------- GL_QCOM_shader_framebuffer_fetch_noncoherent ------------- */
-
-#ifndef GL_QCOM_shader_framebuffer_fetch_noncoherent
-#define GL_QCOM_shader_framebuffer_fetch_noncoherent 1
-
-#define GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM 0x96A2
-
-typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC) (void);
-
-#define glFramebufferFetchBarrierQCOM GLEW_GET_FUN(__glewFramebufferFetchBarrierQCOM)
-
-#define GLEW_QCOM_shader_framebuffer_fetch_noncoherent GLEW_GET_VAR(__GLEW_QCOM_shader_framebuffer_fetch_noncoherent)
-
-#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */
-
-/* ----------------- GL_QCOM_shader_framebuffer_fetch_rate ----------------- */
-
-#ifndef GL_QCOM_shader_framebuffer_fetch_rate
-#define GL_QCOM_shader_framebuffer_fetch_rate 1
-
-#define GLEW_QCOM_shader_framebuffer_fetch_rate GLEW_GET_VAR(__GLEW_QCOM_shader_framebuffer_fetch_rate)
-
-#endif /* GL_QCOM_shader_framebuffer_fetch_rate */
-
-/* ------------------------ GL_QCOM_texture_foveated ----------------------- */
-
-#ifndef GL_QCOM_texture_foveated
-#define GL_QCOM_texture_foveated 1
-
-#define GL_FOVEATION_ENABLE_BIT_QCOM 0x1
-#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x2
-#define GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM 0x8BFB
-#define GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM 0x8BFC
-#define GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM 0x8BFD
-#define GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM 0x8BFE
-#define GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM 0x8BFF
-
-typedef void (GLAPIENTRY * PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC) (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea);
-
-#define glTextureFoveationParametersQCOM GLEW_GET_FUN(__glewTextureFoveationParametersQCOM)
-
-#define GLEW_QCOM_texture_foveated GLEW_GET_VAR(__GLEW_QCOM_texture_foveated)
-
-#endif /* GL_QCOM_texture_foveated */
-
-/* --------------- GL_QCOM_texture_foveated_subsampled_layout -------------- */
-
-#ifndef GL_QCOM_texture_foveated_subsampled_layout
-#define GL_QCOM_texture_foveated_subsampled_layout 1
-
-#define GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM 0x4
-#define GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM 0x8FA1
-
-#define GLEW_QCOM_texture_foveated_subsampled_layout GLEW_GET_VAR(__GLEW_QCOM_texture_foveated_subsampled_layout)
-
-#endif /* GL_QCOM_texture_foveated_subsampled_layout */
-
-/* ------------------------ GL_QCOM_tiled_rendering ------------------------ */
-
-#ifndef GL_QCOM_tiled_rendering
-#define GL_QCOM_tiled_rendering 1
-
-#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001
-#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002
-#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004
-#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008
-#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010
-#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020
-#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040
-#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080
-#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100
-#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200
-#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400
-#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800
-#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000
-#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000
-#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000
-#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000
-#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000
-#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000
-#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000
-#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000
-#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000
-#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000
-#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000
-#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000
-#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000
-#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000
-#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000
-#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000
-#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000
-#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000
-#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000
-#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000
-
-typedef void (GLAPIENTRY * PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
-typedef void (GLAPIENTRY * PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
-
-#define glEndTilingQCOM GLEW_GET_FUN(__glewEndTilingQCOM)
-#define glStartTilingQCOM GLEW_GET_FUN(__glewStartTilingQCOM)
-
-#define GLEW_QCOM_tiled_rendering GLEW_GET_VAR(__GLEW_QCOM_tiled_rendering)
-
-#endif /* GL_QCOM_tiled_rendering */
-
-/* ---------------------- GL_QCOM_writeonly_rendering ---------------------- */
-
-#ifndef GL_QCOM_writeonly_rendering
-#define GL_QCOM_writeonly_rendering 1
-
-#define GL_WRITEONLY_RENDERING_QCOM 0x8823
-
-#define GLEW_QCOM_writeonly_rendering GLEW_GET_VAR(__GLEW_QCOM_writeonly_rendering)
-
-#endif /* GL_QCOM_writeonly_rendering */
-
-/* ---------------------- GL_REGAL_ES1_0_compatibility --------------------- */
-
-#ifndef GL_REGAL_ES1_0_compatibility
-#define GL_REGAL_ES1_0_compatibility 1
-
-typedef int GLclampx;
-
-typedef void (GLAPIENTRY * PFNGLALPHAFUNCXPROC) (GLenum func, GLclampx ref);
-typedef void (GLAPIENTRY * PFNGLCLEARCOLORXPROC) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
-typedef void (GLAPIENTRY * PFNGLCLEARDEPTHXPROC) (GLclampx depth);
-typedef void (GLAPIENTRY * PFNGLCOLOR4XPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
-typedef void (GLAPIENTRY * PFNGLDEPTHRANGEXPROC) (GLclampx zNear, GLclampx zFar);
-typedef void (GLAPIENTRY * PFNGLFOGXPROC) (GLenum pname, GLfixed param);
-typedef void (GLAPIENTRY * PFNGLFOGXVPROC) (GLenum pname, const GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLFRUSTUMFPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
-typedef void (GLAPIENTRY * PFNGLFRUSTUMXPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
-typedef void (GLAPIENTRY * PFNGLLIGHTMODELXPROC) (GLenum pname, GLfixed param);
-typedef void (GLAPIENTRY * PFNGLLIGHTMODELXVPROC) (GLenum pname, const GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLLIGHTXPROC) (GLenum light, GLenum pname, GLfixed param);
-typedef void (GLAPIENTRY * PFNGLLIGHTXVPROC) (GLenum light, GLenum pname, const GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLLINEWIDTHXPROC) (GLfixed width);
-typedef void (GLAPIENTRY * PFNGLLOADMATRIXXPROC) (const GLfixed* m);
-typedef void (GLAPIENTRY * PFNGLMATERIALXPROC) (GLenum face, GLenum pname, GLfixed param);
-typedef void (GLAPIENTRY * PFNGLMATERIALXVPROC) (GLenum face, GLenum pname, const GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLMULTMATRIXXPROC) (const GLfixed* m);
-typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4XPROC) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
-typedef void (GLAPIENTRY * PFNGLNORMAL3XPROC) (GLfixed nx, GLfixed ny, GLfixed nz);
-typedef void (GLAPIENTRY * PFNGLORTHOFPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
-typedef void (GLAPIENTRY * PFNGLORTHOXPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
-typedef void (GLAPIENTRY * PFNGLPOINTSIZEXPROC) (GLfixed size);
-typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETXPROC) (GLfixed factor, GLfixed units);
-typedef void (GLAPIENTRY * PFNGLROTATEXPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
-typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEXPROC) (GLclampx value, GLboolean invert);
-typedef void (GLAPIENTRY * PFNGLSCALEXPROC) (GLfixed x, GLfixed y, GLfixed z);
-typedef void (GLAPIENTRY * PFNGLTEXENVXPROC) (GLenum target, GLenum pname, GLfixed param);
-typedef void (GLAPIENTRY * PFNGLTEXENVXVPROC) (GLenum target, GLenum pname, const GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERXPROC) (GLenum target, GLenum pname, GLfixed param);
-typedef void (GLAPIENTRY * PFNGLTRANSLATEXPROC) (GLfixed x, GLfixed y, GLfixed z);
-
-#define glAlphaFuncx GLEW_GET_FUN(__glewAlphaFuncx)
-#define glClearColorx GLEW_GET_FUN(__glewClearColorx)
-#define glClearDepthx GLEW_GET_FUN(__glewClearDepthx)
-#define glColor4x GLEW_GET_FUN(__glewColor4x)
-#define glDepthRangex GLEW_GET_FUN(__glewDepthRangex)
-#define glFogx GLEW_GET_FUN(__glewFogx)
-#define glFogxv GLEW_GET_FUN(__glewFogxv)
-#define glFrustumf GLEW_GET_FUN(__glewFrustumf)
-#define glFrustumx GLEW_GET_FUN(__glewFrustumx)
-#define glLightModelx GLEW_GET_FUN(__glewLightModelx)
-#define glLightModelxv GLEW_GET_FUN(__glewLightModelxv)
-#define glLightx GLEW_GET_FUN(__glewLightx)
-#define glLightxv GLEW_GET_FUN(__glewLightxv)
-#define glLineWidthx GLEW_GET_FUN(__glewLineWidthx)
-#define glLoadMatrixx GLEW_GET_FUN(__glewLoadMatrixx)
-#define glMaterialx GLEW_GET_FUN(__glewMaterialx)
-#define glMaterialxv GLEW_GET_FUN(__glewMaterialxv)
-#define glMultMatrixx GLEW_GET_FUN(__glewMultMatrixx)
-#define glMultiTexCoord4x GLEW_GET_FUN(__glewMultiTexCoord4x)
-#define glNormal3x GLEW_GET_FUN(__glewNormal3x)
-#define glOrthof GLEW_GET_FUN(__glewOrthof)
-#define glOrthox GLEW_GET_FUN(__glewOrthox)
-#define glPointSizex GLEW_GET_FUN(__glewPointSizex)
-#define glPolygonOffsetx GLEW_GET_FUN(__glewPolygonOffsetx)
-#define glRotatex GLEW_GET_FUN(__glewRotatex)
-#define glSampleCoveragex GLEW_GET_FUN(__glewSampleCoveragex)
-#define glScalex GLEW_GET_FUN(__glewScalex)
-#define glTexEnvx GLEW_GET_FUN(__glewTexEnvx)
-#define glTexEnvxv GLEW_GET_FUN(__glewTexEnvxv)
-#define glTexParameterx GLEW_GET_FUN(__glewTexParameterx)
-#define glTranslatex GLEW_GET_FUN(__glewTranslatex)
-
-#define GLEW_REGAL_ES1_0_compatibility GLEW_GET_VAR(__GLEW_REGAL_ES1_0_compatibility)
-
-#endif /* GL_REGAL_ES1_0_compatibility */
-
-/* ---------------------- GL_REGAL_ES1_1_compatibility --------------------- */
-
-#ifndef GL_REGAL_ES1_1_compatibility
-#define GL_REGAL_ES1_1_compatibility 1
-
-typedef void (GLAPIENTRY * PFNGLCLIPPLANEFPROC) (GLenum plane, const GLfloat* equation);
-typedef void (GLAPIENTRY * PFNGLCLIPPLANEXPROC) (GLenum plane, const GLfixed* equation);
-typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFPROC) (GLenum pname, GLfloat eqn[4]);
-typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEXPROC) (GLenum pname, GLfixed eqn[4]);
-typedef void (GLAPIENTRY * PFNGLGETFIXEDVPROC) (GLenum pname, GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLGETLIGHTXVPROC) (GLenum light, GLenum pname, GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLGETMATERIALXVPROC) (GLenum face, GLenum pname, GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXENVXVPROC) (GLenum env, GLenum pname, GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERXVPROC) (GLenum target, GLenum pname, GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERXPROC) (GLenum pname, GLfixed param);
-typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERXVPROC) (GLenum pname, const GLfixed* params);
-typedef void (GLAPIENTRY * PFNGLPOINTSIZEPOINTEROESPROC) (GLenum type, GLsizei stride, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERXVPROC) (GLenum target, GLenum pname, const GLfixed* params);
-
-#define glClipPlanef GLEW_GET_FUN(__glewClipPlanef)
-#define glClipPlanex GLEW_GET_FUN(__glewClipPlanex)
-#define glGetClipPlanef GLEW_GET_FUN(__glewGetClipPlanef)
-#define glGetClipPlanex GLEW_GET_FUN(__glewGetClipPlanex)
-#define glGetFixedv GLEW_GET_FUN(__glewGetFixedv)
-#define glGetLightxv GLEW_GET_FUN(__glewGetLightxv)
-#define glGetMaterialxv GLEW_GET_FUN(__glewGetMaterialxv)
-#define glGetTexEnvxv GLEW_GET_FUN(__glewGetTexEnvxv)
-#define glGetTexParameterxv GLEW_GET_FUN(__glewGetTexParameterxv)
-#define glPointParameterx GLEW_GET_FUN(__glewPointParameterx)
-#define glPointParameterxv GLEW_GET_FUN(__glewPointParameterxv)
-#define glPointSizePointerOES GLEW_GET_FUN(__glewPointSizePointerOES)
-#define glTexParameterxv GLEW_GET_FUN(__glewTexParameterxv)
-
-#define GLEW_REGAL_ES1_1_compatibility GLEW_GET_VAR(__GLEW_REGAL_ES1_1_compatibility)
-
-#endif /* GL_REGAL_ES1_1_compatibility */
-
-/* ---------------------------- GL_REGAL_enable ---------------------------- */
-
-#ifndef GL_REGAL_enable
-#define GL_REGAL_enable 1
-
-#define GL_ERROR_REGAL 0x9322
-#define GL_DEBUG_REGAL 0x9323
-#define GL_LOG_REGAL 0x9324
-#define GL_EMULATION_REGAL 0x9325
-#define GL_DRIVER_REGAL 0x9326
-#define GL_MISSING_REGAL 0x9360
-#define GL_TRACE_REGAL 0x9361
-#define GL_CACHE_REGAL 0x9362
-#define GL_CODE_REGAL 0x9363
-#define GL_STATISTICS_REGAL 0x9364
-
-#define GLEW_REGAL_enable GLEW_GET_VAR(__GLEW_REGAL_enable)
-
-#endif /* GL_REGAL_enable */
-
-/* ------------------------- GL_REGAL_error_string ------------------------- */
-
-#ifndef GL_REGAL_error_string
-#define GL_REGAL_error_string 1
-
-typedef const GLchar* (GLAPIENTRY * PFNGLERRORSTRINGREGALPROC) (GLenum error);
-
-#define glErrorStringREGAL GLEW_GET_FUN(__glewErrorStringREGAL)
-
-#define GLEW_REGAL_error_string GLEW_GET_VAR(__GLEW_REGAL_error_string)
-
-#endif /* GL_REGAL_error_string */
-
-/* ------------------------ GL_REGAL_extension_query ----------------------- */
-
-#ifndef GL_REGAL_extension_query
-#define GL_REGAL_extension_query 1
-
-typedef GLboolean (GLAPIENTRY * PFNGLGETEXTENSIONREGALPROC) (const GLchar* ext);
-typedef GLboolean (GLAPIENTRY * PFNGLISSUPPORTEDREGALPROC) (const GLchar* ext);
-
-#define glGetExtensionREGAL GLEW_GET_FUN(__glewGetExtensionREGAL)
-#define glIsSupportedREGAL GLEW_GET_FUN(__glewIsSupportedREGAL)
-
-#define GLEW_REGAL_extension_query GLEW_GET_VAR(__GLEW_REGAL_extension_query)
-
-#endif /* GL_REGAL_extension_query */
-
-/* ------------------------------ GL_REGAL_log ----------------------------- */
-
-#ifndef GL_REGAL_log
-#define GL_REGAL_log 1
-
-#define GL_LOG_ERROR_REGAL 0x9319
-#define GL_LOG_WARNING_REGAL 0x931A
-#define GL_LOG_INFO_REGAL 0x931B
-#define GL_LOG_APP_REGAL 0x931C
-#define GL_LOG_DRIVER_REGAL 0x931D
-#define GL_LOG_INTERNAL_REGAL 0x931E
-#define GL_LOG_DEBUG_REGAL 0x931F
-#define GL_LOG_STATUS_REGAL 0x9320
-#define GL_LOG_HTTP_REGAL 0x9321
-
-typedef void (APIENTRY *GLLOGPROCREGAL)(GLenum stream, GLsizei length, const GLchar *message, void *context);
-
-typedef void (GLAPIENTRY * PFNGLLOGMESSAGECALLBACKREGALPROC) (GLLOGPROCREGAL callback);
-
-#define glLogMessageCallbackREGAL GLEW_GET_FUN(__glewLogMessageCallbackREGAL)
-
-#define GLEW_REGAL_log GLEW_GET_VAR(__GLEW_REGAL_log)
-
-#endif /* GL_REGAL_log */
-
-/* ------------------------- GL_REGAL_proc_address ------------------------- */
-
-#ifndef GL_REGAL_proc_address
-#define GL_REGAL_proc_address 1
-
-typedef void * (GLAPIENTRY * PFNGLGETPROCADDRESSREGALPROC) (const GLchar *name);
-
-#define glGetProcAddressREGAL GLEW_GET_FUN(__glewGetProcAddressREGAL)
-
-#define GLEW_REGAL_proc_address GLEW_GET_VAR(__GLEW_REGAL_proc_address)
-
-#endif /* GL_REGAL_proc_address */
-
-/* ----------------------- GL_REND_screen_coordinates ---------------------- */
-
-#ifndef GL_REND_screen_coordinates
-#define GL_REND_screen_coordinates 1
-
-#define GL_SCREEN_COORDINATES_REND 0x8490
-#define GL_INVERTED_SCREEN_W_REND 0x8491
-
-#define GLEW_REND_screen_coordinates GLEW_GET_VAR(__GLEW_REND_screen_coordinates)
-
-#endif /* GL_REND_screen_coordinates */
-
-/* ------------------------------- GL_S3_s3tc ------------------------------ */
-
-#ifndef GL_S3_s3tc
-#define GL_S3_s3tc 1
-
-#define GL_RGB_S3TC 0x83A0
-#define GL_RGB4_S3TC 0x83A1
-#define GL_RGBA_S3TC 0x83A2
-#define GL_RGBA4_S3TC 0x83A3
-#define GL_RGBA_DXT5_S3TC 0x83A4
-#define GL_RGBA4_DXT5_S3TC 0x83A5
-
-#define GLEW_S3_s3tc GLEW_GET_VAR(__GLEW_S3_s3tc)
-
-#endif /* GL_S3_s3tc */
-
-/* ------------------------- GL_SGIS_clip_band_hint ------------------------ */
-
-#ifndef GL_SGIS_clip_band_hint
-#define GL_SGIS_clip_band_hint 1
-
-#define GLEW_SGIS_clip_band_hint GLEW_GET_VAR(__GLEW_SGIS_clip_band_hint)
-
-#endif /* GL_SGIS_clip_band_hint */
-
-/* -------------------------- GL_SGIS_color_range -------------------------- */
-
-#ifndef GL_SGIS_color_range
-#define GL_SGIS_color_range 1
-
-#define GL_EXTENDED_RANGE_SGIS 0x85A5
-#define GL_MIN_RED_SGIS 0x85A6
-#define GL_MAX_RED_SGIS 0x85A7
-#define GL_MIN_GREEN_SGIS 0x85A8
-#define GL_MAX_GREEN_SGIS 0x85A9
-#define GL_MIN_BLUE_SGIS 0x85AA
-#define GL_MAX_BLUE_SGIS 0x85AB
-#define GL_MIN_ALPHA_SGIS 0x85AC
-#define GL_MAX_ALPHA_SGIS 0x85AD
-
-#define GLEW_SGIS_color_range GLEW_GET_VAR(__GLEW_SGIS_color_range)
-
-#endif /* GL_SGIS_color_range */
-
-/* ------------------------- GL_SGIS_detail_texture ------------------------ */
-
-#ifndef GL_SGIS_detail_texture
-#define GL_SGIS_detail_texture 1
-
-typedef void (GLAPIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points);
-typedef void (GLAPIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat* points);
-
-#define glDetailTexFuncSGIS GLEW_GET_FUN(__glewDetailTexFuncSGIS)
-#define glGetDetailTexFuncSGIS GLEW_GET_FUN(__glewGetDetailTexFuncSGIS)
-
-#define GLEW_SGIS_detail_texture GLEW_GET_VAR(__GLEW_SGIS_detail_texture)
-
-#endif /* GL_SGIS_detail_texture */
-
-/* -------------------------- GL_SGIS_fog_function ------------------------- */
-
-#ifndef GL_SGIS_fog_function
-#define GL_SGIS_fog_function 1
-
-typedef void (GLAPIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat* points);
-typedef void (GLAPIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat* points);
-
-#define glFogFuncSGIS GLEW_GET_FUN(__glewFogFuncSGIS)
-#define glGetFogFuncSGIS GLEW_GET_FUN(__glewGetFogFuncSGIS)
-
-#define GLEW_SGIS_fog_function GLEW_GET_VAR(__GLEW_SGIS_fog_function)
-
-#endif /* GL_SGIS_fog_function */
-
-/* ------------------------ GL_SGIS_generate_mipmap ------------------------ */
-
-#ifndef GL_SGIS_generate_mipmap
-#define GL_SGIS_generate_mipmap 1
-
-#define GL_GENERATE_MIPMAP_SGIS 0x8191
-#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192
-
-#define GLEW_SGIS_generate_mipmap GLEW_GET_VAR(__GLEW_SGIS_generate_mipmap)
-
-#endif /* GL_SGIS_generate_mipmap */
-
-/* -------------------------- GL_SGIS_line_texgen -------------------------- */
-
-#ifndef GL_SGIS_line_texgen
-#define GL_SGIS_line_texgen 1
-
-#define GLEW_SGIS_line_texgen GLEW_GET_VAR(__GLEW_SGIS_line_texgen)
-
-#endif /* GL_SGIS_line_texgen */
-
-/* -------------------------- GL_SGIS_multisample -------------------------- */
-
-#ifndef GL_SGIS_multisample
-#define GL_SGIS_multisample 1
-
-#define GL_MULTISAMPLE_SGIS 0x809D
-#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F
-#define GL_SAMPLE_MASK_SGIS 0x80A0
-#define GL_1PASS_SGIS 0x80A1
-#define GL_2PASS_0_SGIS 0x80A2
-#define GL_2PASS_1_SGIS 0x80A3
-#define GL_4PASS_0_SGIS 0x80A4
-#define GL_4PASS_1_SGIS 0x80A5
-#define GL_4PASS_2_SGIS 0x80A6
-#define GL_4PASS_3_SGIS 0x80A7
-#define GL_SAMPLE_BUFFERS_SGIS 0x80A8
-#define GL_SAMPLES_SGIS 0x80A9
-#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA
-#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB
-#define GL_SAMPLE_PATTERN_SGIS 0x80AC
-
-typedef void (GLAPIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert);
-typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern);
-
-#define glSampleMaskSGIS GLEW_GET_FUN(__glewSampleMaskSGIS)
-#define glSamplePatternSGIS GLEW_GET_FUN(__glewSamplePatternSGIS)
-
-#define GLEW_SGIS_multisample GLEW_GET_VAR(__GLEW_SGIS_multisample)
-
-#endif /* GL_SGIS_multisample */
-
-/* -------------------------- GL_SGIS_multitexture ------------------------- */
-
-#ifndef GL_SGIS_multitexture
-#define GL_SGIS_multitexture 1
-
-#define GL_SELECTED_TEXTURE_SGIS 0x83C0
-#define GL_SELECTED_TEXTURE_COORD_SET_SGIS 0x83C1
-#define GL_SELECTED_TEXTURE_TRANSFORM_SGIS 0x83C2
-#define GL_MAX_TEXTURES_SGIS 0x83C3
-#define GL_MAX_TEXTURE_COORD_SETS_SGIS 0x83C4
-#define GL_TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS 0x83C5
-#define GL_TEXTURE_ENV_COORD_SET_SGIS 0x83C6
-#define GL_TEXTURE0_SGIS 0x83C7
-#define GL_TEXTURE1_SGIS 0x83C8
-#define GL_TEXTURE2_SGIS 0x83C9
-#define GL_TEXTURE3_SGIS 0x83CA
-
-typedef void (GLAPIENTRY * PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC) (GLint factor);
-typedef void (GLAPIENTRY * PFNGLSELECTTEXTURECOORDSETSGISPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLSELECTTEXTURESGISPROC) (GLenum target);
-typedef void (GLAPIENTRY * PFNGLSELECTTEXTURETRANSFORMSGISPROC) (GLenum target);
-
-#define glInterleavedTextureCoordSetsSGIS GLEW_GET_FUN(__glewInterleavedTextureCoordSetsSGIS)
-#define glSelectTextureCoordSetSGIS GLEW_GET_FUN(__glewSelectTextureCoordSetSGIS)
-#define glSelectTextureSGIS GLEW_GET_FUN(__glewSelectTextureSGIS)
-#define glSelectTextureTransformSGIS GLEW_GET_FUN(__glewSelectTextureTransformSGIS)
-
-#define GLEW_SGIS_multitexture GLEW_GET_VAR(__GLEW_SGIS_multitexture)
-
-#endif /* GL_SGIS_multitexture */
-
-/* ------------------------- GL_SGIS_pixel_texture ------------------------- */
-
-#ifndef GL_SGIS_pixel_texture
-#define GL_SGIS_pixel_texture 1
-
-#define GLEW_SGIS_pixel_texture GLEW_GET_VAR(__GLEW_SGIS_pixel_texture)
-
-#endif /* GL_SGIS_pixel_texture */
-
-/* ----------------------- GL_SGIS_point_line_texgen ----------------------- */
-
-#ifndef GL_SGIS_point_line_texgen
-#define GL_SGIS_point_line_texgen 1
-
-#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0
-#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1
-#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2
-#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3
-#define GL_EYE_POINT_SGIS 0x81F4
-#define GL_OBJECT_POINT_SGIS 0x81F5
-#define GL_EYE_LINE_SGIS 0x81F6
-#define GL_OBJECT_LINE_SGIS 0x81F7
-
-#define GLEW_SGIS_point_line_texgen GLEW_GET_VAR(__GLEW_SGIS_point_line_texgen)
-
-#endif /* GL_SGIS_point_line_texgen */
-
-/* ----------------------- GL_SGIS_shared_multisample ---------------------- */
-
-#ifndef GL_SGIS_shared_multisample
-#define GL_SGIS_shared_multisample 1
-
-typedef void (GLAPIENTRY * PFNGLMULTISAMPLESUBRECTPOSSGISPROC) (GLint x, GLint y);
-
-#define glMultisampleSubRectPosSGIS GLEW_GET_FUN(__glewMultisampleSubRectPosSGIS)
-
-#define GLEW_SGIS_shared_multisample GLEW_GET_VAR(__GLEW_SGIS_shared_multisample)
-
-#endif /* GL_SGIS_shared_multisample */
-
-/* ------------------------ GL_SGIS_sharpen_texture ------------------------ */
-
-#ifndef GL_SGIS_sharpen_texture
-#define GL_SGIS_sharpen_texture 1
-
-typedef void (GLAPIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat* points);
-typedef void (GLAPIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points);
-
-#define glGetSharpenTexFuncSGIS GLEW_GET_FUN(__glewGetSharpenTexFuncSGIS)
-#define glSharpenTexFuncSGIS GLEW_GET_FUN(__glewSharpenTexFuncSGIS)
-
-#define GLEW_SGIS_sharpen_texture GLEW_GET_VAR(__GLEW_SGIS_sharpen_texture)
-
-#endif /* GL_SGIS_sharpen_texture */
-
-/* --------------------------- GL_SGIS_texture4D --------------------------- */
-
-#ifndef GL_SGIS_texture4D
-#define GL_SGIS_texture4D 1
-
-typedef void (GLAPIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void *pixels);
-typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void *pixels);
-
-#define glTexImage4DSGIS GLEW_GET_FUN(__glewTexImage4DSGIS)
-#define glTexSubImage4DSGIS GLEW_GET_FUN(__glewTexSubImage4DSGIS)
-
-#define GLEW_SGIS_texture4D GLEW_GET_VAR(__GLEW_SGIS_texture4D)
-
-#endif /* GL_SGIS_texture4D */
-
-/* ---------------------- GL_SGIS_texture_border_clamp --------------------- */
-
-#ifndef GL_SGIS_texture_border_clamp
-#define GL_SGIS_texture_border_clamp 1
-
-#define GL_CLAMP_TO_BORDER_SGIS 0x812D
-
-#define GLEW_SGIS_texture_border_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_border_clamp)
-
-#endif /* GL_SGIS_texture_border_clamp */
-
-/* ----------------------- GL_SGIS_texture_edge_clamp ---------------------- */
-
-#ifndef GL_SGIS_texture_edge_clamp
-#define GL_SGIS_texture_edge_clamp 1
-
-#define GL_CLAMP_TO_EDGE_SGIS 0x812F
-
-#define GLEW_SGIS_texture_edge_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_edge_clamp)
-
-#endif /* GL_SGIS_texture_edge_clamp */
-
-/* ------------------------ GL_SGIS_texture_filter4 ------------------------ */
-
-#ifndef GL_SGIS_texture_filter4
-#define GL_SGIS_texture_filter4 1
-
-typedef void (GLAPIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat* weights);
-typedef void (GLAPIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat* weights);
-
-#define glGetTexFilterFuncSGIS GLEW_GET_FUN(__glewGetTexFilterFuncSGIS)
-#define glTexFilterFuncSGIS GLEW_GET_FUN(__glewTexFilterFuncSGIS)
-
-#define GLEW_SGIS_texture_filter4 GLEW_GET_VAR(__GLEW_SGIS_texture_filter4)
-
-#endif /* GL_SGIS_texture_filter4 */
-
-/* -------------------------- GL_SGIS_texture_lod -------------------------- */
-
-#ifndef GL_SGIS_texture_lod
-#define GL_SGIS_texture_lod 1
-
-#define GL_TEXTURE_MIN_LOD_SGIS 0x813A
-#define GL_TEXTURE_MAX_LOD_SGIS 0x813B
-#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C
-#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D
-
-#define GLEW_SGIS_texture_lod GLEW_GET_VAR(__GLEW_SGIS_texture_lod)
-
-#endif /* GL_SGIS_texture_lod */
-
-/* ------------------------- GL_SGIS_texture_select ------------------------ */
-
-#ifndef GL_SGIS_texture_select
-#define GL_SGIS_texture_select 1
-
-#define GLEW_SGIS_texture_select GLEW_GET_VAR(__GLEW_SGIS_texture_select)
-
-#endif /* GL_SGIS_texture_select */
-
-/* ----------------------------- GL_SGIX_async ----------------------------- */
-
-#ifndef GL_SGIX_async
-#define GL_SGIX_async 1
-
-#define GL_ASYNC_MARKER_SGIX 0x8329
-
-typedef void (GLAPIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker);
-typedef void (GLAPIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range);
-typedef GLint (GLAPIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint* markerp);
-typedef GLuint (GLAPIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range);
-typedef GLboolean (GLAPIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker);
-typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp);
-
-#define glAsyncMarkerSGIX GLEW_GET_FUN(__glewAsyncMarkerSGIX)
-#define glDeleteAsyncMarkersSGIX GLEW_GET_FUN(__glewDeleteAsyncMarkersSGIX)
-#define glFinishAsyncSGIX GLEW_GET_FUN(__glewFinishAsyncSGIX)
-#define glGenAsyncMarkersSGIX GLEW_GET_FUN(__glewGenAsyncMarkersSGIX)
-#define glIsAsyncMarkerSGIX GLEW_GET_FUN(__glewIsAsyncMarkerSGIX)
-#define glPollAsyncSGIX GLEW_GET_FUN(__glewPollAsyncSGIX)
-
-#define GLEW_SGIX_async GLEW_GET_VAR(__GLEW_SGIX_async)
-
-#endif /* GL_SGIX_async */
-
-/* ------------------------ GL_SGIX_async_histogram ------------------------ */
-
-#ifndef GL_SGIX_async_histogram
-#define GL_SGIX_async_histogram 1
-
-#define GL_ASYNC_HISTOGRAM_SGIX 0x832C
-#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D
-
-#define GLEW_SGIX_async_histogram GLEW_GET_VAR(__GLEW_SGIX_async_histogram)
-
-#endif /* GL_SGIX_async_histogram */
-
-/* -------------------------- GL_SGIX_async_pixel -------------------------- */
-
-#ifndef GL_SGIX_async_pixel
-#define GL_SGIX_async_pixel 1
-
-#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C
-#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D
-#define GL_ASYNC_READ_PIXELS_SGIX 0x835E
-#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F
-#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360
-#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361
-
-#define GLEW_SGIX_async_pixel GLEW_GET_VAR(__GLEW_SGIX_async_pixel)
-
-#endif /* GL_SGIX_async_pixel */
-
-/* ----------------------- GL_SGIX_bali_g_instruments ---------------------- */
-
-#ifndef GL_SGIX_bali_g_instruments
-#define GL_SGIX_bali_g_instruments 1
-
-#define GL_BALI_NUM_TRIS_CULLED_INSTRUMENT 0x6080
-#define GL_BALI_NUM_PRIMS_CLIPPED_INSTRUMENT 0x6081
-#define GL_BALI_NUM_PRIMS_REJECT_INSTRUMENT 0x6082
-#define GL_BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT 0x6083
-
-#define GLEW_SGIX_bali_g_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_g_instruments)
-
-#endif /* GL_SGIX_bali_g_instruments */
-
-/* ----------------------- GL_SGIX_bali_r_instruments ---------------------- */
-
-#ifndef GL_SGIX_bali_r_instruments
-#define GL_SGIX_bali_r_instruments 1
-
-#define GL_BALI_FRAGMENTS_GENERATED_INSTRUMENT 0x6090
-#define GL_BALI_DEPTH_PASS_INSTRUMENT 0x6091
-#define GL_BALI_R_CHIP_COUNT 0x6092
-
-#define GLEW_SGIX_bali_r_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_r_instruments)
-
-#endif /* GL_SGIX_bali_r_instruments */
-
-/* --------------------- GL_SGIX_bali_timer_instruments -------------------- */
-
-#ifndef GL_SGIX_bali_timer_instruments
-#define GL_SGIX_bali_timer_instruments 1
-
-#define GLEW_SGIX_bali_timer_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_timer_instruments)
-
-#endif /* GL_SGIX_bali_timer_instruments */
-
-/* ----------------------- GL_SGIX_blend_alpha_minmax ---------------------- */
-
-#ifndef GL_SGIX_blend_alpha_minmax
-#define GL_SGIX_blend_alpha_minmax 1
-
-#define GL_ALPHA_MIN_SGIX 0x8320
-#define GL_ALPHA_MAX_SGIX 0x8321
-
-#define GLEW_SGIX_blend_alpha_minmax GLEW_GET_VAR(__GLEW_SGIX_blend_alpha_minmax)
-
-#endif /* GL_SGIX_blend_alpha_minmax */
-
-/* --------------------------- GL_SGIX_blend_cadd -------------------------- */
-
-#ifndef GL_SGIX_blend_cadd
-#define GL_SGIX_blend_cadd 1
-
-#define GL_FUNC_COMPLEX_ADD_EXT 0x601C
-
-#define GLEW_SGIX_blend_cadd GLEW_GET_VAR(__GLEW_SGIX_blend_cadd)
-
-#endif /* GL_SGIX_blend_cadd */
-
-/* ------------------------ GL_SGIX_blend_cmultiply ------------------------ */
-
-#ifndef GL_SGIX_blend_cmultiply
-#define GL_SGIX_blend_cmultiply 1
-
-#define GL_FUNC_COMPLEX_MULTIPLY_EXT 0x601B
-
-#define GLEW_SGIX_blend_cmultiply GLEW_GET_VAR(__GLEW_SGIX_blend_cmultiply)
-
-#endif /* GL_SGIX_blend_cmultiply */
-
-/* --------------------- GL_SGIX_calligraphic_fragment --------------------- */
-
-#ifndef GL_SGIX_calligraphic_fragment
-#define GL_SGIX_calligraphic_fragment 1
-
-#define GLEW_SGIX_calligraphic_fragment GLEW_GET_VAR(__GLEW_SGIX_calligraphic_fragment)
-
-#endif /* GL_SGIX_calligraphic_fragment */
-
-/* ---------------------------- GL_SGIX_clipmap ---------------------------- */
-
-#ifndef GL_SGIX_clipmap
-#define GL_SGIX_clipmap 1
-
-#define GLEW_SGIX_clipmap GLEW_GET_VAR(__GLEW_SGIX_clipmap)
-
-#endif /* GL_SGIX_clipmap */
-
-/* --------------------- GL_SGIX_color_matrix_accuracy --------------------- */
-
-#ifndef GL_SGIX_color_matrix_accuracy
-#define GL_SGIX_color_matrix_accuracy 1
-
-#define GL_COLOR_MATRIX_HINT 0x8317
-
-#define GLEW_SGIX_color_matrix_accuracy GLEW_GET_VAR(__GLEW_SGIX_color_matrix_accuracy)
-
-#endif /* GL_SGIX_color_matrix_accuracy */
-
-/* --------------------- GL_SGIX_color_table_index_mode -------------------- */
-
-#ifndef GL_SGIX_color_table_index_mode
-#define GL_SGIX_color_table_index_mode 1
-
-#define GLEW_SGIX_color_table_index_mode GLEW_GET_VAR(__GLEW_SGIX_color_table_index_mode)
-
-#endif /* GL_SGIX_color_table_index_mode */
-
-/* ------------------------- GL_SGIX_complex_polar ------------------------- */
-
-#ifndef GL_SGIX_complex_polar
-#define GL_SGIX_complex_polar 1
-
-#define GLEW_SGIX_complex_polar GLEW_GET_VAR(__GLEW_SGIX_complex_polar)
-
-#endif /* GL_SGIX_complex_polar */
-
-/* ---------------------- GL_SGIX_convolution_accuracy --------------------- */
-
-#ifndef GL_SGIX_convolution_accuracy
-#define GL_SGIX_convolution_accuracy 1
-
-#define GL_CONVOLUTION_HINT_SGIX 0x8316
-
-#define GLEW_SGIX_convolution_accuracy GLEW_GET_VAR(__GLEW_SGIX_convolution_accuracy)
-
-#endif /* GL_SGIX_convolution_accuracy */
-
-/* ---------------------------- GL_SGIX_cube_map --------------------------- */
-
-#ifndef GL_SGIX_cube_map
-#define GL_SGIX_cube_map 1
-
-#define GL_ENV_MAP_SGIX 0x8340
-#define GL_CUBE_MAP_SGIX 0x8341
-#define GL_CUBE_MAP_ZP_SGIX 0x8342
-#define GL_CUBE_MAP_ZN_SGIX 0x8343
-#define GL_CUBE_MAP_XN_SGIX 0x8344
-#define GL_CUBE_MAP_XP_SGIX 0x8345
-#define GL_CUBE_MAP_YN_SGIX 0x8346
-#define GL_CUBE_MAP_YP_SGIX 0x8347
-#define GL_CUBE_MAP_BINDING_SGIX 0x8348
-
-#define GLEW_SGIX_cube_map GLEW_GET_VAR(__GLEW_SGIX_cube_map)
-
-#endif /* GL_SGIX_cube_map */
-
-/* ------------------------ GL_SGIX_cylinder_texgen ------------------------ */
-
-#ifndef GL_SGIX_cylinder_texgen
-#define GL_SGIX_cylinder_texgen 1
-
-#define GLEW_SGIX_cylinder_texgen GLEW_GET_VAR(__GLEW_SGIX_cylinder_texgen)
-
-#endif /* GL_SGIX_cylinder_texgen */
-
-/* ---------------------------- GL_SGIX_datapipe --------------------------- */
-
-#ifndef GL_SGIX_datapipe
-#define GL_SGIX_datapipe 1
-
-#define GL_GEOMETRY_BIT 0x1
-#define GL_IMAGE_BIT 0x2
-
-typedef void (GLAPIENTRY * PFNGLADDRESSSPACEPROC) (GLenum space, GLbitfield mask);
-typedef GLint (GLAPIENTRY * PFNGLDATAPIPEPROC) (GLenum space);
-
-#define glAddressSpace GLEW_GET_FUN(__glewAddressSpace)
-#define glDataPipe GLEW_GET_FUN(__glewDataPipe)
-
-#define GLEW_SGIX_datapipe GLEW_GET_VAR(__GLEW_SGIX_datapipe)
-
-#endif /* GL_SGIX_datapipe */
-
-/* --------------------------- GL_SGIX_decimation -------------------------- */
-
-#ifndef GL_SGIX_decimation
-#define GL_SGIX_decimation 1
-
-#define GLEW_SGIX_decimation GLEW_GET_VAR(__GLEW_SGIX_decimation)
-
-#endif /* GL_SGIX_decimation */
-
-/* --------------------- GL_SGIX_depth_pass_instrument --------------------- */
-
-#ifndef GL_SGIX_depth_pass_instrument
-#define GL_SGIX_depth_pass_instrument 1
-
-#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310
-#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311
-#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312
-
-#define GLEW_SGIX_depth_pass_instrument GLEW_GET_VAR(__GLEW_SGIX_depth_pass_instrument)
-
-#endif /* GL_SGIX_depth_pass_instrument */
-
-/* ------------------------- GL_SGIX_depth_texture ------------------------- */
-
-#ifndef GL_SGIX_depth_texture
-#define GL_SGIX_depth_texture 1
-
-#define GL_DEPTH_COMPONENT16_SGIX 0x81A5
-#define GL_DEPTH_COMPONENT24_SGIX 0x81A6
-#define GL_DEPTH_COMPONENT32_SGIX 0x81A7
-
-#define GLEW_SGIX_depth_texture GLEW_GET_VAR(__GLEW_SGIX_depth_texture)
-
-#endif /* GL_SGIX_depth_texture */
-
-/* ------------------------------ GL_SGIX_dvc ------------------------------ */
-
-#ifndef GL_SGIX_dvc
-#define GL_SGIX_dvc 1
-
-#define GLEW_SGIX_dvc GLEW_GET_VAR(__GLEW_SGIX_dvc)
-
-#endif /* GL_SGIX_dvc */
-
-/* -------------------------- GL_SGIX_flush_raster ------------------------- */
-
-#ifndef GL_SGIX_flush_raster
-#define GL_SGIX_flush_raster 1
-
-typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void);
-
-#define glFlushRasterSGIX GLEW_GET_FUN(__glewFlushRasterSGIX)
-
-#define GLEW_SGIX_flush_raster GLEW_GET_VAR(__GLEW_SGIX_flush_raster)
-
-#endif /* GL_SGIX_flush_raster */
-
-/* --------------------------- GL_SGIX_fog_blend --------------------------- */
-
-#ifndef GL_SGIX_fog_blend
-#define GL_SGIX_fog_blend 1
-
-#define GL_FOG_BLEND_ALPHA_SGIX 0x81FE
-#define GL_FOG_BLEND_COLOR_SGIX 0x81FF
-
-#define GLEW_SGIX_fog_blend GLEW_GET_VAR(__GLEW_SGIX_fog_blend)
-
-#endif /* GL_SGIX_fog_blend */
-
-/* ---------------------- GL_SGIX_fog_factor_to_alpha ---------------------- */
-
-#ifndef GL_SGIX_fog_factor_to_alpha
-#define GL_SGIX_fog_factor_to_alpha 1
-
-#define GLEW_SGIX_fog_factor_to_alpha GLEW_GET_VAR(__GLEW_SGIX_fog_factor_to_alpha)
-
-#endif /* GL_SGIX_fog_factor_to_alpha */
-
-/* --------------------------- GL_SGIX_fog_layers -------------------------- */
-
-#ifndef GL_SGIX_fog_layers
-#define GL_SGIX_fog_layers 1
-
-#define GL_FOG_TYPE_SGIX 0x8323
-#define GL_UNIFORM_SGIX 0x8324
-#define GL_LAYERED_SGIX 0x8325
-#define GL_FOG_GROUND_PLANE_SGIX 0x8326
-#define GL_FOG_LAYERS_POINTS_SGIX 0x8327
-#define GL_MAX_FOG_LAYERS_POINTS_SGIX 0x8328
-
-typedef void (GLAPIENTRY * PFNGLFOGLAYERSSGIXPROC) (GLsizei n, const GLfloat* points);
-typedef void (GLAPIENTRY * PFNGLGETFOGLAYERSSGIXPROC) (GLfloat* points);
-
-#define glFogLayersSGIX GLEW_GET_FUN(__glewFogLayersSGIX)
-#define glGetFogLayersSGIX GLEW_GET_FUN(__glewGetFogLayersSGIX)
-
-#define GLEW_SGIX_fog_layers GLEW_GET_VAR(__GLEW_SGIX_fog_layers)
-
-#endif /* GL_SGIX_fog_layers */
-
-/* --------------------------- GL_SGIX_fog_offset -------------------------- */
-
-#ifndef GL_SGIX_fog_offset
-#define GL_SGIX_fog_offset 1
-
-#define GL_FOG_OFFSET_SGIX 0x8198
-#define GL_FOG_OFFSET_VALUE_SGIX 0x8199
-
-#define GLEW_SGIX_fog_offset GLEW_GET_VAR(__GLEW_SGIX_fog_offset)
-
-#endif /* GL_SGIX_fog_offset */
-
-/* --------------------------- GL_SGIX_fog_patchy -------------------------- */
-
-#ifndef GL_SGIX_fog_patchy
-#define GL_SGIX_fog_patchy 1
-
-#define GLEW_SGIX_fog_patchy GLEW_GET_VAR(__GLEW_SGIX_fog_patchy)
-
-#endif /* GL_SGIX_fog_patchy */
-
-/* --------------------------- GL_SGIX_fog_scale --------------------------- */
-
-#ifndef GL_SGIX_fog_scale
-#define GL_SGIX_fog_scale 1
-
-#define GL_FOG_SCALE_SGIX 0x81FC
-#define GL_FOG_SCALE_VALUE_SGIX 0x81FD
-
-#define GLEW_SGIX_fog_scale GLEW_GET_VAR(__GLEW_SGIX_fog_scale)
-
-#endif /* GL_SGIX_fog_scale */
-
-/* -------------------------- GL_SGIX_fog_texture -------------------------- */
-
-#ifndef GL_SGIX_fog_texture
-#define GL_SGIX_fog_texture 1
-
-typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname);
-
-#define glTextureFogSGIX GLEW_GET_FUN(__glewTextureFogSGIX)
-
-#define GLEW_SGIX_fog_texture GLEW_GET_VAR(__GLEW_SGIX_fog_texture)
-
-#endif /* GL_SGIX_fog_texture */
-
-/* -------------------- GL_SGIX_fragment_lighting_space -------------------- */
-
-#ifndef GL_SGIX_fragment_lighting_space
-#define GL_SGIX_fragment_lighting_space 1
-
-#define GL_EYE_SPACE_SGIX 0x8436
-#define GL_TANGENT_SPACE_SGIX 0x8437
-#define GL_OBJECT_SPACE_SGIX 0x8438
-#define GL_FRAGMENT_LIGHT_SPACE_SGIX 0x843D
-
-#define GLEW_SGIX_fragment_lighting_space GLEW_GET_VAR(__GLEW_SGIX_fragment_lighting_space)
-
-#endif /* GL_SGIX_fragment_lighting_space */
-
-/* ------------------- GL_SGIX_fragment_specular_lighting ------------------ */
-
-#ifndef GL_SGIX_fragment_specular_lighting
-#define GL_SGIX_fragment_specular_lighting 1
-
-typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, const GLfloat param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, const GLint param);
-typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum value, GLfloat* data);
-typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum value, GLint* data);
-typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat* data);
-typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint* data);
-
-#define glFragmentColorMaterialSGIX GLEW_GET_FUN(__glewFragmentColorMaterialSGIX)
-#define glFragmentLightModelfSGIX GLEW_GET_FUN(__glewFragmentLightModelfSGIX)
-#define glFragmentLightModelfvSGIX GLEW_GET_FUN(__glewFragmentLightModelfvSGIX)
-#define glFragmentLightModeliSGIX GLEW_GET_FUN(__glewFragmentLightModeliSGIX)
-#define glFragmentLightModelivSGIX GLEW_GET_FUN(__glewFragmentLightModelivSGIX)
-#define glFragmentLightfSGIX GLEW_GET_FUN(__glewFragmentLightfSGIX)
-#define glFragmentLightfvSGIX GLEW_GET_FUN(__glewFragmentLightfvSGIX)
-#define glFragmentLightiSGIX GLEW_GET_FUN(__glewFragmentLightiSGIX)
-#define glFragmentLightivSGIX GLEW_GET_FUN(__glewFragmentLightivSGIX)
-#define glFragmentMaterialfSGIX GLEW_GET_FUN(__glewFragmentMaterialfSGIX)
-#define glFragmentMaterialfvSGIX GLEW_GET_FUN(__glewFragmentMaterialfvSGIX)
-#define glFragmentMaterialiSGIX GLEW_GET_FUN(__glewFragmentMaterialiSGIX)
-#define glFragmentMaterialivSGIX GLEW_GET_FUN(__glewFragmentMaterialivSGIX)
-#define glGetFragmentLightfvSGIX GLEW_GET_FUN(__glewGetFragmentLightfvSGIX)
-#define glGetFragmentLightivSGIX GLEW_GET_FUN(__glewGetFragmentLightivSGIX)
-#define glGetFragmentMaterialfvSGIX GLEW_GET_FUN(__glewGetFragmentMaterialfvSGIX)
-#define glGetFragmentMaterialivSGIX GLEW_GET_FUN(__glewGetFragmentMaterialivSGIX)
-
-#define GLEW_SGIX_fragment_specular_lighting GLEW_GET_VAR(__GLEW_SGIX_fragment_specular_lighting)
-
-#endif /* GL_SGIX_fragment_specular_lighting */
-
-/* ---------------------- GL_SGIX_fragments_instrument --------------------- */
-
-#ifndef GL_SGIX_fragments_instrument
-#define GL_SGIX_fragments_instrument 1
-
-#define GL_FRAGMENTS_INSTRUMENT_SGIX 0x8313
-#define GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX 0x8314
-#define GL_FRAGMENTS_INSTRUMENT_MAX_SGIX 0x8315
-
-#define GLEW_SGIX_fragments_instrument GLEW_GET_VAR(__GLEW_SGIX_fragments_instrument)
-
-#endif /* GL_SGIX_fragments_instrument */
-
-/* --------------------------- GL_SGIX_framezoom --------------------------- */
-
-#ifndef GL_SGIX_framezoom
-#define GL_SGIX_framezoom 1
-
-typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor);
-
-#define glFrameZoomSGIX GLEW_GET_FUN(__glewFrameZoomSGIX)
-
-#define GLEW_SGIX_framezoom GLEW_GET_VAR(__GLEW_SGIX_framezoom)
-
-#endif /* GL_SGIX_framezoom */
-
-/* -------------------------- GL_SGIX_icc_texture -------------------------- */
-
-#ifndef GL_SGIX_icc_texture
-#define GL_SGIX_icc_texture 1
-
-#define GL_RGB_ICC_SGIX 0x8460
-#define GL_RGBA_ICC_SGIX 0x8461
-#define GL_ALPHA_ICC_SGIX 0x8462
-#define GL_LUMINANCE_ICC_SGIX 0x8463
-#define GL_INTENSITY_ICC_SGIX 0x8464
-#define GL_LUMINANCE_ALPHA_ICC_SGIX 0x8465
-#define GL_R5_G6_B5_ICC_SGIX 0x8466
-#define GL_R5_G6_B5_A8_ICC_SGIX 0x8467
-#define GL_ALPHA16_ICC_SGIX 0x8468
-#define GL_LUMINANCE16_ICC_SGIX 0x8469
-#define GL_INTENSITY16_ICC_SGIX 0x846A
-#define GL_LUMINANCE16_ALPHA8_ICC_SGIX 0x846B
-
-#define GLEW_SGIX_icc_texture GLEW_GET_VAR(__GLEW_SGIX_icc_texture)
-
-#endif /* GL_SGIX_icc_texture */
-
-/* ------------------------ GL_SGIX_igloo_interface ------------------------ */
-
-#ifndef GL_SGIX_igloo_interface
-#define GL_SGIX_igloo_interface 1
-
-#define GL_IGLOO_FULLSCREEN_SGIX 0x819E
-#define GL_IGLOO_VIEWPORT_OFFSET_SGIX 0x819F
-#define GL_IGLOO_SWAPTMESH_SGIX 0x81A0
-#define GL_IGLOO_COLORNORMAL_SGIX 0x81A1
-#define GL_IGLOO_IRISGL_MODE_SGIX 0x81A2
-#define GL_IGLOO_LMC_COLOR_SGIX 0x81A3
-#define GL_IGLOO_TMESHMODE_SGIX 0x81A4
-#define GL_LIGHT31 0xBEAD
-
-typedef void (GLAPIENTRY * PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, void *param);
-
-#define glIglooInterfaceSGIX GLEW_GET_FUN(__glewIglooInterfaceSGIX)
-
-#define GLEW_SGIX_igloo_interface GLEW_GET_VAR(__GLEW_SGIX_igloo_interface)
-
-#endif /* GL_SGIX_igloo_interface */
-
-/* ----------------------- GL_SGIX_image_compression ----------------------- */
-
-#ifndef GL_SGIX_image_compression
-#define GL_SGIX_image_compression 1
-
-#define GLEW_SGIX_image_compression GLEW_GET_VAR(__GLEW_SGIX_image_compression)
-
-#endif /* GL_SGIX_image_compression */
-
-/* ---------------------- GL_SGIX_impact_pixel_texture --------------------- */
-
-#ifndef GL_SGIX_impact_pixel_texture
-#define GL_SGIX_impact_pixel_texture 1
-
-#define GLEW_SGIX_impact_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_impact_pixel_texture)
-
-#endif /* GL_SGIX_impact_pixel_texture */
-
-/* ------------------------ GL_SGIX_instrument_error ----------------------- */
-
-#ifndef GL_SGIX_instrument_error
-#define GL_SGIX_instrument_error 1
-
-#define GLEW_SGIX_instrument_error GLEW_GET_VAR(__GLEW_SGIX_instrument_error)
-
-#endif /* GL_SGIX_instrument_error */
-
-/* --------------------------- GL_SGIX_interlace --------------------------- */
-
-#ifndef GL_SGIX_interlace
-#define GL_SGIX_interlace 1
-
-#define GL_INTERLACE_SGIX 0x8094
-
-#define GLEW_SGIX_interlace GLEW_GET_VAR(__GLEW_SGIX_interlace)
-
-#endif /* GL_SGIX_interlace */
-
-/* ------------------------- GL_SGIX_ir_instrument1 ------------------------ */
-
-#ifndef GL_SGIX_ir_instrument1
-#define GL_SGIX_ir_instrument1 1
-
-#define GLEW_SGIX_ir_instrument1 GLEW_GET_VAR(__GLEW_SGIX_ir_instrument1)
-
-#endif /* GL_SGIX_ir_instrument1 */
-
-/* ----------------------- GL_SGIX_line_quality_hint ----------------------- */
-
-#ifndef GL_SGIX_line_quality_hint
-#define GL_SGIX_line_quality_hint 1
-
-#define GL_LINE_QUALITY_HINT_SGIX 0x835B
-
-#define GLEW_SGIX_line_quality_hint GLEW_GET_VAR(__GLEW_SGIX_line_quality_hint)
-
-#endif /* GL_SGIX_line_quality_hint */
-
-/* ------------------------- GL_SGIX_list_priority ------------------------- */
-
-#ifndef GL_SGIX_list_priority
-#define GL_SGIX_list_priority 1
-
-#define GLEW_SGIX_list_priority GLEW_GET_VAR(__GLEW_SGIX_list_priority)
-
-#endif /* GL_SGIX_list_priority */
-
-/* ----------------------------- GL_SGIX_mpeg1 ----------------------------- */
-
-#ifndef GL_SGIX_mpeg1
-#define GL_SGIX_mpeg1 1
-
-typedef void (GLAPIENTRY * PFNGLALLOCMPEGPREDICTORSSGIXPROC) (GLsizei width, GLsizei height, GLsizei n, GLuint* predictors);
-typedef void (GLAPIENTRY * PFNGLDELETEMPEGPREDICTORSSGIXPROC) (GLsizei n, GLuint* predictors);
-typedef void (GLAPIENTRY * PFNGLGENMPEGPREDICTORSSGIXPROC) (GLsizei n, GLuint* predictors);
-typedef void (GLAPIENTRY * PFNGLGETMPEGPARAMETERFVSGIXPROC) (GLenum target, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETMPEGPARAMETERIVSGIXPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETMPEGPREDICTORSGIXPROC) (GLenum target, GLenum format, GLenum type, void *pixels);
-typedef void (GLAPIENTRY * PFNGLGETMPEGQUANTTABLEUBVPROC) (GLenum target, GLubyte* values);
-typedef GLboolean (GLAPIENTRY * PFNGLISMPEGPREDICTORSGIXPROC) (GLuint predictor);
-typedef void (GLAPIENTRY * PFNGLMPEGPREDICTORSGIXPROC) (GLenum target, GLenum format, GLenum type, void *pixels);
-typedef void (GLAPIENTRY * PFNGLMPEGQUANTTABLEUBVPROC) (GLenum target, GLubyte* values);
-typedef void (GLAPIENTRY * PFNGLSWAPMPEGPREDICTORSSGIXPROC) (GLenum target0, GLenum target1);
-
-#define glAllocMPEGPredictorsSGIX GLEW_GET_FUN(__glewAllocMPEGPredictorsSGIX)
-#define glDeleteMPEGPredictorsSGIX GLEW_GET_FUN(__glewDeleteMPEGPredictorsSGIX)
-#define glGenMPEGPredictorsSGIX GLEW_GET_FUN(__glewGenMPEGPredictorsSGIX)
-#define glGetMPEGParameterfvSGIX GLEW_GET_FUN(__glewGetMPEGParameterfvSGIX)
-#define glGetMPEGParameterivSGIX GLEW_GET_FUN(__glewGetMPEGParameterivSGIX)
-#define glGetMPEGPredictorSGIX GLEW_GET_FUN(__glewGetMPEGPredictorSGIX)
-#define glGetMPEGQuantTableubv GLEW_GET_FUN(__glewGetMPEGQuantTableubv)
-#define glIsMPEGPredictorSGIX GLEW_GET_FUN(__glewIsMPEGPredictorSGIX)
-#define glMPEGPredictorSGIX GLEW_GET_FUN(__glewMPEGPredictorSGIX)
-#define glMPEGQuantTableubv GLEW_GET_FUN(__glewMPEGQuantTableubv)
-#define glSwapMPEGPredictorsSGIX GLEW_GET_FUN(__glewSwapMPEGPredictorsSGIX)
-
-#define GLEW_SGIX_mpeg1 GLEW_GET_VAR(__GLEW_SGIX_mpeg1)
-
-#endif /* GL_SGIX_mpeg1 */
-
-/* ----------------------------- GL_SGIX_mpeg2 ----------------------------- */
-
-#ifndef GL_SGIX_mpeg2
-#define GL_SGIX_mpeg2 1
-
-#define GLEW_SGIX_mpeg2 GLEW_GET_VAR(__GLEW_SGIX_mpeg2)
-
-#endif /* GL_SGIX_mpeg2 */
-
-/* ------------------ GL_SGIX_nonlinear_lighting_pervertex ----------------- */
-
-#ifndef GL_SGIX_nonlinear_lighting_pervertex
-#define GL_SGIX_nonlinear_lighting_pervertex 1
-
-typedef void (GLAPIENTRY * PFNGLGETNONLINLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLint* terms, GLfloat *data);
-typedef void (GLAPIENTRY * PFNGLGETNONLINMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLint* terms, const GLfloat *data);
-typedef void (GLAPIENTRY * PFNGLNONLINLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLint terms, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLNONLINMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLint terms, const GLfloat* params);
-
-#define glGetNonlinLightfvSGIX GLEW_GET_FUN(__glewGetNonlinLightfvSGIX)
-#define glGetNonlinMaterialfvSGIX GLEW_GET_FUN(__glewGetNonlinMaterialfvSGIX)
-#define glNonlinLightfvSGIX GLEW_GET_FUN(__glewNonlinLightfvSGIX)
-#define glNonlinMaterialfvSGIX GLEW_GET_FUN(__glewNonlinMaterialfvSGIX)
-
-#define GLEW_SGIX_nonlinear_lighting_pervertex GLEW_GET_VAR(__GLEW_SGIX_nonlinear_lighting_pervertex)
-
-#endif /* GL_SGIX_nonlinear_lighting_pervertex */
-
-/* --------------------------- GL_SGIX_nurbs_eval -------------------------- */
-
-#ifndef GL_SGIX_nurbs_eval
-#define GL_SGIX_nurbs_eval 1
-
-#define GL_MAP1_VERTEX_3_NURBS_SGIX 0x81CB
-#define GL_MAP1_VERTEX_4_NURBS_SGIX 0x81CC
-#define GL_MAP1_INDEX_NURBS_SGIX 0x81CD
-#define GL_MAP1_COLOR_4_NURBS_SGIX 0x81CE
-#define GL_MAP1_NORMAL_NURBS_SGIX 0x81CF
-#define GL_MAP1_TEXTURE_COORD_1_NURBS_SGIX 0x81E0
-#define GL_MAP1_TEXTURE_COORD_2_NURBS_SGIX 0x81E1
-#define GL_MAP1_TEXTURE_COORD_3_NURBS_SGIX 0x81E2
-#define GL_MAP1_TEXTURE_COORD_4_NURBS_SGIX 0x81E3
-#define GL_MAP2_VERTEX_3_NURBS_SGIX 0x81E4
-#define GL_MAP2_VERTEX_4_NURBS_SGIX 0x81E5
-#define GL_MAP2_INDEX_NURBS_SGIX 0x81E6
-#define GL_MAP2_COLOR_4_NURBS_SGIX 0x81E7
-#define GL_MAP2_NORMAL_NURBS_SGIX 0x81E8
-#define GL_MAP2_TEXTURE_COORD_1_NURBS_SGIX 0x81E9
-#define GL_MAP2_TEXTURE_COORD_2_NURBS_SGIX 0x81EA
-#define GL_MAP2_TEXTURE_COORD_3_NURBS_SGIX 0x81EB
-#define GL_MAP2_TEXTURE_COORD_4_NURBS_SGIX 0x81EC
-#define GL_NURBS_KNOT_COUNT_SGIX 0x81ED
-#define GL_NURBS_KNOT_VECTOR_SGIX 0x81EE
-
-#define GLEW_SGIX_nurbs_eval GLEW_GET_VAR(__GLEW_SGIX_nurbs_eval)
-
-#endif /* GL_SGIX_nurbs_eval */
-
-/* ---------------------- GL_SGIX_occlusion_instrument --------------------- */
-
-#ifndef GL_SGIX_occlusion_instrument
-#define GL_SGIX_occlusion_instrument 1
-
-#define GL_OCCLUSION_INSTRUMENT_SGIX 0x6060
-
-#define GLEW_SGIX_occlusion_instrument GLEW_GET_VAR(__GLEW_SGIX_occlusion_instrument)
-
-#endif /* GL_SGIX_occlusion_instrument */
-
-/* ------------------------- GL_SGIX_packed_6bytes ------------------------- */
-
-#ifndef GL_SGIX_packed_6bytes
-#define GL_SGIX_packed_6bytes 1
-
-#define GLEW_SGIX_packed_6bytes GLEW_GET_VAR(__GLEW_SGIX_packed_6bytes)
-
-#endif /* GL_SGIX_packed_6bytes */
-
-/* ------------------------- GL_SGIX_pixel_texture ------------------------- */
-
-#ifndef GL_SGIX_pixel_texture
-#define GL_SGIX_pixel_texture 1
-
-typedef void (GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode);
-
-#define glPixelTexGenSGIX GLEW_GET_FUN(__glewPixelTexGenSGIX)
-
-#define GLEW_SGIX_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_pixel_texture)
-
-#endif /* GL_SGIX_pixel_texture */
-
-/* ----------------------- GL_SGIX_pixel_texture_bits ---------------------- */
-
-#ifndef GL_SGIX_pixel_texture_bits
-#define GL_SGIX_pixel_texture_bits 1
-
-#define GLEW_SGIX_pixel_texture_bits GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_bits)
-
-#endif /* GL_SGIX_pixel_texture_bits */
-
-/* ----------------------- GL_SGIX_pixel_texture_lod ----------------------- */
-
-#ifndef GL_SGIX_pixel_texture_lod
-#define GL_SGIX_pixel_texture_lod 1
-
-#define GLEW_SGIX_pixel_texture_lod GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_lod)
-
-#endif /* GL_SGIX_pixel_texture_lod */
-
-/* -------------------------- GL_SGIX_pixel_tiles -------------------------- */
-
-#ifndef GL_SGIX_pixel_tiles
-#define GL_SGIX_pixel_tiles 1
-
-#define GLEW_SGIX_pixel_tiles GLEW_GET_VAR(__GLEW_SGIX_pixel_tiles)
-
-#endif /* GL_SGIX_pixel_tiles */
-
-/* ------------------------- GL_SGIX_polynomial_ffd ------------------------ */
-
-#ifndef GL_SGIX_polynomial_ffd
-#define GL_SGIX_polynomial_ffd 1
-
-#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x1
-#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x2
-
-typedef void (GLAPIENTRY * PFNGLDEFORMSGIXPROC) (GLbitfield mask);
-typedef void (GLAPIENTRY * PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask);
-
-#define glDeformSGIX GLEW_GET_FUN(__glewDeformSGIX)
-#define glLoadIdentityDeformationMapSGIX GLEW_GET_FUN(__glewLoadIdentityDeformationMapSGIX)
-
-#define GLEW_SGIX_polynomial_ffd GLEW_GET_VAR(__GLEW_SGIX_polynomial_ffd)
-
-#endif /* GL_SGIX_polynomial_ffd */
-
-/* --------------------------- GL_SGIX_quad_mesh --------------------------- */
-
-#ifndef GL_SGIX_quad_mesh
-#define GL_SGIX_quad_mesh 1
-
-typedef void (GLAPIENTRY * PFNGLMESHBREADTHSGIXPROC) (GLint breadth);
-typedef void (GLAPIENTRY * PFNGLMESHSTRIDESGIXPROC) (GLint stride);
-
-#define glMeshBreadthSGIX GLEW_GET_FUN(__glewMeshBreadthSGIX)
-#define glMeshStrideSGIX GLEW_GET_FUN(__glewMeshStrideSGIX)
-
-#define GLEW_SGIX_quad_mesh GLEW_GET_VAR(__GLEW_SGIX_quad_mesh)
-
-#endif /* GL_SGIX_quad_mesh */
-
-/* ------------------------ GL_SGIX_reference_plane ------------------------ */
-
-#ifndef GL_SGIX_reference_plane
-#define GL_SGIX_reference_plane 1
-
-typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equation);
-
-#define glReferencePlaneSGIX GLEW_GET_FUN(__glewReferencePlaneSGIX)
-
-#define GLEW_SGIX_reference_plane GLEW_GET_VAR(__GLEW_SGIX_reference_plane)
-
-#endif /* GL_SGIX_reference_plane */
-
-/* ---------------------------- GL_SGIX_resample --------------------------- */
-
-#ifndef GL_SGIX_resample
-#define GL_SGIX_resample 1
-
-#define GL_PACK_RESAMPLE_SGIX 0x842E
-#define GL_UNPACK_RESAMPLE_SGIX 0x842F
-#define GL_RESAMPLE_DECIMATE_SGIX 0x8430
-#define GL_RESAMPLE_REPLICATE_SGIX 0x8433
-#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434
-
-#define GLEW_SGIX_resample GLEW_GET_VAR(__GLEW_SGIX_resample)
-
-#endif /* GL_SGIX_resample */
-
-/* ------------------------- GL_SGIX_scalebias_hint ------------------------ */
-
-#ifndef GL_SGIX_scalebias_hint
-#define GL_SGIX_scalebias_hint 1
-
-#define GL_SCALEBIAS_HINT_SGIX 0x8322
-
-#define GLEW_SGIX_scalebias_hint GLEW_GET_VAR(__GLEW_SGIX_scalebias_hint)
-
-#endif /* GL_SGIX_scalebias_hint */
-
-/* ----------------------------- GL_SGIX_shadow ---------------------------- */
-
-#ifndef GL_SGIX_shadow
-#define GL_SGIX_shadow 1
-
-#define GL_TEXTURE_COMPARE_SGIX 0x819A
-#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B
-#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C
-#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D
-
-#define GLEW_SGIX_shadow GLEW_GET_VAR(__GLEW_SGIX_shadow)
-
-#endif /* GL_SGIX_shadow */
-
-/* ------------------------- GL_SGIX_shadow_ambient ------------------------ */
-
-#ifndef GL_SGIX_shadow_ambient
-#define GL_SGIX_shadow_ambient 1
-
-#define GL_SHADOW_AMBIENT_SGIX 0x80BF
-
-#define GLEW_SGIX_shadow_ambient GLEW_GET_VAR(__GLEW_SGIX_shadow_ambient)
-
-#endif /* GL_SGIX_shadow_ambient */
-
-/* ------------------------------ GL_SGIX_slim ----------------------------- */
-
-#ifndef GL_SGIX_slim
-#define GL_SGIX_slim 1
-
-#define GL_PACK_MAX_COMPRESSED_SIZE_SGIX 0x831B
-#define GL_SLIM8U_SGIX 0x831D
-#define GL_SLIM10U_SGIX 0x831E
-#define GL_SLIM12S_SGIX 0x831F
-
-#define GLEW_SGIX_slim GLEW_GET_VAR(__GLEW_SGIX_slim)
-
-#endif /* GL_SGIX_slim */
-
-/* ------------------------ GL_SGIX_spotlight_cutoff ----------------------- */
-
-#ifndef GL_SGIX_spotlight_cutoff
-#define GL_SGIX_spotlight_cutoff 1
-
-#define GL_SPOT_CUTOFF_DELTA_SGIX 0x8193
-
-#define GLEW_SGIX_spotlight_cutoff GLEW_GET_VAR(__GLEW_SGIX_spotlight_cutoff)
-
-#endif /* GL_SGIX_spotlight_cutoff */
-
-/* ----------------------------- GL_SGIX_sprite ---------------------------- */
-
-#ifndef GL_SGIX_sprite
-#define GL_SGIX_sprite 1
-
-typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, GLint* params);
-
-#define glSpriteParameterfSGIX GLEW_GET_FUN(__glewSpriteParameterfSGIX)
-#define glSpriteParameterfvSGIX GLEW_GET_FUN(__glewSpriteParameterfvSGIX)
-#define glSpriteParameteriSGIX GLEW_GET_FUN(__glewSpriteParameteriSGIX)
-#define glSpriteParameterivSGIX GLEW_GET_FUN(__glewSpriteParameterivSGIX)
-
-#define GLEW_SGIX_sprite GLEW_GET_VAR(__GLEW_SGIX_sprite)
-
-#endif /* GL_SGIX_sprite */
-
-/* -------------------------- GL_SGIX_subdiv_patch ------------------------- */
-
-#ifndef GL_SGIX_subdiv_patch
-#define GL_SGIX_subdiv_patch 1
-
-#define GLEW_SGIX_subdiv_patch GLEW_GET_VAR(__GLEW_SGIX_subdiv_patch)
-
-#endif /* GL_SGIX_subdiv_patch */
-
-/* --------------------------- GL_SGIX_subsample --------------------------- */
-
-#ifndef GL_SGIX_subsample
-#define GL_SGIX_subsample 1
-
-#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0
-#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1
-#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2
-#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3
-#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4
-
-#define GLEW_SGIX_subsample GLEW_GET_VAR(__GLEW_SGIX_subsample)
-
-#endif /* GL_SGIX_subsample */
-
-/* ----------------------- GL_SGIX_tag_sample_buffer ----------------------- */
-
-#ifndef GL_SGIX_tag_sample_buffer
-#define GL_SGIX_tag_sample_buffer 1
-
-typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void);
-
-#define glTagSampleBufferSGIX GLEW_GET_FUN(__glewTagSampleBufferSGIX)
-
-#define GLEW_SGIX_tag_sample_buffer GLEW_GET_VAR(__GLEW_SGIX_tag_sample_buffer)
-
-#endif /* GL_SGIX_tag_sample_buffer */
-
-/* ------------------------ GL_SGIX_texture_add_env ------------------------ */
-
-#ifndef GL_SGIX_texture_add_env
-#define GL_SGIX_texture_add_env 1
-
-#define GLEW_SGIX_texture_add_env GLEW_GET_VAR(__GLEW_SGIX_texture_add_env)
-
-#endif /* GL_SGIX_texture_add_env */
-
-/* -------------------- GL_SGIX_texture_coordinate_clamp ------------------- */
-
-#ifndef GL_SGIX_texture_coordinate_clamp
-#define GL_SGIX_texture_coordinate_clamp 1
-
-#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369
-#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A
-#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B
-
-#define GLEW_SGIX_texture_coordinate_clamp GLEW_GET_VAR(__GLEW_SGIX_texture_coordinate_clamp)
-
-#endif /* GL_SGIX_texture_coordinate_clamp */
-
-/* ------------------------ GL_SGIX_texture_lod_bias ----------------------- */
-
-#ifndef GL_SGIX_texture_lod_bias
-#define GL_SGIX_texture_lod_bias 1
-
-#define GLEW_SGIX_texture_lod_bias GLEW_GET_VAR(__GLEW_SGIX_texture_lod_bias)
-
-#endif /* GL_SGIX_texture_lod_bias */
-
-/* ------------------- GL_SGIX_texture_mipmap_anisotropic ------------------ */
-
-#ifndef GL_SGIX_texture_mipmap_anisotropic
-#define GL_SGIX_texture_mipmap_anisotropic 1
-
-#define GL_TEXTURE_MIPMAP_ANISOTROPY_SGIX 0x832E
-#define GL_MAX_MIPMAP_ANISOTROPY_SGIX 0x832F
-
-#define GLEW_SGIX_texture_mipmap_anisotropic GLEW_GET_VAR(__GLEW_SGIX_texture_mipmap_anisotropic)
-
-#endif /* GL_SGIX_texture_mipmap_anisotropic */
-
-/* ---------------------- GL_SGIX_texture_multi_buffer --------------------- */
-
-#ifndef GL_SGIX_texture_multi_buffer
-#define GL_SGIX_texture_multi_buffer 1
-
-#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E
-
-#define GLEW_SGIX_texture_multi_buffer GLEW_GET_VAR(__GLEW_SGIX_texture_multi_buffer)
-
-#endif /* GL_SGIX_texture_multi_buffer */
-
-/* ------------------------- GL_SGIX_texture_phase ------------------------- */
-
-#ifndef GL_SGIX_texture_phase
-#define GL_SGIX_texture_phase 1
-
-#define GL_PHASE_SGIX 0x832A
-
-#define GLEW_SGIX_texture_phase GLEW_GET_VAR(__GLEW_SGIX_texture_phase)
-
-#endif /* GL_SGIX_texture_phase */
-
-/* ------------------------- GL_SGIX_texture_range ------------------------- */
-
-#ifndef GL_SGIX_texture_range
-#define GL_SGIX_texture_range 1
-
-#define GL_RGB_SIGNED_SGIX 0x85E0
-#define GL_RGBA_SIGNED_SGIX 0x85E1
-#define GL_ALPHA_SIGNED_SGIX 0x85E2
-#define GL_LUMINANCE_SIGNED_SGIX 0x85E3
-#define GL_INTENSITY_SIGNED_SGIX 0x85E4
-#define GL_LUMINANCE_ALPHA_SIGNED_SGIX 0x85E5
-#define GL_RGB16_SIGNED_SGIX 0x85E6
-#define GL_RGBA16_SIGNED_SGIX 0x85E7
-#define GL_ALPHA16_SIGNED_SGIX 0x85E8
-#define GL_LUMINANCE16_SIGNED_SGIX 0x85E9
-#define GL_INTENSITY16_SIGNED_SGIX 0x85EA
-#define GL_LUMINANCE16_ALPHA16_SIGNED_SGIX 0x85EB
-#define GL_RGB_EXTENDED_RANGE_SGIX 0x85EC
-#define GL_RGBA_EXTENDED_RANGE_SGIX 0x85ED
-#define GL_ALPHA_EXTENDED_RANGE_SGIX 0x85EE
-#define GL_LUMINANCE_EXTENDED_RANGE_SGIX 0x85EF
-#define GL_INTENSITY_EXTENDED_RANGE_SGIX 0x85F0
-#define GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX 0x85F1
-#define GL_RGB16_EXTENDED_RANGE_SGIX 0x85F2
-#define GL_RGBA16_EXTENDED_RANGE_SGIX 0x85F3
-#define GL_ALPHA16_EXTENDED_RANGE_SGIX 0x85F4
-#define GL_LUMINANCE16_EXTENDED_RANGE_SGIX 0x85F5
-#define GL_INTENSITY16_EXTENDED_RANGE_SGIX 0x85F6
-#define GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7
-#define GL_MIN_LUMINANCE_SGIS 0x85F8
-#define GL_MAX_LUMINANCE_SGIS 0x85F9
-#define GL_MIN_INTENSITY_SGIS 0x85FA
-#define GL_MAX_INTENSITY_SGIS 0x85FB
-
-#define GLEW_SGIX_texture_range GLEW_GET_VAR(__GLEW_SGIX_texture_range)
-
-#endif /* GL_SGIX_texture_range */
-
-/* ----------------------- GL_SGIX_texture_scale_bias ---------------------- */
-
-#ifndef GL_SGIX_texture_scale_bias
-#define GL_SGIX_texture_scale_bias 1
-
-#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179
-#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A
-#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B
-#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C
-
-#define GLEW_SGIX_texture_scale_bias GLEW_GET_VAR(__GLEW_SGIX_texture_scale_bias)
-
-#endif /* GL_SGIX_texture_scale_bias */
-
-/* ---------------------- GL_SGIX_texture_supersample ---------------------- */
-
-#ifndef GL_SGIX_texture_supersample
-#define GL_SGIX_texture_supersample 1
-
-#define GLEW_SGIX_texture_supersample GLEW_GET_VAR(__GLEW_SGIX_texture_supersample)
-
-#endif /* GL_SGIX_texture_supersample */
-
-/* --------------------------- GL_SGIX_vector_ops -------------------------- */
-
-#ifndef GL_SGIX_vector_ops
-#define GL_SGIX_vector_ops 1
-
-typedef void (GLAPIENTRY * PFNGLGETVECTOROPERATIONSGIXPROC) (GLenum operation);
-typedef void (GLAPIENTRY * PFNGLVECTOROPERATIONSGIXPROC) (GLenum operation);
-
-#define glGetVectorOperationSGIX GLEW_GET_FUN(__glewGetVectorOperationSGIX)
-#define glVectorOperationSGIX GLEW_GET_FUN(__glewVectorOperationSGIX)
-
-#define GLEW_SGIX_vector_ops GLEW_GET_VAR(__GLEW_SGIX_vector_ops)
-
-#endif /* GL_SGIX_vector_ops */
-
-/* ---------------------- GL_SGIX_vertex_array_object ---------------------- */
-
-#ifndef GL_SGIX_vertex_array_object
-#define GL_SGIX_vertex_array_object 1
-
-typedef GLboolean (GLAPIENTRY * PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC) (GLsizei n, const GLuint* arrays, GLboolean* residences);
-typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYSGIXPROC) (GLuint array);
-typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSSGIXPROC) (GLsizei n, const GLuint* arrays);
-typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSSGIXPROC) (GLsizei n, GLuint* arrays);
-typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYSGIXPROC) (GLuint array);
-typedef void (GLAPIENTRY * PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC) (GLsizei n, const GLuint* arrays, const GLclampf* priorities);
-
-#define glAreVertexArraysResidentSGIX GLEW_GET_FUN(__glewAreVertexArraysResidentSGIX)
-#define glBindVertexArraySGIX GLEW_GET_FUN(__glewBindVertexArraySGIX)
-#define glDeleteVertexArraysSGIX GLEW_GET_FUN(__glewDeleteVertexArraysSGIX)
-#define glGenVertexArraysSGIX GLEW_GET_FUN(__glewGenVertexArraysSGIX)
-#define glIsVertexArraySGIX GLEW_GET_FUN(__glewIsVertexArraySGIX)
-#define glPrioritizeVertexArraysSGIX GLEW_GET_FUN(__glewPrioritizeVertexArraysSGIX)
-
-#define GLEW_SGIX_vertex_array_object GLEW_GET_VAR(__GLEW_SGIX_vertex_array_object)
-
-#endif /* GL_SGIX_vertex_array_object */
-
-/* ------------------------- GL_SGIX_vertex_preclip ------------------------ */
-
-#ifndef GL_SGIX_vertex_preclip
-#define GL_SGIX_vertex_preclip 1
-
-#define GL_VERTEX_PRECLIP_SGIX 0x83EE
-#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
-
-#define GLEW_SGIX_vertex_preclip GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip)
-
-#endif /* GL_SGIX_vertex_preclip */
-
-/* ---------------------- GL_SGIX_vertex_preclip_hint ---------------------- */
-
-#ifndef GL_SGIX_vertex_preclip_hint
-#define GL_SGIX_vertex_preclip_hint 1
-
-#define GL_VERTEX_PRECLIP_SGIX 0x83EE
-#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
-
-#define GLEW_SGIX_vertex_preclip_hint GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip_hint)
-
-#endif /* GL_SGIX_vertex_preclip_hint */
-
-/* ----------------------------- GL_SGIX_ycrcb ----------------------------- */
-
-#ifndef GL_SGIX_ycrcb
-#define GL_SGIX_ycrcb 1
-
-#define GLEW_SGIX_ycrcb GLEW_GET_VAR(__GLEW_SGIX_ycrcb)
-
-#endif /* GL_SGIX_ycrcb */
-
-/* ------------------------ GL_SGIX_ycrcb_subsample ------------------------ */
-
-#ifndef GL_SGIX_ycrcb_subsample
-#define GL_SGIX_ycrcb_subsample 1
-
-#define GLEW_SGIX_ycrcb_subsample GLEW_GET_VAR(__GLEW_SGIX_ycrcb_subsample)
-
-#endif /* GL_SGIX_ycrcb_subsample */
-
-/* ----------------------------- GL_SGIX_ycrcba ---------------------------- */
-
-#ifndef GL_SGIX_ycrcba
-#define GL_SGIX_ycrcba 1
-
-#define GL_YCRCB_SGIX 0x8318
-#define GL_YCRCBA_SGIX 0x8319
-
-#define GLEW_SGIX_ycrcba GLEW_GET_VAR(__GLEW_SGIX_ycrcba)
-
-#endif /* GL_SGIX_ycrcba */
-
-/* -------------------------- GL_SGI_color_matrix -------------------------- */
-
-#ifndef GL_SGI_color_matrix
-#define GL_SGI_color_matrix 1
-
-#define GL_COLOR_MATRIX_SGI 0x80B1
-#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2
-#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
-#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
-#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
-#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
-#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
-#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
-#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
-#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
-#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
-
-#define GLEW_SGI_color_matrix GLEW_GET_VAR(__GLEW_SGI_color_matrix)
-
-#endif /* GL_SGI_color_matrix */
-
-/* --------------------------- GL_SGI_color_table -------------------------- */
-
-#ifndef GL_SGI_color_table
-#define GL_SGI_color_table 1
-
-#define GL_COLOR_TABLE_SGI 0x80D0
-#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
-#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
-#define GL_PROXY_COLOR_TABLE_SGI 0x80D3
-#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
-#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
-#define GL_COLOR_TABLE_SCALE_SGI 0x80D6
-#define GL_COLOR_TABLE_BIAS_SGI 0x80D7
-#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8
-#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9
-#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA
-#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB
-#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC
-#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD
-#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
-#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
-
-typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table);
-typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
-typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void *table);
-
-#define glColorTableParameterfvSGI GLEW_GET_FUN(__glewColorTableParameterfvSGI)
-#define glColorTableParameterivSGI GLEW_GET_FUN(__glewColorTableParameterivSGI)
-#define glColorTableSGI GLEW_GET_FUN(__glewColorTableSGI)
-#define glCopyColorTableSGI GLEW_GET_FUN(__glewCopyColorTableSGI)
-#define glGetColorTableParameterfvSGI GLEW_GET_FUN(__glewGetColorTableParameterfvSGI)
-#define glGetColorTableParameterivSGI GLEW_GET_FUN(__glewGetColorTableParameterivSGI)
-#define glGetColorTableSGI GLEW_GET_FUN(__glewGetColorTableSGI)
-
-#define GLEW_SGI_color_table GLEW_GET_VAR(__GLEW_SGI_color_table)
-
-#endif /* GL_SGI_color_table */
-
-/* ----------------------------- GL_SGI_complex ---------------------------- */
-
-#ifndef GL_SGI_complex
-#define GL_SGI_complex 1
-
-#define GLEW_SGI_complex GLEW_GET_VAR(__GLEW_SGI_complex)
-
-#endif /* GL_SGI_complex */
-
-/* -------------------------- GL_SGI_complex_type -------------------------- */
-
-#ifndef GL_SGI_complex_type
-#define GL_SGI_complex_type 1
-
-#define GL_COMPLEX_UNSIGNED_BYTE_SGI 0x81BD
-#define GL_COMPLEX_BYTE_SGI 0x81BE
-#define GL_COMPLEX_UNSIGNED_SHORT_SGI 0x81BF
-#define GL_COMPLEX_SHORT_SGI 0x81C0
-#define GL_COMPLEX_UNSIGNED_INT_SGI 0x81C1
-#define GL_COMPLEX_INT_SGI 0x81C2
-#define GL_COMPLEX_FLOAT_SGI 0x81C3
-
-#define GLEW_SGI_complex_type GLEW_GET_VAR(__GLEW_SGI_complex_type)
-
-#endif /* GL_SGI_complex_type */
-
-/* ------------------------------- GL_SGI_fft ------------------------------ */
-
-#ifndef GL_SGI_fft
-#define GL_SGI_fft 1
-
-#define GL_PIXEL_TRANSFORM_OPERATOR_SGI 0x81C4
-#define GL_CONVOLUTION_SGI 0x81C5
-#define GL_FFT_1D_SGI 0x81C6
-#define GL_PIXEL_TRANSFORM_SGI 0x81C7
-#define GL_MAX_FFT_WIDTH_SGI 0x81C8
-
-typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params);
-typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFSGIPROC) (GLenum target, GLenum pname, GLfloat param);
-typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params);
-typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERISGIPROC) (GLenum target, GLenum pname, GLint param);
-typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params);
-typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMSGIPROC) (GLenum target);
-
-#define glGetPixelTransformParameterfvSGI GLEW_GET_FUN(__glewGetPixelTransformParameterfvSGI)
-#define glGetPixelTransformParameterivSGI GLEW_GET_FUN(__glewGetPixelTransformParameterivSGI)
-#define glPixelTransformParameterfSGI GLEW_GET_FUN(__glewPixelTransformParameterfSGI)
-#define glPixelTransformParameterfvSGI GLEW_GET_FUN(__glewPixelTransformParameterfvSGI)
-#define glPixelTransformParameteriSGI GLEW_GET_FUN(__glewPixelTransformParameteriSGI)
-#define glPixelTransformParameterivSGI GLEW_GET_FUN(__glewPixelTransformParameterivSGI)
-#define glPixelTransformSGI GLEW_GET_FUN(__glewPixelTransformSGI)
-
-#define GLEW_SGI_fft GLEW_GET_VAR(__GLEW_SGI_fft)
-
-#endif /* GL_SGI_fft */
-
-/* ----------------------- GL_SGI_texture_color_table ---------------------- */
-
-#ifndef GL_SGI_texture_color_table
-#define GL_SGI_texture_color_table 1
-
-#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC
-#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD
-
-#define GLEW_SGI_texture_color_table GLEW_GET_VAR(__GLEW_SGI_texture_color_table)
-
-#endif /* GL_SGI_texture_color_table */
-
-/* ------------------------- GL_SUNX_constant_data ------------------------- */
-
-#ifndef GL_SUNX_constant_data
-#define GL_SUNX_constant_data 1
-
-#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5
-#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6
-
-typedef void (GLAPIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void);
-
-#define glFinishTextureSUNX GLEW_GET_FUN(__glewFinishTextureSUNX)
-
-#define GLEW_SUNX_constant_data GLEW_GET_VAR(__GLEW_SUNX_constant_data)
-
-#endif /* GL_SUNX_constant_data */
-
-/* -------------------- GL_SUN_convolution_border_modes -------------------- */
-
-#ifndef GL_SUN_convolution_border_modes
-#define GL_SUN_convolution_border_modes 1
-
-#define GL_WRAP_BORDER_SUN 0x81D4
-
-#define GLEW_SUN_convolution_border_modes GLEW_GET_VAR(__GLEW_SUN_convolution_border_modes)
-
-#endif /* GL_SUN_convolution_border_modes */
-
-/* -------------------------- GL_SUN_global_alpha -------------------------- */
-
-#ifndef GL_SUN_global_alpha
-#define GL_SUN_global_alpha 1
-
-#define GL_GLOBAL_ALPHA_SUN 0x81D9
-#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA
-
-typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor);
-typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor);
-typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor);
-typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor);
-typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor);
-typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor);
-typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor);
-typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor);
-
-#define glGlobalAlphaFactorbSUN GLEW_GET_FUN(__glewGlobalAlphaFactorbSUN)
-#define glGlobalAlphaFactordSUN GLEW_GET_FUN(__glewGlobalAlphaFactordSUN)
-#define glGlobalAlphaFactorfSUN GLEW_GET_FUN(__glewGlobalAlphaFactorfSUN)
-#define glGlobalAlphaFactoriSUN GLEW_GET_FUN(__glewGlobalAlphaFactoriSUN)
-#define glGlobalAlphaFactorsSUN GLEW_GET_FUN(__glewGlobalAlphaFactorsSUN)
-#define glGlobalAlphaFactorubSUN GLEW_GET_FUN(__glewGlobalAlphaFactorubSUN)
-#define glGlobalAlphaFactoruiSUN GLEW_GET_FUN(__glewGlobalAlphaFactoruiSUN)
-#define glGlobalAlphaFactorusSUN GLEW_GET_FUN(__glewGlobalAlphaFactorusSUN)
-
-#define GLEW_SUN_global_alpha GLEW_GET_VAR(__GLEW_SUN_global_alpha)
-
-#endif /* GL_SUN_global_alpha */
-
-/* --------------------------- GL_SUN_mesh_array --------------------------- */
-
-#ifndef GL_SUN_mesh_array
-#define GL_SUN_mesh_array 1
-
-#define GL_QUAD_MESH_SUN 0x8614
-#define GL_TRIANGLE_MESH_SUN 0x8615
-
-#define GLEW_SUN_mesh_array GLEW_GET_VAR(__GLEW_SUN_mesh_array)
-
-#endif /* GL_SUN_mesh_array */
-
-/* ------------------------ GL_SUN_read_video_pixels ----------------------- */
-
-#ifndef GL_SUN_read_video_pixels
-#define GL_SUN_read_video_pixels 1
-
-typedef void (GLAPIENTRY * PFNGLREADVIDEOPIXELSSUNPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels);
-
-#define glReadVideoPixelsSUN GLEW_GET_FUN(__glewReadVideoPixelsSUN)
-
-#define GLEW_SUN_read_video_pixels GLEW_GET_VAR(__GLEW_SUN_read_video_pixels)
-
-#endif /* GL_SUN_read_video_pixels */
-
-/* --------------------------- GL_SUN_slice_accum -------------------------- */
-
-#ifndef GL_SUN_slice_accum
-#define GL_SUN_slice_accum 1
-
-#define GL_SLICE_ACCUM_SUN 0x85CC
-
-#define GLEW_SUN_slice_accum GLEW_GET_VAR(__GLEW_SUN_slice_accum)
-
-#endif /* GL_SUN_slice_accum */
-
-/* -------------------------- GL_SUN_triangle_list ------------------------- */
-
-#ifndef GL_SUN_triangle_list
-#define GL_SUN_triangle_list 1
-
-#define GL_RESTART_SUN 0x01
-#define GL_REPLACE_MIDDLE_SUN 0x02
-#define GL_REPLACE_OLDEST_SUN 0x03
-#define GL_TRIANGLE_LIST_SUN 0x81D7
-#define GL_REPLACEMENT_CODE_SUN 0x81D8
-#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0
-#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1
-#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2
-#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3
-#define GL_R1UI_V3F_SUN 0x85C4
-#define GL_R1UI_C4UB_V3F_SUN 0x85C5
-#define GL_R1UI_C3F_V3F_SUN 0x85C6
-#define GL_R1UI_N3F_V3F_SUN 0x85C7
-#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8
-#define GL_R1UI_T2F_V3F_SUN 0x85C9
-#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA
-#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB
-
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void *pointer);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte* code);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint* code);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort* code);
-
-#define glReplacementCodePointerSUN GLEW_GET_FUN(__glewReplacementCodePointerSUN)
-#define glReplacementCodeubSUN GLEW_GET_FUN(__glewReplacementCodeubSUN)
-#define glReplacementCodeubvSUN GLEW_GET_FUN(__glewReplacementCodeubvSUN)
-#define glReplacementCodeuiSUN GLEW_GET_FUN(__glewReplacementCodeuiSUN)
-#define glReplacementCodeuivSUN GLEW_GET_FUN(__glewReplacementCodeuivSUN)
-#define glReplacementCodeusSUN GLEW_GET_FUN(__glewReplacementCodeusSUN)
-#define glReplacementCodeusvSUN GLEW_GET_FUN(__glewReplacementCodeusvSUN)
-
-#define GLEW_SUN_triangle_list GLEW_GET_VAR(__GLEW_SUN_triangle_list)
-
-#endif /* GL_SUN_triangle_list */
-
-/* ----------------------------- GL_SUN_vertex ----------------------------- */
-
-#ifndef GL_SUN_vertex
-#define GL_SUN_vertex 1
-
-typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *n, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
-typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte* c, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte* c, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* n, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint* rc, const GLubyte *c, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *n, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat* tc, const GLubyte *c, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *n, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *v);
-
-#define glColor3fVertex3fSUN GLEW_GET_FUN(__glewColor3fVertex3fSUN)
-#define glColor3fVertex3fvSUN GLEW_GET_FUN(__glewColor3fVertex3fvSUN)
-#define glColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fSUN)
-#define glColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fvSUN)
-#define glColor4ubVertex2fSUN GLEW_GET_FUN(__glewColor4ubVertex2fSUN)
-#define glColor4ubVertex2fvSUN GLEW_GET_FUN(__glewColor4ubVertex2fvSUN)
-#define glColor4ubVertex3fSUN GLEW_GET_FUN(__glewColor4ubVertex3fSUN)
-#define glColor4ubVertex3fvSUN GLEW_GET_FUN(__glewColor4ubVertex3fvSUN)
-#define glNormal3fVertex3fSUN GLEW_GET_FUN(__glewNormal3fVertex3fSUN)
-#define glNormal3fVertex3fvSUN GLEW_GET_FUN(__glewNormal3fVertex3fvSUN)
-#define glReplacementCodeuiColor3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fSUN)
-#define glReplacementCodeuiColor3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fvSUN)
-#define glReplacementCodeuiColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fSUN)
-#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fvSUN)
-#define glReplacementCodeuiColor4ubVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fSUN)
-#define glReplacementCodeuiColor4ubVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fvSUN)
-#define glReplacementCodeuiNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fSUN)
-#define glReplacementCodeuiNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fvSUN)
-#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN)
-#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN)
-#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN)
-#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN)
-#define glReplacementCodeuiTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fSUN)
-#define glReplacementCodeuiTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fvSUN)
-#define glReplacementCodeuiVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fSUN)
-#define glReplacementCodeuiVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fvSUN)
-#define glTexCoord2fColor3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fSUN)
-#define glTexCoord2fColor3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fvSUN)
-#define glTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fSUN)
-#define glTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fvSUN)
-#define glTexCoord2fColor4ubVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fSUN)
-#define glTexCoord2fColor4ubVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fvSUN)
-#define glTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fSUN)
-#define glTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fvSUN)
-#define glTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fSUN)
-#define glTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fvSUN)
-#define glTexCoord4fColor4fNormal3fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fSUN)
-#define glTexCoord4fColor4fNormal3fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fvSUN)
-#define glTexCoord4fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fSUN)
-#define glTexCoord4fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fvSUN)
-
-#define GLEW_SUN_vertex GLEW_GET_VAR(__GLEW_SUN_vertex)
-
-#endif /* GL_SUN_vertex */
-
-/* -------------------------- GL_VIV_shader_binary ------------------------- */
-
-#ifndef GL_VIV_shader_binary
-#define GL_VIV_shader_binary 1
-
-#define GL_SHADER_BINARY_VIV 0x8FC4
-
-#define GLEW_VIV_shader_binary GLEW_GET_VAR(__GLEW_VIV_shader_binary)
-
-#endif /* GL_VIV_shader_binary */
-
-/* -------------------------- GL_WIN_phong_shading ------------------------- */
-
-#ifndef GL_WIN_phong_shading
-#define GL_WIN_phong_shading 1
-
-#define GL_PHONG_WIN 0x80EA
-#define GL_PHONG_HINT_WIN 0x80EB
-
-#define GLEW_WIN_phong_shading GLEW_GET_VAR(__GLEW_WIN_phong_shading)
-
-#endif /* GL_WIN_phong_shading */
-
-/* ------------------------- GL_WIN_scene_markerXXX ------------------------ */
-
-#ifndef GL_WIN_scene_markerXXX
-#define GL_WIN_scene_markerXXX 1
-
-#define GLEW_WIN_scene_markerXXX GLEW_GET_VAR(__GLEW_WIN_scene_markerXXX)
-
-#endif /* GL_WIN_scene_markerXXX */
-
-/* -------------------------- GL_WIN_specular_fog -------------------------- */
-
-#ifndef GL_WIN_specular_fog
-#define GL_WIN_specular_fog 1
-
-#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC
-
-#define GLEW_WIN_specular_fog GLEW_GET_VAR(__GLEW_WIN_specular_fog)
-
-#endif /* GL_WIN_specular_fog */
-
-/* ---------------------------- GL_WIN_swap_hint --------------------------- */
-
-#ifndef GL_WIN_swap_hint
-#define GL_WIN_swap_hint 1
-
-typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
-
-#define glAddSwapHintRectWIN GLEW_GET_FUN(__glewAddSwapHintRectWIN)
-
-#define GLEW_WIN_swap_hint GLEW_GET_VAR(__GLEW_WIN_swap_hint)
-
-#endif /* GL_WIN_swap_hint */
-
-/* ------------------------------------------------------------------------- */
-
-
-
-GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D;
-GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements;
-GLEW_FUN_EXPORT PFNGLTEXIMAGE3DPROC __glewTexImage3D;
-GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D;
-
-GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture;
-GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D;
-GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage;
-GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd;
-GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf;
-GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd;
-GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv;
-GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage;
-
-GLEW_FUN_EXPORT PFNGLBLENDCOLORPROC __glewBlendColor;
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONPROC __glewBlendEquation;
-GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate;
-GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer;
-GLEW_FUN_EXPORT PFNGLFOGCOORDDPROC __glewFogCoordd;
-GLEW_FUN_EXPORT PFNGLFOGCOORDDVPROC __glewFogCoorddv;
-GLEW_FUN_EXPORT PFNGLFOGCOORDFPROC __glewFogCoordf;
-GLEW_FUN_EXPORT PFNGLFOGCOORDFVPROC __glewFogCoordfv;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements;
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFPROC __glewPointParameterf;
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv;
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIPROC __glewPointParameteri;
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2DPROC __glewWindowPos2d;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2FPROC __glewWindowPos2f;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2IPROC __glewWindowPos2i;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2SPROC __glewWindowPos2s;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3DPROC __glewWindowPos3d;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3FPROC __glewWindowPos3f;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3IPROC __glewWindowPos3i;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3SPROC __glewWindowPos3s;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv;
-
-GLEW_FUN_EXPORT PFNGLBEGINQUERYPROC __glewBeginQuery;
-GLEW_FUN_EXPORT PFNGLBINDBUFFERPROC __glewBindBuffer;
-GLEW_FUN_EXPORT PFNGLBUFFERDATAPROC __glewBufferData;
-GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAPROC __glewBufferSubData;
-GLEW_FUN_EXPORT PFNGLDELETEBUFFERSPROC __glewDeleteBuffers;
-GLEW_FUN_EXPORT PFNGLDELETEQUERIESPROC __glewDeleteQueries;
-GLEW_FUN_EXPORT PFNGLENDQUERYPROC __glewEndQuery;
-GLEW_FUN_EXPORT PFNGLGENBUFFERSPROC __glewGenBuffers;
-GLEW_FUN_EXPORT PFNGLGENQUERIESPROC __glewGenQueries;
-GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv;
-GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv;
-GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv;
-GLEW_FUN_EXPORT PFNGLGETQUERYIVPROC __glewGetQueryiv;
-GLEW_FUN_EXPORT PFNGLISBUFFERPROC __glewIsBuffer;
-GLEW_FUN_EXPORT PFNGLISQUERYPROC __glewIsQuery;
-GLEW_FUN_EXPORT PFNGLMAPBUFFERPROC __glewMapBuffer;
-GLEW_FUN_EXPORT PFNGLUNMAPBUFFERPROC __glewUnmapBuffer;
-
-GLEW_FUN_EXPORT PFNGLATTACHSHADERPROC __glewAttachShader;
-GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation;
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate;
-GLEW_FUN_EXPORT PFNGLCOMPILESHADERPROC __glewCompileShader;
-GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPROC __glewCreateProgram;
-GLEW_FUN_EXPORT PFNGLCREATESHADERPROC __glewCreateShader;
-GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPROC __glewDeleteProgram;
-GLEW_FUN_EXPORT PFNGLDELETESHADERPROC __glewDeleteShader;
-GLEW_FUN_EXPORT PFNGLDETACHSHADERPROC __glewDetachShader;
-GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray;
-GLEW_FUN_EXPORT PFNGLDRAWBUFFERSPROC __glewDrawBuffers;
-GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray;
-GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib;
-GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform;
-GLEW_FUN_EXPORT PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders;
-GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMIVPROC __glewGetProgramiv;
-GLEW_FUN_EXPORT PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog;
-GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEPROC __glewGetShaderSource;
-GLEW_FUN_EXPORT PFNGLGETSHADERIVPROC __glewGetShaderiv;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMFVPROC __glewGetUniformfv;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMIVPROC __glewGetUniformiv;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv;
-GLEW_FUN_EXPORT PFNGLISPROGRAMPROC __glewIsProgram;
-GLEW_FUN_EXPORT PFNGLISSHADERPROC __glewIsShader;
-GLEW_FUN_EXPORT PFNGLLINKPROGRAMPROC __glewLinkProgram;
-GLEW_FUN_EXPORT PFNGLSHADERSOURCEPROC __glewShaderSource;
-GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate;
-GLEW_FUN_EXPORT PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate;
-GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate;
-GLEW_FUN_EXPORT PFNGLUNIFORM1FPROC __glewUniform1f;
-GLEW_FUN_EXPORT PFNGLUNIFORM1FVPROC __glewUniform1fv;
-GLEW_FUN_EXPORT PFNGLUNIFORM1IPROC __glewUniform1i;
-GLEW_FUN_EXPORT PFNGLUNIFORM1IVPROC __glewUniform1iv;
-GLEW_FUN_EXPORT PFNGLUNIFORM2FPROC __glewUniform2f;
-GLEW_FUN_EXPORT PFNGLUNIFORM2FVPROC __glewUniform2fv;
-GLEW_FUN_EXPORT PFNGLUNIFORM2IPROC __glewUniform2i;
-GLEW_FUN_EXPORT PFNGLUNIFORM2IVPROC __glewUniform2iv;
-GLEW_FUN_EXPORT PFNGLUNIFORM3FPROC __glewUniform3f;
-GLEW_FUN_EXPORT PFNGLUNIFORM3FVPROC __glewUniform3fv;
-GLEW_FUN_EXPORT PFNGLUNIFORM3IPROC __glewUniform3i;
-GLEW_FUN_EXPORT PFNGLUNIFORM3IVPROC __glewUniform3iv;
-GLEW_FUN_EXPORT PFNGLUNIFORM4FPROC __glewUniform4f;
-GLEW_FUN_EXPORT PFNGLUNIFORM4FVPROC __glewUniform4fv;
-GLEW_FUN_EXPORT PFNGLUNIFORM4IPROC __glewUniform4i;
-GLEW_FUN_EXPORT PFNGLUNIFORM4IVPROC __glewUniform4iv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv;
-GLEW_FUN_EXPORT PFNGLUSEPROGRAMPROC __glewUseProgram;
-GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPROC __glewValidateProgram;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer;
-
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv;
-
-GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender;
-GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback;
-GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation;
-GLEW_FUN_EXPORT PFNGLCLAMPCOLORPROC __glewClampColor;
-GLEW_FUN_EXPORT PFNGLCLEARBUFFERFIPROC __glewClearBufferfi;
-GLEW_FUN_EXPORT PFNGLCLEARBUFFERFVPROC __glewClearBufferfv;
-GLEW_FUN_EXPORT PFNGLCLEARBUFFERIVPROC __glewClearBufferiv;
-GLEW_FUN_EXPORT PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv;
-GLEW_FUN_EXPORT PFNGLCOLORMASKIPROC __glewColorMaski;
-GLEW_FUN_EXPORT PFNGLDISABLEIPROC __glewDisablei;
-GLEW_FUN_EXPORT PFNGLENABLEIPROC __glewEnablei;
-GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender;
-GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback;
-GLEW_FUN_EXPORT PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v;
-GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation;
-GLEW_FUN_EXPORT PFNGLGETSTRINGIPROC __glewGetStringi;
-GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv;
-GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv;
-GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv;
-GLEW_FUN_EXPORT PFNGLISENABLEDIPROC __glewIsEnabledi;
-GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv;
-GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv;
-GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings;
-GLEW_FUN_EXPORT PFNGLUNIFORM1UIPROC __glewUniform1ui;
-GLEW_FUN_EXPORT PFNGLUNIFORM1UIVPROC __glewUniform1uiv;
-GLEW_FUN_EXPORT PFNGLUNIFORM2UIPROC __glewUniform2ui;
-GLEW_FUN_EXPORT PFNGLUNIFORM2UIVPROC __glewUniform2uiv;
-GLEW_FUN_EXPORT PFNGLUNIFORM3UIPROC __glewUniform3ui;
-GLEW_FUN_EXPORT PFNGLUNIFORM3UIVPROC __glewUniform3uiv;
-GLEW_FUN_EXPORT PFNGLUNIFORM4UIPROC __glewUniform4ui;
-GLEW_FUN_EXPORT PFNGLUNIFORM4UIVPROC __glewUniform4uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer;
-
-GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced;
-GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex;
-GLEW_FUN_EXPORT PFNGLTEXBUFFERPROC __glewTexBuffer;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture;
-GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v;
-GLEW_FUN_EXPORT PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v;
-
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor;
-
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei;
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIPROC __glewBlendEquationi;
-GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei;
-GLEW_FUN_EXPORT PFNGLBLENDFUNCIPROC __glewBlendFunci;
-GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading;
-
-GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSPROC __glewGetGraphicsResetStatus;
-GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEPROC __glewGetnCompressedTexImage;
-GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEPROC __glewGetnTexImage;
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVPROC __glewGetnUniformdv;
-
-GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC __glewMultiDrawArraysIndirectCount;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC __glewMultiDrawElementsIndirectCount;
-GLEW_FUN_EXPORT PFNGLSPECIALIZESHADERPROC __glewSpecializeShader;
-
-GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX;
-
-GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD;
-GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD;
-GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD;
-GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD;
-
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD;
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD;
-GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD;
-GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD;
-
-GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewNamedRenderbufferStorageMultisampleAdvancedAMD;
-GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewRenderbufferStorageMultisampleAdvancedAMD;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewFramebufferSamplePositionsfvAMD;
-GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC __glewGetFramebufferParameterfvAMD;
-GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC __glewGetNamedFramebufferParameterfvAMD;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewNamedFramebufferSamplePositionsfvAMD;
-
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPARAMETERIAMDPROC __glewVertexAttribParameteriAMD;
-
-GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC __glewMultiDrawElementsIndirectAMD;
-
-GLEW_FUN_EXPORT PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD;
-GLEW_FUN_EXPORT PFNGLGENNAMESAMDPROC __glewGenNamesAMD;
-GLEW_FUN_EXPORT PFNGLISNAMEAMDPROC __glewIsNameAMD;
-
-GLEW_FUN_EXPORT PFNGLQUERYOBJECTPARAMETERUIAMDPROC __glewQueryObjectParameteruiAMD;
-
-GLEW_FUN_EXPORT PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD;
-GLEW_FUN_EXPORT PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD;
-GLEW_FUN_EXPORT PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD;
-GLEW_FUN_EXPORT PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD;
-GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD;
-GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD;
-GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD;
-GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD;
-GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD;
-GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD;
-GLEW_FUN_EXPORT PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD;
-
-GLEW_FUN_EXPORT PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD;
-
-GLEW_FUN_EXPORT PFNGLTEXSTORAGESPARSEAMDPROC __glewTexStorageSparseAMD;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGESPARSEAMDPROC __glewTextureStorageSparseAMD;
-
-GLEW_FUN_EXPORT PFNGLSTENCILOPVALUEAMDPROC __glewStencilOpValueAMD;
-
-GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD;
-GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD;
-
-GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERANGLEPROC __glewBlitFramebufferANGLE;
-
-GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC __glewRenderbufferStorageMultisampleANGLE;
-
-GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDANGLEPROC __glewDrawArraysInstancedANGLE;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDANGLEPROC __glewDrawElementsInstancedANGLE;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORANGLEPROC __glewVertexAttribDivisorANGLE;
-
-GLEW_FUN_EXPORT PFNGLBEGINQUERYANGLEPROC __glewBeginQueryANGLE;
-GLEW_FUN_EXPORT PFNGLDELETEQUERIESANGLEPROC __glewDeleteQueriesANGLE;
-GLEW_FUN_EXPORT PFNGLENDQUERYANGLEPROC __glewEndQueryANGLE;
-GLEW_FUN_EXPORT PFNGLGENQUERIESANGLEPROC __glewGenQueriesANGLE;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VANGLEPROC __glewGetQueryObjecti64vANGLE;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVANGLEPROC __glewGetQueryObjectivANGLE;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VANGLEPROC __glewGetQueryObjectui64vANGLE;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVANGLEPROC __glewGetQueryObjectuivANGLE;
-GLEW_FUN_EXPORT PFNGLGETQUERYIVANGLEPROC __glewGetQueryivANGLE;
-GLEW_FUN_EXPORT PFNGLISQUERYANGLEPROC __glewIsQueryANGLE;
-GLEW_FUN_EXPORT PFNGLQUERYCOUNTERANGLEPROC __glewQueryCounterANGLE;
-
-GLEW_FUN_EXPORT PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC __glewGetTranslatedShaderSourceANGLE;
-
-GLEW_FUN_EXPORT PFNGLCOPYTEXTURELEVELSAPPLEPROC __glewCopyTextureLevelsAPPLE;
-
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE;
-GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE;
-GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE;
-
-GLEW_FUN_EXPORT PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE;
-GLEW_FUN_EXPORT PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE;
-GLEW_FUN_EXPORT PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE;
-GLEW_FUN_EXPORT PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE;
-GLEW_FUN_EXPORT PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE;
-GLEW_FUN_EXPORT PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE;
-GLEW_FUN_EXPORT PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE;
-GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE;
-
-GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE;
-GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE;
-
-GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC __glewRenderbufferStorageMultisampleAPPLE;
-GLEW_FUN_EXPORT PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC __glewResolveMultisampleFramebufferAPPLE;
-
-GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE;
-GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE;
-GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE;
-
-GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCAPPLEPROC __glewClientWaitSyncAPPLE;
-GLEW_FUN_EXPORT PFNGLDELETESYNCAPPLEPROC __glewDeleteSyncAPPLE;
-GLEW_FUN_EXPORT PFNGLFENCESYNCAPPLEPROC __glewFenceSyncAPPLE;
-GLEW_FUN_EXPORT PFNGLGETINTEGER64VAPPLEPROC __glewGetInteger64vAPPLE;
-GLEW_FUN_EXPORT PFNGLGETSYNCIVAPPLEPROC __glewGetSyncivAPPLE;
-GLEW_FUN_EXPORT PFNGLISSYNCAPPLEPROC __glewIsSyncAPPLE;
-GLEW_FUN_EXPORT PFNGLWAITSYNCAPPLEPROC __glewWaitSyncAPPLE;
-
-GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE;
-GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE;
-
-GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE;
-GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE;
-GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE;
-GLEW_FUN_EXPORT PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE;
-
-GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE;
-
-GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE;
-GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE;
-GLEW_FUN_EXPORT PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE;
-GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE;
-GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE;
-GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE;
-GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE;
-
-GLEW_FUN_EXPORT PFNGLCLEARDEPTHFPROC __glewClearDepthf;
-GLEW_FUN_EXPORT PFNGLDEPTHRANGEFPROC __glewDepthRangef;
-GLEW_FUN_EXPORT PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat;
-GLEW_FUN_EXPORT PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler;
-GLEW_FUN_EXPORT PFNGLSHADERBINARYPROC __glewShaderBinary;
-
-GLEW_FUN_EXPORT PFNGLMEMORYBARRIERBYREGIONPROC __glewMemoryBarrierByRegion;
-
-GLEW_FUN_EXPORT PFNGLPRIMITIVEBOUNDINGBOXARBPROC __glewPrimitiveBoundingBoxARB;
-
-GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC __glewDrawArraysInstancedBaseInstance;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC __glewDrawElementsInstancedBaseInstance;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC __glewDrawElementsInstancedBaseVertexBaseInstance;
-
-GLEW_FUN_EXPORT PFNGLGETIMAGEHANDLEARBPROC __glewGetImageHandleARB;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLEARBPROC __glewGetTextureHandleARB;
-GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLEARBPROC __glewGetTextureSamplerHandleARB;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VARBPROC __glewGetVertexAttribLui64vARB;
-GLEW_FUN_EXPORT PFNGLISIMAGEHANDLERESIDENTARBPROC __glewIsImageHandleResidentARB;
-GLEW_FUN_EXPORT PFNGLISTEXTUREHANDLERESIDENTARBPROC __glewIsTextureHandleResidentARB;
-GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC __glewMakeImageHandleNonResidentARB;
-GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLERESIDENTARBPROC __glewMakeImageHandleResidentARB;
-GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC __glewMakeTextureHandleNonResidentARB;
-GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLERESIDENTARBPROC __glewMakeTextureHandleResidentARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC __glewProgramUniformHandleui64ARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC __glewProgramUniformHandleui64vARB;
-GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64ARBPROC __glewUniformHandleui64ARB;
-GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VARBPROC __glewUniformHandleui64vARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64ARBPROC __glewVertexAttribL1ui64ARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VARBPROC __glewVertexAttribL1ui64vARB;
-
-GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed;
-GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex;
-
-GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEPROC __glewBufferStorage;
-
-GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB;
-
-GLEW_FUN_EXPORT PFNGLCLEARBUFFERDATAPROC __glewClearBufferData;
-GLEW_FUN_EXPORT PFNGLCLEARBUFFERSUBDATAPROC __glewClearBufferSubData;
-GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERDATAEXTPROC __glewClearNamedBufferDataEXT;
-GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC __glewClearNamedBufferSubDataEXT;
-
-GLEW_FUN_EXPORT PFNGLCLEARTEXIMAGEPROC __glewClearTexImage;
-GLEW_FUN_EXPORT PFNGLCLEARTEXSUBIMAGEPROC __glewClearTexSubImage;
-
-GLEW_FUN_EXPORT PFNGLCLIPCONTROLPROC __glewClipControl;
-
-GLEW_FUN_EXPORT PFNGLCLAMPCOLORARBPROC __glewClampColorARB;
-
-GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEPROC __glewDispatchCompute;
-GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEINDIRECTPROC __glewDispatchComputeIndirect;
-
-GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC __glewDispatchComputeGroupSizeARB;
-
-GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData;
-
-GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAPROC __glewCopyImageSubData;
-
-GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB;
-GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB;
-GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB;
-GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB;
-
-GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPROC __glewBindTextureUnit;
-GLEW_FUN_EXPORT PFNGLBLITNAMEDFRAMEBUFFERPROC __glewBlitNamedFramebuffer;
-GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC __glewCheckNamedFramebufferStatus;
-GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERDATAPROC __glewClearNamedBufferData;
-GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERSUBDATAPROC __glewClearNamedBufferSubData;
-GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERFIPROC __glewClearNamedFramebufferfi;
-GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERFVPROC __glewClearNamedFramebufferfv;
-GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERIVPROC __glewClearNamedFramebufferiv;
-GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC __glewClearNamedFramebufferuiv;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC __glewCompressedTextureSubImage1D;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC __glewCompressedTextureSubImage2D;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC __glewCompressedTextureSubImage3D;
-GLEW_FUN_EXPORT PFNGLCOPYNAMEDBUFFERSUBDATAPROC __glewCopyNamedBufferSubData;
-GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DPROC __glewCopyTextureSubImage1D;
-GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DPROC __glewCopyTextureSubImage2D;
-GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DPROC __glewCopyTextureSubImage3D;
-GLEW_FUN_EXPORT PFNGLCREATEBUFFERSPROC __glewCreateBuffers;
-GLEW_FUN_EXPORT PFNGLCREATEFRAMEBUFFERSPROC __glewCreateFramebuffers;
-GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPIPELINESPROC __glewCreateProgramPipelines;
-GLEW_FUN_EXPORT PFNGLCREATEQUERIESPROC __glewCreateQueries;
-GLEW_FUN_EXPORT PFNGLCREATERENDERBUFFERSPROC __glewCreateRenderbuffers;
-GLEW_FUN_EXPORT PFNGLCREATESAMPLERSPROC __glewCreateSamplers;
-GLEW_FUN_EXPORT PFNGLCREATETEXTURESPROC __glewCreateTextures;
-GLEW_FUN_EXPORT PFNGLCREATETRANSFORMFEEDBACKSPROC __glewCreateTransformFeedbacks;
-GLEW_FUN_EXPORT PFNGLCREATEVERTEXARRAYSPROC __glewCreateVertexArrays;
-GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBPROC __glewDisableVertexArrayAttrib;
-GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBPROC __glewEnableVertexArrayAttrib;
-GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC __glewFlushMappedNamedBufferRange;
-GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPPROC __glewGenerateTextureMipmap;
-GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC __glewGetCompressedTextureImage;
-GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERI64VPROC __glewGetNamedBufferParameteri64v;
-GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVPROC __glewGetNamedBufferParameteriv;
-GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVPROC __glewGetNamedBufferPointerv;
-GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAPROC __glewGetNamedBufferSubData;
-GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetNamedFramebufferAttachmentParameteriv;
-GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC __glewGetNamedFramebufferParameteriv;
-GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC __glewGetNamedRenderbufferParameteriv;
-GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTI64VPROC __glewGetQueryBufferObjecti64v;
-GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTIVPROC __glewGetQueryBufferObjectiv;
-GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTUI64VPROC __glewGetQueryBufferObjectui64v;
-GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTUIVPROC __glewGetQueryBufferObjectuiv;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEPROC __glewGetTextureImage;
-GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVPROC __glewGetTextureLevelParameterfv;
-GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVPROC __glewGetTextureLevelParameteriv;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVPROC __glewGetTextureParameterIiv;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVPROC __glewGetTextureParameterIuiv;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVPROC __glewGetTextureParameterfv;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVPROC __glewGetTextureParameteriv;
-GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKI64_VPROC __glewGetTransformFeedbacki64_v;
-GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKI_VPROC __glewGetTransformFeedbacki_v;
-GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKIVPROC __glewGetTransformFeedbackiv;
-GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINDEXED64IVPROC __glewGetVertexArrayIndexed64iv;
-GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINDEXEDIVPROC __glewGetVertexArrayIndexediv;
-GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYIVPROC __glewGetVertexArrayiv;
-GLEW_FUN_EXPORT PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC __glewInvalidateNamedFramebufferData;
-GLEW_FUN_EXPORT PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC __glewInvalidateNamedFramebufferSubData;
-GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERPROC __glewMapNamedBuffer;
-GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEPROC __glewMapNamedBufferRange;
-GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAPROC __glewNamedBufferData;
-GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEPROC __glewNamedBufferStorage;
-GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAPROC __glewNamedBufferSubData;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC __glewNamedFramebufferDrawBuffer;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC __glewNamedFramebufferDrawBuffers;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC __glewNamedFramebufferParameteri;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC __glewNamedFramebufferReadBuffer;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC __glewNamedFramebufferRenderbuffer;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREPROC __glewNamedFramebufferTexture;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC __glewNamedFramebufferTextureLayer;
-GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEPROC __glewNamedRenderbufferStorage;
-GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewNamedRenderbufferStorageMultisample;
-GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERPROC __glewTextureBuffer;
-GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERRANGEPROC __glewTextureBufferRange;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVPROC __glewTextureParameterIiv;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVPROC __glewTextureParameterIuiv;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFPROC __glewTextureParameterf;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVPROC __glewTextureParameterfv;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIPROC __glewTextureParameteri;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVPROC __glewTextureParameteriv;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DPROC __glewTextureStorage1D;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DPROC __glewTextureStorage2D;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC __glewTextureStorage2DMultisample;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DPROC __glewTextureStorage3D;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC __glewTextureStorage3DMultisample;
-GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DPROC __glewTextureSubImage1D;
-GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DPROC __glewTextureSubImage2D;
-GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DPROC __glewTextureSubImage3D;
-GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC __glewTransformFeedbackBufferBase;
-GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC __glewTransformFeedbackBufferRange;
-GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFERPROC __glewUnmapNamedBuffer;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBBINDINGPROC __glewVertexArrayAttribBinding;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBFORMATPROC __glewVertexArrayAttribFormat;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBIFORMATPROC __glewVertexArrayAttribIFormat;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBLFORMATPROC __glewVertexArrayAttribLFormat;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYBINDINGDIVISORPROC __glewVertexArrayBindingDivisor;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYELEMENTBUFFERPROC __glewVertexArrayElementBuffer;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBUFFERPROC __glewVertexArrayVertexBuffer;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBUFFERSPROC __glewVertexArrayVertexBuffers;
-
-GLEW_FUN_EXPORT PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB;
-
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB;
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB;
-GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB;
-GLEW_FUN_EXPORT PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB;
-
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex;
-GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex;
-
-GLEW_FUN_EXPORT PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPARAMETERIPROC __glewFramebufferParameteri;
-GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVPROC __glewGetFramebufferParameteriv;
-GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC __glewGetNamedFramebufferParameterivEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC __glewNamedFramebufferParameteriEXT;
-
-GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer;
-GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer;
-GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer;
-GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus;
-GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers;
-GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer;
-GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers;
-GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers;
-GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap;
-GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv;
-GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv;
-GLEW_FUN_EXPORT PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer;
-GLEW_FUN_EXPORT PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer;
-GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage;
-GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB;
-
-GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary;
-GLEW_FUN_EXPORT PFNGLPROGRAMBINARYPROC __glewProgramBinary;
-GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri;
-
-GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC __glewGetCompressedTextureSubImage;
-GLEW_FUN_EXPORT PFNGLGETTEXTURESUBIMAGEPROC __glewGetTextureSubImage;
-
-GLEW_FUN_EXPORT PFNGLSPECIALIZESHADERARBPROC __glewSpecializeShaderARB;
-
-GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv;
-GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d;
-GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv;
-GLEW_FUN_EXPORT PFNGLUNIFORM2DPROC __glewUniform2d;
-GLEW_FUN_EXPORT PFNGLUNIFORM2DVPROC __glewUniform2dv;
-GLEW_FUN_EXPORT PFNGLUNIFORM3DPROC __glewUniform3d;
-GLEW_FUN_EXPORT PFNGLUNIFORM3DVPROC __glewUniform3dv;
-GLEW_FUN_EXPORT PFNGLUNIFORM4DPROC __glewUniform4d;
-GLEW_FUN_EXPORT PFNGLUNIFORM4DVPROC __glewUniform4dv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv;
-
-GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VARBPROC __glewGetUniformi64vARB;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VARBPROC __glewGetUniformui64vARB;
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMI64VARBPROC __glewGetnUniformi64vARB;
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMUI64VARBPROC __glewGetnUniformui64vARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64ARBPROC __glewProgramUniform1i64ARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VARBPROC __glewProgramUniform1i64vARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64ARBPROC __glewProgramUniform1ui64ARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VARBPROC __glewProgramUniform1ui64vARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64ARBPROC __glewProgramUniform2i64ARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VARBPROC __glewProgramUniform2i64vARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64ARBPROC __glewProgramUniform2ui64ARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VARBPROC __glewProgramUniform2ui64vARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64ARBPROC __glewProgramUniform3i64ARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VARBPROC __glewProgramUniform3i64vARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64ARBPROC __glewProgramUniform3ui64ARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VARBPROC __glewProgramUniform3ui64vARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64ARBPROC __glewProgramUniform4i64ARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VARBPROC __glewProgramUniform4i64vARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64ARBPROC __glewProgramUniform4ui64ARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VARBPROC __glewProgramUniform4ui64vARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM1I64ARBPROC __glewUniform1i64ARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM1I64VARBPROC __glewUniform1i64vARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM1UI64ARBPROC __glewUniform1ui64ARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VARBPROC __glewUniform1ui64vARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM2I64ARBPROC __glewUniform2i64ARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM2I64VARBPROC __glewUniform2i64vARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM2UI64ARBPROC __glewUniform2ui64ARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VARBPROC __glewUniform2ui64vARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM3I64ARBPROC __glewUniform3i64ARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM3I64VARBPROC __glewUniform3i64vARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM3UI64ARBPROC __glewUniform3ui64ARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VARBPROC __glewUniform3ui64vARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM4I64ARBPROC __glewUniform4i64ARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM4I64VARBPROC __glewUniform4i64vARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM4UI64ARBPROC __glewUniform4ui64ARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VARBPROC __glewUniform4ui64vARB;
-
-GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEPROC __glewColorSubTable;
-GLEW_FUN_EXPORT PFNGLCOLORTABLEPROC __glewColorTable;
-GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv;
-GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv;
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D;
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D;
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf;
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv;
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri;
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv;
-GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable;
-GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable;
-GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D;
-GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D;
-GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPROC __glewGetColorTable;
-GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv;
-GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv;
-GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter;
-GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv;
-GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv;
-GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPROC __glewGetHistogram;
-GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv;
-GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv;
-GLEW_FUN_EXPORT PFNGLGETMINMAXPROC __glewGetMinmax;
-GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv;
-GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv;
-GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter;
-GLEW_FUN_EXPORT PFNGLHISTOGRAMPROC __glewHistogram;
-GLEW_FUN_EXPORT PFNGLMINMAXPROC __glewMinmax;
-GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram;
-GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax;
-GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D;
-
-GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC __glewMultiDrawArraysIndirectCountARB;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC __glewMultiDrawElementsIndirectCountARB;
-
-GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB;
-
-GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATIVPROC __glewGetInternalformativ;
-
-GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATI64VPROC __glewGetInternalformati64v;
-
-GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERDATAPROC __glewInvalidateBufferData;
-GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERSUBDATAPROC __glewInvalidateBufferSubData;
-GLEW_FUN_EXPORT PFNGLINVALIDATEFRAMEBUFFERPROC __glewInvalidateFramebuffer;
-GLEW_FUN_EXPORT PFNGLINVALIDATESUBFRAMEBUFFERPROC __glewInvalidateSubFramebuffer;
-GLEW_FUN_EXPORT PFNGLINVALIDATETEXIMAGEPROC __glewInvalidateTexImage;
-GLEW_FUN_EXPORT PFNGLINVALIDATETEXSUBIMAGEPROC __glewInvalidateTexSubImage;
-
-GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange;
-GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange;
-
-GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB;
-GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB;
-GLEW_FUN_EXPORT PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB;
-GLEW_FUN_EXPORT PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB;
-GLEW_FUN_EXPORT PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB;
-
-GLEW_FUN_EXPORT PFNGLBINDBUFFERSBASEPROC __glewBindBuffersBase;
-GLEW_FUN_EXPORT PFNGLBINDBUFFERSRANGEPROC __glewBindBuffersRange;
-GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTURESPROC __glewBindImageTextures;
-GLEW_FUN_EXPORT PFNGLBINDSAMPLERSPROC __glewBindSamplers;
-GLEW_FUN_EXPORT PFNGLBINDTEXTURESPROC __glewBindTextures;
-GLEW_FUN_EXPORT PFNGLBINDVERTEXBUFFERSPROC __glewBindVertexBuffers;
-
-GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTPROC __glewMultiDrawArraysIndirect;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTPROC __glewMultiDrawElementsIndirect;
-
-GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB;
-
-GLEW_FUN_EXPORT PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB;
-GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB;
-
-GLEW_FUN_EXPORT PFNGLBEGINQUERYARBPROC __glewBeginQueryARB;
-GLEW_FUN_EXPORT PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB;
-GLEW_FUN_EXPORT PFNGLENDQUERYARBPROC __glewEndQueryARB;
-GLEW_FUN_EXPORT PFNGLGENQUERIESARBPROC __glewGenQueriesARB;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB;
-GLEW_FUN_EXPORT PFNGLGETQUERYIVARBPROC __glewGetQueryivARB;
-GLEW_FUN_EXPORT PFNGLISQUERYARBPROC __glewIsQueryARB;
-
-GLEW_FUN_EXPORT PFNGLMAXSHADERCOMPILERTHREADSARBPROC __glewMaxShaderCompilerThreadsARB;
-
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB;
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB;
-
-GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETCLAMPPROC __glewPolygonOffsetClamp;
-
-GLEW_FUN_EXPORT PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC __glewGetProgramResourceLocationIndex;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCENAMEPROC __glewGetProgramResourceName;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEIVPROC __glewGetProgramResourceiv;
-
-GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex;
-
-GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSARBPROC __glewGetGraphicsResetStatusARB;
-GLEW_FUN_EXPORT PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB;
-GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB;
-GLEW_FUN_EXPORT PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB;
-GLEW_FUN_EXPORT PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB;
-GLEW_FUN_EXPORT PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB;
-GLEW_FUN_EXPORT PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB;
-GLEW_FUN_EXPORT PFNGLGETNMAPIVARBPROC __glewGetnMapivARB;
-GLEW_FUN_EXPORT PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB;
-GLEW_FUN_EXPORT PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB;
-GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB;
-GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB;
-GLEW_FUN_EXPORT PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB;
-GLEW_FUN_EXPORT PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB;
-GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB;
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB;
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB;
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB;
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB;
-GLEW_FUN_EXPORT PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC __glewFramebufferSampleLocationsfvARB;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC __glewNamedFramebufferSampleLocationsfvARB;
-
-GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB;
-
-GLEW_FUN_EXPORT PFNGLBINDSAMPLERPROC __glewBindSampler;
-GLEW_FUN_EXPORT PFNGLDELETESAMPLERSPROC __glewDeleteSamplers;
-GLEW_FUN_EXPORT PFNGLGENSAMPLERSPROC __glewGenSamplers;
-GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv;
-GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv;
-GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv;
-GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv;
-GLEW_FUN_EXPORT PFNGLISSAMPLERPROC __glewIsSampler;
-GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv;
-GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv;
-GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf;
-GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv;
-GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri;
-GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv;
-
-GLEW_FUN_EXPORT PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram;
-GLEW_FUN_EXPORT PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline;
-GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv;
-GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines;
-GLEW_FUN_EXPORT PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv;
-GLEW_FUN_EXPORT PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv;
-GLEW_FUN_EXPORT PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages;
-GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline;
-
-GLEW_FUN_EXPORT PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC __glewGetActiveAtomicCounterBufferiv;
-
-GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREPROC __glewBindImageTexture;
-GLEW_FUN_EXPORT PFNGLMEMORYBARRIERPROC __glewMemoryBarrier;
-
-GLEW_FUN_EXPORT PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB;
-GLEW_FUN_EXPORT PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB;
-GLEW_FUN_EXPORT PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB;
-GLEW_FUN_EXPORT PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB;
-GLEW_FUN_EXPORT PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB;
-GLEW_FUN_EXPORT PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB;
-GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB;
-GLEW_FUN_EXPORT PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB;
-GLEW_FUN_EXPORT PFNGLGETHANDLEARBPROC __glewGetHandleARB;
-GLEW_FUN_EXPORT PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB;
-GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB;
-GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB;
-GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB;
-GLEW_FUN_EXPORT PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB;
-GLEW_FUN_EXPORT PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM1FARBPROC __glewUniform1fARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM1IARBPROC __glewUniform1iARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM2FARBPROC __glewUniform2fARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM2IARBPROC __glewUniform2iARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM3FARBPROC __glewUniform3fARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM3IARBPROC __glewUniform3iARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM4FARBPROC __glewUniform4fARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM4IARBPROC __glewUniform4iARB;
-GLEW_FUN_EXPORT PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB;
-GLEW_FUN_EXPORT PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB;
-GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB;
-
-GLEW_FUN_EXPORT PFNGLSHADERSTORAGEBLOCKBINDINGPROC __glewShaderStorageBlockBinding;
-
-GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName;
-GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName;
-GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv;
-GLEW_FUN_EXPORT PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex;
-GLEW_FUN_EXPORT PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv;
-GLEW_FUN_EXPORT PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv;
-
-GLEW_FUN_EXPORT PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB;
-GLEW_FUN_EXPORT PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB;
-GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB;
-GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB;
-GLEW_FUN_EXPORT PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB;
-GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB;
-
-GLEW_FUN_EXPORT PFNGLBUFFERPAGECOMMITMENTARBPROC __glewBufferPageCommitmentARB;
-
-GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTARBPROC __glewTexPageCommitmentARB;
-
-GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync;
-GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync;
-GLEW_FUN_EXPORT PFNGLFENCESYNCPROC __glewFenceSync;
-GLEW_FUN_EXPORT PFNGLGETINTEGER64VPROC __glewGetInteger64v;
-GLEW_FUN_EXPORT PFNGLGETSYNCIVPROC __glewGetSynciv;
-GLEW_FUN_EXPORT PFNGLISSYNCPROC __glewIsSync;
-GLEW_FUN_EXPORT PFNGLWAITSYNCPROC __glewWaitSync;
-
-GLEW_FUN_EXPORT PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv;
-GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIPROC __glewPatchParameteri;
-
-GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERPROC __glewTextureBarrier;
-
-GLEW_FUN_EXPORT PFNGLTEXBUFFERARBPROC __glewTexBufferARB;
-
-GLEW_FUN_EXPORT PFNGLTEXBUFFERRANGEPROC __glewTexBufferRange;
-GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERRANGEEXTPROC __glewTextureBufferRangeEXT;
-
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB;
-GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB;
-
-GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv;
-GLEW_FUN_EXPORT PFNGLSAMPLEMASKIPROC __glewSampleMaski;
-GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample;
-GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample;
-
-GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DPROC __glewTexStorage1D;
-GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DPROC __glewTexStorage2D;
-GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DPROC __glewTexStorage3D;
-
-GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample;
-GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC __glewTextureStorage2DMultisampleEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC __glewTextureStorage3DMultisampleEXT;
-
-GLEW_FUN_EXPORT PFNGLTEXTUREVIEWPROC __glewTextureView;
-
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v;
-GLEW_FUN_EXPORT PFNGLQUERYCOUNTERPROC __glewQueryCounter;
-
-GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback;
-GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks;
-GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback;
-GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks;
-GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback;
-GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback;
-GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback;
-
-GLEW_FUN_EXPORT PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed;
-GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream;
-GLEW_FUN_EXPORT PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed;
-GLEW_FUN_EXPORT PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv;
-
-GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC __glewDrawTransformFeedbackInstanced;
-GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC __glewDrawTransformFeedbackStreamInstanced;
-
-GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB;
-GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB;
-GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB;
-GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB;
-
-GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEPROC __glewBindBufferBase;
-GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange;
-GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName;
-GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv;
-GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName;
-GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv;
-GLEW_FUN_EXPORT PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices;
-GLEW_FUN_EXPORT PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding;
-
-GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray;
-GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays;
-GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays;
-GLEW_FUN_EXPORT PFNGLISVERTEXARRAYPROC __glewIsVertexArray;
-
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer;
-
-GLEW_FUN_EXPORT PFNGLBINDVERTEXBUFFERPROC __glewBindVertexBuffer;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC __glewVertexArrayBindVertexBufferEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC __glewVertexArrayVertexAttribBindingEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC __glewVertexArrayVertexAttribFormatEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC __glewVertexArrayVertexAttribIFormatEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC __glewVertexArrayVertexAttribLFormatEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC __glewVertexArrayVertexBindingDivisorEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBBINDINGPROC __glewVertexAttribBinding;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATPROC __glewVertexAttribFormat;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATPROC __glewVertexAttribIFormat;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATPROC __glewVertexAttribLFormat;
-GLEW_FUN_EXPORT PFNGLVERTEXBINDINGDIVISORPROC __glewVertexBindingDivisor;
-
-GLEW_FUN_EXPORT PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB;
-GLEW_FUN_EXPORT PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB;
-GLEW_FUN_EXPORT PFNGLWEIGHTBVARBPROC __glewWeightbvARB;
-GLEW_FUN_EXPORT PFNGLWEIGHTDVARBPROC __glewWeightdvARB;
-GLEW_FUN_EXPORT PFNGLWEIGHTFVARBPROC __glewWeightfvARB;
-GLEW_FUN_EXPORT PFNGLWEIGHTIVARBPROC __glewWeightivARB;
-GLEW_FUN_EXPORT PFNGLWEIGHTSVARBPROC __glewWeightsvARB;
-GLEW_FUN_EXPORT PFNGLWEIGHTUBVARBPROC __glewWeightubvARB;
-GLEW_FUN_EXPORT PFNGLWEIGHTUIVARBPROC __glewWeightuivARB;
-GLEW_FUN_EXPORT PFNGLWEIGHTUSVARBPROC __glewWeightusvARB;
-
-GLEW_FUN_EXPORT PFNGLBINDBUFFERARBPROC __glewBindBufferARB;
-GLEW_FUN_EXPORT PFNGLBUFFERDATAARBPROC __glewBufferDataARB;
-GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB;
-GLEW_FUN_EXPORT PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB;
-GLEW_FUN_EXPORT PFNGLGENBUFFERSARBPROC __glewGenBuffersARB;
-GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB;
-GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB;
-GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB;
-GLEW_FUN_EXPORT PFNGLISBUFFERARBPROC __glewIsBufferARB;
-GLEW_FUN_EXPORT PFNGLMAPBUFFERARBPROC __glewMapBufferARB;
-GLEW_FUN_EXPORT PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB;
-
-GLEW_FUN_EXPORT PFNGLBINDPROGRAMARBPROC __glewBindProgramARB;
-GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB;
-GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB;
-GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB;
-GLEW_FUN_EXPORT PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB;
-GLEW_FUN_EXPORT PFNGLISPROGRAMARBPROC __glewIsProgramARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB;
-GLEW_FUN_EXPORT PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB;
-
-GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB;
-GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB;
-GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB;
-
-GLEW_FUN_EXPORT PFNGLCOLORP3UIPROC __glewColorP3ui;
-GLEW_FUN_EXPORT PFNGLCOLORP3UIVPROC __glewColorP3uiv;
-GLEW_FUN_EXPORT PFNGLCOLORP4UIPROC __glewColorP4ui;
-GLEW_FUN_EXPORT PFNGLCOLORP4UIVPROC __glewColorP4uiv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv;
-GLEW_FUN_EXPORT PFNGLNORMALP3UIPROC __glewNormalP3ui;
-GLEW_FUN_EXPORT PFNGLNORMALP3UIVPROC __glewNormalP3uiv;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv;
-GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui;
-GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv;
-GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui;
-GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv;
-GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui;
-GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv;
-GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui;
-GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXP2UIPROC __glewVertexP2ui;
-GLEW_FUN_EXPORT PFNGLVERTEXP2UIVPROC __glewVertexP2uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXP3UIPROC __glewVertexP3ui;
-GLEW_FUN_EXPORT PFNGLVERTEXP3UIVPROC __glewVertexP3uiv;
-GLEW_FUN_EXPORT PFNGLVERTEXP4UIPROC __glewVertexP4ui;
-GLEW_FUN_EXPORT PFNGLVERTEXP4UIVPROC __glewVertexP4uiv;
-
-GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv;
-GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed;
-GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v;
-GLEW_FUN_EXPORT PFNGLGETFLOATI_VPROC __glewGetFloati_v;
-GLEW_FUN_EXPORT PFNGLSCISSORARRAYVPROC __glewScissorArrayv;
-GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDPROC __glewScissorIndexed;
-GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv;
-GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv;
-GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf;
-GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv;
-
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB;
-
-GLEW_FUN_EXPORT PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI;
-
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI;
-GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI;
-GLEW_FUN_EXPORT PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI;
-
-GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI;
-GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI;
-GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI;
-GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI;
-
-GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI;
-GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI;
-GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI;
-GLEW_FUN_EXPORT PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI;
-GLEW_FUN_EXPORT PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI;
-GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI;
-GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI;
-GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI;
-GLEW_FUN_EXPORT PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI;
-GLEW_FUN_EXPORT PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI;
-GLEW_FUN_EXPORT PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI;
-GLEW_FUN_EXPORT PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI;
-GLEW_FUN_EXPORT PFNGLSAMPLEMAPATIPROC __glewSampleMapATI;
-GLEW_FUN_EXPORT PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI;
-
-GLEW_FUN_EXPORT PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI;
-GLEW_FUN_EXPORT PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI;
-
-GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI;
-GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI;
-
-GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI;
-GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI;
-
-GLEW_FUN_EXPORT PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI;
-GLEW_FUN_EXPORT PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI;
-GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI;
-GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI;
-GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI;
-GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI;
-GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI;
-GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI;
-GLEW_FUN_EXPORT PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI;
-GLEW_FUN_EXPORT PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI;
-GLEW_FUN_EXPORT PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI;
-GLEW_FUN_EXPORT PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI;
-
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI;
-
-GLEW_FUN_EXPORT PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI;
-GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI;
-GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI;
-GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI;
-GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI;
-GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI;
-GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI;
-GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI;
-GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI;
-GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI;
-GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI;
-GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI;
-GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DATIPROC __glewVertexStream1dATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DVATIPROC __glewVertexStream1dvATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FATIPROC __glewVertexStream1fATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FVATIPROC __glewVertexStream1fvATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IATIPROC __glewVertexStream1iATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IVATIPROC __glewVertexStream1ivATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SATIPROC __glewVertexStream1sATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SVATIPROC __glewVertexStream1svATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI;
-GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI;
-
-GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC __glewEGLImageTargetTexStorageEXT;
-GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC __glewEGLImageTargetTextureStorageEXT;
-
-GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC __glewDrawArraysInstancedBaseInstanceEXT;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseInstanceEXT;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseVertexBaseInstanceEXT;
-
-GLEW_FUN_EXPORT PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT;
-GLEW_FUN_EXPORT PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT;
-
-GLEW_FUN_EXPORT PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT;
-
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT;
-
-GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC __glewBindFragDataLocationIndexedEXT;
-GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXEXTPROC __glewGetFragDataIndexEXT;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC __glewGetProgramResourceLocationIndexEXT;
-
-GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT;
-
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT;
-
-GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEEXTPROC __glewBufferStorageEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT;
-
-GLEW_FUN_EXPORT PFNGLCLEARTEXIMAGEEXTPROC __glewClearTexImageEXT;
-GLEW_FUN_EXPORT PFNGLCLEARTEXSUBIMAGEEXTPROC __glewClearTexSubImageEXT;
-
-GLEW_FUN_EXPORT PFNGLCLIPCONTROLEXTPROC __glewClipControlEXT;
-
-GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT;
-GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT;
-
-GLEW_FUN_EXPORT PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT;
-GLEW_FUN_EXPORT PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT;
-
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT;
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT;
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT;
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT;
-GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT;
-GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT;
-GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT;
-GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT;
-GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT;
-
-GLEW_FUN_EXPORT PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT;
-GLEW_FUN_EXPORT PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT;
-
-GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAEXTPROC __glewCopyImageSubDataEXT;
-
-GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT;
-
-GLEW_FUN_EXPORT PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT;
-GLEW_FUN_EXPORT PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT;
-
-GLEW_FUN_EXPORT PFNGLGETOBJECTLABELEXTPROC __glewGetObjectLabelEXT;
-GLEW_FUN_EXPORT PFNGLLABELOBJECTEXTPROC __glewLabelObjectEXT;
-
-GLEW_FUN_EXPORT PFNGLINSERTEVENTMARKEREXTPROC __glewInsertEventMarkerEXT;
-GLEW_FUN_EXPORT PFNGLPOPGROUPMARKEREXTPROC __glewPopGroupMarkerEXT;
-GLEW_FUN_EXPORT PFNGLPUSHGROUPMARKEREXTPROC __glewPushGroupMarkerEXT;
-
-GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT;
-
-GLEW_FUN_EXPORT PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT;
-GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT;
-GLEW_FUN_EXPORT PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT;
-GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT;
-GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT;
-GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT;
-GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT;
-GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT;
-GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT;
-GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT;
-GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT;
-GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT;
-GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT;
-GLEW_FUN_EXPORT PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT;
-GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT;
-GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT;
-GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT;
-GLEW_FUN_EXPORT PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT;
-GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT;
-GLEW_FUN_EXPORT PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT;
-GLEW_FUN_EXPORT PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT;
-GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT;
-GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT;
-GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT;
-GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT;
-GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT;
-GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT;
-GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT;
-GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT;
-GLEW_FUN_EXPORT PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT;
-GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT;
-GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT;
-GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT;
-GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT;
-GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT;
-GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT;
-GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT;
-GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT;
-GLEW_FUN_EXPORT PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT;
-GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC __glewVertexArrayVertexAttribDivisorEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT;
-
-GLEW_FUN_EXPORT PFNGLDISCARDFRAMEBUFFEREXTPROC __glewDiscardFramebufferEXT;
-
-GLEW_FUN_EXPORT PFNGLBEGINQUERYEXTPROC __glewBeginQueryEXT;
-GLEW_FUN_EXPORT PFNGLDELETEQUERIESEXTPROC __glewDeleteQueriesEXT;
-GLEW_FUN_EXPORT PFNGLENDQUERYEXTPROC __glewEndQueryEXT;
-GLEW_FUN_EXPORT PFNGLGENQUERIESEXTPROC __glewGenQueriesEXT;
-GLEW_FUN_EXPORT PFNGLGETINTEGER64VEXTPROC __glewGetInteger64vEXT;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVEXTPROC __glewGetQueryObjectivEXT;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVEXTPROC __glewGetQueryObjectuivEXT;
-GLEW_FUN_EXPORT PFNGLGETQUERYIVEXTPROC __glewGetQueryivEXT;
-GLEW_FUN_EXPORT PFNGLISQUERYEXTPROC __glewIsQueryEXT;
-GLEW_FUN_EXPORT PFNGLQUERYCOUNTEREXTPROC __glewQueryCounterEXT;
-
-GLEW_FUN_EXPORT PFNGLDRAWBUFFERSEXTPROC __glewDrawBuffersEXT;
-
-GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT;
-GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT;
-GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT;
-GLEW_FUN_EXPORT PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT;
-GLEW_FUN_EXPORT PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT;
-GLEW_FUN_EXPORT PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT;
-
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIEXTPROC __glewBlendEquationSeparateiEXT;
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIEXTPROC __glewBlendEquationiEXT;
-GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIEXTPROC __glewBlendFuncSeparateiEXT;
-GLEW_FUN_EXPORT PFNGLBLENDFUNCIEXTPROC __glewBlendFunciEXT;
-GLEW_FUN_EXPORT PFNGLCOLORMASKIEXTPROC __glewColorMaskiEXT;
-GLEW_FUN_EXPORT PFNGLDISABLEIEXTPROC __glewDisableiEXT;
-GLEW_FUN_EXPORT PFNGLENABLEIEXTPROC __glewEnableiEXT;
-GLEW_FUN_EXPORT PFNGLISENABLEDIEXTPROC __glewIsEnablediEXT;
-
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXEXTPROC __glewDrawElementsBaseVertexEXT;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC __glewDrawElementsInstancedBaseVertexEXT;
-GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC __glewDrawRangeElementsBaseVertexEXT;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC __glewMultiDrawElementsBaseVertexEXT;
-
-GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT;
-
-GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT;
-
-GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKEXTPROC __glewDrawTransformFeedbackEXT;
-GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC __glewDrawTransformFeedbackInstancedEXT;
-
-GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEEXTERNALEXTPROC __glewBufferStorageExternalEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC __glewNamedBufferStorageExternalEXT;
-
-GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT;
-GLEW_FUN_EXPORT PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT;
-GLEW_FUN_EXPORT PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT;
-GLEW_FUN_EXPORT PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT;
-GLEW_FUN_EXPORT PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT;
-
-GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT;
-GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT;
-GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT;
-GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT;
-GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT;
-GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT;
-GLEW_FUN_EXPORT PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT;
-
-GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT;
-
-GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT;
-
-GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT;
-GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT;
-GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT;
-GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT;
-GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT;
-GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT;
-GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT;
-GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT;
-GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT;
-GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT;
-GLEW_FUN_EXPORT PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT;
-GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT;
-
-GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT;
-GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT;
-
-GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT;
-GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT;
-GLEW_FUN_EXPORT PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT;
-GLEW_FUN_EXPORT PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT;
-GLEW_FUN_EXPORT PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT;
-GLEW_FUN_EXPORT PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT;
-GLEW_FUN_EXPORT PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT;
-GLEW_FUN_EXPORT PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT;
-GLEW_FUN_EXPORT PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT;
-GLEW_FUN_EXPORT PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT;
-
-GLEW_FUN_EXPORT PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT;
-GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT;
-GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT;
-GLEW_FUN_EXPORT PFNGLHISTOGRAMEXTPROC __glewHistogramEXT;
-GLEW_FUN_EXPORT PFNGLMINMAXEXTPROC __glewMinmaxEXT;
-GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT;
-GLEW_FUN_EXPORT PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT;
-
-GLEW_FUN_EXPORT PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT;
-
-GLEW_FUN_EXPORT PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT;
-
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISOREXTPROC __glewVertexAttribDivisorEXT;
-
-GLEW_FUN_EXPORT PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT;
-
-GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC __glewFlushMappedBufferRangeEXT;
-GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEEXTPROC __glewMapBufferRangeEXT;
-
-GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEMEMEXTPROC __glewBufferStorageMemEXT;
-GLEW_FUN_EXPORT PFNGLCREATEMEMORYOBJECTSEXTPROC __glewCreateMemoryObjectsEXT;
-GLEW_FUN_EXPORT PFNGLDELETEMEMORYOBJECTSEXTPROC __glewDeleteMemoryObjectsEXT;
-GLEW_FUN_EXPORT PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC __glewGetMemoryObjectParameterivEXT;
-GLEW_FUN_EXPORT PFNGLGETUNSIGNEDBYTEI_VEXTPROC __glewGetUnsignedBytei_vEXT;
-GLEW_FUN_EXPORT PFNGLGETUNSIGNEDBYTEVEXTPROC __glewGetUnsignedBytevEXT;
-GLEW_FUN_EXPORT PFNGLISMEMORYOBJECTEXTPROC __glewIsMemoryObjectEXT;
-GLEW_FUN_EXPORT PFNGLMEMORYOBJECTPARAMETERIVEXTPROC __glewMemoryObjectParameterivEXT;
-GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC __glewNamedBufferStorageMemEXT;
-GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM1DEXTPROC __glewTexStorageMem1DEXT;
-GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM2DEXTPROC __glewTexStorageMem2DEXT;
-GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC __glewTexStorageMem2DMultisampleEXT;
-GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM3DEXTPROC __glewTexStorageMem3DEXT;
-GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC __glewTexStorageMem3DMultisampleEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM1DEXTPROC __glewTextureStorageMem1DEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM2DEXTPROC __glewTextureStorageMem2DEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC __glewTextureStorageMem2DMultisampleEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM3DEXTPROC __glewTextureStorageMem3DEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC __glewTextureStorageMem3DMultisampleEXT;
-
-GLEW_FUN_EXPORT PFNGLIMPORTMEMORYFDEXTPROC __glewImportMemoryFdEXT;
-
-GLEW_FUN_EXPORT PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC __glewImportMemoryWin32HandleEXT;
-GLEW_FUN_EXPORT PFNGLIMPORTMEMORYWIN32NAMEEXTPROC __glewImportMemoryWin32NameEXT;
-
-GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT;
-
-GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC __glewMultiDrawArraysIndirectEXT;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC __glewMultiDrawElementsIndirectEXT;
-
-GLEW_FUN_EXPORT PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT;
-GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC __glewFramebufferTexture2DMultisampleEXT;
-
-GLEW_FUN_EXPORT PFNGLDRAWBUFFERSINDEXEDEXTPROC __glewDrawBuffersIndexedEXT;
-GLEW_FUN_EXPORT PFNGLGETINTEGERI_VEXTPROC __glewGetIntegeri_vEXT;
-GLEW_FUN_EXPORT PFNGLREADBUFFERINDEXEDEXTPROC __glewReadBufferIndexedEXT;
-
-GLEW_FUN_EXPORT PFNGLCOLORTABLEEXTPROC __glewColorTableEXT;
-GLEW_FUN_EXPORT PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT;
-GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT;
-
-GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT;
-GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT;
-GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT;
-GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT;
-GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT;
-
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT;
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT;
-
-GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT;
-
-GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETCLAMPEXTPROC __glewPolygonOffsetClampEXT;
-
-GLEW_FUN_EXPORT PFNGLPRIMITIVEBOUNDINGBOXEXTPROC __glewPrimitiveBoundingBoxEXT;
-
-GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT;
-
-GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONNVPROC __glewCoverageModulationNV;
-GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONTABLENVPROC __glewCoverageModulationTableNV;
-GLEW_FUN_EXPORT PFNGLGETCOVERAGEMODULATIONTABLENVPROC __glewGetCoverageModulationTableNV;
-GLEW_FUN_EXPORT PFNGLRASTERSAMPLESEXTPROC __glewRasterSamplesEXT;
-
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVEXTPROC __glewGetnUniformfvEXT;
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVEXTPROC __glewGetnUniformivEXT;
-GLEW_FUN_EXPORT PFNGLREADNPIXELSEXTPROC __glewReadnPixelsEXT;
-
-GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT;
-GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT;
-
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT;
-
-GLEW_FUN_EXPORT PFNGLDELETESEMAPHORESEXTPROC __glewDeleteSemaphoresEXT;
-GLEW_FUN_EXPORT PFNGLGENSEMAPHORESEXTPROC __glewGenSemaphoresEXT;
-GLEW_FUN_EXPORT PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC __glewGetSemaphoreParameterui64vEXT;
-GLEW_FUN_EXPORT PFNGLISSEMAPHOREEXTPROC __glewIsSemaphoreEXT;
-GLEW_FUN_EXPORT PFNGLSEMAPHOREPARAMETERUI64VEXTPROC __glewSemaphoreParameterui64vEXT;
-GLEW_FUN_EXPORT PFNGLSIGNALSEMAPHOREEXTPROC __glewSignalSemaphoreEXT;
-GLEW_FUN_EXPORT PFNGLWAITSEMAPHOREEXTPROC __glewWaitSemaphoreEXT;
-
-GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREFDEXTPROC __glewImportSemaphoreFdEXT;
-
-GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC __glewImportSemaphoreWin32HandleEXT;
-GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC __glewImportSemaphoreWin32NameEXT;
-
-GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT;
-GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT;
-GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC __glewFramebufferFetchBarrierEXT;
-
-GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT;
-GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT;
-
-GLEW_FUN_EXPORT PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC __glewClearPixelLocalStorageuiEXT;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewFramebufferPixelLocalStorageSizeEXT;
-GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewGetFramebufferPixelLocalStorageSizeEXT;
-
-GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTEXTPROC __glewTexPageCommitmentEXT;
-GLEW_FUN_EXPORT PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT;
-
-GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT;
-
-GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT;
-GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT;
-GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT;
-
-GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIEXTPROC __glewPatchParameteriEXT;
-
-GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT;
-
-GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVEXTPROC __glewGetSamplerParameterIivEXT;
-GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVEXTPROC __glewGetSamplerParameterIuivEXT;
-GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVEXTPROC __glewSamplerParameterIivEXT;
-GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVEXTPROC __glewSamplerParameterIuivEXT;
-
-GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT;
-
-GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT;
-GLEW_FUN_EXPORT PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT;
-GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT;
-GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT;
-GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT;
-GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT;
-
-GLEW_FUN_EXPORT PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT;
-GLEW_FUN_EXPORT PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT;
-GLEW_FUN_EXPORT PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT;
-GLEW_FUN_EXPORT PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT;
-GLEW_FUN_EXPORT PFNGLISTEXTUREEXTPROC __glewIsTextureEXT;
-GLEW_FUN_EXPORT PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT;
-
-GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT;
-
-GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DEXTPROC __glewTexStorage1DEXT;
-GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DEXTPROC __glewTexStorage2DEXT;
-GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DEXTPROC __glewTexStorage3DEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT;
-GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT;
-
-GLEW_FUN_EXPORT PFNGLTEXTUREVIEWEXTPROC __glewTextureViewEXT;
-
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT;
-GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT;
-
-GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT;
-GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT;
-GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT;
-GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT;
-GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT;
-GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT;
-GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT;
-
-GLEW_FUN_EXPORT PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT;
-GLEW_FUN_EXPORT PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT;
-GLEW_FUN_EXPORT PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT;
-GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT;
-GLEW_FUN_EXPORT PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT;
-GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT;
-GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT;
-
-GLEW_FUN_EXPORT PFNGLBINDARRAYSETEXTPROC __glewBindArraySetEXT;
-GLEW_FUN_EXPORT PFNGLCREATEARRAYSETEXTPROC __glewCreateArraySetExt;
-GLEW_FUN_EXPORT PFNGLDELETEARRAYSETSEXTPROC __glewDeleteArraySetsEXT;
-
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT;
-
-GLEW_FUN_EXPORT PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT;
-GLEW_FUN_EXPORT PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT;
-GLEW_FUN_EXPORT PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT;
-GLEW_FUN_EXPORT PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT;
-GLEW_FUN_EXPORT PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT;
-GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT;
-GLEW_FUN_EXPORT PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT;
-GLEW_FUN_EXPORT PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT;
-GLEW_FUN_EXPORT PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT;
-GLEW_FUN_EXPORT PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT;
-GLEW_FUN_EXPORT PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT;
-GLEW_FUN_EXPORT PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT;
-GLEW_FUN_EXPORT PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT;
-GLEW_FUN_EXPORT PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT;
-GLEW_FUN_EXPORT PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT;
-GLEW_FUN_EXPORT PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT;
-GLEW_FUN_EXPORT PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT;
-GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT;
-GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT;
-GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT;
-GLEW_FUN_EXPORT PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT;
-GLEW_FUN_EXPORT PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT;
-GLEW_FUN_EXPORT PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT;
-GLEW_FUN_EXPORT PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT;
-GLEW_FUN_EXPORT PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT;
-GLEW_FUN_EXPORT PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT;
-GLEW_FUN_EXPORT PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT;
-GLEW_FUN_EXPORT PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT;
-GLEW_FUN_EXPORT PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT;
-GLEW_FUN_EXPORT PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT;
-GLEW_FUN_EXPORT PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT;
-GLEW_FUN_EXPORT PFNGLSWIZZLEEXTPROC __glewSwizzleEXT;
-GLEW_FUN_EXPORT PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT;
-GLEW_FUN_EXPORT PFNGLVARIANTBVEXTPROC __glewVariantbvEXT;
-GLEW_FUN_EXPORT PFNGLVARIANTDVEXTPROC __glewVariantdvEXT;
-GLEW_FUN_EXPORT PFNGLVARIANTFVEXTPROC __glewVariantfvEXT;
-GLEW_FUN_EXPORT PFNGLVARIANTIVEXTPROC __glewVariantivEXT;
-GLEW_FUN_EXPORT PFNGLVARIANTSVEXTPROC __glewVariantsvEXT;
-GLEW_FUN_EXPORT PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT;
-GLEW_FUN_EXPORT PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT;
-GLEW_FUN_EXPORT PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT;
-GLEW_FUN_EXPORT PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT;
-
-GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT;
-GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT;
-
-GLEW_FUN_EXPORT PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC __glewAcquireKeyedMutexWin32EXT;
-GLEW_FUN_EXPORT PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC __glewReleaseKeyedMutexWin32EXT;
-
-GLEW_FUN_EXPORT PFNGLWINDOWRECTANGLESEXTPROC __glewWindowRectanglesEXT;
-
-GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT;
-
-GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY;
-
-GLEW_FUN_EXPORT PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY;
-
-GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP;
-GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP;
-GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP;
-GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP;
-GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP;
-GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP;
-
-GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM;
-GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM;
-
-GLEW_FUN_EXPORT PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM;
-GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM;
-GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM;
-GLEW_FUN_EXPORT PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM;
-GLEW_FUN_EXPORT PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM;
-GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM;
-GLEW_FUN_EXPORT PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM;
-
-GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLEIMGPROC __glewGetTextureHandleIMG;
-GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLEIMGPROC __glewGetTextureSamplerHandleIMG;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC __glewProgramUniformHandleui64IMG;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC __glewProgramUniformHandleui64vIMG;
-GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64IMGPROC __glewUniformHandleui64IMG;
-GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VIMGPROC __glewUniformHandleui64vIMG;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC __glewFramebufferTexture2DDownsampleIMG;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC __glewFramebufferTextureLayerDownsampleIMG;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC __glewFramebufferTexture2DMultisampleIMG;
-GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC __glewRenderbufferStorageMultisampleIMG;
-
-GLEW_FUN_EXPORT PFNGLMAPTEXTURE2DINTELPROC __glewMapTexture2DINTEL;
-GLEW_FUN_EXPORT PFNGLSYNCTEXTUREINTELPROC __glewSyncTextureINTEL;
-GLEW_FUN_EXPORT PFNGLUNMAPTEXTURE2DINTELPROC __glewUnmapTexture2DINTEL;
-
-GLEW_FUN_EXPORT PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL;
-GLEW_FUN_EXPORT PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL;
-GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL;
-GLEW_FUN_EXPORT PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL;
-
-GLEW_FUN_EXPORT PFNGLBEGINPERFQUERYINTELPROC __glewBeginPerfQueryINTEL;
-GLEW_FUN_EXPORT PFNGLCREATEPERFQUERYINTELPROC __glewCreatePerfQueryINTEL;
-GLEW_FUN_EXPORT PFNGLDELETEPERFQUERYINTELPROC __glewDeletePerfQueryINTEL;
-GLEW_FUN_EXPORT PFNGLENDPERFQUERYINTELPROC __glewEndPerfQueryINTEL;
-GLEW_FUN_EXPORT PFNGLGETFIRSTPERFQUERYIDINTELPROC __glewGetFirstPerfQueryIdINTEL;
-GLEW_FUN_EXPORT PFNGLGETNEXTPERFQUERYIDINTELPROC __glewGetNextPerfQueryIdINTEL;
-GLEW_FUN_EXPORT PFNGLGETPERFCOUNTERINFOINTELPROC __glewGetPerfCounterInfoINTEL;
-GLEW_FUN_EXPORT PFNGLGETPERFQUERYDATAINTELPROC __glewGetPerfQueryDataINTEL;
-GLEW_FUN_EXPORT PFNGLGETPERFQUERYIDBYNAMEINTELPROC __glewGetPerfQueryIdByNameINTEL;
-GLEW_FUN_EXPORT PFNGLGETPERFQUERYINFOINTELPROC __glewGetPerfQueryInfoINTEL;
-
-GLEW_FUN_EXPORT PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL;
-GLEW_FUN_EXPORT PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL;
-
-GLEW_FUN_EXPORT PFNGLBLENDBARRIERKHRPROC __glewBlendBarrierKHR;
-
-GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKPROC __glewDebugMessageCallback;
-GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLPROC __glewDebugMessageControl;
-GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTPROC __glewDebugMessageInsert;
-GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGPROC __glewGetDebugMessageLog;
-GLEW_FUN_EXPORT PFNGLGETOBJECTLABELPROC __glewGetObjectLabel;
-GLEW_FUN_EXPORT PFNGLGETOBJECTPTRLABELPROC __glewGetObjectPtrLabel;
-GLEW_FUN_EXPORT PFNGLOBJECTLABELPROC __glewObjectLabel;
-GLEW_FUN_EXPORT PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel;
-GLEW_FUN_EXPORT PFNGLPOPDEBUGGROUPPROC __glewPopDebugGroup;
-GLEW_FUN_EXPORT PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup;
-
-GLEW_FUN_EXPORT PFNGLMAXSHADERCOMPILERTHREADSKHRPROC __glewMaxShaderCompilerThreadsKHR;
-
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVPROC __glewGetnUniformfv;
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVPROC __glewGetnUniformiv;
-GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVPROC __glewGetnUniformuiv;
-GLEW_FUN_EXPORT PFNGLREADNPIXELSPROC __glewReadnPixels;
-
-GLEW_FUN_EXPORT PFNGLBUFFERREGIONENABLEDPROC __glewBufferRegionEnabled;
-GLEW_FUN_EXPORT PFNGLDELETEBUFFERREGIONPROC __glewDeleteBufferRegion;
-GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion;
-GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion;
-GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPARAMETERIMESAPROC __glewFramebufferParameteriMESA;
-GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC __glewGetFramebufferParameterivMESA;
-
-GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA;
-
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA;
-GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA;
-
-GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVXPROC __glewBeginConditionalRenderNVX;
-GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVXPROC __glewEndConditionalRenderNVX;
-
-GLEW_FUN_EXPORT PFNGLASYNCCOPYBUFFERSUBDATANVXPROC __glewAsyncCopyBufferSubDataNVX;
-GLEW_FUN_EXPORT PFNGLASYNCCOPYIMAGESUBDATANVXPROC __glewAsyncCopyImageSubDataNVX;
-GLEW_FUN_EXPORT PFNGLMULTICASTSCISSORARRAYVNVXPROC __glewMulticastScissorArrayvNVX;
-GLEW_FUN_EXPORT PFNGLMULTICASTVIEWPORTARRAYVNVXPROC __glewMulticastViewportArrayvNVX;
-GLEW_FUN_EXPORT PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC __glewMulticastViewportPositionWScaleNVX;
-GLEW_FUN_EXPORT PFNGLUPLOADGPUMASKNVXPROC __glewUploadGpuMaskNVX;
-
-GLEW_FUN_EXPORT PFNGLLGPUCOPYIMAGESUBDATANVXPROC __glewLGPUCopyImageSubDataNVX;
-GLEW_FUN_EXPORT PFNGLLGPUINTERLOCKNVXPROC __glewLGPUInterlockNVX;
-GLEW_FUN_EXPORT PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC __glewLGPUNamedBufferSubDataNVX;
-
-GLEW_FUN_EXPORT PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC __glewClientWaitSemaphoreui64NVX;
-GLEW_FUN_EXPORT PFNGLSIGNALSEMAPHOREUI64NVXPROC __glewSignalSemaphoreui64NVX;
-GLEW_FUN_EXPORT PFNGLWAITSEMAPHOREUI64NVXPROC __glewWaitSemaphoreui64NVX;
-
-GLEW_FUN_EXPORT PFNGLSTEREOPARAMETERFNVPROC __glewStereoParameterfNV;
-GLEW_FUN_EXPORT PFNGLSTEREOPARAMETERINVPROC __glewStereoParameteriNV;
-
-GLEW_FUN_EXPORT PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC __glewAlphaToCoverageDitherControlNV;
-
-GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC __glewMultiDrawArraysIndirectBindlessNV;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC __glewMultiDrawElementsIndirectBindlessNV;
-
-GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawArraysIndirectBindlessCountNV;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawElementsIndirectBindlessCountNV;
-
-GLEW_FUN_EXPORT PFNGLGETIMAGEHANDLENVPROC __glewGetImageHandleNV;
-GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLENVPROC __glewGetTextureHandleNV;
-GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLENVPROC __glewGetTextureSamplerHandleNV;
-GLEW_FUN_EXPORT PFNGLISIMAGEHANDLERESIDENTNVPROC __glewIsImageHandleResidentNV;
-GLEW_FUN_EXPORT PFNGLISTEXTUREHANDLERESIDENTNVPROC __glewIsTextureHandleResidentNV;
-GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC __glewMakeImageHandleNonResidentNV;
-GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLERESIDENTNVPROC __glewMakeImageHandleResidentNV;
-GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC __glewMakeTextureHandleNonResidentNV;
-GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLERESIDENTNVPROC __glewMakeTextureHandleResidentNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC __glewProgramUniformHandleui64NV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC __glewProgramUniformHandleui64vNV;
-GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64NVPROC __glewUniformHandleui64NV;
-GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV;
-
-GLEW_FUN_EXPORT PFNGLBLENDBARRIERNVPROC __glewBlendBarrierNV;
-GLEW_FUN_EXPORT PFNGLBLENDPARAMETERINVPROC __glewBlendParameteriNV;
-
-GLEW_FUN_EXPORT PFNGLVIEWPORTPOSITIONWSCALENVPROC __glewViewportPositionWScaleNV;
-
-GLEW_FUN_EXPORT PFNGLCALLCOMMANDLISTNVPROC __glewCallCommandListNV;
-GLEW_FUN_EXPORT PFNGLCOMMANDLISTSEGMENTSNVPROC __glewCommandListSegmentsNV;
-GLEW_FUN_EXPORT PFNGLCOMPILECOMMANDLISTNVPROC __glewCompileCommandListNV;
-GLEW_FUN_EXPORT PFNGLCREATECOMMANDLISTSNVPROC __glewCreateCommandListsNV;
-GLEW_FUN_EXPORT PFNGLCREATESTATESNVPROC __glewCreateStatesNV;
-GLEW_FUN_EXPORT PFNGLDELETECOMMANDLISTSNVPROC __glewDeleteCommandListsNV;
-GLEW_FUN_EXPORT PFNGLDELETESTATESNVPROC __glewDeleteStatesNV;
-GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSADDRESSNVPROC __glewDrawCommandsAddressNV;
-GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSNVPROC __glewDrawCommandsNV;
-GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC __glewDrawCommandsStatesAddressNV;
-GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSSTATESNVPROC __glewDrawCommandsStatesNV;
-GLEW_FUN_EXPORT PFNGLGETCOMMANDHEADERNVPROC __glewGetCommandHeaderNV;
-GLEW_FUN_EXPORT PFNGLGETSTAGEINDEXNVPROC __glewGetStageIndexNV;
-GLEW_FUN_EXPORT PFNGLISCOMMANDLISTNVPROC __glewIsCommandListNV;
-GLEW_FUN_EXPORT PFNGLISSTATENVPROC __glewIsStateNV;
-GLEW_FUN_EXPORT PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC __glewListDrawCommandsStatesClientNV;
-GLEW_FUN_EXPORT PFNGLSTATECAPTURENVPROC __glewStateCaptureNV;
-
-GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV;
-GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV;
-
-GLEW_FUN_EXPORT PFNGLSUBPIXELPRECISIONBIASNVPROC __glewSubpixelPrecisionBiasNV;
-
-GLEW_FUN_EXPORT PFNGLCONSERVATIVERASTERPARAMETERFNVPROC __glewConservativeRasterParameterfNV;
-
-GLEW_FUN_EXPORT PFNGLCONSERVATIVERASTERPARAMETERINVPROC __glewConservativeRasterParameteriNV;
-
-GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATANVPROC __glewCopyBufferSubDataNV;
-
-GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV;
-
-GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV;
-GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV;
-GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV;
-
-GLEW_FUN_EXPORT PFNGLDRAWBUFFERSNVPROC __glewDrawBuffersNV;
-
-GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDNVPROC __glewDrawArraysInstancedNV;
-GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDNVPROC __glewDrawElementsInstancedNV;
-
-GLEW_FUN_EXPORT PFNGLDRAWTEXTURENVPROC __glewDrawTextureNV;
-
-GLEW_FUN_EXPORT PFNGLDRAWVKIMAGENVPROC __glewDrawVkImageNV;
-GLEW_FUN_EXPORT PFNGLGETVKPROCADDRNVPROC __glewGetVkProcAddrNV;
-GLEW_FUN_EXPORT PFNGLSIGNALVKFENCENVPROC __glewSignalVkFenceNV;
-GLEW_FUN_EXPORT PFNGLSIGNALVKSEMAPHORENVPROC __glewSignalVkSemaphoreNV;
-GLEW_FUN_EXPORT PFNGLWAITVKSEMAPHORENVPROC __glewWaitVkSemaphoreNV;
-
-GLEW_FUN_EXPORT PFNGLEVALMAPSNVPROC __glewEvalMapsNV;
-GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV;
-GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV;
-GLEW_FUN_EXPORT PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV;
-GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV;
-GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV;
-GLEW_FUN_EXPORT PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV;
-GLEW_FUN_EXPORT PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV;
-GLEW_FUN_EXPORT PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV;
-
-GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV;
-GLEW_FUN_EXPORT PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV;
-GLEW_FUN_EXPORT PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV;
-
-GLEW_FUN_EXPORT PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV;
-GLEW_FUN_EXPORT PFNGLFINISHFENCENVPROC __glewFinishFenceNV;
-GLEW_FUN_EXPORT PFNGLGENFENCESNVPROC __glewGenFencesNV;
-GLEW_FUN_EXPORT PFNGLGETFENCEIVNVPROC __glewGetFenceivNV;
-GLEW_FUN_EXPORT PFNGLISFENCENVPROC __glewIsFenceNV;
-GLEW_FUN_EXPORT PFNGLSETFENCENVPROC __glewSetFenceNV;
-GLEW_FUN_EXPORT PFNGLTESTFENCENVPROC __glewTestFenceNV;
-
-GLEW_FUN_EXPORT PFNGLFRAGMENTCOVERAGECOLORNVPROC __glewFragmentCoverageColorNV;
-
-GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV;
-
-GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERNVPROC __glewBlitFramebufferNV;
-
-GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC __glewRenderbufferStorageMultisampleNV;
-
-GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV;
-
-GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV;
-
-GLEW_FUN_EXPORT PFNGLMULTICASTBARRIERNVPROC __glewMulticastBarrierNV;
-GLEW_FUN_EXPORT PFNGLMULTICASTBLITFRAMEBUFFERNVPROC __glewMulticastBlitFramebufferNV;
-GLEW_FUN_EXPORT PFNGLMULTICASTBUFFERSUBDATANVPROC __glewMulticastBufferSubDataNV;
-GLEW_FUN_EXPORT PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC __glewMulticastCopyBufferSubDataNV;
-GLEW_FUN_EXPORT PFNGLMULTICASTCOPYIMAGESUBDATANVPROC __glewMulticastCopyImageSubDataNV;
-GLEW_FUN_EXPORT PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewMulticastFramebufferSampleLocationsfvNV;
-GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC __glewMulticastGetQueryObjecti64vNV;
-GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTIVNVPROC __glewMulticastGetQueryObjectivNV;
-GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC __glewMulticastGetQueryObjectui64vNV;
-GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC __glewMulticastGetQueryObjectuivNV;
-GLEW_FUN_EXPORT PFNGLMULTICASTWAITSYNCNVPROC __glewMulticastWaitSyncNV;
-GLEW_FUN_EXPORT PFNGLRENDERGPUMASKNVPROC __glewRenderGpuMaskNV;
-
-GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV;
-
-GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV;
-GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV;
-GLEW_FUN_EXPORT PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV;
-GLEW_FUN_EXPORT PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV;
-GLEW_FUN_EXPORT PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV;
-GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV;
-GLEW_FUN_EXPORT PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV;
-GLEW_FUN_EXPORT PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV;
-GLEW_FUN_EXPORT PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV;
-GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV;
-GLEW_FUN_EXPORT PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV;
-GLEW_FUN_EXPORT PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV;
-GLEW_FUN_EXPORT PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV;
-GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV;
-GLEW_FUN_EXPORT PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV;
-GLEW_FUN_EXPORT PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV;
-GLEW_FUN_EXPORT PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV;
-GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV;
-
-GLEW_FUN_EXPORT PFNGLCOLOR3HNVPROC __glewColor3hNV;
-GLEW_FUN_EXPORT PFNGLCOLOR3HVNVPROC __glewColor3hvNV;
-GLEW_FUN_EXPORT PFNGLCOLOR4HNVPROC __glewColor4hNV;
-GLEW_FUN_EXPORT PFNGLCOLOR4HVNVPROC __glewColor4hvNV;
-GLEW_FUN_EXPORT PFNGLFOGCOORDHNVPROC __glewFogCoordhNV;
-GLEW_FUN_EXPORT PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV;
-GLEW_FUN_EXPORT PFNGLNORMAL3HNVPROC __glewNormal3hNV;
-GLEW_FUN_EXPORT PFNGLNORMAL3HVNVPROC __glewNormal3hvNV;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV;
-GLEW_FUN_EXPORT PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV;
-GLEW_FUN_EXPORT PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV;
-GLEW_FUN_EXPORT PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV;
-GLEW_FUN_EXPORT PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV;
-GLEW_FUN_EXPORT PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV;
-GLEW_FUN_EXPORT PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEX2HNVPROC __glewVertex2hNV;
-GLEW_FUN_EXPORT PFNGLVERTEX2HVNVPROC __glewVertex2hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEX3HNVPROC __glewVertex3hNV;
-GLEW_FUN_EXPORT PFNGLVERTEX3HVNVPROC __glewVertex3hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEX4HNVPROC __glewVertex4hNV;
-GLEW_FUN_EXPORT PFNGLVERTEX4HVNVPROC __glewVertex4hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV;
-GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV;
-
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORNVPROC __glewVertexAttribDivisorNV;
-
-GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATSAMPLEIVNVPROC __glewGetInternalformatSampleivNV;
-
-GLEW_FUN_EXPORT PFNGLBUFFERATTACHMEMORYNVPROC __glewBufferAttachMemoryNV;
-GLEW_FUN_EXPORT PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC __glewGetMemoryObjectDetachedResourcesuivNV;
-GLEW_FUN_EXPORT PFNGLNAMEDBUFFERATTACHMEMORYNVPROC __glewNamedBufferAttachMemoryNV;
-GLEW_FUN_EXPORT PFNGLRESETMEMORYOBJECTPARAMETERNVPROC __glewResetMemoryObjectParameterNV;
-GLEW_FUN_EXPORT PFNGLTEXATTACHMEMORYNVPROC __glewTexAttachMemoryNV;
-GLEW_FUN_EXPORT PFNGLTEXTUREATTACHMEMORYNVPROC __glewTextureAttachMemoryNV;
-
-GLEW_FUN_EXPORT PFNGLDRAWMESHTASKSINDIRECTNVPROC __glewDrawMeshTasksIndirectNV;
-GLEW_FUN_EXPORT PFNGLDRAWMESHTASKSNVPROC __glewDrawMeshTasksNV;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC __glewMultiDrawMeshTasksIndirectCountNV;
-GLEW_FUN_EXPORT PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC __glewMultiDrawMeshTasksIndirectNV;
-
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVNVPROC __glewUniformMatrix2x3fvNV;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVNVPROC __glewUniformMatrix2x4fvNV;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVNVPROC __glewUniformMatrix3x2fvNV;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVNVPROC __glewUniformMatrix3x4fvNV;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVNVPROC __glewUniformMatrix4x2fvNV;
-GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVNVPROC __glewUniformMatrix4x3fvNV;
-
-GLEW_FUN_EXPORT PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV;
-GLEW_FUN_EXPORT PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV;
-GLEW_FUN_EXPORT PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV;
-GLEW_FUN_EXPORT PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV;
-GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV;
-GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV;
-GLEW_FUN_EXPORT PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV;
-
-GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV;
-
-GLEW_FUN_EXPORT PFNGLCOPYPATHNVPROC __glewCopyPathNV;
-GLEW_FUN_EXPORT PFNGLCOVERFILLPATHINSTANCEDNVPROC __glewCoverFillPathInstancedNV;
-GLEW_FUN_EXPORT PFNGLCOVERFILLPATHNVPROC __glewCoverFillPathNV;
-GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHINSTANCEDNVPROC __glewCoverStrokePathInstancedNV;
-GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHNVPROC __glewCoverStrokePathNV;
-GLEW_FUN_EXPORT PFNGLDELETEPATHSNVPROC __glewDeletePathsNV;
-GLEW_FUN_EXPORT PFNGLGENPATHSNVPROC __glewGenPathsNV;
-GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENFVNVPROC __glewGetPathColorGenfvNV;
-GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENIVNVPROC __glewGetPathColorGenivNV;
-GLEW_FUN_EXPORT PFNGLGETPATHCOMMANDSNVPROC __glewGetPathCommandsNV;
-GLEW_FUN_EXPORT PFNGLGETPATHCOORDSNVPROC __glewGetPathCoordsNV;
-GLEW_FUN_EXPORT PFNGLGETPATHDASHARRAYNVPROC __glewGetPathDashArrayNV;
-GLEW_FUN_EXPORT PFNGLGETPATHLENGTHNVPROC __glewGetPathLengthNV;
-GLEW_FUN_EXPORT PFNGLGETPATHMETRICRANGENVPROC __glewGetPathMetricRangeNV;
-GLEW_FUN_EXPORT PFNGLGETPATHMETRICSNVPROC __glewGetPathMetricsNV;
-GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERFVNVPROC __glewGetPathParameterfvNV;
-GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERIVNVPROC __glewGetPathParameterivNV;
-GLEW_FUN_EXPORT PFNGLGETPATHSPACINGNVPROC __glewGetPathSpacingNV;
-GLEW_FUN_EXPORT PFNGLGETPATHTEXGENFVNVPROC __glewGetPathTexGenfvNV;
-GLEW_FUN_EXPORT PFNGLGETPATHTEXGENIVNVPROC __glewGetPathTexGenivNV;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEFVNVPROC __glewGetProgramResourcefvNV;
-GLEW_FUN_EXPORT PFNGLINTERPOLATEPATHSNVPROC __glewInterpolatePathsNV;
-GLEW_FUN_EXPORT PFNGLISPATHNVPROC __glewIsPathNV;
-GLEW_FUN_EXPORT PFNGLISPOINTINFILLPATHNVPROC __glewIsPointInFillPathNV;
-GLEW_FUN_EXPORT PFNGLISPOINTINSTROKEPATHNVPROC __glewIsPointInStrokePathNV;
-GLEW_FUN_EXPORT PFNGLMATRIXLOAD3X2FNVPROC __glewMatrixLoad3x2fNV;
-GLEW_FUN_EXPORT PFNGLMATRIXLOAD3X3FNVPROC __glewMatrixLoad3x3fNV;
-GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC __glewMatrixLoadTranspose3x3fNV;
-GLEW_FUN_EXPORT PFNGLMATRIXMULT3X2FNVPROC __glewMatrixMult3x2fNV;
-GLEW_FUN_EXPORT PFNGLMATRIXMULT3X3FNVPROC __glewMatrixMult3x3fNV;
-GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC __glewMatrixMultTranspose3x3fNV;
-GLEW_FUN_EXPORT PFNGLPATHCOLORGENNVPROC __glewPathColorGenNV;
-GLEW_FUN_EXPORT PFNGLPATHCOMMANDSNVPROC __glewPathCommandsNV;
-GLEW_FUN_EXPORT PFNGLPATHCOORDSNVPROC __glewPathCoordsNV;
-GLEW_FUN_EXPORT PFNGLPATHCOVERDEPTHFUNCNVPROC __glewPathCoverDepthFuncNV;
-GLEW_FUN_EXPORT PFNGLPATHDASHARRAYNVPROC __glewPathDashArrayNV;
-GLEW_FUN_EXPORT PFNGLPATHFOGGENNVPROC __glewPathFogGenNV;
-GLEW_FUN_EXPORT PFNGLPATHGLYPHINDEXARRAYNVPROC __glewPathGlyphIndexArrayNV;
-GLEW_FUN_EXPORT PFNGLPATHGLYPHINDEXRANGENVPROC __glewPathGlyphIndexRangeNV;
-GLEW_FUN_EXPORT PFNGLPATHGLYPHRANGENVPROC __glewPathGlyphRangeNV;
-GLEW_FUN_EXPORT PFNGLPATHGLYPHSNVPROC __glewPathGlyphsNV;
-GLEW_FUN_EXPORT PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC __glewPathMemoryGlyphIndexArrayNV;
-GLEW_FUN_EXPORT PFNGLPATHPARAMETERFNVPROC __glewPathParameterfNV;
-GLEW_FUN_EXPORT PFNGLPATHPARAMETERFVNVPROC __glewPathParameterfvNV;
-GLEW_FUN_EXPORT PFNGLPATHPARAMETERINVPROC __glewPathParameteriNV;
-GLEW_FUN_EXPORT PFNGLPATHPARAMETERIVNVPROC __glewPathParameterivNV;
-GLEW_FUN_EXPORT PFNGLPATHSTENCILDEPTHOFFSETNVPROC __glewPathStencilDepthOffsetNV;
-GLEW_FUN_EXPORT PFNGLPATHSTENCILFUNCNVPROC __glewPathStencilFuncNV;
-GLEW_FUN_EXPORT PFNGLPATHSTRINGNVPROC __glewPathStringNV;
-GLEW_FUN_EXPORT PFNGLPATHSUBCOMMANDSNVPROC __glewPathSubCommandsNV;
-GLEW_FUN_EXPORT PFNGLPATHSUBCOORDSNVPROC __glewPathSubCoordsNV;
-GLEW_FUN_EXPORT PFNGLPATHTEXGENNVPROC __glewPathTexGenNV;
-GLEW_FUN_EXPORT PFNGLPOINTALONGPATHNVPROC __glewPointAlongPathNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC __glewProgramPathFragmentInputGenNV;
-GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHINSTANCEDNVPROC __glewStencilFillPathInstancedNV;
-GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHNVPROC __glewStencilFillPathNV;
-GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC __glewStencilStrokePathInstancedNV;
-GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHNVPROC __glewStencilStrokePathNV;
-GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC __glewStencilThenCoverFillPathInstancedNV;
-GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERFILLPATHNVPROC __glewStencilThenCoverFillPathNV;
-GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC __glewStencilThenCoverStrokePathInstancedNV;
-GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC __glewStencilThenCoverStrokePathNV;
-GLEW_FUN_EXPORT PFNGLTRANSFORMPATHNVPROC __glewTransformPathNV;
-GLEW_FUN_EXPORT PFNGLWEIGHTPATHSNVPROC __glewWeightPathsNV;
-
-GLEW_FUN_EXPORT PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV;
-GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV;
-
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV;
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV;
-
-GLEW_FUN_EXPORT PFNGLPOLYGONMODENVPROC __glewPolygonModeNV;
-
-GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV;
-GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV;
-GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV;
-GLEW_FUN_EXPORT PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV;
-GLEW_FUN_EXPORT PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV;
-GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV;
-
-GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV;
-GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV;
-
-GLEW_FUN_EXPORT PFNGLREADBUFFERNVPROC __glewReadBufferNV;
-
-GLEW_FUN_EXPORT PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV;
-GLEW_FUN_EXPORT PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV;
-GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV;
-GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV;
-GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV;
-GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV;
-GLEW_FUN_EXPORT PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV;
-GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV;
-GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV;
-GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV;
-GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV;
-GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV;
-GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV;
-
-GLEW_FUN_EXPORT PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV;
-GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewFramebufferSampleLocationsfvNV;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewNamedFramebufferSampleLocationsfvNV;
-GLEW_FUN_EXPORT PFNGLRESOLVEDEPTHVALUESNVPROC __glewResolveDepthValuesNV;
-
-GLEW_FUN_EXPORT PFNGLSCISSOREXCLUSIVEARRAYVNVPROC __glewScissorExclusiveArrayvNV;
-GLEW_FUN_EXPORT PFNGLSCISSOREXCLUSIVENVPROC __glewScissorExclusiveNV;
-
-GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV;
-GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV;
-GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV;
-GLEW_FUN_EXPORT PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV;
-GLEW_FUN_EXPORT PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV;
-GLEW_FUN_EXPORT PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV;
-GLEW_FUN_EXPORT PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV;
-GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV;
-GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV;
-GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV;
-GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV;
-GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV;
-
-GLEW_FUN_EXPORT PFNGLBINDSHADINGRATEIMAGENVPROC __glewBindShadingRateImageNV;
-GLEW_FUN_EXPORT PFNGLGETSHADINGRATEIMAGEPALETTENVPROC __glewGetShadingRateImagePaletteNV;
-GLEW_FUN_EXPORT PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC __glewGetShadingRateSampleLocationivNV;
-GLEW_FUN_EXPORT PFNGLSHADINGRATEIMAGEBARRIERNVPROC __glewShadingRateImageBarrierNV;
-GLEW_FUN_EXPORT PFNGLSHADINGRATEIMAGEPALETTENVPROC __glewShadingRateImagePaletteNV;
-GLEW_FUN_EXPORT PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC __glewShadingRateSampleOrderCustomNV;
-
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DNVPROC __glewCompressedTexImage3DNV;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC __glewCompressedTexSubImage3DNV;
-GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DNVPROC __glewCopyTexSubImage3DNV;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERNVPROC __glewFramebufferTextureLayerNV;
-GLEW_FUN_EXPORT PFNGLTEXIMAGE3DNVPROC __glewTexImage3DNV;
-GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DNVPROC __glewTexSubImage3DNV;
-
-GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV;
-
-GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV;
-GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV;
-GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV;
-GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV;
-GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV;
-GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV;
-
-GLEW_FUN_EXPORT PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV;
-GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV;
-GLEW_FUN_EXPORT PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV;
-GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV;
-GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV;
-GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV;
-GLEW_FUN_EXPORT PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV;
-GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV;
-GLEW_FUN_EXPORT PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV;
-GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV;
-GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV;
-
-GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV;
-GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV;
-GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV;
-GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV;
-GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV;
-GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV;
-GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV;
-
-GLEW_FUN_EXPORT PFNGLVDPAUFININVPROC __glewVDPAUFiniNV;
-GLEW_FUN_EXPORT PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV;
-GLEW_FUN_EXPORT PFNGLVDPAUINITNVPROC __glewVDPAUInitNV;
-GLEW_FUN_EXPORT PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV;
-GLEW_FUN_EXPORT PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV;
-GLEW_FUN_EXPORT PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV;
-GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV;
-GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV;
-GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV;
-GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV;
-
-GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC __glewVDPAURegisterVideoSurfaceWithPictureStructureNV;
-
-GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV;
-GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV;
-
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV;
-
-GLEW_FUN_EXPORT PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV;
-GLEW_FUN_EXPORT PFNGLCOLORFORMATNVPROC __glewColorFormatNV;
-GLEW_FUN_EXPORT PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV;
-GLEW_FUN_EXPORT PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV;
-GLEW_FUN_EXPORT PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV;
-GLEW_FUN_EXPORT PFNGLINDEXFORMATNVPROC __glewIndexFormatNV;
-GLEW_FUN_EXPORT PFNGLNORMALFORMATNVPROC __glewNormalFormatNV;
-GLEW_FUN_EXPORT PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV;
-GLEW_FUN_EXPORT PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV;
-GLEW_FUN_EXPORT PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV;
-
-GLEW_FUN_EXPORT PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV;
-GLEW_FUN_EXPORT PFNGLBINDPROGRAMNVPROC __glewBindProgramNV;
-GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV;
-GLEW_FUN_EXPORT PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV;
-GLEW_FUN_EXPORT PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV;
-GLEW_FUN_EXPORT PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV;
-GLEW_FUN_EXPORT PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV;
-GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV;
-GLEW_FUN_EXPORT PFNGLISPROGRAMNVPROC __glewIsProgramNV;
-GLEW_FUN_EXPORT PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV;
-GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV;
-GLEW_FUN_EXPORT PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV;
-GLEW_FUN_EXPORT PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV;
-GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV;
-
-GLEW_FUN_EXPORT PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV;
-GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV;
-GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV;
-GLEW_FUN_EXPORT PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV;
-GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV;
-GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV;
-GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV;
-GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV;
-GLEW_FUN_EXPORT PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV;
-GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV;
-GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV;
-GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV;
-
-GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYFVNVPROC __glewDepthRangeArrayfvNV;
-GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDFNVPROC __glewDepthRangeIndexedfNV;
-GLEW_FUN_EXPORT PFNGLDISABLEINVPROC __glewDisableiNV;
-GLEW_FUN_EXPORT PFNGLENABLEINVPROC __glewEnableiNV;
-GLEW_FUN_EXPORT PFNGLGETFLOATI_VNVPROC __glewGetFloati_vNV;
-GLEW_FUN_EXPORT PFNGLISENABLEDINVPROC __glewIsEnablediNV;
-GLEW_FUN_EXPORT PFNGLSCISSORARRAYVNVPROC __glewScissorArrayvNV;
-GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDNVPROC __glewScissorIndexedNV;
-GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVNVPROC __glewScissorIndexedvNV;
-GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVNVPROC __glewViewportArrayvNV;
-GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFNVPROC __glewViewportIndexedfNV;
-GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVNVPROC __glewViewportIndexedfvNV;
-
-GLEW_FUN_EXPORT PFNGLVIEWPORTSWIZZLENVPROC __glewViewportSwizzleNV;
-
-GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC __glewEGLImageTargetRenderbufferStorageOES;
-GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXTURE2DOESPROC __glewEGLImageTargetTexture2DOES;
-
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEOESPROC __glewBlendEquationSeparateOES;
-
-GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEOESPROC __glewBlendFuncSeparateOES;
-
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONOESPROC __glewBlendEquationOES;
-
-GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAOESPROC __glewCopyImageSubDataOES;
-
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIOESPROC __glewBlendEquationSeparateiOES;
-GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIOESPROC __glewBlendEquationiOES;
-GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIOESPROC __glewBlendFuncSeparateiOES;
-GLEW_FUN_EXPORT PFNGLBLENDFUNCIOESPROC __glewBlendFunciOES;
-GLEW_FUN_EXPORT PFNGLCOLORMASKIOESPROC __glewColorMaskiOES;
-GLEW_FUN_EXPORT PFNGLDISABLEIOESPROC __glewDisableiOES;
-GLEW_FUN_EXPORT PFNGLENABLEIOESPROC __glewEnableiOES;
-GLEW_FUN_EXPORT PFNGLISENABLEDIOESPROC __glewIsEnablediOES;
-
-GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEROESPROC __glewBindFramebufferOES;
-GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEROESPROC __glewBindRenderbufferOES;
-GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSOESPROC __glewCheckFramebufferStatusOES;
-GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSOESPROC __glewDeleteFramebuffersOES;
-GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSOESPROC __glewDeleteRenderbuffersOES;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEROESPROC __glewFramebufferRenderbufferOES;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DOESPROC __glewFramebufferTexture2DOES;
-GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSOESPROC __glewGenFramebuffersOES;
-GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSOESPROC __glewGenRenderbuffersOES;
-GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPOESPROC __glewGenerateMipmapOES;
-GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC __glewGetFramebufferAttachmentParameterivOES;
-GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVOESPROC __glewGetRenderbufferParameterivOES;
-GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEROESPROC __glewIsFramebufferOES;
-GLEW_FUN_EXPORT PFNGLISRENDERBUFFEROESPROC __glewIsRenderbufferOES;
-GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEOESPROC __glewRenderbufferStorageOES;
-
-GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYOESPROC __glewGetProgramBinaryOES;
-GLEW_FUN_EXPORT PFNGLPROGRAMBINARYOESPROC __glewProgramBinaryOES;
-
-GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVOESPROC __glewGetBufferPointervOES;
-GLEW_FUN_EXPORT PFNGLMAPBUFFEROESPROC __glewMapBufferOES;
-GLEW_FUN_EXPORT PFNGLUNMAPBUFFEROESPROC __glewUnmapBufferOES;
-
-GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXOESPROC __glewCurrentPaletteMatrixOES;
-GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTEROESPROC __glewMatrixIndexPointerOES;
-GLEW_FUN_EXPORT PFNGLWEIGHTPOINTEROESPROC __glewWeightPointerOES;
-
-GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGOESPROC __glewMinSampleShadingOES;
-
-GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES;
-GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES;
-GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES;
-GLEW_FUN_EXPORT PFNGLFRUSTUMFOESPROC __glewFrustumfOES;
-GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES;
-GLEW_FUN_EXPORT PFNGLORTHOFOESPROC __glewOrthofOES;
-
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DOESPROC __glewCompressedTexImage3DOES;
-GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC __glewCompressedTexSubImage3DOES;
-GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DOESPROC __glewCopyTexSubImage3DOES;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DOESPROC __glewFramebufferTexture3DOES;
-GLEW_FUN_EXPORT PFNGLTEXIMAGE3DOESPROC __glewTexImage3DOES;
-GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DOESPROC __glewTexSubImage3DOES;
-
-GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVOESPROC __glewGetSamplerParameterIivOES;
-GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVOESPROC __glewGetSamplerParameterIuivOES;
-GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVOESPROC __glewGetTexParameterIivOES;
-GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVOESPROC __glewGetTexParameterIuivOES;
-GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVOESPROC __glewSamplerParameterIivOES;
-GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVOESPROC __glewSamplerParameterIuivOES;
-GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVOESPROC __glewTexParameterIivOES;
-GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVOESPROC __glewTexParameterIuivOES;
-
-GLEW_FUN_EXPORT PFNGLTEXBUFFEROESPROC __glewTexBufferOES;
-GLEW_FUN_EXPORT PFNGLTEXBUFFERRANGEOESPROC __glewTexBufferRangeOES;
-
-GLEW_FUN_EXPORT PFNGLGETTEXGENFVOESPROC __glewGetTexGenfvOES;
-GLEW_FUN_EXPORT PFNGLGETTEXGENIVOESPROC __glewGetTexGenivOES;
-GLEW_FUN_EXPORT PFNGLGETTEXGENXVOESPROC __glewGetTexGenxvOES;
-GLEW_FUN_EXPORT PFNGLTEXGENFOESPROC __glewTexGenfOES;
-GLEW_FUN_EXPORT PFNGLTEXGENFVOESPROC __glewTexGenfvOES;
-GLEW_FUN_EXPORT PFNGLTEXGENIOESPROC __glewTexGeniOES;
-GLEW_FUN_EXPORT PFNGLTEXGENIVOESPROC __glewTexGenivOES;
-GLEW_FUN_EXPORT PFNGLTEXGENXOESPROC __glewTexGenxOES;
-GLEW_FUN_EXPORT PFNGLTEXGENXVOESPROC __glewTexGenxvOES;
-
-GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC __glewTexStorage3DMultisampleOES;
-
-GLEW_FUN_EXPORT PFNGLTEXTUREVIEWOESPROC __glewTextureViewOES;
-
-GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYOESPROC __glewBindVertexArrayOES;
-GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSOESPROC __glewDeleteVertexArraysOES;
-GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSOESPROC __glewGenVertexArraysOES;
-GLEW_FUN_EXPORT PFNGLISVERTEXARRAYOESPROC __glewIsVertexArrayOES;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewFramebufferTextureMultiviewOVR;
-GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewNamedFramebufferTextureMultiviewOVR;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC __glewFramebufferTextureMultisampleMultiviewOVR;
-
-GLEW_FUN_EXPORT PFNGLALPHAFUNCQCOMPROC __glewAlphaFuncQCOM;
-
-GLEW_FUN_EXPORT PFNGLDISABLEDRIVERCONTROLQCOMPROC __glewDisableDriverControlQCOM;
-GLEW_FUN_EXPORT PFNGLENABLEDRIVERCONTROLQCOMPROC __glewEnableDriverControlQCOM;
-GLEW_FUN_EXPORT PFNGLGETDRIVERCONTROLSTRINGQCOMPROC __glewGetDriverControlStringQCOM;
-GLEW_FUN_EXPORT PFNGLGETDRIVERCONTROLSQCOMPROC __glewGetDriverControlsQCOM;
-
-GLEW_FUN_EXPORT PFNGLEXTGETBUFFERPOINTERVQCOMPROC __glewExtGetBufferPointervQCOM;
-GLEW_FUN_EXPORT PFNGLEXTGETBUFFERSQCOMPROC __glewExtGetBuffersQCOM;
-GLEW_FUN_EXPORT PFNGLEXTGETFRAMEBUFFERSQCOMPROC __glewExtGetFramebuffersQCOM;
-GLEW_FUN_EXPORT PFNGLEXTGETRENDERBUFFERSQCOMPROC __glewExtGetRenderbuffersQCOM;
-GLEW_FUN_EXPORT PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC __glewExtGetTexLevelParameterivQCOM;
-GLEW_FUN_EXPORT PFNGLEXTGETTEXSUBIMAGEQCOMPROC __glewExtGetTexSubImageQCOM;
-GLEW_FUN_EXPORT PFNGLEXTGETTEXTURESQCOMPROC __glewExtGetTexturesQCOM;
-GLEW_FUN_EXPORT PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC __glewExtTexObjectStateOverrideiQCOM;
-
-GLEW_FUN_EXPORT PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC __glewExtGetProgramBinarySourceQCOM;
-GLEW_FUN_EXPORT PFNGLEXTGETPROGRAMSQCOMPROC __glewExtGetProgramsQCOM;
-GLEW_FUN_EXPORT PFNGLEXTGETSHADERSQCOMPROC __glewExtGetShadersQCOM;
-GLEW_FUN_EXPORT PFNGLEXTISPROGRAMBINARYQCOMPROC __glewExtIsProgramBinaryQCOM;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC __glewFramebufferFoveationConfigQCOM;
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC __glewFramebufferFoveationParametersQCOM;
-
-GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC __glewFramebufferFetchBarrierQCOM;
-
-GLEW_FUN_EXPORT PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC __glewTextureFoveationParametersQCOM;
-
-GLEW_FUN_EXPORT PFNGLENDTILINGQCOMPROC __glewEndTilingQCOM;
-GLEW_FUN_EXPORT PFNGLSTARTTILINGQCOMPROC __glewStartTilingQCOM;
-
-GLEW_FUN_EXPORT PFNGLALPHAFUNCXPROC __glewAlphaFuncx;
-GLEW_FUN_EXPORT PFNGLCLEARCOLORXPROC __glewClearColorx;
-GLEW_FUN_EXPORT PFNGLCLEARDEPTHXPROC __glewClearDepthx;
-GLEW_FUN_EXPORT PFNGLCOLOR4XPROC __glewColor4x;
-GLEW_FUN_EXPORT PFNGLDEPTHRANGEXPROC __glewDepthRangex;
-GLEW_FUN_EXPORT PFNGLFOGXPROC __glewFogx;
-GLEW_FUN_EXPORT PFNGLFOGXVPROC __glewFogxv;
-GLEW_FUN_EXPORT PFNGLFRUSTUMFPROC __glewFrustumf;
-GLEW_FUN_EXPORT PFNGLFRUSTUMXPROC __glewFrustumx;
-GLEW_FUN_EXPORT PFNGLLIGHTMODELXPROC __glewLightModelx;
-GLEW_FUN_EXPORT PFNGLLIGHTMODELXVPROC __glewLightModelxv;
-GLEW_FUN_EXPORT PFNGLLIGHTXPROC __glewLightx;
-GLEW_FUN_EXPORT PFNGLLIGHTXVPROC __glewLightxv;
-GLEW_FUN_EXPORT PFNGLLINEWIDTHXPROC __glewLineWidthx;
-GLEW_FUN_EXPORT PFNGLLOADMATRIXXPROC __glewLoadMatrixx;
-GLEW_FUN_EXPORT PFNGLMATERIALXPROC __glewMaterialx;
-GLEW_FUN_EXPORT PFNGLMATERIALXVPROC __glewMaterialxv;
-GLEW_FUN_EXPORT PFNGLMULTMATRIXXPROC __glewMultMatrixx;
-GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4XPROC __glewMultiTexCoord4x;
-GLEW_FUN_EXPORT PFNGLNORMAL3XPROC __glewNormal3x;
-GLEW_FUN_EXPORT PFNGLORTHOFPROC __glewOrthof;
-GLEW_FUN_EXPORT PFNGLORTHOXPROC __glewOrthox;
-GLEW_FUN_EXPORT PFNGLPOINTSIZEXPROC __glewPointSizex;
-GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETXPROC __glewPolygonOffsetx;
-GLEW_FUN_EXPORT PFNGLROTATEXPROC __glewRotatex;
-GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEXPROC __glewSampleCoveragex;
-GLEW_FUN_EXPORT PFNGLSCALEXPROC __glewScalex;
-GLEW_FUN_EXPORT PFNGLTEXENVXPROC __glewTexEnvx;
-GLEW_FUN_EXPORT PFNGLTEXENVXVPROC __glewTexEnvxv;
-GLEW_FUN_EXPORT PFNGLTEXPARAMETERXPROC __glewTexParameterx;
-GLEW_FUN_EXPORT PFNGLTRANSLATEXPROC __glewTranslatex;
-
-GLEW_FUN_EXPORT PFNGLCLIPPLANEFPROC __glewClipPlanef;
-GLEW_FUN_EXPORT PFNGLCLIPPLANEXPROC __glewClipPlanex;
-GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFPROC __glewGetClipPlanef;
-GLEW_FUN_EXPORT PFNGLGETCLIPPLANEXPROC __glewGetClipPlanex;
-GLEW_FUN_EXPORT PFNGLGETFIXEDVPROC __glewGetFixedv;
-GLEW_FUN_EXPORT PFNGLGETLIGHTXVPROC __glewGetLightxv;
-GLEW_FUN_EXPORT PFNGLGETMATERIALXVPROC __glewGetMaterialxv;
-GLEW_FUN_EXPORT PFNGLGETTEXENVXVPROC __glewGetTexEnvxv;
-GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERXVPROC __glewGetTexParameterxv;
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERXPROC __glewPointParameterx;
-GLEW_FUN_EXPORT PFNGLPOINTPARAMETERXVPROC __glewPointParameterxv;
-GLEW_FUN_EXPORT PFNGLPOINTSIZEPOINTEROESPROC __glewPointSizePointerOES;
-GLEW_FUN_EXPORT PFNGLTEXPARAMETERXVPROC __glewTexParameterxv;
-
-GLEW_FUN_EXPORT PFNGLERRORSTRINGREGALPROC __glewErrorStringREGAL;
-
-GLEW_FUN_EXPORT PFNGLGETEXTENSIONREGALPROC __glewGetExtensionREGAL;
-GLEW_FUN_EXPORT PFNGLISSUPPORTEDREGALPROC __glewIsSupportedREGAL;
-
-GLEW_FUN_EXPORT PFNGLLOGMESSAGECALLBACKREGALPROC __glewLogMessageCallbackREGAL;
-
-GLEW_FUN_EXPORT PFNGLGETPROCADDRESSREGALPROC __glewGetProcAddressREGAL;
-
-GLEW_FUN_EXPORT PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS;
-GLEW_FUN_EXPORT PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS;
-
-GLEW_FUN_EXPORT PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS;
-GLEW_FUN_EXPORT PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS;
-
-GLEW_FUN_EXPORT PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS;
-GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS;
-
-GLEW_FUN_EXPORT PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC __glewInterleavedTextureCoordSetsSGIS;
-GLEW_FUN_EXPORT PFNGLSELECTTEXTURECOORDSETSGISPROC __glewSelectTextureCoordSetSGIS;
-GLEW_FUN_EXPORT PFNGLSELECTTEXTURESGISPROC __glewSelectTextureSGIS;
-GLEW_FUN_EXPORT PFNGLSELECTTEXTURETRANSFORMSGISPROC __glewSelectTextureTransformSGIS;
-
-GLEW_FUN_EXPORT PFNGLMULTISAMPLESUBRECTPOSSGISPROC __glewMultisampleSubRectPosSGIS;
-
-GLEW_FUN_EXPORT PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS;
-GLEW_FUN_EXPORT PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS;
-
-GLEW_FUN_EXPORT PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS;
-GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS;
-
-GLEW_FUN_EXPORT PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS;
-GLEW_FUN_EXPORT PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS;
-
-GLEW_FUN_EXPORT PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX;
-GLEW_FUN_EXPORT PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX;
-GLEW_FUN_EXPORT PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX;
-GLEW_FUN_EXPORT PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX;
-GLEW_FUN_EXPORT PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX;
-GLEW_FUN_EXPORT PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX;
-
-GLEW_FUN_EXPORT PFNGLADDRESSSPACEPROC __glewAddressSpace;
-GLEW_FUN_EXPORT PFNGLDATAPIPEPROC __glewDataPipe;
-
-GLEW_FUN_EXPORT PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX;
-
-GLEW_FUN_EXPORT PFNGLFOGLAYERSSGIXPROC __glewFogLayersSGIX;
-GLEW_FUN_EXPORT PFNGLGETFOGLAYERSSGIXPROC __glewGetFogLayersSGIX;
-
-GLEW_FUN_EXPORT PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX;
-
-GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX;
-GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX;
-GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX;
-GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX;
-GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX;
-GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX;
-
-GLEW_FUN_EXPORT PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX;
-
-GLEW_FUN_EXPORT PFNGLIGLOOINTERFACESGIXPROC __glewIglooInterfaceSGIX;
-
-GLEW_FUN_EXPORT PFNGLALLOCMPEGPREDICTORSSGIXPROC __glewAllocMPEGPredictorsSGIX;
-GLEW_FUN_EXPORT PFNGLDELETEMPEGPREDICTORSSGIXPROC __glewDeleteMPEGPredictorsSGIX;
-GLEW_FUN_EXPORT PFNGLGENMPEGPREDICTORSSGIXPROC __glewGenMPEGPredictorsSGIX;
-GLEW_FUN_EXPORT PFNGLGETMPEGPARAMETERFVSGIXPROC __glewGetMPEGParameterfvSGIX;
-GLEW_FUN_EXPORT PFNGLGETMPEGPARAMETERIVSGIXPROC __glewGetMPEGParameterivSGIX;
-GLEW_FUN_EXPORT PFNGLGETMPEGPREDICTORSGIXPROC __glewGetMPEGPredictorSGIX;
-GLEW_FUN_EXPORT PFNGLGETMPEGQUANTTABLEUBVPROC __glewGetMPEGQuantTableubv;
-GLEW_FUN_EXPORT PFNGLISMPEGPREDICTORSGIXPROC __glewIsMPEGPredictorSGIX;
-GLEW_FUN_EXPORT PFNGLMPEGPREDICTORSGIXPROC __glewMPEGPredictorSGIX;
-GLEW_FUN_EXPORT PFNGLMPEGQUANTTABLEUBVPROC __glewMPEGQuantTableubv;
-GLEW_FUN_EXPORT PFNGLSWAPMPEGPREDICTORSSGIXPROC __glewSwapMPEGPredictorsSGIX;
-
-GLEW_FUN_EXPORT PFNGLGETNONLINLIGHTFVSGIXPROC __glewGetNonlinLightfvSGIX;
-GLEW_FUN_EXPORT PFNGLGETNONLINMATERIALFVSGIXPROC __glewGetNonlinMaterialfvSGIX;
-GLEW_FUN_EXPORT PFNGLNONLINLIGHTFVSGIXPROC __glewNonlinLightfvSGIX;
-GLEW_FUN_EXPORT PFNGLNONLINMATERIALFVSGIXPROC __glewNonlinMaterialfvSGIX;
-
-GLEW_FUN_EXPORT PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX;
-
-GLEW_FUN_EXPORT PFNGLDEFORMSGIXPROC __glewDeformSGIX;
-GLEW_FUN_EXPORT PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC __glewLoadIdentityDeformationMapSGIX;
-
-GLEW_FUN_EXPORT PFNGLMESHBREADTHSGIXPROC __glewMeshBreadthSGIX;
-GLEW_FUN_EXPORT PFNGLMESHSTRIDESGIXPROC __glewMeshStrideSGIX;
-
-GLEW_FUN_EXPORT PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX;
-
-GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX;
-GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX;
-GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX;
-GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX;
-
-GLEW_FUN_EXPORT PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX;
-
-GLEW_FUN_EXPORT PFNGLGETVECTOROPERATIONSGIXPROC __glewGetVectorOperationSGIX;
-GLEW_FUN_EXPORT PFNGLVECTOROPERATIONSGIXPROC __glewVectorOperationSGIX;
-
-GLEW_FUN_EXPORT PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC __glewAreVertexArraysResidentSGIX;
-GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYSGIXPROC __glewBindVertexArraySGIX;
-GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSSGIXPROC __glewDeleteVertexArraysSGIX;
-GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSSGIXPROC __glewGenVertexArraysSGIX;
-GLEW_FUN_EXPORT PFNGLISVERTEXARRAYSGIXPROC __glewIsVertexArraySGIX;
-GLEW_FUN_EXPORT PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC __glewPrioritizeVertexArraysSGIX;
-
-GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI;
-GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI;
-GLEW_FUN_EXPORT PFNGLCOLORTABLESGIPROC __glewColorTableSGI;
-GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI;
-GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI;
-GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI;
-GLEW_FUN_EXPORT PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI;
-
-GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC __glewGetPixelTransformParameterfvSGI;
-GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC __glewGetPixelTransformParameterivSGI;
-GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFSGIPROC __glewPixelTransformParameterfSGI;
-GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC __glewPixelTransformParameterfvSGI;
-GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERISGIPROC __glewPixelTransformParameteriSGI;
-GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC __glewPixelTransformParameterivSGI;
-GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMSGIPROC __glewPixelTransformSGI;
-
-GLEW_FUN_EXPORT PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX;
-
-GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN;
-GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN;
-GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN;
-GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN;
-GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN;
-GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN;
-GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN;
-GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN;
-
-GLEW_FUN_EXPORT PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN;
-
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN;
-
-GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN;
-GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN;
-GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN;
-GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN;
-
-GLEW_FUN_EXPORT PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_3;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_4;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_5;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_0;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_1;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_0;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_1;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_2;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_3;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_0;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_1;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_2;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_3;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_4;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_5;
-GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_6;
-GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_compressed_3DC_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_compressed_ATC_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_framebuffer_multisample_advanced;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_framebuffer_sample_positions;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gcn_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_half_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_half_float_fetch;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_int16;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_int64;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_interleaved_elements;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_multi_draw_indirect;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_occlusion_query_event;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_pinned_memory;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_program_binary_Z400;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_query_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_atomic_counter_ops;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_ballot;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_explicit_vertex_parameter;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_image_load_store_lod;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_value_export;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_trinary_minmax;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sparse_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_stencil_operation_extended;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_gather_bias_lod;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback4;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_layer;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator;
-GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_viewport_index;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANDROID_extension_pack_es31a;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_depth_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_blit;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_instanced_arrays;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_pack_reverse_row_order;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_program_binary;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt1;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt3;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt5;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_usage;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_timer_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_translated_shader_source;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_clip_distance;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_color_buffer_packed_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_copy_texture_levels;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_framebuffer_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_sync;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_2D_limited_npot;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_format_BGRA8888;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_max_level;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_packed_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_range;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_program_evaluators;
-GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_ycbcr_422;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES2_compatibility;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_1_compatibility;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_2_compatibility;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_compatibility;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_arrays_of_arrays;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_base_instance;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_bindless_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_blend_func_extended;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_buffer_storage;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cl_event;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clip_control;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_color_buffer_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compatibility;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compressed_texture_pixel_storage;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compute_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compute_variable_group_size;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conditional_render_inverted;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conservative_depth;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_image;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cull_distance;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_debug_output;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_buffer_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_derivative_control;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_direct_state_access;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers_blend;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_elements_base_vertex;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_indirect;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_instanced;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_enhanced_layouts;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_attrib_location;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_uniform_location;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_coord_conventions;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_layer_viewport;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program_shadow;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader_interlock;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_no_attachments;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_texture_sub_image;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gl_spirv;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_int64;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_pixel;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_vertex;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_imaging;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_indirect_parameters;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_instanced_arrays;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query2;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_invalidate_subdata;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_alignment;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_range;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_matrix_palette;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multi_bind;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multi_draw_indirect;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multitexture;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query2;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_parallel_shader_compile;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pipeline_statistics_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_polygon_offset_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_post_depth_coverage;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_program_interface_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_query_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robust_buffer_access_behavior;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_application_isolation;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_share_group_isolation;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_locations;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_shading;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sampler_objects;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cube_map;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cubemap_per_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_separate_shader_objects;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_atomic_counter_ops;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_atomic_counters;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_ballot;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_bit_encoding;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_clock;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_draw_parameters;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_group_vote;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_load_store;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_size;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_objects;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_precision;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_stencil_export;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_storage_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_subroutine;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_image_samples;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_lod;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_viewport_layer_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_100;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_420pack;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_include;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_packing;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow_ambient;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture2;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_spirv_extensions;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_stencil_texturing;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_barrier;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_border_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object_rgb32;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_range;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_bptc;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_rgtc;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_filter_anisotropic;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_filter_minmax;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirror_clamp_to_edge;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirrored_repeat;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_non_power_of_two;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_levels;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_lod;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rectangle;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rg;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rgb10_a2ui;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_stencil8;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_swizzle;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_view;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_timer_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback2;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback3;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_instanced;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_overflow_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transpose_matrix;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_uniform_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_bgra;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_64bit;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_binding;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_blend;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_program;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_10f_11f_11f_rev;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARM_mali_program_binary;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARM_mali_shader_binary;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARM_rgba8;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARM_shader_framebuffer_fetch;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARM_shader_framebuffer_fetch_depth_stencil;
-GLEW_VAR_EXPORT GLboolean __GLEW_ARM_texture_unnormalized_coordinates;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_route;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_vertex_shader_output_point_size;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_draw_buffers;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_element_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_envmap_bumpmap;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_fragment_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_map_object_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_meminfo;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_pn_triangles;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_separate_stencil;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_shader_texture_lod;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_text_fragment_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_compression_3dc;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_env_combine3;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_mirror_once;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_array_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_attrib_array_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_streams;
-GLEW_VAR_EXPORT GLboolean __GLEW_DMP_program_binary;
-GLEW_VAR_EXPORT GLboolean __GLEW_DMP_shader_binary;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_422_pixels;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_Cg_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_external_wrap_modes;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_storage;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_sync;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_YUV_target;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_abgr;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_base_instance;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bgra;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bindable_uniform;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_color;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_equation_separate;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_extended;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_separate;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_logic_op;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_minmax;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_subtract;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_buffer_storage;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clear_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_control;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_cull_distance;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_volume_hint;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cmyka;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_buffer_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_buffer_half_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_subtable;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compiled_vertex_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compressed_ETC1_RGB8_sub_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_conservative_depth;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_convolution;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_image;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_label;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_marker;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_discard_framebuffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_disjoint_timer_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers_indexed;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_elements_base_vertex;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_transform_feedback;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_external_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_float_blend;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fog_coord;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_frag_depth;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_lighting;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_sRGB;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_point_size;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader4;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_program_parameters;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader4;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader5;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_histogram;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_array_formats;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_func;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_material;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_instanced_arrays;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_light_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_map_buffer_range;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object_fd;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object_win32;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_misc_attribute;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_arrays;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_indirect;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiple_textures;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample_compatibility;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisampled_render_to_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisampled_render_to_texture2;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_draw_buffers;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_tessellation_geometry_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_texture_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_timer_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_occlusion_query_boolean;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_depth_stencil;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_pixels;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_paletted_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform_color_table;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_post_depth_coverage;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_primitive_bounding_box;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_protected_textures;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pvrtc_sRGB;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_raster_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_read_format_bgra;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_render_snorm;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_robustness;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sRGB;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sRGB_write_control;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore_fd;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore_win32;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_framebuffer_fetch;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_framebuffer_fetch_non_coherent;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_group_vote;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_formatted;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_implicit_conversions;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_integer_mix;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_io_blocks;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_non_constant_global_initializers;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_pixel_local_storage;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_pixel_local_storage2;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_texture_lod;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_samplers;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sparse_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sparse_texture2;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_static_vertex_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_two_side;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_wrap;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_subtexture;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_tessellation_point_size;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_tessellation_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture3D;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_border_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_astc_decode_mode;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_bptc;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_dxt1;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_latc;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_rgtc;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc_srgb;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_edge_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_add;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_combine;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_dot3;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_anisotropic;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_minmax;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_format_BGRA8888;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_format_sRGB_override;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_integer;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_lod_bias;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp_to_edge;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_norm16;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_query_lod;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rg;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_R8;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_RG8;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_decode;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shadow_lod;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_storage;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_type_2_10_10_10_REV;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_view;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_unpack_subimage;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_setXXX;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_win32_keyed_mutex;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_window_rectangles;
-GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_FJ_shader_binary_GCCSO;
-GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator;
-GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker;
-GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes;
-GLEW_VAR_EXPORT GLboolean __GLEW_HP_image_transform;
-GLEW_VAR_EXPORT GLboolean __GLEW_HP_occlusion_test;
-GLEW_VAR_EXPORT GLboolean __GLEW_HP_texture_lighting;
-GLEW_VAR_EXPORT GLboolean __GLEW_IBM_cull_vertex;
-GLEW_VAR_EXPORT GLboolean __GLEW_IBM_multimode_draw_arrays;
-GLEW_VAR_EXPORT GLboolean __GLEW_IBM_rasterpos_clip;
-GLEW_VAR_EXPORT GLboolean __GLEW_IBM_static_data;
-GLEW_VAR_EXPORT GLboolean __GLEW_IBM_texture_mirrored_repeat;
-GLEW_VAR_EXPORT GLboolean __GLEW_IBM_vertex_array_lists;
-GLEW_VAR_EXPORT GLboolean __GLEW_IMG_bindless_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_IMG_framebuffer_downsample;
-GLEW_VAR_EXPORT GLboolean __GLEW_IMG_multisampled_render_to_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_IMG_program_binary;
-GLEW_VAR_EXPORT GLboolean __GLEW_IMG_read_format;
-GLEW_VAR_EXPORT GLboolean __GLEW_IMG_shader_binary;
-GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_compression_pvrtc;
-GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_compression_pvrtc2;
-GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_env_enhanced_fixed_function;
-GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_filter_cubic;
-GLEW_VAR_EXPORT GLboolean __GLEW_INGR_color_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_INGR_interlace_read;
-GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_blackhole_render;
-GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_conservative_rasterization;
-GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_fragment_shader_ordering;
-GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_framebuffer_CMAA;
-GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_map_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_parallel_arrays;
-GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_performance_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_shader_integer_functions2;
-GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_texture_scissor;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced_coherent;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_context_flush_control;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_debug;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_no_error;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_parallel_shader_compile;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robust_buffer_access_behavior;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robustness;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_shader_subgroup;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_hdr;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_ldr;
-GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_sliced_3d;
-GLEW_VAR_EXPORT GLboolean __GLEW_KTX_buffer_region;
-GLEW_VAR_EXPORT GLboolean __GLEW_MESAX_texture_stack;
-GLEW_VAR_EXPORT GLboolean __GLEW_MESA_framebuffer_flip_y;
-GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert;
-GLEW_VAR_EXPORT GLboolean __GLEW_MESA_program_binary_formats;
-GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers;
-GLEW_VAR_EXPORT GLboolean __GLEW_MESA_shader_integer_functions;
-GLEW_VAR_EXPORT GLboolean __GLEW_MESA_tile_raster_order;
-GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos;
-GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_NVX_blend_equation_advanced_multi_draw_buffers;
-GLEW_VAR_EXPORT GLboolean __GLEW_NVX_conditional_render;
-GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info;
-GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_multicast2;
-GLEW_VAR_EXPORT GLboolean __GLEW_NVX_linked_gpu_multicast;
-GLEW_VAR_EXPORT GLboolean __GLEW_NVX_progress_fence;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_3dvision_settings;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_EGL_stream_consumer_external;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_alpha_to_coverage_dither_control;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_bgr;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect_count;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced_coherent;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_minmax_factor;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_clip_space_w_scaling;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_command_list;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_compute_program5;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_compute_shader_derivatives;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_dilate;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_pre_snap;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_pre_snap_triangles;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_underestimation;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_deep_texture3D;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_nonlinear;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_buffers;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_instanced;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_vulkan_image;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_attrib_location;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_fbo_color_attachments;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_fill_rectangle;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_fog_distance;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_coverage_to_color;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program2;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program4;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program_option;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_shader_barycentric;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_shader_interlock;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_blit;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_mixed_samples;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_generate_mipmap_sRGB;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader_passthrough;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_multicast;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5_mem_extended;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_image_formats;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_instanced_arrays;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_internalformat_sample_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_memory_attachment;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_mesh_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_non_square_matrices;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_pack_subimage;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_float_linear;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering_shared_edge;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_platform_binary;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_polygon_mode;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_query_resource_tag;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_buffer_front;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_depth;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_depth_stencil;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_stencil;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_representative_fragment_test;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_robustness_video_memory_purge;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_sRGB_formats;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_locations;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_mask_override_coverage;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_scissor_exclusive;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_counters;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float64;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_fp16_vector;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_int64;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_noperspective_interpolation;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_storage_buffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_subgroup_partitioned;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_texture_footprint;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_group;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_shuffle;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shading_rate_image;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shadow_samplers_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_shadow_samplers_cube;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_stereo_view_rendering;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_border_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_latc;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_s3tc;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_s3tc_update;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_npot_2D_mipmap;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle_compressed;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_uniform_buffer_unified_memory;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop2;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_buffer_unified_memory;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program1_1;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_array2;
-GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_swizzle;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image_external;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image_external_essl3;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_equation_separate;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_func_separate;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_subtract;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_ETC1_RGB8_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_copy_image;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth24;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth32;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth_texture_cube_map;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_draw_buffers_indexed;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_draw_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_element_index_uint;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_extended_matrix_palette;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_fbo_render_mipmap;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_fragment_precision_high;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_framebuffer_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_geometry_point_size;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_geometry_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_get_program_binary;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_gpu_shader5;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_mapbuffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_matrix_get;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_matrix_palette;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_packed_depth_stencil;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_point_size_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_point_sprite;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_required_internalformat;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_rgb8_rgba8;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_sample_shading;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_sample_variables;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_image_atomic;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_io_blocks;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_multisample_interpolation;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_single_precision;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_standard_derivatives;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil1;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil4;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil8;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_surfaceless_context;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_tessellation_point_size;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_tessellation_shader;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_3D;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_border_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_compression_astc;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_cube_map;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_cube_map_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_env_crossbar;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_mirrored_repeat;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_npot;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_stencil8;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_storage_multisample_2d_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_view;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_array_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_half_float;
-GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_type_10_10_10_2;
-GLEW_VAR_EXPORT GLboolean __GLEW_OML_interlace;
-GLEW_VAR_EXPORT GLboolean __GLEW_OML_resample;
-GLEW_VAR_EXPORT GLboolean __GLEW_OML_subsample;
-GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview;
-GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview2;
-GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview_multisampled_render_to_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_PGI_misc_hints;
-GLEW_VAR_EXPORT GLboolean __GLEW_PGI_vertex_hints;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_YUV_texture_gather;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_alpha_test;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_binning_control;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_driver_control;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_extended_get;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_extended_get2;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_framebuffer_foveated;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_perfmon_global_mode;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_shader_framebuffer_fetch_noncoherent;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_shader_framebuffer_fetch_rate;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_texture_foveated;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_texture_foveated_subsampled_layout;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_tiled_rendering;
-GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_writeonly_rendering;
-GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_0_compatibility;
-GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_1_compatibility;
-GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_enable;
-GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_error_string;
-GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_extension_query;
-GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_log;
-GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_proc_address;
-GLEW_VAR_EXPORT GLboolean __GLEW_REND_screen_coordinates;
-GLEW_VAR_EXPORT GLboolean __GLEW_S3_s3tc;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_clip_band_hint;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_color_range;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_detail_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_line_texgen;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multitexture;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_shared_multisample;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_edge_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_filter4;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_lod;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_select;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_g_instruments;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_r_instruments;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_timer_instruments;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_cadd;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_cmultiply;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_calligraphic_fragment;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_color_matrix_accuracy;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_color_table_index_mode;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_complex_polar;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_cube_map;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_cylinder_texgen;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_datapipe;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_decimation;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_pass_instrument;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_dvc;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_blend;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_factor_to_alpha;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_layers;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_patchy;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_scale;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_lighting_space;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_specular_lighting;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragments_instrument;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_framezoom;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_icc_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_igloo_interface;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_image_compression;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_impact_pixel_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_instrument_error;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_interlace;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ir_instrument1;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_line_quality_hint;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_list_priority;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_mpeg1;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_mpeg2;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_nonlinear_lighting_pervertex;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_nurbs_eval;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_occlusion_instrument;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_packed_6bytes;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_bits;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_lod;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_tiles;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_polynomial_ffd;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_quad_mesh;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_reference_plane;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_resample;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_scalebias_hint;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow_ambient;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_slim;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_spotlight_cutoff;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_sprite;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_subdiv_patch;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_subsample;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_tag_sample_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_add_env;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_coordinate_clamp;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_lod_bias;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_mipmap_anisotropic;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_multi_buffer;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_phase;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_range;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_scale_bias;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_supersample;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vector_ops;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_array_object;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip_hint;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb_subsample;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcba;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_matrix;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_table;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGI_complex;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGI_complex_type;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGI_fft;
-GLEW_VAR_EXPORT GLboolean __GLEW_SGI_texture_color_table;
-GLEW_VAR_EXPORT GLboolean __GLEW_SUNX_constant_data;
-GLEW_VAR_EXPORT GLboolean __GLEW_SUN_convolution_border_modes;
-GLEW_VAR_EXPORT GLboolean __GLEW_SUN_global_alpha;
-GLEW_VAR_EXPORT GLboolean __GLEW_SUN_mesh_array;
-GLEW_VAR_EXPORT GLboolean __GLEW_SUN_read_video_pixels;
-GLEW_VAR_EXPORT GLboolean __GLEW_SUN_slice_accum;
-GLEW_VAR_EXPORT GLboolean __GLEW_SUN_triangle_list;
-GLEW_VAR_EXPORT GLboolean __GLEW_SUN_vertex;
-GLEW_VAR_EXPORT GLboolean __GLEW_VIV_shader_binary;
-GLEW_VAR_EXPORT GLboolean __GLEW_WIN_phong_shading;
-GLEW_VAR_EXPORT GLboolean __GLEW_WIN_scene_markerXXX;
-GLEW_VAR_EXPORT GLboolean __GLEW_WIN_specular_fog;
-GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint;
-/* ------------------------------------------------------------------------- */
-
-/* error codes */
-#define GLEW_OK 0
-#define GLEW_NO_ERROR 0
-#define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */
-#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */
-#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */
-#define GLEW_ERROR_NO_GLX_DISPLAY 4 /* Need GLX display for GLX support */
-
-/* string codes */
-#define GLEW_VERSION 1
-#define GLEW_VERSION_MAJOR 2
-#define GLEW_VERSION_MINOR 3
-#define GLEW_VERSION_MICRO 4
-
-/* ------------------------------------------------------------------------- */
-
-/* GLEW version info */
-
-/*
-VERSION 2.2.0
-VERSION_MAJOR 2
-VERSION_MINOR 2
-VERSION_MICRO 0
-*/
-
-/* API */
-GLEWAPI GLenum GLEWAPIENTRY glewInit (void);
-GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name);
-#define glewIsExtensionSupported(x) glewIsSupported(x)
-
-#ifndef GLEW_GET_VAR
-#define GLEW_GET_VAR(x) (*(const GLboolean*)&x)
-#endif
-
-#ifndef GLEW_GET_FUN
-#define GLEW_GET_FUN(x) x
-#endif
-
-GLEWAPI GLboolean glewExperimental;
-GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name);
-GLEWAPI const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error);
-GLEWAPI const GLubyte * GLEWAPIENTRY glewGetString (GLenum name);
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifdef GLEW_APIENTRY_DEFINED
-#undef GLEW_APIENTRY_DEFINED
-#undef APIENTRY
-#endif
-
-#ifdef GLEW_CALLBACK_DEFINED
-#undef GLEW_CALLBACK_DEFINED
-#undef CALLBACK
-#endif
-
-#ifdef GLEW_WINGDIAPI_DEFINED
-#undef GLEW_WINGDIAPI_DEFINED
-#undef WINGDIAPI
-#endif
-
-#undef GLAPI
-/* #undef GLEWAPI */
-
-#endif /* __glew_h__ */
diff --git a/deps/GLEW/glew/include/GL/glxew.h b/deps/GLEW/glew/include/GL/glxew.h
deleted file mode 100644
index 0474ed5ed8..0000000000
--- a/deps/GLEW/glew/include/GL/glxew.h
+++ /dev/null
@@ -1,1831 +0,0 @@
-/*
-** The OpenGL Extension Wrangler Library
-** Copyright (C) 2008-2019, Nigel Stewart
-** Copyright (C) 2002-2008, Milan Ikits
-** Copyright (C) 2002-2008, Marcelo E. Magallon
-** Copyright (C) 2002, Lev Povalahev
-** All rights reserved.
-**
-** Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are met:
-**
-** * Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** * The name of the author may be used to endorse or promote products
-** derived from this software without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-** THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
- * Mesa 3-D graphics library
- * Version: 7.0
- *
- * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/*
-** Copyright (c) 2007 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-#ifndef __glxew_h__
-#define __glxew_h__
-#define __GLXEW_H__
-
-#ifdef __glxext_h_
-#error glxext.h included before glxew.h
-#endif
-
-#if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__)
-#error glx.h included before glxew.h
-#endif
-
-#define __glxext_h_
-
-#define GLX_H
-#define __GLX_glx_h__
-#define __glx_h__
-
-#include
-#include
-#include
-
-#ifndef GLEW_INCLUDE
-# include
-#else
-# include GLEW_INCLUDE
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* ---------------------------- GLX_VERSION_1_0 --------------------------- */
-
-#ifndef GLX_VERSION_1_0
-#define GLX_VERSION_1_0 1
-
-#define GLX_USE_GL 1
-#define GLX_BUFFER_SIZE 2
-#define GLX_LEVEL 3
-#define GLX_RGBA 4
-#define GLX_DOUBLEBUFFER 5
-#define GLX_STEREO 6
-#define GLX_AUX_BUFFERS 7
-#define GLX_RED_SIZE 8
-#define GLX_GREEN_SIZE 9
-#define GLX_BLUE_SIZE 10
-#define GLX_ALPHA_SIZE 11
-#define GLX_DEPTH_SIZE 12
-#define GLX_STENCIL_SIZE 13
-#define GLX_ACCUM_RED_SIZE 14
-#define GLX_ACCUM_GREEN_SIZE 15
-#define GLX_ACCUM_BLUE_SIZE 16
-#define GLX_ACCUM_ALPHA_SIZE 17
-#define GLX_BAD_SCREEN 1
-#define GLX_BAD_ATTRIBUTE 2
-#define GLX_NO_EXTENSION 3
-#define GLX_BAD_VISUAL 4
-#define GLX_BAD_CONTEXT 5
-#define GLX_BAD_VALUE 6
-#define GLX_BAD_ENUM 7
-
-typedef XID GLXDrawable;
-typedef XID GLXPixmap;
-#ifdef __sun
-typedef struct __glXContextRec *GLXContext;
-#else
-typedef struct __GLXcontextRec *GLXContext;
-#endif
-
-typedef unsigned int GLXVideoDeviceNV;
-
-extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase);
-extern Bool glXQueryVersion (Display *dpy, int *major, int *minor);
-extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value);
-extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList);
-extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap);
-extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix);
-extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
-extern void glXDestroyContext (Display *dpy, GLXContext ctx);
-extern Bool glXIsDirect (Display *dpy, GLXContext ctx);
-extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask);
-extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx);
-extern GLXContext glXGetCurrentContext (void);
-extern GLXDrawable glXGetCurrentDrawable (void);
-extern void glXWaitGL (void);
-extern void glXWaitX (void);
-extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable);
-extern void glXUseXFont (Font font, int first, int count, int listBase);
-
-#define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0)
-
-#endif /* GLX_VERSION_1_0 */
-
-/* ---------------------------- GLX_VERSION_1_1 --------------------------- */
-
-#ifndef GLX_VERSION_1_1
-#define GLX_VERSION_1_1
-
-#define GLX_VENDOR 0x1
-#define GLX_VERSION 0x2
-#define GLX_EXTENSIONS 0x3
-
-extern const char* glXQueryExtensionsString (Display *dpy, int screen);
-extern const char* glXGetClientString (Display *dpy, int name);
-extern const char* glXQueryServerString (Display *dpy, int screen, int name);
-
-#define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1)
-
-#endif /* GLX_VERSION_1_1 */
-
-/* ---------------------------- GLX_VERSION_1_2 ---------------------------- */
-
-#ifndef GLX_VERSION_1_2
-#define GLX_VERSION_1_2 1
-
-typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void);
-
-#define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay)
-
-#define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2)
-
-#endif /* GLX_VERSION_1_2 */
-
-/* ---------------------------- GLX_VERSION_1_3 ---------------------------- */
-
-#ifndef GLX_VERSION_1_3
-#define GLX_VERSION_1_3 1
-
-#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
-#define GLX_RGBA_BIT 0x00000001
-#define GLX_WINDOW_BIT 0x00000001
-#define GLX_COLOR_INDEX_BIT 0x00000002
-#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
-#define GLX_PIXMAP_BIT 0x00000002
-#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
-#define GLX_PBUFFER_BIT 0x00000004
-#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
-#define GLX_AUX_BUFFERS_BIT 0x00000010
-#define GLX_CONFIG_CAVEAT 0x20
-#define GLX_DEPTH_BUFFER_BIT 0x00000020
-#define GLX_X_VISUAL_TYPE 0x22
-#define GLX_TRANSPARENT_TYPE 0x23
-#define GLX_TRANSPARENT_INDEX_VALUE 0x24
-#define GLX_TRANSPARENT_RED_VALUE 0x25
-#define GLX_TRANSPARENT_GREEN_VALUE 0x26
-#define GLX_TRANSPARENT_BLUE_VALUE 0x27
-#define GLX_TRANSPARENT_ALPHA_VALUE 0x28
-#define GLX_STENCIL_BUFFER_BIT 0x00000040
-#define GLX_ACCUM_BUFFER_BIT 0x00000080
-#define GLX_NONE 0x8000
-#define GLX_SLOW_CONFIG 0x8001
-#define GLX_TRUE_COLOR 0x8002
-#define GLX_DIRECT_COLOR 0x8003
-#define GLX_PSEUDO_COLOR 0x8004
-#define GLX_STATIC_COLOR 0x8005
-#define GLX_GRAY_SCALE 0x8006
-#define GLX_STATIC_GRAY 0x8007
-#define GLX_TRANSPARENT_RGB 0x8008
-#define GLX_TRANSPARENT_INDEX 0x8009
-#define GLX_VISUAL_ID 0x800B
-#define GLX_SCREEN 0x800C
-#define GLX_NON_CONFORMANT_CONFIG 0x800D
-#define GLX_DRAWABLE_TYPE 0x8010
-#define GLX_RENDER_TYPE 0x8011
-#define GLX_X_RENDERABLE 0x8012
-#define GLX_FBCONFIG_ID 0x8013
-#define GLX_RGBA_TYPE 0x8014
-#define GLX_COLOR_INDEX_TYPE 0x8015
-#define GLX_MAX_PBUFFER_WIDTH 0x8016
-#define GLX_MAX_PBUFFER_HEIGHT 0x8017
-#define GLX_MAX_PBUFFER_PIXELS 0x8018
-#define GLX_PRESERVED_CONTENTS 0x801B
-#define GLX_LARGEST_PBUFFER 0x801C
-#define GLX_WIDTH 0x801D
-#define GLX_HEIGHT 0x801E
-#define GLX_EVENT_MASK 0x801F
-#define GLX_DAMAGED 0x8020
-#define GLX_SAVED 0x8021
-#define GLX_WINDOW 0x8022
-#define GLX_PBUFFER 0x8023
-#define GLX_PBUFFER_HEIGHT 0x8040
-#define GLX_PBUFFER_WIDTH 0x8041
-#define GLX_PBUFFER_CLOBBER_MASK 0x08000000
-#define GLX_DONT_CARE 0xFFFFFFFF
-
-typedef XID GLXFBConfigID;
-typedef XID GLXPbuffer;
-typedef XID GLXWindow;
-typedef struct __GLXFBConfigRec *GLXFBConfig;
-
-typedef struct {
- int event_type;
- int draw_type;
- unsigned long serial;
- Bool send_event;
- Display *display;
- GLXDrawable drawable;
- unsigned int buffer_mask;
- unsigned int aux_buffer;
- int x, y;
- int width, height;
- int count;
-} GLXPbufferClobberEvent;
-typedef union __GLXEvent {
- GLXPbufferClobberEvent glxpbufferclobber;
- long pad[24];
-} GLXEvent;
-
-typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
-typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
-typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
-typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
-typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
-typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
-typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
-typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
-typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
-typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
-typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
-typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
-typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
-typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
-typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
-typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
-typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
-
-#define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig)
-#define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext)
-#define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer)
-#define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap)
-#define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow)
-#define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer)
-#define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap)
-#define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow)
-#define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable)
-#define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib)
-#define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs)
-#define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent)
-#define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig)
-#define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent)
-#define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext)
-#define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable)
-#define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent)
-
-#define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3)
-
-#endif /* GLX_VERSION_1_3 */
-
-/* ---------------------------- GLX_VERSION_1_4 ---------------------------- */
-
-#ifndef GLX_VERSION_1_4
-#define GLX_VERSION_1_4 1
-
-#define GLX_SAMPLE_BUFFERS 100000
-#define GLX_SAMPLES 100001
-
-extern void ( * glXGetProcAddress (const GLubyte *procName)) (void);
-
-#define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4)
-
-#endif /* GLX_VERSION_1_4 */
-
-/* -------------------------- GLX_3DFX_multisample ------------------------- */
-
-#ifndef GLX_3DFX_multisample
-#define GLX_3DFX_multisample 1
-
-#define GLX_SAMPLE_BUFFERS_3DFX 0x8050
-#define GLX_SAMPLES_3DFX 0x8051
-
-#define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample)
-
-#endif /* GLX_3DFX_multisample */
-
-/* ------------------------ GLX_AMD_gpu_association ------------------------ */
-
-#ifndef GLX_AMD_gpu_association
-#define GLX_AMD_gpu_association 1
-
-#define GLX_GPU_VENDOR_AMD 0x1F00
-#define GLX_GPU_RENDERER_STRING_AMD 0x1F01
-#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
-#define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
-#define GLX_GPU_RAM_AMD 0x21A3
-#define GLX_GPU_CLOCK_AMD 0x21A4
-#define GLX_GPU_NUM_PIPES_AMD 0x21A5
-#define GLX_GPU_NUM_SIMD_AMD 0x21A6
-#define GLX_GPU_NUM_RB_AMD 0x21A7
-#define GLX_GPU_NUM_SPI_AMD 0x21A8
-
-typedef void ( * PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC) (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-typedef GLXContext ( * PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC) (unsigned int id, GLXContext share_list);
-typedef GLXContext ( * PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (unsigned int id, GLXContext share_context, const int* attribList);
-typedef Bool ( * PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC) (GLXContext ctx);
-typedef unsigned int ( * PFNGLXGETCONTEXTGPUIDAMDPROC) (GLXContext ctx);
-typedef GLXContext ( * PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
-typedef unsigned int ( * PFNGLXGETGPUIDSAMDPROC) (unsigned int maxCount, unsigned int* ids);
-typedef int ( * PFNGLXGETGPUINFOAMDPROC) (unsigned int id, int property, GLenum dataType, unsigned int size, void* data);
-typedef Bool ( * PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (GLXContext ctx);
-
-#define glXBlitContextFramebufferAMD GLXEW_GET_FUN(__glewXBlitContextFramebufferAMD)
-#define glXCreateAssociatedContextAMD GLXEW_GET_FUN(__glewXCreateAssociatedContextAMD)
-#define glXCreateAssociatedContextAttribsAMD GLXEW_GET_FUN(__glewXCreateAssociatedContextAttribsAMD)
-#define glXDeleteAssociatedContextAMD GLXEW_GET_FUN(__glewXDeleteAssociatedContextAMD)
-#define glXGetContextGPUIDAMD GLXEW_GET_FUN(__glewXGetContextGPUIDAMD)
-#define glXGetCurrentAssociatedContextAMD GLXEW_GET_FUN(__glewXGetCurrentAssociatedContextAMD)
-#define glXGetGPUIDsAMD GLXEW_GET_FUN(__glewXGetGPUIDsAMD)
-#define glXGetGPUInfoAMD GLXEW_GET_FUN(__glewXGetGPUInfoAMD)
-#define glXMakeAssociatedContextCurrentAMD GLXEW_GET_FUN(__glewXMakeAssociatedContextCurrentAMD)
-
-#define GLXEW_AMD_gpu_association GLXEW_GET_VAR(__GLXEW_AMD_gpu_association)
-
-#endif /* GLX_AMD_gpu_association */
-
-/* --------------------- GLX_ARB_context_flush_control --------------------- */
-
-#ifndef GLX_ARB_context_flush_control
-#define GLX_ARB_context_flush_control 1
-
-#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
-#define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
-#define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
-
-#define GLXEW_ARB_context_flush_control GLXEW_GET_VAR(__GLXEW_ARB_context_flush_control)
-
-#endif /* GLX_ARB_context_flush_control */
-
-/* ------------------------- GLX_ARB_create_context ------------------------ */
-
-#ifndef GLX_ARB_create_context
-#define GLX_ARB_create_context 1
-
-#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
-#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
-#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
-#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
-#define GLX_CONTEXT_FLAGS_ARB 0x2094
-
-typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int* attrib_list);
-
-#define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB)
-
-#define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context)
-
-#endif /* GLX_ARB_create_context */
-
-/* -------------------- GLX_ARB_create_context_no_error -------------------- */
-
-#ifndef GLX_ARB_create_context_no_error
-#define GLX_ARB_create_context_no_error 1
-
-#define GLX_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3
-
-#define GLXEW_ARB_create_context_no_error GLXEW_GET_VAR(__GLXEW_ARB_create_context_no_error)
-
-#endif /* GLX_ARB_create_context_no_error */
-
-/* --------------------- GLX_ARB_create_context_profile -------------------- */
-
-#ifndef GLX_ARB_create_context_profile
-#define GLX_ARB_create_context_profile 1
-
-#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
-#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
-#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
-
-#define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile)
-
-#endif /* GLX_ARB_create_context_profile */
-
-/* ------------------- GLX_ARB_create_context_robustness ------------------- */
-
-#ifndef GLX_ARB_create_context_robustness
-#define GLX_ARB_create_context_robustness 1
-
-#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
-#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252
-#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
-#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261
-
-#define GLXEW_ARB_create_context_robustness GLXEW_GET_VAR(__GLXEW_ARB_create_context_robustness)
-
-#endif /* GLX_ARB_create_context_robustness */
-
-/* ------------------------- GLX_ARB_fbconfig_float ------------------------ */
-
-#ifndef GLX_ARB_fbconfig_float
-#define GLX_ARB_fbconfig_float 1
-
-#define GLX_RGBA_FLOAT_BIT_ARB 0x00000004
-#define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9
-
-#define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float)
-
-#endif /* GLX_ARB_fbconfig_float */
-
-/* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */
-
-#ifndef GLX_ARB_framebuffer_sRGB
-#define GLX_ARB_framebuffer_sRGB 1
-
-#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2
-
-#define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB)
-
-#endif /* GLX_ARB_framebuffer_sRGB */
-
-/* ------------------------ GLX_ARB_get_proc_address ----------------------- */
-
-#ifndef GLX_ARB_get_proc_address
-#define GLX_ARB_get_proc_address 1
-
-extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void);
-
-#define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address)
-
-#endif /* GLX_ARB_get_proc_address */
-
-/* -------------------------- GLX_ARB_multisample -------------------------- */
-
-#ifndef GLX_ARB_multisample
-#define GLX_ARB_multisample 1
-
-#define GLX_SAMPLE_BUFFERS_ARB 100000
-#define GLX_SAMPLES_ARB 100001
-
-#define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample)
-
-#endif /* GLX_ARB_multisample */
-
-/* ---------------- GLX_ARB_robustness_application_isolation --------------- */
-
-#ifndef GLX_ARB_robustness_application_isolation
-#define GLX_ARB_robustness_application_isolation 1
-
-#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
-
-#define GLXEW_ARB_robustness_application_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_application_isolation)
-
-#endif /* GLX_ARB_robustness_application_isolation */
-
-/* ---------------- GLX_ARB_robustness_share_group_isolation --------------- */
-
-#ifndef GLX_ARB_robustness_share_group_isolation
-#define GLX_ARB_robustness_share_group_isolation 1
-
-#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
-
-#define GLXEW_ARB_robustness_share_group_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_share_group_isolation)
-
-#endif /* GLX_ARB_robustness_share_group_isolation */
-
-/* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */
-
-#ifndef GLX_ARB_vertex_buffer_object
-#define GLX_ARB_vertex_buffer_object 1
-
-#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095
-
-#define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object)
-
-#endif /* GLX_ARB_vertex_buffer_object */
-
-/* ----------------------- GLX_ATI_pixel_format_float ---------------------- */
-
-#ifndef GLX_ATI_pixel_format_float
-#define GLX_ATI_pixel_format_float 1
-
-#define GLX_RGBA_FLOAT_ATI_BIT 0x00000100
-
-#define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float)
-
-#endif /* GLX_ATI_pixel_format_float */
-
-/* ------------------------- GLX_ATI_render_texture ------------------------ */
-
-#ifndef GLX_ATI_render_texture
-#define GLX_ATI_render_texture 1
-
-#define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800
-#define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801
-#define GLX_TEXTURE_FORMAT_ATI 0x9802
-#define GLX_TEXTURE_TARGET_ATI 0x9803
-#define GLX_MIPMAP_TEXTURE_ATI 0x9804
-#define GLX_TEXTURE_RGB_ATI 0x9805
-#define GLX_TEXTURE_RGBA_ATI 0x9806
-#define GLX_NO_TEXTURE_ATI 0x9807
-#define GLX_TEXTURE_CUBE_MAP_ATI 0x9808
-#define GLX_TEXTURE_1D_ATI 0x9809
-#define GLX_TEXTURE_2D_ATI 0x980A
-#define GLX_MIPMAP_LEVEL_ATI 0x980B
-#define GLX_CUBE_MAP_FACE_ATI 0x980C
-#define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D
-#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E
-#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F
-#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810
-#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811
-#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812
-#define GLX_FRONT_LEFT_ATI 0x9813
-#define GLX_FRONT_RIGHT_ATI 0x9814
-#define GLX_BACK_LEFT_ATI 0x9815
-#define GLX_BACK_RIGHT_ATI 0x9816
-#define GLX_AUX0_ATI 0x9817
-#define GLX_AUX1_ATI 0x9818
-#define GLX_AUX2_ATI 0x9819
-#define GLX_AUX3_ATI 0x981A
-#define GLX_AUX4_ATI 0x981B
-#define GLX_AUX5_ATI 0x981C
-#define GLX_AUX6_ATI 0x981D
-#define GLX_AUX7_ATI 0x981E
-#define GLX_AUX8_ATI 0x981F
-#define GLX_AUX9_ATI 0x9820
-#define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821
-#define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822
-
-typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer);
-typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list);
-typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer);
-
-#define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI)
-#define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI)
-#define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI)
-
-#define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture)
-
-#endif /* GLX_ATI_render_texture */
-
-/* --------------------------- GLX_EXT_buffer_age -------------------------- */
-
-#ifndef GLX_EXT_buffer_age
-#define GLX_EXT_buffer_age 1
-
-#define GLX_BACK_BUFFER_AGE_EXT 0x20F4
-
-#define GLXEW_EXT_buffer_age GLXEW_GET_VAR(__GLXEW_EXT_buffer_age)
-
-#endif /* GLX_EXT_buffer_age */
-
-/* ------------------------ GLX_EXT_context_priority ----------------------- */
-
-#ifndef GLX_EXT_context_priority
-#define GLX_EXT_context_priority 1
-
-#define GLX_CONTEXT_PRIORITY_LEVEL_EXT 0x3100
-#define GLX_CONTEXT_PRIORITY_HIGH_EXT 0x3101
-#define GLX_CONTEXT_PRIORITY_MEDIUM_EXT 0x3102
-#define GLX_CONTEXT_PRIORITY_LOW_EXT 0x3103
-
-#define GLXEW_EXT_context_priority GLXEW_GET_VAR(__GLXEW_EXT_context_priority)
-
-#endif /* GLX_EXT_context_priority */
-
-/* ------------------- GLX_EXT_create_context_es2_profile ------------------ */
-
-#ifndef GLX_EXT_create_context_es2_profile
-#define GLX_EXT_create_context_es2_profile 1
-
-#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
-
-#define GLXEW_EXT_create_context_es2_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es2_profile)
-
-#endif /* GLX_EXT_create_context_es2_profile */
-
-/* ------------------- GLX_EXT_create_context_es_profile ------------------- */
-
-#ifndef GLX_EXT_create_context_es_profile
-#define GLX_EXT_create_context_es_profile 1
-
-#define GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
-
-#define GLXEW_EXT_create_context_es_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es_profile)
-
-#endif /* GLX_EXT_create_context_es_profile */
-
-/* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */
-
-#ifndef GLX_EXT_fbconfig_packed_float
-#define GLX_EXT_fbconfig_packed_float 1
-
-#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
-#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
-
-#define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float)
-
-#endif /* GLX_EXT_fbconfig_packed_float */
-
-/* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */
-
-#ifndef GLX_EXT_framebuffer_sRGB
-#define GLX_EXT_framebuffer_sRGB 1
-
-#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
-
-#define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB)
-
-#endif /* GLX_EXT_framebuffer_sRGB */
-
-/* ------------------------- GLX_EXT_import_context ------------------------ */
-
-#ifndef GLX_EXT_import_context
-#define GLX_EXT_import_context 1
-
-#define GLX_SHARE_CONTEXT_EXT 0x800A
-#define GLX_VISUAL_ID_EXT 0x800B
-#define GLX_SCREEN_EXT 0x800C
-
-typedef XID GLXContextID;
-
-typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context);
-typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context);
-typedef Display* ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void);
-typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID);
-typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute, int* value);
-
-#define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT)
-#define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT)
-#define glXGetCurrentDisplayEXT GLXEW_GET_FUN(__glewXGetCurrentDisplayEXT)
-#define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT)
-#define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT)
-
-#define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context)
-
-#endif /* GLX_EXT_import_context */
-
-/* ---------------------------- GLX_EXT_libglvnd --------------------------- */
-
-#ifndef GLX_EXT_libglvnd
-#define GLX_EXT_libglvnd 1
-
-#define GLX_VENDOR_NAMES_EXT 0x20F6
-
-#define GLXEW_EXT_libglvnd GLXEW_GET_VAR(__GLXEW_EXT_libglvnd)
-
-#endif /* GLX_EXT_libglvnd */
-
-/* ----------------------- GLX_EXT_no_config_context ----------------------- */
-
-#ifndef GLX_EXT_no_config_context
-#define GLX_EXT_no_config_context 1
-
-#define GLXEW_EXT_no_config_context GLXEW_GET_VAR(__GLXEW_EXT_no_config_context)
-
-#endif /* GLX_EXT_no_config_context */
-
-/* -------------------------- GLX_EXT_scene_marker ------------------------- */
-
-#ifndef GLX_EXT_scene_marker
-#define GLX_EXT_scene_marker 1
-
-#define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker)
-
-#endif /* GLX_EXT_scene_marker */
-
-/* -------------------------- GLX_EXT_stereo_tree -------------------------- */
-
-#ifndef GLX_EXT_stereo_tree
-#define GLX_EXT_stereo_tree 1
-
-#define GLX_STEREO_NOTIFY_EXT 0x00000000
-#define GLX_STEREO_NOTIFY_MASK_EXT 0x00000001
-#define GLX_STEREO_TREE_EXT 0x20F5
-
-#define GLXEW_EXT_stereo_tree GLXEW_GET_VAR(__GLXEW_EXT_stereo_tree)
-
-#endif /* GLX_EXT_stereo_tree */
-
-/* -------------------------- GLX_EXT_swap_control ------------------------- */
-
-#ifndef GLX_EXT_swap_control
-#define GLX_EXT_swap_control 1
-
-#define GLX_SWAP_INTERVAL_EXT 0x20F1
-#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
-
-typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval);
-
-#define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT)
-
-#define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control)
-
-#endif /* GLX_EXT_swap_control */
-
-/* ----------------------- GLX_EXT_swap_control_tear ----------------------- */
-
-#ifndef GLX_EXT_swap_control_tear
-#define GLX_EXT_swap_control_tear 1
-
-#define GLX_LATE_SWAPS_TEAR_EXT 0x20F3
-
-#define GLXEW_EXT_swap_control_tear GLXEW_GET_VAR(__GLXEW_EXT_swap_control_tear)
-
-#endif /* GLX_EXT_swap_control_tear */
-
-/* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */
-
-#ifndef GLX_EXT_texture_from_pixmap
-#define GLX_EXT_texture_from_pixmap 1
-
-#define GLX_TEXTURE_1D_BIT_EXT 0x00000001
-#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
-#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
-#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
-#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
-#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
-#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
-#define GLX_Y_INVERTED_EXT 0x20D4
-#define GLX_TEXTURE_FORMAT_EXT 0x20D5
-#define GLX_TEXTURE_TARGET_EXT 0x20D6
-#define GLX_MIPMAP_TEXTURE_EXT 0x20D7
-#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
-#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
-#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
-#define GLX_TEXTURE_1D_EXT 0x20DB
-#define GLX_TEXTURE_2D_EXT 0x20DC
-#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
-#define GLX_FRONT_EXT 0x20DE
-#define GLX_FRONT_LEFT_EXT 0x20DE
-#define GLX_FRONT_RIGHT_EXT 0x20DF
-#define GLX_BACK_EXT 0x20E0
-#define GLX_BACK_LEFT_EXT 0x20E0
-#define GLX_BACK_RIGHT_EXT 0x20E1
-#define GLX_AUX0_EXT 0x20E2
-#define GLX_AUX1_EXT 0x20E3
-#define GLX_AUX2_EXT 0x20E4
-#define GLX_AUX3_EXT 0x20E5
-#define GLX_AUX4_EXT 0x20E6
-#define GLX_AUX5_EXT 0x20E7
-#define GLX_AUX6_EXT 0x20E8
-#define GLX_AUX7_EXT 0x20E9
-#define GLX_AUX8_EXT 0x20EA
-#define GLX_AUX9_EXT 0x20EB
-
-typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* dpy, GLXDrawable drawable, int buffer, const int* attrib_list);
-typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* dpy, GLXDrawable drawable, int buffer);
-
-#define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT)
-#define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT)
-
-#define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap)
-
-#endif /* GLX_EXT_texture_from_pixmap */
-
-/* -------------------------- GLX_EXT_visual_info -------------------------- */
-
-#ifndef GLX_EXT_visual_info
-#define GLX_EXT_visual_info 1
-
-#define GLX_X_VISUAL_TYPE_EXT 0x22
-#define GLX_TRANSPARENT_TYPE_EXT 0x23
-#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
-#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
-#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
-#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
-#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
-#define GLX_NONE_EXT 0x8000
-#define GLX_TRUE_COLOR_EXT 0x8002
-#define GLX_DIRECT_COLOR_EXT 0x8003
-#define GLX_PSEUDO_COLOR_EXT 0x8004
-#define GLX_STATIC_COLOR_EXT 0x8005
-#define GLX_GRAY_SCALE_EXT 0x8006
-#define GLX_STATIC_GRAY_EXT 0x8007
-#define GLX_TRANSPARENT_RGB_EXT 0x8008
-#define GLX_TRANSPARENT_INDEX_EXT 0x8009
-
-#define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info)
-
-#endif /* GLX_EXT_visual_info */
-
-/* ------------------------- GLX_EXT_visual_rating ------------------------- */
-
-#ifndef GLX_EXT_visual_rating
-#define GLX_EXT_visual_rating 1
-
-#define GLX_VISUAL_CAVEAT_EXT 0x20
-#define GLX_SLOW_VISUAL_EXT 0x8001
-#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
-
-#define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating)
-
-#endif /* GLX_EXT_visual_rating */
-
-/* -------------------------- GLX_INTEL_swap_event ------------------------- */
-
-#ifndef GLX_INTEL_swap_event
-#define GLX_INTEL_swap_event 1
-
-#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180
-#define GLX_COPY_COMPLETE_INTEL 0x8181
-#define GLX_FLIP_COMPLETE_INTEL 0x8182
-#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000
-
-#define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event)
-
-#endif /* GLX_INTEL_swap_event */
-
-/* -------------------------- GLX_MESA_agp_offset -------------------------- */
-
-#ifndef GLX_MESA_agp_offset
-#define GLX_MESA_agp_offset 1
-
-typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer);
-
-#define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA)
-
-#define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset)
-
-#endif /* GLX_MESA_agp_offset */
-
-/* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */
-
-#ifndef GLX_MESA_copy_sub_buffer
-#define GLX_MESA_copy_sub_buffer 1
-
-typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height);
-
-#define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA)
-
-#define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer)
-
-#endif /* GLX_MESA_copy_sub_buffer */
-
-/* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */
-
-#ifndef GLX_MESA_pixmap_colormap
-#define GLX_MESA_pixmap_colormap 1
-
-typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo* visual, Pixmap pixmap, Colormap cmap);
-
-#define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA)
-
-#define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap)
-
-#endif /* GLX_MESA_pixmap_colormap */
-
-/* ------------------------ GLX_MESA_query_renderer ------------------------ */
-
-#ifndef GLX_MESA_query_renderer
-#define GLX_MESA_query_renderer 1
-
-#define GLX_RENDERER_VENDOR_ID_MESA 0x8183
-#define GLX_RENDERER_DEVICE_ID_MESA 0x8184
-#define GLX_RENDERER_VERSION_MESA 0x8185
-#define GLX_RENDERER_ACCELERATED_MESA 0x8186
-#define GLX_RENDERER_VIDEO_MEMORY_MESA 0x8187
-#define GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA 0x8188
-#define GLX_RENDERER_PREFERRED_PROFILE_MESA 0x8189
-#define GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA 0x818A
-#define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B
-#define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C
-#define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D
-
-typedef Bool ( * PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC) (int attribute, unsigned int* value);
-typedef const char* ( * PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC) (int attribute);
-typedef Bool ( * PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display* dpy, int screen, int renderer, int attribute, unsigned int* value);
-typedef const char* ( * PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display* dpy, int screen, int renderer, int attribute);
-
-#define glXQueryCurrentRendererIntegerMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererIntegerMESA)
-#define glXQueryCurrentRendererStringMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererStringMESA)
-#define glXQueryRendererIntegerMESA GLXEW_GET_FUN(__glewXQueryRendererIntegerMESA)
-#define glXQueryRendererStringMESA GLXEW_GET_FUN(__glewXQueryRendererStringMESA)
-
-#define GLXEW_MESA_query_renderer GLXEW_GET_VAR(__GLXEW_MESA_query_renderer)
-
-#endif /* GLX_MESA_query_renderer */
-
-/* ------------------------ GLX_MESA_release_buffers ----------------------- */
-
-#ifndef GLX_MESA_release_buffers
-#define GLX_MESA_release_buffers 1
-
-typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable drawable);
-
-#define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA)
-
-#define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers)
-
-#endif /* GLX_MESA_release_buffers */
-
-/* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */
-
-#ifndef GLX_MESA_set_3dfx_mode
-#define GLX_MESA_set_3dfx_mode 1
-
-#define GLX_3DFX_WINDOW_MODE_MESA 0x1
-#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
-
-typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode);
-
-#define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA)
-
-#define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode)
-
-#endif /* GLX_MESA_set_3dfx_mode */
-
-/* ------------------------- GLX_MESA_swap_control ------------------------- */
-
-#ifndef GLX_MESA_swap_control
-#define GLX_MESA_swap_control 1
-
-typedef int ( * PFNGLXGETSWAPINTERVALMESAPROC) (void);
-typedef int ( * PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval);
-
-#define glXGetSwapIntervalMESA GLXEW_GET_FUN(__glewXGetSwapIntervalMESA)
-#define glXSwapIntervalMESA GLXEW_GET_FUN(__glewXSwapIntervalMESA)
-
-#define GLXEW_MESA_swap_control GLXEW_GET_VAR(__GLXEW_MESA_swap_control)
-
-#endif /* GLX_MESA_swap_control */
-
-/* --------------------------- GLX_NV_copy_buffer -------------------------- */
-
-#ifndef GLX_NV_copy_buffer
-#define GLX_NV_copy_buffer 1
-
-typedef void ( * PFNGLXCOPYBUFFERSUBDATANVPROC) (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
-typedef void ( * PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC) (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
-
-#define glXCopyBufferSubDataNV GLXEW_GET_FUN(__glewXCopyBufferSubDataNV)
-#define glXNamedCopyBufferSubDataNV GLXEW_GET_FUN(__glewXNamedCopyBufferSubDataNV)
-
-#define GLXEW_NV_copy_buffer GLXEW_GET_VAR(__GLXEW_NV_copy_buffer)
-
-#endif /* GLX_NV_copy_buffer */
-
-/* --------------------------- GLX_NV_copy_image --------------------------- */
-
-#ifndef GLX_NV_copy_image
-#define GLX_NV_copy_image 1
-
-typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
-
-#define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV)
-
-#define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image)
-
-#endif /* GLX_NV_copy_image */
-
-/* ------------------------ GLX_NV_delay_before_swap ----------------------- */
-
-#ifndef GLX_NV_delay_before_swap
-#define GLX_NV_delay_before_swap 1
-
-typedef Bool ( * PFNGLXDELAYBEFORESWAPNVPROC) (Display* dpy, GLXDrawable drawable, GLfloat seconds);
-
-#define glXDelayBeforeSwapNV GLXEW_GET_FUN(__glewXDelayBeforeSwapNV)
-
-#define GLXEW_NV_delay_before_swap GLXEW_GET_VAR(__GLXEW_NV_delay_before_swap)
-
-#endif /* GLX_NV_delay_before_swap */
-
-/* -------------------------- GLX_NV_float_buffer -------------------------- */
-
-#ifndef GLX_NV_float_buffer
-#define GLX_NV_float_buffer 1
-
-#define GLX_FLOAT_COMPONENTS_NV 0x20B0
-
-#define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer)
-
-#endif /* GLX_NV_float_buffer */
-
-/* ------------------------ GLX_NV_multigpu_context ------------------------ */
-
-#ifndef GLX_NV_multigpu_context
-#define GLX_NV_multigpu_context 1
-
-#define GLX_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA
-#define GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB
-#define GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC
-#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD
-#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE
-
-#define GLXEW_NV_multigpu_context GLXEW_GET_VAR(__GLXEW_NV_multigpu_context)
-
-#endif /* GLX_NV_multigpu_context */
-
-/* ---------------------- GLX_NV_multisample_coverage ---------------------- */
-
-#ifndef GLX_NV_multisample_coverage
-#define GLX_NV_multisample_coverage 1
-
-#define GLX_COLOR_SAMPLES_NV 0x20B3
-#define GLX_COVERAGE_SAMPLES_NV 100001
-
-#define GLXEW_NV_multisample_coverage GLXEW_GET_VAR(__GLXEW_NV_multisample_coverage)
-
-#endif /* GLX_NV_multisample_coverage */
-
-/* -------------------------- GLX_NV_present_video ------------------------- */
-
-#ifndef GLX_NV_present_video
-#define GLX_NV_present_video 1
-
-#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0
-
-typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int* attrib_list);
-typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display* dpy, int screen, int* nelements);
-
-#define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV)
-#define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV)
-
-#define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video)
-
-#endif /* GLX_NV_present_video */
-
-/* ------------------ GLX_NV_robustness_video_memory_purge ----------------- */
-
-#ifndef GLX_NV_robustness_video_memory_purge
-#define GLX_NV_robustness_video_memory_purge 1
-
-#define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7
-
-#define GLXEW_NV_robustness_video_memory_purge GLXEW_GET_VAR(__GLXEW_NV_robustness_video_memory_purge)
-
-#endif /* GLX_NV_robustness_video_memory_purge */
-
-/* --------------------------- GLX_NV_swap_group --------------------------- */
-
-#ifndef GLX_NV_swap_group
-#define GLX_NV_swap_group 1
-
-typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier);
-typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group);
-typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint* count);
-typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint* maxGroups, GLuint* maxBarriers);
-typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint* group, GLuint* barrier);
-typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen);
-
-#define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV)
-#define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV)
-#define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV)
-#define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV)
-#define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV)
-#define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV)
-
-#define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group)
-
-#endif /* GLX_NV_swap_group */
-
-/* ----------------------- GLX_NV_vertex_array_range ----------------------- */
-
-#ifndef GLX_NV_vertex_array_range
-#define GLX_NV_vertex_array_range 1
-
-typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
-typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer);
-
-#define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV)
-#define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV)
-
-#define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range)
-
-#endif /* GLX_NV_vertex_array_range */
-
-/* -------------------------- GLX_NV_video_capture ------------------------- */
-
-#ifndef GLX_NV_video_capture
-#define GLX_NV_video_capture 1
-
-#define GLX_DEVICE_ID_NV 0x20CD
-#define GLX_UNIQUE_ID_NV 0x20CE
-#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
-
-typedef XID GLXVideoCaptureDeviceNV;
-
-typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device);
-typedef GLXVideoCaptureDeviceNV* ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int* nelements);
-typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device);
-typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int* value);
-typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device);
-
-#define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV)
-#define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV)
-#define glXLockVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXLockVideoCaptureDeviceNV)
-#define glXQueryVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXQueryVideoCaptureDeviceNV)
-#define glXReleaseVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoCaptureDeviceNV)
-
-#define GLXEW_NV_video_capture GLXEW_GET_VAR(__GLXEW_NV_video_capture)
-
-#endif /* GLX_NV_video_capture */
-
-/* ---------------------------- GLX_NV_video_out --------------------------- */
-
-#ifndef GLX_NV_video_out
-#define GLX_NV_video_out 1
-
-#define GLX_VIDEO_OUT_COLOR_NV 0x20C3
-#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
-#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5
-#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
-#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
-#define GLX_VIDEO_OUT_FRAME_NV 0x20C8
-#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9
-#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA
-#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB
-#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC
-
-typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
-typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV* pVideoDevice);
-typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long* pulCounterOutputVideo);
-typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice);
-typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf);
-typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long* pulCounterPbuffer, GLboolean bBlock);
-
-#define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV)
-#define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV)
-#define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV)
-#define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV)
-#define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV)
-#define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV)
-
-#define GLXEW_NV_video_out GLXEW_GET_VAR(__GLXEW_NV_video_out)
-
-#endif /* GLX_NV_video_out */
-
-/* -------------------------- GLX_OML_swap_method -------------------------- */
-
-#ifndef GLX_OML_swap_method
-#define GLX_OML_swap_method 1
-
-#define GLX_SWAP_METHOD_OML 0x8060
-#define GLX_SWAP_EXCHANGE_OML 0x8061
-#define GLX_SWAP_COPY_OML 0x8062
-#define GLX_SWAP_UNDEFINED_OML 0x8063
-
-#define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method)
-
-#endif /* GLX_OML_swap_method */
-
-/* -------------------------- GLX_OML_sync_control ------------------------- */
-
-#ifndef GLX_OML_sync_control
-#define GLX_OML_sync_control 1
-
-typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator);
-typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc);
-typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
-typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc);
-typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc);
-
-#define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML)
-#define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML)
-#define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML)
-#define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML)
-#define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML)
-
-#define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control)
-
-#endif /* GLX_OML_sync_control */
-
-/* ------------------------ GLX_SGIS_blended_overlay ----------------------- */
-
-#ifndef GLX_SGIS_blended_overlay
-#define GLX_SGIS_blended_overlay 1
-
-#define GLX_BLENDED_RGBA_SGIS 0x8025
-
-#define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay)
-
-#endif /* GLX_SGIS_blended_overlay */
-
-/* -------------------------- GLX_SGIS_color_range ------------------------- */
-
-#ifndef GLX_SGIS_color_range
-#define GLX_SGIS_color_range 1
-
-#define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range)
-
-#endif /* GLX_SGIS_color_range */
-
-/* -------------------------- GLX_SGIS_multisample ------------------------- */
-
-#ifndef GLX_SGIS_multisample
-#define GLX_SGIS_multisample 1
-
-#define GLX_SAMPLE_BUFFERS_SGIS 100000
-#define GLX_SAMPLES_SGIS 100001
-
-#define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample)
-
-#endif /* GLX_SGIS_multisample */
-
-/* ---------------------- GLX_SGIS_shared_multisample ---------------------- */
-
-#ifndef GLX_SGIS_shared_multisample
-#define GLX_SGIS_shared_multisample 1
-
-#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
-#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
-
-#define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample)
-
-#endif /* GLX_SGIS_shared_multisample */
-
-/* --------------------------- GLX_SGIX_fbconfig --------------------------- */
-
-#ifndef GLX_SGIX_fbconfig
-#define GLX_SGIX_fbconfig 1
-
-#define GLX_RGBA_BIT_SGIX 0x00000001
-#define GLX_WINDOW_BIT_SGIX 0x00000001
-#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
-#define GLX_PIXMAP_BIT_SGIX 0x00000002
-#define GLX_SCREEN_EXT 0x800C
-#define GLX_DRAWABLE_TYPE_SGIX 0x8010
-#define GLX_RENDER_TYPE_SGIX 0x8011
-#define GLX_X_RENDERABLE_SGIX 0x8012
-#define GLX_FBCONFIG_ID_SGIX 0x8013
-#define GLX_RGBA_TYPE_SGIX 0x8014
-#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
-
-typedef XID GLXFBConfigIDSGIX;
-typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
-
-typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display* dpy, int screen, int* attrib_list, int* nelements);
-typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
-typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, Pixmap pixmap);
-typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int* value);
-typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo* vis);
-typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config);
-
-#define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX)
-#define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX)
-#define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX)
-#define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX)
-#define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX)
-#define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX)
-
-#define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig)
-
-#endif /* GLX_SGIX_fbconfig */
-
-/* --------------------------- GLX_SGIX_hyperpipe -------------------------- */
-
-#ifndef GLX_SGIX_hyperpipe
-#define GLX_SGIX_hyperpipe 1
-
-#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
-#define GLX_PIPE_RECT_SGIX 0x00000001
-#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
-#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
-#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003
-#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
-#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
-#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
-#define GLX_BAD_HYPERPIPE_SGIX 92
-#define GLX_HYPERPIPE_ID_SGIX 0x8030
-
-typedef struct {
- char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
- int networkId;
-} GLXHyperpipeNetworkSGIX;
-typedef struct {
- char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
- int XOrigin;
- int YOrigin;
- int maxHeight;
- int maxWidth;
-} GLXPipeRectLimits;
-typedef struct {
- char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
- int channel;
- unsigned int participationType;
- int timeSlice;
-} GLXHyperpipeConfigSGIX;
-typedef struct {
- char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
- int srcXOrigin;
- int srcYOrigin;
- int srcWidth;
- int srcHeight;
- int destXOrigin;
- int destYOrigin;
- int destWidth;
- int destHeight;
-} GLXPipeRect;
-
-typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId);
-typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId);
-typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList);
-typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId);
-typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList);
-typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList);
-typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes);
-typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes);
-
-#define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX)
-#define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX)
-#define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX)
-#define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX)
-#define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX)
-#define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX)
-#define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX)
-#define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX)
-
-#define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe)
-
-#endif /* GLX_SGIX_hyperpipe */
-
-/* ---------------------------- GLX_SGIX_pbuffer --------------------------- */
-
-#ifndef GLX_SGIX_pbuffer
-#define GLX_SGIX_pbuffer 1
-
-#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
-#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
-#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
-#define GLX_PBUFFER_BIT_SGIX 0x00000004
-#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
-#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
-#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
-#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
-#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
-#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
-#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
-#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
-#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
-#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
-#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
-#define GLX_PRESERVED_CONTENTS_SGIX 0x801B
-#define GLX_LARGEST_PBUFFER_SGIX 0x801C
-#define GLX_WIDTH_SGIX 0x801D
-#define GLX_HEIGHT_SGIX 0x801E
-#define GLX_EVENT_MASK_SGIX 0x801F
-#define GLX_DAMAGED_SGIX 0x8020
-#define GLX_SAVED_SGIX 0x8021
-#define GLX_WINDOW_SGIX 0x8022
-#define GLX_PBUFFER_SGIX 0x8023
-#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
-
-typedef XID GLXPbufferSGIX;
-typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX;
-
-typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int* attrib_list);
-typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbufferSGIX pbuf);
-typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long* mask);
-typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int* value);
-typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask);
-
-#define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX)
-#define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX)
-#define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX)
-#define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX)
-#define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX)
-
-#define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer)
-
-#endif /* GLX_SGIX_pbuffer */
-
-/* ------------------------- GLX_SGIX_swap_barrier ------------------------- */
-
-#ifndef GLX_SGIX_swap_barrier
-#define GLX_SGIX_swap_barrier 1
-
-typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display* dpy, GLXDrawable drawable, int barrier);
-typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display* dpy, int screen, int* max);
-
-#define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX)
-#define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX)
-
-#define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier)
-
-#endif /* GLX_SGIX_swap_barrier */
-
-/* -------------------------- GLX_SGIX_swap_group -------------------------- */
-
-#ifndef GLX_SGIX_swap_group
-#define GLX_SGIX_swap_group 1
-
-typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display* dpy, GLXDrawable drawable, GLXDrawable member);
-
-#define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX)
-
-#define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group)
-
-#endif /* GLX_SGIX_swap_group */
-
-/* ------------------------- GLX_SGIX_video_resize ------------------------- */
-
-#ifndef GLX_SGIX_video_resize
-#define GLX_SGIX_video_resize 1
-
-#define GLX_SYNC_FRAME_SGIX 0x00000000
-#define GLX_SYNC_SWAP_SGIX 0x00000001
-
-typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window);
-typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h);
-typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype);
-typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int* x, int* y, int* w, int* h);
-typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int* dx, int* dy, int* dw, int* dh);
-
-#define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX)
-#define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX)
-#define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX)
-#define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX)
-#define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX)
-
-#define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize)
-
-#endif /* GLX_SGIX_video_resize */
-
-/* ---------------------- GLX_SGIX_visual_select_group --------------------- */
-
-#ifndef GLX_SGIX_visual_select_group
-#define GLX_SGIX_visual_select_group 1
-
-#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028
-
-#define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group)
-
-#endif /* GLX_SGIX_visual_select_group */
-
-/* ---------------------------- GLX_SGI_cushion ---------------------------- */
-
-#ifndef GLX_SGI_cushion
-#define GLX_SGI_cushion 1
-
-typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion);
-
-#define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI)
-
-#define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion)
-
-#endif /* GLX_SGI_cushion */
-
-/* ----------------------- GLX_SGI_make_current_read ----------------------- */
-
-#ifndef GLX_SGI_make_current_read
-#define GLX_SGI_make_current_read 1
-
-typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void);
-typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
-
-#define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI)
-#define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI)
-
-#define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read)
-
-#endif /* GLX_SGI_make_current_read */
-
-/* -------------------------- GLX_SGI_swap_control ------------------------- */
-
-#ifndef GLX_SGI_swap_control
-#define GLX_SGI_swap_control 1
-
-typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval);
-
-#define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI)
-
-#define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control)
-
-#endif /* GLX_SGI_swap_control */
-
-/* --------------------------- GLX_SGI_video_sync -------------------------- */
-
-#ifndef GLX_SGI_video_sync
-#define GLX_SGI_video_sync 1
-
-typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int* count);
-typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count);
-
-#define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI)
-#define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI)
-
-#define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync)
-
-#endif /* GLX_SGI_video_sync */
-
-/* --------------------- GLX_SUN_get_transparent_index --------------------- */
-
-#ifndef GLX_SUN_get_transparent_index
-#define GLX_SUN_get_transparent_index 1
-
-typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long* pTransparentIndex);
-
-#define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN)
-
-#define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index)
-
-#endif /* GLX_SUN_get_transparent_index */
-
-/* -------------------------- GLX_SUN_video_resize ------------------------- */
-
-#ifndef GLX_SUN_video_resize
-#define GLX_SUN_video_resize 1
-
-#define GLX_VIDEO_RESIZE_SUN 0x8171
-#define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD
-
-typedef int ( * PFNGLXGETVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float* factor);
-typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float factor);
-
-#define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN)
-#define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN)
-
-#define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize)
-
-#endif /* GLX_SUN_video_resize */
-
-/* ------------------------------------------------------------------------- */
-
-#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT
-#define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT
-
-GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay;
-
-GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig;
-GLXEW_FUN_EXPORT PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext;
-GLXEW_FUN_EXPORT PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer;
-GLXEW_FUN_EXPORT PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap;
-GLXEW_FUN_EXPORT PFNGLXCREATEWINDOWPROC __glewXCreateWindow;
-GLXEW_FUN_EXPORT PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer;
-GLXEW_FUN_EXPORT PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap;
-GLXEW_FUN_EXPORT PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow;
-GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable;
-GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib;
-GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs;
-GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent;
-GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig;
-GLXEW_FUN_EXPORT PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent;
-GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTPROC __glewXQueryContext;
-GLXEW_FUN_EXPORT PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable;
-GLXEW_FUN_EXPORT PFNGLXSELECTEVENTPROC __glewXSelectEvent;
-
-GLXEW_FUN_EXPORT PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC __glewXBlitContextFramebufferAMD;
-GLXEW_FUN_EXPORT PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC __glewXCreateAssociatedContextAMD;
-GLXEW_FUN_EXPORT PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __glewXCreateAssociatedContextAttribsAMD;
-GLXEW_FUN_EXPORT PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC __glewXDeleteAssociatedContextAMD;
-GLXEW_FUN_EXPORT PFNGLXGETCONTEXTGPUIDAMDPROC __glewXGetContextGPUIDAMD;
-GLXEW_FUN_EXPORT PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC __glewXGetCurrentAssociatedContextAMD;
-GLXEW_FUN_EXPORT PFNGLXGETGPUIDSAMDPROC __glewXGetGPUIDsAMD;
-GLXEW_FUN_EXPORT PFNGLXGETGPUINFOAMDPROC __glewXGetGPUInfoAMD;
-GLXEW_FUN_EXPORT PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __glewXMakeAssociatedContextCurrentAMD;
-
-GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB;
-
-GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI;
-GLXEW_FUN_EXPORT PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI;
-GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI;
-
-GLXEW_FUN_EXPORT PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT;
-GLXEW_FUN_EXPORT PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT;
-GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYEXTPROC __glewXGetCurrentDisplayEXT;
-GLXEW_FUN_EXPORT PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT;
-GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT;
-
-GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT;
-
-GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT;
-GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT;
-
-GLXEW_FUN_EXPORT PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA;
-
-GLXEW_FUN_EXPORT PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA;
-
-GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA;
-
-GLXEW_FUN_EXPORT PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC __glewXQueryCurrentRendererIntegerMESA;
-GLXEW_FUN_EXPORT PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC __glewXQueryCurrentRendererStringMESA;
-GLXEW_FUN_EXPORT PFNGLXQUERYRENDERERINTEGERMESAPROC __glewXQueryRendererIntegerMESA;
-GLXEW_FUN_EXPORT PFNGLXQUERYRENDERERSTRINGMESAPROC __glewXQueryRendererStringMESA;
-
-GLXEW_FUN_EXPORT PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA;
-
-GLXEW_FUN_EXPORT PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA;
-
-GLXEW_FUN_EXPORT PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA;
-GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA;
-
-GLXEW_FUN_EXPORT PFNGLXCOPYBUFFERSUBDATANVPROC __glewXCopyBufferSubDataNV;
-GLXEW_FUN_EXPORT PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC __glewXNamedCopyBufferSubDataNV;
-
-GLXEW_FUN_EXPORT PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV;
-
-GLXEW_FUN_EXPORT PFNGLXDELAYBEFORESWAPNVPROC __glewXDelayBeforeSwapNV;
-
-GLXEW_FUN_EXPORT PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV;
-GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV;
-
-GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV;
-GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV;
-GLXEW_FUN_EXPORT PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV;
-GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV;
-GLXEW_FUN_EXPORT PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV;
-GLXEW_FUN_EXPORT PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV;
-
-GLXEW_FUN_EXPORT PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV;
-GLXEW_FUN_EXPORT PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV;
-
-GLXEW_FUN_EXPORT PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV;
-GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV;
-GLXEW_FUN_EXPORT PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV;
-GLXEW_FUN_EXPORT PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV;
-GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV;
-
-GLXEW_FUN_EXPORT PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV;
-GLXEW_FUN_EXPORT PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV;
-GLXEW_FUN_EXPORT PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV;
-GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV;
-GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV;
-GLXEW_FUN_EXPORT PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV;
-
-GLXEW_FUN_EXPORT PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML;
-GLXEW_FUN_EXPORT PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML;
-GLXEW_FUN_EXPORT PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML;
-GLXEW_FUN_EXPORT PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML;
-GLXEW_FUN_EXPORT PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML;
-
-GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX;
-GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX;
-GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX;
-GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX;
-GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX;
-GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX;
-
-GLXEW_FUN_EXPORT PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX;
-GLXEW_FUN_EXPORT PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX;
-GLXEW_FUN_EXPORT PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX;
-GLXEW_FUN_EXPORT PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX;
-GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX;
-GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX;
-GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX;
-GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX;
-
-GLXEW_FUN_EXPORT PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX;
-GLXEW_FUN_EXPORT PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX;
-GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX;
-GLXEW_FUN_EXPORT PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX;
-GLXEW_FUN_EXPORT PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX;
-
-GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX;
-GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX;
-
-GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX;
-
-GLXEW_FUN_EXPORT PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX;
-GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX;
-GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX;
-GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX;
-GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX;
-
-GLXEW_FUN_EXPORT PFNGLXCUSHIONSGIPROC __glewXCushionSGI;
-
-GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI;
-GLXEW_FUN_EXPORT PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI;
-
-GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI;
-
-GLXEW_FUN_EXPORT PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI;
-GLXEW_FUN_EXPORT PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI;
-
-GLXEW_FUN_EXPORT PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN;
-
-GLXEW_FUN_EXPORT PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN;
-GLXEW_FUN_EXPORT PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_3;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_4;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_3DFX_multisample;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_AMD_gpu_association;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_context_flush_control;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_no_error;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_profile;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_robustness;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_fbconfig_float;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_get_proc_address;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_multisample;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_application_isolation;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_share_group_isolation;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_pixel_format_float;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_render_texture;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_buffer_age;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_context_priority;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es_profile;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_import_context;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_libglvnd;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_no_config_context;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_scene_marker;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_stereo_tree;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control_tear;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_info;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_rating;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_INTEL_swap_event;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_agp_offset;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_query_renderer;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_release_buffers;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_swap_control;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_buffer;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_image;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_delay_before_swap;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_float_buffer;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multigpu_context;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multisample_coverage;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_present_video;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_robustness_video_memory_purge;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_swap_group;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_vertex_array_range;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_capture;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_out;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_swap_method;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_sync_control;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_blended_overlay;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_color_range;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_multisample;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_shared_multisample;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_fbconfig;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_hyperpipe;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_pbuffer;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_barrier;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_group;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_video_resize;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_visual_select_group;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_cushion;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_make_current_read;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_swap_control;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_video_sync;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_get_transparent_index;
-GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_video_resize;
-/* ------------------------------------------------------------------------ */
-
-GLEWAPI GLenum GLEWAPIENTRY glxewInit ();
-GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name);
-
-#ifndef GLXEW_GET_VAR
-#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
-#endif
-
-#ifndef GLXEW_GET_FUN
-#define GLXEW_GET_FUN(x) x
-#endif
-
-GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __glxew_h__ */
diff --git a/deps/GLEW/glew/include/GL/wglew.h b/deps/GLEW/glew/include/GL/wglew.h
deleted file mode 100644
index 7e2d0904cb..0000000000
--- a/deps/GLEW/glew/include/GL/wglew.h
+++ /dev/null
@@ -1,1468 +0,0 @@
-/*
-** The OpenGL Extension Wrangler Library
-** Copyright (C) 2008-2019, Nigel Stewart
-** Copyright (C) 2002-2008, Milan Ikits
-** Copyright (C) 2002-2008, Marcelo E. Magallon
-** Copyright (C) 2002, Lev Povalahev
-** All rights reserved.
-**
-** Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are met:
-**
-** * Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** * The name of the author may be used to endorse or promote products
-** derived from this software without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-** THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
-** Copyright (c) 2007 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-#ifndef __wglew_h__
-#define __wglew_h__
-#define __WGLEW_H__
-
-#ifdef __wglext_h_
-#error wglext.h included before wglew.h
-#endif
-
-#define __wglext_h_
-
-#if !defined(WINAPI)
-# ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN 1
-# endif
-#include
-# undef WIN32_LEAN_AND_MEAN
-#endif
-
-/*
- * GLEW_STATIC needs to be set when using the static version.
- * GLEW_BUILD is set when building the DLL version.
- */
-#ifdef GLEW_STATIC
-# define GLEWAPI extern
-#else
-# ifdef GLEW_BUILD
-# define GLEWAPI extern __declspec(dllexport)
-# else
-# define GLEWAPI extern __declspec(dllimport)
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* -------------------------- WGL_3DFX_multisample ------------------------- */
-
-#ifndef WGL_3DFX_multisample
-#define WGL_3DFX_multisample 1
-
-#define WGL_SAMPLE_BUFFERS_3DFX 0x2060
-#define WGL_SAMPLES_3DFX 0x2061
-
-#define WGLEW_3DFX_multisample WGLEW_GET_VAR(__WGLEW_3DFX_multisample)
-
-#endif /* WGL_3DFX_multisample */
-
-/* ------------------------- WGL_3DL_stereo_control ------------------------ */
-
-#ifndef WGL_3DL_stereo_control
-#define WGL_3DL_stereo_control 1
-
-#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
-#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
-#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
-#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
-
-typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState);
-
-#define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL)
-
-#define WGLEW_3DL_stereo_control WGLEW_GET_VAR(__WGLEW_3DL_stereo_control)
-
-#endif /* WGL_3DL_stereo_control */
-
-/* ------------------------ WGL_AMD_gpu_association ------------------------ */
-
-#ifndef WGL_AMD_gpu_association
-#define WGL_AMD_gpu_association 1
-
-#define WGL_GPU_VENDOR_AMD 0x1F00
-#define WGL_GPU_RENDERER_STRING_AMD 0x1F01
-#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
-#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
-#define WGL_GPU_RAM_AMD 0x21A3
-#define WGL_GPU_CLOCK_AMD 0x21A4
-#define WGL_GPU_NUM_PIPES_AMD 0x21A5
-#define WGL_GPU_NUM_SIMD_AMD 0x21A6
-#define WGL_GPU_NUM_RB_AMD 0x21A7
-#define WGL_GPU_NUM_SPI_AMD 0x21A8
-
-typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id);
-typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int* attribList);
-typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc);
-typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc);
-typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
-typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT* ids);
-typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data);
-typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc);
-
-#define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD)
-#define wglCreateAssociatedContextAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAMD)
-#define wglCreateAssociatedContextAttribsAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAttribsAMD)
-#define wglDeleteAssociatedContextAMD WGLEW_GET_FUN(__wglewDeleteAssociatedContextAMD)
-#define wglGetContextGPUIDAMD WGLEW_GET_FUN(__wglewGetContextGPUIDAMD)
-#define wglGetCurrentAssociatedContextAMD WGLEW_GET_FUN(__wglewGetCurrentAssociatedContextAMD)
-#define wglGetGPUIDsAMD WGLEW_GET_FUN(__wglewGetGPUIDsAMD)
-#define wglGetGPUInfoAMD WGLEW_GET_FUN(__wglewGetGPUInfoAMD)
-#define wglMakeAssociatedContextCurrentAMD WGLEW_GET_FUN(__wglewMakeAssociatedContextCurrentAMD)
-
-#define WGLEW_AMD_gpu_association WGLEW_GET_VAR(__WGLEW_AMD_gpu_association)
-
-#endif /* WGL_AMD_gpu_association */
-
-/* ------------------------- WGL_ARB_buffer_region ------------------------- */
-
-#ifndef WGL_ARB_buffer_region
-#define WGL_ARB_buffer_region 1
-
-#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
-#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
-#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
-#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
-
-typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
-typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
-typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
-typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
-
-#define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB)
-#define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB)
-#define wglRestoreBufferRegionARB WGLEW_GET_FUN(__wglewRestoreBufferRegionARB)
-#define wglSaveBufferRegionARB WGLEW_GET_FUN(__wglewSaveBufferRegionARB)
-
-#define WGLEW_ARB_buffer_region WGLEW_GET_VAR(__WGLEW_ARB_buffer_region)
-
-#endif /* WGL_ARB_buffer_region */
-
-/* --------------------- WGL_ARB_context_flush_control --------------------- */
-
-#ifndef WGL_ARB_context_flush_control
-#define WGL_ARB_context_flush_control 1
-
-#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
-#define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
-#define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
-
-#define WGLEW_ARB_context_flush_control WGLEW_GET_VAR(__WGLEW_ARB_context_flush_control)
-
-#endif /* WGL_ARB_context_flush_control */
-
-/* ------------------------- WGL_ARB_create_context ------------------------ */
-
-#ifndef WGL_ARB_create_context
-#define WGL_ARB_create_context 1
-
-#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
-#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
-#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
-#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
-#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
-#define WGL_CONTEXT_FLAGS_ARB 0x2094
-#define ERROR_INVALID_VERSION_ARB 0x2095
-
-typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList);
-
-#define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB)
-
-#define WGLEW_ARB_create_context WGLEW_GET_VAR(__WGLEW_ARB_create_context)
-
-#endif /* WGL_ARB_create_context */
-
-/* -------------------- WGL_ARB_create_context_no_error -------------------- */
-
-#ifndef WGL_ARB_create_context_no_error
-#define WGL_ARB_create_context_no_error 1
-
-#define WGL_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3
-
-#define WGLEW_ARB_create_context_no_error WGLEW_GET_VAR(__WGLEW_ARB_create_context_no_error)
-
-#endif /* WGL_ARB_create_context_no_error */
-
-/* --------------------- WGL_ARB_create_context_profile -------------------- */
-
-#ifndef WGL_ARB_create_context_profile
-#define WGL_ARB_create_context_profile 1
-
-#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
-#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
-#define ERROR_INVALID_PROFILE_ARB 0x2096
-#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
-
-#define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile)
-
-#endif /* WGL_ARB_create_context_profile */
-
-/* ------------------- WGL_ARB_create_context_robustness ------------------- */
-
-#ifndef WGL_ARB_create_context_robustness
-#define WGL_ARB_create_context_robustness 1
-
-#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
-#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
-#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
-#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
-
-#define WGLEW_ARB_create_context_robustness WGLEW_GET_VAR(__WGLEW_ARB_create_context_robustness)
-
-#endif /* WGL_ARB_create_context_robustness */
-
-/* ----------------------- WGL_ARB_extensions_string ----------------------- */
-
-#ifndef WGL_ARB_extensions_string
-#define WGL_ARB_extensions_string 1
-
-typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
-
-#define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB)
-
-#define WGLEW_ARB_extensions_string WGLEW_GET_VAR(__WGLEW_ARB_extensions_string)
-
-#endif /* WGL_ARB_extensions_string */
-
-/* ------------------------ WGL_ARB_framebuffer_sRGB ----------------------- */
-
-#ifndef WGL_ARB_framebuffer_sRGB
-#define WGL_ARB_framebuffer_sRGB 1
-
-#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
-
-#define WGLEW_ARB_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_ARB_framebuffer_sRGB)
-
-#endif /* WGL_ARB_framebuffer_sRGB */
-
-/* ----------------------- WGL_ARB_make_current_read ----------------------- */
-
-#ifndef WGL_ARB_make_current_read
-#define WGL_ARB_make_current_read 1
-
-#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
-#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
-
-typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void);
-typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
-
-#define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB)
-#define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB)
-
-#define WGLEW_ARB_make_current_read WGLEW_GET_VAR(__WGLEW_ARB_make_current_read)
-
-#endif /* WGL_ARB_make_current_read */
-
-/* -------------------------- WGL_ARB_multisample -------------------------- */
-
-#ifndef WGL_ARB_multisample
-#define WGL_ARB_multisample 1
-
-#define WGL_SAMPLE_BUFFERS_ARB 0x2041
-#define WGL_SAMPLES_ARB 0x2042
-
-#define WGLEW_ARB_multisample WGLEW_GET_VAR(__WGLEW_ARB_multisample)
-
-#endif /* WGL_ARB_multisample */
-
-/* ---------------------------- WGL_ARB_pbuffer ---------------------------- */
-
-#ifndef WGL_ARB_pbuffer
-#define WGL_ARB_pbuffer 1
-
-#define WGL_DRAW_TO_PBUFFER_ARB 0x202D
-#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
-#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
-#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
-#define WGL_PBUFFER_LARGEST_ARB 0x2033
-#define WGL_PBUFFER_WIDTH_ARB 0x2034
-#define WGL_PBUFFER_HEIGHT_ARB 0x2035
-#define WGL_PBUFFER_LOST_ARB 0x2036
-
-DECLARE_HANDLE(HPBUFFERARB);
-
-typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList);
-typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
-typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
-typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int* piValue);
-typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
-
-#define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB)
-#define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB)
-#define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB)
-#define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB)
-#define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB)
-
-#define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer)
-
-#endif /* WGL_ARB_pbuffer */
-
-/* -------------------------- WGL_ARB_pixel_format ------------------------- */
-
-#ifndef WGL_ARB_pixel_format
-#define WGL_ARB_pixel_format 1
-
-#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
-#define WGL_DRAW_TO_WINDOW_ARB 0x2001
-#define WGL_DRAW_TO_BITMAP_ARB 0x2002
-#define WGL_ACCELERATION_ARB 0x2003
-#define WGL_NEED_PALETTE_ARB 0x2004
-#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
-#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
-#define WGL_SWAP_METHOD_ARB 0x2007
-#define WGL_NUMBER_OVERLAYS_ARB 0x2008
-#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
-#define WGL_TRANSPARENT_ARB 0x200A
-#define WGL_SHARE_DEPTH_ARB 0x200C
-#define WGL_SHARE_STENCIL_ARB 0x200D
-#define WGL_SHARE_ACCUM_ARB 0x200E
-#define WGL_SUPPORT_GDI_ARB 0x200F
-#define WGL_SUPPORT_OPENGL_ARB 0x2010
-#define WGL_DOUBLE_BUFFER_ARB 0x2011
-#define WGL_STEREO_ARB 0x2012
-#define WGL_PIXEL_TYPE_ARB 0x2013
-#define WGL_COLOR_BITS_ARB 0x2014
-#define WGL_RED_BITS_ARB 0x2015
-#define WGL_RED_SHIFT_ARB 0x2016
-#define WGL_GREEN_BITS_ARB 0x2017
-#define WGL_GREEN_SHIFT_ARB 0x2018
-#define WGL_BLUE_BITS_ARB 0x2019
-#define WGL_BLUE_SHIFT_ARB 0x201A
-#define WGL_ALPHA_BITS_ARB 0x201B
-#define WGL_ALPHA_SHIFT_ARB 0x201C
-#define WGL_ACCUM_BITS_ARB 0x201D
-#define WGL_ACCUM_RED_BITS_ARB 0x201E
-#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
-#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
-#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
-#define WGL_DEPTH_BITS_ARB 0x2022
-#define WGL_STENCIL_BITS_ARB 0x2023
-#define WGL_AUX_BUFFERS_ARB 0x2024
-#define WGL_NO_ACCELERATION_ARB 0x2025
-#define WGL_GENERIC_ACCELERATION_ARB 0x2026
-#define WGL_FULL_ACCELERATION_ARB 0x2027
-#define WGL_SWAP_EXCHANGE_ARB 0x2028
-#define WGL_SWAP_COPY_ARB 0x2029
-#define WGL_SWAP_UNDEFINED_ARB 0x202A
-#define WGL_TYPE_RGBA_ARB 0x202B
-#define WGL_TYPE_COLORINDEX_ARB 0x202C
-#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
-#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
-#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
-#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
-#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
-
-typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats);
-typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT* pfValues);
-typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int* piValues);
-
-#define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB)
-#define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB)
-#define wglGetPixelFormatAttribivARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribivARB)
-
-#define WGLEW_ARB_pixel_format WGLEW_GET_VAR(__WGLEW_ARB_pixel_format)
-
-#endif /* WGL_ARB_pixel_format */
-
-/* ----------------------- WGL_ARB_pixel_format_float ---------------------- */
-
-#ifndef WGL_ARB_pixel_format_float
-#define WGL_ARB_pixel_format_float 1
-
-#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
-
-#define WGLEW_ARB_pixel_format_float WGLEW_GET_VAR(__WGLEW_ARB_pixel_format_float)
-
-#endif /* WGL_ARB_pixel_format_float */
-
-/* ------------------------- WGL_ARB_render_texture ------------------------ */
-
-#ifndef WGL_ARB_render_texture
-#define WGL_ARB_render_texture 1
-
-#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
-#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
-#define WGL_TEXTURE_FORMAT_ARB 0x2072
-#define WGL_TEXTURE_TARGET_ARB 0x2073
-#define WGL_MIPMAP_TEXTURE_ARB 0x2074
-#define WGL_TEXTURE_RGB_ARB 0x2075
-#define WGL_TEXTURE_RGBA_ARB 0x2076
-#define WGL_NO_TEXTURE_ARB 0x2077
-#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
-#define WGL_TEXTURE_1D_ARB 0x2079
-#define WGL_TEXTURE_2D_ARB 0x207A
-#define WGL_MIPMAP_LEVEL_ARB 0x207B
-#define WGL_CUBE_MAP_FACE_ARB 0x207C
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
-#define WGL_FRONT_LEFT_ARB 0x2083
-#define WGL_FRONT_RIGHT_ARB 0x2084
-#define WGL_BACK_LEFT_ARB 0x2085
-#define WGL_BACK_RIGHT_ARB 0x2086
-#define WGL_AUX0_ARB 0x2087
-#define WGL_AUX1_ARB 0x2088
-#define WGL_AUX2_ARB 0x2089
-#define WGL_AUX3_ARB 0x208A
-#define WGL_AUX4_ARB 0x208B
-#define WGL_AUX5_ARB 0x208C
-#define WGL_AUX6_ARB 0x208D
-#define WGL_AUX7_ARB 0x208E
-#define WGL_AUX8_ARB 0x208F
-#define WGL_AUX9_ARB 0x2090
-
-typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
-typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
-typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int* piAttribList);
-
-#define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB)
-#define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB)
-#define wglSetPbufferAttribARB WGLEW_GET_FUN(__wglewSetPbufferAttribARB)
-
-#define WGLEW_ARB_render_texture WGLEW_GET_VAR(__WGLEW_ARB_render_texture)
-
-#endif /* WGL_ARB_render_texture */
-
-/* ---------------- WGL_ARB_robustness_application_isolation --------------- */
-
-#ifndef WGL_ARB_robustness_application_isolation
-#define WGL_ARB_robustness_application_isolation 1
-
-#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
-
-#define WGLEW_ARB_robustness_application_isolation WGLEW_GET_VAR(__WGLEW_ARB_robustness_application_isolation)
-
-#endif /* WGL_ARB_robustness_application_isolation */
-
-/* ---------------- WGL_ARB_robustness_share_group_isolation --------------- */
-
-#ifndef WGL_ARB_robustness_share_group_isolation
-#define WGL_ARB_robustness_share_group_isolation 1
-
-#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
-
-#define WGLEW_ARB_robustness_share_group_isolation WGLEW_GET_VAR(__WGLEW_ARB_robustness_share_group_isolation)
-
-#endif /* WGL_ARB_robustness_share_group_isolation */
-
-/* ----------------------- WGL_ATI_pixel_format_float ---------------------- */
-
-#ifndef WGL_ATI_pixel_format_float
-#define WGL_ATI_pixel_format_float 1
-
-#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
-#define GL_RGBA_FLOAT_MODE_ATI 0x8820
-#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
-
-#define WGLEW_ATI_pixel_format_float WGLEW_GET_VAR(__WGLEW_ATI_pixel_format_float)
-
-#endif /* WGL_ATI_pixel_format_float */
-
-/* -------------------- WGL_ATI_render_texture_rectangle ------------------- */
-
-#ifndef WGL_ATI_render_texture_rectangle
-#define WGL_ATI_render_texture_rectangle 1
-
-#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5
-
-#define WGLEW_ATI_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_ATI_render_texture_rectangle)
-
-#endif /* WGL_ATI_render_texture_rectangle */
-
-/* --------------------------- WGL_EXT_colorspace -------------------------- */
-
-#ifndef WGL_EXT_colorspace
-#define WGL_EXT_colorspace 1
-
-#define WGL_COLORSPACE_SRGB_EXT 0x3089
-#define WGL_COLORSPACE_LINEAR_EXT 0x308A
-#define WGL_COLORSPACE_EXT 0x309D
-
-#define WGLEW_EXT_colorspace WGLEW_GET_VAR(__WGLEW_EXT_colorspace)
-
-#endif /* WGL_EXT_colorspace */
-
-/* ------------------- WGL_EXT_create_context_es2_profile ------------------ */
-
-#ifndef WGL_EXT_create_context_es2_profile
-#define WGL_EXT_create_context_es2_profile 1
-
-#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
-
-#define WGLEW_EXT_create_context_es2_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es2_profile)
-
-#endif /* WGL_EXT_create_context_es2_profile */
-
-/* ------------------- WGL_EXT_create_context_es_profile ------------------- */
-
-#ifndef WGL_EXT_create_context_es_profile
-#define WGL_EXT_create_context_es_profile 1
-
-#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
-
-#define WGLEW_EXT_create_context_es_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es_profile)
-
-#endif /* WGL_EXT_create_context_es_profile */
-
-/* -------------------------- WGL_EXT_depth_float -------------------------- */
-
-#ifndef WGL_EXT_depth_float
-#define WGL_EXT_depth_float 1
-
-#define WGL_DEPTH_FLOAT_EXT 0x2040
-
-#define WGLEW_EXT_depth_float WGLEW_GET_VAR(__WGLEW_EXT_depth_float)
-
-#endif /* WGL_EXT_depth_float */
-
-/* ---------------------- WGL_EXT_display_color_table ---------------------- */
-
-#ifndef WGL_EXT_display_color_table
-#define WGL_EXT_display_color_table 1
-
-typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id);
-typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id);
-typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id);
-typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort* table, GLuint length);
-
-#define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT)
-#define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT)
-#define wglDestroyDisplayColorTableEXT WGLEW_GET_FUN(__wglewDestroyDisplayColorTableEXT)
-#define wglLoadDisplayColorTableEXT WGLEW_GET_FUN(__wglewLoadDisplayColorTableEXT)
-
-#define WGLEW_EXT_display_color_table WGLEW_GET_VAR(__WGLEW_EXT_display_color_table)
-
-#endif /* WGL_EXT_display_color_table */
-
-/* ----------------------- WGL_EXT_extensions_string ----------------------- */
-
-#ifndef WGL_EXT_extensions_string
-#define WGL_EXT_extensions_string 1
-
-typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
-
-#define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT)
-
-#define WGLEW_EXT_extensions_string WGLEW_GET_VAR(__WGLEW_EXT_extensions_string)
-
-#endif /* WGL_EXT_extensions_string */
-
-/* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */
-
-#ifndef WGL_EXT_framebuffer_sRGB
-#define WGL_EXT_framebuffer_sRGB 1
-
-#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
-
-#define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB)
-
-#endif /* WGL_EXT_framebuffer_sRGB */
-
-/* ----------------------- WGL_EXT_make_current_read ----------------------- */
-
-#ifndef WGL_EXT_make_current_read
-#define WGL_EXT_make_current_read 1
-
-#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
-
-typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void);
-typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
-
-#define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT)
-#define wglMakeContextCurrentEXT WGLEW_GET_FUN(__wglewMakeContextCurrentEXT)
-
-#define WGLEW_EXT_make_current_read WGLEW_GET_VAR(__WGLEW_EXT_make_current_read)
-
-#endif /* WGL_EXT_make_current_read */
-
-/* -------------------------- WGL_EXT_multisample -------------------------- */
-
-#ifndef WGL_EXT_multisample
-#define WGL_EXT_multisample 1
-
-#define WGL_SAMPLE_BUFFERS_EXT 0x2041
-#define WGL_SAMPLES_EXT 0x2042
-
-#define WGLEW_EXT_multisample WGLEW_GET_VAR(__WGLEW_EXT_multisample)
-
-#endif /* WGL_EXT_multisample */
-
-/* ---------------------------- WGL_EXT_pbuffer ---------------------------- */
-
-#ifndef WGL_EXT_pbuffer
-#define WGL_EXT_pbuffer 1
-
-#define WGL_DRAW_TO_PBUFFER_EXT 0x202D
-#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
-#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
-#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
-#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
-#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
-#define WGL_PBUFFER_LARGEST_EXT 0x2033
-#define WGL_PBUFFER_WIDTH_EXT 0x2034
-#define WGL_PBUFFER_HEIGHT_EXT 0x2035
-
-DECLARE_HANDLE(HPBUFFEREXT);
-
-typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList);
-typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer);
-typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer);
-typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue);
-typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC);
-
-#define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT)
-#define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT)
-#define wglGetPbufferDCEXT WGLEW_GET_FUN(__wglewGetPbufferDCEXT)
-#define wglQueryPbufferEXT WGLEW_GET_FUN(__wglewQueryPbufferEXT)
-#define wglReleasePbufferDCEXT WGLEW_GET_FUN(__wglewReleasePbufferDCEXT)
-
-#define WGLEW_EXT_pbuffer WGLEW_GET_VAR(__WGLEW_EXT_pbuffer)
-
-#endif /* WGL_EXT_pbuffer */
-
-/* -------------------------- WGL_EXT_pixel_format ------------------------- */
-
-#ifndef WGL_EXT_pixel_format
-#define WGL_EXT_pixel_format 1
-
-#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
-#define WGL_DRAW_TO_WINDOW_EXT 0x2001
-#define WGL_DRAW_TO_BITMAP_EXT 0x2002
-#define WGL_ACCELERATION_EXT 0x2003
-#define WGL_NEED_PALETTE_EXT 0x2004
-#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
-#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
-#define WGL_SWAP_METHOD_EXT 0x2007
-#define WGL_NUMBER_OVERLAYS_EXT 0x2008
-#define WGL_NUMBER_UNDERLAYS_EXT 0x2009
-#define WGL_TRANSPARENT_EXT 0x200A
-#define WGL_TRANSPARENT_VALUE_EXT 0x200B
-#define WGL_SHARE_DEPTH_EXT 0x200C
-#define WGL_SHARE_STENCIL_EXT 0x200D
-#define WGL_SHARE_ACCUM_EXT 0x200E
-#define WGL_SUPPORT_GDI_EXT 0x200F
-#define WGL_SUPPORT_OPENGL_EXT 0x2010
-#define WGL_DOUBLE_BUFFER_EXT 0x2011
-#define WGL_STEREO_EXT 0x2012
-#define WGL_PIXEL_TYPE_EXT 0x2013
-#define WGL_COLOR_BITS_EXT 0x2014
-#define WGL_RED_BITS_EXT 0x2015
-#define WGL_RED_SHIFT_EXT 0x2016
-#define WGL_GREEN_BITS_EXT 0x2017
-#define WGL_GREEN_SHIFT_EXT 0x2018
-#define WGL_BLUE_BITS_EXT 0x2019
-#define WGL_BLUE_SHIFT_EXT 0x201A
-#define WGL_ALPHA_BITS_EXT 0x201B
-#define WGL_ALPHA_SHIFT_EXT 0x201C
-#define WGL_ACCUM_BITS_EXT 0x201D
-#define WGL_ACCUM_RED_BITS_EXT 0x201E
-#define WGL_ACCUM_GREEN_BITS_EXT 0x201F
-#define WGL_ACCUM_BLUE_BITS_EXT 0x2020
-#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
-#define WGL_DEPTH_BITS_EXT 0x2022
-#define WGL_STENCIL_BITS_EXT 0x2023
-#define WGL_AUX_BUFFERS_EXT 0x2024
-#define WGL_NO_ACCELERATION_EXT 0x2025
-#define WGL_GENERIC_ACCELERATION_EXT 0x2026
-#define WGL_FULL_ACCELERATION_EXT 0x2027
-#define WGL_SWAP_EXCHANGE_EXT 0x2028
-#define WGL_SWAP_COPY_EXT 0x2029
-#define WGL_SWAP_UNDEFINED_EXT 0x202A
-#define WGL_TYPE_RGBA_EXT 0x202B
-#define WGL_TYPE_COLORINDEX_EXT 0x202C
-
-typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats);
-typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT* pfValues);
-typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int* piValues);
-
-#define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT)
-#define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT)
-#define wglGetPixelFormatAttribivEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribivEXT)
-
-#define WGLEW_EXT_pixel_format WGLEW_GET_VAR(__WGLEW_EXT_pixel_format)
-
-#endif /* WGL_EXT_pixel_format */
-
-/* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */
-
-#ifndef WGL_EXT_pixel_format_packed_float
-#define WGL_EXT_pixel_format_packed_float 1
-
-#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
-
-#define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float)
-
-#endif /* WGL_EXT_pixel_format_packed_float */
-
-/* -------------------------- WGL_EXT_swap_control ------------------------- */
-
-#ifndef WGL_EXT_swap_control
-#define WGL_EXT_swap_control 1
-
-typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
-typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
-
-#define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT)
-#define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT)
-
-#define WGLEW_EXT_swap_control WGLEW_GET_VAR(__WGLEW_EXT_swap_control)
-
-#endif /* WGL_EXT_swap_control */
-
-/* ----------------------- WGL_EXT_swap_control_tear ----------------------- */
-
-#ifndef WGL_EXT_swap_control_tear
-#define WGL_EXT_swap_control_tear 1
-
-#define WGLEW_EXT_swap_control_tear WGLEW_GET_VAR(__WGLEW_EXT_swap_control_tear)
-
-#endif /* WGL_EXT_swap_control_tear */
-
-/* --------------------- WGL_I3D_digital_video_control --------------------- */
-
-#ifndef WGL_I3D_digital_video_control
-#define WGL_I3D_digital_video_control 1
-
-#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
-#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
-#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
-#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
-
-typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue);
-typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue);
-
-#define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D)
-#define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D)
-
-#define WGLEW_I3D_digital_video_control WGLEW_GET_VAR(__WGLEW_I3D_digital_video_control)
-
-#endif /* WGL_I3D_digital_video_control */
-
-/* ----------------------------- WGL_I3D_gamma ----------------------------- */
-
-#ifndef WGL_I3D_gamma
-#define WGL_I3D_gamma 1
-
-#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
-#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
-
-typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT* puGreen, USHORT* puBlue);
-typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue);
-typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT* puGreen, const USHORT* puBlue);
-typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue);
-
-#define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D)
-#define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D)
-#define wglSetGammaTableI3D WGLEW_GET_FUN(__wglewSetGammaTableI3D)
-#define wglSetGammaTableParametersI3D WGLEW_GET_FUN(__wglewSetGammaTableParametersI3D)
-
-#define WGLEW_I3D_gamma WGLEW_GET_VAR(__WGLEW_I3D_gamma)
-
-#endif /* WGL_I3D_gamma */
-
-/* ---------------------------- WGL_I3D_genlock ---------------------------- */
-
-#ifndef WGL_I3D_genlock
-#define WGL_I3D_genlock 1
-
-#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
-#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045
-#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046
-#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047
-#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
-#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
-#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
-#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
-#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
-
-typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC);
-typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC);
-typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate);
-typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay);
-typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge);
-typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource);
-typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT* uRate);
-typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDelay);
-typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge);
-typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource);
-typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag);
-typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT* uMaxPixelDelay);
-
-#define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D)
-#define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D)
-#define wglGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGenlockSampleRateI3D)
-#define wglGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGenlockSourceDelayI3D)
-#define wglGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGenlockSourceEdgeI3D)
-#define wglGenlockSourceI3D WGLEW_GET_FUN(__wglewGenlockSourceI3D)
-#define wglGetGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGetGenlockSampleRateI3D)
-#define wglGetGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGetGenlockSourceDelayI3D)
-#define wglGetGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGetGenlockSourceEdgeI3D)
-#define wglGetGenlockSourceI3D WGLEW_GET_FUN(__wglewGetGenlockSourceI3D)
-#define wglIsEnabledGenlockI3D WGLEW_GET_FUN(__wglewIsEnabledGenlockI3D)
-#define wglQueryGenlockMaxSourceDelayI3D WGLEW_GET_FUN(__wglewQueryGenlockMaxSourceDelayI3D)
-
-#define WGLEW_I3D_genlock WGLEW_GET_VAR(__WGLEW_I3D_genlock)
-
-#endif /* WGL_I3D_genlock */
-
-/* -------------------------- WGL_I3D_image_buffer ------------------------- */
-
-#ifndef WGL_I3D_image_buffer
-#define WGL_I3D_image_buffer 1
-
-#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
-#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
-
-typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE* pEvent, const LPVOID* pAddress, const DWORD* pSize, UINT count);
-typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags);
-typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress);
-typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID* pAddress, UINT count);
-
-#define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D)
-#define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D)
-#define wglDestroyImageBufferI3D WGLEW_GET_FUN(__wglewDestroyImageBufferI3D)
-#define wglReleaseImageBufferEventsI3D WGLEW_GET_FUN(__wglewReleaseImageBufferEventsI3D)
-
-#define WGLEW_I3D_image_buffer WGLEW_GET_VAR(__WGLEW_I3D_image_buffer)
-
-#endif /* WGL_I3D_image_buffer */
-
-/* ------------------------ WGL_I3D_swap_frame_lock ------------------------ */
-
-#ifndef WGL_I3D_swap_frame_lock
-#define WGL_I3D_swap_frame_lock 1
-
-typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void);
-typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void);
-typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag);
-typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag);
-
-#define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D)
-#define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D)
-#define wglIsEnabledFrameLockI3D WGLEW_GET_FUN(__wglewIsEnabledFrameLockI3D)
-#define wglQueryFrameLockMasterI3D WGLEW_GET_FUN(__wglewQueryFrameLockMasterI3D)
-
-#define WGLEW_I3D_swap_frame_lock WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_lock)
-
-#endif /* WGL_I3D_swap_frame_lock */
-
-/* ------------------------ WGL_I3D_swap_frame_usage ----------------------- */
-
-#ifndef WGL_I3D_swap_frame_usage
-#define WGL_I3D_swap_frame_usage 1
-
-typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void);
-typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void);
-typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage);
-typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD* pMissedFrames, float* pLastMissedUsage);
-
-#define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D)
-#define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D)
-#define wglGetFrameUsageI3D WGLEW_GET_FUN(__wglewGetFrameUsageI3D)
-#define wglQueryFrameTrackingI3D WGLEW_GET_FUN(__wglewQueryFrameTrackingI3D)
-
-#define WGLEW_I3D_swap_frame_usage WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_usage)
-
-#endif /* WGL_I3D_swap_frame_usage */
-
-/* --------------------------- WGL_NV_DX_interop --------------------------- */
-
-#ifndef WGL_NV_DX_interop
-#define WGL_NV_DX_interop 1
-
-#define WGL_ACCESS_READ_ONLY_NV 0x00000000
-#define WGL_ACCESS_READ_WRITE_NV 0x00000001
-#define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002
-
-typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice);
-typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects);
-typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access);
-typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice);
-typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access);
-typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle);
-typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects);
-typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject);
-
-#define wglDXCloseDeviceNV WGLEW_GET_FUN(__wglewDXCloseDeviceNV)
-#define wglDXLockObjectsNV WGLEW_GET_FUN(__wglewDXLockObjectsNV)
-#define wglDXObjectAccessNV WGLEW_GET_FUN(__wglewDXObjectAccessNV)
-#define wglDXOpenDeviceNV WGLEW_GET_FUN(__wglewDXOpenDeviceNV)
-#define wglDXRegisterObjectNV WGLEW_GET_FUN(__wglewDXRegisterObjectNV)
-#define wglDXSetResourceShareHandleNV WGLEW_GET_FUN(__wglewDXSetResourceShareHandleNV)
-#define wglDXUnlockObjectsNV WGLEW_GET_FUN(__wglewDXUnlockObjectsNV)
-#define wglDXUnregisterObjectNV WGLEW_GET_FUN(__wglewDXUnregisterObjectNV)
-
-#define WGLEW_NV_DX_interop WGLEW_GET_VAR(__WGLEW_NV_DX_interop)
-
-#endif /* WGL_NV_DX_interop */
-
-/* --------------------------- WGL_NV_DX_interop2 -------------------------- */
-
-#ifndef WGL_NV_DX_interop2
-#define WGL_NV_DX_interop2 1
-
-#define WGLEW_NV_DX_interop2 WGLEW_GET_VAR(__WGLEW_NV_DX_interop2)
-
-#endif /* WGL_NV_DX_interop2 */
-
-/* --------------------------- WGL_NV_copy_image --------------------------- */
-
-#ifndef WGL_NV_copy_image
-#define WGL_NV_copy_image 1
-
-typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
-
-#define wglCopyImageSubDataNV WGLEW_GET_FUN(__wglewCopyImageSubDataNV)
-
-#define WGLEW_NV_copy_image WGLEW_GET_VAR(__WGLEW_NV_copy_image)
-
-#endif /* WGL_NV_copy_image */
-
-/* ------------------------ WGL_NV_delay_before_swap ----------------------- */
-
-#ifndef WGL_NV_delay_before_swap
-#define WGL_NV_delay_before_swap 1
-
-typedef BOOL (WINAPI * PFNWGLDELAYBEFORESWAPNVPROC) (HDC hDC, GLfloat seconds);
-
-#define wglDelayBeforeSwapNV WGLEW_GET_FUN(__wglewDelayBeforeSwapNV)
-
-#define WGLEW_NV_delay_before_swap WGLEW_GET_VAR(__WGLEW_NV_delay_before_swap)
-
-#endif /* WGL_NV_delay_before_swap */
-
-/* -------------------------- WGL_NV_float_buffer -------------------------- */
-
-#ifndef WGL_NV_float_buffer
-#define WGL_NV_float_buffer 1
-
-#define WGL_FLOAT_COMPONENTS_NV 0x20B0
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
-#define WGL_TEXTURE_FLOAT_R_NV 0x20B5
-#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
-#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
-#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
-
-#define WGLEW_NV_float_buffer WGLEW_GET_VAR(__WGLEW_NV_float_buffer)
-
-#endif /* WGL_NV_float_buffer */
-
-/* -------------------------- WGL_NV_gpu_affinity -------------------------- */
-
-#ifndef WGL_NV_gpu_affinity
-#define WGL_NV_gpu_affinity 1
-
-#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
-#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
-
-DECLARE_HANDLE(HGPUNV);
-typedef struct _GPU_DEVICE {
- DWORD cb;
- CHAR DeviceName[32];
- CHAR DeviceString[128];
- DWORD Flags;
- RECT rcVirtualScreen;
-} GPU_DEVICE, *PGPU_DEVICE;
-
-typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList);
-typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc);
-typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
-typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
-typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu);
-
-#define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV)
-#define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV)
-#define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV)
-#define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV)
-#define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV)
-
-#define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity)
-
-#endif /* WGL_NV_gpu_affinity */
-
-/* ------------------------ WGL_NV_multigpu_context ------------------------ */
-
-#ifndef WGL_NV_multigpu_context
-#define WGL_NV_multigpu_context 1
-
-#define WGL_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA
-#define WGL_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB
-#define WGL_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC
-#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD
-#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE
-
-#define WGLEW_NV_multigpu_context WGLEW_GET_VAR(__WGLEW_NV_multigpu_context)
-
-#endif /* WGL_NV_multigpu_context */
-
-/* ---------------------- WGL_NV_multisample_coverage ---------------------- */
-
-#ifndef WGL_NV_multisample_coverage
-#define WGL_NV_multisample_coverage 1
-
-#define WGL_COVERAGE_SAMPLES_NV 0x2042
-#define WGL_COLOR_SAMPLES_NV 0x20B9
-
-#define WGLEW_NV_multisample_coverage WGLEW_GET_VAR(__WGLEW_NV_multisample_coverage)
-
-#endif /* WGL_NV_multisample_coverage */
-
-/* -------------------------- WGL_NV_present_video ------------------------- */
-
-#ifndef WGL_NV_present_video
-#define WGL_NV_present_video 1
-
-#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0
-
-DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
-
-typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList);
-typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList);
-typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* piValue);
-
-#define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV)
-#define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV)
-#define wglQueryCurrentContextNV WGLEW_GET_FUN(__wglewQueryCurrentContextNV)
-
-#define WGLEW_NV_present_video WGLEW_GET_VAR(__WGLEW_NV_present_video)
-
-#endif /* WGL_NV_present_video */
-
-/* ---------------------- WGL_NV_render_depth_texture ---------------------- */
-
-#ifndef WGL_NV_render_depth_texture
-#define WGL_NV_render_depth_texture 1
-
-#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
-#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
-#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
-#define WGL_DEPTH_COMPONENT_NV 0x20A7
-
-#define WGLEW_NV_render_depth_texture WGLEW_GET_VAR(__WGLEW_NV_render_depth_texture)
-
-#endif /* WGL_NV_render_depth_texture */
-
-/* -------------------- WGL_NV_render_texture_rectangle -------------------- */
-
-#ifndef WGL_NV_render_texture_rectangle
-#define WGL_NV_render_texture_rectangle 1
-
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
-#define WGL_TEXTURE_RECTANGLE_NV 0x20A2
-
-#define WGLEW_NV_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_NV_render_texture_rectangle)
-
-#endif /* WGL_NV_render_texture_rectangle */
-
-/* --------------------------- WGL_NV_swap_group --------------------------- */
-
-#ifndef WGL_NV_swap_group
-#define WGL_NV_swap_group 1
-
-typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier);
-typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group);
-typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count);
-typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint* maxBarriers);
-typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint* barrier);
-typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC);
-
-#define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV)
-#define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV)
-#define wglQueryFrameCountNV WGLEW_GET_FUN(__wglewQueryFrameCountNV)
-#define wglQueryMaxSwapGroupsNV WGLEW_GET_FUN(__wglewQueryMaxSwapGroupsNV)
-#define wglQuerySwapGroupNV WGLEW_GET_FUN(__wglewQuerySwapGroupNV)
-#define wglResetFrameCountNV WGLEW_GET_FUN(__wglewResetFrameCountNV)
-
-#define WGLEW_NV_swap_group WGLEW_GET_VAR(__WGLEW_NV_swap_group)
-
-#endif /* WGL_NV_swap_group */
-
-/* ----------------------- WGL_NV_vertex_array_range ----------------------- */
-
-#ifndef WGL_NV_vertex_array_range
-#define WGL_NV_vertex_array_range 1
-
-typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
-typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void* pointer);
-
-#define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV)
-#define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV)
-
-#define WGLEW_NV_vertex_array_range WGLEW_GET_VAR(__WGLEW_NV_vertex_array_range)
-
-#endif /* WGL_NV_vertex_array_range */
-
-/* -------------------------- WGL_NV_video_capture ------------------------- */
-
-#ifndef WGL_NV_video_capture
-#define WGL_NV_video_capture 1
-
-#define WGL_UNIQUE_ID_NV 0x20CE
-#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
-
-DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
-
-typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
-typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV* phDeviceList);
-typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
-typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int* piValue);
-typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
-
-#define wglBindVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewBindVideoCaptureDeviceNV)
-#define wglEnumerateVideoCaptureDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoCaptureDevicesNV)
-#define wglLockVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewLockVideoCaptureDeviceNV)
-#define wglQueryVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewQueryVideoCaptureDeviceNV)
-#define wglReleaseVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoCaptureDeviceNV)
-
-#define WGLEW_NV_video_capture WGLEW_GET_VAR(__WGLEW_NV_video_capture)
-
-#endif /* WGL_NV_video_capture */
-
-/* -------------------------- WGL_NV_video_output -------------------------- */
-
-#ifndef WGL_NV_video_output
-#define WGL_NV_video_output 1
-
-#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0
-#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1
-#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
-#define WGL_VIDEO_OUT_COLOR_NV 0x20C3
-#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4
-#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5
-#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
-#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
-#define WGL_VIDEO_OUT_FRAME 0x20C8
-#define WGL_VIDEO_OUT_FIELD_1 0x20C9
-#define WGL_VIDEO_OUT_FIELD_2 0x20CA
-#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
-#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
-
-DECLARE_HANDLE(HPVIDEODEV);
-
-typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
-typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice);
-typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long* pulCounterOutputVideo);
-typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice);
-typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer);
-typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock);
-
-#define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV)
-#define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV)
-#define wglGetVideoInfoNV WGLEW_GET_FUN(__wglewGetVideoInfoNV)
-#define wglReleaseVideoDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoDeviceNV)
-#define wglReleaseVideoImageNV WGLEW_GET_FUN(__wglewReleaseVideoImageNV)
-#define wglSendPbufferToVideoNV WGLEW_GET_FUN(__wglewSendPbufferToVideoNV)
-
-#define WGLEW_NV_video_output WGLEW_GET_VAR(__WGLEW_NV_video_output)
-
-#endif /* WGL_NV_video_output */
-
-/* -------------------------- WGL_OML_sync_control ------------------------- */
-
-#ifndef WGL_OML_sync_control
-#define WGL_OML_sync_control 1
-
-typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32* denominator);
-typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64* msc, INT64* sbc);
-typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
-typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
-typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64* msc, INT64* sbc);
-typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64* msc, INT64* sbc);
-
-#define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML)
-#define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML)
-#define wglSwapBuffersMscOML WGLEW_GET_FUN(__wglewSwapBuffersMscOML)
-#define wglSwapLayerBuffersMscOML WGLEW_GET_FUN(__wglewSwapLayerBuffersMscOML)
-#define wglWaitForMscOML WGLEW_GET_FUN(__wglewWaitForMscOML)
-#define wglWaitForSbcOML WGLEW_GET_FUN(__wglewWaitForSbcOML)
-
-#define WGLEW_OML_sync_control WGLEW_GET_VAR(__WGLEW_OML_sync_control)
-
-#endif /* WGL_OML_sync_control */
-
-/* ------------------------------------------------------------------------- */
-
-#define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT
-#define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT
-
-WGLEW_FUN_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL;
-
-WGLEW_FUN_EXPORT PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD;
-WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD;
-WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD;
-WGLEW_FUN_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD;
-WGLEW_FUN_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD;
-WGLEW_FUN_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD;
-WGLEW_FUN_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD;
-WGLEW_FUN_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD;
-WGLEW_FUN_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD;
-
-WGLEW_FUN_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB;
-WGLEW_FUN_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB;
-WGLEW_FUN_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB;
-WGLEW_FUN_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB;
-
-WGLEW_FUN_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB;
-
-WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB;
-
-WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB;
-WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB;
-
-WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB;
-WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB;
-WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB;
-WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB;
-WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB;
-
-WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB;
-WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB;
-WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB;
-
-WGLEW_FUN_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB;
-WGLEW_FUN_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB;
-WGLEW_FUN_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB;
-
-WGLEW_FUN_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT;
-WGLEW_FUN_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT;
-WGLEW_FUN_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT;
-WGLEW_FUN_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT;
-
-WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT;
-
-WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT;
-WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT;
-
-WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT;
-WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT;
-WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT;
-WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT;
-WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT;
-
-WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT;
-WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT;
-WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT;
-
-WGLEW_FUN_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT;
-WGLEW_FUN_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT;
-
-WGLEW_FUN_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D;
-WGLEW_FUN_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D;
-
-WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D;
-WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D;
-WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D;
-WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D;
-
-WGLEW_FUN_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D;
-WGLEW_FUN_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D;
-WGLEW_FUN_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D;
-WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D;
-WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D;
-WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D;
-WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D;
-WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D;
-WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D;
-WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D;
-WGLEW_FUN_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D;
-WGLEW_FUN_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D;
-
-WGLEW_FUN_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D;
-WGLEW_FUN_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D;
-WGLEW_FUN_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D;
-WGLEW_FUN_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D;
-
-WGLEW_FUN_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D;
-WGLEW_FUN_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D;
-WGLEW_FUN_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D;
-WGLEW_FUN_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D;
-
-WGLEW_FUN_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D;
-WGLEW_FUN_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D;
-WGLEW_FUN_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D;
-WGLEW_FUN_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D;
-
-WGLEW_FUN_EXPORT PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV;
-WGLEW_FUN_EXPORT PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV;
-WGLEW_FUN_EXPORT PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV;
-WGLEW_FUN_EXPORT PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV;
-WGLEW_FUN_EXPORT PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV;
-WGLEW_FUN_EXPORT PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV;
-WGLEW_FUN_EXPORT PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV;
-WGLEW_FUN_EXPORT PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV;
-
-WGLEW_FUN_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV;
-
-WGLEW_FUN_EXPORT PFNWGLDELAYBEFORESWAPNVPROC __wglewDelayBeforeSwapNV;
-
-WGLEW_FUN_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV;
-WGLEW_FUN_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV;
-WGLEW_FUN_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV;
-WGLEW_FUN_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV;
-WGLEW_FUN_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV;
-
-WGLEW_FUN_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV;
-WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV;
-WGLEW_FUN_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV;
-
-WGLEW_FUN_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV;
-WGLEW_FUN_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV;
-WGLEW_FUN_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV;
-WGLEW_FUN_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV;
-WGLEW_FUN_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV;
-WGLEW_FUN_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV;
-
-WGLEW_FUN_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV;
-WGLEW_FUN_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV;
-
-WGLEW_FUN_EXPORT PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV;
-WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV;
-WGLEW_FUN_EXPORT PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV;
-WGLEW_FUN_EXPORT PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV;
-WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV;
-
-WGLEW_FUN_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV;
-WGLEW_FUN_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV;
-WGLEW_FUN_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV;
-WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV;
-WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV;
-WGLEW_FUN_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV;
-
-WGLEW_FUN_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML;
-WGLEW_FUN_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML;
-WGLEW_FUN_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML;
-WGLEW_FUN_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML;
-WGLEW_FUN_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML;
-WGLEW_FUN_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_3DFX_multisample;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_3DL_stereo_control;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_AMD_gpu_association;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_buffer_region;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_context_flush_control;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_no_error;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_profile;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_robustness;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_extensions_string;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_make_current_read;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_multisample;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pbuffer;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format_float;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_render_texture;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_application_isolation;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_share_group_isolation;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_pixel_format_float;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_colorspace;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es_profile;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_depth_float;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_display_color_table;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_extensions_string;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_make_current_read;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_multisample;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pbuffer;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control_tear;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_digital_video_control;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_gamma;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_genlock;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_image_buffer;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop2;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_copy_image;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_delay_before_swap;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_float_buffer;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_gpu_affinity;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multigpu_context;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multisample_coverage;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_present_video;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_depth_texture;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_swap_group;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_vertex_array_range;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_capture;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_output;
-WGLEW_VAR_EXPORT GLboolean __WGLEW_OML_sync_control;
-/* ------------------------------------------------------------------------- */
-
-GLEWAPI GLenum GLEWAPIENTRY wglewInit ();
-GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name);
-
-#ifndef WGLEW_GET_VAR
-#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
-#endif
-
-#ifndef WGLEW_GET_FUN
-#define WGLEW_GET_FUN(x) x
-#endif
-
-GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name);
-
-#ifdef __cplusplus
-}
-#endif
-
-#undef GLEWAPI
-
-#endif /* __wglew_h__ */
diff --git a/deps/GLEW/glew/src/glew.c b/deps/GLEW/glew/src/glew.c
deleted file mode 100644
index 967c5c91f9..0000000000
--- a/deps/GLEW/glew/src/glew.c
+++ /dev/null
@@ -1,31949 +0,0 @@
-/*
-** The OpenGL Extension Wrangler Library
-** Copyright (C) 2008-2019, Nigel Stewart
-** Copyright (C) 2002-2008, Milan Ikits
-** Copyright (C) 2002-2008, Marcelo E. Magallon
-** Copyright (C) 2002, Lev Povalahev
-** All rights reserved.
-**
-** Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are met:
-**
-** * Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** * The name of the author may be used to endorse or promote products
-** derived from this software without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-** THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef GLEW_INCLUDE
-# include
-#else
-# include GLEW_INCLUDE
-#endif
-
-#if defined(GLEW_OSMESA)
-# define GLAPI extern
-# include
-#elif defined(GLEW_EGL)
-# include
-#elif defined(_WIN32)
-/*
- * If NOGDI is defined, wingdi.h won't be included by windows.h, and thus
- * wglGetProcAddress won't be declared. It will instead be implicitly declared,
- * potentially incorrectly, which we don't want.
- */
-# if defined(NOGDI)
-# undef NOGDI
-# endif
-# include
-#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
-# include
-#endif
-
-#include /* For size_t */
-
-#if defined(GLEW_EGL)
-#elif defined(GLEW_REGAL)
-
-/* In GLEW_REGAL mode we call direcly into the linked
- libRegal.so glGetProcAddressREGAL for looking up
- the GL function pointers. */
-
-# undef glGetProcAddressREGAL
-# ifdef WIN32
-extern void * __stdcall glGetProcAddressREGAL(const GLchar *name);
-static void * (__stdcall * regalGetProcAddress) (const GLchar *) = glGetProcAddressREGAL;
-# else
-extern void * glGetProcAddressREGAL(const GLchar *name);
-static void * (*regalGetProcAddress) (const GLchar *) = glGetProcAddressREGAL;
-# endif
-# define glGetProcAddressREGAL GLEW_GET_FUN(__glewGetProcAddressREGAL)
-
-#elif defined(__sgi) || defined (__sun) || defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
-#include
-#include
-#include
-
-void* dlGetProcAddress (const GLubyte* name)
-{
- static void* h = NULL;
- static void* gpa;
-
- if (h == NULL)
- {
- if ((h = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL)) == NULL) return NULL;
- gpa = dlsym(h, "glXGetProcAddress");
- }
-
- if (gpa != NULL)
- return ((void*(*)(const GLubyte*))gpa)(name);
- else
- return dlsym(h, (const char*)name);
-}
-#endif /* __sgi || __sun || GLEW_APPLE_GLX */
-
-#if defined(__APPLE__)
-#include
-#include
-#include
-
-#ifdef MAC_OS_X_VERSION_10_3
-
-#include
-
-void* NSGLGetProcAddress (const GLubyte *name)
-{
- static void* image = NULL;
- void* addr;
- if (NULL == image)
- {
- image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY);
- }
- if( !image ) return NULL;
- addr = dlsym(image, (const char*)name);
- if( addr ) return addr;
-#ifdef GLEW_APPLE_GLX
- return dlGetProcAddress( name ); // try next for glx symbols
-#else
- return NULL;
-#endif
-}
-#else
-
-#include
-
-void* NSGLGetProcAddress (const GLubyte *name)
-{
- static const struct mach_header* image = NULL;
- NSSymbol symbol;
- char* symbolName;
- if (NULL == image)
- {
- image = NSAddImage("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", NSADDIMAGE_OPTION_RETURN_ON_ERROR);
- }
- /* prepend a '_' for the Unix C symbol mangling convention */
- symbolName = malloc(strlen((const char*)name) + 2);
- strcpy(symbolName+1, (const char*)name);
- symbolName[0] = '_';
- symbol = NULL;
- /* if (NSIsSymbolNameDefined(symbolName))
- symbol = NSLookupAndBindSymbol(symbolName); */
- symbol = image ? NSLookupSymbolInImage(image, symbolName, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR) : NULL;
- free(symbolName);
- if( symbol ) return NSAddressOfSymbol(symbol);
-#ifdef GLEW_APPLE_GLX
- return dlGetProcAddress( name ); // try next for glx symbols
-#else
- return NULL;
-#endif
-}
-#endif /* MAC_OS_X_VERSION_10_3 */
-#endif /* __APPLE__ */
-
-/*
- * Define glewGetProcAddress.
- */
-#if defined(GLEW_REGAL)
-# define glewGetProcAddress(name) regalGetProcAddress((const GLchar *)name)
-#elif defined(GLEW_OSMESA)
-# define glewGetProcAddress(name) OSMesaGetProcAddress((const char *)name)
-#elif defined(GLEW_EGL)
-# define glewGetProcAddress(name) eglGetProcAddress((const char *)name)
-#elif defined(_WIN32)
-# define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name)
-#elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX)
-# define glewGetProcAddress(name) NSGLGetProcAddress(name)
-#elif defined(__sgi) || defined(__sun) || defined(__HAIKU__)
-# define glewGetProcAddress(name) dlGetProcAddress(name)
-#elif defined(__ANDROID__)
-# define glewGetProcAddress(name) NULL /* TODO */
-#elif defined(__native_client__)
-# define glewGetProcAddress(name) NULL /* TODO */
-#else /* __linux */
-# define glewGetProcAddress(name) (*glXGetProcAddressARB)(name)
-#endif
-
-/*
- * Redefine GLEW_GET_VAR etc without const cast
- */
-
-#undef GLEW_GET_VAR
-# define GLEW_GET_VAR(x) (x)
-
-#ifdef WGLEW_GET_VAR
-# undef WGLEW_GET_VAR
-# define WGLEW_GET_VAR(x) (x)
-#endif /* WGLEW_GET_VAR */
-
-#ifdef GLXEW_GET_VAR
-# undef GLXEW_GET_VAR
-# define GLXEW_GET_VAR(x) (x)
-#endif /* GLXEW_GET_VAR */
-
-#ifdef EGLEW_GET_VAR
-# undef EGLEW_GET_VAR
-# define EGLEW_GET_VAR(x) (x)
-#endif /* EGLEW_GET_VAR */
-
-/*
- * GLEW, just like OpenGL or GLU, does not rely on the standard C library.
- * These functions implement the functionality required in this file.
- */
-
-static GLuint _glewStrLen (const GLubyte* s)
-{
- GLuint i=0;
- if (s == NULL) return 0;
- while (s[i] != '\0') i++;
- return i;
-}
-
-static GLuint _glewStrCLen (const GLubyte* s, GLubyte c)
-{
- GLuint i=0;
- if (s == NULL) return 0;
- while (s[i] != '\0' && s[i] != c) i++;
- return i;
-}
-
-static GLuint _glewStrCopy(char *d, const char *s, char c)
-{
- GLuint i=0;
- if (s == NULL) return 0;
- while (s[i] != '\0' && s[i] != c) { d[i] = s[i]; i++; }
- d[i] = '\0';
- return i;
-}
-
-#if !defined(GLEW_OSMESA)
-#if !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
-static GLboolean _glewStrSame (const GLubyte* a, const GLubyte* b, GLuint n)
-{
- GLuint i=0;
- if(a == NULL || b == NULL)
- return (a == NULL && b == NULL && n == 0) ? GL_TRUE : GL_FALSE;
- while (i < n && a[i] != '\0' && b[i] != '\0' && a[i] == b[i]) i++;
- return i == n ? GL_TRUE : GL_FALSE;
-}
-#endif
-#endif
-
-static GLboolean _glewStrSame1 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb)
-{
- while (*na > 0 && (**a == ' ' || **a == '\n' || **a == '\r' || **a == '\t'))
- {
- (*a)++;
- (*na)--;
- }
- if(*na >= nb)
- {
- GLuint i=0;
- while (i < nb && (*a)+i != NULL && b+i != NULL && (*a)[i] == b[i]) i++;
- if(i == nb)
- {
- *a = *a + nb;
- *na = *na - nb;
- return GL_TRUE;
- }
- }
- return GL_FALSE;
-}
-
-static GLboolean _glewStrSame2 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb)
-{
- if(*na >= nb)
- {
- GLuint i=0;
- while (i < nb && (*a)+i != NULL && b+i != NULL && (*a)[i] == b[i]) i++;
- if(i == nb)
- {
- *a = *a + nb;
- *na = *na - nb;
- return GL_TRUE;
- }
- }
- return GL_FALSE;
-}
-
-static GLboolean _glewStrSame3 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb)
-{
- if(*na >= nb)
- {
- GLuint i=0;
- while (i < nb && (*a)+i != NULL && b+i != NULL && (*a)[i] == b[i]) i++;
- if (i == nb && (*na == nb || (*a)[i] == ' ' || (*a)[i] == '\n' || (*a)[i] == '\r' || (*a)[i] == '\t'))
- {
- *a = *a + nb;
- *na = *na - nb;
- return GL_TRUE;
- }
- }
- return GL_FALSE;
-}
-
-/*
- * Search for name in the extensions string. Use of strstr()
- * is not sufficient because extension names can be prefixes of
- * other extension names. Could use strtok() but the constant
- * string returned by glGetString might be in read-only memory.
- */
-#if !defined(GLEW_OSMESA)
-#if !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
-static GLboolean _glewSearchExtension (const char* name, const GLubyte *start, const GLubyte *end)
-{
- const GLubyte* p;
- GLuint len = _glewStrLen((const GLubyte*)name);
- p = start;
- while (p < end)
- {
- GLuint n = _glewStrCLen(p, ' ');
- if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE;
- p += n+1;
- }
- return GL_FALSE;
-}
-#endif
-#endif
-
-PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D = NULL;
-PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements = NULL;
-PFNGLTEXIMAGE3DPROC __glewTexImage3D = NULL;
-PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D = NULL;
-
-PFNGLACTIVETEXTUREPROC __glewActiveTexture = NULL;
-PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture = NULL;
-PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D = NULL;
-PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D = NULL;
-PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D = NULL;
-PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D = NULL;
-PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D = NULL;
-PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D = NULL;
-PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage = NULL;
-PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd = NULL;
-PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf = NULL;
-PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd = NULL;
-PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf = NULL;
-PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d = NULL;
-PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv = NULL;
-PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f = NULL;
-PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv = NULL;
-PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i = NULL;
-PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv = NULL;
-PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s = NULL;
-PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv = NULL;
-PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d = NULL;
-PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv = NULL;
-PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f = NULL;
-PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv = NULL;
-PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i = NULL;
-PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv = NULL;
-PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s = NULL;
-PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv = NULL;
-PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d = NULL;
-PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv = NULL;
-PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f = NULL;
-PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv = NULL;
-PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i = NULL;
-PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv = NULL;
-PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s = NULL;
-PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv = NULL;
-PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d = NULL;
-PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv = NULL;
-PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f = NULL;
-PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv = NULL;
-PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i = NULL;
-PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv = NULL;
-PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s = NULL;
-PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv = NULL;
-PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage = NULL;
-
-PFNGLBLENDCOLORPROC __glewBlendColor = NULL;
-PFNGLBLENDEQUATIONPROC __glewBlendEquation = NULL;
-PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate = NULL;
-PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer = NULL;
-PFNGLFOGCOORDDPROC __glewFogCoordd = NULL;
-PFNGLFOGCOORDDVPROC __glewFogCoorddv = NULL;
-PFNGLFOGCOORDFPROC __glewFogCoordf = NULL;
-PFNGLFOGCOORDFVPROC __glewFogCoordfv = NULL;
-PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays = NULL;
-PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements = NULL;
-PFNGLPOINTPARAMETERFPROC __glewPointParameterf = NULL;
-PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv = NULL;
-PFNGLPOINTPARAMETERIPROC __glewPointParameteri = NULL;
-PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv = NULL;
-PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b = NULL;
-PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv = NULL;
-PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d = NULL;
-PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv = NULL;
-PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f = NULL;
-PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv = NULL;
-PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i = NULL;
-PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv = NULL;
-PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s = NULL;
-PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv = NULL;
-PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub = NULL;
-PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv = NULL;
-PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui = NULL;
-PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv = NULL;
-PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us = NULL;
-PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv = NULL;
-PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer = NULL;
-PFNGLWINDOWPOS2DPROC __glewWindowPos2d = NULL;
-PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv = NULL;
-PFNGLWINDOWPOS2FPROC __glewWindowPos2f = NULL;
-PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv = NULL;
-PFNGLWINDOWPOS2IPROC __glewWindowPos2i = NULL;
-PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv = NULL;
-PFNGLWINDOWPOS2SPROC __glewWindowPos2s = NULL;
-PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv = NULL;
-PFNGLWINDOWPOS3DPROC __glewWindowPos3d = NULL;
-PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv = NULL;
-PFNGLWINDOWPOS3FPROC __glewWindowPos3f = NULL;
-PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv = NULL;
-PFNGLWINDOWPOS3IPROC __glewWindowPos3i = NULL;
-PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv = NULL;
-PFNGLWINDOWPOS3SPROC __glewWindowPos3s = NULL;
-PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv = NULL;
-
-PFNGLBEGINQUERYPROC __glewBeginQuery = NULL;
-PFNGLBINDBUFFERPROC __glewBindBuffer = NULL;
-PFNGLBUFFERDATAPROC __glewBufferData = NULL;
-PFNGLBUFFERSUBDATAPROC __glewBufferSubData = NULL;
-PFNGLDELETEBUFFERSPROC __glewDeleteBuffers = NULL;
-PFNGLDELETEQUERIESPROC __glewDeleteQueries = NULL;
-PFNGLENDQUERYPROC __glewEndQuery = NULL;
-PFNGLGENBUFFERSPROC __glewGenBuffers = NULL;
-PFNGLGENQUERIESPROC __glewGenQueries = NULL;
-PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv = NULL;
-PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv = NULL;
-PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData = NULL;
-PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv = NULL;
-PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv = NULL;
-PFNGLGETQUERYIVPROC __glewGetQueryiv = NULL;
-PFNGLISBUFFERPROC __glewIsBuffer = NULL;
-PFNGLISQUERYPROC __glewIsQuery = NULL;
-PFNGLMAPBUFFERPROC __glewMapBuffer = NULL;
-PFNGLUNMAPBUFFERPROC __glewUnmapBuffer = NULL;
-
-PFNGLATTACHSHADERPROC __glewAttachShader = NULL;
-PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation = NULL;
-PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate = NULL;
-PFNGLCOMPILESHADERPROC __glewCompileShader = NULL;
-PFNGLCREATEPROGRAMPROC __glewCreateProgram = NULL;
-PFNGLCREATESHADERPROC __glewCreateShader = NULL;
-PFNGLDELETEPROGRAMPROC __glewDeleteProgram = NULL;
-PFNGLDELETESHADERPROC __glewDeleteShader = NULL;
-PFNGLDETACHSHADERPROC __glewDetachShader = NULL;
-PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray = NULL;
-PFNGLDRAWBUFFERSPROC __glewDrawBuffers = NULL;
-PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray = NULL;
-PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib = NULL;
-PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform = NULL;
-PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders = NULL;
-PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation = NULL;
-PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog = NULL;
-PFNGLGETPROGRAMIVPROC __glewGetProgramiv = NULL;
-PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog = NULL;
-PFNGLGETSHADERSOURCEPROC __glewGetShaderSource = NULL;
-PFNGLGETSHADERIVPROC __glewGetShaderiv = NULL;
-PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation = NULL;
-PFNGLGETUNIFORMFVPROC __glewGetUniformfv = NULL;
-PFNGLGETUNIFORMIVPROC __glewGetUniformiv = NULL;
-PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv = NULL;
-PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv = NULL;
-PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv = NULL;
-PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv = NULL;
-PFNGLISPROGRAMPROC __glewIsProgram = NULL;
-PFNGLISSHADERPROC __glewIsShader = NULL;
-PFNGLLINKPROGRAMPROC __glewLinkProgram = NULL;
-PFNGLSHADERSOURCEPROC __glewShaderSource = NULL;
-PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate = NULL;
-PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate = NULL;
-PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate = NULL;
-PFNGLUNIFORM1FPROC __glewUniform1f = NULL;
-PFNGLUNIFORM1FVPROC __glewUniform1fv = NULL;
-PFNGLUNIFORM1IPROC __glewUniform1i = NULL;
-PFNGLUNIFORM1IVPROC __glewUniform1iv = NULL;
-PFNGLUNIFORM2FPROC __glewUniform2f = NULL;
-PFNGLUNIFORM2FVPROC __glewUniform2fv = NULL;
-PFNGLUNIFORM2IPROC __glewUniform2i = NULL;
-PFNGLUNIFORM2IVPROC __glewUniform2iv = NULL;
-PFNGLUNIFORM3FPROC __glewUniform3f = NULL;
-PFNGLUNIFORM3FVPROC __glewUniform3fv = NULL;
-PFNGLUNIFORM3IPROC __glewUniform3i = NULL;
-PFNGLUNIFORM3IVPROC __glewUniform3iv = NULL;
-PFNGLUNIFORM4FPROC __glewUniform4f = NULL;
-PFNGLUNIFORM4FVPROC __glewUniform4fv = NULL;
-PFNGLUNIFORM4IPROC __glewUniform4i = NULL;
-PFNGLUNIFORM4IVPROC __glewUniform4iv = NULL;
-PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv = NULL;
-PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv = NULL;
-PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv = NULL;
-PFNGLUSEPROGRAMPROC __glewUseProgram = NULL;
-PFNGLVALIDATEPROGRAMPROC __glewValidateProgram = NULL;
-PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d = NULL;
-PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv = NULL;
-PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f = NULL;
-PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv = NULL;
-PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s = NULL;
-PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv = NULL;
-PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d = NULL;
-PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv = NULL;
-PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f = NULL;
-PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv = NULL;
-PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s = NULL;
-PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv = NULL;
-PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d = NULL;
-PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv = NULL;
-PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f = NULL;
-PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv = NULL;
-PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s = NULL;
-PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv = NULL;
-PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv = NULL;
-PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv = NULL;
-PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv = NULL;
-PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub = NULL;
-PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv = NULL;
-PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv = NULL;
-PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv = NULL;
-PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv = NULL;
-PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d = NULL;
-PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv = NULL;
-PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f = NULL;
-PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv = NULL;
-PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv = NULL;
-PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s = NULL;
-PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv = NULL;
-PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv = NULL;
-PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv = NULL;
-PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv = NULL;
-PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer = NULL;
-
-PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv = NULL;
-PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv = NULL;
-PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv = NULL;
-PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv = NULL;
-PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv = NULL;
-PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv = NULL;
-
-PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender = NULL;
-PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback = NULL;
-PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation = NULL;
-PFNGLCLAMPCOLORPROC __glewClampColor = NULL;
-PFNGLCLEARBUFFERFIPROC __glewClearBufferfi = NULL;
-PFNGLCLEARBUFFERFVPROC __glewClearBufferfv = NULL;
-PFNGLCLEARBUFFERIVPROC __glewClearBufferiv = NULL;
-PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv = NULL;
-PFNGLCOLORMASKIPROC __glewColorMaski = NULL;
-PFNGLDISABLEIPROC __glewDisablei = NULL;
-PFNGLENABLEIPROC __glewEnablei = NULL;
-PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender = NULL;
-PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback = NULL;
-PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v = NULL;
-PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation = NULL;
-PFNGLGETSTRINGIPROC __glewGetStringi = NULL;
-PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv = NULL;
-PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv = NULL;
-PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying = NULL;
-PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv = NULL;
-PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv = NULL;
-PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv = NULL;
-PFNGLISENABLEDIPROC __glewIsEnabledi = NULL;
-PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv = NULL;
-PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv = NULL;
-PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings = NULL;
-PFNGLUNIFORM1UIPROC __glewUniform1ui = NULL;
-PFNGLUNIFORM1UIVPROC __glewUniform1uiv = NULL;
-PFNGLUNIFORM2UIPROC __glewUniform2ui = NULL;
-PFNGLUNIFORM2UIVPROC __glewUniform2uiv = NULL;
-PFNGLUNIFORM3UIPROC __glewUniform3ui = NULL;
-PFNGLUNIFORM3UIVPROC __glewUniform3uiv = NULL;
-PFNGLUNIFORM4UIPROC __glewUniform4ui = NULL;
-PFNGLUNIFORM4UIVPROC __glewUniform4uiv = NULL;
-PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i = NULL;
-PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv = NULL;
-PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui = NULL;
-PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv = NULL;
-PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i = NULL;
-PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv = NULL;
-PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui = NULL;
-PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv = NULL;
-PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i = NULL;
-PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv = NULL;
-PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui = NULL;
-PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv = NULL;
-PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv = NULL;
-PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i = NULL;
-PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv = NULL;
-PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv = NULL;
-PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv = NULL;
-PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui = NULL;
-PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv = NULL;
-PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv = NULL;
-PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer = NULL;
-
-PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced = NULL;
-PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced = NULL;
-PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex = NULL;
-PFNGLTEXBUFFERPROC __glewTexBuffer = NULL;
-
-PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture = NULL;
-PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v = NULL;
-PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v = NULL;
-
-PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor = NULL;
-
-PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei = NULL;
-PFNGLBLENDEQUATIONIPROC __glewBlendEquationi = NULL;
-PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei = NULL;
-PFNGLBLENDFUNCIPROC __glewBlendFunci = NULL;
-PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading = NULL;
-
-PFNGLGETGRAPHICSRESETSTATUSPROC __glewGetGraphicsResetStatus = NULL;
-PFNGLGETNCOMPRESSEDTEXIMAGEPROC __glewGetnCompressedTexImage = NULL;
-PFNGLGETNTEXIMAGEPROC __glewGetnTexImage = NULL;
-PFNGLGETNUNIFORMDVPROC __glewGetnUniformdv = NULL;
-
-PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC __glewMultiDrawArraysIndirectCount = NULL;
-PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC __glewMultiDrawElementsIndirectCount = NULL;
-PFNGLSPECIALIZESHADERPROC __glewSpecializeShader = NULL;
-
-PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX = NULL;
-
-PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD = NULL;
-PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD = NULL;
-PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD = NULL;
-PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD = NULL;
-
-PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD = NULL;
-PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD = NULL;
-PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD = NULL;
-PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD = NULL;
-
-PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewNamedRenderbufferStorageMultisampleAdvancedAMD = NULL;
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewRenderbufferStorageMultisampleAdvancedAMD = NULL;
-
-PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewFramebufferSamplePositionsfvAMD = NULL;
-PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC __glewGetFramebufferParameterfvAMD = NULL;
-PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC __glewGetNamedFramebufferParameterfvAMD = NULL;
-PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewNamedFramebufferSamplePositionsfvAMD = NULL;
-
-PFNGLVERTEXATTRIBPARAMETERIAMDPROC __glewVertexAttribParameteriAMD = NULL;
-
-PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD = NULL;
-PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC __glewMultiDrawElementsIndirectAMD = NULL;
-
-PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD = NULL;
-PFNGLGENNAMESAMDPROC __glewGenNamesAMD = NULL;
-PFNGLISNAMEAMDPROC __glewIsNameAMD = NULL;
-
-PFNGLQUERYOBJECTPARAMETERUIAMDPROC __glewQueryObjectParameteruiAMD = NULL;
-
-PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD = NULL;
-PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD = NULL;
-PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD = NULL;
-PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD = NULL;
-PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD = NULL;
-PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD = NULL;
-PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD = NULL;
-PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD = NULL;
-PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD = NULL;
-PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD = NULL;
-PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD = NULL;
-
-PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD = NULL;
-
-PFNGLTEXSTORAGESPARSEAMDPROC __glewTexStorageSparseAMD = NULL;
-PFNGLTEXTURESTORAGESPARSEAMDPROC __glewTextureStorageSparseAMD = NULL;
-
-PFNGLSTENCILOPVALUEAMDPROC __glewStencilOpValueAMD = NULL;
-
-PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD = NULL;
-PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD = NULL;
-
-PFNGLBLITFRAMEBUFFERANGLEPROC __glewBlitFramebufferANGLE = NULL;
-
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC __glewRenderbufferStorageMultisampleANGLE = NULL;
-
-PFNGLDRAWARRAYSINSTANCEDANGLEPROC __glewDrawArraysInstancedANGLE = NULL;
-PFNGLDRAWELEMENTSINSTANCEDANGLEPROC __glewDrawElementsInstancedANGLE = NULL;
-PFNGLVERTEXATTRIBDIVISORANGLEPROC __glewVertexAttribDivisorANGLE = NULL;
-
-PFNGLBEGINQUERYANGLEPROC __glewBeginQueryANGLE = NULL;
-PFNGLDELETEQUERIESANGLEPROC __glewDeleteQueriesANGLE = NULL;
-PFNGLENDQUERYANGLEPROC __glewEndQueryANGLE = NULL;
-PFNGLGENQUERIESANGLEPROC __glewGenQueriesANGLE = NULL;
-PFNGLGETQUERYOBJECTI64VANGLEPROC __glewGetQueryObjecti64vANGLE = NULL;
-PFNGLGETQUERYOBJECTIVANGLEPROC __glewGetQueryObjectivANGLE = NULL;
-PFNGLGETQUERYOBJECTUI64VANGLEPROC __glewGetQueryObjectui64vANGLE = NULL;
-PFNGLGETQUERYOBJECTUIVANGLEPROC __glewGetQueryObjectuivANGLE = NULL;
-PFNGLGETQUERYIVANGLEPROC __glewGetQueryivANGLE = NULL;
-PFNGLISQUERYANGLEPROC __glewIsQueryANGLE = NULL;
-PFNGLQUERYCOUNTERANGLEPROC __glewQueryCounterANGLE = NULL;
-
-PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC __glewGetTranslatedShaderSourceANGLE = NULL;
-
-PFNGLCOPYTEXTURELEVELSAPPLEPROC __glewCopyTextureLevelsAPPLE = NULL;
-
-PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE = NULL;
-PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE = NULL;
-PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE = NULL;
-PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE = NULL;
-PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE = NULL;
-
-PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE = NULL;
-PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE = NULL;
-PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE = NULL;
-PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE = NULL;
-PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE = NULL;
-PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE = NULL;
-PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE = NULL;
-PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE = NULL;
-
-PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE = NULL;
-PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE = NULL;
-
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC __glewRenderbufferStorageMultisampleAPPLE = NULL;
-PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC __glewResolveMultisampleFramebufferAPPLE = NULL;
-
-PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE = NULL;
-PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE = NULL;
-PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE = NULL;
-
-PFNGLCLIENTWAITSYNCAPPLEPROC __glewClientWaitSyncAPPLE = NULL;
-PFNGLDELETESYNCAPPLEPROC __glewDeleteSyncAPPLE = NULL;
-PFNGLFENCESYNCAPPLEPROC __glewFenceSyncAPPLE = NULL;
-PFNGLGETINTEGER64VAPPLEPROC __glewGetInteger64vAPPLE = NULL;
-PFNGLGETSYNCIVAPPLEPROC __glewGetSyncivAPPLE = NULL;
-PFNGLISSYNCAPPLEPROC __glewIsSyncAPPLE = NULL;
-PFNGLWAITSYNCAPPLEPROC __glewWaitSyncAPPLE = NULL;
-
-PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE = NULL;
-PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE = NULL;
-
-PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE = NULL;
-PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE = NULL;
-PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE = NULL;
-PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE = NULL;
-
-PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE = NULL;
-PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE = NULL;
-PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE = NULL;
-
-PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE = NULL;
-PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE = NULL;
-PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE = NULL;
-PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE = NULL;
-PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE = NULL;
-PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE = NULL;
-PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE = NULL;
-
-PFNGLCLEARDEPTHFPROC __glewClearDepthf = NULL;
-PFNGLDEPTHRANGEFPROC __glewDepthRangef = NULL;
-PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat = NULL;
-PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler = NULL;
-PFNGLSHADERBINARYPROC __glewShaderBinary = NULL;
-
-PFNGLMEMORYBARRIERBYREGIONPROC __glewMemoryBarrierByRegion = NULL;
-
-PFNGLPRIMITIVEBOUNDINGBOXARBPROC __glewPrimitiveBoundingBoxARB = NULL;
-
-PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC __glewDrawArraysInstancedBaseInstance = NULL;
-PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC __glewDrawElementsInstancedBaseInstance = NULL;
-PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC __glewDrawElementsInstancedBaseVertexBaseInstance = NULL;
-
-PFNGLGETIMAGEHANDLEARBPROC __glewGetImageHandleARB = NULL;
-PFNGLGETTEXTUREHANDLEARBPROC __glewGetTextureHandleARB = NULL;
-PFNGLGETTEXTURESAMPLERHANDLEARBPROC __glewGetTextureSamplerHandleARB = NULL;
-PFNGLGETVERTEXATTRIBLUI64VARBPROC __glewGetVertexAttribLui64vARB = NULL;
-PFNGLISIMAGEHANDLERESIDENTARBPROC __glewIsImageHandleResidentARB = NULL;
-PFNGLISTEXTUREHANDLERESIDENTARBPROC __glewIsTextureHandleResidentARB = NULL;
-PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC __glewMakeImageHandleNonResidentARB = NULL;
-PFNGLMAKEIMAGEHANDLERESIDENTARBPROC __glewMakeImageHandleResidentARB = NULL;
-PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC __glewMakeTextureHandleNonResidentARB = NULL;
-PFNGLMAKETEXTUREHANDLERESIDENTARBPROC __glewMakeTextureHandleResidentARB = NULL;
-PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC __glewProgramUniformHandleui64ARB = NULL;
-PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC __glewProgramUniformHandleui64vARB = NULL;
-PFNGLUNIFORMHANDLEUI64ARBPROC __glewUniformHandleui64ARB = NULL;
-PFNGLUNIFORMHANDLEUI64VARBPROC __glewUniformHandleui64vARB = NULL;
-PFNGLVERTEXATTRIBL1UI64ARBPROC __glewVertexAttribL1ui64ARB = NULL;
-PFNGLVERTEXATTRIBL1UI64VARBPROC __glewVertexAttribL1ui64vARB = NULL;
-
-PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed = NULL;
-PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex = NULL;
-
-PFNGLBUFFERSTORAGEPROC __glewBufferStorage = NULL;
-
-PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB = NULL;
-
-PFNGLCLEARBUFFERDATAPROC __glewClearBufferData = NULL;
-PFNGLCLEARBUFFERSUBDATAPROC __glewClearBufferSubData = NULL;
-PFNGLCLEARNAMEDBUFFERDATAEXTPROC __glewClearNamedBufferDataEXT = NULL;
-PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC __glewClearNamedBufferSubDataEXT = NULL;
-
-PFNGLCLEARTEXIMAGEPROC __glewClearTexImage = NULL;
-PFNGLCLEARTEXSUBIMAGEPROC __glewClearTexSubImage = NULL;
-
-PFNGLCLIPCONTROLPROC __glewClipControl = NULL;
-
-PFNGLCLAMPCOLORARBPROC __glewClampColorARB = NULL;
-
-PFNGLDISPATCHCOMPUTEPROC __glewDispatchCompute = NULL;
-PFNGLDISPATCHCOMPUTEINDIRECTPROC __glewDispatchComputeIndirect = NULL;
-
-PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC __glewDispatchComputeGroupSizeARB = NULL;
-
-PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData = NULL;
-
-PFNGLCOPYIMAGESUBDATAPROC __glewCopyImageSubData = NULL;
-
-PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB = NULL;
-PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB = NULL;
-PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB = NULL;
-PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB = NULL;
-
-PFNGLBINDTEXTUREUNITPROC __glewBindTextureUnit = NULL;
-PFNGLBLITNAMEDFRAMEBUFFERPROC __glewBlitNamedFramebuffer = NULL;
-PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC __glewCheckNamedFramebufferStatus = NULL;
-PFNGLCLEARNAMEDBUFFERDATAPROC __glewClearNamedBufferData = NULL;
-PFNGLCLEARNAMEDBUFFERSUBDATAPROC __glewClearNamedBufferSubData = NULL;
-PFNGLCLEARNAMEDFRAMEBUFFERFIPROC __glewClearNamedFramebufferfi = NULL;
-PFNGLCLEARNAMEDFRAMEBUFFERFVPROC __glewClearNamedFramebufferfv = NULL;
-PFNGLCLEARNAMEDFRAMEBUFFERIVPROC __glewClearNamedFramebufferiv = NULL;
-PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC __glewClearNamedFramebufferuiv = NULL;
-PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC __glewCompressedTextureSubImage1D = NULL;
-PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC __glewCompressedTextureSubImage2D = NULL;
-PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC __glewCompressedTextureSubImage3D = NULL;
-PFNGLCOPYNAMEDBUFFERSUBDATAPROC __glewCopyNamedBufferSubData = NULL;
-PFNGLCOPYTEXTURESUBIMAGE1DPROC __glewCopyTextureSubImage1D = NULL;
-PFNGLCOPYTEXTURESUBIMAGE2DPROC __glewCopyTextureSubImage2D = NULL;
-PFNGLCOPYTEXTURESUBIMAGE3DPROC __glewCopyTextureSubImage3D = NULL;
-PFNGLCREATEBUFFERSPROC __glewCreateBuffers = NULL;
-PFNGLCREATEFRAMEBUFFERSPROC __glewCreateFramebuffers = NULL;
-PFNGLCREATEPROGRAMPIPELINESPROC __glewCreateProgramPipelines = NULL;
-PFNGLCREATEQUERIESPROC __glewCreateQueries = NULL;
-PFNGLCREATERENDERBUFFERSPROC __glewCreateRenderbuffers = NULL;
-PFNGLCREATESAMPLERSPROC __glewCreateSamplers = NULL;
-PFNGLCREATETEXTURESPROC __glewCreateTextures = NULL;
-PFNGLCREATETRANSFORMFEEDBACKSPROC __glewCreateTransformFeedbacks = NULL;
-PFNGLCREATEVERTEXARRAYSPROC __glewCreateVertexArrays = NULL;
-PFNGLDISABLEVERTEXARRAYATTRIBPROC __glewDisableVertexArrayAttrib = NULL;
-PFNGLENABLEVERTEXARRAYATTRIBPROC __glewEnableVertexArrayAttrib = NULL;
-PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC __glewFlushMappedNamedBufferRange = NULL;
-PFNGLGENERATETEXTUREMIPMAPPROC __glewGenerateTextureMipmap = NULL;
-PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC __glewGetCompressedTextureImage = NULL;
-PFNGLGETNAMEDBUFFERPARAMETERI64VPROC __glewGetNamedBufferParameteri64v = NULL;
-PFNGLGETNAMEDBUFFERPARAMETERIVPROC __glewGetNamedBufferParameteriv = NULL;
-PFNGLGETNAMEDBUFFERPOINTERVPROC __glewGetNamedBufferPointerv = NULL;
-PFNGLGETNAMEDBUFFERSUBDATAPROC __glewGetNamedBufferSubData = NULL;
-PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetNamedFramebufferAttachmentParameteriv = NULL;
-PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC __glewGetNamedFramebufferParameteriv = NULL;
-PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC __glewGetNamedRenderbufferParameteriv = NULL;
-PFNGLGETQUERYBUFFEROBJECTI64VPROC __glewGetQueryBufferObjecti64v = NULL;
-PFNGLGETQUERYBUFFEROBJECTIVPROC __glewGetQueryBufferObjectiv = NULL;
-PFNGLGETQUERYBUFFEROBJECTUI64VPROC __glewGetQueryBufferObjectui64v = NULL;
-PFNGLGETQUERYBUFFEROBJECTUIVPROC __glewGetQueryBufferObjectuiv = NULL;
-PFNGLGETTEXTUREIMAGEPROC __glewGetTextureImage = NULL;
-PFNGLGETTEXTURELEVELPARAMETERFVPROC __glewGetTextureLevelParameterfv = NULL;
-PFNGLGETTEXTURELEVELPARAMETERIVPROC __glewGetTextureLevelParameteriv = NULL;
-PFNGLGETTEXTUREPARAMETERIIVPROC __glewGetTextureParameterIiv = NULL;
-PFNGLGETTEXTUREPARAMETERIUIVPROC __glewGetTextureParameterIuiv = NULL;
-PFNGLGETTEXTUREPARAMETERFVPROC __glewGetTextureParameterfv = NULL;
-PFNGLGETTEXTUREPARAMETERIVPROC __glewGetTextureParameteriv = NULL;
-PFNGLGETTRANSFORMFEEDBACKI64_VPROC __glewGetTransformFeedbacki64_v = NULL;
-PFNGLGETTRANSFORMFEEDBACKI_VPROC __glewGetTransformFeedbacki_v = NULL;
-PFNGLGETTRANSFORMFEEDBACKIVPROC __glewGetTransformFeedbackiv = NULL;
-PFNGLGETVERTEXARRAYINDEXED64IVPROC __glewGetVertexArrayIndexed64iv = NULL;
-PFNGLGETVERTEXARRAYINDEXEDIVPROC __glewGetVertexArrayIndexediv = NULL;
-PFNGLGETVERTEXARRAYIVPROC __glewGetVertexArrayiv = NULL;
-PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC __glewInvalidateNamedFramebufferData = NULL;
-PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC __glewInvalidateNamedFramebufferSubData = NULL;
-PFNGLMAPNAMEDBUFFERPROC __glewMapNamedBuffer = NULL;
-PFNGLMAPNAMEDBUFFERRANGEPROC __glewMapNamedBufferRange = NULL;
-PFNGLNAMEDBUFFERDATAPROC __glewNamedBufferData = NULL;
-PFNGLNAMEDBUFFERSTORAGEPROC __glewNamedBufferStorage = NULL;
-PFNGLNAMEDBUFFERSUBDATAPROC __glewNamedBufferSubData = NULL;
-PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC __glewNamedFramebufferDrawBuffer = NULL;
-PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC __glewNamedFramebufferDrawBuffers = NULL;
-PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC __glewNamedFramebufferParameteri = NULL;
-PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC __glewNamedFramebufferReadBuffer = NULL;
-PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC __glewNamedFramebufferRenderbuffer = NULL;
-PFNGLNAMEDFRAMEBUFFERTEXTUREPROC __glewNamedFramebufferTexture = NULL;
-PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC __glewNamedFramebufferTextureLayer = NULL;
-PFNGLNAMEDRENDERBUFFERSTORAGEPROC __glewNamedRenderbufferStorage = NULL;
-PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewNamedRenderbufferStorageMultisample = NULL;
-PFNGLTEXTUREBUFFERPROC __glewTextureBuffer = NULL;
-PFNGLTEXTUREBUFFERRANGEPROC __glewTextureBufferRange = NULL;
-PFNGLTEXTUREPARAMETERIIVPROC __glewTextureParameterIiv = NULL;
-PFNGLTEXTUREPARAMETERIUIVPROC __glewTextureParameterIuiv = NULL;
-PFNGLTEXTUREPARAMETERFPROC __glewTextureParameterf = NULL;
-PFNGLTEXTUREPARAMETERFVPROC __glewTextureParameterfv = NULL;
-PFNGLTEXTUREPARAMETERIPROC __glewTextureParameteri = NULL;
-PFNGLTEXTUREPARAMETERIVPROC __glewTextureParameteriv = NULL;
-PFNGLTEXTURESTORAGE1DPROC __glewTextureStorage1D = NULL;
-PFNGLTEXTURESTORAGE2DPROC __glewTextureStorage2D = NULL;
-PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC __glewTextureStorage2DMultisample = NULL;
-PFNGLTEXTURESTORAGE3DPROC __glewTextureStorage3D = NULL;
-PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC __glewTextureStorage3DMultisample = NULL;
-PFNGLTEXTURESUBIMAGE1DPROC __glewTextureSubImage1D = NULL;
-PFNGLTEXTURESUBIMAGE2DPROC __glewTextureSubImage2D = NULL;
-PFNGLTEXTURESUBIMAGE3DPROC __glewTextureSubImage3D = NULL;
-PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC __glewTransformFeedbackBufferBase = NULL;
-PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC __glewTransformFeedbackBufferRange = NULL;
-PFNGLUNMAPNAMEDBUFFERPROC __glewUnmapNamedBuffer = NULL;
-PFNGLVERTEXARRAYATTRIBBINDINGPROC __glewVertexArrayAttribBinding = NULL;
-PFNGLVERTEXARRAYATTRIBFORMATPROC __glewVertexArrayAttribFormat = NULL;
-PFNGLVERTEXARRAYATTRIBIFORMATPROC __glewVertexArrayAttribIFormat = NULL;
-PFNGLVERTEXARRAYATTRIBLFORMATPROC __glewVertexArrayAttribLFormat = NULL;
-PFNGLVERTEXARRAYBINDINGDIVISORPROC __glewVertexArrayBindingDivisor = NULL;
-PFNGLVERTEXARRAYELEMENTBUFFERPROC __glewVertexArrayElementBuffer = NULL;
-PFNGLVERTEXARRAYVERTEXBUFFERPROC __glewVertexArrayVertexBuffer = NULL;
-PFNGLVERTEXARRAYVERTEXBUFFERSPROC __glewVertexArrayVertexBuffers = NULL;
-
-PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB = NULL;
-
-PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB = NULL;
-PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB = NULL;
-PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB = NULL;
-PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB = NULL;
-
-PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex = NULL;
-PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex = NULL;
-PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex = NULL;
-PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex = NULL;
-
-PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect = NULL;
-PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect = NULL;
-
-PFNGLFRAMEBUFFERPARAMETERIPROC __glewFramebufferParameteri = NULL;
-PFNGLGETFRAMEBUFFERPARAMETERIVPROC __glewGetFramebufferParameteriv = NULL;
-PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC __glewGetNamedFramebufferParameterivEXT = NULL;
-PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC __glewNamedFramebufferParameteriEXT = NULL;
-
-PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer = NULL;
-PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer = NULL;
-PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer = NULL;
-PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus = NULL;
-PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers = NULL;
-PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers = NULL;
-PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer = NULL;
-PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D = NULL;
-PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D = NULL;
-PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D = NULL;
-PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer = NULL;
-PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers = NULL;
-PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers = NULL;
-PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap = NULL;
-PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv = NULL;
-PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv = NULL;
-PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer = NULL;
-PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer = NULL;
-PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage = NULL;
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample = NULL;
-
-PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB = NULL;
-PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB = NULL;
-PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB = NULL;
-PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB = NULL;
-
-PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary = NULL;
-PFNGLPROGRAMBINARYPROC __glewProgramBinary = NULL;
-PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri = NULL;
-
-PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC __glewGetCompressedTextureSubImage = NULL;
-PFNGLGETTEXTURESUBIMAGEPROC __glewGetTextureSubImage = NULL;
-
-PFNGLSPECIALIZESHADERARBPROC __glewSpecializeShaderARB = NULL;
-
-PFNGLGETUNIFORMDVPROC __glewGetUniformdv = NULL;
-PFNGLUNIFORM1DPROC __glewUniform1d = NULL;
-PFNGLUNIFORM1DVPROC __glewUniform1dv = NULL;
-PFNGLUNIFORM2DPROC __glewUniform2d = NULL;
-PFNGLUNIFORM2DVPROC __glewUniform2dv = NULL;
-PFNGLUNIFORM3DPROC __glewUniform3d = NULL;
-PFNGLUNIFORM3DVPROC __glewUniform3dv = NULL;
-PFNGLUNIFORM4DPROC __glewUniform4d = NULL;
-PFNGLUNIFORM4DVPROC __glewUniform4dv = NULL;
-PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv = NULL;
-PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv = NULL;
-PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv = NULL;
-PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv = NULL;
-PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv = NULL;
-PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv = NULL;
-PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv = NULL;
-PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv = NULL;
-PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv = NULL;
-
-PFNGLGETUNIFORMI64VARBPROC __glewGetUniformi64vARB = NULL;
-PFNGLGETUNIFORMUI64VARBPROC __glewGetUniformui64vARB = NULL;
-PFNGLGETNUNIFORMI64VARBPROC __glewGetnUniformi64vARB = NULL;
-PFNGLGETNUNIFORMUI64VARBPROC __glewGetnUniformui64vARB = NULL;
-PFNGLPROGRAMUNIFORM1I64ARBPROC __glewProgramUniform1i64ARB = NULL;
-PFNGLPROGRAMUNIFORM1I64VARBPROC __glewProgramUniform1i64vARB = NULL;
-PFNGLPROGRAMUNIFORM1UI64ARBPROC __glewProgramUniform1ui64ARB = NULL;
-PFNGLPROGRAMUNIFORM1UI64VARBPROC __glewProgramUniform1ui64vARB = NULL;
-PFNGLPROGRAMUNIFORM2I64ARBPROC __glewProgramUniform2i64ARB = NULL;
-PFNGLPROGRAMUNIFORM2I64VARBPROC __glewProgramUniform2i64vARB = NULL;
-PFNGLPROGRAMUNIFORM2UI64ARBPROC __glewProgramUniform2ui64ARB = NULL;
-PFNGLPROGRAMUNIFORM2UI64VARBPROC __glewProgramUniform2ui64vARB = NULL;
-PFNGLPROGRAMUNIFORM3I64ARBPROC __glewProgramUniform3i64ARB = NULL;
-PFNGLPROGRAMUNIFORM3I64VARBPROC __glewProgramUniform3i64vARB = NULL;
-PFNGLPROGRAMUNIFORM3UI64ARBPROC __glewProgramUniform3ui64ARB = NULL;
-PFNGLPROGRAMUNIFORM3UI64VARBPROC __glewProgramUniform3ui64vARB = NULL;
-PFNGLPROGRAMUNIFORM4I64ARBPROC __glewProgramUniform4i64ARB = NULL;
-PFNGLPROGRAMUNIFORM4I64VARBPROC __glewProgramUniform4i64vARB = NULL;
-PFNGLPROGRAMUNIFORM4UI64ARBPROC __glewProgramUniform4ui64ARB = NULL;
-PFNGLPROGRAMUNIFORM4UI64VARBPROC __glewProgramUniform4ui64vARB = NULL;
-PFNGLUNIFORM1I64ARBPROC __glewUniform1i64ARB = NULL;
-PFNGLUNIFORM1I64VARBPROC __glewUniform1i64vARB = NULL;
-PFNGLUNIFORM1UI64ARBPROC __glewUniform1ui64ARB = NULL;
-PFNGLUNIFORM1UI64VARBPROC __glewUniform1ui64vARB = NULL;
-PFNGLUNIFORM2I64ARBPROC __glewUniform2i64ARB = NULL;
-PFNGLUNIFORM2I64VARBPROC __glewUniform2i64vARB = NULL;
-PFNGLUNIFORM2UI64ARBPROC __glewUniform2ui64ARB = NULL;
-PFNGLUNIFORM2UI64VARBPROC __glewUniform2ui64vARB = NULL;
-PFNGLUNIFORM3I64ARBPROC __glewUniform3i64ARB = NULL;
-PFNGLUNIFORM3I64VARBPROC __glewUniform3i64vARB = NULL;
-PFNGLUNIFORM3UI64ARBPROC __glewUniform3ui64ARB = NULL;
-PFNGLUNIFORM3UI64VARBPROC __glewUniform3ui64vARB = NULL;
-PFNGLUNIFORM4I64ARBPROC __glewUniform4i64ARB = NULL;
-PFNGLUNIFORM4I64VARBPROC __glewUniform4i64vARB = NULL;
-PFNGLUNIFORM4UI64ARBPROC __glewUniform4ui64ARB = NULL;
-PFNGLUNIFORM4UI64VARBPROC __glewUniform4ui64vARB = NULL;
-
-PFNGLCOLORSUBTABLEPROC __glewColorSubTable = NULL;
-PFNGLCOLORTABLEPROC __glewColorTable = NULL;
-PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv = NULL;
-PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv = NULL;
-PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D = NULL;
-PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D = NULL;
-PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf = NULL;
-PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv = NULL;
-PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri = NULL;
-PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv = NULL;
-PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable = NULL;
-PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable = NULL;
-PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D = NULL;
-PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D = NULL;
-PFNGLGETCOLORTABLEPROC __glewGetColorTable = NULL;
-PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv = NULL;
-PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv = NULL;
-PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter = NULL;
-PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv = NULL;
-PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv = NULL;
-PFNGLGETHISTOGRAMPROC __glewGetHistogram = NULL;
-PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv = NULL;
-PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv = NULL;
-PFNGLGETMINMAXPROC __glewGetMinmax = NULL;
-PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv = NULL;
-PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv = NULL;
-PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter = NULL;
-PFNGLHISTOGRAMPROC __glewHistogram = NULL;
-PFNGLMINMAXPROC __glewMinmax = NULL;
-PFNGLRESETHISTOGRAMPROC __glewResetHistogram = NULL;
-PFNGLRESETMINMAXPROC __glewResetMinmax = NULL;
-PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D = NULL;
-
-PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC __glewMultiDrawArraysIndirectCountARB = NULL;
-PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC __glewMultiDrawElementsIndirectCountARB = NULL;
-
-PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB = NULL;
-PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB = NULL;
-PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB = NULL;
-
-PFNGLGETINTERNALFORMATIVPROC __glewGetInternalformativ = NULL;
-
-PFNGLGETINTERNALFORMATI64VPROC __glewGetInternalformati64v = NULL;
-
-PFNGLINVALIDATEBUFFERDATAPROC __glewInvalidateBufferData = NULL;
-PFNGLINVALIDATEBUFFERSUBDATAPROC __glewInvalidateBufferSubData = NULL;
-PFNGLINVALIDATEFRAMEBUFFERPROC __glewInvalidateFramebuffer = NULL;
-PFNGLINVALIDATESUBFRAMEBUFFERPROC __glewInvalidateSubFramebuffer = NULL;
-PFNGLINVALIDATETEXIMAGEPROC __glewInvalidateTexImage = NULL;
-PFNGLINVALIDATETEXSUBIMAGEPROC __glewInvalidateTexSubImage = NULL;
-
-PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange = NULL;
-PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange = NULL;
-
-PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB = NULL;
-PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB = NULL;
-PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB = NULL;
-PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB = NULL;
-PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB = NULL;
-
-PFNGLBINDBUFFERSBASEPROC __glewBindBuffersBase = NULL;
-PFNGLBINDBUFFERSRANGEPROC __glewBindBuffersRange = NULL;
-PFNGLBINDIMAGETEXTURESPROC __glewBindImageTextures = NULL;
-PFNGLBINDSAMPLERSPROC __glewBindSamplers = NULL;
-PFNGLBINDTEXTURESPROC __glewBindTextures = NULL;
-PFNGLBINDVERTEXBUFFERSPROC __glewBindVertexBuffers = NULL;
-
-PFNGLMULTIDRAWARRAYSINDIRECTPROC __glewMultiDrawArraysIndirect = NULL;
-PFNGLMULTIDRAWELEMENTSINDIRECTPROC __glewMultiDrawElementsIndirect = NULL;
-
-PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB = NULL;
-
-PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB = NULL;
-PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB = NULL;
-PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB = NULL;
-PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB = NULL;
-PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB = NULL;
-PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB = NULL;
-PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB = NULL;
-PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB = NULL;
-PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB = NULL;
-PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB = NULL;
-PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB = NULL;
-PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB = NULL;
-PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB = NULL;
-PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB = NULL;
-PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB = NULL;
-PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB = NULL;
-PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB = NULL;
-PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB = NULL;
-PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB = NULL;
-PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB = NULL;
-PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB = NULL;
-PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB = NULL;
-PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB = NULL;
-PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB = NULL;
-PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB = NULL;
-PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB = NULL;
-PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB = NULL;
-PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB = NULL;
-PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB = NULL;
-PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB = NULL;
-PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB = NULL;
-PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB = NULL;
-PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB = NULL;
-PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB = NULL;
-
-PFNGLBEGINQUERYARBPROC __glewBeginQueryARB = NULL;
-PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB = NULL;
-PFNGLENDQUERYARBPROC __glewEndQueryARB = NULL;
-PFNGLGENQUERIESARBPROC __glewGenQueriesARB = NULL;
-PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB = NULL;
-PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB = NULL;
-PFNGLGETQUERYIVARBPROC __glewGetQueryivARB = NULL;
-PFNGLISQUERYARBPROC __glewIsQueryARB = NULL;
-
-PFNGLMAXSHADERCOMPILERTHREADSARBPROC __glewMaxShaderCompilerThreadsARB = NULL;
-
-PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB = NULL;
-PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB = NULL;
-
-PFNGLPOLYGONOFFSETCLAMPPROC __glewPolygonOffsetClamp = NULL;
-
-PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv = NULL;
-PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex = NULL;
-PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation = NULL;
-PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC __glewGetProgramResourceLocationIndex = NULL;
-PFNGLGETPROGRAMRESOURCENAMEPROC __glewGetProgramResourceName = NULL;
-PFNGLGETPROGRAMRESOURCEIVPROC __glewGetProgramResourceiv = NULL;
-
-PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex = NULL;
-
-PFNGLGETGRAPHICSRESETSTATUSARBPROC __glewGetGraphicsResetStatusARB = NULL;
-PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB = NULL;
-PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB = NULL;
-PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB = NULL;
-PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB = NULL;
-PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB = NULL;
-PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB = NULL;
-PFNGLGETNMAPIVARBPROC __glewGetnMapivARB = NULL;
-PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB = NULL;
-PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB = NULL;
-PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB = NULL;
-PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB = NULL;
-PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB = NULL;
-PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB = NULL;
-PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB = NULL;
-PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB = NULL;
-PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB = NULL;
-PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB = NULL;
-PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB = NULL;
-PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB = NULL;
-
-PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC __glewFramebufferSampleLocationsfvARB = NULL;
-PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC __glewNamedFramebufferSampleLocationsfvARB = NULL;
-
-PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB = NULL;
-
-PFNGLBINDSAMPLERPROC __glewBindSampler = NULL;
-PFNGLDELETESAMPLERSPROC __glewDeleteSamplers = NULL;
-PFNGLGENSAMPLERSPROC __glewGenSamplers = NULL;
-PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv = NULL;
-PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv = NULL;
-PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv = NULL;
-PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv = NULL;
-PFNGLISSAMPLERPROC __glewIsSampler = NULL;
-PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv = NULL;
-PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv = NULL;
-PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf = NULL;
-PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv = NULL;
-PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri = NULL;
-PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv = NULL;
-
-PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram = NULL;
-PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline = NULL;
-PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv = NULL;
-PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines = NULL;
-PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines = NULL;
-PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog = NULL;
-PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv = NULL;
-PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline = NULL;
-PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d = NULL;
-PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv = NULL;
-PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f = NULL;
-PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv = NULL;
-PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i = NULL;
-PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv = NULL;
-PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui = NULL;
-PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv = NULL;
-PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d = NULL;
-PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv = NULL;
-PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f = NULL;
-PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv = NULL;
-PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i = NULL;
-PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv = NULL;
-PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui = NULL;
-PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv = NULL;
-PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d = NULL;
-PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv = NULL;
-PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f = NULL;
-PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv = NULL;
-PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i = NULL;
-PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv = NULL;
-PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui = NULL;
-PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv = NULL;
-PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d = NULL;
-PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv = NULL;
-PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f = NULL;
-PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv = NULL;
-PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i = NULL;
-PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv = NULL;
-PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui = NULL;
-PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv = NULL;
-PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv = NULL;
-PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages = NULL;
-PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline = NULL;
-
-PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC __glewGetActiveAtomicCounterBufferiv = NULL;
-
-PFNGLBINDIMAGETEXTUREPROC __glewBindImageTexture = NULL;
-PFNGLMEMORYBARRIERPROC __glewMemoryBarrier = NULL;
-
-PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB = NULL;
-PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB = NULL;
-PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB = NULL;
-PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB = NULL;
-PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB = NULL;
-PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB = NULL;
-PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB = NULL;
-PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB = NULL;
-PFNGLGETHANDLEARBPROC __glewGetHandleARB = NULL;
-PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB = NULL;
-PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB = NULL;
-PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB = NULL;
-PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB = NULL;
-PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB = NULL;
-PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB = NULL;
-PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB = NULL;
-PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB = NULL;
-PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB = NULL;
-PFNGLUNIFORM1FARBPROC __glewUniform1fARB = NULL;
-PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB = NULL;
-PFNGLUNIFORM1IARBPROC __glewUniform1iARB = NULL;
-PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB = NULL;
-PFNGLUNIFORM2FARBPROC __glewUniform2fARB = NULL;
-PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB = NULL;
-PFNGLUNIFORM2IARBPROC __glewUniform2iARB = NULL;
-PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB = NULL;
-PFNGLUNIFORM3FARBPROC __glewUniform3fARB = NULL;
-PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB = NULL;
-PFNGLUNIFORM3IARBPROC __glewUniform3iARB = NULL;
-PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB = NULL;
-PFNGLUNIFORM4FARBPROC __glewUniform4fARB = NULL;
-PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB = NULL;
-PFNGLUNIFORM4IARBPROC __glewUniform4iARB = NULL;
-PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB = NULL;
-PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB = NULL;
-PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB = NULL;
-PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB = NULL;
-PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB = NULL;
-PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB = NULL;
-
-PFNGLSHADERSTORAGEBLOCKBINDINGPROC __glewShaderStorageBlockBinding = NULL;
-
-PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName = NULL;
-PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName = NULL;
-PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv = NULL;
-PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv = NULL;
-PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex = NULL;
-PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation = NULL;
-PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv = NULL;
-PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv = NULL;
-
-PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB = NULL;
-PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB = NULL;
-PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB = NULL;
-PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB = NULL;
-PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB = NULL;
-PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB = NULL;
-
-PFNGLBUFFERPAGECOMMITMENTARBPROC __glewBufferPageCommitmentARB = NULL;
-
-PFNGLTEXPAGECOMMITMENTARBPROC __glewTexPageCommitmentARB = NULL;
-
-PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync = NULL;
-PFNGLDELETESYNCPROC __glewDeleteSync = NULL;
-PFNGLFENCESYNCPROC __glewFenceSync = NULL;
-PFNGLGETINTEGER64VPROC __glewGetInteger64v = NULL;
-PFNGLGETSYNCIVPROC __glewGetSynciv = NULL;
-PFNGLISSYNCPROC __glewIsSync = NULL;
-PFNGLWAITSYNCPROC __glewWaitSync = NULL;
-
-PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv = NULL;
-PFNGLPATCHPARAMETERIPROC __glewPatchParameteri = NULL;
-
-PFNGLTEXTUREBARRIERPROC __glewTextureBarrier = NULL;
-
-PFNGLTEXBUFFERARBPROC __glewTexBufferARB = NULL;
-
-PFNGLTEXBUFFERRANGEPROC __glewTexBufferRange = NULL;
-PFNGLTEXTUREBUFFERRANGEEXTPROC __glewTextureBufferRangeEXT = NULL;
-
-PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB = NULL;
-PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB = NULL;
-PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB = NULL;
-PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB = NULL;
-PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB = NULL;
-PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB = NULL;
-PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB = NULL;
-
-PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv = NULL;
-PFNGLSAMPLEMASKIPROC __glewSampleMaski = NULL;
-PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample = NULL;
-PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample = NULL;
-
-PFNGLTEXSTORAGE1DPROC __glewTexStorage1D = NULL;
-PFNGLTEXSTORAGE2DPROC __glewTexStorage2D = NULL;
-PFNGLTEXSTORAGE3DPROC __glewTexStorage3D = NULL;
-
-PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample = NULL;
-PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample = NULL;
-PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC __glewTextureStorage2DMultisampleEXT = NULL;
-PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC __glewTextureStorage3DMultisampleEXT = NULL;
-
-PFNGLTEXTUREVIEWPROC __glewTextureView = NULL;
-
-PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v = NULL;
-PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v = NULL;
-PFNGLQUERYCOUNTERPROC __glewQueryCounter = NULL;
-
-PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback = NULL;
-PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks = NULL;
-PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback = NULL;
-PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks = NULL;
-PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback = NULL;
-PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback = NULL;
-PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback = NULL;
-
-PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed = NULL;
-PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream = NULL;
-PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed = NULL;
-PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv = NULL;
-
-PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC __glewDrawTransformFeedbackInstanced = NULL;
-PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC __glewDrawTransformFeedbackStreamInstanced = NULL;
-
-PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB = NULL;
-PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB = NULL;
-PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB = NULL;
-PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB = NULL;
-
-PFNGLBINDBUFFERBASEPROC __glewBindBufferBase = NULL;
-PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange = NULL;
-PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName = NULL;
-PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv = NULL;
-PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName = NULL;
-PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv = NULL;
-PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v = NULL;
-PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex = NULL;
-PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices = NULL;
-PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding = NULL;
-
-PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray = NULL;
-PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays = NULL;
-PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays = NULL;
-PFNGLISVERTEXARRAYPROC __glewIsVertexArray = NULL;
-
-PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv = NULL;
-PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d = NULL;
-PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv = NULL;
-PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d = NULL;
-PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv = NULL;
-PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d = NULL;
-PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv = NULL;
-PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d = NULL;
-PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv = NULL;
-PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer = NULL;
-
-PFNGLBINDVERTEXBUFFERPROC __glewBindVertexBuffer = NULL;
-PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC __glewVertexArrayBindVertexBufferEXT = NULL;
-PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC __glewVertexArrayVertexAttribBindingEXT = NULL;
-PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC __glewVertexArrayVertexAttribFormatEXT = NULL;
-PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC __glewVertexArrayVertexAttribIFormatEXT = NULL;
-PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC __glewVertexArrayVertexAttribLFormatEXT = NULL;
-PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC __glewVertexArrayVertexBindingDivisorEXT = NULL;
-PFNGLVERTEXATTRIBBINDINGPROC __glewVertexAttribBinding = NULL;
-PFNGLVERTEXATTRIBFORMATPROC __glewVertexAttribFormat = NULL;
-PFNGLVERTEXATTRIBIFORMATPROC __glewVertexAttribIFormat = NULL;
-PFNGLVERTEXATTRIBLFORMATPROC __glewVertexAttribLFormat = NULL;
-PFNGLVERTEXBINDINGDIVISORPROC __glewVertexBindingDivisor = NULL;
-
-PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB = NULL;
-PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB = NULL;
-PFNGLWEIGHTBVARBPROC __glewWeightbvARB = NULL;
-PFNGLWEIGHTDVARBPROC __glewWeightdvARB = NULL;
-PFNGLWEIGHTFVARBPROC __glewWeightfvARB = NULL;
-PFNGLWEIGHTIVARBPROC __glewWeightivARB = NULL;
-PFNGLWEIGHTSVARBPROC __glewWeightsvARB = NULL;
-PFNGLWEIGHTUBVARBPROC __glewWeightubvARB = NULL;
-PFNGLWEIGHTUIVARBPROC __glewWeightuivARB = NULL;
-PFNGLWEIGHTUSVARBPROC __glewWeightusvARB = NULL;
-
-PFNGLBINDBUFFERARBPROC __glewBindBufferARB = NULL;
-PFNGLBUFFERDATAARBPROC __glewBufferDataARB = NULL;
-PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB = NULL;
-PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB = NULL;
-PFNGLGENBUFFERSARBPROC __glewGenBuffersARB = NULL;
-PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB = NULL;
-PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB = NULL;
-PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB = NULL;
-PFNGLISBUFFERARBPROC __glewIsBufferARB = NULL;
-PFNGLMAPBUFFERARBPROC __glewMapBufferARB = NULL;
-PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB = NULL;
-
-PFNGLBINDPROGRAMARBPROC __glewBindProgramARB = NULL;
-PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB = NULL;
-PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB = NULL;
-PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB = NULL;
-PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB = NULL;
-PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB = NULL;
-PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB = NULL;
-PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB = NULL;
-PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB = NULL;
-PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB = NULL;
-PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB = NULL;
-PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB = NULL;
-PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB = NULL;
-PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB = NULL;
-PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB = NULL;
-PFNGLISPROGRAMARBPROC __glewIsProgramARB = NULL;
-PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB = NULL;
-PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB = NULL;
-PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB = NULL;
-PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB = NULL;
-PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB = NULL;
-PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB = NULL;
-PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB = NULL;
-PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB = NULL;
-PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB = NULL;
-PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB = NULL;
-PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB = NULL;
-PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB = NULL;
-PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB = NULL;
-PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB = NULL;
-PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB = NULL;
-PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB = NULL;
-PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB = NULL;
-PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB = NULL;
-PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB = NULL;
-PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB = NULL;
-PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB = NULL;
-PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB = NULL;
-PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB = NULL;
-PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB = NULL;
-PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB = NULL;
-PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB = NULL;
-PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB = NULL;
-PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB = NULL;
-PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB = NULL;
-PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB = NULL;
-PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB = NULL;
-PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB = NULL;
-PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB = NULL;
-PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB = NULL;
-PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB = NULL;
-PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB = NULL;
-PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB = NULL;
-PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB = NULL;
-PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB = NULL;
-PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB = NULL;
-PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB = NULL;
-PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB = NULL;
-PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB = NULL;
-PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB = NULL;
-PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB = NULL;
-PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB = NULL;
-
-PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB = NULL;
-PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB = NULL;
-PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB = NULL;
-
-PFNGLCOLORP3UIPROC __glewColorP3ui = NULL;
-PFNGLCOLORP3UIVPROC __glewColorP3uiv = NULL;
-PFNGLCOLORP4UIPROC __glewColorP4ui = NULL;
-PFNGLCOLORP4UIVPROC __glewColorP4uiv = NULL;
-PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui = NULL;
-PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv = NULL;
-PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui = NULL;
-PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv = NULL;
-PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui = NULL;
-PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv = NULL;
-PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui = NULL;
-PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv = NULL;
-PFNGLNORMALP3UIPROC __glewNormalP3ui = NULL;
-PFNGLNORMALP3UIVPROC __glewNormalP3uiv = NULL;
-PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui = NULL;
-PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv = NULL;
-PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui = NULL;
-PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv = NULL;
-PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui = NULL;
-PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv = NULL;
-PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui = NULL;
-PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv = NULL;
-PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui = NULL;
-PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv = NULL;
-PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui = NULL;
-PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv = NULL;
-PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui = NULL;
-PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv = NULL;
-PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui = NULL;
-PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv = NULL;
-PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui = NULL;
-PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv = NULL;
-PFNGLVERTEXP2UIPROC __glewVertexP2ui = NULL;
-PFNGLVERTEXP2UIVPROC __glewVertexP2uiv = NULL;
-PFNGLVERTEXP3UIPROC __glewVertexP3ui = NULL;
-PFNGLVERTEXP3UIVPROC __glewVertexP3uiv = NULL;
-PFNGLVERTEXP4UIPROC __glewVertexP4ui = NULL;
-PFNGLVERTEXP4UIVPROC __glewVertexP4uiv = NULL;
-
-PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv = NULL;
-PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed = NULL;
-PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v = NULL;
-PFNGLGETFLOATI_VPROC __glewGetFloati_v = NULL;
-PFNGLSCISSORARRAYVPROC __glewScissorArrayv = NULL;
-PFNGLSCISSORINDEXEDPROC __glewScissorIndexed = NULL;
-PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv = NULL;
-PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv = NULL;
-PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf = NULL;
-PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv = NULL;
-
-PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB = NULL;
-PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB = NULL;
-PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB = NULL;
-PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB = NULL;
-PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB = NULL;
-PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB = NULL;
-PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB = NULL;
-PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB = NULL;
-PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB = NULL;
-PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB = NULL;
-PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB = NULL;
-PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB = NULL;
-PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB = NULL;
-PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB = NULL;
-PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB = NULL;
-PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB = NULL;
-
-PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI = NULL;
-
-PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI = NULL;
-PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI = NULL;
-PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI = NULL;
-
-PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI = NULL;
-PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI = NULL;
-PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI = NULL;
-PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI = NULL;
-
-PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI = NULL;
-PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI = NULL;
-PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI = NULL;
-PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI = NULL;
-PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI = NULL;
-PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI = NULL;
-PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI = NULL;
-PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI = NULL;
-PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI = NULL;
-PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI = NULL;
-PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI = NULL;
-PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI = NULL;
-PFNGLSAMPLEMAPATIPROC __glewSampleMapATI = NULL;
-PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI = NULL;
-
-PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI = NULL;
-PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI = NULL;
-
-PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI = NULL;
-PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI = NULL;
-
-PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI = NULL;
-PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI = NULL;
-
-PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI = NULL;
-PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI = NULL;
-PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI = NULL;
-PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI = NULL;
-PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI = NULL;
-PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI = NULL;
-PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI = NULL;
-PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI = NULL;
-PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI = NULL;
-PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI = NULL;
-PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI = NULL;
-PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI = NULL;
-
-PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI = NULL;
-PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI = NULL;
-PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI = NULL;
-
-PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI = NULL;
-PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI = NULL;
-PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI = NULL;
-PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI = NULL;
-PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI = NULL;
-PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI = NULL;
-PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI = NULL;
-PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI = NULL;
-PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI = NULL;
-PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI = NULL;
-PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI = NULL;
-PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI = NULL;
-PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI = NULL;
-PFNGLVERTEXSTREAM1DATIPROC __glewVertexStream1dATI = NULL;
-PFNGLVERTEXSTREAM1DVATIPROC __glewVertexStream1dvATI = NULL;
-PFNGLVERTEXSTREAM1FATIPROC __glewVertexStream1fATI = NULL;
-PFNGLVERTEXSTREAM1FVATIPROC __glewVertexStream1fvATI = NULL;
-PFNGLVERTEXSTREAM1IATIPROC __glewVertexStream1iATI = NULL;
-PFNGLVERTEXSTREAM1IVATIPROC __glewVertexStream1ivATI = NULL;
-PFNGLVERTEXSTREAM1SATIPROC __glewVertexStream1sATI = NULL;
-PFNGLVERTEXSTREAM1SVATIPROC __glewVertexStream1svATI = NULL;
-PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI = NULL;
-PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI = NULL;
-PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI = NULL;
-PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI = NULL;
-PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI = NULL;
-PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI = NULL;
-PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI = NULL;
-PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI = NULL;
-PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI = NULL;
-PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI = NULL;
-PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI = NULL;
-PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI = NULL;
-PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI = NULL;
-PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI = NULL;
-PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI = NULL;
-PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI = NULL;
-PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI = NULL;
-PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI = NULL;
-PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI = NULL;
-PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI = NULL;
-PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI = NULL;
-PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI = NULL;
-PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI = NULL;
-PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI = NULL;
-
-PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC __glewEGLImageTargetTexStorageEXT = NULL;
-PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC __glewEGLImageTargetTextureStorageEXT = NULL;
-
-PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC __glewDrawArraysInstancedBaseInstanceEXT = NULL;
-PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseInstanceEXT = NULL;
-PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseVertexBaseInstanceEXT = NULL;
-
-PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT = NULL;
-PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT = NULL;
-PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT = NULL;
-
-PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT = NULL;
-
-PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT = NULL;
-
-PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC __glewBindFragDataLocationIndexedEXT = NULL;
-PFNGLGETFRAGDATAINDEXEXTPROC __glewGetFragDataIndexEXT = NULL;
-PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC __glewGetProgramResourceLocationIndexEXT = NULL;
-
-PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT = NULL;
-
-PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT = NULL;
-
-PFNGLBUFFERSTORAGEEXTPROC __glewBufferStorageEXT = NULL;
-PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT = NULL;
-
-PFNGLCLEARTEXIMAGEEXTPROC __glewClearTexImageEXT = NULL;
-PFNGLCLEARTEXSUBIMAGEEXTPROC __glewClearTexSubImageEXT = NULL;
-
-PFNGLCLIPCONTROLEXTPROC __glewClipControlEXT = NULL;
-
-PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT = NULL;
-PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT = NULL;
-
-PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT = NULL;
-PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT = NULL;
-
-PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT = NULL;
-PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT = NULL;
-PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT = NULL;
-PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT = NULL;
-PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT = NULL;
-PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT = NULL;
-PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT = NULL;
-PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT = NULL;
-PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT = NULL;
-PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT = NULL;
-PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT = NULL;
-PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT = NULL;
-PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT = NULL;
-
-PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT = NULL;
-PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT = NULL;
-
-PFNGLCOPYIMAGESUBDATAEXTPROC __glewCopyImageSubDataEXT = NULL;
-
-PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT = NULL;
-PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT = NULL;
-PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT = NULL;
-PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT = NULL;
-PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT = NULL;
-
-PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT = NULL;
-PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT = NULL;
-
-PFNGLGETOBJECTLABELEXTPROC __glewGetObjectLabelEXT = NULL;
-PFNGLLABELOBJECTEXTPROC __glewLabelObjectEXT = NULL;
-
-PFNGLINSERTEVENTMARKEREXTPROC __glewInsertEventMarkerEXT = NULL;
-PFNGLPOPGROUPMARKEREXTPROC __glewPopGroupMarkerEXT = NULL;
-PFNGLPUSHGROUPMARKEREXTPROC __glewPushGroupMarkerEXT = NULL;
-
-PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT = NULL;
-
-PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT = NULL;
-PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT = NULL;
-PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT = NULL;
-PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT = NULL;
-PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT = NULL;
-PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT = NULL;
-PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT = NULL;
-PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT = NULL;
-PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT = NULL;
-PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT = NULL;
-PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT = NULL;
-PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT = NULL;
-PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT = NULL;
-PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT = NULL;
-PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT = NULL;
-PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT = NULL;
-PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT = NULL;
-PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT = NULL;
-PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT = NULL;
-PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT = NULL;
-PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT = NULL;
-PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT = NULL;
-PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT = NULL;
-PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT = NULL;
-PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT = NULL;
-PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT = NULL;
-PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT = NULL;
-PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT = NULL;
-PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT = NULL;
-PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT = NULL;
-PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT = NULL;
-PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT = NULL;
-PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT = NULL;
-PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT = NULL;
-PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT = NULL;
-PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT = NULL;
-PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT = NULL;
-PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT = NULL;
-PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT = NULL;
-PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT = NULL;
-PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT = NULL;
-PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT = NULL;
-PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT = NULL;
-PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT = NULL;
-PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT = NULL;
-PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT = NULL;
-PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT = NULL;
-PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT = NULL;
-PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT = NULL;
-PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT = NULL;
-PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT = NULL;
-PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT = NULL;
-PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT = NULL;
-PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT = NULL;
-PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT = NULL;
-PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT = NULL;
-PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT = NULL;
-PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT = NULL;
-PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT = NULL;
-PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT = NULL;
-PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT = NULL;
-PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT = NULL;
-PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT = NULL;
-PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT = NULL;
-PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT = NULL;
-PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT = NULL;
-PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT = NULL;
-PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT = NULL;
-PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT = NULL;
-PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT = NULL;
-PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT = NULL;
-PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT = NULL;
-PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT = NULL;
-PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT = NULL;
-PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT = NULL;
-PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT = NULL;
-PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT = NULL;
-PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT = NULL;
-PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT = NULL;
-PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT = NULL;
-PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT = NULL;
-PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT = NULL;
-PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT = NULL;
-PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT = NULL;
-PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT = NULL;
-PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT = NULL;
-PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT = NULL;
-PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT = NULL;
-PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT = NULL;
-PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT = NULL;
-PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT = NULL;
-PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT = NULL;
-PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT = NULL;
-PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT = NULL;
-PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT = NULL;
-PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT = NULL;
-PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT = NULL;
-PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT = NULL;
-PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT = NULL;
-PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT = NULL;
-PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT = NULL;
-PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT = NULL;
-PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT = NULL;
-PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT = NULL;
-PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT = NULL;
-PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT = NULL;
-PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT = NULL;
-PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT = NULL;
-PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT = NULL;
-PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT = NULL;
-PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT = NULL;
-PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT = NULL;
-PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT = NULL;
-PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT = NULL;
-PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT = NULL;
-PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT = NULL;
-PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT = NULL;
-PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT = NULL;
-PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT = NULL;
-PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT = NULL;
-PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT = NULL;
-PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT = NULL;
-PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT = NULL;
-PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT = NULL;
-PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT = NULL;
-PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT = NULL;
-PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT = NULL;
-PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT = NULL;
-PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT = NULL;
-PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT = NULL;
-PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT = NULL;
-PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT = NULL;
-PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT = NULL;
-PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT = NULL;
-PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT = NULL;
-PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT = NULL;
-PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT = NULL;
-PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT = NULL;
-PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT = NULL;
-PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT = NULL;
-PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT = NULL;
-PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT = NULL;
-PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT = NULL;
-PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT = NULL;
-PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT = NULL;
-PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT = NULL;
-PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT = NULL;
-PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT = NULL;
-PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT = NULL;
-PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT = NULL;
-PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT = NULL;
-PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT = NULL;
-PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT = NULL;
-PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT = NULL;
-PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT = NULL;
-PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT = NULL;
-PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT = NULL;
-PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT = NULL;
-PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT = NULL;
-PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT = NULL;
-PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT = NULL;
-PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT = NULL;
-PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT = NULL;
-PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT = NULL;
-PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT = NULL;
-PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT = NULL;
-PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT = NULL;
-PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT = NULL;
-PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT = NULL;
-PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT = NULL;
-PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT = NULL;
-PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT = NULL;
-PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT = NULL;
-PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT = NULL;
-PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT = NULL;
-PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT = NULL;
-PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT = NULL;
-PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT = NULL;
-PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT = NULL;
-PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT = NULL;
-PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT = NULL;
-PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT = NULL;
-PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT = NULL;
-PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT = NULL;
-PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT = NULL;
-PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT = NULL;
-PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT = NULL;
-PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT = NULL;
-PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT = NULL;
-PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT = NULL;
-PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT = NULL;
-PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT = NULL;
-PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT = NULL;
-PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT = NULL;
-PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT = NULL;
-PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT = NULL;
-PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT = NULL;
-PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT = NULL;
-PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT = NULL;
-PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT = NULL;
-PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT = NULL;
-PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT = NULL;
-PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT = NULL;
-PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT = NULL;
-PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT = NULL;
-PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT = NULL;
-PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT = NULL;
-PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT = NULL;
-PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT = NULL;
-PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT = NULL;
-PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC __glewVertexArrayVertexAttribDivisorEXT = NULL;
-PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT = NULL;
-PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT = NULL;
-PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT = NULL;
-
-PFNGLDISCARDFRAMEBUFFEREXTPROC __glewDiscardFramebufferEXT = NULL;
-
-PFNGLBEGINQUERYEXTPROC __glewBeginQueryEXT = NULL;
-PFNGLDELETEQUERIESEXTPROC __glewDeleteQueriesEXT = NULL;
-PFNGLENDQUERYEXTPROC __glewEndQueryEXT = NULL;
-PFNGLGENQUERIESEXTPROC __glewGenQueriesEXT = NULL;
-PFNGLGETINTEGER64VEXTPROC __glewGetInteger64vEXT = NULL;
-PFNGLGETQUERYOBJECTIVEXTPROC __glewGetQueryObjectivEXT = NULL;
-PFNGLGETQUERYOBJECTUIVEXTPROC __glewGetQueryObjectuivEXT = NULL;
-PFNGLGETQUERYIVEXTPROC __glewGetQueryivEXT = NULL;
-PFNGLISQUERYEXTPROC __glewIsQueryEXT = NULL;
-PFNGLQUERYCOUNTEREXTPROC __glewQueryCounterEXT = NULL;
-
-PFNGLDRAWBUFFERSEXTPROC __glewDrawBuffersEXT = NULL;
-
-PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT = NULL;
-PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT = NULL;
-PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT = NULL;
-PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT = NULL;
-PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT = NULL;
-PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT = NULL;
-
-PFNGLBLENDEQUATIONSEPARATEIEXTPROC __glewBlendEquationSeparateiEXT = NULL;
-PFNGLBLENDEQUATIONIEXTPROC __glewBlendEquationiEXT = NULL;
-PFNGLBLENDFUNCSEPARATEIEXTPROC __glewBlendFuncSeparateiEXT = NULL;
-PFNGLBLENDFUNCIEXTPROC __glewBlendFunciEXT = NULL;
-PFNGLCOLORMASKIEXTPROC __glewColorMaskiEXT = NULL;
-PFNGLDISABLEIEXTPROC __glewDisableiEXT = NULL;
-PFNGLENABLEIEXTPROC __glewEnableiEXT = NULL;
-PFNGLISENABLEDIEXTPROC __glewIsEnablediEXT = NULL;
-
-PFNGLDRAWELEMENTSBASEVERTEXEXTPROC __glewDrawElementsBaseVertexEXT = NULL;
-PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC __glewDrawElementsInstancedBaseVertexEXT = NULL;
-PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC __glewDrawRangeElementsBaseVertexEXT = NULL;
-PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC __glewMultiDrawElementsBaseVertexEXT = NULL;
-
-PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT = NULL;
-PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT = NULL;
-
-PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT = NULL;
-
-PFNGLDRAWTRANSFORMFEEDBACKEXTPROC __glewDrawTransformFeedbackEXT = NULL;
-PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC __glewDrawTransformFeedbackInstancedEXT = NULL;
-
-PFNGLBUFFERSTORAGEEXTERNALEXTPROC __glewBufferStorageExternalEXT = NULL;
-PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC __glewNamedBufferStorageExternalEXT = NULL;
-
-PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT = NULL;
-PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT = NULL;
-PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT = NULL;
-PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT = NULL;
-PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT = NULL;
-
-PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT = NULL;
-PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT = NULL;
-PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT = NULL;
-PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT = NULL;
-PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT = NULL;
-PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT = NULL;
-PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT = NULL;
-PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT = NULL;
-PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT = NULL;
-PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT = NULL;
-PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT = NULL;
-PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT = NULL;
-PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT = NULL;
-PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT = NULL;
-PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT = NULL;
-PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT = NULL;
-PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT = NULL;
-PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT = NULL;
-
-PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT = NULL;
-
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT = NULL;
-
-PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT = NULL;
-PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT = NULL;
-PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT = NULL;
-PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT = NULL;
-PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT = NULL;
-PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT = NULL;
-PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT = NULL;
-PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT = NULL;
-PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT = NULL;
-PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT = NULL;
-PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT = NULL;
-PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT = NULL;
-PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT = NULL;
-PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT = NULL;
-PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT = NULL;
-PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT = NULL;
-PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT = NULL;
-
-PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT = NULL;
-PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT = NULL;
-PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT = NULL;
-
-PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT = NULL;
-PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT = NULL;
-
-PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT = NULL;
-PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT = NULL;
-PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT = NULL;
-PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT = NULL;
-PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT = NULL;
-PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT = NULL;
-PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT = NULL;
-PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT = NULL;
-PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT = NULL;
-PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT = NULL;
-PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT = NULL;
-PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT = NULL;
-PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT = NULL;
-PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT = NULL;
-PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT = NULL;
-PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT = NULL;
-PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT = NULL;
-PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT = NULL;
-PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT = NULL;
-PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT = NULL;
-PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT = NULL;
-PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT = NULL;
-PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT = NULL;
-PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT = NULL;
-PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT = NULL;
-PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT = NULL;
-PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT = NULL;
-PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT = NULL;
-PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT = NULL;
-PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT = NULL;
-PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT = NULL;
-PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT = NULL;
-PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT = NULL;
-PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT = NULL;
-
-PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT = NULL;
-PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT = NULL;
-PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT = NULL;
-PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT = NULL;
-PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT = NULL;
-PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT = NULL;
-PFNGLHISTOGRAMEXTPROC __glewHistogramEXT = NULL;
-PFNGLMINMAXEXTPROC __glewMinmaxEXT = NULL;
-PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT = NULL;
-PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT = NULL;
-
-PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT = NULL;
-
-PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT = NULL;
-
-PFNGLVERTEXATTRIBDIVISOREXTPROC __glewVertexAttribDivisorEXT = NULL;
-
-PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT = NULL;
-PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT = NULL;
-PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT = NULL;
-
-PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC __glewFlushMappedBufferRangeEXT = NULL;
-PFNGLMAPBUFFERRANGEEXTPROC __glewMapBufferRangeEXT = NULL;
-
-PFNGLBUFFERSTORAGEMEMEXTPROC __glewBufferStorageMemEXT = NULL;
-PFNGLCREATEMEMORYOBJECTSEXTPROC __glewCreateMemoryObjectsEXT = NULL;
-PFNGLDELETEMEMORYOBJECTSEXTPROC __glewDeleteMemoryObjectsEXT = NULL;
-PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC __glewGetMemoryObjectParameterivEXT = NULL;
-PFNGLGETUNSIGNEDBYTEI_VEXTPROC __glewGetUnsignedBytei_vEXT = NULL;
-PFNGLGETUNSIGNEDBYTEVEXTPROC __glewGetUnsignedBytevEXT = NULL;
-PFNGLISMEMORYOBJECTEXTPROC __glewIsMemoryObjectEXT = NULL;
-PFNGLMEMORYOBJECTPARAMETERIVEXTPROC __glewMemoryObjectParameterivEXT = NULL;
-PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC __glewNamedBufferStorageMemEXT = NULL;
-PFNGLTEXSTORAGEMEM1DEXTPROC __glewTexStorageMem1DEXT = NULL;
-PFNGLTEXSTORAGEMEM2DEXTPROC __glewTexStorageMem2DEXT = NULL;
-PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC __glewTexStorageMem2DMultisampleEXT = NULL;
-PFNGLTEXSTORAGEMEM3DEXTPROC __glewTexStorageMem3DEXT = NULL;
-PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC __glewTexStorageMem3DMultisampleEXT = NULL;
-PFNGLTEXTURESTORAGEMEM1DEXTPROC __glewTextureStorageMem1DEXT = NULL;
-PFNGLTEXTURESTORAGEMEM2DEXTPROC __glewTextureStorageMem2DEXT = NULL;
-PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC __glewTextureStorageMem2DMultisampleEXT = NULL;
-PFNGLTEXTURESTORAGEMEM3DEXTPROC __glewTextureStorageMem3DEXT = NULL;
-PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC __glewTextureStorageMem3DMultisampleEXT = NULL;
-
-PFNGLIMPORTMEMORYFDEXTPROC __glewImportMemoryFdEXT = NULL;
-
-PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC __glewImportMemoryWin32HandleEXT = NULL;
-PFNGLIMPORTMEMORYWIN32NAMEEXTPROC __glewImportMemoryWin32NameEXT = NULL;
-
-PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT = NULL;
-PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT = NULL;
-
-PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC __glewMultiDrawArraysIndirectEXT = NULL;
-PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC __glewMultiDrawElementsIndirectEXT = NULL;
-
-PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT = NULL;
-PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT = NULL;
-
-PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC __glewFramebufferTexture2DMultisampleEXT = NULL;
-
-PFNGLDRAWBUFFERSINDEXEDEXTPROC __glewDrawBuffersIndexedEXT = NULL;
-PFNGLGETINTEGERI_VEXTPROC __glewGetIntegeri_vEXT = NULL;
-PFNGLREADBUFFERINDEXEDEXTPROC __glewReadBufferIndexedEXT = NULL;
-
-PFNGLCOLORTABLEEXTPROC __glewColorTableEXT = NULL;
-PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT = NULL;
-PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT = NULL;
-PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT = NULL;
-
-PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT = NULL;
-PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT = NULL;
-PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT = NULL;
-PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT = NULL;
-PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT = NULL;
-PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT = NULL;
-
-PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT = NULL;
-PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT = NULL;
-
-PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT = NULL;
-
-PFNGLPOLYGONOFFSETCLAMPEXTPROC __glewPolygonOffsetClampEXT = NULL;
-
-PFNGLPRIMITIVEBOUNDINGBOXEXTPROC __glewPrimitiveBoundingBoxEXT = NULL;
-
-PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT = NULL;
-
-PFNGLCOVERAGEMODULATIONNVPROC __glewCoverageModulationNV = NULL;
-PFNGLCOVERAGEMODULATIONTABLENVPROC __glewCoverageModulationTableNV = NULL;
-PFNGLGETCOVERAGEMODULATIONTABLENVPROC __glewGetCoverageModulationTableNV = NULL;
-PFNGLRASTERSAMPLESEXTPROC __glewRasterSamplesEXT = NULL;
-
-PFNGLGETNUNIFORMFVEXTPROC __glewGetnUniformfvEXT = NULL;
-PFNGLGETNUNIFORMIVEXTPROC __glewGetnUniformivEXT = NULL;
-PFNGLREADNPIXELSEXTPROC __glewReadnPixelsEXT = NULL;
-
-PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT = NULL;
-PFNGLENDSCENEEXTPROC __glewEndSceneEXT = NULL;
-
-PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT = NULL;
-PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT = NULL;
-PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT = NULL;
-PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT = NULL;
-PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT = NULL;
-PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT = NULL;
-PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT = NULL;
-PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT = NULL;
-PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT = NULL;
-PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT = NULL;
-PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT = NULL;
-PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT = NULL;
-PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT = NULL;
-PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT = NULL;
-PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT = NULL;
-PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT = NULL;
-PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT = NULL;
-
-PFNGLDELETESEMAPHORESEXTPROC __glewDeleteSemaphoresEXT = NULL;
-PFNGLGENSEMAPHORESEXTPROC __glewGenSemaphoresEXT = NULL;
-PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC __glewGetSemaphoreParameterui64vEXT = NULL;
-PFNGLISSEMAPHOREEXTPROC __glewIsSemaphoreEXT = NULL;
-PFNGLSEMAPHOREPARAMETERUI64VEXTPROC __glewSemaphoreParameterui64vEXT = NULL;
-PFNGLSIGNALSEMAPHOREEXTPROC __glewSignalSemaphoreEXT = NULL;
-PFNGLWAITSEMAPHOREEXTPROC __glewWaitSemaphoreEXT = NULL;
-
-PFNGLIMPORTSEMAPHOREFDEXTPROC __glewImportSemaphoreFdEXT = NULL;
-
-PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC __glewImportSemaphoreWin32HandleEXT = NULL;
-PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC __glewImportSemaphoreWin32NameEXT = NULL;
-
-PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT = NULL;
-PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT = NULL;
-PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT = NULL;
-
-PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC __glewFramebufferFetchBarrierEXT = NULL;
-
-PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT = NULL;
-PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT = NULL;
-
-PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC __glewClearPixelLocalStorageuiEXT = NULL;
-PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewFramebufferPixelLocalStorageSizeEXT = NULL;
-PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewGetFramebufferPixelLocalStorageSizeEXT = NULL;
-
-PFNGLTEXPAGECOMMITMENTEXTPROC __glewTexPageCommitmentEXT = NULL;
-PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT = NULL;
-
-PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT = NULL;
-
-PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT = NULL;
-PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT = NULL;
-PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT = NULL;
-
-PFNGLPATCHPARAMETERIEXTPROC __glewPatchParameteriEXT = NULL;
-
-PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT = NULL;
-
-PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT = NULL;
-
-PFNGLGETSAMPLERPARAMETERIIVEXTPROC __glewGetSamplerParameterIivEXT = NULL;
-PFNGLGETSAMPLERPARAMETERIUIVEXTPROC __glewGetSamplerParameterIuivEXT = NULL;
-PFNGLSAMPLERPARAMETERIIVEXTPROC __glewSamplerParameterIivEXT = NULL;
-PFNGLSAMPLERPARAMETERIUIVEXTPROC __glewSamplerParameterIuivEXT = NULL;
-
-PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT = NULL;
-
-PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT = NULL;
-PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT = NULL;
-PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT = NULL;
-PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT = NULL;
-PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT = NULL;
-PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT = NULL;
-
-PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT = NULL;
-PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT = NULL;
-PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT = NULL;
-PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT = NULL;
-PFNGLISTEXTUREEXTPROC __glewIsTextureEXT = NULL;
-PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT = NULL;
-
-PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT = NULL;
-
-PFNGLTEXSTORAGE1DEXTPROC __glewTexStorage1DEXT = NULL;
-PFNGLTEXSTORAGE2DEXTPROC __glewTexStorage2DEXT = NULL;
-PFNGLTEXSTORAGE3DEXTPROC __glewTexStorage3DEXT = NULL;
-PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT = NULL;
-PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT = NULL;
-PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT = NULL;
-
-PFNGLTEXTUREVIEWEXTPROC __glewTextureViewEXT = NULL;
-
-PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT = NULL;
-PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT = NULL;
-
-PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT = NULL;
-PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT = NULL;
-PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT = NULL;
-PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT = NULL;
-PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT = NULL;
-PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT = NULL;
-PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT = NULL;
-
-PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT = NULL;
-PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT = NULL;
-PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT = NULL;
-PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT = NULL;
-PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT = NULL;
-PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT = NULL;
-PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT = NULL;
-PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT = NULL;
-
-PFNGLBINDARRAYSETEXTPROC __glewBindArraySetEXT = NULL;
-PFNGLCREATEARRAYSETEXTPROC __glewCreateArraySetExt = NULL;
-PFNGLDELETEARRAYSETSEXTPROC __glewDeleteArraySetsEXT = NULL;
-
-PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT = NULL;
-PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT = NULL;
-PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT = NULL;
-PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT = NULL;
-PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT = NULL;
-PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT = NULL;
-PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT = NULL;
-PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT = NULL;
-PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT = NULL;
-PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT = NULL;
-PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT = NULL;
-
-PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT = NULL;
-PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT = NULL;
-PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT = NULL;
-PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT = NULL;
-PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT = NULL;
-PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT = NULL;
-PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT = NULL;
-PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT = NULL;
-PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT = NULL;
-PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT = NULL;
-PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT = NULL;
-PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT = NULL;
-PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT = NULL;
-PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT = NULL;
-PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT = NULL;
-PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT = NULL;
-PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT = NULL;
-PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT = NULL;
-PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT = NULL;
-PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT = NULL;
-PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT = NULL;
-PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT = NULL;
-PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT = NULL;
-PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT = NULL;
-PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT = NULL;
-PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT = NULL;
-PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT = NULL;
-PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT = NULL;
-PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT = NULL;
-PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT = NULL;
-PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT = NULL;
-PFNGLSWIZZLEEXTPROC __glewSwizzleEXT = NULL;
-PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT = NULL;
-PFNGLVARIANTBVEXTPROC __glewVariantbvEXT = NULL;
-PFNGLVARIANTDVEXTPROC __glewVariantdvEXT = NULL;
-PFNGLVARIANTFVEXTPROC __glewVariantfvEXT = NULL;
-PFNGLVARIANTIVEXTPROC __glewVariantivEXT = NULL;
-PFNGLVARIANTSVEXTPROC __glewVariantsvEXT = NULL;
-PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT = NULL;
-PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT = NULL;
-PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT = NULL;
-PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT = NULL;
-
-PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT = NULL;
-PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT = NULL;
-PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT = NULL;
-
-PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC __glewAcquireKeyedMutexWin32EXT = NULL;
-PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC __glewReleaseKeyedMutexWin32EXT = NULL;
-
-PFNGLWINDOWRECTANGLESEXTPROC __glewWindowRectanglesEXT = NULL;
-
-PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT = NULL;
-
-PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY = NULL;
-
-PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY = NULL;
-
-PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP = NULL;
-PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP = NULL;
-PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP = NULL;
-PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP = NULL;
-PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP = NULL;
-PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP = NULL;
-
-PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM = NULL;
-PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM = NULL;
-
-PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM = NULL;
-PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM = NULL;
-PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM = NULL;
-PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM = NULL;
-PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM = NULL;
-PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM = NULL;
-PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM = NULL;
-PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM = NULL;
-
-PFNGLGETTEXTUREHANDLEIMGPROC __glewGetTextureHandleIMG = NULL;
-PFNGLGETTEXTURESAMPLERHANDLEIMGPROC __glewGetTextureSamplerHandleIMG = NULL;
-PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC __glewProgramUniformHandleui64IMG = NULL;
-PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC __glewProgramUniformHandleui64vIMG = NULL;
-PFNGLUNIFORMHANDLEUI64IMGPROC __glewUniformHandleui64IMG = NULL;
-PFNGLUNIFORMHANDLEUI64VIMGPROC __glewUniformHandleui64vIMG = NULL;
-
-PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC __glewFramebufferTexture2DDownsampleIMG = NULL;
-PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC __glewFramebufferTextureLayerDownsampleIMG = NULL;
-
-PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC __glewFramebufferTexture2DMultisampleIMG = NULL;
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC __glewRenderbufferStorageMultisampleIMG = NULL;
-
-PFNGLMAPTEXTURE2DINTELPROC __glewMapTexture2DINTEL = NULL;
-PFNGLSYNCTEXTUREINTELPROC __glewSyncTextureINTEL = NULL;
-PFNGLUNMAPTEXTURE2DINTELPROC __glewUnmapTexture2DINTEL = NULL;
-
-PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL = NULL;
-PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL = NULL;
-PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL = NULL;
-PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL = NULL;
-
-PFNGLBEGINPERFQUERYINTELPROC __glewBeginPerfQueryINTEL = NULL;
-PFNGLCREATEPERFQUERYINTELPROC __glewCreatePerfQueryINTEL = NULL;
-PFNGLDELETEPERFQUERYINTELPROC __glewDeletePerfQueryINTEL = NULL;
-PFNGLENDPERFQUERYINTELPROC __glewEndPerfQueryINTEL = NULL;
-PFNGLGETFIRSTPERFQUERYIDINTELPROC __glewGetFirstPerfQueryIdINTEL = NULL;
-PFNGLGETNEXTPERFQUERYIDINTELPROC __glewGetNextPerfQueryIdINTEL = NULL;
-PFNGLGETPERFCOUNTERINFOINTELPROC __glewGetPerfCounterInfoINTEL = NULL;
-PFNGLGETPERFQUERYDATAINTELPROC __glewGetPerfQueryDataINTEL = NULL;
-PFNGLGETPERFQUERYIDBYNAMEINTELPROC __glewGetPerfQueryIdByNameINTEL = NULL;
-PFNGLGETPERFQUERYINFOINTELPROC __glewGetPerfQueryInfoINTEL = NULL;
-
-PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL = NULL;
-PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL = NULL;
-
-PFNGLBLENDBARRIERKHRPROC __glewBlendBarrierKHR = NULL;
-
-PFNGLDEBUGMESSAGECALLBACKPROC __glewDebugMessageCallback = NULL;
-PFNGLDEBUGMESSAGECONTROLPROC __glewDebugMessageControl = NULL;
-PFNGLDEBUGMESSAGEINSERTPROC __glewDebugMessageInsert = NULL;
-PFNGLGETDEBUGMESSAGELOGPROC __glewGetDebugMessageLog = NULL;
-PFNGLGETOBJECTLABELPROC __glewGetObjectLabel = NULL;
-PFNGLGETOBJECTPTRLABELPROC __glewGetObjectPtrLabel = NULL;
-PFNGLOBJECTLABELPROC __glewObjectLabel = NULL;
-PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel = NULL;
-PFNGLPOPDEBUGGROUPPROC __glewPopDebugGroup = NULL;
-PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup = NULL;
-
-PFNGLMAXSHADERCOMPILERTHREADSKHRPROC __glewMaxShaderCompilerThreadsKHR = NULL;
-
-PFNGLGETNUNIFORMFVPROC __glewGetnUniformfv = NULL;
-PFNGLGETNUNIFORMIVPROC __glewGetnUniformiv = NULL;
-PFNGLGETNUNIFORMUIVPROC __glewGetnUniformuiv = NULL;
-PFNGLREADNPIXELSPROC __glewReadnPixels = NULL;
-
-PFNGLBUFFERREGIONENABLEDPROC __glewBufferRegionEnabled = NULL;
-PFNGLDELETEBUFFERREGIONPROC __glewDeleteBufferRegion = NULL;
-PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion = NULL;
-PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion = NULL;
-PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion = NULL;
-
-PFNGLFRAMEBUFFERPARAMETERIMESAPROC __glewFramebufferParameteriMESA = NULL;
-PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC __glewGetFramebufferParameterivMESA = NULL;
-
-PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA = NULL;
-
-PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA = NULL;
-PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA = NULL;
-PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA = NULL;
-PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA = NULL;
-PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA = NULL;
-PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA = NULL;
-PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA = NULL;
-PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA = NULL;
-PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA = NULL;
-PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA = NULL;
-PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA = NULL;
-PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA = NULL;
-PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA = NULL;
-PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA = NULL;
-PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA = NULL;
-PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA = NULL;
-PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA = NULL;
-PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA = NULL;
-PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA = NULL;
-PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA = NULL;
-PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA = NULL;
-PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA = NULL;
-PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA = NULL;
-PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA = NULL;
-
-PFNGLBEGINCONDITIONALRENDERNVXPROC __glewBeginConditionalRenderNVX = NULL;
-PFNGLENDCONDITIONALRENDERNVXPROC __glewEndConditionalRenderNVX = NULL;
-
-PFNGLASYNCCOPYBUFFERSUBDATANVXPROC __glewAsyncCopyBufferSubDataNVX = NULL;
-PFNGLASYNCCOPYIMAGESUBDATANVXPROC __glewAsyncCopyImageSubDataNVX = NULL;
-PFNGLMULTICASTSCISSORARRAYVNVXPROC __glewMulticastScissorArrayvNVX = NULL;
-PFNGLMULTICASTVIEWPORTARRAYVNVXPROC __glewMulticastViewportArrayvNVX = NULL;
-PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC __glewMulticastViewportPositionWScaleNVX = NULL;
-PFNGLUPLOADGPUMASKNVXPROC __glewUploadGpuMaskNVX = NULL;
-
-PFNGLLGPUCOPYIMAGESUBDATANVXPROC __glewLGPUCopyImageSubDataNVX = NULL;
-PFNGLLGPUINTERLOCKNVXPROC __glewLGPUInterlockNVX = NULL;
-PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC __glewLGPUNamedBufferSubDataNVX = NULL;
-
-PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC __glewClientWaitSemaphoreui64NVX = NULL;
-PFNGLSIGNALSEMAPHOREUI64NVXPROC __glewSignalSemaphoreui64NVX = NULL;
-PFNGLWAITSEMAPHOREUI64NVXPROC __glewWaitSemaphoreui64NVX = NULL;
-
-PFNGLSTEREOPARAMETERFNVPROC __glewStereoParameterfNV = NULL;
-PFNGLSTEREOPARAMETERINVPROC __glewStereoParameteriNV = NULL;
-
-PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC __glewAlphaToCoverageDitherControlNV = NULL;
-
-PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC __glewMultiDrawArraysIndirectBindlessNV = NULL;
-PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC __glewMultiDrawElementsIndirectBindlessNV = NULL;
-
-PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawArraysIndirectBindlessCountNV = NULL;
-PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawElementsIndirectBindlessCountNV = NULL;
-
-PFNGLGETIMAGEHANDLENVPROC __glewGetImageHandleNV = NULL;
-PFNGLGETTEXTUREHANDLENVPROC __glewGetTextureHandleNV = NULL;
-PFNGLGETTEXTURESAMPLERHANDLENVPROC __glewGetTextureSamplerHandleNV = NULL;
-PFNGLISIMAGEHANDLERESIDENTNVPROC __glewIsImageHandleResidentNV = NULL;
-PFNGLISTEXTUREHANDLERESIDENTNVPROC __glewIsTextureHandleResidentNV = NULL;
-PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC __glewMakeImageHandleNonResidentNV = NULL;
-PFNGLMAKEIMAGEHANDLERESIDENTNVPROC __glewMakeImageHandleResidentNV = NULL;
-PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC __glewMakeTextureHandleNonResidentNV = NULL;
-PFNGLMAKETEXTUREHANDLERESIDENTNVPROC __glewMakeTextureHandleResidentNV = NULL;
-PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC __glewProgramUniformHandleui64NV = NULL;
-PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC __glewProgramUniformHandleui64vNV = NULL;
-PFNGLUNIFORMHANDLEUI64NVPROC __glewUniformHandleui64NV = NULL;
-PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV = NULL;
-
-PFNGLBLENDBARRIERNVPROC __glewBlendBarrierNV = NULL;
-PFNGLBLENDPARAMETERINVPROC __glewBlendParameteriNV = NULL;
-
-PFNGLVIEWPORTPOSITIONWSCALENVPROC __glewViewportPositionWScaleNV = NULL;
-
-PFNGLCALLCOMMANDLISTNVPROC __glewCallCommandListNV = NULL;
-PFNGLCOMMANDLISTSEGMENTSNVPROC __glewCommandListSegmentsNV = NULL;
-PFNGLCOMPILECOMMANDLISTNVPROC __glewCompileCommandListNV = NULL;
-PFNGLCREATECOMMANDLISTSNVPROC __glewCreateCommandListsNV = NULL;
-PFNGLCREATESTATESNVPROC __glewCreateStatesNV = NULL;
-PFNGLDELETECOMMANDLISTSNVPROC __glewDeleteCommandListsNV = NULL;
-PFNGLDELETESTATESNVPROC __glewDeleteStatesNV = NULL;
-PFNGLDRAWCOMMANDSADDRESSNVPROC __glewDrawCommandsAddressNV = NULL;
-PFNGLDRAWCOMMANDSNVPROC __glewDrawCommandsNV = NULL;
-PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC __glewDrawCommandsStatesAddressNV = NULL;
-PFNGLDRAWCOMMANDSSTATESNVPROC __glewDrawCommandsStatesNV = NULL;
-PFNGLGETCOMMANDHEADERNVPROC __glewGetCommandHeaderNV = NULL;
-PFNGLGETSTAGEINDEXNVPROC __glewGetStageIndexNV = NULL;
-PFNGLISCOMMANDLISTNVPROC __glewIsCommandListNV = NULL;
-PFNGLISSTATENVPROC __glewIsStateNV = NULL;
-PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC __glewListDrawCommandsStatesClientNV = NULL;
-PFNGLSTATECAPTURENVPROC __glewStateCaptureNV = NULL;
-
-PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV = NULL;
-PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV = NULL;
-
-PFNGLSUBPIXELPRECISIONBIASNVPROC __glewSubpixelPrecisionBiasNV = NULL;
-
-PFNGLCONSERVATIVERASTERPARAMETERFNVPROC __glewConservativeRasterParameterfNV = NULL;
-
-PFNGLCONSERVATIVERASTERPARAMETERINVPROC __glewConservativeRasterParameteriNV = NULL;
-
-PFNGLCOPYBUFFERSUBDATANVPROC __glewCopyBufferSubDataNV = NULL;
-
-PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV = NULL;
-
-PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV = NULL;
-PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV = NULL;
-PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV = NULL;
-
-PFNGLDRAWBUFFERSNVPROC __glewDrawBuffersNV = NULL;
-
-PFNGLDRAWARRAYSINSTANCEDNVPROC __glewDrawArraysInstancedNV = NULL;
-PFNGLDRAWELEMENTSINSTANCEDNVPROC __glewDrawElementsInstancedNV = NULL;
-
-PFNGLDRAWTEXTURENVPROC __glewDrawTextureNV = NULL;
-
-PFNGLDRAWVKIMAGENVPROC __glewDrawVkImageNV = NULL;
-PFNGLGETVKPROCADDRNVPROC __glewGetVkProcAddrNV = NULL;
-PFNGLSIGNALVKFENCENVPROC __glewSignalVkFenceNV = NULL;
-PFNGLSIGNALVKSEMAPHORENVPROC __glewSignalVkSemaphoreNV = NULL;
-PFNGLWAITVKSEMAPHORENVPROC __glewWaitVkSemaphoreNV = NULL;
-
-PFNGLEVALMAPSNVPROC __glewEvalMapsNV = NULL;
-PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV = NULL;
-PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV = NULL;
-PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV = NULL;
-PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV = NULL;
-PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV = NULL;
-PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV = NULL;
-PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV = NULL;
-PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV = NULL;
-
-PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV = NULL;
-PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV = NULL;
-PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV = NULL;
-
-PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV = NULL;
-PFNGLFINISHFENCENVPROC __glewFinishFenceNV = NULL;
-PFNGLGENFENCESNVPROC __glewGenFencesNV = NULL;
-PFNGLGETFENCEIVNVPROC __glewGetFenceivNV = NULL;
-PFNGLISFENCENVPROC __glewIsFenceNV = NULL;
-PFNGLSETFENCENVPROC __glewSetFenceNV = NULL;
-PFNGLTESTFENCENVPROC __glewTestFenceNV = NULL;
-
-PFNGLFRAGMENTCOVERAGECOLORNVPROC __glewFragmentCoverageColorNV = NULL;
-
-PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV = NULL;
-PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV = NULL;
-PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV = NULL;
-PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV = NULL;
-PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV = NULL;
-PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV = NULL;
-
-PFNGLBLITFRAMEBUFFERNVPROC __glewBlitFramebufferNV = NULL;
-
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC __glewRenderbufferStorageMultisampleNV = NULL;
-
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV = NULL;
-
-PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV = NULL;
-
-PFNGLMULTICASTBARRIERNVPROC __glewMulticastBarrierNV = NULL;
-PFNGLMULTICASTBLITFRAMEBUFFERNVPROC __glewMulticastBlitFramebufferNV = NULL;
-PFNGLMULTICASTBUFFERSUBDATANVPROC __glewMulticastBufferSubDataNV = NULL;
-PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC __glewMulticastCopyBufferSubDataNV = NULL;
-PFNGLMULTICASTCOPYIMAGESUBDATANVPROC __glewMulticastCopyImageSubDataNV = NULL;
-PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewMulticastFramebufferSampleLocationsfvNV = NULL;
-PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC __glewMulticastGetQueryObjecti64vNV = NULL;
-PFNGLMULTICASTGETQUERYOBJECTIVNVPROC __glewMulticastGetQueryObjectivNV = NULL;
-PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC __glewMulticastGetQueryObjectui64vNV = NULL;
-PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC __glewMulticastGetQueryObjectuivNV = NULL;
-PFNGLMULTICASTWAITSYNCNVPROC __glewMulticastWaitSyncNV = NULL;
-PFNGLRENDERGPUMASKNVPROC __glewRenderGpuMaskNV = NULL;
-
-PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV = NULL;
-PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV = NULL;
-PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV = NULL;
-PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV = NULL;
-PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV = NULL;
-PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV = NULL;
-PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV = NULL;
-PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV = NULL;
-PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV = NULL;
-PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV = NULL;
-PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV = NULL;
-PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV = NULL;
-
-PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV = NULL;
-PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV = NULL;
-PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV = NULL;
-PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV = NULL;
-PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV = NULL;
-PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV = NULL;
-PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV = NULL;
-PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV = NULL;
-PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV = NULL;
-PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV = NULL;
-PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV = NULL;
-PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV = NULL;
-PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV = NULL;
-PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV = NULL;
-PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV = NULL;
-PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV = NULL;
-PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV = NULL;
-PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV = NULL;
-PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV = NULL;
-PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV = NULL;
-PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV = NULL;
-PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV = NULL;
-PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV = NULL;
-PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV = NULL;
-PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV = NULL;
-PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV = NULL;
-PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV = NULL;
-PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV = NULL;
-PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV = NULL;
-PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV = NULL;
-PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV = NULL;
-PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV = NULL;
-PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV = NULL;
-PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV = NULL;
-
-PFNGLCOLOR3HNVPROC __glewColor3hNV = NULL;
-PFNGLCOLOR3HVNVPROC __glewColor3hvNV = NULL;
-PFNGLCOLOR4HNVPROC __glewColor4hNV = NULL;
-PFNGLCOLOR4HVNVPROC __glewColor4hvNV = NULL;
-PFNGLFOGCOORDHNVPROC __glewFogCoordhNV = NULL;
-PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV = NULL;
-PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV = NULL;
-PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV = NULL;
-PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV = NULL;
-PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV = NULL;
-PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV = NULL;
-PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV = NULL;
-PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV = NULL;
-PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV = NULL;
-PFNGLNORMAL3HNVPROC __glewNormal3hNV = NULL;
-PFNGLNORMAL3HVNVPROC __glewNormal3hvNV = NULL;
-PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV = NULL;
-PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV = NULL;
-PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV = NULL;
-PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV = NULL;
-PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV = NULL;
-PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV = NULL;
-PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV = NULL;
-PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV = NULL;
-PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV = NULL;
-PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV = NULL;
-PFNGLVERTEX2HNVPROC __glewVertex2hNV = NULL;
-PFNGLVERTEX2HVNVPROC __glewVertex2hvNV = NULL;
-PFNGLVERTEX3HNVPROC __glewVertex3hNV = NULL;
-PFNGLVERTEX3HVNVPROC __glewVertex3hvNV = NULL;
-PFNGLVERTEX4HNVPROC __glewVertex4hNV = NULL;
-PFNGLVERTEX4HVNVPROC __glewVertex4hvNV = NULL;
-PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV = NULL;
-PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV = NULL;
-PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV = NULL;
-PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV = NULL;
-PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV = NULL;
-PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV = NULL;
-PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV = NULL;
-PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV = NULL;
-PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV = NULL;
-PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV = NULL;
-PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV = NULL;
-PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV = NULL;
-PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV = NULL;
-PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV = NULL;
-
-PFNGLVERTEXATTRIBDIVISORNVPROC __glewVertexAttribDivisorNV = NULL;
-
-PFNGLGETINTERNALFORMATSAMPLEIVNVPROC __glewGetInternalformatSampleivNV = NULL;
-
-PFNGLBUFFERATTACHMEMORYNVPROC __glewBufferAttachMemoryNV = NULL;
-PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC __glewGetMemoryObjectDetachedResourcesuivNV = NULL;
-PFNGLNAMEDBUFFERATTACHMEMORYNVPROC __glewNamedBufferAttachMemoryNV = NULL;
-PFNGLRESETMEMORYOBJECTPARAMETERNVPROC __glewResetMemoryObjectParameterNV = NULL;
-PFNGLTEXATTACHMEMORYNVPROC __glewTexAttachMemoryNV = NULL;
-PFNGLTEXTUREATTACHMEMORYNVPROC __glewTextureAttachMemoryNV = NULL;
-
-PFNGLDRAWMESHTASKSINDIRECTNVPROC __glewDrawMeshTasksIndirectNV = NULL;
-PFNGLDRAWMESHTASKSNVPROC __glewDrawMeshTasksNV = NULL;
-PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC __glewMultiDrawMeshTasksIndirectCountNV = NULL;
-PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC __glewMultiDrawMeshTasksIndirectNV = NULL;
-
-PFNGLUNIFORMMATRIX2X3FVNVPROC __glewUniformMatrix2x3fvNV = NULL;
-PFNGLUNIFORMMATRIX2X4FVNVPROC __glewUniformMatrix2x4fvNV = NULL;
-PFNGLUNIFORMMATRIX3X2FVNVPROC __glewUniformMatrix3x2fvNV = NULL;
-PFNGLUNIFORMMATRIX3X4FVNVPROC __glewUniformMatrix3x4fvNV = NULL;
-PFNGLUNIFORMMATRIX4X2FVNVPROC __glewUniformMatrix4x2fvNV = NULL;
-PFNGLUNIFORMMATRIX4X3FVNVPROC __glewUniformMatrix4x3fvNV = NULL;
-
-PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV = NULL;
-PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV = NULL;
-PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV = NULL;
-PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV = NULL;
-PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV = NULL;
-PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV = NULL;
-PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV = NULL;
-
-PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV = NULL;
-PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV = NULL;
-PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV = NULL;
-
-PFNGLCOPYPATHNVPROC __glewCopyPathNV = NULL;
-PFNGLCOVERFILLPATHINSTANCEDNVPROC __glewCoverFillPathInstancedNV = NULL;
-PFNGLCOVERFILLPATHNVPROC __glewCoverFillPathNV = NULL;
-PFNGLCOVERSTROKEPATHINSTANCEDNVPROC __glewCoverStrokePathInstancedNV = NULL;
-PFNGLCOVERSTROKEPATHNVPROC __glewCoverStrokePathNV = NULL;
-PFNGLDELETEPATHSNVPROC __glewDeletePathsNV = NULL;
-PFNGLGENPATHSNVPROC __glewGenPathsNV = NULL;
-PFNGLGETPATHCOLORGENFVNVPROC __glewGetPathColorGenfvNV = NULL;
-PFNGLGETPATHCOLORGENIVNVPROC __glewGetPathColorGenivNV = NULL;
-PFNGLGETPATHCOMMANDSNVPROC __glewGetPathCommandsNV = NULL;
-PFNGLGETPATHCOORDSNVPROC __glewGetPathCoordsNV = NULL;
-PFNGLGETPATHDASHARRAYNVPROC __glewGetPathDashArrayNV = NULL;
-PFNGLGETPATHLENGTHNVPROC __glewGetPathLengthNV = NULL;
-PFNGLGETPATHMETRICRANGENVPROC __glewGetPathMetricRangeNV = NULL;
-PFNGLGETPATHMETRICSNVPROC __glewGetPathMetricsNV = NULL;
-PFNGLGETPATHPARAMETERFVNVPROC __glewGetPathParameterfvNV = NULL;
-PFNGLGETPATHPARAMETERIVNVPROC __glewGetPathParameterivNV = NULL;
-PFNGLGETPATHSPACINGNVPROC __glewGetPathSpacingNV = NULL;
-PFNGLGETPATHTEXGENFVNVPROC __glewGetPathTexGenfvNV = NULL;
-PFNGLGETPATHTEXGENIVNVPROC __glewGetPathTexGenivNV = NULL;
-PFNGLGETPROGRAMRESOURCEFVNVPROC __glewGetProgramResourcefvNV = NULL;
-PFNGLINTERPOLATEPATHSNVPROC __glewInterpolatePathsNV = NULL;
-PFNGLISPATHNVPROC __glewIsPathNV = NULL;
-PFNGLISPOINTINFILLPATHNVPROC __glewIsPointInFillPathNV = NULL;
-PFNGLISPOINTINSTROKEPATHNVPROC __glewIsPointInStrokePathNV = NULL;
-PFNGLMATRIXLOAD3X2FNVPROC __glewMatrixLoad3x2fNV = NULL;
-PFNGLMATRIXLOAD3X3FNVPROC __glewMatrixLoad3x3fNV = NULL;
-PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC __glewMatrixLoadTranspose3x3fNV = NULL;
-PFNGLMATRIXMULT3X2FNVPROC __glewMatrixMult3x2fNV = NULL;
-PFNGLMATRIXMULT3X3FNVPROC __glewMatrixMult3x3fNV = NULL;
-PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC __glewMatrixMultTranspose3x3fNV = NULL;
-PFNGLPATHCOLORGENNVPROC __glewPathColorGenNV = NULL;
-PFNGLPATHCOMMANDSNVPROC __glewPathCommandsNV = NULL;
-PFNGLPATHCOORDSNVPROC __glewPathCoordsNV = NULL;
-PFNGLPATHCOVERDEPTHFUNCNVPROC __glewPathCoverDepthFuncNV = NULL;
-PFNGLPATHDASHARRAYNVPROC __glewPathDashArrayNV = NULL;
-PFNGLPATHFOGGENNVPROC __glewPathFogGenNV = NULL;
-PFNGLPATHGLYPHINDEXARRAYNVPROC __glewPathGlyphIndexArrayNV = NULL;
-PFNGLPATHGLYPHINDEXRANGENVPROC __glewPathGlyphIndexRangeNV = NULL;
-PFNGLPATHGLYPHRANGENVPROC __glewPathGlyphRangeNV = NULL;
-PFNGLPATHGLYPHSNVPROC __glewPathGlyphsNV = NULL;
-PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC __glewPathMemoryGlyphIndexArrayNV = NULL;
-PFNGLPATHPARAMETERFNVPROC __glewPathParameterfNV = NULL;
-PFNGLPATHPARAMETERFVNVPROC __glewPathParameterfvNV = NULL;
-PFNGLPATHPARAMETERINVPROC __glewPathParameteriNV = NULL;
-PFNGLPATHPARAMETERIVNVPROC __glewPathParameterivNV = NULL;
-PFNGLPATHSTENCILDEPTHOFFSETNVPROC __glewPathStencilDepthOffsetNV = NULL;
-PFNGLPATHSTENCILFUNCNVPROC __glewPathStencilFuncNV = NULL;
-PFNGLPATHSTRINGNVPROC __glewPathStringNV = NULL;
-PFNGLPATHSUBCOMMANDSNVPROC __glewPathSubCommandsNV = NULL;
-PFNGLPATHSUBCOORDSNVPROC __glewPathSubCoordsNV = NULL;
-PFNGLPATHTEXGENNVPROC __glewPathTexGenNV = NULL;
-PFNGLPOINTALONGPATHNVPROC __glewPointAlongPathNV = NULL;
-PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC __glewProgramPathFragmentInputGenNV = NULL;
-PFNGLSTENCILFILLPATHINSTANCEDNVPROC __glewStencilFillPathInstancedNV = NULL;
-PFNGLSTENCILFILLPATHNVPROC __glewStencilFillPathNV = NULL;
-PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC __glewStencilStrokePathInstancedNV = NULL;
-PFNGLSTENCILSTROKEPATHNVPROC __glewStencilStrokePathNV = NULL;
-PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC __glewStencilThenCoverFillPathInstancedNV = NULL;
-PFNGLSTENCILTHENCOVERFILLPATHNVPROC __glewStencilThenCoverFillPathNV = NULL;
-PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC __glewStencilThenCoverStrokePathInstancedNV = NULL;
-PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC __glewStencilThenCoverStrokePathNV = NULL;
-PFNGLTRANSFORMPATHNVPROC __glewTransformPathNV = NULL;
-PFNGLWEIGHTPATHSNVPROC __glewWeightPathsNV = NULL;
-
-PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV = NULL;
-PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV = NULL;
-
-PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV = NULL;
-PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV = NULL;
-
-PFNGLPOLYGONMODENVPROC __glewPolygonModeNV = NULL;
-
-PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV = NULL;
-PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV = NULL;
-PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV = NULL;
-PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV = NULL;
-PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV = NULL;
-PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV = NULL;
-
-PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV = NULL;
-PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV = NULL;
-
-PFNGLREADBUFFERNVPROC __glewReadBufferNV = NULL;
-
-PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV = NULL;
-PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV = NULL;
-PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV = NULL;
-PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV = NULL;
-PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV = NULL;
-PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV = NULL;
-PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV = NULL;
-PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV = NULL;
-PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV = NULL;
-PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV = NULL;
-PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV = NULL;
-PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV = NULL;
-PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV = NULL;
-
-PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV = NULL;
-PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV = NULL;
-
-PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewFramebufferSampleLocationsfvNV = NULL;
-PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewNamedFramebufferSampleLocationsfvNV = NULL;
-PFNGLRESOLVEDEPTHVALUESNVPROC __glewResolveDepthValuesNV = NULL;
-
-PFNGLSCISSOREXCLUSIVEARRAYVNVPROC __glewScissorExclusiveArrayvNV = NULL;
-PFNGLSCISSOREXCLUSIVENVPROC __glewScissorExclusiveNV = NULL;
-
-PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV = NULL;
-PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV = NULL;
-PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV = NULL;
-PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV = NULL;
-PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV = NULL;
-PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV = NULL;
-PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV = NULL;
-PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV = NULL;
-PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV = NULL;
-PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV = NULL;
-PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV = NULL;
-PFNGLUNIFORMUI64NVPROC __glewUniformui64NV = NULL;
-PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV = NULL;
-
-PFNGLBINDSHADINGRATEIMAGENVPROC __glewBindShadingRateImageNV = NULL;
-PFNGLGETSHADINGRATEIMAGEPALETTENVPROC __glewGetShadingRateImagePaletteNV = NULL;
-PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC __glewGetShadingRateSampleLocationivNV = NULL;
-PFNGLSHADINGRATEIMAGEBARRIERNVPROC __glewShadingRateImageBarrierNV = NULL;
-PFNGLSHADINGRATEIMAGEPALETTENVPROC __glewShadingRateImagePaletteNV = NULL;
-PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC __glewShadingRateSampleOrderCustomNV = NULL;
-
-PFNGLCOMPRESSEDTEXIMAGE3DNVPROC __glewCompressedTexImage3DNV = NULL;
-PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC __glewCompressedTexSubImage3DNV = NULL;
-PFNGLCOPYTEXSUBIMAGE3DNVPROC __glewCopyTexSubImage3DNV = NULL;
-PFNGLFRAMEBUFFERTEXTURELAYERNVPROC __glewFramebufferTextureLayerNV = NULL;
-PFNGLTEXIMAGE3DNVPROC __glewTexImage3DNV = NULL;
-PFNGLTEXSUBIMAGE3DNVPROC __glewTexSubImage3DNV = NULL;
-
-PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV = NULL;
-
-PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV = NULL;
-PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV = NULL;
-PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV = NULL;
-PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV = NULL;
-PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV = NULL;
-PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV = NULL;
-
-PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV = NULL;
-PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV = NULL;
-PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV = NULL;
-PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV = NULL;
-PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV = NULL;
-PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV = NULL;
-PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV = NULL;
-PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV = NULL;
-PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV = NULL;
-PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV = NULL;
-PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV = NULL;
-
-PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV = NULL;
-PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV = NULL;
-PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV = NULL;
-PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV = NULL;
-PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV = NULL;
-PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV = NULL;
-PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV = NULL;
-
-PFNGLVDPAUFININVPROC __glewVDPAUFiniNV = NULL;
-PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV = NULL;
-PFNGLVDPAUINITNVPROC __glewVDPAUInitNV = NULL;
-PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV = NULL;
-PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV = NULL;
-PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV = NULL;
-PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV = NULL;
-PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV = NULL;
-PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV = NULL;
-PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV = NULL;
-
-PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC __glewVDPAURegisterVideoSurfaceWithPictureStructureNV = NULL;
-
-PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV = NULL;
-PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV = NULL;
-
-PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV = NULL;
-PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV = NULL;
-PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV = NULL;
-PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV = NULL;
-PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV = NULL;
-PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV = NULL;
-PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV = NULL;
-PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV = NULL;
-PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV = NULL;
-PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV = NULL;
-PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV = NULL;
-PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV = NULL;
-PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV = NULL;
-PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV = NULL;
-PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV = NULL;
-PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV = NULL;
-PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV = NULL;
-PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV = NULL;
-PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV = NULL;
-
-PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV = NULL;
-PFNGLCOLORFORMATNVPROC __glewColorFormatNV = NULL;
-PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV = NULL;
-PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV = NULL;
-PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV = NULL;
-PFNGLINDEXFORMATNVPROC __glewIndexFormatNV = NULL;
-PFNGLNORMALFORMATNVPROC __glewNormalFormatNV = NULL;
-PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV = NULL;
-PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV = NULL;
-PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV = NULL;
-PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV = NULL;
-PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV = NULL;
-
-PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV = NULL;
-PFNGLBINDPROGRAMNVPROC __glewBindProgramNV = NULL;
-PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV = NULL;
-PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV = NULL;
-PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV = NULL;
-PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV = NULL;
-PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV = NULL;
-PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV = NULL;
-PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV = NULL;
-PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV = NULL;
-PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV = NULL;
-PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV = NULL;
-PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV = NULL;
-PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV = NULL;
-PFNGLISPROGRAMNVPROC __glewIsProgramNV = NULL;
-PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV = NULL;
-PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV = NULL;
-PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV = NULL;
-PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV = NULL;
-PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV = NULL;
-PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV = NULL;
-PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV = NULL;
-PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV = NULL;
-PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV = NULL;
-PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV = NULL;
-PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV = NULL;
-PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV = NULL;
-PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV = NULL;
-PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV = NULL;
-PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV = NULL;
-PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV = NULL;
-PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV = NULL;
-PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV = NULL;
-PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV = NULL;
-PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV = NULL;
-PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV = NULL;
-PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV = NULL;
-PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV = NULL;
-PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV = NULL;
-PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV = NULL;
-PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV = NULL;
-PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV = NULL;
-PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV = NULL;
-PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV = NULL;
-PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV = NULL;
-PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV = NULL;
-PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV = NULL;
-PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV = NULL;
-PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV = NULL;
-PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV = NULL;
-PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV = NULL;
-PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV = NULL;
-PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV = NULL;
-PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV = NULL;
-PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV = NULL;
-PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV = NULL;
-PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV = NULL;
-PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV = NULL;
-PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV = NULL;
-PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV = NULL;
-PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV = NULL;
-PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV = NULL;
-PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV = NULL;
-PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV = NULL;
-
-PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV = NULL;
-PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV = NULL;
-PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV = NULL;
-PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV = NULL;
-PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV = NULL;
-PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV = NULL;
-PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV = NULL;
-PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV = NULL;
-PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV = NULL;
-PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV = NULL;
-PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV = NULL;
-PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV = NULL;
-
-PFNGLDEPTHRANGEARRAYFVNVPROC __glewDepthRangeArrayfvNV = NULL;
-PFNGLDEPTHRANGEINDEXEDFNVPROC __glewDepthRangeIndexedfNV = NULL;
-PFNGLDISABLEINVPROC __glewDisableiNV = NULL;
-PFNGLENABLEINVPROC __glewEnableiNV = NULL;
-PFNGLGETFLOATI_VNVPROC __glewGetFloati_vNV = NULL;
-PFNGLISENABLEDINVPROC __glewIsEnablediNV = NULL;
-PFNGLSCISSORARRAYVNVPROC __glewScissorArrayvNV = NULL;
-PFNGLSCISSORINDEXEDNVPROC __glewScissorIndexedNV = NULL;
-PFNGLSCISSORINDEXEDVNVPROC __glewScissorIndexedvNV = NULL;
-PFNGLVIEWPORTARRAYVNVPROC __glewViewportArrayvNV = NULL;
-PFNGLVIEWPORTINDEXEDFNVPROC __glewViewportIndexedfNV = NULL;
-PFNGLVIEWPORTINDEXEDFVNVPROC __glewViewportIndexedfvNV = NULL;
-
-PFNGLVIEWPORTSWIZZLENVPROC __glewViewportSwizzleNV = NULL;
-
-PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC __glewEGLImageTargetRenderbufferStorageOES = NULL;
-PFNGLEGLIMAGETARGETTEXTURE2DOESPROC __glewEGLImageTargetTexture2DOES = NULL;
-
-PFNGLBLENDEQUATIONSEPARATEOESPROC __glewBlendEquationSeparateOES = NULL;
-
-PFNGLBLENDFUNCSEPARATEOESPROC __glewBlendFuncSeparateOES = NULL;
-
-PFNGLBLENDEQUATIONOESPROC __glewBlendEquationOES = NULL;
-
-PFNGLCOPYIMAGESUBDATAOESPROC __glewCopyImageSubDataOES = NULL;
-
-PFNGLBLENDEQUATIONSEPARATEIOESPROC __glewBlendEquationSeparateiOES = NULL;
-PFNGLBLENDEQUATIONIOESPROC __glewBlendEquationiOES = NULL;
-PFNGLBLENDFUNCSEPARATEIOESPROC __glewBlendFuncSeparateiOES = NULL;
-PFNGLBLENDFUNCIOESPROC __glewBlendFunciOES = NULL;
-PFNGLCOLORMASKIOESPROC __glewColorMaskiOES = NULL;
-PFNGLDISABLEIOESPROC __glewDisableiOES = NULL;
-PFNGLENABLEIOESPROC __glewEnableiOES = NULL;
-PFNGLISENABLEDIOESPROC __glewIsEnablediOES = NULL;
-
-PFNGLBINDFRAMEBUFFEROESPROC __glewBindFramebufferOES = NULL;
-PFNGLBINDRENDERBUFFEROESPROC __glewBindRenderbufferOES = NULL;
-PFNGLCHECKFRAMEBUFFERSTATUSOESPROC __glewCheckFramebufferStatusOES = NULL;
-PFNGLDELETEFRAMEBUFFERSOESPROC __glewDeleteFramebuffersOES = NULL;
-PFNGLDELETERENDERBUFFERSOESPROC __glewDeleteRenderbuffersOES = NULL;
-PFNGLFRAMEBUFFERRENDERBUFFEROESPROC __glewFramebufferRenderbufferOES = NULL;
-PFNGLFRAMEBUFFERTEXTURE2DOESPROC __glewFramebufferTexture2DOES = NULL;
-PFNGLGENFRAMEBUFFERSOESPROC __glewGenFramebuffersOES = NULL;
-PFNGLGENRENDERBUFFERSOESPROC __glewGenRenderbuffersOES = NULL;
-PFNGLGENERATEMIPMAPOESPROC __glewGenerateMipmapOES = NULL;
-PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC __glewGetFramebufferAttachmentParameterivOES = NULL;
-PFNGLGETRENDERBUFFERPARAMETERIVOESPROC __glewGetRenderbufferParameterivOES = NULL;
-PFNGLISFRAMEBUFFEROESPROC __glewIsFramebufferOES = NULL;
-PFNGLISRENDERBUFFEROESPROC __glewIsRenderbufferOES = NULL;
-PFNGLRENDERBUFFERSTORAGEOESPROC __glewRenderbufferStorageOES = NULL;
-
-PFNGLGETPROGRAMBINARYOESPROC __glewGetProgramBinaryOES = NULL;
-PFNGLPROGRAMBINARYOESPROC __glewProgramBinaryOES = NULL;
-
-PFNGLGETBUFFERPOINTERVOESPROC __glewGetBufferPointervOES = NULL;
-PFNGLMAPBUFFEROESPROC __glewMapBufferOES = NULL;
-PFNGLUNMAPBUFFEROESPROC __glewUnmapBufferOES = NULL;
-
-PFNGLCURRENTPALETTEMATRIXOESPROC __glewCurrentPaletteMatrixOES = NULL;
-PFNGLMATRIXINDEXPOINTEROESPROC __glewMatrixIndexPointerOES = NULL;
-PFNGLWEIGHTPOINTEROESPROC __glewWeightPointerOES = NULL;
-
-PFNGLMINSAMPLESHADINGOESPROC __glewMinSampleShadingOES = NULL;
-
-PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES = NULL;
-PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES = NULL;
-PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES = NULL;
-PFNGLFRUSTUMFOESPROC __glewFrustumfOES = NULL;
-PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES = NULL;
-PFNGLORTHOFOESPROC __glewOrthofOES = NULL;
-
-PFNGLCOMPRESSEDTEXIMAGE3DOESPROC __glewCompressedTexImage3DOES = NULL;
-PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC __glewCompressedTexSubImage3DOES = NULL;
-PFNGLCOPYTEXSUBIMAGE3DOESPROC __glewCopyTexSubImage3DOES = NULL;
-PFNGLFRAMEBUFFERTEXTURE3DOESPROC __glewFramebufferTexture3DOES = NULL;
-PFNGLTEXIMAGE3DOESPROC __glewTexImage3DOES = NULL;
-PFNGLTEXSUBIMAGE3DOESPROC __glewTexSubImage3DOES = NULL;
-
-PFNGLGETSAMPLERPARAMETERIIVOESPROC __glewGetSamplerParameterIivOES = NULL;
-PFNGLGETSAMPLERPARAMETERIUIVOESPROC __glewGetSamplerParameterIuivOES = NULL;
-PFNGLGETTEXPARAMETERIIVOESPROC __glewGetTexParameterIivOES = NULL;
-PFNGLGETTEXPARAMETERIUIVOESPROC __glewGetTexParameterIuivOES = NULL;
-PFNGLSAMPLERPARAMETERIIVOESPROC __glewSamplerParameterIivOES = NULL;
-PFNGLSAMPLERPARAMETERIUIVOESPROC __glewSamplerParameterIuivOES = NULL;
-PFNGLTEXPARAMETERIIVOESPROC __glewTexParameterIivOES = NULL;
-PFNGLTEXPARAMETERIUIVOESPROC __glewTexParameterIuivOES = NULL;
-
-PFNGLTEXBUFFEROESPROC __glewTexBufferOES = NULL;
-PFNGLTEXBUFFERRANGEOESPROC __glewTexBufferRangeOES = NULL;
-
-PFNGLGETTEXGENFVOESPROC __glewGetTexGenfvOES = NULL;
-PFNGLGETTEXGENIVOESPROC __glewGetTexGenivOES = NULL;
-PFNGLGETTEXGENXVOESPROC __glewGetTexGenxvOES = NULL;
-PFNGLTEXGENFOESPROC __glewTexGenfOES = NULL;
-PFNGLTEXGENFVOESPROC __glewTexGenfvOES = NULL;
-PFNGLTEXGENIOESPROC __glewTexGeniOES = NULL;
-PFNGLTEXGENIVOESPROC __glewTexGenivOES = NULL;
-PFNGLTEXGENXOESPROC __glewTexGenxOES = NULL;
-PFNGLTEXGENXVOESPROC __glewTexGenxvOES = NULL;
-
-PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC __glewTexStorage3DMultisampleOES = NULL;
-
-PFNGLTEXTUREVIEWOESPROC __glewTextureViewOES = NULL;
-
-PFNGLBINDVERTEXARRAYOESPROC __glewBindVertexArrayOES = NULL;
-PFNGLDELETEVERTEXARRAYSOESPROC __glewDeleteVertexArraysOES = NULL;
-PFNGLGENVERTEXARRAYSOESPROC __glewGenVertexArraysOES = NULL;
-PFNGLISVERTEXARRAYOESPROC __glewIsVertexArrayOES = NULL;
-
-PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewFramebufferTextureMultiviewOVR = NULL;
-PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewNamedFramebufferTextureMultiviewOVR = NULL;
-
-PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC __glewFramebufferTextureMultisampleMultiviewOVR = NULL;
-
-PFNGLALPHAFUNCQCOMPROC __glewAlphaFuncQCOM = NULL;
-
-PFNGLDISABLEDRIVERCONTROLQCOMPROC __glewDisableDriverControlQCOM = NULL;
-PFNGLENABLEDRIVERCONTROLQCOMPROC __glewEnableDriverControlQCOM = NULL;
-PFNGLGETDRIVERCONTROLSTRINGQCOMPROC __glewGetDriverControlStringQCOM = NULL;
-PFNGLGETDRIVERCONTROLSQCOMPROC __glewGetDriverControlsQCOM = NULL;
-
-PFNGLEXTGETBUFFERPOINTERVQCOMPROC __glewExtGetBufferPointervQCOM = NULL;
-PFNGLEXTGETBUFFERSQCOMPROC __glewExtGetBuffersQCOM = NULL;
-PFNGLEXTGETFRAMEBUFFERSQCOMPROC __glewExtGetFramebuffersQCOM = NULL;
-PFNGLEXTGETRENDERBUFFERSQCOMPROC __glewExtGetRenderbuffersQCOM = NULL;
-PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC __glewExtGetTexLevelParameterivQCOM = NULL;
-PFNGLEXTGETTEXSUBIMAGEQCOMPROC __glewExtGetTexSubImageQCOM = NULL;
-PFNGLEXTGETTEXTURESQCOMPROC __glewExtGetTexturesQCOM = NULL;
-PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC __glewExtTexObjectStateOverrideiQCOM = NULL;
-
-PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC __glewExtGetProgramBinarySourceQCOM = NULL;
-PFNGLEXTGETPROGRAMSQCOMPROC __glewExtGetProgramsQCOM = NULL;
-PFNGLEXTGETSHADERSQCOMPROC __glewExtGetShadersQCOM = NULL;
-PFNGLEXTISPROGRAMBINARYQCOMPROC __glewExtIsProgramBinaryQCOM = NULL;
-
-PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC __glewFramebufferFoveationConfigQCOM = NULL;
-PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC __glewFramebufferFoveationParametersQCOM = NULL;
-
-PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC __glewFramebufferFetchBarrierQCOM = NULL;
-
-PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC __glewTextureFoveationParametersQCOM = NULL;
-
-PFNGLENDTILINGQCOMPROC __glewEndTilingQCOM = NULL;
-PFNGLSTARTTILINGQCOMPROC __glewStartTilingQCOM = NULL;
-
-PFNGLALPHAFUNCXPROC __glewAlphaFuncx = NULL;
-PFNGLCLEARCOLORXPROC __glewClearColorx = NULL;
-PFNGLCLEARDEPTHXPROC __glewClearDepthx = NULL;
-PFNGLCOLOR4XPROC __glewColor4x = NULL;
-PFNGLDEPTHRANGEXPROC __glewDepthRangex = NULL;
-PFNGLFOGXPROC __glewFogx = NULL;
-PFNGLFOGXVPROC __glewFogxv = NULL;
-PFNGLFRUSTUMFPROC __glewFrustumf = NULL;
-PFNGLFRUSTUMXPROC __glewFrustumx = NULL;
-PFNGLLIGHTMODELXPROC __glewLightModelx = NULL;
-PFNGLLIGHTMODELXVPROC __glewLightModelxv = NULL;
-PFNGLLIGHTXPROC __glewLightx = NULL;
-PFNGLLIGHTXVPROC __glewLightxv = NULL;
-PFNGLLINEWIDTHXPROC __glewLineWidthx = NULL;
-PFNGLLOADMATRIXXPROC __glewLoadMatrixx = NULL;
-PFNGLMATERIALXPROC __glewMaterialx = NULL;
-PFNGLMATERIALXVPROC __glewMaterialxv = NULL;
-PFNGLMULTMATRIXXPROC __glewMultMatrixx = NULL;
-PFNGLMULTITEXCOORD4XPROC __glewMultiTexCoord4x = NULL;
-PFNGLNORMAL3XPROC __glewNormal3x = NULL;
-PFNGLORTHOFPROC __glewOrthof = NULL;
-PFNGLORTHOXPROC __glewOrthox = NULL;
-PFNGLPOINTSIZEXPROC __glewPointSizex = NULL;
-PFNGLPOLYGONOFFSETXPROC __glewPolygonOffsetx = NULL;
-PFNGLROTATEXPROC __glewRotatex = NULL;
-PFNGLSAMPLECOVERAGEXPROC __glewSampleCoveragex = NULL;
-PFNGLSCALEXPROC __glewScalex = NULL;
-PFNGLTEXENVXPROC __glewTexEnvx = NULL;
-PFNGLTEXENVXVPROC __glewTexEnvxv = NULL;
-PFNGLTEXPARAMETERXPROC __glewTexParameterx = NULL;
-PFNGLTRANSLATEXPROC __glewTranslatex = NULL;
-
-PFNGLCLIPPLANEFPROC __glewClipPlanef = NULL;
-PFNGLCLIPPLANEXPROC __glewClipPlanex = NULL;
-PFNGLGETCLIPPLANEFPROC __glewGetClipPlanef = NULL;
-PFNGLGETCLIPPLANEXPROC __glewGetClipPlanex = NULL;
-PFNGLGETFIXEDVPROC __glewGetFixedv = NULL;
-PFNGLGETLIGHTXVPROC __glewGetLightxv = NULL;
-PFNGLGETMATERIALXVPROC __glewGetMaterialxv = NULL;
-PFNGLGETTEXENVXVPROC __glewGetTexEnvxv = NULL;
-PFNGLGETTEXPARAMETERXVPROC __glewGetTexParameterxv = NULL;
-PFNGLPOINTPARAMETERXPROC __glewPointParameterx = NULL;
-PFNGLPOINTPARAMETERXVPROC __glewPointParameterxv = NULL;
-PFNGLPOINTSIZEPOINTEROESPROC __glewPointSizePointerOES = NULL;
-PFNGLTEXPARAMETERXVPROC __glewTexParameterxv = NULL;
-
-PFNGLERRORSTRINGREGALPROC __glewErrorStringREGAL = NULL;
-
-PFNGLGETEXTENSIONREGALPROC __glewGetExtensionREGAL = NULL;
-PFNGLISSUPPORTEDREGALPROC __glewIsSupportedREGAL = NULL;
-
-PFNGLLOGMESSAGECALLBACKREGALPROC __glewLogMessageCallbackREGAL = NULL;
-
-PFNGLGETPROCADDRESSREGALPROC __glewGetProcAddressREGAL = NULL;
-
-PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS = NULL;
-PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS = NULL;
-
-PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS = NULL;
-PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS = NULL;
-
-PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS = NULL;
-PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS = NULL;
-
-PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC __glewInterleavedTextureCoordSetsSGIS = NULL;
-PFNGLSELECTTEXTURECOORDSETSGISPROC __glewSelectTextureCoordSetSGIS = NULL;
-PFNGLSELECTTEXTURESGISPROC __glewSelectTextureSGIS = NULL;
-PFNGLSELECTTEXTURETRANSFORMSGISPROC __glewSelectTextureTransformSGIS = NULL;
-
-PFNGLMULTISAMPLESUBRECTPOSSGISPROC __glewMultisampleSubRectPosSGIS = NULL;
-
-PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS = NULL;
-PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS = NULL;
-
-PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS = NULL;
-PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS = NULL;
-
-PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS = NULL;
-PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS = NULL;
-
-PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX = NULL;
-PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX = NULL;
-PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX = NULL;
-PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX = NULL;
-PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX = NULL;
-PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX = NULL;
-
-PFNGLADDRESSSPACEPROC __glewAddressSpace = NULL;
-PFNGLDATAPIPEPROC __glewDataPipe = NULL;
-
-PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX = NULL;
-
-PFNGLFOGLAYERSSGIXPROC __glewFogLayersSGIX = NULL;
-PFNGLGETFOGLAYERSSGIXPROC __glewGetFogLayersSGIX = NULL;
-
-PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX = NULL;
-
-PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX = NULL;
-PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX = NULL;
-PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX = NULL;
-PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX = NULL;
-PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX = NULL;
-PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX = NULL;
-PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX = NULL;
-PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX = NULL;
-PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX = NULL;
-PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX = NULL;
-PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX = NULL;
-PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX = NULL;
-PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX = NULL;
-PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX = NULL;
-PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX = NULL;
-PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX = NULL;
-PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX = NULL;
-
-PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX = NULL;
-
-PFNGLIGLOOINTERFACESGIXPROC __glewIglooInterfaceSGIX = NULL;
-
-PFNGLALLOCMPEGPREDICTORSSGIXPROC __glewAllocMPEGPredictorsSGIX = NULL;
-PFNGLDELETEMPEGPREDICTORSSGIXPROC __glewDeleteMPEGPredictorsSGIX = NULL;
-PFNGLGENMPEGPREDICTORSSGIXPROC __glewGenMPEGPredictorsSGIX = NULL;
-PFNGLGETMPEGPARAMETERFVSGIXPROC __glewGetMPEGParameterfvSGIX = NULL;
-PFNGLGETMPEGPARAMETERIVSGIXPROC __glewGetMPEGParameterivSGIX = NULL;
-PFNGLGETMPEGPREDICTORSGIXPROC __glewGetMPEGPredictorSGIX = NULL;
-PFNGLGETMPEGQUANTTABLEUBVPROC __glewGetMPEGQuantTableubv = NULL;
-PFNGLISMPEGPREDICTORSGIXPROC __glewIsMPEGPredictorSGIX = NULL;
-PFNGLMPEGPREDICTORSGIXPROC __glewMPEGPredictorSGIX = NULL;
-PFNGLMPEGQUANTTABLEUBVPROC __glewMPEGQuantTableubv = NULL;
-PFNGLSWAPMPEGPREDICTORSSGIXPROC __glewSwapMPEGPredictorsSGIX = NULL;
-
-PFNGLGETNONLINLIGHTFVSGIXPROC __glewGetNonlinLightfvSGIX = NULL;
-PFNGLGETNONLINMATERIALFVSGIXPROC __glewGetNonlinMaterialfvSGIX = NULL;
-PFNGLNONLINLIGHTFVSGIXPROC __glewNonlinLightfvSGIX = NULL;
-PFNGLNONLINMATERIALFVSGIXPROC __glewNonlinMaterialfvSGIX = NULL;
-
-PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX = NULL;
-
-PFNGLDEFORMSGIXPROC __glewDeformSGIX = NULL;
-PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC __glewLoadIdentityDeformationMapSGIX = NULL;
-
-PFNGLMESHBREADTHSGIXPROC __glewMeshBreadthSGIX = NULL;
-PFNGLMESHSTRIDESGIXPROC __glewMeshStrideSGIX = NULL;
-
-PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX = NULL;
-
-PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX = NULL;
-PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX = NULL;
-PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX = NULL;
-PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX = NULL;
-
-PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX = NULL;
-
-PFNGLGETVECTOROPERATIONSGIXPROC __glewGetVectorOperationSGIX = NULL;
-PFNGLVECTOROPERATIONSGIXPROC __glewVectorOperationSGIX = NULL;
-
-PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC __glewAreVertexArraysResidentSGIX = NULL;
-PFNGLBINDVERTEXARRAYSGIXPROC __glewBindVertexArraySGIX = NULL;
-PFNGLDELETEVERTEXARRAYSSGIXPROC __glewDeleteVertexArraysSGIX = NULL;
-PFNGLGENVERTEXARRAYSSGIXPROC __glewGenVertexArraysSGIX = NULL;
-PFNGLISVERTEXARRAYSGIXPROC __glewIsVertexArraySGIX = NULL;
-PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC __glewPrioritizeVertexArraysSGIX = NULL;
-
-PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI = NULL;
-PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI = NULL;
-PFNGLCOLORTABLESGIPROC __glewColorTableSGI = NULL;
-PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI = NULL;
-PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI = NULL;
-PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI = NULL;
-PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI = NULL;
-
-PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC __glewGetPixelTransformParameterfvSGI = NULL;
-PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC __glewGetPixelTransformParameterivSGI = NULL;
-PFNGLPIXELTRANSFORMPARAMETERFSGIPROC __glewPixelTransformParameterfSGI = NULL;
-PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC __glewPixelTransformParameterfvSGI = NULL;
-PFNGLPIXELTRANSFORMPARAMETERISGIPROC __glewPixelTransformParameteriSGI = NULL;
-PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC __glewPixelTransformParameterivSGI = NULL;
-PFNGLPIXELTRANSFORMSGIPROC __glewPixelTransformSGI = NULL;
-
-PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX = NULL;
-
-PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN = NULL;
-PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN = NULL;
-PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN = NULL;
-PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN = NULL;
-PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN = NULL;
-PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN = NULL;
-PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN = NULL;
-PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN = NULL;
-
-PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN = NULL;
-
-PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN = NULL;
-PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN = NULL;
-PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN = NULL;
-PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN = NULL;
-PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN = NULL;
-PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN = NULL;
-PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN = NULL;
-
-PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN = NULL;
-PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN = NULL;
-PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN = NULL;
-PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN = NULL;
-PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN = NULL;
-PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN = NULL;
-PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN = NULL;
-PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN = NULL;
-PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN = NULL;
-PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN = NULL;
-PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN = NULL;
-PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN = NULL;
-PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN = NULL;
-PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN = NULL;
-PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN = NULL;
-PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN = NULL;
-PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN = NULL;
-PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN = NULL;
-PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = NULL;
-PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = NULL;
-PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = NULL;
-PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = NULL;
-PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN = NULL;
-PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN = NULL;
-PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN = NULL;
-PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN = NULL;
-PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN = NULL;
-PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN = NULL;
-PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN = NULL;
-PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN = NULL;
-PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN = NULL;
-PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN = NULL;
-PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN = NULL;
-PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN = NULL;
-PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN = NULL;
-PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN = NULL;
-PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN = NULL;
-PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN = NULL;
-PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN = NULL;
-PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN = NULL;
-
-PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN = NULL;
-
-GLboolean __GLEW_VERSION_1_1 = GL_FALSE;
-GLboolean __GLEW_VERSION_1_2 = GL_FALSE;
-GLboolean __GLEW_VERSION_1_2_1 = GL_FALSE;
-GLboolean __GLEW_VERSION_1_3 = GL_FALSE;
-GLboolean __GLEW_VERSION_1_4 = GL_FALSE;
-GLboolean __GLEW_VERSION_1_5 = GL_FALSE;
-GLboolean __GLEW_VERSION_2_0 = GL_FALSE;
-GLboolean __GLEW_VERSION_2_1 = GL_FALSE;
-GLboolean __GLEW_VERSION_3_0 = GL_FALSE;
-GLboolean __GLEW_VERSION_3_1 = GL_FALSE;
-GLboolean __GLEW_VERSION_3_2 = GL_FALSE;
-GLboolean __GLEW_VERSION_3_3 = GL_FALSE;
-GLboolean __GLEW_VERSION_4_0 = GL_FALSE;
-GLboolean __GLEW_VERSION_4_1 = GL_FALSE;
-GLboolean __GLEW_VERSION_4_2 = GL_FALSE;
-GLboolean __GLEW_VERSION_4_3 = GL_FALSE;
-GLboolean __GLEW_VERSION_4_4 = GL_FALSE;
-GLboolean __GLEW_VERSION_4_5 = GL_FALSE;
-GLboolean __GLEW_VERSION_4_6 = GL_FALSE;
-GLboolean __GLEW_3DFX_multisample = GL_FALSE;
-GLboolean __GLEW_3DFX_tbuffer = GL_FALSE;
-GLboolean __GLEW_3DFX_texture_compression_FXT1 = GL_FALSE;
-GLboolean __GLEW_AMD_blend_minmax_factor = GL_FALSE;
-GLboolean __GLEW_AMD_compressed_3DC_texture = GL_FALSE;
-GLboolean __GLEW_AMD_compressed_ATC_texture = GL_FALSE;
-GLboolean __GLEW_AMD_conservative_depth = GL_FALSE;
-GLboolean __GLEW_AMD_debug_output = GL_FALSE;
-GLboolean __GLEW_AMD_depth_clamp_separate = GL_FALSE;
-GLboolean __GLEW_AMD_draw_buffers_blend = GL_FALSE;
-GLboolean __GLEW_AMD_framebuffer_multisample_advanced = GL_FALSE;
-GLboolean __GLEW_AMD_framebuffer_sample_positions = GL_FALSE;
-GLboolean __GLEW_AMD_gcn_shader = GL_FALSE;
-GLboolean __GLEW_AMD_gpu_shader_half_float = GL_FALSE;
-GLboolean __GLEW_AMD_gpu_shader_half_float_fetch = GL_FALSE;
-GLboolean __GLEW_AMD_gpu_shader_int16 = GL_FALSE;
-GLboolean __GLEW_AMD_gpu_shader_int64 = GL_FALSE;
-GLboolean __GLEW_AMD_interleaved_elements = GL_FALSE;
-GLboolean __GLEW_AMD_multi_draw_indirect = GL_FALSE;
-GLboolean __GLEW_AMD_name_gen_delete = GL_FALSE;
-GLboolean __GLEW_AMD_occlusion_query_event = GL_FALSE;
-GLboolean __GLEW_AMD_performance_monitor = GL_FALSE;
-GLboolean __GLEW_AMD_pinned_memory = GL_FALSE;
-GLboolean __GLEW_AMD_program_binary_Z400 = GL_FALSE;
-GLboolean __GLEW_AMD_query_buffer_object = GL_FALSE;
-GLboolean __GLEW_AMD_sample_positions = GL_FALSE;
-GLboolean __GLEW_AMD_seamless_cubemap_per_texture = GL_FALSE;
-GLboolean __GLEW_AMD_shader_atomic_counter_ops = GL_FALSE;
-GLboolean __GLEW_AMD_shader_ballot = GL_FALSE;
-GLboolean __GLEW_AMD_shader_explicit_vertex_parameter = GL_FALSE;
-GLboolean __GLEW_AMD_shader_image_load_store_lod = GL_FALSE;
-GLboolean __GLEW_AMD_shader_stencil_export = GL_FALSE;
-GLboolean __GLEW_AMD_shader_stencil_value_export = GL_FALSE;
-GLboolean __GLEW_AMD_shader_trinary_minmax = GL_FALSE;
-GLboolean __GLEW_AMD_sparse_texture = GL_FALSE;
-GLboolean __GLEW_AMD_stencil_operation_extended = GL_FALSE;
-GLboolean __GLEW_AMD_texture_gather_bias_lod = GL_FALSE;
-GLboolean __GLEW_AMD_texture_texture4 = GL_FALSE;
-GLboolean __GLEW_AMD_transform_feedback3_lines_triangles = GL_FALSE;
-GLboolean __GLEW_AMD_transform_feedback4 = GL_FALSE;
-GLboolean __GLEW_AMD_vertex_shader_layer = GL_FALSE;
-GLboolean __GLEW_AMD_vertex_shader_tessellator = GL_FALSE;
-GLboolean __GLEW_AMD_vertex_shader_viewport_index = GL_FALSE;
-GLboolean __GLEW_ANDROID_extension_pack_es31a = GL_FALSE;
-GLboolean __GLEW_ANGLE_depth_texture = GL_FALSE;
-GLboolean __GLEW_ANGLE_framebuffer_blit = GL_FALSE;
-GLboolean __GLEW_ANGLE_framebuffer_multisample = GL_FALSE;
-GLboolean __GLEW_ANGLE_instanced_arrays = GL_FALSE;
-GLboolean __GLEW_ANGLE_pack_reverse_row_order = GL_FALSE;
-GLboolean __GLEW_ANGLE_program_binary = GL_FALSE;
-GLboolean __GLEW_ANGLE_texture_compression_dxt1 = GL_FALSE;
-GLboolean __GLEW_ANGLE_texture_compression_dxt3 = GL_FALSE;
-GLboolean __GLEW_ANGLE_texture_compression_dxt5 = GL_FALSE;
-GLboolean __GLEW_ANGLE_texture_usage = GL_FALSE;
-GLboolean __GLEW_ANGLE_timer_query = GL_FALSE;
-GLboolean __GLEW_ANGLE_translated_shader_source = GL_FALSE;
-GLboolean __GLEW_APPLE_aux_depth_stencil = GL_FALSE;
-GLboolean __GLEW_APPLE_client_storage = GL_FALSE;
-GLboolean __GLEW_APPLE_clip_distance = GL_FALSE;
-GLboolean __GLEW_APPLE_color_buffer_packed_float = GL_FALSE;
-GLboolean __GLEW_APPLE_copy_texture_levels = GL_FALSE;
-GLboolean __GLEW_APPLE_element_array = GL_FALSE;
-GLboolean __GLEW_APPLE_fence = GL_FALSE;
-GLboolean __GLEW_APPLE_float_pixels = GL_FALSE;
-GLboolean __GLEW_APPLE_flush_buffer_range = GL_FALSE;
-GLboolean __GLEW_APPLE_framebuffer_multisample = GL_FALSE;
-GLboolean __GLEW_APPLE_object_purgeable = GL_FALSE;
-GLboolean __GLEW_APPLE_pixel_buffer = GL_FALSE;
-GLboolean __GLEW_APPLE_rgb_422 = GL_FALSE;
-GLboolean __GLEW_APPLE_row_bytes = GL_FALSE;
-GLboolean __GLEW_APPLE_specular_vector = GL_FALSE;
-GLboolean __GLEW_APPLE_sync = GL_FALSE;
-GLboolean __GLEW_APPLE_texture_2D_limited_npot = GL_FALSE;
-GLboolean __GLEW_APPLE_texture_format_BGRA8888 = GL_FALSE;
-GLboolean __GLEW_APPLE_texture_max_level = GL_FALSE;
-GLboolean __GLEW_APPLE_texture_packed_float = GL_FALSE;
-GLboolean __GLEW_APPLE_texture_range = GL_FALSE;
-GLboolean __GLEW_APPLE_transform_hint = GL_FALSE;
-GLboolean __GLEW_APPLE_vertex_array_object = GL_FALSE;
-GLboolean __GLEW_APPLE_vertex_array_range = GL_FALSE;
-GLboolean __GLEW_APPLE_vertex_program_evaluators = GL_FALSE;
-GLboolean __GLEW_APPLE_ycbcr_422 = GL_FALSE;
-GLboolean __GLEW_ARB_ES2_compatibility = GL_FALSE;
-GLboolean __GLEW_ARB_ES3_1_compatibility = GL_FALSE;
-GLboolean __GLEW_ARB_ES3_2_compatibility = GL_FALSE;
-GLboolean __GLEW_ARB_ES3_compatibility = GL_FALSE;
-GLboolean __GLEW_ARB_arrays_of_arrays = GL_FALSE;
-GLboolean __GLEW_ARB_base_instance = GL_FALSE;
-GLboolean __GLEW_ARB_bindless_texture = GL_FALSE;
-GLboolean __GLEW_ARB_blend_func_extended = GL_FALSE;
-GLboolean __GLEW_ARB_buffer_storage = GL_FALSE;
-GLboolean __GLEW_ARB_cl_event = GL_FALSE;
-GLboolean __GLEW_ARB_clear_buffer_object = GL_FALSE;
-GLboolean __GLEW_ARB_clear_texture = GL_FALSE;
-GLboolean __GLEW_ARB_clip_control = GL_FALSE;
-GLboolean __GLEW_ARB_color_buffer_float = GL_FALSE;
-GLboolean __GLEW_ARB_compatibility = GL_FALSE;
-GLboolean __GLEW_ARB_compressed_texture_pixel_storage = GL_FALSE;
-GLboolean __GLEW_ARB_compute_shader = GL_FALSE;
-GLboolean __GLEW_ARB_compute_variable_group_size = GL_FALSE;
-GLboolean __GLEW_ARB_conditional_render_inverted = GL_FALSE;
-GLboolean __GLEW_ARB_conservative_depth = GL_FALSE;
-GLboolean __GLEW_ARB_copy_buffer = GL_FALSE;
-GLboolean __GLEW_ARB_copy_image = GL_FALSE;
-GLboolean __GLEW_ARB_cull_distance = GL_FALSE;
-GLboolean __GLEW_ARB_debug_output = GL_FALSE;
-GLboolean __GLEW_ARB_depth_buffer_float = GL_FALSE;
-GLboolean __GLEW_ARB_depth_clamp = GL_FALSE;
-GLboolean __GLEW_ARB_depth_texture = GL_FALSE;
-GLboolean __GLEW_ARB_derivative_control = GL_FALSE;
-GLboolean __GLEW_ARB_direct_state_access = GL_FALSE;
-GLboolean __GLEW_ARB_draw_buffers = GL_FALSE;
-GLboolean __GLEW_ARB_draw_buffers_blend = GL_FALSE;
-GLboolean __GLEW_ARB_draw_elements_base_vertex = GL_FALSE;
-GLboolean __GLEW_ARB_draw_indirect = GL_FALSE;
-GLboolean __GLEW_ARB_draw_instanced = GL_FALSE;
-GLboolean __GLEW_ARB_enhanced_layouts = GL_FALSE;
-GLboolean __GLEW_ARB_explicit_attrib_location = GL_FALSE;
-GLboolean __GLEW_ARB_explicit_uniform_location = GL_FALSE;
-GLboolean __GLEW_ARB_fragment_coord_conventions = GL_FALSE;
-GLboolean __GLEW_ARB_fragment_layer_viewport = GL_FALSE;
-GLboolean __GLEW_ARB_fragment_program = GL_FALSE;
-GLboolean __GLEW_ARB_fragment_program_shadow = GL_FALSE;
-GLboolean __GLEW_ARB_fragment_shader = GL_FALSE;
-GLboolean __GLEW_ARB_fragment_shader_interlock = GL_FALSE;
-GLboolean __GLEW_ARB_framebuffer_no_attachments = GL_FALSE;
-GLboolean __GLEW_ARB_framebuffer_object = GL_FALSE;
-GLboolean __GLEW_ARB_framebuffer_sRGB = GL_FALSE;
-GLboolean __GLEW_ARB_geometry_shader4 = GL_FALSE;
-GLboolean __GLEW_ARB_get_program_binary = GL_FALSE;
-GLboolean __GLEW_ARB_get_texture_sub_image = GL_FALSE;
-GLboolean __GLEW_ARB_gl_spirv = GL_FALSE;
-GLboolean __GLEW_ARB_gpu_shader5 = GL_FALSE;
-GLboolean __GLEW_ARB_gpu_shader_fp64 = GL_FALSE;
-GLboolean __GLEW_ARB_gpu_shader_int64 = GL_FALSE;
-GLboolean __GLEW_ARB_half_float_pixel = GL_FALSE;
-GLboolean __GLEW_ARB_half_float_vertex = GL_FALSE;
-GLboolean __GLEW_ARB_imaging = GL_FALSE;
-GLboolean __GLEW_ARB_indirect_parameters = GL_FALSE;
-GLboolean __GLEW_ARB_instanced_arrays = GL_FALSE;
-GLboolean __GLEW_ARB_internalformat_query = GL_FALSE;
-GLboolean __GLEW_ARB_internalformat_query2 = GL_FALSE;
-GLboolean __GLEW_ARB_invalidate_subdata = GL_FALSE;
-GLboolean __GLEW_ARB_map_buffer_alignment = GL_FALSE;
-GLboolean __GLEW_ARB_map_buffer_range = GL_FALSE;
-GLboolean __GLEW_ARB_matrix_palette = GL_FALSE;
-GLboolean __GLEW_ARB_multi_bind = GL_FALSE;
-GLboolean __GLEW_ARB_multi_draw_indirect = GL_FALSE;
-GLboolean __GLEW_ARB_multisample = GL_FALSE;
-GLboolean __GLEW_ARB_multitexture = GL_FALSE;
-GLboolean __GLEW_ARB_occlusion_query = GL_FALSE;
-GLboolean __GLEW_ARB_occlusion_query2 = GL_FALSE;
-GLboolean __GLEW_ARB_parallel_shader_compile = GL_FALSE;
-GLboolean __GLEW_ARB_pipeline_statistics_query = GL_FALSE;
-GLboolean __GLEW_ARB_pixel_buffer_object = GL_FALSE;
-GLboolean __GLEW_ARB_point_parameters = GL_FALSE;
-GLboolean __GLEW_ARB_point_sprite = GL_FALSE;
-GLboolean __GLEW_ARB_polygon_offset_clamp = GL_FALSE;
-GLboolean __GLEW_ARB_post_depth_coverage = GL_FALSE;
-GLboolean __GLEW_ARB_program_interface_query = GL_FALSE;
-GLboolean __GLEW_ARB_provoking_vertex = GL_FALSE;
-GLboolean __GLEW_ARB_query_buffer_object = GL_FALSE;
-GLboolean __GLEW_ARB_robust_buffer_access_behavior = GL_FALSE;
-GLboolean __GLEW_ARB_robustness = GL_FALSE;
-GLboolean __GLEW_ARB_robustness_application_isolation = GL_FALSE;
-GLboolean __GLEW_ARB_robustness_share_group_isolation = GL_FALSE;
-GLboolean __GLEW_ARB_sample_locations = GL_FALSE;
-GLboolean __GLEW_ARB_sample_shading = GL_FALSE;
-GLboolean __GLEW_ARB_sampler_objects = GL_FALSE;
-GLboolean __GLEW_ARB_seamless_cube_map = GL_FALSE;
-GLboolean __GLEW_ARB_seamless_cubemap_per_texture = GL_FALSE;
-GLboolean __GLEW_ARB_separate_shader_objects = GL_FALSE;
-GLboolean __GLEW_ARB_shader_atomic_counter_ops = GL_FALSE;
-GLboolean __GLEW_ARB_shader_atomic_counters = GL_FALSE;
-GLboolean __GLEW_ARB_shader_ballot = GL_FALSE;
-GLboolean __GLEW_ARB_shader_bit_encoding = GL_FALSE;
-GLboolean __GLEW_ARB_shader_clock = GL_FALSE;
-GLboolean __GLEW_ARB_shader_draw_parameters = GL_FALSE;
-GLboolean __GLEW_ARB_shader_group_vote = GL_FALSE;
-GLboolean __GLEW_ARB_shader_image_load_store = GL_FALSE;
-GLboolean __GLEW_ARB_shader_image_size = GL_FALSE;
-GLboolean __GLEW_ARB_shader_objects = GL_FALSE;
-GLboolean __GLEW_ARB_shader_precision = GL_FALSE;
-GLboolean __GLEW_ARB_shader_stencil_export = GL_FALSE;
-GLboolean __GLEW_ARB_shader_storage_buffer_object = GL_FALSE;
-GLboolean __GLEW_ARB_shader_subroutine = GL_FALSE;
-GLboolean __GLEW_ARB_shader_texture_image_samples = GL_FALSE;
-GLboolean __GLEW_ARB_shader_texture_lod = GL_FALSE;
-GLboolean __GLEW_ARB_shader_viewport_layer_array = GL_FALSE;
-GLboolean __GLEW_ARB_shading_language_100 = GL_FALSE;
-GLboolean __GLEW_ARB_shading_language_420pack = GL_FALSE;
-GLboolean __GLEW_ARB_shading_language_include = GL_FALSE;
-GLboolean __GLEW_ARB_shading_language_packing = GL_FALSE;
-GLboolean __GLEW_ARB_shadow = GL_FALSE;
-GLboolean __GLEW_ARB_shadow_ambient = GL_FALSE;
-GLboolean __GLEW_ARB_sparse_buffer = GL_FALSE;
-GLboolean __GLEW_ARB_sparse_texture = GL_FALSE;
-GLboolean __GLEW_ARB_sparse_texture2 = GL_FALSE;
-GLboolean __GLEW_ARB_sparse_texture_clamp = GL_FALSE;
-GLboolean __GLEW_ARB_spirv_extensions = GL_FALSE;
-GLboolean __GLEW_ARB_stencil_texturing = GL_FALSE;
-GLboolean __GLEW_ARB_sync = GL_FALSE;
-GLboolean __GLEW_ARB_tessellation_shader = GL_FALSE;
-GLboolean __GLEW_ARB_texture_barrier = GL_FALSE;
-GLboolean __GLEW_ARB_texture_border_clamp = GL_FALSE;
-GLboolean __GLEW_ARB_texture_buffer_object = GL_FALSE;
-GLboolean __GLEW_ARB_texture_buffer_object_rgb32 = GL_FALSE;
-GLboolean __GLEW_ARB_texture_buffer_range = GL_FALSE;
-GLboolean __GLEW_ARB_texture_compression = GL_FALSE;
-GLboolean __GLEW_ARB_texture_compression_bptc = GL_FALSE;
-GLboolean __GLEW_ARB_texture_compression_rgtc = GL_FALSE;
-GLboolean __GLEW_ARB_texture_cube_map = GL_FALSE;
-GLboolean __GLEW_ARB_texture_cube_map_array = GL_FALSE;
-GLboolean __GLEW_ARB_texture_env_add = GL_FALSE;
-GLboolean __GLEW_ARB_texture_env_combine = GL_FALSE;
-GLboolean __GLEW_ARB_texture_env_crossbar = GL_FALSE;
-GLboolean __GLEW_ARB_texture_env_dot3 = GL_FALSE;
-GLboolean __GLEW_ARB_texture_filter_anisotropic = GL_FALSE;
-GLboolean __GLEW_ARB_texture_filter_minmax = GL_FALSE;
-GLboolean __GLEW_ARB_texture_float = GL_FALSE;
-GLboolean __GLEW_ARB_texture_gather = GL_FALSE;
-GLboolean __GLEW_ARB_texture_mirror_clamp_to_edge = GL_FALSE;
-GLboolean __GLEW_ARB_texture_mirrored_repeat = GL_FALSE;
-GLboolean __GLEW_ARB_texture_multisample = GL_FALSE;
-GLboolean __GLEW_ARB_texture_non_power_of_two = GL_FALSE;
-GLboolean __GLEW_ARB_texture_query_levels = GL_FALSE;
-GLboolean __GLEW_ARB_texture_query_lod = GL_FALSE;
-GLboolean __GLEW_ARB_texture_rectangle = GL_FALSE;
-GLboolean __GLEW_ARB_texture_rg = GL_FALSE;
-GLboolean __GLEW_ARB_texture_rgb10_a2ui = GL_FALSE;
-GLboolean __GLEW_ARB_texture_stencil8 = GL_FALSE;
-GLboolean __GLEW_ARB_texture_storage = GL_FALSE;
-GLboolean __GLEW_ARB_texture_storage_multisample = GL_FALSE;
-GLboolean __GLEW_ARB_texture_swizzle = GL_FALSE;
-GLboolean __GLEW_ARB_texture_view = GL_FALSE;
-GLboolean __GLEW_ARB_timer_query = GL_FALSE;
-GLboolean __GLEW_ARB_transform_feedback2 = GL_FALSE;
-GLboolean __GLEW_ARB_transform_feedback3 = GL_FALSE;
-GLboolean __GLEW_ARB_transform_feedback_instanced = GL_FALSE;
-GLboolean __GLEW_ARB_transform_feedback_overflow_query = GL_FALSE;
-GLboolean __GLEW_ARB_transpose_matrix = GL_FALSE;
-GLboolean __GLEW_ARB_uniform_buffer_object = GL_FALSE;
-GLboolean __GLEW_ARB_vertex_array_bgra = GL_FALSE;
-GLboolean __GLEW_ARB_vertex_array_object = GL_FALSE;
-GLboolean __GLEW_ARB_vertex_attrib_64bit = GL_FALSE;
-GLboolean __GLEW_ARB_vertex_attrib_binding = GL_FALSE;
-GLboolean __GLEW_ARB_vertex_blend = GL_FALSE;
-GLboolean __GLEW_ARB_vertex_buffer_object = GL_FALSE;
-GLboolean __GLEW_ARB_vertex_program = GL_FALSE;
-GLboolean __GLEW_ARB_vertex_shader = GL_FALSE;
-GLboolean __GLEW_ARB_vertex_type_10f_11f_11f_rev = GL_FALSE;
-GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev = GL_FALSE;
-GLboolean __GLEW_ARB_viewport_array = GL_FALSE;
-GLboolean __GLEW_ARB_window_pos = GL_FALSE;
-GLboolean __GLEW_ARM_mali_program_binary = GL_FALSE;
-GLboolean __GLEW_ARM_mali_shader_binary = GL_FALSE;
-GLboolean __GLEW_ARM_rgba8 = GL_FALSE;
-GLboolean __GLEW_ARM_shader_framebuffer_fetch = GL_FALSE;
-GLboolean __GLEW_ARM_shader_framebuffer_fetch_depth_stencil = GL_FALSE;
-GLboolean __GLEW_ARM_texture_unnormalized_coordinates = GL_FALSE;
-GLboolean __GLEW_ATIX_point_sprites = GL_FALSE;
-GLboolean __GLEW_ATIX_texture_env_combine3 = GL_FALSE;
-GLboolean __GLEW_ATIX_texture_env_route = GL_FALSE;
-GLboolean __GLEW_ATIX_vertex_shader_output_point_size = GL_FALSE;
-GLboolean __GLEW_ATI_draw_buffers = GL_FALSE;
-GLboolean __GLEW_ATI_element_array = GL_FALSE;
-GLboolean __GLEW_ATI_envmap_bumpmap = GL_FALSE;
-GLboolean __GLEW_ATI_fragment_shader = GL_FALSE;
-GLboolean __GLEW_ATI_map_object_buffer = GL_FALSE;
-GLboolean __GLEW_ATI_meminfo = GL_FALSE;
-GLboolean __GLEW_ATI_pn_triangles = GL_FALSE;
-GLboolean __GLEW_ATI_separate_stencil = GL_FALSE;
-GLboolean __GLEW_ATI_shader_texture_lod = GL_FALSE;
-GLboolean __GLEW_ATI_text_fragment_shader = GL_FALSE;
-GLboolean __GLEW_ATI_texture_compression_3dc = GL_FALSE;
-GLboolean __GLEW_ATI_texture_env_combine3 = GL_FALSE;
-GLboolean __GLEW_ATI_texture_float = GL_FALSE;
-GLboolean __GLEW_ATI_texture_mirror_once = GL_FALSE;
-GLboolean __GLEW_ATI_vertex_array_object = GL_FALSE;
-GLboolean __GLEW_ATI_vertex_attrib_array_object = GL_FALSE;
-GLboolean __GLEW_ATI_vertex_streams = GL_FALSE;
-GLboolean __GLEW_DMP_program_binary = GL_FALSE;
-GLboolean __GLEW_DMP_shader_binary = GL_FALSE;
-GLboolean __GLEW_EXT_422_pixels = GL_FALSE;
-GLboolean __GLEW_EXT_Cg_shader = GL_FALSE;
-GLboolean __GLEW_EXT_EGL_image_array = GL_FALSE;
-GLboolean __GLEW_EXT_EGL_image_external_wrap_modes = GL_FALSE;
-GLboolean __GLEW_EXT_EGL_image_storage = GL_FALSE;
-GLboolean __GLEW_EXT_EGL_sync = GL_FALSE;
-GLboolean __GLEW_EXT_YUV_target = GL_FALSE;
-GLboolean __GLEW_EXT_abgr = GL_FALSE;
-GLboolean __GLEW_EXT_base_instance = GL_FALSE;
-GLboolean __GLEW_EXT_bgra = GL_FALSE;
-GLboolean __GLEW_EXT_bindable_uniform = GL_FALSE;
-GLboolean __GLEW_EXT_blend_color = GL_FALSE;
-GLboolean __GLEW_EXT_blend_equation_separate = GL_FALSE;
-GLboolean __GLEW_EXT_blend_func_extended = GL_FALSE;
-GLboolean __GLEW_EXT_blend_func_separate = GL_FALSE;
-GLboolean __GLEW_EXT_blend_logic_op = GL_FALSE;
-GLboolean __GLEW_EXT_blend_minmax = GL_FALSE;
-GLboolean __GLEW_EXT_blend_subtract = GL_FALSE;
-GLboolean __GLEW_EXT_buffer_storage = GL_FALSE;
-GLboolean __GLEW_EXT_clear_texture = GL_FALSE;
-GLboolean __GLEW_EXT_clip_control = GL_FALSE;
-GLboolean __GLEW_EXT_clip_cull_distance = GL_FALSE;
-GLboolean __GLEW_EXT_clip_volume_hint = GL_FALSE;
-GLboolean __GLEW_EXT_cmyka = GL_FALSE;
-GLboolean __GLEW_EXT_color_buffer_float = GL_FALSE;
-GLboolean __GLEW_EXT_color_buffer_half_float = GL_FALSE;
-GLboolean __GLEW_EXT_color_subtable = GL_FALSE;
-GLboolean __GLEW_EXT_compiled_vertex_array = GL_FALSE;
-GLboolean __GLEW_EXT_compressed_ETC1_RGB8_sub_texture = GL_FALSE;
-GLboolean __GLEW_EXT_conservative_depth = GL_FALSE;
-GLboolean __GLEW_EXT_convolution = GL_FALSE;
-GLboolean __GLEW_EXT_coordinate_frame = GL_FALSE;
-GLboolean __GLEW_EXT_copy_image = GL_FALSE;
-GLboolean __GLEW_EXT_copy_texture = GL_FALSE;
-GLboolean __GLEW_EXT_cull_vertex = GL_FALSE;
-GLboolean __GLEW_EXT_debug_label = GL_FALSE;
-GLboolean __GLEW_EXT_debug_marker = GL_FALSE;
-GLboolean __GLEW_EXT_depth_bounds_test = GL_FALSE;
-GLboolean __GLEW_EXT_depth_clamp = GL_FALSE;
-GLboolean __GLEW_EXT_direct_state_access = GL_FALSE;
-GLboolean __GLEW_EXT_discard_framebuffer = GL_FALSE;
-GLboolean __GLEW_EXT_disjoint_timer_query = GL_FALSE;
-GLboolean __GLEW_EXT_draw_buffers = GL_FALSE;
-GLboolean __GLEW_EXT_draw_buffers2 = GL_FALSE;
-GLboolean __GLEW_EXT_draw_buffers_indexed = GL_FALSE;
-GLboolean __GLEW_EXT_draw_elements_base_vertex = GL_FALSE;
-GLboolean __GLEW_EXT_draw_instanced = GL_FALSE;
-GLboolean __GLEW_EXT_draw_range_elements = GL_FALSE;
-GLboolean __GLEW_EXT_draw_transform_feedback = GL_FALSE;
-GLboolean __GLEW_EXT_external_buffer = GL_FALSE;
-GLboolean __GLEW_EXT_float_blend = GL_FALSE;
-GLboolean __GLEW_EXT_fog_coord = GL_FALSE;
-GLboolean __GLEW_EXT_frag_depth = GL_FALSE;
-GLboolean __GLEW_EXT_fragment_lighting = GL_FALSE;
-GLboolean __GLEW_EXT_framebuffer_blit = GL_FALSE;
-GLboolean __GLEW_EXT_framebuffer_multisample = GL_FALSE;
-GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled = GL_FALSE;
-GLboolean __GLEW_EXT_framebuffer_object = GL_FALSE;
-GLboolean __GLEW_EXT_framebuffer_sRGB = GL_FALSE;
-GLboolean __GLEW_EXT_geometry_point_size = GL_FALSE;
-GLboolean __GLEW_EXT_geometry_shader = GL_FALSE;
-GLboolean __GLEW_EXT_geometry_shader4 = GL_FALSE;
-GLboolean __GLEW_EXT_gpu_program_parameters = GL_FALSE;
-GLboolean __GLEW_EXT_gpu_shader4 = GL_FALSE;
-GLboolean __GLEW_EXT_gpu_shader5 = GL_FALSE;
-GLboolean __GLEW_EXT_histogram = GL_FALSE;
-GLboolean __GLEW_EXT_index_array_formats = GL_FALSE;
-GLboolean __GLEW_EXT_index_func = GL_FALSE;
-GLboolean __GLEW_EXT_index_material = GL_FALSE;
-GLboolean __GLEW_EXT_index_texture = GL_FALSE;
-GLboolean __GLEW_EXT_instanced_arrays = GL_FALSE;
-GLboolean __GLEW_EXT_light_texture = GL_FALSE;
-GLboolean __GLEW_EXT_map_buffer_range = GL_FALSE;
-GLboolean __GLEW_EXT_memory_object = GL_FALSE;
-GLboolean __GLEW_EXT_memory_object_fd = GL_FALSE;
-GLboolean __GLEW_EXT_memory_object_win32 = GL_FALSE;
-GLboolean __GLEW_EXT_misc_attribute = GL_FALSE;
-GLboolean __GLEW_EXT_multi_draw_arrays = GL_FALSE;
-GLboolean __GLEW_EXT_multi_draw_indirect = GL_FALSE;
-GLboolean __GLEW_EXT_multiple_textures = GL_FALSE;
-GLboolean __GLEW_EXT_multisample = GL_FALSE;
-GLboolean __GLEW_EXT_multisample_compatibility = GL_FALSE;
-GLboolean __GLEW_EXT_multisampled_render_to_texture = GL_FALSE;
-GLboolean __GLEW_EXT_multisampled_render_to_texture2 = GL_FALSE;
-GLboolean __GLEW_EXT_multiview_draw_buffers = GL_FALSE;
-GLboolean __GLEW_EXT_multiview_tessellation_geometry_shader = GL_FALSE;
-GLboolean __GLEW_EXT_multiview_texture_multisample = GL_FALSE;
-GLboolean __GLEW_EXT_multiview_timer_query = GL_FALSE;
-GLboolean __GLEW_EXT_occlusion_query_boolean = GL_FALSE;
-GLboolean __GLEW_EXT_packed_depth_stencil = GL_FALSE;
-GLboolean __GLEW_EXT_packed_float = GL_FALSE;
-GLboolean __GLEW_EXT_packed_pixels = GL_FALSE;
-GLboolean __GLEW_EXT_paletted_texture = GL_FALSE;
-GLboolean __GLEW_EXT_pixel_buffer_object = GL_FALSE;
-GLboolean __GLEW_EXT_pixel_transform = GL_FALSE;
-GLboolean __GLEW_EXT_pixel_transform_color_table = GL_FALSE;
-GLboolean __GLEW_EXT_point_parameters = GL_FALSE;
-GLboolean __GLEW_EXT_polygon_offset = GL_FALSE;
-GLboolean __GLEW_EXT_polygon_offset_clamp = GL_FALSE;
-GLboolean __GLEW_EXT_post_depth_coverage = GL_FALSE;
-GLboolean __GLEW_EXT_primitive_bounding_box = GL_FALSE;
-GLboolean __GLEW_EXT_protected_textures = GL_FALSE;
-GLboolean __GLEW_EXT_provoking_vertex = GL_FALSE;
-GLboolean __GLEW_EXT_pvrtc_sRGB = GL_FALSE;
-GLboolean __GLEW_EXT_raster_multisample = GL_FALSE;
-GLboolean __GLEW_EXT_read_format_bgra = GL_FALSE;
-GLboolean __GLEW_EXT_render_snorm = GL_FALSE;
-GLboolean __GLEW_EXT_rescale_normal = GL_FALSE;
-GLboolean __GLEW_EXT_robustness = GL_FALSE;
-GLboolean __GLEW_EXT_sRGB = GL_FALSE;
-GLboolean __GLEW_EXT_sRGB_write_control = GL_FALSE;
-GLboolean __GLEW_EXT_scene_marker = GL_FALSE;
-GLboolean __GLEW_EXT_secondary_color = GL_FALSE;
-GLboolean __GLEW_EXT_semaphore = GL_FALSE;
-GLboolean __GLEW_EXT_semaphore_fd = GL_FALSE;
-GLboolean __GLEW_EXT_semaphore_win32 = GL_FALSE;
-GLboolean __GLEW_EXT_separate_shader_objects = GL_FALSE;
-GLboolean __GLEW_EXT_separate_specular_color = GL_FALSE;
-GLboolean __GLEW_EXT_shader_framebuffer_fetch = GL_FALSE;
-GLboolean __GLEW_EXT_shader_framebuffer_fetch_non_coherent = GL_FALSE;
-GLboolean __GLEW_EXT_shader_group_vote = GL_FALSE;
-GLboolean __GLEW_EXT_shader_image_load_formatted = GL_FALSE;
-GLboolean __GLEW_EXT_shader_image_load_store = GL_FALSE;
-GLboolean __GLEW_EXT_shader_implicit_conversions = GL_FALSE;
-GLboolean __GLEW_EXT_shader_integer_mix = GL_FALSE;
-GLboolean __GLEW_EXT_shader_io_blocks = GL_FALSE;
-GLboolean __GLEW_EXT_shader_non_constant_global_initializers = GL_FALSE;
-GLboolean __GLEW_EXT_shader_pixel_local_storage = GL_FALSE;
-GLboolean __GLEW_EXT_shader_pixel_local_storage2 = GL_FALSE;
-GLboolean __GLEW_EXT_shader_texture_lod = GL_FALSE;
-GLboolean __GLEW_EXT_shadow_funcs = GL_FALSE;
-GLboolean __GLEW_EXT_shadow_samplers = GL_FALSE;
-GLboolean __GLEW_EXT_shared_texture_palette = GL_FALSE;
-GLboolean __GLEW_EXT_sparse_texture = GL_FALSE;
-GLboolean __GLEW_EXT_sparse_texture2 = GL_FALSE;
-GLboolean __GLEW_EXT_static_vertex_array = GL_FALSE;
-GLboolean __GLEW_EXT_stencil_clear_tag = GL_FALSE;
-GLboolean __GLEW_EXT_stencil_two_side = GL_FALSE;
-GLboolean __GLEW_EXT_stencil_wrap = GL_FALSE;
-GLboolean __GLEW_EXT_subtexture = GL_FALSE;
-GLboolean __GLEW_EXT_tessellation_point_size = GL_FALSE;
-GLboolean __GLEW_EXT_tessellation_shader = GL_FALSE;
-GLboolean __GLEW_EXT_texture = GL_FALSE;
-GLboolean __GLEW_EXT_texture3D = GL_FALSE;
-GLboolean __GLEW_EXT_texture_array = GL_FALSE;
-GLboolean __GLEW_EXT_texture_border_clamp = GL_FALSE;
-GLboolean __GLEW_EXT_texture_buffer = GL_FALSE;
-GLboolean __GLEW_EXT_texture_buffer_object = GL_FALSE;
-GLboolean __GLEW_EXT_texture_compression_astc_decode_mode = GL_FALSE;
-GLboolean __GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5 = GL_FALSE;
-GLboolean __GLEW_EXT_texture_compression_bptc = GL_FALSE;
-GLboolean __GLEW_EXT_texture_compression_dxt1 = GL_FALSE;
-GLboolean __GLEW_EXT_texture_compression_latc = GL_FALSE;
-GLboolean __GLEW_EXT_texture_compression_rgtc = GL_FALSE;
-GLboolean __GLEW_EXT_texture_compression_s3tc = GL_FALSE;
-GLboolean __GLEW_EXT_texture_compression_s3tc_srgb = GL_FALSE;
-GLboolean __GLEW_EXT_texture_cube_map = GL_FALSE;
-GLboolean __GLEW_EXT_texture_cube_map_array = GL_FALSE;
-GLboolean __GLEW_EXT_texture_edge_clamp = GL_FALSE;
-GLboolean __GLEW_EXT_texture_env = GL_FALSE;
-GLboolean __GLEW_EXT_texture_env_add = GL_FALSE;
-GLboolean __GLEW_EXT_texture_env_combine = GL_FALSE;
-GLboolean __GLEW_EXT_texture_env_dot3 = GL_FALSE;
-GLboolean __GLEW_EXT_texture_filter_anisotropic = GL_FALSE;
-GLboolean __GLEW_EXT_texture_filter_minmax = GL_FALSE;
-GLboolean __GLEW_EXT_texture_format_BGRA8888 = GL_FALSE;
-GLboolean __GLEW_EXT_texture_format_sRGB_override = GL_FALSE;
-GLboolean __GLEW_EXT_texture_integer = GL_FALSE;
-GLboolean __GLEW_EXT_texture_lod_bias = GL_FALSE;
-GLboolean __GLEW_EXT_texture_mirror_clamp = GL_FALSE;
-GLboolean __GLEW_EXT_texture_mirror_clamp_to_edge = GL_FALSE;
-GLboolean __GLEW_EXT_texture_norm16 = GL_FALSE;
-GLboolean __GLEW_EXT_texture_object = GL_FALSE;
-GLboolean __GLEW_EXT_texture_perturb_normal = GL_FALSE;
-GLboolean __GLEW_EXT_texture_query_lod = GL_FALSE;
-GLboolean __GLEW_EXT_texture_rectangle = GL_FALSE;
-GLboolean __GLEW_EXT_texture_rg = GL_FALSE;
-GLboolean __GLEW_EXT_texture_sRGB = GL_FALSE;
-GLboolean __GLEW_EXT_texture_sRGB_R8 = GL_FALSE;
-GLboolean __GLEW_EXT_texture_sRGB_RG8 = GL_FALSE;
-GLboolean __GLEW_EXT_texture_sRGB_decode = GL_FALSE;
-GLboolean __GLEW_EXT_texture_shadow_lod = GL_FALSE;
-GLboolean __GLEW_EXT_texture_shared_exponent = GL_FALSE;
-GLboolean __GLEW_EXT_texture_snorm = GL_FALSE;
-GLboolean __GLEW_EXT_texture_storage = GL_FALSE;
-GLboolean __GLEW_EXT_texture_swizzle = GL_FALSE;
-GLboolean __GLEW_EXT_texture_type_2_10_10_10_REV = GL_FALSE;
-GLboolean __GLEW_EXT_texture_view = GL_FALSE;
-GLboolean __GLEW_EXT_timer_query = GL_FALSE;
-GLboolean __GLEW_EXT_transform_feedback = GL_FALSE;
-GLboolean __GLEW_EXT_unpack_subimage = GL_FALSE;
-GLboolean __GLEW_EXT_vertex_array = GL_FALSE;
-GLboolean __GLEW_EXT_vertex_array_bgra = GL_FALSE;
-GLboolean __GLEW_EXT_vertex_array_setXXX = GL_FALSE;
-GLboolean __GLEW_EXT_vertex_attrib_64bit = GL_FALSE;
-GLboolean __GLEW_EXT_vertex_shader = GL_FALSE;
-GLboolean __GLEW_EXT_vertex_weighting = GL_FALSE;
-GLboolean __GLEW_EXT_win32_keyed_mutex = GL_FALSE;
-GLboolean __GLEW_EXT_window_rectangles = GL_FALSE;
-GLboolean __GLEW_EXT_x11_sync_object = GL_FALSE;
-GLboolean __GLEW_FJ_shader_binary_GCCSO = GL_FALSE;
-GLboolean __GLEW_GREMEDY_frame_terminator = GL_FALSE;
-GLboolean __GLEW_GREMEDY_string_marker = GL_FALSE;
-GLboolean __GLEW_HP_convolution_border_modes = GL_FALSE;
-GLboolean __GLEW_HP_image_transform = GL_FALSE;
-GLboolean __GLEW_HP_occlusion_test = GL_FALSE;
-GLboolean __GLEW_HP_texture_lighting = GL_FALSE;
-GLboolean __GLEW_IBM_cull_vertex = GL_FALSE;
-GLboolean __GLEW_IBM_multimode_draw_arrays = GL_FALSE;
-GLboolean __GLEW_IBM_rasterpos_clip = GL_FALSE;
-GLboolean __GLEW_IBM_static_data = GL_FALSE;
-GLboolean __GLEW_IBM_texture_mirrored_repeat = GL_FALSE;
-GLboolean __GLEW_IBM_vertex_array_lists = GL_FALSE;
-GLboolean __GLEW_IMG_bindless_texture = GL_FALSE;
-GLboolean __GLEW_IMG_framebuffer_downsample = GL_FALSE;
-GLboolean __GLEW_IMG_multisampled_render_to_texture = GL_FALSE;
-GLboolean __GLEW_IMG_program_binary = GL_FALSE;
-GLboolean __GLEW_IMG_read_format = GL_FALSE;
-GLboolean __GLEW_IMG_shader_binary = GL_FALSE;
-GLboolean __GLEW_IMG_texture_compression_pvrtc = GL_FALSE;
-GLboolean __GLEW_IMG_texture_compression_pvrtc2 = GL_FALSE;
-GLboolean __GLEW_IMG_texture_env_enhanced_fixed_function = GL_FALSE;
-GLboolean __GLEW_IMG_texture_filter_cubic = GL_FALSE;
-GLboolean __GLEW_INGR_color_clamp = GL_FALSE;
-GLboolean __GLEW_INGR_interlace_read = GL_FALSE;
-GLboolean __GLEW_INTEL_blackhole_render = GL_FALSE;
-GLboolean __GLEW_INTEL_conservative_rasterization = GL_FALSE;
-GLboolean __GLEW_INTEL_fragment_shader_ordering = GL_FALSE;
-GLboolean __GLEW_INTEL_framebuffer_CMAA = GL_FALSE;
-GLboolean __GLEW_INTEL_map_texture = GL_FALSE;
-GLboolean __GLEW_INTEL_parallel_arrays = GL_FALSE;
-GLboolean __GLEW_INTEL_performance_query = GL_FALSE;
-GLboolean __GLEW_INTEL_shader_integer_functions2 = GL_FALSE;
-GLboolean __GLEW_INTEL_texture_scissor = GL_FALSE;
-GLboolean __GLEW_KHR_blend_equation_advanced = GL_FALSE;
-GLboolean __GLEW_KHR_blend_equation_advanced_coherent = GL_FALSE;
-GLboolean __GLEW_KHR_context_flush_control = GL_FALSE;
-GLboolean __GLEW_KHR_debug = GL_FALSE;
-GLboolean __GLEW_KHR_no_error = GL_FALSE;
-GLboolean __GLEW_KHR_parallel_shader_compile = GL_FALSE;
-GLboolean __GLEW_KHR_robust_buffer_access_behavior = GL_FALSE;
-GLboolean __GLEW_KHR_robustness = GL_FALSE;
-GLboolean __GLEW_KHR_shader_subgroup = GL_FALSE;
-GLboolean __GLEW_KHR_texture_compression_astc_hdr = GL_FALSE;
-GLboolean __GLEW_KHR_texture_compression_astc_ldr = GL_FALSE;
-GLboolean __GLEW_KHR_texture_compression_astc_sliced_3d = GL_FALSE;
-GLboolean __GLEW_KTX_buffer_region = GL_FALSE;
-GLboolean __GLEW_MESAX_texture_stack = GL_FALSE;
-GLboolean __GLEW_MESA_framebuffer_flip_y = GL_FALSE;
-GLboolean __GLEW_MESA_pack_invert = GL_FALSE;
-GLboolean __GLEW_MESA_program_binary_formats = GL_FALSE;
-GLboolean __GLEW_MESA_resize_buffers = GL_FALSE;
-GLboolean __GLEW_MESA_shader_integer_functions = GL_FALSE;
-GLboolean __GLEW_MESA_tile_raster_order = GL_FALSE;
-GLboolean __GLEW_MESA_window_pos = GL_FALSE;
-GLboolean __GLEW_MESA_ycbcr_texture = GL_FALSE;
-GLboolean __GLEW_NVX_blend_equation_advanced_multi_draw_buffers = GL_FALSE;
-GLboolean __GLEW_NVX_conditional_render = GL_FALSE;
-GLboolean __GLEW_NVX_gpu_memory_info = GL_FALSE;
-GLboolean __GLEW_NVX_gpu_multicast2 = GL_FALSE;
-GLboolean __GLEW_NVX_linked_gpu_multicast = GL_FALSE;
-GLboolean __GLEW_NVX_progress_fence = GL_FALSE;
-GLboolean __GLEW_NV_3dvision_settings = GL_FALSE;
-GLboolean __GLEW_NV_EGL_stream_consumer_external = GL_FALSE;
-GLboolean __GLEW_NV_alpha_to_coverage_dither_control = GL_FALSE;
-GLboolean __GLEW_NV_bgr = GL_FALSE;
-GLboolean __GLEW_NV_bindless_multi_draw_indirect = GL_FALSE;
-GLboolean __GLEW_NV_bindless_multi_draw_indirect_count = GL_FALSE;
-GLboolean __GLEW_NV_bindless_texture = GL_FALSE;
-GLboolean __GLEW_NV_blend_equation_advanced = GL_FALSE;
-GLboolean __GLEW_NV_blend_equation_advanced_coherent = GL_FALSE;
-GLboolean __GLEW_NV_blend_minmax_factor = GL_FALSE;
-GLboolean __GLEW_NV_blend_square = GL_FALSE;
-GLboolean __GLEW_NV_clip_space_w_scaling = GL_FALSE;
-GLboolean __GLEW_NV_command_list = GL_FALSE;
-GLboolean __GLEW_NV_compute_program5 = GL_FALSE;
-GLboolean __GLEW_NV_compute_shader_derivatives = GL_FALSE;
-GLboolean __GLEW_NV_conditional_render = GL_FALSE;
-GLboolean __GLEW_NV_conservative_raster = GL_FALSE;
-GLboolean __GLEW_NV_conservative_raster_dilate = GL_FALSE;
-GLboolean __GLEW_NV_conservative_raster_pre_snap = GL_FALSE;
-GLboolean __GLEW_NV_conservative_raster_pre_snap_triangles = GL_FALSE;
-GLboolean __GLEW_NV_conservative_raster_underestimation = GL_FALSE;
-GLboolean __GLEW_NV_copy_buffer = GL_FALSE;
-GLboolean __GLEW_NV_copy_depth_to_color = GL_FALSE;
-GLboolean __GLEW_NV_copy_image = GL_FALSE;
-GLboolean __GLEW_NV_deep_texture3D = GL_FALSE;
-GLboolean __GLEW_NV_depth_buffer_float = GL_FALSE;
-GLboolean __GLEW_NV_depth_clamp = GL_FALSE;
-GLboolean __GLEW_NV_depth_nonlinear = GL_FALSE;
-GLboolean __GLEW_NV_depth_range_unclamped = GL_FALSE;
-GLboolean __GLEW_NV_draw_buffers = GL_FALSE;
-GLboolean __GLEW_NV_draw_instanced = GL_FALSE;
-GLboolean __GLEW_NV_draw_texture = GL_FALSE;
-GLboolean __GLEW_NV_draw_vulkan_image = GL_FALSE;
-GLboolean __GLEW_NV_evaluators = GL_FALSE;
-GLboolean __GLEW_NV_explicit_attrib_location = GL_FALSE;
-GLboolean __GLEW_NV_explicit_multisample = GL_FALSE;
-GLboolean __GLEW_NV_fbo_color_attachments = GL_FALSE;
-GLboolean __GLEW_NV_fence = GL_FALSE;
-GLboolean __GLEW_NV_fill_rectangle = GL_FALSE;
-GLboolean __GLEW_NV_float_buffer = GL_FALSE;
-GLboolean __GLEW_NV_fog_distance = GL_FALSE;
-GLboolean __GLEW_NV_fragment_coverage_to_color = GL_FALSE;
-GLboolean __GLEW_NV_fragment_program = GL_FALSE;
-GLboolean __GLEW_NV_fragment_program2 = GL_FALSE;
-GLboolean __GLEW_NV_fragment_program4 = GL_FALSE;
-GLboolean __GLEW_NV_fragment_program_option = GL_FALSE;
-GLboolean __GLEW_NV_fragment_shader_barycentric = GL_FALSE;
-GLboolean __GLEW_NV_fragment_shader_interlock = GL_FALSE;
-GLboolean __GLEW_NV_framebuffer_blit = GL_FALSE;
-GLboolean __GLEW_NV_framebuffer_mixed_samples = GL_FALSE;
-GLboolean __GLEW_NV_framebuffer_multisample = GL_FALSE;
-GLboolean __GLEW_NV_framebuffer_multisample_coverage = GL_FALSE;
-GLboolean __GLEW_NV_generate_mipmap_sRGB = GL_FALSE;
-GLboolean __GLEW_NV_geometry_program4 = GL_FALSE;
-GLboolean __GLEW_NV_geometry_shader4 = GL_FALSE;
-GLboolean __GLEW_NV_geometry_shader_passthrough = GL_FALSE;
-GLboolean __GLEW_NV_gpu_multicast = GL_FALSE;
-GLboolean __GLEW_NV_gpu_program4 = GL_FALSE;
-GLboolean __GLEW_NV_gpu_program5 = GL_FALSE;
-GLboolean __GLEW_NV_gpu_program5_mem_extended = GL_FALSE;
-GLboolean __GLEW_NV_gpu_program_fp64 = GL_FALSE;
-GLboolean __GLEW_NV_gpu_shader5 = GL_FALSE;
-GLboolean __GLEW_NV_half_float = GL_FALSE;
-GLboolean __GLEW_NV_image_formats = GL_FALSE;
-GLboolean __GLEW_NV_instanced_arrays = GL_FALSE;
-GLboolean __GLEW_NV_internalformat_sample_query = GL_FALSE;
-GLboolean __GLEW_NV_light_max_exponent = GL_FALSE;
-GLboolean __GLEW_NV_memory_attachment = GL_FALSE;
-GLboolean __GLEW_NV_mesh_shader = GL_FALSE;
-GLboolean __GLEW_NV_multisample_coverage = GL_FALSE;
-GLboolean __GLEW_NV_multisample_filter_hint = GL_FALSE;
-GLboolean __GLEW_NV_non_square_matrices = GL_FALSE;
-GLboolean __GLEW_NV_occlusion_query = GL_FALSE;
-GLboolean __GLEW_NV_pack_subimage = GL_FALSE;
-GLboolean __GLEW_NV_packed_depth_stencil = GL_FALSE;
-GLboolean __GLEW_NV_packed_float = GL_FALSE;
-GLboolean __GLEW_NV_packed_float_linear = GL_FALSE;
-GLboolean __GLEW_NV_parameter_buffer_object = GL_FALSE;
-GLboolean __GLEW_NV_parameter_buffer_object2 = GL_FALSE;
-GLboolean __GLEW_NV_path_rendering = GL_FALSE;
-GLboolean __GLEW_NV_path_rendering_shared_edge = GL_FALSE;
-GLboolean __GLEW_NV_pixel_buffer_object = GL_FALSE;
-GLboolean __GLEW_NV_pixel_data_range = GL_FALSE;
-GLboolean __GLEW_NV_platform_binary = GL_FALSE;
-GLboolean __GLEW_NV_point_sprite = GL_FALSE;
-GLboolean __GLEW_NV_polygon_mode = GL_FALSE;
-GLboolean __GLEW_NV_present_video = GL_FALSE;
-GLboolean __GLEW_NV_primitive_restart = GL_FALSE;
-GLboolean __GLEW_NV_query_resource_tag = GL_FALSE;
-GLboolean __GLEW_NV_read_buffer = GL_FALSE;
-GLboolean __GLEW_NV_read_buffer_front = GL_FALSE;
-GLboolean __GLEW_NV_read_depth = GL_FALSE;
-GLboolean __GLEW_NV_read_depth_stencil = GL_FALSE;
-GLboolean __GLEW_NV_read_stencil = GL_FALSE;
-GLboolean __GLEW_NV_register_combiners = GL_FALSE;
-GLboolean __GLEW_NV_register_combiners2 = GL_FALSE;
-GLboolean __GLEW_NV_representative_fragment_test = GL_FALSE;
-GLboolean __GLEW_NV_robustness_video_memory_purge = GL_FALSE;
-GLboolean __GLEW_NV_sRGB_formats = GL_FALSE;
-GLboolean __GLEW_NV_sample_locations = GL_FALSE;
-GLboolean __GLEW_NV_sample_mask_override_coverage = GL_FALSE;
-GLboolean __GLEW_NV_scissor_exclusive = GL_FALSE;
-GLboolean __GLEW_NV_shader_atomic_counters = GL_FALSE;
-GLboolean __GLEW_NV_shader_atomic_float = GL_FALSE;
-GLboolean __GLEW_NV_shader_atomic_float64 = GL_FALSE;
-GLboolean __GLEW_NV_shader_atomic_fp16_vector = GL_FALSE;
-GLboolean __GLEW_NV_shader_atomic_int64 = GL_FALSE;
-GLboolean __GLEW_NV_shader_buffer_load = GL_FALSE;
-GLboolean __GLEW_NV_shader_noperspective_interpolation = GL_FALSE;
-GLboolean __GLEW_NV_shader_storage_buffer_object = GL_FALSE;
-GLboolean __GLEW_NV_shader_subgroup_partitioned = GL_FALSE;
-GLboolean __GLEW_NV_shader_texture_footprint = GL_FALSE;
-GLboolean __GLEW_NV_shader_thread_group = GL_FALSE;
-GLboolean __GLEW_NV_shader_thread_shuffle = GL_FALSE;
-GLboolean __GLEW_NV_shading_rate_image = GL_FALSE;
-GLboolean __GLEW_NV_shadow_samplers_array = GL_FALSE;
-GLboolean __GLEW_NV_shadow_samplers_cube = GL_FALSE;
-GLboolean __GLEW_NV_stereo_view_rendering = GL_FALSE;
-GLboolean __GLEW_NV_tessellation_program5 = GL_FALSE;
-GLboolean __GLEW_NV_texgen_emboss = GL_FALSE;
-GLboolean __GLEW_NV_texgen_reflection = GL_FALSE;
-GLboolean __GLEW_NV_texture_array = GL_FALSE;
-GLboolean __GLEW_NV_texture_barrier = GL_FALSE;
-GLboolean __GLEW_NV_texture_border_clamp = GL_FALSE;
-GLboolean __GLEW_NV_texture_compression_latc = GL_FALSE;
-GLboolean __GLEW_NV_texture_compression_s3tc = GL_FALSE;
-GLboolean __GLEW_NV_texture_compression_s3tc_update = GL_FALSE;
-GLboolean __GLEW_NV_texture_compression_vtc = GL_FALSE;
-GLboolean __GLEW_NV_texture_env_combine4 = GL_FALSE;
-GLboolean __GLEW_NV_texture_expand_normal = GL_FALSE;
-GLboolean __GLEW_NV_texture_multisample = GL_FALSE;
-GLboolean __GLEW_NV_texture_npot_2D_mipmap = GL_FALSE;
-GLboolean __GLEW_NV_texture_rectangle = GL_FALSE;
-GLboolean __GLEW_NV_texture_rectangle_compressed = GL_FALSE;
-GLboolean __GLEW_NV_texture_shader = GL_FALSE;
-GLboolean __GLEW_NV_texture_shader2 = GL_FALSE;
-GLboolean __GLEW_NV_texture_shader3 = GL_FALSE;
-GLboolean __GLEW_NV_transform_feedback = GL_FALSE;
-GLboolean __GLEW_NV_transform_feedback2 = GL_FALSE;
-GLboolean __GLEW_NV_uniform_buffer_unified_memory = GL_FALSE;
-GLboolean __GLEW_NV_vdpau_interop = GL_FALSE;
-GLboolean __GLEW_NV_vdpau_interop2 = GL_FALSE;
-GLboolean __GLEW_NV_vertex_array_range = GL_FALSE;
-GLboolean __GLEW_NV_vertex_array_range2 = GL_FALSE;
-GLboolean __GLEW_NV_vertex_attrib_integer_64bit = GL_FALSE;
-GLboolean __GLEW_NV_vertex_buffer_unified_memory = GL_FALSE;
-GLboolean __GLEW_NV_vertex_program = GL_FALSE;
-GLboolean __GLEW_NV_vertex_program1_1 = GL_FALSE;
-GLboolean __GLEW_NV_vertex_program2 = GL_FALSE;
-GLboolean __GLEW_NV_vertex_program2_option = GL_FALSE;
-GLboolean __GLEW_NV_vertex_program3 = GL_FALSE;
-GLboolean __GLEW_NV_vertex_program4 = GL_FALSE;
-GLboolean __GLEW_NV_video_capture = GL_FALSE;
-GLboolean __GLEW_NV_viewport_array = GL_FALSE;
-GLboolean __GLEW_NV_viewport_array2 = GL_FALSE;
-GLboolean __GLEW_NV_viewport_swizzle = GL_FALSE;
-GLboolean __GLEW_OES_EGL_image = GL_FALSE;
-GLboolean __GLEW_OES_EGL_image_external = GL_FALSE;
-GLboolean __GLEW_OES_EGL_image_external_essl3 = GL_FALSE;
-GLboolean __GLEW_OES_blend_equation_separate = GL_FALSE;
-GLboolean __GLEW_OES_blend_func_separate = GL_FALSE;
-GLboolean __GLEW_OES_blend_subtract = GL_FALSE;
-GLboolean __GLEW_OES_byte_coordinates = GL_FALSE;
-GLboolean __GLEW_OES_compressed_ETC1_RGB8_texture = GL_FALSE;
-GLboolean __GLEW_OES_compressed_paletted_texture = GL_FALSE;
-GLboolean __GLEW_OES_copy_image = GL_FALSE;
-GLboolean __GLEW_OES_depth24 = GL_FALSE;
-GLboolean __GLEW_OES_depth32 = GL_FALSE;
-GLboolean __GLEW_OES_depth_texture = GL_FALSE;
-GLboolean __GLEW_OES_depth_texture_cube_map = GL_FALSE;
-GLboolean __GLEW_OES_draw_buffers_indexed = GL_FALSE;
-GLboolean __GLEW_OES_draw_texture = GL_FALSE;
-GLboolean __GLEW_OES_element_index_uint = GL_FALSE;
-GLboolean __GLEW_OES_extended_matrix_palette = GL_FALSE;
-GLboolean __GLEW_OES_fbo_render_mipmap = GL_FALSE;
-GLboolean __GLEW_OES_fragment_precision_high = GL_FALSE;
-GLboolean __GLEW_OES_framebuffer_object = GL_FALSE;
-GLboolean __GLEW_OES_geometry_point_size = GL_FALSE;
-GLboolean __GLEW_OES_geometry_shader = GL_FALSE;
-GLboolean __GLEW_OES_get_program_binary = GL_FALSE;
-GLboolean __GLEW_OES_gpu_shader5 = GL_FALSE;
-GLboolean __GLEW_OES_mapbuffer = GL_FALSE;
-GLboolean __GLEW_OES_matrix_get = GL_FALSE;
-GLboolean __GLEW_OES_matrix_palette = GL_FALSE;
-GLboolean __GLEW_OES_packed_depth_stencil = GL_FALSE;
-GLboolean __GLEW_OES_point_size_array = GL_FALSE;
-GLboolean __GLEW_OES_point_sprite = GL_FALSE;
-GLboolean __GLEW_OES_read_format = GL_FALSE;
-GLboolean __GLEW_OES_required_internalformat = GL_FALSE;
-GLboolean __GLEW_OES_rgb8_rgba8 = GL_FALSE;
-GLboolean __GLEW_OES_sample_shading = GL_FALSE;
-GLboolean __GLEW_OES_sample_variables = GL_FALSE;
-GLboolean __GLEW_OES_shader_image_atomic = GL_FALSE;
-GLboolean __GLEW_OES_shader_io_blocks = GL_FALSE;
-GLboolean __GLEW_OES_shader_multisample_interpolation = GL_FALSE;
-GLboolean __GLEW_OES_single_precision = GL_FALSE;
-GLboolean __GLEW_OES_standard_derivatives = GL_FALSE;
-GLboolean __GLEW_OES_stencil1 = GL_FALSE;
-GLboolean __GLEW_OES_stencil4 = GL_FALSE;
-GLboolean __GLEW_OES_stencil8 = GL_FALSE;
-GLboolean __GLEW_OES_surfaceless_context = GL_FALSE;
-GLboolean __GLEW_OES_tessellation_point_size = GL_FALSE;
-GLboolean __GLEW_OES_tessellation_shader = GL_FALSE;
-GLboolean __GLEW_OES_texture_3D = GL_FALSE;
-GLboolean __GLEW_OES_texture_border_clamp = GL_FALSE;
-GLboolean __GLEW_OES_texture_buffer = GL_FALSE;
-GLboolean __GLEW_OES_texture_compression_astc = GL_FALSE;
-GLboolean __GLEW_OES_texture_cube_map = GL_FALSE;
-GLboolean __GLEW_OES_texture_cube_map_array = GL_FALSE;
-GLboolean __GLEW_OES_texture_env_crossbar = GL_FALSE;
-GLboolean __GLEW_OES_texture_mirrored_repeat = GL_FALSE;
-GLboolean __GLEW_OES_texture_npot = GL_FALSE;
-GLboolean __GLEW_OES_texture_stencil8 = GL_FALSE;
-GLboolean __GLEW_OES_texture_storage_multisample_2d_array = GL_FALSE;
-GLboolean __GLEW_OES_texture_view = GL_FALSE;
-GLboolean __GLEW_OES_vertex_array_object = GL_FALSE;
-GLboolean __GLEW_OES_vertex_half_float = GL_FALSE;
-GLboolean __GLEW_OES_vertex_type_10_10_10_2 = GL_FALSE;
-GLboolean __GLEW_OML_interlace = GL_FALSE;
-GLboolean __GLEW_OML_resample = GL_FALSE;
-GLboolean __GLEW_OML_subsample = GL_FALSE;
-GLboolean __GLEW_OVR_multiview = GL_FALSE;
-GLboolean __GLEW_OVR_multiview2 = GL_FALSE;
-GLboolean __GLEW_OVR_multiview_multisampled_render_to_texture = GL_FALSE;
-GLboolean __GLEW_PGI_misc_hints = GL_FALSE;
-GLboolean __GLEW_PGI_vertex_hints = GL_FALSE;
-GLboolean __GLEW_QCOM_YUV_texture_gather = GL_FALSE;
-GLboolean __GLEW_QCOM_alpha_test = GL_FALSE;
-GLboolean __GLEW_QCOM_binning_control = GL_FALSE;
-GLboolean __GLEW_QCOM_driver_control = GL_FALSE;
-GLboolean __GLEW_QCOM_extended_get = GL_FALSE;
-GLboolean __GLEW_QCOM_extended_get2 = GL_FALSE;
-GLboolean __GLEW_QCOM_framebuffer_foveated = GL_FALSE;
-GLboolean __GLEW_QCOM_perfmon_global_mode = GL_FALSE;
-GLboolean __GLEW_QCOM_shader_framebuffer_fetch_noncoherent = GL_FALSE;
-GLboolean __GLEW_QCOM_shader_framebuffer_fetch_rate = GL_FALSE;
-GLboolean __GLEW_QCOM_texture_foveated = GL_FALSE;
-GLboolean __GLEW_QCOM_texture_foveated_subsampled_layout = GL_FALSE;
-GLboolean __GLEW_QCOM_tiled_rendering = GL_FALSE;
-GLboolean __GLEW_QCOM_writeonly_rendering = GL_FALSE;
-GLboolean __GLEW_REGAL_ES1_0_compatibility = GL_FALSE;
-GLboolean __GLEW_REGAL_ES1_1_compatibility = GL_FALSE;
-GLboolean __GLEW_REGAL_enable = GL_FALSE;
-GLboolean __GLEW_REGAL_error_string = GL_FALSE;
-GLboolean __GLEW_REGAL_extension_query = GL_FALSE;
-GLboolean __GLEW_REGAL_log = GL_FALSE;
-GLboolean __GLEW_REGAL_proc_address = GL_FALSE;
-GLboolean __GLEW_REND_screen_coordinates = GL_FALSE;
-GLboolean __GLEW_S3_s3tc = GL_FALSE;
-GLboolean __GLEW_SGIS_clip_band_hint = GL_FALSE;
-GLboolean __GLEW_SGIS_color_range = GL_FALSE;
-GLboolean __GLEW_SGIS_detail_texture = GL_FALSE;
-GLboolean __GLEW_SGIS_fog_function = GL_FALSE;
-GLboolean __GLEW_SGIS_generate_mipmap = GL_FALSE;
-GLboolean __GLEW_SGIS_line_texgen = GL_FALSE;
-GLboolean __GLEW_SGIS_multisample = GL_FALSE;
-GLboolean __GLEW_SGIS_multitexture = GL_FALSE;
-GLboolean __GLEW_SGIS_pixel_texture = GL_FALSE;
-GLboolean __GLEW_SGIS_point_line_texgen = GL_FALSE;
-GLboolean __GLEW_SGIS_shared_multisample = GL_FALSE;
-GLboolean __GLEW_SGIS_sharpen_texture = GL_FALSE;
-GLboolean __GLEW_SGIS_texture4D = GL_FALSE;
-GLboolean __GLEW_SGIS_texture_border_clamp = GL_FALSE;
-GLboolean __GLEW_SGIS_texture_edge_clamp = GL_FALSE;
-GLboolean __GLEW_SGIS_texture_filter4 = GL_FALSE;
-GLboolean __GLEW_SGIS_texture_lod = GL_FALSE;
-GLboolean __GLEW_SGIS_texture_select = GL_FALSE;
-GLboolean __GLEW_SGIX_async = GL_FALSE;
-GLboolean __GLEW_SGIX_async_histogram = GL_FALSE;
-GLboolean __GLEW_SGIX_async_pixel = GL_FALSE;
-GLboolean __GLEW_SGIX_bali_g_instruments = GL_FALSE;
-GLboolean __GLEW_SGIX_bali_r_instruments = GL_FALSE;
-GLboolean __GLEW_SGIX_bali_timer_instruments = GL_FALSE;
-GLboolean __GLEW_SGIX_blend_alpha_minmax = GL_FALSE;
-GLboolean __GLEW_SGIX_blend_cadd = GL_FALSE;
-GLboolean __GLEW_SGIX_blend_cmultiply = GL_FALSE;
-GLboolean __GLEW_SGIX_calligraphic_fragment = GL_FALSE;
-GLboolean __GLEW_SGIX_clipmap = GL_FALSE;
-GLboolean __GLEW_SGIX_color_matrix_accuracy = GL_FALSE;
-GLboolean __GLEW_SGIX_color_table_index_mode = GL_FALSE;
-GLboolean __GLEW_SGIX_complex_polar = GL_FALSE;
-GLboolean __GLEW_SGIX_convolution_accuracy = GL_FALSE;
-GLboolean __GLEW_SGIX_cube_map = GL_FALSE;
-GLboolean __GLEW_SGIX_cylinder_texgen = GL_FALSE;
-GLboolean __GLEW_SGIX_datapipe = GL_FALSE;
-GLboolean __GLEW_SGIX_decimation = GL_FALSE;
-GLboolean __GLEW_SGIX_depth_pass_instrument = GL_FALSE;
-GLboolean __GLEW_SGIX_depth_texture = GL_FALSE;
-GLboolean __GLEW_SGIX_dvc = GL_FALSE;
-GLboolean __GLEW_SGIX_flush_raster = GL_FALSE;
-GLboolean __GLEW_SGIX_fog_blend = GL_FALSE;
-GLboolean __GLEW_SGIX_fog_factor_to_alpha = GL_FALSE;
-GLboolean __GLEW_SGIX_fog_layers = GL_FALSE;
-GLboolean __GLEW_SGIX_fog_offset = GL_FALSE;
-GLboolean __GLEW_SGIX_fog_patchy = GL_FALSE;
-GLboolean __GLEW_SGIX_fog_scale = GL_FALSE;
-GLboolean __GLEW_SGIX_fog_texture = GL_FALSE;
-GLboolean __GLEW_SGIX_fragment_lighting_space = GL_FALSE;
-GLboolean __GLEW_SGIX_fragment_specular_lighting = GL_FALSE;
-GLboolean __GLEW_SGIX_fragments_instrument = GL_FALSE;
-GLboolean __GLEW_SGIX_framezoom = GL_FALSE;
-GLboolean __GLEW_SGIX_icc_texture = GL_FALSE;
-GLboolean __GLEW_SGIX_igloo_interface = GL_FALSE;
-GLboolean __GLEW_SGIX_image_compression = GL_FALSE;
-GLboolean __GLEW_SGIX_impact_pixel_texture = GL_FALSE;
-GLboolean __GLEW_SGIX_instrument_error = GL_FALSE;
-GLboolean __GLEW_SGIX_interlace = GL_FALSE;
-GLboolean __GLEW_SGIX_ir_instrument1 = GL_FALSE;
-GLboolean __GLEW_SGIX_line_quality_hint = GL_FALSE;
-GLboolean __GLEW_SGIX_list_priority = GL_FALSE;
-GLboolean __GLEW_SGIX_mpeg1 = GL_FALSE;
-GLboolean __GLEW_SGIX_mpeg2 = GL_FALSE;
-GLboolean __GLEW_SGIX_nonlinear_lighting_pervertex = GL_FALSE;
-GLboolean __GLEW_SGIX_nurbs_eval = GL_FALSE;
-GLboolean __GLEW_SGIX_occlusion_instrument = GL_FALSE;
-GLboolean __GLEW_SGIX_packed_6bytes = GL_FALSE;
-GLboolean __GLEW_SGIX_pixel_texture = GL_FALSE;
-GLboolean __GLEW_SGIX_pixel_texture_bits = GL_FALSE;
-GLboolean __GLEW_SGIX_pixel_texture_lod = GL_FALSE;
-GLboolean __GLEW_SGIX_pixel_tiles = GL_FALSE;
-GLboolean __GLEW_SGIX_polynomial_ffd = GL_FALSE;
-GLboolean __GLEW_SGIX_quad_mesh = GL_FALSE;
-GLboolean __GLEW_SGIX_reference_plane = GL_FALSE;
-GLboolean __GLEW_SGIX_resample = GL_FALSE;
-GLboolean __GLEW_SGIX_scalebias_hint = GL_FALSE;
-GLboolean __GLEW_SGIX_shadow = GL_FALSE;
-GLboolean __GLEW_SGIX_shadow_ambient = GL_FALSE;
-GLboolean __GLEW_SGIX_slim = GL_FALSE;
-GLboolean __GLEW_SGIX_spotlight_cutoff = GL_FALSE;
-GLboolean __GLEW_SGIX_sprite = GL_FALSE;
-GLboolean __GLEW_SGIX_subdiv_patch = GL_FALSE;
-GLboolean __GLEW_SGIX_subsample = GL_FALSE;
-GLboolean __GLEW_SGIX_tag_sample_buffer = GL_FALSE;
-GLboolean __GLEW_SGIX_texture_add_env = GL_FALSE;
-GLboolean __GLEW_SGIX_texture_coordinate_clamp = GL_FALSE;
-GLboolean __GLEW_SGIX_texture_lod_bias = GL_FALSE;
-GLboolean __GLEW_SGIX_texture_mipmap_anisotropic = GL_FALSE;
-GLboolean __GLEW_SGIX_texture_multi_buffer = GL_FALSE;
-GLboolean __GLEW_SGIX_texture_phase = GL_FALSE;
-GLboolean __GLEW_SGIX_texture_range = GL_FALSE;
-GLboolean __GLEW_SGIX_texture_scale_bias = GL_FALSE;
-GLboolean __GLEW_SGIX_texture_supersample = GL_FALSE;
-GLboolean __GLEW_SGIX_vector_ops = GL_FALSE;
-GLboolean __GLEW_SGIX_vertex_array_object = GL_FALSE;
-GLboolean __GLEW_SGIX_vertex_preclip = GL_FALSE;
-GLboolean __GLEW_SGIX_vertex_preclip_hint = GL_FALSE;
-GLboolean __GLEW_SGIX_ycrcb = GL_FALSE;
-GLboolean __GLEW_SGIX_ycrcb_subsample = GL_FALSE;
-GLboolean __GLEW_SGIX_ycrcba = GL_FALSE;
-GLboolean __GLEW_SGI_color_matrix = GL_FALSE;
-GLboolean __GLEW_SGI_color_table = GL_FALSE;
-GLboolean __GLEW_SGI_complex = GL_FALSE;
-GLboolean __GLEW_SGI_complex_type = GL_FALSE;
-GLboolean __GLEW_SGI_fft = GL_FALSE;
-GLboolean __GLEW_SGI_texture_color_table = GL_FALSE;
-GLboolean __GLEW_SUNX_constant_data = GL_FALSE;
-GLboolean __GLEW_SUN_convolution_border_modes = GL_FALSE;
-GLboolean __GLEW_SUN_global_alpha = GL_FALSE;
-GLboolean __GLEW_SUN_mesh_array = GL_FALSE;
-GLboolean __GLEW_SUN_read_video_pixels = GL_FALSE;
-GLboolean __GLEW_SUN_slice_accum = GL_FALSE;
-GLboolean __GLEW_SUN_triangle_list = GL_FALSE;
-GLboolean __GLEW_SUN_vertex = GL_FALSE;
-GLboolean __GLEW_VIV_shader_binary = GL_FALSE;
-GLboolean __GLEW_WIN_phong_shading = GL_FALSE;
-GLboolean __GLEW_WIN_scene_markerXXX = GL_FALSE;
-GLboolean __GLEW_WIN_specular_fog = GL_FALSE;
-GLboolean __GLEW_WIN_swap_hint = GL_FALSE;
-
-static const char * _glewExtensionLookup[] = {
-#ifdef GL_3DFX_multisample
- "GL_3DFX_multisample",
-#endif
-#ifdef GL_3DFX_tbuffer
- "GL_3DFX_tbuffer",
-#endif
-#ifdef GL_3DFX_texture_compression_FXT1
- "GL_3DFX_texture_compression_FXT1",
-#endif
-#ifdef GL_AMD_blend_minmax_factor
- "GL_AMD_blend_minmax_factor",
-#endif
-#ifdef GL_AMD_compressed_3DC_texture
- "GL_AMD_compressed_3DC_texture",
-#endif
-#ifdef GL_AMD_compressed_ATC_texture
- "GL_AMD_compressed_ATC_texture",
-#endif
-#ifdef GL_AMD_conservative_depth
- "GL_AMD_conservative_depth",
-#endif
-#ifdef GL_AMD_debug_output
- "GL_AMD_debug_output",
-#endif
-#ifdef GL_AMD_depth_clamp_separate
- "GL_AMD_depth_clamp_separate",
-#endif
-#ifdef GL_AMD_draw_buffers_blend
- "GL_AMD_draw_buffers_blend",
-#endif
-#ifdef GL_AMD_framebuffer_multisample_advanced
- "GL_AMD_framebuffer_multisample_advanced",
-#endif
-#ifdef GL_AMD_framebuffer_sample_positions
- "GL_AMD_framebuffer_sample_positions",
-#endif
-#ifdef GL_AMD_gcn_shader
- "GL_AMD_gcn_shader",
-#endif
-#ifdef GL_AMD_gpu_shader_half_float
- "GL_AMD_gpu_shader_half_float",
-#endif
-#ifdef GL_AMD_gpu_shader_half_float_fetch
- "GL_AMD_gpu_shader_half_float_fetch",
-#endif
-#ifdef GL_AMD_gpu_shader_int16
- "GL_AMD_gpu_shader_int16",
-#endif
-#ifdef GL_AMD_gpu_shader_int64
- "GL_AMD_gpu_shader_int64",
-#endif
-#ifdef GL_AMD_interleaved_elements
- "GL_AMD_interleaved_elements",
-#endif
-#ifdef GL_AMD_multi_draw_indirect
- "GL_AMD_multi_draw_indirect",
-#endif
-#ifdef GL_AMD_name_gen_delete
- "GL_AMD_name_gen_delete",
-#endif
-#ifdef GL_AMD_occlusion_query_event
- "GL_AMD_occlusion_query_event",
-#endif
-#ifdef GL_AMD_performance_monitor
- "GL_AMD_performance_monitor",
-#endif
-#ifdef GL_AMD_pinned_memory
- "GL_AMD_pinned_memory",
-#endif
-#ifdef GL_AMD_program_binary_Z400
- "GL_AMD_program_binary_Z400",
-#endif
-#ifdef GL_AMD_query_buffer_object
- "GL_AMD_query_buffer_object",
-#endif
-#ifdef GL_AMD_sample_positions
- "GL_AMD_sample_positions",
-#endif
-#ifdef GL_AMD_seamless_cubemap_per_texture
- "GL_AMD_seamless_cubemap_per_texture",
-#endif
-#ifdef GL_AMD_shader_atomic_counter_ops
- "GL_AMD_shader_atomic_counter_ops",
-#endif
-#ifdef GL_AMD_shader_ballot
- "GL_AMD_shader_ballot",
-#endif
-#ifdef GL_AMD_shader_explicit_vertex_parameter
- "GL_AMD_shader_explicit_vertex_parameter",
-#endif
-#ifdef GL_AMD_shader_image_load_store_lod
- "GL_AMD_shader_image_load_store_lod",
-#endif
-#ifdef GL_AMD_shader_stencil_export
- "GL_AMD_shader_stencil_export",
-#endif
-#ifdef GL_AMD_shader_stencil_value_export
- "GL_AMD_shader_stencil_value_export",
-#endif
-#ifdef GL_AMD_shader_trinary_minmax
- "GL_AMD_shader_trinary_minmax",
-#endif
-#ifdef GL_AMD_sparse_texture
- "GL_AMD_sparse_texture",
-#endif
-#ifdef GL_AMD_stencil_operation_extended
- "GL_AMD_stencil_operation_extended",
-#endif
-#ifdef GL_AMD_texture_gather_bias_lod
- "GL_AMD_texture_gather_bias_lod",
-#endif
-#ifdef GL_AMD_texture_texture4
- "GL_AMD_texture_texture4",
-#endif
-#ifdef GL_AMD_transform_feedback3_lines_triangles
- "GL_AMD_transform_feedback3_lines_triangles",
-#endif
-#ifdef GL_AMD_transform_feedback4
- "GL_AMD_transform_feedback4",
-#endif
-#ifdef GL_AMD_vertex_shader_layer
- "GL_AMD_vertex_shader_layer",
-#endif
-#ifdef GL_AMD_vertex_shader_tessellator
- "GL_AMD_vertex_shader_tessellator",
-#endif
-#ifdef GL_AMD_vertex_shader_viewport_index
- "GL_AMD_vertex_shader_viewport_index",
-#endif
-#ifdef GL_ANDROID_extension_pack_es31a
- "GL_ANDROID_extension_pack_es31a",
-#endif
-#ifdef GL_ANGLE_depth_texture
- "GL_ANGLE_depth_texture",
-#endif
-#ifdef GL_ANGLE_framebuffer_blit
- "GL_ANGLE_framebuffer_blit",
-#endif
-#ifdef GL_ANGLE_framebuffer_multisample
- "GL_ANGLE_framebuffer_multisample",
-#endif
-#ifdef GL_ANGLE_instanced_arrays
- "GL_ANGLE_instanced_arrays",
-#endif
-#ifdef GL_ANGLE_pack_reverse_row_order
- "GL_ANGLE_pack_reverse_row_order",
-#endif
-#ifdef GL_ANGLE_program_binary
- "GL_ANGLE_program_binary",
-#endif
-#ifdef GL_ANGLE_texture_compression_dxt1
- "GL_ANGLE_texture_compression_dxt1",
-#endif
-#ifdef GL_ANGLE_texture_compression_dxt3
- "GL_ANGLE_texture_compression_dxt3",
-#endif
-#ifdef GL_ANGLE_texture_compression_dxt5
- "GL_ANGLE_texture_compression_dxt5",
-#endif
-#ifdef GL_ANGLE_texture_usage
- "GL_ANGLE_texture_usage",
-#endif
-#ifdef GL_ANGLE_timer_query
- "GL_ANGLE_timer_query",
-#endif
-#ifdef GL_ANGLE_translated_shader_source
- "GL_ANGLE_translated_shader_source",
-#endif
-#ifdef GL_APPLE_aux_depth_stencil
- "GL_APPLE_aux_depth_stencil",
-#endif
-#ifdef GL_APPLE_client_storage
- "GL_APPLE_client_storage",
-#endif
-#ifdef GL_APPLE_clip_distance
- "GL_APPLE_clip_distance",
-#endif
-#ifdef GL_APPLE_color_buffer_packed_float
- "GL_APPLE_color_buffer_packed_float",
-#endif
-#ifdef GL_APPLE_copy_texture_levels
- "GL_APPLE_copy_texture_levels",
-#endif
-#ifdef GL_APPLE_element_array
- "GL_APPLE_element_array",
-#endif
-#ifdef GL_APPLE_fence
- "GL_APPLE_fence",
-#endif
-#ifdef GL_APPLE_float_pixels
- "GL_APPLE_float_pixels",
-#endif
-#ifdef GL_APPLE_flush_buffer_range
- "GL_APPLE_flush_buffer_range",
-#endif
-#ifdef GL_APPLE_framebuffer_multisample
- "GL_APPLE_framebuffer_multisample",
-#endif
-#ifdef GL_APPLE_object_purgeable
- "GL_APPLE_object_purgeable",
-#endif
-#ifdef GL_APPLE_pixel_buffer
- "GL_APPLE_pixel_buffer",
-#endif
-#ifdef GL_APPLE_rgb_422
- "GL_APPLE_rgb_422",
-#endif
-#ifdef GL_APPLE_row_bytes
- "GL_APPLE_row_bytes",
-#endif
-#ifdef GL_APPLE_specular_vector
- "GL_APPLE_specular_vector",
-#endif
-#ifdef GL_APPLE_sync
- "GL_APPLE_sync",
-#endif
-#ifdef GL_APPLE_texture_2D_limited_npot
- "GL_APPLE_texture_2D_limited_npot",
-#endif
-#ifdef GL_APPLE_texture_format_BGRA8888
- "GL_APPLE_texture_format_BGRA8888",
-#endif
-#ifdef GL_APPLE_texture_max_level
- "GL_APPLE_texture_max_level",
-#endif
-#ifdef GL_APPLE_texture_packed_float
- "GL_APPLE_texture_packed_float",
-#endif
-#ifdef GL_APPLE_texture_range
- "GL_APPLE_texture_range",
-#endif
-#ifdef GL_APPLE_transform_hint
- "GL_APPLE_transform_hint",
-#endif
-#ifdef GL_APPLE_vertex_array_object
- "GL_APPLE_vertex_array_object",
-#endif
-#ifdef GL_APPLE_vertex_array_range
- "GL_APPLE_vertex_array_range",
-#endif
-#ifdef GL_APPLE_vertex_program_evaluators
- "GL_APPLE_vertex_program_evaluators",
-#endif
-#ifdef GL_APPLE_ycbcr_422
- "GL_APPLE_ycbcr_422",
-#endif
-#ifdef GL_ARB_ES2_compatibility
- "GL_ARB_ES2_compatibility",
-#endif
-#ifdef GL_ARB_ES3_1_compatibility
- "GL_ARB_ES3_1_compatibility",
-#endif
-#ifdef GL_ARB_ES3_2_compatibility
- "GL_ARB_ES3_2_compatibility",
-#endif
-#ifdef GL_ARB_ES3_compatibility
- "GL_ARB_ES3_compatibility",
-#endif
-#ifdef GL_ARB_arrays_of_arrays
- "GL_ARB_arrays_of_arrays",
-#endif
-#ifdef GL_ARB_base_instance
- "GL_ARB_base_instance",
-#endif
-#ifdef GL_ARB_bindless_texture
- "GL_ARB_bindless_texture",
-#endif
-#ifdef GL_ARB_blend_func_extended
- "GL_ARB_blend_func_extended",
-#endif
-#ifdef GL_ARB_buffer_storage
- "GL_ARB_buffer_storage",
-#endif
-#ifdef GL_ARB_cl_event
- "GL_ARB_cl_event",
-#endif
-#ifdef GL_ARB_clear_buffer_object
- "GL_ARB_clear_buffer_object",
-#endif
-#ifdef GL_ARB_clear_texture
- "GL_ARB_clear_texture",
-#endif
-#ifdef GL_ARB_clip_control
- "GL_ARB_clip_control",
-#endif
-#ifdef GL_ARB_color_buffer_float
- "GL_ARB_color_buffer_float",
-#endif
-#ifdef GL_ARB_compatibility
- "GL_ARB_compatibility",
-#endif
-#ifdef GL_ARB_compressed_texture_pixel_storage
- "GL_ARB_compressed_texture_pixel_storage",
-#endif
-#ifdef GL_ARB_compute_shader
- "GL_ARB_compute_shader",
-#endif
-#ifdef GL_ARB_compute_variable_group_size
- "GL_ARB_compute_variable_group_size",
-#endif
-#ifdef GL_ARB_conditional_render_inverted
- "GL_ARB_conditional_render_inverted",
-#endif
-#ifdef GL_ARB_conservative_depth
- "GL_ARB_conservative_depth",
-#endif
-#ifdef GL_ARB_copy_buffer
- "GL_ARB_copy_buffer",
-#endif
-#ifdef GL_ARB_copy_image
- "GL_ARB_copy_image",
-#endif
-#ifdef GL_ARB_cull_distance
- "GL_ARB_cull_distance",
-#endif
-#ifdef GL_ARB_debug_output
- "GL_ARB_debug_output",
-#endif
-#ifdef GL_ARB_depth_buffer_float
- "GL_ARB_depth_buffer_float",
-#endif
-#ifdef GL_ARB_depth_clamp
- "GL_ARB_depth_clamp",
-#endif
-#ifdef GL_ARB_depth_texture
- "GL_ARB_depth_texture",
-#endif
-#ifdef GL_ARB_derivative_control
- "GL_ARB_derivative_control",
-#endif
-#ifdef GL_ARB_direct_state_access
- "GL_ARB_direct_state_access",
-#endif
-#ifdef GL_ARB_draw_buffers
- "GL_ARB_draw_buffers",
-#endif
-#ifdef GL_ARB_draw_buffers_blend
- "GL_ARB_draw_buffers_blend",
-#endif
-#ifdef GL_ARB_draw_elements_base_vertex
- "GL_ARB_draw_elements_base_vertex",
-#endif
-#ifdef GL_ARB_draw_indirect
- "GL_ARB_draw_indirect",
-#endif
-#ifdef GL_ARB_draw_instanced
- "GL_ARB_draw_instanced",
-#endif
-#ifdef GL_ARB_enhanced_layouts
- "GL_ARB_enhanced_layouts",
-#endif
-#ifdef GL_ARB_explicit_attrib_location
- "GL_ARB_explicit_attrib_location",
-#endif
-#ifdef GL_ARB_explicit_uniform_location
- "GL_ARB_explicit_uniform_location",
-#endif
-#ifdef GL_ARB_fragment_coord_conventions
- "GL_ARB_fragment_coord_conventions",
-#endif
-#ifdef GL_ARB_fragment_layer_viewport
- "GL_ARB_fragment_layer_viewport",
-#endif
-#ifdef GL_ARB_fragment_program
- "GL_ARB_fragment_program",
-#endif
-#ifdef GL_ARB_fragment_program_shadow
- "GL_ARB_fragment_program_shadow",
-#endif
-#ifdef GL_ARB_fragment_shader
- "GL_ARB_fragment_shader",
-#endif
-#ifdef GL_ARB_fragment_shader_interlock
- "GL_ARB_fragment_shader_interlock",
-#endif
-#ifdef GL_ARB_framebuffer_no_attachments
- "GL_ARB_framebuffer_no_attachments",
-#endif
-#ifdef GL_ARB_framebuffer_object
- "GL_ARB_framebuffer_object",
-#endif
-#ifdef GL_ARB_framebuffer_sRGB
- "GL_ARB_framebuffer_sRGB",
-#endif
-#ifdef GL_ARB_geometry_shader4
- "GL_ARB_geometry_shader4",
-#endif
-#ifdef GL_ARB_get_program_binary
- "GL_ARB_get_program_binary",
-#endif
-#ifdef GL_ARB_get_texture_sub_image
- "GL_ARB_get_texture_sub_image",
-#endif
-#ifdef GL_ARB_gl_spirv
- "GL_ARB_gl_spirv",
-#endif
-#ifdef GL_ARB_gpu_shader5
- "GL_ARB_gpu_shader5",
-#endif
-#ifdef GL_ARB_gpu_shader_fp64
- "GL_ARB_gpu_shader_fp64",
-#endif
-#ifdef GL_ARB_gpu_shader_int64
- "GL_ARB_gpu_shader_int64",
-#endif
-#ifdef GL_ARB_half_float_pixel
- "GL_ARB_half_float_pixel",
-#endif
-#ifdef GL_ARB_half_float_vertex
- "GL_ARB_half_float_vertex",
-#endif
-#ifdef GL_ARB_imaging
- "GL_ARB_imaging",
-#endif
-#ifdef GL_ARB_indirect_parameters
- "GL_ARB_indirect_parameters",
-#endif
-#ifdef GL_ARB_instanced_arrays
- "GL_ARB_instanced_arrays",
-#endif
-#ifdef GL_ARB_internalformat_query
- "GL_ARB_internalformat_query",
-#endif
-#ifdef GL_ARB_internalformat_query2
- "GL_ARB_internalformat_query2",
-#endif
-#ifdef GL_ARB_invalidate_subdata
- "GL_ARB_invalidate_subdata",
-#endif
-#ifdef GL_ARB_map_buffer_alignment
- "GL_ARB_map_buffer_alignment",
-#endif
-#ifdef GL_ARB_map_buffer_range
- "GL_ARB_map_buffer_range",
-#endif
-#ifdef GL_ARB_matrix_palette
- "GL_ARB_matrix_palette",
-#endif
-#ifdef GL_ARB_multi_bind
- "GL_ARB_multi_bind",
-#endif
-#ifdef GL_ARB_multi_draw_indirect
- "GL_ARB_multi_draw_indirect",
-#endif
-#ifdef GL_ARB_multisample
- "GL_ARB_multisample",
-#endif
-#ifdef GL_ARB_multitexture
- "GL_ARB_multitexture",
-#endif
-#ifdef GL_ARB_occlusion_query
- "GL_ARB_occlusion_query",
-#endif
-#ifdef GL_ARB_occlusion_query2
- "GL_ARB_occlusion_query2",
-#endif
-#ifdef GL_ARB_parallel_shader_compile
- "GL_ARB_parallel_shader_compile",
-#endif
-#ifdef GL_ARB_pipeline_statistics_query
- "GL_ARB_pipeline_statistics_query",
-#endif
-#ifdef GL_ARB_pixel_buffer_object
- "GL_ARB_pixel_buffer_object",
-#endif
-#ifdef GL_ARB_point_parameters
- "GL_ARB_point_parameters",
-#endif
-#ifdef GL_ARB_point_sprite
- "GL_ARB_point_sprite",
-#endif
-#ifdef GL_ARB_polygon_offset_clamp
- "GL_ARB_polygon_offset_clamp",
-#endif
-#ifdef GL_ARB_post_depth_coverage
- "GL_ARB_post_depth_coverage",
-#endif
-#ifdef GL_ARB_program_interface_query
- "GL_ARB_program_interface_query",
-#endif
-#ifdef GL_ARB_provoking_vertex
- "GL_ARB_provoking_vertex",
-#endif
-#ifdef GL_ARB_query_buffer_object
- "GL_ARB_query_buffer_object",
-#endif
-#ifdef GL_ARB_robust_buffer_access_behavior
- "GL_ARB_robust_buffer_access_behavior",
-#endif
-#ifdef GL_ARB_robustness
- "GL_ARB_robustness",
-#endif
-#ifdef GL_ARB_robustness_application_isolation
- "GL_ARB_robustness_application_isolation",
-#endif
-#ifdef GL_ARB_robustness_share_group_isolation
- "GL_ARB_robustness_share_group_isolation",
-#endif
-#ifdef GL_ARB_sample_locations
- "GL_ARB_sample_locations",
-#endif
-#ifdef GL_ARB_sample_shading
- "GL_ARB_sample_shading",
-#endif
-#ifdef GL_ARB_sampler_objects
- "GL_ARB_sampler_objects",
-#endif
-#ifdef GL_ARB_seamless_cube_map
- "GL_ARB_seamless_cube_map",
-#endif
-#ifdef GL_ARB_seamless_cubemap_per_texture
- "GL_ARB_seamless_cubemap_per_texture",
-#endif
-#ifdef GL_ARB_separate_shader_objects
- "GL_ARB_separate_shader_objects",
-#endif
-#ifdef GL_ARB_shader_atomic_counter_ops
- "GL_ARB_shader_atomic_counter_ops",
-#endif
-#ifdef GL_ARB_shader_atomic_counters
- "GL_ARB_shader_atomic_counters",
-#endif
-#ifdef GL_ARB_shader_ballot
- "GL_ARB_shader_ballot",
-#endif
-#ifdef GL_ARB_shader_bit_encoding
- "GL_ARB_shader_bit_encoding",
-#endif
-#ifdef GL_ARB_shader_clock
- "GL_ARB_shader_clock",
-#endif
-#ifdef GL_ARB_shader_draw_parameters
- "GL_ARB_shader_draw_parameters",
-#endif
-#ifdef GL_ARB_shader_group_vote
- "GL_ARB_shader_group_vote",
-#endif
-#ifdef GL_ARB_shader_image_load_store
- "GL_ARB_shader_image_load_store",
-#endif
-#ifdef GL_ARB_shader_image_size
- "GL_ARB_shader_image_size",
-#endif
-#ifdef GL_ARB_shader_objects
- "GL_ARB_shader_objects",
-#endif
-#ifdef GL_ARB_shader_precision
- "GL_ARB_shader_precision",
-#endif
-#ifdef GL_ARB_shader_stencil_export
- "GL_ARB_shader_stencil_export",
-#endif
-#ifdef GL_ARB_shader_storage_buffer_object
- "GL_ARB_shader_storage_buffer_object",
-#endif
-#ifdef GL_ARB_shader_subroutine
- "GL_ARB_shader_subroutine",
-#endif
-#ifdef GL_ARB_shader_texture_image_samples
- "GL_ARB_shader_texture_image_samples",
-#endif
-#ifdef GL_ARB_shader_texture_lod
- "GL_ARB_shader_texture_lod",
-#endif
-#ifdef GL_ARB_shader_viewport_layer_array
- "GL_ARB_shader_viewport_layer_array",
-#endif
-#ifdef GL_ARB_shading_language_100
- "GL_ARB_shading_language_100",
-#endif
-#ifdef GL_ARB_shading_language_420pack
- "GL_ARB_shading_language_420pack",
-#endif
-#ifdef GL_ARB_shading_language_include
- "GL_ARB_shading_language_include",
-#endif
-#ifdef GL_ARB_shading_language_packing
- "GL_ARB_shading_language_packing",
-#endif
-#ifdef GL_ARB_shadow
- "GL_ARB_shadow",
-#endif
-#ifdef GL_ARB_shadow_ambient
- "GL_ARB_shadow_ambient",
-#endif
-#ifdef GL_ARB_sparse_buffer
- "GL_ARB_sparse_buffer",
-#endif
-#ifdef GL_ARB_sparse_texture
- "GL_ARB_sparse_texture",
-#endif
-#ifdef GL_ARB_sparse_texture2
- "GL_ARB_sparse_texture2",
-#endif
-#ifdef GL_ARB_sparse_texture_clamp
- "GL_ARB_sparse_texture_clamp",
-#endif
-#ifdef GL_ARB_spirv_extensions
- "GL_ARB_spirv_extensions",
-#endif
-#ifdef GL_ARB_stencil_texturing
- "GL_ARB_stencil_texturing",
-#endif
-#ifdef GL_ARB_sync
- "GL_ARB_sync",
-#endif
-#ifdef GL_ARB_tessellation_shader
- "GL_ARB_tessellation_shader",
-#endif
-#ifdef GL_ARB_texture_barrier
- "GL_ARB_texture_barrier",
-#endif
-#ifdef GL_ARB_texture_border_clamp
- "GL_ARB_texture_border_clamp",
-#endif
-#ifdef GL_ARB_texture_buffer_object
- "GL_ARB_texture_buffer_object",
-#endif
-#ifdef GL_ARB_texture_buffer_object_rgb32
- "GL_ARB_texture_buffer_object_rgb32",
-#endif
-#ifdef GL_ARB_texture_buffer_range
- "GL_ARB_texture_buffer_range",
-#endif
-#ifdef GL_ARB_texture_compression
- "GL_ARB_texture_compression",
-#endif
-#ifdef GL_ARB_texture_compression_bptc
- "GL_ARB_texture_compression_bptc",
-#endif
-#ifdef GL_ARB_texture_compression_rgtc
- "GL_ARB_texture_compression_rgtc",
-#endif
-#ifdef GL_ARB_texture_cube_map
- "GL_ARB_texture_cube_map",
-#endif
-#ifdef GL_ARB_texture_cube_map_array
- "GL_ARB_texture_cube_map_array",
-#endif
-#ifdef GL_ARB_texture_env_add
- "GL_ARB_texture_env_add",
-#endif
-#ifdef GL_ARB_texture_env_combine
- "GL_ARB_texture_env_combine",
-#endif
-#ifdef GL_ARB_texture_env_crossbar
- "GL_ARB_texture_env_crossbar",
-#endif
-#ifdef GL_ARB_texture_env_dot3
- "GL_ARB_texture_env_dot3",
-#endif
-#ifdef GL_ARB_texture_filter_anisotropic
- "GL_ARB_texture_filter_anisotropic",
-#endif
-#ifdef GL_ARB_texture_filter_minmax
- "GL_ARB_texture_filter_minmax",
-#endif
-#ifdef GL_ARB_texture_float
- "GL_ARB_texture_float",
-#endif
-#ifdef GL_ARB_texture_gather
- "GL_ARB_texture_gather",
-#endif
-#ifdef GL_ARB_texture_mirror_clamp_to_edge
- "GL_ARB_texture_mirror_clamp_to_edge",
-#endif
-#ifdef GL_ARB_texture_mirrored_repeat
- "GL_ARB_texture_mirrored_repeat",
-#endif
-#ifdef GL_ARB_texture_multisample
- "GL_ARB_texture_multisample",
-#endif
-#ifdef GL_ARB_texture_non_power_of_two
- "GL_ARB_texture_non_power_of_two",
-#endif
-#ifdef GL_ARB_texture_query_levels
- "GL_ARB_texture_query_levels",
-#endif
-#ifdef GL_ARB_texture_query_lod
- "GL_ARB_texture_query_lod",
-#endif
-#ifdef GL_ARB_texture_rectangle
- "GL_ARB_texture_rectangle",
-#endif
-#ifdef GL_ARB_texture_rg
- "GL_ARB_texture_rg",
-#endif
-#ifdef GL_ARB_texture_rgb10_a2ui
- "GL_ARB_texture_rgb10_a2ui",
-#endif
-#ifdef GL_ARB_texture_stencil8
- "GL_ARB_texture_stencil8",
-#endif
-#ifdef GL_ARB_texture_storage
- "GL_ARB_texture_storage",
-#endif
-#ifdef GL_ARB_texture_storage_multisample
- "GL_ARB_texture_storage_multisample",
-#endif
-#ifdef GL_ARB_texture_swizzle
- "GL_ARB_texture_swizzle",
-#endif
-#ifdef GL_ARB_texture_view
- "GL_ARB_texture_view",
-#endif
-#ifdef GL_ARB_timer_query
- "GL_ARB_timer_query",
-#endif
-#ifdef GL_ARB_transform_feedback2
- "GL_ARB_transform_feedback2",
-#endif
-#ifdef GL_ARB_transform_feedback3
- "GL_ARB_transform_feedback3",
-#endif
-#ifdef GL_ARB_transform_feedback_instanced
- "GL_ARB_transform_feedback_instanced",
-#endif
-#ifdef GL_ARB_transform_feedback_overflow_query
- "GL_ARB_transform_feedback_overflow_query",
-#endif
-#ifdef GL_ARB_transpose_matrix
- "GL_ARB_transpose_matrix",
-#endif
-#ifdef GL_ARB_uniform_buffer_object
- "GL_ARB_uniform_buffer_object",
-#endif
-#ifdef GL_ARB_vertex_array_bgra
- "GL_ARB_vertex_array_bgra",
-#endif
-#ifdef GL_ARB_vertex_array_object
- "GL_ARB_vertex_array_object",
-#endif
-#ifdef GL_ARB_vertex_attrib_64bit
- "GL_ARB_vertex_attrib_64bit",
-#endif
-#ifdef GL_ARB_vertex_attrib_binding
- "GL_ARB_vertex_attrib_binding",
-#endif
-#ifdef GL_ARB_vertex_blend
- "GL_ARB_vertex_blend",
-#endif
-#ifdef GL_ARB_vertex_buffer_object
- "GL_ARB_vertex_buffer_object",
-#endif
-#ifdef GL_ARB_vertex_program
- "GL_ARB_vertex_program",
-#endif
-#ifdef GL_ARB_vertex_shader
- "GL_ARB_vertex_shader",
-#endif
-#ifdef GL_ARB_vertex_type_10f_11f_11f_rev
- "GL_ARB_vertex_type_10f_11f_11f_rev",
-#endif
-#ifdef GL_ARB_vertex_type_2_10_10_10_rev
- "GL_ARB_vertex_type_2_10_10_10_rev",
-#endif
-#ifdef GL_ARB_viewport_array
- "GL_ARB_viewport_array",
-#endif
-#ifdef GL_ARB_window_pos
- "GL_ARB_window_pos",
-#endif
-#ifdef GL_ARM_mali_program_binary
- "GL_ARM_mali_program_binary",
-#endif
-#ifdef GL_ARM_mali_shader_binary
- "GL_ARM_mali_shader_binary",
-#endif
-#ifdef GL_ARM_rgba8
- "GL_ARM_rgba8",
-#endif
-#ifdef GL_ARM_shader_framebuffer_fetch
- "GL_ARM_shader_framebuffer_fetch",
-#endif
-#ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil
- "GL_ARM_shader_framebuffer_fetch_depth_stencil",
-#endif
-#ifdef GL_ARM_texture_unnormalized_coordinates
- "GL_ARM_texture_unnormalized_coordinates",
-#endif
-#ifdef GL_ATIX_point_sprites
- "GL_ATIX_point_sprites",
-#endif
-#ifdef GL_ATIX_texture_env_combine3
- "GL_ATIX_texture_env_combine3",
-#endif
-#ifdef GL_ATIX_texture_env_route
- "GL_ATIX_texture_env_route",
-#endif
-#ifdef GL_ATIX_vertex_shader_output_point_size
- "GL_ATIX_vertex_shader_output_point_size",
-#endif
-#ifdef GL_ATI_draw_buffers
- "GL_ATI_draw_buffers",
-#endif
-#ifdef GL_ATI_element_array
- "GL_ATI_element_array",
-#endif
-#ifdef GL_ATI_envmap_bumpmap
- "GL_ATI_envmap_bumpmap",
-#endif
-#ifdef GL_ATI_fragment_shader
- "GL_ATI_fragment_shader",
-#endif
-#ifdef GL_ATI_map_object_buffer
- "GL_ATI_map_object_buffer",
-#endif
-#ifdef GL_ATI_meminfo
- "GL_ATI_meminfo",
-#endif
-#ifdef GL_ATI_pn_triangles
- "GL_ATI_pn_triangles",
-#endif
-#ifdef GL_ATI_separate_stencil
- "GL_ATI_separate_stencil",
-#endif
-#ifdef GL_ATI_shader_texture_lod
- "GL_ATI_shader_texture_lod",
-#endif
-#ifdef GL_ATI_text_fragment_shader
- "GL_ATI_text_fragment_shader",
-#endif
-#ifdef GL_ATI_texture_compression_3dc
- "GL_ATI_texture_compression_3dc",
-#endif
-#ifdef GL_ATI_texture_env_combine3
- "GL_ATI_texture_env_combine3",
-#endif
-#ifdef GL_ATI_texture_float
- "GL_ATI_texture_float",
-#endif
-#ifdef GL_ATI_texture_mirror_once
- "GL_ATI_texture_mirror_once",
-#endif
-#ifdef GL_ATI_vertex_array_object
- "GL_ATI_vertex_array_object",
-#endif
-#ifdef GL_ATI_vertex_attrib_array_object
- "GL_ATI_vertex_attrib_array_object",
-#endif
-#ifdef GL_ATI_vertex_streams
- "GL_ATI_vertex_streams",
-#endif
-#ifdef GL_DMP_program_binary
- "GL_DMP_program_binary",
-#endif
-#ifdef GL_DMP_shader_binary
- "GL_DMP_shader_binary",
-#endif
-#ifdef GL_EXT_422_pixels
- "GL_EXT_422_pixels",
-#endif
-#ifdef GL_EXT_Cg_shader
- "GL_EXT_Cg_shader",
-#endif
-#ifdef GL_EXT_EGL_image_array
- "GL_EXT_EGL_image_array",
-#endif
-#ifdef GL_EXT_EGL_image_external_wrap_modes
- "GL_EXT_EGL_image_external_wrap_modes",
-#endif
-#ifdef GL_EXT_EGL_image_storage
- "GL_EXT_EGL_image_storage",
-#endif
-#ifdef GL_EXT_EGL_sync
- "GL_EXT_EGL_sync",
-#endif
-#ifdef GL_EXT_YUV_target
- "GL_EXT_YUV_target",
-#endif
-#ifdef GL_EXT_abgr
- "GL_EXT_abgr",
-#endif
-#ifdef GL_EXT_base_instance
- "GL_EXT_base_instance",
-#endif
-#ifdef GL_EXT_bgra
- "GL_EXT_bgra",
-#endif
-#ifdef GL_EXT_bindable_uniform
- "GL_EXT_bindable_uniform",
-#endif
-#ifdef GL_EXT_blend_color
- "GL_EXT_blend_color",
-#endif
-#ifdef GL_EXT_blend_equation_separate
- "GL_EXT_blend_equation_separate",
-#endif
-#ifdef GL_EXT_blend_func_extended
- "GL_EXT_blend_func_extended",
-#endif
-#ifdef GL_EXT_blend_func_separate
- "GL_EXT_blend_func_separate",
-#endif
-#ifdef GL_EXT_blend_logic_op
- "GL_EXT_blend_logic_op",
-#endif
-#ifdef GL_EXT_blend_minmax
- "GL_EXT_blend_minmax",
-#endif
-#ifdef GL_EXT_blend_subtract
- "GL_EXT_blend_subtract",
-#endif
-#ifdef GL_EXT_buffer_storage
- "GL_EXT_buffer_storage",
-#endif
-#ifdef GL_EXT_clear_texture
- "GL_EXT_clear_texture",
-#endif
-#ifdef GL_EXT_clip_control
- "GL_EXT_clip_control",
-#endif
-#ifdef GL_EXT_clip_cull_distance
- "GL_EXT_clip_cull_distance",
-#endif
-#ifdef GL_EXT_clip_volume_hint
- "GL_EXT_clip_volume_hint",
-#endif
-#ifdef GL_EXT_cmyka
- "GL_EXT_cmyka",
-#endif
-#ifdef GL_EXT_color_buffer_float
- "GL_EXT_color_buffer_float",
-#endif
-#ifdef GL_EXT_color_buffer_half_float
- "GL_EXT_color_buffer_half_float",
-#endif
-#ifdef GL_EXT_color_subtable
- "GL_EXT_color_subtable",
-#endif
-#ifdef GL_EXT_compiled_vertex_array
- "GL_EXT_compiled_vertex_array",
-#endif
-#ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture
- "GL_EXT_compressed_ETC1_RGB8_sub_texture",
-#endif
-#ifdef GL_EXT_conservative_depth
- "GL_EXT_conservative_depth",
-#endif
-#ifdef GL_EXT_convolution
- "GL_EXT_convolution",
-#endif
-#ifdef GL_EXT_coordinate_frame
- "GL_EXT_coordinate_frame",
-#endif
-#ifdef GL_EXT_copy_image
- "GL_EXT_copy_image",
-#endif
-#ifdef GL_EXT_copy_texture
- "GL_EXT_copy_texture",
-#endif
-#ifdef GL_EXT_cull_vertex
- "GL_EXT_cull_vertex",
-#endif
-#ifdef GL_EXT_debug_label
- "GL_EXT_debug_label",
-#endif
-#ifdef GL_EXT_debug_marker
- "GL_EXT_debug_marker",
-#endif
-#ifdef GL_EXT_depth_bounds_test
- "GL_EXT_depth_bounds_test",
-#endif
-#ifdef GL_EXT_depth_clamp
- "GL_EXT_depth_clamp",
-#endif
-#ifdef GL_EXT_direct_state_access
- "GL_EXT_direct_state_access",
-#endif
-#ifdef GL_EXT_discard_framebuffer
- "GL_EXT_discard_framebuffer",
-#endif
-#ifdef GL_EXT_disjoint_timer_query
- "GL_EXT_disjoint_timer_query",
-#endif
-#ifdef GL_EXT_draw_buffers
- "GL_EXT_draw_buffers",
-#endif
-#ifdef GL_EXT_draw_buffers2
- "GL_EXT_draw_buffers2",
-#endif
-#ifdef GL_EXT_draw_buffers_indexed
- "GL_EXT_draw_buffers_indexed",
-#endif
-#ifdef GL_EXT_draw_elements_base_vertex
- "GL_EXT_draw_elements_base_vertex",
-#endif
-#ifdef GL_EXT_draw_instanced
- "GL_EXT_draw_instanced",
-#endif
-#ifdef GL_EXT_draw_range_elements
- "GL_EXT_draw_range_elements",
-#endif
-#ifdef GL_EXT_draw_transform_feedback
- "GL_EXT_draw_transform_feedback",
-#endif
-#ifdef GL_EXT_external_buffer
- "GL_EXT_external_buffer",
-#endif
-#ifdef GL_EXT_float_blend
- "GL_EXT_float_blend",
-#endif
-#ifdef GL_EXT_fog_coord
- "GL_EXT_fog_coord",
-#endif
-#ifdef GL_EXT_frag_depth
- "GL_EXT_frag_depth",
-#endif
-#ifdef GL_EXT_fragment_lighting
- "GL_EXT_fragment_lighting",
-#endif
-#ifdef GL_EXT_framebuffer_blit
- "GL_EXT_framebuffer_blit",
-#endif
-#ifdef GL_EXT_framebuffer_multisample
- "GL_EXT_framebuffer_multisample",
-#endif
-#ifdef GL_EXT_framebuffer_multisample_blit_scaled
- "GL_EXT_framebuffer_multisample_blit_scaled",
-#endif
-#ifdef GL_EXT_framebuffer_object
- "GL_EXT_framebuffer_object",
-#endif
-#ifdef GL_EXT_framebuffer_sRGB
- "GL_EXT_framebuffer_sRGB",
-#endif
-#ifdef GL_EXT_geometry_point_size
- "GL_EXT_geometry_point_size",
-#endif
-#ifdef GL_EXT_geometry_shader
- "GL_EXT_geometry_shader",
-#endif
-#ifdef GL_EXT_geometry_shader4
- "GL_EXT_geometry_shader4",
-#endif
-#ifdef GL_EXT_gpu_program_parameters
- "GL_EXT_gpu_program_parameters",
-#endif
-#ifdef GL_EXT_gpu_shader4
- "GL_EXT_gpu_shader4",
-#endif
-#ifdef GL_EXT_gpu_shader5
- "GL_EXT_gpu_shader5",
-#endif
-#ifdef GL_EXT_histogram
- "GL_EXT_histogram",
-#endif
-#ifdef GL_EXT_index_array_formats
- "GL_EXT_index_array_formats",
-#endif
-#ifdef GL_EXT_index_func
- "GL_EXT_index_func",
-#endif
-#ifdef GL_EXT_index_material
- "GL_EXT_index_material",
-#endif
-#ifdef GL_EXT_index_texture
- "GL_EXT_index_texture",
-#endif
-#ifdef GL_EXT_instanced_arrays
- "GL_EXT_instanced_arrays",
-#endif
-#ifdef GL_EXT_light_texture
- "GL_EXT_light_texture",
-#endif
-#ifdef GL_EXT_map_buffer_range
- "GL_EXT_map_buffer_range",
-#endif
-#ifdef GL_EXT_memory_object
- "GL_EXT_memory_object",
-#endif
-#ifdef GL_EXT_memory_object_fd
- "GL_EXT_memory_object_fd",
-#endif
-#ifdef GL_EXT_memory_object_win32
- "GL_EXT_memory_object_win32",
-#endif
-#ifdef GL_EXT_misc_attribute
- "GL_EXT_misc_attribute",
-#endif
-#ifdef GL_EXT_multi_draw_arrays
- "GL_EXT_multi_draw_arrays",
-#endif
-#ifdef GL_EXT_multi_draw_indirect
- "GL_EXT_multi_draw_indirect",
-#endif
-#ifdef GL_EXT_multiple_textures
- "GL_EXT_multiple_textures",
-#endif
-#ifdef GL_EXT_multisample
- "GL_EXT_multisample",
-#endif
-#ifdef GL_EXT_multisample_compatibility
- "GL_EXT_multisample_compatibility",
-#endif
-#ifdef GL_EXT_multisampled_render_to_texture
- "GL_EXT_multisampled_render_to_texture",
-#endif
-#ifdef GL_EXT_multisampled_render_to_texture2
- "GL_EXT_multisampled_render_to_texture2",
-#endif
-#ifdef GL_EXT_multiview_draw_buffers
- "GL_EXT_multiview_draw_buffers",
-#endif
-#ifdef GL_EXT_multiview_tessellation_geometry_shader
- "GL_EXT_multiview_tessellation_geometry_shader",
-#endif
-#ifdef GL_EXT_multiview_texture_multisample
- "GL_EXT_multiview_texture_multisample",
-#endif
-#ifdef GL_EXT_multiview_timer_query
- "GL_EXT_multiview_timer_query",
-#endif
-#ifdef GL_EXT_occlusion_query_boolean
- "GL_EXT_occlusion_query_boolean",
-#endif
-#ifdef GL_EXT_packed_depth_stencil
- "GL_EXT_packed_depth_stencil",
-#endif
-#ifdef GL_EXT_packed_float
- "GL_EXT_packed_float",
-#endif
-#ifdef GL_EXT_packed_pixels
- "GL_EXT_packed_pixels",
-#endif
-#ifdef GL_EXT_paletted_texture
- "GL_EXT_paletted_texture",
-#endif
-#ifdef GL_EXT_pixel_buffer_object
- "GL_EXT_pixel_buffer_object",
-#endif
-#ifdef GL_EXT_pixel_transform
- "GL_EXT_pixel_transform",
-#endif
-#ifdef GL_EXT_pixel_transform_color_table
- "GL_EXT_pixel_transform_color_table",
-#endif
-#ifdef GL_EXT_point_parameters
- "GL_EXT_point_parameters",
-#endif
-#ifdef GL_EXT_polygon_offset
- "GL_EXT_polygon_offset",
-#endif
-#ifdef GL_EXT_polygon_offset_clamp
- "GL_EXT_polygon_offset_clamp",
-#endif
-#ifdef GL_EXT_post_depth_coverage
- "GL_EXT_post_depth_coverage",
-#endif
-#ifdef GL_EXT_primitive_bounding_box
- "GL_EXT_primitive_bounding_box",
-#endif
-#ifdef GL_EXT_protected_textures
- "GL_EXT_protected_textures",
-#endif
-#ifdef GL_EXT_provoking_vertex
- "GL_EXT_provoking_vertex",
-#endif
-#ifdef GL_EXT_pvrtc_sRGB
- "GL_EXT_pvrtc_sRGB",
-#endif
-#ifdef GL_EXT_raster_multisample
- "GL_EXT_raster_multisample",
-#endif
-#ifdef GL_EXT_read_format_bgra
- "GL_EXT_read_format_bgra",
-#endif
-#ifdef GL_EXT_render_snorm
- "GL_EXT_render_snorm",
-#endif
-#ifdef GL_EXT_rescale_normal
- "GL_EXT_rescale_normal",
-#endif
-#ifdef GL_EXT_robustness
- "GL_EXT_robustness",
-#endif
-#ifdef GL_EXT_sRGB
- "GL_EXT_sRGB",
-#endif
-#ifdef GL_EXT_sRGB_write_control
- "GL_EXT_sRGB_write_control",
-#endif
-#ifdef GL_EXT_scene_marker
- "GL_EXT_scene_marker",
-#endif
-#ifdef GL_EXT_secondary_color
- "GL_EXT_secondary_color",
-#endif
-#ifdef GL_EXT_semaphore
- "GL_EXT_semaphore",
-#endif
-#ifdef GL_EXT_semaphore_fd
- "GL_EXT_semaphore_fd",
-#endif
-#ifdef GL_EXT_semaphore_win32
- "GL_EXT_semaphore_win32",
-#endif
-#ifdef GL_EXT_separate_shader_objects
- "GL_EXT_separate_shader_objects",
-#endif
-#ifdef GL_EXT_separate_specular_color
- "GL_EXT_separate_specular_color",
-#endif
-#ifdef GL_EXT_shader_framebuffer_fetch
- "GL_EXT_shader_framebuffer_fetch",
-#endif
-#ifdef GL_EXT_shader_framebuffer_fetch_non_coherent
- "GL_EXT_shader_framebuffer_fetch_non_coherent",
-#endif
-#ifdef GL_EXT_shader_group_vote
- "GL_EXT_shader_group_vote",
-#endif
-#ifdef GL_EXT_shader_image_load_formatted
- "GL_EXT_shader_image_load_formatted",
-#endif
-#ifdef GL_EXT_shader_image_load_store
- "GL_EXT_shader_image_load_store",
-#endif
-#ifdef GL_EXT_shader_implicit_conversions
- "GL_EXT_shader_implicit_conversions",
-#endif
-#ifdef GL_EXT_shader_integer_mix
- "GL_EXT_shader_integer_mix",
-#endif
-#ifdef GL_EXT_shader_io_blocks
- "GL_EXT_shader_io_blocks",
-#endif
-#ifdef GL_EXT_shader_non_constant_global_initializers
- "GL_EXT_shader_non_constant_global_initializers",
-#endif
-#ifdef GL_EXT_shader_pixel_local_storage
- "GL_EXT_shader_pixel_local_storage",
-#endif
-#ifdef GL_EXT_shader_pixel_local_storage2
- "GL_EXT_shader_pixel_local_storage2",
-#endif
-#ifdef GL_EXT_shader_texture_lod
- "GL_EXT_shader_texture_lod",
-#endif
-#ifdef GL_EXT_shadow_funcs
- "GL_EXT_shadow_funcs",
-#endif
-#ifdef GL_EXT_shadow_samplers
- "GL_EXT_shadow_samplers",
-#endif
-#ifdef GL_EXT_shared_texture_palette
- "GL_EXT_shared_texture_palette",
-#endif
-#ifdef GL_EXT_sparse_texture
- "GL_EXT_sparse_texture",
-#endif
-#ifdef GL_EXT_sparse_texture2
- "GL_EXT_sparse_texture2",
-#endif
-#ifdef GL_EXT_static_vertex_array
- "GL_EXT_static_vertex_array",
-#endif
-#ifdef GL_EXT_stencil_clear_tag
- "GL_EXT_stencil_clear_tag",
-#endif
-#ifdef GL_EXT_stencil_two_side
- "GL_EXT_stencil_two_side",
-#endif
-#ifdef GL_EXT_stencil_wrap
- "GL_EXT_stencil_wrap",
-#endif
-#ifdef GL_EXT_subtexture
- "GL_EXT_subtexture",
-#endif
-#ifdef GL_EXT_tessellation_point_size
- "GL_EXT_tessellation_point_size",
-#endif
-#ifdef GL_EXT_tessellation_shader
- "GL_EXT_tessellation_shader",
-#endif
-#ifdef GL_EXT_texture
- "GL_EXT_texture",
-#endif
-#ifdef GL_EXT_texture3D
- "GL_EXT_texture3D",
-#endif
-#ifdef GL_EXT_texture_array
- "GL_EXT_texture_array",
-#endif
-#ifdef GL_EXT_texture_border_clamp
- "GL_EXT_texture_border_clamp",
-#endif
-#ifdef GL_EXT_texture_buffer
- "GL_EXT_texture_buffer",
-#endif
-#ifdef GL_EXT_texture_buffer_object
- "GL_EXT_texture_buffer_object",
-#endif
-#ifdef GL_EXT_texture_compression_astc_decode_mode
- "GL_EXT_texture_compression_astc_decode_mode",
-#endif
-#ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5
- "GL_EXT_texture_compression_astc_decode_mode_rgb9e5",
-#endif
-#ifdef GL_EXT_texture_compression_bptc
- "GL_EXT_texture_compression_bptc",
-#endif
-#ifdef GL_EXT_texture_compression_dxt1
- "GL_EXT_texture_compression_dxt1",
-#endif
-#ifdef GL_EXT_texture_compression_latc
- "GL_EXT_texture_compression_latc",
-#endif
-#ifdef GL_EXT_texture_compression_rgtc
- "GL_EXT_texture_compression_rgtc",
-#endif
-#ifdef GL_EXT_texture_compression_s3tc
- "GL_EXT_texture_compression_s3tc",
-#endif
-#ifdef GL_EXT_texture_compression_s3tc_srgb
- "GL_EXT_texture_compression_s3tc_srgb",
-#endif
-#ifdef GL_EXT_texture_cube_map
- "GL_EXT_texture_cube_map",
-#endif
-#ifdef GL_EXT_texture_cube_map_array
- "GL_EXT_texture_cube_map_array",
-#endif
-#ifdef GL_EXT_texture_edge_clamp
- "GL_EXT_texture_edge_clamp",
-#endif
-#ifdef GL_EXT_texture_env
- "GL_EXT_texture_env",
-#endif
-#ifdef GL_EXT_texture_env_add
- "GL_EXT_texture_env_add",
-#endif
-#ifdef GL_EXT_texture_env_combine
- "GL_EXT_texture_env_combine",
-#endif
-#ifdef GL_EXT_texture_env_dot3
- "GL_EXT_texture_env_dot3",
-#endif
-#ifdef GL_EXT_texture_filter_anisotropic
- "GL_EXT_texture_filter_anisotropic",
-#endif
-#ifdef GL_EXT_texture_filter_minmax
- "GL_EXT_texture_filter_minmax",
-#endif
-#ifdef GL_EXT_texture_format_BGRA8888
- "GL_EXT_texture_format_BGRA8888",
-#endif
-#ifdef GL_EXT_texture_format_sRGB_override
- "GL_EXT_texture_format_sRGB_override",
-#endif
-#ifdef GL_EXT_texture_integer
- "GL_EXT_texture_integer",
-#endif
-#ifdef GL_EXT_texture_lod_bias
- "GL_EXT_texture_lod_bias",
-#endif
-#ifdef GL_EXT_texture_mirror_clamp
- "GL_EXT_texture_mirror_clamp",
-#endif
-#ifdef GL_EXT_texture_mirror_clamp_to_edge
- "GL_EXT_texture_mirror_clamp_to_edge",
-#endif
-#ifdef GL_EXT_texture_norm16
- "GL_EXT_texture_norm16",
-#endif
-#ifdef GL_EXT_texture_object
- "GL_EXT_texture_object",
-#endif
-#ifdef GL_EXT_texture_perturb_normal
- "GL_EXT_texture_perturb_normal",
-#endif
-#ifdef GL_EXT_texture_query_lod
- "GL_EXT_texture_query_lod",
-#endif
-#ifdef GL_EXT_texture_rectangle
- "GL_EXT_texture_rectangle",
-#endif
-#ifdef GL_EXT_texture_rg
- "GL_EXT_texture_rg",
-#endif
-#ifdef GL_EXT_texture_sRGB
- "GL_EXT_texture_sRGB",
-#endif
-#ifdef GL_EXT_texture_sRGB_R8
- "GL_EXT_texture_sRGB_R8",
-#endif
-#ifdef GL_EXT_texture_sRGB_RG8
- "GL_EXT_texture_sRGB_RG8",
-#endif
-#ifdef GL_EXT_texture_sRGB_decode
- "GL_EXT_texture_sRGB_decode",
-#endif
-#ifdef GL_EXT_texture_shadow_lod
- "GL_EXT_texture_shadow_lod",
-#endif
-#ifdef GL_EXT_texture_shared_exponent
- "GL_EXT_texture_shared_exponent",
-#endif
-#ifdef GL_EXT_texture_snorm
- "GL_EXT_texture_snorm",
-#endif
-#ifdef GL_EXT_texture_storage
- "GL_EXT_texture_storage",
-#endif
-#ifdef GL_EXT_texture_swizzle
- "GL_EXT_texture_swizzle",
-#endif
-#ifdef GL_EXT_texture_type_2_10_10_10_REV
- "GL_EXT_texture_type_2_10_10_10_REV",
-#endif
-#ifdef GL_EXT_texture_view
- "GL_EXT_texture_view",
-#endif
-#ifdef GL_EXT_timer_query
- "GL_EXT_timer_query",
-#endif
-#ifdef GL_EXT_transform_feedback
- "GL_EXT_transform_feedback",
-#endif
-#ifdef GL_EXT_unpack_subimage
- "GL_EXT_unpack_subimage",
-#endif
-#ifdef GL_EXT_vertex_array
- "GL_EXT_vertex_array",
-#endif
-#ifdef GL_EXT_vertex_array_bgra
- "GL_EXT_vertex_array_bgra",
-#endif
-#ifdef GL_EXT_vertex_array_setXXX
- "GL_EXT_vertex_array_setXXX",
-#endif
-#ifdef GL_EXT_vertex_attrib_64bit
- "GL_EXT_vertex_attrib_64bit",
-#endif
-#ifdef GL_EXT_vertex_shader
- "GL_EXT_vertex_shader",
-#endif
-#ifdef GL_EXT_vertex_weighting
- "GL_EXT_vertex_weighting",
-#endif
-#ifdef GL_EXT_win32_keyed_mutex
- "GL_EXT_win32_keyed_mutex",
-#endif
-#ifdef GL_EXT_window_rectangles
- "GL_EXT_window_rectangles",
-#endif
-#ifdef GL_EXT_x11_sync_object
- "GL_EXT_x11_sync_object",
-#endif
-#ifdef GL_FJ_shader_binary_GCCSO
- "GL_FJ_shader_binary_GCCSO",
-#endif
-#ifdef GL_GREMEDY_frame_terminator
- "GL_GREMEDY_frame_terminator",
-#endif
-#ifdef GL_GREMEDY_string_marker
- "GL_GREMEDY_string_marker",
-#endif
-#ifdef GL_HP_convolution_border_modes
- "GL_HP_convolution_border_modes",
-#endif
-#ifdef GL_HP_image_transform
- "GL_HP_image_transform",
-#endif
-#ifdef GL_HP_occlusion_test
- "GL_HP_occlusion_test",
-#endif
-#ifdef GL_HP_texture_lighting
- "GL_HP_texture_lighting",
-#endif
-#ifdef GL_IBM_cull_vertex
- "GL_IBM_cull_vertex",
-#endif
-#ifdef GL_IBM_multimode_draw_arrays
- "GL_IBM_multimode_draw_arrays",
-#endif
-#ifdef GL_IBM_rasterpos_clip
- "GL_IBM_rasterpos_clip",
-#endif
-#ifdef GL_IBM_static_data
- "GL_IBM_static_data",
-#endif
-#ifdef GL_IBM_texture_mirrored_repeat
- "GL_IBM_texture_mirrored_repeat",
-#endif
-#ifdef GL_IBM_vertex_array_lists
- "GL_IBM_vertex_array_lists",
-#endif
-#ifdef GL_IMG_bindless_texture
- "GL_IMG_bindless_texture",
-#endif
-#ifdef GL_IMG_framebuffer_downsample
- "GL_IMG_framebuffer_downsample",
-#endif
-#ifdef GL_IMG_multisampled_render_to_texture
- "GL_IMG_multisampled_render_to_texture",
-#endif
-#ifdef GL_IMG_program_binary
- "GL_IMG_program_binary",
-#endif
-#ifdef GL_IMG_read_format
- "GL_IMG_read_format",
-#endif
-#ifdef GL_IMG_shader_binary
- "GL_IMG_shader_binary",
-#endif
-#ifdef GL_IMG_texture_compression_pvrtc
- "GL_IMG_texture_compression_pvrtc",
-#endif
-#ifdef GL_IMG_texture_compression_pvrtc2
- "GL_IMG_texture_compression_pvrtc2",
-#endif
-#ifdef GL_IMG_texture_env_enhanced_fixed_function
- "GL_IMG_texture_env_enhanced_fixed_function",
-#endif
-#ifdef GL_IMG_texture_filter_cubic
- "GL_IMG_texture_filter_cubic",
-#endif
-#ifdef GL_INGR_color_clamp
- "GL_INGR_color_clamp",
-#endif
-#ifdef GL_INGR_interlace_read
- "GL_INGR_interlace_read",
-#endif
-#ifdef GL_INTEL_blackhole_render
- "GL_INTEL_blackhole_render",
-#endif
-#ifdef GL_INTEL_conservative_rasterization
- "GL_INTEL_conservative_rasterization",
-#endif
-#ifdef GL_INTEL_fragment_shader_ordering
- "GL_INTEL_fragment_shader_ordering",
-#endif
-#ifdef GL_INTEL_framebuffer_CMAA
- "GL_INTEL_framebuffer_CMAA",
-#endif
-#ifdef GL_INTEL_map_texture
- "GL_INTEL_map_texture",
-#endif
-#ifdef GL_INTEL_parallel_arrays
- "GL_INTEL_parallel_arrays",
-#endif
-#ifdef GL_INTEL_performance_query
- "GL_INTEL_performance_query",
-#endif
-#ifdef GL_INTEL_shader_integer_functions2
- "GL_INTEL_shader_integer_functions2",
-#endif
-#ifdef GL_INTEL_texture_scissor
- "GL_INTEL_texture_scissor",
-#endif
-#ifdef GL_KHR_blend_equation_advanced
- "GL_KHR_blend_equation_advanced",
-#endif
-#ifdef GL_KHR_blend_equation_advanced_coherent
- "GL_KHR_blend_equation_advanced_coherent",
-#endif
-#ifdef GL_KHR_context_flush_control
- "GL_KHR_context_flush_control",
-#endif
-#ifdef GL_KHR_debug
- "GL_KHR_debug",
-#endif
-#ifdef GL_KHR_no_error
- "GL_KHR_no_error",
-#endif
-#ifdef GL_KHR_parallel_shader_compile
- "GL_KHR_parallel_shader_compile",
-#endif
-#ifdef GL_KHR_robust_buffer_access_behavior
- "GL_KHR_robust_buffer_access_behavior",
-#endif
-#ifdef GL_KHR_robustness
- "GL_KHR_robustness",
-#endif
-#ifdef GL_KHR_shader_subgroup
- "GL_KHR_shader_subgroup",
-#endif
-#ifdef GL_KHR_texture_compression_astc_hdr
- "GL_KHR_texture_compression_astc_hdr",
-#endif
-#ifdef GL_KHR_texture_compression_astc_ldr
- "GL_KHR_texture_compression_astc_ldr",
-#endif
-#ifdef GL_KHR_texture_compression_astc_sliced_3d
- "GL_KHR_texture_compression_astc_sliced_3d",
-#endif
-#ifdef GL_KTX_buffer_region
- "GL_KTX_buffer_region",
-#endif
-#ifdef GL_MESAX_texture_stack
- "GL_MESAX_texture_stack",
-#endif
-#ifdef GL_MESA_framebuffer_flip_y
- "GL_MESA_framebuffer_flip_y",
-#endif
-#ifdef GL_MESA_pack_invert
- "GL_MESA_pack_invert",
-#endif
-#ifdef GL_MESA_program_binary_formats
- "GL_MESA_program_binary_formats",
-#endif
-#ifdef GL_MESA_resize_buffers
- "GL_MESA_resize_buffers",
-#endif
-#ifdef GL_MESA_shader_integer_functions
- "GL_MESA_shader_integer_functions",
-#endif
-#ifdef GL_MESA_tile_raster_order
- "GL_MESA_tile_raster_order",
-#endif
-#ifdef GL_MESA_window_pos
- "GL_MESA_window_pos",
-#endif
-#ifdef GL_MESA_ycbcr_texture
- "GL_MESA_ycbcr_texture",
-#endif
-#ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers
- "GL_NVX_blend_equation_advanced_multi_draw_buffers",
-#endif
-#ifdef GL_NVX_conditional_render
- "GL_NVX_conditional_render",
-#endif
-#ifdef GL_NVX_gpu_memory_info
- "GL_NVX_gpu_memory_info",
-#endif
-#ifdef GL_NVX_gpu_multicast2
- "GL_NVX_gpu_multicast2",
-#endif
-#ifdef GL_NVX_linked_gpu_multicast
- "GL_NVX_linked_gpu_multicast",
-#endif
-#ifdef GL_NVX_progress_fence
- "GL_NVX_progress_fence",
-#endif
-#ifdef GL_NV_3dvision_settings
- "GL_NV_3dvision_settings",
-#endif
-#ifdef GL_NV_EGL_stream_consumer_external
- "GL_NV_EGL_stream_consumer_external",
-#endif
-#ifdef GL_NV_alpha_to_coverage_dither_control
- "GL_NV_alpha_to_coverage_dither_control",
-#endif
-#ifdef GL_NV_bgr
- "GL_NV_bgr",
-#endif
-#ifdef GL_NV_bindless_multi_draw_indirect
- "GL_NV_bindless_multi_draw_indirect",
-#endif
-#ifdef GL_NV_bindless_multi_draw_indirect_count
- "GL_NV_bindless_multi_draw_indirect_count",
-#endif
-#ifdef GL_NV_bindless_texture
- "GL_NV_bindless_texture",
-#endif
-#ifdef GL_NV_blend_equation_advanced
- "GL_NV_blend_equation_advanced",
-#endif
-#ifdef GL_NV_blend_equation_advanced_coherent
- "GL_NV_blend_equation_advanced_coherent",
-#endif
-#ifdef GL_NV_blend_minmax_factor
- "GL_NV_blend_minmax_factor",
-#endif
-#ifdef GL_NV_blend_square
- "GL_NV_blend_square",
-#endif
-#ifdef GL_NV_clip_space_w_scaling
- "GL_NV_clip_space_w_scaling",
-#endif
-#ifdef GL_NV_command_list
- "GL_NV_command_list",
-#endif
-#ifdef GL_NV_compute_program5
- "GL_NV_compute_program5",
-#endif
-#ifdef GL_NV_compute_shader_derivatives
- "GL_NV_compute_shader_derivatives",
-#endif
-#ifdef GL_NV_conditional_render
- "GL_NV_conditional_render",
-#endif
-#ifdef GL_NV_conservative_raster
- "GL_NV_conservative_raster",
-#endif
-#ifdef GL_NV_conservative_raster_dilate
- "GL_NV_conservative_raster_dilate",
-#endif
-#ifdef GL_NV_conservative_raster_pre_snap
- "GL_NV_conservative_raster_pre_snap",
-#endif
-#ifdef GL_NV_conservative_raster_pre_snap_triangles
- "GL_NV_conservative_raster_pre_snap_triangles",
-#endif
-#ifdef GL_NV_conservative_raster_underestimation
- "GL_NV_conservative_raster_underestimation",
-#endif
-#ifdef GL_NV_copy_buffer
- "GL_NV_copy_buffer",
-#endif
-#ifdef GL_NV_copy_depth_to_color
- "GL_NV_copy_depth_to_color",
-#endif
-#ifdef GL_NV_copy_image
- "GL_NV_copy_image",
-#endif
-#ifdef GL_NV_deep_texture3D
- "GL_NV_deep_texture3D",
-#endif
-#ifdef GL_NV_depth_buffer_float
- "GL_NV_depth_buffer_float",
-#endif
-#ifdef GL_NV_depth_clamp
- "GL_NV_depth_clamp",
-#endif
-#ifdef GL_NV_depth_nonlinear
- "GL_NV_depth_nonlinear",
-#endif
-#ifdef GL_NV_depth_range_unclamped
- "GL_NV_depth_range_unclamped",
-#endif
-#ifdef GL_NV_draw_buffers
- "GL_NV_draw_buffers",
-#endif
-#ifdef GL_NV_draw_instanced
- "GL_NV_draw_instanced",
-#endif
-#ifdef GL_NV_draw_texture
- "GL_NV_draw_texture",
-#endif
-#ifdef GL_NV_draw_vulkan_image
- "GL_NV_draw_vulkan_image",
-#endif
-#ifdef GL_NV_evaluators
- "GL_NV_evaluators",
-#endif
-#ifdef GL_NV_explicit_attrib_location
- "GL_NV_explicit_attrib_location",
-#endif
-#ifdef GL_NV_explicit_multisample
- "GL_NV_explicit_multisample",
-#endif
-#ifdef GL_NV_fbo_color_attachments
- "GL_NV_fbo_color_attachments",
-#endif
-#ifdef GL_NV_fence
- "GL_NV_fence",
-#endif
-#ifdef GL_NV_fill_rectangle
- "GL_NV_fill_rectangle",
-#endif
-#ifdef GL_NV_float_buffer
- "GL_NV_float_buffer",
-#endif
-#ifdef GL_NV_fog_distance
- "GL_NV_fog_distance",
-#endif
-#ifdef GL_NV_fragment_coverage_to_color
- "GL_NV_fragment_coverage_to_color",
-#endif
-#ifdef GL_NV_fragment_program
- "GL_NV_fragment_program",
-#endif
-#ifdef GL_NV_fragment_program2
- "GL_NV_fragment_program2",
-#endif
-#ifdef GL_NV_fragment_program4
- "GL_NV_fragment_program4",
-#endif
-#ifdef GL_NV_fragment_program_option
- "GL_NV_fragment_program_option",
-#endif
-#ifdef GL_NV_fragment_shader_barycentric
- "GL_NV_fragment_shader_barycentric",
-#endif
-#ifdef GL_NV_fragment_shader_interlock
- "GL_NV_fragment_shader_interlock",
-#endif
-#ifdef GL_NV_framebuffer_blit
- "GL_NV_framebuffer_blit",
-#endif
-#ifdef GL_NV_framebuffer_mixed_samples
- "GL_NV_framebuffer_mixed_samples",
-#endif
-#ifdef GL_NV_framebuffer_multisample
- "GL_NV_framebuffer_multisample",
-#endif
-#ifdef GL_NV_framebuffer_multisample_coverage
- "GL_NV_framebuffer_multisample_coverage",
-#endif
-#ifdef GL_NV_generate_mipmap_sRGB
- "GL_NV_generate_mipmap_sRGB",
-#endif
-#ifdef GL_NV_geometry_program4
- "GL_NV_geometry_program4",
-#endif
-#ifdef GL_NV_geometry_shader4
- "GL_NV_geometry_shader4",
-#endif
-#ifdef GL_NV_geometry_shader_passthrough
- "GL_NV_geometry_shader_passthrough",
-#endif
-#ifdef GL_NV_gpu_multicast
- "GL_NV_gpu_multicast",
-#endif
-#ifdef GL_NV_gpu_program4
- "GL_NV_gpu_program4",
-#endif
-#ifdef GL_NV_gpu_program5
- "GL_NV_gpu_program5",
-#endif
-#ifdef GL_NV_gpu_program5_mem_extended
- "GL_NV_gpu_program5_mem_extended",
-#endif
-#ifdef GL_NV_gpu_program_fp64
- "GL_NV_gpu_program_fp64",
-#endif
-#ifdef GL_NV_gpu_shader5
- "GL_NV_gpu_shader5",
-#endif
-#ifdef GL_NV_half_float
- "GL_NV_half_float",
-#endif
-#ifdef GL_NV_image_formats
- "GL_NV_image_formats",
-#endif
-#ifdef GL_NV_instanced_arrays
- "GL_NV_instanced_arrays",
-#endif
-#ifdef GL_NV_internalformat_sample_query
- "GL_NV_internalformat_sample_query",
-#endif
-#ifdef GL_NV_light_max_exponent
- "GL_NV_light_max_exponent",
-#endif
-#ifdef GL_NV_memory_attachment
- "GL_NV_memory_attachment",
-#endif
-#ifdef GL_NV_mesh_shader
- "GL_NV_mesh_shader",
-#endif
-#ifdef GL_NV_multisample_coverage
- "GL_NV_multisample_coverage",
-#endif
-#ifdef GL_NV_multisample_filter_hint
- "GL_NV_multisample_filter_hint",
-#endif
-#ifdef GL_NV_non_square_matrices
- "GL_NV_non_square_matrices",
-#endif
-#ifdef GL_NV_occlusion_query
- "GL_NV_occlusion_query",
-#endif
-#ifdef GL_NV_pack_subimage
- "GL_NV_pack_subimage",
-#endif
-#ifdef GL_NV_packed_depth_stencil
- "GL_NV_packed_depth_stencil",
-#endif
-#ifdef GL_NV_packed_float
- "GL_NV_packed_float",
-#endif
-#ifdef GL_NV_packed_float_linear
- "GL_NV_packed_float_linear",
-#endif
-#ifdef GL_NV_parameter_buffer_object
- "GL_NV_parameter_buffer_object",
-#endif
-#ifdef GL_NV_parameter_buffer_object2
- "GL_NV_parameter_buffer_object2",
-#endif
-#ifdef GL_NV_path_rendering
- "GL_NV_path_rendering",
-#endif
-#ifdef GL_NV_path_rendering_shared_edge
- "GL_NV_path_rendering_shared_edge",
-#endif
-#ifdef GL_NV_pixel_buffer_object
- "GL_NV_pixel_buffer_object",
-#endif
-#ifdef GL_NV_pixel_data_range
- "GL_NV_pixel_data_range",
-#endif
-#ifdef GL_NV_platform_binary
- "GL_NV_platform_binary",
-#endif
-#ifdef GL_NV_point_sprite
- "GL_NV_point_sprite",
-#endif
-#ifdef GL_NV_polygon_mode
- "GL_NV_polygon_mode",
-#endif
-#ifdef GL_NV_present_video
- "GL_NV_present_video",
-#endif
-#ifdef GL_NV_primitive_restart
- "GL_NV_primitive_restart",
-#endif
-#ifdef GL_NV_query_resource_tag
- "GL_NV_query_resource_tag",
-#endif
-#ifdef GL_NV_read_buffer
- "GL_NV_read_buffer",
-#endif
-#ifdef GL_NV_read_buffer_front
- "GL_NV_read_buffer_front",
-#endif
-#ifdef GL_NV_read_depth
- "GL_NV_read_depth",
-#endif
-#ifdef GL_NV_read_depth_stencil
- "GL_NV_read_depth_stencil",
-#endif
-#ifdef GL_NV_read_stencil
- "GL_NV_read_stencil",
-#endif
-#ifdef GL_NV_register_combiners
- "GL_NV_register_combiners",
-#endif
-#ifdef GL_NV_register_combiners2
- "GL_NV_register_combiners2",
-#endif
-#ifdef GL_NV_representative_fragment_test
- "GL_NV_representative_fragment_test",
-#endif
-#ifdef GL_NV_robustness_video_memory_purge
- "GL_NV_robustness_video_memory_purge",
-#endif
-#ifdef GL_NV_sRGB_formats
- "GL_NV_sRGB_formats",
-#endif
-#ifdef GL_NV_sample_locations
- "GL_NV_sample_locations",
-#endif
-#ifdef GL_NV_sample_mask_override_coverage
- "GL_NV_sample_mask_override_coverage",
-#endif
-#ifdef GL_NV_scissor_exclusive
- "GL_NV_scissor_exclusive",
-#endif
-#ifdef GL_NV_shader_atomic_counters
- "GL_NV_shader_atomic_counters",
-#endif
-#ifdef GL_NV_shader_atomic_float
- "GL_NV_shader_atomic_float",
-#endif
-#ifdef GL_NV_shader_atomic_float64
- "GL_NV_shader_atomic_float64",
-#endif
-#ifdef GL_NV_shader_atomic_fp16_vector
- "GL_NV_shader_atomic_fp16_vector",
-#endif
-#ifdef GL_NV_shader_atomic_int64
- "GL_NV_shader_atomic_int64",
-#endif
-#ifdef GL_NV_shader_buffer_load
- "GL_NV_shader_buffer_load",
-#endif
-#ifdef GL_NV_shader_noperspective_interpolation
- "GL_NV_shader_noperspective_interpolation",
-#endif
-#ifdef GL_NV_shader_storage_buffer_object
- "GL_NV_shader_storage_buffer_object",
-#endif
-#ifdef GL_NV_shader_subgroup_partitioned
- "GL_NV_shader_subgroup_partitioned",
-#endif
-#ifdef GL_NV_shader_texture_footprint
- "GL_NV_shader_texture_footprint",
-#endif
-#ifdef GL_NV_shader_thread_group
- "GL_NV_shader_thread_group",
-#endif
-#ifdef GL_NV_shader_thread_shuffle
- "GL_NV_shader_thread_shuffle",
-#endif
-#ifdef GL_NV_shading_rate_image
- "GL_NV_shading_rate_image",
-#endif
-#ifdef GL_NV_shadow_samplers_array
- "GL_NV_shadow_samplers_array",
-#endif
-#ifdef GL_NV_shadow_samplers_cube
- "GL_NV_shadow_samplers_cube",
-#endif
-#ifdef GL_NV_stereo_view_rendering
- "GL_NV_stereo_view_rendering",
-#endif
-#ifdef GL_NV_tessellation_program5
- "GL_NV_tessellation_program5",
-#endif
-#ifdef GL_NV_texgen_emboss
- "GL_NV_texgen_emboss",
-#endif
-#ifdef GL_NV_texgen_reflection
- "GL_NV_texgen_reflection",
-#endif
-#ifdef GL_NV_texture_array
- "GL_NV_texture_array",
-#endif
-#ifdef GL_NV_texture_barrier
- "GL_NV_texture_barrier",
-#endif
-#ifdef GL_NV_texture_border_clamp
- "GL_NV_texture_border_clamp",
-#endif
-#ifdef GL_NV_texture_compression_latc
- "GL_NV_texture_compression_latc",
-#endif
-#ifdef GL_NV_texture_compression_s3tc
- "GL_NV_texture_compression_s3tc",
-#endif
-#ifdef GL_NV_texture_compression_s3tc_update
- "GL_NV_texture_compression_s3tc_update",
-#endif
-#ifdef GL_NV_texture_compression_vtc
- "GL_NV_texture_compression_vtc",
-#endif
-#ifdef GL_NV_texture_env_combine4
- "GL_NV_texture_env_combine4",
-#endif
-#ifdef GL_NV_texture_expand_normal
- "GL_NV_texture_expand_normal",
-#endif
-#ifdef GL_NV_texture_multisample
- "GL_NV_texture_multisample",
-#endif
-#ifdef GL_NV_texture_npot_2D_mipmap
- "GL_NV_texture_npot_2D_mipmap",
-#endif
-#ifdef GL_NV_texture_rectangle
- "GL_NV_texture_rectangle",
-#endif
-#ifdef GL_NV_texture_rectangle_compressed
- "GL_NV_texture_rectangle_compressed",
-#endif
-#ifdef GL_NV_texture_shader
- "GL_NV_texture_shader",
-#endif
-#ifdef GL_NV_texture_shader2
- "GL_NV_texture_shader2",
-#endif
-#ifdef GL_NV_texture_shader3
- "GL_NV_texture_shader3",
-#endif
-#ifdef GL_NV_transform_feedback
- "GL_NV_transform_feedback",
-#endif
-#ifdef GL_NV_transform_feedback2
- "GL_NV_transform_feedback2",
-#endif
-#ifdef GL_NV_uniform_buffer_unified_memory
- "GL_NV_uniform_buffer_unified_memory",
-#endif
-#ifdef GL_NV_vdpau_interop
- "GL_NV_vdpau_interop",
-#endif
-#ifdef GL_NV_vdpau_interop2
- "GL_NV_vdpau_interop2",
-#endif
-#ifdef GL_NV_vertex_array_range
- "GL_NV_vertex_array_range",
-#endif
-#ifdef GL_NV_vertex_array_range2
- "GL_NV_vertex_array_range2",
-#endif
-#ifdef GL_NV_vertex_attrib_integer_64bit
- "GL_NV_vertex_attrib_integer_64bit",
-#endif
-#ifdef GL_NV_vertex_buffer_unified_memory
- "GL_NV_vertex_buffer_unified_memory",
-#endif
-#ifdef GL_NV_vertex_program
- "GL_NV_vertex_program",
-#endif
-#ifdef GL_NV_vertex_program1_1
- "GL_NV_vertex_program1_1",
-#endif
-#ifdef GL_NV_vertex_program2
- "GL_NV_vertex_program2",
-#endif
-#ifdef GL_NV_vertex_program2_option
- "GL_NV_vertex_program2_option",
-#endif
-#ifdef GL_NV_vertex_program3
- "GL_NV_vertex_program3",
-#endif
-#ifdef GL_NV_vertex_program4
- "GL_NV_vertex_program4",
-#endif
-#ifdef GL_NV_video_capture
- "GL_NV_video_capture",
-#endif
-#ifdef GL_NV_viewport_array
- "GL_NV_viewport_array",
-#endif
-#ifdef GL_NV_viewport_array2
- "GL_NV_viewport_array2",
-#endif
-#ifdef GL_NV_viewport_swizzle
- "GL_NV_viewport_swizzle",
-#endif
-#ifdef GL_OES_EGL_image
- "GL_OES_EGL_image",
-#endif
-#ifdef GL_OES_EGL_image_external
- "GL_OES_EGL_image_external",
-#endif
-#ifdef GL_OES_EGL_image_external_essl3
- "GL_OES_EGL_image_external_essl3",
-#endif
-#ifdef GL_OES_blend_equation_separate
- "GL_OES_blend_equation_separate",
-#endif
-#ifdef GL_OES_blend_func_separate
- "GL_OES_blend_func_separate",
-#endif
-#ifdef GL_OES_blend_subtract
- "GL_OES_blend_subtract",
-#endif
-#ifdef GL_OES_byte_coordinates
- "GL_OES_byte_coordinates",
-#endif
-#ifdef GL_OES_compressed_ETC1_RGB8_texture
- "GL_OES_compressed_ETC1_RGB8_texture",
-#endif
-#ifdef GL_OES_compressed_paletted_texture
- "GL_OES_compressed_paletted_texture",
-#endif
-#ifdef GL_OES_copy_image
- "GL_OES_copy_image",
-#endif
-#ifdef GL_OES_depth24
- "GL_OES_depth24",
-#endif
-#ifdef GL_OES_depth32
- "GL_OES_depth32",
-#endif
-#ifdef GL_OES_depth_texture
- "GL_OES_depth_texture",
-#endif
-#ifdef GL_OES_depth_texture_cube_map
- "GL_OES_depth_texture_cube_map",
-#endif
-#ifdef GL_OES_draw_buffers_indexed
- "GL_OES_draw_buffers_indexed",
-#endif
-#ifdef GL_OES_draw_texture
- "GL_OES_draw_texture",
-#endif
-#ifdef GL_OES_element_index_uint
- "GL_OES_element_index_uint",
-#endif
-#ifdef GL_OES_extended_matrix_palette
- "GL_OES_extended_matrix_palette",
-#endif
-#ifdef GL_OES_fbo_render_mipmap
- "GL_OES_fbo_render_mipmap",
-#endif
-#ifdef GL_OES_fragment_precision_high
- "GL_OES_fragment_precision_high",
-#endif
-#ifdef GL_OES_framebuffer_object
- "GL_OES_framebuffer_object",
-#endif
-#ifdef GL_OES_geometry_point_size
- "GL_OES_geometry_point_size",
-#endif
-#ifdef GL_OES_geometry_shader
- "GL_OES_geometry_shader",
-#endif
-#ifdef GL_OES_get_program_binary
- "GL_OES_get_program_binary",
-#endif
-#ifdef GL_OES_gpu_shader5
- "GL_OES_gpu_shader5",
-#endif
-#ifdef GL_OES_mapbuffer
- "GL_OES_mapbuffer",
-#endif
-#ifdef GL_OES_matrix_get
- "GL_OES_matrix_get",
-#endif
-#ifdef GL_OES_matrix_palette
- "GL_OES_matrix_palette",
-#endif
-#ifdef GL_OES_packed_depth_stencil
- "GL_OES_packed_depth_stencil",
-#endif
-#ifdef GL_OES_point_size_array
- "GL_OES_point_size_array",
-#endif
-#ifdef GL_OES_point_sprite
- "GL_OES_point_sprite",
-#endif
-#ifdef GL_OES_read_format
- "GL_OES_read_format",
-#endif
-#ifdef GL_OES_required_internalformat
- "GL_OES_required_internalformat",
-#endif
-#ifdef GL_OES_rgb8_rgba8
- "GL_OES_rgb8_rgba8",
-#endif
-#ifdef GL_OES_sample_shading
- "GL_OES_sample_shading",
-#endif
-#ifdef GL_OES_sample_variables
- "GL_OES_sample_variables",
-#endif
-#ifdef GL_OES_shader_image_atomic
- "GL_OES_shader_image_atomic",
-#endif
-#ifdef GL_OES_shader_io_blocks
- "GL_OES_shader_io_blocks",
-#endif
-#ifdef GL_OES_shader_multisample_interpolation
- "GL_OES_shader_multisample_interpolation",
-#endif
-#ifdef GL_OES_single_precision
- "GL_OES_single_precision",
-#endif
-#ifdef GL_OES_standard_derivatives
- "GL_OES_standard_derivatives",
-#endif
-#ifdef GL_OES_stencil1
- "GL_OES_stencil1",
-#endif
-#ifdef GL_OES_stencil4
- "GL_OES_stencil4",
-#endif
-#ifdef GL_OES_stencil8
- "GL_OES_stencil8",
-#endif
-#ifdef GL_OES_surfaceless_context
- "GL_OES_surfaceless_context",
-#endif
-#ifdef GL_OES_tessellation_point_size
- "GL_OES_tessellation_point_size",
-#endif
-#ifdef GL_OES_tessellation_shader
- "GL_OES_tessellation_shader",
-#endif
-#ifdef GL_OES_texture_3D
- "GL_OES_texture_3D",
-#endif
-#ifdef GL_OES_texture_border_clamp
- "GL_OES_texture_border_clamp",
-#endif
-#ifdef GL_OES_texture_buffer
- "GL_OES_texture_buffer",
-#endif
-#ifdef GL_OES_texture_compression_astc
- "GL_OES_texture_compression_astc",
-#endif
-#ifdef GL_OES_texture_cube_map
- "GL_OES_texture_cube_map",
-#endif
-#ifdef GL_OES_texture_cube_map_array
- "GL_OES_texture_cube_map_array",
-#endif
-#ifdef GL_OES_texture_env_crossbar
- "GL_OES_texture_env_crossbar",
-#endif
-#ifdef GL_OES_texture_mirrored_repeat
- "GL_OES_texture_mirrored_repeat",
-#endif
-#ifdef GL_OES_texture_npot
- "GL_OES_texture_npot",
-#endif
-#ifdef GL_OES_texture_stencil8
- "GL_OES_texture_stencil8",
-#endif
-#ifdef GL_OES_texture_storage_multisample_2d_array
- "GL_OES_texture_storage_multisample_2d_array",
-#endif
-#ifdef GL_OES_texture_view
- "GL_OES_texture_view",
-#endif
-#ifdef GL_OES_vertex_array_object
- "GL_OES_vertex_array_object",
-#endif
-#ifdef GL_OES_vertex_half_float
- "GL_OES_vertex_half_float",
-#endif
-#ifdef GL_OES_vertex_type_10_10_10_2
- "GL_OES_vertex_type_10_10_10_2",
-#endif
-#ifdef GL_OML_interlace
- "GL_OML_interlace",
-#endif
-#ifdef GL_OML_resample
- "GL_OML_resample",
-#endif
-#ifdef GL_OML_subsample
- "GL_OML_subsample",
-#endif
-#ifdef GL_OVR_multiview
- "GL_OVR_multiview",
-#endif
-#ifdef GL_OVR_multiview2
- "GL_OVR_multiview2",
-#endif
-#ifdef GL_OVR_multiview_multisampled_render_to_texture
- "GL_OVR_multiview_multisampled_render_to_texture",
-#endif
-#ifdef GL_PGI_misc_hints
- "GL_PGI_misc_hints",
-#endif
-#ifdef GL_PGI_vertex_hints
- "GL_PGI_vertex_hints",
-#endif
-#ifdef GL_QCOM_YUV_texture_gather
- "GL_QCOM_YUV_texture_gather",
-#endif
-#ifdef GL_QCOM_alpha_test
- "GL_QCOM_alpha_test",
-#endif
-#ifdef GL_QCOM_binning_control
- "GL_QCOM_binning_control",
-#endif
-#ifdef GL_QCOM_driver_control
- "GL_QCOM_driver_control",
-#endif
-#ifdef GL_QCOM_extended_get
- "GL_QCOM_extended_get",
-#endif
-#ifdef GL_QCOM_extended_get2
- "GL_QCOM_extended_get2",
-#endif
-#ifdef GL_QCOM_framebuffer_foveated
- "GL_QCOM_framebuffer_foveated",
-#endif
-#ifdef GL_QCOM_perfmon_global_mode
- "GL_QCOM_perfmon_global_mode",
-#endif
-#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent
- "GL_QCOM_shader_framebuffer_fetch_noncoherent",
-#endif
-#ifdef GL_QCOM_shader_framebuffer_fetch_rate
- "GL_QCOM_shader_framebuffer_fetch_rate",
-#endif
-#ifdef GL_QCOM_texture_foveated
- "GL_QCOM_texture_foveated",
-#endif
-#ifdef GL_QCOM_texture_foveated_subsampled_layout
- "GL_QCOM_texture_foveated_subsampled_layout",
-#endif
-#ifdef GL_QCOM_tiled_rendering
- "GL_QCOM_tiled_rendering",
-#endif
-#ifdef GL_QCOM_writeonly_rendering
- "GL_QCOM_writeonly_rendering",
-#endif
-#ifdef GL_REGAL_ES1_0_compatibility
- "GL_REGAL_ES1_0_compatibility",
-#endif
-#ifdef GL_REGAL_ES1_1_compatibility
- "GL_REGAL_ES1_1_compatibility",
-#endif
-#ifdef GL_REGAL_enable
- "GL_REGAL_enable",
-#endif
-#ifdef GL_REGAL_error_string
- "GL_REGAL_error_string",
-#endif
-#ifdef GL_REGAL_extension_query
- "GL_REGAL_extension_query",
-#endif
-#ifdef GL_REGAL_log
- "GL_REGAL_log",
-#endif
-#ifdef GL_REGAL_proc_address
- "GL_REGAL_proc_address",
-#endif
-#ifdef GL_REND_screen_coordinates
- "GL_REND_screen_coordinates",
-#endif
-#ifdef GL_S3_s3tc
- "GL_S3_s3tc",
-#endif
-#ifdef GL_SGIS_clip_band_hint
- "GL_SGIS_clip_band_hint",
-#endif
-#ifdef GL_SGIS_color_range
- "GL_SGIS_color_range",
-#endif
-#ifdef GL_SGIS_detail_texture
- "GL_SGIS_detail_texture",
-#endif
-#ifdef GL_SGIS_fog_function
- "GL_SGIS_fog_function",
-#endif
-#ifdef GL_SGIS_generate_mipmap
- "GL_SGIS_generate_mipmap",
-#endif
-#ifdef GL_SGIS_line_texgen
- "GL_SGIS_line_texgen",
-#endif
-#ifdef GL_SGIS_multisample
- "GL_SGIS_multisample",
-#endif
-#ifdef GL_SGIS_multitexture
- "GL_SGIS_multitexture",
-#endif
-#ifdef GL_SGIS_pixel_texture
- "GL_SGIS_pixel_texture",
-#endif
-#ifdef GL_SGIS_point_line_texgen
- "GL_SGIS_point_line_texgen",
-#endif
-#ifdef GL_SGIS_shared_multisample
- "GL_SGIS_shared_multisample",
-#endif
-#ifdef GL_SGIS_sharpen_texture
- "GL_SGIS_sharpen_texture",
-#endif
-#ifdef GL_SGIS_texture4D
- "GL_SGIS_texture4D",
-#endif
-#ifdef GL_SGIS_texture_border_clamp
- "GL_SGIS_texture_border_clamp",
-#endif
-#ifdef GL_SGIS_texture_edge_clamp
- "GL_SGIS_texture_edge_clamp",
-#endif
-#ifdef GL_SGIS_texture_filter4
- "GL_SGIS_texture_filter4",
-#endif
-#ifdef GL_SGIS_texture_lod
- "GL_SGIS_texture_lod",
-#endif
-#ifdef GL_SGIS_texture_select
- "GL_SGIS_texture_select",
-#endif
-#ifdef GL_SGIX_async
- "GL_SGIX_async",
-#endif
-#ifdef GL_SGIX_async_histogram
- "GL_SGIX_async_histogram",
-#endif
-#ifdef GL_SGIX_async_pixel
- "GL_SGIX_async_pixel",
-#endif
-#ifdef GL_SGIX_bali_g_instruments
- "GL_SGIX_bali_g_instruments",
-#endif
-#ifdef GL_SGIX_bali_r_instruments
- "GL_SGIX_bali_r_instruments",
-#endif
-#ifdef GL_SGIX_bali_timer_instruments
- "GL_SGIX_bali_timer_instruments",
-#endif
-#ifdef GL_SGIX_blend_alpha_minmax
- "GL_SGIX_blend_alpha_minmax",
-#endif
-#ifdef GL_SGIX_blend_cadd
- "GL_SGIX_blend_cadd",
-#endif
-#ifdef GL_SGIX_blend_cmultiply
- "GL_SGIX_blend_cmultiply",
-#endif
-#ifdef GL_SGIX_calligraphic_fragment
- "GL_SGIX_calligraphic_fragment",
-#endif
-#ifdef GL_SGIX_clipmap
- "GL_SGIX_clipmap",
-#endif
-#ifdef GL_SGIX_color_matrix_accuracy
- "GL_SGIX_color_matrix_accuracy",
-#endif
-#ifdef GL_SGIX_color_table_index_mode
- "GL_SGIX_color_table_index_mode",
-#endif
-#ifdef GL_SGIX_complex_polar
- "GL_SGIX_complex_polar",
-#endif
-#ifdef GL_SGIX_convolution_accuracy
- "GL_SGIX_convolution_accuracy",
-#endif
-#ifdef GL_SGIX_cube_map
- "GL_SGIX_cube_map",
-#endif
-#ifdef GL_SGIX_cylinder_texgen
- "GL_SGIX_cylinder_texgen",
-#endif
-#ifdef GL_SGIX_datapipe
- "GL_SGIX_datapipe",
-#endif
-#ifdef GL_SGIX_decimation
- "GL_SGIX_decimation",
-#endif
-#ifdef GL_SGIX_depth_pass_instrument
- "GL_SGIX_depth_pass_instrument",
-#endif
-#ifdef GL_SGIX_depth_texture
- "GL_SGIX_depth_texture",
-#endif
-#ifdef GL_SGIX_dvc
- "GL_SGIX_dvc",
-#endif
-#ifdef GL_SGIX_flush_raster
- "GL_SGIX_flush_raster",
-#endif
-#ifdef GL_SGIX_fog_blend
- "GL_SGIX_fog_blend",
-#endif
-#ifdef GL_SGIX_fog_factor_to_alpha
- "GL_SGIX_fog_factor_to_alpha",
-#endif
-#ifdef GL_SGIX_fog_layers
- "GL_SGIX_fog_layers",
-#endif
-#ifdef GL_SGIX_fog_offset
- "GL_SGIX_fog_offset",
-#endif
-#ifdef GL_SGIX_fog_patchy
- "GL_SGIX_fog_patchy",
-#endif
-#ifdef GL_SGIX_fog_scale
- "GL_SGIX_fog_scale",
-#endif
-#ifdef GL_SGIX_fog_texture
- "GL_SGIX_fog_texture",
-#endif
-#ifdef GL_SGIX_fragment_lighting_space
- "GL_SGIX_fragment_lighting_space",
-#endif
-#ifdef GL_SGIX_fragment_specular_lighting
- "GL_SGIX_fragment_specular_lighting",
-#endif
-#ifdef GL_SGIX_fragments_instrument
- "GL_SGIX_fragments_instrument",
-#endif
-#ifdef GL_SGIX_framezoom
- "GL_SGIX_framezoom",
-#endif
-#ifdef GL_SGIX_icc_texture
- "GL_SGIX_icc_texture",
-#endif
-#ifdef GL_SGIX_igloo_interface
- "GL_SGIX_igloo_interface",
-#endif
-#ifdef GL_SGIX_image_compression
- "GL_SGIX_image_compression",
-#endif
-#ifdef GL_SGIX_impact_pixel_texture
- "GL_SGIX_impact_pixel_texture",
-#endif
-#ifdef GL_SGIX_instrument_error
- "GL_SGIX_instrument_error",
-#endif
-#ifdef GL_SGIX_interlace
- "GL_SGIX_interlace",
-#endif
-#ifdef GL_SGIX_ir_instrument1
- "GL_SGIX_ir_instrument1",
-#endif
-#ifdef GL_SGIX_line_quality_hint
- "GL_SGIX_line_quality_hint",
-#endif
-#ifdef GL_SGIX_list_priority
- "GL_SGIX_list_priority",
-#endif
-#ifdef GL_SGIX_mpeg1
- "GL_SGIX_mpeg1",
-#endif
-#ifdef GL_SGIX_mpeg2
- "GL_SGIX_mpeg2",
-#endif
-#ifdef GL_SGIX_nonlinear_lighting_pervertex
- "GL_SGIX_nonlinear_lighting_pervertex",
-#endif
-#ifdef GL_SGIX_nurbs_eval
- "GL_SGIX_nurbs_eval",
-#endif
-#ifdef GL_SGIX_occlusion_instrument
- "GL_SGIX_occlusion_instrument",
-#endif
-#ifdef GL_SGIX_packed_6bytes
- "GL_SGIX_packed_6bytes",
-#endif
-#ifdef GL_SGIX_pixel_texture
- "GL_SGIX_pixel_texture",
-#endif
-#ifdef GL_SGIX_pixel_texture_bits
- "GL_SGIX_pixel_texture_bits",
-#endif
-#ifdef GL_SGIX_pixel_texture_lod
- "GL_SGIX_pixel_texture_lod",
-#endif
-#ifdef GL_SGIX_pixel_tiles
- "GL_SGIX_pixel_tiles",
-#endif
-#ifdef GL_SGIX_polynomial_ffd
- "GL_SGIX_polynomial_ffd",
-#endif
-#ifdef GL_SGIX_quad_mesh
- "GL_SGIX_quad_mesh",
-#endif
-#ifdef GL_SGIX_reference_plane
- "GL_SGIX_reference_plane",
-#endif
-#ifdef GL_SGIX_resample
- "GL_SGIX_resample",
-#endif
-#ifdef GL_SGIX_scalebias_hint
- "GL_SGIX_scalebias_hint",
-#endif
-#ifdef GL_SGIX_shadow
- "GL_SGIX_shadow",
-#endif
-#ifdef GL_SGIX_shadow_ambient
- "GL_SGIX_shadow_ambient",
-#endif
-#ifdef GL_SGIX_slim
- "GL_SGIX_slim",
-#endif
-#ifdef GL_SGIX_spotlight_cutoff
- "GL_SGIX_spotlight_cutoff",
-#endif
-#ifdef GL_SGIX_sprite
- "GL_SGIX_sprite",
-#endif
-#ifdef GL_SGIX_subdiv_patch
- "GL_SGIX_subdiv_patch",
-#endif
-#ifdef GL_SGIX_subsample
- "GL_SGIX_subsample",
-#endif
-#ifdef GL_SGIX_tag_sample_buffer
- "GL_SGIX_tag_sample_buffer",
-#endif
-#ifdef GL_SGIX_texture_add_env
- "GL_SGIX_texture_add_env",
-#endif
-#ifdef GL_SGIX_texture_coordinate_clamp
- "GL_SGIX_texture_coordinate_clamp",
-#endif
-#ifdef GL_SGIX_texture_lod_bias
- "GL_SGIX_texture_lod_bias",
-#endif
-#ifdef GL_SGIX_texture_mipmap_anisotropic
- "GL_SGIX_texture_mipmap_anisotropic",
-#endif
-#ifdef GL_SGIX_texture_multi_buffer
- "GL_SGIX_texture_multi_buffer",
-#endif
-#ifdef GL_SGIX_texture_phase
- "GL_SGIX_texture_phase",
-#endif
-#ifdef GL_SGIX_texture_range
- "GL_SGIX_texture_range",
-#endif
-#ifdef GL_SGIX_texture_scale_bias
- "GL_SGIX_texture_scale_bias",
-#endif
-#ifdef GL_SGIX_texture_supersample
- "GL_SGIX_texture_supersample",
-#endif
-#ifdef GL_SGIX_vector_ops
- "GL_SGIX_vector_ops",
-#endif
-#ifdef GL_SGIX_vertex_array_object
- "GL_SGIX_vertex_array_object",
-#endif
-#ifdef GL_SGIX_vertex_preclip
- "GL_SGIX_vertex_preclip",
-#endif
-#ifdef GL_SGIX_vertex_preclip_hint
- "GL_SGIX_vertex_preclip_hint",
-#endif
-#ifdef GL_SGIX_ycrcb
- "GL_SGIX_ycrcb",
-#endif
-#ifdef GL_SGIX_ycrcb_subsample
- "GL_SGIX_ycrcb_subsample",
-#endif
-#ifdef GL_SGIX_ycrcba
- "GL_SGIX_ycrcba",
-#endif
-#ifdef GL_SGI_color_matrix
- "GL_SGI_color_matrix",
-#endif
-#ifdef GL_SGI_color_table
- "GL_SGI_color_table",
-#endif
-#ifdef GL_SGI_complex
- "GL_SGI_complex",
-#endif
-#ifdef GL_SGI_complex_type
- "GL_SGI_complex_type",
-#endif
-#ifdef GL_SGI_fft
- "GL_SGI_fft",
-#endif
-#ifdef GL_SGI_texture_color_table
- "GL_SGI_texture_color_table",
-#endif
-#ifdef GL_SUNX_constant_data
- "GL_SUNX_constant_data",
-#endif
-#ifdef GL_SUN_convolution_border_modes
- "GL_SUN_convolution_border_modes",
-#endif
-#ifdef GL_SUN_global_alpha
- "GL_SUN_global_alpha",
-#endif
-#ifdef GL_SUN_mesh_array
- "GL_SUN_mesh_array",
-#endif
-#ifdef GL_SUN_read_video_pixels
- "GL_SUN_read_video_pixels",
-#endif
-#ifdef GL_SUN_slice_accum
- "GL_SUN_slice_accum",
-#endif
-#ifdef GL_SUN_triangle_list
- "GL_SUN_triangle_list",
-#endif
-#ifdef GL_SUN_vertex
- "GL_SUN_vertex",
-#endif
-#ifdef GL_VERSION_1_2
- "GL_VERSION_1_2",
-#endif
-#ifdef GL_VERSION_1_2_1
- "GL_VERSION_1_2_1",
-#endif
-#ifdef GL_VERSION_1_3
- "GL_VERSION_1_3",
-#endif
-#ifdef GL_VERSION_1_4
- "GL_VERSION_1_4",
-#endif
-#ifdef GL_VERSION_1_5
- "GL_VERSION_1_5",
-#endif
-#ifdef GL_VERSION_2_0
- "GL_VERSION_2_0",
-#endif
-#ifdef GL_VERSION_2_1
- "GL_VERSION_2_1",
-#endif
-#ifdef GL_VERSION_3_0
- "GL_VERSION_3_0",
-#endif
-#ifdef GL_VERSION_3_1
- "GL_VERSION_3_1",
-#endif
-#ifdef GL_VERSION_3_2
- "GL_VERSION_3_2",
-#endif
-#ifdef GL_VERSION_3_3
- "GL_VERSION_3_3",
-#endif
-#ifdef GL_VERSION_4_0
- "GL_VERSION_4_0",
-#endif
-#ifdef GL_VERSION_4_1
- "GL_VERSION_4_1",
-#endif
-#ifdef GL_VERSION_4_2
- "GL_VERSION_4_2",
-#endif
-#ifdef GL_VERSION_4_3
- "GL_VERSION_4_3",
-#endif
-#ifdef GL_VERSION_4_4
- "GL_VERSION_4_4",
-#endif
-#ifdef GL_VERSION_4_5
- "GL_VERSION_4_5",
-#endif
-#ifdef GL_VERSION_4_6
- "GL_VERSION_4_6",
-#endif
-#ifdef GL_VIV_shader_binary
- "GL_VIV_shader_binary",
-#endif
-#ifdef GL_WIN_phong_shading
- "GL_WIN_phong_shading",
-#endif
-#ifdef GL_WIN_scene_markerXXX
- "GL_WIN_scene_markerXXX",
-#endif
-#ifdef GL_WIN_specular_fog
- "GL_WIN_specular_fog",
-#endif
-#ifdef GL_WIN_swap_hint
- "GL_WIN_swap_hint",
-#endif
- NULL
-};
-
-
-/* Detected in the extension string or strings */
-static GLboolean _glewExtensionString[931];
-/* Detected via extension string or experimental mode */
-static GLboolean* _glewExtensionEnabled[] = {
-#ifdef GL_3DFX_multisample
- &__GLEW_3DFX_multisample,
-#endif
-#ifdef GL_3DFX_tbuffer
- &__GLEW_3DFX_tbuffer,
-#endif
-#ifdef GL_3DFX_texture_compression_FXT1
- &__GLEW_3DFX_texture_compression_FXT1,
-#endif
-#ifdef GL_AMD_blend_minmax_factor
- &__GLEW_AMD_blend_minmax_factor,
-#endif
-#ifdef GL_AMD_compressed_3DC_texture
- &__GLEW_AMD_compressed_3DC_texture,
-#endif
-#ifdef GL_AMD_compressed_ATC_texture
- &__GLEW_AMD_compressed_ATC_texture,
-#endif
-#ifdef GL_AMD_conservative_depth
- &__GLEW_AMD_conservative_depth,
-#endif
-#ifdef GL_AMD_debug_output
- &__GLEW_AMD_debug_output,
-#endif
-#ifdef GL_AMD_depth_clamp_separate
- &__GLEW_AMD_depth_clamp_separate,
-#endif
-#ifdef GL_AMD_draw_buffers_blend
- &__GLEW_AMD_draw_buffers_blend,
-#endif
-#ifdef GL_AMD_framebuffer_multisample_advanced
- &__GLEW_AMD_framebuffer_multisample_advanced,
-#endif
-#ifdef GL_AMD_framebuffer_sample_positions
- &__GLEW_AMD_framebuffer_sample_positions,
-#endif
-#ifdef GL_AMD_gcn_shader
- &__GLEW_AMD_gcn_shader,
-#endif
-#ifdef GL_AMD_gpu_shader_half_float
- &__GLEW_AMD_gpu_shader_half_float,
-#endif
-#ifdef GL_AMD_gpu_shader_half_float_fetch
- &__GLEW_AMD_gpu_shader_half_float_fetch,
-#endif
-#ifdef GL_AMD_gpu_shader_int16
- &__GLEW_AMD_gpu_shader_int16,
-#endif
-#ifdef GL_AMD_gpu_shader_int64
- &__GLEW_AMD_gpu_shader_int64,
-#endif
-#ifdef GL_AMD_interleaved_elements
- &__GLEW_AMD_interleaved_elements,
-#endif
-#ifdef GL_AMD_multi_draw_indirect
- &__GLEW_AMD_multi_draw_indirect,
-#endif
-#ifdef GL_AMD_name_gen_delete
- &__GLEW_AMD_name_gen_delete,
-#endif
-#ifdef GL_AMD_occlusion_query_event
- &__GLEW_AMD_occlusion_query_event,
-#endif
-#ifdef GL_AMD_performance_monitor
- &__GLEW_AMD_performance_monitor,
-#endif
-#ifdef GL_AMD_pinned_memory
- &__GLEW_AMD_pinned_memory,
-#endif
-#ifdef GL_AMD_program_binary_Z400
- &__GLEW_AMD_program_binary_Z400,
-#endif
-#ifdef GL_AMD_query_buffer_object
- &__GLEW_AMD_query_buffer_object,
-#endif
-#ifdef GL_AMD_sample_positions
- &__GLEW_AMD_sample_positions,
-#endif
-#ifdef GL_AMD_seamless_cubemap_per_texture
- &__GLEW_AMD_seamless_cubemap_per_texture,
-#endif
-#ifdef GL_AMD_shader_atomic_counter_ops
- &__GLEW_AMD_shader_atomic_counter_ops,
-#endif
-#ifdef GL_AMD_shader_ballot
- &__GLEW_AMD_shader_ballot,
-#endif
-#ifdef GL_AMD_shader_explicit_vertex_parameter
- &__GLEW_AMD_shader_explicit_vertex_parameter,
-#endif
-#ifdef GL_AMD_shader_image_load_store_lod
- &__GLEW_AMD_shader_image_load_store_lod,
-#endif
-#ifdef GL_AMD_shader_stencil_export
- &__GLEW_AMD_shader_stencil_export,
-#endif
-#ifdef GL_AMD_shader_stencil_value_export
- &__GLEW_AMD_shader_stencil_value_export,
-#endif
-#ifdef GL_AMD_shader_trinary_minmax
- &__GLEW_AMD_shader_trinary_minmax,
-#endif
-#ifdef GL_AMD_sparse_texture
- &__GLEW_AMD_sparse_texture,
-#endif
-#ifdef GL_AMD_stencil_operation_extended
- &__GLEW_AMD_stencil_operation_extended,
-#endif
-#ifdef GL_AMD_texture_gather_bias_lod
- &__GLEW_AMD_texture_gather_bias_lod,
-#endif
-#ifdef GL_AMD_texture_texture4
- &__GLEW_AMD_texture_texture4,
-#endif
-#ifdef GL_AMD_transform_feedback3_lines_triangles
- &__GLEW_AMD_transform_feedback3_lines_triangles,
-#endif
-#ifdef GL_AMD_transform_feedback4
- &__GLEW_AMD_transform_feedback4,
-#endif
-#ifdef GL_AMD_vertex_shader_layer
- &__GLEW_AMD_vertex_shader_layer,
-#endif
-#ifdef GL_AMD_vertex_shader_tessellator
- &__GLEW_AMD_vertex_shader_tessellator,
-#endif
-#ifdef GL_AMD_vertex_shader_viewport_index
- &__GLEW_AMD_vertex_shader_viewport_index,
-#endif
-#ifdef GL_ANDROID_extension_pack_es31a
- &__GLEW_ANDROID_extension_pack_es31a,
-#endif
-#ifdef GL_ANGLE_depth_texture
- &__GLEW_ANGLE_depth_texture,
-#endif
-#ifdef GL_ANGLE_framebuffer_blit
- &__GLEW_ANGLE_framebuffer_blit,
-#endif
-#ifdef GL_ANGLE_framebuffer_multisample
- &__GLEW_ANGLE_framebuffer_multisample,
-#endif
-#ifdef GL_ANGLE_instanced_arrays
- &__GLEW_ANGLE_instanced_arrays,
-#endif
-#ifdef GL_ANGLE_pack_reverse_row_order
- &__GLEW_ANGLE_pack_reverse_row_order,
-#endif
-#ifdef GL_ANGLE_program_binary
- &__GLEW_ANGLE_program_binary,
-#endif
-#ifdef GL_ANGLE_texture_compression_dxt1
- &__GLEW_ANGLE_texture_compression_dxt1,
-#endif
-#ifdef GL_ANGLE_texture_compression_dxt3
- &__GLEW_ANGLE_texture_compression_dxt3,
-#endif
-#ifdef GL_ANGLE_texture_compression_dxt5
- &__GLEW_ANGLE_texture_compression_dxt5,
-#endif
-#ifdef GL_ANGLE_texture_usage
- &__GLEW_ANGLE_texture_usage,
-#endif
-#ifdef GL_ANGLE_timer_query
- &__GLEW_ANGLE_timer_query,
-#endif
-#ifdef GL_ANGLE_translated_shader_source
- &__GLEW_ANGLE_translated_shader_source,
-#endif
-#ifdef GL_APPLE_aux_depth_stencil
- &__GLEW_APPLE_aux_depth_stencil,
-#endif
-#ifdef GL_APPLE_client_storage
- &__GLEW_APPLE_client_storage,
-#endif
-#ifdef GL_APPLE_clip_distance
- &__GLEW_APPLE_clip_distance,
-#endif
-#ifdef GL_APPLE_color_buffer_packed_float
- &__GLEW_APPLE_color_buffer_packed_float,
-#endif
-#ifdef GL_APPLE_copy_texture_levels
- &__GLEW_APPLE_copy_texture_levels,
-#endif
-#ifdef GL_APPLE_element_array
- &__GLEW_APPLE_element_array,
-#endif
-#ifdef GL_APPLE_fence
- &__GLEW_APPLE_fence,
-#endif
-#ifdef GL_APPLE_float_pixels
- &__GLEW_APPLE_float_pixels,
-#endif
-#ifdef GL_APPLE_flush_buffer_range
- &__GLEW_APPLE_flush_buffer_range,
-#endif
-#ifdef GL_APPLE_framebuffer_multisample
- &__GLEW_APPLE_framebuffer_multisample,
-#endif
-#ifdef GL_APPLE_object_purgeable
- &__GLEW_APPLE_object_purgeable,
-#endif
-#ifdef GL_APPLE_pixel_buffer
- &__GLEW_APPLE_pixel_buffer,
-#endif
-#ifdef GL_APPLE_rgb_422
- &__GLEW_APPLE_rgb_422,
-#endif
-#ifdef GL_APPLE_row_bytes
- &__GLEW_APPLE_row_bytes,
-#endif
-#ifdef GL_APPLE_specular_vector
- &__GLEW_APPLE_specular_vector,
-#endif
-#ifdef GL_APPLE_sync
- &__GLEW_APPLE_sync,
-#endif
-#ifdef GL_APPLE_texture_2D_limited_npot
- &__GLEW_APPLE_texture_2D_limited_npot,
-#endif
-#ifdef GL_APPLE_texture_format_BGRA8888
- &__GLEW_APPLE_texture_format_BGRA8888,
-#endif
-#ifdef GL_APPLE_texture_max_level
- &__GLEW_APPLE_texture_max_level,
-#endif
-#ifdef GL_APPLE_texture_packed_float
- &__GLEW_APPLE_texture_packed_float,
-#endif
-#ifdef GL_APPLE_texture_range
- &__GLEW_APPLE_texture_range,
-#endif
-#ifdef GL_APPLE_transform_hint
- &__GLEW_APPLE_transform_hint,
-#endif
-#ifdef GL_APPLE_vertex_array_object
- &__GLEW_APPLE_vertex_array_object,
-#endif
-#ifdef GL_APPLE_vertex_array_range
- &__GLEW_APPLE_vertex_array_range,
-#endif
-#ifdef GL_APPLE_vertex_program_evaluators
- &__GLEW_APPLE_vertex_program_evaluators,
-#endif
-#ifdef GL_APPLE_ycbcr_422
- &__GLEW_APPLE_ycbcr_422,
-#endif
-#ifdef GL_ARB_ES2_compatibility
- &__GLEW_ARB_ES2_compatibility,
-#endif
-#ifdef GL_ARB_ES3_1_compatibility
- &__GLEW_ARB_ES3_1_compatibility,
-#endif
-#ifdef GL_ARB_ES3_2_compatibility
- &__GLEW_ARB_ES3_2_compatibility,
-#endif
-#ifdef GL_ARB_ES3_compatibility
- &__GLEW_ARB_ES3_compatibility,
-#endif
-#ifdef GL_ARB_arrays_of_arrays
- &__GLEW_ARB_arrays_of_arrays,
-#endif
-#ifdef GL_ARB_base_instance
- &__GLEW_ARB_base_instance,
-#endif
-#ifdef GL_ARB_bindless_texture
- &__GLEW_ARB_bindless_texture,
-#endif
-#ifdef GL_ARB_blend_func_extended
- &__GLEW_ARB_blend_func_extended,
-#endif
-#ifdef GL_ARB_buffer_storage
- &__GLEW_ARB_buffer_storage,
-#endif
-#ifdef GL_ARB_cl_event
- &__GLEW_ARB_cl_event,
-#endif
-#ifdef GL_ARB_clear_buffer_object
- &__GLEW_ARB_clear_buffer_object,
-#endif
-#ifdef GL_ARB_clear_texture
- &__GLEW_ARB_clear_texture,
-#endif
-#ifdef GL_ARB_clip_control
- &__GLEW_ARB_clip_control,
-#endif
-#ifdef GL_ARB_color_buffer_float
- &__GLEW_ARB_color_buffer_float,
-#endif
-#ifdef GL_ARB_compatibility
- &__GLEW_ARB_compatibility,
-#endif
-#ifdef GL_ARB_compressed_texture_pixel_storage
- &__GLEW_ARB_compressed_texture_pixel_storage,
-#endif
-#ifdef GL_ARB_compute_shader
- &__GLEW_ARB_compute_shader,
-#endif
-#ifdef GL_ARB_compute_variable_group_size
- &__GLEW_ARB_compute_variable_group_size,
-#endif
-#ifdef GL_ARB_conditional_render_inverted
- &__GLEW_ARB_conditional_render_inverted,
-#endif
-#ifdef GL_ARB_conservative_depth
- &__GLEW_ARB_conservative_depth,
-#endif
-#ifdef GL_ARB_copy_buffer
- &__GLEW_ARB_copy_buffer,
-#endif
-#ifdef GL_ARB_copy_image
- &__GLEW_ARB_copy_image,
-#endif
-#ifdef GL_ARB_cull_distance
- &__GLEW_ARB_cull_distance,
-#endif
-#ifdef GL_ARB_debug_output
- &__GLEW_ARB_debug_output,
-#endif
-#ifdef GL_ARB_depth_buffer_float
- &__GLEW_ARB_depth_buffer_float,
-#endif
-#ifdef GL_ARB_depth_clamp
- &__GLEW_ARB_depth_clamp,
-#endif
-#ifdef GL_ARB_depth_texture
- &__GLEW_ARB_depth_texture,
-#endif
-#ifdef GL_ARB_derivative_control
- &__GLEW_ARB_derivative_control,
-#endif
-#ifdef GL_ARB_direct_state_access
- &__GLEW_ARB_direct_state_access,
-#endif
-#ifdef GL_ARB_draw_buffers
- &__GLEW_ARB_draw_buffers,
-#endif
-#ifdef GL_ARB_draw_buffers_blend
- &__GLEW_ARB_draw_buffers_blend,
-#endif
-#ifdef GL_ARB_draw_elements_base_vertex
- &__GLEW_ARB_draw_elements_base_vertex,
-#endif
-#ifdef GL_ARB_draw_indirect
- &__GLEW_ARB_draw_indirect,
-#endif
-#ifdef GL_ARB_draw_instanced
- &__GLEW_ARB_draw_instanced,
-#endif
-#ifdef GL_ARB_enhanced_layouts
- &__GLEW_ARB_enhanced_layouts,
-#endif
-#ifdef GL_ARB_explicit_attrib_location
- &__GLEW_ARB_explicit_attrib_location,
-#endif
-#ifdef GL_ARB_explicit_uniform_location
- &__GLEW_ARB_explicit_uniform_location,
-#endif
-#ifdef GL_ARB_fragment_coord_conventions
- &__GLEW_ARB_fragment_coord_conventions,
-#endif
-#ifdef GL_ARB_fragment_layer_viewport
- &__GLEW_ARB_fragment_layer_viewport,
-#endif
-#ifdef GL_ARB_fragment_program
- &__GLEW_ARB_fragment_program,
-#endif
-#ifdef GL_ARB_fragment_program_shadow
- &__GLEW_ARB_fragment_program_shadow,
-#endif
-#ifdef GL_ARB_fragment_shader
- &__GLEW_ARB_fragment_shader,
-#endif
-#ifdef GL_ARB_fragment_shader_interlock
- &__GLEW_ARB_fragment_shader_interlock,
-#endif
-#ifdef GL_ARB_framebuffer_no_attachments
- &__GLEW_ARB_framebuffer_no_attachments,
-#endif
-#ifdef GL_ARB_framebuffer_object
- &__GLEW_ARB_framebuffer_object,
-#endif
-#ifdef GL_ARB_framebuffer_sRGB
- &__GLEW_ARB_framebuffer_sRGB,
-#endif
-#ifdef GL_ARB_geometry_shader4
- &__GLEW_ARB_geometry_shader4,
-#endif
-#ifdef GL_ARB_get_program_binary
- &__GLEW_ARB_get_program_binary,
-#endif
-#ifdef GL_ARB_get_texture_sub_image
- &__GLEW_ARB_get_texture_sub_image,
-#endif
-#ifdef GL_ARB_gl_spirv
- &__GLEW_ARB_gl_spirv,
-#endif
-#ifdef GL_ARB_gpu_shader5
- &__GLEW_ARB_gpu_shader5,
-#endif
-#ifdef GL_ARB_gpu_shader_fp64
- &__GLEW_ARB_gpu_shader_fp64,
-#endif
-#ifdef GL_ARB_gpu_shader_int64
- &__GLEW_ARB_gpu_shader_int64,
-#endif
-#ifdef GL_ARB_half_float_pixel
- &__GLEW_ARB_half_float_pixel,
-#endif
-#ifdef GL_ARB_half_float_vertex
- &__GLEW_ARB_half_float_vertex,
-#endif
-#ifdef GL_ARB_imaging
- &__GLEW_ARB_imaging,
-#endif
-#ifdef GL_ARB_indirect_parameters
- &__GLEW_ARB_indirect_parameters,
-#endif
-#ifdef GL_ARB_instanced_arrays
- &__GLEW_ARB_instanced_arrays,
-#endif
-#ifdef GL_ARB_internalformat_query
- &__GLEW_ARB_internalformat_query,
-#endif
-#ifdef GL_ARB_internalformat_query2
- &__GLEW_ARB_internalformat_query2,
-#endif
-#ifdef GL_ARB_invalidate_subdata
- &__GLEW_ARB_invalidate_subdata,
-#endif
-#ifdef GL_ARB_map_buffer_alignment
- &__GLEW_ARB_map_buffer_alignment,
-#endif
-#ifdef GL_ARB_map_buffer_range
- &__GLEW_ARB_map_buffer_range,
-#endif
-#ifdef GL_ARB_matrix_palette
- &__GLEW_ARB_matrix_palette,
-#endif
-#ifdef GL_ARB_multi_bind
- &__GLEW_ARB_multi_bind,
-#endif
-#ifdef GL_ARB_multi_draw_indirect
- &__GLEW_ARB_multi_draw_indirect,
-#endif
-#ifdef GL_ARB_multisample
- &__GLEW_ARB_multisample,
-#endif
-#ifdef GL_ARB_multitexture
- &__GLEW_ARB_multitexture,
-#endif
-#ifdef GL_ARB_occlusion_query
- &__GLEW_ARB_occlusion_query,
-#endif
-#ifdef GL_ARB_occlusion_query2
- &__GLEW_ARB_occlusion_query2,
-#endif
-#ifdef GL_ARB_parallel_shader_compile
- &__GLEW_ARB_parallel_shader_compile,
-#endif
-#ifdef GL_ARB_pipeline_statistics_query
- &__GLEW_ARB_pipeline_statistics_query,
-#endif
-#ifdef GL_ARB_pixel_buffer_object
- &__GLEW_ARB_pixel_buffer_object,
-#endif
-#ifdef GL_ARB_point_parameters
- &__GLEW_ARB_point_parameters,
-#endif
-#ifdef GL_ARB_point_sprite
- &__GLEW_ARB_point_sprite,
-#endif
-#ifdef GL_ARB_polygon_offset_clamp
- &__GLEW_ARB_polygon_offset_clamp,
-#endif
-#ifdef GL_ARB_post_depth_coverage
- &__GLEW_ARB_post_depth_coverage,
-#endif
-#ifdef GL_ARB_program_interface_query
- &__GLEW_ARB_program_interface_query,
-#endif
-#ifdef GL_ARB_provoking_vertex
- &__GLEW_ARB_provoking_vertex,
-#endif
-#ifdef GL_ARB_query_buffer_object
- &__GLEW_ARB_query_buffer_object,
-#endif
-#ifdef GL_ARB_robust_buffer_access_behavior
- &__GLEW_ARB_robust_buffer_access_behavior,
-#endif
-#ifdef GL_ARB_robustness
- &__GLEW_ARB_robustness,
-#endif
-#ifdef GL_ARB_robustness_application_isolation
- &__GLEW_ARB_robustness_application_isolation,
-#endif
-#ifdef GL_ARB_robustness_share_group_isolation
- &__GLEW_ARB_robustness_share_group_isolation,
-#endif
-#ifdef GL_ARB_sample_locations
- &__GLEW_ARB_sample_locations,
-#endif
-#ifdef GL_ARB_sample_shading
- &__GLEW_ARB_sample_shading,
-#endif
-#ifdef GL_ARB_sampler_objects
- &__GLEW_ARB_sampler_objects,
-#endif
-#ifdef GL_ARB_seamless_cube_map
- &__GLEW_ARB_seamless_cube_map,
-#endif
-#ifdef GL_ARB_seamless_cubemap_per_texture
- &__GLEW_ARB_seamless_cubemap_per_texture,
-#endif
-#ifdef GL_ARB_separate_shader_objects
- &__GLEW_ARB_separate_shader_objects,
-#endif
-#ifdef GL_ARB_shader_atomic_counter_ops
- &__GLEW_ARB_shader_atomic_counter_ops,
-#endif
-#ifdef GL_ARB_shader_atomic_counters
- &__GLEW_ARB_shader_atomic_counters,
-#endif
-#ifdef GL_ARB_shader_ballot
- &__GLEW_ARB_shader_ballot,
-#endif
-#ifdef GL_ARB_shader_bit_encoding
- &__GLEW_ARB_shader_bit_encoding,
-#endif
-#ifdef GL_ARB_shader_clock
- &__GLEW_ARB_shader_clock,
-#endif
-#ifdef GL_ARB_shader_draw_parameters
- &__GLEW_ARB_shader_draw_parameters,
-#endif
-#ifdef GL_ARB_shader_group_vote
- &__GLEW_ARB_shader_group_vote,
-#endif
-#ifdef GL_ARB_shader_image_load_store
- &__GLEW_ARB_shader_image_load_store,
-#endif
-#ifdef GL_ARB_shader_image_size
- &__GLEW_ARB_shader_image_size,
-#endif
-#ifdef GL_ARB_shader_objects
- &__GLEW_ARB_shader_objects,
-#endif
-#ifdef GL_ARB_shader_precision
- &__GLEW_ARB_shader_precision,
-#endif
-#ifdef GL_ARB_shader_stencil_export
- &__GLEW_ARB_shader_stencil_export,
-#endif
-#ifdef GL_ARB_shader_storage_buffer_object
- &__GLEW_ARB_shader_storage_buffer_object,
-#endif
-#ifdef GL_ARB_shader_subroutine
- &__GLEW_ARB_shader_subroutine,
-#endif
-#ifdef GL_ARB_shader_texture_image_samples
- &__GLEW_ARB_shader_texture_image_samples,
-#endif
-#ifdef GL_ARB_shader_texture_lod
- &__GLEW_ARB_shader_texture_lod,
-#endif
-#ifdef GL_ARB_shader_viewport_layer_array
- &__GLEW_ARB_shader_viewport_layer_array,
-#endif
-#ifdef GL_ARB_shading_language_100
- &__GLEW_ARB_shading_language_100,
-#endif
-#ifdef GL_ARB_shading_language_420pack
- &__GLEW_ARB_shading_language_420pack,
-#endif
-#ifdef GL_ARB_shading_language_include
- &__GLEW_ARB_shading_language_include,
-#endif
-#ifdef GL_ARB_shading_language_packing
- &__GLEW_ARB_shading_language_packing,
-#endif
-#ifdef GL_ARB_shadow
- &__GLEW_ARB_shadow,
-#endif
-#ifdef GL_ARB_shadow_ambient
- &__GLEW_ARB_shadow_ambient,
-#endif
-#ifdef GL_ARB_sparse_buffer
- &__GLEW_ARB_sparse_buffer,
-#endif
-#ifdef GL_ARB_sparse_texture
- &__GLEW_ARB_sparse_texture,
-#endif
-#ifdef GL_ARB_sparse_texture2
- &__GLEW_ARB_sparse_texture2,
-#endif
-#ifdef GL_ARB_sparse_texture_clamp
- &__GLEW_ARB_sparse_texture_clamp,
-#endif
-#ifdef GL_ARB_spirv_extensions
- &__GLEW_ARB_spirv_extensions,
-#endif
-#ifdef GL_ARB_stencil_texturing
- &__GLEW_ARB_stencil_texturing,
-#endif
-#ifdef GL_ARB_sync
- &__GLEW_ARB_sync,
-#endif
-#ifdef GL_ARB_tessellation_shader
- &__GLEW_ARB_tessellation_shader,
-#endif
-#ifdef GL_ARB_texture_barrier
- &__GLEW_ARB_texture_barrier,
-#endif
-#ifdef GL_ARB_texture_border_clamp
- &__GLEW_ARB_texture_border_clamp,
-#endif
-#ifdef GL_ARB_texture_buffer_object
- &__GLEW_ARB_texture_buffer_object,
-#endif
-#ifdef GL_ARB_texture_buffer_object_rgb32
- &__GLEW_ARB_texture_buffer_object_rgb32,
-#endif
-#ifdef GL_ARB_texture_buffer_range
- &__GLEW_ARB_texture_buffer_range,
-#endif
-#ifdef GL_ARB_texture_compression
- &__GLEW_ARB_texture_compression,
-#endif
-#ifdef GL_ARB_texture_compression_bptc
- &__GLEW_ARB_texture_compression_bptc,
-#endif
-#ifdef GL_ARB_texture_compression_rgtc
- &__GLEW_ARB_texture_compression_rgtc,
-#endif
-#ifdef GL_ARB_texture_cube_map
- &__GLEW_ARB_texture_cube_map,
-#endif
-#ifdef GL_ARB_texture_cube_map_array
- &__GLEW_ARB_texture_cube_map_array,
-#endif
-#ifdef GL_ARB_texture_env_add
- &__GLEW_ARB_texture_env_add,
-#endif
-#ifdef GL_ARB_texture_env_combine
- &__GLEW_ARB_texture_env_combine,
-#endif
-#ifdef GL_ARB_texture_env_crossbar
- &__GLEW_ARB_texture_env_crossbar,
-#endif
-#ifdef GL_ARB_texture_env_dot3
- &__GLEW_ARB_texture_env_dot3,
-#endif
-#ifdef GL_ARB_texture_filter_anisotropic
- &__GLEW_ARB_texture_filter_anisotropic,
-#endif
-#ifdef GL_ARB_texture_filter_minmax
- &__GLEW_ARB_texture_filter_minmax,
-#endif
-#ifdef GL_ARB_texture_float
- &__GLEW_ARB_texture_float,
-#endif
-#ifdef GL_ARB_texture_gather
- &__GLEW_ARB_texture_gather,
-#endif
-#ifdef GL_ARB_texture_mirror_clamp_to_edge
- &__GLEW_ARB_texture_mirror_clamp_to_edge,
-#endif
-#ifdef GL_ARB_texture_mirrored_repeat
- &__GLEW_ARB_texture_mirrored_repeat,
-#endif
-#ifdef GL_ARB_texture_multisample
- &__GLEW_ARB_texture_multisample,
-#endif
-#ifdef GL_ARB_texture_non_power_of_two
- &__GLEW_ARB_texture_non_power_of_two,
-#endif
-#ifdef GL_ARB_texture_query_levels
- &__GLEW_ARB_texture_query_levels,
-#endif
-#ifdef GL_ARB_texture_query_lod
- &__GLEW_ARB_texture_query_lod,
-#endif
-#ifdef GL_ARB_texture_rectangle
- &__GLEW_ARB_texture_rectangle,
-#endif
-#ifdef GL_ARB_texture_rg
- &__GLEW_ARB_texture_rg,
-#endif
-#ifdef GL_ARB_texture_rgb10_a2ui
- &__GLEW_ARB_texture_rgb10_a2ui,
-#endif
-#ifdef GL_ARB_texture_stencil8
- &__GLEW_ARB_texture_stencil8,
-#endif
-#ifdef GL_ARB_texture_storage
- &__GLEW_ARB_texture_storage,
-#endif
-#ifdef GL_ARB_texture_storage_multisample
- &__GLEW_ARB_texture_storage_multisample,
-#endif
-#ifdef GL_ARB_texture_swizzle
- &__GLEW_ARB_texture_swizzle,
-#endif
-#ifdef GL_ARB_texture_view
- &__GLEW_ARB_texture_view,
-#endif
-#ifdef GL_ARB_timer_query
- &__GLEW_ARB_timer_query,
-#endif
-#ifdef GL_ARB_transform_feedback2
- &__GLEW_ARB_transform_feedback2,
-#endif
-#ifdef GL_ARB_transform_feedback3
- &__GLEW_ARB_transform_feedback3,
-#endif
-#ifdef GL_ARB_transform_feedback_instanced
- &__GLEW_ARB_transform_feedback_instanced,
-#endif
-#ifdef GL_ARB_transform_feedback_overflow_query
- &__GLEW_ARB_transform_feedback_overflow_query,
-#endif
-#ifdef GL_ARB_transpose_matrix
- &__GLEW_ARB_transpose_matrix,
-#endif
-#ifdef GL_ARB_uniform_buffer_object
- &__GLEW_ARB_uniform_buffer_object,
-#endif
-#ifdef GL_ARB_vertex_array_bgra
- &__GLEW_ARB_vertex_array_bgra,
-#endif
-#ifdef GL_ARB_vertex_array_object
- &__GLEW_ARB_vertex_array_object,
-#endif
-#ifdef GL_ARB_vertex_attrib_64bit
- &__GLEW_ARB_vertex_attrib_64bit,
-#endif
-#ifdef GL_ARB_vertex_attrib_binding
- &__GLEW_ARB_vertex_attrib_binding,
-#endif
-#ifdef GL_ARB_vertex_blend
- &__GLEW_ARB_vertex_blend,
-#endif
-#ifdef GL_ARB_vertex_buffer_object
- &__GLEW_ARB_vertex_buffer_object,
-#endif
-#ifdef GL_ARB_vertex_program
- &__GLEW_ARB_vertex_program,
-#endif
-#ifdef GL_ARB_vertex_shader
- &__GLEW_ARB_vertex_shader,
-#endif
-#ifdef GL_ARB_vertex_type_10f_11f_11f_rev
- &__GLEW_ARB_vertex_type_10f_11f_11f_rev,
-#endif
-#ifdef GL_ARB_vertex_type_2_10_10_10_rev
- &__GLEW_ARB_vertex_type_2_10_10_10_rev,
-#endif
-#ifdef GL_ARB_viewport_array
- &__GLEW_ARB_viewport_array,
-#endif
-#ifdef GL_ARB_window_pos
- &__GLEW_ARB_window_pos,
-#endif
-#ifdef GL_ARM_mali_program_binary
- &__GLEW_ARM_mali_program_binary,
-#endif
-#ifdef GL_ARM_mali_shader_binary
- &__GLEW_ARM_mali_shader_binary,
-#endif
-#ifdef GL_ARM_rgba8
- &__GLEW_ARM_rgba8,
-#endif
-#ifdef GL_ARM_shader_framebuffer_fetch
- &__GLEW_ARM_shader_framebuffer_fetch,
-#endif
-#ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil
- &__GLEW_ARM_shader_framebuffer_fetch_depth_stencil,
-#endif
-#ifdef GL_ARM_texture_unnormalized_coordinates
- &__GLEW_ARM_texture_unnormalized_coordinates,
-#endif
-#ifdef GL_ATIX_point_sprites
- &__GLEW_ATIX_point_sprites,
-#endif
-#ifdef GL_ATIX_texture_env_combine3
- &__GLEW_ATIX_texture_env_combine3,
-#endif
-#ifdef GL_ATIX_texture_env_route
- &__GLEW_ATIX_texture_env_route,
-#endif
-#ifdef GL_ATIX_vertex_shader_output_point_size
- &__GLEW_ATIX_vertex_shader_output_point_size,
-#endif
-#ifdef GL_ATI_draw_buffers
- &__GLEW_ATI_draw_buffers,
-#endif
-#ifdef GL_ATI_element_array
- &__GLEW_ATI_element_array,
-#endif
-#ifdef GL_ATI_envmap_bumpmap
- &__GLEW_ATI_envmap_bumpmap,
-#endif
-#ifdef GL_ATI_fragment_shader
- &__GLEW_ATI_fragment_shader,
-#endif
-#ifdef GL_ATI_map_object_buffer
- &__GLEW_ATI_map_object_buffer,
-#endif
-#ifdef GL_ATI_meminfo
- &__GLEW_ATI_meminfo,
-#endif
-#ifdef GL_ATI_pn_triangles
- &__GLEW_ATI_pn_triangles,
-#endif
-#ifdef GL_ATI_separate_stencil
- &__GLEW_ATI_separate_stencil,
-#endif
-#ifdef GL_ATI_shader_texture_lod
- &__GLEW_ATI_shader_texture_lod,
-#endif
-#ifdef GL_ATI_text_fragment_shader
- &__GLEW_ATI_text_fragment_shader,
-#endif
-#ifdef GL_ATI_texture_compression_3dc
- &__GLEW_ATI_texture_compression_3dc,
-#endif
-#ifdef GL_ATI_texture_env_combine3
- &__GLEW_ATI_texture_env_combine3,
-#endif
-#ifdef GL_ATI_texture_float
- &__GLEW_ATI_texture_float,
-#endif
-#ifdef GL_ATI_texture_mirror_once
- &__GLEW_ATI_texture_mirror_once,
-#endif
-#ifdef GL_ATI_vertex_array_object
- &__GLEW_ATI_vertex_array_object,
-#endif
-#ifdef GL_ATI_vertex_attrib_array_object
- &__GLEW_ATI_vertex_attrib_array_object,
-#endif
-#ifdef GL_ATI_vertex_streams
- &__GLEW_ATI_vertex_streams,
-#endif
-#ifdef GL_DMP_program_binary
- &__GLEW_DMP_program_binary,
-#endif
-#ifdef GL_DMP_shader_binary
- &__GLEW_DMP_shader_binary,
-#endif
-#ifdef GL_EXT_422_pixels
- &__GLEW_EXT_422_pixels,
-#endif
-#ifdef GL_EXT_Cg_shader
- &__GLEW_EXT_Cg_shader,
-#endif
-#ifdef GL_EXT_EGL_image_array
- &__GLEW_EXT_EGL_image_array,
-#endif
-#ifdef GL_EXT_EGL_image_external_wrap_modes
- &__GLEW_EXT_EGL_image_external_wrap_modes,
-#endif
-#ifdef GL_EXT_EGL_image_storage
- &__GLEW_EXT_EGL_image_storage,
-#endif
-#ifdef GL_EXT_EGL_sync
- &__GLEW_EXT_EGL_sync,
-#endif
-#ifdef GL_EXT_YUV_target
- &__GLEW_EXT_YUV_target,
-#endif
-#ifdef GL_EXT_abgr
- &__GLEW_EXT_abgr,
-#endif
-#ifdef GL_EXT_base_instance
- &__GLEW_EXT_base_instance,
-#endif
-#ifdef GL_EXT_bgra
- &__GLEW_EXT_bgra,
-#endif
-#ifdef GL_EXT_bindable_uniform
- &__GLEW_EXT_bindable_uniform,
-#endif
-#ifdef GL_EXT_blend_color
- &__GLEW_EXT_blend_color,
-#endif
-#ifdef GL_EXT_blend_equation_separate
- &__GLEW_EXT_blend_equation_separate,
-#endif
-#ifdef GL_EXT_blend_func_extended
- &__GLEW_EXT_blend_func_extended,
-#endif
-#ifdef GL_EXT_blend_func_separate
- &__GLEW_EXT_blend_func_separate,
-#endif
-#ifdef GL_EXT_blend_logic_op
- &__GLEW_EXT_blend_logic_op,
-#endif
-#ifdef GL_EXT_blend_minmax
- &__GLEW_EXT_blend_minmax,
-#endif
-#ifdef GL_EXT_blend_subtract
- &__GLEW_EXT_blend_subtract,
-#endif
-#ifdef GL_EXT_buffer_storage
- &__GLEW_EXT_buffer_storage,
-#endif
-#ifdef GL_EXT_clear_texture
- &__GLEW_EXT_clear_texture,
-#endif
-#ifdef GL_EXT_clip_control
- &__GLEW_EXT_clip_control,
-#endif
-#ifdef GL_EXT_clip_cull_distance
- &__GLEW_EXT_clip_cull_distance,
-#endif
-#ifdef GL_EXT_clip_volume_hint
- &__GLEW_EXT_clip_volume_hint,
-#endif
-#ifdef GL_EXT_cmyka
- &__GLEW_EXT_cmyka,
-#endif
-#ifdef GL_EXT_color_buffer_float
- &__GLEW_EXT_color_buffer_float,
-#endif
-#ifdef GL_EXT_color_buffer_half_float
- &__GLEW_EXT_color_buffer_half_float,
-#endif
-#ifdef GL_EXT_color_subtable
- &__GLEW_EXT_color_subtable,
-#endif
-#ifdef GL_EXT_compiled_vertex_array
- &__GLEW_EXT_compiled_vertex_array,
-#endif
-#ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture
- &__GLEW_EXT_compressed_ETC1_RGB8_sub_texture,
-#endif
-#ifdef GL_EXT_conservative_depth
- &__GLEW_EXT_conservative_depth,
-#endif
-#ifdef GL_EXT_convolution
- &__GLEW_EXT_convolution,
-#endif
-#ifdef GL_EXT_coordinate_frame
- &__GLEW_EXT_coordinate_frame,
-#endif
-#ifdef GL_EXT_copy_image
- &__GLEW_EXT_copy_image,
-#endif
-#ifdef GL_EXT_copy_texture
- &__GLEW_EXT_copy_texture,
-#endif
-#ifdef GL_EXT_cull_vertex
- &__GLEW_EXT_cull_vertex,
-#endif
-#ifdef GL_EXT_debug_label
- &__GLEW_EXT_debug_label,
-#endif
-#ifdef GL_EXT_debug_marker
- &__GLEW_EXT_debug_marker,
-#endif
-#ifdef GL_EXT_depth_bounds_test
- &__GLEW_EXT_depth_bounds_test,
-#endif
-#ifdef GL_EXT_depth_clamp
- &__GLEW_EXT_depth_clamp,
-#endif
-#ifdef GL_EXT_direct_state_access
- &__GLEW_EXT_direct_state_access,
-#endif
-#ifdef GL_EXT_discard_framebuffer
- &__GLEW_EXT_discard_framebuffer,
-#endif
-#ifdef GL_EXT_disjoint_timer_query
- &__GLEW_EXT_disjoint_timer_query,
-#endif
-#ifdef GL_EXT_draw_buffers
- &__GLEW_EXT_draw_buffers,
-#endif
-#ifdef GL_EXT_draw_buffers2
- &__GLEW_EXT_draw_buffers2,
-#endif
-#ifdef GL_EXT_draw_buffers_indexed
- &__GLEW_EXT_draw_buffers_indexed,
-#endif
-#ifdef GL_EXT_draw_elements_base_vertex
- &__GLEW_EXT_draw_elements_base_vertex,
-#endif
-#ifdef GL_EXT_draw_instanced
- &__GLEW_EXT_draw_instanced,
-#endif
-#ifdef GL_EXT_draw_range_elements
- &__GLEW_EXT_draw_range_elements,
-#endif
-#ifdef GL_EXT_draw_transform_feedback
- &__GLEW_EXT_draw_transform_feedback,
-#endif
-#ifdef GL_EXT_external_buffer
- &__GLEW_EXT_external_buffer,
-#endif
-#ifdef GL_EXT_float_blend
- &__GLEW_EXT_float_blend,
-#endif
-#ifdef GL_EXT_fog_coord
- &__GLEW_EXT_fog_coord,
-#endif
-#ifdef GL_EXT_frag_depth
- &__GLEW_EXT_frag_depth,
-#endif
-#ifdef GL_EXT_fragment_lighting
- &__GLEW_EXT_fragment_lighting,
-#endif
-#ifdef GL_EXT_framebuffer_blit
- &__GLEW_EXT_framebuffer_blit,
-#endif
-#ifdef GL_EXT_framebuffer_multisample
- &__GLEW_EXT_framebuffer_multisample,
-#endif
-#ifdef GL_EXT_framebuffer_multisample_blit_scaled
- &__GLEW_EXT_framebuffer_multisample_blit_scaled,
-#endif
-#ifdef GL_EXT_framebuffer_object
- &__GLEW_EXT_framebuffer_object,
-#endif
-#ifdef GL_EXT_framebuffer_sRGB
- &__GLEW_EXT_framebuffer_sRGB,
-#endif
-#ifdef GL_EXT_geometry_point_size
- &__GLEW_EXT_geometry_point_size,
-#endif
-#ifdef GL_EXT_geometry_shader
- &__GLEW_EXT_geometry_shader,
-#endif
-#ifdef GL_EXT_geometry_shader4
- &__GLEW_EXT_geometry_shader4,
-#endif
-#ifdef GL_EXT_gpu_program_parameters
- &__GLEW_EXT_gpu_program_parameters,
-#endif
-#ifdef GL_EXT_gpu_shader4
- &__GLEW_EXT_gpu_shader4,
-#endif
-#ifdef GL_EXT_gpu_shader5
- &__GLEW_EXT_gpu_shader5,
-#endif
-#ifdef GL_EXT_histogram
- &__GLEW_EXT_histogram,
-#endif
-#ifdef GL_EXT_index_array_formats
- &__GLEW_EXT_index_array_formats,
-#endif
-#ifdef GL_EXT_index_func
- &__GLEW_EXT_index_func,
-#endif
-#ifdef GL_EXT_index_material
- &__GLEW_EXT_index_material,
-#endif
-#ifdef GL_EXT_index_texture
- &__GLEW_EXT_index_texture,
-#endif
-#ifdef GL_EXT_instanced_arrays
- &__GLEW_EXT_instanced_arrays,
-#endif
-#ifdef GL_EXT_light_texture
- &__GLEW_EXT_light_texture,
-#endif
-#ifdef GL_EXT_map_buffer_range
- &__GLEW_EXT_map_buffer_range,
-#endif
-#ifdef GL_EXT_memory_object
- &__GLEW_EXT_memory_object,
-#endif
-#ifdef GL_EXT_memory_object_fd
- &__GLEW_EXT_memory_object_fd,
-#endif
-#ifdef GL_EXT_memory_object_win32
- &__GLEW_EXT_memory_object_win32,
-#endif
-#ifdef GL_EXT_misc_attribute
- &__GLEW_EXT_misc_attribute,
-#endif
-#ifdef GL_EXT_multi_draw_arrays
- &__GLEW_EXT_multi_draw_arrays,
-#endif
-#ifdef GL_EXT_multi_draw_indirect
- &__GLEW_EXT_multi_draw_indirect,
-#endif
-#ifdef GL_EXT_multiple_textures
- &__GLEW_EXT_multiple_textures,
-#endif
-#ifdef GL_EXT_multisample
- &__GLEW_EXT_multisample,
-#endif
-#ifdef GL_EXT_multisample_compatibility
- &__GLEW_EXT_multisample_compatibility,
-#endif
-#ifdef GL_EXT_multisampled_render_to_texture
- &__GLEW_EXT_multisampled_render_to_texture,
-#endif
-#ifdef GL_EXT_multisampled_render_to_texture2
- &__GLEW_EXT_multisampled_render_to_texture2,
-#endif
-#ifdef GL_EXT_multiview_draw_buffers
- &__GLEW_EXT_multiview_draw_buffers,
-#endif
-#ifdef GL_EXT_multiview_tessellation_geometry_shader
- &__GLEW_EXT_multiview_tessellation_geometry_shader,
-#endif
-#ifdef GL_EXT_multiview_texture_multisample
- &__GLEW_EXT_multiview_texture_multisample,
-#endif
-#ifdef GL_EXT_multiview_timer_query
- &__GLEW_EXT_multiview_timer_query,
-#endif
-#ifdef GL_EXT_occlusion_query_boolean
- &__GLEW_EXT_occlusion_query_boolean,
-#endif
-#ifdef GL_EXT_packed_depth_stencil
- &__GLEW_EXT_packed_depth_stencil,
-#endif
-#ifdef GL_EXT_packed_float
- &__GLEW_EXT_packed_float,
-#endif
-#ifdef GL_EXT_packed_pixels
- &__GLEW_EXT_packed_pixels,
-#endif
-#ifdef GL_EXT_paletted_texture
- &__GLEW_EXT_paletted_texture,
-#endif
-#ifdef GL_EXT_pixel_buffer_object
- &__GLEW_EXT_pixel_buffer_object,
-#endif
-#ifdef GL_EXT_pixel_transform
- &__GLEW_EXT_pixel_transform,
-#endif
-#ifdef GL_EXT_pixel_transform_color_table
- &__GLEW_EXT_pixel_transform_color_table,
-#endif
-#ifdef GL_EXT_point_parameters
- &__GLEW_EXT_point_parameters,
-#endif
-#ifdef GL_EXT_polygon_offset
- &__GLEW_EXT_polygon_offset,
-#endif
-#ifdef GL_EXT_polygon_offset_clamp
- &__GLEW_EXT_polygon_offset_clamp,
-#endif
-#ifdef GL_EXT_post_depth_coverage
- &__GLEW_EXT_post_depth_coverage,
-#endif
-#ifdef GL_EXT_primitive_bounding_box
- &__GLEW_EXT_primitive_bounding_box,
-#endif
-#ifdef GL_EXT_protected_textures
- &__GLEW_EXT_protected_textures,
-#endif
-#ifdef GL_EXT_provoking_vertex
- &__GLEW_EXT_provoking_vertex,
-#endif
-#ifdef GL_EXT_pvrtc_sRGB
- &__GLEW_EXT_pvrtc_sRGB,
-#endif
-#ifdef GL_EXT_raster_multisample
- &__GLEW_EXT_raster_multisample,
-#endif
-#ifdef GL_EXT_read_format_bgra
- &__GLEW_EXT_read_format_bgra,
-#endif
-#ifdef GL_EXT_render_snorm
- &__GLEW_EXT_render_snorm,
-#endif
-#ifdef GL_EXT_rescale_normal
- &__GLEW_EXT_rescale_normal,
-#endif
-#ifdef GL_EXT_robustness
- &__GLEW_EXT_robustness,
-#endif
-#ifdef GL_EXT_sRGB
- &__GLEW_EXT_sRGB,
-#endif
-#ifdef GL_EXT_sRGB_write_control
- &__GLEW_EXT_sRGB_write_control,
-#endif
-#ifdef GL_EXT_scene_marker
- &__GLEW_EXT_scene_marker,
-#endif
-#ifdef GL_EXT_secondary_color
- &__GLEW_EXT_secondary_color,
-#endif
-#ifdef GL_EXT_semaphore
- &__GLEW_EXT_semaphore,
-#endif
-#ifdef GL_EXT_semaphore_fd
- &__GLEW_EXT_semaphore_fd,
-#endif
-#ifdef GL_EXT_semaphore_win32
- &__GLEW_EXT_semaphore_win32,
-#endif
-#ifdef GL_EXT_separate_shader_objects
- &__GLEW_EXT_separate_shader_objects,
-#endif
-#ifdef GL_EXT_separate_specular_color
- &__GLEW_EXT_separate_specular_color,
-#endif
-#ifdef GL_EXT_shader_framebuffer_fetch
- &__GLEW_EXT_shader_framebuffer_fetch,
-#endif
-#ifdef GL_EXT_shader_framebuffer_fetch_non_coherent
- &__GLEW_EXT_shader_framebuffer_fetch_non_coherent,
-#endif
-#ifdef GL_EXT_shader_group_vote
- &__GLEW_EXT_shader_group_vote,
-#endif
-#ifdef GL_EXT_shader_image_load_formatted
- &__GLEW_EXT_shader_image_load_formatted,
-#endif
-#ifdef GL_EXT_shader_image_load_store
- &__GLEW_EXT_shader_image_load_store,
-#endif
-#ifdef GL_EXT_shader_implicit_conversions
- &__GLEW_EXT_shader_implicit_conversions,
-#endif
-#ifdef GL_EXT_shader_integer_mix
- &__GLEW_EXT_shader_integer_mix,
-#endif
-#ifdef GL_EXT_shader_io_blocks
- &__GLEW_EXT_shader_io_blocks,
-#endif
-#ifdef GL_EXT_shader_non_constant_global_initializers
- &__GLEW_EXT_shader_non_constant_global_initializers,
-#endif
-#ifdef GL_EXT_shader_pixel_local_storage
- &__GLEW_EXT_shader_pixel_local_storage,
-#endif
-#ifdef GL_EXT_shader_pixel_local_storage2
- &__GLEW_EXT_shader_pixel_local_storage2,
-#endif
-#ifdef GL_EXT_shader_texture_lod
- &__GLEW_EXT_shader_texture_lod,
-#endif
-#ifdef GL_EXT_shadow_funcs
- &__GLEW_EXT_shadow_funcs,
-#endif
-#ifdef GL_EXT_shadow_samplers
- &__GLEW_EXT_shadow_samplers,
-#endif
-#ifdef GL_EXT_shared_texture_palette
- &__GLEW_EXT_shared_texture_palette,
-#endif
-#ifdef GL_EXT_sparse_texture
- &__GLEW_EXT_sparse_texture,
-#endif
-#ifdef GL_EXT_sparse_texture2
- &__GLEW_EXT_sparse_texture2,
-#endif
-#ifdef GL_EXT_static_vertex_array
- &__GLEW_EXT_static_vertex_array,
-#endif
-#ifdef GL_EXT_stencil_clear_tag
- &__GLEW_EXT_stencil_clear_tag,
-#endif
-#ifdef GL_EXT_stencil_two_side
- &__GLEW_EXT_stencil_two_side,
-#endif
-#ifdef GL_EXT_stencil_wrap
- &__GLEW_EXT_stencil_wrap,
-#endif
-#ifdef GL_EXT_subtexture
- &__GLEW_EXT_subtexture,
-#endif
-#ifdef GL_EXT_tessellation_point_size
- &__GLEW_EXT_tessellation_point_size,
-#endif
-#ifdef GL_EXT_tessellation_shader
- &__GLEW_EXT_tessellation_shader,
-#endif
-#ifdef GL_EXT_texture
- &__GLEW_EXT_texture,
-#endif
-#ifdef GL_EXT_texture3D
- &__GLEW_EXT_texture3D,
-#endif
-#ifdef GL_EXT_texture_array
- &__GLEW_EXT_texture_array,
-#endif
-#ifdef GL_EXT_texture_border_clamp
- &__GLEW_EXT_texture_border_clamp,
-#endif
-#ifdef GL_EXT_texture_buffer
- &__GLEW_EXT_texture_buffer,
-#endif
-#ifdef GL_EXT_texture_buffer_object
- &__GLEW_EXT_texture_buffer_object,
-#endif
-#ifdef GL_EXT_texture_compression_astc_decode_mode
- &__GLEW_EXT_texture_compression_astc_decode_mode,
-#endif
-#ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5
- &__GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5,
-#endif
-#ifdef GL_EXT_texture_compression_bptc
- &__GLEW_EXT_texture_compression_bptc,
-#endif
-#ifdef GL_EXT_texture_compression_dxt1
- &__GLEW_EXT_texture_compression_dxt1,
-#endif
-#ifdef GL_EXT_texture_compression_latc
- &__GLEW_EXT_texture_compression_latc,
-#endif
-#ifdef GL_EXT_texture_compression_rgtc
- &__GLEW_EXT_texture_compression_rgtc,
-#endif
-#ifdef GL_EXT_texture_compression_s3tc
- &__GLEW_EXT_texture_compression_s3tc,
-#endif
-#ifdef GL_EXT_texture_compression_s3tc_srgb
- &__GLEW_EXT_texture_compression_s3tc_srgb,
-#endif
-#ifdef GL_EXT_texture_cube_map
- &__GLEW_EXT_texture_cube_map,
-#endif
-#ifdef GL_EXT_texture_cube_map_array
- &__GLEW_EXT_texture_cube_map_array,
-#endif
-#ifdef GL_EXT_texture_edge_clamp
- &__GLEW_EXT_texture_edge_clamp,
-#endif
-#ifdef GL_EXT_texture_env
- &__GLEW_EXT_texture_env,
-#endif
-#ifdef GL_EXT_texture_env_add
- &__GLEW_EXT_texture_env_add,
-#endif
-#ifdef GL_EXT_texture_env_combine
- &__GLEW_EXT_texture_env_combine,
-#endif
-#ifdef GL_EXT_texture_env_dot3
- &__GLEW_EXT_texture_env_dot3,
-#endif
-#ifdef GL_EXT_texture_filter_anisotropic
- &__GLEW_EXT_texture_filter_anisotropic,
-#endif
-#ifdef GL_EXT_texture_filter_minmax
- &__GLEW_EXT_texture_filter_minmax,
-#endif
-#ifdef GL_EXT_texture_format_BGRA8888
- &__GLEW_EXT_texture_format_BGRA8888,
-#endif
-#ifdef GL_EXT_texture_format_sRGB_override
- &__GLEW_EXT_texture_format_sRGB_override,
-#endif
-#ifdef GL_EXT_texture_integer
- &__GLEW_EXT_texture_integer,
-#endif
-#ifdef GL_EXT_texture_lod_bias
- &__GLEW_EXT_texture_lod_bias,
-#endif
-#ifdef GL_EXT_texture_mirror_clamp
- &__GLEW_EXT_texture_mirror_clamp,
-#endif
-#ifdef GL_EXT_texture_mirror_clamp_to_edge
- &__GLEW_EXT_texture_mirror_clamp_to_edge,
-#endif
-#ifdef GL_EXT_texture_norm16
- &__GLEW_EXT_texture_norm16,
-#endif
-#ifdef GL_EXT_texture_object
- &__GLEW_EXT_texture_object,
-#endif
-#ifdef GL_EXT_texture_perturb_normal
- &__GLEW_EXT_texture_perturb_normal,
-#endif
-#ifdef GL_EXT_texture_query_lod
- &__GLEW_EXT_texture_query_lod,
-#endif
-#ifdef GL_EXT_texture_rectangle
- &__GLEW_EXT_texture_rectangle,
-#endif
-#ifdef GL_EXT_texture_rg
- &__GLEW_EXT_texture_rg,
-#endif
-#ifdef GL_EXT_texture_sRGB
- &__GLEW_EXT_texture_sRGB,
-#endif
-#ifdef GL_EXT_texture_sRGB_R8
- &__GLEW_EXT_texture_sRGB_R8,
-#endif
-#ifdef GL_EXT_texture_sRGB_RG8
- &__GLEW_EXT_texture_sRGB_RG8,
-#endif
-#ifdef GL_EXT_texture_sRGB_decode
- &__GLEW_EXT_texture_sRGB_decode,
-#endif
-#ifdef GL_EXT_texture_shadow_lod
- &__GLEW_EXT_texture_shadow_lod,
-#endif
-#ifdef GL_EXT_texture_shared_exponent
- &__GLEW_EXT_texture_shared_exponent,
-#endif
-#ifdef GL_EXT_texture_snorm
- &__GLEW_EXT_texture_snorm,
-#endif
-#ifdef GL_EXT_texture_storage
- &__GLEW_EXT_texture_storage,
-#endif
-#ifdef GL_EXT_texture_swizzle
- &__GLEW_EXT_texture_swizzle,
-#endif
-#ifdef GL_EXT_texture_type_2_10_10_10_REV
- &__GLEW_EXT_texture_type_2_10_10_10_REV,
-#endif
-#ifdef GL_EXT_texture_view
- &__GLEW_EXT_texture_view,
-#endif
-#ifdef GL_EXT_timer_query
- &__GLEW_EXT_timer_query,
-#endif
-#ifdef GL_EXT_transform_feedback
- &__GLEW_EXT_transform_feedback,
-#endif
-#ifdef GL_EXT_unpack_subimage
- &__GLEW_EXT_unpack_subimage,
-#endif
-#ifdef GL_EXT_vertex_array
- &__GLEW_EXT_vertex_array,
-#endif
-#ifdef GL_EXT_vertex_array_bgra
- &__GLEW_EXT_vertex_array_bgra,
-#endif
-#ifdef GL_EXT_vertex_array_setXXX
- &__GLEW_EXT_vertex_array_setXXX,
-#endif
-#ifdef GL_EXT_vertex_attrib_64bit
- &__GLEW_EXT_vertex_attrib_64bit,
-#endif
-#ifdef GL_EXT_vertex_shader
- &__GLEW_EXT_vertex_shader,
-#endif
-#ifdef GL_EXT_vertex_weighting
- &__GLEW_EXT_vertex_weighting,
-#endif
-#ifdef GL_EXT_win32_keyed_mutex
- &__GLEW_EXT_win32_keyed_mutex,
-#endif
-#ifdef GL_EXT_window_rectangles
- &__GLEW_EXT_window_rectangles,
-#endif
-#ifdef GL_EXT_x11_sync_object
- &__GLEW_EXT_x11_sync_object,
-#endif
-#ifdef GL_FJ_shader_binary_GCCSO
- &__GLEW_FJ_shader_binary_GCCSO,
-#endif
-#ifdef GL_GREMEDY_frame_terminator
- &__GLEW_GREMEDY_frame_terminator,
-#endif
-#ifdef GL_GREMEDY_string_marker
- &__GLEW_GREMEDY_string_marker,
-#endif
-#ifdef GL_HP_convolution_border_modes
- &__GLEW_HP_convolution_border_modes,
-#endif
-#ifdef GL_HP_image_transform
- &__GLEW_HP_image_transform,
-#endif
-#ifdef GL_HP_occlusion_test
- &__GLEW_HP_occlusion_test,
-#endif
-#ifdef GL_HP_texture_lighting
- &__GLEW_HP_texture_lighting,
-#endif
-#ifdef GL_IBM_cull_vertex
- &__GLEW_IBM_cull_vertex,
-#endif
-#ifdef GL_IBM_multimode_draw_arrays
- &__GLEW_IBM_multimode_draw_arrays,
-#endif
-#ifdef GL_IBM_rasterpos_clip
- &__GLEW_IBM_rasterpos_clip,
-#endif
-#ifdef GL_IBM_static_data
- &__GLEW_IBM_static_data,
-#endif
-#ifdef GL_IBM_texture_mirrored_repeat
- &__GLEW_IBM_texture_mirrored_repeat,
-#endif
-#ifdef GL_IBM_vertex_array_lists
- &__GLEW_IBM_vertex_array_lists,
-#endif
-#ifdef GL_IMG_bindless_texture
- &__GLEW_IMG_bindless_texture,
-#endif
-#ifdef GL_IMG_framebuffer_downsample
- &__GLEW_IMG_framebuffer_downsample,
-#endif
-#ifdef GL_IMG_multisampled_render_to_texture
- &__GLEW_IMG_multisampled_render_to_texture,
-#endif
-#ifdef GL_IMG_program_binary
- &__GLEW_IMG_program_binary,
-#endif
-#ifdef GL_IMG_read_format
- &__GLEW_IMG_read_format,
-#endif
-#ifdef GL_IMG_shader_binary
- &__GLEW_IMG_shader_binary,
-#endif
-#ifdef GL_IMG_texture_compression_pvrtc
- &__GLEW_IMG_texture_compression_pvrtc,
-#endif
-#ifdef GL_IMG_texture_compression_pvrtc2
- &__GLEW_IMG_texture_compression_pvrtc2,
-#endif
-#ifdef GL_IMG_texture_env_enhanced_fixed_function
- &__GLEW_IMG_texture_env_enhanced_fixed_function,
-#endif
-#ifdef GL_IMG_texture_filter_cubic
- &__GLEW_IMG_texture_filter_cubic,
-#endif
-#ifdef GL_INGR_color_clamp
- &__GLEW_INGR_color_clamp,
-#endif
-#ifdef GL_INGR_interlace_read
- &__GLEW_INGR_interlace_read,
-#endif
-#ifdef GL_INTEL_blackhole_render
- &__GLEW_INTEL_blackhole_render,
-#endif
-#ifdef GL_INTEL_conservative_rasterization
- &__GLEW_INTEL_conservative_rasterization,
-#endif
-#ifdef GL_INTEL_fragment_shader_ordering
- &__GLEW_INTEL_fragment_shader_ordering,
-#endif
-#ifdef GL_INTEL_framebuffer_CMAA
- &__GLEW_INTEL_framebuffer_CMAA,
-#endif
-#ifdef GL_INTEL_map_texture
- &__GLEW_INTEL_map_texture,
-#endif
-#ifdef GL_INTEL_parallel_arrays
- &__GLEW_INTEL_parallel_arrays,
-#endif
-#ifdef GL_INTEL_performance_query
- &__GLEW_INTEL_performance_query,
-#endif
-#ifdef GL_INTEL_shader_integer_functions2
- &__GLEW_INTEL_shader_integer_functions2,
-#endif
-#ifdef GL_INTEL_texture_scissor
- &__GLEW_INTEL_texture_scissor,
-#endif
-#ifdef GL_KHR_blend_equation_advanced
- &__GLEW_KHR_blend_equation_advanced,
-#endif
-#ifdef GL_KHR_blend_equation_advanced_coherent
- &__GLEW_KHR_blend_equation_advanced_coherent,
-#endif
-#ifdef GL_KHR_context_flush_control
- &__GLEW_KHR_context_flush_control,
-#endif
-#ifdef GL_KHR_debug
- &__GLEW_KHR_debug,
-#endif
-#ifdef GL_KHR_no_error
- &__GLEW_KHR_no_error,
-#endif
-#ifdef GL_KHR_parallel_shader_compile
- &__GLEW_KHR_parallel_shader_compile,
-#endif
-#ifdef GL_KHR_robust_buffer_access_behavior
- &__GLEW_KHR_robust_buffer_access_behavior,
-#endif
-#ifdef GL_KHR_robustness
- &__GLEW_KHR_robustness,
-#endif
-#ifdef GL_KHR_shader_subgroup
- &__GLEW_KHR_shader_subgroup,
-#endif
-#ifdef GL_KHR_texture_compression_astc_hdr
- &__GLEW_KHR_texture_compression_astc_hdr,
-#endif
-#ifdef GL_KHR_texture_compression_astc_ldr
- &__GLEW_KHR_texture_compression_astc_ldr,
-#endif
-#ifdef GL_KHR_texture_compression_astc_sliced_3d
- &__GLEW_KHR_texture_compression_astc_sliced_3d,
-#endif
-#ifdef GL_KTX_buffer_region
- &__GLEW_KTX_buffer_region,
-#endif
-#ifdef GL_MESAX_texture_stack
- &__GLEW_MESAX_texture_stack,
-#endif
-#ifdef GL_MESA_framebuffer_flip_y
- &__GLEW_MESA_framebuffer_flip_y,
-#endif
-#ifdef GL_MESA_pack_invert
- &__GLEW_MESA_pack_invert,
-#endif
-#ifdef GL_MESA_program_binary_formats
- &__GLEW_MESA_program_binary_formats,
-#endif
-#ifdef GL_MESA_resize_buffers
- &__GLEW_MESA_resize_buffers,
-#endif
-#ifdef GL_MESA_shader_integer_functions
- &__GLEW_MESA_shader_integer_functions,
-#endif
-#ifdef GL_MESA_tile_raster_order
- &__GLEW_MESA_tile_raster_order,
-#endif
-#ifdef GL_MESA_window_pos
- &__GLEW_MESA_window_pos,
-#endif
-#ifdef GL_MESA_ycbcr_texture
- &__GLEW_MESA_ycbcr_texture,
-#endif
-#ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers
- &__GLEW_NVX_blend_equation_advanced_multi_draw_buffers,
-#endif
-#ifdef GL_NVX_conditional_render
- &__GLEW_NVX_conditional_render,
-#endif
-#ifdef GL_NVX_gpu_memory_info
- &__GLEW_NVX_gpu_memory_info,
-#endif
-#ifdef GL_NVX_gpu_multicast2
- &__GLEW_NVX_gpu_multicast2,
-#endif
-#ifdef GL_NVX_linked_gpu_multicast
- &__GLEW_NVX_linked_gpu_multicast,
-#endif
-#ifdef GL_NVX_progress_fence
- &__GLEW_NVX_progress_fence,
-#endif
-#ifdef GL_NV_3dvision_settings
- &__GLEW_NV_3dvision_settings,
-#endif
-#ifdef GL_NV_EGL_stream_consumer_external
- &__GLEW_NV_EGL_stream_consumer_external,
-#endif
-#ifdef GL_NV_alpha_to_coverage_dither_control
- &__GLEW_NV_alpha_to_coverage_dither_control,
-#endif
-#ifdef GL_NV_bgr
- &__GLEW_NV_bgr,
-#endif
-#ifdef GL_NV_bindless_multi_draw_indirect
- &__GLEW_NV_bindless_multi_draw_indirect,
-#endif
-#ifdef GL_NV_bindless_multi_draw_indirect_count
- &__GLEW_NV_bindless_multi_draw_indirect_count,
-#endif
-#ifdef GL_NV_bindless_texture
- &__GLEW_NV_bindless_texture,
-#endif
-#ifdef GL_NV_blend_equation_advanced
- &__GLEW_NV_blend_equation_advanced,
-#endif
-#ifdef GL_NV_blend_equation_advanced_coherent
- &__GLEW_NV_blend_equation_advanced_coherent,
-#endif
-#ifdef GL_NV_blend_minmax_factor
- &__GLEW_NV_blend_minmax_factor,
-#endif
-#ifdef GL_NV_blend_square
- &__GLEW_NV_blend_square,
-#endif
-#ifdef GL_NV_clip_space_w_scaling
- &__GLEW_NV_clip_space_w_scaling,
-#endif
-#ifdef GL_NV_command_list
- &__GLEW_NV_command_list,
-#endif
-#ifdef GL_NV_compute_program5
- &__GLEW_NV_compute_program5,
-#endif
-#ifdef GL_NV_compute_shader_derivatives
- &__GLEW_NV_compute_shader_derivatives,
-#endif
-#ifdef GL_NV_conditional_render
- &__GLEW_NV_conditional_render,
-#endif
-#ifdef GL_NV_conservative_raster
- &__GLEW_NV_conservative_raster,
-#endif
-#ifdef GL_NV_conservative_raster_dilate
- &__GLEW_NV_conservative_raster_dilate,
-#endif
-#ifdef GL_NV_conservative_raster_pre_snap
- &__GLEW_NV_conservative_raster_pre_snap,
-#endif
-#ifdef GL_NV_conservative_raster_pre_snap_triangles
- &__GLEW_NV_conservative_raster_pre_snap_triangles,
-#endif
-#ifdef GL_NV_conservative_raster_underestimation
- &__GLEW_NV_conservative_raster_underestimation,
-#endif
-#ifdef GL_NV_copy_buffer
- &__GLEW_NV_copy_buffer,
-#endif
-#ifdef GL_NV_copy_depth_to_color
- &__GLEW_NV_copy_depth_to_color,
-#endif
-#ifdef GL_NV_copy_image
- &__GLEW_NV_copy_image,
-#endif
-#ifdef GL_NV_deep_texture3D
- &__GLEW_NV_deep_texture3D,
-#endif
-#ifdef GL_NV_depth_buffer_float
- &__GLEW_NV_depth_buffer_float,
-#endif
-#ifdef GL_NV_depth_clamp
- &__GLEW_NV_depth_clamp,
-#endif
-#ifdef GL_NV_depth_nonlinear
- &__GLEW_NV_depth_nonlinear,
-#endif
-#ifdef GL_NV_depth_range_unclamped
- &__GLEW_NV_depth_range_unclamped,
-#endif
-#ifdef GL_NV_draw_buffers
- &__GLEW_NV_draw_buffers,
-#endif
-#ifdef GL_NV_draw_instanced
- &__GLEW_NV_draw_instanced,
-#endif
-#ifdef GL_NV_draw_texture
- &__GLEW_NV_draw_texture,
-#endif
-#ifdef GL_NV_draw_vulkan_image
- &__GLEW_NV_draw_vulkan_image,
-#endif
-#ifdef GL_NV_evaluators
- &__GLEW_NV_evaluators,
-#endif
-#ifdef GL_NV_explicit_attrib_location
- &__GLEW_NV_explicit_attrib_location,
-#endif
-#ifdef GL_NV_explicit_multisample
- &__GLEW_NV_explicit_multisample,
-#endif
-#ifdef GL_NV_fbo_color_attachments
- &__GLEW_NV_fbo_color_attachments,
-#endif
-#ifdef GL_NV_fence
- &__GLEW_NV_fence,
-#endif
-#ifdef GL_NV_fill_rectangle
- &__GLEW_NV_fill_rectangle,
-#endif
-#ifdef GL_NV_float_buffer
- &__GLEW_NV_float_buffer,
-#endif
-#ifdef GL_NV_fog_distance
- &__GLEW_NV_fog_distance,
-#endif
-#ifdef GL_NV_fragment_coverage_to_color
- &__GLEW_NV_fragment_coverage_to_color,
-#endif
-#ifdef GL_NV_fragment_program
- &__GLEW_NV_fragment_program,
-#endif
-#ifdef GL_NV_fragment_program2
- &__GLEW_NV_fragment_program2,
-#endif
-#ifdef GL_NV_fragment_program4
- &__GLEW_NV_fragment_program4,
-#endif
-#ifdef GL_NV_fragment_program_option
- &__GLEW_NV_fragment_program_option,
-#endif
-#ifdef GL_NV_fragment_shader_barycentric
- &__GLEW_NV_fragment_shader_barycentric,
-#endif
-#ifdef GL_NV_fragment_shader_interlock
- &__GLEW_NV_fragment_shader_interlock,
-#endif
-#ifdef GL_NV_framebuffer_blit
- &__GLEW_NV_framebuffer_blit,
-#endif
-#ifdef GL_NV_framebuffer_mixed_samples
- &__GLEW_NV_framebuffer_mixed_samples,
-#endif
-#ifdef GL_NV_framebuffer_multisample
- &__GLEW_NV_framebuffer_multisample,
-#endif
-#ifdef GL_NV_framebuffer_multisample_coverage
- &__GLEW_NV_framebuffer_multisample_coverage,
-#endif
-#ifdef GL_NV_generate_mipmap_sRGB
- &__GLEW_NV_generate_mipmap_sRGB,
-#endif
-#ifdef GL_NV_geometry_program4
- &__GLEW_NV_geometry_program4,
-#endif
-#ifdef GL_NV_geometry_shader4
- &__GLEW_NV_geometry_shader4,
-#endif
-#ifdef GL_NV_geometry_shader_passthrough
- &__GLEW_NV_geometry_shader_passthrough,
-#endif
-#ifdef GL_NV_gpu_multicast
- &__GLEW_NV_gpu_multicast,
-#endif
-#ifdef GL_NV_gpu_program4
- &__GLEW_NV_gpu_program4,
-#endif
-#ifdef GL_NV_gpu_program5
- &__GLEW_NV_gpu_program5,
-#endif
-#ifdef GL_NV_gpu_program5_mem_extended
- &__GLEW_NV_gpu_program5_mem_extended,
-#endif
-#ifdef GL_NV_gpu_program_fp64
- &__GLEW_NV_gpu_program_fp64,
-#endif
-#ifdef GL_NV_gpu_shader5
- &__GLEW_NV_gpu_shader5,
-#endif
-#ifdef GL_NV_half_float
- &__GLEW_NV_half_float,
-#endif
-#ifdef GL_NV_image_formats
- &__GLEW_NV_image_formats,
-#endif
-#ifdef GL_NV_instanced_arrays
- &__GLEW_NV_instanced_arrays,
-#endif
-#ifdef GL_NV_internalformat_sample_query
- &__GLEW_NV_internalformat_sample_query,
-#endif
-#ifdef GL_NV_light_max_exponent
- &__GLEW_NV_light_max_exponent,
-#endif
-#ifdef GL_NV_memory_attachment
- &__GLEW_NV_memory_attachment,
-#endif
-#ifdef GL_NV_mesh_shader
- &__GLEW_NV_mesh_shader,
-#endif
-#ifdef GL_NV_multisample_coverage
- &__GLEW_NV_multisample_coverage,
-#endif
-#ifdef GL_NV_multisample_filter_hint
- &__GLEW_NV_multisample_filter_hint,
-#endif
-#ifdef GL_NV_non_square_matrices
- &__GLEW_NV_non_square_matrices,
-#endif
-#ifdef GL_NV_occlusion_query
- &__GLEW_NV_occlusion_query,
-#endif
-#ifdef GL_NV_pack_subimage
- &__GLEW_NV_pack_subimage,
-#endif
-#ifdef GL_NV_packed_depth_stencil
- &__GLEW_NV_packed_depth_stencil,
-#endif
-#ifdef GL_NV_packed_float
- &__GLEW_NV_packed_float,
-#endif
-#ifdef GL_NV_packed_float_linear
- &__GLEW_NV_packed_float_linear,
-#endif
-#ifdef GL_NV_parameter_buffer_object
- &__GLEW_NV_parameter_buffer_object,
-#endif
-#ifdef GL_NV_parameter_buffer_object2
- &__GLEW_NV_parameter_buffer_object2,
-#endif
-#ifdef GL_NV_path_rendering
- &__GLEW_NV_path_rendering,
-#endif
-#ifdef GL_NV_path_rendering_shared_edge
- &__GLEW_NV_path_rendering_shared_edge,
-#endif
-#ifdef GL_NV_pixel_buffer_object
- &__GLEW_NV_pixel_buffer_object,
-#endif
-#ifdef GL_NV_pixel_data_range
- &__GLEW_NV_pixel_data_range,
-#endif
-#ifdef GL_NV_platform_binary
- &__GLEW_NV_platform_binary,
-#endif
-#ifdef GL_NV_point_sprite
- &__GLEW_NV_point_sprite,
-#endif
-#ifdef GL_NV_polygon_mode
- &__GLEW_NV_polygon_mode,
-#endif
-#ifdef GL_NV_present_video
- &__GLEW_NV_present_video,
-#endif
-#ifdef GL_NV_primitive_restart
- &__GLEW_NV_primitive_restart,
-#endif
-#ifdef GL_NV_query_resource_tag
- &__GLEW_NV_query_resource_tag,
-#endif
-#ifdef GL_NV_read_buffer
- &__GLEW_NV_read_buffer,
-#endif
-#ifdef GL_NV_read_buffer_front
- &__GLEW_NV_read_buffer_front,
-#endif
-#ifdef GL_NV_read_depth
- &__GLEW_NV_read_depth,
-#endif
-#ifdef GL_NV_read_depth_stencil
- &__GLEW_NV_read_depth_stencil,
-#endif
-#ifdef GL_NV_read_stencil
- &__GLEW_NV_read_stencil,
-#endif
-#ifdef GL_NV_register_combiners
- &__GLEW_NV_register_combiners,
-#endif
-#ifdef GL_NV_register_combiners2
- &__GLEW_NV_register_combiners2,
-#endif
-#ifdef GL_NV_representative_fragment_test
- &__GLEW_NV_representative_fragment_test,
-#endif
-#ifdef GL_NV_robustness_video_memory_purge
- &__GLEW_NV_robustness_video_memory_purge,
-#endif
-#ifdef GL_NV_sRGB_formats
- &__GLEW_NV_sRGB_formats,
-#endif
-#ifdef GL_NV_sample_locations
- &__GLEW_NV_sample_locations,
-#endif
-#ifdef GL_NV_sample_mask_override_coverage
- &__GLEW_NV_sample_mask_override_coverage,
-#endif
-#ifdef GL_NV_scissor_exclusive
- &__GLEW_NV_scissor_exclusive,
-#endif
-#ifdef GL_NV_shader_atomic_counters
- &__GLEW_NV_shader_atomic_counters,
-#endif
-#ifdef GL_NV_shader_atomic_float
- &__GLEW_NV_shader_atomic_float,
-#endif
-#ifdef GL_NV_shader_atomic_float64
- &__GLEW_NV_shader_atomic_float64,
-#endif
-#ifdef GL_NV_shader_atomic_fp16_vector
- &__GLEW_NV_shader_atomic_fp16_vector,
-#endif
-#ifdef GL_NV_shader_atomic_int64
- &__GLEW_NV_shader_atomic_int64,
-#endif
-#ifdef GL_NV_shader_buffer_load
- &__GLEW_NV_shader_buffer_load,
-#endif
-#ifdef GL_NV_shader_noperspective_interpolation
- &__GLEW_NV_shader_noperspective_interpolation,
-#endif
-#ifdef GL_NV_shader_storage_buffer_object
- &__GLEW_NV_shader_storage_buffer_object,
-#endif
-#ifdef GL_NV_shader_subgroup_partitioned
- &__GLEW_NV_shader_subgroup_partitioned,
-#endif
-#ifdef GL_NV_shader_texture_footprint
- &__GLEW_NV_shader_texture_footprint,
-#endif
-#ifdef GL_NV_shader_thread_group
- &__GLEW_NV_shader_thread_group,
-#endif
-#ifdef GL_NV_shader_thread_shuffle
- &__GLEW_NV_shader_thread_shuffle,
-#endif
-#ifdef GL_NV_shading_rate_image
- &__GLEW_NV_shading_rate_image,
-#endif
-#ifdef GL_NV_shadow_samplers_array
- &__GLEW_NV_shadow_samplers_array,
-#endif
-#ifdef GL_NV_shadow_samplers_cube
- &__GLEW_NV_shadow_samplers_cube,
-#endif
-#ifdef GL_NV_stereo_view_rendering
- &__GLEW_NV_stereo_view_rendering,
-#endif
-#ifdef GL_NV_tessellation_program5
- &__GLEW_NV_tessellation_program5,
-#endif
-#ifdef GL_NV_texgen_emboss
- &__GLEW_NV_texgen_emboss,
-#endif
-#ifdef GL_NV_texgen_reflection
- &__GLEW_NV_texgen_reflection,
-#endif
-#ifdef GL_NV_texture_array
- &__GLEW_NV_texture_array,
-#endif
-#ifdef GL_NV_texture_barrier
- &__GLEW_NV_texture_barrier,
-#endif
-#ifdef GL_NV_texture_border_clamp
- &__GLEW_NV_texture_border_clamp,
-#endif
-#ifdef GL_NV_texture_compression_latc
- &__GLEW_NV_texture_compression_latc,
-#endif
-#ifdef GL_NV_texture_compression_s3tc
- &__GLEW_NV_texture_compression_s3tc,
-#endif
-#ifdef GL_NV_texture_compression_s3tc_update
- &__GLEW_NV_texture_compression_s3tc_update,
-#endif
-#ifdef GL_NV_texture_compression_vtc
- &__GLEW_NV_texture_compression_vtc,
-#endif
-#ifdef GL_NV_texture_env_combine4
- &__GLEW_NV_texture_env_combine4,
-#endif
-#ifdef GL_NV_texture_expand_normal
- &__GLEW_NV_texture_expand_normal,
-#endif
-#ifdef GL_NV_texture_multisample
- &__GLEW_NV_texture_multisample,
-#endif
-#ifdef GL_NV_texture_npot_2D_mipmap
- &__GLEW_NV_texture_npot_2D_mipmap,
-#endif
-#ifdef GL_NV_texture_rectangle
- &__GLEW_NV_texture_rectangle,
-#endif
-#ifdef GL_NV_texture_rectangle_compressed
- &__GLEW_NV_texture_rectangle_compressed,
-#endif
-#ifdef GL_NV_texture_shader
- &__GLEW_NV_texture_shader,
-#endif
-#ifdef GL_NV_texture_shader2
- &__GLEW_NV_texture_shader2,
-#endif
-#ifdef GL_NV_texture_shader3
- &__GLEW_NV_texture_shader3,
-#endif
-#ifdef GL_NV_transform_feedback
- &__GLEW_NV_transform_feedback,
-#endif
-#ifdef GL_NV_transform_feedback2
- &__GLEW_NV_transform_feedback2,
-#endif
-#ifdef GL_NV_uniform_buffer_unified_memory
- &__GLEW_NV_uniform_buffer_unified_memory,
-#endif
-#ifdef GL_NV_vdpau_interop
- &__GLEW_NV_vdpau_interop,
-#endif
-#ifdef GL_NV_vdpau_interop2
- &__GLEW_NV_vdpau_interop2,
-#endif
-#ifdef GL_NV_vertex_array_range
- &__GLEW_NV_vertex_array_range,
-#endif
-#ifdef GL_NV_vertex_array_range2
- &__GLEW_NV_vertex_array_range2,
-#endif
-#ifdef GL_NV_vertex_attrib_integer_64bit
- &__GLEW_NV_vertex_attrib_integer_64bit,
-#endif
-#ifdef GL_NV_vertex_buffer_unified_memory
- &__GLEW_NV_vertex_buffer_unified_memory,
-#endif
-#ifdef GL_NV_vertex_program
- &__GLEW_NV_vertex_program,
-#endif
-#ifdef GL_NV_vertex_program1_1
- &__GLEW_NV_vertex_program1_1,
-#endif
-#ifdef GL_NV_vertex_program2
- &__GLEW_NV_vertex_program2,
-#endif
-#ifdef GL_NV_vertex_program2_option
- &__GLEW_NV_vertex_program2_option,
-#endif
-#ifdef GL_NV_vertex_program3
- &__GLEW_NV_vertex_program3,
-#endif
-#ifdef GL_NV_vertex_program4
- &__GLEW_NV_vertex_program4,
-#endif
-#ifdef GL_NV_video_capture
- &__GLEW_NV_video_capture,
-#endif
-#ifdef GL_NV_viewport_array
- &__GLEW_NV_viewport_array,
-#endif
-#ifdef GL_NV_viewport_array2
- &__GLEW_NV_viewport_array2,
-#endif
-#ifdef GL_NV_viewport_swizzle
- &__GLEW_NV_viewport_swizzle,
-#endif
-#ifdef GL_OES_EGL_image
- &__GLEW_OES_EGL_image,
-#endif
-#ifdef GL_OES_EGL_image_external
- &__GLEW_OES_EGL_image_external,
-#endif
-#ifdef GL_OES_EGL_image_external_essl3
- &__GLEW_OES_EGL_image_external_essl3,
-#endif
-#ifdef GL_OES_blend_equation_separate
- &__GLEW_OES_blend_equation_separate,
-#endif
-#ifdef GL_OES_blend_func_separate
- &__GLEW_OES_blend_func_separate,
-#endif
-#ifdef GL_OES_blend_subtract
- &__GLEW_OES_blend_subtract,
-#endif
-#ifdef GL_OES_byte_coordinates
- &__GLEW_OES_byte_coordinates,
-#endif
-#ifdef GL_OES_compressed_ETC1_RGB8_texture
- &__GLEW_OES_compressed_ETC1_RGB8_texture,
-#endif
-#ifdef GL_OES_compressed_paletted_texture
- &__GLEW_OES_compressed_paletted_texture,
-#endif
-#ifdef GL_OES_copy_image
- &__GLEW_OES_copy_image,
-#endif
-#ifdef GL_OES_depth24
- &__GLEW_OES_depth24,
-#endif
-#ifdef GL_OES_depth32
- &__GLEW_OES_depth32,
-#endif
-#ifdef GL_OES_depth_texture
- &__GLEW_OES_depth_texture,
-#endif
-#ifdef GL_OES_depth_texture_cube_map
- &__GLEW_OES_depth_texture_cube_map,
-#endif
-#ifdef GL_OES_draw_buffers_indexed
- &__GLEW_OES_draw_buffers_indexed,
-#endif
-#ifdef GL_OES_draw_texture
- &__GLEW_OES_draw_texture,
-#endif
-#ifdef GL_OES_element_index_uint
- &__GLEW_OES_element_index_uint,
-#endif
-#ifdef GL_OES_extended_matrix_palette
- &__GLEW_OES_extended_matrix_palette,
-#endif
-#ifdef GL_OES_fbo_render_mipmap
- &__GLEW_OES_fbo_render_mipmap,
-#endif
-#ifdef GL_OES_fragment_precision_high
- &__GLEW_OES_fragment_precision_high,
-#endif
-#ifdef GL_OES_framebuffer_object
- &__GLEW_OES_framebuffer_object,
-#endif
-#ifdef GL_OES_geometry_point_size
- &__GLEW_OES_geometry_point_size,
-#endif
-#ifdef GL_OES_geometry_shader
- &__GLEW_OES_geometry_shader,
-#endif
-#ifdef GL_OES_get_program_binary
- &__GLEW_OES_get_program_binary,
-#endif
-#ifdef GL_OES_gpu_shader5
- &__GLEW_OES_gpu_shader5,
-#endif
-#ifdef GL_OES_mapbuffer
- &__GLEW_OES_mapbuffer,
-#endif
-#ifdef GL_OES_matrix_get
- &__GLEW_OES_matrix_get,
-#endif
-#ifdef GL_OES_matrix_palette
- &__GLEW_OES_matrix_palette,
-#endif
-#ifdef GL_OES_packed_depth_stencil
- &__GLEW_OES_packed_depth_stencil,
-#endif
-#ifdef GL_OES_point_size_array
- &__GLEW_OES_point_size_array,
-#endif
-#ifdef GL_OES_point_sprite
- &__GLEW_OES_point_sprite,
-#endif
-#ifdef GL_OES_read_format
- &__GLEW_OES_read_format,
-#endif
-#ifdef GL_OES_required_internalformat
- &__GLEW_OES_required_internalformat,
-#endif
-#ifdef GL_OES_rgb8_rgba8
- &__GLEW_OES_rgb8_rgba8,
-#endif
-#ifdef GL_OES_sample_shading
- &__GLEW_OES_sample_shading,
-#endif
-#ifdef GL_OES_sample_variables
- &__GLEW_OES_sample_variables,
-#endif
-#ifdef GL_OES_shader_image_atomic
- &__GLEW_OES_shader_image_atomic,
-#endif
-#ifdef GL_OES_shader_io_blocks
- &__GLEW_OES_shader_io_blocks,
-#endif
-#ifdef GL_OES_shader_multisample_interpolation
- &__GLEW_OES_shader_multisample_interpolation,
-#endif
-#ifdef GL_OES_single_precision
- &__GLEW_OES_single_precision,
-#endif
-#ifdef GL_OES_standard_derivatives
- &__GLEW_OES_standard_derivatives,
-#endif
-#ifdef GL_OES_stencil1
- &__GLEW_OES_stencil1,
-#endif
-#ifdef GL_OES_stencil4
- &__GLEW_OES_stencil4,
-#endif
-#ifdef GL_OES_stencil8
- &__GLEW_OES_stencil8,
-#endif
-#ifdef GL_OES_surfaceless_context
- &__GLEW_OES_surfaceless_context,
-#endif
-#ifdef GL_OES_tessellation_point_size
- &__GLEW_OES_tessellation_point_size,
-#endif
-#ifdef GL_OES_tessellation_shader
- &__GLEW_OES_tessellation_shader,
-#endif
-#ifdef GL_OES_texture_3D
- &__GLEW_OES_texture_3D,
-#endif
-#ifdef GL_OES_texture_border_clamp
- &__GLEW_OES_texture_border_clamp,
-#endif
-#ifdef GL_OES_texture_buffer
- &__GLEW_OES_texture_buffer,
-#endif
-#ifdef GL_OES_texture_compression_astc
- &__GLEW_OES_texture_compression_astc,
-#endif
-#ifdef GL_OES_texture_cube_map
- &__GLEW_OES_texture_cube_map,
-#endif
-#ifdef GL_OES_texture_cube_map_array
- &__GLEW_OES_texture_cube_map_array,
-#endif
-#ifdef GL_OES_texture_env_crossbar
- &__GLEW_OES_texture_env_crossbar,
-#endif
-#ifdef GL_OES_texture_mirrored_repeat
- &__GLEW_OES_texture_mirrored_repeat,
-#endif
-#ifdef GL_OES_texture_npot
- &__GLEW_OES_texture_npot,
-#endif
-#ifdef GL_OES_texture_stencil8
- &__GLEW_OES_texture_stencil8,
-#endif
-#ifdef GL_OES_texture_storage_multisample_2d_array
- &__GLEW_OES_texture_storage_multisample_2d_array,
-#endif
-#ifdef GL_OES_texture_view
- &__GLEW_OES_texture_view,
-#endif
-#ifdef GL_OES_vertex_array_object
- &__GLEW_OES_vertex_array_object,
-#endif
-#ifdef GL_OES_vertex_half_float
- &__GLEW_OES_vertex_half_float,
-#endif
-#ifdef GL_OES_vertex_type_10_10_10_2
- &__GLEW_OES_vertex_type_10_10_10_2,
-#endif
-#ifdef GL_OML_interlace
- &__GLEW_OML_interlace,
-#endif
-#ifdef GL_OML_resample
- &__GLEW_OML_resample,
-#endif
-#ifdef GL_OML_subsample
- &__GLEW_OML_subsample,
-#endif
-#ifdef GL_OVR_multiview
- &__GLEW_OVR_multiview,
-#endif
-#ifdef GL_OVR_multiview2
- &__GLEW_OVR_multiview2,
-#endif
-#ifdef GL_OVR_multiview_multisampled_render_to_texture
- &__GLEW_OVR_multiview_multisampled_render_to_texture,
-#endif
-#ifdef GL_PGI_misc_hints
- &__GLEW_PGI_misc_hints,
-#endif
-#ifdef GL_PGI_vertex_hints
- &__GLEW_PGI_vertex_hints,
-#endif
-#ifdef GL_QCOM_YUV_texture_gather
- &__GLEW_QCOM_YUV_texture_gather,
-#endif
-#ifdef GL_QCOM_alpha_test
- &__GLEW_QCOM_alpha_test,
-#endif
-#ifdef GL_QCOM_binning_control
- &__GLEW_QCOM_binning_control,
-#endif
-#ifdef GL_QCOM_driver_control
- &__GLEW_QCOM_driver_control,
-#endif
-#ifdef GL_QCOM_extended_get
- &__GLEW_QCOM_extended_get,
-#endif
-#ifdef GL_QCOM_extended_get2
- &__GLEW_QCOM_extended_get2,
-#endif
-#ifdef GL_QCOM_framebuffer_foveated
- &__GLEW_QCOM_framebuffer_foveated,
-#endif
-#ifdef GL_QCOM_perfmon_global_mode
- &__GLEW_QCOM_perfmon_global_mode,
-#endif
-#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent
- &__GLEW_QCOM_shader_framebuffer_fetch_noncoherent,
-#endif
-#ifdef GL_QCOM_shader_framebuffer_fetch_rate
- &__GLEW_QCOM_shader_framebuffer_fetch_rate,
-#endif
-#ifdef GL_QCOM_texture_foveated
- &__GLEW_QCOM_texture_foveated,
-#endif
-#ifdef GL_QCOM_texture_foveated_subsampled_layout
- &__GLEW_QCOM_texture_foveated_subsampled_layout,
-#endif
-#ifdef GL_QCOM_tiled_rendering
- &__GLEW_QCOM_tiled_rendering,
-#endif
-#ifdef GL_QCOM_writeonly_rendering
- &__GLEW_QCOM_writeonly_rendering,
-#endif
-#ifdef GL_REGAL_ES1_0_compatibility
- &__GLEW_REGAL_ES1_0_compatibility,
-#endif
-#ifdef GL_REGAL_ES1_1_compatibility
- &__GLEW_REGAL_ES1_1_compatibility,
-#endif
-#ifdef GL_REGAL_enable
- &__GLEW_REGAL_enable,
-#endif
-#ifdef GL_REGAL_error_string
- &__GLEW_REGAL_error_string,
-#endif
-#ifdef GL_REGAL_extension_query
- &__GLEW_REGAL_extension_query,
-#endif
-#ifdef GL_REGAL_log
- &__GLEW_REGAL_log,
-#endif
-#ifdef GL_REGAL_proc_address
- &__GLEW_REGAL_proc_address,
-#endif
-#ifdef GL_REND_screen_coordinates
- &__GLEW_REND_screen_coordinates,
-#endif
-#ifdef GL_S3_s3tc
- &__GLEW_S3_s3tc,
-#endif
-#ifdef GL_SGIS_clip_band_hint
- &__GLEW_SGIS_clip_band_hint,
-#endif
-#ifdef GL_SGIS_color_range
- &__GLEW_SGIS_color_range,
-#endif
-#ifdef GL_SGIS_detail_texture
- &__GLEW_SGIS_detail_texture,
-#endif
-#ifdef GL_SGIS_fog_function
- &__GLEW_SGIS_fog_function,
-#endif
-#ifdef GL_SGIS_generate_mipmap
- &__GLEW_SGIS_generate_mipmap,
-#endif
-#ifdef GL_SGIS_line_texgen
- &__GLEW_SGIS_line_texgen,
-#endif
-#ifdef GL_SGIS_multisample
- &__GLEW_SGIS_multisample,
-#endif
-#ifdef GL_SGIS_multitexture
- &__GLEW_SGIS_multitexture,
-#endif
-#ifdef GL_SGIS_pixel_texture
- &__GLEW_SGIS_pixel_texture,
-#endif
-#ifdef GL_SGIS_point_line_texgen
- &__GLEW_SGIS_point_line_texgen,
-#endif
-#ifdef GL_SGIS_shared_multisample
- &__GLEW_SGIS_shared_multisample,
-#endif
-#ifdef GL_SGIS_sharpen_texture
- &__GLEW_SGIS_sharpen_texture,
-#endif
-#ifdef GL_SGIS_texture4D
- &__GLEW_SGIS_texture4D,
-#endif
-#ifdef GL_SGIS_texture_border_clamp
- &__GLEW_SGIS_texture_border_clamp,
-#endif
-#ifdef GL_SGIS_texture_edge_clamp
- &__GLEW_SGIS_texture_edge_clamp,
-#endif
-#ifdef GL_SGIS_texture_filter4
- &__GLEW_SGIS_texture_filter4,
-#endif
-#ifdef GL_SGIS_texture_lod
- &__GLEW_SGIS_texture_lod,
-#endif
-#ifdef GL_SGIS_texture_select
- &__GLEW_SGIS_texture_select,
-#endif
-#ifdef GL_SGIX_async
- &__GLEW_SGIX_async,
-#endif
-#ifdef GL_SGIX_async_histogram
- &__GLEW_SGIX_async_histogram,
-#endif
-#ifdef GL_SGIX_async_pixel
- &__GLEW_SGIX_async_pixel,
-#endif
-#ifdef GL_SGIX_bali_g_instruments
- &__GLEW_SGIX_bali_g_instruments,
-#endif
-#ifdef GL_SGIX_bali_r_instruments
- &__GLEW_SGIX_bali_r_instruments,
-#endif
-#ifdef GL_SGIX_bali_timer_instruments
- &__GLEW_SGIX_bali_timer_instruments,
-#endif
-#ifdef GL_SGIX_blend_alpha_minmax
- &__GLEW_SGIX_blend_alpha_minmax,
-#endif
-#ifdef GL_SGIX_blend_cadd
- &__GLEW_SGIX_blend_cadd,
-#endif
-#ifdef GL_SGIX_blend_cmultiply
- &__GLEW_SGIX_blend_cmultiply,
-#endif
-#ifdef GL_SGIX_calligraphic_fragment
- &__GLEW_SGIX_calligraphic_fragment,
-#endif
-#ifdef GL_SGIX_clipmap
- &__GLEW_SGIX_clipmap,
-#endif
-#ifdef GL_SGIX_color_matrix_accuracy
- &__GLEW_SGIX_color_matrix_accuracy,
-#endif
-#ifdef GL_SGIX_color_table_index_mode
- &__GLEW_SGIX_color_table_index_mode,
-#endif
-#ifdef GL_SGIX_complex_polar
- &__GLEW_SGIX_complex_polar,
-#endif
-#ifdef GL_SGIX_convolution_accuracy
- &__GLEW_SGIX_convolution_accuracy,
-#endif
-#ifdef GL_SGIX_cube_map
- &__GLEW_SGIX_cube_map,
-#endif
-#ifdef GL_SGIX_cylinder_texgen
- &__GLEW_SGIX_cylinder_texgen,
-#endif
-#ifdef GL_SGIX_datapipe
- &__GLEW_SGIX_datapipe,
-#endif
-#ifdef GL_SGIX_decimation
- &__GLEW_SGIX_decimation,
-#endif
-#ifdef GL_SGIX_depth_pass_instrument
- &__GLEW_SGIX_depth_pass_instrument,
-#endif
-#ifdef GL_SGIX_depth_texture
- &__GLEW_SGIX_depth_texture,
-#endif
-#ifdef GL_SGIX_dvc
- &__GLEW_SGIX_dvc,
-#endif
-#ifdef GL_SGIX_flush_raster
- &__GLEW_SGIX_flush_raster,
-#endif
-#ifdef GL_SGIX_fog_blend
- &__GLEW_SGIX_fog_blend,
-#endif
-#ifdef GL_SGIX_fog_factor_to_alpha
- &__GLEW_SGIX_fog_factor_to_alpha,
-#endif
-#ifdef GL_SGIX_fog_layers
- &__GLEW_SGIX_fog_layers,
-#endif
-#ifdef GL_SGIX_fog_offset
- &__GLEW_SGIX_fog_offset,
-#endif
-#ifdef GL_SGIX_fog_patchy
- &__GLEW_SGIX_fog_patchy,
-#endif
-#ifdef GL_SGIX_fog_scale
- &__GLEW_SGIX_fog_scale,
-#endif
-#ifdef GL_SGIX_fog_texture
- &__GLEW_SGIX_fog_texture,
-#endif
-#ifdef GL_SGIX_fragment_lighting_space
- &__GLEW_SGIX_fragment_lighting_space,
-#endif
-#ifdef GL_SGIX_fragment_specular_lighting
- &__GLEW_SGIX_fragment_specular_lighting,
-#endif
-#ifdef GL_SGIX_fragments_instrument
- &__GLEW_SGIX_fragments_instrument,
-#endif
-#ifdef GL_SGIX_framezoom
- &__GLEW_SGIX_framezoom,
-#endif
-#ifdef GL_SGIX_icc_texture
- &__GLEW_SGIX_icc_texture,
-#endif
-#ifdef GL_SGIX_igloo_interface
- &__GLEW_SGIX_igloo_interface,
-#endif
-#ifdef GL_SGIX_image_compression
- &__GLEW_SGIX_image_compression,
-#endif
-#ifdef GL_SGIX_impact_pixel_texture
- &__GLEW_SGIX_impact_pixel_texture,
-#endif
-#ifdef GL_SGIX_instrument_error
- &__GLEW_SGIX_instrument_error,
-#endif
-#ifdef GL_SGIX_interlace
- &__GLEW_SGIX_interlace,
-#endif
-#ifdef GL_SGIX_ir_instrument1
- &__GLEW_SGIX_ir_instrument1,
-#endif
-#ifdef GL_SGIX_line_quality_hint
- &__GLEW_SGIX_line_quality_hint,
-#endif
-#ifdef GL_SGIX_list_priority
- &__GLEW_SGIX_list_priority,
-#endif
-#ifdef GL_SGIX_mpeg1
- &__GLEW_SGIX_mpeg1,
-#endif
-#ifdef GL_SGIX_mpeg2
- &__GLEW_SGIX_mpeg2,
-#endif
-#ifdef GL_SGIX_nonlinear_lighting_pervertex
- &__GLEW_SGIX_nonlinear_lighting_pervertex,
-#endif
-#ifdef GL_SGIX_nurbs_eval
- &__GLEW_SGIX_nurbs_eval,
-#endif
-#ifdef GL_SGIX_occlusion_instrument
- &__GLEW_SGIX_occlusion_instrument,
-#endif
-#ifdef GL_SGIX_packed_6bytes
- &__GLEW_SGIX_packed_6bytes,
-#endif
-#ifdef GL_SGIX_pixel_texture
- &__GLEW_SGIX_pixel_texture,
-#endif
-#ifdef GL_SGIX_pixel_texture_bits
- &__GLEW_SGIX_pixel_texture_bits,
-#endif
-#ifdef GL_SGIX_pixel_texture_lod
- &__GLEW_SGIX_pixel_texture_lod,
-#endif
-#ifdef GL_SGIX_pixel_tiles
- &__GLEW_SGIX_pixel_tiles,
-#endif
-#ifdef GL_SGIX_polynomial_ffd
- &__GLEW_SGIX_polynomial_ffd,
-#endif
-#ifdef GL_SGIX_quad_mesh
- &__GLEW_SGIX_quad_mesh,
-#endif
-#ifdef GL_SGIX_reference_plane
- &__GLEW_SGIX_reference_plane,
-#endif
-#ifdef GL_SGIX_resample
- &__GLEW_SGIX_resample,
-#endif
-#ifdef GL_SGIX_scalebias_hint
- &__GLEW_SGIX_scalebias_hint,
-#endif
-#ifdef GL_SGIX_shadow
- &__GLEW_SGIX_shadow,
-#endif
-#ifdef GL_SGIX_shadow_ambient
- &__GLEW_SGIX_shadow_ambient,
-#endif
-#ifdef GL_SGIX_slim
- &__GLEW_SGIX_slim,
-#endif
-#ifdef GL_SGIX_spotlight_cutoff
- &__GLEW_SGIX_spotlight_cutoff,
-#endif
-#ifdef GL_SGIX_sprite
- &__GLEW_SGIX_sprite,
-#endif
-#ifdef GL_SGIX_subdiv_patch
- &__GLEW_SGIX_subdiv_patch,
-#endif
-#ifdef GL_SGIX_subsample
- &__GLEW_SGIX_subsample,
-#endif
-#ifdef GL_SGIX_tag_sample_buffer
- &__GLEW_SGIX_tag_sample_buffer,
-#endif
-#ifdef GL_SGIX_texture_add_env
- &__GLEW_SGIX_texture_add_env,
-#endif
-#ifdef GL_SGIX_texture_coordinate_clamp
- &__GLEW_SGIX_texture_coordinate_clamp,
-#endif
-#ifdef GL_SGIX_texture_lod_bias
- &__GLEW_SGIX_texture_lod_bias,
-#endif
-#ifdef GL_SGIX_texture_mipmap_anisotropic
- &__GLEW_SGIX_texture_mipmap_anisotropic,
-#endif
-#ifdef GL_SGIX_texture_multi_buffer
- &__GLEW_SGIX_texture_multi_buffer,
-#endif
-#ifdef GL_SGIX_texture_phase
- &__GLEW_SGIX_texture_phase,
-#endif
-#ifdef GL_SGIX_texture_range
- &__GLEW_SGIX_texture_range,
-#endif
-#ifdef GL_SGIX_texture_scale_bias
- &__GLEW_SGIX_texture_scale_bias,
-#endif
-#ifdef GL_SGIX_texture_supersample
- &__GLEW_SGIX_texture_supersample,
-#endif
-#ifdef GL_SGIX_vector_ops
- &__GLEW_SGIX_vector_ops,
-#endif
-#ifdef GL_SGIX_vertex_array_object
- &__GLEW_SGIX_vertex_array_object,
-#endif
-#ifdef GL_SGIX_vertex_preclip
- &__GLEW_SGIX_vertex_preclip,
-#endif
-#ifdef GL_SGIX_vertex_preclip_hint
- &__GLEW_SGIX_vertex_preclip_hint,
-#endif
-#ifdef GL_SGIX_ycrcb
- &__GLEW_SGIX_ycrcb,
-#endif
-#ifdef GL_SGIX_ycrcb_subsample
- &__GLEW_SGIX_ycrcb_subsample,
-#endif
-#ifdef GL_SGIX_ycrcba
- &__GLEW_SGIX_ycrcba,
-#endif
-#ifdef GL_SGI_color_matrix
- &__GLEW_SGI_color_matrix,
-#endif
-#ifdef GL_SGI_color_table
- &__GLEW_SGI_color_table,
-#endif
-#ifdef GL_SGI_complex
- &__GLEW_SGI_complex,
-#endif
-#ifdef GL_SGI_complex_type
- &__GLEW_SGI_complex_type,
-#endif
-#ifdef GL_SGI_fft
- &__GLEW_SGI_fft,
-#endif
-#ifdef GL_SGI_texture_color_table
- &__GLEW_SGI_texture_color_table,
-#endif
-#ifdef GL_SUNX_constant_data
- &__GLEW_SUNX_constant_data,
-#endif
-#ifdef GL_SUN_convolution_border_modes
- &__GLEW_SUN_convolution_border_modes,
-#endif
-#ifdef GL_SUN_global_alpha
- &__GLEW_SUN_global_alpha,
-#endif
-#ifdef GL_SUN_mesh_array
- &__GLEW_SUN_mesh_array,
-#endif
-#ifdef GL_SUN_read_video_pixels
- &__GLEW_SUN_read_video_pixels,
-#endif
-#ifdef GL_SUN_slice_accum
- &__GLEW_SUN_slice_accum,
-#endif
-#ifdef GL_SUN_triangle_list
- &__GLEW_SUN_triangle_list,
-#endif
-#ifdef GL_SUN_vertex
- &__GLEW_SUN_vertex,
-#endif
-#ifdef GL_VERSION_1_2
- &__GLEW_VERSION_1_2,
-#endif
-#ifdef GL_VERSION_1_2_1
- &__GLEW_VERSION_1_2_1,
-#endif
-#ifdef GL_VERSION_1_3
- &__GLEW_VERSION_1_3,
-#endif
-#ifdef GL_VERSION_1_4
- &__GLEW_VERSION_1_4,
-#endif
-#ifdef GL_VERSION_1_5
- &__GLEW_VERSION_1_5,
-#endif
-#ifdef GL_VERSION_2_0
- &__GLEW_VERSION_2_0,
-#endif
-#ifdef GL_VERSION_2_1
- &__GLEW_VERSION_2_1,
-#endif
-#ifdef GL_VERSION_3_0
- &__GLEW_VERSION_3_0,
-#endif
-#ifdef GL_VERSION_3_1
- &__GLEW_VERSION_3_1,
-#endif
-#ifdef GL_VERSION_3_2
- &__GLEW_VERSION_3_2,
-#endif
-#ifdef GL_VERSION_3_3
- &__GLEW_VERSION_3_3,
-#endif
-#ifdef GL_VERSION_4_0
- &__GLEW_VERSION_4_0,
-#endif
-#ifdef GL_VERSION_4_1
- &__GLEW_VERSION_4_1,
-#endif
-#ifdef GL_VERSION_4_2
- &__GLEW_VERSION_4_2,
-#endif
-#ifdef GL_VERSION_4_3
- &__GLEW_VERSION_4_3,
-#endif
-#ifdef GL_VERSION_4_4
- &__GLEW_VERSION_4_4,
-#endif
-#ifdef GL_VERSION_4_5
- &__GLEW_VERSION_4_5,
-#endif
-#ifdef GL_VERSION_4_6
- &__GLEW_VERSION_4_6,
-#endif
-#ifdef GL_VIV_shader_binary
- &__GLEW_VIV_shader_binary,
-#endif
-#ifdef GL_WIN_phong_shading
- &__GLEW_WIN_phong_shading,
-#endif
-#ifdef GL_WIN_scene_markerXXX
- &__GLEW_WIN_scene_markerXXX,
-#endif
-#ifdef GL_WIN_specular_fog
- &__GLEW_WIN_specular_fog,
-#endif
-#ifdef GL_WIN_swap_hint
- &__GLEW_WIN_swap_hint,
-#endif
- NULL
-};
-
-static GLboolean _glewInit_GL_VERSION_1_2 ();
-static GLboolean _glewInit_GL_VERSION_1_3 ();
-static GLboolean _glewInit_GL_VERSION_1_4 ();
-static GLboolean _glewInit_GL_VERSION_1_5 ();
-static GLboolean _glewInit_GL_VERSION_2_0 ();
-static GLboolean _glewInit_GL_VERSION_2_1 ();
-static GLboolean _glewInit_GL_VERSION_3_0 ();
-static GLboolean _glewInit_GL_VERSION_3_1 ();
-static GLboolean _glewInit_GL_VERSION_3_2 ();
-static GLboolean _glewInit_GL_VERSION_3_3 ();
-static GLboolean _glewInit_GL_VERSION_4_0 ();
-static GLboolean _glewInit_GL_VERSION_4_5 ();
-static GLboolean _glewInit_GL_VERSION_4_6 ();
-static GLboolean _glewInit_GL_3DFX_tbuffer ();
-static GLboolean _glewInit_GL_AMD_debug_output ();
-static GLboolean _glewInit_GL_AMD_draw_buffers_blend ();
-static GLboolean _glewInit_GL_AMD_framebuffer_multisample_advanced ();
-static GLboolean _glewInit_GL_AMD_framebuffer_sample_positions ();
-static GLboolean _glewInit_GL_AMD_interleaved_elements ();
-static GLboolean _glewInit_GL_AMD_multi_draw_indirect ();
-static GLboolean _glewInit_GL_AMD_name_gen_delete ();
-static GLboolean _glewInit_GL_AMD_occlusion_query_event ();
-static GLboolean _glewInit_GL_AMD_performance_monitor ();
-static GLboolean _glewInit_GL_AMD_sample_positions ();
-static GLboolean _glewInit_GL_AMD_sparse_texture ();
-static GLboolean _glewInit_GL_AMD_stencil_operation_extended ();
-static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator ();
-static GLboolean _glewInit_GL_ANGLE_framebuffer_blit ();
-static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample ();
-static GLboolean _glewInit_GL_ANGLE_instanced_arrays ();
-static GLboolean _glewInit_GL_ANGLE_timer_query ();
-static GLboolean _glewInit_GL_ANGLE_translated_shader_source ();
-static GLboolean _glewInit_GL_APPLE_copy_texture_levels ();
-static GLboolean _glewInit_GL_APPLE_element_array ();
-static GLboolean _glewInit_GL_APPLE_fence ();
-static GLboolean _glewInit_GL_APPLE_flush_buffer_range ();
-static GLboolean _glewInit_GL_APPLE_framebuffer_multisample ();
-static GLboolean _glewInit_GL_APPLE_object_purgeable ();
-static GLboolean _glewInit_GL_APPLE_sync ();
-static GLboolean _glewInit_GL_APPLE_texture_range ();
-static GLboolean _glewInit_GL_APPLE_vertex_array_object ();
-static GLboolean _glewInit_GL_APPLE_vertex_array_range ();
-static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators ();
-static GLboolean _glewInit_GL_ARB_ES2_compatibility ();
-static GLboolean _glewInit_GL_ARB_ES3_1_compatibility ();
-static GLboolean _glewInit_GL_ARB_ES3_2_compatibility ();
-static GLboolean _glewInit_GL_ARB_base_instance ();
-static GLboolean _glewInit_GL_ARB_bindless_texture ();
-static GLboolean _glewInit_GL_ARB_blend_func_extended ();
-static GLboolean _glewInit_GL_ARB_buffer_storage ();
-static GLboolean _glewInit_GL_ARB_cl_event ();
-static GLboolean _glewInit_GL_ARB_clear_buffer_object ();
-static GLboolean _glewInit_GL_ARB_clear_texture ();
-static GLboolean _glewInit_GL_ARB_clip_control ();
-static GLboolean _glewInit_GL_ARB_color_buffer_float ();
-static GLboolean _glewInit_GL_ARB_compute_shader ();
-static GLboolean _glewInit_GL_ARB_compute_variable_group_size ();
-static GLboolean _glewInit_GL_ARB_copy_buffer ();
-static GLboolean _glewInit_GL_ARB_copy_image ();
-static GLboolean _glewInit_GL_ARB_debug_output ();
-static GLboolean _glewInit_GL_ARB_direct_state_access ();
-static GLboolean _glewInit_GL_ARB_draw_buffers ();
-static GLboolean _glewInit_GL_ARB_draw_buffers_blend ();
-static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex ();
-static GLboolean _glewInit_GL_ARB_draw_indirect ();
-static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments ();
-static GLboolean _glewInit_GL_ARB_framebuffer_object ();
-static GLboolean _glewInit_GL_ARB_geometry_shader4 ();
-static GLboolean _glewInit_GL_ARB_get_program_binary ();
-static GLboolean _glewInit_GL_ARB_get_texture_sub_image ();
-static GLboolean _glewInit_GL_ARB_gl_spirv ();
-static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 ();
-static GLboolean _glewInit_GL_ARB_gpu_shader_int64 ();
-static GLboolean _glewInit_GL_ARB_imaging ();
-static GLboolean _glewInit_GL_ARB_indirect_parameters ();
-static GLboolean _glewInit_GL_ARB_instanced_arrays ();
-static GLboolean _glewInit_GL_ARB_internalformat_query ();
-static GLboolean _glewInit_GL_ARB_internalformat_query2 ();
-static GLboolean _glewInit_GL_ARB_invalidate_subdata ();
-static GLboolean _glewInit_GL_ARB_map_buffer_range ();
-static GLboolean _glewInit_GL_ARB_matrix_palette ();
-static GLboolean _glewInit_GL_ARB_multi_bind ();
-static GLboolean _glewInit_GL_ARB_multi_draw_indirect ();
-static GLboolean _glewInit_GL_ARB_multisample ();
-static GLboolean _glewInit_GL_ARB_multitexture ();
-static GLboolean _glewInit_GL_ARB_occlusion_query ();
-static GLboolean _glewInit_GL_ARB_parallel_shader_compile ();
-static GLboolean _glewInit_GL_ARB_point_parameters ();
-static GLboolean _glewInit_GL_ARB_polygon_offset_clamp ();
-static GLboolean _glewInit_GL_ARB_program_interface_query ();
-static GLboolean _glewInit_GL_ARB_provoking_vertex ();
-static GLboolean _glewInit_GL_ARB_robustness ();
-static GLboolean _glewInit_GL_ARB_sample_locations ();
-static GLboolean _glewInit_GL_ARB_sample_shading ();
-static GLboolean _glewInit_GL_ARB_sampler_objects ();
-static GLboolean _glewInit_GL_ARB_separate_shader_objects ();
-static GLboolean _glewInit_GL_ARB_shader_atomic_counters ();
-static GLboolean _glewInit_GL_ARB_shader_image_load_store ();
-static GLboolean _glewInit_GL_ARB_shader_objects ();
-static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object ();
-static GLboolean _glewInit_GL_ARB_shader_subroutine ();
-static GLboolean _glewInit_GL_ARB_shading_language_include ();
-static GLboolean _glewInit_GL_ARB_sparse_buffer ();
-static GLboolean _glewInit_GL_ARB_sparse_texture ();
-static GLboolean _glewInit_GL_ARB_sync ();
-static GLboolean _glewInit_GL_ARB_tessellation_shader ();
-static GLboolean _glewInit_GL_ARB_texture_barrier ();
-static GLboolean _glewInit_GL_ARB_texture_buffer_object ();
-static GLboolean _glewInit_GL_ARB_texture_buffer_range ();
-static GLboolean _glewInit_GL_ARB_texture_compression ();
-static GLboolean _glewInit_GL_ARB_texture_multisample ();
-static GLboolean _glewInit_GL_ARB_texture_storage ();
-static GLboolean _glewInit_GL_ARB_texture_storage_multisample ();
-static GLboolean _glewInit_GL_ARB_texture_view ();
-static GLboolean _glewInit_GL_ARB_timer_query ();
-static GLboolean _glewInit_GL_ARB_transform_feedback2 ();
-static GLboolean _glewInit_GL_ARB_transform_feedback3 ();
-static GLboolean _glewInit_GL_ARB_transform_feedback_instanced ();
-static GLboolean _glewInit_GL_ARB_transpose_matrix ();
-static GLboolean _glewInit_GL_ARB_uniform_buffer_object ();
-static GLboolean _glewInit_GL_ARB_vertex_array_object ();
-static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit ();
-static GLboolean _glewInit_GL_ARB_vertex_attrib_binding ();
-static GLboolean _glewInit_GL_ARB_vertex_blend ();
-static GLboolean _glewInit_GL_ARB_vertex_buffer_object ();
-static GLboolean _glewInit_GL_ARB_vertex_program ();
-static GLboolean _glewInit_GL_ARB_vertex_shader ();
-static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev ();
-static GLboolean _glewInit_GL_ARB_viewport_array ();
-static GLboolean _glewInit_GL_ARB_window_pos ();
-static GLboolean _glewInit_GL_ATI_draw_buffers ();
-static GLboolean _glewInit_GL_ATI_element_array ();
-static GLboolean _glewInit_GL_ATI_envmap_bumpmap ();
-static GLboolean _glewInit_GL_ATI_fragment_shader ();
-static GLboolean _glewInit_GL_ATI_map_object_buffer ();
-static GLboolean _glewInit_GL_ATI_pn_triangles ();
-static GLboolean _glewInit_GL_ATI_separate_stencil ();
-static GLboolean _glewInit_GL_ATI_vertex_array_object ();
-static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object ();
-static GLboolean _glewInit_GL_ATI_vertex_streams ();
-static GLboolean _glewInit_GL_EXT_EGL_image_storage ();
-static GLboolean _glewInit_GL_EXT_base_instance ();
-static GLboolean _glewInit_GL_EXT_bindable_uniform ();
-static GLboolean _glewInit_GL_EXT_blend_color ();
-static GLboolean _glewInit_GL_EXT_blend_equation_separate ();
-static GLboolean _glewInit_GL_EXT_blend_func_extended ();
-static GLboolean _glewInit_GL_EXT_blend_func_separate ();
-static GLboolean _glewInit_GL_EXT_blend_minmax ();
-static GLboolean _glewInit_GL_EXT_buffer_storage ();
-static GLboolean _glewInit_GL_EXT_clear_texture ();
-static GLboolean _glewInit_GL_EXT_clip_control ();
-static GLboolean _glewInit_GL_EXT_color_subtable ();
-static GLboolean _glewInit_GL_EXT_compiled_vertex_array ();
-static GLboolean _glewInit_GL_EXT_convolution ();
-static GLboolean _glewInit_GL_EXT_coordinate_frame ();
-static GLboolean _glewInit_GL_EXT_copy_image ();
-static GLboolean _glewInit_GL_EXT_copy_texture ();
-static GLboolean _glewInit_GL_EXT_cull_vertex ();
-static GLboolean _glewInit_GL_EXT_debug_label ();
-static GLboolean _glewInit_GL_EXT_debug_marker ();
-static GLboolean _glewInit_GL_EXT_depth_bounds_test ();
-static GLboolean _glewInit_GL_EXT_direct_state_access ();
-static GLboolean _glewInit_GL_EXT_discard_framebuffer ();
-static GLboolean _glewInit_GL_EXT_disjoint_timer_query ();
-static GLboolean _glewInit_GL_EXT_draw_buffers ();
-static GLboolean _glewInit_GL_EXT_draw_buffers2 ();
-static GLboolean _glewInit_GL_EXT_draw_buffers_indexed ();
-static GLboolean _glewInit_GL_EXT_draw_elements_base_vertex ();
-static GLboolean _glewInit_GL_EXT_draw_instanced ();
-static GLboolean _glewInit_GL_EXT_draw_range_elements ();
-static GLboolean _glewInit_GL_EXT_draw_transform_feedback ();
-static GLboolean _glewInit_GL_EXT_external_buffer ();
-static GLboolean _glewInit_GL_EXT_fog_coord ();
-static GLboolean _glewInit_GL_EXT_fragment_lighting ();
-static GLboolean _glewInit_GL_EXT_framebuffer_blit ();
-static GLboolean _glewInit_GL_EXT_framebuffer_multisample ();
-static GLboolean _glewInit_GL_EXT_framebuffer_object ();
-static GLboolean _glewInit_GL_EXT_geometry_shader4 ();
-static GLboolean _glewInit_GL_EXT_gpu_program_parameters ();
-static GLboolean _glewInit_GL_EXT_gpu_shader4 ();
-static GLboolean _glewInit_GL_EXT_histogram ();
-static GLboolean _glewInit_GL_EXT_index_func ();
-static GLboolean _glewInit_GL_EXT_index_material ();
-static GLboolean _glewInit_GL_EXT_instanced_arrays ();
-static GLboolean _glewInit_GL_EXT_light_texture ();
-static GLboolean _glewInit_GL_EXT_map_buffer_range ();
-static GLboolean _glewInit_GL_EXT_memory_object ();
-static GLboolean _glewInit_GL_EXT_memory_object_fd ();
-static GLboolean _glewInit_GL_EXT_memory_object_win32 ();
-static GLboolean _glewInit_GL_EXT_multi_draw_arrays ();
-static GLboolean _glewInit_GL_EXT_multi_draw_indirect ();
-static GLboolean _glewInit_GL_EXT_multisample ();
-static GLboolean _glewInit_GL_EXT_multisampled_render_to_texture ();
-static GLboolean _glewInit_GL_EXT_multiview_draw_buffers ();
-static GLboolean _glewInit_GL_EXT_paletted_texture ();
-static GLboolean _glewInit_GL_EXT_pixel_transform ();
-static GLboolean _glewInit_GL_EXT_point_parameters ();
-static GLboolean _glewInit_GL_EXT_polygon_offset ();
-static GLboolean _glewInit_GL_EXT_polygon_offset_clamp ();
-static GLboolean _glewInit_GL_EXT_primitive_bounding_box ();
-static GLboolean _glewInit_GL_EXT_provoking_vertex ();
-static GLboolean _glewInit_GL_EXT_raster_multisample ();
-static GLboolean _glewInit_GL_EXT_robustness ();
-static GLboolean _glewInit_GL_EXT_scene_marker ();
-static GLboolean _glewInit_GL_EXT_secondary_color ();
-static GLboolean _glewInit_GL_EXT_semaphore ();
-static GLboolean _glewInit_GL_EXT_semaphore_fd ();
-static GLboolean _glewInit_GL_EXT_semaphore_win32 ();
-static GLboolean _glewInit_GL_EXT_separate_shader_objects ();
-static GLboolean _glewInit_GL_EXT_shader_framebuffer_fetch ();
-static GLboolean _glewInit_GL_EXT_shader_image_load_store ();
-static GLboolean _glewInit_GL_EXT_shader_pixel_local_storage2 ();
-static GLboolean _glewInit_GL_EXT_sparse_texture ();
-static GLboolean _glewInit_GL_EXT_stencil_two_side ();
-static GLboolean _glewInit_GL_EXT_subtexture ();
-static GLboolean _glewInit_GL_EXT_tessellation_point_size ();
-static GLboolean _glewInit_GL_EXT_texture3D ();
-static GLboolean _glewInit_GL_EXT_texture_array ();
-static GLboolean _glewInit_GL_EXT_texture_border_clamp ();
-static GLboolean _glewInit_GL_EXT_texture_buffer_object ();
-static GLboolean _glewInit_GL_EXT_texture_integer ();
-static GLboolean _glewInit_GL_EXT_texture_object ();
-static GLboolean _glewInit_GL_EXT_texture_perturb_normal ();
-static GLboolean _glewInit_GL_EXT_texture_storage ();
-static GLboolean _glewInit_GL_EXT_texture_view ();
-static GLboolean _glewInit_GL_EXT_timer_query ();
-static GLboolean _glewInit_GL_EXT_transform_feedback ();
-static GLboolean _glewInit_GL_EXT_vertex_array ();
-static GLboolean _glewInit_GL_EXT_vertex_array_setXXX ();
-static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit ();
-static GLboolean _glewInit_GL_EXT_vertex_shader ();
-static GLboolean _glewInit_GL_EXT_vertex_weighting ();
-static GLboolean _glewInit_GL_EXT_win32_keyed_mutex ();
-static GLboolean _glewInit_GL_EXT_window_rectangles ();
-static GLboolean _glewInit_GL_EXT_x11_sync_object ();
-static GLboolean _glewInit_GL_GREMEDY_frame_terminator ();
-static GLboolean _glewInit_GL_GREMEDY_string_marker ();
-static GLboolean _glewInit_GL_HP_image_transform ();
-static GLboolean _glewInit_GL_IBM_multimode_draw_arrays ();
-static GLboolean _glewInit_GL_IBM_vertex_array_lists ();
-static GLboolean _glewInit_GL_IMG_bindless_texture ();
-static GLboolean _glewInit_GL_IMG_framebuffer_downsample ();
-static GLboolean _glewInit_GL_IMG_multisampled_render_to_texture ();
-static GLboolean _glewInit_GL_INTEL_map_texture ();
-static GLboolean _glewInit_GL_INTEL_parallel_arrays ();
-static GLboolean _glewInit_GL_INTEL_performance_query ();
-static GLboolean _glewInit_GL_INTEL_texture_scissor ();
-static GLboolean _glewInit_GL_KHR_blend_equation_advanced ();
-static GLboolean _glewInit_GL_KHR_debug ();
-static GLboolean _glewInit_GL_KHR_parallel_shader_compile ();
-static GLboolean _glewInit_GL_KHR_robustness ();
-static GLboolean _glewInit_GL_KTX_buffer_region ();
-static GLboolean _glewInit_GL_MESA_framebuffer_flip_y ();
-static GLboolean _glewInit_GL_MESA_resize_buffers ();
-static GLboolean _glewInit_GL_MESA_window_pos ();
-static GLboolean _glewInit_GL_NVX_conditional_render ();
-static GLboolean _glewInit_GL_NVX_gpu_multicast2 ();
-static GLboolean _glewInit_GL_NVX_linked_gpu_multicast ();
-static GLboolean _glewInit_GL_NVX_progress_fence ();
-static GLboolean _glewInit_GL_NV_3dvision_settings ();
-static GLboolean _glewInit_GL_NV_alpha_to_coverage_dither_control ();
-static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect ();
-static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count ();
-static GLboolean _glewInit_GL_NV_bindless_texture ();
-static GLboolean _glewInit_GL_NV_blend_equation_advanced ();
-static GLboolean _glewInit_GL_NV_clip_space_w_scaling ();
-static GLboolean _glewInit_GL_NV_command_list ();
-static GLboolean _glewInit_GL_NV_conditional_render ();
-static GLboolean _glewInit_GL_NV_conservative_raster ();
-static GLboolean _glewInit_GL_NV_conservative_raster_dilate ();
-static GLboolean _glewInit_GL_NV_conservative_raster_pre_snap_triangles ();
-static GLboolean _glewInit_GL_NV_copy_buffer ();
-static GLboolean _glewInit_GL_NV_copy_image ();
-static GLboolean _glewInit_GL_NV_depth_buffer_float ();
-static GLboolean _glewInit_GL_NV_draw_buffers ();
-static GLboolean _glewInit_GL_NV_draw_instanced ();
-static GLboolean _glewInit_GL_NV_draw_texture ();
-static GLboolean _glewInit_GL_NV_draw_vulkan_image ();
-static GLboolean _glewInit_GL_NV_evaluators ();
-static GLboolean _glewInit_GL_NV_explicit_multisample ();
-static GLboolean _glewInit_GL_NV_fence ();
-static GLboolean _glewInit_GL_NV_fragment_coverage_to_color ();
-static GLboolean _glewInit_GL_NV_fragment_program ();
-static GLboolean _glewInit_GL_NV_framebuffer_blit ();
-static GLboolean _glewInit_GL_NV_framebuffer_multisample ();
-static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage ();
-static GLboolean _glewInit_GL_NV_geometry_program4 ();
-static GLboolean _glewInit_GL_NV_gpu_multicast ();
-static GLboolean _glewInit_GL_NV_gpu_program4 ();
-static GLboolean _glewInit_GL_NV_gpu_shader5 ();
-static GLboolean _glewInit_GL_NV_half_float ();
-static GLboolean _glewInit_GL_NV_instanced_arrays ();
-static GLboolean _glewInit_GL_NV_internalformat_sample_query ();
-static GLboolean _glewInit_GL_NV_memory_attachment ();
-static GLboolean _glewInit_GL_NV_mesh_shader ();
-static GLboolean _glewInit_GL_NV_non_square_matrices ();
-static GLboolean _glewInit_GL_NV_occlusion_query ();
-static GLboolean _glewInit_GL_NV_parameter_buffer_object ();
-static GLboolean _glewInit_GL_NV_path_rendering ();
-static GLboolean _glewInit_GL_NV_pixel_data_range ();
-static GLboolean _glewInit_GL_NV_point_sprite ();
-static GLboolean _glewInit_GL_NV_polygon_mode ();
-static GLboolean _glewInit_GL_NV_present_video ();
-static GLboolean _glewInit_GL_NV_primitive_restart ();
-static GLboolean _glewInit_GL_NV_read_buffer ();
-static GLboolean _glewInit_GL_NV_register_combiners ();
-static GLboolean _glewInit_GL_NV_register_combiners2 ();
-static GLboolean _glewInit_GL_NV_sample_locations ();
-static GLboolean _glewInit_GL_NV_scissor_exclusive ();
-static GLboolean _glewInit_GL_NV_shader_buffer_load ();
-static GLboolean _glewInit_GL_NV_shading_rate_image ();
-static GLboolean _glewInit_GL_NV_texture_array ();
-static GLboolean _glewInit_GL_NV_texture_barrier ();
-static GLboolean _glewInit_GL_NV_texture_multisample ();
-static GLboolean _glewInit_GL_NV_transform_feedback ();
-static GLboolean _glewInit_GL_NV_transform_feedback2 ();
-static GLboolean _glewInit_GL_NV_vdpau_interop ();
-static GLboolean _glewInit_GL_NV_vdpau_interop2 ();
-static GLboolean _glewInit_GL_NV_vertex_array_range ();
-static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit ();
-static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory ();
-static GLboolean _glewInit_GL_NV_vertex_program ();
-static GLboolean _glewInit_GL_NV_video_capture ();
-static GLboolean _glewInit_GL_NV_viewport_array ();
-static GLboolean _glewInit_GL_NV_viewport_swizzle ();
-static GLboolean _glewInit_GL_OES_EGL_image ();
-static GLboolean _glewInit_GL_OES_blend_equation_separate ();
-static GLboolean _glewInit_GL_OES_blend_func_separate ();
-static GLboolean _glewInit_GL_OES_blend_subtract ();
-static GLboolean _glewInit_GL_OES_copy_image ();
-static GLboolean _glewInit_GL_OES_draw_buffers_indexed ();
-static GLboolean _glewInit_GL_OES_framebuffer_object ();
-static GLboolean _glewInit_GL_OES_get_program_binary ();
-static GLboolean _glewInit_GL_OES_mapbuffer ();
-static GLboolean _glewInit_GL_OES_matrix_palette ();
-static GLboolean _glewInit_GL_OES_sample_shading ();
-static GLboolean _glewInit_GL_OES_single_precision ();
-static GLboolean _glewInit_GL_OES_texture_3D ();
-static GLboolean _glewInit_GL_OES_texture_border_clamp ();
-static GLboolean _glewInit_GL_OES_texture_buffer ();
-static GLboolean _glewInit_GL_OES_texture_cube_map ();
-static GLboolean _glewInit_GL_OES_texture_storage_multisample_2d_array ();
-static GLboolean _glewInit_GL_OES_texture_view ();
-static GLboolean _glewInit_GL_OES_vertex_array_object ();
-static GLboolean _glewInit_GL_OVR_multiview ();
-static GLboolean _glewInit_GL_OVR_multiview_multisampled_render_to_texture ();
-static GLboolean _glewInit_GL_QCOM_alpha_test ();
-static GLboolean _glewInit_GL_QCOM_driver_control ();
-static GLboolean _glewInit_GL_QCOM_extended_get ();
-static GLboolean _glewInit_GL_QCOM_extended_get2 ();
-static GLboolean _glewInit_GL_QCOM_framebuffer_foveated ();
-static GLboolean _glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent ();
-static GLboolean _glewInit_GL_QCOM_texture_foveated ();
-static GLboolean _glewInit_GL_QCOM_tiled_rendering ();
-static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility ();
-static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility ();
-static GLboolean _glewInit_GL_REGAL_error_string ();
-static GLboolean _glewInit_GL_REGAL_extension_query ();
-static GLboolean _glewInit_GL_REGAL_log ();
-static GLboolean _glewInit_GL_REGAL_proc_address ();
-static GLboolean _glewInit_GL_SGIS_detail_texture ();
-static GLboolean _glewInit_GL_SGIS_fog_function ();
-static GLboolean _glewInit_GL_SGIS_multisample ();
-static GLboolean _glewInit_GL_SGIS_multitexture ();
-static GLboolean _glewInit_GL_SGIS_shared_multisample ();
-static GLboolean _glewInit_GL_SGIS_sharpen_texture ();
-static GLboolean _glewInit_GL_SGIS_texture4D ();
-static GLboolean _glewInit_GL_SGIS_texture_filter4 ();
-static GLboolean _glewInit_GL_SGIX_async ();
-static GLboolean _glewInit_GL_SGIX_datapipe ();
-static GLboolean _glewInit_GL_SGIX_flush_raster ();
-static GLboolean _glewInit_GL_SGIX_fog_layers ();
-static GLboolean _glewInit_GL_SGIX_fog_texture ();
-static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting ();
-static GLboolean _glewInit_GL_SGIX_framezoom ();
-static GLboolean _glewInit_GL_SGIX_igloo_interface ();
-static GLboolean _glewInit_GL_SGIX_mpeg1 ();
-static GLboolean _glewInit_GL_SGIX_nonlinear_lighting_pervertex ();
-static GLboolean _glewInit_GL_SGIX_pixel_texture ();
-static GLboolean _glewInit_GL_SGIX_polynomial_ffd ();
-static GLboolean _glewInit_GL_SGIX_quad_mesh ();
-static GLboolean _glewInit_GL_SGIX_reference_plane ();
-static GLboolean _glewInit_GL_SGIX_sprite ();
-static GLboolean _glewInit_GL_SGIX_tag_sample_buffer ();
-static GLboolean _glewInit_GL_SGIX_vector_ops ();
-static GLboolean _glewInit_GL_SGIX_vertex_array_object ();
-static GLboolean _glewInit_GL_SGI_color_table ();
-static GLboolean _glewInit_GL_SGI_fft ();
-static GLboolean _glewInit_GL_SUNX_constant_data ();
-static GLboolean _glewInit_GL_SUN_global_alpha ();
-static GLboolean _glewInit_GL_SUN_read_video_pixels ();
-static GLboolean _glewInit_GL_SUN_triangle_list ();
-static GLboolean _glewInit_GL_SUN_vertex ();
-static GLboolean _glewInit_GL_WIN_swap_hint ();
-
-#ifdef GL_VERSION_1_2
-
-static GLboolean _glewInit_GL_VERSION_1_2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage3D")) == NULL) || r;
- r = ((glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElements")) == NULL) || r;
- r = ((glTexImage3D = (PFNGLTEXIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTexImage3D")) == NULL) || r;
- r = ((glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage3D")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_1_2 */
-
-#ifdef GL_VERSION_1_3
-
-static GLboolean _glewInit_GL_VERSION_1_3 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glActiveTexture = (PFNGLACTIVETEXTUREPROC)glewGetProcAddress((const GLubyte*)"glActiveTexture")) == NULL) || r;
- r = ((glClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREPROC)glewGetProcAddress((const GLubyte*)"glClientActiveTexture")) == NULL) || r;
- r = ((glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage1D")) == NULL) || r;
- r = ((glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage2D")) == NULL) || r;
- r = ((glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage3D")) == NULL) || r;
- r = ((glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage1D")) == NULL) || r;
- r = ((glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage2D")) == NULL) || r;
- r = ((glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage3D")) == NULL) || r;
- r = ((glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedTexImage")) == NULL) || r;
- r = ((glLoadTransposeMatrixd = (PFNGLLOADTRANSPOSEMATRIXDPROC)glewGetProcAddress((const GLubyte*)"glLoadTransposeMatrixd")) == NULL) || r;
- r = ((glLoadTransposeMatrixf = (PFNGLLOADTRANSPOSEMATRIXFPROC)glewGetProcAddress((const GLubyte*)"glLoadTransposeMatrixf")) == NULL) || r;
- r = ((glMultTransposeMatrixd = (PFNGLMULTTRANSPOSEMATRIXDPROC)glewGetProcAddress((const GLubyte*)"glMultTransposeMatrixd")) == NULL) || r;
- r = ((glMultTransposeMatrixf = (PFNGLMULTTRANSPOSEMATRIXFPROC)glewGetProcAddress((const GLubyte*)"glMultTransposeMatrixf")) == NULL) || r;
- r = ((glMultiTexCoord1d = (PFNGLMULTITEXCOORD1DPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1d")) == NULL) || r;
- r = ((glMultiTexCoord1dv = (PFNGLMULTITEXCOORD1DVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1dv")) == NULL) || r;
- r = ((glMultiTexCoord1f = (PFNGLMULTITEXCOORD1FPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1f")) == NULL) || r;
- r = ((glMultiTexCoord1fv = (PFNGLMULTITEXCOORD1FVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1fv")) == NULL) || r;
- r = ((glMultiTexCoord1i = (PFNGLMULTITEXCOORD1IPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1i")) == NULL) || r;
- r = ((glMultiTexCoord1iv = (PFNGLMULTITEXCOORD1IVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1iv")) == NULL) || r;
- r = ((glMultiTexCoord1s = (PFNGLMULTITEXCOORD1SPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1s")) == NULL) || r;
- r = ((glMultiTexCoord1sv = (PFNGLMULTITEXCOORD1SVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1sv")) == NULL) || r;
- r = ((glMultiTexCoord2d = (PFNGLMULTITEXCOORD2DPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2d")) == NULL) || r;
- r = ((glMultiTexCoord2dv = (PFNGLMULTITEXCOORD2DVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2dv")) == NULL) || r;
- r = ((glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2f")) == NULL) || r;
- r = ((glMultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2fv")) == NULL) || r;
- r = ((glMultiTexCoord2i = (PFNGLMULTITEXCOORD2IPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2i")) == NULL) || r;
- r = ((glMultiTexCoord2iv = (PFNGLMULTITEXCOORD2IVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2iv")) == NULL) || r;
- r = ((glMultiTexCoord2s = (PFNGLMULTITEXCOORD2SPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2s")) == NULL) || r;
- r = ((glMultiTexCoord2sv = (PFNGLMULTITEXCOORD2SVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2sv")) == NULL) || r;
- r = ((glMultiTexCoord3d = (PFNGLMULTITEXCOORD3DPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3d")) == NULL) || r;
- r = ((glMultiTexCoord3dv = (PFNGLMULTITEXCOORD3DVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3dv")) == NULL) || r;
- r = ((glMultiTexCoord3f = (PFNGLMULTITEXCOORD3FPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3f")) == NULL) || r;
- r = ((glMultiTexCoord3fv = (PFNGLMULTITEXCOORD3FVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3fv")) == NULL) || r;
- r = ((glMultiTexCoord3i = (PFNGLMULTITEXCOORD3IPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3i")) == NULL) || r;
- r = ((glMultiTexCoord3iv = (PFNGLMULTITEXCOORD3IVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3iv")) == NULL) || r;
- r = ((glMultiTexCoord3s = (PFNGLMULTITEXCOORD3SPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3s")) == NULL) || r;
- r = ((glMultiTexCoord3sv = (PFNGLMULTITEXCOORD3SVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3sv")) == NULL) || r;
- r = ((glMultiTexCoord4d = (PFNGLMULTITEXCOORD4DPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4d")) == NULL) || r;
- r = ((glMultiTexCoord4dv = (PFNGLMULTITEXCOORD4DVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4dv")) == NULL) || r;
- r = ((glMultiTexCoord4f = (PFNGLMULTITEXCOORD4FPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4f")) == NULL) || r;
- r = ((glMultiTexCoord4fv = (PFNGLMULTITEXCOORD4FVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4fv")) == NULL) || r;
- r = ((glMultiTexCoord4i = (PFNGLMULTITEXCOORD4IPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4i")) == NULL) || r;
- r = ((glMultiTexCoord4iv = (PFNGLMULTITEXCOORD4IVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4iv")) == NULL) || r;
- r = ((glMultiTexCoord4s = (PFNGLMULTITEXCOORD4SPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4s")) == NULL) || r;
- r = ((glMultiTexCoord4sv = (PFNGLMULTITEXCOORD4SVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4sv")) == NULL) || r;
- r = ((glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)glewGetProcAddress((const GLubyte*)"glSampleCoverage")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_1_3 */
-
-#ifdef GL_VERSION_1_4
-
-static GLboolean _glewInit_GL_VERSION_1_4 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendColor = (PFNGLBLENDCOLORPROC)glewGetProcAddress((const GLubyte*)"glBlendColor")) == NULL) || r;
- r = ((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)"glBlendEquation")) == NULL) || r;
- r = ((glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparate")) == NULL) || r;
- r = ((glFogCoordPointer = (PFNGLFOGCOORDPOINTERPROC)glewGetProcAddress((const GLubyte*)"glFogCoordPointer")) == NULL) || r;
- r = ((glFogCoordd = (PFNGLFOGCOORDDPROC)glewGetProcAddress((const GLubyte*)"glFogCoordd")) == NULL) || r;
- r = ((glFogCoorddv = (PFNGLFOGCOORDDVPROC)glewGetProcAddress((const GLubyte*)"glFogCoorddv")) == NULL) || r;
- r = ((glFogCoordf = (PFNGLFOGCOORDFPROC)glewGetProcAddress((const GLubyte*)"glFogCoordf")) == NULL) || r;
- r = ((glFogCoordfv = (PFNGLFOGCOORDFVPROC)glewGetProcAddress((const GLubyte*)"glFogCoordfv")) == NULL) || r;
- r = ((glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArrays")) == NULL) || r;
- r = ((glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElements")) == NULL) || r;
- r = ((glPointParameterf = (PFNGLPOINTPARAMETERFPROC)glewGetProcAddress((const GLubyte*)"glPointParameterf")) == NULL) || r;
- r = ((glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glPointParameterfv")) == NULL) || r;
- r = ((glPointParameteri = (PFNGLPOINTPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glPointParameteri")) == NULL) || r;
- r = ((glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glPointParameteriv")) == NULL) || r;
- r = ((glSecondaryColor3b = (PFNGLSECONDARYCOLOR3BPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3b")) == NULL) || r;
- r = ((glSecondaryColor3bv = (PFNGLSECONDARYCOLOR3BVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3bv")) == NULL) || r;
- r = ((glSecondaryColor3d = (PFNGLSECONDARYCOLOR3DPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3d")) == NULL) || r;
- r = ((glSecondaryColor3dv = (PFNGLSECONDARYCOLOR3DVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3dv")) == NULL) || r;
- r = ((glSecondaryColor3f = (PFNGLSECONDARYCOLOR3FPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3f")) == NULL) || r;
- r = ((glSecondaryColor3fv = (PFNGLSECONDARYCOLOR3FVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3fv")) == NULL) || r;
- r = ((glSecondaryColor3i = (PFNGLSECONDARYCOLOR3IPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3i")) == NULL) || r;
- r = ((glSecondaryColor3iv = (PFNGLSECONDARYCOLOR3IVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3iv")) == NULL) || r;
- r = ((glSecondaryColor3s = (PFNGLSECONDARYCOLOR3SPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3s")) == NULL) || r;
- r = ((glSecondaryColor3sv = (PFNGLSECONDARYCOLOR3SVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3sv")) == NULL) || r;
- r = ((glSecondaryColor3ub = (PFNGLSECONDARYCOLOR3UBPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ub")) == NULL) || r;
- r = ((glSecondaryColor3ubv = (PFNGLSECONDARYCOLOR3UBVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ubv")) == NULL) || r;
- r = ((glSecondaryColor3ui = (PFNGLSECONDARYCOLOR3UIPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ui")) == NULL) || r;
- r = ((glSecondaryColor3uiv = (PFNGLSECONDARYCOLOR3UIVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3uiv")) == NULL) || r;
- r = ((glSecondaryColor3us = (PFNGLSECONDARYCOLOR3USPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3us")) == NULL) || r;
- r = ((glSecondaryColor3usv = (PFNGLSECONDARYCOLOR3USVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3usv")) == NULL) || r;
- r = ((glSecondaryColorPointer = (PFNGLSECONDARYCOLORPOINTERPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorPointer")) == NULL) || r;
- r = ((glWindowPos2d = (PFNGLWINDOWPOS2DPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2d")) == NULL) || r;
- r = ((glWindowPos2dv = (PFNGLWINDOWPOS2DVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2dv")) == NULL) || r;
- r = ((glWindowPos2f = (PFNGLWINDOWPOS2FPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2f")) == NULL) || r;
- r = ((glWindowPos2fv = (PFNGLWINDOWPOS2FVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2fv")) == NULL) || r;
- r = ((glWindowPos2i = (PFNGLWINDOWPOS2IPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2i")) == NULL) || r;
- r = ((glWindowPos2iv = (PFNGLWINDOWPOS2IVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2iv")) == NULL) || r;
- r = ((glWindowPos2s = (PFNGLWINDOWPOS2SPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2s")) == NULL) || r;
- r = ((glWindowPos2sv = (PFNGLWINDOWPOS2SVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2sv")) == NULL) || r;
- r = ((glWindowPos3d = (PFNGLWINDOWPOS3DPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3d")) == NULL) || r;
- r = ((glWindowPos3dv = (PFNGLWINDOWPOS3DVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3dv")) == NULL) || r;
- r = ((glWindowPos3f = (PFNGLWINDOWPOS3FPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3f")) == NULL) || r;
- r = ((glWindowPos3fv = (PFNGLWINDOWPOS3FVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3fv")) == NULL) || r;
- r = ((glWindowPos3i = (PFNGLWINDOWPOS3IPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3i")) == NULL) || r;
- r = ((glWindowPos3iv = (PFNGLWINDOWPOS3IVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3iv")) == NULL) || r;
- r = ((glWindowPos3s = (PFNGLWINDOWPOS3SPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3s")) == NULL) || r;
- r = ((glWindowPos3sv = (PFNGLWINDOWPOS3SVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3sv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_1_4 */
-
-#ifdef GL_VERSION_1_5
-
-static GLboolean _glewInit_GL_VERSION_1_5 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginQuery = (PFNGLBEGINQUERYPROC)glewGetProcAddress((const GLubyte*)"glBeginQuery")) == NULL) || r;
- r = ((glBindBuffer = (PFNGLBINDBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBindBuffer")) == NULL) || r;
- r = ((glBufferData = (PFNGLBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glBufferData")) == NULL) || r;
- r = ((glBufferSubData = (PFNGLBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glBufferSubData")) == NULL) || r;
- r = ((glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glDeleteBuffers")) == NULL) || r;
- r = ((glDeleteQueries = (PFNGLDELETEQUERIESPROC)glewGetProcAddress((const GLubyte*)"glDeleteQueries")) == NULL) || r;
- r = ((glEndQuery = (PFNGLENDQUERYPROC)glewGetProcAddress((const GLubyte*)"glEndQuery")) == NULL) || r;
- r = ((glGenBuffers = (PFNGLGENBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glGenBuffers")) == NULL) || r;
- r = ((glGenQueries = (PFNGLGENQUERIESPROC)glewGetProcAddress((const GLubyte*)"glGenQueries")) == NULL) || r;
- r = ((glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetBufferParameteriv")) == NULL) || r;
- r = ((glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)glewGetProcAddress((const GLubyte*)"glGetBufferPointerv")) == NULL) || r;
- r = ((glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glGetBufferSubData")) == NULL) || r;
- r = ((glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectiv")) == NULL) || r;
- r = ((glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectuiv")) == NULL) || r;
- r = ((glGetQueryiv = (PFNGLGETQUERYIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryiv")) == NULL) || r;
- r = ((glIsBuffer = (PFNGLISBUFFERPROC)glewGetProcAddress((const GLubyte*)"glIsBuffer")) == NULL) || r;
- r = ((glIsQuery = (PFNGLISQUERYPROC)glewGetProcAddress((const GLubyte*)"glIsQuery")) == NULL) || r;
- r = ((glMapBuffer = (PFNGLMAPBUFFERPROC)glewGetProcAddress((const GLubyte*)"glMapBuffer")) == NULL) || r;
- r = ((glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)glewGetProcAddress((const GLubyte*)"glUnmapBuffer")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_1_5 */
-
-#ifdef GL_VERSION_2_0
-
-static GLboolean _glewInit_GL_VERSION_2_0 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAttachShader = (PFNGLATTACHSHADERPROC)glewGetProcAddress((const GLubyte*)"glAttachShader")) == NULL) || r;
- r = ((glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)glewGetProcAddress((const GLubyte*)"glBindAttribLocation")) == NULL) || r;
- r = ((glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparate")) == NULL) || r;
- r = ((glCompileShader = (PFNGLCOMPILESHADERPROC)glewGetProcAddress((const GLubyte*)"glCompileShader")) == NULL) || r;
- r = ((glCreateProgram = (PFNGLCREATEPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glCreateProgram")) == NULL) || r;
- r = ((glCreateShader = (PFNGLCREATESHADERPROC)glewGetProcAddress((const GLubyte*)"glCreateShader")) == NULL) || r;
- r = ((glDeleteProgram = (PFNGLDELETEPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glDeleteProgram")) == NULL) || r;
- r = ((glDeleteShader = (PFNGLDELETESHADERPROC)glewGetProcAddress((const GLubyte*)"glDeleteShader")) == NULL) || r;
- r = ((glDetachShader = (PFNGLDETACHSHADERPROC)glewGetProcAddress((const GLubyte*)"glDetachShader")) == NULL) || r;
- r = ((glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexAttribArray")) == NULL) || r;
- r = ((glDrawBuffers = (PFNGLDRAWBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffers")) == NULL) || r;
- r = ((glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexAttribArray")) == NULL) || r;
- r = ((glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)glewGetProcAddress((const GLubyte*)"glGetActiveAttrib")) == NULL) || r;
- r = ((glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniform")) == NULL) || r;
- r = ((glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)glewGetProcAddress((const GLubyte*)"glGetAttachedShaders")) == NULL) || r;
- r = ((glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)glewGetProcAddress((const GLubyte*)"glGetAttribLocation")) == NULL) || r;
- r = ((glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)glewGetProcAddress((const GLubyte*)"glGetProgramInfoLog")) == NULL) || r;
- r = ((glGetProgramiv = (PFNGLGETPROGRAMIVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramiv")) == NULL) || r;
- r = ((glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)glewGetProcAddress((const GLubyte*)"glGetShaderInfoLog")) == NULL) || r;
- r = ((glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)glewGetProcAddress((const GLubyte*)"glGetShaderSource")) == NULL) || r;
- r = ((glGetShaderiv = (PFNGLGETSHADERIVPROC)glewGetProcAddress((const GLubyte*)"glGetShaderiv")) == NULL) || r;
- r = ((glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)glewGetProcAddress((const GLubyte*)"glGetUniformLocation")) == NULL) || r;
- r = ((glGetUniformfv = (PFNGLGETUNIFORMFVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformfv")) == NULL) || r;
- r = ((glGetUniformiv = (PFNGLGETUNIFORMIVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformiv")) == NULL) || r;
- r = ((glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribPointerv")) == NULL) || r;
- r = ((glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribdv")) == NULL) || r;
- r = ((glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribfv")) == NULL) || r;
- r = ((glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribiv")) == NULL) || r;
- r = ((glIsProgram = (PFNGLISPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glIsProgram")) == NULL) || r;
- r = ((glIsShader = (PFNGLISSHADERPROC)glewGetProcAddress((const GLubyte*)"glIsShader")) == NULL) || r;
- r = ((glLinkProgram = (PFNGLLINKPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glLinkProgram")) == NULL) || r;
- r = ((glShaderSource = (PFNGLSHADERSOURCEPROC)glewGetProcAddress((const GLubyte*)"glShaderSource")) == NULL) || r;
- r = ((glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)glewGetProcAddress((const GLubyte*)"glStencilFuncSeparate")) == NULL) || r;
- r = ((glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)glewGetProcAddress((const GLubyte*)"glStencilMaskSeparate")) == NULL) || r;
- r = ((glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)glewGetProcAddress((const GLubyte*)"glStencilOpSeparate")) == NULL) || r;
- r = ((glUniform1f = (PFNGLUNIFORM1FPROC)glewGetProcAddress((const GLubyte*)"glUniform1f")) == NULL) || r;
- r = ((glUniform1fv = (PFNGLUNIFORM1FVPROC)glewGetProcAddress((const GLubyte*)"glUniform1fv")) == NULL) || r;
- r = ((glUniform1i = (PFNGLUNIFORM1IPROC)glewGetProcAddress((const GLubyte*)"glUniform1i")) == NULL) || r;
- r = ((glUniform1iv = (PFNGLUNIFORM1IVPROC)glewGetProcAddress((const GLubyte*)"glUniform1iv")) == NULL) || r;
- r = ((glUniform2f = (PFNGLUNIFORM2FPROC)glewGetProcAddress((const GLubyte*)"glUniform2f")) == NULL) || r;
- r = ((glUniform2fv = (PFNGLUNIFORM2FVPROC)glewGetProcAddress((const GLubyte*)"glUniform2fv")) == NULL) || r;
- r = ((glUniform2i = (PFNGLUNIFORM2IPROC)glewGetProcAddress((const GLubyte*)"glUniform2i")) == NULL) || r;
- r = ((glUniform2iv = (PFNGLUNIFORM2IVPROC)glewGetProcAddress((const GLubyte*)"glUniform2iv")) == NULL) || r;
- r = ((glUniform3f = (PFNGLUNIFORM3FPROC)glewGetProcAddress((const GLubyte*)"glUniform3f")) == NULL) || r;
- r = ((glUniform3fv = (PFNGLUNIFORM3FVPROC)glewGetProcAddress((const GLubyte*)"glUniform3fv")) == NULL) || r;
- r = ((glUniform3i = (PFNGLUNIFORM3IPROC)glewGetProcAddress((const GLubyte*)"glUniform3i")) == NULL) || r;
- r = ((glUniform3iv = (PFNGLUNIFORM3IVPROC)glewGetProcAddress((const GLubyte*)"glUniform3iv")) == NULL) || r;
- r = ((glUniform4f = (PFNGLUNIFORM4FPROC)glewGetProcAddress((const GLubyte*)"glUniform4f")) == NULL) || r;
- r = ((glUniform4fv = (PFNGLUNIFORM4FVPROC)glewGetProcAddress((const GLubyte*)"glUniform4fv")) == NULL) || r;
- r = ((glUniform4i = (PFNGLUNIFORM4IPROC)glewGetProcAddress((const GLubyte*)"glUniform4i")) == NULL) || r;
- r = ((glUniform4iv = (PFNGLUNIFORM4IVPROC)glewGetProcAddress((const GLubyte*)"glUniform4iv")) == NULL) || r;
- r = ((glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2fv")) == NULL) || r;
- r = ((glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3fv")) == NULL) || r;
- r = ((glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4fv")) == NULL) || r;
- r = ((glUseProgram = (PFNGLUSEPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glUseProgram")) == NULL) || r;
- r = ((glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glValidateProgram")) == NULL) || r;
- r = ((glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1d")) == NULL) || r;
- r = ((glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1dv")) == NULL) || r;
- r = ((glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1f")) == NULL) || r;
- r = ((glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1fv")) == NULL) || r;
- r = ((glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1s")) == NULL) || r;
- r = ((glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1sv")) == NULL) || r;
- r = ((glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2d")) == NULL) || r;
- r = ((glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2dv")) == NULL) || r;
- r = ((glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2f")) == NULL) || r;
- r = ((glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2fv")) == NULL) || r;
- r = ((glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2s")) == NULL) || r;
- r = ((glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2sv")) == NULL) || r;
- r = ((glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3d")) == NULL) || r;
- r = ((glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3dv")) == NULL) || r;
- r = ((glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3f")) == NULL) || r;
- r = ((glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3fv")) == NULL) || r;
- r = ((glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3s")) == NULL) || r;
- r = ((glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3sv")) == NULL) || r;
- r = ((glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nbv")) == NULL) || r;
- r = ((glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Niv")) == NULL) || r;
- r = ((glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nsv")) == NULL) || r;
- r = ((glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nub")) == NULL) || r;
- r = ((glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nubv")) == NULL) || r;
- r = ((glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nuiv")) == NULL) || r;
- r = ((glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nusv")) == NULL) || r;
- r = ((glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4bv")) == NULL) || r;
- r = ((glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4d")) == NULL) || r;
- r = ((glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4dv")) == NULL) || r;
- r = ((glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4f")) == NULL) || r;
- r = ((glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4fv")) == NULL) || r;
- r = ((glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4iv")) == NULL) || r;
- r = ((glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4s")) == NULL) || r;
- r = ((glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4sv")) == NULL) || r;
- r = ((glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4ubv")) == NULL) || r;
- r = ((glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4uiv")) == NULL) || r;
- r = ((glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4usv")) == NULL) || r;
- r = ((glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribPointer")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_2_0 */
-
-#ifdef GL_VERSION_2_1
-
-static GLboolean _glewInit_GL_VERSION_2_1 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x3fv")) == NULL) || r;
- r = ((glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x4fv")) == NULL) || r;
- r = ((glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x2fv")) == NULL) || r;
- r = ((glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x4fv")) == NULL) || r;
- r = ((glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x2fv")) == NULL) || r;
- r = ((glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x3fv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_2_1 */
-
-#ifdef GL_VERSION_3_0
-
-static GLboolean _glewInit_GL_VERSION_3_0 ()
-{
- GLboolean r = GL_FALSE;
-
- r = _glewInit_GL_ARB_framebuffer_object() || r;
- r = _glewInit_GL_ARB_map_buffer_range() || r;
- r = _glewInit_GL_ARB_uniform_buffer_object() || r;
- r = _glewInit_GL_ARB_vertex_array_object() || r;
-
- r = ((glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)glewGetProcAddress((const GLubyte*)"glBeginConditionalRender")) == NULL) || r;
- r = ((glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glBeginTransformFeedback")) == NULL) || r;
- r = ((glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocation")) == NULL) || r;
- r = ((glClampColor = (PFNGLCLAMPCOLORPROC)glewGetProcAddress((const GLubyte*)"glClampColor")) == NULL) || r;
- r = ((glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)glewGetProcAddress((const GLubyte*)"glClearBufferfi")) == NULL) || r;
- r = ((glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)glewGetProcAddress((const GLubyte*)"glClearBufferfv")) == NULL) || r;
- r = ((glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)glewGetProcAddress((const GLubyte*)"glClearBufferiv")) == NULL) || r;
- r = ((glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)glewGetProcAddress((const GLubyte*)"glClearBufferuiv")) == NULL) || r;
- r = ((glColorMaski = (PFNGLCOLORMASKIPROC)glewGetProcAddress((const GLubyte*)"glColorMaski")) == NULL) || r;
- r = ((glDisablei = (PFNGLDISABLEIPROC)glewGetProcAddress((const GLubyte*)"glDisablei")) == NULL) || r;
- r = ((glEnablei = (PFNGLENABLEIPROC)glewGetProcAddress((const GLubyte*)"glEnablei")) == NULL) || r;
- r = ((glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)glewGetProcAddress((const GLubyte*)"glEndConditionalRender")) == NULL) || r;
- r = ((glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glEndTransformFeedback")) == NULL) || r;
- r = ((glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)glewGetProcAddress((const GLubyte*)"glGetBooleani_v")) == NULL) || r;
- r = ((glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)glewGetProcAddress((const GLubyte*)"glGetFragDataLocation")) == NULL) || r;
- r = ((glGetStringi = (PFNGLGETSTRINGIPROC)glewGetProcAddress((const GLubyte*)"glGetStringi")) == NULL) || r;
- r = ((glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIiv")) == NULL) || r;
- r = ((glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIuiv")) == NULL) || r;
- r = ((glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbackVarying")) == NULL) || r;
- r = ((glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformuiv")) == NULL) || r;
- r = ((glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribIiv")) == NULL) || r;
- r = ((glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribIuiv")) == NULL) || r;
- r = ((glIsEnabledi = (PFNGLISENABLEDIPROC)glewGetProcAddress((const GLubyte*)"glIsEnabledi")) == NULL) || r;
- r = ((glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIiv")) == NULL) || r;
- r = ((glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIuiv")) == NULL) || r;
- r = ((glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackVaryings")) == NULL) || r;
- r = ((glUniform1ui = (PFNGLUNIFORM1UIPROC)glewGetProcAddress((const GLubyte*)"glUniform1ui")) == NULL) || r;
- r = ((glUniform1uiv = (PFNGLUNIFORM1UIVPROC)glewGetProcAddress((const GLubyte*)"glUniform1uiv")) == NULL) || r;
- r = ((glUniform2ui = (PFNGLUNIFORM2UIPROC)glewGetProcAddress((const GLubyte*)"glUniform2ui")) == NULL) || r;
- r = ((glUniform2uiv = (PFNGLUNIFORM2UIVPROC)glewGetProcAddress((const GLubyte*)"glUniform2uiv")) == NULL) || r;
- r = ((glUniform3ui = (PFNGLUNIFORM3UIPROC)glewGetProcAddress((const GLubyte*)"glUniform3ui")) == NULL) || r;
- r = ((glUniform3uiv = (PFNGLUNIFORM3UIVPROC)glewGetProcAddress((const GLubyte*)"glUniform3uiv")) == NULL) || r;
- r = ((glUniform4ui = (PFNGLUNIFORM4UIPROC)glewGetProcAddress((const GLubyte*)"glUniform4ui")) == NULL) || r;
- r = ((glUniform4uiv = (PFNGLUNIFORM4UIVPROC)glewGetProcAddress((const GLubyte*)"glUniform4uiv")) == NULL) || r;
- r = ((glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1i")) == NULL) || r;
- r = ((glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1iv")) == NULL) || r;
- r = ((glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1ui")) == NULL) || r;
- r = ((glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1uiv")) == NULL) || r;
- r = ((glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2i")) == NULL) || r;
- r = ((glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2iv")) == NULL) || r;
- r = ((glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2ui")) == NULL) || r;
- r = ((glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2uiv")) == NULL) || r;
- r = ((glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3i")) == NULL) || r;
- r = ((glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3iv")) == NULL) || r;
- r = ((glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3ui")) == NULL) || r;
- r = ((glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3uiv")) == NULL) || r;
- r = ((glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4bv")) == NULL) || r;
- r = ((glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4i")) == NULL) || r;
- r = ((glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4iv")) == NULL) || r;
- r = ((glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4sv")) == NULL) || r;
- r = ((glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4ubv")) == NULL) || r;
- r = ((glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4ui")) == NULL) || r;
- r = ((glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4uiv")) == NULL) || r;
- r = ((glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4usv")) == NULL) || r;
- r = ((glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribIPointer")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_3_0 */
-
-#ifdef GL_VERSION_3_1
-
-static GLboolean _glewInit_GL_VERSION_3_1 ()
-{
- GLboolean r = GL_FALSE;
-
- r = _glewInit_GL_ARB_copy_buffer() || r;
-
- r = ((glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstanced")) == NULL) || r;
- r = ((glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstanced")) == NULL) || r;
- r = ((glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveRestartIndex")) == NULL) || r;
- r = ((glTexBuffer = (PFNGLTEXBUFFERPROC)glewGetProcAddress((const GLubyte*)"glTexBuffer")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_3_1 */
-
-#ifdef GL_VERSION_3_2
-
-static GLboolean _glewInit_GL_VERSION_3_2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = _glewInit_GL_ARB_draw_elements_base_vertex() || r;
- r = _glewInit_GL_ARB_provoking_vertex() || r;
- r = _glewInit_GL_ARB_sync() || r;
- r = _glewInit_GL_ARB_texture_multisample() || r;
-
- r = ((glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture")) == NULL) || r;
- r = ((glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)glewGetProcAddress((const GLubyte*)"glGetBufferParameteri64v")) == NULL) || r;
- r = ((glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64i_v")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_3_2 */
-
-#ifdef GL_VERSION_3_3
-
-static GLboolean _glewInit_GL_VERSION_3_3 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisor")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_3_3 */
-
-#ifdef GL_VERSION_4_0
-
-static GLboolean _glewInit_GL_VERSION_4_0 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparatei")) == NULL) || r;
- r = ((glBlendEquationi = (PFNGLBLENDEQUATIONIPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationi")) == NULL) || r;
- r = ((glBlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparatei")) == NULL) || r;
- r = ((glBlendFunci = (PFNGLBLENDFUNCIPROC)glewGetProcAddress((const GLubyte*)"glBlendFunci")) == NULL) || r;
- r = ((glMinSampleShading = (PFNGLMINSAMPLESHADINGPROC)glewGetProcAddress((const GLubyte*)"glMinSampleShading")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_4_0 */
-
-#ifdef GL_VERSION_4_5
-
-static GLboolean _glewInit_GL_VERSION_4_5 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetGraphicsResetStatus = (PFNGLGETGRAPHICSRESETSTATUSPROC)glewGetProcAddress((const GLubyte*)"glGetGraphicsResetStatus")) == NULL) || r;
- r = ((glGetnCompressedTexImage = (PFNGLGETNCOMPRESSEDTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetnCompressedTexImage")) == NULL) || r;
- r = ((glGetnTexImage = (PFNGLGETNTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetnTexImage")) == NULL) || r;
- r = ((glGetnUniformdv = (PFNGLGETNUNIFORMDVPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformdv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_4_5 */
-
-#ifdef GL_VERSION_4_6
-
-static GLboolean _glewInit_GL_VERSION_4_6 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMultiDrawArraysIndirectCount = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectCount")) == NULL) || r;
- r = ((glMultiDrawElementsIndirectCount = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectCount")) == NULL) || r;
- r = ((glSpecializeShader = (PFNGLSPECIALIZESHADERPROC)glewGetProcAddress((const GLubyte*)"glSpecializeShader")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_VERSION_4_6 */
-
-#ifdef GL_3DFX_tbuffer
-
-static GLboolean _glewInit_GL_3DFX_tbuffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTbufferMask3DFX = (PFNGLTBUFFERMASK3DFXPROC)glewGetProcAddress((const GLubyte*)"glTbufferMask3DFX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_3DFX_tbuffer */
-
-#ifdef GL_AMD_debug_output
-
-static GLboolean _glewInit_GL_AMD_debug_output ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDebugMessageCallbackAMD = (PFNGLDEBUGMESSAGECALLBACKAMDPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageCallbackAMD")) == NULL) || r;
- r = ((glDebugMessageEnableAMD = (PFNGLDEBUGMESSAGEENABLEAMDPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageEnableAMD")) == NULL) || r;
- r = ((glDebugMessageInsertAMD = (PFNGLDEBUGMESSAGEINSERTAMDPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageInsertAMD")) == NULL) || r;
- r = ((glGetDebugMessageLogAMD = (PFNGLGETDEBUGMESSAGELOGAMDPROC)glewGetProcAddress((const GLubyte*)"glGetDebugMessageLogAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_debug_output */
-
-#ifdef GL_AMD_draw_buffers_blend
-
-static GLboolean _glewInit_GL_AMD_draw_buffers_blend ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendEquationIndexedAMD = (PFNGLBLENDEQUATIONINDEXEDAMDPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationIndexedAMD")) == NULL) || r;
- r = ((glBlendEquationSeparateIndexedAMD = (PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateIndexedAMD")) == NULL) || r;
- r = ((glBlendFuncIndexedAMD = (PFNGLBLENDFUNCINDEXEDAMDPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncIndexedAMD")) == NULL) || r;
- r = ((glBlendFuncSeparateIndexedAMD = (PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateIndexedAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_draw_buffers_blend */
-
-#ifdef GL_AMD_framebuffer_multisample_advanced
-
-static GLboolean _glewInit_GL_AMD_framebuffer_multisample_advanced ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glNamedRenderbufferStorageMultisampleAdvancedAMD = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorageMultisampleAdvancedAMD")) == NULL) || r;
- r = ((glRenderbufferStorageMultisampleAdvancedAMD = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleAdvancedAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_framebuffer_multisample_advanced */
-
-#ifdef GL_AMD_framebuffer_sample_positions
-
-static GLboolean _glewInit_GL_AMD_framebuffer_sample_positions ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferSamplePositionsfvAMD = (PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)glewGetProcAddress((const GLubyte*)"glFramebufferSamplePositionsfvAMD")) == NULL) || r;
- r = ((glGetFramebufferParameterfvAMD = (PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameterfvAMD")) == NULL) || r;
- r = ((glGetNamedFramebufferParameterfvAMD = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferParameterfvAMD")) == NULL) || r;
- r = ((glNamedFramebufferSamplePositionsfvAMD = (PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferSamplePositionsfvAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_framebuffer_sample_positions */
-
-#ifdef GL_AMD_interleaved_elements
-
-static GLboolean _glewInit_GL_AMD_interleaved_elements ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glVertexAttribParameteriAMD = (PFNGLVERTEXATTRIBPARAMETERIAMDPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribParameteriAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_interleaved_elements */
-
-#ifdef GL_AMD_multi_draw_indirect
-
-static GLboolean _glewInit_GL_AMD_multi_draw_indirect ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMultiDrawArraysIndirectAMD = (PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectAMD")) == NULL) || r;
- r = ((glMultiDrawElementsIndirectAMD = (PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_multi_draw_indirect */
-
-#ifdef GL_AMD_name_gen_delete
-
-static GLboolean _glewInit_GL_AMD_name_gen_delete ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDeleteNamesAMD = (PFNGLDELETENAMESAMDPROC)glewGetProcAddress((const GLubyte*)"glDeleteNamesAMD")) == NULL) || r;
- r = ((glGenNamesAMD = (PFNGLGENNAMESAMDPROC)glewGetProcAddress((const GLubyte*)"glGenNamesAMD")) == NULL) || r;
- r = ((glIsNameAMD = (PFNGLISNAMEAMDPROC)glewGetProcAddress((const GLubyte*)"glIsNameAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_name_gen_delete */
-
-#ifdef GL_AMD_occlusion_query_event
-
-static GLboolean _glewInit_GL_AMD_occlusion_query_event ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glQueryObjectParameteruiAMD = (PFNGLQUERYOBJECTPARAMETERUIAMDPROC)glewGetProcAddress((const GLubyte*)"glQueryObjectParameteruiAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_occlusion_query_event */
-
-#ifdef GL_AMD_performance_monitor
-
-static GLboolean _glewInit_GL_AMD_performance_monitor ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginPerfMonitorAMD = (PFNGLBEGINPERFMONITORAMDPROC)glewGetProcAddress((const GLubyte*)"glBeginPerfMonitorAMD")) == NULL) || r;
- r = ((glDeletePerfMonitorsAMD = (PFNGLDELETEPERFMONITORSAMDPROC)glewGetProcAddress((const GLubyte*)"glDeletePerfMonitorsAMD")) == NULL) || r;
- r = ((glEndPerfMonitorAMD = (PFNGLENDPERFMONITORAMDPROC)glewGetProcAddress((const GLubyte*)"glEndPerfMonitorAMD")) == NULL) || r;
- r = ((glGenPerfMonitorsAMD = (PFNGLGENPERFMONITORSAMDPROC)glewGetProcAddress((const GLubyte*)"glGenPerfMonitorsAMD")) == NULL) || r;
- r = ((glGetPerfMonitorCounterDataAMD = (PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorCounterDataAMD")) == NULL) || r;
- r = ((glGetPerfMonitorCounterInfoAMD = (PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorCounterInfoAMD")) == NULL) || r;
- r = ((glGetPerfMonitorCounterStringAMD = (PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorCounterStringAMD")) == NULL) || r;
- r = ((glGetPerfMonitorCountersAMD = (PFNGLGETPERFMONITORCOUNTERSAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorCountersAMD")) == NULL) || r;
- r = ((glGetPerfMonitorGroupStringAMD = (PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorGroupStringAMD")) == NULL) || r;
- r = ((glGetPerfMonitorGroupsAMD = (PFNGLGETPERFMONITORGROUPSAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorGroupsAMD")) == NULL) || r;
- r = ((glSelectPerfMonitorCountersAMD = (PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)glewGetProcAddress((const GLubyte*)"glSelectPerfMonitorCountersAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_performance_monitor */
-
-#ifdef GL_AMD_sample_positions
-
-static GLboolean _glewInit_GL_AMD_sample_positions ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glSetMultisamplefvAMD = (PFNGLSETMULTISAMPLEFVAMDPROC)glewGetProcAddress((const GLubyte*)"glSetMultisamplefvAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_sample_positions */
-
-#ifdef GL_AMD_sparse_texture
-
-static GLboolean _glewInit_GL_AMD_sparse_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexStorageSparseAMD = (PFNGLTEXSTORAGESPARSEAMDPROC)glewGetProcAddress((const GLubyte*)"glTexStorageSparseAMD")) == NULL) || r;
- r = ((glTextureStorageSparseAMD = (PFNGLTEXTURESTORAGESPARSEAMDPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageSparseAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_sparse_texture */
-
-#ifdef GL_AMD_stencil_operation_extended
-
-static GLboolean _glewInit_GL_AMD_stencil_operation_extended ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glStencilOpValueAMD = (PFNGLSTENCILOPVALUEAMDPROC)glewGetProcAddress((const GLubyte*)"glStencilOpValueAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_stencil_operation_extended */
-
-#ifdef GL_AMD_vertex_shader_tessellator
-
-static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTessellationFactorAMD = (PFNGLTESSELLATIONFACTORAMDPROC)glewGetProcAddress((const GLubyte*)"glTessellationFactorAMD")) == NULL) || r;
- r = ((glTessellationModeAMD = (PFNGLTESSELLATIONMODEAMDPROC)glewGetProcAddress((const GLubyte*)"glTessellationModeAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_AMD_vertex_shader_tessellator */
-
-#ifdef GL_ANGLE_framebuffer_blit
-
-static GLboolean _glewInit_GL_ANGLE_framebuffer_blit ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlitFramebufferANGLE = (PFNGLBLITFRAMEBUFFERANGLEPROC)glewGetProcAddress((const GLubyte*)"glBlitFramebufferANGLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ANGLE_framebuffer_blit */
-
-#ifdef GL_ANGLE_framebuffer_multisample
-
-static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glRenderbufferStorageMultisampleANGLE = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleANGLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ANGLE_framebuffer_multisample */
-
-#ifdef GL_ANGLE_instanced_arrays
-
-static GLboolean _glewInit_GL_ANGLE_instanced_arrays ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawArraysInstancedANGLE = (PFNGLDRAWARRAYSINSTANCEDANGLEPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedANGLE")) == NULL) || r;
- r = ((glDrawElementsInstancedANGLE = (PFNGLDRAWELEMENTSINSTANCEDANGLEPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedANGLE")) == NULL) || r;
- r = ((glVertexAttribDivisorANGLE = (PFNGLVERTEXATTRIBDIVISORANGLEPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorANGLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ANGLE_instanced_arrays */
-
-#ifdef GL_ANGLE_timer_query
-
-static GLboolean _glewInit_GL_ANGLE_timer_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginQueryANGLE = (PFNGLBEGINQUERYANGLEPROC)glewGetProcAddress((const GLubyte*)"glBeginQueryANGLE")) == NULL) || r;
- r = ((glDeleteQueriesANGLE = (PFNGLDELETEQUERIESANGLEPROC)glewGetProcAddress((const GLubyte*)"glDeleteQueriesANGLE")) == NULL) || r;
- r = ((glEndQueryANGLE = (PFNGLENDQUERYANGLEPROC)glewGetProcAddress((const GLubyte*)"glEndQueryANGLE")) == NULL) || r;
- r = ((glGenQueriesANGLE = (PFNGLGENQUERIESANGLEPROC)glewGetProcAddress((const GLubyte*)"glGenQueriesANGLE")) == NULL) || r;
- r = ((glGetQueryObjecti64vANGLE = (PFNGLGETQUERYOBJECTI64VANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjecti64vANGLE")) == NULL) || r;
- r = ((glGetQueryObjectivANGLE = (PFNGLGETQUERYOBJECTIVANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectivANGLE")) == NULL) || r;
- r = ((glGetQueryObjectui64vANGLE = (PFNGLGETQUERYOBJECTUI64VANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectui64vANGLE")) == NULL) || r;
- r = ((glGetQueryObjectuivANGLE = (PFNGLGETQUERYOBJECTUIVANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectuivANGLE")) == NULL) || r;
- r = ((glGetQueryivANGLE = (PFNGLGETQUERYIVANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetQueryivANGLE")) == NULL) || r;
- r = ((glIsQueryANGLE = (PFNGLISQUERYANGLEPROC)glewGetProcAddress((const GLubyte*)"glIsQueryANGLE")) == NULL) || r;
- r = ((glQueryCounterANGLE = (PFNGLQUERYCOUNTERANGLEPROC)glewGetProcAddress((const GLubyte*)"glQueryCounterANGLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ANGLE_timer_query */
-
-#ifdef GL_ANGLE_translated_shader_source
-
-static GLboolean _glewInit_GL_ANGLE_translated_shader_source ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetTranslatedShaderSourceANGLE = (PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetTranslatedShaderSourceANGLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ANGLE_translated_shader_source */
-
-#ifdef GL_APPLE_copy_texture_levels
-
-static GLboolean _glewInit_GL_APPLE_copy_texture_levels ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCopyTextureLevelsAPPLE = (PFNGLCOPYTEXTURELEVELSAPPLEPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureLevelsAPPLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_APPLE_copy_texture_levels */
-
-#ifdef GL_APPLE_element_array
-
-static GLboolean _glewInit_GL_APPLE_element_array ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawElementArrayAPPLE = (PFNGLDRAWELEMENTARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDrawElementArrayAPPLE")) == NULL) || r;
- r = ((glDrawRangeElementArrayAPPLE = (PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementArrayAPPLE")) == NULL) || r;
- r = ((glElementPointerAPPLE = (PFNGLELEMENTPOINTERAPPLEPROC)glewGetProcAddress((const GLubyte*)"glElementPointerAPPLE")) == NULL) || r;
- r = ((glMultiDrawElementArrayAPPLE = (PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementArrayAPPLE")) == NULL) || r;
- r = ((glMultiDrawRangeElementArrayAPPLE = (PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawRangeElementArrayAPPLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_APPLE_element_array */
-
-#ifdef GL_APPLE_fence
-
-static GLboolean _glewInit_GL_APPLE_fence ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDeleteFencesAPPLE = (PFNGLDELETEFENCESAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDeleteFencesAPPLE")) == NULL) || r;
- r = ((glFinishFenceAPPLE = (PFNGLFINISHFENCEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFinishFenceAPPLE")) == NULL) || r;
- r = ((glFinishObjectAPPLE = (PFNGLFINISHOBJECTAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFinishObjectAPPLE")) == NULL) || r;
- r = ((glGenFencesAPPLE = (PFNGLGENFENCESAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGenFencesAPPLE")) == NULL) || r;
- r = ((glIsFenceAPPLE = (PFNGLISFENCEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glIsFenceAPPLE")) == NULL) || r;
- r = ((glSetFenceAPPLE = (PFNGLSETFENCEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glSetFenceAPPLE")) == NULL) || r;
- r = ((glTestFenceAPPLE = (PFNGLTESTFENCEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glTestFenceAPPLE")) == NULL) || r;
- r = ((glTestObjectAPPLE = (PFNGLTESTOBJECTAPPLEPROC)glewGetProcAddress((const GLubyte*)"glTestObjectAPPLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_APPLE_fence */
-
-#ifdef GL_APPLE_flush_buffer_range
-
-static GLboolean _glewInit_GL_APPLE_flush_buffer_range ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBufferParameteriAPPLE = (PFNGLBUFFERPARAMETERIAPPLEPROC)glewGetProcAddress((const GLubyte*)"glBufferParameteriAPPLE")) == NULL) || r;
- r = ((glFlushMappedBufferRangeAPPLE = (PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedBufferRangeAPPLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_APPLE_flush_buffer_range */
-
-#ifdef GL_APPLE_framebuffer_multisample
-
-static GLboolean _glewInit_GL_APPLE_framebuffer_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glRenderbufferStorageMultisampleAPPLE = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleAPPLE")) == NULL) || r;
- r = ((glResolveMultisampleFramebufferAPPLE = (PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC)glewGetProcAddress((const GLubyte*)"glResolveMultisampleFramebufferAPPLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_APPLE_framebuffer_multisample */
-
-#ifdef GL_APPLE_object_purgeable
-
-static GLboolean _glewInit_GL_APPLE_object_purgeable ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetObjectParameterivAPPLE = (PFNGLGETOBJECTPARAMETERIVAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetObjectParameterivAPPLE")) == NULL) || r;
- r = ((glObjectPurgeableAPPLE = (PFNGLOBJECTPURGEABLEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glObjectPurgeableAPPLE")) == NULL) || r;
- r = ((glObjectUnpurgeableAPPLE = (PFNGLOBJECTUNPURGEABLEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glObjectUnpurgeableAPPLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_APPLE_object_purgeable */
-
-#ifdef GL_APPLE_sync
-
-static GLboolean _glewInit_GL_APPLE_sync ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClientWaitSyncAPPLE = (PFNGLCLIENTWAITSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glClientWaitSyncAPPLE")) == NULL) || r;
- r = ((glDeleteSyncAPPLE = (PFNGLDELETESYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDeleteSyncAPPLE")) == NULL) || r;
- r = ((glFenceSyncAPPLE = (PFNGLFENCESYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFenceSyncAPPLE")) == NULL) || r;
- r = ((glGetInteger64vAPPLE = (PFNGLGETINTEGER64VAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64vAPPLE")) == NULL) || r;
- r = ((glGetSyncivAPPLE = (PFNGLGETSYNCIVAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetSyncivAPPLE")) == NULL) || r;
- r = ((glIsSyncAPPLE = (PFNGLISSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glIsSyncAPPLE")) == NULL) || r;
- r = ((glWaitSyncAPPLE = (PFNGLWAITSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glWaitSyncAPPLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_APPLE_sync */
-
-#ifdef GL_APPLE_texture_range
-
-static GLboolean _glewInit_GL_APPLE_texture_range ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetTexParameterPointervAPPLE = (PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterPointervAPPLE")) == NULL) || r;
- r = ((glTextureRangeAPPLE = (PFNGLTEXTURERANGEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glTextureRangeAPPLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_APPLE_texture_range */
-
-#ifdef GL_APPLE_vertex_array_object
-
-static GLboolean _glewInit_GL_APPLE_vertex_array_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindVertexArrayAPPLE = (PFNGLBINDVERTEXARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glBindVertexArrayAPPLE")) == NULL) || r;
- r = ((glDeleteVertexArraysAPPLE = (PFNGLDELETEVERTEXARRAYSAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexArraysAPPLE")) == NULL) || r;
- r = ((glGenVertexArraysAPPLE = (PFNGLGENVERTEXARRAYSAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGenVertexArraysAPPLE")) == NULL) || r;
- r = ((glIsVertexArrayAPPLE = (PFNGLISVERTEXARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glIsVertexArrayAPPLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_APPLE_vertex_array_object */
-
-#ifdef GL_APPLE_vertex_array_range
-
-static GLboolean _glewInit_GL_APPLE_vertex_array_range ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFlushVertexArrayRangeAPPLE = (PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFlushVertexArrayRangeAPPLE")) == NULL) || r;
- r = ((glVertexArrayParameteriAPPLE = (PFNGLVERTEXARRAYPARAMETERIAPPLEPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayParameteriAPPLE")) == NULL) || r;
- r = ((glVertexArrayRangeAPPLE = (PFNGLVERTEXARRAYRANGEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayRangeAPPLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_APPLE_vertex_array_range */
-
-#ifdef GL_APPLE_vertex_program_evaluators
-
-static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDisableVertexAttribAPPLE = (PFNGLDISABLEVERTEXATTRIBAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexAttribAPPLE")) == NULL) || r;
- r = ((glEnableVertexAttribAPPLE = (PFNGLENABLEVERTEXATTRIBAPPLEPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexAttribAPPLE")) == NULL) || r;
- r = ((glIsVertexAttribEnabledAPPLE = (PFNGLISVERTEXATTRIBENABLEDAPPLEPROC)glewGetProcAddress((const GLubyte*)"glIsVertexAttribEnabledAPPLE")) == NULL) || r;
- r = ((glMapVertexAttrib1dAPPLE = (PFNGLMAPVERTEXATTRIB1DAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMapVertexAttrib1dAPPLE")) == NULL) || r;
- r = ((glMapVertexAttrib1fAPPLE = (PFNGLMAPVERTEXATTRIB1FAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMapVertexAttrib1fAPPLE")) == NULL) || r;
- r = ((glMapVertexAttrib2dAPPLE = (PFNGLMAPVERTEXATTRIB2DAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMapVertexAttrib2dAPPLE")) == NULL) || r;
- r = ((glMapVertexAttrib2fAPPLE = (PFNGLMAPVERTEXATTRIB2FAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMapVertexAttrib2fAPPLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_APPLE_vertex_program_evaluators */
-
-#ifdef GL_ARB_ES2_compatibility
-
-static GLboolean _glewInit_GL_ARB_ES2_compatibility ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClearDepthf = (PFNGLCLEARDEPTHFPROC)glewGetProcAddress((const GLubyte*)"glClearDepthf")) == NULL) || r;
- r = ((glDepthRangef = (PFNGLDEPTHRANGEFPROC)glewGetProcAddress((const GLubyte*)"glDepthRangef")) == NULL) || r;
- r = ((glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)glewGetProcAddress((const GLubyte*)"glGetShaderPrecisionFormat")) == NULL) || r;
- r = ((glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)glewGetProcAddress((const GLubyte*)"glReleaseShaderCompiler")) == NULL) || r;
- r = ((glShaderBinary = (PFNGLSHADERBINARYPROC)glewGetProcAddress((const GLubyte*)"glShaderBinary")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_ES2_compatibility */
-
-#ifdef GL_ARB_ES3_1_compatibility
-
-static GLboolean _glewInit_GL_ARB_ES3_1_compatibility ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC)glewGetProcAddress((const GLubyte*)"glMemoryBarrierByRegion")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_ES3_1_compatibility */
-
-#ifdef GL_ARB_ES3_2_compatibility
-
-static GLboolean _glewInit_GL_ARB_ES3_2_compatibility ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPrimitiveBoundingBoxARB = (PFNGLPRIMITIVEBOUNDINGBOXARBPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveBoundingBoxARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_ES3_2_compatibility */
-
-#ifdef GL_ARB_base_instance
-
-static GLboolean _glewInit_GL_ARB_base_instance ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawArraysInstancedBaseInstance = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedBaseInstance")) == NULL) || r;
- r = ((glDrawElementsInstancedBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseInstance")) == NULL) || r;
- r = ((glDrawElementsInstancedBaseVertexBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertexBaseInstance")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_base_instance */
-
-#ifdef GL_ARB_bindless_texture
-
-static GLboolean _glewInit_GL_ARB_bindless_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetImageHandleARB = (PFNGLGETIMAGEHANDLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetImageHandleARB")) == NULL) || r;
- r = ((glGetTextureHandleARB = (PFNGLGETTEXTUREHANDLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetTextureHandleARB")) == NULL) || r;
- r = ((glGetTextureSamplerHandleARB = (PFNGLGETTEXTURESAMPLERHANDLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetTextureSamplerHandleARB")) == NULL) || r;
- r = ((glGetVertexAttribLui64vARB = (PFNGLGETVERTEXATTRIBLUI64VARBPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribLui64vARB")) == NULL) || r;
- r = ((glIsImageHandleResidentARB = (PFNGLISIMAGEHANDLERESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glIsImageHandleResidentARB")) == NULL) || r;
- r = ((glIsTextureHandleResidentARB = (PFNGLISTEXTUREHANDLERESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glIsTextureHandleResidentARB")) == NULL) || r;
- r = ((glMakeImageHandleNonResidentARB = (PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glMakeImageHandleNonResidentARB")) == NULL) || r;
- r = ((glMakeImageHandleResidentARB = (PFNGLMAKEIMAGEHANDLERESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glMakeImageHandleResidentARB")) == NULL) || r;
- r = ((glMakeTextureHandleNonResidentARB = (PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glMakeTextureHandleNonResidentARB")) == NULL) || r;
- r = ((glMakeTextureHandleResidentARB = (PFNGLMAKETEXTUREHANDLERESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glMakeTextureHandleResidentARB")) == NULL) || r;
- r = ((glProgramUniformHandleui64ARB = (PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64ARB")) == NULL) || r;
- r = ((glProgramUniformHandleui64vARB = (PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64vARB")) == NULL) || r;
- r = ((glUniformHandleui64ARB = (PFNGLUNIFORMHANDLEUI64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64ARB")) == NULL) || r;
- r = ((glUniformHandleui64vARB = (PFNGLUNIFORMHANDLEUI64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64vARB")) == NULL) || r;
- r = ((glVertexAttribL1ui64ARB = (PFNGLVERTEXATTRIBL1UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1ui64ARB")) == NULL) || r;
- r = ((glVertexAttribL1ui64vARB = (PFNGLVERTEXATTRIBL1UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1ui64vARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_bindless_texture */
-
-#ifdef GL_ARB_blend_func_extended
-
-static GLboolean _glewInit_GL_ARB_blend_func_extended ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocationIndexed")) == NULL) || r;
- r = ((glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)glewGetProcAddress((const GLubyte*)"glGetFragDataIndex")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_blend_func_extended */
-
-#ifdef GL_ARB_buffer_storage
-
-static GLboolean _glewInit_GL_ARB_buffer_storage ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBufferStorage = (PFNGLBUFFERSTORAGEPROC)glewGetProcAddress((const GLubyte*)"glBufferStorage")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_buffer_storage */
-
-#ifdef GL_ARB_cl_event
-
-static GLboolean _glewInit_GL_ARB_cl_event ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCreateSyncFromCLeventARB = (PFNGLCREATESYNCFROMCLEVENTARBPROC)glewGetProcAddress((const GLubyte*)"glCreateSyncFromCLeventARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_cl_event */
-
-#ifdef GL_ARB_clear_buffer_object
-
-static GLboolean _glewInit_GL_ARB_clear_buffer_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClearBufferData = (PFNGLCLEARBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glClearBufferData")) == NULL) || r;
- r = ((glClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glClearBufferSubData")) == NULL) || r;
- r = ((glClearNamedBufferDataEXT = (PFNGLCLEARNAMEDBUFFERDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glClearNamedBufferDataEXT")) == NULL) || r;
- r = ((glClearNamedBufferSubDataEXT = (PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glClearNamedBufferSubDataEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_clear_buffer_object */
-
-#ifdef GL_ARB_clear_texture
-
-static GLboolean _glewInit_GL_ARB_clear_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClearTexImage = (PFNGLCLEARTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"glClearTexImage")) == NULL) || r;
- r = ((glClearTexSubImage = (PFNGLCLEARTEXSUBIMAGEPROC)glewGetProcAddress((const GLubyte*)"glClearTexSubImage")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_clear_texture */
-
-#ifdef GL_ARB_clip_control
-
-static GLboolean _glewInit_GL_ARB_clip_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClipControl = (PFNGLCLIPCONTROLPROC)glewGetProcAddress((const GLubyte*)"glClipControl")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_clip_control */
-
-#ifdef GL_ARB_color_buffer_float
-
-static GLboolean _glewInit_GL_ARB_color_buffer_float ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClampColorARB = (PFNGLCLAMPCOLORARBPROC)glewGetProcAddress((const GLubyte*)"glClampColorARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_color_buffer_float */
-
-#ifdef GL_ARB_compute_shader
-
-static GLboolean _glewInit_GL_ARB_compute_shader ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC)glewGetProcAddress((const GLubyte*)"glDispatchCompute")) == NULL) || r;
- r = ((glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC)glewGetProcAddress((const GLubyte*)"glDispatchComputeIndirect")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_compute_shader */
-
-#ifdef GL_ARB_compute_variable_group_size
-
-static GLboolean _glewInit_GL_ARB_compute_variable_group_size ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDispatchComputeGroupSizeARB = (PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC)glewGetProcAddress((const GLubyte*)"glDispatchComputeGroupSizeARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_compute_variable_group_size */
-
-#ifdef GL_ARB_copy_buffer
-
-static GLboolean _glewInit_GL_ARB_copy_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glCopyBufferSubData")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_copy_buffer */
-
-#ifdef GL_ARB_copy_image
-
-static GLboolean _glewInit_GL_ARB_copy_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC)glewGetProcAddress((const GLubyte*)"glCopyImageSubData")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_copy_image */
-
-#ifdef GL_ARB_debug_output
-
-static GLboolean _glewInit_GL_ARB_debug_output ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageCallbackARB")) == NULL) || r;
- r = ((glDebugMessageControlARB = (PFNGLDEBUGMESSAGECONTROLARBPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageControlARB")) == NULL) || r;
- r = ((glDebugMessageInsertARB = (PFNGLDEBUGMESSAGEINSERTARBPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageInsertARB")) == NULL) || r;
- r = ((glGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARBPROC)glewGetProcAddress((const GLubyte*)"glGetDebugMessageLogARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_debug_output */
-
-#ifdef GL_ARB_direct_state_access
-
-static GLboolean _glewInit_GL_ARB_direct_state_access ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindTextureUnit = (PFNGLBINDTEXTUREUNITPROC)glewGetProcAddress((const GLubyte*)"glBindTextureUnit")) == NULL) || r;
- r = ((glBlitNamedFramebuffer = (PFNGLBLITNAMEDFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBlitNamedFramebuffer")) == NULL) || r;
- r = ((glCheckNamedFramebufferStatus = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)glewGetProcAddress((const GLubyte*)"glCheckNamedFramebufferStatus")) == NULL) || r;
- r = ((glClearNamedBufferData = (PFNGLCLEARNAMEDBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glClearNamedBufferData")) == NULL) || r;
- r = ((glClearNamedBufferSubData = (PFNGLCLEARNAMEDBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glClearNamedBufferSubData")) == NULL) || r;
- r = ((glClearNamedFramebufferfi = (PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)glewGetProcAddress((const GLubyte*)"glClearNamedFramebufferfi")) == NULL) || r;
- r = ((glClearNamedFramebufferfv = (PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)glewGetProcAddress((const GLubyte*)"glClearNamedFramebufferfv")) == NULL) || r;
- r = ((glClearNamedFramebufferiv = (PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)glewGetProcAddress((const GLubyte*)"glClearNamedFramebufferiv")) == NULL) || r;
- r = ((glClearNamedFramebufferuiv = (PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)glewGetProcAddress((const GLubyte*)"glClearNamedFramebufferuiv")) == NULL) || r;
- r = ((glCompressedTextureSubImage1D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage1D")) == NULL) || r;
- r = ((glCompressedTextureSubImage2D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage2D")) == NULL) || r;
- r = ((glCompressedTextureSubImage3D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage3D")) == NULL) || r;
- r = ((glCopyNamedBufferSubData = (PFNGLCOPYNAMEDBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glCopyNamedBufferSubData")) == NULL) || r;
- r = ((glCopyTextureSubImage1D = (PFNGLCOPYTEXTURESUBIMAGE1DPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage1D")) == NULL) || r;
- r = ((glCopyTextureSubImage2D = (PFNGLCOPYTEXTURESUBIMAGE2DPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage2D")) == NULL) || r;
- r = ((glCopyTextureSubImage3D = (PFNGLCOPYTEXTURESUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage3D")) == NULL) || r;
- r = ((glCreateBuffers = (PFNGLCREATEBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glCreateBuffers")) == NULL) || r;
- r = ((glCreateFramebuffers = (PFNGLCREATEFRAMEBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glCreateFramebuffers")) == NULL) || r;
- r = ((glCreateProgramPipelines = (PFNGLCREATEPROGRAMPIPELINESPROC)glewGetProcAddress((const GLubyte*)"glCreateProgramPipelines")) == NULL) || r;
- r = ((glCreateQueries = (PFNGLCREATEQUERIESPROC)glewGetProcAddress((const GLubyte*)"glCreateQueries")) == NULL) || r;
- r = ((glCreateRenderbuffers = (PFNGLCREATERENDERBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glCreateRenderbuffers")) == NULL) || r;
- r = ((glCreateSamplers = (PFNGLCREATESAMPLERSPROC)glewGetProcAddress((const GLubyte*)"glCreateSamplers")) == NULL) || r;
- r = ((glCreateTextures = (PFNGLCREATETEXTURESPROC)glewGetProcAddress((const GLubyte*)"glCreateTextures")) == NULL) || r;
- r = ((glCreateTransformFeedbacks = (PFNGLCREATETRANSFORMFEEDBACKSPROC)glewGetProcAddress((const GLubyte*)"glCreateTransformFeedbacks")) == NULL) || r;
- r = ((glCreateVertexArrays = (PFNGLCREATEVERTEXARRAYSPROC)glewGetProcAddress((const GLubyte*)"glCreateVertexArrays")) == NULL) || r;
- r = ((glDisableVertexArrayAttrib = (PFNGLDISABLEVERTEXARRAYATTRIBPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexArrayAttrib")) == NULL) || r;
- r = ((glEnableVertexArrayAttrib = (PFNGLENABLEVERTEXARRAYATTRIBPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexArrayAttrib")) == NULL) || r;
- r = ((glFlushMappedNamedBufferRange = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedNamedBufferRange")) == NULL) || r;
- r = ((glGenerateTextureMipmap = (PFNGLGENERATETEXTUREMIPMAPPROC)glewGetProcAddress((const GLubyte*)"glGenerateTextureMipmap")) == NULL) || r;
- r = ((glGetCompressedTextureImage = (PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedTextureImage")) == NULL) || r;
- r = ((glGetNamedBufferParameteri64v = (PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferParameteri64v")) == NULL) || r;
- r = ((glGetNamedBufferParameteriv = (PFNGLGETNAMEDBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferParameteriv")) == NULL) || r;
- r = ((glGetNamedBufferPointerv = (PFNGLGETNAMEDBUFFERPOINTERVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferPointerv")) == NULL) || r;
- r = ((glGetNamedBufferSubData = (PFNGLGETNAMEDBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferSubData")) == NULL) || r;
- r = ((glGetNamedFramebufferAttachmentParameteriv = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferAttachmentParameteriv")) == NULL) || r;
- r = ((glGetNamedFramebufferParameteriv = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferParameteriv")) == NULL) || r;
- r = ((glGetNamedRenderbufferParameteriv = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedRenderbufferParameteriv")) == NULL) || r;
- r = ((glGetQueryBufferObjecti64v = (PFNGLGETQUERYBUFFEROBJECTI64VPROC)glewGetProcAddress((const GLubyte*)"glGetQueryBufferObjecti64v")) == NULL) || r;
- r = ((glGetQueryBufferObjectiv = (PFNGLGETQUERYBUFFEROBJECTIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryBufferObjectiv")) == NULL) || r;
- r = ((glGetQueryBufferObjectui64v = (PFNGLGETQUERYBUFFEROBJECTUI64VPROC)glewGetProcAddress((const GLubyte*)"glGetQueryBufferObjectui64v")) == NULL) || r;
- r = ((glGetQueryBufferObjectuiv = (PFNGLGETQUERYBUFFEROBJECTUIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryBufferObjectuiv")) == NULL) || r;
- r = ((glGetTextureImage = (PFNGLGETTEXTUREIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetTextureImage")) == NULL) || r;
- r = ((glGetTextureLevelParameterfv = (PFNGLGETTEXTURELEVELPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureLevelParameterfv")) == NULL) || r;
- r = ((glGetTextureLevelParameteriv = (PFNGLGETTEXTURELEVELPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureLevelParameteriv")) == NULL) || r;
- r = ((glGetTextureParameterIiv = (PFNGLGETTEXTUREPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterIiv")) == NULL) || r;
- r = ((glGetTextureParameterIuiv = (PFNGLGETTEXTUREPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterIuiv")) == NULL) || r;
- r = ((glGetTextureParameterfv = (PFNGLGETTEXTUREPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterfv")) == NULL) || r;
- r = ((glGetTextureParameteriv = (PFNGLGETTEXTUREPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameteriv")) == NULL) || r;
- r = ((glGetTransformFeedbacki64_v = (PFNGLGETTRANSFORMFEEDBACKI64_VPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbacki64_v")) == NULL) || r;
- r = ((glGetTransformFeedbacki_v = (PFNGLGETTRANSFORMFEEDBACKI_VPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbacki_v")) == NULL) || r;
- r = ((glGetTransformFeedbackiv = (PFNGLGETTRANSFORMFEEDBACKIVPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbackiv")) == NULL) || r;
- r = ((glGetVertexArrayIndexed64iv = (PFNGLGETVERTEXARRAYINDEXED64IVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayIndexed64iv")) == NULL) || r;
- r = ((glGetVertexArrayIndexediv = (PFNGLGETVERTEXARRAYINDEXEDIVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayIndexediv")) == NULL) || r;
- r = ((glGetVertexArrayiv = (PFNGLGETVERTEXARRAYIVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayiv")) == NULL) || r;
- r = ((glInvalidateNamedFramebufferData = (PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glInvalidateNamedFramebufferData")) == NULL) || r;
- r = ((glInvalidateNamedFramebufferSubData = (PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glInvalidateNamedFramebufferSubData")) == NULL) || r;
- r = ((glMapNamedBuffer = (PFNGLMAPNAMEDBUFFERPROC)glewGetProcAddress((const GLubyte*)"glMapNamedBuffer")) == NULL) || r;
- r = ((glMapNamedBufferRange = (PFNGLMAPNAMEDBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glMapNamedBufferRange")) == NULL) || r;
- r = ((glNamedBufferData = (PFNGLNAMEDBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferData")) == NULL) || r;
- r = ((glNamedBufferStorage = (PFNGLNAMEDBUFFERSTORAGEPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorage")) == NULL) || r;
- r = ((glNamedBufferSubData = (PFNGLNAMEDBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferSubData")) == NULL) || r;
- r = ((glNamedFramebufferDrawBuffer = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferDrawBuffer")) == NULL) || r;
- r = ((glNamedFramebufferDrawBuffers = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferDrawBuffers")) == NULL) || r;
- r = ((glNamedFramebufferParameteri = (PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferParameteri")) == NULL) || r;
- r = ((glNamedFramebufferReadBuffer = (PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferReadBuffer")) == NULL) || r;
- r = ((glNamedFramebufferRenderbuffer = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferRenderbuffer")) == NULL) || r;
- r = ((glNamedFramebufferTexture = (PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTexture")) == NULL) || r;
- r = ((glNamedFramebufferTextureLayer = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTextureLayer")) == NULL) || r;
- r = ((glNamedRenderbufferStorage = (PFNGLNAMEDRENDERBUFFERSTORAGEPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorage")) == NULL) || r;
- r = ((glNamedRenderbufferStorageMultisample = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorageMultisample")) == NULL) || r;
- r = ((glTextureBuffer = (PFNGLTEXTUREBUFFERPROC)glewGetProcAddress((const GLubyte*)"glTextureBuffer")) == NULL) || r;
- r = ((glTextureBufferRange = (PFNGLTEXTUREBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glTextureBufferRange")) == NULL) || r;
- r = ((glTextureParameterIiv = (PFNGLTEXTUREPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterIiv")) == NULL) || r;
- r = ((glTextureParameterIuiv = (PFNGLTEXTUREPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterIuiv")) == NULL) || r;
- r = ((glTextureParameterf = (PFNGLTEXTUREPARAMETERFPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterf")) == NULL) || r;
- r = ((glTextureParameterfv = (PFNGLTEXTUREPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterfv")) == NULL) || r;
- r = ((glTextureParameteri = (PFNGLTEXTUREPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glTextureParameteri")) == NULL) || r;
- r = ((glTextureParameteriv = (PFNGLTEXTUREPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glTextureParameteriv")) == NULL) || r;
- r = ((glTextureStorage1D = (PFNGLTEXTURESTORAGE1DPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage1D")) == NULL) || r;
- r = ((glTextureStorage2D = (PFNGLTEXTURESTORAGE2DPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2D")) == NULL) || r;
- r = ((glTextureStorage2DMultisample = (PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2DMultisample")) == NULL) || r;
- r = ((glTextureStorage3D = (PFNGLTEXTURESTORAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3D")) == NULL) || r;
- r = ((glTextureStorage3DMultisample = (PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3DMultisample")) == NULL) || r;
- r = ((glTextureSubImage1D = (PFNGLTEXTURESUBIMAGE1DPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage1D")) == NULL) || r;
- r = ((glTextureSubImage2D = (PFNGLTEXTURESUBIMAGE2DPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage2D")) == NULL) || r;
- r = ((glTextureSubImage3D = (PFNGLTEXTURESUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage3D")) == NULL) || r;
- r = ((glTransformFeedbackBufferBase = (PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackBufferBase")) == NULL) || r;
- r = ((glTransformFeedbackBufferRange = (PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackBufferRange")) == NULL) || r;
- r = ((glUnmapNamedBuffer = (PFNGLUNMAPNAMEDBUFFERPROC)glewGetProcAddress((const GLubyte*)"glUnmapNamedBuffer")) == NULL) || r;
- r = ((glVertexArrayAttribBinding = (PFNGLVERTEXARRAYATTRIBBINDINGPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayAttribBinding")) == NULL) || r;
- r = ((glVertexArrayAttribFormat = (PFNGLVERTEXARRAYATTRIBFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayAttribFormat")) == NULL) || r;
- r = ((glVertexArrayAttribIFormat = (PFNGLVERTEXARRAYATTRIBIFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayAttribIFormat")) == NULL) || r;
- r = ((glVertexArrayAttribLFormat = (PFNGLVERTEXARRAYATTRIBLFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayAttribLFormat")) == NULL) || r;
- r = ((glVertexArrayBindingDivisor = (PFNGLVERTEXARRAYBINDINGDIVISORPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayBindingDivisor")) == NULL) || r;
- r = ((glVertexArrayElementBuffer = (PFNGLVERTEXARRAYELEMENTBUFFERPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayElementBuffer")) == NULL) || r;
- r = ((glVertexArrayVertexBuffer = (PFNGLVERTEXARRAYVERTEXBUFFERPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexBuffer")) == NULL) || r;
- r = ((glVertexArrayVertexBuffers = (PFNGLVERTEXARRAYVERTEXBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexBuffers")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_direct_state_access */
-
-#ifdef GL_ARB_draw_buffers
-
-static GLboolean _glewInit_GL_ARB_draw_buffers ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawBuffersARB = (PFNGLDRAWBUFFERSARBPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_draw_buffers */
-
-#ifdef GL_ARB_draw_buffers_blend
-
-static GLboolean _glewInit_GL_ARB_draw_buffers_blend ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendEquationSeparateiARB = (PFNGLBLENDEQUATIONSEPARATEIARBPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateiARB")) == NULL) || r;
- r = ((glBlendEquationiARB = (PFNGLBLENDEQUATIONIARBPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationiARB")) == NULL) || r;
- r = ((glBlendFuncSeparateiARB = (PFNGLBLENDFUNCSEPARATEIARBPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateiARB")) == NULL) || r;
- r = ((glBlendFunciARB = (PFNGLBLENDFUNCIARBPROC)glewGetProcAddress((const GLubyte*)"glBlendFunciARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_draw_buffers_blend */
-
-#ifdef GL_ARB_draw_elements_base_vertex
-
-static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsBaseVertex")) == NULL) || r;
- r = ((glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertex")) == NULL) || r;
- r = ((glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementsBaseVertex")) == NULL) || r;
- r = ((glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsBaseVertex")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_draw_elements_base_vertex */
-
-#ifdef GL_ARB_draw_indirect
-
-static GLboolean _glewInit_GL_ARB_draw_indirect ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysIndirect")) == NULL) || r;
- r = ((glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsIndirect")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_draw_indirect */
-
-#ifdef GL_ARB_framebuffer_no_attachments
-
-static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glFramebufferParameteri")) == NULL) || r;
- r = ((glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameteriv")) == NULL) || r;
- r = ((glGetNamedFramebufferParameterivEXT = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferParameterivEXT")) == NULL) || r;
- r = ((glNamedFramebufferParameteriEXT = (PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferParameteriEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_framebuffer_no_attachments */
-
-#ifdef GL_ARB_framebuffer_object
-
-static GLboolean _glewInit_GL_ARB_framebuffer_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBindFramebuffer")) == NULL) || r;
- r = ((glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBindRenderbuffer")) == NULL) || r;
- r = ((glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBlitFramebuffer")) == NULL) || r;
- r = ((glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)glewGetProcAddress((const GLubyte*)"glCheckFramebufferStatus")) == NULL) || r;
- r = ((glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glDeleteFramebuffers")) == NULL) || r;
- r = ((glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glDeleteRenderbuffers")) == NULL) || r;
- r = ((glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)glewGetProcAddress((const GLubyte*)"glFramebufferRenderbuffer")) == NULL) || r;
- r = ((glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture1D")) == NULL) || r;
- r = ((glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2D")) == NULL) || r;
- r = ((glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture3D")) == NULL) || r;
- r = ((glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayer")) == NULL) || r;
- r = ((glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glGenFramebuffers")) == NULL) || r;
- r = ((glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glGenRenderbuffers")) == NULL) || r;
- r = ((glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)glewGetProcAddress((const GLubyte*)"glGenerateMipmap")) == NULL) || r;
- r = ((glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferAttachmentParameteriv")) == NULL) || r;
- r = ((glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetRenderbufferParameteriv")) == NULL) || r;
- r = ((glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glIsFramebuffer")) == NULL) || r;
- r = ((glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)glewGetProcAddress((const GLubyte*)"glIsRenderbuffer")) == NULL) || r;
- r = ((glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorage")) == NULL) || r;
- r = ((glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisample")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_framebuffer_object */
-
-#ifdef GL_ARB_geometry_shader4
-
-static GLboolean _glewInit_GL_ARB_geometry_shader4 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferTextureARB = (PFNGLFRAMEBUFFERTEXTUREARBPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureARB")) == NULL) || r;
- r = ((glFramebufferTextureFaceARB = (PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureFaceARB")) == NULL) || r;
- r = ((glFramebufferTextureLayerARB = (PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayerARB")) == NULL) || r;
- r = ((glProgramParameteriARB = (PFNGLPROGRAMPARAMETERIARBPROC)glewGetProcAddress((const GLubyte*)"glProgramParameteriARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_geometry_shader4 */
-
-#ifdef GL_ARB_get_program_binary
-
-static GLboolean _glewInit_GL_ARB_get_program_binary ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)glewGetProcAddress((const GLubyte*)"glGetProgramBinary")) == NULL) || r;
- r = ((glProgramBinary = (PFNGLPROGRAMBINARYPROC)glewGetProcAddress((const GLubyte*)"glProgramBinary")) == NULL) || r;
- r = ((glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glProgramParameteri")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_get_program_binary */
-
-#ifdef GL_ARB_get_texture_sub_image
-
-static GLboolean _glewInit_GL_ARB_get_texture_sub_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetCompressedTextureSubImage = (PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedTextureSubImage")) == NULL) || r;
- r = ((glGetTextureSubImage = (PFNGLGETTEXTURESUBIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetTextureSubImage")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_get_texture_sub_image */
-
-#ifdef GL_ARB_gl_spirv
-
-static GLboolean _glewInit_GL_ARB_gl_spirv ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glSpecializeShaderARB = (PFNGLSPECIALIZESHADERARBPROC)glewGetProcAddress((const GLubyte*)"glSpecializeShaderARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_gl_spirv */
-
-#ifdef GL_ARB_gpu_shader_fp64
-
-static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetUniformdv = (PFNGLGETUNIFORMDVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformdv")) == NULL) || r;
- r = ((glUniform1d = (PFNGLUNIFORM1DPROC)glewGetProcAddress((const GLubyte*)"glUniform1d")) == NULL) || r;
- r = ((glUniform1dv = (PFNGLUNIFORM1DVPROC)glewGetProcAddress((const GLubyte*)"glUniform1dv")) == NULL) || r;
- r = ((glUniform2d = (PFNGLUNIFORM2DPROC)glewGetProcAddress((const GLubyte*)"glUniform2d")) == NULL) || r;
- r = ((glUniform2dv = (PFNGLUNIFORM2DVPROC)glewGetProcAddress((const GLubyte*)"glUniform2dv")) == NULL) || r;
- r = ((glUniform3d = (PFNGLUNIFORM3DPROC)glewGetProcAddress((const GLubyte*)"glUniform3d")) == NULL) || r;
- r = ((glUniform3dv = (PFNGLUNIFORM3DVPROC)glewGetProcAddress((const GLubyte*)"glUniform3dv")) == NULL) || r;
- r = ((glUniform4d = (PFNGLUNIFORM4DPROC)glewGetProcAddress((const GLubyte*)"glUniform4d")) == NULL) || r;
- r = ((glUniform4dv = (PFNGLUNIFORM4DVPROC)glewGetProcAddress((const GLubyte*)"glUniform4dv")) == NULL) || r;
- r = ((glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2dv")) == NULL) || r;
- r = ((glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x3dv")) == NULL) || r;
- r = ((glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x4dv")) == NULL) || r;
- r = ((glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3dv")) == NULL) || r;
- r = ((glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x2dv")) == NULL) || r;
- r = ((glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x4dv")) == NULL) || r;
- r = ((glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4dv")) == NULL) || r;
- r = ((glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x2dv")) == NULL) || r;
- r = ((glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x3dv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_gpu_shader_fp64 */
-
-#ifdef GL_ARB_gpu_shader_int64
-
-static GLboolean _glewInit_GL_ARB_gpu_shader_int64 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetUniformi64vARB = (PFNGLGETUNIFORMI64VARBPROC)glewGetProcAddress((const GLubyte*)"glGetUniformi64vARB")) == NULL) || r;
- r = ((glGetUniformui64vARB = (PFNGLGETUNIFORMUI64VARBPROC)glewGetProcAddress((const GLubyte*)"glGetUniformui64vARB")) == NULL) || r;
- r = ((glGetnUniformi64vARB = (PFNGLGETNUNIFORMI64VARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformi64vARB")) == NULL) || r;
- r = ((glGetnUniformui64vARB = (PFNGLGETNUNIFORMUI64VARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformui64vARB")) == NULL) || r;
- r = ((glProgramUniform1i64ARB = (PFNGLPROGRAMUNIFORM1I64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1i64ARB")) == NULL) || r;
- r = ((glProgramUniform1i64vARB = (PFNGLPROGRAMUNIFORM1I64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1i64vARB")) == NULL) || r;
- r = ((glProgramUniform1ui64ARB = (PFNGLPROGRAMUNIFORM1UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ui64ARB")) == NULL) || r;
- r = ((glProgramUniform1ui64vARB = (PFNGLPROGRAMUNIFORM1UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ui64vARB")) == NULL) || r;
- r = ((glProgramUniform2i64ARB = (PFNGLPROGRAMUNIFORM2I64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2i64ARB")) == NULL) || r;
- r = ((glProgramUniform2i64vARB = (PFNGLPROGRAMUNIFORM2I64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2i64vARB")) == NULL) || r;
- r = ((glProgramUniform2ui64ARB = (PFNGLPROGRAMUNIFORM2UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ui64ARB")) == NULL) || r;
- r = ((glProgramUniform2ui64vARB = (PFNGLPROGRAMUNIFORM2UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ui64vARB")) == NULL) || r;
- r = ((glProgramUniform3i64ARB = (PFNGLPROGRAMUNIFORM3I64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3i64ARB")) == NULL) || r;
- r = ((glProgramUniform3i64vARB = (PFNGLPROGRAMUNIFORM3I64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3i64vARB")) == NULL) || r;
- r = ((glProgramUniform3ui64ARB = (PFNGLPROGRAMUNIFORM3UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ui64ARB")) == NULL) || r;
- r = ((glProgramUniform3ui64vARB = (PFNGLPROGRAMUNIFORM3UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ui64vARB")) == NULL) || r;
- r = ((glProgramUniform4i64ARB = (PFNGLPROGRAMUNIFORM4I64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4i64ARB")) == NULL) || r;
- r = ((glProgramUniform4i64vARB = (PFNGLPROGRAMUNIFORM4I64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4i64vARB")) == NULL) || r;
- r = ((glProgramUniform4ui64ARB = (PFNGLPROGRAMUNIFORM4UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ui64ARB")) == NULL) || r;
- r = ((glProgramUniform4ui64vARB = (PFNGLPROGRAMUNIFORM4UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ui64vARB")) == NULL) || r;
- r = ((glUniform1i64ARB = (PFNGLUNIFORM1I64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1i64ARB")) == NULL) || r;
- r = ((glUniform1i64vARB = (PFNGLUNIFORM1I64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1i64vARB")) == NULL) || r;
- r = ((glUniform1ui64ARB = (PFNGLUNIFORM1UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1ui64ARB")) == NULL) || r;
- r = ((glUniform1ui64vARB = (PFNGLUNIFORM1UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1ui64vARB")) == NULL) || r;
- r = ((glUniform2i64ARB = (PFNGLUNIFORM2I64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2i64ARB")) == NULL) || r;
- r = ((glUniform2i64vARB = (PFNGLUNIFORM2I64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2i64vARB")) == NULL) || r;
- r = ((glUniform2ui64ARB = (PFNGLUNIFORM2UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2ui64ARB")) == NULL) || r;
- r = ((glUniform2ui64vARB = (PFNGLUNIFORM2UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2ui64vARB")) == NULL) || r;
- r = ((glUniform3i64ARB = (PFNGLUNIFORM3I64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3i64ARB")) == NULL) || r;
- r = ((glUniform3i64vARB = (PFNGLUNIFORM3I64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3i64vARB")) == NULL) || r;
- r = ((glUniform3ui64ARB = (PFNGLUNIFORM3UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3ui64ARB")) == NULL) || r;
- r = ((glUniform3ui64vARB = (PFNGLUNIFORM3UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3ui64vARB")) == NULL) || r;
- r = ((glUniform4i64ARB = (PFNGLUNIFORM4I64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4i64ARB")) == NULL) || r;
- r = ((glUniform4i64vARB = (PFNGLUNIFORM4I64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4i64vARB")) == NULL) || r;
- r = ((glUniform4ui64ARB = (PFNGLUNIFORM4UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4ui64ARB")) == NULL) || r;
- r = ((glUniform4ui64vARB = (PFNGLUNIFORM4UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4ui64vARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_gpu_shader_int64 */
-
-#ifdef GL_ARB_imaging
-
-static GLboolean _glewInit_GL_ARB_imaging ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)"glBlendEquation")) == NULL) || r;
- r = ((glColorSubTable = (PFNGLCOLORSUBTABLEPROC)glewGetProcAddress((const GLubyte*)"glColorSubTable")) == NULL) || r;
- r = ((glColorTable = (PFNGLCOLORTABLEPROC)glewGetProcAddress((const GLubyte*)"glColorTable")) == NULL) || r;
- r = ((glColorTableParameterfv = (PFNGLCOLORTABLEPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glColorTableParameterfv")) == NULL) || r;
- r = ((glColorTableParameteriv = (PFNGLCOLORTABLEPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glColorTableParameteriv")) == NULL) || r;
- r = ((glConvolutionFilter1D = (PFNGLCONVOLUTIONFILTER1DPROC)glewGetProcAddress((const GLubyte*)"glConvolutionFilter1D")) == NULL) || r;
- r = ((glConvolutionFilter2D = (PFNGLCONVOLUTIONFILTER2DPROC)glewGetProcAddress((const GLubyte*)"glConvolutionFilter2D")) == NULL) || r;
- r = ((glConvolutionParameterf = (PFNGLCONVOLUTIONPARAMETERFPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameterf")) == NULL) || r;
- r = ((glConvolutionParameterfv = (PFNGLCONVOLUTIONPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameterfv")) == NULL) || r;
- r = ((glConvolutionParameteri = (PFNGLCONVOLUTIONPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameteri")) == NULL) || r;
- r = ((glConvolutionParameteriv = (PFNGLCONVOLUTIONPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameteriv")) == NULL) || r;
- r = ((glCopyColorSubTable = (PFNGLCOPYCOLORSUBTABLEPROC)glewGetProcAddress((const GLubyte*)"glCopyColorSubTable")) == NULL) || r;
- r = ((glCopyColorTable = (PFNGLCOPYCOLORTABLEPROC)glewGetProcAddress((const GLubyte*)"glCopyColorTable")) == NULL) || r;
- r = ((glCopyConvolutionFilter1D = (PFNGLCOPYCONVOLUTIONFILTER1DPROC)glewGetProcAddress((const GLubyte*)"glCopyConvolutionFilter1D")) == NULL) || r;
- r = ((glCopyConvolutionFilter2D = (PFNGLCOPYCONVOLUTIONFILTER2DPROC)glewGetProcAddress((const GLubyte*)"glCopyConvolutionFilter2D")) == NULL) || r;
- r = ((glGetColorTable = (PFNGLGETCOLORTABLEPROC)glewGetProcAddress((const GLubyte*)"glGetColorTable")) == NULL) || r;
- r = ((glGetColorTableParameterfv = (PFNGLGETCOLORTABLEPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameterfv")) == NULL) || r;
- r = ((glGetColorTableParameteriv = (PFNGLGETCOLORTABLEPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameteriv")) == NULL) || r;
- r = ((glGetConvolutionFilter = (PFNGLGETCONVOLUTIONFILTERPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionFilter")) == NULL) || r;
- r = ((glGetConvolutionParameterfv = (PFNGLGETCONVOLUTIONPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionParameterfv")) == NULL) || r;
- r = ((glGetConvolutionParameteriv = (PFNGLGETCONVOLUTIONPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionParameteriv")) == NULL) || r;
- r = ((glGetHistogram = (PFNGLGETHISTOGRAMPROC)glewGetProcAddress((const GLubyte*)"glGetHistogram")) == NULL) || r;
- r = ((glGetHistogramParameterfv = (PFNGLGETHISTOGRAMPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetHistogramParameterfv")) == NULL) || r;
- r = ((glGetHistogramParameteriv = (PFNGLGETHISTOGRAMPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetHistogramParameteriv")) == NULL) || r;
- r = ((glGetMinmax = (PFNGLGETMINMAXPROC)glewGetProcAddress((const GLubyte*)"glGetMinmax")) == NULL) || r;
- r = ((glGetMinmaxParameterfv = (PFNGLGETMINMAXPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetMinmaxParameterfv")) == NULL) || r;
- r = ((glGetMinmaxParameteriv = (PFNGLGETMINMAXPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetMinmaxParameteriv")) == NULL) || r;
- r = ((glGetSeparableFilter = (PFNGLGETSEPARABLEFILTERPROC)glewGetProcAddress((const GLubyte*)"glGetSeparableFilter")) == NULL) || r;
- r = ((glHistogram = (PFNGLHISTOGRAMPROC)glewGetProcAddress((const GLubyte*)"glHistogram")) == NULL) || r;
- r = ((glMinmax = (PFNGLMINMAXPROC)glewGetProcAddress((const GLubyte*)"glMinmax")) == NULL) || r;
- r = ((glResetHistogram = (PFNGLRESETHISTOGRAMPROC)glewGetProcAddress((const GLubyte*)"glResetHistogram")) == NULL) || r;
- r = ((glResetMinmax = (PFNGLRESETMINMAXPROC)glewGetProcAddress((const GLubyte*)"glResetMinmax")) == NULL) || r;
- r = ((glSeparableFilter2D = (PFNGLSEPARABLEFILTER2DPROC)glewGetProcAddress((const GLubyte*)"glSeparableFilter2D")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_imaging */
-
-#ifdef GL_ARB_indirect_parameters
-
-static GLboolean _glewInit_GL_ARB_indirect_parameters ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMultiDrawArraysIndirectCountARB = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectCountARB")) == NULL) || r;
- r = ((glMultiDrawElementsIndirectCountARB = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectCountARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_indirect_parameters */
-
-#ifdef GL_ARB_instanced_arrays
-
-static GLboolean _glewInit_GL_ARB_instanced_arrays ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawArraysInstancedARB = (PFNGLDRAWARRAYSINSTANCEDARBPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedARB")) == NULL) || r;
- r = ((glDrawElementsInstancedARB = (PFNGLDRAWELEMENTSINSTANCEDARBPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedARB")) == NULL) || r;
- r = ((glVertexAttribDivisorARB = (PFNGLVERTEXATTRIBDIVISORARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_instanced_arrays */
-
-#ifdef GL_ARB_internalformat_query
-
-static GLboolean _glewInit_GL_ARB_internalformat_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)glewGetProcAddress((const GLubyte*)"glGetInternalformativ")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_internalformat_query */
-
-#ifdef GL_ARB_internalformat_query2
-
-static GLboolean _glewInit_GL_ARB_internalformat_query2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC)glewGetProcAddress((const GLubyte*)"glGetInternalformati64v")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_internalformat_query2 */
-
-#ifdef GL_ARB_invalidate_subdata
-
-static GLboolean _glewInit_GL_ARB_invalidate_subdata ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glInvalidateBufferData = (PFNGLINVALIDATEBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glInvalidateBufferData")) == NULL) || r;
- r = ((glInvalidateBufferSubData = (PFNGLINVALIDATEBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glInvalidateBufferSubData")) == NULL) || r;
- r = ((glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glInvalidateFramebuffer")) == NULL) || r;
- r = ((glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glInvalidateSubFramebuffer")) == NULL) || r;
- r = ((glInvalidateTexImage = (PFNGLINVALIDATETEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"glInvalidateTexImage")) == NULL) || r;
- r = ((glInvalidateTexSubImage = (PFNGLINVALIDATETEXSUBIMAGEPROC)glewGetProcAddress((const GLubyte*)"glInvalidateTexSubImage")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_invalidate_subdata */
-
-#ifdef GL_ARB_map_buffer_range
-
-static GLboolean _glewInit_GL_ARB_map_buffer_range ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedBufferRange")) == NULL) || r;
- r = ((glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glMapBufferRange")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_map_buffer_range */
-
-#ifdef GL_ARB_matrix_palette
-
-static GLboolean _glewInit_GL_ARB_matrix_palette ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCurrentPaletteMatrixARB = (PFNGLCURRENTPALETTEMATRIXARBPROC)glewGetProcAddress((const GLubyte*)"glCurrentPaletteMatrixARB")) == NULL) || r;
- r = ((glMatrixIndexPointerARB = (PFNGLMATRIXINDEXPOINTERARBPROC)glewGetProcAddress((const GLubyte*)"glMatrixIndexPointerARB")) == NULL) || r;
- r = ((glMatrixIndexubvARB = (PFNGLMATRIXINDEXUBVARBPROC)glewGetProcAddress((const GLubyte*)"glMatrixIndexubvARB")) == NULL) || r;
- r = ((glMatrixIndexuivARB = (PFNGLMATRIXINDEXUIVARBPROC)glewGetProcAddress((const GLubyte*)"glMatrixIndexuivARB")) == NULL) || r;
- r = ((glMatrixIndexusvARB = (PFNGLMATRIXINDEXUSVARBPROC)glewGetProcAddress((const GLubyte*)"glMatrixIndexusvARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_matrix_palette */
-
-#ifdef GL_ARB_multi_bind
-
-static GLboolean _glewInit_GL_ARB_multi_bind ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindBuffersBase = (PFNGLBINDBUFFERSBASEPROC)glewGetProcAddress((const GLubyte*)"glBindBuffersBase")) == NULL) || r;
- r = ((glBindBuffersRange = (PFNGLBINDBUFFERSRANGEPROC)glewGetProcAddress((const GLubyte*)"glBindBuffersRange")) == NULL) || r;
- r = ((glBindImageTextures = (PFNGLBINDIMAGETEXTURESPROC)glewGetProcAddress((const GLubyte*)"glBindImageTextures")) == NULL) || r;
- r = ((glBindSamplers = (PFNGLBINDSAMPLERSPROC)glewGetProcAddress((const GLubyte*)"glBindSamplers")) == NULL) || r;
- r = ((glBindTextures = (PFNGLBINDTEXTURESPROC)glewGetProcAddress((const GLubyte*)"glBindTextures")) == NULL) || r;
- r = ((glBindVertexBuffers = (PFNGLBINDVERTEXBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glBindVertexBuffers")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_multi_bind */
-
-#ifdef GL_ARB_multi_draw_indirect
-
-static GLboolean _glewInit_GL_ARB_multi_draw_indirect ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirect")) == NULL) || r;
- r = ((glMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirect")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_multi_draw_indirect */
-
-#ifdef GL_ARB_multisample
-
-static GLboolean _glewInit_GL_ARB_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC)glewGetProcAddress((const GLubyte*)"glSampleCoverageARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_multisample */
-
-#ifdef GL_ARB_multitexture
-
-static GLboolean _glewInit_GL_ARB_multitexture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC)glewGetProcAddress((const GLubyte*)"glActiveTextureARB")) == NULL) || r;
- r = ((glClientActiveTextureARB = (PFNGLCLIENTACTIVETEXTUREARBPROC)glewGetProcAddress((const GLubyte*)"glClientActiveTextureARB")) == NULL) || r;
- r = ((glMultiTexCoord1dARB = (PFNGLMULTITEXCOORD1DARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1dARB")) == NULL) || r;
- r = ((glMultiTexCoord1dvARB = (PFNGLMULTITEXCOORD1DVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1dvARB")) == NULL) || r;
- r = ((glMultiTexCoord1fARB = (PFNGLMULTITEXCOORD1FARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1fARB")) == NULL) || r;
- r = ((glMultiTexCoord1fvARB = (PFNGLMULTITEXCOORD1FVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1fvARB")) == NULL) || r;
- r = ((glMultiTexCoord1iARB = (PFNGLMULTITEXCOORD1IARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1iARB")) == NULL) || r;
- r = ((glMultiTexCoord1ivARB = (PFNGLMULTITEXCOORD1IVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1ivARB")) == NULL) || r;
- r = ((glMultiTexCoord1sARB = (PFNGLMULTITEXCOORD1SARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1sARB")) == NULL) || r;
- r = ((glMultiTexCoord1svARB = (PFNGLMULTITEXCOORD1SVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1svARB")) == NULL) || r;
- r = ((glMultiTexCoord2dARB = (PFNGLMULTITEXCOORD2DARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2dARB")) == NULL) || r;
- r = ((glMultiTexCoord2dvARB = (PFNGLMULTITEXCOORD2DVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2dvARB")) == NULL) || r;
- r = ((glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2fARB")) == NULL) || r;
- r = ((glMultiTexCoord2fvARB = (PFNGLMULTITEXCOORD2FVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2fvARB")) == NULL) || r;
- r = ((glMultiTexCoord2iARB = (PFNGLMULTITEXCOORD2IARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2iARB")) == NULL) || r;
- r = ((glMultiTexCoord2ivARB = (PFNGLMULTITEXCOORD2IVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2ivARB")) == NULL) || r;
- r = ((glMultiTexCoord2sARB = (PFNGLMULTITEXCOORD2SARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2sARB")) == NULL) || r;
- r = ((glMultiTexCoord2svARB = (PFNGLMULTITEXCOORD2SVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2svARB")) == NULL) || r;
- r = ((glMultiTexCoord3dARB = (PFNGLMULTITEXCOORD3DARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3dARB")) == NULL) || r;
- r = ((glMultiTexCoord3dvARB = (PFNGLMULTITEXCOORD3DVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3dvARB")) == NULL) || r;
- r = ((glMultiTexCoord3fARB = (PFNGLMULTITEXCOORD3FARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3fARB")) == NULL) || r;
- r = ((glMultiTexCoord3fvARB = (PFNGLMULTITEXCOORD3FVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3fvARB")) == NULL) || r;
- r = ((glMultiTexCoord3iARB = (PFNGLMULTITEXCOORD3IARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3iARB")) == NULL) || r;
- r = ((glMultiTexCoord3ivARB = (PFNGLMULTITEXCOORD3IVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3ivARB")) == NULL) || r;
- r = ((glMultiTexCoord3sARB = (PFNGLMULTITEXCOORD3SARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3sARB")) == NULL) || r;
- r = ((glMultiTexCoord3svARB = (PFNGLMULTITEXCOORD3SVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3svARB")) == NULL) || r;
- r = ((glMultiTexCoord4dARB = (PFNGLMULTITEXCOORD4DARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4dARB")) == NULL) || r;
- r = ((glMultiTexCoord4dvARB = (PFNGLMULTITEXCOORD4DVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4dvARB")) == NULL) || r;
- r = ((glMultiTexCoord4fARB = (PFNGLMULTITEXCOORD4FARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4fARB")) == NULL) || r;
- r = ((glMultiTexCoord4fvARB = (PFNGLMULTITEXCOORD4FVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4fvARB")) == NULL) || r;
- r = ((glMultiTexCoord4iARB = (PFNGLMULTITEXCOORD4IARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4iARB")) == NULL) || r;
- r = ((glMultiTexCoord4ivARB = (PFNGLMULTITEXCOORD4IVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4ivARB")) == NULL) || r;
- r = ((glMultiTexCoord4sARB = (PFNGLMULTITEXCOORD4SARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4sARB")) == NULL) || r;
- r = ((glMultiTexCoord4svARB = (PFNGLMULTITEXCOORD4SVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4svARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_multitexture */
-
-#ifdef GL_ARB_occlusion_query
-
-static GLboolean _glewInit_GL_ARB_occlusion_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginQueryARB = (PFNGLBEGINQUERYARBPROC)glewGetProcAddress((const GLubyte*)"glBeginQueryARB")) == NULL) || r;
- r = ((glDeleteQueriesARB = (PFNGLDELETEQUERIESARBPROC)glewGetProcAddress((const GLubyte*)"glDeleteQueriesARB")) == NULL) || r;
- r = ((glEndQueryARB = (PFNGLENDQUERYARBPROC)glewGetProcAddress((const GLubyte*)"glEndQueryARB")) == NULL) || r;
- r = ((glGenQueriesARB = (PFNGLGENQUERIESARBPROC)glewGetProcAddress((const GLubyte*)"glGenQueriesARB")) == NULL) || r;
- r = ((glGetQueryObjectivARB = (PFNGLGETQUERYOBJECTIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectivARB")) == NULL) || r;
- r = ((glGetQueryObjectuivARB = (PFNGLGETQUERYOBJECTUIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectuivARB")) == NULL) || r;
- r = ((glGetQueryivARB = (PFNGLGETQUERYIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetQueryivARB")) == NULL) || r;
- r = ((glIsQueryARB = (PFNGLISQUERYARBPROC)glewGetProcAddress((const GLubyte*)"glIsQueryARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_occlusion_query */
-
-#ifdef GL_ARB_parallel_shader_compile
-
-static GLboolean _glewInit_GL_ARB_parallel_shader_compile ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMaxShaderCompilerThreadsARB = (PFNGLMAXSHADERCOMPILERTHREADSARBPROC)glewGetProcAddress((const GLubyte*)"glMaxShaderCompilerThreadsARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_parallel_shader_compile */
-
-#ifdef GL_ARB_point_parameters
-
-static GLboolean _glewInit_GL_ARB_point_parameters ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPointParameterfARB = (PFNGLPOINTPARAMETERFARBPROC)glewGetProcAddress((const GLubyte*)"glPointParameterfARB")) == NULL) || r;
- r = ((glPointParameterfvARB = (PFNGLPOINTPARAMETERFVARBPROC)glewGetProcAddress((const GLubyte*)"glPointParameterfvARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_point_parameters */
-
-#ifdef GL_ARB_polygon_offset_clamp
-
-static GLboolean _glewInit_GL_ARB_polygon_offset_clamp ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPolygonOffsetClamp = (PFNGLPOLYGONOFFSETCLAMPPROC)glewGetProcAddress((const GLubyte*)"glPolygonOffsetClamp")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_polygon_offset_clamp */
-
-#ifdef GL_ARB_program_interface_query
-
-static GLboolean _glewInit_GL_ARB_program_interface_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramInterfaceiv")) == NULL) || r;
- r = ((glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceIndex")) == NULL) || r;
- r = ((glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceLocation")) == NULL) || r;
- r = ((glGetProgramResourceLocationIndex = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceLocationIndex")) == NULL) || r;
- r = ((glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceName")) == NULL) || r;
- r = ((glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceiv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_program_interface_query */
-
-#ifdef GL_ARB_provoking_vertex
-
-static GLboolean _glewInit_GL_ARB_provoking_vertex ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)glewGetProcAddress((const GLubyte*)"glProvokingVertex")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_provoking_vertex */
-
-#ifdef GL_ARB_robustness
-
-static GLboolean _glewInit_GL_ARB_robustness ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetGraphicsResetStatusARB = (PFNGLGETGRAPHICSRESETSTATUSARBPROC)glewGetProcAddress((const GLubyte*)"glGetGraphicsResetStatusARB")) == NULL) || r;
- r = ((glGetnColorTableARB = (PFNGLGETNCOLORTABLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetnColorTableARB")) == NULL) || r;
- r = ((glGetnCompressedTexImageARB = (PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC)glewGetProcAddress((const GLubyte*)"glGetnCompressedTexImageARB")) == NULL) || r;
- r = ((glGetnConvolutionFilterARB = (PFNGLGETNCONVOLUTIONFILTERARBPROC)glewGetProcAddress((const GLubyte*)"glGetnConvolutionFilterARB")) == NULL) || r;
- r = ((glGetnHistogramARB = (PFNGLGETNHISTOGRAMARBPROC)glewGetProcAddress((const GLubyte*)"glGetnHistogramARB")) == NULL) || r;
- r = ((glGetnMapdvARB = (PFNGLGETNMAPDVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnMapdvARB")) == NULL) || r;
- r = ((glGetnMapfvARB = (PFNGLGETNMAPFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnMapfvARB")) == NULL) || r;
- r = ((glGetnMapivARB = (PFNGLGETNMAPIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnMapivARB")) == NULL) || r;
- r = ((glGetnMinmaxARB = (PFNGLGETNMINMAXARBPROC)glewGetProcAddress((const GLubyte*)"glGetnMinmaxARB")) == NULL) || r;
- r = ((glGetnPixelMapfvARB = (PFNGLGETNPIXELMAPFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnPixelMapfvARB")) == NULL) || r;
- r = ((glGetnPixelMapuivARB = (PFNGLGETNPIXELMAPUIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnPixelMapuivARB")) == NULL) || r;
- r = ((glGetnPixelMapusvARB = (PFNGLGETNPIXELMAPUSVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnPixelMapusvARB")) == NULL) || r;
- r = ((glGetnPolygonStippleARB = (PFNGLGETNPOLYGONSTIPPLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetnPolygonStippleARB")) == NULL) || r;
- r = ((glGetnSeparableFilterARB = (PFNGLGETNSEPARABLEFILTERARBPROC)glewGetProcAddress((const GLubyte*)"glGetnSeparableFilterARB")) == NULL) || r;
- r = ((glGetnTexImageARB = (PFNGLGETNTEXIMAGEARBPROC)glewGetProcAddress((const GLubyte*)"glGetnTexImageARB")) == NULL) || r;
- r = ((glGetnUniformdvARB = (PFNGLGETNUNIFORMDVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformdvARB")) == NULL) || r;
- r = ((glGetnUniformfvARB = (PFNGLGETNUNIFORMFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformfvARB")) == NULL) || r;
- r = ((glGetnUniformivARB = (PFNGLGETNUNIFORMIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformivARB")) == NULL) || r;
- r = ((glGetnUniformuivARB = (PFNGLGETNUNIFORMUIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformuivARB")) == NULL) || r;
- r = ((glReadnPixelsARB = (PFNGLREADNPIXELSARBPROC)glewGetProcAddress((const GLubyte*)"glReadnPixelsARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_robustness */
-
-#ifdef GL_ARB_sample_locations
-
-static GLboolean _glewInit_GL_ARB_sample_locations ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferSampleLocationsfvARB = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)glewGetProcAddress((const GLubyte*)"glFramebufferSampleLocationsfvARB")) == NULL) || r;
- r = ((glNamedFramebufferSampleLocationsfvARB = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferSampleLocationsfvARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_sample_locations */
-
-#ifdef GL_ARB_sample_shading
-
-static GLboolean _glewInit_GL_ARB_sample_shading ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMinSampleShadingARB = (PFNGLMINSAMPLESHADINGARBPROC)glewGetProcAddress((const GLubyte*)"glMinSampleShadingARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_sample_shading */
-
-#ifdef GL_ARB_sampler_objects
-
-static GLboolean _glewInit_GL_ARB_sampler_objects ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindSampler = (PFNGLBINDSAMPLERPROC)glewGetProcAddress((const GLubyte*)"glBindSampler")) == NULL) || r;
- r = ((glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)glewGetProcAddress((const GLubyte*)"glDeleteSamplers")) == NULL) || r;
- r = ((glGenSamplers = (PFNGLGENSAMPLERSPROC)glewGetProcAddress((const GLubyte*)"glGenSamplers")) == NULL) || r;
- r = ((glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIiv")) == NULL) || r;
- r = ((glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIuiv")) == NULL) || r;
- r = ((glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterfv")) == NULL) || r;
- r = ((glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameteriv")) == NULL) || r;
- r = ((glIsSampler = (PFNGLISSAMPLERPROC)glewGetProcAddress((const GLubyte*)"glIsSampler")) == NULL) || r;
- r = ((glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIiv")) == NULL) || r;
- r = ((glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIuiv")) == NULL) || r;
- r = ((glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterf")) == NULL) || r;
- r = ((glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterfv")) == NULL) || r;
- r = ((glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameteri")) == NULL) || r;
- r = ((glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameteriv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_sampler_objects */
-
-#ifdef GL_ARB_separate_shader_objects
-
-static GLboolean _glewInit_GL_ARB_separate_shader_objects ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glActiveShaderProgram")) == NULL) || r;
- r = ((glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)glewGetProcAddress((const GLubyte*)"glBindProgramPipeline")) == NULL) || r;
- r = ((glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)glewGetProcAddress((const GLubyte*)"glCreateShaderProgramv")) == NULL) || r;
- r = ((glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)glewGetProcAddress((const GLubyte*)"glDeleteProgramPipelines")) == NULL) || r;
- r = ((glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)glewGetProcAddress((const GLubyte*)"glGenProgramPipelines")) == NULL) || r;
- r = ((glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)glewGetProcAddress((const GLubyte*)"glGetProgramPipelineInfoLog")) == NULL) || r;
- r = ((glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramPipelineiv")) == NULL) || r;
- r = ((glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)glewGetProcAddress((const GLubyte*)"glIsProgramPipeline")) == NULL) || r;
- r = ((glProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1d")) == NULL) || r;
- r = ((glProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1dv")) == NULL) || r;
- r = ((glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1f")) == NULL) || r;
- r = ((glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1fv")) == NULL) || r;
- r = ((glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1i")) == NULL) || r;
- r = ((glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1iv")) == NULL) || r;
- r = ((glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ui")) == NULL) || r;
- r = ((glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1uiv")) == NULL) || r;
- r = ((glProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2d")) == NULL) || r;
- r = ((glProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2dv")) == NULL) || r;
- r = ((glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2f")) == NULL) || r;
- r = ((glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2fv")) == NULL) || r;
- r = ((glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2i")) == NULL) || r;
- r = ((glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2iv")) == NULL) || r;
- r = ((glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ui")) == NULL) || r;
- r = ((glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2uiv")) == NULL) || r;
- r = ((glProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3d")) == NULL) || r;
- r = ((glProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3dv")) == NULL) || r;
- r = ((glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3f")) == NULL) || r;
- r = ((glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3fv")) == NULL) || r;
- r = ((glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3i")) == NULL) || r;
- r = ((glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3iv")) == NULL) || r;
- r = ((glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ui")) == NULL) || r;
- r = ((glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3uiv")) == NULL) || r;
- r = ((glProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4d")) == NULL) || r;
- r = ((glProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4dv")) == NULL) || r;
- r = ((glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4f")) == NULL) || r;
- r = ((glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4fv")) == NULL) || r;
- r = ((glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4i")) == NULL) || r;
- r = ((glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4iv")) == NULL) || r;
- r = ((glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ui")) == NULL) || r;
- r = ((glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4uiv")) == NULL) || r;
- r = ((glProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2dv")) == NULL) || r;
- r = ((glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2fv")) == NULL) || r;
- r = ((glProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x3dv")) == NULL) || r;
- r = ((glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x3fv")) == NULL) || r;
- r = ((glProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x4dv")) == NULL) || r;
- r = ((glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x4fv")) == NULL) || r;
- r = ((glProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3dv")) == NULL) || r;
- r = ((glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3fv")) == NULL) || r;
- r = ((glProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x2dv")) == NULL) || r;
- r = ((glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x2fv")) == NULL) || r;
- r = ((glProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x4dv")) == NULL) || r;
- r = ((glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x4fv")) == NULL) || r;
- r = ((glProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4dv")) == NULL) || r;
- r = ((glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4fv")) == NULL) || r;
- r = ((glProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x2dv")) == NULL) || r;
- r = ((glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x2fv")) == NULL) || r;
- r = ((glProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x3dv")) == NULL) || r;
- r = ((glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x3fv")) == NULL) || r;
- r = ((glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)glewGetProcAddress((const GLubyte*)"glUseProgramStages")) == NULL) || r;
- r = ((glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)glewGetProcAddress((const GLubyte*)"glValidateProgramPipeline")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_separate_shader_objects */
-
-#ifdef GL_ARB_shader_atomic_counters
-
-static GLboolean _glewInit_GL_ARB_shader_atomic_counters ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)glewGetProcAddress((const GLubyte*)"glGetActiveAtomicCounterBufferiv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_shader_atomic_counters */
-
-#ifdef GL_ARB_shader_image_load_store
-
-static GLboolean _glewInit_GL_ARB_shader_image_load_store ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC)glewGetProcAddress((const GLubyte*)"glBindImageTexture")) == NULL) || r;
- r = ((glMemoryBarrier = (PFNGLMEMORYBARRIERPROC)glewGetProcAddress((const GLubyte*)"glMemoryBarrier")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_shader_image_load_store */
-
-#ifdef GL_ARB_shader_objects
-
-static GLboolean _glewInit_GL_ARB_shader_objects ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAttachObjectARB = (PFNGLATTACHOBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glAttachObjectARB")) == NULL) || r;
- r = ((glCompileShaderARB = (PFNGLCOMPILESHADERARBPROC)glewGetProcAddress((const GLubyte*)"glCompileShaderARB")) == NULL) || r;
- r = ((glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glCreateProgramObjectARB")) == NULL) || r;
- r = ((glCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glCreateShaderObjectARB")) == NULL) || r;
- r = ((glDeleteObjectARB = (PFNGLDELETEOBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glDeleteObjectARB")) == NULL) || r;
- r = ((glDetachObjectARB = (PFNGLDETACHOBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glDetachObjectARB")) == NULL) || r;
- r = ((glGetActiveUniformARB = (PFNGLGETACTIVEUNIFORMARBPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniformARB")) == NULL) || r;
- r = ((glGetAttachedObjectsARB = (PFNGLGETATTACHEDOBJECTSARBPROC)glewGetProcAddress((const GLubyte*)"glGetAttachedObjectsARB")) == NULL) || r;
- r = ((glGetHandleARB = (PFNGLGETHANDLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetHandleARB")) == NULL) || r;
- r = ((glGetInfoLogARB = (PFNGLGETINFOLOGARBPROC)glewGetProcAddress((const GLubyte*)"glGetInfoLogARB")) == NULL) || r;
- r = ((glGetObjectParameterfvARB = (PFNGLGETOBJECTPARAMETERFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetObjectParameterfvARB")) == NULL) || r;
- r = ((glGetObjectParameterivARB = (PFNGLGETOBJECTPARAMETERIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetObjectParameterivARB")) == NULL) || r;
- r = ((glGetShaderSourceARB = (PFNGLGETSHADERSOURCEARBPROC)glewGetProcAddress((const GLubyte*)"glGetShaderSourceARB")) == NULL) || r;
- r = ((glGetUniformLocationARB = (PFNGLGETUNIFORMLOCATIONARBPROC)glewGetProcAddress((const GLubyte*)"glGetUniformLocationARB")) == NULL) || r;
- r = ((glGetUniformfvARB = (PFNGLGETUNIFORMFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetUniformfvARB")) == NULL) || r;
- r = ((glGetUniformivARB = (PFNGLGETUNIFORMIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetUniformivARB")) == NULL) || r;
- r = ((glLinkProgramARB = (PFNGLLINKPROGRAMARBPROC)glewGetProcAddress((const GLubyte*)"glLinkProgramARB")) == NULL) || r;
- r = ((glShaderSourceARB = (PFNGLSHADERSOURCEARBPROC)glewGetProcAddress((const GLubyte*)"glShaderSourceARB")) == NULL) || r;
- r = ((glUniform1fARB = (PFNGLUNIFORM1FARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1fARB")) == NULL) || r;
- r = ((glUniform1fvARB = (PFNGLUNIFORM1FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1fvARB")) == NULL) || r;
- r = ((glUniform1iARB = (PFNGLUNIFORM1IARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1iARB")) == NULL) || r;
- r = ((glUniform1ivARB = (PFNGLUNIFORM1IVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1ivARB")) == NULL) || r;
- r = ((glUniform2fARB = (PFNGLUNIFORM2FARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2fARB")) == NULL) || r;
- r = ((glUniform2fvARB = (PFNGLUNIFORM2FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2fvARB")) == NULL) || r;
- r = ((glUniform2iARB = (PFNGLUNIFORM2IARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2iARB")) == NULL) || r;
- r = ((glUniform2ivARB = (PFNGLUNIFORM2IVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2ivARB")) == NULL) || r;
- r = ((glUniform3fARB = (PFNGLUNIFORM3FARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3fARB")) == NULL) || r;
- r = ((glUniform3fvARB = (PFNGLUNIFORM3FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3fvARB")) == NULL) || r;
- r = ((glUniform3iARB = (PFNGLUNIFORM3IARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3iARB")) == NULL) || r;
- r = ((glUniform3ivARB = (PFNGLUNIFORM3IVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3ivARB")) == NULL) || r;
- r = ((glUniform4fARB = (PFNGLUNIFORM4FARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4fARB")) == NULL) || r;
- r = ((glUniform4fvARB = (PFNGLUNIFORM4FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4fvARB")) == NULL) || r;
- r = ((glUniform4iARB = (PFNGLUNIFORM4IARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4iARB")) == NULL) || r;
- r = ((glUniform4ivARB = (PFNGLUNIFORM4IVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4ivARB")) == NULL) || r;
- r = ((glUniformMatrix2fvARB = (PFNGLUNIFORMMATRIX2FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2fvARB")) == NULL) || r;
- r = ((glUniformMatrix3fvARB = (PFNGLUNIFORMMATRIX3FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3fvARB")) == NULL) || r;
- r = ((glUniformMatrix4fvARB = (PFNGLUNIFORMMATRIX4FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4fvARB")) == NULL) || r;
- r = ((glUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glUseProgramObjectARB")) == NULL) || r;
- r = ((glValidateProgramARB = (PFNGLVALIDATEPROGRAMARBPROC)glewGetProcAddress((const GLubyte*)"glValidateProgramARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_shader_objects */
-
-#ifdef GL_ARB_shader_storage_buffer_object
-
-static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC)glewGetProcAddress((const GLubyte*)"glShaderStorageBlockBinding")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_shader_storage_buffer_object */
-
-#ifdef GL_ARB_shader_subroutine
-
-static GLboolean _glewInit_GL_ARB_shader_subroutine ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC)glewGetProcAddress((const GLubyte*)"glGetActiveSubroutineName")) == NULL) || r;
- r = ((glGetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)glewGetProcAddress((const GLubyte*)"glGetActiveSubroutineUniformName")) == NULL) || r;
- r = ((glGetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)glewGetProcAddress((const GLubyte*)"glGetActiveSubroutineUniformiv")) == NULL) || r;
- r = ((glGetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramStageiv")) == NULL) || r;
- r = ((glGetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC)glewGetProcAddress((const GLubyte*)"glGetSubroutineIndex")) == NULL) || r;
- r = ((glGetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)glewGetProcAddress((const GLubyte*)"glGetSubroutineUniformLocation")) == NULL) || r;
- r = ((glGetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformSubroutineuiv")) == NULL) || r;
- r = ((glUniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC)glewGetProcAddress((const GLubyte*)"glUniformSubroutinesuiv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_shader_subroutine */
-
-#ifdef GL_ARB_shading_language_include
-
-static GLboolean _glewInit_GL_ARB_shading_language_include ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCompileShaderIncludeARB = (PFNGLCOMPILESHADERINCLUDEARBPROC)glewGetProcAddress((const GLubyte*)"glCompileShaderIncludeARB")) == NULL) || r;
- r = ((glDeleteNamedStringARB = (PFNGLDELETENAMEDSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glDeleteNamedStringARB")) == NULL) || r;
- r = ((glGetNamedStringARB = (PFNGLGETNAMEDSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glGetNamedStringARB")) == NULL) || r;
- r = ((glGetNamedStringivARB = (PFNGLGETNAMEDSTRINGIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetNamedStringivARB")) == NULL) || r;
- r = ((glIsNamedStringARB = (PFNGLISNAMEDSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glIsNamedStringARB")) == NULL) || r;
- r = ((glNamedStringARB = (PFNGLNAMEDSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glNamedStringARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_shading_language_include */
-
-#ifdef GL_ARB_sparse_buffer
-
-static GLboolean _glewInit_GL_ARB_sparse_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBufferPageCommitmentARB = (PFNGLBUFFERPAGECOMMITMENTARBPROC)glewGetProcAddress((const GLubyte*)"glBufferPageCommitmentARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_sparse_buffer */
-
-#ifdef GL_ARB_sparse_texture
-
-static GLboolean _glewInit_GL_ARB_sparse_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexPageCommitmentARB = (PFNGLTEXPAGECOMMITMENTARBPROC)glewGetProcAddress((const GLubyte*)"glTexPageCommitmentARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_sparse_texture */
-
-#ifdef GL_ARB_sync
-
-static GLboolean _glewInit_GL_ARB_sync ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"glClientWaitSync")) == NULL) || r;
- r = ((glDeleteSync = (PFNGLDELETESYNCPROC)glewGetProcAddress((const GLubyte*)"glDeleteSync")) == NULL) || r;
- r = ((glFenceSync = (PFNGLFENCESYNCPROC)glewGetProcAddress((const GLubyte*)"glFenceSync")) == NULL) || r;
- r = ((glGetInteger64v = (PFNGLGETINTEGER64VPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64v")) == NULL) || r;
- r = ((glGetSynciv = (PFNGLGETSYNCIVPROC)glewGetProcAddress((const GLubyte*)"glGetSynciv")) == NULL) || r;
- r = ((glIsSync = (PFNGLISSYNCPROC)glewGetProcAddress((const GLubyte*)"glIsSync")) == NULL) || r;
- r = ((glWaitSync = (PFNGLWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"glWaitSync")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_sync */
-
-#ifdef GL_ARB_tessellation_shader
-
-static GLboolean _glewInit_GL_ARB_tessellation_shader ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glPatchParameterfv")) == NULL) || r;
- r = ((glPatchParameteri = (PFNGLPATCHPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glPatchParameteri")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_tessellation_shader */
-
-#ifdef GL_ARB_texture_barrier
-
-static GLboolean _glewInit_GL_ARB_texture_barrier ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTextureBarrier = (PFNGLTEXTUREBARRIERPROC)glewGetProcAddress((const GLubyte*)"glTextureBarrier")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_texture_barrier */
-
-#ifdef GL_ARB_texture_buffer_object
-
-static GLboolean _glewInit_GL_ARB_texture_buffer_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexBufferARB = (PFNGLTEXBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"glTexBufferARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_texture_buffer_object */
-
-#ifdef GL_ARB_texture_buffer_range
-
-static GLboolean _glewInit_GL_ARB_texture_buffer_range ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexBufferRange = (PFNGLTEXBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glTexBufferRange")) == NULL) || r;
- r = ((glTextureBufferRangeEXT = (PFNGLTEXTUREBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureBufferRangeEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_texture_buffer_range */
-
-#ifdef GL_ARB_texture_compression
-
-static GLboolean _glewInit_GL_ARB_texture_compression ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCompressedTexImage1DARB = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage1DARB")) == NULL) || r;
- r = ((glCompressedTexImage2DARB = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage2DARB")) == NULL) || r;
- r = ((glCompressedTexImage3DARB = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage3DARB")) == NULL) || r;
- r = ((glCompressedTexSubImage1DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage1DARB")) == NULL) || r;
- r = ((glCompressedTexSubImage2DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage2DARB")) == NULL) || r;
- r = ((glCompressedTexSubImage3DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage3DARB")) == NULL) || r;
- r = ((glGetCompressedTexImageARB = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedTexImageARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_texture_compression */
-
-#ifdef GL_ARB_texture_multisample
-
-static GLboolean _glewInit_GL_ARB_texture_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)glewGetProcAddress((const GLubyte*)"glGetMultisamplefv")) == NULL) || r;
- r = ((glSampleMaski = (PFNGLSAMPLEMASKIPROC)glewGetProcAddress((const GLubyte*)"glSampleMaski")) == NULL) || r;
- r = ((glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTexImage2DMultisample")) == NULL) || r;
- r = ((glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DMultisample")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_texture_multisample */
-
-#ifdef GL_ARB_texture_storage
-
-static GLboolean _glewInit_GL_ARB_texture_storage ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexStorage1D = (PFNGLTEXSTORAGE1DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage1D")) == NULL) || r;
- r = ((glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage2D")) == NULL) || r;
- r = ((glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3D")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_texture_storage */
-
-#ifdef GL_ARB_texture_storage_multisample
-
-static GLboolean _glewInit_GL_ARB_texture_storage_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTexStorage2DMultisample")) == NULL) || r;
- r = ((glTexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3DMultisample")) == NULL) || r;
- r = ((glTextureStorage2DMultisampleEXT = (PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2DMultisampleEXT")) == NULL) || r;
- r = ((glTextureStorage3DMultisampleEXT = (PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3DMultisampleEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_texture_storage_multisample */
-
-#ifdef GL_ARB_texture_view
-
-static GLboolean _glewInit_GL_ARB_texture_view ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTextureView = (PFNGLTEXTUREVIEWPROC)glewGetProcAddress((const GLubyte*)"glTextureView")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_texture_view */
-
-#ifdef GL_ARB_timer_query
-
-static GLboolean _glewInit_GL_ARB_timer_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjecti64v")) == NULL) || r;
- r = ((glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectui64v")) == NULL) || r;
- r = ((glQueryCounter = (PFNGLQUERYCOUNTERPROC)glewGetProcAddress((const GLubyte*)"glQueryCounter")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_timer_query */
-
-#ifdef GL_ARB_transform_feedback2
-
-static GLboolean _glewInit_GL_ARB_transform_feedback2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glBindTransformFeedback")) == NULL) || r;
- r = ((glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)glewGetProcAddress((const GLubyte*)"glDeleteTransformFeedbacks")) == NULL) || r;
- r = ((glDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedback")) == NULL) || r;
- r = ((glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)glewGetProcAddress((const GLubyte*)"glGenTransformFeedbacks")) == NULL) || r;
- r = ((glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glIsTransformFeedback")) == NULL) || r;
- r = ((glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glPauseTransformFeedback")) == NULL) || r;
- r = ((glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glResumeTransformFeedback")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_transform_feedback2 */
-
-#ifdef GL_ARB_transform_feedback3
-
-static GLboolean _glewInit_GL_ARB_transform_feedback3 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC)glewGetProcAddress((const GLubyte*)"glBeginQueryIndexed")) == NULL) || r;
- r = ((glDrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackStream")) == NULL) || r;
- r = ((glEndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC)glewGetProcAddress((const GLubyte*)"glEndQueryIndexed")) == NULL) || r;
- r = ((glGetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryIndexediv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_transform_feedback3 */
-
-#ifdef GL_ARB_transform_feedback_instanced
-
-static GLboolean _glewInit_GL_ARB_transform_feedback_instanced ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawTransformFeedbackInstanced = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackInstanced")) == NULL) || r;
- r = ((glDrawTransformFeedbackStreamInstanced = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackStreamInstanced")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_transform_feedback_instanced */
-
-#ifdef GL_ARB_transpose_matrix
-
-static GLboolean _glewInit_GL_ARB_transpose_matrix ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glLoadTransposeMatrixdARB = (PFNGLLOADTRANSPOSEMATRIXDARBPROC)glewGetProcAddress((const GLubyte*)"glLoadTransposeMatrixdARB")) == NULL) || r;
- r = ((glLoadTransposeMatrixfARB = (PFNGLLOADTRANSPOSEMATRIXFARBPROC)glewGetProcAddress((const GLubyte*)"glLoadTransposeMatrixfARB")) == NULL) || r;
- r = ((glMultTransposeMatrixdARB = (PFNGLMULTTRANSPOSEMATRIXDARBPROC)glewGetProcAddress((const GLubyte*)"glMultTransposeMatrixdARB")) == NULL) || r;
- r = ((glMultTransposeMatrixfARB = (PFNGLMULTTRANSPOSEMATRIXFARBPROC)glewGetProcAddress((const GLubyte*)"glMultTransposeMatrixfARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_transpose_matrix */
-
-#ifdef GL_ARB_uniform_buffer_object
-
-static GLboolean _glewInit_GL_ARB_uniform_buffer_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)glewGetProcAddress((const GLubyte*)"glBindBufferBase")) == NULL) || r;
- r = ((glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glBindBufferRange")) == NULL) || r;
- r = ((glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniformBlockName")) == NULL) || r;
- r = ((glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniformBlockiv")) == NULL) || r;
- r = ((glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniformName")) == NULL) || r;
- r = ((glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniformsiv")) == NULL) || r;
- r = ((glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)glewGetProcAddress((const GLubyte*)"glGetIntegeri_v")) == NULL) || r;
- r = ((glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)glewGetProcAddress((const GLubyte*)"glGetUniformBlockIndex")) == NULL) || r;
- r = ((glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)glewGetProcAddress((const GLubyte*)"glGetUniformIndices")) == NULL) || r;
- r = ((glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)glewGetProcAddress((const GLubyte*)"glUniformBlockBinding")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_uniform_buffer_object */
-
-#ifdef GL_ARB_vertex_array_object
-
-static GLboolean _glewInit_GL_ARB_vertex_array_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)glewGetProcAddress((const GLubyte*)"glBindVertexArray")) == NULL) || r;
- r = ((glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexArrays")) == NULL) || r;
- r = ((glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)glewGetProcAddress((const GLubyte*)"glGenVertexArrays")) == NULL) || r;
- r = ((glIsVertexArray = (PFNGLISVERTEXARRAYPROC)glewGetProcAddress((const GLubyte*)"glIsVertexArray")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_vertex_array_object */
-
-#ifdef GL_ARB_vertex_attrib_64bit
-
-static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribLdv")) == NULL) || r;
- r = ((glVertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1d")) == NULL) || r;
- r = ((glVertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1dv")) == NULL) || r;
- r = ((glVertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2d")) == NULL) || r;
- r = ((glVertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2dv")) == NULL) || r;
- r = ((glVertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3d")) == NULL) || r;
- r = ((glVertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3dv")) == NULL) || r;
- r = ((glVertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4d")) == NULL) || r;
- r = ((glVertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4dv")) == NULL) || r;
- r = ((glVertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribLPointer")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_vertex_attrib_64bit */
-
-#ifdef GL_ARB_vertex_attrib_binding
-
-static GLboolean _glewInit_GL_ARB_vertex_attrib_binding ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBindVertexBuffer")) == NULL) || r;
- r = ((glVertexArrayBindVertexBufferEXT = (PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayBindVertexBufferEXT")) == NULL) || r;
- r = ((glVertexArrayVertexAttribBindingEXT = (PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribBindingEXT")) == NULL) || r;
- r = ((glVertexArrayVertexAttribFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribFormatEXT")) == NULL) || r;
- r = ((glVertexArrayVertexAttribIFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribIFormatEXT")) == NULL) || r;
- r = ((glVertexArrayVertexAttribLFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribLFormatEXT")) == NULL) || r;
- r = ((glVertexArrayVertexBindingDivisorEXT = (PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexBindingDivisorEXT")) == NULL) || r;
- r = ((glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribBinding")) == NULL) || r;
- r = ((glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribFormat")) == NULL) || r;
- r = ((glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribIFormat")) == NULL) || r;
- r = ((glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribLFormat")) == NULL) || r;
- r = ((glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)glewGetProcAddress((const GLubyte*)"glVertexBindingDivisor")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_vertex_attrib_binding */
-
-#ifdef GL_ARB_vertex_blend
-
-static GLboolean _glewInit_GL_ARB_vertex_blend ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glVertexBlendARB = (PFNGLVERTEXBLENDARBPROC)glewGetProcAddress((const GLubyte*)"glVertexBlendARB")) == NULL) || r;
- r = ((glWeightPointerARB = (PFNGLWEIGHTPOINTERARBPROC)glewGetProcAddress((const GLubyte*)"glWeightPointerARB")) == NULL) || r;
- r = ((glWeightbvARB = (PFNGLWEIGHTBVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightbvARB")) == NULL) || r;
- r = ((glWeightdvARB = (PFNGLWEIGHTDVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightdvARB")) == NULL) || r;
- r = ((glWeightfvARB = (PFNGLWEIGHTFVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightfvARB")) == NULL) || r;
- r = ((glWeightivARB = (PFNGLWEIGHTIVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightivARB")) == NULL) || r;
- r = ((glWeightsvARB = (PFNGLWEIGHTSVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightsvARB")) == NULL) || r;
- r = ((glWeightubvARB = (PFNGLWEIGHTUBVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightubvARB")) == NULL) || r;
- r = ((glWeightuivARB = (PFNGLWEIGHTUIVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightuivARB")) == NULL) || r;
- r = ((glWeightusvARB = (PFNGLWEIGHTUSVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightusvARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_vertex_blend */
-
-#ifdef GL_ARB_vertex_buffer_object
-
-static GLboolean _glewInit_GL_ARB_vertex_buffer_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindBufferARB = (PFNGLBINDBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"glBindBufferARB")) == NULL) || r;
- r = ((glBufferDataARB = (PFNGLBUFFERDATAARBPROC)glewGetProcAddress((const GLubyte*)"glBufferDataARB")) == NULL) || r;
- r = ((glBufferSubDataARB = (PFNGLBUFFERSUBDATAARBPROC)glewGetProcAddress((const GLubyte*)"glBufferSubDataARB")) == NULL) || r;
- r = ((glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC)glewGetProcAddress((const GLubyte*)"glDeleteBuffersARB")) == NULL) || r;
- r = ((glGenBuffersARB = (PFNGLGENBUFFERSARBPROC)glewGetProcAddress((const GLubyte*)"glGenBuffersARB")) == NULL) || r;
- r = ((glGetBufferParameterivARB = (PFNGLGETBUFFERPARAMETERIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetBufferParameterivARB")) == NULL) || r;
- r = ((glGetBufferPointervARB = (PFNGLGETBUFFERPOINTERVARBPROC)glewGetProcAddress((const GLubyte*)"glGetBufferPointervARB")) == NULL) || r;
- r = ((glGetBufferSubDataARB = (PFNGLGETBUFFERSUBDATAARBPROC)glewGetProcAddress((const GLubyte*)"glGetBufferSubDataARB")) == NULL) || r;
- r = ((glIsBufferARB = (PFNGLISBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"glIsBufferARB")) == NULL) || r;
- r = ((glMapBufferARB = (PFNGLMAPBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"glMapBufferARB")) == NULL) || r;
- r = ((glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"glUnmapBufferARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_vertex_buffer_object */
-
-#ifdef GL_ARB_vertex_program
-
-static GLboolean _glewInit_GL_ARB_vertex_program ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindProgramARB = (PFNGLBINDPROGRAMARBPROC)glewGetProcAddress((const GLubyte*)"glBindProgramARB")) == NULL) || r;
- r = ((glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC)glewGetProcAddress((const GLubyte*)"glDeleteProgramsARB")) == NULL) || r;
- r = ((glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexAttribArrayARB")) == NULL) || r;
- r = ((glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexAttribArrayARB")) == NULL) || r;
- r = ((glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC)glewGetProcAddress((const GLubyte*)"glGenProgramsARB")) == NULL) || r;
- r = ((glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramEnvParameterdvARB")) == NULL) || r;
- r = ((glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramEnvParameterfvARB")) == NULL) || r;
- r = ((glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramLocalParameterdvARB")) == NULL) || r;
- r = ((glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramLocalParameterfvARB")) == NULL) || r;
- r = ((glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramStringARB")) == NULL) || r;
- r = ((glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramivARB")) == NULL) || r;
- r = ((glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribPointervARB")) == NULL) || r;
- r = ((glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribdvARB")) == NULL) || r;
- r = ((glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribfvARB")) == NULL) || r;
- r = ((glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribivARB")) == NULL) || r;
- r = ((glIsProgramARB = (PFNGLISPROGRAMARBPROC)glewGetProcAddress((const GLubyte*)"glIsProgramARB")) == NULL) || r;
- r = ((glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameter4dARB")) == NULL) || r;
- r = ((glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameter4dvARB")) == NULL) || r;
- r = ((glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameter4fARB")) == NULL) || r;
- r = ((glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameter4fvARB")) == NULL) || r;
- r = ((glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameter4dARB")) == NULL) || r;
- r = ((glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameter4dvARB")) == NULL) || r;
- r = ((glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameter4fARB")) == NULL) || r;
- r = ((glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameter4fvARB")) == NULL) || r;
- r = ((glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glProgramStringARB")) == NULL) || r;
- r = ((glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1dARB")) == NULL) || r;
- r = ((glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1dvARB")) == NULL) || r;
- r = ((glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1fARB")) == NULL) || r;
- r = ((glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1fvARB")) == NULL) || r;
- r = ((glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1sARB")) == NULL) || r;
- r = ((glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1svARB")) == NULL) || r;
- r = ((glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2dARB")) == NULL) || r;
- r = ((glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2dvARB")) == NULL) || r;
- r = ((glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2fARB")) == NULL) || r;
- r = ((glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2fvARB")) == NULL) || r;
- r = ((glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2sARB")) == NULL) || r;
- r = ((glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2svARB")) == NULL) || r;
- r = ((glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3dARB")) == NULL) || r;
- r = ((glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3dvARB")) == NULL) || r;
- r = ((glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3fARB")) == NULL) || r;
- r = ((glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3fvARB")) == NULL) || r;
- r = ((glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3sARB")) == NULL) || r;
- r = ((glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3svARB")) == NULL) || r;
- r = ((glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NbvARB")) == NULL) || r;
- r = ((glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NivARB")) == NULL) || r;
- r = ((glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NsvARB")) == NULL) || r;
- r = ((glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NubARB")) == NULL) || r;
- r = ((glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NubvARB")) == NULL) || r;
- r = ((glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NuivARB")) == NULL) || r;
- r = ((glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NusvARB")) == NULL) || r;
- r = ((glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4bvARB")) == NULL) || r;
- r = ((glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4dARB")) == NULL) || r;
- r = ((glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4dvARB")) == NULL) || r;
- r = ((glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4fARB")) == NULL) || r;
- r = ((glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4fvARB")) == NULL) || r;
- r = ((glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4ivARB")) == NULL) || r;
- r = ((glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4sARB")) == NULL) || r;
- r = ((glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4svARB")) == NULL) || r;
- r = ((glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4ubvARB")) == NULL) || r;
- r = ((glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4uivARB")) == NULL) || r;
- r = ((glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4usvARB")) == NULL) || r;
- r = ((glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribPointerARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_vertex_program */
-
-#ifdef GL_ARB_vertex_shader
-
-static GLboolean _glewInit_GL_ARB_vertex_shader ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindAttribLocationARB = (PFNGLBINDATTRIBLOCATIONARBPROC)glewGetProcAddress((const GLubyte*)"glBindAttribLocationARB")) == NULL) || r;
- r = ((glGetActiveAttribARB = (PFNGLGETACTIVEATTRIBARBPROC)glewGetProcAddress((const GLubyte*)"glGetActiveAttribARB")) == NULL) || r;
- r = ((glGetAttribLocationARB = (PFNGLGETATTRIBLOCATIONARBPROC)glewGetProcAddress((const GLubyte*)"glGetAttribLocationARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_vertex_shader */
-
-#ifdef GL_ARB_vertex_type_2_10_10_10_rev
-
-static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glColorP3ui = (PFNGLCOLORP3UIPROC)glewGetProcAddress((const GLubyte*)"glColorP3ui")) == NULL) || r;
- r = ((glColorP3uiv = (PFNGLCOLORP3UIVPROC)glewGetProcAddress((const GLubyte*)"glColorP3uiv")) == NULL) || r;
- r = ((glColorP4ui = (PFNGLCOLORP4UIPROC)glewGetProcAddress((const GLubyte*)"glColorP4ui")) == NULL) || r;
- r = ((glColorP4uiv = (PFNGLCOLORP4UIVPROC)glewGetProcAddress((const GLubyte*)"glColorP4uiv")) == NULL) || r;
- r = ((glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP1ui")) == NULL) || r;
- r = ((glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP1uiv")) == NULL) || r;
- r = ((glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP2ui")) == NULL) || r;
- r = ((glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP2uiv")) == NULL) || r;
- r = ((glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP3ui")) == NULL) || r;
- r = ((glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP3uiv")) == NULL) || r;
- r = ((glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP4ui")) == NULL) || r;
- r = ((glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP4uiv")) == NULL) || r;
- r = ((glNormalP3ui = (PFNGLNORMALP3UIPROC)glewGetProcAddress((const GLubyte*)"glNormalP3ui")) == NULL) || r;
- r = ((glNormalP3uiv = (PFNGLNORMALP3UIVPROC)glewGetProcAddress((const GLubyte*)"glNormalP3uiv")) == NULL) || r;
- r = ((glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorP3ui")) == NULL) || r;
- r = ((glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorP3uiv")) == NULL) || r;
- r = ((glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP1ui")) == NULL) || r;
- r = ((glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP1uiv")) == NULL) || r;
- r = ((glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP2ui")) == NULL) || r;
- r = ((glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP2uiv")) == NULL) || r;
- r = ((glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP3ui")) == NULL) || r;
- r = ((glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP3uiv")) == NULL) || r;
- r = ((glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP4ui")) == NULL) || r;
- r = ((glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP4uiv")) == NULL) || r;
- r = ((glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP1ui")) == NULL) || r;
- r = ((glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP1uiv")) == NULL) || r;
- r = ((glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP2ui")) == NULL) || r;
- r = ((glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP2uiv")) == NULL) || r;
- r = ((glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP3ui")) == NULL) || r;
- r = ((glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP3uiv")) == NULL) || r;
- r = ((glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP4ui")) == NULL) || r;
- r = ((glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP4uiv")) == NULL) || r;
- r = ((glVertexP2ui = (PFNGLVERTEXP2UIPROC)glewGetProcAddress((const GLubyte*)"glVertexP2ui")) == NULL) || r;
- r = ((glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexP2uiv")) == NULL) || r;
- r = ((glVertexP3ui = (PFNGLVERTEXP3UIPROC)glewGetProcAddress((const GLubyte*)"glVertexP3ui")) == NULL) || r;
- r = ((glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexP3uiv")) == NULL) || r;
- r = ((glVertexP4ui = (PFNGLVERTEXP4UIPROC)glewGetProcAddress((const GLubyte*)"glVertexP4ui")) == NULL) || r;
- r = ((glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexP4uiv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_vertex_type_2_10_10_10_rev */
-
-#ifdef GL_ARB_viewport_array
-
-static GLboolean _glewInit_GL_ARB_viewport_array ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeArrayv")) == NULL) || r;
- r = ((glDepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeIndexed")) == NULL) || r;
- r = ((glGetDoublei_v = (PFNGLGETDOUBLEI_VPROC)glewGetProcAddress((const GLubyte*)"glGetDoublei_v")) == NULL) || r;
- r = ((glGetFloati_v = (PFNGLGETFLOATI_VPROC)glewGetProcAddress((const GLubyte*)"glGetFloati_v")) == NULL) || r;
- r = ((glScissorArrayv = (PFNGLSCISSORARRAYVPROC)glewGetProcAddress((const GLubyte*)"glScissorArrayv")) == NULL) || r;
- r = ((glScissorIndexed = (PFNGLSCISSORINDEXEDPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexed")) == NULL) || r;
- r = ((glScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexedv")) == NULL) || r;
- r = ((glViewportArrayv = (PFNGLVIEWPORTARRAYVPROC)glewGetProcAddress((const GLubyte*)"glViewportArrayv")) == NULL) || r;
- r = ((glViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedf")) == NULL) || r;
- r = ((glViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedfv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_viewport_array */
-
-#ifdef GL_ARB_window_pos
-
-static GLboolean _glewInit_GL_ARB_window_pos ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glWindowPos2dARB = (PFNGLWINDOWPOS2DARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2dARB")) == NULL) || r;
- r = ((glWindowPos2dvARB = (PFNGLWINDOWPOS2DVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2dvARB")) == NULL) || r;
- r = ((glWindowPos2fARB = (PFNGLWINDOWPOS2FARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2fARB")) == NULL) || r;
- r = ((glWindowPos2fvARB = (PFNGLWINDOWPOS2FVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2fvARB")) == NULL) || r;
- r = ((glWindowPos2iARB = (PFNGLWINDOWPOS2IARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2iARB")) == NULL) || r;
- r = ((glWindowPos2ivARB = (PFNGLWINDOWPOS2IVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2ivARB")) == NULL) || r;
- r = ((glWindowPos2sARB = (PFNGLWINDOWPOS2SARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2sARB")) == NULL) || r;
- r = ((glWindowPos2svARB = (PFNGLWINDOWPOS2SVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2svARB")) == NULL) || r;
- r = ((glWindowPos3dARB = (PFNGLWINDOWPOS3DARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3dARB")) == NULL) || r;
- r = ((glWindowPos3dvARB = (PFNGLWINDOWPOS3DVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3dvARB")) == NULL) || r;
- r = ((glWindowPos3fARB = (PFNGLWINDOWPOS3FARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3fARB")) == NULL) || r;
- r = ((glWindowPos3fvARB = (PFNGLWINDOWPOS3FVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3fvARB")) == NULL) || r;
- r = ((glWindowPos3iARB = (PFNGLWINDOWPOS3IARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3iARB")) == NULL) || r;
- r = ((glWindowPos3ivARB = (PFNGLWINDOWPOS3IVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3ivARB")) == NULL) || r;
- r = ((glWindowPos3sARB = (PFNGLWINDOWPOS3SARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3sARB")) == NULL) || r;
- r = ((glWindowPos3svARB = (PFNGLWINDOWPOS3SVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3svARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ARB_window_pos */
-
-#ifdef GL_ATI_draw_buffers
-
-static GLboolean _glewInit_GL_ATI_draw_buffers ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawBuffersATI = (PFNGLDRAWBUFFERSATIPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersATI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ATI_draw_buffers */
-
-#ifdef GL_ATI_element_array
-
-static GLboolean _glewInit_GL_ATI_element_array ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawElementArrayATI = (PFNGLDRAWELEMENTARRAYATIPROC)glewGetProcAddress((const GLubyte*)"glDrawElementArrayATI")) == NULL) || r;
- r = ((glDrawRangeElementArrayATI = (PFNGLDRAWRANGEELEMENTARRAYATIPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementArrayATI")) == NULL) || r;
- r = ((glElementPointerATI = (PFNGLELEMENTPOINTERATIPROC)glewGetProcAddress((const GLubyte*)"glElementPointerATI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ATI_element_array */
-
-#ifdef GL_ATI_envmap_bumpmap
-
-static GLboolean _glewInit_GL_ATI_envmap_bumpmap ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetTexBumpParameterfvATI = (PFNGLGETTEXBUMPPARAMETERFVATIPROC)glewGetProcAddress((const GLubyte*)"glGetTexBumpParameterfvATI")) == NULL) || r;
- r = ((glGetTexBumpParameterivATI = (PFNGLGETTEXBUMPPARAMETERIVATIPROC)glewGetProcAddress((const GLubyte*)"glGetTexBumpParameterivATI")) == NULL) || r;
- r = ((glTexBumpParameterfvATI = (PFNGLTEXBUMPPARAMETERFVATIPROC)glewGetProcAddress((const GLubyte*)"glTexBumpParameterfvATI")) == NULL) || r;
- r = ((glTexBumpParameterivATI = (PFNGLTEXBUMPPARAMETERIVATIPROC)glewGetProcAddress((const GLubyte*)"glTexBumpParameterivATI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ATI_envmap_bumpmap */
-
-#ifdef GL_ATI_fragment_shader
-
-static GLboolean _glewInit_GL_ATI_fragment_shader ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAlphaFragmentOp1ATI = (PFNGLALPHAFRAGMENTOP1ATIPROC)glewGetProcAddress((const GLubyte*)"glAlphaFragmentOp1ATI")) == NULL) || r;
- r = ((glAlphaFragmentOp2ATI = (PFNGLALPHAFRAGMENTOP2ATIPROC)glewGetProcAddress((const GLubyte*)"glAlphaFragmentOp2ATI")) == NULL) || r;
- r = ((glAlphaFragmentOp3ATI = (PFNGLALPHAFRAGMENTOP3ATIPROC)glewGetProcAddress((const GLubyte*)"glAlphaFragmentOp3ATI")) == NULL) || r;
- r = ((glBeginFragmentShaderATI = (PFNGLBEGINFRAGMENTSHADERATIPROC)glewGetProcAddress((const GLubyte*)"glBeginFragmentShaderATI")) == NULL) || r;
- r = ((glBindFragmentShaderATI = (PFNGLBINDFRAGMENTSHADERATIPROC)glewGetProcAddress((const GLubyte*)"glBindFragmentShaderATI")) == NULL) || r;
- r = ((glColorFragmentOp1ATI = (PFNGLCOLORFRAGMENTOP1ATIPROC)glewGetProcAddress((const GLubyte*)"glColorFragmentOp1ATI")) == NULL) || r;
- r = ((glColorFragmentOp2ATI = (PFNGLCOLORFRAGMENTOP2ATIPROC)glewGetProcAddress((const GLubyte*)"glColorFragmentOp2ATI")) == NULL) || r;
- r = ((glColorFragmentOp3ATI = (PFNGLCOLORFRAGMENTOP3ATIPROC)glewGetProcAddress((const GLubyte*)"glColorFragmentOp3ATI")) == NULL) || r;
- r = ((glDeleteFragmentShaderATI = (PFNGLDELETEFRAGMENTSHADERATIPROC)glewGetProcAddress((const GLubyte*)"glDeleteFragmentShaderATI")) == NULL) || r;
- r = ((glEndFragmentShaderATI = (PFNGLENDFRAGMENTSHADERATIPROC)glewGetProcAddress((const GLubyte*)"glEndFragmentShaderATI")) == NULL) || r;
- r = ((glGenFragmentShadersATI = (PFNGLGENFRAGMENTSHADERSATIPROC)glewGetProcAddress((const GLubyte*)"glGenFragmentShadersATI")) == NULL) || r;
- r = ((glPassTexCoordATI = (PFNGLPASSTEXCOORDATIPROC)glewGetProcAddress((const GLubyte*)"glPassTexCoordATI")) == NULL) || r;
- r = ((glSampleMapATI = (PFNGLSAMPLEMAPATIPROC)glewGetProcAddress((const GLubyte*)"glSampleMapATI")) == NULL) || r;
- r = ((glSetFragmentShaderConstantATI = (PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)glewGetProcAddress((const GLubyte*)"glSetFragmentShaderConstantATI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ATI_fragment_shader */
-
-#ifdef GL_ATI_map_object_buffer
-
-static GLboolean _glewInit_GL_ATI_map_object_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMapObjectBufferATI = (PFNGLMAPOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glMapObjectBufferATI")) == NULL) || r;
- r = ((glUnmapObjectBufferATI = (PFNGLUNMAPOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glUnmapObjectBufferATI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ATI_map_object_buffer */
-
-#ifdef GL_ATI_pn_triangles
-
-static GLboolean _glewInit_GL_ATI_pn_triangles ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPNTrianglesfATI = (PFNGLPNTRIANGLESFATIPROC)glewGetProcAddress((const GLubyte*)"glPNTrianglesfATI")) == NULL) || r;
- r = ((glPNTrianglesiATI = (PFNGLPNTRIANGLESIATIPROC)glewGetProcAddress((const GLubyte*)"glPNTrianglesiATI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ATI_pn_triangles */
-
-#ifdef GL_ATI_separate_stencil
-
-static GLboolean _glewInit_GL_ATI_separate_stencil ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glStencilFuncSeparateATI = (PFNGLSTENCILFUNCSEPARATEATIPROC)glewGetProcAddress((const GLubyte*)"glStencilFuncSeparateATI")) == NULL) || r;
- r = ((glStencilOpSeparateATI = (PFNGLSTENCILOPSEPARATEATIPROC)glewGetProcAddress((const GLubyte*)"glStencilOpSeparateATI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ATI_separate_stencil */
-
-#ifdef GL_ATI_vertex_array_object
-
-static GLboolean _glewInit_GL_ATI_vertex_array_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glArrayObjectATI = (PFNGLARRAYOBJECTATIPROC)glewGetProcAddress((const GLubyte*)"glArrayObjectATI")) == NULL) || r;
- r = ((glFreeObjectBufferATI = (PFNGLFREEOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glFreeObjectBufferATI")) == NULL) || r;
- r = ((glGetArrayObjectfvATI = (PFNGLGETARRAYOBJECTFVATIPROC)glewGetProcAddress((const GLubyte*)"glGetArrayObjectfvATI")) == NULL) || r;
- r = ((glGetArrayObjectivATI = (PFNGLGETARRAYOBJECTIVATIPROC)glewGetProcAddress((const GLubyte*)"glGetArrayObjectivATI")) == NULL) || r;
- r = ((glGetObjectBufferfvATI = (PFNGLGETOBJECTBUFFERFVATIPROC)glewGetProcAddress((const GLubyte*)"glGetObjectBufferfvATI")) == NULL) || r;
- r = ((glGetObjectBufferivATI = (PFNGLGETOBJECTBUFFERIVATIPROC)glewGetProcAddress((const GLubyte*)"glGetObjectBufferivATI")) == NULL) || r;
- r = ((glGetVariantArrayObjectfvATI = (PFNGLGETVARIANTARRAYOBJECTFVATIPROC)glewGetProcAddress((const GLubyte*)"glGetVariantArrayObjectfvATI")) == NULL) || r;
- r = ((glGetVariantArrayObjectivATI = (PFNGLGETVARIANTARRAYOBJECTIVATIPROC)glewGetProcAddress((const GLubyte*)"glGetVariantArrayObjectivATI")) == NULL) || r;
- r = ((glIsObjectBufferATI = (PFNGLISOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glIsObjectBufferATI")) == NULL) || r;
- r = ((glNewObjectBufferATI = (PFNGLNEWOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glNewObjectBufferATI")) == NULL) || r;
- r = ((glUpdateObjectBufferATI = (PFNGLUPDATEOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glUpdateObjectBufferATI")) == NULL) || r;
- r = ((glVariantArrayObjectATI = (PFNGLVARIANTARRAYOBJECTATIPROC)glewGetProcAddress((const GLubyte*)"glVariantArrayObjectATI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ATI_vertex_array_object */
-
-#ifdef GL_ATI_vertex_attrib_array_object
-
-static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetVertexAttribArrayObjectfvATI = (PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribArrayObjectfvATI")) == NULL) || r;
- r = ((glGetVertexAttribArrayObjectivATI = (PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribArrayObjectivATI")) == NULL) || r;
- r = ((glVertexAttribArrayObjectATI = (PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribArrayObjectATI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ATI_vertex_attrib_array_object */
-
-#ifdef GL_ATI_vertex_streams
-
-static GLboolean _glewInit_GL_ATI_vertex_streams ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClientActiveVertexStreamATI = (PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC)glewGetProcAddress((const GLubyte*)"glClientActiveVertexStreamATI")) == NULL) || r;
- r = ((glNormalStream3bATI = (PFNGLNORMALSTREAM3BATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3bATI")) == NULL) || r;
- r = ((glNormalStream3bvATI = (PFNGLNORMALSTREAM3BVATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3bvATI")) == NULL) || r;
- r = ((glNormalStream3dATI = (PFNGLNORMALSTREAM3DATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3dATI")) == NULL) || r;
- r = ((glNormalStream3dvATI = (PFNGLNORMALSTREAM3DVATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3dvATI")) == NULL) || r;
- r = ((glNormalStream3fATI = (PFNGLNORMALSTREAM3FATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3fATI")) == NULL) || r;
- r = ((glNormalStream3fvATI = (PFNGLNORMALSTREAM3FVATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3fvATI")) == NULL) || r;
- r = ((glNormalStream3iATI = (PFNGLNORMALSTREAM3IATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3iATI")) == NULL) || r;
- r = ((glNormalStream3ivATI = (PFNGLNORMALSTREAM3IVATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3ivATI")) == NULL) || r;
- r = ((glNormalStream3sATI = (PFNGLNORMALSTREAM3SATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3sATI")) == NULL) || r;
- r = ((glNormalStream3svATI = (PFNGLNORMALSTREAM3SVATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3svATI")) == NULL) || r;
- r = ((glVertexBlendEnvfATI = (PFNGLVERTEXBLENDENVFATIPROC)glewGetProcAddress((const GLubyte*)"glVertexBlendEnvfATI")) == NULL) || r;
- r = ((glVertexBlendEnviATI = (PFNGLVERTEXBLENDENVIATIPROC)glewGetProcAddress((const GLubyte*)"glVertexBlendEnviATI")) == NULL) || r;
- r = ((glVertexStream1dATI = (PFNGLVERTEXSTREAM1DATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1dATI")) == NULL) || r;
- r = ((glVertexStream1dvATI = (PFNGLVERTEXSTREAM1DVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1dvATI")) == NULL) || r;
- r = ((glVertexStream1fATI = (PFNGLVERTEXSTREAM1FATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1fATI")) == NULL) || r;
- r = ((glVertexStream1fvATI = (PFNGLVERTEXSTREAM1FVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1fvATI")) == NULL) || r;
- r = ((glVertexStream1iATI = (PFNGLVERTEXSTREAM1IATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1iATI")) == NULL) || r;
- r = ((glVertexStream1ivATI = (PFNGLVERTEXSTREAM1IVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1ivATI")) == NULL) || r;
- r = ((glVertexStream1sATI = (PFNGLVERTEXSTREAM1SATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1sATI")) == NULL) || r;
- r = ((glVertexStream1svATI = (PFNGLVERTEXSTREAM1SVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1svATI")) == NULL) || r;
- r = ((glVertexStream2dATI = (PFNGLVERTEXSTREAM2DATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2dATI")) == NULL) || r;
- r = ((glVertexStream2dvATI = (PFNGLVERTEXSTREAM2DVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2dvATI")) == NULL) || r;
- r = ((glVertexStream2fATI = (PFNGLVERTEXSTREAM2FATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2fATI")) == NULL) || r;
- r = ((glVertexStream2fvATI = (PFNGLVERTEXSTREAM2FVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2fvATI")) == NULL) || r;
- r = ((glVertexStream2iATI = (PFNGLVERTEXSTREAM2IATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2iATI")) == NULL) || r;
- r = ((glVertexStream2ivATI = (PFNGLVERTEXSTREAM2IVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2ivATI")) == NULL) || r;
- r = ((glVertexStream2sATI = (PFNGLVERTEXSTREAM2SATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2sATI")) == NULL) || r;
- r = ((glVertexStream2svATI = (PFNGLVERTEXSTREAM2SVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2svATI")) == NULL) || r;
- r = ((glVertexStream3dATI = (PFNGLVERTEXSTREAM3DATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3dATI")) == NULL) || r;
- r = ((glVertexStream3dvATI = (PFNGLVERTEXSTREAM3DVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3dvATI")) == NULL) || r;
- r = ((glVertexStream3fATI = (PFNGLVERTEXSTREAM3FATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3fATI")) == NULL) || r;
- r = ((glVertexStream3fvATI = (PFNGLVERTEXSTREAM3FVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3fvATI")) == NULL) || r;
- r = ((glVertexStream3iATI = (PFNGLVERTEXSTREAM3IATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3iATI")) == NULL) || r;
- r = ((glVertexStream3ivATI = (PFNGLVERTEXSTREAM3IVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3ivATI")) == NULL) || r;
- r = ((glVertexStream3sATI = (PFNGLVERTEXSTREAM3SATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3sATI")) == NULL) || r;
- r = ((glVertexStream3svATI = (PFNGLVERTEXSTREAM3SVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3svATI")) == NULL) || r;
- r = ((glVertexStream4dATI = (PFNGLVERTEXSTREAM4DATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4dATI")) == NULL) || r;
- r = ((glVertexStream4dvATI = (PFNGLVERTEXSTREAM4DVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4dvATI")) == NULL) || r;
- r = ((glVertexStream4fATI = (PFNGLVERTEXSTREAM4FATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4fATI")) == NULL) || r;
- r = ((glVertexStream4fvATI = (PFNGLVERTEXSTREAM4FVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4fvATI")) == NULL) || r;
- r = ((glVertexStream4iATI = (PFNGLVERTEXSTREAM4IATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4iATI")) == NULL) || r;
- r = ((glVertexStream4ivATI = (PFNGLVERTEXSTREAM4IVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4ivATI")) == NULL) || r;
- r = ((glVertexStream4sATI = (PFNGLVERTEXSTREAM4SATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4sATI")) == NULL) || r;
- r = ((glVertexStream4svATI = (PFNGLVERTEXSTREAM4SVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4svATI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_ATI_vertex_streams */
-
-#ifdef GL_EXT_EGL_image_storage
-
-static GLboolean _glewInit_GL_EXT_EGL_image_storage ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glEGLImageTargetTexStorageEXT = (PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetTexStorageEXT")) == NULL) || r;
- r = ((glEGLImageTargetTextureStorageEXT = (PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetTextureStorageEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_EGL_image_storage */
-
-#ifdef GL_EXT_base_instance
-
-static GLboolean _glewInit_GL_EXT_base_instance ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawArraysInstancedBaseInstanceEXT = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedBaseInstanceEXT")) == NULL) || r;
- r = ((glDrawElementsInstancedBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseInstanceEXT")) == NULL) || r;
- r = ((glDrawElementsInstancedBaseVertexBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertexBaseInstanceEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_base_instance */
-
-#ifdef GL_EXT_bindable_uniform
-
-static GLboolean _glewInit_GL_EXT_bindable_uniform ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetUniformBufferSizeEXT = (PFNGLGETUNIFORMBUFFERSIZEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUniformBufferSizeEXT")) == NULL) || r;
- r = ((glGetUniformOffsetEXT = (PFNGLGETUNIFORMOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUniformOffsetEXT")) == NULL) || r;
- r = ((glUniformBufferEXT = (PFNGLUNIFORMBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glUniformBufferEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_bindable_uniform */
-
-#ifdef GL_EXT_blend_color
-
-static GLboolean _glewInit_GL_EXT_blend_color ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendColorEXT = (PFNGLBLENDCOLOREXTPROC)glewGetProcAddress((const GLubyte*)"glBlendColorEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_blend_color */
-
-#ifdef GL_EXT_blend_equation_separate
-
-static GLboolean _glewInit_GL_EXT_blend_equation_separate ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendEquationSeparateEXT = (PFNGLBLENDEQUATIONSEPARATEEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_blend_equation_separate */
-
-#ifdef GL_EXT_blend_func_extended
-
-static GLboolean _glewInit_GL_EXT_blend_func_extended ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindFragDataLocationIndexedEXT = (PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocationIndexedEXT")) == NULL) || r;
- r = ((glGetFragDataIndexEXT = (PFNGLGETFRAGDATAINDEXEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragDataIndexEXT")) == NULL) || r;
- r = ((glGetProgramResourceLocationIndexEXT = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceLocationIndexEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_blend_func_extended */
-
-#ifdef GL_EXT_blend_func_separate
-
-static GLboolean _glewInit_GL_EXT_blend_func_separate ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendFuncSeparateEXT = (PFNGLBLENDFUNCSEPARATEEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_blend_func_separate */
-
-#ifdef GL_EXT_blend_minmax
-
-static GLboolean _glewInit_GL_EXT_blend_minmax ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendEquationEXT = (PFNGLBLENDEQUATIONEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_blend_minmax */
-
-#ifdef GL_EXT_buffer_storage
-
-static GLboolean _glewInit_GL_EXT_buffer_storage ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBufferStorageEXT = (PFNGLBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageEXT")) == NULL) || r;
- r = ((glNamedBufferStorageEXT = (PFNGLNAMEDBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_buffer_storage */
-
-#ifdef GL_EXT_clear_texture
-
-static GLboolean _glewInit_GL_EXT_clear_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClearTexImageEXT = (PFNGLCLEARTEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glClearTexImageEXT")) == NULL) || r;
- r = ((glClearTexSubImageEXT = (PFNGLCLEARTEXSUBIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glClearTexSubImageEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_clear_texture */
-
-#ifdef GL_EXT_clip_control
-
-static GLboolean _glewInit_GL_EXT_clip_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClipControlEXT = (PFNGLCLIPCONTROLEXTPROC)glewGetProcAddress((const GLubyte*)"glClipControlEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_clip_control */
-
-#ifdef GL_EXT_color_subtable
-
-static GLboolean _glewInit_GL_EXT_color_subtable ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glColorSubTableEXT = (PFNGLCOLORSUBTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"glColorSubTableEXT")) == NULL) || r;
- r = ((glCopyColorSubTableEXT = (PFNGLCOPYCOLORSUBTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyColorSubTableEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_color_subtable */
-
-#ifdef GL_EXT_compiled_vertex_array
-
-static GLboolean _glewInit_GL_EXT_compiled_vertex_array ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glLockArraysEXT = (PFNGLLOCKARRAYSEXTPROC)glewGetProcAddress((const GLubyte*)"glLockArraysEXT")) == NULL) || r;
- r = ((glUnlockArraysEXT = (PFNGLUNLOCKARRAYSEXTPROC)glewGetProcAddress((const GLubyte*)"glUnlockArraysEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_compiled_vertex_array */
-
-#ifdef GL_EXT_convolution
-
-static GLboolean _glewInit_GL_EXT_convolution ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glConvolutionFilter1DEXT = (PFNGLCONVOLUTIONFILTER1DEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionFilter1DEXT")) == NULL) || r;
- r = ((glConvolutionFilter2DEXT = (PFNGLCONVOLUTIONFILTER2DEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionFilter2DEXT")) == NULL) || r;
- r = ((glConvolutionParameterfEXT = (PFNGLCONVOLUTIONPARAMETERFEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameterfEXT")) == NULL) || r;
- r = ((glConvolutionParameterfvEXT = (PFNGLCONVOLUTIONPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameterfvEXT")) == NULL) || r;
- r = ((glConvolutionParameteriEXT = (PFNGLCONVOLUTIONPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameteriEXT")) == NULL) || r;
- r = ((glConvolutionParameterivEXT = (PFNGLCONVOLUTIONPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameterivEXT")) == NULL) || r;
- r = ((glCopyConvolutionFilter1DEXT = (PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyConvolutionFilter1DEXT")) == NULL) || r;
- r = ((glCopyConvolutionFilter2DEXT = (PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyConvolutionFilter2DEXT")) == NULL) || r;
- r = ((glGetConvolutionFilterEXT = (PFNGLGETCONVOLUTIONFILTEREXTPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionFilterEXT")) == NULL) || r;
- r = ((glGetConvolutionParameterfvEXT = (PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionParameterfvEXT")) == NULL) || r;
- r = ((glGetConvolutionParameterivEXT = (PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionParameterivEXT")) == NULL) || r;
- r = ((glGetSeparableFilterEXT = (PFNGLGETSEPARABLEFILTEREXTPROC)glewGetProcAddress((const GLubyte*)"glGetSeparableFilterEXT")) == NULL) || r;
- r = ((glSeparableFilter2DEXT = (PFNGLSEPARABLEFILTER2DEXTPROC)glewGetProcAddress((const GLubyte*)"glSeparableFilter2DEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_convolution */
-
-#ifdef GL_EXT_coordinate_frame
-
-static GLboolean _glewInit_GL_EXT_coordinate_frame ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBinormalPointerEXT = (PFNGLBINORMALPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glBinormalPointerEXT")) == NULL) || r;
- r = ((glTangentPointerEXT = (PFNGLTANGENTPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glTangentPointerEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_coordinate_frame */
-
-#ifdef GL_EXT_copy_image
-
-static GLboolean _glewInit_GL_EXT_copy_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCopyImageSubDataEXT = (PFNGLCOPYIMAGESUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyImageSubDataEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_copy_image */
-
-#ifdef GL_EXT_copy_texture
-
-static GLboolean _glewInit_GL_EXT_copy_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCopyTexImage1DEXT = (PFNGLCOPYTEXIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTexImage1DEXT")) == NULL) || r;
- r = ((glCopyTexImage2DEXT = (PFNGLCOPYTEXIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTexImage2DEXT")) == NULL) || r;
- r = ((glCopyTexSubImage1DEXT = (PFNGLCOPYTEXSUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage1DEXT")) == NULL) || r;
- r = ((glCopyTexSubImage2DEXT = (PFNGLCOPYTEXSUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage2DEXT")) == NULL) || r;
- r = ((glCopyTexSubImage3DEXT = (PFNGLCOPYTEXSUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage3DEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_copy_texture */
-
-#ifdef GL_EXT_cull_vertex
-
-static GLboolean _glewInit_GL_EXT_cull_vertex ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCullParameterdvEXT = (PFNGLCULLPARAMETERDVEXTPROC)glewGetProcAddress((const GLubyte*)"glCullParameterdvEXT")) == NULL) || r;
- r = ((glCullParameterfvEXT = (PFNGLCULLPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glCullParameterfvEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_cull_vertex */
-
-#ifdef GL_EXT_debug_label
-
-static GLboolean _glewInit_GL_EXT_debug_label ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetObjectLabelEXT = (PFNGLGETOBJECTLABELEXTPROC)glewGetProcAddress((const GLubyte*)"glGetObjectLabelEXT")) == NULL) || r;
- r = ((glLabelObjectEXT = (PFNGLLABELOBJECTEXTPROC)glewGetProcAddress((const GLubyte*)"glLabelObjectEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_debug_label */
-
-#ifdef GL_EXT_debug_marker
-
-static GLboolean _glewInit_GL_EXT_debug_marker ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glInsertEventMarkerEXT = (PFNGLINSERTEVENTMARKEREXTPROC)glewGetProcAddress((const GLubyte*)"glInsertEventMarkerEXT")) == NULL) || r;
- r = ((glPopGroupMarkerEXT = (PFNGLPOPGROUPMARKEREXTPROC)glewGetProcAddress((const GLubyte*)"glPopGroupMarkerEXT")) == NULL) || r;
- r = ((glPushGroupMarkerEXT = (PFNGLPUSHGROUPMARKEREXTPROC)glewGetProcAddress((const GLubyte*)"glPushGroupMarkerEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_debug_marker */
-
-#ifdef GL_EXT_depth_bounds_test
-
-static GLboolean _glewInit_GL_EXT_depth_bounds_test ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDepthBoundsEXT = (PFNGLDEPTHBOUNDSEXTPROC)glewGetProcAddress((const GLubyte*)"glDepthBoundsEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_depth_bounds_test */
-
-#ifdef GL_EXT_direct_state_access
-
-static GLboolean _glewInit_GL_EXT_direct_state_access ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindMultiTextureEXT = (PFNGLBINDMULTITEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glBindMultiTextureEXT")) == NULL) || r;
- r = ((glCheckNamedFramebufferStatusEXT = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC)glewGetProcAddress((const GLubyte*)"glCheckNamedFramebufferStatusEXT")) == NULL) || r;
- r = ((glClientAttribDefaultEXT = (PFNGLCLIENTATTRIBDEFAULTEXTPROC)glewGetProcAddress((const GLubyte*)"glClientAttribDefaultEXT")) == NULL) || r;
- r = ((glCompressedMultiTexImage1DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexImage1DEXT")) == NULL) || r;
- r = ((glCompressedMultiTexImage2DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexImage2DEXT")) == NULL) || r;
- r = ((glCompressedMultiTexImage3DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexImage3DEXT")) == NULL) || r;
- r = ((glCompressedMultiTexSubImage1DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexSubImage1DEXT")) == NULL) || r;
- r = ((glCompressedMultiTexSubImage2DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexSubImage2DEXT")) == NULL) || r;
- r = ((glCompressedMultiTexSubImage3DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexSubImage3DEXT")) == NULL) || r;
- r = ((glCompressedTextureImage1DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureImage1DEXT")) == NULL) || r;
- r = ((glCompressedTextureImage2DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureImage2DEXT")) == NULL) || r;
- r = ((glCompressedTextureImage3DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureImage3DEXT")) == NULL) || r;
- r = ((glCompressedTextureSubImage1DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage1DEXT")) == NULL) || r;
- r = ((glCompressedTextureSubImage2DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage2DEXT")) == NULL) || r;
- r = ((glCompressedTextureSubImage3DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage3DEXT")) == NULL) || r;
- r = ((glCopyMultiTexImage1DEXT = (PFNGLCOPYMULTITEXIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyMultiTexImage1DEXT")) == NULL) || r;
- r = ((glCopyMultiTexImage2DEXT = (PFNGLCOPYMULTITEXIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyMultiTexImage2DEXT")) == NULL) || r;
- r = ((glCopyMultiTexSubImage1DEXT = (PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyMultiTexSubImage1DEXT")) == NULL) || r;
- r = ((glCopyMultiTexSubImage2DEXT = (PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyMultiTexSubImage2DEXT")) == NULL) || r;
- r = ((glCopyMultiTexSubImage3DEXT = (PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyMultiTexSubImage3DEXT")) == NULL) || r;
- r = ((glCopyTextureImage1DEXT = (PFNGLCOPYTEXTUREIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureImage1DEXT")) == NULL) || r;
- r = ((glCopyTextureImage2DEXT = (PFNGLCOPYTEXTUREIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureImage2DEXT")) == NULL) || r;
- r = ((glCopyTextureSubImage1DEXT = (PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage1DEXT")) == NULL) || r;
- r = ((glCopyTextureSubImage2DEXT = (PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage2DEXT")) == NULL) || r;
- r = ((glCopyTextureSubImage3DEXT = (PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage3DEXT")) == NULL) || r;
- r = ((glDisableClientStateIndexedEXT = (PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableClientStateIndexedEXT")) == NULL) || r;
- r = ((glDisableClientStateiEXT = (PFNGLDISABLECLIENTSTATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableClientStateiEXT")) == NULL) || r;
- r = ((glDisableVertexArrayAttribEXT = (PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexArrayAttribEXT")) == NULL) || r;
- r = ((glDisableVertexArrayEXT = (PFNGLDISABLEVERTEXARRAYEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexArrayEXT")) == NULL) || r;
- r = ((glEnableClientStateIndexedEXT = (PFNGLENABLECLIENTSTATEINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableClientStateIndexedEXT")) == NULL) || r;
- r = ((glEnableClientStateiEXT = (PFNGLENABLECLIENTSTATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableClientStateiEXT")) == NULL) || r;
- r = ((glEnableVertexArrayAttribEXT = (PFNGLENABLEVERTEXARRAYATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexArrayAttribEXT")) == NULL) || r;
- r = ((glEnableVertexArrayEXT = (PFNGLENABLEVERTEXARRAYEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexArrayEXT")) == NULL) || r;
- r = ((glFlushMappedNamedBufferRangeEXT = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedNamedBufferRangeEXT")) == NULL) || r;
- r = ((glFramebufferDrawBufferEXT = (PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferDrawBufferEXT")) == NULL) || r;
- r = ((glFramebufferDrawBuffersEXT = (PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferDrawBuffersEXT")) == NULL) || r;
- r = ((glFramebufferReadBufferEXT = (PFNGLFRAMEBUFFERREADBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferReadBufferEXT")) == NULL) || r;
- r = ((glGenerateMultiTexMipmapEXT = (PFNGLGENERATEMULTITEXMIPMAPEXTPROC)glewGetProcAddress((const GLubyte*)"glGenerateMultiTexMipmapEXT")) == NULL) || r;
- r = ((glGenerateTextureMipmapEXT = (PFNGLGENERATETEXTUREMIPMAPEXTPROC)glewGetProcAddress((const GLubyte*)"glGenerateTextureMipmapEXT")) == NULL) || r;
- r = ((glGetCompressedMultiTexImageEXT = (PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedMultiTexImageEXT")) == NULL) || r;
- r = ((glGetCompressedTextureImageEXT = (PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedTextureImageEXT")) == NULL) || r;
- r = ((glGetDoubleIndexedvEXT = (PFNGLGETDOUBLEINDEXEDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetDoubleIndexedvEXT")) == NULL) || r;
- r = ((glGetDoublei_vEXT = (PFNGLGETDOUBLEI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetDoublei_vEXT")) == NULL) || r;
- r = ((glGetFloatIndexedvEXT = (PFNGLGETFLOATINDEXEDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFloatIndexedvEXT")) == NULL) || r;
- r = ((glGetFloati_vEXT = (PFNGLGETFLOATI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFloati_vEXT")) == NULL) || r;
- r = ((glGetFramebufferParameterivEXT = (PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameterivEXT")) == NULL) || r;
- r = ((glGetMultiTexEnvfvEXT = (PFNGLGETMULTITEXENVFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexEnvfvEXT")) == NULL) || r;
- r = ((glGetMultiTexEnvivEXT = (PFNGLGETMULTITEXENVIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexEnvivEXT")) == NULL) || r;
- r = ((glGetMultiTexGendvEXT = (PFNGLGETMULTITEXGENDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexGendvEXT")) == NULL) || r;
- r = ((glGetMultiTexGenfvEXT = (PFNGLGETMULTITEXGENFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexGenfvEXT")) == NULL) || r;
- r = ((glGetMultiTexGenivEXT = (PFNGLGETMULTITEXGENIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexGenivEXT")) == NULL) || r;
- r = ((glGetMultiTexImageEXT = (PFNGLGETMULTITEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexImageEXT")) == NULL) || r;
- r = ((glGetMultiTexLevelParameterfvEXT = (PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexLevelParameterfvEXT")) == NULL) || r;
- r = ((glGetMultiTexLevelParameterivEXT = (PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexLevelParameterivEXT")) == NULL) || r;
- r = ((glGetMultiTexParameterIivEXT = (PFNGLGETMULTITEXPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexParameterIivEXT")) == NULL) || r;
- r = ((glGetMultiTexParameterIuivEXT = (PFNGLGETMULTITEXPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexParameterIuivEXT")) == NULL) || r;
- r = ((glGetMultiTexParameterfvEXT = (PFNGLGETMULTITEXPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexParameterfvEXT")) == NULL) || r;
- r = ((glGetMultiTexParameterivEXT = (PFNGLGETMULTITEXPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexParameterivEXT")) == NULL) || r;
- r = ((glGetNamedBufferParameterivEXT = (PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferParameterivEXT")) == NULL) || r;
- r = ((glGetNamedBufferPointervEXT = (PFNGLGETNAMEDBUFFERPOINTERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferPointervEXT")) == NULL) || r;
- r = ((glGetNamedBufferSubDataEXT = (PFNGLGETNAMEDBUFFERSUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferSubDataEXT")) == NULL) || r;
- r = ((glGetNamedFramebufferAttachmentParameterivEXT = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferAttachmentParameterivEXT")) == NULL) || r;
- r = ((glGetNamedProgramLocalParameterIivEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramLocalParameterIivEXT")) == NULL) || r;
- r = ((glGetNamedProgramLocalParameterIuivEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramLocalParameterIuivEXT")) == NULL) || r;
- r = ((glGetNamedProgramLocalParameterdvEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramLocalParameterdvEXT")) == NULL) || r;
- r = ((glGetNamedProgramLocalParameterfvEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramLocalParameterfvEXT")) == NULL) || r;
- r = ((glGetNamedProgramStringEXT = (PFNGLGETNAMEDPROGRAMSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramStringEXT")) == NULL) || r;
- r = ((glGetNamedProgramivEXT = (PFNGLGETNAMEDPROGRAMIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramivEXT")) == NULL) || r;
- r = ((glGetNamedRenderbufferParameterivEXT = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedRenderbufferParameterivEXT")) == NULL) || r;
- r = ((glGetPointerIndexedvEXT = (PFNGLGETPOINTERINDEXEDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetPointerIndexedvEXT")) == NULL) || r;
- r = ((glGetPointeri_vEXT = (PFNGLGETPOINTERI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetPointeri_vEXT")) == NULL) || r;
- r = ((glGetTextureImageEXT = (PFNGLGETTEXTUREIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureImageEXT")) == NULL) || r;
- r = ((glGetTextureLevelParameterfvEXT = (PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureLevelParameterfvEXT")) == NULL) || r;
- r = ((glGetTextureLevelParameterivEXT = (PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureLevelParameterivEXT")) == NULL) || r;
- r = ((glGetTextureParameterIivEXT = (PFNGLGETTEXTUREPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterIivEXT")) == NULL) || r;
- r = ((glGetTextureParameterIuivEXT = (PFNGLGETTEXTUREPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterIuivEXT")) == NULL) || r;
- r = ((glGetTextureParameterfvEXT = (PFNGLGETTEXTUREPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterfvEXT")) == NULL) || r;
- r = ((glGetTextureParameterivEXT = (PFNGLGETTEXTUREPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterivEXT")) == NULL) || r;
- r = ((glGetVertexArrayIntegeri_vEXT = (PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayIntegeri_vEXT")) == NULL) || r;
- r = ((glGetVertexArrayIntegervEXT = (PFNGLGETVERTEXARRAYINTEGERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayIntegervEXT")) == NULL) || r;
- r = ((glGetVertexArrayPointeri_vEXT = (PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayPointeri_vEXT")) == NULL) || r;
- r = ((glGetVertexArrayPointervEXT = (PFNGLGETVERTEXARRAYPOINTERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayPointervEXT")) == NULL) || r;
- r = ((glMapNamedBufferEXT = (PFNGLMAPNAMEDBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glMapNamedBufferEXT")) == NULL) || r;
- r = ((glMapNamedBufferRangeEXT = (PFNGLMAPNAMEDBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glMapNamedBufferRangeEXT")) == NULL) || r;
- r = ((glMatrixFrustumEXT = (PFNGLMATRIXFRUSTUMEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixFrustumEXT")) == NULL) || r;
- r = ((glMatrixLoadIdentityEXT = (PFNGLMATRIXLOADIDENTITYEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoadIdentityEXT")) == NULL) || r;
- r = ((glMatrixLoadTransposedEXT = (PFNGLMATRIXLOADTRANSPOSEDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoadTransposedEXT")) == NULL) || r;
- r = ((glMatrixLoadTransposefEXT = (PFNGLMATRIXLOADTRANSPOSEFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoadTransposefEXT")) == NULL) || r;
- r = ((glMatrixLoaddEXT = (PFNGLMATRIXLOADDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoaddEXT")) == NULL) || r;
- r = ((glMatrixLoadfEXT = (PFNGLMATRIXLOADFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoadfEXT")) == NULL) || r;
- r = ((glMatrixMultTransposedEXT = (PFNGLMATRIXMULTTRANSPOSEDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixMultTransposedEXT")) == NULL) || r;
- r = ((glMatrixMultTransposefEXT = (PFNGLMATRIXMULTTRANSPOSEFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixMultTransposefEXT")) == NULL) || r;
- r = ((glMatrixMultdEXT = (PFNGLMATRIXMULTDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixMultdEXT")) == NULL) || r;
- r = ((glMatrixMultfEXT = (PFNGLMATRIXMULTFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixMultfEXT")) == NULL) || r;
- r = ((glMatrixOrthoEXT = (PFNGLMATRIXORTHOEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixOrthoEXT")) == NULL) || r;
- r = ((glMatrixPopEXT = (PFNGLMATRIXPOPEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixPopEXT")) == NULL) || r;
- r = ((glMatrixPushEXT = (PFNGLMATRIXPUSHEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixPushEXT")) == NULL) || r;
- r = ((glMatrixRotatedEXT = (PFNGLMATRIXROTATEDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixRotatedEXT")) == NULL) || r;
- r = ((glMatrixRotatefEXT = (PFNGLMATRIXROTATEFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixRotatefEXT")) == NULL) || r;
- r = ((glMatrixScaledEXT = (PFNGLMATRIXSCALEDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixScaledEXT")) == NULL) || r;
- r = ((glMatrixScalefEXT = (PFNGLMATRIXSCALEFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixScalefEXT")) == NULL) || r;
- r = ((glMatrixTranslatedEXT = (PFNGLMATRIXTRANSLATEDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixTranslatedEXT")) == NULL) || r;
- r = ((glMatrixTranslatefEXT = (PFNGLMATRIXTRANSLATEFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixTranslatefEXT")) == NULL) || r;
- r = ((glMultiTexBufferEXT = (PFNGLMULTITEXBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexBufferEXT")) == NULL) || r;
- r = ((glMultiTexCoordPointerEXT = (PFNGLMULTITEXCOORDPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordPointerEXT")) == NULL) || r;
- r = ((glMultiTexEnvfEXT = (PFNGLMULTITEXENVFEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexEnvfEXT")) == NULL) || r;
- r = ((glMultiTexEnvfvEXT = (PFNGLMULTITEXENVFVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexEnvfvEXT")) == NULL) || r;
- r = ((glMultiTexEnviEXT = (PFNGLMULTITEXENVIEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexEnviEXT")) == NULL) || r;
- r = ((glMultiTexEnvivEXT = (PFNGLMULTITEXENVIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexEnvivEXT")) == NULL) || r;
- r = ((glMultiTexGendEXT = (PFNGLMULTITEXGENDEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGendEXT")) == NULL) || r;
- r = ((glMultiTexGendvEXT = (PFNGLMULTITEXGENDVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGendvEXT")) == NULL) || r;
- r = ((glMultiTexGenfEXT = (PFNGLMULTITEXGENFEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGenfEXT")) == NULL) || r;
- r = ((glMultiTexGenfvEXT = (PFNGLMULTITEXGENFVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGenfvEXT")) == NULL) || r;
- r = ((glMultiTexGeniEXT = (PFNGLMULTITEXGENIEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGeniEXT")) == NULL) || r;
- r = ((glMultiTexGenivEXT = (PFNGLMULTITEXGENIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGenivEXT")) == NULL) || r;
- r = ((glMultiTexImage1DEXT = (PFNGLMULTITEXIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexImage1DEXT")) == NULL) || r;
- r = ((glMultiTexImage2DEXT = (PFNGLMULTITEXIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexImage2DEXT")) == NULL) || r;
- r = ((glMultiTexImage3DEXT = (PFNGLMULTITEXIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexImage3DEXT")) == NULL) || r;
- r = ((glMultiTexParameterIivEXT = (PFNGLMULTITEXPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameterIivEXT")) == NULL) || r;
- r = ((glMultiTexParameterIuivEXT = (PFNGLMULTITEXPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameterIuivEXT")) == NULL) || r;
- r = ((glMultiTexParameterfEXT = (PFNGLMULTITEXPARAMETERFEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameterfEXT")) == NULL) || r;
- r = ((glMultiTexParameterfvEXT = (PFNGLMULTITEXPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameterfvEXT")) == NULL) || r;
- r = ((glMultiTexParameteriEXT = (PFNGLMULTITEXPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameteriEXT")) == NULL) || r;
- r = ((glMultiTexParameterivEXT = (PFNGLMULTITEXPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameterivEXT")) == NULL) || r;
- r = ((glMultiTexRenderbufferEXT = (PFNGLMULTITEXRENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexRenderbufferEXT")) == NULL) || r;
- r = ((glMultiTexSubImage1DEXT = (PFNGLMULTITEXSUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexSubImage1DEXT")) == NULL) || r;
- r = ((glMultiTexSubImage2DEXT = (PFNGLMULTITEXSUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexSubImage2DEXT")) == NULL) || r;
- r = ((glMultiTexSubImage3DEXT = (PFNGLMULTITEXSUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexSubImage3DEXT")) == NULL) || r;
- r = ((glNamedBufferDataEXT = (PFNGLNAMEDBUFFERDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferDataEXT")) == NULL) || r;
- r = ((glNamedBufferSubDataEXT = (PFNGLNAMEDBUFFERSUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferSubDataEXT")) == NULL) || r;
- r = ((glNamedCopyBufferSubDataEXT = (PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedCopyBufferSubDataEXT")) == NULL) || r;
- r = ((glNamedFramebufferRenderbufferEXT = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferRenderbufferEXT")) == NULL) || r;
- r = ((glNamedFramebufferTexture1DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTexture1DEXT")) == NULL) || r;
- r = ((glNamedFramebufferTexture2DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTexture2DEXT")) == NULL) || r;
- r = ((glNamedFramebufferTexture3DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTexture3DEXT")) == NULL) || r;
- r = ((glNamedFramebufferTextureEXT = (PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTextureEXT")) == NULL) || r;
- r = ((glNamedFramebufferTextureFaceEXT = (PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTextureFaceEXT")) == NULL) || r;
- r = ((glNamedFramebufferTextureLayerEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTextureLayerEXT")) == NULL) || r;
- r = ((glNamedProgramLocalParameter4dEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameter4dEXT")) == NULL) || r;
- r = ((glNamedProgramLocalParameter4dvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameter4dvEXT")) == NULL) || r;
- r = ((glNamedProgramLocalParameter4fEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameter4fEXT")) == NULL) || r;
- r = ((glNamedProgramLocalParameter4fvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameter4fvEXT")) == NULL) || r;
- r = ((glNamedProgramLocalParameterI4iEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameterI4iEXT")) == NULL) || r;
- r = ((glNamedProgramLocalParameterI4ivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameterI4ivEXT")) == NULL) || r;
- r = ((glNamedProgramLocalParameterI4uiEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameterI4uiEXT")) == NULL) || r;
- r = ((glNamedProgramLocalParameterI4uivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameterI4uivEXT")) == NULL) || r;
- r = ((glNamedProgramLocalParameters4fvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameters4fvEXT")) == NULL) || r;
- r = ((glNamedProgramLocalParametersI4ivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParametersI4ivEXT")) == NULL) || r;
- r = ((glNamedProgramLocalParametersI4uivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParametersI4uivEXT")) == NULL) || r;
- r = ((glNamedProgramStringEXT = (PFNGLNAMEDPROGRAMSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramStringEXT")) == NULL) || r;
- r = ((glNamedRenderbufferStorageEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorageEXT")) == NULL) || r;
- r = ((glNamedRenderbufferStorageMultisampleCoverageEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorageMultisampleCoverageEXT")) == NULL) || r;
- r = ((glNamedRenderbufferStorageMultisampleEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorageMultisampleEXT")) == NULL) || r;
- r = ((glProgramUniform1fEXT = (PFNGLPROGRAMUNIFORM1FEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1fEXT")) == NULL) || r;
- r = ((glProgramUniform1fvEXT = (PFNGLPROGRAMUNIFORM1FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1fvEXT")) == NULL) || r;
- r = ((glProgramUniform1iEXT = (PFNGLPROGRAMUNIFORM1IEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1iEXT")) == NULL) || r;
- r = ((glProgramUniform1ivEXT = (PFNGLPROGRAMUNIFORM1IVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ivEXT")) == NULL) || r;
- r = ((glProgramUniform1uiEXT = (PFNGLPROGRAMUNIFORM1UIEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1uiEXT")) == NULL) || r;
- r = ((glProgramUniform1uivEXT = (PFNGLPROGRAMUNIFORM1UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1uivEXT")) == NULL) || r;
- r = ((glProgramUniform2fEXT = (PFNGLPROGRAMUNIFORM2FEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2fEXT")) == NULL) || r;
- r = ((glProgramUniform2fvEXT = (PFNGLPROGRAMUNIFORM2FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2fvEXT")) == NULL) || r;
- r = ((glProgramUniform2iEXT = (PFNGLPROGRAMUNIFORM2IEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2iEXT")) == NULL) || r;
- r = ((glProgramUniform2ivEXT = (PFNGLPROGRAMUNIFORM2IVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ivEXT")) == NULL) || r;
- r = ((glProgramUniform2uiEXT = (PFNGLPROGRAMUNIFORM2UIEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2uiEXT")) == NULL) || r;
- r = ((glProgramUniform2uivEXT = (PFNGLPROGRAMUNIFORM2UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2uivEXT")) == NULL) || r;
- r = ((glProgramUniform3fEXT = (PFNGLPROGRAMUNIFORM3FEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3fEXT")) == NULL) || r;
- r = ((glProgramUniform3fvEXT = (PFNGLPROGRAMUNIFORM3FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3fvEXT")) == NULL) || r;
- r = ((glProgramUniform3iEXT = (PFNGLPROGRAMUNIFORM3IEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3iEXT")) == NULL) || r;
- r = ((glProgramUniform3ivEXT = (PFNGLPROGRAMUNIFORM3IVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ivEXT")) == NULL) || r;
- r = ((glProgramUniform3uiEXT = (PFNGLPROGRAMUNIFORM3UIEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3uiEXT")) == NULL) || r;
- r = ((glProgramUniform3uivEXT = (PFNGLPROGRAMUNIFORM3UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3uivEXT")) == NULL) || r;
- r = ((glProgramUniform4fEXT = (PFNGLPROGRAMUNIFORM4FEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4fEXT")) == NULL) || r;
- r = ((glProgramUniform4fvEXT = (PFNGLPROGRAMUNIFORM4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4fvEXT")) == NULL) || r;
- r = ((glProgramUniform4iEXT = (PFNGLPROGRAMUNIFORM4IEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4iEXT")) == NULL) || r;
- r = ((glProgramUniform4ivEXT = (PFNGLPROGRAMUNIFORM4IVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ivEXT")) == NULL) || r;
- r = ((glProgramUniform4uiEXT = (PFNGLPROGRAMUNIFORM4UIEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4uiEXT")) == NULL) || r;
- r = ((glProgramUniform4uivEXT = (PFNGLPROGRAMUNIFORM4UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4uivEXT")) == NULL) || r;
- r = ((glProgramUniformMatrix2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2fvEXT")) == NULL) || r;
- r = ((glProgramUniformMatrix2x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x3fvEXT")) == NULL) || r;
- r = ((glProgramUniformMatrix2x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x4fvEXT")) == NULL) || r;
- r = ((glProgramUniformMatrix3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3fvEXT")) == NULL) || r;
- r = ((glProgramUniformMatrix3x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x2fvEXT")) == NULL) || r;
- r = ((glProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x4fvEXT")) == NULL) || r;
- r = ((glProgramUniformMatrix4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4fvEXT")) == NULL) || r;
- r = ((glProgramUniformMatrix4x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x2fvEXT")) == NULL) || r;
- r = ((glProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x3fvEXT")) == NULL) || r;
- r = ((glPushClientAttribDefaultEXT = (PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC)glewGetProcAddress((const GLubyte*)"glPushClientAttribDefaultEXT")) == NULL) || r;
- r = ((glTextureBufferEXT = (PFNGLTEXTUREBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glTextureBufferEXT")) == NULL) || r;
- r = ((glTextureImage1DEXT = (PFNGLTEXTUREIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureImage1DEXT")) == NULL) || r;
- r = ((glTextureImage2DEXT = (PFNGLTEXTUREIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureImage2DEXT")) == NULL) || r;
- r = ((glTextureImage3DEXT = (PFNGLTEXTUREIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureImage3DEXT")) == NULL) || r;
- r = ((glTextureParameterIivEXT = (PFNGLTEXTUREPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterIivEXT")) == NULL) || r;
- r = ((glTextureParameterIuivEXT = (PFNGLTEXTUREPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterIuivEXT")) == NULL) || r;
- r = ((glTextureParameterfEXT = (PFNGLTEXTUREPARAMETERFEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterfEXT")) == NULL) || r;
- r = ((glTextureParameterfvEXT = (PFNGLTEXTUREPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterfvEXT")) == NULL) || r;
- r = ((glTextureParameteriEXT = (PFNGLTEXTUREPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameteriEXT")) == NULL) || r;
- r = ((glTextureParameterivEXT = (PFNGLTEXTUREPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterivEXT")) == NULL) || r;
- r = ((glTextureRenderbufferEXT = (PFNGLTEXTURERENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glTextureRenderbufferEXT")) == NULL) || r;
- r = ((glTextureSubImage1DEXT = (PFNGLTEXTURESUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage1DEXT")) == NULL) || r;
- r = ((glTextureSubImage2DEXT = (PFNGLTEXTURESUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage2DEXT")) == NULL) || r;
- r = ((glTextureSubImage3DEXT = (PFNGLTEXTURESUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage3DEXT")) == NULL) || r;
- r = ((glUnmapNamedBufferEXT = (PFNGLUNMAPNAMEDBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glUnmapNamedBufferEXT")) == NULL) || r;
- r = ((glVertexArrayColorOffsetEXT = (PFNGLVERTEXARRAYCOLOROFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayColorOffsetEXT")) == NULL) || r;
- r = ((glVertexArrayEdgeFlagOffsetEXT = (PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayEdgeFlagOffsetEXT")) == NULL) || r;
- r = ((glVertexArrayFogCoordOffsetEXT = (PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayFogCoordOffsetEXT")) == NULL) || r;
- r = ((glVertexArrayIndexOffsetEXT = (PFNGLVERTEXARRAYINDEXOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayIndexOffsetEXT")) == NULL) || r;
- r = ((glVertexArrayMultiTexCoordOffsetEXT = (PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayMultiTexCoordOffsetEXT")) == NULL) || r;
- r = ((glVertexArrayNormalOffsetEXT = (PFNGLVERTEXARRAYNORMALOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayNormalOffsetEXT")) == NULL) || r;
- r = ((glVertexArraySecondaryColorOffsetEXT = (PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArraySecondaryColorOffsetEXT")) == NULL) || r;
- r = ((glVertexArrayTexCoordOffsetEXT = (PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayTexCoordOffsetEXT")) == NULL) || r;
- r = ((glVertexArrayVertexAttribDivisorEXT = (PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribDivisorEXT")) == NULL) || r;
- r = ((glVertexArrayVertexAttribIOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribIOffsetEXT")) == NULL) || r;
- r = ((glVertexArrayVertexAttribOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribOffsetEXT")) == NULL) || r;
- r = ((glVertexArrayVertexOffsetEXT = (PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexOffsetEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_direct_state_access */
-
-#ifdef GL_EXT_discard_framebuffer
-
-static GLboolean _glewInit_GL_EXT_discard_framebuffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDiscardFramebufferEXT = (PFNGLDISCARDFRAMEBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glDiscardFramebufferEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_discard_framebuffer */
-
-#ifdef GL_EXT_disjoint_timer_query
-
-static GLboolean _glewInit_GL_EXT_disjoint_timer_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginQueryEXT = (PFNGLBEGINQUERYEXTPROC)glewGetProcAddress((const GLubyte*)"glBeginQueryEXT")) == NULL) || r;
- r = ((glDeleteQueriesEXT = (PFNGLDELETEQUERIESEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteQueriesEXT")) == NULL) || r;
- r = ((glEndQueryEXT = (PFNGLENDQUERYEXTPROC)glewGetProcAddress((const GLubyte*)"glEndQueryEXT")) == NULL) || r;
- r = ((glGenQueriesEXT = (PFNGLGENQUERIESEXTPROC)glewGetProcAddress((const GLubyte*)"glGenQueriesEXT")) == NULL) || r;
- r = ((glGetInteger64vEXT = (PFNGLGETINTEGER64VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64vEXT")) == NULL) || r;
- r = ((glGetQueryObjectivEXT = (PFNGLGETQUERYOBJECTIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectivEXT")) == NULL) || r;
- r = ((glGetQueryObjectuivEXT = (PFNGLGETQUERYOBJECTUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectuivEXT")) == NULL) || r;
- r = ((glGetQueryivEXT = (PFNGLGETQUERYIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryivEXT")) == NULL) || r;
- r = ((glIsQueryEXT = (PFNGLISQUERYEXTPROC)glewGetProcAddress((const GLubyte*)"glIsQueryEXT")) == NULL) || r;
- r = ((glQueryCounterEXT = (PFNGLQUERYCOUNTEREXTPROC)glewGetProcAddress((const GLubyte*)"glQueryCounterEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_disjoint_timer_query */
-
-#ifdef GL_EXT_draw_buffers
-
-static GLboolean _glewInit_GL_EXT_draw_buffers ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawBuffersEXT = (PFNGLDRAWBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_draw_buffers */
-
-#ifdef GL_EXT_draw_buffers2
-
-static GLboolean _glewInit_GL_EXT_draw_buffers2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glColorMaskIndexedEXT = (PFNGLCOLORMASKINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glColorMaskIndexedEXT")) == NULL) || r;
- r = ((glDisableIndexedEXT = (PFNGLDISABLEINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableIndexedEXT")) == NULL) || r;
- r = ((glEnableIndexedEXT = (PFNGLENABLEINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableIndexedEXT")) == NULL) || r;
- r = ((glGetBooleanIndexedvEXT = (PFNGLGETBOOLEANINDEXEDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetBooleanIndexedvEXT")) == NULL) || r;
- r = ((glGetIntegerIndexedvEXT = (PFNGLGETINTEGERINDEXEDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetIntegerIndexedvEXT")) == NULL) || r;
- r = ((glIsEnabledIndexedEXT = (PFNGLISENABLEDINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glIsEnabledIndexedEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_draw_buffers2 */
-
-#ifdef GL_EXT_draw_buffers_indexed
-
-static GLboolean _glewInit_GL_EXT_draw_buffers_indexed ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendEquationSeparateiEXT = (PFNGLBLENDEQUATIONSEPARATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateiEXT")) == NULL) || r;
- r = ((glBlendEquationiEXT = (PFNGLBLENDEQUATIONIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationiEXT")) == NULL) || r;
- r = ((glBlendFuncSeparateiEXT = (PFNGLBLENDFUNCSEPARATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateiEXT")) == NULL) || r;
- r = ((glBlendFunciEXT = (PFNGLBLENDFUNCIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendFunciEXT")) == NULL) || r;
- r = ((glColorMaskiEXT = (PFNGLCOLORMASKIEXTPROC)glewGetProcAddress((const GLubyte*)"glColorMaskiEXT")) == NULL) || r;
- r = ((glDisableiEXT = (PFNGLDISABLEIEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableiEXT")) == NULL) || r;
- r = ((glEnableiEXT = (PFNGLENABLEIEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableiEXT")) == NULL) || r;
- r = ((glIsEnablediEXT = (PFNGLISENABLEDIEXTPROC)glewGetProcAddress((const GLubyte*)"glIsEnablediEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_draw_buffers_indexed */
-
-#ifdef GL_EXT_draw_elements_base_vertex
-
-static GLboolean _glewInit_GL_EXT_draw_elements_base_vertex ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawElementsBaseVertexEXT = (PFNGLDRAWELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsBaseVertexEXT")) == NULL) || r;
- r = ((glDrawElementsInstancedBaseVertexEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertexEXT")) == NULL) || r;
- r = ((glDrawRangeElementsBaseVertexEXT = (PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementsBaseVertexEXT")) == NULL) || r;
- r = ((glMultiDrawElementsBaseVertexEXT = (PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsBaseVertexEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_draw_elements_base_vertex */
-
-#ifdef GL_EXT_draw_instanced
-
-static GLboolean _glewInit_GL_EXT_draw_instanced ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawArraysInstancedEXT = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedEXT")) == NULL) || r;
- r = ((glDrawElementsInstancedEXT = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_draw_instanced */
-
-#ifdef GL_EXT_draw_range_elements
-
-static GLboolean _glewInit_GL_EXT_draw_range_elements ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawRangeElementsEXT = (PFNGLDRAWRANGEELEMENTSEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementsEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_draw_range_elements */
-
-#ifdef GL_EXT_draw_transform_feedback
-
-static GLboolean _glewInit_GL_EXT_draw_transform_feedback ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawTransformFeedbackEXT = (PFNGLDRAWTRANSFORMFEEDBACKEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackEXT")) == NULL) || r;
- r = ((glDrawTransformFeedbackInstancedEXT = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackInstancedEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_draw_transform_feedback */
-
-#ifdef GL_EXT_external_buffer
-
-static GLboolean _glewInit_GL_EXT_external_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBufferStorageExternalEXT = (PFNGLBUFFERSTORAGEEXTERNALEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageExternalEXT")) == NULL) || r;
- r = ((glNamedBufferStorageExternalEXT = (PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageExternalEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_external_buffer */
-
-#ifdef GL_EXT_fog_coord
-
-static GLboolean _glewInit_GL_EXT_fog_coord ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFogCoordPointerEXT = (PFNGLFOGCOORDPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glFogCoordPointerEXT")) == NULL) || r;
- r = ((glFogCoorddEXT = (PFNGLFOGCOORDDEXTPROC)glewGetProcAddress((const GLubyte*)"glFogCoorddEXT")) == NULL) || r;
- r = ((glFogCoorddvEXT = (PFNGLFOGCOORDDVEXTPROC)glewGetProcAddress((const GLubyte*)"glFogCoorddvEXT")) == NULL) || r;
- r = ((glFogCoordfEXT = (PFNGLFOGCOORDFEXTPROC)glewGetProcAddress((const GLubyte*)"glFogCoordfEXT")) == NULL) || r;
- r = ((glFogCoordfvEXT = (PFNGLFOGCOORDFVEXTPROC)glewGetProcAddress((const GLubyte*)"glFogCoordfvEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_fog_coord */
-
-#ifdef GL_EXT_fragment_lighting
-
-static GLboolean _glewInit_GL_EXT_fragment_lighting ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFragmentColorMaterialEXT = (PFNGLFRAGMENTCOLORMATERIALEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentColorMaterialEXT")) == NULL) || r;
- r = ((glFragmentLightModelfEXT = (PFNGLFRAGMENTLIGHTMODELFEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelfEXT")) == NULL) || r;
- r = ((glFragmentLightModelfvEXT = (PFNGLFRAGMENTLIGHTMODELFVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelfvEXT")) == NULL) || r;
- r = ((glFragmentLightModeliEXT = (PFNGLFRAGMENTLIGHTMODELIEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModeliEXT")) == NULL) || r;
- r = ((glFragmentLightModelivEXT = (PFNGLFRAGMENTLIGHTMODELIVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelivEXT")) == NULL) || r;
- r = ((glFragmentLightfEXT = (PFNGLFRAGMENTLIGHTFEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightfEXT")) == NULL) || r;
- r = ((glFragmentLightfvEXT = (PFNGLFRAGMENTLIGHTFVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightfvEXT")) == NULL) || r;
- r = ((glFragmentLightiEXT = (PFNGLFRAGMENTLIGHTIEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightiEXT")) == NULL) || r;
- r = ((glFragmentLightivEXT = (PFNGLFRAGMENTLIGHTIVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightivEXT")) == NULL) || r;
- r = ((glFragmentMaterialfEXT = (PFNGLFRAGMENTMATERIALFEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialfEXT")) == NULL) || r;
- r = ((glFragmentMaterialfvEXT = (PFNGLFRAGMENTMATERIALFVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialfvEXT")) == NULL) || r;
- r = ((glFragmentMaterialiEXT = (PFNGLFRAGMENTMATERIALIEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialiEXT")) == NULL) || r;
- r = ((glFragmentMaterialivEXT = (PFNGLFRAGMENTMATERIALIVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialivEXT")) == NULL) || r;
- r = ((glGetFragmentLightfvEXT = (PFNGLGETFRAGMENTLIGHTFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentLightfvEXT")) == NULL) || r;
- r = ((glGetFragmentLightivEXT = (PFNGLGETFRAGMENTLIGHTIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentLightivEXT")) == NULL) || r;
- r = ((glGetFragmentMaterialfvEXT = (PFNGLGETFRAGMENTMATERIALFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentMaterialfvEXT")) == NULL) || r;
- r = ((glGetFragmentMaterialivEXT = (PFNGLGETFRAGMENTMATERIALIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentMaterialivEXT")) == NULL) || r;
- r = ((glLightEnviEXT = (PFNGLLIGHTENVIEXTPROC)glewGetProcAddress((const GLubyte*)"glLightEnviEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_fragment_lighting */
-
-#ifdef GL_EXT_framebuffer_blit
-
-static GLboolean _glewInit_GL_EXT_framebuffer_blit ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glBlitFramebufferEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_framebuffer_blit */
-
-#ifdef GL_EXT_framebuffer_multisample
-
-static GLboolean _glewInit_GL_EXT_framebuffer_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_framebuffer_multisample */
-
-#ifdef GL_EXT_framebuffer_object
-
-static GLboolean _glewInit_GL_EXT_framebuffer_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindFramebufferEXT")) == NULL) || r;
- r = ((glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindRenderbufferEXT")) == NULL) || r;
- r = ((glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)glewGetProcAddress((const GLubyte*)"glCheckFramebufferStatusEXT")) == NULL) || r;
- r = ((glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteFramebuffersEXT")) == NULL) || r;
- r = ((glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteRenderbuffersEXT")) == NULL) || r;
- r = ((glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferRenderbufferEXT")) == NULL) || r;
- r = ((glFramebufferTexture1DEXT = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture1DEXT")) == NULL) || r;
- r = ((glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DEXT")) == NULL) || r;
- r = ((glFramebufferTexture3DEXT = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture3DEXT")) == NULL) || r;
- r = ((glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glGenFramebuffersEXT")) == NULL) || r;
- r = ((glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glGenRenderbuffersEXT")) == NULL) || r;
- r = ((glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC)glewGetProcAddress((const GLubyte*)"glGenerateMipmapEXT")) == NULL) || r;
- r = ((glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferAttachmentParameterivEXT")) == NULL) || r;
- r = ((glGetRenderbufferParameterivEXT = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetRenderbufferParameterivEXT")) == NULL) || r;
- r = ((glIsFramebufferEXT = (PFNGLISFRAMEBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glIsFramebufferEXT")) == NULL) || r;
- r = ((glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glIsRenderbufferEXT")) == NULL) || r;
- r = ((glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_framebuffer_object */
-
-#ifdef GL_EXT_geometry_shader4
-
-static GLboolean _glewInit_GL_EXT_geometry_shader4 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferTextureEXT = (PFNGLFRAMEBUFFERTEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureEXT")) == NULL) || r;
- r = ((glFramebufferTextureFaceEXT = (PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureFaceEXT")) == NULL) || r;
- r = ((glProgramParameteriEXT = (PFNGLPROGRAMPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramParameteriEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_geometry_shader4 */
-
-#ifdef GL_EXT_gpu_program_parameters
-
-static GLboolean _glewInit_GL_EXT_gpu_program_parameters ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glProgramEnvParameters4fvEXT = (PFNGLPROGRAMENVPARAMETERS4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameters4fvEXT")) == NULL) || r;
- r = ((glProgramLocalParameters4fvEXT = (PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameters4fvEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_gpu_program_parameters */
-
-#ifdef GL_EXT_gpu_shader4
-
-static GLboolean _glewInit_GL_EXT_gpu_shader4 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindFragDataLocationEXT = (PFNGLBINDFRAGDATALOCATIONEXTPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocationEXT")) == NULL) || r;
- r = ((glGetFragDataLocationEXT = (PFNGLGETFRAGDATALOCATIONEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragDataLocationEXT")) == NULL) || r;
- r = ((glGetUniformuivEXT = (PFNGLGETUNIFORMUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUniformuivEXT")) == NULL) || r;
- r = ((glGetVertexAttribIivEXT = (PFNGLGETVERTEXATTRIBIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribIivEXT")) == NULL) || r;
- r = ((glGetVertexAttribIuivEXT = (PFNGLGETVERTEXATTRIBIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribIuivEXT")) == NULL) || r;
- r = ((glUniform1uiEXT = (PFNGLUNIFORM1UIEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform1uiEXT")) == NULL) || r;
- r = ((glUniform1uivEXT = (PFNGLUNIFORM1UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform1uivEXT")) == NULL) || r;
- r = ((glUniform2uiEXT = (PFNGLUNIFORM2UIEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform2uiEXT")) == NULL) || r;
- r = ((glUniform2uivEXT = (PFNGLUNIFORM2UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform2uivEXT")) == NULL) || r;
- r = ((glUniform3uiEXT = (PFNGLUNIFORM3UIEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform3uiEXT")) == NULL) || r;
- r = ((glUniform3uivEXT = (PFNGLUNIFORM3UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform3uivEXT")) == NULL) || r;
- r = ((glUniform4uiEXT = (PFNGLUNIFORM4UIEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform4uiEXT")) == NULL) || r;
- r = ((glUniform4uivEXT = (PFNGLUNIFORM4UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform4uivEXT")) == NULL) || r;
- r = ((glVertexAttribI1iEXT = (PFNGLVERTEXATTRIBI1IEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1iEXT")) == NULL) || r;
- r = ((glVertexAttribI1ivEXT = (PFNGLVERTEXATTRIBI1IVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1ivEXT")) == NULL) || r;
- r = ((glVertexAttribI1uiEXT = (PFNGLVERTEXATTRIBI1UIEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1uiEXT")) == NULL) || r;
- r = ((glVertexAttribI1uivEXT = (PFNGLVERTEXATTRIBI1UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1uivEXT")) == NULL) || r;
- r = ((glVertexAttribI2iEXT = (PFNGLVERTEXATTRIBI2IEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2iEXT")) == NULL) || r;
- r = ((glVertexAttribI2ivEXT = (PFNGLVERTEXATTRIBI2IVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2ivEXT")) == NULL) || r;
- r = ((glVertexAttribI2uiEXT = (PFNGLVERTEXATTRIBI2UIEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2uiEXT")) == NULL) || r;
- r = ((glVertexAttribI2uivEXT = (PFNGLVERTEXATTRIBI2UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2uivEXT")) == NULL) || r;
- r = ((glVertexAttribI3iEXT = (PFNGLVERTEXATTRIBI3IEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3iEXT")) == NULL) || r;
- r = ((glVertexAttribI3ivEXT = (PFNGLVERTEXATTRIBI3IVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3ivEXT")) == NULL) || r;
- r = ((glVertexAttribI3uiEXT = (PFNGLVERTEXATTRIBI3UIEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3uiEXT")) == NULL) || r;
- r = ((glVertexAttribI3uivEXT = (PFNGLVERTEXATTRIBI3UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3uivEXT")) == NULL) || r;
- r = ((glVertexAttribI4bvEXT = (PFNGLVERTEXATTRIBI4BVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4bvEXT")) == NULL) || r;
- r = ((glVertexAttribI4iEXT = (PFNGLVERTEXATTRIBI4IEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4iEXT")) == NULL) || r;
- r = ((glVertexAttribI4ivEXT = (PFNGLVERTEXATTRIBI4IVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4ivEXT")) == NULL) || r;
- r = ((glVertexAttribI4svEXT = (PFNGLVERTEXATTRIBI4SVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4svEXT")) == NULL) || r;
- r = ((glVertexAttribI4ubvEXT = (PFNGLVERTEXATTRIBI4UBVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4ubvEXT")) == NULL) || r;
- r = ((glVertexAttribI4uiEXT = (PFNGLVERTEXATTRIBI4UIEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4uiEXT")) == NULL) || r;
- r = ((glVertexAttribI4uivEXT = (PFNGLVERTEXATTRIBI4UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4uivEXT")) == NULL) || r;
- r = ((glVertexAttribI4usvEXT = (PFNGLVERTEXATTRIBI4USVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4usvEXT")) == NULL) || r;
- r = ((glVertexAttribIPointerEXT = (PFNGLVERTEXATTRIBIPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribIPointerEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_gpu_shader4 */
-
-#ifdef GL_EXT_histogram
-
-static GLboolean _glewInit_GL_EXT_histogram ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetHistogramEXT = (PFNGLGETHISTOGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glGetHistogramEXT")) == NULL) || r;
- r = ((glGetHistogramParameterfvEXT = (PFNGLGETHISTOGRAMPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetHistogramParameterfvEXT")) == NULL) || r;
- r = ((glGetHistogramParameterivEXT = (PFNGLGETHISTOGRAMPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetHistogramParameterivEXT")) == NULL) || r;
- r = ((glGetMinmaxEXT = (PFNGLGETMINMAXEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMinmaxEXT")) == NULL) || r;
- r = ((glGetMinmaxParameterfvEXT = (PFNGLGETMINMAXPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMinmaxParameterfvEXT")) == NULL) || r;
- r = ((glGetMinmaxParameterivEXT = (PFNGLGETMINMAXPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMinmaxParameterivEXT")) == NULL) || r;
- r = ((glHistogramEXT = (PFNGLHISTOGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glHistogramEXT")) == NULL) || r;
- r = ((glMinmaxEXT = (PFNGLMINMAXEXTPROC)glewGetProcAddress((const GLubyte*)"glMinmaxEXT")) == NULL) || r;
- r = ((glResetHistogramEXT = (PFNGLRESETHISTOGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glResetHistogramEXT")) == NULL) || r;
- r = ((glResetMinmaxEXT = (PFNGLRESETMINMAXEXTPROC)glewGetProcAddress((const GLubyte*)"glResetMinmaxEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_histogram */
-
-#ifdef GL_EXT_index_func
-
-static GLboolean _glewInit_GL_EXT_index_func ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glIndexFuncEXT = (PFNGLINDEXFUNCEXTPROC)glewGetProcAddress((const GLubyte*)"glIndexFuncEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_index_func */
-
-#ifdef GL_EXT_index_material
-
-static GLboolean _glewInit_GL_EXT_index_material ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glIndexMaterialEXT = (PFNGLINDEXMATERIALEXTPROC)glewGetProcAddress((const GLubyte*)"glIndexMaterialEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_index_material */
-
-#ifdef GL_EXT_instanced_arrays
-
-static GLboolean _glewInit_GL_EXT_instanced_arrays ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glVertexAttribDivisorEXT = (PFNGLVERTEXATTRIBDIVISOREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_instanced_arrays */
-
-#ifdef GL_EXT_light_texture
-
-static GLboolean _glewInit_GL_EXT_light_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glApplyTextureEXT = (PFNGLAPPLYTEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glApplyTextureEXT")) == NULL) || r;
- r = ((glTextureLightEXT = (PFNGLTEXTURELIGHTEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureLightEXT")) == NULL) || r;
- r = ((glTextureMaterialEXT = (PFNGLTEXTUREMATERIALEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureMaterialEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_light_texture */
-
-#ifdef GL_EXT_map_buffer_range
-
-static GLboolean _glewInit_GL_EXT_map_buffer_range ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFlushMappedBufferRangeEXT = (PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedBufferRangeEXT")) == NULL) || r;
- r = ((glMapBufferRangeEXT = (PFNGLMAPBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glMapBufferRangeEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_map_buffer_range */
-
-#ifdef GL_EXT_memory_object
-
-static GLboolean _glewInit_GL_EXT_memory_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBufferStorageMemEXT = (PFNGLBUFFERSTORAGEMEMEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageMemEXT")) == NULL) || r;
- r = ((glCreateMemoryObjectsEXT = (PFNGLCREATEMEMORYOBJECTSEXTPROC)glewGetProcAddress((const GLubyte*)"glCreateMemoryObjectsEXT")) == NULL) || r;
- r = ((glDeleteMemoryObjectsEXT = (PFNGLDELETEMEMORYOBJECTSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteMemoryObjectsEXT")) == NULL) || r;
- r = ((glGetMemoryObjectParameterivEXT = (PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMemoryObjectParameterivEXT")) == NULL) || r;
- r = ((glGetUnsignedBytei_vEXT = (PFNGLGETUNSIGNEDBYTEI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUnsignedBytei_vEXT")) == NULL) || r;
- r = ((glGetUnsignedBytevEXT = (PFNGLGETUNSIGNEDBYTEVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUnsignedBytevEXT")) == NULL) || r;
- r = ((glIsMemoryObjectEXT = (PFNGLISMEMORYOBJECTEXTPROC)glewGetProcAddress((const GLubyte*)"glIsMemoryObjectEXT")) == NULL) || r;
- r = ((glMemoryObjectParameterivEXT = (PFNGLMEMORYOBJECTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMemoryObjectParameterivEXT")) == NULL) || r;
- r = ((glNamedBufferStorageMemEXT = (PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageMemEXT")) == NULL) || r;
- r = ((glTexStorageMem1DEXT = (PFNGLTEXSTORAGEMEM1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem1DEXT")) == NULL) || r;
- r = ((glTexStorageMem2DEXT = (PFNGLTEXSTORAGEMEM2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem2DEXT")) == NULL) || r;
- r = ((glTexStorageMem2DMultisampleEXT = (PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem2DMultisampleEXT")) == NULL) || r;
- r = ((glTexStorageMem3DEXT = (PFNGLTEXSTORAGEMEM3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem3DEXT")) == NULL) || r;
- r = ((glTexStorageMem3DMultisampleEXT = (PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem3DMultisampleEXT")) == NULL) || r;
- r = ((glTextureStorageMem1DEXT = (PFNGLTEXTURESTORAGEMEM1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem1DEXT")) == NULL) || r;
- r = ((glTextureStorageMem2DEXT = (PFNGLTEXTURESTORAGEMEM2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem2DEXT")) == NULL) || r;
- r = ((glTextureStorageMem2DMultisampleEXT = (PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem2DMultisampleEXT")) == NULL) || r;
- r = ((glTextureStorageMem3DEXT = (PFNGLTEXTURESTORAGEMEM3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem3DEXT")) == NULL) || r;
- r = ((glTextureStorageMem3DMultisampleEXT = (PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem3DMultisampleEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_memory_object */
-
-#ifdef GL_EXT_memory_object_fd
-
-static GLboolean _glewInit_GL_EXT_memory_object_fd ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glImportMemoryFdEXT = (PFNGLIMPORTMEMORYFDEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryFdEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_memory_object_fd */
-
-#ifdef GL_EXT_memory_object_win32
-
-static GLboolean _glewInit_GL_EXT_memory_object_win32 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glImportMemoryWin32HandleEXT = (PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryWin32HandleEXT")) == NULL) || r;
- r = ((glImportMemoryWin32NameEXT = (PFNGLIMPORTMEMORYWIN32NAMEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryWin32NameEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_memory_object_win32 */
-
-#ifdef GL_EXT_multi_draw_arrays
-
-static GLboolean _glewInit_GL_EXT_multi_draw_arrays ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMultiDrawArraysEXT = (PFNGLMULTIDRAWARRAYSEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysEXT")) == NULL) || r;
- r = ((glMultiDrawElementsEXT = (PFNGLMULTIDRAWELEMENTSEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_multi_draw_arrays */
-
-#ifdef GL_EXT_multi_draw_indirect
-
-static GLboolean _glewInit_GL_EXT_multi_draw_indirect ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMultiDrawArraysIndirectEXT = (PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectEXT")) == NULL) || r;
- r = ((glMultiDrawElementsIndirectEXT = (PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_multi_draw_indirect */
-
-#ifdef GL_EXT_multisample
-
-static GLboolean _glewInit_GL_EXT_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glSampleMaskEXT = (PFNGLSAMPLEMASKEXTPROC)glewGetProcAddress((const GLubyte*)"glSampleMaskEXT")) == NULL) || r;
- r = ((glSamplePatternEXT = (PFNGLSAMPLEPATTERNEXTPROC)glewGetProcAddress((const GLubyte*)"glSamplePatternEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_multisample */
-
-#ifdef GL_EXT_multisampled_render_to_texture
-
-static GLboolean _glewInit_GL_EXT_multisampled_render_to_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferTexture2DMultisampleEXT = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DMultisampleEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_multisampled_render_to_texture */
-
-#ifdef GL_EXT_multiview_draw_buffers
-
-static GLboolean _glewInit_GL_EXT_multiview_draw_buffers ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawBuffersIndexedEXT = (PFNGLDRAWBUFFERSINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersIndexedEXT")) == NULL) || r;
- r = ((glGetIntegeri_vEXT = (PFNGLGETINTEGERI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetIntegeri_vEXT")) == NULL) || r;
- r = ((glReadBufferIndexedEXT = (PFNGLREADBUFFERINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glReadBufferIndexedEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_multiview_draw_buffers */
-
-#ifdef GL_EXT_paletted_texture
-
-static GLboolean _glewInit_GL_EXT_paletted_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glColorTableEXT = (PFNGLCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"glColorTableEXT")) == NULL) || r;
- r = ((glGetColorTableEXT = (PFNGLGETCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableEXT")) == NULL) || r;
- r = ((glGetColorTableParameterfvEXT = (PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameterfvEXT")) == NULL) || r;
- r = ((glGetColorTableParameterivEXT = (PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameterivEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_paletted_texture */
-
-#ifdef GL_EXT_pixel_transform
-
-static GLboolean _glewInit_GL_EXT_pixel_transform ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetPixelTransformParameterfvEXT = (PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterfvEXT")) == NULL) || r;
- r = ((glGetPixelTransformParameterivEXT = (PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterivEXT")) == NULL) || r;
- r = ((glPixelTransformParameterfEXT = (PFNGLPIXELTRANSFORMPARAMETERFEXTPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfEXT")) == NULL) || r;
- r = ((glPixelTransformParameterfvEXT = (PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfvEXT")) == NULL) || r;
- r = ((glPixelTransformParameteriEXT = (PFNGLPIXELTRANSFORMPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameteriEXT")) == NULL) || r;
- r = ((glPixelTransformParameterivEXT = (PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterivEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_pixel_transform */
-
-#ifdef GL_EXT_point_parameters
-
-static GLboolean _glewInit_GL_EXT_point_parameters ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPointParameterfEXT = (PFNGLPOINTPARAMETERFEXTPROC)glewGetProcAddress((const GLubyte*)"glPointParameterfEXT")) == NULL) || r;
- r = ((glPointParameterfvEXT = (PFNGLPOINTPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glPointParameterfvEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_point_parameters */
-
-#ifdef GL_EXT_polygon_offset
-
-static GLboolean _glewInit_GL_EXT_polygon_offset ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPolygonOffsetEXT = (PFNGLPOLYGONOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glPolygonOffsetEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_polygon_offset */
-
-#ifdef GL_EXT_polygon_offset_clamp
-
-static GLboolean _glewInit_GL_EXT_polygon_offset_clamp ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPolygonOffsetClampEXT = (PFNGLPOLYGONOFFSETCLAMPEXTPROC)glewGetProcAddress((const GLubyte*)"glPolygonOffsetClampEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_polygon_offset_clamp */
-
-#ifdef GL_EXT_primitive_bounding_box
-
-static GLboolean _glewInit_GL_EXT_primitive_bounding_box ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPrimitiveBoundingBoxEXT = (PFNGLPRIMITIVEBOUNDINGBOXEXTPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveBoundingBoxEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_primitive_bounding_box */
-
-#ifdef GL_EXT_provoking_vertex
-
-static GLboolean _glewInit_GL_EXT_provoking_vertex ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glProvokingVertexEXT = (PFNGLPROVOKINGVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glProvokingVertexEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_provoking_vertex */
-
-#ifdef GL_EXT_raster_multisample
-
-static GLboolean _glewInit_GL_EXT_raster_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCoverageModulationNV = (PFNGLCOVERAGEMODULATIONNVPROC)glewGetProcAddress((const GLubyte*)"glCoverageModulationNV")) == NULL) || r;
- r = ((glCoverageModulationTableNV = (PFNGLCOVERAGEMODULATIONTABLENVPROC)glewGetProcAddress((const GLubyte*)"glCoverageModulationTableNV")) == NULL) || r;
- r = ((glGetCoverageModulationTableNV = (PFNGLGETCOVERAGEMODULATIONTABLENVPROC)glewGetProcAddress((const GLubyte*)"glGetCoverageModulationTableNV")) == NULL) || r;
- r = ((glRasterSamplesEXT = (PFNGLRASTERSAMPLESEXTPROC)glewGetProcAddress((const GLubyte*)"glRasterSamplesEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_raster_multisample */
-
-#ifdef GL_EXT_robustness
-
-static GLboolean _glewInit_GL_EXT_robustness ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetnUniformfvEXT = (PFNGLGETNUNIFORMFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformfvEXT")) == NULL) || r;
- r = ((glGetnUniformivEXT = (PFNGLGETNUNIFORMIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformivEXT")) == NULL) || r;
- r = ((glReadnPixelsEXT = (PFNGLREADNPIXELSEXTPROC)glewGetProcAddress((const GLubyte*)"glReadnPixelsEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_robustness */
-
-#ifdef GL_EXT_scene_marker
-
-static GLboolean _glewInit_GL_EXT_scene_marker ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginSceneEXT = (PFNGLBEGINSCENEEXTPROC)glewGetProcAddress((const GLubyte*)"glBeginSceneEXT")) == NULL) || r;
- r = ((glEndSceneEXT = (PFNGLENDSCENEEXTPROC)glewGetProcAddress((const GLubyte*)"glEndSceneEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_scene_marker */
-
-#ifdef GL_EXT_secondary_color
-
-static GLboolean _glewInit_GL_EXT_secondary_color ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glSecondaryColor3bEXT = (PFNGLSECONDARYCOLOR3BEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3bEXT")) == NULL) || r;
- r = ((glSecondaryColor3bvEXT = (PFNGLSECONDARYCOLOR3BVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3bvEXT")) == NULL) || r;
- r = ((glSecondaryColor3dEXT = (PFNGLSECONDARYCOLOR3DEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3dEXT")) == NULL) || r;
- r = ((glSecondaryColor3dvEXT = (PFNGLSECONDARYCOLOR3DVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3dvEXT")) == NULL) || r;
- r = ((glSecondaryColor3fEXT = (PFNGLSECONDARYCOLOR3FEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3fEXT")) == NULL) || r;
- r = ((glSecondaryColor3fvEXT = (PFNGLSECONDARYCOLOR3FVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3fvEXT")) == NULL) || r;
- r = ((glSecondaryColor3iEXT = (PFNGLSECONDARYCOLOR3IEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3iEXT")) == NULL) || r;
- r = ((glSecondaryColor3ivEXT = (PFNGLSECONDARYCOLOR3IVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ivEXT")) == NULL) || r;
- r = ((glSecondaryColor3sEXT = (PFNGLSECONDARYCOLOR3SEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3sEXT")) == NULL) || r;
- r = ((glSecondaryColor3svEXT = (PFNGLSECONDARYCOLOR3SVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3svEXT")) == NULL) || r;
- r = ((glSecondaryColor3ubEXT = (PFNGLSECONDARYCOLOR3UBEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ubEXT")) == NULL) || r;
- r = ((glSecondaryColor3ubvEXT = (PFNGLSECONDARYCOLOR3UBVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ubvEXT")) == NULL) || r;
- r = ((glSecondaryColor3uiEXT = (PFNGLSECONDARYCOLOR3UIEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3uiEXT")) == NULL) || r;
- r = ((glSecondaryColor3uivEXT = (PFNGLSECONDARYCOLOR3UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3uivEXT")) == NULL) || r;
- r = ((glSecondaryColor3usEXT = (PFNGLSECONDARYCOLOR3USEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3usEXT")) == NULL) || r;
- r = ((glSecondaryColor3usvEXT = (PFNGLSECONDARYCOLOR3USVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3usvEXT")) == NULL) || r;
- r = ((glSecondaryColorPointerEXT = (PFNGLSECONDARYCOLORPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorPointerEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_secondary_color */
-
-#ifdef GL_EXT_semaphore
-
-static GLboolean _glewInit_GL_EXT_semaphore ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDeleteSemaphoresEXT = (PFNGLDELETESEMAPHORESEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteSemaphoresEXT")) == NULL) || r;
- r = ((glGenSemaphoresEXT = (PFNGLGENSEMAPHORESEXTPROC)glewGetProcAddress((const GLubyte*)"glGenSemaphoresEXT")) == NULL) || r;
- r = ((glGetSemaphoreParameterui64vEXT = (PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetSemaphoreParameterui64vEXT")) == NULL) || r;
- r = ((glIsSemaphoreEXT = (PFNGLISSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glIsSemaphoreEXT")) == NULL) || r;
- r = ((glSemaphoreParameterui64vEXT = (PFNGLSEMAPHOREPARAMETERUI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glSemaphoreParameterui64vEXT")) == NULL) || r;
- r = ((glSignalSemaphoreEXT = (PFNGLSIGNALSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glSignalSemaphoreEXT")) == NULL) || r;
- r = ((glWaitSemaphoreEXT = (PFNGLWAITSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glWaitSemaphoreEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_semaphore */
-
-#ifdef GL_EXT_semaphore_fd
-
-static GLboolean _glewInit_GL_EXT_semaphore_fd ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glImportSemaphoreFdEXT = (PFNGLIMPORTSEMAPHOREFDEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreFdEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_semaphore_fd */
-
-#ifdef GL_EXT_semaphore_win32
-
-static GLboolean _glewInit_GL_EXT_semaphore_win32 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glImportSemaphoreWin32HandleEXT = (PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreWin32HandleEXT")) == NULL) || r;
- r = ((glImportSemaphoreWin32NameEXT = (PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreWin32NameEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_semaphore_win32 */
-
-#ifdef GL_EXT_separate_shader_objects
-
-static GLboolean _glewInit_GL_EXT_separate_shader_objects ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glActiveProgramEXT = (PFNGLACTIVEPROGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glActiveProgramEXT")) == NULL) || r;
- r = ((glCreateShaderProgramEXT = (PFNGLCREATESHADERPROGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glCreateShaderProgramEXT")) == NULL) || r;
- r = ((glUseShaderProgramEXT = (PFNGLUSESHADERPROGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glUseShaderProgramEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_separate_shader_objects */
-
-#ifdef GL_EXT_shader_framebuffer_fetch
-
-static GLboolean _glewInit_GL_EXT_shader_framebuffer_fetch ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferFetchBarrierEXT = (PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFetchBarrierEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_shader_framebuffer_fetch */
-
-#ifdef GL_EXT_shader_image_load_store
-
-static GLboolean _glewInit_GL_EXT_shader_image_load_store ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindImageTextureEXT = (PFNGLBINDIMAGETEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glBindImageTextureEXT")) == NULL) || r;
- r = ((glMemoryBarrierEXT = (PFNGLMEMORYBARRIEREXTPROC)glewGetProcAddress((const GLubyte*)"glMemoryBarrierEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_shader_image_load_store */
-
-#ifdef GL_EXT_shader_pixel_local_storage2
-
-static GLboolean _glewInit_GL_EXT_shader_pixel_local_storage2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClearPixelLocalStorageuiEXT = (PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC)glewGetProcAddress((const GLubyte*)"glClearPixelLocalStorageuiEXT")) == NULL) || r;
- r = ((glFramebufferPixelLocalStorageSizeEXT = (PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferPixelLocalStorageSizeEXT")) == NULL) || r;
- r = ((glGetFramebufferPixelLocalStorageSizeEXT = (PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferPixelLocalStorageSizeEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_shader_pixel_local_storage2 */
-
-#ifdef GL_EXT_sparse_texture
-
-static GLboolean _glewInit_GL_EXT_sparse_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexPageCommitmentEXT = (PFNGLTEXPAGECOMMITMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glTexPageCommitmentEXT")) == NULL) || r;
- r = ((glTexturePageCommitmentEXT = (PFNGLTEXTUREPAGECOMMITMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glTexturePageCommitmentEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_sparse_texture */
-
-#ifdef GL_EXT_stencil_two_side
-
-static GLboolean _glewInit_GL_EXT_stencil_two_side ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glActiveStencilFaceEXT = (PFNGLACTIVESTENCILFACEEXTPROC)glewGetProcAddress((const GLubyte*)"glActiveStencilFaceEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_stencil_two_side */
-
-#ifdef GL_EXT_subtexture
-
-static GLboolean _glewInit_GL_EXT_subtexture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexSubImage1DEXT = (PFNGLTEXSUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage1DEXT")) == NULL) || r;
- r = ((glTexSubImage2DEXT = (PFNGLTEXSUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage2DEXT")) == NULL) || r;
- r = ((glTexSubImage3DEXT = (PFNGLTEXSUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage3DEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_subtexture */
-
-#ifdef GL_EXT_tessellation_point_size
-
-static GLboolean _glewInit_GL_EXT_tessellation_point_size ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPatchParameteriEXT = (PFNGLPATCHPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glPatchParameteriEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_tessellation_point_size */
-
-#ifdef GL_EXT_texture3D
-
-static GLboolean _glewInit_GL_EXT_texture3D ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexImage3DEXT = (PFNGLTEXIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_texture3D */
-
-#ifdef GL_EXT_texture_array
-
-static GLboolean _glewInit_GL_EXT_texture_array ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferTextureLayerEXT = (PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayerEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_texture_array */
-
-#ifdef GL_EXT_texture_border_clamp
-
-static GLboolean _glewInit_GL_EXT_texture_border_clamp ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetSamplerParameterIivEXT = (PFNGLGETSAMPLERPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIivEXT")) == NULL) || r;
- r = ((glGetSamplerParameterIuivEXT = (PFNGLGETSAMPLERPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIuivEXT")) == NULL) || r;
- r = ((glSamplerParameterIivEXT = (PFNGLSAMPLERPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIivEXT")) == NULL) || r;
- r = ((glSamplerParameterIuivEXT = (PFNGLSAMPLERPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIuivEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_texture_border_clamp */
-
-#ifdef GL_EXT_texture_buffer_object
-
-static GLboolean _glewInit_GL_EXT_texture_buffer_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexBufferEXT = (PFNGLTEXBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glTexBufferEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_texture_buffer_object */
-
-#ifdef GL_EXT_texture_integer
-
-static GLboolean _glewInit_GL_EXT_texture_integer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClearColorIiEXT = (PFNGLCLEARCOLORIIEXTPROC)glewGetProcAddress((const GLubyte*)"glClearColorIiEXT")) == NULL) || r;
- r = ((glClearColorIuiEXT = (PFNGLCLEARCOLORIUIEXTPROC)glewGetProcAddress((const GLubyte*)"glClearColorIuiEXT")) == NULL) || r;
- r = ((glGetTexParameterIivEXT = (PFNGLGETTEXPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIivEXT")) == NULL) || r;
- r = ((glGetTexParameterIuivEXT = (PFNGLGETTEXPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIuivEXT")) == NULL) || r;
- r = ((glTexParameterIivEXT = (PFNGLTEXPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIivEXT")) == NULL) || r;
- r = ((glTexParameterIuivEXT = (PFNGLTEXPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIuivEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_texture_integer */
-
-#ifdef GL_EXT_texture_object
-
-static GLboolean _glewInit_GL_EXT_texture_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAreTexturesResidentEXT = (PFNGLARETEXTURESRESIDENTEXTPROC)glewGetProcAddress((const GLubyte*)"glAreTexturesResidentEXT")) == NULL) || r;
- r = ((glBindTextureEXT = (PFNGLBINDTEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glBindTextureEXT")) == NULL) || r;
- r = ((glDeleteTexturesEXT = (PFNGLDELETETEXTURESEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteTexturesEXT")) == NULL) || r;
- r = ((glGenTexturesEXT = (PFNGLGENTEXTURESEXTPROC)glewGetProcAddress((const GLubyte*)"glGenTexturesEXT")) == NULL) || r;
- r = ((glIsTextureEXT = (PFNGLISTEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glIsTextureEXT")) == NULL) || r;
- r = ((glPrioritizeTexturesEXT = (PFNGLPRIORITIZETEXTURESEXTPROC)glewGetProcAddress((const GLubyte*)"glPrioritizeTexturesEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_texture_object */
-
-#ifdef GL_EXT_texture_perturb_normal
-
-static GLboolean _glewInit_GL_EXT_texture_perturb_normal ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTextureNormalEXT = (PFNGLTEXTURENORMALEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureNormalEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_texture_perturb_normal */
-
-#ifdef GL_EXT_texture_storage
-
-static GLboolean _glewInit_GL_EXT_texture_storage ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexStorage1DEXT = (PFNGLTEXSTORAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage1DEXT")) == NULL) || r;
- r = ((glTexStorage2DEXT = (PFNGLTEXSTORAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage2DEXT")) == NULL) || r;
- r = ((glTexStorage3DEXT = (PFNGLTEXSTORAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3DEXT")) == NULL) || r;
- r = ((glTextureStorage1DEXT = (PFNGLTEXTURESTORAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage1DEXT")) == NULL) || r;
- r = ((glTextureStorage2DEXT = (PFNGLTEXTURESTORAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2DEXT")) == NULL) || r;
- r = ((glTextureStorage3DEXT = (PFNGLTEXTURESTORAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3DEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_texture_storage */
-
-#ifdef GL_EXT_texture_view
-
-static GLboolean _glewInit_GL_EXT_texture_view ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTextureViewEXT = (PFNGLTEXTUREVIEWEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureViewEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_texture_view */
-
-#ifdef GL_EXT_timer_query
-
-static GLboolean _glewInit_GL_EXT_timer_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetQueryObjecti64vEXT = (PFNGLGETQUERYOBJECTI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjecti64vEXT")) == NULL) || r;
- r = ((glGetQueryObjectui64vEXT = (PFNGLGETQUERYOBJECTUI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectui64vEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_timer_query */
-
-#ifdef GL_EXT_transform_feedback
-
-static GLboolean _glewInit_GL_EXT_transform_feedback ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginTransformFeedbackEXT = (PFNGLBEGINTRANSFORMFEEDBACKEXTPROC)glewGetProcAddress((const GLubyte*)"glBeginTransformFeedbackEXT")) == NULL) || r;
- r = ((glBindBufferBaseEXT = (PFNGLBINDBUFFERBASEEXTPROC)glewGetProcAddress((const GLubyte*)"glBindBufferBaseEXT")) == NULL) || r;
- r = ((glBindBufferOffsetEXT = (PFNGLBINDBUFFEROFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glBindBufferOffsetEXT")) == NULL) || r;
- r = ((glBindBufferRangeEXT = (PFNGLBINDBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glBindBufferRangeEXT")) == NULL) || r;
- r = ((glEndTransformFeedbackEXT = (PFNGLENDTRANSFORMFEEDBACKEXTPROC)glewGetProcAddress((const GLubyte*)"glEndTransformFeedbackEXT")) == NULL) || r;
- r = ((glGetTransformFeedbackVaryingEXT = (PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbackVaryingEXT")) == NULL) || r;
- r = ((glTransformFeedbackVaryingsEXT = (PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackVaryingsEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_transform_feedback */
-
-#ifdef GL_EXT_vertex_array
-
-static GLboolean _glewInit_GL_EXT_vertex_array ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glArrayElementEXT = (PFNGLARRAYELEMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glArrayElementEXT")) == NULL) || r;
- r = ((glColorPointerEXT = (PFNGLCOLORPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glColorPointerEXT")) == NULL) || r;
- r = ((glDrawArraysEXT = (PFNGLDRAWARRAYSEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysEXT")) == NULL) || r;
- r = ((glEdgeFlagPointerEXT = (PFNGLEDGEFLAGPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glEdgeFlagPointerEXT")) == NULL) || r;
- r = ((glIndexPointerEXT = (PFNGLINDEXPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glIndexPointerEXT")) == NULL) || r;
- r = ((glNormalPointerEXT = (PFNGLNORMALPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glNormalPointerEXT")) == NULL) || r;
- r = ((glTexCoordPointerEXT = (PFNGLTEXCOORDPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glTexCoordPointerEXT")) == NULL) || r;
- r = ((glVertexPointerEXT = (PFNGLVERTEXPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexPointerEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_vertex_array */
-
-#ifdef GL_EXT_vertex_array_setXXX
-
-static GLboolean _glewInit_GL_EXT_vertex_array_setXXX ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindArraySetEXT = (PFNGLBINDARRAYSETEXTPROC)glewGetProcAddress((const GLubyte*)"glBindArraySetEXT")) == NULL) || r;
- r = ((glCreateArraySetExt = (PFNGLCREATEARRAYSETEXTPROC)glewGetProcAddress((const GLubyte*)"glCreateArraySetExt")) == NULL) || r;
- r = ((glDeleteArraySetsEXT = (PFNGLDELETEARRAYSETSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteArraySetsEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_vertex_array_setXXX */
-
-#ifdef GL_EXT_vertex_attrib_64bit
-
-static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetVertexAttribLdvEXT = (PFNGLGETVERTEXATTRIBLDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribLdvEXT")) == NULL) || r;
- r = ((glVertexArrayVertexAttribLOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribLOffsetEXT")) == NULL) || r;
- r = ((glVertexAttribL1dEXT = (PFNGLVERTEXATTRIBL1DEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1dEXT")) == NULL) || r;
- r = ((glVertexAttribL1dvEXT = (PFNGLVERTEXATTRIBL1DVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1dvEXT")) == NULL) || r;
- r = ((glVertexAttribL2dEXT = (PFNGLVERTEXATTRIBL2DEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2dEXT")) == NULL) || r;
- r = ((glVertexAttribL2dvEXT = (PFNGLVERTEXATTRIBL2DVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2dvEXT")) == NULL) || r;
- r = ((glVertexAttribL3dEXT = (PFNGLVERTEXATTRIBL3DEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3dEXT")) == NULL) || r;
- r = ((glVertexAttribL3dvEXT = (PFNGLVERTEXATTRIBL3DVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3dvEXT")) == NULL) || r;
- r = ((glVertexAttribL4dEXT = (PFNGLVERTEXATTRIBL4DEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4dEXT")) == NULL) || r;
- r = ((glVertexAttribL4dvEXT = (PFNGLVERTEXATTRIBL4DVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4dvEXT")) == NULL) || r;
- r = ((glVertexAttribLPointerEXT = (PFNGLVERTEXATTRIBLPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribLPointerEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_vertex_attrib_64bit */
-
-#ifdef GL_EXT_vertex_shader
-
-static GLboolean _glewInit_GL_EXT_vertex_shader ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginVertexShaderEXT = (PFNGLBEGINVERTEXSHADEREXTPROC)glewGetProcAddress((const GLubyte*)"glBeginVertexShaderEXT")) == NULL) || r;
- r = ((glBindLightParameterEXT = (PFNGLBINDLIGHTPARAMETEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindLightParameterEXT")) == NULL) || r;
- r = ((glBindMaterialParameterEXT = (PFNGLBINDMATERIALPARAMETEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindMaterialParameterEXT")) == NULL) || r;
- r = ((glBindParameterEXT = (PFNGLBINDPARAMETEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindParameterEXT")) == NULL) || r;
- r = ((glBindTexGenParameterEXT = (PFNGLBINDTEXGENPARAMETEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindTexGenParameterEXT")) == NULL) || r;
- r = ((glBindTextureUnitParameterEXT = (PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindTextureUnitParameterEXT")) == NULL) || r;
- r = ((glBindVertexShaderEXT = (PFNGLBINDVERTEXSHADEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindVertexShaderEXT")) == NULL) || r;
- r = ((glDeleteVertexShaderEXT = (PFNGLDELETEVERTEXSHADEREXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexShaderEXT")) == NULL) || r;
- r = ((glDisableVariantClientStateEXT = (PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableVariantClientStateEXT")) == NULL) || r;
- r = ((glEnableVariantClientStateEXT = (PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableVariantClientStateEXT")) == NULL) || r;
- r = ((glEndVertexShaderEXT = (PFNGLENDVERTEXSHADEREXTPROC)glewGetProcAddress((const GLubyte*)"glEndVertexShaderEXT")) == NULL) || r;
- r = ((glExtractComponentEXT = (PFNGLEXTRACTCOMPONENTEXTPROC)glewGetProcAddress((const GLubyte*)"glExtractComponentEXT")) == NULL) || r;
- r = ((glGenSymbolsEXT = (PFNGLGENSYMBOLSEXTPROC)glewGetProcAddress((const GLubyte*)"glGenSymbolsEXT")) == NULL) || r;
- r = ((glGenVertexShadersEXT = (PFNGLGENVERTEXSHADERSEXTPROC)glewGetProcAddress((const GLubyte*)"glGenVertexShadersEXT")) == NULL) || r;
- r = ((glGetInvariantBooleanvEXT = (PFNGLGETINVARIANTBOOLEANVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetInvariantBooleanvEXT")) == NULL) || r;
- r = ((glGetInvariantFloatvEXT = (PFNGLGETINVARIANTFLOATVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetInvariantFloatvEXT")) == NULL) || r;
- r = ((glGetInvariantIntegervEXT = (PFNGLGETINVARIANTINTEGERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetInvariantIntegervEXT")) == NULL) || r;
- r = ((glGetLocalConstantBooleanvEXT = (PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetLocalConstantBooleanvEXT")) == NULL) || r;
- r = ((glGetLocalConstantFloatvEXT = (PFNGLGETLOCALCONSTANTFLOATVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetLocalConstantFloatvEXT")) == NULL) || r;
- r = ((glGetLocalConstantIntegervEXT = (PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetLocalConstantIntegervEXT")) == NULL) || r;
- r = ((glGetVariantBooleanvEXT = (PFNGLGETVARIANTBOOLEANVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVariantBooleanvEXT")) == NULL) || r;
- r = ((glGetVariantFloatvEXT = (PFNGLGETVARIANTFLOATVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVariantFloatvEXT")) == NULL) || r;
- r = ((glGetVariantIntegervEXT = (PFNGLGETVARIANTINTEGERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVariantIntegervEXT")) == NULL) || r;
- r = ((glGetVariantPointervEXT = (PFNGLGETVARIANTPOINTERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVariantPointervEXT")) == NULL) || r;
- r = ((glInsertComponentEXT = (PFNGLINSERTCOMPONENTEXTPROC)glewGetProcAddress((const GLubyte*)"glInsertComponentEXT")) == NULL) || r;
- r = ((glIsVariantEnabledEXT = (PFNGLISVARIANTENABLEDEXTPROC)glewGetProcAddress((const GLubyte*)"glIsVariantEnabledEXT")) == NULL) || r;
- r = ((glSetInvariantEXT = (PFNGLSETINVARIANTEXTPROC)glewGetProcAddress((const GLubyte*)"glSetInvariantEXT")) == NULL) || r;
- r = ((glSetLocalConstantEXT = (PFNGLSETLOCALCONSTANTEXTPROC)glewGetProcAddress((const GLubyte*)"glSetLocalConstantEXT")) == NULL) || r;
- r = ((glShaderOp1EXT = (PFNGLSHADEROP1EXTPROC)glewGetProcAddress((const GLubyte*)"glShaderOp1EXT")) == NULL) || r;
- r = ((glShaderOp2EXT = (PFNGLSHADEROP2EXTPROC)glewGetProcAddress((const GLubyte*)"glShaderOp2EXT")) == NULL) || r;
- r = ((glShaderOp3EXT = (PFNGLSHADEROP3EXTPROC)glewGetProcAddress((const GLubyte*)"glShaderOp3EXT")) == NULL) || r;
- r = ((glSwizzleEXT = (PFNGLSWIZZLEEXTPROC)glewGetProcAddress((const GLubyte*)"glSwizzleEXT")) == NULL) || r;
- r = ((glVariantPointerEXT = (PFNGLVARIANTPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glVariantPointerEXT")) == NULL) || r;
- r = ((glVariantbvEXT = (PFNGLVARIANTBVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantbvEXT")) == NULL) || r;
- r = ((glVariantdvEXT = (PFNGLVARIANTDVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantdvEXT")) == NULL) || r;
- r = ((glVariantfvEXT = (PFNGLVARIANTFVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantfvEXT")) == NULL) || r;
- r = ((glVariantivEXT = (PFNGLVARIANTIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantivEXT")) == NULL) || r;
- r = ((glVariantsvEXT = (PFNGLVARIANTSVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantsvEXT")) == NULL) || r;
- r = ((glVariantubvEXT = (PFNGLVARIANTUBVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantubvEXT")) == NULL) || r;
- r = ((glVariantuivEXT = (PFNGLVARIANTUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantuivEXT")) == NULL) || r;
- r = ((glVariantusvEXT = (PFNGLVARIANTUSVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantusvEXT")) == NULL) || r;
- r = ((glWriteMaskEXT = (PFNGLWRITEMASKEXTPROC)glewGetProcAddress((const GLubyte*)"glWriteMaskEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_vertex_shader */
-
-#ifdef GL_EXT_vertex_weighting
-
-static GLboolean _glewInit_GL_EXT_vertex_weighting ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glVertexWeightPointerEXT = (PFNGLVERTEXWEIGHTPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexWeightPointerEXT")) == NULL) || r;
- r = ((glVertexWeightfEXT = (PFNGLVERTEXWEIGHTFEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexWeightfEXT")) == NULL) || r;
- r = ((glVertexWeightfvEXT = (PFNGLVERTEXWEIGHTFVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexWeightfvEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_vertex_weighting */
-
-#ifdef GL_EXT_win32_keyed_mutex
-
-static GLboolean _glewInit_GL_EXT_win32_keyed_mutex ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAcquireKeyedMutexWin32EXT = (PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC)glewGetProcAddress((const GLubyte*)"glAcquireKeyedMutexWin32EXT")) == NULL) || r;
- r = ((glReleaseKeyedMutexWin32EXT = (PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC)glewGetProcAddress((const GLubyte*)"glReleaseKeyedMutexWin32EXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_win32_keyed_mutex */
-
-#ifdef GL_EXT_window_rectangles
-
-static GLboolean _glewInit_GL_EXT_window_rectangles ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glWindowRectanglesEXT = (PFNGLWINDOWRECTANGLESEXTPROC)glewGetProcAddress((const GLubyte*)"glWindowRectanglesEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_window_rectangles */
-
-#ifdef GL_EXT_x11_sync_object
-
-static GLboolean _glewInit_GL_EXT_x11_sync_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glImportSyncEXT = (PFNGLIMPORTSYNCEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSyncEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_EXT_x11_sync_object */
-
-#ifdef GL_GREMEDY_frame_terminator
-
-static GLboolean _glewInit_GL_GREMEDY_frame_terminator ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFrameTerminatorGREMEDY = (PFNGLFRAMETERMINATORGREMEDYPROC)glewGetProcAddress((const GLubyte*)"glFrameTerminatorGREMEDY")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_GREMEDY_frame_terminator */
-
-#ifdef GL_GREMEDY_string_marker
-
-static GLboolean _glewInit_GL_GREMEDY_string_marker ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glStringMarkerGREMEDY = (PFNGLSTRINGMARKERGREMEDYPROC)glewGetProcAddress((const GLubyte*)"glStringMarkerGREMEDY")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_GREMEDY_string_marker */
-
-#ifdef GL_HP_image_transform
-
-static GLboolean _glewInit_GL_HP_image_transform ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetImageTransformParameterfvHP = (PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC)glewGetProcAddress((const GLubyte*)"glGetImageTransformParameterfvHP")) == NULL) || r;
- r = ((glGetImageTransformParameterivHP = (PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC)glewGetProcAddress((const GLubyte*)"glGetImageTransformParameterivHP")) == NULL) || r;
- r = ((glImageTransformParameterfHP = (PFNGLIMAGETRANSFORMPARAMETERFHPPROC)glewGetProcAddress((const GLubyte*)"glImageTransformParameterfHP")) == NULL) || r;
- r = ((glImageTransformParameterfvHP = (PFNGLIMAGETRANSFORMPARAMETERFVHPPROC)glewGetProcAddress((const GLubyte*)"glImageTransformParameterfvHP")) == NULL) || r;
- r = ((glImageTransformParameteriHP = (PFNGLIMAGETRANSFORMPARAMETERIHPPROC)glewGetProcAddress((const GLubyte*)"glImageTransformParameteriHP")) == NULL) || r;
- r = ((glImageTransformParameterivHP = (PFNGLIMAGETRANSFORMPARAMETERIVHPPROC)glewGetProcAddress((const GLubyte*)"glImageTransformParameterivHP")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_HP_image_transform */
-
-#ifdef GL_IBM_multimode_draw_arrays
-
-static GLboolean _glewInit_GL_IBM_multimode_draw_arrays ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMultiModeDrawArraysIBM = (PFNGLMULTIMODEDRAWARRAYSIBMPROC)glewGetProcAddress((const GLubyte*)"glMultiModeDrawArraysIBM")) == NULL) || r;
- r = ((glMultiModeDrawElementsIBM = (PFNGLMULTIMODEDRAWELEMENTSIBMPROC)glewGetProcAddress((const GLubyte*)"glMultiModeDrawElementsIBM")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_IBM_multimode_draw_arrays */
-
-#ifdef GL_IBM_vertex_array_lists
-
-static GLboolean _glewInit_GL_IBM_vertex_array_lists ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glColorPointerListIBM = (PFNGLCOLORPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glColorPointerListIBM")) == NULL) || r;
- r = ((glEdgeFlagPointerListIBM = (PFNGLEDGEFLAGPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glEdgeFlagPointerListIBM")) == NULL) || r;
- r = ((glFogCoordPointerListIBM = (PFNGLFOGCOORDPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glFogCoordPointerListIBM")) == NULL) || r;
- r = ((glIndexPointerListIBM = (PFNGLINDEXPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glIndexPointerListIBM")) == NULL) || r;
- r = ((glNormalPointerListIBM = (PFNGLNORMALPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glNormalPointerListIBM")) == NULL) || r;
- r = ((glSecondaryColorPointerListIBM = (PFNGLSECONDARYCOLORPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorPointerListIBM")) == NULL) || r;
- r = ((glTexCoordPointerListIBM = (PFNGLTEXCOORDPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glTexCoordPointerListIBM")) == NULL) || r;
- r = ((glVertexPointerListIBM = (PFNGLVERTEXPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glVertexPointerListIBM")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_IBM_vertex_array_lists */
-
-#ifdef GL_IMG_bindless_texture
-
-static GLboolean _glewInit_GL_IMG_bindless_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetTextureHandleIMG = (PFNGLGETTEXTUREHANDLEIMGPROC)glewGetProcAddress((const GLubyte*)"glGetTextureHandleIMG")) == NULL) || r;
- r = ((glGetTextureSamplerHandleIMG = (PFNGLGETTEXTURESAMPLERHANDLEIMGPROC)glewGetProcAddress((const GLubyte*)"glGetTextureSamplerHandleIMG")) == NULL) || r;
- r = ((glProgramUniformHandleui64IMG = (PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64IMG")) == NULL) || r;
- r = ((glProgramUniformHandleui64vIMG = (PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64vIMG")) == NULL) || r;
- r = ((glUniformHandleui64IMG = (PFNGLUNIFORMHANDLEUI64IMGPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64IMG")) == NULL) || r;
- r = ((glUniformHandleui64vIMG = (PFNGLUNIFORMHANDLEUI64VIMGPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64vIMG")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_IMG_bindless_texture */
-
-#ifdef GL_IMG_framebuffer_downsample
-
-static GLboolean _glewInit_GL_IMG_framebuffer_downsample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferTexture2DDownsampleIMG = (PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DDownsampleIMG")) == NULL) || r;
- r = ((glFramebufferTextureLayerDownsampleIMG = (PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayerDownsampleIMG")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_IMG_framebuffer_downsample */
-
-#ifdef GL_IMG_multisampled_render_to_texture
-
-static GLboolean _glewInit_GL_IMG_multisampled_render_to_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferTexture2DMultisampleIMG = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DMultisampleIMG")) == NULL) || r;
- r = ((glRenderbufferStorageMultisampleIMG = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleIMG")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_IMG_multisampled_render_to_texture */
-
-#ifdef GL_INTEL_map_texture
-
-static GLboolean _glewInit_GL_INTEL_map_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMapTexture2DINTEL = (PFNGLMAPTEXTURE2DINTELPROC)glewGetProcAddress((const GLubyte*)"glMapTexture2DINTEL")) == NULL) || r;
- r = ((glSyncTextureINTEL = (PFNGLSYNCTEXTUREINTELPROC)glewGetProcAddress((const GLubyte*)"glSyncTextureINTEL")) == NULL) || r;
- r = ((glUnmapTexture2DINTEL = (PFNGLUNMAPTEXTURE2DINTELPROC)glewGetProcAddress((const GLubyte*)"glUnmapTexture2DINTEL")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_INTEL_map_texture */
-
-#ifdef GL_INTEL_parallel_arrays
-
-static GLboolean _glewInit_GL_INTEL_parallel_arrays ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glColorPointervINTEL = (PFNGLCOLORPOINTERVINTELPROC)glewGetProcAddress((const GLubyte*)"glColorPointervINTEL")) == NULL) || r;
- r = ((glNormalPointervINTEL = (PFNGLNORMALPOINTERVINTELPROC)glewGetProcAddress((const GLubyte*)"glNormalPointervINTEL")) == NULL) || r;
- r = ((glTexCoordPointervINTEL = (PFNGLTEXCOORDPOINTERVINTELPROC)glewGetProcAddress((const GLubyte*)"glTexCoordPointervINTEL")) == NULL) || r;
- r = ((glVertexPointervINTEL = (PFNGLVERTEXPOINTERVINTELPROC)glewGetProcAddress((const GLubyte*)"glVertexPointervINTEL")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_INTEL_parallel_arrays */
-
-#ifdef GL_INTEL_performance_query
-
-static GLboolean _glewInit_GL_INTEL_performance_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginPerfQueryINTEL = (PFNGLBEGINPERFQUERYINTELPROC)glewGetProcAddress((const GLubyte*)"glBeginPerfQueryINTEL")) == NULL) || r;
- r = ((glCreatePerfQueryINTEL = (PFNGLCREATEPERFQUERYINTELPROC)glewGetProcAddress((const GLubyte*)"glCreatePerfQueryINTEL")) == NULL) || r;
- r = ((glDeletePerfQueryINTEL = (PFNGLDELETEPERFQUERYINTELPROC)glewGetProcAddress((const GLubyte*)"glDeletePerfQueryINTEL")) == NULL) || r;
- r = ((glEndPerfQueryINTEL = (PFNGLENDPERFQUERYINTELPROC)glewGetProcAddress((const GLubyte*)"glEndPerfQueryINTEL")) == NULL) || r;
- r = ((glGetFirstPerfQueryIdINTEL = (PFNGLGETFIRSTPERFQUERYIDINTELPROC)glewGetProcAddress((const GLubyte*)"glGetFirstPerfQueryIdINTEL")) == NULL) || r;
- r = ((glGetNextPerfQueryIdINTEL = (PFNGLGETNEXTPERFQUERYIDINTELPROC)glewGetProcAddress((const GLubyte*)"glGetNextPerfQueryIdINTEL")) == NULL) || r;
- r = ((glGetPerfCounterInfoINTEL = (PFNGLGETPERFCOUNTERINFOINTELPROC)glewGetProcAddress((const GLubyte*)"glGetPerfCounterInfoINTEL")) == NULL) || r;
- r = ((glGetPerfQueryDataINTEL = (PFNGLGETPERFQUERYDATAINTELPROC)glewGetProcAddress((const GLubyte*)"glGetPerfQueryDataINTEL")) == NULL) || r;
- r = ((glGetPerfQueryIdByNameINTEL = (PFNGLGETPERFQUERYIDBYNAMEINTELPROC)glewGetProcAddress((const GLubyte*)"glGetPerfQueryIdByNameINTEL")) == NULL) || r;
- r = ((glGetPerfQueryInfoINTEL = (PFNGLGETPERFQUERYINFOINTELPROC)glewGetProcAddress((const GLubyte*)"glGetPerfQueryInfoINTEL")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_INTEL_performance_query */
-
-#ifdef GL_INTEL_texture_scissor
-
-static GLboolean _glewInit_GL_INTEL_texture_scissor ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexScissorFuncINTEL = (PFNGLTEXSCISSORFUNCINTELPROC)glewGetProcAddress((const GLubyte*)"glTexScissorFuncINTEL")) == NULL) || r;
- r = ((glTexScissorINTEL = (PFNGLTEXSCISSORINTELPROC)glewGetProcAddress((const GLubyte*)"glTexScissorINTEL")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_INTEL_texture_scissor */
-
-#ifdef GL_KHR_blend_equation_advanced
-
-static GLboolean _glewInit_GL_KHR_blend_equation_advanced ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendBarrierKHR = (PFNGLBLENDBARRIERKHRPROC)glewGetProcAddress((const GLubyte*)"glBlendBarrierKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_KHR_blend_equation_advanced */
-
-#ifdef GL_KHR_debug
-
-static GLboolean _glewInit_GL_KHR_debug ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageCallback")) == NULL) || r;
- r = ((glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageControl")) == NULL) || r;
- r = ((glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageInsert")) == NULL) || r;
- r = ((glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC)glewGetProcAddress((const GLubyte*)"glGetDebugMessageLog")) == NULL) || r;
- r = ((glGetObjectLabel = (PFNGLGETOBJECTLABELPROC)glewGetProcAddress((const GLubyte*)"glGetObjectLabel")) == NULL) || r;
- r = ((glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC)glewGetProcAddress((const GLubyte*)"glGetObjectPtrLabel")) == NULL) || r;
- r = ((glObjectLabel = (PFNGLOBJECTLABELPROC)glewGetProcAddress((const GLubyte*)"glObjectLabel")) == NULL) || r;
- r = ((glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC)glewGetProcAddress((const GLubyte*)"glObjectPtrLabel")) == NULL) || r;
- r = ((glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC)glewGetProcAddress((const GLubyte*)"glPopDebugGroup")) == NULL) || r;
- r = ((glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC)glewGetProcAddress((const GLubyte*)"glPushDebugGroup")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_KHR_debug */
-
-#ifdef GL_KHR_parallel_shader_compile
-
-static GLboolean _glewInit_GL_KHR_parallel_shader_compile ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMaxShaderCompilerThreadsKHR = (PFNGLMAXSHADERCOMPILERTHREADSKHRPROC)glewGetProcAddress((const GLubyte*)"glMaxShaderCompilerThreadsKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_KHR_parallel_shader_compile */
-
-#ifdef GL_KHR_robustness
-
-static GLboolean _glewInit_GL_KHR_robustness ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetnUniformfv = (PFNGLGETNUNIFORMFVPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformfv")) == NULL) || r;
- r = ((glGetnUniformiv = (PFNGLGETNUNIFORMIVPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformiv")) == NULL) || r;
- r = ((glGetnUniformuiv = (PFNGLGETNUNIFORMUIVPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformuiv")) == NULL) || r;
- r = ((glReadnPixels = (PFNGLREADNPIXELSPROC)glewGetProcAddress((const GLubyte*)"glReadnPixels")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_KHR_robustness */
-
-#ifdef GL_KTX_buffer_region
-
-static GLboolean _glewInit_GL_KTX_buffer_region ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBufferRegionEnabled = (PFNGLBUFFERREGIONENABLEDPROC)glewGetProcAddress((const GLubyte*)"glBufferRegionEnabled")) == NULL) || r;
- r = ((glDeleteBufferRegion = (PFNGLDELETEBUFFERREGIONPROC)glewGetProcAddress((const GLubyte*)"glDeleteBufferRegion")) == NULL) || r;
- r = ((glDrawBufferRegion = (PFNGLDRAWBUFFERREGIONPROC)glewGetProcAddress((const GLubyte*)"glDrawBufferRegion")) == NULL) || r;
- r = ((glNewBufferRegion = (PFNGLNEWBUFFERREGIONPROC)glewGetProcAddress((const GLubyte*)"glNewBufferRegion")) == NULL) || r;
- r = ((glReadBufferRegion = (PFNGLREADBUFFERREGIONPROC)glewGetProcAddress((const GLubyte*)"glReadBufferRegion")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_KTX_buffer_region */
-
-#ifdef GL_MESA_framebuffer_flip_y
-
-static GLboolean _glewInit_GL_MESA_framebuffer_flip_y ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferParameteriMESA = (PFNGLFRAMEBUFFERPARAMETERIMESAPROC)glewGetProcAddress((const GLubyte*)"glFramebufferParameteriMESA")) == NULL) || r;
- r = ((glGetFramebufferParameterivMESA = (PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameterivMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_MESA_framebuffer_flip_y */
-
-#ifdef GL_MESA_resize_buffers
-
-static GLboolean _glewInit_GL_MESA_resize_buffers ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glResizeBuffersMESA = (PFNGLRESIZEBUFFERSMESAPROC)glewGetProcAddress((const GLubyte*)"glResizeBuffersMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_MESA_resize_buffers */
-
-#ifdef GL_MESA_window_pos
-
-static GLboolean _glewInit_GL_MESA_window_pos ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glWindowPos2dMESA = (PFNGLWINDOWPOS2DMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2dMESA")) == NULL) || r;
- r = ((glWindowPos2dvMESA = (PFNGLWINDOWPOS2DVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2dvMESA")) == NULL) || r;
- r = ((glWindowPos2fMESA = (PFNGLWINDOWPOS2FMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2fMESA")) == NULL) || r;
- r = ((glWindowPos2fvMESA = (PFNGLWINDOWPOS2FVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2fvMESA")) == NULL) || r;
- r = ((glWindowPos2iMESA = (PFNGLWINDOWPOS2IMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2iMESA")) == NULL) || r;
- r = ((glWindowPos2ivMESA = (PFNGLWINDOWPOS2IVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2ivMESA")) == NULL) || r;
- r = ((glWindowPos2sMESA = (PFNGLWINDOWPOS2SMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2sMESA")) == NULL) || r;
- r = ((glWindowPos2svMESA = (PFNGLWINDOWPOS2SVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2svMESA")) == NULL) || r;
- r = ((glWindowPos3dMESA = (PFNGLWINDOWPOS3DMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3dMESA")) == NULL) || r;
- r = ((glWindowPos3dvMESA = (PFNGLWINDOWPOS3DVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3dvMESA")) == NULL) || r;
- r = ((glWindowPos3fMESA = (PFNGLWINDOWPOS3FMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3fMESA")) == NULL) || r;
- r = ((glWindowPos3fvMESA = (PFNGLWINDOWPOS3FVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3fvMESA")) == NULL) || r;
- r = ((glWindowPos3iMESA = (PFNGLWINDOWPOS3IMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3iMESA")) == NULL) || r;
- r = ((glWindowPos3ivMESA = (PFNGLWINDOWPOS3IVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3ivMESA")) == NULL) || r;
- r = ((glWindowPos3sMESA = (PFNGLWINDOWPOS3SMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3sMESA")) == NULL) || r;
- r = ((glWindowPos3svMESA = (PFNGLWINDOWPOS3SVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3svMESA")) == NULL) || r;
- r = ((glWindowPos4dMESA = (PFNGLWINDOWPOS4DMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4dMESA")) == NULL) || r;
- r = ((glWindowPos4dvMESA = (PFNGLWINDOWPOS4DVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4dvMESA")) == NULL) || r;
- r = ((glWindowPos4fMESA = (PFNGLWINDOWPOS4FMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4fMESA")) == NULL) || r;
- r = ((glWindowPos4fvMESA = (PFNGLWINDOWPOS4FVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4fvMESA")) == NULL) || r;
- r = ((glWindowPos4iMESA = (PFNGLWINDOWPOS4IMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4iMESA")) == NULL) || r;
- r = ((glWindowPos4ivMESA = (PFNGLWINDOWPOS4IVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4ivMESA")) == NULL) || r;
- r = ((glWindowPos4sMESA = (PFNGLWINDOWPOS4SMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4sMESA")) == NULL) || r;
- r = ((glWindowPos4svMESA = (PFNGLWINDOWPOS4SVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4svMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_MESA_window_pos */
-
-#ifdef GL_NVX_conditional_render
-
-static GLboolean _glewInit_GL_NVX_conditional_render ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginConditionalRenderNVX = (PFNGLBEGINCONDITIONALRENDERNVXPROC)glewGetProcAddress((const GLubyte*)"glBeginConditionalRenderNVX")) == NULL) || r;
- r = ((glEndConditionalRenderNVX = (PFNGLENDCONDITIONALRENDERNVXPROC)glewGetProcAddress((const GLubyte*)"glEndConditionalRenderNVX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NVX_conditional_render */
-
-#ifdef GL_NVX_gpu_multicast2
-
-static GLboolean _glewInit_GL_NVX_gpu_multicast2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAsyncCopyBufferSubDataNVX = (PFNGLASYNCCOPYBUFFERSUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glAsyncCopyBufferSubDataNVX")) == NULL) || r;
- r = ((glAsyncCopyImageSubDataNVX = (PFNGLASYNCCOPYIMAGESUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glAsyncCopyImageSubDataNVX")) == NULL) || r;
- r = ((glMulticastScissorArrayvNVX = (PFNGLMULTICASTSCISSORARRAYVNVXPROC)glewGetProcAddress((const GLubyte*)"glMulticastScissorArrayvNVX")) == NULL) || r;
- r = ((glMulticastViewportArrayvNVX = (PFNGLMULTICASTVIEWPORTARRAYVNVXPROC)glewGetProcAddress((const GLubyte*)"glMulticastViewportArrayvNVX")) == NULL) || r;
- r = ((glMulticastViewportPositionWScaleNVX = (PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC)glewGetProcAddress((const GLubyte*)"glMulticastViewportPositionWScaleNVX")) == NULL) || r;
- r = ((glUploadGpuMaskNVX = (PFNGLUPLOADGPUMASKNVXPROC)glewGetProcAddress((const GLubyte*)"glUploadGpuMaskNVX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NVX_gpu_multicast2 */
-
-#ifdef GL_NVX_linked_gpu_multicast
-
-static GLboolean _glewInit_GL_NVX_linked_gpu_multicast ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glLGPUCopyImageSubDataNVX = (PFNGLLGPUCOPYIMAGESUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUCopyImageSubDataNVX")) == NULL) || r;
- r = ((glLGPUInterlockNVX = (PFNGLLGPUINTERLOCKNVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUInterlockNVX")) == NULL) || r;
- r = ((glLGPUNamedBufferSubDataNVX = (PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUNamedBufferSubDataNVX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NVX_linked_gpu_multicast */
-
-#ifdef GL_NVX_progress_fence
-
-static GLboolean _glewInit_GL_NVX_progress_fence ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClientWaitSemaphoreui64NVX = (PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC)glewGetProcAddress((const GLubyte*)"glClientWaitSemaphoreui64NVX")) == NULL) || r;
- r = ((glSignalSemaphoreui64NVX = (PFNGLSIGNALSEMAPHOREUI64NVXPROC)glewGetProcAddress((const GLubyte*)"glSignalSemaphoreui64NVX")) == NULL) || r;
- r = ((glWaitSemaphoreui64NVX = (PFNGLWAITSEMAPHOREUI64NVXPROC)glewGetProcAddress((const GLubyte*)"glWaitSemaphoreui64NVX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NVX_progress_fence */
-
-#ifdef GL_NV_3dvision_settings
-
-static GLboolean _glewInit_GL_NV_3dvision_settings ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glStereoParameterfNV = (PFNGLSTEREOPARAMETERFNVPROC)glewGetProcAddress((const GLubyte*)"glStereoParameterfNV")) == NULL) || r;
- r = ((glStereoParameteriNV = (PFNGLSTEREOPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glStereoParameteriNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_3dvision_settings */
-
-#ifdef GL_NV_alpha_to_coverage_dither_control
-
-static GLboolean _glewInit_GL_NV_alpha_to_coverage_dither_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAlphaToCoverageDitherControlNV = (PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC)glewGetProcAddress((const GLubyte*)"glAlphaToCoverageDitherControlNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_alpha_to_coverage_dither_control */
-
-#ifdef GL_NV_bindless_multi_draw_indirect
-
-static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMultiDrawArraysIndirectBindlessNV = (PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectBindlessNV")) == NULL) || r;
- r = ((glMultiDrawElementsIndirectBindlessNV = (PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectBindlessNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_bindless_multi_draw_indirect */
-
-#ifdef GL_NV_bindless_multi_draw_indirect_count
-
-static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMultiDrawArraysIndirectBindlessCountNV = (PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectBindlessCountNV")) == NULL) || r;
- r = ((glMultiDrawElementsIndirectBindlessCountNV = (PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectBindlessCountNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_bindless_multi_draw_indirect_count */
-
-#ifdef GL_NV_bindless_texture
-
-static GLboolean _glewInit_GL_NV_bindless_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetImageHandleNV = (PFNGLGETIMAGEHANDLENVPROC)glewGetProcAddress((const GLubyte*)"glGetImageHandleNV")) == NULL) || r;
- r = ((glGetTextureHandleNV = (PFNGLGETTEXTUREHANDLENVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureHandleNV")) == NULL) || r;
- r = ((glGetTextureSamplerHandleNV = (PFNGLGETTEXTURESAMPLERHANDLENVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureSamplerHandleNV")) == NULL) || r;
- r = ((glIsImageHandleResidentNV = (PFNGLISIMAGEHANDLERESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glIsImageHandleResidentNV")) == NULL) || r;
- r = ((glIsTextureHandleResidentNV = (PFNGLISTEXTUREHANDLERESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glIsTextureHandleResidentNV")) == NULL) || r;
- r = ((glMakeImageHandleNonResidentNV = (PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeImageHandleNonResidentNV")) == NULL) || r;
- r = ((glMakeImageHandleResidentNV = (PFNGLMAKEIMAGEHANDLERESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeImageHandleResidentNV")) == NULL) || r;
- r = ((glMakeTextureHandleNonResidentNV = (PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeTextureHandleNonResidentNV")) == NULL) || r;
- r = ((glMakeTextureHandleResidentNV = (PFNGLMAKETEXTUREHANDLERESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeTextureHandleResidentNV")) == NULL) || r;
- r = ((glProgramUniformHandleui64NV = (PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64NV")) == NULL) || r;
- r = ((glProgramUniformHandleui64vNV = (PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64vNV")) == NULL) || r;
- r = ((glUniformHandleui64NV = (PFNGLUNIFORMHANDLEUI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64NV")) == NULL) || r;
- r = ((glUniformHandleui64vNV = (PFNGLUNIFORMHANDLEUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64vNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_bindless_texture */
-
-#ifdef GL_NV_blend_equation_advanced
-
-static GLboolean _glewInit_GL_NV_blend_equation_advanced ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendBarrierNV = (PFNGLBLENDBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glBlendBarrierNV")) == NULL) || r;
- r = ((glBlendParameteriNV = (PFNGLBLENDPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glBlendParameteriNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_blend_equation_advanced */
-
-#ifdef GL_NV_clip_space_w_scaling
-
-static GLboolean _glewInit_GL_NV_clip_space_w_scaling ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glViewportPositionWScaleNV = (PFNGLVIEWPORTPOSITIONWSCALENVPROC)glewGetProcAddress((const GLubyte*)"glViewportPositionWScaleNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_clip_space_w_scaling */
-
-#ifdef GL_NV_command_list
-
-static GLboolean _glewInit_GL_NV_command_list ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCallCommandListNV = (PFNGLCALLCOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glCallCommandListNV")) == NULL) || r;
- r = ((glCommandListSegmentsNV = (PFNGLCOMMANDLISTSEGMENTSNVPROC)glewGetProcAddress((const GLubyte*)"glCommandListSegmentsNV")) == NULL) || r;
- r = ((glCompileCommandListNV = (PFNGLCOMPILECOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glCompileCommandListNV")) == NULL) || r;
- r = ((glCreateCommandListsNV = (PFNGLCREATECOMMANDLISTSNVPROC)glewGetProcAddress((const GLubyte*)"glCreateCommandListsNV")) == NULL) || r;
- r = ((glCreateStatesNV = (PFNGLCREATESTATESNVPROC)glewGetProcAddress((const GLubyte*)"glCreateStatesNV")) == NULL) || r;
- r = ((glDeleteCommandListsNV = (PFNGLDELETECOMMANDLISTSNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteCommandListsNV")) == NULL) || r;
- r = ((glDeleteStatesNV = (PFNGLDELETESTATESNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteStatesNV")) == NULL) || r;
- r = ((glDrawCommandsAddressNV = (PFNGLDRAWCOMMANDSADDRESSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsAddressNV")) == NULL) || r;
- r = ((glDrawCommandsNV = (PFNGLDRAWCOMMANDSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsNV")) == NULL) || r;
- r = ((glDrawCommandsStatesAddressNV = (PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsStatesAddressNV")) == NULL) || r;
- r = ((glDrawCommandsStatesNV = (PFNGLDRAWCOMMANDSSTATESNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsStatesNV")) == NULL) || r;
- r = ((glGetCommandHeaderNV = (PFNGLGETCOMMANDHEADERNVPROC)glewGetProcAddress((const GLubyte*)"glGetCommandHeaderNV")) == NULL) || r;
- r = ((glGetStageIndexNV = (PFNGLGETSTAGEINDEXNVPROC)glewGetProcAddress((const GLubyte*)"glGetStageIndexNV")) == NULL) || r;
- r = ((glIsCommandListNV = (PFNGLISCOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glIsCommandListNV")) == NULL) || r;
- r = ((glIsStateNV = (PFNGLISSTATENVPROC)glewGetProcAddress((const GLubyte*)"glIsStateNV")) == NULL) || r;
- r = ((glListDrawCommandsStatesClientNV = (PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC)glewGetProcAddress((const GLubyte*)"glListDrawCommandsStatesClientNV")) == NULL) || r;
- r = ((glStateCaptureNV = (PFNGLSTATECAPTURENVPROC)glewGetProcAddress((const GLubyte*)"glStateCaptureNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_command_list */
-
-#ifdef GL_NV_conditional_render
-
-static GLboolean _glewInit_GL_NV_conditional_render ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginConditionalRenderNV = (PFNGLBEGINCONDITIONALRENDERNVPROC)glewGetProcAddress((const GLubyte*)"glBeginConditionalRenderNV")) == NULL) || r;
- r = ((glEndConditionalRenderNV = (PFNGLENDCONDITIONALRENDERNVPROC)glewGetProcAddress((const GLubyte*)"glEndConditionalRenderNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_conditional_render */
-
-#ifdef GL_NV_conservative_raster
-
-static GLboolean _glewInit_GL_NV_conservative_raster ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glSubpixelPrecisionBiasNV = (PFNGLSUBPIXELPRECISIONBIASNVPROC)glewGetProcAddress((const GLubyte*)"glSubpixelPrecisionBiasNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_conservative_raster */
-
-#ifdef GL_NV_conservative_raster_dilate
-
-static GLboolean _glewInit_GL_NV_conservative_raster_dilate ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glConservativeRasterParameterfNV = (PFNGLCONSERVATIVERASTERPARAMETERFNVPROC)glewGetProcAddress((const GLubyte*)"glConservativeRasterParameterfNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_conservative_raster_dilate */
-
-#ifdef GL_NV_conservative_raster_pre_snap_triangles
-
-static GLboolean _glewInit_GL_NV_conservative_raster_pre_snap_triangles ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glConservativeRasterParameteriNV = (PFNGLCONSERVATIVERASTERPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glConservativeRasterParameteriNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_conservative_raster_pre_snap_triangles */
-
-#ifdef GL_NV_copy_buffer
-
-static GLboolean _glewInit_GL_NV_copy_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCopyBufferSubDataNV = (PFNGLCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glCopyBufferSubDataNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_copy_buffer */
-
-#ifdef GL_NV_copy_image
-
-static GLboolean _glewInit_GL_NV_copy_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCopyImageSubDataNV = (PFNGLCOPYIMAGESUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glCopyImageSubDataNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_copy_image */
-
-#ifdef GL_NV_depth_buffer_float
-
-static GLboolean _glewInit_GL_NV_depth_buffer_float ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClearDepthdNV = (PFNGLCLEARDEPTHDNVPROC)glewGetProcAddress((const GLubyte*)"glClearDepthdNV")) == NULL) || r;
- r = ((glDepthBoundsdNV = (PFNGLDEPTHBOUNDSDNVPROC)glewGetProcAddress((const GLubyte*)"glDepthBoundsdNV")) == NULL) || r;
- r = ((glDepthRangedNV = (PFNGLDEPTHRANGEDNVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangedNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_depth_buffer_float */
-
-#ifdef GL_NV_draw_buffers
-
-static GLboolean _glewInit_GL_NV_draw_buffers ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawBuffersNV = (PFNGLDRAWBUFFERSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_draw_buffers */
-
-#ifdef GL_NV_draw_instanced
-
-static GLboolean _glewInit_GL_NV_draw_instanced ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawArraysInstancedNV = (PFNGLDRAWARRAYSINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedNV")) == NULL) || r;
- r = ((glDrawElementsInstancedNV = (PFNGLDRAWELEMENTSINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_draw_instanced */
-
-#ifdef GL_NV_draw_texture
-
-static GLboolean _glewInit_GL_NV_draw_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawTextureNV = (PFNGLDRAWTEXTURENVPROC)glewGetProcAddress((const GLubyte*)"glDrawTextureNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_draw_texture */
-
-#ifdef GL_NV_draw_vulkan_image
-
-static GLboolean _glewInit_GL_NV_draw_vulkan_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawVkImageNV = (PFNGLDRAWVKIMAGENVPROC)glewGetProcAddress((const GLubyte*)"glDrawVkImageNV")) == NULL) || r;
- r = ((glGetVkProcAddrNV = (PFNGLGETVKPROCADDRNVPROC)glewGetProcAddress((const GLubyte*)"glGetVkProcAddrNV")) == NULL) || r;
- r = ((glSignalVkFenceNV = (PFNGLSIGNALVKFENCENVPROC)glewGetProcAddress((const GLubyte*)"glSignalVkFenceNV")) == NULL) || r;
- r = ((glSignalVkSemaphoreNV = (PFNGLSIGNALVKSEMAPHORENVPROC)glewGetProcAddress((const GLubyte*)"glSignalVkSemaphoreNV")) == NULL) || r;
- r = ((glWaitVkSemaphoreNV = (PFNGLWAITVKSEMAPHORENVPROC)glewGetProcAddress((const GLubyte*)"glWaitVkSemaphoreNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_draw_vulkan_image */
-
-#ifdef GL_NV_evaluators
-
-static GLboolean _glewInit_GL_NV_evaluators ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glEvalMapsNV = (PFNGLEVALMAPSNVPROC)glewGetProcAddress((const GLubyte*)"glEvalMapsNV")) == NULL) || r;
- r = ((glGetMapAttribParameterfvNV = (PFNGLGETMAPATTRIBPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMapAttribParameterfvNV")) == NULL) || r;
- r = ((glGetMapAttribParameterivNV = (PFNGLGETMAPATTRIBPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMapAttribParameterivNV")) == NULL) || r;
- r = ((glGetMapControlPointsNV = (PFNGLGETMAPCONTROLPOINTSNVPROC)glewGetProcAddress((const GLubyte*)"glGetMapControlPointsNV")) == NULL) || r;
- r = ((glGetMapParameterfvNV = (PFNGLGETMAPPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMapParameterfvNV")) == NULL) || r;
- r = ((glGetMapParameterivNV = (PFNGLGETMAPPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMapParameterivNV")) == NULL) || r;
- r = ((glMapControlPointsNV = (PFNGLMAPCONTROLPOINTSNVPROC)glewGetProcAddress((const GLubyte*)"glMapControlPointsNV")) == NULL) || r;
- r = ((glMapParameterfvNV = (PFNGLMAPPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glMapParameterfvNV")) == NULL) || r;
- r = ((glMapParameterivNV = (PFNGLMAPPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glMapParameterivNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_evaluators */
-
-#ifdef GL_NV_explicit_multisample
-
-static GLboolean _glewInit_GL_NV_explicit_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetMultisamplefvNV = (PFNGLGETMULTISAMPLEFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMultisamplefvNV")) == NULL) || r;
- r = ((glSampleMaskIndexedNV = (PFNGLSAMPLEMASKINDEXEDNVPROC)glewGetProcAddress((const GLubyte*)"glSampleMaskIndexedNV")) == NULL) || r;
- r = ((glTexRenderbufferNV = (PFNGLTEXRENDERBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glTexRenderbufferNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_explicit_multisample */
-
-#ifdef GL_NV_fence
-
-static GLboolean _glewInit_GL_NV_fence ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDeleteFencesNV = (PFNGLDELETEFENCESNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteFencesNV")) == NULL) || r;
- r = ((glFinishFenceNV = (PFNGLFINISHFENCENVPROC)glewGetProcAddress((const GLubyte*)"glFinishFenceNV")) == NULL) || r;
- r = ((glGenFencesNV = (PFNGLGENFENCESNVPROC)glewGetProcAddress((const GLubyte*)"glGenFencesNV")) == NULL) || r;
- r = ((glGetFenceivNV = (PFNGLGETFENCEIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetFenceivNV")) == NULL) || r;
- r = ((glIsFenceNV = (PFNGLISFENCENVPROC)glewGetProcAddress((const GLubyte*)"glIsFenceNV")) == NULL) || r;
- r = ((glSetFenceNV = (PFNGLSETFENCENVPROC)glewGetProcAddress((const GLubyte*)"glSetFenceNV")) == NULL) || r;
- r = ((glTestFenceNV = (PFNGLTESTFENCENVPROC)glewGetProcAddress((const GLubyte*)"glTestFenceNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_fence */
-
-#ifdef GL_NV_fragment_coverage_to_color
-
-static GLboolean _glewInit_GL_NV_fragment_coverage_to_color ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFragmentCoverageColorNV = (PFNGLFRAGMENTCOVERAGECOLORNVPROC)glewGetProcAddress((const GLubyte*)"glFragmentCoverageColorNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_fragment_coverage_to_color */
-
-#ifdef GL_NV_fragment_program
-
-static GLboolean _glewInit_GL_NV_fragment_program ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetProgramNamedParameterdvNV = (PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramNamedParameterdvNV")) == NULL) || r;
- r = ((glGetProgramNamedParameterfvNV = (PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramNamedParameterfvNV")) == NULL) || r;
- r = ((glProgramNamedParameter4dNV = (PFNGLPROGRAMNAMEDPARAMETER4DNVPROC)glewGetProcAddress((const GLubyte*)"glProgramNamedParameter4dNV")) == NULL) || r;
- r = ((glProgramNamedParameter4dvNV = (PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramNamedParameter4dvNV")) == NULL) || r;
- r = ((glProgramNamedParameter4fNV = (PFNGLPROGRAMNAMEDPARAMETER4FNVPROC)glewGetProcAddress((const GLubyte*)"glProgramNamedParameter4fNV")) == NULL) || r;
- r = ((glProgramNamedParameter4fvNV = (PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramNamedParameter4fvNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_fragment_program */
-
-#ifdef GL_NV_framebuffer_blit
-
-static GLboolean _glewInit_GL_NV_framebuffer_blit ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlitFramebufferNV = (PFNGLBLITFRAMEBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glBlitFramebufferNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_framebuffer_blit */
-
-#ifdef GL_NV_framebuffer_multisample
-
-static GLboolean _glewInit_GL_NV_framebuffer_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glRenderbufferStorageMultisampleNV = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_framebuffer_multisample */
-
-#ifdef GL_NV_framebuffer_multisample_coverage
-
-static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glRenderbufferStorageMultisampleCoverageNV = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleCoverageNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_framebuffer_multisample_coverage */
-
-#ifdef GL_NV_geometry_program4
-
-static GLboolean _glewInit_GL_NV_geometry_program4 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glProgramVertexLimitNV = (PFNGLPROGRAMVERTEXLIMITNVPROC)glewGetProcAddress((const GLubyte*)"glProgramVertexLimitNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_geometry_program4 */
-
-#ifdef GL_NV_gpu_multicast
-
-static GLboolean _glewInit_GL_NV_gpu_multicast ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMulticastBarrierNV = (PFNGLMULTICASTBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBarrierNV")) == NULL) || r;
- r = ((glMulticastBlitFramebufferNV = (PFNGLMULTICASTBLITFRAMEBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBlitFramebufferNV")) == NULL) || r;
- r = ((glMulticastBufferSubDataNV = (PFNGLMULTICASTBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBufferSubDataNV")) == NULL) || r;
- r = ((glMulticastCopyBufferSubDataNV = (PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastCopyBufferSubDataNV")) == NULL) || r;
- r = ((glMulticastCopyImageSubDataNV = (PFNGLMULTICASTCOPYIMAGESUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastCopyImageSubDataNV")) == NULL) || r;
- r = ((glMulticastFramebufferSampleLocationsfvNV = (PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastFramebufferSampleLocationsfvNV")) == NULL) || r;
- r = ((glMulticastGetQueryObjecti64vNV = (PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjecti64vNV")) == NULL) || r;
- r = ((glMulticastGetQueryObjectivNV = (PFNGLMULTICASTGETQUERYOBJECTIVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectivNV")) == NULL) || r;
- r = ((glMulticastGetQueryObjectui64vNV = (PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectui64vNV")) == NULL) || r;
- r = ((glMulticastGetQueryObjectuivNV = (PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectuivNV")) == NULL) || r;
- r = ((glMulticastWaitSyncNV = (PFNGLMULTICASTWAITSYNCNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastWaitSyncNV")) == NULL) || r;
- r = ((glRenderGpuMaskNV = (PFNGLRENDERGPUMASKNVPROC)glewGetProcAddress((const GLubyte*)"glRenderGpuMaskNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_gpu_multicast */
-
-#ifdef GL_NV_gpu_program4
-
-static GLboolean _glewInit_GL_NV_gpu_program4 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glProgramEnvParameterI4iNV = (PFNGLPROGRAMENVPARAMETERI4INVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameterI4iNV")) == NULL) || r;
- r = ((glProgramEnvParameterI4ivNV = (PFNGLPROGRAMENVPARAMETERI4IVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameterI4ivNV")) == NULL) || r;
- r = ((glProgramEnvParameterI4uiNV = (PFNGLPROGRAMENVPARAMETERI4UINVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameterI4uiNV")) == NULL) || r;
- r = ((glProgramEnvParameterI4uivNV = (PFNGLPROGRAMENVPARAMETERI4UIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameterI4uivNV")) == NULL) || r;
- r = ((glProgramEnvParametersI4ivNV = (PFNGLPROGRAMENVPARAMETERSI4IVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParametersI4ivNV")) == NULL) || r;
- r = ((glProgramEnvParametersI4uivNV = (PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParametersI4uivNV")) == NULL) || r;
- r = ((glProgramLocalParameterI4iNV = (PFNGLPROGRAMLOCALPARAMETERI4INVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameterI4iNV")) == NULL) || r;
- r = ((glProgramLocalParameterI4ivNV = (PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameterI4ivNV")) == NULL) || r;
- r = ((glProgramLocalParameterI4uiNV = (PFNGLPROGRAMLOCALPARAMETERI4UINVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameterI4uiNV")) == NULL) || r;
- r = ((glProgramLocalParameterI4uivNV = (PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameterI4uivNV")) == NULL) || r;
- r = ((glProgramLocalParametersI4ivNV = (PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParametersI4ivNV")) == NULL) || r;
- r = ((glProgramLocalParametersI4uivNV = (PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParametersI4uivNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_gpu_program4 */
-
-#ifdef GL_NV_gpu_shader5
-
-static GLboolean _glewInit_GL_NV_gpu_shader5 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetUniformi64vNV = (PFNGLGETUNIFORMI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformi64vNV")) == NULL) || r;
- r = ((glGetUniformui64vNV = (PFNGLGETUNIFORMUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformui64vNV")) == NULL) || r;
- r = ((glProgramUniform1i64NV = (PFNGLPROGRAMUNIFORM1I64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1i64NV")) == NULL) || r;
- r = ((glProgramUniform1i64vNV = (PFNGLPROGRAMUNIFORM1I64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1i64vNV")) == NULL) || r;
- r = ((glProgramUniform1ui64NV = (PFNGLPROGRAMUNIFORM1UI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ui64NV")) == NULL) || r;
- r = ((glProgramUniform1ui64vNV = (PFNGLPROGRAMUNIFORM1UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ui64vNV")) == NULL) || r;
- r = ((glProgramUniform2i64NV = (PFNGLPROGRAMUNIFORM2I64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2i64NV")) == NULL) || r;
- r = ((glProgramUniform2i64vNV = (PFNGLPROGRAMUNIFORM2I64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2i64vNV")) == NULL) || r;
- r = ((glProgramUniform2ui64NV = (PFNGLPROGRAMUNIFORM2UI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ui64NV")) == NULL) || r;
- r = ((glProgramUniform2ui64vNV = (PFNGLPROGRAMUNIFORM2UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ui64vNV")) == NULL) || r;
- r = ((glProgramUniform3i64NV = (PFNGLPROGRAMUNIFORM3I64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3i64NV")) == NULL) || r;
- r = ((glProgramUniform3i64vNV = (PFNGLPROGRAMUNIFORM3I64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3i64vNV")) == NULL) || r;
- r = ((glProgramUniform3ui64NV = (PFNGLPROGRAMUNIFORM3UI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ui64NV")) == NULL) || r;
- r = ((glProgramUniform3ui64vNV = (PFNGLPROGRAMUNIFORM3UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ui64vNV")) == NULL) || r;
- r = ((glProgramUniform4i64NV = (PFNGLPROGRAMUNIFORM4I64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4i64NV")) == NULL) || r;
- r = ((glProgramUniform4i64vNV = (PFNGLPROGRAMUNIFORM4I64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4i64vNV")) == NULL) || r;
- r = ((glProgramUniform4ui64NV = (PFNGLPROGRAMUNIFORM4UI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ui64NV")) == NULL) || r;
- r = ((glProgramUniform4ui64vNV = (PFNGLPROGRAMUNIFORM4UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ui64vNV")) == NULL) || r;
- r = ((glUniform1i64NV = (PFNGLUNIFORM1I64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform1i64NV")) == NULL) || r;
- r = ((glUniform1i64vNV = (PFNGLUNIFORM1I64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform1i64vNV")) == NULL) || r;
- r = ((glUniform1ui64NV = (PFNGLUNIFORM1UI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform1ui64NV")) == NULL) || r;
- r = ((glUniform1ui64vNV = (PFNGLUNIFORM1UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform1ui64vNV")) == NULL) || r;
- r = ((glUniform2i64NV = (PFNGLUNIFORM2I64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform2i64NV")) == NULL) || r;
- r = ((glUniform2i64vNV = (PFNGLUNIFORM2I64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform2i64vNV")) == NULL) || r;
- r = ((glUniform2ui64NV = (PFNGLUNIFORM2UI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform2ui64NV")) == NULL) || r;
- r = ((glUniform2ui64vNV = (PFNGLUNIFORM2UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform2ui64vNV")) == NULL) || r;
- r = ((glUniform3i64NV = (PFNGLUNIFORM3I64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform3i64NV")) == NULL) || r;
- r = ((glUniform3i64vNV = (PFNGLUNIFORM3I64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform3i64vNV")) == NULL) || r;
- r = ((glUniform3ui64NV = (PFNGLUNIFORM3UI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform3ui64NV")) == NULL) || r;
- r = ((glUniform3ui64vNV = (PFNGLUNIFORM3UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform3ui64vNV")) == NULL) || r;
- r = ((glUniform4i64NV = (PFNGLUNIFORM4I64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform4i64NV")) == NULL) || r;
- r = ((glUniform4i64vNV = (PFNGLUNIFORM4I64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform4i64vNV")) == NULL) || r;
- r = ((glUniform4ui64NV = (PFNGLUNIFORM4UI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform4ui64NV")) == NULL) || r;
- r = ((glUniform4ui64vNV = (PFNGLUNIFORM4UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform4ui64vNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_gpu_shader5 */
-
-#ifdef GL_NV_half_float
-
-static GLboolean _glewInit_GL_NV_half_float ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glColor3hNV = (PFNGLCOLOR3HNVPROC)glewGetProcAddress((const GLubyte*)"glColor3hNV")) == NULL) || r;
- r = ((glColor3hvNV = (PFNGLCOLOR3HVNVPROC)glewGetProcAddress((const GLubyte*)"glColor3hvNV")) == NULL) || r;
- r = ((glColor4hNV = (PFNGLCOLOR4HNVPROC)glewGetProcAddress((const GLubyte*)"glColor4hNV")) == NULL) || r;
- r = ((glColor4hvNV = (PFNGLCOLOR4HVNVPROC)glewGetProcAddress((const GLubyte*)"glColor4hvNV")) == NULL) || r;
- r = ((glFogCoordhNV = (PFNGLFOGCOORDHNVPROC)glewGetProcAddress((const GLubyte*)"glFogCoordhNV")) == NULL) || r;
- r = ((glFogCoordhvNV = (PFNGLFOGCOORDHVNVPROC)glewGetProcAddress((const GLubyte*)"glFogCoordhvNV")) == NULL) || r;
- r = ((glMultiTexCoord1hNV = (PFNGLMULTITEXCOORD1HNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1hNV")) == NULL) || r;
- r = ((glMultiTexCoord1hvNV = (PFNGLMULTITEXCOORD1HVNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1hvNV")) == NULL) || r;
- r = ((glMultiTexCoord2hNV = (PFNGLMULTITEXCOORD2HNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2hNV")) == NULL) || r;
- r = ((glMultiTexCoord2hvNV = (PFNGLMULTITEXCOORD2HVNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2hvNV")) == NULL) || r;
- r = ((glMultiTexCoord3hNV = (PFNGLMULTITEXCOORD3HNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3hNV")) == NULL) || r;
- r = ((glMultiTexCoord3hvNV = (PFNGLMULTITEXCOORD3HVNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3hvNV")) == NULL) || r;
- r = ((glMultiTexCoord4hNV = (PFNGLMULTITEXCOORD4HNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4hNV")) == NULL) || r;
- r = ((glMultiTexCoord4hvNV = (PFNGLMULTITEXCOORD4HVNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4hvNV")) == NULL) || r;
- r = ((glNormal3hNV = (PFNGLNORMAL3HNVPROC)glewGetProcAddress((const GLubyte*)"glNormal3hNV")) == NULL) || r;
- r = ((glNormal3hvNV = (PFNGLNORMAL3HVNVPROC)glewGetProcAddress((const GLubyte*)"glNormal3hvNV")) == NULL) || r;
- r = ((glSecondaryColor3hNV = (PFNGLSECONDARYCOLOR3HNVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3hNV")) == NULL) || r;
- r = ((glSecondaryColor3hvNV = (PFNGLSECONDARYCOLOR3HVNVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3hvNV")) == NULL) || r;
- r = ((glTexCoord1hNV = (PFNGLTEXCOORD1HNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord1hNV")) == NULL) || r;
- r = ((glTexCoord1hvNV = (PFNGLTEXCOORD1HVNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord1hvNV")) == NULL) || r;
- r = ((glTexCoord2hNV = (PFNGLTEXCOORD2HNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2hNV")) == NULL) || r;
- r = ((glTexCoord2hvNV = (PFNGLTEXCOORD2HVNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2hvNV")) == NULL) || r;
- r = ((glTexCoord3hNV = (PFNGLTEXCOORD3HNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord3hNV")) == NULL) || r;
- r = ((glTexCoord3hvNV = (PFNGLTEXCOORD3HVNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord3hvNV")) == NULL) || r;
- r = ((glTexCoord4hNV = (PFNGLTEXCOORD4HNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4hNV")) == NULL) || r;
- r = ((glTexCoord4hvNV = (PFNGLTEXCOORD4HVNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4hvNV")) == NULL) || r;
- r = ((glVertex2hNV = (PFNGLVERTEX2HNVPROC)glewGetProcAddress((const GLubyte*)"glVertex2hNV")) == NULL) || r;
- r = ((glVertex2hvNV = (PFNGLVERTEX2HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertex2hvNV")) == NULL) || r;
- r = ((glVertex3hNV = (PFNGLVERTEX3HNVPROC)glewGetProcAddress((const GLubyte*)"glVertex3hNV")) == NULL) || r;
- r = ((glVertex3hvNV = (PFNGLVERTEX3HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertex3hvNV")) == NULL) || r;
- r = ((glVertex4hNV = (PFNGLVERTEX4HNVPROC)glewGetProcAddress((const GLubyte*)"glVertex4hNV")) == NULL) || r;
- r = ((glVertex4hvNV = (PFNGLVERTEX4HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertex4hvNV")) == NULL) || r;
- r = ((glVertexAttrib1hNV = (PFNGLVERTEXATTRIB1HNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1hNV")) == NULL) || r;
- r = ((glVertexAttrib1hvNV = (PFNGLVERTEXATTRIB1HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1hvNV")) == NULL) || r;
- r = ((glVertexAttrib2hNV = (PFNGLVERTEXATTRIB2HNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2hNV")) == NULL) || r;
- r = ((glVertexAttrib2hvNV = (PFNGLVERTEXATTRIB2HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2hvNV")) == NULL) || r;
- r = ((glVertexAttrib3hNV = (PFNGLVERTEXATTRIB3HNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3hNV")) == NULL) || r;
- r = ((glVertexAttrib3hvNV = (PFNGLVERTEXATTRIB3HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3hvNV")) == NULL) || r;
- r = ((glVertexAttrib4hNV = (PFNGLVERTEXATTRIB4HNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4hNV")) == NULL) || r;
- r = ((glVertexAttrib4hvNV = (PFNGLVERTEXATTRIB4HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4hvNV")) == NULL) || r;
- r = ((glVertexAttribs1hvNV = (PFNGLVERTEXATTRIBS1HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs1hvNV")) == NULL) || r;
- r = ((glVertexAttribs2hvNV = (PFNGLVERTEXATTRIBS2HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs2hvNV")) == NULL) || r;
- r = ((glVertexAttribs3hvNV = (PFNGLVERTEXATTRIBS3HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs3hvNV")) == NULL) || r;
- r = ((glVertexAttribs4hvNV = (PFNGLVERTEXATTRIBS4HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs4hvNV")) == NULL) || r;
- r = ((glVertexWeighthNV = (PFNGLVERTEXWEIGHTHNVPROC)glewGetProcAddress((const GLubyte*)"glVertexWeighthNV")) == NULL) || r;
- r = ((glVertexWeighthvNV = (PFNGLVERTEXWEIGHTHVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexWeighthvNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_half_float */
-
-#ifdef GL_NV_instanced_arrays
-
-static GLboolean _glewInit_GL_NV_instanced_arrays ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glVertexAttribDivisorNV = (PFNGLVERTEXATTRIBDIVISORNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_instanced_arrays */
-
-#ifdef GL_NV_internalformat_sample_query
-
-static GLboolean _glewInit_GL_NV_internalformat_sample_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetInternalformatSampleivNV = (PFNGLGETINTERNALFORMATSAMPLEIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetInternalformatSampleivNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_internalformat_sample_query */
-
-#ifdef GL_NV_memory_attachment
-
-static GLboolean _glewInit_GL_NV_memory_attachment ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBufferAttachMemoryNV = (PFNGLBUFFERATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glBufferAttachMemoryNV")) == NULL) || r;
- r = ((glGetMemoryObjectDetachedResourcesuivNV = (PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMemoryObjectDetachedResourcesuivNV")) == NULL) || r;
- r = ((glNamedBufferAttachMemoryNV = (PFNGLNAMEDBUFFERATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferAttachMemoryNV")) == NULL) || r;
- r = ((glResetMemoryObjectParameterNV = (PFNGLRESETMEMORYOBJECTPARAMETERNVPROC)glewGetProcAddress((const GLubyte*)"glResetMemoryObjectParameterNV")) == NULL) || r;
- r = ((glTexAttachMemoryNV = (PFNGLTEXATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glTexAttachMemoryNV")) == NULL) || r;
- r = ((glTextureAttachMemoryNV = (PFNGLTEXTUREATTACHMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glTextureAttachMemoryNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_memory_attachment */
-
-#ifdef GL_NV_mesh_shader
-
-static GLboolean _glewInit_GL_NV_mesh_shader ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDrawMeshTasksIndirectNV = (PFNGLDRAWMESHTASKSINDIRECTNVPROC)glewGetProcAddress((const GLubyte*)"glDrawMeshTasksIndirectNV")) == NULL) || r;
- r = ((glDrawMeshTasksNV = (PFNGLDRAWMESHTASKSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawMeshTasksNV")) == NULL) || r;
- r = ((glMultiDrawMeshTasksIndirectCountNV = (PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawMeshTasksIndirectCountNV")) == NULL) || r;
- r = ((glMultiDrawMeshTasksIndirectNV = (PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawMeshTasksIndirectNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_mesh_shader */
-
-#ifdef GL_NV_non_square_matrices
-
-static GLboolean _glewInit_GL_NV_non_square_matrices ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glUniformMatrix2x3fvNV = (PFNGLUNIFORMMATRIX2X3FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x3fvNV")) == NULL) || r;
- r = ((glUniformMatrix2x4fvNV = (PFNGLUNIFORMMATRIX2X4FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x4fvNV")) == NULL) || r;
- r = ((glUniformMatrix3x2fvNV = (PFNGLUNIFORMMATRIX3X2FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x2fvNV")) == NULL) || r;
- r = ((glUniformMatrix3x4fvNV = (PFNGLUNIFORMMATRIX3X4FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x4fvNV")) == NULL) || r;
- r = ((glUniformMatrix4x2fvNV = (PFNGLUNIFORMMATRIX4X2FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x2fvNV")) == NULL) || r;
- r = ((glUniformMatrix4x3fvNV = (PFNGLUNIFORMMATRIX4X3FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x3fvNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_non_square_matrices */
-
-#ifdef GL_NV_occlusion_query
-
-static GLboolean _glewInit_GL_NV_occlusion_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginOcclusionQueryNV = (PFNGLBEGINOCCLUSIONQUERYNVPROC)glewGetProcAddress((const GLubyte*)"glBeginOcclusionQueryNV")) == NULL) || r;
- r = ((glDeleteOcclusionQueriesNV = (PFNGLDELETEOCCLUSIONQUERIESNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteOcclusionQueriesNV")) == NULL) || r;
- r = ((glEndOcclusionQueryNV = (PFNGLENDOCCLUSIONQUERYNVPROC)glewGetProcAddress((const GLubyte*)"glEndOcclusionQueryNV")) == NULL) || r;
- r = ((glGenOcclusionQueriesNV = (PFNGLGENOCCLUSIONQUERIESNVPROC)glewGetProcAddress((const GLubyte*)"glGenOcclusionQueriesNV")) == NULL) || r;
- r = ((glGetOcclusionQueryivNV = (PFNGLGETOCCLUSIONQUERYIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetOcclusionQueryivNV")) == NULL) || r;
- r = ((glGetOcclusionQueryuivNV = (PFNGLGETOCCLUSIONQUERYUIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetOcclusionQueryuivNV")) == NULL) || r;
- r = ((glIsOcclusionQueryNV = (PFNGLISOCCLUSIONQUERYNVPROC)glewGetProcAddress((const GLubyte*)"glIsOcclusionQueryNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_occlusion_query */
-
-#ifdef GL_NV_parameter_buffer_object
-
-static GLboolean _glewInit_GL_NV_parameter_buffer_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glProgramBufferParametersIivNV = (PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramBufferParametersIivNV")) == NULL) || r;
- r = ((glProgramBufferParametersIuivNV = (PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramBufferParametersIuivNV")) == NULL) || r;
- r = ((glProgramBufferParametersfvNV = (PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramBufferParametersfvNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_parameter_buffer_object */
-
-#ifdef GL_NV_path_rendering
-
-static GLboolean _glewInit_GL_NV_path_rendering ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCopyPathNV = (PFNGLCOPYPATHNVPROC)glewGetProcAddress((const GLubyte*)"glCopyPathNV")) == NULL) || r;
- r = ((glCoverFillPathInstancedNV = (PFNGLCOVERFILLPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glCoverFillPathInstancedNV")) == NULL) || r;
- r = ((glCoverFillPathNV = (PFNGLCOVERFILLPATHNVPROC)glewGetProcAddress((const GLubyte*)"glCoverFillPathNV")) == NULL) || r;
- r = ((glCoverStrokePathInstancedNV = (PFNGLCOVERSTROKEPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glCoverStrokePathInstancedNV")) == NULL) || r;
- r = ((glCoverStrokePathNV = (PFNGLCOVERSTROKEPATHNVPROC)glewGetProcAddress((const GLubyte*)"glCoverStrokePathNV")) == NULL) || r;
- r = ((glDeletePathsNV = (PFNGLDELETEPATHSNVPROC)glewGetProcAddress((const GLubyte*)"glDeletePathsNV")) == NULL) || r;
- r = ((glGenPathsNV = (PFNGLGENPATHSNVPROC)glewGetProcAddress((const GLubyte*)"glGenPathsNV")) == NULL) || r;
- r = ((glGetPathColorGenfvNV = (PFNGLGETPATHCOLORGENFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathColorGenfvNV")) == NULL) || r;
- r = ((glGetPathColorGenivNV = (PFNGLGETPATHCOLORGENIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathColorGenivNV")) == NULL) || r;
- r = ((glGetPathCommandsNV = (PFNGLGETPATHCOMMANDSNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathCommandsNV")) == NULL) || r;
- r = ((glGetPathCoordsNV = (PFNGLGETPATHCOORDSNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathCoordsNV")) == NULL) || r;
- r = ((glGetPathDashArrayNV = (PFNGLGETPATHDASHARRAYNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathDashArrayNV")) == NULL) || r;
- r = ((glGetPathLengthNV = (PFNGLGETPATHLENGTHNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathLengthNV")) == NULL) || r;
- r = ((glGetPathMetricRangeNV = (PFNGLGETPATHMETRICRANGENVPROC)glewGetProcAddress((const GLubyte*)"glGetPathMetricRangeNV")) == NULL) || r;
- r = ((glGetPathMetricsNV = (PFNGLGETPATHMETRICSNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathMetricsNV")) == NULL) || r;
- r = ((glGetPathParameterfvNV = (PFNGLGETPATHPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathParameterfvNV")) == NULL) || r;
- r = ((glGetPathParameterivNV = (PFNGLGETPATHPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathParameterivNV")) == NULL) || r;
- r = ((glGetPathSpacingNV = (PFNGLGETPATHSPACINGNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathSpacingNV")) == NULL) || r;
- r = ((glGetPathTexGenfvNV = (PFNGLGETPATHTEXGENFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathTexGenfvNV")) == NULL) || r;
- r = ((glGetPathTexGenivNV = (PFNGLGETPATHTEXGENIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathTexGenivNV")) == NULL) || r;
- r = ((glGetProgramResourcefvNV = (PFNGLGETPROGRAMRESOURCEFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourcefvNV")) == NULL) || r;
- r = ((glInterpolatePathsNV = (PFNGLINTERPOLATEPATHSNVPROC)glewGetProcAddress((const GLubyte*)"glInterpolatePathsNV")) == NULL) || r;
- r = ((glIsPathNV = (PFNGLISPATHNVPROC)glewGetProcAddress((const GLubyte*)"glIsPathNV")) == NULL) || r;
- r = ((glIsPointInFillPathNV = (PFNGLISPOINTINFILLPATHNVPROC)glewGetProcAddress((const GLubyte*)"glIsPointInFillPathNV")) == NULL) || r;
- r = ((glIsPointInStrokePathNV = (PFNGLISPOINTINSTROKEPATHNVPROC)glewGetProcAddress((const GLubyte*)"glIsPointInStrokePathNV")) == NULL) || r;
- r = ((glMatrixLoad3x2fNV = (PFNGLMATRIXLOAD3X2FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoad3x2fNV")) == NULL) || r;
- r = ((glMatrixLoad3x3fNV = (PFNGLMATRIXLOAD3X3FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoad3x3fNV")) == NULL) || r;
- r = ((glMatrixLoadTranspose3x3fNV = (PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoadTranspose3x3fNV")) == NULL) || r;
- r = ((glMatrixMult3x2fNV = (PFNGLMATRIXMULT3X2FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixMult3x2fNV")) == NULL) || r;
- r = ((glMatrixMult3x3fNV = (PFNGLMATRIXMULT3X3FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixMult3x3fNV")) == NULL) || r;
- r = ((glMatrixMultTranspose3x3fNV = (PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixMultTranspose3x3fNV")) == NULL) || r;
- r = ((glPathColorGenNV = (PFNGLPATHCOLORGENNVPROC)glewGetProcAddress((const GLubyte*)"glPathColorGenNV")) == NULL) || r;
- r = ((glPathCommandsNV = (PFNGLPATHCOMMANDSNVPROC)glewGetProcAddress((const GLubyte*)"glPathCommandsNV")) == NULL) || r;
- r = ((glPathCoordsNV = (PFNGLPATHCOORDSNVPROC)glewGetProcAddress((const GLubyte*)"glPathCoordsNV")) == NULL) || r;
- r = ((glPathCoverDepthFuncNV = (PFNGLPATHCOVERDEPTHFUNCNVPROC)glewGetProcAddress((const GLubyte*)"glPathCoverDepthFuncNV")) == NULL) || r;
- r = ((glPathDashArrayNV = (PFNGLPATHDASHARRAYNVPROC)glewGetProcAddress((const GLubyte*)"glPathDashArrayNV")) == NULL) || r;
- r = ((glPathFogGenNV = (PFNGLPATHFOGGENNVPROC)glewGetProcAddress((const GLubyte*)"glPathFogGenNV")) == NULL) || r;
- r = ((glPathGlyphIndexArrayNV = (PFNGLPATHGLYPHINDEXARRAYNVPROC)glewGetProcAddress((const GLubyte*)"glPathGlyphIndexArrayNV")) == NULL) || r;
- r = ((glPathGlyphIndexRangeNV = (PFNGLPATHGLYPHINDEXRANGENVPROC)glewGetProcAddress((const GLubyte*)"glPathGlyphIndexRangeNV")) == NULL) || r;
- r = ((glPathGlyphRangeNV = (PFNGLPATHGLYPHRANGENVPROC)glewGetProcAddress((const GLubyte*)"glPathGlyphRangeNV")) == NULL) || r;
- r = ((glPathGlyphsNV = (PFNGLPATHGLYPHSNVPROC)glewGetProcAddress((const GLubyte*)"glPathGlyphsNV")) == NULL) || r;
- r = ((glPathMemoryGlyphIndexArrayNV = (PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC)glewGetProcAddress((const GLubyte*)"glPathMemoryGlyphIndexArrayNV")) == NULL) || r;
- r = ((glPathParameterfNV = (PFNGLPATHPARAMETERFNVPROC)glewGetProcAddress((const GLubyte*)"glPathParameterfNV")) == NULL) || r;
- r = ((glPathParameterfvNV = (PFNGLPATHPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glPathParameterfvNV")) == NULL) || r;
- r = ((glPathParameteriNV = (PFNGLPATHPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glPathParameteriNV")) == NULL) || r;
- r = ((glPathParameterivNV = (PFNGLPATHPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glPathParameterivNV")) == NULL) || r;
- r = ((glPathStencilDepthOffsetNV = (PFNGLPATHSTENCILDEPTHOFFSETNVPROC)glewGetProcAddress((const GLubyte*)"glPathStencilDepthOffsetNV")) == NULL) || r;
- r = ((glPathStencilFuncNV = (PFNGLPATHSTENCILFUNCNVPROC)glewGetProcAddress((const GLubyte*)"glPathStencilFuncNV")) == NULL) || r;
- r = ((glPathStringNV = (PFNGLPATHSTRINGNVPROC)glewGetProcAddress((const GLubyte*)"glPathStringNV")) == NULL) || r;
- r = ((glPathSubCommandsNV = (PFNGLPATHSUBCOMMANDSNVPROC)glewGetProcAddress((const GLubyte*)"glPathSubCommandsNV")) == NULL) || r;
- r = ((glPathSubCoordsNV = (PFNGLPATHSUBCOORDSNVPROC)glewGetProcAddress((const GLubyte*)"glPathSubCoordsNV")) == NULL) || r;
- r = ((glPathTexGenNV = (PFNGLPATHTEXGENNVPROC)glewGetProcAddress((const GLubyte*)"glPathTexGenNV")) == NULL) || r;
- r = ((glPointAlongPathNV = (PFNGLPOINTALONGPATHNVPROC)glewGetProcAddress((const GLubyte*)"glPointAlongPathNV")) == NULL) || r;
- r = ((glProgramPathFragmentInputGenNV = (PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC)glewGetProcAddress((const GLubyte*)"glProgramPathFragmentInputGenNV")) == NULL) || r;
- r = ((glStencilFillPathInstancedNV = (PFNGLSTENCILFILLPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glStencilFillPathInstancedNV")) == NULL) || r;
- r = ((glStencilFillPathNV = (PFNGLSTENCILFILLPATHNVPROC)glewGetProcAddress((const GLubyte*)"glStencilFillPathNV")) == NULL) || r;
- r = ((glStencilStrokePathInstancedNV = (PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glStencilStrokePathInstancedNV")) == NULL) || r;
- r = ((glStencilStrokePathNV = (PFNGLSTENCILSTROKEPATHNVPROC)glewGetProcAddress((const GLubyte*)"glStencilStrokePathNV")) == NULL) || r;
- r = ((glStencilThenCoverFillPathInstancedNV = (PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glStencilThenCoverFillPathInstancedNV")) == NULL) || r;
- r = ((glStencilThenCoverFillPathNV = (PFNGLSTENCILTHENCOVERFILLPATHNVPROC)glewGetProcAddress((const GLubyte*)"glStencilThenCoverFillPathNV")) == NULL) || r;
- r = ((glStencilThenCoverStrokePathInstancedNV = (PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glStencilThenCoverStrokePathInstancedNV")) == NULL) || r;
- r = ((glStencilThenCoverStrokePathNV = (PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC)glewGetProcAddress((const GLubyte*)"glStencilThenCoverStrokePathNV")) == NULL) || r;
- r = ((glTransformPathNV = (PFNGLTRANSFORMPATHNVPROC)glewGetProcAddress((const GLubyte*)"glTransformPathNV")) == NULL) || r;
- r = ((glWeightPathsNV = (PFNGLWEIGHTPATHSNVPROC)glewGetProcAddress((const GLubyte*)"glWeightPathsNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_path_rendering */
-
-#ifdef GL_NV_pixel_data_range
-
-static GLboolean _glewInit_GL_NV_pixel_data_range ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFlushPixelDataRangeNV = (PFNGLFLUSHPIXELDATARANGENVPROC)glewGetProcAddress((const GLubyte*)"glFlushPixelDataRangeNV")) == NULL) || r;
- r = ((glPixelDataRangeNV = (PFNGLPIXELDATARANGENVPROC)glewGetProcAddress((const GLubyte*)"glPixelDataRangeNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_pixel_data_range */
-
-#ifdef GL_NV_point_sprite
-
-static GLboolean _glewInit_GL_NV_point_sprite ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPointParameteriNV = (PFNGLPOINTPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glPointParameteriNV")) == NULL) || r;
- r = ((glPointParameterivNV = (PFNGLPOINTPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glPointParameterivNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_point_sprite */
-
-#ifdef GL_NV_polygon_mode
-
-static GLboolean _glewInit_GL_NV_polygon_mode ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPolygonModeNV = (PFNGLPOLYGONMODENVPROC)glewGetProcAddress((const GLubyte*)"glPolygonModeNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_polygon_mode */
-
-#ifdef GL_NV_present_video
-
-static GLboolean _glewInit_GL_NV_present_video ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetVideoi64vNV = (PFNGLGETVIDEOI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoi64vNV")) == NULL) || r;
- r = ((glGetVideoivNV = (PFNGLGETVIDEOIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoivNV")) == NULL) || r;
- r = ((glGetVideoui64vNV = (PFNGLGETVIDEOUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoui64vNV")) == NULL) || r;
- r = ((glGetVideouivNV = (PFNGLGETVIDEOUIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideouivNV")) == NULL) || r;
- r = ((glPresentFrameDualFillNV = (PFNGLPRESENTFRAMEDUALFILLNVPROC)glewGetProcAddress((const GLubyte*)"glPresentFrameDualFillNV")) == NULL) || r;
- r = ((glPresentFrameKeyedNV = (PFNGLPRESENTFRAMEKEYEDNVPROC)glewGetProcAddress((const GLubyte*)"glPresentFrameKeyedNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_present_video */
-
-#ifdef GL_NV_primitive_restart
-
-static GLboolean _glewInit_GL_NV_primitive_restart ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPrimitiveRestartIndexNV = (PFNGLPRIMITIVERESTARTINDEXNVPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveRestartIndexNV")) == NULL) || r;
- r = ((glPrimitiveRestartNV = (PFNGLPRIMITIVERESTARTNVPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveRestartNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_primitive_restart */
-
-#ifdef GL_NV_read_buffer
-
-static GLboolean _glewInit_GL_NV_read_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glReadBufferNV = (PFNGLREADBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glReadBufferNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_read_buffer */
-
-#ifdef GL_NV_register_combiners
-
-static GLboolean _glewInit_GL_NV_register_combiners ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCombinerInputNV = (PFNGLCOMBINERINPUTNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerInputNV")) == NULL) || r;
- r = ((glCombinerOutputNV = (PFNGLCOMBINEROUTPUTNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerOutputNV")) == NULL) || r;
- r = ((glCombinerParameterfNV = (PFNGLCOMBINERPARAMETERFNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerParameterfNV")) == NULL) || r;
- r = ((glCombinerParameterfvNV = (PFNGLCOMBINERPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerParameterfvNV")) == NULL) || r;
- r = ((glCombinerParameteriNV = (PFNGLCOMBINERPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glCombinerParameteriNV")) == NULL) || r;
- r = ((glCombinerParameterivNV = (PFNGLCOMBINERPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerParameterivNV")) == NULL) || r;
- r = ((glFinalCombinerInputNV = (PFNGLFINALCOMBINERINPUTNVPROC)glewGetProcAddress((const GLubyte*)"glFinalCombinerInputNV")) == NULL) || r;
- r = ((glGetCombinerInputParameterfvNV = (PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetCombinerInputParameterfvNV")) == NULL) || r;
- r = ((glGetCombinerInputParameterivNV = (PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetCombinerInputParameterivNV")) == NULL) || r;
- r = ((glGetCombinerOutputParameterfvNV = (PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetCombinerOutputParameterfvNV")) == NULL) || r;
- r = ((glGetCombinerOutputParameterivNV = (PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetCombinerOutputParameterivNV")) == NULL) || r;
- r = ((glGetFinalCombinerInputParameterfvNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetFinalCombinerInputParameterfvNV")) == NULL) || r;
- r = ((glGetFinalCombinerInputParameterivNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetFinalCombinerInputParameterivNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_register_combiners */
-
-#ifdef GL_NV_register_combiners2
-
-static GLboolean _glewInit_GL_NV_register_combiners2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCombinerStageParameterfvNV = (PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerStageParameterfvNV")) == NULL) || r;
- r = ((glGetCombinerStageParameterfvNV = (PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetCombinerStageParameterfvNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_register_combiners2 */
-
-#ifdef GL_NV_sample_locations
-
-static GLboolean _glewInit_GL_NV_sample_locations ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferSampleLocationsfvNV = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glFramebufferSampleLocationsfvNV")) == NULL) || r;
- r = ((glNamedFramebufferSampleLocationsfvNV = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferSampleLocationsfvNV")) == NULL) || r;
- r = ((glResolveDepthValuesNV = (PFNGLRESOLVEDEPTHVALUESNVPROC)glewGetProcAddress((const GLubyte*)"glResolveDepthValuesNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_sample_locations */
-
-#ifdef GL_NV_scissor_exclusive
-
-static GLboolean _glewInit_GL_NV_scissor_exclusive ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glScissorExclusiveArrayvNV = (PFNGLSCISSOREXCLUSIVEARRAYVNVPROC)glewGetProcAddress((const GLubyte*)"glScissorExclusiveArrayvNV")) == NULL) || r;
- r = ((glScissorExclusiveNV = (PFNGLSCISSOREXCLUSIVENVPROC)glewGetProcAddress((const GLubyte*)"glScissorExclusiveNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_scissor_exclusive */
-
-#ifdef GL_NV_shader_buffer_load
-
-static GLboolean _glewInit_GL_NV_shader_buffer_load ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetBufferParameterui64vNV = (PFNGLGETBUFFERPARAMETERUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetBufferParameterui64vNV")) == NULL) || r;
- r = ((glGetIntegerui64vNV = (PFNGLGETINTEGERUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetIntegerui64vNV")) == NULL) || r;
- r = ((glGetNamedBufferParameterui64vNV = (PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferParameterui64vNV")) == NULL) || r;
- r = ((glIsBufferResidentNV = (PFNGLISBUFFERRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glIsBufferResidentNV")) == NULL) || r;
- r = ((glIsNamedBufferResidentNV = (PFNGLISNAMEDBUFFERRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glIsNamedBufferResidentNV")) == NULL) || r;
- r = ((glMakeBufferNonResidentNV = (PFNGLMAKEBUFFERNONRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeBufferNonResidentNV")) == NULL) || r;
- r = ((glMakeBufferResidentNV = (PFNGLMAKEBUFFERRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeBufferResidentNV")) == NULL) || r;
- r = ((glMakeNamedBufferNonResidentNV = (PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeNamedBufferNonResidentNV")) == NULL) || r;
- r = ((glMakeNamedBufferResidentNV = (PFNGLMAKENAMEDBUFFERRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeNamedBufferResidentNV")) == NULL) || r;
- r = ((glProgramUniformui64NV = (PFNGLPROGRAMUNIFORMUI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformui64NV")) == NULL) || r;
- r = ((glProgramUniformui64vNV = (PFNGLPROGRAMUNIFORMUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformui64vNV")) == NULL) || r;
- r = ((glUniformui64NV = (PFNGLUNIFORMUI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniformui64NV")) == NULL) || r;
- r = ((glUniformui64vNV = (PFNGLUNIFORMUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniformui64vNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_shader_buffer_load */
-
-#ifdef GL_NV_shading_rate_image
-
-static GLboolean _glewInit_GL_NV_shading_rate_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindShadingRateImageNV = (PFNGLBINDSHADINGRATEIMAGENVPROC)glewGetProcAddress((const GLubyte*)"glBindShadingRateImageNV")) == NULL) || r;
- r = ((glGetShadingRateImagePaletteNV = (PFNGLGETSHADINGRATEIMAGEPALETTENVPROC)glewGetProcAddress((const GLubyte*)"glGetShadingRateImagePaletteNV")) == NULL) || r;
- r = ((glGetShadingRateSampleLocationivNV = (PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetShadingRateSampleLocationivNV")) == NULL) || r;
- r = ((glShadingRateImageBarrierNV = (PFNGLSHADINGRATEIMAGEBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glShadingRateImageBarrierNV")) == NULL) || r;
- r = ((glShadingRateImagePaletteNV = (PFNGLSHADINGRATEIMAGEPALETTENVPROC)glewGetProcAddress((const GLubyte*)"glShadingRateImagePaletteNV")) == NULL) || r;
- r = ((glShadingRateSampleOrderCustomNV = (PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC)glewGetProcAddress((const GLubyte*)"glShadingRateSampleOrderCustomNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_shading_rate_image */
-
-#ifdef GL_NV_texture_array
-
-static GLboolean _glewInit_GL_NV_texture_array ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCompressedTexImage3DNV = (PFNGLCOMPRESSEDTEXIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage3DNV")) == NULL) || r;
- r = ((glCompressedTexSubImage3DNV = (PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage3DNV")) == NULL) || r;
- r = ((glCopyTexSubImage3DNV = (PFNGLCOPYTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage3DNV")) == NULL) || r;
- r = ((glFramebufferTextureLayerNV = (PFNGLFRAMEBUFFERTEXTURELAYERNVPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayerNV")) == NULL) || r;
- r = ((glTexImage3DNV = (PFNGLTEXIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DNV")) == NULL) || r;
- r = ((glTexSubImage3DNV = (PFNGLTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage3DNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_texture_array */
-
-#ifdef GL_NV_texture_barrier
-
-static GLboolean _glewInit_GL_NV_texture_barrier ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTextureBarrierNV = (PFNGLTEXTUREBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glTextureBarrierNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_texture_barrier */
-
-#ifdef GL_NV_texture_multisample
-
-static GLboolean _glewInit_GL_NV_texture_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexImage2DMultisampleCoverageNV = (PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC)glewGetProcAddress((const GLubyte*)"glTexImage2DMultisampleCoverageNV")) == NULL) || r;
- r = ((glTexImage3DMultisampleCoverageNV = (PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DMultisampleCoverageNV")) == NULL) || r;
- r = ((glTextureImage2DMultisampleCoverageNV = (PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC)glewGetProcAddress((const GLubyte*)"glTextureImage2DMultisampleCoverageNV")) == NULL) || r;
- r = ((glTextureImage2DMultisampleNV = (PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC)glewGetProcAddress((const GLubyte*)"glTextureImage2DMultisampleNV")) == NULL) || r;
- r = ((glTextureImage3DMultisampleCoverageNV = (PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC)glewGetProcAddress((const GLubyte*)"glTextureImage3DMultisampleCoverageNV")) == NULL) || r;
- r = ((glTextureImage3DMultisampleNV = (PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC)glewGetProcAddress((const GLubyte*)"glTextureImage3DMultisampleNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_texture_multisample */
-
-#ifdef GL_NV_transform_feedback
-
-static GLboolean _glewInit_GL_NV_transform_feedback ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glActiveVaryingNV = (PFNGLACTIVEVARYINGNVPROC)glewGetProcAddress((const GLubyte*)"glActiveVaryingNV")) == NULL) || r;
- r = ((glBeginTransformFeedbackNV = (PFNGLBEGINTRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glBeginTransformFeedbackNV")) == NULL) || r;
- r = ((glBindBufferBaseNV = (PFNGLBINDBUFFERBASENVPROC)glewGetProcAddress((const GLubyte*)"glBindBufferBaseNV")) == NULL) || r;
- r = ((glBindBufferOffsetNV = (PFNGLBINDBUFFEROFFSETNVPROC)glewGetProcAddress((const GLubyte*)"glBindBufferOffsetNV")) == NULL) || r;
- r = ((glBindBufferRangeNV = (PFNGLBINDBUFFERRANGENVPROC)glewGetProcAddress((const GLubyte*)"glBindBufferRangeNV")) == NULL) || r;
- r = ((glEndTransformFeedbackNV = (PFNGLENDTRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glEndTransformFeedbackNV")) == NULL) || r;
- r = ((glGetActiveVaryingNV = (PFNGLGETACTIVEVARYINGNVPROC)glewGetProcAddress((const GLubyte*)"glGetActiveVaryingNV")) == NULL) || r;
- r = ((glGetTransformFeedbackVaryingNV = (PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbackVaryingNV")) == NULL) || r;
- r = ((glGetVaryingLocationNV = (PFNGLGETVARYINGLOCATIONNVPROC)glewGetProcAddress((const GLubyte*)"glGetVaryingLocationNV")) == NULL) || r;
- r = ((glTransformFeedbackAttribsNV = (PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackAttribsNV")) == NULL) || r;
- r = ((glTransformFeedbackVaryingsNV = (PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackVaryingsNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_transform_feedback */
-
-#ifdef GL_NV_transform_feedback2
-
-static GLboolean _glewInit_GL_NV_transform_feedback2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindTransformFeedbackNV = (PFNGLBINDTRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glBindTransformFeedbackNV")) == NULL) || r;
- r = ((glDeleteTransformFeedbacksNV = (PFNGLDELETETRANSFORMFEEDBACKSNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteTransformFeedbacksNV")) == NULL) || r;
- r = ((glDrawTransformFeedbackNV = (PFNGLDRAWTRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackNV")) == NULL) || r;
- r = ((glGenTransformFeedbacksNV = (PFNGLGENTRANSFORMFEEDBACKSNVPROC)glewGetProcAddress((const GLubyte*)"glGenTransformFeedbacksNV")) == NULL) || r;
- r = ((glIsTransformFeedbackNV = (PFNGLISTRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glIsTransformFeedbackNV")) == NULL) || r;
- r = ((glPauseTransformFeedbackNV = (PFNGLPAUSETRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glPauseTransformFeedbackNV")) == NULL) || r;
- r = ((glResumeTransformFeedbackNV = (PFNGLRESUMETRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glResumeTransformFeedbackNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_transform_feedback2 */
-
-#ifdef GL_NV_vdpau_interop
-
-static GLboolean _glewInit_GL_NV_vdpau_interop ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glVDPAUFiniNV = (PFNGLVDPAUFININVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUFiniNV")) == NULL) || r;
- r = ((glVDPAUGetSurfaceivNV = (PFNGLVDPAUGETSURFACEIVNVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUGetSurfaceivNV")) == NULL) || r;
- r = ((glVDPAUInitNV = (PFNGLVDPAUINITNVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUInitNV")) == NULL) || r;
- r = ((glVDPAUIsSurfaceNV = (PFNGLVDPAUISSURFACENVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUIsSurfaceNV")) == NULL) || r;
- r = ((glVDPAUMapSurfacesNV = (PFNGLVDPAUMAPSURFACESNVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUMapSurfacesNV")) == NULL) || r;
- r = ((glVDPAURegisterOutputSurfaceNV = (PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC)glewGetProcAddress((const GLubyte*)"glVDPAURegisterOutputSurfaceNV")) == NULL) || r;
- r = ((glVDPAURegisterVideoSurfaceNV = (PFNGLVDPAUREGISTERVIDEOSURFACENVPROC)glewGetProcAddress((const GLubyte*)"glVDPAURegisterVideoSurfaceNV")) == NULL) || r;
- r = ((glVDPAUSurfaceAccessNV = (PFNGLVDPAUSURFACEACCESSNVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUSurfaceAccessNV")) == NULL) || r;
- r = ((glVDPAUUnmapSurfacesNV = (PFNGLVDPAUUNMAPSURFACESNVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUUnmapSurfacesNV")) == NULL) || r;
- r = ((glVDPAUUnregisterSurfaceNV = (PFNGLVDPAUUNREGISTERSURFACENVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUUnregisterSurfaceNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_vdpau_interop */
-
-#ifdef GL_NV_vdpau_interop2
-
-static GLboolean _glewInit_GL_NV_vdpau_interop2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glVDPAURegisterVideoSurfaceWithPictureStructureNV = (PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC)glewGetProcAddress((const GLubyte*)"glVDPAURegisterVideoSurfaceWithPictureStructureNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_vdpau_interop2 */
-
-#ifdef GL_NV_vertex_array_range
-
-static GLboolean _glewInit_GL_NV_vertex_array_range ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFlushVertexArrayRangeNV = (PFNGLFLUSHVERTEXARRAYRANGENVPROC)glewGetProcAddress((const GLubyte*)"glFlushVertexArrayRangeNV")) == NULL) || r;
- r = ((glVertexArrayRangeNV = (PFNGLVERTEXARRAYRANGENVPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayRangeNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_vertex_array_range */
-
-#ifdef GL_NV_vertex_attrib_integer_64bit
-
-static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetVertexAttribLi64vNV = (PFNGLGETVERTEXATTRIBLI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribLi64vNV")) == NULL) || r;
- r = ((glGetVertexAttribLui64vNV = (PFNGLGETVERTEXATTRIBLUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribLui64vNV")) == NULL) || r;
- r = ((glVertexAttribL1i64NV = (PFNGLVERTEXATTRIBL1I64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1i64NV")) == NULL) || r;
- r = ((glVertexAttribL1i64vNV = (PFNGLVERTEXATTRIBL1I64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1i64vNV")) == NULL) || r;
- r = ((glVertexAttribL1ui64NV = (PFNGLVERTEXATTRIBL1UI64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1ui64NV")) == NULL) || r;
- r = ((glVertexAttribL1ui64vNV = (PFNGLVERTEXATTRIBL1UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1ui64vNV")) == NULL) || r;
- r = ((glVertexAttribL2i64NV = (PFNGLVERTEXATTRIBL2I64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2i64NV")) == NULL) || r;
- r = ((glVertexAttribL2i64vNV = (PFNGLVERTEXATTRIBL2I64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2i64vNV")) == NULL) || r;
- r = ((glVertexAttribL2ui64NV = (PFNGLVERTEXATTRIBL2UI64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2ui64NV")) == NULL) || r;
- r = ((glVertexAttribL2ui64vNV = (PFNGLVERTEXATTRIBL2UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2ui64vNV")) == NULL) || r;
- r = ((glVertexAttribL3i64NV = (PFNGLVERTEXATTRIBL3I64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3i64NV")) == NULL) || r;
- r = ((glVertexAttribL3i64vNV = (PFNGLVERTEXATTRIBL3I64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3i64vNV")) == NULL) || r;
- r = ((glVertexAttribL3ui64NV = (PFNGLVERTEXATTRIBL3UI64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3ui64NV")) == NULL) || r;
- r = ((glVertexAttribL3ui64vNV = (PFNGLVERTEXATTRIBL3UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3ui64vNV")) == NULL) || r;
- r = ((glVertexAttribL4i64NV = (PFNGLVERTEXATTRIBL4I64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4i64NV")) == NULL) || r;
- r = ((glVertexAttribL4i64vNV = (PFNGLVERTEXATTRIBL4I64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4i64vNV")) == NULL) || r;
- r = ((glVertexAttribL4ui64NV = (PFNGLVERTEXATTRIBL4UI64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4ui64NV")) == NULL) || r;
- r = ((glVertexAttribL4ui64vNV = (PFNGLVERTEXATTRIBL4UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4ui64vNV")) == NULL) || r;
- r = ((glVertexAttribLFormatNV = (PFNGLVERTEXATTRIBLFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribLFormatNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_vertex_attrib_integer_64bit */
-
-#ifdef GL_NV_vertex_buffer_unified_memory
-
-static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBufferAddressRangeNV = (PFNGLBUFFERADDRESSRANGENVPROC)glewGetProcAddress((const GLubyte*)"glBufferAddressRangeNV")) == NULL) || r;
- r = ((glColorFormatNV = (PFNGLCOLORFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glColorFormatNV")) == NULL) || r;
- r = ((glEdgeFlagFormatNV = (PFNGLEDGEFLAGFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glEdgeFlagFormatNV")) == NULL) || r;
- r = ((glFogCoordFormatNV = (PFNGLFOGCOORDFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glFogCoordFormatNV")) == NULL) || r;
- r = ((glGetIntegerui64i_vNV = (PFNGLGETINTEGERUI64I_VNVPROC)glewGetProcAddress((const GLubyte*)"glGetIntegerui64i_vNV")) == NULL) || r;
- r = ((glIndexFormatNV = (PFNGLINDEXFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glIndexFormatNV")) == NULL) || r;
- r = ((glNormalFormatNV = (PFNGLNORMALFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glNormalFormatNV")) == NULL) || r;
- r = ((glSecondaryColorFormatNV = (PFNGLSECONDARYCOLORFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorFormatNV")) == NULL) || r;
- r = ((glTexCoordFormatNV = (PFNGLTEXCOORDFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoordFormatNV")) == NULL) || r;
- r = ((glVertexAttribFormatNV = (PFNGLVERTEXATTRIBFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribFormatNV")) == NULL) || r;
- r = ((glVertexAttribIFormatNV = (PFNGLVERTEXATTRIBIFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribIFormatNV")) == NULL) || r;
- r = ((glVertexFormatNV = (PFNGLVERTEXFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glVertexFormatNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_vertex_buffer_unified_memory */
-
-#ifdef GL_NV_vertex_program
-
-static GLboolean _glewInit_GL_NV_vertex_program ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAreProgramsResidentNV = (PFNGLAREPROGRAMSRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glAreProgramsResidentNV")) == NULL) || r;
- r = ((glBindProgramNV = (PFNGLBINDPROGRAMNVPROC)glewGetProcAddress((const GLubyte*)"glBindProgramNV")) == NULL) || r;
- r = ((glDeleteProgramsNV = (PFNGLDELETEPROGRAMSNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteProgramsNV")) == NULL) || r;
- r = ((glExecuteProgramNV = (PFNGLEXECUTEPROGRAMNVPROC)glewGetProcAddress((const GLubyte*)"glExecuteProgramNV")) == NULL) || r;
- r = ((glGenProgramsNV = (PFNGLGENPROGRAMSNVPROC)glewGetProcAddress((const GLubyte*)"glGenProgramsNV")) == NULL) || r;
- r = ((glGetProgramParameterdvNV = (PFNGLGETPROGRAMPARAMETERDVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramParameterdvNV")) == NULL) || r;
- r = ((glGetProgramParameterfvNV = (PFNGLGETPROGRAMPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramParameterfvNV")) == NULL) || r;
- r = ((glGetProgramStringNV = (PFNGLGETPROGRAMSTRINGNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramStringNV")) == NULL) || r;
- r = ((glGetProgramivNV = (PFNGLGETPROGRAMIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramivNV")) == NULL) || r;
- r = ((glGetTrackMatrixivNV = (PFNGLGETTRACKMATRIXIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetTrackMatrixivNV")) == NULL) || r;
- r = ((glGetVertexAttribPointervNV = (PFNGLGETVERTEXATTRIBPOINTERVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribPointervNV")) == NULL) || r;
- r = ((glGetVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribdvNV")) == NULL) || r;
- r = ((glGetVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribfvNV")) == NULL) || r;
- r = ((glGetVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribivNV")) == NULL) || r;
- r = ((glIsProgramNV = (PFNGLISPROGRAMNVPROC)glewGetProcAddress((const GLubyte*)"glIsProgramNV")) == NULL) || r;
- r = ((glLoadProgramNV = (PFNGLLOADPROGRAMNVPROC)glewGetProcAddress((const GLubyte*)"glLoadProgramNV")) == NULL) || r;
- r = ((glProgramParameter4dNV = (PFNGLPROGRAMPARAMETER4DNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameter4dNV")) == NULL) || r;
- r = ((glProgramParameter4dvNV = (PFNGLPROGRAMPARAMETER4DVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameter4dvNV")) == NULL) || r;
- r = ((glProgramParameter4fNV = (PFNGLPROGRAMPARAMETER4FNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameter4fNV")) == NULL) || r;
- r = ((glProgramParameter4fvNV = (PFNGLPROGRAMPARAMETER4FVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameter4fvNV")) == NULL) || r;
- r = ((glProgramParameters4dvNV = (PFNGLPROGRAMPARAMETERS4DVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameters4dvNV")) == NULL) || r;
- r = ((glProgramParameters4fvNV = (PFNGLPROGRAMPARAMETERS4FVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameters4fvNV")) == NULL) || r;
- r = ((glRequestResidentProgramsNV = (PFNGLREQUESTRESIDENTPROGRAMSNVPROC)glewGetProcAddress((const GLubyte*)"glRequestResidentProgramsNV")) == NULL) || r;
- r = ((glTrackMatrixNV = (PFNGLTRACKMATRIXNVPROC)glewGetProcAddress((const GLubyte*)"glTrackMatrixNV")) == NULL) || r;
- r = ((glVertexAttrib1dNV = (PFNGLVERTEXATTRIB1DNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1dNV")) == NULL) || r;
- r = ((glVertexAttrib1dvNV = (PFNGLVERTEXATTRIB1DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1dvNV")) == NULL) || r;
- r = ((glVertexAttrib1fNV = (PFNGLVERTEXATTRIB1FNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1fNV")) == NULL) || r;
- r = ((glVertexAttrib1fvNV = (PFNGLVERTEXATTRIB1FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1fvNV")) == NULL) || r;
- r = ((glVertexAttrib1sNV = (PFNGLVERTEXATTRIB1SNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1sNV")) == NULL) || r;
- r = ((glVertexAttrib1svNV = (PFNGLVERTEXATTRIB1SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1svNV")) == NULL) || r;
- r = ((glVertexAttrib2dNV = (PFNGLVERTEXATTRIB2DNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2dNV")) == NULL) || r;
- r = ((glVertexAttrib2dvNV = (PFNGLVERTEXATTRIB2DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2dvNV")) == NULL) || r;
- r = ((glVertexAttrib2fNV = (PFNGLVERTEXATTRIB2FNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2fNV")) == NULL) || r;
- r = ((glVertexAttrib2fvNV = (PFNGLVERTEXATTRIB2FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2fvNV")) == NULL) || r;
- r = ((glVertexAttrib2sNV = (PFNGLVERTEXATTRIB2SNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2sNV")) == NULL) || r;
- r = ((glVertexAttrib2svNV = (PFNGLVERTEXATTRIB2SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2svNV")) == NULL) || r;
- r = ((glVertexAttrib3dNV = (PFNGLVERTEXATTRIB3DNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3dNV")) == NULL) || r;
- r = ((glVertexAttrib3dvNV = (PFNGLVERTEXATTRIB3DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3dvNV")) == NULL) || r;
- r = ((glVertexAttrib3fNV = (PFNGLVERTEXATTRIB3FNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3fNV")) == NULL) || r;
- r = ((glVertexAttrib3fvNV = (PFNGLVERTEXATTRIB3FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3fvNV")) == NULL) || r;
- r = ((glVertexAttrib3sNV = (PFNGLVERTEXATTRIB3SNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3sNV")) == NULL) || r;
- r = ((glVertexAttrib3svNV = (PFNGLVERTEXATTRIB3SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3svNV")) == NULL) || r;
- r = ((glVertexAttrib4dNV = (PFNGLVERTEXATTRIB4DNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4dNV")) == NULL) || r;
- r = ((glVertexAttrib4dvNV = (PFNGLVERTEXATTRIB4DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4dvNV")) == NULL) || r;
- r = ((glVertexAttrib4fNV = (PFNGLVERTEXATTRIB4FNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4fNV")) == NULL) || r;
- r = ((glVertexAttrib4fvNV = (PFNGLVERTEXATTRIB4FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4fvNV")) == NULL) || r;
- r = ((glVertexAttrib4sNV = (PFNGLVERTEXATTRIB4SNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4sNV")) == NULL) || r;
- r = ((glVertexAttrib4svNV = (PFNGLVERTEXATTRIB4SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4svNV")) == NULL) || r;
- r = ((glVertexAttrib4ubNV = (PFNGLVERTEXATTRIB4UBNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4ubNV")) == NULL) || r;
- r = ((glVertexAttrib4ubvNV = (PFNGLVERTEXATTRIB4UBVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4ubvNV")) == NULL) || r;
- r = ((glVertexAttribPointerNV = (PFNGLVERTEXATTRIBPOINTERNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribPointerNV")) == NULL) || r;
- r = ((glVertexAttribs1dvNV = (PFNGLVERTEXATTRIBS1DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs1dvNV")) == NULL) || r;
- r = ((glVertexAttribs1fvNV = (PFNGLVERTEXATTRIBS1FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs1fvNV")) == NULL) || r;
- r = ((glVertexAttribs1svNV = (PFNGLVERTEXATTRIBS1SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs1svNV")) == NULL) || r;
- r = ((glVertexAttribs2dvNV = (PFNGLVERTEXATTRIBS2DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs2dvNV")) == NULL) || r;
- r = ((glVertexAttribs2fvNV = (PFNGLVERTEXATTRIBS2FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs2fvNV")) == NULL) || r;
- r = ((glVertexAttribs2svNV = (PFNGLVERTEXATTRIBS2SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs2svNV")) == NULL) || r;
- r = ((glVertexAttribs3dvNV = (PFNGLVERTEXATTRIBS3DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs3dvNV")) == NULL) || r;
- r = ((glVertexAttribs3fvNV = (PFNGLVERTEXATTRIBS3FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs3fvNV")) == NULL) || r;
- r = ((glVertexAttribs3svNV = (PFNGLVERTEXATTRIBS3SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs3svNV")) == NULL) || r;
- r = ((glVertexAttribs4dvNV = (PFNGLVERTEXATTRIBS4DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs4dvNV")) == NULL) || r;
- r = ((glVertexAttribs4fvNV = (PFNGLVERTEXATTRIBS4FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs4fvNV")) == NULL) || r;
- r = ((glVertexAttribs4svNV = (PFNGLVERTEXATTRIBS4SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs4svNV")) == NULL) || r;
- r = ((glVertexAttribs4ubvNV = (PFNGLVERTEXATTRIBS4UBVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs4ubvNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_vertex_program */
-
-#ifdef GL_NV_video_capture
-
-static GLboolean _glewInit_GL_NV_video_capture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBeginVideoCaptureNV = (PFNGLBEGINVIDEOCAPTURENVPROC)glewGetProcAddress((const GLubyte*)"glBeginVideoCaptureNV")) == NULL) || r;
- r = ((glBindVideoCaptureStreamBufferNV = (PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glBindVideoCaptureStreamBufferNV")) == NULL) || r;
- r = ((glBindVideoCaptureStreamTextureNV = (PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC)glewGetProcAddress((const GLubyte*)"glBindVideoCaptureStreamTextureNV")) == NULL) || r;
- r = ((glEndVideoCaptureNV = (PFNGLENDVIDEOCAPTURENVPROC)glewGetProcAddress((const GLubyte*)"glEndVideoCaptureNV")) == NULL) || r;
- r = ((glGetVideoCaptureStreamdvNV = (PFNGLGETVIDEOCAPTURESTREAMDVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoCaptureStreamdvNV")) == NULL) || r;
- r = ((glGetVideoCaptureStreamfvNV = (PFNGLGETVIDEOCAPTURESTREAMFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoCaptureStreamfvNV")) == NULL) || r;
- r = ((glGetVideoCaptureStreamivNV = (PFNGLGETVIDEOCAPTURESTREAMIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoCaptureStreamivNV")) == NULL) || r;
- r = ((glGetVideoCaptureivNV = (PFNGLGETVIDEOCAPTUREIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoCaptureivNV")) == NULL) || r;
- r = ((glVideoCaptureNV = (PFNGLVIDEOCAPTURENVPROC)glewGetProcAddress((const GLubyte*)"glVideoCaptureNV")) == NULL) || r;
- r = ((glVideoCaptureStreamParameterdvNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC)glewGetProcAddress((const GLubyte*)"glVideoCaptureStreamParameterdvNV")) == NULL) || r;
- r = ((glVideoCaptureStreamParameterfvNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glVideoCaptureStreamParameterfvNV")) == NULL) || r;
- r = ((glVideoCaptureStreamParameterivNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glVideoCaptureStreamParameterivNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_video_capture */
-
-#ifdef GL_NV_viewport_array
-
-static GLboolean _glewInit_GL_NV_viewport_array ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDepthRangeArrayfvNV = (PFNGLDEPTHRANGEARRAYFVNVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeArrayfvNV")) == NULL) || r;
- r = ((glDepthRangeIndexedfNV = (PFNGLDEPTHRANGEINDEXEDFNVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeIndexedfNV")) == NULL) || r;
- r = ((glDisableiNV = (PFNGLDISABLEINVPROC)glewGetProcAddress((const GLubyte*)"glDisableiNV")) == NULL) || r;
- r = ((glEnableiNV = (PFNGLENABLEINVPROC)glewGetProcAddress((const GLubyte*)"glEnableiNV")) == NULL) || r;
- r = ((glGetFloati_vNV = (PFNGLGETFLOATI_VNVPROC)glewGetProcAddress((const GLubyte*)"glGetFloati_vNV")) == NULL) || r;
- r = ((glIsEnablediNV = (PFNGLISENABLEDINVPROC)glewGetProcAddress((const GLubyte*)"glIsEnablediNV")) == NULL) || r;
- r = ((glScissorArrayvNV = (PFNGLSCISSORARRAYVNVPROC)glewGetProcAddress((const GLubyte*)"glScissorArrayvNV")) == NULL) || r;
- r = ((glScissorIndexedNV = (PFNGLSCISSORINDEXEDNVPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexedNV")) == NULL) || r;
- r = ((glScissorIndexedvNV = (PFNGLSCISSORINDEXEDVNVPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexedvNV")) == NULL) || r;
- r = ((glViewportArrayvNV = (PFNGLVIEWPORTARRAYVNVPROC)glewGetProcAddress((const GLubyte*)"glViewportArrayvNV")) == NULL) || r;
- r = ((glViewportIndexedfNV = (PFNGLVIEWPORTINDEXEDFNVPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedfNV")) == NULL) || r;
- r = ((glViewportIndexedfvNV = (PFNGLVIEWPORTINDEXEDFVNVPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedfvNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_viewport_array */
-
-#ifdef GL_NV_viewport_swizzle
-
-static GLboolean _glewInit_GL_NV_viewport_swizzle ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glViewportSwizzleNV = (PFNGLVIEWPORTSWIZZLENVPROC)glewGetProcAddress((const GLubyte*)"glViewportSwizzleNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_NV_viewport_swizzle */
-
-#ifdef GL_OES_EGL_image
-
-static GLboolean _glewInit_GL_OES_EGL_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glEGLImageTargetRenderbufferStorageOES = (PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetRenderbufferStorageOES")) == NULL) || r;
- r = ((glEGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)glewGetProcAddress((const GLubyte*)"glEGLImageTargetTexture2DOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_EGL_image */
-
-#ifdef GL_OES_blend_equation_separate
-
-static GLboolean _glewInit_GL_OES_blend_equation_separate ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendEquationSeparateOES = (PFNGLBLENDEQUATIONSEPARATEOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_blend_equation_separate */
-
-#ifdef GL_OES_blend_func_separate
-
-static GLboolean _glewInit_GL_OES_blend_func_separate ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendFuncSeparateOES = (PFNGLBLENDFUNCSEPARATEOESPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_blend_func_separate */
-
-#ifdef GL_OES_blend_subtract
-
-static GLboolean _glewInit_GL_OES_blend_subtract ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendEquationOES = (PFNGLBLENDEQUATIONOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_blend_subtract */
-
-#ifdef GL_OES_copy_image
-
-static GLboolean _glewInit_GL_OES_copy_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCopyImageSubDataOES = (PFNGLCOPYIMAGESUBDATAOESPROC)glewGetProcAddress((const GLubyte*)"glCopyImageSubDataOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_copy_image */
-
-#ifdef GL_OES_draw_buffers_indexed
-
-static GLboolean _glewInit_GL_OES_draw_buffers_indexed ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBlendEquationSeparateiOES = (PFNGLBLENDEQUATIONSEPARATEIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateiOES")) == NULL) || r;
- r = ((glBlendEquationiOES = (PFNGLBLENDEQUATIONIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationiOES")) == NULL) || r;
- r = ((glBlendFuncSeparateiOES = (PFNGLBLENDFUNCSEPARATEIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateiOES")) == NULL) || r;
- r = ((glBlendFunciOES = (PFNGLBLENDFUNCIOESPROC)glewGetProcAddress((const GLubyte*)"glBlendFunciOES")) == NULL) || r;
- r = ((glColorMaskiOES = (PFNGLCOLORMASKIOESPROC)glewGetProcAddress((const GLubyte*)"glColorMaskiOES")) == NULL) || r;
- r = ((glDisableiOES = (PFNGLDISABLEIOESPROC)glewGetProcAddress((const GLubyte*)"glDisableiOES")) == NULL) || r;
- r = ((glEnableiOES = (PFNGLENABLEIOESPROC)glewGetProcAddress((const GLubyte*)"glEnableiOES")) == NULL) || r;
- r = ((glIsEnablediOES = (PFNGLISENABLEDIOESPROC)glewGetProcAddress((const GLubyte*)"glIsEnablediOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_draw_buffers_indexed */
-
-#ifdef GL_OES_framebuffer_object
-
-static GLboolean _glewInit_GL_OES_framebuffer_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindFramebufferOES = (PFNGLBINDFRAMEBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glBindFramebufferOES")) == NULL) || r;
- r = ((glBindRenderbufferOES = (PFNGLBINDRENDERBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glBindRenderbufferOES")) == NULL) || r;
- r = ((glCheckFramebufferStatusOES = (PFNGLCHECKFRAMEBUFFERSTATUSOESPROC)glewGetProcAddress((const GLubyte*)"glCheckFramebufferStatusOES")) == NULL) || r;
- r = ((glDeleteFramebuffersOES = (PFNGLDELETEFRAMEBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glDeleteFramebuffersOES")) == NULL) || r;
- r = ((glDeleteRenderbuffersOES = (PFNGLDELETERENDERBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glDeleteRenderbuffersOES")) == NULL) || r;
- r = ((glFramebufferRenderbufferOES = (PFNGLFRAMEBUFFERRENDERBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glFramebufferRenderbufferOES")) == NULL) || r;
- r = ((glFramebufferTexture2DOES = (PFNGLFRAMEBUFFERTEXTURE2DOESPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DOES")) == NULL) || r;
- r = ((glGenFramebuffersOES = (PFNGLGENFRAMEBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glGenFramebuffersOES")) == NULL) || r;
- r = ((glGenRenderbuffersOES = (PFNGLGENRENDERBUFFERSOESPROC)glewGetProcAddress((const GLubyte*)"glGenRenderbuffersOES")) == NULL) || r;
- r = ((glGenerateMipmapOES = (PFNGLGENERATEMIPMAPOESPROC)glewGetProcAddress((const GLubyte*)"glGenerateMipmapOES")) == NULL) || r;
- r = ((glGetFramebufferAttachmentParameterivOES = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferAttachmentParameterivOES")) == NULL) || r;
- r = ((glGetRenderbufferParameterivOES = (PFNGLGETRENDERBUFFERPARAMETERIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetRenderbufferParameterivOES")) == NULL) || r;
- r = ((glIsFramebufferOES = (PFNGLISFRAMEBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glIsFramebufferOES")) == NULL) || r;
- r = ((glIsRenderbufferOES = (PFNGLISRENDERBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glIsRenderbufferOES")) == NULL) || r;
- r = ((glRenderbufferStorageOES = (PFNGLRENDERBUFFERSTORAGEOESPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_framebuffer_object */
-
-#ifdef GL_OES_get_program_binary
-
-static GLboolean _glewInit_GL_OES_get_program_binary ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetProgramBinaryOES = (PFNGLGETPROGRAMBINARYOESPROC)glewGetProcAddress((const GLubyte*)"glGetProgramBinaryOES")) == NULL) || r;
- r = ((glProgramBinaryOES = (PFNGLPROGRAMBINARYOESPROC)glewGetProcAddress((const GLubyte*)"glProgramBinaryOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_get_program_binary */
-
-#ifdef GL_OES_mapbuffer
-
-static GLboolean _glewInit_GL_OES_mapbuffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetBufferPointervOES = (PFNGLGETBUFFERPOINTERVOESPROC)glewGetProcAddress((const GLubyte*)"glGetBufferPointervOES")) == NULL) || r;
- r = ((glMapBufferOES = (PFNGLMAPBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glMapBufferOES")) == NULL) || r;
- r = ((glUnmapBufferOES = (PFNGLUNMAPBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glUnmapBufferOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_mapbuffer */
-
-#ifdef GL_OES_matrix_palette
-
-static GLboolean _glewInit_GL_OES_matrix_palette ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCurrentPaletteMatrixOES = (PFNGLCURRENTPALETTEMATRIXOESPROC)glewGetProcAddress((const GLubyte*)"glCurrentPaletteMatrixOES")) == NULL) || r;
- r = ((glMatrixIndexPointerOES = (PFNGLMATRIXINDEXPOINTEROESPROC)glewGetProcAddress((const GLubyte*)"glMatrixIndexPointerOES")) == NULL) || r;
- r = ((glWeightPointerOES = (PFNGLWEIGHTPOINTEROESPROC)glewGetProcAddress((const GLubyte*)"glWeightPointerOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_matrix_palette */
-
-#ifdef GL_OES_sample_shading
-
-static GLboolean _glewInit_GL_OES_sample_shading ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMinSampleShadingOES = (PFNGLMINSAMPLESHADINGOESPROC)glewGetProcAddress((const GLubyte*)"glMinSampleShadingOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_sample_shading */
-
-#ifdef GL_OES_single_precision
-
-static GLboolean _glewInit_GL_OES_single_precision ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClearDepthfOES = (PFNGLCLEARDEPTHFOESPROC)glewGetProcAddress((const GLubyte*)"glClearDepthfOES")) == NULL) || r;
- r = ((glClipPlanefOES = (PFNGLCLIPPLANEFOESPROC)glewGetProcAddress((const GLubyte*)"glClipPlanefOES")) == NULL) || r;
- r = ((glDepthRangefOES = (PFNGLDEPTHRANGEFOESPROC)glewGetProcAddress((const GLubyte*)"glDepthRangefOES")) == NULL) || r;
- r = ((glFrustumfOES = (PFNGLFRUSTUMFOESPROC)glewGetProcAddress((const GLubyte*)"glFrustumfOES")) == NULL) || r;
- r = ((glGetClipPlanefOES = (PFNGLGETCLIPPLANEFOESPROC)glewGetProcAddress((const GLubyte*)"glGetClipPlanefOES")) == NULL) || r;
- r = ((glOrthofOES = (PFNGLORTHOFOESPROC)glewGetProcAddress((const GLubyte*)"glOrthofOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_single_precision */
-
-#ifdef GL_OES_texture_3D
-
-static GLboolean _glewInit_GL_OES_texture_3D ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glCompressedTexImage3DOES = (PFNGLCOMPRESSEDTEXIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage3DOES")) == NULL) || r;
- r = ((glCompressedTexSubImage3DOES = (PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage3DOES")) == NULL) || r;
- r = ((glCopyTexSubImage3DOES = (PFNGLCOPYTEXSUBIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage3DOES")) == NULL) || r;
- r = ((glFramebufferTexture3DOES = (PFNGLFRAMEBUFFERTEXTURE3DOESPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture3DOES")) == NULL) || r;
- r = ((glTexImage3DOES = (PFNGLTEXIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DOES")) == NULL) || r;
- r = ((glTexSubImage3DOES = (PFNGLTEXSUBIMAGE3DOESPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage3DOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_texture_3D */
-
-#ifdef GL_OES_texture_border_clamp
-
-static GLboolean _glewInit_GL_OES_texture_border_clamp ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetSamplerParameterIivOES = (PFNGLGETSAMPLERPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIivOES")) == NULL) || r;
- r = ((glGetSamplerParameterIuivOES = (PFNGLGETSAMPLERPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIuivOES")) == NULL) || r;
- r = ((glGetTexParameterIivOES = (PFNGLGETTEXPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIivOES")) == NULL) || r;
- r = ((glGetTexParameterIuivOES = (PFNGLGETTEXPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIuivOES")) == NULL) || r;
- r = ((glSamplerParameterIivOES = (PFNGLSAMPLERPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIivOES")) == NULL) || r;
- r = ((glSamplerParameterIuivOES = (PFNGLSAMPLERPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIuivOES")) == NULL) || r;
- r = ((glTexParameterIivOES = (PFNGLTEXPARAMETERIIVOESPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIivOES")) == NULL) || r;
- r = ((glTexParameterIuivOES = (PFNGLTEXPARAMETERIUIVOESPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIuivOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_texture_border_clamp */
-
-#ifdef GL_OES_texture_buffer
-
-static GLboolean _glewInit_GL_OES_texture_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexBufferOES = (PFNGLTEXBUFFEROESPROC)glewGetProcAddress((const GLubyte*)"glTexBufferOES")) == NULL) || r;
- r = ((glTexBufferRangeOES = (PFNGLTEXBUFFERRANGEOESPROC)glewGetProcAddress((const GLubyte*)"glTexBufferRangeOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_texture_buffer */
-
-#ifdef GL_OES_texture_cube_map
-
-static GLboolean _glewInit_GL_OES_texture_cube_map ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetTexGenfvOES = (PFNGLGETTEXGENFVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexGenfvOES")) == NULL) || r;
- r = ((glGetTexGenivOES = (PFNGLGETTEXGENIVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexGenivOES")) == NULL) || r;
- r = ((glGetTexGenxvOES = (PFNGLGETTEXGENXVOESPROC)glewGetProcAddress((const GLubyte*)"glGetTexGenxvOES")) == NULL) || r;
- r = ((glTexGenfOES = (PFNGLTEXGENFOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenfOES")) == NULL) || r;
- r = ((glTexGenfvOES = (PFNGLTEXGENFVOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenfvOES")) == NULL) || r;
- r = ((glTexGeniOES = (PFNGLTEXGENIOESPROC)glewGetProcAddress((const GLubyte*)"glTexGeniOES")) == NULL) || r;
- r = ((glTexGenivOES = (PFNGLTEXGENIVOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenivOES")) == NULL) || r;
- r = ((glTexGenxOES = (PFNGLTEXGENXOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenxOES")) == NULL) || r;
- r = ((glTexGenxvOES = (PFNGLTEXGENXVOESPROC)glewGetProcAddress((const GLubyte*)"glTexGenxvOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_texture_cube_map */
-
-#ifdef GL_OES_texture_storage_multisample_2d_array
-
-static GLboolean _glewInit_GL_OES_texture_storage_multisample_2d_array ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexStorage3DMultisampleOES = (PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3DMultisampleOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_texture_storage_multisample_2d_array */
-
-#ifdef GL_OES_texture_view
-
-static GLboolean _glewInit_GL_OES_texture_view ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTextureViewOES = (PFNGLTEXTUREVIEWOESPROC)glewGetProcAddress((const GLubyte*)"glTextureViewOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_texture_view */
-
-#ifdef GL_OES_vertex_array_object
-
-static GLboolean _glewInit_GL_OES_vertex_array_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glBindVertexArrayOES = (PFNGLBINDVERTEXARRAYOESPROC)glewGetProcAddress((const GLubyte*)"glBindVertexArrayOES")) == NULL) || r;
- r = ((glDeleteVertexArraysOES = (PFNGLDELETEVERTEXARRAYSOESPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexArraysOES")) == NULL) || r;
- r = ((glGenVertexArraysOES = (PFNGLGENVERTEXARRAYSOESPROC)glewGetProcAddress((const GLubyte*)"glGenVertexArraysOES")) == NULL) || r;
- r = ((glIsVertexArrayOES = (PFNGLISVERTEXARRAYOESPROC)glewGetProcAddress((const GLubyte*)"glIsVertexArrayOES")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OES_vertex_array_object */
-
-#ifdef GL_OVR_multiview
-
-static GLboolean _glewInit_GL_OVR_multiview ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferTextureMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureMultiviewOVR")) == NULL) || r;
- r = ((glNamedFramebufferTextureMultiviewOVR = (PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTextureMultiviewOVR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OVR_multiview */
-
-#ifdef GL_OVR_multiview_multisampled_render_to_texture
-
-static GLboolean _glewInit_GL_OVR_multiview_multisampled_render_to_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferTextureMultisampleMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureMultisampleMultiviewOVR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_OVR_multiview_multisampled_render_to_texture */
-
-#ifdef GL_QCOM_alpha_test
-
-static GLboolean _glewInit_GL_QCOM_alpha_test ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAlphaFuncQCOM = (PFNGLALPHAFUNCQCOMPROC)glewGetProcAddress((const GLubyte*)"glAlphaFuncQCOM")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_QCOM_alpha_test */
-
-#ifdef GL_QCOM_driver_control
-
-static GLboolean _glewInit_GL_QCOM_driver_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDisableDriverControlQCOM = (PFNGLDISABLEDRIVERCONTROLQCOMPROC)glewGetProcAddress((const GLubyte*)"glDisableDriverControlQCOM")) == NULL) || r;
- r = ((glEnableDriverControlQCOM = (PFNGLENABLEDRIVERCONTROLQCOMPROC)glewGetProcAddress((const GLubyte*)"glEnableDriverControlQCOM")) == NULL) || r;
- r = ((glGetDriverControlStringQCOM = (PFNGLGETDRIVERCONTROLSTRINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glGetDriverControlStringQCOM")) == NULL) || r;
- r = ((glGetDriverControlsQCOM = (PFNGLGETDRIVERCONTROLSQCOMPROC)glewGetProcAddress((const GLubyte*)"glGetDriverControlsQCOM")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_QCOM_driver_control */
-
-#ifdef GL_QCOM_extended_get
-
-static GLboolean _glewInit_GL_QCOM_extended_get ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glExtGetBufferPointervQCOM = (PFNGLEXTGETBUFFERPOINTERVQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetBufferPointervQCOM")) == NULL) || r;
- r = ((glExtGetBuffersQCOM = (PFNGLEXTGETBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetBuffersQCOM")) == NULL) || r;
- r = ((glExtGetFramebuffersQCOM = (PFNGLEXTGETFRAMEBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetFramebuffersQCOM")) == NULL) || r;
- r = ((glExtGetRenderbuffersQCOM = (PFNGLEXTGETRENDERBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetRenderbuffersQCOM")) == NULL) || r;
- r = ((glExtGetTexLevelParameterivQCOM = (PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexLevelParameterivQCOM")) == NULL) || r;
- r = ((glExtGetTexSubImageQCOM = (PFNGLEXTGETTEXSUBIMAGEQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexSubImageQCOM")) == NULL) || r;
- r = ((glExtGetTexturesQCOM = (PFNGLEXTGETTEXTURESQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexturesQCOM")) == NULL) || r;
- r = ((glExtTexObjectStateOverrideiQCOM = (PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtTexObjectStateOverrideiQCOM")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_QCOM_extended_get */
-
-#ifdef GL_QCOM_extended_get2
-
-static GLboolean _glewInit_GL_QCOM_extended_get2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glExtGetProgramBinarySourceQCOM = (PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetProgramBinarySourceQCOM")) == NULL) || r;
- r = ((glExtGetProgramsQCOM = (PFNGLEXTGETPROGRAMSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetProgramsQCOM")) == NULL) || r;
- r = ((glExtGetShadersQCOM = (PFNGLEXTGETSHADERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetShadersQCOM")) == NULL) || r;
- r = ((glExtIsProgramBinaryQCOM = (PFNGLEXTISPROGRAMBINARYQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtIsProgramBinaryQCOM")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_QCOM_extended_get2 */
-
-#ifdef GL_QCOM_framebuffer_foveated
-
-static GLboolean _glewInit_GL_QCOM_framebuffer_foveated ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferFoveationConfigQCOM = (PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFoveationConfigQCOM")) == NULL) || r;
- r = ((glFramebufferFoveationParametersQCOM = (PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFoveationParametersQCOM")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_QCOM_framebuffer_foveated */
-
-#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent
-
-static GLboolean _glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFramebufferFetchBarrierQCOM = (PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFetchBarrierQCOM")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */
-
-#ifdef GL_QCOM_texture_foveated
-
-static GLboolean _glewInit_GL_QCOM_texture_foveated ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTextureFoveationParametersQCOM = (PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glTextureFoveationParametersQCOM")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_QCOM_texture_foveated */
-
-#ifdef GL_QCOM_tiled_rendering
-
-static GLboolean _glewInit_GL_QCOM_tiled_rendering ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glEndTilingQCOM = (PFNGLENDTILINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glEndTilingQCOM")) == NULL) || r;
- r = ((glStartTilingQCOM = (PFNGLSTARTTILINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glStartTilingQCOM")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_QCOM_tiled_rendering */
-
-#ifdef GL_REGAL_ES1_0_compatibility
-
-static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAlphaFuncx = (PFNGLALPHAFUNCXPROC)glewGetProcAddress((const GLubyte*)"glAlphaFuncx")) == NULL) || r;
- r = ((glClearColorx = (PFNGLCLEARCOLORXPROC)glewGetProcAddress((const GLubyte*)"glClearColorx")) == NULL) || r;
- r = ((glClearDepthx = (PFNGLCLEARDEPTHXPROC)glewGetProcAddress((const GLubyte*)"glClearDepthx")) == NULL) || r;
- r = ((glColor4x = (PFNGLCOLOR4XPROC)glewGetProcAddress((const GLubyte*)"glColor4x")) == NULL) || r;
- r = ((glDepthRangex = (PFNGLDEPTHRANGEXPROC)glewGetProcAddress((const GLubyte*)"glDepthRangex")) == NULL) || r;
- r = ((glFogx = (PFNGLFOGXPROC)glewGetProcAddress((const GLubyte*)"glFogx")) == NULL) || r;
- r = ((glFogxv = (PFNGLFOGXVPROC)glewGetProcAddress((const GLubyte*)"glFogxv")) == NULL) || r;
- r = ((glFrustumf = (PFNGLFRUSTUMFPROC)glewGetProcAddress((const GLubyte*)"glFrustumf")) == NULL) || r;
- r = ((glFrustumx = (PFNGLFRUSTUMXPROC)glewGetProcAddress((const GLubyte*)"glFrustumx")) == NULL) || r;
- r = ((glLightModelx = (PFNGLLIGHTMODELXPROC)glewGetProcAddress((const GLubyte*)"glLightModelx")) == NULL) || r;
- r = ((glLightModelxv = (PFNGLLIGHTMODELXVPROC)glewGetProcAddress((const GLubyte*)"glLightModelxv")) == NULL) || r;
- r = ((glLightx = (PFNGLLIGHTXPROC)glewGetProcAddress((const GLubyte*)"glLightx")) == NULL) || r;
- r = ((glLightxv = (PFNGLLIGHTXVPROC)glewGetProcAddress((const GLubyte*)"glLightxv")) == NULL) || r;
- r = ((glLineWidthx = (PFNGLLINEWIDTHXPROC)glewGetProcAddress((const GLubyte*)"glLineWidthx")) == NULL) || r;
- r = ((glLoadMatrixx = (PFNGLLOADMATRIXXPROC)glewGetProcAddress((const GLubyte*)"glLoadMatrixx")) == NULL) || r;
- r = ((glMaterialx = (PFNGLMATERIALXPROC)glewGetProcAddress((const GLubyte*)"glMaterialx")) == NULL) || r;
- r = ((glMaterialxv = (PFNGLMATERIALXVPROC)glewGetProcAddress((const GLubyte*)"glMaterialxv")) == NULL) || r;
- r = ((glMultMatrixx = (PFNGLMULTMATRIXXPROC)glewGetProcAddress((const GLubyte*)"glMultMatrixx")) == NULL) || r;
- r = ((glMultiTexCoord4x = (PFNGLMULTITEXCOORD4XPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4x")) == NULL) || r;
- r = ((glNormal3x = (PFNGLNORMAL3XPROC)glewGetProcAddress((const GLubyte*)"glNormal3x")) == NULL) || r;
- r = ((glOrthof = (PFNGLORTHOFPROC)glewGetProcAddress((const GLubyte*)"glOrthof")) == NULL) || r;
- r = ((glOrthox = (PFNGLORTHOXPROC)glewGetProcAddress((const GLubyte*)"glOrthox")) == NULL) || r;
- r = ((glPointSizex = (PFNGLPOINTSIZEXPROC)glewGetProcAddress((const GLubyte*)"glPointSizex")) == NULL) || r;
- r = ((glPolygonOffsetx = (PFNGLPOLYGONOFFSETXPROC)glewGetProcAddress((const GLubyte*)"glPolygonOffsetx")) == NULL) || r;
- r = ((glRotatex = (PFNGLROTATEXPROC)glewGetProcAddress((const GLubyte*)"glRotatex")) == NULL) || r;
- r = ((glSampleCoveragex = (PFNGLSAMPLECOVERAGEXPROC)glewGetProcAddress((const GLubyte*)"glSampleCoveragex")) == NULL) || r;
- r = ((glScalex = (PFNGLSCALEXPROC)glewGetProcAddress((const GLubyte*)"glScalex")) == NULL) || r;
- r = ((glTexEnvx = (PFNGLTEXENVXPROC)glewGetProcAddress((const GLubyte*)"glTexEnvx")) == NULL) || r;
- r = ((glTexEnvxv = (PFNGLTEXENVXVPROC)glewGetProcAddress((const GLubyte*)"glTexEnvxv")) == NULL) || r;
- r = ((glTexParameterx = (PFNGLTEXPARAMETERXPROC)glewGetProcAddress((const GLubyte*)"glTexParameterx")) == NULL) || r;
- r = ((glTranslatex = (PFNGLTRANSLATEXPROC)glewGetProcAddress((const GLubyte*)"glTranslatex")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_REGAL_ES1_0_compatibility */
-
-#ifdef GL_REGAL_ES1_1_compatibility
-
-static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glClipPlanef = (PFNGLCLIPPLANEFPROC)glewGetProcAddress((const GLubyte*)"glClipPlanef")) == NULL) || r;
- r = ((glClipPlanex = (PFNGLCLIPPLANEXPROC)glewGetProcAddress((const GLubyte*)"glClipPlanex")) == NULL) || r;
- r = ((glGetClipPlanef = (PFNGLGETCLIPPLANEFPROC)glewGetProcAddress((const GLubyte*)"glGetClipPlanef")) == NULL) || r;
- r = ((glGetClipPlanex = (PFNGLGETCLIPPLANEXPROC)glewGetProcAddress((const GLubyte*)"glGetClipPlanex")) == NULL) || r;
- r = ((glGetFixedv = (PFNGLGETFIXEDVPROC)glewGetProcAddress((const GLubyte*)"glGetFixedv")) == NULL) || r;
- r = ((glGetLightxv = (PFNGLGETLIGHTXVPROC)glewGetProcAddress((const GLubyte*)"glGetLightxv")) == NULL) || r;
- r = ((glGetMaterialxv = (PFNGLGETMATERIALXVPROC)glewGetProcAddress((const GLubyte*)"glGetMaterialxv")) == NULL) || r;
- r = ((glGetTexEnvxv = (PFNGLGETTEXENVXVPROC)glewGetProcAddress((const GLubyte*)"glGetTexEnvxv")) == NULL) || r;
- r = ((glGetTexParameterxv = (PFNGLGETTEXPARAMETERXVPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterxv")) == NULL) || r;
- r = ((glPointParameterx = (PFNGLPOINTPARAMETERXPROC)glewGetProcAddress((const GLubyte*)"glPointParameterx")) == NULL) || r;
- r = ((glPointParameterxv = (PFNGLPOINTPARAMETERXVPROC)glewGetProcAddress((const GLubyte*)"glPointParameterxv")) == NULL) || r;
- r = ((glPointSizePointerOES = (PFNGLPOINTSIZEPOINTEROESPROC)glewGetProcAddress((const GLubyte*)"glPointSizePointerOES")) == NULL) || r;
- r = ((glTexParameterxv = (PFNGLTEXPARAMETERXVPROC)glewGetProcAddress((const GLubyte*)"glTexParameterxv")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_REGAL_ES1_1_compatibility */
-
-#ifdef GL_REGAL_error_string
-
-static GLboolean _glewInit_GL_REGAL_error_string ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glErrorStringREGAL = (PFNGLERRORSTRINGREGALPROC)glewGetProcAddress((const GLubyte*)"glErrorStringREGAL")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_REGAL_error_string */
-
-#ifdef GL_REGAL_extension_query
-
-static GLboolean _glewInit_GL_REGAL_extension_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetExtensionREGAL = (PFNGLGETEXTENSIONREGALPROC)glewGetProcAddress((const GLubyte*)"glGetExtensionREGAL")) == NULL) || r;
- r = ((glIsSupportedREGAL = (PFNGLISSUPPORTEDREGALPROC)glewGetProcAddress((const GLubyte*)"glIsSupportedREGAL")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_REGAL_extension_query */
-
-#ifdef GL_REGAL_log
-
-static GLboolean _glewInit_GL_REGAL_log ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glLogMessageCallbackREGAL = (PFNGLLOGMESSAGECALLBACKREGALPROC)glewGetProcAddress((const GLubyte*)"glLogMessageCallbackREGAL")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_REGAL_log */
-
-#ifdef GL_REGAL_proc_address
-
-static GLboolean _glewInit_GL_REGAL_proc_address ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetProcAddressREGAL = (PFNGLGETPROCADDRESSREGALPROC)glewGetProcAddress((const GLubyte*)"glGetProcAddressREGAL")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_REGAL_proc_address */
-
-#ifdef GL_SGIS_detail_texture
-
-static GLboolean _glewInit_GL_SGIS_detail_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDetailTexFuncSGIS = (PFNGLDETAILTEXFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glDetailTexFuncSGIS")) == NULL) || r;
- r = ((glGetDetailTexFuncSGIS = (PFNGLGETDETAILTEXFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glGetDetailTexFuncSGIS")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIS_detail_texture */
-
-#ifdef GL_SGIS_fog_function
-
-static GLboolean _glewInit_GL_SGIS_fog_function ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFogFuncSGIS = (PFNGLFOGFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glFogFuncSGIS")) == NULL) || r;
- r = ((glGetFogFuncSGIS = (PFNGLGETFOGFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glGetFogFuncSGIS")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIS_fog_function */
-
-#ifdef GL_SGIS_multisample
-
-static GLboolean _glewInit_GL_SGIS_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glSampleMaskSGIS = (PFNGLSAMPLEMASKSGISPROC)glewGetProcAddress((const GLubyte*)"glSampleMaskSGIS")) == NULL) || r;
- r = ((glSamplePatternSGIS = (PFNGLSAMPLEPATTERNSGISPROC)glewGetProcAddress((const GLubyte*)"glSamplePatternSGIS")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIS_multisample */
-
-#ifdef GL_SGIS_multitexture
-
-static GLboolean _glewInit_GL_SGIS_multitexture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glInterleavedTextureCoordSetsSGIS = (PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC)glewGetProcAddress((const GLubyte*)"glInterleavedTextureCoordSetsSGIS")) == NULL) || r;
- r = ((glSelectTextureCoordSetSGIS = (PFNGLSELECTTEXTURECOORDSETSGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureCoordSetSGIS")) == NULL) || r;
- r = ((glSelectTextureSGIS = (PFNGLSELECTTEXTURESGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureSGIS")) == NULL) || r;
- r = ((glSelectTextureTransformSGIS = (PFNGLSELECTTEXTURETRANSFORMSGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureTransformSGIS")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIS_multitexture */
-
-#ifdef GL_SGIS_shared_multisample
-
-static GLboolean _glewInit_GL_SGIS_shared_multisample ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMultisampleSubRectPosSGIS = (PFNGLMULTISAMPLESUBRECTPOSSGISPROC)glewGetProcAddress((const GLubyte*)"glMultisampleSubRectPosSGIS")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIS_shared_multisample */
-
-#ifdef GL_SGIS_sharpen_texture
-
-static GLboolean _glewInit_GL_SGIS_sharpen_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetSharpenTexFuncSGIS = (PFNGLGETSHARPENTEXFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glGetSharpenTexFuncSGIS")) == NULL) || r;
- r = ((glSharpenTexFuncSGIS = (PFNGLSHARPENTEXFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glSharpenTexFuncSGIS")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIS_sharpen_texture */
-
-#ifdef GL_SGIS_texture4D
-
-static GLboolean _glewInit_GL_SGIS_texture4D ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTexImage4DSGIS = (PFNGLTEXIMAGE4DSGISPROC)glewGetProcAddress((const GLubyte*)"glTexImage4DSGIS")) == NULL) || r;
- r = ((glTexSubImage4DSGIS = (PFNGLTEXSUBIMAGE4DSGISPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage4DSGIS")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIS_texture4D */
-
-#ifdef GL_SGIS_texture_filter4
-
-static GLboolean _glewInit_GL_SGIS_texture_filter4 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetTexFilterFuncSGIS = (PFNGLGETTEXFILTERFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glGetTexFilterFuncSGIS")) == NULL) || r;
- r = ((glTexFilterFuncSGIS = (PFNGLTEXFILTERFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glTexFilterFuncSGIS")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIS_texture_filter4 */
-
-#ifdef GL_SGIX_async
-
-static GLboolean _glewInit_GL_SGIX_async ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAsyncMarkerSGIX = (PFNGLASYNCMARKERSGIXPROC)glewGetProcAddress((const GLubyte*)"glAsyncMarkerSGIX")) == NULL) || r;
- r = ((glDeleteAsyncMarkersSGIX = (PFNGLDELETEASYNCMARKERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeleteAsyncMarkersSGIX")) == NULL) || r;
- r = ((glFinishAsyncSGIX = (PFNGLFINISHASYNCSGIXPROC)glewGetProcAddress((const GLubyte*)"glFinishAsyncSGIX")) == NULL) || r;
- r = ((glGenAsyncMarkersSGIX = (PFNGLGENASYNCMARKERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGenAsyncMarkersSGIX")) == NULL) || r;
- r = ((glIsAsyncMarkerSGIX = (PFNGLISASYNCMARKERSGIXPROC)glewGetProcAddress((const GLubyte*)"glIsAsyncMarkerSGIX")) == NULL) || r;
- r = ((glPollAsyncSGIX = (PFNGLPOLLASYNCSGIXPROC)glewGetProcAddress((const GLubyte*)"glPollAsyncSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_async */
-
-#ifdef GL_SGIX_datapipe
-
-static GLboolean _glewInit_GL_SGIX_datapipe ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAddressSpace = (PFNGLADDRESSSPACEPROC)glewGetProcAddress((const GLubyte*)"glAddressSpace")) == NULL) || r;
- r = ((glDataPipe = (PFNGLDATAPIPEPROC)glewGetProcAddress((const GLubyte*)"glDataPipe")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_datapipe */
-
-#ifdef GL_SGIX_flush_raster
-
-static GLboolean _glewInit_GL_SGIX_flush_raster ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFlushRasterSGIX = (PFNGLFLUSHRASTERSGIXPROC)glewGetProcAddress((const GLubyte*)"glFlushRasterSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_flush_raster */
-
-#ifdef GL_SGIX_fog_layers
-
-static GLboolean _glewInit_GL_SGIX_fog_layers ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFogLayersSGIX = (PFNGLFOGLAYERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glFogLayersSGIX")) == NULL) || r;
- r = ((glGetFogLayersSGIX = (PFNGLGETFOGLAYERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFogLayersSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_fog_layers */
-
-#ifdef GL_SGIX_fog_texture
-
-static GLboolean _glewInit_GL_SGIX_fog_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTextureFogSGIX = (PFNGLTEXTUREFOGSGIXPROC)glewGetProcAddress((const GLubyte*)"glTextureFogSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_fog_texture */
-
-#ifdef GL_SGIX_fragment_specular_lighting
-
-static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFragmentColorMaterialSGIX = (PFNGLFRAGMENTCOLORMATERIALSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentColorMaterialSGIX")) == NULL) || r;
- r = ((glFragmentLightModelfSGIX = (PFNGLFRAGMENTLIGHTMODELFSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelfSGIX")) == NULL) || r;
- r = ((glFragmentLightModelfvSGIX = (PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelfvSGIX")) == NULL) || r;
- r = ((glFragmentLightModeliSGIX = (PFNGLFRAGMENTLIGHTMODELISGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModeliSGIX")) == NULL) || r;
- r = ((glFragmentLightModelivSGIX = (PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelivSGIX")) == NULL) || r;
- r = ((glFragmentLightfSGIX = (PFNGLFRAGMENTLIGHTFSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightfSGIX")) == NULL) || r;
- r = ((glFragmentLightfvSGIX = (PFNGLFRAGMENTLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightfvSGIX")) == NULL) || r;
- r = ((glFragmentLightiSGIX = (PFNGLFRAGMENTLIGHTISGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightiSGIX")) == NULL) || r;
- r = ((glFragmentLightivSGIX = (PFNGLFRAGMENTLIGHTIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightivSGIX")) == NULL) || r;
- r = ((glFragmentMaterialfSGIX = (PFNGLFRAGMENTMATERIALFSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialfSGIX")) == NULL) || r;
- r = ((glFragmentMaterialfvSGIX = (PFNGLFRAGMENTMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialfvSGIX")) == NULL) || r;
- r = ((glFragmentMaterialiSGIX = (PFNGLFRAGMENTMATERIALISGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialiSGIX")) == NULL) || r;
- r = ((glFragmentMaterialivSGIX = (PFNGLFRAGMENTMATERIALIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialivSGIX")) == NULL) || r;
- r = ((glGetFragmentLightfvSGIX = (PFNGLGETFRAGMENTLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentLightfvSGIX")) == NULL) || r;
- r = ((glGetFragmentLightivSGIX = (PFNGLGETFRAGMENTLIGHTIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentLightivSGIX")) == NULL) || r;
- r = ((glGetFragmentMaterialfvSGIX = (PFNGLGETFRAGMENTMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentMaterialfvSGIX")) == NULL) || r;
- r = ((glGetFragmentMaterialivSGIX = (PFNGLGETFRAGMENTMATERIALIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentMaterialivSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_fragment_specular_lighting */
-
-#ifdef GL_SGIX_framezoom
-
-static GLboolean _glewInit_GL_SGIX_framezoom ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFrameZoomSGIX = (PFNGLFRAMEZOOMSGIXPROC)glewGetProcAddress((const GLubyte*)"glFrameZoomSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_framezoom */
-
-#ifdef GL_SGIX_igloo_interface
-
-static GLboolean _glewInit_GL_SGIX_igloo_interface ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glIglooInterfaceSGIX = (PFNGLIGLOOINTERFACESGIXPROC)glewGetProcAddress((const GLubyte*)"glIglooInterfaceSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_igloo_interface */
-
-#ifdef GL_SGIX_mpeg1
-
-static GLboolean _glewInit_GL_SGIX_mpeg1 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAllocMPEGPredictorsSGIX = (PFNGLALLOCMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glAllocMPEGPredictorsSGIX")) == NULL) || r;
- r = ((glDeleteMPEGPredictorsSGIX = (PFNGLDELETEMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeleteMPEGPredictorsSGIX")) == NULL) || r;
- r = ((glGenMPEGPredictorsSGIX = (PFNGLGENMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGenMPEGPredictorsSGIX")) == NULL) || r;
- r = ((glGetMPEGParameterfvSGIX = (PFNGLGETMPEGPARAMETERFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGParameterfvSGIX")) == NULL) || r;
- r = ((glGetMPEGParameterivSGIX = (PFNGLGETMPEGPARAMETERIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGParameterivSGIX")) == NULL) || r;
- r = ((glGetMPEGPredictorSGIX = (PFNGLGETMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGPredictorSGIX")) == NULL) || r;
- r = ((glGetMPEGQuantTableubv = (PFNGLGETMPEGQUANTTABLEUBVPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGQuantTableubv")) == NULL) || r;
- r = ((glIsMPEGPredictorSGIX = (PFNGLISMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glIsMPEGPredictorSGIX")) == NULL) || r;
- r = ((glMPEGPredictorSGIX = (PFNGLMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glMPEGPredictorSGIX")) == NULL) || r;
- r = ((glMPEGQuantTableubv = (PFNGLMPEGQUANTTABLEUBVPROC)glewGetProcAddress((const GLubyte*)"glMPEGQuantTableubv")) == NULL) || r;
- r = ((glSwapMPEGPredictorsSGIX = (PFNGLSWAPMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glSwapMPEGPredictorsSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_mpeg1 */
-
-#ifdef GL_SGIX_nonlinear_lighting_pervertex
-
-static GLboolean _glewInit_GL_SGIX_nonlinear_lighting_pervertex ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetNonlinLightfvSGIX = (PFNGLGETNONLINLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetNonlinLightfvSGIX")) == NULL) || r;
- r = ((glGetNonlinMaterialfvSGIX = (PFNGLGETNONLINMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetNonlinMaterialfvSGIX")) == NULL) || r;
- r = ((glNonlinLightfvSGIX = (PFNGLNONLINLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glNonlinLightfvSGIX")) == NULL) || r;
- r = ((glNonlinMaterialfvSGIX = (PFNGLNONLINMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glNonlinMaterialfvSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_nonlinear_lighting_pervertex */
-
-#ifdef GL_SGIX_pixel_texture
-
-static GLboolean _glewInit_GL_SGIX_pixel_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glPixelTexGenSGIX = (PFNGLPIXELTEXGENSGIXPROC)glewGetProcAddress((const GLubyte*)"glPixelTexGenSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_pixel_texture */
-
-#ifdef GL_SGIX_polynomial_ffd
-
-static GLboolean _glewInit_GL_SGIX_polynomial_ffd ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glDeformSGIX = (PFNGLDEFORMSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeformSGIX")) == NULL) || r;
- r = ((glLoadIdentityDeformationMapSGIX = (PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC)glewGetProcAddress((const GLubyte*)"glLoadIdentityDeformationMapSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_polynomial_ffd */
-
-#ifdef GL_SGIX_quad_mesh
-
-static GLboolean _glewInit_GL_SGIX_quad_mesh ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glMeshBreadthSGIX = (PFNGLMESHBREADTHSGIXPROC)glewGetProcAddress((const GLubyte*)"glMeshBreadthSGIX")) == NULL) || r;
- r = ((glMeshStrideSGIX = (PFNGLMESHSTRIDESGIXPROC)glewGetProcAddress((const GLubyte*)"glMeshStrideSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_quad_mesh */
-
-#ifdef GL_SGIX_reference_plane
-
-static GLboolean _glewInit_GL_SGIX_reference_plane ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glReferencePlaneSGIX = (PFNGLREFERENCEPLANESGIXPROC)glewGetProcAddress((const GLubyte*)"glReferencePlaneSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_reference_plane */
-
-#ifdef GL_SGIX_sprite
-
-static GLboolean _glewInit_GL_SGIX_sprite ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glSpriteParameterfSGIX = (PFNGLSPRITEPARAMETERFSGIXPROC)glewGetProcAddress((const GLubyte*)"glSpriteParameterfSGIX")) == NULL) || r;
- r = ((glSpriteParameterfvSGIX = (PFNGLSPRITEPARAMETERFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glSpriteParameterfvSGIX")) == NULL) || r;
- r = ((glSpriteParameteriSGIX = (PFNGLSPRITEPARAMETERISGIXPROC)glewGetProcAddress((const GLubyte*)"glSpriteParameteriSGIX")) == NULL) || r;
- r = ((glSpriteParameterivSGIX = (PFNGLSPRITEPARAMETERIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glSpriteParameterivSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_sprite */
-
-#ifdef GL_SGIX_tag_sample_buffer
-
-static GLboolean _glewInit_GL_SGIX_tag_sample_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glTagSampleBufferSGIX = (PFNGLTAGSAMPLEBUFFERSGIXPROC)glewGetProcAddress((const GLubyte*)"glTagSampleBufferSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_tag_sample_buffer */
-
-#ifdef GL_SGIX_vector_ops
-
-static GLboolean _glewInit_GL_SGIX_vector_ops ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetVectorOperationSGIX = (PFNGLGETVECTOROPERATIONSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetVectorOperationSGIX")) == NULL) || r;
- r = ((glVectorOperationSGIX = (PFNGLVECTOROPERATIONSGIXPROC)glewGetProcAddress((const GLubyte*)"glVectorOperationSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_vector_ops */
-
-#ifdef GL_SGIX_vertex_array_object
-
-static GLboolean _glewInit_GL_SGIX_vertex_array_object ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAreVertexArraysResidentSGIX = (PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC)glewGetProcAddress((const GLubyte*)"glAreVertexArraysResidentSGIX")) == NULL) || r;
- r = ((glBindVertexArraySGIX = (PFNGLBINDVERTEXARRAYSGIXPROC)glewGetProcAddress((const GLubyte*)"glBindVertexArraySGIX")) == NULL) || r;
- r = ((glDeleteVertexArraysSGIX = (PFNGLDELETEVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexArraysSGIX")) == NULL) || r;
- r = ((glGenVertexArraysSGIX = (PFNGLGENVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGenVertexArraysSGIX")) == NULL) || r;
- r = ((glIsVertexArraySGIX = (PFNGLISVERTEXARRAYSGIXPROC)glewGetProcAddress((const GLubyte*)"glIsVertexArraySGIX")) == NULL) || r;
- r = ((glPrioritizeVertexArraysSGIX = (PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glPrioritizeVertexArraysSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGIX_vertex_array_object */
-
-#ifdef GL_SGI_color_table
-
-static GLboolean _glewInit_GL_SGI_color_table ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glColorTableParameterfvSGI = (PFNGLCOLORTABLEPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glColorTableParameterfvSGI")) == NULL) || r;
- r = ((glColorTableParameterivSGI = (PFNGLCOLORTABLEPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glColorTableParameterivSGI")) == NULL) || r;
- r = ((glColorTableSGI = (PFNGLCOLORTABLESGIPROC)glewGetProcAddress((const GLubyte*)"glColorTableSGI")) == NULL) || r;
- r = ((glCopyColorTableSGI = (PFNGLCOPYCOLORTABLESGIPROC)glewGetProcAddress((const GLubyte*)"glCopyColorTableSGI")) == NULL) || r;
- r = ((glGetColorTableParameterfvSGI = (PFNGLGETCOLORTABLEPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameterfvSGI")) == NULL) || r;
- r = ((glGetColorTableParameterivSGI = (PFNGLGETCOLORTABLEPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameterivSGI")) == NULL) || r;
- r = ((glGetColorTableSGI = (PFNGLGETCOLORTABLESGIPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableSGI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGI_color_table */
-
-#ifdef GL_SGI_fft
-
-static GLboolean _glewInit_GL_SGI_fft ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGetPixelTransformParameterfvSGI = (PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterfvSGI")) == NULL) || r;
- r = ((glGetPixelTransformParameterivSGI = (PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterivSGI")) == NULL) || r;
- r = ((glPixelTransformParameterfSGI = (PFNGLPIXELTRANSFORMPARAMETERFSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfSGI")) == NULL) || r;
- r = ((glPixelTransformParameterfvSGI = (PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfvSGI")) == NULL) || r;
- r = ((glPixelTransformParameteriSGI = (PFNGLPIXELTRANSFORMPARAMETERISGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameteriSGI")) == NULL) || r;
- r = ((glPixelTransformParameterivSGI = (PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterivSGI")) == NULL) || r;
- r = ((glPixelTransformSGI = (PFNGLPIXELTRANSFORMSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformSGI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SGI_fft */
-
-#ifdef GL_SUNX_constant_data
-
-static GLboolean _glewInit_GL_SUNX_constant_data ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glFinishTextureSUNX = (PFNGLFINISHTEXTURESUNXPROC)glewGetProcAddress((const GLubyte*)"glFinishTextureSUNX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SUNX_constant_data */
-
-#ifdef GL_SUN_global_alpha
-
-static GLboolean _glewInit_GL_SUN_global_alpha ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glGlobalAlphaFactorbSUN = (PFNGLGLOBALALPHAFACTORBSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactorbSUN")) == NULL) || r;
- r = ((glGlobalAlphaFactordSUN = (PFNGLGLOBALALPHAFACTORDSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactordSUN")) == NULL) || r;
- r = ((glGlobalAlphaFactorfSUN = (PFNGLGLOBALALPHAFACTORFSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactorfSUN")) == NULL) || r;
- r = ((glGlobalAlphaFactoriSUN = (PFNGLGLOBALALPHAFACTORISUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactoriSUN")) == NULL) || r;
- r = ((glGlobalAlphaFactorsSUN = (PFNGLGLOBALALPHAFACTORSSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactorsSUN")) == NULL) || r;
- r = ((glGlobalAlphaFactorubSUN = (PFNGLGLOBALALPHAFACTORUBSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactorubSUN")) == NULL) || r;
- r = ((glGlobalAlphaFactoruiSUN = (PFNGLGLOBALALPHAFACTORUISUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactoruiSUN")) == NULL) || r;
- r = ((glGlobalAlphaFactorusSUN = (PFNGLGLOBALALPHAFACTORUSSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactorusSUN")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SUN_global_alpha */
-
-#ifdef GL_SUN_read_video_pixels
-
-static GLboolean _glewInit_GL_SUN_read_video_pixels ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glReadVideoPixelsSUN = (PFNGLREADVIDEOPIXELSSUNPROC)glewGetProcAddress((const GLubyte*)"glReadVideoPixelsSUN")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SUN_read_video_pixels */
-
-#ifdef GL_SUN_triangle_list
-
-static GLboolean _glewInit_GL_SUN_triangle_list ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glReplacementCodePointerSUN = (PFNGLREPLACEMENTCODEPOINTERSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodePointerSUN")) == NULL) || r;
- r = ((glReplacementCodeubSUN = (PFNGLREPLACEMENTCODEUBSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeubSUN")) == NULL) || r;
- r = ((glReplacementCodeubvSUN = (PFNGLREPLACEMENTCODEUBVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeubvSUN")) == NULL) || r;
- r = ((glReplacementCodeuiSUN = (PFNGLREPLACEMENTCODEUISUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiSUN")) == NULL) || r;
- r = ((glReplacementCodeuivSUN = (PFNGLREPLACEMENTCODEUIVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuivSUN")) == NULL) || r;
- r = ((glReplacementCodeusSUN = (PFNGLREPLACEMENTCODEUSSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeusSUN")) == NULL) || r;
- r = ((glReplacementCodeusvSUN = (PFNGLREPLACEMENTCODEUSVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeusvSUN")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SUN_triangle_list */
-
-#ifdef GL_SUN_vertex
-
-static GLboolean _glewInit_GL_SUN_vertex ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glColor3fVertex3fSUN = (PFNGLCOLOR3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glColor3fVertex3fSUN")) == NULL) || r;
- r = ((glColor3fVertex3fvSUN = (PFNGLCOLOR3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glColor3fVertex3fvSUN")) == NULL) || r;
- r = ((glColor4fNormal3fVertex3fSUN = (PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4fNormal3fVertex3fSUN")) == NULL) || r;
- r = ((glColor4fNormal3fVertex3fvSUN = (PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4fNormal3fVertex3fvSUN")) == NULL) || r;
- r = ((glColor4ubVertex2fSUN = (PFNGLCOLOR4UBVERTEX2FSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4ubVertex2fSUN")) == NULL) || r;
- r = ((glColor4ubVertex2fvSUN = (PFNGLCOLOR4UBVERTEX2FVSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4ubVertex2fvSUN")) == NULL) || r;
- r = ((glColor4ubVertex3fSUN = (PFNGLCOLOR4UBVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4ubVertex3fSUN")) == NULL) || r;
- r = ((glColor4ubVertex3fvSUN = (PFNGLCOLOR4UBVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4ubVertex3fvSUN")) == NULL) || r;
- r = ((glNormal3fVertex3fSUN = (PFNGLNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glNormal3fVertex3fSUN")) == NULL) || r;
- r = ((glNormal3fVertex3fvSUN = (PFNGLNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glNormal3fVertex3fvSUN")) == NULL) || r;
- r = ((glReplacementCodeuiColor3fVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor3fVertex3fSUN")) == NULL) || r;
- r = ((glReplacementCodeuiColor3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor3fVertex3fvSUN")) == NULL) || r;
- r = ((glReplacementCodeuiColor4fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor4fNormal3fVertex3fSUN")) == NULL) || r;
- r = ((glReplacementCodeuiColor4fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor4fNormal3fVertex3fvSUN")) == NULL) || r;
- r = ((glReplacementCodeuiColor4ubVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor4ubVertex3fSUN")) == NULL) || r;
- r = ((glReplacementCodeuiColor4ubVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor4ubVertex3fvSUN")) == NULL) || r;
- r = ((glReplacementCodeuiNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiNormal3fVertex3fSUN")) == NULL) || r;
- r = ((glReplacementCodeuiNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiNormal3fVertex3fvSUN")) == NULL) || r;
- r = ((glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN")) == NULL) || r;
- r = ((glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")) == NULL) || r;
- r = ((glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN")) == NULL) || r;
- r = ((glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")) == NULL) || r;
- r = ((glReplacementCodeuiTexCoord2fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fVertex3fSUN")) == NULL) || r;
- r = ((glReplacementCodeuiTexCoord2fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fVertex3fvSUN")) == NULL) || r;
- r = ((glReplacementCodeuiVertex3fSUN = (PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiVertex3fSUN")) == NULL) || r;
- r = ((glReplacementCodeuiVertex3fvSUN = (PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiVertex3fvSUN")) == NULL) || r;
- r = ((glTexCoord2fColor3fVertex3fSUN = (PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor3fVertex3fSUN")) == NULL) || r;
- r = ((glTexCoord2fColor3fVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor3fVertex3fvSUN")) == NULL) || r;
- r = ((glTexCoord2fColor4fNormal3fVertex3fSUN = (PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor4fNormal3fVertex3fSUN")) == NULL) || r;
- r = ((glTexCoord2fColor4fNormal3fVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor4fNormal3fVertex3fvSUN")) == NULL) || r;
- r = ((glTexCoord2fColor4ubVertex3fSUN = (PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor4ubVertex3fSUN")) == NULL) || r;
- r = ((glTexCoord2fColor4ubVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor4ubVertex3fvSUN")) == NULL) || r;
- r = ((glTexCoord2fNormal3fVertex3fSUN = (PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fNormal3fVertex3fSUN")) == NULL) || r;
- r = ((glTexCoord2fNormal3fVertex3fvSUN = (PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fNormal3fVertex3fvSUN")) == NULL) || r;
- r = ((glTexCoord2fVertex3fSUN = (PFNGLTEXCOORD2FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fVertex3fSUN")) == NULL) || r;
- r = ((glTexCoord2fVertex3fvSUN = (PFNGLTEXCOORD2FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fVertex3fvSUN")) == NULL) || r;
- r = ((glTexCoord4fColor4fNormal3fVertex4fSUN = (PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4fColor4fNormal3fVertex4fSUN")) == NULL) || r;
- r = ((glTexCoord4fColor4fNormal3fVertex4fvSUN = (PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4fColor4fNormal3fVertex4fvSUN")) == NULL) || r;
- r = ((glTexCoord4fVertex4fSUN = (PFNGLTEXCOORD4FVERTEX4FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4fVertex4fSUN")) == NULL) || r;
- r = ((glTexCoord4fVertex4fvSUN = (PFNGLTEXCOORD4FVERTEX4FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4fVertex4fvSUN")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_SUN_vertex */
-
-#ifdef GL_WIN_swap_hint
-
-static GLboolean _glewInit_GL_WIN_swap_hint ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glAddSwapHintRectWIN = (PFNGLADDSWAPHINTRECTWINPROC)glewGetProcAddress((const GLubyte*)"glAddSwapHintRectWIN")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GL_WIN_swap_hint */
-
-/* ------------------------------------------------------------------------- */
-
-static int _glewExtensionCompare(const char *s1, const char *s2)
-{
- /* http://www.chanduthedev.com/2012/07/strcmp-implementation-in-c.html */
- while (*s1 || *s2)
- {
- if (*s1 > *s2)
- return 1;
- if (*s1 < *s2)
- return -1;
- s1++;
- s2++;
- }
- return 0;
-}
-
-static ptrdiff_t _glewBsearchExtension(const char* name)
-{
- ptrdiff_t lo = 0, hi = sizeof(_glewExtensionLookup) / sizeof(char*) - 2;
-
- while (lo <= hi)
- {
- ptrdiff_t mid = (lo + hi) / 2;
- const int cmp = _glewExtensionCompare(name, _glewExtensionLookup[mid]);
- if (cmp < 0) hi = mid - 1;
- else if (cmp > 0) lo = mid + 1;
- else return mid;
- }
- return -1;
-}
-
-static GLboolean *_glewGetExtensionString(const char *name)
-{
- ptrdiff_t n = _glewBsearchExtension(name);
- if (n >= 0) return &_glewExtensionString[n];
- return NULL;
-}
-
-static GLboolean *_glewGetExtensionEnable(const char *name)
-{
- ptrdiff_t n = _glewBsearchExtension(name);
- if (n >= 0) return _glewExtensionEnabled[n];
- return NULL;
-}
-
-static const char *_glewNextSpace(const char *i)
-{
- const char *j = i;
- if (j)
- while (*j!=' ' && *j) ++j;
- return j;
-}
-
-static const char *_glewNextNonSpace(const char *i)
-{
- const char *j = i;
- if (j)
- while (*j==' ') ++j;
- return j;
-}
-
-GLboolean GLEWAPIENTRY glewGetExtension (const char* name)
-{
- GLboolean *enable = _glewGetExtensionString(name);
- if (enable)
- return *enable;
- return GL_FALSE;
-}
-
-/* ------------------------------------------------------------------------- */
-
-typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGPROC) (GLenum name);
-typedef void (GLAPIENTRY * PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params);
-
-static GLenum GLEWAPIENTRY glewContextInit ()
-{
- PFNGLGETSTRINGPROC getString;
- const GLubyte* s;
- GLuint dot;
- GLint major, minor;
-
- #ifdef _WIN32
- getString = glGetString;
- #else
- getString = (PFNGLGETSTRINGPROC) glewGetProcAddress((const GLubyte*)"glGetString");
- if (!getString)
- return GLEW_ERROR_NO_GL_VERSION;
- #endif
-
- /* query opengl version */
- s = getString(GL_VERSION);
- dot = _glewStrCLen(s, '.');
- if (dot == 0)
- return GLEW_ERROR_NO_GL_VERSION;
-
- major = s[dot-1]-'0';
- minor = s[dot+1]-'0';
-
- if (minor < 0 || minor > 9)
- minor = 0;
- if (major<0 || major>9)
- return GLEW_ERROR_NO_GL_VERSION;
-
- if (major == 1 && minor == 0)
- {
- return GLEW_ERROR_GL_VERSION_10_ONLY;
- }
- else
- {
- GLEW_VERSION_4_6 = ( major > 4 ) || ( major == 4 && minor >= 6 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_4_5 = GLEW_VERSION_4_6 == GL_TRUE || ( major == 4 && minor >= 5 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_4_4 = GLEW_VERSION_4_5 == GL_TRUE || ( major == 4 && minor >= 4 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_4_3 = GLEW_VERSION_4_4 == GL_TRUE || ( major == 4 && minor >= 3 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_4_2 = GLEW_VERSION_4_3 == GL_TRUE || ( major == 4 && minor >= 2 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_4_1 = GLEW_VERSION_4_2 == GL_TRUE || ( major == 4 && minor >= 1 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_4_0 = GLEW_VERSION_4_1 == GL_TRUE || ( major == 4 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_3_3 = GLEW_VERSION_4_0 == GL_TRUE || ( major == 3 && minor >= 3 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_3_2 = GLEW_VERSION_3_3 == GL_TRUE || ( major == 3 && minor >= 2 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_3_1 = GLEW_VERSION_3_2 == GL_TRUE || ( major == 3 && minor >= 1 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_3_0 = GLEW_VERSION_3_1 == GL_TRUE || ( major == 3 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_2_1 = GLEW_VERSION_3_0 == GL_TRUE || ( major == 2 && minor >= 1 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_2_0 = GLEW_VERSION_2_1 == GL_TRUE || ( major == 2 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_1_5 = GLEW_VERSION_2_0 == GL_TRUE || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_1_4 = GLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_1_3 = GLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_1_2_1 = GLEW_VERSION_1_3 == GL_TRUE ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_1_2 = GLEW_VERSION_1_2_1 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE;
- GLEW_VERSION_1_1 = GLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE;
- }
-
- {
- size_t i;
- for (i = 0; i < sizeof(_glewExtensionString) / sizeof(_glewExtensionString[0]); ++i)
- _glewExtensionString[i] = GL_FALSE;
- }
-
- if (GLEW_VERSION_3_0)
- {
- GLint n = 0;
- GLint i;
- PFNGLGETINTEGERVPROC getIntegerv;
- PFNGLGETSTRINGIPROC getStringi;
- const char *ext;
- GLboolean *enable;
-
- #ifdef _WIN32
- getIntegerv = glGetIntegerv;
- #else
- getIntegerv = (PFNGLGETINTEGERVPROC) glewGetProcAddress((const GLubyte*)"glGetIntegerv");
- #endif
-
- if (getIntegerv)
- getIntegerv(GL_NUM_EXTENSIONS, &n);
-
- /* glGetStringi is OpenGL 3.0 */
- getStringi = (PFNGLGETSTRINGIPROC) glewGetProcAddress((const GLubyte*)"glGetStringi");
- if (getStringi)
- for (i = 0; i= (ptrdiff_t) sizeof(ext))
- continue;
- _glewStrCopy(ext, i, ' ');
-
- /* Based on extension string(s), glewGetExtension purposes */
- enable = _glewGetExtensionString(ext);
- if (enable)
- *enable = GL_TRUE;
-
- /* Based on extension string(s), experimental mode, glewIsSupported purposes */
- enable = _glewGetExtensionEnable(ext);
- if (enable)
- *enable = GL_TRUE;
- }
- }
- }
-#ifdef GL_VERSION_1_2
- if (glewExperimental || GLEW_VERSION_1_2) GLEW_VERSION_1_2 = !_glewInit_GL_VERSION_1_2();
-#endif /* GL_VERSION_1_2 */
-#ifdef GL_VERSION_1_3
- if (glewExperimental || GLEW_VERSION_1_3) GLEW_VERSION_1_3 = !_glewInit_GL_VERSION_1_3();
-#endif /* GL_VERSION_1_3 */
-#ifdef GL_VERSION_1_4
- if (glewExperimental || GLEW_VERSION_1_4) GLEW_VERSION_1_4 = !_glewInit_GL_VERSION_1_4();
-#endif /* GL_VERSION_1_4 */
-#ifdef GL_VERSION_1_5
- if (glewExperimental || GLEW_VERSION_1_5) GLEW_VERSION_1_5 = !_glewInit_GL_VERSION_1_5();
-#endif /* GL_VERSION_1_5 */
-#ifdef GL_VERSION_2_0
- if (glewExperimental || GLEW_VERSION_2_0) GLEW_VERSION_2_0 = !_glewInit_GL_VERSION_2_0();
-#endif /* GL_VERSION_2_0 */
-#ifdef GL_VERSION_2_1
- if (glewExperimental || GLEW_VERSION_2_1) GLEW_VERSION_2_1 = !_glewInit_GL_VERSION_2_1();
-#endif /* GL_VERSION_2_1 */
-#ifdef GL_VERSION_3_0
- if (glewExperimental || GLEW_VERSION_3_0) GLEW_VERSION_3_0 = !_glewInit_GL_VERSION_3_0();
-#endif /* GL_VERSION_3_0 */
-#ifdef GL_VERSION_3_1
- if (glewExperimental || GLEW_VERSION_3_1) GLEW_VERSION_3_1 = !_glewInit_GL_VERSION_3_1();
-#endif /* GL_VERSION_3_1 */
-#ifdef GL_VERSION_3_2
- if (glewExperimental || GLEW_VERSION_3_2) GLEW_VERSION_3_2 = !_glewInit_GL_VERSION_3_2();
-#endif /* GL_VERSION_3_2 */
-#ifdef GL_VERSION_3_3
- if (glewExperimental || GLEW_VERSION_3_3) GLEW_VERSION_3_3 = !_glewInit_GL_VERSION_3_3();
-#endif /* GL_VERSION_3_3 */
-#ifdef GL_VERSION_4_0
- if (glewExperimental || GLEW_VERSION_4_0) GLEW_VERSION_4_0 = !_glewInit_GL_VERSION_4_0();
-#endif /* GL_VERSION_4_0 */
-#ifdef GL_VERSION_4_5
- if (glewExperimental || GLEW_VERSION_4_5) GLEW_VERSION_4_5 = !_glewInit_GL_VERSION_4_5();
-#endif /* GL_VERSION_4_5 */
-#ifdef GL_VERSION_4_6
- if (glewExperimental || GLEW_VERSION_4_6) GLEW_VERSION_4_6 = !_glewInit_GL_VERSION_4_6();
-#endif /* GL_VERSION_4_6 */
-#ifdef GL_3DFX_tbuffer
- if (glewExperimental || GLEW_3DFX_tbuffer) GLEW_3DFX_tbuffer = !_glewInit_GL_3DFX_tbuffer();
-#endif /* GL_3DFX_tbuffer */
-#ifdef GL_AMD_debug_output
- if (glewExperimental || GLEW_AMD_debug_output) GLEW_AMD_debug_output = !_glewInit_GL_AMD_debug_output();
-#endif /* GL_AMD_debug_output */
-#ifdef GL_AMD_draw_buffers_blend
- if (glewExperimental || GLEW_AMD_draw_buffers_blend) GLEW_AMD_draw_buffers_blend = !_glewInit_GL_AMD_draw_buffers_blend();
-#endif /* GL_AMD_draw_buffers_blend */
-#ifdef GL_AMD_framebuffer_multisample_advanced
- if (glewExperimental || GLEW_AMD_framebuffer_multisample_advanced) GLEW_AMD_framebuffer_multisample_advanced = !_glewInit_GL_AMD_framebuffer_multisample_advanced();
-#endif /* GL_AMD_framebuffer_multisample_advanced */
-#ifdef GL_AMD_framebuffer_sample_positions
- if (glewExperimental || GLEW_AMD_framebuffer_sample_positions) GLEW_AMD_framebuffer_sample_positions = !_glewInit_GL_AMD_framebuffer_sample_positions();
-#endif /* GL_AMD_framebuffer_sample_positions */
-#ifdef GL_AMD_interleaved_elements
- if (glewExperimental || GLEW_AMD_interleaved_elements) GLEW_AMD_interleaved_elements = !_glewInit_GL_AMD_interleaved_elements();
-#endif /* GL_AMD_interleaved_elements */
-#ifdef GL_AMD_multi_draw_indirect
- if (glewExperimental || GLEW_AMD_multi_draw_indirect) GLEW_AMD_multi_draw_indirect = !_glewInit_GL_AMD_multi_draw_indirect();
-#endif /* GL_AMD_multi_draw_indirect */
-#ifdef GL_AMD_name_gen_delete
- if (glewExperimental || GLEW_AMD_name_gen_delete) GLEW_AMD_name_gen_delete = !_glewInit_GL_AMD_name_gen_delete();
-#endif /* GL_AMD_name_gen_delete */
-#ifdef GL_AMD_occlusion_query_event
- if (glewExperimental || GLEW_AMD_occlusion_query_event) GLEW_AMD_occlusion_query_event = !_glewInit_GL_AMD_occlusion_query_event();
-#endif /* GL_AMD_occlusion_query_event */
-#ifdef GL_AMD_performance_monitor
- if (glewExperimental || GLEW_AMD_performance_monitor) GLEW_AMD_performance_monitor = !_glewInit_GL_AMD_performance_monitor();
-#endif /* GL_AMD_performance_monitor */
-#ifdef GL_AMD_sample_positions
- if (glewExperimental || GLEW_AMD_sample_positions) GLEW_AMD_sample_positions = !_glewInit_GL_AMD_sample_positions();
-#endif /* GL_AMD_sample_positions */
-#ifdef GL_AMD_sparse_texture
- if (glewExperimental || GLEW_AMD_sparse_texture) GLEW_AMD_sparse_texture = !_glewInit_GL_AMD_sparse_texture();
-#endif /* GL_AMD_sparse_texture */
-#ifdef GL_AMD_stencil_operation_extended
- if (glewExperimental || GLEW_AMD_stencil_operation_extended) GLEW_AMD_stencil_operation_extended = !_glewInit_GL_AMD_stencil_operation_extended();
-#endif /* GL_AMD_stencil_operation_extended */
-#ifdef GL_AMD_vertex_shader_tessellator
- if (glewExperimental || GLEW_AMD_vertex_shader_tessellator) GLEW_AMD_vertex_shader_tessellator = !_glewInit_GL_AMD_vertex_shader_tessellator();
-#endif /* GL_AMD_vertex_shader_tessellator */
-#ifdef GL_ANGLE_framebuffer_blit
- if (glewExperimental || GLEW_ANGLE_framebuffer_blit) GLEW_ANGLE_framebuffer_blit = !_glewInit_GL_ANGLE_framebuffer_blit();
-#endif /* GL_ANGLE_framebuffer_blit */
-#ifdef GL_ANGLE_framebuffer_multisample
- if (glewExperimental || GLEW_ANGLE_framebuffer_multisample) GLEW_ANGLE_framebuffer_multisample = !_glewInit_GL_ANGLE_framebuffer_multisample();
-#endif /* GL_ANGLE_framebuffer_multisample */
-#ifdef GL_ANGLE_instanced_arrays
- if (glewExperimental || GLEW_ANGLE_instanced_arrays) GLEW_ANGLE_instanced_arrays = !_glewInit_GL_ANGLE_instanced_arrays();
-#endif /* GL_ANGLE_instanced_arrays */
-#ifdef GL_ANGLE_timer_query
- if (glewExperimental || GLEW_ANGLE_timer_query) GLEW_ANGLE_timer_query = !_glewInit_GL_ANGLE_timer_query();
-#endif /* GL_ANGLE_timer_query */
-#ifdef GL_ANGLE_translated_shader_source
- if (glewExperimental || GLEW_ANGLE_translated_shader_source) GLEW_ANGLE_translated_shader_source = !_glewInit_GL_ANGLE_translated_shader_source();
-#endif /* GL_ANGLE_translated_shader_source */
-#ifdef GL_APPLE_copy_texture_levels
- if (glewExperimental || GLEW_APPLE_copy_texture_levels) GLEW_APPLE_copy_texture_levels = !_glewInit_GL_APPLE_copy_texture_levels();
-#endif /* GL_APPLE_copy_texture_levels */
-#ifdef GL_APPLE_element_array
- if (glewExperimental || GLEW_APPLE_element_array) GLEW_APPLE_element_array = !_glewInit_GL_APPLE_element_array();
-#endif /* GL_APPLE_element_array */
-#ifdef GL_APPLE_fence
- if (glewExperimental || GLEW_APPLE_fence) GLEW_APPLE_fence = !_glewInit_GL_APPLE_fence();
-#endif /* GL_APPLE_fence */
-#ifdef GL_APPLE_flush_buffer_range
- if (glewExperimental || GLEW_APPLE_flush_buffer_range) GLEW_APPLE_flush_buffer_range = !_glewInit_GL_APPLE_flush_buffer_range();
-#endif /* GL_APPLE_flush_buffer_range */
-#ifdef GL_APPLE_framebuffer_multisample
- if (glewExperimental || GLEW_APPLE_framebuffer_multisample) GLEW_APPLE_framebuffer_multisample = !_glewInit_GL_APPLE_framebuffer_multisample();
-#endif /* GL_APPLE_framebuffer_multisample */
-#ifdef GL_APPLE_object_purgeable
- if (glewExperimental || GLEW_APPLE_object_purgeable) GLEW_APPLE_object_purgeable = !_glewInit_GL_APPLE_object_purgeable();
-#endif /* GL_APPLE_object_purgeable */
-#ifdef GL_APPLE_sync
- if (glewExperimental || GLEW_APPLE_sync) GLEW_APPLE_sync = !_glewInit_GL_APPLE_sync();
-#endif /* GL_APPLE_sync */
-#ifdef GL_APPLE_texture_range
- if (glewExperimental || GLEW_APPLE_texture_range) GLEW_APPLE_texture_range = !_glewInit_GL_APPLE_texture_range();
-#endif /* GL_APPLE_texture_range */
-#ifdef GL_APPLE_vertex_array_object
- if (glewExperimental || GLEW_APPLE_vertex_array_object) GLEW_APPLE_vertex_array_object = !_glewInit_GL_APPLE_vertex_array_object();
-#endif /* GL_APPLE_vertex_array_object */
-#ifdef GL_APPLE_vertex_array_range
- if (glewExperimental || GLEW_APPLE_vertex_array_range) GLEW_APPLE_vertex_array_range = !_glewInit_GL_APPLE_vertex_array_range();
-#endif /* GL_APPLE_vertex_array_range */
-#ifdef GL_APPLE_vertex_program_evaluators
- if (glewExperimental || GLEW_APPLE_vertex_program_evaluators) GLEW_APPLE_vertex_program_evaluators = !_glewInit_GL_APPLE_vertex_program_evaluators();
-#endif /* GL_APPLE_vertex_program_evaluators */
-#ifdef GL_ARB_ES2_compatibility
- if (glewExperimental || GLEW_ARB_ES2_compatibility) GLEW_ARB_ES2_compatibility = !_glewInit_GL_ARB_ES2_compatibility();
-#endif /* GL_ARB_ES2_compatibility */
-#ifdef GL_ARB_ES3_1_compatibility
- if (glewExperimental || GLEW_ARB_ES3_1_compatibility) GLEW_ARB_ES3_1_compatibility = !_glewInit_GL_ARB_ES3_1_compatibility();
-#endif /* GL_ARB_ES3_1_compatibility */
-#ifdef GL_ARB_ES3_2_compatibility
- if (glewExperimental || GLEW_ARB_ES3_2_compatibility) GLEW_ARB_ES3_2_compatibility = !_glewInit_GL_ARB_ES3_2_compatibility();
-#endif /* GL_ARB_ES3_2_compatibility */
-#ifdef GL_ARB_base_instance
- if (glewExperimental || GLEW_ARB_base_instance) GLEW_ARB_base_instance = !_glewInit_GL_ARB_base_instance();
-#endif /* GL_ARB_base_instance */
-#ifdef GL_ARB_bindless_texture
- if (glewExperimental || GLEW_ARB_bindless_texture) GLEW_ARB_bindless_texture = !_glewInit_GL_ARB_bindless_texture();
-#endif /* GL_ARB_bindless_texture */
-#ifdef GL_ARB_blend_func_extended
- if (glewExperimental || GLEW_ARB_blend_func_extended) GLEW_ARB_blend_func_extended = !_glewInit_GL_ARB_blend_func_extended();
-#endif /* GL_ARB_blend_func_extended */
-#ifdef GL_ARB_buffer_storage
- if (glewExperimental || GLEW_ARB_buffer_storage) GLEW_ARB_buffer_storage = !_glewInit_GL_ARB_buffer_storage();
-#endif /* GL_ARB_buffer_storage */
-#ifdef GL_ARB_cl_event
- if (glewExperimental || GLEW_ARB_cl_event) GLEW_ARB_cl_event = !_glewInit_GL_ARB_cl_event();
-#endif /* GL_ARB_cl_event */
-#ifdef GL_ARB_clear_buffer_object
- if (glewExperimental || GLEW_ARB_clear_buffer_object) GLEW_ARB_clear_buffer_object = !_glewInit_GL_ARB_clear_buffer_object();
-#endif /* GL_ARB_clear_buffer_object */
-#ifdef GL_ARB_clear_texture
- if (glewExperimental || GLEW_ARB_clear_texture) GLEW_ARB_clear_texture = !_glewInit_GL_ARB_clear_texture();
-#endif /* GL_ARB_clear_texture */
-#ifdef GL_ARB_clip_control
- if (glewExperimental || GLEW_ARB_clip_control) GLEW_ARB_clip_control = !_glewInit_GL_ARB_clip_control();
-#endif /* GL_ARB_clip_control */
-#ifdef GL_ARB_color_buffer_float
- if (glewExperimental || GLEW_ARB_color_buffer_float) GLEW_ARB_color_buffer_float = !_glewInit_GL_ARB_color_buffer_float();
-#endif /* GL_ARB_color_buffer_float */
-#ifdef GL_ARB_compute_shader
- if (glewExperimental || GLEW_ARB_compute_shader) GLEW_ARB_compute_shader = !_glewInit_GL_ARB_compute_shader();
-#endif /* GL_ARB_compute_shader */
-#ifdef GL_ARB_compute_variable_group_size
- if (glewExperimental || GLEW_ARB_compute_variable_group_size) GLEW_ARB_compute_variable_group_size = !_glewInit_GL_ARB_compute_variable_group_size();
-#endif /* GL_ARB_compute_variable_group_size */
-#ifdef GL_ARB_copy_buffer
- if (glewExperimental || GLEW_ARB_copy_buffer) GLEW_ARB_copy_buffer = !_glewInit_GL_ARB_copy_buffer();
-#endif /* GL_ARB_copy_buffer */
-#ifdef GL_ARB_copy_image
- if (glewExperimental || GLEW_ARB_copy_image) GLEW_ARB_copy_image = !_glewInit_GL_ARB_copy_image();
-#endif /* GL_ARB_copy_image */
-#ifdef GL_ARB_debug_output
- if (glewExperimental || GLEW_ARB_debug_output) GLEW_ARB_debug_output = !_glewInit_GL_ARB_debug_output();
-#endif /* GL_ARB_debug_output */
-#ifdef GL_ARB_direct_state_access
- if (glewExperimental || GLEW_ARB_direct_state_access) GLEW_ARB_direct_state_access = !_glewInit_GL_ARB_direct_state_access();
-#endif /* GL_ARB_direct_state_access */
-#ifdef GL_ARB_draw_buffers
- if (glewExperimental || GLEW_ARB_draw_buffers) GLEW_ARB_draw_buffers = !_glewInit_GL_ARB_draw_buffers();
-#endif /* GL_ARB_draw_buffers */
-#ifdef GL_ARB_draw_buffers_blend
- if (glewExperimental || GLEW_ARB_draw_buffers_blend) GLEW_ARB_draw_buffers_blend = !_glewInit_GL_ARB_draw_buffers_blend();
-#endif /* GL_ARB_draw_buffers_blend */
-#ifdef GL_ARB_draw_elements_base_vertex
- if (glewExperimental || GLEW_ARB_draw_elements_base_vertex) GLEW_ARB_draw_elements_base_vertex = !_glewInit_GL_ARB_draw_elements_base_vertex();
-#endif /* GL_ARB_draw_elements_base_vertex */
-#ifdef GL_ARB_draw_indirect
- if (glewExperimental || GLEW_ARB_draw_indirect) GLEW_ARB_draw_indirect = !_glewInit_GL_ARB_draw_indirect();
-#endif /* GL_ARB_draw_indirect */
-#ifdef GL_ARB_framebuffer_no_attachments
- if (glewExperimental || GLEW_ARB_framebuffer_no_attachments) GLEW_ARB_framebuffer_no_attachments = !_glewInit_GL_ARB_framebuffer_no_attachments();
-#endif /* GL_ARB_framebuffer_no_attachments */
-#ifdef GL_ARB_framebuffer_object
- if (glewExperimental || GLEW_ARB_framebuffer_object) GLEW_ARB_framebuffer_object = !_glewInit_GL_ARB_framebuffer_object();
-#endif /* GL_ARB_framebuffer_object */
-#ifdef GL_ARB_geometry_shader4
- if (glewExperimental || GLEW_ARB_geometry_shader4) GLEW_ARB_geometry_shader4 = !_glewInit_GL_ARB_geometry_shader4();
-#endif /* GL_ARB_geometry_shader4 */
-#ifdef GL_ARB_get_program_binary
- if (glewExperimental || GLEW_ARB_get_program_binary) GLEW_ARB_get_program_binary = !_glewInit_GL_ARB_get_program_binary();
-#endif /* GL_ARB_get_program_binary */
-#ifdef GL_ARB_get_texture_sub_image
- if (glewExperimental || GLEW_ARB_get_texture_sub_image) GLEW_ARB_get_texture_sub_image = !_glewInit_GL_ARB_get_texture_sub_image();
-#endif /* GL_ARB_get_texture_sub_image */
-#ifdef GL_ARB_gl_spirv
- if (glewExperimental || GLEW_ARB_gl_spirv) GLEW_ARB_gl_spirv = !_glewInit_GL_ARB_gl_spirv();
-#endif /* GL_ARB_gl_spirv */
-#ifdef GL_ARB_gpu_shader_fp64
- if (glewExperimental || GLEW_ARB_gpu_shader_fp64) GLEW_ARB_gpu_shader_fp64 = !_glewInit_GL_ARB_gpu_shader_fp64();
-#endif /* GL_ARB_gpu_shader_fp64 */
-#ifdef GL_ARB_gpu_shader_int64
- if (glewExperimental || GLEW_ARB_gpu_shader_int64) GLEW_ARB_gpu_shader_int64 = !_glewInit_GL_ARB_gpu_shader_int64();
-#endif /* GL_ARB_gpu_shader_int64 */
-#ifdef GL_ARB_imaging
- if (glewExperimental || GLEW_ARB_imaging) GLEW_ARB_imaging = !_glewInit_GL_ARB_imaging();
-#endif /* GL_ARB_imaging */
-#ifdef GL_ARB_indirect_parameters
- if (glewExperimental || GLEW_ARB_indirect_parameters) GLEW_ARB_indirect_parameters = !_glewInit_GL_ARB_indirect_parameters();
-#endif /* GL_ARB_indirect_parameters */
-#ifdef GL_ARB_instanced_arrays
- if (glewExperimental || GLEW_ARB_instanced_arrays) GLEW_ARB_instanced_arrays = !_glewInit_GL_ARB_instanced_arrays();
-#endif /* GL_ARB_instanced_arrays */
-#ifdef GL_ARB_internalformat_query
- if (glewExperimental || GLEW_ARB_internalformat_query) GLEW_ARB_internalformat_query = !_glewInit_GL_ARB_internalformat_query();
-#endif /* GL_ARB_internalformat_query */
-#ifdef GL_ARB_internalformat_query2
- if (glewExperimental || GLEW_ARB_internalformat_query2) GLEW_ARB_internalformat_query2 = !_glewInit_GL_ARB_internalformat_query2();
-#endif /* GL_ARB_internalformat_query2 */
-#ifdef GL_ARB_invalidate_subdata
- if (glewExperimental || GLEW_ARB_invalidate_subdata) GLEW_ARB_invalidate_subdata = !_glewInit_GL_ARB_invalidate_subdata();
-#endif /* GL_ARB_invalidate_subdata */
-#ifdef GL_ARB_map_buffer_range
- if (glewExperimental || GLEW_ARB_map_buffer_range) GLEW_ARB_map_buffer_range = !_glewInit_GL_ARB_map_buffer_range();
-#endif /* GL_ARB_map_buffer_range */
-#ifdef GL_ARB_matrix_palette
- if (glewExperimental || GLEW_ARB_matrix_palette) GLEW_ARB_matrix_palette = !_glewInit_GL_ARB_matrix_palette();
-#endif /* GL_ARB_matrix_palette */
-#ifdef GL_ARB_multi_bind
- if (glewExperimental || GLEW_ARB_multi_bind) GLEW_ARB_multi_bind = !_glewInit_GL_ARB_multi_bind();
-#endif /* GL_ARB_multi_bind */
-#ifdef GL_ARB_multi_draw_indirect
- if (glewExperimental || GLEW_ARB_multi_draw_indirect) GLEW_ARB_multi_draw_indirect = !_glewInit_GL_ARB_multi_draw_indirect();
-#endif /* GL_ARB_multi_draw_indirect */
-#ifdef GL_ARB_multisample
- if (glewExperimental || GLEW_ARB_multisample) GLEW_ARB_multisample = !_glewInit_GL_ARB_multisample();
-#endif /* GL_ARB_multisample */
-#ifdef GL_ARB_multitexture
- if (glewExperimental || GLEW_ARB_multitexture) GLEW_ARB_multitexture = !_glewInit_GL_ARB_multitexture();
-#endif /* GL_ARB_multitexture */
-#ifdef GL_ARB_occlusion_query
- if (glewExperimental || GLEW_ARB_occlusion_query) GLEW_ARB_occlusion_query = !_glewInit_GL_ARB_occlusion_query();
-#endif /* GL_ARB_occlusion_query */
-#ifdef GL_ARB_parallel_shader_compile
- if (glewExperimental || GLEW_ARB_parallel_shader_compile) GLEW_ARB_parallel_shader_compile = !_glewInit_GL_ARB_parallel_shader_compile();
-#endif /* GL_ARB_parallel_shader_compile */
-#ifdef GL_ARB_point_parameters
- if (glewExperimental || GLEW_ARB_point_parameters) GLEW_ARB_point_parameters = !_glewInit_GL_ARB_point_parameters();
-#endif /* GL_ARB_point_parameters */
-#ifdef GL_ARB_polygon_offset_clamp
- if (glewExperimental || GLEW_ARB_polygon_offset_clamp) GLEW_ARB_polygon_offset_clamp = !_glewInit_GL_ARB_polygon_offset_clamp();
-#endif /* GL_ARB_polygon_offset_clamp */
-#ifdef GL_ARB_program_interface_query
- if (glewExperimental || GLEW_ARB_program_interface_query) GLEW_ARB_program_interface_query = !_glewInit_GL_ARB_program_interface_query();
-#endif /* GL_ARB_program_interface_query */
-#ifdef GL_ARB_provoking_vertex
- if (glewExperimental || GLEW_ARB_provoking_vertex) GLEW_ARB_provoking_vertex = !_glewInit_GL_ARB_provoking_vertex();
-#endif /* GL_ARB_provoking_vertex */
-#ifdef GL_ARB_robustness
- if (glewExperimental || GLEW_ARB_robustness) GLEW_ARB_robustness = !_glewInit_GL_ARB_robustness();
-#endif /* GL_ARB_robustness */
-#ifdef GL_ARB_sample_locations
- if (glewExperimental || GLEW_ARB_sample_locations) GLEW_ARB_sample_locations = !_glewInit_GL_ARB_sample_locations();
-#endif /* GL_ARB_sample_locations */
-#ifdef GL_ARB_sample_shading
- if (glewExperimental || GLEW_ARB_sample_shading) GLEW_ARB_sample_shading = !_glewInit_GL_ARB_sample_shading();
-#endif /* GL_ARB_sample_shading */
-#ifdef GL_ARB_sampler_objects
- if (glewExperimental || GLEW_ARB_sampler_objects) GLEW_ARB_sampler_objects = !_glewInit_GL_ARB_sampler_objects();
-#endif /* GL_ARB_sampler_objects */
-#ifdef GL_ARB_separate_shader_objects
- if (glewExperimental || GLEW_ARB_separate_shader_objects) GLEW_ARB_separate_shader_objects = !_glewInit_GL_ARB_separate_shader_objects();
-#endif /* GL_ARB_separate_shader_objects */
-#ifdef GL_ARB_shader_atomic_counters
- if (glewExperimental || GLEW_ARB_shader_atomic_counters) GLEW_ARB_shader_atomic_counters = !_glewInit_GL_ARB_shader_atomic_counters();
-#endif /* GL_ARB_shader_atomic_counters */
-#ifdef GL_ARB_shader_image_load_store
- if (glewExperimental || GLEW_ARB_shader_image_load_store) GLEW_ARB_shader_image_load_store = !_glewInit_GL_ARB_shader_image_load_store();
-#endif /* GL_ARB_shader_image_load_store */
-#ifdef GL_ARB_shader_objects
- if (glewExperimental || GLEW_ARB_shader_objects) GLEW_ARB_shader_objects = !_glewInit_GL_ARB_shader_objects();
-#endif /* GL_ARB_shader_objects */
-#ifdef GL_ARB_shader_storage_buffer_object
- if (glewExperimental || GLEW_ARB_shader_storage_buffer_object) GLEW_ARB_shader_storage_buffer_object = !_glewInit_GL_ARB_shader_storage_buffer_object();
-#endif /* GL_ARB_shader_storage_buffer_object */
-#ifdef GL_ARB_shader_subroutine
- if (glewExperimental || GLEW_ARB_shader_subroutine) GLEW_ARB_shader_subroutine = !_glewInit_GL_ARB_shader_subroutine();
-#endif /* GL_ARB_shader_subroutine */
-#ifdef GL_ARB_shading_language_include
- if (glewExperimental || GLEW_ARB_shading_language_include) GLEW_ARB_shading_language_include = !_glewInit_GL_ARB_shading_language_include();
-#endif /* GL_ARB_shading_language_include */
-#ifdef GL_ARB_sparse_buffer
- if (glewExperimental || GLEW_ARB_sparse_buffer) GLEW_ARB_sparse_buffer = !_glewInit_GL_ARB_sparse_buffer();
-#endif /* GL_ARB_sparse_buffer */
-#ifdef GL_ARB_sparse_texture
- if (glewExperimental || GLEW_ARB_sparse_texture) GLEW_ARB_sparse_texture = !_glewInit_GL_ARB_sparse_texture();
-#endif /* GL_ARB_sparse_texture */
-#ifdef GL_ARB_sync
- if (glewExperimental || GLEW_ARB_sync) GLEW_ARB_sync = !_glewInit_GL_ARB_sync();
-#endif /* GL_ARB_sync */
-#ifdef GL_ARB_tessellation_shader
- if (glewExperimental || GLEW_ARB_tessellation_shader) GLEW_ARB_tessellation_shader = !_glewInit_GL_ARB_tessellation_shader();
-#endif /* GL_ARB_tessellation_shader */
-#ifdef GL_ARB_texture_barrier
- if (glewExperimental || GLEW_ARB_texture_barrier) GLEW_ARB_texture_barrier = !_glewInit_GL_ARB_texture_barrier();
-#endif /* GL_ARB_texture_barrier */
-#ifdef GL_ARB_texture_buffer_object
- if (glewExperimental || GLEW_ARB_texture_buffer_object) GLEW_ARB_texture_buffer_object = !_glewInit_GL_ARB_texture_buffer_object();
-#endif /* GL_ARB_texture_buffer_object */
-#ifdef GL_ARB_texture_buffer_range
- if (glewExperimental || GLEW_ARB_texture_buffer_range) GLEW_ARB_texture_buffer_range = !_glewInit_GL_ARB_texture_buffer_range();
-#endif /* GL_ARB_texture_buffer_range */
-#ifdef GL_ARB_texture_compression
- if (glewExperimental || GLEW_ARB_texture_compression) GLEW_ARB_texture_compression = !_glewInit_GL_ARB_texture_compression();
-#endif /* GL_ARB_texture_compression */
-#ifdef GL_ARB_texture_multisample
- if (glewExperimental || GLEW_ARB_texture_multisample) GLEW_ARB_texture_multisample = !_glewInit_GL_ARB_texture_multisample();
-#endif /* GL_ARB_texture_multisample */
-#ifdef GL_ARB_texture_storage
- if (glewExperimental || GLEW_ARB_texture_storage) GLEW_ARB_texture_storage = !_glewInit_GL_ARB_texture_storage();
-#endif /* GL_ARB_texture_storage */
-#ifdef GL_ARB_texture_storage_multisample
- if (glewExperimental || GLEW_ARB_texture_storage_multisample) GLEW_ARB_texture_storage_multisample = !_glewInit_GL_ARB_texture_storage_multisample();
-#endif /* GL_ARB_texture_storage_multisample */
-#ifdef GL_ARB_texture_view
- if (glewExperimental || GLEW_ARB_texture_view) GLEW_ARB_texture_view = !_glewInit_GL_ARB_texture_view();
-#endif /* GL_ARB_texture_view */
-#ifdef GL_ARB_timer_query
- if (glewExperimental || GLEW_ARB_timer_query) GLEW_ARB_timer_query = !_glewInit_GL_ARB_timer_query();
-#endif /* GL_ARB_timer_query */
-#ifdef GL_ARB_transform_feedback2
- if (glewExperimental || GLEW_ARB_transform_feedback2) GLEW_ARB_transform_feedback2 = !_glewInit_GL_ARB_transform_feedback2();
-#endif /* GL_ARB_transform_feedback2 */
-#ifdef GL_ARB_transform_feedback3
- if (glewExperimental || GLEW_ARB_transform_feedback3) GLEW_ARB_transform_feedback3 = !_glewInit_GL_ARB_transform_feedback3();
-#endif /* GL_ARB_transform_feedback3 */
-#ifdef GL_ARB_transform_feedback_instanced
- if (glewExperimental || GLEW_ARB_transform_feedback_instanced) GLEW_ARB_transform_feedback_instanced = !_glewInit_GL_ARB_transform_feedback_instanced();
-#endif /* GL_ARB_transform_feedback_instanced */
-#ifdef GL_ARB_transpose_matrix
- if (glewExperimental || GLEW_ARB_transpose_matrix) GLEW_ARB_transpose_matrix = !_glewInit_GL_ARB_transpose_matrix();
-#endif /* GL_ARB_transpose_matrix */
-#ifdef GL_ARB_uniform_buffer_object
- if (glewExperimental || GLEW_ARB_uniform_buffer_object) GLEW_ARB_uniform_buffer_object = !_glewInit_GL_ARB_uniform_buffer_object();
-#endif /* GL_ARB_uniform_buffer_object */
-#ifdef GL_ARB_vertex_array_object
- if (glewExperimental || GLEW_ARB_vertex_array_object) GLEW_ARB_vertex_array_object = !_glewInit_GL_ARB_vertex_array_object();
-#endif /* GL_ARB_vertex_array_object */
-#ifdef GL_ARB_vertex_attrib_64bit
- if (glewExperimental || GLEW_ARB_vertex_attrib_64bit) GLEW_ARB_vertex_attrib_64bit = !_glewInit_GL_ARB_vertex_attrib_64bit();
-#endif /* GL_ARB_vertex_attrib_64bit */
-#ifdef GL_ARB_vertex_attrib_binding
- if (glewExperimental || GLEW_ARB_vertex_attrib_binding) GLEW_ARB_vertex_attrib_binding = !_glewInit_GL_ARB_vertex_attrib_binding();
-#endif /* GL_ARB_vertex_attrib_binding */
-#ifdef GL_ARB_vertex_blend
- if (glewExperimental || GLEW_ARB_vertex_blend) GLEW_ARB_vertex_blend = !_glewInit_GL_ARB_vertex_blend();
-#endif /* GL_ARB_vertex_blend */
-#ifdef GL_ARB_vertex_buffer_object
- if (glewExperimental || GLEW_ARB_vertex_buffer_object) GLEW_ARB_vertex_buffer_object = !_glewInit_GL_ARB_vertex_buffer_object();
-#endif /* GL_ARB_vertex_buffer_object */
-#ifdef GL_ARB_vertex_program
- if (glewExperimental || GLEW_ARB_vertex_program) GLEW_ARB_vertex_program = !_glewInit_GL_ARB_vertex_program();
-#endif /* GL_ARB_vertex_program */
-#ifdef GL_ARB_vertex_shader
- if (glewExperimental || GLEW_ARB_vertex_shader) { GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(); _glewInit_GL_ARB_vertex_program(); }
-#endif /* GL_ARB_vertex_shader */
-#ifdef GL_ARB_vertex_type_2_10_10_10_rev
- if (glewExperimental || GLEW_ARB_vertex_type_2_10_10_10_rev) GLEW_ARB_vertex_type_2_10_10_10_rev = !_glewInit_GL_ARB_vertex_type_2_10_10_10_rev();
-#endif /* GL_ARB_vertex_type_2_10_10_10_rev */
-#ifdef GL_ARB_viewport_array
- if (glewExperimental || GLEW_ARB_viewport_array) GLEW_ARB_viewport_array = !_glewInit_GL_ARB_viewport_array();
-#endif /* GL_ARB_viewport_array */
-#ifdef GL_ARB_window_pos
- if (glewExperimental || GLEW_ARB_window_pos) GLEW_ARB_window_pos = !_glewInit_GL_ARB_window_pos();
-#endif /* GL_ARB_window_pos */
-#ifdef GL_ATI_draw_buffers
- if (glewExperimental || GLEW_ATI_draw_buffers) GLEW_ATI_draw_buffers = !_glewInit_GL_ATI_draw_buffers();
-#endif /* GL_ATI_draw_buffers */
-#ifdef GL_ATI_element_array
- if (glewExperimental || GLEW_ATI_element_array) GLEW_ATI_element_array = !_glewInit_GL_ATI_element_array();
-#endif /* GL_ATI_element_array */
-#ifdef GL_ATI_envmap_bumpmap
- if (glewExperimental || GLEW_ATI_envmap_bumpmap) GLEW_ATI_envmap_bumpmap = !_glewInit_GL_ATI_envmap_bumpmap();
-#endif /* GL_ATI_envmap_bumpmap */
-#ifdef GL_ATI_fragment_shader
- if (glewExperimental || GLEW_ATI_fragment_shader) GLEW_ATI_fragment_shader = !_glewInit_GL_ATI_fragment_shader();
-#endif /* GL_ATI_fragment_shader */
-#ifdef GL_ATI_map_object_buffer
- if (glewExperimental || GLEW_ATI_map_object_buffer) GLEW_ATI_map_object_buffer = !_glewInit_GL_ATI_map_object_buffer();
-#endif /* GL_ATI_map_object_buffer */
-#ifdef GL_ATI_pn_triangles
- if (glewExperimental || GLEW_ATI_pn_triangles) GLEW_ATI_pn_triangles = !_glewInit_GL_ATI_pn_triangles();
-#endif /* GL_ATI_pn_triangles */
-#ifdef GL_ATI_separate_stencil
- if (glewExperimental || GLEW_ATI_separate_stencil) GLEW_ATI_separate_stencil = !_glewInit_GL_ATI_separate_stencil();
-#endif /* GL_ATI_separate_stencil */
-#ifdef GL_ATI_vertex_array_object
- if (glewExperimental || GLEW_ATI_vertex_array_object) GLEW_ATI_vertex_array_object = !_glewInit_GL_ATI_vertex_array_object();
-#endif /* GL_ATI_vertex_array_object */
-#ifdef GL_ATI_vertex_attrib_array_object
- if (glewExperimental || GLEW_ATI_vertex_attrib_array_object) GLEW_ATI_vertex_attrib_array_object = !_glewInit_GL_ATI_vertex_attrib_array_object();
-#endif /* GL_ATI_vertex_attrib_array_object */
-#ifdef GL_ATI_vertex_streams
- if (glewExperimental || GLEW_ATI_vertex_streams) GLEW_ATI_vertex_streams = !_glewInit_GL_ATI_vertex_streams();
-#endif /* GL_ATI_vertex_streams */
-#ifdef GL_EXT_EGL_image_storage
- if (glewExperimental || GLEW_EXT_EGL_image_storage) GLEW_EXT_EGL_image_storage = !_glewInit_GL_EXT_EGL_image_storage();
-#endif /* GL_EXT_EGL_image_storage */
-#ifdef GL_EXT_base_instance
- if (glewExperimental || GLEW_EXT_base_instance) GLEW_EXT_base_instance = !_glewInit_GL_EXT_base_instance();
-#endif /* GL_EXT_base_instance */
-#ifdef GL_EXT_bindable_uniform
- if (glewExperimental || GLEW_EXT_bindable_uniform) GLEW_EXT_bindable_uniform = !_glewInit_GL_EXT_bindable_uniform();
-#endif /* GL_EXT_bindable_uniform */
-#ifdef GL_EXT_blend_color
- if (glewExperimental || GLEW_EXT_blend_color) GLEW_EXT_blend_color = !_glewInit_GL_EXT_blend_color();
-#endif /* GL_EXT_blend_color */
-#ifdef GL_EXT_blend_equation_separate
- if (glewExperimental || GLEW_EXT_blend_equation_separate) GLEW_EXT_blend_equation_separate = !_glewInit_GL_EXT_blend_equation_separate();
-#endif /* GL_EXT_blend_equation_separate */
-#ifdef GL_EXT_blend_func_extended
- if (glewExperimental || GLEW_EXT_blend_func_extended) GLEW_EXT_blend_func_extended = !_glewInit_GL_EXT_blend_func_extended();
-#endif /* GL_EXT_blend_func_extended */
-#ifdef GL_EXT_blend_func_separate
- if (glewExperimental || GLEW_EXT_blend_func_separate) GLEW_EXT_blend_func_separate = !_glewInit_GL_EXT_blend_func_separate();
-#endif /* GL_EXT_blend_func_separate */
-#ifdef GL_EXT_blend_minmax
- if (glewExperimental || GLEW_EXT_blend_minmax) GLEW_EXT_blend_minmax = !_glewInit_GL_EXT_blend_minmax();
-#endif /* GL_EXT_blend_minmax */
-#ifdef GL_EXT_buffer_storage
- if (glewExperimental || GLEW_EXT_buffer_storage) GLEW_EXT_buffer_storage = !_glewInit_GL_EXT_buffer_storage();
-#endif /* GL_EXT_buffer_storage */
-#ifdef GL_EXT_clear_texture
- if (glewExperimental || GLEW_EXT_clear_texture) GLEW_EXT_clear_texture = !_glewInit_GL_EXT_clear_texture();
-#endif /* GL_EXT_clear_texture */
-#ifdef GL_EXT_clip_control
- if (glewExperimental || GLEW_EXT_clip_control) GLEW_EXT_clip_control = !_glewInit_GL_EXT_clip_control();
-#endif /* GL_EXT_clip_control */
-#ifdef GL_EXT_color_subtable
- if (glewExperimental || GLEW_EXT_color_subtable) GLEW_EXT_color_subtable = !_glewInit_GL_EXT_color_subtable();
-#endif /* GL_EXT_color_subtable */
-#ifdef GL_EXT_compiled_vertex_array
- if (glewExperimental || GLEW_EXT_compiled_vertex_array) GLEW_EXT_compiled_vertex_array = !_glewInit_GL_EXT_compiled_vertex_array();
-#endif /* GL_EXT_compiled_vertex_array */
-#ifdef GL_EXT_convolution
- if (glewExperimental || GLEW_EXT_convolution) GLEW_EXT_convolution = !_glewInit_GL_EXT_convolution();
-#endif /* GL_EXT_convolution */
-#ifdef GL_EXT_coordinate_frame
- if (glewExperimental || GLEW_EXT_coordinate_frame) GLEW_EXT_coordinate_frame = !_glewInit_GL_EXT_coordinate_frame();
-#endif /* GL_EXT_coordinate_frame */
-#ifdef GL_EXT_copy_image
- if (glewExperimental || GLEW_EXT_copy_image) GLEW_EXT_copy_image = !_glewInit_GL_EXT_copy_image();
-#endif /* GL_EXT_copy_image */
-#ifdef GL_EXT_copy_texture
- if (glewExperimental || GLEW_EXT_copy_texture) GLEW_EXT_copy_texture = !_glewInit_GL_EXT_copy_texture();
-#endif /* GL_EXT_copy_texture */
-#ifdef GL_EXT_cull_vertex
- if (glewExperimental || GLEW_EXT_cull_vertex) GLEW_EXT_cull_vertex = !_glewInit_GL_EXT_cull_vertex();
-#endif /* GL_EXT_cull_vertex */
-#ifdef GL_EXT_debug_label
- if (glewExperimental || GLEW_EXT_debug_label) GLEW_EXT_debug_label = !_glewInit_GL_EXT_debug_label();
-#endif /* GL_EXT_debug_label */
-#ifdef GL_EXT_debug_marker
- if (glewExperimental || GLEW_EXT_debug_marker) GLEW_EXT_debug_marker = !_glewInit_GL_EXT_debug_marker();
-#endif /* GL_EXT_debug_marker */
-#ifdef GL_EXT_depth_bounds_test
- if (glewExperimental || GLEW_EXT_depth_bounds_test) GLEW_EXT_depth_bounds_test = !_glewInit_GL_EXT_depth_bounds_test();
-#endif /* GL_EXT_depth_bounds_test */
-#ifdef GL_EXT_direct_state_access
- if (glewExperimental || GLEW_EXT_direct_state_access) GLEW_EXT_direct_state_access = !_glewInit_GL_EXT_direct_state_access();
-#endif /* GL_EXT_direct_state_access */
-#ifdef GL_EXT_discard_framebuffer
- if (glewExperimental || GLEW_EXT_discard_framebuffer) GLEW_EXT_discard_framebuffer = !_glewInit_GL_EXT_discard_framebuffer();
-#endif /* GL_EXT_discard_framebuffer */
-#ifdef GL_EXT_disjoint_timer_query
- if (glewExperimental || GLEW_EXT_disjoint_timer_query) GLEW_EXT_disjoint_timer_query = !_glewInit_GL_EXT_disjoint_timer_query();
-#endif /* GL_EXT_disjoint_timer_query */
-#ifdef GL_EXT_draw_buffers
- if (glewExperimental || GLEW_EXT_draw_buffers) GLEW_EXT_draw_buffers = !_glewInit_GL_EXT_draw_buffers();
-#endif /* GL_EXT_draw_buffers */
-#ifdef GL_EXT_draw_buffers2
- if (glewExperimental || GLEW_EXT_draw_buffers2) GLEW_EXT_draw_buffers2 = !_glewInit_GL_EXT_draw_buffers2();
-#endif /* GL_EXT_draw_buffers2 */
-#ifdef GL_EXT_draw_buffers_indexed
- if (glewExperimental || GLEW_EXT_draw_buffers_indexed) GLEW_EXT_draw_buffers_indexed = !_glewInit_GL_EXT_draw_buffers_indexed();
-#endif /* GL_EXT_draw_buffers_indexed */
-#ifdef GL_EXT_draw_elements_base_vertex
- if (glewExperimental || GLEW_EXT_draw_elements_base_vertex) GLEW_EXT_draw_elements_base_vertex = !_glewInit_GL_EXT_draw_elements_base_vertex();
-#endif /* GL_EXT_draw_elements_base_vertex */
-#ifdef GL_EXT_draw_instanced
- if (glewExperimental || GLEW_EXT_draw_instanced) GLEW_EXT_draw_instanced = !_glewInit_GL_EXT_draw_instanced();
-#endif /* GL_EXT_draw_instanced */
-#ifdef GL_EXT_draw_range_elements
- if (glewExperimental || GLEW_EXT_draw_range_elements) GLEW_EXT_draw_range_elements = !_glewInit_GL_EXT_draw_range_elements();
-#endif /* GL_EXT_draw_range_elements */
-#ifdef GL_EXT_draw_transform_feedback
- if (glewExperimental || GLEW_EXT_draw_transform_feedback) GLEW_EXT_draw_transform_feedback = !_glewInit_GL_EXT_draw_transform_feedback();
-#endif /* GL_EXT_draw_transform_feedback */
-#ifdef GL_EXT_external_buffer
- if (glewExperimental || GLEW_EXT_external_buffer) GLEW_EXT_external_buffer = !_glewInit_GL_EXT_external_buffer();
-#endif /* GL_EXT_external_buffer */
-#ifdef GL_EXT_fog_coord
- if (glewExperimental || GLEW_EXT_fog_coord) GLEW_EXT_fog_coord = !_glewInit_GL_EXT_fog_coord();
-#endif /* GL_EXT_fog_coord */
-#ifdef GL_EXT_fragment_lighting
- if (glewExperimental || GLEW_EXT_fragment_lighting) GLEW_EXT_fragment_lighting = !_glewInit_GL_EXT_fragment_lighting();
-#endif /* GL_EXT_fragment_lighting */
-#ifdef GL_EXT_framebuffer_blit
- if (glewExperimental || GLEW_EXT_framebuffer_blit) GLEW_EXT_framebuffer_blit = !_glewInit_GL_EXT_framebuffer_blit();
-#endif /* GL_EXT_framebuffer_blit */
-#ifdef GL_EXT_framebuffer_multisample
- if (glewExperimental || GLEW_EXT_framebuffer_multisample) GLEW_EXT_framebuffer_multisample = !_glewInit_GL_EXT_framebuffer_multisample();
-#endif /* GL_EXT_framebuffer_multisample */
-#ifdef GL_EXT_framebuffer_object
- if (glewExperimental || GLEW_EXT_framebuffer_object) GLEW_EXT_framebuffer_object = !_glewInit_GL_EXT_framebuffer_object();
-#endif /* GL_EXT_framebuffer_object */
-#ifdef GL_EXT_geometry_shader4
- if (glewExperimental || GLEW_EXT_geometry_shader4) GLEW_EXT_geometry_shader4 = !_glewInit_GL_EXT_geometry_shader4();
-#endif /* GL_EXT_geometry_shader4 */
-#ifdef GL_EXT_gpu_program_parameters
- if (glewExperimental || GLEW_EXT_gpu_program_parameters) GLEW_EXT_gpu_program_parameters = !_glewInit_GL_EXT_gpu_program_parameters();
-#endif /* GL_EXT_gpu_program_parameters */
-#ifdef GL_EXT_gpu_shader4
- if (glewExperimental || GLEW_EXT_gpu_shader4) GLEW_EXT_gpu_shader4 = !_glewInit_GL_EXT_gpu_shader4();
-#endif /* GL_EXT_gpu_shader4 */
-#ifdef GL_EXT_histogram
- if (glewExperimental || GLEW_EXT_histogram) GLEW_EXT_histogram = !_glewInit_GL_EXT_histogram();
-#endif /* GL_EXT_histogram */
-#ifdef GL_EXT_index_func
- if (glewExperimental || GLEW_EXT_index_func) GLEW_EXT_index_func = !_glewInit_GL_EXT_index_func();
-#endif /* GL_EXT_index_func */
-#ifdef GL_EXT_index_material
- if (glewExperimental || GLEW_EXT_index_material) GLEW_EXT_index_material = !_glewInit_GL_EXT_index_material();
-#endif /* GL_EXT_index_material */
-#ifdef GL_EXT_instanced_arrays
- if (glewExperimental || GLEW_EXT_instanced_arrays) GLEW_EXT_instanced_arrays = !_glewInit_GL_EXT_instanced_arrays();
-#endif /* GL_EXT_instanced_arrays */
-#ifdef GL_EXT_light_texture
- if (glewExperimental || GLEW_EXT_light_texture) GLEW_EXT_light_texture = !_glewInit_GL_EXT_light_texture();
-#endif /* GL_EXT_light_texture */
-#ifdef GL_EXT_map_buffer_range
- if (glewExperimental || GLEW_EXT_map_buffer_range) GLEW_EXT_map_buffer_range = !_glewInit_GL_EXT_map_buffer_range();
-#endif /* GL_EXT_map_buffer_range */
-#ifdef GL_EXT_memory_object
- if (glewExperimental || GLEW_EXT_memory_object) GLEW_EXT_memory_object = !_glewInit_GL_EXT_memory_object();
-#endif /* GL_EXT_memory_object */
-#ifdef GL_EXT_memory_object_fd
- if (glewExperimental || GLEW_EXT_memory_object_fd) GLEW_EXT_memory_object_fd = !_glewInit_GL_EXT_memory_object_fd();
-#endif /* GL_EXT_memory_object_fd */
-#ifdef GL_EXT_memory_object_win32
- if (glewExperimental || GLEW_EXT_memory_object_win32) GLEW_EXT_memory_object_win32 = !_glewInit_GL_EXT_memory_object_win32();
-#endif /* GL_EXT_memory_object_win32 */
-#ifdef GL_EXT_multi_draw_arrays
- if (glewExperimental || GLEW_EXT_multi_draw_arrays) GLEW_EXT_multi_draw_arrays = !_glewInit_GL_EXT_multi_draw_arrays();
-#endif /* GL_EXT_multi_draw_arrays */
-#ifdef GL_EXT_multi_draw_indirect
- if (glewExperimental || GLEW_EXT_multi_draw_indirect) GLEW_EXT_multi_draw_indirect = !_glewInit_GL_EXT_multi_draw_indirect();
-#endif /* GL_EXT_multi_draw_indirect */
-#ifdef GL_EXT_multisample
- if (glewExperimental || GLEW_EXT_multisample) GLEW_EXT_multisample = !_glewInit_GL_EXT_multisample();
-#endif /* GL_EXT_multisample */
-#ifdef GL_EXT_multisampled_render_to_texture
- if (glewExperimental || GLEW_EXT_multisampled_render_to_texture) GLEW_EXT_multisampled_render_to_texture = !_glewInit_GL_EXT_multisampled_render_to_texture();
-#endif /* GL_EXT_multisampled_render_to_texture */
-#ifdef GL_EXT_multiview_draw_buffers
- if (glewExperimental || GLEW_EXT_multiview_draw_buffers) GLEW_EXT_multiview_draw_buffers = !_glewInit_GL_EXT_multiview_draw_buffers();
-#endif /* GL_EXT_multiview_draw_buffers */
-#ifdef GL_EXT_paletted_texture
- if (glewExperimental || GLEW_EXT_paletted_texture) GLEW_EXT_paletted_texture = !_glewInit_GL_EXT_paletted_texture();
-#endif /* GL_EXT_paletted_texture */
-#ifdef GL_EXT_pixel_transform
- if (glewExperimental || GLEW_EXT_pixel_transform) GLEW_EXT_pixel_transform = !_glewInit_GL_EXT_pixel_transform();
-#endif /* GL_EXT_pixel_transform */
-#ifdef GL_EXT_point_parameters
- if (glewExperimental || GLEW_EXT_point_parameters) GLEW_EXT_point_parameters = !_glewInit_GL_EXT_point_parameters();
-#endif /* GL_EXT_point_parameters */
-#ifdef GL_EXT_polygon_offset
- if (glewExperimental || GLEW_EXT_polygon_offset) GLEW_EXT_polygon_offset = !_glewInit_GL_EXT_polygon_offset();
-#endif /* GL_EXT_polygon_offset */
-#ifdef GL_EXT_polygon_offset_clamp
- if (glewExperimental || GLEW_EXT_polygon_offset_clamp) GLEW_EXT_polygon_offset_clamp = !_glewInit_GL_EXT_polygon_offset_clamp();
-#endif /* GL_EXT_polygon_offset_clamp */
-#ifdef GL_EXT_primitive_bounding_box
- if (glewExperimental || GLEW_EXT_primitive_bounding_box) GLEW_EXT_primitive_bounding_box = !_glewInit_GL_EXT_primitive_bounding_box();
-#endif /* GL_EXT_primitive_bounding_box */
-#ifdef GL_EXT_provoking_vertex
- if (glewExperimental || GLEW_EXT_provoking_vertex) GLEW_EXT_provoking_vertex = !_glewInit_GL_EXT_provoking_vertex();
-#endif /* GL_EXT_provoking_vertex */
-#ifdef GL_EXT_raster_multisample
- if (glewExperimental || GLEW_EXT_raster_multisample) GLEW_EXT_raster_multisample = !_glewInit_GL_EXT_raster_multisample();
-#endif /* GL_EXT_raster_multisample */
-#ifdef GL_EXT_robustness
- if (glewExperimental || GLEW_EXT_robustness) GLEW_EXT_robustness = !_glewInit_GL_EXT_robustness();
-#endif /* GL_EXT_robustness */
-#ifdef GL_EXT_scene_marker
- if (glewExperimental || GLEW_EXT_scene_marker) GLEW_EXT_scene_marker = !_glewInit_GL_EXT_scene_marker();
-#endif /* GL_EXT_scene_marker */
-#ifdef GL_EXT_secondary_color
- if (glewExperimental || GLEW_EXT_secondary_color) GLEW_EXT_secondary_color = !_glewInit_GL_EXT_secondary_color();
-#endif /* GL_EXT_secondary_color */
-#ifdef GL_EXT_semaphore
- if (glewExperimental || GLEW_EXT_semaphore) GLEW_EXT_semaphore = !_glewInit_GL_EXT_semaphore();
-#endif /* GL_EXT_semaphore */
-#ifdef GL_EXT_semaphore_fd
- if (glewExperimental || GLEW_EXT_semaphore_fd) GLEW_EXT_semaphore_fd = !_glewInit_GL_EXT_semaphore_fd();
-#endif /* GL_EXT_semaphore_fd */
-#ifdef GL_EXT_semaphore_win32
- if (glewExperimental || GLEW_EXT_semaphore_win32) GLEW_EXT_semaphore_win32 = !_glewInit_GL_EXT_semaphore_win32();
-#endif /* GL_EXT_semaphore_win32 */
-#ifdef GL_EXT_separate_shader_objects
- if (glewExperimental || GLEW_EXT_separate_shader_objects) GLEW_EXT_separate_shader_objects = !_glewInit_GL_EXT_separate_shader_objects();
-#endif /* GL_EXT_separate_shader_objects */
-#ifdef GL_EXT_shader_framebuffer_fetch
- if (glewExperimental || GLEW_EXT_shader_framebuffer_fetch) GLEW_EXT_shader_framebuffer_fetch = !_glewInit_GL_EXT_shader_framebuffer_fetch();
-#endif /* GL_EXT_shader_framebuffer_fetch */
-#ifdef GL_EXT_shader_image_load_store
- if (glewExperimental || GLEW_EXT_shader_image_load_store) GLEW_EXT_shader_image_load_store = !_glewInit_GL_EXT_shader_image_load_store();
-#endif /* GL_EXT_shader_image_load_store */
-#ifdef GL_EXT_shader_pixel_local_storage2
- if (glewExperimental || GLEW_EXT_shader_pixel_local_storage2) GLEW_EXT_shader_pixel_local_storage2 = !_glewInit_GL_EXT_shader_pixel_local_storage2();
-#endif /* GL_EXT_shader_pixel_local_storage2 */
-#ifdef GL_EXT_sparse_texture
- if (glewExperimental || GLEW_EXT_sparse_texture) GLEW_EXT_sparse_texture = !_glewInit_GL_EXT_sparse_texture();
-#endif /* GL_EXT_sparse_texture */
-#ifdef GL_EXT_stencil_two_side
- if (glewExperimental || GLEW_EXT_stencil_two_side) GLEW_EXT_stencil_two_side = !_glewInit_GL_EXT_stencil_two_side();
-#endif /* GL_EXT_stencil_two_side */
-#ifdef GL_EXT_subtexture
- if (glewExperimental || GLEW_EXT_subtexture) GLEW_EXT_subtexture = !_glewInit_GL_EXT_subtexture();
-#endif /* GL_EXT_subtexture */
-#ifdef GL_EXT_tessellation_point_size
- if (glewExperimental || GLEW_EXT_tessellation_point_size) GLEW_EXT_tessellation_point_size = !_glewInit_GL_EXT_tessellation_point_size();
-#endif /* GL_EXT_tessellation_point_size */
-#ifdef GL_EXT_texture3D
- if (glewExperimental || GLEW_EXT_texture3D) GLEW_EXT_texture3D = !_glewInit_GL_EXT_texture3D();
-#endif /* GL_EXT_texture3D */
-#ifdef GL_EXT_texture_array
- if (glewExperimental || GLEW_EXT_texture_array) GLEW_EXT_texture_array = !_glewInit_GL_EXT_texture_array();
-#endif /* GL_EXT_texture_array */
-#ifdef GL_EXT_texture_border_clamp
- if (glewExperimental || GLEW_EXT_texture_border_clamp) GLEW_EXT_texture_border_clamp = !_glewInit_GL_EXT_texture_border_clamp();
-#endif /* GL_EXT_texture_border_clamp */
-#ifdef GL_EXT_texture_buffer_object
- if (glewExperimental || GLEW_EXT_texture_buffer_object) GLEW_EXT_texture_buffer_object = !_glewInit_GL_EXT_texture_buffer_object();
-#endif /* GL_EXT_texture_buffer_object */
-#ifdef GL_EXT_texture_integer
- if (glewExperimental || GLEW_EXT_texture_integer) GLEW_EXT_texture_integer = !_glewInit_GL_EXT_texture_integer();
-#endif /* GL_EXT_texture_integer */
-#ifdef GL_EXT_texture_object
- if (glewExperimental || GLEW_EXT_texture_object) GLEW_EXT_texture_object = !_glewInit_GL_EXT_texture_object();
-#endif /* GL_EXT_texture_object */
-#ifdef GL_EXT_texture_perturb_normal
- if (glewExperimental || GLEW_EXT_texture_perturb_normal) GLEW_EXT_texture_perturb_normal = !_glewInit_GL_EXT_texture_perturb_normal();
-#endif /* GL_EXT_texture_perturb_normal */
-#ifdef GL_EXT_texture_storage
- if (glewExperimental || GLEW_EXT_texture_storage) GLEW_EXT_texture_storage = !_glewInit_GL_EXT_texture_storage();
-#endif /* GL_EXT_texture_storage */
-#ifdef GL_EXT_texture_view
- if (glewExperimental || GLEW_EXT_texture_view) GLEW_EXT_texture_view = !_glewInit_GL_EXT_texture_view();
-#endif /* GL_EXT_texture_view */
-#ifdef GL_EXT_timer_query
- if (glewExperimental || GLEW_EXT_timer_query) GLEW_EXT_timer_query = !_glewInit_GL_EXT_timer_query();
-#endif /* GL_EXT_timer_query */
-#ifdef GL_EXT_transform_feedback
- if (glewExperimental || GLEW_EXT_transform_feedback) GLEW_EXT_transform_feedback = !_glewInit_GL_EXT_transform_feedback();
-#endif /* GL_EXT_transform_feedback */
-#ifdef GL_EXT_vertex_array
- if (glewExperimental || GLEW_EXT_vertex_array) GLEW_EXT_vertex_array = !_glewInit_GL_EXT_vertex_array();
-#endif /* GL_EXT_vertex_array */
-#ifdef GL_EXT_vertex_array_setXXX
- if (glewExperimental || GLEW_EXT_vertex_array_setXXX) GLEW_EXT_vertex_array_setXXX = !_glewInit_GL_EXT_vertex_array_setXXX();
-#endif /* GL_EXT_vertex_array_setXXX */
-#ifdef GL_EXT_vertex_attrib_64bit
- if (glewExperimental || GLEW_EXT_vertex_attrib_64bit) GLEW_EXT_vertex_attrib_64bit = !_glewInit_GL_EXT_vertex_attrib_64bit();
-#endif /* GL_EXT_vertex_attrib_64bit */
-#ifdef GL_EXT_vertex_shader
- if (glewExperimental || GLEW_EXT_vertex_shader) GLEW_EXT_vertex_shader = !_glewInit_GL_EXT_vertex_shader();
-#endif /* GL_EXT_vertex_shader */
-#ifdef GL_EXT_vertex_weighting
- if (glewExperimental || GLEW_EXT_vertex_weighting) GLEW_EXT_vertex_weighting = !_glewInit_GL_EXT_vertex_weighting();
-#endif /* GL_EXT_vertex_weighting */
-#ifdef GL_EXT_win32_keyed_mutex
- if (glewExperimental || GLEW_EXT_win32_keyed_mutex) GLEW_EXT_win32_keyed_mutex = !_glewInit_GL_EXT_win32_keyed_mutex();
-#endif /* GL_EXT_win32_keyed_mutex */
-#ifdef GL_EXT_window_rectangles
- if (glewExperimental || GLEW_EXT_window_rectangles) GLEW_EXT_window_rectangles = !_glewInit_GL_EXT_window_rectangles();
-#endif /* GL_EXT_window_rectangles */
-#ifdef GL_EXT_x11_sync_object
- if (glewExperimental || GLEW_EXT_x11_sync_object) GLEW_EXT_x11_sync_object = !_glewInit_GL_EXT_x11_sync_object();
-#endif /* GL_EXT_x11_sync_object */
-#ifdef GL_GREMEDY_frame_terminator
- if (glewExperimental || GLEW_GREMEDY_frame_terminator) GLEW_GREMEDY_frame_terminator = !_glewInit_GL_GREMEDY_frame_terminator();
-#endif /* GL_GREMEDY_frame_terminator */
-#ifdef GL_GREMEDY_string_marker
- if (glewExperimental || GLEW_GREMEDY_string_marker) GLEW_GREMEDY_string_marker = !_glewInit_GL_GREMEDY_string_marker();
-#endif /* GL_GREMEDY_string_marker */
-#ifdef GL_HP_image_transform
- if (glewExperimental || GLEW_HP_image_transform) GLEW_HP_image_transform = !_glewInit_GL_HP_image_transform();
-#endif /* GL_HP_image_transform */
-#ifdef GL_IBM_multimode_draw_arrays
- if (glewExperimental || GLEW_IBM_multimode_draw_arrays) GLEW_IBM_multimode_draw_arrays = !_glewInit_GL_IBM_multimode_draw_arrays();
-#endif /* GL_IBM_multimode_draw_arrays */
-#ifdef GL_IBM_vertex_array_lists
- if (glewExperimental || GLEW_IBM_vertex_array_lists) GLEW_IBM_vertex_array_lists = !_glewInit_GL_IBM_vertex_array_lists();
-#endif /* GL_IBM_vertex_array_lists */
-#ifdef GL_IMG_bindless_texture
- if (glewExperimental || GLEW_IMG_bindless_texture) GLEW_IMG_bindless_texture = !_glewInit_GL_IMG_bindless_texture();
-#endif /* GL_IMG_bindless_texture */
-#ifdef GL_IMG_framebuffer_downsample
- if (glewExperimental || GLEW_IMG_framebuffer_downsample) GLEW_IMG_framebuffer_downsample = !_glewInit_GL_IMG_framebuffer_downsample();
-#endif /* GL_IMG_framebuffer_downsample */
-#ifdef GL_IMG_multisampled_render_to_texture
- if (glewExperimental || GLEW_IMG_multisampled_render_to_texture) GLEW_IMG_multisampled_render_to_texture = !_glewInit_GL_IMG_multisampled_render_to_texture();
-#endif /* GL_IMG_multisampled_render_to_texture */
-#ifdef GL_INTEL_map_texture
- if (glewExperimental || GLEW_INTEL_map_texture) GLEW_INTEL_map_texture = !_glewInit_GL_INTEL_map_texture();
-#endif /* GL_INTEL_map_texture */
-#ifdef GL_INTEL_parallel_arrays
- if (glewExperimental || GLEW_INTEL_parallel_arrays) GLEW_INTEL_parallel_arrays = !_glewInit_GL_INTEL_parallel_arrays();
-#endif /* GL_INTEL_parallel_arrays */
-#ifdef GL_INTEL_performance_query
- if (glewExperimental || GLEW_INTEL_performance_query) GLEW_INTEL_performance_query = !_glewInit_GL_INTEL_performance_query();
-#endif /* GL_INTEL_performance_query */
-#ifdef GL_INTEL_texture_scissor
- if (glewExperimental || GLEW_INTEL_texture_scissor) GLEW_INTEL_texture_scissor = !_glewInit_GL_INTEL_texture_scissor();
-#endif /* GL_INTEL_texture_scissor */
-#ifdef GL_KHR_blend_equation_advanced
- if (glewExperimental || GLEW_KHR_blend_equation_advanced) GLEW_KHR_blend_equation_advanced = !_glewInit_GL_KHR_blend_equation_advanced();
-#endif /* GL_KHR_blend_equation_advanced */
-#ifdef GL_KHR_debug
- if (glewExperimental || GLEW_KHR_debug) GLEW_KHR_debug = !_glewInit_GL_KHR_debug();
-#endif /* GL_KHR_debug */
-#ifdef GL_KHR_parallel_shader_compile
- if (glewExperimental || GLEW_KHR_parallel_shader_compile) GLEW_KHR_parallel_shader_compile = !_glewInit_GL_KHR_parallel_shader_compile();
-#endif /* GL_KHR_parallel_shader_compile */
-#ifdef GL_KHR_robustness
- if (glewExperimental || GLEW_KHR_robustness) GLEW_KHR_robustness = !_glewInit_GL_KHR_robustness();
-#endif /* GL_KHR_robustness */
-#ifdef GL_KTX_buffer_region
- if (glewExperimental || GLEW_KTX_buffer_region) GLEW_KTX_buffer_region = !_glewInit_GL_KTX_buffer_region();
-#endif /* GL_KTX_buffer_region */
-#ifdef GL_MESA_framebuffer_flip_y
- if (glewExperimental || GLEW_MESA_framebuffer_flip_y) GLEW_MESA_framebuffer_flip_y = !_glewInit_GL_MESA_framebuffer_flip_y();
-#endif /* GL_MESA_framebuffer_flip_y */
-#ifdef GL_MESA_resize_buffers
- if (glewExperimental || GLEW_MESA_resize_buffers) GLEW_MESA_resize_buffers = !_glewInit_GL_MESA_resize_buffers();
-#endif /* GL_MESA_resize_buffers */
-#ifdef GL_MESA_window_pos
- if (glewExperimental || GLEW_MESA_window_pos) GLEW_MESA_window_pos = !_glewInit_GL_MESA_window_pos();
-#endif /* GL_MESA_window_pos */
-#ifdef GL_NVX_conditional_render
- if (glewExperimental || GLEW_NVX_conditional_render) GLEW_NVX_conditional_render = !_glewInit_GL_NVX_conditional_render();
-#endif /* GL_NVX_conditional_render */
-#ifdef GL_NVX_gpu_multicast2
- if (glewExperimental || GLEW_NVX_gpu_multicast2) GLEW_NVX_gpu_multicast2 = !_glewInit_GL_NVX_gpu_multicast2();
-#endif /* GL_NVX_gpu_multicast2 */
-#ifdef GL_NVX_linked_gpu_multicast
- if (glewExperimental || GLEW_NVX_linked_gpu_multicast) GLEW_NVX_linked_gpu_multicast = !_glewInit_GL_NVX_linked_gpu_multicast();
-#endif /* GL_NVX_linked_gpu_multicast */
-#ifdef GL_NVX_progress_fence
- if (glewExperimental || GLEW_NVX_progress_fence) GLEW_NVX_progress_fence = !_glewInit_GL_NVX_progress_fence();
-#endif /* GL_NVX_progress_fence */
-#ifdef GL_NV_3dvision_settings
- if (glewExperimental || GLEW_NV_3dvision_settings) GLEW_NV_3dvision_settings = !_glewInit_GL_NV_3dvision_settings();
-#endif /* GL_NV_3dvision_settings */
-#ifdef GL_NV_alpha_to_coverage_dither_control
- if (glewExperimental || GLEW_NV_alpha_to_coverage_dither_control) GLEW_NV_alpha_to_coverage_dither_control = !_glewInit_GL_NV_alpha_to_coverage_dither_control();
-#endif /* GL_NV_alpha_to_coverage_dither_control */
-#ifdef GL_NV_bindless_multi_draw_indirect
- if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect) GLEW_NV_bindless_multi_draw_indirect = !_glewInit_GL_NV_bindless_multi_draw_indirect();
-#endif /* GL_NV_bindless_multi_draw_indirect */
-#ifdef GL_NV_bindless_multi_draw_indirect_count
- if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect_count) GLEW_NV_bindless_multi_draw_indirect_count = !_glewInit_GL_NV_bindless_multi_draw_indirect_count();
-#endif /* GL_NV_bindless_multi_draw_indirect_count */
-#ifdef GL_NV_bindless_texture
- if (glewExperimental || GLEW_NV_bindless_texture) GLEW_NV_bindless_texture = !_glewInit_GL_NV_bindless_texture();
-#endif /* GL_NV_bindless_texture */
-#ifdef GL_NV_blend_equation_advanced
- if (glewExperimental || GLEW_NV_blend_equation_advanced) GLEW_NV_blend_equation_advanced = !_glewInit_GL_NV_blend_equation_advanced();
-#endif /* GL_NV_blend_equation_advanced */
-#ifdef GL_NV_clip_space_w_scaling
- if (glewExperimental || GLEW_NV_clip_space_w_scaling) GLEW_NV_clip_space_w_scaling = !_glewInit_GL_NV_clip_space_w_scaling();
-#endif /* GL_NV_clip_space_w_scaling */
-#ifdef GL_NV_command_list
- if (glewExperimental || GLEW_NV_command_list) GLEW_NV_command_list = !_glewInit_GL_NV_command_list();
-#endif /* GL_NV_command_list */
-#ifdef GL_NV_conditional_render
- if (glewExperimental || GLEW_NV_conditional_render) GLEW_NV_conditional_render = !_glewInit_GL_NV_conditional_render();
-#endif /* GL_NV_conditional_render */
-#ifdef GL_NV_conservative_raster
- if (glewExperimental || GLEW_NV_conservative_raster) GLEW_NV_conservative_raster = !_glewInit_GL_NV_conservative_raster();
-#endif /* GL_NV_conservative_raster */
-#ifdef GL_NV_conservative_raster_dilate
- if (glewExperimental || GLEW_NV_conservative_raster_dilate) GLEW_NV_conservative_raster_dilate = !_glewInit_GL_NV_conservative_raster_dilate();
-#endif /* GL_NV_conservative_raster_dilate */
-#ifdef GL_NV_conservative_raster_pre_snap_triangles
- if (glewExperimental || GLEW_NV_conservative_raster_pre_snap_triangles) GLEW_NV_conservative_raster_pre_snap_triangles = !_glewInit_GL_NV_conservative_raster_pre_snap_triangles();
-#endif /* GL_NV_conservative_raster_pre_snap_triangles */
-#ifdef GL_NV_copy_buffer
- if (glewExperimental || GLEW_NV_copy_buffer) GLEW_NV_copy_buffer = !_glewInit_GL_NV_copy_buffer();
-#endif /* GL_NV_copy_buffer */
-#ifdef GL_NV_copy_image
- if (glewExperimental || GLEW_NV_copy_image) GLEW_NV_copy_image = !_glewInit_GL_NV_copy_image();
-#endif /* GL_NV_copy_image */
-#ifdef GL_NV_depth_buffer_float
- if (glewExperimental || GLEW_NV_depth_buffer_float) GLEW_NV_depth_buffer_float = !_glewInit_GL_NV_depth_buffer_float();
-#endif /* GL_NV_depth_buffer_float */
-#ifdef GL_NV_draw_buffers
- if (glewExperimental || GLEW_NV_draw_buffers) GLEW_NV_draw_buffers = !_glewInit_GL_NV_draw_buffers();
-#endif /* GL_NV_draw_buffers */
-#ifdef GL_NV_draw_instanced
- if (glewExperimental || GLEW_NV_draw_instanced) GLEW_NV_draw_instanced = !_glewInit_GL_NV_draw_instanced();
-#endif /* GL_NV_draw_instanced */
-#ifdef GL_NV_draw_texture
- if (glewExperimental || GLEW_NV_draw_texture) GLEW_NV_draw_texture = !_glewInit_GL_NV_draw_texture();
-#endif /* GL_NV_draw_texture */
-#ifdef GL_NV_draw_vulkan_image
- if (glewExperimental || GLEW_NV_draw_vulkan_image) GLEW_NV_draw_vulkan_image = !_glewInit_GL_NV_draw_vulkan_image();
-#endif /* GL_NV_draw_vulkan_image */
-#ifdef GL_NV_evaluators
- if (glewExperimental || GLEW_NV_evaluators) GLEW_NV_evaluators = !_glewInit_GL_NV_evaluators();
-#endif /* GL_NV_evaluators */
-#ifdef GL_NV_explicit_multisample
- if (glewExperimental || GLEW_NV_explicit_multisample) GLEW_NV_explicit_multisample = !_glewInit_GL_NV_explicit_multisample();
-#endif /* GL_NV_explicit_multisample */
-#ifdef GL_NV_fence
- if (glewExperimental || GLEW_NV_fence) GLEW_NV_fence = !_glewInit_GL_NV_fence();
-#endif /* GL_NV_fence */
-#ifdef GL_NV_fragment_coverage_to_color
- if (glewExperimental || GLEW_NV_fragment_coverage_to_color) GLEW_NV_fragment_coverage_to_color = !_glewInit_GL_NV_fragment_coverage_to_color();
-#endif /* GL_NV_fragment_coverage_to_color */
-#ifdef GL_NV_fragment_program
- if (glewExperimental || GLEW_NV_fragment_program) GLEW_NV_fragment_program = !_glewInit_GL_NV_fragment_program();
-#endif /* GL_NV_fragment_program */
-#ifdef GL_NV_framebuffer_blit
- if (glewExperimental || GLEW_NV_framebuffer_blit) GLEW_NV_framebuffer_blit = !_glewInit_GL_NV_framebuffer_blit();
-#endif /* GL_NV_framebuffer_blit */
-#ifdef GL_NV_framebuffer_multisample
- if (glewExperimental || GLEW_NV_framebuffer_multisample) GLEW_NV_framebuffer_multisample = !_glewInit_GL_NV_framebuffer_multisample();
-#endif /* GL_NV_framebuffer_multisample */
-#ifdef GL_NV_framebuffer_multisample_coverage
- if (glewExperimental || GLEW_NV_framebuffer_multisample_coverage) GLEW_NV_framebuffer_multisample_coverage = !_glewInit_GL_NV_framebuffer_multisample_coverage();
-#endif /* GL_NV_framebuffer_multisample_coverage */
-#ifdef GL_NV_geometry_program4
- if (glewExperimental || GLEW_NV_geometry_program4) GLEW_NV_geometry_program4 = !_glewInit_GL_NV_geometry_program4();
-#endif /* GL_NV_geometry_program4 */
-#ifdef GL_NV_gpu_multicast
- if (glewExperimental || GLEW_NV_gpu_multicast) GLEW_NV_gpu_multicast = !_glewInit_GL_NV_gpu_multicast();
-#endif /* GL_NV_gpu_multicast */
-#ifdef GL_NV_gpu_program4
- if (glewExperimental || GLEW_NV_gpu_program4) GLEW_NV_gpu_program4 = !_glewInit_GL_NV_gpu_program4();
-#endif /* GL_NV_gpu_program4 */
-#ifdef GL_NV_gpu_shader5
- if (glewExperimental || GLEW_NV_gpu_shader5) GLEW_NV_gpu_shader5 = !_glewInit_GL_NV_gpu_shader5();
-#endif /* GL_NV_gpu_shader5 */
-#ifdef GL_NV_half_float
- if (glewExperimental || GLEW_NV_half_float) GLEW_NV_half_float = !_glewInit_GL_NV_half_float();
-#endif /* GL_NV_half_float */
-#ifdef GL_NV_instanced_arrays
- if (glewExperimental || GLEW_NV_instanced_arrays) GLEW_NV_instanced_arrays = !_glewInit_GL_NV_instanced_arrays();
-#endif /* GL_NV_instanced_arrays */
-#ifdef GL_NV_internalformat_sample_query
- if (glewExperimental || GLEW_NV_internalformat_sample_query) GLEW_NV_internalformat_sample_query = !_glewInit_GL_NV_internalformat_sample_query();
-#endif /* GL_NV_internalformat_sample_query */
-#ifdef GL_NV_memory_attachment
- if (glewExperimental || GLEW_NV_memory_attachment) GLEW_NV_memory_attachment = !_glewInit_GL_NV_memory_attachment();
-#endif /* GL_NV_memory_attachment */
-#ifdef GL_NV_mesh_shader
- if (glewExperimental || GLEW_NV_mesh_shader) GLEW_NV_mesh_shader = !_glewInit_GL_NV_mesh_shader();
-#endif /* GL_NV_mesh_shader */
-#ifdef GL_NV_non_square_matrices
- if (glewExperimental || GLEW_NV_non_square_matrices) GLEW_NV_non_square_matrices = !_glewInit_GL_NV_non_square_matrices();
-#endif /* GL_NV_non_square_matrices */
-#ifdef GL_NV_occlusion_query
- if (glewExperimental || GLEW_NV_occlusion_query) GLEW_NV_occlusion_query = !_glewInit_GL_NV_occlusion_query();
-#endif /* GL_NV_occlusion_query */
-#ifdef GL_NV_parameter_buffer_object
- if (glewExperimental || GLEW_NV_parameter_buffer_object) GLEW_NV_parameter_buffer_object = !_glewInit_GL_NV_parameter_buffer_object();
-#endif /* GL_NV_parameter_buffer_object */
-#ifdef GL_NV_path_rendering
- if (glewExperimental || GLEW_NV_path_rendering) GLEW_NV_path_rendering = !_glewInit_GL_NV_path_rendering();
-#endif /* GL_NV_path_rendering */
-#ifdef GL_NV_pixel_data_range
- if (glewExperimental || GLEW_NV_pixel_data_range) GLEW_NV_pixel_data_range = !_glewInit_GL_NV_pixel_data_range();
-#endif /* GL_NV_pixel_data_range */
-#ifdef GL_NV_point_sprite
- if (glewExperimental || GLEW_NV_point_sprite) GLEW_NV_point_sprite = !_glewInit_GL_NV_point_sprite();
-#endif /* GL_NV_point_sprite */
-#ifdef GL_NV_polygon_mode
- if (glewExperimental || GLEW_NV_polygon_mode) GLEW_NV_polygon_mode = !_glewInit_GL_NV_polygon_mode();
-#endif /* GL_NV_polygon_mode */
-#ifdef GL_NV_present_video
- if (glewExperimental || GLEW_NV_present_video) GLEW_NV_present_video = !_glewInit_GL_NV_present_video();
-#endif /* GL_NV_present_video */
-#ifdef GL_NV_primitive_restart
- if (glewExperimental || GLEW_NV_primitive_restart) GLEW_NV_primitive_restart = !_glewInit_GL_NV_primitive_restart();
-#endif /* GL_NV_primitive_restart */
-#ifdef GL_NV_read_buffer
- if (glewExperimental || GLEW_NV_read_buffer) GLEW_NV_read_buffer = !_glewInit_GL_NV_read_buffer();
-#endif /* GL_NV_read_buffer */
-#ifdef GL_NV_register_combiners
- if (glewExperimental || GLEW_NV_register_combiners) GLEW_NV_register_combiners = !_glewInit_GL_NV_register_combiners();
-#endif /* GL_NV_register_combiners */
-#ifdef GL_NV_register_combiners2
- if (glewExperimental || GLEW_NV_register_combiners2) GLEW_NV_register_combiners2 = !_glewInit_GL_NV_register_combiners2();
-#endif /* GL_NV_register_combiners2 */
-#ifdef GL_NV_sample_locations
- if (glewExperimental || GLEW_NV_sample_locations) GLEW_NV_sample_locations = !_glewInit_GL_NV_sample_locations();
-#endif /* GL_NV_sample_locations */
-#ifdef GL_NV_scissor_exclusive
- if (glewExperimental || GLEW_NV_scissor_exclusive) GLEW_NV_scissor_exclusive = !_glewInit_GL_NV_scissor_exclusive();
-#endif /* GL_NV_scissor_exclusive */
-#ifdef GL_NV_shader_buffer_load
- if (glewExperimental || GLEW_NV_shader_buffer_load) GLEW_NV_shader_buffer_load = !_glewInit_GL_NV_shader_buffer_load();
-#endif /* GL_NV_shader_buffer_load */
-#ifdef GL_NV_shading_rate_image
- if (glewExperimental || GLEW_NV_shading_rate_image) GLEW_NV_shading_rate_image = !_glewInit_GL_NV_shading_rate_image();
-#endif /* GL_NV_shading_rate_image */
-#ifdef GL_NV_texture_array
- if (glewExperimental || GLEW_NV_texture_array) GLEW_NV_texture_array = !_glewInit_GL_NV_texture_array();
-#endif /* GL_NV_texture_array */
-#ifdef GL_NV_texture_barrier
- if (glewExperimental || GLEW_NV_texture_barrier) GLEW_NV_texture_barrier = !_glewInit_GL_NV_texture_barrier();
-#endif /* GL_NV_texture_barrier */
-#ifdef GL_NV_texture_multisample
- if (glewExperimental || GLEW_NV_texture_multisample) GLEW_NV_texture_multisample = !_glewInit_GL_NV_texture_multisample();
-#endif /* GL_NV_texture_multisample */
-#ifdef GL_NV_transform_feedback
- if (glewExperimental || GLEW_NV_transform_feedback) GLEW_NV_transform_feedback = !_glewInit_GL_NV_transform_feedback();
-#endif /* GL_NV_transform_feedback */
-#ifdef GL_NV_transform_feedback2
- if (glewExperimental || GLEW_NV_transform_feedback2) GLEW_NV_transform_feedback2 = !_glewInit_GL_NV_transform_feedback2();
-#endif /* GL_NV_transform_feedback2 */
-#ifdef GL_NV_vdpau_interop
- if (glewExperimental || GLEW_NV_vdpau_interop) GLEW_NV_vdpau_interop = !_glewInit_GL_NV_vdpau_interop();
-#endif /* GL_NV_vdpau_interop */
-#ifdef GL_NV_vdpau_interop2
- if (glewExperimental || GLEW_NV_vdpau_interop2) GLEW_NV_vdpau_interop2 = !_glewInit_GL_NV_vdpau_interop2();
-#endif /* GL_NV_vdpau_interop2 */
-#ifdef GL_NV_vertex_array_range
- if (glewExperimental || GLEW_NV_vertex_array_range) GLEW_NV_vertex_array_range = !_glewInit_GL_NV_vertex_array_range();
-#endif /* GL_NV_vertex_array_range */
-#ifdef GL_NV_vertex_attrib_integer_64bit
- if (glewExperimental || GLEW_NV_vertex_attrib_integer_64bit) GLEW_NV_vertex_attrib_integer_64bit = !_glewInit_GL_NV_vertex_attrib_integer_64bit();
-#endif /* GL_NV_vertex_attrib_integer_64bit */
-#ifdef GL_NV_vertex_buffer_unified_memory
- if (glewExperimental || GLEW_NV_vertex_buffer_unified_memory) GLEW_NV_vertex_buffer_unified_memory = !_glewInit_GL_NV_vertex_buffer_unified_memory();
-#endif /* GL_NV_vertex_buffer_unified_memory */
-#ifdef GL_NV_vertex_program
- if (glewExperimental || GLEW_NV_vertex_program) GLEW_NV_vertex_program = !_glewInit_GL_NV_vertex_program();
-#endif /* GL_NV_vertex_program */
-#ifdef GL_NV_video_capture
- if (glewExperimental || GLEW_NV_video_capture) GLEW_NV_video_capture = !_glewInit_GL_NV_video_capture();
-#endif /* GL_NV_video_capture */
-#ifdef GL_NV_viewport_array
- if (glewExperimental || GLEW_NV_viewport_array) GLEW_NV_viewport_array = !_glewInit_GL_NV_viewport_array();
-#endif /* GL_NV_viewport_array */
-#ifdef GL_NV_viewport_swizzle
- if (glewExperimental || GLEW_NV_viewport_swizzle) GLEW_NV_viewport_swizzle = !_glewInit_GL_NV_viewport_swizzle();
-#endif /* GL_NV_viewport_swizzle */
-#ifdef GL_OES_EGL_image
- if (glewExperimental || GLEW_OES_EGL_image) GLEW_OES_EGL_image = !_glewInit_GL_OES_EGL_image();
-#endif /* GL_OES_EGL_image */
-#ifdef GL_OES_blend_equation_separate
- if (glewExperimental || GLEW_OES_blend_equation_separate) GLEW_OES_blend_equation_separate = !_glewInit_GL_OES_blend_equation_separate();
-#endif /* GL_OES_blend_equation_separate */
-#ifdef GL_OES_blend_func_separate
- if (glewExperimental || GLEW_OES_blend_func_separate) GLEW_OES_blend_func_separate = !_glewInit_GL_OES_blend_func_separate();
-#endif /* GL_OES_blend_func_separate */
-#ifdef GL_OES_blend_subtract
- if (glewExperimental || GLEW_OES_blend_subtract) GLEW_OES_blend_subtract = !_glewInit_GL_OES_blend_subtract();
-#endif /* GL_OES_blend_subtract */
-#ifdef GL_OES_copy_image
- if (glewExperimental || GLEW_OES_copy_image) GLEW_OES_copy_image = !_glewInit_GL_OES_copy_image();
-#endif /* GL_OES_copy_image */
-#ifdef GL_OES_draw_buffers_indexed
- if (glewExperimental || GLEW_OES_draw_buffers_indexed) GLEW_OES_draw_buffers_indexed = !_glewInit_GL_OES_draw_buffers_indexed();
-#endif /* GL_OES_draw_buffers_indexed */
-#ifdef GL_OES_framebuffer_object
- if (glewExperimental || GLEW_OES_framebuffer_object) GLEW_OES_framebuffer_object = !_glewInit_GL_OES_framebuffer_object();
-#endif /* GL_OES_framebuffer_object */
-#ifdef GL_OES_get_program_binary
- if (glewExperimental || GLEW_OES_get_program_binary) GLEW_OES_get_program_binary = !_glewInit_GL_OES_get_program_binary();
-#endif /* GL_OES_get_program_binary */
-#ifdef GL_OES_mapbuffer
- if (glewExperimental || GLEW_OES_mapbuffer) GLEW_OES_mapbuffer = !_glewInit_GL_OES_mapbuffer();
-#endif /* GL_OES_mapbuffer */
-#ifdef GL_OES_matrix_palette
- if (glewExperimental || GLEW_OES_matrix_palette) GLEW_OES_matrix_palette = !_glewInit_GL_OES_matrix_palette();
-#endif /* GL_OES_matrix_palette */
-#ifdef GL_OES_sample_shading
- if (glewExperimental || GLEW_OES_sample_shading) GLEW_OES_sample_shading = !_glewInit_GL_OES_sample_shading();
-#endif /* GL_OES_sample_shading */
-#ifdef GL_OES_single_precision
- if (glewExperimental || GLEW_OES_single_precision) GLEW_OES_single_precision = !_glewInit_GL_OES_single_precision();
-#endif /* GL_OES_single_precision */
-#ifdef GL_OES_texture_3D
- if (glewExperimental || GLEW_OES_texture_3D) GLEW_OES_texture_3D = !_glewInit_GL_OES_texture_3D();
-#endif /* GL_OES_texture_3D */
-#ifdef GL_OES_texture_border_clamp
- if (glewExperimental || GLEW_OES_texture_border_clamp) GLEW_OES_texture_border_clamp = !_glewInit_GL_OES_texture_border_clamp();
-#endif /* GL_OES_texture_border_clamp */
-#ifdef GL_OES_texture_buffer
- if (glewExperimental || GLEW_OES_texture_buffer) GLEW_OES_texture_buffer = !_glewInit_GL_OES_texture_buffer();
-#endif /* GL_OES_texture_buffer */
-#ifdef GL_OES_texture_cube_map
- if (glewExperimental || GLEW_OES_texture_cube_map) GLEW_OES_texture_cube_map = !_glewInit_GL_OES_texture_cube_map();
-#endif /* GL_OES_texture_cube_map */
-#ifdef GL_OES_texture_storage_multisample_2d_array
- if (glewExperimental || GLEW_OES_texture_storage_multisample_2d_array) GLEW_OES_texture_storage_multisample_2d_array = !_glewInit_GL_OES_texture_storage_multisample_2d_array();
-#endif /* GL_OES_texture_storage_multisample_2d_array */
-#ifdef GL_OES_texture_view
- if (glewExperimental || GLEW_OES_texture_view) GLEW_OES_texture_view = !_glewInit_GL_OES_texture_view();
-#endif /* GL_OES_texture_view */
-#ifdef GL_OES_vertex_array_object
- if (glewExperimental || GLEW_OES_vertex_array_object) GLEW_OES_vertex_array_object = !_glewInit_GL_OES_vertex_array_object();
-#endif /* GL_OES_vertex_array_object */
-#ifdef GL_OVR_multiview
- if (glewExperimental || GLEW_OVR_multiview) GLEW_OVR_multiview = !_glewInit_GL_OVR_multiview();
-#endif /* GL_OVR_multiview */
-#ifdef GL_OVR_multiview_multisampled_render_to_texture
- if (glewExperimental || GLEW_OVR_multiview_multisampled_render_to_texture) GLEW_OVR_multiview_multisampled_render_to_texture = !_glewInit_GL_OVR_multiview_multisampled_render_to_texture();
-#endif /* GL_OVR_multiview_multisampled_render_to_texture */
-#ifdef GL_QCOM_alpha_test
- if (glewExperimental || GLEW_QCOM_alpha_test) GLEW_QCOM_alpha_test = !_glewInit_GL_QCOM_alpha_test();
-#endif /* GL_QCOM_alpha_test */
-#ifdef GL_QCOM_driver_control
- if (glewExperimental || GLEW_QCOM_driver_control) GLEW_QCOM_driver_control = !_glewInit_GL_QCOM_driver_control();
-#endif /* GL_QCOM_driver_control */
-#ifdef GL_QCOM_extended_get
- if (glewExperimental || GLEW_QCOM_extended_get) GLEW_QCOM_extended_get = !_glewInit_GL_QCOM_extended_get();
-#endif /* GL_QCOM_extended_get */
-#ifdef GL_QCOM_extended_get2
- if (glewExperimental || GLEW_QCOM_extended_get2) GLEW_QCOM_extended_get2 = !_glewInit_GL_QCOM_extended_get2();
-#endif /* GL_QCOM_extended_get2 */
-#ifdef GL_QCOM_framebuffer_foveated
- if (glewExperimental || GLEW_QCOM_framebuffer_foveated) GLEW_QCOM_framebuffer_foveated = !_glewInit_GL_QCOM_framebuffer_foveated();
-#endif /* GL_QCOM_framebuffer_foveated */
-#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent
- if (glewExperimental || GLEW_QCOM_shader_framebuffer_fetch_noncoherent) GLEW_QCOM_shader_framebuffer_fetch_noncoherent = !_glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent();
-#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */
-#ifdef GL_QCOM_texture_foveated
- if (glewExperimental || GLEW_QCOM_texture_foveated) GLEW_QCOM_texture_foveated = !_glewInit_GL_QCOM_texture_foveated();
-#endif /* GL_QCOM_texture_foveated */
-#ifdef GL_QCOM_tiled_rendering
- if (glewExperimental || GLEW_QCOM_tiled_rendering) GLEW_QCOM_tiled_rendering = !_glewInit_GL_QCOM_tiled_rendering();
-#endif /* GL_QCOM_tiled_rendering */
-#ifdef GL_REGAL_ES1_0_compatibility
- if (glewExperimental || GLEW_REGAL_ES1_0_compatibility) GLEW_REGAL_ES1_0_compatibility = !_glewInit_GL_REGAL_ES1_0_compatibility();
-#endif /* GL_REGAL_ES1_0_compatibility */
-#ifdef GL_REGAL_ES1_1_compatibility
- if (glewExperimental || GLEW_REGAL_ES1_1_compatibility) GLEW_REGAL_ES1_1_compatibility = !_glewInit_GL_REGAL_ES1_1_compatibility();
-#endif /* GL_REGAL_ES1_1_compatibility */
-#ifdef GL_REGAL_error_string
- if (glewExperimental || GLEW_REGAL_error_string) GLEW_REGAL_error_string = !_glewInit_GL_REGAL_error_string();
-#endif /* GL_REGAL_error_string */
-#ifdef GL_REGAL_extension_query
- if (glewExperimental || GLEW_REGAL_extension_query) GLEW_REGAL_extension_query = !_glewInit_GL_REGAL_extension_query();
-#endif /* GL_REGAL_extension_query */
-#ifdef GL_REGAL_log
- if (glewExperimental || GLEW_REGAL_log) GLEW_REGAL_log = !_glewInit_GL_REGAL_log();
-#endif /* GL_REGAL_log */
-#ifdef GL_REGAL_proc_address
- if (glewExperimental || GLEW_REGAL_proc_address) GLEW_REGAL_proc_address = !_glewInit_GL_REGAL_proc_address();
-#endif /* GL_REGAL_proc_address */
-#ifdef GL_SGIS_detail_texture
- if (glewExperimental || GLEW_SGIS_detail_texture) GLEW_SGIS_detail_texture = !_glewInit_GL_SGIS_detail_texture();
-#endif /* GL_SGIS_detail_texture */
-#ifdef GL_SGIS_fog_function
- if (glewExperimental || GLEW_SGIS_fog_function) GLEW_SGIS_fog_function = !_glewInit_GL_SGIS_fog_function();
-#endif /* GL_SGIS_fog_function */
-#ifdef GL_SGIS_multisample
- if (glewExperimental || GLEW_SGIS_multisample) GLEW_SGIS_multisample = !_glewInit_GL_SGIS_multisample();
-#endif /* GL_SGIS_multisample */
-#ifdef GL_SGIS_multitexture
- if (glewExperimental || GLEW_SGIS_multitexture) GLEW_SGIS_multitexture = !_glewInit_GL_SGIS_multitexture();
-#endif /* GL_SGIS_multitexture */
-#ifdef GL_SGIS_shared_multisample
- if (glewExperimental || GLEW_SGIS_shared_multisample) GLEW_SGIS_shared_multisample = !_glewInit_GL_SGIS_shared_multisample();
-#endif /* GL_SGIS_shared_multisample */
-#ifdef GL_SGIS_sharpen_texture
- if (glewExperimental || GLEW_SGIS_sharpen_texture) GLEW_SGIS_sharpen_texture = !_glewInit_GL_SGIS_sharpen_texture();
-#endif /* GL_SGIS_sharpen_texture */
-#ifdef GL_SGIS_texture4D
- if (glewExperimental || GLEW_SGIS_texture4D) GLEW_SGIS_texture4D = !_glewInit_GL_SGIS_texture4D();
-#endif /* GL_SGIS_texture4D */
-#ifdef GL_SGIS_texture_filter4
- if (glewExperimental || GLEW_SGIS_texture_filter4) GLEW_SGIS_texture_filter4 = !_glewInit_GL_SGIS_texture_filter4();
-#endif /* GL_SGIS_texture_filter4 */
-#ifdef GL_SGIX_async
- if (glewExperimental || GLEW_SGIX_async) GLEW_SGIX_async = !_glewInit_GL_SGIX_async();
-#endif /* GL_SGIX_async */
-#ifdef GL_SGIX_datapipe
- if (glewExperimental || GLEW_SGIX_datapipe) GLEW_SGIX_datapipe = !_glewInit_GL_SGIX_datapipe();
-#endif /* GL_SGIX_datapipe */
-#ifdef GL_SGIX_flush_raster
- if (glewExperimental || GLEW_SGIX_flush_raster) GLEW_SGIX_flush_raster = !_glewInit_GL_SGIX_flush_raster();
-#endif /* GL_SGIX_flush_raster */
-#ifdef GL_SGIX_fog_layers
- if (glewExperimental || GLEW_SGIX_fog_layers) GLEW_SGIX_fog_layers = !_glewInit_GL_SGIX_fog_layers();
-#endif /* GL_SGIX_fog_layers */
-#ifdef GL_SGIX_fog_texture
- if (glewExperimental || GLEW_SGIX_fog_texture) GLEW_SGIX_fog_texture = !_glewInit_GL_SGIX_fog_texture();
-#endif /* GL_SGIX_fog_texture */
-#ifdef GL_SGIX_fragment_specular_lighting
- if (glewExperimental || GLEW_SGIX_fragment_specular_lighting) GLEW_SGIX_fragment_specular_lighting = !_glewInit_GL_SGIX_fragment_specular_lighting();
-#endif /* GL_SGIX_fragment_specular_lighting */
-#ifdef GL_SGIX_framezoom
- if (glewExperimental || GLEW_SGIX_framezoom) GLEW_SGIX_framezoom = !_glewInit_GL_SGIX_framezoom();
-#endif /* GL_SGIX_framezoom */
-#ifdef GL_SGIX_igloo_interface
- if (glewExperimental || GLEW_SGIX_igloo_interface) GLEW_SGIX_igloo_interface = !_glewInit_GL_SGIX_igloo_interface();
-#endif /* GL_SGIX_igloo_interface */
-#ifdef GL_SGIX_mpeg1
- if (glewExperimental || GLEW_SGIX_mpeg1) GLEW_SGIX_mpeg1 = !_glewInit_GL_SGIX_mpeg1();
-#endif /* GL_SGIX_mpeg1 */
-#ifdef GL_SGIX_nonlinear_lighting_pervertex
- if (glewExperimental || GLEW_SGIX_nonlinear_lighting_pervertex) GLEW_SGIX_nonlinear_lighting_pervertex = !_glewInit_GL_SGIX_nonlinear_lighting_pervertex();
-#endif /* GL_SGIX_nonlinear_lighting_pervertex */
-#ifdef GL_SGIX_pixel_texture
- if (glewExperimental || GLEW_SGIX_pixel_texture) GLEW_SGIX_pixel_texture = !_glewInit_GL_SGIX_pixel_texture();
-#endif /* GL_SGIX_pixel_texture */
-#ifdef GL_SGIX_polynomial_ffd
- if (glewExperimental || GLEW_SGIX_polynomial_ffd) GLEW_SGIX_polynomial_ffd = !_glewInit_GL_SGIX_polynomial_ffd();
-#endif /* GL_SGIX_polynomial_ffd */
-#ifdef GL_SGIX_quad_mesh
- if (glewExperimental || GLEW_SGIX_quad_mesh) GLEW_SGIX_quad_mesh = !_glewInit_GL_SGIX_quad_mesh();
-#endif /* GL_SGIX_quad_mesh */
-#ifdef GL_SGIX_reference_plane
- if (glewExperimental || GLEW_SGIX_reference_plane) GLEW_SGIX_reference_plane = !_glewInit_GL_SGIX_reference_plane();
-#endif /* GL_SGIX_reference_plane */
-#ifdef GL_SGIX_sprite
- if (glewExperimental || GLEW_SGIX_sprite) GLEW_SGIX_sprite = !_glewInit_GL_SGIX_sprite();
-#endif /* GL_SGIX_sprite */
-#ifdef GL_SGIX_tag_sample_buffer
- if (glewExperimental || GLEW_SGIX_tag_sample_buffer) GLEW_SGIX_tag_sample_buffer = !_glewInit_GL_SGIX_tag_sample_buffer();
-#endif /* GL_SGIX_tag_sample_buffer */
-#ifdef GL_SGIX_vector_ops
- if (glewExperimental || GLEW_SGIX_vector_ops) GLEW_SGIX_vector_ops = !_glewInit_GL_SGIX_vector_ops();
-#endif /* GL_SGIX_vector_ops */
-#ifdef GL_SGIX_vertex_array_object
- if (glewExperimental || GLEW_SGIX_vertex_array_object) GLEW_SGIX_vertex_array_object = !_glewInit_GL_SGIX_vertex_array_object();
-#endif /* GL_SGIX_vertex_array_object */
-#ifdef GL_SGI_color_table
- if (glewExperimental || GLEW_SGI_color_table) GLEW_SGI_color_table = !_glewInit_GL_SGI_color_table();
-#endif /* GL_SGI_color_table */
-#ifdef GL_SGI_fft
- if (glewExperimental || GLEW_SGI_fft) GLEW_SGI_fft = !_glewInit_GL_SGI_fft();
-#endif /* GL_SGI_fft */
-#ifdef GL_SUNX_constant_data
- if (glewExperimental || GLEW_SUNX_constant_data) GLEW_SUNX_constant_data = !_glewInit_GL_SUNX_constant_data();
-#endif /* GL_SUNX_constant_data */
-#ifdef GL_SUN_global_alpha
- if (glewExperimental || GLEW_SUN_global_alpha) GLEW_SUN_global_alpha = !_glewInit_GL_SUN_global_alpha();
-#endif /* GL_SUN_global_alpha */
-#ifdef GL_SUN_read_video_pixels
- if (glewExperimental || GLEW_SUN_read_video_pixels) GLEW_SUN_read_video_pixels = !_glewInit_GL_SUN_read_video_pixels();
-#endif /* GL_SUN_read_video_pixels */
-#ifdef GL_SUN_triangle_list
- if (glewExperimental || GLEW_SUN_triangle_list) GLEW_SUN_triangle_list = !_glewInit_GL_SUN_triangle_list();
-#endif /* GL_SUN_triangle_list */
-#ifdef GL_SUN_vertex
- if (glewExperimental || GLEW_SUN_vertex) GLEW_SUN_vertex = !_glewInit_GL_SUN_vertex();
-#endif /* GL_SUN_vertex */
-#ifdef GL_WIN_swap_hint
- if (glewExperimental || GLEW_WIN_swap_hint) GLEW_WIN_swap_hint = !_glewInit_GL_WIN_swap_hint();
-#endif /* GL_WIN_swap_hint */
-#ifdef GL_NV_fragment_program4
- GLEW_NV_fragment_program4 = GLEW_NV_gpu_program4;
-#endif /* GL_NV_fragment_program4 */
-#ifdef GL_NV_geometry_program4
- GLEW_NV_geometry_program4 = GLEW_NV_gpu_program4;
-#endif /* GL_NV_geometry_program4 */
-#ifdef GL_NV_tessellation_program5
- GLEW_NV_tessellation_program5 = GLEW_NV_gpu_program5;
-#endif /* GL_NV_tessellation_program5 */
-#ifdef GL_NV_vertex_program4
- GLEW_NV_vertex_program4 = GLEW_NV_gpu_program4;
-#endif /* GL_NV_vertex_program4 */
-
- return GLEW_OK;
-}
-
-
-#if defined(GLEW_OSMESA)
-
-#elif defined(GLEW_EGL)
-
-PFNEGLCHOOSECONFIGPROC __eglewChooseConfig = NULL;
-PFNEGLCOPYBUFFERSPROC __eglewCopyBuffers = NULL;
-PFNEGLCREATECONTEXTPROC __eglewCreateContext = NULL;
-PFNEGLCREATEPBUFFERSURFACEPROC __eglewCreatePbufferSurface = NULL;
-PFNEGLCREATEPIXMAPSURFACEPROC __eglewCreatePixmapSurface = NULL;
-PFNEGLCREATEWINDOWSURFACEPROC __eglewCreateWindowSurface = NULL;
-PFNEGLDESTROYCONTEXTPROC __eglewDestroyContext = NULL;
-PFNEGLDESTROYSURFACEPROC __eglewDestroySurface = NULL;
-PFNEGLGETCONFIGATTRIBPROC __eglewGetConfigAttrib = NULL;
-PFNEGLGETCONFIGSPROC __eglewGetConfigs = NULL;
-PFNEGLGETCURRENTDISPLAYPROC __eglewGetCurrentDisplay = NULL;
-PFNEGLGETCURRENTSURFACEPROC __eglewGetCurrentSurface = NULL;
-PFNEGLGETDISPLAYPROC __eglewGetDisplay = NULL;
-PFNEGLGETERRORPROC __eglewGetError = NULL;
-PFNEGLINITIALIZEPROC __eglewInitialize = NULL;
-PFNEGLMAKECURRENTPROC __eglewMakeCurrent = NULL;
-PFNEGLQUERYCONTEXTPROC __eglewQueryContext = NULL;
-PFNEGLQUERYSTRINGPROC __eglewQueryString = NULL;
-PFNEGLQUERYSURFACEPROC __eglewQuerySurface = NULL;
-PFNEGLSWAPBUFFERSPROC __eglewSwapBuffers = NULL;
-PFNEGLTERMINATEPROC __eglewTerminate = NULL;
-PFNEGLWAITGLPROC __eglewWaitGL = NULL;
-PFNEGLWAITNATIVEPROC __eglewWaitNative = NULL;
-
-PFNEGLBINDTEXIMAGEPROC __eglewBindTexImage = NULL;
-PFNEGLRELEASETEXIMAGEPROC __eglewReleaseTexImage = NULL;
-PFNEGLSURFACEATTRIBPROC __eglewSurfaceAttrib = NULL;
-PFNEGLSWAPINTERVALPROC __eglewSwapInterval = NULL;
-
-PFNEGLBINDAPIPROC __eglewBindAPI = NULL;
-PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC __eglewCreatePbufferFromClientBuffer = NULL;
-PFNEGLQUERYAPIPROC __eglewQueryAPI = NULL;
-PFNEGLRELEASETHREADPROC __eglewReleaseThread = NULL;
-PFNEGLWAITCLIENTPROC __eglewWaitClient = NULL;
-
-PFNEGLGETCURRENTCONTEXTPROC __eglewGetCurrentContext = NULL;
-
-PFNEGLCLIENTWAITSYNCPROC __eglewClientWaitSync = NULL;
-PFNEGLCREATEIMAGEPROC __eglewCreateImage = NULL;
-PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC __eglewCreatePlatformPixmapSurface = NULL;
-PFNEGLCREATEPLATFORMWINDOWSURFACEPROC __eglewCreatePlatformWindowSurface = NULL;
-PFNEGLCREATESYNCPROC __eglewCreateSync = NULL;
-PFNEGLDESTROYIMAGEPROC __eglewDestroyImage = NULL;
-PFNEGLDESTROYSYNCPROC __eglewDestroySync = NULL;
-PFNEGLGETPLATFORMDISPLAYPROC __eglewGetPlatformDisplay = NULL;
-PFNEGLGETSYNCATTRIBPROC __eglewGetSyncAttrib = NULL;
-PFNEGLWAITSYNCPROC __eglewWaitSync = NULL;
-
-PFNEGLSETBLOBCACHEFUNCSANDROIDPROC __eglewSetBlobCacheFuncsANDROID = NULL;
-
-PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC __eglewCreateNativeClientBufferANDROID = NULL;
-
-PFNEGLGETCOMPOSITORTIMINGANDROIDPROC __eglewGetCompositorTimingANDROID = NULL;
-PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC __eglewGetCompositorTimingSupportedANDROID = NULL;
-PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC __eglewGetFrameTimestampSupportedANDROID = NULL;
-PFNEGLGETFRAMETIMESTAMPSANDROIDPROC __eglewGetFrameTimestampsANDROID = NULL;
-PFNEGLGETNEXTFRAMEIDANDROIDPROC __eglewGetNextFrameIdANDROID = NULL;
-
-PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC __eglewGetNativeClientBufferANDROID = NULL;
-
-PFNEGLDUPNATIVEFENCEFDANDROIDPROC __eglewDupNativeFenceFDANDROID = NULL;
-
-PFNEGLPRESENTATIONTIMEANDROIDPROC __eglewPresentationTimeANDROID = NULL;
-
-PFNEGLQUERYSURFACEPOINTERANGLEPROC __eglewQuerySurfacePointerANGLE = NULL;
-
-PFNEGLCLIENTSIGNALSYNCEXTPROC __eglewClientSignalSyncEXT = NULL;
-
-PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC __eglewCompositorBindTexWindowEXT = NULL;
-PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC __eglewCompositorSetContextAttributesEXT = NULL;
-PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC __eglewCompositorSetContextListEXT = NULL;
-PFNEGLCOMPOSITORSETSIZEEXTPROC __eglewCompositorSetSizeEXT = NULL;
-PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC __eglewCompositorSetWindowAttributesEXT = NULL;
-PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC __eglewCompositorSetWindowListEXT = NULL;
-PFNEGLCOMPOSITORSWAPPOLICYEXTPROC __eglewCompositorSwapPolicyEXT = NULL;
-
-PFNEGLQUERYDEVICESEXTPROC __eglewQueryDevicesEXT = NULL;
-
-PFNEGLQUERYDEVICEATTRIBEXTPROC __eglewQueryDeviceAttribEXT = NULL;
-PFNEGLQUERYDEVICESTRINGEXTPROC __eglewQueryDeviceStringEXT = NULL;
-PFNEGLQUERYDISPLAYATTRIBEXTPROC __eglewQueryDisplayAttribEXT = NULL;
-
-PFNEGLQUERYDMABUFFORMATSEXTPROC __eglewQueryDmaBufFormatsEXT = NULL;
-PFNEGLQUERYDMABUFMODIFIERSEXTPROC __eglewQueryDmaBufModifiersEXT = NULL;
-
-PFNEGLGETOUTPUTLAYERSEXTPROC __eglewGetOutputLayersEXT = NULL;
-PFNEGLGETOUTPUTPORTSEXTPROC __eglewGetOutputPortsEXT = NULL;
-PFNEGLOUTPUTLAYERATTRIBEXTPROC __eglewOutputLayerAttribEXT = NULL;
-PFNEGLOUTPUTPORTATTRIBEXTPROC __eglewOutputPortAttribEXT = NULL;
-PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC __eglewQueryOutputLayerAttribEXT = NULL;
-PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC __eglewQueryOutputLayerStringEXT = NULL;
-PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC __eglewQueryOutputPortAttribEXT = NULL;
-PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC __eglewQueryOutputPortStringEXT = NULL;
-
-PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC __eglewCreatePlatformPixmapSurfaceEXT = NULL;
-PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC __eglewCreatePlatformWindowSurfaceEXT = NULL;
-PFNEGLGETPLATFORMDISPLAYEXTPROC __eglewGetPlatformDisplayEXT = NULL;
-
-PFNEGLSTREAMCONSUMEROUTPUTEXTPROC __eglewStreamConsumerOutputEXT = NULL;
-
-PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC __eglewSwapBuffersWithDamageEXT = NULL;
-
-PFNEGLUNSIGNALSYNCEXTPROC __eglewUnsignalSyncEXT = NULL;
-
-PFNEGLCREATEPIXMAPSURFACEHIPROC __eglewCreatePixmapSurfaceHI = NULL;
-
-PFNEGLCREATESYNC64KHRPROC __eglewCreateSync64KHR = NULL;
-
-PFNEGLDEBUGMESSAGECONTROLKHRPROC __eglewDebugMessageControlKHR = NULL;
-PFNEGLLABELOBJECTKHRPROC __eglewLabelObjectKHR = NULL;
-PFNEGLQUERYDEBUGKHRPROC __eglewQueryDebugKHR = NULL;
-
-PFNEGLQUERYDISPLAYATTRIBKHRPROC __eglewQueryDisplayAttribKHR = NULL;
-
-PFNEGLCREATEIMAGEKHRPROC __eglewCreateImageKHR = NULL;
-PFNEGLDESTROYIMAGEKHRPROC __eglewDestroyImageKHR = NULL;
-
-PFNEGLLOCKSURFACEKHRPROC __eglewLockSurfaceKHR = NULL;
-PFNEGLUNLOCKSURFACEKHRPROC __eglewUnlockSurfaceKHR = NULL;
-
-PFNEGLQUERYSURFACE64KHRPROC __eglewQuerySurface64KHR = NULL;
-
-PFNEGLSETDAMAGEREGIONKHRPROC __eglewSetDamageRegionKHR = NULL;
-
-PFNEGLCLIENTWAITSYNCKHRPROC __eglewClientWaitSyncKHR = NULL;
-PFNEGLCREATESYNCKHRPROC __eglewCreateSyncKHR = NULL;
-PFNEGLDESTROYSYNCKHRPROC __eglewDestroySyncKHR = NULL;
-PFNEGLGETSYNCATTRIBKHRPROC __eglewGetSyncAttribKHR = NULL;
-PFNEGLSIGNALSYNCKHRPROC __eglewSignalSyncKHR = NULL;
-
-PFNEGLCREATESTREAMKHRPROC __eglewCreateStreamKHR = NULL;
-PFNEGLDESTROYSTREAMKHRPROC __eglewDestroyStreamKHR = NULL;
-PFNEGLQUERYSTREAMKHRPROC __eglewQueryStreamKHR = NULL;
-PFNEGLQUERYSTREAMU64KHRPROC __eglewQueryStreamu64KHR = NULL;
-PFNEGLSTREAMATTRIBKHRPROC __eglewStreamAttribKHR = NULL;
-
-PFNEGLCREATESTREAMATTRIBKHRPROC __eglewCreateStreamAttribKHR = NULL;
-PFNEGLQUERYSTREAMATTRIBKHRPROC __eglewQueryStreamAttribKHR = NULL;
-PFNEGLSETSTREAMATTRIBKHRPROC __eglewSetStreamAttribKHR = NULL;
-PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC __eglewStreamConsumerAcquireAttribKHR = NULL;
-PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC __eglewStreamConsumerReleaseAttribKHR = NULL;
-
-PFNEGLSTREAMCONSUMERACQUIREKHRPROC __eglewStreamConsumerAcquireKHR = NULL;
-PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC __eglewStreamConsumerGLTextureExternalKHR = NULL;
-PFNEGLSTREAMCONSUMERRELEASEKHRPROC __eglewStreamConsumerReleaseKHR = NULL;
-
-PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC __eglewCreateStreamFromFileDescriptorKHR = NULL;
-PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC __eglewGetStreamFileDescriptorKHR = NULL;
-
-PFNEGLQUERYSTREAMTIMEKHRPROC __eglewQueryStreamTimeKHR = NULL;
-
-PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC __eglewCreateStreamProducerSurfaceKHR = NULL;
-
-PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC __eglewSwapBuffersWithDamageKHR = NULL;
-
-PFNEGLWAITSYNCKHRPROC __eglewWaitSyncKHR = NULL;
-
-PFNEGLCREATEDRMIMAGEMESAPROC __eglewCreateDRMImageMESA = NULL;
-PFNEGLEXPORTDRMIMAGEMESAPROC __eglewExportDRMImageMESA = NULL;
-
-PFNEGLEXPORTDMABUFIMAGEMESAPROC __eglewExportDMABUFImageMESA = NULL;
-PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC __eglewExportDMABUFImageQueryMESA = NULL;
-
-PFNEGLGETDISPLAYDRIVERCONFIGPROC __eglewGetDisplayDriverConfig = NULL;
-PFNEGLGETDISPLAYDRIVERNAMEPROC __eglewGetDisplayDriverName = NULL;
-
-PFNEGLSWAPBUFFERSREGIONNOKPROC __eglewSwapBuffersRegionNOK = NULL;
-
-PFNEGLSWAPBUFFERSREGION2NOKPROC __eglewSwapBuffersRegion2NOK = NULL;
-
-PFNEGLQUERYNATIVEDISPLAYNVPROC __eglewQueryNativeDisplayNV = NULL;
-PFNEGLQUERYNATIVEPIXMAPNVPROC __eglewQueryNativePixmapNV = NULL;
-PFNEGLQUERYNATIVEWINDOWNVPROC __eglewQueryNativeWindowNV = NULL;
-
-PFNEGLPOSTSUBBUFFERNVPROC __eglewPostSubBufferNV = NULL;
-
-PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC __eglewStreamConsumerGLTextureExternalAttribsNV = NULL;
-
-PFNEGLSTREAMFLUSHNVPROC __eglewStreamFlushNV = NULL;
-
-PFNEGLQUERYDISPLAYATTRIBNVPROC __eglewQueryDisplayAttribNV = NULL;
-PFNEGLQUERYSTREAMMETADATANVPROC __eglewQueryStreamMetadataNV = NULL;
-PFNEGLSETSTREAMMETADATANVPROC __eglewSetStreamMetadataNV = NULL;
-
-PFNEGLRESETSTREAMNVPROC __eglewResetStreamNV = NULL;
-
-PFNEGLCREATESTREAMSYNCNVPROC __eglewCreateStreamSyncNV = NULL;
-
-PFNEGLCLIENTWAITSYNCNVPROC __eglewClientWaitSyncNV = NULL;
-PFNEGLCREATEFENCESYNCNVPROC __eglewCreateFenceSyncNV = NULL;
-PFNEGLDESTROYSYNCNVPROC __eglewDestroySyncNV = NULL;
-PFNEGLFENCENVPROC __eglewFenceNV = NULL;
-PFNEGLGETSYNCATTRIBNVPROC __eglewGetSyncAttribNV = NULL;
-PFNEGLSIGNALSYNCNVPROC __eglewSignalSyncNV = NULL;
-
-PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC __eglewGetSystemTimeFrequencyNV = NULL;
-PFNEGLGETSYSTEMTIMENVPROC __eglewGetSystemTimeNV = NULL;
-
-PFNEGLBINDWAYLANDDISPLAYWLPROC __eglewBindWaylandDisplayWL = NULL;
-PFNEGLQUERYWAYLANDBUFFERWLPROC __eglewQueryWaylandBufferWL = NULL;
-PFNEGLUNBINDWAYLANDDISPLAYWLPROC __eglewUnbindWaylandDisplayWL = NULL;
-
-PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC __eglewCreateWaylandBufferFromImageWL = NULL;
-GLboolean __EGLEW_VERSION_1_0 = GL_FALSE;
-GLboolean __EGLEW_VERSION_1_1 = GL_FALSE;
-GLboolean __EGLEW_VERSION_1_2 = GL_FALSE;
-GLboolean __EGLEW_VERSION_1_3 = GL_FALSE;
-GLboolean __EGLEW_VERSION_1_4 = GL_FALSE;
-GLboolean __EGLEW_VERSION_1_5 = GL_FALSE;
-GLboolean __EGLEW_ANDROID_GLES_layers = GL_FALSE;
-GLboolean __EGLEW_ANDROID_blob_cache = GL_FALSE;
-GLboolean __EGLEW_ANDROID_create_native_client_buffer = GL_FALSE;
-GLboolean __EGLEW_ANDROID_framebuffer_target = GL_FALSE;
-GLboolean __EGLEW_ANDROID_front_buffer_auto_refresh = GL_FALSE;
-GLboolean __EGLEW_ANDROID_get_frame_timestamps = GL_FALSE;
-GLboolean __EGLEW_ANDROID_get_native_client_buffer = GL_FALSE;
-GLboolean __EGLEW_ANDROID_image_native_buffer = GL_FALSE;
-GLboolean __EGLEW_ANDROID_native_fence_sync = GL_FALSE;
-GLboolean __EGLEW_ANDROID_presentation_time = GL_FALSE;
-GLboolean __EGLEW_ANDROID_recordable = GL_FALSE;
-GLboolean __EGLEW_ANGLE_d3d_share_handle_client_buffer = GL_FALSE;
-GLboolean __EGLEW_ANGLE_device_d3d = GL_FALSE;
-GLboolean __EGLEW_ANGLE_query_surface_pointer = GL_FALSE;
-GLboolean __EGLEW_ANGLE_surface_d3d_texture_2d_share_handle = GL_FALSE;
-GLboolean __EGLEW_ANGLE_window_fixed_size = GL_FALSE;
-GLboolean __EGLEW_ARM_image_format = GL_FALSE;
-GLboolean __EGLEW_ARM_implicit_external_sync = GL_FALSE;
-GLboolean __EGLEW_ARM_pixmap_multisample_discard = GL_FALSE;
-GLboolean __EGLEW_EXT_bind_to_front = GL_FALSE;
-GLboolean __EGLEW_EXT_buffer_age = GL_FALSE;
-GLboolean __EGLEW_EXT_client_extensions = GL_FALSE;
-GLboolean __EGLEW_EXT_client_sync = GL_FALSE;
-GLboolean __EGLEW_EXT_compositor = GL_FALSE;
-GLboolean __EGLEW_EXT_create_context_robustness = GL_FALSE;
-GLboolean __EGLEW_EXT_device_base = GL_FALSE;
-GLboolean __EGLEW_EXT_device_drm = GL_FALSE;
-GLboolean __EGLEW_EXT_device_enumeration = GL_FALSE;
-GLboolean __EGLEW_EXT_device_openwf = GL_FALSE;
-GLboolean __EGLEW_EXT_device_query = GL_FALSE;
-GLboolean __EGLEW_EXT_gl_colorspace_bt2020_linear = GL_FALSE;
-GLboolean __EGLEW_EXT_gl_colorspace_bt2020_pq = GL_FALSE;
-GLboolean __EGLEW_EXT_gl_colorspace_display_p3 = GL_FALSE;
-GLboolean __EGLEW_EXT_gl_colorspace_display_p3_linear = GL_FALSE;
-GLboolean __EGLEW_EXT_gl_colorspace_display_p3_passthrough = GL_FALSE;
-GLboolean __EGLEW_EXT_gl_colorspace_scrgb = GL_FALSE;
-GLboolean __EGLEW_EXT_gl_colorspace_scrgb_linear = GL_FALSE;
-GLboolean __EGLEW_EXT_image_dma_buf_import = GL_FALSE;
-GLboolean __EGLEW_EXT_image_dma_buf_import_modifiers = GL_FALSE;
-GLboolean __EGLEW_EXT_image_gl_colorspace = GL_FALSE;
-GLboolean __EGLEW_EXT_image_implicit_sync_control = GL_FALSE;
-GLboolean __EGLEW_EXT_multiview_window = GL_FALSE;
-GLboolean __EGLEW_EXT_output_base = GL_FALSE;
-GLboolean __EGLEW_EXT_output_drm = GL_FALSE;
-GLboolean __EGLEW_EXT_output_openwf = GL_FALSE;
-GLboolean __EGLEW_EXT_pixel_format_float = GL_FALSE;
-GLboolean __EGLEW_EXT_platform_base = GL_FALSE;
-GLboolean __EGLEW_EXT_platform_device = GL_FALSE;
-GLboolean __EGLEW_EXT_platform_wayland = GL_FALSE;
-GLboolean __EGLEW_EXT_platform_x11 = GL_FALSE;
-GLboolean __EGLEW_EXT_protected_content = GL_FALSE;
-GLboolean __EGLEW_EXT_protected_surface = GL_FALSE;
-GLboolean __EGLEW_EXT_stream_consumer_egloutput = GL_FALSE;
-GLboolean __EGLEW_EXT_surface_CTA861_3_metadata = GL_FALSE;
-GLboolean __EGLEW_EXT_surface_SMPTE2086_metadata = GL_FALSE;
-GLboolean __EGLEW_EXT_swap_buffers_with_damage = GL_FALSE;
-GLboolean __EGLEW_EXT_sync_reuse = GL_FALSE;
-GLboolean __EGLEW_EXT_yuv_surface = GL_FALSE;
-GLboolean __EGLEW_HI_clientpixmap = GL_FALSE;
-GLboolean __EGLEW_HI_colorformats = GL_FALSE;
-GLboolean __EGLEW_IMG_context_priority = GL_FALSE;
-GLboolean __EGLEW_IMG_image_plane_attribs = GL_FALSE;
-GLboolean __EGLEW_KHR_cl_event = GL_FALSE;
-GLboolean __EGLEW_KHR_cl_event2 = GL_FALSE;
-GLboolean __EGLEW_KHR_client_get_all_proc_addresses = GL_FALSE;
-GLboolean __EGLEW_KHR_config_attribs = GL_FALSE;
-GLboolean __EGLEW_KHR_context_flush_control = GL_FALSE;
-GLboolean __EGLEW_KHR_create_context = GL_FALSE;
-GLboolean __EGLEW_KHR_create_context_no_error = GL_FALSE;
-GLboolean __EGLEW_KHR_debug = GL_FALSE;
-GLboolean __EGLEW_KHR_display_reference = GL_FALSE;
-GLboolean __EGLEW_KHR_fence_sync = GL_FALSE;
-GLboolean __EGLEW_KHR_get_all_proc_addresses = GL_FALSE;
-GLboolean __EGLEW_KHR_gl_colorspace = GL_FALSE;
-GLboolean __EGLEW_KHR_gl_renderbuffer_image = GL_FALSE;
-GLboolean __EGLEW_KHR_gl_texture_2D_image = GL_FALSE;
-GLboolean __EGLEW_KHR_gl_texture_3D_image = GL_FALSE;
-GLboolean __EGLEW_KHR_gl_texture_cubemap_image = GL_FALSE;
-GLboolean __EGLEW_KHR_image = GL_FALSE;
-GLboolean __EGLEW_KHR_image_base = GL_FALSE;
-GLboolean __EGLEW_KHR_image_pixmap = GL_FALSE;
-GLboolean __EGLEW_KHR_lock_surface = GL_FALSE;
-GLboolean __EGLEW_KHR_lock_surface2 = GL_FALSE;
-GLboolean __EGLEW_KHR_lock_surface3 = GL_FALSE;
-GLboolean __EGLEW_KHR_mutable_render_buffer = GL_FALSE;
-GLboolean __EGLEW_KHR_no_config_context = GL_FALSE;
-GLboolean __EGLEW_KHR_partial_update = GL_FALSE;
-GLboolean __EGLEW_KHR_platform_android = GL_FALSE;
-GLboolean __EGLEW_KHR_platform_gbm = GL_FALSE;
-GLboolean __EGLEW_KHR_platform_wayland = GL_FALSE;
-GLboolean __EGLEW_KHR_platform_x11 = GL_FALSE;
-GLboolean __EGLEW_KHR_reusable_sync = GL_FALSE;
-GLboolean __EGLEW_KHR_stream = GL_FALSE;
-GLboolean __EGLEW_KHR_stream_attrib = GL_FALSE;
-GLboolean __EGLEW_KHR_stream_consumer_gltexture = GL_FALSE;
-GLboolean __EGLEW_KHR_stream_cross_process_fd = GL_FALSE;
-GLboolean __EGLEW_KHR_stream_fifo = GL_FALSE;
-GLboolean __EGLEW_KHR_stream_producer_aldatalocator = GL_FALSE;
-GLboolean __EGLEW_KHR_stream_producer_eglsurface = GL_FALSE;
-GLboolean __EGLEW_KHR_surfaceless_context = GL_FALSE;
-GLboolean __EGLEW_KHR_swap_buffers_with_damage = GL_FALSE;
-GLboolean __EGLEW_KHR_vg_parent_image = GL_FALSE;
-GLboolean __EGLEW_KHR_wait_sync = GL_FALSE;
-GLboolean __EGLEW_MESA_drm_image = GL_FALSE;
-GLboolean __EGLEW_MESA_image_dma_buf_export = GL_FALSE;
-GLboolean __EGLEW_MESA_platform_gbm = GL_FALSE;
-GLboolean __EGLEW_MESA_platform_surfaceless = GL_FALSE;
-GLboolean __EGLEW_MESA_query_driver = GL_FALSE;
-GLboolean __EGLEW_NOK_swap_region = GL_FALSE;
-GLboolean __EGLEW_NOK_swap_region2 = GL_FALSE;
-GLboolean __EGLEW_NOK_texture_from_pixmap = GL_FALSE;
-GLboolean __EGLEW_NV_3dvision_surface = GL_FALSE;
-GLboolean __EGLEW_NV_context_priority_realtime = GL_FALSE;
-GLboolean __EGLEW_NV_coverage_sample = GL_FALSE;
-GLboolean __EGLEW_NV_coverage_sample_resolve = GL_FALSE;
-GLboolean __EGLEW_NV_cuda_event = GL_FALSE;
-GLboolean __EGLEW_NV_depth_nonlinear = GL_FALSE;
-GLboolean __EGLEW_NV_device_cuda = GL_FALSE;
-GLboolean __EGLEW_NV_native_query = GL_FALSE;
-GLboolean __EGLEW_NV_post_convert_rounding = GL_FALSE;
-GLboolean __EGLEW_NV_post_sub_buffer = GL_FALSE;
-GLboolean __EGLEW_NV_quadruple_buffer = GL_FALSE;
-GLboolean __EGLEW_NV_robustness_video_memory_purge = GL_FALSE;
-GLboolean __EGLEW_NV_stream_consumer_gltexture_yuv = GL_FALSE;
-GLboolean __EGLEW_NV_stream_cross_display = GL_FALSE;
-GLboolean __EGLEW_NV_stream_cross_object = GL_FALSE;
-GLboolean __EGLEW_NV_stream_cross_partition = GL_FALSE;
-GLboolean __EGLEW_NV_stream_cross_process = GL_FALSE;
-GLboolean __EGLEW_NV_stream_cross_system = GL_FALSE;
-GLboolean __EGLEW_NV_stream_dma = GL_FALSE;
-GLboolean __EGLEW_NV_stream_fifo_next = GL_FALSE;
-GLboolean __EGLEW_NV_stream_fifo_synchronous = GL_FALSE;
-GLboolean __EGLEW_NV_stream_flush = GL_FALSE;
-GLboolean __EGLEW_NV_stream_frame_limits = GL_FALSE;
-GLboolean __EGLEW_NV_stream_metadata = GL_FALSE;
-GLboolean __EGLEW_NV_stream_origin = GL_FALSE;
-GLboolean __EGLEW_NV_stream_remote = GL_FALSE;
-GLboolean __EGLEW_NV_stream_reset = GL_FALSE;
-GLboolean __EGLEW_NV_stream_socket = GL_FALSE;
-GLboolean __EGLEW_NV_stream_socket_inet = GL_FALSE;
-GLboolean __EGLEW_NV_stream_socket_unix = GL_FALSE;
-GLboolean __EGLEW_NV_stream_sync = GL_FALSE;
-GLboolean __EGLEW_NV_sync = GL_FALSE;
-GLboolean __EGLEW_NV_system_time = GL_FALSE;
-GLboolean __EGLEW_NV_triple_buffer = GL_FALSE;
-GLboolean __EGLEW_TIZEN_image_native_buffer = GL_FALSE;
-GLboolean __EGLEW_TIZEN_image_native_surface = GL_FALSE;
-GLboolean __EGLEW_WL_bind_wayland_display = GL_FALSE;
-GLboolean __EGLEW_WL_create_wayland_buffer_from_image = GL_FALSE;
-#ifdef EGL_VERSION_1_0
-
-static GLboolean _glewInit_EGL_VERSION_1_0 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglChooseConfig = (PFNEGLCHOOSECONFIGPROC)glewGetProcAddress((const GLubyte*)"eglChooseConfig")) == NULL) || r;
- r = ((eglCopyBuffers = (PFNEGLCOPYBUFFERSPROC)glewGetProcAddress((const GLubyte*)"eglCopyBuffers")) == NULL) || r;
- r = ((eglCreateContext = (PFNEGLCREATECONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreateContext")) == NULL) || r;
- r = ((eglCreatePbufferSurface = (PFNEGLCREATEPBUFFERSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePbufferSurface")) == NULL) || r;
- r = ((eglCreatePixmapSurface = (PFNEGLCREATEPIXMAPSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePixmapSurface")) == NULL) || r;
- r = ((eglCreateWindowSurface = (PFNEGLCREATEWINDOWSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreateWindowSurface")) == NULL) || r;
- r = ((eglDestroyContext = (PFNEGLDESTROYCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglDestroyContext")) == NULL) || r;
- r = ((eglDestroySurface = (PFNEGLDESTROYSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglDestroySurface")) == NULL) || r;
- r = ((eglGetConfigAttrib = (PFNEGLGETCONFIGATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglGetConfigAttrib")) == NULL) || r;
- r = ((eglGetConfigs = (PFNEGLGETCONFIGSPROC)glewGetProcAddress((const GLubyte*)"eglGetConfigs")) == NULL) || r;
- r = ((eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentDisplay")) == NULL) || r;
- r = ((eglGetCurrentSurface = (PFNEGLGETCURRENTSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentSurface")) == NULL) || r;
- r = ((eglGetDisplay = (PFNEGLGETDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetDisplay")) == NULL) || r;
- r = ((eglGetError = (PFNEGLGETERRORPROC)glewGetProcAddress((const GLubyte*)"eglGetError")) == NULL) || r;
- r = ((eglInitialize = (PFNEGLINITIALIZEPROC)glewGetProcAddress((const GLubyte*)"eglInitialize")) == NULL) || r;
- r = ((eglMakeCurrent = (PFNEGLMAKECURRENTPROC)glewGetProcAddress((const GLubyte*)"eglMakeCurrent")) == NULL) || r;
- r = ((eglQueryContext = (PFNEGLQUERYCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryContext")) == NULL) || r;
- r = ((eglQueryString = (PFNEGLQUERYSTRINGPROC)glewGetProcAddress((const GLubyte*)"eglQueryString")) == NULL) || r;
- r = ((eglQuerySurface = (PFNEGLQUERYSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurface")) == NULL) || r;
- r = ((eglSwapBuffers = (PFNEGLSWAPBUFFERSPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffers")) == NULL) || r;
- r = ((eglTerminate = (PFNEGLTERMINATEPROC)glewGetProcAddress((const GLubyte*)"eglTerminate")) == NULL) || r;
- r = ((eglWaitGL = (PFNEGLWAITGLPROC)glewGetProcAddress((const GLubyte*)"eglWaitGL")) == NULL) || r;
- r = ((eglWaitNative = (PFNEGLWAITNATIVEPROC)glewGetProcAddress((const GLubyte*)"eglWaitNative")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_VERSION_1_0 */
-
-#ifdef EGL_VERSION_1_1
-
-static GLboolean _glewInit_EGL_VERSION_1_1 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglBindTexImage = (PFNEGLBINDTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglBindTexImage")) == NULL) || r;
- r = ((eglReleaseTexImage = (PFNEGLRELEASETEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglReleaseTexImage")) == NULL) || r;
- r = ((eglSurfaceAttrib = (PFNEGLSURFACEATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglSurfaceAttrib")) == NULL) || r;
- r = ((eglSwapInterval = (PFNEGLSWAPINTERVALPROC)glewGetProcAddress((const GLubyte*)"eglSwapInterval")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_VERSION_1_1 */
-
-#ifdef EGL_VERSION_1_2
-
-static GLboolean _glewInit_EGL_VERSION_1_2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglBindAPI = (PFNEGLBINDAPIPROC)glewGetProcAddress((const GLubyte*)"eglBindAPI")) == NULL) || r;
- r = ((eglCreatePbufferFromClientBuffer = (PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC)glewGetProcAddress((const GLubyte*)"eglCreatePbufferFromClientBuffer")) == NULL) || r;
- r = ((eglQueryAPI = (PFNEGLQUERYAPIPROC)glewGetProcAddress((const GLubyte*)"eglQueryAPI")) == NULL) || r;
- r = ((eglReleaseThread = (PFNEGLRELEASETHREADPROC)glewGetProcAddress((const GLubyte*)"eglReleaseThread")) == NULL) || r;
- r = ((eglWaitClient = (PFNEGLWAITCLIENTPROC)glewGetProcAddress((const GLubyte*)"eglWaitClient")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_VERSION_1_2 */
-
-#ifdef EGL_VERSION_1_4
-
-static GLboolean _glewInit_EGL_VERSION_1_4 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglGetCurrentContext = (PFNEGLGETCURRENTCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentContext")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_VERSION_1_4 */
-
-#ifdef EGL_VERSION_1_5
-
-static GLboolean _glewInit_EGL_VERSION_1_5 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglClientWaitSync = (PFNEGLCLIENTWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSync")) == NULL) || r;
- r = ((eglCreateImage = (PFNEGLCREATEIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglCreateImage")) == NULL) || r;
- r = ((eglCreatePlatformPixmapSurface = (PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformPixmapSurface")) == NULL) || r;
- r = ((eglCreatePlatformWindowSurface = (PFNEGLCREATEPLATFORMWINDOWSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformWindowSurface")) == NULL) || r;
- r = ((eglCreateSync = (PFNEGLCREATESYNCPROC)glewGetProcAddress((const GLubyte*)"eglCreateSync")) == NULL) || r;
- r = ((eglDestroyImage = (PFNEGLDESTROYIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglDestroyImage")) == NULL) || r;
- r = ((eglDestroySync = (PFNEGLDESTROYSYNCPROC)glewGetProcAddress((const GLubyte*)"eglDestroySync")) == NULL) || r;
- r = ((eglGetPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetPlatformDisplay")) == NULL) || r;
- r = ((eglGetSyncAttrib = (PFNEGLGETSYNCATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttrib")) == NULL) || r;
- r = ((eglWaitSync = (PFNEGLWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"eglWaitSync")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_VERSION_1_5 */
-
-#ifdef EGL_ANDROID_blob_cache
-
-static GLboolean _glewInit_EGL_ANDROID_blob_cache ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglSetBlobCacheFuncsANDROID = (PFNEGLSETBLOBCACHEFUNCSANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglSetBlobCacheFuncsANDROID")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_ANDROID_blob_cache */
-
-#ifdef EGL_ANDROID_create_native_client_buffer
-
-static GLboolean _glewInit_EGL_ANDROID_create_native_client_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreateNativeClientBufferANDROID = (PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglCreateNativeClientBufferANDROID")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_ANDROID_create_native_client_buffer */
-
-#ifdef EGL_ANDROID_get_frame_timestamps
-
-static GLboolean _glewInit_EGL_ANDROID_get_frame_timestamps ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglGetCompositorTimingANDROID = (PFNEGLGETCOMPOSITORTIMINGANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetCompositorTimingANDROID")) == NULL) || r;
- r = ((eglGetCompositorTimingSupportedANDROID = (PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetCompositorTimingSupportedANDROID")) == NULL) || r;
- r = ((eglGetFrameTimestampSupportedANDROID = (PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetFrameTimestampSupportedANDROID")) == NULL) || r;
- r = ((eglGetFrameTimestampsANDROID = (PFNEGLGETFRAMETIMESTAMPSANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetFrameTimestampsANDROID")) == NULL) || r;
- r = ((eglGetNextFrameIdANDROID = (PFNEGLGETNEXTFRAMEIDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetNextFrameIdANDROID")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_ANDROID_get_frame_timestamps */
-
-#ifdef EGL_ANDROID_get_native_client_buffer
-
-static GLboolean _glewInit_EGL_ANDROID_get_native_client_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglGetNativeClientBufferANDROID = (PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglGetNativeClientBufferANDROID")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_ANDROID_get_native_client_buffer */
-
-#ifdef EGL_ANDROID_native_fence_sync
-
-static GLboolean _glewInit_EGL_ANDROID_native_fence_sync ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglDupNativeFenceFDANDROID = (PFNEGLDUPNATIVEFENCEFDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglDupNativeFenceFDANDROID")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_ANDROID_native_fence_sync */
-
-#ifdef EGL_ANDROID_presentation_time
-
-static GLboolean _glewInit_EGL_ANDROID_presentation_time ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglPresentationTimeANDROID = (PFNEGLPRESENTATIONTIMEANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglPresentationTimeANDROID")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_ANDROID_presentation_time */
-
-#ifdef EGL_ANGLE_query_surface_pointer
-
-static GLboolean _glewInit_EGL_ANGLE_query_surface_pointer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglQuerySurfacePointerANGLE = (PFNEGLQUERYSURFACEPOINTERANGLEPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurfacePointerANGLE")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_ANGLE_query_surface_pointer */
-
-#ifdef EGL_EXT_client_sync
-
-static GLboolean _glewInit_EGL_EXT_client_sync ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglClientSignalSyncEXT = (PFNEGLCLIENTSIGNALSYNCEXTPROC)glewGetProcAddress((const GLubyte*)"eglClientSignalSyncEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_EXT_client_sync */
-
-#ifdef EGL_EXT_compositor
-
-static GLboolean _glewInit_EGL_EXT_compositor ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCompositorBindTexWindowEXT = (PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorBindTexWindowEXT")) == NULL) || r;
- r = ((eglCompositorSetContextAttributesEXT = (PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetContextAttributesEXT")) == NULL) || r;
- r = ((eglCompositorSetContextListEXT = (PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetContextListEXT")) == NULL) || r;
- r = ((eglCompositorSetSizeEXT = (PFNEGLCOMPOSITORSETSIZEEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetSizeEXT")) == NULL) || r;
- r = ((eglCompositorSetWindowAttributesEXT = (PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetWindowAttributesEXT")) == NULL) || r;
- r = ((eglCompositorSetWindowListEXT = (PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSetWindowListEXT")) == NULL) || r;
- r = ((eglCompositorSwapPolicyEXT = (PFNEGLCOMPOSITORSWAPPOLICYEXTPROC)glewGetProcAddress((const GLubyte*)"eglCompositorSwapPolicyEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_EXT_compositor */
-
-#ifdef EGL_EXT_device_enumeration
-
-static GLboolean _glewInit_EGL_EXT_device_enumeration ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglQueryDevicesEXT = (PFNEGLQUERYDEVICESEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDevicesEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_EXT_device_enumeration */
-
-#ifdef EGL_EXT_device_query
-
-static GLboolean _glewInit_EGL_EXT_device_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglQueryDeviceAttribEXT = (PFNEGLQUERYDEVICEATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDeviceAttribEXT")) == NULL) || r;
- r = ((eglQueryDeviceStringEXT = (PFNEGLQUERYDEVICESTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDeviceStringEXT")) == NULL) || r;
- r = ((eglQueryDisplayAttribEXT = (PFNEGLQUERYDISPLAYATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDisplayAttribEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_EXT_device_query */
-
-#ifdef EGL_EXT_image_dma_buf_import_modifiers
-
-static GLboolean _glewInit_EGL_EXT_image_dma_buf_import_modifiers ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglQueryDmaBufFormatsEXT = (PFNEGLQUERYDMABUFFORMATSEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDmaBufFormatsEXT")) == NULL) || r;
- r = ((eglQueryDmaBufModifiersEXT = (PFNEGLQUERYDMABUFMODIFIERSEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDmaBufModifiersEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_EXT_image_dma_buf_import_modifiers */
-
-#ifdef EGL_EXT_output_base
-
-static GLboolean _glewInit_EGL_EXT_output_base ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglGetOutputLayersEXT = (PFNEGLGETOUTPUTLAYERSEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetOutputLayersEXT")) == NULL) || r;
- r = ((eglGetOutputPortsEXT = (PFNEGLGETOUTPUTPORTSEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetOutputPortsEXT")) == NULL) || r;
- r = ((eglOutputLayerAttribEXT = (PFNEGLOUTPUTLAYERATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglOutputLayerAttribEXT")) == NULL) || r;
- r = ((eglOutputPortAttribEXT = (PFNEGLOUTPUTPORTATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglOutputPortAttribEXT")) == NULL) || r;
- r = ((eglQueryOutputLayerAttribEXT = (PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputLayerAttribEXT")) == NULL) || r;
- r = ((eglQueryOutputLayerStringEXT = (PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputLayerStringEXT")) == NULL) || r;
- r = ((eglQueryOutputPortAttribEXT = (PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputPortAttribEXT")) == NULL) || r;
- r = ((eglQueryOutputPortStringEXT = (PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputPortStringEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_EXT_output_base */
-
-#ifdef EGL_EXT_platform_base
-
-static GLboolean _glewInit_EGL_EXT_platform_base ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreatePlatformPixmapSurfaceEXT = (PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformPixmapSurfaceEXT")) == NULL) || r;
- r = ((eglCreatePlatformWindowSurfaceEXT = (PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformWindowSurfaceEXT")) == NULL) || r;
- r = ((eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetPlatformDisplayEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_EXT_platform_base */
-
-#ifdef EGL_EXT_stream_consumer_egloutput
-
-static GLboolean _glewInit_EGL_EXT_stream_consumer_egloutput ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglStreamConsumerOutputEXT = (PFNEGLSTREAMCONSUMEROUTPUTEXTPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerOutputEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_EXT_stream_consumer_egloutput */
-
-#ifdef EGL_EXT_swap_buffers_with_damage
-
-static GLboolean _glewInit_EGL_EXT_swap_buffers_with_damage ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglSwapBuffersWithDamageEXT = (PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersWithDamageEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_EXT_swap_buffers_with_damage */
-
-#ifdef EGL_EXT_sync_reuse
-
-static GLboolean _glewInit_EGL_EXT_sync_reuse ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglUnsignalSyncEXT = (PFNEGLUNSIGNALSYNCEXTPROC)glewGetProcAddress((const GLubyte*)"eglUnsignalSyncEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_EXT_sync_reuse */
-
-#ifdef EGL_HI_clientpixmap
-
-static GLboolean _glewInit_EGL_HI_clientpixmap ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreatePixmapSurfaceHI = (PFNEGLCREATEPIXMAPSURFACEHIPROC)glewGetProcAddress((const GLubyte*)"eglCreatePixmapSurfaceHI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_HI_clientpixmap */
-
-#ifdef EGL_KHR_cl_event2
-
-static GLboolean _glewInit_EGL_KHR_cl_event2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreateSync64KHR = (PFNEGLCREATESYNC64KHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateSync64KHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_cl_event2 */
-
-#ifdef EGL_KHR_debug
-
-static GLboolean _glewInit_EGL_KHR_debug ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglDebugMessageControlKHR = (PFNEGLDEBUGMESSAGECONTROLKHRPROC)glewGetProcAddress((const GLubyte*)"eglDebugMessageControlKHR")) == NULL) || r;
- r = ((eglLabelObjectKHR = (PFNEGLLABELOBJECTKHRPROC)glewGetProcAddress((const GLubyte*)"eglLabelObjectKHR")) == NULL) || r;
- r = ((eglQueryDebugKHR = (PFNEGLQUERYDEBUGKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryDebugKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_debug */
-
-#ifdef EGL_KHR_display_reference
-
-static GLboolean _glewInit_EGL_KHR_display_reference ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglQueryDisplayAttribKHR = (PFNEGLQUERYDISPLAYATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryDisplayAttribKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_display_reference */
-
-#ifdef EGL_KHR_image
-
-static GLboolean _glewInit_EGL_KHR_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateImageKHR")) == NULL) || r;
- r = ((eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroyImageKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_image */
-
-#ifdef EGL_KHR_lock_surface
-
-static GLboolean _glewInit_EGL_KHR_lock_surface ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglLockSurfaceKHR = (PFNEGLLOCKSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglLockSurfaceKHR")) == NULL) || r;
- r = ((eglUnlockSurfaceKHR = (PFNEGLUNLOCKSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglUnlockSurfaceKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_lock_surface */
-
-#ifdef EGL_KHR_lock_surface3
-
-static GLboolean _glewInit_EGL_KHR_lock_surface3 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglQuerySurface64KHR = (PFNEGLQUERYSURFACE64KHRPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurface64KHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_lock_surface3 */
-
-#ifdef EGL_KHR_partial_update
-
-static GLboolean _glewInit_EGL_KHR_partial_update ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglSetDamageRegionKHR = (PFNEGLSETDAMAGEREGIONKHRPROC)glewGetProcAddress((const GLubyte*)"eglSetDamageRegionKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_partial_update */
-
-#ifdef EGL_KHR_reusable_sync
-
-static GLboolean _glewInit_EGL_KHR_reusable_sync ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSyncKHR")) == NULL) || r;
- r = ((eglCreateSyncKHR = (PFNEGLCREATESYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateSyncKHR")) == NULL) || r;
- r = ((eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroySyncKHR")) == NULL) || r;
- r = ((eglGetSyncAttribKHR = (PFNEGLGETSYNCATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttribKHR")) == NULL) || r;
- r = ((eglSignalSyncKHR = (PFNEGLSIGNALSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglSignalSyncKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_reusable_sync */
-
-#ifdef EGL_KHR_stream
-
-static GLboolean _glewInit_EGL_KHR_stream ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreateStreamKHR = (PFNEGLCREATESTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamKHR")) == NULL) || r;
- r = ((eglDestroyStreamKHR = (PFNEGLDESTROYSTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroyStreamKHR")) == NULL) || r;
- r = ((eglQueryStreamKHR = (PFNEGLQUERYSTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamKHR")) == NULL) || r;
- r = ((eglQueryStreamu64KHR = (PFNEGLQUERYSTREAMU64KHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamu64KHR")) == NULL) || r;
- r = ((eglStreamAttribKHR = (PFNEGLSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamAttribKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_stream */
-
-#ifdef EGL_KHR_stream_attrib
-
-static GLboolean _glewInit_EGL_KHR_stream_attrib ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreateStreamAttribKHR = (PFNEGLCREATESTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamAttribKHR")) == NULL) || r;
- r = ((eglQueryStreamAttribKHR = (PFNEGLQUERYSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamAttribKHR")) == NULL) || r;
- r = ((eglSetStreamAttribKHR = (PFNEGLSETSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglSetStreamAttribKHR")) == NULL) || r;
- r = ((eglStreamConsumerAcquireAttribKHR = (PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerAcquireAttribKHR")) == NULL) || r;
- r = ((eglStreamConsumerReleaseAttribKHR = (PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerReleaseAttribKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_stream_attrib */
-
-#ifdef EGL_KHR_stream_consumer_gltexture
-
-static GLboolean _glewInit_EGL_KHR_stream_consumer_gltexture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglStreamConsumerAcquireKHR = (PFNEGLSTREAMCONSUMERACQUIREKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerAcquireKHR")) == NULL) || r;
- r = ((eglStreamConsumerGLTextureExternalKHR = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerGLTextureExternalKHR")) == NULL) || r;
- r = ((eglStreamConsumerReleaseKHR = (PFNEGLSTREAMCONSUMERRELEASEKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerReleaseKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_stream_consumer_gltexture */
-
-#ifdef EGL_KHR_stream_cross_process_fd
-
-static GLboolean _glewInit_EGL_KHR_stream_cross_process_fd ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreateStreamFromFileDescriptorKHR = (PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamFromFileDescriptorKHR")) == NULL) || r;
- r = ((eglGetStreamFileDescriptorKHR = (PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)glewGetProcAddress((const GLubyte*)"eglGetStreamFileDescriptorKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_stream_cross_process_fd */
-
-#ifdef EGL_KHR_stream_fifo
-
-static GLboolean _glewInit_EGL_KHR_stream_fifo ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglQueryStreamTimeKHR = (PFNEGLQUERYSTREAMTIMEKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamTimeKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_stream_fifo */
-
-#ifdef EGL_KHR_stream_producer_eglsurface
-
-static GLboolean _glewInit_EGL_KHR_stream_producer_eglsurface ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreateStreamProducerSurfaceKHR = (PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamProducerSurfaceKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_stream_producer_eglsurface */
-
-#ifdef EGL_KHR_swap_buffers_with_damage
-
-static GLboolean _glewInit_EGL_KHR_swap_buffers_with_damage ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglSwapBuffersWithDamageKHR = (PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersWithDamageKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_swap_buffers_with_damage */
-
-#ifdef EGL_KHR_wait_sync
-
-static GLboolean _glewInit_EGL_KHR_wait_sync ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglWaitSyncKHR = (PFNEGLWAITSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglWaitSyncKHR")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_KHR_wait_sync */
-
-#ifdef EGL_MESA_drm_image
-
-static GLboolean _glewInit_EGL_MESA_drm_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreateDRMImageMESA = (PFNEGLCREATEDRMIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglCreateDRMImageMESA")) == NULL) || r;
- r = ((eglExportDRMImageMESA = (PFNEGLEXPORTDRMIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDRMImageMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_MESA_drm_image */
-
-#ifdef EGL_MESA_image_dma_buf_export
-
-static GLboolean _glewInit_EGL_MESA_image_dma_buf_export ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglExportDMABUFImageMESA = (PFNEGLEXPORTDMABUFIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDMABUFImageMESA")) == NULL) || r;
- r = ((eglExportDMABUFImageQueryMESA = (PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDMABUFImageQueryMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_MESA_image_dma_buf_export */
-
-#ifdef EGL_MESA_query_driver
-
-static GLboolean _glewInit_EGL_MESA_query_driver ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglGetDisplayDriverConfig = (PFNEGLGETDISPLAYDRIVERCONFIGPROC)glewGetProcAddress((const GLubyte*)"eglGetDisplayDriverConfig")) == NULL) || r;
- r = ((eglGetDisplayDriverName = (PFNEGLGETDISPLAYDRIVERNAMEPROC)glewGetProcAddress((const GLubyte*)"eglGetDisplayDriverName")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_MESA_query_driver */
-
-#ifdef EGL_NOK_swap_region
-
-static GLboolean _glewInit_EGL_NOK_swap_region ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglSwapBuffersRegionNOK = (PFNEGLSWAPBUFFERSREGIONNOKPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersRegionNOK")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_NOK_swap_region */
-
-#ifdef EGL_NOK_swap_region2
-
-static GLboolean _glewInit_EGL_NOK_swap_region2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglSwapBuffersRegion2NOK = (PFNEGLSWAPBUFFERSREGION2NOKPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersRegion2NOK")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_NOK_swap_region2 */
-
-#ifdef EGL_NV_native_query
-
-static GLboolean _glewInit_EGL_NV_native_query ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglQueryNativeDisplayNV = (PFNEGLQUERYNATIVEDISPLAYNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativeDisplayNV")) == NULL) || r;
- r = ((eglQueryNativePixmapNV = (PFNEGLQUERYNATIVEPIXMAPNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativePixmapNV")) == NULL) || r;
- r = ((eglQueryNativeWindowNV = (PFNEGLQUERYNATIVEWINDOWNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativeWindowNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_NV_native_query */
-
-#ifdef EGL_NV_post_sub_buffer
-
-static GLboolean _glewInit_EGL_NV_post_sub_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglPostSubBufferNV = (PFNEGLPOSTSUBBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"eglPostSubBufferNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_NV_post_sub_buffer */
-
-#ifdef EGL_NV_stream_consumer_gltexture_yuv
-
-static GLboolean _glewInit_EGL_NV_stream_consumer_gltexture_yuv ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglStreamConsumerGLTextureExternalAttribsNV = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerGLTextureExternalAttribsNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_NV_stream_consumer_gltexture_yuv */
-
-#ifdef EGL_NV_stream_flush
-
-static GLboolean _glewInit_EGL_NV_stream_flush ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglStreamFlushNV = (PFNEGLSTREAMFLUSHNVPROC)glewGetProcAddress((const GLubyte*)"eglStreamFlushNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_NV_stream_flush */
-
-#ifdef EGL_NV_stream_metadata
-
-static GLboolean _glewInit_EGL_NV_stream_metadata ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglQueryDisplayAttribNV = (PFNEGLQUERYDISPLAYATTRIBNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryDisplayAttribNV")) == NULL) || r;
- r = ((eglQueryStreamMetadataNV = (PFNEGLQUERYSTREAMMETADATANVPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamMetadataNV")) == NULL) || r;
- r = ((eglSetStreamMetadataNV = (PFNEGLSETSTREAMMETADATANVPROC)glewGetProcAddress((const GLubyte*)"eglSetStreamMetadataNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_NV_stream_metadata */
-
-#ifdef EGL_NV_stream_reset
-
-static GLboolean _glewInit_EGL_NV_stream_reset ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglResetStreamNV = (PFNEGLRESETSTREAMNVPROC)glewGetProcAddress((const GLubyte*)"eglResetStreamNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_NV_stream_reset */
-
-#ifdef EGL_NV_stream_sync
-
-static GLboolean _glewInit_EGL_NV_stream_sync ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreateStreamSyncNV = (PFNEGLCREATESTREAMSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamSyncNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_NV_stream_sync */
-
-#ifdef EGL_NV_sync
-
-static GLboolean _glewInit_EGL_NV_sync ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglClientWaitSyncNV = (PFNEGLCLIENTWAITSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSyncNV")) == NULL) || r;
- r = ((eglCreateFenceSyncNV = (PFNEGLCREATEFENCESYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglCreateFenceSyncNV")) == NULL) || r;
- r = ((eglDestroySyncNV = (PFNEGLDESTROYSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglDestroySyncNV")) == NULL) || r;
- r = ((eglFenceNV = (PFNEGLFENCENVPROC)glewGetProcAddress((const GLubyte*)"eglFenceNV")) == NULL) || r;
- r = ((eglGetSyncAttribNV = (PFNEGLGETSYNCATTRIBNVPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttribNV")) == NULL) || r;
- r = ((eglSignalSyncNV = (PFNEGLSIGNALSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglSignalSyncNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_NV_sync */
-
-#ifdef EGL_NV_system_time
-
-static GLboolean _glewInit_EGL_NV_system_time ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglGetSystemTimeFrequencyNV = (PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC)glewGetProcAddress((const GLubyte*)"eglGetSystemTimeFrequencyNV")) == NULL) || r;
- r = ((eglGetSystemTimeNV = (PFNEGLGETSYSTEMTIMENVPROC)glewGetProcAddress((const GLubyte*)"eglGetSystemTimeNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_NV_system_time */
-
-#ifdef EGL_WL_bind_wayland_display
-
-static GLboolean _glewInit_EGL_WL_bind_wayland_display ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglBindWaylandDisplayWL = (PFNEGLBINDWAYLANDDISPLAYWLPROC)glewGetProcAddress((const GLubyte*)"eglBindWaylandDisplayWL")) == NULL) || r;
- r = ((eglQueryWaylandBufferWL = (PFNEGLQUERYWAYLANDBUFFERWLPROC)glewGetProcAddress((const GLubyte*)"eglQueryWaylandBufferWL")) == NULL) || r;
- r = ((eglUnbindWaylandDisplayWL = (PFNEGLUNBINDWAYLANDDISPLAYWLPROC)glewGetProcAddress((const GLubyte*)"eglUnbindWaylandDisplayWL")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_WL_bind_wayland_display */
-
-#ifdef EGL_WL_create_wayland_buffer_from_image
-
-static GLboolean _glewInit_EGL_WL_create_wayland_buffer_from_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((eglCreateWaylandBufferFromImageWL = (PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC)glewGetProcAddress((const GLubyte*)"eglCreateWaylandBufferFromImageWL")) == NULL) || r;
-
- return r;
-}
-
-#endif /* EGL_WL_create_wayland_buffer_from_image */
-
- /* ------------------------------------------------------------------------ */
-
-GLboolean eglewGetExtension (const char* name)
-{
- const GLubyte* start;
- const GLubyte* end;
-
- start = (const GLubyte*) eglQueryString(eglGetCurrentDisplay(), EGL_EXTENSIONS);
- if (0 == start) return GL_FALSE;
- end = start + _glewStrLen(start);
- return _glewSearchExtension(name, start, end);
-}
-
-GLenum eglewInit (EGLDisplay display)
-{
- EGLint major, minor;
- const GLubyte* extStart;
- const GLubyte* extEnd;
- PFNEGLINITIALIZEPROC initialize = NULL;
- PFNEGLQUERYSTRINGPROC queryString = NULL;
-
- /* Load necessary entry points */
- initialize = (PFNEGLINITIALIZEPROC) glewGetProcAddress("eglInitialize");
- queryString = (PFNEGLQUERYSTRINGPROC) glewGetProcAddress("eglQueryString");
- if (!initialize || !queryString)
- return 1;
-
- /* query EGK version */
- if (initialize(display, &major, &minor) != EGL_TRUE)
- return 1;
-
- EGLEW_VERSION_1_5 = ( major > 1 ) || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE;
- EGLEW_VERSION_1_4 = EGLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE;
- EGLEW_VERSION_1_3 = EGLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE;
- EGLEW_VERSION_1_2 = EGLEW_VERSION_1_3 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE;
- EGLEW_VERSION_1_1 = EGLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE;
- EGLEW_VERSION_1_0 = EGLEW_VERSION_1_1 == GL_TRUE || ( major == 1 && minor >= 0 ) ? GL_TRUE : GL_FALSE;
-
- /* query EGL extension string */
- extStart = (const GLubyte*) queryString(display, EGL_EXTENSIONS);
- if (extStart == 0)
- extStart = (const GLubyte *)"";
- extEnd = extStart + _glewStrLen(extStart);
-
- /* initialize extensions */
-#ifdef EGL_VERSION_1_0
- if (glewExperimental || EGLEW_VERSION_1_0) EGLEW_VERSION_1_0 = !_glewInit_EGL_VERSION_1_0();
-#endif /* EGL_VERSION_1_0 */
-#ifdef EGL_VERSION_1_1
- if (glewExperimental || EGLEW_VERSION_1_1) EGLEW_VERSION_1_1 = !_glewInit_EGL_VERSION_1_1();
-#endif /* EGL_VERSION_1_1 */
-#ifdef EGL_VERSION_1_2
- if (glewExperimental || EGLEW_VERSION_1_2) EGLEW_VERSION_1_2 = !_glewInit_EGL_VERSION_1_2();
-#endif /* EGL_VERSION_1_2 */
-#ifdef EGL_VERSION_1_4
- if (glewExperimental || EGLEW_VERSION_1_4) EGLEW_VERSION_1_4 = !_glewInit_EGL_VERSION_1_4();
-#endif /* EGL_VERSION_1_4 */
-#ifdef EGL_VERSION_1_5
- if (glewExperimental || EGLEW_VERSION_1_5) EGLEW_VERSION_1_5 = !_glewInit_EGL_VERSION_1_5();
-#endif /* EGL_VERSION_1_5 */
-#ifdef EGL_ANDROID_GLES_layers
- EGLEW_ANDROID_GLES_layers = _glewSearchExtension("EGL_ANDROID_GLES_layers", extStart, extEnd);
-#endif /* EGL_ANDROID_GLES_layers */
-#ifdef EGL_ANDROID_blob_cache
- EGLEW_ANDROID_blob_cache = _glewSearchExtension("EGL_ANDROID_blob_cache", extStart, extEnd);
- if (glewExperimental || EGLEW_ANDROID_blob_cache) EGLEW_ANDROID_blob_cache = !_glewInit_EGL_ANDROID_blob_cache();
-#endif /* EGL_ANDROID_blob_cache */
-#ifdef EGL_ANDROID_create_native_client_buffer
- EGLEW_ANDROID_create_native_client_buffer = _glewSearchExtension("EGL_ANDROID_create_native_client_buffer", extStart, extEnd);
- if (glewExperimental || EGLEW_ANDROID_create_native_client_buffer) EGLEW_ANDROID_create_native_client_buffer = !_glewInit_EGL_ANDROID_create_native_client_buffer();
-#endif /* EGL_ANDROID_create_native_client_buffer */
-#ifdef EGL_ANDROID_framebuffer_target
- EGLEW_ANDROID_framebuffer_target = _glewSearchExtension("EGL_ANDROID_framebuffer_target", extStart, extEnd);
-#endif /* EGL_ANDROID_framebuffer_target */
-#ifdef EGL_ANDROID_front_buffer_auto_refresh
- EGLEW_ANDROID_front_buffer_auto_refresh = _glewSearchExtension("EGL_ANDROID_front_buffer_auto_refresh", extStart, extEnd);
-#endif /* EGL_ANDROID_front_buffer_auto_refresh */
-#ifdef EGL_ANDROID_get_frame_timestamps
- EGLEW_ANDROID_get_frame_timestamps = _glewSearchExtension("EGL_ANDROID_get_frame_timestamps", extStart, extEnd);
- if (glewExperimental || EGLEW_ANDROID_get_frame_timestamps) EGLEW_ANDROID_get_frame_timestamps = !_glewInit_EGL_ANDROID_get_frame_timestamps();
-#endif /* EGL_ANDROID_get_frame_timestamps */
-#ifdef EGL_ANDROID_get_native_client_buffer
- EGLEW_ANDROID_get_native_client_buffer = _glewSearchExtension("EGL_ANDROID_get_native_client_buffer", extStart, extEnd);
- if (glewExperimental || EGLEW_ANDROID_get_native_client_buffer) EGLEW_ANDROID_get_native_client_buffer = !_glewInit_EGL_ANDROID_get_native_client_buffer();
-#endif /* EGL_ANDROID_get_native_client_buffer */
-#ifdef EGL_ANDROID_image_native_buffer
- EGLEW_ANDROID_image_native_buffer = _glewSearchExtension("EGL_ANDROID_image_native_buffer", extStart, extEnd);
-#endif /* EGL_ANDROID_image_native_buffer */
-#ifdef EGL_ANDROID_native_fence_sync
- EGLEW_ANDROID_native_fence_sync = _glewSearchExtension("EGL_ANDROID_native_fence_sync", extStart, extEnd);
- if (glewExperimental || EGLEW_ANDROID_native_fence_sync) EGLEW_ANDROID_native_fence_sync = !_glewInit_EGL_ANDROID_native_fence_sync();
-#endif /* EGL_ANDROID_native_fence_sync */
-#ifdef EGL_ANDROID_presentation_time
- EGLEW_ANDROID_presentation_time = _glewSearchExtension("EGL_ANDROID_presentation_time", extStart, extEnd);
- if (glewExperimental || EGLEW_ANDROID_presentation_time) EGLEW_ANDROID_presentation_time = !_glewInit_EGL_ANDROID_presentation_time();
-#endif /* EGL_ANDROID_presentation_time */
-#ifdef EGL_ANDROID_recordable
- EGLEW_ANDROID_recordable = _glewSearchExtension("EGL_ANDROID_recordable", extStart, extEnd);
-#endif /* EGL_ANDROID_recordable */
-#ifdef EGL_ANGLE_d3d_share_handle_client_buffer
- EGLEW_ANGLE_d3d_share_handle_client_buffer = _glewSearchExtension("EGL_ANGLE_d3d_share_handle_client_buffer", extStart, extEnd);
-#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */
-#ifdef EGL_ANGLE_device_d3d
- EGLEW_ANGLE_device_d3d = _glewSearchExtension("EGL_ANGLE_device_d3d", extStart, extEnd);
-#endif /* EGL_ANGLE_device_d3d */
-#ifdef EGL_ANGLE_query_surface_pointer
- EGLEW_ANGLE_query_surface_pointer = _glewSearchExtension("EGL_ANGLE_query_surface_pointer", extStart, extEnd);
- if (glewExperimental || EGLEW_ANGLE_query_surface_pointer) EGLEW_ANGLE_query_surface_pointer = !_glewInit_EGL_ANGLE_query_surface_pointer();
-#endif /* EGL_ANGLE_query_surface_pointer */
-#ifdef EGL_ANGLE_surface_d3d_texture_2d_share_handle
- EGLEW_ANGLE_surface_d3d_texture_2d_share_handle = _glewSearchExtension("EGL_ANGLE_surface_d3d_texture_2d_share_handle", extStart, extEnd);
-#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
-#ifdef EGL_ANGLE_window_fixed_size
- EGLEW_ANGLE_window_fixed_size = _glewSearchExtension("EGL_ANGLE_window_fixed_size", extStart, extEnd);
-#endif /* EGL_ANGLE_window_fixed_size */
-#ifdef EGL_ARM_image_format
- EGLEW_ARM_image_format = _glewSearchExtension("EGL_ARM_image_format", extStart, extEnd);
-#endif /* EGL_ARM_image_format */
-#ifdef EGL_ARM_implicit_external_sync
- EGLEW_ARM_implicit_external_sync = _glewSearchExtension("EGL_ARM_implicit_external_sync", extStart, extEnd);
-#endif /* EGL_ARM_implicit_external_sync */
-#ifdef EGL_ARM_pixmap_multisample_discard
- EGLEW_ARM_pixmap_multisample_discard = _glewSearchExtension("EGL_ARM_pixmap_multisample_discard", extStart, extEnd);
-#endif /* EGL_ARM_pixmap_multisample_discard */
-#ifdef EGL_EXT_bind_to_front
- EGLEW_EXT_bind_to_front = _glewSearchExtension("EGL_EXT_bind_to_front", extStart, extEnd);
-#endif /* EGL_EXT_bind_to_front */
-#ifdef EGL_EXT_buffer_age
- EGLEW_EXT_buffer_age = _glewSearchExtension("EGL_EXT_buffer_age", extStart, extEnd);
-#endif /* EGL_EXT_buffer_age */
-#ifdef EGL_EXT_client_extensions
- EGLEW_EXT_client_extensions = _glewSearchExtension("EGL_EXT_client_extensions", extStart, extEnd);
-#endif /* EGL_EXT_client_extensions */
-#ifdef EGL_EXT_client_sync
- EGLEW_EXT_client_sync = _glewSearchExtension("EGL_EXT_client_sync", extStart, extEnd);
- if (glewExperimental || EGLEW_EXT_client_sync) EGLEW_EXT_client_sync = !_glewInit_EGL_EXT_client_sync();
-#endif /* EGL_EXT_client_sync */
-#ifdef EGL_EXT_compositor
- EGLEW_EXT_compositor = _glewSearchExtension("EGL_EXT_compositor", extStart, extEnd);
- if (glewExperimental || EGLEW_EXT_compositor) EGLEW_EXT_compositor = !_glewInit_EGL_EXT_compositor();
-#endif /* EGL_EXT_compositor */
-#ifdef EGL_EXT_create_context_robustness
- EGLEW_EXT_create_context_robustness = _glewSearchExtension("EGL_EXT_create_context_robustness", extStart, extEnd);
-#endif /* EGL_EXT_create_context_robustness */
-#ifdef EGL_EXT_device_base
- EGLEW_EXT_device_base = _glewSearchExtension("EGL_EXT_device_base", extStart, extEnd);
-#endif /* EGL_EXT_device_base */
-#ifdef EGL_EXT_device_drm
- EGLEW_EXT_device_drm = _glewSearchExtension("EGL_EXT_device_drm", extStart, extEnd);
-#endif /* EGL_EXT_device_drm */
-#ifdef EGL_EXT_device_enumeration
- EGLEW_EXT_device_enumeration = _glewSearchExtension("EGL_EXT_device_enumeration", extStart, extEnd);
- if (glewExperimental || EGLEW_EXT_device_enumeration) EGLEW_EXT_device_enumeration = !_glewInit_EGL_EXT_device_enumeration();
-#endif /* EGL_EXT_device_enumeration */
-#ifdef EGL_EXT_device_openwf
- EGLEW_EXT_device_openwf = _glewSearchExtension("EGL_EXT_device_openwf", extStart, extEnd);
-#endif /* EGL_EXT_device_openwf */
-#ifdef EGL_EXT_device_query
- EGLEW_EXT_device_query = _glewSearchExtension("EGL_EXT_device_query", extStart, extEnd);
- if (glewExperimental || EGLEW_EXT_device_query) EGLEW_EXT_device_query = !_glewInit_EGL_EXT_device_query();
-#endif /* EGL_EXT_device_query */
-#ifdef EGL_EXT_gl_colorspace_bt2020_linear
- EGLEW_EXT_gl_colorspace_bt2020_linear = _glewSearchExtension("EGL_EXT_gl_colorspace_bt2020_linear", extStart, extEnd);
-#endif /* EGL_EXT_gl_colorspace_bt2020_linear */
-#ifdef EGL_EXT_gl_colorspace_bt2020_pq
- EGLEW_EXT_gl_colorspace_bt2020_pq = _glewSearchExtension("EGL_EXT_gl_colorspace_bt2020_pq", extStart, extEnd);
-#endif /* EGL_EXT_gl_colorspace_bt2020_pq */
-#ifdef EGL_EXT_gl_colorspace_display_p3
- EGLEW_EXT_gl_colorspace_display_p3 = _glewSearchExtension("EGL_EXT_gl_colorspace_display_p3", extStart, extEnd);
-#endif /* EGL_EXT_gl_colorspace_display_p3 */
-#ifdef EGL_EXT_gl_colorspace_display_p3_linear
- EGLEW_EXT_gl_colorspace_display_p3_linear = _glewSearchExtension("EGL_EXT_gl_colorspace_display_p3_linear", extStart, extEnd);
-#endif /* EGL_EXT_gl_colorspace_display_p3_linear */
-#ifdef EGL_EXT_gl_colorspace_display_p3_passthrough
- EGLEW_EXT_gl_colorspace_display_p3_passthrough = _glewSearchExtension("EGL_EXT_gl_colorspace_display_p3_passthrough", extStart, extEnd);
-#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */
-#ifdef EGL_EXT_gl_colorspace_scrgb
- EGLEW_EXT_gl_colorspace_scrgb = _glewSearchExtension("EGL_EXT_gl_colorspace_scrgb", extStart, extEnd);
-#endif /* EGL_EXT_gl_colorspace_scrgb */
-#ifdef EGL_EXT_gl_colorspace_scrgb_linear
- EGLEW_EXT_gl_colorspace_scrgb_linear = _glewSearchExtension("EGL_EXT_gl_colorspace_scrgb_linear", extStart, extEnd);
-#endif /* EGL_EXT_gl_colorspace_scrgb_linear */
-#ifdef EGL_EXT_image_dma_buf_import
- EGLEW_EXT_image_dma_buf_import = _glewSearchExtension("EGL_EXT_image_dma_buf_import", extStart, extEnd);
-#endif /* EGL_EXT_image_dma_buf_import */
-#ifdef EGL_EXT_image_dma_buf_import_modifiers
- EGLEW_EXT_image_dma_buf_import_modifiers = _glewSearchExtension("EGL_EXT_image_dma_buf_import_modifiers", extStart, extEnd);
- if (glewExperimental || EGLEW_EXT_image_dma_buf_import_modifiers) EGLEW_EXT_image_dma_buf_import_modifiers = !_glewInit_EGL_EXT_image_dma_buf_import_modifiers();
-#endif /* EGL_EXT_image_dma_buf_import_modifiers */
-#ifdef EGL_EXT_image_gl_colorspace
- EGLEW_EXT_image_gl_colorspace = _glewSearchExtension("EGL_EXT_image_gl_colorspace", extStart, extEnd);
-#endif /* EGL_EXT_image_gl_colorspace */
-#ifdef EGL_EXT_image_implicit_sync_control
- EGLEW_EXT_image_implicit_sync_control = _glewSearchExtension("EGL_EXT_image_implicit_sync_control", extStart, extEnd);
-#endif /* EGL_EXT_image_implicit_sync_control */
-#ifdef EGL_EXT_multiview_window
- EGLEW_EXT_multiview_window = _glewSearchExtension("EGL_EXT_multiview_window", extStart, extEnd);
-#endif /* EGL_EXT_multiview_window */
-#ifdef EGL_EXT_output_base
- EGLEW_EXT_output_base = _glewSearchExtension("EGL_EXT_output_base", extStart, extEnd);
- if (glewExperimental || EGLEW_EXT_output_base) EGLEW_EXT_output_base = !_glewInit_EGL_EXT_output_base();
-#endif /* EGL_EXT_output_base */
-#ifdef EGL_EXT_output_drm
- EGLEW_EXT_output_drm = _glewSearchExtension("EGL_EXT_output_drm", extStart, extEnd);
-#endif /* EGL_EXT_output_drm */
-#ifdef EGL_EXT_output_openwf
- EGLEW_EXT_output_openwf = _glewSearchExtension("EGL_EXT_output_openwf", extStart, extEnd);
-#endif /* EGL_EXT_output_openwf */
-#ifdef EGL_EXT_pixel_format_float
- EGLEW_EXT_pixel_format_float = _glewSearchExtension("EGL_EXT_pixel_format_float", extStart, extEnd);
-#endif /* EGL_EXT_pixel_format_float */
-#ifdef EGL_EXT_platform_base
- EGLEW_EXT_platform_base = _glewSearchExtension("EGL_EXT_platform_base", extStart, extEnd);
- if (glewExperimental || EGLEW_EXT_platform_base) EGLEW_EXT_platform_base = !_glewInit_EGL_EXT_platform_base();
-#endif /* EGL_EXT_platform_base */
-#ifdef EGL_EXT_platform_device
- EGLEW_EXT_platform_device = _glewSearchExtension("EGL_EXT_platform_device", extStart, extEnd);
-#endif /* EGL_EXT_platform_device */
-#ifdef EGL_EXT_platform_wayland
- EGLEW_EXT_platform_wayland = _glewSearchExtension("EGL_EXT_platform_wayland", extStart, extEnd);
-#endif /* EGL_EXT_platform_wayland */
-#ifdef EGL_EXT_platform_x11
- EGLEW_EXT_platform_x11 = _glewSearchExtension("EGL_EXT_platform_x11", extStart, extEnd);
-#endif /* EGL_EXT_platform_x11 */
-#ifdef EGL_EXT_protected_content
- EGLEW_EXT_protected_content = _glewSearchExtension("EGL_EXT_protected_content", extStart, extEnd);
-#endif /* EGL_EXT_protected_content */
-#ifdef EGL_EXT_protected_surface
- EGLEW_EXT_protected_surface = _glewSearchExtension("EGL_EXT_protected_surface", extStart, extEnd);
-#endif /* EGL_EXT_protected_surface */
-#ifdef EGL_EXT_stream_consumer_egloutput
- EGLEW_EXT_stream_consumer_egloutput = _glewSearchExtension("EGL_EXT_stream_consumer_egloutput", extStart, extEnd);
- if (glewExperimental || EGLEW_EXT_stream_consumer_egloutput) EGLEW_EXT_stream_consumer_egloutput = !_glewInit_EGL_EXT_stream_consumer_egloutput();
-#endif /* EGL_EXT_stream_consumer_egloutput */
-#ifdef EGL_EXT_surface_CTA861_3_metadata
- EGLEW_EXT_surface_CTA861_3_metadata = _glewSearchExtension("EGL_EXT_surface_CTA861_3_metadata", extStart, extEnd);
-#endif /* EGL_EXT_surface_CTA861_3_metadata */
-#ifdef EGL_EXT_surface_SMPTE2086_metadata
- EGLEW_EXT_surface_SMPTE2086_metadata = _glewSearchExtension("EGL_EXT_surface_SMPTE2086_metadata", extStart, extEnd);
-#endif /* EGL_EXT_surface_SMPTE2086_metadata */
-#ifdef EGL_EXT_swap_buffers_with_damage
- EGLEW_EXT_swap_buffers_with_damage = _glewSearchExtension("EGL_EXT_swap_buffers_with_damage", extStart, extEnd);
- if (glewExperimental || EGLEW_EXT_swap_buffers_with_damage) EGLEW_EXT_swap_buffers_with_damage = !_glewInit_EGL_EXT_swap_buffers_with_damage();
-#endif /* EGL_EXT_swap_buffers_with_damage */
-#ifdef EGL_EXT_sync_reuse
- EGLEW_EXT_sync_reuse = _glewSearchExtension("EGL_EXT_sync_reuse", extStart, extEnd);
- if (glewExperimental || EGLEW_EXT_sync_reuse) EGLEW_EXT_sync_reuse = !_glewInit_EGL_EXT_sync_reuse();
-#endif /* EGL_EXT_sync_reuse */
-#ifdef EGL_EXT_yuv_surface
- EGLEW_EXT_yuv_surface = _glewSearchExtension("EGL_EXT_yuv_surface", extStart, extEnd);
-#endif /* EGL_EXT_yuv_surface */
-#ifdef EGL_HI_clientpixmap
- EGLEW_HI_clientpixmap = _glewSearchExtension("EGL_HI_clientpixmap", extStart, extEnd);
- if (glewExperimental || EGLEW_HI_clientpixmap) EGLEW_HI_clientpixmap = !_glewInit_EGL_HI_clientpixmap();
-#endif /* EGL_HI_clientpixmap */
-#ifdef EGL_HI_colorformats
- EGLEW_HI_colorformats = _glewSearchExtension("EGL_HI_colorformats", extStart, extEnd);
-#endif /* EGL_HI_colorformats */
-#ifdef EGL_IMG_context_priority
- EGLEW_IMG_context_priority = _glewSearchExtension("EGL_IMG_context_priority", extStart, extEnd);
-#endif /* EGL_IMG_context_priority */
-#ifdef EGL_IMG_image_plane_attribs
- EGLEW_IMG_image_plane_attribs = _glewSearchExtension("EGL_IMG_image_plane_attribs", extStart, extEnd);
-#endif /* EGL_IMG_image_plane_attribs */
-#ifdef EGL_KHR_cl_event
- EGLEW_KHR_cl_event = _glewSearchExtension("EGL_KHR_cl_event", extStart, extEnd);
-#endif /* EGL_KHR_cl_event */
-#ifdef EGL_KHR_cl_event2
- EGLEW_KHR_cl_event2 = _glewSearchExtension("EGL_KHR_cl_event2", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_cl_event2) EGLEW_KHR_cl_event2 = !_glewInit_EGL_KHR_cl_event2();
-#endif /* EGL_KHR_cl_event2 */
-#ifdef EGL_KHR_client_get_all_proc_addresses
- EGLEW_KHR_client_get_all_proc_addresses = _glewSearchExtension("EGL_KHR_client_get_all_proc_addresses", extStart, extEnd);
-#endif /* EGL_KHR_client_get_all_proc_addresses */
-#ifdef EGL_KHR_config_attribs
- EGLEW_KHR_config_attribs = _glewSearchExtension("EGL_KHR_config_attribs", extStart, extEnd);
-#endif /* EGL_KHR_config_attribs */
-#ifdef EGL_KHR_context_flush_control
- EGLEW_KHR_context_flush_control = _glewSearchExtension("EGL_KHR_context_flush_control", extStart, extEnd);
-#endif /* EGL_KHR_context_flush_control */
-#ifdef EGL_KHR_create_context
- EGLEW_KHR_create_context = _glewSearchExtension("EGL_KHR_create_context", extStart, extEnd);
-#endif /* EGL_KHR_create_context */
-#ifdef EGL_KHR_create_context_no_error
- EGLEW_KHR_create_context_no_error = _glewSearchExtension("EGL_KHR_create_context_no_error", extStart, extEnd);
-#endif /* EGL_KHR_create_context_no_error */
-#ifdef EGL_KHR_debug
- EGLEW_KHR_debug = _glewSearchExtension("EGL_KHR_debug", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_debug) EGLEW_KHR_debug = !_glewInit_EGL_KHR_debug();
-#endif /* EGL_KHR_debug */
-#ifdef EGL_KHR_display_reference
- EGLEW_KHR_display_reference = _glewSearchExtension("EGL_KHR_display_reference", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_display_reference) EGLEW_KHR_display_reference = !_glewInit_EGL_KHR_display_reference();
-#endif /* EGL_KHR_display_reference */
-#ifdef EGL_KHR_fence_sync
- EGLEW_KHR_fence_sync = _glewSearchExtension("EGL_KHR_fence_sync", extStart, extEnd);
-#endif /* EGL_KHR_fence_sync */
-#ifdef EGL_KHR_get_all_proc_addresses
- EGLEW_KHR_get_all_proc_addresses = _glewSearchExtension("EGL_KHR_get_all_proc_addresses", extStart, extEnd);
-#endif /* EGL_KHR_get_all_proc_addresses */
-#ifdef EGL_KHR_gl_colorspace
- EGLEW_KHR_gl_colorspace = _glewSearchExtension("EGL_KHR_gl_colorspace", extStart, extEnd);
-#endif /* EGL_KHR_gl_colorspace */
-#ifdef EGL_KHR_gl_renderbuffer_image
- EGLEW_KHR_gl_renderbuffer_image = _glewSearchExtension("EGL_KHR_gl_renderbuffer_image", extStart, extEnd);
-#endif /* EGL_KHR_gl_renderbuffer_image */
-#ifdef EGL_KHR_gl_texture_2D_image
- EGLEW_KHR_gl_texture_2D_image = _glewSearchExtension("EGL_KHR_gl_texture_2D_image", extStart, extEnd);
-#endif /* EGL_KHR_gl_texture_2D_image */
-#ifdef EGL_KHR_gl_texture_3D_image
- EGLEW_KHR_gl_texture_3D_image = _glewSearchExtension("EGL_KHR_gl_texture_3D_image", extStart, extEnd);
-#endif /* EGL_KHR_gl_texture_3D_image */
-#ifdef EGL_KHR_gl_texture_cubemap_image
- EGLEW_KHR_gl_texture_cubemap_image = _glewSearchExtension("EGL_KHR_gl_texture_cubemap_image", extStart, extEnd);
-#endif /* EGL_KHR_gl_texture_cubemap_image */
-#ifdef EGL_KHR_image
- EGLEW_KHR_image = _glewSearchExtension("EGL_KHR_image", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_image) EGLEW_KHR_image = !_glewInit_EGL_KHR_image();
-#endif /* EGL_KHR_image */
-#ifdef EGL_KHR_image_base
- EGLEW_KHR_image_base = _glewSearchExtension("EGL_KHR_image_base", extStart, extEnd);
-#endif /* EGL_KHR_image_base */
-#ifdef EGL_KHR_image_pixmap
- EGLEW_KHR_image_pixmap = _glewSearchExtension("EGL_KHR_image_pixmap", extStart, extEnd);
-#endif /* EGL_KHR_image_pixmap */
-#ifdef EGL_KHR_lock_surface
- EGLEW_KHR_lock_surface = _glewSearchExtension("EGL_KHR_lock_surface", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_lock_surface) EGLEW_KHR_lock_surface = !_glewInit_EGL_KHR_lock_surface();
-#endif /* EGL_KHR_lock_surface */
-#ifdef EGL_KHR_lock_surface2
- EGLEW_KHR_lock_surface2 = _glewSearchExtension("EGL_KHR_lock_surface2", extStart, extEnd);
-#endif /* EGL_KHR_lock_surface2 */
-#ifdef EGL_KHR_lock_surface3
- EGLEW_KHR_lock_surface3 = _glewSearchExtension("EGL_KHR_lock_surface3", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_lock_surface3) EGLEW_KHR_lock_surface3 = !_glewInit_EGL_KHR_lock_surface3();
-#endif /* EGL_KHR_lock_surface3 */
-#ifdef EGL_KHR_mutable_render_buffer
- EGLEW_KHR_mutable_render_buffer = _glewSearchExtension("EGL_KHR_mutable_render_buffer", extStart, extEnd);
-#endif /* EGL_KHR_mutable_render_buffer */
-#ifdef EGL_KHR_no_config_context
- EGLEW_KHR_no_config_context = _glewSearchExtension("EGL_KHR_no_config_context", extStart, extEnd);
-#endif /* EGL_KHR_no_config_context */
-#ifdef EGL_KHR_partial_update
- EGLEW_KHR_partial_update = _glewSearchExtension("EGL_KHR_partial_update", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_partial_update) EGLEW_KHR_partial_update = !_glewInit_EGL_KHR_partial_update();
-#endif /* EGL_KHR_partial_update */
-#ifdef EGL_KHR_platform_android
- EGLEW_KHR_platform_android = _glewSearchExtension("EGL_KHR_platform_android", extStart, extEnd);
-#endif /* EGL_KHR_platform_android */
-#ifdef EGL_KHR_platform_gbm
- EGLEW_KHR_platform_gbm = _glewSearchExtension("EGL_KHR_platform_gbm", extStart, extEnd);
-#endif /* EGL_KHR_platform_gbm */
-#ifdef EGL_KHR_platform_wayland
- EGLEW_KHR_platform_wayland = _glewSearchExtension("EGL_KHR_platform_wayland", extStart, extEnd);
-#endif /* EGL_KHR_platform_wayland */
-#ifdef EGL_KHR_platform_x11
- EGLEW_KHR_platform_x11 = _glewSearchExtension("EGL_KHR_platform_x11", extStart, extEnd);
-#endif /* EGL_KHR_platform_x11 */
-#ifdef EGL_KHR_reusable_sync
- EGLEW_KHR_reusable_sync = _glewSearchExtension("EGL_KHR_reusable_sync", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_reusable_sync) EGLEW_KHR_reusable_sync = !_glewInit_EGL_KHR_reusable_sync();
-#endif /* EGL_KHR_reusable_sync */
-#ifdef EGL_KHR_stream
- EGLEW_KHR_stream = _glewSearchExtension("EGL_KHR_stream", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_stream) EGLEW_KHR_stream = !_glewInit_EGL_KHR_stream();
-#endif /* EGL_KHR_stream */
-#ifdef EGL_KHR_stream_attrib
- EGLEW_KHR_stream_attrib = _glewSearchExtension("EGL_KHR_stream_attrib", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_stream_attrib) EGLEW_KHR_stream_attrib = !_glewInit_EGL_KHR_stream_attrib();
-#endif /* EGL_KHR_stream_attrib */
-#ifdef EGL_KHR_stream_consumer_gltexture
- EGLEW_KHR_stream_consumer_gltexture = _glewSearchExtension("EGL_KHR_stream_consumer_gltexture", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_stream_consumer_gltexture) EGLEW_KHR_stream_consumer_gltexture = !_glewInit_EGL_KHR_stream_consumer_gltexture();
-#endif /* EGL_KHR_stream_consumer_gltexture */
-#ifdef EGL_KHR_stream_cross_process_fd
- EGLEW_KHR_stream_cross_process_fd = _glewSearchExtension("EGL_KHR_stream_cross_process_fd", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_stream_cross_process_fd) EGLEW_KHR_stream_cross_process_fd = !_glewInit_EGL_KHR_stream_cross_process_fd();
-#endif /* EGL_KHR_stream_cross_process_fd */
-#ifdef EGL_KHR_stream_fifo
- EGLEW_KHR_stream_fifo = _glewSearchExtension("EGL_KHR_stream_fifo", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_stream_fifo) EGLEW_KHR_stream_fifo = !_glewInit_EGL_KHR_stream_fifo();
-#endif /* EGL_KHR_stream_fifo */
-#ifdef EGL_KHR_stream_producer_aldatalocator
- EGLEW_KHR_stream_producer_aldatalocator = _glewSearchExtension("EGL_KHR_stream_producer_aldatalocator", extStart, extEnd);
-#endif /* EGL_KHR_stream_producer_aldatalocator */
-#ifdef EGL_KHR_stream_producer_eglsurface
- EGLEW_KHR_stream_producer_eglsurface = _glewSearchExtension("EGL_KHR_stream_producer_eglsurface", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_stream_producer_eglsurface) EGLEW_KHR_stream_producer_eglsurface = !_glewInit_EGL_KHR_stream_producer_eglsurface();
-#endif /* EGL_KHR_stream_producer_eglsurface */
-#ifdef EGL_KHR_surfaceless_context
- EGLEW_KHR_surfaceless_context = _glewSearchExtension("EGL_KHR_surfaceless_context", extStart, extEnd);
-#endif /* EGL_KHR_surfaceless_context */
-#ifdef EGL_KHR_swap_buffers_with_damage
- EGLEW_KHR_swap_buffers_with_damage = _glewSearchExtension("EGL_KHR_swap_buffers_with_damage", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_swap_buffers_with_damage) EGLEW_KHR_swap_buffers_with_damage = !_glewInit_EGL_KHR_swap_buffers_with_damage();
-#endif /* EGL_KHR_swap_buffers_with_damage */
-#ifdef EGL_KHR_vg_parent_image
- EGLEW_KHR_vg_parent_image = _glewSearchExtension("EGL_KHR_vg_parent_image", extStart, extEnd);
-#endif /* EGL_KHR_vg_parent_image */
-#ifdef EGL_KHR_wait_sync
- EGLEW_KHR_wait_sync = _glewSearchExtension("EGL_KHR_wait_sync", extStart, extEnd);
- if (glewExperimental || EGLEW_KHR_wait_sync) EGLEW_KHR_wait_sync = !_glewInit_EGL_KHR_wait_sync();
-#endif /* EGL_KHR_wait_sync */
-#ifdef EGL_MESA_drm_image
- EGLEW_MESA_drm_image = _glewSearchExtension("EGL_MESA_drm_image", extStart, extEnd);
- if (glewExperimental || EGLEW_MESA_drm_image) EGLEW_MESA_drm_image = !_glewInit_EGL_MESA_drm_image();
-#endif /* EGL_MESA_drm_image */
-#ifdef EGL_MESA_image_dma_buf_export
- EGLEW_MESA_image_dma_buf_export = _glewSearchExtension("EGL_MESA_image_dma_buf_export", extStart, extEnd);
- if (glewExperimental || EGLEW_MESA_image_dma_buf_export) EGLEW_MESA_image_dma_buf_export = !_glewInit_EGL_MESA_image_dma_buf_export();
-#endif /* EGL_MESA_image_dma_buf_export */
-#ifdef EGL_MESA_platform_gbm
- EGLEW_MESA_platform_gbm = _glewSearchExtension("EGL_MESA_platform_gbm", extStart, extEnd);
-#endif /* EGL_MESA_platform_gbm */
-#ifdef EGL_MESA_platform_surfaceless
- EGLEW_MESA_platform_surfaceless = _glewSearchExtension("EGL_MESA_platform_surfaceless", extStart, extEnd);
-#endif /* EGL_MESA_platform_surfaceless */
-#ifdef EGL_MESA_query_driver
- EGLEW_MESA_query_driver = _glewSearchExtension("EGL_MESA_query_driver", extStart, extEnd);
- if (glewExperimental || EGLEW_MESA_query_driver) EGLEW_MESA_query_driver = !_glewInit_EGL_MESA_query_driver();
-#endif /* EGL_MESA_query_driver */
-#ifdef EGL_NOK_swap_region
- EGLEW_NOK_swap_region = _glewSearchExtension("EGL_NOK_swap_region", extStart, extEnd);
- if (glewExperimental || EGLEW_NOK_swap_region) EGLEW_NOK_swap_region = !_glewInit_EGL_NOK_swap_region();
-#endif /* EGL_NOK_swap_region */
-#ifdef EGL_NOK_swap_region2
- EGLEW_NOK_swap_region2 = _glewSearchExtension("EGL_NOK_swap_region2", extStart, extEnd);
- if (glewExperimental || EGLEW_NOK_swap_region2) EGLEW_NOK_swap_region2 = !_glewInit_EGL_NOK_swap_region2();
-#endif /* EGL_NOK_swap_region2 */
-#ifdef EGL_NOK_texture_from_pixmap
- EGLEW_NOK_texture_from_pixmap = _glewSearchExtension("EGL_NOK_texture_from_pixmap", extStart, extEnd);
-#endif /* EGL_NOK_texture_from_pixmap */
-#ifdef EGL_NV_3dvision_surface
- EGLEW_NV_3dvision_surface = _glewSearchExtension("EGL_NV_3dvision_surface", extStart, extEnd);
-#endif /* EGL_NV_3dvision_surface */
-#ifdef EGL_NV_context_priority_realtime
- EGLEW_NV_context_priority_realtime = _glewSearchExtension("EGL_NV_context_priority_realtime", extStart, extEnd);
-#endif /* EGL_NV_context_priority_realtime */
-#ifdef EGL_NV_coverage_sample
- EGLEW_NV_coverage_sample = _glewSearchExtension("EGL_NV_coverage_sample", extStart, extEnd);
-#endif /* EGL_NV_coverage_sample */
-#ifdef EGL_NV_coverage_sample_resolve
- EGLEW_NV_coverage_sample_resolve = _glewSearchExtension("EGL_NV_coverage_sample_resolve", extStart, extEnd);
-#endif /* EGL_NV_coverage_sample_resolve */
-#ifdef EGL_NV_cuda_event
- EGLEW_NV_cuda_event = _glewSearchExtension("EGL_NV_cuda_event", extStart, extEnd);
-#endif /* EGL_NV_cuda_event */
-#ifdef EGL_NV_depth_nonlinear
- EGLEW_NV_depth_nonlinear = _glewSearchExtension("EGL_NV_depth_nonlinear", extStart, extEnd);
-#endif /* EGL_NV_depth_nonlinear */
-#ifdef EGL_NV_device_cuda
- EGLEW_NV_device_cuda = _glewSearchExtension("EGL_NV_device_cuda", extStart, extEnd);
-#endif /* EGL_NV_device_cuda */
-#ifdef EGL_NV_native_query
- EGLEW_NV_native_query = _glewSearchExtension("EGL_NV_native_query", extStart, extEnd);
- if (glewExperimental || EGLEW_NV_native_query) EGLEW_NV_native_query = !_glewInit_EGL_NV_native_query();
-#endif /* EGL_NV_native_query */
-#ifdef EGL_NV_post_convert_rounding
- EGLEW_NV_post_convert_rounding = _glewSearchExtension("EGL_NV_post_convert_rounding", extStart, extEnd);
-#endif /* EGL_NV_post_convert_rounding */
-#ifdef EGL_NV_post_sub_buffer
- EGLEW_NV_post_sub_buffer = _glewSearchExtension("EGL_NV_post_sub_buffer", extStart, extEnd);
- if (glewExperimental || EGLEW_NV_post_sub_buffer) EGLEW_NV_post_sub_buffer = !_glewInit_EGL_NV_post_sub_buffer();
-#endif /* EGL_NV_post_sub_buffer */
-#ifdef EGL_NV_quadruple_buffer
- EGLEW_NV_quadruple_buffer = _glewSearchExtension("EGL_NV_quadruple_buffer", extStart, extEnd);
-#endif /* EGL_NV_quadruple_buffer */
-#ifdef EGL_NV_robustness_video_memory_purge
- EGLEW_NV_robustness_video_memory_purge = _glewSearchExtension("EGL_NV_robustness_video_memory_purge", extStart, extEnd);
-#endif /* EGL_NV_robustness_video_memory_purge */
-#ifdef EGL_NV_stream_consumer_gltexture_yuv
- EGLEW_NV_stream_consumer_gltexture_yuv = _glewSearchExtension("EGL_NV_stream_consumer_gltexture_yuv", extStart, extEnd);
- if (glewExperimental || EGLEW_NV_stream_consumer_gltexture_yuv) EGLEW_NV_stream_consumer_gltexture_yuv = !_glewInit_EGL_NV_stream_consumer_gltexture_yuv();
-#endif /* EGL_NV_stream_consumer_gltexture_yuv */
-#ifdef EGL_NV_stream_cross_display
- EGLEW_NV_stream_cross_display = _glewSearchExtension("EGL_NV_stream_cross_display", extStart, extEnd);
-#endif /* EGL_NV_stream_cross_display */
-#ifdef EGL_NV_stream_cross_object
- EGLEW_NV_stream_cross_object = _glewSearchExtension("EGL_NV_stream_cross_object", extStart, extEnd);
-#endif /* EGL_NV_stream_cross_object */
-#ifdef EGL_NV_stream_cross_partition
- EGLEW_NV_stream_cross_partition = _glewSearchExtension("EGL_NV_stream_cross_partition", extStart, extEnd);
-#endif /* EGL_NV_stream_cross_partition */
-#ifdef EGL_NV_stream_cross_process
- EGLEW_NV_stream_cross_process = _glewSearchExtension("EGL_NV_stream_cross_process", extStart, extEnd);
-#endif /* EGL_NV_stream_cross_process */
-#ifdef EGL_NV_stream_cross_system
- EGLEW_NV_stream_cross_system = _glewSearchExtension("EGL_NV_stream_cross_system", extStart, extEnd);
-#endif /* EGL_NV_stream_cross_system */
-#ifdef EGL_NV_stream_dma
- EGLEW_NV_stream_dma = _glewSearchExtension("EGL_NV_stream_dma", extStart, extEnd);
-#endif /* EGL_NV_stream_dma */
-#ifdef EGL_NV_stream_fifo_next
- EGLEW_NV_stream_fifo_next = _glewSearchExtension("EGL_NV_stream_fifo_next", extStart, extEnd);
-#endif /* EGL_NV_stream_fifo_next */
-#ifdef EGL_NV_stream_fifo_synchronous
- EGLEW_NV_stream_fifo_synchronous = _glewSearchExtension("EGL_NV_stream_fifo_synchronous", extStart, extEnd);
-#endif /* EGL_NV_stream_fifo_synchronous */
-#ifdef EGL_NV_stream_flush
- EGLEW_NV_stream_flush = _glewSearchExtension("EGL_NV_stream_flush", extStart, extEnd);
- if (glewExperimental || EGLEW_NV_stream_flush) EGLEW_NV_stream_flush = !_glewInit_EGL_NV_stream_flush();
-#endif /* EGL_NV_stream_flush */
-#ifdef EGL_NV_stream_frame_limits
- EGLEW_NV_stream_frame_limits = _glewSearchExtension("EGL_NV_stream_frame_limits", extStart, extEnd);
-#endif /* EGL_NV_stream_frame_limits */
-#ifdef EGL_NV_stream_metadata
- EGLEW_NV_stream_metadata = _glewSearchExtension("EGL_NV_stream_metadata", extStart, extEnd);
- if (glewExperimental || EGLEW_NV_stream_metadata) EGLEW_NV_stream_metadata = !_glewInit_EGL_NV_stream_metadata();
-#endif /* EGL_NV_stream_metadata */
-#ifdef EGL_NV_stream_origin
- EGLEW_NV_stream_origin = _glewSearchExtension("EGL_NV_stream_origin", extStart, extEnd);
-#endif /* EGL_NV_stream_origin */
-#ifdef EGL_NV_stream_remote
- EGLEW_NV_stream_remote = _glewSearchExtension("EGL_NV_stream_remote", extStart, extEnd);
-#endif /* EGL_NV_stream_remote */
-#ifdef EGL_NV_stream_reset
- EGLEW_NV_stream_reset = _glewSearchExtension("EGL_NV_stream_reset", extStart, extEnd);
- if (glewExperimental || EGLEW_NV_stream_reset) EGLEW_NV_stream_reset = !_glewInit_EGL_NV_stream_reset();
-#endif /* EGL_NV_stream_reset */
-#ifdef EGL_NV_stream_socket
- EGLEW_NV_stream_socket = _glewSearchExtension("EGL_NV_stream_socket", extStart, extEnd);
-#endif /* EGL_NV_stream_socket */
-#ifdef EGL_NV_stream_socket_inet
- EGLEW_NV_stream_socket_inet = _glewSearchExtension("EGL_NV_stream_socket_inet", extStart, extEnd);
-#endif /* EGL_NV_stream_socket_inet */
-#ifdef EGL_NV_stream_socket_unix
- EGLEW_NV_stream_socket_unix = _glewSearchExtension("EGL_NV_stream_socket_unix", extStart, extEnd);
-#endif /* EGL_NV_stream_socket_unix */
-#ifdef EGL_NV_stream_sync
- EGLEW_NV_stream_sync = _glewSearchExtension("EGL_NV_stream_sync", extStart, extEnd);
- if (glewExperimental || EGLEW_NV_stream_sync) EGLEW_NV_stream_sync = !_glewInit_EGL_NV_stream_sync();
-#endif /* EGL_NV_stream_sync */
-#ifdef EGL_NV_sync
- EGLEW_NV_sync = _glewSearchExtension("EGL_NV_sync", extStart, extEnd);
- if (glewExperimental || EGLEW_NV_sync) EGLEW_NV_sync = !_glewInit_EGL_NV_sync();
-#endif /* EGL_NV_sync */
-#ifdef EGL_NV_system_time
- EGLEW_NV_system_time = _glewSearchExtension("EGL_NV_system_time", extStart, extEnd);
- if (glewExperimental || EGLEW_NV_system_time) EGLEW_NV_system_time = !_glewInit_EGL_NV_system_time();
-#endif /* EGL_NV_system_time */
-#ifdef EGL_NV_triple_buffer
- EGLEW_NV_triple_buffer = _glewSearchExtension("EGL_NV_triple_buffer", extStart, extEnd);
-#endif /* EGL_NV_triple_buffer */
-#ifdef EGL_TIZEN_image_native_buffer
- EGLEW_TIZEN_image_native_buffer = _glewSearchExtension("EGL_TIZEN_image_native_buffer", extStart, extEnd);
-#endif /* EGL_TIZEN_image_native_buffer */
-#ifdef EGL_TIZEN_image_native_surface
- EGLEW_TIZEN_image_native_surface = _glewSearchExtension("EGL_TIZEN_image_native_surface", extStart, extEnd);
-#endif /* EGL_TIZEN_image_native_surface */
-#ifdef EGL_WL_bind_wayland_display
- EGLEW_WL_bind_wayland_display = _glewSearchExtension("EGL_WL_bind_wayland_display", extStart, extEnd);
- if (glewExperimental || EGLEW_WL_bind_wayland_display) EGLEW_WL_bind_wayland_display = !_glewInit_EGL_WL_bind_wayland_display();
-#endif /* EGL_WL_bind_wayland_display */
-#ifdef EGL_WL_create_wayland_buffer_from_image
- EGLEW_WL_create_wayland_buffer_from_image = _glewSearchExtension("EGL_WL_create_wayland_buffer_from_image", extStart, extEnd);
- if (glewExperimental || EGLEW_WL_create_wayland_buffer_from_image) EGLEW_WL_create_wayland_buffer_from_image = !_glewInit_EGL_WL_create_wayland_buffer_from_image();
-#endif /* EGL_WL_create_wayland_buffer_from_image */
-
- return GLEW_OK;
-}
-
-#elif defined(_WIN32)
-
-PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL = NULL;
-
-PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD = NULL;
-PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD = NULL;
-PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD = NULL;
-PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD = NULL;
-PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD = NULL;
-PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD = NULL;
-PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD = NULL;
-PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD = NULL;
-PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD = NULL;
-
-PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB = NULL;
-PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB = NULL;
-PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB = NULL;
-PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB = NULL;
-
-PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB = NULL;
-
-PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB = NULL;
-
-PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB = NULL;
-PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB = NULL;
-
-PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB = NULL;
-PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB = NULL;
-PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB = NULL;
-PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB = NULL;
-PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB = NULL;
-
-PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB = NULL;
-PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB = NULL;
-PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB = NULL;
-
-PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB = NULL;
-PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB = NULL;
-PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB = NULL;
-
-PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT = NULL;
-PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT = NULL;
-PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT = NULL;
-PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT = NULL;
-
-PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT = NULL;
-
-PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT = NULL;
-PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT = NULL;
-
-PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT = NULL;
-PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT = NULL;
-PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT = NULL;
-PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT = NULL;
-PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT = NULL;
-
-PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT = NULL;
-PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT = NULL;
-PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT = NULL;
-
-PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT = NULL;
-PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT = NULL;
-
-PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D = NULL;
-PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D = NULL;
-
-PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D = NULL;
-PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D = NULL;
-PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D = NULL;
-PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D = NULL;
-
-PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D = NULL;
-PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D = NULL;
-PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D = NULL;
-PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D = NULL;
-PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D = NULL;
-PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D = NULL;
-PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D = NULL;
-PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D = NULL;
-PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D = NULL;
-PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D = NULL;
-PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D = NULL;
-PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D = NULL;
-
-PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D = NULL;
-PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D = NULL;
-PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D = NULL;
-PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D = NULL;
-
-PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D = NULL;
-PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D = NULL;
-PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D = NULL;
-PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D = NULL;
-
-PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D = NULL;
-PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D = NULL;
-PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D = NULL;
-PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D = NULL;
-
-PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV = NULL;
-PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV = NULL;
-PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV = NULL;
-PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV = NULL;
-PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV = NULL;
-PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV = NULL;
-PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV = NULL;
-PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV = NULL;
-
-PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV = NULL;
-
-PFNWGLDELAYBEFORESWAPNVPROC __wglewDelayBeforeSwapNV = NULL;
-
-PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV = NULL;
-PFNWGLDELETEDCNVPROC __wglewDeleteDCNV = NULL;
-PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV = NULL;
-PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV = NULL;
-PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV = NULL;
-
-PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV = NULL;
-PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV = NULL;
-PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV = NULL;
-
-PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV = NULL;
-PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV = NULL;
-PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV = NULL;
-PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV = NULL;
-PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV = NULL;
-PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV = NULL;
-
-PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV = NULL;
-PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV = NULL;
-
-PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV = NULL;
-PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV = NULL;
-PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV = NULL;
-PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV = NULL;
-PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV = NULL;
-
-PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV = NULL;
-PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV = NULL;
-PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV = NULL;
-PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV = NULL;
-PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV = NULL;
-PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV = NULL;
-
-PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML = NULL;
-PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML = NULL;
-PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML = NULL;
-PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML = NULL;
-PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML = NULL;
-PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML = NULL;
-GLboolean __WGLEW_3DFX_multisample = GL_FALSE;
-GLboolean __WGLEW_3DL_stereo_control = GL_FALSE;
-GLboolean __WGLEW_AMD_gpu_association = GL_FALSE;
-GLboolean __WGLEW_ARB_buffer_region = GL_FALSE;
-GLboolean __WGLEW_ARB_context_flush_control = GL_FALSE;
-GLboolean __WGLEW_ARB_create_context = GL_FALSE;
-GLboolean __WGLEW_ARB_create_context_no_error = GL_FALSE;
-GLboolean __WGLEW_ARB_create_context_profile = GL_FALSE;
-GLboolean __WGLEW_ARB_create_context_robustness = GL_FALSE;
-GLboolean __WGLEW_ARB_extensions_string = GL_FALSE;
-GLboolean __WGLEW_ARB_framebuffer_sRGB = GL_FALSE;
-GLboolean __WGLEW_ARB_make_current_read = GL_FALSE;
-GLboolean __WGLEW_ARB_multisample = GL_FALSE;
-GLboolean __WGLEW_ARB_pbuffer = GL_FALSE;
-GLboolean __WGLEW_ARB_pixel_format = GL_FALSE;
-GLboolean __WGLEW_ARB_pixel_format_float = GL_FALSE;
-GLboolean __WGLEW_ARB_render_texture = GL_FALSE;
-GLboolean __WGLEW_ARB_robustness_application_isolation = GL_FALSE;
-GLboolean __WGLEW_ARB_robustness_share_group_isolation = GL_FALSE;
-GLboolean __WGLEW_ATI_pixel_format_float = GL_FALSE;
-GLboolean __WGLEW_ATI_render_texture_rectangle = GL_FALSE;
-GLboolean __WGLEW_EXT_colorspace = GL_FALSE;
-GLboolean __WGLEW_EXT_create_context_es2_profile = GL_FALSE;
-GLboolean __WGLEW_EXT_create_context_es_profile = GL_FALSE;
-GLboolean __WGLEW_EXT_depth_float = GL_FALSE;
-GLboolean __WGLEW_EXT_display_color_table = GL_FALSE;
-GLboolean __WGLEW_EXT_extensions_string = GL_FALSE;
-GLboolean __WGLEW_EXT_framebuffer_sRGB = GL_FALSE;
-GLboolean __WGLEW_EXT_make_current_read = GL_FALSE;
-GLboolean __WGLEW_EXT_multisample = GL_FALSE;
-GLboolean __WGLEW_EXT_pbuffer = GL_FALSE;
-GLboolean __WGLEW_EXT_pixel_format = GL_FALSE;
-GLboolean __WGLEW_EXT_pixel_format_packed_float = GL_FALSE;
-GLboolean __WGLEW_EXT_swap_control = GL_FALSE;
-GLboolean __WGLEW_EXT_swap_control_tear = GL_FALSE;
-GLboolean __WGLEW_I3D_digital_video_control = GL_FALSE;
-GLboolean __WGLEW_I3D_gamma = GL_FALSE;
-GLboolean __WGLEW_I3D_genlock = GL_FALSE;
-GLboolean __WGLEW_I3D_image_buffer = GL_FALSE;
-GLboolean __WGLEW_I3D_swap_frame_lock = GL_FALSE;
-GLboolean __WGLEW_I3D_swap_frame_usage = GL_FALSE;
-GLboolean __WGLEW_NV_DX_interop = GL_FALSE;
-GLboolean __WGLEW_NV_DX_interop2 = GL_FALSE;
-GLboolean __WGLEW_NV_copy_image = GL_FALSE;
-GLboolean __WGLEW_NV_delay_before_swap = GL_FALSE;
-GLboolean __WGLEW_NV_float_buffer = GL_FALSE;
-GLboolean __WGLEW_NV_gpu_affinity = GL_FALSE;
-GLboolean __WGLEW_NV_multigpu_context = GL_FALSE;
-GLboolean __WGLEW_NV_multisample_coverage = GL_FALSE;
-GLboolean __WGLEW_NV_present_video = GL_FALSE;
-GLboolean __WGLEW_NV_render_depth_texture = GL_FALSE;
-GLboolean __WGLEW_NV_render_texture_rectangle = GL_FALSE;
-GLboolean __WGLEW_NV_swap_group = GL_FALSE;
-GLboolean __WGLEW_NV_vertex_array_range = GL_FALSE;
-GLboolean __WGLEW_NV_video_capture = GL_FALSE;
-GLboolean __WGLEW_NV_video_output = GL_FALSE;
-GLboolean __WGLEW_OML_sync_control = GL_FALSE;
-#ifdef WGL_3DL_stereo_control
-
-static GLboolean _glewInit_WGL_3DL_stereo_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglSetStereoEmitterState3DL = (PFNWGLSETSTEREOEMITTERSTATE3DLPROC)glewGetProcAddress((const GLubyte*)"wglSetStereoEmitterState3DL")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_3DL_stereo_control */
-
-#ifdef WGL_AMD_gpu_association
-
-static GLboolean _glewInit_WGL_AMD_gpu_association ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglBlitContextFramebufferAMD = (PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC)glewGetProcAddress((const GLubyte*)"wglBlitContextFramebufferAMD")) == NULL) || r;
- r = ((wglCreateAssociatedContextAMD = (PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"wglCreateAssociatedContextAMD")) == NULL) || r;
- r = ((wglCreateAssociatedContextAttribsAMD = (PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)glewGetProcAddress((const GLubyte*)"wglCreateAssociatedContextAttribsAMD")) == NULL) || r;
- r = ((wglDeleteAssociatedContextAMD = (PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"wglDeleteAssociatedContextAMD")) == NULL) || r;
- r = ((wglGetContextGPUIDAMD = (PFNWGLGETCONTEXTGPUIDAMDPROC)glewGetProcAddress((const GLubyte*)"wglGetContextGPUIDAMD")) == NULL) || r;
- r = ((wglGetCurrentAssociatedContextAMD = (PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"wglGetCurrentAssociatedContextAMD")) == NULL) || r;
- r = ((wglGetGPUIDsAMD = (PFNWGLGETGPUIDSAMDPROC)glewGetProcAddress((const GLubyte*)"wglGetGPUIDsAMD")) == NULL) || r;
- r = ((wglGetGPUInfoAMD = (PFNWGLGETGPUINFOAMDPROC)glewGetProcAddress((const GLubyte*)"wglGetGPUInfoAMD")) == NULL) || r;
- r = ((wglMakeAssociatedContextCurrentAMD = (PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)glewGetProcAddress((const GLubyte*)"wglMakeAssociatedContextCurrentAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_AMD_gpu_association */
-
-#ifdef WGL_ARB_buffer_region
-
-static GLboolean _glewInit_WGL_ARB_buffer_region ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglCreateBufferRegionARB = (PFNWGLCREATEBUFFERREGIONARBPROC)glewGetProcAddress((const GLubyte*)"wglCreateBufferRegionARB")) == NULL) || r;
- r = ((wglDeleteBufferRegionARB = (PFNWGLDELETEBUFFERREGIONARBPROC)glewGetProcAddress((const GLubyte*)"wglDeleteBufferRegionARB")) == NULL) || r;
- r = ((wglRestoreBufferRegionARB = (PFNWGLRESTOREBUFFERREGIONARBPROC)glewGetProcAddress((const GLubyte*)"wglRestoreBufferRegionARB")) == NULL) || r;
- r = ((wglSaveBufferRegionARB = (PFNWGLSAVEBUFFERREGIONARBPROC)glewGetProcAddress((const GLubyte*)"wglSaveBufferRegionARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_ARB_buffer_region */
-
-#ifdef WGL_ARB_create_context
-
-static GLboolean _glewInit_WGL_ARB_create_context ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglCreateContextAttribsARB = (PFNWGLCREATECONTEXTATTRIBSARBPROC)glewGetProcAddress((const GLubyte*)"wglCreateContextAttribsARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_ARB_create_context */
-
-#ifdef WGL_ARB_extensions_string
-
-static GLboolean _glewInit_WGL_ARB_extensions_string ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_ARB_extensions_string */
-
-#ifdef WGL_ARB_make_current_read
-
-static GLboolean _glewInit_WGL_ARB_make_current_read ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglGetCurrentReadDCARB = (PFNWGLGETCURRENTREADDCARBPROC)glewGetProcAddress((const GLubyte*)"wglGetCurrentReadDCARB")) == NULL) || r;
- r = ((wglMakeContextCurrentARB = (PFNWGLMAKECONTEXTCURRENTARBPROC)glewGetProcAddress((const GLubyte*)"wglMakeContextCurrentARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_ARB_make_current_read */
-
-#ifdef WGL_ARB_pbuffer
-
-static GLboolean _glewInit_WGL_ARB_pbuffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglCreatePbufferARB = (PFNWGLCREATEPBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"wglCreatePbufferARB")) == NULL) || r;
- r = ((wglDestroyPbufferARB = (PFNWGLDESTROYPBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"wglDestroyPbufferARB")) == NULL) || r;
- r = ((wglGetPbufferDCARB = (PFNWGLGETPBUFFERDCARBPROC)glewGetProcAddress((const GLubyte*)"wglGetPbufferDCARB")) == NULL) || r;
- r = ((wglQueryPbufferARB = (PFNWGLQUERYPBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"wglQueryPbufferARB")) == NULL) || r;
- r = ((wglReleasePbufferDCARB = (PFNWGLRELEASEPBUFFERDCARBPROC)glewGetProcAddress((const GLubyte*)"wglReleasePbufferDCARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_ARB_pbuffer */
-
-#ifdef WGL_ARB_pixel_format
-
-static GLboolean _glewInit_WGL_ARB_pixel_format ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglChoosePixelFormatARB = (PFNWGLCHOOSEPIXELFORMATARBPROC)glewGetProcAddress((const GLubyte*)"wglChoosePixelFormatARB")) == NULL) || r;
- r = ((wglGetPixelFormatAttribfvARB = (PFNWGLGETPIXELFORMATATTRIBFVARBPROC)glewGetProcAddress((const GLubyte*)"wglGetPixelFormatAttribfvARB")) == NULL) || r;
- r = ((wglGetPixelFormatAttribivARB = (PFNWGLGETPIXELFORMATATTRIBIVARBPROC)glewGetProcAddress((const GLubyte*)"wglGetPixelFormatAttribivARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_ARB_pixel_format */
-
-#ifdef WGL_ARB_render_texture
-
-static GLboolean _glewInit_WGL_ARB_render_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglBindTexImageARB = (PFNWGLBINDTEXIMAGEARBPROC)glewGetProcAddress((const GLubyte*)"wglBindTexImageARB")) == NULL) || r;
- r = ((wglReleaseTexImageARB = (PFNWGLRELEASETEXIMAGEARBPROC)glewGetProcAddress((const GLubyte*)"wglReleaseTexImageARB")) == NULL) || r;
- r = ((wglSetPbufferAttribARB = (PFNWGLSETPBUFFERATTRIBARBPROC)glewGetProcAddress((const GLubyte*)"wglSetPbufferAttribARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_ARB_render_texture */
-
-#ifdef WGL_EXT_display_color_table
-
-static GLboolean _glewInit_WGL_EXT_display_color_table ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglBindDisplayColorTableEXT = (PFNWGLBINDDISPLAYCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"wglBindDisplayColorTableEXT")) == NULL) || r;
- r = ((wglCreateDisplayColorTableEXT = (PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"wglCreateDisplayColorTableEXT")) == NULL) || r;
- r = ((wglDestroyDisplayColorTableEXT = (PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"wglDestroyDisplayColorTableEXT")) == NULL) || r;
- r = ((wglLoadDisplayColorTableEXT = (PFNWGLLOADDISPLAYCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"wglLoadDisplayColorTableEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_EXT_display_color_table */
-
-#ifdef WGL_EXT_extensions_string
-
-static GLboolean _glewInit_WGL_EXT_extensions_string ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_EXT_extensions_string */
-
-#ifdef WGL_EXT_make_current_read
-
-static GLboolean _glewInit_WGL_EXT_make_current_read ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglGetCurrentReadDCEXT = (PFNWGLGETCURRENTREADDCEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetCurrentReadDCEXT")) == NULL) || r;
- r = ((wglMakeContextCurrentEXT = (PFNWGLMAKECONTEXTCURRENTEXTPROC)glewGetProcAddress((const GLubyte*)"wglMakeContextCurrentEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_EXT_make_current_read */
-
-#ifdef WGL_EXT_pbuffer
-
-static GLboolean _glewInit_WGL_EXT_pbuffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglCreatePbufferEXT = (PFNWGLCREATEPBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"wglCreatePbufferEXT")) == NULL) || r;
- r = ((wglDestroyPbufferEXT = (PFNWGLDESTROYPBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"wglDestroyPbufferEXT")) == NULL) || r;
- r = ((wglGetPbufferDCEXT = (PFNWGLGETPBUFFERDCEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetPbufferDCEXT")) == NULL) || r;
- r = ((wglQueryPbufferEXT = (PFNWGLQUERYPBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"wglQueryPbufferEXT")) == NULL) || r;
- r = ((wglReleasePbufferDCEXT = (PFNWGLRELEASEPBUFFERDCEXTPROC)glewGetProcAddress((const GLubyte*)"wglReleasePbufferDCEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_EXT_pbuffer */
-
-#ifdef WGL_EXT_pixel_format
-
-static GLboolean _glewInit_WGL_EXT_pixel_format ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglChoosePixelFormatEXT = (PFNWGLCHOOSEPIXELFORMATEXTPROC)glewGetProcAddress((const GLubyte*)"wglChoosePixelFormatEXT")) == NULL) || r;
- r = ((wglGetPixelFormatAttribfvEXT = (PFNWGLGETPIXELFORMATATTRIBFVEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetPixelFormatAttribfvEXT")) == NULL) || r;
- r = ((wglGetPixelFormatAttribivEXT = (PFNWGLGETPIXELFORMATATTRIBIVEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetPixelFormatAttribivEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_EXT_pixel_format */
-
-#ifdef WGL_EXT_swap_control
-
-static GLboolean _glewInit_WGL_EXT_swap_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglGetSwapIntervalEXT = (PFNWGLGETSWAPINTERVALEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetSwapIntervalEXT")) == NULL) || r;
- r = ((wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)glewGetProcAddress((const GLubyte*)"wglSwapIntervalEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_EXT_swap_control */
-
-#ifdef WGL_I3D_digital_video_control
-
-static GLboolean _glewInit_WGL_I3D_digital_video_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglGetDigitalVideoParametersI3D = (PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetDigitalVideoParametersI3D")) == NULL) || r;
- r = ((wglSetDigitalVideoParametersI3D = (PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC)glewGetProcAddress((const GLubyte*)"wglSetDigitalVideoParametersI3D")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_I3D_digital_video_control */
-
-#ifdef WGL_I3D_gamma
-
-static GLboolean _glewInit_WGL_I3D_gamma ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglGetGammaTableI3D = (PFNWGLGETGAMMATABLEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGammaTableI3D")) == NULL) || r;
- r = ((wglGetGammaTableParametersI3D = (PFNWGLGETGAMMATABLEPARAMETERSI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGammaTableParametersI3D")) == NULL) || r;
- r = ((wglSetGammaTableI3D = (PFNWGLSETGAMMATABLEI3DPROC)glewGetProcAddress((const GLubyte*)"wglSetGammaTableI3D")) == NULL) || r;
- r = ((wglSetGammaTableParametersI3D = (PFNWGLSETGAMMATABLEPARAMETERSI3DPROC)glewGetProcAddress((const GLubyte*)"wglSetGammaTableParametersI3D")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_I3D_gamma */
-
-#ifdef WGL_I3D_genlock
-
-static GLboolean _glewInit_WGL_I3D_genlock ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglDisableGenlockI3D = (PFNWGLDISABLEGENLOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglDisableGenlockI3D")) == NULL) || r;
- r = ((wglEnableGenlockI3D = (PFNWGLENABLEGENLOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglEnableGenlockI3D")) == NULL) || r;
- r = ((wglGenlockSampleRateI3D = (PFNWGLGENLOCKSAMPLERATEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGenlockSampleRateI3D")) == NULL) || r;
- r = ((wglGenlockSourceDelayI3D = (PFNWGLGENLOCKSOURCEDELAYI3DPROC)glewGetProcAddress((const GLubyte*)"wglGenlockSourceDelayI3D")) == NULL) || r;
- r = ((wglGenlockSourceEdgeI3D = (PFNWGLGENLOCKSOURCEEDGEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGenlockSourceEdgeI3D")) == NULL) || r;
- r = ((wglGenlockSourceI3D = (PFNWGLGENLOCKSOURCEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGenlockSourceI3D")) == NULL) || r;
- r = ((wglGetGenlockSampleRateI3D = (PFNWGLGETGENLOCKSAMPLERATEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGenlockSampleRateI3D")) == NULL) || r;
- r = ((wglGetGenlockSourceDelayI3D = (PFNWGLGETGENLOCKSOURCEDELAYI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGenlockSourceDelayI3D")) == NULL) || r;
- r = ((wglGetGenlockSourceEdgeI3D = (PFNWGLGETGENLOCKSOURCEEDGEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGenlockSourceEdgeI3D")) == NULL) || r;
- r = ((wglGetGenlockSourceI3D = (PFNWGLGETGENLOCKSOURCEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGenlockSourceI3D")) == NULL) || r;
- r = ((wglIsEnabledGenlockI3D = (PFNWGLISENABLEDGENLOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglIsEnabledGenlockI3D")) == NULL) || r;
- r = ((wglQueryGenlockMaxSourceDelayI3D = (PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC)glewGetProcAddress((const GLubyte*)"wglQueryGenlockMaxSourceDelayI3D")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_I3D_genlock */
-
-#ifdef WGL_I3D_image_buffer
-
-static GLboolean _glewInit_WGL_I3D_image_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglAssociateImageBufferEventsI3D = (PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC)glewGetProcAddress((const GLubyte*)"wglAssociateImageBufferEventsI3D")) == NULL) || r;
- r = ((wglCreateImageBufferI3D = (PFNWGLCREATEIMAGEBUFFERI3DPROC)glewGetProcAddress((const GLubyte*)"wglCreateImageBufferI3D")) == NULL) || r;
- r = ((wglDestroyImageBufferI3D = (PFNWGLDESTROYIMAGEBUFFERI3DPROC)glewGetProcAddress((const GLubyte*)"wglDestroyImageBufferI3D")) == NULL) || r;
- r = ((wglReleaseImageBufferEventsI3D = (PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC)glewGetProcAddress((const GLubyte*)"wglReleaseImageBufferEventsI3D")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_I3D_image_buffer */
-
-#ifdef WGL_I3D_swap_frame_lock
-
-static GLboolean _glewInit_WGL_I3D_swap_frame_lock ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglDisableFrameLockI3D = (PFNWGLDISABLEFRAMELOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglDisableFrameLockI3D")) == NULL) || r;
- r = ((wglEnableFrameLockI3D = (PFNWGLENABLEFRAMELOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglEnableFrameLockI3D")) == NULL) || r;
- r = ((wglIsEnabledFrameLockI3D = (PFNWGLISENABLEDFRAMELOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglIsEnabledFrameLockI3D")) == NULL) || r;
- r = ((wglQueryFrameLockMasterI3D = (PFNWGLQUERYFRAMELOCKMASTERI3DPROC)glewGetProcAddress((const GLubyte*)"wglQueryFrameLockMasterI3D")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_I3D_swap_frame_lock */
-
-#ifdef WGL_I3D_swap_frame_usage
-
-static GLboolean _glewInit_WGL_I3D_swap_frame_usage ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglBeginFrameTrackingI3D = (PFNWGLBEGINFRAMETRACKINGI3DPROC)glewGetProcAddress((const GLubyte*)"wglBeginFrameTrackingI3D")) == NULL) || r;
- r = ((wglEndFrameTrackingI3D = (PFNWGLENDFRAMETRACKINGI3DPROC)glewGetProcAddress((const GLubyte*)"wglEndFrameTrackingI3D")) == NULL) || r;
- r = ((wglGetFrameUsageI3D = (PFNWGLGETFRAMEUSAGEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetFrameUsageI3D")) == NULL) || r;
- r = ((wglQueryFrameTrackingI3D = (PFNWGLQUERYFRAMETRACKINGI3DPROC)glewGetProcAddress((const GLubyte*)"wglQueryFrameTrackingI3D")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_I3D_swap_frame_usage */
-
-#ifdef WGL_NV_DX_interop
-
-static GLboolean _glewInit_WGL_NV_DX_interop ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglDXCloseDeviceNV = (PFNWGLDXCLOSEDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglDXCloseDeviceNV")) == NULL) || r;
- r = ((wglDXLockObjectsNV = (PFNWGLDXLOCKOBJECTSNVPROC)glewGetProcAddress((const GLubyte*)"wglDXLockObjectsNV")) == NULL) || r;
- r = ((wglDXObjectAccessNV = (PFNWGLDXOBJECTACCESSNVPROC)glewGetProcAddress((const GLubyte*)"wglDXObjectAccessNV")) == NULL) || r;
- r = ((wglDXOpenDeviceNV = (PFNWGLDXOPENDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglDXOpenDeviceNV")) == NULL) || r;
- r = ((wglDXRegisterObjectNV = (PFNWGLDXREGISTEROBJECTNVPROC)glewGetProcAddress((const GLubyte*)"wglDXRegisterObjectNV")) == NULL) || r;
- r = ((wglDXSetResourceShareHandleNV = (PFNWGLDXSETRESOURCESHAREHANDLENVPROC)glewGetProcAddress((const GLubyte*)"wglDXSetResourceShareHandleNV")) == NULL) || r;
- r = ((wglDXUnlockObjectsNV = (PFNWGLDXUNLOCKOBJECTSNVPROC)glewGetProcAddress((const GLubyte*)"wglDXUnlockObjectsNV")) == NULL) || r;
- r = ((wglDXUnregisterObjectNV = (PFNWGLDXUNREGISTEROBJECTNVPROC)glewGetProcAddress((const GLubyte*)"wglDXUnregisterObjectNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_NV_DX_interop */
-
-#ifdef WGL_NV_copy_image
-
-static GLboolean _glewInit_WGL_NV_copy_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglCopyImageSubDataNV = (PFNWGLCOPYIMAGESUBDATANVPROC)glewGetProcAddress((const GLubyte*)"wglCopyImageSubDataNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_NV_copy_image */
-
-#ifdef WGL_NV_delay_before_swap
-
-static GLboolean _glewInit_WGL_NV_delay_before_swap ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglDelayBeforeSwapNV = (PFNWGLDELAYBEFORESWAPNVPROC)glewGetProcAddress((const GLubyte*)"wglDelayBeforeSwapNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_NV_delay_before_swap */
-
-#ifdef WGL_NV_gpu_affinity
-
-static GLboolean _glewInit_WGL_NV_gpu_affinity ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglCreateAffinityDCNV = (PFNWGLCREATEAFFINITYDCNVPROC)glewGetProcAddress((const GLubyte*)"wglCreateAffinityDCNV")) == NULL) || r;
- r = ((wglDeleteDCNV = (PFNWGLDELETEDCNVPROC)glewGetProcAddress((const GLubyte*)"wglDeleteDCNV")) == NULL) || r;
- r = ((wglEnumGpuDevicesNV = (PFNWGLENUMGPUDEVICESNVPROC)glewGetProcAddress((const GLubyte*)"wglEnumGpuDevicesNV")) == NULL) || r;
- r = ((wglEnumGpusFromAffinityDCNV = (PFNWGLENUMGPUSFROMAFFINITYDCNVPROC)glewGetProcAddress((const GLubyte*)"wglEnumGpusFromAffinityDCNV")) == NULL) || r;
- r = ((wglEnumGpusNV = (PFNWGLENUMGPUSNVPROC)glewGetProcAddress((const GLubyte*)"wglEnumGpusNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_NV_gpu_affinity */
-
-#ifdef WGL_NV_present_video
-
-static GLboolean _glewInit_WGL_NV_present_video ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglBindVideoDeviceNV = (PFNWGLBINDVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglBindVideoDeviceNV")) == NULL) || r;
- r = ((wglEnumerateVideoDevicesNV = (PFNWGLENUMERATEVIDEODEVICESNVPROC)glewGetProcAddress((const GLubyte*)"wglEnumerateVideoDevicesNV")) == NULL) || r;
- r = ((wglQueryCurrentContextNV = (PFNWGLQUERYCURRENTCONTEXTNVPROC)glewGetProcAddress((const GLubyte*)"wglQueryCurrentContextNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_NV_present_video */
-
-#ifdef WGL_NV_swap_group
-
-static GLboolean _glewInit_WGL_NV_swap_group ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglBindSwapBarrierNV = (PFNWGLBINDSWAPBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"wglBindSwapBarrierNV")) == NULL) || r;
- r = ((wglJoinSwapGroupNV = (PFNWGLJOINSWAPGROUPNVPROC)glewGetProcAddress((const GLubyte*)"wglJoinSwapGroupNV")) == NULL) || r;
- r = ((wglQueryFrameCountNV = (PFNWGLQUERYFRAMECOUNTNVPROC)glewGetProcAddress((const GLubyte*)"wglQueryFrameCountNV")) == NULL) || r;
- r = ((wglQueryMaxSwapGroupsNV = (PFNWGLQUERYMAXSWAPGROUPSNVPROC)glewGetProcAddress((const GLubyte*)"wglQueryMaxSwapGroupsNV")) == NULL) || r;
- r = ((wglQuerySwapGroupNV = (PFNWGLQUERYSWAPGROUPNVPROC)glewGetProcAddress((const GLubyte*)"wglQuerySwapGroupNV")) == NULL) || r;
- r = ((wglResetFrameCountNV = (PFNWGLRESETFRAMECOUNTNVPROC)glewGetProcAddress((const GLubyte*)"wglResetFrameCountNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_NV_swap_group */
-
-#ifdef WGL_NV_vertex_array_range
-
-static GLboolean _glewInit_WGL_NV_vertex_array_range ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglAllocateMemoryNV = (PFNWGLALLOCATEMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"wglAllocateMemoryNV")) == NULL) || r;
- r = ((wglFreeMemoryNV = (PFNWGLFREEMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"wglFreeMemoryNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_NV_vertex_array_range */
-
-#ifdef WGL_NV_video_capture
-
-static GLboolean _glewInit_WGL_NV_video_capture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglBindVideoCaptureDeviceNV = (PFNWGLBINDVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglBindVideoCaptureDeviceNV")) == NULL) || r;
- r = ((wglEnumerateVideoCaptureDevicesNV = (PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC)glewGetProcAddress((const GLubyte*)"wglEnumerateVideoCaptureDevicesNV")) == NULL) || r;
- r = ((wglLockVideoCaptureDeviceNV = (PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglLockVideoCaptureDeviceNV")) == NULL) || r;
- r = ((wglQueryVideoCaptureDeviceNV = (PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglQueryVideoCaptureDeviceNV")) == NULL) || r;
- r = ((wglReleaseVideoCaptureDeviceNV = (PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglReleaseVideoCaptureDeviceNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_NV_video_capture */
-
-#ifdef WGL_NV_video_output
-
-static GLboolean _glewInit_WGL_NV_video_output ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglBindVideoImageNV = (PFNWGLBINDVIDEOIMAGENVPROC)glewGetProcAddress((const GLubyte*)"wglBindVideoImageNV")) == NULL) || r;
- r = ((wglGetVideoDeviceNV = (PFNWGLGETVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglGetVideoDeviceNV")) == NULL) || r;
- r = ((wglGetVideoInfoNV = (PFNWGLGETVIDEOINFONVPROC)glewGetProcAddress((const GLubyte*)"wglGetVideoInfoNV")) == NULL) || r;
- r = ((wglReleaseVideoDeviceNV = (PFNWGLRELEASEVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglReleaseVideoDeviceNV")) == NULL) || r;
- r = ((wglReleaseVideoImageNV = (PFNWGLRELEASEVIDEOIMAGENVPROC)glewGetProcAddress((const GLubyte*)"wglReleaseVideoImageNV")) == NULL) || r;
- r = ((wglSendPbufferToVideoNV = (PFNWGLSENDPBUFFERTOVIDEONVPROC)glewGetProcAddress((const GLubyte*)"wglSendPbufferToVideoNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_NV_video_output */
-
-#ifdef WGL_OML_sync_control
-
-static GLboolean _glewInit_WGL_OML_sync_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((wglGetMscRateOML = (PFNWGLGETMSCRATEOMLPROC)glewGetProcAddress((const GLubyte*)"wglGetMscRateOML")) == NULL) || r;
- r = ((wglGetSyncValuesOML = (PFNWGLGETSYNCVALUESOMLPROC)glewGetProcAddress((const GLubyte*)"wglGetSyncValuesOML")) == NULL) || r;
- r = ((wglSwapBuffersMscOML = (PFNWGLSWAPBUFFERSMSCOMLPROC)glewGetProcAddress((const GLubyte*)"wglSwapBuffersMscOML")) == NULL) || r;
- r = ((wglSwapLayerBuffersMscOML = (PFNWGLSWAPLAYERBUFFERSMSCOMLPROC)glewGetProcAddress((const GLubyte*)"wglSwapLayerBuffersMscOML")) == NULL) || r;
- r = ((wglWaitForMscOML = (PFNWGLWAITFORMSCOMLPROC)glewGetProcAddress((const GLubyte*)"wglWaitForMscOML")) == NULL) || r;
- r = ((wglWaitForSbcOML = (PFNWGLWAITFORSBCOMLPROC)glewGetProcAddress((const GLubyte*)"wglWaitForSbcOML")) == NULL) || r;
-
- return r;
-}
-
-#endif /* WGL_OML_sync_control */
-
-/* ------------------------------------------------------------------------- */
-
-static PFNWGLGETEXTENSIONSSTRINGARBPROC _wglewGetExtensionsStringARB = NULL;
-static PFNWGLGETEXTENSIONSSTRINGEXTPROC _wglewGetExtensionsStringEXT = NULL;
-
-GLboolean GLEWAPIENTRY wglewGetExtension (const char* name)
-{
- const GLubyte* start;
- const GLubyte* end;
- if (_wglewGetExtensionsStringARB == NULL)
- if (_wglewGetExtensionsStringEXT == NULL)
- return GL_FALSE;
- else
- start = (const GLubyte*)_wglewGetExtensionsStringEXT();
- else
- start = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC());
- if (start == 0)
- return GL_FALSE;
- end = start + _glewStrLen(start);
- return _glewSearchExtension(name, start, end);
-}
-
-GLenum GLEWAPIENTRY wglewInit ()
-{
- GLboolean crippled;
- const GLubyte* extStart;
- const GLubyte* extEnd;
- /* find wgl extension string query functions */
- _wglewGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringARB");
- _wglewGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringEXT");
- /* query wgl extension string */
- if (_wglewGetExtensionsStringARB == NULL)
- if (_wglewGetExtensionsStringEXT == NULL)
- extStart = (const GLubyte*)"";
- else
- extStart = (const GLubyte*)_wglewGetExtensionsStringEXT();
- else
- extStart = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC());
- extEnd = extStart + _glewStrLen(extStart);
- /* initialize extensions */
- crippled = _wglewGetExtensionsStringARB == NULL && _wglewGetExtensionsStringEXT == NULL;
-#ifdef WGL_3DFX_multisample
- WGLEW_3DFX_multisample = _glewSearchExtension("WGL_3DFX_multisample", extStart, extEnd);
-#endif /* WGL_3DFX_multisample */
-#ifdef WGL_3DL_stereo_control
- WGLEW_3DL_stereo_control = _glewSearchExtension("WGL_3DL_stereo_control", extStart, extEnd);
- if (glewExperimental || WGLEW_3DL_stereo_control|| crippled) WGLEW_3DL_stereo_control= !_glewInit_WGL_3DL_stereo_control();
-#endif /* WGL_3DL_stereo_control */
-#ifdef WGL_AMD_gpu_association
- WGLEW_AMD_gpu_association = _glewSearchExtension("WGL_AMD_gpu_association", extStart, extEnd);
- if (glewExperimental || WGLEW_AMD_gpu_association|| crippled) WGLEW_AMD_gpu_association= !_glewInit_WGL_AMD_gpu_association();
-#endif /* WGL_AMD_gpu_association */
-#ifdef WGL_ARB_buffer_region
- WGLEW_ARB_buffer_region = _glewSearchExtension("WGL_ARB_buffer_region", extStart, extEnd);
- if (glewExperimental || WGLEW_ARB_buffer_region|| crippled) WGLEW_ARB_buffer_region= !_glewInit_WGL_ARB_buffer_region();
-#endif /* WGL_ARB_buffer_region */
-#ifdef WGL_ARB_context_flush_control
- WGLEW_ARB_context_flush_control = _glewSearchExtension("WGL_ARB_context_flush_control", extStart, extEnd);
-#endif /* WGL_ARB_context_flush_control */
-#ifdef WGL_ARB_create_context
- WGLEW_ARB_create_context = _glewSearchExtension("WGL_ARB_create_context", extStart, extEnd);
- if (glewExperimental || WGLEW_ARB_create_context|| crippled) WGLEW_ARB_create_context= !_glewInit_WGL_ARB_create_context();
-#endif /* WGL_ARB_create_context */
-#ifdef WGL_ARB_create_context_no_error
- WGLEW_ARB_create_context_no_error = _glewSearchExtension("WGL_ARB_create_context_no_error", extStart, extEnd);
-#endif /* WGL_ARB_create_context_no_error */
-#ifdef WGL_ARB_create_context_profile
- WGLEW_ARB_create_context_profile = _glewSearchExtension("WGL_ARB_create_context_profile", extStart, extEnd);
-#endif /* WGL_ARB_create_context_profile */
-#ifdef WGL_ARB_create_context_robustness
- WGLEW_ARB_create_context_robustness = _glewSearchExtension("WGL_ARB_create_context_robustness", extStart, extEnd);
-#endif /* WGL_ARB_create_context_robustness */
-#ifdef WGL_ARB_extensions_string
- WGLEW_ARB_extensions_string = _glewSearchExtension("WGL_ARB_extensions_string", extStart, extEnd);
- if (glewExperimental || WGLEW_ARB_extensions_string|| crippled) WGLEW_ARB_extensions_string= !_glewInit_WGL_ARB_extensions_string();
-#endif /* WGL_ARB_extensions_string */
-#ifdef WGL_ARB_framebuffer_sRGB
- WGLEW_ARB_framebuffer_sRGB = _glewSearchExtension("WGL_ARB_framebuffer_sRGB", extStart, extEnd);
-#endif /* WGL_ARB_framebuffer_sRGB */
-#ifdef WGL_ARB_make_current_read
- WGLEW_ARB_make_current_read = _glewSearchExtension("WGL_ARB_make_current_read", extStart, extEnd);
- if (glewExperimental || WGLEW_ARB_make_current_read|| crippled) WGLEW_ARB_make_current_read= !_glewInit_WGL_ARB_make_current_read();
-#endif /* WGL_ARB_make_current_read */
-#ifdef WGL_ARB_multisample
- WGLEW_ARB_multisample = _glewSearchExtension("WGL_ARB_multisample", extStart, extEnd);
-#endif /* WGL_ARB_multisample */
-#ifdef WGL_ARB_pbuffer
- WGLEW_ARB_pbuffer = _glewSearchExtension("WGL_ARB_pbuffer", extStart, extEnd);
- if (glewExperimental || WGLEW_ARB_pbuffer|| crippled) WGLEW_ARB_pbuffer= !_glewInit_WGL_ARB_pbuffer();
-#endif /* WGL_ARB_pbuffer */
-#ifdef WGL_ARB_pixel_format
- WGLEW_ARB_pixel_format = _glewSearchExtension("WGL_ARB_pixel_format", extStart, extEnd);
- if (glewExperimental || WGLEW_ARB_pixel_format|| crippled) WGLEW_ARB_pixel_format= !_glewInit_WGL_ARB_pixel_format();
-#endif /* WGL_ARB_pixel_format */
-#ifdef WGL_ARB_pixel_format_float
- WGLEW_ARB_pixel_format_float = _glewSearchExtension("WGL_ARB_pixel_format_float", extStart, extEnd);
-#endif /* WGL_ARB_pixel_format_float */
-#ifdef WGL_ARB_render_texture
- WGLEW_ARB_render_texture = _glewSearchExtension("WGL_ARB_render_texture", extStart, extEnd);
- if (glewExperimental || WGLEW_ARB_render_texture|| crippled) WGLEW_ARB_render_texture= !_glewInit_WGL_ARB_render_texture();
-#endif /* WGL_ARB_render_texture */
-#ifdef WGL_ARB_robustness_application_isolation
- WGLEW_ARB_robustness_application_isolation = _glewSearchExtension("WGL_ARB_robustness_application_isolation", extStart, extEnd);
-#endif /* WGL_ARB_robustness_application_isolation */
-#ifdef WGL_ARB_robustness_share_group_isolation
- WGLEW_ARB_robustness_share_group_isolation = _glewSearchExtension("WGL_ARB_robustness_share_group_isolation", extStart, extEnd);
-#endif /* WGL_ARB_robustness_share_group_isolation */
-#ifdef WGL_ATI_pixel_format_float
- WGLEW_ATI_pixel_format_float = _glewSearchExtension("WGL_ATI_pixel_format_float", extStart, extEnd);
-#endif /* WGL_ATI_pixel_format_float */
-#ifdef WGL_ATI_render_texture_rectangle
- WGLEW_ATI_render_texture_rectangle = _glewSearchExtension("WGL_ATI_render_texture_rectangle", extStart, extEnd);
-#endif /* WGL_ATI_render_texture_rectangle */
-#ifdef WGL_EXT_colorspace
- WGLEW_EXT_colorspace = _glewSearchExtension("WGL_EXT_colorspace", extStart, extEnd);
-#endif /* WGL_EXT_colorspace */
-#ifdef WGL_EXT_create_context_es2_profile
- WGLEW_EXT_create_context_es2_profile = _glewSearchExtension("WGL_EXT_create_context_es2_profile", extStart, extEnd);
-#endif /* WGL_EXT_create_context_es2_profile */
-#ifdef WGL_EXT_create_context_es_profile
- WGLEW_EXT_create_context_es_profile = _glewSearchExtension("WGL_EXT_create_context_es_profile", extStart, extEnd);
-#endif /* WGL_EXT_create_context_es_profile */
-#ifdef WGL_EXT_depth_float
- WGLEW_EXT_depth_float = _glewSearchExtension("WGL_EXT_depth_float", extStart, extEnd);
-#endif /* WGL_EXT_depth_float */
-#ifdef WGL_EXT_display_color_table
- WGLEW_EXT_display_color_table = _glewSearchExtension("WGL_EXT_display_color_table", extStart, extEnd);
- if (glewExperimental || WGLEW_EXT_display_color_table|| crippled) WGLEW_EXT_display_color_table= !_glewInit_WGL_EXT_display_color_table();
-#endif /* WGL_EXT_display_color_table */
-#ifdef WGL_EXT_extensions_string
- WGLEW_EXT_extensions_string = _glewSearchExtension("WGL_EXT_extensions_string", extStart, extEnd);
- if (glewExperimental || WGLEW_EXT_extensions_string|| crippled) WGLEW_EXT_extensions_string= !_glewInit_WGL_EXT_extensions_string();
-#endif /* WGL_EXT_extensions_string */
-#ifdef WGL_EXT_framebuffer_sRGB
- WGLEW_EXT_framebuffer_sRGB = _glewSearchExtension("WGL_EXT_framebuffer_sRGB", extStart, extEnd);
-#endif /* WGL_EXT_framebuffer_sRGB */
-#ifdef WGL_EXT_make_current_read
- WGLEW_EXT_make_current_read = _glewSearchExtension("WGL_EXT_make_current_read", extStart, extEnd);
- if (glewExperimental || WGLEW_EXT_make_current_read|| crippled) WGLEW_EXT_make_current_read= !_glewInit_WGL_EXT_make_current_read();
-#endif /* WGL_EXT_make_current_read */
-#ifdef WGL_EXT_multisample
- WGLEW_EXT_multisample = _glewSearchExtension("WGL_EXT_multisample", extStart, extEnd);
-#endif /* WGL_EXT_multisample */
-#ifdef WGL_EXT_pbuffer
- WGLEW_EXT_pbuffer = _glewSearchExtension("WGL_EXT_pbuffer", extStart, extEnd);
- if (glewExperimental || WGLEW_EXT_pbuffer|| crippled) WGLEW_EXT_pbuffer= !_glewInit_WGL_EXT_pbuffer();
-#endif /* WGL_EXT_pbuffer */
-#ifdef WGL_EXT_pixel_format
- WGLEW_EXT_pixel_format = _glewSearchExtension("WGL_EXT_pixel_format", extStart, extEnd);
- if (glewExperimental || WGLEW_EXT_pixel_format|| crippled) WGLEW_EXT_pixel_format= !_glewInit_WGL_EXT_pixel_format();
-#endif /* WGL_EXT_pixel_format */
-#ifdef WGL_EXT_pixel_format_packed_float
- WGLEW_EXT_pixel_format_packed_float = _glewSearchExtension("WGL_EXT_pixel_format_packed_float", extStart, extEnd);
-#endif /* WGL_EXT_pixel_format_packed_float */
-#ifdef WGL_EXT_swap_control
- WGLEW_EXT_swap_control = _glewSearchExtension("WGL_EXT_swap_control", extStart, extEnd);
- if (glewExperimental || WGLEW_EXT_swap_control|| crippled) WGLEW_EXT_swap_control= !_glewInit_WGL_EXT_swap_control();
-#endif /* WGL_EXT_swap_control */
-#ifdef WGL_EXT_swap_control_tear
- WGLEW_EXT_swap_control_tear = _glewSearchExtension("WGL_EXT_swap_control_tear", extStart, extEnd);
-#endif /* WGL_EXT_swap_control_tear */
-#ifdef WGL_I3D_digital_video_control
- WGLEW_I3D_digital_video_control = _glewSearchExtension("WGL_I3D_digital_video_control", extStart, extEnd);
- if (glewExperimental || WGLEW_I3D_digital_video_control|| crippled) WGLEW_I3D_digital_video_control= !_glewInit_WGL_I3D_digital_video_control();
-#endif /* WGL_I3D_digital_video_control */
-#ifdef WGL_I3D_gamma
- WGLEW_I3D_gamma = _glewSearchExtension("WGL_I3D_gamma", extStart, extEnd);
- if (glewExperimental || WGLEW_I3D_gamma|| crippled) WGLEW_I3D_gamma= !_glewInit_WGL_I3D_gamma();
-#endif /* WGL_I3D_gamma */
-#ifdef WGL_I3D_genlock
- WGLEW_I3D_genlock = _glewSearchExtension("WGL_I3D_genlock", extStart, extEnd);
- if (glewExperimental || WGLEW_I3D_genlock|| crippled) WGLEW_I3D_genlock= !_glewInit_WGL_I3D_genlock();
-#endif /* WGL_I3D_genlock */
-#ifdef WGL_I3D_image_buffer
- WGLEW_I3D_image_buffer = _glewSearchExtension("WGL_I3D_image_buffer", extStart, extEnd);
- if (glewExperimental || WGLEW_I3D_image_buffer|| crippled) WGLEW_I3D_image_buffer= !_glewInit_WGL_I3D_image_buffer();
-#endif /* WGL_I3D_image_buffer */
-#ifdef WGL_I3D_swap_frame_lock
- WGLEW_I3D_swap_frame_lock = _glewSearchExtension("WGL_I3D_swap_frame_lock", extStart, extEnd);
- if (glewExperimental || WGLEW_I3D_swap_frame_lock|| crippled) WGLEW_I3D_swap_frame_lock= !_glewInit_WGL_I3D_swap_frame_lock();
-#endif /* WGL_I3D_swap_frame_lock */
-#ifdef WGL_I3D_swap_frame_usage
- WGLEW_I3D_swap_frame_usage = _glewSearchExtension("WGL_I3D_swap_frame_usage", extStart, extEnd);
- if (glewExperimental || WGLEW_I3D_swap_frame_usage|| crippled) WGLEW_I3D_swap_frame_usage= !_glewInit_WGL_I3D_swap_frame_usage();
-#endif /* WGL_I3D_swap_frame_usage */
-#ifdef WGL_NV_DX_interop
- WGLEW_NV_DX_interop = _glewSearchExtension("WGL_NV_DX_interop", extStart, extEnd);
- if (glewExperimental || WGLEW_NV_DX_interop|| crippled) WGLEW_NV_DX_interop= !_glewInit_WGL_NV_DX_interop();
-#endif /* WGL_NV_DX_interop */
-#ifdef WGL_NV_DX_interop2
- WGLEW_NV_DX_interop2 = _glewSearchExtension("WGL_NV_DX_interop2", extStart, extEnd);
-#endif /* WGL_NV_DX_interop2 */
-#ifdef WGL_NV_copy_image
- WGLEW_NV_copy_image = _glewSearchExtension("WGL_NV_copy_image", extStart, extEnd);
- if (glewExperimental || WGLEW_NV_copy_image|| crippled) WGLEW_NV_copy_image= !_glewInit_WGL_NV_copy_image();
-#endif /* WGL_NV_copy_image */
-#ifdef WGL_NV_delay_before_swap
- WGLEW_NV_delay_before_swap = _glewSearchExtension("WGL_NV_delay_before_swap", extStart, extEnd);
- if (glewExperimental || WGLEW_NV_delay_before_swap|| crippled) WGLEW_NV_delay_before_swap= !_glewInit_WGL_NV_delay_before_swap();
-#endif /* WGL_NV_delay_before_swap */
-#ifdef WGL_NV_float_buffer
- WGLEW_NV_float_buffer = _glewSearchExtension("WGL_NV_float_buffer", extStart, extEnd);
-#endif /* WGL_NV_float_buffer */
-#ifdef WGL_NV_gpu_affinity
- WGLEW_NV_gpu_affinity = _glewSearchExtension("WGL_NV_gpu_affinity", extStart, extEnd);
- if (glewExperimental || WGLEW_NV_gpu_affinity|| crippled) WGLEW_NV_gpu_affinity= !_glewInit_WGL_NV_gpu_affinity();
-#endif /* WGL_NV_gpu_affinity */
-#ifdef WGL_NV_multigpu_context
- WGLEW_NV_multigpu_context = _glewSearchExtension("WGL_NV_multigpu_context", extStart, extEnd);
-#endif /* WGL_NV_multigpu_context */
-#ifdef WGL_NV_multisample_coverage
- WGLEW_NV_multisample_coverage = _glewSearchExtension("WGL_NV_multisample_coverage", extStart, extEnd);
-#endif /* WGL_NV_multisample_coverage */
-#ifdef WGL_NV_present_video
- WGLEW_NV_present_video = _glewSearchExtension("WGL_NV_present_video", extStart, extEnd);
- if (glewExperimental || WGLEW_NV_present_video|| crippled) WGLEW_NV_present_video= !_glewInit_WGL_NV_present_video();
-#endif /* WGL_NV_present_video */
-#ifdef WGL_NV_render_depth_texture
- WGLEW_NV_render_depth_texture = _glewSearchExtension("WGL_NV_render_depth_texture", extStart, extEnd);
-#endif /* WGL_NV_render_depth_texture */
-#ifdef WGL_NV_render_texture_rectangle
- WGLEW_NV_render_texture_rectangle = _glewSearchExtension("WGL_NV_render_texture_rectangle", extStart, extEnd);
-#endif /* WGL_NV_render_texture_rectangle */
-#ifdef WGL_NV_swap_group
- WGLEW_NV_swap_group = _glewSearchExtension("WGL_NV_swap_group", extStart, extEnd);
- if (glewExperimental || WGLEW_NV_swap_group|| crippled) WGLEW_NV_swap_group= !_glewInit_WGL_NV_swap_group();
-#endif /* WGL_NV_swap_group */
-#ifdef WGL_NV_vertex_array_range
- WGLEW_NV_vertex_array_range = _glewSearchExtension("WGL_NV_vertex_array_range", extStart, extEnd);
- if (glewExperimental || WGLEW_NV_vertex_array_range|| crippled) WGLEW_NV_vertex_array_range= !_glewInit_WGL_NV_vertex_array_range();
-#endif /* WGL_NV_vertex_array_range */
-#ifdef WGL_NV_video_capture
- WGLEW_NV_video_capture = _glewSearchExtension("WGL_NV_video_capture", extStart, extEnd);
- if (glewExperimental || WGLEW_NV_video_capture|| crippled) WGLEW_NV_video_capture= !_glewInit_WGL_NV_video_capture();
-#endif /* WGL_NV_video_capture */
-#ifdef WGL_NV_video_output
- WGLEW_NV_video_output = _glewSearchExtension("WGL_NV_video_output", extStart, extEnd);
- if (glewExperimental || WGLEW_NV_video_output|| crippled) WGLEW_NV_video_output= !_glewInit_WGL_NV_video_output();
-#endif /* WGL_NV_video_output */
-#ifdef WGL_OML_sync_control
- WGLEW_OML_sync_control = _glewSearchExtension("WGL_OML_sync_control", extStart, extEnd);
- if (glewExperimental || WGLEW_OML_sync_control|| crippled) WGLEW_OML_sync_control= !_glewInit_WGL_OML_sync_control();
-#endif /* WGL_OML_sync_control */
-
- return GLEW_OK;
-}
-
-#elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))
-
-PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay = NULL;
-
-PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig = NULL;
-PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext = NULL;
-PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer = NULL;
-PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap = NULL;
-PFNGLXCREATEWINDOWPROC __glewXCreateWindow = NULL;
-PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer = NULL;
-PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap = NULL;
-PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow = NULL;
-PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable = NULL;
-PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib = NULL;
-PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs = NULL;
-PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent = NULL;
-PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig = NULL;
-PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent = NULL;
-PFNGLXQUERYCONTEXTPROC __glewXQueryContext = NULL;
-PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable = NULL;
-PFNGLXSELECTEVENTPROC __glewXSelectEvent = NULL;
-
-PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC __glewXBlitContextFramebufferAMD = NULL;
-PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC __glewXCreateAssociatedContextAMD = NULL;
-PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __glewXCreateAssociatedContextAttribsAMD = NULL;
-PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC __glewXDeleteAssociatedContextAMD = NULL;
-PFNGLXGETCONTEXTGPUIDAMDPROC __glewXGetContextGPUIDAMD = NULL;
-PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC __glewXGetCurrentAssociatedContextAMD = NULL;
-PFNGLXGETGPUIDSAMDPROC __glewXGetGPUIDsAMD = NULL;
-PFNGLXGETGPUINFOAMDPROC __glewXGetGPUInfoAMD = NULL;
-PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __glewXMakeAssociatedContextCurrentAMD = NULL;
-
-PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB = NULL;
-
-PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI = NULL;
-PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI = NULL;
-PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI = NULL;
-
-PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT = NULL;
-PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT = NULL;
-PFNGLXGETCURRENTDISPLAYEXTPROC __glewXGetCurrentDisplayEXT = NULL;
-PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT = NULL;
-PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT = NULL;
-
-PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT = NULL;
-
-PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT = NULL;
-PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT = NULL;
-
-PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA = NULL;
-
-PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA = NULL;
-
-PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA = NULL;
-
-PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC __glewXQueryCurrentRendererIntegerMESA = NULL;
-PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC __glewXQueryCurrentRendererStringMESA = NULL;
-PFNGLXQUERYRENDERERINTEGERMESAPROC __glewXQueryRendererIntegerMESA = NULL;
-PFNGLXQUERYRENDERERSTRINGMESAPROC __glewXQueryRendererStringMESA = NULL;
-
-PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA = NULL;
-
-PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA = NULL;
-
-PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA = NULL;
-PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA = NULL;
-
-PFNGLXCOPYBUFFERSUBDATANVPROC __glewXCopyBufferSubDataNV = NULL;
-PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC __glewXNamedCopyBufferSubDataNV = NULL;
-
-PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV = NULL;
-
-PFNGLXDELAYBEFORESWAPNVPROC __glewXDelayBeforeSwapNV = NULL;
-
-PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV = NULL;
-PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV = NULL;
-
-PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV = NULL;
-PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV = NULL;
-PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV = NULL;
-PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV = NULL;
-PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV = NULL;
-PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV = NULL;
-
-PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV = NULL;
-PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV = NULL;
-
-PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV = NULL;
-PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV = NULL;
-PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV = NULL;
-PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV = NULL;
-PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV = NULL;
-
-PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV = NULL;
-PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV = NULL;
-PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV = NULL;
-PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV = NULL;
-PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV = NULL;
-PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV = NULL;
-
-PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML = NULL;
-PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML = NULL;
-PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML = NULL;
-PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML = NULL;
-PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML = NULL;
-
-PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX = NULL;
-PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX = NULL;
-PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX = NULL;
-PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX = NULL;
-PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX = NULL;
-PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX = NULL;
-
-PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX = NULL;
-PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX = NULL;
-PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX = NULL;
-PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX = NULL;
-PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX = NULL;
-PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX = NULL;
-PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX = NULL;
-PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX = NULL;
-
-PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX = NULL;
-PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX = NULL;
-PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX = NULL;
-PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX = NULL;
-PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX = NULL;
-
-PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX = NULL;
-PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX = NULL;
-
-PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX = NULL;
-
-PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX = NULL;
-PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX = NULL;
-PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX = NULL;
-PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX = NULL;
-PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX = NULL;
-
-PFNGLXCUSHIONSGIPROC __glewXCushionSGI = NULL;
-
-PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI = NULL;
-PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI = NULL;
-
-PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI = NULL;
-
-PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI = NULL;
-PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI = NULL;
-
-PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN = NULL;
-
-PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN = NULL;
-PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN = NULL;
-
-GLboolean __GLXEW_VERSION_1_0 = GL_FALSE;
-GLboolean __GLXEW_VERSION_1_1 = GL_FALSE;
-GLboolean __GLXEW_VERSION_1_2 = GL_FALSE;
-GLboolean __GLXEW_VERSION_1_3 = GL_FALSE;
-GLboolean __GLXEW_VERSION_1_4 = GL_FALSE;
-GLboolean __GLXEW_3DFX_multisample = GL_FALSE;
-GLboolean __GLXEW_AMD_gpu_association = GL_FALSE;
-GLboolean __GLXEW_ARB_context_flush_control = GL_FALSE;
-GLboolean __GLXEW_ARB_create_context = GL_FALSE;
-GLboolean __GLXEW_ARB_create_context_no_error = GL_FALSE;
-GLboolean __GLXEW_ARB_create_context_profile = GL_FALSE;
-GLboolean __GLXEW_ARB_create_context_robustness = GL_FALSE;
-GLboolean __GLXEW_ARB_fbconfig_float = GL_FALSE;
-GLboolean __GLXEW_ARB_framebuffer_sRGB = GL_FALSE;
-GLboolean __GLXEW_ARB_get_proc_address = GL_FALSE;
-GLboolean __GLXEW_ARB_multisample = GL_FALSE;
-GLboolean __GLXEW_ARB_robustness_application_isolation = GL_FALSE;
-GLboolean __GLXEW_ARB_robustness_share_group_isolation = GL_FALSE;
-GLboolean __GLXEW_ARB_vertex_buffer_object = GL_FALSE;
-GLboolean __GLXEW_ATI_pixel_format_float = GL_FALSE;
-GLboolean __GLXEW_ATI_render_texture = GL_FALSE;
-GLboolean __GLXEW_EXT_buffer_age = GL_FALSE;
-GLboolean __GLXEW_EXT_context_priority = GL_FALSE;
-GLboolean __GLXEW_EXT_create_context_es2_profile = GL_FALSE;
-GLboolean __GLXEW_EXT_create_context_es_profile = GL_FALSE;
-GLboolean __GLXEW_EXT_fbconfig_packed_float = GL_FALSE;
-GLboolean __GLXEW_EXT_framebuffer_sRGB = GL_FALSE;
-GLboolean __GLXEW_EXT_import_context = GL_FALSE;
-GLboolean __GLXEW_EXT_libglvnd = GL_FALSE;
-GLboolean __GLXEW_EXT_no_config_context = GL_FALSE;
-GLboolean __GLXEW_EXT_scene_marker = GL_FALSE;
-GLboolean __GLXEW_EXT_stereo_tree = GL_FALSE;
-GLboolean __GLXEW_EXT_swap_control = GL_FALSE;
-GLboolean __GLXEW_EXT_swap_control_tear = GL_FALSE;
-GLboolean __GLXEW_EXT_texture_from_pixmap = GL_FALSE;
-GLboolean __GLXEW_EXT_visual_info = GL_FALSE;
-GLboolean __GLXEW_EXT_visual_rating = GL_FALSE;
-GLboolean __GLXEW_INTEL_swap_event = GL_FALSE;
-GLboolean __GLXEW_MESA_agp_offset = GL_FALSE;
-GLboolean __GLXEW_MESA_copy_sub_buffer = GL_FALSE;
-GLboolean __GLXEW_MESA_pixmap_colormap = GL_FALSE;
-GLboolean __GLXEW_MESA_query_renderer = GL_FALSE;
-GLboolean __GLXEW_MESA_release_buffers = GL_FALSE;
-GLboolean __GLXEW_MESA_set_3dfx_mode = GL_FALSE;
-GLboolean __GLXEW_MESA_swap_control = GL_FALSE;
-GLboolean __GLXEW_NV_copy_buffer = GL_FALSE;
-GLboolean __GLXEW_NV_copy_image = GL_FALSE;
-GLboolean __GLXEW_NV_delay_before_swap = GL_FALSE;
-GLboolean __GLXEW_NV_float_buffer = GL_FALSE;
-GLboolean __GLXEW_NV_multigpu_context = GL_FALSE;
-GLboolean __GLXEW_NV_multisample_coverage = GL_FALSE;
-GLboolean __GLXEW_NV_present_video = GL_FALSE;
-GLboolean __GLXEW_NV_robustness_video_memory_purge = GL_FALSE;
-GLboolean __GLXEW_NV_swap_group = GL_FALSE;
-GLboolean __GLXEW_NV_vertex_array_range = GL_FALSE;
-GLboolean __GLXEW_NV_video_capture = GL_FALSE;
-GLboolean __GLXEW_NV_video_out = GL_FALSE;
-GLboolean __GLXEW_OML_swap_method = GL_FALSE;
-GLboolean __GLXEW_OML_sync_control = GL_FALSE;
-GLboolean __GLXEW_SGIS_blended_overlay = GL_FALSE;
-GLboolean __GLXEW_SGIS_color_range = GL_FALSE;
-GLboolean __GLXEW_SGIS_multisample = GL_FALSE;
-GLboolean __GLXEW_SGIS_shared_multisample = GL_FALSE;
-GLboolean __GLXEW_SGIX_fbconfig = GL_FALSE;
-GLboolean __GLXEW_SGIX_hyperpipe = GL_FALSE;
-GLboolean __GLXEW_SGIX_pbuffer = GL_FALSE;
-GLboolean __GLXEW_SGIX_swap_barrier = GL_FALSE;
-GLboolean __GLXEW_SGIX_swap_group = GL_FALSE;
-GLboolean __GLXEW_SGIX_video_resize = GL_FALSE;
-GLboolean __GLXEW_SGIX_visual_select_group = GL_FALSE;
-GLboolean __GLXEW_SGI_cushion = GL_FALSE;
-GLboolean __GLXEW_SGI_make_current_read = GL_FALSE;
-GLboolean __GLXEW_SGI_swap_control = GL_FALSE;
-GLboolean __GLXEW_SGI_video_sync = GL_FALSE;
-GLboolean __GLXEW_SUN_get_transparent_index = GL_FALSE;
-GLboolean __GLXEW_SUN_video_resize = GL_FALSE;
-#ifdef GLX_VERSION_1_2
-
-static GLboolean _glewInit_GLX_VERSION_1_2 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXGetCurrentDisplay = (PFNGLXGETCURRENTDISPLAYPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentDisplay")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_VERSION_1_2 */
-
-#ifdef GLX_VERSION_1_3
-
-static GLboolean _glewInit_GLX_VERSION_1_3 ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXChooseFBConfig = (PFNGLXCHOOSEFBCONFIGPROC)glewGetProcAddress((const GLubyte*)"glXChooseFBConfig")) == NULL) || r;
- r = ((glXCreateNewContext = (PFNGLXCREATENEWCONTEXTPROC)glewGetProcAddress((const GLubyte*)"glXCreateNewContext")) == NULL) || r;
- r = ((glXCreatePbuffer = (PFNGLXCREATEPBUFFERPROC)glewGetProcAddress((const GLubyte*)"glXCreatePbuffer")) == NULL) || r;
- r = ((glXCreatePixmap = (PFNGLXCREATEPIXMAPPROC)glewGetProcAddress((const GLubyte*)"glXCreatePixmap")) == NULL) || r;
- r = ((glXCreateWindow = (PFNGLXCREATEWINDOWPROC)glewGetProcAddress((const GLubyte*)"glXCreateWindow")) == NULL) || r;
- r = ((glXDestroyPbuffer = (PFNGLXDESTROYPBUFFERPROC)glewGetProcAddress((const GLubyte*)"glXDestroyPbuffer")) == NULL) || r;
- r = ((glXDestroyPixmap = (PFNGLXDESTROYPIXMAPPROC)glewGetProcAddress((const GLubyte*)"glXDestroyPixmap")) == NULL) || r;
- r = ((glXDestroyWindow = (PFNGLXDESTROYWINDOWPROC)glewGetProcAddress((const GLubyte*)"glXDestroyWindow")) == NULL) || r;
- r = ((glXGetCurrentReadDrawable = (PFNGLXGETCURRENTREADDRAWABLEPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentReadDrawable")) == NULL) || r;
- r = ((glXGetFBConfigAttrib = (PFNGLXGETFBCONFIGATTRIBPROC)glewGetProcAddress((const GLubyte*)"glXGetFBConfigAttrib")) == NULL) || r;
- r = ((glXGetFBConfigs = (PFNGLXGETFBCONFIGSPROC)glewGetProcAddress((const GLubyte*)"glXGetFBConfigs")) == NULL) || r;
- r = ((glXGetSelectedEvent = (PFNGLXGETSELECTEDEVENTPROC)glewGetProcAddress((const GLubyte*)"glXGetSelectedEvent")) == NULL) || r;
- r = ((glXGetVisualFromFBConfig = (PFNGLXGETVISUALFROMFBCONFIGPROC)glewGetProcAddress((const GLubyte*)"glXGetVisualFromFBConfig")) == NULL) || r;
- r = ((glXMakeContextCurrent = (PFNGLXMAKECONTEXTCURRENTPROC)glewGetProcAddress((const GLubyte*)"glXMakeContextCurrent")) == NULL) || r;
- r = ((glXQueryContext = (PFNGLXQUERYCONTEXTPROC)glewGetProcAddress((const GLubyte*)"glXQueryContext")) == NULL) || r;
- r = ((glXQueryDrawable = (PFNGLXQUERYDRAWABLEPROC)glewGetProcAddress((const GLubyte*)"glXQueryDrawable")) == NULL) || r;
- r = ((glXSelectEvent = (PFNGLXSELECTEVENTPROC)glewGetProcAddress((const GLubyte*)"glXSelectEvent")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_VERSION_1_3 */
-
-#ifdef GLX_AMD_gpu_association
-
-static GLboolean _glewInit_GLX_AMD_gpu_association ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXBlitContextFramebufferAMD = (PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC)glewGetProcAddress((const GLubyte*)"glXBlitContextFramebufferAMD")) == NULL) || r;
- r = ((glXCreateAssociatedContextAMD = (PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"glXCreateAssociatedContextAMD")) == NULL) || r;
- r = ((glXCreateAssociatedContextAttribsAMD = (PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)glewGetProcAddress((const GLubyte*)"glXCreateAssociatedContextAttribsAMD")) == NULL) || r;
- r = ((glXDeleteAssociatedContextAMD = (PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"glXDeleteAssociatedContextAMD")) == NULL) || r;
- r = ((glXGetContextGPUIDAMD = (PFNGLXGETCONTEXTGPUIDAMDPROC)glewGetProcAddress((const GLubyte*)"glXGetContextGPUIDAMD")) == NULL) || r;
- r = ((glXGetCurrentAssociatedContextAMD = (PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentAssociatedContextAMD")) == NULL) || r;
- r = ((glXGetGPUIDsAMD = (PFNGLXGETGPUIDSAMDPROC)glewGetProcAddress((const GLubyte*)"glXGetGPUIDsAMD")) == NULL) || r;
- r = ((glXGetGPUInfoAMD = (PFNGLXGETGPUINFOAMDPROC)glewGetProcAddress((const GLubyte*)"glXGetGPUInfoAMD")) == NULL) || r;
- r = ((glXMakeAssociatedContextCurrentAMD = (PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)glewGetProcAddress((const GLubyte*)"glXMakeAssociatedContextCurrentAMD")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_AMD_gpu_association */
-
-#ifdef GLX_ARB_create_context
-
-static GLboolean _glewInit_GLX_ARB_create_context ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXCreateContextAttribsARB = (PFNGLXCREATECONTEXTATTRIBSARBPROC)glewGetProcAddress((const GLubyte*)"glXCreateContextAttribsARB")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_ARB_create_context */
-
-#ifdef GLX_ATI_render_texture
-
-static GLboolean _glewInit_GLX_ATI_render_texture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXBindTexImageATI = (PFNGLXBINDTEXIMAGEATIPROC)glewGetProcAddress((const GLubyte*)"glXBindTexImageATI")) == NULL) || r;
- r = ((glXDrawableAttribATI = (PFNGLXDRAWABLEATTRIBATIPROC)glewGetProcAddress((const GLubyte*)"glXDrawableAttribATI")) == NULL) || r;
- r = ((glXReleaseTexImageATI = (PFNGLXRELEASETEXIMAGEATIPROC)glewGetProcAddress((const GLubyte*)"glXReleaseTexImageATI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_ATI_render_texture */
-
-#ifdef GLX_EXT_import_context
-
-static GLboolean _glewInit_GLX_EXT_import_context ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXFreeContextEXT = (PFNGLXFREECONTEXTEXTPROC)glewGetProcAddress((const GLubyte*)"glXFreeContextEXT")) == NULL) || r;
- r = ((glXGetContextIDEXT = (PFNGLXGETCONTEXTIDEXTPROC)glewGetProcAddress((const GLubyte*)"glXGetContextIDEXT")) == NULL) || r;
- r = ((glXGetCurrentDisplayEXT = (PFNGLXGETCURRENTDISPLAYEXTPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentDisplayEXT")) == NULL) || r;
- r = ((glXImportContextEXT = (PFNGLXIMPORTCONTEXTEXTPROC)glewGetProcAddress((const GLubyte*)"glXImportContextEXT")) == NULL) || r;
- r = ((glXQueryContextInfoEXT = (PFNGLXQUERYCONTEXTINFOEXTPROC)glewGetProcAddress((const GLubyte*)"glXQueryContextInfoEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_EXT_import_context */
-
-#ifdef GLX_EXT_swap_control
-
-static GLboolean _glewInit_GLX_EXT_swap_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXSwapIntervalEXT = (PFNGLXSWAPINTERVALEXTPROC)glewGetProcAddress((const GLubyte*)"glXSwapIntervalEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_EXT_swap_control */
-
-#ifdef GLX_EXT_texture_from_pixmap
-
-static GLboolean _glewInit_GLX_EXT_texture_from_pixmap ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXBindTexImageEXT = (PFNGLXBINDTEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glXBindTexImageEXT")) == NULL) || r;
- r = ((glXReleaseTexImageEXT = (PFNGLXRELEASETEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glXReleaseTexImageEXT")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_EXT_texture_from_pixmap */
-
-#ifdef GLX_MESA_agp_offset
-
-static GLboolean _glewInit_GLX_MESA_agp_offset ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXGetAGPOffsetMESA = (PFNGLXGETAGPOFFSETMESAPROC)glewGetProcAddress((const GLubyte*)"glXGetAGPOffsetMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_MESA_agp_offset */
-
-#ifdef GLX_MESA_copy_sub_buffer
-
-static GLboolean _glewInit_GLX_MESA_copy_sub_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXCopySubBufferMESA = (PFNGLXCOPYSUBBUFFERMESAPROC)glewGetProcAddress((const GLubyte*)"glXCopySubBufferMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_MESA_copy_sub_buffer */
-
-#ifdef GLX_MESA_pixmap_colormap
-
-static GLboolean _glewInit_GLX_MESA_pixmap_colormap ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXCreateGLXPixmapMESA = (PFNGLXCREATEGLXPIXMAPMESAPROC)glewGetProcAddress((const GLubyte*)"glXCreateGLXPixmapMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_MESA_pixmap_colormap */
-
-#ifdef GLX_MESA_query_renderer
-
-static GLboolean _glewInit_GLX_MESA_query_renderer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXQueryCurrentRendererIntegerMESA = (PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC)glewGetProcAddress((const GLubyte*)"glXQueryCurrentRendererIntegerMESA")) == NULL) || r;
- r = ((glXQueryCurrentRendererStringMESA = (PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC)glewGetProcAddress((const GLubyte*)"glXQueryCurrentRendererStringMESA")) == NULL) || r;
- r = ((glXQueryRendererIntegerMESA = (PFNGLXQUERYRENDERERINTEGERMESAPROC)glewGetProcAddress((const GLubyte*)"glXQueryRendererIntegerMESA")) == NULL) || r;
- r = ((glXQueryRendererStringMESA = (PFNGLXQUERYRENDERERSTRINGMESAPROC)glewGetProcAddress((const GLubyte*)"glXQueryRendererStringMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_MESA_query_renderer */
-
-#ifdef GLX_MESA_release_buffers
-
-static GLboolean _glewInit_GLX_MESA_release_buffers ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXReleaseBuffersMESA = (PFNGLXRELEASEBUFFERSMESAPROC)glewGetProcAddress((const GLubyte*)"glXReleaseBuffersMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_MESA_release_buffers */
-
-#ifdef GLX_MESA_set_3dfx_mode
-
-static GLboolean _glewInit_GLX_MESA_set_3dfx_mode ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXSet3DfxModeMESA = (PFNGLXSET3DFXMODEMESAPROC)glewGetProcAddress((const GLubyte*)"glXSet3DfxModeMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_MESA_set_3dfx_mode */
-
-#ifdef GLX_MESA_swap_control
-
-static GLboolean _glewInit_GLX_MESA_swap_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXGetSwapIntervalMESA = (PFNGLXGETSWAPINTERVALMESAPROC)glewGetProcAddress((const GLubyte*)"glXGetSwapIntervalMESA")) == NULL) || r;
- r = ((glXSwapIntervalMESA = (PFNGLXSWAPINTERVALMESAPROC)glewGetProcAddress((const GLubyte*)"glXSwapIntervalMESA")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_MESA_swap_control */
-
-#ifdef GLX_NV_copy_buffer
-
-static GLboolean _glewInit_GLX_NV_copy_buffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXCopyBufferSubDataNV = (PFNGLXCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glXCopyBufferSubDataNV")) == NULL) || r;
- r = ((glXNamedCopyBufferSubDataNV = (PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glXNamedCopyBufferSubDataNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_NV_copy_buffer */
-
-#ifdef GLX_NV_copy_image
-
-static GLboolean _glewInit_GLX_NV_copy_image ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXCopyImageSubDataNV = (PFNGLXCOPYIMAGESUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glXCopyImageSubDataNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_NV_copy_image */
-
-#ifdef GLX_NV_delay_before_swap
-
-static GLboolean _glewInit_GLX_NV_delay_before_swap ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXDelayBeforeSwapNV = (PFNGLXDELAYBEFORESWAPNVPROC)glewGetProcAddress((const GLubyte*)"glXDelayBeforeSwapNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_NV_delay_before_swap */
-
-#ifdef GLX_NV_present_video
-
-static GLboolean _glewInit_GLX_NV_present_video ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXBindVideoDeviceNV = (PFNGLXBINDVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXBindVideoDeviceNV")) == NULL) || r;
- r = ((glXEnumerateVideoDevicesNV = (PFNGLXENUMERATEVIDEODEVICESNVPROC)glewGetProcAddress((const GLubyte*)"glXEnumerateVideoDevicesNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_NV_present_video */
-
-#ifdef GLX_NV_swap_group
-
-static GLboolean _glewInit_GLX_NV_swap_group ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXBindSwapBarrierNV = (PFNGLXBINDSWAPBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glXBindSwapBarrierNV")) == NULL) || r;
- r = ((glXJoinSwapGroupNV = (PFNGLXJOINSWAPGROUPNVPROC)glewGetProcAddress((const GLubyte*)"glXJoinSwapGroupNV")) == NULL) || r;
- r = ((glXQueryFrameCountNV = (PFNGLXQUERYFRAMECOUNTNVPROC)glewGetProcAddress((const GLubyte*)"glXQueryFrameCountNV")) == NULL) || r;
- r = ((glXQueryMaxSwapGroupsNV = (PFNGLXQUERYMAXSWAPGROUPSNVPROC)glewGetProcAddress((const GLubyte*)"glXQueryMaxSwapGroupsNV")) == NULL) || r;
- r = ((glXQuerySwapGroupNV = (PFNGLXQUERYSWAPGROUPNVPROC)glewGetProcAddress((const GLubyte*)"glXQuerySwapGroupNV")) == NULL) || r;
- r = ((glXResetFrameCountNV = (PFNGLXRESETFRAMECOUNTNVPROC)glewGetProcAddress((const GLubyte*)"glXResetFrameCountNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_NV_swap_group */
-
-#ifdef GLX_NV_vertex_array_range
-
-static GLboolean _glewInit_GLX_NV_vertex_array_range ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXAllocateMemoryNV = (PFNGLXALLOCATEMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glXAllocateMemoryNV")) == NULL) || r;
- r = ((glXFreeMemoryNV = (PFNGLXFREEMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glXFreeMemoryNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_NV_vertex_array_range */
-
-#ifdef GLX_NV_video_capture
-
-static GLboolean _glewInit_GLX_NV_video_capture ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXBindVideoCaptureDeviceNV = (PFNGLXBINDVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXBindVideoCaptureDeviceNV")) == NULL) || r;
- r = ((glXEnumerateVideoCaptureDevicesNV = (PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC)glewGetProcAddress((const GLubyte*)"glXEnumerateVideoCaptureDevicesNV")) == NULL) || r;
- r = ((glXLockVideoCaptureDeviceNV = (PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXLockVideoCaptureDeviceNV")) == NULL) || r;
- r = ((glXQueryVideoCaptureDeviceNV = (PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXQueryVideoCaptureDeviceNV")) == NULL) || r;
- r = ((glXReleaseVideoCaptureDeviceNV = (PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXReleaseVideoCaptureDeviceNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_NV_video_capture */
-
-#ifdef GLX_NV_video_out
-
-static GLboolean _glewInit_GLX_NV_video_out ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXBindVideoImageNV = (PFNGLXBINDVIDEOIMAGENVPROC)glewGetProcAddress((const GLubyte*)"glXBindVideoImageNV")) == NULL) || r;
- r = ((glXGetVideoDeviceNV = (PFNGLXGETVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXGetVideoDeviceNV")) == NULL) || r;
- r = ((glXGetVideoInfoNV = (PFNGLXGETVIDEOINFONVPROC)glewGetProcAddress((const GLubyte*)"glXGetVideoInfoNV")) == NULL) || r;
- r = ((glXReleaseVideoDeviceNV = (PFNGLXRELEASEVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXReleaseVideoDeviceNV")) == NULL) || r;
- r = ((glXReleaseVideoImageNV = (PFNGLXRELEASEVIDEOIMAGENVPROC)glewGetProcAddress((const GLubyte*)"glXReleaseVideoImageNV")) == NULL) || r;
- r = ((glXSendPbufferToVideoNV = (PFNGLXSENDPBUFFERTOVIDEONVPROC)glewGetProcAddress((const GLubyte*)"glXSendPbufferToVideoNV")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_NV_video_out */
-
-#ifdef GLX_OML_sync_control
-
-static GLboolean _glewInit_GLX_OML_sync_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXGetMscRateOML = (PFNGLXGETMSCRATEOMLPROC)glewGetProcAddress((const GLubyte*)"glXGetMscRateOML")) == NULL) || r;
- r = ((glXGetSyncValuesOML = (PFNGLXGETSYNCVALUESOMLPROC)glewGetProcAddress((const GLubyte*)"glXGetSyncValuesOML")) == NULL) || r;
- r = ((glXSwapBuffersMscOML = (PFNGLXSWAPBUFFERSMSCOMLPROC)glewGetProcAddress((const GLubyte*)"glXSwapBuffersMscOML")) == NULL) || r;
- r = ((glXWaitForMscOML = (PFNGLXWAITFORMSCOMLPROC)glewGetProcAddress((const GLubyte*)"glXWaitForMscOML")) == NULL) || r;
- r = ((glXWaitForSbcOML = (PFNGLXWAITFORSBCOMLPROC)glewGetProcAddress((const GLubyte*)"glXWaitForSbcOML")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_OML_sync_control */
-
-#ifdef GLX_SGIX_fbconfig
-
-static GLboolean _glewInit_GLX_SGIX_fbconfig ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXChooseFBConfigSGIX = (PFNGLXCHOOSEFBCONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXChooseFBConfigSGIX")) == NULL) || r;
- r = ((glXCreateContextWithConfigSGIX = (PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXCreateContextWithConfigSGIX")) == NULL) || r;
- r = ((glXCreateGLXPixmapWithConfigSGIX = (PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXCreateGLXPixmapWithConfigSGIX")) == NULL) || r;
- r = ((glXGetFBConfigAttribSGIX = (PFNGLXGETFBCONFIGATTRIBSGIXPROC)glewGetProcAddress((const GLubyte*)"glXGetFBConfigAttribSGIX")) == NULL) || r;
- r = ((glXGetFBConfigFromVisualSGIX = (PFNGLXGETFBCONFIGFROMVISUALSGIXPROC)glewGetProcAddress((const GLubyte*)"glXGetFBConfigFromVisualSGIX")) == NULL) || r;
- r = ((glXGetVisualFromFBConfigSGIX = (PFNGLXGETVISUALFROMFBCONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXGetVisualFromFBConfigSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SGIX_fbconfig */
-
-#ifdef GLX_SGIX_hyperpipe
-
-static GLboolean _glewInit_GLX_SGIX_hyperpipe ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXBindHyperpipeSGIX = (PFNGLXBINDHYPERPIPESGIXPROC)glewGetProcAddress((const GLubyte*)"glXBindHyperpipeSGIX")) == NULL) || r;
- r = ((glXDestroyHyperpipeConfigSGIX = (PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXDestroyHyperpipeConfigSGIX")) == NULL) || r;
- r = ((glXHyperpipeAttribSGIX = (PFNGLXHYPERPIPEATTRIBSGIXPROC)glewGetProcAddress((const GLubyte*)"glXHyperpipeAttribSGIX")) == NULL) || r;
- r = ((glXHyperpipeConfigSGIX = (PFNGLXHYPERPIPECONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXHyperpipeConfigSGIX")) == NULL) || r;
- r = ((glXQueryHyperpipeAttribSGIX = (PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryHyperpipeAttribSGIX")) == NULL) || r;
- r = ((glXQueryHyperpipeBestAttribSGIX = (PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryHyperpipeBestAttribSGIX")) == NULL) || r;
- r = ((glXQueryHyperpipeConfigSGIX = (PFNGLXQUERYHYPERPIPECONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryHyperpipeConfigSGIX")) == NULL) || r;
- r = ((glXQueryHyperpipeNetworkSGIX = (PFNGLXQUERYHYPERPIPENETWORKSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryHyperpipeNetworkSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SGIX_hyperpipe */
-
-#ifdef GLX_SGIX_pbuffer
-
-static GLboolean _glewInit_GLX_SGIX_pbuffer ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXCreateGLXPbufferSGIX = (PFNGLXCREATEGLXPBUFFERSGIXPROC)glewGetProcAddress((const GLubyte*)"glXCreateGLXPbufferSGIX")) == NULL) || r;
- r = ((glXDestroyGLXPbufferSGIX = (PFNGLXDESTROYGLXPBUFFERSGIXPROC)glewGetProcAddress((const GLubyte*)"glXDestroyGLXPbufferSGIX")) == NULL) || r;
- r = ((glXGetSelectedEventSGIX = (PFNGLXGETSELECTEDEVENTSGIXPROC)glewGetProcAddress((const GLubyte*)"glXGetSelectedEventSGIX")) == NULL) || r;
- r = ((glXQueryGLXPbufferSGIX = (PFNGLXQUERYGLXPBUFFERSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryGLXPbufferSGIX")) == NULL) || r;
- r = ((glXSelectEventSGIX = (PFNGLXSELECTEVENTSGIXPROC)glewGetProcAddress((const GLubyte*)"glXSelectEventSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SGIX_pbuffer */
-
-#ifdef GLX_SGIX_swap_barrier
-
-static GLboolean _glewInit_GLX_SGIX_swap_barrier ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXBindSwapBarrierSGIX = (PFNGLXBINDSWAPBARRIERSGIXPROC)glewGetProcAddress((const GLubyte*)"glXBindSwapBarrierSGIX")) == NULL) || r;
- r = ((glXQueryMaxSwapBarriersSGIX = (PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryMaxSwapBarriersSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SGIX_swap_barrier */
-
-#ifdef GLX_SGIX_swap_group
-
-static GLboolean _glewInit_GLX_SGIX_swap_group ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXJoinSwapGroupSGIX = (PFNGLXJOINSWAPGROUPSGIXPROC)glewGetProcAddress((const GLubyte*)"glXJoinSwapGroupSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SGIX_swap_group */
-
-#ifdef GLX_SGIX_video_resize
-
-static GLboolean _glewInit_GLX_SGIX_video_resize ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXBindChannelToWindowSGIX = (PFNGLXBINDCHANNELTOWINDOWSGIXPROC)glewGetProcAddress((const GLubyte*)"glXBindChannelToWindowSGIX")) == NULL) || r;
- r = ((glXChannelRectSGIX = (PFNGLXCHANNELRECTSGIXPROC)glewGetProcAddress((const GLubyte*)"glXChannelRectSGIX")) == NULL) || r;
- r = ((glXChannelRectSyncSGIX = (PFNGLXCHANNELRECTSYNCSGIXPROC)glewGetProcAddress((const GLubyte*)"glXChannelRectSyncSGIX")) == NULL) || r;
- r = ((glXQueryChannelDeltasSGIX = (PFNGLXQUERYCHANNELDELTASSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryChannelDeltasSGIX")) == NULL) || r;
- r = ((glXQueryChannelRectSGIX = (PFNGLXQUERYCHANNELRECTSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryChannelRectSGIX")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SGIX_video_resize */
-
-#ifdef GLX_SGI_cushion
-
-static GLboolean _glewInit_GLX_SGI_cushion ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXCushionSGI = (PFNGLXCUSHIONSGIPROC)glewGetProcAddress((const GLubyte*)"glXCushionSGI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SGI_cushion */
-
-#ifdef GLX_SGI_make_current_read
-
-static GLboolean _glewInit_GLX_SGI_make_current_read ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXGetCurrentReadDrawableSGI = (PFNGLXGETCURRENTREADDRAWABLESGIPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentReadDrawableSGI")) == NULL) || r;
- r = ((glXMakeCurrentReadSGI = (PFNGLXMAKECURRENTREADSGIPROC)glewGetProcAddress((const GLubyte*)"glXMakeCurrentReadSGI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SGI_make_current_read */
-
-#ifdef GLX_SGI_swap_control
-
-static GLboolean _glewInit_GLX_SGI_swap_control ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXSwapIntervalSGI = (PFNGLXSWAPINTERVALSGIPROC)glewGetProcAddress((const GLubyte*)"glXSwapIntervalSGI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SGI_swap_control */
-
-#ifdef GLX_SGI_video_sync
-
-static GLboolean _glewInit_GLX_SGI_video_sync ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXGetVideoSyncSGI = (PFNGLXGETVIDEOSYNCSGIPROC)glewGetProcAddress((const GLubyte*)"glXGetVideoSyncSGI")) == NULL) || r;
- r = ((glXWaitVideoSyncSGI = (PFNGLXWAITVIDEOSYNCSGIPROC)glewGetProcAddress((const GLubyte*)"glXWaitVideoSyncSGI")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SGI_video_sync */
-
-#ifdef GLX_SUN_get_transparent_index
-
-static GLboolean _glewInit_GLX_SUN_get_transparent_index ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXGetTransparentIndexSUN = (PFNGLXGETTRANSPARENTINDEXSUNPROC)glewGetProcAddress((const GLubyte*)"glXGetTransparentIndexSUN")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SUN_get_transparent_index */
-
-#ifdef GLX_SUN_video_resize
-
-static GLboolean _glewInit_GLX_SUN_video_resize ()
-{
- GLboolean r = GL_FALSE;
-
- r = ((glXGetVideoResizeSUN = (PFNGLXGETVIDEORESIZESUNPROC)glewGetProcAddress((const GLubyte*)"glXGetVideoResizeSUN")) == NULL) || r;
- r = ((glXVideoResizeSUN = (PFNGLXVIDEORESIZESUNPROC)glewGetProcAddress((const GLubyte*)"glXVideoResizeSUN")) == NULL) || r;
-
- return r;
-}
-
-#endif /* GLX_SUN_video_resize */
-
-/* ------------------------------------------------------------------------ */
-
-GLboolean glxewGetExtension (const char* name)
-{
- const GLubyte* start;
- const GLubyte* end;
-
- if (glXGetCurrentDisplay == NULL) return GL_FALSE;
- start = (const GLubyte*)glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS);
- if (0 == start) return GL_FALSE;
- end = start + _glewStrLen(start);
- return _glewSearchExtension(name, start, end);
-}
-
-GLenum glxewInit ()
-{
- Display* display;
- int major, minor;
- const GLubyte* extStart;
- const GLubyte* extEnd;
- /* initialize core GLX 1.2 */
- if (_glewInit_GLX_VERSION_1_2()) return GLEW_ERROR_GLX_VERSION_11_ONLY;
- /* check for a display */
- display = glXGetCurrentDisplay();
- if (display == NULL) return GLEW_ERROR_NO_GLX_DISPLAY;
- /* initialize flags */
- GLXEW_VERSION_1_0 = GL_TRUE;
- GLXEW_VERSION_1_1 = GL_TRUE;
- GLXEW_VERSION_1_2 = GL_TRUE;
- GLXEW_VERSION_1_3 = GL_TRUE;
- GLXEW_VERSION_1_4 = GL_TRUE;
- /* query GLX version */
- glXQueryVersion(display, &major, &minor);
- if (major == 1 && minor <= 3)
- {
- switch (minor)
- {
- case 3:
- GLXEW_VERSION_1_4 = GL_FALSE;
- break;
- case 2:
- GLXEW_VERSION_1_4 = GL_FALSE;
- GLXEW_VERSION_1_3 = GL_FALSE;
- break;
- default:
- return GLEW_ERROR_GLX_VERSION_11_ONLY;
- break;
- }
- }
- /* query GLX extension string */
- extStart = 0;
- if (glXGetCurrentDisplay != NULL)
- extStart = (const GLubyte*)glXGetClientString(display, GLX_EXTENSIONS);
- if (extStart == 0)
- extStart = (const GLubyte *)"";
- extEnd = extStart + _glewStrLen(extStart);
- /* initialize extensions */
-#ifdef GLX_VERSION_1_3
- if (glewExperimental || GLXEW_VERSION_1_3) GLXEW_VERSION_1_3 = !_glewInit_GLX_VERSION_1_3();
-#endif /* GLX_VERSION_1_3 */
-#ifdef GLX_3DFX_multisample
- GLXEW_3DFX_multisample = _glewSearchExtension("GLX_3DFX_multisample", extStart, extEnd);
-#endif /* GLX_3DFX_multisample */
-#ifdef GLX_AMD_gpu_association
- GLXEW_AMD_gpu_association = _glewSearchExtension("GLX_AMD_gpu_association", extStart, extEnd);
- if (glewExperimental || GLXEW_AMD_gpu_association) GLXEW_AMD_gpu_association = !_glewInit_GLX_AMD_gpu_association();
-#endif /* GLX_AMD_gpu_association */
-#ifdef GLX_ARB_context_flush_control
- GLXEW_ARB_context_flush_control = _glewSearchExtension("GLX_ARB_context_flush_control", extStart, extEnd);
-#endif /* GLX_ARB_context_flush_control */
-#ifdef GLX_ARB_create_context
- GLXEW_ARB_create_context = _glewSearchExtension("GLX_ARB_create_context", extStart, extEnd);
- if (glewExperimental || GLXEW_ARB_create_context) GLXEW_ARB_create_context = !_glewInit_GLX_ARB_create_context();
-#endif /* GLX_ARB_create_context */
-#ifdef GLX_ARB_create_context_no_error
- GLXEW_ARB_create_context_no_error = _glewSearchExtension("GLX_ARB_create_context_no_error", extStart, extEnd);
-#endif /* GLX_ARB_create_context_no_error */
-#ifdef GLX_ARB_create_context_profile
- GLXEW_ARB_create_context_profile = _glewSearchExtension("GLX_ARB_create_context_profile", extStart, extEnd);
-#endif /* GLX_ARB_create_context_profile */
-#ifdef GLX_ARB_create_context_robustness
- GLXEW_ARB_create_context_robustness = _glewSearchExtension("GLX_ARB_create_context_robustness", extStart, extEnd);
-#endif /* GLX_ARB_create_context_robustness */
-#ifdef GLX_ARB_fbconfig_float
- GLXEW_ARB_fbconfig_float = _glewSearchExtension("GLX_ARB_fbconfig_float", extStart, extEnd);
-#endif /* GLX_ARB_fbconfig_float */
-#ifdef GLX_ARB_framebuffer_sRGB
- GLXEW_ARB_framebuffer_sRGB = _glewSearchExtension("GLX_ARB_framebuffer_sRGB", extStart, extEnd);
-#endif /* GLX_ARB_framebuffer_sRGB */
-#ifdef GLX_ARB_get_proc_address
- GLXEW_ARB_get_proc_address = _glewSearchExtension("GLX_ARB_get_proc_address", extStart, extEnd);
-#endif /* GLX_ARB_get_proc_address */
-#ifdef GLX_ARB_multisample
- GLXEW_ARB_multisample = _glewSearchExtension("GLX_ARB_multisample", extStart, extEnd);
-#endif /* GLX_ARB_multisample */
-#ifdef GLX_ARB_robustness_application_isolation
- GLXEW_ARB_robustness_application_isolation = _glewSearchExtension("GLX_ARB_robustness_application_isolation", extStart, extEnd);
-#endif /* GLX_ARB_robustness_application_isolation */
-#ifdef GLX_ARB_robustness_share_group_isolation
- GLXEW_ARB_robustness_share_group_isolation = _glewSearchExtension("GLX_ARB_robustness_share_group_isolation", extStart, extEnd);
-#endif /* GLX_ARB_robustness_share_group_isolation */
-#ifdef GLX_ARB_vertex_buffer_object
- GLXEW_ARB_vertex_buffer_object = _glewSearchExtension("GLX_ARB_vertex_buffer_object", extStart, extEnd);
-#endif /* GLX_ARB_vertex_buffer_object */
-#ifdef GLX_ATI_pixel_format_float
- GLXEW_ATI_pixel_format_float = _glewSearchExtension("GLX_ATI_pixel_format_float", extStart, extEnd);
-#endif /* GLX_ATI_pixel_format_float */
-#ifdef GLX_ATI_render_texture
- GLXEW_ATI_render_texture = _glewSearchExtension("GLX_ATI_render_texture", extStart, extEnd);
- if (glewExperimental || GLXEW_ATI_render_texture) GLXEW_ATI_render_texture = !_glewInit_GLX_ATI_render_texture();
-#endif /* GLX_ATI_render_texture */
-#ifdef GLX_EXT_buffer_age
- GLXEW_EXT_buffer_age = _glewSearchExtension("GLX_EXT_buffer_age", extStart, extEnd);
-#endif /* GLX_EXT_buffer_age */
-#ifdef GLX_EXT_context_priority
- GLXEW_EXT_context_priority = _glewSearchExtension("GLX_EXT_context_priority", extStart, extEnd);
-#endif /* GLX_EXT_context_priority */
-#ifdef GLX_EXT_create_context_es2_profile
- GLXEW_EXT_create_context_es2_profile = _glewSearchExtension("GLX_EXT_create_context_es2_profile", extStart, extEnd);
-#endif /* GLX_EXT_create_context_es2_profile */
-#ifdef GLX_EXT_create_context_es_profile
- GLXEW_EXT_create_context_es_profile = _glewSearchExtension("GLX_EXT_create_context_es_profile", extStart, extEnd);
-#endif /* GLX_EXT_create_context_es_profile */
-#ifdef GLX_EXT_fbconfig_packed_float
- GLXEW_EXT_fbconfig_packed_float = _glewSearchExtension("GLX_EXT_fbconfig_packed_float", extStart, extEnd);
-#endif /* GLX_EXT_fbconfig_packed_float */
-#ifdef GLX_EXT_framebuffer_sRGB
- GLXEW_EXT_framebuffer_sRGB = _glewSearchExtension("GLX_EXT_framebuffer_sRGB", extStart, extEnd);
-#endif /* GLX_EXT_framebuffer_sRGB */
-#ifdef GLX_EXT_import_context
- GLXEW_EXT_import_context = _glewSearchExtension("GLX_EXT_import_context", extStart, extEnd);
- if (glewExperimental || GLXEW_EXT_import_context) GLXEW_EXT_import_context = !_glewInit_GLX_EXT_import_context();
-#endif /* GLX_EXT_import_context */
-#ifdef GLX_EXT_libglvnd
- GLXEW_EXT_libglvnd = _glewSearchExtension("GLX_EXT_libglvnd", extStart, extEnd);
-#endif /* GLX_EXT_libglvnd */
-#ifdef GLX_EXT_no_config_context
- GLXEW_EXT_no_config_context = _glewSearchExtension("GLX_EXT_no_config_context", extStart, extEnd);
-#endif /* GLX_EXT_no_config_context */
-#ifdef GLX_EXT_scene_marker
- GLXEW_EXT_scene_marker = _glewSearchExtension("GLX_EXT_scene_marker", extStart, extEnd);
-#endif /* GLX_EXT_scene_marker */
-#ifdef GLX_EXT_stereo_tree
- GLXEW_EXT_stereo_tree = _glewSearchExtension("GLX_EXT_stereo_tree", extStart, extEnd);
-#endif /* GLX_EXT_stereo_tree */
-#ifdef GLX_EXT_swap_control
- GLXEW_EXT_swap_control = _glewSearchExtension("GLX_EXT_swap_control", extStart, extEnd);
- if (glewExperimental || GLXEW_EXT_swap_control) GLXEW_EXT_swap_control = !_glewInit_GLX_EXT_swap_control();
-#endif /* GLX_EXT_swap_control */
-#ifdef GLX_EXT_swap_control_tear
- GLXEW_EXT_swap_control_tear = _glewSearchExtension("GLX_EXT_swap_control_tear", extStart, extEnd);
-#endif /* GLX_EXT_swap_control_tear */
-#ifdef GLX_EXT_texture_from_pixmap
- GLXEW_EXT_texture_from_pixmap = _glewSearchExtension("GLX_EXT_texture_from_pixmap", extStart, extEnd);
- if (glewExperimental || GLXEW_EXT_texture_from_pixmap) GLXEW_EXT_texture_from_pixmap = !_glewInit_GLX_EXT_texture_from_pixmap();
-#endif /* GLX_EXT_texture_from_pixmap */
-#ifdef GLX_EXT_visual_info
- GLXEW_EXT_visual_info = _glewSearchExtension("GLX_EXT_visual_info", extStart, extEnd);
-#endif /* GLX_EXT_visual_info */
-#ifdef GLX_EXT_visual_rating
- GLXEW_EXT_visual_rating = _glewSearchExtension("GLX_EXT_visual_rating", extStart, extEnd);
-#endif /* GLX_EXT_visual_rating */
-#ifdef GLX_INTEL_swap_event
- GLXEW_INTEL_swap_event = _glewSearchExtension("GLX_INTEL_swap_event", extStart, extEnd);
-#endif /* GLX_INTEL_swap_event */
-#ifdef GLX_MESA_agp_offset
- GLXEW_MESA_agp_offset = _glewSearchExtension("GLX_MESA_agp_offset", extStart, extEnd);
- if (glewExperimental || GLXEW_MESA_agp_offset) GLXEW_MESA_agp_offset = !_glewInit_GLX_MESA_agp_offset();
-#endif /* GLX_MESA_agp_offset */
-#ifdef GLX_MESA_copy_sub_buffer
- GLXEW_MESA_copy_sub_buffer = _glewSearchExtension("GLX_MESA_copy_sub_buffer", extStart, extEnd);
- if (glewExperimental || GLXEW_MESA_copy_sub_buffer) GLXEW_MESA_copy_sub_buffer = !_glewInit_GLX_MESA_copy_sub_buffer();
-#endif /* GLX_MESA_copy_sub_buffer */
-#ifdef GLX_MESA_pixmap_colormap
- GLXEW_MESA_pixmap_colormap = _glewSearchExtension("GLX_MESA_pixmap_colormap", extStart, extEnd);
- if (glewExperimental || GLXEW_MESA_pixmap_colormap) GLXEW_MESA_pixmap_colormap = !_glewInit_GLX_MESA_pixmap_colormap();
-#endif /* GLX_MESA_pixmap_colormap */
-#ifdef GLX_MESA_query_renderer
- GLXEW_MESA_query_renderer = _glewSearchExtension("GLX_MESA_query_renderer", extStart, extEnd);
- if (glewExperimental || GLXEW_MESA_query_renderer) GLXEW_MESA_query_renderer = !_glewInit_GLX_MESA_query_renderer();
-#endif /* GLX_MESA_query_renderer */
-#ifdef GLX_MESA_release_buffers
- GLXEW_MESA_release_buffers = _glewSearchExtension("GLX_MESA_release_buffers", extStart, extEnd);
- if (glewExperimental || GLXEW_MESA_release_buffers) GLXEW_MESA_release_buffers = !_glewInit_GLX_MESA_release_buffers();
-#endif /* GLX_MESA_release_buffers */
-#ifdef GLX_MESA_set_3dfx_mode
- GLXEW_MESA_set_3dfx_mode = _glewSearchExtension("GLX_MESA_set_3dfx_mode", extStart, extEnd);
- if (glewExperimental || GLXEW_MESA_set_3dfx_mode) GLXEW_MESA_set_3dfx_mode = !_glewInit_GLX_MESA_set_3dfx_mode();
-#endif /* GLX_MESA_set_3dfx_mode */
-#ifdef GLX_MESA_swap_control
- GLXEW_MESA_swap_control = _glewSearchExtension("GLX_MESA_swap_control", extStart, extEnd);
- if (glewExperimental || GLXEW_MESA_swap_control) GLXEW_MESA_swap_control = !_glewInit_GLX_MESA_swap_control();
-#endif /* GLX_MESA_swap_control */
-#ifdef GLX_NV_copy_buffer
- GLXEW_NV_copy_buffer = _glewSearchExtension("GLX_NV_copy_buffer", extStart, extEnd);
- if (glewExperimental || GLXEW_NV_copy_buffer) GLXEW_NV_copy_buffer = !_glewInit_GLX_NV_copy_buffer();
-#endif /* GLX_NV_copy_buffer */
-#ifdef GLX_NV_copy_image
- GLXEW_NV_copy_image = _glewSearchExtension("GLX_NV_copy_image", extStart, extEnd);
- if (glewExperimental || GLXEW_NV_copy_image) GLXEW_NV_copy_image = !_glewInit_GLX_NV_copy_image();
-#endif /* GLX_NV_copy_image */
-#ifdef GLX_NV_delay_before_swap
- GLXEW_NV_delay_before_swap = _glewSearchExtension("GLX_NV_delay_before_swap", extStart, extEnd);
- if (glewExperimental || GLXEW_NV_delay_before_swap) GLXEW_NV_delay_before_swap = !_glewInit_GLX_NV_delay_before_swap();
-#endif /* GLX_NV_delay_before_swap */
-#ifdef GLX_NV_float_buffer
- GLXEW_NV_float_buffer = _glewSearchExtension("GLX_NV_float_buffer", extStart, extEnd);
-#endif /* GLX_NV_float_buffer */
-#ifdef GLX_NV_multigpu_context
- GLXEW_NV_multigpu_context = _glewSearchExtension("GLX_NV_multigpu_context", extStart, extEnd);
-#endif /* GLX_NV_multigpu_context */
-#ifdef GLX_NV_multisample_coverage
- GLXEW_NV_multisample_coverage = _glewSearchExtension("GLX_NV_multisample_coverage", extStart, extEnd);
-#endif /* GLX_NV_multisample_coverage */
-#ifdef GLX_NV_present_video
- GLXEW_NV_present_video = _glewSearchExtension("GLX_NV_present_video", extStart, extEnd);
- if (glewExperimental || GLXEW_NV_present_video) GLXEW_NV_present_video = !_glewInit_GLX_NV_present_video();
-#endif /* GLX_NV_present_video */
-#ifdef GLX_NV_robustness_video_memory_purge
- GLXEW_NV_robustness_video_memory_purge = _glewSearchExtension("GLX_NV_robustness_video_memory_purge", extStart, extEnd);
-#endif /* GLX_NV_robustness_video_memory_purge */
-#ifdef GLX_NV_swap_group
- GLXEW_NV_swap_group = _glewSearchExtension("GLX_NV_swap_group", extStart, extEnd);
- if (glewExperimental || GLXEW_NV_swap_group) GLXEW_NV_swap_group = !_glewInit_GLX_NV_swap_group();
-#endif /* GLX_NV_swap_group */
-#ifdef GLX_NV_vertex_array_range
- GLXEW_NV_vertex_array_range = _glewSearchExtension("GLX_NV_vertex_array_range", extStart, extEnd);
- if (glewExperimental || GLXEW_NV_vertex_array_range) GLXEW_NV_vertex_array_range = !_glewInit_GLX_NV_vertex_array_range();
-#endif /* GLX_NV_vertex_array_range */
-#ifdef GLX_NV_video_capture
- GLXEW_NV_video_capture = _glewSearchExtension("GLX_NV_video_capture", extStart, extEnd);
- if (glewExperimental || GLXEW_NV_video_capture) GLXEW_NV_video_capture = !_glewInit_GLX_NV_video_capture();
-#endif /* GLX_NV_video_capture */
-#ifdef GLX_NV_video_out
- GLXEW_NV_video_out = _glewSearchExtension("GLX_NV_video_out", extStart, extEnd);
- if (glewExperimental || GLXEW_NV_video_out) GLXEW_NV_video_out = !_glewInit_GLX_NV_video_out();
-#endif /* GLX_NV_video_out */
-#ifdef GLX_OML_swap_method
- GLXEW_OML_swap_method = _glewSearchExtension("GLX_OML_swap_method", extStart, extEnd);
-#endif /* GLX_OML_swap_method */
-#ifdef GLX_OML_sync_control
- GLXEW_OML_sync_control = _glewSearchExtension("GLX_OML_sync_control", extStart, extEnd);
- if (glewExperimental || GLXEW_OML_sync_control) GLXEW_OML_sync_control = !_glewInit_GLX_OML_sync_control();
-#endif /* GLX_OML_sync_control */
-#ifdef GLX_SGIS_blended_overlay
- GLXEW_SGIS_blended_overlay = _glewSearchExtension("GLX_SGIS_blended_overlay", extStart, extEnd);
-#endif /* GLX_SGIS_blended_overlay */
-#ifdef GLX_SGIS_color_range
- GLXEW_SGIS_color_range = _glewSearchExtension("GLX_SGIS_color_range", extStart, extEnd);
-#endif /* GLX_SGIS_color_range */
-#ifdef GLX_SGIS_multisample
- GLXEW_SGIS_multisample = _glewSearchExtension("GLX_SGIS_multisample", extStart, extEnd);
-#endif /* GLX_SGIS_multisample */
-#ifdef GLX_SGIS_shared_multisample
- GLXEW_SGIS_shared_multisample = _glewSearchExtension("GLX_SGIS_shared_multisample", extStart, extEnd);
-#endif /* GLX_SGIS_shared_multisample */
-#ifdef GLX_SGIX_fbconfig
- GLXEW_SGIX_fbconfig = _glewSearchExtension("GLX_SGIX_fbconfig", extStart, extEnd);
- if (glewExperimental || GLXEW_SGIX_fbconfig) GLXEW_SGIX_fbconfig = !_glewInit_GLX_SGIX_fbconfig();
-#endif /* GLX_SGIX_fbconfig */
-#ifdef GLX_SGIX_hyperpipe
- GLXEW_SGIX_hyperpipe = _glewSearchExtension("GLX_SGIX_hyperpipe", extStart, extEnd);
- if (glewExperimental || GLXEW_SGIX_hyperpipe) GLXEW_SGIX_hyperpipe = !_glewInit_GLX_SGIX_hyperpipe();
-#endif /* GLX_SGIX_hyperpipe */
-#ifdef GLX_SGIX_pbuffer
- GLXEW_SGIX_pbuffer = _glewSearchExtension("GLX_SGIX_pbuffer", extStart, extEnd);
- if (glewExperimental || GLXEW_SGIX_pbuffer) GLXEW_SGIX_pbuffer = !_glewInit_GLX_SGIX_pbuffer();
-#endif /* GLX_SGIX_pbuffer */
-#ifdef GLX_SGIX_swap_barrier
- GLXEW_SGIX_swap_barrier = _glewSearchExtension("GLX_SGIX_swap_barrier", extStart, extEnd);
- if (glewExperimental || GLXEW_SGIX_swap_barrier) GLXEW_SGIX_swap_barrier = !_glewInit_GLX_SGIX_swap_barrier();
-#endif /* GLX_SGIX_swap_barrier */
-#ifdef GLX_SGIX_swap_group
- GLXEW_SGIX_swap_group = _glewSearchExtension("GLX_SGIX_swap_group", extStart, extEnd);
- if (glewExperimental || GLXEW_SGIX_swap_group) GLXEW_SGIX_swap_group = !_glewInit_GLX_SGIX_swap_group();
-#endif /* GLX_SGIX_swap_group */
-#ifdef GLX_SGIX_video_resize
- GLXEW_SGIX_video_resize = _glewSearchExtension("GLX_SGIX_video_resize", extStart, extEnd);
- if (glewExperimental || GLXEW_SGIX_video_resize) GLXEW_SGIX_video_resize = !_glewInit_GLX_SGIX_video_resize();
-#endif /* GLX_SGIX_video_resize */
-#ifdef GLX_SGIX_visual_select_group
- GLXEW_SGIX_visual_select_group = _glewSearchExtension("GLX_SGIX_visual_select_group", extStart, extEnd);
-#endif /* GLX_SGIX_visual_select_group */
-#ifdef GLX_SGI_cushion
- GLXEW_SGI_cushion = _glewSearchExtension("GLX_SGI_cushion", extStart, extEnd);
- if (glewExperimental || GLXEW_SGI_cushion) GLXEW_SGI_cushion = !_glewInit_GLX_SGI_cushion();
-#endif /* GLX_SGI_cushion */
-#ifdef GLX_SGI_make_current_read
- GLXEW_SGI_make_current_read = _glewSearchExtension("GLX_SGI_make_current_read", extStart, extEnd);
- if (glewExperimental || GLXEW_SGI_make_current_read) GLXEW_SGI_make_current_read = !_glewInit_GLX_SGI_make_current_read();
-#endif /* GLX_SGI_make_current_read */
-#ifdef GLX_SGI_swap_control
- GLXEW_SGI_swap_control = _glewSearchExtension("GLX_SGI_swap_control", extStart, extEnd);
- if (glewExperimental || GLXEW_SGI_swap_control) GLXEW_SGI_swap_control = !_glewInit_GLX_SGI_swap_control();
-#endif /* GLX_SGI_swap_control */
-#ifdef GLX_SGI_video_sync
- GLXEW_SGI_video_sync = _glewSearchExtension("GLX_SGI_video_sync", extStart, extEnd);
- if (glewExperimental || GLXEW_SGI_video_sync) GLXEW_SGI_video_sync = !_glewInit_GLX_SGI_video_sync();
-#endif /* GLX_SGI_video_sync */
-#ifdef GLX_SUN_get_transparent_index
- GLXEW_SUN_get_transparent_index = _glewSearchExtension("GLX_SUN_get_transparent_index", extStart, extEnd);
- if (glewExperimental || GLXEW_SUN_get_transparent_index) GLXEW_SUN_get_transparent_index = !_glewInit_GLX_SUN_get_transparent_index();
-#endif /* GLX_SUN_get_transparent_index */
-#ifdef GLX_SUN_video_resize
- GLXEW_SUN_video_resize = _glewSearchExtension("GLX_SUN_video_resize", extStart, extEnd);
- if (glewExperimental || GLXEW_SUN_video_resize) GLXEW_SUN_video_resize = !_glewInit_GLX_SUN_video_resize();
-#endif /* GLX_SUN_video_resize */
-
- return GLEW_OK;
-}
-
-#endif /* !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */
-
-/* ------------------------------------------------------------------------ */
-
-const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error)
-{
- static const GLubyte* _glewErrorString[] =
- {
- (const GLubyte*)"No error",
- (const GLubyte*)"Missing GL version",
- (const GLubyte*)"GL 1.1 and up are not supported",
- (const GLubyte*)"GLX 1.2 and up are not supported",
- (const GLubyte*)"Unknown error"
- };
- const size_t max_error = sizeof(_glewErrorString)/sizeof(*_glewErrorString) - 1;
- return _glewErrorString[(size_t)error > max_error ? max_error : (size_t)error];
-}
-
-const GLubyte * GLEWAPIENTRY glewGetString (GLenum name)
-{
- static const GLubyte* _glewString[] =
- {
- (const GLubyte*)NULL,
- (const GLubyte*)"2.2.0",
- (const GLubyte*)"2",
- (const GLubyte*)"2",
- (const GLubyte*)"0"
- };
- const size_t max_string = sizeof(_glewString)/sizeof(*_glewString) - 1;
- return _glewString[(size_t)name > max_string ? 0 : (size_t)name];
-}
-
-/* ------------------------------------------------------------------------ */
-
-GLboolean glewExperimental = GL_FALSE;
-
-GLenum GLEWAPIENTRY glewInit (void)
-{
- GLenum r;
-#if defined(GLEW_EGL)
- PFNEGLGETCURRENTDISPLAYPROC getCurrentDisplay = NULL;
-#endif
- r = glewContextInit();
- if ( r != 0 ) return r;
-#if defined(GLEW_EGL)
- getCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) glewGetProcAddress("eglGetCurrentDisplay");
- return eglewInit(getCurrentDisplay());
-#elif defined(GLEW_OSMESA) || defined(__ANDROID__) || defined(__native_client__) || defined(__HAIKU__)
- return r;
-#elif defined(_WIN32)
- return wglewInit();
-#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) /* _UNIX */
- return glxewInit();
-#else
- return r;
-#endif /* _WIN32 */
-}
-
-#if defined(_WIN32) && defined(GLEW_BUILD) && defined(__GNUC__)
-/* GCC requires a DLL entry point even without any standard library included. */
-/* Types extracted from windows.h to avoid polluting the rest of the file. */
-int __stdcall DllMainCRTStartup(void* instance, unsigned reason, void* reserved)
-{
- (void) instance;
- (void) reason;
- (void) reserved;
- return 1;
-}
-#endif
-GLboolean GLEWAPIENTRY glewIsSupported (const char* name)
-{
- const GLubyte* pos = (const GLubyte*)name;
- GLuint len = _glewStrLen(pos);
- GLboolean ret = GL_TRUE;
- while (ret && len > 0)
- {
- if (_glewStrSame1(&pos, &len, (const GLubyte*)"GL_", 3))
- {
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"VERSION_", 8))
- {
-#ifdef GL_VERSION_1_2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_2", 3))
- {
- ret = GLEW_VERSION_1_2;
- continue;
- }
-#endif
-#ifdef GL_VERSION_1_2_1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_2_1", 5))
- {
- ret = GLEW_VERSION_1_2_1;
- continue;
- }
-#endif
-#ifdef GL_VERSION_1_3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_3", 3))
- {
- ret = GLEW_VERSION_1_3;
- continue;
- }
-#endif
-#ifdef GL_VERSION_1_4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_4", 3))
- {
- ret = GLEW_VERSION_1_4;
- continue;
- }
-#endif
-#ifdef GL_VERSION_1_5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_5", 3))
- {
- ret = GLEW_VERSION_1_5;
- continue;
- }
-#endif
-#ifdef GL_VERSION_2_0
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"2_0", 3))
- {
- ret = GLEW_VERSION_2_0;
- continue;
- }
-#endif
-#ifdef GL_VERSION_2_1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"2_1", 3))
- {
- ret = GLEW_VERSION_2_1;
- continue;
- }
-#endif
-#ifdef GL_VERSION_3_0
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"3_0", 3))
- {
- ret = GLEW_VERSION_3_0;
- continue;
- }
-#endif
-#ifdef GL_VERSION_3_1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"3_1", 3))
- {
- ret = GLEW_VERSION_3_1;
- continue;
- }
-#endif
-#ifdef GL_VERSION_3_2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"3_2", 3))
- {
- ret = GLEW_VERSION_3_2;
- continue;
- }
-#endif
-#ifdef GL_VERSION_3_3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"3_3", 3))
- {
- ret = GLEW_VERSION_3_3;
- continue;
- }
-#endif
-#ifdef GL_VERSION_4_0
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_0", 3))
- {
- ret = GLEW_VERSION_4_0;
- continue;
- }
-#endif
-#ifdef GL_VERSION_4_1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_1", 3))
- {
- ret = GLEW_VERSION_4_1;
- continue;
- }
-#endif
-#ifdef GL_VERSION_4_2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_2", 3))
- {
- ret = GLEW_VERSION_4_2;
- continue;
- }
-#endif
-#ifdef GL_VERSION_4_3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_3", 3))
- {
- ret = GLEW_VERSION_4_3;
- continue;
- }
-#endif
-#ifdef GL_VERSION_4_4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_4", 3))
- {
- ret = GLEW_VERSION_4_4;
- continue;
- }
-#endif
-#ifdef GL_VERSION_4_5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_5", 3))
- {
- ret = GLEW_VERSION_4_5;
- continue;
- }
-#endif
-#ifdef GL_VERSION_4_6
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_6", 3))
- {
- ret = GLEW_VERSION_4_6;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"3DFX_", 5))
- {
-#ifdef GL_3DFX_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11))
- {
- ret = GLEW_3DFX_multisample;
- continue;
- }
-#endif
-#ifdef GL_3DFX_tbuffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"tbuffer", 7))
- {
- ret = GLEW_3DFX_tbuffer;
- continue;
- }
-#endif
-#ifdef GL_3DFX_texture_compression_FXT1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_FXT1", 24))
- {
- ret = GLEW_3DFX_texture_compression_FXT1;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"AMD_", 4))
- {
-#ifdef GL_AMD_blend_minmax_factor
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_minmax_factor", 19))
- {
- ret = GLEW_AMD_blend_minmax_factor;
- continue;
- }
-#endif
-#ifdef GL_AMD_compressed_3DC_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_3DC_texture", 22))
- {
- ret = GLEW_AMD_compressed_3DC_texture;
- continue;
- }
-#endif
-#ifdef GL_AMD_compressed_ATC_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_ATC_texture", 22))
- {
- ret = GLEW_AMD_compressed_ATC_texture;
- continue;
- }
-#endif
-#ifdef GL_AMD_conservative_depth
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_depth", 18))
- {
- ret = GLEW_AMD_conservative_depth;
- continue;
- }
-#endif
-#ifdef GL_AMD_debug_output
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug_output", 12))
- {
- ret = GLEW_AMD_debug_output;
- continue;
- }
-#endif
-#ifdef GL_AMD_depth_clamp_separate
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_clamp_separate", 20))
- {
- ret = GLEW_AMD_depth_clamp_separate;
- continue;
- }
-#endif
-#ifdef GL_AMD_draw_buffers_blend
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers_blend", 18))
- {
- ret = GLEW_AMD_draw_buffers_blend;
- continue;
- }
-#endif
-#ifdef GL_AMD_framebuffer_multisample_advanced
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample_advanced", 32))
- {
- ret = GLEW_AMD_framebuffer_multisample_advanced;
- continue;
- }
-#endif
-#ifdef GL_AMD_framebuffer_sample_positions
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sample_positions", 28))
- {
- ret = GLEW_AMD_framebuffer_sample_positions;
- continue;
- }
-#endif
-#ifdef GL_AMD_gcn_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gcn_shader", 10))
- {
- ret = GLEW_AMD_gcn_shader;
- continue;
- }
-#endif
-#ifdef GL_AMD_gpu_shader_half_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_half_float", 21))
- {
- ret = GLEW_AMD_gpu_shader_half_float;
- continue;
- }
-#endif
-#ifdef GL_AMD_gpu_shader_half_float_fetch
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_half_float_fetch", 27))
- {
- ret = GLEW_AMD_gpu_shader_half_float_fetch;
- continue;
- }
-#endif
-#ifdef GL_AMD_gpu_shader_int16
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_int16", 16))
- {
- ret = GLEW_AMD_gpu_shader_int16;
- continue;
- }
-#endif
-#ifdef GL_AMD_gpu_shader_int64
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_int64", 16))
- {
- ret = GLEW_AMD_gpu_shader_int64;
- continue;
- }
-#endif
-#ifdef GL_AMD_interleaved_elements
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"interleaved_elements", 20))
- {
- ret = GLEW_AMD_interleaved_elements;
- continue;
- }
-#endif
-#ifdef GL_AMD_multi_draw_indirect
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_draw_indirect", 19))
- {
- ret = GLEW_AMD_multi_draw_indirect;
- continue;
- }
-#endif
-#ifdef GL_AMD_name_gen_delete
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"name_gen_delete", 15))
- {
- ret = GLEW_AMD_name_gen_delete;
- continue;
- }
-#endif
-#ifdef GL_AMD_occlusion_query_event
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query_event", 21))
- {
- ret = GLEW_AMD_occlusion_query_event;
- continue;
- }
-#endif
-#ifdef GL_AMD_performance_monitor
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"performance_monitor", 19))
- {
- ret = GLEW_AMD_performance_monitor;
- continue;
- }
-#endif
-#ifdef GL_AMD_pinned_memory
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pinned_memory", 13))
- {
- ret = GLEW_AMD_pinned_memory;
- continue;
- }
-#endif
-#ifdef GL_AMD_program_binary_Z400
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary_Z400", 19))
- {
- ret = GLEW_AMD_program_binary_Z400;
- continue;
- }
-#endif
-#ifdef GL_AMD_query_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_buffer_object", 19))
- {
- ret = GLEW_AMD_query_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_AMD_sample_positions
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_positions", 16))
- {
- ret = GLEW_AMD_sample_positions;
- continue;
- }
-#endif
-#ifdef GL_AMD_seamless_cubemap_per_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"seamless_cubemap_per_texture", 28))
- {
- ret = GLEW_AMD_seamless_cubemap_per_texture;
- continue;
- }
-#endif
-#ifdef GL_AMD_shader_atomic_counter_ops
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_counter_ops", 25))
- {
- ret = GLEW_AMD_shader_atomic_counter_ops;
- continue;
- }
-#endif
-#ifdef GL_AMD_shader_ballot
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_ballot", 13))
- {
- ret = GLEW_AMD_shader_ballot;
- continue;
- }
-#endif
-#ifdef GL_AMD_shader_explicit_vertex_parameter
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_explicit_vertex_parameter", 32))
- {
- ret = GLEW_AMD_shader_explicit_vertex_parameter;
- continue;
- }
-#endif
-#ifdef GL_AMD_shader_image_load_store_lod
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_load_store_lod", 27))
- {
- ret = GLEW_AMD_shader_image_load_store_lod;
- continue;
- }
-#endif
-#ifdef GL_AMD_shader_stencil_export
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_stencil_export", 21))
- {
- ret = GLEW_AMD_shader_stencil_export;
- continue;
- }
-#endif
-#ifdef GL_AMD_shader_stencil_value_export
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_stencil_value_export", 27))
- {
- ret = GLEW_AMD_shader_stencil_value_export;
- continue;
- }
-#endif
-#ifdef GL_AMD_shader_trinary_minmax
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_trinary_minmax", 21))
- {
- ret = GLEW_AMD_shader_trinary_minmax;
- continue;
- }
-#endif
-#ifdef GL_AMD_sparse_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture", 14))
- {
- ret = GLEW_AMD_sparse_texture;
- continue;
- }
-#endif
-#ifdef GL_AMD_stencil_operation_extended
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_operation_extended", 26))
- {
- ret = GLEW_AMD_stencil_operation_extended;
- continue;
- }
-#endif
-#ifdef GL_AMD_texture_gather_bias_lod
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_gather_bias_lod", 23))
- {
- ret = GLEW_AMD_texture_gather_bias_lod;
- continue;
- }
-#endif
-#ifdef GL_AMD_texture_texture4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_texture4", 16))
- {
- ret = GLEW_AMD_texture_texture4;
- continue;
- }
-#endif
-#ifdef GL_AMD_transform_feedback3_lines_triangles
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback3_lines_triangles", 35))
- {
- ret = GLEW_AMD_transform_feedback3_lines_triangles;
- continue;
- }
-#endif
-#ifdef GL_AMD_transform_feedback4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback4", 19))
- {
- ret = GLEW_AMD_transform_feedback4;
- continue;
- }
-#endif
-#ifdef GL_AMD_vertex_shader_layer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader_layer", 19))
- {
- ret = GLEW_AMD_vertex_shader_layer;
- continue;
- }
-#endif
-#ifdef GL_AMD_vertex_shader_tessellator
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader_tessellator", 25))
- {
- ret = GLEW_AMD_vertex_shader_tessellator;
- continue;
- }
-#endif
-#ifdef GL_AMD_vertex_shader_viewport_index
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader_viewport_index", 28))
- {
- ret = GLEW_AMD_vertex_shader_viewport_index;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANDROID_", 8))
- {
-#ifdef GL_ANDROID_extension_pack_es31a
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"extension_pack_es31a", 20))
- {
- ret = GLEW_ANDROID_extension_pack_es31a;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANGLE_", 6))
- {
-#ifdef GL_ANGLE_depth_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture", 13))
- {
- ret = GLEW_ANGLE_depth_texture;
- continue;
- }
-#endif
-#ifdef GL_ANGLE_framebuffer_blit
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_blit", 16))
- {
- ret = GLEW_ANGLE_framebuffer_blit;
- continue;
- }
-#endif
-#ifdef GL_ANGLE_framebuffer_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23))
- {
- ret = GLEW_ANGLE_framebuffer_multisample;
- continue;
- }
-#endif
-#ifdef GL_ANGLE_instanced_arrays
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16))
- {
- ret = GLEW_ANGLE_instanced_arrays;
- continue;
- }
-#endif
-#ifdef GL_ANGLE_pack_reverse_row_order
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pack_reverse_row_order", 22))
- {
- ret = GLEW_ANGLE_pack_reverse_row_order;
- continue;
- }
-#endif
-#ifdef GL_ANGLE_program_binary
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary", 14))
- {
- ret = GLEW_ANGLE_program_binary;
- continue;
- }
-#endif
-#ifdef GL_ANGLE_texture_compression_dxt1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_dxt1", 24))
- {
- ret = GLEW_ANGLE_texture_compression_dxt1;
- continue;
- }
-#endif
-#ifdef GL_ANGLE_texture_compression_dxt3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_dxt3", 24))
- {
- ret = GLEW_ANGLE_texture_compression_dxt3;
- continue;
- }
-#endif
-#ifdef GL_ANGLE_texture_compression_dxt5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_dxt5", 24))
- {
- ret = GLEW_ANGLE_texture_compression_dxt5;
- continue;
- }
-#endif
-#ifdef GL_ANGLE_texture_usage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_usage", 13))
- {
- ret = GLEW_ANGLE_texture_usage;
- continue;
- }
-#endif
-#ifdef GL_ANGLE_timer_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"timer_query", 11))
- {
- ret = GLEW_ANGLE_timer_query;
- continue;
- }
-#endif
-#ifdef GL_ANGLE_translated_shader_source
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"translated_shader_source", 24))
- {
- ret = GLEW_ANGLE_translated_shader_source;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"APPLE_", 6))
- {
-#ifdef GL_APPLE_aux_depth_stencil
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"aux_depth_stencil", 17))
- {
- ret = GLEW_APPLE_aux_depth_stencil;
- continue;
- }
-#endif
-#ifdef GL_APPLE_client_storage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_storage", 14))
- {
- ret = GLEW_APPLE_client_storage;
- continue;
- }
-#endif
-#ifdef GL_APPLE_clip_distance
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_distance", 13))
- {
- ret = GLEW_APPLE_clip_distance;
- continue;
- }
-#endif
-#ifdef GL_APPLE_color_buffer_packed_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_packed_float", 25))
- {
- ret = GLEW_APPLE_color_buffer_packed_float;
- continue;
- }
-#endif
-#ifdef GL_APPLE_copy_texture_levels
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_texture_levels", 19))
- {
- ret = GLEW_APPLE_copy_texture_levels;
- continue;
- }
-#endif
-#ifdef GL_APPLE_element_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"element_array", 13))
- {
- ret = GLEW_APPLE_element_array;
- continue;
- }
-#endif
-#ifdef GL_APPLE_fence
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fence", 5))
- {
- ret = GLEW_APPLE_fence;
- continue;
- }
-#endif
-#ifdef GL_APPLE_float_pixels
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_pixels", 12))
- {
- ret = GLEW_APPLE_float_pixels;
- continue;
- }
-#endif
-#ifdef GL_APPLE_flush_buffer_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"flush_buffer_range", 18))
- {
- ret = GLEW_APPLE_flush_buffer_range;
- continue;
- }
-#endif
-#ifdef GL_APPLE_framebuffer_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23))
- {
- ret = GLEW_APPLE_framebuffer_multisample;
- continue;
- }
-#endif
-#ifdef GL_APPLE_object_purgeable
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"object_purgeable", 16))
- {
- ret = GLEW_APPLE_object_purgeable;
- continue;
- }
-#endif
-#ifdef GL_APPLE_pixel_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_buffer", 12))
- {
- ret = GLEW_APPLE_pixel_buffer;
- continue;
- }
-#endif
-#ifdef GL_APPLE_rgb_422
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"rgb_422", 7))
- {
- ret = GLEW_APPLE_rgb_422;
- continue;
- }
-#endif
-#ifdef GL_APPLE_row_bytes
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"row_bytes", 9))
- {
- ret = GLEW_APPLE_row_bytes;
- continue;
- }
-#endif
-#ifdef GL_APPLE_specular_vector
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"specular_vector", 15))
- {
- ret = GLEW_APPLE_specular_vector;
- continue;
- }
-#endif
-#ifdef GL_APPLE_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync", 4))
- {
- ret = GLEW_APPLE_sync;
- continue;
- }
-#endif
-#ifdef GL_APPLE_texture_2D_limited_npot
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_2D_limited_npot", 23))
- {
- ret = GLEW_APPLE_texture_2D_limited_npot;
- continue;
- }
-#endif
-#ifdef GL_APPLE_texture_format_BGRA8888
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_format_BGRA8888", 23))
- {
- ret = GLEW_APPLE_texture_format_BGRA8888;
- continue;
- }
-#endif
-#ifdef GL_APPLE_texture_max_level
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_max_level", 17))
- {
- ret = GLEW_APPLE_texture_max_level;
- continue;
- }
-#endif
-#ifdef GL_APPLE_texture_packed_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_packed_float", 20))
- {
- ret = GLEW_APPLE_texture_packed_float;
- continue;
- }
-#endif
-#ifdef GL_APPLE_texture_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_range", 13))
- {
- ret = GLEW_APPLE_texture_range;
- continue;
- }
-#endif
-#ifdef GL_APPLE_transform_hint
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_hint", 14))
- {
- ret = GLEW_APPLE_transform_hint;
- continue;
- }
-#endif
-#ifdef GL_APPLE_vertex_array_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19))
- {
- ret = GLEW_APPLE_vertex_array_object;
- continue;
- }
-#endif
-#ifdef GL_APPLE_vertex_array_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range", 18))
- {
- ret = GLEW_APPLE_vertex_array_range;
- continue;
- }
-#endif
-#ifdef GL_APPLE_vertex_program_evaluators
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program_evaluators", 25))
- {
- ret = GLEW_APPLE_vertex_program_evaluators;
- continue;
- }
-#endif
-#ifdef GL_APPLE_ycbcr_422
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycbcr_422", 9))
- {
- ret = GLEW_APPLE_ycbcr_422;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARB_", 4))
- {
-#ifdef GL_ARB_ES2_compatibility
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES2_compatibility", 17))
- {
- ret = GLEW_ARB_ES2_compatibility;
- continue;
- }
-#endif
-#ifdef GL_ARB_ES3_1_compatibility
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES3_1_compatibility", 19))
- {
- ret = GLEW_ARB_ES3_1_compatibility;
- continue;
- }
-#endif
-#ifdef GL_ARB_ES3_2_compatibility
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES3_2_compatibility", 19))
- {
- ret = GLEW_ARB_ES3_2_compatibility;
- continue;
- }
-#endif
-#ifdef GL_ARB_ES3_compatibility
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES3_compatibility", 17))
- {
- ret = GLEW_ARB_ES3_compatibility;
- continue;
- }
-#endif
-#ifdef GL_ARB_arrays_of_arrays
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"arrays_of_arrays", 16))
- {
- ret = GLEW_ARB_arrays_of_arrays;
- continue;
- }
-#endif
-#ifdef GL_ARB_base_instance
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"base_instance", 13))
- {
- ret = GLEW_ARB_base_instance;
- continue;
- }
-#endif
-#ifdef GL_ARB_bindless_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_texture", 16))
- {
- ret = GLEW_ARB_bindless_texture;
- continue;
- }
-#endif
-#ifdef GL_ARB_blend_func_extended
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_extended", 19))
- {
- ret = GLEW_ARB_blend_func_extended;
- continue;
- }
-#endif
-#ifdef GL_ARB_buffer_storage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_storage", 14))
- {
- ret = GLEW_ARB_buffer_storage;
- continue;
- }
-#endif
-#ifdef GL_ARB_cl_event
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"cl_event", 8))
- {
- ret = GLEW_ARB_cl_event;
- continue;
- }
-#endif
-#ifdef GL_ARB_clear_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clear_buffer_object", 19))
- {
- ret = GLEW_ARB_clear_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_ARB_clear_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clear_texture", 13))
- {
- ret = GLEW_ARB_clear_texture;
- continue;
- }
-#endif
-#ifdef GL_ARB_clip_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_control", 12))
- {
- ret = GLEW_ARB_clip_control;
- continue;
- }
-#endif
-#ifdef GL_ARB_color_buffer_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_float", 18))
- {
- ret = GLEW_ARB_color_buffer_float;
- continue;
- }
-#endif
-#ifdef GL_ARB_compatibility
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compatibility", 13))
- {
- ret = GLEW_ARB_compatibility;
- continue;
- }
-#endif
-#ifdef GL_ARB_compressed_texture_pixel_storage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_texture_pixel_storage", 32))
- {
- ret = GLEW_ARB_compressed_texture_pixel_storage;
- continue;
- }
-#endif
-#ifdef GL_ARB_compute_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compute_shader", 14))
- {
- ret = GLEW_ARB_compute_shader;
- continue;
- }
-#endif
-#ifdef GL_ARB_compute_variable_group_size
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compute_variable_group_size", 27))
- {
- ret = GLEW_ARB_compute_variable_group_size;
- continue;
- }
-#endif
-#ifdef GL_ARB_conditional_render_inverted
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conditional_render_inverted", 27))
- {
- ret = GLEW_ARB_conditional_render_inverted;
- continue;
- }
-#endif
-#ifdef GL_ARB_conservative_depth
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_depth", 18))
- {
- ret = GLEW_ARB_conservative_depth;
- continue;
- }
-#endif
-#ifdef GL_ARB_copy_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_buffer", 11))
- {
- ret = GLEW_ARB_copy_buffer;
- continue;
- }
-#endif
-#ifdef GL_ARB_copy_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10))
- {
- ret = GLEW_ARB_copy_image;
- continue;
- }
-#endif
-#ifdef GL_ARB_cull_distance
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"cull_distance", 13))
- {
- ret = GLEW_ARB_cull_distance;
- continue;
- }
-#endif
-#ifdef GL_ARB_debug_output
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug_output", 12))
- {
- ret = GLEW_ARB_debug_output;
- continue;
- }
-#endif
-#ifdef GL_ARB_depth_buffer_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_buffer_float", 18))
- {
- ret = GLEW_ARB_depth_buffer_float;
- continue;
- }
-#endif
-#ifdef GL_ARB_depth_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_clamp", 11))
- {
- ret = GLEW_ARB_depth_clamp;
- continue;
- }
-#endif
-#ifdef GL_ARB_depth_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture", 13))
- {
- ret = GLEW_ARB_depth_texture;
- continue;
- }
-#endif
-#ifdef GL_ARB_derivative_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"derivative_control", 18))
- {
- ret = GLEW_ARB_derivative_control;
- continue;
- }
-#endif
-#ifdef GL_ARB_direct_state_access
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"direct_state_access", 19))
- {
- ret = GLEW_ARB_direct_state_access;
- continue;
- }
-#endif
-#ifdef GL_ARB_draw_buffers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12))
- {
- ret = GLEW_ARB_draw_buffers;
- continue;
- }
-#endif
-#ifdef GL_ARB_draw_buffers_blend
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers_blend", 18))
- {
- ret = GLEW_ARB_draw_buffers_blend;
- continue;
- }
-#endif
-#ifdef GL_ARB_draw_elements_base_vertex
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_elements_base_vertex", 25))
- {
- ret = GLEW_ARB_draw_elements_base_vertex;
- continue;
- }
-#endif
-#ifdef GL_ARB_draw_indirect
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_indirect", 13))
- {
- ret = GLEW_ARB_draw_indirect;
- continue;
- }
-#endif
-#ifdef GL_ARB_draw_instanced
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_instanced", 14))
- {
- ret = GLEW_ARB_draw_instanced;
- continue;
- }
-#endif
-#ifdef GL_ARB_enhanced_layouts
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"enhanced_layouts", 16))
- {
- ret = GLEW_ARB_enhanced_layouts;
- continue;
- }
-#endif
-#ifdef GL_ARB_explicit_attrib_location
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_attrib_location", 24))
- {
- ret = GLEW_ARB_explicit_attrib_location;
- continue;
- }
-#endif
-#ifdef GL_ARB_explicit_uniform_location
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_uniform_location", 25))
- {
- ret = GLEW_ARB_explicit_uniform_location;
- continue;
- }
-#endif
-#ifdef GL_ARB_fragment_coord_conventions
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_coord_conventions", 26))
- {
- ret = GLEW_ARB_fragment_coord_conventions;
- continue;
- }
-#endif
-#ifdef GL_ARB_fragment_layer_viewport
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_layer_viewport", 23))
- {
- ret = GLEW_ARB_fragment_layer_viewport;
- continue;
- }
-#endif
-#ifdef GL_ARB_fragment_program
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program", 16))
- {
- ret = GLEW_ARB_fragment_program;
- continue;
- }
-#endif
-#ifdef GL_ARB_fragment_program_shadow
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program_shadow", 23))
- {
- ret = GLEW_ARB_fragment_program_shadow;
- continue;
- }
-#endif
-#ifdef GL_ARB_fragment_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader", 15))
- {
- ret = GLEW_ARB_fragment_shader;
- continue;
- }
-#endif
-#ifdef GL_ARB_fragment_shader_interlock
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_interlock", 25))
- {
- ret = GLEW_ARB_fragment_shader_interlock;
- continue;
- }
-#endif
-#ifdef GL_ARB_framebuffer_no_attachments
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_no_attachments", 26))
- {
- ret = GLEW_ARB_framebuffer_no_attachments;
- continue;
- }
-#endif
-#ifdef GL_ARB_framebuffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_object", 18))
- {
- ret = GLEW_ARB_framebuffer_object;
- continue;
- }
-#endif
-#ifdef GL_ARB_framebuffer_sRGB
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16))
- {
- ret = GLEW_ARB_framebuffer_sRGB;
- continue;
- }
-#endif
-#ifdef GL_ARB_geometry_shader4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader4", 16))
- {
- ret = GLEW_ARB_geometry_shader4;
- continue;
- }
-#endif
-#ifdef GL_ARB_get_program_binary
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_program_binary", 18))
- {
- ret = GLEW_ARB_get_program_binary;
- continue;
- }
-#endif
-#ifdef GL_ARB_get_texture_sub_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_texture_sub_image", 21))
- {
- ret = GLEW_ARB_get_texture_sub_image;
- continue;
- }
-#endif
-#ifdef GL_ARB_gl_spirv
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_spirv", 8))
- {
- ret = GLEW_ARB_gl_spirv;
- continue;
- }
-#endif
-#ifdef GL_ARB_gpu_shader5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11))
- {
- ret = GLEW_ARB_gpu_shader5;
- continue;
- }
-#endif
-#ifdef GL_ARB_gpu_shader_fp64
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_fp64", 15))
- {
- ret = GLEW_ARB_gpu_shader_fp64;
- continue;
- }
-#endif
-#ifdef GL_ARB_gpu_shader_int64
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_int64", 16))
- {
- ret = GLEW_ARB_gpu_shader_int64;
- continue;
- }
-#endif
-#ifdef GL_ARB_half_float_pixel
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"half_float_pixel", 16))
- {
- ret = GLEW_ARB_half_float_pixel;
- continue;
- }
-#endif
-#ifdef GL_ARB_half_float_vertex
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"half_float_vertex", 17))
- {
- ret = GLEW_ARB_half_float_vertex;
- continue;
- }
-#endif
-#ifdef GL_ARB_imaging
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"imaging", 7))
- {
- ret = GLEW_ARB_imaging;
- continue;
- }
-#endif
-#ifdef GL_ARB_indirect_parameters
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"indirect_parameters", 19))
- {
- ret = GLEW_ARB_indirect_parameters;
- continue;
- }
-#endif
-#ifdef GL_ARB_instanced_arrays
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16))
- {
- ret = GLEW_ARB_instanced_arrays;
- continue;
- }
-#endif
-#ifdef GL_ARB_internalformat_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"internalformat_query", 20))
- {
- ret = GLEW_ARB_internalformat_query;
- continue;
- }
-#endif
-#ifdef GL_ARB_internalformat_query2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"internalformat_query2", 21))
- {
- ret = GLEW_ARB_internalformat_query2;
- continue;
- }
-#endif
-#ifdef GL_ARB_invalidate_subdata
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"invalidate_subdata", 18))
- {
- ret = GLEW_ARB_invalidate_subdata;
- continue;
- }
-#endif
-#ifdef GL_ARB_map_buffer_alignment
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_buffer_alignment", 20))
- {
- ret = GLEW_ARB_map_buffer_alignment;
- continue;
- }
-#endif
-#ifdef GL_ARB_map_buffer_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_buffer_range", 16))
- {
- ret = GLEW_ARB_map_buffer_range;
- continue;
- }
-#endif
-#ifdef GL_ARB_matrix_palette
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"matrix_palette", 14))
- {
- ret = GLEW_ARB_matrix_palette;
- continue;
- }
-#endif
-#ifdef GL_ARB_multi_bind
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_bind", 10))
- {
- ret = GLEW_ARB_multi_bind;
- continue;
- }
-#endif
-#ifdef GL_ARB_multi_draw_indirect
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_draw_indirect", 19))
- {
- ret = GLEW_ARB_multi_draw_indirect;
- continue;
- }
-#endif
-#ifdef GL_ARB_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11))
- {
- ret = GLEW_ARB_multisample;
- continue;
- }
-#endif
-#ifdef GL_ARB_multitexture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multitexture", 12))
- {
- ret = GLEW_ARB_multitexture;
- continue;
- }
-#endif
-#ifdef GL_ARB_occlusion_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query", 15))
- {
- ret = GLEW_ARB_occlusion_query;
- continue;
- }
-#endif
-#ifdef GL_ARB_occlusion_query2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query2", 16))
- {
- ret = GLEW_ARB_occlusion_query2;
- continue;
- }
-#endif
-#ifdef GL_ARB_parallel_shader_compile
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"parallel_shader_compile", 23))
- {
- ret = GLEW_ARB_parallel_shader_compile;
- continue;
- }
-#endif
-#ifdef GL_ARB_pipeline_statistics_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pipeline_statistics_query", 25))
- {
- ret = GLEW_ARB_pipeline_statistics_query;
- continue;
- }
-#endif
-#ifdef GL_ARB_pixel_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_buffer_object", 19))
- {
- ret = GLEW_ARB_pixel_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_ARB_point_parameters
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_parameters", 16))
- {
- ret = GLEW_ARB_point_parameters;
- continue;
- }
-#endif
-#ifdef GL_ARB_point_sprite
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_sprite", 12))
- {
- ret = GLEW_ARB_point_sprite;
- continue;
- }
-#endif
-#ifdef GL_ARB_polygon_offset_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_offset_clamp", 20))
- {
- ret = GLEW_ARB_polygon_offset_clamp;
- continue;
- }
-#endif
-#ifdef GL_ARB_post_depth_coverage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_depth_coverage", 19))
- {
- ret = GLEW_ARB_post_depth_coverage;
- continue;
- }
-#endif
-#ifdef GL_ARB_program_interface_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_interface_query", 23))
- {
- ret = GLEW_ARB_program_interface_query;
- continue;
- }
-#endif
-#ifdef GL_ARB_provoking_vertex
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"provoking_vertex", 16))
- {
- ret = GLEW_ARB_provoking_vertex;
- continue;
- }
-#endif
-#ifdef GL_ARB_query_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_buffer_object", 19))
- {
- ret = GLEW_ARB_query_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_ARB_robust_buffer_access_behavior
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robust_buffer_access_behavior", 29))
- {
- ret = GLEW_ARB_robust_buffer_access_behavior;
- continue;
- }
-#endif
-#ifdef GL_ARB_robustness
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness", 10))
- {
- ret = GLEW_ARB_robustness;
- continue;
- }
-#endif
-#ifdef GL_ARB_robustness_application_isolation
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_application_isolation", 32))
- {
- ret = GLEW_ARB_robustness_application_isolation;
- continue;
- }
-#endif
-#ifdef GL_ARB_robustness_share_group_isolation
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_share_group_isolation", 32))
- {
- ret = GLEW_ARB_robustness_share_group_isolation;
- continue;
- }
-#endif
-#ifdef GL_ARB_sample_locations
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_locations", 16))
- {
- ret = GLEW_ARB_sample_locations;
- continue;
- }
-#endif
-#ifdef GL_ARB_sample_shading
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_shading", 14))
- {
- ret = GLEW_ARB_sample_shading;
- continue;
- }
-#endif
-#ifdef GL_ARB_sampler_objects
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sampler_objects", 15))
- {
- ret = GLEW_ARB_sampler_objects;
- continue;
- }
-#endif
-#ifdef GL_ARB_seamless_cube_map
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"seamless_cube_map", 17))
- {
- ret = GLEW_ARB_seamless_cube_map;
- continue;
- }
-#endif
-#ifdef GL_ARB_seamless_cubemap_per_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"seamless_cubemap_per_texture", 28))
- {
- ret = GLEW_ARB_seamless_cubemap_per_texture;
- continue;
- }
-#endif
-#ifdef GL_ARB_separate_shader_objects
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"separate_shader_objects", 23))
- {
- ret = GLEW_ARB_separate_shader_objects;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_atomic_counter_ops
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_counter_ops", 25))
- {
- ret = GLEW_ARB_shader_atomic_counter_ops;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_atomic_counters
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_counters", 22))
- {
- ret = GLEW_ARB_shader_atomic_counters;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_ballot
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_ballot", 13))
- {
- ret = GLEW_ARB_shader_ballot;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_bit_encoding
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_bit_encoding", 19))
- {
- ret = GLEW_ARB_shader_bit_encoding;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_clock
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_clock", 12))
- {
- ret = GLEW_ARB_shader_clock;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_draw_parameters
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_draw_parameters", 22))
- {
- ret = GLEW_ARB_shader_draw_parameters;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_group_vote
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_group_vote", 17))
- {
- ret = GLEW_ARB_shader_group_vote;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_image_load_store
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_load_store", 23))
- {
- ret = GLEW_ARB_shader_image_load_store;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_image_size
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_size", 17))
- {
- ret = GLEW_ARB_shader_image_size;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_objects
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_objects", 14))
- {
- ret = GLEW_ARB_shader_objects;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_precision
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_precision", 16))
- {
- ret = GLEW_ARB_shader_precision;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_stencil_export
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_stencil_export", 21))
- {
- ret = GLEW_ARB_shader_stencil_export;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_storage_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_storage_buffer_object", 28))
- {
- ret = GLEW_ARB_shader_storage_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_subroutine
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_subroutine", 17))
- {
- ret = GLEW_ARB_shader_subroutine;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_texture_image_samples
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_image_samples", 28))
- {
- ret = GLEW_ARB_shader_texture_image_samples;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_texture_lod
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_lod", 18))
- {
- ret = GLEW_ARB_shader_texture_lod;
- continue;
- }
-#endif
-#ifdef GL_ARB_shader_viewport_layer_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_viewport_layer_array", 27))
- {
- ret = GLEW_ARB_shader_viewport_layer_array;
- continue;
- }
-#endif
-#ifdef GL_ARB_shading_language_100
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shading_language_100", 20))
- {
- ret = GLEW_ARB_shading_language_100;
- continue;
- }
-#endif
-#ifdef GL_ARB_shading_language_420pack
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shading_language_420pack", 24))
- {
- ret = GLEW_ARB_shading_language_420pack;
- continue;
- }
-#endif
-#ifdef GL_ARB_shading_language_include
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shading_language_include", 24))
- {
- ret = GLEW_ARB_shading_language_include;
- continue;
- }
-#endif
-#ifdef GL_ARB_shading_language_packing
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shading_language_packing", 24))
- {
- ret = GLEW_ARB_shading_language_packing;
- continue;
- }
-#endif
-#ifdef GL_ARB_shadow
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow", 6))
- {
- ret = GLEW_ARB_shadow;
- continue;
- }
-#endif
-#ifdef GL_ARB_shadow_ambient
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_ambient", 14))
- {
- ret = GLEW_ARB_shadow_ambient;
- continue;
- }
-#endif
-#ifdef GL_ARB_sparse_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_buffer", 13))
- {
- ret = GLEW_ARB_sparse_buffer;
- continue;
- }
-#endif
-#ifdef GL_ARB_sparse_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture", 14))
- {
- ret = GLEW_ARB_sparse_texture;
- continue;
- }
-#endif
-#ifdef GL_ARB_sparse_texture2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture2", 15))
- {
- ret = GLEW_ARB_sparse_texture2;
- continue;
- }
-#endif
-#ifdef GL_ARB_sparse_texture_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture_clamp", 20))
- {
- ret = GLEW_ARB_sparse_texture_clamp;
- continue;
- }
-#endif
-#ifdef GL_ARB_spirv_extensions
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"spirv_extensions", 16))
- {
- ret = GLEW_ARB_spirv_extensions;
- continue;
- }
-#endif
-#ifdef GL_ARB_stencil_texturing
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_texturing", 17))
- {
- ret = GLEW_ARB_stencil_texturing;
- continue;
- }
-#endif
-#ifdef GL_ARB_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync", 4))
- {
- ret = GLEW_ARB_sync;
- continue;
- }
-#endif
-#ifdef GL_ARB_tessellation_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_shader", 19))
- {
- ret = GLEW_ARB_tessellation_shader;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_barrier
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_barrier", 15))
- {
- ret = GLEW_ARB_texture_barrier;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_border_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20))
- {
- ret = GLEW_ARB_texture_border_clamp;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer_object", 21))
- {
- ret = GLEW_ARB_texture_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_buffer_object_rgb32
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer_object_rgb32", 27))
- {
- ret = GLEW_ARB_texture_buffer_object_rgb32;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_buffer_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer_range", 20))
- {
- ret = GLEW_ARB_texture_buffer_range;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_compression
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression", 19))
- {
- ret = GLEW_ARB_texture_compression;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_compression_bptc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_bptc", 24))
- {
- ret = GLEW_ARB_texture_compression_bptc;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_compression_rgtc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_rgtc", 24))
- {
- ret = GLEW_ARB_texture_compression_rgtc;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_cube_map
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map", 16))
- {
- ret = GLEW_ARB_texture_cube_map;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_cube_map_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map_array", 22))
- {
- ret = GLEW_ARB_texture_cube_map_array;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_env_add
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_add", 15))
- {
- ret = GLEW_ARB_texture_env_add;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_env_combine
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_combine", 19))
- {
- ret = GLEW_ARB_texture_env_combine;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_env_crossbar
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_crossbar", 20))
- {
- ret = GLEW_ARB_texture_env_crossbar;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_env_dot3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_dot3", 16))
- {
- ret = GLEW_ARB_texture_env_dot3;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_filter_anisotropic
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_anisotropic", 26))
- {
- ret = GLEW_ARB_texture_filter_anisotropic;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_filter_minmax
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_minmax", 21))
- {
- ret = GLEW_ARB_texture_filter_minmax;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_float", 13))
- {
- ret = GLEW_ARB_texture_float;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_gather
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_gather", 14))
- {
- ret = GLEW_ARB_texture_gather;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_mirror_clamp_to_edge
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirror_clamp_to_edge", 28))
- {
- ret = GLEW_ARB_texture_mirror_clamp_to_edge;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_mirrored_repeat
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirrored_repeat", 23))
- {
- ret = GLEW_ARB_texture_mirrored_repeat;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_multisample", 19))
- {
- ret = GLEW_ARB_texture_multisample;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_non_power_of_two
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_non_power_of_two", 24))
- {
- ret = GLEW_ARB_texture_non_power_of_two;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_query_levels
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_query_levels", 20))
- {
- ret = GLEW_ARB_texture_query_levels;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_query_lod
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_query_lod", 17))
- {
- ret = GLEW_ARB_texture_query_lod;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_rectangle
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle", 17))
- {
- ret = GLEW_ARB_texture_rectangle;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_rg
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rg", 10))
- {
- ret = GLEW_ARB_texture_rg;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_rgb10_a2ui
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rgb10_a2ui", 18))
- {
- ret = GLEW_ARB_texture_rgb10_a2ui;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_stencil8
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_stencil8", 16))
- {
- ret = GLEW_ARB_texture_stencil8;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_storage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_storage", 15))
- {
- ret = GLEW_ARB_texture_storage;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_storage_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_storage_multisample", 27))
- {
- ret = GLEW_ARB_texture_storage_multisample;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_swizzle
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_swizzle", 15))
- {
- ret = GLEW_ARB_texture_swizzle;
- continue;
- }
-#endif
-#ifdef GL_ARB_texture_view
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_view", 12))
- {
- ret = GLEW_ARB_texture_view;
- continue;
- }
-#endif
-#ifdef GL_ARB_timer_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"timer_query", 11))
- {
- ret = GLEW_ARB_timer_query;
- continue;
- }
-#endif
-#ifdef GL_ARB_transform_feedback2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback2", 19))
- {
- ret = GLEW_ARB_transform_feedback2;
- continue;
- }
-#endif
-#ifdef GL_ARB_transform_feedback3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback3", 19))
- {
- ret = GLEW_ARB_transform_feedback3;
- continue;
- }
-#endif
-#ifdef GL_ARB_transform_feedback_instanced
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback_instanced", 28))
- {
- ret = GLEW_ARB_transform_feedback_instanced;
- continue;
- }
-#endif
-#ifdef GL_ARB_transform_feedback_overflow_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback_overflow_query", 33))
- {
- ret = GLEW_ARB_transform_feedback_overflow_query;
- continue;
- }
-#endif
-#ifdef GL_ARB_transpose_matrix
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"transpose_matrix", 16))
- {
- ret = GLEW_ARB_transpose_matrix;
- continue;
- }
-#endif
-#ifdef GL_ARB_uniform_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"uniform_buffer_object", 21))
- {
- ret = GLEW_ARB_uniform_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_ARB_vertex_array_bgra
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_bgra", 17))
- {
- ret = GLEW_ARB_vertex_array_bgra;
- continue;
- }
-#endif
-#ifdef GL_ARB_vertex_array_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19))
- {
- ret = GLEW_ARB_vertex_array_object;
- continue;
- }
-#endif
-#ifdef GL_ARB_vertex_attrib_64bit
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_64bit", 19))
- {
- ret = GLEW_ARB_vertex_attrib_64bit;
- continue;
- }
-#endif
-#ifdef GL_ARB_vertex_attrib_binding
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_binding", 21))
- {
- ret = GLEW_ARB_vertex_attrib_binding;
- continue;
- }
-#endif
-#ifdef GL_ARB_vertex_blend
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_blend", 12))
- {
- ret = GLEW_ARB_vertex_blend;
- continue;
- }
-#endif
-#ifdef GL_ARB_vertex_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_buffer_object", 20))
- {
- ret = GLEW_ARB_vertex_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_ARB_vertex_program
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program", 14))
- {
- ret = GLEW_ARB_vertex_program;
- continue;
- }
-#endif
-#ifdef GL_ARB_vertex_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader", 13))
- {
- ret = GLEW_ARB_vertex_shader;
- continue;
- }
-#endif
-#ifdef GL_ARB_vertex_type_10f_11f_11f_rev
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_type_10f_11f_11f_rev", 27))
- {
- ret = GLEW_ARB_vertex_type_10f_11f_11f_rev;
- continue;
- }
-#endif
-#ifdef GL_ARB_vertex_type_2_10_10_10_rev
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_type_2_10_10_10_rev", 26))
- {
- ret = GLEW_ARB_vertex_type_2_10_10_10_rev;
- continue;
- }
-#endif
-#ifdef GL_ARB_viewport_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_array", 14))
- {
- ret = GLEW_ARB_viewport_array;
- continue;
- }
-#endif
-#ifdef GL_ARB_window_pos
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_pos", 10))
- {
- ret = GLEW_ARB_window_pos;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARM_", 4))
- {
-#ifdef GL_ARM_mali_program_binary
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"mali_program_binary", 19))
- {
- ret = GLEW_ARM_mali_program_binary;
- continue;
- }
-#endif
-#ifdef GL_ARM_mali_shader_binary
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"mali_shader_binary", 18))
- {
- ret = GLEW_ARM_mali_shader_binary;
- continue;
- }
-#endif
-#ifdef GL_ARM_rgba8
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"rgba8", 5))
- {
- ret = GLEW_ARM_rgba8;
- continue;
- }
-#endif
-#ifdef GL_ARM_shader_framebuffer_fetch
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch", 24))
- {
- ret = GLEW_ARM_shader_framebuffer_fetch;
- continue;
- }
-#endif
-#ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_depth_stencil", 38))
- {
- ret = GLEW_ARM_shader_framebuffer_fetch_depth_stencil;
- continue;
- }
-#endif
-#ifdef GL_ARM_texture_unnormalized_coordinates
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_unnormalized_coordinates", 32))
- {
- ret = GLEW_ARM_texture_unnormalized_coordinates;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ATIX_", 5))
- {
-#ifdef GL_ATIX_point_sprites
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_sprites", 13))
- {
- ret = GLEW_ATIX_point_sprites;
- continue;
- }
-#endif
-#ifdef GL_ATIX_texture_env_combine3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_combine3", 20))
- {
- ret = GLEW_ATIX_texture_env_combine3;
- continue;
- }
-#endif
-#ifdef GL_ATIX_texture_env_route
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_route", 17))
- {
- ret = GLEW_ATIX_texture_env_route;
- continue;
- }
-#endif
-#ifdef GL_ATIX_vertex_shader_output_point_size
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader_output_point_size", 31))
- {
- ret = GLEW_ATIX_vertex_shader_output_point_size;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ATI_", 4))
- {
-#ifdef GL_ATI_draw_buffers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12))
- {
- ret = GLEW_ATI_draw_buffers;
- continue;
- }
-#endif
-#ifdef GL_ATI_element_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"element_array", 13))
- {
- ret = GLEW_ATI_element_array;
- continue;
- }
-#endif
-#ifdef GL_ATI_envmap_bumpmap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"envmap_bumpmap", 14))
- {
- ret = GLEW_ATI_envmap_bumpmap;
- continue;
- }
-#endif
-#ifdef GL_ATI_fragment_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader", 15))
- {
- ret = GLEW_ATI_fragment_shader;
- continue;
- }
-#endif
-#ifdef GL_ATI_map_object_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_object_buffer", 17))
- {
- ret = GLEW_ATI_map_object_buffer;
- continue;
- }
-#endif
-#ifdef GL_ATI_meminfo
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"meminfo", 7))
- {
- ret = GLEW_ATI_meminfo;
- continue;
- }
-#endif
-#ifdef GL_ATI_pn_triangles
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pn_triangles", 12))
- {
- ret = GLEW_ATI_pn_triangles;
- continue;
- }
-#endif
-#ifdef GL_ATI_separate_stencil
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"separate_stencil", 16))
- {
- ret = GLEW_ATI_separate_stencil;
- continue;
- }
-#endif
-#ifdef GL_ATI_shader_texture_lod
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_lod", 18))
- {
- ret = GLEW_ATI_shader_texture_lod;
- continue;
- }
-#endif
-#ifdef GL_ATI_text_fragment_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"text_fragment_shader", 20))
- {
- ret = GLEW_ATI_text_fragment_shader;
- continue;
- }
-#endif
-#ifdef GL_ATI_texture_compression_3dc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_3dc", 23))
- {
- ret = GLEW_ATI_texture_compression_3dc;
- continue;
- }
-#endif
-#ifdef GL_ATI_texture_env_combine3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_combine3", 20))
- {
- ret = GLEW_ATI_texture_env_combine3;
- continue;
- }
-#endif
-#ifdef GL_ATI_texture_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_float", 13))
- {
- ret = GLEW_ATI_texture_float;
- continue;
- }
-#endif
-#ifdef GL_ATI_texture_mirror_once
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirror_once", 19))
- {
- ret = GLEW_ATI_texture_mirror_once;
- continue;
- }
-#endif
-#ifdef GL_ATI_vertex_array_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19))
- {
- ret = GLEW_ATI_vertex_array_object;
- continue;
- }
-#endif
-#ifdef GL_ATI_vertex_attrib_array_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_array_object", 26))
- {
- ret = GLEW_ATI_vertex_attrib_array_object;
- continue;
- }
-#endif
-#ifdef GL_ATI_vertex_streams
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_streams", 14))
- {
- ret = GLEW_ATI_vertex_streams;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"DMP_", 4))
- {
-#ifdef GL_DMP_program_binary
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary", 14))
- {
- ret = GLEW_DMP_program_binary;
- continue;
- }
-#endif
-#ifdef GL_DMP_shader_binary
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary", 13))
- {
- ret = GLEW_DMP_shader_binary;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4))
- {
-#ifdef GL_EXT_422_pixels
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"422_pixels", 10))
- {
- ret = GLEW_EXT_422_pixels;
- continue;
- }
-#endif
-#ifdef GL_EXT_Cg_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"Cg_shader", 9))
- {
- ret = GLEW_EXT_Cg_shader;
- continue;
- }
-#endif
-#ifdef GL_EXT_EGL_image_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_array", 15))
- {
- ret = GLEW_EXT_EGL_image_array;
- continue;
- }
-#endif
-#ifdef GL_EXT_EGL_image_external_wrap_modes
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_external_wrap_modes", 29))
- {
- ret = GLEW_EXT_EGL_image_external_wrap_modes;
- continue;
- }
-#endif
-#ifdef GL_EXT_EGL_image_storage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_storage", 17))
- {
- ret = GLEW_EXT_EGL_image_storage;
- continue;
- }
-#endif
-#ifdef GL_EXT_EGL_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_sync", 8))
- {
- ret = GLEW_EXT_EGL_sync;
- continue;
- }
-#endif
-#ifdef GL_EXT_YUV_target
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"YUV_target", 10))
- {
- ret = GLEW_EXT_YUV_target;
- continue;
- }
-#endif
-#ifdef GL_EXT_abgr
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"abgr", 4))
- {
- ret = GLEW_EXT_abgr;
- continue;
- }
-#endif
-#ifdef GL_EXT_base_instance
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"base_instance", 13))
- {
- ret = GLEW_EXT_base_instance;
- continue;
- }
-#endif
-#ifdef GL_EXT_bgra
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bgra", 4))
- {
- ret = GLEW_EXT_bgra;
- continue;
- }
-#endif
-#ifdef GL_EXT_bindable_uniform
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindable_uniform", 16))
- {
- ret = GLEW_EXT_bindable_uniform;
- continue;
- }
-#endif
-#ifdef GL_EXT_blend_color
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_color", 11))
- {
- ret = GLEW_EXT_blend_color;
- continue;
- }
-#endif
-#ifdef GL_EXT_blend_equation_separate
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_separate", 23))
- {
- ret = GLEW_EXT_blend_equation_separate;
- continue;
- }
-#endif
-#ifdef GL_EXT_blend_func_extended
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_extended", 19))
- {
- ret = GLEW_EXT_blend_func_extended;
- continue;
- }
-#endif
-#ifdef GL_EXT_blend_func_separate
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_separate", 19))
- {
- ret = GLEW_EXT_blend_func_separate;
- continue;
- }
-#endif
-#ifdef GL_EXT_blend_logic_op
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_logic_op", 14))
- {
- ret = GLEW_EXT_blend_logic_op;
- continue;
- }
-#endif
-#ifdef GL_EXT_blend_minmax
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_minmax", 12))
- {
- ret = GLEW_EXT_blend_minmax;
- continue;
- }
-#endif
-#ifdef GL_EXT_blend_subtract
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_subtract", 14))
- {
- ret = GLEW_EXT_blend_subtract;
- continue;
- }
-#endif
-#ifdef GL_EXT_buffer_storage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_storage", 14))
- {
- ret = GLEW_EXT_buffer_storage;
- continue;
- }
-#endif
-#ifdef GL_EXT_clear_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clear_texture", 13))
- {
- ret = GLEW_EXT_clear_texture;
- continue;
- }
-#endif
-#ifdef GL_EXT_clip_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_control", 12))
- {
- ret = GLEW_EXT_clip_control;
- continue;
- }
-#endif
-#ifdef GL_EXT_clip_cull_distance
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_cull_distance", 18))
- {
- ret = GLEW_EXT_clip_cull_distance;
- continue;
- }
-#endif
-#ifdef GL_EXT_clip_volume_hint
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_volume_hint", 16))
- {
- ret = GLEW_EXT_clip_volume_hint;
- continue;
- }
-#endif
-#ifdef GL_EXT_cmyka
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"cmyka", 5))
- {
- ret = GLEW_EXT_cmyka;
- continue;
- }
-#endif
-#ifdef GL_EXT_color_buffer_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_float", 18))
- {
- ret = GLEW_EXT_color_buffer_float;
- continue;
- }
-#endif
-#ifdef GL_EXT_color_buffer_half_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_half_float", 23))
- {
- ret = GLEW_EXT_color_buffer_half_float;
- continue;
- }
-#endif
-#ifdef GL_EXT_color_subtable
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_subtable", 14))
- {
- ret = GLEW_EXT_color_subtable;
- continue;
- }
-#endif
-#ifdef GL_EXT_compiled_vertex_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compiled_vertex_array", 21))
- {
- ret = GLEW_EXT_compiled_vertex_array;
- continue;
- }
-#endif
-#ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_ETC1_RGB8_sub_texture", 32))
- {
- ret = GLEW_EXT_compressed_ETC1_RGB8_sub_texture;
- continue;
- }
-#endif
-#ifdef GL_EXT_conservative_depth
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_depth", 18))
- {
- ret = GLEW_EXT_conservative_depth;
- continue;
- }
-#endif
-#ifdef GL_EXT_convolution
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution", 11))
- {
- ret = GLEW_EXT_convolution;
- continue;
- }
-#endif
-#ifdef GL_EXT_coordinate_frame
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"coordinate_frame", 16))
- {
- ret = GLEW_EXT_coordinate_frame;
- continue;
- }
-#endif
-#ifdef GL_EXT_copy_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10))
- {
- ret = GLEW_EXT_copy_image;
- continue;
- }
-#endif
-#ifdef GL_EXT_copy_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_texture", 12))
- {
- ret = GLEW_EXT_copy_texture;
- continue;
- }
-#endif
-#ifdef GL_EXT_cull_vertex
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"cull_vertex", 11))
- {
- ret = GLEW_EXT_cull_vertex;
- continue;
- }
-#endif
-#ifdef GL_EXT_debug_label
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug_label", 11))
- {
- ret = GLEW_EXT_debug_label;
- continue;
- }
-#endif
-#ifdef GL_EXT_debug_marker
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug_marker", 12))
- {
- ret = GLEW_EXT_debug_marker;
- continue;
- }
-#endif
-#ifdef GL_EXT_depth_bounds_test
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_bounds_test", 17))
- {
- ret = GLEW_EXT_depth_bounds_test;
- continue;
- }
-#endif
-#ifdef GL_EXT_depth_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_clamp", 11))
- {
- ret = GLEW_EXT_depth_clamp;
- continue;
- }
-#endif
-#ifdef GL_EXT_direct_state_access
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"direct_state_access", 19))
- {
- ret = GLEW_EXT_direct_state_access;
- continue;
- }
-#endif
-#ifdef GL_EXT_discard_framebuffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"discard_framebuffer", 19))
- {
- ret = GLEW_EXT_discard_framebuffer;
- continue;
- }
-#endif
-#ifdef GL_EXT_disjoint_timer_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"disjoint_timer_query", 20))
- {
- ret = GLEW_EXT_disjoint_timer_query;
- continue;
- }
-#endif
-#ifdef GL_EXT_draw_buffers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12))
- {
- ret = GLEW_EXT_draw_buffers;
- continue;
- }
-#endif
-#ifdef GL_EXT_draw_buffers2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers2", 13))
- {
- ret = GLEW_EXT_draw_buffers2;
- continue;
- }
-#endif
-#ifdef GL_EXT_draw_buffers_indexed
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers_indexed", 20))
- {
- ret = GLEW_EXT_draw_buffers_indexed;
- continue;
- }
-#endif
-#ifdef GL_EXT_draw_elements_base_vertex
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_elements_base_vertex", 25))
- {
- ret = GLEW_EXT_draw_elements_base_vertex;
- continue;
- }
-#endif
-#ifdef GL_EXT_draw_instanced
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_instanced", 14))
- {
- ret = GLEW_EXT_draw_instanced;
- continue;
- }
-#endif
-#ifdef GL_EXT_draw_range_elements
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_range_elements", 19))
- {
- ret = GLEW_EXT_draw_range_elements;
- continue;
- }
-#endif
-#ifdef GL_EXT_draw_transform_feedback
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_transform_feedback", 23))
- {
- ret = GLEW_EXT_draw_transform_feedback;
- continue;
- }
-#endif
-#ifdef GL_EXT_external_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"external_buffer", 15))
- {
- ret = GLEW_EXT_external_buffer;
- continue;
- }
-#endif
-#ifdef GL_EXT_float_blend
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_blend", 11))
- {
- ret = GLEW_EXT_float_blend;
- continue;
- }
-#endif
-#ifdef GL_EXT_fog_coord
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_coord", 9))
- {
- ret = GLEW_EXT_fog_coord;
- continue;
- }
-#endif
-#ifdef GL_EXT_frag_depth
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"frag_depth", 10))
- {
- ret = GLEW_EXT_frag_depth;
- continue;
- }
-#endif
-#ifdef GL_EXT_fragment_lighting
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_lighting", 17))
- {
- ret = GLEW_EXT_fragment_lighting;
- continue;
- }
-#endif
-#ifdef GL_EXT_framebuffer_blit
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_blit", 16))
- {
- ret = GLEW_EXT_framebuffer_blit;
- continue;
- }
-#endif
-#ifdef GL_EXT_framebuffer_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23))
- {
- ret = GLEW_EXT_framebuffer_multisample;
- continue;
- }
-#endif
-#ifdef GL_EXT_framebuffer_multisample_blit_scaled
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample_blit_scaled", 35))
- {
- ret = GLEW_EXT_framebuffer_multisample_blit_scaled;
- continue;
- }
-#endif
-#ifdef GL_EXT_framebuffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_object", 18))
- {
- ret = GLEW_EXT_framebuffer_object;
- continue;
- }
-#endif
-#ifdef GL_EXT_framebuffer_sRGB
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16))
- {
- ret = GLEW_EXT_framebuffer_sRGB;
- continue;
- }
-#endif
-#ifdef GL_EXT_geometry_point_size
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_point_size", 19))
- {
- ret = GLEW_EXT_geometry_point_size;
- continue;
- }
-#endif
-#ifdef GL_EXT_geometry_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader", 15))
- {
- ret = GLEW_EXT_geometry_shader;
- continue;
- }
-#endif
-#ifdef GL_EXT_geometry_shader4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader4", 16))
- {
- ret = GLEW_EXT_geometry_shader4;
- continue;
- }
-#endif
-#ifdef GL_EXT_gpu_program_parameters
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program_parameters", 22))
- {
- ret = GLEW_EXT_gpu_program_parameters;
- continue;
- }
-#endif
-#ifdef GL_EXT_gpu_shader4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader4", 11))
- {
- ret = GLEW_EXT_gpu_shader4;
- continue;
- }
-#endif
-#ifdef GL_EXT_gpu_shader5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11))
- {
- ret = GLEW_EXT_gpu_shader5;
- continue;
- }
-#endif
-#ifdef GL_EXT_histogram
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"histogram", 9))
- {
- ret = GLEW_EXT_histogram;
- continue;
- }
-#endif
-#ifdef GL_EXT_index_array_formats
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"index_array_formats", 19))
- {
- ret = GLEW_EXT_index_array_formats;
- continue;
- }
-#endif
-#ifdef GL_EXT_index_func
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"index_func", 10))
- {
- ret = GLEW_EXT_index_func;
- continue;
- }
-#endif
-#ifdef GL_EXT_index_material
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"index_material", 14))
- {
- ret = GLEW_EXT_index_material;
- continue;
- }
-#endif
-#ifdef GL_EXT_index_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"index_texture", 13))
- {
- ret = GLEW_EXT_index_texture;
- continue;
- }
-#endif
-#ifdef GL_EXT_instanced_arrays
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16))
- {
- ret = GLEW_EXT_instanced_arrays;
- continue;
- }
-#endif
-#ifdef GL_EXT_light_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"light_texture", 13))
- {
- ret = GLEW_EXT_light_texture;
- continue;
- }
-#endif
-#ifdef GL_EXT_map_buffer_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_buffer_range", 16))
- {
- ret = GLEW_EXT_map_buffer_range;
- continue;
- }
-#endif
-#ifdef GL_EXT_memory_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object", 13))
- {
- ret = GLEW_EXT_memory_object;
- continue;
- }
-#endif
-#ifdef GL_EXT_memory_object_fd
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object_fd", 16))
- {
- ret = GLEW_EXT_memory_object_fd;
- continue;
- }
-#endif
-#ifdef GL_EXT_memory_object_win32
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object_win32", 19))
- {
- ret = GLEW_EXT_memory_object_win32;
- continue;
- }
-#endif
-#ifdef GL_EXT_misc_attribute
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"misc_attribute", 14))
- {
- ret = GLEW_EXT_misc_attribute;
- continue;
- }
-#endif
-#ifdef GL_EXT_multi_draw_arrays
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_draw_arrays", 17))
- {
- ret = GLEW_EXT_multi_draw_arrays;
- continue;
- }
-#endif
-#ifdef GL_EXT_multi_draw_indirect
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_draw_indirect", 19))
- {
- ret = GLEW_EXT_multi_draw_indirect;
- continue;
- }
-#endif
-#ifdef GL_EXT_multiple_textures
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiple_textures", 17))
- {
- ret = GLEW_EXT_multiple_textures;
- continue;
- }
-#endif
-#ifdef GL_EXT_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11))
- {
- ret = GLEW_EXT_multisample;
- continue;
- }
-#endif
-#ifdef GL_EXT_multisample_compatibility
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_compatibility", 25))
- {
- ret = GLEW_EXT_multisample_compatibility;
- continue;
- }
-#endif
-#ifdef GL_EXT_multisampled_render_to_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisampled_render_to_texture", 30))
- {
- ret = GLEW_EXT_multisampled_render_to_texture;
- continue;
- }
-#endif
-#ifdef GL_EXT_multisampled_render_to_texture2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisampled_render_to_texture2", 31))
- {
- ret = GLEW_EXT_multisampled_render_to_texture2;
- continue;
- }
-#endif
-#ifdef GL_EXT_multiview_draw_buffers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_draw_buffers", 22))
- {
- ret = GLEW_EXT_multiview_draw_buffers;
- continue;
- }
-#endif
-#ifdef GL_EXT_multiview_tessellation_geometry_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_tessellation_geometry_shader", 38))
- {
- ret = GLEW_EXT_multiview_tessellation_geometry_shader;
- continue;
- }
-#endif
-#ifdef GL_EXT_multiview_texture_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_texture_multisample", 29))
- {
- ret = GLEW_EXT_multiview_texture_multisample;
- continue;
- }
-#endif
-#ifdef GL_EXT_multiview_timer_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_timer_query", 21))
- {
- ret = GLEW_EXT_multiview_timer_query;
- continue;
- }
-#endif
-#ifdef GL_EXT_occlusion_query_boolean
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query_boolean", 23))
- {
- ret = GLEW_EXT_occlusion_query_boolean;
- continue;
- }
-#endif
-#ifdef GL_EXT_packed_depth_stencil
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_depth_stencil", 20))
- {
- ret = GLEW_EXT_packed_depth_stencil;
- continue;
- }
-#endif
-#ifdef GL_EXT_packed_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_float", 12))
- {
- ret = GLEW_EXT_packed_float;
- continue;
- }
-#endif
-#ifdef GL_EXT_packed_pixels
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_pixels", 13))
- {
- ret = GLEW_EXT_packed_pixels;
- continue;
- }
-#endif
-#ifdef GL_EXT_paletted_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"paletted_texture", 16))
- {
- ret = GLEW_EXT_paletted_texture;
- continue;
- }
-#endif
-#ifdef GL_EXT_pixel_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_buffer_object", 19))
- {
- ret = GLEW_EXT_pixel_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_EXT_pixel_transform
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_transform", 15))
- {
- ret = GLEW_EXT_pixel_transform;
- continue;
- }
-#endif
-#ifdef GL_EXT_pixel_transform_color_table
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_transform_color_table", 27))
- {
- ret = GLEW_EXT_pixel_transform_color_table;
- continue;
- }
-#endif
-#ifdef GL_EXT_point_parameters
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_parameters", 16))
- {
- ret = GLEW_EXT_point_parameters;
- continue;
- }
-#endif
-#ifdef GL_EXT_polygon_offset
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_offset", 14))
- {
- ret = GLEW_EXT_polygon_offset;
- continue;
- }
-#endif
-#ifdef GL_EXT_polygon_offset_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_offset_clamp", 20))
- {
- ret = GLEW_EXT_polygon_offset_clamp;
- continue;
- }
-#endif
-#ifdef GL_EXT_post_depth_coverage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_depth_coverage", 19))
- {
- ret = GLEW_EXT_post_depth_coverage;
- continue;
- }
-#endif
-#ifdef GL_EXT_primitive_bounding_box
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"primitive_bounding_box", 22))
- {
- ret = GLEW_EXT_primitive_bounding_box;
- continue;
- }
-#endif
-#ifdef GL_EXT_protected_textures
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"protected_textures", 18))
- {
- ret = GLEW_EXT_protected_textures;
- continue;
- }
-#endif
-#ifdef GL_EXT_provoking_vertex
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"provoking_vertex", 16))
- {
- ret = GLEW_EXT_provoking_vertex;
- continue;
- }
-#endif
-#ifdef GL_EXT_pvrtc_sRGB
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pvrtc_sRGB", 10))
- {
- ret = GLEW_EXT_pvrtc_sRGB;
- continue;
- }
-#endif
-#ifdef GL_EXT_raster_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"raster_multisample", 18))
- {
- ret = GLEW_EXT_raster_multisample;
- continue;
- }
-#endif
-#ifdef GL_EXT_read_format_bgra
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_format_bgra", 16))
- {
- ret = GLEW_EXT_read_format_bgra;
- continue;
- }
-#endif
-#ifdef GL_EXT_render_snorm
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_snorm", 12))
- {
- ret = GLEW_EXT_render_snorm;
- continue;
- }
-#endif
-#ifdef GL_EXT_rescale_normal
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"rescale_normal", 14))
- {
- ret = GLEW_EXT_rescale_normal;
- continue;
- }
-#endif
-#ifdef GL_EXT_robustness
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness", 10))
- {
- ret = GLEW_EXT_robustness;
- continue;
- }
-#endif
-#ifdef GL_EXT_sRGB
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB", 4))
- {
- ret = GLEW_EXT_sRGB;
- continue;
- }
-#endif
-#ifdef GL_EXT_sRGB_write_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB_write_control", 18))
- {
- ret = GLEW_EXT_sRGB_write_control;
- continue;
- }
-#endif
-#ifdef GL_EXT_scene_marker
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_marker", 12))
- {
- ret = GLEW_EXT_scene_marker;
- continue;
- }
-#endif
-#ifdef GL_EXT_secondary_color
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"secondary_color", 15))
- {
- ret = GLEW_EXT_secondary_color;
- continue;
- }
-#endif
-#ifdef GL_EXT_semaphore
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore", 9))
- {
- ret = GLEW_EXT_semaphore;
- continue;
- }
-#endif
-#ifdef GL_EXT_semaphore_fd
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore_fd", 12))
- {
- ret = GLEW_EXT_semaphore_fd;
- continue;
- }
-#endif
-#ifdef GL_EXT_semaphore_win32
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore_win32", 15))
- {
- ret = GLEW_EXT_semaphore_win32;
- continue;
- }
-#endif
-#ifdef GL_EXT_separate_shader_objects
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"separate_shader_objects", 23))
- {
- ret = GLEW_EXT_separate_shader_objects;
- continue;
- }
-#endif
-#ifdef GL_EXT_separate_specular_color
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"separate_specular_color", 23))
- {
- ret = GLEW_EXT_separate_specular_color;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_framebuffer_fetch
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch", 24))
- {
- ret = GLEW_EXT_shader_framebuffer_fetch;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_framebuffer_fetch_non_coherent
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_non_coherent", 37))
- {
- ret = GLEW_EXT_shader_framebuffer_fetch_non_coherent;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_group_vote
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_group_vote", 17))
- {
- ret = GLEW_EXT_shader_group_vote;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_image_load_formatted
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_load_formatted", 27))
- {
- ret = GLEW_EXT_shader_image_load_formatted;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_image_load_store
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_load_store", 23))
- {
- ret = GLEW_EXT_shader_image_load_store;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_implicit_conversions
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_implicit_conversions", 27))
- {
- ret = GLEW_EXT_shader_implicit_conversions;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_integer_mix
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_integer_mix", 18))
- {
- ret = GLEW_EXT_shader_integer_mix;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_io_blocks
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_io_blocks", 16))
- {
- ret = GLEW_EXT_shader_io_blocks;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_non_constant_global_initializers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_non_constant_global_initializers", 39))
- {
- ret = GLEW_EXT_shader_non_constant_global_initializers;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_pixel_local_storage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_pixel_local_storage", 26))
- {
- ret = GLEW_EXT_shader_pixel_local_storage;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_pixel_local_storage2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_pixel_local_storage2", 27))
- {
- ret = GLEW_EXT_shader_pixel_local_storage2;
- continue;
- }
-#endif
-#ifdef GL_EXT_shader_texture_lod
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_lod", 18))
- {
- ret = GLEW_EXT_shader_texture_lod;
- continue;
- }
-#endif
-#ifdef GL_EXT_shadow_funcs
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_funcs", 12))
- {
- ret = GLEW_EXT_shadow_funcs;
- continue;
- }
-#endif
-#ifdef GL_EXT_shadow_samplers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers", 15))
- {
- ret = GLEW_EXT_shadow_samplers;
- continue;
- }
-#endif
-#ifdef GL_EXT_shared_texture_palette
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shared_texture_palette", 22))
- {
- ret = GLEW_EXT_shared_texture_palette;
- continue;
- }
-#endif
-#ifdef GL_EXT_sparse_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture", 14))
- {
- ret = GLEW_EXT_sparse_texture;
- continue;
- }
-#endif
-#ifdef GL_EXT_sparse_texture2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture2", 15))
- {
- ret = GLEW_EXT_sparse_texture2;
- continue;
- }
-#endif
-#ifdef GL_EXT_static_vertex_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"static_vertex_array", 19))
- {
- ret = GLEW_EXT_static_vertex_array;
- continue;
- }
-#endif
-#ifdef GL_EXT_stencil_clear_tag
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_clear_tag", 17))
- {
- ret = GLEW_EXT_stencil_clear_tag;
- continue;
- }
-#endif
-#ifdef GL_EXT_stencil_two_side
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_two_side", 16))
- {
- ret = GLEW_EXT_stencil_two_side;
- continue;
- }
-#endif
-#ifdef GL_EXT_stencil_wrap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_wrap", 12))
- {
- ret = GLEW_EXT_stencil_wrap;
- continue;
- }
-#endif
-#ifdef GL_EXT_subtexture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"subtexture", 10))
- {
- ret = GLEW_EXT_subtexture;
- continue;
- }
-#endif
-#ifdef GL_EXT_tessellation_point_size
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_point_size", 23))
- {
- ret = GLEW_EXT_tessellation_point_size;
- continue;
- }
-#endif
-#ifdef GL_EXT_tessellation_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_shader", 19))
- {
- ret = GLEW_EXT_tessellation_shader;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture", 7))
- {
- ret = GLEW_EXT_texture;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture3D
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture3D", 9))
- {
- ret = GLEW_EXT_texture3D;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_array", 13))
- {
- ret = GLEW_EXT_texture_array;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_border_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20))
- {
- ret = GLEW_EXT_texture_border_clamp;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer", 14))
- {
- ret = GLEW_EXT_texture_buffer;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer_object", 21))
- {
- ret = GLEW_EXT_texture_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_compression_astc_decode_mode
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_decode_mode", 36))
- {
- ret = GLEW_EXT_texture_compression_astc_decode_mode;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_decode_mode_rgb9e5", 43))
- {
- ret = GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_compression_bptc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_bptc", 24))
- {
- ret = GLEW_EXT_texture_compression_bptc;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_compression_dxt1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_dxt1", 24))
- {
- ret = GLEW_EXT_texture_compression_dxt1;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_compression_latc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_latc", 24))
- {
- ret = GLEW_EXT_texture_compression_latc;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_compression_rgtc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_rgtc", 24))
- {
- ret = GLEW_EXT_texture_compression_rgtc;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_compression_s3tc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc", 24))
- {
- ret = GLEW_EXT_texture_compression_s3tc;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_compression_s3tc_srgb
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc_srgb", 29))
- {
- ret = GLEW_EXT_texture_compression_s3tc_srgb;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_cube_map
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map", 16))
- {
- ret = GLEW_EXT_texture_cube_map;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_cube_map_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map_array", 22))
- {
- ret = GLEW_EXT_texture_cube_map_array;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_edge_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_edge_clamp", 18))
- {
- ret = GLEW_EXT_texture_edge_clamp;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_env
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env", 11))
- {
- ret = GLEW_EXT_texture_env;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_env_add
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_add", 15))
- {
- ret = GLEW_EXT_texture_env_add;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_env_combine
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_combine", 19))
- {
- ret = GLEW_EXT_texture_env_combine;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_env_dot3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_dot3", 16))
- {
- ret = GLEW_EXT_texture_env_dot3;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_filter_anisotropic
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_anisotropic", 26))
- {
- ret = GLEW_EXT_texture_filter_anisotropic;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_filter_minmax
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_minmax", 21))
- {
- ret = GLEW_EXT_texture_filter_minmax;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_format_BGRA8888
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_format_BGRA8888", 23))
- {
- ret = GLEW_EXT_texture_format_BGRA8888;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_format_sRGB_override
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_format_sRGB_override", 28))
- {
- ret = GLEW_EXT_texture_format_sRGB_override;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_integer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_integer", 15))
- {
- ret = GLEW_EXT_texture_integer;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_lod_bias
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_lod_bias", 16))
- {
- ret = GLEW_EXT_texture_lod_bias;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_mirror_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirror_clamp", 20))
- {
- ret = GLEW_EXT_texture_mirror_clamp;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_mirror_clamp_to_edge
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirror_clamp_to_edge", 28))
- {
- ret = GLEW_EXT_texture_mirror_clamp_to_edge;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_norm16
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_norm16", 14))
- {
- ret = GLEW_EXT_texture_norm16;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_object", 14))
- {
- ret = GLEW_EXT_texture_object;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_perturb_normal
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_perturb_normal", 22))
- {
- ret = GLEW_EXT_texture_perturb_normal;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_query_lod
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_query_lod", 17))
- {
- ret = GLEW_EXT_texture_query_lod;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_rectangle
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle", 17))
- {
- ret = GLEW_EXT_texture_rectangle;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_rg
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rg", 10))
- {
- ret = GLEW_EXT_texture_rg;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_sRGB
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB", 12))
- {
- ret = GLEW_EXT_texture_sRGB;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_sRGB_R8
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_R8", 15))
- {
- ret = GLEW_EXT_texture_sRGB_R8;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_sRGB_RG8
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_RG8", 16))
- {
- ret = GLEW_EXT_texture_sRGB_RG8;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_sRGB_decode
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_decode", 19))
- {
- ret = GLEW_EXT_texture_sRGB_decode;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_shadow_lod
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shadow_lod", 18))
- {
- ret = GLEW_EXT_texture_shadow_lod;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_shared_exponent
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shared_exponent", 23))
- {
- ret = GLEW_EXT_texture_shared_exponent;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_snorm
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_snorm", 13))
- {
- ret = GLEW_EXT_texture_snorm;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_storage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_storage", 15))
- {
- ret = GLEW_EXT_texture_storage;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_swizzle
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_swizzle", 15))
- {
- ret = GLEW_EXT_texture_swizzle;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_type_2_10_10_10_REV
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_type_2_10_10_10_REV", 27))
- {
- ret = GLEW_EXT_texture_type_2_10_10_10_REV;
- continue;
- }
-#endif
-#ifdef GL_EXT_texture_view
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_view", 12))
- {
- ret = GLEW_EXT_texture_view;
- continue;
- }
-#endif
-#ifdef GL_EXT_timer_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"timer_query", 11))
- {
- ret = GLEW_EXT_timer_query;
- continue;
- }
-#endif
-#ifdef GL_EXT_transform_feedback
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback", 18))
- {
- ret = GLEW_EXT_transform_feedback;
- continue;
- }
-#endif
-#ifdef GL_EXT_unpack_subimage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"unpack_subimage", 15))
- {
- ret = GLEW_EXT_unpack_subimage;
- continue;
- }
-#endif
-#ifdef GL_EXT_vertex_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array", 12))
- {
- ret = GLEW_EXT_vertex_array;
- continue;
- }
-#endif
-#ifdef GL_EXT_vertex_array_bgra
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_bgra", 17))
- {
- ret = GLEW_EXT_vertex_array_bgra;
- continue;
- }
-#endif
-#ifdef GL_EXT_vertex_array_setXXX
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_setXXX", 19))
- {
- ret = GLEW_EXT_vertex_array_setXXX;
- continue;
- }
-#endif
-#ifdef GL_EXT_vertex_attrib_64bit
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_64bit", 19))
- {
- ret = GLEW_EXT_vertex_attrib_64bit;
- continue;
- }
-#endif
-#ifdef GL_EXT_vertex_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader", 13))
- {
- ret = GLEW_EXT_vertex_shader;
- continue;
- }
-#endif
-#ifdef GL_EXT_vertex_weighting
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_weighting", 16))
- {
- ret = GLEW_EXT_vertex_weighting;
- continue;
- }
-#endif
-#ifdef GL_EXT_win32_keyed_mutex
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"win32_keyed_mutex", 17))
- {
- ret = GLEW_EXT_win32_keyed_mutex;
- continue;
- }
-#endif
-#ifdef GL_EXT_window_rectangles
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_rectangles", 17))
- {
- ret = GLEW_EXT_window_rectangles;
- continue;
- }
-#endif
-#ifdef GL_EXT_x11_sync_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"x11_sync_object", 15))
- {
- ret = GLEW_EXT_x11_sync_object;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"FJ_", 3))
- {
-#ifdef GL_FJ_shader_binary_GCCSO
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary_GCCSO", 19))
- {
- ret = GLEW_FJ_shader_binary_GCCSO;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"GREMEDY_", 8))
- {
-#ifdef GL_GREMEDY_frame_terminator
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"frame_terminator", 16))
- {
- ret = GLEW_GREMEDY_frame_terminator;
- continue;
- }
-#endif
-#ifdef GL_GREMEDY_string_marker
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"string_marker", 13))
- {
- ret = GLEW_GREMEDY_string_marker;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"HP_", 3))
- {
-#ifdef GL_HP_convolution_border_modes
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution_border_modes", 24))
- {
- ret = GLEW_HP_convolution_border_modes;
- continue;
- }
-#endif
-#ifdef GL_HP_image_transform
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_transform", 15))
- {
- ret = GLEW_HP_image_transform;
- continue;
- }
-#endif
-#ifdef GL_HP_occlusion_test
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_test", 14))
- {
- ret = GLEW_HP_occlusion_test;
- continue;
- }
-#endif
-#ifdef GL_HP_texture_lighting
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_lighting", 16))
- {
- ret = GLEW_HP_texture_lighting;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"IBM_", 4))
- {
-#ifdef GL_IBM_cull_vertex
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"cull_vertex", 11))
- {
- ret = GLEW_IBM_cull_vertex;
- continue;
- }
-#endif
-#ifdef GL_IBM_multimode_draw_arrays
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multimode_draw_arrays", 21))
- {
- ret = GLEW_IBM_multimode_draw_arrays;
- continue;
- }
-#endif
-#ifdef GL_IBM_rasterpos_clip
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"rasterpos_clip", 14))
- {
- ret = GLEW_IBM_rasterpos_clip;
- continue;
- }
-#endif
-#ifdef GL_IBM_static_data
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"static_data", 11))
- {
- ret = GLEW_IBM_static_data;
- continue;
- }
-#endif
-#ifdef GL_IBM_texture_mirrored_repeat
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirrored_repeat", 23))
- {
- ret = GLEW_IBM_texture_mirrored_repeat;
- continue;
- }
-#endif
-#ifdef GL_IBM_vertex_array_lists
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_lists", 18))
- {
- ret = GLEW_IBM_vertex_array_lists;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"IMG_", 4))
- {
-#ifdef GL_IMG_bindless_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_texture", 16))
- {
- ret = GLEW_IMG_bindless_texture;
- continue;
- }
-#endif
-#ifdef GL_IMG_framebuffer_downsample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_downsample", 22))
- {
- ret = GLEW_IMG_framebuffer_downsample;
- continue;
- }
-#endif
-#ifdef GL_IMG_multisampled_render_to_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisampled_render_to_texture", 30))
- {
- ret = GLEW_IMG_multisampled_render_to_texture;
- continue;
- }
-#endif
-#ifdef GL_IMG_program_binary
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary", 14))
- {
- ret = GLEW_IMG_program_binary;
- continue;
- }
-#endif
-#ifdef GL_IMG_read_format
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_format", 11))
- {
- ret = GLEW_IMG_read_format;
- continue;
- }
-#endif
-#ifdef GL_IMG_shader_binary
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary", 13))
- {
- ret = GLEW_IMG_shader_binary;
- continue;
- }
-#endif
-#ifdef GL_IMG_texture_compression_pvrtc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_pvrtc", 25))
- {
- ret = GLEW_IMG_texture_compression_pvrtc;
- continue;
- }
-#endif
-#ifdef GL_IMG_texture_compression_pvrtc2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_pvrtc2", 26))
- {
- ret = GLEW_IMG_texture_compression_pvrtc2;
- continue;
- }
-#endif
-#ifdef GL_IMG_texture_env_enhanced_fixed_function
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_enhanced_fixed_function", 35))
- {
- ret = GLEW_IMG_texture_env_enhanced_fixed_function;
- continue;
- }
-#endif
-#ifdef GL_IMG_texture_filter_cubic
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_cubic", 20))
- {
- ret = GLEW_IMG_texture_filter_cubic;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"INGR_", 5))
- {
-#ifdef GL_INGR_color_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_clamp", 11))
- {
- ret = GLEW_INGR_color_clamp;
- continue;
- }
-#endif
-#ifdef GL_INGR_interlace_read
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"interlace_read", 14))
- {
- ret = GLEW_INGR_interlace_read;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"INTEL_", 6))
- {
-#ifdef GL_INTEL_blackhole_render
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blackhole_render", 16))
- {
- ret = GLEW_INTEL_blackhole_render;
- continue;
- }
-#endif
-#ifdef GL_INTEL_conservative_rasterization
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_rasterization", 26))
- {
- ret = GLEW_INTEL_conservative_rasterization;
- continue;
- }
-#endif
-#ifdef GL_INTEL_fragment_shader_ordering
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_ordering", 24))
- {
- ret = GLEW_INTEL_fragment_shader_ordering;
- continue;
- }
-#endif
-#ifdef GL_INTEL_framebuffer_CMAA
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_CMAA", 16))
- {
- ret = GLEW_INTEL_framebuffer_CMAA;
- continue;
- }
-#endif
-#ifdef GL_INTEL_map_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_texture", 11))
- {
- ret = GLEW_INTEL_map_texture;
- continue;
- }
-#endif
-#ifdef GL_INTEL_parallel_arrays
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"parallel_arrays", 15))
- {
- ret = GLEW_INTEL_parallel_arrays;
- continue;
- }
-#endif
-#ifdef GL_INTEL_performance_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"performance_query", 17))
- {
- ret = GLEW_INTEL_performance_query;
- continue;
- }
-#endif
-#ifdef GL_INTEL_shader_integer_functions2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_integer_functions2", 25))
- {
- ret = GLEW_INTEL_shader_integer_functions2;
- continue;
- }
-#endif
-#ifdef GL_INTEL_texture_scissor
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_scissor", 15))
- {
- ret = GLEW_INTEL_texture_scissor;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"KHR_", 4))
- {
-#ifdef GL_KHR_blend_equation_advanced
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced", 23))
- {
- ret = GLEW_KHR_blend_equation_advanced;
- continue;
- }
-#endif
-#ifdef GL_KHR_blend_equation_advanced_coherent
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced_coherent", 32))
- {
- ret = GLEW_KHR_blend_equation_advanced_coherent;
- continue;
- }
-#endif
-#ifdef GL_KHR_context_flush_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_flush_control", 21))
- {
- ret = GLEW_KHR_context_flush_control;
- continue;
- }
-#endif
-#ifdef GL_KHR_debug
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug", 5))
- {
- ret = GLEW_KHR_debug;
- continue;
- }
-#endif
-#ifdef GL_KHR_no_error
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"no_error", 8))
- {
- ret = GLEW_KHR_no_error;
- continue;
- }
-#endif
-#ifdef GL_KHR_parallel_shader_compile
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"parallel_shader_compile", 23))
- {
- ret = GLEW_KHR_parallel_shader_compile;
- continue;
- }
-#endif
-#ifdef GL_KHR_robust_buffer_access_behavior
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robust_buffer_access_behavior", 29))
- {
- ret = GLEW_KHR_robust_buffer_access_behavior;
- continue;
- }
-#endif
-#ifdef GL_KHR_robustness
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness", 10))
- {
- ret = GLEW_KHR_robustness;
- continue;
- }
-#endif
-#ifdef GL_KHR_shader_subgroup
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_subgroup", 15))
- {
- ret = GLEW_KHR_shader_subgroup;
- continue;
- }
-#endif
-#ifdef GL_KHR_texture_compression_astc_hdr
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_hdr", 28))
- {
- ret = GLEW_KHR_texture_compression_astc_hdr;
- continue;
- }
-#endif
-#ifdef GL_KHR_texture_compression_astc_ldr
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_ldr", 28))
- {
- ret = GLEW_KHR_texture_compression_astc_ldr;
- continue;
- }
-#endif
-#ifdef GL_KHR_texture_compression_astc_sliced_3d
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_sliced_3d", 34))
- {
- ret = GLEW_KHR_texture_compression_astc_sliced_3d;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"KTX_", 4))
- {
-#ifdef GL_KTX_buffer_region
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_region", 13))
- {
- ret = GLEW_KTX_buffer_region;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESAX_", 6))
- {
-#ifdef GL_MESAX_texture_stack
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_stack", 13))
- {
- ret = GLEW_MESAX_texture_stack;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESA_", 5))
- {
-#ifdef GL_MESA_framebuffer_flip_y
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_flip_y", 18))
- {
- ret = GLEW_MESA_framebuffer_flip_y;
- continue;
- }
-#endif
-#ifdef GL_MESA_pack_invert
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pack_invert", 11))
- {
- ret = GLEW_MESA_pack_invert;
- continue;
- }
-#endif
-#ifdef GL_MESA_program_binary_formats
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary_formats", 22))
- {
- ret = GLEW_MESA_program_binary_formats;
- continue;
- }
-#endif
-#ifdef GL_MESA_resize_buffers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"resize_buffers", 14))
- {
- ret = GLEW_MESA_resize_buffers;
- continue;
- }
-#endif
-#ifdef GL_MESA_shader_integer_functions
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_integer_functions", 24))
- {
- ret = GLEW_MESA_shader_integer_functions;
- continue;
- }
-#endif
-#ifdef GL_MESA_tile_raster_order
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"tile_raster_order", 17))
- {
- ret = GLEW_MESA_tile_raster_order;
- continue;
- }
-#endif
-#ifdef GL_MESA_window_pos
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_pos", 10))
- {
- ret = GLEW_MESA_window_pos;
- continue;
- }
-#endif
-#ifdef GL_MESA_ycbcr_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycbcr_texture", 13))
- {
- ret = GLEW_MESA_ycbcr_texture;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"NVX_", 4))
- {
-#ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced_multi_draw_buffers", 42))
- {
- ret = GLEW_NVX_blend_equation_advanced_multi_draw_buffers;
- continue;
- }
-#endif
-#ifdef GL_NVX_conditional_render
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conditional_render", 18))
- {
- ret = GLEW_NVX_conditional_render;
- continue;
- }
-#endif
-#ifdef GL_NVX_gpu_memory_info
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_memory_info", 15))
- {
- ret = GLEW_NVX_gpu_memory_info;
- continue;
- }
-#endif
-#ifdef GL_NVX_gpu_multicast2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_multicast2", 14))
- {
- ret = GLEW_NVX_gpu_multicast2;
- continue;
- }
-#endif
-#ifdef GL_NVX_linked_gpu_multicast
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"linked_gpu_multicast", 20))
- {
- ret = GLEW_NVX_linked_gpu_multicast;
- continue;
- }
-#endif
-#ifdef GL_NVX_progress_fence
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"progress_fence", 14))
- {
- ret = GLEW_NVX_progress_fence;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3))
- {
-#ifdef GL_NV_3dvision_settings
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"3dvision_settings", 17))
- {
- ret = GLEW_NV_3dvision_settings;
- continue;
- }
-#endif
-#ifdef GL_NV_EGL_stream_consumer_external
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_stream_consumer_external", 28))
- {
- ret = GLEW_NV_EGL_stream_consumer_external;
- continue;
- }
-#endif
-#ifdef GL_NV_alpha_to_coverage_dither_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"alpha_to_coverage_dither_control", 32))
- {
- ret = GLEW_NV_alpha_to_coverage_dither_control;
- continue;
- }
-#endif
-#ifdef GL_NV_bgr
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bgr", 3))
- {
- ret = GLEW_NV_bgr;
- continue;
- }
-#endif
-#ifdef GL_NV_bindless_multi_draw_indirect
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_multi_draw_indirect", 28))
- {
- ret = GLEW_NV_bindless_multi_draw_indirect;
- continue;
- }
-#endif
-#ifdef GL_NV_bindless_multi_draw_indirect_count
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_multi_draw_indirect_count", 34))
- {
- ret = GLEW_NV_bindless_multi_draw_indirect_count;
- continue;
- }
-#endif
-#ifdef GL_NV_bindless_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_texture", 16))
- {
- ret = GLEW_NV_bindless_texture;
- continue;
- }
-#endif
-#ifdef GL_NV_blend_equation_advanced
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced", 23))
- {
- ret = GLEW_NV_blend_equation_advanced;
- continue;
- }
-#endif
-#ifdef GL_NV_blend_equation_advanced_coherent
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced_coherent", 32))
- {
- ret = GLEW_NV_blend_equation_advanced_coherent;
- continue;
- }
-#endif
-#ifdef GL_NV_blend_minmax_factor
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_minmax_factor", 19))
- {
- ret = GLEW_NV_blend_minmax_factor;
- continue;
- }
-#endif
-#ifdef GL_NV_blend_square
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_square", 12))
- {
- ret = GLEW_NV_blend_square;
- continue;
- }
-#endif
-#ifdef GL_NV_clip_space_w_scaling
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_space_w_scaling", 20))
- {
- ret = GLEW_NV_clip_space_w_scaling;
- continue;
- }
-#endif
-#ifdef GL_NV_command_list
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"command_list", 12))
- {
- ret = GLEW_NV_command_list;
- continue;
- }
-#endif
-#ifdef GL_NV_compute_program5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compute_program5", 16))
- {
- ret = GLEW_NV_compute_program5;
- continue;
- }
-#endif
-#ifdef GL_NV_compute_shader_derivatives
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compute_shader_derivatives", 26))
- {
- ret = GLEW_NV_compute_shader_derivatives;
- continue;
- }
-#endif
-#ifdef GL_NV_conditional_render
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conditional_render", 18))
- {
- ret = GLEW_NV_conditional_render;
- continue;
- }
-#endif
-#ifdef GL_NV_conservative_raster
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster", 19))
- {
- ret = GLEW_NV_conservative_raster;
- continue;
- }
-#endif
-#ifdef GL_NV_conservative_raster_dilate
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_dilate", 26))
- {
- ret = GLEW_NV_conservative_raster_dilate;
- continue;
- }
-#endif
-#ifdef GL_NV_conservative_raster_pre_snap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_pre_snap", 28))
- {
- ret = GLEW_NV_conservative_raster_pre_snap;
- continue;
- }
-#endif
-#ifdef GL_NV_conservative_raster_pre_snap_triangles
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_pre_snap_triangles", 38))
- {
- ret = GLEW_NV_conservative_raster_pre_snap_triangles;
- continue;
- }
-#endif
-#ifdef GL_NV_conservative_raster_underestimation
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_underestimation", 35))
- {
- ret = GLEW_NV_conservative_raster_underestimation;
- continue;
- }
-#endif
-#ifdef GL_NV_copy_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_buffer", 11))
- {
- ret = GLEW_NV_copy_buffer;
- continue;
- }
-#endif
-#ifdef GL_NV_copy_depth_to_color
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_depth_to_color", 19))
- {
- ret = GLEW_NV_copy_depth_to_color;
- continue;
- }
-#endif
-#ifdef GL_NV_copy_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10))
- {
- ret = GLEW_NV_copy_image;
- continue;
- }
-#endif
-#ifdef GL_NV_deep_texture3D
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"deep_texture3D", 14))
- {
- ret = GLEW_NV_deep_texture3D;
- continue;
- }
-#endif
-#ifdef GL_NV_depth_buffer_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_buffer_float", 18))
- {
- ret = GLEW_NV_depth_buffer_float;
- continue;
- }
-#endif
-#ifdef GL_NV_depth_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_clamp", 11))
- {
- ret = GLEW_NV_depth_clamp;
- continue;
- }
-#endif
-#ifdef GL_NV_depth_nonlinear
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_nonlinear", 15))
- {
- ret = GLEW_NV_depth_nonlinear;
- continue;
- }
-#endif
-#ifdef GL_NV_depth_range_unclamped
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_range_unclamped", 21))
- {
- ret = GLEW_NV_depth_range_unclamped;
- continue;
- }
-#endif
-#ifdef GL_NV_draw_buffers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12))
- {
- ret = GLEW_NV_draw_buffers;
- continue;
- }
-#endif
-#ifdef GL_NV_draw_instanced
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_instanced", 14))
- {
- ret = GLEW_NV_draw_instanced;
- continue;
- }
-#endif
-#ifdef GL_NV_draw_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_texture", 12))
- {
- ret = GLEW_NV_draw_texture;
- continue;
- }
-#endif
-#ifdef GL_NV_draw_vulkan_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_vulkan_image", 17))
- {
- ret = GLEW_NV_draw_vulkan_image;
- continue;
- }
-#endif
-#ifdef GL_NV_evaluators
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"evaluators", 10))
- {
- ret = GLEW_NV_evaluators;
- continue;
- }
-#endif
-#ifdef GL_NV_explicit_attrib_location
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_attrib_location", 24))
- {
- ret = GLEW_NV_explicit_attrib_location;
- continue;
- }
-#endif
-#ifdef GL_NV_explicit_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_multisample", 20))
- {
- ret = GLEW_NV_explicit_multisample;
- continue;
- }
-#endif
-#ifdef GL_NV_fbo_color_attachments
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbo_color_attachments", 21))
- {
- ret = GLEW_NV_fbo_color_attachments;
- continue;
- }
-#endif
-#ifdef GL_NV_fence
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fence", 5))
- {
- ret = GLEW_NV_fence;
- continue;
- }
-#endif
-#ifdef GL_NV_fill_rectangle
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fill_rectangle", 14))
- {
- ret = GLEW_NV_fill_rectangle;
- continue;
- }
-#endif
-#ifdef GL_NV_float_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_buffer", 12))
- {
- ret = GLEW_NV_float_buffer;
- continue;
- }
-#endif
-#ifdef GL_NV_fog_distance
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_distance", 12))
- {
- ret = GLEW_NV_fog_distance;
- continue;
- }
-#endif
-#ifdef GL_NV_fragment_coverage_to_color
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_coverage_to_color", 26))
- {
- ret = GLEW_NV_fragment_coverage_to_color;
- continue;
- }
-#endif
-#ifdef GL_NV_fragment_program
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program", 16))
- {
- ret = GLEW_NV_fragment_program;
- continue;
- }
-#endif
-#ifdef GL_NV_fragment_program2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program2", 17))
- {
- ret = GLEW_NV_fragment_program2;
- continue;
- }
-#endif
-#ifdef GL_NV_fragment_program4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program4", 17))
- {
- ret = GLEW_NV_fragment_program4;
- continue;
- }
-#endif
-#ifdef GL_NV_fragment_program_option
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program_option", 23))
- {
- ret = GLEW_NV_fragment_program_option;
- continue;
- }
-#endif
-#ifdef GL_NV_fragment_shader_barycentric
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_barycentric", 27))
- {
- ret = GLEW_NV_fragment_shader_barycentric;
- continue;
- }
-#endif
-#ifdef GL_NV_fragment_shader_interlock
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_interlock", 25))
- {
- ret = GLEW_NV_fragment_shader_interlock;
- continue;
- }
-#endif
-#ifdef GL_NV_framebuffer_blit
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_blit", 16))
- {
- ret = GLEW_NV_framebuffer_blit;
- continue;
- }
-#endif
-#ifdef GL_NV_framebuffer_mixed_samples
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_mixed_samples", 25))
- {
- ret = GLEW_NV_framebuffer_mixed_samples;
- continue;
- }
-#endif
-#ifdef GL_NV_framebuffer_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23))
- {
- ret = GLEW_NV_framebuffer_multisample;
- continue;
- }
-#endif
-#ifdef GL_NV_framebuffer_multisample_coverage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample_coverage", 32))
- {
- ret = GLEW_NV_framebuffer_multisample_coverage;
- continue;
- }
-#endif
-#ifdef GL_NV_generate_mipmap_sRGB
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"generate_mipmap_sRGB", 20))
- {
- ret = GLEW_NV_generate_mipmap_sRGB;
- continue;
- }
-#endif
-#ifdef GL_NV_geometry_program4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_program4", 17))
- {
- ret = GLEW_NV_geometry_program4;
- continue;
- }
-#endif
-#ifdef GL_NV_geometry_shader4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader4", 16))
- {
- ret = GLEW_NV_geometry_shader4;
- continue;
- }
-#endif
-#ifdef GL_NV_geometry_shader_passthrough
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader_passthrough", 27))
- {
- ret = GLEW_NV_geometry_shader_passthrough;
- continue;
- }
-#endif
-#ifdef GL_NV_gpu_multicast
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_multicast", 13))
- {
- ret = GLEW_NV_gpu_multicast;
- continue;
- }
-#endif
-#ifdef GL_NV_gpu_program4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program4", 12))
- {
- ret = GLEW_NV_gpu_program4;
- continue;
- }
-#endif
-#ifdef GL_NV_gpu_program5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program5", 12))
- {
- ret = GLEW_NV_gpu_program5;
- continue;
- }
-#endif
-#ifdef GL_NV_gpu_program5_mem_extended
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program5_mem_extended", 25))
- {
- ret = GLEW_NV_gpu_program5_mem_extended;
- continue;
- }
-#endif
-#ifdef GL_NV_gpu_program_fp64
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program_fp64", 16))
- {
- ret = GLEW_NV_gpu_program_fp64;
- continue;
- }
-#endif
-#ifdef GL_NV_gpu_shader5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11))
- {
- ret = GLEW_NV_gpu_shader5;
- continue;
- }
-#endif
-#ifdef GL_NV_half_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"half_float", 10))
- {
- ret = GLEW_NV_half_float;
- continue;
- }
-#endif
-#ifdef GL_NV_image_formats
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_formats", 13))
- {
- ret = GLEW_NV_image_formats;
- continue;
- }
-#endif
-#ifdef GL_NV_instanced_arrays
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16))
- {
- ret = GLEW_NV_instanced_arrays;
- continue;
- }
-#endif
-#ifdef GL_NV_internalformat_sample_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"internalformat_sample_query", 27))
- {
- ret = GLEW_NV_internalformat_sample_query;
- continue;
- }
-#endif
-#ifdef GL_NV_light_max_exponent
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"light_max_exponent", 18))
- {
- ret = GLEW_NV_light_max_exponent;
- continue;
- }
-#endif
-#ifdef GL_NV_memory_attachment
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_attachment", 17))
- {
- ret = GLEW_NV_memory_attachment;
- continue;
- }
-#endif
-#ifdef GL_NV_mesh_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"mesh_shader", 11))
- {
- ret = GLEW_NV_mesh_shader;
- continue;
- }
-#endif
-#ifdef GL_NV_multisample_coverage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20))
- {
- ret = GLEW_NV_multisample_coverage;
- continue;
- }
-#endif
-#ifdef GL_NV_multisample_filter_hint
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_filter_hint", 23))
- {
- ret = GLEW_NV_multisample_filter_hint;
- continue;
- }
-#endif
-#ifdef GL_NV_non_square_matrices
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"non_square_matrices", 19))
- {
- ret = GLEW_NV_non_square_matrices;
- continue;
- }
-#endif
-#ifdef GL_NV_occlusion_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query", 15))
- {
- ret = GLEW_NV_occlusion_query;
- continue;
- }
-#endif
-#ifdef GL_NV_pack_subimage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pack_subimage", 13))
- {
- ret = GLEW_NV_pack_subimage;
- continue;
- }
-#endif
-#ifdef GL_NV_packed_depth_stencil
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_depth_stencil", 20))
- {
- ret = GLEW_NV_packed_depth_stencil;
- continue;
- }
-#endif
-#ifdef GL_NV_packed_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_float", 12))
- {
- ret = GLEW_NV_packed_float;
- continue;
- }
-#endif
-#ifdef GL_NV_packed_float_linear
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_float_linear", 19))
- {
- ret = GLEW_NV_packed_float_linear;
- continue;
- }
-#endif
-#ifdef GL_NV_parameter_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"parameter_buffer_object", 23))
- {
- ret = GLEW_NV_parameter_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_NV_parameter_buffer_object2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"parameter_buffer_object2", 24))
- {
- ret = GLEW_NV_parameter_buffer_object2;
- continue;
- }
-#endif
-#ifdef GL_NV_path_rendering
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"path_rendering", 14))
- {
- ret = GLEW_NV_path_rendering;
- continue;
- }
-#endif
-#ifdef GL_NV_path_rendering_shared_edge
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"path_rendering_shared_edge", 26))
- {
- ret = GLEW_NV_path_rendering_shared_edge;
- continue;
- }
-#endif
-#ifdef GL_NV_pixel_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_buffer_object", 19))
- {
- ret = GLEW_NV_pixel_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_NV_pixel_data_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_data_range", 16))
- {
- ret = GLEW_NV_pixel_data_range;
- continue;
- }
-#endif
-#ifdef GL_NV_platform_binary
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_binary", 15))
- {
- ret = GLEW_NV_platform_binary;
- continue;
- }
-#endif
-#ifdef GL_NV_point_sprite
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_sprite", 12))
- {
- ret = GLEW_NV_point_sprite;
- continue;
- }
-#endif
-#ifdef GL_NV_polygon_mode
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_mode", 12))
- {
- ret = GLEW_NV_polygon_mode;
- continue;
- }
-#endif
-#ifdef GL_NV_present_video
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"present_video", 13))
- {
- ret = GLEW_NV_present_video;
- continue;
- }
-#endif
-#ifdef GL_NV_primitive_restart
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"primitive_restart", 17))
- {
- ret = GLEW_NV_primitive_restart;
- continue;
- }
-#endif
-#ifdef GL_NV_query_resource_tag
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_resource_tag", 18))
- {
- ret = GLEW_NV_query_resource_tag;
- continue;
- }
-#endif
-#ifdef GL_NV_read_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_buffer", 11))
- {
- ret = GLEW_NV_read_buffer;
- continue;
- }
-#endif
-#ifdef GL_NV_read_buffer_front
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_buffer_front", 17))
- {
- ret = GLEW_NV_read_buffer_front;
- continue;
- }
-#endif
-#ifdef GL_NV_read_depth
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_depth", 10))
- {
- ret = GLEW_NV_read_depth;
- continue;
- }
-#endif
-#ifdef GL_NV_read_depth_stencil
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_depth_stencil", 18))
- {
- ret = GLEW_NV_read_depth_stencil;
- continue;
- }
-#endif
-#ifdef GL_NV_read_stencil
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_stencil", 12))
- {
- ret = GLEW_NV_read_stencil;
- continue;
- }
-#endif
-#ifdef GL_NV_register_combiners
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"register_combiners", 18))
- {
- ret = GLEW_NV_register_combiners;
- continue;
- }
-#endif
-#ifdef GL_NV_register_combiners2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"register_combiners2", 19))
- {
- ret = GLEW_NV_register_combiners2;
- continue;
- }
-#endif
-#ifdef GL_NV_representative_fragment_test
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"representative_fragment_test", 28))
- {
- ret = GLEW_NV_representative_fragment_test;
- continue;
- }
-#endif
-#ifdef GL_NV_robustness_video_memory_purge
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29))
- {
- ret = GLEW_NV_robustness_video_memory_purge;
- continue;
- }
-#endif
-#ifdef GL_NV_sRGB_formats
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB_formats", 12))
- {
- ret = GLEW_NV_sRGB_formats;
- continue;
- }
-#endif
-#ifdef GL_NV_sample_locations
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_locations", 16))
- {
- ret = GLEW_NV_sample_locations;
- continue;
- }
-#endif
-#ifdef GL_NV_sample_mask_override_coverage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_mask_override_coverage", 29))
- {
- ret = GLEW_NV_sample_mask_override_coverage;
- continue;
- }
-#endif
-#ifdef GL_NV_scissor_exclusive
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"scissor_exclusive", 17))
- {
- ret = GLEW_NV_scissor_exclusive;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_atomic_counters
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_counters", 22))
- {
- ret = GLEW_NV_shader_atomic_counters;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_atomic_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_float", 19))
- {
- ret = GLEW_NV_shader_atomic_float;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_atomic_float64
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_float64", 21))
- {
- ret = GLEW_NV_shader_atomic_float64;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_atomic_fp16_vector
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_fp16_vector", 25))
- {
- ret = GLEW_NV_shader_atomic_fp16_vector;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_atomic_int64
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_int64", 19))
- {
- ret = GLEW_NV_shader_atomic_int64;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_buffer_load
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_buffer_load", 18))
- {
- ret = GLEW_NV_shader_buffer_load;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_noperspective_interpolation
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_noperspective_interpolation", 34))
- {
- ret = GLEW_NV_shader_noperspective_interpolation;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_storage_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_storage_buffer_object", 28))
- {
- ret = GLEW_NV_shader_storage_buffer_object;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_subgroup_partitioned
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_subgroup_partitioned", 27))
- {
- ret = GLEW_NV_shader_subgroup_partitioned;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_texture_footprint
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_footprint", 24))
- {
- ret = GLEW_NV_shader_texture_footprint;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_thread_group
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_thread_group", 19))
- {
- ret = GLEW_NV_shader_thread_group;
- continue;
- }
-#endif
-#ifdef GL_NV_shader_thread_shuffle
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_thread_shuffle", 21))
- {
- ret = GLEW_NV_shader_thread_shuffle;
- continue;
- }
-#endif
-#ifdef GL_NV_shading_rate_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shading_rate_image", 18))
- {
- ret = GLEW_NV_shading_rate_image;
- continue;
- }
-#endif
-#ifdef GL_NV_shadow_samplers_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers_array", 21))
- {
- ret = GLEW_NV_shadow_samplers_array;
- continue;
- }
-#endif
-#ifdef GL_NV_shadow_samplers_cube
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers_cube", 20))
- {
- ret = GLEW_NV_shadow_samplers_cube;
- continue;
- }
-#endif
-#ifdef GL_NV_stereo_view_rendering
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stereo_view_rendering", 21))
- {
- ret = GLEW_NV_stereo_view_rendering;
- continue;
- }
-#endif
-#ifdef GL_NV_tessellation_program5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_program5", 21))
- {
- ret = GLEW_NV_tessellation_program5;
- continue;
- }
-#endif
-#ifdef GL_NV_texgen_emboss
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texgen_emboss", 13))
- {
- ret = GLEW_NV_texgen_emboss;
- continue;
- }
-#endif
-#ifdef GL_NV_texgen_reflection
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texgen_reflection", 17))
- {
- ret = GLEW_NV_texgen_reflection;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_array", 13))
- {
- ret = GLEW_NV_texture_array;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_barrier
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_barrier", 15))
- {
- ret = GLEW_NV_texture_barrier;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_border_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20))
- {
- ret = GLEW_NV_texture_border_clamp;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_compression_latc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_latc", 24))
- {
- ret = GLEW_NV_texture_compression_latc;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_compression_s3tc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc", 24))
- {
- ret = GLEW_NV_texture_compression_s3tc;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_compression_s3tc_update
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc_update", 31))
- {
- ret = GLEW_NV_texture_compression_s3tc_update;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_compression_vtc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_vtc", 23))
- {
- ret = GLEW_NV_texture_compression_vtc;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_env_combine4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_combine4", 20))
- {
- ret = GLEW_NV_texture_env_combine4;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_expand_normal
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_expand_normal", 21))
- {
- ret = GLEW_NV_texture_expand_normal;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_multisample", 19))
- {
- ret = GLEW_NV_texture_multisample;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_npot_2D_mipmap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_npot_2D_mipmap", 22))
- {
- ret = GLEW_NV_texture_npot_2D_mipmap;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_rectangle
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle", 17))
- {
- ret = GLEW_NV_texture_rectangle;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_rectangle_compressed
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle_compressed", 28))
- {
- ret = GLEW_NV_texture_rectangle_compressed;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shader", 14))
- {
- ret = GLEW_NV_texture_shader;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_shader2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shader2", 15))
- {
- ret = GLEW_NV_texture_shader2;
- continue;
- }
-#endif
-#ifdef GL_NV_texture_shader3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shader3", 15))
- {
- ret = GLEW_NV_texture_shader3;
- continue;
- }
-#endif
-#ifdef GL_NV_transform_feedback
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback", 18))
- {
- ret = GLEW_NV_transform_feedback;
- continue;
- }
-#endif
-#ifdef GL_NV_transform_feedback2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback2", 19))
- {
- ret = GLEW_NV_transform_feedback2;
- continue;
- }
-#endif
-#ifdef GL_NV_uniform_buffer_unified_memory
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"uniform_buffer_unified_memory", 29))
- {
- ret = GLEW_NV_uniform_buffer_unified_memory;
- continue;
- }
-#endif
-#ifdef GL_NV_vdpau_interop
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vdpau_interop", 13))
- {
- ret = GLEW_NV_vdpau_interop;
- continue;
- }
-#endif
-#ifdef GL_NV_vdpau_interop2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vdpau_interop2", 14))
- {
- ret = GLEW_NV_vdpau_interop2;
- continue;
- }
-#endif
-#ifdef GL_NV_vertex_array_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range", 18))
- {
- ret = GLEW_NV_vertex_array_range;
- continue;
- }
-#endif
-#ifdef GL_NV_vertex_array_range2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range2", 19))
- {
- ret = GLEW_NV_vertex_array_range2;
- continue;
- }
-#endif
-#ifdef GL_NV_vertex_attrib_integer_64bit
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_integer_64bit", 27))
- {
- ret = GLEW_NV_vertex_attrib_integer_64bit;
- continue;
- }
-#endif
-#ifdef GL_NV_vertex_buffer_unified_memory
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_buffer_unified_memory", 28))
- {
- ret = GLEW_NV_vertex_buffer_unified_memory;
- continue;
- }
-#endif
-#ifdef GL_NV_vertex_program
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program", 14))
- {
- ret = GLEW_NV_vertex_program;
- continue;
- }
-#endif
-#ifdef GL_NV_vertex_program1_1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program1_1", 17))
- {
- ret = GLEW_NV_vertex_program1_1;
- continue;
- }
-#endif
-#ifdef GL_NV_vertex_program2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program2", 15))
- {
- ret = GLEW_NV_vertex_program2;
- continue;
- }
-#endif
-#ifdef GL_NV_vertex_program2_option
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program2_option", 22))
- {
- ret = GLEW_NV_vertex_program2_option;
- continue;
- }
-#endif
-#ifdef GL_NV_vertex_program3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program3", 15))
- {
- ret = GLEW_NV_vertex_program3;
- continue;
- }
-#endif
-#ifdef GL_NV_vertex_program4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program4", 15))
- {
- ret = GLEW_NV_vertex_program4;
- continue;
- }
-#endif
-#ifdef GL_NV_video_capture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_capture", 13))
- {
- ret = GLEW_NV_video_capture;
- continue;
- }
-#endif
-#ifdef GL_NV_viewport_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_array", 14))
- {
- ret = GLEW_NV_viewport_array;
- continue;
- }
-#endif
-#ifdef GL_NV_viewport_array2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_array2", 15))
- {
- ret = GLEW_NV_viewport_array2;
- continue;
- }
-#endif
-#ifdef GL_NV_viewport_swizzle
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_swizzle", 16))
- {
- ret = GLEW_NV_viewport_swizzle;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"OES_", 4))
- {
-#ifdef GL_OES_EGL_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image", 9))
- {
- ret = GLEW_OES_EGL_image;
- continue;
- }
-#endif
-#ifdef GL_OES_EGL_image_external
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_external", 18))
- {
- ret = GLEW_OES_EGL_image_external;
- continue;
- }
-#endif
-#ifdef GL_OES_EGL_image_external_essl3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_external_essl3", 24))
- {
- ret = GLEW_OES_EGL_image_external_essl3;
- continue;
- }
-#endif
-#ifdef GL_OES_blend_equation_separate
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_separate", 23))
- {
- ret = GLEW_OES_blend_equation_separate;
- continue;
- }
-#endif
-#ifdef GL_OES_blend_func_separate
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_separate", 19))
- {
- ret = GLEW_OES_blend_func_separate;
- continue;
- }
-#endif
-#ifdef GL_OES_blend_subtract
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_subtract", 14))
- {
- ret = GLEW_OES_blend_subtract;
- continue;
- }
-#endif
-#ifdef GL_OES_byte_coordinates
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"byte_coordinates", 16))
- {
- ret = GLEW_OES_byte_coordinates;
- continue;
- }
-#endif
-#ifdef GL_OES_compressed_ETC1_RGB8_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_ETC1_RGB8_texture", 28))
- {
- ret = GLEW_OES_compressed_ETC1_RGB8_texture;
- continue;
- }
-#endif
-#ifdef GL_OES_compressed_paletted_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_paletted_texture", 27))
- {
- ret = GLEW_OES_compressed_paletted_texture;
- continue;
- }
-#endif
-#ifdef GL_OES_copy_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10))
- {
- ret = GLEW_OES_copy_image;
- continue;
- }
-#endif
-#ifdef GL_OES_depth24
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth24", 7))
- {
- ret = GLEW_OES_depth24;
- continue;
- }
-#endif
-#ifdef GL_OES_depth32
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth32", 7))
- {
- ret = GLEW_OES_depth32;
- continue;
- }
-#endif
-#ifdef GL_OES_depth_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture", 13))
- {
- ret = GLEW_OES_depth_texture;
- continue;
- }
-#endif
-#ifdef GL_OES_depth_texture_cube_map
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture_cube_map", 22))
- {
- ret = GLEW_OES_depth_texture_cube_map;
- continue;
- }
-#endif
-#ifdef GL_OES_draw_buffers_indexed
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers_indexed", 20))
- {
- ret = GLEW_OES_draw_buffers_indexed;
- continue;
- }
-#endif
-#ifdef GL_OES_draw_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_texture", 12))
- {
- ret = GLEW_OES_draw_texture;
- continue;
- }
-#endif
-#ifdef GL_OES_element_index_uint
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"element_index_uint", 18))
- {
- ret = GLEW_OES_element_index_uint;
- continue;
- }
-#endif
-#ifdef GL_OES_extended_matrix_palette
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"extended_matrix_palette", 23))
- {
- ret = GLEW_OES_extended_matrix_palette;
- continue;
- }
-#endif
-#ifdef GL_OES_fbo_render_mipmap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbo_render_mipmap", 17))
- {
- ret = GLEW_OES_fbo_render_mipmap;
- continue;
- }
-#endif
-#ifdef GL_OES_fragment_precision_high
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_precision_high", 23))
- {
- ret = GLEW_OES_fragment_precision_high;
- continue;
- }
-#endif
-#ifdef GL_OES_framebuffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_object", 18))
- {
- ret = GLEW_OES_framebuffer_object;
- continue;
- }
-#endif
-#ifdef GL_OES_geometry_point_size
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_point_size", 19))
- {
- ret = GLEW_OES_geometry_point_size;
- continue;
- }
-#endif
-#ifdef GL_OES_geometry_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader", 15))
- {
- ret = GLEW_OES_geometry_shader;
- continue;
- }
-#endif
-#ifdef GL_OES_get_program_binary
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_program_binary", 18))
- {
- ret = GLEW_OES_get_program_binary;
- continue;
- }
-#endif
-#ifdef GL_OES_gpu_shader5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11))
- {
- ret = GLEW_OES_gpu_shader5;
- continue;
- }
-#endif
-#ifdef GL_OES_mapbuffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"mapbuffer", 9))
- {
- ret = GLEW_OES_mapbuffer;
- continue;
- }
-#endif
-#ifdef GL_OES_matrix_get
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"matrix_get", 10))
- {
- ret = GLEW_OES_matrix_get;
- continue;
- }
-#endif
-#ifdef GL_OES_matrix_palette
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"matrix_palette", 14))
- {
- ret = GLEW_OES_matrix_palette;
- continue;
- }
-#endif
-#ifdef GL_OES_packed_depth_stencil
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_depth_stencil", 20))
- {
- ret = GLEW_OES_packed_depth_stencil;
- continue;
- }
-#endif
-#ifdef GL_OES_point_size_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_size_array", 16))
- {
- ret = GLEW_OES_point_size_array;
- continue;
- }
-#endif
-#ifdef GL_OES_point_sprite
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_sprite", 12))
- {
- ret = GLEW_OES_point_sprite;
- continue;
- }
-#endif
-#ifdef GL_OES_read_format
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_format", 11))
- {
- ret = GLEW_OES_read_format;
- continue;
- }
-#endif
-#ifdef GL_OES_required_internalformat
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"required_internalformat", 23))
- {
- ret = GLEW_OES_required_internalformat;
- continue;
- }
-#endif
-#ifdef GL_OES_rgb8_rgba8
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"rgb8_rgba8", 10))
- {
- ret = GLEW_OES_rgb8_rgba8;
- continue;
- }
-#endif
-#ifdef GL_OES_sample_shading
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_shading", 14))
- {
- ret = GLEW_OES_sample_shading;
- continue;
- }
-#endif
-#ifdef GL_OES_sample_variables
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_variables", 16))
- {
- ret = GLEW_OES_sample_variables;
- continue;
- }
-#endif
-#ifdef GL_OES_shader_image_atomic
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_atomic", 19))
- {
- ret = GLEW_OES_shader_image_atomic;
- continue;
- }
-#endif
-#ifdef GL_OES_shader_io_blocks
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_io_blocks", 16))
- {
- ret = GLEW_OES_shader_io_blocks;
- continue;
- }
-#endif
-#ifdef GL_OES_shader_multisample_interpolation
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_multisample_interpolation", 32))
- {
- ret = GLEW_OES_shader_multisample_interpolation;
- continue;
- }
-#endif
-#ifdef GL_OES_single_precision
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"single_precision", 16))
- {
- ret = GLEW_OES_single_precision;
- continue;
- }
-#endif
-#ifdef GL_OES_standard_derivatives
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"standard_derivatives", 20))
- {
- ret = GLEW_OES_standard_derivatives;
- continue;
- }
-#endif
-#ifdef GL_OES_stencil1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil1", 8))
- {
- ret = GLEW_OES_stencil1;
- continue;
- }
-#endif
-#ifdef GL_OES_stencil4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil4", 8))
- {
- ret = GLEW_OES_stencil4;
- continue;
- }
-#endif
-#ifdef GL_OES_stencil8
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil8", 8))
- {
- ret = GLEW_OES_stencil8;
- continue;
- }
-#endif
-#ifdef GL_OES_surfaceless_context
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"surfaceless_context", 19))
- {
- ret = GLEW_OES_surfaceless_context;
- continue;
- }
-#endif
-#ifdef GL_OES_tessellation_point_size
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_point_size", 23))
- {
- ret = GLEW_OES_tessellation_point_size;
- continue;
- }
-#endif
-#ifdef GL_OES_tessellation_shader
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_shader", 19))
- {
- ret = GLEW_OES_tessellation_shader;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_3D
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_3D", 10))
- {
- ret = GLEW_OES_texture_3D;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_border_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20))
- {
- ret = GLEW_OES_texture_border_clamp;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer", 14))
- {
- ret = GLEW_OES_texture_buffer;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_compression_astc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc", 24))
- {
- ret = GLEW_OES_texture_compression_astc;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_cube_map
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map", 16))
- {
- ret = GLEW_OES_texture_cube_map;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_cube_map_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map_array", 22))
- {
- ret = GLEW_OES_texture_cube_map_array;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_env_crossbar
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_crossbar", 20))
- {
- ret = GLEW_OES_texture_env_crossbar;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_mirrored_repeat
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirrored_repeat", 23))
- {
- ret = GLEW_OES_texture_mirrored_repeat;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_npot
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_npot", 12))
- {
- ret = GLEW_OES_texture_npot;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_stencil8
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_stencil8", 16))
- {
- ret = GLEW_OES_texture_stencil8;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_storage_multisample_2d_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_storage_multisample_2d_array", 36))
- {
- ret = GLEW_OES_texture_storage_multisample_2d_array;
- continue;
- }
-#endif
-#ifdef GL_OES_texture_view
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_view", 12))
- {
- ret = GLEW_OES_texture_view;
- continue;
- }
-#endif
-#ifdef GL_OES_vertex_array_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19))
- {
- ret = GLEW_OES_vertex_array_object;
- continue;
- }
-#endif
-#ifdef GL_OES_vertex_half_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_half_float", 17))
- {
- ret = GLEW_OES_vertex_half_float;
- continue;
- }
-#endif
-#ifdef GL_OES_vertex_type_10_10_10_2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_type_10_10_10_2", 22))
- {
- ret = GLEW_OES_vertex_type_10_10_10_2;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"OML_", 4))
- {
-#ifdef GL_OML_interlace
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"interlace", 9))
- {
- ret = GLEW_OML_interlace;
- continue;
- }
-#endif
-#ifdef GL_OML_resample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"resample", 8))
- {
- ret = GLEW_OML_resample;
- continue;
- }
-#endif
-#ifdef GL_OML_subsample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"subsample", 9))
- {
- ret = GLEW_OML_subsample;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"OVR_", 4))
- {
-#ifdef GL_OVR_multiview
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview", 9))
- {
- ret = GLEW_OVR_multiview;
- continue;
- }
-#endif
-#ifdef GL_OVR_multiview2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview2", 10))
- {
- ret = GLEW_OVR_multiview2;
- continue;
- }
-#endif
-#ifdef GL_OVR_multiview_multisampled_render_to_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_multisampled_render_to_texture", 40))
- {
- ret = GLEW_OVR_multiview_multisampled_render_to_texture;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"PGI_", 4))
- {
-#ifdef GL_PGI_misc_hints
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"misc_hints", 10))
- {
- ret = GLEW_PGI_misc_hints;
- continue;
- }
-#endif
-#ifdef GL_PGI_vertex_hints
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_hints", 12))
- {
- ret = GLEW_PGI_vertex_hints;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"QCOM_", 5))
- {
-#ifdef GL_QCOM_YUV_texture_gather
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"YUV_texture_gather", 18))
- {
- ret = GLEW_QCOM_YUV_texture_gather;
- continue;
- }
-#endif
-#ifdef GL_QCOM_alpha_test
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"alpha_test", 10))
- {
- ret = GLEW_QCOM_alpha_test;
- continue;
- }
-#endif
-#ifdef GL_QCOM_binning_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"binning_control", 15))
- {
- ret = GLEW_QCOM_binning_control;
- continue;
- }
-#endif
-#ifdef GL_QCOM_driver_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"driver_control", 14))
- {
- ret = GLEW_QCOM_driver_control;
- continue;
- }
-#endif
-#ifdef GL_QCOM_extended_get
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"extended_get", 12))
- {
- ret = GLEW_QCOM_extended_get;
- continue;
- }
-#endif
-#ifdef GL_QCOM_extended_get2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"extended_get2", 13))
- {
- ret = GLEW_QCOM_extended_get2;
- continue;
- }
-#endif
-#ifdef GL_QCOM_framebuffer_foveated
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_foveated", 20))
- {
- ret = GLEW_QCOM_framebuffer_foveated;
- continue;
- }
-#endif
-#ifdef GL_QCOM_perfmon_global_mode
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"perfmon_global_mode", 19))
- {
- ret = GLEW_QCOM_perfmon_global_mode;
- continue;
- }
-#endif
-#ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_noncoherent", 36))
- {
- ret = GLEW_QCOM_shader_framebuffer_fetch_noncoherent;
- continue;
- }
-#endif
-#ifdef GL_QCOM_shader_framebuffer_fetch_rate
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_rate", 29))
- {
- ret = GLEW_QCOM_shader_framebuffer_fetch_rate;
- continue;
- }
-#endif
-#ifdef GL_QCOM_texture_foveated
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_foveated", 16))
- {
- ret = GLEW_QCOM_texture_foveated;
- continue;
- }
-#endif
-#ifdef GL_QCOM_texture_foveated_subsampled_layout
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_foveated_subsampled_layout", 34))
- {
- ret = GLEW_QCOM_texture_foveated_subsampled_layout;
- continue;
- }
-#endif
-#ifdef GL_QCOM_tiled_rendering
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"tiled_rendering", 15))
- {
- ret = GLEW_QCOM_tiled_rendering;
- continue;
- }
-#endif
-#ifdef GL_QCOM_writeonly_rendering
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"writeonly_rendering", 19))
- {
- ret = GLEW_QCOM_writeonly_rendering;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"REGAL_", 6))
- {
-#ifdef GL_REGAL_ES1_0_compatibility
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES1_0_compatibility", 19))
- {
- ret = GLEW_REGAL_ES1_0_compatibility;
- continue;
- }
-#endif
-#ifdef GL_REGAL_ES1_1_compatibility
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES1_1_compatibility", 19))
- {
- ret = GLEW_REGAL_ES1_1_compatibility;
- continue;
- }
-#endif
-#ifdef GL_REGAL_enable
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"enable", 6))
- {
- ret = GLEW_REGAL_enable;
- continue;
- }
-#endif
-#ifdef GL_REGAL_error_string
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"error_string", 12))
- {
- ret = GLEW_REGAL_error_string;
- continue;
- }
-#endif
-#ifdef GL_REGAL_extension_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"extension_query", 15))
- {
- ret = GLEW_REGAL_extension_query;
- continue;
- }
-#endif
-#ifdef GL_REGAL_log
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"log", 3))
- {
- ret = GLEW_REGAL_log;
- continue;
- }
-#endif
-#ifdef GL_REGAL_proc_address
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"proc_address", 12))
- {
- ret = GLEW_REGAL_proc_address;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"REND_", 5))
- {
-#ifdef GL_REND_screen_coordinates
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"screen_coordinates", 18))
- {
- ret = GLEW_REND_screen_coordinates;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"S3_", 3))
- {
-#ifdef GL_S3_s3tc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"s3tc", 4))
- {
- ret = GLEW_S3_s3tc;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGIS_", 5))
- {
-#ifdef GL_SGIS_clip_band_hint
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_band_hint", 14))
- {
- ret = GLEW_SGIS_clip_band_hint;
- continue;
- }
-#endif
-#ifdef GL_SGIS_color_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_range", 11))
- {
- ret = GLEW_SGIS_color_range;
- continue;
- }
-#endif
-#ifdef GL_SGIS_detail_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"detail_texture", 14))
- {
- ret = GLEW_SGIS_detail_texture;
- continue;
- }
-#endif
-#ifdef GL_SGIS_fog_function
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_function", 12))
- {
- ret = GLEW_SGIS_fog_function;
- continue;
- }
-#endif
-#ifdef GL_SGIS_generate_mipmap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"generate_mipmap", 15))
- {
- ret = GLEW_SGIS_generate_mipmap;
- continue;
- }
-#endif
-#ifdef GL_SGIS_line_texgen
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"line_texgen", 11))
- {
- ret = GLEW_SGIS_line_texgen;
- continue;
- }
-#endif
-#ifdef GL_SGIS_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11))
- {
- ret = GLEW_SGIS_multisample;
- continue;
- }
-#endif
-#ifdef GL_SGIS_multitexture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multitexture", 12))
- {
- ret = GLEW_SGIS_multitexture;
- continue;
- }
-#endif
-#ifdef GL_SGIS_pixel_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture", 13))
- {
- ret = GLEW_SGIS_pixel_texture;
- continue;
- }
-#endif
-#ifdef GL_SGIS_point_line_texgen
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_line_texgen", 17))
- {
- ret = GLEW_SGIS_point_line_texgen;
- continue;
- }
-#endif
-#ifdef GL_SGIS_shared_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shared_multisample", 18))
- {
- ret = GLEW_SGIS_shared_multisample;
- continue;
- }
-#endif
-#ifdef GL_SGIS_sharpen_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sharpen_texture", 15))
- {
- ret = GLEW_SGIS_sharpen_texture;
- continue;
- }
-#endif
-#ifdef GL_SGIS_texture4D
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture4D", 9))
- {
- ret = GLEW_SGIS_texture4D;
- continue;
- }
-#endif
-#ifdef GL_SGIS_texture_border_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20))
- {
- ret = GLEW_SGIS_texture_border_clamp;
- continue;
- }
-#endif
-#ifdef GL_SGIS_texture_edge_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_edge_clamp", 18))
- {
- ret = GLEW_SGIS_texture_edge_clamp;
- continue;
- }
-#endif
-#ifdef GL_SGIS_texture_filter4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter4", 15))
- {
- ret = GLEW_SGIS_texture_filter4;
- continue;
- }
-#endif
-#ifdef GL_SGIS_texture_lod
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_lod", 11))
- {
- ret = GLEW_SGIS_texture_lod;
- continue;
- }
-#endif
-#ifdef GL_SGIS_texture_select
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_select", 14))
- {
- ret = GLEW_SGIS_texture_select;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGIX_", 5))
- {
-#ifdef GL_SGIX_async
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"async", 5))
- {
- ret = GLEW_SGIX_async;
- continue;
- }
-#endif
-#ifdef GL_SGIX_async_histogram
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"async_histogram", 15))
- {
- ret = GLEW_SGIX_async_histogram;
- continue;
- }
-#endif
-#ifdef GL_SGIX_async_pixel
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"async_pixel", 11))
- {
- ret = GLEW_SGIX_async_pixel;
- continue;
- }
-#endif
-#ifdef GL_SGIX_bali_g_instruments
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_g_instruments", 18))
- {
- ret = GLEW_SGIX_bali_g_instruments;
- continue;
- }
-#endif
-#ifdef GL_SGIX_bali_r_instruments
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_r_instruments", 18))
- {
- ret = GLEW_SGIX_bali_r_instruments;
- continue;
- }
-#endif
-#ifdef GL_SGIX_bali_timer_instruments
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_timer_instruments", 22))
- {
- ret = GLEW_SGIX_bali_timer_instruments;
- continue;
- }
-#endif
-#ifdef GL_SGIX_blend_alpha_minmax
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_alpha_minmax", 18))
- {
- ret = GLEW_SGIX_blend_alpha_minmax;
- continue;
- }
-#endif
-#ifdef GL_SGIX_blend_cadd
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_cadd", 10))
- {
- ret = GLEW_SGIX_blend_cadd;
- continue;
- }
-#endif
-#ifdef GL_SGIX_blend_cmultiply
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_cmultiply", 15))
- {
- ret = GLEW_SGIX_blend_cmultiply;
- continue;
- }
-#endif
-#ifdef GL_SGIX_calligraphic_fragment
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"calligraphic_fragment", 21))
- {
- ret = GLEW_SGIX_calligraphic_fragment;
- continue;
- }
-#endif
-#ifdef GL_SGIX_clipmap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clipmap", 7))
- {
- ret = GLEW_SGIX_clipmap;
- continue;
- }
-#endif
-#ifdef GL_SGIX_color_matrix_accuracy
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_matrix_accuracy", 21))
- {
- ret = GLEW_SGIX_color_matrix_accuracy;
- continue;
- }
-#endif
-#ifdef GL_SGIX_color_table_index_mode
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_table_index_mode", 22))
- {
- ret = GLEW_SGIX_color_table_index_mode;
- continue;
- }
-#endif
-#ifdef GL_SGIX_complex_polar
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex_polar", 13))
- {
- ret = GLEW_SGIX_complex_polar;
- continue;
- }
-#endif
-#ifdef GL_SGIX_convolution_accuracy
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution_accuracy", 20))
- {
- ret = GLEW_SGIX_convolution_accuracy;
- continue;
- }
-#endif
-#ifdef GL_SGIX_cube_map
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"cube_map", 8))
- {
- ret = GLEW_SGIX_cube_map;
- continue;
- }
-#endif
-#ifdef GL_SGIX_cylinder_texgen
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"cylinder_texgen", 15))
- {
- ret = GLEW_SGIX_cylinder_texgen;
- continue;
- }
-#endif
-#ifdef GL_SGIX_datapipe
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"datapipe", 8))
- {
- ret = GLEW_SGIX_datapipe;
- continue;
- }
-#endif
-#ifdef GL_SGIX_decimation
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"decimation", 10))
- {
- ret = GLEW_SGIX_decimation;
- continue;
- }
-#endif
-#ifdef GL_SGIX_depth_pass_instrument
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_pass_instrument", 21))
- {
- ret = GLEW_SGIX_depth_pass_instrument;
- continue;
- }
-#endif
-#ifdef GL_SGIX_depth_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture", 13))
- {
- ret = GLEW_SGIX_depth_texture;
- continue;
- }
-#endif
-#ifdef GL_SGIX_dvc
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"dvc", 3))
- {
- ret = GLEW_SGIX_dvc;
- continue;
- }
-#endif
-#ifdef GL_SGIX_flush_raster
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"flush_raster", 12))
- {
- ret = GLEW_SGIX_flush_raster;
- continue;
- }
-#endif
-#ifdef GL_SGIX_fog_blend
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_blend", 9))
- {
- ret = GLEW_SGIX_fog_blend;
- continue;
- }
-#endif
-#ifdef GL_SGIX_fog_factor_to_alpha
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_factor_to_alpha", 19))
- {
- ret = GLEW_SGIX_fog_factor_to_alpha;
- continue;
- }
-#endif
-#ifdef GL_SGIX_fog_layers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_layers", 10))
- {
- ret = GLEW_SGIX_fog_layers;
- continue;
- }
-#endif
-#ifdef GL_SGIX_fog_offset
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_offset", 10))
- {
- ret = GLEW_SGIX_fog_offset;
- continue;
- }
-#endif
-#ifdef GL_SGIX_fog_patchy
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_patchy", 10))
- {
- ret = GLEW_SGIX_fog_patchy;
- continue;
- }
-#endif
-#ifdef GL_SGIX_fog_scale
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_scale", 9))
- {
- ret = GLEW_SGIX_fog_scale;
- continue;
- }
-#endif
-#ifdef GL_SGIX_fog_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_texture", 11))
- {
- ret = GLEW_SGIX_fog_texture;
- continue;
- }
-#endif
-#ifdef GL_SGIX_fragment_lighting_space
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_lighting_space", 23))
- {
- ret = GLEW_SGIX_fragment_lighting_space;
- continue;
- }
-#endif
-#ifdef GL_SGIX_fragment_specular_lighting
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_specular_lighting", 26))
- {
- ret = GLEW_SGIX_fragment_specular_lighting;
- continue;
- }
-#endif
-#ifdef GL_SGIX_fragments_instrument
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragments_instrument", 20))
- {
- ret = GLEW_SGIX_fragments_instrument;
- continue;
- }
-#endif
-#ifdef GL_SGIX_framezoom
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framezoom", 9))
- {
- ret = GLEW_SGIX_framezoom;
- continue;
- }
-#endif
-#ifdef GL_SGIX_icc_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"icc_texture", 11))
- {
- ret = GLEW_SGIX_icc_texture;
- continue;
- }
-#endif
-#ifdef GL_SGIX_igloo_interface
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"igloo_interface", 15))
- {
- ret = GLEW_SGIX_igloo_interface;
- continue;
- }
-#endif
-#ifdef GL_SGIX_image_compression
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_compression", 17))
- {
- ret = GLEW_SGIX_image_compression;
- continue;
- }
-#endif
-#ifdef GL_SGIX_impact_pixel_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"impact_pixel_texture", 20))
- {
- ret = GLEW_SGIX_impact_pixel_texture;
- continue;
- }
-#endif
-#ifdef GL_SGIX_instrument_error
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"instrument_error", 16))
- {
- ret = GLEW_SGIX_instrument_error;
- continue;
- }
-#endif
-#ifdef GL_SGIX_interlace
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"interlace", 9))
- {
- ret = GLEW_SGIX_interlace;
- continue;
- }
-#endif
-#ifdef GL_SGIX_ir_instrument1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ir_instrument1", 14))
- {
- ret = GLEW_SGIX_ir_instrument1;
- continue;
- }
-#endif
-#ifdef GL_SGIX_line_quality_hint
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"line_quality_hint", 17))
- {
- ret = GLEW_SGIX_line_quality_hint;
- continue;
- }
-#endif
-#ifdef GL_SGIX_list_priority
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"list_priority", 13))
- {
- ret = GLEW_SGIX_list_priority;
- continue;
- }
-#endif
-#ifdef GL_SGIX_mpeg1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"mpeg1", 5))
- {
- ret = GLEW_SGIX_mpeg1;
- continue;
- }
-#endif
-#ifdef GL_SGIX_mpeg2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"mpeg2", 5))
- {
- ret = GLEW_SGIX_mpeg2;
- continue;
- }
-#endif
-#ifdef GL_SGIX_nonlinear_lighting_pervertex
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"nonlinear_lighting_pervertex", 28))
- {
- ret = GLEW_SGIX_nonlinear_lighting_pervertex;
- continue;
- }
-#endif
-#ifdef GL_SGIX_nurbs_eval
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"nurbs_eval", 10))
- {
- ret = GLEW_SGIX_nurbs_eval;
- continue;
- }
-#endif
-#ifdef GL_SGIX_occlusion_instrument
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_instrument", 20))
- {
- ret = GLEW_SGIX_occlusion_instrument;
- continue;
- }
-#endif
-#ifdef GL_SGIX_packed_6bytes
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_6bytes", 13))
- {
- ret = GLEW_SGIX_packed_6bytes;
- continue;
- }
-#endif
-#ifdef GL_SGIX_pixel_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture", 13))
- {
- ret = GLEW_SGIX_pixel_texture;
- continue;
- }
-#endif
-#ifdef GL_SGIX_pixel_texture_bits
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture_bits", 18))
- {
- ret = GLEW_SGIX_pixel_texture_bits;
- continue;
- }
-#endif
-#ifdef GL_SGIX_pixel_texture_lod
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture_lod", 17))
- {
- ret = GLEW_SGIX_pixel_texture_lod;
- continue;
- }
-#endif
-#ifdef GL_SGIX_pixel_tiles
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_tiles", 11))
- {
- ret = GLEW_SGIX_pixel_tiles;
- continue;
- }
-#endif
-#ifdef GL_SGIX_polynomial_ffd
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"polynomial_ffd", 14))
- {
- ret = GLEW_SGIX_polynomial_ffd;
- continue;
- }
-#endif
-#ifdef GL_SGIX_quad_mesh
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"quad_mesh", 9))
- {
- ret = GLEW_SGIX_quad_mesh;
- continue;
- }
-#endif
-#ifdef GL_SGIX_reference_plane
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"reference_plane", 15))
- {
- ret = GLEW_SGIX_reference_plane;
- continue;
- }
-#endif
-#ifdef GL_SGIX_resample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"resample", 8))
- {
- ret = GLEW_SGIX_resample;
- continue;
- }
-#endif
-#ifdef GL_SGIX_scalebias_hint
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"scalebias_hint", 14))
- {
- ret = GLEW_SGIX_scalebias_hint;
- continue;
- }
-#endif
-#ifdef GL_SGIX_shadow
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow", 6))
- {
- ret = GLEW_SGIX_shadow;
- continue;
- }
-#endif
-#ifdef GL_SGIX_shadow_ambient
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_ambient", 14))
- {
- ret = GLEW_SGIX_shadow_ambient;
- continue;
- }
-#endif
-#ifdef GL_SGIX_slim
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"slim", 4))
- {
- ret = GLEW_SGIX_slim;
- continue;
- }
-#endif
-#ifdef GL_SGIX_spotlight_cutoff
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"spotlight_cutoff", 16))
- {
- ret = GLEW_SGIX_spotlight_cutoff;
- continue;
- }
-#endif
-#ifdef GL_SGIX_sprite
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sprite", 6))
- {
- ret = GLEW_SGIX_sprite;
- continue;
- }
-#endif
-#ifdef GL_SGIX_subdiv_patch
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"subdiv_patch", 12))
- {
- ret = GLEW_SGIX_subdiv_patch;
- continue;
- }
-#endif
-#ifdef GL_SGIX_subsample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"subsample", 9))
- {
- ret = GLEW_SGIX_subsample;
- continue;
- }
-#endif
-#ifdef GL_SGIX_tag_sample_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"tag_sample_buffer", 17))
- {
- ret = GLEW_SGIX_tag_sample_buffer;
- continue;
- }
-#endif
-#ifdef GL_SGIX_texture_add_env
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_add_env", 15))
- {
- ret = GLEW_SGIX_texture_add_env;
- continue;
- }
-#endif
-#ifdef GL_SGIX_texture_coordinate_clamp
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_coordinate_clamp", 24))
- {
- ret = GLEW_SGIX_texture_coordinate_clamp;
- continue;
- }
-#endif
-#ifdef GL_SGIX_texture_lod_bias
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_lod_bias", 16))
- {
- ret = GLEW_SGIX_texture_lod_bias;
- continue;
- }
-#endif
-#ifdef GL_SGIX_texture_mipmap_anisotropic
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mipmap_anisotropic", 26))
- {
- ret = GLEW_SGIX_texture_mipmap_anisotropic;
- continue;
- }
-#endif
-#ifdef GL_SGIX_texture_multi_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_multi_buffer", 20))
- {
- ret = GLEW_SGIX_texture_multi_buffer;
- continue;
- }
-#endif
-#ifdef GL_SGIX_texture_phase
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_phase", 13))
- {
- ret = GLEW_SGIX_texture_phase;
- continue;
- }
-#endif
-#ifdef GL_SGIX_texture_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_range", 13))
- {
- ret = GLEW_SGIX_texture_range;
- continue;
- }
-#endif
-#ifdef GL_SGIX_texture_scale_bias
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_scale_bias", 18))
- {
- ret = GLEW_SGIX_texture_scale_bias;
- continue;
- }
-#endif
-#ifdef GL_SGIX_texture_supersample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_supersample", 19))
- {
- ret = GLEW_SGIX_texture_supersample;
- continue;
- }
-#endif
-#ifdef GL_SGIX_vector_ops
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vector_ops", 10))
- {
- ret = GLEW_SGIX_vector_ops;
- continue;
- }
-#endif
-#ifdef GL_SGIX_vertex_array_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19))
- {
- ret = GLEW_SGIX_vertex_array_object;
- continue;
- }
-#endif
-#ifdef GL_SGIX_vertex_preclip
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_preclip", 14))
- {
- ret = GLEW_SGIX_vertex_preclip;
- continue;
- }
-#endif
-#ifdef GL_SGIX_vertex_preclip_hint
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_preclip_hint", 19))
- {
- ret = GLEW_SGIX_vertex_preclip_hint;
- continue;
- }
-#endif
-#ifdef GL_SGIX_ycrcb
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycrcb", 5))
- {
- ret = GLEW_SGIX_ycrcb;
- continue;
- }
-#endif
-#ifdef GL_SGIX_ycrcb_subsample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycrcb_subsample", 15))
- {
- ret = GLEW_SGIX_ycrcb_subsample;
- continue;
- }
-#endif
-#ifdef GL_SGIX_ycrcba
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycrcba", 6))
- {
- ret = GLEW_SGIX_ycrcba;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGI_", 4))
- {
-#ifdef GL_SGI_color_matrix
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_matrix", 12))
- {
- ret = GLEW_SGI_color_matrix;
- continue;
- }
-#endif
-#ifdef GL_SGI_color_table
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_table", 11))
- {
- ret = GLEW_SGI_color_table;
- continue;
- }
-#endif
-#ifdef GL_SGI_complex
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex", 7))
- {
- ret = GLEW_SGI_complex;
- continue;
- }
-#endif
-#ifdef GL_SGI_complex_type
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex_type", 12))
- {
- ret = GLEW_SGI_complex_type;
- continue;
- }
-#endif
-#ifdef GL_SGI_fft
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fft", 3))
- {
- ret = GLEW_SGI_fft;
- continue;
- }
-#endif
-#ifdef GL_SGI_texture_color_table
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_color_table", 19))
- {
- ret = GLEW_SGI_texture_color_table;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"SUNX_", 5))
- {
-#ifdef GL_SUNX_constant_data
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"constant_data", 13))
- {
- ret = GLEW_SUNX_constant_data;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"SUN_", 4))
- {
-#ifdef GL_SUN_convolution_border_modes
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution_border_modes", 24))
- {
- ret = GLEW_SUN_convolution_border_modes;
- continue;
- }
-#endif
-#ifdef GL_SUN_global_alpha
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"global_alpha", 12))
- {
- ret = GLEW_SUN_global_alpha;
- continue;
- }
-#endif
-#ifdef GL_SUN_mesh_array
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"mesh_array", 10))
- {
- ret = GLEW_SUN_mesh_array;
- continue;
- }
-#endif
-#ifdef GL_SUN_read_video_pixels
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_video_pixels", 17))
- {
- ret = GLEW_SUN_read_video_pixels;
- continue;
- }
-#endif
-#ifdef GL_SUN_slice_accum
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"slice_accum", 11))
- {
- ret = GLEW_SUN_slice_accum;
- continue;
- }
-#endif
-#ifdef GL_SUN_triangle_list
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"triangle_list", 13))
- {
- ret = GLEW_SUN_triangle_list;
- continue;
- }
-#endif
-#ifdef GL_SUN_vertex
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex", 6))
- {
- ret = GLEW_SUN_vertex;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"VIV_", 4))
- {
-#ifdef GL_VIV_shader_binary
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_binary", 13))
- {
- ret = GLEW_VIV_shader_binary;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"WIN_", 4))
- {
-#ifdef GL_WIN_phong_shading
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"phong_shading", 13))
- {
- ret = GLEW_WIN_phong_shading;
- continue;
- }
-#endif
-#ifdef GL_WIN_scene_markerXXX
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_markerXXX", 15))
- {
- ret = GLEW_WIN_scene_markerXXX;
- continue;
- }
-#endif
-#ifdef GL_WIN_specular_fog
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"specular_fog", 12))
- {
- ret = GLEW_WIN_specular_fog;
- continue;
- }
-#endif
-#ifdef GL_WIN_swap_hint
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_hint", 9))
- {
- ret = GLEW_WIN_swap_hint;
- continue;
- }
-#endif
- }
- }
- ret = (len == 0);
- }
- return ret;
-}
-
-#if defined(_WIN32) && !defined(GLEW_EGL) && !defined(GLEW_OSMESA)
-
-GLboolean GLEWAPIENTRY wglewIsSupported (const char* name)
-{
- const GLubyte* pos = (const GLubyte*)name;
- GLuint len = _glewStrLen(pos);
- GLboolean ret = GL_TRUE;
- while (ret && len > 0)
- {
- if (_glewStrSame1(&pos, &len, (const GLubyte*)"WGL_", 4))
- {
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"3DFX_", 5))
- {
-#ifdef WGL_3DFX_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11))
- {
- ret = WGLEW_3DFX_multisample;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"3DL_", 4))
- {
-#ifdef WGL_3DL_stereo_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stereo_control", 14))
- {
- ret = WGLEW_3DL_stereo_control;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"AMD_", 4))
- {
-#ifdef WGL_AMD_gpu_association
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_association", 15))
- {
- ret = WGLEW_AMD_gpu_association;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARB_", 4))
- {
-#ifdef WGL_ARB_buffer_region
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_region", 13))
- {
- ret = WGLEW_ARB_buffer_region;
- continue;
- }
-#endif
-#ifdef WGL_ARB_context_flush_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_flush_control", 21))
- {
- ret = WGLEW_ARB_context_flush_control;
- continue;
- }
-#endif
-#ifdef WGL_ARB_create_context
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context", 14))
- {
- ret = WGLEW_ARB_create_context;
- continue;
- }
-#endif
-#ifdef WGL_ARB_create_context_no_error
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23))
- {
- ret = WGLEW_ARB_create_context_no_error;
- continue;
- }
-#endif
-#ifdef WGL_ARB_create_context_profile
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_profile", 22))
- {
- ret = WGLEW_ARB_create_context_profile;
- continue;
- }
-#endif
-#ifdef WGL_ARB_create_context_robustness
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_robustness", 25))
- {
- ret = WGLEW_ARB_create_context_robustness;
- continue;
- }
-#endif
-#ifdef WGL_ARB_extensions_string
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"extensions_string", 17))
- {
- ret = WGLEW_ARB_extensions_string;
- continue;
- }
-#endif
-#ifdef WGL_ARB_framebuffer_sRGB
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16))
- {
- ret = WGLEW_ARB_framebuffer_sRGB;
- continue;
- }
-#endif
-#ifdef WGL_ARB_make_current_read
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"make_current_read", 17))
- {
- ret = WGLEW_ARB_make_current_read;
- continue;
- }
-#endif
-#ifdef WGL_ARB_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11))
- {
- ret = WGLEW_ARB_multisample;
- continue;
- }
-#endif
-#ifdef WGL_ARB_pbuffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pbuffer", 7))
- {
- ret = WGLEW_ARB_pbuffer;
- continue;
- }
-#endif
-#ifdef WGL_ARB_pixel_format
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format", 12))
- {
- ret = WGLEW_ARB_pixel_format;
- continue;
- }
-#endif
-#ifdef WGL_ARB_pixel_format_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_float", 18))
- {
- ret = WGLEW_ARB_pixel_format_float;
- continue;
- }
-#endif
-#ifdef WGL_ARB_render_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_texture", 14))
- {
- ret = WGLEW_ARB_render_texture;
- continue;
- }
-#endif
-#ifdef WGL_ARB_robustness_application_isolation
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_application_isolation", 32))
- {
- ret = WGLEW_ARB_robustness_application_isolation;
- continue;
- }
-#endif
-#ifdef WGL_ARB_robustness_share_group_isolation
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_share_group_isolation", 32))
- {
- ret = WGLEW_ARB_robustness_share_group_isolation;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ATI_", 4))
- {
-#ifdef WGL_ATI_pixel_format_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_float", 18))
- {
- ret = WGLEW_ATI_pixel_format_float;
- continue;
- }
-#endif
-#ifdef WGL_ATI_render_texture_rectangle
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_texture_rectangle", 24))
- {
- ret = WGLEW_ATI_render_texture_rectangle;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4))
- {
-#ifdef WGL_EXT_colorspace
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"colorspace", 10))
- {
- ret = WGLEW_EXT_colorspace;
- continue;
- }
-#endif
-#ifdef WGL_EXT_create_context_es2_profile
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es2_profile", 26))
- {
- ret = WGLEW_EXT_create_context_es2_profile;
- continue;
- }
-#endif
-#ifdef WGL_EXT_create_context_es_profile
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es_profile", 25))
- {
- ret = WGLEW_EXT_create_context_es_profile;
- continue;
- }
-#endif
-#ifdef WGL_EXT_depth_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_float", 11))
- {
- ret = WGLEW_EXT_depth_float;
- continue;
- }
-#endif
-#ifdef WGL_EXT_display_color_table
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"display_color_table", 19))
- {
- ret = WGLEW_EXT_display_color_table;
- continue;
- }
-#endif
-#ifdef WGL_EXT_extensions_string
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"extensions_string", 17))
- {
- ret = WGLEW_EXT_extensions_string;
- continue;
- }
-#endif
-#ifdef WGL_EXT_framebuffer_sRGB
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16))
- {
- ret = WGLEW_EXT_framebuffer_sRGB;
- continue;
- }
-#endif
-#ifdef WGL_EXT_make_current_read
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"make_current_read", 17))
- {
- ret = WGLEW_EXT_make_current_read;
- continue;
- }
-#endif
-#ifdef WGL_EXT_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11))
- {
- ret = WGLEW_EXT_multisample;
- continue;
- }
-#endif
-#ifdef WGL_EXT_pbuffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pbuffer", 7))
- {
- ret = WGLEW_EXT_pbuffer;
- continue;
- }
-#endif
-#ifdef WGL_EXT_pixel_format
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format", 12))
- {
- ret = WGLEW_EXT_pixel_format;
- continue;
- }
-#endif
-#ifdef WGL_EXT_pixel_format_packed_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_packed_float", 25))
- {
- ret = WGLEW_EXT_pixel_format_packed_float;
- continue;
- }
-#endif
-#ifdef WGL_EXT_swap_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control", 12))
- {
- ret = WGLEW_EXT_swap_control;
- continue;
- }
-#endif
-#ifdef WGL_EXT_swap_control_tear
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control_tear", 17))
- {
- ret = WGLEW_EXT_swap_control_tear;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"I3D_", 4))
- {
-#ifdef WGL_I3D_digital_video_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"digital_video_control", 21))
- {
- ret = WGLEW_I3D_digital_video_control;
- continue;
- }
-#endif
-#ifdef WGL_I3D_gamma
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gamma", 5))
- {
- ret = WGLEW_I3D_gamma;
- continue;
- }
-#endif
-#ifdef WGL_I3D_genlock
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"genlock", 7))
- {
- ret = WGLEW_I3D_genlock;
- continue;
- }
-#endif
-#ifdef WGL_I3D_image_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_buffer", 12))
- {
- ret = WGLEW_I3D_image_buffer;
- continue;
- }
-#endif
-#ifdef WGL_I3D_swap_frame_lock
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_frame_lock", 15))
- {
- ret = WGLEW_I3D_swap_frame_lock;
- continue;
- }
-#endif
-#ifdef WGL_I3D_swap_frame_usage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_frame_usage", 16))
- {
- ret = WGLEW_I3D_swap_frame_usage;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3))
- {
-#ifdef WGL_NV_DX_interop
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"DX_interop", 10))
- {
- ret = WGLEW_NV_DX_interop;
- continue;
- }
-#endif
-#ifdef WGL_NV_DX_interop2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"DX_interop2", 11))
- {
- ret = WGLEW_NV_DX_interop2;
- continue;
- }
-#endif
-#ifdef WGL_NV_copy_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10))
- {
- ret = WGLEW_NV_copy_image;
- continue;
- }
-#endif
-#ifdef WGL_NV_delay_before_swap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"delay_before_swap", 17))
- {
- ret = WGLEW_NV_delay_before_swap;
- continue;
- }
-#endif
-#ifdef WGL_NV_float_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_buffer", 12))
- {
- ret = WGLEW_NV_float_buffer;
- continue;
- }
-#endif
-#ifdef WGL_NV_gpu_affinity
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_affinity", 12))
- {
- ret = WGLEW_NV_gpu_affinity;
- continue;
- }
-#endif
-#ifdef WGL_NV_multigpu_context
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multigpu_context", 16))
- {
- ret = WGLEW_NV_multigpu_context;
- continue;
- }
-#endif
-#ifdef WGL_NV_multisample_coverage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20))
- {
- ret = WGLEW_NV_multisample_coverage;
- continue;
- }
-#endif
-#ifdef WGL_NV_present_video
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"present_video", 13))
- {
- ret = WGLEW_NV_present_video;
- continue;
- }
-#endif
-#ifdef WGL_NV_render_depth_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_depth_texture", 20))
- {
- ret = WGLEW_NV_render_depth_texture;
- continue;
- }
-#endif
-#ifdef WGL_NV_render_texture_rectangle
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_texture_rectangle", 24))
- {
- ret = WGLEW_NV_render_texture_rectangle;
- continue;
- }
-#endif
-#ifdef WGL_NV_swap_group
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_group", 10))
- {
- ret = WGLEW_NV_swap_group;
- continue;
- }
-#endif
-#ifdef WGL_NV_vertex_array_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range", 18))
- {
- ret = WGLEW_NV_vertex_array_range;
- continue;
- }
-#endif
-#ifdef WGL_NV_video_capture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_capture", 13))
- {
- ret = WGLEW_NV_video_capture;
- continue;
- }
-#endif
-#ifdef WGL_NV_video_output
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_output", 12))
- {
- ret = WGLEW_NV_video_output;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"OML_", 4))
- {
-#ifdef WGL_OML_sync_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync_control", 12))
- {
- ret = WGLEW_OML_sync_control;
- continue;
- }
-#endif
- }
- }
- ret = (len == 0);
- }
- return ret;
-}
-
-#elif !defined(GLEW_OSMESA) && !defined(GLEW_EGL) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
-
-GLboolean glxewIsSupported (const char* name)
-{
- const GLubyte* pos = (const GLubyte*)name;
- GLuint len = _glewStrLen(pos);
- GLboolean ret = GL_TRUE;
- while (ret && len > 0)
- {
- if(_glewStrSame1(&pos, &len, (const GLubyte*)"GLX_", 4))
- {
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"VERSION_", 8))
- {
-#ifdef GLX_VERSION_1_2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_2", 3))
- {
- ret = GLXEW_VERSION_1_2;
- continue;
- }
-#endif
-#ifdef GLX_VERSION_1_3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_3", 3))
- {
- ret = GLXEW_VERSION_1_3;
- continue;
- }
-#endif
-#ifdef GLX_VERSION_1_4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_4", 3))
- {
- ret = GLXEW_VERSION_1_4;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"3DFX_", 5))
- {
-#ifdef GLX_3DFX_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11))
- {
- ret = GLXEW_3DFX_multisample;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"AMD_", 4))
- {
-#ifdef GLX_AMD_gpu_association
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_association", 15))
- {
- ret = GLXEW_AMD_gpu_association;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARB_", 4))
- {
-#ifdef GLX_ARB_context_flush_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_flush_control", 21))
- {
- ret = GLXEW_ARB_context_flush_control;
- continue;
- }
-#endif
-#ifdef GLX_ARB_create_context
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context", 14))
- {
- ret = GLXEW_ARB_create_context;
- continue;
- }
-#endif
-#ifdef GLX_ARB_create_context_no_error
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23))
- {
- ret = GLXEW_ARB_create_context_no_error;
- continue;
- }
-#endif
-#ifdef GLX_ARB_create_context_profile
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_profile", 22))
- {
- ret = GLXEW_ARB_create_context_profile;
- continue;
- }
-#endif
-#ifdef GLX_ARB_create_context_robustness
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_robustness", 25))
- {
- ret = GLXEW_ARB_create_context_robustness;
- continue;
- }
-#endif
-#ifdef GLX_ARB_fbconfig_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbconfig_float", 14))
- {
- ret = GLXEW_ARB_fbconfig_float;
- continue;
- }
-#endif
-#ifdef GLX_ARB_framebuffer_sRGB
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16))
- {
- ret = GLXEW_ARB_framebuffer_sRGB;
- continue;
- }
-#endif
-#ifdef GLX_ARB_get_proc_address
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_proc_address", 16))
- {
- ret = GLXEW_ARB_get_proc_address;
- continue;
- }
-#endif
-#ifdef GLX_ARB_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11))
- {
- ret = GLXEW_ARB_multisample;
- continue;
- }
-#endif
-#ifdef GLX_ARB_robustness_application_isolation
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_application_isolation", 32))
- {
- ret = GLXEW_ARB_robustness_application_isolation;
- continue;
- }
-#endif
-#ifdef GLX_ARB_robustness_share_group_isolation
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_share_group_isolation", 32))
- {
- ret = GLXEW_ARB_robustness_share_group_isolation;
- continue;
- }
-#endif
-#ifdef GLX_ARB_vertex_buffer_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_buffer_object", 20))
- {
- ret = GLXEW_ARB_vertex_buffer_object;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ATI_", 4))
- {
-#ifdef GLX_ATI_pixel_format_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_float", 18))
- {
- ret = GLXEW_ATI_pixel_format_float;
- continue;
- }
-#endif
-#ifdef GLX_ATI_render_texture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_texture", 14))
- {
- ret = GLXEW_ATI_render_texture;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4))
- {
-#ifdef GLX_EXT_buffer_age
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_age", 10))
- {
- ret = GLXEW_EXT_buffer_age;
- continue;
- }
-#endif
-#ifdef GLX_EXT_context_priority
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_priority", 16))
- {
- ret = GLXEW_EXT_context_priority;
- continue;
- }
-#endif
-#ifdef GLX_EXT_create_context_es2_profile
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es2_profile", 26))
- {
- ret = GLXEW_EXT_create_context_es2_profile;
- continue;
- }
-#endif
-#ifdef GLX_EXT_create_context_es_profile
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es_profile", 25))
- {
- ret = GLXEW_EXT_create_context_es_profile;
- continue;
- }
-#endif
-#ifdef GLX_EXT_fbconfig_packed_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbconfig_packed_float", 21))
- {
- ret = GLXEW_EXT_fbconfig_packed_float;
- continue;
- }
-#endif
-#ifdef GLX_EXT_framebuffer_sRGB
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16))
- {
- ret = GLXEW_EXT_framebuffer_sRGB;
- continue;
- }
-#endif
-#ifdef GLX_EXT_import_context
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"import_context", 14))
- {
- ret = GLXEW_EXT_import_context;
- continue;
- }
-#endif
-#ifdef GLX_EXT_libglvnd
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"libglvnd", 8))
- {
- ret = GLXEW_EXT_libglvnd;
- continue;
- }
-#endif
-#ifdef GLX_EXT_no_config_context
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"no_config_context", 17))
- {
- ret = GLXEW_EXT_no_config_context;
- continue;
- }
-#endif
-#ifdef GLX_EXT_scene_marker
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_marker", 12))
- {
- ret = GLXEW_EXT_scene_marker;
- continue;
- }
-#endif
-#ifdef GLX_EXT_stereo_tree
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stereo_tree", 11))
- {
- ret = GLXEW_EXT_stereo_tree;
- continue;
- }
-#endif
-#ifdef GLX_EXT_swap_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control", 12))
- {
- ret = GLXEW_EXT_swap_control;
- continue;
- }
-#endif
-#ifdef GLX_EXT_swap_control_tear
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control_tear", 17))
- {
- ret = GLXEW_EXT_swap_control_tear;
- continue;
- }
-#endif
-#ifdef GLX_EXT_texture_from_pixmap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_from_pixmap", 19))
- {
- ret = GLXEW_EXT_texture_from_pixmap;
- continue;
- }
-#endif
-#ifdef GLX_EXT_visual_info
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"visual_info", 11))
- {
- ret = GLXEW_EXT_visual_info;
- continue;
- }
-#endif
-#ifdef GLX_EXT_visual_rating
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"visual_rating", 13))
- {
- ret = GLXEW_EXT_visual_rating;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"INTEL_", 6))
- {
-#ifdef GLX_INTEL_swap_event
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_event", 10))
- {
- ret = GLXEW_INTEL_swap_event;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESA_", 5))
- {
-#ifdef GLX_MESA_agp_offset
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"agp_offset", 10))
- {
- ret = GLXEW_MESA_agp_offset;
- continue;
- }
-#endif
-#ifdef GLX_MESA_copy_sub_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_sub_buffer", 15))
- {
- ret = GLXEW_MESA_copy_sub_buffer;
- continue;
- }
-#endif
-#ifdef GLX_MESA_pixmap_colormap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixmap_colormap", 15))
- {
- ret = GLXEW_MESA_pixmap_colormap;
- continue;
- }
-#endif
-#ifdef GLX_MESA_query_renderer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_renderer", 14))
- {
- ret = GLXEW_MESA_query_renderer;
- continue;
- }
-#endif
-#ifdef GLX_MESA_release_buffers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"release_buffers", 15))
- {
- ret = GLXEW_MESA_release_buffers;
- continue;
- }
-#endif
-#ifdef GLX_MESA_set_3dfx_mode
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"set_3dfx_mode", 13))
- {
- ret = GLXEW_MESA_set_3dfx_mode;
- continue;
- }
-#endif
-#ifdef GLX_MESA_swap_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control", 12))
- {
- ret = GLXEW_MESA_swap_control;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3))
- {
-#ifdef GLX_NV_copy_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_buffer", 11))
- {
- ret = GLXEW_NV_copy_buffer;
- continue;
- }
-#endif
-#ifdef GLX_NV_copy_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10))
- {
- ret = GLXEW_NV_copy_image;
- continue;
- }
-#endif
-#ifdef GLX_NV_delay_before_swap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"delay_before_swap", 17))
- {
- ret = GLXEW_NV_delay_before_swap;
- continue;
- }
-#endif
-#ifdef GLX_NV_float_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_buffer", 12))
- {
- ret = GLXEW_NV_float_buffer;
- continue;
- }
-#endif
-#ifdef GLX_NV_multigpu_context
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multigpu_context", 16))
- {
- ret = GLXEW_NV_multigpu_context;
- continue;
- }
-#endif
-#ifdef GLX_NV_multisample_coverage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20))
- {
- ret = GLXEW_NV_multisample_coverage;
- continue;
- }
-#endif
-#ifdef GLX_NV_present_video
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"present_video", 13))
- {
- ret = GLXEW_NV_present_video;
- continue;
- }
-#endif
-#ifdef GLX_NV_robustness_video_memory_purge
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29))
- {
- ret = GLXEW_NV_robustness_video_memory_purge;
- continue;
- }
-#endif
-#ifdef GLX_NV_swap_group
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_group", 10))
- {
- ret = GLXEW_NV_swap_group;
- continue;
- }
-#endif
-#ifdef GLX_NV_vertex_array_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range", 18))
- {
- ret = GLXEW_NV_vertex_array_range;
- continue;
- }
-#endif
-#ifdef GLX_NV_video_capture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_capture", 13))
- {
- ret = GLXEW_NV_video_capture;
- continue;
- }
-#endif
-#ifdef GLX_NV_video_out
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_out", 9))
- {
- ret = GLXEW_NV_video_out;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"OML_", 4))
- {
-#ifdef GLX_OML_swap_method
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_method", 11))
- {
- ret = GLXEW_OML_swap_method;
- continue;
- }
-#endif
-#ifdef GLX_OML_sync_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync_control", 12))
- {
- ret = GLXEW_OML_sync_control;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGIS_", 5))
- {
-#ifdef GLX_SGIS_blended_overlay
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blended_overlay", 15))
- {
- ret = GLXEW_SGIS_blended_overlay;
- continue;
- }
-#endif
-#ifdef GLX_SGIS_color_range
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_range", 11))
- {
- ret = GLXEW_SGIS_color_range;
- continue;
- }
-#endif
-#ifdef GLX_SGIS_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11))
- {
- ret = GLXEW_SGIS_multisample;
- continue;
- }
-#endif
-#ifdef GLX_SGIS_shared_multisample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"shared_multisample", 18))
- {
- ret = GLXEW_SGIS_shared_multisample;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGIX_", 5))
- {
-#ifdef GLX_SGIX_fbconfig
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbconfig", 8))
- {
- ret = GLXEW_SGIX_fbconfig;
- continue;
- }
-#endif
-#ifdef GLX_SGIX_hyperpipe
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"hyperpipe", 9))
- {
- ret = GLXEW_SGIX_hyperpipe;
- continue;
- }
-#endif
-#ifdef GLX_SGIX_pbuffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pbuffer", 7))
- {
- ret = GLXEW_SGIX_pbuffer;
- continue;
- }
-#endif
-#ifdef GLX_SGIX_swap_barrier
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_barrier", 12))
- {
- ret = GLXEW_SGIX_swap_barrier;
- continue;
- }
-#endif
-#ifdef GLX_SGIX_swap_group
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_group", 10))
- {
- ret = GLXEW_SGIX_swap_group;
- continue;
- }
-#endif
-#ifdef GLX_SGIX_video_resize
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_resize", 12))
- {
- ret = GLXEW_SGIX_video_resize;
- continue;
- }
-#endif
-#ifdef GLX_SGIX_visual_select_group
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"visual_select_group", 19))
- {
- ret = GLXEW_SGIX_visual_select_group;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGI_", 4))
- {
-#ifdef GLX_SGI_cushion
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"cushion", 7))
- {
- ret = GLXEW_SGI_cushion;
- continue;
- }
-#endif
-#ifdef GLX_SGI_make_current_read
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"make_current_read", 17))
- {
- ret = GLXEW_SGI_make_current_read;
- continue;
- }
-#endif
-#ifdef GLX_SGI_swap_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control", 12))
- {
- ret = GLXEW_SGI_swap_control;
- continue;
- }
-#endif
-#ifdef GLX_SGI_video_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_sync", 10))
- {
- ret = GLXEW_SGI_video_sync;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"SUN_", 4))
- {
-#ifdef GLX_SUN_get_transparent_index
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_transparent_index", 21))
- {
- ret = GLXEW_SUN_get_transparent_index;
- continue;
- }
-#endif
-#ifdef GLX_SUN_video_resize
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_resize", 12))
- {
- ret = GLXEW_SUN_video_resize;
- continue;
- }
-#endif
- }
- }
- ret = (len == 0);
- }
- return ret;
-}
-
-#elif defined(GLEW_EGL)
-
-GLboolean eglewIsSupported (const char* name)
-{
- const GLubyte* pos = (const GLubyte*)name;
- GLuint len = _glewStrLen(pos);
- GLboolean ret = GL_TRUE;
- while (ret && len > 0)
- {
- if(_glewStrSame1(&pos, &len, (const GLubyte*)"EGL_", 4))
- {
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"VERSION_", 8))
- {
-#ifdef EGL_VERSION_1_0
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_0", 3))
- {
- ret = EGLEW_VERSION_1_0;
- continue;
- }
-#endif
-#ifdef EGL_VERSION_1_1
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_1", 3))
- {
- ret = EGLEW_VERSION_1_1;
- continue;
- }
-#endif
-#ifdef EGL_VERSION_1_2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_2", 3))
- {
- ret = EGLEW_VERSION_1_2;
- continue;
- }
-#endif
-#ifdef EGL_VERSION_1_3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_3", 3))
- {
- ret = EGLEW_VERSION_1_3;
- continue;
- }
-#endif
-#ifdef EGL_VERSION_1_4
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_4", 3))
- {
- ret = EGLEW_VERSION_1_4;
- continue;
- }
-#endif
-#ifdef EGL_VERSION_1_5
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_5", 3))
- {
- ret = EGLEW_VERSION_1_5;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANDROID_", 8))
- {
-#ifdef EGL_ANDROID_GLES_layers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"GLES_layers", 11))
- {
- ret = EGLEW_ANDROID_GLES_layers;
- continue;
- }
-#endif
-#ifdef EGL_ANDROID_blob_cache
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"blob_cache", 10))
- {
- ret = EGLEW_ANDROID_blob_cache;
- continue;
- }
-#endif
-#ifdef EGL_ANDROID_create_native_client_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_native_client_buffer", 27))
- {
- ret = EGLEW_ANDROID_create_native_client_buffer;
- continue;
- }
-#endif
-#ifdef EGL_ANDROID_framebuffer_target
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_target", 18))
- {
- ret = EGLEW_ANDROID_framebuffer_target;
- continue;
- }
-#endif
-#ifdef EGL_ANDROID_front_buffer_auto_refresh
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"front_buffer_auto_refresh", 25))
- {
- ret = EGLEW_ANDROID_front_buffer_auto_refresh;
- continue;
- }
-#endif
-#ifdef EGL_ANDROID_get_frame_timestamps
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_frame_timestamps", 20))
- {
- ret = EGLEW_ANDROID_get_frame_timestamps;
- continue;
- }
-#endif
-#ifdef EGL_ANDROID_get_native_client_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_native_client_buffer", 24))
- {
- ret = EGLEW_ANDROID_get_native_client_buffer;
- continue;
- }
-#endif
-#ifdef EGL_ANDROID_image_native_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_buffer", 19))
- {
- ret = EGLEW_ANDROID_image_native_buffer;
- continue;
- }
-#endif
-#ifdef EGL_ANDROID_native_fence_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"native_fence_sync", 17))
- {
- ret = EGLEW_ANDROID_native_fence_sync;
- continue;
- }
-#endif
-#ifdef EGL_ANDROID_presentation_time
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"presentation_time", 17))
- {
- ret = EGLEW_ANDROID_presentation_time;
- continue;
- }
-#endif
-#ifdef EGL_ANDROID_recordable
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"recordable", 10))
- {
- ret = EGLEW_ANDROID_recordable;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANGLE_", 6))
- {
-#ifdef EGL_ANGLE_d3d_share_handle_client_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"d3d_share_handle_client_buffer", 30))
- {
- ret = EGLEW_ANGLE_d3d_share_handle_client_buffer;
- continue;
- }
-#endif
-#ifdef EGL_ANGLE_device_d3d
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_d3d", 10))
- {
- ret = EGLEW_ANGLE_device_d3d;
- continue;
- }
-#endif
-#ifdef EGL_ANGLE_query_surface_pointer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_surface_pointer", 21))
- {
- ret = EGLEW_ANGLE_query_surface_pointer;
- continue;
- }
-#endif
-#ifdef EGL_ANGLE_surface_d3d_texture_2d_share_handle
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"surface_d3d_texture_2d_share_handle", 35))
- {
- ret = EGLEW_ANGLE_surface_d3d_texture_2d_share_handle;
- continue;
- }
-#endif
-#ifdef EGL_ANGLE_window_fixed_size
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_fixed_size", 17))
- {
- ret = EGLEW_ANGLE_window_fixed_size;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARM_", 4))
- {
-#ifdef EGL_ARM_image_format
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_format", 12))
- {
- ret = EGLEW_ARM_image_format;
- continue;
- }
-#endif
-#ifdef EGL_ARM_implicit_external_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"implicit_external_sync", 22))
- {
- ret = EGLEW_ARM_implicit_external_sync;
- continue;
- }
-#endif
-#ifdef EGL_ARM_pixmap_multisample_discard
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixmap_multisample_discard", 26))
- {
- ret = EGLEW_ARM_pixmap_multisample_discard;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4))
- {
-#ifdef EGL_EXT_bind_to_front
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bind_to_front", 13))
- {
- ret = EGLEW_EXT_bind_to_front;
- continue;
- }
-#endif
-#ifdef EGL_EXT_buffer_age
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_age", 10))
- {
- ret = EGLEW_EXT_buffer_age;
- continue;
- }
-#endif
-#ifdef EGL_EXT_client_extensions
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_extensions", 17))
- {
- ret = EGLEW_EXT_client_extensions;
- continue;
- }
-#endif
-#ifdef EGL_EXT_client_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_sync", 11))
- {
- ret = EGLEW_EXT_client_sync;
- continue;
- }
-#endif
-#ifdef EGL_EXT_compositor
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"compositor", 10))
- {
- ret = EGLEW_EXT_compositor;
- continue;
- }
-#endif
-#ifdef EGL_EXT_create_context_robustness
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_robustness", 25))
- {
- ret = EGLEW_EXT_create_context_robustness;
- continue;
- }
-#endif
-#ifdef EGL_EXT_device_base
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_base", 11))
- {
- ret = EGLEW_EXT_device_base;
- continue;
- }
-#endif
-#ifdef EGL_EXT_device_drm
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_drm", 10))
- {
- ret = EGLEW_EXT_device_drm;
- continue;
- }
-#endif
-#ifdef EGL_EXT_device_enumeration
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_enumeration", 18))
- {
- ret = EGLEW_EXT_device_enumeration;
- continue;
- }
-#endif
-#ifdef EGL_EXT_device_openwf
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_openwf", 13))
- {
- ret = EGLEW_EXT_device_openwf;
- continue;
- }
-#endif
-#ifdef EGL_EXT_device_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_query", 12))
- {
- ret = EGLEW_EXT_device_query;
- continue;
- }
-#endif
-#ifdef EGL_EXT_gl_colorspace_bt2020_linear
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_bt2020_linear", 27))
- {
- ret = EGLEW_EXT_gl_colorspace_bt2020_linear;
- continue;
- }
-#endif
-#ifdef EGL_EXT_gl_colorspace_bt2020_pq
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_bt2020_pq", 23))
- {
- ret = EGLEW_EXT_gl_colorspace_bt2020_pq;
- continue;
- }
-#endif
-#ifdef EGL_EXT_gl_colorspace_display_p3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_display_p3", 24))
- {
- ret = EGLEW_EXT_gl_colorspace_display_p3;
- continue;
- }
-#endif
-#ifdef EGL_EXT_gl_colorspace_display_p3_linear
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_display_p3_linear", 31))
- {
- ret = EGLEW_EXT_gl_colorspace_display_p3_linear;
- continue;
- }
-#endif
-#ifdef EGL_EXT_gl_colorspace_display_p3_passthrough
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_display_p3_passthrough", 36))
- {
- ret = EGLEW_EXT_gl_colorspace_display_p3_passthrough;
- continue;
- }
-#endif
-#ifdef EGL_EXT_gl_colorspace_scrgb
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_scrgb", 19))
- {
- ret = EGLEW_EXT_gl_colorspace_scrgb;
- continue;
- }
-#endif
-#ifdef EGL_EXT_gl_colorspace_scrgb_linear
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_scrgb_linear", 26))
- {
- ret = EGLEW_EXT_gl_colorspace_scrgb_linear;
- continue;
- }
-#endif
-#ifdef EGL_EXT_image_dma_buf_import
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_import", 20))
- {
- ret = EGLEW_EXT_image_dma_buf_import;
- continue;
- }
-#endif
-#ifdef EGL_EXT_image_dma_buf_import_modifiers
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_import_modifiers", 30))
- {
- ret = EGLEW_EXT_image_dma_buf_import_modifiers;
- continue;
- }
-#endif
-#ifdef EGL_EXT_image_gl_colorspace
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_gl_colorspace", 19))
- {
- ret = EGLEW_EXT_image_gl_colorspace;
- continue;
- }
-#endif
-#ifdef EGL_EXT_image_implicit_sync_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_implicit_sync_control", 27))
- {
- ret = EGLEW_EXT_image_implicit_sync_control;
- continue;
- }
-#endif
-#ifdef EGL_EXT_multiview_window
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_window", 16))
- {
- ret = EGLEW_EXT_multiview_window;
- continue;
- }
-#endif
-#ifdef EGL_EXT_output_base
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_base", 11))
- {
- ret = EGLEW_EXT_output_base;
- continue;
- }
-#endif
-#ifdef EGL_EXT_output_drm
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_drm", 10))
- {
- ret = EGLEW_EXT_output_drm;
- continue;
- }
-#endif
-#ifdef EGL_EXT_output_openwf
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_openwf", 13))
- {
- ret = EGLEW_EXT_output_openwf;
- continue;
- }
-#endif
-#ifdef EGL_EXT_pixel_format_float
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_float", 18))
- {
- ret = EGLEW_EXT_pixel_format_float;
- continue;
- }
-#endif
-#ifdef EGL_EXT_platform_base
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_base", 13))
- {
- ret = EGLEW_EXT_platform_base;
- continue;
- }
-#endif
-#ifdef EGL_EXT_platform_device
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_device", 15))
- {
- ret = EGLEW_EXT_platform_device;
- continue;
- }
-#endif
-#ifdef EGL_EXT_platform_wayland
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_wayland", 16))
- {
- ret = EGLEW_EXT_platform_wayland;
- continue;
- }
-#endif
-#ifdef EGL_EXT_platform_x11
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_x11", 12))
- {
- ret = EGLEW_EXT_platform_x11;
- continue;
- }
-#endif
-#ifdef EGL_EXT_protected_content
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"protected_content", 17))
- {
- ret = EGLEW_EXT_protected_content;
- continue;
- }
-#endif
-#ifdef EGL_EXT_protected_surface
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"protected_surface", 17))
- {
- ret = EGLEW_EXT_protected_surface;
- continue;
- }
-#endif
-#ifdef EGL_EXT_stream_consumer_egloutput
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_egloutput", 25))
- {
- ret = EGLEW_EXT_stream_consumer_egloutput;
- continue;
- }
-#endif
-#ifdef EGL_EXT_surface_CTA861_3_metadata
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"surface_CTA861_3_metadata", 25))
- {
- ret = EGLEW_EXT_surface_CTA861_3_metadata;
- continue;
- }
-#endif
-#ifdef EGL_EXT_surface_SMPTE2086_metadata
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"surface_SMPTE2086_metadata", 26))
- {
- ret = EGLEW_EXT_surface_SMPTE2086_metadata;
- continue;
- }
-#endif
-#ifdef EGL_EXT_swap_buffers_with_damage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_buffers_with_damage", 24))
- {
- ret = EGLEW_EXT_swap_buffers_with_damage;
- continue;
- }
-#endif
-#ifdef EGL_EXT_sync_reuse
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync_reuse", 10))
- {
- ret = EGLEW_EXT_sync_reuse;
- continue;
- }
-#endif
-#ifdef EGL_EXT_yuv_surface
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"yuv_surface", 11))
- {
- ret = EGLEW_EXT_yuv_surface;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"HI_", 3))
- {
-#ifdef EGL_HI_clientpixmap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"clientpixmap", 12))
- {
- ret = EGLEW_HI_clientpixmap;
- continue;
- }
-#endif
-#ifdef EGL_HI_colorformats
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"colorformats", 12))
- {
- ret = EGLEW_HI_colorformats;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"IMG_", 4))
- {
-#ifdef EGL_IMG_context_priority
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_priority", 16))
- {
- ret = EGLEW_IMG_context_priority;
- continue;
- }
-#endif
-#ifdef EGL_IMG_image_plane_attribs
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_plane_attribs", 19))
- {
- ret = EGLEW_IMG_image_plane_attribs;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"KHR_", 4))
- {
-#ifdef EGL_KHR_cl_event
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"cl_event", 8))
- {
- ret = EGLEW_KHR_cl_event;
- continue;
- }
-#endif
-#ifdef EGL_KHR_cl_event2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"cl_event2", 9))
- {
- ret = EGLEW_KHR_cl_event2;
- continue;
- }
-#endif
-#ifdef EGL_KHR_client_get_all_proc_addresses
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_get_all_proc_addresses", 29))
- {
- ret = EGLEW_KHR_client_get_all_proc_addresses;
- continue;
- }
-#endif
-#ifdef EGL_KHR_config_attribs
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"config_attribs", 14))
- {
- ret = EGLEW_KHR_config_attribs;
- continue;
- }
-#endif
-#ifdef EGL_KHR_context_flush_control
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_flush_control", 21))
- {
- ret = EGLEW_KHR_context_flush_control;
- continue;
- }
-#endif
-#ifdef EGL_KHR_create_context
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context", 14))
- {
- ret = EGLEW_KHR_create_context;
- continue;
- }
-#endif
-#ifdef EGL_KHR_create_context_no_error
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23))
- {
- ret = EGLEW_KHR_create_context_no_error;
- continue;
- }
-#endif
-#ifdef EGL_KHR_debug
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug", 5))
- {
- ret = EGLEW_KHR_debug;
- continue;
- }
-#endif
-#ifdef EGL_KHR_display_reference
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"display_reference", 17))
- {
- ret = EGLEW_KHR_display_reference;
- continue;
- }
-#endif
-#ifdef EGL_KHR_fence_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"fence_sync", 10))
- {
- ret = EGLEW_KHR_fence_sync;
- continue;
- }
-#endif
-#ifdef EGL_KHR_get_all_proc_addresses
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_all_proc_addresses", 22))
- {
- ret = EGLEW_KHR_get_all_proc_addresses;
- continue;
- }
-#endif
-#ifdef EGL_KHR_gl_colorspace
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace", 13))
- {
- ret = EGLEW_KHR_gl_colorspace;
- continue;
- }
-#endif
-#ifdef EGL_KHR_gl_renderbuffer_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_renderbuffer_image", 21))
- {
- ret = EGLEW_KHR_gl_renderbuffer_image;
- continue;
- }
-#endif
-#ifdef EGL_KHR_gl_texture_2D_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_2D_image", 19))
- {
- ret = EGLEW_KHR_gl_texture_2D_image;
- continue;
- }
-#endif
-#ifdef EGL_KHR_gl_texture_3D_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_3D_image", 19))
- {
- ret = EGLEW_KHR_gl_texture_3D_image;
- continue;
- }
-#endif
-#ifdef EGL_KHR_gl_texture_cubemap_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_cubemap_image", 24))
- {
- ret = EGLEW_KHR_gl_texture_cubemap_image;
- continue;
- }
-#endif
-#ifdef EGL_KHR_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image", 5))
- {
- ret = EGLEW_KHR_image;
- continue;
- }
-#endif
-#ifdef EGL_KHR_image_base
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_base", 10))
- {
- ret = EGLEW_KHR_image_base;
- continue;
- }
-#endif
-#ifdef EGL_KHR_image_pixmap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_pixmap", 12))
- {
- ret = EGLEW_KHR_image_pixmap;
- continue;
- }
-#endif
-#ifdef EGL_KHR_lock_surface
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface", 12))
- {
- ret = EGLEW_KHR_lock_surface;
- continue;
- }
-#endif
-#ifdef EGL_KHR_lock_surface2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface2", 13))
- {
- ret = EGLEW_KHR_lock_surface2;
- continue;
- }
-#endif
-#ifdef EGL_KHR_lock_surface3
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface3", 13))
- {
- ret = EGLEW_KHR_lock_surface3;
- continue;
- }
-#endif
-#ifdef EGL_KHR_mutable_render_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"mutable_render_buffer", 21))
- {
- ret = EGLEW_KHR_mutable_render_buffer;
- continue;
- }
-#endif
-#ifdef EGL_KHR_no_config_context
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"no_config_context", 17))
- {
- ret = EGLEW_KHR_no_config_context;
- continue;
- }
-#endif
-#ifdef EGL_KHR_partial_update
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"partial_update", 14))
- {
- ret = EGLEW_KHR_partial_update;
- continue;
- }
-#endif
-#ifdef EGL_KHR_platform_android
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_android", 16))
- {
- ret = EGLEW_KHR_platform_android;
- continue;
- }
-#endif
-#ifdef EGL_KHR_platform_gbm
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_gbm", 12))
- {
- ret = EGLEW_KHR_platform_gbm;
- continue;
- }
-#endif
-#ifdef EGL_KHR_platform_wayland
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_wayland", 16))
- {
- ret = EGLEW_KHR_platform_wayland;
- continue;
- }
-#endif
-#ifdef EGL_KHR_platform_x11
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_x11", 12))
- {
- ret = EGLEW_KHR_platform_x11;
- continue;
- }
-#endif
-#ifdef EGL_KHR_reusable_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"reusable_sync", 13))
- {
- ret = EGLEW_KHR_reusable_sync;
- continue;
- }
-#endif
-#ifdef EGL_KHR_stream
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream", 6))
- {
- ret = EGLEW_KHR_stream;
- continue;
- }
-#endif
-#ifdef EGL_KHR_stream_attrib
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_attrib", 13))
- {
- ret = EGLEW_KHR_stream_attrib;
- continue;
- }
-#endif
-#ifdef EGL_KHR_stream_consumer_gltexture
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_gltexture", 25))
- {
- ret = EGLEW_KHR_stream_consumer_gltexture;
- continue;
- }
-#endif
-#ifdef EGL_KHR_stream_cross_process_fd
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_process_fd", 23))
- {
- ret = EGLEW_KHR_stream_cross_process_fd;
- continue;
- }
-#endif
-#ifdef EGL_KHR_stream_fifo
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo", 11))
- {
- ret = EGLEW_KHR_stream_fifo;
- continue;
- }
-#endif
-#ifdef EGL_KHR_stream_producer_aldatalocator
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_producer_aldatalocator", 29))
- {
- ret = EGLEW_KHR_stream_producer_aldatalocator;
- continue;
- }
-#endif
-#ifdef EGL_KHR_stream_producer_eglsurface
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_producer_eglsurface", 26))
- {
- ret = EGLEW_KHR_stream_producer_eglsurface;
- continue;
- }
-#endif
-#ifdef EGL_KHR_surfaceless_context
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"surfaceless_context", 19))
- {
- ret = EGLEW_KHR_surfaceless_context;
- continue;
- }
-#endif
-#ifdef EGL_KHR_swap_buffers_with_damage
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_buffers_with_damage", 24))
- {
- ret = EGLEW_KHR_swap_buffers_with_damage;
- continue;
- }
-#endif
-#ifdef EGL_KHR_vg_parent_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"vg_parent_image", 15))
- {
- ret = EGLEW_KHR_vg_parent_image;
- continue;
- }
-#endif
-#ifdef EGL_KHR_wait_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"wait_sync", 9))
- {
- ret = EGLEW_KHR_wait_sync;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESA_", 5))
- {
-#ifdef EGL_MESA_drm_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"drm_image", 9))
- {
- ret = EGLEW_MESA_drm_image;
- continue;
- }
-#endif
-#ifdef EGL_MESA_image_dma_buf_export
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_export", 20))
- {
- ret = EGLEW_MESA_image_dma_buf_export;
- continue;
- }
-#endif
-#ifdef EGL_MESA_platform_gbm
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_gbm", 12))
- {
- ret = EGLEW_MESA_platform_gbm;
- continue;
- }
-#endif
-#ifdef EGL_MESA_platform_surfaceless
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_surfaceless", 20))
- {
- ret = EGLEW_MESA_platform_surfaceless;
- continue;
- }
-#endif
-#ifdef EGL_MESA_query_driver
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_driver", 12))
- {
- ret = EGLEW_MESA_query_driver;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"NOK_", 4))
- {
-#ifdef EGL_NOK_swap_region
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_region", 11))
- {
- ret = EGLEW_NOK_swap_region;
- continue;
- }
-#endif
-#ifdef EGL_NOK_swap_region2
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_region2", 12))
- {
- ret = EGLEW_NOK_swap_region2;
- continue;
- }
-#endif
-#ifdef EGL_NOK_texture_from_pixmap
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_from_pixmap", 19))
- {
- ret = EGLEW_NOK_texture_from_pixmap;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3))
- {
-#ifdef EGL_NV_3dvision_surface
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"3dvision_surface", 16))
- {
- ret = EGLEW_NV_3dvision_surface;
- continue;
- }
-#endif
-#ifdef EGL_NV_context_priority_realtime
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_priority_realtime", 25))
- {
- ret = EGLEW_NV_context_priority_realtime;
- continue;
- }
-#endif
-#ifdef EGL_NV_coverage_sample
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"coverage_sample", 15))
- {
- ret = EGLEW_NV_coverage_sample;
- continue;
- }
-#endif
-#ifdef EGL_NV_coverage_sample_resolve
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"coverage_sample_resolve", 23))
- {
- ret = EGLEW_NV_coverage_sample_resolve;
- continue;
- }
-#endif
-#ifdef EGL_NV_cuda_event
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"cuda_event", 10))
- {
- ret = EGLEW_NV_cuda_event;
- continue;
- }
-#endif
-#ifdef EGL_NV_depth_nonlinear
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_nonlinear", 15))
- {
- ret = EGLEW_NV_depth_nonlinear;
- continue;
- }
-#endif
-#ifdef EGL_NV_device_cuda
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_cuda", 11))
- {
- ret = EGLEW_NV_device_cuda;
- continue;
- }
-#endif
-#ifdef EGL_NV_native_query
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"native_query", 12))
- {
- ret = EGLEW_NV_native_query;
- continue;
- }
-#endif
-#ifdef EGL_NV_post_convert_rounding
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_convert_rounding", 21))
- {
- ret = EGLEW_NV_post_convert_rounding;
- continue;
- }
-#endif
-#ifdef EGL_NV_post_sub_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_sub_buffer", 15))
- {
- ret = EGLEW_NV_post_sub_buffer;
- continue;
- }
-#endif
-#ifdef EGL_NV_quadruple_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"quadruple_buffer", 16))
- {
- ret = EGLEW_NV_quadruple_buffer;
- continue;
- }
-#endif
-#ifdef EGL_NV_robustness_video_memory_purge
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29))
- {
- ret = EGLEW_NV_robustness_video_memory_purge;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_consumer_gltexture_yuv
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_gltexture_yuv", 29))
- {
- ret = EGLEW_NV_stream_consumer_gltexture_yuv;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_cross_display
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_display", 20))
- {
- ret = EGLEW_NV_stream_cross_display;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_cross_object
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_object", 19))
- {
- ret = EGLEW_NV_stream_cross_object;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_cross_partition
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_partition", 22))
- {
- ret = EGLEW_NV_stream_cross_partition;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_cross_process
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_process", 20))
- {
- ret = EGLEW_NV_stream_cross_process;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_cross_system
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_system", 19))
- {
- ret = EGLEW_NV_stream_cross_system;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_dma
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_dma", 10))
- {
- ret = EGLEW_NV_stream_dma;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_fifo_next
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo_next", 16))
- {
- ret = EGLEW_NV_stream_fifo_next;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_fifo_synchronous
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo_synchronous", 23))
- {
- ret = EGLEW_NV_stream_fifo_synchronous;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_flush
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_flush", 12))
- {
- ret = EGLEW_NV_stream_flush;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_frame_limits
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_frame_limits", 19))
- {
- ret = EGLEW_NV_stream_frame_limits;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_metadata
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_metadata", 15))
- {
- ret = EGLEW_NV_stream_metadata;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_origin
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_origin", 13))
- {
- ret = EGLEW_NV_stream_origin;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_remote
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_remote", 13))
- {
- ret = EGLEW_NV_stream_remote;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_reset
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_reset", 12))
- {
- ret = EGLEW_NV_stream_reset;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_socket
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket", 13))
- {
- ret = EGLEW_NV_stream_socket;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_socket_inet
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket_inet", 18))
- {
- ret = EGLEW_NV_stream_socket_inet;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_socket_unix
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket_unix", 18))
- {
- ret = EGLEW_NV_stream_socket_unix;
- continue;
- }
-#endif
-#ifdef EGL_NV_stream_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_sync", 11))
- {
- ret = EGLEW_NV_stream_sync;
- continue;
- }
-#endif
-#ifdef EGL_NV_sync
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync", 4))
- {
- ret = EGLEW_NV_sync;
- continue;
- }
-#endif
-#ifdef EGL_NV_system_time
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"system_time", 11))
- {
- ret = EGLEW_NV_system_time;
- continue;
- }
-#endif
-#ifdef EGL_NV_triple_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"triple_buffer", 13))
- {
- ret = EGLEW_NV_triple_buffer;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"TIZEN_", 6))
- {
-#ifdef EGL_TIZEN_image_native_buffer
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_buffer", 19))
- {
- ret = EGLEW_TIZEN_image_native_buffer;
- continue;
- }
-#endif
-#ifdef EGL_TIZEN_image_native_surface
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_surface", 20))
- {
- ret = EGLEW_TIZEN_image_native_surface;
- continue;
- }
-#endif
- }
- if (_glewStrSame2(&pos, &len, (const GLubyte*)"WL_", 3))
- {
-#ifdef EGL_WL_bind_wayland_display
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"bind_wayland_display", 20))
- {
- ret = EGLEW_WL_bind_wayland_display;
- continue;
- }
-#endif
-#ifdef EGL_WL_create_wayland_buffer_from_image
- if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_wayland_buffer_from_image", 32))
- {
- ret = EGLEW_WL_create_wayland_buffer_from_image;
- continue;
- }
-#endif
- }
- }
- ret = (len == 0);
- }
- return ret;
-}
-
-#endif /* _WIN32 */
diff --git a/deps/JPEG/JPEG.cmake b/deps/JPEG/JPEG.cmake
index 82b0ca5565..b3e5b06acb 100644
--- a/deps/JPEG/JPEG.cmake
+++ b/deps/JPEG/JPEG.cmake
@@ -1,22 +1,7 @@
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- if (JPEG_VERSION STREQUAL "6")
- message("Using Jpeg Lib 62")
- set(jpeg_flag "")
- elseif (JPEG_VERSION STREQUAL "7")
- message("Using Jpeg Lib 70")
- set(jpeg_flag "-DWITH_JPEG7=ON")
- else ()
- message("Using Jpeg Lib 80")
- set(jpeg_flag "-DWITH_JPEG8=ON")
- endif ()
-endif()
-
orcaslicer_add_cmake_project(JPEG
- URL https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/3.0.1.zip
- URL_HASH SHA256=d6d99e693366bc03897677650e8b2dfa76b5d6c54e2c9e70c03f0af821b0a52f
- DEPENDS ${ZLIB_PKG}
+ URL https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/3.2.0.zip
+ URL_HASH SHA256=1b4c2cb6cba1ca5e53b9e85eeeab02154cab4b70894c96e97a9c747a26d19d63
CMAKE_ARGS
-DENABLE_SHARED=OFF
-DENABLE_STATIC=ON
- ${jpeg_flag}
)
diff --git a/deps/OCCT/0001-BRepMesh-seam-pcurve-at-edge-parameter.patch b/deps/OCCT/0001-BRepMesh-seam-pcurve-at-edge-parameter.patch
new file mode 100644
index 0000000000..84c599a5f3
--- /dev/null
+++ b/deps/OCCT/0001-BRepMesh-seam-pcurve-at-edge-parameter.patch
@@ -0,0 +1,28 @@
+diff --git a/src/ModelingAlgorithms/TKMesh/BRepMesh/BRepMesh_ModelPreProcessor.cxx b/src/ModelingAlgorithms/TKMesh/BRepMesh/BRepMesh_ModelPreProcessor.cxx
+index 6f63781..9b1c08e 100644
+--- a/src/ModelingAlgorithms/TKMesh/BRepMesh/BRepMesh_ModelPreProcessor.cxx
++++ b/src/ModelingAlgorithms/TKMesh/BRepMesh/BRepMesh_ModelPreProcessor.cxx
+@@ -210,10 +210,10 @@ private:
+
+ // Define two pcurves of the seam-edge.
+ occ::handle aPC1, aPC2;
+- double af, al;
++ double af, al, af1, al1;
+
+ aE.Orientation(TopAbs_FORWARD);
+- aPC1 = BRep_Tool::CurveOnSurface(aE, aF, af, al);
++ aPC1 = BRep_Tool::CurveOnSurface(aE, aF, af1, al1);
+
+ aE.Orientation(TopAbs_REVERSED);
+ aPC2 = BRep_Tool::CurveOnSurface(aE, aF, af, al);
+@@ -224,7 +224,9 @@ private:
+ }
+
+ // Select the correct pcurve of the seam-edge.
+- const gp_Pnt2d& aFPntOfPC1 = aPC1->Value(aPC1->FirstParameter());
++ // Use the edge's first parameter. A Geom2d_Line's FirstParameter() is -Precision::Infinite(),
++ // where a direction of (2e-16, -1) from rounding error gives an X far outside the U range.
++ const gp_Pnt2d aFPntOfPC1 = aPC1->Value(af1);
+
+ if (std::abs(aLPntOfIPC1.X() - aFPntOfPC1.X()) > Precision::Confusion())
+ {
diff --git a/deps/OCCT/OCCT.cmake b/deps/OCCT/OCCT.cmake
index 4cab60ec6a..0466d8e868 100644
--- a/deps/OCCT/OCCT.cmake
+++ b/deps/OCCT/OCCT.cmake
@@ -25,9 +25,16 @@ endif()
# shipped bytes. Windows ships only the DLLs libslic3r links, so the tab adds the TKFillet,
# TKOffset and TKBool DLLs. See docs/HLSD/design-tab.md.
+if (IN_GIT_REPO)
+ set(OCCT_DIRECTORY_FLAG --directory ${BINARY_DIR_REL}/dep_OCCT-prefix/src/dep_OCCT)
+endif ()
+
orcaslicer_add_cmake_project(OCCT
URL https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V8_0_1.zip
URL_HASH SHA256=7c033d917ee8f040c0512d289dcc5f02c148889d5bac17c3e25639accb44f0da
+ # Makes BRepMesh triangulate cone faces whose seam pcurve is slightly tilted
+ # (Open-Cascade-SAS/OCCT#572); remove the patch once an OCCT release includes the fix.
+ PATCH_COMMAND git apply ${OCCT_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-BRepMesh-seam-pcurve-at-edge-parameter.patch
#DEPENDS dep_Boost
DEPENDS ${FREETYPE_PKG}
CMAKE_ARGS
diff --git a/deps/OpenCSG/CMakeLists.txt.in b/deps/OpenCSG/CMakeLists.txt.in
deleted file mode 100644
index 37da0f789b..0000000000
--- a/deps/OpenCSG/CMakeLists.txt.in
+++ /dev/null
@@ -1,101 +0,0 @@
-cmake_minimum_required(VERSION 3.0)
-
-project(OpenCSG)
-
-if (NOT BUILD_SHARED_LIBS)
- set(GLEW_USE_STATIC_LIBS ON)
-elseif (MSVC)
- set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
-endif()
-
-find_package(OpenGL REQUIRED)
-
-set(GLEW_VERBOSE ON)
-find_package(GLEW 1.13.0 REQUIRED)
-
-set(_srcfiles
- src/area.cpp
- src/batch.cpp
- src/context.cpp
- src/channelManager.cpp
- src/frameBufferObject.cpp
- src/frameBufferObjectExt.cpp
- src/occlusionQuery.cpp
- src/opencsgRender.cpp
- src/openglHelper.cpp
- src/pBufferTexture.cpp
- src/primitive.cpp
- src/primitiveHelper.cpp
- src/renderGoldfeather.cpp
- src/renderSCS.cpp
- src/scissorMemo.cpp
- src/settings.cpp
- src/stencilManager.cpp
- RenderTexture/RenderTexture.cpp
- include/opencsg.h
- src/opencsgConfig.h
- src/area.h
- src/batch.h
- src/context.h
- src/channelManager.h
- src/frameBufferObject.h
- src/frameBufferObjectExt.h
- src/occlusionQuery.h
- src/offscreenBuffer.h
- src/opencsgRender.h
- src/openglHelper.h
- src/pBufferTexture.h
- src/primitiveHelper.h
- src/scissorMemo.h
- src/settings.h
- src/stencilManager.h
-)
-
-add_library(opencsg ${_srcfiles})
-target_include_directories(opencsg PUBLIC $)
-target_include_directories(opencsg PUBLIC $)
-target_link_libraries(opencsg PRIVATE GLEW::GLEW OpenGL::GL)
-
-include(CMakePackageConfigHelpers)
-
-include(GNUInstallDirs)
-
-write_basic_package_version_file(
- "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
- VERSION 1.4.2
- COMPATIBILITY AnyNewerVersion
-)
-
-install(TARGETS opencsg
- EXPORT ${PROJECT_NAME}Targets
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-
-export(EXPORT ${PROJECT_NAME}Targets
- FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
- NAMESPACE ${PROJECT_NAME}:: )
-
-set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
-
-install(EXPORT ${PROJECT_NAME}Targets
- FILE
- "${PROJECT_NAME}Config.cmake"
- NAMESPACE
- ${PROJECT_NAME}::
- DESTINATION
- ${ConfigPackageLocation}
-)
-install(
- FILES
- ${PROJECT_SOURCE_DIR}/include/opencsg.h
- DESTINATION
- ${CMAKE_INSTALL_INCLUDEDIR}/opencsg
-)
-install(
- FILES
- "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
- DESTINATION
- ${ConfigPackageLocation}
-)
diff --git a/deps/OpenCSG/OpenCSG.cmake b/deps/OpenCSG/OpenCSG.cmake
deleted file mode 100644
index 2181ba0955..0000000000
--- a/deps/OpenCSG/OpenCSG.cmake
+++ /dev/null
@@ -1,17 +0,0 @@
-
-orcaslicer_add_cmake_project(OpenCSG
- # GIT_REPOSITORY https://github.com/floriankirsch/OpenCSG.git
- # GIT_TAG 83e274457b46c9ad11a4ee599203250b1618f3b9 #v1.4.2
- URL https://github.com/floriankirsch/OpenCSG/archive/refs/tags/opencsg-1-4-2-release.zip
- URL_HASH SHA256=51afe0db79af8386e2027d56d685177135581e0ee82ade9d7f2caff8deab5ec5
- PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.in ./CMakeLists.txt
- DEPENDS dep_GLEW
-)
-
-if (TARGET ${ZLIB_PKG})
- add_dependencies(dep_OpenCSG ${ZLIB_PKG})
-endif()
-
-if (MSVC)
- add_debug_dep(dep_OpenCSG)
-endif ()
\ No newline at end of file
diff --git a/deps/OpenSSL/OpenSSL.cmake b/deps/OpenSSL/OpenSSL.cmake
index 2bbf2b81b7..35b17ed50e 100644
--- a/deps/OpenSSL/OpenSSL.cmake
+++ b/deps/OpenSSL/OpenSSL.cmake
@@ -44,6 +44,18 @@ else()
if(APPLE)
set(_conf_cmd export MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} && ./Configure -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET})
else()
+ # A static library that is embedded into a shared object must not export
+ # its symbols. On Linux the running process also loads the system OpenSSL
+ # 3.x (WebKitGTK/gnutls pull in libcrypto.so.3), and CPython's _ssl and
+ # _hashlib are dlopened (RTLD_LOCAL) DSOs that each embed this OpenSSL.
+ # With default visibility their unversioned OpenSSL references are
+ # preempted by that global 3.x copy, mixing the 1.1.1 and 3.x ABIs and
+ # corrupting the heap (ssl.create_default_context() aborts). Hidden
+ # visibility makes each embedded copy self-contained. Linux-only: macOS
+ # binds dylibs with a two-level namespace (no interposition) and ships no
+ # OpenSSL, and Windows has no equivalent flag and no system OpenSSL to
+ # collide with.
+ set(_openssl_extra_cflags -fvisibility=hidden)
set(_conf_cmd env "CC=${CMAKE_C_COMPILER}" "LDFLAGS=${CMAKE_EXE_LINKER_FLAGS}" "./config")
endif()
set(_cross_comp_prefix_line "")
@@ -102,3 +114,20 @@ ExternalProject_Add_Step(dep_OpenSSL install_cmake_files
COMMAND ${CMAKE_COMMAND} -E copy_directory openssl "${DESTDIR}${CMAKE_INSTALL_LIBDIR}/cmake/openssl"
WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}"
)
+
+if (NOT WIN32 AND NOT APPLE)
+ # OpenSSL's object rules do not depend on CFLAGS, so reconfiguring it (for
+ # example to add -fvisibility=hidden) relinks the archives from stale
+ # objects instead of recompiling them, and the change silently has no
+ # effect. Drop the objects whenever this recipe changes so the next build
+ # actually recompiles them.
+ ExternalProject_Get_Property(dep_OpenSSL SOURCE_DIR)
+ ExternalProject_Add_Step(dep_OpenSSL clean_objects
+ DEPENDEES configure
+ DEPENDERS build
+ COMMAND make clean
+ WORKING_DIRECTORY "${SOURCE_DIR}"
+ DEPENDS "${CMAKE_CURRENT_LIST_FILE}"
+ COMMENT "OpenSSL: cleaning objects after a recipe change"
+ )
+endif ()
diff --git a/deps/python3/01-windows-nuget.patch b/deps/python3/01-windows-nuget.patch
deleted file mode 100644
index a3b8439779..0000000000
--- a/deps/python3/01-windows-nuget.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From b32e63f75046d186d93ee7d627c978f2f7c892f3 Mon Sep 17 00:00:00 2001
-From: Steve Dower
-Date: Fri, 10 Jul 2026 14:04:00 +0100
-Subject: [PATCH] [3.13] gh-153438: Update NuGet download URL (GH-153482)
- (GH-153515)
-
-gh-153438: Update NuGet download URL (GH-153482)
-(cherry picked from commit 106eb532ea3b243423e62a702719e9d3c0e40c16)
-(cherry picked from commit 62eb50d65d538dda5164f9c4a097a896454a0d1c)
-
-Co-authored-by: Steve Dower
-Co-authored-by: Harjoth Khara
----
- Doc/using/windows.rst | 6 +++---
- .../Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst | 2 ++
- PCbuild/find_python.bat | 2 +-
- Tools/msi/get_externals.bat | 2 +-
- 4 files changed, 7 insertions(+), 5 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst
-
-diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst
-index 2a507675044666..4800789ca2d6cc 100644
---- a/Doc/using/windows.rst
-+++ b/Doc/using/windows.rst
-@@ -414,9 +414,9 @@ on using nuget. What follows is a summary that is sufficient for Python
- developers.
-
- The ``nuget.exe`` command line tool may be downloaded directly from
--``https://aka.ms/nugetclidl``, for example, using curl or PowerShell. With the
--tool, the latest version of Python for 64-bit or 32-bit machines is installed
--using::
-+``https://dist.nuget.org/win-x86-commandline/latest/nuget.exe``, for example,
-+using curl or PowerShell. With the tool, the latest version of Python for
-+64-bit or 32-bit machines is installed using::
-
- nuget.exe install python -ExcludeVersion -OutputDirectory .
- nuget.exe install pythonx86 -ExcludeVersion -OutputDirectory .
-diff --git a/Misc/NEWS.d/next/Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst b/Misc/NEWS.d/next/Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst
-new file mode 100644
-index 00000000000000..edab8e6ba7b259
---- /dev/null
-+++ b/Misc/NEWS.d/next/Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst
-@@ -0,0 +1,2 @@
-+Update Windows build and installer tooling and documentation to use the
-+current download URL for ``nuget.exe``.
-diff --git a/PCbuild/find_python.bat b/PCbuild/find_python.bat
-index 0af367a3efafad..9612a2860ef9c3 100644
---- a/PCbuild/find_python.bat
-+++ b/PCbuild/find_python.bat
-@@ -52,7 +52,7 @@
- @set _Py_HOST_PYTHON=%HOST_PYTHON%
- @if "%_Py_HOST_PYTHON%"=="" set _Py_HOST_PYTHON=py
- @if "%_Py_NUGET%"=="" (set _Py_NUGET=%_Py_EXTERNALS_DIR%\nuget.exe)
--@if "%_Py_NUGET_URL%"=="" (set _Py_NUGET_URL=https://aka.ms/nugetclidl)
-+@if "%_Py_NUGET_URL%"=="" (set _Py_NUGET_URL=https://dist.nuget.org/win-x86-commandline/latest/nuget.exe)
- @if NOT exist "%_Py_NUGET%" (
- @if not "%_Py_Quiet%"=="1" @echo Downloading nuget...
- @rem NB: Must use single quotes around NUGET here, NOT double!
-diff --git a/Tools/msi/get_externals.bat b/Tools/msi/get_externals.bat
-index f6602ce9588ff4..c7c7e9f470bc25 100644
---- a/Tools/msi/get_externals.bat
-+++ b/Tools/msi/get_externals.bat
-@@ -6,7 +6,7 @@ set HERE=%~dp0
- if "%PCBUILD%"=="" (set PCBUILD=%HERE%..\..\PCbuild\)
- if "%EXTERNALS_DIR%"=="" (set EXTERNALS_DIR=%HERE%..\..\externals\windows-installer)
- if "%NUGET%"=="" (set NUGET=%EXTERNALS_DIR%\..\nuget.exe)
--if "%NUGET_URL%"=="" (set NUGET_URL=https://aka.ms/nugetclidl)
-+if "%NUGET_URL%"=="" (set NUGET_URL=https://dist.nuget.org/win-x86-commandline/latest/nuget.exe)
-
- set DO_FETCH=true
- set DO_CLEAN=false
diff --git a/deps/python3/python3.cmake b/deps/python3/python3.cmake
index 6b4443ef3a..f520c536d5 100644
--- a/deps/python3/python3.cmake
+++ b/deps/python3/python3.cmake
@@ -8,20 +8,45 @@ set(_python_url "https://www.python.org/ftp/python/${_python_version}/Python-${_
set(_python_sha256 "c08bc65a81971c1dd5783182826503369466c7e67374d1646519adf05207b684")
-set(_patch_cmd "")
if(WIN32)
-
- # Fix python build failure on Windows if python is not available, due to wrong nuget download URL
- # See https://github.com/python/cpython/issues/153438
- # Patch from https://github.com/python/cpython/pull/153608
- # This patch has not been merged to 3.12 yet so we need to apply it manually
- #
- # Without core.autocrlf=false the patched find_python.bat comes out LF and
- # cmd.exe cannot find its goto labels.
- set(_patch_cmd git init
- && ${GIT_EXECUTABLE} -c core.autocrlf=false apply --verbose
- --ignore-space-change --whitespace=fix
- ${CMAKE_CURRENT_LIST_DIR}/01-windows-nuget.patch)
+ # Build-time Python for PCbuild's scripts, pinned because 3.15 cannot run the 3.12 scripts.
+ set(DEP_PYTHON_HOST "" CACHE FILEPATH
+ "Python 3.10-3.13 that runs CPython's build scripts; empty downloads a pinned one from nuget.org")
+ if(DEP_PYTHON_HOST)
+ execute_process(
+ COMMAND "${DEP_PYTHON_HOST}" -E -c "import sys; print('%d.%d' % sys.version_info[:2])"
+ OUTPUT_VARIABLE _python_host_minor
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE _python_host_result
+ )
+ if(NOT _python_host_result EQUAL 0 OR _python_host_minor VERSION_LESS 3.10 OR _python_host_minor VERSION_GREATER 3.13)
+ message(FATAL_ERROR "DEP_PYTHON_HOST must be Python 3.10 to 3.13, got '${_python_host_minor}' from ${DEP_PYTHON_HOST}")
+ endif()
+ file(TO_NATIVE_PATH "${DEP_PYTHON_HOST}" _python_host)
+ else()
+ set(_python_host_version "3.13.16")
+ if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "ARM64|aarch64")
+ set(_python_host_package pythonarm64)
+ set(_python_host_sha256 bfd77aa5b0edff4a7936a3220e8b79e7c78f864ce13e8fa2c835d9946e11694a)
+ else()
+ set(_python_host_package pythonx86)
+ set(_python_host_sha256 c65cf47664b33286dfc5f2a17303668dd59e057869815ed9b270fb3866c1dd15)
+ endif()
+ set(_python_host_dir "${CMAKE_CURRENT_BINARY_DIR}/dep_python3_host-prefix/src/dep_python3_host")
+ ExternalProject_Add(dep_python3_host
+ URL "https://api.nuget.org/v3-flatcontainer/${_python_host_package}/${_python_host_version}/${_python_host_package}.${_python_host_version}.nupkg"
+ URL_HASH SHA256=${_python_host_sha256}
+ DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/python3
+ # Renames the .nupkg to .zip so ExternalProject extracts it.
+ DOWNLOAD_NAME ${_python_host_package}.${_python_host_version}.zip
+ SOURCE_DIR "${_python_host_dir}"
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ""
+ )
+ file(TO_NATIVE_PATH "${_python_host_dir}/tools/python.exe" _python_host)
+ set(_python_depends dep_python3_host)
+ endif()
if(MSVC_VERSION EQUAL 1800)
set(_python_platform_toolset v120)
@@ -63,6 +88,47 @@ if(WIN32)
# release python3xx.lib; Py_DEBUG could not load release plugin modules.
set(_python_pcbuild_config Release)
+ # CPython's own libraries, fetched here instead of by get_externals.bat, which ignores failed
+ # downloads. Must match PCbuild/get_externals.bat for _python_version.
+ set(_python_externals
+ # repo folder commit sha256 of the archive
+ source-deps bzip2-1.0.8 05301997b2f9590f49c672cf3dfd3d3dfa7ad521 44b15bede52b32f8673a2976621a847258b041243c003e30f4d9a05214785fe5
+ source-deps sqlite-3.49.1.0 cb7a3997059739fe9c63b2819aeda7c6907510ef 586fe469463f5b27b749f9eef1938baa8e8a12030341e96160a371356c2d6759
+ source-deps xz-5.2.5 c6bc0c612605622aaef101a33a751f9de2ecc193 d99882a8f9fd48be0e605e27e3c077e5eaab370f6f52ebcc8ff754480ffdf0bc
+ source-deps zlib-1.3.1 4dc98e1909830e2bdc2a9cc2236e3c5d5037335b 39d867c083ebc37c77cf03a442f87c0f83db006eb64343bd4a19f1c84c26f50c
+ bin-deps libffi-3.4.4 94cb9a1c7feb608adf2b9f8fe2dbd6925ffbf90d 6b0f53490e0dd958708bff32df689cf2163c214147fcb8edb76a403fa6a877ca
+ bin-deps openssl-bin-3.0.16.2 1174fd43d858425c345b16d631716fb98ba492ea b741fd1411a36cb899fee2c39b70a4492f4bc1c6e2301d67df32e9754118a63b
+ )
+ set(_python_externals_dir "${CMAKE_CURRENT_BINARY_DIR}/dep_python3_externals")
+ list(LENGTH _python_externals _python_externals_len)
+ math(EXPR _python_externals_last "${_python_externals_len} - 1")
+ foreach(_i RANGE 0 ${_python_externals_last} 4)
+ math(EXPR _j "${_i} + 1")
+ math(EXPR _k "${_i} + 2")
+ math(EXPR _l "${_i} + 3")
+ list(GET _python_externals ${_i} _ext_repo)
+ list(GET _python_externals ${_j} _ext_name)
+ list(GET _python_externals ${_k} _ext_commit)
+ list(GET _python_externals ${_l} _ext_sha256)
+ ExternalProject_Add(dep_python3_ext_${_ext_name}
+ URL "https://github.com/python/cpython-${_ext_repo}/archive/${_ext_commit}.zip"
+ URL_HASH SHA256=${_ext_sha256}
+ DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/python3
+ DOWNLOAD_NAME cpython-${_ext_repo}-${_ext_name}.zip
+ SOURCE_DIR "${_python_externals_dir}/${_ext_name}"
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ""
+ )
+ list(APPEND _python_depends dep_python3_ext_${_ext_name})
+ endforeach()
+ file(TO_NATIVE_PATH "${_python_externals_dir}" _python_externals_native)
+
+ # PCbuild runs PYTHON without -E, so PYTHONHOME and PYTHONPATH are cleared.
+ set(_python_env_args --unset=PYTHONHOME --unset=PYTHONPATH "PYTHON=${_python_host}"
+ "EXTERNALS_DIR=${_python_externals_native}"
+ "GIT_CEILING_DIRECTORIES=/..")
+
# CPython's PCbuild needs a 64-bit-hosted toolchain: find_msbuild.bat picks the
# 32-bit Bin\MSBuild.exe, whose x86 cl.exe/link.exe run out of address space
# (fatal C1002 "out of heap space") building the LTCG-optimized pythoncore.
@@ -71,7 +137,6 @@ if(WIN32)
# then hosts arm64 tools on its own; the amd64 MSBuild still defaults to x86, so
# PreferredToolArchitecture pins it to x64. Scoped to this build step, so
# CPython's own sources stay untouched.
- set(_python_env_args "GIT_CEILING_DIRECTORIES=/..")
if(CMAKE_GENERATOR_INSTANCE) # empty for non-VS generators (e.g. Ninja)
set(_python_msbuild "${CMAKE_GENERATOR_INSTANCE}/MSBuild/Current/Bin/${_python_msbuild_host}/MSBuild.exe")
if(EXISTS "${_python_msbuild}")
@@ -284,12 +349,12 @@ endif()
ExternalProject_Add(dep_python3
URL "${_python_url}"
URL_HASH SHA256=${_python_sha256}
- PATCH_COMMAND ${_patch_cmd}
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/python3
BUILD_IN_SOURCE ON
CONFIGURE_COMMAND ${_conf_cmd}
BUILD_COMMAND ${_build_cmd}
INSTALL_COMMAND ${_install_cmd}
+ DEPENDS ${_python_depends}
)
# Python depends on OpenSSL and ZLIB
@@ -299,3 +364,27 @@ endif()
if(TARGET dep_ZLIB)
add_dependencies(dep_python3 dep_ZLIB)
endif()
+
+if (NOT WIN32 AND NOT APPLE)
+ # CPython's Makefile rules for _ssl and _hashlib depend only on their own
+ # sources, not on the OpenSSL archives, so a rebuilt OpenSSL does not make
+ # them relink and they keep the previous symbols. On an incremental tree,
+ # drop the built modules and relink them against the current OpenSSL; a
+ # fresh build is left alone (its PGO target builds them). "make" alone is a
+ # no-op once PGO has run, so sharedmods is invoked explicitly.
+ ExternalProject_Get_Property(dep_python3 SOURCE_DIR)
+ file(GLOB _python_ssl_modules
+ "${SOURCE_DIR}/Modules/_ssl*.so"
+ "${SOURCE_DIR}/Modules/_hashlib*.so")
+ if (_python_ssl_modules)
+ ExternalProject_Add_Step(dep_python3 relink_ssl_extensions
+ DEPENDEES configure
+ DEPENDERS build
+ COMMAND sh -c "rm -f '${SOURCE_DIR}'/Modules/_ssl*.so '${SOURCE_DIR}'/Modules/_hashlib*.so && make -j${NPROC} sharedmods"
+ WORKING_DIRECTORY "${SOURCE_DIR}"
+ COMMENT "CPython: relinking _ssl/_hashlib against the current OpenSSL"
+ DEPENDS "${CMAKE_CURRENT_LIST_FILE}"
+ "${CMAKE_CURRENT_LIST_DIR}/../OpenSSL/OpenSSL.cmake"
+ )
+ endif ()
+endif ()
diff --git a/deps_src/libnest2d/include/libnest2d/placers/nfpplacer.hpp b/deps_src/libnest2d/include/libnest2d/placers/nfpplacer.hpp
index dc7733ebd6..ba015b0faa 100644
--- a/deps_src/libnest2d/include/libnest2d/placers/nfpplacer.hpp
+++ b/deps_src/libnest2d/include/libnest2d/placers/nfpplacer.hpp
@@ -1111,7 +1111,24 @@ private:
default: ; // DONT_ALIGN
}
- auto d = cb - ci;
+ auto d = cb - ci;
+
+ // Keep the pile on the bin. Centring it on a target near an edge (a belt
+ // printer starts its parts at the leading end of the belt) would push a pile
+ // larger than the room around that point off the bed, so it stops at the
+ // edge instead; a pile that does not fit along an axis is centred on it.
+ // The items' boxes carry their inflation, which is the margin left at the edge.
+ auto on_bin = [](Coord lo, Coord hi, Coord bin_lo, Coord bin_hi, Coord shift) {
+ if (hi - lo >= bin_hi - bin_lo)
+ return (bin_lo + bin_hi) / 2 - (lo + hi) / 2;
+ if (lo + shift < bin_lo)
+ shift = bin_lo - lo;
+ if (hi + shift > bin_hi)
+ shift = bin_hi - hi;
+ return shift;
+ };
+ setX(d, on_bin(getX(bb.minCorner()), getX(bb.maxCorner()), getX(bbin.minCorner()), getX(bbin.maxCorner()), getX(d)));
+ setY(d, on_bin(getY(bb.minCorner()), getY(bb.maxCorner()), getY(bbin.minCorner()), getY(bbin.maxCorner()), getY(d)));
// BBS make sure the item won't clash with excluded regions
// do we have wipe tower after arranging?
@@ -1140,9 +1157,7 @@ private:
return;
}
Item objs_convex_hull_item(objs_convex_hull);
- Vertex objs_convex_hull_ref = objs_convex_hull_item.referenceVertex();
- Vertex diff = objs_convex_hull_ref - sl::boundingBox(objs_convex_hull).center();
- Vertex ref_aligned = cb + diff; // reference point when pile center aligned with bed center
+ Vertex ref_aligned = objs_convex_hull_item.referenceVertex() + d;
bool ref_aligned_is_ok = std::any_of(nfps.begin(), nfps.end(), [&ref_aligned](auto& nfp) {return sl::isInside(ref_aligned, nfp); });
if (!ref_aligned_is_ok) {
// ref_aligned is not good, then find a nearest point on nfp boundary
diff --git a/deps_src/mcut/include/mcut/internal/tpool.h b/deps_src/mcut/include/mcut/internal/tpool.h
index 9626d8f1cf..810e00248c 100644
--- a/deps_src/mcut/include/mcut/internal/tpool.h
+++ b/deps_src/mcut/include/mcut/internal/tpool.h
@@ -191,7 +191,7 @@ public:
tail->next = std::move(p);
tail = new_tail;
}
- data_cond.notify_one();
+ disrupt_wait_for_data();
}
void wait_and_pop(T& value)
diff --git a/docs/HLSD/adaptive-tpms-infill.md b/docs/HLSD/adaptive-tpms-infill.md
new file mode 100644
index 0000000000..5fc578f7e2
--- /dev/null
+++ b/docs/HLSD/adaptive-tpms-infill.md
@@ -0,0 +1,221 @@
+# Adaptive TPMS infill — High Level Design
+
+## Purpose and scope
+
+`tpms_adaptive` grades the sparse infill of the Gyroid, TPMS-D and TPMS-FK
+patterns inside the object: the cells grow continuously from the surface
+towards the center of the object. `distance_warp`, `smooth_blend` and
+`stepped_shells` follow the distance to the nearest surface, including the top
+and bottom, like concentric shells; `lobes` follows the whole 3D shape towards
+the center of each lobe of the object; `normal_z`, `normal_y` and `normal_x`
+follow each section of the object normal to that axis, so the grading does not
+change along the axis, as suits a profile extruded along it.
+`sparse_infill_density` is the density at the surface, `tpms_interior_density`
+the density at the center, and `tpms_adaptive_gradient` picks how the density
+goes from one to the other. Only internal sparse infill is graded; the Gyroid
+Z-buckling optimization does not apply to it.
+
+The design has two parts: a field built once per object, and a pattern made
+from it, warped around the center of each lobe of a body so that its cell size
+follows the field, or, in the modes following the distance to the surface,
+split into shells or blended between densities.
+
+## Radial field
+
+`TpmsRadialField` gives every point of an object the center of its lobe and a
+radial coordinate: 0 at the center, 1 at the surface along the ray from the
+center. `PrintObject::prepare_tpms_radial_fields()` builds it in
+`bridge_over_infill()`, next to the adaptive cubic octree, because the anchoring
+infill generated there has to match the printed infill. A field is built for
+every mode a region uses, and is shared by the regions using that mode: the
+field depends on the geometry only, the densities are applied per region in the
+fill. An object thinner than the grid cells has no body in the field; no field
+is kept then, and the infill falls back to the regular pattern. In the modes
+following the distance to the surface, the field also gives the depth of every
+point (see below).
+
+A regular 3D grid of cubic cells is rasterized from the `lslices` of the layers,
+so the field follows what is printed: negative volumes, the union of
+overlapping parts and holes are taken into account, and the mesh does not need
+to be closed. A padding node around the grid is always outside. The grid is
+capped at about a million nodes, with cells no smaller than 0.5 mm.
+
+- Bodies are the connected inside nodes. Each is graded on its own, so separate
+ parts of one object each get their own sparse center.
+- A body is split into lobes around the local maxima of the depth, by an exact
+ Euclidean distance transform (Felzenszwalb and Huttenlocher, one pass per
+ axis). Two maxima are in separate lobes when the depth along the segment
+ between them drops below 0.8 of the shallower one, like at the neck between
+ two united spheres; maxima shallower than 0.3 of the deepest one are ignored.
+ A maximum joins the first lobe whose first maximum it sees without a neck.
+ The lobes are made one at a time, the remaining maxima tested against the
+ first one in parallel, as a plate has a whole plane of them.
+ Where the depth ties along a line or a plane, as in a tall box, the lobe's
+ center is the node nearest to the middle of the tied nodes, so the center is
+ in the middle of the height and not a column.
+- A point belongs to the lobe it is nearest to relative to their depths, so the
+ side between two lobes is nearer to the smaller one. Near that side, within a
+ tenth of that relative distance, the patterns of the lobes morph into each
+ other, so the lines stay continuous. Every lobe in that range takes part, up
+ to four, so the morph is also continuous where three or four lobes meet.
+- The reach of a lobe is the distance from its center to the first exit along
+ 24 x 48 latitude-longitude directions, smoothed twice over neighbouring
+ directions in log space. Towards a neighbouring lobe it stops at twice the
+ distance to the side between them, so that side is graded half way, as deep
+ as a neck is, rather than as sparse as the center or as dense as the surface.
+ Only the lobes whose centers are near enough to be nearer at the current
+ distance are compared along a ray, so many lobes, as in a perforated plate,
+ stay cheap.
+ The radial coordinate of a point is its distance to the center over the reach
+ in its direction. Behind a gap, as across the hole
+ of a ring, the radial coordinate is above 1 and the infill keeps the surface
+ density.
+- Every outside node belongs to its nearest body, so points near a surface find
+ their body without a search. With a single body, all nodes belong to it.
+
+In the 2D modes, every plane of nodes normal to the axis is a field of its own:
+the distance transform skips the axis, bodies, lobes and the nearest body are
+found within the plane, and the reach is sampled on a circle of 48 directions.
+A point is looked up in the two planes around it, the weights of their lobes
+interpolated along the axis, so the grading does not step between planes; a
+plane without a body uses the nearest one that has one. The planes are a cell
+apart, not a layer: where the sections change abruptly, as at a step, the
+patterns of the two planes morph into each other over that cell.
+
+A distance to the nearest surface would be the obvious field, but no smooth map
+follows it. By the divergence theorem, the mean scale of a map over a body is
+fixed by its values on the surface: a map that keeps the full density along the
+whole surface, as the distance would ask under the top and bottom, has the mean
+density of the uniform infill, the sparser core being paid for by lines crowding
+along the walls. The layers of a plate at different depths would also need
+different line spacings in the same directions, which no continuous map allows
+without shearing across the plate. Following the distance needs changes of the
+topology of the lattice (see below). The radial coordinate instead grades what a
+single map can: towards one point.
+
+## Warped pattern
+
+The pattern is evaluated on warped coordinates:
+
+ TPMS(f_surface * m(t) * (p - center))
+
+where `m` scales the pattern around the center of the lobe: its frequency is
+`m + t * m'` along the ray and `m` across it. `m(t)` is the mean of the target
+scale over the ball of radius `t`, `3 / t^3 * integral of s^2 * target(s) ds`, so
+the mean of the three, and with it the density, follows the gradient. The cells
+are round at the center; near the surface they are flattened, with the lines
+running parallel to it. Beyond the surface the target is the surface scale, so
+the warp extends continuously outside.
+
+In the 2D modes only the coordinates within the plane are warped, and `m(t)` is
+the mean over the disc, `2 / t^2 * integral of s * target(s) ds`. Along the axis
+the pattern keeps the interior frequency: scaling it with `m` would shear the
+pattern by the distance along the axis times the gradient of `m`, without bound
+on a long object. The cells are round at the center and stretched along the
+axis near the surface. With Normal Z the layers are graded exactly, since
+the lines of a layer follow its in-plane frequencies; normal to X or Y, the
+layers near the sides are as dense as the larger of the two frequencies in the
+layer, which is the surface one.
+
+Evaluating a TPMS at a frequency that varies with the position without such a
+map distorts it wherever the frequency changes, because the phase also changes
+with the gradient of the frequency times the distance from the origin. Fitting a
+smooth map to a varying isotropic scale in the least-squares sense (a Poisson
+problem per axis) cannot grade strongly: its divergence is the target scale plus
+a harmonic function pinned by the surface, which keeps the scale in the core
+near two thirds of the surface one. Following a distance exactly needs the
+lattice to change its topology, by blending lattices of different densities or
+filling shells of equal distance with them, as the modes following the distance
+to the surface do.
+
+The target scale at depth `d = 1 - t`, with `S` the surface and `I` the interior
+frequency, both from each pattern's own density calibration:
+
+| Gradient | Scale |
+|-------------|------------------------|
+| Linear | `1 + (I / S - 1) * d` |
+| Quadratic | `1 + (I / S - 1) * d^2`|
+| Exponential | `(I / S)^d` |
+
+With a denser surface, quadratic keeps the surface density deepest and
+exponential drops fastest. A denser interior works the same way.
+
+The zero level is extracted with marching squares like the regular TPMS-FK, on
+a sampling grid fixed in the fill frame like the optimized Gyroid, so that every
+region of a layer connects its lines the same way at the saddles of the pattern.
+Loops narrower than two lines (shorter than `2 * PI * spacing`) are dropped, as
+they would print as blobs. The fill works in a frame rotated by the infill
+angle, so the radial field is looked up at the point rotated back into the
+object frame, and the center rotated into the fill frame. Both use the middle of
+the layer.
+
+## Modes following the distance to the surface
+
+`distance_warp`, `smooth_blend` and `stepped_shells` grade by the distance to
+the nearest surface, including the top and bottom, as concentric shells do. The
+depth of a point is that distance over the distance of the deepest point of its
+body, from 0 at the surface to 1; the field keeps it for every node and
+interpolates it between them. A tall box so keeps its whole axis as sparse as
+its center, and a plate is graded through its thickness.
+
+No single smooth pattern follows that depth without distortion (see above), so
+the three modes trade differently:
+
+- Distance warp keeps the lobes and the warp of Lobes, but its radial profile
+ comes from the depth. For every direction of a lobe, the mean depth over the
+ ball along the ray is sampled at 33 radii up to the reach, then smoothed over
+ the neighbouring directions like the reach. The radial coordinate is the one
+ of the linear profile with the same mean depth, `t = 4/3 * (1 - mean depth)`,
+ so with a linear gradient the mean cell size follows the depth exactly, and
+ with the others approximately. In a sphere or a cube, where the depth falls
+ linearly along every ray, it is Lobes. Elsewhere the profile changes with the
+ direction, and the warp shears where neighbouring directions differ, as in
+ plates and long bodies; right under the top of a long body the cells are
+ sparser within the layer, the warp moving their density into the height.
+ The profiles are smoothed over the directions like the reach, as sharper
+ ones shear the pattern across the layer, which adds lines. A long body is so
+ graded partly along its length, between Lobes and the distance.
+- Smooth blend evaluates the regular patterns of the two levels around the
+ target of every point and blends them by a smoothstep over the whole gap
+ between the levels, here at most 2.5 times apart. The density follows the
+ depth without steps, but where two lattices blend, part of their lines run
+ along the blend, so fewer levels print fewer extra lines. From 25% to 5%,
+ three levels print about 0.45 of the uniform infill in a deep core whose
+ levels alone would print 0.3; levels 1.5 times apart print 0.6 to 0.7, and a
+ single blend from the surface to the interior 0.6.
+- Stepped shells split each region of a layer into shells and fill every shell
+ with the regular pattern at its density. The densities are levels from the
+ surface to the interior density at most 1.5 times apart, five from 25% to 5%,
+ and a point takes the level nearest to its target on that geometric scale.
+ The shells are traced by marching squares of the continuous level over the
+ layer on a 0.5 mm grid fixed in the object, so every region of a layer gets
+ the same shells, and clipped to the region. Each shell is shrunk by half a
+ line, like a filled region, and its regular filler connects its lines along
+ that boundary, so the connections of two neighbouring shells lie side by side
+ instead of on top of each other. The pattern is never
+ distorted, but its lines end at every shell, and thin parts get thin shells.
+ The connections add lines: in the core of a 60 mm cube, about a third more
+ than the target.
+
+Stepped shells and Smooth blend need neither lobes nor reaches, which are not
+built for them.
+
+## Constraints
+
+- With `tpms_adaptive` disabled, or for other patterns, the fill parameters are reset
+ to their defaults, so they neither change the infill nor split fill batches.
+- `Layer::get_sparse_infill_max_void_area()` uses the sparser of the two
+ densities, as the voids at the center are that large.
+- At a sparse infill density of 100% the sparse infill is turned into solid
+ infill, so there is nothing to grade: the options are hidden and no field is
+ built.
+- The adaptive options invalidate `posPrepareInfill`, which rebuilds the field
+ and the anchoring infill.
+- An elongated body without a neck has one center, so its far ends are graded
+ as the outer part of the body, and the warp shears where the reach changes
+ quickly with the direction. A concave body, like an L, may be split into lobes
+ where its maxima cannot see each other in a straight line.
+- Across a ray, the scale is the mean of the gradient from the center, so the
+ layers right under the top and above the bottom are sparser than the surface
+ density in their middle, and a plate is graded from its middle outwards rather
+ than through its thickness.
diff --git a/docs/HLSD/center-of-mass.md b/docs/HLSD/center-of-mass.md
new file mode 100644
index 0000000000..f857497e5f
--- /dev/null
+++ b/docs/HLSD/center-of-mass.md
@@ -0,0 +1,172 @@
+# Center of mass markers — High Level Design
+
+## Purpose and scope
+
+The "Center of mass" item of the canvas toolbar menu, in the bottom left corner of the 3D view, marks
+where the mass of the plate, of each object instance and of each body of an assembly is centered,
+in Prepare and in Preview. It helps judge how parts will rest on the plate, for instance whether a
+tall or leaning part could tip. It is a view setting: it changes nothing in the model, the slice or
+the project file, and it does not reach plate thumbnails. The choice is kept in the app config as
+`show_center_of_mass`, off by default. The assembly view and the Design tab have no markers.
+
+Three kinds of marker share one shape, a sphere whose octants alternate between two colors:
+
+- each plate, black and white, for everything on it;
+- each object instance, light blue and white;
+- each body of an assembly, red and yellow;
+- in Preview, the supports and raft of each object instance, green and black.
+
+A click on a marker opens a box beside it with the weight and volume of what it stands for, where its
+center lies in that thing's bounding box and the size of the box, and its moments of inertia about
+axes through the center parallel to x, y and z.
+
+An assembly is an object of several parts or with negative volumes. Its bodies are the connected
+solids its parts make once united, the bodies the separated infills option centers its infill on
+(see separated-infills.md): parts that overlap or touch are one body, parts apart are separate
+bodies. An object of one body, and every object of a single part, has no body markers, as its object
+marker says it all.
+
+Mass is volume times density, the `filament_density` of the filament that prints it, or 1.245 g/cm³
+(`DEFAULT_FILAMENT_DENSITY`) for a filament without one. Prepare has the model only, so it takes each
+part as a solid of the density of its filament, the part's own or else its object's. It reads each
+filament's density from the filament's selected preset, edits not yet saved included, as slicing does:
+the plater's own config holds the values of the filament edited last only. Preview has
+what will be printed, so its markers come from the toolpaths, whose mass depends on walls, infill
+and flow as well. There the solid markers are for what is printed up to the top layer the layer
+slider shows: for the plate with brim, raft and supports, where the weight rests at that point of
+the print; for an object or a body, its own extrusions. Each has a faded twin for the same at the
+end of the print, so the slider shows the weight moving toward where it ends, and at the top layer
+the two meet. In Prepare the plate has the model alone, as brim, raft and supports exist only once
+sliced.
+
+## Prepare: from the meshes
+
+An object of one part takes the mass properties of its mesh at unit density, times its density, from
+`its_mass_properties()`, which handles a mesh in a single pass. Each triangle and a fixed vertex of
+the mesh span a tetrahedron whose signed volume is `V = a · (b × c) / 6`, with `a`, `b`, `c` taken
+relative to that vertex. By the divergence theorem these volumes add up to the volume of a closed
+mesh, their volume-weighted centroids to its center of mass, and their second moments
+`V (a aᵀ + b bᵀ + c cᵀ + s sᵀ) / 20`, with `s = a + b + c`, to its own. Shells facing inward, such as
+a cavity, subtract themselves, and flipping every triangle changes nothing. The sums are kept in
+double precision and relative to a vertex of the mesh rather than the origin, which keeps them exact
+for meshes far from it. The result keeps the spread of the mass about its center,
+`(x - c)(x - c)ᵀ` averaged over the mass, from which the moments of inertia follow.
+
+The CGAL routines that look alike do not compute this. `CGAL::centroid` weighs tetrahedra by their
+unsigned volume, so it fails on cavities and on any shell that is not star-shaped from the fan's
+apex; over triangles it returns the centroid of the surface, and over points the average of the
+vertices, which depends on the tessellation. `CGAL::barycenter` with the signed volumes as weights
+gives the same answer, but only after copying every tetrahedron into a vector of weighted points,
+and takes two and a half times as long.
+
+A mesh's result is in its own coordinates. Each `GLVolume` maps it to the world with its world
+matrix `M`, and weighs it by the volume times the absolute determinant of that matrix: a center of
+mass moves with any affine map, and the spread becomes `L S Lᵀ` for the linear part `L` of `M`, so no
+mesh is ever transformed. The `GLVolume`'s matrices, rather than the
+model's, let the markers follow an object while it is dragged, before the model is updated. Results
+are cached by `ModelVolume` id; a `ModelVolume` takes a new id whenever its mesh changes, which is
+the rule `reload_scene()` relies on to rebuild a `GLVolume`'s geometry, so a cached result never
+outlives its mesh.
+
+An assembly's parts overlap or touch, which the mesh formula would count twice, so `solid_bodies()`
+slices them instead, in the object's coordinates. It cuts the height into 500 slabs, 100 while a part
+is dragged, slices every part and negative volume at the middle of each slab, unites the parts and
+cuts the negative volumes away, and links the islands of neighboring slabs that overlap into bodies
+with `connected_bodies()`. Each island adds a prism of the slab's thickness at the density: its
+area, and its first and second moments of area, from the same sums over the outline as the area,
+with the slab's height for z. Where parts of different densities overlap, the later volume of the object counts, as
+slicing clips every part by the parts after it; each part then weighs the region it prints, which is
+credited to the island holding it. Each body also keeps the convex hull of its islands and the height
+they span, whose corners, once transformed, give its bounding box, tight while the instance turns
+about z only. The object is the sum of its bodies, its box that of its parts, as the object's size
+shows it, and each plate the sum of the object instances `PartPlateList::find_instance()` puts on it,
+so that an instance on no plate counts in none. The bodies are cached by `ModelObject` id with the volumes, types, densities and
+transformations they were sliced from.
+
+## Preview: from the toolpaths
+
+`GCodeProcessor` sums the masses while it processes the G-code, in the same pass that builds the
+moves, and leaves them in `GCodeProcessorResult`; `GCodeViewer` keeps a copy of them when it loads a
+result. Nothing is stored per move.
+
+Each extrusion weighs the volume of filament its E extrudes times the density of the filament that
+extrudes it, so a print of several materials weighs each as it is. Flow ratio, line widths, ironing
+and purging into infill all count
+as printed. Its mass spreads evenly along the segment the bead's center runs, half the layer height
+below the nozzle, in the frame of the stored moves: plate offset added, Z offset removed. Such a
+segment from `a` to `b` adds `m (a + b) / 2` to the moments and `m (a² + a b + b²) / 3` to the second
+moments along each axis, and its box widened by half the bead's height to the bounding box; not by
+half its width, which the processor only estimates, so that a box runs along the walls' center lines. Arcs are already split into segments by the processor. Walls, infill, top and bottom surfaces, ironing
+and gap fill make the parts. The brim and the support roles, the raft among them, count only in what
+the plate prints. The skirt, the prime tower and custom G-code count nowhere.
+
+The plate takes every extrusion, so it needs nothing more. The objects and bodies need the sliced
+objects, which the G-code does not describe, so the G-code export hands the processor a locator
+built from the `Print`; G-code opened from a file, or from a project sliced earlier, has no `Print`
+behind it, and so shows the plate alone. Object labels would not do: profiles turn the four kinds
+Orca writes on and off in every combination, and none of them tells the bodies apart.
+
+The locator numbers the object instances and, for each assembly, the bodies of every instance. It
+takes the bodies `PrintObject::prepare_infill()` found for separated infills, or, when that option
+did not need them, links the islands (`Layer::lslices`) of neighboring layers into bodies with the
+same `connected_bodies()`. For each extrusion of a part, it finds the first layer printed at or above
+its height, as spiral vase rises through each layer, and the island holding it with an
+`IslandLocator`, the one `solid_bodies()` credits its regions with: by the island's box, widened by
+1 mm for walls reaching past it, with a polygon test only where boxes overlap, and the nearest
+outline where none holds the point. The boxes of one layer's islands say nothing of the other
+instances, so an instance whose widened box reaches another's, as copies placed side by side do,
+tests the outlines alone, and outside them the nearest outline of all such instances wins. The island
+gives both the instance and the body. The island found last is tried first, as extrusions mostly follow each other on one
+island. Brim, raft and supports lie outside the islands. The brim counts in the plate only; a support
+or raft extrusion goes to the instance whose footprint, the box of its widened islands, holds it, the
+one whose center is nearest among several, or else the nearest footprint, as supports stand below and
+around their object.
+
+Each mass holds, for each layer id, the running total of what is printed up to that layer, the last
+of which is the faded marker's, so the solid marker for any slider position is a single lookup. The layer ids are those
+the moves carry, which are also the layers of libvgcode and of the slider; in a print by object they
+follow the order of printing, so the solid markers show the objects printed so far as they are.
+
+## Drawing
+
+`smooth_sphere()` with a resolution divisible by four leaves every triangle within one octant, so it
+splits into two models drawn with the `gouraud_light` shader in each kind's two colors. The radius is
+9 pixels for the plate, 7 for the objects, 6 for the supports and 5 for the bodies, scaled like the canvas toolbar for the
+display's DPI and kept constant on screen through the camera's inverse zoom. They are drawn in that
+order, so that markers at one place show as rings. The faded markers are the same spheres at 40%
+opacity, drawn before all the solid ones, which show over them where both meet.
+
+The centers usually lie inside the objects, so the markers are drawn without the depth test and show
+through the objects and anything in front of them. Back face culling keeps the far half of a sphere
+from covering the near one. They are drawn after the ambient occlusion pass, which would otherwise
+darken them as the surface behind them, and before FXAA, which smooths their edges.
+
+The markers are part of the cached scene, so toggling them, or changing a filament's density while
+they are shown, marks the scene dirty, and moving the layer slider redraws the scene with the solid
+markers where they belong. In Prepare they are hidden while any gizmo other than Move, Rotate, Scale
+and Lay on face is open, since the others work on the surface a marker would cover, and a hidden
+object has no markers.
+
+## Details
+
+The markers drawn last are kept, and a left click is tested against them before it selects: each
+center and a point a radius to its right are projected to the screen, and the click hits a marker
+within that distance. The solid markers are tested before the faded ones and the smaller kinds
+before the larger, the order in which they cover each other. A hit opens the details of that marker
+and keeps the click from changing the selection; a click anywhere else closes them. The box is an
+ImGui window beside the marker, redrawn with the overlay from the markers of the last scene, so it
+follows a dragged object, and in Preview the layer slider. It closes when its marker is gone, or when
+the number of markers of its kind changes, as then it may stand for something else.
+
+Its title says what the marker stands for: the plate, an object, an assembly or a part, the body of
+an assembly. The G-code export lists the object instances for the processor, marking assemblies, as
+it hands it the locator.
+
+Each marker carries its sums: mass, volume, first moments and the second moments about the origin
+along each axis, `Σ m x²`, `Σ m y²` and `Σ m z²`, which add up from parts to objects to plates. The
+moment of inertia about the axis through the center parallel to x is then
+`m (σy² + σz²)`, with `σ² = Σ m x² / m - c²` along each axis, and likewise for y and z. Masses are
+kept in mg, volume times density in g/cm³, and shown in g, volumes in cm³ and moments of inertia in
+g·mm². In Preview the box tells the finished print from what is printed up to the layer shown, the
+two weighing differently, and both are placed in the bounding box of everything the marker holds
+by the end.
diff --git a/docs/HLSD/color-picker.md b/docs/HLSD/color-picker.md
new file mode 100644
index 0000000000..b753477b3b
--- /dev/null
+++ b/docs/HLSD/color-picker.md
@@ -0,0 +1,131 @@
+# Color picker
+
+The color picker is a local HTML dialog hosted by `ColorPickerDialog`, a
+`WebViewHostDialog` subclass. Its header and implementation own the ordered
+selection contract and shared filament conversion. Bridge validation, favorites
+persistence, placement and gettext strings remain private to the implementation.
+Its colors use the existing `ColorRGBA` utility.
+It uses a native title bar and fixed window border, allowing dragging but no
+manual resizing or maximization. Native title-bar colors use the application's
+shared dialog dark-theme update on creation and theme changes.
+Like SpeedDial, the host disables browser zoom accelerators, restores native
+WebView focus on activation and readiness, and synchronizes layout and the macOS
+viewport before repainting the backend. Activation never dismisses this modal
+dialog; focus restoration preserves an active editor and its partial input.
+The initialized page reports
+its intrinsic content height; native code validates the current page identifier
+and bounded numeric height, converts CSS pixels to device-independent window
+size, and fits within the display's work area. Identical sizes are ignored. The
+page observes content rather than viewport height, so resizing does not create
+a feedback loop; oversized content remains scrollable.
+The panel snapshots the triggering color or More Colors button's screen rectangle.
+It aligns below the button, flips above when needed, and clamps to that button's
+display work area on initial display. Later content and DPI changes update only
+the client size, preserving the position chosen by dragging the title bar.
+wxGTK clears the dialog's default
+parent-centering constraint and reapplies its native position after showing,
+bypassing wxGTK's requested-position cache. Absolute top-level placement remains
+subject to the window manager; Wayland compositors control it. The official filament palette's
+existing placement is independent of this custom panel.
+A solid selection contains one color; a gradient contains exactly two ordered
+endpoints. The bridge represents these as `{"type":"solid|gradient",
+"colors":["#RRGGBBAA", ...]}`. RGB input is also accepted and becomes opaque.
+Native validation rejects malformed hex and incorrect cardinality.
+
+The project filament color action and the official filament picker's More Colors
+action enable two-endpoint gradients and independent endpoint alpha. The preset
+combo box reads project colors in their stored vector order locally and applies
+changes through `sync_colour_config`,
+retaining the existing RGB/RGBA profile/project formats and dirty marking.
+Sidebar gradient and segmented multicolor swatches draw colors in the supplied
+order without sorting them.
+Opaque colors use `#RRGGBB`; nonopaque colors use `#RRGGBBAA`, including fully
+transparent alpha `00`. Initial selections, alpha-only edits and cancellation
+retain stored alpha. Ordered
+custom results bypass the official palette's `FilamentColor` set. Choosing an
+official swatch retains its existing palette behavior.
+The Linux sidebar's Change extruder color menu uses this same custom editor and
+the filament swatch anchor, including alpha, ordered gradients and configuration syncing.
+
+Striped colors and gradients with more than two endpoints cannot be represented
+by this editor. A notice explains that the current selection is retained; the
+editor starts from the first color, and unchanged confirmation is a no-op.
+Cancellation is also a no-op. If the WebView backend cannot initialize, a local
+unavailable panel offers Cancel and Escape, without opening a system color picker.
+
+Generic color option fields use an ordinary color button on every platform and
+open the same panel with gradients and alpha disabled. The panel is anchored to
+the field button. Empty or invalid field values remain undefined (the empty
+string), distinct from opaque black. Right-click resets to undefined. Cancel does
+not notify the field; confirmation and reset notify only when its RGB string
+changes. Programmatic assignments remain silent, and reading a field never
+writes legacy favorites.
+
+AMS material settings retain their fixed/AMS swatches and first-level popup. Only
+its custom-color action opens the solid, opaque editor, anchored to that custom
+control. The transient popup releases its grab while the modal is open and returns
+to the same selection on cancellation. Confirmation uses the existing default-color
+and packed RGBA event path. Device permission/status checks remain at the first-level
+entry.
+
+Texture import's color-mapping Add Material action opens a solid, opaque editor
+anchored to the mapping row. The existing filament limit is checked before opening.
+The first-level material popup closes as an action; its callback is copied before
+dismissal, so popup destruction does not invalidate the modal's completion path.
+Confirmation invokes the existing virtual-filament callback once; cancellation
+adds no material.
+
+Native gettext strings are installed at document start. Static page labels and
+palette names use stable English keys; RAL codes, channel symbols, and numeric
+labels remain data. The palette color values do not depend on the UI language.
+The application locale also sets the document language. Numeric editor validation
+uses the application's gettext messages, rather than browser language defaults;
+missing translations fall back to the stable English keys.
+
+The pure color/state regressions run with
+`node --test resources/web/dialog/ColorPickerDialog/colorpicker.test.js`.
+Optional real-browser regressions live beside them in
+`colorpicker.browser.test.js`. They use an existing Playwright installation
+(`ORCA_PLAYWRIGHT_MODULE` can name its module path) and an installed browser
+(`ORCA_BROWSER_EXECUTABLE` can name its executable), without adding a production
+dependency. They cover bridge initialization, capability combinations, invalid
+editor recovery, ordered endpoint alpha, favorites, gettext keys, and live theme
+changes. These browser checks complement native contract/persistence tests; they
+do not establish the full native modal confirmation and favorites journey.
+
+Gradient and alpha capabilities are independent and default off. Unsupported
+gradients are rejected; disabled alpha normalizes the selected result to opaque.
+Favorites retain both capabilities independently of the current caller. The page
+stores alpha as a byte and only converts to percentage when displaying or editing
+opacity, so switching endpoints does not change alpha precision.
+
+The page starts disabled. Each document supplies a page identifier in its ready
+message, receives native initialization, and acknowledges it before native code
+accepts confirmation or favorite updates. Repeated initialization does not reset
+edits, and messages from an obsolete document are ignored. Native WebView message
+handling is deferred and guarded by a lifetime token. Only a validated confirmation
+sets the optional result. Cancel, Escape and native window close leave it empty.
+
+Favorites belong to application configuration, separately from the selected result,
+in the editor configuration returned by `AppConfig::config_path()` under `data_dir()`.
+The `color_picker` section has string `version` equal to `1` and a `favorites`
+string containing a JSON array of typed selections. Native helpers normalize and
+deduplicate this array in order and limit it to 24 entries. Updates replace the
+entire section and immediately call `AppConfig::save()`, so accepted favorite
+changes survive cancellation. Empty arrays are saved explicitly. Core `AppConfig`
+only stores the raw section; color validation belongs to the GUI boundary.
+
+When the section is absent, valid solid colors from `custom_color_list` are imported
+once, without changing that legacy section. The legacy native picker saves decimal
+`r,g,b,a` byte strings; hexadecimal RGB and RGBA strings are also supported. Migration
+strictly validates all four decimal channels and preserves alpha. Gradient strings
+and malformed values are ignored. The new version and an empty array are
+saved even when there is nothing to import. A present section with an unknown or
+missing version is left untouched and disables favorite writes. Malformed version
+1 data is displayed as empty and remains on disk until the user explicitly saves
+a valid replacement. Other configuration sections and project/profile color
+formats are independent of this storage.
+
+Interface colors consume the host's `data-orca-theme` and `--orca-*` contract through
+shared styles. The picker opts into scoped global control roles. Application theme
+changes update UI surfaces without reloading the page or changing color data.
diff --git a/docs/HLSD/focus-mode.md b/docs/HLSD/focus-mode.md
new file mode 100644
index 0000000000..d877286251
--- /dev/null
+++ b/docs/HLSD/focus-mode.md
@@ -0,0 +1,66 @@
+# Focus mode (hiding inactive plates) — High Level Design
+
+## Purpose and scope
+
+"Focus mode" is an entry of the canvas menu in the bottom left corner of Prepare. Turned on (eye
+lit), the 3D view hides the inactive plates and shows the current plate alone, so a project with
+many plates can be worked on one plate at a time. Turned off, every plate is shown. It is a view
+setting: it changes nothing in the model, the slice or the project file, and it does not reach
+plate thumbnails. The choice is kept in the app config as `focus_mode`, off by default.
+
+Preview needs no such option, as it already draws the current plate alone and has its own plate
+toolbar. The assembly view and the Design tab do not lay objects out on plates, so the entry is
+disabled there.
+
+## What is shown
+
+The current plate is drawn with its bed, label and icons; the other plates are not drawn at all. The
+world axes, which Prepare draws at the corner of the first plate, move to the corner of the current
+plate, where Preview draws them.
+
+An object instance is shown when its footprint, the XY bounding box of the convex hulls of its
+volumes, overlaps the current plate, or when it is selected. The test is made per instance, so the
+parts of an object are shown or hidden together, and a wipe tower follows its plate the same way.
+It is geometric rather than the plate membership `PartPlateList` keeps, because an instance stays on
+the plate it was first placed on: an object of another plate that reaches over this one, or one too
+large for any plate, would otherwise be invisible while it takes room on the current plate. A
+selected instance stays visible so that what a selection or a gizmo acts on is never hidden, for
+instance an object picked in the object list on another plate.
+
+## Hiding
+
+A hidden object is neither drawn nor picked. `GLCanvas3D::_update_inactive_plates_visibility()`
+runs at the start of each frame of Prepare. It clears `GLVolume::is_active` on the volumes of the
+hidden instances and deactivates their raycasters, which every render pass, the hover and rectangle
+selection, the shadow and center of mass markers already respect. It also deactivates the raycasters
+of the other plates, whose icons would otherwise still take clicks where nothing is drawn. The state
+persists between frames, so the raycasts made while handling the mouse, such as the anchor of a pan,
+see the same scene as the frame.
+
+Other features clear `is_active` too: gizmos hide the objects they do not edit and show them all
+again when they close. `GLVolume::on_hidden_plate` records which volumes this update hid, so it only
+shows again what it hid itself, and it waits for a gizmo that hides objects to close before doing
+so. A volume another feature made active again is hidden again on the next frame. While Focus mode
+is off and nothing is left hidden, the update returns at once.
+
+## Switching plates
+
+The other plates cannot be clicked while Focus mode hides them, so a compact counterpart of the Preview
+plate toolbar takes their place: a column of plate thumbnails in the top left corner, below the top
+toolbar, shown when the project has more than one plate and no gizmo is open. The thumbnails are the
+ones the Preview toolbar shows (`PartPlate::thumbnail_data`); the canvas rebuilds its textures when
+`Plater::plate_toolbar_image_version()` changes, a counter each consumer tracks on its own so that the
+Preview toolbar's dirty flag is left alone. That counter moves after almost every edit, so the
+thumbnail of the current plate, the only one edited while the others are hidden, is drawn again each
+time, and the other plates' only once an edit to them has invalidated theirs. The current plate has an
+accent border, a hovered one the gray border of the Preview toolbar, empty plates are dimmed and the
+plate number sits in the corner; the tooltip gives the plate name. A click selects the plate and
+clears the selection, as a click on a plate row of the object list does. The column scrolls when it
+does not fit above the 3D navigator or the canvas toolbar. Its scrollbar works as the Preview
+toolbar's, with which it shares its style: it shows only while the mouse is over the column or drags
+the bar, and the mouse wheel scrolls the column either way.
+
+Whatever selects a plate while the others are hidden, the camera moves its target over the new plate
+and keeps its angle, distance and height (`PartPlateList::select_plate()`), so the plate comes into
+view where the previous one was. A zoom to all plates, as after loading a project or adding a plate,
+frames the current plate instead. Turning Focus mode on does the same, so the current plate fills the view.
diff --git a/docs/HLSD/mesh-repair.md b/docs/HLSD/mesh-repair.md
new file mode 100644
index 0000000000..145c904769
--- /dev/null
+++ b/docs/HLSD/mesh-repair.md
@@ -0,0 +1,135 @@
+# Mesh repair — High Level Design
+
+## Purpose and scope
+
+Mesh repair turns a broken triangle mesh into closed, outward oriented shells that bound a solid, so that the
+mesh slices predictably and the other mesh tools (booleans, cut, painting) get valid input. It runs on demand:
+the *Fix Model* command of the context menu of an object or part and of the warning icon in the object list, *Fix
+All* and *Fix All Plates* in the context menu of a plate, the prompt the Cut tool shows when a cut leaves open edges,
+the *Repair and import* choice of texture import, and the `--repair` option of the command line. It is built on CGAL
+and is the only repair the application has, on every platform.
+
+`repair_mesh()` in `src/libslic3r/MeshRepair.cpp` does the work on one `TriangleMesh`, and `ModelVolume::repair()`
+applies it to a part: it replaces the mesh only when the repair changed it, and remaps or drops the painting of a
+replaced mesh. The GUI side, `fix_model_with_cgal_gui()` in `src/slic3r/Utils/FixModelByCgal.cpp`, runs it on a
+worker thread for each volume of an object, or for one volume, behind a progress dialog. `repair_mesh()` reports its
+progress between stages through a callback, which cancels the repair by throwing.
+
+## What the repaired mesh is
+
+The repair keeps what the slicer would print from the input. The slicer fills a layer where the winding number of
+the input surface is not zero (`MeshSlicingParams::SlicingMode::Regular` uses Clipper's nonzero fill rule), so:
+
+- Shells crossing each other print as their union. The repair keeps them as separate shells, as the parts of an
+ object are kept, and makes each of them an outward oriented solid.
+- A shell inside a solid that is oriented like it adds nothing, and the repair removes it.
+- A shell inside a solid that is oriented inward is a cavity, and stays one.
+- A whole mesh turned inside out prints as a solid, and the repair turns it outward.
+
+On top of that, it closes holes and cracks, gives inconsistently oriented triangles the orientation of their
+neighbours, drops degenerate, duplicate and stray flat geometry, and removes small self-intersections inside a shell,
+such as slivers and folds. Where none of this applies, it reports the mesh as unmodified and the caller keeps the
+original mesh, its painting and its object id.
+
+A volume is repaired in place and is never split into several parts: splitting by connectivity would turn a cavity
+into a separate solid part and fill it. Each solid of the result is a shell of its own, so *Split to parts* still
+separates them. Open pieces of the input whose borders meet exactly, which are pieces of one surface rather than
+solids, come out as the one shell they form.
+
+## Pipeline
+
+The input is treated as a triangle soup. Every stage after the first only runs on what the previous ones could
+not settle, so a valid mesh passes through quickly.
+
+### Valid parts first
+
+Parts of the input that are connected by vertex indices and are already closed, consistently oriented 2-manifolds
+skip the soup stages and go straight to the shell stages. Merging their points with coincident points of other
+parts would only make non-manifold junctions out of solids that touch, for example parts of an assembly exported
+together or voxels written as separate cubes.
+
+### Soup clean-up
+
+The rest of the soup has its coincident points merged. Triangles with repeated corners are dropped. Coincident
+triangles of opposite orientation are a wall between two solids touching face to face, so they cancel in pairs;
+of the remaining copies of a triangle one is kept. A connected region that would vanish entirely through
+cancelling is a two-sided export instead (every face written in both orientations), and keeps one copy of each
+triangle.
+
+Open edges then get their vertices welded within a tolerance of 1e-4 of the bounding box diagonal, which closes the
+cracks some exporters leave between triangles that should share corners. A vertex is never welded further than a
+quarter of its shortest edge, so welding cannot collapse fine detail. A soup that stays mostly open after welding has
+cracks wider than that tolerance, and is welded again with ten and then a hundred times the tolerance.
+
+### Work units
+
+The soup is cut into units repaired independently and in parallel: its connected parts, except that open parts whose
+bounding boxes touch share a unit, so that cracks and T-junctions between separately exported patches still close.
+
+### Building the mesh
+
+A unit whose edges are each shared by at most two triangles, running in opposite directions, and whose vertices each
+have a single fan of triangles, becomes a `Surface_mesh` directly. Any other unit is oriented first. Triangles are
+flipped so that neighbours across an edge shared by two of them agree, each part keeping the orientation the
+majority of its area had, which keeps inward oriented cavities inward. Edges where that is impossible or that more
+than two triangles share are cut, and each fan of triangles around a vertex gets its own copy of the vertex. If that
+still leaves an invalid mesh, CGAL's `orient_polygon_soup()` orients the unit instead, and the parts it flipped
+against their majority are reversed back. The linear pass exists because `orient_polygon_soup()` is several times
+slower on large soups that need only a few fixes.
+
+### Closing
+
+Compatible borders are stitched, parts that can be stitched once reversed are merged, and borders still open are
+snapped onto each other within the weld tolerance, which closes T-junctions. Exactly degenerate faces are removed.
+
+Holes are filled last. Planar border loops that face each other in one plane, one inside the other, bound a single
+region, such as a missing annulus at the end of a tube or a cap with features standing on it. Such a group is
+triangulated at once with a 2D constrained Delaunay triangulation that fills only the faces at odd nesting depth,
+so the openings inside the region stay open. The patch is used only if it closes every loop with the orientation
+of the triangles around it. Every other loop is filled on its own with `triangulate_hole()`, which uses a 2D
+constrained Delaunay triangulation when the loop is planar. Otherwise it searches the best triangulation among all
+triangles over the loop for loops of up to 100 edges, and among the triangles of a 3D Delaunay triangulation for
+longer ones, as the full search is cubic in the length of the loop. Beyond 200 edges the full search is not even
+used as a fallback, and a fan around the loop's centroid closes a loop nothing else could.
+
+The closed unit is split into its shells. The largest stays in place and the others are copied out, as converting
+the whole mesh again costs seconds on large models.
+
+### Shells
+
+The shells of all units, together with the valid parts set aside at the start, are handled independently and in
+parallel. Shells enclosing no volume, which hole filling makes out of stray flat patches, are dropped.
+
+Self-intersections inside a shell are removed locally with `experimental::remove_self_intersections()`, which
+remeshes the region around them. It is used only for local defects: a shell whose intersections involve more than
+5 % of its faces is left as it is, and a result that changes the enclosed volume by more than 0.1 % is undone. On
+heavily overlapping ornamental models the remeshing otherwise cuts parts down to slivers, while on genuine defects
+it changes the volume by thousandths of a percent. Overlaps left in place slice correctly. Remeshing can cut
+small pieces off a shell, so a shell it changed is split again and its pieces enclosing no volume are dropped.
+
+Shells crossing others are found through their bounding boxes and an AABB tree per shell, and are made outward
+oriented solids. For every other shell the winding number just outside it is summed from the orientation of the
+shells containing it, tested from a point on its largest face. The shell bounds the solid only if the winding
+number is zero on exactly one of its sides; it is then oriented so that the solid is inside, or dropped otherwise.
+
+Crossing shells are not united. Slicing unites them anyway, uniting them exactly costs tens of seconds on models
+made of many overlapping pieces, and it would fuse parts that *Split to parts* should keep apart.
+
+## Robustness
+
+The repair avoids `experimental::autorefine_and_remove_self_intersections()` and corefinement, which can crash on
+messy input, and uses only steps whose failures it can detect. A step that fails keeps its input. CGAL precondition
+failures surface as `repair_mesh()` returning false with the message as the error. The output is written in float,
+as every mesh in the application is.
+
+The result does not depend on thread scheduling. `libslic3r_cgal` is built with `CGAL_LINKED_WITH_TBB`. Units and
+shells are processed in parallel, but each on its own data, and their results are gathered in a fixed order;
+sorts compare complete keys, and the detected self-intersections are put in order before they are used. Snapping
+stays sequential, as its parallel version gives different results from run to run. Holes are filled with the full
+search wherever it is affordable, because the search among Delaunay triangles can choose between equally good fills
+differently from run to run, so only non-planar holes of more than 100 edges may still vary. On some inputs
+`experimental::remove_self_intersections()` itself places a few vertices differently from run to run.
+
+## Verification
+
+`tests/libslic3r/test_mesh_repair.cpp` covers each kind of defect above on small meshes with known volumes.
diff --git a/docs/HLSD/multiline-infill.md b/docs/HLSD/multiline-infill.md
index 2f68fe3ef9..b3b46d0fd7 100644
--- a/docs/HLSD/multiline-infill.md
+++ b/docs/HLSD/multiline-infill.md
@@ -15,8 +15,9 @@ Outlines of centerlines that cross each other overlap at every crossing, which
over-extrudes the wall intersections. The line-crossing patterns Grid,
Triangles, Tri-hexagon and Cubic therefore build centerlines that never cross
(`FillRectilinear::fill_surface_trapezoidal()`), and so do Adaptive Cubic and
-Support Cubic (`FillAdaptive`); the other patterns outline their usual
-centerlines.
+Support Cubic (`FillAdaptive`). 3D Honeycomb skips `multiline_fill()` and draws
+its N lines itself as parallel copies of each wave, which never cross
+(`Fill3DHoneycomb`). The other patterns outline their usual centerlines.
## Non-crossing centerlines
diff --git a/docs/HLSD/precise-seam.md b/docs/HLSD/precise-seam.md
index 8728f0518b..3168b1884e 100644
--- a/docs/HLSD/precise-seam.md
+++ b/docs/HLSD/precise-seam.md
@@ -82,9 +82,7 @@ there.
strong point is placed, no later strong modifier and no weak modifier is
processed for that perimeter.
- **Weak:** every weak modifier applies. They are applied from the lowest
- priority to the highest, so the highest one overwrites overlapping zones. A
- Blocked modifier that fully contains a perimeter is the exception: it is
- skipped there (see [Full containment](#full-containment)).
+ priority to the highest, so the highest one overwrites overlapping zones.
A strong modifier without a usable segment, even one whose fragments were all
discarded, passes the turn to the next one.
@@ -232,20 +230,23 @@ begin and end positions on the source contour.
### Full containment
A modifier that covers the whole perimeter has no boundaries on it. The policy
-follows seam painting, where painting a whole perimeter green is a meaningful
-choice and forbidding the seam all round is not:
+follows seam painting, where a whole perimeter can be painted in either color:
- **Seam Enforced** types the whole perimeter, like a perimeter painted green all
round, with subdivision applied as described under [Weak modifiers](#weak-modifiers).
- **Seam Neutral** types the whole perimeter Neutral, like an unmarked perimeter,
clearing painting and lower zones.
-- **Seam Blocked** is skipped for the perimeter, with the full-containment
- warning. The seam cannot avoid the whole perimeter, so the modifier does not
- override anything below it: lower zones and painting stay in effect.
-- **Seam Center, Left and Right** are skipped with the same warning: there is no
- intersection to place the point on.
+- **Seam Blocked** types the whole perimeter Blocked, like a perimeter painted
+ red all round, overriding painting and lower zones. The seam cannot avoid such
+ a perimeter: the seam placer compares Blocked candidates with each other like
+ Neutral ones, so the seam is placed as on an unmarked perimeter. If the
+ perimeter stays Blocked after all weak zones, it is reported in the user
+ warning (see [Diagnostics and warnings](#diagnostics-and-warnings)), so the
+ user can check the modifier.
+- **Seam Center, Left and Right** are skipped with the full-containment warning:
+ there is no intersection to place the point on.
-Enforced and Neutral take part in the usual priority order (see
+Enforced, Neutral and Blocked take part in the usual priority order (see
[Weak modifiers](#weak-modifiers)).
The perimeter is fully contained when the united intervals cover every source
@@ -311,9 +312,9 @@ into every perimeter that has a strong seam.
`collect_weak_modifier_segments()` extracts the segments of every weak modifier
before the polygon is modified, so all positions refer to the same contour. Each
segment becomes a zone with a type and two boundaries, kept in application
-order, lowest priority first. Full containment of an Enforced or Neutral
-modifier becomes a whole-perimeter zone at its place in that order: it has no
-boundaries and takes part in no insertion or helper step below. The boundaries
+order, lowest priority first. Full containment of a weak modifier becomes a
+whole-perimeter zone at its place in that order: it has no boundaries and takes
+part in no insertion or helper step below. The boundaries
carry their positions on the source contour; these remain as provenance after
insertion and are not indices into the modified polygon.
@@ -384,9 +385,10 @@ G-code export issues it as one non-critical warning with the ID
`SlicingPreciseSeamWarning`. It is a single line, "Precise Seam: . Seam
placement may differ from expected.", because the export warnings dialog shows
only the first line of each warning. Repeated warning events replace the
-notification instead of appending to it. Except for the "had no effect" cause,
-the causes name the modifier types involved, as the menu names them, in menu
-order and each type once, for example "(Seam Left, Seam Enforced)".
+notification instead of appending to it. Except for the "covers an entire
+perimeter" and "had no effect" causes, the causes name the modifier types
+involved, as the menu names them, in menu order and each type once, for example
+"(Seam Left, Seam Enforced)".
The causes are:
- **failed to process some intersections (types):** at least one fragment was
@@ -395,8 +397,18 @@ The causes are:
a Seam Center, Left or Right modifier had more than one segment on a
perimeter (see [Strong modifiers](#strong-modifiers)).
- **a perimeter is fully inside a modifier, the modifier was not applied to it
- (types):** a Seam Center, Left, Right or Blocked modifier was skipped for a
+ (types):** a Seam Center, Left or Right modifier was skipped for a
perimeter (see [Full containment](#full-containment)).
+- **Seam Blocked modifier "" of "" covers an entire perimeter:**
+ a Seam Blocked modifier covered a whole perimeter (see
+ [Full containment](#full-containment)). Only perimeters whose candidates are
+ all Blocked after all weak zones contribute to this warning, and only through
+ the zone in effect there: `apply_weak_modifiers_to_perimeter()` checks the
+ final types and flags the modifier of the highest whole-perimeter zone when it
+ is Blocked. A lower whole zone is overwritten by it and is not reported. Only
+ the first flagged modifier in print and volume order is named, followed by
+ "(N in total)" when there are several. The type name reuses the menu's
+ translation.
- **modifier "" of "" had no effect on the seam (it might not reach
the centerline of the printed perimeter):** a modifier was evaluated on at
least one perimeter and never gave a segment, full containment or a discarded
@@ -420,6 +432,8 @@ The log records the following diagnostic markers:
- `[PreciseSeamNoEffect]` for every modifier of the "had no effect" cause, with
the object and modifier names. Unlike the user warning, the log lists all of
them.
+- `[PreciseSeamFullyBlocked]` for every modifier of the "covers an entire
+ perimeter" cause, listed the same way.
Failures and recoveries are counted separately. The first 10 of each per
`init()` call are logged in detail, in parallel processing order; if a limit is
@@ -563,12 +577,14 @@ last modifier would.
priorities, weak boundaries that coincide or share an edge, enforced
subdivision, whole-perimeter weak zones with painting and priorities, weak
zones over painting's oversampled candidates, the warning type masks, usage
- tracking for the "had no effect" warning, volume sorting of strong and weak
- groups, restoration of strong points after alignment, raft layer indexing and
- structured slices. End-to-end tests slice a real object with Precise Seam
+ tracking for the "had no effect" and whole-perimeter Blocked warnings, volume
+ sorting of strong and weak groups, restoration of strong points after
+ alignment, raft layer indexing and structured slices. End-to-end tests slice
+ a real object with Precise Seam
volumes and check the outer wall starts in the exported G-code: every strong
mode under several seam positions and with a raft, Enforced and Blocked zones,
- a modifier with a hole, and the user warning.
+ a perimeter blocked all round under every seam position, a modifier with a
+ hole, and the user warning.
- [Seam placer tests](../../tests/fff_print/test_seam_placer.cpp) cover
enforced-patch selection independent of the contour start, fully painted
contours, duplicate removal, and `Print::apply()` synchronization through type
diff --git a/docs/HLSD/separated-infills.md b/docs/HLSD/separated-infills.md
new file mode 100644
index 0000000000..4b6227d82a
--- /dev/null
+++ b/docs/HLSD/separated-infills.md
@@ -0,0 +1,97 @@
+# Separated infills — High Level Design
+
+## Purpose and scope
+
+An object's infill patterns are laid out from one reference point, the center
+of the object. When an object groups several parts that do not touch, every
+part cuts the same object-wide pattern at a different place, so equal parts get
+different infill. `separated_infills` lays the infill of every connected body
+out from the center of that body instead, as if the body were sliced on its own.
+
+The option covers sparse infill, internal solid infill and bridges. Top and
+bottom surfaces are left to `center_of_surface_pattern`, which centers the
+Archimedean Chords and Octagram Spiral surface patterns. The option is off by
+default; with it off, or for an object made of a single body, no fill changes.
+Adaptive Cubic and Support Cubic do not depend on the option: they always fill
+each body on its own (see Octree infill).
+
+## Bodies
+
+`PrintObject::prepare_infill()` groups the islands of every layer (`lslices`)
+into 3D connected bodies with `connected_bodies()` before bridges are detected,
+so bridge anchors and printed infill share one origin. Islands on adjacent layers belong to one body
+when their slices overlap. Parts that touch or overlap form one body. Separate
+parts, disconnected islands of one mesh, and interleaved parts that never touch,
+such as chain links, each form their own. Every island stores the index of its
+body in `Layer::lslices_separated_component_ids`, and
+`PrintObject::separated_body_bboxes()` holds the bounding box of each body over
+all its layers.
+
+The pass runs when a region uses separated infills, per-model surface centering
+or an octree infill pattern. It is skipped when the object has one model part
+that cannot be split, since a single body already shares the object center.
+
+## Centering a fill
+
+`infill_body()` matches each fill region to the island it overlaps most, among
+the islands whose bounding boxes overlap it, and the filler takes the bounding
+box of that island's body instead of the object's. The box covers every layer
+of the body, which is the box the body gets when sliced alone, so patterns that
+depend on its extent as well as its center come out the same too. Bridge
+anchoring (`Layer::generate_sparse_infill_polylines_for_anchoring()`) makes the
+same choice, so the anchors match the printed infill.
+
+The patterns follow the body's box in one of two ways:
+
+- Rectilinear and its variants, Line, Grid, Triangles, Tri-hexagon, Cubic,
+ Quarter Cubic, Lateral Lattice, Lateral Honeycomb and the plane-path patterns
+ (Hilbert Curve, Archimedean Chords, Octagram Spiral) are laid out from the
+ box: they phase their lines through its center, and Hilbert Curve and the Zig
+ Zag links start from its corner. `Fill::extended_object_bounding_box()`
+ extends the box about its center, so it also serves a box that is not
+ centered on the origin.
+- Honeycomb, 3D Honeycomb, Cross Hatch, Gyroid, TPMS-D and TPMS-FK are laid out
+ from the coordinate origin, which is the object center. They return true from
+ `Fill::aligned_to_origin()`, and `Fill::fill_surface()` moves each region so
+ that the box center lands on the origin, fills it, and moves the paths back.
+ With the default box the center is the origin, so nothing moves.
+
+`is_separable_infill_pattern()` lists these patterns. The settings show the
+option only when the sparse infill pattern is one of them.
+
+## Octree infill
+
+Adaptive Cubic and Support Cubic take their lines from an octree, laid out from
+the center of the mesh it is built from and refined near its surfaces. An
+octree of the whole object would lay every part out from the object's center
+and refine it near the other parts, so these patterns
+(`is_octree_infill_pattern()`) always fill each body on its own, and the
+settings hide the option for them.
+
+For an object of several bodies, `PrintObject::prepare_adaptive_infill_data()`
+builds one octree per body (`FillAdaptive::Octrees`) from the triangles of that
+body only, which is the octree the body gets when sliced alone. Each connected
+component of the mesh goes to the body that most of a few sampled triangles lie
+on. A sample is taken a layer height inside the solid, behind the triangle, and
+looked up in the islands of the nearest layer. Each internal bridge surface goes
+to the body of its island. The fill takes the octree of the region's body, from
+the same `infill_body()`. The octree of the whole object is built only for an
+object of a single body, or when some body received no triangles, which then
+uses it.
+
+The line spacing of an octree comes from the density, line width and multiline
+count of a region, so a modifier or a part with its own density needs octrees of
+its own. `adaptive_fill_line_spacing()` gives the spacing of each region, and
+`FillAdaptive::RegionOctrees` holds one set of octrees per distinct spacing,
+shared by the regions that have it. A set is built only for the bodies its
+regions fill. The fill takes the set of its region, then the octree of its body.
+
+## Patterns left out
+
+Lightning grows its trees over the whole object, so moving a reference point
+cannot center it on one body. Concentric and Spiral Inset follow the outline of
+each region and need no centering.
+
+Solid infill at full density spaces its lines over the extent of each region,
+so it is already independent of the other bodies. Only bridges, which keep
+their line spacing, and the plane-path solid patterns depend on the center.
diff --git a/docs/HLSD/tooltip-illustrations.md b/docs/HLSD/tooltip-illustrations.md
new file mode 100644
index 0000000000..dc52e9ac93
--- /dev/null
+++ b/docs/HLSD/tooltip-illustrations.md
@@ -0,0 +1,131 @@
+# Tooltip illustrations
+
+The texture-displacement panel's tooltips can carry a picture under their text: a still image, or a
+short animation that loops while the tooltip is open. Several settings in that panel describe a shape
+rather than a number - what Rotation turns, what Tile repeats, what Invert turns inside out - and a
+sentence about a shape is read twice and understood once.
+
+## Where a tooltip is drawn
+
+`GLGizmoTextureDisplacement::panel_tooltip()` replaces `ImGuiWrapper::tooltip()` throughout the panel.
+It differs in two ways.
+
+It places the tooltip beside the panel instead of under the mouse. The panel is pinned to the right
+edge of the canvas, so a tooltip following the mouse covers the control it is explaining, and one
+carrying a picture covers most of the panel with it. The tooltip goes to the left of
+`m_tooltip_anchor_min`/`_max` - the panel's own screen rectangle, or the texture picker's while that
+popup is up and the tooltip comes from inside it - and to the right only when there is no room on the
+left. This is the placement the picker popup itself already uses.
+
+ImGui normally keeps a tooltip glued to the mouse and ignores `SetNextWindowPos()`. Orca's imgui
+branch honours a position set for a tooltip (see the `ImGuiWindowFlags_Tooltip` branch of `Begin()` in
+`deps_src/imgui/imgui.cpp`) and still clamps the result inside the canvas, which is what keeps a tall
+tooltip near the bottom edge on screen.
+
+It also gives the tooltip a fixed width rather than one derived from its text, because a picture has
+to be laid out against something, and a column of tooltips that are all one width is steadier to read.
+
+## Where the pictures live
+
+`resources/images/texture_displacement/`, as PNG, JPG, BMP or GIF. A tooltip names them by file:
+
+```cpp
+hover_tip(_u8L("Repeats the texture across the painted area. ..."),
+ { { "tile_off.png", _L("Off") }, { "tile_on.png", _L("On") } });
+```
+
+Several in one tooltip are laid out side by side at equal widths, which is how a setting is shown as a
+comparison - the same model at two values of it. The caption under each is translated; the file name
+is not.
+
+A file that is missing or will not decode is skipped, and a tooltip whose pictures are all missing is
+exactly the text tooltip it was before. So the art for a tooltip can land after the tooltip does, and
+a half-finished set never breaks the panel.
+
+## When a tooltip appears
+
+A tooltip waits for the pointer to rest on its control for 0.45 s. The panel is dense and the tooltip
+lands on the model beside it, so with no wait a sweep from the top of the panel down to Bake flashes a
+dozen large panels over the scene. Once one has just been up, the wait drops to 0.1 s for 0.7 s
+afterwards, so reading several settings in a row stays quick - but not to zero, or that same sweep
+would flash again the moment one tooltip had been seen.
+
+No tooltip appears at all while a control is being used - a slider dragged, a value typed into one, a
+combo open, a layer card being dragged. The pointer sits on the very thing being edited, so a tooltip
+there covers the model exactly while the user is watching it change. The full wait comes back
+afterwards rather than the short one: having just let go of a slider is not a reason to be shown a
+picture of it.
+
+A pointer resting on a control produces no events, and the canvas only renders when something asks it
+to, so the wait has to ask for its own frames, and so does an animation once one is on screen. So does
+a tooltip that has just appeared, animated or not: ImGui hides a window on the first frame it is
+submitted while it measures it, and does so every time a tooltip reappears because those windows are
+recycled, so the frame a tooltip is decided on is never the frame it is seen on. Both use
+`GLCanvas3D::request_extra_frame()`, which ends `on_idle()` with `evt.RequestMore()` and so obliges wx
+to deliver the next idle. `schedule_extra_frame()` is not enough on its own: it only arranges a timer
+whose event an idle event is assumed to follow, and on_idle renders nothing unless the canvas was
+already dirty when it ran. Asking for frames as fast as they come is safe here because which frame is
+drawn comes from the clock, not from the frame count, so a redraw that arrives early simply draws the
+same frame again.
+
+## Decoding and playback
+
+`slic3r/GUI/AnimatedTexture.hpp` decodes a file once and uploads one GL texture per frame. Stills go
+through `wxImage`; GIFs go through `wxGIFDecoder`, whose raw palette indices are composited here frame
+by frame, replaying the disposal method each frame asks for. That replay is what makes an animation
+look continuous: a GIF frame is a sub-rectangle drawn over what came before it, so an animation that
+only re-sends the pixels that changed draws as a flicker of disconnected patches without it.
+
+A frame delay of 0 or 1 hundredths of a second is read as 100 ms, the convention browsers settle on,
+so an animation authored against that plays at the speed it was authored at.
+
+The animation restarts when its tooltip opens, rather than running off a free-running clock: these are
+short loops of one setting going from one value to another, and joining one halfway through shows the
+end of a change the user never saw the start of.
+
+Which frame is drawn is measured on a real clock, not `ImGui::GetTime()`. Nothing in OrcaSlicer ever sets
+`io.DeltaTime`, so it keeps imgui's default of 1/60 per frame and imgui's clock counts frames rather
+than seconds. On a canvas that renders only when asked, that is not a clock at all: an animation driven
+by it crawls while the canvas is idle and races while a moving mouse is rendering it flat out.
+
+## Making one
+
+`scripts/gen_texture_displacement_tips.py` draws the lot, in four languages, picked by what the
+setting actually is:
+
+- **A shaded relief**, for the settings that are about a pattern: Depth, Tile, Tile size, Rotation,
+ Repeat/Mirror, Smoothing, Edge fade, Invert, Blend and the Normal, Fast, Checker and Distortion
+ views. One motif - a ring inside a square frame - runs through all of them, because using one shape
+ everywhere is what lets two pictures be compared: whatever differs between them is the setting,
+ since nothing else is.
+- **A flat mesh of triangles**, for the settings that are about the mesh or about a tool: the paint
+ tools, brush size, the connected-area fill, subdivision, feature-adaptive refinement, remeshing,
+ hard edges, slivers and the wireframe view. These carry the one accent colour in the set, meaning
+ "painted", because that is the only thing in such a picture that is not geometry.
+- **A section**, for Midlevel and for smoothing the geometry. The reason generalises: shading reads
+ slopes, so a height field moved up or down as a whole shades identically to where it started, and
+ any setting whose meaning is *where the surface sits relative to where it was* is invisible from
+ above and has to be drawn from the side.
+- **A flat ramp of greys**, for Mix filaments, Mixed colors and Denoise. Those are about which
+ filament a spot ends up as; lighting one would only add a second thing changing between two
+ pictures meant to differ in one.
+
+The five Mapping pictures are one ball with a checker laid on it five ways, which is the whole of what
+choosing a projection does - except Unwrap, which is not a projection onto the model at all and so is
+drawn as the flat layout it produces.
+
+Captures of the real tool are still the first choice for anything involving a real model or real
+filament colour: Bake, the mixed-colour count on a photograph, Adjust placement, the frame window and
+the UV editor's seam tool have no picture yet for that reason.
+
+Either way:
+
+- Square, around 256 px (192 for an animation, where every frame ships). The tooltip is about 20 em
+ wide, so that is roughly native size on a 100% display and downscales cleanly above it. A single
+ picture is capped at 10 em tall and centred, two side by side take half the width each.
+- Neutral grey. These say what a shape does; colour in one reads as a third thing the setting does,
+ and has to work against both themes.
+- Animations loop seamlessly and stay short - 16 frames at 100 ms, under about 150 KB. They sit in
+ `resources/`, which ships with every copy of the application. A sweep driven by a cosine over the
+ frame count loops with no step, since it starts and ends at the same value and the same rate.
+- No text in the picture. Captions are translated; pixels are not.
diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot
index 7a4214f16d..c679c1829f 100644
--- a/localization/i18n/OrcaSlicer.pot
+++ b/localization/i18n/OrcaSlicer.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -349,7 +349,9 @@ msgstr ""
msgid "Please wait"
msgstr ""
-msgid "Reading"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, possible-c-format, possible-boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
msgstr ""
msgid "Running..."
@@ -502,8 +504,10 @@ msgid "Lay on Face"
msgstr ""
#, possible-boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr ""
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] ""
+msgstr[1] ""
msgid "Color Painting"
msgstr ""
@@ -554,7 +558,8 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr ""
-msgid "Shortcut Key "
+#, possible-c-format, possible-boost-format
+msgid "Shortcut Key %d"
msgstr ""
msgid "Triangle"
@@ -647,6 +652,9 @@ msgstr ""
msgid "Part selection"
msgstr ""
+msgid "Select multiple objects"
+msgstr ""
+
msgid "Fixed step drag"
msgstr ""
@@ -707,9 +715,66 @@ msgstr ""
msgid "Relative"
msgstr ""
+msgid "Selection"
+msgstr ""
+
+msgid "Plate"
+msgstr ""
+
+msgid "Distribute"
+msgstr ""
+
msgid "Coordinate system used for transform actions."
msgstr ""
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+msgid "Align left"
+msgstr ""
+
+msgid "Align left-right center"
+msgstr ""
+
+msgid "Align right"
+msgstr ""
+
+msgid "Align front"
+msgstr ""
+
+msgid "Align front-back center"
+msgstr ""
+
+msgid "Align back"
+msgstr ""
+
+msgid "Align bottom"
+msgstr ""
+
+msgid "Align top-bottom center"
+msgstr ""
+
+msgid "Align top"
+msgstr ""
+
+msgid "Distribute left-right"
+msgstr ""
+
+msgid "Distribute front-back"
+msgstr ""
+
+msgid "Distribute top-bottom"
+msgstr ""
+
+msgid "Drop"
+msgstr ""
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
msgid "Absolute"
msgstr ""
@@ -811,9 +876,6 @@ msgstr ""
msgid "Cut position"
msgstr ""
-msgid "Build Volume"
-msgstr ""
-
msgid "Multiple"
msgstr ""
@@ -979,10 +1041,15 @@ msgstr ""
#, possible-boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+msgstr[1] ""
msgid "Cut by Plane"
msgstr ""
@@ -1045,9 +1112,11 @@ msgstr ""
msgid "Extra low"
msgstr ""
-#, possible-c-format, possible-boost-format
-msgid "%d triangles"
-msgstr ""
+#, possible-boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] ""
+msgstr[1] ""
msgid "Show wireframe"
msgstr ""
@@ -1058,6 +1127,15 @@ msgstr ""
msgid "Operation already cancelling. Please wait a few seconds."
msgstr ""
+msgid "Model simplification has been canceled"
+msgstr ""
+
+msgid "Wiki Guide"
+msgstr ""
+
+msgid "Video Guide"
+msgstr ""
+
msgid "Enforce seam"
msgstr ""
@@ -1108,6 +1186,12 @@ msgstr ""
msgid "Emboss"
msgstr ""
+msgid "No active font in style. Select correct one."
+msgstr ""
+
+msgid "WxFont is not loaded properly."
+msgstr ""
+
msgid "NORMAL"
msgstr ""
@@ -1744,10 +1828,19 @@ msgstr ""
msgid "Length"
msgstr ""
-msgid "Selection"
+msgid "Face 1 (Fixed)"
msgstr ""
-msgid " (Moving)"
+msgid "Face 2 (Moving)"
+msgstr ""
+
+msgid "Point 1 (Fixed)"
+msgstr ""
+
+msgid "Point 2 (Moving)"
+msgstr ""
+
+msgid "Selection 1"
msgstr ""
msgid ""
@@ -1760,13 +1853,7 @@ msgid ""
" specify distance between them."
msgstr ""
-msgid "Face"
-msgstr ""
-
-msgid " (Fixed)"
-msgstr ""
-
-msgid "Point"
+msgid "Selection 2"
msgstr ""
msgid ""
@@ -1859,6 +1946,18 @@ msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr ""
@@ -2021,10 +2120,11 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr ""
+#, possible-boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
#, possible-c-format, possible-boost-format
@@ -2220,6 +2320,48 @@ msgstr ""
msgid "Privacy Policy Update"
msgstr ""
+msgid "All your filament presets are available on the printers they were made for."
+msgstr ""
+
+msgid "Migrate Filament Presets"
+msgstr ""
+
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+
+#, possible-boost-format
+msgid "%1% (based on %2%)"
+msgstr ""
+
+msgid "Don't remind me again"
+msgstr ""
+
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr ""
+
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr ""
+
+#, possible-boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+
+#, possible-boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+
+msgid "These presets could not be migrated:"
+msgstr ""
+
#, possible-c-format, possible-boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr ""
@@ -2320,6 +2462,9 @@ msgstr ""
msgid "Failed to refresh plugins: %s"
msgstr ""
+msgid "Unknown error"
+msgstr ""
+
msgid "Select plugin package"
msgstr ""
@@ -2825,6 +2970,18 @@ msgstr ""
msgid "Reload all from disk"
msgstr ""
+msgid "Fix All"
+msgstr ""
+
+msgid "Fix all models on the current plate"
+msgstr ""
+
+msgid "Fix All Plates"
+msgstr ""
+
+msgid "Fix all models on all plates"
+msgstr ""
+
msgid "Auto Rotate"
msgstr ""
@@ -2876,7 +3033,10 @@ msgstr ""
msgid "Center"
msgstr ""
-msgid "Drop"
+msgid "Align/Distribute"
+msgstr ""
+
+msgid "Align and distribute objects"
msgstr ""
msgid "Edit Process Settings"
@@ -3148,6 +3308,12 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] ""
msgstr[1] ""
+#, possible-c-format, possible-boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Repairing was canceled"
msgstr ""
@@ -3219,9 +3385,6 @@ msgstr ""
msgid "Outer wall speed"
msgstr ""
-msgid "Plate"
-msgstr ""
-
msgid "Brim"
msgstr ""
@@ -3304,9 +3467,6 @@ msgstr ""
msgid "Insert template custom G-code at the beginning of this layer."
msgstr ""
-msgid "Filament "
-msgstr ""
-
msgid "Change filament at the beginning of this layer."
msgstr ""
@@ -3393,6 +3553,7 @@ msgstr ""
msgid "Off"
msgstr ""
+msgctxt "air_duct"
msgid "Filter"
msgstr ""
@@ -3505,10 +3666,16 @@ msgstr ""
msgid "Check filament location"
msgstr ""
-msgid "Switch"
+msgctxt "Verb"
+msgid "Pause"
msgstr ""
-msgid "hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr ""
+
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
msgstr ""
msgid "Wait for AMS cooling"
@@ -3663,7 +3830,9 @@ msgstr ""
msgid "Arranging"
msgstr ""
-msgid "Arranging "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, possible-boost-format
+msgid "Arranging %1%"
msgstr ""
msgid "Arranging canceled."
@@ -3697,7 +3866,9 @@ msgstr ""
msgid "Orienting..."
msgstr ""
-msgid "Orienting"
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, possible-boost-format
+msgid "Orienting %1%"
msgstr ""
msgid "Orienting canceled."
@@ -3706,6 +3877,11 @@ msgstr ""
msgid "Filling"
msgstr ""
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, possible-boost-format
+msgid "Filling %1%"
+msgstr ""
+
msgid "Bed filling canceled."
msgstr ""
@@ -3721,6 +3897,26 @@ msgstr ""
msgid "Orientation found."
msgstr ""
+msgid "Best surface quality"
+msgstr ""
+
+msgid "Optimize object rotation for best surface quality."
+msgstr ""
+
+msgid "Reduced overhang slopes"
+msgstr ""
+
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+
+msgid "Lowest Z height"
+msgstr ""
+
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr ""
+
msgid "Logging in"
msgstr ""
@@ -3998,6 +4194,15 @@ msgstr ""
msgid "Go to Plate"
msgstr ""
+msgid "Device"
+msgstr ""
+
+msgid "Device (Web)"
+msgstr ""
+
+msgid "Multi-device"
+msgstr ""
+
msgid "AMS Materials Setting"
msgstr ""
@@ -4022,9 +4227,6 @@ msgstr ""
msgid "Factors of Flow Dynamics Calibration"
msgstr ""
-msgid "Wiki Guide"
-msgstr ""
-
msgid "PA Profile"
msgstr ""
@@ -4054,6 +4256,12 @@ msgstr ""
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr ""
+msgid "Favorite filaments"
+msgstr ""
+
+msgid "All filaments"
+msgstr ""
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4350,10 +4558,9 @@ msgstr ""
msgid "Restart Required"
msgstr ""
-msgid "Please home all axes (click "
-msgstr ""
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, possible-boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
msgstr ""
msgid "Go Home"
@@ -4369,6 +4576,9 @@ msgstr ""
msgid "Please save your project and restart the application."
msgstr ""
+msgid "Unknown C++ exception."
+msgstr ""
+
msgid "Processing G-Code from previous file…"
msgstr ""
@@ -4570,6 +4780,11 @@ msgstr ""
msgid "Adjust"
msgstr ""
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5346,9 +5561,6 @@ msgstr ""
msgid "Filament Grouping"
msgstr ""
-msgid "Why this grouping"
-msgstr ""
-
msgid "Please place filaments on the printer based on grouping result."
msgstr ""
@@ -5359,28 +5571,40 @@ msgid "Current grouping of slice result is not optimal."
msgstr ""
#, possible-boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr ""
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] ""
+msgstr[1] ""
#, possible-boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr ""
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] ""
+msgstr[1] ""
#, possible-boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr ""
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] ""
+msgstr[1] ""
#, possible-boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr ""
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] ""
+msgstr[1] ""
#, possible-boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr ""
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] ""
+msgstr[1] ""
#, possible-boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr ""
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] ""
+msgstr[1] ""
msgid "Set to Optimal"
msgstr ""
@@ -5529,10 +5753,47 @@ msgstr ""
msgid "Sequence"
msgstr ""
+msgid "Plate center of mass"
+msgstr ""
+
+msgid "Part center of mass"
+msgstr ""
+
+msgid "Support center of mass"
+msgstr ""
+
+msgid "Assembly center of mass"
+msgstr ""
+
+msgid "Object center of mass"
+msgstr ""
+
+msgid "Finished print"
+msgstr ""
+
+#, possible-boost-format
+msgid "Printed up to layer %1%"
+msgstr ""
+
+msgid "Weight"
+msgstr ""
+
+msgid "Volume"
+msgstr ""
+
+msgid "Center in bounding box"
+msgstr ""
+
+msgid "Bounding box size"
+msgstr ""
+
+msgid "Moment of inertia"
+msgstr ""
+
msgid "Object selection"
msgstr ""
-msgid "number keys"
+msgid "1~16 number keys"
msgstr ""
msgid "Number keys can quickly change the color of objects"
@@ -5734,9 +5995,18 @@ msgstr ""
msgid "Gridlines"
msgstr ""
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr ""
+msgid "Center of mass"
+msgstr ""
+
+msgid "Show raw G-code (belt only)"
+msgstr ""
+
msgid "Move section plane"
msgstr ""
@@ -5779,7 +6049,7 @@ msgstr ""
msgid "Size:"
msgstr ""
-#, possible-c-format, possible-boost-format
+#, possible-boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr ""
@@ -5801,19 +6071,15 @@ msgstr ""
#, possible-c-format, possible-boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr ""
-
-#, possible-c-format, possible-boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr ""
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] ""
+msgstr[1] ""
#, possible-c-format, possible-boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr ""
-
-#, possible-c-format, possible-boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr ""
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] ""
+msgstr[1] ""
msgid "Open wiki for more information."
msgstr ""
@@ -5822,8 +6088,10 @@ msgid "Only the object being edited is visible."
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr ""
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] ""
+msgstr[1] ""
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr ""
@@ -5939,25 +6207,18 @@ msgstr ""
msgid "Preview"
msgstr ""
-msgid "Device"
-msgstr ""
-
-msgid "Multi-device"
-msgstr ""
-
msgid "Project"
msgstr ""
-msgid "Device (Web)"
-msgstr ""
-
msgid "Yes"
msgstr ""
msgid "No"
msgstr ""
-msgid "will be closed before creating a new model. Do you want to continue?"
+#. TRN %s is a file name.
+#, possible-c-format, possible-boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
msgstr ""
msgid "Print all"
@@ -6003,6 +6264,9 @@ msgstr ""
msgid "Show Configuration Folder"
msgstr ""
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr ""
+
msgid "Troubleshoot Center"
msgstr ""
@@ -6236,6 +6500,12 @@ msgstr ""
msgid "Show Gridlines on plate"
msgstr ""
+msgid "Show IDEX/IQEX Toolhead"
+msgstr ""
+
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr ""
+
msgid "Reset Window Layout"
msgstr ""
@@ -6841,6 +7111,7 @@ msgstr ""
msgid "Calculating..."
msgstr ""
+msgctxt "Printer camera"
msgid "Camera"
msgstr ""
@@ -6920,8 +7191,10 @@ msgid "Cloud Slicing..."
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr ""
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] ""
+msgstr[1] ""
#, possible-c-format, possible-boost-format
msgid "Layer: %s"
@@ -6952,6 +7225,10 @@ msgstr ""
msgid "Silent"
msgstr ""
+msgctxt "Mode"
+msgid "Standard"
+msgstr ""
+
msgid "Sport"
msgstr ""
@@ -7006,16 +7283,24 @@ msgstr ""
msgid "Number of images successfully uploaded"
msgstr ""
-msgid " upload failed"
+#. TRN %s is the path of an image file.
+#, possible-c-format, possible-boost-format
+msgid "%s upload failed"
msgstr ""
-msgid " upload config prase failed\n"
+#. TRN %s is the path of an image file.
+#, possible-c-format, possible-boost-format
+msgid "%s upload config parse failed"
msgstr ""
-msgid " No corresponding storage bucket\n"
+#. TRN %s is the path of an image file.
+#, possible-c-format, possible-boost-format
+msgid "%s: No corresponding storage bucket"
msgstr ""
-msgid " cannot be opened\n"
+#. TRN %s is the path of an image file.
+#, possible-c-format, possible-boost-format
+msgid "%s cannot be opened"
msgstr ""
msgid ""
@@ -7032,17 +7317,12 @@ msgstr ""
msgid "Obtaining instance_id failed\n"
msgstr ""
+#, possible-c-format, possible-boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-
-msgid "error message: "
-msgstr ""
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
@@ -7772,6 +8052,85 @@ msgstr ""
msgid "Material settings"
msgstr ""
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr ""
+
+msgid "Add Mode"
+msgstr ""
+
+msgid "Tools"
+msgstr ""
+
+msgid "G-code"
+msgstr ""
+
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr ""
+
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr ""
+
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr ""
+
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr ""
+
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr ""
+
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr ""
+
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr ""
+
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr ""
+
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr ""
+
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr ""
+
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr ""
+
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr ""
+
+msgid "Primary"
+msgstr ""
+
+msgid "Mode name (required)"
+msgstr ""
+
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr ""
+
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr ""
+
+msgid "Edit G-code / browse placeholders"
+msgstr ""
+
+msgid "Remove mode"
+msgstr ""
+
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr ""
+
msgid "Remove current plate (if not last one)"
msgstr ""
@@ -7796,11 +8155,27 @@ msgstr ""
msgid "Move plate to the front"
msgstr ""
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, possible-boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr ""
+
+#, possible-boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr ""
+
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr ""
+
msgid "Customize current plate"
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "The %s nozzle can not print %s."
+msgid "The left nozzle cannot print %s."
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "The right nozzle cannot print %s."
msgstr ""
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -7810,12 +8185,16 @@ msgstr ""
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr ""
-msgid " nozzle"
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
+#, possible-boost-format
+msgid "%1%mm %2% nozzle"
msgstr ""
#, possible-boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr ""
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] ""
+msgstr[1] ""
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr ""
@@ -7824,8 +8203,9 @@ msgstr ""
msgid "%1% with %2%\n"
msgstr ""
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, possible-boost-format
-msgid " plate %1%:"
+msgid "Slicing plate %1%: %2%"
msgstr ""
msgid "Invalid name, the following characters are not allowed:"
@@ -7861,12 +8241,6 @@ msgstr ""
msgid "Not installed"
msgstr ""
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr ""
-
-msgid "Switch diameter"
-msgstr ""
-
msgid "Configuration incompatible"
msgstr ""
@@ -7939,6 +8313,9 @@ msgstr ""
msgid "Remove last mixed filament"
msgstr ""
+msgid "Remove all mixed filaments"
+msgstr ""
+
msgid "Add mixed filament"
msgstr ""
@@ -7957,6 +8334,12 @@ msgstr ""
msgid "Edit / Delete / Merge"
msgstr ""
+#, possible-boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr ""
@@ -8027,9 +8410,6 @@ msgstr ""
msgid "Load 3MF"
msgstr ""
-msgid "BambuStudio Project"
-msgstr ""
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr ""
@@ -8059,17 +8439,6 @@ msgstr ""
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr ""
-#, possible-c-format, possible-boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr ""
-
-#, possible-c-format, possible-boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr ""
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr ""
-
msgid "Invalid values found in the 3MF:"
msgstr ""
@@ -8219,6 +8588,12 @@ msgstr ""
msgid "Object with floating parts was detected"
msgstr ""
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr ""
+
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr ""
+
msgid "Another export job is running."
msgstr ""
@@ -8271,7 +8646,7 @@ msgstr ""
msgid "Please select a file"
msgstr ""
-msgid "Do you want to replace it"
+msgid "Do you want to replace it?"
msgstr ""
msgid "Message"
@@ -8301,6 +8676,38 @@ msgstr ""
msgid "Slicing Canceled"
msgstr ""
+#, possible-c-format, possible-boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+
+msgid "Continue slicing?"
+msgstr ""
+
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr ""
+
+msgid "Don't show these warnings again"
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "Plate %d:\n"
+msgstr ""
+
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+
msgid "Network plug-in switched successfully."
msgstr ""
@@ -8327,7 +8734,7 @@ msgstr ""
msgid "Sync now"
msgstr ""
-msgid "Cannot undo or redo while an operation is running. Stop it first."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
msgstr ""
msgid ""
@@ -8389,16 +8796,23 @@ msgstr ""
msgid "Project downloaded %d%%"
msgstr ""
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+
msgid "Pressure Advance Test"
msgstr ""
msgid "INFO:"
msgstr ""
-msgid "No accelerations provided for calibration. Use default acceleration value "
+#, possible-boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
msgstr ""
-msgid "No speeds provided for calibration. Use default optimal speed "
+#, possible-boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
msgstr ""
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -8411,6 +8825,13 @@ msgstr ""
msgid "Flowrate Test - Pass%d"
msgstr ""
+#, possible-boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr ""
+
+msgid "Temperature tower"
+msgstr ""
+
msgid "Nozzle temperature test"
msgstr ""
@@ -8432,10 +8853,11 @@ msgstr ""
msgid "Import SLA archive"
msgstr ""
-msgid "The selected file"
-msgstr ""
-
-msgid "Does not contain valid G-code."
+#, possible-boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
msgstr ""
msgid "An Error has occurred while loading the G-code file."
@@ -8691,6 +9113,22 @@ msgstr ""
msgid "Not available"
msgstr ""
+#, possible-boost-format
+msgid "T%1% -> (no plate)"
+msgstr ""
+
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, possible-boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, possible-boost-format
+msgid "T%1% -> filament %2%"
+msgstr ""
+
msgid "isometric"
msgstr ""
@@ -8730,6 +9168,7 @@ msgstr ""
msgid "North America"
msgstr ""
+msgctxt "Region"
msgid "Others"
msgstr ""
@@ -8793,10 +9232,14 @@ msgstr ""
msgid "Reload Failed"
msgstr ""
-msgid "Associate"
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, possible-c-format, possible-boost-format
+msgid "Associate %s://"
msgstr ""
-msgid "with OrcaSlicer so that Orca can open models from"
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, possible-c-format, possible-boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
msgstr ""
msgid "Current Association: "
@@ -9063,6 +9506,9 @@ msgstr ""
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr ""
+msgid "Camera"
+msgstr ""
+
msgid "Touchpad"
msgstr ""
@@ -9413,6 +9859,9 @@ msgstr ""
msgid "Select the network plug-in version to use"
msgstr ""
+msgid "Associate"
+msgstr ""
+
msgid "Associate files to OrcaSlicer"
msgstr ""
@@ -9461,6 +9910,12 @@ msgstr ""
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr ""
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Experimental Features"
msgstr ""
@@ -9723,9 +10178,6 @@ msgstr ""
msgid "Select which settings to be published in the 3MF file"
msgstr ""
-msgid "Video Guide"
-msgstr ""
-
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr ""
@@ -9865,6 +10317,11 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr ""
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, possible-c-format, possible-boost-format
+msgid "%s from %s"
+msgstr ""
+
msgid "Search actions"
msgstr ""
@@ -9957,6 +10414,9 @@ msgstr ""
msgid "Hide details"
msgstr ""
+msgid "Web view is unavailable."
+msgstr ""
+
#, possible-c-format, possible-boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
msgstr ""
@@ -10201,8 +10661,10 @@ msgid "The name length exceeds the limit."
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr ""
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] ""
+msgstr[1] ""
msgid "Right-Ext"
msgstr ""
@@ -10277,6 +10739,9 @@ msgstr ""
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr ""
+msgid "Switch"
+msgstr ""
+
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr ""
@@ -10575,6 +11040,9 @@ msgstr ""
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr ""
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr ""
+
msgid "Click to reset all settings to the last saved preset."
msgstr ""
@@ -10788,6 +11256,9 @@ msgstr ""
msgid "Ooze prevention"
msgstr ""
+msgid "Others"
+msgstr ""
+
msgid "Special mode"
msgstr ""
@@ -10822,7 +11293,9 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-msgid "Reserved keywords found"
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, possible-boost-format
+msgid "Reserved keywords found in %1%"
msgstr ""
msgid "Setting Overrides"
@@ -10960,7 +11433,14 @@ msgstr ""
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr ""
+msgid "Belt printer"
+msgstr ""
+
+msgid "Machine frame transforms"
+msgstr ""
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, possible-boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr ""
@@ -11070,9 +11550,24 @@ msgstr ""
msgid "Wipe tower"
msgstr ""
+msgid "Belt purge tower"
+msgstr ""
+
msgid "Single extruder multi-material parameters"
msgstr ""
+msgid "IDEX/IQEX Configuration"
+msgstr ""
+
+msgid "Pre-slice warnings"
+msgstr ""
+
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr ""
+
+msgid "Modes"
+msgstr ""
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr ""
@@ -11082,6 +11577,18 @@ msgstr ""
msgid "Z-Hop"
msgstr ""
+msgid "Front-left"
+msgstr ""
+
+msgid "Front-right"
+msgstr ""
+
+msgid "Rear-left"
+msgstr ""
+
+msgid "Rear-right"
+msgstr ""
+
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
"\n"
@@ -11100,21 +11607,32 @@ msgstr ""
msgid "Detached"
msgstr ""
-#, possible-c-format, possible-boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, possible-boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
msgstr ""
+#, possible-c-format, possible-boost-format
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] ""
+msgstr[1] ""
+
+#, possible-c-format, possible-boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Presets inherited by other presets cannot be deleted!"
msgstr ""
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
msgstr[0] ""
msgstr[1] ""
-#. TRN Remove/Delete
-#, possible-boost-format
-msgid "%1% Preset"
+msgid "Delete Preset"
msgstr ""
msgid "The following preset will be deleted too:"
@@ -11127,8 +11645,7 @@ msgid ""
"If the preset corresponds to a filament currently in use on your printer, please reset the filament information for that slot."
msgstr ""
-#, possible-boost-format
-msgid "Are you sure you want to %1% the selected preset?"
+msgid "Are you sure you want to delete the selected preset?"
msgstr ""
msgid "Select printers"
@@ -11172,8 +11689,29 @@ msgstr ""
msgid "Don't warn again for this preset"
msgstr ""
-#, possible-c-format, possible-boost-format
-msgid "%s: %s"
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr ""
+
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr ""
+
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr ""
+
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr ""
+
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
msgstr ""
msgid "No modifications need to be copied."
@@ -11348,6 +11886,11 @@ msgstr ""
msgid "Compared presets has different printer technology"
msgstr ""
+#. TRN Header of a preset comparison: the two preset names.
+#, possible-boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr ""
+
msgid "Add File"
msgstr ""
@@ -11373,6 +11916,18 @@ msgstr ""
msgid "Assembly Guide"
msgstr ""
+msgid "Image files"
+msgstr ""
+
+msgid "TXT files"
+msgstr ""
+
+msgid "EXCEL files"
+msgstr ""
+
+msgid "PDF files"
+msgstr ""
+
msgid "Author"
msgstr ""
@@ -11560,9 +12115,6 @@ msgstr ""
msgid "Total ramming"
msgstr ""
-msgid "Volume"
-msgstr ""
-
msgid "Ramming line"
msgstr ""
@@ -11589,7 +12141,8 @@ msgstr ""
msgid "Flushing volumes for filament change"
msgstr ""
-msgid "Please choose the filament color"
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
msgstr ""
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -11610,6 +12163,123 @@ msgstr ""
msgid "parse json failed"
msgstr ""
+msgid "Loading…"
+msgstr ""
+
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr ""
+
+msgid "Welcome to Orca Slicer"
+msgstr ""
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr ""
+
+msgid "Get Started"
+msgstr ""
+
+msgid "Please select your login region"
+msgstr ""
+
+msgid "Finish"
+msgstr ""
+
+msgid "Printer Selection"
+msgstr ""
+
+msgid "Vendors"
+msgstr ""
+
+msgid "Custom Printer"
+msgstr ""
+
+msgid "Create"
+msgstr ""
+
+msgid "Check for new printers"
+msgstr ""
+
+msgid "At least one printer must be selected."
+msgstr ""
+
+msgid "New printers found"
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "New printer vendors installed: %s"
+msgstr ""
+
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr ""
+
+msgid "No new printers found."
+msgstr ""
+
+msgid "Filament Selection"
+msgstr ""
+
+msgid "System Filaments"
+msgstr ""
+
+msgid "Custom Filaments"
+msgstr ""
+
+msgid "Create New"
+msgstr ""
+
+msgid "Filament type"
+msgstr ""
+
+msgid "Vendor"
+msgstr ""
+
+msgid "No items"
+msgstr ""
+
+msgid "Filter items"
+msgstr ""
+
+msgid "Checked"
+msgstr ""
+
+msgid "Unchecked"
+msgstr ""
+
+msgid "Select filtered"
+msgstr ""
+
+msgid "Clear all"
+msgstr ""
+
+msgid "At least one filament must be selected."
+msgstr ""
+
+msgid "Do you want to use the default filament?"
+msgstr ""
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr ""
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr ""
+
+msgid "Enable Stealth Mode."
+msgstr ""
+
+msgid "Proprietary Plugins"
+msgstr ""
+
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr ""
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr ""
+
+msgid "Install Bambu Network plug-in"
+msgstr ""
+
msgid "[Action Required] "
msgstr ""
@@ -11667,9 +12337,6 @@ msgstr ""
msgid "Select a part"
msgstr ""
-msgid "Select multiple objects"
-msgstr ""
-
msgid "Select objects by rectangle"
msgstr ""
@@ -11968,32 +12635,30 @@ msgstr ""
msgid "Extension Board"
msgstr ""
-#, possible-boost-format
-msgid "Split into %1% parts"
-msgstr ""
-
msgid "Repair finished"
msgstr ""
-msgid "Repair failed"
-msgstr ""
-
-msgid "Repair canceled"
-msgstr ""
-
#, possible-boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr ""
-msgid "Downloading new vendor profile(s): "
-msgstr ""
+#. TRN %1% is a comma-separated list of vendor names.
+#, possible-boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] ""
+msgstr[1] ""
#, possible-boost-format
msgid "Configuration package: %1% updated to %2%"
msgstr ""
-msgid "Failed to download vendor profile(s): "
-msgstr ""
+#. TRN %1% is a comma-separated list of vendor names.
+#, possible-boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] ""
+msgstr[1] ""
msgid "Please check any unsaved changes before updating the configuration."
msgstr ""
@@ -12001,6 +12666,9 @@ msgstr ""
msgid "Open G-code file:"
msgstr ""
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr ""
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr ""
@@ -12021,9 +12689,47 @@ msgstr ""
msgid "Filament change extrusion role G-code"
msgstr ""
+#. TRN %1% is a file path.
+#, possible-boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+
+#. TRN %1% is a folder path.
+#, possible-boost-format
+msgid "The folder %1% does not exist."
+msgstr ""
+
+#. TRN %1% is a file path.
+#, possible-boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, possible-boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+
msgid "No object can be printed. It may be too small."
msgstr ""
+#, possible-boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr ""
+
+#, possible-boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr ""
+
+msgid "Invalid thumbnails value:"
+msgstr ""
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr ""
@@ -12061,6 +12767,9 @@ msgstr ""
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr ""
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr ""
+
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr ""
@@ -12076,6 +12785,16 @@ msgstr ""
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr ""
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, possible-boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr ""
+
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, possible-boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr ""
+
#, possible-boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
msgstr ""
@@ -12087,9 +12806,40 @@ msgstr ""
msgid "Seam placement may differ from expected."
msgstr ""
+#, possible-boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr ""
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr ""
+
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr ""
+
+#. TRN %1% and %2% are names of settings.
+#, possible-boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr ""
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr ""
+
+#, possible-boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr ""
+
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr ""
+
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr ""
+
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr ""
+
msgid "undefined error"
msgstr ""
@@ -12183,6 +12933,43 @@ msgstr ""
msgid "write callback failed"
msgstr ""
+msgid "unknown error"
+msgstr ""
+
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr ""
+
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr ""
+
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr ""
+
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr ""
+
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, possible-boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr ""
+
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, possible-boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr ""
+
+#, possible-boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+
+#, possible-boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+
#, possible-boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr ""
@@ -12198,25 +12985,26 @@ msgstr ""
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr ""
-msgid " is too close to exclusion area, there may be collisions when printing."
+#, possible-boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
msgstr ""
-msgid " is too close to clumping detection area, there may be collisions when printing."
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
msgstr ""
-msgid "Prime Tower"
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
msgstr ""
-msgid " is too close to others, and collisions may be caused.\n"
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
msgstr ""
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
msgstr ""
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
msgstr ""
-msgid " is partially outside the printable area, and it cannot be printed.\n"
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
msgstr ""
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
@@ -12231,6 +13019,46 @@ msgstr ""
msgid "No extrusions under current settings."
msgstr ""
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr ""
+
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, possible-boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr ""
+
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, possible-boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr ""
+
+msgid "Raft is not compatible with belt printer mode."
+msgstr ""
+
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr ""
+
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr ""
+
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr ""
+
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr ""
+
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr ""
+
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr ""
+
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr ""
+
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr ""
+
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr ""
@@ -12240,6 +13068,15 @@ msgstr ""
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr ""
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr ""
+
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr ""
+
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr ""
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr ""
@@ -12256,10 +13093,6 @@ msgstr ""
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr ""
-#, possible-boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr ""
-
#, possible-boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr ""
@@ -12267,6 +13100,10 @@ msgstr ""
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr ""
+#, possible-boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr ""
+
msgid "Variable layer height is not supported with Organic supports."
msgstr ""
@@ -12406,6 +13243,9 @@ msgstr ""
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr ""
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr ""
+
msgid "Generating skirt & brim"
msgstr ""
@@ -12421,6 +13261,15 @@ msgstr ""
msgid "Generating G-code"
msgstr ""
+#. TRN %1% is a file path.
+#, possible-boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr ""
+
+#, possible-boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr ""
+
msgid "Processing of the filename_format template failed."
msgstr ""
@@ -12813,7 +13662,7 @@ msgid ""
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
msgid "Internal bridge flow ratio"
@@ -13041,7 +13890,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
msgid "mm/s or %"
@@ -13050,7 +13899,7 @@ msgstr ""
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
@@ -13059,12 +13908,39 @@ msgstr ""
msgid "This is the distance from the model to the outermost brim line."
msgstr ""
+msgid "Leading brim length"
+msgstr ""
+
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+
+msgid "Extra brim width"
+msgstr ""
+
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+
msgid "Brim type"
msgstr ""
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr ""
+msgid "Leading edge only"
+msgstr ""
+
msgid "Brim-object gap"
msgstr ""
@@ -13302,6 +14178,9 @@ msgid ""
"3. No filtering - creates internal bridges on every potential internal overhang. This option is useful for heavily slanted top surface models; however, in most cases, it creates too many unnecessary bridges."
msgstr ""
+msgid "Filter"
+msgstr ""
+
msgid "Limited filtering"
msgstr ""
@@ -13317,7 +14196,7 @@ msgstr ""
msgid "End G-code"
msgstr ""
-msgid "Add end G-Code when finishing the entire print."
+msgid "Add end G-code when finishing the entire print."
msgstr ""
msgid "Between Object G-code"
@@ -13469,7 +14348,7 @@ msgstr ""
msgid "Small perimeters"
msgstr ""
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
msgstr ""
msgid "Small perimeters threshold"
@@ -13481,7 +14360,7 @@ msgstr ""
msgid "Small support perimeters"
msgstr ""
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
msgstr ""
msgid "Small support perimeters threshold"
@@ -13498,7 +14377,7 @@ msgid ""
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
@@ -14057,9 +14936,6 @@ msgstr ""
msgid "money/kg"
msgstr ""
-msgid "Vendor"
-msgstr ""
-
msgid "Vendor of filament. For show only."
msgstr ""
@@ -14121,6 +14997,65 @@ msgstr ""
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr ""
+msgid "Adaptive density (experimental)"
+msgstr ""
+
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+
+msgid "Distance warp"
+msgstr ""
+
+msgid "Smooth blend"
+msgstr ""
+
+msgid "Stepped shells"
+msgstr ""
+
+msgid "Lobes"
+msgstr ""
+
+msgid "Normal Z"
+msgstr ""
+
+msgid "Normal Y"
+msgstr ""
+
+msgid "Normal X"
+msgstr ""
+
+msgid "Interior density"
+msgstr ""
+
+msgid "Density of the adaptive infill at the center of the object."
+msgstr ""
+
+msgid "Adaptive gradient"
+msgstr ""
+
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+
+msgid "Linear"
+msgstr ""
+
+msgid "Quadratic"
+msgstr ""
+
+msgid "Exponential"
+msgstr ""
+
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
@@ -14266,13 +15201,13 @@ msgstr ""
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr ""
-msgid "This is the speed for the first layer except for solid infill sections."
+msgid "This is the speed for the walls and brim of the first layer."
msgstr ""
msgid "First layer infill"
msgstr ""
-msgid "This is the speed for solid infill parts of the first layer."
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
msgstr ""
msgid "First layer travel speed"
@@ -14674,6 +15609,9 @@ msgstr ""
msgid "What kind of G-code the printer is compatible with."
msgstr ""
+msgid "Marlin (legacy)"
+msgstr ""
+
msgid "Klipper"
msgstr ""
@@ -14888,14 +15826,14 @@ msgid "Infill/wall overlap"
msgstr ""
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
msgstr ""
msgid "Top/Bottom solid infill/wall overlap"
msgstr ""
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
msgstr ""
msgid "This is the speed for internal sparse infill."
@@ -14922,7 +15860,7 @@ msgstr ""
msgid "Interlocking depth of a segmented region"
msgstr ""
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
msgstr ""
msgid "Use beam interlocking"
@@ -15026,7 +15964,7 @@ msgstr ""
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
@@ -15097,16 +16035,16 @@ msgstr ""
msgid "Maximum speed E"
msgstr ""
-msgid "Maximum X speed"
+msgid "Maximum speed of the X axis"
msgstr ""
-msgid "Maximum Y speed"
+msgid "Maximum speed of the Y axis"
msgstr ""
-msgid "Maximum Z speed"
+msgid "Maximum speed of the Z axis"
msgstr ""
-msgid "Maximum E speed"
+msgid "Maximum speed of the E axis"
msgstr ""
msgid "Maximum acceleration X"
@@ -15553,7 +16491,7 @@ msgstr ""
msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capability."
msgstr ""
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr ""
msgid "Printer type"
@@ -15902,7 +16840,7 @@ msgstr ""
msgid "Use scarf joint for inner walls as well."
msgstr ""
-msgid "Role base wipe speed"
+msgid "Role based wipe speed"
msgstr ""
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -15980,8 +16918,7 @@ msgstr ""
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
msgid "Enabled"
@@ -16133,6 +17070,99 @@ msgstr ""
msgid "Use single nozzle to print multi filament."
msgstr ""
+msgid "IDEX/IQEX Printer"
+msgstr ""
+
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr ""
+
+msgid "Firmware-managed zones"
+msgstr ""
+
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr ""
+
+msgid "Gantry Count"
+msgstr ""
+
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr ""
+
+msgid "Tools per Gantry"
+msgstr ""
+
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr ""
+
+msgid "Tool 0 Position"
+msgstr ""
+
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr ""
+
+msgid "Nozzle Clearance X"
+msgstr ""
+
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr ""
+
+msgid "Nozzle Clearance Y"
+msgstr ""
+
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr ""
+
+msgid "Safety Margin"
+msgstr ""
+
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr ""
+
+msgid "Visualization Theme"
+msgstr ""
+
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr ""
+
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr ""
+
+msgid "Tritanopia (blue-yellow)"
+msgstr ""
+
+msgid "High Contrast"
+msgstr ""
+
+msgid "IDEX/IQEX Print Mode"
+msgstr ""
+
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr ""
+
+msgid "IDEX/IQEX head filament map"
+msgstr ""
+
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr ""
+
+msgid "IDEX/IQEX Mode Names"
+msgstr ""
+
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr ""
+
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr ""
+
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr ""
+
+msgid "IDEX/IQEX Mode G-codes"
+msgstr ""
+
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr ""
+
msgid "Manual Filament Change"
msgstr ""
@@ -16468,6 +17498,129 @@ msgstr ""
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr ""
+msgid "Build plate tilt X"
+msgstr ""
+
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr ""
+
+msgid "Build plate tilt Y"
+msgstr ""
+
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr ""
+
+msgid "Enable belt printing"
+msgstr ""
+
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr ""
+
+msgid "Infinite Y axis"
+msgstr ""
+
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr ""
+
+msgid "Belt tilt axis"
+msgstr ""
+
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr ""
+
+msgid "X"
+msgstr ""
+
+msgid "Y"
+msgstr ""
+
+msgid "Z"
+msgstr ""
+
+msgid "Belt tilt angle"
+msgstr ""
+
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr ""
+
+msgid "°"
+msgstr ""
+
+msgid "Decouple machine-frame tilt"
+msgstr ""
+
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr ""
+
+msgid "Machine-frame tilt angle"
+msgstr ""
+
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr ""
+
+msgid "+X"
+msgstr ""
+
+msgid "+Y"
+msgstr ""
+
+msgid "+Z"
+msgstr ""
+
+msgid "-X"
+msgstr ""
+
+msgid "-Y"
+msgstr ""
+
+msgid "-Z"
+msgstr ""
+
+msgid "Rev X"
+msgstr ""
+
+msgid "Rev Y"
+msgstr ""
+
+msgid "Rev Z"
+msgstr ""
+
+msgid "G-code remap X"
+msgstr ""
+
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr ""
+
+msgid "G-code remap Y"
+msgstr ""
+
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr ""
+
+msgid "G-code remap Z"
+msgstr ""
+
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr ""
+
+msgid "Support Floor Z offset"
+msgstr ""
+
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr ""
+
+msgid "Enable belt purge tower"
+msgstr ""
+
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr ""
+
+msgid "Belt purge tower width"
+msgstr ""
+
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr ""
+
msgid "Tree support branch angle"
msgstr ""
@@ -16631,8 +17784,7 @@ msgstr ""
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
msgid "Center surface pattern on"
@@ -16746,13 +17898,13 @@ msgstr ""
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
msgid "Wall type"
@@ -16760,9 +17912,9 @@ msgstr ""
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
msgid "Rectangle"
@@ -16831,6 +17983,12 @@ msgstr ""
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr ""
+msgid "Belt purge tower object"
+msgstr ""
+
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr ""
+
msgid "Maximal bridging distance"
msgstr ""
@@ -16846,7 +18004,7 @@ msgstr ""
msgid "Extra flow for purging"
msgstr ""
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
msgstr ""
msgid "Idle temperature"
@@ -16957,9 +18115,9 @@ msgid "Minimum wall length"
msgstr ""
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
msgid "Maximum wall resolution"
@@ -16971,7 +18129,7 @@ msgstr ""
msgid "Maximum wall deviation"
msgstr ""
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
msgstr ""
msgid "First layer minimum wall width"
@@ -17061,7 +18219,9 @@ msgstr ""
msgid "too large line width "
msgstr ""
-msgid " not in range "
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, possible-boost-format
+msgid "%1% not in range [%2%, %3%]"
msgstr ""
msgid "This exports the project as a 3MF file."
@@ -17205,6 +18365,12 @@ msgstr ""
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr ""
+msgid "Repair"
+msgstr ""
+
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr ""
+
msgid "Rotation angle around the Z axis in degrees."
msgstr ""
@@ -17307,6 +18473,12 @@ msgstr ""
msgid "This is the output directory for exported files."
msgstr ""
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr ""
@@ -17469,6 +18641,42 @@ msgstr ""
msgid "Are the extra multi-material priming regions used in this print?"
msgstr ""
+msgid "Initial no support extruder"
+msgstr ""
+
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr ""
+
+msgid "In head wrap detect zone"
+msgstr ""
+
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr ""
+
+msgid "Current bed type"
+msgstr ""
+
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr ""
+
+msgid "IDEX/IQEX active mode"
+msgstr ""
+
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr ""
+
+msgid "IDEX/IQEX active mode index"
+msgstr ""
+
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr ""
+
+msgid "IDEX/IQEX active mode G-code"
+msgstr ""
+
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr ""
+
msgid "Volume per extruder"
msgstr ""
@@ -17603,6 +18811,15 @@ msgstr ""
msgid "Source filename of the first object, without extension."
msgstr ""
+msgid "Full input filename"
+msgstr ""
+
+msgid "Source filename of the first object."
+msgstr ""
+
+msgid "Name of the plate sliced."
+msgstr ""
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr ""
@@ -17633,6 +18850,45 @@ msgstr ""
msgid "Size of the print bed bounding box"
msgstr ""
+msgid "First layer center without wipe tower"
+msgstr ""
+
+msgid "Height of the first layer."
+msgstr ""
+
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr ""
+
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr ""
+
+msgid "First layer bed temperature (initial extruder)"
+msgstr ""
+
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr ""
+
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr ""
+
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr ""
+
+msgid "Overall chamber temperature"
+msgstr ""
+
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr ""
+
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr ""
+
+msgid "First layer temperature"
+msgstr ""
+
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr ""
+
msgid "Timestamp"
msgstr ""
@@ -17678,7 +18934,7 @@ msgstr ""
msgid "Layer number"
msgstr ""
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
msgstr ""
msgid "Layer Z"
@@ -17699,6 +18955,188 @@ msgstr ""
msgid "The current extruder ID. The same as current_extruder."
msgstr ""
+msgid "Previous extruder"
+msgstr ""
+
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr ""
+
+msgid "Next extruder"
+msgstr ""
+
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr ""
+
+msgid "Relative e-axis"
+msgstr ""
+
+msgid "Indicates if relative positioning is being used."
+msgstr ""
+
+msgid "Toolchange count"
+msgstr ""
+
+msgid "The number of toolchanges throughout the print."
+msgstr ""
+
+msgid "Old retract length"
+msgstr ""
+
+msgid "The retraction length of the previous filament."
+msgstr ""
+
+msgid "New retract length"
+msgstr ""
+
+msgid "The retraction length of the new filament."
+msgstr ""
+
+msgid "Old retract length toolchange"
+msgstr ""
+
+msgid "The toolchange retraction length of the previous filament."
+msgstr ""
+
+msgid "New retract length toolchange"
+msgstr ""
+
+msgid "The toolchange retraction length of the new filament."
+msgstr ""
+
+msgid "Old filament temp"
+msgstr ""
+
+msgid "The old filament temp."
+msgstr ""
+
+msgid "New filament temp"
+msgstr ""
+
+msgid "The new filament temp."
+msgstr ""
+
+msgid "X after toolchange"
+msgstr ""
+
+msgid "The X pos after toolchange."
+msgstr ""
+
+msgid "Y after toolchange"
+msgstr ""
+
+msgid "The Y pos after toolchange."
+msgstr ""
+
+msgid "Z after toolchange"
+msgstr ""
+
+msgid "The Z pos after toolchange."
+msgstr ""
+
+msgid "First flush volume"
+msgstr ""
+
+msgid "The first flush volume."
+msgstr ""
+
+msgid "Second flush volume"
+msgstr ""
+
+msgid "The second flush volume."
+msgstr ""
+
+msgid "Old filament e feedrate"
+msgstr ""
+
+msgid "The old filament extruder feedrate."
+msgstr ""
+
+msgid "New filament e feedrate"
+msgstr ""
+
+msgid "The new filament extruder feedrate."
+msgstr ""
+
+msgid "Travel point 1 X"
+msgstr ""
+
+msgid "The travel point 1 X."
+msgstr ""
+
+msgid "Travel point 1 Y"
+msgstr ""
+
+msgid "The travel point 1 Y."
+msgstr ""
+
+msgid "Travel point 2 X"
+msgstr ""
+
+msgid "The travel point 2 X."
+msgstr ""
+
+msgid "Travel point 2 Y"
+msgstr ""
+
+msgid "The travel point 2 Y."
+msgstr ""
+
+msgid "Travel point 3 X"
+msgstr ""
+
+msgid "The travel point 3 X."
+msgstr ""
+
+msgid "Travel point 3 Y"
+msgstr ""
+
+msgid "The travel point 3 Y."
+msgstr ""
+
+msgid "Flush Length 1"
+msgstr ""
+
+msgid "The first flush length."
+msgstr ""
+
+msgid "Flush Length 2"
+msgstr ""
+
+msgid "The second flush length."
+msgstr ""
+
+msgid "Flush Length 3"
+msgstr ""
+
+msgid "The third flush length."
+msgstr ""
+
+msgid "Flush Length 4"
+msgstr ""
+
+msgid "The fourth flush length."
+msgstr ""
+
+msgid "Extrusion role"
+msgstr ""
+
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+
+msgid "Last extrusion role"
+msgstr ""
+
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+
msgid "Error in zip archive"
msgstr ""
@@ -17711,23 +19149,27 @@ msgstr ""
msgid "Generating infill toolpath"
msgstr ""
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, possible-c-format, possible-boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr ""
+
msgid "Detect overhangs for auto-lift"
msgstr ""
msgid "Checking support necessity"
msgstr ""
-msgid "floating regions"
+#, possible-boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
msgstr ""
-msgid "floating cantilever"
+#, possible-boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
msgstr ""
-msgid "large overhangs"
-msgstr ""
-
-#, possible-c-format, possible-boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#, possible-boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
msgstr ""
msgid "Generating support"
@@ -17739,7 +19181,7 @@ msgstr ""
msgid "Slicing mesh"
msgstr ""
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
msgstr ""
msgid ""
@@ -17755,6 +19197,301 @@ msgstr ""
msgid "Object name"
msgstr ""
+msgid "Cannot apply unary minus operator."
+msgstr ""
+
+msgid "Cannot convert to integer."
+msgstr ""
+
+msgid "Cannot round a non-numeric value."
+msgstr ""
+
+msgid "Cannot floor a non-numeric value."
+msgstr ""
+
+msgid "Cannot ceil a non-numeric value."
+msgstr ""
+
+msgid "Cannot apply a not operator."
+msgstr ""
+
+msgid "Cannot add non-numeric types."
+msgstr ""
+
+msgid "Cannot subtract non-numeric types."
+msgstr ""
+
+msgid "Cannot multiply with non-numeric type."
+msgstr ""
+
+msgid "Cannot divide a non-numeric type."
+msgstr ""
+
+msgid "Cannot divide with a non-numeric type."
+msgstr ""
+
+msgid "Division by zero"
+msgstr ""
+
+msgid "Not a boolean expression"
+msgstr ""
+
+msgid "Cannot compare the types."
+msgstr ""
+
+msgid "Not a numeric type."
+msgstr ""
+
+msgid "digits: second parameter must be integer"
+msgstr ""
+
+msgid "digits: third parameter must be integer"
+msgstr ""
+
+msgid "Left hand side of a regex match must be a string."
+msgstr ""
+
+#, possible-boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr ""
+
+msgid "regex_replace() first parameter must be a string."
+msgstr ""
+
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr ""
+
+msgid "one_of(): Pattern has to be a string value"
+msgstr ""
+
+msgid "Regular expression compilation failed"
+msgstr ""
+
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr ""
+
+msgid "Trying to index a scalar variable"
+msgstr ""
+
+msgid "Invalid vector index"
+msgstr ""
+
+msgid "Variable does not exist (in an inactive branch)"
+msgstr ""
+
+msgid "Variable does not exist"
+msgstr ""
+
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr ""
+
+msgid "Indexing an empty vector variable"
+msgstr ""
+
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr ""
+
+msgid "Indexing variable has to be integer"
+msgstr ""
+
+msgid "Negative vector index"
+msgstr ""
+
+msgid "Not a variable name"
+msgstr ""
+
+msgid "Not a variable name (in an inactive branch)"
+msgstr ""
+
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr ""
+
+msgid "Unsupported scalar variable type"
+msgstr ""
+
+msgid "Referencing a vector variable when scalar is expected"
+msgstr ""
+
+msgid "Unsupported vector variable type"
+msgstr ""
+
+msgid "Cannot modify a read-only variable"
+msgstr ""
+
+msgid "Right side is not a numeric expression"
+msgstr ""
+
+msgid "Expected number of elements to fill a vector with."
+msgstr ""
+
+msgid "Negative number of elements specified."
+msgstr ""
+
+msgid "Right side is not a boolean expression"
+msgstr ""
+
+msgid "Unsupported output scalar variable type"
+msgstr ""
+
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr ""
+
+msgid "Index out of range"
+msgstr ""
+
+msgid "Unsupported output vector variable type"
+msgstr ""
+
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr ""
+
+msgid "Symbol is already defined as system output variable"
+msgstr ""
+
+msgid "Global variables are not available in this context"
+msgstr ""
+
+msgid "Variable name already defined in local scope"
+msgstr ""
+
+msgid "Variable name already defined in global scope"
+msgstr ""
+
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr ""
+
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr ""
+
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr ""
+
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr ""
+
+msgid "Cannot assign scalar to a vector"
+msgstr ""
+
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr ""
+
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr ""
+
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr ""
+
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr ""
+
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr ""
+
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr ""
+
+msgid "Duplicating this type of vector variable is not supported"
+msgstr ""
+
+msgid "parameter of empty() is not a vector variable"
+msgstr ""
+
+msgid "parameter of size() is not a vector variable"
+msgstr ""
+
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr ""
+
+msgid "Random number generator not available in this context."
+msgstr ""
+
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, possible-boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr ""
+
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, possible-boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr ""
+
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, possible-boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr ""
+
+msgid "Interpolation value must be a number."
+msgstr ""
+
+msgid "X value of a table point must be a number."
+msgstr ""
+
+msgid "Y value of a table point must be a number."
+msgstr ""
+
+msgid "X coordinates of the table must be increasing"
+msgstr ""
+
+msgid "Interpolation value is outside the table range"
+msgstr ""
+
+msgid "Unknown syntax error"
+msgstr ""
+
+msgid "Invalid text."
+msgstr ""
+
+msgid "Invalid text block."
+msgstr ""
+
+msgid "Invalid macro."
+msgstr ""
+
+msgid "Not an {if}{else}{endif} macro."
+msgstr ""
+
+msgid "Not a {switch} macro."
+msgstr ""
+
+msgid "Expecting a legacy variable expansion format"
+msgstr ""
+
+msgid "Expecting an identifier."
+msgstr ""
+
+msgid "Expecting a conditional expression."
+msgstr ""
+
+msgid "Expecting a boolean expression."
+msgstr ""
+
+msgid "Expecting an expression."
+msgstr ""
+
+msgid "Expecting a closing brace or an optional parameter."
+msgstr ""
+
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr ""
+
+msgid "Expecting a variable reference."
+msgstr ""
+
+msgid "Expecting a variable name."
+msgstr ""
+
+msgid "Expecting a regular expression."
+msgstr ""
+
+msgid "Invalid utf8 sequence"
+msgstr ""
+
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr ""
+
+msgid "Invalid escape sequence"
+msgstr ""
+
msgid "Support: generate contact points"
msgstr ""
@@ -17770,6 +19507,9 @@ msgstr ""
msgid "The file format is incompatible and cannot be parsed."
msgstr ""
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr ""
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr ""
@@ -17818,9 +19558,6 @@ msgstr ""
msgid "Calibrate"
msgstr ""
-msgid "Finish"
-msgstr ""
-
msgid "How can I use calibration results?"
msgstr ""
@@ -17905,8 +19642,10 @@ msgid ""
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr ""
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] ""
+msgstr[1] ""
msgid "Connecting to printer..."
msgstr ""
@@ -18104,8 +19843,10 @@ msgstr ""
msgid "Please connect the printer first before synchronizing."
msgstr ""
-#, possible-c-format, possible-boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr ""
+
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
msgstr ""
msgid "AMS and nozzle information are synced"
@@ -18166,6 +19907,10 @@ msgstr ""
msgid "To Volumetric Speed"
msgstr ""
+msgctxt "Increment"
+msgid "Step"
+msgstr ""
+
msgid "Are you sure you want to cancel this print?"
msgstr ""
@@ -18192,8 +19937,10 @@ msgid "Action"
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr ""
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] ""
+msgstr[1] ""
msgid "Edit Flow Dynamics Calibration"
msgstr ""
@@ -18307,10 +20054,10 @@ msgid ""
"Please verify the inputs."
msgstr ""
-msgid "Temperature calibration"
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
msgstr ""
-msgid "Filament type"
+msgid "Temperature calibration"
msgstr ""
msgid "PLA"
@@ -18334,6 +20081,17 @@ msgstr ""
msgid "PET-CF"
msgstr ""
+msgid "Test model"
+msgstr ""
+
+msgctxt "Test model"
+msgid "Standard"
+msgstr ""
+
+msgctxt "Test model"
+msgid "Overhang"
+msgstr ""
+
msgid "Start temp: "
msgstr ""
@@ -18426,9 +20184,6 @@ msgstr ""
msgid "End retraction length: "
msgstr ""
-msgid "Test model"
-msgstr ""
-
msgid "Ringing Tower"
msgstr ""
@@ -18454,7 +20209,10 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr ""
-msgid "Start / End"
+msgid "X Start / End: "
+msgstr ""
+
+msgid "Y Start / End: "
msgstr ""
msgid "Frequency settings"
@@ -18488,7 +20246,10 @@ msgstr ""
msgid "Frequency: "
msgstr ""
-msgid "Damp"
+msgid "Frequency X / Y: "
+msgstr ""
+
+msgid "Damp (Start / End): "
msgstr ""
msgid "RepRap firmware uses the same frequency for both axes."
@@ -18604,8 +20365,10 @@ msgid "Enable IFS"
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr ""
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] ""
+msgstr[1] ""
msgid "This printer does not report a material station."
msgstr ""
@@ -18722,7 +20485,8 @@ msgstr ""
msgid "Subtract with"
msgstr ""
-msgid "selected"
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
msgstr ""
msgid "Part 1"
@@ -18832,9 +20596,6 @@ msgstr ""
msgid "Filament Preset"
msgstr ""
-msgid "Create"
-msgstr ""
-
msgid "Vendor is not selected; please reselect vendor."
msgstr ""
@@ -19110,6 +20871,9 @@ msgid ""
"Can be shared with others."
msgstr ""
+msgid "Include custom bed texture and model"
+msgstr ""
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -19155,14 +20919,6 @@ msgstr ""
msgid "Presets inherited by other presets cannot be deleted"
msgstr ""
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Delete Preset"
-msgstr ""
-
msgid "Are you sure to delete the selected preset?"
msgstr ""
@@ -19233,10 +20989,12 @@ msgstr ""
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr ""
+#. TRN %s is "left" or "right".
#, possible-c-format, possible-boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr ""
+#. TRN %s is "left" or "right".
#, possible-c-format, possible-boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -19248,6 +21006,12 @@ msgid ""
"Please click the Sync button above and restart the calibration."
msgstr ""
+#. TRN %s is "left" or "right".
+#, possible-c-format, possible-boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr ""
+
+#. TRN %s is "left" or "right".
#, possible-c-format, possible-boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -19315,6 +21079,10 @@ msgstr ""
msgid "Click Scan to look for K-series printers on your network."
msgstr ""
+msgctxt "Printer model"
+msgid "Model"
+msgstr ""
+
msgid "Scan"
msgstr ""
@@ -19331,8 +21099,10 @@ msgid "No K-series printers found. Make sure the printer is on the same network
msgstr ""
#, possible-c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr ""
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] ""
+msgstr[1] ""
msgid "Active"
msgstr ""
@@ -19421,8 +21191,12 @@ msgstr ""
msgid "Failed to launch a new instance."
msgstr ""
-msgid "log(s)"
-msgstr ""
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, possible-c-format, possible-boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] ""
+msgstr[1] ""
msgid "Choose where to save the exported JSON file"
msgstr ""
@@ -19462,15 +21236,31 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
-msgid "Error. Can't get API token for authorization"
+msgid "Maximum login retries exceeded"
+msgstr ""
+
+#. TRN %1% is an HTTP status code.
+#, possible-boost-format
+msgid "HTTP error: %1%"
msgstr ""
msgid "Could not parse server response."
msgstr ""
+msgid "Error. Can't get API token for authorization"
+msgstr ""
+
msgid "Error saving session to file"
msgstr ""
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr ""
+
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, possible-boost-format
+msgid "Logged in as user: %1%"
+msgstr ""
+
msgid "Error session check"
msgstr ""
@@ -19505,6 +21295,34 @@ msgstr ""
msgid "Could not get resources to create a new connection"
msgstr ""
+msgid "Connection to UltiMaker works correctly."
+msgstr ""
+
+msgid "Could not connect to UltiMaker"
+msgstr ""
+
+msgid "Error generating credentials! See the log for details."
+msgstr ""
+
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, possible-boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr ""
+
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, possible-boost-format
+msgid "Username: %1% Password: %2%"
+msgstr ""
+
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr ""
+
+msgid "Invalid authentication credentials"
+msgstr ""
+
+msgid "Error: No authentication credentials found!"
+msgstr ""
+
msgid "Upload not enabled on FlashAir card."
msgstr ""
@@ -19610,6 +21428,12 @@ msgid ""
"Error: \"%2%\""
msgstr ""
+msgid "Connection to ESP3D is working correctly."
+msgstr ""
+
+msgid "Could not connect to ESP3D"
+msgstr ""
+
msgid "No AMS"
msgstr ""
@@ -19681,6 +21505,10 @@ msgstr ""
msgid "No task"
msgstr ""
+msgctxt "Verb"
+msgid "View"
+msgstr ""
+
msgid "Edit Printers"
msgstr ""
@@ -19721,6 +21549,10 @@ msgstr ""
msgid "Printing Pause"
msgstr ""
+msgctxt "Device status"
+msgid "Prepare"
+msgstr ""
+
msgid "Pending"
msgstr ""
@@ -19751,9 +21583,6 @@ msgstr ""
msgid "File Saving"
msgstr ""
-msgid "Don't remind me again"
-msgstr ""
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr ""
@@ -19778,14 +21607,19 @@ msgstr ""
msgid "Global settings"
msgstr ""
-msgid "Video tutorial"
-msgstr ""
-
msgid "(Sync with printer)"
msgstr ""
-#, possible-c-format, possible-boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr ""
+
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr ""
+
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr ""
+
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
msgstr ""
msgid "We will slice according to this grouping method:"
@@ -19825,15 +21659,20 @@ msgstr ""
msgid "Internal error"
msgstr ""
-msgid "Unknown error"
-msgstr ""
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr ""
msgid "Flashforge returned an invalid JSON response."
msgstr ""
+msgid "Request failed"
+msgstr ""
+
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, possible-boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr ""
+
msgid "No Flashforge printers were discovered on the local network."
msgstr ""
@@ -19979,8 +21818,11 @@ msgstr ""
msgid "Set the brim type of this object to \"painted\""
msgstr ""
-msgid "invalid brim ears"
-msgstr ""
+#, possible-c-format, possible-boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] ""
+msgstr[1] ""
msgid "Brim Ears"
msgstr ""
@@ -20006,6 +21848,7 @@ msgstr ""
msgid "Failed to create the temporary folder."
msgstr ""
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, possible-c-format, possible-boost-format
msgid "/%d Selected"
msgstr ""
@@ -20026,8 +21869,10 @@ msgid "The printing job will be stopped. Continue?"
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "Skipping %d objects."
-msgstr ""
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] ""
+msgstr[1] ""
msgid "This action cannot be undone. Continue?"
msgstr ""
@@ -20169,6 +22014,33 @@ msgstr ""
msgid "PresetBundle"
msgstr ""
+msgid "Export Presets"
+msgstr ""
+
+msgid "Show in folder"
+msgstr ""
+
+msgid "Delete bundle"
+msgstr ""
+
+msgid "Unsubscribe bundle"
+msgstr ""
+
+msgid "Update available"
+msgstr ""
+
+msgid "Unauthorized bundle"
+msgstr ""
+
+msgid "Open this bundle in your browser"
+msgstr ""
+
+msgid "Subscribed"
+msgstr ""
+
+msgid "Local"
+msgstr ""
+
msgid "Bundle folder does not exist."
msgstr ""
@@ -20202,6 +22074,12 @@ msgstr ""
msgid "ExportPresetBundle"
msgstr ""
+msgid "Export to OrcaCloud"
+msgstr ""
+
+msgid "Export to folder"
+msgstr ""
+
msgid "Save preset bundle"
msgstr ""
@@ -20277,6 +22155,10 @@ msgstr ""
msgid "Filament Drying Settings"
msgstr ""
+msgctxt "Hours unit"
+msgid "H"
+msgstr ""
+
msgid "Stopping"
msgstr ""
@@ -20412,6 +22294,10 @@ msgstr ""
msgid "Starting: Checking air vent"
msgstr ""
+#, possible-boost-format
+msgid "Unable to create directory %1%"
+msgstr ""
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr ""
@@ -20427,6 +22313,81 @@ msgstr ""
msgid "The filament model is unknown. A random filament preset will be used."
msgstr ""
+#, possible-boost-format
+msgid "Unknown configuration file: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Invalid configuration file: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr ""
+
+msgid "mixed filament definition: filament slot limit reached"
+msgstr ""
+
+msgid "filament slot limit reached"
+msgstr ""
+
+#, possible-boost-format
+msgid "the printer's filament limit is %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr ""
+
+msgid "needs at least two components"
+msgstr ""
+
+msgid "components reference missing slots"
+msgstr ""
+
+#, possible-boost-format
+msgid "mixed filament definition: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr ""
+
+#, possible-boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, possible-boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+
+#, possible-boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+
msgid "Hide reference planes and axes"
msgstr ""
@@ -20663,6 +22624,10 @@ msgstr ""
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr ""
+msgctxt "Design"
+msgid "Plane"
+msgstr ""
+
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr ""
@@ -20713,6 +22678,10 @@ msgstr ""
msgid "Transform needs a body — add or import one first"
msgstr ""
+msgctxt "Design"
+msgid "Mirror"
+msgstr ""
+
msgid "Reflect a body about a plane"
msgstr ""
@@ -20783,6 +22752,10 @@ msgstr ""
msgid "Hole / thread"
msgstr ""
+msgctxt "Design"
+msgid "Hole"
+msgstr ""
+
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr ""
@@ -20816,6 +22789,10 @@ msgstr ""
msgid "Line / polyline"
msgstr ""
+msgctxt "Design"
+msgid "Line"
+msgstr ""
+
msgid "Click start, then end — then set the exact length"
msgstr ""
@@ -20918,6 +22895,9 @@ msgstr ""
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr ""
+msgid "Point"
+msgstr ""
+
msgid "Click to place a point"
msgstr ""
@@ -21006,14 +22986,16 @@ msgid "Pick entities, drag the sweep handle, click the count; click empty to app
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr ""
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] ""
+msgstr[1] ""
-msgid "circumscribed"
-msgstr ""
-
-msgid "inscribed"
-msgstr ""
+#, possible-c-format, possible-boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] ""
+msgstr[1] ""
msgid "Polygon"
msgstr ""
@@ -21278,6 +23260,10 @@ msgstr ""
msgid "Thread plane"
msgstr ""
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr ""
+
msgid "Pitch"
msgstr ""
@@ -21419,6 +23405,9 @@ msgstr ""
msgid "(pick a side face)"
msgstr ""
+msgid "Face"
+msgstr ""
+
msgid "Draft"
msgstr ""
@@ -21703,8 +23692,10 @@ msgid "Sketch updated"
msgstr ""
#, possible-c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr ""
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] ""
+msgstr[1] ""
#, possible-c-format, possible-boost-format
msgid "Length %.2f mm, angle %.1f°"
@@ -21812,8 +23803,10 @@ msgid "Editing: Sketch %d · N = look normal to the plane · Confirm or
msgstr ""
#, possible-c-format
-msgid "OK — %zu triangles"
-msgstr ""
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] ""
+msgstr[1] ""
msgid "Edit the text — Enter applies, Esc keeps it as it was"
msgstr ""
@@ -21879,10 +23872,15 @@ msgstr ""
#, possible-c-format, possible-boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+msgstr[1] ""
msgid "Large mesh"
msgstr ""
@@ -21902,7 +23900,7 @@ msgid "Mesh import failed: %s"
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
msgstr ""
#, possible-c-format, possible-boost-format
@@ -21916,7 +23914,9 @@ msgstr ""
msgid "%s added to the sketch — Confirm to commit it"
msgstr ""
-msgid " — drag to place/size, then Confirm"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, possible-c-format, possible-boost-format
+msgid "%s — drag to place/size, then Confirm"
msgstr ""
msgid "Insert canceled"
@@ -22075,9 +24075,12 @@ msgstr ""
msgid "a geometry operation failed"
msgstr ""
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, possible-c-format, possible-boost-format
msgid " · %d picked"
-msgstr ""
+msgid_plural " · %d picked"
+msgstr[0] ""
+msgstr[1] ""
#, possible-c-format, possible-boost-format
msgid "%d selected · Del removes it · Shift-click adds · double-click takes the whole loop"
@@ -22090,7 +24093,9 @@ msgstr ""
#, possible-c-format, possible-boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr ""
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] ""
+msgstr[1] ""
msgid "Constrain — click one or two entities, then choose a constraint"
msgstr ""
@@ -22286,7 +24291,9 @@ msgstr ""
#, possible-c-format, possible-boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr ""
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] ""
+msgstr[1] ""
msgid "Move — click the entities to move"
msgstr ""
@@ -22381,8 +24388,10 @@ msgid "Sketch point"
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "%d sketch entities"
-msgstr ""
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] ""
+msgstr[1] ""
msgid "select something first"
msgstr ""
@@ -22789,7 +24798,9 @@ msgstr ""
msgid "Applied edit"
msgstr ""
-msgid " — type a value, press Enter (or Confirm)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, possible-c-format, possible-boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
msgstr ""
msgid "Pick a segment in the viewport first"
@@ -22845,9 +24856,19 @@ msgstr ""
msgid "Nothing to commit — add a feature first"
msgstr ""
+#, possible-c-format, possible-boost-format
+msgid "Design Body %d"
+msgstr ""
+
msgid "All bodies hidden — show one before committing"
msgstr ""
+msgid "Design Assembly"
+msgstr ""
+
+msgid "Design Body"
+msgstr ""
+
#, possible-c-format
msgid "%zu edge"
msgid_plural "%zu edges"
@@ -22898,8 +24919,10 @@ msgid "Invalid: %s"
msgstr ""
#, possible-c-format
-msgid "Preview — %zu triangles"
-msgstr ""
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] ""
+msgstr[1] ""
#, possible-c-format, possible-boost-format
msgid "Body %d — moved (%.1f, %.1f, %.1f) mm, rotated %.1f°"
@@ -22978,8 +25001,10 @@ msgid "That dimension cannot be satisfied — the sketch is over-constrained"
msgstr ""
#, possible-boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr ""
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] ""
+msgstr[1] ""
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
msgstr ""
@@ -23023,8 +25048,10 @@ msgid "Chamfer: the distance overruns a leg, or the two lines do not meet at a c
msgstr ""
#, possible-boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr ""
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] ""
+msgstr[1] ""
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
msgstr ""
@@ -23039,8 +25066,10 @@ msgid "The number of copies must be a whole number, 2 or more"
msgstr ""
#, possible-boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr ""
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] ""
+msgstr[1] ""
msgid "The array copies are unconstrained — the solver refused every binding"
msgstr ""
@@ -23157,10 +25186,6 @@ msgstr ""
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr ""
-msgctxt "Design"
-msgid "Hole"
-msgstr ""
-
msgctxt "Design"
msgid "Thread"
msgstr ""
@@ -23226,10 +25251,6 @@ msgstr ""
msgid "Repeat the body around an axis — set the count and sweep"
msgstr ""
-msgctxt "Design"
-msgid "Mirror"
-msgstr ""
-
msgctxt "Design"
msgid "Pattern on Curve"
msgstr ""
@@ -23258,10 +25279,6 @@ msgstr ""
msgid "Align the body to a picked face or plane"
msgstr ""
-msgctxt "Design"
-msgid "Plane"
-msgstr ""
-
msgctxt "Design"
msgid "Axis"
msgstr ""
@@ -23344,10 +25361,6 @@ msgstr ""
msgid "Delete this whole body — removes the feature it was made from"
msgstr ""
-msgctxt "Design"
-msgid "Line"
-msgstr ""
-
msgctxt "Design"
msgid "Polyline"
msgstr ""
@@ -23594,165 +25607,6 @@ msgstr ""
msgid "Size: %.1f × %.1f mm"
msgstr ""
-msgid "Primitive"
-msgstr ""
-
-msgid "Empty mesh generated"
-msgstr ""
-
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr ""
-
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr ""
-
-msgid "Width (X)"
-msgstr ""
-
-msgid "Depth (Y)"
-msgstr ""
-
-msgid "Height (Z)"
-msgstr ""
-
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr ""
-
-msgid "Top R"
-msgstr ""
-
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr ""
-
-msgid "Minor R"
-msgstr ""
-
-msgid "All edges"
-msgstr ""
-
-msgid "Top edges"
-msgstr ""
-
-msgid "Bottom edges"
-msgstr ""
-
-msgid "Lateral edges"
-msgstr ""
-
-msgid "Mesh resolution"
-msgstr ""
-
-msgid "Add Shape"
-msgstr ""
-
-msgid "No outer profile"
-msgstr ""
-
-msgid "Failed to make outer face"
-msgstr ""
-
-msgid "Failed to build face with holes"
-msgstr ""
-
-msgid "Revolve failed"
-msgstr ""
-
-msgid "Profile"
-msgstr ""
-
-msgid "Start new profile (for holes)"
-msgstr ""
-
-msgid "Segments"
-msgstr ""
-
-msgid "Sides"
-msgstr ""
-
-msgid "Click on canvas to draw"
-msgstr ""
-
-msgid "Snap to grid"
-msgstr ""
-
-msgid "Grid step"
-msgstr ""
-
-msgid "Outer"
-msgstr ""
-
-msgid "closed"
-msgstr ""
-
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, possible-boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr ""
-
-msgid "XY (Top)"
-msgstr ""
-
-msgid "XZ (Front)"
-msgstr ""
-
-msgid "YZ (Side)"
-msgstr ""
-
-msgid "Revolve deg"
-msgstr ""
-
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr ""
-
-msgid "Pocket (cut)"
-msgstr ""
-
-#, possible-c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Draw a closed profile to enable"
-msgstr ""
-
-msgid "Clear all"
-msgstr ""
-
-msgid "Empty result"
-msgstr ""
-
-#, possible-boost-format
-msgid "Extrude: %1%"
-msgstr ""
-
-#, possible-boost-format
-msgid "Revolve: %1%"
-msgstr ""
-
-msgid "No object selected"
-msgstr ""
-
-msgid "Face failed"
-msgstr ""
-
-msgid "Face with holes failed"
-msgstr ""
-
-msgid "Tool mesh empty"
-msgstr ""
-
-msgid "Pocket added (negative volume)"
-msgstr ""
-
-#, possible-boost-format
-msgid "Pocket: %1%"
-msgstr ""
-
msgctxt "Keyboard Shortcut"
msgid "Ins"
msgstr ""
@@ -23861,6 +25715,9 @@ msgstr ""
msgid "Gizmo brim ears"
msgstr ""
+msgid "Gizmo texture displacement painting"
+msgstr ""
+
msgid "Vertical slider - Move active thumb Up"
msgstr ""
@@ -24055,6 +25912,11 @@ msgstr ""
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr ""
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, possible-boost-format
+msgid "%1% (base plane missing)"
+msgstr ""
+
msgid "two points are coincident"
msgstr ""
@@ -24076,9 +25938,26 @@ msgstr ""
msgid "zero-length direction"
msgstr ""
+#, possible-boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr ""
+
+#, possible-boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr ""
+
+#, possible-boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr ""
+
msgid "feature is used by a later feature"
msgstr ""
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, possible-boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr ""
+
msgid "sketch entities do not form a closed loop"
msgstr ""
@@ -24086,8 +25965,15 @@ msgstr ""
msgid "Open at (%.3f, %.3f)"
msgstr ""
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, possible-boost-format
-msgid "...and %1% more open end(s)"
+msgid "Open ends not shown: %1%"
+msgstr ""
+
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr ""
+
+msgid "revolve: the axis line has no length"
msgstr ""
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -24200,6 +26086,24 @@ msgstr ""
msgid "hole cut failed"
msgstr ""
+msgid "thread: the diameter must be at least 1 mm"
+msgstr ""
+
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr ""
+
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr ""
+
+msgid "thread: the depth is too large for this diameter"
+msgstr ""
+
+msgid "thread: the length must be more than half a pitch"
+msgstr ""
+
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr ""
+
msgid "internal thread needs a body"
msgstr ""
@@ -24245,6 +26149,18 @@ msgstr ""
msgid "delete_face produced no geometry"
msgstr ""
+msgid "boolean: no target body"
+msgstr ""
+
+msgid "boolean: no tool body — pick a second body"
+msgstr ""
+
+msgid "boolean: the target and the tool are the same body"
+msgstr ""
+
+msgid "boolean: a body has no geometry"
+msgstr ""
+
msgid "boolean operation failed"
msgstr ""
@@ -24494,6 +26410,9 @@ msgstr ""
msgid "Auxiliaries"
msgstr ""
+msgid "Belt Purge Tower"
+msgstr ""
+
msgid "Project Filament List"
msgstr ""
@@ -24519,8 +26438,17 @@ msgid "At least two filaments of the same material type are required for decompo
msgstr ""
#, possible-boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr ""
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] ""
+msgstr[1] ""
+
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, possible-boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] ""
+msgstr[1] ""
msgid "Cyan"
msgstr ""
@@ -24543,11 +26471,1244 @@ msgstr ""
msgid "Blue"
msgstr ""
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, possible-boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr ""
+
msgid ", "
msgstr ""
#, possible-c-format, possible-boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+msgid "Opacity"
+msgstr ""
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
msgstr ""
msgid "Alternate nozzles:"
@@ -24622,9 +27783,6 @@ msgstr ""
msgid "Custom Printer Setup"
msgstr ""
-msgid "Custom Printer"
-msgstr ""
-
msgid "Define a custom printer profile"
msgstr ""
@@ -24828,6 +27986,12 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr ""
+msgid "Type an exact value into a slider"
+msgstr ""
+
+msgid "Edit icon at a slider's right end"
+msgstr ""
+
msgid "Texture displacement"
msgstr ""
@@ -24929,6 +28093,39 @@ msgstr ""
msgid "Remove texture"
msgstr ""
+msgid "Adjust image"
+msgstr ""
+
+msgid "Brightness"
+msgstr ""
+
+msgid "Contrast"
+msgstr ""
+
+msgid "Sharpness"
+msgstr ""
+
+msgid "Blur"
+msgstr ""
+
+msgid "Hue"
+msgstr ""
+
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr ""
+
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr ""
+
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr ""
+
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr ""
+
+msgid "Save as copy"
+msgstr ""
+
msgid "Remove texture displacement layer"
msgstr ""
@@ -25031,6 +28228,13 @@ msgstr ""
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr ""
+#, possible-boost-format
+msgid "Range: %1% to %2%"
+msgstr ""
+
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr ""
+
msgid "Pro"
msgstr ""
@@ -25110,7 +28314,7 @@ msgstr ""
msgid "Click a triangle to paint it"
msgstr ""
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
msgstr ""
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -25122,13 +28326,13 @@ msgstr ""
msgid "Checker"
msgstr ""
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
msgstr ""
msgid "Distortion"
msgstr ""
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
msgstr ""
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -25149,6 +28353,9 @@ msgstr ""
msgid "not painted"
msgstr ""
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr ""
+
msgid "Move up - applied earlier"
msgstr ""
@@ -25164,9 +28371,18 @@ msgstr ""
msgid "Tile size"
msgstr ""
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr ""
+
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr ""
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr ""
@@ -25215,22 +28431,31 @@ msgstr ""
msgid "Interleaves two filaments to fake the colors in between, so a handful of filaments can cover a photo or a gradient. An image of flat colors prints the same either way. Off uses one filament per area."
msgstr ""
-msgid "Mix by"
+msgid "Mixed colors"
msgstr ""
-msgctxt "Texture Displacement"
-msgid "Surface"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
msgstr ""
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
msgstr ""
+msgid "Many"
+msgstr ""
+
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, possible-boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr ""
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] ""
+msgstr[1] ""
+
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, possible-boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] ""
+msgstr[1] ""
msgid "Denoise"
msgstr ""
@@ -25269,6 +28494,15 @@ msgstr ""
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr ""
+msgid "Model UV"
+msgstr ""
+
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr ""
+
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr ""
+
msgid "Open UV editor"
msgstr ""
@@ -25279,8 +28513,10 @@ msgid "Not unwrapped yet"
msgstr ""
#, possible-boost-format
-msgid "%1% islands"
-msgstr ""
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] ""
+msgstr[1] ""
msgid "Capture current view"
msgstr ""
@@ -25303,9 +28539,6 @@ msgstr ""
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr ""
-msgid "Opacity"
-msgstr ""
-
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr ""
@@ -25346,6 +28579,10 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr ""
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr ""
+
msgctxt "Texture Displacement"
msgid "Subtract"
msgstr ""
@@ -25360,7 +28597,7 @@ msgstr ""
msgid "The base layer has nothing beneath it to combine with, so it always adds."
msgstr ""
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
msgstr ""
msgid "Adjust placement"
@@ -25379,8 +28616,10 @@ msgid "More settings"
msgstr ""
#, possible-boost-format
-msgid "All %1% layers used"
-msgstr ""
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] ""
+msgstr[1] ""
msgid "Add layer"
msgstr ""
@@ -25440,8 +28679,10 @@ msgid "Triangle budget: set with Triangles, below."
msgstr ""
#, possible-boost-format
-msgid "Preview: %1% triangles"
-msgstr ""
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] ""
+msgstr[1] ""
msgid "Steps"
msgstr ""
@@ -25473,6 +28714,12 @@ msgstr ""
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr ""
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
msgid "Keep sharp edges"
msgstr ""
@@ -25575,12 +28822,6 @@ msgstr ""
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr ""
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr ""
-
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr ""
-
msgid "Preparing..."
msgstr ""
@@ -25599,29 +28840,48 @@ msgstr ""
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr ""
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr ""
+
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr ""
+
#, possible-boost-format
msgid "%1% k"
msgstr ""
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, possible-boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr ""
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] ""
+msgstr[1] ""
+
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, possible-boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] ""
+msgstr[1] ""
#, possible-boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr ""
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] ""
+msgstr[1] ""
#, possible-boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr ""
-
-#, possible-boost-format
-msgid "%1% layers not painted, skipped"
-msgstr ""
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] ""
+msgstr[1] ""
+#. TRN %1% is one layer name, or two names separated by a comma.
#, possible-boost-format
msgid "%1% not painted, skipped"
-msgstr ""
+msgid_plural "%1% not painted, skipped"
+msgstr[0] ""
+msgstr[1] ""
msgid "Entering Texture displacement painting"
msgstr ""
@@ -25635,6 +28895,9 @@ msgstr ""
msgid "Choose SLA archive:"
msgstr ""
+msgid "SL1 / SL1S archive files"
+msgstr ""
+
msgid "Import file"
msgstr ""
@@ -25764,6 +29027,27 @@ msgstr ""
msgid "Printer plugins"
msgstr ""
+msgid "This preset does not use any plugin capabilities"
+msgstr ""
+
+msgid "Capabilities used by this preset"
+msgstr ""
+
+msgid "Capability configuration (JSON)"
+msgstr ""
+
+msgid "Plugin configuration"
+msgstr ""
+
+msgid "Discard this preset's override and use the global configuration again"
+msgstr ""
+
+msgid "Restore defaults"
+msgstr ""
+
+msgid "Invalid JSON"
+msgstr ""
+
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr ""
@@ -25777,9 +29061,6 @@ msgid ""
"This discards the preset's override and uses the global configuration."
msgstr ""
-msgid "Restore defaults"
-msgstr ""
-
msgid "Using global configuration. Save the preset to persist it."
msgstr ""
@@ -25799,15 +29080,15 @@ msgstr ""
msgid "Overwrite Plugin"
msgstr ""
-msgid "Show in folder"
-msgstr ""
-
msgid "Reinstall"
msgstr ""
msgid "Delete cache and reload"
msgstr ""
+msgid "No description."
+msgstr ""
+
msgid "Select a .py or .whl plugin package."
msgstr ""
@@ -25831,6 +29112,223 @@ msgstr ""
msgid "Installed \"%s\"."
msgstr ""
+msgid "Search plugins"
+msgstr ""
+
+msgid "Clear search"
+msgstr ""
+
+msgid "Match case"
+msgstr ""
+
+msgid "Match whole word"
+msgstr ""
+
+msgid "More plugin install options"
+msgstr ""
+
+msgid "Install plugin"
+msgstr ""
+
+msgid "Install local plugin"
+msgstr ""
+
+msgid "Activate"
+msgstr ""
+
+msgid "Sort by name"
+msgstr ""
+
+msgid "Sort by version"
+msgstr ""
+
+msgid "Plugin Version"
+msgstr ""
+
+msgid "Sort by source"
+msgstr ""
+
+msgid "Source"
+msgstr ""
+
+msgid "Sort by status"
+msgstr ""
+
+msgctxt "Plugin"
+msgid "Status"
+msgstr ""
+
+msgid "Drag to resize; double-click to reset"
+msgstr ""
+
+msgid "Resize the plugin list"
+msgstr ""
+
+msgid "Plugin details"
+msgstr ""
+
+msgid "Plugin Info"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Config"
+msgstr ""
+
+msgid "Changelog"
+msgstr ""
+
+msgid "Diagnostics"
+msgstr ""
+
+msgid "Types"
+msgstr ""
+
+msgid "Installed Version"
+msgstr ""
+
+msgid "Latest Version"
+msgstr ""
+
+msgid "Update to the latest version"
+msgstr ""
+
+msgid "No description available"
+msgstr ""
+
+msgid "Select a plugin to configure its capabilities"
+msgstr ""
+
+msgid "Configurable capabilities"
+msgstr ""
+
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr ""
+
+msgid "Plugin changelog"
+msgstr ""
+
+msgid "Date"
+msgstr ""
+
+msgid "Changes"
+msgstr ""
+
+msgid "No changelog available"
+msgstr ""
+
+msgid "No issues detected"
+msgstr ""
+
+msgid "No plugins found"
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "No plugins match \"%s\""
+msgstr ""
+
+msgid "Mine"
+msgstr ""
+
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr ""
+
+msgid "Orphaned"
+msgstr ""
+
+msgctxt "Plugin"
+msgid "Local"
+msgstr ""
+
+msgid "Some plugin capabilities are enabled"
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "Collapse %s capabilities"
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "Expand %s capabilities"
+msgstr ""
+
+msgid "Collapse capabilities"
+msgstr ""
+
+msgid "Expand capabilities"
+msgstr ""
+
+msgid "Open this plugin in your browser"
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "Capabilities: %s"
+msgstr ""
+
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "Run \"%s\""
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "Enable %s"
+msgstr ""
+
+msgid "Unauthorized for updates"
+msgstr ""
+
+msgid "Loading the plugin…"
+msgstr ""
+
+msgid "This plugin exposes no capabilities"
+msgstr ""
+
+msgid "Activate this plugin to configure its capabilities"
+msgstr ""
+
+msgid "View on OrcaCloud here "
+msgstr ""
+
+msgid "Activated"
+msgstr ""
+
+msgid "Runtime error"
+msgstr ""
+
+msgid "Inactive"
+msgstr ""
+
+msgid "This plugin is active and ready to be used."
+msgstr ""
+
+msgid "This plugin is still loading."
+msgstr ""
+
+msgid "This plugin is blocked until its error is fixed."
+msgstr ""
+
+msgid "This plugin is loaded but a capability reported an error."
+msgstr ""
+
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr ""
+
+msgid "Select a plugin to view its status and details."
+msgstr ""
+
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr ""
+
+msgid "A newer plugin version is available."
+msgstr ""
+
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr ""
+
#, possible-c-format, possible-boost-format
msgid "Failed to activate \"%s\"."
msgstr ""
@@ -25989,6 +29487,54 @@ msgstr ""
msgid "Reloaded \"%s\"."
msgstr ""
+msgid "Printer Connection"
+msgstr ""
+
+msgid "Please set up your printer connection to view the device."
+msgstr ""
+
+msgid "No model information"
+msgstr ""
+
+msgid "Edit Project Info"
+msgstr ""
+
+msgid "Model Information"
+msgstr ""
+
+msgid "Accessories"
+msgstr ""
+
+msgid "Profile Information"
+msgstr ""
+
+msgid "Model name"
+msgstr ""
+
+msgid "Created by"
+msgstr ""
+
+msgid "Remixed by"
+msgstr ""
+
+msgid "Shared by"
+msgstr ""
+
+msgid "Model description"
+msgstr ""
+
+msgid "BOM"
+msgstr ""
+
+msgid "Profile name"
+msgstr ""
+
+msgid "Profile Author"
+msgstr ""
+
+msgid "Profile description"
+msgstr ""
+
msgid "Purge Mode Settings"
msgstr ""
@@ -26007,6 +29553,16 @@ msgstr ""
msgid "Terminal"
msgstr ""
+msgid "python ... or uv ..."
+msgstr ""
+
+msgid "Plugin terminal ready."
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid "Process exited with code: %s"
+msgstr ""
+
msgid "A command is already running."
msgstr ""
@@ -26041,8 +29597,10 @@ msgid "New Mixed Filaments"
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr ""
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] ""
+msgstr[1] ""
msgid "Import Model"
msgstr ""
@@ -26107,7 +29665,7 @@ msgstr ""
msgid "Computation failed. Please adjust parameters and retry."
msgstr ""
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
msgstr ""
msgid "Mesh repair"
@@ -26119,33 +29677,27 @@ msgstr ""
msgid "Repair and import"
msgstr ""
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr ""
-
-msgid "Mesh issue"
-msgstr ""
-
msgid "The selected image is empty."
msgstr ""
msgid "Failed to prepare the texture for use."
msgstr ""
+msgid "Could not create the folder for imported textures."
+msgstr ""
+
+msgid "Failed to save the imported texture."
+msgstr ""
+
msgid "Only your own imported textures can be removed."
msgstr ""
msgid "Could not delete the texture file."
msgstr ""
-msgid "Could not create the folder for imported textures."
-msgstr ""
-
msgid "Could not load the selected image."
msgstr ""
-msgid "Failed to save the imported texture."
-msgstr ""
-
msgid "Could not read the texture file."
msgstr ""
@@ -26178,22 +29730,28 @@ msgid "Pick Unwrap as a texture layer's mapping to edit its UVs here"
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr ""
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] ""
+msgstr[1] ""
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr ""
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] ""
+msgstr[1] ""
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
msgstr ""
#, possible-c-format, possible-boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr ""
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] ""
+msgstr[1] ""
#, possible-c-format, possible-boost-format
msgid "Island %d selected | drag = move, R = rotate, S = scale, Shift/Ctrl click = multi-select, Home = frame"
@@ -26208,6 +29766,9 @@ msgstr ""
msgid "Change texture - choose another one from the texture library"
msgstr ""
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr ""
+
msgid "Height map - show the layer's texture under the islands"
msgstr ""
@@ -26232,13 +29793,13 @@ msgstr ""
msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfolded next to each other (a cube becomes a joined net rather than six loose squares). They stay separate islands, so you can still move any of them by hand afterwards."
msgstr ""
-msgid "Island - move, rotate and scale whole islands"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
msgstr ""
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
msgstr ""
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
msgstr ""
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -26268,7 +29829,12 @@ msgstr ""
msgid "Snap - stick islands together when dragging one against another"
msgstr ""
-msgid "Frame all islands (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
msgstr ""
msgid "No layer mapped with Unwrap"
@@ -26278,22 +29844,67 @@ msgstr ""
msgid "%.1f mm tile"
msgstr ""
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr ""
+
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr ""
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr ""
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr ""
+
+msgid "No seams are marked on this layer."
+msgstr ""
+
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr ""
+
#, possible-c-format, possible-boost-format
-msgid "%d islands, %s faces"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] ""
+msgstr[1] ""
+
+#, possible-c-format, possible-boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr ""
+
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr ""
+
+msgid "Click an island on the canvas first, in Island mode."
+msgstr ""
+
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr ""
+
+msgid "Not signed in"
+msgstr ""
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr ""
+
+msgid "Create new project"
+msgstr ""
+
+msgid "Recently opened"
+msgstr ""
+
+msgid "Open Containing Folder"
msgstr ""
msgid "Forward"
msgstr ""
-msgid "Tools"
-msgstr ""
-
msgid "View Source"
msgstr ""
@@ -26348,6 +29959,58 @@ msgstr ""
msgid "Load %s"
msgstr ""
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, possible-boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr ""
+
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, possible-boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr ""
+
+msgid "File uploaded"
+msgstr ""
+
+msgid "Uploading G-code..."
+msgstr ""
+
+msgid "Starting print..."
+msgstr ""
+
+msgid "Print started"
+msgstr ""
+
+msgid "Uploading..."
+msgstr ""
+
+msgid "Network library version not specified"
+msgstr ""
+
+msgid "Network library not found"
+msgstr ""
+
+msgid "Failed to load network library"
+msgstr ""
+
+msgid "Network library failed to load"
+msgstr ""
+
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr ""
+
+msgid "unknown name"
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+
+msgid "Plugin permissions"
+msgstr ""
+
#, possible-c-format, possible-boost-format
msgid ""
"Plugin \"%s\" is requesting permission for the Python audit event \"%s\".\n"
@@ -26357,27 +30020,43 @@ msgstr ""
#, possible-c-format, possible-boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+msgstr[1] ""
#, possible-c-format, possible-boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+msgstr[1] ""
#, possible-c-format, possible-boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+msgstr[1] ""
#, possible-c-format, possible-boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+msgstr[1] ""
#, possible-c-format, possible-boost-format
msgid ""
@@ -26393,7 +30072,21 @@ msgstr ""
#, possible-c-format, possible-boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+msgstr[1] ""
+
+#, possible-c-format, possible-boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr ""
+
+#, possible-c-format, possible-boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
@@ -26404,6 +30097,36 @@ msgstr ""
msgid "Plugin permission request"
msgstr ""
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr ""
+
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr ""
+
+msgid "Printer connection"
+msgstr ""
+
+msgid "Pages"
+msgstr ""
+
+msgid "Analysis"
+msgstr ""
+
+msgid "Importer"
+msgstr ""
+
+msgid "Exporter"
+msgstr ""
+
+msgid "Visualization"
+msgstr ""
+
+msgid "Script"
+msgstr ""
+
+msgid "Slicing Pipeline"
+msgstr ""
+
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr ""
@@ -26420,7 +30143,272 @@ msgstr ""
msgid "The configuration could not be written to disk. Nothing was changed."
msgstr ""
-msgid "Plugin installation failed"
+#, possible-boost-format
+msgid "Plugin installation failed: %1%"
+msgstr ""
+
+#. TRN %1% is the plugin's cloud ID.
+#, possible-boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr ""
+
+msgid "Cloud plugin key is missing UUID."
+msgstr ""
+
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr ""
+
+msgid "Only cloud plugins can be unsubscribed."
+msgstr ""
+
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr ""
+
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, possible-boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr ""
+
+msgid "You are not authorized to download this cloud plugin."
+msgstr ""
+
+msgid "No plugin package is available for this operating system."
+msgstr ""
+
+msgid "The selected plugin version was not found."
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin version %1% was not found."
+msgstr ""
+
+msgid "Cloud plugin was not found."
+msgstr ""
+
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, possible-boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr ""
+
+msgid "Cloud plugin download was not found."
+msgstr ""
+
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr ""
+
+#, possible-boost-format
+msgid "Failed to download plugin: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr ""
+
+msgid "Plugin download returned empty data."
+msgstr ""
+
+msgid "Failed to create temporary file for plugin download."
+msgstr ""
+
+msgid "Failed to write plugin data to temporary file."
+msgstr ""
+
+#, possible-boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr ""
+
+#. TRN %1% is a folder path, %2% the system error message.
+#, possible-boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr ""
+
+#. TRN %1% and %2% are file names.
+#, possible-boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr ""
+
+#. TRN %1% and %2% are file names.
+#, possible-boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr ""
+
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr ""
+
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr ""
+
+#, possible-boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr ""
+
+#. TRN %1% is the dependency file, %2% the error detail.
+#, possible-boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin registration failed: %1%"
+msgstr ""
+
+msgid "Plugin module did not register any capabilities"
+msgstr ""
+
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, possible-boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr ""
+
+msgid "Plugin capability materialization failed"
+msgstr ""
+
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, possible-boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr ""
+
+msgid "Plugin on_load failed"
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr ""
+
+#. TRN %1% is a folder path, %2% the system error message.
+#, possible-boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr ""
+
+#. TRN %1% is a folder path, %2% the system error message.
+#, possible-boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr ""
+
+#. TRN %1% is a file path, %2% the system error message.
+#, possible-boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr ""
+
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, possible-boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr ""
+
+#, possible-boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr ""
+
+msgid "Plugin load is still in progress"
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin is invalid: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin not found: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr ""
+
+msgid "Unexpected plugin load failure"
+msgstr ""
+
+#, possible-boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr ""
+
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr ""
+
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr ""
+
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr ""
+
+msgid "Failed to download cloud plugin."
+msgstr ""
+
+msgid "Failed to install cloud plugin."
+msgstr ""
+
+msgid "Only cloud plugins can be updated."
+msgstr ""
+
+msgid "No update is available for this plugin."
+msgstr ""
+
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr ""
+
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr ""
+
+#, possible-boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr ""
+
+#, possible-boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr ""
+
+msgid "Cannot unsubscribe your own plugins."
+msgstr ""
+
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr ""
+
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr ""
+
+msgid "Plugin filesystem read permission request denied"
msgstr ""
msgid "Profile has fewer than 2 points"
@@ -26447,6 +30435,9 @@ msgstr ""
msgid "imported regions produced no extrudable geometry"
msgstr ""
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr ""
+
msgid "Failed to revolve"
msgstr ""
@@ -26474,6 +30465,9 @@ msgstr ""
msgid "Pocket cut failed"
msgstr ""
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr ""
+
msgid "sketch has no closed loop"
msgstr ""
@@ -26498,9 +30492,21 @@ msgstr ""
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr ""
+msgid "the fillet radius must be greater than 0"
+msgstr ""
+
+msgid "no edges to fillet in that group"
+msgstr ""
+
msgid "fillet radius too large for this geometry"
msgstr ""
+msgid "the chamfer distance must be greater than 0"
+msgstr ""
+
+msgid "no edges to chamfer in that group"
+msgstr ""
+
msgid "chamfer distance too large for this geometry"
msgstr ""
@@ -26510,6 +30516,121 @@ msgstr ""
msgid "apply_chamfer: OCCT chamfer failed"
msgstr ""
+msgid "empty component list"
+msgstr ""
+
+msgid "empty component index"
+msgstr ""
+
+#, possible-boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr ""
+
+#, possible-boost-format
+msgid "invalid component index \"%1%\""
+msgstr ""
+
+#, possible-boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr ""
+
+#, possible-boost-format
+msgid "duplicate component index %1%"
+msgstr ""
+
+msgid "empty ratio value"
+msgstr ""
+
+#, possible-boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr ""
+
+#, possible-boost-format
+msgid "invalid ratio \"%1%\""
+msgstr ""
+
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, possible-boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr ""
+
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr ""
+
+msgid "start and end ratios must be in (0, 1)"
+msgstr ""
+
+#, possible-boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr ""
+
+msgid "must be set when mixed filament parameters are specified"
+msgstr ""
+
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, possible-boost-format
+msgid "slot %1%: %2%"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr ""
+
+#, possible-boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr ""
+
+#, possible-boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr ""
+
+#. TRN %1% is the application name.
+#, possible-boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr ""
+
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, possible-boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr ""
+
+#, possible-boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr ""
+
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+
+msgid "import svg failed: could not open svg."
+msgstr ""
+
+msgid "import svg failed: could not parse imported svg data."
+msgstr ""
+
+msgid "Custom G-code reports negative z_retracted."
+msgstr ""
+
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr ""
+
+#, possible-boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr ""
+
msgid "Authentication complete"
msgstr ""
diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po
index b54974f840..879d094a63 100644
--- a/localization/i18n/ca/OrcaSlicer_ca.po
+++ b/localization/i18n/ca/OrcaSlicer_ca.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2025-03-15 10:55+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -413,8 +413,10 @@ msgid "Please wait"
msgstr "Espereu"
# AI Translated
-msgid "Reading"
-msgstr "Llegint"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Rack de Hotends d'Inducció: llegint %d/%d"
# AI Translated
msgid "Running..."
@@ -582,9 +584,12 @@ msgstr "Gizmo-Recolzar sobre la Cara"
msgid "Lay on Face"
msgstr "Recolzar sobre la Cara"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "El recompte de filaments supera el nombre màxim que admet l'eina de pintura. Només els primers filaments %1% estaran disponibles a l'eina de pintura."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "El nombre de filaments supera el màxim que admet l'eina de pintura. Només %1% filament (el primer) estarà disponible a l'eina de pintura."
+msgstr[1] "El nombre de filaments supera el màxim que admet l'eina de pintura. Només els primers %1% filaments estaran disponibles a l'eina de pintura."
msgid "Color Painting"
msgstr "Pintura en color"
@@ -638,8 +643,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Retorn"
-msgid "Shortcut Key "
-msgstr "Tecla de drecera "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Tecla de drecera %d"
# AI Translated
msgid "Triangle"
@@ -739,6 +746,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Selecció de part"
+msgid "Select multiple objects"
+msgstr "Seleccionar múltiples objectes"
+
msgid "Fixed step drag"
msgstr "Arrossegament de pas fix"
@@ -803,10 +813,79 @@ msgstr "Peça"
msgid "Relative"
msgstr "Relatiu"
+msgid "Selection"
+msgstr "Selecció"
+
+msgid "Plate"
+msgstr "Safata"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "Sistema de coordenades utilitzat per a les accions de transformació."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Alinear a l'esquerra"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Alinear al centre esquerra-dreta"
+
+# AI Translated
+msgid "Align right"
+msgstr "Alinear a la dreta"
+
+# AI Translated
+msgid "Align front"
+msgstr "Alinear al davant"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Alinear al centre davant-darrere"
+
+# AI Translated
+msgid "Align back"
+msgstr "Alinear al darrere"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Alinear a baix"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Alinear al centre dalt-baix"
+
+# AI Translated
+msgid "Align top"
+msgstr "Alinear a dalt"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Distribuir esquerra-dreta"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Distribuir davant-darrere"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Distribuir dalt-baix"
+
+msgid "Drop"
+msgstr "Deixar anar"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "Absolut"
@@ -912,9 +991,6 @@ msgstr "Angle del solc"
msgid "Cut position"
msgstr "Posició de tall"
-msgid "Build Volume"
-msgstr "Volum de construcció"
-
msgid "Multiple"
msgstr "Múltiple"
@@ -1093,11 +1169,19 @@ msgstr "Connector"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
-"Els objectes(%1%) tenen connectors duplicats. Poden faltar connectors al resultat del laminat.\n"
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"L'objecte (%1%) té connectors duplicats. Poden faltar connectors al resultat del laminat.\n"
+"Informeu l'equip d'OrcaSlicer sobre l'escenari en què s'ha produït aquest problema.\n"
+"Gràcies."
+msgstr[1] ""
+"Els objectes (%1%) tenen connectors duplicats. Poden faltar connectors al resultat del laminat.\n"
"Informeu l'equip d'OrcaSlicer sobre l'escenari en què s'ha produït aquest problema.\n"
"Gràcies."
@@ -1166,9 +1250,11 @@ msgid "Extra low"
msgstr "Extra baix"
# AI Translated
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d triangles"
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% triangle"
+msgstr[1] "%1% triangles"
msgid "Show wireframe"
msgstr "Mostra estructura de xarxa"
@@ -1179,6 +1265,17 @@ msgstr "No es pot aplicar quan es previsualitza el processament."
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Operació ja cancel·lada. Si us plau, espereu uns segons."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "S'ha cancel·lat la simplificació del model"
+
+msgid "Wiki Guide"
+msgstr "Guia Wiki"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Guia en vídeo"
+
msgid "Enforce seam"
msgstr "Força la costura"
@@ -1230,6 +1327,14 @@ msgstr "Posició sobre la superfície"
msgid "Emboss"
msgstr "Relleu"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "No hi ha cap tipus de lletra actiu a l'estil. Seleccioneu-ne un de correcte."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont no s'ha carregat correctament."
+
# AI Translated
msgid "NORMAL"
msgstr "NORMAL"
@@ -1883,11 +1988,25 @@ msgstr "Diàmetre"
msgid "Length"
msgstr "Longitut"
-msgid "Selection"
-msgstr "Selecció"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Cara 1 (Fixa)"
-msgid " (Moving)"
-msgstr " (Movent)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Cara 2 (Movent)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Punt 1 (Fix)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Punt 2 (Movent)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Selecció 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1903,14 +2022,9 @@ msgstr ""
"Seleccioneu 2 punts o cercles sobre objectes i \n"
" especifiqueu la distància entre ells."
-msgid "Face"
-msgstr "Cara"
-
-msgid " (Fixed)"
-msgstr " (Corregit)"
-
-msgid "Point"
-msgstr "Punt"
+# AI Translated
+msgid "Selection 2"
+msgstr "Selecció 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -2013,6 +2127,18 @@ msgstr "Entrant al gizmo d'Ensamblatge"
msgid "Leaving Assembly gizmo"
msgstr "Sortint del gizmo d'Ensamblatge"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Màj+"
@@ -2191,14 +2317,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"No s'ha pogut instal·lar el Microsoft WebView2 Runtime.\n"
"Algunes funcions, com ara l'auxiliar de configuració, poden aparèixer en blanc fins que estigui instal·lat.\n"
-"Instal·leu-lo manualment des de https://developer.microsoft.com/microsoft-edge/webview2/ i reinicieu Orca Slicer."
+"Instal·leu-lo manualment des de %1% i reinicieu Orca Slicer."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2441,6 +2568,66 @@ msgstr "Restricció del connector de xarxa"
msgid "Privacy Policy Update"
msgstr "Actualització de la política de privadesa"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Tots els vostres perfils de filament estan disponibles a les impressores per a les quals es van crear."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Migrar els perfils de filament"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 ha reestructurat molts perfils de filament del sistema per corregir perfils incorrectes i preparar funcions futures. Com a resultat, els perfils següents ja no apareixen en algunes de les impressores per a les quals es van crear. Disculpeu les molèsties; és una correcció única.\n"
+"\n"
+"Voleu tornar a afegir aquestes impressores als vostres perfils ara? Abans es farà una còpia de seguretat dels vostres perfils. També podeu fer-ho més tard des d'Ajuda > Migrar els perfils de filament."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (basat en %2%)"
+
+msgid "Don't remind me again"
+msgstr "No m'ho recordis més"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "No s'ha pogut fer una còpia de seguretat dels vostres perfils, de manera que no s'han migrat."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "No s'ha pogut bloquejar la carpeta de perfils d'usuari, de manera que no s'ha migrat res. Pot ser que una altra instància d'OrcaSlicer estigui desant perfils; torneu-ho a provar més tard des d'Ajuda > Migrar els perfils de filament."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"No s'han pogut migrar els vostres perfils de filament. S'ha desat una còpia de seguretat dels vostres perfils a:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"S'han migrat els vostres perfils de filament. Torneu-los a seleccionar a la llista de filaments on els utilitzàveu.\n"
+"\n"
+"S'ha desat una còpia de seguretat dels vostres perfils a:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "No s'han pogut migrar aquests perfils:"
+
# AI Translated
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
@@ -2572,6 +2759,9 @@ msgstr "S'han actualitzat els connectors."
msgid "Failed to refresh plugins: %s"
msgstr "No s'han pogut actualitzar els connectors: %s"
+msgid "Unknown error"
+msgstr "Error desconegut"
+
# AI Translated
msgid "Select plugin package"
msgstr "Seleccionar el paquet del connector"
@@ -3104,6 +3294,22 @@ msgstr "Torna-ho a carregar Tot"
msgid "Reload all from disk"
msgstr "torna a carregar-ho tot des del disc"
+# AI Translated
+msgid "Fix All"
+msgstr "Repara-ho tot"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Repara tots els models de la placa actual"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Repara totes les plaques"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Repara tots els models de totes les plaques"
+
msgid "Auto Rotate"
msgstr "Rota automàticament"
@@ -3155,8 +3361,13 @@ msgstr "(Color perdut)"
msgid "Center"
msgstr "Centre"
-msgid "Drop"
-msgstr "Deixar anar"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Alinear/Distribuir"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Alinear i distribuir objectes"
msgid "Edit Process Settings"
msgstr "Editar la configuració de Processat"
@@ -3455,6 +3666,13 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] "No s'ha pogut reparar el següent objecte del model"
msgstr[1] "No s'han pogut reparar els següents objectes del model"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d objecte del model no ha necessitat reparació."
+msgstr[1] "%1$d objectes del model no han necessitat reparació."
+
msgid "Repairing was canceled"
msgstr "S'ha cancel·lat la reparació"
@@ -3527,9 +3745,6 @@ msgstr "Sense Vora d'Adherència"
msgid "Outer wall speed"
msgstr "Velocitat del perímetre exterior"
-msgid "Plate"
-msgstr "Safata"
-
msgid "Brim"
msgstr "Vora d'Adherència"
@@ -3614,10 +3829,6 @@ msgstr "Afegir Plantilla Personalitzada"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Inserir la plantilla de G-code personalitzat al començament d'aquesta capa."
-# AI Translated
-msgid "Filament "
-msgstr "Filament "
-
msgid "Change filament at the beginning of this layer."
msgstr "Canviar el filament al principi d'aquesta capa."
@@ -3706,6 +3917,8 @@ msgstr "Canvia igualment"
msgid "Off"
msgstr "Apagat"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "Filtre"
@@ -3822,12 +4035,19 @@ msgid "Check filament location"
msgstr "Comprovar la localització del filament"
# AI Translated
-msgid "Switch"
-msgstr "Commutador"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Pausa"
# AI Translated
-msgid "hotend"
-msgstr "hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Canviar d'extrusor"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Canviar de hotend"
# AI Translated
msgid "Wait for AMS cooling"
@@ -4020,8 +4240,10 @@ msgid "Arranging"
msgstr "Organitzant"
# AI Translated
-msgid "Arranging "
-msgstr "Organitzant "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Organitzant %1%"
msgid "Arranging canceled."
msgstr "S'ha cancel·lat l'ordenació."
@@ -4060,8 +4282,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Orientant..."
-msgid "Orienting"
-msgstr "Orientant"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Orientant %1%"
msgid "Orienting canceled."
msgstr "Orientació cancel·lada."
@@ -4069,6 +4294,12 @@ msgstr "Orientació cancel·lada."
msgid "Filling"
msgstr "Omplint"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Omplint %1%"
+
msgid "Bed filling canceled."
msgstr "S'ha cancel·lat l'ompliment del llit."
@@ -4084,6 +4315,34 @@ msgstr "S'ha cancel·lat la cerca d'orientació."
msgid "Orientation found."
msgstr "S'ha trobat l'orientació."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Millor qualitat de superfície"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Optimitza la rotació de l'objecte per obtenir la millor qualitat de superfície."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Pendents de voladís reduïts"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Optimitza la rotació de l'objecte per tenir la mínima quantitat de voladissos que necessitin estructures de suport.\n"
+"Tingueu en compte que aquest mètode intentarà trobar la millor superfície de l'objecte per tocar el llit d'impressió si no s'ha definit cap elevació."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Alçada Z mínima"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Gira el model per obtenir l'alçada Z més baixa i un temps d'impressió més curt."
+
msgid "Logging in"
msgstr "Iniciant sessió"
@@ -4378,6 +4637,16 @@ msgstr "Projectes recents"
msgid "Go to Plate"
msgstr "Anar a la placa"
+msgid "Device"
+msgstr "Dispositiu"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Dispositiu (Web)"
+
+msgid "Multi-device"
+msgstr "Multidispositiu"
+
msgid "AMS Materials Setting"
msgstr "Configuració de materials AMS"
@@ -4402,11 +4671,9 @@ msgstr "El valor d'entrada ha de ser superior a %1% i inferior a %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Factors de Calibratge de les Dinàmiques de Flux"
-msgid "Wiki Guide"
-msgstr "Guia Wiki"
-
+# AI Translated
msgid "PA Profile"
-msgstr "Perfil PA( Pressure Advance )"
+msgstr "Perfil PA (Pressure Advance)"
msgid "Factor K"
msgstr "Factor K"
@@ -4434,6 +4701,14 @@ msgstr "Introduïu un valor vàlid (K a %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Introduïu un valor vàlid (K a %.1f~%.1f, N a %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Filaments preferits"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Tots els filaments"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4495,7 +4770,7 @@ msgstr "Desar"
msgctxt "Navigation"
msgid "Back"
-msgstr "Darrera"
+msgstr "Enrere"
msgid "Example"
msgstr "Exemple"
@@ -4755,11 +5030,11 @@ msgstr "El connector de xarxa s'ha instal·lat però no s'ha pogut carregar. Rei
msgid "Restart Required"
msgstr "Cal reiniciar"
-msgid "Please home all axes (click "
-msgstr "Si us plau, enviar a l'inici tots els eixos ( feu clic "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") per localitzar la posició del capçal. Això evita que el dispositiu es mogui més enllà del límit imprimible i causi desgast de l'equip."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Porteu tots els eixos a l'inici (feu clic a %1%) per localitzar la posició del capçal. Això evita que el dispositiu es mogui més enllà del límit imprimible i causi desgast de l'equip."
msgid "Go Home"
msgstr "Ves a l'inici"
@@ -4774,6 +5049,10 @@ msgstr "S'ha produït un error fatal: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Deseu el projecte i reinicieu el programa."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Excepció de C++ desconeguda."
+
msgid "Processing G-Code from previous file…"
msgstr "Processant el G-code del fitxer anterior..."
@@ -4998,6 +5277,14 @@ msgstr "Voleu ajustar-la automàticament al límit (%g mm)?"
msgid "Adjust"
msgstr "Ajustar"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"El rai i l'escut contra corrents d'aire no estan disponibles a les impressores de cinta.\n"
+"S'han desactivat."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5193,8 +5480,9 @@ msgstr "Pausa (coberta frontal despresa)"
msgid "Calibrating the micro lidar"
msgstr "Calibrant el micro lidar"
+# AI Translated
msgid "Calibrating flow ratio"
-msgstr "Calibrant proporció de flux"
+msgstr "Calibrant la relació de flux"
msgid "Pause (nozzle temperature malfunction)"
msgstr "Pausa (mal funcionament de temperatura del broquet)"
@@ -5671,8 +5959,9 @@ msgstr "Sense operació"
msgid "Retract"
msgstr "Retracció"
+# AI Translated
msgid "Unretract"
-msgstr "Sense retracció"
+msgstr "Desretracció"
msgid "Seam"
msgstr "Costura"
@@ -5839,9 +6128,6 @@ msgstr "Torna a tallar automàticament segons l'agrupació de filaments òptima;
msgid "Filament Grouping"
msgstr "Agrupació de filaments"
-msgid "Why this grouping"
-msgstr "Per què aquesta agrupació"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Col·loqueu els filaments a la impressora segons el resultat de l'agrupació."
@@ -5851,29 +6137,47 @@ msgstr "Consells:"
msgid "Current grouping of slice result is not optimal."
msgstr "L'agrupació actual del resultat de tall no és òptima."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Augment de %1%g de filament i %2% canvis respecte a l'agrupació òptima."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Augment de %1%g de filament i %2% canvi respecte a l'agrupació òptima."
+msgstr[1] "Augment de %1%g de filament i %2% canvis respecte a l'agrupació òptima."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Augment de %1%g de filament i estalvi de %2% canvis respecte a l'agrupació òptima."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Augment de %1%g de filament i estalvi de %2% canvi respecte a l'agrupació òptima."
+msgstr[1] "Augment de %1%g de filament i estalvi de %2% canvis respecte a l'agrupació òptima."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Estalvi de %1%g de filament i augment de %2% canvis respecte a l'agrupació òptima."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Estalvi de %1%g de filament i augment de %2% canvi respecte a l'agrupació òptima."
+msgstr[1] "Estalvi de %1%g de filament i augment de %2% canvis respecte a l'agrupació òptima."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Estalvi de %1%g de filament i %2% canvis respecte a una impressora amb un broquet."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Estalvi de %1%g de filament i %2% canvi respecte a una impressora amb un broquet."
+msgstr[1] "Estalvi de %1%g de filament i %2% canvis respecte a una impressora amb un broquet."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Estalvi de %1%g de filament i augment de %2% canvis respecte a una impressora amb un broquet."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Estalvi de %1%g de filament i augment de %2% canvi respecte a una impressora amb un broquet."
+msgstr[1] "Estalvi de %1%g de filament i augment de %2% canvis respecte a una impressora amb un broquet."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Augment de %1%g de filament i estalvi de %2% canvis respecte a una impressora amb un broquet."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Augment de %1%g de filament i estalvi de %2% canvi respecte a una impressora amb un broquet."
+msgstr[1] "Augment de %1%g de filament i estalvi de %2% canvis respecte a una impressora amb un broquet."
msgid "Set to Optimal"
msgstr "Estableix a l'òptim"
@@ -6032,11 +6336,60 @@ msgstr "Incrementar/reduir àrea edició"
msgid "Sequence"
msgstr "Seqüència"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Centre de massa de la placa"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Centre de massa de la peça"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Centre de massa del suport"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Centre de massa del muntatge"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Centre de massa de l'objecte"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Impressió acabada"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Imprès fins a la capa %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Pes"
+
+msgid "Volume"
+msgstr "Volum"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Centre dins la caixa delimitadora"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Mida de la caixa delimitadora"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Moment d'inèrcia"
+
msgid "Object selection"
msgstr "Selecció d'objecte"
-msgid "number keys"
-msgstr "tecles numèriques"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "Tecles numèriques 1~16"
msgid "Number keys can quickly change the color of objects"
msgstr "Les tecles numèriques poden canviar ràpidament el color dels objectes"
@@ -6189,8 +6542,9 @@ msgstr "Totes les plaques"
msgid "Stats"
msgstr "Estadístiques"
+# AI Translated
msgid "Slice"
-msgstr "Llesca"
+msgstr "Laminar"
# AI Translated
msgid "Review"
@@ -6245,9 +6599,20 @@ msgstr "Eixos"
msgid "Gridlines"
msgstr "Línies de la graella"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Etiquetes"
+# AI Translated
+msgid "Center of mass"
+msgstr "Centre de massa"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Mostrar el G-code en brut (només cinta)"
+
# AI Translated
msgid "Move section plane"
msgstr "Moure el pla de secció"
@@ -6297,7 +6662,7 @@ msgid "Size:"
msgstr "Mida:"
# AI Translated
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "S'han trobat conflictes de rutes de G-code a la capa %d, Z = %.2lfmm. Si us plau, separeu els objectes conflictius més lluny ( %s <-> %s )."
@@ -6317,21 +6682,19 @@ msgstr "No és compatible la impressió amb 2 o més filaments TPU."
msgid "Tool %d"
msgstr "Eina %d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "El filament %s està col·locat al %s, però el camí G-code generat supera el rang imprimible del %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Els filaments %s estan col·locats al %s, però el camí G-code generat supera el rang imprimible del %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "El filament %s està col·locat al %s, però el camí G-code generat supera el rang imprimible del %s."
+msgstr[1] "Els filaments %s estan col·locats al %s, però el camí G-code generat supera el rang imprimible del %s."
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "El filament %s està col·locat al %s, però el camí G-code generat supera l'alçada imprimible del %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Els filaments %s estan col·locats al %s, però el camí G-code generat supera l'alçada imprimible del %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "El filament %s està col·locat al %s, però el camí G-code generat supera l'alçada imprimible del %s."
+msgstr[1] "Els filaments %s estan col·locats al %s, però el camí G-code generat supera l'alçada imprimible del %s."
msgid "Open wiki for more information."
msgstr "Obriu la wiki per a més informació."
@@ -6339,9 +6702,12 @@ msgstr "Obriu la wiki per a més informació."
msgid "Only the object being edited is visible."
msgstr "Només és visible l'objecte que s'està editant."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Els filaments %s no es poden imprimir directament sobre la superfície d'aquesta placa."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "El filament %s no es pot imprimir directament sobre la superfície d'aquesta placa."
+msgstr[1] "Els filaments %s no es poden imprimir directament sobre la superfície d'aquesta placa."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "S'han detectat filaments PLA i PETG a la mescla. Ajusteu els paràmetres segons la Wiki per garantir la qualitat d'impressió."
@@ -6464,19 +6830,9 @@ msgstr "Preparació"
msgid "Preview"
msgstr "Previsualització"
-msgid "Device"
-msgstr "Dispositiu"
-
-msgid "Multi-device"
-msgstr "Multidispositiu"
-
msgid "Project"
msgstr "Projecte"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Dispositiu (Web)"
-
msgid "Yes"
msgstr "Sí"
@@ -6484,8 +6840,11 @@ msgstr "Sí"
msgid "No"
msgstr "No"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "es tancarà abans de crear un nou model. Vols continuar?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s es tancarà abans de crear un model nou. Voleu continuar?"
msgid "Print all"
msgstr "Imprimeix-ho tot"
@@ -6530,6 +6889,10 @@ msgstr "Assistent per a la instal·lació"
msgid "Show Configuration Folder"
msgstr "Mostra la Carpeta Configuració"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Recupereu els perfils de filament que una actualització de perfils ha eliminat de les impressores per a les quals es van crear"
+
# AI Translated
msgid "Troubleshoot Center"
msgstr "Centre de resolució de problemes"
@@ -6770,6 +7133,14 @@ msgstr "Mostra les línies de la graella"
msgid "Show Gridlines on plate"
msgstr "Mostra les línies de la graella a la placa"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Mostrar el capçal IDEX/IQEX"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Mostra la representació del capçal IDEX/IQEX al voltant de cada broquet actiu a la previsualització del G-code."
+
msgid "Reset Window Layout"
msgstr "Restableix el disseny de la finestra"
@@ -7409,6 +7780,8 @@ msgstr "Taxa"
msgid "Calculating..."
msgstr "Calculant..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Càmera"
@@ -7491,9 +7864,12 @@ msgstr "Descarregant..."
msgid "Cloud Slicing..."
msgstr "Laminat al núvol..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "A la cua de laminat al núvol, hi ha %s tasques per davant."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "A la cua de laminat al núvol, hi ha %d tasca per davant."
+msgstr[1] "A la cua de laminat al núvol, hi ha %d tasques per davant."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7524,6 +7900,11 @@ msgstr "Això només té efecte durant la impressió"
msgid "Silent"
msgstr "Silenciós"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Estàndard"
+
msgid "Sport"
msgstr "Esportiu"
@@ -7580,17 +7961,29 @@ msgstr "Puja Imatges"
msgid "Number of images successfully uploaded"
msgstr "Nombre d'imatges carregades correctament"
-msgid " upload failed"
-msgstr " la càrrega ha fallat"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "La pujada de %s ha fallat"
-msgid " upload config prase failed\n"
-msgstr " error a la càrrega de configuració\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Ha fallat l'anàlisi de la configuració de pujada de %s"
-msgid " No corresponding storage bucket\n"
-msgstr " No hi ha cub d'emmagatzematge corresponent\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: no hi ha cap cub d'emmagatzematge corresponent"
-msgid " cannot be opened\n"
-msgstr " no es pot obrir\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s no es pot obrir"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7608,26 +8001,22 @@ msgstr "S'ha produït un error en la pujada\n"
msgid "Obtaining instance_id failed\n"
msgstr "error en obtenir instance_id \n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"El resultat del comentari no es pot penjar per la següent raó:\n"
-"\n"
-"Codi d'error: "
-
-msgid "error message: "
-msgstr "missatge d'error: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"El resultat del vostre comentari no es pot pujar pels motius següents:\n"
"\n"
+" codi d'error: %d\n"
+" missatge d'error: %s\n"
"\n"
-"Voleu redirigir a la pàgina web per valorar-la?"
+"Voleu redirigir a la pàgina web per valorar-lo?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Algunes de les vostres imatges no s'han pogut penjar. Voleu redirigir a la pàgina web per valorar-la?"
@@ -8475,6 +8864,108 @@ msgstr "Veure tots els paràmetres de l'objecte"
msgid "Material settings"
msgstr "Configuració del Material"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Cada mode indica els capçals que hi participen i el rol que té cadascun. Feu clic al botó d'una eina per canviar-ne el rol cíclicament — passeu el ratolí per sobre d'un color de sota per veure què fa cada rol."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Afegir mode"
+
+# AI Translated
+msgid "Tools"
+msgstr "Eines"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Com s'anomena el mode al selector de mode IDEX/IQEX de la placa. Obligatori — un mode sense nom no es pot seleccionar."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Quins capçals participen en el mode i quin rol té cadascun. Feu clic en una casella per canviar-ne el rol cíclicament."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code que s'executa a l'inici de la impressió per posar la impressora en aquest mode (per exemple, una crida SET_PRINT_MODE de Klipper). El laminador només genera les trajectòries de l'eina principal (Primary); el firmware controla les altres."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Inactiu"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Principal"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Còpia"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Mirall"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Controla totes les trajectòries laminades. Sempre és l'eina 0 — feu servir \"Posició de l'eina 0\" a dalt per triar quina cantonada del llit ocupa. No es pot treure de la graella."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Segueix l'eina principal (Primary) a nivell de firmware i imprimeix les mateixes trajectòries desplaçades a la seva pròpia zona."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Segueix l'eina principal (Primary) a nivell de firmware i imprimeix les mateixes trajectòries reflectides respecte al límit entre les dues zones."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Marca una eina del pòrtic de l'eina principal (Primary) com a parella multicolor. Necessari per permetre la impressió multicolor en els modes amb pòrtics aparellats."
+
+# AI Translated
+msgid "Primary"
+msgstr "Principal"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Nom del mode (obligatori)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Nom d'aquest mode paral·lel, tal com apareix al selector de mode IDEX/IQEX de la placa. Es desa al projecte pel nom, de manera que si canvieu el nom d'un mode que ja fan servir les plaques, aquestes tornen al mode Principal (Primary). No pot estar buit — un nom en blanc se substitueix per un de generat."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code que s'emet una vegada a l'inici d'una impressió que fa servir aquest mode, abans del G-code d'arrencada de la màquina. Aquí és on es posa la impressora en el mode de firmware corresponent — per exemple, una crida SET_PRINT_MODE de Klipper o un M567 de RepRapFirmware —, ja que el laminador només genera les trajectòries de l'eina principal (Primary) i el firmware controla les eines de còpia i de mirall (Copy / Mirror). S'admeten placeholders; feu servir el botó d'edició per explorar-los. Deixeu-ho buit si el mode no necessita cap configuració del firmware."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Editar el G-code / explorar els placeholders"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Eliminar el mode"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Descartar les modificacions d'aquesta sessió en aquest mode (tornar al valor desat)"
+
msgid "Remove current plate (if not last one)"
msgstr "Treure la placa actual ( si no és l'última )"
@@ -8499,12 +8990,33 @@ msgstr "Editar el nom de la placa actual"
msgid "Move plate to the front"
msgstr "Mou la placa cap al davant"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "Mode IDEX/IQEX: %1% (perfil de processament: %2%) (clic esquerre per canviar-lo cíclicament, clic dret per al menú)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "Mode IDEX/IQEX: %1% (clic esquerre per canviar-lo cíclicament, clic dret per al menú)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Avís: aquesta placa fa servir un mode IDEX/IQEX paral·lel amb objectes multimaterial. Procediu amb precaució — comproveu que el vostre G-code gestiona correctament aquesta combinació."
+
msgid "Customize current plate"
msgstr "Personalitzar la placa actual"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "El broquet %s no pot imprimir %s."
+msgid "The left nozzle cannot print %s."
+msgstr "El broquet esquerre no pot imprimir %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "El broquet dret no pot imprimir %s."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8514,12 +9026,18 @@ msgstr "Imprimir filament de color mixt en una impressora d'un sol extrusor requ
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "No es recomana barrejar %1% amb %2% en la impressió.\n"
-msgid " nozzle"
-msgstr " broquet"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "No es recomana imprimir els filaments següents amb %1%: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "Broquet de %1%mm (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "No es recomana imprimir el filament següent amb %1%: %2%\n"
+msgstr[1] "No es recomana imprimir els filaments següents amb %1%: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "No es recomana utilitzar les combinacions de broquet i filament següents:\n"
@@ -8528,9 +9046,11 @@ msgstr "No es recomana utilitzar les combinacions de broquet i filament següent
msgid "%1% with %2%\n"
msgstr "%1% amb %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " placa %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Laminant la placa %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Nom no vàlid, no es permeten els següents caràcters:"
@@ -8565,12 +9085,6 @@ msgstr "AMS (1 ranura)"
msgid "Not installed"
msgstr "No instal·lat"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "El programari no admet l'ús de broquets de diàmetre diferent per a una impressió. Si els broquets esquerre i dret són inconsistents, només podem procedir amb impressió de capçal únic. Confirmeu quin broquet voleu utilitzar per a aquest projecte."
-
-msgid "Switch diameter"
-msgstr "Canvia el diàmetre"
-
msgid "Configuration incompatible"
msgstr "Configuració incompatible"
@@ -8653,6 +9167,10 @@ msgstr "Filament mixt"
msgid "Remove last mixed filament"
msgstr "Eliminar l'últim filament mixt"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Eliminar tots els filaments mixtos"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Afegir filament mixt"
@@ -8676,6 +9194,13 @@ msgstr "El filament mixt té referències de components trencades"
msgid "Edit / Delete / Merge"
msgstr "Editar / Esborrar / Fusionar"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Voleu eliminar %1% filament mixt?"
+msgstr[1] "Voleu eliminar tots els %1% filaments mixtos?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "El filament mixt de destinació utilitza aquest filament físic com a component. En fusionar-los s'eliminarà aquest filament físic i el filament mixt pot quedar no vàlid. Voleu continuar?"
@@ -8750,10 +9275,6 @@ msgstr "Carregant fitxer: %s"
msgid "Load 3MF"
msgstr "Carregar 3MF"
-# AI Translated
-msgid "BambuStudio Project"
-msgstr "Projecte de BambuStudio"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "El 3MF no és compatible amb OrcaSlicer, només carrega dades de geometria."
@@ -8785,20 +9306,6 @@ msgstr "És millor que actualitzeu el vostre programari.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "La versió de 3MF %s és més nova que la versió de %s %s, es suggereix que actualitzis el teu programari."
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "El 3MF s'ha creat amb BambuStudio (versió %s), que és més recent que la versió compatible %s. S'han trobat opcions no reconegudes:"
-
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "El 3MF s'ha creat amb BambuStudio (versió %s), que és més recent que la versió compatible %s. És possible que algunes opcions no siguin totalment compatibles."
-
-# AI Translated
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "El 3MF s'ha creat amb BambuStudio. És possible que algunes opcions difereixin de les d'OrcaSlicer."
-
msgid "Invalid values found in the 3MF:"
msgstr "Valors no vàlids trobats en el 3MF:"
@@ -8970,6 +9477,14 @@ msgstr "Voleu desactivar la caiguda automàtica per conservar el posicionament e
msgid "Object with floating parts was detected"
msgstr "S'ha detectat un objecte amb peces flotants"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "No es pot laminar: un objecte se superposa a una àrea reservada per a la impressió en paral·lel IDEX/IQEX (una zona secundària o una franja d'espai lliure del carro dins la zona principal)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "No es pot laminar: la Torre de Purga se superposa a una àrea reservada per a la impressió en paral·lel IDEX/IQEX (una zona secundària o una franja d'espai lliure del carro dins la zona principal)."
+
msgid "Another export job is running."
msgstr "S'està executant un altre treball d'exportació."
@@ -9023,8 +9538,9 @@ msgstr "Volums substituïts"
msgid "Please select a file"
msgstr "Seleccioneu un fitxer, si us plau"
-msgid "Do you want to replace it"
-msgstr "Voleu substituir-lo"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Voleu substituir-lo?"
msgid "Message"
msgstr "Missatge"
@@ -9054,6 +9570,50 @@ msgstr "Les dades no són vàlides"
msgid "Slicing Canceled"
msgstr "Laminat cancel·lat"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Conflicte de temperatura del llit: T%d (%s) fixa el llit a %d℃ — T%d (%s) requereix %d℃. L'eina principal controla el llit; les eines secundàries imprimeixen a la temperatura que aquesta fixi."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Els tipus de filament no coincideixen: T%d fa servir %s i T%d fa servir %s. Aquests materials tenen requisits incompatibles i no estan pensats per imprimir-se junts."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"La placa %d té actiu el mode paral·lel IDEX/IQEX amb els problemes següents:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Voleu continuar amb el laminat?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Avís del mode paral·lel IDEX/IQEX"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "No tornis a mostrar aquests avisos"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Placa %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"S'han detectat els problemes següents del mode paral·lel IDEX/IQEX:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Connector de xarxa canviat correctament."
@@ -9086,8 +9646,8 @@ msgid "Sync now"
msgstr "Sincronitza ara"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "No es pot desfer ni refer mentre s'executa una operació. Atureu-la primer."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "No es pot desfer ni refer mentre s'executa una operació. Atureu l'operació, o espereu que acabi i torneu-ho a provar."
# AI Translated
msgid ""
@@ -9158,6 +9718,14 @@ msgstr "S'ha produït un error en la baixada, excepció mida del Fitxer."
msgid "Project downloaded %d%%"
msgstr "Projecte descarregat %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"Les proves Línia PA (Pressure Advance) i Patró PA (Pressure Advance) encara no estan habilitades a les impressores de cinta.\n"
+"Feu servir el mètode Torre PA (Pressure Advance)."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Prova de Pressure Advance"
@@ -9165,11 +9733,15 @@ msgstr "Prova de Pressure Advance"
msgid "INFO:"
msgstr "INFORMACIÓ:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "No s'han proporcionat acceleracions per al calibratge. Utilitzar el valor d'acceleració predeterminat "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "No s'han proporcionat acceleracions per al calibratge. Utilitzar el valor d'acceleració predeterminat %1%mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "No s'han proporcionat velocitats per al calibratge. Utilitzar la velocitat òptima predeterminada "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "No s'han proporcionat velocitats per al calibratge. Utilitzar la velocitat òptima predeterminada %1%mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9184,6 +9756,15 @@ msgstr "Calibratge de flux YOLO d'Orca"
msgid "Flowrate Test - Pass%d"
msgstr "Prova de relació de flux - Passada %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "No hi ha cap torre de temperatura per a cinta disponible per al rang de %1% a %2%℃. Feu servir un rang que cobreixin els models de torre, per exemple de 230 a 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Torre de temperatura"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Prova de temperatura del broquet"
@@ -9207,11 +9788,16 @@ msgstr "Test de gestió de cantonades"
msgid "Import SLA archive"
msgstr "Importar fitxer SLA"
-msgid "The selected file"
-msgstr "El fitxer seleccionat"
-
-msgid "Does not contain valid G-code."
-msgstr "no conté G-code vàlid."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"El fitxer seleccionat:\n"
+"%1%\n"
+"no conté G-code vàlid."
msgid "An Error has occurred while loading the G-code file."
msgstr "Es produeix un error en carregar el fitxer de G-code"
@@ -9487,6 +10073,27 @@ msgstr "Actualment, el formulari de configuració de l'objecte no es pot utilitz
msgid "Not available"
msgstr "No disponible"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (cap placa)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — cap filament assignat\n"
+"Afegiu un extrusor a la pestanya Màquina perquè aquest capçal tingui una ranura de filament."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> filament %2%"
+
msgid "isometric"
msgstr "isomètrica"
@@ -9526,6 +10133,8 @@ msgstr "Europa"
msgid "North America"
msgstr "Nord-America"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "Altres"
@@ -9600,11 +10209,17 @@ msgstr "No s'ha pogut recarregar el connector de xarxa. Reinicieu l'aplicació."
msgid "Reload Failed"
msgstr "La recàrrega ha fallat"
-msgid "Associate"
-msgstr "Associar"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Associar %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "amb OrcaSlicer perquè Orca pugui obrir models des de"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Associar %s:// amb OrcaSlicer perquè Orca pugui obrir models des de %s"
msgid "Current Association: "
msgstr "Associació actual: "
@@ -9909,6 +10524,9 @@ msgstr "Recordar la darrera acció d'impressió"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Si s'activa, OrcaSlicer recordarà la darrera opció seleccionada al desplegable del botó d'impressió (p. ex. Imprimir, Exportar fitxer de la placa laminada, Exportar el fitxer del G-code) i la farà servir per defecte en el proper inici."
+msgid "Camera"
+msgstr "Càmera"
+
msgid "Touchpad"
msgstr "Ratolí tàctil"
@@ -10367,6 +10985,9 @@ msgstr "Versió del connector de xarxa"
msgid "Select the network plug-in version to use"
msgstr "Seleccioneu la versió del connector de xarxa a utilitzar"
+msgid "Associate"
+msgstr "Associar"
+
msgid "Associate files to OrcaSlicer"
msgstr "Associar fitxers a OrcaSlicer"
@@ -10419,6 +11040,12 @@ msgstr "Mostrar els perfils no compatibles"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Mostra els perfils incompatibles o no compatibles a les llistes desplegables d'impressora i de filament. Aquests perfils no es poden seleccionar."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "Funcions experimentals"
@@ -10710,10 +11337,6 @@ msgstr "Publicar 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Seleccioneu quines opcions es publicaran al fitxer 3MF"
-# AI Translated
-msgid "Video Guide"
-msgstr "Guia en vídeo"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Filament mixt - es publica com un conjunt quan se selecciona \"Activar\" a dalt"
@@ -10878,6 +11501,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Simple"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s de %s"
+
# AI Translated
msgid "Search actions"
msgstr "Cercar accions"
@@ -10995,6 +11624,10 @@ msgstr "Mostra detalls"
msgid "Hide details"
msgstr "Amagar els detalls"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "La vista web no està disponible."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11279,9 +11912,12 @@ msgstr "L'enviament ha fallat"
msgid "The name length exceeds the limit."
msgstr "La longitud del nom supera el límit."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Costa %dg de filament i %d canvis més que l'agrupació òptima."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Costa %dg de filament i %d canvi més que l'agrupació òptima."
+msgstr[1] "Costa %dg de filament i %d canvis més que l'agrupació òptima."
# AI Translated
msgid "Right-Ext"
@@ -11371,6 +12007,10 @@ msgstr "Alguns filaments poden canviar d'extrusor durant la impressió. El calib
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "Hi ha filament propens a fer fils en aquest fitxer. Per obtenir la millor qualitat d'impressió, us recomanem canviar la detecció d'acumulació al broquet al mode Automàtic."
+# AI Translated
+msgid "Switch"
+msgstr "Commutador"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Si el 'Calibratge Dinàmic de Flux' està establert a Automàtic/Activat, el sistema utilitzarà el valor de calibratge manual o el valor per defecte i ometrà el procés de calibratge de flux. Podeu fer un calibratge de flux manual per al filament TPU a la pàgina 'Calibratge'."
@@ -11681,6 +12321,10 @@ msgstr "No s'admet la sincronització entre transmissions d'extrusor diferents n
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Sincronitza la modificació de paràmetres amb els paràmetres corresponents d'un altre extrusor."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Els paràmetres amb aquesta icona es poden configurar per broquet."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Feu clic per restablir tots els paràmetres a l'última configuració desada."
@@ -11892,8 +12536,10 @@ msgstr "Desviació de cruïlla"
msgid "Jerk(XY)"
msgstr "Sacsejada( XY )-Jerk( XY )"
+# AI Translated
+# Needs human review: Raft renamed from 'Vora d'Adherència' (the Brim term) to 'Rai'; confirm the term.
msgid "Raft"
-msgstr "Vora d'Adherència"
+msgstr "Rai"
msgid "Filament for Supports"
msgstr "Filament de suport"
@@ -11914,6 +12560,9 @@ msgstr "Filament per a característiques"
msgid "Ooze prevention"
msgstr "Prevenció de degoteig"
+msgid "Others"
+msgstr "Altres"
+
msgid "Special mode"
msgstr "Ajustos especials"
@@ -11955,8 +12604,11 @@ msgstr[1] ""
"Les següents línies %s contenen paraules clau reservades.\n"
"Si us plau, elimineu-les o no serà possible la visualització del G-code i l'estimació del temps d'impressió."
-msgid "Reserved keywords found"
-msgstr "Trobades paraules clau reservades"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "S'han trobat paraules clau reservades a %1%"
msgid "Setting Overrides"
msgstr "Anul·lacions de configuració"
@@ -12054,8 +12706,9 @@ msgstr "La velocitat del ventilador de refrigeració de la peça serà màxima q
msgid "Auxiliary part cooling fan"
msgstr "Ventilador auxiliar de refrigeració de peces"
+# AI Translated
msgid "Exhaust fan"
-msgstr "Ventiladord'extracció"
+msgstr "Ventilador d'extracció"
msgid "During print"
msgstr "Durant la impressió"
@@ -12100,7 +12753,16 @@ msgstr "Espai imprimible"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Seleccioneu la implementació de l'agent de xarxa per a la comunicació amb la impressora. Els agents disponibles es registren a l'inici."
+# AI Translated
+msgid "Belt printer"
+msgstr "Impressora de cinta"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Transformacions del sistema de coordenades de la màquina"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Valor no vàlid proporcionat per al paràmetre %1%: %2%"
@@ -12218,9 +12880,29 @@ msgstr "Diàmetre del broquet( nozzle )"
msgid "Wipe tower"
msgstr "Torre de Purga"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Torre de purga de la cinta"
+
msgid "Single extruder multi-material parameters"
msgstr "Paràmetres d'extrusor únic multimaterial"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "Configuració IDEX/IQEX"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Avisos previs al laminat"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Mostra un quadre de diàleg d'avís abans de laminar si es detecten problemes del mode paral·lel IDEX/IQEX (conflictes de temperatura del llit, tipus de filament no coincidents, conflictes multimaterial). Es pot desactivar des del mateix quadre de diàleg. Torneu-lo a activar aquí si l'heu desactivat per error."
+
+# AI Translated
+msgid "Modes"
+msgstr "Modes"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Aquesta és una impressora de múltiples materials amb un sol extrusor, i els diàmetres de tots els extrusors es configuraran amb el nou valor. Vols continuar?"
@@ -12230,6 +12912,22 @@ msgstr "Límits d'alçada de capa"
msgid "Z-Hop"
msgstr "Z-Hop"
+# AI Translated
+msgid "Front-left"
+msgstr "Frontal esquerra"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Frontal dreta"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Posterior esquerra"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Posterior dreta"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -12252,22 +12950,37 @@ msgstr "Utilitza el valor modificat"
msgid "Detached"
msgstr "Separat"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% i %2% estan adjunts a aquesta impressora. Aquests perfils se suprimirien si se suprimeix la impressora."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "El perfil de Filament %d i el perfil de Procés %d estan adjunts a aquesta impressora. Aquests perfils se suprimirien si se suprimeix la impressora."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d perfil de filament"
+msgstr[1] "%d perfils de filament"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d perfil de processament"
+msgstr[1] "%d perfils de processament"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Els perfils heretats per altres perfils no es poden eliminar!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Els següent perfil hereta aquesta d'aquest altre."
-msgstr[1] "Els següents perfils hereten d'aquest perfil."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "El perfil següent hereta d'aquest perfil."
+msgstr[1] "Els perfils següents hereten d'aquest perfil."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% Perfil"
+msgid "Delete Preset"
+msgstr "Suprimir Perfil"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -12281,9 +12994,9 @@ msgstr ""
"Esteu segur que voleu suprimir el perfil seleccionat?\n"
"Si el perfil correspon a un filament que s'utilitza actualment a la impressora, restabliu la informació del filament per a aquesta ranura."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Segur que voleu %1% el perfil seleccionat?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Segur que voleu suprimir el perfil seleccionat?"
msgid "Select printers"
msgstr "Seleccioneu impressores"
@@ -12344,9 +13057,39 @@ msgid "Don't warn again for this preset"
msgstr "No tornar a avisar per a aquest perfil"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# Needs human review: Short tag of the Standard flow nozzle type; abbreviation derived from 'Flux estàndard'. Check it fits the tag and matches the printer's own labels.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "FE"
+
+# AI Translated
+# Needs human review: Short tag of the High Flow nozzle type; abbreviation derived from 'Alt flux'. Check it fits the tag and matches the printer's own labels.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "AF"
+
+# AI Translated
+# Needs human review: Short tag of the TPU High Flow nozzle type; abbreviation derived from 'TPU d'alt flux'. Check it fits the tag.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU AF"
+
+# AI Translated
+# Needs human review: Short tag of the E3D High Flow nozzle type; 'E3D High Flow' is kept in English elsewhere in the catalog, so the tag is unchanged. Confirm.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short tag of the Extra High Flow nozzle type; abbreviation derived from 'Flux extra alt'. Check it fits the tag.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "FEA"
# AI Translated
msgid "No modifications need to be copied."
@@ -12553,6 +13296,12 @@ msgstr "Un dels perfils no existeix"
msgid "Compared presets has different printer technology"
msgstr "Els perfils comparats tenen tecnologies d'impressora diferents"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" i \"%2%\""
+
msgid "Add File"
msgstr "Afegir arxiu"
@@ -12578,6 +13327,22 @@ msgstr "Llista de materials"
msgid "Assembly Guide"
msgstr "Guia de muntatge"
+# AI Translated
+msgid "Image files"
+msgstr "Fitxers d'imatge"
+
+# AI Translated
+msgid "TXT files"
+msgstr "Fitxers TXT"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "Fitxers EXCEL"
+
+# AI Translated
+msgid "PDF files"
+msgstr "Fitxers PDF"
+
msgid "Author"
msgstr "Autor"
@@ -12778,9 +13543,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Empenta total"
-msgid "Volume"
-msgstr "Volum"
-
msgid "Ramming line"
msgstr "Línia d'empenta"
@@ -12807,8 +13569,10 @@ msgstr "Multiplicador"
msgid "Flushing volumes for filament change"
msgstr "Volums de purga per al canvi de filament"
-msgid "Please choose the filament color"
-msgstr "Trieu el color del filament"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "de/a"
# AI Translated
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -12831,6 +13595,138 @@ msgstr "L'inici de sessió ha fallat. Torneu-ho a provar."
msgid "parse json failed"
msgstr "l'anàlisi del json ha fallat"
+# AI Translated
+msgid "Loading…"
+msgstr "Carregant…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Personalitzat"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Benvingut a Orca Slicer"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer es configurarà en diversos passos. Comencem!"
+
+msgid "Get Started"
+msgstr "Comença"
+
+msgid "Please select your login region"
+msgstr "Si us plau selecciona la teva regió d'inici de sessió"
+
+msgid "Finish"
+msgstr "Acabar"
+
+msgid "Printer Selection"
+msgstr "Selecció d'Impressora"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Fabricants"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Impressora personalitzada"
+
+msgid "Create"
+msgstr "Crear"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Cercar impressores noves"
+
+msgid "At least one printer must be selected."
+msgstr "S'ha de seleccionar almenys una impressora."
+
+# AI Translated
+msgid "New printers found"
+msgstr "S'han trobat impressores noves"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Fabricants d'impressores nous instal·lats: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "S'han trobat fabricants d'impressores nous, però s'ha cancel·lat la instal·lació."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "No s'han trobat impressores noves."
+
+msgid "Filament Selection"
+msgstr "Selecció de Filament"
+
+msgid "System Filaments"
+msgstr "Filaments del Sistema"
+
+msgid "Custom Filaments"
+msgstr "Filaments Personalitzats"
+
+msgid "Create New"
+msgstr "Crear Nou"
+
+msgid "Filament type"
+msgstr "Tipus de filament"
+
+msgid "Vendor"
+msgstr "Fabricant"
+
+# AI Translated
+msgid "No items"
+msgstr "Cap element"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Filtrar elements"
+
+# AI Translated
+msgid "Checked"
+msgstr "Marcats"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "No marcats"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Seleccionar els filtrats"
+
+msgid "Clear all"
+msgstr "Netejar tot"
+
+msgid "At least one filament must be selected."
+msgstr "S'ha de seleccionar almenys un filament."
+
+msgid "Do you want to use the default filament?"
+msgstr "Vols utilitzar el filament per defecte?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Això desactiva totes les funcions al núvol, inclosa la sincronització de perfils amb Orca Cloud. Els usuaris que prefereixin treballar completament fora de línia poden activar aquesta opció."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Nota: quan el Mode Sigil·lós està activat, no es farà cap còpia de seguretat dels vostres perfils d'usuari a Orca Cloud."
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "Activar el Mode Sigil·lós."
+
+msgid "Proprietary Plugins"
+msgstr "Connectors propietaris"
+
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Alguns proveïdors d'impressora requereixen connectors propietaris per comunicar-se amb les seves impressores. Si us plau selecciona el connector corresponent si utilitzes aquestes impressores."
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Tingues en compte que aquests connectors no són desenvolupats ni mantinguts per OrcaSlicer. S'han d'utilitzar a la teva discreció i risc."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Instal·lar connector Bambu Network"
+
msgid "[Action Required] "
msgstr "[Acció necessària] "
@@ -12901,9 +13797,6 @@ msgstr "Disponible mentre la vista 3D de la pestanya Preparació té el focus."
msgid "Select a part"
msgstr "Seleccionar una peça"
-msgid "Select multiple objects"
-msgstr "Seleccionar múltiples objectes"
-
msgid "Select objects by rectangle"
msgstr "Seleccionar objectes per rectangle"
@@ -13238,27 +14131,20 @@ msgstr "La versió del firmware és anormal. Cal reparar i actualitzar-lo abans
msgid "Extension Board"
msgstr "Targeta d'Ampliació"
-# AI Translated
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Separar en %1% peces"
-
msgid "Repair finished"
msgstr "Reparació finalitzada"
-msgid "Repair failed"
-msgstr "No s'ha pogut reparar."
-
-msgid "Repair canceled"
-msgstr "Reparació cancel·lada"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "La còpia del fitxer %1% a %2% ha fallat: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "S'estan descarregant perfils de fabricant nous: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "S'està descarregant el perfil de fabricant nou: %1%..."
+msgstr[1] "S'estan descarregant perfils de fabricant nous: %1%..."
# AI Translated
#, boost-format
@@ -13266,8 +14152,12 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Paquet de configuració: %1% actualitzat a %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "No s'han pogut descarregar els perfils de fabricant: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "No s'ha pogut descarregar el perfil de fabricant: %1%"
+msgstr[1] "No s'han pogut descarregar els perfils de fabricant: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Cal comprovar els canvis no desats abans de les actualitzacions de configuració."
@@ -13275,6 +14165,10 @@ msgstr "Cal comprovar els canvis no desats abans de les actualitzacions de confi
msgid "Open G-code file:"
msgstr "Obre el fitxer de G-code:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Ha fallat la generació de la Torre de Purga, possiblement perquè la primera capa està buida."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Un objecte té la capa inicial buida i no es pot imprimir. Si us plau, talleu el fons o activeu els suports."
@@ -13297,9 +14191,61 @@ msgstr "G-code de canvi de rol d'extrusió del procés"
msgid "Filament change extrusion role G-code"
msgstr "G-code de canvi de rol d'extrusió del filament"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"Ha fallat l'exportació del G-code a %1%.\n"
+"No es pot obrir el fitxer per escriure-hi."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "La carpeta %1% no existeix."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"Ha fallat l'exportació del G-code a %1%.\n"
+"El disc està ple?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"No s'ha pogut canviar el nom del fitxer G-code de sortida de %1% a %2%.\n"
+"Error: %3%\n"
+"Està bloquejat %1%?"
+
msgid "No object can be printed. It may be too small."
msgstr "No es pot imprimir cap objecte. Potser que sigui massa petit"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "El mode IDEX/IQEX \"%1%\" no té cap eina assignada a la impressora seleccionada. En lloc d'això, s'imprimeix en mode Principal (Primary). Assigneu les eines del mode a \"Configuració de la Impressora\", o trieu un altre mode amb el botó IDEX/IQEX de la placa."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Aquesta placa està configurada amb el mode IDEX/IQEX \"%1%\", que la impressora seleccionada no defineix. En lloc d'això, s'imprimeix en mode Principal (Primary). Trieu un mode amb el botó IDEX/IQEX de la placa, o restaureu el mode a \"Configuració de la Impressora\"."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Valor de miniatures no vàlid:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "La teva impressió és molt a prop de les regions de purga. Assegureu-vos que no hi ha col·lisions."
@@ -13346,6 +14292,10 @@ msgstr "Error d'agrupació: %1% no es pot col·locar al broquet esquerre"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Error d'agrupació: %1% no es pot col·locar al broquet dret"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "No s'ha trobat cap broquet vàlid. Comproveu el nombre de broquets."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Error d'agrupació en mode manual. Comproveu el nombre de broquets o reagrupeu."
@@ -13365,6 +14315,18 @@ msgstr "diverses interseccions amb un perímetre, només se n'ha utilitzat una (
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "un perímetre és completament dins d'un modificador; el modificador no s'hi ha aplicat (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "El modificador %1% \"%2%\" de \"%3%\" cobreix un perímetre sencer"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "El modificador %1% \"%2%\" de \"%3%\" (%4% en total) cobreix un perímetre sencer"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13379,9 +14341,47 @@ msgstr "el modificador \"%1%\" de \"%2%\" (%3% en total) no ha tingut cap efecte
msgid "Seam placement may differ from expected."
msgstr "La posició de la costura pot ser diferent de l'esperada."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Pont Interior"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() ha produït un espaiat negatiu. Heu definit alguna amplada d'extrusió massa petita?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() ha produït un flux negatiu. Heu definit alguna amplada d'extrusió massa petita?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "No s'ha pogut calcular l'amplada de línia de %1%. No es pot obtenir el valor de \"%2%\"."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Espaiat no vàlid subministrat a Flow::with_spacing( ), comproveu l'alçada de la capa i l'amplada d'extrusió"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "El fitxer 3mf seleccionat s'ha desat amb una versió més recent de %1% i no és compatible."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "El 3MF seleccionat conté un objecte amb suports FDM pintats creat amb una versió més recent de PrusaSlicer i no és compatible."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "El 3MF seleccionat conté un objecte amb costura pintada creat amb una versió més recent de PrusaSlicer i no és compatible."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "El 3MF seleccionat conté un objecte amb multimaterial pintat creat amb una versió més recent de PrusaSlicer i no és compatible."
+
msgid "undefined error"
msgstr "error indefinit"
@@ -13476,6 +14476,56 @@ msgstr "ha fallat la validació"
msgid "write callback failed"
msgstr "la trucada de recuperació de l'escriptura ha fallat"
+# AI Translated
+msgid "unknown error"
+msgstr "error desconegut"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Les impressions multicolor en els modes paral·lels IDEX/IQEX requereixen que cada filament tingui el seu propi extrusor físic dedicat. Dos o més dels filaments actius es dirigeixen al mateix capçal físic mitjançant el mapa d'extrusors físics de la impressora (un col·lector MMU/AFC), que el pòrtic esclau no pot seguir."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "El mode IDEX/IQEX actiu no defineix cap eina principal, de manera que no es pot planificar la impressió multicolor. Obriu l'editor de modes IDEX/IQEX a la configuració de la impressora i assigneu el rol Principal (Primary) a una eina."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "El multicolor en aquest mode no és un escenari d'impressió en paral·lel — totes les eines actives són en un sol pòrtic, de manera que no hi ha cap segon pòrtic que en faci la còpia o el mirall. Canvieu la placa al mode Principal (Primary) per imprimir en multicolor en un sol pòrtic, o definiu un mode IDEX/IQEX que inclogui eines d'un segon pòrtic."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Les impressions multicolor en els modes paral·lels IDEX/IQEX requereixen una eina Span al pòrtic de l'eina principal — sense ella, el mode no declara cap parella multicolor dins del pòrtic. Reduïu la impressió a un sol filament, canvieu al mode Principal (Primary), o obriu l'editor de modes IDEX/IQEX a la configuració de la impressora i marqueu una eina del pòrtic de l'eina principal com a Span."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "En aquest mode Span, els colors només els imprimeix %1%, però el filament %2% no està assignat a cap eina. Feu servir filaments assignats a %1%, o canvieu aquesta placa al mode Principal (Primary)."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "En aquest mode Span, els colors només els imprimeix %1%, però el filament %2% està assignat a T%3%. Feu servir filaments assignats a %1%, o canvieu aquesta placa al mode Principal (Primary)."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"No es pot carregar el perfil seleccionat: %1%\n"
+"\tMotiu: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"No s'ha pogut carregar el fitxer de perfil: %1%\n"
+"\tMotiu: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% està massa a prop de l'àrea d'exclusió, pot haver-hi col·lisions en imprimir."
@@ -13492,27 +14542,34 @@ msgstr "%1% és massa alt i es provocaran col·lisions."
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "La posició relativa del model i la Torre de Purga no compleix els requisits de la funció \"Sense capes poc denses\". Ajusteu-ne les posicions relatives, reduïu l'alçada del model o desactiveu \"Sense capes poc denses\"."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " està massa a prop de l'àrea d'exclusió, pot haver-hi col·lisions en imprimir."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " és massa a prop de l'àrea de detecció d'acumulació, pot haver-hi col·lisions durant la impressió."
-
-msgid "Prime Tower"
-msgstr "Torre de Purga"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " està massa a prop dels altres, i es poden causar col·lisions.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " està massa a prop de la zona d'exclusió, i es provocaran col·lisions.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " és massa a prop de l'àrea de detecció d'acumulació i es causaran col·lisions.\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% està massa a prop de l'àrea de detecció d'acumulació. Pot haver-hi col·lisions durant la impressió."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " està parcialment fora de l'àrea imprimible, i no es pot imprimir.\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "La Torre de Purga està massa a prop dels altres, i es poden causar col·lisions.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "La Torre de Purga està massa a prop d'una zona d'exclusió, i es provocaran col·lisions.\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "La Torre de Purga està massa a prop de l'àrea de detecció d'acumulació, i es provocaran col·lisions.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "La Torre de Purga està massa a prop d'una zona d'exclusió. Pot haver-hi col·lisions durant la impressió."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "La Torre de Purga està massa a prop de l'àrea de detecció d'acumulació. Pot haver-hi col·lisions durant la impressió."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "La Torre de Purga està parcialment fora de l'àrea imprimible, i no es pot imprimir.\n"
# AI Translated
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
@@ -13529,6 +14586,58 @@ msgstr "Si tot i així voleu imprimir, podeu activar l'opció a Preferències /
msgid "No extrusions under current settings."
msgstr "No hi ha extrusions a la configuració actual."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Els filaments mixtos no s'admeten en els modes paral·lels IDEX/IQEX. Canvieu aquesta placa al mode Principal (Primary)."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "El mode IDEX/IQEX \"%1%\" imprimeix amb T%2%, però cap dels filaments d'aquesta placa està en una eina configurada. Assigneu un filament carregat a T%2%, o canvieu aquesta placa al mode Principal (Primary)."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "El mode IDEX/IQEX \"%1%\" imprimeix amb T%2%, però els filaments d'aquesta placa són a %3%. Assigneu un filament carregat a T%2%, o canvieu aquesta placa al mode Principal (Primary)."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "El rai no és compatible amb el mode d'impressora de cinta."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "L'escut contra corrents d'aire no és compatible amb el mode d'impressora de cinta."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "La Vora d'Adherència no és compatible amb el mode Gerro en Espiral en una impressora de cinta. Desactiveu-ne una de les dues opcions."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "La cinta és massa inclinada per a una Vora d'Adherència, així que no se'n generarà cap."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Només es genera una Vora d'Adherència quan la cinta està inclinada. Establiu un angle d'inclinació de la cinta, o elimineu el paràmetre de la Vora d'Adherència."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Les impressores de cinta només admeten la Vora d'Adherència exterior i interior. Les opcions Automàtic, Orella de ratolí i Pintat s'imprimeixen com a \"Només la Vora d'Adherència exterior\", amb l'\"Ample de la Vora d'Adherència\"."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "\"Espai entre la Vora d'Adherència i l'objecte\" separa la Vora d'Adherència frontal de la vora d'atac de l'objecte, que és la vora que ha d'ancorar. Poseu l'espai a 0 quan feu servir la longitud de la Vora d'Adherència frontal."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "\"Longitud de la Vora d'Adherència frontal\" s'estén per davant de cada objecte al llarg de la cinta, i \"Ordenar\" no reserva aquest espai. Deixeu espai entre els objectes."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "La Vora d'Adherència \"Només a la vora d'atac\" s'aplica a les impressores de cinta. En aquesta impressora s'imprimeix com una Vora d'Adherència exterior normal."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "S'està utilitzant un filament mixt amb degradat, però 'Subcapa de color mixt' està desactivat. El degradat no s'imprimirà."
@@ -13539,6 +14648,18 @@ msgstr "El mode suau de timelapse no està permès quan la seqüència \"Per obj
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "La detecció d'acumulació no és compatible quan la seqüència \"per objecte\" està activada."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "La torre de purga de la cinta no es genera amb la seqüència d'impressió \"Objecte\"; els canvis de filament no es purgaran."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "La torre de purga de la cinta està activada, però el projecte no té cap objecte de torre de purga; els canvis de filament no es purgaran. Obriu el projecte a l'aplicació per generar la torre."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "El projecte conté diverses torres de purga de la cinta gestionades. Torneu a carregar la placa, o desactiveu i torneu a activar la torre de purga de la cinta per regenerar-la."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Activar tant l'alçada Z precisa com la torre de purga pot causar errors de tall."
@@ -13555,10 +14676,6 @@ msgstr "El mode Gerro en Espiral no funciona quan un objecte conté més d'un ma
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Tot i que l'objecte %1% s'adapta al volum de construcció, la seva última capa supera l'alçada màxima del volum de construcció."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "L'objecte %1% supera l'alçada màxima del volum de construcció."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Tot i que l'objecte %1% s'adapta al volum de construcció, la seva última capa supera l'alçada màxima del volum de construcció."
@@ -13566,6 +14683,10 @@ msgstr "Tot i que l'objecte %1% s'adapta al volum de construcció, la seva últi
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Potser voleu reduir la mida del model o canviar la configuració d'impressió actual i tornar-ho a provar."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "L'objecte %1% supera l'alçada màxima del volum de construcció."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Alçada de Capa Variable no és compatible amb suports Orgànics."
@@ -13597,8 +14718,9 @@ msgstr "La Torre de Purga requereix que el \"distància de suport\" sigui múlti
msgid "A prime tower requires that all objects have the same layer height."
msgstr "La Torre de Purga requereix que tots els objectes tinguin les mateixes alçades de capa"
+# AI Translated
msgid "A prime tower requires that all objects are printed over the same number of raft layers."
-msgstr "La Torre de Purga requereix que tots els objectes s'imprimeixin sobre el mateix nombre de capes de Vora d'Adherència"
+msgstr "La Torre de Purga requereix que tots els objectes s'imprimeixin sobre el mateix nombre de capes del rai."
msgid "The prime tower is only supported for multiple objects if they are printed with the same support_top_z_distance."
msgstr "La torre de neteja només s'admet per a diversos objectes si s'imprimeixen amb el mateix support_top_z_distance"
@@ -13724,6 +14846,10 @@ msgstr "El model de Pressure Advance adaptatiu d'un o més extrusors pot conteni
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "La contracció del filament no s'utilitzarà perquè la contracció del filament per als filaments utilitzats difereix significativament."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "La impressió és buida. El model no es pot imprimir amb la configuració d'impressió actual."
+
msgid "Generating skirt & brim"
msgstr "Generant Faldilla i Vora d'Adherència"
@@ -13743,6 +14869,17 @@ msgstr "Exportant el G-code"
msgid "Generating G-code"
msgstr "Generant el G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "No s'ha pogut processar el fitxer G-code %1% del fitxer 3MF anterior."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "La torre de purga de la cinta no pot absorbir el volum de purga complet: no s'han pogut purgar %1% mm³ en total (pitjor capa: %2% mm³ a l'alçada %3%). La impressió pot mostrar barreja de colors. Augmenteu l'amplada de la torre de purga de la cinta o reduïu els volums de purga."
+
msgid "Processing of the filename_format template failed."
msgstr "Error en el processament de la plantilla filename_format."
@@ -14195,8 +15332,9 @@ msgstr ""
"\n"
"Aquesta opció funciona especialment bé combinada amb l'opció de segon pont intern sobre el farciment, per millorar encara més els ponts abans d'extrudir el farciment sòlid."
+# AI Translated
msgid "Bridge flow ratio"
-msgstr "Ratio de flux del pont"
+msgstr "Relació de flux del pont"
# AI Translated
msgid ""
@@ -14218,16 +15356,17 @@ msgid ""
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
-"Amplada de línia del Pont. Si s'expressa en %, es calcularà sobre el diàmetre del broquet.\n"
-"Es recomana utilitzar-la amb una densitat de Pont o una relació de flux del Pont més altes.\n"
+"Amplada de línia del pont. Si s'expressa en %, es calcularà sobre el diàmetre del broquet.\n"
+"Es recomana utilitzar-la amb una densitat de pont o una relació de flux del pont més altes.\n"
"\n"
"El valor màxim és el 100% o el diàmetre del broquet.\n"
-"Si s'estableix a 0, l'amplada de línia coincidirà amb l'amplada del farciment sòlid intern."
+"Si s'estableix a 0, l'amplada de línia coincidirà amb l'amplada del farciment sòlid intern, o amb el diàmetre del broquet en els ponts gruixuts."
+# AI Translated
msgid "Internal bridge flow ratio"
-msgstr "Ratio de flux del pont intern"
+msgstr "Relació de flux del pont intern"
# AI Translated
msgid ""
@@ -14243,8 +15382,9 @@ msgstr ""
"\n"
"El flux de pont real utilitzat es calcula multiplicant aquest valor per la relació de flux del filament i, si està establerta, per la relació de flux de l'objecte."
+# AI Translated
msgid "Top surface flow ratio"
-msgstr "Ratio de flux superficial superior"
+msgstr "Relació de flux superficial superior"
msgid ""
"This factor affects the amount of material for top solid infill. You can decrease it slightly to have smooth surface finish.\n"
@@ -14255,8 +15395,9 @@ msgstr ""
"\n"
"El flux real de la superfície superior s'utilitza calculant la multiplicació d'aquest valor amb la relació de flux del filament i, si està configurada, la relació de flux de l'objecte."
+# AI Translated
msgid "Bottom surface flow ratio"
-msgstr "Ratio de flux superficial inferior"
+msgstr "Relació de flux superficial inferior"
msgid ""
"This factor affects the amount of material for bottom solid infill.\n"
@@ -14267,15 +15408,19 @@ msgstr ""
"\n"
"El cabal de farciment sòlid inferior real utilitzat es calcula multiplicant aquest valor per la relació de flux de filament i, si s'estableix, la relació de flux de l'objecte."
+# AI Translated
msgid "Set other flow ratios"
-msgstr "Estableix altres proporcions de flux"
+msgstr "Estableix altres relacions de flux"
+# AI Translated
msgid "Change flow ratios for other extrusion path types."
-msgstr "Canvia les proporcions de flux per a altres tipus de camí d'extrusió."
+msgstr "Canvia les relacions de flux per a altres tipus de camí d'extrusió."
+# AI Translated
msgid "First layer flow ratio"
-msgstr "Proporció de flux de la primera capa"
+msgstr "Relació de flux de la primera capa"
+# AI Translated
msgid ""
"This factor affects the amount of material on the first layer for the extrusion path roles listed in this section.\n"
"\n"
@@ -14283,11 +15428,13 @@ msgid ""
msgstr ""
"Aquest factor afecta la quantitat de material a la primera capa per als rols de camí d'extrusió llistats en aquesta secció.\n"
"\n"
-"Per a la primera capa, la proporció de flux real per a cada rol de camí (no afecta vores i faldilles) es multiplicarà per aquest valor."
+"Per a la primera capa, la relació de flux real per a cada rol de camí (no afecta vores i faldilles) es multiplicarà per aquest valor."
+# AI Translated
msgid "Outer wall flow ratio"
-msgstr "Proporció de flux de la paret exterior"
+msgstr "Relació de flux de la paret exterior"
+# AI Translated
msgid ""
"This factor affects the amount of material for outer walls.\n"
"\n"
@@ -14295,11 +15442,13 @@ msgid ""
msgstr ""
"Aquest factor afecta la quantitat de material per a les parets exteriors.\n"
"\n"
-"El flux real de la paret exterior es calcula multiplicant aquest valor per la proporció de flux del filament i, si està establert, per la proporció de flux de l'objecte."
+"El flux real de la paret exterior es calcula multiplicant aquest valor per la relació de flux del filament i, si està establerta, per la relació de flux de l'objecte."
+# AI Translated
msgid "Inner wall flow ratio"
-msgstr "Proporció de flux de la paret interior"
+msgstr "Relació de flux de la paret interior"
+# AI Translated
msgid ""
"This factor affects the amount of material for inner walls.\n"
"\n"
@@ -14307,11 +15456,13 @@ msgid ""
msgstr ""
"Aquest factor afecta la quantitat de material per a les parets interiors.\n"
"\n"
-"El flux real de la paret interior es calcula multiplicant aquest valor per la proporció de flux del filament i, si està establert, per la proporció de flux de l'objecte."
+"El flux real de la paret interior es calcula multiplicant aquest valor per la relació de flux del filament i, si està establerta, per la relació de flux de l'objecte."
+# AI Translated
msgid "Overhang flow ratio"
-msgstr "Proporció de flux per a voladissos"
+msgstr "Relació de flux per a voladissos"
+# AI Translated
msgid ""
"This factor affects the amount of material for overhangs.\n"
"\n"
@@ -14319,11 +15470,13 @@ msgid ""
msgstr ""
"Aquest factor afecta la quantitat de material per als voladissos.\n"
"\n"
-"El flux real dels voladissos es calcula multiplicant aquest valor per la proporció de flux del filament i, si està establert, per la proporció de flux de l'objecte."
+"El flux real dels voladissos es calcula multiplicant aquest valor per la relació de flux del filament i, si està establerta, per la relació de flux de l'objecte."
+# AI Translated
msgid "Sparse infill flow ratio"
-msgstr "Proporció de flux del farciment dispers"
+msgstr "Relació de flux del farciment dispers"
+# AI Translated
msgid ""
"This factor affects the amount of material for sparse infill.\n"
"\n"
@@ -14331,11 +15484,13 @@ msgid ""
msgstr ""
"Aquest factor afecta la quantitat de material per al farciment dispers.\n"
"\n"
-"El flux real del farciment dispers es calcula multiplicant aquest valor per la proporció de flux del filament i, si està establert, per la proporció de flux de l'objecte."
+"El flux real del farciment dispers es calcula multiplicant aquest valor per la relació de flux del filament i, si està establerta, per la relació de flux de l'objecte."
+# AI Translated
msgid "Internal solid infill flow ratio"
-msgstr "Proporció de flux del farciment sòlid intern"
+msgstr "Relació de flux del farciment sòlid intern"
+# AI Translated
msgid ""
"This factor affects the amount of material for internal solid infill.\n"
"\n"
@@ -14343,11 +15498,13 @@ msgid ""
msgstr ""
"Aquest factor afecta la quantitat de material per al farciment sòlid intern.\n"
"\n"
-"El flux real del farciment sòlid intern es calcula multiplicant aquest valor per la proporció de flux del filament i, si està establert, per la proporció de flux de l'objecte."
+"El flux real del farciment sòlid intern es calcula multiplicant aquest valor per la relació de flux del filament i, si està establerta, per la relació de flux de l'objecte."
+# AI Translated
msgid "Gap fill flow ratio"
-msgstr "Proporció de flux del farciment d'espais"
+msgstr "Relació de flux del farciment d'espais"
+# AI Translated
msgid ""
"This factor affects the amount of material for filling the gaps.\n"
"\n"
@@ -14355,11 +15512,13 @@ msgid ""
msgstr ""
"Aquest factor afecta la quantitat de material per al farciment d'espais.\n"
"\n"
-"El flux real del farciment d'espais es calcula multiplicant aquest valor per la proporció de flux del filament i, si està establert, per la proporció de flux de l'objecte."
+"El flux real del farciment d'espais es calcula multiplicant aquest valor per la relació de flux del filament i, si està establerta, per la relació de flux de l'objecte."
+# AI Translated
msgid "Support flow ratio"
-msgstr "Proporció de flux del suport"
+msgstr "Relació de flux del suport"
+# AI Translated
msgid ""
"This factor affects the amount of material for support.\n"
"\n"
@@ -14367,11 +15526,13 @@ msgid ""
msgstr ""
"Aquest factor afecta la quantitat de material per al suport.\n"
"\n"
-"El flux real del suport es calcula multiplicant aquest valor per la proporció de flux del filament i, si està establert, per la proporció de flux de l'objecte."
+"El flux real del suport es calcula multiplicant aquest valor per la relació de flux del filament i, si està establerta, per la relació de flux de l'objecte."
+# AI Translated
msgid "Support interface flow ratio"
-msgstr "Proporció de flux de la interfície de suport"
+msgstr "Relació de flux de la interfície de suport"
+# AI Translated
msgid ""
"This factor affects the amount of material for the support interface.\n"
"\n"
@@ -14379,7 +15540,7 @@ msgid ""
msgstr ""
"Aquest factor afecta la quantitat de material per a la interfície de suport.\n"
"\n"
-"El flux real de la interfície de suport es calcula multiplicant aquest valor per la proporció de flux del filament i, si està establert, per la proporció de flux de l'objecte."
+"El flux real de la interfície de suport es calcula multiplicant aquest valor per la relació de flux del filament i, si està establerta, per la relació de flux de l'objecte."
msgid "Precise wall"
msgstr "Perímetre precís"
@@ -14509,10 +15670,10 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Activeu aquesta opció per alentir la impressió en àrees on els perímetres s'hagin pogut corbar cap amunt.\n"
-"Per exemple, s'aplicarà una alentiment addicional en imprimir voladissos en cantonades pronunciades, com ara la proa del casc del Benchy, cosa que redueix el corbament que s'acumula al llarg de diverses capes.\n"
+"Per exemple, s'aplicarà un alentiment addicional en imprimir voladissos en cantonades pronunciades, com ara la proa del casc del Benchy, cosa que redueix el corbament que s'acumula al llarg de diverses capes.\n"
"\n"
"En general es recomana tenir aquesta opció activada, tret que la refrigeració de la impressora sigui prou potent o la velocitat d'impressió prou baixa com perquè no es produeixi corbament dels perímetres. \n"
"Si s'imprimeix amb una velocitat alta de perímetre exterior, aquest paràmetre pot introduir defectes als perímetres en alentir, a causa de la variació potencialment gran de velocitats d'impressió, que fa que l'extrusor no pugui seguir el canvi de flux sol·licitat.\n"
@@ -14521,22 +15682,23 @@ msgstr ""
"Recomanacions en activar aquesta opció:\n"
"1. Reduïu el temps de suavitzat de Pressure Advance a 0,015 - 0,02 perquè l'extrusor reaccioni ràpidament als canvis de velocitat.\n"
"2. Augmenteu les velocitats d'impressió mínimes per limitar la magnitud de l'alentiment i reduir la variació entre segments ràpids i lents.\n"
-"3. Si encara apareixen defectes, activeu el Suavitzat del Ritme d'Extrusió (ERS) per suavitzar encara més les transicions de flux.\n"
+"3. Si encara apareixen defectes, activeu el Suavitzat de la velocitat d'extrusió (ERS) per suavitzar encara més les transicions de flux.\n"
"\n"
"Nota: quan aquesta opció està activada, els perímetres de voladís es tracten com a voladissos, cosa que vol dir que s'aplica la velocitat de voladís fins i tot si el perímetre en voladís forma part d'un pont.\n"
-"Per exemple, quan els perímetres estan en voladís al 100%, sense cap perímetre que els aguanti per sota, s'aplicarà la velocitat de voladís del 100%."
+"Per exemple, quan els perímetres estan en voladís al 100%, sense cap perímetre que els aguanti per sota, s'aplicarà la velocitat de voladís del 75%, limitada per la velocitat de pont."
msgid "mm/s or %"
msgstr "mm/s o %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Velocitat de les extrusions del pont visibles externament.\n"
"\n"
-"A més, si l'opció de Reduir la velocitat per als perímetres corbats està desactivada o el mode clàssic de voladís està activat, aquesta serà la velocitat d'impressió per a les parets de voladís que estan suportades per menys del 13%, ja sigui que formin part d'un pont o d'un voladís."
+"A més, si l'opció \"Alentir la velocitat per a perímetres corbats\" està desactivada, aquesta serà la velocitat d'impressió per a les parets de voladís que estan suportades per menys del 13%, ja sigui que formin part d'un pont o d'un voladís."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Velocitat dels ponts interns. Si el valor s'expressa com un percentatge, es calcularà en funció de la velocitat del pont (bridge_speed). El valor per defecte és del 150%."
@@ -14544,12 +15706,56 @@ msgstr "Velocitat dels ponts interns. Si el valor s'expressa com un percentatge,
msgid "This is the distance from the model to the outermost brim line."
msgstr "Distància del model a la línia de la Vora d'Adherència més exterior"
+# AI Translated
+msgid "Leading brim length"
+msgstr "Longitud de la Vora d'Adherència frontal"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Només per a impressores de cinta. Estén la Vora d'Adherència PER DAVANT de l'objecte al llarg de la cinta, a cada vora orientada cap avall de la seva àrea de contacte - tant el primer contacte de l'objecte amb la cinta com qualsevol illa que hi arribi més tard. Aquest davantal es diposita sobre la cinta abans que l'objecte hi arribi, de manera que la vora d'atac ja té on agafar-se.\n"
+"\n"
+"Es mesura sobre la superfície de la cinta i s'afegeix a l'\"Ample de la Vora d'Adherència\": la Vora d'Adherència arriba a \"Espai entre la Vora d'Adherència i l'objecte\" + \"Longitud de la Vora d'Adherència frontal\" + \"Ample de la Vora d'Adherència\" per davant de l'objecte. Poseu \"Espai entre la Vora d'Adherència i l'objecte\" a 0; si no, el davantal no tocarà l'objecte que ha d'ancorar.\n"
+"\n"
+"En una cinta inclinada, cada capa diposita una franja de la Vora d'Adherència, de manera que el gruix de la làmina de Vora d'Adherència resultant depèn del flux i no de l'alçada de capa. Feu servir \"Relació de flux de la vora d'adherència\" per ajustar-lo.\n"
+"\n"
+"Poseu 0 per desactivar-ho."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Ample addicional de la Vora d'Adherència"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Només per a impressores de cinta. Eixampla la Vora d'Adherència LATERALMENT, a través de la cinta, sense allargar-la més per davant ni per darrere de l'objecte. Feu-ho servir quan una peça necessita més adherència al llarg de la seva longitud que la que dona només l'\"Ample de la Vora d'Adherència\".\n"
+"\n"
+"Es mesura sobre la superfície de la cinta i s'afegeix a l'\"Ample de la Vora d'Adherència\": la Vora d'Adherència arriba a \"Espai entre la Vora d'Adherència i l'objecte\" + \"Ample de la Vora d'Adherència\" + \"Ample addicional de la Vora d'Adherència\" a cada costat de l'objecte. Per allargar la Vora d'Adherència per davant de l'objecte, feu servir \"Longitud de la Vora d'Adherència frontal\".\n"
+"\n"
+"Poseu 0 per desactivar-ho."
+
msgid "Brim type"
msgstr "Tipus de Vora d'Adherència"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Això controla la generació de la vora d'adherència al costat extern i/o intern dels models. 'Automàtic' vol dir que l'amplada de la vora d'adherència s'analitza i es calcula automàticament."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Només a la vora d'atac"
+
msgid "Brim-object gap"
msgstr "Espai entre la Vora d'Adherència i l'objecte"
@@ -14859,6 +16065,9 @@ msgstr ""
"\n"
"3. Sense filtres: crea ponts interns a cada voladí intern potencial. Aquesta opció és útil per als models de superfícies superiors molt inclinades; tanmateix, en la majoria dels casos, crea massa ponts innecessaris."
+msgid "Filter"
+msgstr "Filtre"
+
msgid "Limited filtering"
msgstr "Filtratge limitat"
@@ -14875,8 +16084,9 @@ msgstr "Longitud màxima del pont que no necessita suport. Establiu-lo a 0 si vo
msgid "End G-code"
msgstr "G-code Final"
-msgid "Add end G-Code when finishing the entire print."
-msgstr "G-code Final en acabar tota la impressió"
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
+msgstr "Afegiu el G-code final en acabar tota la impressió."
msgid "Between Object G-code"
msgstr "G-code entre Objectes"
@@ -14920,8 +16130,9 @@ msgstr "Patró de línia del farciment de la superfície superior"
msgid "Monotonic"
msgstr "Monotònic"
+# AI Translated
msgid "Monotonic line"
-msgstr "Línia mononotònica"
+msgstr "Línia monotònica"
msgid "Rectilinear"
msgstr "Rectilini"
@@ -15064,8 +16275,9 @@ msgstr "Velocitat del perímetre més exterior i visible. S'utilitza per ser mé
msgid "Small perimeters"
msgstr "Petits perímetres"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Aquest ajustament independent afectarà la velocitat dels perímetres amb radi <= small_perimeter_threshold ( normalment orificis ). Si s'expressa com a percentatge ( per exemple: 80% ) es calcula sobre l'ajustament de velocitat del perímetre exterior anterior. Poseu-lo a zero per automàtic."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Aquest ajustament independent afectarà la velocitat dels perímetres amb radi <= small_perimeter_threshold (normalment orificis). Si s'expressa com a percentatge (per exemple: 80%) es calcula sobre l'ajustament de velocitat del perímetre exterior anterior."
msgid "Small perimeters threshold"
msgstr "Llindar de perímetres petits"
@@ -15078,8 +16290,8 @@ msgid "Small support perimeters"
msgstr "Petits perímetres de suport"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Igual que \"Petits perímetres\", però per als suports. Aquest ajustament separat afectarà la velocitat del suport en àrees <= `small_support_perimeter_threshold`. Si s'expressa com a percentatge (per exemple: 80%), es calcularà sobre l'ajustament anterior de velocitat de suport o d'interfície de suport. Establiu-ho a zero per a automàtic."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Igual que \"Petits perímetres\", però per als suports. Aquest ajustament separat afectarà la velocitat del suport en àrees <= `small_support_perimeter_threshold`. Si s'expressa com a percentatge (per exemple: 80%), es calcularà sobre l'ajustament anterior de velocitat de suport o d'interfície de suport."
# AI Translated
msgid "Small support perimeters threshold"
@@ -15092,23 +16304,23 @@ msgstr "Estableix el llindar per a la longitud dels petits perímetres de suport
msgid "Walls printing order"
msgstr "Ordre d'impressió de perímetres"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
-"Seqüència d'impressió de les parets interiors (interiors) i exteriors (exteriors).\n"
+"Seqüència d'impressió dels perímetres interiors i exteriors.\n"
"\n"
-"Utilitzeu Interior / Exterior per a millors voladissos. Això es deu al fet que les parets que sobresurten poden adherir-se a un perímetre veí durant la impressió. No obstant això, aquesta opció resulta en una qualitat superficial lleugerament reduïda, ja que el perímetre extern es deforma en ser aixafat al perímetre intern.\n"
+"Utilitzeu Interior/Exterior per obtenir els millors voladissos. Això es deu al fet que els perímetres en voladís poden adherir-se a un perímetre veí durant la impressió. No obstant això, aquesta opció resulta en una qualitat superficial lleugerament reduïda, ja que el perímetre exterior es deforma en ser aixafat contra el perímetre interior.\n"
"\n"
-"Utilitzeu Interior / Exterior / Interior per obtenir el millor acabat de la superfície externa i precisió dimensional, ja que la paret externa s'imprimeix sense molèsties des d'un perímetre intern. Tanmateix, el rendiment del voladís es reduirà, ja que no hi ha un perímetre intern per imprimir la paret externa. Aquesta opció requereix un mínim de 3 parets per ser efectiva, ja que imprimeix primer les parets interiors a partir del 3r\n"
-" perímetre, després el perímetre extern i, finalment, el primer perímetre intern. Aquesta opció es recomana contra l'opció Exterior/Interior en la majoria dels casos.\n"
+"Utilitzeu Interior/Exterior/Interior per obtenir el millor acabat de la superfície exterior i la millor precisió dimensional, ja que el perímetre exterior s'imprimeix sense cap pertorbació des d'un perímetre interior. Tanmateix, el rendiment dels voladissos es reduirà, ja que no hi ha cap perímetre interior contra el qual imprimir el perímetre exterior. Aquesta opció requereix un mínim de 3 perímetres per ser efectiva, ja que imprimeix primer els perímetres interiors a partir del 3r perímetre, després el perímetre exterior i, finalment, el primer perímetre interior. En la majoria dels casos, es recomana aquesta opció en lloc de l'opció Exterior/Interior.\n"
"\n"
-"Utilitzeu Exterior / Interior per obtenir la mateixa qualitat de paret externa i els mateixos avantatges de precisió dimensional de l'opció Interior / Exterior / Interior. Tanmateix, les costures z semblaran menys consistents a mesura que comenci la primera extrusió d'una nova capa en una superfície visible."
+"Utilitzeu Exterior/Interior per obtenir la mateixa qualitat del perímetre exterior i els mateixos avantatges de precisió dimensional que l'opció Interior/Exterior/Interior. Tanmateix, les costures Z semblaran menys consistents, ja que la primera extrusió d'una capa nova comença en una superfície visible."
msgid "Inner/Outer"
msgstr "Interior/Exterior"
@@ -15750,9 +16962,6 @@ msgstr "Preu del filament. Només per a estadístiques"
msgid "money/kg"
msgstr "diners/kg"
-msgid "Vendor"
-msgstr "Fabricant"
-
msgid "Vendor of filament. For show only."
msgstr "Fabricant del filament. Només per a mostrar"
@@ -15826,6 +17035,92 @@ msgstr "Farciment multilínia"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Ús de múltiples línies per al patró de farciment, si el patró de farciment ho admet."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Densitat adaptativa (experimental)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Gradua el farciment Giroide i TPMS dins de l'objecte: les seves cel·les creixen des de la superfície de l'objecte cap al seu centre. La densitat del farciment poc dens s'aplica a la superfície i la densitat interior, al centre.\n"
+"Deformació per distància, Fusió suau i Carcasses esglaonades segueixen la distància a la superfície més propera, incloses la superior i la inferior, amb la densitat interior al punt més allunyat d'aquesta:\n"
+" - Deformació per distància: un únic patró continu, estirat i cisallat allà on la distància canvia segons la direcció, com en plaques i peces llargues.\n"
+" - Fusió suau: els patrons de densitats veïnes es fonen entre ells, amb petits bucles on es troben.\n"
+" - Carcasses esglaonades: carcasses del patró normal amb densitats separades aproximadament un factor d'1,5, amb les línies unides al llarg dels límits de les carcasses.\n"
+" - Lòbuls: segueix la forma 3D de l'objecte, incloses la part superior i la inferior. Cada lòbul, una part unida a la resta per un coll més estret, es gradua cap al seu propi centre.\n"
+" - Normal a Z, Y o X: segueix les seccions de l'objecte normals a aquest eix, de manera que la densitat no canvia al llarg d'aquest."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Deformació per distància"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Fusió suau"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Carcasses esglaonades"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Lòbuls"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Normal a Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Normal a Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Normal a X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Densitat interior"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Densitat del farciment adaptatiu al centre de l'objecte."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Gradient adaptatiu"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Com canvia la densitat des de la superfície fins al centre de l'objecte.\n"
+"Lineal: la densitat canvia a un ritme constant.\n"
+"Quadràtic: la densitat es manté propera a la densitat del farciment poc dens prop de la superfície i canvia més ràpidament cap al centre.\n"
+"Exponencial: la densitat canvia ràpidament just per sota de la superfície i s'estabilitza cap al centre."
+
+# AI Translated
+msgid "Linear"
+msgstr "Lineal"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Quadràtic"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Exponencial"
+
# AI Translated
msgid "Z-buckling bias optimization (experimental)"
msgstr "Optimització del biaix de vinclament en Z (experimental)"
@@ -15883,8 +17178,9 @@ msgstr "Panal d'abella"
msgid "3D Honeycomb"
msgstr "Panal d'abella 3D"
+# AI Translated
msgid "Lateral Honeycomb"
-msgstr "Rusc lateral"
+msgstr "Panal d'abella lateral"
msgid "Lateral Lattice"
msgstr "Gelosia 2D"
@@ -15981,14 +17277,16 @@ msgstr "Alçada de la capa inicial"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Alçada de la capa inicial. Fer que l'alçada inicial de la capa sigui lleugerament més gruixuda pot millorar l'adherència de la placa d'impressió"
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Velocitat de la capa inicial excepte la part de farciment sòlid"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Velocitat dels perímetres i de la vora d'adherència de la capa inicial."
msgid "First layer infill"
msgstr "Farciment de la capa inicial"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Velocitat de farciment sòlid de la capa inicial"
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Velocitat de la capa inicial, excepte els perímetres i la vora d'adherència, com ara el farciment, el farciment de buits i els suports."
msgid "First layer travel speed"
msgstr "Velocitat de desplaçament de la capa inicial"
@@ -16459,6 +17757,10 @@ msgstr "Tipus de G-code"
msgid "What kind of G-code the printer is compatible with."
msgstr "Amb quin tipus de G-code és compatible la impressora."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (antic)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16698,16 +18000,18 @@ msgstr "Amplada de línia de farciment poc dens intern. Si s'expressa en %, es c
msgid "Infill/wall overlap"
msgstr "Superposició de farciment/perímetre"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "L'àrea de farciment s'amplia lleugerament per superposar-se amb la paret per a una millor unió. El valor percentual és relatiu a l'amplada de línia de farciment poc dens. Establiu aquest valor a ~ 10-15% per minimitzar la potencial sobreextrusió i acumulació de material que resulti en superfícies superiors rugoses."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "L'àrea de farciment s'amplia lleugerament per superposar-se amb la paret per a una millor unió. El valor percentual és relatiu a l'amplada de línia del perímetre interior. Establiu aquest valor a ~ 10-15% per minimitzar la potencial sobreextrusió i acumulació de material que resulti en superfícies superiors rugoses."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Farciment superposat a paret superior/inferior\""
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "L'àrea de farciment sòlida superior s'amplia lleugerament per superposar-se a la paret per a una millor unió i per minimitzar l'aparició de forats on l'ompliment superior es troba amb les parets. Un valor de 25-30% is és un bon punt de partida, minimitzant l'aparició de forats. El valor percentual és relatiu a l'amplada de línia de l'emplenament escàs"
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "L'àrea de farciment sòlid superior s'amplia lleugerament per superposar-se a la paret per a una millor unió i per minimitzar l'aparició de forats on el farciment superior es troba amb les parets. Un valor de 25-30% és un bon punt de partida, minimitzant l'aparició de forats. El valor percentual és relatiu a l'amplada de línia del perímetre interior."
msgid "This is the speed for internal sparse infill."
msgstr "Velocitat de farciment poc dens intern"
@@ -16733,8 +18037,9 @@ msgstr "Amplada màxima d'una regió segmentada. El zero desactiva aquesta funci
msgid "Interlocking depth of a segmented region"
msgstr "Profunditat d'entrellaçament d'una regió segmentada"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Profunditat d'enclavament d'una regió segmentada. S'ignorarà si \"mmu_segmented_region_max_width\" és zero o si \"mmu_segmented_region_interlocking_depth\" és més gran que \"mmu_segmented_region_max_width\". Zero desactiva aquesta funció."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Profunditat d'entrellaçament d'una regió segmentada. En una de cada dues capes, la regió segmentada es limita a aquesta profunditat. S'ignorarà si \"interlocking_beam\" està activat. Zero desactiva aquesta funció."
msgid "Use beam interlocking"
msgstr "Utilitzar feixos d'entrellaçament"
@@ -16843,11 +18148,11 @@ msgstr "Angle per minimitzar l'alçada del perímetre"
# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Redueix l'alçada dels perímetres de la superfície superior perquè coincideixi amb l'alçada de la vora del model.\n"
-"Afecta els perímetres amb un pendent inferior a aquest angle (graus).\n"
+"Afecta els perímetres amb un pendent superior a aquest angle (graus).\n"
"Un valor raonable és 35. Establiu-ho a 0 per desactivar-ho."
# AI Translated
@@ -16927,17 +18232,21 @@ msgstr "Velocitat màxima Z"
msgid "Maximum speed E"
msgstr "Velocitat màxima E"
-msgid "Maximum X speed"
-msgstr "Velocitat màxima a l'eix X"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Velocitat màxima de l'eix X"
-msgid "Maximum Y speed"
-msgstr "Velocitat màxima a l'eix Y"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Velocitat màxima de l'eix Y"
-msgid "Maximum Z speed"
-msgstr "Velocitat màxima a l'eix Z"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Velocitat màxima de l'eix Z"
-msgid "Maximum E speed"
-msgstr "Velocitat màxima a l'eix E"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Velocitat màxima de l'eix E"
msgid "Maximum acceleration X"
msgstr "Màxima acceleració X"
@@ -17472,8 +18781,8 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Capacitats de connector referenciades per aquest perfil, emmagatzemades com a name;uuid;capability."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
-msgstr "Connector(s) de Python invocats a cada pas del flux de laminat per llegir i modificar dades intermèdies de laminat, incloent-hi un pas final de postprocessament del G-code. Recerca/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgstr "Connectors de Python invocats a cada pas del flux de laminat per llegir i modificar dades intermèdies de laminat, incloent-hi un pas final de postprocessament del G-code. Recerca/experimental."
msgid "Printer type"
msgstr "Tipus d'impressora"
@@ -17490,32 +18799,39 @@ msgstr "Podeu posar les vostres notes sobre la impressora aquí."
msgid "Printer variant"
msgstr "Model d'impressora"
+# AI Translated
msgid "Raft contact Z distance"
-msgstr "Distància Z de contacte de la Vora d'Adherència"
+msgstr "Distància Z de contacte del rai"
+# AI Translated
msgid "Z gap between raft and object. If Support Top Z Distance is 0, this value is ignored and the object is printed in direct contact with the raft (no gap)."
-msgstr "Espai Z entre la vora d'Adherència i l'objecte. Si la distància Z superior del suport és 0, aquest valor s'ignora i l'objecte s'imprimeix en contacte directe amb la vora d'Adherència (sense espai)."
+msgstr "Espai Z entre el rai i l'objecte. Si la distància Z superior del suport és 0, aquest valor s'ignora i l'objecte s'imprimeix en contacte directe amb el rai (sense espai)."
+# AI Translated
msgid "Raft expansion"
-msgstr "Expansió de la Vora d'Adherència"
+msgstr "Expansió del rai"
+# AI Translated
msgid "This expands all raft layers in XY plane."
-msgstr "Expandir totes les capes de Vora d'Adherència en el pla XY"
+msgstr "Expandir totes les capes del rai en el pla XY."
msgid "First layer density"
msgstr "Densitat de la primera capa"
+# AI Translated
msgid "This is the density of the first raft or support layer."
-msgstr "Densitat de la primera Vora d'Adherència o capa de suport"
+msgstr "Densitat de la primera capa del rai o de suport."
msgid "First layer expansion"
msgstr "Expansió de la primera capa"
+# AI Translated
msgid "This expands the first raft or support layer to improve bed adhesion."
-msgstr "Expandir la primera Vora d'Adherència o capa de suport per millorar l'adherència de la placa d'impressió"
+msgstr "Expandir la primera capa del rai o de suport per millorar l'adherència de la placa d'impressió."
+# AI Translated
msgid "Raft layers"
-msgstr "Capes de Vora d'Adherència"
+msgstr "Capes del rai"
msgid "Object will be raised by this number of support layers. Use this function to avoid warping when printing ABS."
msgstr "L'objecte serà elevat per aquest nombre de capes de suport. Utilitzar aquesta funció per evitar deformacions( warping ) quan imprimiu ABS"
@@ -17843,7 +19159,8 @@ msgstr "Unió en Bisell per a parets interiors"
msgid "Use scarf joint for inner walls as well."
msgstr "Utilitzar també l'Unió en Bisell per a les parets interiors."
-msgid "Role base wipe speed"
+# AI Translated
+msgid "Role based wipe speed"
msgstr "Velocitat de neteja basada en l'acció"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -17933,14 +19250,15 @@ msgstr "Limita els bucles de la faldilla/escudo protector a una paret després d
msgid "Draft shield"
msgstr "Escut contra corrents d'aire"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
-"Activat = la faldilla és tan alta com l'objecte imprès més alt. En cas contrari, s'utilitza \"Alçada de la faldilla\".\n"
-"Nota: amb l'escut de corrent actiu, la faldilla s'imprimirà a una distància de la faldilla de l'objecte. Per tant, si les vores estan actives, es pot creuar amb elles. Per evitar-ho, augmenta el valor de la distància de la faldilla.\n"
+"Un escut contra corrents d'aire és útil per protegir una impressió d'ABS o ASA de la deformació i del despreniment del llit d'impressió a causa dels corrents d'aire. Normalment només cal en impressores de bastidor obert, és a dir, sense carcassa.\n"
+"\n"
+"Activat = la faldilla és tan alta com l'objecte imprès més alt. En cas contrari, s'utilitza \"Alçada de la faldilla\"."
msgid "Enabled"
msgstr "Habilitat"
@@ -18107,6 +19425,130 @@ msgstr "Extrusor únic multimaterial"
msgid "Use single nozzle to print multi filament."
msgstr "Utilitza un sol broquet per imprimir multifilament"
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "Impressora IDEX/IQEX"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Activa la impressió en paral·lel per a impressores amb diversos carros independents (IDEX, IQEX i similars)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Zones gestionades pel firmware"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Quan està activat, el laminador genera G-code amb el contingut de la zona principal centrat a l'origen del llit (0,0). El firmware de la impressora s'encarrega de col·locar les còpies/miralls a la posició física de cada zona. Activeu-ho només en impressores el firmware de les quals aplica els seus propis desplaçaments de zona en mode de còpia/mirall (p. ex. el mode de duplicació IDEX de RepRapFirmware). No té cap efecte en mode Principal (Primary)."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Nombre de pòrtics"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Nombre de pòrtics independents a l'eix Y. 1 per a IDEX/IQEX d'un sol rail. 2 per a sistemes de doble pòrtic (divideix el llit en files)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Eines per pòrtic"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Nombre de capçals independents per pòrtic al llarg de X. 2 per a l'estil IDEX."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Posició de l'eina 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Posició física al llit on es troba l'eina T0 (índex 0). Determina com es corresponen els índexs de les eines amb les zones del llit. En configuracions d'un sol pòrtic (IDEX) només importa esquerra/dreta; en configuracions de doble pòrtic (IQEX) es poden seleccionar les quatre cantonades (frontal = Y menor / a prop de l'operador, posterior = Y major / part del darrere de la màquina)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Espai lliure del broquet X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Distància (mm) del broquet a la vora del carro del costat de col·lisió en X. S'utilitza per calcular l'amplada de la franja d'exclusió per col·lisió a cada límit en X."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Espai lliure del broquet Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Distància (mm) del broquet a la vora del carro del costat de col·lisió en Y. S'utilitza per calcular l'amplada de la franja d'exclusió per col·lisió a cada límit en Y."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Marge de seguretat"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Franja d'espai lliure orientativa i no bloquejant (mm) que es dibuixa dins de la zona principal a cada límit entre carros. Les peces col·locades dins d'aquesta franja es continuaran laminant; és un recordatori visual per deixar espai lliure addicional prop de la vora de la zona."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Tema de visualització"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Tema de colors per a la visualització de les zones del llit IDEX/IQEX. Trieu un tema apte per a daltònics si cal."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranopia / Protanopia (vermell-verd)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopia (blau-groc)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Alt contrast"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "Mode d'impressió IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Nom del mode d'impressió paral·lel IDEX/IQEX actiu, o \"primary\" per a la impressió amb un sol carro. Requereix que \"Impressora IDEX/IQEX\" estigui activat al perfil d'impressora (Impressora → Multimaterial → Configuració IDEX/IQEX)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "Mapa de filaments dels capçals IDEX/IQEX"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Correspondència per placa que substitueix l'assignació dels capçals físics a les ranures de filament (començant per 1). Si és buida, cada capçal utilitza el primer filament que el mapa d'extrusors físics de la impressora li assigna."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "Noms dels modes IDEX/IQEX"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Noms visibles de cada mode d'impressió paral·lel IDEX/IQEX definit per l'usuari."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Eines actives dels modes IDEX/IQEX"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Assignació de rols de les eines per a cada mode. Format: \"idx:P,idx:C,idx:M\" on P=Principal (Primary), C=Còpia (Copy), M=Mirall (Mirror) (p. ex. \"0:P,1:C,2:M,3:M\"). Es gestiona amb l'editor de modes IDEX/IQEX del perfil d'impressora."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-codes dels modes IDEX/IQEX"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code o crida de macro que s'injecta a l'inici de la impressió per a cada mode."
+
msgid "Manual Filament Change"
msgstr "Canvi manual de filament"
@@ -18324,16 +19766,17 @@ msgstr "Distància Z inferior"
msgid "Z gap between the object and the support bottom. If Support Top Z Distance is 0 and the bottom has interface layers, this value is ignored and the support is printed in direct contact with the object (no gap)."
msgstr "Espai Z entre l'objecte i la part inferior del suport. Si la distància Z superior del suport és 0 i la part inferior té capes d'interfície, aquest valor s'ignora i el suport s'imprimeix en contacte directe amb l'objecte (sense espai)."
+# AI Translated
msgid "Support/raft base"
-msgstr "Base del Suport/Vora d'Adherència"
+msgstr "Base del Suport/Rai"
# AI Translated
msgid ""
"Filament to print support base and raft.\n"
"\"Default\" means no specific filament for support and current filament is used."
msgstr ""
-"Filament per imprimir base del suport i Vora d'Adherència.\n"
-"\"Per defecte\" significa que no s'utilitza cap filament específic per al suport i s'usarà el filament actual"
+"Filament per imprimir la base del suport i el rai.\n"
+"\"Per defecte\" significa que no s'utilitza cap filament específic per al suport i s'usarà el filament actual."
msgid "Avoid interface filament for base"
msgstr "Evitar el filament de la interfície per a la base"
@@ -18350,8 +19793,9 @@ msgstr "La interfície usa patró de bucle"
msgid "This covers the top contact layer of the supports with loops. It is disabled by default."
msgstr "Cobrir la capa de contacte superior dels suports amb bucles. Desactivat per defecte."
+# AI Translated
msgid "Support/raft interface"
-msgstr "Interfície de Suport/Vora d'Adherència"
+msgstr "Interfície de Suport/Rai"
# AI Translated
msgid ""
@@ -18489,6 +19933,167 @@ msgstr "Superposició de llindars"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Si l'angle del llindar és zero, es generarà suport per als voladissos el solapament dels quals estigui per sota del llindar. Com més petit sigui aquest valor, més inclinat serà el voladí que es pot imprimir sense suport."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Inclinació del llit X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Angle d'inclinació del llit al llarg de l'eix X. Un valor positiu inclina el llit de manera que el costat +X quedi més alt, cosa que desplaça la gravetat cap a -X i augmenta els voladissos al costat +X. Un valor negatiu fa que el costat -X quedi més alt. Poseu 0 per no inclinar l'eix X. En mode d'impressora de cinta, se sincronitza automàticament amb l'angle de la cinta."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Inclinació del llit Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Angle d'inclinació del llit al llarg de l'eix Y. Un valor positiu inclina el llit de manera que el costat +Y quedi més alt, cosa que desplaça la gravetat cap a -Y i augmenta els voladissos al costat +Y. Un valor negatiu fa que el costat -Y quedi més alt. Poseu 0 per no inclinar l'eix Y."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Activar la impressió de cinta"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Activa el mode d'impressora de cinta. Les impressores de cinta fan servir una cinta transportadora com a superfície de construcció, inclinada en un angle (normalment de 45 graus). El laminador girarà el pla de laminat i transformarà les coordenades del G-code per a la superfície de construcció inclinada."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Eix Y infinit"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Activa l'eix Y infinit per a les impressores de cinta. Quan està activat, s'elimina a la pràctica el límit del volum de construcció en l'eix Y, cosa que permet imprimir objectes de qualsevol longitud en la direcció de la cinta."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Eix d'inclinació de la cinta"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Eix al voltant del qual es gira la malla abans de laminar. És la inclinació de la impressora de cinta: una rotació isomètrica (sense distorsió) que també determina la representació del llit i la inclinació de la gravetat dels suports, i que la transformació inversa del G-code desfà abans del cisallament/escala i la reassignació d'eixos del sistema de coordenades de la màquina. X és la inclinació típica del pòrtic (la cinta es desplaça al llarg de Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Angle d'inclinació de la cinta"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Angle d'inclinació de la superfície de la cinta, en graus. La majoria d'impressores de cinta fan servir 45°. Els valors positius giren en sentit contrari a les agulles del rellotge mirant en la direcció positiva de l'eix d'inclinació; la magnitud també és la inclinació física de la cinta que s'utilitza per a la representació del llit i la gravetat dels suports."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Desacoblar la inclinació del sistema de coordenades de la màquina"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Ajust per a experts: estableix l'angle d'inclinació del sistema de coordenades de la màquina (cisallament/escala del G-code) independentment de l'angle de rotació previ al laminat. Quan està desactivat, la transformació del sistema de coordenades de la màquina es deriva de l'angle d'inclinació de la cinta, de manera que un sol angle controla les dues etapes. Activeu-ho només per compensar una màquina la inclinació física del pòrtic de la qual difereix de la rotació de laminat."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Angle d'inclinació del sistema de coordenades de la màquina"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Angle d'inclinació (graus) que s'utilitza per derivar el cisallament (cot) i l'escala (1/|sin|) del sistema de coordenades de la màquina aplicats al G-code. Només s'utilitza quan 'Desacoblar la inclinació del sistema de coordenades de la màquina' està activat; altrament, s'utilitza l'angle d'inclinació de la cinta."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "X invertit"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Y invertit"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Z invertit"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "Reassignació X del G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Quin eix de laminat es correspon amb l'eix X de la màquina a la sortida del G-code. S'aplica DESPRÉS del laminat, durant la generació del G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "Reassignació Y del G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Quin eix de laminat es correspon amb l'eix Y de la màquina a la sortida del G-code. S'aplica DESPRÉS del laminat, durant la generació del G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "Reassignació Z del G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Quin eix de laminat es correspon amb l'eix Z de la màquina a la sortida del G-code. S'aplica DESPRÉS del laminat, durant la generació del G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Desplaçament Z del terra dels suports"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Desplaça cap amunt o cap avall el terra de la cinta calculat (mm). Els valors negatius abaixen el terra, cosa que permet que es conservin més suports. Feu-ho servir per diagnosticar problemes de la fórmula del terra de la cinta."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Activar la torre de purga de la cinta"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Substitut de la Torre de Purga per a impressores de cinta. Quan està activat en una impressora de cinta, es genera automàticament un prisma de purga al costat de les peces impreses i la purga dels canvis de filament s'hi dirigeix (la Torre de Purga clàssica no es pot fer servir en impressores de cinta perquè el seu G-code no passa per la transformació de la cinta). Només disponible en impressores de cinta."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Amplada de la torre de purga de la cinta"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Amplada (X de la màquina, a través de la cinta) del prisma de purga que es genera automàticament en impressores de cinta quan la torre de purga de la cinta està activada i s'utilitzen diversos filaments. La purga dels canvis de filament es dirigeix a les extrusions d'aquest prisma en lloc d'una Torre de Purga clàssica. La seva alçada es calcula automàticament a partir del volum de purga màxim per capa: un prisma més ample en dona un de més baix."
+
msgid "Tree support branch angle"
msgstr "Angle de branca de suport en arbre"
@@ -18672,13 +20277,11 @@ msgstr "Farciments separats"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"Centra el farciment intern de cada peça sobre si mateixa, com si es laminés per separat, en lloc de sobre tot el conjunt. Les peces que es toquen o se superposen es tracten com un sol cos i comparteixen centre; les peces separades (o objectes 3D diferents) tenen cadascuna el seu.\n"
-"Útil quan un conjunt agrupa diversos objectes que han de mantenir cadascun un farciment coherent i centrat en si mateix.\n"
-"Afecta els patrons de línia i de graella i els farciments amb plantilla de rotació.\n"
-"Els patrons vinculats a coordenades globals (Giroide, Panal d'abella, TPMS, ...) no es veuen afectats."
+"Centra el farciment intern de cada peça en ella mateixa, com si es laminés per separat, en lloc de fer-ho en tot el muntatge. Les peces que es toquen o se superposen es tracten com un sol cos i comparteixen centre; les peces separades (o els objectes 3D diferents) tenen cadascuna el seu.\n"
+"Útil quan un muntatge agrupa diversos objectes que han de mantenir cadascun un farciment coherent i centrat en si mateix.\n"
+"Cúbic adaptatiu i Suport Cúbic sempre centren cada peça en ella mateixa, i el farciment Llampec es genera per a tot l'objecte i no es veu afectat."
# AI Translated
msgid "Center surface pattern on"
@@ -18810,40 +20413,42 @@ msgstr "Angle del vèrtex del con que s'utilitza per estabilitzar la Torre de Pu
msgid "Maximum wipe tower print speed"
msgstr "Velocitat màxima d'impressió de la torre de purga"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
"La velocitat màxima d'impressió en purgar a la torre de purga i imprimir a la torre de purga capes poc denses. En la purga, si la velocitat de farciment poc dens o la velocitat calculada de la màxima velocitat volumètrica del filament és menor, s'utilitzarà la més baixa.\n"
"\n"
-"En imprimir les capes poc denses, si la velocitat perimetral interna o la velocitat calculada de la màxima velocitat volumètrica del filament és menor, s'utilitzarà la més baixa.\n"
+"En imprimir les capes poc denses, si la velocitat de farciment poc dens o la velocitat calculada de la màxima velocitat volumètrica del filament és menor, s'utilitzarà la més baixa.\n"
"\n"
"L'augment d'aquesta velocitat pot afectar l'estabilitat de la torre, així com augmentar la força amb què el broquet xoca amb els grumolls que s'hagin pogut formar a la torre de purga.\n"
"\n"
-"Abans d'augmentar aquest paràmetre més enllà del valor per defecte de 90 mm/segon, assegureu-vos que la impressora pugui fer un pont de manera fiable a les velocitats augmentades i que el degoteig quan es produeixi el canvi d'eina estigui ben controlat.\n"
+"Abans d'augmentar aquest paràmetre més enllà del valor per defecte de 90 mm/s, assegureu-vos que la impressora pugui fer un pont de manera fiable a les velocitats augmentades i que el degoteig quan es produeixi el canvi d'eina estigui ben controlat.\n"
"\n"
-"Per als perímetres externs de la torre de purga, s'utilitza la velocitat perimetral interna independentment d'aquesta configuració."
+"Per als perímetres exteriors de la torre de purga, s'utilitza la velocitat del perímetre interior, també limitada per aquesta configuració."
msgid "Wall type"
msgstr "Tipus de paret"
+# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
-"Tipus de paret exterior de la torre de purga.\n"
-"1. Rectangle: el tipus de paret predeterminat, un rectangle amb amplada i alçada fixes.\n"
+"Tipus de perímetre exterior de la torre de purga.\n"
+"1. Rectangle: un rectangle amb amplada i alçada fixes.\n"
"2. Con: un con amb arrodoniment a la base per ajudar a estabilitzar la torre de purga.\n"
-"3. Nervi: afegeix quatre nervis a la paret de la torre per a una estabilitat millorada."
+"3. Nervi: el tipus de paret predeterminat, que afegeix quatre nervis a la paret de la torre per a una estabilitat millorada."
# AI Translated
msgid "Rectangle"
@@ -18912,6 +20517,14 @@ msgstr "La purga després del canvi de filament es farà dins del suport dels ob
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Aquest objecte s'utilitzarà per purgar el broquet després d'un canvi de filament per estalviar filament i disminuir el temps d'impressió. Com a resultat, es barrejaran els colors dels objectes. No tindrà cap efecte, tret que s'habiliti la Torre de Purga."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Objecte de torre de purga de la cinta"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Marca el prisma de purga de la cinta generat automàticament. Es gestiona automàticament; no el configureu manualment."
+
msgid "Maximal bridging distance"
msgstr "Distància màxima dels ponts"
@@ -18927,8 +20540,9 @@ msgstr "Espaiat de les línies de purga de la Torre de Purga."
msgid "Extra flow for purging"
msgstr "Flux addicional per a la purga"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Flux addicional utilitzat per a les línies de purga a la torre de neteja. Això fa que les línies de purga siguin més gruixudes o més estretes del que serien normalment. L'espaiat s'ajusta automàticament."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Flux addicional utilitzat per a les línies de purga a la torre de purga. Això fa que les línies de purga siguin més gruixudes del que serien normalment. L'espaiat s'ajusta automàticament."
msgid "Idle temperature"
msgstr "Temperatura d'espera"
@@ -19046,14 +20660,15 @@ msgstr "Gruix mínim de les característiques primes. Les característiques del
msgid "Minimum wall length"
msgstr "Longitud mínima del perímetre"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Ajusteu aquest valor per evitar que s'imprimeixin parets curtes i no tancades, cosa que podria augmentar el temps d'impressió. Els valors més alts eliminen més i més parets més llargues.\n"
+"Ajusteu aquest valor per evitar que s'imprimeixin parets curtes i no tancades, cosa que podria augmentar el temps d'impressió. El valor és un múltiple de l'amplada de la paret. Els valors més alts eliminen més parets i més llargues.\n"
"\n"
-"NOTA: Les superfícies inferior i superior no es veuran afectades per aquest valor per evitar espais visuals a l'exterior del model. Ajusteu \"Llindar d'una paret\" a la configuració avançada següent per ajustar la sensibilitat del que es considera una superfície superior. \"Llindar d'una paret\" només és visible si aquesta configuració està per sobre del valor predeterminat de 0,5 o si les superfícies superiors d'una sola paret estan habilitades."
+"NOTA: Les superfícies inferior i superior no es veuran afectades per aquest valor per evitar espais visuals a l'exterior del model. Ajusteu \"Llindar d'un sol perímetre\" a la configuració de \"Parets i superfícies\" següent per ajustar la sensibilitat del que es considera una superfície superior. \"Llindar d'un sol perímetre\" només és visible si aquest valor està per sobre del valor predeterminat de 0,5 o si les superfícies superiors d'una sola paret estan habilitades."
# AI Translated
msgid "Maximum wall resolution"
@@ -19068,8 +20683,8 @@ msgid "Maximum wall deviation"
msgstr "Desviació màxima del perímetre"
# AI Translated
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "La desviació màxima permesa en reduir la resolució per a l'ajustament 'Resolució màxima del perímetre'. Si l'augmenteu, la impressió serà menys precisa, però el G-Code serà més petit. La 'Desviació màxima del perímetre' limita la 'Resolució màxima del perímetre', de manera que, si totes dues entren en conflicte, preval la 'Desviació màxima del perímetre'."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "La desviació màxima permesa en reduir la resolució per a l'ajustament 'Resolució màxima del perímetre'. Si l'augmenteu, la impressió serà menys precisa, però el G-code serà més petit. La 'Desviació màxima del perímetre' limita la 'Resolució màxima del perímetre', de manera que, si totes dues entren en conflicte, preval la 'Desviació màxima del perímetre'."
msgid "First layer minimum wall width"
msgstr "Amplada mínima del perímetre de la primera capa"
@@ -19178,8 +20793,11 @@ msgstr "L'amplada de línia del pont no pot superar el diàmetre del broquet: "
msgid "too large line width "
msgstr "amplada de línia massa gran "
-msgid " not in range "
-msgstr " fora de rang "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% no està dins de l'interval [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Exportar projecte a 3MF."
@@ -19329,6 +20947,14 @@ msgstr "Opcions d'orientació"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Opcions d'orientació: 0-deshabilitar, 1-habilitar, altres-auto"
+# AI Translated
+msgid "Repair"
+msgstr "Reparar"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Repara les malles dels models com ho fa \"Repara el model\": tanca forats i esquerdes, les orienta cap enfora i elimina les autointerseccions."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Angle de rotació al voltant de l'eix Z en graus."
@@ -19437,6 +21063,12 @@ msgstr "Directori de sortida"
msgid "This is the output directory for exported files."
msgstr "Directori de sortida dels fitxers exportats."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Nivell de depuració"
@@ -19603,6 +21235,55 @@ msgstr "Té una imprimació MM d'extrusora única"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "S'utilitzen les regions d'imprimació multimaterial addicionals en aquesta impressió?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Extrusor inicial sense suport"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Índex basat en zero del primer extrusor utilitzat per imprimir sense suport. El mateix que initial_no_support_tool."
+
+# AI Translated
+# Needs human review: Name of a G-code placeholder; 'head wrap' is assumed to mean filament wrapping around the toolhead (cf. the nozzle-wrapping detection strings). Check against what the placeholder reports.
+msgid "In head wrap detect zone"
+msgstr "A la zona de detecció d'embolcallament del capçal"
+
+# AI Translated
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Indica si la primera capa se superposa amb la zona d'embolcallament del capçal."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Tipus de llit actual"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Nom del tipus de placa de llit seleccionat actualment (p. ex. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Mode actiu IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Nom del mode d'impressió en paral·lel IDEX/IQEX actiu per a aquesta placa (p. ex. 'primary', 'mirror', 'copy'). Cadena buida si IDEX/IQEX no està activat."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Índex del mode actiu IDEX/IQEX"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Índex basat en zero del mode d'impressió en paral·lel IDEX/IQEX actiu dins de imex_mode_names."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code del mode actiu IDEX/IQEX"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "La plantilla de G-code en brut del mode d'impressió en paral·lel IDEX/IQEX actiu, després d'avaluar els placeholders. Les variables globals definides aquí passen a machine_start_gcode."
+
msgid "Volume per extruder"
msgstr "Volum per extrusora"
@@ -19748,6 +21429,18 @@ msgstr "Nom del fitxer d'entrada sense extensió"
msgid "Source filename of the first object, without extension."
msgstr "Nom del fitxer font del primer objecte, sense extensió."
+# AI Translated
+msgid "Full input filename"
+msgstr "Nom complet del fitxer d'entrada"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Nom del fitxer font del primer objecte."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Nom de la placa laminada."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "El vector té dos elements: coordenades X i Y del punt. Valors en mm."
@@ -19778,6 +21471,58 @@ msgstr "Cantonada superior dreta de la caixa delimitadora del llit d'impressió"
msgid "Size of the print bed bounding box"
msgstr "Mida de la caixa delimitadora del llit d'impressió"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Centre de la primera capa sense Torre de Purga"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Alçada de la primera capa."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Vector de temperatures del llit per a cada extrusor/filament."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Vector de temperatures del llit a la primera capa per a cada extrusor/filament. Proporciona el mateix valor que first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Temperatura del llit a la primera capa (extrusor inicial)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Temperatura del llit a la primera capa per a l'extrusor inicial. Igual que bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Vector de temperatures de la cambra per a cada extrusor/filament."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Vector de temperatures mínimes de la cambra per a cada extrusor/filament."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Temperatura global de la cambra"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Temperatura global de la cambra. Aquest valor és la temperatura màxima de la cambra de tots els extrusors/filaments utilitzats."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Vector de temperatures del llit a la primera capa per a cada extrusor/filament. Proporciona el mateix valor que bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Temperatura de la primera capa"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Vector de temperatures de la primera capa per a cada extrusor/filament."
+
msgid "Timestamp"
msgstr "Marca de temps"
@@ -19823,8 +21568,9 @@ msgstr "Nom de la impressora física utilitzada per laminar."
msgid "Layer number"
msgstr "Número de capa"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Índex de la capa actual. Basat en 1( és a dir, la primera capa és el número 1 )."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Índex de la capa actual. Comença per zero (és a dir, la primera capa és la número 0), excepte al G-code de canvi de rol d'extrusió, on comença per u."
msgid "Layer Z"
msgstr "Capa Z"
@@ -19844,6 +21590,252 @@ msgstr "Identificador de l'extrusora de filament"
msgid "The current extruder ID. The same as current_extruder."
msgstr "L'identificador actual de l'extrusora. El mateix que current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Extrusor anterior"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Índex de l'extrusor que s'està descarregant. L'índex comença per zero (el primer extrusor té l'índex 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Extrusor següent"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Índex de l'extrusor que s'està carregant. L'índex comença per zero (el primer extrusor té l'índex 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Eix E relatiu"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Indica si s'utilitza el posicionament relatiu."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Nombre de canvis d'eina"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "El nombre de canvis d'eina durant la impressió."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Longitud de retracció anterior"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "La longitud de retracció del filament anterior."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Longitud de retracció nova"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "La longitud de retracció del filament nou."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Longitud de retracció anterior (canvi d'eina)"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "La longitud de retracció del canvi d'eina del filament anterior."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Longitud de retracció nova (canvi d'eina)"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "La longitud de retracció del canvi d'eina del filament nou."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Temperatura del filament anterior"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "La temperatura del filament anterior."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Temperatura del filament nou"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "La temperatura del filament nou."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X després del canvi d'eina"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "La posició X després del canvi d'eina."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y després del canvi d'eina"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "La posició Y després del canvi d'eina."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z després del canvi d'eina"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "La posició Z després del canvi d'eina."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Primer volum de purga"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "El primer volum de purga."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Segon volum de purga"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "El segon volum de purga."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Velocitat d'avanç E del filament anterior"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "La velocitat d'avanç de l'extrusor del filament anterior."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Velocitat d'avanç E del filament nou"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "La velocitat d'avanç de l'extrusor del filament nou."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Punt de recorregut 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "El punt de recorregut 1 X."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Punt de recorregut 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "El punt de recorregut 1 Y."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Punt de recorregut 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "El punt de recorregut 2 X."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Punt de recorregut 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "El punt de recorregut 2 Y."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Punt de recorregut 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "El punt de recorregut 3 X."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Punt de recorregut 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "El punt de recorregut 3 Y."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Longitud de purga 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "La primera longitud de purga."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Longitud de purga 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "La segona longitud de purga."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Longitud de purga 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "La tercera longitud de purga."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Longitud de purga 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "La quarta longitud de purga."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Rol d'extrusió"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"El nou rol/tipus d'extrusió que s'utilitzarà\n"
+"Valors possibles:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Darrer rol d'extrusió"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"El rol/tipus d'extrusió utilitzat anteriorment\n"
+"Valors possibles:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Error amb el fitxer ZIP"
@@ -19856,24 +21848,32 @@ msgstr "Generant zones de farciment"
msgid "Generating infill toolpath"
msgstr "Generant la trajectòria de l'eina de farciment"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Capa amb contornejat en Z %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Detectar voladissos per a l'elevació automàtica"
msgid "Checking support necessity"
msgstr "Comprovació de la necessitat de suport"
-msgid "floating regions"
-msgstr "regions flotants"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Sembla que l'objecte %1% té regions flotants. Reorienteu l'objecte o activeu la generació de suports."
-msgid "floating cantilever"
-msgstr "voladís flotant"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Sembla que l'objecte %1% té un voladís flotant. Reorienteu l'objecte o activeu la generació de suports."
-msgid "large overhangs"
-msgstr "grans voladissos"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Sembla que l'objecte %s té %s. Si us plau, reorienteu l'objecte o habiliteu la generació de suport."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Sembla que l'objecte %1% té voladissos grans. Reorienteu l'objecte o activeu la generació de suports."
msgid "Generating support"
msgstr "Generant suport"
@@ -19884,8 +21884,9 @@ msgstr "Optimitzant la trajectòria de l'eina"
msgid "Slicing mesh"
msgstr "Laminat de malla"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "No s'han detectat capes. És possible que vulgueu reparar els fitxers STL o comprovar-ne la mida o el gruix i tornar-ho a provar.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "No s'han detectat capes. És possible que vulgueu reparar el model o comprovar-ne la mida o el gruix i tornar-ho a provar.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19904,6 +21905,397 @@ msgstr ""
msgid "Object name"
msgstr "Nom de l'objecte"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "No es pot aplicar l'operador de menys unari."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "No es pot convertir a enter."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "No es pot arrodonir un valor no numèric."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "No es pot arrodonir cap avall un valor no numèric."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "No es pot arrodonir cap amunt un valor no numèric."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "No es pot aplicar l'operador not."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "No es poden sumar tipus no numèrics."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "No es poden restar tipus no numèrics."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "No es pot multiplicar amb un tipus no numèric."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "No es pot dividir un tipus no numèric."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "No es pot dividir amb un tipus no numèric."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Divisió per zero"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "No és una expressió booleana"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "No es poden comparar els tipus."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "No és un tipus numèric."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: el segon paràmetre ha de ser un enter"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: el tercer paràmetre ha de ser un enter"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "El costat esquerre d'una coincidència de regex ha de ser una cadena."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Ha fallat la compilació de l'expressió regular: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "El primer paràmetre de regex_replace() ha de ser una cadena."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): el primer paràmetre (la cadena amb què es compara) ha de ser un valor de cadena"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): el patró ha de ser un valor de cadena"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Ha fallat la compilació de l'expressió regular"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "No es pot aplicar una operació lògica a operands no booleans."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "S'està intentant indexar una variable escalar"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Índex de vector no vàlid"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "La variable no existeix (en una branca inactiva)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "La variable no existeix"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "S'està intentant referenciar una variable opcional no definida (nil)"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "S'està indexant una variable de vector buida"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "S'està intentant referenciar un element no definit (nil) d'un vector de valors opcionals"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "La variable d'indexació ha de ser un enter"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Índex de vector negatiu"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "No és un nom de variable"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "No és un nom de variable (en una branca inactiva)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "La variable FloatOrPercent no ha pogut resoldre les dependències de \"ratio_over\""
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Tipus de variable escalar no admès"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Es referencia una variable de vector quan s'espera un escalar"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Tipus de variable de vector no admès"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "No es pot modificar una variable de només lectura"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "El costat dret no és una expressió numèrica"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "S'esperava el nombre d'elements amb què omplir un vector."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "S'ha especificat un nombre d'elements negatiu."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "El costat dret no és una expressió booleana"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Tipus de variable escalar de sortida no admès"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Es referencia una variable de vector de sortida quan s'espera un escalar"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Índex fora de l'interval"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Tipus de variable de vector de sortida no admès"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "El símbol ja està definit al diccionari del sistema de només lectura"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "El símbol ja està definit com a variable de sortida del sistema"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Les variables globals no estan disponibles en aquest context"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "El nom de la variable ja està definit a l'àmbit local"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "El nom de la variable ja està definit a l'àmbit global"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "No es pot assignar un valor escalar a una variable de vector."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "No es pot assignar un valor de vector a una variable escalar."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "No es pot crear una variable de vector a partir d'una llista d'inicialització buida, perquè no se'n pot deduir el tipus."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "El costat dret no és vàlid: es barregen tipus numèrics i booleans."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "No es pot assignar un escalar a un vector"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Alguns elements de la variable de vector de valors opcionals del costat dret no estan definits (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "El costat esquerre és un vector de coma flotant, mentre que el costat dret no ho és."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "El costat esquerre és un vector d'enters, mentre que el costat dret no ho és."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "El costat esquerre és un vector de cadenes, mentre que el costat dret no ho és."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "El costat esquerre és un vector de booleans, mentre que el costat dret no ho és."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Els vectors dels costats esquerre i dret no són compatibles."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "No es permet duplicar aquest tipus de variable de vector"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "El paràmetre d'empty() no és una variable de vector"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "El paràmetre de size() no és una variable de vector"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "No es permet adreçar una variable de vector amb un índex no enter."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "El generador de nombres aleatoris no està disponible en aquest context."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Error d'anàlisi a la línia %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Error d'anàlisi a la línia %1%. S'esperava l'etiqueta %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Error d'anàlisi a la línia %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "El valor d'interpolació ha de ser un nombre."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "El valor X d'un punt de la taula ha de ser un nombre."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "El valor Y d'un punt de la taula ha de ser un nombre."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Les coordenades X de la taula han de ser creixents"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "El valor d'interpolació és fora de l'interval de la taula"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Error de sintaxi desconegut"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Text no vàlid."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Bloc de text no vàlid."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Macro no vàlida."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "No és una macro {if}{else}{endif}."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "No és una macro {switch}."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "S'esperava un format d'expansió de variable heretat"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "S'esperava un identificador."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "S'esperava una expressió condicional."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "S'esperava una expressió booleana."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "S'esperava una expressió."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "S'esperava una clau de tancament o un paràmetre opcional."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "S'esperava una llista de patrons de cadena (text simple o regex)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "S'esperava una referència de variable."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "S'esperava un nom de variable."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "S'esperava una expressió regular."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Seqüència utf8 no vàlida"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Els caràcters no ASCII7 només es permeten dins de blocs de text i literals de cadena, no dins de blocs de codi."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Seqüència d'escapament no vàlida"
+
msgid "Support: generate contact points"
msgstr "Suport: generar punts de contacte"
@@ -19920,6 +22312,10 @@ msgstr "El fitxer subministrat no s'ha pogut llegir perquè està buit"
msgid "The file format is incompatible and cannot be parsed."
msgstr "El format del fitxer és incompatible i no es pot analitzar."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "No s'ha pogut convertir el recurs a STL mitjançant ModelIO."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Format de fitxer desconegut. El fitxer d'entrada ha de tenir extensió .stl, .obj, .amf( .xml )."
@@ -19968,9 +22364,6 @@ msgstr "Recalibratge"
msgid "Calibrate"
msgstr "Calibrar"
-msgid "Finish"
-msgstr "Acabar"
-
msgid "How can I use calibration results?"
msgstr "Com usar el resultat del calibratge?"
@@ -20065,9 +22458,12 @@ msgstr ""
"Dins del mateix extrusor, el nom (%s) ha de ser únic quan el tipus de filament, el diàmetre del broquet i el flux del broquet són els mateixos.\n"
"Esteu segur que voleu sobreescriure el resultat històric?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Aquest tipus de màquina només pot contenir %d resultats de l'historial per broquet. Aquest resultat no es guardarà."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Aquest tipus de màquina només pot contenir %d resultat de l'historial per broquet. Aquest resultat no es guardarà."
+msgstr[1] "Aquest tipus de màquina només pot contenir %d resultats de l'historial per broquet. Aquest resultat no es guardarà."
msgid "Connecting to printer..."
msgstr "Connectant amb la impressora..."
@@ -20227,14 +22623,17 @@ msgstr "Desar Perfil de Filament"
msgid "Record Factor"
msgstr "Factor de guardat"
+# AI Translated
msgid "We found the best flow ratio for you"
-msgstr "Hem trobat la millor Ratio de Flux per a tú"
+msgstr "Hem trobat la millor relació de flux per a tu"
+# AI Translated
msgid "Flow Ratio"
-msgstr "Ratio de Flux"
+msgstr "Relació de Flux"
+# AI Translated
msgid "Please input a valid value (0.0 < flow ratio < 2.0)"
-msgstr "Introduïu un valor vàlid ( 0.0 < Ratio de Flux < 2.0 )"
+msgstr "Introduïu un valor vàlid ( 0.0 < relació de flux < 2.0 )"
msgid "Please enter the name of the preset you want to save."
msgstr "Introduïu el nom del perfil que voleu desar."
@@ -20254,9 +22653,10 @@ msgstr "Emplenar el valor que hi ha a sobre del bloc amb la superfície superior
msgid "Skip Calibration2"
msgstr "Saltar calibratge2"
+# AI Translated
#, c-format, boost-format
msgid "flow ratio : %s "
-msgstr "ratio de flux : %s "
+msgstr "relació de flux : %s "
msgid "Please choose a block with smoothest top surface."
msgstr "Trieu un bloc amb la superfície superior més llisa."
@@ -20270,8 +22670,9 @@ msgstr "Tipus de calibratge"
msgid "Complete Calibration"
msgstr "Calibratge Complet"
+# AI Translated
msgid "Fine Calibration based on flow ratio"
-msgstr "Calibratge Fi basat en la Ratio de Flux"
+msgstr "Calibratge Fi basat en la relació de flux"
msgid "Title"
msgstr "Títol"
@@ -20291,9 +22692,13 @@ msgstr "Sincronitza la informació del broquet i l'AMS"
msgid "Please connect the printer first before synchronizing."
msgstr "Connecteu la impressora primer abans de sincronitzar."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "La informació del broquet de la impressora %s no s'ha establert. Configureu-la abans de procedir amb el calibratge."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "La informació del broquet dret de la impressora no s'ha establert. Configureu-la abans de procedir amb el calibratge."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "La informació del broquet esquerre de la impressora no s'ha establert. Configureu-la abans de procedir amb el calibratge."
msgid "AMS and nozzle information are synced"
msgstr "La informació de l'AMS i del broquet estan sincronitzades"
@@ -20357,6 +22762,11 @@ msgstr "Des de la Velocitat Volumètrica"
msgid "To Volumetric Speed"
msgstr "A la Velocitat Volumètrica"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Pas"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Estàs segur que vols cancel·lar aquesta impressió?"
@@ -20383,9 +22793,12 @@ msgstr "Nota: el número del hotend a %s està lligat al suport. Quan el hotend
msgid "Action"
msgstr "Acció"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Aquest tipus de màquina només pot contenir %d resultats de l'historial per broquet."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Aquest tipus de màquina només pot contenir %d resultat de l'historial per broquet."
+msgstr[1] "Aquest tipus de màquina només pot contenir %d resultats de l'historial per broquet."
msgid "Edit Flow Dynamics Calibration"
msgstr "Editeu el Calibratge de Dinàmiques de Flux"
@@ -20452,8 +22865,9 @@ msgstr ""
"Quan l'opció d'escalat està activada (recomanat), es redimensiona dinàmicament per adaptar-se al diàmetre del broquet actual i a una alçada de capa adequada, cosa que fa que la prova sigui precisa i fàcil de llegir.\n"
"Desactiveu l'escalat només si voleu imprimir el model de referència exactament tal com és."
+# AI Translated
msgid "PA Calibration"
-msgstr "Calibratge PA( Pressure Advance )"
+msgstr "Calibratge PA (Pressure Advance)"
msgid "Extruder type"
msgstr "Tipus d'extrusora"
@@ -20461,23 +22875,29 @@ msgstr "Tipus d'extrusora"
msgid "DDE"
msgstr "DDE( Direct Drive Extruder )"
+# AI Translated
msgid "PA Tower"
-msgstr "Torre PA( Pressure Advance )"
+msgstr "Torre PA (Pressure Advance)"
+# AI Translated
msgid "PA Line"
-msgstr "Línia PA( Pressure Advance )"
+msgstr "Línia PA (Pressure Advance)"
+# AI Translated
msgid "PA Pattern"
-msgstr "Patró PA( Pressure Advance )"
+msgstr "Patró PA (Pressure Advance)"
+# AI Translated
msgid "Start PA: "
-msgstr "Inici PA( Pressure Advance ): "
+msgstr "Inici PA (Pressure Advance): "
+# AI Translated
msgid "End PA: "
-msgstr "Final PA( Pressure Advance ): "
+msgstr "Final PA (Pressure Advance): "
+# AI Translated
msgid "PA step: "
-msgstr "Pas de PA( Pressure Advance ): "
+msgstr "Pas de PA (Pressure Advance): "
msgid "Accelerations: "
msgstr "Acceleracions: "
@@ -20494,6 +22914,7 @@ msgstr "Llista d'acceleracions d'impressió separades per comes"
msgid "Comma-separated list of printing speeds"
msgstr "Llista de velocitats d'impressió separades per comes"
+# AI Translated
msgid ""
"Please input valid values:\n"
"Start PA: >= 0.0\n"
@@ -20501,9 +22922,9 @@ msgid ""
"PA step: >= 0.001"
msgstr ""
"Introduïu valors vàlids:\n"
-"Inici PA( Pressure Advance ): >= 0,0\n"
-"Final PA( Pressure Advance ): > Inici PA\n"
-"Pas de PA( Pressure Advance ): >= 0,001 )"
+"Inici PA (Pressure Advance): >= 0,0\n"
+"Final PA (Pressure Advance): > Inici PA\n"
+"Pas de PA (Pressure Advance): >= 0,001"
msgid ""
"Acceleration values must be greater than speed values.\n"
@@ -20512,12 +22933,13 @@ msgstr ""
"Els valors d'acceleració han de ser superiors als valors de velocitat.\n"
"Verifiqueu les entrades."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Encara no està habilitat a les impressores de cinta — feu servir el mètode Torre PA (Pressure Advance)."
+
msgid "Temperature calibration"
msgstr "Calibratge de temperatura"
-msgid "Filament type"
-msgstr "Tipus de filament"
-
msgid "PLA"
msgstr "PLA"
@@ -20539,6 +22961,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Model de test"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Estàndard"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Voladís"
+
msgid "Start temp: "
msgstr "Temperatura Inicial: "
@@ -20664,9 +23099,6 @@ msgstr "Longitud de la retracció d'inici: "
msgid "End retraction length: "
msgstr "Longitud de la retracció final: "
-msgid "Test model"
-msgstr "Model de test"
-
msgid "Ringing Tower"
msgstr "Torre de Ringing"
@@ -20696,8 +23128,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Freqüència (Inici / Final): "
-msgid "Start / End"
-msgstr "Inici / Final"
+# AI Translated
+msgid "X Start / End: "
+msgstr "Inici / Final X: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Inici / Final Y: "
msgid "Frequency settings"
msgstr "Configuració de freqüència"
@@ -20734,8 +23171,13 @@ msgstr "Comproveu la compatibilitat del firmware."
msgid "Frequency: "
msgstr "Freqüència: "
-msgid "Damp"
-msgstr "Amortiment"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Freqüència X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Esmorteïment (inici / final): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "El firmware RepRap utilitza la mateixa freqüència per a ambdós eixos."
@@ -20871,8 +23313,10 @@ msgstr "Activar l'IFS"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "S'han detectat %d ranures IFS a la impressora."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "S'ha detectat %d ranura IFS a la impressora."
+msgstr[1] "S'han detectat %d ranures IFS a la impressora."
# AI Translated
msgid "This printer does not report a material station."
@@ -21001,8 +23445,10 @@ msgstr "Restar de"
msgid "Subtract with"
msgstr "Restar amb"
-msgid "selected"
-msgstr "sel·leccionat"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 seleccionat"
# AI Translated
msgid "Part 1"
@@ -21117,9 +23563,6 @@ msgstr "per exemple, Bàsic, Mat, Seda, Marbre"
msgid "Filament Preset"
msgstr "Perfil de Filament"
-msgid "Create"
-msgstr "Crear"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "El proveïdor no està seleccionat, torneu a seleccionar el proveïdor."
@@ -21434,6 +23877,10 @@ msgstr ""
"Impressora i tots els perfils de filament i de procés que pertanyen a la impressora.\n"
"Es pot compartir amb altres persones."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Incloure la textura i el model personalitzats del llit"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21485,14 +23932,6 @@ msgstr "Nota: Si se suprimeix l'únic perfil sota aquest filament, el filament s
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Els perfils heretats per altres perfils no es poden suprimir"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "El següent perfil hereta d'aquest perfil."
-msgstr[1] "Els següents perfils hereten d'aquest perfil."
-
-msgid "Delete Preset"
-msgstr "Suprimir Perfil"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Esteu segur que voleu suprimir el perfil seleccionat?"
@@ -21569,10 +24008,12 @@ msgstr "L'inici, el final o el pas no tenen un valor vàlid."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "El nombre d'extrusors de la impressora i la impressora seleccionada per al calibratge no coincideixen."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "El diàmetre del broquet de l'extrusor %s és 0.2mm i no admet el calibratge automàtic de la dinàmica de flux."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21588,6 +24029,12 @@ msgstr ""
"El diàmetre del broquet no coincideix amb el diàmetre real del broquet de la impressora.\n"
"Feu clic al botó Sincronitza a dalt i reinicieu el calibratge."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "La informació del broquet de la impressora %s no s'ha establert. Configureu-la abans de procedir amb el calibratge."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21665,6 +24112,11 @@ msgstr "Detectar impressores Creality de la sèrie K"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Feu clic a Escanejar per cercar impressores de la sèrie K a la vostra xarxa."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Model"
+
# AI Translated
msgid "Scan"
msgstr "Escanejar"
@@ -21687,8 +24139,10 @@ msgstr "No s'ha trobat cap impressora de la sèrie K. Assegureu-vos que la impre
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "S'han trobat %zu impressores Creality. Seleccioneu-ne una i feu clic a Utilitzar la seleccionada."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "S'ha trobat %zu impressora Creality. Seleccioneu-la i feu clic a Utilitzar la seleccionada."
+msgstr[1] "S'han trobat %zu impressores Creality. Seleccioneu-ne una i feu clic a Utilitzar la seleccionada."
# AI Translated
msgid "Active"
@@ -21807,8 +24261,12 @@ msgid "Failed to launch a new instance."
msgstr "No s'ha pogut iniciar una instància nova."
# AI Translated
-msgid "log(s)"
-msgstr "registre(s)"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d registre (%.2f %s)"
+msgstr[1] "%d registres (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -21863,17 +24321,37 @@ msgid "Authorizing..."
msgstr "Autoritzant..."
# AI Translated
-msgid "Error. Can't get API token for authorization"
-msgstr "Error. No es pot obtenir el testimoni d'api per a l'autorització"
+msgid "Maximum login retries exceeded"
+msgstr "S'ha superat el nombre màxim de reintents d'inici de sessió"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "Error HTTP: %1%"
# AI Translated
msgid "Could not parse server response."
msgstr "No s'ha pogut analitzar la resposta del servidor."
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "Error. No es pot obtenir el testimoni d'api per a l'autorització"
+
# AI Translated
msgid "Error saving session to file"
msgstr "Error en desar la sessió al fitxer"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "La connexió amb el núvol de 3DPrinterOS funciona correctament."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Sessió iniciada com a usuari: %1%"
+
# AI Translated
msgid "Error session check"
msgstr "Error en la comprovació de la sessió"
@@ -21910,6 +24388,42 @@ msgstr "Contrasenya incorrecta"
msgid "Could not get resources to create a new connection"
msgstr "No s'han pogut obtenir recursos per crear una connexió nova"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "La connexió amb UltiMaker funciona correctament."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "No s'ha pogut connectar amb UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Error en generar les credencials! Consulteu el registre per obtenir més detalls."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "ERROR: L'ID o la KEY és buit. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Nom d'usuari: %1% Contrasenya: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Les credencials d'autenticació estan pendents d'aprovació. Aproveu l'accés mitjançant el quadre de diàleg de la pantalla de la impressora."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Credencials d'autenticació no vàlides"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Error: no s'han trobat credencials d'autenticació!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Pujada no activada a targeta FlashAir."
@@ -22027,6 +24541,14 @@ msgstr ""
"Cos del missatge: \"%1%\"\n"
"Error: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "La connexió amb ESP3D funciona correctament."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "No s'ha pogut connectar amb ESP3D"
+
msgid "No AMS"
msgstr "Sense AMS"
@@ -22098,6 +24620,11 @@ msgstr "El nombre màxim d'impressores que es poden seleccionar és de %d"
msgid "No task"
msgstr "Sense tasca"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Veure"
+
msgid "Edit Printers"
msgstr "Editar Impressores"
@@ -22139,6 +24666,12 @@ msgstr "Impressió Fallida"
msgid "Printing Pause"
msgstr "Pausar Impressió"
+# AI Translated
+# Needs human review: Printer status label (msgctxt Device status); assumed to be the 'preparing' state, matching 'Imprimint' for Printing. Check it on the device page.
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Preparant"
+
msgid "Pending"
msgstr "Pendent"
@@ -22171,9 +24704,6 @@ msgstr "Activar l'assignació intel·ligent de filament: assigna un filament a d
msgid "File Saving"
msgstr "Desament de fitxers"
-msgid "Don't remind me again"
-msgstr "No m'ho recordis més"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "No apareixerà cap més finestra emergent. Podeu reobrir-la a 'Preferències'"
@@ -22198,17 +24728,24 @@ msgstr "Assigneu manualment el filament al broquet esquerre o dret"
msgid "Global settings"
msgstr "Configuració global"
-# AI Translated
-msgid "Video tutorial"
-msgstr "Tutorial en vídeo"
-
msgid "(Sync with printer)"
msgstr "(Sincronitza amb la impressora)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Error: l'extrusor %s no té cap broquet %s disponible; el resultat d'agrupació actual no és vàlid."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Error: l'extrusor esquerre no té cap broquet estàndard disponible; el resultat d'agrupació actual no és vàlid."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Error: l'extrusor esquerre no té cap broquet d'alt flux disponible; el resultat d'agrupació actual no és vàlid."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Error: l'extrusor dret no té cap broquet estàndard disponible; el resultat d'agrupació actual no és vàlid."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Error: l'extrusor dret no té cap broquet d'alt flux disponible; el resultat d'agrupació actual no és vàlid."
msgid "We will slice according to this grouping method:"
msgstr "Tallarem segons aquest mètode d'agrupació:"
@@ -22251,9 +24788,6 @@ msgstr "No s'ha pogut connectar a SimplyPrint"
msgid "Internal error"
msgstr "Error intern"
-msgid "Unknown error"
-msgstr "Error desconegut"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "No s'ha enllaçat el compte de SimplyPrint. Aneu a Opcions de Connexió per configurar-lo."
@@ -22261,6 +24795,16 @@ msgstr "No s'ha enllaçat el compte de SimplyPrint. Aneu a Opcions de Connexió
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge ha retornat una resposta JSON no vàlida."
+# AI Translated
+msgid "Request failed"
+msgstr "La sol·licitud ha fallat"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Error de l'API local de Flashforge %1%: %2%"
+
# AI Translated
msgid "No Flashforge printers were discovered on the local network."
msgstr "No s'ha detectat cap impressora Flashforge a la xarxa local."
@@ -22444,8 +24988,12 @@ msgstr "Advertència: el tipus de Vora d'Adherència no està configurat com a \
msgid "Set the brim type of this object to \"painted\""
msgstr "Estableix el tipus de vora d'aquest objecte a \"pintat\""
-msgid "invalid brim ears"
-msgstr " orelles de la Vora d'Adherència invàlides"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d orella de la Vora d'Adherència no vàlida"
+msgstr[1] "%d orelles de la Vora d'Adherència no vàlides"
msgid "Brim Ears"
msgstr "Orelles de la Vora d'Adherència"
@@ -22474,6 +25022,7 @@ msgstr "La càrrega d'informació dels objectes a ometre ha fallat. Torneu-ho a
msgid "Failed to create the temporary folder."
msgstr "No s'ha pogut crear la carpeta temporal."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Seleccionats"
@@ -22493,9 +25042,12 @@ msgstr "Ometent tots els objectes."
msgid "The printing job will be stopped. Continue?"
msgstr "El treball d'impressió s'aturarà. Continuar?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Ometent %d objectes."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "Ometent %d objecte."
+msgstr[1] "Ometent %d objectes."
msgid "This action cannot be undone. Continue?"
msgstr "Aquesta acció no es pot desfer. Continuar?"
@@ -22645,6 +25197,42 @@ msgstr "Si s'activa, els valors anteriors es desen com a valors per defecte per
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Exportar perfils"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Mostrar a la carpeta"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Suprimir el paquet"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Cancel·lar la subscripció al paquet"
+
+# AI Translated
+msgid "Update available"
+msgstr "Actualització disponible"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Paquet no autoritzat"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Obrir aquest paquet al navegador"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "Subscrit"
+
+# AI Translated
+msgid "Local"
+msgstr "Local"
+
# AI Translated
msgid "Bundle folder does not exist."
msgstr "La carpeta del paquet no existeix."
@@ -22689,6 +25277,14 @@ msgstr "Cancel·lar la subscripció al paquet"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Exportar a OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Exportar a una carpeta"
+
# AI Translated
msgid "Save preset bundle"
msgstr "Desar el paquet de perfils"
@@ -22790,6 +25386,11 @@ msgstr "Control d'assecatge de l'AMS"
msgid "Filament Drying Settings"
msgstr "Configuració d'assecatge del filament"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "h"
+
# AI Translated
msgid "Stopping"
msgstr "Aturant"
@@ -22969,6 +25570,11 @@ msgstr "Iniciant: comprovant l'entrada d'aire"
msgid "Starting: Checking air vent"
msgstr "Iniciant: comprovant la sortida d'aire"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "No s'ha pogut crear el directori %1%"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "El filament pot no ser compatible amb la configuració actual de la màquina. S'utilitzaran els perfils de filament genèrics."
@@ -22984,6 +25590,105 @@ msgstr "El filament pot no ser compatible amb la configuració actual de la màq
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "El model de filament és desconegut. S'utilitzarà un perfil de filament aleatori."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Fitxer de configuració desconegut: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Fitxer de configuració no vàlid: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "ranura %1% -> ranura %2%: filament mixt"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "definició de filament mixt: s'ha assolit el límit de ranures de filament"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "s'ha assolit el límit de ranures de filament"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "el límit de filaments de la impressora és %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "ranura %1% -> ranura %2%: filament mixt sense assignar (el límit de filaments de la impressora és %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "ranura %1%: filament mixt sense assignar (el límit de filaments de la impressora és %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "ranura %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "ranura %1%: no s'ha pogut importar la definició del filament mixt"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "necessita almenys dos components"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "els components fan referència a ranures que falten"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "definició de filament mixt: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "ranura %1%: no s'ha pogut importar la definició del filament mixt (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "ranura %1%: %2% -> %3% (substitut)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"No s'ha pogut carregar el fitxer de configuració %1%\n"
+"Es recomana netejar primer el directori %2%"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Versió de configuració del fabricant %1%: %2% no vàlida\n"
+"Es recomana netejar primer el directori %3%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"No s'ha pogut carregar el fitxer de configuració %1%: %2%\n"
+"Es recomana netejar primer el directori %3%"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Amagar els plans de referència i els eixos"
@@ -23297,6 +26002,11 @@ msgstr "No hi ha cap cos de superfície per engruixir — primer creeu una opera
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Referència / Corba (pla / eix / sist. coord. / hèlix / projecció)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Pla"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Pla de referència (desplaçat / inclinat / pla mitjà / tangent / dues arestes / coincident)"
@@ -23363,6 +26073,11 @@ msgstr "Moure i/o girar un cos existent"
msgid "Transform needs a body — add or import one first"
msgstr "La transformació necessita un cos — primer afegiu-ne o importeu-ne un"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Mirall"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Reflectir un cos respecte a un pla"
@@ -23456,6 +26171,11 @@ msgstr "(cap)"
msgid "Hole / thread"
msgstr "Forat / rosca"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Forat"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Perforar un forat, centrat en una cara triada o col·locat en un pla"
@@ -23500,6 +26220,11 @@ msgstr "Feu clic a 2 punts o a una línia / cercle / arc per col·locar una cota
msgid "Line / polyline"
msgstr "Línia / polilínia"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Línia"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Feu clic a l'inici i després al final — després establiu la longitud exacta"
@@ -23636,6 +26361,9 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Feu clic als punts de control; doble clic, clic dret o Retorn per acabar"
+msgid "Point"
+msgstr "Punt"
+
# AI Translated
msgid "Click to place a point"
msgstr "Feu clic per col·locar un punt"
@@ -23754,16 +26482,17 @@ msgstr "Trieu entitats, arrossegueu la nansa de l'angle total i feu clic al nomb
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Feu clic al centre i després a un vèrtex — %d costats, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Feu clic al centre i després a un vèrtex — %d costat, circumscrit"
+msgstr[1] "Feu clic al centre i després a un vèrtex — %d costats, circumscrits"
# AI Translated
-msgid "circumscribed"
-msgstr "circumscrit"
-
-# AI Translated
-msgid "inscribed"
-msgstr "inscrit"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Feu clic al centre i després a un vèrtex — %d costat, inscrit"
+msgstr[1] "Feu clic al centre i després a un vèrtex — %d costats, inscrits"
# AI Translated
msgid "Polygon"
@@ -24103,6 +26832,11 @@ msgstr "Sobre una cara"
msgid "Thread plane"
msgstr "Pla de la rosca"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Estàndard"
+
# AI Translated
msgid "Pitch"
msgstr "Pas"
@@ -24290,6 +27024,9 @@ msgstr "Trieu una cara del sòlid per obrir-la i després establiu el gruix de p
msgid "(pick a side face)"
msgstr "(trieu una cara lateral)"
+msgid "Face"
+msgstr "Cara"
+
# AI Translated
msgid "Draft"
msgstr "Desmoldeig"
@@ -24668,8 +27405,10 @@ msgstr "Esbós actualitzat"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Esbós creat (%zu cotes motrius) — seleccioneu-lo i feu clic dret per fer una extrusió"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Esbós creat (%zu cota motriu) — seleccioneu-lo i feu clic dret per fer una extrusió"
+msgstr[1] "Esbós creat (%zu cotes motrius) — seleccioneu-lo i feu clic dret per fer una extrusió"
# AI Translated
#, c-format, boost-format
@@ -24806,8 +27545,10 @@ msgstr "Editant: Esbós %d · N = mirar perpendicular al pla · Confirma
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "D'acord — %zu triangles"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "D'acord — %zu triangle"
+msgstr[1] "D'acord — %zu triangles"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -24893,10 +27634,18 @@ msgstr "La malla no conté cap triangle"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Aquesta malla té %d triangle. Cada triangle es converteix en una cara B-rep abans de fusionar les cares coplanàries, de manera que importar-la pot trigar molt i deixar un cos lent d'editar. Normalment és millor simplificar primer la malla.\n"
+"\n"
+"Voleu importar-la igualment?"
+msgstr[1] ""
"Aquesta malla té %d triangles. Cada triangle es converteix en una cara B-rep abans de fusionar les cares coplanàries, de manera que importar-la pot trigar molt i deixar un cos lent d'editar. Normalment és millor simplificar primer la malla.\n"
"\n"
"Voleu importar-la igualment?"
@@ -24925,8 +27674,8 @@ msgstr "La importació de la malla ha fallat: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Sòlid importat — %d triangles → %d cares, volum %.2f mm³. Trieu una cara o una aresta i després Arrodoniment / Tall / Buidat per modificar"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Sòlid importat — triangles: %d → cares: %d, volum %.2f mm³. Trieu una cara o una aresta i després Arrodoniment / Tall / Buidat per modificar"
# AI Translated
#, c-format, boost-format
@@ -24943,8 +27692,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s afegit a l'esbós — confirmeu per validar-lo"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — arrossegueu per col·locar/dimensionar i després confirmeu"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — arrossegueu per col·locar/dimensionar i després confirmeu"
# AI Translated
msgid "Insert canceled"
@@ -25151,9 +27902,12 @@ msgid "a geometry operation failed"
msgstr "ha fallat una operació geomètrica"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d triats"
+msgid_plural " · %d picked"
+msgstr[0] " · %d triat"
+msgstr[1] " · %d triats"
# AI Translated
#, c-format, boost-format
@@ -25169,7 +27923,9 @@ msgstr "Seleccionar — feu clic en una entitat per triar-la · arrossegueu un
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d triats · ara trieu una restricció (Horitzontal, Paral·lel, Tangent, Igual…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d triat · ara trieu una restricció (Horitzontal, Paral·lel, Tangent, Igual…)"
+msgstr[1] "%d triats · ara trieu una restricció (Horitzontal, Paral·lel, Tangent, Igual…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -25430,7 +28186,9 @@ msgstr "Mirall — eix definit · ara feu clic a les entitats a reflectir ·
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Mirall — eix definit · %d a reflectir · feu clic en una altra per afegir-la o treure-la · Retorn aplica"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Mirall — eix definit · %d a reflectir · feu clic en una altra per afegir-la o treure-la · Retorn aplica"
+msgstr[1] "Mirall — eix definit · %d a reflectir · feu clic en una altra per afegir-la o treure-la · Retorn aplica"
# AI Translated
msgid "Move — click the entities to move"
@@ -25553,8 +28311,10 @@ msgstr "Punt d'esbós"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d entitats d'esbós"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d entitat d'esbós"
+msgstr[1] "%d entitats d'esbós"
# AI Translated
msgid "select something first"
@@ -26090,8 +28850,10 @@ msgid "Applied edit"
msgstr "Edició aplicada"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — escriviu un valor i premeu Retorn (o Confirmar)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — escriviu un valor i premeu Retorn (o Confirmar)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -26163,10 +28925,23 @@ msgstr "Enviar a la placa — enviar el sòlid a Preparació"
msgid "Nothing to commit — add a feature first"
msgstr "No hi ha res a enviar — primer afegiu una operació"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Cos de disseny %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Tots els cossos estan amagats — mostreu-ne un abans d'enviar"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Muntatge de disseny"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Cos de disseny"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -26233,8 +29008,10 @@ msgstr "No vàlid: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Previsualització — %zu triangles"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Previsualització — %zu triangle"
+msgstr[1] "Previsualització — %zu triangles"
# AI Translated
#, c-format, boost-format
@@ -26336,8 +29113,10 @@ msgstr "Aquesta cota no es pot satisfer — l'esbós està sobrerestringit"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "%1% restricció(ns) ignorada(es) per no poder actuar sobre aquesta geometria (una el·lipse o una corba spline, o un cercle de mida zero)"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% restricció no pot actuar sobre aquesta geometria (una el·lipse o una corba spline, o un cercle de mida zero) i s'ignora"
+msgstr[1] "%1% restriccions no poden actuar sobre aquesta geometria (una el·lipse o una corba spline, o un cercle de mida zero) i s'ignoren"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -26395,8 +29174,10 @@ msgstr "Xamfrà: la distància sobrepassa un dels costats, o les dues línies no
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "%1% restricció(ns) eliminada(es) en quedar invalidada(es) per l'arrodoniment/xamfrà"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "S'ha eliminat %1% restricció invalidada per l'arrodoniment/xamfrà"
+msgstr[1] "S'han eliminat %1% restriccions invalidades per l'arrodoniment/xamfrà"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -26416,8 +29197,10 @@ msgstr "El nombre de còpies ha de ser un nombre enter, 2 o més"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "%1% restricció(ns) alliberada(es) per la transformació"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "%1% restricció alliberada per la transformació"
+msgstr[1] "%1% restriccions alliberades per la transformació"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26568,11 +29351,6 @@ msgstr "Engruiximent de superfície"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "L'engruiximent de superfície necessita un cos de superfície — primer creeu-ne un amb una eina de superfície"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Forat"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26657,11 +29435,6 @@ msgstr "Matriu circular"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Repetir el cos al voltant d'un eix — establiu el nombre i l'angle total"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Mirall"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26698,11 +29471,6 @@ msgstr "L'alineació necessita un cos — primer afegiu-ne o importeu-ne un"
msgid "Align the body to a picked face or plane"
msgstr "Alinear el cos amb una cara o un pla triats"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Pla"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -26808,11 +29576,6 @@ msgstr "Suprimir el cos"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Suprimir tot aquest cos — elimina l'operació a partir de la qual s'ha creat"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Línia"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -27127,214 +29890,6 @@ msgstr "Aquest tipus de lletra no té contorn per a aquest text"
msgid "Size: %.1f × %.1f mm"
msgstr "Mida: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Primitiva"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "S'ha generat una malla buida"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Caixa"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Ràpid:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Amplada (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Profunditat (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Alçada (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "R inferior"
-
-# AI Translated
-msgid "Top R"
-msgstr "R superior"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "R major"
-
-# AI Translated
-msgid "Minor R"
-msgstr "R menor"
-
-# AI Translated
-msgid "All edges"
-msgstr "Totes les arestes"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Arestes superiors"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Arestes inferiors"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Arestes laterals"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Resolució de la malla"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Afegir forma"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "No hi ha cap perfil exterior"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "No s'ha pogut crear la cara exterior"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "No s'ha pogut construir la cara amb forats"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "La revolució ha fallat"
-
-# AI Translated
-msgid "Profile"
-msgstr "Perfil"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Començar un perfil nou (per a forats)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segments"
-
-# AI Translated
-msgid "Sides"
-msgstr "Costats"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Feu clic al llenç per dibuixar"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Ajustar a la graella"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Pas de la graella"
-
-# AI Translated
-msgid "Outer"
-msgstr "Exterior"
-
-# AI Translated
-msgid "closed"
-msgstr "tancat"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% punts %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (Superior)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (Frontal)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (Lateral)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Graus de revolució"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "Establiu 0 per a extrusió, >0 per a revolució"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Cavitat (tall)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu perfil tancat"
-msgstr[1] "%zu perfils tancats"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Dibuixeu un perfil tancat per activar-ho"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Esborrar-ho tot"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Resultat buit"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Extrusió: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Revolució: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "No hi ha cap objecte seleccionat"
-
-# AI Translated
-msgid "Face failed"
-msgstr "No s'ha pogut crear la cara"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "No s'ha pogut crear la cara amb forats"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "La malla de l'eina és buida"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Cavitat afegida (volum negatiu)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Cavitat: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -27457,6 +30012,10 @@ msgstr "Gizmo ensamblar"
msgid "Gizmo brim ears"
msgstr "Gizmo orelles de la Vora d'Adherència"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Gizmo de pintat de desplaçament de textura"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Barra de desplaçament Vertical - Mou el barra de desplaçament actiu cap Amunt"
@@ -27691,6 +30250,12 @@ msgstr "necessita una cara cilíndrica a tots dos extrems — el connector %1%
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "necessita una cara cilíndrica a tots dos extrems — el connector %1% és en una cara corba"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (falta el pla base)"
+
# AI Translated
msgid "two points are coincident"
msgstr "els dos punts són coincidents"
@@ -27719,10 +30284,31 @@ msgstr "els plans són paral·lels (sense intersecció)"
msgid "zero-length direction"
msgstr "direcció de longitud zero"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "una operació treballa sobre el cos %1%, que no existeix en aquest punt de l'historial"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "\"%1%\" treballa sobre un cos creat per una operació que s'ha suprimit o ocultat"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "\"%1%\" treballa sobre un cos que no existeix en aquest punt de l'historial"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "una operació posterior utilitza aquesta operació"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "\"%1%\" utilitza \"%2%\", de manera que no pot anar abans"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "les entitats de l'esbós no formen un bucle tancat"
@@ -27733,9 +30319,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Obert a (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...i %1% extrem(s) obert(s) més"
+msgid "Open ends not shown: %1%"
+msgstr "Extrems oberts no mostrats: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "revolució: la línia de l'eix ja no és a l'esbós — torneu a triar l'eix"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "revolució: la línia de l'eix no té longitud"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -27883,6 +30478,30 @@ msgstr "ha fallat el contorn del forat"
msgid "hole cut failed"
msgstr "ha fallat el tall del forat"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "rosca: el diàmetre ha de ser com a mínim d'1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "rosca: el pas ha de ser superior a 0,1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "rosca: la profunditat ha d'estar entre 0 i 0,7 x el pas"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "rosca: la profunditat és massa gran per a aquest diàmetre"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "rosca: la longitud ha de ser superior a mig pas"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "rosca: massa voltes (longitud / pas ha de ser inferior a 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "la rosca interior necessita un cos"
@@ -27943,6 +30562,22 @@ msgstr "ha fallat suprimir cara"
msgid "delete_face produced no geometry"
msgstr "suprimir cara no ha produït cap geometria"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "booleà: no hi ha cap cos objectiu"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "booleà: no hi ha cap cos eina — trieu un segon cos"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "booleà: l'objectiu i l'eina són el mateix cos"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "booleà: un cos no té geometria"
+
# AI Translated
msgid "boolean operation failed"
msgstr "ha fallat l'operació booleana"
@@ -28271,6 +30906,10 @@ msgstr "Imatges del model"
msgid "Auxiliaries"
msgstr "Auxiliars"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Torre de purga de la cinta"
+
# AI Translated
msgid "Project Filament List"
msgstr "Llista de filaments del projecte"
@@ -28305,8 +30944,18 @@ msgstr "Calen almenys dos filaments del mateix tipus de material per a la descom
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "La llista de materials admet com a màxim %1% colors. Després de la descomposició %2%, el nombre de materials superaria %1%. Elimineu els filaments no utilitzats a la pantalla principal abans de descompondre."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "La llista de materials admet com a màxim %1% color. Després de la descomposició de la llista de materials, el nombre de materials superaria %1%. Elimineu els filaments no utilitzats a la pantalla principal abans de descompondre."
+msgstr[1] "La llista de materials admet com a màxim %1% colors. Després de la descomposició de la llista de materials, el nombre de materials superaria %1%. Elimineu els filaments no utilitzats a la pantalla principal abans de descompondre."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "La llista de materials admet com a màxim %1% color. Després de la descomposició %2%, el nombre de materials superaria %1%. Elimineu els filaments no utilitzats a la pantalla principal abans de descompondre."
+msgstr[1] "La llista de materials admet com a màxim %1% colors. Després de la descomposició %2%, el nombre de materials superaria %1%. Elimineu els filaments no utilitzats a la pantalla principal abans de descompondre."
# AI Translated
msgid "Cyan"
@@ -28336,6 +30985,13 @@ msgstr "Verd"
msgid "Blue"
msgstr "Blau"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -28343,7 +30999,1235 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "La llista de filaments actual no conté %s. Després de la descomposició es crearà automàticament un filament de projecte que necessita el filament mixt."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "La llista de filaments actual no conté %s. Després de la descomposició es crearà automàticament un filament de projecte que necessita el filament mixt."
+msgstr[1] "La llista de filaments actual no conté %s. Després de la descomposició es crearan automàticament els filaments de projecte que necessita el filament mixt."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Opacitat"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -28439,10 +32323,6 @@ msgstr "La meva configuració"
msgid "Custom Printer Setup"
msgstr "Configuració d'impressora personalitzada"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Impressora personalitzada"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Definir un perfil d'impressora personalitzat"
@@ -28710,6 +32590,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Fixar"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Escriure un valor exacte en un control lliscant"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Icona d'edició a l'extrem dret d'un control lliscant"
+
# AI Translated
msgid "Texture displacement"
msgstr "Desplaçament de textura"
@@ -28846,6 +32734,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Eliminar la textura"
+# AI Translated
+msgid "Adjust image"
+msgstr "Ajustar la imatge"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Brillantor"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Contrast"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Nitidesa"
+
+# AI Translated
+msgid "Blur"
+msgstr "Desenfocament"
+
+# AI Translated
+msgid "Hue"
+msgstr "To"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Ressalta els detalls més fins de la imatge. S'aplica després del Desenfocament, de manera que es poden combinar: elimineu el granulat amb el desenfocament i després accentueu les vores que quedin."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Desenfoca la imatge en si. El control lliscant Suavitzat propi de la capa suavitza el relleu sense alterar la imatge, i és el primer que convé provar."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Aquesta textura està en escala de grisos, així que no té cap to que canviar."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "El model s'actualitza quan deixeu anar un control lliscant. Desar com a còpia escriu la imatge ajustada a la vostra biblioteca de textures i fa que aquesta capa l'utilitzi."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Desar com a còpia"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Eliminar una capa de desplaçament de textura"
@@ -28982,6 +32914,15 @@ msgstr "Escriu cada etapa capturada com a fitxer OBJ, perquè es puguin obrir un
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "L'àrea pintada no s'ha pogut traslladar al model remallat, de manera que no s'ha canviat res. Canvieu al mode Pro i remalleu abans de pintar."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Rang: de %1% a %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Escriviu un valor en lloc d'arrossegar. Ctrl+clic al control lliscant fa el mateix."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -29088,8 +33029,8 @@ msgid "Click a triangle to paint it"
msgstr "Feu clic a un triangle per pintar-lo"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Cal que la capa activa estigui mapada amb Desplegar (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Només per a una capa amb mapatge Desplegar (LSCM) - establiu el Mapatge de la capa activa a Desplegar per fer servir aquesta vista."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -29104,16 +33045,16 @@ msgid "Checker"
msgstr "Escaquer"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Escaquer - una quadrícula de prova en lloc de la textura. On els quadrats es mantenen quadrats, la textura no es distorsiona; on s'estiren, també s'estirarà la textura"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Escaquer - una quadrícula de prova en lloc de la textura. On els quadrats es mantenen quadrats, la textura no es distorsiona; on s'estiren, la textura també s'estirarà. Obre l'editor UV si està tancat"
# AI Translated
msgid "Distortion"
msgstr "Distorsió"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Distorsió - mapa de calor de l'estirament, de blau a vermell, sobre el desplegament"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Distorsió - mapa de calor de l'estirament, de blau a vermell, sobre el desplegament. Obre l'editor UV si està tancat"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -29139,6 +33080,10 @@ msgstr "Trieu una imatge diferent per a aquesta capa. La pintura, la profunditat
msgid "not painted"
msgstr "sense pintar"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Brillantor, contrast, nitidesa, desenfocament i to, que es mostren a la imatge i al model mentre els ajusteu. Desar com a còpia escriu el resultat a la vostra biblioteca de textures i fa que aquesta capa l'utilitzi."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Pujar - s'aplica abans"
@@ -29159,10 +33104,20 @@ msgstr "Alçada del relleu: quant aixeca la superfície el blanc de la textura,
msgid "Tile size"
msgstr "Mida de tessel·la"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Mapat segons la disposició UV del propi model, que ja és la col·locació: una còpia de la textura el cobreix exactament, de manera que no cal definir cap mida de tessel·la."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Amplada d'una còpia de la textura sobre el model. Un valor més petit repeteix el patró més sovint i en fa el detall més fi; amb Tessel·lat desactivat, és la mida de la còpia única."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Gira la textura sobre la superfície, en graus - per alinear un patró amb una aresta del model."
@@ -29230,28 +33185,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Intercala dos filaments per simular els colors intermedis, de manera que uns quants filaments poden cobrir una foto o un degradat. Una imatge de colors plans s'imprimeix igual en tots dos casos. Desactivat, utilitza un filament per àrea."
# AI Translated
-msgid "Mix by"
-msgstr "Barrejar per"
+msgid "Mixed colors"
+msgstr "Colors mixtos"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Superfície"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "El nombre màxim de filaments mixtos que pot afegir una fixació. Es trien a partir dels colors de la textura, i només es creen els que la fixació fa servir realment."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Capes: els dos filaments s'alternen entre capes d'impressió, cosa que es fon suaument a les superfícies verticals però desapareix a les horitzontals, on una capa sencera és una sola franja.\n"
-"Superfície: un escaquer fi a través de la superfície, que funciona amb qualsevol angle però es pot percebre com una textura en lloc d'una barreja.\n"
-"Automàtic: capes a les cares verticals; les cares horitzontals prenen el filament únic més proper, ja que un escaquer s'hi veu com un patró."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% colors imprimibles a partir de %2% filaments"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "a partir de %1% filament"
+msgstr[1] "a partir de %1% filaments"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% color imprimible %2%"
+msgstr[1] "%1% colors imprimibles %2%"
# AI Translated
msgid "Denoise"
@@ -29302,6 +33263,18 @@ msgstr "Des de la vista"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Des de la vista - projecta directament sobre l'àrea pintada des d'on mireu, com un projector de diapositives."
+# AI Translated
+msgid "Model UV"
+msgstr "UV del model"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "UV del model - utilitza les coordenades de textura amb què ja venia el model, de manera que una textura feta per a aquest model queda exactament on es va pintar. No es desplega res, i la Mida de tessel·la no s'aplica: la disposició del propi model és la col·locació."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Aquest model no porta coordenades de textura pròpies. Només un model importat amb un canal UV - un OBJ amb textura, per exemple - es pot mapar amb elles."
+
# AI Translated
msgid "Open UV editor"
msgstr "Obrir l'editor UV"
@@ -29316,8 +33289,10 @@ msgstr "Encara no desplegat"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% illes"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% illa"
+msgstr[1] "%1% illes"
# AI Translated
msgid "Capture current view"
@@ -29347,10 +33322,6 @@ msgstr "Marc de projecció"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Obre una finestra que arrossegueu sobre el model. Tot el que es veu a través d'ella rep la textura, i la seva vora es converteix en el límit de la projecció."
-# AI Translated
-msgid "Opacity"
-msgstr "Opacitat"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Com de sòlida es veu la finestra del marc mentre la col·loqueu. Abaixeu-la per veure el model a través seu; no afecta el resultat."
@@ -29404,6 +33375,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Afegir"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Substituir"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -29423,8 +33399,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "La capa base no té res a sota amb què combinar-se, així que sempre s'aplica com a Afegir."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Què fa aquesta capa on se superposa amb les de sota. Afegir i Restar hi acumulen relleu o el retallen. Multiplicar i Dividir escalen el que hi ha a sota, cosa que converteix aquesta capa en una màscara a sobre seu - aleshores Profunditat actua com a intensitat, i 1 mm deixa intactes les àrees blanques."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Què fa aquesta capa on se superposa amb les de sota. Afegir i Restar hi acumulen relleu o el retallen. Substituir les reemplaça, de manera que només queda el relleu d'aquesta capa allà on es pinta. Multiplicar i Dividir escalen el que hi ha a sota, cosa que converteix aquesta capa en una màscara a sobre seu - aleshores Profunditat actua com a intensitat, i 1 mm deixa intactes les àrees blanques."
# AI Translated
msgid "Adjust placement"
@@ -29448,8 +33424,10 @@ msgstr "Més paràmetres"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Les %1% capes estan en ús"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "L'única capa (%1%) està en ús"
+msgstr[1] "Les %1% capes estan en ús"
# AI Translated
msgid "Add layer"
@@ -29529,8 +33507,10 @@ msgstr "Pressupost de triangles: s'estableix amb Triangles, a sota."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Previsualització: %1% triangles"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Previsualització: %1% triangle"
+msgstr[1] "Previsualització: %1% triangles"
# AI Translated
msgid "Steps"
@@ -29572,6 +33552,12 @@ msgstr "Remallat"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Mida de triangle amb què es reconstrueix tot el model, en mil·límetres. El desplaçament funciona millor sobre una malla uniforme; això és el que en crea una a partir d'una importació irregular."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Mantenir les arestes vives"
@@ -29706,14 +33692,6 @@ msgstr "Calen uns %1% triangles, pressupost %2% - la fixació simplificarà la m
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Quants milers de triangles pot afegir el refinament al model. Sempre es divideix primer el triangle que s'ajusta pitjor, de manera que fins i tot una execució que ho gasta tot ho ha gastat on més es nota. Augmenteu-lo si el relleu encara es veu tosc."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Atura la fixació. El que ja s'hagi completat es queda al model i es pot desfer."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Tanca l'eina sense fixar. La pintura, les capes i els paràmetres es queden amb el model."
-
# AI Translated
msgid "Preparing..."
msgstr "Preparant..."
@@ -29738,35 +33716,56 @@ msgstr "Converteix els mapes d'alçades pintats en geometria real, movent els v
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Converteix els mapes d'alçades pintats en geometria real. Primer la malla es remalla a una densitat uniforme i es refina on la textura es corba, perquè el detall tingui vèrtexs on caure - tot en un sol pas."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Atura la fixació. El que ja s'hagi completat es queda al model i es pot desfer."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Tanca l'eina sense fixar. La pintura, les capes i els paràmetres es queden amb el model."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Model: %1% triangles - la fixació refina fins a la resolució anterior, dins del seu pressupost"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Model: %1% triangle - la fixació refina fins a la resolució anterior, dins del seu pressupost"
+msgstr[1] "Model: %1% triangles - la fixació refina fins a la resolució anterior, dins del seu pressupost"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Fixar mou els vèrtexs existents - el model es queda amb %1% triangle"
+msgstr[1] "Fixar mou els vèrtexs existents - el model es queda amb %1% triangles"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Fixar mou els vèrtexs existents - el model es queda amb %1% triangles"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Resultat de la fixació: fins a ~%1% k triangle"
+msgstr[1] "Resultat de la fixació: fins a ~%1% k triangles"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Resultat de la fixació: fins a ~%1% k triangles"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% capes sense pintar, s'ometen"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% capa sense pintar, s'omet"
+msgstr[1] "%1% capes sense pintar, s'ometen"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% sense pintar, s'omet"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% sense pintar, s'omet"
+msgstr[1] "%1% sense pintar, s'ometen"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29784,6 +33783,10 @@ msgstr "Edició del desplaçament de textura"
msgid "Choose SLA archive:"
msgstr "Trieu l'arxiu SLA:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "Fitxers d'arxiu SL1 / SL1S"
+
# AI Translated
msgid "Import file"
msgstr "Importar fitxer"
@@ -29954,6 +33957,34 @@ msgstr "Connectors de filament"
msgid "Printer plugins"
msgstr "Connectors d'impressora"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Aquest perfil no fa servir cap capacitat de connector"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Capacitats que fa servir aquest perfil"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Configuració de la capacitat (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Configuració del connector"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Descartar la configuració específica d'aquest perfil i tornar a fer servir la configuració global"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Restaurar els valors predeterminats"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "JSON no vàlid"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "La configuració no és un JSON vàlid. Els canvis no s'han desat."
@@ -29973,10 +34004,6 @@ msgstr ""
"\n"
"Això descarta la substitució del perfil i utilitza la configuració global."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Restaurar els valors predeterminats"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "S'utilitza la configuració global. Deseu el perfil perquè es conservi."
@@ -30002,10 +34029,6 @@ msgstr "Cancel·lar la subscripció"
msgid "Overwrite Plugin"
msgstr "Sobreescriure el connector"
-# AI Translated
-msgid "Show in folder"
-msgstr "Mostrar a la carpeta"
-
# AI Translated
msgid "Reinstall"
msgstr "Reinstal·lar"
@@ -30014,6 +34037,10 @@ msgstr "Reinstal·lar"
msgid "Delete cache and reload"
msgstr "Esborrar la memòria cau i tornar a carregar"
+# AI Translated
+msgid "No description."
+msgstr "Sense descripció."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Seleccioneu un paquet de connector .py o .whl."
@@ -30046,6 +34073,293 @@ msgstr "Instal·lant el connector"
msgid "Installed \"%s\"."
msgstr "S'ha instal·lat \"%s\"."
+# AI Translated
+msgid "Search plugins"
+msgstr "Cercar connectors"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Esborrar la cerca"
+
+# AI Translated
+msgid "Match case"
+msgstr "Distingir majúscules i minúscules"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Només paraules senceres"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Més opcions d'instal·lació de connectors"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Instal·lar el connector"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Instal·lar un connector local"
+
+# AI Translated
+msgid "Activate"
+msgstr "Activar"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Ordenar per nom"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Ordenar per versió"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Versió del connector"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Ordenar per origen"
+
+# AI Translated
+msgid "Source"
+msgstr "Origen"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Ordenar per estat"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Estat"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Arrossegueu per canviar la mida; feu doble clic per restablir-la"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Canviar la mida de la llista de connectors"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Detalls del connector"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Informació del connector"
+
+# AI Translated
+msgid "Description"
+msgstr "Descripció"
+
+# AI Translated
+msgid "Config"
+msgstr "Configuració"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Registre de canvis"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnòstic"
+
+# AI Translated
+msgid "Types"
+msgstr "Tipus"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Versió instal·lada"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Última versió"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Actualitzar a l'última versió"
+
+# AI Translated
+msgid "No description available"
+msgstr "No hi ha cap descripció disponible"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Seleccioneu un connector per configurar-ne les capacitats"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Capacitats configurables"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Descartar la configuració desada per a aquesta capacitat i restaurar els valors predeterminats del connector"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Registre de canvis del connector"
+
+# AI Translated
+msgid "Date"
+msgstr "Data"
+
+# AI Translated
+msgid "Changes"
+msgstr "Canvis"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "No hi ha cap registre de canvis disponible"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "No s'ha detectat cap problema"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "No s'ha trobat cap connector"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Cap connector coincideix amb \"%s\""
+
+# AI Translated
+# Needs human review: Source badge/filter in the Plugins dialog for plugins the user published to OrcaCloud (next to Subscribed, Orphaned, Local); check 'Meu' reads right there.
+msgid "Mine"
+msgstr "Meu"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Subscrit"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Orfe"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Local"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Algunes capacitats del connector estan activades"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Replegar les capacitats de %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Expandir les capacitats de %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Replegar les capacitats"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Expandir les capacitats"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Obrir aquest connector al navegador"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Capacitats: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Capacitats"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Executar \"%s\""
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Activar %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Sense autorització per a actualitzacions"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Carregant el connector…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Aquest connector no ofereix cap capacitat"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Activeu aquest connector per configurar-ne les capacitats"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Vegeu-ho a OrcaCloud aquí "
+
+# AI Translated
+msgid "Activated"
+msgstr "Activat"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Error d'execució"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Inactiu"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Aquest connector està actiu i a punt per fer-se servir."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Aquest connector encara s'està carregant."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Aquest connector està bloquejat fins que se'n corregeixi l'error."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Aquest connector està carregat, però una capacitat ha informat d'un error."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Aquest connector està inactiu. Activeu-lo per instal·lar-lo o carregar-lo."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Seleccioneu un connector per veure'n l'estat i els detalls."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Orfe: aquest connector ja no està subscrit ni disponible a OrcaCloud. La còpia local continua instal·lada i encara es pot fer servir."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Hi ha disponible una versió més recent del connector."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Les actualitzacions del núvol no estan disponibles perquè aquest connector no té autorització per a actualitzacions."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -30262,6 +34576,57 @@ msgstr "No s'ha pogut tornar a carregar el connector."
msgid "Reloaded \"%s\"."
msgstr "S'ha tornat a carregar \"%s\"."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Connexió de la impressora"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Configureu la connexió de la impressora per veure el dispositiu."
+
+msgid "No model information"
+msgstr "No hi ha informació del model"
+
+msgid "Edit Project Info"
+msgstr "Editar Informació del Projecte"
+
+msgid "Model Information"
+msgstr "Informació del Model"
+
+msgid "Accessories"
+msgstr "Accessoris"
+
+msgid "Profile Information"
+msgstr "Informació del Perfil"
+
+msgid "Model name"
+msgstr "Nom del model"
+
+msgid "Created by"
+msgstr "Creat per"
+
+msgid "Remixed by"
+msgstr "Remesclat per"
+
+msgid "Shared by"
+msgstr "Compartit per"
+
+msgid "Model description"
+msgstr "Descripció del model"
+
+# AI Translated
+msgid "BOM"
+msgstr "Llista de materials"
+
+msgid "Profile name"
+msgstr "Nom del perfil"
+
+msgid "Profile Author"
+msgstr "Autor del perfil"
+
+msgid "Profile description"
+msgstr "Descripció del perfil"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Paràmetres del mode de purga"
@@ -30286,6 +34651,19 @@ msgstr "Redueix els residus de purga i imprimeix més ràpid. Pot causar una lle
msgid "Terminal"
msgstr "Terminal"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... o uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Terminal de connectors a punt."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "El procés ha finalitzat amb el codi: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Ja s'està executant una ordre."
@@ -30332,8 +34710,10 @@ msgstr "Filaments mixtos nous"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "El projecte admet fins a %d filaments. Els filaments addicionals es descartaran."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "El projecte admet fins a %d filament. Els filaments addicionals es descartaran."
+msgstr[1] "El projecte admet fins a %d filaments. Els filaments addicionals es descartaran."
# AI Translated
msgid "Import Model"
@@ -30420,8 +34800,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Ha fallat el càlcul. Ajusteu els paràmetres i torneu-ho a provar."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "La malla té geometria no moldejada o contorns oberts. Podeu importar-la tal com està o reparar-la amb el servei de reparació 3D de Windows abans d'importar-la."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "La malla té geometria no moldejada o contorns oberts. Podeu importar-la tal com està o reparar-la abans d'importar-la."
# AI Translated
msgid "Mesh repair"
@@ -30435,14 +34815,6 @@ msgstr "Importar sense reparar"
msgid "Repair and import"
msgstr "Reparar i importar"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Tingueu en compte que la malla té geometria no moldejada o contorns oberts."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Problema de la malla"
-
# AI Translated
msgid "The selected image is empty."
msgstr "La imatge seleccionada és buida."
@@ -30451,6 +34823,14 @@ msgstr "La imatge seleccionada és buida."
msgid "Failed to prepare the texture for use."
msgstr "No s'ha pogut preparar la textura per utilitzar-la."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "No s'ha pogut crear la carpeta per a les textures importades."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "No s'ha pogut desar la textura importada."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Només es poden eliminar les textures que heu importat vosaltres."
@@ -30459,18 +34839,10 @@ msgstr "Només es poden eliminar les textures que heu importat vosaltres."
msgid "Could not delete the texture file."
msgstr "No s'ha pogut esborrar el fitxer de textura."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "No s'ha pogut crear la carpeta per a les textures importades."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "No s'ha pogut carregar la imatge seleccionada."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "No s'ha pogut desar la textura importada."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "No s'ha pogut llegir el fitxer de textura."
@@ -30514,8 +34886,10 @@ msgstr "Trieu Desplegar com a mapatge d'una capa de textura per editar-ne aquí
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d vèrtexs seleccionats | arrossegar = moure junts, Màj/Ctrl + clic = afegir/treure"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d vèrtex seleccionat | arrossegar = moure junts, Màj/Ctrl + clic = afegir/treure"
+msgstr[1] "%d vèrtexs seleccionats | arrossegar = moure junts, Màj/Ctrl + clic = afegir/treure"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30523,8 +34897,10 @@ msgstr "Mode vèrtex: arrossegueu un vèrtex per canviar la forma | Màj/Ctrl
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d arestes seleccionades | arrossegar = moure juntes, Màj/Ctrl + clic = afegir/treure"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d aresta seleccionada | arrossegar = moure juntes, Màj/Ctrl + clic = afegir/treure"
+msgstr[1] "%d arestes seleccionades | arrossegar = moure juntes, Màj/Ctrl + clic = afegir/treure"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30532,8 +34908,10 @@ msgstr "Mode aresta: arrossegueu una aresta d'illa per canviar la forma | Màj
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d illes seleccionades | arrossegar = moure juntes, Màj/Ctrl + clic = afegir/treure, R/S = girar/escalar la principal"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d illa seleccionada | arrossegar = moure juntes, Màj/Ctrl + clic = afegir/treure, R/S = girar/escalar la principal"
+msgstr[1] "%d illes seleccionades | arrossegar = moure juntes, Màj/Ctrl + clic = afegir/treure, R/S = girar/escalar la principal"
# AI Translated
#, c-format, boost-format
@@ -30552,6 +34930,10 @@ msgstr " | acoblament ACTIVAT"
msgid "Change texture - choose another one from the texture library"
msgstr "Canviar la textura - trieu-ne una altra de la biblioteca de textures"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Mida de tessel·la de la capa activa: quina part del model cobreix una repetició de la textura. El llenç es mesura en tessel·les, de manera que una cel·la de la graella és una repetició. Canvieu-la amb la Mida de tessel·la a la configuració de la capa."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Mapa d'alçades - mostra la textura de la capa sota les illes"
@@ -30585,16 +34967,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Distribueix el desplegament com una xarxa connectada: les peces que comparteixen una aresta es despleguen l'una al costat de l'altra (un cub es converteix en una xarxa unida en lloc de sis quadrats solts). Continuen sent illes separades, així que després encara podeu moure qualsevol d'elles a mà."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Illa - moure, girar i escalar illes senceres"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Illa - treballeu amb illes senceres. Feu clic en una per seleccionar-la i després arrossegueu-la per moure-la, arrossegueu-la amb el botó dret per girar-la, o premeu R per girar-la i S per escalar-la amb el ratolí (clic o Retorn per confirmar, Esc per cancel·lar)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Vèrtex - arrossegueu els vèrtexs per canviar la forma; Màj/Ctrl per a la selecció múltiple"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Vèrtex - arrossegueu els vèrtexs per canviar la forma d'una illa a mà; Màj afegeix a la selecció i Ctrl n'hi afegeix o en treu un."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Aresta - arrossegueu les arestes per canviar la forma; Màj/Ctrl per a la selecció múltiple"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Aresta - arrossegueu les arestes per canviar la forma d'una illa a mà; Màj afegeix a la selecció i Ctrl n'hi afegeix o en treu una."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30633,8 +35015,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Acoblar - enganxa les illes entre si en arrossegar-ne una contra una altra"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Enquadrar totes les illes (Inici)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Enquadrar totes les illes, de manera que totes càpiguen a la vista (Inici o F).\n"
+"En altres llocs del llenç: feu girar la roda per fer zoom al voltant del cursor, i arrossegueu amb el botó central - o arrossegueu un espai buit - per desplaçar la vista."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Què hi ha seleccionat, i les xifres exactes del moviment, la rotació o l'escala mentre n'arrossegueu un."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30645,6 +35035,10 @@ msgstr "Cap capa mapada amb Desplegar"
msgid "%.1f mm tile"
msgstr "Tessel·la de %.1f mm"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "El tauler segueix la capa de textura activa, i aquesta capa ha de tenir el mapatge Desplegar (LSCM). Afegiu una capa i establiu-ne el Mapatge a Desplegar."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Desactualitzat - la pintura, les costures o l'angle de costura han canviat des que es va fer aquest desplegament. Premeu per tornar a desplegar."
@@ -30653,19 +35047,69 @@ msgstr "Desactualitzat - la pintura, les costures o l'angle de costura han canvi
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Aplana l'àrea pintada en illes UV. Només es calcula quan premeu aquest botó, no a cada edició - així que primer pinteu, canvieu l'angle de costura o marqueu costures, i després premeu Desplegar."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Activeu primer Marcar costures - Trajectòria és una manera més ràpida de marcar-les."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "No hi ha cap costura marcada en aquesta capa."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "No s'ha canviat a mà la forma de cap illa, així que no hi ha res a descartar."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d illes, %s cares"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d illa"
+msgstr[1] "%d illes"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s cara"
+msgstr[1] "%s cares"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Com ha quedat l'àrea pintada després del desplegament: el nombre de peces separades en què s'ha tallat (a les costures i a les arestes més agudes que l'angle de costura) i quants triangles contenen en total."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Premeu primer Desplegar - encara no hi ha cap illa amb què treballar."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Feu clic primer en una illa del llenç, en mode Illa."
+
+# AI Translated
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "PUB"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "No heu iniciat sessió"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "No s'ha detectat el connector Bambu Network. Fes clic aquí per instal·lar-lo."
+
+msgid "Create new project"
+msgstr "Crear nou projecte"
+
+msgid "Recently opened"
+msgstr "Obert recentment"
+
+msgid "Open Containing Folder"
+msgstr "Obrir Carpeta Contenidora"
# AI Translated
msgid "Forward"
msgstr "Endavant"
-# AI Translated
-msgid "Tools"
-msgstr "Eines"
-
# AI Translated
msgid "View Source"
msgstr "Veure el codi font"
@@ -30737,6 +35181,75 @@ msgstr "Carregar %1% a %2%"
msgid "Load %s"
msgstr "Carregar %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "No s'ha pogut activar l'agent d'impressora '%1%': l'ID d'agent '%2%' ja està registrat per la capacitat '%3%' del connector '%4%'."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "No s'ha pogut activar l'agent d'impressora '%1%': l'ID d'agent '%2%' ja està registrat per '%3%'."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Fitxer pujat"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Pujant el G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Iniciant la impressió..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Impressió iniciada"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Pujant..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Versió de la biblioteca de xarxa no especificada"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "No s'ha trobat la biblioteca de xarxa"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "No s'ha pogut carregar la biblioteca de xarxa"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "La biblioteca de xarxa no s'ha pogut carregar"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Una sèrie de connectors més antiga. Les funcions que requereixen un connector més recent, com ara les instantànies d'errors d'impressió al quadre de diàleg d'errors del dispositiu, no estan disponibles."
+
+# AI Translated
+msgid "unknown name"
+msgstr "nom desconegut"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"El connector \"%s\" sol·licita accés de lectura al sistema de fitxers a:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Permisos del connector"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -30751,36 +35264,60 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"El connector \"%s\" sol·licita llegir el fitxer següent:\n"
+"%s"
+msgstr[1] ""
"El connector \"%s\" sol·licita llegir els fitxers següents:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"El connector \"%s\" sol·licita llegir/escriure el fitxer següent:\n"
+"%s"
+msgstr[1] ""
"El connector \"%s\" sol·licita llegir/escriure els fitxers següents:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"El connector \"%s\" sol·licita crear el fitxer següent:\n"
+"%s"
+msgstr[1] ""
"El connector \"%s\" sol·licita crear els fitxers següents:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"El connector \"%s\" sol·licita esborrar el fitxer següent:\n"
+"%s"
+msgstr[1] ""
"El connector \"%s\" sol·licita esborrar els fitxers següents:\n"
"%s"
@@ -30805,10 +35342,30 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"El connector \"%s\" sol·licita executar l'ordre següent:\n"
+"%s"
+msgstr[1] ""
+"El connector \"%s\" sol·licita executar les ordres següents:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "El connector \"%s\" demana permís per crear un fil d'execució."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"El connector \"%s\" sol·licita executar les ordres següents:\n"
+"El connector \"%s\" demana substituir l'aplicació en execució per:\n"
"%s"
# AI Translated
@@ -30820,6 +35377,46 @@ msgstr "El connector \"%s\" sol·licita permís per a l'esdeveniment d'auditoria
msgid "Plugin permission request"
msgstr "Sol·licitud de permís del connector"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "El perfil emmagatzema un JSON de configuració de capacitats de connector no vàlid."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "La configuració de capacitats de connector del perfil no és una matriu i no es pot editar."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Connexió de la impressora"
+
+# AI Translated
+msgid "Pages"
+msgstr "Pàgines"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Anàlisi"
+
+# AI Translated
+msgid "Importer"
+msgstr "Importador"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Exportador"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Visualització"
+
+# AI Translated
+msgid "Script"
+msgstr "Script"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Flux de laminat"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "La interfície de configuració del connector era buida. Es mostra l'editor predeterminat."
@@ -30842,8 +35439,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "No s'ha pogut escriure la configuració al disc. No s'ha canviat res."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Ha fallat la instal·lació del connector"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Ha fallat la instal·lació del connector: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: no s'ha trobat el connector instal·lat al catàleg."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "A la clau del connector al núvol li falta l'UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "No s'ha pogut subscriure al connector al núvol; consulteu els registres per a més informació."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Només es pot cancel·lar la subscripció als connectors al núvol."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "No s'ha pogut cancel·lar la subscripció al connector; consulteu els registres per a més informació."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "No s'ha pogut obtenir l'URL de baixada del connector (resultat %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "No teniu autorització per descarregar aquest connector del núvol."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "No hi ha cap paquet de connector disponible per a aquest sistema operatiu."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "No s'ha trobat la versió seleccionada del connector."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "No s'ha trobat la versió %1% del connector."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "No s'ha trobat el connector al núvol."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "No s'ha trobat la baixada del connector al núvol: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "No s'ha trobat la baixada del connector al núvol."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "No hi ha cap URL de baixada disponible per a aquest connector. Comproveu els errors als registres."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "No s'ha pogut descarregar el connector: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "La baixada del connector ha fallat amb l'estat HTTP %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "La baixada del connector ha retornat dades buides."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "No s'ha pogut crear el fitxer temporal per a la baixada del connector."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "No s'han pogut escriure les dades del connector al fitxer temporal."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "No s'ha pogut resoldre la carpeta del connector: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "No s'ha pogut esborrar la carpeta del connector %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "El directori del connector no existeix: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "El directori del connector conté diversos fitxers .py: %1% i %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "El directori del connector conté diversos fitxers .whl: %1% i %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "El directori del connector conté fitxers d'entrada .py i .whl"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "El directori del connector no conté cap fitxer d'entrada .py ni .whl"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Error del connector '%1%' del flux de laminat: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "El paquet del connector ha de ser un fitxer .py o .whl, i s'ha rebut: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "No s'ha pogut extreure la dependència .whl del connector %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "No s'ha pogut afegir la dependència .whl a sys.path: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "L'intèrpret de Python no està inicialitzat: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "El manifest del connector no és vàlid: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "No s'han pogut instal·lar les dependències del connector: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "No s'ha pogut carregar el mòdul del connector: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Ha fallat el registre del connector: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "El mòdul del connector no ha registrat cap capacitat"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "El connector declara la capacitat duplicada '%1%' per al tipus %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Ha fallat la materialització de les capacitats del connector: %1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "Ha fallat la materialització de les capacitats del connector"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Ha fallat on_load del connector: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Ha fallat on_load del connector"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "El paquet del connector no és un fitxer: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "L'UUID del connector al núvol no és un identificador vàlid: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "No s'ha pogut crear el directori del connector %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "No s'ha pogut fer una còpia de seguretat del connector existent %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "No s'ha pogut copiar el fitxer del connector a %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "No s'ha pogut escriure l'estat d'instal·lació del connector: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "El paquet del connector ja està carregat: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Col·lisió de capacitats per al tipus %1% i el nom '%2%'"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "S'ha detectat una clau de connector duplicada: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "La càrrega del connector encara està en curs"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "El connector no és vàlid: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "No s'ha trobat el connector: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Error inesperat en carregar el connector: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Error inesperat en carregar el connector"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "No s'ha trobat el manifest del connector: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "No s'han pogut obtenir els connectors del núvol. Consulteu els registres per obtenir més detalls."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Inicieu sessió a OrcaCloud per instal·lar aquest connector."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud no ha retornat el connector del núvol subscrit."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "No s'ha pogut descarregar el connector del núvol."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "No s'ha pogut instal·lar el connector del núvol."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Només es poden actualitzar els connectors del núvol."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "No hi ha cap actualització disponible per a aquest connector."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Es rebutja esborrar un connector fora dels directoris de connectors coneguts."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Es rebutja actualitzar un connector fora dels directoris de connectors coneguts."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "No es pot mantenir el connector com a local: ja existeix la clau de connector local: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "No s'ha pogut actualitzar l'estat d'instal·lació del connector: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "No podeu cancel·lar la subscripció als vostres propis connectors."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Només es poden esborrar i cancel·lar la subscripció dels connectors del núvol."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "No podeu cancel·lar la subscripció als vostres propis connectors. Feu servir Esborrar per eliminar els fitxers locals."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "S'ha denegat la sol·licitud de permís de lectura del sistema de fitxers per al connector"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30877,6 +35810,10 @@ msgstr "ha fallat la fusió de l'extrusió en dues direccions"
msgid "imported regions produced no extrudable geometry"
msgstr "les regions importades no han produït cap geometria extrudible"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "el perfil creua l'eix de revolució — ha d'estar d'un sol costat"
+
# AI Translated
msgid "Failed to revolve"
msgstr "No s'ha pogut fer la revolució"
@@ -30913,6 +35850,10 @@ msgstr "Ha fallat la cara de la cavitat"
msgid "Pocket cut failed"
msgstr "Ha fallat el tall de la cavitat"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "el perfil es creua o es replega sobre si mateix, de manera que no delimita una única regió"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "l'esbós no té cap bucle tancat"
@@ -30945,10 +35886,26 @@ msgstr "mesh_to_brep: la malla no té triangles"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: tots els triangles s'han rebutjat per degenerats (proveu una tolerància més petita)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "el radi de l'arrodoniment ha de ser superior a 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "no hi ha arestes per arrodonir en aquest grup"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "el radi d'arrodoniment és massa gran per a aquesta geometria"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "la distància del xamfrà ha de ser superior a 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "no hi ha arestes per fer un xamfrà en aquest grup"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "la distància del xamfrà és massa gran per a aquesta geometria"
@@ -30961,6 +35918,153 @@ msgstr "apply_fillet: ha fallat l'arrodoniment d'OCCT"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: ha fallat el xamfrà d'OCCT"
+# AI Translated
+msgid "empty component list"
+msgstr "llista de components buida"
+
+# AI Translated
+msgid "empty component index"
+msgstr "índex de component buit"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "l'índex de component ha de ser >= 1 (s'ha rebut %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "índex de component \"%1%\" no vàlid"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "calen almenys 2 components (s'han rebut %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "índex de component duplicat %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "valor de proporció buit"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "la proporció ha de ser positiva (s'ha rebut %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "proporció \"%1%\" no vàlida"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "el nombre de proporcions ha de coincidir amb el nombre de components: s'esperaven %1%, s'han rebut %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "s'esperaven dos nombres decimals separats per comes, p. ex. \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "les proporcions inicial i final han d'estar a l'interval (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "la mida de la matriu %1% no coincideix amb el nombre de ranures de filament %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "s'ha d'establir quan s'especifiquen paràmetres de filament mixt"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "ranura %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "ranura %1%: el component %2% és fora de l'interval (l'índex màxim de filament físic és %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "ranura %1%: no es pot referenciar a si mateixa com a component"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "ranura %1%: el component %2% fa referència a una ranura de filament mixt"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "ranura %1%: el degradat requereix exactament 2 components"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "ranura %1%: corba no vàlida (calen almenys 2 punts de control vàlids)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "No s'ha pogut carregar el fitxer de configuració \"%1%\": %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "No és un fitxer G-code generat per %1%."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "No s'ha trobat l'etiqueta de configuració \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "S'ha extret un nombre sospitosament baix de valors de configuració de %1%: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Ha fallat la càrrega del fitxer STEP.\n"
+"No es pot obrir el fitxer per llegir-lo.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "ha fallat la importació de l'SVG: no s'ha pogut obrir l'SVG."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "ha fallat la importació de l'SVG: no s'han pogut analitzar les dades SVG importades."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "El G-code personalitzat informa d'un z_retracted negatiu."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "El G-code personalitzat informa d'un z_restart_extra negatiu."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "La còpia del directori %1% a %2% ha fallat: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Autenticació completada"
@@ -31407,6 +36511,1109 @@ msgstr ""
"Evitar la deformació( warping )\n"
"Sabíeu que quan imprimiu materials propensos a deformar-se, com ara l'ABS, augmentar adequadament la temperatura del llit pot reduir la probabilitat de deformació?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Trieu el color del filament"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Amplada de línia del Pont. Si s'expressa en %, es calcularà sobre el diàmetre del broquet.\n"
+#~ "Es recomana utilitzar-la amb una densitat de Pont o una relació de flux del Pont més altes.\n"
+#~ "\n"
+#~ "El valor màxim és el 100% o el diàmetre del broquet.\n"
+#~ "Si s'estableix a 0, l'amplada de línia coincidirà amb l'amplada del farciment sòlid intern."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Activeu aquesta opció per alentir la impressió en àrees on els perímetres s'hagin pogut corbar cap amunt.\n"
+#~ "Per exemple, s'aplicarà una alentiment addicional en imprimir voladissos en cantonades pronunciades, com ara la proa del casc del Benchy, cosa que redueix el corbament que s'acumula al llarg de diverses capes.\n"
+#~ "\n"
+#~ "En general es recomana tenir aquesta opció activada, tret que la refrigeració de la impressora sigui prou potent o la velocitat d'impressió prou baixa com perquè no es produeixi corbament dels perímetres. \n"
+#~ "Si s'imprimeix amb una velocitat alta de perímetre exterior, aquest paràmetre pot introduir defectes als perímetres en alentir, a causa de la variació potencialment gran de velocitats d'impressió, que fa que l'extrusor no pugui seguir el canvi de flux sol·licitat.\n"
+#~ "La causa d'aquests defectes és molt probablement un ajust de PA lleugerament desviat, especialment si es combina amb un temps de suavitzat de PA elevat.\n"
+#~ "\n"
+#~ "Recomanacions en activar aquesta opció:\n"
+#~ "1. Reduïu el temps de suavitzat de Pressure Advance a 0,015 - 0,02 perquè l'extrusor reaccioni ràpidament als canvis de velocitat.\n"
+#~ "2. Augmenteu les velocitats d'impressió mínimes per limitar la magnitud de l'alentiment i reduir la variació entre segments ràpids i lents.\n"
+#~ "3. Si encara apareixen defectes, activeu el Suavitzat del Ritme d'Extrusió (ERS) per suavitzar encara més les transicions de flux.\n"
+#~ "\n"
+#~ "Nota: quan aquesta opció està activada, els perímetres de voladís es tracten com a voladissos, cosa que vol dir que s'aplica la velocitat de voladís fins i tot si el perímetre en voladís forma part d'un pont.\n"
+#~ "Per exemple, quan els perímetres estan en voladís al 100%, sense cap perímetre que els aguanti per sota, s'aplicarà la velocitat de voladís del 100%."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Velocitat de les extrusions del pont visibles externament.\n"
+#~ "\n"
+#~ "A més, si l'opció de Reduir la velocitat per als perímetres corbats està desactivada o el mode clàssic de voladís està activat, aquesta serà la velocitat d'impressió per a les parets de voladís que estan suportades per menys del 13%, ja sigui que formin part d'un pont o d'un voladís."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Aquest ajustament independent afectarà la velocitat dels perímetres amb radi <= small_perimeter_threshold ( normalment orificis ). Si s'expressa com a percentatge ( per exemple: 80% ) es calcula sobre l'ajustament de velocitat del perímetre exterior anterior. Poseu-lo a zero per automàtic."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Igual que \"Petits perímetres\", però per als suports. Aquest ajustament separat afectarà la velocitat del suport en àrees <= `small_support_perimeter_threshold`. Si s'expressa com a percentatge (per exemple: 80%), es calcularà sobre l'ajustament anterior de velocitat de suport o d'interfície de suport. Establiu-ho a zero per a automàtic."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Seqüència d'impressió de les parets interiors (interiors) i exteriors (exteriors).\n"
+#~ "\n"
+#~ "Utilitzeu Interior / Exterior per a millors voladissos. Això es deu al fet que les parets que sobresurten poden adherir-se a un perímetre veí durant la impressió. No obstant això, aquesta opció resulta en una qualitat superficial lleugerament reduïda, ja que el perímetre extern es deforma en ser aixafat al perímetre intern.\n"
+#~ "\n"
+#~ "Utilitzeu Interior / Exterior / Interior per obtenir el millor acabat de la superfície externa i precisió dimensional, ja que la paret externa s'imprimeix sense molèsties des d'un perímetre intern. Tanmateix, el rendiment del voladís es reduirà, ja que no hi ha un perímetre intern per imprimir la paret externa. Aquesta opció requereix un mínim de 3 parets per ser efectiva, ja que imprimeix primer les parets interiors a partir del 3r\n"
+#~ " perímetre, després el perímetre extern i, finalment, el primer perímetre intern. Aquesta opció es recomana contra l'opció Exterior/Interior en la majoria dels casos.\n"
+#~ "\n"
+#~ "Utilitzeu Exterior / Interior per obtenir la mateixa qualitat de paret externa i els mateixos avantatges de precisió dimensional de l'opció Interior / Exterior / Interior. Tanmateix, les costures z semblaran menys consistents a mesura que comenci la primera extrusió d'una nova capa en una superfície visible."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Velocitat de la capa inicial excepte la part de farciment sòlid"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Velocitat de farciment sòlid de la capa inicial"
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "L'àrea de farciment s'amplia lleugerament per superposar-se amb la paret per a una millor unió. El valor percentual és relatiu a l'amplada de línia de farciment poc dens. Establiu aquest valor a ~ 10-15% per minimitzar la potencial sobreextrusió i acumulació de material que resulti en superfícies superiors rugoses."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "L'àrea de farciment sòlida superior s'amplia lleugerament per superposar-se a la paret per a una millor unió i per minimitzar l'aparició de forats on l'ompliment superior es troba amb les parets. Un valor de 25-30% is és un bon punt de partida, minimitzant l'aparició de forats. El valor percentual és relatiu a l'amplada de línia de l'emplenament escàs"
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Profunditat d'enclavament d'una regió segmentada. S'ignorarà si \"mmu_segmented_region_max_width\" és zero o si \"mmu_segmented_region_interlocking_depth\" és més gran que \"mmu_segmented_region_max_width\". Zero desactiva aquesta funció."
+
+# AI Translated
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Redueix l'alçada dels perímetres de la superfície superior perquè coincideixi amb l'alçada de la vora del model.\n"
+#~ "Afecta els perímetres amb un pendent inferior a aquest angle (graus).\n"
+#~ "Un valor raonable és 35. Establiu-ho a 0 per desactivar-ho."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Velocitat de neteja basada en l'acció"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Activat = la faldilla és tan alta com l'objecte imprès més alt. En cas contrari, s'utilitza \"Alçada de la faldilla\".\n"
+#~ "Nota: amb l'escut de corrent actiu, la faldilla s'imprimirà a una distància de la faldilla de l'objecte. Per tant, si les vores estan actives, es pot creuar amb elles. Per evitar-ho, augmenta el valor de la distància de la faldilla.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "La velocitat màxima d'impressió en purgar a la torre de purga i imprimir a la torre de purga capes poc denses. En la purga, si la velocitat de farciment poc dens o la velocitat calculada de la màxima velocitat volumètrica del filament és menor, s'utilitzarà la més baixa.\n"
+#~ "\n"
+#~ "En imprimir les capes poc denses, si la velocitat perimetral interna o la velocitat calculada de la màxima velocitat volumètrica del filament és menor, s'utilitzarà la més baixa.\n"
+#~ "\n"
+#~ "L'augment d'aquesta velocitat pot afectar l'estabilitat de la torre, així com augmentar la força amb què el broquet xoca amb els grumolls que s'hagin pogut formar a la torre de purga.\n"
+#~ "\n"
+#~ "Abans d'augmentar aquest paràmetre més enllà del valor per defecte de 90 mm/segon, assegureu-vos que la impressora pugui fer un pont de manera fiable a les velocitats augmentades i que el degoteig quan es produeixi el canvi d'eina estigui ben controlat.\n"
+#~ "\n"
+#~ "Per als perímetres externs de la torre de purga, s'utilitza la velocitat perimetral interna independentment d'aquesta configuració."
+
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Tipus de paret exterior de la torre de purga.\n"
+#~ "1. Rectangle: el tipus de paret predeterminat, un rectangle amb amplada i alçada fixes.\n"
+#~ "2. Con: un con amb arrodoniment a la base per ajudar a estabilitzar la torre de purga.\n"
+#~ "3. Nervi: afegeix quatre nervis a la paret de la torre per a una estabilitat millorada."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Flux addicional utilitzat per a les línies de purga a la torre de neteja. Això fa que les línies de purga siguin més gruixudes o més estretes del que serien normalment. L'espaiat s'ajusta automàticament."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Ajusteu aquest valor per evitar que s'imprimeixin parets curtes i no tancades, cosa que podria augmentar el temps d'impressió. Els valors més alts eliminen més i més parets més llargues.\n"
+#~ "\n"
+#~ "NOTA: Les superfícies inferior i superior no es veuran afectades per aquest valor per evitar espais visuals a l'exterior del model. Ajusteu \"Llindar d'una paret\" a la configuració avançada següent per ajustar la sensibilitat del que es considera una superfície superior. \"Llindar d'una paret\" només és visible si aquesta configuració està per sobre del valor predeterminat de 0,5 o si les superfícies superiors d'una sola paret estan habilitades."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Separar en %1% peça"
+#~ msgstr[1] "Separar en %1% peces"
+
+#~ msgid "Repair failed"
+#~ msgstr "No s'ha pogut reparar."
+
+#~ msgid "Repair canceled"
+#~ msgstr "Reparació cancel·lada"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Què fa aquesta capa on se superposa amb les de sota. Afegir i Restar hi acumulen relleu o el retallen. Multiplicar i Dividir escalen el que hi ha a sota, cosa que converteix aquesta capa en una màscara a sobre seu - aleshores Profunditat actua com a intensitat, i 1 mm deixa intactes les àrees blanques."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "La malla té geometria no moldejada o contorns oberts. Podeu importar-la tal com està o reparar-la amb el servei de reparació 3D de Windows abans d'importar-la."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Tingueu en compte que la malla té geometria no moldejada o contorns oberts."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Problema de la malla"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Ha fallat la reparació: la malla continua oberta després d'omplir els forats."
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "No es pot aplicar una operació lògica a operands no booleans."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Llegint"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "El recompte de filaments supera el nombre màxim que admet l'eina de pintura. Només els primers filaments %1% estaran disponibles a l'eina de pintura."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Tecla de drecera "
+
+#~ msgid "Build Volume"
+#~ msgstr "Volum de construcció"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Els objectes(%1%) tenen connectors duplicats. Poden faltar connectors al resultat del laminat.\n"
+#~ "Informeu l'equip d'OrcaSlicer sobre l'escenari en què s'ha produït aquest problema.\n"
+#~ "Gràcies."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d triangles"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Movent)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Corregit)"
+
+# AI Translated
+#~ msgid "Filament "
+#~ msgstr "Filament "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "hotend"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Organitzant "
+
+#~ msgid "Orienting"
+#~ msgstr "Orientant"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Si us plau, enviar a l'inici tots els eixos ( feu clic "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") per localitzar la posició del capçal. Això evita que el dispositiu es mogui més enllà del límit imprimible i causi desgast de l'equip."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Augment de %1%g de filament i %2% canvis respecte a l'agrupació òptima."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Augment de %1%g de filament i estalvi de %2% canvis respecte a l'agrupació òptima."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Estalvi de %1%g de filament i augment de %2% canvis respecte a l'agrupació òptima."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Estalvi de %1%g de filament i %2% canvis respecte a una impressora amb un broquet."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Estalvi de %1%g de filament i augment de %2% canvis respecte a una impressora amb un broquet."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Augment de %1%g de filament i estalvi de %2% canvis respecte a una impressora amb un broquet."
+
+#~ msgid "number keys"
+#~ msgstr "tecles numèriques"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Els filaments %s estan col·locats al %s, però el camí G-code generat supera el rang imprimible del %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Els filaments %s estan col·locats al %s, però el camí G-code generat supera l'alçada imprimible del %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Els filaments %s no es poden imprimir directament sobre la superfície d'aquesta placa."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "es tancarà abans de crear un nou model. Vols continuar?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "A la cua de laminat al núvol, hi ha %s tasques per davant."
+
+#~ msgid " upload failed"
+#~ msgstr " la càrrega ha fallat"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " error a la càrrega de configuració\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " No hi ha cub d'emmagatzematge corresponent\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " no es pot obrir\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "El resultat del comentari no es pot penjar per la següent raó:\n"
+#~ "\n"
+#~ "Codi d'error: "
+
+#~ msgid "error message: "
+#~ msgstr "missatge d'error: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Voleu redirigir a la pàgina web per valorar-la?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (perfil de processament: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "El broquet %s no pot imprimir %s."
+
+#~ msgid " nozzle"
+#~ msgstr " broquet"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "No es recomana imprimir els filaments següents amb %1%: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " placa %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Voleu eliminar tots els %1% filaments mixtos?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Voleu substituir-lo"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Conflicte de temperatura del llit: T%d (%s) fixa el llit a %d°C — T%d (%s) requereix %d°C. L'eina principal controla el llit; les eines secundàries imprimeixen a la temperatura que aquesta fixi."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "No s'han proporcionat acceleracions per al calibratge. Utilitzar el valor d'acceleració predeterminat "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "No s'han proporcionat velocitats per al calibratge. Utilitzar la velocitat òptima predeterminada "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "No hi ha cap torre de temperatura per a cinta disponible per al rang de %1% a %2% °C. Feu servir un rang que cobreixin els models de torre, per exemple de 230 a 190."
+
+#~ msgid "The selected file"
+#~ msgstr "El fitxer seleccionat"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "no conté G-code vàlid."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "amb OrcaSlicer perquè Orca pugui obrir models des de"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Costa %dg de filament i %d canvis més que l'agrupació òptima."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Els paràmetres amb aquesta icona es poden configurar per broquet."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Trobades paraules clau reservades"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "El perfil de Filament %d i el perfil de Procés %d estan adjunts a aquesta impressora. Aquests perfils se suprimirien si se suprimeix la impressora."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Els següent perfil hereta aquesta d'aquest altre."
+#~ msgstr[1] "Els següents perfils hereten d'aquest perfil."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% Perfil"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Segur que voleu %1% el perfil seleccionat?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Separar en %1% peces"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "S'estan descarregant perfils de fabricant nous: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "No s'han pogut descarregar els perfils de fabricant: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "En aquest mode Span només s'imprimeix en color amb %1%, però el filament %2% no està assignat a cap eina. Feu servir filaments assignats a %1%, o canvieu aquesta placa al mode Principal (Primary)."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "En aquest mode Span només s'imprimeix en color amb %1%, però el filament %2% està assignat a T%3%. Feu servir filaments assignats a %1%, o canvieu aquesta placa al mode Principal (Primary)."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " està massa a prop de l'àrea d'exclusió, pot haver-hi col·lisions en imprimir."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " és massa a prop de l'àrea de detecció d'acumulació, pot haver-hi col·lisions durant la impressió."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Torre de Purga"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " està massa a prop dels altres, i es poden causar col·lisions.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " està massa a prop de la zona d'exclusió, i es provocaran col·lisions.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " és massa a prop de l'àrea de detecció d'acumulació i es causaran col·lisions.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " està parcialment fora de l'àrea imprimible, i no es pot imprimir.\n"
+
+# AI Translated
+# Needs human review: Substituted for %3% in 'els filaments d'aquesta placa són a %3%' (Print.cpp, IDEX/IQEX mode check); check the sentence still reads right with this value.
+#~ msgid "no configured tool"
+#~ msgstr "cap eina configurada"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "G-code Final en acabar tota la impressió"
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Velocitat màxima a l'eix X"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Velocitat màxima a l'eix Y"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Velocitat màxima a l'eix Z"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Velocitat màxima a l'eix E"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Connector(s) de Python invocats a cada pas del flux de laminat per llegir i modificar dades intermèdies de laminat, incloent-hi un pas final de postprocessament del G-code. Recerca/experimental."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Quan està activat, el laminador genera G-code amb el contingut de la zona principal centrat a l'origen del llit (0,0). El firmware de la impressora s'encarrega de col·locar les còpies/miralls a la posició física de cada zona. Activeu-ho només en impressores el firmware de les quals aplica els seus propis desplaçaments de zona en mode de còpia/mirall (p. ex. el mode de duplicació IDEX de RepRapFirmware). No té cap efecte en mode Principal (Primary)."
+
+# AI Translated
+# Needs human review: 'pem-inversion' is developer shorthand (inverting the physical extruder map); check the wording reads right.
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Correspondència per placa que substitueix l'assignació dels capçals físics a les ranures de filament (començant per 1). Si és buida, s'utilitzen els valors per defecte de la inversió del pem."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Eix al voltant del qual es gira la malla abans de laminar. És la inclinació de la impressora de cinta: una rotació isomètrica (sense distorsió) que també determina la representació del llit i la inclinació de la gravetat dels suports, i que la transformació inversa del G-code desfà abans del cisallament/escala i la reassignació d'eixos del sistema de coordenades de la màquina. X és la inclinació típica del pòrtic (la cinta es desplaça al llarg de Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Ajust per a experts: estableix l'angle d'inclinació del sistema de coordenades de la màquina (cisallament/escala del G-code) independentment de l'angle de rotació previ al laminat. Quan està desactivat, la transformació del sistema de coordenades de la màquina es deriva de l'angle d'inclinació de la cinta, de manera que un sol angle controla les dues etapes. Activeu-ho només per compensar una màquina la inclinació física del pòrtic de la qual difereix de la rotació de laminat."
+
+# AI Translated
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "La desviació màxima permesa en reduir la resolució per a l'ajustament 'Resolució màxima del perímetre'. Si l'augmenteu, la impressió serà menys precisa, però el G-Code serà més petit. La 'Desviació màxima del perímetre' limita la 'Resolució màxima del perímetre', de manera que, si totes dues entren en conflicte, preval la 'Desviació màxima del perímetre'."
+
+#~ msgid " not in range "
+#~ msgstr " fora de rang "
+
+#~ msgid "floating regions"
+#~ msgstr "regions flotants"
+
+#~ msgid "floating cantilever"
+#~ msgstr "voladís flotant"
+
+#~ msgid "large overhangs"
+#~ msgstr "grans voladissos"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Sembla que l'objecte %s té %s. Si us plau, reorienteu l'objecte o habiliteu la generació de suport."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "No s'han detectat capes. És possible que vulgueu reparar els fitxers STL o comprovar-ne la mida o el gruix i tornar-ho a provar.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Aquest tipus de màquina només pot contenir %d resultats de l'historial per broquet. Aquest resultat no es guardarà."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Aquest tipus de màquina només pot contenir %d resultats de l'historial per broquet."
+
+# AI Translated
+# Needs human review: Radio option for the belt temperature-tower test model (Standard / Overhang) in the temperature calibration dialog; singular of the glossary's 'Voladissos'. Check it reads right as a model name.
+#~ msgid "Overhang"
+#~ msgstr "Voladís"
+
+#~ msgid "Start / End"
+#~ msgstr "Inici / Final"
+
+#~ msgid "Damp"
+#~ msgstr "Amortiment"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "S'han detectat %d ranures IFS a la impressora."
+
+#~ msgid "selected"
+#~ msgstr "sel·leccionat"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "El següent perfil hereta d'aquest perfil."
+#~ msgstr[1] "Els següents perfils hereten d'aquest perfil."
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "S'han trobat %zu impressores Creality. Seleccioneu-ne una i feu clic a Utilitzar la seleccionada."
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "registre(s)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Error: l'extrusor %s no té cap broquet %s disponible; el resultat d'agrupació actual no és vàlid."
+
+#~ msgid "invalid brim ears"
+#~ msgstr " orelles de la Vora d'Adherència invàlides"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Ometent %d objectes."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Obrir la carpeta a l'explorador"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Feu clic al centre i després a un vèrtex — %d costats, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "circumscrit"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "inscrit"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Esbós creat (%zu cotes motrius) — seleccioneu-lo i feu clic dret per fer una extrusió"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "D'acord — %zu triangles"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Aquesta malla té %d triangles. Cada triangle es converteix en una cara B-rep abans de fusionar les cares coplanàries, de manera que importar-la pot trigar molt i deixar un cos lent d'editar. Normalment és millor simplificar primer la malla.\n"
+#~ "\n"
+#~ "Voleu importar-la igualment?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Sòlid importat — %d triangles → %d cares, volum %.2f mm³. Trieu una cara o una aresta i després Arrodoniment / Tall / Buidat per modificar"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — arrossegueu per col·locar/dimensionar i després confirmeu"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d entitats d'esbós"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — escriviu un valor i premeu Retorn (o Confirmar)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Previsualització — %zu triangles"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "%1% restricció(ns) ignorada(es) per no poder actuar sobre aquesta geometria (una el·lipse o una corba spline, o un cercle de mida zero)"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "%1% restricció(ns) eliminada(es) en quedar invalidada(es) per l'arrodoniment/xamfrà"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "%1% restricció(ns) alliberada(es) per la transformació"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...i %1% extrem(s) obert(s) més"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "La llista de materials admet com a màxim %1% colors. Després de la descomposició %2%, el nombre de materials superaria %1%. Elimineu els filaments no utilitzats a la pantalla principal abans de descompondre."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% colors imprimibles a partir de %2% filaments"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% illes"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Les %1% capes estan en ús"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Previsualització: %1% triangles"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Model: %1% triangles - la fixació refina fins a la resolució anterior, dins del seu pressupost"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Fixar mou els vèrtexs existents - el model es queda amb %1% triangles"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Resultat de la fixació: fins a ~%1% k triangles"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% capes sense pintar, s'ometen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "El projecte admet fins a %d filaments. Els filaments addicionals es descartaran."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d vèrtexs seleccionats | arrossegar = moure junts, Màj/Ctrl + clic = afegir/treure"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d arestes seleccionades | arrossegar = moure juntes, Màj/Ctrl + clic = afegir/treure"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d illes seleccionades | arrossegar = moure juntes, Màj/Ctrl + clic = afegir/treure, R/S = girar/escalar la principal"
+
+# AI Translated
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Mida de tessel·la de la capa activa: quina part del model cobreix una repetició de la textura. El llenç es mesura en tessel·les, de manera que una cel·la de la graella és una repetició. Canvieu-la amb el tessel·lat a la configuració de la capa."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d illes, %s cares"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "El connector \"%s\" sol·licita llegir els fitxers següents:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "El connector \"%s\" sol·licita llegir/escriure els fitxers següents:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "El connector \"%s\" sol·licita crear els fitxers següents:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "El connector \"%s\" sol·licita esborrar els fitxers següents:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "El connector \"%s\" sol·licita executar les ordres següents:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Ha fallat la instal·lació del connector"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "No s'ha pogut instal·lar el Microsoft WebView2 Runtime.\n"
+#~ "Algunes funcions, com ara l'auxiliar de configuració, poden aparèixer en blanc fins que estigui instal·lat.\n"
+#~ "Instal·leu-lo manualment des de https://developer.microsoft.com/microsoft-edge/webview2/ i reinicieu Orca Slicer."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Per què aquesta agrupació"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "El programari no admet l'ús de broquets de diàmetre diferent per a una impressió. Si els broquets esquerre i dret són inconsistents, només podem procedir amb impressió de capçal únic. Confirmeu quin broquet voleu utilitzar per a aquest projecte."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Canvia el diàmetre"
+
+# AI Translated
+#~ msgid "BambuStudio Project"
+#~ msgstr "Projecte de BambuStudio"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "El 3MF s'ha creat amb BambuStudio (versió %s), que és més recent que la versió compatible %s. S'han trobat opcions no reconegudes:"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "El 3MF s'ha creat amb BambuStudio (versió %s), que és més recent que la versió compatible %s. És possible que algunes opcions no siguin totalment compatibles."
+
+# AI Translated
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "El 3MF s'ha creat amb BambuStudio. És possible que algunes opcions difereixin de les d'OrcaSlicer."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "No es pot desfer ni refer mentre s'executa una operació. Atureu-la primer."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Centra el farciment intern de cada peça sobre si mateixa, com si es laminés per separat, en lloc de sobre tot el conjunt. Les peces que es toquen o se superposen es tracten com un sol cos i comparteixen centre; les peces separades (o objectes 3D diferents) tenen cadascuna el seu.\n"
+#~ "Útil quan un conjunt agrupa diversos objectes que han de mantenir cadascun un farciment coherent i centrat en si mateix.\n"
+#~ "Afecta els patrons de línia i de graella i els farciments amb plantilla de rotació.\n"
+#~ "Els patrons vinculats a coordenades globals (Giroide, Panal d'abella, TPMS, ...) no es veuen afectats."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Índex de la capa actual. Basat en 1( és a dir, la primera capa és el número 1 )."
+
+# AI Translated
+#~ msgid "Video tutorial"
+#~ msgstr "Tutorial en vídeo"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Primitiva"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "S'ha generat una malla buida"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Caixa"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Ràpid:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Amplada (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Profunditat (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Alçada (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "R inferior"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "R superior"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "R major"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "R menor"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Totes les arestes"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Arestes superiors"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Arestes inferiors"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Arestes laterals"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Resolució de la malla"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Afegir forma"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "No hi ha cap perfil exterior"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "No s'ha pogut crear la cara exterior"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "No s'ha pogut construir la cara amb forats"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "La revolució ha fallat"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Perfil"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Començar un perfil nou (per a forats)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segments"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Costats"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Feu clic al llenç per dibuixar"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Ajustar a la graella"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Pas de la graella"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Exterior"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "tancat"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% punts %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (Superior)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (Frontal)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (Lateral)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Graus de revolució"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "Establiu 0 per a extrusió, >0 per a revolució"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Cavitat (tall)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu perfil tancat"
+#~ msgstr[1] "%zu perfils tancats"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Dibuixeu un perfil tancat per activar-ho"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Resultat buit"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Extrusió: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Revolució: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "No hi ha cap objecte seleccionat"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "No s'ha pogut crear la cara"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "No s'ha pogut crear la cara amb forats"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "La malla de l'eina és buida"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Cavitat afegida (volum negatiu)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Cavitat: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Cal que la capa activa estigui mapada amb Desplegar (LSCM)."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Escaquer - una quadrícula de prova en lloc de la textura. On els quadrats es mantenen quadrats, la textura no es distorsiona; on s'estiren, també s'estirarà la textura"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Distorsió - mapa de calor de l'estirament, de blau a vermell, sobre el desplegament"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Barrejar per"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Superfície"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Capes: els dos filaments s'alternen entre capes d'impressió, cosa que es fon suaument a les superfícies verticals però desapareix a les horitzontals, on una capa sencera és una sola franja.\n"
+#~ "Superfície: un escaquer fi a través de la superfície, que funciona amb qualsevol angle però es pot percebre com una textura en lloc d'una barreja.\n"
+#~ "Automàtic: capes a les cares verticals; les cares horitzontals prenen el filament únic més proper, ja que un escaquer s'hi veu com un patró."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Illa - moure, girar i escalar illes senceres"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Vèrtex - arrossegueu els vèrtexs per canviar la forma; Màj/Ctrl per a la selecció múltiple"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Aresta - arrossegueu les arestes per canviar la forma; Màj/Ctrl per a la selecció múltiple"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Enquadrar totes les illes (Inici)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Experimental) Utilitza agents d'impressora en lloc d'amfitrions d'impressió"
@@ -31440,16 +37647,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Feu clic a una cara o a un pla de referència i després trieu una eina de dibuix"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -31506,10 +37703,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Distància vertical"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Lineal"
-
#~ msgid "Face recognition"
#~ msgstr "Reconeixement facial"
@@ -32933,9 +39126,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "No s'ha pogut calcular l'amplada de línia de %1%. No es pot obtenir valor de \"%2%\" "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Espaiat no vàlid subministrat a Flow::with_spacing( ), comproveu l'alçada de la capa i l'amplada d'extrusió"
-
#~ msgid "Continue to sync filaments"
#~ msgstr "Continua sincronitzant filaments"
@@ -33087,9 +39277,6 @@ msgstr ""
#~ msgid "Bed Leveling"
#~ msgstr "Anivellament del llit"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction mode.\n"
#~ "\n"
diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po
index 9be7881216..c48b4716d6 100644
--- a/localization/i18n/cs/OrcaSlicer_cs.po
+++ b/localization/i18n/cs/OrcaSlicer_cs.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: Jakub Hencl\n"
"Language-Team: \n"
@@ -398,8 +398,10 @@ msgid "Please wait"
msgstr "Prosím čekejte"
# AI Translated
-msgid "Reading"
-msgstr "Načítání"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Indukční držák hotendů: čtení %d/%d"
msgid "Running..."
msgstr "Probíhá spouštění..."
@@ -555,9 +557,13 @@ msgstr "Gizmo-Umístit na plochu"
msgid "Lay on Face"
msgstr "Položit na plochu"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Počet filamentů překračuje maximální počet podporovaný nástrojem pro malování. V nástroji pro malování bude dostupných pouze prvních %1% filamentů."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Počet filamentů překračuje maximální počet podporovaný nástrojem pro malování. V nástroji pro malování bude dostupný pouze první %1% filament."
+msgstr[1] "Počet filamentů překračuje maximální počet podporovaný nástrojem pro malování. V nástroji pro malování budou dostupné pouze první %1% filamenty."
+msgstr[2] "Počet filamentů překračuje maximální počet podporovaný nástrojem pro malování. V nástroji pro malování bude dostupných pouze prvních %1% filamentů."
msgid "Color Painting"
msgstr "Malování barvou"
@@ -609,8 +615,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Klávesová zkratka "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Klávesová zkratka %d"
msgid "Triangle"
msgstr "Trojúhelník"
@@ -709,6 +717,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Výběr části"
+msgid "Select multiple objects"
+msgstr "Vyberte více objektů"
+
msgid "Fixed step drag"
msgstr "Posouvání o pevný krok"
@@ -774,10 +785,79 @@ msgstr "Díl"
msgid "Relative"
msgstr "Relativní"
+msgid "Selection"
+msgstr "Výběr"
+
+msgid "Plate"
+msgstr "Deska"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "Souřadný systém použitý pro transformační akce."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Zarovnat vlevo"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Zarovnat na střed vlevo-vpravo"
+
+# AI Translated
+msgid "Align right"
+msgstr "Zarovnat vpravo"
+
+# AI Translated
+msgid "Align front"
+msgstr "Zarovnat dopředu"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Zarovnat na střed vpředu-vzadu"
+
+# AI Translated
+msgid "Align back"
+msgstr "Zarovnat dozadu"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Zarovnat dolů"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Zarovnat na střed nahoře-dole"
+
+# AI Translated
+msgid "Align top"
+msgstr "Zarovnat nahoru"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Rozmístit vlevo-vpravo"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Rozmístit vpředu-vzadu"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Rozmístit nahoře-dole"
+
+msgid "Drop"
+msgstr "Pustit"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "Absolutní"
@@ -883,9 +963,6 @@ msgstr "Úhel drážky"
msgid "Cut position"
msgstr "Pozice řezu"
-msgid "Build Volume"
-msgstr "Stavební objem"
-
msgid "Multiple"
msgstr "Více"
@@ -1063,10 +1140,22 @@ msgstr "Konektor"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"Objekt (%1%) má duplicitní konektory. Některé konektory mohou ve výsledku slicování chybět.\n"
+"Nahlaste prosím týmu OrcaSlicer, při jakém scénáři k tomuto problému došlo.\n"
+"Děkujeme."
+msgstr[1] ""
+"Objekty (%1%) mají duplicitní konektory. Některé konektory mohou ve výsledku slicování chybět.\n"
+"Nahlaste prosím týmu OrcaSlicer, při jakém scénáři k tomuto problému došlo.\n"
+"Děkujeme."
+msgstr[2] ""
"Objekty (%1%) mají duplicitní konektory. Některé konektory mohou ve výsledku slicování chybět.\n"
"Nahlaste prosím týmu OrcaSlicer, při jakém scénáři k tomuto problému došlo.\n"
"Děkujeme."
@@ -1135,9 +1224,13 @@ msgstr "Nízká"
msgid "Extra low"
msgstr "Extra nízká"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d trojúhelníků"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% trojúhelník"
+msgstr[1] "%1% trojúhelníky"
+msgstr[2] "%1% trojúhelníků"
msgid "Show wireframe"
msgstr "Zobrazit drátový model"
@@ -1148,6 +1241,17 @@ msgstr "Nelze použít při zpracování náhledu."
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Operace se již ruší. Počkejte prosím několik sekund."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "Zjednodušení modelu bylo zrušeno"
+
+msgid "Wiki Guide"
+msgstr "Wiki příručka"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Video návod"
+
msgid "Enforce seam"
msgstr "Vynutit šev"
@@ -1198,6 +1302,14 @@ msgstr "Umístit na podložku"
msgid "Emboss"
msgstr "Reliéf"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Styl nemá aktivní písmo. Vyberte správné."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont nebyl správně načten."
+
msgid "NORMAL"
msgstr "NORMÁLNÍ"
@@ -1852,11 +1964,25 @@ msgstr "Průměr"
msgid "Length"
msgstr "Délka"
-msgid "Selection"
-msgstr "Výběr"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Plocha 1 (pevná)"
-msgid " (Moving)"
-msgstr " (Pohyblivé)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Plocha 2 (pohyblivá)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Bod 1 (pevný)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Bod 2 (pohyblivý)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Výběr 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1872,14 +1998,9 @@ msgstr ""
"Vyberte 2 body nebo kružnice na objektech a\n"
"určete vzdálenost mezi nimi."
-msgid "Face"
-msgstr "Plocha"
-
-msgid " (Fixed)"
-msgstr " (Pevné)"
-
-msgid "Point"
-msgstr "Bod"
+# AI Translated
+msgid "Selection 2"
+msgstr "Výběr 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1982,6 +2103,18 @@ msgstr "Vstup do nástroje Sestava"
msgid "Leaving Assembly gizmo"
msgstr "Opustit nástroj Sestava"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2160,14 +2293,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Nepodařilo se nainstalovat Microsoft WebView2 Runtime.\n"
"Některé funkce, včetně průvodce nastavením, se mohou zobrazovat prázdné, dokud nebude nainstalován.\n"
-"Nainstalujte jej prosím ručně z https://developer.microsoft.com/microsoft-edge/webview2/ a restartujte Orca Slicer."
+"Nainstalujte jej prosím ručně z %1% a restartujte Orca Slicer."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2412,6 +2546,67 @@ msgstr "Omezení síťového plug-inu"
msgid "Privacy Policy Update"
msgstr "Aktualizace zásad ochrany osobních údajů"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Všechny vaše předvolby filamentů jsou dostupné na tiskárnách, pro které byly vytvořeny."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Převést předvolby filamentů"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 přestrukturoval mnoho systémových předvoleb filamentů, aby opravil nesprávné profily a připravil půdu pro budoucí funkce. Výsledkem je, že se níže uvedené předvolby již nezobrazují u některých tiskáren, pro které byly vytvořeny. Omlouváme se za potíže; jde o jednorázovou opravu.\n"
+"\n"
+"Přidat tyto tiskárny zpět k vašim předvolbám? Vaše předvolby se nejprve zálohují. Můžete to také provést později z nabídky Nápověda > Převést předvolby filamentů."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (založeno na %2%)"
+
+# AI Translated
+msgid "Don't remind me again"
+msgstr "Znovu mi to nepřipomínat"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Vaše předvolby se nepodařilo zálohovat, proto nebyly převedeny."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Složku uživatelských předvoleb se nepodařilo zamknout, proto nebylo nic převedeno. Jiná instance OrcaSliceru možná právě ukládá předvolby; zkuste to později z nabídky Nápověda > Převést předvolby filamentů."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Vaše předvolby filamentů se nepodařilo převést. Záloha vašich předvoleb byla uložena do:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Vaše předvolby filamentů byly převedeny. Vyberte je znovu v seznamu filamentů tam, kde jste je používali.\n"
+"\n"
+"Záloha vašich předvoleb byla uložena do:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Tyto předvolby se nepodařilo převést:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "váš profil Orca Cloud (ID uživatele: \"%s\")"
@@ -2532,6 +2727,9 @@ msgstr "Pluginy byly obnoveny."
msgid "Failed to refresh plugins: %s"
msgstr "Obnovení pluginů selhalo: %s"
+msgid "Unknown error"
+msgstr "Neznámá chyba"
+
# AI Translated
msgid "Select plugin package"
msgstr "Vyberte balíček pluginu"
@@ -3066,6 +3264,22 @@ msgstr "Obnovit vše"
msgid "Reload all from disk"
msgstr "Znovu načíst vše z disku"
+# AI Translated
+msgid "Fix All"
+msgstr "Opravit vše"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Opravit všechny modely na aktuální desce"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Opravit všechny desky"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Opravit všechny modely na všech deskách"
+
msgid "Auto Rotate"
msgstr "Automatické otočení"
@@ -3117,8 +3331,13 @@ msgstr "(Ztracená barva)"
msgid "Center"
msgstr "Střed"
-msgid "Drop"
-msgstr "Pustit"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Zarovnat/Rozmístit"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Zarovnat a rozmístit objekty"
msgid "Edit Process Settings"
msgstr "Upravit nastavení procesu"
@@ -3420,6 +3639,14 @@ msgstr[0] "Nepodařilo se opravit následující modelový objekt"
msgstr[1] "Nepodařilo se opravit následující %1$d modelové objekty"
msgstr[2] "Nepodařilo se opravit následujících %1$d modelových objektů"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d modelový objekt nevyžadoval opravu."
+msgstr[1] "%1$d modelové objekty nevyžadovaly opravu."
+msgstr[2] "%1$d modelových objektů nevyžadovalo opravu."
+
msgid "Repairing was canceled"
msgstr "Oprava byla zrušena"
@@ -3492,9 +3719,6 @@ msgstr "Bez límce"
msgid "Outer wall speed"
msgstr "Rychlost vnější stěny"
-msgid "Plate"
-msgstr "Deska"
-
msgid "Brim"
msgstr "Límec"
@@ -3578,10 +3802,6 @@ msgstr "Přidat vlastní šablonu"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Vložte šablonu vlastního G-code na začátku této vrstvy."
-# AI Translated
-msgid "Filament "
-msgstr "Filament "
-
msgid "Change filament at the beginning of this layer."
msgstr "Změnit filament na začátku této vrstvy."
@@ -3671,6 +3891,8 @@ msgstr "Přesto změnit"
msgid "Off"
msgstr "Vypnuto"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "Filtr"
@@ -3790,12 +4012,19 @@ msgid "Check filament location"
msgstr "Zkontrolujte polohu filamentu"
# AI Translated
-msgid "Switch"
-msgstr "Přepnout"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Pozastavit"
# AI Translated
-msgid "hotend"
-msgstr "hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Přepnout extruder"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Přepnout hotend"
# AI Translated
msgid "Wait for AMS cooling"
@@ -3978,8 +4207,10 @@ msgid "Arranging"
msgstr "Uspořádání"
# AI Translated
-msgid "Arranging "
-msgstr "Rozkládání "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Uspořádání: %1%"
msgid "Arranging canceled."
msgstr "Uspořádání zrušeno."
@@ -4019,8 +4250,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Probíhá orientace..."
-msgid "Orienting"
-msgstr "Orientace"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Orientace: %1%"
msgid "Orienting canceled."
msgstr "Orientace zrušena."
@@ -4028,6 +4262,12 @@ msgstr "Orientace zrušena."
msgid "Filling"
msgstr "Vyplňování"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Zaplnění: %1%"
+
msgid "Bed filling canceled."
msgstr "Plnění podložky zrušeno."
@@ -4043,6 +4283,34 @@ msgstr "Vyhledávání orientace zrušeno."
msgid "Orientation found."
msgstr "Orientace nalezena."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Nejlepší kvalita povrchu"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Optimalizovat natočení objektu pro nejlepší kvalitu povrchu."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Snížené sklony převisů"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Optimalizovat natočení objektu tak, aby bylo co nejméně převisů vyžadujících podpory.\n"
+"Pokud není nastavena výška nad podložkou, tato metoda se pokusí najít nejlepší plochu objektu, kterou se dotkne podložky."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Nejnižší výška Z"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Natočit model tak, aby měl nejnižší výšku Z pro rychlejší tisk."
+
msgid "Logging in"
msgstr "Přihlašování"
@@ -4334,6 +4602,16 @@ msgstr "Nedávné projekty"
msgid "Go to Plate"
msgstr "Přejít na desku"
+msgid "Device"
+msgstr "Zařízení"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Zařízení (Web)"
+
+msgid "Multi-device"
+msgstr "Více zařízení"
+
msgid "AMS Materials Setting"
msgstr "Nastavení materiálů AMS"
@@ -4360,9 +4638,6 @@ msgstr "Vstupní hodnota musí být větší než %1% a menší než %2%."
msgid "Factors of Flow Dynamics Calibration"
msgstr "Faktory kalibrace dynamiky průtoku"
-msgid "Wiki Guide"
-msgstr "Wiki příručka"
-
msgid "PA Profile"
msgstr "PA profil"
@@ -4392,6 +4667,14 @@ msgstr "Zadejte platnou hodnotu (K v rozsahu %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Zadejte platnou hodnotu (K v rozsahu %.1f~%.1f, N v rozsahu %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Oblíbené filamenty"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Všechny filamenty"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4716,11 +4999,11 @@ msgstr "Síťový plug-in byl nainstalován, ale nepodařilo se jej načíst. Re
msgid "Restart Required"
msgstr "Vyžadován restart"
-msgid "Please home all axes (click "
-msgstr "Proveďte referenci všech os (klikněte "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") pro určení polohy tiskové hlavy. To zabraňuje pohybu zařízení mimo tisknutelnou oblast a minimalizuje opotřebení zařízení."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Proveďte referenci všech os (klikněte na %1%) pro určení polohy tiskové hlavy. To zabraňuje pohybu zařízení mimo tisknutelnou oblast a opotřebení zařízení."
msgid "Go Home"
msgstr "Na domovskou pozici"
@@ -4735,6 +5018,10 @@ msgstr "Došlo k fatální chybě: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Uložte prosím projekt a restartujte program."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Neznámá výjimka C++."
+
msgid "Processing G-Code from previous file…"
msgstr "Zpracovávání G-code z předchozího souboru..."
@@ -4964,6 +5251,14 @@ msgstr "Upravit ji automaticky na limit (%g mm)?"
msgid "Adjust"
msgstr "Upravit"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Raft a ochranný štít nejsou na pásových tiskárnách k dispozici.\n"
+"Byly vypnuty."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5805,9 +6100,6 @@ msgstr "Automaticky znovu provést slicování podle optimálního seskupení fi
msgid "Filament Grouping"
msgstr "Seskupení filamentů"
-msgid "Why this grouping"
-msgstr "Proč toto seskupení"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Umístěte filamenty do tiskárny podle výsledku seskupení."
@@ -5817,29 +6109,53 @@ msgstr "Tipy:"
msgid "Current grouping of slice result is not optimal."
msgstr "Aktuální seskupení výsledku slicování není optimální."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Oproti optimálnímu seskupení se zvýší spotřeba filamentu o %1%g a počet změn o %2%."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Oproti optimálnímu seskupení se zvýší spotřeba filamentu o %1%g a přibude %2% změna."
+msgstr[1] "Oproti optimálnímu seskupení se zvýší spotřeba filamentu o %1%g a přibudou %2% změny."
+msgstr[2] "Oproti optimálnímu seskupení se zvýší spotřeba filamentu o %1%g a přibude %2% změn."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Oproti optimálnímu seskupení se zvýší spotřeba filamentu o %1%g a ušetří se %2% změn."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Oproti optimálnímu seskupení se zvýší spotřeba filamentu o %1%g a ušetří se %2% změna."
+msgstr[1] "Oproti optimálnímu seskupení se zvýší spotřeba filamentu o %1%g a ušetří se %2% změny."
+msgstr[2] "Oproti optimálnímu seskupení se zvýší spotřeba filamentu o %1%g a ušetří se %2% změn."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Oproti optimálnímu seskupení se ušetří %1%g filamentu a zvýší počet změn o %2%."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Oproti optimálnímu seskupení se ušetří %1%g filamentu, ale přibude %2% změna."
+msgstr[1] "Oproti optimálnímu seskupení se ušetří %1%g filamentu, ale přibudou %2% změny."
+msgstr[2] "Oproti optimálnímu seskupení se ušetří %1%g filamentu, ale přibude %2% změn."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Ve srovnání s tiskárnou s jednou tryskou se ušetří %1%g filamentu a %2% změn."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Ve srovnání s tiskárnou s jednou tryskou se ušetří %1%g filamentu a %2% změna."
+msgstr[1] "Ve srovnání s tiskárnou s jednou tryskou se ušetří %1%g filamentu a %2% změny."
+msgstr[2] "Ve srovnání s tiskárnou s jednou tryskou se ušetří %1%g filamentu a %2% změn."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Ve srovnání s tiskárnou s jednou tryskou se ušetří %1%g filamentu a zvýší počet změn o %2%."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Ve srovnání s tiskárnou s jednou tryskou se ušetří %1%g filamentu, ale přibude %2% změna."
+msgstr[1] "Ve srovnání s tiskárnou s jednou tryskou se ušetří %1%g filamentu, ale přibudou %2% změny."
+msgstr[2] "Ve srovnání s tiskárnou s jednou tryskou se ušetří %1%g filamentu, ale přibude %2% změn."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Ve srovnání s tiskárnou s jednou tryskou se zvýší spotřeba filamentu o %1%g a ušetří se %2% změn."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Ve srovnání s tiskárnou s jednou tryskou se zvýší spotřeba filamentu o %1%g a ušetří se %2% změna."
+msgstr[1] "Ve srovnání s tiskárnou s jednou tryskou se zvýší spotřeba filamentu o %1%g a ušetří se %2% změny."
+msgstr[2] "Ve srovnání s tiskárnou s jednou tryskou se zvýší spotřeba filamentu o %1%g a ušetří se %2% změn."
msgid "Set to Optimal"
msgstr "Nastavit optimální"
@@ -5996,11 +6312,61 @@ msgstr "Zvětšit/zmenšit editační oblast"
msgid "Sequence"
msgstr "Sekvence"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Těžiště desky"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Těžiště dílu"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Těžiště podpor"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Těžiště sestavy"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Těžiště objektu"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Dokončený tisk"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Vytištěno po vrstvu %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Hmotnost"
+
+# AI Translated
+msgid "Volume"
+msgstr "Objem"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Střed v ohraničujícím kvádru"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Rozměry ohraničujícího kvádru"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Moment setrvačnosti"
+
msgid "Object selection"
msgstr "Výběr objektu"
-msgid "number keys"
-msgstr "číselné klávesy"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "Číselné klávesy 1~16"
msgid "Number keys can quickly change the color of objects"
msgstr "Číselné klávesy mohou rychle změnit barvu objektů"
@@ -6214,9 +6580,20 @@ msgstr "Osy"
msgid "Gridlines"
msgstr "Mřížka"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Popisky"
+# AI Translated
+msgid "Center of mass"
+msgstr "Těžiště"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Zobrazit nezpracovaný G-code (pouze pásové tiskárny)"
+
# AI Translated
msgid "Move section plane"
msgstr "Posunout rovinu řezu"
@@ -6266,7 +6643,7 @@ msgid "Size:"
msgstr "Velikost:"
# AI Translated
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Byly nalezeny konflikty drah G-code ve vrstvě %d, Z = %.2lf mm. Oddělte prosím konfliktní objekty více od sebe (%s <-> %s)."
@@ -6291,22 +6668,18 @@ msgstr "Nástroj %d"
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Filament %s je umístěn v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou oblast %s."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Filamenty %s jsou umístěny v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou oblast %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "Filament %s je umístěn v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou oblast %s."
+msgstr[1] "Filamenty %s jsou umístěny v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou oblast %s."
+msgstr[2] "Filamenty %s jsou umístěny v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou oblast %s."
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Filament %s je umístěn v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou výšku %s."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Filamenty %s jsou umístěny v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou výšku %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "Filament %s je umístěn v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou výšku %s."
+msgstr[1] "Filamenty %s jsou umístěny v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou výšku %s."
+msgstr[2] "Filamenty %s jsou umístěny v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou výšku %s."
msgid "Open wiki for more information."
msgstr "Otevřít wiki pro více informací."
@@ -6314,9 +6687,13 @@ msgstr "Otevřít wiki pro více informací."
msgid "Only the object being edited is visible."
msgstr "Viditelný je pouze upravovaný objekt."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Filamenty %s nelze tisknout přímo na povrch této podložky."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "Filament %s nelze tisknout přímo na povrch této podložky."
+msgstr[1] "Filamenty %s nelze tisknout přímo na povrch této podložky."
+msgstr[2] "Filamenty %s nelze tisknout přímo na povrch této podložky."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "Ve směsi byly detekovány filamenty PLA a PETG. Upravte parametry podle Wiki pro zajištění kvality tisku."
@@ -6439,27 +6816,20 @@ msgstr "Připravit"
msgid "Preview"
msgstr "Náhled"
-msgid "Device"
-msgstr "Zařízení"
-
-msgid "Multi-device"
-msgstr "Více zařízení"
-
msgid "Project"
msgstr "Projekt"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Zařízení (Web)"
-
msgid "Yes"
msgstr "Ano"
msgid "No"
msgstr "Ne"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "bude zavřeno před vytvořením nového modelu. Chcete pokračovat?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s bude zavřeno před vytvořením nového modelu. Chcete pokračovat?"
msgid "Print all"
msgstr "Tisknout vše"
@@ -6504,6 +6874,10 @@ msgstr "Průvodce nastavením"
msgid "Show Configuration Folder"
msgstr "Zobrazit složku s konfigurací"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Vrátit předvolby filamentů, které aktualizace profilů odebrala z tiskáren, pro které byly vytvořeny"
+
# AI Translated
msgid "Troubleshoot Center"
msgstr "Centrum řešení potíží"
@@ -6747,6 +7121,14 @@ msgstr "Zobrazit mřížku"
msgid "Show Gridlines on plate"
msgstr "Zobrazit mřížku na podložce"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Zobrazit tiskovou hlavu IDEX/IQEX"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Zobrazí v náhledu G-code znázornění tiskové hlavy IDEX/IQEX kolem každé aktivní trysky."
+
msgid "Reset Window Layout"
msgstr "Obnovit rozložení oken"
@@ -7389,6 +7771,8 @@ msgstr "Rychlost"
msgid "Calculating..."
msgstr "Výpočet..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Kamera"
@@ -7469,9 +7853,13 @@ msgstr "Stahování..."
msgid "Cloud Slicing..."
msgstr "Cloudové slicování..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "Ve frontě cloudového slicování je před vámi %s úloh."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "Ve frontě cloudového slicování je před vámi %d úloha."
+msgstr[1] "Ve frontě cloudového slicování jsou před vámi %d úlohy."
+msgstr[2] "Ve frontě cloudového slicování je před vámi %d úloh."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7502,6 +7890,11 @@ msgstr "Tato volba má účinek pouze během tisku"
msgid "Silent"
msgstr "Tichý"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Standardní"
+
# AI Translated
msgid "Sport"
msgstr "Sport"
@@ -7560,17 +7953,29 @@ msgstr "Nahrát obrázky"
msgid "Number of images successfully uploaded"
msgstr "Počet úspěšně nahraných obrázků"
-msgid " upload failed"
-msgstr " nahrání selhalo"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Nahrání %s se nezdařilo"
-msgid " upload config prase failed\n"
-msgstr " nahrání konfigurační fráze selhalo\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Zpracování konfigurace nahrávání %s se nezdařilo"
-msgid " No corresponding storage bucket\n"
-msgstr " Není dostupný odpovídající úložný bucket\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: Není dostupný odpovídající úložný bucket"
-msgid " cannot be opened\n"
-msgstr " nelze otevřít\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s nelze otevřít"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7588,24 +7993,20 @@ msgstr "Nahrávání selhalo\n"
msgid "Obtaining instance_id failed\n"
msgstr "Nepodařilo se získat instance_id\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Výsledek vašeho komentáře nelze nahrát z následujících důvodů:\n"
-"\n"
-" kód chyby: "
-
-msgid "error message: "
-msgstr "chybová zpráva: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Výsledek vašeho komentáře nelze nahrát z následujících důvodů:\n"
"\n"
+" kód chyby: %d\n"
+" chybová zpráva: %s\n"
"\n"
"Chcete být přesměrováni na webovou stránku pro hodnocení?"
@@ -8450,6 +8851,108 @@ msgstr "Zobrazit nastavení všech objektů"
msgid "Material settings"
msgstr "Nastavení materiálu"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Každý režim určuje, které tiskové hlavy se ho účastní a jakou roli každá z nich hraje. Kliknutím na tlačítko nástroje přepnete jeho roli — po najetí na barvu níže se zobrazí, co jednotlivé role dělají."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Přidat režim"
+
+# AI Translated
+msgid "Tools"
+msgstr "Nástroje"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Jak je režim označen ve výběru režimu IDEX/IQEX u desky. Povinné — režim bez názvu nelze vybrat."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Které tiskové hlavy se režimu účastní a jakou roli každá z nich hraje. Kliknutím na dlaždici přepnete její roli."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code spuštěný na začátku tisku, který přepne tiskárnu do tohoto režimu (například volání SET_PRINT_MODE v Klipperu). Slicer generuje pouze dráhy primárního nástroje (Primary); ostatní řídí firmware."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Neaktivní"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Primární"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Kopie"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Zrcadlo"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Řídí všechny slicované dráhy. Vždy nástroj 0 — pomocí volby Pozice nástroje 0 výše zvolte, ve kterém rohu podložky se nachází. Z mřížky jej nelze přesunout."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Následuje primární nástroj (Primary) na úrovni firmwaru a tiskne stejné dráhy posunuté do své vlastní zóny."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Následuje primární nástroj (Primary) na úrovni firmwaru a tiskne stejné dráhy zrcadlené přes hranici mezi oběma zónami."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Označí nástroj na portálu primárního nástroje (Primary) jako jeho partnera pro vícebarevný tisk. Vyžadováno pro vícebarevný tisk v režimech se spárovanými portály."
+
+# AI Translated
+msgid "Primary"
+msgstr "Primární"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Název režimu (povinné)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Název tohoto paralelního režimu, jak se zobrazuje ve výběru režimu IDEX/IQEX u desky. V projektu se ukládá podle názvu, takže po přejmenování režimu, který již desky používají, se tyto desky vrátí do režimu Primární. Nesmí být prázdný — prázdný název se nahradí vygenerovaným."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code vložený jednou na začátku tisku, který používá tento režim, ještě před startovacím G-code stroje. Zde se tiskárna přepíná do odpovídajícího režimu firmwaru — například voláním SET_PRINT_MODE v Klipperu nebo M567 v RepRapFirmware — protože slicer generuje pouze dráhy primárního nástroje (Primary) a nástroje v rolích Kopie (Copy) / Zrcadlo (Mirror) řídí firmware. Zástupné znaky jsou podporovány; procházet je můžete tlačítkem úprav. Pokud režim nevyžaduje nastavení firmwaru, ponechte prázdné."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Upravit G-code / procházet zástupné znaky"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Odebrat režim"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Zahodit úpravy tohoto režimu provedené v této relaci (vrátit uloženou hodnotu)"
+
msgid "Remove current plate (if not last one)"
msgstr "Odstranit aktuální desku (pokud není poslední)"
@@ -8475,12 +8978,33 @@ msgstr "Upravit název aktuální desky"
msgid "Move plate to the front"
msgstr "Přesuňte desku do přední pozice"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "Režim IDEX/IQEX: %1% (předvolba procesu: %2%) (levým kliknutím přepnete, pravým otevřete nabídku)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "Režim IDEX/IQEX: %1% (levým kliknutím přepnete, pravým otevřete nabídku)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Varování: tato deska používá paralelní režim IDEX/IQEX s vícemateriálovými objekty. Postupujte opatrně — ověřte, že váš G-code tuto kombinaci zvládá správně."
+
msgid "Customize current plate"
msgstr "Přizpůsobit aktuální desku"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "Tryska %s nemůže tisknout %s."
+msgid "The left nozzle cannot print %s."
+msgstr "Levá tryska nemůže tisknout %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "Pravá tryska nemůže tisknout %s."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8490,12 +9014,19 @@ msgstr "Tisk filamentu s míchanou barvou na tiskárně s jedním extruderem vy
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Míchání %1% s %2% při tisku není doporučeno.\n"
-msgid " nozzle"
-msgstr " tryska"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Není doporučeno tisknout následující filament(y) pomocí %1%: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "Tryska %1% mm (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Nedoporučuje se tisknout následující filament pomocí %1%: %2%\n"
+msgstr[1] "Nedoporučuje se tisknout následující filamenty pomocí %1%: %2%\n"
+msgstr[2] "Nedoporučuje se tisknout následující filamenty pomocí %1%: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "Nedoporučuje se používat následující kombinace trysek a filamentů:\n"
@@ -8505,9 +9036,11 @@ msgstr "Nedoporučuje se používat následující kombinace trysek a filamentů
msgid "%1% with %2%\n"
msgstr "%1% s %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " deska %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Slicování desky %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Neplatný název, následující znaky nejsou povoleny:"
@@ -8542,12 +9075,6 @@ msgstr "AMS (1 slot)"
msgid "Not installed"
msgstr "Nenainstalováno"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "Software nepodporuje použití různých průměrů trysek v rámci jednoho tisku. Pokud se levá a pravá tryska liší, lze pokračovat pouze tiskem s jednou hlavou. Potvrďte prosím, kterou trysku chcete pro tento projekt použít."
-
-msgid "Switch diameter"
-msgstr "Přepnout průměr"
-
msgid "Configuration incompatible"
msgstr "Konfigurace není kompatibilní"
@@ -8632,6 +9159,10 @@ msgstr "Míchaný filament"
msgid "Remove last mixed filament"
msgstr "Odebrat poslední míchaný filament"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Odebrat všechny míchané filamenty"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Přidat míchaný filament"
@@ -8654,6 +9185,14 @@ msgstr "Míchaný filament má poškozené odkazy na komponenty"
msgid "Edit / Delete / Merge"
msgstr "Upravit / Smazat / Sloučit"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Odebrat %1% míchaný filament?"
+msgstr[1] "Odebrat všechny %1% míchané filamenty?"
+msgstr[2] "Odebrat všech %1% míchaných filamentů?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Cílový míchaný filament používá tento fyzický filament jako komponentu. Sloučením se tento fyzický filament odstraní a míchaný filament může přestat být platný. Pokračovat?"
@@ -8728,9 +9267,6 @@ msgstr "Načítání souboru: %s"
msgid "Load 3MF"
msgstr "Načíst 3MF"
-msgid "BambuStudio Project"
-msgstr "Projekt BambuStudio"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "3MF není OrcaSlicerem podporován, načítají se pouze data geometrie."
@@ -8760,17 +9296,6 @@ msgstr "Doporučujeme aktualizovat software.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "Verze souboru 3MF %s je novější než verze %s %s, doporučujeme aktualizovat software."
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "Soubor 3MF byl vytvořen v BambuStudio (verze %s), která je novější než kompatibilní verze %s. Byla nalezena nerozpoznaná nastavení:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "Soubor 3MF byl vytvořen v BambuStudio (verze %s), která je novější než kompatibilní verze %s. Některá nastavení nemusí být plně kompatibilní."
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "Soubor 3MF byl vytvořen v BambuStudio. Některá nastavení se mohou od OrcaSliceru lišit."
-
msgid "Invalid values found in the 3MF:"
msgstr "V souboru 3MF byly nalezeny neplatné hodnoty:"
@@ -8939,6 +9464,15 @@ msgstr "Zakázat automatické položení pro zachování pozice v ose Z?\n"
msgid "Object with floating parts was detected"
msgstr "Byl detekován objekt s visícími částmi"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Nelze slicovat: objekt zasahuje do oblasti vyhrazené pro paralelní tisk IDEX/IQEX (sekundární zóna nebo bezpečnostní pás vozíku uvnitř primární zóny)."
+
+# AI Translated
+# Needs human review: Prime tower: the glossary cell is unsettled (Základní věž / Věž na očištění trysky); the catalog label uses Základní věž, but many sentences use čisticí věž.
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Nelze slicovat: základní věž zasahuje do oblasti vyhrazené pro paralelní tisk IDEX/IQEX (sekundární zóna nebo bezpečnostní pás vozíku uvnitř primární zóny)."
+
msgid "Another export job is running."
msgstr "Probíhá jiný exportní úkol."
@@ -8992,7 +9526,8 @@ msgstr "Nahrazené objemy"
msgid "Please select a file"
msgstr "Vyberte soubor."
-msgid "Do you want to replace it"
+# AI Translated
+msgid "Do you want to replace it?"
msgstr "Chcete jej nahradit?"
msgid "Message"
@@ -9023,6 +9558,50 @@ msgstr "Neplatná data"
msgid "Slicing Canceled"
msgstr "Slicing zrušen"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Konflikt teploty podložky: T%d (%s) nastavuje podložku na %d℃ — T%d (%s) vyžaduje %d℃. Podložku řídí primární nástroj; sekundární nástroje tisknou při teplotě, kterou nastaví."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Neshoda typů filamentu: T%d používá %s a T%d používá %s. Tyto materiály mají neslučitelné požadavky a nejsou určeny ke společnému tisku."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"Deska %d má aktivní paralelní režim IDEX/IQEX s těmito problémy:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Pokračovat ve slicování?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Varování paralelního režimu IDEX/IQEX"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Tato varování již nezobrazovat"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Deska %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Byly zjištěny tyto problémy paralelního režimu IDEX/IQEX:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Síťový plugin byl úspěšně přepnut."
@@ -9055,8 +9634,8 @@ msgid "Sync now"
msgstr "Synchronizovat nyní"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Během probíhající operace nelze vracet zpět ani znovu provádět. Nejprve ji zastavte."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Během probíhající operace nelze akce vracet ani znovu provádět. Zastavte operaci, nebo počkejte na její dokončení a zkuste to znovu."
# AI Translated
msgid ""
@@ -9127,6 +9706,14 @@ msgstr "Stažení selhalo, chyba velikosti souboru."
msgid "Project downloaded %d%%"
msgstr "Projekt stažen z %d %%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"Testy PA čára a PA vzor zatím nejsou na pásových tiskárnách dostupné.\n"
+"Použijte prosím místo nich metodu PA věž."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Test Pressure Advance"
@@ -9135,11 +9722,15 @@ msgstr "Test Pressure Advance"
msgid "INFO:"
msgstr "INFO:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Pro kalibraci nejsou zadány hodnoty zrychlení. Použije se výchozí hodnota "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Pro kalibraci nejsou zadány hodnoty zrychlení. Použije se výchozí hodnota zrychlení %1% mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Pro kalibraci nejsou zadány rychlosti. Použije se výchozí optimální rychlost "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Pro kalibraci nejsou zadány rychlosti. Použije se výchozí optimální rychlost %1% mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9154,6 +9745,15 @@ msgstr "Orca YOLO kalibrace průtoku"
msgid "Flowrate Test - Pass%d"
msgstr "Test průtoku - průchod %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Pro rozsah %1% až %2%℃ není k dispozici žádná teplotní věž pro pás. Použijte rozsah, který modely věže pokrývají, například 230 až 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Teplotní věž"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Test teploty trysky"
@@ -9178,11 +9778,16 @@ msgstr "Test corneringu"
msgid "Import SLA archive"
msgstr "Importovat SLA archiv"
-msgid "The selected file"
-msgstr "Vybraný soubor"
-
-msgid "Does not contain valid G-code."
-msgstr "neobsahuje platný G-code."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Vybraný soubor:\n"
+"%1%\n"
+"neobsahuje platný G-code."
msgid "An Error has occurred while loading the G-code file."
msgstr "Chyba při načítání G-code souboru"
@@ -9456,6 +10061,27 @@ msgstr "Formulář konfigurace objektu momentálně nelze použít s tiskárnou
msgid "Not available"
msgstr "Není k dispozici"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (žádná deska)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — není přiřazen žádný filament\n"
+"Přidejte extruder na kartě Zařízení, aby tato hlava měla slot pro filament."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> filament %2%"
+
msgid "isometric"
msgstr "izometrický"
@@ -9495,6 +10121,8 @@ msgstr "Evropa"
msgid "North America"
msgstr "Severní Amerika"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "Ostatní"
@@ -9570,11 +10198,17 @@ msgstr "Nepodařilo se znovu načíst síťový plugin. Restartujte prosím apli
msgid "Reload Failed"
msgstr "Znovunačtení selhalo"
-msgid "Associate"
-msgstr "Přiřadit"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Přiřadit %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "s OrcaSlicer, aby Orca mohla otevírat modely z"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Přiřadit %s:// k OrcaSliceru, aby Orca mohla otevírat modely z %s"
msgid "Current Association: "
msgstr "Aktuální asociace: "
@@ -9874,6 +10508,9 @@ msgstr "Pamatovat si poslední tiskovou akci"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Je-li zapnuto, OrcaSlicer si zapamatuje poslední vybranou možnost v rozbalovací nabídce tlačítka tisku (např. Tisk, Exportovat nařezaný soubor desky, Exportovat G-code soubor) a při příštím spuštění ji použije jako výchozí."
+msgid "Camera"
+msgstr "Kamera"
+
# AI Translated
msgid "Touchpad"
msgstr "Touchpad"
@@ -10329,6 +10966,9 @@ msgstr "Verze síťového pluginu"
msgid "Select the network plug-in version to use"
msgstr "Vyberte verzi síťového pluginu"
+msgid "Associate"
+msgstr "Přiřadit"
+
msgid "Associate files to OrcaSlicer"
msgstr "Přiřadit soubory k OrcaSliceru"
@@ -10381,6 +11021,12 @@ msgstr "Zobrazit nepodporované předvolby"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Zobrazovat nekompatibilní/nepodporované předvolby v rozevíracích seznamech tiskáren a filamentů. Tyto předvolby nelze vybrat."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "Experimentální funkce"
@@ -10669,10 +11315,6 @@ msgstr "Publikovat 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Vyberte, která nastavení se mají publikovat v souboru 3MF"
-# AI Translated
-msgid "Video Guide"
-msgstr "Video návod"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Míchaný filament - publikuje se jako celek, pokud je výše zvoleno \"Povolit\""
@@ -10838,6 +11480,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Jednoduchý"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s z %s"
+
# AI Translated
msgid "Search actions"
msgstr "Hledat akce"
@@ -10956,6 +11604,10 @@ msgstr "Zobrazit podrobnosti"
msgid "Hide details"
msgstr "Skrýt podrobnosti"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Webové zobrazení není k dispozici."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11243,9 +11895,13 @@ msgstr "Odeslání selhalo"
msgid "The name length exceeds the limit."
msgstr "Délka názvu překračuje limit."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Spotřebuje o %dg filamentu a o %d změn více než optimální seskupení."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Spotřebuje o %dg filamentu a o %d změnu více než optimální seskupení."
+msgstr[1] "Spotřebuje o %dg filamentu a o %d změny více než optimální seskupení."
+msgstr[2] "Spotřebuje o %dg filamentu a o %d změn více než optimální seskupení."
# AI Translated
msgid "Right-Ext"
@@ -11335,6 +11991,10 @@ msgstr "Některé filamenty se mohou během tisku přepínat mezi extrudery. Ru
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "V tomto souboru je filament náchylný ke stringingu. Pro nejlepší kvalitu tisku doporučujeme přepnout detekci shlukování trysky do automatického režimu."
+# AI Translated
+msgid "Switch"
+msgstr "Přepnout"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Pokud je „Dynamická kalibrace průtoku“ nastavena na Auto/Zapnuto, systém použije ručně zkalibrovanou nebo výchozí hodnotu a proces kalibrace průtoku přeskočí. Ruční kalibraci průtoku pro filament TPU můžete provést na stránce „Kalibrace“."
@@ -11642,6 +12302,10 @@ msgstr "Synchronizace mezi různými pohony extruderu nebo typy objemu trysky ne
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Synchronizovat úpravu parametrů s odpovídajícími parametry druhého extruderu."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Parametry s touto ikonou lze nastavit pro každou trysku zvlášť."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Kliknutím obnovíte všechna nastavení na poslední uloženou předvolbu."
@@ -11664,6 +12328,7 @@ msgid "Enabling both precise Z height and the prime tower may cause slicing erro
msgstr "Povolení přesné výšky Z i čistící věže může způsobit chyby slicování. Chcete přesto povolit přesnou výšku Z?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "čistící věž"; align it once the term is settled.
msgid "Smooth timelapse needs a prime tower on every layer, which is not compatible with \"No sparse layers\". \"No sparse layers\" has been turned off."
msgstr "Plynulý časosběr vyžaduje čistící věž na každé vrstvě, což není slučitelné s možností \"Žádné řídké vrstvy\". Možnost \"Žádné řídké vrstvy\" byla vypnuta."
@@ -11671,6 +12336,7 @@ msgid "A prime tower is required for smooth timelapse mode. There may be flaws o
msgstr "Pro hladký časosběr je potřeba základní věž. Model může mít vady bez základní věže. Chcete povolit základní věž?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "čistící věž"; align it once the term is settled.
msgid "\"No sparse layers\" is not compatible with smooth timelapse, which needs a prime tower on every layer. Timelapse has been switched to traditional mode."
msgstr "Možnost \"Žádné řídké vrstvy\" není slučitelná s plynulým časosběrem, který vyžaduje čistící věž na každé vrstvě. Časosběr byl přepnut do tradičního režimu."
@@ -11873,6 +12539,9 @@ msgstr "Filament pro funkce"
msgid "Ooze prevention"
msgstr "Prevence vytékání"
+msgid "Others"
+msgstr "Ostatní"
+
msgid "Special mode"
msgstr "Speciální režim"
@@ -11916,8 +12585,11 @@ msgstr[2] ""
"Následující řádky %s obsahují vyhrazená klíčová slova.\n"
"Odstraňte je prosím, jinak bude narušena vizualizace G-code a odhad doby tisku."
-msgid "Reserved keywords found"
-msgstr "Byla nalezena rezervovaná klíčová slova"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "V %1% byla nalezena rezervovaná klíčová slova"
msgid "Setting Overrides"
msgstr "Přepisování nastavení"
@@ -12060,7 +12732,16 @@ msgstr "Tisknutelný prostor"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Vyberte implementaci síťového agenta pro komunikaci s tiskárnou. Dostupní agenti jsou registrováni při spuštění."
+# AI Translated
+msgid "Belt printer"
+msgstr "Pásová tiskárna"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Transformace souřadnicového systému stroje"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Byla zadána neplatná hodnota parametru %1%: %2%"
@@ -12176,9 +12857,29 @@ msgstr "Průměr trysky"
msgid "Wipe tower"
msgstr "Věž na očištění trysky"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Čisticí věž pásu"
+
msgid "Single extruder multi-material parameters"
msgstr "Parametry jedné trysky pro více materiálů"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "Konfigurace IDEX/IQEX"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Varování před slicováním"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Před slicováním zobrazí dialog s varováním, pokud jsou zjištěny problémy paralelního režimu IDEX/IQEX (konflikty teploty podložky, neshody typů filamentu, konflikty více materiálů). Lze jej potlačit přímo v dialogu. Pokud jste jej potlačili omylem, zde jej znovu povolte."
+
+# AI Translated
+msgid "Modes"
+msgstr "Režimy"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Toto je jednoextrudérová vícemateriálová tiskárna, průměry všech extrudérů budou nastaveny na novou hodnotu. Chcete pokračovat?"
@@ -12188,6 +12889,22 @@ msgstr "Omezení výšky vrstvy"
msgid "Z-Hop"
msgstr "Z-Hop"
+# AI Translated
+msgid "Front-left"
+msgstr "Vpředu vlevo"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Vpředu vpravo"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Vzadu vlevo"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Vzadu vpravo"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -12210,24 +12927,41 @@ msgstr "Použít upravenou hodnotu"
msgid "Detached"
msgstr "Odpojeno"
+# AI Translated
+# Needs human review: %1% and %2% are count phrases built from the plural entries '%d filament preset' and '%d process preset'; check 'je připojeno' reads right with a nominative count (1 předvolba, 2 předvolby, 5 předvoleb).
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "K této tiskárně je připojeno %1% a %2%. Tyto předvolby budou smazány, pokud bude tiskárna smazána."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d přednastavení filamentu a %d přednastavení procesu je připojeno k této tiskárně. Tato přednastavení budou odstraněna, pokud bude tiskárna smazána."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d předvolba filamentu"
+msgstr[1] "%d předvolby filamentu"
+msgstr[2] "%d předvoleb filamentu"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d předvolba procesu"
+msgstr[1] "%d předvolby procesu"
+msgstr[2] "%d předvoleb procesu"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Předvolby zděděné jinými předvolbami nelze odstranit!"
# AI Translated
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
msgstr[0] "Následující předvolba dědí z této předvolby."
msgstr[1] "Následující předvolby dědí z této předvolby."
-msgstr[2] "Následujících předvoleb dědí z této předvolby."
+msgstr[2] "Následující předvolby dědí z této předvolby."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "Předvolba %1%"
+msgid "Delete Preset"
+msgstr "Smazat předvolbu"
# AI Translated
msgid "The following preset will be deleted too:"
@@ -12243,9 +12977,9 @@ msgstr ""
"Opravdu chcete odstranit vybranou předvolbu?\n"
"Pokud tato předvolba odpovídá filamentu aktuálně použitému na vaší tiskárně, prosím resetujte informace o filamentu pro tento slot."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Opravdu chcete %1% vybranou předvolbu?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Opravdu chcete odstranit vybranou předvolbu?"
msgid "Select printers"
msgstr "Vyberte tiskárny"
@@ -12299,9 +13033,39 @@ msgid "Don't warn again for this preset"
msgstr "Pro tuto předvolbu již nezobrazovat upozornění"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# Needs human review: Short tag for Standard Flow; kept as the English abbreviation. Check whether a Czech abbreviation is wanted where the tag is shown.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Short tag for High Flow; kept as the English abbreviation. Check whether a Czech abbreviation is wanted where the tag is shown.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Short tag for TPU High Flow; kept as the English abbreviation. Check whether a Czech abbreviation is wanted where the tag is shown.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Short tag for E3D High Flow; kept as the English abbreviation. Check whether a Czech abbreviation is wanted where the tag is shown.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short tag for Extra High Flow; kept as the English abbreviation. Check whether a Czech abbreviation is wanted where the tag is shown.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
# AI Translated
msgid "No modifications need to be copied."
@@ -12509,6 +13273,12 @@ msgstr "Jedna z předvoleb neexistuje"
msgid "Compared presets has different printer technology"
msgstr "Porovnávané předvolby mají odlišnou technologii tisku"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" vs. \"%2%\""
+
msgid "Add File"
msgstr "Přidat soubor"
@@ -12534,6 +13304,22 @@ msgstr "Seznam materiálu"
msgid "Assembly Guide"
msgstr "Průvodce sestavením"
+# AI Translated
+msgid "Image files"
+msgstr "Soubory obrázků"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXT soubory"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCEL soubory"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDF soubory"
+
msgid "Author"
msgstr "Autor"
@@ -12761,10 +13547,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Celkový ramming"
-# AI Translated
-msgid "Volume"
-msgstr "Objem"
-
# AI Translated
msgid "Ramming line"
msgstr "Linie rammingu"
@@ -12800,8 +13582,10 @@ msgid "Flushing volumes for filament change"
msgstr "Objemy čištění při výměně filamentu"
# AI Translated
-msgid "Please choose the filament color"
-msgstr "Vyberte prosím barvu filamentu"
+# Needs human review: Corner header of the flushing volume table (rows = filament flushed from, columns = filament changed to); check it fits the cell.
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "z/na"
# AI Translated
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -12827,6 +13611,144 @@ msgstr "Přihlášení se nezdařilo. Zkuste to prosím znovu."
msgid "parse json failed"
msgstr "zpracování json se nezdařilo"
+msgid "Loading…"
+msgstr "Načtení probíhá…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Vlastní"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Vítejte v Orca Slicer"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer bude nastaven v několika krocích. Začněme!"
+
+msgid "Get Started"
+msgstr "Začínáme"
+
+msgid "Please select your login region"
+msgstr "Vyberte prosím svou oblast přihlášení"
+
+msgid "Finish"
+msgstr "Dokončit"
+
+msgid "Printer Selection"
+msgstr "Výběr tiskárny"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Dodavatelé"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Vlastní tiskárna"
+
+msgid "Create"
+msgstr "Vytvořit"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Vyhledat nové tiskárny"
+
+msgid "At least one printer must be selected."
+msgstr "Musí být vybrána alespoň jedna tiskárna."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Nalezeny nové tiskárny"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Nainstalovaní noví dodavatelé tiskáren: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Byli nalezeni noví dodavatelé tiskáren, ale instalace byla zrušena."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Nebyly nalezeny žádné nové tiskárny."
+
+msgid "Filament Selection"
+msgstr "Výběr Filamentu"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "Systémové filamenty"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "Vlastní filamenty"
+
+# AI Translated
+msgid "Create New"
+msgstr "Vytvořit nový"
+
+msgid "Filament type"
+msgstr "Typ filamentu"
+
+msgid "Vendor"
+msgstr "Dodavatel"
+
+# AI Translated
+msgid "No items"
+msgstr "Žádné položky"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Filtrovat položky"
+
+# AI Translated
+# Needs human review: Filter option in the setup wizard's printer/filament list (WebGuideDialog); check it reads as 'checked items' next to Unchecked.
+msgid "Checked"
+msgstr "Zaškrtnuté"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Nezaškrtnuté"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Vybrat filtrované"
+
+msgid "Clear all"
+msgstr "Vymazat vše"
+
+msgid "At least one filament must be selected."
+msgstr "Musí být vybraný alespoň jeden Filament."
+
+msgid "Do you want to use the default filament?"
+msgstr "Chcete použít výchozí Filament?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Tím se vypnou všechny cloudové funkce včetně synchronizace profilů s Orca Cloud. Uživatelé, kteří chtějí pracovat zcela offline, mohou tuto možnost zapnout."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Poznámka: Je-li Stealth režim zapnut, nebudou vaše uživatelské profily zálohovány do Orca Cloud."
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "Zapnout Stealth režim."
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Proprietární pluginy"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Někteří dodavatelé tiskáren vyžadují pro komunikaci se svými tiskárnami proprietární pluginy. Pokud takové tiskárny používáte, vyberte prosím odpovídající plugin."
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Upozorňujeme, že tyto pluginy nevyvíjí ani neudržuje OrcaSlicer. Používáte je podle vlastního uvážení a na vlastní riziko."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Instalovat Bambu Network plug-in"
+
# AI Translated
msgid "[Action Required] "
msgstr "[Vyžadována akce] "
@@ -12897,9 +13819,6 @@ msgstr "Dostupné, když má fokus 3D pohled na kartě Připravit."
msgid "Select a part"
msgstr "Vyberte část"
-msgid "Select multiple objects"
-msgstr "Vyberte více objektů"
-
msgid "Select objects by rectangle"
msgstr "Vyberte objekty obdélníkem"
@@ -13234,26 +14153,21 @@ msgstr "Verze firmwaru je nestandardní. Před tiskem je vyžadována oprava a a
msgid "Extension Board"
msgstr "Rozšiřující deska"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Rozdělit na %1% částí"
-
msgid "Repair finished"
msgstr "Oprava dokončena"
-msgid "Repair failed"
-msgstr "Oprava selhala"
-
-msgid "Repair canceled"
-msgstr "Oprava zrušena"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Kopírování souboru %1% do %2% selhalo: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Stahování nových profilů dodavatelů: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Stahování nového profilu dodavatele: %1%..."
+msgstr[1] "Stahování nových profilů dodavatelů: %1%..."
+msgstr[2] "Stahování nových profilů dodavatelů: %1%..."
# AI Translated
#, boost-format
@@ -13261,8 +14175,13 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Balíček konfigurace: %1% aktualizováno na %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Stažení profilů dodavatelů selhalo: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Stažení profilu dodavatele selhalo: %1%"
+msgstr[1] "Stažení profilů dodavatelů selhalo: %1%"
+msgstr[2] "Stažení profilů dodavatelů selhalo: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Nejprve je třeba zkontrolovat neuložené změny před aktualizací konfigurace."
@@ -13270,6 +14189,11 @@ msgstr "Nejprve je třeba zkontrolovat neuložené změny před aktualizací kon
msgid "Open G-code file:"
msgstr "Otevřít G-code soubor:"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Generování věže na očištění trysky se nezdařilo, pravděpodobně kvůli prázdné první vrstvě."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Jeden objekt má prázdnou počáteční vrstvu a nelze jej vytisknout. Odřízněte spodní část nebo povolte podpěry."
@@ -13290,9 +14214,61 @@ msgstr "G-code při změně role extruze (proces)"
msgid "Filament change extrusion role G-code"
msgstr "G-code při změně role extruze (filament)"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"Export G-code do %1% se nezdařil.\n"
+"Soubor nelze otevřít pro zápis."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "Složka %1% neexistuje."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"Export G-code do %1% se nezdařil.\n"
+"Je disk plný?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Nepodařilo se přejmenovat výstupní soubor G-code z %1% na %2%.\n"
+"Chyba: %3%\n"
+"Je %1% uzamčen?"
+
msgid "No object can be printed. It may be too small."
msgstr "Nelze vytisknout žádný objekt. Možná je příliš malý."
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "Režim IDEX/IQEX „%1%“ nemá na vybrané tiskárně přiřazené žádné nástroje. Místo něj se tiskne v režimu Primární. Přiřaďte nástroje režimu v Nastavení tiskárny, nebo vyberte jiný režim tlačítkem IDEX/IQEX u desky."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Tato deska je nastavena na režim IDEX/IQEX „%1%“, který vybraná tiskárna nedefinuje. Místo něj se tiskne v režimu Primární. Vyberte režim tlačítkem IDEX/IQEX u desky, nebo režim obnovte v Nastavení tiskárny."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Neplatná hodnota miniatur:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Váš tisk je velmi blízko primovacím oblastem. Ujistěte se, že nedojde ke kolizi."
@@ -13337,6 +14313,10 @@ msgstr "Chyba seskupení: %1% nelze umístit do levé trysky"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Chyba seskupení: %1% nelze umístit do pravé trysky"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Nebyla nalezena žádná platná tryska. Zkontrolujte prosím počet trysek."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Chyba seskupení v ručním režimu. Zkontrolujte prosím počet trysek nebo proveďte seskupení znovu."
@@ -13356,6 +14336,18 @@ msgstr "více průsečíků s obvodem, použit byl pouze jeden (%1%)"
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "obvod leží celý uvnitř modifikátoru, modifikátor na něj nebyl použit (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "Modifikátor %1% „%2%“ objektu „%3%“ pokrývá celý obvod"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "Modifikátor %1% „%2%“ objektu „%3%“ (celkem %4%) pokrývá celý obvod"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13370,9 +14362,47 @@ msgstr "modifikátor „%1%“ objektu „%2%“ (celkem %3%) neměl na šev ž
msgid "Seam placement may differ from expected."
msgstr "Umístění švu se může lišit od očekávaného."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Vnitřní most"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() vytvořila záporný rozestup. Nenastavili jste příliš malou šířku některé extruze?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() vytvořila záporný průtok. Nenastavili jste příliš malou šířku některé extruze?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Nepodařilo se vypočítat šířku čáry %1%. Nelze získat hodnotu „%2%“."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Byly zadány neplatné rozestupy pro Flow::with_spacing(), zkontrolujte svou výšku vrstvy a šířku extruze"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Vybraný soubor 3mf byl uložen novější verzí %1% a není kompatibilní."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Vybraný soubor 3MF obsahuje objekt s malovanými podporami FDM z novější verze PrusaSliceru a není kompatibilní."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Vybraný soubor 3MF obsahuje objekt s malovaným švem z novější verze PrusaSliceru a není kompatibilní."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Vybraný soubor 3MF obsahuje objekt malovaný pro více materiálů z novější verze PrusaSliceru a není kompatibilní."
+
msgid "undefined error"
msgstr "nedefinovaná chyba"
@@ -13467,6 +14497,56 @@ msgstr "ověření selhalo"
msgid "write callback failed"
msgstr "zápis callbacku selhal"
+# AI Translated
+msgid "unknown error"
+msgstr "neznámá chyba"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Vícebarevný tisk v paralelních režimech IDEX/IQEX vyžaduje, aby měl každý filament vlastní vyhrazený fyzický extruder. Dva nebo více aktivních filamentů jsou podle mapy fyzických extruderů tiskárny (rozbočovač MMU/AFC) přiřazeny ke stejné fyzické hlavě, což podřízený portál nemůže následovat."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "Aktivní režim IDEX/IQEX nedefinuje primární nástroj, takže vícebarevný tisk nelze naplánovat. Otevřete v nastavení tiskárny editor režimů IDEX/IQEX a přiřaďte jednomu nástroji roli Primární (Primary)."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Vícebarevný tisk v tomto režimu není paralelní tisk — všechny aktivní nástroje jsou na jediném portálu, takže neexistuje druhý portál, na který by se kopírovalo nebo zrcadlilo. Pro vícebarevný tisk na jednom portálu přepněte desku do režimu Primární, nebo definujte režim IDEX/IQEX, který zahrnuje nástroje na druhém portálu."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Vícebarevný tisk v paralelních režimech IDEX/IQEX vyžaduje nástroj Span na portálu primárního nástroje — bez něj režim nedefinuje partnera pro vícebarevný tisk v rámci portálu. Buď omezte tisk na jediný filament, přepněte do režimu Primární, nebo otevřete v nastavení tiskárny editor režimů IDEX/IQEX a označte nástroj na portálu primárního nástroje jako Span."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "V tomto režimu Span se barvy tisknou pouze pomocí %1%, ale filament %2% není přiřazen k žádnému nástroji. Použijte filamenty přiřazené k %1%, nebo přepněte tuto desku do režimu Primární."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "V tomto režimu Span se barvy tisknou pouze pomocí %1%, ale filament %2% je přiřazen k T%3%. Použijte filamenty přiřazené k %1%, nebo přepněte tuto desku do režimu Primární."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Vybranou předvolbu nelze načíst: %1%\n"
+"\tDůvod: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Načtení souboru předvolby se nezdařilo: %1%\n"
+"\tDůvod: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% je příliš blízko vyhrazené oblasti, může dojít ke kolizím při tisku."
@@ -13480,30 +14560,44 @@ msgid "%1% is too tall, and collisions will be caused."
msgstr "%1% je příliš vysoký, může dojít ke kolizím."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "čistící věž"; align it once the term is settled.
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "Vzájemná poloha modelu a čistící věže nesplňuje požadavky funkce \"Žádné řídké vrstvy\". Upravte prosím jejich vzájemnou polohu, snižte výšku modelu nebo vypněte možnost \"Žádné řídké vrstvy\"."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " je příliš blízko oblasti vyloučení, při tisku mohou nastat kolize."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " je příliš blízko oblasti detekce shlukování, při tisku může dojít ke kolizím."
-
-msgid "Prime Tower"
-msgstr "Základní věž"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " je příliš blízko ostatním, může způsobit kolize.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " je příliš blízko oblasti vyloučení a může způsobit kolize.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " je příliš blízko oblasti detekce shlukování a dojde ke kolizi.\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% je příliš blízko oblasti detekce shlukování, při tisku může dojít ke kolizím."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " je částečně mimo tisknutelnou oblast a nelze jej vytisknout.\n"
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "základní věž"; align it once the term is settled.
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "Základní věž je příliš blízko ostatním, může dojít ke kolizím.\n"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "základní věž"; align it once the term is settled.
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "Základní věž je příliš blízko vyhrazené oblasti a dojde ke kolizi.\n"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "základní věž"; align it once the term is settled.
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "Základní věž je příliš blízko oblasti detekce shlukování a dojde ke kolizi.\n"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "základní věž"; align it once the term is settled.
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "Základní věž je příliš blízko vyhrazené oblasti, při tisku může dojít ke kolizím."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "základní věž"; align it once the term is settled.
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "Základní věž je příliš blízko oblasti detekce shlukování, při tisku může dojít ke kolizím."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "základní věž"; align it once the term is settled.
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "Základní věž je částečně mimo tisknutelnou oblast a nelze ji vytisknout.\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "Vybrané teploty trysky nejsou kompatibilní. Teplota trysky každého filamentu musí spadat do doporučeného rozsahu teplot ostatních filamentů. Jinak může dojít k ucpání trysky nebo poškození tiskárny."
@@ -13517,6 +14611,58 @@ msgstr "Pokud chcete přesto tisknout, můžete povolit možnost v Nastavení /
msgid "No extrusions under current settings."
msgstr "Při aktuálním nastavení nejsou žádné extruze."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Míchané filamenty nejsou v paralelních režimech IDEX/IQEX podporovány. Přepněte tuto desku do režimu Primární."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Režim IDEX/IQEX „%1%“ tiskne pomocí T%2%, ale žádný z filamentů této desky není na nakonfigurovaném nástroji. Přiřaďte filament zavedený v T%2%, nebo přepněte tuto desku do režimu Primární."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Režim IDEX/IQEX „%1%“ tiskne pomocí T%2%, ale filamenty této desky jsou na %3%. Přiřaďte filament zavedený v T%2%, nebo přepněte tuto desku do režimu Primární."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Raft není slučitelný s režimem pásové tiskárny."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Ochranný štít není slučitelný s režimem pásové tiskárny."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "Na pásové tiskárně není límec slučitelný s režimem spirálové vázy. Jedno z nich vypněte."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Pás je pro límec příliš strmý, proto se límec nevytvoří."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Límec se vytváří pouze při nakloněném pásu. Nastavte úhel naklonění pásu, nebo nastavení límce odeberte."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Pásové tiskárny podporují pouze vnější a vnitřní límec. Límce typu Automaticky, Myší ouško a Namáznuto se tisknou jako Pouze vnější límec se šířkou podle volby Šířka límce."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "Mezera mezi límcem a objektem odděluje náběžný límec od náběžné hrany objektu, kterou má ukotvit. Při použití délky náběžného límce nastavte mezeru na 0."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "Délka náběžného límce prodlužuje límec před každým objektem ve směru pásu a funkce Rozložit tento prostor nerezervuje. Ponechte mezi objekty volné místo."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "Límec „Pouze náběžná hrana“ platí pro pásové tiskárny. Na této tiskárně se tiskne jako běžný vnější límec."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Je použit míchaný filament s gradientem, ale 'Podvrstva míchané barvy' je vypnutá. Gradient nebude vytištěn."
@@ -13527,6 +14673,18 @@ msgstr "Plynulý režim časosběru není podporován, pokud je povoleno pořad
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "Detekce shlukování není podporována, pokud je povoleno pořadí tisku „podle objektu“."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "Při sekvenci tisku „Podle objektu“ se čisticí věž pásu nevytváří; při změnách filamentu nebude probíhat čištění."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "Čisticí věž pásu je zapnutá, ale projekt neobsahuje objekt čisticí věže; při změnách filamentu nebude probíhat čištění. Otevřete projekt v aplikaci, aby se věž vytvořila."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Projekt obsahuje více spravovaných čisticích věží pásu. Znovu načtěte desku, nebo čisticí věž pásu vypněte a znovu zapněte, aby se vytvořila znovu."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Povolení přesné výšky Z a zároveň čistící věže může způsobit chyby při slicování."
@@ -13543,10 +14701,6 @@ msgstr "Spirálový režim vázy nefunguje, pokud objekt obsahuje více než jed
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Ačkoliv objekt %1% sám zapadá do tiskového objemu, kvůli kompenzaci smrštění materiálu přesahuje maximální výšku tiskového objemu."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "Objekt %1% přesahuje maximální výšku tiskového objemu."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Ačkoliv objekt %1% sám zapadá do tiskového objemu, jeho poslední vrstva přesahuje maximální výšku tiskového objemu."
@@ -13554,10 +14708,15 @@ msgstr "Ačkoliv objekt %1% sám zapadá do tiskového objemu, jeho poslední vr
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Možná budete chtít zmenšit velikost modelu nebo změnit aktuální nastavení tisku a zkusit to znovu."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "Objekt %1% přesahuje maximální výšku tiskového objemu."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Proměnná výška vrstvy není podporována s organickými podporami."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
msgid "The wipe tower filament cannot be a mixed filament."
msgstr "Filament věže na očištění trysky nemůže být míchaný filament."
@@ -13615,8 +14774,9 @@ msgstr "Základní věž vyžaduje, aby podpora měla stejnou výšku vrstvy jak
msgid "For Organic supports, two walls are supported only with the Hollow/Default base pattern."
msgstr "U organických podpor jsou dvě stěny podporovány pouze se základním vzorem Dutý/Výchozí."
+# AI Translated
msgid "The Lightning base pattern is not supported by this support type; Rectilinear will be used instead."
-msgstr "Základní vzor Lightning není tímto typem podpor podporován; místo něj bude použit vzor Přímočarý."
+msgstr "Základní vzor Blesk není tímto typem podpor podporován; místo něj bude použit vzor Přímočarý."
msgid "Organic support tree tip diameter must not be smaller than support material extrusion width."
msgstr "Průměr špičky organického podpůrného stromu nesmí být menší než šířka extruze podpůrného materiálu."
@@ -13712,6 +14872,10 @@ msgstr "Model Adaptive Pressure Advance pro jeden nebo více extruderů může o
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "Smrštění filamentu nebude použito, protože hodnoty smrštění použitých filamentů se neshodují."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "Tisk je prázdný. Model nelze s aktuálním nastavením tisku vytisknout."
+
msgid "Generating skirt & brim"
msgstr "Generování sukně a lemu"
@@ -13732,6 +14896,17 @@ msgstr "Exportuji G-code"
msgid "Generating G-code"
msgstr "Generování G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Nepodařilo se zpracovat soubor G-code %1% z předchozího souboru 3MF."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "Čisticí věž pásu nepojme celý objem čištění: celkem %1% mm³ nebylo možné vyčistit (nejhorší vrstva: %2% mm³ ve výšce %3%). Na výtisku se může projevit mísení barev. Zvětšete šířku čisticí věže pásu, nebo snižte objemy čištění."
+
msgid "Processing of the filename_format template failed."
msgstr "Nepodařilo se zpracovat šablonu filename_format."
@@ -14212,13 +15387,13 @@ msgid ""
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
"Šířka linie můstku. Pokud je vyjádřena v %, bude vypočítána z průměru trysky.\n"
"Doporučuje se používat s vyšší hustotou můstku nebo vyšším poměrem průtoku můstku.\n"
"\n"
"Maximální hodnota je 100 % nebo průměr trysky.\n"
-"Pokud je nastavena na 0, bude šířka linie odpovídat šířce vnitřní plné výplně."
+"Pokud je nastavena na 0, bude šířka linie odpovídat šířce vnitřní plné výplně, nebo průměru trysky u silných můstků."
msgid "Internal bridge flow ratio"
msgstr "Poměr průtoku pro vnitřní most"
@@ -14503,7 +15678,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Zapněte tuto volbu, chcete-li zpomalit tisk v místech, kde se mohly obvody zkroutit nahoru.\n"
"Například při tisku převisů na ostrých rozích, jako je příď trupu modelu Benchy, se použije dodatečné zpomalení, které omezí kroucení narůstající přes více vrstev.\n"
@@ -14515,22 +15690,23 @@ msgstr ""
"Doporučení při zapnutí této volby:\n"
"1. Snižte čas vyhlazení Pressure Advance na 0,015–0,02, aby extruder rychle reagoval na změny rychlosti.\n"
"2. Zvyšte minimální rychlosti tisku, abyste omezili míru zpomalení a rozdíl mezi rychlými a pomalými úseky.\n"
-"3. Pokud se artefakty stále objevují, zapněte vyhlazování rychlosti extruze (ERS), které přechody průtoku dále vyhladí.\n"
+"3. Pokud se artefakty stále objevují, zapněte Vyhlazování rychlosti extruze (ERS), které přechody průtoku dále vyhladí.\n"
"\n"
"Poznámka: Je-li tato volba zapnutá, jsou obvody převisů považovány za převisy, takže se rychlost pro převisy použije i tehdy, když je převislý obvod součástí můstku.\n"
-"Například pokud jsou obvody ze 100 % převislé a zespodu je nic nepodpírá, použije se rychlost pro 100% převis."
+"Například pokud jsou obvody ze 100 % převislé a zespodu je nic nepodpírá, použije se rychlost pro 75% převis, omezená rychlostí můstků."
msgid "mm/s or %"
msgstr "mm/s nebo %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Rychlost vnějších viditelných mostních extruzí.\n"
"\n"
-"Pokud je navíc vypnutá možnost Zpomalit pro zkroucené obvody nebo je povolen Klasický režim převisů, bude to rychlost tisku stěn převisů, které jsou podepřeny méně než 13 %, ať už jsou součástí mostu nebo převisu."
+"Pokud je navíc vypnutá možnost Zpomalit pro zkroucené obvody, bude to rychlost tisku stěn převisů, které jsou podepřeny méně než 13 %, ať už jsou součástí mostu nebo převisu."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Rychlost vnitřních mostů. Pokud je hodnota zadána v procentech, vypočítá se podle bridge_speed. Výchozí hodnota je 150 %."
@@ -14538,12 +15714,56 @@ msgstr "Rychlost vnitřních mostů. Pokud je hodnota zadána v procentech, vypo
msgid "This is the distance from the model to the outermost brim line."
msgstr "Vzdálenost od modelu k nejvzdálenější brim linii."
+# AI Translated
+msgid "Leading brim length"
+msgstr "Délka náběžného límce"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Pouze pro pásové tiskárny. Prodlouží límec PŘED objekt ve směru pásu, a to na každé hraně kontaktní plochy obrácené z kopce — u prvního kontaktu objektu s pásem i u každého ostrůvku, který na pás dosedne později. Tento pruh se položí na pás dřív, než k němu objekt dojede, takže náběžná hrana má za co se přichytit.\n"
+"\n"
+"Měří se na povrchu pásu a přičítá se k hodnotě Šířka límce: límec sahá před objekt do vzdálenosti Mezera mezi límcem a objektem + Délka náběžného límce + Šířka límce. Nastavte hodnotu Mezera mezi límcem a objektem na 0, jinak se pruh nedotkne objektu, který má ukotvit.\n"
+"\n"
+"Na nakloněném pásu položí každá vrstva jeden pruh límce, takže tloušťku výsledné plochy límce určuje průtok, nikoli výška vrstvy. K jejímu doladění použijte Poměr průtoku límce.\n"
+"\n"
+"Nastavte na 0 pro vypnutí."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Dodatečná šířka límce"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Pouze pro pásové tiskárny. Rozšíří límec DO STRAN, napříč pásem, aniž by jej dále prodloužil před objekt nebo za něj. Použijte, pokud díl potřebuje po své délce větší přilnavost, než poskytne samotná Šířka límce.\n"
+"\n"
+"Měří se na povrchu pásu a přičítá se k hodnotě Šířka límce: límec sahá na obě strany objektu do vzdálenosti Mezera mezi límcem a objektem + Šířka límce + Dodatečná šířka límce. Chcete-li límec místo toho prodloužit před objekt, použijte Délka náběžného límce.\n"
+"\n"
+"Nastavte na 0 pro vypnutí."
+
msgid "Brim type"
msgstr "Typ límce"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Tato volba řídí generování obruby na vnější a/nebo vnitřní straně modelů. Automaticky znamená, že šířka obruby je analyzována a vypočítána automaticky."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Pouze náběžná hrana"
+
msgid "Brim-object gap"
msgstr "Mezera mezi límcem a objektem"
@@ -14839,6 +16059,9 @@ msgstr ""
"2. Omezené filtrování – vytváří vnitřní mosty na silně zkosených plochách a zároveň omezuje zbytečné mosty. Funguje dobře u většiny složitých modelů.\n"
"3. Bez filtrování – vytváří vnitřní mosty na každém potenciálním vnitřním převisu. Tato možnost je užitečná pro modely se silně zkosenými horními povrchy, ale ve většině případů vytváří příliš mnoho zbytečných mostů."
+msgid "Filter"
+msgstr "Filtr"
+
msgid "Limited filtering"
msgstr "Omezená filtrace"
@@ -14854,7 +16077,8 @@ msgstr "Maximální délka mostů, které nepotřebují podporu. Nastavte na 0,
msgid "End G-code"
msgstr "Koncový G-code"
-msgid "Add end G-Code when finishing the entire print."
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
msgstr "Koncový G-code po dokončení celého tisku."
msgid "Between Object G-code"
@@ -15043,8 +16267,9 @@ msgstr "Rychlost vnější stěny, která je nejvíce vnější a viditelná. Ob
msgid "Small perimeters"
msgstr "Malé obvody"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Toto samostatné nastavení ovlivní rychlost obvodů s poloměrem <= small_perimeter_threshold (obvykle otvory). Pokud je zadáno v procentech (například: 80 %), bude vypočítáno na základě výše uvedeného nastavení rychlosti vnější stěny. Pro automatické nastavení zadejte nulu."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Toto samostatné nastavení ovlivní rychlost obvodů s poloměrem <= small_perimeter_threshold (obvykle otvory). Pokud je zadáno v procentech (například: 80 %), bude vypočítáno na základě výše uvedeného nastavení rychlosti vnější stěny."
msgid "Small perimeters threshold"
msgstr "Práh malých obvodů"
@@ -15057,8 +16282,8 @@ msgid "Small support perimeters"
msgstr "Malé obvody podpor"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Stejné jako „Malé obvody“, ale pro podpory. Toto samostatné nastavení ovlivňuje rychlost podpor v oblastech <= `small_support_perimeter_threshold`. Pokud je vyjádřeno v procentech (například 80 %), bude vypočítáno z výše uvedeného nastavení rychlosti podpor nebo rozhraní podpor. Nastavte nulu pro automatický režim."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Stejné jako „Malé obvody“, ale pro podpory. Toto samostatné nastavení ovlivňuje rychlost podpor v oblastech <= `small_support_perimeter_threshold`. Pokud je vyjádřeno v procentech (například 80 %), bude vypočítáno z výše uvedeného nastavení rychlosti podpor nebo rozhraní podpor."
# AI Translated
msgid "Small support perimeters threshold"
@@ -15071,22 +16296,23 @@ msgstr "Nastavuje práh pro délku malého obvodu podpor. Výchozí práh je 0 m
msgid "Walls printing order"
msgstr "Pořadí tisku stěn"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
"Pořadí tisku vnitřních a vnějších stěn.\n"
"\n"
-"Použijte Vnitřní/Vnější pro nejlepší převisy. Převislé stěny se totiž mohou během tisku opřít o sousední obvod. Tato možnost však mírně snižuje kvalitu povrchu, protože vnější obvod je deformován přitlačením k vnitřnímu obvodu.\n"
+"Použijte Vnitřní/vnější pro nejlepší převisy. Převislé stěny se totiž mohou během tisku opřít o sousední obvod. Tato možnost však mírně snižuje kvalitu povrchu, protože vnější obvod je deformován přitlačením k vnitřnímu obvodu.\n"
"\n"
-"Použijte Vnitřní/Vnější/Vnitřní pro nejlepší kvalitu vnějšího povrchu a rozměrovou přesnost, protože vnější stěna je tisknuta bez ovlivnění vnitřním obvodem. Výkon převisů se však zhorší, protože vnější stěna nemá vnitřní obvod, o který by se při tisku opřela. Tato možnost vyžaduje alespoň 3 stěny, protože nejprve tiskne vnitřní stěny od 3. obvodu dál, poté vnější obvod a nakonec první vnitřní obvod. Ve většině případů je tato možnost doporučována místo Vnější/Vnitřní.\n"
+"Použijte Vnitřní/vnější/vnitřní pro nejlepší kvalitu vnějšího povrchu a rozměrovou přesnost, protože vnější stěna je tisknuta bez ovlivnění vnitřním obvodem. Výkon převisů se však zhorší, protože vnější stěna nemá vnitřní obvod, o který by se při tisku opřela. Tato možnost vyžaduje alespoň 3 stěny, protože nejprve tiskne vnitřní stěny od 3. obvodu dál, poté vnější obvod a nakonec první vnitřní obvod. Ve většině případů je tato možnost doporučována místo Vnější/Vnitřní.\n"
"\n"
-"Použijte Vnější/Vnitřní pro stejnou kvalitu vnější stěny a rozměrovou přesnost jako u možnosti Vnitřní/Vnější/Vnitřní. Z-švy však budou méně konzistentní, protože první extruze nové vrstvy začíná na viditelném povrchu."
+"Použijte Vnější/Vnitřní pro stejnou kvalitu vnější stěny a rozměrovou přesnost jako u možnosti Vnitřní/vnější/vnitřní. Z-švy však budou méně konzistentní, protože první extruze nové vrstvy začíná na viditelném povrchu."
msgid "Inner/Outer"
msgstr "Vnitřní/vnější"
@@ -15723,9 +16949,6 @@ msgstr "Cena filamentu. Pouze pro statistické účely."
msgid "money/kg"
msgstr "peníze/kg"
-msgid "Vendor"
-msgstr "Dodavatel"
-
msgid "Vendor of filament. For show only."
msgstr "Dodavatel filamentu. Pouze pro zobrazení."
@@ -15799,6 +17022,93 @@ msgstr "Víceřádková výplň"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Použití více řádků pro vzor výplně, pokud to daný vzor podporuje."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Adaptivní hustota (experimentální)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Odstupňuje výplň Gyroid a TPMS uvnitř objektu: její buňky se zvětšují od povrchu objektu směrem k jeho středu. Na povrchu se použije hustota řídké výplně a ve středu vnitřní hustota.\n"
+"Deformace podle vzdálenosti, Plynulé prolnutí a Stupňovité pláště sledují vzdálenost k nejbližšímu povrchu, včetně horního a spodního, přičemž vnitřní hustota platí v bodě od něj nejvzdálenějším:\n"
+" - Deformace podle vzdálenosti: jeden souvislý vzor, natažený a zkosený tam, kde se vzdálenost v různých směrech mění, jako u plochých a dlouhých dílů.\n"
+" - Plynulé prolnutí: vzory sousedních hustot vzájemně prolnuté, s malými smyčkami v místech, kde se setkávají.\n"
+" - Stupňovité pláště: pláště běžného vzoru s hustotami lišícími se přibližně 1,5krát, jejichž čáry jsou spojeny podél hranic plášťů.\n"
+" - Laloky: sleduje 3D tvar objektu včetně jeho horní a spodní části. Každý lalok, tedy část spojená se zbytkem užším hrdlem, je odstupňován směrem k vlastnímu středu.\n"
+" - Kolmo k Z, Y nebo X: sleduje řezy objektu kolmé k dané ose, takže se hustota podél ní nemění."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Deformace podle vzdálenosti"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Plynulé prolnutí"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Stupňovité pláště"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Laloky"
+
+# AI Translated
+# Needs human review: Adaptive density option (also Normal Y / Normal X): sections normal to the axis. Check that 'Kolmo k Z/Y/X' reads well as a dropdown item.
+msgid "Normal Z"
+msgstr "Kolmo k Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Kolmo k Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Kolmo k X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Vnitřní hustota"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Hustota adaptivní výplně ve středu objektu."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Adaptivní gradient"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Jak se hustota mění od povrchu ke středu objektu.\n"
+"Lineární: hustota se mění konstantní rychlostí.\n"
+"Kvadratický: hustota zůstává u povrchu blízko hustotě řídké výplně a směrem ke středu se mění rychleji.\n"
+"Exponenciální: hustota se rychle mění těsně pod povrchem a směrem ke středu se ustálí."
+
+# AI Translated
+msgid "Linear"
+msgstr "Lineární"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Kvadratický"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Exponenciální"
+
# AI Translated
msgid "Z-buckling bias optimization (experimental)"
msgstr "Optimalizace odolnosti proti vzpěru v ose Z (experimentální)"
@@ -15844,8 +17154,9 @@ msgstr "Čtvrtinový kubický"
msgid "Support Cubic"
msgstr "Podpůrná kostka"
+# AI Translated
msgid "Lightning"
-msgstr "Osvětlení"
+msgstr "Blesk"
msgid "Honeycomb"
msgstr "Včelí plástev"
@@ -15951,14 +17262,16 @@ msgstr "Výška první vrstvy"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Výška počáteční vrstvy. Mírně vyšší počáteční výška vrstvy může zlepšit přilnavost k tiskové podložce."
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Rychlost první vrstvy kromě plné výplně."
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Rychlost stěn a límce první vrstvy."
msgid "First layer infill"
msgstr "Výplň první vrstvy"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Rychlost plné výplně první vrstvy."
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Rychlost první vrstvy kromě stěn a límce, například výplně, vyplnění mezery a podpory."
msgid "First layer travel speed"
msgstr "Cestovní rychlost první vrstvy"
@@ -16429,6 +17742,10 @@ msgstr "Typ G-code"
msgid "What kind of G-code the printer is compatible with."
msgstr "Jaký typ G-code je s tiskárnou kompatibilní."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (starší)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16599,11 +17916,11 @@ msgstr "Úhel šikmých čar výplně. 60° vytvoří čistý šestiúhelníkov
# AI Translated
msgid "Lightning overhang angle"
-msgstr "Úhel převisu Lightning"
+msgstr "Úhel převisu výplně Blesk"
# AI Translated
msgid "Maximum overhang angle for Lightning infill support propagation."
-msgstr "Maximální úhel převisu pro šíření opor u výplně Lightning."
+msgstr "Maximální úhel převisu pro šíření opor u výplně Blesk."
# AI Translated
msgid "Prune angle"
@@ -16614,7 +17931,7 @@ msgid ""
"Controls how aggressively short or unsupported Lightning branches are pruned.\n"
"This angle is converted internally to a per-layer distance."
msgstr ""
-"Určuje, jak agresivně se prořezávají krátké nebo nepodepřené větve výplně Lightning.\n"
+"Určuje, jak agresivně se prořezávají krátké nebo nepodepřené větve výplně Blesk.\n"
"Tento úhel se interně převádí na vzdálenost na vrstvu."
# AI Translated
@@ -16623,7 +17940,7 @@ msgstr "Úhel narovnávání"
# AI Translated
msgid "Maximum straightening angle used to simplify Lightning branches."
-msgstr "Maximální úhel narovnávání použitý pro zjednodušení větví výplně Lightning."
+msgstr "Maximální úhel narovnávání použitý pro zjednodušení větví výplně Blesk."
msgid "Sparse infill anchor length"
msgstr "Délka kotvy řídké výplně"
@@ -16668,16 +17985,18 @@ msgstr "Šířka čáry vnitřní řídké výplně. Pokud je zadána v %, bude
msgid "Infill/wall overlap"
msgstr "Překrytí výplně/stěny"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Oblast výplně je mírně zvětšena, aby se překrývala se stěnou pro lepší spojení. Procentuální hodnota je vztažena k šířce čáry řídké výplně. Nastavte tuto hodnotu přibližně na 10–15 % pro minimalizaci možné přeextruze a hromadění materiálu, které může vést k hrubému hornímu povrchu."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Oblast výplně je mírně zvětšena, aby se překrývala se stěnou pro lepší spojení. Procentuální hodnota je vztažena k šířce čáry vnitřní stěny. Nastavte tuto hodnotu přibližně na 10–15 % pro minimalizaci možné přeextruze a hromadění materiálu, které může vést k hrubému hornímu povrchu."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Překrytí plné výplně/stěny nahoře/dole"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "Oblast horní výplně je mírně zvětšena tak, aby překrývala stěnu, pro lepší propojení a minimalizaci vzniku otvorů ve styku horní výplně se stěnami. Hodnota 25–30 % je vhodným výchozím bodem a minimalizuje výskyt otvorů. Procentuální hodnota je vztažena k šířce čáry řídké výplně."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "Oblast horní výplně je mírně zvětšena tak, aby překrývala stěnu, pro lepší propojení a minimalizaci vzniku otvorů ve styku horní výplně se stěnami. Hodnota 25–30 % je vhodným výchozím bodem a minimalizuje výskyt otvorů. Procentuální hodnota je vztažena k šířce čáry vnitřní stěny."
msgid "This is the speed for internal sparse infill."
msgstr "Rychlost vnitřní řídké výplně."
@@ -16703,8 +18022,9 @@ msgstr "Maximální šířka segmentované oblasti. Nula tuto funkci vypne."
msgid "Interlocking depth of a segmented region"
msgstr "Hloubka prokládání segmentované oblasti"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Hloubka prokládání segmentované oblasti. Bude ignorováno, pokud je \"mmu_segmented_region_max_width\" nula nebo pokud je \"mmu_segmented_region_interlocking_depth\" větší než \"mmu_segmented_region_max_width\". Nula tuto funkci vypne."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Hloubka prokládání segmentované oblasti. U každé druhé vrstvy je segmentovaná oblast omezena touto hloubkou. Bude ignorováno, pokud je povoleno \"interlocking_beam\". Nula tuto funkci vypne."
msgid "Use beam interlocking"
msgstr "Použít vzájemné zajištění nosníků"
@@ -16805,13 +18125,14 @@ msgstr "Povolí Z-konturování (také známé jako anti-aliasing vrstev Z)."
msgid "Minimize wall height angle"
msgstr "Minimalizovat úhel výšky stěny"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Sníží výšku obvodů horního povrchu tak, aby odpovídala výšce hrany modelu.\n"
-"Ovlivňuje obvody se sklonem menším než tento úhel (ve stupních).\n"
+"Ovlivňuje obvody se sklonem větším než tento úhel (ve stupních).\n"
"Doporučená hodnota je 35. Nastavte 0 pro vypnutí."
msgid "Don't alternate fill direction"
@@ -16888,17 +18209,21 @@ msgstr "Maximální rychlost Z"
msgid "Maximum speed E"
msgstr "Maximální rychlost E"
-msgid "Maximum X speed"
+# AI Translated
+msgid "Maximum speed of the X axis"
msgstr "Maximální rychlost osy X"
-msgid "Maximum Y speed"
+# AI Translated
+msgid "Maximum speed of the Y axis"
msgstr "Maximální rychlost osy Y"
-msgid "Maximum Z speed"
+# AI Translated
+msgid "Maximum speed of the Z axis"
msgstr "Maximální rychlost osy Z"
-msgid "Maximum E speed"
-msgstr "Maximální rychlost E"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Maximální rychlost osy E"
msgid "Maximum acceleration X"
msgstr "Maximální zrychlení osy X"
@@ -17391,6 +18716,7 @@ msgstr "Počet stěn každé vrstvy."
msgid "Alternate extra wall"
msgstr "Střídavá přídavná stěna"
+# AI Translated
msgid ""
"This setting adds an extra wall to every other layer. This way the infill gets wedged vertically between the walls, resulting in stronger prints.\n"
"\n"
@@ -17402,7 +18728,7 @@ msgstr ""
"\n"
"Při zapnutí této volby je třeba vypnout možnost zajištění tloušťky svislé stěny.\n"
"\n"
-"Použití výplně lightning současně s touto volbou se nedoporučuje, protože je k dispozici omezené množství výplně pro ukotvení dalších obvodů."
+"Použití výplně Blesk současně s touto volbou se nedoporučuje, protože je k dispozici omezené množství výplně pro ukotvení dalších obvodů."
msgid "If you want to process the output G-code through custom scripts, just list their absolute paths here. Separate multiple scripts with a semicolon. Scripts will be passed the absolute path to the G-code file as the first argument, and they can access the Orca Slicer config settings by reading environment variables."
msgstr "Pokud chcete výstupní G-code soubor zpracovat pomocí vlastních skriptů, uveďte zde jejich absolutní cesty. Více skriptů oddělte středníkem. Skripty obdrží jako první argument absolutní cestu ke G-code souboru a ke konfiguraci Orca Sliceru mají přístup čtením prostředí."
@@ -17422,7 +18748,7 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Funkce pluginů, na které tato předvolba odkazuje, uložené jako name;uuid;capability."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr "Python pluginy volané v každém kroku slicovacího řetězce, které čtou a upravují mezivýsledky slicování, včetně závěrečného kroku postprocessingu G-code. Výzkumné/experimentální."
msgid "Printer type"
@@ -17792,8 +19118,9 @@ msgstr "Spoj límce pro vnitřní stěny"
msgid "Use scarf joint for inner walls as well."
msgstr "Použít šikmý spoj i pro vnitřní stěny."
-msgid "Role base wipe speed"
-msgstr "Rychlost vytírání podle role"
+# AI Translated
+msgid "Role based wipe speed"
+msgstr "Rychlost očištění podle role"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
msgstr "Rychlost setření je určena rychlostí aktuálního extruzního režimu. Například pokud je akce setření provedena ihned po extruzi vnější stěně, použije se pro setření stejná rychlost, jako byla použita pro extruzi vnější stěny."
@@ -17882,16 +19209,15 @@ msgstr "Omezuje počet smyček sukně/ochranného štítu na jednu stěnu po prv
msgid "Draft shield"
msgstr "Ochranný štít"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"Ochranný štít pomáhá chránit tisk z ABS nebo ASA před deformacemi a odtržením od podložky způsobenými průvanem. Obvykle je potřeba jen u tiskáren s otevřeným rámem, tedy bez krytu.\n"
"\n"
-"Povoleno = lem je vysoký jako nejvyšší tištěný objekt. Jinak se použije „Výška sukně“.\n"
-"Poznámka: Při aktivním ochranném štítu bude sukně vytištěna ve vzdálenosti sukně od objektu. Proto pokud jsou aktivní ráfky, může s nimi dojít k překřížení. Aby se tomu zabránilo, zvyšte hodnotu vzdálenosti sukně.\n"
+"Povoleno = okraj je vysoký jako nejvyšší tištěný objekt. Jinak se použije „Výška okraje“."
msgid "Enabled"
msgstr "Povoleno"
@@ -18014,6 +19340,7 @@ msgid "Farthest point timelapse"
msgstr "Časosběr v nejvzdálenějším bodě"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
msgid "When enabled, the timelapse snapshot is taken at the farthest point from camera instead of traveling to the wipe tower or excess chute. Only effective in traditional timelapse mode on non-I3 printers."
msgstr "Je-li zapnuto, pořizuje se časosběrný snímek v bodě nejvzdálenějším od kamery, místo přejezdu k věži na očištění trysky nebo k výhozovému žlabu. Účinné pouze v tradičním režimu časosběru na tiskárnách jiné konstrukce než I3."
@@ -18059,6 +19386,130 @@ msgstr "Jedna tryska pro více materiálů"
msgid "Use single nozzle to print multi filament."
msgstr "Použít jednu trysku pro tisk více filamentů."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "Tiskárna IDEX/IQEX"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Povolí paralelní tisk na tiskárnách s více nezávislými vozíky (IDEX, IQEX a podobné)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Zóny řízené firmwarem"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Je-li povoleno, slicer generuje G-code s obsahem primární zóny vystředěným na počátek podložky (0,0). Za umístění kopií a zrcadlených kopií na fyzickou pozici každé zóny odpovídá firmware tiskárny. Povolte pouze u tiskáren, jejichž firmware v režimu Kopie/Zrcadlo (Copy/Mirror) používá vlastní posuny zón (např. režim duplikace IDEX v RepRapFirmware). V režimu Primární nemá žádný účinek."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Počet portálů"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Počet nezávislých portálů v ose Y. 1 pro IDEX/IQEX s jednou kolejnicí. 2 pro systémy se dvěma portály (rozdělují podložku na řady)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Nástroje na portál"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Počet nezávislých tiskových hlav na portálu podél osy X. 2 pro uspořádání typu IDEX."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Pozice nástroje 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Fyzická pozice na podložce, kde se nachází nástroj T0 (index 0). Určuje, jak se indexy nástrojů mapují na zóny podložky. U sestav s jedním portálem (IDEX) záleží pouze na levé/pravé straně; u sestav se dvěma portály (IQEX) lze zvolit všechny čtyři rohy (vpředu = nižší Y / blíže k obsluze, vzadu = vyšší Y / zadní část stroje)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Odstup trysky X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Vzdálenost (mm) od trysky k okraji vozíku na straně kolize v ose X. Slouží k výpočtu šířky pásu vyloučeného kvůli kolizím na každé hranici v ose X."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Odstup trysky Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Vzdálenost (mm) od trysky k okraji vozíku na straně kolize v ose Y. Slouží k výpočtu šířky pásu vyloučeného kvůli kolizím na každé hranici v ose Y."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Bezpečnostní okraj"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Neblokující orientační bezpečnostní pás (mm) vykreslený uvnitř primární zóny na každé hranici vozíku. Díly umístěné v tomto pásu se přesto slicují; jde o vizuální připomínku, abyste u okraje zóny ponechali větší odstup."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Motiv vizualizace"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Barevný motiv pro vizualizaci zón podložky IDEX/IQEX. V případě potřeby zvolte motiv vhodný pro barvoslepé."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranopie / protanopie (červená-zelená)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopie (modrá-žlutá)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Vysoký kontrast"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "Režim tisku IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Název aktivního paralelního režimu tisku IDEX/IQEX, nebo \"primary\" pro tisk jedním vozíkem. Vyžaduje povolenou volbu Tiskárna IDEX/IQEX v předvolbě tiskárny (Tiskárna → Multimateriál → Konfigurace IDEX/IQEX)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "Mapa filamentů hlav IDEX/IQEX"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Přepsání pro jednotlivé desky, které mapuje fyzické hlavy na sloty filamentů (číslováno od 1). Prázdná hodnota znamená, že každá hlava používá první filament, na který ji směruje mapa fyzických extruderů tiskárny."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "Názvy režimů IDEX/IQEX"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Zobrazované názvy jednotlivých uživatelsky definovaných paralelních režimů tisku IDEX/IQEX."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Aktivní nástroje režimů IDEX/IQEX"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Přiřazení rolí nástrojů pro každý režim. Formát: \"idx:P,idx:C,idx:M\", kde P=Primární (Primary), C=Kopie (Copy), M=Zrcadlo (Mirror) (např. \"0:P,1:C,2:M,3:M\"). Spravuje se editorem režimů IDEX/IQEX v předvolbě tiskárny."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-code režimů IDEX/IQEX"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code nebo volání makra, které se pro každý režim vloží na začátek tisku."
+
msgid "Manual Filament Change"
msgstr "Manuální výměna filamentu"
@@ -18087,18 +19538,22 @@ msgid "Enable filament ramming"
msgstr "Povolit protlačování filamentu"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
msgid "Tool change on wipe tower"
msgstr "Výměna nástroje na věži na očištění trysky"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
msgstr "Vynutí přejezd tiskové hlavy k věži na očištění trysky před vydáním příkazu k výměně nástroje (Tx). Týká se pouze tiskáren s více extrudery (více tiskovými hlavami), které používají věž na očištění trysky typu 2. Ve výchozím nastavení Orca na strojích s více tiskovými hlavami tento přejezd vynechává, protože výměnu hlavy řeší firmware, což může vést k vydání příkazu Tx nad tištěným dílem. Zapněte tuto volbu, chcete-li, aby byla výměna nástroje vždy vydána nad věží na očištění trysky."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
msgid "Wait for temperature on wipe tower"
msgstr "Čekat na teplotu na věži na očištění trysky"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
msgstr "Vyzvedne nový nástroj, aniž by čekal na dosažení tiskové teploty, přejede na věž na očištění trysky a počká na teplotu tam, těsně před čištěním. Materiál vytékající při ohřevu skončí na věži místo na modelu a přejezd se překrývá s ohřevem. Relevantní pouze pro tiskárny s více extrudery (více tiskovými hlavami) používající věž na očištění trysky typu 2. Firmware ani makro pro změnu nástroje nesmí na teplotu čekat samo. Pokud je vypnuto, čekání na teplotu se vloží hned po příkazu ke změně nástroje."
@@ -18106,6 +19561,7 @@ msgid "No sparse layers (beta)"
msgstr "Žádné řídké vrstvy (beta)"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "čistící věž"; align it once the term is settled.
msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower, so the tower ends up below the model and the toolhead has to reach down to it. Layouts where that would collide with an already printed object are rejected. Has no effect with smooth timelapse or clumping detection, which need a tower on every layer."
msgstr "Pokud je povoleno, čistící věž se nebude tisknout na vrstvách bez změny nástroje. Na vrstvách se změnou nástroje extruder sjede dolů, aby čistící věž vytiskl, takže věž skončí pod modelem a tisková hlava k ní musí dosáhnout dolů. Rozvržení, kde by to znamenalo kolizi s již vytištěným objektem, jsou odmítnuta. Nemá vliv při plynulém časosběru ani při detekci nánosů na trysce, které vyžadují věž na každé vrstvě."
@@ -18114,6 +19570,7 @@ msgid "Combine sparse layers"
msgstr "Kombinovat řídké vrstvy"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "základní věž"; align it once the term is settled.
msgid ""
"If enabled, consecutive layers on which the prime tower has no filament change are printed as a single thicker tower layer instead of one thin layer each, the same way infill combination merges sparse infill. The merged layer is printed at the top of the run, at the height of everything it covers.\n"
"\n"
@@ -18352,6 +19809,7 @@ msgstr "Rychlost kontaktní plochy podpěr."
msgid "Base pattern"
msgstr "Základní vzor"
+# AI Translated
msgid ""
"Line pattern of support.\n"
"\n"
@@ -18363,7 +19821,7 @@ msgstr ""
"\n"
"Výchozí možností pro stromové podpěry je Dutý, což znamená bez základního vzoru. Pro ostatní typy podpěr je výchozí možností vzor Rektilineární.\n"
"\n"
-"POZNÁMKA: U organických podpěr jsou obě stěny podporovány pouze pomocí dutého/výchozího základního vzoru. Základní vzor Lightning podporují pouze stromové podpěry Slim/Strong/Hybrid. U ostatních typů podpěr bude místo Lightning použit Rektilineární vzor."
+"POZNÁMKA: U organických podpěr jsou obě stěny podporovány pouze pomocí dutého/výchozího základního vzoru. Základní vzor Blesk podporují pouze stromové podpěry Slim/Strong/Hybrid. U ostatních typů podpěr bude místo vzoru Blesk použit Rektilineární vzor."
msgid "Rectilinear grid"
msgstr "Obdélníková mřížka"
@@ -18444,6 +19902,170 @@ msgstr "Prahové překrytí"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Pokud je prahový úhel nula, podpora bude generována pro převisy s překrytím pod tímto prahem. Čím menší je tato hodnota, tím strmější převis lze tisknout bez podpory."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Naklonění podložky X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Úhel naklonění podložky podél osy X. Kladná hodnota nakloní podložku tak, že strana +X je výše, čímž se gravitace posune směrem k -X a zvětší se převisy na straně +X. Záporná hodnota zvedne stranu -X. Nastavte na 0 pro žádné naklonění v ose X. V režimu pásové tiskárny se tato hodnota automaticky synchronizuje s úhlem pásu."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Naklonění podložky Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Úhel naklonění podložky podél osy Y. Kladná hodnota nakloní podložku tak, že strana +Y je výše, čímž se gravitace posune směrem k -Y a zvětší se převisy na straně +Y. Záporná hodnota zvedne stranu -Y. Nastavte na 0 pro žádné naklonění v ose Y."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Povolit pásový tisk"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Zapne režim pásové tiskárny. Pásové tiskárny používají jako tiskovou plochu dopravníkový pás nakloněný pod úhlem (obvykle 45 stupňů). Slicer otočí rovinu slicování a transformuje souřadnice G-code pro nakloněnou tiskovou plochu."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Nekonečná osa Y"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Zapne nekonečnou osu Y pro pásové tiskárny. Je-li povoleno, limit tiskového objemu v ose Y se fakticky odstraní, takže lze ve směru pásu tisknout objekty libovolné délky."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Osa naklonění pásu"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Osa, kolem které se síť před slicováním otočí. Jde o naklonění pásové tiskárny: izometrická rotace (bez zkreslení), která řídí také vykreslování podložky a naklonění gravitace pro podpory a kterou zpětná transformace G-code invertuje před zkosením/změnou měřítka v souřadnicovém systému stroje a přemapováním os. Obvyklé je naklonění portálu kolem osy X (pás se pohybuje podél Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Úhel naklonění pásu"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Úhel naklonění povrchu pásu ve stupních. Většina pásových tiskáren používá 45°. Kladné hodnoty otáčejí proti směru hodinových ručiček při pohledu dolů po kladné ose naklonění; velikost hodnoty zároveň udává fyzické naklonění pásu použité pro vykreslení podložky a gravitaci podpor."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Oddělit naklonění souřadnicového systému stroje"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Expertní přepsání: nastaví úhel naklonění souřadnicového systému stroje (zkosení/měřítko G-code) nezávisle na úhlu rotace před slicováním. Je-li vypnuto, transformace souřadnicového systému stroje se odvozuje z úhlu naklonění pásu, takže jediný úhel řídí obě fáze. Povolte pouze pro kompenzaci stroje, jehož fyzické naklonění portálu se liší od rotace při slicování."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Úhel naklonění souřadnicového systému stroje"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Úhel naklonění (ve stupních), ze kterého se odvozuje zkosení (cot) a měřítko (1/|sin|) souřadnicového systému stroje aplikované na G-code. Používá se pouze při zapnuté volbě „Oddělit naklonění souřadnicového systému stroje“; jinak se použije úhel naklonění pásu."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+# Needs human review: G-code remap dropdown option (also Rev Y / Rev Z): the reversed axis, max minus position. Check the wording fits the dropdown.
+msgid "Rev X"
+msgstr "Obrácená X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Obrácená Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Obrácená Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "Přemapování G-code X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Která osa slicování se ve výstupním G-code mapuje na osu X stroje. Uplatní se AŽ PO slicování, během generování G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "Přemapování G-code Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Která osa slicování se ve výstupním G-code mapuje na osu Y stroje. Uplatní se AŽ PO slicování, během generování G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "Přemapování G-code Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Která osa slicování se ve výstupním G-code mapuje na osu Z stroje. Uplatní se AŽ PO slicování, během generování G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Posun podlahy podpor v ose Z"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Posune vypočtenou podlahu pásu nahoru nebo dolů (mm). Záporné hodnoty podlahu sníží, takže se zachová více podpor. Slouží k diagnostice problémů se vzorcem podlahy pásu."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Povolit čisticí věž pásu"
+
+# AI Translated
+# Needs human review: Prime tower: the glossary cell is unsettled (Základní věž / Věž na očištění trysky); 'wipe/prime tower' is rendered with the label form Základní věž.
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Náhrada základní věže pro pásové tiskárny. Je-li na pásové tiskárně povolena, vedle tištěných dílů se automaticky vytvoří čisticí hranol a čištění při změně filamentu probíhá do něj (klasickou základní věž nelze na pásových tiskárnách použít, protože její G-code obchází transformaci pásu). Dostupné pouze na pásových tiskárnách."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Šířka čisticí věže pásu"
+
+# AI Translated
+# Needs human review: Prime tower: the glossary cell is unsettled (Základní věž / Věž na očištění trysky); 'classic wipe tower' is rendered with the label form Základní věž.
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Šířka (osa X stroje, napříč pásem) čisticího hranolu, který se na pásových tiskárnách automaticky vytvoří, když je povolena čisticí věž pásu a používá se více filamentů. Čištění při změně filamentu probíhá do extruzí tohoto hranolu místo do klasické základní věže. Jeho výška se počítá automaticky z nejhoršího případu objemu čištění na vrstvu: širší hranol bude nižší."
+
msgid "Tree support branch angle"
msgstr "Úhel větvení stromové podpěry"
@@ -18624,13 +20246,11 @@ msgstr "Oddělené výplně"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"Vystředí vnitřní výplň každé části na ni samotnou, jako by byla slicována samostatně, místo na celou sestavu. Části, které se dotýkají nebo překrývají, jsou považovány za jedno těleso a sdílejí střed; oddělené části (nebo samostatné 3D objekty) mají každá svůj vlastní.\n"
+"Vystředí vnitřní výplň každého dílu na něj samotný, jako by byl slicován samostatně, místo na celou sestavu. Díly, které se dotýkají nebo překrývají, jsou považovány za jedno těleso a sdílejí střed; oddělené díly (nebo samostatné 3D objekty) mají každý svůj vlastní.\n"
"Hodí se, když sestava sdružuje několik objektů, z nichž si každý má zachovat konzistentní, na sebe vystředěnou výplň.\n"
-"Ovlivňuje vzory Čára a Mřížka a výplně s rotační šablonou.\n"
-"Vzory vázané na globální souřadnice (Gyroid, Včelí plástev, TPMS, ...) tím nejsou ovlivněny."
+"Adaptivní kubická a Podpůrná kostka vždy vystředí každý díl na něj samotný a výplň Blesk se generuje pro celý objekt, takže ji tato volba neovlivní."
# AI Translated
msgid "Center surface pattern on"
@@ -18730,6 +20350,7 @@ msgid "Prime volume mode"
msgstr "Režim objemu základní věže"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
msgid "Selects how the wipe-tower prime and flush volumes are computed on multi-extruder printers."
msgstr "Určuje, jak se na tiskárnách s více extrudery počítají objemy naplnění a čištění na věži na očištění trysky."
@@ -18762,40 +20383,44 @@ msgstr "Úhel na vrcholu kužele, který slouží ke stabilizaci věže na oči
msgid "Maximum wipe tower print speed"
msgstr "Maximální rychlost tisku věže na očištění trysky"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
"Maximální rychlost tisku při proplachování ve věži na očištění trysky a při tisku řídkých vrstev této věže. Při proplachování se použije nejnižší rychlost z rychlosti řídké výplně nebo vypočtené rychlosti podle maximální objemové rychlosti filamentu.\n"
"\n"
-"Při tisku řídkých vrstev se použije nejnižší rychlost z rychlosti vnitřních obvodů nebo vypočtené rychlosti podle maximální objemové rychlosti filamentu.\n"
+"Při tisku řídkých vrstev se použije nejnižší rychlost z rychlosti řídké výplně nebo vypočtené rychlosti podle maximální objemové rychlosti filamentu.\n"
"\n"
"Zvýšení této rychlosti může ovlivnit stabilitu věže a také zvýšit sílu, s jakou tryska narazí do případných kapek vytvořených na věži na očištění trysky.\n"
"\n"
"Před zvýšením tohoto parametru nad výchozí hodnotu 90 mm/s se ujistěte, že vaše tiskárna je schopna spolehlivě překonávat mosty při zvýšených rychlostech a že je při výměně nástroje dobře kontrolováno protékání.\n"
"\n"
-"Pro vnější perimetry věže na očištění trysky se vždy použije rychlost vnitřních obvodů bez ohledu na toto nastavení."
+"Pro vnější obvody věže na očištění trysky se použije rychlost vnitřních obvodů, rovněž omezená tímto nastavením."
msgid "Wall type"
msgstr "Typ stěny"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
-"Typ vnější stěny čistící věže.\n"
-"1. Obdélník: Výchozí typ stěny, obdélník s pevnou šířkou a výškou.\n"
-"2. Kužel: Kužel se zaoblením ve spodní části pro lepší stabilitu čistící věže.\n"
-"3. Žebra: Přidá čtyři žebra ke stěně věže pro vyšší stabilitu."
+"Typ vnější stěny věže na očištění trysky.\n"
+"1. Obdélník: Obdélník s pevnou šířkou a výškou.\n"
+"2. Kužel: Kužel se zaoblením ve spodní části pro lepší stabilitu věže na očištění trysky.\n"
+"3. Žebra: Výchozí typ stěny, který přidává čtyři žebra ke stěně věže pro vyšší stabilitu."
msgid "Rectangle"
msgstr "Obdélník"
@@ -18863,6 +20488,14 @@ msgstr "Čištění po výměně filamentu se provede uvnitř podpor objektu. To
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Tento objekt bude použit k propláchnutí trysky po výměně filamentu, aby se šetřil filament a zkrátila doba tisku. Barvy objektů se tím smíchají. Neprojeví se to, pokud není povolena základní věž."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Objekt čisticí věže pásu"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Označuje automaticky vytvořený čisticí hranol pásu. Spravuje se automaticky; nenastavujte ručně."
+
msgid "Maximal bridging distance"
msgstr "Maximální vzdálenost mostu"
@@ -18878,8 +20511,10 @@ msgstr "Vzdálenost čisticích linií na věži na očištění trysky."
msgid "Extra flow for purging"
msgstr "Dodatečný průtok pro pročištění"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Dodatečný průtok použitý pro pročišťovací linie na věži na očištění trysky. Tím budou pročišťovací linie na věži na očištění trysky silnější nebo užší, než by byly obvykle. Rozestup je nastaven automaticky."
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Dodatečný průtok použitý pro pročišťovací linie na věži na očištění trysky. Tím budou pročišťovací linie silnější, než by byly obvykle. Rozestup je nastaven automaticky."
msgid "Idle temperature"
msgstr "Teplota nečinnosti"
@@ -18999,14 +20634,15 @@ msgstr "Minimální tloušťka tenkých prvků. Prvky modelu tenčí než tato h
msgid "Minimum wall length"
msgstr "Minimální délka stěny"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Upravte tuto hodnotu, abyste zabránili tisku krátkých, neuzavřených stěn, které by mohly zvýšit dobu tisku. Vyšší hodnoty odstraní více a delších stěn.\n"
+"Upravte tuto hodnotu, abyste zabránili tisku krátkých, neuzavřených stěn, které by mohly zvýšit dobu tisku. Hodnota je násobkem šířky stěny. Vyšší hodnoty odstraní více a delších stěn.\n"
"\n"
-"POZNÁMKA: Dolní a horní povrch nebude touto hodnotou ovlivněn, aby nedocházelo k viditelným mezerám na vnější straně modelu. Upravte 'prahovou hodnotu jedné stěny' v pokročilých nastaveních níže pro nastavení citlivosti, co je považováno za horní povrch. 'Prahová hodnota jedné stěny' je zobrazena pouze pokud je toto nastavení vyšší než výchozí hodnota 0,5, nebo pokud je povolena možnost horních povrchů s jednou stěnou."
+"POZNÁMKA: Spodní a horní povrchy nebudou touto hodnotou ovlivněny, aby nedocházelo k viditelným mezerám na vnější straně modelu. Upravte „Práh jedné stěny“ v nastavení „Stěny a povrchy“ níže pro nastavení citlivosti, co je považováno za horní povrch. „Práh jedné stěny“ je zobrazen pouze pokud je toto nastavení vyšší než výchozí hodnota 0,5, nebo pokud je povolena možnost horních povrchů s jednou stěnou."
msgid "Maximum wall resolution"
msgstr "Maximální rozlišení stěny"
@@ -19017,7 +20653,8 @@ msgstr "Tato hodnota určuje nejmenší délku segmentu čáry stěny v mm. Čí
msgid "Maximum wall deviation"
msgstr "Maximální odchylka stěny"
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+# AI Translated
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
msgstr "Maximální povolená odchylka při snižování rozlišení pro nastavení „Maximální rozlišení stěny“. Pokud tuto hodnotu zvýšíte, tisk bude méně přesný, ale G-code bude menší. „Maximální odchylka stěny“ omezuje „Maximální rozlišení stěny“, takže pokud jsou tato nastavení v konfliktu, má přednost „Maximální odchylka stěny“."
msgid "First layer minimum wall width"
@@ -19112,8 +20749,11 @@ msgstr "Šířka linie můstku nesmí překročit průměr trysky: "
msgid "too large line width "
msgstr "příliš velká šířka čáry "
-msgid " not in range "
-msgstr " není v rozsahu "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% není v rozsahu [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Exportovat projekt jako 3MF."
@@ -19266,6 +20906,14 @@ msgstr "Možnosti orientace"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Možnosti orientace: 0-vypnuto, 1-zapnuto, ostatní-automaticky"
+# AI Translated
+msgid "Repair"
+msgstr "Opravit"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Opraví sítě modelů stejně jako „Opravit model“: uzavře díry a praskliny, zorientuje je směrem ven a odstraní vlastní průniky."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Úhel rotace kolem osy Z ve stupních."
@@ -19374,6 +21022,12 @@ msgstr "Výstupní adresář"
msgid "This is the output directory for exported files."
msgstr "Výstupní adresář pro exportované soubory."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Úroveň ladění"
@@ -19540,6 +21194,57 @@ msgstr "Obsahuje MM priming pro jeden extruder"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Jsou v tomto tisku použity dodatečné primovací oblasti pro vícemateriálový tisk?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Počáteční extruder bez podpor"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Index prvního extruderu použitého pro tisk bez podpor, začínající od nuly. Stejné jako initial_no_support_tool."
+
+# AI Translated
+# Needs human review: Placeholder description; 'head wrap' (filament wrapping around the nozzle/head) has no established Czech rendering here, 'obalení' follows the existing nozzle-wrap strings.
+msgid "In head wrap detect zone"
+msgstr "V zóně detekce obalení hlavy"
+
+# AI Translated
+# Needs human review: Placeholder description; 'head wrap' (filament wrapping around the nozzle/head) has no established Czech rendering here, 'obalení' follows the existing nozzle-wrap strings.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Udává, zda se první vrstva překrývá se zónou detekce obalení hlavy."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Aktuální typ podložky"
+
+# AI Translated
+# Needs human review: The quoted examples are kept in English as placeholder values; check that the placeholder really returns the English plate names.
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Název aktuálně vybraného typu podložky (např. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Aktivní režim IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Název aktivního paralelního režimu tisku IDEX/IQEX pro tuto desku (např. 'primary', 'mirror', 'copy'). Prázdný řetězec, pokud není IDEX/IQEX povoleno."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Index aktivního režimu IDEX/IQEX"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Index aktivního paralelního režimu tisku IDEX/IQEX v imex_mode_names, začínající od nuly."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code aktivního režimu IDEX/IQEX"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Nezpracovaná šablona G-code režimu pro aktivní paralelní režim tisku IDEX/IQEX po vyhodnocení zástupných symbolů. Globální proměnné definované zde se přenášejí do machine_start_gcode."
+
msgid "Volume per extruder"
msgstr "Objem na extruder"
@@ -19685,6 +21390,18 @@ msgstr "Zadejte název souboru bez přípony"
msgid "Source filename of the first object, without extension."
msgstr "Název zdrojového souboru prvního objektu bez přípony."
+# AI Translated
+msgid "Full input filename"
+msgstr "Úplný název vstupního souboru"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Název zdrojového souboru prvního objektu."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Název slicované desky."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Vektor obsahuje dva prvky: souřadnice bodu X a Y. Hodnoty jsou v mm."
@@ -19715,6 +21432,59 @@ msgstr "Pravý horní roh ohraničujícího rámečku tiskové podložky"
msgid "Size of the print bed bounding box"
msgstr "Velikost ohraničujícího boxu tiskové podložky"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "věž na očištění"; align it once the term is settled.
+msgid "First layer center without wipe tower"
+msgstr "Střed první vrstvy bez věže na očištění trysky"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Výška první vrstvy."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Vektor teplot podložky pro každý extruder/filament."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Vektor teplot podložky první vrstvy pro každý extruder/filament. Poskytuje stejnou hodnotu jako first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Teplota podložky první vrstvy (počáteční extruder)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Teplota podložky první vrstvy pro počáteční extruder. Stejné jako bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Vektor teplot komory pro každý extruder/filament."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Vektor minimálních teplot komory pro každý extruder/filament."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Celková teplota komory"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Celková teplota komory. Tato hodnota je nejvyšší teplota komory ze všech použitých extruderů/filamentů."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Vektor teplot podložky první vrstvy pro každý extruder/filament. Poskytuje stejnou hodnotu jako bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Teplota první vrstvy"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Vektor teplot první vrstvy pro každý extruder/filament."
+
msgid "Timestamp"
msgstr "Časové razítko"
@@ -19760,8 +21530,9 @@ msgstr "Název fyzické tiskárny použité pro slicování."
msgid "Layer number"
msgstr "Číslo vrstvy"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Index aktuální vrstvy. Číslování začíná od jedničky (tj. první vrstva má číslo 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Index aktuální vrstvy. Číslování začíná od nuly (tj. první vrstva má číslo 0), s výjimkou G-code pro změnu role extruze, kde začíná od jedničky."
msgid "Layer Z"
msgstr "Vrstva Z"
@@ -19781,6 +21552,252 @@ msgstr "ID extruderu filamentu"
msgid "The current extruder ID. The same as current_extruder."
msgstr "Aktuální ID extruderu. Shodné s current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Předchozí extruder"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Index extruderu, který se právě vysouvá. Index začíná od nuly (první extruder má index 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Další extruder"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Index extruderu, který se právě zavádí. Index začíná od nuly (první extruder má index 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Relativní osa E"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Udává, zda se používá relativní polohování."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Počet výměn nástroje"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "Počet výměn nástroje během tisku."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Původní délka retrakce"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Délka retrakce předchozího filamentu."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Nová délka retrakce"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Délka retrakce nového filamentu."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Původní délka retrakce při výměně nástroje"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Délka retrakce předchozího filamentu při výměně nástroje."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Nová délka retrakce při výměně nástroje"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "Délka retrakce nového filamentu při výměně nástroje."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Teplota původního filamentu"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "Teplota původního filamentu."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Teplota nového filamentu"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "Teplota nového filamentu."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X po výměně nástroje"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "Pozice X po výměně nástroje."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y po výměně nástroje"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "Pozice Y po výměně nástroje."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z po výměně nástroje"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "Pozice Z po výměně nástroje."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "První objem čištění"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "První objem čištění."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Druhý objem čištění"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Druhý objem čištění."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Posuv E původního filamentu"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "Rychlost posuvu extruderu původního filamentu."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Posuv E nového filamentu"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "Rychlost posuvu extruderu nového filamentu."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Bod přejezdu 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "X bodu přejezdu 1."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Bod přejezdu 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Y bodu přejezdu 1."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Bod přejezdu 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "X bodu přejezdu 2."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Bod přejezdu 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Y bodu přejezdu 2."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Bod přejezdu 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "X bodu přejezdu 3."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Bod přejezdu 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Y bodu přejezdu 3."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Délka čištění 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "První délka čištění."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Délka čištění 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "Druhá délka čištění."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Délka čištění 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "Třetí délka čištění."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Délka čištění 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "Čtvrtá délka čištění."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Role extruze"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Nová role/typ extruze, která se použije\n"
+"Možné hodnoty:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Poslední role extruze"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Dříve použitá role/typ extruze\n"
+"Možné hodnoty:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Chyba v zip archivu"
@@ -19793,24 +21810,32 @@ msgstr "Generování oblastí výplně"
msgid "Generating infill toolpath"
msgstr "Generování dráhy výplně"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Konturování v ose Z: vrstva %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Detekovat převisy pro automatické zvedání"
msgid "Checking support necessity"
msgstr "Kontrola nutnosti podpěr"
-msgid "floating regions"
-msgstr "Plovoucí oblasti"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Zdá se, že objekt %1% má plovoucí oblasti. Přeorientujte objekt nebo povolte generování podpor."
-msgid "floating cantilever"
-msgstr "Plovoucí konzola"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Zdá se, že objekt %1% má plovoucí konzolu. Přeorientujte objekt nebo povolte generování podpor."
-msgid "large overhangs"
-msgstr "Velké převisy"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Zdá se, že objekt %s obsahuje %s. Přeorientujte objekt nebo povolte generování podpěr."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Zdá se, že objekt %1% má velké převisy. Přeorientujte objekt nebo povolte generování podpor."
msgid "Generating support"
msgstr "Generování podpěr"
@@ -19821,8 +21846,9 @@ msgstr "Optimalizace dráhy nástroje"
msgid "Slicing mesh"
msgstr "Slicování mesh"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Nebyly detekovány žádné vrstvy. Možná budete chtít opravit svůj STL soubor nebo zkontrolovat jeho velikost či tloušťku a zkusit to znovu.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Nebyly detekovány žádné vrstvy. Možná budete chtít model opravit nebo zkontrolovat jeho velikost či tloušťku a zkusit to znovu.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19841,6 +21867,397 @@ msgstr ""
msgid "Object name"
msgstr "Název objektu"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Nelze použít operátor unárního minus."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Nelze převést na celé číslo."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Nelze zaokrouhlit nečíselnou hodnotu."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Nelze zaokrouhlit dolů nečíselnou hodnotu."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Nelze zaokrouhlit nahoru nečíselnou hodnotu."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Nelze použít operátor negace (not)."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Nelze sčítat nečíselné typy."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Nelze odčítat nečíselné typy."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Nelze násobit nečíselným typem."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Nelze dělit nečíselný typ."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Nelze dělit nečíselným typem."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Dělení nulou"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Výraz není booleovský"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Tyto typy nelze porovnat."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Není číselný typ."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: druhý parametr musí být celé číslo"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: třetí parametr musí být celé číslo"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Levá strana shody s regulárním výrazem musí být řetězec."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Kompilace regulárního výrazu se nezdařila: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "regex_replace(): první parametr musí být řetězec."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): První parametr (řetězec, vůči kterému se porovnává) musí být řetězcová hodnota"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): Vzor musí být řetězcová hodnota"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Kompilace regulárního výrazu se nezdařila"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Logickou operaci nelze použít na nebooleovské operandy."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Pokus o indexování skalární proměnné"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Neplatný index vektoru"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "Proměnná neexistuje (v neaktivní větvi)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "Proměnná neexistuje"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Pokus o odkaz na nedefinovanou (nil) volitelnou proměnnou"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Indexování prázdné vektorové proměnné"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Pokus o odkaz na nedefinovaný (nil) prvek vektoru volitelných hodnot"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "Indexová proměnná musí být celé číslo"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Záporný index vektoru"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Není název proměnné"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Není název proměnné (v neaktivní větvi)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "Proměnné FloatOrPercent se nepodařilo vyřešit závislosti \"ratio_over\""
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Nepodporovaný typ skalární proměnné"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Odkaz na vektorovou proměnnou, ačkoli se očekává skalár"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Nepodporovaný typ vektorové proměnné"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Nelze změnit proměnnou pouze pro čtení"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Pravá strana není číselný výraz"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Očekává se počet prvků, kterými se má vektor naplnit."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Byl zadán záporný počet prvků."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Pravá strana není booleovský výraz"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Nepodporovaný typ výstupní skalární proměnné"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Odkaz na výstupní vektorovou proměnnou, ačkoli se očekává skalár"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Index mimo rozsah"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Nepodporovaný typ výstupní vektorové proměnné"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Symbol je již definován v systémovém slovníku pouze pro čtení"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Symbol je již definován jako systémová výstupní proměnná"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Globální proměnné nejsou v tomto kontextu dostupné"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Název proměnné je již definován v lokálním rozsahu"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Název proměnné je již definován v globálním rozsahu"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Skalární hodnotu nelze přiřadit vektorové proměnné."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Vektorovou hodnotu nelze přiřadit skalární proměnné."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Vektorovou proměnnou nelze vytvořit z prázdného inicializačního seznamu, protože nelze odvodit její typ."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Pravá strana není platná: míchání číselných a booleovských typů."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Skalár nelze přiřadit vektoru"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Některé prvky vektorové proměnné volitelných hodnot na pravé straně jsou nedefinované (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Levá strana je vektor typu float, pravá strana však ne."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Levá strana je vektor typu int, pravá strana však ne."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Levá strana je vektor řetězců, pravá strana však ne."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Levá strana je vektor typu bool, pravá strana však ne."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Vektory na levé a pravé straně nejsou kompatibilní."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Duplikování tohoto typu vektorové proměnné není podporováno"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "parametr empty() není vektorová proměnná"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "parametr size() není vektorová proměnná"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Neceločíselný index nelze použít k adresování vektorové proměnné."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Generátor náhodných čísel není v tomto kontextu dostupný."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Chyba analýzy na řádku %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Chyba analýzy na řádku %1%. Očekává se značka %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Chyba analýzy na řádku %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "Hodnota interpolace musí být číslo."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "Hodnota X bodu tabulky musí být číslo."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "Hodnota Y bodu tabulky musí být číslo."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Souřadnice X tabulky musí být rostoucí"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "Hodnota interpolace je mimo rozsah tabulky"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Neznámá syntaktická chyba"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Neplatný text."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Neplatný textový blok."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Neplatné makro."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Není makro {if}{else}{endif}."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Není makro {switch}."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Očekává se starší formát rozvinutí proměnné"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Očekává se identifikátor."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Očekává se podmíněný výraz."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Očekává se booleovský výraz."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Očekává se výraz."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Očekává se uzavírací složená závorka nebo volitelný parametr."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Očekává se seznam řetězcových vzorů (prostý text nebo regulární výraz)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Očekává se odkaz na proměnnou."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Očekává se název proměnné."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Očekává se regulární výraz."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Neplatná sekvence utf8"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Znaky mimo ASCII7 jsou povoleny pouze uvnitř textových bloků a řetězcových literálů, nikoli uvnitř bloků kódu."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Neplatná escape sekvence"
+
msgid "Support: generate contact points"
msgstr "Podpora: generovat kontaktní body"
@@ -19857,6 +22274,10 @@ msgstr "Zadaný soubor nelze načíst, protože je prázdný."
msgid "The file format is incompatible and cannot be parsed."
msgstr "Formát souboru není kompatibilní a nelze jej načíst."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Převod souboru na STL pomocí ModelIO se nezdařil."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Neznámý formát souboru. Vstupní soubor musí mít příponu .stl, .obj nebo .amf(.xml)."
@@ -19905,9 +22326,6 @@ msgstr "Rekalibrace"
msgid "Calibrate"
msgstr "Kalibrovat"
-msgid "Finish"
-msgstr "Dokončit"
-
msgid "How can I use calibration results?"
msgstr "Jak použít výsledek kalibrace?"
@@ -20002,9 +22420,13 @@ msgstr ""
"V rámci stejného extruderu musí být název (%s) jedinečný, pokud jsou typ filamentu, průměr trysky a průtok trysky stejné.\n"
"Opravdu chcete přepsat historický výsledek?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Tento typ stroje může uchovávat pouze %d výsledků historie na jednu trysku. Tento výsledek nebude uložen."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Tento typ stroje může uchovávat pouze %d historický výsledek na jednu trysku. Tento výsledek nebude uložen."
+msgstr[1] "Tento typ stroje může uchovávat pouze %d historické výsledky na jednu trysku. Tento výsledek nebude uložen."
+msgstr[2] "Tento typ stroje může uchovávat pouze %d historických výsledků na jednu trysku. Tento výsledek nebude uložen."
msgid "Connecting to printer..."
msgstr "Připojování k tiskárně..."
@@ -20226,9 +22648,13 @@ msgstr "Synchronizovat informace o trysce a AMS"
msgid "Please connect the printer first before synchronizing."
msgstr "Před synchronizací nejprve připojte tiskárnu."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "Informace o trysce tiskárny %s nejsou nastaveny. Před pokračováním v kalibraci je prosím nastavte."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Informace o pravé trysce tiskárny nejsou nastaveny. Před pokračováním v kalibraci je prosím nastavte."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Informace o levé trysce tiskárny nejsou nastaveny. Před pokračováním v kalibraci je prosím nastavte."
msgid "AMS and nozzle information are synced"
msgstr "Informace AMS a trysky jsou synchronizovány"
@@ -20291,6 +22717,11 @@ msgstr "Od objemové rychlosti"
msgid "To Volumetric Speed"
msgstr "Do objemové rychlosti"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Krok"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Opravdu chcete tento tisk zrušit?"
@@ -20316,9 +22747,13 @@ msgstr "Poznámka: Číslo hotendu na %s je přiřazeno k držáku. Když je hot
msgid "Action"
msgstr "Akce"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Tento typ tiskárny může uchovávat pouze %d výsledků historie na jednu trysku."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Tento typ stroje může uchovávat pouze %d historický výsledek na jednu trysku."
+msgstr[1] "Tento typ stroje může uchovávat pouze %d historické výsledky na jednu trysku."
+msgstr[2] "Tento typ stroje může uchovávat pouze %d historických výsledků na jednu trysku."
msgid "Edit Flow Dynamics Calibration"
msgstr "Upravit kalibraci dynamiky průtoku"
@@ -20446,12 +22881,13 @@ msgstr ""
"Hodnoty zrychlení musí být vyšší než hodnoty rychlosti.\n"
"Zkontrolujte prosím zadané údaje."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Na pásových tiskárnách zatím není dostupné — použijte místo toho metodu PA věž."
+
msgid "Temperature calibration"
msgstr "Kalibrace teploty"
-msgid "Filament type"
-msgstr "Typ filamentu"
-
msgid "PLA"
msgstr "PLA"
@@ -20473,6 +22909,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Testovací model"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Standardní"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Převis"
+
msgid "Start temp: "
msgstr "Počáteční teplota: "
@@ -20598,9 +23047,6 @@ msgstr "Počáteční délka retrakce: "
msgid "End retraction length: "
msgstr "Koncová délka retrakce: "
-msgid "Test model"
-msgstr "Testovací model"
-
msgid "Ringing Tower"
msgstr "Věž s ringingem"
@@ -20630,8 +23076,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Frekvence (Začátek / Konec): "
-msgid "Start / End"
-msgstr "Začátek / Konec"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X Začátek / Konec: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y Začátek / Konec: "
msgid "Frequency settings"
msgstr "Nastavení frekvence"
@@ -20668,8 +23119,13 @@ msgstr "Zkontrolujte kompatibilitu firmwaru."
msgid "Frequency: "
msgstr "Frekvence: "
-msgid "Damp"
-msgstr "Tlumení"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Frekvence X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Tlumení (Začátek / Konec): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "Firmware RepRap používá stejnou frekvenci pro obě osy."
@@ -20800,8 +23256,11 @@ msgstr "Povolit IFS"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "Na tiskárně bylo zjištěno %d slotů IFS."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "Na tiskárně byl zjištěn %d slot IFS."
+msgstr[1] "Na tiskárně byly zjištěny %d sloty IFS."
+msgstr[2] "Na tiskárně bylo zjištěno %d slotů IFS."
# AI Translated
msgid "This printer does not report a material station."
@@ -20932,8 +23391,10 @@ msgstr "Odečíst z"
msgid "Subtract with"
msgstr "Odečíst pomocí"
-msgid "selected"
-msgstr "vybráno"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 vybráno"
msgid "Part 1"
msgstr "Část 1"
@@ -21051,9 +23512,6 @@ msgstr "např. Basic, Matte, Silk, Marble"
msgid "Filament Preset"
msgstr "filamentový přednastavený profil"
-msgid "Create"
-msgstr "Vytvořit"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "Dodavatel není vybrán, prosím vyberte jej znovu."
@@ -21365,6 +23823,10 @@ msgstr ""
"Tiskárna a všechny předvolby filamentů a procesů, které k ní patří.\n"
"Lze sdílet s ostatními."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Zahrnout vlastní texturu a model podložky"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21416,15 +23878,6 @@ msgstr "Poznámka: Pokud bude smazána jediná předvolba tohoto filamentu, fila
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Předvolby zděděné jinými předvolbami nelze odstranit"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Následující předvolba dědí tuto předvolbu."
-msgstr[1] "Následující předvolby dědí tuto předvolbu."
-msgstr[2] "Následující předvolby dědí tuto předvolbu."
-
-msgid "Delete Preset"
-msgstr "Smazat předvolbu"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Opravdu chcete odstranit vybranou předvolbu?"
@@ -21501,10 +23954,12 @@ msgstr "Počáteční, koncová nebo kroková hodnota není platná."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "Počet extruderů tiskárny neodpovídá tiskárně vybrané pro kalibraci."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "Průměr trysky extruderu %s je 0,2 mm, což nepodporuje automatickou kalibraci Flow Dynamics."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21520,6 +23975,12 @@ msgstr ""
"Průměr trysky neodpovídá skutečnému průměru trysky tiskárny.\n"
"Klikněte prosím na tlačítko Synchronizovat výše a spusťte kalibraci znovu."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Informace o trysce tiskárny %s nejsou nastaveny. Před pokračováním v kalibraci je prosím nastavte."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21597,6 +24058,11 @@ msgstr "Detekovat tiskárnu Creality řady K"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Klikněte na Skenovat pro vyhledání tiskáren řady K ve vaší síti."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Model"
+
# AI Translated
msgid "Scan"
msgstr "Vyhledat"
@@ -21619,8 +24085,11 @@ msgstr "Nebyly nalezeny žádné tiskárny řady K. Ujistěte se, že je tiskár
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "Nalezeno %zu tiskáren Creality. Vyberte jednu a klikněte na Použít vybranou."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "Nalezena %zu tiskárna Creality. Vyberte ji a klikněte na Použít vybranou."
+msgstr[1] "Nalezeny %zu tiskárny Creality. Vyberte jednu a klikněte na Použít vybranou."
+msgstr[2] "Nalezeno %zu tiskáren Creality. Vyberte jednu a klikněte na Použít vybranou."
# AI Translated
msgid "Active"
@@ -21739,8 +24208,13 @@ msgid "Failed to launch a new instance."
msgstr "Nepodařilo se spustit novou instanci."
# AI Translated
-msgid "log(s)"
-msgstr "protokol(y)"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d log (%.2f %s)"
+msgstr[1] "%d logy (%.2f %s)"
+msgstr[2] "%d logů (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -21795,17 +24269,37 @@ msgid "Authorizing..."
msgstr "Probíhá autorizace..."
# AI Translated
-msgid "Error. Can't get API token for authorization"
-msgstr "Chyba. Nelze získat API token pro autorizaci"
+msgid "Maximum login retries exceeded"
+msgstr "Překročen maximální počet pokusů o přihlášení"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "Chyba HTTP: %1%"
# AI Translated
msgid "Could not parse server response."
msgstr "Nepodařilo se zpracovat odpověď serveru."
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "Chyba. Nelze získat API token pro autorizaci"
+
# AI Translated
msgid "Error saving session to file"
msgstr "Chyba při ukládání relace do souboru"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "Připojení k cloudu 3DPrinterOS funguje správně."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Přihlášen jako uživatel: %1%"
+
# AI Translated
msgid "Error session check"
msgstr "Chyba při kontrole relace"
@@ -21842,6 +24336,42 @@ msgstr "Nesprávné heslo"
msgid "Could not get resources to create a new connection"
msgstr "Nepodařilo se získat prostředky k vytvoření nového připojení"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "Připojení k UltiMaker funguje správně."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Nepodařilo se připojit k UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Chyba při generování přihlašovacích údajů! Podrobnosti najdete v logu."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "CHYBA: ID nebo KEY je prázdné. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Uživatelské jméno: %1% Heslo: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Přihlašovací údaje čekají na schválení. Schvalte přístup v dialogovém okně na displeji tiskárny."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Neplatné přihlašovací údaje"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Chyba: Nebyly nalezeny žádné přihlašovací údaje!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Nahrávání není na kartě FlashAir povoleno."
@@ -21959,6 +24489,14 @@ msgstr ""
"Tělo zprávy: \"%1%\"\n"
"Chyba: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "Připojení k ESP3D funguje správně."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Nepodařilo se připojit k ESP3D"
+
msgid "No AMS"
msgstr "Bez AMS"
@@ -22030,6 +24568,11 @@ msgstr "Maximální počet tiskáren, který lze vybrat, je %d"
msgid "No task"
msgstr "Žádný úkol"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Zobrazit"
+
msgid "Edit Printers"
msgstr "Upravit tiskárny"
@@ -22072,6 +24615,11 @@ msgstr "Tisk selhal"
msgid "Printing Pause"
msgstr "Pozastavení tisku"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Příprava"
+
msgid "Pending"
msgstr "Čekající"
@@ -22104,10 +24652,6 @@ msgstr "Povolit chytré přiřazení filamentu: přiřadit jeden filament více
msgid "File Saving"
msgstr "Ukládání souboru"
-# AI Translated
-msgid "Don't remind me again"
-msgstr "Znovu mi to nepřipomínat"
-
# AI Translated
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Žádné další vyskakovací okno se neobjeví. Znovu jej můžete zapnout v „Předvolbách“"
@@ -22140,17 +24684,25 @@ msgstr "Ručně přiřadit filament k levé nebo pravé trysce"
msgid "Global settings"
msgstr "Globální nastavení"
-msgid "Video tutorial"
-msgstr "Video tutoriál"
-
# AI Translated
msgid "(Sync with printer)"
msgstr "(Synchronizovat s tiskárnou)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Chyba: extruder %s nemá k dispozici žádnou trysku %s, aktuální výsledek seskupení je neplatný."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Chyba: levý extruder nemá k dispozici žádnou standardní trysku, aktuální výsledek seskupení je neplatný."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Chyba: levý extruder nemá k dispozici žádnou trysku s vysokým průtokem, aktuální výsledek seskupení je neplatný."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Chyba: pravý extruder nemá k dispozici žádnou standardní trysku, aktuální výsledek seskupení je neplatný."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Chyba: pravý extruder nemá k dispozici žádnou trysku s vysokým průtokem, aktuální výsledek seskupení je neplatný."
# AI Translated
msgid "We will slice according to this grouping method:"
@@ -22196,9 +24748,6 @@ msgstr "Nepodařilo se připojit k SimplyPrint"
msgid "Internal error"
msgstr "Interní chyba"
-msgid "Unknown error"
-msgstr "Neznámá chyba"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "Účet SimplyPrint není propojen. Přejděte do možností Připojení a nastavte jej."
@@ -22206,6 +24755,16 @@ msgstr "Účet SimplyPrint není propojen. Přejděte do možností Připojení
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge vrátil neplatnou odpověď JSON."
+# AI Translated
+msgid "Request failed"
+msgstr "Požadavek selhal"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Chyba místního API Flashforge %1%: %2%"
+
# AI Translated
msgid "No Flashforge printers were discovered on the local network."
msgstr "V místní síti nebyly nalezeny žádné tiskárny Flashforge."
@@ -22391,8 +24950,12 @@ msgid "Set the brim type of this object to \"painted\""
msgstr "Nastavit typ lemu tohoto objektu na „malovaný“"
# AI Translated
-msgid "invalid brim ears"
-msgstr "neplatná ouška límce"
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d neplatné ouško límce"
+msgstr[1] "%d neplatná ouška límce"
+msgstr[2] "%d neplatných oušek límce"
msgid "Brim Ears"
msgstr "Ouška límce"
@@ -22425,6 +24988,7 @@ msgid "Failed to create the temporary folder."
msgstr "Nepodařilo se vytvořit dočasnou složku."
# AI Translated
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d vybráno"
@@ -22451,8 +25015,11 @@ msgstr "Tisková úloha bude zastavena. Pokračovat?"
# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Přeskakování %d objektů."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "Přeskakování %d objektu."
+msgstr[1] "Přeskakování %d objektů."
+msgstr[2] "Přeskakování %d objektů."
# AI Translated
msgid "This action cannot be undone. Continue?"
@@ -22638,6 +25205,43 @@ msgstr "Je-li zapnuto, budou výše uvedené hodnoty uloženy jako výchozí pro
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Exportovat předvolby"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Zobrazit ve složce"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Odstranit balíček"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Zrušit odběr balíčku"
+
+# AI Translated
+msgid "Update available"
+msgstr "Dostupná aktualizace"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Neautorizovaný balíček"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Otevřít tento balíček v prohlížeči"
+
+# AI Translated
+# Needs human review: Shared msgid: bundle Type in the Preset Bundle dialog and plugin Source in the Plugins dialog (next to Mine / Orphaned / Local). Masculine singular agrees with both 'balíček' and 'plugin'; check it reads right in both.
+msgid "Subscribed"
+msgstr "Odebíraný"
+
+# AI Translated
+msgid "Local"
+msgstr "Místní"
+
# AI Translated
msgid "Bundle folder does not exist."
msgstr "Složka balíčku neexistuje."
@@ -22682,6 +25286,14 @@ msgstr "Zrušit odběr balíčku"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Exportovat do OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Exportovat do složky"
+
# AI Translated
msgid "Save preset bundle"
msgstr "Uložit balíček předvoleb"
@@ -22783,6 +25395,11 @@ msgstr "Řízení sušení v AMS"
msgid "Filament Drying Settings"
msgstr "Nastavení sušení filamentu"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "h"
+
# AI Translated
msgid "Stopping"
msgstr "Zastavování"
@@ -22962,6 +25579,11 @@ msgstr "Spouštění: kontrola přívodu vzduchu"
msgid "Starting: Checking air vent"
msgstr "Spouštění: kontrola odvodu vzduchu"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Nelze vytvořit složku %1%"
+
# AI Translated
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Filament nemusí být kompatibilní s aktuálním nastavením stroje. Použijí se obecné předvolby filamentu."
@@ -22982,6 +25604,105 @@ msgstr "Filament nemusí být kompatibilní s aktuálním nastavením stroje. Po
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Model filamentu je neznámý. Použije se náhodná předvolba filamentu."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Neznámý konfigurační soubor: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Neplatný konfigurační soubor: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "slot %1% -> slot %2%: míchaný filament"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "definice míchaného filamentu: dosažen limit slotů filamentů"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "dosažen limit slotů filamentů"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "limit filamentů tiskárny je %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "slot %1% -> slot %2%: nepřiřazený míchaný filament (limit filamentů tiskárny je %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "slot %1%: nepřiřazený míchaný filament (limit filamentů tiskárny je %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "slot %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "slot %1%: definici míchaného filamentu se nepodařilo importovat"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "vyžaduje alespoň dvě součásti"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "součásti odkazují na chybějící sloty"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "definice míchaného filamentu: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "slot %1%: definici míchaného filamentu se nepodařilo importovat (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "slot %1%: %2% -> %3% (náhrada)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Načtení konfiguračního souboru %1% se nezdařilo\n"
+"Doporučujeme nejprve vyčistit složku %2%"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Verze konfigurace dodavatele %1%: %2% je neplatná\n"
+"Doporučujeme nejprve vyčistit složku %3%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Načtení konfiguračního souboru %1% se nezdařilo: %2%\n"
+"Doporučujeme nejprve vyčistit složku %3%"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Skrýt referenční roviny a osy"
@@ -23295,6 +26016,11 @@ msgstr "Žádné plošné těleso k zesílení — nejprve vytvořte povrchový
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Referenční geometrie / křivka (rovina / osa / souř. systém / šroubovice / promítnutí)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Rovina"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Referenční rovina (odsazená / naklopená / střední / tečná / dvě hrany / totožná)"
@@ -23361,6 +26087,11 @@ msgstr "Posunout a/nebo otočit existující těleso"
msgid "Transform needs a body — add or import one first"
msgstr "Transformace vyžaduje těleso — nejprve nějaké přidejte nebo importujte"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Zrcadlit"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Zrcadlit těleso podle roviny"
@@ -23454,6 +26185,11 @@ msgstr "(žádné)"
msgid "Hole / thread"
msgstr "Díra / závit"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Otvor"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Vyvrtat díru se středem na vybrané ploše nebo umístěnou na rovině"
@@ -23498,6 +26234,11 @@ msgstr "Klikněte na 2 body nebo na čáru / kružnici / oblouk pro umístění
msgid "Line / polyline"
msgstr "Čára / lomená čára"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Čára"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Klikněte na začátek, pak na konec — pak nastavte přesnou délku"
@@ -23634,6 +26375,9 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Klikejte na řídicí body; dokončete dvojklikem, pravým tlačítkem nebo klávesou Enter"
+msgid "Point"
+msgstr "Bod"
+
# AI Translated
msgid "Click to place a point"
msgstr "Kliknutím umístěte bod"
@@ -23752,16 +26496,19 @@ msgstr "Vyberte entity, táhněte úchytem úhlového rozsahu, klikněte na poč
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Klikněte na střed, pak na vrchol — %d stran, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Klikněte na střed, pak na vrchol — %d strana, opsaný"
+msgstr[1] "Klikněte na střed, pak na vrchol — %d strany, opsaný"
+msgstr[2] "Klikněte na střed, pak na vrchol — %d stran, opsaný"
# AI Translated
-msgid "circumscribed"
-msgstr "opsaný"
-
-# AI Translated
-msgid "inscribed"
-msgstr "vepsaný"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Klikněte na střed, pak na vrchol — %d strana, vepsaný"
+msgstr[1] "Klikněte na střed, pak na vrchol — %d strany, vepsaný"
+msgstr[2] "Klikněte na střed, pak na vrchol — %d stran, vepsaný"
# AI Translated
msgid "Polygon"
@@ -24100,6 +26847,11 @@ msgstr "Na ploše"
msgid "Thread plane"
msgstr "Rovina závitu"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Norma"
+
# AI Translated
msgid "Pitch"
msgstr "Stoupání"
@@ -24287,6 +27039,9 @@ msgstr "Vyberte plochu tělesa, kterou chcete otevřít, pak nastavte tloušťku
msgid "(pick a side face)"
msgstr "(vyberte boční plochu)"
+msgid "Face"
+msgstr "Plocha"
+
# AI Translated
msgid "Draft"
msgstr "Úkos"
@@ -24665,8 +27420,11 @@ msgstr "Náčrt aktualizován"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Náčrt vytvořen (řídicí kóty: %zu) — vyberte ho a pravým tlačítkem zvolte Vysunutí"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Náčrt vytvořen (%zu řídicí kóta) — vyberte ho a pravým tlačítkem zvolte Vysunutí"
+msgstr[1] "Náčrt vytvořen (%zu řídicí kóty) — vyberte ho a pravým tlačítkem zvolte Vysunutí"
+msgstr[2] "Náčrt vytvořen (%zu řídicích kót) — vyberte ho a pravým tlačítkem zvolte Vysunutí"
# AI Translated
#, c-format, boost-format
@@ -24806,8 +27564,11 @@ msgstr "Úpravy: Náčrt %d · N = pohled kolmo k rovině · Potvrdit ne
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — trojúhelníky: %zu"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — %zu trojúhelník"
+msgstr[1] "OK — %zu trojúhelníky"
+msgstr[2] "OK — %zu trojúhelníků"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -24894,10 +27655,22 @@ msgstr "Síť neobsahuje žádné trojúhelníky"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Tato síť má %d trojúhelník. Každý trojúhelník se před sloučením koplanárních ploch stane plochou B-rep, takže import může trvat dlouho a výsledné těleso se může upravovat pomalu. Obvykle je lepší síť nejprve zjednodušit (decimovat).\n"
+"\n"
+"Přesto importovat?"
+msgstr[1] ""
+"Tato síť má %d trojúhelníky. Každý trojúhelník se před sloučením koplanárních ploch stane plochou B-rep, takže import může trvat dlouho a výsledné těleso se může upravovat pomalu. Obvykle je lepší síť nejprve zjednodušit (decimovat).\n"
+"\n"
+"Přesto importovat?"
+msgstr[2] ""
"Tato síť má %d trojúhelníků. Každý trojúhelník se před sloučením koplanárních ploch stane plochou B-rep, takže import může trvat dlouho a výsledné těleso se může upravovat pomalu. Obvykle je lepší síť nejprve zjednodušit (decimovat).\n"
"\n"
"Přesto importovat?"
@@ -24926,7 +27699,7 @@ msgstr "Import sítě selhal: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
msgstr "Importované těleso — trojúhelníky: %d → plochy: %d, objem %.2f mm³. Vyberte plochu nebo hranu, pak je upravte pomocí Zaoblení / Řez / Skořepina"
# AI Translated
@@ -24944,8 +27717,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s přidáno do náčrtu — potvrďte tlačítkem Potvrdit"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — tažením umístěte/změňte velikost, pak Potvrdit"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — tažením umístěte/změňte velikost, pak Potvrdit"
# AI Translated
msgid "Insert canceled"
@@ -25153,9 +27928,13 @@ msgid "a geometry operation failed"
msgstr "geometrická operace selhala"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · vybráno: %d"
+msgid_plural " · %d picked"
+msgstr[0] " · vybráno: %d"
+msgstr[1] " · vybráno: %d"
+msgstr[2] " · vybráno: %d"
# AI Translated
#, c-format, boost-format
@@ -25172,7 +27951,10 @@ msgstr "Výběr — kliknutím vyberte entitu · tažením koncového bodu neb
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "Vybráno: %d · nyní zvolte vazbu (Vodorovnost, Rovnoběžnost, Tečnost, Shodnost…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "Vybráno: %d · nyní zvolte vazbu (Vodorovnost, Rovnoběžnost, Tečnost, Shodnost…)"
+msgstr[1] "Vybráno: %d · nyní zvolte vazbu (Vodorovnost, Rovnoběžnost, Tečnost, Shodnost…)"
+msgstr[2] "Vybráno: %d · nyní zvolte vazbu (Vodorovnost, Rovnoběžnost, Tečnost, Shodnost…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -25433,7 +28215,10 @@ msgstr "Zrcadlit — osa nastavena · nyní klikněte na entity k zrcadlení
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Zrcadlit — osa nastavena · k zrcadlení: %d · kliknutím na další ji přidáte nebo odeberete · Enter použije"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Zrcadlit — osa nastavena · k zrcadlení: %d · kliknutím na další ji přidáte nebo odeberete · Enter použije"
+msgstr[1] "Zrcadlit — osa nastavena · k zrcadlení: %d · kliknutím na další ji přidáte nebo odeberete · Enter použije"
+msgstr[2] "Zrcadlit — osa nastavena · k zrcadlení: %d · kliknutím na další ji přidáte nebo odeberete · Enter použije"
# AI Translated
msgid "Move — click the entities to move"
@@ -25557,8 +28342,11 @@ msgstr "Bod náčrtu"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "Entity náčrtu: %d"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d entita náčrtu"
+msgstr[1] "%d entity náčrtu"
+msgstr[2] "%d entit náčrtu"
# AI Translated
msgid "select something first"
@@ -26095,8 +28883,10 @@ msgid "Applied edit"
msgstr "Úprava použita"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — zadejte hodnotu a stiskněte Enter (nebo Potvrdit)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — zadejte hodnotu a stiskněte Enter (nebo Potvrdit)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -26168,10 +28958,23 @@ msgstr "Odeslat na desku — přenést těleso na kartu Připravit"
msgid "Nothing to commit — add a feature first"
msgstr "Není co odeslat — nejprve přidejte prvek"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Těleso návrhu %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Všechna tělesa jsou skrytá — před odesláním nějaké zobrazte"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Sestava návrhu"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Těleso návrhu"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -26239,8 +29042,11 @@ msgstr "Neplatné: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Náhled — trojúhelníky: %zu"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Náhled — %zu trojúhelník"
+msgstr[1] "Náhled — %zu trojúhelníky"
+msgstr[2] "Náhled — %zu trojúhelníků"
# AI Translated
#, c-format, boost-format
@@ -26344,8 +29150,11 @@ msgstr "Tuto kótu nelze splnit — náčrt je přeurčený"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "Ignorované vazby, které nemohou působit na tuto geometrii (elipsa nebo křivka spline, případně kružnice nulové velikosti): %1%"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% vazba nemůže působit na tuto geometrii (elipsu nebo křivku spline, případně kružnici nulové velikosti) a je ignorována"
+msgstr[1] "%1% vazby nemohou působit na tuto geometrii (elipsu nebo křivku spline, případně kružnici nulové velikosti) a jsou ignorovány"
+msgstr[2] "%1% vazeb nemůže působit na tuto geometrii (elipsu nebo křivku spline, případně kružnici nulové velikosti) a je ignorováno"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -26403,8 +29212,11 @@ msgstr "Zkosení: vzdálenost přesahuje délku ramene, nebo se obě čáry nest
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "Odstraněné vazby, které zaoblení/zkosení zneplatnilo: %1%"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "%1% vazba, kterou zaoblení/zkosení zneplatnilo, byla odstraněna"
+msgstr[1] "%1% vazby, které zaoblení/zkosení zneplatnilo, byly odstraněny"
+msgstr[2] "%1% vazeb, které zaoblení/zkosení zneplatnilo, bylo odstraněno"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -26424,8 +29236,11 @@ msgstr "Počet kopií musí být celé číslo, 2 nebo více"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "Vazby uvolněné transformací: %1%"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "%1% vazba uvolněná transformací"
+msgstr[1] "%1% vazby uvolněné transformací"
+msgstr[2] "%1% vazeb uvolněných transformací"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26576,11 +29391,6 @@ msgstr "Zesílení povrchu"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Zesílení povrchu vyžaduje plošné těleso — nejprve nějaké vytvořte nástrojem Povrch"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Otvor"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26665,11 +29475,6 @@ msgstr "Kruhové pole"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Opakovat těleso kolem osy — nastavte počet a úhlový rozsah"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Zrcadlit"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26706,11 +29511,6 @@ msgstr "Zarovnání vyžaduje těleso — nejprve nějaké přidejte nebo import
msgid "Align the body to a picked face or plane"
msgstr "Zarovnat těleso k vybrané ploše nebo rovině"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Rovina"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -26816,11 +29616,6 @@ msgstr "Smazat těleso"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Smazat celé toto těleso — odstraní prvek, ze kterého bylo vytvořeno"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Čára"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -27135,215 +29930,6 @@ msgstr "Toto písmo nemá pro tento text žádný obrys"
msgid "Size: %.1f × %.1f mm"
msgstr "Velikost: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Primitiv"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Byla vygenerována prázdná síť"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Kvádr"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Rychle:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Šířka (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Hloubka (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Výška (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "Spodní R"
-
-# AI Translated
-msgid "Top R"
-msgstr "Horní R"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "Hlavní R"
-
-# AI Translated
-msgid "Minor R"
-msgstr "Vedlejší R"
-
-# AI Translated
-msgid "All edges"
-msgstr "Všechny hrany"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Horní hrany"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Spodní hrany"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Boční hrany"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Rozlišení sítě"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Přidat tvar"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Chybí vnější profil"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Nepodařilo se vytvořit vnější plochu"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Nepodařilo se vytvořit plochu s otvory"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Rotace selhala"
-
-# AI Translated
-msgid "Profile"
-msgstr "Profil"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Začít nový profil (pro otvory)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segmenty"
-
-# AI Translated
-msgid "Sides"
-msgstr "Strany"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Kreslete kliknutím na plátno"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Přichytit k mřížce"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Krok mřížky"
-
-# AI Translated
-msgid "Outer"
-msgstr "Vnější"
-
-# AI Translated
-msgid "closed"
-msgstr "uzavřený"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% b. %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (horní)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (přední)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (boční)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Rotace (°)"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "0 = vysunutí, >0 = rotace"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Kapsa (řez)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu uzavřený profil"
-msgstr[1] "%zu uzavřené profily"
-msgstr[2] "%zu uzavřených profilů"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Pro aktivaci nakreslete uzavřený profil"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Vymazat vše"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Prázdný výsledek"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Vysunutí: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Rotace: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Není vybrán žádný objekt"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Vytvoření plochy selhalo"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Vytvoření plochy s otvory selhalo"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Síť nástroje je prázdná"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Kapsa přidána (záporný objem)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Kapsa: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -27466,6 +30052,10 @@ msgstr "Gizmo sestavit"
msgid "Gizmo brim ears"
msgstr "Gizmo ouška lemu"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Gizmo malování texturového reliéfu"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Vertikální posuvník – Posuňte aktivní jezdec nahoru"
@@ -27700,6 +30290,12 @@ msgstr "vyžaduje válcovou plochu na obou koncích — konektor %1% je na rovin
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "vyžaduje válcovou plochu na obou koncích — konektor %1% je na zakřivené ploše"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (chybí základní rovina)"
+
# AI Translated
msgid "two points are coincident"
msgstr "dva body jsou totožné"
@@ -27728,10 +30324,31 @@ msgstr "roviny jsou rovnoběžné (bez průsečnice)"
msgid "zero-length direction"
msgstr "směr nulové délky"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "prvek pracuje s tělesem %1%, které v tomto bodě historie neexistuje"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "„%1%“ pracuje s tělesem vytvořeným prvkem, který byl smazán nebo skryt"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "„%1%“ pracuje s tělesem, které v tomto bodě historie neexistuje"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "prvek je použit pozdějším prvkem"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "„%1%“ používá „%2%“, proto nemůže být před ním"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "entity náčrtu netvoří uzavřenou smyčku"
@@ -27742,9 +30359,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Otevřeno v (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...a další otevřené konce: %1%"
+msgid "Open ends not shown: %1%"
+msgstr "Nezobrazené otevřené konce: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "rotace: osová čára už není v náčrtu — vyberte osu znovu"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "rotace: osová čára nemá délku"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -27892,6 +30518,30 @@ msgstr "vytvoření obrysu otvoru selhalo"
msgid "hole cut failed"
msgstr "vyříznutí otvoru selhalo"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "závit: průměr musí být alespoň 1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "závit: stoupání musí být větší než 0,1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "závit: hloubka musí být mezi 0 a 0,7 × stoupání"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "závit: hloubka je pro tento průměr příliš velká"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "závit: délka musí být větší než polovina stoupání"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "závit: příliš mnoho otáček (délka / stoupání musí být menší než 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "vnitřní závit vyžaduje těleso"
@@ -27952,6 +30602,22 @@ msgstr "odstranění plochy selhalo"
msgid "delete_face produced no geometry"
msgstr "odstranění plochy nevytvořilo žádnou geometrii"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "booleovská operace: žádné cílové těleso"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "booleovská operace: žádné nástrojové těleso — vyberte druhé těleso"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "booleovská operace: cílové a nástrojové těleso jsou stejné těleso"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "booleovská operace: těleso nemá žádnou geometrii"
+
# AI Translated
msgid "boolean operation failed"
msgstr "booleovská operace selhala"
@@ -28279,6 +30945,10 @@ msgstr "Obrázky modelu"
msgid "Auxiliaries"
msgstr "Doplňkové soubory"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Čisticí věž pásu"
+
# AI Translated
msgid "Project Filament List"
msgstr "Seznam filamentů projektu"
@@ -28313,8 +30983,20 @@ msgstr "K rozkladu jsou potřeba alespoň dva filamenty stejného typu materiál
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "Seznam materiálů podporuje nejvýše %1% barev. Po rozkladu barvy %2% by počet materiálů překročil %1%. Před rozkladem prosím odstraňte nepoužité filamenty na hlavní obrazovce."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Seznam materiálů podporuje nejvýše %1% barvu. Po rozkladu seznamu materiálů by počet materiálů překročil %1%. Před rozkladem prosím odstraňte nepoužité filamenty na hlavní obrazovce."
+msgstr[1] "Seznam materiálů podporuje nejvýše %1% barvy. Po rozkladu seznamu materiálů by počet materiálů překročil %1%. Před rozkladem prosím odstraňte nepoužité filamenty na hlavní obrazovce."
+msgstr[2] "Seznam materiálů podporuje nejvýše %1% barev. Po rozkladu seznamu materiálů by počet materiálů překročil %1%. Před rozkladem prosím odstraňte nepoužité filamenty na hlavní obrazovce."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Seznam materiálů podporuje nejvýše %1% barvu. Po rozkladu barvy %2% by počet materiálů překročil %1%. Před rozkladem prosím odstraňte nepoužité filamenty na hlavní obrazovce."
+msgstr[1] "Seznam materiálů podporuje nejvýše %1% barvy. Po rozkladu barvy %2% by počet materiálů překročil %1%. Před rozkladem prosím odstraňte nepoužité filamenty na hlavní obrazovce."
+msgstr[2] "Seznam materiálů podporuje nejvýše %1% barev. Po rozkladu barvy %2% by počet materiálů překročil %1%. Před rozkladem prosím odstraňte nepoužité filamenty na hlavní obrazovce."
# AI Translated
msgid "Cyan"
@@ -28344,6 +31026,13 @@ msgstr "Zelená"
msgid "Blue"
msgstr "Modrá"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -28351,7 +31040,1236 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "Aktuální seznam filamentů neobsahuje %s. Filament projektu, který míchaný filament vyžaduje, bude po rozkladu vytvořen automaticky."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "Aktuální seznam filamentů neobsahuje %s. Filament projektu, který míchaný filament vyžaduje, bude po rozkladu vytvořen automaticky."
+msgstr[1] "Aktuální seznam filamentů neobsahuje %s. Filamenty projektu, které míchaný filament vyžaduje, budou po rozkladu vytvořeny automaticky."
+msgstr[2] "Aktuální seznam filamentů neobsahuje %s. Filamenty projektu, které míchaný filament vyžaduje, budou po rozkladu vytvořeny automaticky."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Neprůhlednost"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -28447,10 +32365,6 @@ msgstr "Moje nastavení"
msgid "Custom Printer Setup"
msgstr "Nastavení vlastní tiskárny"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Vlastní tiskárna"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Definujte vlastní profil tiskárny"
@@ -28720,6 +32634,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Zapečení"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Zadat přesnou hodnotu do posuvníku"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Ikona úprav na pravém konci posuvníku"
+
# AI Translated
msgid "Texture displacement"
msgstr "Texturový reliéf"
@@ -28856,6 +32778,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Odebrat texturu"
+# AI Translated
+msgid "Adjust image"
+msgstr "Upravit obrázek"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Jas"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Kontrast"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Ostrost"
+
+# AI Translated
+msgid "Blur"
+msgstr "Rozostření"
+
+# AI Translated
+msgid "Hue"
+msgstr "Odstín"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Zvýrazní nejjemnější detaily obrázku. Použije se až po Rozostření, takže je lze kombinovat: nejprve rozostřete zrnění a poté zaostřete hrany, které zůstanou."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Rozostří samotný obrázek. Vlastní posuvník Vyhlazování vrstvy změkčí reliéf bez úpravy obrázku a je vhodné sáhnout nejdřív po něm."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Tato textura je ve stupních šedi, takže nemá žádný odstín, který by šlo posunout."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Model se aktualizuje po uvolnění posuvníku. Uložit jako kopii zapíše upravený obrázek do vaší knihovny textur a tato vrstva ho začne používat."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Uložit jako kopii"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Odebrat vrstvu texturového reliéfu"
@@ -28992,6 +32958,15 @@ msgstr "Zapíše každou zachycenou fázi jako soubor OBJ, aby je bylo možné o
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Namalovanou oblast se nepodařilo přenést na přesíťovaný model, proto nebylo nic změněno. Přepněte do režimu Profi a přesíťujte model před malováním."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Rozsah: %1% až %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Zadejte hodnotu místo tažení. Totéž provede Ctrl+kliknutí na posuvník."
+
# AI Translated
msgid "Pro"
msgstr "Profi"
@@ -29098,8 +33073,8 @@ msgid "Click a triangle to paint it"
msgstr "Kliknutím na trojúhelník jej namalujete"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Vyžaduje aktivní vrstvu mapovanou pomocí Rozbalení (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Pouze pro vrstvu mapovanou pomocí Rozbalit (LSCM) - pro použití tohoto zobrazení nastavte Mapování aktivní vrstvy na Rozbalit."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -29114,16 +33089,16 @@ msgid "Checker"
msgstr "Šachovnice"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Šachovnice - testovací mřížka místo textury. Kde čtverce zůstávají čtvercové, není textura zkreslená; kde se protahují, protáhne se i textura"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Šachovnice - testovací mřížka místo textury. Kde čtverce zůstávají čtvercové, textura není zkreslená; kde se natahují, natáhne se i textura. Otevře editor UV, pokud je zavřený"
# AI Translated
msgid "Distortion"
msgstr "Zkreslení"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Zkreslení - teplotní mapa protažení rozbalení od modré po červenou"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Zkreslení - teplotní mapa natažení od modré po červenou přes rozbalení. Otevře editor UV, pokud je zavřený"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -29149,6 +33124,10 @@ msgstr "Vyberte pro tuto vrstvu jiný obrázek. Malba, hloubka a dláždění z
msgid "not painted"
msgstr "nenamalováno"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Jas, kontrast, ostrost, rozostření a odstín, zobrazené na obrázku i na modelu během nastavování. Uložit jako kopii zapíše výsledek do vaší knihovny textur a tato vrstva ho začne používat."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Posunout nahoru - použije se dříve"
@@ -29169,10 +33148,20 @@ msgstr "Výška reliéfu: o kolik bílá barva v textuře zvedne povrch, v milim
msgid "Tile size"
msgstr "Velikost dlaždice"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Mapováno podle vlastního rozložení UV modelu, které už je umístěním - jedna kopie textury ho pokryje přesně, takže není třeba nastavovat velikost dlaždice."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Jak široká je jedna kopie textury na modelu. Menší hodnota opakuje vzor častěji a zjemňuje jeho detaily; při vypnutém Dláždění je to velikost jediné kopie."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Otočí texturu na povrchu, ve stupních - pro zarovnání vzoru s hranou modelu."
@@ -29240,28 +33229,36 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Prokládá dva filamenty, aby napodobil barvy mezi nimi, takže hrstka filamentů pokryje fotografii nebo barevný přechod. Obrázek z plochých barev se vytiskne stejně v obou případech. Vypnuto použije pro každou oblast jeden filament."
# AI Translated
-msgid "Mix by"
-msgstr "Míchat podle"
+msgid "Mixed colors"
+msgstr "Míchané barvy"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Povrch"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Nejvyšší počet míchaných filamentů, které může zapečení přidat. Vybírají se z barev textury a vytvoří se pouze ty, které zapečení skutečně použije."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Vrstvy: dva filamenty se střídají po tiskových vrstvách, což se na svislých plochách plynule prolíná, ale na vodorovných plochách mizí, protože tam je celá vrstva jediným pruhem.\n"
-"Povrch: jemná šachovnice po povrchu, která funguje v jakémkoli úhlu, ale může působit spíše jako textura než jako prolnutí.\n"
-"Automaticky: vrstvy na svislých plochách; vodorovné plochy dostanou nejbližší jednotlivý filament, protože šachovnice by se na nich ukázala jako vzor."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "Tisknutelné barvy: %1% (z %2% filamentů)"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "z %1% filamentu"
+msgstr[1] "z %1% filamentů"
+msgstr[2] "z %1% filamentů"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% tisknutelná barva %2%"
+msgstr[1] "%1% tisknutelné barvy %2%"
+msgstr[2] "%1% tisknutelných barev %2%"
# AI Translated
msgid "Denoise"
@@ -29312,6 +33309,18 @@ msgstr "Z pohledu"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Z pohledu - promítá přímo na namalovanou oblast z místa, odkud se díváte, jako diaprojektor."
+# AI Translated
+msgid "Model UV"
+msgstr "UV modelu"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "UV modelu - použije souřadnice textury, se kterými model přišel, takže textura vytvořená pro tento model dopadne přesně tam, kam byla namalována. Nic se nerozbaluje a Velikost dlaždice se neuplatní: umístěním je vlastní rozložení modelu."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Tento model nemá žádné vlastní souřadnice textury. Podle nich lze mapovat jen model importovaný s kanálem UV - například texturovaný OBJ."
+
# AI Translated
msgid "Open UV editor"
msgstr "Otevřít editor UV"
@@ -29326,8 +33335,11 @@ msgstr "Zatím nerozbaleno"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "Ostrovy: %1%"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% ostrov"
+msgstr[1] "%1% ostrovy"
+msgstr[2] "%1% ostrovů"
# AI Translated
msgid "Capture current view"
@@ -29357,10 +33369,6 @@ msgstr "Projekční rámeček"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Otevře okno, které přetáhnete přes model. Co skrz něj vidíte, dostane texturu, a jeho okraj se stane okrajem projekce."
-# AI Translated
-msgid "Opacity"
-msgstr "Neprůhlednost"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Jak plné okno rámečku vypadá, když jej umísťujete. Snižte, abyste skrz něj viděli model; výsledek to neovlivní."
@@ -29414,6 +33422,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Přidat"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Nahradit"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -29433,8 +33446,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Základní vrstva pod sebou nemá nic, s čím by se kombinovala, takže vždy přidává."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Co tato vrstva dělá tam, kde překrývá vrstvy pod ní. Přidat a Odečíst reliéf navrší nebo odeberou. Násobit a Dělit škálují to, co je pod ní, čímž se tato vrstva stane maskou nad nimi - tam Hloubka působí jako síla a 1 mm ponechá bílé oblasti beze změny."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Co tato vrstva dělá tam, kde překrývá vrstvy pod ní. Přidat a Odečíst reliéf navrší nebo odeberou. Nahradit je přepíše, takže tam, kde je vrstva namalována, zůstane jen její reliéf. Násobit a Dělit škálují to, co je pod ní, čímž se tato vrstva stane maskou nad nimi - tam Hloubka působí jako síla a 1 mm ponechá bílé oblasti beze změny."
# AI Translated
msgid "Adjust placement"
@@ -29458,8 +33471,11 @@ msgstr "Více nastavení"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Využity všechny vrstvy (%1%)"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Využita jediná vrstva (%1%)"
+msgstr[1] "Využity všechny vrstvy (%1%)"
+msgstr[2] "Využito všech vrstev (%1%)"
# AI Translated
msgid "Add layer"
@@ -29539,8 +33555,11 @@ msgstr "Rozpočet trojúhelníků: nastavuje se pomocí Trojúhelníky níže."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Náhled: %1% trojúhelníků"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Náhled: %1% trojúhelník"
+msgstr[1] "Náhled: %1% trojúhelníky"
+msgstr[2] "Náhled: %1% trojúhelníků"
# AI Translated
msgid "Steps"
@@ -29582,6 +33601,12 @@ msgstr "Přesíťování"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Velikost trojúhelníků, se kterou se celý model znovu sestaví, v milimetrech. Reliéf funguje nejlépe na rovnoměrné síti; tímto ji vytvoříte z nerovnoměrného importu."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Zachovat ostré hrany"
@@ -29716,14 +33741,6 @@ msgstr "Potřeba přibližně %1% trojúhelníků, rozpočet %2% - zapečení s
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Kolik tisíc trojúhelníků smí zjemnění do modelu přidat. Nejhůře sedící trojúhelník se vždy dělí jako první, takže i běh, který vyčerpá vše, je utratí tam, kde je to nejvíc vidět. Zvyšte, pokud reliéf stále vypadá hrubě."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Zastaví zapečení. Vše, co již bylo dokončeno, zůstane na modelu a lze to vrátit zpět."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Zavře nástroj bez zapečení. Vaše malba, vrstvy a nastavení zůstanou u modelu."
-
# AI Translated
msgid "Preparing..."
msgstr "Příprava..."
@@ -29748,35 +33765,61 @@ msgstr "Převede namalované výškové mapy na skutečnou geometrii posunem ji
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Převede namalované výškové mapy na skutečnou geometrii. Síť se nejprve přesíťuje na rovnoměrnou hustotu a zjemní tam, kde se textura ohýbá, aby měl detail na čem ležet - vše v jednom kroku."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Zastaví zapečení. Vše, co již bylo dokončeno, zůstane na modelu a lze to vrátit zpět."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Zavře nástroj bez zapečení. Vaše malba, vrstvy a nastavení zůstanou u modelu."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Model: %1% trojúhelníků - zapečení zjemní na rozlišení výše, až do svého rozpočtu"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Model: %1% trojúhelník - zapečení zjemní na rozlišení výše, až do svého rozpočtu"
+msgstr[1] "Model: %1% trojúhelníky - zapečení zjemní na rozlišení výše, až do svého rozpočtu"
+msgstr[2] "Model: %1% trojúhelníků - zapečení zjemní na rozlišení výše, až do svého rozpočtu"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Zapečení posouvá stávající vrcholy - model zůstane na %1% trojúhelníku"
+msgstr[1] "Zapečení posouvá stávající vrcholy - model zůstane na %1% trojúhelnících"
+msgstr[2] "Zapečení posouvá stávající vrcholy - model zůstane na %1% trojúhelnících"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Zapečení posouvá stávající vrcholy - model zůstane na %1% trojúhelnících"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Výsledek zapečení až ~%1% k trojúhelníku"
+msgstr[1] "Výsledek zapečení až ~%1% k trojúhelníků"
+msgstr[2] "Výsledek zapečení až ~%1% k trojúhelníků"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Výsledek zapečení až ~%1% k trojúhelníků"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "Nenamalované vrstvy: %1%, přeskočeno"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% vrstva nenamalována, přeskočena"
+msgstr[1] "%1% vrstvy nenamalovány, přeskočeny"
+msgstr[2] "%1% vrstev nenamalováno, přeskočeno"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1%: nenamalováno, přeskočeno"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1%: nenamalováno, přeskočeno"
+msgstr[1] "%1%: nenamalováno, přeskočeno"
+msgstr[2] "%1%: nenamalováno, přeskočeno"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29794,6 +33837,10 @@ msgstr "Úprava texturového reliéfu"
msgid "Choose SLA archive:"
msgstr "Vyberte archiv SLA:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "Archivní soubory SL1 / SL1S"
+
# AI Translated
msgid "Import file"
msgstr "Importovat soubor"
@@ -29964,6 +34011,34 @@ msgstr "Pluginy filamentu"
msgid "Printer plugins"
msgstr "Pluginy tiskárny"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Tato předvolba nepoužívá žádné schopnosti pluginů"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Schopnosti používané touto předvolbou"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Konfigurace schopnosti (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Konfigurace pluginu"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Zahodit přepsání v této předvolbě a znovu použít globální konfiguraci"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Obnovit výchozí"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "Neplatný JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "Konfigurace není platný JSON. Vaše změny nebyly uloženy."
@@ -29983,10 +34058,6 @@ msgstr ""
"\n"
"Tím se zahodí přepsání v předvolbě a použije se globální konfigurace."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Obnovit výchozí"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Používá se globální konfigurace. Pro trvalé uložení uložte předvolbu."
@@ -30012,10 +34083,6 @@ msgstr "Zrušit odběr"
msgid "Overwrite Plugin"
msgstr "Přepsat plugin"
-# AI Translated
-msgid "Show in folder"
-msgstr "Zobrazit ve složce"
-
# AI Translated
msgid "Reinstall"
msgstr "Přeinstalovat"
@@ -30024,6 +34091,10 @@ msgstr "Přeinstalovat"
msgid "Delete cache and reload"
msgstr "Smazat mezipaměť a znovu načíst"
+# AI Translated
+msgid "No description."
+msgstr "Bez popisu."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Vyberte balíček pluginu .py nebo .whl."
@@ -30056,6 +34127,296 @@ msgstr "Instalace pluginu"
msgid "Installed \"%s\"."
msgstr "Nainstalováno: „%s“."
+# AI Translated
+msgid "Search plugins"
+msgstr "Hledat pluginy"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Vymazat hledání"
+
+# AI Translated
+msgid "Match case"
+msgstr "Rozlišovat velikost písmen"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Pouze celá slova"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Další možnosti instalace pluginů"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Nainstalovat plugin"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Nainstalovat místní plugin"
+
+# AI Translated
+msgid "Activate"
+msgstr "Aktivovat"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Seřadit podle názvu"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Seřadit podle verze"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Verze pluginu"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Seřadit podle zdroje"
+
+# AI Translated
+msgid "Source"
+msgstr "Zdroj"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Seřadit podle stavu"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Stav"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Tažením změníte velikost; dvojitým kliknutím ji obnovíte"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Změnit velikost seznamu pluginů"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Podrobnosti pluginu"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Informace o pluginu"
+
+# AI Translated
+msgid "Description"
+msgstr "Popis"
+
+# AI Translated
+msgid "Config"
+msgstr "Konfigurace"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Seznam změn"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnostika"
+
+# AI Translated
+# Needs human review: Row label in the Plugins dialog info tab listing the plugin's capability types (Importer, Exporter, Script, ...).
+msgid "Types"
+msgstr "Typy"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Nainstalovaná verze"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Nejnovější verze"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Aktualizovat na nejnovější verzi"
+
+# AI Translated
+msgid "No description available"
+msgstr "Popis není k dispozici"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Vyberte plugin pro konfiguraci jeho schopností"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Konfigurovatelné schopnosti"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Zahodit nastavení uložené pro tuto schopnost a obnovit výchozí hodnoty pluginu"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Seznam změn pluginu"
+
+# AI Translated
+msgid "Date"
+msgstr "Datum"
+
+# AI Translated
+msgid "Changes"
+msgstr "Změny"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Seznam změn není k dispozici"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Nebyly zjištěny žádné problémy"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Nebyly nalezeny žádné pluginy"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Hledanému výrazu „%s“ neodpovídají žádné pluginy"
+
+# AI Translated
+# Needs human review: Plugin Source value in the Plugins dialog (Mine / Subscribed / Orphaned / Local): a plugin the user published; masculine to agree with 'plugin'.
+msgid "Mine"
+msgstr "Můj"
+
+# AI Translated
+# Needs human review: Plugin source filter label (Subscribed / Local / Mine); check the gender agrees with the noun it filters.
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Odebíraný"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Osiřelý"
+
+# AI Translated
+# Needs human review: Plugin source filter label (Subscribed / Local / Mine); check the gender agrees with the noun it filters.
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Místní"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Některé schopnosti pluginu jsou povoleny"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Sbalit schopnosti %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Rozbalit schopnosti %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Sbalit schopnosti"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Rozbalit schopnosti"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Otevřít tento plugin v prohlížeči"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Schopnosti: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Schopnosti"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Spustit „%s“"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Povolit %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Bez oprávnění k aktualizacím"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Načítání pluginu…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Tento plugin neposkytuje žádné schopnosti"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Pro konfiguraci schopností tento plugin aktivujte"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Zobrazit v OrcaCloud zde "
+
+# AI Translated
+msgid "Activated"
+msgstr "Aktivní"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Chyba za běhu"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Neaktivní"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Tento plugin je aktivní a připravený k použití."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Tento plugin se stále načítá."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Tento plugin je zablokován, dokud nebude jeho chyba opravena."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Tento plugin je načten, ale některá schopnost nahlásila chybu."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Tento plugin je neaktivní. Aktivujte jej, aby se nainstaloval nebo načetl."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Vyberte plugin pro zobrazení jeho stavu a podrobností."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Osiřelý: Tento plugin již není odebírán ani dostupný v OrcaCloud. Místní kopie zůstává nainstalovaná a lze ji dál používat."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Je k dispozici novější verze pluginu."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Cloudové aktualizace nejsou k dispozici, protože tento plugin nemá oprávnění k aktualizacím."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -30272,6 +34633,58 @@ msgstr "Opětovné načtení pluginu se nezdařilo."
msgid "Reloaded \"%s\"."
msgstr "Znovu načteno: „%s“."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Připojení tiskárny"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Pro zobrazení zařízení nastavte připojení tiskárny."
+
+# AI Translated
+msgid "No model information"
+msgstr "Žádné informace o modelu"
+
+# AI Translated
+msgid "Edit Project Info"
+msgstr "Upravit informace o projektu"
+
+msgid "Model Information"
+msgstr "Informace o modelu"
+
+msgid "Accessories"
+msgstr "Příslušenství"
+
+msgid "Profile Information"
+msgstr "Informace o profilu"
+
+msgid "Model name"
+msgstr "Název modelu"
+
+msgid "Created by"
+msgstr "Vytvořil"
+
+msgid "Remixed by"
+msgstr "Přepracováno"
+
+msgid "Shared by"
+msgstr "Sdíleno"
+
+msgid "Model description"
+msgstr "Popis modelu"
+
+msgid "BOM"
+msgstr "Seznam součástek (BOM)"
+
+msgid "Profile name"
+msgstr "Název profilu"
+
+msgid "Profile Author"
+msgstr "Autor profilu"
+
+msgid "Profile description"
+msgstr "Popis profilu"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Nastavení režimu čištění"
@@ -30296,6 +34709,19 @@ msgstr "Snižuje odpad při čištění a tiskne rychleji. Může způsobit mír
msgid "Terminal"
msgstr "Terminál"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... nebo uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Terminál pluginů je připraven."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Proces skončil s kódem: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Příkaz již běží."
@@ -30342,8 +34768,11 @@ msgstr "Nové míchané filamenty"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Projekt podporuje nejvýše %d filamentů. Nadbývající filamenty budou zahozeny."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Projekt podporuje nejvýše %d filament. Nadbývající filamenty budou zahozeny."
+msgstr[1] "Projekt podporuje nejvýše %d filamenty. Nadbývající filamenty budou zahozeny."
+msgstr[2] "Projekt podporuje nejvýše %d filamentů. Nadbývající filamenty budou zahozeny."
# AI Translated
msgid "Import Model"
@@ -30430,8 +34859,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Výpočet se nezdařil. Upravte prosím parametry a zkuste to znovu."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "Síť obsahuje non-manifold geometrii nebo otevřené okraje. Můžete ji importovat tak, jak je, nebo ji před importem opravit pomocí služby 3D oprav systému Windows."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "Síť obsahuje non-manifold geometrii nebo otevřené okraje. Můžete ji importovat tak, jak je, nebo ji před importem opravit."
# AI Translated
msgid "Mesh repair"
@@ -30445,14 +34874,6 @@ msgstr "Importovat bez opravy"
msgid "Repair and import"
msgstr "Opravit a importovat"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Upozorňujeme, že síť obsahuje non-manifold geometrii nebo otevřené okraje."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Problém se sítí"
-
# AI Translated
msgid "The selected image is empty."
msgstr "Vybraný obrázek je prázdný."
@@ -30461,6 +34882,14 @@ msgstr "Vybraný obrázek je prázdný."
msgid "Failed to prepare the texture for use."
msgstr "Texturu se nepodařilo připravit k použití."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Složku pro importované textury se nepodařilo vytvořit."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Importovanou texturu se nepodařilo uložit."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Odstranit lze pouze vlastní importované textury."
@@ -30469,18 +34898,10 @@ msgstr "Odstranit lze pouze vlastní importované textury."
msgid "Could not delete the texture file."
msgstr "Soubor textury se nepodařilo odstranit."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Složku pro importované textury se nepodařilo vytvořit."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Vybraný obrázek se nepodařilo načíst."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Importovanou texturu se nepodařilo uložit."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Soubor textury se nepodařilo načíst."
@@ -30524,8 +34945,11 @@ msgstr "Zvolte Rozbalení jako mapování vrstvy textury, abyste zde mohli uprav
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Vybrané vrcholy: %d | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Vybrán %d vrchol | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat"
+msgstr[1] "Vybrány %d vrcholy | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat"
+msgstr[2] "Vybráno %d vrcholů | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30533,8 +34957,11 @@ msgstr "Režim vrcholů: tažením vrcholu změníte tvar | Shift/Ctrl + klikn
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Vybrané hrany: %d | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Vybrána %d hrana | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat"
+msgstr[1] "Vybrány %d hrany | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat"
+msgstr[2] "Vybráno %d hran | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30542,8 +34969,11 @@ msgstr "Režim hran: tažením hrany ostrova změníte tvar | Shift/Ctrl + kli
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "Vybrané ostrovy: %d | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat, R/S = otočit/změnit měřítko primárního"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "Vybrán %d ostrov | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat, R/S = otočit/změnit měřítko primárního"
+msgstr[1] "Vybrány %d ostrovy | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat, R/S = otočit/změnit měřítko primárního"
+msgstr[2] "Vybráno %d ostrovů | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat, R/S = otočit/změnit měřítko primárního"
# AI Translated
#, c-format, boost-format
@@ -30562,6 +34992,10 @@ msgstr " | přichycení ZAP"
msgid "Change texture - choose another one from the texture library"
msgstr "Změnit texturu - vyberte jinou z knihovny textur"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Velikost dlaždice aktivní vrstvy: jakou část modelu pokryje jedno opakování textury. Plátno se měří v dlaždicích, takže jedna buňka mřížky odpovídá jednomu opakování. Změníte ji volbou Velikost dlaždice v nastavení vrstvy."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Výšková mapa - zobrazit texturu vrstvy pod ostrovy"
@@ -30595,16 +35029,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Rozloží rozbalení jako souvislou síť: kusy, které sdílejí hranu, se rozloží vedle sebe (z krychle vznikne spojená síť místo šesti volných čtverců). Zůstávají samostatnými ostrovy, takže kterýkoli z nich můžete poté stále ručně přesunout."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Ostrov - přesouvání, otáčení a změna měřítka celých ostrovů"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Ostrov - práce s celými ostrovy. Kliknutím ostrov vyberte, pak jej tažením přesuňte, tažením pravým tlačítkem otočte, nebo stiskněte R pro otočení a S pro změnu měřítka myší (potvrďte kliknutím nebo Enterem, zrušte klávesou Esc)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Vrchol - tažením vrcholů měníte tvar; Shift/Ctrl pro vícenásobný výběr"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Vrchol - tažením vrcholů ručně změníte tvar ostrova; Shift přidává do výběru, Ctrl jednotlivý vrchol do výběru přidá nebo z něj odebere."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Hrana - tažením hran měníte tvar; Shift/Ctrl pro vícenásobný výběr"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Hrana - tažením hran ručně změníte tvar ostrova; Shift přidává do výběru, Ctrl jednotlivou hranu do výběru přidá nebo z něj odebere."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30643,8 +35077,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Přichycení - při tažení jednoho ostrova k druhému je k sobě přichytí"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Zarámovat všechny ostrovy (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Zarámovat všechny ostrovy tak, aby se všechny vešly do zobrazení (Home nebo F).\n"
+"Jinde na plátně: kolečkem přibližujete kolem kurzoru a tažením prostředním tlačítkem - nebo tažením v prázdném místě - posouváte zobrazení."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Co je vybráno a přesné hodnoty posunu, otočení nebo změny měřítka během tažení."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30655,6 +35097,10 @@ msgstr "Žádná vrstva mapovaná pomocí Rozbalení"
msgid "%.1f mm tile"
msgstr "dlaždice %.1f mm"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Panel sleduje aktivní vrstvu textury a tato vrstva musí být mapována pomocí Rozbalit (LSCM). Přidejte vrstvu a nastavte její Mapování na Rozbalit."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Zastaralé - malba, švy nebo úhel švu se od vytvoření tohoto rozbalení změnily. Stiskněte pro nové rozbalení."
@@ -30663,19 +35109,72 @@ msgstr "Zastaralé - malba, švy nebo úhel švu se od vytvoření tohoto rozbal
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Zploští namalovanou oblast do UV ostrovů. Počítá se jen po stisknutí tohoto tlačítka, ne při každé úpravě - proto nejprve namalujte, změňte úhel švu nebo označte švy a pak stiskněte Rozbalit."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Nejprve zapněte Označit švy - Dráha je rychlejší způsob jejich označování."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Na této vrstvě nejsou označeny žádné švy."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Žádné ostrovy nebyly ručně přetvarovány, takže není co zahodit."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "Ostrovy: %d, plochy: %s"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d ostrov"
+msgstr[1] "%d ostrovy"
+msgstr[2] "%d ostrovů"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s plocha"
+msgstr[1] "%s plochy"
+msgstr[2] "%s ploch"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Jak dopadla namalovaná oblast po rozbalení: počet samostatných kusů, na které byla rozříznuta (u švů a u hran ostřejších než úhel švu), a kolik trojúhelníků celkem obsahují."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Nejprve stiskněte Rozbalit - zatím nejsou žádné ostrovy, se kterými by šlo pracovat."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Nejprve klikněte na ostrov na plátně v režimu Ostrov."
+
+# AI Translated
+# Needs human review: Short badge for a published project, kept as the English abbreviation (about three letters); check whether a Czech abbreviation is wanted.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "PUB"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Nepřihlášeno"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Síťový plug-in Bambu nebyl zjištěn. Klikněte zde k instalaci."
+
+msgid "Create new project"
+msgstr "Vytvořit nový projekt"
+
+msgid "Recently opened"
+msgstr "Nedávno otevřeno"
+
+msgid "Open Containing Folder"
+msgstr "Otevřít složku obsahující"
# AI Translated
msgid "Forward"
msgstr "Vpřed"
-# AI Translated
-msgid "Tools"
-msgstr "Nástroje"
-
# AI Translated
msgid "View Source"
msgstr "Zobrazit zdroj"
@@ -30747,6 +35246,75 @@ msgstr "Načíst %1% do: %2%"
msgid "Load %s"
msgstr "Načíst %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Agenta tiskárny „%1%“ nelze povolit: ID agenta „%2%“ je již registrováno schopností „%3%“ z pluginu „%4%“."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Agenta tiskárny „%1%“ nelze povolit: ID agenta „%2%“ je již zaregistrováno agentem „%3%“."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Soubor nahrán"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Nahrávání G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Spouštění tisku..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Tisk zahájen"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Nahrávání..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Verze síťové knihovny není zadána"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Síťová knihovna nebyla nalezena"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Nepodařilo se načíst síťovou knihovnu"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Síťovou knihovnu se nepodařilo načíst"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Starší řada pluginů. Funkce, které vyžadují podporu novějšího pluginu, například snímky selhání tisku v dialogu chyb zařízení, nejsou dostupné."
+
+# AI Translated
+msgid "unknown name"
+msgstr "neznámý název"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"Plugin „%s“ žádá o přístup ke čtení v souborovém systému:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Oprávnění pluginu"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -30761,36 +35329,72 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin „%s“ žádá o čtení následujícího souboru:\n"
+"%s"
+msgstr[1] ""
+"Plugin „%s“ žádá o čtení následujících souborů:\n"
+"%s"
+msgstr[2] ""
"Plugin „%s“ žádá o čtení následujících souborů:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin „%s“ žádá o čtení/zápis následujícího souboru:\n"
+"%s"
+msgstr[1] ""
+"Plugin „%s“ žádá o čtení/zápis následujících souborů:\n"
+"%s"
+msgstr[2] ""
"Plugin „%s“ žádá o čtení/zápis následujících souborů:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin „%s“ žádá o vytvoření následujícího souboru:\n"
+"%s"
+msgstr[1] ""
+"Plugin „%s“ žádá o vytvoření následujících souborů:\n"
+"%s"
+msgstr[2] ""
"Plugin „%s“ žádá o vytvoření následujících souborů:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin „%s“ žádá o odstranění následujícího souboru:\n"
+"%s"
+msgstr[1] ""
+"Plugin „%s“ žádá o odstranění následujících souborů:\n"
+"%s"
+msgstr[2] ""
"Plugin „%s“ žádá o odstranění následujících souborů:\n"
"%s"
@@ -30815,10 +35419,33 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"Plugin „%s“ žádá o spuštění následujícího příkazu:\n"
+"%s"
+msgstr[1] ""
+"Plugin „%s“ žádá o spuštění následujících příkazů:\n"
+"%s"
+msgstr[2] ""
+"Plugin „%s“ žádá o spuštění následujících příkazů:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "Plugin „%s“ žádá o oprávnění vytvořit vlákno."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"Plugin „%s“ žádá o spuštění následujících příkazů:\n"
+"Plugin „%s“ žádá o nahrazení běžící aplikace tímto:\n"
"%s"
# AI Translated
@@ -30830,6 +35457,47 @@ msgstr "Plugin „%s“ žádá o oprávnění pro auditní událost Pythonu „
msgid "Plugin permission request"
msgstr "Žádost pluginu o oprávnění"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "Předvolba obsahuje neplatný JSON konfigurace schopností pluginu."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "Konfigurace schopností pluginu v předvolbě není pole a nelze ji upravit."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Připojení tiskárny"
+
+# AI Translated
+msgid "Pages"
+msgstr "Stránky"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Analýza"
+
+# AI Translated
+msgid "Importer"
+msgstr "Importér"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Exportér"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Vizualizace"
+
+# AI Translated
+msgid "Script"
+msgstr "Skript"
+
+# AI Translated
+# Needs human review: Plugin capability type label (PluginConfig.cpp), next to Importer / Exporter / Script: a plugin step inside the slicing pipeline. Check 'Proces slicování' is clear enough.
+msgid "Slicing Pipeline"
+msgstr "Proces slicování"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "Konfigurační rozhraní pluginu bylo prázdné. Zobrazuje se výchozí editor."
@@ -30852,8 +35520,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Konfiguraci se nepodařilo zapsat na disk. Nic nebylo změněno."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Instalace pluginu se nezdařila"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Instalace pluginu se nezdařila: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: nainstalovaný plugin nebyl v katalogu nalezen."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "Klíč cloudového pluginu postrádá UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Nepodařilo se přihlásit k odběru cloudového pluginu, další informace najdete v logu."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Odběr lze zrušit pouze u cloudových pluginů."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Nepodařilo se zrušit odběr pluginu, další informace najdete v logu."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Nepodařilo se získat adresu URL ke stažení pluginu (výsledek %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Nemáte oprávnění stáhnout tento cloudový plugin."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Pro tento operační systém není k dispozici žádný balíček pluginu."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "Vybraná verze pluginu nebyla nalezena."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "Verze pluginu %1% nebyla nalezena."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Cloudový plugin nebyl nalezen."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Stažení cloudového pluginu nebylo nalezeno: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Stažení cloudového pluginu nebylo nalezeno."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Pro tento plugin není k dispozici žádná adresa URL ke stažení. Zkontrolujte prosím chyby v logu."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Nepodařilo se stáhnout plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Stažení pluginu selhalo se stavem HTTP %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Stažení pluginu vrátilo prázdná data."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Nepodařilo se vytvořit dočasný soubor pro stažení pluginu."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Nepodařilo se zapsat data pluginu do dočasného souboru."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Nepodařilo se určit složku pluginu: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Nepodařilo se odstranit složku pluginu %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Adresář pluginu neexistuje: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "Adresář pluginu obsahuje více souborů .py: %1% a %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "Adresář pluginu obsahuje více souborů .whl: %1% a %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "Adresář pluginu obsahuje vstupní soubory .py i .whl"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "Adresář pluginu neobsahuje vstupní soubor .py ani .whl"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Chyba pluginu slicovacího řetězce „%1%“: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Balíček pluginu musí být soubor .py nebo .whl, zadáno: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Nepodařilo se rozbalit závislost pluginu .whl %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Nepodařilo se přidat závislost .whl do sys.path: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Interpret Pythonu není inicializován: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Manifest pluginu je neplatný: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Nepodařilo se nainstalovat závislosti pluginu: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Nepodařilo se načíst modul pluginu: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Registrace pluginu se nezdařila: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Modul pluginu nezaregistroval žádné schopnosti"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Plugin deklaruje duplicitní schopnost „%1%“ pro typ %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Materializace schopností pluginu se nezdařila: %1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "Materializace schopností pluginu se nezdařila"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Funkce on_load pluginu selhala: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Funkce on_load pluginu selhala"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Balíček pluginu není soubor: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "UUID cloudového pluginu není platný identifikátor: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Nepodařilo se vytvořit adresář pluginu %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Nepodařilo se zálohovat existující plugin %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Nepodařilo se zkopírovat soubor pluginu do %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Nepodařilo se zapsat stav instalace pluginu: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Balíček pluginu je již načten: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Kolize schopností pro typ %1% a název „%2%“"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Zjištěn duplicitní klíč pluginu: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Načítání pluginu stále probíhá"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Plugin je neplatný: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Plugin nebyl nalezen: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Neočekávaná chyba načtení pluginu: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Neočekávaná chyba načtení pluginu"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Manifest pluginu nebyl nalezen: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Nepodařilo se načíst pluginy z cloudu. Podrobnosti najdete v logu."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Pro instalaci tohoto pluginu se přihlaste k OrcaCloud."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "Odebíraný cloudový plugin nebyl OrcaCloud vrácen."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Nepodařilo se stáhnout cloudový plugin."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Nepodařilo se nainstalovat cloudový plugin."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Aktualizovat lze pouze cloudové pluginy."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Pro tento plugin není k dispozici žádná aktualizace."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Odmítnuto odstranění pluginu mimo známé adresáře pluginů."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Odmítnuta aktualizace pluginu mimo známé adresáře pluginů."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Plugin nelze ponechat jako místní: místní klíč pluginu již existuje: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Nepodařilo se aktualizovat stav instalace pluginu: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Nelze zrušit odběr vlastních pluginů."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Smazat a zrušit odběr lze pouze u cloudových pluginů."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Nelze zrušit odběr vlastních pluginů. Místní soubory odstraníte pomocí Smazat."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Žádost pluginu o oprávnění ke čtení souborového systému byla zamítnuta"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30887,6 +35891,10 @@ msgstr "sloučení oboustranného vysunutí selhalo"
msgid "imported regions produced no extrudable geometry"
msgstr "importované oblasti nevytvořily žádnou geometrii k vysunutí"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "profil kříží osu rotace — musí ležet na jedné její straně"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Rotace se nezdařila"
@@ -30923,6 +35931,10 @@ msgstr "Vytvoření plochy kapsy selhalo"
msgid "Pocket cut failed"
msgstr "Vyříznutí kapsy selhalo"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "profil se kříží nebo se vrací sám na sebe, takže neohraničuje jednu oblast"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "náčrt nemá žádnou uzavřenou smyčku"
@@ -30955,10 +35967,26 @@ msgstr "mesh_to_brep: síť nemá žádné trojúhelníky"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: všechny trojúhelníky byly odmítnuty jako degenerované (zkuste menší toleranci)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "poloměr zaoblení musí být větší než 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "v této skupině nejsou žádné hrany k zaoblení"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "poloměr zaoblení je pro tuto geometrii příliš velký"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "vzdálenost zkosení musí být větší než 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "v této skupině nejsou žádné hrany ke zkosení"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "vzdálenost zkosení je pro tuto geometrii příliš velká"
@@ -30971,6 +35999,153 @@ msgstr "apply_fillet: zaoblení OCCT selhalo"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: zkosení OCCT selhalo"
+# AI Translated
+msgid "empty component list"
+msgstr "prázdný seznam součástí"
+
+# AI Translated
+msgid "empty component index"
+msgstr "prázdný index součásti"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "index součásti musí být >= 1 (zadáno %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "neplatný index součásti „%1%“"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "jsou vyžadovány alespoň 2 součásti (zadáno %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "duplicitní index součásti %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "prázdná hodnota poměru"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "poměr musí být kladný (zadáno %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "neplatný poměr „%1%“"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "počet poměrů musí odpovídat počtu součástí: očekáváno %1%, nalezeno %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "očekávána dvě desetinná čísla oddělená čárkou, např. „0.10,0.90“"
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "počáteční a koncový poměr musí být v intervalu (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "velikost pole %1% neodpovídá počtu slotů filamentů %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "musí být nastaveno, pokud jsou zadány parametry míchaného filamentu"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "slot %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "slot %1%: součást %2% je mimo rozsah (nejvyšší index fyzického filamentu je %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "slot %1%: nemůže odkazovat sám na sebe jako součást"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "slot %1%: součást %2% odkazuje na slot míchaného filamentu"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "slot %1%: gradient vyžaduje přesně 2 součásti"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "slot %1%: neplatná křivka (jsou potřeba alespoň 2 platné řídicí body)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Načtení konfiguračního souboru „%1%“ se nezdařilo: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Nejedná se o soubor G-code vygenerovaný aplikací %1%."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Značka konfigurace „%1%“ nebyla nalezena"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Podezřele nízký počet konfiguračních hodnot získaných z %1%: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Načtení souboru STEP se nezdařilo.\n"
+"Soubor nelze otevřít pro čtení.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "import SVG selhal: soubor SVG nelze otevřít."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "import SVG selhal: importovaná data SVG nelze zpracovat."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Vlastní G-code hlásí záporné z_retracted."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Vlastní G-code hlásí záporné z_restart_extra."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Kopírování adresáře %1% do %2% selhalo: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Ověření dokončeno"
@@ -31418,6 +36593,1111 @@ msgstr ""
"Zamezte kroucení\n"
"Víte, že při tisku materiálů náchylných ke kroucení, jako je ABS, může vhodné zvýšení teploty vyhřívané desky snížit pravděpodobnost kroucení?"
+# AI Translated
+#~ msgid "Please choose the filament color"
+#~ msgstr "Vyberte prosím barvu filamentu"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Šířka linie můstku. Pokud je vyjádřena v %, bude vypočítána z průměru trysky.\n"
+#~ "Doporučuje se používat s vyšší hustotou můstku nebo vyšším poměrem průtoku můstku.\n"
+#~ "\n"
+#~ "Maximální hodnota je 100 % nebo průměr trysky.\n"
+#~ "Pokud je nastavena na 0, bude šířka linie odpovídat šířce vnitřní plné výplně."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Zapněte tuto volbu, chcete-li zpomalit tisk v místech, kde se mohly obvody zkroutit nahoru.\n"
+#~ "Například při tisku převisů na ostrých rozích, jako je příď trupu modelu Benchy, se použije dodatečné zpomalení, které omezí kroucení narůstající přes více vrstev.\n"
+#~ "\n"
+#~ "Obecně se doporučuje mít tuto volbu zapnutou, pokud není chlazení vaší tiskárny dostatečně výkonné nebo rychlost tisku natolik nízká, že ke kroucení obvodů nedochází. \n"
+#~ "Při tisku s vysokou rychlostí vnějších obvodů může tento parametr při zpomalování způsobit artefakty na stěnách, a to kvůli potenciálně velkému rozdílu rychlostí tisku, kdy extruder nestíhá požadovanou změnu průtoku.\n"
+#~ "Hlavní příčinou těchto artefaktů je nejspíš mírně nepřesné doladění PA, zejména v kombinaci s dlouhým časem vyhlazení PA.\n"
+#~ "\n"
+#~ "Doporučení při zapnutí této volby:\n"
+#~ "1. Snižte čas vyhlazení Pressure Advance na 0,015–0,02, aby extruder rychle reagoval na změny rychlosti.\n"
+#~ "2. Zvyšte minimální rychlosti tisku, abyste omezili míru zpomalení a rozdíl mezi rychlými a pomalými úseky.\n"
+#~ "3. Pokud se artefakty stále objevují, zapněte vyhlazování rychlosti extruze (ERS), které přechody průtoku dále vyhladí.\n"
+#~ "\n"
+#~ "Poznámka: Je-li tato volba zapnutá, jsou obvody převisů považovány za převisy, takže se rychlost pro převisy použije i tehdy, když je převislý obvod součástí můstku.\n"
+#~ "Například pokud jsou obvody ze 100 % převislé a zespodu je nic nepodpírá, použije se rychlost pro 100% převis."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Rychlost vnějších viditelných mostních extruzí.\n"
+#~ "\n"
+#~ "Pokud je navíc vypnutá možnost Zpomalit pro zkroucené obvody nebo je povolen Klasický režim převisů, bude to rychlost tisku stěn převisů, které jsou podepřeny méně než 13 %, ať už jsou součástí mostu nebo převisu."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Toto samostatné nastavení ovlivní rychlost obvodů s poloměrem <= small_perimeter_threshold (obvykle otvory). Pokud je zadáno v procentech (například: 80 %), bude vypočítáno na základě výše uvedeného nastavení rychlosti vnější stěny. Pro automatické nastavení zadejte nulu."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Stejné jako „Malé obvody“, ale pro podpory. Toto samostatné nastavení ovlivňuje rychlost podpor v oblastech <= `small_support_perimeter_threshold`. Pokud je vyjádřeno v procentech (například 80 %), bude vypočítáno z výše uvedeného nastavení rychlosti podpor nebo rozhraní podpor. Nastavte nulu pro automatický režim."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Pořadí tisku vnitřních a vnějších stěn.\n"
+#~ "\n"
+#~ "Použijte Vnitřní/Vnější pro nejlepší převisy. Převislé stěny se totiž mohou během tisku opřít o sousední obvod. Tato možnost však mírně snižuje kvalitu povrchu, protože vnější obvod je deformován přitlačením k vnitřnímu obvodu.\n"
+#~ "\n"
+#~ "Použijte Vnitřní/Vnější/Vnitřní pro nejlepší kvalitu vnějšího povrchu a rozměrovou přesnost, protože vnější stěna je tisknuta bez ovlivnění vnitřním obvodem. Výkon převisů se však zhorší, protože vnější stěna nemá vnitřní obvod, o který by se při tisku opřela. Tato možnost vyžaduje alespoň 3 stěny, protože nejprve tiskne vnitřní stěny od 3. obvodu dál, poté vnější obvod a nakonec první vnitřní obvod. Ve většině případů je tato možnost doporučována místo Vnější/Vnitřní.\n"
+#~ "\n"
+#~ "Použijte Vnější/Vnitřní pro stejnou kvalitu vnější stěny a rozměrovou přesnost jako u možnosti Vnitřní/Vnější/Vnitřní. Z-švy však budou méně konzistentní, protože první extruze nové vrstvy začíná na viditelném povrchu."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Rychlost první vrstvy kromě plné výplně."
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Rychlost plné výplně první vrstvy."
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Oblast výplně je mírně zvětšena, aby se překrývala se stěnou pro lepší spojení. Procentuální hodnota je vztažena k šířce čáry řídké výplně. Nastavte tuto hodnotu přibližně na 10–15 % pro minimalizaci možné přeextruze a hromadění materiálu, které může vést k hrubému hornímu povrchu."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "Oblast horní výplně je mírně zvětšena tak, aby překrývala stěnu, pro lepší propojení a minimalizaci vzniku otvorů ve styku horní výplně se stěnami. Hodnota 25–30 % je vhodným výchozím bodem a minimalizuje výskyt otvorů. Procentuální hodnota je vztažena k šířce čáry řídké výplně."
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Hloubka prokládání segmentované oblasti. Bude ignorováno, pokud je \"mmu_segmented_region_max_width\" nula nebo pokud je \"mmu_segmented_region_interlocking_depth\" větší než \"mmu_segmented_region_max_width\". Nula tuto funkci vypne."
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Sníží výšku obvodů horního povrchu tak, aby odpovídala výšce hrany modelu.\n"
+#~ "Ovlivňuje obvody se sklonem menším než tento úhel (ve stupních).\n"
+#~ "Doporučená hodnota je 35. Nastavte 0 pro vypnutí."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Rychlost vytírání podle role"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Ochranný štít pomáhá chránit tisk z ABS nebo ASA před deformacemi a odtržením od podložky způsobenými průvanem. Obvykle je potřeba jen u tiskáren s otevřeným rámem, tedy bez krytu.\n"
+#~ "\n"
+#~ "Povoleno = lem je vysoký jako nejvyšší tištěný objekt. Jinak se použije „Výška sukně“.\n"
+#~ "Poznámka: Při aktivním ochranném štítu bude sukně vytištěna ve vzdálenosti sukně od objektu. Proto pokud jsou aktivní ráfky, může s nimi dojít k překřížení. Aby se tomu zabránilo, zvyšte hodnotu vzdálenosti sukně.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Maximální rychlost tisku při proplachování ve věži na očištění trysky a při tisku řídkých vrstev této věže. Při proplachování se použije nejnižší rychlost z rychlosti řídké výplně nebo vypočtené rychlosti podle maximální objemové rychlosti filamentu.\n"
+#~ "\n"
+#~ "Při tisku řídkých vrstev se použije nejnižší rychlost z rychlosti vnitřních obvodů nebo vypočtené rychlosti podle maximální objemové rychlosti filamentu.\n"
+#~ "\n"
+#~ "Zvýšení této rychlosti může ovlivnit stabilitu věže a také zvýšit sílu, s jakou tryska narazí do případných kapek vytvořených na věži na očištění trysky.\n"
+#~ "\n"
+#~ "Před zvýšením tohoto parametru nad výchozí hodnotu 90 mm/s se ujistěte, že vaše tiskárna je schopna spolehlivě překonávat mosty při zvýšených rychlostech a že je při výměně nástroje dobře kontrolováno protékání.\n"
+#~ "\n"
+#~ "Pro vnější perimetry věže na očištění trysky se vždy použije rychlost vnitřních obvodů bez ohledu na toto nastavení."
+
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Typ vnější stěny čistící věže.\n"
+#~ "1. Obdélník: Výchozí typ stěny, obdélník s pevnou šířkou a výškou.\n"
+#~ "2. Kužel: Kužel se zaoblením ve spodní části pro lepší stabilitu čistící věže.\n"
+#~ "3. Žebra: Přidá čtyři žebra ke stěně věže pro vyšší stabilitu."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Dodatečný průtok použitý pro pročišťovací linie na věži na očištění trysky. Tím budou pročišťovací linie na věži na očištění trysky silnější nebo užší, než by byly obvykle. Rozestup je nastaven automaticky."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Upravte tuto hodnotu, abyste zabránili tisku krátkých, neuzavřených stěn, které by mohly zvýšit dobu tisku. Vyšší hodnoty odstraní více a delších stěn.\n"
+#~ "\n"
+#~ "POZNÁMKA: Dolní a horní povrch nebude touto hodnotou ovlivněn, aby nedocházelo k viditelným mezerám na vnější straně modelu. Upravte 'prahovou hodnotu jedné stěny' v pokročilých nastaveních níže pro nastavení citlivosti, co je považováno za horní povrch. 'Prahová hodnota jedné stěny' je zobrazena pouze pokud je toto nastavení vyšší než výchozí hodnota 0,5, nebo pokud je povolena možnost horních povrchů s jednou stěnou."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Rozdělit na %1% díl"
+#~ msgstr[1] "Rozdělit na %1% díly"
+#~ msgstr[2] "Rozdělit na %1% dílů"
+
+#~ msgid "Repair failed"
+#~ msgstr "Oprava selhala"
+
+#~ msgid "Repair canceled"
+#~ msgstr "Oprava zrušena"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Co tato vrstva dělá tam, kde překrývá vrstvy pod ní. Přidat a Odečíst reliéf navrší nebo odeberou. Násobit a Dělit škálují to, co je pod ní, čímž se tato vrstva stane maskou nad nimi - tam Hloubka působí jako síla a 1 mm ponechá bílé oblasti beze změny."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "Síť obsahuje non-manifold geometrii nebo otevřené okraje. Můžete ji importovat tak, jak je, nebo ji před importem opravit pomocí služby 3D oprav systému Windows."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Upozorňujeme, že síť obsahuje non-manifold geometrii nebo otevřené okraje."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Problém se sítí"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Oprava se nezdařila: síť je i po vyplnění děr stále otevřená."
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Logickou operaci nelze použít na nebooleovské operandy."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Načítání"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Počet filamentů překračuje maximální počet podporovaný nástrojem pro malování. V nástroji pro malování bude dostupných pouze prvních %1% filamentů."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Klávesová zkratka "
+
+# AI Translated
+#~ msgid "Build Volume"
+#~ msgstr "Tiskový objem"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Objekty (%1%) mají duplicitní konektory. Některé konektory mohou ve výsledku slicování chybět.\n"
+#~ "Nahlaste prosím týmu OrcaSlicer, při jakém scénáři k tomuto problému došlo.\n"
+#~ "Děkujeme."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d trojúhelníků"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Pohyblivé)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Pevné)"
+
+# AI Translated
+#~ msgid "Filament "
+#~ msgstr "Filament "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "hotend"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Rozkládání "
+
+#~ msgid "Orienting"
+#~ msgstr "Orientace"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Proveďte referenci všech os (klikněte "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") pro určení polohy tiskové hlavy. To zabraňuje pohybu zařízení mimo tisknutelnou oblast a minimalizuje opotřebení zařízení."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Oproti optimálnímu seskupení se zvýší spotřeba filamentu o %1%g a počet změn o %2%."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Oproti optimálnímu seskupení se zvýší spotřeba filamentu o %1%g a ušetří se %2% změn."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Oproti optimálnímu seskupení se ušetří %1%g filamentu a zvýší počet změn o %2%."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Ve srovnání s tiskárnou s jednou tryskou se ušetří %1%g filamentu a %2% změn."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Ve srovnání s tiskárnou s jednou tryskou se ušetří %1%g filamentu a zvýší počet změn o %2%."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Ve srovnání s tiskárnou s jednou tryskou se zvýší spotřeba filamentu o %1%g a ušetří se %2% změn."
+
+#~ msgid "number keys"
+#~ msgstr "číselné klávesy"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Filamenty %s jsou umístěny v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou oblast %s."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Filamenty %s jsou umístěny v %s, ale vygenerovaná dráha G-code přesahuje tisknutelnou výšku %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Filamenty %s nelze tisknout přímo na povrch této podložky."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "bude zavřeno před vytvořením nového modelu. Chcete pokračovat?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "Ve frontě cloudového slicování je před vámi %s úloh."
+
+#~ msgid " upload failed"
+#~ msgstr " nahrání selhalo"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " nahrání konfigurační fráze selhalo\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Není dostupný odpovídající úložný bucket\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " nelze otevřít\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Výsledek vašeho komentáře nelze nahrát z následujících důvodů:\n"
+#~ "\n"
+#~ " kód chyby: "
+
+#~ msgid "error message: "
+#~ msgstr "chybová zpráva: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Chcete být přesměrováni na webovou stránku pro hodnocení?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (předvolba procesu: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "Tryska %s nemůže tisknout %s."
+
+#~ msgid " nozzle"
+#~ msgstr " tryska"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Není doporučeno tisknout následující filament(y) pomocí %1%: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " deska %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Odebrat všechny míchané filamenty (%1%)?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Chcete jej nahradit?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Konflikt teploty podložky: T%d (%s) nastavuje podložku na %d°C — T%d (%s) vyžaduje %d°C. Podložku řídí primární nástroj; sekundární nástroje tisknou při teplotě, kterou nastaví."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Pro kalibraci nejsou zadány hodnoty zrychlení. Použije se výchozí hodnota "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Pro kalibraci nejsou zadány rychlosti. Použije se výchozí optimální rychlost "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Pro rozsah %1% až %2% °C není k dispozici žádná teplotní věž pro pás. Použijte rozsah, který modely věže pokrývají, například 230 až 190."
+
+#~ msgid "The selected file"
+#~ msgstr "Vybraný soubor"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "neobsahuje platný G-code."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "s OrcaSlicer, aby Orca mohla otevírat modely z"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Spotřebuje o %dg filamentu a o %d změn více než optimální seskupení."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Parametry s touto ikonou lze nastavit pro každou trysku zvlášť."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Byla nalezena rezervovaná klíčová slova"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d přednastavení filamentu a %d přednastavení procesu je připojeno k této tiskárně. Tato přednastavení budou odstraněna, pokud bude tiskárna smazána."
+
+# AI Translated
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Následující předvolba dědí z této předvolby."
+#~ msgstr[1] "Následující předvolby dědí z této předvolby."
+#~ msgstr[2] "Následujících předvoleb dědí z této předvolby."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "Předvolba %1%"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Opravdu chcete %1% vybranou předvolbu?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Rozdělit na %1% částí"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Stahování nových profilů dodavatelů: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Stažení profilů dodavatelů selhalo: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "V tomto režimu Span se barvy tisknou pouze pomocí %1%, ale filament %2% není přiřazen k žádnému nástroji. Použijte filamenty přiřazené k %1%, nebo přepněte tuto desku do režimu Primární."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "V tomto režimu Span se barvy tisknou pouze pomocí %1%, ale filament %2% je přiřazen k T%3%. Použijte filamenty přiřazené k %1%, nebo přepněte tuto desku do režimu Primární."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " je příliš blízko oblasti vyloučení, při tisku mohou nastat kolize."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " je příliš blízko oblasti detekce shlukování, při tisku může dojít ke kolizím."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Základní věž"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " je příliš blízko ostatním, může způsobit kolize.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " je příliš blízko oblasti vyloučení a může způsobit kolize.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " je příliš blízko oblasti detekce shlukování a dojde ke kolizi.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " je částečně mimo tisknutelnou oblast a nelze jej vytisknout.\n"
+
+# AI Translated
+# Needs human review: Substituted for %3% in 'IDEX/IQEX mode "%1%" prints with T%2%, but this plate's filaments are on %3%.' (Print.cpp), so it is in the locative case to follow 'jsou na'.
+#~ msgid "no configured tool"
+#~ msgstr "žádném nakonfigurovaném nástroji"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "Koncový G-code po dokončení celého tisku."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Maximální rychlost osy X"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Maximální rychlost osy Y"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Maximální rychlost osy Z"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Maximální rychlost E"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Python pluginy volané v každém kroku slicovacího řetězce, které čtou a upravují mezivýsledky slicování, včetně závěrečného kroku postprocessingu G-code. Výzkumné/experimentální."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Je-li povoleno, slicer generuje G-code s obsahem primární zóny vystředěným na počátek podložky (0,0). Za umístění kopií a zrcadlených kopií na fyzickou pozici každé zóny odpovídá firmware tiskárny. Povolte pouze u tiskáren, jejichž firmware v režimu Kopie/Zrcadlo (Copy/Mirror) používá vlastní posuny zón (např. režim duplikace IDEX v RepRapFirmware). V režimu Primární nemá žádný účinek."
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Přepsání pro jednotlivé desky, které mapuje fyzické hlavy na sloty filamentů (číslováno od 1). Prázdná hodnota znamená použití výchozích hodnot z inverze pem."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Osa, kolem které se síť před slicováním otočí. Jde o naklonění pásové tiskárny: izometrická rotace (bez zkreslení), která řídí také vykreslování podložky a naklonění gravitace pro podpory a kterou zpětná transformace G-code invertuje před zkosením/změnou měřítka v souřadnicovém systému stroje a přemapováním os. Obvyklé je naklonění portálu kolem osy X (pás se pohybuje podél Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Expertní přepsání: nastaví úhel naklonění souřadnicového systému stroje (zkosení/měřítko G-code) nezávisle na úhlu rotace před slicováním. Je-li vypnuto, transformace souřadnicového systému stroje se odvozuje z úhlu naklonění pásu, takže jediný úhel řídí obě fáze. Povolte pouze pro kompenzaci stroje, jehož fyzické naklonění portálu se liší od rotace při slicování."
+
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "Maximální povolená odchylka při snižování rozlišení pro nastavení „Maximální rozlišení stěny“. Pokud tuto hodnotu zvýšíte, tisk bude méně přesný, ale G-code bude menší. „Maximální odchylka stěny“ omezuje „Maximální rozlišení stěny“, takže pokud jsou tato nastavení v konfliktu, má přednost „Maximální odchylka stěny“."
+
+#~ msgid " not in range "
+#~ msgstr " není v rozsahu "
+
+#~ msgid "floating regions"
+#~ msgstr "Plovoucí oblasti"
+
+#~ msgid "floating cantilever"
+#~ msgstr "Plovoucí konzola"
+
+#~ msgid "large overhangs"
+#~ msgstr "Velké převisy"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Zdá se, že objekt %s obsahuje %s. Přeorientujte objekt nebo povolte generování podpěr."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Nebyly detekovány žádné vrstvy. Možná budete chtít opravit svůj STL soubor nebo zkontrolovat jeho velikost či tloušťku a zkusit to znovu.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Tento typ stroje může uchovávat pouze %d výsledků historie na jednu trysku. Tento výsledek nebude uložen."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Tento typ tiskárny může uchovávat pouze %d výsledků historie na jednu trysku."
+
+# AI Translated
+# Needs human review: Radio option of the belt temperature-tower 'Test model' (Standard / Overhang) in calib_dlg.cpp; the adjective 'Převisový' may read better next to 'Standardní'.
+#~ msgid "Overhang"
+#~ msgstr "Převisy"
+
+#~ msgid "Start / End"
+#~ msgstr "Začátek / Konec"
+
+#~ msgid "Damp"
+#~ msgstr "Tlumení"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "Na tiskárně bylo zjištěno %d slotů IFS."
+
+#~ msgid "selected"
+#~ msgstr "vybráno"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Následující předvolba dědí tuto předvolbu."
+#~ msgstr[1] "Následující předvolby dědí tuto předvolbu."
+#~ msgstr[2] "Následující předvolby dědí tuto předvolbu."
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "Nalezeno %zu tiskáren Creality. Vyberte jednu a klikněte na Použít vybranou."
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "protokol(y)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Chyba: extruder %s nemá k dispozici žádnou trysku %s, aktuální výsledek seskupení je neplatný."
+
+# AI Translated
+#~ msgid "invalid brim ears"
+#~ msgstr "neplatná ouška límce"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Přeskakování %d objektů."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Otevřít složku v průzkumníku"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Klikněte na střed, pak na vrchol — %d stran, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "opsaný"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "vepsaný"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Náčrt vytvořen (řídicí kóty: %zu) — vyberte ho a pravým tlačítkem zvolte Vysunutí"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — trojúhelníky: %zu"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Tato síť má %d trojúhelníků. Každý trojúhelník se před sloučením koplanárních ploch stane plochou B-rep, takže import může trvat dlouho a výsledné těleso se může upravovat pomalu. Obvykle je lepší síť nejprve zjednodušit (decimovat).\n"
+#~ "\n"
+#~ "Přesto importovat?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Importované těleso — trojúhelníky: %d → plochy: %d, objem %.2f mm³. Vyberte plochu nebo hranu, pak je upravte pomocí Zaoblení / Řez / Skořepina"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — tažením umístěte/změňte velikost, pak Potvrdit"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "Entity náčrtu: %d"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — zadejte hodnotu a stiskněte Enter (nebo Potvrdit)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Náhled — trojúhelníky: %zu"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "Ignorované vazby, které nemohou působit na tuto geometrii (elipsa nebo křivka spline, případně kružnice nulové velikosti): %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "Odstraněné vazby, které zaoblení/zkosení zneplatnilo: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "Vazby uvolněné transformací: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...a další otevřené konce: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "Seznam materiálů podporuje nejvýše %1% barev. Po rozkladu barvy %2% by počet materiálů překročil %1%. Před rozkladem prosím odstraňte nepoužité filamenty na hlavní obrazovce."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "Tisknutelné barvy: %1% (z %2% filamentů)"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "Ostrovy: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Využity všechny vrstvy (%1%)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Náhled: %1% trojúhelníků"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Model: %1% trojúhelníků - zapečení zjemní na rozlišení výše, až do svého rozpočtu"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Zapečení posouvá stávající vrcholy - model zůstane na %1% trojúhelnících"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Výsledek zapečení až ~%1% k trojúhelníků"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "Nenamalované vrstvy: %1%, přeskočeno"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Projekt podporuje nejvýše %d filamentů. Nadbývající filamenty budou zahozeny."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Vybrané vrcholy: %d | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Vybrané hrany: %d | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "Vybrané ostrovy: %d | tažení = přesun společně, Shift/Ctrl + kliknutí = přidat/odebrat, R/S = otočit/změnit měřítko primárního"
+
+# AI Translated
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Velikost dlaždice aktivní vrstvy: jakou část modelu pokryje jedno opakování textury. Plátno se měří v dlaždicích, takže jedna buňka mřížky odpovídá jednomu opakování. Změníte ji volbou Dláždění v nastavení vrstvy."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "Ostrovy: %d, plochy: %s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin „%s“ žádá o čtení následujících souborů:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin „%s“ žádá o čtení/zápis následujících souborů:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin „%s“ žádá o vytvoření následujících souborů:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin „%s“ žádá o odstranění následujících souborů:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin „%s“ žádá o spuštění následujících příkazů:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Instalace pluginu se nezdařila"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Nepodařilo se nainstalovat Microsoft WebView2 Runtime.\n"
+#~ "Některé funkce, včetně průvodce nastavením, se mohou zobrazovat prázdné, dokud nebude nainstalován.\n"
+#~ "Nainstalujte jej prosím ručně z https://developer.microsoft.com/microsoft-edge/webview2/ a restartujte Orca Slicer."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Proč toto seskupení"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "Software nepodporuje použití různých průměrů trysek v rámci jednoho tisku. Pokud se levá a pravá tryska liší, lze pokračovat pouze tiskem s jednou hlavou. Potvrďte prosím, kterou trysku chcete pro tento projekt použít."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Přepnout průměr"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "Projekt BambuStudio"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "Soubor 3MF byl vytvořen v BambuStudio (verze %s), která je novější než kompatibilní verze %s. Byla nalezena nerozpoznaná nastavení:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "Soubor 3MF byl vytvořen v BambuStudio (verze %s), která je novější než kompatibilní verze %s. Některá nastavení nemusí být plně kompatibilní."
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "Soubor 3MF byl vytvořen v BambuStudio. Některá nastavení se mohou od OrcaSliceru lišit."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Během probíhající operace nelze vracet zpět ani znovu provádět. Nejprve ji zastavte."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Vystředí vnitřní výplň každé části na ni samotnou, jako by byla slicována samostatně, místo na celou sestavu. Části, které se dotýkají nebo překrývají, jsou považovány za jedno těleso a sdílejí střed; oddělené části (nebo samostatné 3D objekty) mají každá svůj vlastní.\n"
+#~ "Hodí se, když sestava sdružuje několik objektů, z nichž si každý má zachovat konzistentní, na sebe vystředěnou výplň.\n"
+#~ "Ovlivňuje vzory Čára a Mřížka a výplně s rotační šablonou.\n"
+#~ "Vzory vázané na globální souřadnice (Gyroid, Včelí plástev, TPMS, ...) tím nejsou ovlivněny."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Index aktuální vrstvy. Číslování začíná od jedničky (tj. první vrstva má číslo 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Video tutoriál"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Primitiv"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Byla vygenerována prázdná síť"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Kvádr"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Rychle:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Šířka (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Hloubka (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Výška (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "Spodní R"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "Horní R"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "Hlavní R"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "Vedlejší R"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Všechny hrany"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Horní hrany"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Spodní hrany"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Boční hrany"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Rozlišení sítě"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Přidat tvar"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Chybí vnější profil"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Nepodařilo se vytvořit vnější plochu"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Nepodařilo se vytvořit plochu s otvory"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Rotace selhala"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Profil"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Začít nový profil (pro otvory)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segmenty"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Strany"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Kreslete kliknutím na plátno"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Přichytit k mřížce"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Krok mřížky"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Vnější"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "uzavřený"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% b. %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (horní)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (přední)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (boční)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Rotace (°)"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "0 = vysunutí, >0 = rotace"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Kapsa (řez)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu uzavřený profil"
+#~ msgstr[1] "%zu uzavřené profily"
+#~ msgstr[2] "%zu uzavřených profilů"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Pro aktivaci nakreslete uzavřený profil"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Prázdný výsledek"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Vysunutí: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Rotace: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Není vybrán žádný objekt"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Vytvoření plochy selhalo"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Vytvoření plochy s otvory selhalo"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Síť nástroje je prázdná"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Kapsa přidána (záporný objem)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Kapsa: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Vyžaduje aktivní vrstvu mapovanou pomocí Rozbalení (LSCM)."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Šachovnice - testovací mřížka místo textury. Kde čtverce zůstávají čtvercové, není textura zkreslená; kde se protahují, protáhne se i textura"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Zkreslení - teplotní mapa protažení rozbalení od modré po červenou"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Míchat podle"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Povrch"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Vrstvy: dva filamenty se střídají po tiskových vrstvách, což se na svislých plochách plynule prolíná, ale na vodorovných plochách mizí, protože tam je celá vrstva jediným pruhem.\n"
+#~ "Povrch: jemná šachovnice po povrchu, která funguje v jakémkoli úhlu, ale může působit spíše jako textura než jako prolnutí.\n"
+#~ "Automaticky: vrstvy na svislých plochách; vodorovné plochy dostanou nejbližší jednotlivý filament, protože šachovnice by se na nich ukázala jako vzor."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Ostrov - přesouvání, otáčení a změna měřítka celých ostrovů"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Vrchol - tažením vrcholů měníte tvar; Shift/Ctrl pro vícenásobný výběr"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Hrana - tažením hran měníte tvar; Shift/Ctrl pro vícenásobný výběr"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Zarámovat všechny ostrovy (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Experimentální) Používat agenty tiskárny místo tiskových hostů"
@@ -31451,16 +37731,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Klikněte na plochu nebo referenční rovinu a pak vyberte kreslicí nástroj"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -31517,10 +37787,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Svislá vzdálenost"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Lineární"
-
#~ msgid "Face recognition"
#~ msgstr "Rozpoznání plochy"
@@ -32950,9 +39216,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Nepodařilo se vypočítat šířku čáry %1%. Nelze získat hodnotu „%2%“. "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Byly zadány neplatné rozestupy pro Flow::with_spacing(), zkontrolujte svou výšku vrstvy a šířku extruze"
-
#~ msgid "Align infill direction to model"
#~ msgstr "Zarovnat směr výplně podle modelu"
@@ -33103,6 +39366,3 @@ msgstr ""
#~ msgid "Bed Leveling"
#~ msgstr "Vyrovnání podložky"
-
-#~ msgid "°"
-#~ msgstr "°"
diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po
index e46e12e171..eb14366783 100644
--- a/localization/i18n/de/OrcaSlicer_de.po
+++ b/localization/i18n/de/OrcaSlicer_de.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: Heiko Liebscher \n"
"Language-Team: \n"
@@ -391,8 +391,10 @@ msgid "Please wait"
msgstr "Bitte warten"
# AI Translated
-msgid "Reading"
-msgstr "Wird gelesen"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Induktions-Hotend-Magazin: %d/%d wird gelesen"
msgid "Running..."
msgstr "Läuft..."
@@ -543,9 +545,12 @@ msgstr "Gizmo-auf Fläche platzieren"
msgid "Lay on Face"
msgstr "Auf Fläche legen"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Die Anzahl der Filamente übersteigt die maximale Anzahl, die das Malwerkzeug unterstützt. Nur die ersten %1% der Filamente werden im Malwerkzeug verfügbar sein."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Die Anzahl der Filamente übersteigt die maximale Anzahl, die das Malwerkzeug unterstützt. Nur das erste %1% Filament steht im Malwerkzeug zur Verfügung."
+msgstr[1] "Die Anzahl der Filamente übersteigt die maximale Anzahl, die das Malwerkzeug unterstützt. Nur die ersten %1% Filamente stehen im Malwerkzeug zur Verfügung."
msgid "Color Painting"
msgstr "Farben malen"
@@ -597,8 +602,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Tastenkürzel"
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Tastenkürzel %d"
msgid "Triangle"
msgstr "Dreieck"
@@ -691,6 +698,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Teilauswahl"
+msgid "Select multiple objects"
+msgstr "Mehrere Objekte auswählen"
+
msgid "Fixed step drag"
msgstr "Fester Schritt ziehen"
@@ -753,10 +763,79 @@ msgstr "Teil"
msgid "Relative"
msgstr "Relativ"
+msgid "Selection"
+msgstr "Auswahl"
+
+msgid "Plate"
+msgstr "Platte"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "Koordinatensystem, das für Transformationsaktionen verwendet wird."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Links ausrichten"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Links-rechts mittig ausrichten"
+
+# AI Translated
+msgid "Align right"
+msgstr "Rechts ausrichten"
+
+# AI Translated
+msgid "Align front"
+msgstr "Vorne ausrichten"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Vorne-hinten mittig ausrichten"
+
+# AI Translated
+msgid "Align back"
+msgstr "Hinten ausrichten"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Unten ausrichten"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Oben-unten mittig ausrichten"
+
+# AI Translated
+msgid "Align top"
+msgstr "Oben ausrichten"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Links-rechts verteilen"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Vorne-hinten verteilen"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Oben-unten verteilen"
+
+msgid "Drop"
+msgstr "Ablegen"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "Absolut"
@@ -859,9 +938,6 @@ msgstr "Nutwinkel"
msgid "Cut position"
msgstr "Schnittposition"
-msgid "Build Volume"
-msgstr "Bau Volumen"
-
msgid "Multiple"
msgstr "Mehrere"
@@ -1035,10 +1111,18 @@ msgstr "Verbinder"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"Objekt (%1%) hat doppelte Verbinder. Einige Verbinder fehlen möglicherweise im Slicing-Ergebnis.\n"
+"Bitte melden Sie dem OrcaSlicer-Team, in welchem Szenario dieses Problem aufgetreten ist.\n"
+"Vielen Dank."
+msgstr[1] ""
"Objekte (%1%) haben doppelte Verbinder. Einige Verbinder fehlen möglicherweise im Slicing-Ergebnis.\n"
"Bitte melden Sie dem OrcaSlicer-Team, in welchem Szenario dieses Problem aufgetreten ist.\n"
"Vielen Dank."
@@ -1104,9 +1188,12 @@ msgstr "Niedrig"
msgid "Extra low"
msgstr "Sehr niedrig"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d Dreiecke"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% Dreieck"
+msgstr[1] "%1% Dreiecke"
msgid "Show wireframe"
msgstr "Gittermodell anzeigen"
@@ -1117,6 +1204,17 @@ msgstr "Kann nicht angewendet werden, wenn die Vorschau angezeigt wird."
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Operation wird bereits abgebrochen. Bitte warten Sie einige Sekunden."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "Die Modellvereinfachung wurde abgebrochen"
+
+msgid "Wiki Guide"
+msgstr "Wiki-Anleitung"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Video-Anleitung"
+
msgid "Enforce seam"
msgstr "Naht erzwingen"
@@ -1167,6 +1265,14 @@ msgstr "Position auf Oberfläche"
msgid "Emboss"
msgstr "Prägen"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Kein aktiver Font im Stil. Wählen Sie den richtigen aus."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont wurde nicht korrekt geladen."
+
msgid "NORMAL"
msgstr "Normal"
@@ -1818,11 +1924,25 @@ msgstr "Durchmesser"
msgid "Length"
msgstr "Länge"
-msgid "Selection"
-msgstr "Auswahl"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Fläche 1 (fest)"
-msgid " (Moving)"
-msgstr " (Bewegen)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Fläche 2 (beweglich)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Punkt 1 (fest)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Punkt 2 (beweglich)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Auswahl 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1838,14 +1958,9 @@ msgstr ""
"Wählen Sie 2 Punkte oder Kreise auf Objekten aus und \n"
"geben Sie den Abstand zwischen ihnen an."
-msgid "Face"
-msgstr "Fläche"
-
-msgid " (Fixed)"
-msgstr " (Fest)"
-
-msgid "Point"
-msgstr "Punkt"
+# AI Translated
+msgid "Selection 2"
+msgstr "Auswahl 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1943,6 +2058,18 @@ msgstr "Assembly Gizmo benutzen"
msgid "Leaving Assembly gizmo"
msgstr "Assembly Gizmo verlassen"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Umschalt+"
@@ -2118,14 +2245,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2-Runtime"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Die Microsoft WebView2 Runtime konnte nicht installiert werden.\n"
"Einige Funktionen, einschließlich des Einrichtungsassistenten, werden möglicherweise leer angezeigt, bis sie installiert ist.\n"
-"Bitte installieren Sie sie manuell von https://developer.microsoft.com/microsoft-edge/webview2/ und starten Sie Orca Slicer neu."
+"Bitte installieren Sie sie manuell von %1% und starten Sie Orca Slicer neu."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2358,6 +2486,66 @@ msgstr "Netzwerk-Plugin-Einschränkung"
msgid "Privacy Policy Update"
msgstr "Datenschutzrichtlinien-Update"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Alle Ihre Filamentprofile sind auf den Druckern verfügbar, für die sie erstellt wurden."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Filamentprofile migrieren"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 hat viele System-Filamentprofile neu strukturiert, um fehlerhafte Profile zu korrigieren und künftige Funktionen vorzubereiten. Dadurch erscheinen die unten aufgeführten Profile bei einigen Druckern, für die sie erstellt wurden, nicht mehr. Wir bitten um Entschuldigung; diese Korrektur ist einmalig.\n"
+"\n"
+"Sollen diese Drucker jetzt wieder zu Ihren Profilen hinzugefügt werden? Ihre Profile werden zuvor gesichert. Sie können dies auch später über Hilfe > Filamentprofile migrieren tun."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (basierend auf %2%)"
+
+msgid "Don't remind me again"
+msgstr "Nicht mehr erinnern"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Ihre Profile konnten nicht gesichert werden und wurden daher nicht migriert."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Der Ordner mit den Benutzerprofilen konnte nicht gesperrt werden, daher wurde nichts migriert. Möglicherweise speichert eine andere OrcaSlicer-Instanz gerade Profile; versuchen Sie es später erneut über Hilfe > Filamentprofile migrieren."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Ihre Filamentprofile konnten nicht migriert werden. Eine Sicherung Ihrer Profile wurde gespeichert unter:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Ihre Filamentprofile wurden migriert. Wählen Sie sie in der Filamentliste, in der Sie sie verwendet haben, erneut aus.\n"
+"\n"
+"Eine Sicherung Ihrer Profile wurde gespeichert unter:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Diese Profile konnten nicht migriert werden:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "dein Orca Cloud Profil (Benutzer-ID: \"%s\")"
@@ -2480,6 +2668,9 @@ msgstr "Plugins aktualisiert."
msgid "Failed to refresh plugins: %s"
msgstr "Plugins konnten nicht aktualisiert werden: %s"
+msgid "Unknown error"
+msgstr "Unbekannter Fehler"
+
# AI Translated
msgid "Select plugin package"
msgstr "Plugin-Paket auswählen"
@@ -3006,6 +3197,22 @@ msgstr "Alles neu laden"
msgid "Reload all from disk"
msgstr "Alles von der Festplatte neu laden"
+# AI Translated
+msgid "Fix All"
+msgstr "Alle reparieren"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Alle Modelle auf der aktuellen Druckplatte reparieren"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Alle Druckplatten reparieren"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Alle Modelle auf allen Druckplatten reparieren"
+
msgid "Auto Rotate"
msgstr "Automatisch rotieren"
@@ -3057,8 +3264,13 @@ msgstr "(Farbe verloren)"
msgid "Center"
msgstr "Zur Mitte"
-msgid "Drop"
-msgstr "Ablegen"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Ausrichten/Verteilen"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Objekte ausrichten und verteilen"
msgid "Edit Process Settings"
msgstr "Prozesseinstellungen"
@@ -3355,6 +3567,13 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] "Reparatur des folgenden Modellobjekts fehlgeschlagen"
msgstr[1] "Reparatur der folgenden Modellobjekte fehlgeschlagen"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d Modellobjekt musste nicht repariert werden."
+msgstr[1] "%1$d Modellobjekte mussten nicht repariert werden."
+
msgid "Repairing was canceled"
msgstr "Reparieren wurde abgebrochen"
@@ -3403,8 +3622,9 @@ msgstr "Wandschleifen"
msgid "Infill density(%)"
msgstr "Füllungsdichte(%)"
+# AI Translated
msgid "Auto Brim"
-msgstr "Automatische Umrandung"
+msgstr "Automatischer Rand"
msgid "Mouse ear"
msgstr "Mausohren"
@@ -3421,17 +3641,16 @@ msgstr "Nur Innenrand"
msgid "Outer and inner brim"
msgstr "Äußere und innere Randleiste"
+# AI Translated
msgid "No-brim"
-msgstr "Keine Umrandung"
+msgstr "Kein Rand"
msgid "Outer wall speed"
msgstr "Geschwindigkeit Außenwand"
-msgid "Plate"
-msgstr "Platte"
-
+# AI Translated
msgid "Brim"
-msgstr "Umrandung"
+msgstr "Rand"
msgid "Object/Part Settings"
msgstr "Objekt-/Teileinstellungen"
@@ -3513,9 +3732,6 @@ msgstr "Benutzerdefinierte Vorlage hinzufügen"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Fügen Sie am Anfang dieses Layers benutzerdefinierten G-Code aus einer Vorlage ein."
-msgid "Filament "
-msgstr "Filament "
-
msgid "Change filament at the beginning of this layer."
msgstr "Wechseln Sie am Anfang dieses Layers das Filament."
@@ -3604,6 +3820,8 @@ msgstr "Trotzdem ändern"
msgid "Off"
msgstr "Aus"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "Filter"
@@ -3718,12 +3936,19 @@ msgid "Check filament location"
msgstr "Überprüfen Sie das Filament"
# AI Translated
-msgid "Switch"
-msgstr "Wechseln"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Pausieren"
# AI Translated
-msgid "hotend"
-msgstr "Hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Extruder wechseln"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Hotend wechseln"
# AI Translated
msgid "Wait for AMS cooling"
@@ -3893,8 +4118,10 @@ msgid "Arranging"
msgstr "Anordnen"
# AI Translated
-msgid "Arranging "
-msgstr "Anordnen "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Anordnen von %1%"
msgid "Arranging canceled."
msgstr "Anordnen abgebrochen."
@@ -3933,8 +4160,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Ausrichten..."
-msgid "Orienting"
-msgstr "Ausrichten"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Ausrichten von %1%"
msgid "Orienting canceled."
msgstr "Ausrichten abgebrochen."
@@ -3942,6 +4172,12 @@ msgstr "Ausrichten abgebrochen."
msgid "Filling"
msgstr "Füllen"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Füllen mit %1%"
+
msgid "Bed filling canceled."
msgstr "Bettfüllung abgebrochen."
@@ -3957,6 +4193,34 @@ msgstr "Suche nach Ausrichtung abgebrochen."
msgid "Orientation found."
msgstr "Ausrichtung gefunden."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Beste Oberflächenqualität"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Objektdrehung für die beste Oberflächenqualität optimieren."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Reduzierte Überhangneigungen"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Objektdrehung so optimieren, dass möglichst wenige Überhänge entstehen, die Stützen benötigen.\n"
+"Beachten Sie, dass diese Methode versucht, die beste Fläche des Objekts für den Kontakt mit dem Druckbett zu finden, wenn keine Erhöhung eingestellt ist."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Niedrigste Z-Höhe"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Das Modell so drehen, dass die Z-Höhe minimal ist, für eine kürzere Druckzeit."
+
msgid "Logging in"
msgstr "Einloggen"
@@ -4249,6 +4513,16 @@ msgstr "Zuletzt verwendete Projekte"
msgid "Go to Plate"
msgstr "Zur Druckplatte wechseln"
+msgid "Device"
+msgstr "Gerät"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Gerät (Web)"
+
+msgid "Multi-device"
+msgstr "Multi-Gerät"
+
msgid "AMS Materials Setting"
msgstr "AMS Material Einstellung"
@@ -4273,9 +4547,6 @@ msgstr "Der Eingabewert sollte größer als %1% und kleiner als %2% sein"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Dynamische Flusskalibrierungsfaktoren"
-msgid "Wiki Guide"
-msgstr "Wiki-Anleitung"
-
msgid "PA Profile"
msgstr "PA-Profil"
@@ -4305,6 +4576,14 @@ msgstr "Bitte geben Sie einen gültigen Wert ein (K in %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Bitte geben Sie einen gültigen Wert ein (K in %.1f~%.1f, N in %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Favorisierte Filamente"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Alle Filamente"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4625,11 +4904,11 @@ msgstr "Das Netzwerk Plugin wurde installiert, konnte aber nicht geladen werden.
msgid "Restart Required"
msgstr "Neustart erforderlich"
-msgid "Please home all axes (click "
-msgstr "Bitte alle Achsen referenzieren (Klick"
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr "), um die Position des Werkzeugkopfs zu ermitteln. Dadurch wird verhindert, dass sich das Gerät über die Bewegungsgrenzen bewegt und das Gerät beschädigt wird."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Bitte alle Achsen referenzieren (%1% anklicken), um die Position des Werkzeugkopfs zu ermitteln. Dadurch wird verhindert, dass sich das Gerät über den druckbaren Bereich hinaus bewegt und der Drucker verschleißt."
msgid "Go Home"
msgstr "Werkzeugkopf zur Referenzposition fahren"
@@ -4644,6 +4923,10 @@ msgstr "Ein schwerwiegender Fehler ist aufgetreten: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Bitte speichern Sie das Projekt und starten Sie das Programm neu."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Unbekannte C++-Ausnahme."
+
msgid "Processing G-Code from previous file…"
msgstr "Verarbeite G-Code der vorherigen Datei..."
@@ -4865,6 +5148,14 @@ msgstr "Automatisch an den Grenzwert (%g mm) anpassen?"
msgid "Adjust"
msgstr "Anpassen"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Druckbasis (Raft) und Luftzug-Schutz sind auf Förderbanddruckern nicht verfügbar.\n"
+"Sie wurden deaktiviert."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5579,14 +5870,16 @@ msgstr "Innere massive Füllung"
msgid "Top surface"
msgstr "Obere Oberfläche"
+# AI Translated
msgid "Bridge"
-msgstr "Überbrückung"
+msgstr "Brücke"
msgid "Gap infill"
msgstr "Lückenfüllung"
+# AI Translated
msgid "Skirt"
-msgstr "Saum"
+msgstr "Umrandung"
msgid "Support interface"
msgstr "Stützstruktur-Schnittstelle"
@@ -5701,9 +5994,6 @@ msgstr "Automatisches Neuschneiden entsprechend der optimalen Filamentgruppierun
msgid "Filament Grouping"
msgstr "Filamentgruppierung"
-msgid "Why this grouping"
-msgstr "Warum diese Gruppierung"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Bitte platzieren Sie die Filamente auf dem Drucker basierend auf dem "
@@ -5713,29 +6003,47 @@ msgstr "Tipps:"
msgid "Current grouping of slice result is not optimal."
msgstr "Die aktuelle Gruppierung des Slicergebnisses ist nicht optimal."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Erhöhe %1%g Filament und %2% Änderungen im Vergleich zur optimalen Gruppierung."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "%1%g mehr Filament und %2% Filamentwechsel mehr im Vergleich zur optimalen Gruppierung."
+msgstr[1] "%1%g mehr Filament und %2% Filamentwechsel mehr im Vergleich zur optimalen Gruppierung."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Erhöhe %1%g Filament und sparen %2% Änderungen im Vergleich zur optimalen Gruppierung."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "%1%g mehr Filament und %2% Filamentwechsel weniger im Vergleich zur optimalen Gruppierung."
+msgstr[1] "%1%g mehr Filament und %2% Filamentwechsel weniger im Vergleich zur optimalen Gruppierung."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Spare %1%g Filament und erhöhen %2% Änderungen im Vergleich zur optimalen Gruppierung."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "%1%g weniger Filament und %2% Filamentwechsel mehr im Vergleich zur optimalen Gruppierung."
+msgstr[1] "%1%g weniger Filament und %2% Filamentwechsel mehr im Vergleich zur optimalen Gruppierung."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Spare %1%g Filament und %2% Änderungen im Vergleich zu einem Drucker mit einer Düse."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "%1%g weniger Filament und %2% Filamentwechsel weniger im Vergleich zu einem Drucker mit einer Düse."
+msgstr[1] "%1%g weniger Filament und %2% Filamentwechsel weniger im Vergleich zu einem Drucker mit einer Düse."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Spare %1%g Filament und erhöhe %2% Änderungen im Vergleich zu einem Drucker mit einer Düse."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "%1%g weniger Filament und %2% Filamentwechsel mehr im Vergleich zu einem Drucker mit einer Düse."
+msgstr[1] "%1%g weniger Filament und %2% Filamentwechsel mehr im Vergleich zu einem Drucker mit einer Düse."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Erhöhe %1%g Filament und spare %2% Änderungen im Vergleich zu einem Drucker mit einer Düse."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "%1%g mehr Filament und %2% Filamentwechsel weniger im Vergleich zu einem Drucker mit einer Düse."
+msgstr[1] "%1%g mehr Filament und %2% Filamentwechsel weniger im Vergleich zu einem Drucker mit einer Düse."
msgid "Set to Optimal"
msgstr "Auf optimal setzen"
@@ -5892,11 +6200,60 @@ msgstr "Bearbeitungsbereich vergrößern/verkleinern"
msgid "Sequence"
msgstr "Reihenfolge"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Schwerpunkt der Platte"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Schwerpunkt des Teils"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Schwerpunkt der Stützen"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Schwerpunkt der Baugruppe"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Schwerpunkt des Objekts"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Fertiger Druck"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Gedruckt bis Schicht %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Gewicht"
+
+msgid "Volume"
+msgstr "Volumen"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Schwerpunkt in der Begrenzungsbox"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Größe der Begrenzungsbox"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Trägheitsmoment"
+
msgid "Object selection"
msgstr "Objektauswahl"
-msgid "number keys"
-msgstr "Nummerntasten"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "Nummerntasten 1~16"
msgid "Number keys can quickly change the color of objects"
msgstr "Nummerntasten können schnell die Farbe von Objekten ändern."
@@ -6105,9 +6462,20 @@ msgstr "Achsen"
msgid "Gridlines"
msgstr "Rasterlinien"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Beschriftungen"
+# AI Translated
+msgid "Center of mass"
+msgstr "Schwerpunkt"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Rohen G-Code anzeigen (nur Förderbanddrucker)"
+
# AI Translated
msgid "Move section plane"
msgstr "Schnittebene bewegen"
@@ -6156,7 +6524,7 @@ msgstr "Volumen:"
msgid "Size:"
msgstr "Größe:"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Konflikte von G-Code-Pfaden wurden bei Layer %d, Z = %.2lf mm gefunden.Bitte trennen Sie die konfliktbehafteten Objekte weiter voneinander (%s <-> %s)."
@@ -6177,21 +6545,19 @@ msgstr "Drucken von 2 oder mehr TPU-Filamenten wird nicht unterstützt."
msgid "Tool %d"
msgstr "Werkzeug %d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Filament %s ist im %s platziert, aber der generierte G-Code-Pfad überschreitet den druckbaren Bereich des %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Filamente %s sind im %s platziert, aber der generierte G-Code-Pfad überschreitet den druckbaren Bereich des %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "Filament %s ist im %s platziert, aber der generierte G-Code-Pfad überschreitet den druckbaren Bereich des %s."
+msgstr[1] "Filamente %s sind im %s platziert, aber der generierte G-Code-Pfad überschreitet den druckbaren Bereich des %s."
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Filament %s ist im %s platziert, aber der generierte G-Code-Pfad überschreitet die druckbare Höhe des %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Filamente %s sind im %s platziert, aber der generierte G-Code-Pfad überschreitet die druckbare Höhe des %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "Filament %s ist im %s platziert, aber der generierte G-Code-Pfad überschreitet die druckbare Höhe des %s."
+msgstr[1] "Filamente %s sind im %s platziert, aber der generierte G-Code-Pfad überschreitet die druckbare Höhe des %s."
msgid "Open wiki for more information."
msgstr "Öffnen Sie das Wiki für weitere Informationen."
@@ -6199,9 +6565,12 @@ msgstr "Öffnen Sie das Wiki für weitere Informationen."
msgid "Only the object being edited is visible."
msgstr "Nur das bearbeitete Modell ist sichtbar."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Filament %s kann nicht direkt auf der Oberfläche dieser Druckplatte gedruckt werden."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "Filament %s kann nicht direkt auf der Oberfläche dieser Druckplatte gedruckt werden."
+msgstr[1] "Filamente %s können nicht direkt auf der Oberfläche dieser Druckplatte gedruckt werden."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "PLA- und PETG-Filamente wurden in der Mischung erkannt. Passen Sie die Parameter gemäß dem Wiki an, um die Druckqualität zu gewährleisten."
@@ -6322,27 +6691,20 @@ msgstr "Vorbereiten"
msgid "Preview"
msgstr "Vorschau"
-msgid "Device"
-msgstr "Gerät"
-
-msgid "Multi-device"
-msgstr "Multi-Gerät"
-
msgid "Project"
msgstr "Projekt"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Gerät (Web)"
-
msgid "Yes"
msgstr "Ja"
msgid "No"
msgstr "Nein"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "Bevor ein neues Modell erstellt wird, wird %1% geschlossen. Möchten Sie fortfahren?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s wird vor dem Erstellen eines neuen Modells geschlossen. Möchten Sie fortfahren?"
msgid "Print all"
msgstr "Alle Platten drucken"
@@ -6387,6 +6749,10 @@ msgstr "Einrichtungsassistent"
msgid "Show Configuration Folder"
msgstr "Konfigurationsordner anzeigen"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Filamentprofile zurückholen, die durch eine Profilaktualisierung von den Druckern entfernt wurden, für die sie erstellt wurden"
+
msgid "Troubleshoot Center"
msgstr "Fehlerbehebungszentrum"
@@ -6625,6 +6991,14 @@ msgstr "Rasterlinien anzeigen"
msgid "Show Gridlines on plate"
msgstr "Rasterlinien auf der Druckplatte anzeigen"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "IDEX/IQEX-Werkzeugkopf anzeigen"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Zeigt in der G-Code-Vorschau die Darstellung des IDEX/IQEX-Werkzeugkopfs um jede aktive Düse an."
+
msgid "Reset Window Layout"
msgstr "Window-Layout zurücksetzen"
@@ -7255,6 +7629,8 @@ msgstr "Bewerten"
msgid "Calculating..."
msgstr "Berechnung läuft..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Kamera"
@@ -7337,9 +7713,12 @@ msgstr "Herunterladen..."
msgid "Cloud Slicing..."
msgstr "Cloud-Slicing..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "In der Cloud-Slicing-Warteschlange befinden sich %s Aufgaben vor Ihnen."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "In der Cloud-Slicing-Warteschlange befindet sich %d Aufgabe vor Ihnen."
+msgstr[1] "In der Cloud-Slicing-Warteschlange befinden sich %d Aufgaben vor Ihnen."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7370,6 +7749,11 @@ msgstr "Diese Funktion ist nur während des Druckens wirksam."
msgid "Silent"
msgstr "Leise"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Standard"
+
msgid "Sport"
msgstr "Sport"
@@ -7426,17 +7810,29 @@ msgstr "Bilder hochladen"
msgid "Number of images successfully uploaded"
msgstr "Bilder erfolgreich hochgeladenen "
-msgid " upload failed"
-msgstr "Hochladen fehlgeschlagen"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Hochladen von %s fehlgeschlagen"
-msgid " upload config prase failed\n"
-msgstr " Hochladen der Konfiguration fehlgeschlagen\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Analyse der Upload-Konfiguration für %s fehlgeschlagen"
-msgid " No corresponding storage bucket\n"
-msgstr " Kein entsprechender Speicher\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: Kein entsprechender Speicher-Bucket"
-msgid " cannot be opened\n"
-msgstr " Kann nicht geöffnet werden\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s kann nicht geöffnet werden"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7454,26 +7850,22 @@ msgstr "Hochladen fehlgeschlagen\n"
msgid "Obtaining instance_id failed\n"
msgstr "Abrufen der Instanz-ID fehlgeschlagen\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Ihr Kommentarergebnis kann aus einigen Gründen nicht hochgeladen werden. Wie folgt:\n"
-"\n"
-" Fehlercode: "
-
-msgid "error message: "
-msgstr "Fehlermeldung: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Ihr Kommentar kann aus folgenden Gründen nicht hochgeladen werden:\n"
"\n"
+" Fehlercode: %d\n"
+" Fehlermeldung: %s\n"
"\n"
-"Möchten Sie zur Webseite für die Bewertung weitergeleitet werden?"
+"Möchten Sie zur Webseite weitergeleitet werden, um eine Bewertung abzugeben?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Einige Ihrer Bilder konnten nicht hochgeladen werden. Möchten Sie zur Webseite für die Bewertung weitergeleitet werden?"
@@ -8311,6 +8703,108 @@ msgstr "Alle Einstellungen des Objekts anzeigen"
msgid "Material settings"
msgstr "Material-Einstellungen"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Jeder Modus legt fest, welche Werkzeugköpfe beteiligt sind und welche Rolle jeder davon spielt. Klicken Sie auf eine Werkzeugschaltfläche, um ihre Rolle zu wechseln — fahren Sie mit der Maus über eine Farbe unten, um zu sehen, was die jeweilige Rolle bewirkt."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Modus hinzufügen"
+
+# AI Translated
+msgid "Tools"
+msgstr "Werkzeuge"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-Code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Wie der Modus in der IDEX/IQEX-Modusauswahl der Platte bezeichnet wird. Erforderlich — ein Modus ohne Namen kann nicht ausgewählt werden."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Welche Werkzeugköpfe am Modus beteiligt sind und welche Rolle jeder davon spielt. Klicken Sie auf eine Kachel, um ihre Rolle zu wechseln."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-Code, der zu Druckbeginn ausgeführt wird, um den Drucker in diesen Modus zu versetzen (zum Beispiel ein Klipper-Aufruf SET_PRINT_MODE). Der Slicer gibt nur die Pfade des Primär-Werkzeugs (Primary) aus; die Firmware steuert die anderen."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Inaktiv"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Primär"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Kopie"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Spiegelung"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Führt alle geslicten Pfade aus. Immer Werkzeug 0 — wählen Sie oben mit „Position von Werkzeug 0“, welche Ecke des Druckbetts es einnimmt. Es kann im Raster nicht verschoben werden."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Folgt dem Primär-Werkzeug (Primary) auf Firmware-Ebene und druckt dieselben Pfade versetzt in seiner eigenen Zone."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Folgt dem Primär-Werkzeug (Primary) auf Firmware-Ebene und druckt dieselben Pfade gespiegelt an der Grenze zwischen den beiden Zonen."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Kennzeichnet ein Werkzeug auf dem Portal des Primär-Werkzeugs (Primary) als dessen Mehrfarben-Partner. Erforderlich für den Mehrfarbdruck in Modi mit gekoppelten Portalen."
+
+# AI Translated
+msgid "Primary"
+msgstr "Primär"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Modusname (erforderlich)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Name dieses Parallelmodus, wie er in der IDEX/IQEX-Modusauswahl der Platte erscheint. Wird im Projekt über den Namen gespeichert; wenn Sie einen Modus umbenennen, den Platten bereits verwenden, fallen diese auf Primär zurück. Darf nicht leer sein — ein leerer Name wird durch einen generierten ersetzt."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-Code, der einmal zu Beginn eines Drucks mit diesem Modus ausgegeben wird, vor dem „Maschinen Start G-Code“. Hier wird der Drucker in den passenden Firmware-Modus versetzt — zum Beispiel mit einem Klipper-Aufruf SET_PRINT_MODE oder einem RepRapFirmware-M567 —, da der Slicer nur die Pfade des Primär-Werkzeugs (Primary) ausgibt und die Firmware die Werkzeuge in den Rollen Kopie (Copy) / Spiegelung (Mirror) steuert. Platzhalter werden unterstützt; verwenden Sie die Bearbeiten-Schaltfläche, um sie zu durchsuchen. Leer lassen, wenn der Modus keine Firmware-Einrichtung benötigt."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "G-Code bearbeiten / Platzhalter durchsuchen"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Modus entfernen"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Änderungen dieser Sitzung an diesem Modus verwerfen (auf gespeicherten Wert zurücksetzen)"
+
msgid "Remove current plate (if not last one)"
msgstr "entferne aktuelle Platte (wenn nicht die letzte)"
@@ -8335,12 +8829,33 @@ msgstr "Bearbeite den Namen der aktuellen Platte"
msgid "Move plate to the front"
msgstr "Bewege die Platte nach vorne"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX-Modus: %1% (Prozessprofil: %2%) (Linksklick zum Wechseln, Rechtsklick für Menü)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX-Modus: %1% (Linksklick zum Wechseln, Rechtsklick für Menü)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Warnung: Diese Platte verwendet einen parallelen IDEX/IQEX-Modus mit Multimaterial-Objekten. Gehen Sie vorsichtig vor — prüfen Sie, ob Ihr G-Code diese Kombination korrekt verarbeitet."
+
msgid "Customize current plate"
msgstr "Aktuelle Platte anpassen"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "Die %s Düse kann %s nicht drucken."
+msgid "The left nozzle cannot print %s."
+msgstr "Die linke Düse kann %s nicht drucken."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "Die rechte Düse kann %s nicht drucken."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8350,12 +8865,18 @@ msgstr "Der Druck von Mischfarben-Filament auf einem Drucker mit nur einem Extru
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Mischen von %1% mit %2% im Druck wird nicht empfohlen.\n"
-msgid " nozzle"
-msgstr " Düse"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Es wird nicht empfohlen, die folgenden Filamente mit %1% zu drucken: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "%1%mm %2%-Düse"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Es wird nicht empfohlen, das folgende Filament mit %1% zu drucken: %2%\n"
+msgstr[1] "Es wird nicht empfohlen, die folgenden Filamente mit %1% zu drucken: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "Es wird nicht empfohlen, die folgenden Düsen- und Filamentkombinationen zu verwenden:\n"
@@ -8364,9 +8885,11 @@ msgstr "Es wird nicht empfohlen, die folgenden Düsen- und Filamentkombinationen
msgid "%1% with %2%\n"
msgstr "%1% mit %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " Druckplatte %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Slicen von Platte %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Ungültiger Name, die folgenden Zeichen sind nicht erlaubt:"
@@ -8401,12 +8924,6 @@ msgstr "AMS(1 Steckplatz)"
msgid "Not installed"
msgstr "Nicht installiert"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "Die Software unterstützt nicht die Verwendung unterschiedlicher Düsendurchmesser für einen Druck. Wenn die linke und rechte Düse nicht übereinstimmen, können wir nur mit dem Einzelkopf-Druck fortfahren. Bitte bestätigen Sie, welche Düse Sie für dieses Projekt verwenden möchten."
-
-msgid "Switch diameter"
-msgstr "Durchmesser wechseln"
-
msgid "Configuration incompatible"
msgstr "Konfiguration nicht kompatibel"
@@ -8488,6 +9005,10 @@ msgstr "Mischfilament"
msgid "Remove last mixed filament"
msgstr "Letztes Mischfilament entfernen"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Alle Mischfilamente entfernen"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Mischfilament hinzufügen"
@@ -8511,6 +9032,13 @@ msgstr "Das Mischfilament enthält ungültige Komponentenverweise"
msgid "Edit / Delete / Merge"
msgstr "Bearbeiten / Löschen / Zusammenführen"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "%1% Mischfilament entfernen?"
+msgstr[1] "Alle %1% Mischfilamente entfernen?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Das Ziel-Mischfilament verwendet dieses physische Filament als Komponente. Beim Zusammenführen wird dieses physische Filament entfernt und das Mischfilament kann dadurch ungültig werden. Fortfahren?"
@@ -8586,10 +9114,6 @@ msgstr "Datei wird geladen: %s"
msgid "Load 3MF"
msgstr "Lade 3MF"
-# AI Translated
-msgid "BambuStudio Project"
-msgstr "BambuStudio-Projekt"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "Der 3MF stammt nicht vom OrcaSlicer, lade nur die Geometriedaten."
@@ -8619,18 +9143,6 @@ msgstr "Sie sollten Ihre Software aktualisieren.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "Die Version %s der 3MF ist neuer als die Version %s %s. Bitte Ihre Software aktualisieren."
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "Die 3MF-Datei wurde von BambuStudio (Version %s) erstellt, die neuer ist als die kompatible Version %s. Nicht erkannte Einstellungen gefunden:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "Die 3MF wurde von BambuStudio (Version %s) erstellt, die neuer ist als die kompatible Version %s. Einige Einstellungen sind möglicherweise nicht vollständig kompatibel."
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "Die 3MF wurde von BambuStudio erstellt. Einige Einstellungen können von OrcaSlicer abweichen."
-
msgid "Invalid values found in the 3MF:"
msgstr "Ungültige Werte in der 3MF-Datei gefunden:"
@@ -8799,6 +9311,14 @@ msgstr "Auto-Drop deaktivieren, um die Z-Positionierung beizubehalten?\n"
msgid "Object with floating parts was detected"
msgstr "Objekt mit schwebenden Teilen erkannt"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Slicen nicht möglich: Ein Objekt überlappt einen für den IDEX/IQEX-Paralleldruck reservierten Bereich (eine sekundäre Zone oder einen Freiraumstreifen für Schlitten innerhalb der primären Zone)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Slicen nicht möglich: Der Reinigungsturm überlappt einen für den IDEX/IQEX-Paralleldruck reservierten Bereich (eine sekundäre Zone oder einen Freiraumstreifen für Schlitten innerhalb der primären Zone)."
+
msgid "Another export job is running."
msgstr "Ein weiterer Exportauftrag läuft gerade."
@@ -8853,8 +9373,9 @@ msgstr "Ersetzte Volumen"
msgid "Please select a file"
msgstr "Bitte wählen Sie eine Datei"
-msgid "Do you want to replace it"
-msgstr "Möchten Sie es ersetzen"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Möchten Sie es ersetzen?"
msgid "Message"
msgstr "Mitteilung"
@@ -8884,6 +9405,50 @@ msgstr "Ungültige Daten"
msgid "Slicing Canceled"
msgstr "Slicing abgebrochen"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Druckbett-Temperaturkonflikt: T%d (%s) stellt das Druckbett auf %d℃ ein — T%d (%s) benötigt %d℃. Das Primär-Werkzeug steuert das Druckbett; sekundäre Werkzeuge drucken mit der Temperatur, die es einstellt."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Filamenttypen passen nicht zusammen: T%d verwendet %s und T%d verwendet %s. Diese Materialien haben unvereinbare Anforderungen und sind nicht für den gemeinsamen Druck vorgesehen."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"Auf Platte %d ist der IDEX/IQEX-Parallelmodus aktiv, mit folgenden Bedenken:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Slicen fortsetzen?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Warnung zum IDEX/IQEX-Parallelmodus"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Diese Warnungen nicht erneut anzeigen"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Platte %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Folgende Bedenken zum IDEX/IQEX-Parallelmodus wurden festgestellt:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Netzwerk-Plugin erfolgreich gewechselt."
@@ -8917,8 +9482,8 @@ msgid "Sync now"
msgstr "Jetzt synchronisieren"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Rückgängig und Wiederholen sind während eines laufenden Vorgangs nicht möglich. Beenden Sie ihn zuerst."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Rückgängig machen oder Wiederholen ist nicht möglich, während ein Vorgang läuft. Stoppen Sie den Vorgang oder warten Sie, bis er abgeschlossen ist, und versuchen Sie es dann erneut."
# AI Translated
msgid ""
@@ -8990,6 +9555,14 @@ msgstr "Download fehlgeschlagen, Dateigröße nicht erlaubt."
msgid "Project downloaded %d%%"
msgstr "Projekt heruntergeladen %d%%Der Import in Orca Slicer ist fehlgeschlagen. Bitte laden Sie die Datei herunter und importieren Sie sie manuell."
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"Die Tests „PA Linie“ und „PA Muster“ sind auf Förderbanddruckern noch nicht verfügbar.\n"
+"Bitte verwenden Sie stattdessen die Methode „PA Turm“."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Test für Pressure Advance"
@@ -8997,11 +9570,15 @@ msgstr "Test für Pressure Advance"
msgid "INFO:"
msgstr "INFO:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Keine Beschleunigungen für die Kalibrierung bereitgestellt. Verwenden Sie den Standardbeschleunigungswert"
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Keine Beschleunigungen für die Kalibrierung angegeben. Standardbeschleunigung %1%mm/s² wird verwendet"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Keine Geschwindigkeiten für die Kalibrierung eingestellt. Verwenden die optimale Geschwindigkeit"
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Keine Geschwindigkeiten für die Kalibrierung angegeben. Optimale Standardgeschwindigkeit %1%mm/s wird verwendet"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9016,6 +9593,15 @@ msgstr "Orca YOLO Flusskalibrierung"
msgid "Flowrate Test - Pass%d"
msgstr "Flussratentest - Durchgang %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Für den Bereich %1% bis %2%℃ ist kein Temperaturturm für Förderbanddrucker verfügbar. Verwenden Sie einen Bereich, den die Turmmodelle abdecken, zum Beispiel 230 bis 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Temperaturturm"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Düsentemperaturtest"
@@ -9039,11 +9625,16 @@ msgstr "Eckentest"
msgid "Import SLA archive"
msgstr "SLA-Archiv importieren"
-msgid "The selected file"
-msgstr "Die ausgewählte Datei"
-
-msgid "Does not contain valid G-code."
-msgstr "enthält keinen gültigen G-Code."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Die ausgewählte Datei:\n"
+"%1%\n"
+"enthält keinen gültigen G-Code."
msgid "An Error has occurred while loading the G-code file."
msgstr "Beim Laden der G-Code-Datei ist ein Fehler aufgetreten."
@@ -9317,6 +9908,27 @@ msgstr "Derzeit kann das Objektkonfigurationsformular nicht mit einem Mehrfach-E
msgid "Not available"
msgstr "Nicht verfügbar"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (keine Platte)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — kein Filament zugewiesen\n"
+"Fügen Sie im Reiter „Maschine“ einen Extruder hinzu, damit dieser Druckkopf einen Filament-Steckplatz hat."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> Filament %2%"
+
msgid "isometric"
msgstr "isometrisch"
@@ -9356,8 +9968,10 @@ msgstr "Europa"
msgid "North America"
msgstr "Nordamerika"
+# AI Translated
+msgctxt "Region"
msgid "Others"
-msgstr "Sonstiges"
+msgstr "Andere"
msgid "Changing the region will log you out of your account.\n"
msgstr "Wenn Sie die Region ändern, werden Sie von Ihrem Konto abgemeldet.\n"
@@ -9430,11 +10044,17 @@ msgstr "Netzwerk-Plugin konnte nicht neu geladen werden. Bitte starten Sie die A
msgid "Reload Failed"
msgstr "Neuladen fehlgeschlagen"
-msgid "Associate"
-msgstr "Zuordnen"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "%s:// verknüpfen"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "mit OrcaSlicer, damit öffnet Orca Modelle von"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "%s:// mit OrcaSlicer verknüpfen, damit Orca Modelle von %s öffnen kann"
msgid "Current Association: "
msgstr "Aktuelle Zuordnung: "
@@ -9734,6 +10354,9 @@ msgstr "Letzte Druckaktion merken"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Wenn aktiviert, merkt sich OrcaSlicer die zuletzt gewählte Option im Dropdown-Menü der Druckschaltfläche (z. B. Drucken, Geslicte Datei der Druckplatte exportieren, G-Code-Datei exportieren) und verwendet sie beim nächsten Start als Standard."
+msgid "Camera"
+msgstr "Kamera"
+
msgid "Touchpad"
msgstr "Touchpad"
@@ -10161,6 +10784,9 @@ msgstr "Netzwerk-Plugin-Version"
msgid "Select the network plug-in version to use"
msgstr "Wählen Sie die zu verwendende Version des Netzwerk-Plugins aus"
+msgid "Associate"
+msgstr "Zuordnen"
+
msgid "Associate files to OrcaSlicer"
msgstr "Dateien mit OrcaSlicer verknüpfen"
@@ -10210,6 +10836,12 @@ msgstr "Nicht unterstützte Profile anzeigen"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Zeigt inkompatible/nicht unterstützte Profile in den Dropdown-Listen für Drucker und Filament an. Diese Profile können nicht ausgewählt werden."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Experimental Features"
msgstr "Experimentelle Funktionen"
@@ -10494,10 +11126,6 @@ msgstr "3MF veröffentlichen..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Wählen Sie aus, welche Einstellungen in der 3MF-Datei veröffentlicht werden"
-# AI Translated
-msgid "Video Guide"
-msgstr "Video-Anleitung"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Mischfilament - wird als Ganzes veröffentlicht, wenn oben \"Aktivieren\" ausgewählt ist"
@@ -10662,6 +11290,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Einfach"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s aus %s"
+
# AI Translated
msgid "Search actions"
msgstr "Aktionen suchen"
@@ -10779,6 +11413,10 @@ msgstr "Zeige Details"
msgid "Hide details"
msgstr "Details ausblenden"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Die Webansicht ist nicht verfügbar."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11062,9 +11700,12 @@ msgstr "Senden fehlgeschlagen"
msgid "The name length exceeds the limit."
msgstr "Die Namenslänge überschreitet das Limit."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Kosten %dg Filament und %d Änderungen mehr als optimale Gruppierung."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "%dg mehr Filament und %d Filamentwechsel mehr als bei der optimalen Gruppierung."
+msgstr[1] "%dg mehr Filament und %d Filamentwechsel mehr als bei der optimalen Gruppierung."
# AI Translated
msgid "Right-Ext"
@@ -11154,6 +11795,10 @@ msgstr "Einige Filamente wechseln möglicherweise während des Drucks zwischen E
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "In dieser Datei befindet sich zu Fädenbildung neigendes Filament. Für beste Druckqualität empfehlen wir, die Düsenverklumpungs-Erkennung in den Auto-Modus zu schalten."
+# AI Translated
+msgid "Switch"
+msgstr "Wechseln"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Wenn 'Dynamische Flusskalibrierung' auf Auto/Ein gesetzt ist, verwendet das System den manuellen Kalibrierungswert oder den Standardwert und überspringt den Flusskalibrierungsprozess. Sie können auf der Seite 'Kalibrierung' eine manuelle Flusskalibrierung für TPU-Filament durchführen."
@@ -11459,6 +12104,10 @@ msgstr "Die Synchronisierung verschiedener Extrudertypen oder Düsenvolumentypen
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Änderungen der Parameter mit den entsprechenden Parametern eines anderen Extruders synchronisieren."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Parameter mit diesem Symbol können pro Düse konfiguriert werden."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Klicken Sie hier, um alle Einstellungen auf die zuletzt gespeicherten Parameter zurückzusetzen."
@@ -11687,6 +12336,9 @@ msgstr "Filament für Funktionen"
msgid "Ooze prevention"
msgstr "Ooze-Prävention"
+msgid "Others"
+msgstr "Sonstiges"
+
msgid "Special mode"
msgstr "Spezialmodus"
@@ -11727,8 +12379,11 @@ msgstr[1] ""
"Die folgende Zeilen %s enthalten reservierte Schlüsselwörter.\n"
"Bitte entfernen Sie diese, da sonst die Visualisierung des G-Codes und die Schätzung der Druckzeit nicht mehr möglich sind."
-msgid "Reserved keywords found"
-msgstr "Reservierte Schlüsselwörter gefunden"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Reservierte Schlüsselwörter gefunden in %1%"
msgid "Setting Overrides"
msgstr "Überschreiben der Einstellungen"
@@ -11868,7 +12523,16 @@ msgstr "Druckbarer Raum"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Wählen Sie die Implementierung des Netzwerkagenten für die Druckerkommunikation. Verfügbare Agenten werden beim Start registriert."
+# AI Translated
+msgid "Belt printer"
+msgstr "Förderbanddrucker"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Transformationen ins Maschinenkoordinatensystem"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Ungültiger Wert für Parameter %1%: %2% angegeben"
@@ -11981,9 +12645,29 @@ msgstr "Düsendurchmesser"
msgid "Wipe tower"
msgstr "Reinigungsturm"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Band-Reinigungsturm"
+
msgid "Single extruder multi-material parameters"
msgstr "Single-Extruder-Multimaterial-Parameter"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "IDEX/IQEX-Konfiguration"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Warnungen vor dem Slicen"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Zeigt vor dem Slicen einen Warndialog an, wenn Bedenken zum IDEX/IQEX-Parallelmodus festgestellt werden (Konflikte bei der Druckbetttemperatur, nicht zusammenpassende Filamenttypen, Multimaterial-Konflikte). Kann im Dialog selbst unterdrückt werden. Hier wieder aktivieren, falls versehentlich unterdrückt."
+
+# AI Translated
+msgid "Modes"
+msgstr "Modi"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Dies ist ein Single-Extruder-Multimaterial-Drucker, die Durchmesser aller Extruder werden auf den neuen Wert gesetzt. Möchten Sie fortfahren?"
@@ -11993,6 +12677,22 @@ msgstr "Höhenbegrenzungen für Schichten"
msgid "Z-Hop"
msgstr "Z-Hop"
+# AI Translated
+msgid "Front-left"
+msgstr "Vorne links"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Vorne rechts"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Hinten links"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Hinten rechts"
+
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
"\n"
@@ -12014,22 +12714,37 @@ msgstr "Modifizierten Wert verwenden"
msgid "Detached"
msgstr "Losgelöst"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% und %2% sind diesem Drucker zugeordnet. Diese Profile werden gelöscht, wenn der Drucker gelöscht wird."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d Filament Profil und %d Prozess Profil sind diesem Drucker zugeordnet. Diese Profile werden gelöscht, wenn der Drucker gelöscht wird."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d Filamentprofil"
+msgstr[1] "%d Filamentprofile"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d Prozessprofil"
+msgstr[1] "%d Prozessprofile"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Profile, die von anderen Profile geerbt wurden, können nicht gelöscht werden!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Die folgenden Profile erben dieses Profil."
-msgstr[1] "Das folgende Profil erbt dieses Profil."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "Das folgende Profil erbt von diesem Profil."
+msgstr[1] "Die folgenden Profile erben von diesem Profil."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% Profil"
+msgid "Delete Preset"
+msgstr "Profil löschen"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -12043,9 +12758,9 @@ msgstr ""
"Sind Sie sicher, dass Sie das ausgewählte Profil löschen möchten?\n"
"Wenn das Profil einem Filament entspricht, das derzeit auf Ihrem Drucker verwendet wird, setzen Sie bitte die Filamentinformationen für diesen Slot zurück."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Sind sie sicher, dass sie das ausgewählte Profil %1% wollen?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Möchten Sie das ausgewählte Profil wirklich löschen?"
msgid "Select printers"
msgstr "Drucker auswählen"
@@ -12098,9 +12813,40 @@ msgstr "Fortsetzen"
msgid "Don't warn again for this preset"
msgstr "Nicht erneut für dieses Profil warnen"
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# AI Translated
+# Needs human review: Short nozzle flow tag kept as in English; SF also abbreviates 'Standardfluss'. Check it fits the tag widget and matches the printer's labelling.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Short nozzle flow tag kept as in English; HF also abbreviates 'Hoher Fluss'. Check it matches the printer's labelling.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Short nozzle flow tag kept as in English (TPU High Flow).
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Short nozzle flow tag kept as in English (E3D High Flow).
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short nozzle flow tag kept as in English (Extra High Flow).
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
msgid "No modifications need to be copied."
msgstr "Es müssen keine Änderungen kopiert werden."
@@ -12302,6 +13048,12 @@ msgstr "Eines der Profile existiert nicht"
msgid "Compared presets has different printer technology"
msgstr "Die verglichenen Profile haben unterschiedliche Druckertechnologie"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "„%1%“ vs. „%2%“"
+
msgid "Add File"
msgstr "Datei hinzufügen"
@@ -12327,6 +13079,22 @@ msgstr "Materialliste"
msgid "Assembly Guide"
msgstr "Montageanleitung"
+# AI Translated
+msgid "Image files"
+msgstr "Bilddateien"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXT Dateien"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCEL Dateien"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDF Dateien"
+
msgid "Author"
msgstr "Autor"
@@ -12526,9 +13294,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Summe Ramming"
-msgid "Volume"
-msgstr "Volumen"
-
msgid "Ramming line"
msgstr "Ramming-Linie"
@@ -12555,8 +13320,10 @@ msgstr "Multiplikator "
msgid "Flushing volumes for filament change"
msgstr "Reinigungsvolumen für Filamentwechsel"
-msgid "Please choose the filament color"
-msgstr "Bitte wählen Sie die Filamentfarbe"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "von/nach"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "Cloud-Agent ist nicht verfügbar. Bitte starten Sie OrcaSlicer neu und versuchen Sie es erneut."
@@ -12577,6 +13344,144 @@ msgstr "Anmeldung fehlgeschlagen. Bitte versuchen Sie es erneut."
msgid "parse json failed"
msgstr "JSON-Parsing fehlgeschlagen"
+msgid "Loading…"
+msgstr "Laden…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Benutzerdefiniert"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Willkommen im Orca Slicer"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Das Orca Slicer wird in mehreren Schritten eingerichtet. Lass uns anfangen!"
+
+msgid "Get Started"
+msgstr "Loslegen"
+
+msgid "Please select your login region"
+msgstr "Bitte wählen Sie Ihre Login-Region aus"
+
+msgid "Finish"
+msgstr "Fertig"
+
+msgid "Printer Selection"
+msgstr "Druckerauswahl"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Hersteller"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Benutzerdefinierter Drucker"
+
+msgid "Create"
+msgstr "Erstellen"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Nach neuen Druckern suchen"
+
+msgid "At least one printer must be selected."
+msgstr "Es muss mindestens ein Drucker ausgewählt sein."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Neue Drucker gefunden"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Neue Druckerhersteller installiert: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Neue Druckerhersteller wurden gefunden, aber die Installation wurde abgebrochen."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Keine neuen Drucker gefunden."
+
+msgid "Filament Selection"
+msgstr "Filamentauswahl"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "System-Filamente"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "Benutzerdefinierte Filamente"
+
+# AI Translated
+msgid "Create New"
+msgstr "Neu erstellen"
+
+msgid "Filament type"
+msgstr "Filamenttyp"
+
+msgid "Vendor"
+msgstr "Hersteller"
+
+# AI Translated
+msgid "No items"
+msgstr "Keine Einträge"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Einträge filtern"
+
+# AI Translated
+msgid "Checked"
+msgstr "Ausgewählt"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Nicht ausgewählt"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Gefilterte auswählen"
+
+# AI Translated
+msgid "Clear all"
+msgstr "Alle löschen"
+
+msgid "At least one filament must be selected."
+msgstr "Es muss mindestens ein Filament ausgewählt sein."
+
+msgid "Do you want to use the default filament?"
+msgstr "Möchten Sie das Standard-Filament verwenden?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Dies deaktiviert alle Cloud-Funktionen, einschließlich der Profil-Synchronisierung mit Orca Cloud. Benutzer, die es vorziehen, vollständig offline zu arbeiten, können diese Option aktivieren."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Hinweis: Wenn der Unsichtbare Modus aktiviert ist, werden Ihre Benutzerprofile nicht in Orca Cloud gesichert."
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "Stealth-Modus aktivieren."
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Proprietäre Plugins"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Einige Druckerhersteller benötigen proprietäre Plugins für die Kommunikation mit ihren Druckern. Bitte wählen Sie das entsprechende Plugin aus, wenn Sie solche Drucker verwenden."
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Bitte beachten Sie, dass diese Plugins nicht von OrcaSlicer entwickelt oder gepflegt werden. Die Verwendung erfolgt nach eigenem Ermessen und auf eigenes Risiko."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Bambu Network-Plug-in installieren"
+
msgid "[Action Required] "
msgstr "[Aktion erforderlich] "
@@ -12645,9 +13550,6 @@ msgstr "Verfügbar, wenn die 3D-Ansicht im Tab Vorbereiten den Fokus hat."
msgid "Select a part"
msgstr "Teil auswählen"
-msgid "Select multiple objects"
-msgstr "Mehrere Objekte auswählen"
-
msgid "Select objects by rectangle"
msgstr "Objekte per Rechteck auswählen"
@@ -12976,26 +13878,20 @@ msgstr "Die Firmware-Version ist nicht korrekt. Vor dem Drucken müssen Sie die
msgid "Extension Board"
msgstr "Erweiterungsboard"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "In %1% Teile aufteilen"
-
msgid "Repair finished"
msgstr "Reparatur abgeschlossen"
-msgid "Repair failed"
-msgstr "Reparatur fehlgeschlagen"
-
-msgid "Repair canceled"
-msgstr "Reparatur abgebrochen"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Kopieren der Datei %1% nach %2% fehlgeschlagen: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Neue Herstellerprofile werden heruntergeladen: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Neues Herstellerprofil wird heruntergeladen: %1%..."
+msgstr[1] "Neue Herstellerprofile werden heruntergeladen: %1%..."
# AI Translated
#, boost-format
@@ -13003,8 +13899,12 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Konfigurationspaket: %1% aktualisiert auf %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Herstellerprofile konnten nicht heruntergeladen werden: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Herstellerprofil konnte nicht heruntergeladen werden: %1%"
+msgstr[1] "Herstellerprofile konnten nicht heruntergeladen werden: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Vor der Aktualisierung der Konfiguration müssen die nicht gespeicherten Änderungen überprüft werden."
@@ -13012,6 +13912,10 @@ msgstr "Vor der Aktualisierung der Konfiguration müssen die nicht gespeicherten
msgid "Open G-code file:"
msgstr "Öffne G-Code-Datei:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Erzeugung des Reinigungsturms fehlgeschlagen, möglicherweise wegen einer leeren ersten Schicht."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Ein Objekt hat eine leere erste Schicht und kann nicht gedruckt werden. Bitte schneiden Sie den Boden ab oder aktivieren Sie die Stützstrukturen."
@@ -13032,9 +13936,61 @@ msgstr "G-Code für Extrusionsrollenwechsel verarbeiten"
msgid "Filament change extrusion role G-code"
msgstr "G-Code für Extrusionsrollenwechsel verarbeiten"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"G-Code-Export nach %1% fehlgeschlagen.\n"
+"Die Datei kann nicht zum Schreiben geöffnet werden."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "Der Ordner %1% existiert nicht."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"G-Code-Export nach %1% fehlgeschlagen.\n"
+"Ist der Datenträger voll?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Die Ausgabe-G-Code-Datei konnte nicht von %1% in %2% umbenannt werden.\n"
+"Fehler: %3%\n"
+"Ist %1% gesperrt?"
+
msgid "No object can be printed. It may be too small."
msgstr "Es kann kein Objekt gedruckt werden. Vielleicht sind die Objekte zu klein."
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "Dem IDEX/IQEX-Modus „%1%“ sind auf dem ausgewählten Drucker keine Werkzeuge zugewiesen. Stattdessen wird im Modus Primär gedruckt. Weisen Sie die Werkzeuge des Modus in den Drucker-Einstellungen zu, oder wählen Sie über die IDEX/IQEX-Schaltfläche der Platte einen anderen Modus."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Diese Platte ist auf den IDEX/IQEX-Modus „%1%“ eingestellt, den der ausgewählte Drucker nicht definiert. Stattdessen wird im Modus Primär gedruckt. Wählen Sie über die IDEX/IQEX-Schaltfläche der Platte einen Modus, oder stellen Sie den Modus in den Drucker-Einstellungen wieder her."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Ungültiger Wert für Vorschaubilder:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Ihr Druck ist sehr nahe an den Priming-Regionen. Stellen Sie sicher, dass es keine Kollision gibt."
@@ -13078,6 +14034,10 @@ msgstr "Gruppierungsfehler: %1% kann nicht in der linken Düse platziert werden"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Gruppierungsfehler: %1% kann nicht in der rechten Düse platziert werden"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Keine gültige Düse gefunden. Bitte überprüfen Sie die Düsenanzahl."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Gruppierungsfehler im manuellen Modus. Bitte prüfen Sie die Düsenanzahl oder gruppieren Sie neu."
@@ -13097,6 +14057,18 @@ msgstr "mehrere Schnittpunkte mit einer Wand, nur einer wurde verwendet (%1%)"
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "eine Wand liegt vollständig innerhalb eines Modifizierers, der Modifizierer wurde nicht auf sie angewendet (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "Modifizierer „%2%“ (%1%) von „%3%“ deckt eine ganze Wand ab"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "Modifizierer „%2%“ (%1%) von „%3%“ (%4% insgesamt) deckt eine ganze Wand ab"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13111,9 +14083,47 @@ msgstr "Modifizierer „%1%“ von „%2%“ (%3% insgesamt) hatte keine Auswirk
msgid "Seam placement may differ from expected."
msgstr "Die Nahtplatzierung kann von der erwarteten abweichen."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Interne Brücke"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() hat einen negativen Abstand erzeugt. Haben Sie eine Extrusionsbreite zu klein eingestellt?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() hat einen negativen Fluss erzeugt. Haben Sie eine Extrusionsbreite zu klein eingestellt?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Berechnung der Linienbreite von %1% fehlgeschlagen. Der Wert von „%2%“ kann nicht abgerufen werden."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Ungültiger Abstand für Flow::with_spacing() übergeben, überprüfen Sie Ihre Schichthöhe und Extrusionsbreite"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Die ausgewählte 3MF-Datei wurde mit einer neueren Version von %1% gespeichert und ist nicht kompatibel."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Die ausgewählte 3MF enthält ein Objekt mit aufgemalten FDM-Stützen, das mit einer neueren Version von PrusaSlicer erstellt wurde, und ist nicht kompatibel."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Die ausgewählte 3MF enthält ein Objekt mit aufgemalter Naht, das mit einer neueren Version von PrusaSlicer erstellt wurde, und ist nicht kompatibel."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Die ausgewählte 3MF enthält ein Objekt mit aufgemaltem Multimaterial, das mit einer neueren Version von PrusaSlicer erstellt wurde, und ist nicht kompatibel."
+
msgid "undefined error"
msgstr "unbekannter Fehler"
@@ -13207,6 +14217,56 @@ msgstr "Überprüfung fehlgeschlagen"
msgid "write callback failed"
msgstr "Schreib-Callback fehlgeschlagen"
+# AI Translated
+msgid "unknown error"
+msgstr "unbekannter Fehler"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Mehrfarbdrucke in IDEX/IQEX-Parallelmodi erfordern für jedes Filament einen eigenen physischen Extruder. Zwei oder mehr der aktiven Filamente werden über die physische Extruderzuordnung des Druckers (einen MMU/AFC-Verteiler) zum selben physischen Kopf geleitet, dem das nachgeführte Portal nicht folgen kann."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "Der aktive IDEX/IQEX-Modus definiert kein Primär-Werkzeug, daher kann der Mehrfarbdruck nicht geplant werden. Öffnen Sie in den Drucker-Einstellungen den Editor für IDEX/IQEX-Modi und weisen Sie einem Werkzeug die Rolle Primär (Primary) zu."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Mehrfarbdruck in diesem Modus ist kein Paralleldruck — alle aktiven Werkzeuge befinden sich auf einem einzigen Portal, es gibt also kein zweites Portal, auf das kopiert oder gespiegelt wird. Schalten Sie die Platte für Mehrfarbdruck auf einem einzigen Portal in den Modus Primär, oder definieren Sie einen IDEX/IQEX-Modus, der Werkzeuge auf einem zweiten Portal enthält."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Mehrfarbdrucke in IDEX/IQEX-Parallelmodi erfordern ein Span-Werkzeug auf dem Portal des Primär-Werkzeugs — ohne ein solches deklariert der Modus keinen Mehrfarben-Partner auf demselben Portal. Reduzieren Sie den Druck auf ein einziges Filament, wechseln Sie in den Modus Primär, oder öffnen Sie in den Drucker-Einstellungen den Editor für IDEX/IQEX-Modi und markieren Sie ein Werkzeug auf dem Portal des Primär-Werkzeugs als Span."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "In diesem Span-Modus werden Farben nur von %1% gedruckt, aber Filament %2% ist keinem Werkzeug zugeordnet. Verwenden Sie Filamente, die %1% zugeordnet sind, oder schalten Sie diese Platte in den Modus Primär."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "In diesem Span-Modus werden Farben nur von %1% gedruckt, aber Filament %2% ist T%3% zugeordnet. Verwenden Sie Filamente, die %1% zugeordnet sind, oder schalten Sie diese Platte in den Modus Primär."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Das ausgewählte Profil kann nicht geladen werden: %1%\n"
+"\tGrund: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Laden der Profildatei fehlgeschlagen: %1%\n"
+"\tGrund: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% liegt zu nahe an einem ausgeschlossenen Bereich. Beim Drucken kann es zu Kollisionen kommen."
@@ -13223,27 +14283,34 @@ msgstr "%1% ist zu hoch und es kommt zu Kollisionen."
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "Die relative Position von Modell und Reinigungsturm erfüllt nicht die Anforderungen der Funktion \"Keine dünnen Schichten\". Bitte passen Sie ihre relative Position an, verringern Sie die Modellhöhe oder deaktivieren Sie \"Keine dünnen Schichten\"."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " befindet sich zu nahe an einem Sperrbereich. Beim Drucken kann es zu Kollisionen kommen."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " ist zu nahe am Klumpenerkennungsbereich. Beim Drucken kann es zu Kollisionen kommen."
-
-msgid "Prime Tower"
-msgstr "Reinigungsturm"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " ist zu nah an anderen und es können Kollisionen verursacht werden.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " ist zu nahe am Sperrbereich und es werden Kollisionen verursacht.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " ist zu nahe am Klumpenerkennungsbereich und es werden Kollisionen verursacht.\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% liegt zu nahe am Klumpenerkennungsbereich. Beim Drucken kann es zu Kollisionen kommen."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " liegt teilweise außerhalb des druckbaren Bereichs und kann nicht gedruckt werden.\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "Der Reinigungsturm ist zu nah an anderen, was Kollisionen verursachen kann.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "Der Reinigungsturm ist zu nahe an einem Sperrbereich und es werden Kollisionen verursacht.\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "Der Reinigungsturm ist zu nahe am Klumpenerkennungsbereich und es werden Kollisionen verursacht.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "Der Reinigungsturm liegt zu nahe an einem Sperrbereich. Beim Drucken kann es zu Kollisionen kommen."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "Der Reinigungsturm liegt zu nahe am Klumpenerkennungsbereich. Beim Drucken kann es zu Kollisionen kommen."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "Der Reinigungsturm liegt teilweise außerhalb des druckbaren Bereichs und kann nicht gedruckt werden.\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "Die ausgewählten Düsentemperaturen sind nicht kompatibel. Die Düsentemperatur jedes Filaments muss innerhalb des empfohlenen Düsentemperaturbereichs der anderen Filamente liegen. Andernfalls kann es zu Düsenverstopfungen oder Druckerschäden kommen."
@@ -13257,6 +14324,58 @@ msgstr "Wenn Sie trotzdem drucken möchten, können Sie die Option in Einstellun
msgid "No extrusions under current settings."
msgstr "Keine Extrusion unter den aktuellen Einstellungen."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Mischfilamente werden in IDEX/IQEX-Parallelmodi nicht unterstützt. Schalten Sie diese Platte in den Modus Primär."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Der IDEX/IQEX-Modus „%1%“ druckt mit T%2%, aber keines der Filamente dieser Platte liegt auf einem konfigurierten Werkzeug. Weisen Sie ein auf T%2% geladenes Filament zu, oder schalten Sie diese Platte in den Modus Primär."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Der IDEX/IQEX-Modus „%1%“ druckt mit T%2%, aber die Filamente dieser Platte liegen auf %3%. Weisen Sie ein auf T%2% geladenes Filament zu, oder schalten Sie diese Platte in den Modus Primär."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Druckbasis (Raft) ist nicht mit dem Förderbanddrucker-Modus kompatibel."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Luftzug-Schutz ist nicht mit dem Förderbanddrucker-Modus kompatibel."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "Ein Rand ist auf einem Förderbanddrucker nicht mit dem Vasenmodus kompatibel. Deaktivieren Sie eine der beiden Optionen."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Das Förderband ist für einen Rand zu steil, daher wird kein Rand erzeugt."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Ein Rand wird nur erzeugt, wenn das Förderband geneigt ist. Legen Sie einen „Neigungswinkel des Förderbands“ fest, oder entfernen Sie die Randeinstellung."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Förderbanddrucker unterstützen nur äußeren und inneren Rand. „Automatisch“, „Mausohren“ und „Bemalt“ werden als „Nur Außen“ mit „Randbreite“ gedruckt."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "„Lücke zwischen Rand und Objekt“ trennt den vorderen Rand von der Vorderkante des Objekts, also der Kante, die er verankern soll. Setzen Sie den Abstand auf 0, wenn Sie „Länge des vorderen Randes“ verwenden."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "„Länge des vorderen Randes“ reicht entlang des Förderbands vor jedes Objekt hinaus, und „Anordnen“ reserviert diesen Platz nicht. Lassen Sie Abstand zwischen den Objekten."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "Der Rand „Nur Vorderkante“ gilt für Förderbanddrucker. Auf diesem Drucker wird er als gewöhnlicher äußerer Rand gedruckt."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Es wird ein Mischfilament mit Verlauf verwendet, aber „Mischfarben-Unterschicht“ ist deaktiviert. Der Verlauf wird nicht gedruckt."
@@ -13267,6 +14386,18 @@ msgstr "Der gewählte Zeitraffermodus wird nicht unterstützt, wenn die Sequenz
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "Die Klumpenerkennung wird nicht unterstützt, wenn die Sequenz \"nach Objekt\" aktiviert ist."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "Der Band-Reinigungsturm wird in der Druckreihenfolge „Nach Objekt“ nicht erzeugt; bei Filamentwechseln wird nicht gespült."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "Der Band-Reinigungsturm ist aktiviert, aber das Projekt enthält kein Reinigungsturm-Objekt; bei Filamentwechseln wird nicht gespült. Öffnen Sie das Projekt in der Anwendung, um den Turm zu erzeugen."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Das Projekt enthält mehrere verwaltete Band-Reinigungstürme. Laden Sie die Platte neu oder schalten Sie den Band-Reinigungsturm aus und wieder ein, um ihn neu zu erzeugen."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Die gleichzeitige Aktivierung von präziser Z-Höhe und Reinigungsturm kann zu Schneidefehlern führen."
@@ -13283,10 +14414,6 @@ msgstr "Der Vasen-Modus funktioniert nicht, wenn ein Objekt mehr als ein Materia
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Obwohl das Objekt %1% selbst in das Bauvolumen passt, überschreitet es die maximale Bauvolumenhöhe aufgrund der Material-Schrumpfungskompensation."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "Das Objekt %1% überschreitet die maximale Bauvolumenhöhe."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Obwohl das Objekt %1% selbst in das Bauvolumen passt, überschreitet seine letzte Schicht die maximale Bauvolumenhöhe."
@@ -13294,6 +14421,10 @@ msgstr "Obwohl das Objekt %1% selbst in das Bauvolumen passt, überschreitet sei
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Sie möchten möglicherweise die Größe Ihres Modells reduzieren oder die aktuellen Druckeinstellungen ändern und es erneut versuchen."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "Das Objekt %1% überschreitet die maximale Bauvolumenhöhe."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Variable Schichthöhe wird nicht mit organischen Stützstrukturen unterstützt."
@@ -13448,17 +14579,23 @@ msgstr "Das Adaptive Pressure Advance-Modell für einen oder mehrere Extruder ka
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "Filament-Schrumpfung wird nicht verwendet, da sich die Filament-Schrumpfung für die verwendeten Filamente signifikant unterscheidet."
-msgid "Generating skirt & brim"
-msgstr "Generieren von Schürze und Rand (skirt & brim)"
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "Der Druck ist leer. Das Modell ist mit den aktuellen Druckeinstellungen nicht druckbar."
+# AI Translated
+msgid "Generating skirt & brim"
+msgstr "Generieren von Umrandung und Rand"
+
+# AI Translated
msgid ""
"Per-object skirts cannot fit between the objects in By object print sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to Combined, or switch Print sequence to By layer."
msgstr ""
-"Schürzen für einzelne Objekte passen nicht zwischen die Objekte in der Druckreihenfolge 'Nach Objekt'.\n"
+"Umrandungen für einzelne Objekte passen nicht zwischen die Objekte in der Druckreihenfolge 'Nach Objekt'.\n"
"\n"
-"Bewegen Sie die Objekte weiter auseinander, verringern Sie die Größe von Rand/Schürze, wechseln Sie den Schürzentyp zu 'Kombiniert' oder wechseln Sie die Druckreihenfolge zu 'Nach Schicht'."
+"Bewegen Sie die Objekte weiter auseinander, verringern Sie die Größe von Rand/Umrandung, wechseln Sie die Art der Umrandung zu 'Kombiniert' oder wechseln Sie die Druckreihenfolge zu 'Nach Schicht'."
msgid "Exporting G-code"
msgstr "Exportiere G-Code"
@@ -13466,6 +14603,17 @@ msgstr "Exportiere G-Code"
msgid "Generating G-code"
msgstr "Generiere G-Code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Die G-Code-Datei %1% aus der vorherigen 3MF-Datei konnte nicht verarbeitet werden."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "Der Band-Reinigungsturm kann das gesamte Spülvolumen nicht aufnehmen: Insgesamt konnten %1% mm³ nicht gespült werden (ungünstigste Schicht: %2% mm³ bei Höhe %3%). Der Druck kann Farbverschleppung zeigen. Vergrößern Sie die Breite des Band-Reinigungsturms oder verringern Sie die Spülvolumen."
+
msgid "Processing of the filename_format template failed."
msgstr "Verarbeitung der Vorlage filename_format fehlgeschlagen."
@@ -13902,32 +15050,42 @@ msgstr ""
"\n"
"Diese Option funktioniert besonders gut in Kombination mit der zweiten internen Brücke über Füllungsoption, um die Brückenbildung weiter zu verbessern, bevor die obere feste Füllung extrudiert wird."
+# AI Translated
msgid "Bridge flow ratio"
-msgstr "Brücken Flussrate"
+msgstr "Brücken Flussverhältnis"
+# AI Translated
msgid ""
"This value governs the thickness of the external (visible) bridge layer.\n"
"Values above 1.0: Increase the amount of material while maintaining line spacing. This can improve line contact and strength.\n"
"Values below 1.0: Reduce the amount of material while adjusting line spacing to maintain contact. This can improve sagging.\n"
"\n"
"The actual bridge flow used is calculated by multiplying this value with the filament flow ratio, and if set, the object's flow ratio."
-msgstr "Der tatsächliche Brückenfluss wird berechnet, indem dieser Wert mit dem Filamentflussverhältnis und, falls festgelegt, dem Objektflussverhältnis multipliziert wird."
+msgstr ""
+"Dieser Wert steuert die Dicke der externen (sichtbaren) Brückenlage.\n"
+"Werte über 1.0: Erhöhen die Materialmenge bei gleichbleibendem Linienabstand. Dies kann den Linienkontakt und die Festigkeit verbessern.\n"
+"Werte unter 1.0: Reduzieren die Materialmenge bei Anpassung des Linienabstands, um den Kontakt aufrechtzuerhalten. Dies kann das Durchhängen verbessern.\n"
+"\n"
+"Der tatsächliche Brückenfluss wird berechnet, indem dieser Wert mit dem Filamentflussverhältnis und, falls festgelegt, dem Objektflussverhältnis multipliziert wird."
+# AI Translated
+# Needs human review: 'Brückendichte' is generic (the labels are 'Externe/Interne Brücken Dichte').
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
-"Linienbreite der Brücke. Wenn als % angegeben, wird sie über den Düsendurchmesser berechnet.\n"
-"Empfohlen in Verbindung mit einer höheren Brückendichte oder einer höheren Brückenflussrate.\n"
+"Linienbreite der Brücke. Wenn als Prozentwert (%) angegeben, wird sie über den Düsendurchmesser berechnet.\n"
+"Empfohlen in Verbindung mit einer höheren Brückendichte oder einem höheren Brücken Flussverhältnis.\n"
"\n"
"Der maximale Wert beträgt 100% oder der Düsendurchmesser.\n"
-"Wenn auf 0 gesetzt, entspricht die Linienbreite der Breite der inneren festen Füllung."
+"Wenn auf 0 gesetzt, entspricht die Linienbreite der Breite der inneren massiven Füllung bzw. bei dicken Brücken dem Düsendurchmesser."
+# AI Translated
msgid "Internal bridge flow ratio"
-msgstr "Interne Brücken Flussrate"
+msgstr "Interne Brücken Flussverhältnis"
msgid ""
"This value governs the thickness of the internal bridge layer. This is the first layer over sparse infill so increasing it may increase strength and upper layer quality.\n"
@@ -14207,34 +15365,35 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Aktivieren Sie diese Option, um den Druck in Bereichen zu verlangsamen, in denen sich die Umfänge möglicherweise nach oben gekrümmt haben.\n"
-"Zum Beispiel wird bei der Druckung von Überhängen an scharfen Ecken wie dem Vorderteil der Benchy-Hülle eine zusätzliche Verlangsamung angewendet, um das Krümmen zu reduzieren, das sich über mehrere Schichten hinweg verstärkt.\n"
+"Zum Beispiel wird beim Drucken von Überhängen an scharfen Ecken wie dem Vorderteil der Benchy-Hülle eine zusätzliche Verlangsamung angewendet, um das Krümmen zu reduzieren, das sich über mehrere Schichten hinweg verstärkt.\n"
"\n"
"Es wird in der Regel empfohlen, diese Option aktiviert zu lassen, es sei denn, Ihre Druckerkühlung ist stark genug oder die Druckgeschwindigkeit ist langsam genug, sodass sich Umfänge nicht krümmen. \n"
-"Wenn Sie mit einer hohen externen Umfangsgeschwindigkeit drucken, kann dieser Parameter bei der Verlangsamung Wandartefakte verursachen, da die potentiell große Varianz der Druckgeschwindigkeiten den Extruder daran hindert, dem geforderten Fließänderungsverlauf zu folgen.\n"
+"Wenn Sie mit einer hohen externen Umfangsgeschwindigkeit drucken, kann dieser Parameter bei der Verlangsamung Wandartefakte verursachen, da die potentiell große Varianz der Druckgeschwindigkeiten den Extruder daran hindert, der geforderten Flussänderung zu folgen.\n"
"Die Ursache dieser Artefakte ist in der Regel eine leicht abweichende PA-Einstellung, insbesondere in Kombination mit einer hohen PA-Glättungszeit.\n"
"\n"
"Empfehlungen bei Aktivierung dieser Option:\n"
"1. Reduzieren Sie die Glättungszeit für Pressure Advance auf 0,015 - 0,02, damit der Extruder schnell auf Geschwindigkeitsänderungen reagieren kann.\n"
"2. Erhöhen Sie die Mindestdruckgeschwindigkeiten, um die Schwankung zwischen den schnellen und langsamen Segmenten zu begrenzen.\n"
-"3. Wenn Artefakte weiterhin auftreten, aktivieren Sie die Glättung der Extrusionsrate (ERS), um die Übergänge der Fließrate weiter zu glätten.\n"
+"3. Wenn Artefakte weiterhin auftreten, aktivieren Sie die Glättung der Extrusionsrate (ERS), um die Flussübergänge weiter zu glätten.\n"
"\n"
-"Hinweis: Wenn diese Option aktiviert ist, werden die Überhangumfänge wie Überhänge behandelt, was bedeutet, dass die Überhanggeschwindigkeit auch dann angewendet wird, wenn der überhängende Umfang Teil einer Brücke ist.\n"
-"Zum Beispiel wird für Umfänge, die zu 100 % ohne stützende Wand darunter überhängen, die Überhanggeschwindigkeit für 100 % ohne Abstützung angewendet."
+"Hinweis: Wenn diese Option aktiviert ist, werden Überhangumfänge wie Überhänge behandelt, was bedeutet, dass die Überhanggeschwindigkeit auch dann angewendet wird, wenn der überhängende Umfang Teil einer Brücke ist.\n"
+"Zum Beispiel wird für Umfänge, die zu 100% überhängen, ohne dass eine Wand sie von unten stützt, die Überhanggeschwindigkeit von 75% angewendet, begrenzt durch die Brückengeschwindigkeit."
msgid "mm/s or %"
msgstr "mm/s o. %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Geschwindigkeit der extern sichtbaren Brückenextrusionen.\n"
"\n"
-"Darüber hinaus wird, wenn die Option zum Verlangsamen von gekrümmten Umfängen deaktiviert ist oder der klassische Überhangsmodus aktiviert ist, die Druckgeschwindigkeit der Überhangswände, die zu weniger als 13 % gestützt sind, ob sie Teil einer Brücke oder eines Überhangs sind."
+"Darüber hinaus ist dies, wenn Langsamer Druck für gekrümmte Umfänge deaktiviert ist, die Druckgeschwindigkeit der Überhangwände mit einer Stützung von weniger als 13%, unabhängig davon, ob sie Teil einer Brücke oder eines Überhangs sind."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Geschwindigkeit der internen Brücken. Wenn der Wert als Prozentsatz angegeben wird, wird er auf der Grundlage der Brückengeschwindigkeit berechnet. Der Standardwert beträgt 150 %."
@@ -14242,12 +15401,56 @@ msgstr "Geschwindigkeit der internen Brücken. Wenn der Wert als Prozentsatz ang
msgid "This is the distance from the model to the outermost brim line."
msgstr "Abstand vom Modell zur äußersten Randlinie"
+# AI Translated
+msgid "Leading brim length"
+msgstr "Länge des vorderen Randes"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Nur für Förderbanddrucker. Verlängert den Rand entlang des Förderbands VOR das Objekt, an jeder abwärts gerichteten Kante seiner Kontaktfläche - sowohl beim ersten Kontakt des Objekts mit dem Förderband als auch bei jeder später aufsetzenden Insel. Diese Fläche wird auf das Förderband gelegt, bevor das Objekt es erreicht, sodass die Vorderkante bereits etwas Haftendes zum Festhalten hat.\n"
+"\n"
+"Gemessen auf der Förderbandoberfläche und zusätzlich zu „Randbreite“: Der Rand reicht „Lücke zwischen Rand und Objekt“ + „Länge des vorderen Randes“ + „Randbreite“ vor das Objekt. Setzen Sie „Lücke zwischen Rand und Objekt“ auf 0, sonst berührt diese Fläche das Objekt nicht, das sie verankern soll.\n"
+"\n"
+"Auf einem geneigten Förderband legt jede Schicht einen Streifen des Randes, daher wird die Dicke der entstehenden Randfläche durch den Fluss und nicht durch die Schichthöhe bestimmt. Verwenden Sie „Brim-Flussverhältnis“ zur Feinabstimmung.\n"
+"\n"
+"Auf 0 setzen, um zu deaktivieren."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Zusätzliche Randbreite"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Nur für Förderbanddrucker. Verbreitert den Rand SEITLICH, quer zum Förderband, ohne ihn weiter vor oder hinter das Objekt zu verlängern. Verwenden Sie dies, wenn ein Teil entlang seiner Länge mehr Halt braucht, als „Randbreite“ allein bietet.\n"
+"\n"
+"Gemessen auf der Förderbandoberfläche und zusätzlich zu „Randbreite“: Der Rand reicht „Lücke zwischen Rand und Objekt“ + „Randbreite“ + „Zusätzliche Randbreite“ zu beiden Seiten des Objekts. Um den Rand stattdessen vor das Objekt zu verlängern, verwenden Sie „Länge des vorderen Randes“.\n"
+"\n"
+"Auf 0 setzen, um zu deaktivieren."
+
msgid "Brim type"
msgstr "Randtyp"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Dies steuert die Erstellung des Brims an der äußeren und/oder inneren Seitevon Modellen. Auto bedeutet, dass die Breite des Brims automatisch analysiert und berechnet wird."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Nur Vorderkante"
+
msgid "Brim-object gap"
msgstr "Lücke zwischen Rand und Objekt"
@@ -14270,8 +15473,9 @@ msgstr ""
"\n"
"Hinweis: Der resultierende Wert wird nicht vom Flussverhältnis der ersten Schicht beeinflusst."
+# AI Translated
msgid "Brim follows compensated outline"
-msgstr "Umrandung folgt einem kompensierten Umriss"
+msgstr "Rand folgt einem kompensierten Umriss"
# AI Translated
msgid ""
@@ -14280,10 +15484,10 @@ msgid ""
"\n"
"If your current setup already works well, enabling it may be unnecessary and can cause the brim to fuse with upper layers."
msgstr ""
-"Wenn diese Option aktiviert ist, wird die Umrandung an der Umfangsgeometrie der ersten Schicht ausgerichtet, nachdem der Elefantenfußausgleich angewendet wurde.\n"
+"Wenn diese Option aktiviert ist, wird der Rand an der Umfangsgeometrie der ersten Schicht ausgerichtet, nachdem der Elefantenfußausgleich angewendet wurde.\n"
"Diese Option ist für Fälle gedacht, in denen der Elefantenfußausgleich die Grundfläche der ersten Schicht erheblich verändert.\n"
"\n"
-"Wenn Ihre aktuelle Konfiguration bereits gut funktioniert, ist die Aktivierung möglicherweise unnötig und kann dazu führen, dass die Umrandung mit den oberen Schichten verschmilzt."
+"Wenn Ihre aktuelle Konfiguration bereits gut funktioniert, ist die Aktivierung möglicherweise unnötig und kann dazu führen, dass der Rand mit den oberen Schichten verschmilzt."
msgid "Combine brims"
msgstr "Ränder kombinieren"
@@ -14540,14 +15744,18 @@ msgstr ""
"2. Begrenzte Filterung - erstellt interne Brücken auf stark geneigten Oberflächen und vermeidet unnötige Brücken. Dies funktioniert für die meisten schwierigen Modelle gut.\n"
"3. Keine Filterung - erstellt interne Brücken an jedem potenziellen internen Überhang. Diese Option ist für stark geneigte obere Oberflächenmodelle nützlich; in den meisten Fällen erstellt sie jedoch zu viele unnötige Brücken."
+msgid "Filter"
+msgstr "Filter"
+
msgid "Limited filtering"
msgstr "Begrenzte Filterung"
msgid "No filtering"
msgstr "Keine Filterung"
+# AI Translated
msgid "Max bridge length"
-msgstr "Max Überbrückungslänge"
+msgstr "Max Brückenlänge"
msgid "This is the maximum length of bridges that don't need support. Set it to 0 if you want all bridges to be supported, and set it to a very large value if you don't want any bridges to be supported."
msgstr "Maximale Länge der Brücken, die keine Unterstützung benötigen. Setzen Sie den Wert auf 0, wenn alle Brücken unterstützt werden sollen und legen Sie einen sehr großen Wert fest, wenn keine Brücken unterstützt werden sollen."
@@ -14556,8 +15764,9 @@ msgstr "Maximale Länge der Brücken, die keine Unterstützung benötigen. Setze
msgid "End G-code"
msgstr "End-G-code"
-msgid "Add end G-Code when finishing the entire print."
-msgstr "End G-Code nach dem fertigstellen des Drucks hinzufügen."
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
+msgstr "End-G-Code hinzufügen, wenn der gesamte Druck abgeschlossen ist."
msgid "Between Object G-code"
msgstr "Zwischen Objekt G-Code"
@@ -14642,7 +15851,7 @@ msgid ""
"Useful for cases where the top surface is interrupted by a raised feature, such as text on a plane. Expanding it removes the holes beneath these features and creates a continuous path with a better finish for printing on top. The expansion is applied to the original top surface, before any other processing such as bridging or overhang detection."
msgstr ""
"Erweitert die oberen Oberflächen um diese Distanz, um separate obere Oberflächen zu verbinden und Lücken zu füllen.\n"
-"Nützlich in Fällen, in denen die obere Oberfläche durch ein erhabenes Merkmal unterbrochen wird, wie z. B. Text auf einer Ebene. Die Erweiterung entfernt die Löcher unter diesen Merkmalen und erzeugt einen durchgehenden Pfad mit besserer Oberfläche zum Darüberdrucken. Die Erweiterung wird auf die ursprüngliche obere Oberfläche angewendet, vor jeder anderen Verarbeitung wie Überbrückung oder Überhangerkennung."
+"Nützlich in Fällen, in denen die obere Oberfläche durch ein erhabenes Merkmal unterbrochen wird, wie z. B. Text auf einer Ebene. Die Erweiterung entfernt die Löcher unter diesen Merkmalen und erzeugt einen durchgehenden Pfad mit besserer Oberfläche zum Darüberdrucken. Die Erweiterung wird auf die ursprüngliche obere Oberfläche angewendet, vor jeder anderen Verarbeitung wie Brückenbildung oder Überhangerkennung."
# AI Translated
msgid "Top expansion wall margin"
@@ -14745,8 +15954,9 @@ msgstr "Geschwindigkeit der äußersten Wand, welche später sichtbar ist. Wird
msgid "Small perimeters"
msgstr "Feine Strukturen"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Diese separate Einstellung beeinflusst die Geschwindigkeit von Umfängen mit einem Radius <= small_perimeter_threshold (normalerweise Löcher). Wenn es als Prozentsatz ausgedrückt wird (z.B. 80%), wird es auf die oben genannte Einstellung der Geschwindigkeit der Außenwand berechnet. Setzen Sie es auf Null für automatisch."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Diese separate Einstellung beeinflusst die Geschwindigkeit von Umfängen mit einem Radius <= small_perimeter_threshold (normalerweise Löcher). Wenn es als Prozentsatz ausgedrückt wird (z.B. 80%), wird es auf die oben genannte Einstellung der Geschwindigkeit der Außenwand berechnet."
msgid "Small perimeters threshold"
msgstr "Schwelle für kleine Strukturen"
@@ -14759,8 +15969,8 @@ msgid "Small support perimeters"
msgstr "Feine Strukturen für Stützen"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Wie „Feine Strukturen“, aber für Stützen. Diese separate Einstellung wirkt sich auf die Geschwindigkeit der Stützen für Bereiche <= `small_support_perimeter_threshold` aus. Wenn als Prozentsatz angegeben (zum Beispiel: 80 %), wird sie auf die obige Geschwindigkeitseinstellung für Stützen oder Stützschnittstellen berechnet. Auf null setzen für automatisch."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Wie „Feine Strukturen“, aber für Stützen. Diese separate Einstellung wirkt sich auf die Geschwindigkeit der Stützen für Bereiche <= `small_support_perimeter_threshold` aus. Wenn als Prozentsatz angegeben (zum Beispiel: 80%), wird sie auf die obige Geschwindigkeitseinstellung für Stützen oder die Stützstruktur-Schnittstelle berechnet."
# AI Translated
msgid "Small support perimeters threshold"
@@ -14773,20 +15983,21 @@ msgstr "Legt den Schwellenwert für die Länge feiner Stützstrukturen fest. Der
msgid "Walls printing order"
msgstr "Anordnung der Wände"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
"Druckreihenfolge der inneren und äußeren Wände.\n"
"\n"
-"Verwenden Sie Innen/Außen für die besten Überhänge. Dies liegt daran, dass die überhängenden Wände beim Drucken an eine benachbarte Umfangsfläche haften können. Diese Option führt jedoch zu einer geringfügig reduzierten Oberflächenqualität, da die Außenwand durch das Zusammendrücken der Innenwand verformt wird.\n"
+"Verwenden Sie Innen/Außen für die besten Überhänge. Dies liegt daran, dass die überhängenden Wände beim Drucken an einen benachbarten Umfang haften können. Diese Option führt jedoch zu einer geringfügig reduzierten Oberflächenqualität, da die Außenwand durch das Zusammendrücken gegen die Innenwand verformt wird.\n"
"\n"
-"Verwenden Sie Innen/Außen/Innen für die beste Oberflächenqualität und dimensionale Genauigkeit, da die Außenwand ungestört von einer inneren Wand gedruckt wird. Die Überhangsleistung wird jedoch verringert, da keine innere Wand vorhanden ist, um die Außenwand zu drucken. Diese Option erfordert ein Minimum von 3 Wänden, um wirksam zu sein, da die inneren Wände ab der 3. Umfangsfläche zuerst gedruckt werden, dann die äußere Umfangsfläche und schließlich die erste innere Umfangsfläche. Diese Option wird in den meisten Fällen gegen die Option Außen/Innen empfohlen.\n"
+"Verwenden Sie Innen/Außen/Innen für die beste Oberflächenqualität und dimensionale Genauigkeit, da die Außenwand ungestört von einer inneren Wand gedruckt wird. Die Überhangsleistung wird jedoch verringert, da keine innere Wand vorhanden ist, an der die Außenwand gedruckt werden kann. Diese Option erfordert ein Minimum von 3 Wänden, um wirksam zu sein, da die inneren Wände ab dem 3. Umfang zuerst gedruckt werden, dann der äußere Umfang und schließlich der erste innere Umfang. Diese Option wird in den meisten Fällen gegenüber der Option Außen/Innen empfohlen.\n"
"\n"
"Verwenden Sie Außen/Innen für die gleiche externe Wandqualität und dimensionale Genauigkeit wie die Option Innen/Außen/Innen. Die Z-Nähte werden jedoch weniger konsistent erscheinen, da die erste Extrusion einer neuen Schicht auf einer sichtbaren Oberfläche beginnt."
@@ -14796,8 +16007,9 @@ msgstr "Innen/Außen"
msgid "Outer/Inner"
msgstr "Außen/Innen"
+# AI Translated
msgid "Inner/Outer/Inner"
-msgstr "Innenwand/Außenwand/Innenwand"
+msgstr "Innen/Außen/Innen"
msgid "Print infill first"
msgstr "Drucke zuerst die Füllung"
@@ -15422,9 +16634,6 @@ msgstr "Filamentpreis. Nur für statistische Zwecke."
msgid "money/kg"
msgstr "Kosten/kg"
-msgid "Vendor"
-msgstr "Hersteller"
-
msgid "Vendor of filament. For show only."
msgstr "Hersteller des Filaments. Nur zur Anzeige."
@@ -15483,7 +16692,7 @@ msgid ""
"Aligns infill, bridge, ironing, and top/bottom surface directions to follow the model's orientation on the build plate.\n"
"When enabled, these directions rotate together with the model so the printed features keep their intended orientation relative to the part, preserving optimal strength and surface characteristics regardless of how the model is placed."
msgstr ""
-"Richtet die Richtungen von Füllung, Überbrückung, Glätten und oberer/unterer Oberfläche so aus, dass sie der Ausrichtung des Modells auf dem Druckbett folgen.\n"
+"Richtet die Richtungen von Füllung, Brücken, Glätten und oberer/unterer Oberfläche so aus, dass sie der Ausrichtung des Modells auf dem Druckbett folgen.\n"
"Wenn aktiviert, drehen sich diese Richtungen zusammen mit dem Modell, sodass die gedruckten Merkmale ihre beabsichtigte Ausrichtung relativ zum Teil beibehalten und optimale Festigkeit sowie Oberflächeneigenschaften unabhängig von der Platzierung des Modells erhalten bleiben."
msgid "Insert solid layers"
@@ -15498,6 +16707,93 @@ msgstr "Mehrzeilige Füllung"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Verwendung mehrerer Linien für das Füllmuster, wenn vom Füllmuster unterstützt."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Adaptive Dichte (experimentell)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Stuft die Gyroid- und TPMS-Füllung im Inneren des Objekts ab: Ihre Zellen wachsen von der Oberfläche des Objekts zu seiner Mitte hin. An der Oberfläche wird die Fülldichte verwendet, in der Mitte die innere Dichte.\n"
+"Abstandsverzerrung, Weiche Überblendung und Gestufte Schalen folgen dem Abstand zur nächstgelegenen Oberfläche, einschließlich der oberen und unteren, mit der inneren Dichte an dem davon am weitesten entfernten Punkt:\n"
+" - Abstandsverzerrung: ein durchgehendes Muster, gestreckt und geschert, wo sich der Abstand je nach Richtung ändert, etwa bei Platten und langen Teilen.\n"
+" - Weiche Überblendung: Die Muster benachbarter Dichten gehen ineinander über, mit kleinen Schleifen, wo sie sich treffen.\n"
+" - Gestufte Schalen: Schalen des regulären Musters mit Dichten, die sich jeweils etwa um den Faktor 1,5 unterscheiden; ihre Linien sind entlang der Schalengrenzen verbunden.\n"
+" - Lappen: folgt der 3D-Form des Objekts, einschließlich seiner oberen und unteren Seite. Jeder Lappen, ein Teil, der über einen schmaleren Hals mit dem Rest verbunden ist, wird zu seiner eigenen Mitte hin abgestuft.\n"
+" - Senkrecht zu Z, Y oder X: folgt den Schnitten des Objekts senkrecht zu dieser Achse, sodass sich die Dichte entlang dieser Achse nicht ändert."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Abstandsverzerrung"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Weiche Überblendung"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Gestufte Schalen"
+
+# AI Translated
+# Needs human review: Adaptive density option (Lobes): regions joined to the rest by a narrower neck. Check 'Lappen' is understood in the infill dropdown, and keep it matching the option list in the Adaptive density tooltip.
+msgid "Lobes"
+msgstr "Lappen"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Senkrecht zu Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Senkrecht zu Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Senkrecht zu X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Innere Dichte"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Dichte der adaptiven Füllung in der Mitte des Objekts."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Adaptiver Verlauf"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Wie sich die Dichte von der Oberfläche zur Mitte des Objekts ändert.\n"
+"Linear: Die Dichte ändert sich mit konstanter Rate.\n"
+"Quadratisch: Die Dichte bleibt nahe der Oberfläche nahe an der Fülldichte und ändert sich zur Mitte hin schneller.\n"
+"Exponentiell: Die Dichte ändert sich direkt unter der Oberfläche schnell und flacht zur Mitte hin ab."
+
+# AI Translated
+msgid "Linear"
+msgstr "Linear"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Quadratisch"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Exponentiell"
+
msgid "Z-buckling bias optimization (experimental)"
msgstr "Z-Buckling-Bias-Optimierung (experimentell)"
@@ -15647,15 +16943,17 @@ msgstr "Höhe der ersten Schicht"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Höhe der ersten Schicht. Eine etwas dickere erste Schicht kann die Haftung der Druckplatte verbessern"
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Geschwindigkeit der ersten Schicht mit Ausnahme der massiven Füllung."
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Geschwindigkeit der Wände und des Rands der ersten Schicht."
# AI Translated
msgid "First layer infill"
msgstr "Füllung der ersten Schicht"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Geschwindigkeit des massiven Füllung der ersten Schicht."
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Geschwindigkeit der ersten Schicht mit Ausnahme von Wänden und Rand, wie Füllung, Lücken füllen und Stützen."
msgid "First layer travel speed"
msgstr "Geschwindigkeit der ersten Schicht"
@@ -16106,6 +17404,10 @@ msgstr "G-Code Typ"
msgid "What kind of G-code the printer is compatible with."
msgstr "Mit welcher Art von G-Code ist der Drucker kompatibel."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (veraltet)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16334,16 +17636,18 @@ msgstr "Linienbreite des internen geringen Füllmusters. Wenn als Prozentsatz an
msgid "Infill/wall overlap"
msgstr "Überlappung Füllung/Wand"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Die Füllfläche wird leicht vergrößert, um mit der Wand zu überlappen und eine bessere Haftung zu gewährleisten. Der Prozentwert bezieht sich auf die Linienbreite der spärlichen Füllung. Setzen Sie diesen Wert auf ~10-15%, um eine mögliche Überextrusion und Materialansammlung zu minimieren, die zu rauen Oberflächen führen kann."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Die Füllfläche wird leicht vergrößert, um mit den Wänden zu überlappen und eine bessere Haftung zu gewährleisten. Der Prozentwert bezieht sich auf die Linienbreite der inneren Wand. Setzen Sie diesen Wert auf ~10-15%, um eine mögliche Überextrusion und Materialansammlung zu minimieren, die zu rauen oberen Oberflächen führen kann."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Überlappung des oberen/unteren massiven Füllung/Wand"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "Der obere massive Füllbereich wird leicht vergrößert, um mit der Wand zu überlappen und eine bessere Haftung zu gewährleisten und das Auftreten von Pinholes zu minimieren, wo die obere Füllung auf die Wände trifft. Ein Wert von 25-30% ist ein guter Ausgangspunkt, um das Auftreten von Pinholes zu minimieren. Der Prozentwert bezieht sich auf die Linienbreite der spärlichen Füllung."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "Der obere massive Füllbereich wird leicht vergrößert, um mit der Wand zu überlappen und eine bessere Haftung zu gewährleisten und das Auftreten von Pinholes zu minimieren, wo die obere Füllung auf die Wände trifft. Ein Wert von 25-30% ist ein guter Ausgangspunkt, um das Auftreten von Pinholes zu minimieren. Der Prozentwert bezieht sich auf die Linienbreite der inneren Wand."
msgid "This is the speed for internal sparse infill."
msgstr "Geschwindigkeit der inneren Füllung"
@@ -16369,8 +17673,9 @@ msgstr "Maximale Breite eines segmentierten Bereichs. Null deaktiviert diese Fun
msgid "Interlocking depth of a segmented region"
msgstr "Interlock-Struktur-Tiefe eines segmentierten Bereichs"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Interlock-Tiefe eines segmentierten Bereichs. Es wird ignoriert, wenn \"mmu_segmented_region_max_width\" null ist oder wenn \"mmu_segmented_region_interlocking_depth\" größer ist als \"mmu_segmented_region_max_width\". Null deaktiviert diese Funktion."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Interlock-Struktur-Tiefe eines segmentierten Bereichs. Auf jeder zweiten Schicht ist der segmentierte Bereich auf diese Tiefe begrenzt. Wird ignoriert, wenn \"interlocking_beam\" aktiviert ist. Null deaktiviert diese Funktion."
msgid "Use beam interlocking"
msgstr "Verwende Interlock-Strukturen"
@@ -16471,13 +17776,14 @@ msgstr "Z-Schicht-Konturierung aktivieren (auch bekannt als Z-Schicht-Anti-Alias
msgid "Minimize wall height angle"
msgstr "Minimale Wandhöhe Winkel"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
-"Reduziert die Höhe der oberen Oberflächenumrandungen, um der Modellkante zu entsprechen.\n"
-"Wirkt sich auf Umrandungen mit einer Neigung unterhalb dieses Winkels (Grad) aus.\n"
+"Reduziert die Höhe der Umfänge oberer Oberflächen, um der Modellkante zu entsprechen.\n"
+"Wirkt sich auf Umfänge mit einer Neigung oberhalb dieses Winkels (Grad) aus.\n"
"Ein vernünftiger Wert ist 35. Auf 0 setzen, um zu deaktivieren."
msgid "Don't alternate fill direction"
@@ -16552,17 +17858,21 @@ msgstr "Maximale Geschwindigkeit Z"
msgid "Maximum speed E"
msgstr "Maximale Geschwindigkeit E"
-msgid "Maximum X speed"
-msgstr "Maximale Geschwindigkeit X"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Maximale Geschwindigkeit der X-Achse"
-msgid "Maximum Y speed"
-msgstr "Maximale Geschwindigkeit Y"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Maximale Geschwindigkeit der Y-Achse"
-msgid "Maximum Z speed"
-msgstr "Maximale Geschwindigkeit Z"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Maximale Geschwindigkeit der Z-Achse"
-msgid "Maximum E speed"
-msgstr "Maximale Geschwindigkeit E"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Maximale Geschwindigkeit der E-Achse"
msgid "Maximum acceleration X"
msgstr "Maximale Beschleunigung X"
@@ -17010,7 +18320,7 @@ msgid ""
msgstr ""
"Wandschleifen, die vollständig in der Luft liegen, werden erst gedruckt, wenn etwas sie halten kann:\n"
"Sie werden nach den übrigen Wänden ihrer Insel extrudiert, die innerste zuerst, unabhängig von der Wandreihenfolge.\n"
-"Eine Schleife, die nur von den Überbrückungen dieser Schicht verankert werden kann, wartet, bis diese Überbrückungen gedruckt sind, während eine Schleife, die neben einer gestützten Wand verläuft, ihren Platz vor der Füllung behält, die sie als Verankerung benötigt."
+"Eine Schleife, die nur von den Brücken dieser Schicht verankert werden kann, wartet, bis diese Brücken gedruckt sind, während eine Schleife, die neben einer gestützten Wand verläuft, ihren Platz vor der Füllung behält, die sie als Verankerung benötigt."
msgid "Outer walls"
msgstr "Äußere Wände"
@@ -17075,8 +18385,8 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Plugin-Funktionen, auf die dieses Profil verweist, gespeichert als name;uuid;capability."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
-msgstr "Python-Plugin(s), die bei jedem Schritt der Slicing-Pipeline aufgerufen werden, um Slicing-Zwischendaten zu lesen und zu ändern, einschließlich eines abschließenden G-code-Nachbearbeitungsschritts. Forschung/experimentell."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgstr "Python-Plugins, die bei jedem Schritt der Slicing-Pipeline aufgerufen werden, um Slicing-Zwischendaten zu lesen und zu ändern, einschließlich eines abschließenden G-Code-Nachbearbeitungsschritts. Forschung/experimentell."
msgid "Printer type"
msgstr "Druckertyp"
@@ -17443,8 +18753,9 @@ msgstr "Schrägnaht für innere Wände"
msgid "Use scarf joint for inner walls as well."
msgstr "Verwenden Sie Schrägnaht auch für innere Wände."
-msgid "Role base wipe speed"
-msgstr "Rollenbasierte Wipe Geschwindigkeit"
+# AI Translated
+msgid "Role based wipe speed"
+msgstr "Wipe Geschwindigkeit nach Extrusionsart"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
msgstr ""
@@ -17535,16 +18846,15 @@ msgstr "Begrenzt die Umrandungs- / Luftzug-Schutz-Schleifen auf eine Wand nach d
msgid "Draft shield"
msgstr "Luftzug-Schutz"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"Ein Luftzug-Schutz ist nützlich, um einen ABS- oder ASA-Druck vor Verzug und dem Ablösen vom Druckbett aufgrund von Windzug zu schützen. Er wird normalerweise nur bei offenen Druckern benötigt, d.h. ohne Gehäuse.\n"
"\n"
-"Aktiviert = Umrandung ist so hoch wie das höchste gedruckte Objekt. Andernfalls wird 'Höhe der Umrandung' verwendet.\n"
-"Hinweis: Mit aktiviertem Luftzug-Schutz wird die Umrandung in der Umrandungsdistanz vom Objekt gedruckt. Daher kann es bei aktiven Rändern zu Überschneidungen kommen. Um dies zu vermeiden, erhöhen Sie den Wert der Umrandungsdistanz.\n"
+"Aktiviert = Umrandung ist so hoch wie das höchste gedruckte Objekt. Andernfalls wird 'Höhe der Umrandungsringe' verwendet."
msgid "Enabled"
msgstr "Aktiviert"
@@ -17709,6 +19019,130 @@ msgstr "Einzelner Extruder, mehrere Materialien"
msgid "Use single nozzle to print multi filament."
msgstr "Benutze eine einzelne Düse zum Drucken mit mehreren Filamenten"
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "IDEX/IQEX-Drucker"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Aktiviert den Paralleldruck für Drucker mit mehreren unabhängigen Schlitten (IDEX, IQEX und ähnliche)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Von der Firmware verwaltete Zonen"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Wenn aktiviert, gibt der Slicer G-Code aus, bei dem der Inhalt der primären Zone auf den Ursprung des Druckbetts (0,0) zentriert ist. Die Drucker-Firmware ist dafür verantwortlich, Kopien/Spiegelungen an der jeweiligen physischen Zonenposition zu platzieren. Nur bei Druckern aktivieren, deren Firmware im Kopie-/Spiegelungsmodus eigene Zonenversätze anwendet (z. B. der IDEX-Duplizierungsmodus von RepRapFirmware). Hat im Modus Primär keine Wirkung."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Anzahl der Portale"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Anzahl unabhängiger Y-Achsen-Portale. 1 für IDEX/IQEX mit einer Schiene. 2 für Systeme mit zwei Portalen (teilt das Druckbett in Reihen)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Werkzeuge pro Portal"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Anzahl unabhängiger Werkzeugköpfe pro Portal entlang X. 2 für IDEX-Bauweise."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Position von Werkzeug 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Physische Position auf dem Druckbett, an der sich Werkzeug T0 (Index 0) befindet. Legt fest, wie Werkzeugindizes den Zonen des Druckbetts zugeordnet werden. Bei Aufbauten mit einem Portal (IDEX) zählt nur links/rechts; bei Aufbauten mit zwei Portalen (IQEX) sind alle vier Ecken wählbar (vorne = kleineres Y / nahe am Bediener, hinten = größeres Y / Rückseite der Maschine)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Düsenabstand X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Abstand (mm) von der Düse zur kollisionsseitigen Schlittenkante in X. Wird verwendet, um die Breite des Kollisions-Sperrstreifens an jeder X-Grenze zu berechnen."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Düsenabstand Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Abstand (mm) von der Düse zur kollisionsseitigen Schlittenkante in Y. Wird verwendet, um die Breite des Kollisions-Sperrstreifens an jeder Y-Grenze zu berechnen."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Sicherheitsabstand"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Nicht blockierender, empfohlener Freiraumstreifen (mm), der innerhalb der primären Zone an jeder Schlittengrenze angezeigt wird. Teile in diesem Streifen werden trotzdem geslict; er dient als visuelle Erinnerung, nahe am Zonenrand zusätzlichen Abstand zu lassen."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Darstellungsschema"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Farbschema für die Darstellung der IDEX/IQEX-Druckbettzonen. Wählen Sie bei Bedarf ein farbenblindfreundliches Schema."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranopie / Protanopie (Rot-Grün)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopie (Blau-Gelb)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Hoher Kontrast"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "IDEX/IQEX-Druckmodus"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Name des aktiven IDEX/IQEX-Parallel-Druckmodus oder \"primary\" für den Druck mit einem einzelnen Schlitten. Erfordert, dass „IDEX/IQEX-Drucker“ im Druckerprofil aktiviert ist (Drucker → Multimaterial → IDEX/IQEX-Konfiguration)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "IDEX/IQEX-Kopf-Filament-Zuordnung"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Plattenspezifische Überschreibung, die physische Köpfe den Filament-Steckplätzen zuordnet (ab 1 gezählt). Leer bedeutet, dass jeder Kopf das erste Filament verwendet, das die physische Extruderzuordnung des Druckers ihm zuweist."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "IDEX/IQEX-Modusnamen"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Anzeigenamen für jeden benutzerdefinierten IDEX/IQEX-Parallel-Druckmodus."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Aktive Werkzeuge der IDEX/IQEX-Modi"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Rollenzuweisungen der Werkzeuge für jeden Modus. Format: \"idx:P,idx:C,idx:M\" mit P=Primär (Primary), C=Kopie (Copy), M=Spiegelung (Mirror) (z. B. \"0:P,1:C,2:M,3:M\"). Wird vom Editor für IDEX/IQEX-Modi im Druckerprofil verwaltet."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "IDEX/IQEX-Modus-G-Codes"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-Code oder Makroaufruf, der für jeden Modus zu Druckbeginn eingefügt wird."
+
msgid "Manual Filament Change"
msgstr "Manueller Filamentwechsel"
@@ -18086,6 +19520,167 @@ msgstr "Schwellwertüberlappung"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Wenn der Schwellenwinkel null ist, werden Stützen für Überhänge generiert, deren Überlappung unter dem Schwellenwert liegt. Je kleiner dieser Wert ist, desto steiler kann der Überhang gedruckt werden, ohne Stützen zu benötigen."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Neigung des Druckbetts X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Neigungswinkel des Druckbetts entlang der X-Achse. Ein positiver Wert neigt das Druckbett so, dass die +X-Seite höher liegt; dadurch verlagert sich die Schwerkraft in Richtung -X und die Überhänge auf der +X-Seite nehmen zu. Ein negativer Wert hebt die -X-Seite an. Auf 0 setzen für keine Neigung in X. Im Förderbanddrucker-Modus wird dies automatisch mit dem Förderbandwinkel synchronisiert."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Neigung des Druckbetts Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Neigungswinkel des Druckbetts entlang der Y-Achse. Ein positiver Wert neigt das Druckbett so, dass die +Y-Seite höher liegt; dadurch verlagert sich die Schwerkraft in Richtung -Y und die Überhänge auf der +Y-Seite nehmen zu. Ein negativer Wert hebt die -Y-Seite an. Auf 0 setzen für keine Neigung in Y."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Förderbanddruck aktivieren"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Aktiviert den Förderbanddrucker-Modus. Förderbanddrucker verwenden ein Förderband als Druckfläche, das in einem Winkel geneigt ist (typischerweise 45 Grad). Der Slicer dreht die Slicing-Ebene und transformiert die G-Code-Koordinaten für die geneigte Druckfläche."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Unendliche Y-Achse"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Aktiviert die unendliche Y-Achse für Förderbanddrucker. Wenn aktiviert, entfällt die Begrenzung des Bauvolumens in Y praktisch, sodass Objekte beliebiger Länge in Förderbandrichtung gedruckt werden können."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Neigungsachse des Förderbands"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Achse, um die das Netz vor dem Slicen gedreht wird. Dies ist die Neigung des Förderbanddruckers: eine isometrische (verzerrungsfreie) Drehung, die auch die Darstellung des Druckbetts und die Schwerkraftneigung der Stützen bestimmt und die von der G-Code-Rücktransformation vor der Scherung/Skalierung und Achsenzuordnung im Maschinenkoordinatensystem umgekehrt wird. X ist die typische Portalneigung (das Förderband bewegt sich entlang Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Neigungswinkel des Förderbands"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Neigungswinkel der Förderbandoberfläche in Grad. Die meisten Förderbanddrucker verwenden 45°. Positive Werte drehen gegen den Uhrzeigersinn, wenn man entlang der positiven Neigungsachse blickt; der Betrag ist auch die physische Förderbandneigung, die für die Darstellung des Druckbetts und die Schwerkraft der Stützen verwendet wird."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Neigung des Maschinenkoordinatensystems entkoppeln"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Experten-Überschreibung: Legt den Neigungswinkel des Maschinenkoordinatensystems (G-Code-Scherung/-Skalierung) unabhängig vom Drehwinkel vor dem Slicen fest. Wenn deaktiviert, wird die Transformation ins Maschinenkoordinatensystem aus dem Neigungswinkel des Förderbands abgeleitet, sodass ein einziger Winkel beide Stufen steuert. Nur aktivieren, um eine Maschine auszugleichen, deren physische Portalneigung von der Slicing-Drehung abweicht."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Neigungswinkel des Maschinenkoordinatensystems"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Neigungswinkel (Grad), aus dem die auf den G-Code angewendete Scherung (cot) und Skalierung (1/|sin|) des Maschinenkoordinatensystems abgeleitet werden. Wird nur verwendet, wenn „Neigung des Maschinenkoordinatensystems entkoppeln“ aktiviert ist; andernfalls wird der Neigungswinkel des Förderbands verwendet."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "Umgekehrt X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Umgekehrt Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Umgekehrt Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "G-Code-Achsenzuordnung X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Welche Slicing-Achse in der G-Code-Ausgabe der Maschinen-X-Achse zugeordnet wird. Wird NACH dem Slicen während der G-Code-Erzeugung angewendet."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "G-Code-Achsenzuordnung Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Welche Slicing-Achse in der G-Code-Ausgabe der Maschinen-Y-Achse zugeordnet wird. Wird NACH dem Slicen während der G-Code-Erzeugung angewendet."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "G-Code-Achsenzuordnung Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Welche Slicing-Achse in der G-Code-Ausgabe der Maschinen-Z-Achse zugeordnet wird. Wird NACH dem Slicen während der G-Code-Erzeugung angewendet."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Z-Versatz des Stützenbodens"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Verschiebt den berechneten Förderbandboden nach oben oder unten (mm). Negative Werte senken den Boden ab, sodass mehr Stützen erhalten bleiben. Dient zur Diagnose von Problemen mit der Formel für den Förderbandboden."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Band-Reinigungsturm aktivieren"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Ersatz für den Reinigungsturm bei Förderbanddruckern. Wenn auf einem Förderbanddrucker aktiviert, wird neben den gedruckten Teilen automatisch ein Spülprisma erzeugt, und das Spülen beim Filamentwechsel wird in dieses geleitet (der klassische Reinigungsturm kann auf Förderbanddruckern nicht verwendet werden, da sein G-Code die Förderbandtransformation umgeht). Nur auf Förderbanddruckern verfügbar."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Breite des Band-Reinigungsturms"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Breite (Maschinen-X, quer zum Förderband) des Spülprismas, das auf Förderbanddruckern automatisch erzeugt wird, wenn der Band-Reinigungsturm aktiviert ist und mehrere Filamente verwendet werden. Das Spülen beim Filamentwechsel wird in die Extrusionen dieses Prismas statt in einen klassischen Reinigungsturm geleitet. Seine Höhe wird automatisch aus dem ungünstigsten Spülvolumen pro Schicht berechnet: Ein breiteres Prisma wird dadurch niedriger."
+
msgid "Tree support branch angle"
msgstr "Baumstütze Astwinkel"
@@ -18264,13 +19859,11 @@ msgstr "Getrennte Füllungen"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
"Zentriert die innere Füllung jedes Teils auf sich selbst, als ob es allein geslict würde, anstatt auf der gesamten Baugruppe. Teile, die sich berühren oder überlappen, werden als ein Körper behandelt und teilen sich ein Zentrum; separate Teile (oder eigenständige 3D-Objekte) erhalten jeweils ihr eigenes.\n"
"Nützlich, wenn eine Baugruppe mehrere Objekte gruppiert, die jeweils eine konsistente, selbstzentrierte Füllung behalten sollen.\n"
-"Wirkt sich auf Linien- und Gittermuster sowie Rotationsvorlagen-Füllungen aus.\n"
-"Muster, die an globale Koordinaten gebunden sind (Gyroid, Honeycomb, TPMS, ...), sind nicht betroffen."
+"„Adaptiv kubisch“ und „Kubisch Stützen“ zentrieren jedes Teil immer auf sich selbst, und die Füllung „Blitz“ wird für das gesamte Objekt erzeugt und ist nicht betroffen."
# AI Translated
msgid "Center surface pattern on"
@@ -18404,26 +19997,27 @@ msgstr "Winkel an der Spitze des Kegels, der zum Stabilisieren des Reinigungstur
msgid "Maximum wipe tower print speed"
msgstr "Maximale Druckgeschwindigkeit des Reinigungsturms"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
-"Die maximale Druckgeschwindigkeit beim Reinigen im Reinigungsturm und beim Drucken der dünnen Schichten des Reinigungsturms. Beim Reinigen wird, wenn die Geschwindigkeit des dünnen Infill oder die berechnete Geschwindigkeit aus der maximalen Volumengeschwindigkeit des Filaments niedriger ist, die niedrigste verwendet.\n"
+"Die maximale Druckgeschwindigkeit beim Reinigen im Reinigungsturm und beim Drucken der dünnen Schichten des Reinigungsturms. Beim Reinigen wird, wenn die Geschwindigkeit der Füllung oder die aus der maximalen volumetrischen Geschwindigkeit des Filaments berechnete Geschwindigkeit niedriger ist, die niedrigste verwendet.\n"
"\n"
-"Beim Drucken der dünnen Schichten wird, wenn die Geschwindigkeit des inneren Umfangs oder die berechnete Geschwindigkeit aus der maximalen Volumengeschwindigkeit des Filaments niedriger ist, die niedrigste verwendet.\n"
+"Beim Drucken der dünnen Schichten wird, wenn die Geschwindigkeit der Füllung oder die aus der maximalen volumetrischen Geschwindigkeit des Filaments berechnete Geschwindigkeit niedriger ist, die niedrigste verwendet.\n"
"\n"
"Das Erhöhen dieser Geschwindigkeit kann die Stabilität des Turms beeinträchtigen sowie die Kraft erhöhen, mit der die Düse auf mögliche Klumpen trifft, die sich auf dem Reinigungsturm gebildet haben.\n"
"\n"
-"Bevor Sie diesen Parameter über den Standardwert von 90 mm/s erhöhen, stellen Sie sicher, dass Ihr Druckerzuverlässig bei den erhöhten Geschwindigkeiten Brücken drucken kann und dass das Auslaufen beim Werkzeugwechsel gut kontrolliert wird.\n"
+"Bevor Sie diesen Parameter über den Standardwert von 90 mm/s erhöhen, stellen Sie sicher, dass Ihr Drucker bei den erhöhten Geschwindigkeiten zuverlässig Brücken drucken kann und dass das Auslaufen beim Werkzeugwechsel gut kontrolliert wird.\n"
"\n"
-"Für die äußeren Umfänge des Reinigungsturms wird die Geschwindigkeit des inneren Umfangs unabhängig von dieser Einstellung verwendet."
+"Für die äußeren Umfänge des Reinigungsturms wird die Geschwindigkeit des inneren Umfangs verwendet, ebenfalls durch diese Einstellung begrenzt."
msgid "Wall type"
msgstr "Wandtyp"
@@ -18431,14 +20025,14 @@ msgstr "Wandtyp"
# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
-"Wandtyp des Reinigungsturms.\n"
-"1. Rechteck: Der Standard-Wandtyp, ein Rechteck mit fester Breite und Höhe.\n"
+"Typ der Außenwand des Reinigungsturms.\n"
+"1. Rechteck: Ein Rechteck mit fester Breite und Höhe.\n"
"2. Kegel: Ein Kegel mit einer Abrundung am Boden, um den Reinigungsturm zu stabilisieren.\n"
-"3. Rippe: Fügt der Turmwand vier Rippen für verbesserte Stabilität hinzu."
+"3. Rippe: Der Standard-Wandtyp, der der Turmwand vier Rippen für verbesserte Stabilität hinzufügt."
msgid "Rectangle"
msgstr "Rechteck"
@@ -18507,6 +20101,14 @@ msgstr "Die Reinigung nach dem Filamentwechsel erfolgt innerhalb der Stützstruk
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Dieses Objekt wird verwendet, um die Düse nach einem Filamentwechsel zu reinigen, Filament zu sparen und die Druckzeit zu verkürzen. Die Farben der Objekte werden dadurch gemischt. Dies wird nur wirksam, wenn der Reinigungsturm aktiviert ist."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Band-Reinigungsturm-Objekt"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Kennzeichnet das automatisch erzeugte Spülprisma auf dem Förderband. Wird automatisch verwaltet; nicht manuell festlegen."
+
msgid "Maximal bridging distance"
msgstr "Maximale Brückenlänge"
@@ -18522,8 +20124,9 @@ msgstr "Abstand der Reinigungsturmpurges."
msgid "Extra flow for purging"
msgstr "Zusätzlicher Fluss für Reinigung"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Zusätzlicher Fluss, der für die Reinigungslinien auf dem Reinigungsturm verwendet wird. Dadurch werden die Reinigungslinien dicker oder schmaler, als sie normalerweise wären. Der Abstand wird automatisch angepasst."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Zusätzlicher Fluss, der für die Reinigungslinien auf dem Reinigungsturm verwendet wird. Dadurch werden die Reinigungslinien dicker, als sie normalerweise wären. Der Abstand wird automatisch angepasst."
msgid "Idle temperature"
msgstr "Leerlauftemperatur"
@@ -18641,14 +20244,15 @@ msgstr "Minimale Dicke von dünnen Merkmalen. Merkmale des Modells, die dünner
msgid "Minimum wall length"
msgstr "Minimale Wandlänge"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Passen Sie diesen Wert an, um zu verhindern, dass kurze, offene Wände gedruckt werden, was die Druckzeit erhöhen könnte. Höhere Werte entfernen mehr und längere Wände.\n"
+"Passen Sie diesen Wert an, um zu verhindern, dass kurze, offene Wände gedruckt werden, was die Druckzeit erhöhen könnte. Der Wert ist ein Vielfaches der Wandbreite. Höhere Werte entfernen mehr und längere Wände.\n"
"\n"
-"HINWEIS: Die unteren und oberen Oberflächen werden von diesem Wert nicht beeinflusst, um visuelle Lücken an der Außenseite des Modells zu vermeiden. Passen Sie die \"One wall threshold\" in den erweiterten Einstellungen unten an, um die Empfindlichkeit dessen anzupassen, was als obere Oberfläche angesehen wird. \"One wall threshold\" ist nur sichtbar, wenn diese Einstellung über den Standardwert von 0,5 gesetzt ist oder wenn einzelne Wände für die Oberfläche aktiviert sind."
+"HINWEIS: Die unteren und oberen Oberflächen werden von diesem Wert nicht beeinflusst, um visuelle Lücken an der Außenseite des Modells zu vermeiden. Passen Sie 'Schwellenwert für eine Wand' in den Einstellungen 'Wände und Oberflächen' unten an, um die Empfindlichkeit dessen anzupassen, was als obere Oberfläche angesehen wird. 'Schwellenwert für eine Wand' ist nur sichtbar, wenn diese Einstellung über den Standardwert von 0,5 gesetzt ist oder wenn 'Nur eine Wand auf den oberen Flächen' aktiviert ist."
msgid "Maximum wall resolution"
msgstr "Maximale Wandauflösung"
@@ -18659,8 +20263,9 @@ msgstr "Dieser Wert bestimmt die kleinste Wandliniensegmentlänge in mm. Je klei
msgid "Maximum wall deviation"
msgstr "Maximale Wandabweichung"
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "Die maximale Abweichung, die bei der Reduzierung der Auflösung für die Einstellung 'Maximale Wandauflösung' zulässig ist. Wenn Sie diesen Wert erhöhen, wird der Druck weniger genau, aber der G-Code wird kleiner. 'Maximale Wandabweichung' begrenzt 'Maximale Wandauflösung', so dass wenn die beiden in Konflikt stehen, 'Maximale Wandabweichung' Vorrang hat."
+# AI Translated
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "Die maximale Abweichung, die bei der Reduzierung der Auflösung für die Einstellung 'Maximale Wandauflösung' zulässig ist. Wenn Sie diesen Wert erhöhen, wird der Druck weniger genau, aber der G-Code wird kleiner. 'Maximale Wandabweichung' begrenzt 'Maximale Wandauflösung', sodass bei einem Konflikt der beiden 'Maximale Wandabweichung' Vorrang hat."
msgid "First layer minimum wall width"
msgstr "Erste Schicht minimale Wandbreite"
@@ -18753,8 +20358,11 @@ msgstr "Die Brückenlinienbreite darf den Düsendurchmesser nicht überschreiten
msgid "too large line width "
msgstr "Zu große Linienbreite"
-msgid " not in range "
-msgstr "nicht im Bereich"
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% liegt nicht im Bereich [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Projekt als 3MF exportieren."
@@ -18904,6 +20512,14 @@ msgstr "Orientierungsoptionen"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Orientierungsoptionen: 0-deaktiviert; 1-aktiviert; andere-automatisch"
+# AI Translated
+msgid "Repair"
+msgstr "Reparieren"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Repariert die Netze der Modelle wie „Modell reparieren“: schließt Löcher und Risse, richtet sie nach außen aus und entfernt Selbstüberschneidungen."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Rotationswinkel um die Z-Achse in Grad."
@@ -19012,6 +20628,12 @@ msgstr "Ausgabeverzeichnis"
msgid "This is the output directory for exported files."
msgstr "Ausgabeverzeichnis für die exportierten Dateien."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Fehlersuchstufe"
@@ -19176,6 +20798,56 @@ msgstr "Hat einzelnes Extruder-MM-Priming"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Werden die zusätzlichen Multi-Material-Priming-Regionen in diesem Druck verwendet?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Erster Extruder ohne Stützen"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Nullbasierter Index des ersten Extruders, der für den Druck ohne Stützen verwendet wird. Gleichbedeutend mit initial_no_support_tool."
+
+# AI Translated
+# Needs human review: Placeholder name (comDevelop). 'Head wrap' is taken to mean filament wrapping around the nozzle/toolhead (cf. 'nozzle wrapping' = Umhüllung der Düse); check the term.
+msgid "In head wrap detect zone"
+msgstr "In der Zone zur Erkennung von Kopfumhüllung"
+
+# AI Translated
+# Needs human review: 'Head wrap zone' is taken to mean the nozzle/toolhead wrapping detection area (cf. 'nozzle wrapping' = Umhüllung der Düse); check the term.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Gibt an, ob die erste Schicht die Zone für Kopfumhüllung überlappt."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Aktueller Druckbetttyp"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Name des aktuell ausgewählten Druckbetttyps (z. B. 'Texturierte PEI-Platte', 'Glatte Hochtemperatur-Druckplatte')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Aktiver IDEX/IQEX-Modus"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Name des aktiven parallelen IDEX/IQEX-Druckmodus für diese Platte (z. B. 'primary', 'mirror', 'copy'). Leerer String, wenn IDEX/IQEX nicht aktiviert ist."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Index des aktiven IDEX/IQEX-Modus"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Nullbasierter Index des aktiven parallelen IDEX/IQEX-Druckmodus innerhalb von imex_mode_names."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-Code des aktiven IDEX/IQEX-Modus"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Die rohe Modus-G-Code-Vorlage für den aktiven parallelen IDEX/IQEX-Druckmodus, nach der Auswertung der Platzhalter. Hier definierte globale Variablen fließen in machine_start_gcode ein."
+
msgid "Volume per extruder"
msgstr "Volumen pro Extruder"
@@ -19321,6 +20993,18 @@ msgstr "Eingabedateiname ohne Erweiterung"
msgid "Source filename of the first object, without extension."
msgstr "Quelldateiname des ersten Objekts, ohne Erweiterung."
+# AI Translated
+msgid "Full input filename"
+msgstr "Vollständiger Name der Eingabedatei"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Quelldateiname des ersten Objekts."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Name der geslicten Platte."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Der Vektor hat zwei Elemente: x- und y-Koordinate des Punktes. Werte in mm."
@@ -19351,6 +21035,58 @@ msgstr "Obere rechte Ecke der Begrenzungsbox des Druckbetts"
msgid "Size of the print bed bounding box"
msgstr "Größe der Begrenzungsbox des Druckbetts"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Mittelpunkt der ersten Schicht ohne Reinigungsturm"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Höhe der ersten Schicht."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Vektor der Druckbetttemperaturen für jeden Extruder/jedes Filament."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Vektor der Druckbetttemperaturen der ersten Schicht für jeden Extruder/jedes Filament. Liefert denselben Wert wie first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Druckbetttemperatur der ersten Schicht (erster Extruder)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Druckbetttemperatur der ersten Schicht für den ersten Extruder. Gleichbedeutend mit bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Vektor der Druckraumtemperaturen für jeden Extruder/jedes Filament."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Vektor der minimalen Druckraumtemperaturen für jeden Extruder/jedes Filament."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Gesamte Druckraumtemperatur"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Gesamte Druckraumtemperatur. Dieser Wert ist die höchste Druckraumtemperatur aller verwendeten Extruder/Filamente."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Vektor der Druckbetttemperaturen der ersten Schicht für jeden Extruder/jedes Filament. Liefert denselben Wert wie bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Temperatur der ersten Schicht"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Vektor der Temperaturen der ersten Schicht für jeden Extruder/jedes Filament."
+
msgid "Timestamp"
msgstr "Zeitstempel"
@@ -19396,8 +21132,9 @@ msgstr "Name des physischen Druckers, der zum Slicen verwendet wird."
msgid "Layer number"
msgstr "Schichtnummer"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Index der aktuellen Schicht. Einsbasiert (d.h. die erste Schicht ist Nummer 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Index der aktuellen Schicht. Nullbasiert (d. h. die erste Schicht ist Nummer 0), außer im G-Code für den Wechsel der Extrusionsart, wo er einsbasiert ist."
msgid "Layer Z"
msgstr "Schichthöhe Z"
@@ -19417,6 +21154,252 @@ msgstr "Extruder-ID des Filaments"
msgid "The current extruder ID. The same as current_extruder."
msgstr "Die aktuelle Extruder-ID. Gleichbedeutend mit current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Vorheriger Extruder"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Index des Extruders, der entladen wird. Der Index ist nullbasiert (der erste Extruder hat den Index 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Nächster Extruder"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Index des Extruders, der geladen wird. Der Index ist nullbasiert (der erste Extruder hat den Index 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Relative E-Achse"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Gibt an, ob relative Positionierung verwendet wird."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Anzahl der Werkzeugwechsel"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "Die Anzahl der Werkzeugwechsel während des gesamten Drucks."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Alte Rückzugslänge"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Die Rückzugslänge des vorherigen Filaments."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Neue Rückzugslänge"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Die Rückzugslänge des neuen Filaments."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Alte Rückzugslänge beim Werkzeugwechsel"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Die Rückzugslänge beim Werkzeugwechsel des vorherigen Filaments."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Neue Rückzugslänge beim Werkzeugwechsel"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "Die Rückzugslänge beim Werkzeugwechsel des neuen Filaments."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Alte Filamenttemperatur"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "Die alte Filamenttemperatur."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Neue Filamenttemperatur"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "Die neue Filamenttemperatur."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X nach dem Werkzeugwechsel"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "Die X-Position nach dem Werkzeugwechsel."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y nach dem Werkzeugwechsel"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "Die Y-Position nach dem Werkzeugwechsel."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z nach dem Werkzeugwechsel"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "Die Z-Position nach dem Werkzeugwechsel."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Erstes Spülvolumen"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Das erste Spülvolumen."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Zweites Spülvolumen"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Das zweite Spülvolumen."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Alte E-Vorschubgeschwindigkeit des Filaments"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "Die alte Extruder-Vorschubgeschwindigkeit des Filaments."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Neue E-Vorschubgeschwindigkeit des Filaments"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "Die neue Extruder-Vorschubgeschwindigkeit des Filaments."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Eilgang-Punkt 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "Der Eilgang-Punkt 1 X."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Eilgang-Punkt 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Der Eilgang-Punkt 1 Y."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Eilgang-Punkt 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "Der Eilgang-Punkt 2 X."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Eilgang-Punkt 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Der Eilgang-Punkt 2 Y."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Eilgang-Punkt 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "Der Eilgang-Punkt 3 X."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Eilgang-Punkt 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Der Eilgang-Punkt 3 Y."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Spüllänge 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "Die erste Spüllänge."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Spüllänge 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "Die zweite Spüllänge."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Spüllänge 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "Die dritte Spüllänge."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Spüllänge 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "Die vierte Spüllänge."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Extrusionsart"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Die neue Extrusionsart, die verwendet werden soll\n"
+"Mögliche Werte:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Letzte Extrusionsart"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Die zuvor verwendete Extrusionsart\n"
+"Mögliche Werte:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Fehler im Zip-Archiv"
@@ -19429,24 +21412,32 @@ msgstr "Generieren von Füllbereichen"
msgid "Generating infill toolpath"
msgstr "Füllbewegungen generieren"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z-Konturierung: Schicht %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Erkennen der Überhänge für das automatische Anheben"
msgid "Checking support necessity"
msgstr "Überprüfung der Notwendigkeit von Stützen"
-msgid "floating regions"
-msgstr "schwebende Regionen"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Es scheint, dass das Objekt %1% schwebende Bereiche hat. Bitte richten Sie das Objekt neu aus oder aktivieren Sie die Erzeugung von Stützen."
-msgid "floating cantilever"
-msgstr "schwebender Überhang."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Es scheint, dass das Objekt %1% einen schwebenden Ausleger hat. Bitte richten Sie das Objekt neu aus oder aktivieren Sie die Erzeugung von Stützen."
-msgid "large overhangs"
-msgstr "Großer Überhang."
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Es scheint, dass das Objekt %s %s hat. Bitte orientieren Sie das Objektneu oder aktivieren Sie die Support-Generierung."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Es scheint, dass das Objekt %1% große Überhänge hat. Bitte richten Sie das Objekt neu aus oder aktivieren Sie die Erzeugung von Stützen."
msgid "Generating support"
msgstr "Generieren von Stützstrukturen"
@@ -19457,8 +21448,9 @@ msgstr "Optimieren des Werkzeugwegs"
msgid "Slicing mesh"
msgstr "Slicen des Netzes"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Es wurden keine Schichten erkannt. Möglicherweise möchten Sie Ihre STL-Datei(en) reparieren oder ihre Größe oder Dicke überprüfen und es erneut versuchen.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Es wurden keine Schichten erkannt. Möglicherweise möchten Sie das Modell reparieren oder seine Größe oder Dicke überprüfen und es erneut versuchen.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19477,6 +21469,398 @@ msgstr ""
msgid "Object name"
msgstr "Objekt Name"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Der unäre Minus-Operator kann nicht angewendet werden."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Konvertierung in eine Ganzzahl nicht möglich."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Ein nicht numerischer Wert kann nicht gerundet werden."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Ein nicht numerischer Wert kann nicht abgerundet werden."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Ein nicht numerischer Wert kann nicht aufgerundet werden."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Der Nicht-Operator kann nicht angewendet werden."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Nicht numerische Typen können nicht addiert werden."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Nicht numerische Typen können nicht subtrahiert werden."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Mit einem nicht numerischen Typ kann nicht multipliziert werden."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Ein nicht numerischer Typ kann nicht dividiert werden."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Durch einen nicht numerischen Typ kann nicht dividiert werden."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Division durch null"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Kein boolescher Ausdruck"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Die Typen können nicht verglichen werden."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Kein numerischer Typ."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: Der zweite Parameter muss eine Ganzzahl sein"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: Der dritte Parameter muss eine Ganzzahl sein"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Die linke Seite eines Regex-Abgleichs muss eine Zeichenfolge sein."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Kompilierung des regulären Ausdrucks fehlgeschlagen: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "Der erste Parameter von regex_replace() muss eine Zeichenfolge sein."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): Der erste Parameter (die Zeichenfolge, mit der abgeglichen wird) muss ein Zeichenfolgenwert sein"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): Das Muster muss ein Zeichenfolgenwert sein"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Kompilierung des regulären Ausdrucks fehlgeschlagen"
+
+# AI Translated
+# Needs human review: English says 'operators' but means the two operands of the logical operation (PlaceholderParser.cpp); translated as Operanden. Check, or fix the source wording.
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Eine logische Operation kann nicht auf nicht boolesche Operanden angewendet werden."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Es wird versucht, eine skalare Variable zu indizieren"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Ungültiger Vektorindex"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "Variable existiert nicht (in einem inaktiven Zweig)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "Variable existiert nicht"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Es wird versucht, auf eine nicht definierte (nil) optionale Variable zu verweisen"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Indizierung einer leeren Vektorvariablen"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Es wird versucht, auf ein nicht definiertes (nil) Element eines Vektors optionaler Werte zu verweisen"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "Die Indexvariable muss eine Ganzzahl sein"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Negativer Vektorindex"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Kein Variablenname"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Kein Variablenname (in einem inaktiven Zweig)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "Die FloatOrPercent-Variable konnte die Abhängigkeiten von \"ratio_over\" nicht auflösen"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Nicht unterstützter skalarer Variablentyp"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Verweis auf eine Vektorvariable, obwohl ein Skalar erwartet wird"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Nicht unterstützter Vektorvariablentyp"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Eine schreibgeschützte Variable kann nicht geändert werden"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Die rechte Seite ist kein numerischer Ausdruck"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Erwartet wurde die Anzahl der Elemente, mit denen ein Vektor gefüllt werden soll."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Es wurde eine negative Anzahl von Elementen angegeben."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Die rechte Seite ist kein boolescher Ausdruck"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Nicht unterstützter skalarer Ausgabevariablentyp"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Verweis auf eine Ausgabe-Vektorvariable, obwohl ein Skalar erwartet wird"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Index außerhalb des Bereichs"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Nicht unterstützter Ausgabe-Vektorvariablentyp"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Das Symbol ist bereits im schreibgeschützten Systemwörterbuch definiert"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Das Symbol ist bereits als System-Ausgabevariable definiert"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Globale Variablen sind in diesem Kontext nicht verfügbar"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Der Variablenname ist im lokalen Gültigkeitsbereich bereits definiert"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Der Variablenname ist im globalen Gültigkeitsbereich bereits definiert"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Ein skalarer Wert kann keiner Vektorvariablen zugewiesen werden."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Ein Vektorwert kann keiner skalaren Variablen zugewiesen werden."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Aus einer leeren Initialisierungsliste kann keine Vektorvariable erstellt werden, da sich ihr Typ nicht ableiten lässt."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Die rechte Seite ist ungültig: Numerische und boolesche Typen werden gemischt."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Ein Skalar kann keinem Vektor zugewiesen werden"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Einige Elemente der Vektorvariablen optionaler Werte auf der rechten Seite sind nicht definiert (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Die linke Seite ist ein Float-Vektor, die rechte Seite jedoch nicht."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Die linke Seite ist ein Integer-Vektor, die rechte Seite jedoch nicht."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Die linke Seite ist ein Zeichenfolgen-Vektor, die rechte Seite jedoch nicht."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Die linke Seite ist ein Bool-Vektor, die rechte Seite jedoch nicht."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Die Vektoren der linken und der rechten Seite sind nicht kompatibel."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Das Duplizieren dieses Typs von Vektorvariablen wird nicht unterstützt"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "Der Parameter von empty() ist keine Vektorvariable"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "Der Parameter von size() ist keine Vektorvariable"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Ein Index, der keine Ganzzahl ist, darf nicht zum Adressieren einer Vektorvariablen verwendet werden."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Der Zufallszahlengenerator ist in diesem Kontext nicht verfügbar."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Analysefehler in Zeile %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Analysefehler in Zeile %1%. Erwartet wird Tag %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Analysefehler in Zeile %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "Der Interpolationswert muss eine Zahl sein."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "Der X-Wert eines Tabellenpunkts muss eine Zahl sein."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "Der Y-Wert eines Tabellenpunkts muss eine Zahl sein."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Die X-Koordinaten der Tabelle müssen aufsteigend sein"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "Der Interpolationswert liegt außerhalb des Tabellenbereichs"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Unbekannter Syntaxfehler"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Ungültiger Text."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Ungültiger Textblock."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Ungültiges Makro."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Kein {if}{else}{endif}-Makro."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Kein {switch}-Makro."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Erwartet wird ein veraltetes Format zur Variablenerweiterung"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Erwartet wird ein Bezeichner."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Erwartet wird ein bedingter Ausdruck."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Erwartet wird ein boolescher Ausdruck."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Erwartet wird ein Ausdruck."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Erwartet wird eine schließende geschweifte Klammer oder ein optionaler Parameter."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Erwartet wird eine Liste von Zeichenfolgenmustern (einfacher Text oder Regex)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Erwartet wird ein Variablenverweis."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Erwartet wird ein Variablenname."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Erwartet wird ein regulärer Ausdruck."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Ungültige UTF-8-Sequenz"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Nicht-ASCII7-Zeichen sind nur in Textblöcken und Zeichenfolgenliteralen erlaubt, nicht in Codeblöcken."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Ungültige Escape-Sequenz"
+
msgid "Support: generate contact points"
msgstr "Stützen: Kontaktstellen erstellen"
@@ -19493,6 +21877,10 @@ msgstr "Die angegebene Datei konnte nicht gelesen werden, weil sie leer ist."
msgid "The file format is incompatible and cannot be parsed."
msgstr "Das Dateiformat ist nicht kompatibel und kann nicht gelesen werden."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Konvertierung des Assets nach STL über ModelIO fehlgeschlagen."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Unbekanntes Dateiformat: Die Eingabedatei muss die Endung .stl, .obj oder .amf(.xml) haben."
@@ -19541,9 +21929,6 @@ msgstr "Rekalibrierung"
msgid "Calibrate"
msgstr "Kalibrieren"
-msgid "Finish"
-msgstr "Fertig"
-
msgid "How can I use calibration results?"
msgstr "Wie wird das Kalibrierungsergebnis verwendet?"
@@ -19638,9 +22023,12 @@ msgstr ""
"Sind Sie sicher, dass Sie das historische Ergebnis überschreiben möchten?Innerhalb desselben Extruders muss der Name (%s) eindeutig sein, wenn der Filamenttyp, die Düsendurchmesser und der Düsenfluss gleich sind.\n"
"Sind Sie sicher, dass Sie das historische Ergebnis überschreiben möchten?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Dieser Maschinentyp kann nur %d historische Ergebnisse pro Düse speichern. Dieses Ergebnis wird nicht gespeichert."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Dieser Maschinentyp kann nur %d historisches Ergebnis pro Düse speichern. Dieses Ergebnis wird nicht gespeichert."
+msgstr[1] "Dieser Maschinentyp kann nur %d historische Ergebnisse pro Düse speichern. Dieses Ergebnis wird nicht gespeichert."
msgid "Connecting to printer..."
msgstr "Verbindung zum Drucker wird hergestellt..."
@@ -19859,9 +22247,13 @@ msgstr "Nozzle- und AMS-Informationen synchronisieren"
msgid "Please connect the printer first before synchronizing."
msgstr "Bitte verbinden Sie zuerst den Drucker, bevor Sie synchronisieren."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "Die Düseninformationen des Druckers %s wurden nicht festgelegt. Bitte konfigurieren Sie sie, bevor Sie mit der Kalibrierung fortfahren."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Die Informationen zur rechten Düse des Druckers wurden nicht festgelegt. Bitte konfigurieren Sie sie, bevor Sie mit der Kalibrierung fortfahren."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Die Informationen zur linken Düse des Druckers wurden nicht festgelegt. Bitte konfigurieren Sie sie, bevor Sie mit der Kalibrierung fortfahren."
msgid "AMS and nozzle information are synced"
msgstr "AMS- und Düseninformationen sind synchronisiert"
@@ -19924,6 +22316,11 @@ msgstr "Vom volumetrischen Speed"
msgid "To Volumetric Speed"
msgstr "zur volumetrischen Geschwindigkeit"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Schrittweite"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Möchten Sie diesen Druck wirklich abbrechen?"
@@ -19949,9 +22346,12 @@ msgstr "Hinweis: Die Hotend-Nummer auf dem %s ist an den Halter gebunden. Wenn d
msgid "Action"
msgstr "Aktivität"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Dieser Maschinentyp kann nur %d historische Ergebnisse pro Düse speichern."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Dieser Maschinentyp kann nur %d historisches Ergebnis pro Düse speichern."
+msgstr[1] "Dieser Maschinentyp kann nur %d historische Ergebnisse pro Düse speichern."
msgid "Edit Flow Dynamics Calibration"
msgstr "Ändern der Flussdynamik-Kalibrierung"
@@ -20078,12 +22478,13 @@ msgstr ""
"Beschleunigungswerte müssen größer als Geschwindigkeitswerte sein.\n"
"Bitte überprüfen Sie die Eingaben."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Auf Förderbanddruckern noch nicht verfügbar — verwenden Sie stattdessen die Methode „PA Turm“."
+
msgid "Temperature calibration"
msgstr "Temperatur Test"
-msgid "Filament type"
-msgstr "Filamenttyp"
-
msgid "PLA"
msgstr "PLA"
@@ -20105,6 +22506,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Testmodell"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Standard"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Überhang"
+
msgid "Start temp: "
msgstr "Starttemperatur"
@@ -20230,9 +22644,6 @@ msgstr "Start Rückzugslänge"
msgid "End retraction length: "
msgstr "Ende Rückzugslänge"
-msgid "Test model"
-msgstr "Testmodell"
-
msgid "Ringing Tower"
msgstr "Ringing Turm"
@@ -20262,8 +22673,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Frequenz (Start / Ende): "
-msgid "Start / End"
-msgstr "Start / Ende"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X Start / Ende: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y Start / Ende: "
msgid "Frequency settings"
msgstr "Frequenz Einstellungen"
@@ -20300,8 +22716,13 @@ msgstr "Überprüfen Sie die Firmware-Kompatibilität."
msgid "Frequency: "
msgstr "Frequenz: "
-msgid "Damp"
-msgstr "Dämpfung"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Frequenz X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Dämpfung (Start / Ende): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "RepRap-Firmware verwendet dieselbe Frequenz für beide Achsen."
@@ -20425,9 +22846,12 @@ msgstr "Zeitraffer"
msgid "Enable IFS"
msgstr "IFS aktivieren"
+# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "%d IFS-Slots auf dem Drucker erkannt."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "%d IFS-Slot auf dem Drucker erkannt."
+msgstr[1] "%d IFS-Slots auf dem Drucker erkannt."
msgid "This printer does not report a material station."
msgstr "Dieser Drucker meldet keine Materialstation."
@@ -20546,8 +22970,10 @@ msgstr "Abziehen von"
msgid "Subtract with"
msgstr "Abziehen mit"
-msgid "selected"
-msgstr "Ausgewählt"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 ausgewählt"
msgid "Part 1"
msgstr "Teil 1"
@@ -20660,9 +23086,6 @@ msgstr "z.B. Basic, Matte, Silk, Marble"
msgid "Filament Preset"
msgstr "Filamentprofil"
-msgid "Create"
-msgstr "Erstellen"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "Hersteller ist nicht ausgewählt, bitte Hersteller erneut auswählen."
@@ -20970,6 +23393,10 @@ msgstr ""
"Drucker und alle Filament- und Prozessprofile, die zum Drucker gehören.\n"
"Kann mit anderen geteilt werden."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Benutzerdefinierte Druckbetttextur und -modell einbeziehen"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21021,14 +23448,6 @@ msgstr "Hinweis: Wenn die einzige Profil unter diesem Filament gelöscht wird, w
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Profile, die von anderen Profilen geerbt wurden, können nicht gelöscht werden"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Die folgenden Profile erben dieses Profil."
-msgstr[1] "Das folgende Profil erbt dieses Profil."
-
-msgid "Delete Preset"
-msgstr "Profil löschen"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Möchten Sie das ausgewählte Profil wirklich löschen?"
@@ -21105,10 +23524,12 @@ msgstr "Der Start, das Ende oder der Schritt ist kein gültiger Wert."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "Die Anzahl der Drucker-Extruder und der für die Kalibrierung ausgewählte Drucker stimmen nicht überein."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "Der Düsendurchmesser des Extruders %s beträgt 0,2 mm, wodurch die automatische Kalibrierung der Flussdynamik nicht unterstützt wird."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21124,6 +23545,12 @@ msgstr ""
"Der Düsendurchmesser stimmt nicht mit dem tatsächlichen Düsendurchmesser des Druckers überein.\n"
"Bitte klicken Sie auf die Schaltfläche Synchronisieren oben und starten Sie die Kalibrierung neu."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Die Düseninformationen des Druckers %s wurden nicht festgelegt. Bitte konfigurieren Sie sie, bevor Sie mit der Kalibrierung fortfahren."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21196,6 +23623,11 @@ msgstr "Creality K-Serie Drucker erkennen"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Klicken Sie auf 'Scannen', um nach K-Serie Druckern in Ihrem Netzwerk zu suchen."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Modell"
+
# AI Translated
msgid "Scan"
msgstr "Scannen"
@@ -21213,9 +23645,12 @@ msgstr "(unbekannte K-Serie)"
msgid "No K-series printers found. Make sure the printer is on the same network and not blocked by Wi-Fi client isolation, then click Scan again."
msgstr "Keine K-Serie Drucker gefunden. Stellen Sie sicher, dass der Drucker im selben Netzwerk ist und nicht durch Wi-Fi-Client-Isolation blockiert wird, und klicken Sie dann erneut auf 'Scannen'."
+# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "Es wurden %zu Creality-Drucker gefunden. Wählen Sie einen aus und klicken Sie auf 'Ausgewählten verwenden'."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "Es wurde %zu Creality-Drucker gefunden. Wählen Sie ihn aus und klicken Sie auf „Ausgewählten verwenden“."
+msgstr[1] "Es wurden %zu Creality-Drucker gefunden. Wählen Sie einen aus und klicken Sie auf „Ausgewählten verwenden“."
msgid "Active"
msgstr "Aktiv"
@@ -21304,8 +23739,13 @@ msgstr "Konnte den Pfad zur ausführbaren Datei nicht bestimmen."
msgid "Failed to launch a new instance."
msgstr "Konnte keine neue Instanz starten."
-msgid "log(s)"
-msgstr "Protokoll(e)"
+# AI Translated
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d Protokolldatei (%.2f %s)"
+msgstr[1] "%d Protokolldateien (%.2f %s)"
msgid "Choose where to save the exported JSON file"
msgstr "Wählen Sie, wo die exportierte JSON-Datei gespeichert werden soll"
@@ -21348,15 +23788,35 @@ msgstr "Druckertyp nicht gefunden, bitte manuell auswählen."
msgid "Authorizing..."
msgstr "Autorisierung..."
-msgid "Error. Can't get API token for authorization"
-msgstr "Fehler. Kann kein API-Token für die Autorisierung erhalten"
+# AI Translated
+msgid "Maximum login retries exceeded"
+msgstr "Maximale Anzahl an Anmeldeversuchen überschritten"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "HTTP-Fehler: %1%"
msgid "Could not parse server response."
msgstr "Konnte Serverantwort nicht analysieren"
+msgid "Error. Can't get API token for authorization"
+msgstr "Fehler. Kann kein API-Token für die Autorisierung erhalten"
+
msgid "Error saving session to file"
msgstr "Fehler beim Speichern der Sitzung in Datei"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "Verbindung zur 3DPrinterOS-Cloud funktioniert korrekt."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Angemeldet als Benutzer: %1%"
+
msgid "Error session check"
msgstr "Fehler bei der Sitzungsüberprüfung"
@@ -21391,6 +23851,42 @@ msgstr "Falsches Passwort"
msgid "Could not get resources to create a new connection"
msgstr "Konnte keine Ressourcen zum Erstellen einer neuen Verbindung erzeugen"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "Verbindung zu UltiMaker funktioniert korrekt."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Konnte keine Verbindung zu UltiMaker herstellen"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Fehler beim Erzeugen der Zugangsdaten! Details finden Sie im Protokoll."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "FEHLER: ID oder KEY ist leer. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Benutzername: %1% Passwort: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Die Zugangsdaten warten auf Genehmigung. Bitte genehmigen Sie den Zugriff im Dialog auf dem Bildschirm des Druckers."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Ungültige Zugangsdaten"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Fehler: Keine Zugangsdaten gefunden!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Upload auf FlashAir-Karte nicht aktiviert."
@@ -21504,6 +24000,14 @@ msgstr ""
"Nachrichtentext: \"%1%\"\n"
"Fehler: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "Verbindung zu ESP3D funktioniert korrekt."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Konnte keine Verbindung zu ESP3D herstellen"
+
msgid "No AMS"
msgstr "Kein AMS"
@@ -21575,6 +24079,11 @@ msgstr "Die maximale Anzahl von Druckern, die ausgewählt werden können, beträ
msgid "No task"
msgstr "Keine Aufgabe"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Anzeigen"
+
msgid "Edit Printers"
msgstr "Drucker bearbeiten"
@@ -21616,6 +24125,11 @@ msgstr "Druck fehlgeschlagen"
msgid "Printing Pause"
msgstr "Druck pausiert"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Vorbereitung"
+
msgid "Pending"
msgstr "Ausstehend"
@@ -21648,9 +24162,6 @@ msgstr "Intelligente Filamentzuweisung aktivieren: Ein Filament mehreren Düsen
msgid "File Saving"
msgstr "Datei speichern"
-msgid "Don't remind me again"
-msgstr "Nicht mehr erinnern"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Es wird kein weiteres Popup angezeigt. Sie können es in 'Einstellungen' "
@@ -21675,16 +24186,24 @@ msgstr "Weist das Filament manuell der linken oder rechten Düse zu"
msgid "Global settings"
msgstr "Globale Einstellungen"
-msgid "Video tutorial"
-msgstr "Video-Tutorial"
-
msgid "(Sync with printer)"
msgstr "(Mit Drucker synchronisieren)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Fehler: %s-Extruder hat keine verfügbare %s-Düse, aktuelles Gruppierungsergebnis ist ungültig."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Fehler: Der linke Extruder hat keine verfügbare Standard-Düse, das aktuelle Gruppierungsergebnis ist ungültig."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Fehler: Der linke Extruder hat keine verfügbare High-Flow-Düse, das aktuelle Gruppierungsergebnis ist ungültig."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Fehler: Der rechte Extruder hat keine verfügbare Standard-Düse, das aktuelle Gruppierungsergebnis ist ungültig."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Fehler: Der rechte Extruder hat keine verfügbare High-Flow-Düse, das aktuelle Gruppierungsergebnis ist ungültig."
msgid "We will slice according to this grouping method:"
msgstr "Wir werden entsprechend dieser Gruppierungsmethode schneiden:"
@@ -21727,15 +24246,22 @@ msgstr "Konnte keine Verbindung zu SimplyPrint herstellen"
msgid "Internal error"
msgstr "Interner Fehler"
-msgid "Unknown error"
-msgstr "Unbekannter Fehler"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "SimplyPrint-Konto nicht verknüpft. Gehen Sie zu den Verbindungsoptionen, um es einzurichten."
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge hat eine ungültige JSON-Antwort zurückgegeben."
+# AI Translated
+msgid "Request failed"
+msgstr "Anfrage fehlgeschlagen"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Fehler der lokalen Flashforge-API %1%: %2%"
+
msgid "No Flashforge printers were discovered on the local network."
msgstr "Es wurden keine Flashforge-Drucker im lokalen Netzwerk gefunden."
@@ -21881,8 +24407,12 @@ msgstr "Achtung: Der Brim-Typ ist nicht auf \"bemalt\" eingestellt, auf die Maus
msgid "Set the brim type of this object to \"painted\""
msgstr "Den Brim-Typ dieses Objekts auf \"bemalt\" setzen"
-msgid "invalid brim ears"
-msgstr "Ungültige Mausohren"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d ungültiges Brim-Ohr"
+msgstr[1] "%d ungültige Brim-Ohren"
msgid "Brim Ears"
msgstr "Mausohren"
@@ -21908,6 +24438,7 @@ msgstr "Laden der Überspringobjektinformationen fehlgeschlagen. Bitte versuchen
msgid "Failed to create the temporary folder."
msgstr "Erstellen des temporären Ordners fehlgeschlagen."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d ausgewählt"
@@ -21927,9 +24458,12 @@ msgstr "Alle Objekte werden übersprungen."
msgid "The printing job will be stopped. Continue?"
msgstr "Der Druckauftrag wird gestoppt. Fortsetzen?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Überspringen von %d Objekten."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "%d Objekt wird übersprungen."
+msgstr[1] "%d Objekte werden übersprungen."
msgid "This action cannot be undone. Continue?"
msgstr "Diese Aktion kann nicht rückgängig gemacht werden. Fortsetzen?"
@@ -22077,6 +24611,42 @@ msgstr "Wenn aktiviert, werden die obigen Werte als Standardwerte für zukünfti
msgid "PresetBundle"
msgstr "Preset-Bündel"
+# AI Translated
+msgid "Export Presets"
+msgstr "Profile exportieren"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Im Ordner anzeigen"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Bündel löschen"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Bündel abbestellen"
+
+# AI Translated
+msgid "Update available"
+msgstr "Update verfügbar"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Nicht autorisiertes Bündel"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Dieses Bündel in Ihrem Browser öffnen"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "Abonniert"
+
+# AI Translated
+msgid "Local"
+msgstr "Lokal"
+
msgid "Bundle folder does not exist."
msgstr "Bündelordner existiert nicht."
@@ -22110,6 +24680,14 @@ msgstr "Bündel abbestellen"
msgid "ExportPresetBundle"
msgstr "Preset-Bündel exportieren"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Nach OrcaCloud exportieren"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "In Ordner exportieren"
+
msgid "Save preset bundle"
msgstr "Preset-Bündel speichern"
@@ -22197,6 +24775,11 @@ msgstr "AMS-Trocknungssteuerung"
msgid "Filament Drying Settings"
msgstr "Filament-Trocknungseinstellungen"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "Std"
+
# AI Translated
msgid "Stopping"
msgstr "Wird gestoppt"
@@ -22376,6 +24959,11 @@ msgstr "Start: Lufteinlass wird geprüft"
msgid "Starting: Checking air vent"
msgstr "Start: Luftauslass wird geprüft"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Verzeichnis %1% kann nicht erstellt werden"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Das Filament ist möglicherweise nicht mit den aktuellen Maschineneinstellungen kompatibel. Es werden generische Filament-Profile verwendet."
@@ -22391,6 +24979,105 @@ msgstr "Das Filament ist möglicherweise nicht mit den aktuellen Geräteeinstell
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Das Filamentprofil ist unbekannt. Es wird ein zufälliges Filamentprofil verwendet."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Unbekannte Konfigurationsdatei: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Ungültige Konfigurationsdatei: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "Steckplatz %1% -> Steckplatz %2%: Mischfilament"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "Definition des Mischfilaments: Limit der Filament-Steckplätze erreicht"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "Limit der Filament-Steckplätze erreicht"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "das Filament-Limit des Druckers beträgt %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "Steckplatz %1% -> Steckplatz %2%: nicht zugewiesenes Mischfilament (das Filament-Limit des Druckers beträgt %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "Steckplatz %1%: nicht zugewiesenes Mischfilament (das Filament-Limit des Druckers beträgt %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "Steckplatz %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "Steckplatz %1%: Definition des Mischfilaments konnte nicht importiert werden"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "benötigt mindestens zwei Komponenten"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "Komponenten verweisen auf fehlende Steckplätze"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "Definition des Mischfilaments: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "Steckplatz %1%: Definition des Mischfilaments konnte nicht importiert werden (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "Steckplatz %1%: %2% -> %3% (Ersatz)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Laden der Konfigurationsdatei %1% fehlgeschlagen\n"
+"Es wird empfohlen, zuerst das Verzeichnis %2% zu bereinigen"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Ungültige Konfigurationsversion %2% des Herstellers %1%\n"
+"Es wird empfohlen, zuerst das Verzeichnis %3% zu bereinigen"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Laden der Konfigurationsdatei %1% fehlgeschlagen: %2%\n"
+"Es wird empfohlen, zuerst das Verzeichnis %3% zu bereinigen"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Referenzebenen und Achsen ausblenden"
@@ -22704,6 +25391,11 @@ msgstr "Kein Flächenkörper zum Aufdicken — erstellen Sie zuerst ein Oberflä
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Referenz / Kurve (Ebene / Achse / KS / Helix / Projizieren)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Ebene"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Referenzebene (versetzt / geneigt / Mittelebene / tangential / zwei Kanten / koinzident)"
@@ -22770,6 +25462,11 @@ msgstr "Einen vorhandenen Körper verschieben und/oder drehen"
msgid "Transform needs a body — add or import one first"
msgstr "Transformieren benötigt einen Körper — fügen Sie zuerst einen hinzu oder importieren Sie einen"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Spiegeln"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Einen Körper an einer Ebene spiegeln"
@@ -22863,6 +25560,11 @@ msgstr "(keine)"
msgid "Hole / thread"
msgstr "Bohrung / Gewinde"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Bohrung"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Eine Bohrung erstellen, zentriert auf einer gewählten Fläche oder auf einer Ebene platziert"
@@ -22907,6 +25609,11 @@ msgstr "2 Punkte oder eine Linie / einen Kreis / einen Bogen klicken, um eine Be
msgid "Line / polyline"
msgstr "Linie / Polylinie"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Linie"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Start, dann Ende klicken — dann die genaue Länge festlegen"
@@ -23043,6 +25750,9 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Kontrollpunkte klicken; Doppelklick, Rechtsklick oder Enter zum Beenden"
+msgid "Point"
+msgstr "Punkt"
+
# AI Translated
msgid "Click to place a point"
msgstr "Klicken, um einen Punkt zu platzieren"
@@ -23160,17 +25870,20 @@ msgid "Pick entities, drag the sweep handle, click the count; click empty to app
msgstr "Elemente wählen, den Griff für den Winkelbereich ziehen, auf die Anzahl klicken; zum Anwenden ins Leere klicken"
# AI Translated
+# Needs human review: Polygon tool prompt: 'circumscribed' rendered as 'umbeschrieben' (and 'inscribed' as 'einbeschrieben'); check the geometry terms read right in the Design tab.
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Mittelpunkt, dann einen Eckpunkt klicken — %d Seiten, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Mittelpunkt, dann einen Eckpunkt klicken — %d Seite, umbeschrieben"
+msgstr[1] "Mittelpunkt, dann einen Eckpunkt klicken — %d Seiten, umbeschrieben"
# AI Translated
-msgid "circumscribed"
-msgstr "umschrieben"
-
-# AI Translated
-msgid "inscribed"
-msgstr "eingeschrieben"
+# Needs human review: Polygon tool prompt: 'inscribed' rendered as 'einbeschrieben' (and 'circumscribed' as 'umbeschrieben'); check the geometry terms read right in the Design tab.
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Mittelpunkt, dann einen Eckpunkt klicken — %d Seite, einbeschrieben"
+msgstr[1] "Mittelpunkt, dann einen Eckpunkt klicken — %d Seiten, einbeschrieben"
# AI Translated
msgid "Polygon"
@@ -23508,6 +26221,12 @@ msgstr "Auf Fläche"
msgid "Thread plane"
msgstr "Gewindeebene"
+# AI Translated
+# Needs human review: Label for the thread standard choice in the Design tab (ISO metric, UNC, ...); 'Standard' is read as the thread norm, hence 'Norm'. Check it reads right next to its dropdown.
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Norm"
+
# AI Translated
msgid "Pitch"
msgstr "Steigung"
@@ -23695,6 +26414,9 @@ msgstr "Wählen Sie eine Fläche eines Volumenkörpers zum Öffnen und legen Sie
msgid "(pick a side face)"
msgstr "(Seitenfläche wählen)"
+msgid "Face"
+msgstr "Fläche"
+
# AI Translated
msgid "Draft"
msgstr "Formschräge"
@@ -24073,8 +26795,10 @@ msgstr "Skizze aktualisiert"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Skizze erstellt (%zu steuernde Bemaßungen) — auswählen, dann Rechtsklick zum Extrudieren"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Skizze erstellt (%zu steuernde Bemaßung) — auswählen, dann Rechtsklick zum Extrudieren"
+msgstr[1] "Skizze erstellt (%zu steuernde Bemaßungen) — auswählen, dann Rechtsklick zum Extrudieren"
# AI Translated
#, c-format, boost-format
@@ -24211,8 +26935,10 @@ msgstr "Bearbeiten: Skizze %d · N = senkrecht auf die Ebene blicken ·
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — %zu Dreiecke"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — %zu Dreieck"
+msgstr[1] "OK — %zu Dreiecke"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -24298,10 +27024,18 @@ msgstr "Das Netz enthält keine Dreiecke"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Dieses Netz hat %d Dreieck. Jedes Dreieck wird vor dem Zusammenführen koplanarer Flächen zu einer B-rep-Fläche, daher kann der Import lange dauern und einen Körper ergeben, der sich nur langsam bearbeiten lässt. Meist ist es besser, das Netz vorher zu reduzieren.\n"
+"\n"
+"Trotzdem importieren?"
+msgstr[1] ""
"Dieses Netz hat %d Dreiecke. Jedes Dreieck wird vor dem Zusammenführen koplanarer Flächen zu einer B-rep-Fläche, daher kann der Import lange dauern und einen Körper ergeben, der sich nur langsam bearbeiten lässt. Meist ist es besser, das Netz vorher zu reduzieren.\n"
"\n"
"Trotzdem importieren?"
@@ -24330,8 +27064,8 @@ msgstr "Netzimport fehlgeschlagen: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Volumenkörper importiert — %d Dreiecke → %d Flächen, Volumen %.2f mm³. Eine Fläche oder Kante wählen, dann Abrunden / Schneiden / Aushöhlen zum Bearbeiten"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Volumenkörper importiert — Dreiecke: %d → Flächen: %d, Volumen %.2f mm³. Eine Fläche oder Kante wählen, dann Abrunden / Schneiden / Aushöhlen zum Bearbeiten"
# AI Translated
#, c-format, boost-format
@@ -24348,8 +27082,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s zur Skizze hinzugefügt — Bestätigen zum Übernehmen"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — zum Platzieren/Skalieren ziehen, dann bestätigen"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — zum Platzieren/Skalieren ziehen, dann bestätigen"
# AI Translated
msgid "Insert canceled"
@@ -24556,9 +27292,12 @@ msgid "a geometry operation failed"
msgstr "eine Geometrieoperation ist fehlgeschlagen"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d gewählt"
+msgid_plural " · %d picked"
+msgstr[0] " · %d gewählt"
+msgstr[1] " · %d gewählt"
# AI Translated
#, c-format, boost-format
@@ -24574,7 +27313,9 @@ msgstr "Auswählen — ein Element anklicken, um es zu wählen · einen Endpun
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d gewählt · jetzt eine Abhängigkeit wählen (Horizontal, Parallel, Tangential, Gleich…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d gewählt · jetzt eine Abhängigkeit wählen (Horizontal, Parallel, Tangential, Gleich…)"
+msgstr[1] "%d gewählt · jetzt eine Abhängigkeit wählen (Horizontal, Parallel, Tangential, Gleich…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -24835,7 +27576,9 @@ msgstr "Spiegeln — Achse festgelegt · jetzt die zu spiegelnden Elemente ank
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Spiegeln — Achse festgelegt · %d zu spiegeln · ein weiteres anklicken, um es hinzuzufügen oder zu entfernen · Enter wendet an"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Spiegeln — Achse festgelegt · %d zu spiegeln · ein weiteres anklicken, um es hinzuzufügen oder zu entfernen · Enter wendet an"
+msgstr[1] "Spiegeln — Achse festgelegt · %d zu spiegeln · ein weiteres anklicken, um es hinzuzufügen oder zu entfernen · Enter wendet an"
# AI Translated
msgid "Move — click the entities to move"
@@ -24958,8 +27701,10 @@ msgstr "Skizzenpunkt"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d Skizzenelemente"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d Skizzenelement"
+msgstr[1] "%d Skizzenelemente"
# AI Translated
msgid "select something first"
@@ -25495,8 +28240,10 @@ msgid "Applied edit"
msgstr "Bearbeitung angewendet"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — Wert eingeben, Enter drücken (oder bestätigen)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — Wert eingeben, Enter drücken (oder bestätigen)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -25568,10 +28315,23 @@ msgstr "Auf Druckplatte übernehmen — den Volumenkörper an Vorbereiten senden
msgid "Nothing to commit — add a feature first"
msgstr "Nichts zu übernehmen — fügen Sie zuerst ein Feature hinzu"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Konstruktionskörper %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Alle Körper ausgeblendet — blenden Sie vor dem Übernehmen einen ein"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Konstruktionsbaugruppe"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Konstruktionskörper"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -25638,8 +28398,10 @@ msgstr "Ungültig: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Vorschau — %zu Dreiecke"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Vorschau — %zu Dreieck"
+msgstr[1] "Vorschau — %zu Dreiecke"
# AI Translated
#, c-format, boost-format
@@ -25741,8 +28503,10 @@ msgstr "Diese Bemaßung kann nicht erfüllt werden — die Skizze ist überbesti
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "%1% Abhängigkeit(en) können nicht auf diese Geometrie wirken (eine Ellipse oder Spline-Kurve oder ein Kreis der Größe null) und werden ignoriert"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% Abhängigkeit kann nicht auf diese Geometrie wirken (eine Ellipse oder Spline-Kurve oder ein Kreis der Größe null) und wird ignoriert"
+msgstr[1] "%1% Abhängigkeiten können nicht auf diese Geometrie wirken (eine Ellipse oder Spline-Kurve oder ein Kreis der Größe null) und werden ignoriert"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -25800,8 +28564,10 @@ msgstr "Fasen: Der Abstand reicht über einen Schenkel hinaus, oder die beiden L
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "%1% durch das Abrunden/Fasen ungültig gewordene Abhängigkeit(en) wurden entfernt"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "%1% durch das Abrunden/Fasen ungültig gewordene Abhängigkeit wurde entfernt"
+msgstr[1] "%1% durch das Abrunden/Fasen ungültig gewordene Abhängigkeiten wurden entfernt"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -25821,8 +28587,10 @@ msgstr "Die Anzahl der Kopien muss eine ganze Zahl von mindestens 2 sein"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "%1% Abhängigkeit(en) durch die Transformation aufgehoben"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "%1% Abhängigkeit durch die Transformation aufgehoben"
+msgstr[1] "%1% Abhängigkeiten durch die Transformation aufgehoben"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -25973,11 +28741,6 @@ msgstr "Oberfläche aufdicken"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Oberfläche aufdicken benötigt einen Flächenkörper — erstellen Sie zuerst einen mit einem Oberflächen-Werkzeug"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Bohrung"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26062,11 +28825,6 @@ msgstr "Kreismuster"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Den Körper um eine Achse wiederholen — Anzahl und Winkelbereich festlegen"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Spiegeln"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26103,11 +28861,6 @@ msgstr "Ausrichten benötigt einen Körper — fügen Sie zuerst einen hinzu ode
msgid "Align the body to a picked face or plane"
msgstr "Den Körper an einer gewählten Fläche oder Ebene ausrichten"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Ebene"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -26213,11 +28966,6 @@ msgstr "Körper löschen"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Diesen ganzen Körper löschen — entfernt das Feature, aus dem er erzeugt wurde"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Linie"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -26532,214 +29280,6 @@ msgstr "Diese Schriftart hat keinen Umriss für diesen Text"
msgid "Size: %.1f × %.1f mm"
msgstr "Größe: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Primitiv"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Leeres Netz erzeugt"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Quader"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Schnell:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Breite (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Tiefe (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Höhe (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "R unten"
-
-# AI Translated
-msgid "Top R"
-msgstr "R oben"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "R groß"
-
-# AI Translated
-msgid "Minor R"
-msgstr "R klein"
-
-# AI Translated
-msgid "All edges"
-msgstr "Alle Kanten"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Obere Kanten"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Untere Kanten"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Seitliche Kanten"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Netzauflösung"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Form hinzufügen"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Kein Außenprofil"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Außenfläche konnte nicht erstellt werden"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Fläche mit Löchern konnte nicht erstellt werden"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Rotieren fehlgeschlagen"
-
-# AI Translated
-msgid "Profile"
-msgstr "Profil"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Neues Profil beginnen (für Löcher)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segmente"
-
-# AI Translated
-msgid "Sides"
-msgstr "Seiten"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Zum Zeichnen in die Ansicht klicken"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Am Raster einrasten"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Rasterabstand"
-
-# AI Translated
-msgid "Outer"
-msgstr "Außen"
-
-# AI Translated
-msgid "closed"
-msgstr "geschlossen"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% Punkte %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (Oben)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (Vorne)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (Seite)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Rotieren (Grad)"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "0 zum Extrudieren, >0 zum Rotieren"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Tasche (Ausschnitt)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu geschlossenes Profil"
-msgstr[1] "%zu geschlossene Profile"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Zum Aktivieren ein geschlossenes Profil zeichnen"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Alle löschen"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Leeres Ergebnis"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Extrudieren: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Rotieren: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Kein Objekt ausgewählt"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Fläche fehlgeschlagen"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Fläche mit Löchern fehlgeschlagen"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Werkzeugnetz ist leer"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Tasche hinzugefügt (negatives Volumen)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Tasche: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -26861,6 +29401,10 @@ msgstr "Gizmo Zusammenbauen"
msgid "Gizmo brim ears"
msgstr "Gizmo mausohren"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Gizmo Texturverschiebung aufmalen"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Vertikaler Schieberegler - Aktiven Schieber nach oben bewegen"
@@ -27095,6 +29639,12 @@ msgstr "benötigt an beiden Enden eine zylindrische Fläche — Konnektor %1% li
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "benötigt an beiden Enden eine zylindrische Fläche — Konnektor %1% liegt auf einer gekrümmten Fläche"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (Basisebene fehlt)"
+
# AI Translated
msgid "two points are coincident"
msgstr "zwei Punkte fallen zusammen"
@@ -27123,10 +29673,31 @@ msgstr "Ebenen sind parallel (kein Schnitt)"
msgid "zero-length direction"
msgstr "Richtung mit Länge null"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "ein Feature arbeitet auf Körper %1%, der an dieser Stelle im Verlauf nicht existiert"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "„%1%“ arbeitet auf einem Körper, der von einem gelöschten oder ausgeblendeten Feature erzeugt wurde"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "„%1%“ arbeitet auf einem Körper, der an dieser Stelle im Verlauf nicht existiert"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "Feature wird von einem späteren Feature verwendet"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "„%1%“ verwendet „%2%“ und kann deshalb nicht davor stehen"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "Skizzenelemente bilden keine geschlossene Schleife"
@@ -27137,9 +29708,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Offen bei (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...und %1% weitere(s) offene(s) Ende(n)"
+msgid "Open ends not shown: %1%"
+msgstr "Nicht angezeigte offene Enden: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "Rotieren: die Achslinie ist nicht mehr in der Skizze — Achse erneut wählen"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "Rotieren: die Achslinie hat keine Länge"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -27287,6 +29867,30 @@ msgstr "Kantenzug der Bohrung fehlgeschlagen"
msgid "hole cut failed"
msgstr "Schnitt der Bohrung fehlgeschlagen"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "Gewinde: der Durchmesser muss mindestens 1 mm betragen"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "Gewinde: die Steigung muss größer als 0,1 mm sein"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "Gewinde: die Tiefe muss zwischen 0 und dem 0,7-Fachen der Steigung liegen"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "Gewinde: die Tiefe ist für diesen Durchmesser zu groß"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "Gewinde: die Länge muss größer als eine halbe Steigung sein"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "Gewinde: zu viele Windungen (Länge / Steigung muss unter 400 bleiben)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "Innengewinde benötigt einen Körper"
@@ -27347,6 +29951,22 @@ msgstr "Fläche löschen fehlgeschlagen"
msgid "delete_face produced no geometry"
msgstr "Fläche löschen hat keine Geometrie erzeugt"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "Boolesch: kein Zielkörper"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "Boolesch: kein Werkzeugkörper — einen zweiten Körper wählen"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "Boolesch: Ziel und Werkzeug sind derselbe Körper"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "Boolesch: ein Körper hat keine Geometrie"
+
# AI Translated
msgid "boolean operation failed"
msgstr "Boolesche Operation fehlgeschlagen"
@@ -27674,6 +30294,10 @@ msgstr "Modellbilder"
msgid "Auxiliaries"
msgstr "Zusatzdateien"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Band-Reinigungsturm"
+
# AI Translated
msgid "Project Filament List"
msgstr "Liste der Projektfilamente"
@@ -27708,8 +30332,18 @@ msgstr "Für die Zerlegung sind mindestens zwei Filamente desselben Materialtyps
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "Die Materialliste unterstützt höchstens %1% Farben. Nach der Zerlegung (%2%) würde die Anzahl der Materialien %1% überschreiten. Bitte löschen Sie vor dem Zerlegen nicht verwendete Filamente im Hauptfenster."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Die Materialliste unterstützt höchstens %1% Farbe. Nach der Zerlegung der Materialliste würde die Anzahl der Materialien %1% überschreiten. Bitte löschen Sie vor dem Zerlegen nicht verwendete Filamente im Hauptfenster."
+msgstr[1] "Die Materialliste unterstützt höchstens %1% Farben. Nach der Zerlegung der Materialliste würde die Anzahl der Materialien %1% überschreiten. Bitte löschen Sie vor dem Zerlegen nicht verwendete Filamente im Hauptfenster."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Die Materialliste unterstützt höchstens %1% Farbe. Nach der Zerlegung (%2%) würde die Anzahl der Materialien %1% überschreiten. Bitte löschen Sie vor dem Zerlegen nicht verwendete Filamente im Hauptfenster."
+msgstr[1] "Die Materialliste unterstützt höchstens %1% Farben. Nach der Zerlegung (%2%) würde die Anzahl der Materialien %1% überschreiten. Bitte löschen Sie vor dem Zerlegen nicht verwendete Filamente im Hauptfenster."
# AI Translated
msgid "Cyan"
@@ -27739,6 +30373,13 @@ msgstr "Grün"
msgid "Blue"
msgstr "Blau"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -27746,7 +30387,1235 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "Die aktuelle Filamentliste enthält %s nicht. Ein vom Mischfilament benötigtes Projektfilament wird nach der Zerlegung automatisch erstellt."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "Die aktuelle Filamentliste enthält %s nicht. Ein vom Mischfilament benötigtes Projektfilament wird nach der Zerlegung automatisch erstellt."
+msgstr[1] "Die aktuelle Filamentliste enthält %s nicht. Vom Mischfilament benötigte Projektfilamente werden nach der Zerlegung automatisch erstellt."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Deckkraft"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -27842,10 +31711,6 @@ msgstr "Meine Einstellungen"
msgid "Custom Printer Setup"
msgstr "Benutzerdefinierte Druckereinrichtung"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Benutzerdefinierter Drucker"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Ein benutzerdefiniertes Druckerprofil festlegen"
@@ -28113,6 +31978,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Einbrennen"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Einen exakten Wert in einen Schieberegler eingeben"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Bearbeiten-Symbol am rechten Ende eines Schiebereglers"
+
# AI Translated
msgid "Texture displacement"
msgstr "Texturverschiebung"
@@ -28249,6 +32122,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Textur entfernen"
+# AI Translated
+msgid "Adjust image"
+msgstr "Bild anpassen"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Helligkeit"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Kontrast"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Schärfe"
+
+# AI Translated
+msgid "Blur"
+msgstr "Unschärfe"
+
+# AI Translated
+msgid "Hue"
+msgstr "Farbton"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Arbeitet feinste Details des Bildes heraus. Wird nach „Unschärfe“ angewendet, sodass sich beides kombinieren lässt: erst das Rauschen weichzeichnen, dann die verbleibenden Kanten schärfen."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Macht das Bild selbst unscharf. Der eigene Regler „Glättung“ der Ebene macht das Relief weicher, ohne das Bild zu verändern, und ist der erste Ansatzpunkt."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Diese Textur ist ein Graustufenbild und hat daher keinen Farbton, der verschoben werden könnte."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Das Modell wird aktualisiert, wenn Sie einen Regler loslassen. „Als Kopie speichern“ schreibt das angepasste Bild in Ihre Texturbibliothek und lässt diese Ebene darauf verweisen."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Als Kopie speichern"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Ebene der Texturverschiebung entfernen"
@@ -28385,6 +32302,15 @@ msgstr "Schreibt jede erfasste Stufe als OBJ-Datei, sodass sie in einem Netzbetr
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Der bemalte Bereich konnte nicht auf das neu vernetzte Modell übertragen werden, daher wurde nichts geändert. Wechseln Sie in den Pro-Modus und vernetzen Sie neu, bevor Sie malen."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Bereich: %1% bis %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Geben Sie einen Wert ein, statt zu ziehen. Strg+Klick auf den Schieberegler bewirkt dasselbe."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -28491,8 +32417,8 @@ msgid "Click a triangle to paint it"
msgstr "Klicken Sie auf ein Dreieck, um es zu bemalen"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Erfordert, dass die aktive Ebene die Projektion „Abwickeln (LSCM)“ verwendet."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Nur für eine Ebene, die mit „Abwickeln“ (LSCM) abgebildet ist - stellen Sie die „Texturabbildung“ der aktiven Ebene auf „Abwickeln“, um diese Ansicht zu verwenden."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -28507,16 +32433,16 @@ msgid "Checker"
msgstr "Schachbrett"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Schachbrett - ein Testraster statt der Textur. Wo die Quadrate quadratisch bleiben, ist die Textur unverzerrt; wo sie sich dehnen, wird es auch die Textur"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Schachbrett - ein Testraster statt der Textur. Wo die Quadrate quadratisch bleiben, ist die Textur unverzerrt; wo sie sich dehnen, wird es auch die Textur. Öffnet den UV-Editor, falls er geschlossen ist"
# AI Translated
msgid "Distortion"
msgstr "Verzerrung"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Verzerrung - Dehnungs-Heatmap von Blau bis Rot über die Abwicklung"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Verzerrung - Dehnungs-Heatmap von Blau bis Rot über die Abwicklung. Öffnet den UV-Editor, falls er geschlossen ist"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -28542,6 +32468,10 @@ msgstr "Ein anderes Bild für diese Ebene wählen. Bemalung, Tiefe und Kachelung
msgid "not painted"
msgstr "nicht bemalt"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Helligkeit, Kontrast, Schärfe, Unschärfe und Farbton, beim Einstellen sofort am Bild und am Modell zu sehen. „Als Kopie speichern“ schreibt das Ergebnis in Ihre Texturbibliothek und lässt diese Ebene darauf verweisen."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Nach oben - früher angewendet"
@@ -28562,10 +32492,20 @@ msgstr "Höhe des Reliefs: wie weit Weiß in der Textur die Oberfläche anhebt,
msgid "Tile size"
msgstr "Kachelgröße"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Abgebildet über das eigene UV-Layout des Modells, das bereits die Platzierung vorgibt - eine Kopie der Textur deckt es genau ab, sodass keine Kachelgröße einzustellen ist."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Wie breit eine Kopie der Textur auf dem Modell ist. Kleinere Werte wiederholen das Muster häufiger und machen seine Details feiner; bei deaktiviertem „Kacheln“ ist dies die Größe der einzelnen Kopie."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Dreht die Textur auf der Oberfläche, in Grad - um ein Muster an einer Kante des Modells auszurichten."
@@ -28633,28 +32573,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Verschachtelt zwei Filamente, um die Zwischenfarben zu simulieren, sodass wenige Filamente ein Foto oder einen Farbverlauf abdecken können. Ein Bild mit flachen Farben wird in beiden Fällen gleich gedruckt. Ist dies deaktiviert, wird ein Filament pro Bereich verwendet."
# AI Translated
-msgid "Mix by"
-msgstr "Mischen nach"
+msgid "Mixed colors"
+msgstr "Mischfarben"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Oberfläche"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Die maximale Anzahl an Mischfilamenten, die beim Einbrennen hinzugefügt werden darf. Sie werden aus den Farben der Textur ausgewählt, und nur diejenigen, die das Einbrennen tatsächlich verwendet, werden erstellt."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Schichten: Die beiden Filamente wechseln sich zwischen den Druckschichten ab, was auf senkrechten Flächen gleichmäßig verläuft, auf flach liegenden aber verschwindet, da dort eine ganze Schicht ein einziges Band ist.\n"
-"Oberfläche: ein feines Schachbrettmuster über die Oberfläche, das bei jedem Winkel funktioniert, aber eher als Textur denn als Mischung wirken kann.\n"
-"Automatisch: Schichten auf senkrechten Flächen; flach liegende Flächen erhalten das nächstgelegene einzelne Filament, da ein Schachbrettmuster dort als Muster sichtbar wird."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% druckbare Farben aus %2% Filamenten"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "aus %1% Filament"
+msgstr[1] "aus %1% Filamenten"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% druckbare Farbe %2%"
+msgstr[1] "%1% druckbare Farben %2%"
# AI Translated
msgid "Denoise"
@@ -28705,6 +32651,18 @@ msgstr "Aus Ansicht"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Aus Ansicht - projiziert direkt aus Ihrer Blickrichtung auf den bemalten Bereich, wie ein Diaprojektor."
+# AI Translated
+msgid "Model UV"
+msgstr "Modell-UV"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "Modell-UV - verwendet die Texturkoordinaten, die das Modell selbst mitbringt, sodass eine für dieses Modell erstellte Textur genau dort landet, wo sie gemalt wurde. Es wird nichts abgewickelt, und die „Kachelgröße“ entfällt: Die Platzierung ergibt sich aus dem eigenen Layout des Modells."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Dieses Modell enthält keine eigenen Texturkoordinaten. Nur ein mit UV-Kanal importiertes Modell - etwa ein texturiertes OBJ - lässt sich darüber abbilden."
+
# AI Translated
msgid "Open UV editor"
msgstr "UV-Editor öffnen"
@@ -28719,8 +32677,10 @@ msgstr "Noch nicht abgewickelt"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% Inseln"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% Insel"
+msgstr[1] "%1% Inseln"
# AI Translated
msgid "Capture current view"
@@ -28750,10 +32710,6 @@ msgstr "Projektionsrahmen"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Öffnet ein Fenster, das Sie über das Modell ziehen. Alles, was Sie dadurch sehen können, erhält die Textur, und sein Rand wird zur Kante der Projektion."
-# AI Translated
-msgid "Opacity"
-msgstr "Deckkraft"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Wie undurchsichtig das Rahmenfenster beim Platzieren wirkt. Verringern Sie den Wert, um das Modell hindurch zu sehen; das Ergebnis wird nicht beeinflusst."
@@ -28807,6 +32763,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Hinzufügen"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Ersetzen"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -28826,8 +32787,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Die Basisebene hat nichts darunter, mit dem sie kombiniert werden könnte, daher wird sie immer hinzugefügt."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Was diese Ebene dort bewirkt, wo sie die darunterliegenden überlappt. „Hinzufügen“ und „Subtrahieren“ häufen Relief auf oder tragen es ab. „Multiplizieren“ und „Dividieren“ skalieren das Darunterliegende, wodurch diese Ebene zu einer Maske darüber wird - dort wirkt „Tiefe“ als Stärke, und 1 mm lässt weiße Bereiche unverändert."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Was diese Ebene dort bewirkt, wo sie die darunterliegenden überlappt. „Hinzufügen“ und „Subtrahieren“ häufen Relief auf oder tragen es ab. „Ersetzen“ überschreibt sie, sodass dort, wo diese Ebene aufgemalt ist, nur ihr Relief übrig bleibt. „Multiplizieren“ und „Dividieren“ skalieren das Darunterliegende, wodurch diese Ebene zu einer Maske darüber wird - dort wirkt „Tiefe“ als Stärke, und 1 mm lässt weiße Bereiche unverändert."
# AI Translated
msgid "Adjust placement"
@@ -28851,8 +32812,10 @@ msgstr "Mehr Einstellungen"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Alle %1% Ebenen belegt"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "%1% Ebene belegt"
+msgstr[1] "Alle %1% Ebenen belegt"
# AI Translated
msgid "Add layer"
@@ -28932,8 +32895,10 @@ msgstr "Dreiecksbudget: wird unten mit „Dreiecke“ festgelegt."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Vorschau: %1% Dreiecke"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Vorschau: %1% Dreieck"
+msgstr[1] "Vorschau: %1% Dreiecke"
# AI Translated
msgid "Steps"
@@ -28975,6 +32940,12 @@ msgstr "Neuvernetzung"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Dreiecksgröße, mit der das ganze Modell neu aufgebaut wird, in Millimetern. Die Verschiebung funktioniert am besten auf einem gleichmäßigen Netz; so entsteht eines aus einem ungleichmäßigen Import."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Scharfe Kanten beibehalten"
@@ -29109,14 +33080,6 @@ msgstr "Benötigt etwa %1% Dreiecke, Budget %2% - der Einbrennvorgang vereinfach
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Wie viele tausend Dreiecke die Verfeinerung dem Modell hinzufügen darf. Das am schlechtesten passende Dreieck wird immer zuerst geteilt, sodass selbst ein Durchlauf, der alles aufbraucht, die Dreiecke dort eingesetzt hat, wo es am meisten auffällt. Erhöhen Sie den Wert, wenn das Relief noch grob aussieht."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Stoppt das Einbrennen. Was bereits fertiggestellt wurde, bleibt auf dem Modell und kann rückgängig gemacht werden."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Schließt das Werkzeug ohne Einbrennen. Ihre Bemalung, Ebenen und Einstellungen bleiben beim Modell."
-
# AI Translated
msgid "Preparing..."
msgstr "Vorbereiten..."
@@ -29141,35 +33104,56 @@ msgstr "Wandelt die gemalten Höhenkarten in echte Geometrie um, indem die berei
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Wandelt die gemalten Höhenkarten in echte Geometrie um. Das Netz wird auf eine gleichmäßige Dichte neu vernetzt und zuerst dort verfeinert, wo sich die Textur krümmt, damit die Details Eckpunkte vorfinden - alles in einem Schritt."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Stoppt das Einbrennen. Was bereits fertiggestellt wurde, bleibt auf dem Modell und kann rückgängig gemacht werden."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Schließt das Werkzeug ohne Einbrennen. Ihre Bemalung, Ebenen und Einstellungen bleiben beim Modell."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Modell: %1% Dreiecke - der Einbrennvorgang verfeinert bis zur obigen Auflösung, bis zu seinem Budget"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Modell: %1% Dreieck - der Einbrennvorgang verfeinert bis zur obigen Auflösung, bis zu seinem Budget"
+msgstr[1] "Modell: %1% Dreiecke - der Einbrennvorgang verfeinert bis zur obigen Auflösung, bis zu seinem Budget"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Einbrennen verschiebt vorhandene Eckpunkte - das Modell bleibt bei %1% Dreieck"
+msgstr[1] "Einbrennen verschiebt vorhandene Eckpunkte - das Modell bleibt bei %1% Dreiecken"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Einbrennen verschiebt vorhandene Eckpunkte - das Modell bleibt bei %1% Dreiecken"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Einbrennergebnis bis zu ~%1% k Dreieck"
+msgstr[1] "Einbrennergebnis bis zu ~%1% k Dreiecke"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Einbrennergebnis bis zu ~%1% k Dreiecke"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% Ebenen nicht bemalt, übersprungen"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% Ebene nicht bemalt, übersprungen"
+msgstr[1] "%1% Ebenen nicht bemalt, übersprungen"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% nicht bemalt, übersprungen"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% nicht bemalt, übersprungen"
+msgstr[1] "%1% nicht bemalt, übersprungen"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29186,6 +33170,10 @@ msgstr "Texturverschiebung bearbeiten"
msgid "Choose SLA archive:"
msgstr "SLA-Archiv auswählen:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "SL1 / SL1S Archivdateien"
+
# AI Translated
msgid "Import file"
msgstr "Datei importieren"
@@ -29350,6 +33338,34 @@ msgstr "Filament-Plugins"
msgid "Printer plugins"
msgstr "Drucker-Plugins"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Dieses Profil verwendet keine Plugin-Fähigkeiten"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Von diesem Profil verwendete Fähigkeiten"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Fähigkeitskonfiguration (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Plugin-Konfiguration"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Die Überschreibung dieses Profils verwerfen und wieder die globale Konfiguration verwenden"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Standardwerte wiederherstellen"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "Ungültiges JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "Die Konfiguration ist kein gültiges JSON. Ihre Änderungen wurden nicht gespeichert."
@@ -29369,10 +33385,6 @@ msgstr ""
"\n"
"Dadurch wird die Überschreibung des Profils verworfen und die globale Konfiguration verwendet."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Standardwerte wiederherstellen"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Globale Konfiguration wird verwendet. Speichern Sie das Profil, um dies dauerhaft zu übernehmen."
@@ -29398,10 +33410,6 @@ msgstr "Abbestellen"
msgid "Overwrite Plugin"
msgstr "Plugin überschreiben"
-# AI Translated
-msgid "Show in folder"
-msgstr "Im Ordner anzeigen"
-
# AI Translated
msgid "Reinstall"
msgstr "Neu installieren"
@@ -29410,6 +33418,10 @@ msgstr "Neu installieren"
msgid "Delete cache and reload"
msgstr "Cache löschen und neu laden"
+# AI Translated
+msgid "No description."
+msgstr "Keine Beschreibung."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Wählen Sie ein .py- oder .whl-Plugin-Paket aus."
@@ -29442,6 +33454,292 @@ msgstr "Plugin wird installiert"
msgid "Installed \"%s\"."
msgstr "„%s“ installiert."
+# AI Translated
+msgid "Search plugins"
+msgstr "Plugins suchen"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Suche löschen"
+
+# AI Translated
+msgid "Match case"
+msgstr "Groß-/Kleinschreibung beachten"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Nur ganzes Wort"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Weitere Optionen zur Plugin-Installation"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Plugin installieren"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Lokales Plugin installieren"
+
+# AI Translated
+msgid "Activate"
+msgstr "Aktivieren"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Nach Name sortieren"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Nach Version sortieren"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Plugin-Version"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Nach Quelle sortieren"
+
+# AI Translated
+msgid "Source"
+msgstr "Quelle"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Nach Status sortieren"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Status"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Ziehen zum Ändern der Größe; Doppelklick zum Zurücksetzen"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Größe der Plugin-Liste ändern"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Plugin-Details"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Plugin-Info"
+
+# AI Translated
+msgid "Description"
+msgstr "Beschreibung"
+
+# AI Translated
+msgid "Config"
+msgstr "Konfiguration"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Änderungsprotokoll"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnose"
+
+# AI Translated
+msgid "Types"
+msgstr "Typen"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Installierte Version"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Neueste Version"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Auf die neueste Version aktualisieren"
+
+# AI Translated
+msgid "No description available"
+msgstr "Keine Beschreibung verfügbar"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Wählen Sie ein Plugin aus, um seine Fähigkeiten zu konfigurieren"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Konfigurierbare Fähigkeiten"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Die für diese Fähigkeit gespeicherten Einstellungen verwerfen und die Standardwerte des Plugins wiederherstellen"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Plugin-Änderungsprotokoll"
+
+# AI Translated
+msgid "Date"
+msgstr "Datum"
+
+# AI Translated
+msgid "Changes"
+msgstr "Änderungen"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Kein Änderungsprotokoll verfügbar"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Keine Probleme festgestellt"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Keine Plugins gefunden"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Keine Plugins entsprechen „%s“"
+
+# AI Translated
+msgid "Mine"
+msgstr "Meine"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Abonniert"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Verwaist"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Lokal"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Einige Plugin-Fähigkeiten sind aktiviert"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Fähigkeiten von %s zuklappen"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Fähigkeiten von %s aufklappen"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Fähigkeiten zuklappen"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Fähigkeiten aufklappen"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Dieses Plugin in Ihrem Browser öffnen"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Fähigkeiten: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Fähigkeiten"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "„%s“ ausführen"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "%s aktivieren"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Nicht für Updates autorisiert"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Plugin wird geladen…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Dieses Plugin stellt keine Fähigkeiten bereit"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Aktivieren Sie dieses Plugin, um seine Fähigkeiten zu konfigurieren"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Hier auf OrcaCloud ansehen"
+
+# AI Translated
+msgid "Activated"
+msgstr "Aktiviert"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Laufzeitfehler"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Inaktiv"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Dieses Plugin ist aktiv und einsatzbereit."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Dieses Plugin wird noch geladen."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Dieses Plugin ist blockiert, bis sein Fehler behoben ist."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Dieses Plugin ist geladen, aber eine Fähigkeit hat einen Fehler gemeldet."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Dieses Plugin ist inaktiv. Aktivieren Sie es, um es zu installieren oder zu laden."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Wählen Sie ein Plugin aus, um seinen Status und seine Details anzuzeigen."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Verwaist: Dieses Plugin ist nicht mehr abonniert oder in OrcaCloud verfügbar. Die lokale Kopie bleibt installiert und kann weiterhin verwendet werden."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Eine neuere Plugin-Version ist verfügbar."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Cloud-Updates sind nicht verfügbar, da dieses Plugin nicht für Updates autorisiert ist."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -29658,6 +33956,58 @@ msgstr "Plugin konnte nicht neu geladen werden."
msgid "Reloaded \"%s\"."
msgstr "„%s“ neu geladen."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Druckerverbindung"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Bitte richten Sie Ihre Druckerverbindung ein, um das Gerät anzuzeigen."
+
+# AI Translated
+msgid "No model information"
+msgstr "Keine Modellinformationen"
+
+# AI Translated
+msgid "Edit Project Info"
+msgstr "Projektinformationen bearbeiten"
+
+msgid "Model Information"
+msgstr "Modellinformationen"
+
+msgid "Accessories"
+msgstr "Zubehör"
+
+msgid "Profile Information"
+msgstr "Profilinformationen"
+
+msgid "Model name"
+msgstr "Modellname"
+
+msgid "Created by"
+msgstr "Erstellt von"
+
+msgid "Remixed by"
+msgstr "Remixed von"
+
+msgid "Shared by"
+msgstr "Geteilt von"
+
+msgid "Model description"
+msgstr "Modellbeschreibung"
+
+msgid "BOM"
+msgstr "Stückliste"
+
+msgid "Profile name"
+msgstr "Profilname"
+
+msgid "Profile Author"
+msgstr "Profilautor"
+
+msgid "Profile description"
+msgstr "Profilbeschreibung"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Einstellungen des Spülmodus"
@@ -29682,6 +34032,19 @@ msgstr "Reduziert den Spülabfall und druckt schneller. Kann zu leichter Farbver
msgid "Terminal"
msgstr "Terminal"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... oder uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Plugin-Terminal bereit."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Prozess beendet mit Code: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Ein Befehl wird bereits ausgeführt."
@@ -29728,8 +34091,10 @@ msgstr "Neue Mischfilamente"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Das Projekt unterstützt bis zu %d Filamente. Zusätzliche Filamente werden verworfen."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Das Projekt unterstützt bis zu %d Filament. Zusätzliche Filamente werden verworfen."
+msgstr[1] "Das Projekt unterstützt bis zu %d Filamente. Zusätzliche Filamente werden verworfen."
# AI Translated
msgid "Import Model"
@@ -29816,8 +34181,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Berechnung fehlgeschlagen. Bitte passen Sie die Parameter an und versuchen Sie es erneut."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "Das Netz enthält nicht-manifold Geometrie oder offene Ränder. Sie können es unverändert importieren oder vor dem Import mit dem Windows-3D-Reparaturdienst reparieren."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "Das Netz enthält nicht-manifold Geometrie oder offene Ränder. Sie können es unverändert importieren oder vor dem Import reparieren."
# AI Translated
msgid "Mesh repair"
@@ -29831,14 +34196,6 @@ msgstr "Ohne Reparatur importieren"
msgid "Repair and import"
msgstr "Reparieren und importieren"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Bitte beachten Sie, dass das Netz nicht-manifold Geometrie oder offene Ränder enthält."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Netzproblem"
-
# AI Translated
msgid "The selected image is empty."
msgstr "Das ausgewählte Bild ist leer."
@@ -29847,6 +34204,14 @@ msgstr "Das ausgewählte Bild ist leer."
msgid "Failed to prepare the texture for use."
msgstr "Die Textur konnte nicht für die Verwendung vorbereitet werden."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Der Ordner für importierte Texturen konnte nicht erstellt werden."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Die importierte Textur konnte nicht gespeichert werden."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Nur Ihre eigenen importierten Texturen können entfernt werden."
@@ -29855,18 +34220,10 @@ msgstr "Nur Ihre eigenen importierten Texturen können entfernt werden."
msgid "Could not delete the texture file."
msgstr "Die Texturdatei konnte nicht gelöscht werden."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Der Ordner für importierte Texturen konnte nicht erstellt werden."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Das ausgewählte Bild konnte nicht geladen werden."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Die importierte Textur konnte nicht gespeichert werden."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Die Texturdatei konnte nicht gelesen werden."
@@ -29910,8 +34267,10 @@ msgstr "Wählen Sie „Abwickeln“ als Projektion einer Texturebene, um ihre UV
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d Eckpunkte ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d Eckpunkt ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen"
+msgstr[1] "%d Eckpunkte ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29919,8 +34278,10 @@ msgstr "Eckpunktmodus: Eckpunkt zum Umformen ziehen | Umschalt/Strg-Klick = Me
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d Kanten ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d Kante ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen"
+msgstr[1] "%d Kanten ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29928,8 +34289,10 @@ msgstr "Kantenmodus: Inselkante zum Umformen ziehen | Umschalt/Strg-Klick = Me
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d Inseln ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen, R/S = primäre drehen/skalieren"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d Insel ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen, R/S = primäre drehen/skalieren"
+msgstr[1] "%d Inseln ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen, R/S = primäre drehen/skalieren"
# AI Translated
#, c-format, boost-format
@@ -29948,6 +34311,10 @@ msgstr " | Einrasten EIN"
msgid "Change texture - choose another one from the texture library"
msgstr "Textur ändern - eine andere aus der Texturbibliothek wählen"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Die Kachelgröße der aktiven Ebene: wie viel des Modells eine Wiederholung der Textur abdeckt. Die Arbeitsfläche wird in Kacheln gemessen, sodass eine Rasterzelle einer Wiederholung entspricht. Ändern Sie sie über „Kachelgröße“ in den Einstellungen der Ebene."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Höhenkarte - die Textur der Ebene unter den Inseln anzeigen"
@@ -29981,16 +34348,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Legt die Abwicklung als zusammenhängendes Faltnetz aus: Teile, die eine Kante teilen, werden nebeneinander aufgeklappt (ein Würfel wird zu einem zusammenhängenden Würfelnetz statt zu sechs losen Quadraten). Sie bleiben getrennte Inseln, sodass Sie jede davon anschließend noch von Hand verschieben können."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Insel - ganze Inseln verschieben, drehen und skalieren"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Insel - mit ganzen UV-Inseln arbeiten. Klicken Sie eine an, um sie auszuwählen, und ziehen Sie sie dann zum Verschieben, ziehen Sie mit der rechten Maustaste zum Drehen, oder drücken Sie R zum Drehen und S zum Skalieren mit der Maus (Klick oder Eingabe zum Bestätigen, Esc zum Abbrechen)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Eckpunkt - Eckpunkte zum Umformen ziehen; Umschalt/Strg für Mehrfachauswahl"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Eckpunkt - Eckpunkte ziehen, um eine UV-Insel von Hand umzuformen; Umschalt fügt zur Auswahl hinzu, Strg nimmt einen Eckpunkt in die Auswahl auf oder entfernt ihn daraus."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Kante - Kanten zum Umformen ziehen; Umschalt/Strg für Mehrfachauswahl"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Kante - Kanten ziehen, um eine UV-Insel von Hand umzuformen; Umschalt fügt zur Auswahl hinzu, Strg nimmt eine Kante in die Auswahl auf oder entfernt sie daraus."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30029,8 +34396,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Einrasten - Inseln aneinander haften lassen, wenn eine gegen eine andere gezogen wird"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Alle Inseln einpassen (Pos1)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Alle UV-Inseln einpassen, sodass jede von ihnen in der Ansicht sichtbar ist (Pos1 oder F).\n"
+"An anderer Stelle der Arbeitsfläche: scrollen, um um den Mauszeiger zu zoomen, und mit mittlerer Maustaste ziehen - oder einen leeren Bereich ziehen -, um zu schwenken."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Was ausgewählt ist, und die genauen Werte der Verschiebung, Drehung oder Skalierung, während Sie ziehen."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30041,6 +34416,10 @@ msgstr "Keine Ebene mit „Abwickeln“ projiziert"
msgid "%.1f mm tile"
msgstr "Kachel %.1f mm"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Der Bereich folgt der aktiven Texturebene, und diese Ebene muss mit „Abwickeln“ (LSCM) abgebildet sein. Fügen Sie eine Ebene hinzu und stellen Sie ihre „Texturabbildung“ auf „Abwickeln“."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Veraltet - die Bemalung, die Nähte oder der Nahtwinkel haben sich seit dieser Abwicklung geändert. Drücken, um erneut abzuwickeln."
@@ -30049,19 +34428,70 @@ msgstr "Veraltet - die Bemalung, die Nähte oder der Nahtwinkel haben sich seit
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Flacht den bemalten Bereich in UV-Inseln ab. Dies wird nur beim Drücken berechnet, nicht bei jeder Bearbeitung - also zuerst malen, den Nahtwinkel ändern oder Nähte markieren und dann „Abwickeln“ drücken."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Schalten Sie zuerst „Nähte markieren“ ein - „Pfad“ ist eine schnellere Möglichkeit, sie zu markieren."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Auf dieser Ebene sind keine UV-Nähte markiert."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Es wurden keine UV-Inseln von Hand umgeformt, daher gibt es nichts zu verwerfen."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d Inseln, %s Flächen"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d Insel"
+msgstr[1] "%d Inseln"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s Fläche"
+msgstr[1] "%s Flächen"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Wie der bemalte Bereich aus der Abwicklung hervorgegangen ist: die Anzahl der separaten Teile, in die er geschnitten wurde (an den UV-Nähten und an Kanten, die schärfer als der Nahtwinkel sind), und wie viele Dreiecke sie insgesamt enthalten."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Drücken Sie zuerst „Abwickeln“ - es gibt noch keine UV-Inseln zum Bearbeiten."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Klicken Sie zuerst im Modus „Insel“ auf eine UV-Insel auf der Arbeitsfläche."
+
+# AI Translated
+# Needs human review: Three-letter badge for 'published' (PUB in English); VÖF is a short form of 'veröffentlicht'. Check it fits the badge and reads right, or keep PUB.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "VÖF"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Nicht angemeldet"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Das Bambu Network-Plug-in wurde nicht erkannt. Klicken Sie hier , um es zu installieren."
+
+msgid "Create new project"
+msgstr "Neues Projekt erstellen"
+
+msgid "Recently opened"
+msgstr "Zuletzt geöffnet"
+
+msgid "Open Containing Folder"
+msgstr "Enthaltenden Ordner öffnen"
# AI Translated
msgid "Forward"
msgstr "Vorwärts"
-# AI Translated
-msgid "Tools"
-msgstr "Werkzeuge"
-
# AI Translated
msgid "View Source"
msgstr "Quelltext anzeigen"
@@ -30133,6 +34563,75 @@ msgstr "%1% laden in: %2%"
msgid "Load %s"
msgstr "%s laden"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Der Drucker-Agent „%1%“ konnte nicht aktiviert werden: Die Agent-ID „%2%“ ist bereits von der Fähigkeit „%3%“ des Plugins „%4%“ registriert."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Der Drucker-Agent „%1%“ konnte nicht aktiviert werden: Die Agent-ID „%2%“ ist bereits von „%3%“ registriert."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Datei hochgeladen"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "G-Code wird hochgeladen..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Druck wird gestartet..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Druck gestartet"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Hochladen..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Version der Netzwerkbibliothek nicht angegeben"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Netzwerkbibliothek nicht gefunden"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Laden der Netzwerkbibliothek fehlgeschlagen"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Netzwerkbibliothek konnte nicht geladen werden"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Eine ältere Plugin-Serie. Funktionen, die ein neueres Plugin voraussetzen, wie Schnappschüsse bei Druckfehlern im Fehlerdialog des Geräts, sind nicht verfügbar."
+
+# AI Translated
+msgid "unknown name"
+msgstr "unbekannter Name"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"Plugin „%s“ fordert Lesezugriff auf das Dateisystem an:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Plugin-Berechtigungen"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -30147,37 +34646,61 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
-"Plugin „%s“ möchte die folgende(n) Datei(en) lesen:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin „%s“ möchte die folgende Datei lesen:\n"
+"%s"
+msgstr[1] ""
+"Plugin „%s“ möchte die folgenden Dateien lesen:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
-"Plugin „%s“ möchte die folgende(n) Datei(en) lesen/schreiben:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin „%s“ möchte die folgende Datei lesen/schreiben:\n"
+"%s"
+msgstr[1] ""
+"Plugin „%s“ möchte die folgenden Dateien lesen/schreiben:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
-"Plugin „%s“ möchte die folgende(n) Datei(en) erstellen:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin „%s“ möchte die folgende Datei erstellen:\n"
+"%s"
+msgstr[1] ""
+"Plugin „%s“ möchte die folgenden Dateien erstellen:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
-"Plugin „%s“ möchte die folgende(n) Datei(en) löschen:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin „%s“ möchte die folgende Datei löschen:\n"
+"%s"
+msgstr[1] ""
+"Plugin „%s“ möchte die folgenden Dateien löschen:\n"
"%s"
# AI Translated
@@ -30201,10 +34724,30 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"Plugin „%s“ möchte den folgenden Befehl ausführen:\n"
+"%s"
+msgstr[1] ""
+"Plugin „%s“ möchte die folgenden Befehle ausführen:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "Plugin „%s“ fordert die Berechtigung an, einen Thread zu erstellen."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"Plugin „%s“ möchte den/die folgenden Befehl(e) ausführen:\n"
+"Plugin „%s“ fordert an, die laufende Anwendung zu ersetzen durch:\n"
"%s"
# AI Translated
@@ -30216,6 +34759,46 @@ msgstr "Plugin „%s“ fordert eine Berechtigung für das Python-Audit-Ereignis
msgid "Plugin permission request"
msgstr "Berechtigungsanfrage eines Plugins"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "Das Profil speichert eine ungültige JSON-Konfiguration für Plugin-Fähigkeiten."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "Die Plugin-Fähigkeitskonfiguration des Profils ist kein Array und kann nicht bearbeitet werden."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Druckerverbindung"
+
+# AI Translated
+msgid "Pages"
+msgstr "Seiten"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Analyse"
+
+# AI Translated
+msgid "Importer"
+msgstr "Import"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Export"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Visualisierung"
+
+# AI Translated
+msgid "Script"
+msgstr "Skript"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Slicing-Pipeline"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "Die Konfigurationsoberfläche des Plugins war leer. Der Standardeditor wird angezeigt."
@@ -30238,8 +34821,346 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Die Konfiguration konnte nicht auf den Datenträger geschrieben werden. Es wurde nichts geändert."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Plugin-Installation fehlgeschlagen"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Plugin-Installation fehlgeschlagen: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: Das installierte Plugin wurde im Katalog nicht gefunden."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "Dem Cloud-Plugin-Schlüssel fehlt die UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Abonnieren des Cloud-Plugins fehlgeschlagen, weitere Informationen finden Sie in den Protokollen."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Nur Cloud-Plugins können abbestellt werden."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Abbestellen des Plugins fehlgeschlagen, weitere Informationen finden Sie in den Protokollen."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Abrufen der Download-URL des Plugins fehlgeschlagen (Ergebnis %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Sie sind nicht berechtigt, dieses Cloud-Plugin herunterzuladen."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Für dieses Betriebssystem ist kein Plugin-Paket verfügbar."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "Die ausgewählte Plugin-Version wurde nicht gefunden."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "Plugin-Version %1% wurde nicht gefunden."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Cloud-Plugin wurde nicht gefunden."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Cloud-Plugin-Download wurde nicht gefunden: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Cloud-Plugin-Download wurde nicht gefunden."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Für dieses Plugin ist keine Download-URL verfügbar. Bitte prüfen Sie die Protokolle auf Fehler."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Herunterladen des Plugins fehlgeschlagen: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Plugin-Download mit HTTP-Status %1% fehlgeschlagen."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Der Plugin-Download hat leere Daten zurückgegeben."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Erstellen der temporären Datei für den Plugin-Download fehlgeschlagen."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Schreiben der Plugin-Daten in die temporäre Datei fehlgeschlagen."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Auflösen des Plugin-Ordners fehlgeschlagen: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Löschen des Plugin-Ordners %1% fehlgeschlagen: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Plugin-Verzeichnis existiert nicht: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "Das Plugin-Verzeichnis enthält mehrere .py-Dateien: %1% und %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "Das Plugin-Verzeichnis enthält mehrere .whl-Dateien: %1% und %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "Das Plugin-Verzeichnis enthält sowohl .py- als auch .whl-Einstiegsdateien"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "Das Plugin-Verzeichnis enthält keine .py- oder .whl-Einstiegsdatei"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Fehler im Slicing-Pipeline-Plugin „%1%“: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Das Plugin-Paket muss eine .py- oder .whl-Datei sein, erhalten: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Extrahieren der .whl-Abhängigkeit %1% des Plugins fehlgeschlagen: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Hinzufügen der .whl-Abhängigkeit zu sys.path fehlgeschlagen: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Python-Interpreter nicht initialisiert: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Plugin-Manifest ist ungültig: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Installieren der Plugin-Abhängigkeiten fehlgeschlagen: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Laden des Plugin-Moduls fehlgeschlagen: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Plugin-Registrierung fehlgeschlagen: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Das Plugin-Modul hat keine Fähigkeiten registriert"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Das Plugin deklariert die Fähigkeit „%1%“ für den Typ %2% doppelt"
+
+# AI Translated
+# Needs human review: 'Capability materialization' (creating the capability objects from the plugin's registration) rendered as 'Instanziierung'; check it reads right to plugin developers.
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Instanziierung der Plugin-Fähigkeiten fehlgeschlagen: %1%"
+
+# AI Translated
+# Needs human review: 'Capability materialization' (creating the capability objects from the plugin's registration) rendered as 'Instanziierung'; check it reads right to plugin developers.
+msgid "Plugin capability materialization failed"
+msgstr "Instanziierung der Plugin-Fähigkeiten fehlgeschlagen"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Plugin-on_load fehlgeschlagen: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Plugin-on_load fehlgeschlagen"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Das Plugin-Paket ist keine Datei: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "Die UUID des Cloud-Plugins ist keine gültige Kennung: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Erstellen des Plugin-Verzeichnisses %1% fehlgeschlagen: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Sichern des vorhandenen Plugins %1% fehlgeschlagen: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Kopieren der Plugin-Datei nach %1% fehlgeschlagen: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Schreiben des Plugin-Installationsstatus fehlgeschlagen: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Das Plugin-Paket ist bereits geladen: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Konflikt bei Fähigkeiten für Typ %1% und Namen „%2%“"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Doppelter Plugin-Schlüssel gefunden: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Das Laden des Plugins läuft noch"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Plugin ist ungültig: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Plugin nicht gefunden: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Unerwarteter Fehler beim Laden des Plugins: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Unerwarteter Fehler beim Laden des Plugins"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Plugin-Manifest nicht gefunden: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Abrufen der Plugins aus der Cloud fehlgeschlagen. Details finden Sie in den Protokollen."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Melden Sie sich bei OrcaCloud an, um dieses Plugin zu installieren."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "Das abonnierte Cloud-Plugin wurde von OrcaCloud nicht zurückgegeben."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Herunterladen des Cloud-Plugins fehlgeschlagen."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Installieren des Cloud-Plugins fehlgeschlagen."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Nur Cloud-Plugins können aktualisiert werden."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Für dieses Plugin ist kein Update verfügbar."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Das Löschen eines Plugins außerhalb der bekannten Plugin-Verzeichnisse wird verweigert."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Das Aktualisieren eines Plugins außerhalb der bekannten Plugin-Verzeichnisse wird verweigert."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Plugin kann nicht lokal behalten werden: Ein lokaler Plugin-Schlüssel existiert bereits: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Aktualisieren des Plugin-Installationsstatus fehlgeschlagen: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Eigene Plugins können nicht abbestellt werden."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Nur Cloud-Plugins können gelöscht und abbestellt werden."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Eigene Plugins können nicht abbestellt werden. Verwenden Sie „Löschen“, um die lokalen Dateien zu entfernen."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Anfrage für Lesezugriff des Plugins auf das Dateisystem abgelehnt"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30273,6 +35194,10 @@ msgstr "Vereinigen beim zweiseitigen Extrudieren fehlgeschlagen"
msgid "imported regions produced no extrudable geometry"
msgstr "importierte Bereiche ergaben keine extrudierbare Geometrie"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "das Profil kreuzt die Rotationsachse — es muss auf einer Seite davon liegen"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Rotieren fehlgeschlagen"
@@ -30309,6 +35234,10 @@ msgstr "Fläche der Tasche fehlgeschlagen"
msgid "Pocket cut failed"
msgstr "Ausschnitt der Tasche fehlgeschlagen"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "das Profil kreuzt sich selbst oder läuft auf sich zurück und umschließt daher keinen eindeutigen Bereich"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "Skizze hat keine geschlossene Schleife"
@@ -30341,10 +35270,26 @@ msgstr "mesh_to_brep: Netz hat keine Dreiecke"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: alle Dreiecke wurden als degeneriert verworfen (versuchen Sie eine kleinere Toleranz)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "der Rundungsradius muss größer als 0 sein"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "keine Kanten zum Abrunden in dieser Gruppe"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "Abrundungsradius zu groß für diese Geometrie"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "der Fasenabstand muss größer als 0 sein"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "keine Kanten zum Fasen in dieser Gruppe"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "Fasenabstand zu groß für diese Geometrie"
@@ -30357,6 +35302,153 @@ msgstr "apply_fillet: OCCT-Abrundung fehlgeschlagen"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: OCCT-Fase fehlgeschlagen"
+# AI Translated
+msgid "empty component list"
+msgstr "leere Komponentenliste"
+
+# AI Translated
+msgid "empty component index"
+msgstr "leerer Komponentenindex"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "der Komponentenindex muss >= 1 sein (erhalten: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "ungültiger Komponentenindex „%1%“"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "mindestens 2 Komponenten erforderlich (erhalten: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "doppelter Komponentenindex %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "leerer Verhältniswert"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "das Verhältnis muss positiv sein (erhalten: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "ungültiges Verhältnis „%1%“"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "die Anzahl der Verhältnisse muss der Anzahl der Komponenten entsprechen: erwartet %1%, erhalten %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "zwei durch Komma getrennte Gleitkommazahlen erwartet, z. B. \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "Start- und Endverhältnis müssen in (0, 1) liegen"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "Array-Größe %1% stimmt nicht mit der Anzahl der Filament-Steckplätze %2% überein"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "muss gesetzt sein, wenn Parameter für Mischfilamente angegeben werden"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "Steckplatz %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "Steckplatz %1%: Komponente %2% außerhalb des Bereichs (maximaler Index physischer Filamente ist %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "Steckplatz %1%: kann sich nicht selbst als Komponente referenzieren"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "Steckplatz %1%: Komponente %2% verweist auf einen Mischfilament-Steckplatz"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "Steckplatz %1%: Verlauf erfordert genau 2 Komponenten"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "Steckplatz %1%: ungültige Kurve (mindestens 2 gültige Kontrollpunkte erforderlich)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Laden der Konfigurationsdatei „%1%“ fehlgeschlagen: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Keine von %1% erzeugte G-Code-Datei."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Konfigurations-Tag „%1%“ nicht gefunden"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Verdächtig geringe Anzahl an Konfigurationswerten aus %1% extrahiert: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Laden der STEP-Datei fehlgeschlagen.\n"
+"Die Datei kann nicht zum Lesen geöffnet werden.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "SVG-Import fehlgeschlagen: SVG konnte nicht geöffnet werden."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "SVG-Import fehlgeschlagen: Die importierten SVG-Daten konnten nicht analysiert werden."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Benutzerdefinierter G-Code meldet negatives z_retracted."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Benutzerdefinierter G-Code meldet negatives z_restart_extra."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Kopieren des Verzeichnisses %1% nach %2% fehlgeschlagen: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Authentifizierung abgeschlossen"
@@ -30802,6 +35894,1100 @@ msgstr ""
"Verwerfungen vermeiden\n"
"Wussten Sie, dass beim Drucken von Materialien, die zu Verwerfungen neigen, wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die Wahrscheinlichkeit von Verwerfungen verringert werden kann?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Bitte wählen Sie die Filamentfarbe"
+
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Linienbreite der Brücke. Wenn als % angegeben, wird sie über den Düsendurchmesser berechnet.\n"
+#~ "Empfohlen in Verbindung mit einer höheren Brückendichte oder einer höheren Brückenflussrate.\n"
+#~ "\n"
+#~ "Der maximale Wert beträgt 100% oder der Düsendurchmesser.\n"
+#~ "Wenn auf 0 gesetzt, entspricht die Linienbreite der Breite der inneren festen Füllung."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Aktivieren Sie diese Option, um den Druck in Bereichen zu verlangsamen, in denen sich die Umfänge möglicherweise nach oben gekrümmt haben.\n"
+#~ "Zum Beispiel wird bei der Druckung von Überhängen an scharfen Ecken wie dem Vorderteil der Benchy-Hülle eine zusätzliche Verlangsamung angewendet, um das Krümmen zu reduzieren, das sich über mehrere Schichten hinweg verstärkt.\n"
+#~ "\n"
+#~ "Es wird in der Regel empfohlen, diese Option aktiviert zu lassen, es sei denn, Ihre Druckerkühlung ist stark genug oder die Druckgeschwindigkeit ist langsam genug, sodass sich Umfänge nicht krümmen. \n"
+#~ "Wenn Sie mit einer hohen externen Umfangsgeschwindigkeit drucken, kann dieser Parameter bei der Verlangsamung Wandartefakte verursachen, da die potentiell große Varianz der Druckgeschwindigkeiten den Extruder daran hindert, dem geforderten Fließänderungsverlauf zu folgen.\n"
+#~ "Die Ursache dieser Artefakte ist in der Regel eine leicht abweichende PA-Einstellung, insbesondere in Kombination mit einer hohen PA-Glättungszeit.\n"
+#~ "\n"
+#~ "Empfehlungen bei Aktivierung dieser Option:\n"
+#~ "1. Reduzieren Sie die Glättungszeit für Pressure Advance auf 0,015 - 0,02, damit der Extruder schnell auf Geschwindigkeitsänderungen reagieren kann.\n"
+#~ "2. Erhöhen Sie die Mindestdruckgeschwindigkeiten, um die Schwankung zwischen den schnellen und langsamen Segmenten zu begrenzen.\n"
+#~ "3. Wenn Artefakte weiterhin auftreten, aktivieren Sie die Glättung der Extrusionsrate (ERS), um die Übergänge der Fließrate weiter zu glätten.\n"
+#~ "\n"
+#~ "Hinweis: Wenn diese Option aktiviert ist, werden die Überhangumfänge wie Überhänge behandelt, was bedeutet, dass die Überhanggeschwindigkeit auch dann angewendet wird, wenn der überhängende Umfang Teil einer Brücke ist.\n"
+#~ "Zum Beispiel wird für Umfänge, die zu 100 % ohne stützende Wand darunter überhängen, die Überhanggeschwindigkeit für 100 % ohne Abstützung angewendet."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Geschwindigkeit der extern sichtbaren Brückenextrusionen.\n"
+#~ "\n"
+#~ "Darüber hinaus wird, wenn die Option zum Verlangsamen von gekrümmten Umfängen deaktiviert ist oder der klassische Überhangsmodus aktiviert ist, die Druckgeschwindigkeit der Überhangswände, die zu weniger als 13 % gestützt sind, ob sie Teil einer Brücke oder eines Überhangs sind."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Diese separate Einstellung beeinflusst die Geschwindigkeit von Umfängen mit einem Radius <= small_perimeter_threshold (normalerweise Löcher). Wenn es als Prozentsatz ausgedrückt wird (z.B. 80%), wird es auf die oben genannte Einstellung der Geschwindigkeit der Außenwand berechnet. Setzen Sie es auf Null für automatisch."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Wie „Feine Strukturen“, aber für Stützen. Diese separate Einstellung wirkt sich auf die Geschwindigkeit der Stützen für Bereiche <= `small_support_perimeter_threshold` aus. Wenn als Prozentsatz angegeben (zum Beispiel: 80 %), wird sie auf die obige Geschwindigkeitseinstellung für Stützen oder Stützschnittstellen berechnet. Auf null setzen für automatisch."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Druckreihenfolge der inneren und äußeren Wände.\n"
+#~ "\n"
+#~ "Verwenden Sie Innen/Außen für die besten Überhänge. Dies liegt daran, dass die überhängenden Wände beim Drucken an eine benachbarte Umfangsfläche haften können. Diese Option führt jedoch zu einer geringfügig reduzierten Oberflächenqualität, da die Außenwand durch das Zusammendrücken der Innenwand verformt wird.\n"
+#~ "\n"
+#~ "Verwenden Sie Innen/Außen/Innen für die beste Oberflächenqualität und dimensionale Genauigkeit, da die Außenwand ungestört von einer inneren Wand gedruckt wird. Die Überhangsleistung wird jedoch verringert, da keine innere Wand vorhanden ist, um die Außenwand zu drucken. Diese Option erfordert ein Minimum von 3 Wänden, um wirksam zu sein, da die inneren Wände ab der 3. Umfangsfläche zuerst gedruckt werden, dann die äußere Umfangsfläche und schließlich die erste innere Umfangsfläche. Diese Option wird in den meisten Fällen gegen die Option Außen/Innen empfohlen.\n"
+#~ "\n"
+#~ "Verwenden Sie Außen/Innen für die gleiche externe Wandqualität und dimensionale Genauigkeit wie die Option Innen/Außen/Innen. Die Z-Nähte werden jedoch weniger konsistent erscheinen, da die erste Extrusion einer neuen Schicht auf einer sichtbaren Oberfläche beginnt."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Geschwindigkeit der ersten Schicht mit Ausnahme der massiven Füllung."
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Geschwindigkeit des massiven Füllung der ersten Schicht."
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Die Füllfläche wird leicht vergrößert, um mit der Wand zu überlappen und eine bessere Haftung zu gewährleisten. Der Prozentwert bezieht sich auf die Linienbreite der spärlichen Füllung. Setzen Sie diesen Wert auf ~10-15%, um eine mögliche Überextrusion und Materialansammlung zu minimieren, die zu rauen Oberflächen führen kann."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "Der obere massive Füllbereich wird leicht vergrößert, um mit der Wand zu überlappen und eine bessere Haftung zu gewährleisten und das Auftreten von Pinholes zu minimieren, wo die obere Füllung auf die Wände trifft. Ein Wert von 25-30% ist ein guter Ausgangspunkt, um das Auftreten von Pinholes zu minimieren. Der Prozentwert bezieht sich auf die Linienbreite der spärlichen Füllung."
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Interlock-Tiefe eines segmentierten Bereichs. Es wird ignoriert, wenn \"mmu_segmented_region_max_width\" null ist oder wenn \"mmu_segmented_region_interlocking_depth\" größer ist als \"mmu_segmented_region_max_width\". Null deaktiviert diese Funktion."
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Reduziert die Höhe der oberen Oberflächenumrandungen, um der Modellkante zu entsprechen.\n"
+#~ "Wirkt sich auf Umrandungen mit einer Neigung unterhalb dieses Winkels (Grad) aus.\n"
+#~ "Ein vernünftiger Wert ist 35. Auf 0 setzen, um zu deaktivieren."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Rollenbasierte Wipe Geschwindigkeit"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Ein Luftzug-Schutz ist nützlich, um einen ABS- oder ASA-Druck vor Verzug und dem Ablösen vom Druckbett aufgrund von Windzug zu schützen. Er wird normalerweise nur bei offenen Druckern benötigt, d.h. ohne Gehäuse.\n"
+#~ "\n"
+#~ "Aktiviert = Umrandung ist so hoch wie das höchste gedruckte Objekt. Andernfalls wird 'Höhe der Umrandung' verwendet.\n"
+#~ "Hinweis: Mit aktiviertem Luftzug-Schutz wird die Umrandung in der Umrandungsdistanz vom Objekt gedruckt. Daher kann es bei aktiven Rändern zu Überschneidungen kommen. Um dies zu vermeiden, erhöhen Sie den Wert der Umrandungsdistanz.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Die maximale Druckgeschwindigkeit beim Reinigen im Reinigungsturm und beim Drucken der dünnen Schichten des Reinigungsturms. Beim Reinigen wird, wenn die Geschwindigkeit des dünnen Infill oder die berechnete Geschwindigkeit aus der maximalen Volumengeschwindigkeit des Filaments niedriger ist, die niedrigste verwendet.\n"
+#~ "\n"
+#~ "Beim Drucken der dünnen Schichten wird, wenn die Geschwindigkeit des inneren Umfangs oder die berechnete Geschwindigkeit aus der maximalen Volumengeschwindigkeit des Filaments niedriger ist, die niedrigste verwendet.\n"
+#~ "\n"
+#~ "Das Erhöhen dieser Geschwindigkeit kann die Stabilität des Turms beeinträchtigen sowie die Kraft erhöhen, mit der die Düse auf mögliche Klumpen trifft, die sich auf dem Reinigungsturm gebildet haben.\n"
+#~ "\n"
+#~ "Bevor Sie diesen Parameter über den Standardwert von 90 mm/s erhöhen, stellen Sie sicher, dass Ihr Druckerzuverlässig bei den erhöhten Geschwindigkeiten Brücken drucken kann und dass das Auslaufen beim Werkzeugwechsel gut kontrolliert wird.\n"
+#~ "\n"
+#~ "Für die äußeren Umfänge des Reinigungsturms wird die Geschwindigkeit des inneren Umfangs unabhängig von dieser Einstellung verwendet."
+
+# AI Translated
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Wandtyp des Reinigungsturms.\n"
+#~ "1. Rechteck: Der Standard-Wandtyp, ein Rechteck mit fester Breite und Höhe.\n"
+#~ "2. Kegel: Ein Kegel mit einer Abrundung am Boden, um den Reinigungsturm zu stabilisieren.\n"
+#~ "3. Rippe: Fügt der Turmwand vier Rippen für verbesserte Stabilität hinzu."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Zusätzlicher Fluss, der für die Reinigungslinien auf dem Reinigungsturm verwendet wird. Dadurch werden die Reinigungslinien dicker oder schmaler, als sie normalerweise wären. Der Abstand wird automatisch angepasst."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Passen Sie diesen Wert an, um zu verhindern, dass kurze, offene Wände gedruckt werden, was die Druckzeit erhöhen könnte. Höhere Werte entfernen mehr und längere Wände.\n"
+#~ "\n"
+#~ "HINWEIS: Die unteren und oberen Oberflächen werden von diesem Wert nicht beeinflusst, um visuelle Lücken an der Außenseite des Modells zu vermeiden. Passen Sie die \"One wall threshold\" in den erweiterten Einstellungen unten an, um die Empfindlichkeit dessen anzupassen, was als obere Oberfläche angesehen wird. \"One wall threshold\" ist nur sichtbar, wenn diese Einstellung über den Standardwert von 0,5 gesetzt ist oder wenn einzelne Wände für die Oberfläche aktiviert sind."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "In %1% Teil aufteilen"
+#~ msgstr[1] "In %1% Teile aufteilen"
+
+#~ msgid "Repair failed"
+#~ msgstr "Reparatur fehlgeschlagen"
+
+#~ msgid "Repair canceled"
+#~ msgstr "Reparatur abgebrochen"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Was diese Ebene dort bewirkt, wo sie die darunterliegenden überlappt. „Hinzufügen“ und „Subtrahieren“ häufen Relief auf oder tragen es ab. „Multiplizieren“ und „Dividieren“ skalieren das Darunterliegende, wodurch diese Ebene zu einer Maske darüber wird - dort wirkt „Tiefe“ als Stärke, und 1 mm lässt weiße Bereiche unverändert."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "Das Netz enthält nicht-manifold Geometrie oder offene Ränder. Sie können es unverändert importieren oder vor dem Import mit dem Windows-3D-Reparaturdienst reparieren."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Bitte beachten Sie, dass das Netz nicht-manifold Geometrie oder offene Ränder enthält."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Netzproblem"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Reparatur fehlgeschlagen: Das Netz ist nach dem Füllen der Löcher noch offen."
+
+# AI Translated
+# Needs human review: English says 'operators' but means the two operands of the logical operation (PlaceholderParser.cpp); translated as Operanden. Check, or fix the source wording.
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Eine logische Operation kann nicht auf nicht boolesche Operanden angewendet werden."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Wird gelesen"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Die Anzahl der Filamente übersteigt die maximale Anzahl, die das Malwerkzeug unterstützt. Nur die ersten %1% der Filamente werden im Malwerkzeug verfügbar sein."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Tastenkürzel"
+
+# AI Translated
+#~ msgid "Build Volume"
+#~ msgstr "Bauvolumen"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Objekte (%1%) haben doppelte Verbinder. Einige Verbinder fehlen möglicherweise im Slicing-Ergebnis.\n"
+#~ "Bitte melden Sie dem OrcaSlicer-Team, in welchem Szenario dieses Problem aufgetreten ist.\n"
+#~ "Vielen Dank."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d Dreiecke"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Bewegen)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Fest)"
+
+#~ msgid "Filament "
+#~ msgstr "Filament "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "Hotend"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Anordnen "
+
+#~ msgid "Orienting"
+#~ msgstr "Ausrichten"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Bitte alle Achsen referenzieren (Klick"
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr "), um die Position des Werkzeugkopfs zu ermitteln. Dadurch wird verhindert, dass sich das Gerät über die Bewegungsgrenzen bewegt und das Gerät beschädigt wird."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Erhöhe %1%g Filament und %2% Änderungen im Vergleich zur optimalen Gruppierung."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Erhöhe %1%g Filament und sparen %2% Änderungen im Vergleich zur optimalen Gruppierung."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Spare %1%g Filament und erhöhen %2% Änderungen im Vergleich zur optimalen Gruppierung."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Spare %1%g Filament und %2% Änderungen im Vergleich zu einem Drucker mit einer Düse."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Spare %1%g Filament und erhöhe %2% Änderungen im Vergleich zu einem Drucker mit einer Düse."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Erhöhe %1%g Filament und spare %2% Änderungen im Vergleich zu einem Drucker mit einer Düse."
+
+#~ msgid "number keys"
+#~ msgstr "Nummerntasten"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Filamente %s sind im %s platziert, aber der generierte G-Code-Pfad überschreitet den druckbaren Bereich des %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Filamente %s sind im %s platziert, aber der generierte G-Code-Pfad überschreitet die druckbare Höhe des %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Filament %s kann nicht direkt auf der Oberfläche dieser Druckplatte gedruckt werden."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "Bevor ein neues Modell erstellt wird, wird %1% geschlossen. Möchten Sie fortfahren?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "In der Cloud-Slicing-Warteschlange befinden sich %s Aufgaben vor Ihnen."
+
+#~ msgid " upload failed"
+#~ msgstr "Hochladen fehlgeschlagen"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " Hochladen der Konfiguration fehlgeschlagen\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Kein entsprechender Speicher\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " Kann nicht geöffnet werden\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Ihr Kommentarergebnis kann aus einigen Gründen nicht hochgeladen werden. Wie folgt:\n"
+#~ "\n"
+#~ " Fehlercode: "
+
+#~ msgid "error message: "
+#~ msgstr "Fehlermeldung: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Möchten Sie zur Webseite für die Bewertung weitergeleitet werden?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (Prozessprofil: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "Die %s Düse kann %s nicht drucken."
+
+#~ msgid " nozzle"
+#~ msgstr " Düse"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Es wird nicht empfohlen, die folgenden Filamente mit %1% zu drucken: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " Druckplatte %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Alle %1% Mischfilamente entfernen?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Möchten Sie es ersetzen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Druckbett-Temperaturkonflikt: T%d (%s) stellt das Druckbett auf %d°C ein — T%d (%s) benötigt %d°C. Das Primär-Werkzeug steuert das Druckbett; sekundäre Werkzeuge drucken mit der Temperatur, die es einstellt."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Keine Beschleunigungen für die Kalibrierung bereitgestellt. Verwenden Sie den Standardbeschleunigungswert"
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Keine Geschwindigkeiten für die Kalibrierung eingestellt. Verwenden die optimale Geschwindigkeit"
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Für den Bereich %1% bis %2% °C ist kein Temperaturturm für Förderbanddrucker verfügbar. Verwenden Sie einen Bereich, den die Turmmodelle abdecken, zum Beispiel 230 bis 190."
+
+#~ msgid "The selected file"
+#~ msgstr "Die ausgewählte Datei"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "enthält keinen gültigen G-Code."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "mit OrcaSlicer, damit öffnet Orca Modelle von"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Kosten %dg Filament und %d Änderungen mehr als optimale Gruppierung."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Parameter mit diesem Symbol können pro Düse konfiguriert werden."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Reservierte Schlüsselwörter gefunden"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d Filament Profil und %d Prozess Profil sind diesem Drucker zugeordnet. Diese Profile werden gelöscht, wenn der Drucker gelöscht wird."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Die folgenden Profile erben dieses Profil."
+#~ msgstr[1] "Das folgende Profil erbt dieses Profil."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% Profil"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Sind sie sicher, dass sie das ausgewählte Profil %1% wollen?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "In %1% Teile aufteilen"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Neue Herstellerprofile werden heruntergeladen: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Herstellerprofile konnten nicht heruntergeladen werden: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "In diesem Span-Modus werden Farben nur von %1% gedruckt, aber Filament %2% ist keinem Werkzeug zugeordnet. Verwenden Sie Filamente, die %1% zugeordnet sind, oder schalten Sie diese Platte in den Modus Primär."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "In diesem Span-Modus werden Farben nur von %1% gedruckt, aber Filament %2% ist T%3% zugeordnet. Verwenden Sie Filamente, die %1% zugeordnet sind, oder schalten Sie diese Platte in den Modus Primär."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " befindet sich zu nahe an einem Sperrbereich. Beim Drucken kann es zu Kollisionen kommen."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " ist zu nahe am Klumpenerkennungsbereich. Beim Drucken kann es zu Kollisionen kommen."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Reinigungsturm"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " ist zu nah an anderen und es können Kollisionen verursacht werden.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " ist zu nahe am Sperrbereich und es werden Kollisionen verursacht.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " ist zu nahe am Klumpenerkennungsbereich und es werden Kollisionen verursacht.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " liegt teilweise außerhalb des druckbaren Bereichs und kann nicht gedruckt werden.\n"
+
+# AI Translated
+# Needs human review: Inserted as %3% into 'IDEX/IQEX mode "%1%" prints with T%2%, but this plate's filaments are on %3%' (German: '... liegen auf %3%'), so it is in the dative; check the whole sentence reads right.
+#~ msgid "no configured tool"
+#~ msgstr "keinem konfigurierten Werkzeug"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "End G-Code nach dem fertigstellen des Drucks hinzufügen."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Maximale Geschwindigkeit X"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Maximale Geschwindigkeit Y"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Maximale Geschwindigkeit Z"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Maximale Geschwindigkeit E"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Python-Plugin(s), die bei jedem Schritt der Slicing-Pipeline aufgerufen werden, um Slicing-Zwischendaten zu lesen und zu ändern, einschließlich eines abschließenden G-code-Nachbearbeitungsschritts. Forschung/experimentell."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Wenn aktiviert, gibt der Slicer G-Code aus, bei dem der Inhalt der primären Zone auf den Ursprung des Druckbetts (0,0) zentriert ist. Die Drucker-Firmware ist dafür verantwortlich, Kopien/Spiegelungen an der jeweiligen physischen Zonenposition zu platzieren. Nur bei Druckern aktivieren, deren Firmware im Kopie-/Spiegelungsmodus eigene Zonenversätze anwendet (z. B. der IDEX-Duplizierungsmodus von RepRapFirmware). Hat im Modus Primär keine Wirkung."
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Plattenspezifische Überschreibung, die physische Köpfe den Filament-Slots zuordnet (ab 1 gezählt). Leer bedeutet, die Standardwerte aus der pem-Umkehrung zu verwenden."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Achse, um die das Netz vor dem Slicen gedreht wird. Dies ist die Neigung des Förderbanddruckers: eine isometrische (verzerrungsfreie) Drehung, die auch die Darstellung des Druckbetts und die Schwerkraftneigung der Stützen bestimmt und die von der G-Code-Rücktransformation vor der Scherung/Skalierung und Achsenzuordnung im Maschinenkoordinatensystem umgekehrt wird. X ist die typische Portalneigung (das Förderband bewegt sich entlang Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Experten-Überschreibung: Legt den Neigungswinkel des Maschinenkoordinatensystems (G-Code-Scherung/-Skalierung) unabhängig vom Drehwinkel vor dem Slicen fest. Wenn deaktiviert, wird die Transformation ins Maschinenkoordinatensystem aus dem Neigungswinkel des Förderbands abgeleitet, sodass ein einziger Winkel beide Stufen steuert. Nur aktivieren, um eine Maschine auszugleichen, deren physische Portalneigung von der Slicing-Drehung abweicht."
+
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "Die maximale Abweichung, die bei der Reduzierung der Auflösung für die Einstellung 'Maximale Wandauflösung' zulässig ist. Wenn Sie diesen Wert erhöhen, wird der Druck weniger genau, aber der G-Code wird kleiner. 'Maximale Wandabweichung' begrenzt 'Maximale Wandauflösung', so dass wenn die beiden in Konflikt stehen, 'Maximale Wandabweichung' Vorrang hat."
+
+#~ msgid " not in range "
+#~ msgstr "nicht im Bereich"
+
+#~ msgid "floating regions"
+#~ msgstr "schwebende Regionen"
+
+#~ msgid "floating cantilever"
+#~ msgstr "schwebender Überhang."
+
+#~ msgid "large overhangs"
+#~ msgstr "Großer Überhang."
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Es scheint, dass das Objekt %s %s hat. Bitte orientieren Sie das Objektneu oder aktivieren Sie die Support-Generierung."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Es wurden keine Schichten erkannt. Möglicherweise möchten Sie Ihre STL-Datei(en) reparieren oder ihre Größe oder Dicke überprüfen und es erneut versuchen.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Dieser Maschinentyp kann nur %d historische Ergebnisse pro Düse speichern. Dieses Ergebnis wird nicht gespeichert."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Dieser Maschinentyp kann nur %d historische Ergebnisse pro Düse speichern."
+
+# AI Translated
+# Needs human review: Radio option for the belt temperature tower test model (Test model: Standard / Overhang) in the temperature calibration dialog; glossary form is the plural 'Überhänge', singular used here as a model name.
+#~ msgid "Overhang"
+#~ msgstr "Überhang"
+
+#~ msgid "Start / End"
+#~ msgstr "Start / Ende"
+
+#~ msgid "Damp"
+#~ msgstr "Dämpfung"
+
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "%d IFS-Slots auf dem Drucker erkannt."
+
+#~ msgid "selected"
+#~ msgstr "Ausgewählt"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Die folgenden Profile erben dieses Profil."
+#~ msgstr[1] "Das folgende Profil erbt dieses Profil."
+
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "Es wurden %zu Creality-Drucker gefunden. Wählen Sie einen aus und klicken Sie auf 'Ausgewählten verwenden'."
+
+#~ msgid "log(s)"
+#~ msgstr "Protokoll(e)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Fehler: %s-Extruder hat keine verfügbare %s-Düse, aktuelles Gruppierungsergebnis ist ungültig."
+
+#~ msgid "invalid brim ears"
+#~ msgstr "Ungültige Mausohren"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Überspringen von %d Objekten."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Ordner im Explorer öffnen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Mittelpunkt, dann einen Eckpunkt klicken — %d Seiten, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "umschrieben"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "eingeschrieben"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Skizze erstellt (%zu steuernde Bemaßungen) — auswählen, dann Rechtsklick zum Extrudieren"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — %zu Dreiecke"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Dieses Netz hat %d Dreiecke. Jedes Dreieck wird vor dem Zusammenführen koplanarer Flächen zu einer B-rep-Fläche, daher kann der Import lange dauern und einen Körper ergeben, der sich nur langsam bearbeiten lässt. Meist ist es besser, das Netz vorher zu reduzieren.\n"
+#~ "\n"
+#~ "Trotzdem importieren?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Volumenkörper importiert — %d Dreiecke → %d Flächen, Volumen %.2f mm³. Eine Fläche oder Kante wählen, dann Abrunden / Schneiden / Aushöhlen zum Bearbeiten"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — zum Platzieren/Skalieren ziehen, dann bestätigen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d Skizzenelemente"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — Wert eingeben, Enter drücken (oder bestätigen)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Vorschau — %zu Dreiecke"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "%1% Abhängigkeit(en) können nicht auf diese Geometrie wirken (eine Ellipse oder Spline-Kurve oder ein Kreis der Größe null) und werden ignoriert"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "%1% durch das Abrunden/Fasen ungültig gewordene Abhängigkeit(en) wurden entfernt"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "%1% Abhängigkeit(en) durch die Transformation aufgehoben"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...und %1% weitere(s) offene(s) Ende(n)"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "Die Materialliste unterstützt höchstens %1% Farben. Nach der Zerlegung (%2%) würde die Anzahl der Materialien %1% überschreiten. Bitte löschen Sie vor dem Zerlegen nicht verwendete Filamente im Hauptfenster."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% druckbare Farben aus %2% Filamenten"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% Inseln"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Alle %1% Ebenen belegt"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Vorschau: %1% Dreiecke"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Modell: %1% Dreiecke - der Einbrennvorgang verfeinert bis zur obigen Auflösung, bis zu seinem Budget"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Einbrennen verschiebt vorhandene Eckpunkte - das Modell bleibt bei %1% Dreiecken"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Einbrennergebnis bis zu ~%1% k Dreiecke"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% Ebenen nicht bemalt, übersprungen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Das Projekt unterstützt bis zu %d Filamente. Zusätzliche Filamente werden verworfen."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d Eckpunkte ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d Kanten ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d Inseln ausgewählt | ziehen = gemeinsam verschieben, Umschalt/Strg-Klick = hinzufügen/entfernen, R/S = primäre drehen/skalieren"
+
+# AI Translated
+# Needs human review: UV editor tile-size tooltip: 'Tiling' is quoted as the layer's 'Tile' checkbox („Kacheln“); check it names the right control in the texture layer settings (it may mean the Tile size field, „Kachelgröße“).
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Die Kachelgröße der aktiven Ebene: wie viel des Modells eine Wiederholung der Textur abdeckt. Die Arbeitsfläche wird in Kacheln gemessen, sodass eine Rasterzelle einer Wiederholung entspricht. Ändern Sie sie über „Kacheln“ in den Einstellungen der Ebene."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d Inseln, %s Flächen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin „%s“ möchte die folgende(n) Datei(en) lesen:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin „%s“ möchte die folgende(n) Datei(en) lesen/schreiben:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin „%s“ möchte die folgende(n) Datei(en) erstellen:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin „%s“ möchte die folgende(n) Datei(en) löschen:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin „%s“ möchte den/die folgenden Befehl(e) ausführen:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Plugin-Installation fehlgeschlagen"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Die Microsoft WebView2 Runtime konnte nicht installiert werden.\n"
+#~ "Einige Funktionen, einschließlich des Einrichtungsassistenten, werden möglicherweise leer angezeigt, bis sie installiert ist.\n"
+#~ "Bitte installieren Sie sie manuell von https://developer.microsoft.com/microsoft-edge/webview2/ und starten Sie Orca Slicer neu."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Warum diese Gruppierung"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "Die Software unterstützt nicht die Verwendung unterschiedlicher Düsendurchmesser für einen Druck. Wenn die linke und rechte Düse nicht übereinstimmen, können wir nur mit dem Einzelkopf-Druck fortfahren. Bitte bestätigen Sie, welche Düse Sie für dieses Projekt verwenden möchten."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Durchmesser wechseln"
+
+# AI Translated
+#~ msgid "BambuStudio Project"
+#~ msgstr "BambuStudio-Projekt"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "Die 3MF-Datei wurde von BambuStudio (Version %s) erstellt, die neuer ist als die kompatible Version %s. Nicht erkannte Einstellungen gefunden:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "Die 3MF wurde von BambuStudio (Version %s) erstellt, die neuer ist als die kompatible Version %s. Einige Einstellungen sind möglicherweise nicht vollständig kompatibel."
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "Die 3MF wurde von BambuStudio erstellt. Einige Einstellungen können von OrcaSlicer abweichen."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Rückgängig und Wiederholen sind während eines laufenden Vorgangs nicht möglich. Beenden Sie ihn zuerst."
+
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Zentriert die innere Füllung jedes Teils auf sich selbst, als ob es allein geslict würde, anstatt auf der gesamten Baugruppe. Teile, die sich berühren oder überlappen, werden als ein Körper behandelt und teilen sich ein Zentrum; separate Teile (oder eigenständige 3D-Objekte) erhalten jeweils ihr eigenes.\n"
+#~ "Nützlich, wenn eine Baugruppe mehrere Objekte gruppiert, die jeweils eine konsistente, selbstzentrierte Füllung behalten sollen.\n"
+#~ "Wirkt sich auf Linien- und Gittermuster sowie Rotationsvorlagen-Füllungen aus.\n"
+#~ "Muster, die an globale Koordinaten gebunden sind (Gyroid, Honeycomb, TPMS, ...), sind nicht betroffen."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Index der aktuellen Schicht. Einsbasiert (d.h. die erste Schicht ist Nummer 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Video-Tutorial"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Primitiv"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Leeres Netz erzeugt"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Quader"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Schnell:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Breite (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Tiefe (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Höhe (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "R unten"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "R oben"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "R groß"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "R klein"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Alle Kanten"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Obere Kanten"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Untere Kanten"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Seitliche Kanten"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Netzauflösung"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Form hinzufügen"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Kein Außenprofil"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Außenfläche konnte nicht erstellt werden"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Fläche mit Löchern konnte nicht erstellt werden"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Rotieren fehlgeschlagen"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Profil"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Neues Profil beginnen (für Löcher)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segmente"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Seiten"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Zum Zeichnen in die Ansicht klicken"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Am Raster einrasten"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Rasterabstand"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Außen"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "geschlossen"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% Punkte %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (Oben)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (Vorne)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (Seite)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Rotieren (Grad)"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "0 zum Extrudieren, >0 zum Rotieren"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Tasche (Ausschnitt)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu geschlossenes Profil"
+#~ msgstr[1] "%zu geschlossene Profile"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Zum Aktivieren ein geschlossenes Profil zeichnen"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Leeres Ergebnis"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Extrudieren: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Rotieren: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Kein Objekt ausgewählt"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Fläche fehlgeschlagen"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Fläche mit Löchern fehlgeschlagen"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Werkzeugnetz ist leer"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Tasche hinzugefügt (negatives Volumen)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Tasche: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Erfordert, dass die aktive Ebene die Projektion „Abwickeln (LSCM)“ verwendet."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Schachbrett - ein Testraster statt der Textur. Wo die Quadrate quadratisch bleiben, ist die Textur unverzerrt; wo sie sich dehnen, wird es auch die Textur"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Verzerrung - Dehnungs-Heatmap von Blau bis Rot über die Abwicklung"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Mischen nach"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Oberfläche"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Schichten: Die beiden Filamente wechseln sich zwischen den Druckschichten ab, was auf senkrechten Flächen gleichmäßig verläuft, auf flach liegenden aber verschwindet, da dort eine ganze Schicht ein einziges Band ist.\n"
+#~ "Oberfläche: ein feines Schachbrettmuster über die Oberfläche, das bei jedem Winkel funktioniert, aber eher als Textur denn als Mischung wirken kann.\n"
+#~ "Automatisch: Schichten auf senkrechten Flächen; flach liegende Flächen erhalten das nächstgelegene einzelne Filament, da ein Schachbrettmuster dort als Muster sichtbar wird."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Insel - ganze Inseln verschieben, drehen und skalieren"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Eckpunkt - Eckpunkte zum Umformen ziehen; Umschalt/Strg für Mehrfachauswahl"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Kante - Kanten zum Umformen ziehen; Umschalt/Strg für Mehrfachauswahl"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Alle Inseln einpassen (Pos1)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Experimentell) Drucker-Agenten anstelle von Druck-Hosts verwenden"
@@ -30835,16 +37021,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Auf eine Fläche oder eine Referenzebene klicken, dann ein Zeichenwerkzeug wählen"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -30901,10 +37077,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Vertikaler Abstand"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Linear"
-
#~ msgid "Face recognition"
#~ msgstr "Gesichtserkennung"
@@ -32323,9 +38495,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Berechnung der Linienbreite von %1% fehlgeschlagen. Kann den Wert von \"%2%\" nicht abrufen"
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Ungültiger Abstand für Flow::with_spacing() übergeben, überprüfen Sie Ihre Schichthöhe und Extrusionsbreite"
-
#~ msgid "Renders cast shadows on the plate in realistic view."
#~ msgstr "Zeigt geworfene Schatten auf der Platte in der realistischen Ansicht an."
@@ -32582,9 +38751,6 @@ msgstr ""
#~ "da die Objekte auf das Druckbett beschränkt sind \n"
#~ "und nur Teile angehoben werden können."
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "Controls the density (spacing) of external bridge lines. Default is 100%.\n"
#~ "Theoretically, 100% means a solid bridge, but due to the tendency of bridge extrusions to sag, 100% may not be sufficient.\n"
diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po
index cafb65fa34..ea45cda8c0 100644
--- a/localization/i18n/en/OrcaSlicer_en.po
+++ b/localization/i18n/en/OrcaSlicer_en.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2026-06-17 15:44-0300\n"
"Last-Translator: Alexandre Folle de Menezes\n"
"Language-Team: \n"
@@ -345,7 +345,9 @@ msgstr ""
msgid "Please wait"
msgstr ""
-msgid "Reading"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
msgstr ""
msgid "Running..."
@@ -498,8 +500,10 @@ msgid "Lay on Face"
msgstr ""
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr ""
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] ""
+msgstr[1] ""
msgid "Color Painting"
msgstr ""
@@ -550,7 +554,8 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr ""
-msgid "Shortcut Key "
+#, c-format, boost-format
+msgid "Shortcut Key %d"
msgstr ""
msgid "Triangle"
@@ -643,6 +648,9 @@ msgstr ""
msgid "Part selection"
msgstr ""
+msgid "Select multiple objects"
+msgstr ""
+
msgid "Fixed step drag"
msgstr ""
@@ -703,9 +711,66 @@ msgstr ""
msgid "Relative"
msgstr ""
+msgid "Selection"
+msgstr ""
+
+msgid "Plate"
+msgstr ""
+
+msgid "Distribute"
+msgstr ""
+
msgid "Coordinate system used for transform actions."
msgstr ""
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+msgid "Align left"
+msgstr ""
+
+msgid "Align left-right center"
+msgstr ""
+
+msgid "Align right"
+msgstr ""
+
+msgid "Align front"
+msgstr ""
+
+msgid "Align front-back center"
+msgstr ""
+
+msgid "Align back"
+msgstr ""
+
+msgid "Align bottom"
+msgstr ""
+
+msgid "Align top-bottom center"
+msgstr ""
+
+msgid "Align top"
+msgstr ""
+
+msgid "Distribute left-right"
+msgstr ""
+
+msgid "Distribute front-back"
+msgstr ""
+
+msgid "Distribute top-bottom"
+msgstr ""
+
+msgid "Drop"
+msgstr ""
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
msgid "Absolute"
msgstr ""
@@ -807,9 +872,6 @@ msgstr ""
msgid "Cut position"
msgstr ""
-msgid "Build Volume"
-msgstr ""
-
msgid "Multiple"
msgstr ""
@@ -975,10 +1037,15 @@ msgstr ""
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+msgstr[1] ""
msgid "Cut by Plane"
msgstr ""
@@ -1041,9 +1108,11 @@ msgstr ""
msgid "Extra low"
msgstr ""
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr ""
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] ""
+msgstr[1] ""
msgid "Show wireframe"
msgstr ""
@@ -1054,6 +1123,15 @@ msgstr ""
msgid "Operation already cancelling. Please wait a few seconds."
msgstr ""
+msgid "Model simplification has been canceled"
+msgstr ""
+
+msgid "Wiki Guide"
+msgstr ""
+
+msgid "Video Guide"
+msgstr ""
+
msgid "Enforce seam"
msgstr ""
@@ -1104,6 +1182,12 @@ msgstr ""
msgid "Emboss"
msgstr ""
+msgid "No active font in style. Select correct one."
+msgstr ""
+
+msgid "WxFont is not loaded properly."
+msgstr ""
+
msgid "NORMAL"
msgstr ""
@@ -1740,10 +1824,19 @@ msgstr ""
msgid "Length"
msgstr ""
-msgid "Selection"
+msgid "Face 1 (Fixed)"
msgstr ""
-msgid " (Moving)"
+msgid "Face 2 (Moving)"
+msgstr ""
+
+msgid "Point 1 (Fixed)"
+msgstr ""
+
+msgid "Point 2 (Moving)"
+msgstr ""
+
+msgid "Selection 1"
msgstr ""
msgid ""
@@ -1756,13 +1849,7 @@ msgid ""
" specify distance between them."
msgstr ""
-msgid "Face"
-msgstr ""
-
-msgid " (Fixed)"
-msgstr ""
-
-msgid "Point"
+msgid "Selection 2"
msgstr ""
msgid ""
@@ -1855,6 +1942,18 @@ msgstr ""
msgid "Leaving Assembly gizmo"
msgstr ""
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr ""
@@ -2017,10 +2116,11 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr ""
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
#, c-format, boost-format
@@ -2216,6 +2316,48 @@ msgstr ""
msgid "Privacy Policy Update"
msgstr ""
+msgid "All your filament presets are available on the printers they were made for."
+msgstr ""
+
+msgid "Migrate Filament Presets"
+msgstr ""
+
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr ""
+
+msgid "Don't remind me again"
+msgstr ""
+
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr ""
+
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr ""
+
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+
+msgid "These presets could not be migrated:"
+msgstr ""
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr ""
@@ -2316,6 +2458,9 @@ msgstr ""
msgid "Failed to refresh plugins: %s"
msgstr ""
+msgid "Unknown error"
+msgstr ""
+
msgid "Select plugin package"
msgstr ""
@@ -2821,6 +2966,18 @@ msgstr ""
msgid "Reload all from disk"
msgstr ""
+msgid "Fix All"
+msgstr ""
+
+msgid "Fix all models on the current plate"
+msgstr ""
+
+msgid "Fix All Plates"
+msgstr ""
+
+msgid "Fix all models on all plates"
+msgstr ""
+
msgid "Auto Rotate"
msgstr ""
@@ -2872,7 +3029,10 @@ msgstr ""
msgid "Center"
msgstr ""
-msgid "Drop"
+msgid "Align/Distribute"
+msgstr ""
+
+msgid "Align and distribute objects"
msgstr ""
msgid "Edit Process Settings"
@@ -3144,6 +3304,12 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] ""
msgstr[1] ""
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Repairing was canceled"
msgstr ""
@@ -3215,9 +3381,6 @@ msgstr ""
msgid "Outer wall speed"
msgstr ""
-msgid "Plate"
-msgstr ""
-
msgid "Brim"
msgstr ""
@@ -3300,9 +3463,6 @@ msgstr ""
msgid "Insert template custom G-code at the beginning of this layer."
msgstr ""
-msgid "Filament "
-msgstr ""
-
msgid "Change filament at the beginning of this layer."
msgstr ""
@@ -3389,6 +3549,7 @@ msgstr ""
msgid "Off"
msgstr ""
+msgctxt "air_duct"
msgid "Filter"
msgstr ""
@@ -3501,10 +3662,16 @@ msgstr ""
msgid "Check filament location"
msgstr ""
-msgid "Switch"
+msgctxt "Verb"
+msgid "Pause"
msgstr ""
-msgid "hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr ""
+
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
msgstr ""
msgid "Wait for AMS cooling"
@@ -3659,7 +3826,9 @@ msgstr ""
msgid "Arranging"
msgstr ""
-msgid "Arranging "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
msgstr ""
msgid "Arranging canceled."
@@ -3693,7 +3862,9 @@ msgstr ""
msgid "Orienting..."
msgstr ""
-msgid "Orienting"
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
msgstr ""
msgid "Orienting canceled."
@@ -3702,6 +3873,11 @@ msgstr ""
msgid "Filling"
msgstr ""
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr ""
+
msgid "Bed filling canceled."
msgstr ""
@@ -3717,6 +3893,26 @@ msgstr ""
msgid "Orientation found."
msgstr ""
+msgid "Best surface quality"
+msgstr ""
+
+msgid "Optimize object rotation for best surface quality."
+msgstr ""
+
+msgid "Reduced overhang slopes"
+msgstr ""
+
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+
+msgid "Lowest Z height"
+msgstr ""
+
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr ""
+
msgid "Logging in"
msgstr ""
@@ -3994,6 +4190,15 @@ msgstr ""
msgid "Go to Plate"
msgstr ""
+msgid "Device"
+msgstr ""
+
+msgid "Device (Web)"
+msgstr ""
+
+msgid "Multi-device"
+msgstr ""
+
msgid "AMS Materials Setting"
msgstr ""
@@ -4018,9 +4223,6 @@ msgstr ""
msgid "Factors of Flow Dynamics Calibration"
msgstr ""
-msgid "Wiki Guide"
-msgstr ""
-
msgid "PA Profile"
msgstr ""
@@ -4050,6 +4252,12 @@ msgstr ""
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr ""
+msgid "Favorite filaments"
+msgstr ""
+
+msgid "All filaments"
+msgstr ""
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4346,10 +4554,9 @@ msgstr ""
msgid "Restart Required"
msgstr ""
-msgid "Please home all axes (click "
-msgstr ""
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
msgstr ""
msgid "Go Home"
@@ -4365,6 +4572,9 @@ msgstr ""
msgid "Please save your project and restart the application."
msgstr ""
+msgid "Unknown C++ exception."
+msgstr ""
+
msgid "Processing G-Code from previous file…"
msgstr ""
@@ -4566,6 +4776,11 @@ msgstr ""
msgid "Adjust"
msgstr ""
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5342,9 +5557,6 @@ msgstr ""
msgid "Filament Grouping"
msgstr ""
-msgid "Why this grouping"
-msgstr ""
-
msgid "Please place filaments on the printer based on grouping result."
msgstr ""
@@ -5355,28 +5567,40 @@ msgid "Current grouping of slice result is not optimal."
msgstr ""
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr ""
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] ""
+msgstr[1] ""
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr ""
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] ""
+msgstr[1] ""
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr ""
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] ""
+msgstr[1] ""
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr ""
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] ""
+msgstr[1] ""
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr ""
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] ""
+msgstr[1] ""
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr ""
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] ""
+msgstr[1] ""
msgid "Set to Optimal"
msgstr ""
@@ -5525,10 +5749,47 @@ msgstr ""
msgid "Sequence"
msgstr ""
+msgid "Plate center of mass"
+msgstr ""
+
+msgid "Part center of mass"
+msgstr ""
+
+msgid "Support center of mass"
+msgstr ""
+
+msgid "Assembly center of mass"
+msgstr ""
+
+msgid "Object center of mass"
+msgstr ""
+
+msgid "Finished print"
+msgstr ""
+
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr ""
+
+msgid "Weight"
+msgstr ""
+
+msgid "Volume"
+msgstr ""
+
+msgid "Center in bounding box"
+msgstr ""
+
+msgid "Bounding box size"
+msgstr ""
+
+msgid "Moment of inertia"
+msgstr ""
+
msgid "Object selection"
msgstr ""
-msgid "number keys"
+msgid "1~16 number keys"
msgstr ""
msgid "Number keys can quickly change the color of objects"
@@ -5730,9 +5991,18 @@ msgstr ""
msgid "Gridlines"
msgstr ""
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr ""
+msgid "Center of mass"
+msgstr ""
+
+msgid "Show raw G-code (belt only)"
+msgstr ""
+
msgid "Move section plane"
msgstr ""
@@ -5775,7 +6045,7 @@ msgstr ""
msgid "Size:"
msgstr ""
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr ""
@@ -5797,19 +6067,15 @@ msgstr ""
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr ""
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr ""
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] ""
+msgstr[1] ""
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr ""
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr ""
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] ""
+msgstr[1] ""
msgid "Open wiki for more information."
msgstr ""
@@ -5818,8 +6084,10 @@ msgid "Only the object being edited is visible."
msgstr ""
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr ""
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] ""
+msgstr[1] ""
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr ""
@@ -5935,25 +6203,18 @@ msgstr ""
msgid "Preview"
msgstr ""
-msgid "Device"
-msgstr ""
-
-msgid "Multi-device"
-msgstr ""
-
msgid "Project"
msgstr ""
-msgid "Device (Web)"
-msgstr ""
-
msgid "Yes"
msgstr ""
msgid "No"
msgstr ""
-msgid "will be closed before creating a new model. Do you want to continue?"
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
msgstr ""
msgid "Print all"
@@ -5999,6 +6260,9 @@ msgstr ""
msgid "Show Configuration Folder"
msgstr ""
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr ""
+
msgid "Troubleshoot Center"
msgstr ""
@@ -6232,6 +6496,12 @@ msgstr ""
msgid "Show Gridlines on plate"
msgstr ""
+msgid "Show IDEX/IQEX Toolhead"
+msgstr ""
+
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr ""
+
msgid "Reset Window Layout"
msgstr ""
@@ -6837,6 +7107,7 @@ msgstr ""
msgid "Calculating..."
msgstr ""
+msgctxt "Printer camera"
msgid "Camera"
msgstr ""
@@ -6916,8 +7187,10 @@ msgid "Cloud Slicing..."
msgstr ""
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr ""
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] ""
+msgstr[1] ""
#, c-format, boost-format
msgid "Layer: %s"
@@ -6948,6 +7221,10 @@ msgstr ""
msgid "Silent"
msgstr ""
+msgctxt "Mode"
+msgid "Standard"
+msgstr ""
+
msgid "Sport"
msgstr ""
@@ -7002,16 +7279,24 @@ msgstr ""
msgid "Number of images successfully uploaded"
msgstr ""
-msgid " upload failed"
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
msgstr ""
-msgid " upload config prase failed\n"
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
msgstr ""
-msgid " No corresponding storage bucket\n"
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
msgstr ""
-msgid " cannot be opened\n"
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
msgstr ""
msgid ""
@@ -7028,17 +7313,12 @@ msgstr ""
msgid "Obtaining instance_id failed\n"
msgstr ""
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-
-msgid "error message: "
-msgstr ""
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
@@ -7768,6 +8048,85 @@ msgstr ""
msgid "Material settings"
msgstr ""
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr ""
+
+msgid "Add Mode"
+msgstr ""
+
+msgid "Tools"
+msgstr ""
+
+msgid "G-code"
+msgstr ""
+
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr ""
+
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr ""
+
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr ""
+
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr ""
+
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr ""
+
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr ""
+
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr ""
+
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr ""
+
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr ""
+
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr ""
+
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr ""
+
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr ""
+
+msgid "Primary"
+msgstr ""
+
+msgid "Mode name (required)"
+msgstr ""
+
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr ""
+
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr ""
+
+msgid "Edit G-code / browse placeholders"
+msgstr ""
+
+msgid "Remove mode"
+msgstr ""
+
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr ""
+
msgid "Remove current plate (if not last one)"
msgstr ""
@@ -7792,11 +8151,27 @@ msgstr ""
msgid "Move plate to the front"
msgstr ""
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr ""
+
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr ""
+
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr ""
+
msgid "Customize current plate"
msgstr ""
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
+msgid "The left nozzle cannot print %s."
+msgstr ""
+
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
msgstr ""
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -7806,12 +8181,16 @@ msgstr ""
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr ""
-msgid " nozzle"
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
+#, boost-format
+msgid "%1%mm %2% nozzle"
msgstr ""
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr ""
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] ""
+msgstr[1] ""
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr ""
@@ -7820,8 +8199,9 @@ msgstr ""
msgid "%1% with %2%\n"
msgstr ""
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
+msgid "Slicing plate %1%: %2%"
msgstr ""
msgid "Invalid name, the following characters are not allowed:"
@@ -7857,12 +8237,6 @@ msgstr ""
msgid "Not installed"
msgstr ""
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr ""
-
-msgid "Switch diameter"
-msgstr ""
-
msgid "Configuration incompatible"
msgstr ""
@@ -7935,6 +8309,9 @@ msgstr ""
msgid "Remove last mixed filament"
msgstr ""
+msgid "Remove all mixed filaments"
+msgstr ""
+
msgid "Add mixed filament"
msgstr ""
@@ -7953,6 +8330,12 @@ msgstr ""
msgid "Edit / Delete / Merge"
msgstr ""
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr ""
@@ -8023,9 +8406,6 @@ msgstr ""
msgid "Load 3MF"
msgstr ""
-msgid "BambuStudio Project"
-msgstr ""
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr ""
@@ -8055,17 +8435,6 @@ msgstr ""
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr ""
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr ""
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr ""
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr ""
-
msgid "Invalid values found in the 3MF:"
msgstr ""
@@ -8215,6 +8584,12 @@ msgstr ""
msgid "Object with floating parts was detected"
msgstr ""
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr ""
+
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr ""
+
msgid "Another export job is running."
msgstr ""
@@ -8267,7 +8642,7 @@ msgstr ""
msgid "Please select a file"
msgstr ""
-msgid "Do you want to replace it"
+msgid "Do you want to replace it?"
msgstr ""
msgid "Message"
@@ -8297,6 +8672,38 @@ msgstr ""
msgid "Slicing Canceled"
msgstr ""
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr ""
+
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+
+msgid "Continue slicing?"
+msgstr ""
+
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr ""
+
+msgid "Don't show these warnings again"
+msgstr ""
+
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr ""
+
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+
msgid "Network plug-in switched successfully."
msgstr ""
@@ -8323,7 +8730,7 @@ msgstr ""
msgid "Sync now"
msgstr ""
-msgid "Cannot undo or redo while an operation is running. Stop it first."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
msgstr ""
msgid ""
@@ -8385,16 +8792,23 @@ msgstr ""
msgid "Project downloaded %d%%"
msgstr ""
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+
msgid "Pressure Advance Test"
msgstr ""
msgid "INFO:"
msgstr ""
-msgid "No accelerations provided for calibration. Use default acceleration value "
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
msgstr ""
-msgid "No speeds provided for calibration. Use default optimal speed "
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
msgstr ""
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -8407,6 +8821,13 @@ msgstr ""
msgid "Flowrate Test - Pass%d"
msgstr ""
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr ""
+
+msgid "Temperature tower"
+msgstr ""
+
msgid "Nozzle temperature test"
msgstr ""
@@ -8428,10 +8849,11 @@ msgstr ""
msgid "Import SLA archive"
msgstr ""
-msgid "The selected file"
-msgstr ""
-
-msgid "Does not contain valid G-code."
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
msgstr ""
msgid "An Error has occurred while loading the G-code file."
@@ -8687,6 +9109,22 @@ msgstr ""
msgid "Not available"
msgstr ""
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr ""
+
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr ""
+
msgid "isometric"
msgstr ""
@@ -8726,6 +9164,7 @@ msgstr ""
msgid "North America"
msgstr ""
+msgctxt "Region"
msgid "Others"
msgstr ""
@@ -8789,10 +9228,14 @@ msgstr ""
msgid "Reload Failed"
msgstr ""
-msgid "Associate"
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
msgstr ""
-msgid "with OrcaSlicer so that Orca can open models from"
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
msgstr ""
msgid "Current Association: "
@@ -9059,6 +9502,9 @@ msgstr ""
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr ""
+msgid "Camera"
+msgstr ""
+
msgid "Touchpad"
msgstr ""
@@ -9409,6 +9855,9 @@ msgstr ""
msgid "Select the network plug-in version to use"
msgstr ""
+msgid "Associate"
+msgstr ""
+
msgid "Associate files to OrcaSlicer"
msgstr ""
@@ -9457,6 +9906,12 @@ msgstr ""
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr ""
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Experimental Features"
msgstr ""
@@ -9719,9 +10174,6 @@ msgstr ""
msgid "Select which settings to be published in the 3MF file"
msgstr ""
-msgid "Video Guide"
-msgstr ""
-
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr ""
@@ -9861,6 +10313,11 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr ""
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr ""
+
msgid "Search actions"
msgstr ""
@@ -9953,6 +10410,9 @@ msgstr ""
msgid "Hide details"
msgstr ""
+msgid "Web view is unavailable."
+msgstr ""
+
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
msgstr ""
@@ -10197,8 +10657,10 @@ msgid "The name length exceeds the limit."
msgstr ""
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr ""
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] ""
+msgstr[1] ""
msgid "Right-Ext"
msgstr ""
@@ -10273,6 +10735,9 @@ msgstr ""
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr ""
+msgid "Switch"
+msgstr ""
+
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr ""
@@ -10571,6 +11036,9 @@ msgstr ""
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr ""
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr ""
+
msgid "Click to reset all settings to the last saved preset."
msgstr ""
@@ -10784,6 +11252,9 @@ msgstr ""
msgid "Ooze prevention"
msgstr ""
+msgid "Others"
+msgstr ""
+
msgid "Special mode"
msgstr ""
@@ -10818,7 +11289,9 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-msgid "Reserved keywords found"
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
msgstr ""
msgid "Setting Overrides"
@@ -10956,7 +11429,14 @@ msgstr ""
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr ""
+msgid "Belt printer"
+msgstr ""
+
+msgid "Machine frame transforms"
+msgstr ""
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr ""
@@ -11066,9 +11546,24 @@ msgstr ""
msgid "Wipe tower"
msgstr ""
+msgid "Belt purge tower"
+msgstr ""
+
msgid "Single extruder multi-material parameters"
msgstr ""
+msgid "IDEX/IQEX Configuration"
+msgstr ""
+
+msgid "Pre-slice warnings"
+msgstr ""
+
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr ""
+
+msgid "Modes"
+msgstr ""
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr ""
@@ -11078,6 +11573,18 @@ msgstr ""
msgid "Z-Hop"
msgstr ""
+msgid "Front-left"
+msgstr ""
+
+msgid "Front-right"
+msgstr ""
+
+msgid "Rear-left"
+msgstr ""
+
+msgid "Rear-right"
+msgstr ""
+
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
"\n"
@@ -11096,21 +11603,32 @@ msgstr ""
msgid "Detached"
msgstr ""
-#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
msgstr ""
+#, c-format, boost-format
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] ""
+msgstr[1] ""
+
msgid "Presets inherited by other presets cannot be deleted!"
msgstr ""
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
msgstr[0] ""
msgstr[1] ""
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
+msgid "Delete Preset"
msgstr ""
msgid "The following preset will be deleted too:"
@@ -11123,8 +11641,7 @@ msgid ""
"If the preset corresponds to a filament currently in use on your printer, please reset the filament information for that slot."
msgstr ""
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
+msgid "Are you sure you want to delete the selected preset?"
msgstr ""
msgid "Select printers"
@@ -11168,8 +11685,29 @@ msgstr ""
msgid "Don't warn again for this preset"
msgstr ""
-#, c-format, boost-format
-msgid "%s: %s"
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr ""
+
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr ""
+
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr ""
+
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr ""
+
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
msgstr ""
msgid "No modifications need to be copied."
@@ -11344,6 +11882,11 @@ msgstr ""
msgid "Compared presets has different printer technology"
msgstr ""
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr ""
+
msgid "Add File"
msgstr ""
@@ -11369,6 +11912,18 @@ msgstr ""
msgid "Assembly Guide"
msgstr ""
+msgid "Image files"
+msgstr ""
+
+msgid "TXT files"
+msgstr ""
+
+msgid "EXCEL files"
+msgstr ""
+
+msgid "PDF files"
+msgstr ""
+
msgid "Author"
msgstr ""
@@ -11556,9 +12111,6 @@ msgstr ""
msgid "Total ramming"
msgstr ""
-msgid "Volume"
-msgstr ""
-
msgid "Ramming line"
msgstr ""
@@ -11585,7 +12137,8 @@ msgstr ""
msgid "Flushing volumes for filament change"
msgstr ""
-msgid "Please choose the filament color"
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
msgstr ""
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -11606,6 +12159,123 @@ msgstr ""
msgid "parse json failed"
msgstr ""
+msgid "Loading…"
+msgstr ""
+
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr ""
+
+msgid "Welcome to Orca Slicer"
+msgstr ""
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr ""
+
+msgid "Get Started"
+msgstr ""
+
+msgid "Please select your login region"
+msgstr ""
+
+msgid "Finish"
+msgstr ""
+
+msgid "Printer Selection"
+msgstr ""
+
+msgid "Vendors"
+msgstr ""
+
+msgid "Custom Printer"
+msgstr ""
+
+msgid "Create"
+msgstr ""
+
+msgid "Check for new printers"
+msgstr ""
+
+msgid "At least one printer must be selected."
+msgstr ""
+
+msgid "New printers found"
+msgstr ""
+
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr ""
+
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr ""
+
+msgid "No new printers found."
+msgstr ""
+
+msgid "Filament Selection"
+msgstr ""
+
+msgid "System Filaments"
+msgstr ""
+
+msgid "Custom Filaments"
+msgstr ""
+
+msgid "Create New"
+msgstr ""
+
+msgid "Filament type"
+msgstr ""
+
+msgid "Vendor"
+msgstr ""
+
+msgid "No items"
+msgstr ""
+
+msgid "Filter items"
+msgstr ""
+
+msgid "Checked"
+msgstr ""
+
+msgid "Unchecked"
+msgstr ""
+
+msgid "Select filtered"
+msgstr ""
+
+msgid "Clear all"
+msgstr ""
+
+msgid "At least one filament must be selected."
+msgstr ""
+
+msgid "Do you want to use the default filament?"
+msgstr ""
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr ""
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr ""
+
+msgid "Enable Stealth Mode."
+msgstr ""
+
+msgid "Proprietary Plugins"
+msgstr ""
+
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr ""
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr ""
+
+msgid "Install Bambu Network plug-in"
+msgstr ""
+
msgid "[Action Required] "
msgstr ""
@@ -11663,9 +12333,6 @@ msgstr ""
msgid "Select a part"
msgstr ""
-msgid "Select multiple objects"
-msgstr ""
-
msgid "Select objects by rectangle"
msgstr ""
@@ -11964,32 +12631,30 @@ msgstr ""
msgid "Extension Board"
msgstr ""
-#, boost-format
-msgid "Split into %1% parts"
-msgstr ""
-
msgid "Repair finished"
msgstr ""
-msgid "Repair failed"
-msgstr ""
-
-msgid "Repair canceled"
-msgstr ""
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr ""
-msgid "Downloading new vendor profile(s): "
-msgstr ""
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] ""
+msgstr[1] ""
#, boost-format
msgid "Configuration package: %1% updated to %2%"
msgstr ""
-msgid "Failed to download vendor profile(s): "
-msgstr ""
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] ""
+msgstr[1] ""
msgid "Please check any unsaved changes before updating the configuration."
msgstr ""
@@ -11997,6 +12662,9 @@ msgstr ""
msgid "Open G-code file:"
msgstr ""
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr ""
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr ""
@@ -12017,9 +12685,47 @@ msgstr ""
msgid "Filament change extrusion role G-code"
msgstr ""
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr ""
+
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+
msgid "No object can be printed. It may be too small."
msgstr ""
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr ""
+
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr ""
+
+msgid "Invalid thumbnails value:"
+msgstr ""
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr ""
@@ -12057,6 +12763,9 @@ msgstr ""
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr ""
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr ""
+
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr ""
@@ -12072,6 +12781,16 @@ msgstr ""
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr ""
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr ""
+
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr ""
+
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
msgstr ""
@@ -12083,9 +12802,40 @@ msgstr ""
msgid "Seam placement may differ from expected."
msgstr ""
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr ""
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr ""
+
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr ""
+
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr ""
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr ""
+
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr ""
+
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr ""
+
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr ""
+
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr ""
+
msgid "undefined error"
msgstr ""
@@ -12179,6 +12929,43 @@ msgstr ""
msgid "write callback failed"
msgstr ""
+msgid "unknown error"
+msgstr ""
+
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr ""
+
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr ""
+
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr ""
+
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr ""
+
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr ""
+
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr ""
+
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr ""
@@ -12194,25 +12981,26 @@ msgstr ""
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr ""
-msgid " is too close to exclusion area, there may be collisions when printing."
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
msgstr ""
-msgid " is too close to clumping detection area, there may be collisions when printing."
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
msgstr ""
-msgid "Prime Tower"
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
msgstr ""
-msgid " is too close to others, and collisions may be caused.\n"
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
msgstr ""
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
msgstr ""
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
msgstr ""
-msgid " is partially outside the printable area, and it cannot be printed.\n"
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
msgstr ""
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
@@ -12227,6 +13015,46 @@ msgstr ""
msgid "No extrusions under current settings."
msgstr ""
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr ""
+
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr ""
+
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr ""
+
+msgid "Raft is not compatible with belt printer mode."
+msgstr ""
+
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr ""
+
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr ""
+
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr ""
+
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr ""
+
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr ""
+
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr ""
+
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr ""
+
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr ""
+
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr ""
@@ -12236,6 +13064,15 @@ msgstr ""
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr ""
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr ""
+
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr ""
+
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr ""
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr ""
@@ -12252,10 +13089,6 @@ msgstr ""
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr ""
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr ""
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr ""
@@ -12263,6 +13096,10 @@ msgstr ""
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr ""
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr ""
+
msgid "Variable layer height is not supported with Organic supports."
msgstr ""
@@ -12402,6 +13239,9 @@ msgstr ""
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr ""
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr ""
+
msgid "Generating skirt & brim"
msgstr ""
@@ -12417,6 +13257,15 @@ msgstr ""
msgid "Generating G-code"
msgstr ""
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr ""
+
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr ""
+
msgid "Processing of the filename_format template failed."
msgstr ""
@@ -12809,7 +13658,7 @@ msgid ""
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
msgid "Internal bridge flow ratio"
@@ -13037,7 +13886,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
msgid "mm/s or %"
@@ -13046,7 +13895,7 @@ msgstr ""
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
@@ -13055,12 +13904,39 @@ msgstr ""
msgid "This is the distance from the model to the outermost brim line."
msgstr ""
+msgid "Leading brim length"
+msgstr ""
+
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+
+msgid "Extra brim width"
+msgstr ""
+
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+
msgid "Brim type"
msgstr ""
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr ""
+msgid "Leading edge only"
+msgstr ""
+
msgid "Brim-object gap"
msgstr ""
@@ -13298,6 +14174,9 @@ msgid ""
"3. No filtering - creates internal bridges on every potential internal overhang. This option is useful for heavily slanted top surface models; however, in most cases, it creates too many unnecessary bridges."
msgstr ""
+msgid "Filter"
+msgstr ""
+
msgid "Limited filtering"
msgstr ""
@@ -13313,7 +14192,7 @@ msgstr ""
msgid "End G-code"
msgstr ""
-msgid "Add end G-Code when finishing the entire print."
+msgid "Add end G-code when finishing the entire print."
msgstr ""
msgid "Between Object G-code"
@@ -13465,7 +14344,7 @@ msgstr ""
msgid "Small perimeters"
msgstr ""
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
msgstr ""
msgid "Small perimeters threshold"
@@ -13477,7 +14356,7 @@ msgstr ""
msgid "Small support perimeters"
msgstr ""
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
msgstr ""
msgid "Small support perimeters threshold"
@@ -13494,7 +14373,7 @@ msgid ""
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
@@ -14053,9 +14932,6 @@ msgstr ""
msgid "money/kg"
msgstr ""
-msgid "Vendor"
-msgstr ""
-
msgid "Vendor of filament. For show only."
msgstr ""
@@ -14117,6 +14993,65 @@ msgstr ""
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr ""
+msgid "Adaptive density (experimental)"
+msgstr ""
+
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+
+msgid "Distance warp"
+msgstr ""
+
+msgid "Smooth blend"
+msgstr ""
+
+msgid "Stepped shells"
+msgstr ""
+
+msgid "Lobes"
+msgstr ""
+
+msgid "Normal Z"
+msgstr ""
+
+msgid "Normal Y"
+msgstr ""
+
+msgid "Normal X"
+msgstr ""
+
+msgid "Interior density"
+msgstr ""
+
+msgid "Density of the adaptive infill at the center of the object."
+msgstr ""
+
+msgid "Adaptive gradient"
+msgstr ""
+
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+
+msgid "Linear"
+msgstr ""
+
+msgid "Quadratic"
+msgstr ""
+
+msgid "Exponential"
+msgstr ""
+
msgid "Z-buckling bias optimization (experimental)"
msgstr ""
@@ -14262,13 +15197,13 @@ msgstr ""
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr ""
-msgid "This is the speed for the first layer except for solid infill sections."
+msgid "This is the speed for the walls and brim of the first layer."
msgstr ""
msgid "First layer infill"
msgstr ""
-msgid "This is the speed for solid infill parts of the first layer."
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
msgstr ""
msgid "First layer travel speed"
@@ -14670,6 +15605,9 @@ msgstr ""
msgid "What kind of G-code the printer is compatible with."
msgstr ""
+msgid "Marlin (legacy)"
+msgstr ""
+
msgid "Klipper"
msgstr ""
@@ -14884,14 +15822,14 @@ msgid "Infill/wall overlap"
msgstr ""
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
msgstr ""
msgid "Top/Bottom solid infill/wall overlap"
msgstr ""
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
msgstr ""
msgid "This is the speed for internal sparse infill."
@@ -14918,7 +15856,7 @@ msgstr ""
msgid "Interlocking depth of a segmented region"
msgstr ""
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
msgstr ""
msgid "Use beam interlocking"
@@ -15022,7 +15960,7 @@ msgstr ""
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
@@ -15093,16 +16031,16 @@ msgstr ""
msgid "Maximum speed E"
msgstr ""
-msgid "Maximum X speed"
+msgid "Maximum speed of the X axis"
msgstr ""
-msgid "Maximum Y speed"
+msgid "Maximum speed of the Y axis"
msgstr ""
-msgid "Maximum Z speed"
+msgid "Maximum speed of the Z axis"
msgstr ""
-msgid "Maximum E speed"
+msgid "Maximum speed of the E axis"
msgstr ""
msgid "Maximum acceleration X"
@@ -15549,7 +16487,7 @@ msgstr ""
msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capability."
msgstr ""
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr ""
msgid "Printer type"
@@ -15898,7 +16836,7 @@ msgstr ""
msgid "Use scarf joint for inner walls as well."
msgstr ""
-msgid "Role base wipe speed"
+msgid "Role based wipe speed"
msgstr ""
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -15976,8 +16914,7 @@ msgstr ""
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
msgid "Enabled"
@@ -16129,6 +17066,99 @@ msgstr ""
msgid "Use single nozzle to print multi filament."
msgstr ""
+msgid "IDEX/IQEX Printer"
+msgstr ""
+
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr ""
+
+msgid "Firmware-managed zones"
+msgstr ""
+
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr ""
+
+msgid "Gantry Count"
+msgstr ""
+
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr ""
+
+msgid "Tools per Gantry"
+msgstr ""
+
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr ""
+
+msgid "Tool 0 Position"
+msgstr ""
+
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr ""
+
+msgid "Nozzle Clearance X"
+msgstr ""
+
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr ""
+
+msgid "Nozzle Clearance Y"
+msgstr ""
+
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr ""
+
+msgid "Safety Margin"
+msgstr ""
+
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr ""
+
+msgid "Visualization Theme"
+msgstr ""
+
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr ""
+
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr ""
+
+msgid "Tritanopia (blue-yellow)"
+msgstr ""
+
+msgid "High Contrast"
+msgstr ""
+
+msgid "IDEX/IQEX Print Mode"
+msgstr ""
+
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr ""
+
+msgid "IDEX/IQEX head filament map"
+msgstr ""
+
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr ""
+
+msgid "IDEX/IQEX Mode Names"
+msgstr ""
+
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr ""
+
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr ""
+
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr ""
+
+msgid "IDEX/IQEX Mode G-codes"
+msgstr ""
+
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr ""
+
msgid "Manual Filament Change"
msgstr ""
@@ -16464,6 +17494,129 @@ msgstr ""
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr ""
+msgid "Build plate tilt X"
+msgstr ""
+
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr ""
+
+msgid "Build plate tilt Y"
+msgstr ""
+
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr ""
+
+msgid "Enable belt printing"
+msgstr ""
+
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr ""
+
+msgid "Infinite Y axis"
+msgstr ""
+
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr ""
+
+msgid "Belt tilt axis"
+msgstr ""
+
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr ""
+
+msgid "X"
+msgstr ""
+
+msgid "Y"
+msgstr ""
+
+msgid "Z"
+msgstr ""
+
+msgid "Belt tilt angle"
+msgstr ""
+
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr ""
+
+msgid "°"
+msgstr ""
+
+msgid "Decouple machine-frame tilt"
+msgstr ""
+
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr ""
+
+msgid "Machine-frame tilt angle"
+msgstr ""
+
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr ""
+
+msgid "+X"
+msgstr ""
+
+msgid "+Y"
+msgstr ""
+
+msgid "+Z"
+msgstr ""
+
+msgid "-X"
+msgstr ""
+
+msgid "-Y"
+msgstr ""
+
+msgid "-Z"
+msgstr ""
+
+msgid "Rev X"
+msgstr ""
+
+msgid "Rev Y"
+msgstr ""
+
+msgid "Rev Z"
+msgstr ""
+
+msgid "G-code remap X"
+msgstr ""
+
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr ""
+
+msgid "G-code remap Y"
+msgstr ""
+
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr ""
+
+msgid "G-code remap Z"
+msgstr ""
+
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr ""
+
+msgid "Support Floor Z offset"
+msgstr ""
+
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr ""
+
+msgid "Enable belt purge tower"
+msgstr ""
+
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr ""
+
+msgid "Belt purge tower width"
+msgstr ""
+
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr ""
+
msgid "Tree support branch angle"
msgstr ""
@@ -16627,8 +17780,7 @@ msgstr ""
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
msgid "Center surface pattern on"
@@ -16742,13 +17894,13 @@ msgstr ""
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
msgid "Wall type"
@@ -16756,9 +17908,9 @@ msgstr ""
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
msgid "Rectangle"
@@ -16827,6 +17979,12 @@ msgstr ""
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr ""
+msgid "Belt purge tower object"
+msgstr ""
+
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr ""
+
msgid "Maximal bridging distance"
msgstr ""
@@ -16842,7 +18000,7 @@ msgstr ""
msgid "Extra flow for purging"
msgstr ""
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
msgstr ""
msgid "Idle temperature"
@@ -16953,9 +18111,9 @@ msgid "Minimum wall length"
msgstr ""
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
msgid "Maximum wall resolution"
@@ -16967,7 +18125,7 @@ msgstr ""
msgid "Maximum wall deviation"
msgstr ""
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
msgstr ""
msgid "First layer minimum wall width"
@@ -17057,7 +18215,9 @@ msgstr ""
msgid "too large line width "
msgstr ""
-msgid " not in range "
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
msgstr ""
msgid "This exports the project as a 3MF file."
@@ -17201,6 +18361,12 @@ msgstr ""
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr ""
+msgid "Repair"
+msgstr ""
+
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr ""
+
msgid "Rotation angle around the Z axis in degrees."
msgstr ""
@@ -17303,6 +18469,12 @@ msgstr ""
msgid "This is the output directory for exported files."
msgstr ""
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr ""
@@ -17465,6 +18637,42 @@ msgstr ""
msgid "Are the extra multi-material priming regions used in this print?"
msgstr ""
+msgid "Initial no support extruder"
+msgstr ""
+
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr ""
+
+msgid "In head wrap detect zone"
+msgstr ""
+
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr ""
+
+msgid "Current bed type"
+msgstr ""
+
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr ""
+
+msgid "IDEX/IQEX active mode"
+msgstr ""
+
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr ""
+
+msgid "IDEX/IQEX active mode index"
+msgstr ""
+
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr ""
+
+msgid "IDEX/IQEX active mode G-code"
+msgstr ""
+
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr ""
+
msgid "Volume per extruder"
msgstr ""
@@ -17599,6 +18807,15 @@ msgstr ""
msgid "Source filename of the first object, without extension."
msgstr ""
+msgid "Full input filename"
+msgstr ""
+
+msgid "Source filename of the first object."
+msgstr ""
+
+msgid "Name of the plate sliced."
+msgstr ""
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr ""
@@ -17629,6 +18846,45 @@ msgstr ""
msgid "Size of the print bed bounding box"
msgstr ""
+msgid "First layer center without wipe tower"
+msgstr ""
+
+msgid "Height of the first layer."
+msgstr ""
+
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr ""
+
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr ""
+
+msgid "First layer bed temperature (initial extruder)"
+msgstr ""
+
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr ""
+
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr ""
+
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr ""
+
+msgid "Overall chamber temperature"
+msgstr ""
+
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr ""
+
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr ""
+
+msgid "First layer temperature"
+msgstr ""
+
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr ""
+
msgid "Timestamp"
msgstr ""
@@ -17674,7 +18930,7 @@ msgstr ""
msgid "Layer number"
msgstr ""
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
msgstr ""
msgid "Layer Z"
@@ -17695,6 +18951,188 @@ msgstr ""
msgid "The current extruder ID. The same as current_extruder."
msgstr ""
+msgid "Previous extruder"
+msgstr ""
+
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr ""
+
+msgid "Next extruder"
+msgstr ""
+
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr ""
+
+msgid "Relative e-axis"
+msgstr ""
+
+msgid "Indicates if relative positioning is being used."
+msgstr ""
+
+msgid "Toolchange count"
+msgstr ""
+
+msgid "The number of toolchanges throughout the print."
+msgstr ""
+
+msgid "Old retract length"
+msgstr ""
+
+msgid "The retraction length of the previous filament."
+msgstr ""
+
+msgid "New retract length"
+msgstr ""
+
+msgid "The retraction length of the new filament."
+msgstr ""
+
+msgid "Old retract length toolchange"
+msgstr ""
+
+msgid "The toolchange retraction length of the previous filament."
+msgstr ""
+
+msgid "New retract length toolchange"
+msgstr ""
+
+msgid "The toolchange retraction length of the new filament."
+msgstr ""
+
+msgid "Old filament temp"
+msgstr ""
+
+msgid "The old filament temp."
+msgstr ""
+
+msgid "New filament temp"
+msgstr ""
+
+msgid "The new filament temp."
+msgstr ""
+
+msgid "X after toolchange"
+msgstr ""
+
+msgid "The X pos after toolchange."
+msgstr ""
+
+msgid "Y after toolchange"
+msgstr ""
+
+msgid "The Y pos after toolchange."
+msgstr ""
+
+msgid "Z after toolchange"
+msgstr ""
+
+msgid "The Z pos after toolchange."
+msgstr ""
+
+msgid "First flush volume"
+msgstr ""
+
+msgid "The first flush volume."
+msgstr ""
+
+msgid "Second flush volume"
+msgstr ""
+
+msgid "The second flush volume."
+msgstr ""
+
+msgid "Old filament e feedrate"
+msgstr ""
+
+msgid "The old filament extruder feedrate."
+msgstr ""
+
+msgid "New filament e feedrate"
+msgstr ""
+
+msgid "The new filament extruder feedrate."
+msgstr ""
+
+msgid "Travel point 1 X"
+msgstr ""
+
+msgid "The travel point 1 X."
+msgstr ""
+
+msgid "Travel point 1 Y"
+msgstr ""
+
+msgid "The travel point 1 Y."
+msgstr ""
+
+msgid "Travel point 2 X"
+msgstr ""
+
+msgid "The travel point 2 X."
+msgstr ""
+
+msgid "Travel point 2 Y"
+msgstr ""
+
+msgid "The travel point 2 Y."
+msgstr ""
+
+msgid "Travel point 3 X"
+msgstr ""
+
+msgid "The travel point 3 X."
+msgstr ""
+
+msgid "Travel point 3 Y"
+msgstr ""
+
+msgid "The travel point 3 Y."
+msgstr ""
+
+msgid "Flush Length 1"
+msgstr ""
+
+msgid "The first flush length."
+msgstr ""
+
+msgid "Flush Length 2"
+msgstr ""
+
+msgid "The second flush length."
+msgstr ""
+
+msgid "Flush Length 3"
+msgstr ""
+
+msgid "The third flush length."
+msgstr ""
+
+msgid "Flush Length 4"
+msgstr ""
+
+msgid "The fourth flush length."
+msgstr ""
+
+msgid "Extrusion role"
+msgstr ""
+
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+
+msgid "Last extrusion role"
+msgstr ""
+
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+
msgid "Error in zip archive"
msgstr ""
@@ -17707,23 +19145,27 @@ msgstr ""
msgid "Generating infill toolpath"
msgstr ""
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr ""
+
msgid "Detect overhangs for auto-lift"
msgstr ""
msgid "Checking support necessity"
msgstr ""
-msgid "floating regions"
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
msgstr ""
-msgid "floating cantilever"
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
msgstr ""
-msgid "large overhangs"
-msgstr ""
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
msgstr ""
msgid "Generating support"
@@ -17735,7 +19177,7 @@ msgstr ""
msgid "Slicing mesh"
msgstr ""
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
msgstr ""
msgid ""
@@ -17751,6 +19193,301 @@ msgstr ""
msgid "Object name"
msgstr ""
+msgid "Cannot apply unary minus operator."
+msgstr ""
+
+msgid "Cannot convert to integer."
+msgstr ""
+
+msgid "Cannot round a non-numeric value."
+msgstr ""
+
+msgid "Cannot floor a non-numeric value."
+msgstr ""
+
+msgid "Cannot ceil a non-numeric value."
+msgstr ""
+
+msgid "Cannot apply a not operator."
+msgstr ""
+
+msgid "Cannot add non-numeric types."
+msgstr ""
+
+msgid "Cannot subtract non-numeric types."
+msgstr ""
+
+msgid "Cannot multiply with non-numeric type."
+msgstr ""
+
+msgid "Cannot divide a non-numeric type."
+msgstr ""
+
+msgid "Cannot divide with a non-numeric type."
+msgstr ""
+
+msgid "Division by zero"
+msgstr ""
+
+msgid "Not a boolean expression"
+msgstr ""
+
+msgid "Cannot compare the types."
+msgstr ""
+
+msgid "Not a numeric type."
+msgstr ""
+
+msgid "digits: second parameter must be integer"
+msgstr ""
+
+msgid "digits: third parameter must be integer"
+msgstr ""
+
+msgid "Left hand side of a regex match must be a string."
+msgstr ""
+
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr ""
+
+msgid "regex_replace() first parameter must be a string."
+msgstr ""
+
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr ""
+
+msgid "one_of(): Pattern has to be a string value"
+msgstr ""
+
+msgid "Regular expression compilation failed"
+msgstr ""
+
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr ""
+
+msgid "Trying to index a scalar variable"
+msgstr ""
+
+msgid "Invalid vector index"
+msgstr ""
+
+msgid "Variable does not exist (in an inactive branch)"
+msgstr ""
+
+msgid "Variable does not exist"
+msgstr ""
+
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr ""
+
+msgid "Indexing an empty vector variable"
+msgstr ""
+
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr ""
+
+msgid "Indexing variable has to be integer"
+msgstr ""
+
+msgid "Negative vector index"
+msgstr ""
+
+msgid "Not a variable name"
+msgstr ""
+
+msgid "Not a variable name (in an inactive branch)"
+msgstr ""
+
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr ""
+
+msgid "Unsupported scalar variable type"
+msgstr ""
+
+msgid "Referencing a vector variable when scalar is expected"
+msgstr ""
+
+msgid "Unsupported vector variable type"
+msgstr ""
+
+msgid "Cannot modify a read-only variable"
+msgstr ""
+
+msgid "Right side is not a numeric expression"
+msgstr ""
+
+msgid "Expected number of elements to fill a vector with."
+msgstr ""
+
+msgid "Negative number of elements specified."
+msgstr ""
+
+msgid "Right side is not a boolean expression"
+msgstr ""
+
+msgid "Unsupported output scalar variable type"
+msgstr ""
+
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr ""
+
+msgid "Index out of range"
+msgstr ""
+
+msgid "Unsupported output vector variable type"
+msgstr ""
+
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr ""
+
+msgid "Symbol is already defined as system output variable"
+msgstr ""
+
+msgid "Global variables are not available in this context"
+msgstr ""
+
+msgid "Variable name already defined in local scope"
+msgstr ""
+
+msgid "Variable name already defined in global scope"
+msgstr ""
+
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr ""
+
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr ""
+
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr ""
+
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr ""
+
+msgid "Cannot assign scalar to a vector"
+msgstr ""
+
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr ""
+
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr ""
+
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr ""
+
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr ""
+
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr ""
+
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr ""
+
+msgid "Duplicating this type of vector variable is not supported"
+msgstr ""
+
+msgid "parameter of empty() is not a vector variable"
+msgstr ""
+
+msgid "parameter of size() is not a vector variable"
+msgstr ""
+
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr ""
+
+msgid "Random number generator not available in this context."
+msgstr ""
+
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr ""
+
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr ""
+
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr ""
+
+msgid "Interpolation value must be a number."
+msgstr ""
+
+msgid "X value of a table point must be a number."
+msgstr ""
+
+msgid "Y value of a table point must be a number."
+msgstr ""
+
+msgid "X coordinates of the table must be increasing"
+msgstr ""
+
+msgid "Interpolation value is outside the table range"
+msgstr ""
+
+msgid "Unknown syntax error"
+msgstr ""
+
+msgid "Invalid text."
+msgstr ""
+
+msgid "Invalid text block."
+msgstr ""
+
+msgid "Invalid macro."
+msgstr ""
+
+msgid "Not an {if}{else}{endif} macro."
+msgstr ""
+
+msgid "Not a {switch} macro."
+msgstr ""
+
+msgid "Expecting a legacy variable expansion format"
+msgstr ""
+
+msgid "Expecting an identifier."
+msgstr ""
+
+msgid "Expecting a conditional expression."
+msgstr ""
+
+msgid "Expecting a boolean expression."
+msgstr ""
+
+msgid "Expecting an expression."
+msgstr ""
+
+msgid "Expecting a closing brace or an optional parameter."
+msgstr ""
+
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr ""
+
+msgid "Expecting a variable reference."
+msgstr ""
+
+msgid "Expecting a variable name."
+msgstr ""
+
+msgid "Expecting a regular expression."
+msgstr ""
+
+msgid "Invalid utf8 sequence"
+msgstr ""
+
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr ""
+
+msgid "Invalid escape sequence"
+msgstr ""
+
msgid "Support: generate contact points"
msgstr ""
@@ -17766,6 +19503,9 @@ msgstr ""
msgid "The file format is incompatible and cannot be parsed."
msgstr ""
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr ""
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr ""
@@ -17814,9 +19554,6 @@ msgstr ""
msgid "Calibrate"
msgstr ""
-msgid "Finish"
-msgstr ""
-
msgid "How can I use calibration results?"
msgstr ""
@@ -17901,8 +19638,10 @@ msgid ""
msgstr ""
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr ""
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] ""
+msgstr[1] ""
msgid "Connecting to printer..."
msgstr ""
@@ -18100,8 +19839,10 @@ msgstr ""
msgid "Please connect the printer first before synchronizing."
msgstr ""
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr ""
+
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
msgstr ""
msgid "AMS and nozzle information are synced"
@@ -18162,6 +19903,10 @@ msgstr ""
msgid "To Volumetric Speed"
msgstr ""
+msgctxt "Increment"
+msgid "Step"
+msgstr ""
+
msgid "Are you sure you want to cancel this print?"
msgstr ""
@@ -18188,8 +19933,10 @@ msgid "Action"
msgstr ""
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr ""
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] ""
+msgstr[1] ""
msgid "Edit Flow Dynamics Calibration"
msgstr ""
@@ -18303,10 +20050,10 @@ msgid ""
"Please verify the inputs."
msgstr ""
-msgid "Temperature calibration"
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
msgstr ""
-msgid "Filament type"
+msgid "Temperature calibration"
msgstr ""
msgid "PLA"
@@ -18330,6 +20077,17 @@ msgstr ""
msgid "PET-CF"
msgstr ""
+msgid "Test model"
+msgstr ""
+
+msgctxt "Test model"
+msgid "Standard"
+msgstr ""
+
+msgctxt "Test model"
+msgid "Overhang"
+msgstr ""
+
msgid "Start temp: "
msgstr ""
@@ -18422,9 +20180,6 @@ msgstr ""
msgid "End retraction length: "
msgstr ""
-msgid "Test model"
-msgstr ""
-
msgid "Ringing Tower"
msgstr ""
@@ -18450,7 +20205,10 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr ""
-msgid "Start / End"
+msgid "X Start / End: "
+msgstr ""
+
+msgid "Y Start / End: "
msgstr ""
msgid "Frequency settings"
@@ -18484,7 +20242,10 @@ msgstr ""
msgid "Frequency: "
msgstr ""
-msgid "Damp"
+msgid "Frequency X / Y: "
+msgstr ""
+
+msgid "Damp (Start / End): "
msgstr ""
msgid "RepRap firmware uses the same frequency for both axes."
@@ -18600,8 +20361,10 @@ msgid "Enable IFS"
msgstr ""
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr ""
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] ""
+msgstr[1] ""
msgid "This printer does not report a material station."
msgstr ""
@@ -18718,7 +20481,8 @@ msgstr ""
msgid "Subtract with"
msgstr ""
-msgid "selected"
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
msgstr ""
msgid "Part 1"
@@ -18828,9 +20592,6 @@ msgstr ""
msgid "Filament Preset"
msgstr ""
-msgid "Create"
-msgstr ""
-
msgid "Vendor is not selected; please reselect vendor."
msgstr ""
@@ -19106,6 +20867,9 @@ msgid ""
"Can be shared with others."
msgstr ""
+msgid "Include custom bed texture and model"
+msgstr ""
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -19151,14 +20915,6 @@ msgstr ""
msgid "Presets inherited by other presets cannot be deleted"
msgstr ""
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Delete Preset"
-msgstr ""
-
msgid "Are you sure to delete the selected preset?"
msgstr ""
@@ -19229,10 +20985,12 @@ msgstr ""
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr ""
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr ""
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -19244,6 +21002,12 @@ msgid ""
"Please click the Sync button above and restart the calibration."
msgstr ""
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr ""
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -19311,6 +21075,10 @@ msgstr ""
msgid "Click Scan to look for K-series printers on your network."
msgstr ""
+msgctxt "Printer model"
+msgid "Model"
+msgstr ""
+
msgid "Scan"
msgstr ""
@@ -19327,8 +21095,10 @@ msgid "No K-series printers found. Make sure the printer is on the same network
msgstr ""
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr ""
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] ""
+msgstr[1] ""
msgid "Active"
msgstr ""
@@ -19417,8 +21187,12 @@ msgstr ""
msgid "Failed to launch a new instance."
msgstr ""
-msgid "log(s)"
-msgstr ""
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] ""
+msgstr[1] ""
msgid "Choose where to save the exported JSON file"
msgstr ""
@@ -19458,15 +21232,31 @@ msgstr ""
msgid "Authorizing..."
msgstr ""
-msgid "Error. Can't get API token for authorization"
+msgid "Maximum login retries exceeded"
+msgstr ""
+
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
msgstr ""
msgid "Could not parse server response."
msgstr ""
+msgid "Error. Can't get API token for authorization"
+msgstr ""
+
msgid "Error saving session to file"
msgstr ""
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr ""
+
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr ""
+
msgid "Error session check"
msgstr ""
@@ -19501,6 +21291,34 @@ msgstr ""
msgid "Could not get resources to create a new connection"
msgstr ""
+msgid "Connection to UltiMaker works correctly."
+msgstr ""
+
+msgid "Could not connect to UltiMaker"
+msgstr ""
+
+msgid "Error generating credentials! See the log for details."
+msgstr ""
+
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr ""
+
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr ""
+
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr ""
+
+msgid "Invalid authentication credentials"
+msgstr ""
+
+msgid "Error: No authentication credentials found!"
+msgstr ""
+
msgid "Upload not enabled on FlashAir card."
msgstr ""
@@ -19606,6 +21424,12 @@ msgid ""
"Error: \"%2%\""
msgstr ""
+msgid "Connection to ESP3D is working correctly."
+msgstr ""
+
+msgid "Could not connect to ESP3D"
+msgstr ""
+
msgid "No AMS"
msgstr ""
@@ -19677,6 +21501,10 @@ msgstr ""
msgid "No task"
msgstr ""
+msgctxt "Verb"
+msgid "View"
+msgstr ""
+
msgid "Edit Printers"
msgstr ""
@@ -19717,6 +21545,10 @@ msgstr ""
msgid "Printing Pause"
msgstr ""
+msgctxt "Device status"
+msgid "Prepare"
+msgstr ""
+
msgid "Pending"
msgstr ""
@@ -19747,9 +21579,6 @@ msgstr ""
msgid "File Saving"
msgstr ""
-msgid "Don't remind me again"
-msgstr ""
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr ""
@@ -19774,14 +21603,19 @@ msgstr ""
msgid "Global settings"
msgstr ""
-msgid "Video tutorial"
-msgstr ""
-
msgid "(Sync with printer)"
msgstr ""
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr ""
+
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr ""
+
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr ""
+
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
msgstr ""
msgid "We will slice according to this grouping method:"
@@ -19821,15 +21655,20 @@ msgstr ""
msgid "Internal error"
msgstr ""
-msgid "Unknown error"
-msgstr ""
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr ""
msgid "Flashforge returned an invalid JSON response."
msgstr ""
+msgid "Request failed"
+msgstr ""
+
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr ""
+
msgid "No Flashforge printers were discovered on the local network."
msgstr ""
@@ -19975,8 +21814,11 @@ msgstr ""
msgid "Set the brim type of this object to \"painted\""
msgstr ""
-msgid "invalid brim ears"
-msgstr ""
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] ""
+msgstr[1] ""
msgid "Brim Ears"
msgstr ""
@@ -20002,6 +21844,7 @@ msgstr ""
msgid "Failed to create the temporary folder."
msgstr ""
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr ""
@@ -20022,8 +21865,10 @@ msgid "The printing job will be stopped. Continue?"
msgstr ""
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr ""
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] ""
+msgstr[1] ""
msgid "This action cannot be undone. Continue?"
msgstr ""
@@ -20165,6 +22010,33 @@ msgstr ""
msgid "PresetBundle"
msgstr ""
+msgid "Export Presets"
+msgstr ""
+
+msgid "Show in folder"
+msgstr ""
+
+msgid "Delete bundle"
+msgstr ""
+
+msgid "Unsubscribe bundle"
+msgstr ""
+
+msgid "Update available"
+msgstr ""
+
+msgid "Unauthorized bundle"
+msgstr ""
+
+msgid "Open this bundle in your browser"
+msgstr ""
+
+msgid "Subscribed"
+msgstr ""
+
+msgid "Local"
+msgstr ""
+
msgid "Bundle folder does not exist."
msgstr ""
@@ -20198,6 +22070,12 @@ msgstr ""
msgid "ExportPresetBundle"
msgstr ""
+msgid "Export to OrcaCloud"
+msgstr ""
+
+msgid "Export to folder"
+msgstr ""
+
msgid "Save preset bundle"
msgstr ""
@@ -20273,6 +22151,10 @@ msgstr ""
msgid "Filament Drying Settings"
msgstr ""
+msgctxt "Hours unit"
+msgid "H"
+msgstr ""
+
msgid "Stopping"
msgstr ""
@@ -20408,6 +22290,10 @@ msgstr ""
msgid "Starting: Checking air vent"
msgstr ""
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr ""
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr ""
@@ -20423,6 +22309,81 @@ msgstr ""
msgid "The filament model is unknown. A random filament preset will be used."
msgstr ""
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr ""
+
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr ""
+
+msgid "mixed filament definition: filament slot limit reached"
+msgstr ""
+
+msgid "filament slot limit reached"
+msgstr ""
+
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr ""
+
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr ""
+
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr ""
+
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr ""
+
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr ""
+
+msgid "needs at least two components"
+msgstr ""
+
+msgid "components reference missing slots"
+msgstr ""
+
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr ""
+
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr ""
+
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr ""
+
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+
msgid "Hide reference planes and axes"
msgstr ""
@@ -20659,6 +22620,10 @@ msgstr ""
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr ""
+msgctxt "Design"
+msgid "Plane"
+msgstr ""
+
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr ""
@@ -20709,6 +22674,10 @@ msgstr ""
msgid "Transform needs a body — add or import one first"
msgstr ""
+msgctxt "Design"
+msgid "Mirror"
+msgstr ""
+
msgid "Reflect a body about a plane"
msgstr ""
@@ -20779,6 +22748,10 @@ msgstr ""
msgid "Hole / thread"
msgstr ""
+msgctxt "Design"
+msgid "Hole"
+msgstr ""
+
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr ""
@@ -20812,6 +22785,10 @@ msgstr ""
msgid "Line / polyline"
msgstr ""
+msgctxt "Design"
+msgid "Line"
+msgstr ""
+
msgid "Click start, then end — then set the exact length"
msgstr ""
@@ -20914,6 +22891,9 @@ msgstr ""
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr ""
+msgid "Point"
+msgstr ""
+
msgid "Click to place a point"
msgstr ""
@@ -21002,14 +22982,16 @@ msgid "Pick entities, drag the sweep handle, click the count; click empty to app
msgstr ""
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr ""
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] ""
+msgstr[1] ""
-msgid "circumscribed"
-msgstr ""
-
-msgid "inscribed"
-msgstr ""
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] ""
+msgstr[1] ""
msgid "Polygon"
msgstr ""
@@ -21274,6 +23256,10 @@ msgstr ""
msgid "Thread plane"
msgstr ""
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr ""
+
msgid "Pitch"
msgstr ""
@@ -21415,6 +23401,9 @@ msgstr ""
msgid "(pick a side face)"
msgstr ""
+msgid "Face"
+msgstr ""
+
msgid "Draft"
msgstr ""
@@ -21699,8 +23688,10 @@ msgid "Sketch updated"
msgstr ""
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr ""
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] ""
+msgstr[1] ""
#, c-format, boost-format
msgid "Length %.2f mm, angle %.1f°"
@@ -21808,8 +23799,10 @@ msgid "Editing: Sketch %d · N = look normal to the plane · Confirm or
msgstr ""
#, c-format
-msgid "OK — %zu triangles"
-msgstr ""
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] ""
+msgstr[1] ""
msgid "Edit the text — Enter applies, Esc keeps it as it was"
msgstr ""
@@ -21875,10 +23868,15 @@ msgstr ""
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+msgstr[1] ""
msgid "Large mesh"
msgstr ""
@@ -21898,7 +23896,7 @@ msgid "Mesh import failed: %s"
msgstr ""
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
msgstr ""
#, c-format, boost-format
@@ -21912,7 +23910,9 @@ msgstr ""
msgid "%s added to the sketch — Confirm to commit it"
msgstr ""
-msgid " — drag to place/size, then Confirm"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
msgstr ""
msgid "Insert canceled"
@@ -22071,9 +24071,12 @@ msgstr ""
msgid "a geometry operation failed"
msgstr ""
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr ""
+msgid_plural " · %d picked"
+msgstr[0] ""
+msgstr[1] ""
#, c-format, boost-format
msgid "%d selected · Del removes it · Shift-click adds · double-click takes the whole loop"
@@ -22086,7 +24089,9 @@ msgstr ""
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr ""
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] ""
+msgstr[1] ""
msgid "Constrain — click one or two entities, then choose a constraint"
msgstr ""
@@ -22282,7 +24287,9 @@ msgstr ""
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr ""
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] ""
+msgstr[1] ""
msgid "Move — click the entities to move"
msgstr ""
@@ -22377,8 +24384,10 @@ msgid "Sketch point"
msgstr ""
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr ""
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] ""
+msgstr[1] ""
msgid "select something first"
msgstr ""
@@ -22785,7 +24794,9 @@ msgstr ""
msgid "Applied edit"
msgstr ""
-msgid " — type a value, press Enter (or Confirm)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
msgstr ""
msgid "Pick a segment in the viewport first"
@@ -22841,9 +24852,19 @@ msgstr ""
msgid "Nothing to commit — add a feature first"
msgstr ""
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr ""
+
msgid "All bodies hidden — show one before committing"
msgstr ""
+msgid "Design Assembly"
+msgstr ""
+
+msgid "Design Body"
+msgstr ""
+
#, c-format
msgid "%zu edge"
msgid_plural "%zu edges"
@@ -22894,8 +24915,10 @@ msgid "Invalid: %s"
msgstr ""
#, c-format
-msgid "Preview — %zu triangles"
-msgstr ""
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] ""
+msgstr[1] ""
#, c-format, boost-format
msgid "Body %d — moved (%.1f, %.1f, %.1f) mm, rotated %.1f°"
@@ -22974,8 +24997,10 @@ msgid "That dimension cannot be satisfied — the sketch is over-constrained"
msgstr ""
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr ""
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] ""
+msgstr[1] ""
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
msgstr ""
@@ -23019,8 +25044,10 @@ msgid "Chamfer: the distance overruns a leg, or the two lines do not meet at a c
msgstr ""
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr ""
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] ""
+msgstr[1] ""
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
msgstr ""
@@ -23035,8 +25062,10 @@ msgid "The number of copies must be a whole number, 2 or more"
msgstr ""
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr ""
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] ""
+msgstr[1] ""
msgid "The array copies are unconstrained — the solver refused every binding"
msgstr ""
@@ -23153,10 +25182,6 @@ msgstr ""
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr ""
-msgctxt "Design"
-msgid "Hole"
-msgstr ""
-
msgctxt "Design"
msgid "Thread"
msgstr ""
@@ -23222,10 +25247,6 @@ msgstr ""
msgid "Repeat the body around an axis — set the count and sweep"
msgstr ""
-msgctxt "Design"
-msgid "Mirror"
-msgstr ""
-
msgctxt "Design"
msgid "Pattern on Curve"
msgstr ""
@@ -23254,10 +25275,6 @@ msgstr ""
msgid "Align the body to a picked face or plane"
msgstr ""
-msgctxt "Design"
-msgid "Plane"
-msgstr ""
-
msgctxt "Design"
msgid "Axis"
msgstr ""
@@ -23340,10 +25357,6 @@ msgstr ""
msgid "Delete this whole body — removes the feature it was made from"
msgstr ""
-msgctxt "Design"
-msgid "Line"
-msgstr ""
-
msgctxt "Design"
msgid "Polyline"
msgstr ""
@@ -23590,165 +25603,6 @@ msgstr ""
msgid "Size: %.1f × %.1f mm"
msgstr ""
-msgid "Primitive"
-msgstr ""
-
-msgid "Empty mesh generated"
-msgstr ""
-
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr ""
-
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr ""
-
-msgid "Width (X)"
-msgstr ""
-
-msgid "Depth (Y)"
-msgstr ""
-
-msgid "Height (Z)"
-msgstr ""
-
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr ""
-
-msgid "Top R"
-msgstr ""
-
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr ""
-
-msgid "Minor R"
-msgstr ""
-
-msgid "All edges"
-msgstr ""
-
-msgid "Top edges"
-msgstr ""
-
-msgid "Bottom edges"
-msgstr ""
-
-msgid "Lateral edges"
-msgstr ""
-
-msgid "Mesh resolution"
-msgstr ""
-
-msgid "Add Shape"
-msgstr ""
-
-msgid "No outer profile"
-msgstr ""
-
-msgid "Failed to make outer face"
-msgstr ""
-
-msgid "Failed to build face with holes"
-msgstr ""
-
-msgid "Revolve failed"
-msgstr ""
-
-msgid "Profile"
-msgstr ""
-
-msgid "Start new profile (for holes)"
-msgstr ""
-
-msgid "Segments"
-msgstr ""
-
-msgid "Sides"
-msgstr ""
-
-msgid "Click on canvas to draw"
-msgstr ""
-
-msgid "Snap to grid"
-msgstr ""
-
-msgid "Grid step"
-msgstr ""
-
-msgid "Outer"
-msgstr ""
-
-msgid "closed"
-msgstr ""
-
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr ""
-
-msgid "XY (Top)"
-msgstr ""
-
-msgid "XZ (Front)"
-msgstr ""
-
-msgid "YZ (Side)"
-msgstr ""
-
-msgid "Revolve deg"
-msgstr ""
-
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr ""
-
-msgid "Pocket (cut)"
-msgstr ""
-
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] ""
-msgstr[1] ""
-
-msgid "Draw a closed profile to enable"
-msgstr ""
-
-msgid "Clear all"
-msgstr ""
-
-msgid "Empty result"
-msgstr ""
-
-#, boost-format
-msgid "Extrude: %1%"
-msgstr ""
-
-#, boost-format
-msgid "Revolve: %1%"
-msgstr ""
-
-msgid "No object selected"
-msgstr ""
-
-msgid "Face failed"
-msgstr ""
-
-msgid "Face with holes failed"
-msgstr ""
-
-msgid "Tool mesh empty"
-msgstr ""
-
-msgid "Pocket added (negative volume)"
-msgstr ""
-
-#, boost-format
-msgid "Pocket: %1%"
-msgstr ""
-
msgctxt "Keyboard Shortcut"
msgid "Ins"
msgstr ""
@@ -23857,6 +25711,9 @@ msgstr ""
msgid "Gizmo brim ears"
msgstr ""
+msgid "Gizmo texture displacement painting"
+msgstr ""
+
msgid "Vertical slider - Move active thumb Up"
msgstr ""
@@ -24051,6 +25908,11 @@ msgstr ""
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr ""
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr ""
+
msgid "two points are coincident"
msgstr ""
@@ -24072,9 +25934,26 @@ msgstr ""
msgid "zero-length direction"
msgstr ""
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr ""
+
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr ""
+
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr ""
+
msgid "feature is used by a later feature"
msgstr ""
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr ""
+
msgid "sketch entities do not form a closed loop"
msgstr ""
@@ -24082,8 +25961,15 @@ msgstr ""
msgid "Open at (%.3f, %.3f)"
msgstr ""
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
+msgid "Open ends not shown: %1%"
+msgstr ""
+
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr ""
+
+msgid "revolve: the axis line has no length"
msgstr ""
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -24196,6 +26082,24 @@ msgstr ""
msgid "hole cut failed"
msgstr ""
+msgid "thread: the diameter must be at least 1 mm"
+msgstr ""
+
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr ""
+
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr ""
+
+msgid "thread: the depth is too large for this diameter"
+msgstr ""
+
+msgid "thread: the length must be more than half a pitch"
+msgstr ""
+
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr ""
+
msgid "internal thread needs a body"
msgstr ""
@@ -24241,6 +26145,18 @@ msgstr ""
msgid "delete_face produced no geometry"
msgstr ""
+msgid "boolean: no target body"
+msgstr ""
+
+msgid "boolean: no tool body — pick a second body"
+msgstr ""
+
+msgid "boolean: the target and the tool are the same body"
+msgstr ""
+
+msgid "boolean: a body has no geometry"
+msgstr ""
+
msgid "boolean operation failed"
msgstr ""
@@ -24490,6 +26406,9 @@ msgstr ""
msgid "Auxiliaries"
msgstr ""
+msgid "Belt Purge Tower"
+msgstr ""
+
msgid "Project Filament List"
msgstr ""
@@ -24515,8 +26434,17 @@ msgid "At least two filaments of the same material type are required for decompo
msgstr ""
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr ""
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] ""
+msgstr[1] ""
+
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] ""
+msgstr[1] ""
msgid "Cyan"
msgstr ""
@@ -24539,11 +26467,1244 @@ msgstr ""
msgid "Blue"
msgstr ""
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr ""
+
msgid ", "
msgstr ""
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+msgid "Opacity"
+msgstr ""
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
msgstr ""
msgid "Alternate nozzles:"
@@ -24618,9 +27779,6 @@ msgstr ""
msgid "Custom Printer Setup"
msgstr ""
-msgid "Custom Printer"
-msgstr ""
-
msgid "Define a custom printer profile"
msgstr ""
@@ -24824,6 +27982,12 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr ""
+msgid "Type an exact value into a slider"
+msgstr ""
+
+msgid "Edit icon at a slider's right end"
+msgstr ""
+
msgid "Texture displacement"
msgstr ""
@@ -24925,6 +28089,39 @@ msgstr ""
msgid "Remove texture"
msgstr ""
+msgid "Adjust image"
+msgstr ""
+
+msgid "Brightness"
+msgstr ""
+
+msgid "Contrast"
+msgstr ""
+
+msgid "Sharpness"
+msgstr ""
+
+msgid "Blur"
+msgstr ""
+
+msgid "Hue"
+msgstr ""
+
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr ""
+
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr ""
+
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr ""
+
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr ""
+
+msgid "Save as copy"
+msgstr ""
+
msgid "Remove texture displacement layer"
msgstr ""
@@ -25027,6 +28224,13 @@ msgstr ""
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr ""
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr ""
+
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr ""
+
msgid "Pro"
msgstr ""
@@ -25106,7 +28310,7 @@ msgstr ""
msgid "Click a triangle to paint it"
msgstr ""
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
msgstr ""
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -25118,13 +28322,13 @@ msgstr ""
msgid "Checker"
msgstr ""
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
msgstr ""
msgid "Distortion"
msgstr ""
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
msgstr ""
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -25145,6 +28349,9 @@ msgstr ""
msgid "not painted"
msgstr ""
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr ""
+
msgid "Move up - applied earlier"
msgstr ""
@@ -25160,9 +28367,18 @@ msgstr ""
msgid "Tile size"
msgstr ""
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr ""
+
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr ""
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr ""
@@ -25211,22 +28427,31 @@ msgstr ""
msgid "Interleaves two filaments to fake the colors in between, so a handful of filaments can cover a photo or a gradient. An image of flat colors prints the same either way. Off uses one filament per area."
msgstr ""
-msgid "Mix by"
+msgid "Mixed colors"
msgstr ""
-msgctxt "Texture Displacement"
-msgid "Surface"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
msgstr ""
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
msgstr ""
+msgid "Many"
+msgstr ""
+
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr ""
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] ""
+msgstr[1] ""
+
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] ""
+msgstr[1] ""
msgid "Denoise"
msgstr ""
@@ -25265,6 +28490,15 @@ msgstr ""
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr ""
+msgid "Model UV"
+msgstr ""
+
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr ""
+
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr ""
+
msgid "Open UV editor"
msgstr ""
@@ -25275,8 +28509,10 @@ msgid "Not unwrapped yet"
msgstr ""
#, boost-format
-msgid "%1% islands"
-msgstr ""
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] ""
+msgstr[1] ""
msgid "Capture current view"
msgstr ""
@@ -25299,9 +28535,6 @@ msgstr ""
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr ""
-msgid "Opacity"
-msgstr ""
-
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr ""
@@ -25342,6 +28575,10 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr ""
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr ""
+
msgctxt "Texture Displacement"
msgid "Subtract"
msgstr ""
@@ -25356,7 +28593,7 @@ msgstr ""
msgid "The base layer has nothing beneath it to combine with, so it always adds."
msgstr ""
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
msgstr ""
msgid "Adjust placement"
@@ -25375,8 +28612,10 @@ msgid "More settings"
msgstr ""
#, boost-format
-msgid "All %1% layers used"
-msgstr ""
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] ""
+msgstr[1] ""
msgid "Add layer"
msgstr ""
@@ -25436,8 +28675,10 @@ msgid "Triangle budget: set with Triangles, below."
msgstr ""
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr ""
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] ""
+msgstr[1] ""
msgid "Steps"
msgstr ""
@@ -25469,6 +28710,12 @@ msgstr ""
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr ""
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
msgid "Keep sharp edges"
msgstr ""
@@ -25571,12 +28818,6 @@ msgstr ""
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr ""
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr ""
-
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr ""
-
msgid "Preparing..."
msgstr ""
@@ -25595,29 +28836,48 @@ msgstr ""
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr ""
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr ""
+
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr ""
+
#, boost-format
msgid "%1% k"
msgstr ""
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr ""
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] ""
+msgstr[1] ""
+
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] ""
+msgstr[1] ""
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr ""
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] ""
+msgstr[1] ""
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr ""
-
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr ""
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] ""
+msgstr[1] ""
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr ""
+msgid_plural "%1% not painted, skipped"
+msgstr[0] ""
+msgstr[1] ""
msgid "Entering Texture displacement painting"
msgstr ""
@@ -25631,6 +28891,9 @@ msgstr ""
msgid "Choose SLA archive:"
msgstr ""
+msgid "SL1 / SL1S archive files"
+msgstr ""
+
msgid "Import file"
msgstr ""
@@ -25760,6 +29023,27 @@ msgstr ""
msgid "Printer plugins"
msgstr ""
+msgid "This preset does not use any plugin capabilities"
+msgstr ""
+
+msgid "Capabilities used by this preset"
+msgstr ""
+
+msgid "Capability configuration (JSON)"
+msgstr ""
+
+msgid "Plugin configuration"
+msgstr ""
+
+msgid "Discard this preset's override and use the global configuration again"
+msgstr ""
+
+msgid "Restore defaults"
+msgstr ""
+
+msgid "Invalid JSON"
+msgstr ""
+
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr ""
@@ -25773,9 +29057,6 @@ msgid ""
"This discards the preset's override and uses the global configuration."
msgstr ""
-msgid "Restore defaults"
-msgstr ""
-
msgid "Using global configuration. Save the preset to persist it."
msgstr ""
@@ -25795,15 +29076,15 @@ msgstr ""
msgid "Overwrite Plugin"
msgstr ""
-msgid "Show in folder"
-msgstr ""
-
msgid "Reinstall"
msgstr ""
msgid "Delete cache and reload"
msgstr ""
+msgid "No description."
+msgstr ""
+
msgid "Select a .py or .whl plugin package."
msgstr ""
@@ -25827,6 +29108,223 @@ msgstr ""
msgid "Installed \"%s\"."
msgstr ""
+msgid "Search plugins"
+msgstr ""
+
+msgid "Clear search"
+msgstr ""
+
+msgid "Match case"
+msgstr ""
+
+msgid "Match whole word"
+msgstr ""
+
+msgid "More plugin install options"
+msgstr ""
+
+msgid "Install plugin"
+msgstr ""
+
+msgid "Install local plugin"
+msgstr ""
+
+msgid "Activate"
+msgstr ""
+
+msgid "Sort by name"
+msgstr ""
+
+msgid "Sort by version"
+msgstr ""
+
+msgid "Plugin Version"
+msgstr ""
+
+msgid "Sort by source"
+msgstr ""
+
+msgid "Source"
+msgstr ""
+
+msgid "Sort by status"
+msgstr ""
+
+msgctxt "Plugin"
+msgid "Status"
+msgstr ""
+
+msgid "Drag to resize; double-click to reset"
+msgstr ""
+
+msgid "Resize the plugin list"
+msgstr ""
+
+msgid "Plugin details"
+msgstr ""
+
+msgid "Plugin Info"
+msgstr ""
+
+msgid "Description"
+msgstr ""
+
+msgid "Config"
+msgstr ""
+
+msgid "Changelog"
+msgstr ""
+
+msgid "Diagnostics"
+msgstr ""
+
+msgid "Types"
+msgstr ""
+
+msgid "Installed Version"
+msgstr ""
+
+msgid "Latest Version"
+msgstr ""
+
+msgid "Update to the latest version"
+msgstr ""
+
+msgid "No description available"
+msgstr ""
+
+msgid "Select a plugin to configure its capabilities"
+msgstr ""
+
+msgid "Configurable capabilities"
+msgstr ""
+
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr ""
+
+msgid "Plugin changelog"
+msgstr ""
+
+msgid "Date"
+msgstr ""
+
+msgid "Changes"
+msgstr ""
+
+msgid "No changelog available"
+msgstr ""
+
+msgid "No issues detected"
+msgstr ""
+
+msgid "No plugins found"
+msgstr ""
+
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr ""
+
+msgid "Mine"
+msgstr ""
+
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr ""
+
+msgid "Orphaned"
+msgstr ""
+
+msgctxt "Plugin"
+msgid "Local"
+msgstr ""
+
+msgid "Some plugin capabilities are enabled"
+msgstr ""
+
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr ""
+
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr ""
+
+msgid "Collapse capabilities"
+msgstr ""
+
+msgid "Expand capabilities"
+msgstr ""
+
+msgid "Open this plugin in your browser"
+msgstr ""
+
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr ""
+
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr ""
+
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr ""
+
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr ""
+
+msgid "Unauthorized for updates"
+msgstr ""
+
+msgid "Loading the plugin…"
+msgstr ""
+
+msgid "This plugin exposes no capabilities"
+msgstr ""
+
+msgid "Activate this plugin to configure its capabilities"
+msgstr ""
+
+msgid "View on OrcaCloud here "
+msgstr ""
+
+msgid "Activated"
+msgstr ""
+
+msgid "Runtime error"
+msgstr ""
+
+msgid "Inactive"
+msgstr ""
+
+msgid "This plugin is active and ready to be used."
+msgstr ""
+
+msgid "This plugin is still loading."
+msgstr ""
+
+msgid "This plugin is blocked until its error is fixed."
+msgstr ""
+
+msgid "This plugin is loaded but a capability reported an error."
+msgstr ""
+
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr ""
+
+msgid "Select a plugin to view its status and details."
+msgstr ""
+
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr ""
+
+msgid "A newer plugin version is available."
+msgstr ""
+
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr ""
+
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
msgstr ""
@@ -25985,6 +29483,54 @@ msgstr ""
msgid "Reloaded \"%s\"."
msgstr ""
+msgid "Printer Connection"
+msgstr ""
+
+msgid "Please set up your printer connection to view the device."
+msgstr ""
+
+msgid "No model information"
+msgstr ""
+
+msgid "Edit Project Info"
+msgstr ""
+
+msgid "Model Information"
+msgstr ""
+
+msgid "Accessories"
+msgstr ""
+
+msgid "Profile Information"
+msgstr ""
+
+msgid "Model name"
+msgstr ""
+
+msgid "Created by"
+msgstr ""
+
+msgid "Remixed by"
+msgstr ""
+
+msgid "Shared by"
+msgstr ""
+
+msgid "Model description"
+msgstr ""
+
+msgid "BOM"
+msgstr ""
+
+msgid "Profile name"
+msgstr ""
+
+msgid "Profile Author"
+msgstr ""
+
+msgid "Profile description"
+msgstr ""
+
msgid "Purge Mode Settings"
msgstr ""
@@ -26003,6 +29549,16 @@ msgstr ""
msgid "Terminal"
msgstr ""
+msgid "python ... or uv ..."
+msgstr ""
+
+msgid "Plugin terminal ready."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr ""
+
msgid "A command is already running."
msgstr ""
@@ -26037,8 +29593,10 @@ msgid "New Mixed Filaments"
msgstr ""
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr ""
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] ""
+msgstr[1] ""
msgid "Import Model"
msgstr ""
@@ -26103,7 +29661,7 @@ msgstr ""
msgid "Computation failed. Please adjust parameters and retry."
msgstr ""
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
msgstr ""
msgid "Mesh repair"
@@ -26115,33 +29673,27 @@ msgstr ""
msgid "Repair and import"
msgstr ""
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr ""
-
-msgid "Mesh issue"
-msgstr ""
-
msgid "The selected image is empty."
msgstr ""
msgid "Failed to prepare the texture for use."
msgstr ""
+msgid "Could not create the folder for imported textures."
+msgstr ""
+
+msgid "Failed to save the imported texture."
+msgstr ""
+
msgid "Only your own imported textures can be removed."
msgstr ""
msgid "Could not delete the texture file."
msgstr ""
-msgid "Could not create the folder for imported textures."
-msgstr ""
-
msgid "Could not load the selected image."
msgstr ""
-msgid "Failed to save the imported texture."
-msgstr ""
-
msgid "Could not read the texture file."
msgstr ""
@@ -26174,22 +29726,28 @@ msgid "Pick Unwrap as a texture layer's mapping to edit its UVs here"
msgstr ""
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr ""
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] ""
+msgstr[1] ""
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
msgstr ""
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr ""
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] ""
+msgstr[1] ""
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
msgstr ""
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr ""
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] ""
+msgstr[1] ""
#, c-format, boost-format
msgid "Island %d selected | drag = move, R = rotate, S = scale, Shift/Ctrl click = multi-select, Home = frame"
@@ -26204,6 +29762,9 @@ msgstr ""
msgid "Change texture - choose another one from the texture library"
msgstr ""
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr ""
+
msgid "Height map - show the layer's texture under the islands"
msgstr ""
@@ -26228,13 +29789,13 @@ msgstr ""
msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfolded next to each other (a cube becomes a joined net rather than six loose squares). They stay separate islands, so you can still move any of them by hand afterwards."
msgstr ""
-msgid "Island - move, rotate and scale whole islands"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
msgstr ""
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
msgstr ""
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
msgstr ""
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -26264,7 +29825,12 @@ msgstr ""
msgid "Snap - stick islands together when dragging one against another"
msgstr ""
-msgid "Frame all islands (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
msgstr ""
msgid "No layer mapped with Unwrap"
@@ -26274,22 +29840,67 @@ msgstr ""
msgid "%.1f mm tile"
msgstr ""
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr ""
+
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr ""
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr ""
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr ""
+
+msgid "No seams are marked on this layer."
+msgstr ""
+
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr ""
+
#, c-format, boost-format
-msgid "%d islands, %s faces"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr ""
+
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr ""
+
+msgid "Click an island on the canvas first, in Island mode."
+msgstr ""
+
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr ""
+
+msgid "Not signed in"
+msgstr ""
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr ""
+
+msgid "Create new project"
+msgstr ""
+
+msgid "Recently opened"
+msgstr ""
+
+msgid "Open Containing Folder"
msgstr ""
msgid "Forward"
msgstr ""
-msgid "Tools"
-msgstr ""
-
msgid "View Source"
msgstr ""
@@ -26344,6 +29955,58 @@ msgstr ""
msgid "Load %s"
msgstr ""
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr ""
+
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr ""
+
+msgid "File uploaded"
+msgstr ""
+
+msgid "Uploading G-code..."
+msgstr ""
+
+msgid "Starting print..."
+msgstr ""
+
+msgid "Print started"
+msgstr ""
+
+msgid "Uploading..."
+msgstr ""
+
+msgid "Network library version not specified"
+msgstr ""
+
+msgid "Network library not found"
+msgstr ""
+
+msgid "Failed to load network library"
+msgstr ""
+
+msgid "Network library failed to load"
+msgstr ""
+
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr ""
+
+msgid "unknown name"
+msgstr ""
+
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+
+msgid "Plugin permissions"
+msgstr ""
+
#, c-format, boost-format
msgid ""
"Plugin \"%s\" is requesting permission for the Python audit event \"%s\".\n"
@@ -26353,27 +30016,43 @@ msgstr ""
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+msgstr[1] ""
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+msgstr[1] ""
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+msgstr[1] ""
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+msgstr[1] ""
#, c-format, boost-format
msgid ""
@@ -26389,7 +30068,21 @@ msgstr ""
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr ""
+
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
@@ -26400,6 +30093,36 @@ msgstr ""
msgid "Plugin permission request"
msgstr ""
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr ""
+
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr ""
+
+msgid "Printer connection"
+msgstr ""
+
+msgid "Pages"
+msgstr ""
+
+msgid "Analysis"
+msgstr ""
+
+msgid "Importer"
+msgstr ""
+
+msgid "Exporter"
+msgstr ""
+
+msgid "Visualization"
+msgstr ""
+
+msgid "Script"
+msgstr ""
+
+msgid "Slicing Pipeline"
+msgstr ""
+
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr ""
@@ -26416,7 +30139,272 @@ msgstr ""
msgid "The configuration could not be written to disk. Nothing was changed."
msgstr ""
-msgid "Plugin installation failed"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr ""
+
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr ""
+
+msgid "Cloud plugin key is missing UUID."
+msgstr ""
+
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr ""
+
+msgid "Only cloud plugins can be unsubscribed."
+msgstr ""
+
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr ""
+
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr ""
+
+msgid "You are not authorized to download this cloud plugin."
+msgstr ""
+
+msgid "No plugin package is available for this operating system."
+msgstr ""
+
+msgid "The selected plugin version was not found."
+msgstr ""
+
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr ""
+
+msgid "Cloud plugin was not found."
+msgstr ""
+
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr ""
+
+msgid "Cloud plugin download was not found."
+msgstr ""
+
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr ""
+
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr ""
+
+msgid "Plugin download returned empty data."
+msgstr ""
+
+msgid "Failed to create temporary file for plugin download."
+msgstr ""
+
+msgid "Failed to write plugin data to temporary file."
+msgstr ""
+
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr ""
+
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr ""
+
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr ""
+
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr ""
+
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr ""
+
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr ""
+
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr ""
+
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr ""
+
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr ""
+
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr ""
+
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr ""
+
+msgid "Plugin module did not register any capabilities"
+msgstr ""
+
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr ""
+
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr ""
+
+msgid "Plugin capability materialization failed"
+msgstr ""
+
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr ""
+
+msgid "Plugin on_load failed"
+msgstr ""
+
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr ""
+
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr ""
+
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr ""
+
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr ""
+
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr ""
+
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr ""
+
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr ""
+
+msgid "Plugin load is still in progress"
+msgstr ""
+
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr ""
+
+msgid "Unexpected plugin load failure"
+msgstr ""
+
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr ""
+
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr ""
+
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr ""
+
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr ""
+
+msgid "Failed to download cloud plugin."
+msgstr ""
+
+msgid "Failed to install cloud plugin."
+msgstr ""
+
+msgid "Only cloud plugins can be updated."
+msgstr ""
+
+msgid "No update is available for this plugin."
+msgstr ""
+
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr ""
+
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr ""
+
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr ""
+
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr ""
+
+msgid "Cannot unsubscribe your own plugins."
+msgstr ""
+
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr ""
+
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr ""
+
+msgid "Plugin filesystem read permission request denied"
msgstr ""
msgid "Profile has fewer than 2 points"
@@ -26443,6 +30431,9 @@ msgstr ""
msgid "imported regions produced no extrudable geometry"
msgstr ""
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr ""
+
msgid "Failed to revolve"
msgstr ""
@@ -26470,6 +30461,9 @@ msgstr ""
msgid "Pocket cut failed"
msgstr ""
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr ""
+
msgid "sketch has no closed loop"
msgstr ""
@@ -26494,9 +30488,21 @@ msgstr ""
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr ""
+msgid "the fillet radius must be greater than 0"
+msgstr ""
+
+msgid "no edges to fillet in that group"
+msgstr ""
+
msgid "fillet radius too large for this geometry"
msgstr ""
+msgid "the chamfer distance must be greater than 0"
+msgstr ""
+
+msgid "no edges to chamfer in that group"
+msgstr ""
+
msgid "chamfer distance too large for this geometry"
msgstr ""
@@ -26506,6 +30512,121 @@ msgstr ""
msgid "apply_chamfer: OCCT chamfer failed"
msgstr ""
+msgid "empty component list"
+msgstr ""
+
+msgid "empty component index"
+msgstr ""
+
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr ""
+
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr ""
+
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr ""
+
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr ""
+
+msgid "empty ratio value"
+msgstr ""
+
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr ""
+
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr ""
+
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr ""
+
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr ""
+
+msgid "start and end ratios must be in (0, 1)"
+msgstr ""
+
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr ""
+
+msgid "must be set when mixed filament parameters are specified"
+msgstr ""
+
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr ""
+
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr ""
+
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr ""
+
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr ""
+
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr ""
+
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr ""
+
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr ""
+
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr ""
+
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr ""
+
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr ""
+
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+
+msgid "import svg failed: could not open svg."
+msgstr ""
+
+msgid "import svg failed: could not parse imported svg data."
+msgstr ""
+
+msgid "Custom G-code reports negative z_retracted."
+msgstr ""
+
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr ""
+
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr ""
+
msgid "Authentication complete"
msgstr ""
diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po
index 4e6a3d8001..ca65a6e16c 100644
--- a/localization/i18n/es/OrcaSlicer_es.po
+++ b/localization/i18n/es/OrcaSlicer_es.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: Ian A. Bassi <>\n"
"Language-Team: \n"
@@ -346,8 +346,11 @@ msgstr "Leyendo "
msgid "Please wait"
msgstr "Espere por favor"
-msgid "Reading"
-msgstr "Leyendo"
+# AI Translated
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Estante de Hotend por Inducción: leyendo %d/%d"
msgid "Running..."
msgstr "En ejecución..."
@@ -498,9 +501,12 @@ msgstr "Herramienta de selección de faceta como base"
msgid "Lay on Face"
msgstr "Seleccionar faceta como base"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "El recuento de filamentos supera el número máximo que admite la herramienta de pintura. Sólo los primeros %1% filamentos estarán disponibles en la herramienta de pintura."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "El recuento de filamentos supera el número máximo que admite la herramienta de pintura. Solo el primer %1% filamento estará disponible en la herramienta de pintura."
+msgstr[1] "El recuento de filamentos supera el número máximo que admite la herramienta de pintura. Solo los primeros %1% filamentos estarán disponibles en la herramienta de pintura."
msgid "Color Painting"
msgstr "Pintar colores"
@@ -552,8 +558,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Intro"
-msgid "Shortcut Key "
-msgstr "Tecla de acceso directo "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Tecla de acceso directo %d"
msgid "Triangle"
msgstr "Triángulo"
@@ -645,6 +653,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Selección de partes"
+msgid "Select multiple objects"
+msgstr "Seleccionar varios objetos"
+
msgid "Fixed step drag"
msgstr "Arrastre de paso fijo"
@@ -705,9 +716,78 @@ msgstr "Pieza"
msgid "Relative"
msgstr "Relativo"
+msgid "Selection"
+msgstr "Selección"
+
+msgid "Plate"
+msgstr "Cama"
+
+msgid "Distribute"
+msgstr ""
+
msgid "Coordinate system used for transform actions."
msgstr "Sistema de coordenadas utilizado para las acciones de transformación."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Alinear a la izquierda"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Alinear al centro izquierda-derecha"
+
+# AI Translated
+msgid "Align right"
+msgstr "Alinear a la derecha"
+
+# AI Translated
+msgid "Align front"
+msgstr "Alinear delante"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Alinear al centro delante-detrás"
+
+# AI Translated
+msgid "Align back"
+msgstr "Alinear detrás"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Alinear abajo"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Alinear al centro arriba-abajo"
+
+# AI Translated
+msgid "Align top"
+msgstr "Alinear arriba"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Distribuir izquierda-derecha"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Distribuir delante-detrás"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Distribuir arriba-abajo"
+
+msgid "Drop"
+msgstr "Soltar"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
msgid "Absolute"
msgstr "Absoluto"
@@ -809,9 +889,6 @@ msgstr "Ángulo del surco"
msgid "Cut position"
msgstr "Posición de corte"
-msgid "Build Volume"
-msgstr "Volumen de construcción"
-
msgid "Multiple"
msgstr "Múltiple"
@@ -980,14 +1057,23 @@ msgstr "El plano de corte con ranura no es válido"
msgid "Connector"
msgstr "Conector"
+# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
-"Los objetos(%1%) tienen conectores duplicados. Es posible que falten algunos conectores en el resultado del laminado.\n"
-"Informe al equipo de OrcaSlicer sobre el escenario en el que se produjo este problema.\n"
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"El objeto (%1%) tiene conectores duplicados. Es posible que falten algunos conectores en el resultado del laminado.\n"
+"Informe al equipo de OrcaSlicer del escenario en el que se produjo este problema.\n"
+"Gracias."
+msgstr[1] ""
+"Los objetos (%1%) tienen conectores duplicados. Es posible que falten algunos conectores en el resultado del laminado.\n"
+"Informe al equipo de OrcaSlicer del escenario en el que se produjo este problema.\n"
"Gracias."
msgid "Cut by Plane"
@@ -1051,9 +1137,12 @@ msgstr "Bajo"
msgid "Extra low"
msgstr "Extra bajo"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d triángulos"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% triángulo"
+msgstr[1] "%1% triángulos"
msgid "Show wireframe"
msgstr "Mostrar estructura de alambre"
@@ -1064,6 +1153,17 @@ msgstr "No se pudo aplicar durante el procesamiento de la vista previa"
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Operación ya cancelada. Por favor, espere unos segundos."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "Se ha cancelado la simplificación del modelo"
+
+msgid "Wiki Guide"
+msgstr "Guía en Wiki"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Guía en vídeo"
+
msgid "Enforce seam"
msgstr "Reforzar costura"
@@ -1114,6 +1214,14 @@ msgstr "Posición en superficie"
msgid "Emboss"
msgstr "Relieve"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "No hay ninguna fuente activa en el estilo. Seleccione la correcta."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont no se ha cargado correctamente."
+
msgid "NORMAL"
msgstr "NORMAL"
@@ -1762,11 +1870,25 @@ msgstr "Diámetro"
msgid "Length"
msgstr "Longitud"
-msgid "Selection"
-msgstr "Selección"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Cara 1 (fija)"
-msgid " (Moving)"
-msgstr " (Moviendo)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Cara 2 (móvil)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Punto 1 (fijo)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Punto 2 (móvil)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Selección 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1782,14 +1904,9 @@ msgstr ""
"Selecciona 2 puntos o círculos en un objeto y \n"
"especifica la distancia entre ellos."
-msgid "Face"
-msgstr "Cara"
-
-msgid " (Fixed)"
-msgstr " (Solucionado)"
-
-msgid "Point"
-msgstr "Punto"
+# AI Translated
+msgid "Selection 2"
+msgstr "Selección 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1886,6 +2003,18 @@ msgstr "Entrando al mecanismo de ensamblaje"
msgid "Leaving Assembly gizmo"
msgstr "Saliendo del mecanismo de ensamblaje"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2062,14 +2191,16 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
+# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"No se pudo instalar Microsoft WebView2 Runtime.\n"
"Algunas funciones, incluido el asistente de configuración, pueden aparecer en blanco hasta que se instale.\n"
-"Instálelo manualmente desde https://developer.microsoft.com/microsoft-edge/webview2/ y reinicie Orca Slicer."
+"Instálelo manualmente desde %1% y reinicie Orca Slicer."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2288,6 +2419,66 @@ msgstr "Restricción del plugin de red"
msgid "Privacy Policy Update"
msgstr "Actualización de política de privacidad"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Todos sus perfiles de filamento están disponibles en las impresoras para las que se crearon."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Migrar perfiles de filamento"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 reestructuró muchos perfiles de filamento del sistema para corregir perfiles incorrectos y preparar futuras funciones. Como resultado, los perfiles que aparecen a continuación ya no se muestran en algunas de las impresoras para las que se crearon. Disculpe las molestias; es una corrección única.\n"
+"\n"
+"¿Desea volver a añadir esas impresoras a sus perfiles ahora? Antes se hará una copia de seguridad de sus perfiles. También puede hacerlo más tarde desde Ayuda > Migrar perfiles de filamento."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (basado en %2%)"
+
+msgid "Don't remind me again"
+msgstr "No me recuerdes de nuevo"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "No se pudo hacer una copia de seguridad de sus perfiles, por lo que no se migraron."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "No se pudo bloquear la carpeta de perfiles de usuario, por lo que no se migró nada. Puede que otra instancia de OrcaSlicer esté guardando perfiles; inténtelo de nuevo más tarde desde Ayuda > Migrar perfiles de filamento."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"No se pudieron migrar sus perfiles de filamento. Se guardó una copia de seguridad de sus perfiles en:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Sus perfiles de filamento se migraron. Vuelva a seleccionarlos en la lista de filamentos donde los usaba.\n"
+"\n"
+"Se guardó una copia de seguridad de sus perfiles en:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "No se pudieron migrar estos perfiles:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "tu perfil de Orca Cloud (ID de usuario: «%s»)"
@@ -2400,6 +2591,9 @@ msgstr "Plugins actualizados."
msgid "Failed to refresh plugins: %s"
msgstr "No se pudieron actualizar los plugins: %s"
+msgid "Unknown error"
+msgstr "Error desconocido"
+
# AI Translated
msgid "Select plugin package"
msgstr "Seleccionar paquete de plugin"
@@ -2920,6 +3114,22 @@ msgstr "Recargar todo"
msgid "Reload all from disk"
msgstr "Recargar todo desde disco"
+# AI Translated
+msgid "Fix All"
+msgstr "Reparar todo"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Reparar todos los modelos de la cama actual"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Reparar todas las camas"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Reparar todos los modelos de todas las camas"
+
msgid "Auto Rotate"
msgstr "Rotación Automática"
@@ -2971,8 +3181,13 @@ msgstr "(Color perdido)"
msgid "Center"
msgstr "Centrar"
-msgid "Drop"
-msgstr "Soltar"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Alinear/Distribuir"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Alinear y distribuir objetos"
msgid "Edit Process Settings"
msgstr "Editar ajustes de proceso"
@@ -3247,6 +3462,13 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] "No se ha podido reparar el siguiente objeto modelo"
msgstr[1] "No se han podido reparar los siguientes objetos del modelo"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d objeto del modelo no necesitó reparación."
+msgstr[1] "%1$d objetos del modelo no necesitaron reparación."
+
msgid "Repairing was canceled"
msgstr "La reparación fue cancelada"
@@ -3318,9 +3540,6 @@ msgstr "Sin borde de adherencia"
msgid "Outer wall speed"
msgstr "Velocidad perímetro exterior"
-msgid "Plate"
-msgstr "Cama"
-
msgid "Brim"
msgstr "Borde de adherencia"
@@ -3403,9 +3622,6 @@ msgstr "Añadir Plantilla Personalizada"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Insetar G-Code de plantilla personalizada al principio de esta capa."
-msgid "Filament "
-msgstr "Filamento "
-
msgid "Change filament at the beginning of this layer."
msgstr "Cargar filamento al principio de esta capa."
@@ -3493,6 +3709,8 @@ msgstr "Cambiar de todos modos"
msgid "Off"
msgstr "Apagado"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "Filtro"
@@ -3605,11 +3823,20 @@ msgstr "Confirmación de extrusión"
msgid "Check filament location"
msgstr "Probar localización de filamento"
-msgid "Switch"
-msgstr "Cambiar"
+# AI Translated
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Pausar"
-msgid "hotend"
-msgstr "hotend"
+# AI Translated
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Cambiar de extrusor"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Cambiar de hotend"
msgid "Wait for AMS cooling"
msgstr "Esperar a que se enfríe el AMS"
@@ -3773,8 +4000,10 @@ msgid "Arranging"
msgstr "Organizando"
# AI Translated
-msgid "Arranging "
-msgstr "Organizando "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Organizando %1%"
msgid "Arranging canceled."
msgstr "Organización cancelada."
@@ -3813,8 +4042,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Orientando..."
-msgid "Orienting"
-msgstr "Orientación"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Orientando %1%"
msgid "Orienting canceled."
msgstr "Orientación cancelada."
@@ -3822,6 +4054,12 @@ msgstr "Orientación cancelada."
msgid "Filling"
msgstr "Relleno"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Llenando %1%"
+
msgid "Bed filling canceled."
msgstr "Relleno de cama cancelado."
@@ -3837,6 +4075,34 @@ msgstr "Búsqueda de orientación cancelada."
msgid "Orientation found."
msgstr "Orientación encontrada."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Mejor calidad de superficie"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Optimiza la rotación del objeto para obtener la mejor calidad de superficie."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Pendientes de voladizo reducidas"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Optimiza la rotación del objeto para tener la menor cantidad posible de voladizos que necesiten estructuras de soporte.\n"
+"Tenga en cuenta que, si no se establece ninguna elevación, este método intentará encontrar la mejor superficie del objeto para apoyarla en la cama."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Altura Z mínima"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Gira el modelo para obtener la altura Z más baja y un tiempo de impresión más corto."
+
msgid "Logging in"
msgstr "Iniciando sesión"
@@ -4125,6 +4391,16 @@ msgstr "Proyectos recientes"
msgid "Go to Plate"
msgstr "Ir a la cama"
+msgid "Device"
+msgstr "Dispositivo"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Dispositivo (Web)"
+
+msgid "Multi-device"
+msgstr "Multi-dispositivo"
+
msgid "AMS Materials Setting"
msgstr "Ajustes de materiales AMS"
@@ -4151,9 +4427,6 @@ msgstr "El valor de entrada debe ser mayor que %1% y menor que %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Factores de calibración de dinámicas de flujo"
-msgid "Wiki Guide"
-msgstr "Guía en Wiki"
-
msgid "PA Profile"
msgstr "Perfil de «Pressure advance»"
@@ -4183,6 +4456,14 @@ msgstr "Por favor, introduzca un valor válido (K in %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Introduzca un valor válido (K en %.1f~%.1f, N en %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Filamentos favoritos"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Todos los filamentos"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4492,11 +4773,11 @@ msgstr "El plugin de red se instaló, pero no se pudo cargar. Reinicie la aplica
msgid "Restart Required"
msgstr "Se requiere reiniciar"
-msgid "Please home all axes (click "
-msgstr "Por favor, mandar a inicio todos los ejes (presione "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") para localizar la posición del cabezal. Esto previene que el dispositivo se mueva más allá de los limites de impresión y cause desgaste en el equipo."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Lleve todos los ejes a la posición de inicio (haga clic en %1%) para localizar la posición del cabezal. Así se evita que el dispositivo se mueva más allá del límite de impresión y se desgaste el equipo."
msgid "Go Home"
msgstr "Ir al Inicio"
@@ -4511,6 +4792,10 @@ msgstr "Se ha producido un error fatal: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Guarde el proyecto y reinicie el programa."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Excepción de C++ desconocida."
+
msgid "Processing G-Code from previous file…"
msgstr "Procesando el G-Code del archivo anterior…"
@@ -4732,6 +5017,14 @@ msgstr "¿Ajustarla automáticamente al límite (%g mm)?"
msgid "Adjust"
msgstr "Ajustar"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"La balsa/capa base de impresión y el protector contra corrientes de aire no están disponibles en las impresoras de cinta.\n"
+"Se han desactivado."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5426,8 +5719,9 @@ msgstr "Perímetro externo"
msgid "Overhang wall"
msgstr "Perímetro de voladizo"
+# AI Translated
msgid "Sparse infill"
-msgstr "Relleno poco denso"
+msgstr "Relleno de baja densidad"
msgid "Internal solid infill"
msgstr "Relleno sólido interno"
@@ -5557,9 +5851,6 @@ msgstr "Volver a laminar automáticamente según la agrupación óptima de filam
msgid "Filament Grouping"
msgstr "Agrupación de filamentos"
-msgid "Why this grouping"
-msgstr "Por qué esta agrupación"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Por favor, coloque los filamentos en la impresora según el resultado de la agrupación."
@@ -5569,29 +5860,47 @@ msgstr "Consejos:"
msgid "Current grouping of slice result is not optimal."
msgstr "La agrupación actual del resultado del laminado no es óptima."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Aumenta %1%g de filamento y %2% cambios en comparación con la agrupación óptima."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Aumenta %1%g de filamento y %2% cambio en comparación con la agrupación óptima."
+msgstr[1] "Aumenta %1%g de filamento y %2% cambios en comparación con la agrupación óptima."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Aumenta %1%g de filamento y ahorra %2% cambios en comparación con la agrupación óptima."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Aumenta %1%g de filamento y ahorra %2% cambio en comparación con la agrupación óptima."
+msgstr[1] "Aumenta %1%g de filamento y ahorra %2% cambios en comparación con la agrupación óptima."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Ahorra %1%g de filamento y aumenta %2% cambios en comparación con la agrupación óptima."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Ahorra %1%g de filamento y aumenta %2% cambio en comparación con la agrupación óptima."
+msgstr[1] "Ahorra %1%g de filamento y aumenta %2% cambios en comparación con la agrupación óptima."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Ahorra %1%g de filamento y %2% cambios en comparación con una impresora con una boquilla."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Ahorra %1%g de filamento y %2% cambio en comparación con una impresora con una boquilla."
+msgstr[1] "Ahorra %1%g de filamento y %2% cambios en comparación con una impresora con una boquilla."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Ahorra %1%g de filamento y aumenta %2% cambios en comparación con una impresora con una boquilla."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Ahorra %1%g de filamento y aumenta %2% cambio en comparación con una impresora con una boquilla."
+msgstr[1] "Ahorra %1%g de filamento y aumenta %2% cambios en comparación con una impresora con una boquilla."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Aumenta %1%g de filamento y ahorra %2% cambios en comparación con una impresora con una boquilla."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Aumenta %1%g de filamento y ahorra %2% cambio en comparación con una impresora con una boquilla."
+msgstr[1] "Aumenta %1%g de filamento y ahorra %2% cambios en comparación con una impresora con una boquilla."
msgid "Set to Optimal"
msgstr "Ajustar a óptimo"
@@ -5747,11 +6056,60 @@ msgstr "Incrementar/disminuir el área de edición"
msgid "Sequence"
msgstr "Secuencia"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Centro de masa de la cama"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Centro de masa de la pieza"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Centro de masa de los soportes"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Centro de masa del ensamblaje"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Centro de masa del objeto"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Impresión terminada"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Impreso hasta la capa %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Peso"
+
+msgid "Volume"
+msgstr "Volumen"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Centro en el cuadro delimitador"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Tamaño del cuadro delimitador"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Momento de inercia"
+
msgid "Object selection"
msgstr "Selección de objetos"
-msgid "number keys"
-msgstr "teclas numéricas"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "Teclas numéricas 1~16"
msgid "Number keys can quickly change the color of objects"
msgstr "Las teclas numéricas pueden cambiar rápidamente el color de los objetos"
@@ -5958,9 +6316,20 @@ msgstr "Ejes"
msgid "Gridlines"
msgstr "Cuadrícula"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Etiquetas"
+# AI Translated
+msgid "Center of mass"
+msgstr "Centro de masa"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Mostrar G-Code sin procesar (solo impresoras de cinta)"
+
# AI Translated
msgid "Move section plane"
msgstr "Mover plano de sección"
@@ -6009,7 +6378,7 @@ msgstr "Volumen:"
msgid "Size:"
msgstr "Tamaño:"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Se han encontrado conflictos de rutas G-Code en la capa %d, Z = %.2lfmm. Por favor, separe más los objetos en conflicto (%s <-> %s)."
@@ -6029,21 +6398,19 @@ msgstr "No se admite la impresión con 2 o más filamentos TPU."
msgid "Tool %d"
msgstr "Herramienta %d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "El filamento %s está colocado en el %s, pero la ruta de G-code generada excede el rango imprimible del %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Los filamentos %s están colocados en el %s, pero la ruta de G-code generada excede el rango imprimible del %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "El filamento %s está colocado en el %s, pero la ruta de G-code generada excede el rango imprimible del %s."
+msgstr[1] "Los filamentos %s están colocados en el %s, pero la ruta de G-code generada excede el rango imprimible del %s."
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "El filamento %s está colocado en el %s, pero la ruta de G-code generada excede la altura imprimible del %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Los filamentos %s están colocados en el %s, pero la ruta de G-code generada excede la altura imprimible del %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "El filamento %s está colocado en el %s, pero la ruta de G-code generada excede la altura imprimible del %s."
+msgstr[1] "Los filamentos %s están colocados en el %s, pero la ruta de G-code generada excede la altura imprimible del %s."
msgid "Open wiki for more information."
msgstr "Abrir wiki para más información."
@@ -6051,9 +6418,12 @@ msgstr "Abrir wiki para más información."
msgid "Only the object being edited is visible."
msgstr "Sólo es visible el objeto que se está editando."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Los filamentos %s no pueden imprimirse directamente en la superficie de esta cama."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "El filamento %s no puede imprimirse directamente en la superficie de esta cama."
+msgstr[1] "Los filamentos %s no pueden imprimirse directamente en la superficie de esta cama."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "Se han detectado filamentos PLA y PETG mezclados. Ajuste los parámetros según la Wiki para garantizar la calidad de impresión."
@@ -6176,27 +6546,20 @@ msgstr "Preparar"
msgid "Preview"
msgstr "Previsualización"
-msgid "Device"
-msgstr "Dispositivo"
-
-msgid "Multi-device"
-msgstr "Multi-dispositivo"
-
msgid "Project"
msgstr "Proyecto"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Dispositivo (Web)"
-
msgid "Yes"
msgstr "Sí"
msgid "No"
msgstr "No"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "se cerrará antes de crear un nuevo modelo. ¿Quiere continuar?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s se cerrará antes de crear un nuevo modelo. ¿Quiere continuar?"
msgid "Print all"
msgstr "Imprimir todo"
@@ -6241,6 +6604,10 @@ msgstr "Asistente de Configuración"
msgid "Show Configuration Folder"
msgstr "Mostrar Carpeta de Configuración"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Recuperar los perfiles de filamento que una actualización de perfiles eliminó de las impresoras para las que se crearon"
+
msgid "Troubleshoot Center"
msgstr "Centro de resolución de problemas"
@@ -6479,6 +6846,14 @@ msgstr "Mostrar cuadrícula"
msgid "Show Gridlines on plate"
msgstr "Mostrar cuadrícula en la cama"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Mostrar cabezal IDEX/IQEX"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Muestra la representación del cabezal IDEX/IQEX alrededor de cada boquilla activa en la vista previa del G-Code."
+
msgid "Reset Window Layout"
msgstr "Reiniciar Diseño de Ventana"
@@ -7106,6 +7481,8 @@ msgstr "Valorar"
msgid "Calculating..."
msgstr "Calculando..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Cámara"
@@ -7184,9 +7561,12 @@ msgstr "Descargando…"
msgid "Cloud Slicing..."
msgstr "Laminado en la Nube..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "En Cola de Laminado en la Nube, hay %s tareas por delante."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "En la Cola de Laminado en la Nube, hay %d tarea por delante."
+msgstr[1] "En la Cola de Laminado en la Nube, hay %d tareas por delante."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7217,6 +7597,11 @@ msgstr "Esto solo tendrá efecto durante la impresión"
msgid "Silent"
msgstr "Silencioso"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Estándar"
+
msgid "Sport"
msgstr "Deportivo"
@@ -7271,17 +7656,29 @@ msgstr "Cargar Imágenes"
msgid "Number of images successfully uploaded"
msgstr "Número de imágenes cargadas satisfactoriamente"
-msgid " upload failed"
-msgstr " Carga fallida"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Error al subir %s"
-msgid " upload config prase failed\n"
-msgstr " Error en la carga de configuración\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Error al analizar la configuración de subida de %s"
-msgid " No corresponding storage bucket\n"
-msgstr " Sin cubo de almacenamiento correspondiente\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: sin cubo de almacenamiento correspondiente"
-msgid " cannot be opened\n"
-msgstr " no es posible abrirlo\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "No se puede abrir %s"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7299,26 +7696,22 @@ msgstr "Carga fallida\n"
msgid "Obtaining instance_id failed\n"
msgstr "Error al obtener instance_id \n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"El resultado de su comentario no se puede cargar debido a algunas razones, que son:\n"
-"\n"
-" código de error: "
-
-msgid "error message: "
-msgstr "mensaje de error: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"El resultado de su comentario no se puede cargar por los siguientes motivos:\n"
"\n"
+" código de error: %d\n"
+" mensaje de error: %s\n"
"\n"
-"¿Desea redirigir a la página web para la valoración?"
+"¿Desea redirigir a la página web para dejar una valoración?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Algunas de sus imágenes no se han podido cargar. ¿Desea redirigir a la página web para la valoración?"
@@ -8127,6 +8520,108 @@ msgstr "Ver todos los ajustes del objeto"
msgid "Material settings"
msgstr "Configuración de Material"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Cada modo indica los cabezales que participan y el rol que desempeña cada uno. Haga clic en el botón de una herramienta para alternar su rol; pase el cursor sobre un color de abajo para ver qué hace cada rol."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Añadir modo"
+
+# AI Translated
+msgid "Tools"
+msgstr "Herramientas"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-Code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Cómo se muestra el modo en el selector de modo IDEX/IQEX de la cama. Obligatorio: un modo sin nombre no se puede seleccionar."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Qué cabezales participan en el modo y qué rol desempeña cada uno. Haga clic en una casilla para alternar su rol."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-Code que se ejecuta al inicio de la impresión para poner la impresora en este modo (por ejemplo, una llamada a SET_PRINT_MODE de Klipper). El laminador solo emite las trayectorias de la herramienta Principal (Primary); el firmware controla las demás."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Inactivo"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Principal"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Copia"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Espejo"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Controla todas las trayectorias laminadas. Siempre es la herramienta 0: use «Posición de la herramienta 0» arriba para elegir en qué esquina de la cama se sitúa. No se puede mover de la cuadrícula."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Sigue a la herramienta Principal (Primary) a nivel de firmware e imprime las mismas trayectorias desplazadas a su propia zona."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Sigue a la herramienta Principal (Primary) a nivel de firmware e imprime las mismas trayectorias reflejadas a través del límite entre las dos zonas."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Marca una herramienta del pórtico de la herramienta Principal (Primary) como su compañera multicolor. Necesario para permitir la impresión multicolor en los modos de pórticos emparejados."
+
+# AI Translated
+msgid "Primary"
+msgstr "Principal"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Nombre del modo (obligatorio)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Nombre de este modo paralelo, tal como aparece en el selector de modo IDEX/IQEX de la cama. Se guarda en el proyecto por su nombre, así que al renombrar un modo que ya usan algunas camas, estas vuelven al modo Principal (Primary). No puede estar vacío: un nombre en blanco se sustituye por uno generado."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-Code que se emite una vez al inicio de una impresión que usa este modo, antes del G-Code de inicio de la máquina. Aquí es donde la impresora se pone en el modo de firmware correspondiente (por ejemplo, con una llamada a SET_PRINT_MODE de Klipper o un M567 de RepRapFirmware), ya que el laminador solo emite las trayectorias de la herramienta Principal (Primary) y el firmware controla las herramientas Copia (Copy) / Espejo (Mirror). Se admiten marcadores de posición; use el botón de edición para consultarlos. Déjelo vacío si el modo no necesita configuración del firmware."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Editar G-Code / consultar marcadores de posición"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Eliminar modo"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Descartar las ediciones de esta sesión en este modo (volver al valor guardado)"
+
msgid "Remove current plate (if not last one)"
msgstr "Quitar cama actual (si no es la última)"
@@ -8151,12 +8646,33 @@ msgstr "Editar el nombre de la cama actual"
msgid "Move plate to the front"
msgstr "Mover cama al frente"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "Modo IDEX/IQEX: %1% (perfil de proceso: %2%) (clic izquierdo para alternar, clic derecho para el menú)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "Modo IDEX/IQEX: %1% (clic izquierdo para alternar, clic derecho para el menú)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Advertencia: esta cama usa un modo IDEX/IQEX paralelo con objetos multimaterial. Proceda con precaución y compruebe que su G-Code gestiona correctamente esta combinación."
+
msgid "Customize current plate"
msgstr "Personalizar cama actual"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "La boquilla %s no puede imprimir %s."
+msgid "The left nozzle cannot print %s."
+msgstr "La boquilla izquierda no puede imprimir %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "La boquilla derecha no puede imprimir %s."
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
msgstr "Imprimir filamento de color mezclado en una impresora de un solo extrusor requiere cambios de filamento y purgas frecuentes, lo que puede aumentar considerablemente el desperdicio y el riesgo de obstrucción de la boquilla o del conducto de residuos."
@@ -8165,12 +8681,18 @@ msgstr "Imprimir filamento de color mezclado en una impresora de un solo extruso
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "No se recomienda mezclar %1% con %2% en la impresión.\n"
-msgid " nozzle"
-msgstr " boquilla"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "No se recomienda imprimir los siguientes filamentos con %1%: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "Boquilla de %1%mm (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "No se recomienda imprimir el siguiente filamento con %1%: %2%\n"
+msgstr[1] "No se recomienda imprimir los siguientes filamentos con %1%: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "No se recomienda usar las siguientes combinaciones de boquilla y filamento:\n"
@@ -8179,9 +8701,11 @@ msgstr "No se recomienda usar las siguientes combinaciones de boquilla y filamen
msgid "%1% with %2%\n"
msgstr "%1% con %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " cama %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Laminando cama %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Nombre no válido, los siguientes caracteres no están permitidos:"
@@ -8216,12 +8740,6 @@ msgstr "AMS (1 ranura)"
msgid "Not installed"
msgstr "No instalado"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "El software no admite usar boquillas de diámetros diferentes en una sola impresión. Si las boquillas izquierda y derecha son inconsistentes, solo podremos continuar con impresión de un solo cabezal. Confirme qué boquilla desea usar para este proyecto."
-
-msgid "Switch diameter"
-msgstr "Cambiar diámetro"
-
msgid "Configuration incompatible"
msgstr "Configuración incompatible"
@@ -8297,6 +8815,10 @@ msgstr "Filamento mixto"
msgid "Remove last mixed filament"
msgstr "Eliminar el último filamento mixto"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Eliminar todos los filamentos mixtos"
+
msgid "Add mixed filament"
msgstr "Añadir filamento mixto"
@@ -8315,6 +8837,13 @@ msgstr "El filamento mixto tiene referencias de componentes rotas"
msgid "Edit / Delete / Merge"
msgstr "Editar / Borrar / Fusionar"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "¿Eliminar %1% filamento mixto?"
+msgstr[1] "¿Eliminar todos los %1% filamentos mixtos?"
+
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "El filamento mixto de destino usa este filamento físico como componente. Al fusionarlos se eliminará este filamento físico y el filamento mixto puede quedar no válido. ¿Continuar?"
@@ -8388,9 +8917,6 @@ msgstr "Cargando archivo: %s"
msgid "Load 3MF"
msgstr "Cargar 3MF"
-msgid "BambuStudio Project"
-msgstr "Proyecto de BambuStudio"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "El 3MF no es de Orca Slicer, cargando sólo datos de geometría."
@@ -8420,17 +8946,6 @@ msgstr "Debería actualizar el software.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "La versión de 3MF %s es más nueva que la versión de %s %s. Se aconseja actualizar su software."
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "El archivo 3MF fue creado con BambuStudio (versión %s), que es más reciente que la versión compatible %s. Se han detectado ajustes no reconocidos:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "El archivo 3MF ha sido creado con BambuStudio (versión %s), que es más reciente que la versión compatible %s. Es posible que algunos ajustes no sean totalmente compatibles."
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "El archivo 3MF ha sido creado por BambuStudio. Es posible que algunos ajustes difieran de los de OrcaSlicer."
-
msgid "Invalid values found in the 3MF:"
msgstr "Valores inválidos encontrados en el 3MF:"
@@ -8593,6 +9108,14 @@ msgstr "¿Desactivar la caída automática para mantener la posición en el eje
msgid "Object with floating parts was detected"
msgstr "Se ha detectado un objeto con partes flotantes"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "No se puede laminar: un objeto se superpone a un área reservada para la impresión en paralelo IDEX/IQEX (una zona secundaria o una franja de separación del carro dentro de la zona principal)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "No se puede laminar: la torre de purga se superpone a un área reservada para la impresión en paralelo IDEX/IQEX (una zona secundaria o una franja de separación del carro dentro de la zona principal)."
+
msgid "Another export job is running."
msgstr "Otro trabajo de exportación está en marcha."
@@ -8645,8 +9168,9 @@ msgstr "Volúmenes reemplazados"
msgid "Please select a file"
msgstr "Por favor, seleccione un archivo"
-msgid "Do you want to replace it"
-msgstr "¿Desea reemplazarlo"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "¿Desea reemplazarlo?"
msgid "Message"
msgstr "Mensaje"
@@ -8675,6 +9199,50 @@ msgstr "Datos inválidos"
msgid "Slicing Canceled"
msgstr "Laminado Cancelado"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Conflicto de temperatura de la cama: T%d (%s) ajusta la cama a %d℃, pero T%d (%s) requiere %d℃. La herramienta principal controla la cama; las herramientas secundarias imprimen a la temperatura que ella establezca."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Discrepancia de tipo de filamento: T%d usa %s y T%d usa %s. Estos materiales tienen requisitos incompatibles y no están diseñados para imprimirse juntos."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"La cama %d tiene activo el modo paralelo IDEX/IQEX con los siguientes problemas:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "¿Continuar el laminado?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Advertencia de modo paralelo IDEX/IQEX"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "No volver a mostrar estas advertencias"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Cama %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Se han detectado los siguientes problemas del modo paralelo IDEX/IQEX:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Plugin de red cambiado con éxito."
@@ -8707,8 +9275,8 @@ msgid "Sync now"
msgstr "Sincronizar ahora"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "No se puede deshacer ni rehacer mientras se ejecuta una operación. Deténgala primero."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "No se puede deshacer ni rehacer mientras se ejecuta una operación. Detenga la operación, o espere a que termine y vuelva a intentarlo."
# AI Translated
msgid ""
@@ -8775,6 +9343,15 @@ msgstr "Descarga fallida; error de tamaño de archivo."
msgid "Project downloaded %d%%"
msgstr "Proyecto descargado %d%%"
+# AI Translated
+# Needs human review: Quotes the existing calibration labels 'Línea PA' and 'Modelo PA'; the glossary renders Pattern as 'Patrón', so 'Modelo PA' may need to become 'Patrón PA' together with its label.
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"Las pruebas Línea PA y Modelo PA aún no están habilitadas en las impresoras de cinta.\n"
+"Use el método Torre PA en su lugar."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Prueba de Pressure Advance"
@@ -8782,11 +9359,15 @@ msgstr "Prueba de Pressure Advance"
msgid "INFO:"
msgstr "INFO:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "No se proporcionaron aceleraciones para la calibración. Usar valor de aceleración por defecto "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "No se proporcionaron aceleraciones para la calibración. Se usará el valor de aceleración por defecto %1%mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "No se proporcionaron velocidades para la calibración. Usar velocidad óptima por defecto "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "No se proporcionaron velocidades para la calibración. Se usará la velocidad óptima por defecto %1%mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -8801,6 +9382,15 @@ msgstr "Calibración de flujo YOLO de Orca"
msgid "Flowrate Test - Pass%d"
msgstr "Prueba de flujo - Pasada %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "No hay ninguna torre de temperatura para cinta disponible para el rango de %1% a %2%℃. Use un rango que cubran los modelos de torre, por ejemplo de 230 a 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Torre de temperatura"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Prueba de temperatura de la boquilla"
@@ -8824,11 +9414,16 @@ msgstr "Prueba de esquinado"
msgid "Import SLA archive"
msgstr "Importar archivo SLA"
-msgid "The selected file"
-msgstr "El archivo seleccionado"
-
-msgid "Does not contain valid G-code."
-msgstr "No contiene G-code válido."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"El archivo seleccionado:\n"
+"%1%\n"
+"no contiene G-code válido."
msgid "An Error has occurred while loading the G-code file."
msgstr "Se ha producido un error al cargar el archivo G-code."
@@ -9091,6 +9686,28 @@ msgstr "Actualmente, el formulario de configuración del objeto no se puede usar
msgid "Not available"
msgstr "No disponible"
+# AI Translated
+# Needs human review: Ghost tooltip of an IDEX/IQEX tool: check that 'no plate' means the tool is not assigned to any plate, so 'sin cama' reads right.
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (sin cama)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — sin filamento asignado\n"
+"Añada un extrusor en la pestaña Máquina para que este cabezal tenga una ranura de filamento."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> filamento %2%"
+
msgid "isometric"
msgstr "isométrico"
@@ -9130,6 +9747,8 @@ msgstr "Europa"
msgid "North America"
msgstr "América del Norte"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "Otros"
@@ -9204,11 +9823,17 @@ msgstr "Error al recargar el plugin de red. Por favor, reinicie la aplicación."
msgid "Reload Failed"
msgstr "Error al recargar"
-msgid "Associate"
-msgstr "Asociar"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Asociar %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "con OrcaSlicer para que pueda abrir modelos desde"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Asociar %s:// con OrcaSlicer para que Orca pueda abrir modelos desde %s"
msgid "Current Association: "
msgstr "Asociación actual: "
@@ -9500,6 +10125,9 @@ msgstr "Recordar la última acción de impresión"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Si está activado, OrcaSlicer recordará la última opción seleccionada en el desplegable del botón de impresión (p. ej., Imprimir, Exportar los objetos laminados de la cama a un archivo, Exportar archivo G-Code) y la usará por defecto en el próximo inicio."
+msgid "Camera"
+msgstr "Cámara"
+
msgid "Touchpad"
msgstr "Panel táctil"
@@ -9923,6 +10551,9 @@ msgstr "Versión del plugin de red"
msgid "Select the network plug-in version to use"
msgstr "Seleccione la versión del plugin de red a usar"
+msgid "Associate"
+msgstr "Asociar"
+
msgid "Associate files to OrcaSlicer"
msgstr "Asociar archivos a OrcaSlicer"
@@ -9971,6 +10602,12 @@ msgstr "Mostrar ajustes preestablecidos no compatibles"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Mostrar los ajustes preestablecidos incompatibles o no compatibles en los menús desplegables de impresoras y filamentos. Estos ajustes preestablecidos no se pueden seleccionar."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Experimental Features"
msgstr "Funciones experimentales"
@@ -10251,10 +10888,6 @@ msgstr "Publicar 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Seleccione qué ajustes se publicarán en el archivo 3MF"
-# AI Translated
-msgid "Video Guide"
-msgstr "Guía en vídeo"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Filamento mixto - se publica como un conjunto cuando se selecciona \"Habilitar\" arriba"
@@ -10419,6 +11052,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Simple"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s de %s"
+
# AI Translated
msgid "Search actions"
msgstr "Buscar acciones"
@@ -10535,6 +11174,10 @@ msgstr "Mostrar detalles"
msgid "Hide details"
msgstr "Ocultar detalles"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "La vista web no está disponible."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -10794,9 +11437,12 @@ msgstr "Envío fallido"
msgid "The name length exceeds the limit."
msgstr "La longitud del nombre supera el límite."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Costo %dg de filamento y %d cambios más que la agrupación óptima."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Cuesta %dg de filamento y %d cambio más que la agrupación óptima."
+msgstr[1] "Cuesta %dg de filamento y %d cambios más que la agrupación óptima."
# AI Translated
msgid "Right-Ext"
@@ -10873,6 +11519,9 @@ msgstr "Algunos filamentos pueden cambiar de extrusor durante la impresión. La
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "Este archivo contiene filamento propenso a formar hilos. Para obtener la mejor calidad de impresión, recomendamos cambiar la detección de acumulación en la boquilla al modo automático."
+msgid "Switch"
+msgstr "Cambiar"
+
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Si «Calibración de Flujo Dinámico» está en Auto/Activado, el sistema usará el valor de calibración manual o el valor predeterminado y omitirá el proceso de calibración de flujo. Puede realizar una calibración de flujo manual para el filamento TPU en la página «Calibración»."
@@ -11175,6 +11824,10 @@ msgstr "No se admite la sincronización entre diferentes tipos de extrusor o tip
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Sincroniza la modificación de parámetros con los parámetros correspondientes de otro extrusor."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Los parámetros con este icono se pueden configurar por boquilla."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Presionar para reiniciar todos los ajustes al perfil guardado por defecto."
@@ -11403,6 +12056,9 @@ msgstr "Filamento para Características"
msgid "Ooze prevention"
msgstr "Prevención de rezumado"
+msgid "Others"
+msgstr "Otros"
+
msgid "Special mode"
msgstr "Ajustes especiales"
@@ -11441,8 +12097,11 @@ msgstr[1] ""
"Las siguientes líneas %s contienen palabras clave reservadas.\n"
"Por favor, elimínelas, o afectará la visualización del G-Code y la estimación del tiempo de impresión."
-msgid "Reserved keywords found"
-msgstr "Palabras clave utilizadas y encontradas"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Palabras clave reservadas encontradas en %1%"
msgid "Setting Overrides"
msgstr "Sobreescribir Ajustes de impresora"
@@ -11580,7 +12239,16 @@ msgstr "Espacio imprimible"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Seleccione la implementación del agente de red para la comunicación con la impresora. Los agentes disponibles se registran al iniciar el sistema."
+# AI Translated
+msgid "Belt printer"
+msgstr "Impresora de cinta"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Transformaciones del sistema de coordenadas de la máquina"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Valor no válido proporcionado para el parámetro %1%: %2%"
@@ -11693,9 +12361,29 @@ msgstr "Diámetro de boquilla"
msgid "Wipe tower"
msgstr "Torre de purga"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Torre de purga de cinta"
+
msgid "Single extruder multi-material parameters"
msgstr "Parámetros de extrusor único multimaterial"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "Configuración IDEX/IQEX"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Advertencias previas al laminado"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Muestra un cuadro de diálogo de advertencia antes de laminar si se detectan problemas del modo paralelo IDEX/IQEX (conflictos de temperatura de la cama, discrepancias de tipo de filamento, conflictos multimaterial). Se puede desactivar desde el propio cuadro de diálogo. Vuelva a activarlo aquí si lo desactivó por error."
+
+# AI Translated
+msgid "Modes"
+msgstr "Modos"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Esta es una impresora multimaterial de un solo extrusor, los diámetros de todos los extrusores se ajustarán al nuevo valor. ¿Desea continuar?"
@@ -11705,6 +12393,22 @@ msgstr "Límites de altura de la capa"
msgid "Z-Hop"
msgstr "Salto en Z"
+# AI Translated
+msgid "Front-left"
+msgstr "Frontal izquierda"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Frontal derecha"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Posterior izquierda"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Posterior derecha"
+
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
"\n"
@@ -11726,22 +12430,37 @@ msgstr "Usar valor modificado"
msgid "Detached"
msgstr "Separado"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% y %2% están asociados a esta impresora. Esos perfiles se borrarían si se elimina la impresora."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "El perfil de Filamento %d y el perfil de Proceso %d están adjuntos a esta impresora. Esos perfiles se borrarían si se elimina la impresora."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d perfil de filamento"
+msgstr[1] "%d perfiles de filamento"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d perfil de proceso"
+msgstr[1] "%d perfiles de proceso"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "¡Los perfiles heredados de otros perfiles no pueden borrarse!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "El siguiente perfil hereda de este otro."
-msgstr[1] "Los siguientes perfiles heredan de este otro."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "El siguiente perfil hereda de este perfil."
+msgstr[1] "Los siguientes perfiles heredan de este perfil."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "Perfil %1%"
+msgid "Delete Preset"
+msgstr "Borrar perfil"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -11755,9 +12474,9 @@ msgstr ""
"¿Está seguro de que desea eliminar el perfil seleccionado?\n"
"Si el perfil corresponde a un filamento actualmente en uso en su impresora, restablezca la información del filamento para esa ranura."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "¿Está seguro de %1% el perfil seleccionado?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "¿Está seguro de borrar el perfil seleccionado?"
msgid "Select printers"
msgstr "Seleccionar impresoras"
@@ -11810,9 +12529,40 @@ msgstr "Continuar"
msgid "Don't warn again for this preset"
msgstr "No volver a avisar para este perfil"
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# AI Translated
+# Needs human review: Short tag for Standard flow; kept as the English abbreviation used on nozzle labels. Check whether a Spanish abbreviation is preferred.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Short tag for High Flow; kept as the English abbreviation used on nozzle labels. Check whether a Spanish abbreviation is preferred.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Short tag for TPU High Flow; kept as the English abbreviation used on nozzle labels. Check whether a Spanish abbreviation is preferred.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Short tag for E3D High Flow; kept as the English abbreviation used on nozzle labels. Check whether a Spanish abbreviation is preferred.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short tag for Extra High Flow; kept as the English abbreviation used on nozzle labels. Check whether a Spanish abbreviation is preferred.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
msgid "No modifications need to be copied."
msgstr "No hay modificaciones que copiar."
@@ -12009,6 +12759,12 @@ msgstr "Uno de los perfiles no existe"
msgid "Compared presets has different printer technology"
msgstr "Los perfiles comparados tienen distinta tecnología de impresora"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" frente a \"%2%\""
+
msgid "Add File"
msgstr "Añadir archivo"
@@ -12034,6 +12790,22 @@ msgstr "Lista de materiales"
msgid "Assembly Guide"
msgstr "Guía de montaje"
+# AI Translated
+msgid "Image files"
+msgstr "Archivos de imagen"
+
+# AI Translated
+msgid "TXT files"
+msgstr "Archivos TXT"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "Archivos EXCEL"
+
+# AI Translated
+msgid "PDF files"
+msgstr "Archivos PDF"
+
msgid "Author"
msgstr "Autor"
@@ -12229,9 +13001,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Moldeado total"
-msgid "Volume"
-msgstr "Volumen"
-
msgid "Ramming line"
msgstr "Línea de moldeado"
@@ -12258,8 +13027,10 @@ msgstr "Multiplo"
msgid "Flushing volumes for filament change"
msgstr "Volúmenes de purgado para el cambio de filamentos"
-msgid "Please choose the filament color"
-msgstr "Por favor, elija el color del filamento"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "de/a"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "El proveedor de servicios en la nube no está disponible. Reinicia OrcaSlicer e inténtalo de nuevo."
@@ -12279,6 +13050,136 @@ msgstr "El inicio de sesión ha fallado. Inténtalo de nuevo."
msgid "parse json failed"
msgstr "error al analizar el json"
+msgid "Loading…"
+msgstr "Cargando…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Personalizado"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Bienvenido a Orca Slicer"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer se configurará mediante varios pasos. ¡Comencemos!"
+
+msgid "Get Started"
+msgstr "Comenzar"
+
+msgid "Please select your login region"
+msgstr "Por favor, seleccione su región:"
+
+msgid "Finish"
+msgstr "Finalizar"
+
+msgid "Printer Selection"
+msgstr "Selección de la impresora"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Fabricantes"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Impresora personalizada"
+
+msgid "Create"
+msgstr "Crear"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Buscar nuevas impresoras"
+
+msgid "At least one printer must be selected."
+msgstr "Al menos se debe seleccionar una impresora."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Se encontraron nuevas impresoras"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Nuevos fabricantes de impresoras instalados: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Se encontraron nuevos fabricantes de impresoras, pero se canceló la instalación."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "No se encontraron nuevas impresoras."
+
+msgid "Filament Selection"
+msgstr "Selección de filamento"
+
+msgid "System Filaments"
+msgstr "Filamentos del sistema"
+
+msgid "Custom Filaments"
+msgstr "Filamentos personalizados"
+
+msgid "Create New"
+msgstr "Crear nuevo"
+
+msgid "Filament type"
+msgstr "Tipo de filamento"
+
+msgid "Vendor"
+msgstr "Fabricante"
+
+# AI Translated
+msgid "No items"
+msgstr "Sin elementos"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Filtrar elementos"
+
+# AI Translated
+msgid "Checked"
+msgstr "Marcados"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Sin marcar"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Seleccionar filtrados"
+
+msgid "Clear all"
+msgstr "Limpiar todo"
+
+msgid "At least one filament must be selected."
+msgstr "Al menos se debe seleccionar un filamento."
+
+msgid "Do you want to use the default filament?"
+msgstr "¿Desea usar el filamento por defecto?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Esto desactiva todas las funciones en la nube, incluida la sincronización de perfiles con Orca Cloud. Los usuarios que prefieran trabajar totalmente sin conexión pueden activar esta opción."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Nota: Cuando el modo sigiloso está activado, no se realizará ninguna copia de seguridad de tus perfiles de usuario en Orca Cloud."
+
+msgid "Enable Stealth Mode."
+msgstr "Activar modo sigiloso."
+
+msgid "Proprietary Plugins"
+msgstr "Plugins propietarios"
+
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Algunos proveedores de impresoras requieren plugins propietarios para la comunicación con sus impresoras. Seleccione el plugin correspondiente si utiliza tales impresoras."
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Tenga en cuenta que estos plugins no están desarrollados ni mantenidos por OrcaSlicer. Deben usarse bajo su propia responsabilidad."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Instalar plug-in Bambu Network"
+
msgid "[Action Required] "
msgstr "[Acción requerida] "
@@ -12346,9 +13247,6 @@ msgstr "Disponible mientras la vista 3D de la pestaña Preparar tiene el foco."
msgid "Select a part"
msgstr "Seleccionar una pieza"
-msgid "Select multiple objects"
-msgstr "Seleccionar varios objetos"
-
msgid "Select objects by rectangle"
msgstr "Seleccionar objetos por rectángulo"
@@ -12672,26 +13570,20 @@ msgstr "La versión de firmware es anormal. Es necesario reparar y actualizar an
msgid "Extension Board"
msgstr "Placa de Ampliación"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Dividir en %1% partes"
-
msgid "Repair finished"
msgstr "Reparación terminada"
-msgid "Repair failed"
-msgstr "La reparación ha fallado"
-
-msgid "Repair canceled"
-msgstr "Reparación cancelada"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "La copia del archivo %1% a %2% falló: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Descargando nuevos perfiles de fabricante: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Descargando nuevo perfil de fabricante: %1%..."
+msgstr[1] "Descargando nuevos perfiles de fabricante: %1%..."
# AI Translated
#, boost-format
@@ -12699,8 +13591,12 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Paquete de configuración: %1% actualizado a %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "No se han podido descargar los perfiles de fabricante: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "No se pudo descargar el perfil de fabricante: %1%"
+msgstr[1] "No se pudieron descargar los perfiles de fabricante: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Es necesario comprobar los cambios no guardados antes de actualizar la configuración."
@@ -12708,6 +13604,10 @@ msgstr "Es necesario comprobar los cambios no guardados antes de actualizar la c
msgid "Open G-code file:"
msgstr "Abrir archivo G-Code:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Error al generar la torre de purga, posiblemente por una primera capa vacía."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Un objeto tiene la primera capa vacía y no se puede imprimir. Por favor, corte el fondo o habilite los soportes."
@@ -12729,9 +13629,61 @@ msgstr "G-code de cambio de rol de extrusión del proceso"
msgid "Filament change extrusion role G-code"
msgstr "G-Code de cambio de rol de extrusión del filamento"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"Error al exportar el G-code a %1%.\n"
+"No se puede abrir el archivo para escribir."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "La carpeta %1% no existe."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"Error al exportar el G-code a %1%.\n"
+"¿Está lleno el disco?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"No se pudo renombrar el archivo G-code de salida de %1% a %2%.\n"
+"Error: %3%\n"
+"¿Está bloqueado %1%?"
+
msgid "No object can be printed. It may be too small."
msgstr "No se puede imprimir ningún objeto. Tal vez sea demasiado pequeño."
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "El modo IDEX/IQEX \"%1%\" no tiene herramientas asignadas en la impresora seleccionada. Se imprimirá en el modo Principal (Primary). Asigne las herramientas del modo en «Ajustes de la impresora» o elija otro modo con el botón IDEX/IQEX de la cama."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Esta cama está configurada con el modo IDEX/IQEX \"%1%\", que la impresora seleccionada no define. Se imprimirá en el modo Principal (Primary). Elija un modo con el botón IDEX/IQEX de la cama o restaure el modo en «Ajustes de la impresora»."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Valor de miniaturas no válido:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Las piezas se encuentran muy cerca de las regiones de purgado. Asegúrese de que no hay colisión."
@@ -12775,6 +13727,10 @@ msgstr "Error de agrupación: %1% no se puede colocar en la boquilla izquierda"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Error de agrupación: %1% no se puede colocar en la boquilla derecha"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "No se encontró ninguna boquilla válida. Compruebe el número de boquillas."
+
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Error de agrupación en modo manual. Compruebe el número de boquillas o vuelva a agrupar."
@@ -12793,6 +13749,18 @@ msgstr "varias intersecciones con un perímetro; solo se usó una (%1%)"
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "un perímetro está completamente dentro de un modificador; el modificador no se le aplicó (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "El modificador %1% «%2%» de «%3%» cubre un perímetro entero"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "El modificador %1% «%2%» de «%3%» (%4% en total) cubre un perímetro entero"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -12807,9 +13775,47 @@ msgstr "el modificador \"%1%\" de \"%2%\" (%3% en total) no tuvo efecto en la co
msgid "Seam placement may differ from expected."
msgstr "La ubicación de la costura puede diferir de la esperada."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Puente Interior"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() produjo un espaciado negativo. ¿Ha configurado algún ancho de extrusión demasiado pequeño?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() produjo un flujo negativo. ¿Ha configurado algún ancho de extrusión demasiado pequeño?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Error al calcular el ancho de línea de %1%. No se puede obtener el valor de \"%2%\"."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Espaciado no válido suministrado a Flow::with_spacing(), comprueba la altura de su capa y el ancho de extrusión."
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "El archivo 3mf seleccionado se guardó con una versión más reciente de %1% y no es compatible."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "El 3MF seleccionado contiene un objeto con soportes FDM pintados creado con una versión más reciente de PrusaSlicer y no es compatible."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "El 3MF seleccionado contiene un objeto con costura pintada creado con una versión más reciente de PrusaSlicer y no es compatible."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "El 3MF seleccionado contiene un objeto multimaterial pintado creado con una versión más reciente de PrusaSlicer y no es compatible."
+
msgid "undefined error"
msgstr "error no definido"
@@ -12903,6 +13909,56 @@ msgstr "validación fallida"
msgid "write callback failed"
msgstr "la llamada de recuperación de la escritura ha fallado"
+# AI Translated
+msgid "unknown error"
+msgstr "error desconocido"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Las impresiones multicolor en los modos paralelos IDEX/IQEX requieren que cada filamento tenga su propio extrusor físico dedicado. Dos o más de los filamentos activos se dirigen al mismo cabezal físico mediante el mapa de extrusores físicos de la impresora (un colector MMU/AFC), algo que el pórtico subordinado no puede seguir."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "El modo IDEX/IQEX activo no define una herramienta principal, por lo que no se puede programar la impresión multicolor. Abra el editor de modos IDEX/IQEX en los ajustes de la impresora y asigne el rol Principal (Primary) a una herramienta."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "El multicolor en este modo no es un caso de impresión en paralelo: todas las herramientas activas están en un único pórtico, por lo que no hay un segundo pórtico al que copiar o reflejar. Cambie la cama al modo Principal (Primary) para imprimir en multicolor en un único pórtico, o defina un modo IDEX/IQEX que incluya herramientas de un segundo pórtico."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Las impresiones multicolor en los modos paralelos IDEX/IQEX requieren una herramienta Span en el pórtico de la herramienta principal; sin ella, el modo no declara un compañero multicolor dentro del pórtico. Reduzca la impresión a un solo filamento, cambie al modo Principal (Primary) o abra el editor de modos IDEX/IQEX en los ajustes de la impresora y marque como Span una herramienta del pórtico de la herramienta principal."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "En este modo Span, solo se imprimen colores con %1%, pero el filamento %2% no está asignado a ninguna herramienta. Use filamentos asignados a %1% o cambie esta cama al modo Principal (Primary)."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "En este modo Span, solo se imprimen colores con %1%, pero el filamento %2% está asignado a T%3%. Use filamentos asignados a %1% o cambie esta cama al modo Principal (Primary)."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"No se puede cargar el perfil seleccionado: %1%\n"
+"\tMotivo: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Error al cargar el archivo de perfil: %1%\n"
+"\tMotivo: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% está demasiado cerca de la zona de exclusión. Podrían producirse colisiones al imprimir."
@@ -12919,27 +13975,34 @@ msgstr "%1% es demasiado alto, y se producirán colisiones."
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "La posición relativa del modelo y la torre de purga no cumple los requisitos de la función \"Sin capas de baja densidad\". Ajuste sus posiciones relativas, reduzca la altura del modelo o desactive \"Sin capas de baja densidad\"."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " está muy cerca del área de exclusión, puede conllevar colisiones cuando se imprime."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " está demasiado cerca del área de detección de aglomeraciones, puede haber colisiones durante la impresión."
-
-msgid "Prime Tower"
-msgstr "Torre de purga"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " está demasiado cerca de otros, y se pueden producir colisiones.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " está demasiado cerca de una zona de exclusión, lo que provocará colisiones.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " está demasiado cerca del área de detección de aglomeraciones, y se producirán colisiones.\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% está demasiado cerca del área de detección de aglomeraciones. Podrían producirse colisiones al imprimir."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " está parcialmente fuera del área imprimible, y no se puede imprimir.\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "La torre de purga está demasiado cerca de otros, y pueden producirse colisiones.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "La torre de purga está demasiado cerca de una zona de exclusión, lo que provocará colisiones.\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "La torre de purga está demasiado cerca del área de detección de aglomeraciones, y se producirán colisiones.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "La torre de purga está demasiado cerca de una zona de exclusión. Podrían producirse colisiones al imprimir."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "La torre de purga está demasiado cerca del área de detección de aglomeraciones. Podrían producirse colisiones al imprimir."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "La torre de purga está parcialmente fuera del área imprimible, y no se puede imprimir.\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "Las temperaturas de boquilla seleccionadas son incompatibles. La temperatura de boquilla de cada filamento debe estar dentro del rango de temperaturas recomendado para los demás filamentos. De lo contrario, podrían producirse atascos en la boquilla o daños en la impresora."
@@ -12953,6 +14016,58 @@ msgstr "Si aún así quieres imprimir, puedes activar la opción en Preferencias
msgid "No extrusions under current settings."
msgstr "No hay extrusiones con los ajustes actuales."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Los filamentos mixtos no son compatibles con los modos paralelos IDEX/IQEX. Cambie esta cama al modo Principal (Primary)."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "El modo IDEX/IQEX \"%1%\" imprime con T%2%, pero ninguno de los filamentos de esta cama está en una herramienta configurada. Asigne un filamento cargado en T%2% o cambie esta cama al modo Principal (Primary)."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "El modo IDEX/IQEX \"%1%\" imprime con T%2%, pero los filamentos de esta cama están en %3%. Asigne un filamento cargado en T%2% o cambie esta cama al modo Principal (Primary)."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "La balsa/capa base de impresión no es compatible con el modo de impresora de cinta."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "El protector contra corrientes de aire no es compatible con el modo de impresora de cinta."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "El borde de adherencia no es compatible con el modo vaso en espiral en una impresora de cinta. Desactive uno de los dos."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "La cinta tiene demasiada inclinación para un borde de adherencia, por lo que no se generará ninguno."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Solo se genera un borde de adherencia cuando la cinta está inclinada. Establezca un ángulo de inclinación de la cinta o elimine el ajuste de borde de adherencia."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Las impresoras de cinta solo admiten borde de adherencia exterior e interior. «Automático», «Oreja de ratón» y «Pintado» se imprimen como «Solo borde de adherencia exterior», usando el «Ancho del borde de adherencia»."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "«Espaciado borde de adherencia-objeto» separa el borde de adherencia delantero del borde de ataque del objeto, que es el borde que debe anclar. Ajuste el espaciado a 0 cuando use «Longitud del borde de adherencia delantero»."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "«Longitud del borde de adherencia delantero» se extiende por delante de cada objeto a lo largo de la cinta, y «Organizar» no reserva ese espacio. Deje espacio entre los objetos."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "El borde de adherencia \"Solo borde de ataque\" se aplica a las impresoras de cinta. En esta impresora se imprime como un borde de adherencia exterior normal."
+
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Se está usando un filamento mixto con degradado, pero 'Subcapa de color mezclado' está desactivado. El degradado no se imprimirá."
@@ -12962,6 +14077,18 @@ msgstr "Modo de timelapse suave no está soportado cuando la secuencia \"por obj
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "La detección de aglomeraciones no es compatible cuando la secuencia \"Por objeto\" está activada."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "La torre de purga de cinta no se genera con la secuencia de impresión \"Por objeto\"; los cambios de filamento no se purgarán."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "La torre de purga de cinta está activada, pero el proyecto no tiene ningún objeto de torre de purga; los cambios de filamento no se purgarán. Abra el proyecto en la aplicación para generar la torre."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "El proyecto contiene varias torres de purga de cinta gestionadas. Recargue la cama o desactive y vuelva a activar la torre de purga de cinta para regenerarla."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Habilitar tanto la altura Z precisa como la torre de purga puede causar errores de laminado."
@@ -12978,10 +14105,6 @@ msgstr "El modo de jarrón en espiral no funciona cuando un objeto contiene más
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Aunque el objeto %1% se ajusta al volumen de construcción, supera la altura máxima del volumen de construcción debido a la compensación de la contracción del material."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "El objeto %1% supera la altura máxima del volumen de construcción."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Aunque el objeto %1% se ajusta al volumen de construcción, su última capa excede la altura máxima del volumen de construcción."
@@ -12989,6 +14112,10 @@ msgstr "Aunque el objeto %1% se ajusta al volumen de construcción, su última c
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Es posible que desee reducir el tamaño de su modelo o cambiar la configuración de impresión actual y volver a intentarlo."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "El objeto %1% supera la altura máxima del volumen de construcción."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "La altura de capa adaptativa no es compatible con los soportes orgánicos."
@@ -13135,6 +14262,10 @@ msgstr "El modelo de Adaptive Pressure Advance de uno o más extrusores puede co
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "La contracción del filamento no se utilizará porque la contracción del filamento para los filamentos utilizados difiere significativamente."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "La impresión está vacía. El modelo no se puede imprimir con los ajustes de impresión actuales."
+
msgid "Generating skirt & brim"
msgstr "Generando falda y borde de adherencia"
@@ -13153,6 +14284,17 @@ msgstr "Exportando G-Code"
msgid "Generating G-code"
msgstr "Generando G-Code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "No se pudo procesar el archivo G-code %1% del archivo 3MF anterior."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "La torre de purga de cinta no puede absorber todo el volumen de purga: no se pudieron purgar %1% mm³ en total (peor capa: %2% mm³ a una altura de %3%). La impresión puede presentar mezcla de colores. Aumente el ancho de la torre de purga de cinta o reduzca los volúmenes de purgado."
+
msgid "Processing of the filename_format template failed."
msgstr "Procesamiento fallido de la plantilla filename_format."
@@ -13601,18 +14743,19 @@ msgstr ""
"\n"
"El flujo de puente real utilizado se calcula multiplicando este valor por la relación de flujo del filamento y, si se ha establecido, por la relación de flujo del objeto."
+# AI Translated
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
"Ancho de línea del puente. Si se expresa en porcentaje, se calculará sobre el diámetro de la boquilla.\n"
-"Se recomienda utilizarlo con una densidad de puente o una relación de flujo de puente más altas.\n"
+"Se recomienda utilizarlo con una densidad de puente o un factor de flujo en puentes más altos.\n"
"\n"
"El valor máximo es del 100 % o el diámetro de la boquilla.\n"
-"Si se establece en 0, el ancho de línea seguirá el ancho del relleno sólido interno."
+"Si se establece en 0, el ancho de línea seguirá el ancho del relleno sólido interno, o el diámetro de la boquilla en los puentes gruesos."
msgid "Internal bridge flow ratio"
msgstr "Factor de flujo de puentes internos"
@@ -13895,7 +15038,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Active esta opción para ralentizar la impresión en áreas donde los perímetros puedan haberse curvado hacia arriba.\n"
"Por ejemplo, se aplicará una ralentización adicional al imprimir voladizos en esquinas afiladas, como la parte frontal del casco de Benchy, reduciendo la curvatura que se acumula en varias capas.\n"
@@ -13907,22 +15050,23 @@ msgstr ""
"Recomendaciones al activar esta opción:\n"
"1. Reduzca el tiempo de suavizado de Pressure Advance a 0,015 - 0,02 para que el extrusor reaccione rápidamente a los cambios de velocidad.\n"
"2. Aumente la velocidad mínima de impresión para limitar la magnitud de la ralentización y reducir la variación entre los segmentos rápidos y lentos.\n"
-"3. Si aún aparecen artefactos, active la función de suavizado de la velocidad de extrusión (ERS) para suavizar aún más las transiciones del flujo.\n"
+"3. Si aún aparecen artefactos, active el Suavizado de la tasa de extrusión (ERS) para suavizar aún más las transiciones del flujo.\n"
"\n"
"Nota: Cuando esta opción está activada, los perímetros en voladizo se tratan como tales, lo que significa que se aplica la velocidad de voladizo incluso si el perímetro en voladizo forma parte de un puente.\n"
-"Por ejemplo, cuando los perímetros sobresalen al 100%, sin ninguna pared que los sostenga por debajo, se aplicará la velocidad de voladizo del 100%."
+"Por ejemplo, cuando los perímetros sobresalen al 100%, sin ninguna pared que los sostenga por debajo, se aplicará la velocidad de voladizo del 75%, limitada por la velocidad de puente."
msgid "mm/s or %"
msgstr "mm/s o %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Velocidad de las extrusiones de puentes exteriormente visibles.\n"
"\n"
-"Adicionalmente, si se desactiva la función 'Reducir velocidad en perímetros curvados' o se usa el método Clásico de voladizos, también se utilizará esta velocidad para perímetros en voladizo con menos de un 13% de soporte, ya sean parte de un puento o de un voladizo."
+"Adicionalmente, si se desactiva la función 'Reducir velocidad en perímetros curvados', también se utilizará esta velocidad para perímetros en voladizo cuyo soporte es inferior al 13%, ya sean parte de un puente o de un voladizo."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Velocidad de los puntes internos. Si se expresa como un porcentaje, será Calculado en base a la velocidad de puente. El valor por defecto es 150%."
@@ -13930,12 +15074,56 @@ msgstr "Velocidad de los puntes internos. Si se expresa como un porcentaje, ser
msgid "This is the distance from the model to the outermost brim line."
msgstr "Distancia del modelo a la línea más externa del borde de adherencia."
+# AI Translated
+msgid "Leading brim length"
+msgstr "Longitud del borde de adherencia delantero"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Solo para impresoras de cinta. Extiende el borde de adherencia POR DELANTE del objeto a lo largo de la cinta, en cada arista orientada cuesta abajo de su área de contacto: tanto el primer contacto del objeto con la cinta como cualquier isla que se apoye después. Esta extensión se deposita sobre la cinta antes de que el objeto llegue a ella, para que el borde de ataque tenga algo ya adherido a lo que sujetarse.\n"
+"\n"
+"Se mide sobre la superficie de la cinta y se suma al «Ancho del borde de adherencia»: el borde de adherencia llega a «Espaciado borde de adherencia-objeto» + «Longitud del borde de adherencia delantero» + «Ancho del borde de adherencia» por delante del objeto. Ajuste «Espaciado borde de adherencia-objeto» a 0, o la extensión no tocará el objeto que debe anclar.\n"
+"\n"
+"En una cinta inclinada, cada capa deposita una franja del borde de adherencia, por lo que el grosor de la lámina resultante depende del flujo y no de la altura de la capa. Use «Factor de flujo del borde de adherencia» para ajustarlo.\n"
+"\n"
+"Ajústelo a 0 para desactivarlo."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Ancho adicional del borde de adherencia"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Solo para impresoras de cinta. Ensancha el borde de adherencia HACIA LOS LADOS, a lo ancho de la cinta, sin extenderlo más por delante ni por detrás del objeto. Úselo cuando una pieza necesite más agarre a lo largo de su longitud del que proporciona solo el «Ancho del borde de adherencia».\n"
+"\n"
+"Se mide sobre la superficie de la cinta y se suma al «Ancho del borde de adherencia»: el borde de adherencia llega a «Espaciado borde de adherencia-objeto» + «Ancho del borde de adherencia» + «Ancho adicional del borde de adherencia» a cada lado del objeto. Para extender el borde de adherencia por delante del objeto, use «Longitud del borde de adherencia delantero».\n"
+"\n"
+"Ajústelo a 0 para desactivarlo."
+
msgid "Brim type"
msgstr "Tipo de borde de adherencia"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Contro de la generación del borde de adherencia en el lado exterior y/o interior de los modelos. Auto significa que el ancho de lborde de adherencia es analizado y calculado automáticamente."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Solo borde de ataque"
+
msgid "Brim-object gap"
msgstr "Espaciado borde de adherencia-objeto"
@@ -14226,6 +15414,9 @@ msgstr ""
"2. Filtrado limitado - crea puentes internos en superficies muy inclinadas evitando puentes innecesarios. Funciona bien para la mayoría de los modelos complejos.\n"
"3. Sin filtro - crea puentes internos en cada posible voladizo interno. Esta opción es útil para superficies superiores muy inclinadas; sin embargo, en la mayoría de los casos genera demasiados puentes innecesarios."
+msgid "Filter"
+msgstr "Filtro"
+
msgid "Limited filtering"
msgstr "Filtrado limitado"
@@ -14241,8 +15432,9 @@ msgstr "Esta es la longitud máxima para imprimir puentes sin soportes. Ajústal
msgid "End G-code"
msgstr "G-Code final"
-msgid "Add end G-Code when finishing the entire print."
-msgstr "G-Code ejecutado en el final de la impresión completa."
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
+msgstr "G-code ejecutado al finalizar la impresión completa."
msgid "Between Object G-code"
msgstr "G-Code ejecutado entre Objetos"
@@ -14420,8 +15612,9 @@ msgstr "Velocidad del perímetro exterior, que es el más externo y visible. Usa
msgid "Small perimeters"
msgstr "Perímetros pequeños"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Este ajuste independiente afectará a la velocidad de los perímetros con radio <= small_perimeter_threshold (normalmente orificios). Si se expresa como un porcentaje (por ejemplo: 80%) se calculará en base al ajuste de velocidad del perímetro exterior anterior. Póngalo a cero para auto."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Este ajuste independiente afectará a la velocidad de los perímetros con radio <= small_perimeter_threshold (normalmente orificios). Si se expresa como un porcentaje (por ejemplo: 80%) se calculará en base al ajuste de velocidad del perímetro exterior anterior."
msgid "Small perimeters threshold"
msgstr "Umbral de Perímetros pequeños"
@@ -14432,8 +15625,9 @@ msgstr "Esto configura el umbral de longitud de perímetros pequeños. El umbral
msgid "Small support perimeters"
msgstr "Perímetros pequeños de soporte"
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Igual que \"Perímetros pequeños\", pero para los soportes. Este ajuste independiente afectará a la velocidad del soporte en áreas <= `small_support_perimeter_threshold`. Si se expresa como porcentaje (por ejemplo: 80%), se calculará sobre el ajuste de velocidad de soporte o de interfaz de soporte anterior. Establécelo a cero para automático."
+# AI Translated
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Igual que \"Perímetros pequeños\", pero para los soportes. Este ajuste independiente afectará a la velocidad del soporte en áreas <= `small_support_perimeter_threshold`. Si se expresa como porcentaje (por ejemplo: 80%), se calculará sobre el ajuste de velocidad de soporte o de interfaz de soporte anterior."
msgid "Small support perimeters threshold"
msgstr "Umbral de perímetros pequeños de soporte"
@@ -14444,12 +15638,13 @@ msgstr "Esto establece el umbral para la longitud de los perímetros pequeños d
msgid "Walls printing order"
msgstr "Orden de impresión de perímetros"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
@@ -15077,9 +16272,6 @@ msgstr "Precio del filamento. Sólo para las estadísticas."
msgid "money/kg"
msgstr "moneda/kg"
-msgid "Vendor"
-msgstr "Fabricante"
-
msgid "Vendor of filament. For show only."
msgstr "Fabricante del filamento. Para mostrar solamente."
@@ -15147,6 +16339,92 @@ msgstr "Relleno multilínea"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Usar múltiples líneas para el patrón de relleno, si el patrón de relleno lo soporta."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Densidad adaptativa (experimental)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Gradúa el relleno Giroide y TPMS dentro del objeto: sus celdas crecen desde la superficie del objeto hacia su centro. La densidad del relleno de baja densidad se usa en la superficie y la densidad interior en el centro.\n"
+"«Deformación por distancia», «Fusión suave» y «Cubiertas escalonadas» siguen la distancia a la superficie más cercana, incluidas la superior y la inferior, con la densidad interior en el punto más alejado de ella:\n"
+" - Deformación por distancia: un único patrón continuo, estirado y cizallado donde la distancia cambia según la dirección, como en placas y piezas largas.\n"
+" - Fusión suave: los patrones de densidades vecinas se mezclan entre sí, con pequeños bucles donde se encuentran.\n"
+" - Cubiertas escalonadas: cubiertas del patrón regular con densidades separadas aproximadamente 1,5 veces, cuyas líneas se unen a lo largo de los límites entre cubiertas.\n"
+" - Lóbulos: sigue la forma 3D del objeto, incluidas su parte superior e inferior. Cada lóbulo, una parte unida al resto por un cuello más estrecho, se gradúa hacia su propio centro.\n"
+" - Normal Z, Y o X: sigue las secciones del objeto perpendiculares a ese eje, por lo que la densidad no cambia a lo largo de él."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Deformación por distancia"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Fusión suave"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Cubiertas escalonadas"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Lóbulos"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Normal Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Normal Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Normal X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Densidad interior"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Densidad del relleno adaptativo en el centro del objeto."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Gradiente adaptativo"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Cómo cambia la densidad desde la superficie hasta el centro del objeto.\n"
+"Lineal: la densidad cambia a un ritmo constante.\n"
+"Cuadrático: la densidad se mantiene cerca de la densidad del relleno de baja densidad junto a la superficie y cambia más rápido hacia el centro.\n"
+"Exponencial: la densidad cambia rápidamente justo debajo de la superficie y se estabiliza hacia el centro."
+
+# AI Translated
+msgid "Linear"
+msgstr "Lineal"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Cuadrático"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Exponencial"
+
msgid "Z-buckling bias optimization (experimental)"
msgstr "Optimización del desplazamiento por deformación en Z (experimental)"
@@ -15219,11 +16497,11 @@ msgstr "Giroide"
# AI Translated
msgid "Sparse infill smooth factor"
-msgstr "Factor de suavizado del relleno poco denso"
+msgstr "Factor de suavizado del relleno de baja densidad"
# AI Translated
msgid "Controls how strongly sparse infill corners are rounded. 0% keeps the original sharp path, while 100% produces the largest possible curves between adjacent infill lines."
-msgstr "Controla cuánto se redondean las esquinas del relleno poco denso. 0% mantiene el trazado original con esquinas vivas, mientras que 100% produce las curvas más amplias posibles entre líneas de relleno adyacentes."
+msgstr "Controla cuánto se redondean las esquinas del relleno de baja densidad. 0% mantiene el trazado original con esquinas vivas, mientras que 100% produce las curvas más amplias posibles entre líneas de relleno adyacentes."
msgid "This is the acceleration of top surface infill. Using a lower value may improve top surface quality."
msgstr "Aceleración del relleno de la superficie superior. El uso de un valor más bajo puede mejorar la calidad de la superficie superior."
@@ -15296,14 +16574,16 @@ msgstr "Altura de la primera capa"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Altura de la primera capa. Hacer que la altura de la primera capa sea ligeramente más gruesa puede mejorar la adherencia con la cama de impresión."
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Velocidad de la primera capa excepto la parte sólida de relleno."
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Velocidad de los perímetros y del borde de adherencia de la primera capa."
msgid "First layer infill"
msgstr "Relleno de la primera capa"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Velocidad de la parte de relleno sólido de la primera capa."
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Velocidad de la primera capa, excepto los perímetros y el borde de adherencia, como el relleno, el relleno de huecos y los soportes."
msgid "First layer travel speed"
msgstr "Velocidad de desplazamiento en la primera capa"
@@ -15758,6 +17038,10 @@ msgstr "Tipo de G-Code"
msgid "What kind of G-code the printer is compatible with."
msgstr "Con qué tipo de G-Code es compatible la impresora."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (heredado)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -15977,11 +17261,12 @@ msgstr ""
msgid "0 (Simple connect)"
msgstr "0 (Conexión simple)"
+# AI Translated
msgid ""
"Filament to print internal sparse infill.\n"
"\"Default\" uses the active object/part filament."
msgstr ""
-"Filamento para imprimir un relleno interno poco denso.\n"
+"Filamento para imprimir el relleno interno de baja densidad.\n"
"La opción «Predeterminado» utiliza el filamento del objeto o pieza activa."
msgid "Line width of internal sparse infill. If expressed as a %, it will be computed over the nozzle diameter."
@@ -15990,16 +17275,18 @@ msgstr "Ancho de línea del relleno interno interno de baja densidad. Si se expr
msgid "Infill/wall overlap"
msgstr "Solape de relleno/perímetro"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "El área de relleno se amplía ligeramente para solaparse con el perímetro y mejorar la adherencia. El valor porcentual es relativo al ancho de línea del relleno de baja densidad. Ajuste este valor a ~10-15% para minimizar una potencial sobreextrusión y/o una acumulación de material que resulte en artefactos en las superficies superiores."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "El área de relleno se amplía ligeramente para solaparse con el perímetro y mejorar la adherencia. El valor porcentual es relativo al ancho de línea del perímetro interno. Ajuste este valor a ~10-15% para minimizar una potencial sobreextrusión y/o una acumulación de material que resulte en artefactos en las superficies superiores."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Solape de relleno sólido superior/inferior y perímetro"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "El área de relleno sólido de cubierta superior/inferior se amplía ligeramente para solaparse con el perímetro, mejorando la adherencia y minimizando la aparición de agujeros cuando el relleno de cubierta superior/inferior se une a los perímetros. Un valor alrededor de 25-30% es un buen punto de partida para minimizar la aparición de agujeros. El valor porcentual es relativo al ancho de línea del relleno de baja densidad."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "El área de relleno sólido de cubierta superior/inferior se amplía ligeramente para solaparse con el perímetro, mejorando la adherencia y minimizando la aparición de agujeros cuando el relleno de cubierta superior/inferior se une a los perímetros. Un valor alrededor de 25-30% es un buen punto de partida para minimizar la aparición de agujeros. El valor porcentual es relativo al ancho de línea del perímetro interno."
msgid "This is the speed for internal sparse infill."
msgstr "Velocidad del relleno interno de baja densidad."
@@ -16025,8 +17312,9 @@ msgstr "Ancho máximo de una región segmentada. Cero desactiva esta caracterís
msgid "Interlocking depth of a segmented region"
msgstr "Profundidad de entrelazado de una región segmentada"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Profundidad de enlazado de una región segmentada. Se ignorará si \"mmu_segmented_region_max_width\" es cero o si \"mmu_segmented_region_interlocking_depth \"es mayor que \"mmu_segmented_region_max_width\". El valor cero desactiva esta función."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Profundidad de entrelazado de una región segmentada. En una de cada dos capas, la región segmentada se limita a esta profundidad. Se ignorará si \"interlocking_beam\" está activado. Cero desactiva esta característica."
msgid "Use beam interlocking"
msgstr "Usar entrelazado de vigas"
@@ -16127,14 +17415,15 @@ msgstr "Activar el contorneado de capas Z (conocido como Z anti-aliasing)."
msgid "Minimize wall height angle"
msgstr "Minimizar el ángulo de la altura de capa"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Reduce la altura de los perímetros de la superficie superior para que coincida con la altura del borde del modelo.\n"
-"Afecta a los perímetros con una pendiente inferior a este ángulo (grados).\n"
-"Un valor razonable es 35. Establece el valor en 0 para desactivar esta opción."
+"Afecta a los perímetros con una pendiente superior a este ángulo (grados).\n"
+"Un valor razonable es 35. Establezca el valor en 0 para desactivar esta opción."
msgid "Don't alternate fill direction"
msgstr "No alternar la dirección de relleno"
@@ -16207,17 +17496,21 @@ msgstr "Velocidad máxima en Z"
msgid "Maximum speed E"
msgstr "Velocidad máxima en E"
-msgid "Maximum X speed"
-msgstr "Velocidad máxima en X"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Velocidad máxima en el eje X"
-msgid "Maximum Y speed"
-msgstr "Velocidad máxima en Y"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Velocidad máxima en el eje Y"
-msgid "Maximum Z speed"
-msgstr "Velocidad máxima en Z"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Velocidad máxima en el eje Z"
-msgid "Maximum E speed"
-msgstr "Velocidad máxima en E"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Velocidad máxima en el eje E"
msgid "Maximum acceleration X"
msgstr "Aceleración máxima en X"
@@ -16723,8 +18016,9 @@ msgstr "Plugins utilizados"
msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capability."
msgstr "Capacidades de plugins referenciadas por este perfil, almacenadas como name;uuid;capability."
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
-msgstr "Plugin(s) de Python que se invocan en cada paso de la canalización de laminado para leer y modificar los datos intermedios de laminado, incluido un paso final de posprocesamiento de G-code. Investigación/experimental."
+# AI Translated
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgstr "Plugins de Python que se invocan en cada paso de la canalización de laminado para leer y modificar los datos intermedios de laminado, incluido un paso final de posprocesamiento de G-code. Investigación/experimental."
msgid "Printer type"
msgstr "Tipo de impresora"
@@ -17082,7 +18376,8 @@ msgstr "Costura en bisel para perímetros interiores"
msgid "Use scarf joint for inner walls as well."
msgstr "Utilice también una costura en bisel para perímetros internos."
-msgid "Role base wipe speed"
+# AI Translated
+msgid "Role based wipe speed"
msgstr "Velocidad de purga según tipo de línea"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -17172,16 +18467,15 @@ msgstr "Limita los bucles de la falda/protector contra corrientes de aire a una
msgid "Draft shield"
msgstr "Protector contra corrientes de aire"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"Un protector contra corrientes de aire resulta útil para evitar que una impresión de ABS o ASA se deforme o se despegue de la cama de impresión debido a las corrientes de aire. Por lo general, solo es necesario en impresoras de estructura abierta, es decir, sin carcasa.\n"
"\n"
-"Si se activa, la falda tendrá la misma altura que el objeto impreso más alto. En caso contrario, se utilizará la «altura de falda».\n"
-"Nota: Con el protector contra corrientes de aire activo, el faldón se imprimirá a una distancia determinada del objeto. Por lo tanto, si los bordes están activos, puede que se crucen con ellos. Para evitarlo, aumenta el valor de la distancia de la falda.\n"
+"Si se activa, la falda tendrá la misma altura que el objeto impreso más alto. En caso contrario, se utilizará la «Altura de falda»."
msgid "Enabled"
msgstr "Activado"
@@ -17343,6 +18637,130 @@ msgstr "Multi Material con Extrusor Único"
msgid "Use single nozzle to print multi filament."
msgstr "Usa una único boquilla para imprimir multifilamento."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "Impresora IDEX/IQEX"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Activa la impresión en paralelo en impresoras con varios carros independientes (IDEX, IQEX y similares)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Zonas gestionadas por el firmware"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Si se activa, el laminador emite el G-code con el contenido de la zona principal centrado en el origen de la cama (0,0). El firmware de la impresora se encarga de colocar las copias o los reflejos en la posición física de cada zona. Actívelo solo en impresoras cuyo firmware aplique sus propios desplazamientos de zona en el modo Copia/Espejo (Copy/Mirror) (p. ej., el modo de duplicación IDEX de RepRapFirmware). No tiene efecto en el modo Principal (Primary)."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Número de pórticos"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Número de pórticos independientes en el eje Y. 1 para IDEX/IQEX de un solo raíl. 2 para sistemas de doble pórtico (divide la cama en filas)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Herramientas por pórtico"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Número de cabezales independientes por pórtico a lo largo de X. 2 para el estilo IDEX."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Posición de la herramienta 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Posición física en la cama donde se encuentra la herramienta T0 (índice 0). Determina cómo se asignan los índices de herramienta a las zonas de la cama. En configuraciones de un solo pórtico (IDEX) solo importa izquierda/derecha; en configuraciones de doble pórtico (IQEX) se pueden seleccionar las cuatro esquinas (frontal = Y menor / cerca del operario, posterior = Y mayor / parte trasera de la máquina)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Holgura de boquilla X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Distancia (mm) desde la boquilla hasta el borde del carro del lado de colisión en X. Se usa para calcular el ancho de la franja de exclusión por colisión en cada límite X."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Holgura de boquilla Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Distancia (mm) desde la boquilla hasta el borde del carro del lado de colisión en Y. Se usa para calcular el ancho de la franja de exclusión por colisión en cada límite Y."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Margen de seguridad"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Franja de separación orientativa y no bloqueante (mm) que se dibuja dentro de la zona principal en cada límite de carro. Las piezas colocadas dentro de esta franja se laminarán igualmente; es un recordatorio visual para dejar más separación cerca del borde de la zona."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Tema de visualización"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Tema de colores para la visualización de las zonas de la cama IDEX/IQEX. Elija un tema apto para daltónicos si es necesario."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranopia / Protanopia (rojo-verde)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopia (azul-amarillo)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Alto contraste"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "Modo de impresión IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Nombre del modo de impresión en paralelo IDEX/IQEX activo, o \"primary\" para imprimir con un solo carro. Requiere tener activada «Impresora IDEX/IQEX» en el perfil de impresora (Impresora → Multimaterial → Configuración IDEX/IQEX)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "Mapa de filamentos por cabezal IDEX/IQEX"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Asignación por cama que sustituye la correspondencia entre los cabezales físicos y las ranuras de filamento (empezando en 1). Si está vacía, cada cabezal usa el primer filamento al que lo dirige el mapa de extrusores físicos de la impresora."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "Nombres de los modos IDEX/IQEX"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Nombres que se muestran para cada modo de impresión en paralelo IDEX/IQEX definido por el usuario."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Herramientas activas de los modos IDEX/IQEX"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Asignación de roles de herramienta para cada modo. Formato: \"idx:P,idx:C,idx:M\" donde P=Principal (Primary), C=Copia (Copy), M=Espejo (Mirror) (p. ej., \"0:P,1:C,2:M,3:M\"). Lo gestiona el editor de modos IDEX/IQEX del perfil de impresora."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-Codes de los modos IDEX/IQEX"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-Code o llamada a macro que se inserta al inicio de la impresión para cada modo."
+
msgid "Manual Filament Change"
msgstr "Cambio de Filamento Manual"
@@ -17403,7 +18821,7 @@ msgid ""
"\n"
"Unlike \"No sparse layers\" the tower keeps following the model, so the toolhead never has to reach down to it. Has no effect with \"No sparse layers\", smooth timelapse or clumping detection, which need a tower on every layer."
msgstr ""
-"Si está activado, las capas consecutivas en las que la torre de purga no tiene cambio de filamento se imprimen como una sola capa de torre más gruesa en lugar de una capa fina cada una, del mismo modo que la combinación de relleno fusiona el relleno poco denso. La capa fusionada se imprime en la parte superior del tramo, a la altura de todo lo que cubre.\n"
+"Si está activado, las capas consecutivas en las que la torre de purga no tiene cambio de filamento se imprimen como una sola capa de torre más gruesa en lugar de una capa fina cada una, del mismo modo que la combinación de relleno fusiona el relleno de baja densidad. La capa fusionada se imprime en la parte superior del tramo, a la altura de todo lo que cubre.\n"
"\n"
"Solo se fusionan capas completas, y nunca más allá de la altura máxima de capa de la boquilla que imprime la torre (tres cuartas partes del diámetro de la boquilla cuando se deja en 0). Por lo tanto, dos o más capas tienen que caber bajo ese límite para que cambie algo: con una altura de capa de 0,2 mm y un máximo de 0,3 mm no se fusiona nada, mientras que con 0,1 mm tres capas se convierten en una.\n"
"\n"
@@ -17718,6 +19136,170 @@ msgstr "Umbral de solapamiento"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Si el ángulo umbral es cero, se generará soporte para los voladizos cuyo solapamiento sea inferior al umbral. Cuanto menor sea este valor, más pronunciado podrá ser el voladizo que se imprima sin soporte."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Inclinación X de la cama"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Ángulo de inclinación de la cama a lo largo del eje X. Un valor positivo inclina la cama de modo que el lado +X quede más alto, lo que desplaza la gravedad hacia -X y aumenta los voladizos en el lado +X. Un valor negativo eleva el lado -X. Ajústelo a 0 para no inclinar el eje X. En el modo de impresora de cinta, se sincroniza automáticamente con el ángulo de la cinta."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Inclinación Y de la cama"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Ángulo de inclinación de la cama a lo largo del eje Y. Un valor positivo inclina la cama de modo que el lado +Y quede más alto, lo que desplaza la gravedad hacia -Y y aumenta los voladizos en el lado +Y. Un valor negativo eleva el lado -Y. Ajústelo a 0 para no inclinar el eje Y."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Activar la impresión en cinta"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Activa el modo de impresora de cinta. Las impresoras de cinta usan una cinta transportadora como superficie de impresión, inclinada en un ángulo (normalmente 45 grados). El laminador girará el plano de laminado y transformará las coordenadas del G-Code para la superficie de impresión inclinada."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Eje Y infinito"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Activa el eje Y infinito para impresoras de cinta. Si se activa, se elimina en la práctica el límite del volumen de impresión en el eje Y, lo que permite imprimir objetos de cualquier longitud en la dirección de la cinta."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Eje de inclinación de la cinta"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Eje alrededor del cual se gira la malla antes de laminar. Es la inclinación de la impresora de cinta: una rotación isométrica (sin distorsión) que también determina la representación de la cama y la inclinación de la gravedad de los soportes, y que la transformación inversa del G-code deshace antes del cizallamiento/escalado y la reasignación al sistema de coordenadas de la máquina. X es la inclinación típica del pórtico (la cinta avanza a lo largo de Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Ángulo de inclinación de la cinta"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Ángulo de inclinación de la superficie de la cinta, en grados. La mayoría de las impresoras de cinta usan 45°. Los valores positivos giran en sentido antihorario mirando a lo largo del eje de inclinación positivo; la magnitud es también la inclinación física de la cinta usada para la representación de la cama y la gravedad de los soportes."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Desacoplar la inclinación del sistema de coordenadas de la máquina"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Ajuste para expertos: establece el ángulo de inclinación del sistema de coordenadas de la máquina (cizallamiento/escalado del G-code) de forma independiente del ángulo de rotación previo al laminado. Si se desactiva, la transformación del sistema de coordenadas de la máquina se deriva del ángulo de inclinación de la cinta, de modo que un único ángulo controla ambas etapas. Actívelo solo para compensar una máquina cuya inclinación física del pórtico difiera de la rotación de laminado."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Ángulo de inclinación del sistema de coordenadas de la máquina"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Ángulo de inclinación (grados) usado para derivar el cizallamiento (cot) y la escala (1/|sin|) del sistema de coordenadas de la máquina que se aplican al G-Code. Solo se usa cuando «Desacoplar la inclinación del sistema de coordenadas de la máquina» está activado; en caso contrario, se usa el ángulo de inclinación de la cinta."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+# Needs human review: Rev = reversed (max - pos), distinct from -X (negated). Check the abbreviation reads right in the G-code remap dropdown (developer mode).
+msgid "Rev X"
+msgstr "Inv. X"
+
+# AI Translated
+# Needs human review: Rev = reversed (max - pos), distinct from -Y (negated). Check the abbreviation reads right in the G-code remap dropdown (developer mode).
+msgid "Rev Y"
+msgstr "Inv. Y"
+
+# AI Translated
+# Needs human review: Rev = reversed (max - pos), distinct from -Z (negated). Check the abbreviation reads right in the G-code remap dropdown (developer mode).
+msgid "Rev Z"
+msgstr "Inv. Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "Reasignación X del G-Code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Qué eje de laminado se asigna al eje X de la máquina en la salida del G-Code. Se aplica DESPUÉS del laminado, durante la generación del G-Code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "Reasignación Y del G-Code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Qué eje de laminado se asigna al eje Y de la máquina en la salida del G-Code. Se aplica DESPUÉS del laminado, durante la generación del G-Code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "Reasignación Z del G-Code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Qué eje de laminado se asigna al eje Z de la máquina en la salida del G-Code. Se aplica DESPUÉS del laminado, durante la generación del G-Code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Desplazamiento Z del suelo de soportes"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Desplaza hacia arriba o hacia abajo el suelo de la cinta calculado (mm). Los valores negativos bajan el suelo, lo que permite que se conserven más soportes. Úselo para diagnosticar problemas en la fórmula del suelo de la cinta."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Activar la torre de purga de cinta"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Sustituto de la torre de purga para impresoras de cinta. Si se activa en una impresora de cinta, se genera automáticamente un prisma de purga junto a las piezas impresas y la purga de los cambios de filamento se dirige a él (la torre de purga clásica no se puede usar en impresoras de cinta porque su G-Code omite la transformación de la cinta). Solo disponible en impresoras de cinta."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Ancho de la torre de purga de cinta"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Ancho (X de la máquina, a lo ancho de la cinta) del prisma de purga que se genera automáticamente en las impresoras de cinta cuando la torre de purga de cinta está activada y se usan varios filamentos. La purga de los cambios de filamento se dirige a las extrusiones de este prisma en lugar de a una torre de purga clásica. Su altura se calcula automáticamente a partir del volumen de purga máximo por capa: un prisma más ancho resulta más bajo."
+
msgid "Tree support branch angle"
msgstr "Ángulo de las rama de soporte Árbol"
@@ -17894,16 +19476,15 @@ msgstr "El número de capas sólidas superiores se incrementa al laminar si el e
msgid "Separated infills"
msgstr "Rellenos separados"
+# AI Translated
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
"Centra el relleno interno de cada pieza sobre sí misma, como si se laminara por separado, en lugar de sobre todo el conjunto. Las piezas que se tocan o se superponen se tratan como un solo cuerpo y comparten un centro; las piezas separadas (u objetos 3D distintos) tienen cada una el suyo.\n"
"Útil cuando un conjunto agrupa varios objetos que deben mantener cada uno un relleno coherente y autocentrado.\n"
-"Afecta a los patrones de línea y cuadrícula y a los rellenos con plantilla de rotación.\n"
-"Los patrones anclados a coordenadas globales (Giroide, Panal, TPMS, ...) no se ven afectados."
+"Cúbico Adaptativo y Soporte Cúbico siempre centran cada pieza sobre sí misma, y el relleno Rayo se genera para todo el objeto y no se ve afectado."
msgid "Center surface pattern on"
msgstr "Centrar el patrón de superficie en"
@@ -18024,26 +19605,27 @@ msgstr "Ángulo del vértice del cono que se usa para estabilizar la torre de pu
msgid "Maximum wipe tower print speed"
msgstr "Velocidad máxima de impresión de la torre de purga"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
"La velocidad máxima de impresión al purgar en la torre de purga e imprimir las capas de baja densidad de la torre de purga. Al purgar, si la velocidad de relleno de baja densidad o la velocidad calculada a partir de la velocidad volumétrica máxima del filamento es inferior, se utilizará la velocidad más baja.\n"
"\n"
-"Al imprimir las capas de baja densidad, si la velocidad del perímetro interno o la velocidad calculada a partir de la velocidad volumétrica máxima del filamento es inferior, se utilizará la velocidad más baja.\n"
+"Al imprimir las capas de baja densidad, si la velocidad de relleno de baja densidad o la velocidad calculada a partir de la velocidad volumétrica máxima del filamento es inferior, se utilizará la velocidad más baja.\n"
"\n"
-"Aumentar esta velocidad puede afectar a la estabilidad de la torre, así como aumentar la fuerza con la que la boquilla colisiona con las acummulaciones que se hayan podido formar en la torre de purga.\n"
+"Aumentar esta velocidad puede afectar a la estabilidad de la torre, así como aumentar la fuerza con la que la boquilla colisiona con las acumulaciones que se hayan podido formar en la torre de purga.\n"
"\n"
-"Antes de aumentar este parámetro más allá del valor por defecto de 90mm/s, asegúrese de que su impresora puede puentear de forma fiable a las velocidades aumentadas y que el rezume al cambiar de cabezal está bien controlado.\n"
+"Antes de aumentar este parámetro más allá del valor por defecto de 90 mm/s, asegúrese de que su impresora puede puentear de forma fiable a las velocidades aumentadas y que el rezume al cambiar de cabezal está bien controlado.\n"
"\n"
-"Para los perímetros externos de la torre de purga se utiliza la velocidad del perímetro interno independientemente de este ajuste."
+"Para los perímetros externos de la torre de purga se utiliza la velocidad del perímetro interno, también limitada por este ajuste."
msgid "Wall type"
msgstr "Tipo de pared"
@@ -18051,14 +19633,14 @@ msgstr "Tipo de pared"
# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
-"Tipo de pared externa de la torre de purga.\n"
-"1. Rectángulo: Tipo de pared por defecto, un rectángulo con ancho y altura fijos.\n"
+"Tipo de perímetro externo de la torre de purga.\n"
+"1. Rectángulo: Un rectángulo con ancho y altura fijos.\n"
"2. Cono: Un cono con un redondeo en la base para ayudar a estabilizar la torre de purga.\n"
-"3. Costilla: Añade cuatro refuerzos a la pared de la torre para mejorar la estabilidad."
+"3. Costilla: Tipo de pared por defecto, que añade cuatro refuerzos a la pared de la torre para mejorar la estabilidad."
msgid "Rectangle"
msgstr "Rectángulo"
@@ -18128,6 +19710,14 @@ msgstr "La purga tras el cambio de filamento se realizará dentro del soporte de
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Este objeto se utilizará para purgar la boquilla después de un cambio de filamento para ahorrar filamento y disminuir el tiempo de impresión. Los colores de los objetos se mezclarán como resultado. No tendrá efecto, a menos que la torre de purga esté activada."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Objeto de torre de purga de cinta"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Marca el prisma de purga de cinta generado automáticamente. Se gestiona automáticamente; no lo configure manualmente."
+
msgid "Maximal bridging distance"
msgstr "Distancia máxima de puenteado"
@@ -18143,8 +19733,9 @@ msgstr "Espaciado de las líneas de purga de la torre de purga."
msgid "Extra flow for purging"
msgstr "Caudal adicional para purgar"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Flujo extra utilizado para las líneas de purga en la torre de purga. Esto hace que las líneas de purga sean más gruesas o más delgadas de lo normal. La separación se ajusta automáticamente."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Flujo extra utilizado para las líneas de purga en la torre de purga. Esto hace que las líneas de purga sean más gruesas de lo normal. La separación se ajusta automáticamente."
msgid "Idle temperature"
msgstr "Temperatura de Espera"
@@ -18260,14 +19851,15 @@ msgstr "Espesor mínimo de características delgadas. Las características del m
msgid "Minimum wall length"
msgstr "Longitud mínima de perímetro"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Ajuste este valor para evitar que se impriman perímetros cortos y no cerrados, lo que podría aumentar el tiempo de impresión. Los valores más altos eliminan más perímetros y más largos.\n"
+"Ajuste este valor para evitar que se impriman perímetros cortos y no cerrados, lo que podría aumentar el tiempo de impresión. El valor es un múltiplo del ancho del perímetro. Los valores más altos eliminan más perímetros y más largos.\n"
"\n"
-"NOTA: Las superficies inferior y superior no se verán afectadas por este valor para evitar huecos visuales en el exterior del modelo. Ajuste \"Umbral para generar un solo perímetro\" en la configuración avanzada para ajustar la sensibilidad de lo que se considera una superficie superior. El \"Umbral para generar un solo perímetro\" sólo es visible si este valor es superior al valor predeterminado de 0,5, o si las superficies superiores de un solo perímetro están activados."
+"NOTA: Las superficies inferior y superior no se verán afectadas por este valor para evitar huecos visuales en el exterior del modelo. Ajuste \"Umbral para generar un solo perímetro\" en los ajustes de \"Perímetros y superficies\" que aparecen más abajo para ajustar la sensibilidad de lo que se considera una superficie superior. El \"Umbral para generar un solo perímetro\" solo es visible si este valor es superior al valor predeterminado de 0,5, o si las superficies superiores de un solo perímetro están activadas."
msgid "Maximum wall resolution"
msgstr "Resolución máxima de la pared"
@@ -18279,8 +19871,8 @@ msgid "Maximum wall deviation"
msgstr "Desviación máxima de la pared"
# AI Translated
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "La desviación máxima permitida al reducir la resolución para el parámetro «Resolución máxima de la pared». Si aumentas este valor, la impresión será menos precisa, pero el G-code será más pequeño. El parámetro «Desviación máxima de la pared» limita la «Resolución máxima de la pared», por lo que, si ambos entran en conflicto, prevalece el primero."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "La desviación máxima permitida al reducir la resolución para el parámetro «Resolución máxima de la pared». Si aumenta este valor, la impresión será menos precisa, pero el G-code será más pequeño. El parámetro «Desviación máxima de la pared» limita la «Resolución máxima de la pared», por lo que, si ambos entran en conflicto, prevalece «Desviación máxima de la pared»."
msgid "First layer minimum wall width"
msgstr "Ancho mínimo del perímetro de la primera capa"
@@ -18369,8 +19961,11 @@ msgstr "El ancho de la línea del puente no debe superar el diámetro de la boqu
msgid "too large line width "
msgstr "ancho de línea excesivo "
-msgid " not in range "
-msgstr " fuera de rango "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% fuera de rango [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Exportar el proyecto como 3MF."
@@ -18520,6 +20115,13 @@ msgstr "Opciones de orientación"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Opciones de orientación: 0-deshabilitar. 1-habilitar. otros-auto"
+msgid "Repair"
+msgstr "Reparar"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Repara las mallas de los modelos como lo hace «Reparar el modelo»: cierra agujeros y grietas, las orienta hacia fuera y elimina las autointersecciones."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "El ángulo de rotación alrededor del eje Z en grados."
@@ -18628,6 +20230,12 @@ msgstr "Directorio de salida"
msgid "This is the output directory for exported files."
msgstr "Directorio de salida para los archivos exportados."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Nivel de depuración"
@@ -18792,6 +20400,55 @@ msgstr "Parámetros de cambio de cabezal para impresoras de 1 extrusor MM"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "¿Se utilizan las regiones de imprimación multimaterial adicionales en esta impresión?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Extrusor inicial sin soportes"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Índice de base cero del primer extrusor utilizado para imprimir sin soportes. Igual que initial_no_support_tool."
+
+# AI Translated
+msgid "In head wrap detect zone"
+msgstr "En la zona de detección de envolvimiento del cabezal"
+
+# AI Translated
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Indica si la primera capa se superpone con la zona de envolvimiento del cabezal."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Tipo de cama actual"
+
+# AI Translated
+# Needs human review: Example plate names are kept in English because they look like the literal values the placeholder returns; check whether they should use the localized plate names.
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Nombre del tipo de cama seleccionado actualmente (p. ej., 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Modo activo IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Nombre del modo de impresión paralela IDEX/IQEX activo en esta cama (p. ej., 'primary', 'mirror', 'copy'). Cadena vacía si IDEX/IQEX no está habilitado."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Índice del modo activo IDEX/IQEX"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Índice de base cero del modo de impresión paralela IDEX/IQEX activo dentro de imex_mode_names."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code del modo activo IDEX/IQEX"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Plantilla de G-code sin procesar del modo de impresión paralela IDEX/IQEX activo, tras la evaluación de los marcadores de posición. Las variables globales definidas aquí pasan a machine_start_gcode."
+
msgid "Volume per extruder"
msgstr "Volumen por extrusor"
@@ -18937,6 +20594,18 @@ msgstr "Nombre de archivo de entrada sin extensión"
msgid "Source filename of the first object, without extension."
msgstr "Nombre de archivo de origen del primer objeto, sin extensión."
+# AI Translated
+msgid "Full input filename"
+msgstr "Nombre de archivo de entrada completo"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Nombre de archivo de origen del primer objeto."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Nombre de la cama laminada."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "El vector tiene dos elementos: coordenada x e y del punto. Valores en mm."
@@ -18967,6 +20636,58 @@ msgstr "Esquina superior derecha del cuadro delimitador de la cama de impresión
msgid "Size of the print bed bounding box"
msgstr "Tamaño del cuadro delimitador de la cama de impresión"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Centro de la primera capa sin torre de purga"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Altura de la primera capa."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Vector de temperaturas de la cama para cada extrusor/filamento."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Vector de temperaturas de la cama de la primera capa para cada extrusor/filamento. Proporciona el mismo valor que first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Temperatura de la cama de la primera capa (extrusor inicial)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Temperatura de la cama de la primera capa para el extrusor inicial. Igual que bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Vector de temperaturas de recámara para cada extrusor/filamento."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Vector de temperaturas mínimas de recámara para cada extrusor/filamento."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Temperatura de recámara global"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Temperatura de recámara global. Este valor es la temperatura de recámara máxima de todos los extrusores/filamentos utilizados."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Vector de temperaturas de la cama de la primera capa para cada extrusor/filamento. Proporciona el mismo valor que bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Temperatura de la primera capa"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Vector de temperaturas de la primera capa para cada extrusor/filamento."
+
msgid "Timestamp"
msgstr "Marca de tiempo"
@@ -19012,8 +20733,9 @@ msgstr "Nombre de la impresora física utilizada para el corte."
msgid "Layer number"
msgstr "Número de capa"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Índice de la capa actual. Basado en uno (es decir, la primera capa es la número 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Índice de la capa actual. Basado en cero (es decir, la primera capa es la número 0), excepto en el G-Code de cambio de rol de extrusión, donde está basado en uno."
msgid "Layer Z"
msgstr "Z de capa"
@@ -19033,6 +20755,252 @@ msgstr "ID extrusor filamento"
msgid "The current extruder ID. The same as current_extruder."
msgstr "El ID del extrusor actual. El mismo que current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Extrusor anterior"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Índice del extrusor que se está descargando. El índice es de base cero (el primer extrusor tiene el índice 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Extrusor siguiente"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Índice del extrusor que se está cargando. El índice es de base cero (el primer extrusor tiene el índice 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Eje E relativo"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Indica si se está usando posicionamiento relativo."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Número de cambios de herramienta"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "El número de cambios de herramienta a lo largo de la impresión."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Longitud de retracción anterior"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "La longitud de retracción del filamento anterior."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Longitud de retracción nueva"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "La longitud de retracción del filamento nuevo."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Longitud de retracción anterior en el cambio de herramienta"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "La longitud de retracción en el cambio de herramienta del filamento anterior."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Longitud de retracción nueva en el cambio de herramienta"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "La longitud de retracción en el cambio de herramienta del filamento nuevo."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Temperatura del filamento anterior"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "La temperatura del filamento anterior."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Temperatura del filamento nuevo"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "La temperatura del filamento nuevo."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X tras el cambio de herramienta"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "La posición X tras el cambio de herramienta."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y tras el cambio de herramienta"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "La posición Y tras el cambio de herramienta."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z tras el cambio de herramienta"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "La posición Z tras el cambio de herramienta."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Primer volumen de purga"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "El primer volumen de purga."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Segundo volumen de purga"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "El segundo volumen de purga."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Velocidad de avance E del filamento anterior"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "La velocidad de avance del extrusor del filamento anterior."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Velocidad de avance E del filamento nuevo"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "La velocidad de avance del extrusor del filamento nuevo."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Punto de desplazamiento 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "El punto de desplazamiento 1 X."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Punto de desplazamiento 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "El punto de desplazamiento 1 Y."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Punto de desplazamiento 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "El punto de desplazamiento 2 X."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Punto de desplazamiento 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "El punto de desplazamiento 2 Y."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Punto de desplazamiento 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "El punto de desplazamiento 3 X."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Punto de desplazamiento 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "El punto de desplazamiento 3 Y."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Longitud de purga 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "La primera longitud de purga."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Longitud de purga 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "La segunda longitud de purga."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Longitud de purga 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "La tercera longitud de purga."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Longitud de purga 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "La cuarta longitud de purga."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Rol de extrusión"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"El nuevo rol/tipo de extrusión que se va a usar\n"
+"Valores posibles:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Último rol de extrusión"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"El rol/tipo de extrusión usado anteriormente\n"
+"Valores posibles:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Error en el archivo zip"
@@ -19045,24 +21013,32 @@ msgstr "Generación de zonas de relleno"
msgid "Generating infill toolpath"
msgstr "Generación de la trayectoria de la herramienta de relleno"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Capa con perfilado Z %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Detección de voladizos para autoelevación"
msgid "Checking support necessity"
msgstr "Comprobación de la necesidad de soporte"
-msgid "floating regions"
-msgstr "regiones flotantes"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Parece que el objeto %1% tiene regiones flotantes. Reoriente el objeto o habilite la generación de soportes."
-msgid "floating cantilever"
-msgstr "voladizos flotantes"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Parece que el objeto %1% tiene un saliente flotante. Reoriente el objeto o habilite la generación de soportes."
-msgid "large overhangs"
-msgstr "voladizos grandes"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Parece que el objeto %s tiene %s. Por favor, reoriente el objeto o active la generación de soportes."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Parece que el objeto %1% tiene grandes voladizos. Reoriente el objeto o habilite la generación de soportes."
msgid "Generating support"
msgstr "Generación de soportes"
@@ -19073,8 +21049,9 @@ msgstr "Optimización de la trayectoria de cabezal"
msgid "Slicing mesh"
msgstr "Laminando malla"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "No se han detectado capas. Es posible que desee reparar su(s) archivo(s) STL o comprobar su tamaño o grosor y volver a intentarlo.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "No se han detectado capas. Es posible que desee reparar el modelo o comprobar su tamaño o grosor y volver a intentarlo.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19093,6 +21070,397 @@ msgstr ""
msgid "Object name"
msgstr "Nombre del objeto"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "No se puede aplicar el operador menos unario."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "No se puede convertir a entero."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "No se puede redondear un valor no numérico."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "No se puede redondear hacia abajo un valor no numérico."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "No se puede redondear hacia arriba un valor no numérico."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "No se puede aplicar el operador de negación (not)."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "No se pueden sumar tipos no numéricos."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "No se pueden restar tipos no numéricos."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "No se puede multiplicar con un tipo no numérico."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "No se puede dividir un tipo no numérico."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "No se puede dividir entre un tipo no numérico."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "División entre cero"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "No es una expresión buleana"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "No se pueden comparar los tipos."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "No es un tipo numérico."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: el segundo parámetro debe ser un entero"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: el tercer parámetro debe ser un entero"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "El lado izquierdo de una coincidencia de expresión regular debe ser una cadena."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Error al compilar la expresión regular: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "El primer parámetro de regex_replace() debe ser una cadena."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): el primer parámetro (la cadena con la que comparar) debe ser un valor de cadena"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): el patrón debe ser un valor de cadena"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Error al compilar la expresión regular"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "No se puede aplicar una operación lógica a operandos no buleanos."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Intento de indexar una variable escalar"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Índice de vector no válido"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "La variable no existe (en una rama inactiva)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "La variable no existe"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Intento de referenciar una variable opcional no definida (nil)"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Indexación de una variable de vector vacía"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Intento de referenciar un elemento no definido (nil) de un vector de valores opcionales"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "La variable de índice debe ser un entero"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Índice de vector negativo"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "No es un nombre de variable"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "No es un nombre de variable (en una rama inactiva)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "La variable FloatOrPercent no pudo resolver las dependencias de \"ratio_over\""
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Tipo de variable escalar no admitido"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Se hace referencia a una variable de vector cuando se espera un escalar"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Tipo de variable de vector no admitido"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "No se puede modificar una variable de solo lectura"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "El lado derecho no es una expresión numérica"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Se esperaba el número de elementos con el que rellenar un vector."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Se especificó un número de elementos negativo."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "El lado derecho no es una expresión buleana"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Tipo de variable escalar de salida no admitido"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Se hace referencia a una variable de vector de salida cuando se espera un escalar"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Índice fuera de rango"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Tipo de variable de vector de salida no admitido"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "El símbolo ya está definido en el diccionario de sistema de solo lectura"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "El símbolo ya está definido como variable de salida del sistema"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Las variables globales no están disponibles en este contexto"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "El nombre de variable ya está definido en el ámbito local"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "El nombre de variable ya está definido en el ámbito global"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "No se puede asignar un valor escalar a una variable de vector."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "No se puede asignar un valor de vector a una variable escalar."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "No se puede crear una variable de vector a partir de una lista de inicialización vacía, porque no se puede deducir su tipo."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "El lado derecho no es válido: se mezclan tipos numéricos y buleanos."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "No se puede asignar un escalar a un vector"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Algunos elementos de la variable de vector de valores opcionales del lado derecho no están definidos (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "El lado izquierdo es un vector de flotantes, mientras que el lado derecho no lo es."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "El lado izquierdo es un vector de enteros, mientras que el lado derecho no lo es."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "El lado izquierdo es un vector de cadenas, mientras que el lado derecho no lo es."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "El lado izquierdo es un vector de buleanos, mientras que el lado derecho no lo es."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Los vectores del lado izquierdo y del lado derecho no son compatibles."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "No se admite duplicar este tipo de variable de vector"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "el parámetro de empty() no es una variable de vector"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "el parámetro de size() no es una variable de vector"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "No se permite un índice no entero para direccionar una variable de vector."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "El generador de números aleatorios no está disponible en este contexto."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Error de análisis en la línea %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Error de análisis en la línea %1%. Se esperaba la etiqueta %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Error de análisis en la línea %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "El valor de interpolación debe ser un número."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "El valor X de un punto de la tabla debe ser un número."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "El valor Y de un punto de la tabla debe ser un número."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Las coordenadas X de la tabla deben ser crecientes"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "El valor de interpolación está fuera del rango de la tabla"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Error de sintaxis desconocido"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Texto no válido."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Bloque de texto no válido."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Macro no válida."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "No es una macro {if}{else}{endif}."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "No es una macro {switch}."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Se esperaba un formato de expansión de variable heredado"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Se esperaba un identificador."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Se esperaba una expresión condicional."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Se esperaba una expresión buleana."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Se esperaba una expresión."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Se esperaba una llave de cierre o un parámetro opcional."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Se esperaba una lista de patrones de cadena (texto simple o expresión regular)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Se esperaba una referencia a una variable."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Se esperaba un nombre de variable."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Se esperaba una expresión regular."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Secuencia utf8 no válida"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Los caracteres no ASCII7 solo se permiten dentro de bloques de texto y literales de cadena, no dentro de bloques de código."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Secuencia de escape no válida"
+
msgid "Support: generate contact points"
msgstr "Soporte: generando puntos de contacto"
@@ -19109,6 +21477,10 @@ msgstr "No se ha podido leer el archivo proporcionado porque está vacío."
msgid "The file format is incompatible and cannot be parsed."
msgstr "El formato del archivo es incompatible y no se puede analizar."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Error al convertir el recurso a STL mediante ModelIO."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Formato de archivo desconocido: el archivo de entrada debe tener extensión .STL, .obj o .amf (.xml)."
@@ -19157,9 +21529,6 @@ msgstr "Recalibración"
msgid "Calibrate"
msgstr "Calibración"
-msgid "Finish"
-msgstr "Finalizar"
-
msgid "How can I use calibration results?"
msgstr "¿Cómo usar el resultado de la calibración?"
@@ -19254,9 +21623,12 @@ msgstr ""
"Dentro del mismo extrusor, el nombre (%s) debe ser único cuando el tipo de filamento, el diámetro de la boquilla y el flujo de la boquilla sean los mismos.\n"
"¿Está seguro de que desea sobrescribir el resultado histórico?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Este tipo de máquina sólo puede guardar %d resultados históricos por boquilla. Este resultado no se guardará."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Este tipo de máquina solo puede guardar %d resultado histórico por boquilla. Este resultado no se guardará."
+msgstr[1] "Este tipo de máquina solo puede guardar %d resultados históricos por boquilla. Este resultado no se guardará."
msgid "Connecting to printer..."
msgstr "Conectando a la impresora..."
@@ -19479,9 +21851,13 @@ msgstr "Sincronizar la información de la boquilla y AMS"
msgid "Please connect the printer first before synchronizing."
msgstr "Por favor, conecte la impresora antes de sincronizar."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "La información de la boquilla de la impresora %s no ha sido configurada. Por favor, configúrela antes de proceder con la calibración."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "La información de la boquilla derecha de la impresora no se ha configurado. Configúrela antes de continuar con la calibración."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "La información de la boquilla izquierda de la impresora no se ha configurado. Configúrela antes de continuar con la calibración."
msgid "AMS and nozzle information are synced"
msgstr "La información de AMS y de la boquilla está sincronizada"
@@ -19544,6 +21920,11 @@ msgstr "Desde Velocidad Volumétrica"
msgid "To Volumetric Speed"
msgstr "A Velocidad Volúmetrica"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Paso"
+
msgid "Are you sure you want to cancel this print?"
msgstr "¿Está seguro que desea cancelar esta impresión?"
@@ -19569,9 +21950,12 @@ msgstr "Nota: El número del hotend en el %s está vinculado al soporte. Cuando
msgid "Action"
msgstr "Acción"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Este tipo de máquina sólo puede almacenar %d resultados históricos por boquilla."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Este tipo de máquina solo puede guardar %d resultado histórico por boquilla."
+msgstr[1] "Este tipo de máquina solo puede guardar %d resultados históricos por boquilla."
msgid "Edit Flow Dynamics Calibration"
msgstr "Editar Calibración de Dinámicas de Flujo"
@@ -19698,12 +22082,13 @@ msgstr ""
"Los valores de aceleración deben ser mayores que los valores de velocidad.\n"
"Verifique los datos introducidos."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Aún no está habilitado en las impresoras de cinta; use el método Torre PA en su lugar."
+
msgid "Temperature calibration"
msgstr "Calibración de temperatura"
-msgid "Filament type"
-msgstr "Tipo de filamento"
-
msgid "PLA"
msgstr "PLA"
@@ -19725,6 +22110,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Modelo de prueba"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Estándar"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Voladizo"
+
msgid "Start temp: "
msgstr "Temperatura inicial: "
@@ -19850,9 +22248,6 @@ msgstr "Longitud de retracción inicial: "
msgid "End retraction length: "
msgstr "Longitud de retracción final: "
-msgid "Test model"
-msgstr "Modelo de prueba"
-
msgid "Ringing Tower"
msgstr "Torre de resonancia"
@@ -19882,8 +22277,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Frecuencia (Inicio / Fin): "
-msgid "Start / End"
-msgstr "Inicio / Fin"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X Inicio / Fin: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y Inicio / Fin: "
msgid "Frequency settings"
msgstr "Ajustes de frecuencia"
@@ -19920,8 +22320,13 @@ msgstr "Comprueba la compatibilidad del firmware."
msgid "Frequency: "
msgstr "Frecuencia: "
-msgid "Damp"
-msgstr "Amortiguación"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Frecuencia X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Amortiguación (Inicio / Fin): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "El firmware RepRap utiliza la misma frecuencia para ambos ejes."
@@ -20045,9 +22450,12 @@ msgstr "Time-lapse"
msgid "Enable IFS"
msgstr "Habilitar IFS"
+# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "Se han detectado %d posiciones IFS en la impresora."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "Se ha detectado %d ranura IFS en la impresora."
+msgstr[1] "Se han detectado %d ranuras IFS en la impresora."
msgid "This printer does not report a material station."
msgstr "Esta impresora no detecta ninguna estación de material."
@@ -20165,8 +22573,10 @@ msgstr "Restar de"
msgid "Subtract with"
msgstr "Restar con"
-msgid "selected"
-msgstr "seleccionado"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 seleccionado"
msgid "Part 1"
msgstr "Parte 1"
@@ -20279,9 +22689,6 @@ msgstr "por ejemplo: Básico, Mate, Seda, Mármol"
msgid "Filament Preset"
msgstr "Perfil de Filamento"
-msgid "Create"
-msgstr "Crear"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "El fabricante no ha sido seleccionado, por favor, seleccione el fabricante."
@@ -20588,6 +22995,10 @@ msgstr ""
"Impresora y todos los perfiles de filamento y proceso que pertenecen a la impresora.\n"
"Se puede compartir con otros."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Incluir textura y modelo de cama personalizados"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -20637,14 +23048,6 @@ msgstr "Nota: Si el único perfil basado en este filamento es borrado, el filame
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Los perfiles heredados por otros perfiles no pueden borrarse"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "El siguiente perfil hereda de este perfil."
-msgstr[1] "Los siguientes perfiles heredan de este perfil."
-
-msgid "Delete Preset"
-msgstr "Borrar perfil"
-
msgid "Are you sure to delete the selected preset?"
msgstr "¿Está seguro de borrar el perfil seleccionado?"
@@ -20721,10 +23124,12 @@ msgstr "El inicio, el final o el incremento no tienen un valor válido."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "El número de extrusores de la impresora y la impresora seleccionada para la calibración no coinciden."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "El diámetro de la boquilla del extrusor %s es de 0,2 mm, lo que no es compatible con la calibración automática de Flow Dynamics."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -20740,6 +23145,12 @@ msgstr ""
"El diámetro de la boquilla no coincide con el diámetro real de la boquilla de la impresora.\n"
"Haga clic en el botón Sincronizar situado arriba y reinicie la calibración."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "La información de la boquilla de la impresora %s no ha sido configurada. Por favor, configúrela antes de proceder con la calibración."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -20812,6 +23223,11 @@ msgstr "Detectar impresora Creality serie K"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Haz clic en Escanear para buscar impresoras de la serie K en tu red."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Modelo"
+
# AI Translated
msgid "Scan"
msgstr "Escanear"
@@ -20829,9 +23245,12 @@ msgstr "(serie K desconocida)"
msgid "No K-series printers found. Make sure the printer is on the same network and not blocked by Wi-Fi client isolation, then click Scan again."
msgstr "No se encontraron impresoras de la serie K. Asegúrate de que la impresora esté en la misma red y no esté bloqueada por el aislamiento de clientes Wi-Fi, luego haz clic en Escanear de nuevo."
+# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "Se encontraron %zu impresora(s) Creality. Selecciona una y haz clic en Usar seleccionada."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "Se encontró %zu impresora Creality. Selecciónela y haga clic en Usar seleccionada."
+msgstr[1] "Se encontraron %zu impresoras Creality. Seleccione una y haga clic en Usar seleccionada."
msgid "Active"
msgstr "Activo"
@@ -20920,8 +23339,13 @@ msgstr "No se pudo determinar la ruta del ejecutable."
msgid "Failed to launch a new instance."
msgstr "No se pudo iniciar una nueva instancia."
-msgid "log(s)"
-msgstr "registro(s)"
+# AI Translated
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d registro (%.2f %s)"
+msgstr[1] "%d registros (%.2f %s)"
msgid "Choose where to save the exported JSON file"
msgstr "Elige dónde guardar el archivo JSON exportado"
@@ -20964,15 +23388,35 @@ msgstr "No se ha encontrado el tipo de impresora; selecciónelo manualmente."
msgid "Authorizing..."
msgstr "Autorizando..."
-msgid "Error. Can't get API token for authorization"
-msgstr "Error. No se puede obtener el token de la API para la autorización"
+# AI Translated
+msgid "Maximum login retries exceeded"
+msgstr "Se superó el número máximo de intentos de inicio de sesión"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "Error HTTP: %1%"
msgid "Could not parse server response."
msgstr "No se ha podido analizar la respuesta del servidor."
+msgid "Error. Can't get API token for authorization"
+msgstr "Error. No se puede obtener el token de la API para la autorización"
+
msgid "Error saving session to file"
msgstr "Error al guardar la sesión en un archivo"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "La conexión con la nube de 3DPrinterOS funciona correctamente."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Sesión iniciada como usuario: %1%"
+
msgid "Error session check"
msgstr "Error al verificar la sesión"
@@ -21007,6 +23451,42 @@ msgstr "Contraseña incorrecta"
msgid "Could not get resources to create a new connection"
msgstr "No se han podido obtener recursos para crear una nueva conexión"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "La conexión con UltiMaker funciona correctamente."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "No se pudo conectar con UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "¡Error al generar las credenciales! Consulte el registro para más detalles."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "ERROR: El ID o la KEY están vacíos. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Usuario: %1% Contraseña: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Las credenciales de autenticación están esperando aprobación. Apruebe el acceso mediante el cuadro de diálogo de la pantalla de la impresora."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Credenciales de autenticación no válidas"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Error: ¡no se encontraron credenciales de autenticación!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "La carga no está activada en la tarjeta FlashAir."
@@ -21120,6 +23600,14 @@ msgstr ""
"Cuerpo del mensaje: \"%1%\" \n"
"Error: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "La conexión con ESP3D funciona correctamente."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "No se pudo conectar con ESP3D"
+
msgid "No AMS"
msgstr "Sin AMS"
@@ -21191,6 +23679,11 @@ msgstr "El número máximo de impresoras que se pueden seleccionar es %d"
msgid "No task"
msgstr "Sin tareas"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Ver"
+
msgid "Edit Printers"
msgstr "Editar impresoras"
@@ -21232,6 +23725,11 @@ msgstr "Impresión fallida"
msgid "Printing Pause"
msgstr "Impresión pausada"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Preparando"
+
msgid "Pending"
msgstr "Pendiente"
@@ -21263,9 +23761,6 @@ msgstr "Activar la asignación inteligente de filamento: asigna un filamento a v
msgid "File Saving"
msgstr "Guardado de archivo"
-msgid "Don't remind me again"
-msgstr "No me recuerdes de nuevo"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "No aparecerá ninguna otra ventana emergente. Puedes volver a abrirla en 'Preferencias'."
@@ -21290,15 +23785,24 @@ msgstr "Asignar manualmente filamento a la boquilla izquierda o derecha"
msgid "Global settings"
msgstr "Ajustes globales"
-msgid "Video tutorial"
-msgstr "Vídeo tutorial"
-
msgid "(Sync with printer)"
msgstr "(Sincronizar con impresora)"
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Error: el extrusor %s no tiene ninguna boquilla %s disponible; el resultado del grupo actual no es válido."
+# AI Translated
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Error: el extrusor izquierdo no tiene ninguna boquilla estándar disponible; el resultado del grupo actual no es válido."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Error: el extrusor izquierdo no tiene ninguna boquilla de flujo alto disponible; el resultado del grupo actual no es válido."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Error: el extrusor derecho no tiene ninguna boquilla estándar disponible; el resultado del grupo actual no es válido."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Error: el extrusor derecho no tiene ninguna boquilla de flujo alto disponible; el resultado del grupo actual no es válido."
msgid "We will slice according to this grouping method:"
msgstr "Laminar según este método de agrupación:"
@@ -21338,15 +23842,22 @@ msgstr "No se ha podido conectar con SimplyPrint"
msgid "Internal error"
msgstr "Error interno"
-msgid "Unknown error"
-msgstr "Error desconocido"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "La cuenta SimplyPrint no está vinculada. Vaya a Opciones de conexión para configurarla."
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge ha devuelto una respuesta JSON inválida."
+# AI Translated
+msgid "Request failed"
+msgstr "Error en la solicitud"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Error de la API local de Flashforge %1%: %2%"
+
msgid "No Flashforge printers were discovered on the local network."
msgstr "No se han encontrado impresoras Flashforge en la red local."
@@ -21492,8 +24003,12 @@ msgstr "Advertencia: El tipo de borde no está establecido en \"pintado\", ¡las
msgid "Set the brim type of this object to \"painted\""
msgstr "Establecer el tipo de borde de este objeto a \"pintado\""
-msgid "invalid brim ears"
-msgstr "orejas con el borde defectuoso"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d oreja de borde no válida"
+msgstr[1] "%d orejas de borde no válidas"
msgid "Brim Ears"
msgstr "Orejas de borde"
@@ -21519,6 +24034,7 @@ msgstr "Error al cargar información de objetos omitidos. Por favor, inténtelo
msgid "Failed to create the temporary folder."
msgstr "No se ha podido crear la carpeta temporal."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Seleccionado"
@@ -21538,9 +24054,12 @@ msgstr "Omitiendo todos los objetos."
msgid "The printing job will be stopped. Continue?"
msgstr "El trabajo de impresión se detendrá. ¿Continuar?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Omitiendo %d objetos."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "Omitiendo %d objeto."
+msgstr[1] "Omitiendo %d objetos."
msgid "This action cannot be undone. Continue?"
msgstr "Esta acción no se puede deshacer. ¿Continuar?"
@@ -21685,6 +24204,42 @@ msgstr "Si está activado, los valores anteriores se guardan como los predetermi
msgid "PresetBundle"
msgstr "PaqueteDePerfiles"
+# AI Translated
+msgid "Export Presets"
+msgstr "Exportar perfiles"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Mostrar en la carpeta"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Eliminar paquete"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Desuscribirse del paquete"
+
+# AI Translated
+msgid "Update available"
+msgstr "Actualización disponible"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Paquete no autorizado"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Abrir este paquete en el navegador"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "Suscrito"
+
+# AI Translated
+msgid "Local"
+msgstr "Local"
+
msgid "Bundle folder does not exist."
msgstr "La carpeta «Bundle» no existe."
@@ -21718,6 +24273,14 @@ msgstr "Desuscribirse del paquete"
msgid "ExportPresetBundle"
msgstr "ExportarPaqueteDePerfiles"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Exportar a OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Exportar a carpeta"
+
msgid "Save preset bundle"
msgstr "Guardar paquete de perfiles"
@@ -21803,6 +24366,11 @@ msgstr "Control de secado del AMS"
msgid "Filament Drying Settings"
msgstr "Ajustes de secado del filamento"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "h"
+
msgid "Stopping"
msgstr "Deteniendo"
@@ -21940,6 +24508,11 @@ msgstr "Iniciando: comprobando la entrada de aire"
msgid "Starting: Checking air vent"
msgstr "Iniciando: comprobando la salida de aire"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "No se puede crear el directorio %1%"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Es posible que el filamento no sea compatible con la configuración de la máquina. Se utilizará una configuración de filamento genérico."
@@ -21955,6 +24528,105 @@ msgstr "Es posible que el filamento no sea compatible con la configuración de l
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Modelo de filamento desconocido. Se utilizará la configuración de filamento genérico. Se utilizará una configuración de filamento aleatorio."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Archivo de configuración desconocido: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Archivo de configuración no válido: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "ranura %1% -> ranura %2%: filamento mixto"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "definición de filamento mixto: se alcanzó el límite de ranuras de filamento"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "se alcanzó el límite de ranuras de filamento"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "el límite de filamentos de la impresora es %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "ranura %1% -> ranura %2%: filamento mixto sin asignar (el límite de filamentos de la impresora es %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "ranura %1%: filamento mixto sin asignar (el límite de filamentos de la impresora es %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "ranura %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "ranura %1%: no se pudo importar la definición de filamento mixto"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "necesita al menos dos componentes"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "los componentes hacen referencia a ranuras inexistentes"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "definición de filamento mixto: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "ranura %1%: no se pudo importar la definición de filamento mixto (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "ranura %1%: %2% -> %3% (sustituto)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Error al cargar el archivo de configuración %1%\n"
+"Se recomienda limpiar primero el directorio %2%"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Versión de configuración del fabricante %1%: %2% no válida\n"
+"Se recomienda limpiar primero el directorio %3%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Error al cargar el archivo de configuración %1%: %2%\n"
+"Se recomienda limpiar primero el directorio %3%"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Ocultar los planos de referencia y los ejes"
@@ -22268,6 +24940,11 @@ msgstr "No hay ningún cuerpo de superficie que engrosar — cree primero una op
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Referencia / Curva (plano / eje / sist. coord. / hélice / proyectar)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Plano"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Plano de referencia (desfase / inclinación / plano medio / tangente / dos aristas / coincidente)"
@@ -22334,6 +25011,11 @@ msgstr "Mover y/o rotar un cuerpo existente"
msgid "Transform needs a body — add or import one first"
msgstr "Transformar requiere un cuerpo — añada o importe uno primero"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Reflejar"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Reflejar un cuerpo respecto a un plano"
@@ -22427,6 +25109,11 @@ msgstr "(ninguna)"
msgid "Hole / thread"
msgstr "Agujero / rosca"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Agujero"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Taladrar un agujero, centrado en una cara elegida o colocado en un plano"
@@ -22471,6 +25158,11 @@ msgstr "Haga clic en 2 puntos o en una línea / círculo / arco para colocar una
msgid "Line / polyline"
msgstr "Línea / polilínea"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Línea"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Haga clic en el inicio y luego en el final — después establezca la longitud exacta"
@@ -22607,6 +25299,9 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Haga clic en los puntos de control; doble clic, clic derecho o Intro para terminar"
+msgid "Point"
+msgstr "Punto"
+
# AI Translated
msgid "Click to place a point"
msgstr "Haga clic para colocar un punto"
@@ -22725,16 +25420,17 @@ msgstr "Elija entidades, arrastre el tirador del ángulo y haga clic en el núme
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Haga clic en el centro y luego en un vértice — %d lados, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Haga clic en el centro y luego en un vértice — %d lado, circunscrito"
+msgstr[1] "Haga clic en el centro y luego en un vértice — %d lados, circunscrito"
# AI Translated
-msgid "circumscribed"
-msgstr "circunscrito"
-
-# AI Translated
-msgid "inscribed"
-msgstr "inscrito"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Haga clic en el centro y luego en un vértice — %d lado, inscrito"
+msgstr[1] "Haga clic en el centro y luego en un vértice — %d lados, inscrito"
# AI Translated
msgid "Polygon"
@@ -23072,6 +25768,11 @@ msgstr "Sobre cara"
msgid "Thread plane"
msgstr "Plano de la rosca"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Norma"
+
# AI Translated
msgid "Pitch"
msgstr "Paso"
@@ -23259,6 +25960,9 @@ msgstr "Elija una cara sólida para abrirla y luego establezca el grosor de pare
msgid "(pick a side face)"
msgstr "(elija una cara lateral)"
+msgid "Face"
+msgstr "Cara"
+
# AI Translated
msgid "Draft"
msgstr "Desmoldeo"
@@ -23637,8 +26341,10 @@ msgstr "Croquis actualizado"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Croquis creado (%zu cotas conductoras) — selecciónelo y luego haga clic derecho para extruir"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Croquis creado (%zu cota conductora) — selecciónelo y luego haga clic derecho para extruir"
+msgstr[1] "Croquis creado (%zu cotas conductoras) — selecciónelo y luego haga clic derecho para extruir"
# AI Translated
#, c-format, boost-format
@@ -23775,8 +26481,10 @@ msgstr "Editando: Croquis %d · N = vista normal al plano · Confirmar o
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — %zu triángulos"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — %zu triángulo"
+msgstr[1] "OK — %zu triángulos"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -23862,10 +26570,18 @@ msgstr "La malla no contiene triángulos"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Esta malla tiene %d triángulo. Cada triángulo se convierte en una cara B-rep antes de fusionar las coplanares, por lo que importarla puede tardar mucho y dejar un cuerpo lento de editar. Normalmente es mejor simplificar antes la malla.\n"
+"\n"
+"¿Importar de todos modos?"
+msgstr[1] ""
"Esta malla tiene %d triángulos. Cada triángulo se convierte en una cara B-rep antes de fusionar las coplanares, por lo que importarla puede tardar mucho y dejar un cuerpo lento de editar. Normalmente es mejor simplificar antes la malla.\n"
"\n"
"¿Importar de todos modos?"
@@ -23894,8 +26610,8 @@ msgstr "Error al importar la malla: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Sólido importado — %d triángulos → %d caras, volumen %.2f mm³. Elija una cara o arista y luego Redondeo / Cortar / Vaciado para modificarlo"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Sólido importado — triángulos: %d → caras: %d, volumen %.2f mm³. Elija una cara o arista y luego Redondeo / Cortar / Vaciado para modificarlo"
# AI Translated
#, c-format, boost-format
@@ -23912,8 +26628,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s añadido al croquis — confirme para aplicarlo"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — arrastre para colocar/dimensionar y luego confirme"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — arrastre para colocar/dimensionar y luego confirme"
# AI Translated
msgid "Insert canceled"
@@ -24120,9 +26838,12 @@ msgid "a geometry operation failed"
msgstr "falló una operación geométrica"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d elegidas"
+msgid_plural " · %d picked"
+msgstr[0] " · %d elegida"
+msgstr[1] " · %d elegidas"
# AI Translated
#, c-format, boost-format
@@ -24138,7 +26859,9 @@ msgstr "Seleccionar — haga clic en una entidad para elegirla · arrastre un
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d elegidas · ahora elija una restricción (Horizontal, Paralelo, Tangente, Igual…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d elegida · ahora elija una restricción (Horizontal, Paralelo, Tangente, Igual…)"
+msgstr[1] "%d elegidas · ahora elija una restricción (Horizontal, Paralelo, Tangente, Igual…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -24399,7 +27122,9 @@ msgstr "Reflejar — eje definido · ahora haga clic en las entidades que refl
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Reflejar — eje definido · %d para reflejar · haga clic en otra para añadirla o quitarla · Intro aplica"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Reflejar — eje definido · %d para reflejar · haga clic en otra para añadirla o quitarla · Intro aplica"
+msgstr[1] "Reflejar — eje definido · %d para reflejar · haga clic en otra para añadirla o quitarla · Intro aplica"
# AI Translated
msgid "Move — click the entities to move"
@@ -24522,8 +27247,10 @@ msgstr "Punto de croquis"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d entidades de croquis"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d entidad de croquis"
+msgstr[1] "%d entidades de croquis"
# AI Translated
msgid "select something first"
@@ -25059,8 +27786,10 @@ msgid "Applied edit"
msgstr "Edición aplicada"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — escriba un valor y pulse Intro (o Confirmar)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — escriba un valor y pulse Intro (o Confirmar)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -25132,10 +27861,23 @@ msgstr "Enviar a la cama — enviar el sólido a Preparar"
msgid "Nothing to commit — add a feature first"
msgstr "Nada que enviar — añada primero una operación"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Cuerpo de diseño %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Todos los cuerpos están ocultos — muestre uno antes de enviar"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Ensamblaje de diseño"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Cuerpo de diseño"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -25202,8 +27944,10 @@ msgstr "No válido: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Vista previa — %zu triángulos"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Vista previa — %zu triángulo"
+msgstr[1] "Vista previa — %zu triángulos"
# AI Translated
#, c-format, boost-format
@@ -25305,8 +28049,10 @@ msgstr "Esa cota no se puede satisfacer — el croquis tiene exceso de restricci
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "%1% restricción(es) ignorada(s) por no poder actuar sobre esta geometría (una elipse o una curva spline, o un círculo de tamaño cero)"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% restricción no puede actuar sobre esta geometría (una elipse, una curva spline o un círculo de tamaño cero) y se ignora"
+msgstr[1] "%1% restricciones no pueden actuar sobre esta geometría (una elipse, una curva spline o un círculo de tamaño cero) y se ignoran"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -25364,8 +28110,10 @@ msgstr "Chaflán: la distancia sobrepasa uno de los lados, o las dos líneas no
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "%1% restricción(es) eliminada(s) al quedar invalidada(s) por el redondeo/chaflán"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "Se eliminó %1% restricción invalidada por el redondeo/chaflán"
+msgstr[1] "Se eliminaron %1% restricciones invalidadas por el redondeo/chaflán"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -25385,8 +28133,10 @@ msgstr "El número de copias debe ser un número entero, 2 o más"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "%1% restricción(es) liberada(s) por la transformación"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "%1% restricción liberada por la transformación"
+msgstr[1] "%1% restricciones liberadas por la transformación"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -25536,11 +28286,6 @@ msgstr "Engrosar superficie"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Engrosar superficie requiere un cuerpo de superficie — cree uno primero con una herramienta de superficie"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Agujero"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -25625,11 +28370,6 @@ msgstr "Matriz circular"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Repetir el cuerpo alrededor de un eje — establezca el número y el ángulo"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Reflejar"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -25666,11 +28406,6 @@ msgstr "Alinear requiere un cuerpo — añada o importe uno primero"
msgid "Align the body to a picked face or plane"
msgstr "Alinear el cuerpo con una cara o un plano elegidos"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Plano"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -25776,11 +28511,6 @@ msgstr "Eliminar cuerpo"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Eliminar todo este cuerpo — elimina la operación a partir de la cual se creó"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Línea"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -26095,213 +28825,6 @@ msgstr "Esta fuente no tiene contorno para este texto"
msgid "Size: %.1f × %.1f mm"
msgstr "Tamaño: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Primitivo"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Se generó una malla vacía"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Caja"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Rápido:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Ancho (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Profundidad (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Altura (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "R inferior"
-
-# AI Translated
-msgid "Top R"
-msgstr "R superior"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "R mayor"
-
-# AI Translated
-msgid "Minor R"
-msgstr "R menor"
-
-# AI Translated
-msgid "All edges"
-msgstr "Todas las aristas"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Aristas superiores"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Aristas inferiores"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Aristas laterales"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Resolución de la malla"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Añadir forma"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "No hay perfil exterior"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "No se pudo crear la cara exterior"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "No se pudo crear la cara con agujeros"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Falló la revolución"
-
-# AI Translated
-msgid "Profile"
-msgstr "Perfil"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Iniciar un nuevo perfil (para agujeros)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segmentos"
-
-# AI Translated
-msgid "Sides"
-msgstr "Lados"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Haga clic en el lienzo para dibujar"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Ajustar a la cuadrícula"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Paso de cuadrícula"
-
-# AI Translated
-msgid "Outer"
-msgstr "Exterior"
-
-# AI Translated
-msgid "closed"
-msgstr "cerrado"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% puntos %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (superior)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (frontal)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (lateral)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Grados de revolución"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "Establezca 0 para extruir y >0 para revolución"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Cajera (corte)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu perfil cerrado"
-msgstr[1] "%zu perfiles cerrados"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Dibuje un perfil cerrado para activarlo"
-
-msgid "Clear all"
-msgstr "Borrar todo"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Resultado vacío"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Extruir: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Revolución: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "No hay ningún objeto seleccionado"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Falló la cara"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Falló la cara con agujeros"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Malla de la herramienta vacía"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Cajera añadida (volumen negativo)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Cajera: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -26417,6 +28940,10 @@ msgstr "Gizmo ensamblar"
msgid "Gizmo brim ears"
msgstr "Gizmo orejas de borde"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Herramienta de pintado de desplazamiento de textura"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Control deslizante vertical - Mover el pulgar activo hacia Arriba"
@@ -26651,6 +29178,12 @@ msgstr "requiere una cara cilíndrica en ambos extremos — el conector %1% est
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "requiere una cara cilíndrica en ambos extremos — el conector %1% está en una cara curva"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (falta el plano base)"
+
# AI Translated
msgid "two points are coincident"
msgstr "los dos puntos son coincidentes"
@@ -26679,10 +29212,31 @@ msgstr "los planos son paralelos (no hay intersección)"
msgid "zero-length direction"
msgstr "dirección de longitud cero"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "una operación actúa sobre el cuerpo %1%, que no existe en ese punto del historial"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "\"%1%\" actúa sobre un cuerpo creado por una operación que se eliminó u ocultó"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "\"%1%\" actúa sobre un cuerpo que no existe en ese punto del historial"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "la operación la usa una operación posterior"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "\"%1%\" usa \"%2%\", por lo que no puede ir antes"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "las entidades del croquis no forman un contorno cerrado"
@@ -26693,9 +29247,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Abierto en (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...y %1% extremo(s) abierto(s) más"
+msgid "Open ends not shown: %1%"
+msgstr "Extremos abiertos no mostrados: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "revolución: la línea del eje ya no está en el croquis — elija el eje de nuevo"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "revolución: la línea del eje no tiene longitud"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -26843,6 +29406,30 @@ msgstr "falló el contorno del agujero"
msgid "hole cut failed"
msgstr "falló el corte del agujero"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "rosca: el diámetro debe ser de al menos 1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "rosca: el paso debe ser mayor que 0.1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "rosca: la profundidad debe estar entre 0 y 0.7 x el paso"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "rosca: la profundidad es demasiado grande para este diámetro"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "rosca: la longitud debe ser mayor que medio paso"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "rosca: demasiadas vueltas (longitud / paso debe ser inferior a 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "la rosca interior requiere un cuerpo"
@@ -26903,6 +29490,22 @@ msgstr "falló eliminar cara"
msgid "delete_face produced no geometry"
msgstr "eliminar cara no produjo ninguna geometría"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "booleana: no hay cuerpo objetivo"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "booleana: no hay cuerpo herramienta — elija un segundo cuerpo"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "booleana: el objetivo y la herramienta son el mismo cuerpo"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "booleana: un cuerpo no tiene geometría"
+
# AI Translated
msgid "boolean operation failed"
msgstr "falló la operación booleana"
@@ -27230,6 +29833,10 @@ msgstr "Imágenes del modelo"
msgid "Auxiliaries"
msgstr "Auxiliares"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Torre de purga de cinta"
+
# AI Translated
msgid "Project Filament List"
msgstr "Lista de filamentos del proyecto"
@@ -27264,8 +29871,18 @@ msgstr "Se necesitan al menos dos filamentos del mismo tipo de material para la
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "La lista de materiales admite como máximo %1% colores. Tras la descomposición de %2%, el número de materiales superaría %1%. Elimine los filamentos no utilizados en la pantalla principal antes de descomponer."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "La lista de materiales admite como máximo %1% color. Tras la descomposición de la lista de materiales, el número de materiales superaría %1%. Elimine los filamentos no utilizados en la pantalla principal antes de descomponer."
+msgstr[1] "La lista de materiales admite como máximo %1% colores. Tras la descomposición de la lista de materiales, el número de materiales superaría %1%. Elimine los filamentos no utilizados en la pantalla principal antes de descomponer."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "La lista de materiales admite como máximo %1% color. Tras la descomposición de %2%, el número de materiales superaría %1%. Elimine los filamentos no utilizados en la pantalla principal antes de descomponer."
+msgstr[1] "La lista de materiales admite como máximo %1% colores. Tras la descomposición de %2%, el número de materiales superaría %1%. Elimine los filamentos no utilizados en la pantalla principal antes de descomponer."
# AI Translated
msgid "Cyan"
@@ -27295,6 +29912,13 @@ msgstr "Verde"
msgid "Blue"
msgstr "Azul"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -27302,7 +29926,1235 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "La lista de filamentos actual no contiene %s. Tras la descomposición se creará automáticamente un filamento de proyecto que necesita el filamento mixto."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "La lista de filamentos actual no contiene %s. Tras la descomposición se creará automáticamente un filamento de proyecto necesario para el filamento mixto."
+msgstr[1] "La lista de filamentos actual no contiene %s. Tras la descomposición se crearán automáticamente los filamentos de proyecto necesarios para el filamento mixto."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Opacidad"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -27398,10 +31250,6 @@ msgstr "Mis ajustes"
msgid "Custom Printer Setup"
msgstr "Configuración de impresora personalizada"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Impresora personalizada"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Definir un perfil de impresora personalizado"
@@ -27669,6 +31517,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Empotrar"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Escribir un valor exacto en un deslizador"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Icono de edición en el extremo derecho de un deslizador"
+
# AI Translated
msgid "Texture displacement"
msgstr "Desplazamiento de textura"
@@ -27805,6 +31661,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Quitar textura"
+# AI Translated
+msgid "Adjust image"
+msgstr "Ajustar imagen"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Brillo"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Contraste"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Nitidez"
+
+# AI Translated
+msgid "Blur"
+msgstr "Desenfoque"
+
+# AI Translated
+msgid "Hue"
+msgstr "Tono"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Resalta los detalles más finos de la imagen. Se aplica después de Desenfoque, así que pueden usarse juntos: primero se elimina el grano con el desenfoque y luego se afilan los bordes que quedan."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Desenfoca la propia imagen. El deslizador Suavizado de la capa suaviza el relieve sin alterar la imagen, y es el primero al que conviene recurrir."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Esta textura está en escala de grises, así que no tiene ningún tono que desplazar."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "El modelo se actualiza al soltar un deslizador. Guardar como copia escribe la imagen ajustada en su biblioteca de texturas y hace que esta capa apunte a ella."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Guardar como copia"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Eliminar capa de desplazamiento de textura"
@@ -27941,6 +31841,15 @@ msgstr "Escribe cada etapa capturada como un archivo OBJ, para poder abrirlas un
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "No se pudo trasladar el área pintada al modelo remallado, así que no se cambió nada. Cambie al modo Pro y remalle antes de pintar."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Rango: de %1% a %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Escriba un valor en lugar de arrastrar. Ctrl+clic en el deslizador hace lo mismo."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -28047,8 +31956,8 @@ msgid "Click a triangle to paint it"
msgstr "Haga clic en un triángulo para pintarlo"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Requiere que la capa activa use el mapeo Desplegar (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Solo para una capa de textura mapeada con Desplegar (LSCM) - establezca el «Mapeo» de la capa activa en «Desplegar» para usar esta vista."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -28063,16 +31972,16 @@ msgid "Checker"
msgstr "Damero"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Damero - una cuadrícula de prueba en lugar de la textura. Donde los cuadrados siguen siendo cuadrados, la textura no se deforma; donde se estiran, la textura también se estirará"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Damero - una cuadrícula de prueba en lugar de la textura. Donde los cuadrados siguen siendo cuadrados, la textura no se deforma; donde se estiran, la textura también se estirará. Abre el editor UV si está cerrado"
# AI Translated
msgid "Distortion"
msgstr "Distorsión"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Distorsión - mapa de calor del estiramiento, de azul a rojo, sobre el despliegue"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Distorsión - mapa de calor del estiramiento, de azul a rojo, sobre el despliegue. Abre el editor UV si está cerrado"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -28098,6 +32007,10 @@ msgstr "Elija otra imagen para esta capa. La pintura, la profundidad y el mosaic
msgid "not painted"
msgstr "sin pintar"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Brillo, contraste, nitidez, desenfoque y tono, que se muestran en la imagen y en el modelo a medida que los ajusta. Guardar como copia escribe el resultado en su biblioteca de texturas y hace que esta capa apunte a él."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Subir - se aplica antes"
@@ -28118,10 +32031,20 @@ msgstr "Altura del relieve: cuánto eleva la superficie el blanco de la textura,
msgid "Tile size"
msgstr "Tamaño de tesela"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Se mapea según la disposición UV del propio modelo, que ya es la ubicación: una copia de la textura lo cubre exactamente, por lo que no hay tamaño de tesela que definir."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Ancho de una copia de la textura sobre el modelo. Un valor menor repite el patrón más a menudo y hace su detalle más fino; con Mosaico desactivado, es el tamaño de la copia única."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Gira la textura sobre la superficie, en grados - para alinear un patrón con una arista del modelo."
@@ -28189,28 +32112,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Intercala dos filamentos para simular los colores intermedios, de modo que unos pocos filamentos pueden cubrir una foto o un degradado. Una imagen de colores planos se imprime igual en ambos casos. Desactivado usa un filamento por área."
# AI Translated
-msgid "Mix by"
-msgstr "Mezclar por"
+msgid "Mixed colors"
+msgstr "Colores mezclados"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Superficie"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "El número máximo de filamentos mixtos que puede añadir un empotrado. Se eligen a partir de los colores de la textura y solo se crean los que el empotrado usa realmente."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Capas: los dos filamentos se alternan entre capas de impresión, lo que mezcla de forma suave en las superficies verticales pero desaparece en las horizontales, donde toda una capa es una sola franja.\n"
-"Superficie: un damero fino sobre la superficie, que funciona con cualquier ángulo pero puede verse como una textura en lugar de como una mezcla.\n"
-"Automático: capas en las caras verticales; las caras horizontales toman el filamento único más cercano, ya que allí un damero se ve como un patrón."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% colores imprimibles con %2% filamentos"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "con %1% filamento"
+msgstr[1] "con %1% filamentos"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% color imprimible %2%"
+msgstr[1] "%1% colores imprimibles %2%"
# AI Translated
msgid "Denoise"
@@ -28261,6 +32190,18 @@ msgstr "Desde la vista"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Desde la vista - proyecta directamente sobre el área pintada desde donde está mirando, como un proyector de diapositivas."
+# AI Translated
+msgid "Model UV"
+msgstr "UV del modelo"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "UV del modelo - usa las coordenadas de textura con las que viene el propio modelo, de modo que una textura hecha para ese modelo queda exactamente donde se pintó. No se despliega nada y el Tamaño de tesela no se aplica: la disposición del propio modelo es la ubicación."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Este modelo no incluye coordenadas de textura propias. Solo un modelo importado con un canal UV - un OBJ con textura, por ejemplo - puede mapearse con ellas."
+
# AI Translated
msgid "Open UV editor"
msgstr "Abrir editor UV"
@@ -28275,8 +32216,10 @@ msgstr "Aún sin desplegar"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% islas"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% isla"
+msgstr[1] "%1% islas"
# AI Translated
msgid "Capture current view"
@@ -28306,10 +32249,6 @@ msgstr "Marco de proyección"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Abre una ventana que se arrastra sobre el modelo. Lo que se ve a través de ella es lo que recibe la textura, y su borde pasa a ser el límite de la proyección."
-# AI Translated
-msgid "Opacity"
-msgstr "Opacidad"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Lo sólida que se ve la ventana del marco mientras la coloca. Redúzcala para ver el modelo a través de ella; no afecta al resultado."
@@ -28363,6 +32302,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Añadir"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Sustituir"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -28382,8 +32326,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "La capa base no tiene nada debajo con lo que combinarse, así que siempre añade."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Lo que hace esta capa donde se superpone a las de abajo. Añadir y Restar acumulan relieve o lo tallan. Multiplicar y Dividir escalan lo que hay debajo, lo que convierte esta capa en una máscara sobre ello - en ese caso, Profundidad actúa como una intensidad, y 1 mm deja intactas las áreas blancas."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Lo que hace esta capa donde se superpone a las de abajo. Añadir y Restar acumulan relieve o lo tallan. Sustituir las reemplaza, de modo que solo queda el relieve de esta capa donde está pintada. Multiplicar y Dividir escalan lo que hay debajo, lo que convierte esta capa en una máscara sobre ello - en ese caso, Profundidad actúa como una intensidad, y 1 mm deja intactas las áreas blancas."
# AI Translated
msgid "Adjust placement"
@@ -28407,8 +32351,10 @@ msgstr "Más ajustes"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Las %1% capas están en uso"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "La %1% capa está en uso"
+msgstr[1] "Las %1% capas están en uso"
# AI Translated
msgid "Add layer"
@@ -28488,8 +32434,10 @@ msgstr "Presupuesto de triángulos: se ajusta con Triángulos, más abajo."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Vista previa: %1% triángulos"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Vista previa: %1% triángulo"
+msgstr[1] "Vista previa: %1% triángulos"
# AI Translated
msgid "Steps"
@@ -28531,6 +32479,12 @@ msgstr "Remallado"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Tamaño de triángulo con el que se reconstruye todo el modelo, en milímetros. El desplazamiento funciona mejor en una malla uniforme; esto es lo que la crea a partir de una importación irregular."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Conservar aristas vivas"
@@ -28665,14 +32619,6 @@ msgstr "Necesita unos %1% triángulos, presupuesto %2% - el empotrado volverá a
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Cuántos miles de triángulos puede añadir el refinado al modelo. El triángulo que peor se ajusta siempre se divide primero, así que incluso una ejecución que lo gaste todo lo habrá gastado donde más se nota. Auméntelo si el relieve sigue viéndose basto."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Detiene el empotrado. Lo que ya había terminado se queda en el modelo y se puede deshacer."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Cierra la herramienta sin empotrar. Su pintura, capas y ajustes se quedan con el modelo."
-
# AI Translated
msgid "Preparing..."
msgstr "Preparando..."
@@ -28697,35 +32643,56 @@ msgstr "Convierte los mapas de alturas pintados en geometría real moviendo los
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Convierte los mapas de alturas pintados en geometría real. Primero la malla se remalla con una densidad uniforme y se refina donde la textura cambia, para que el detalle tenga vértices donde apoyarse - todo en un solo paso."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Detiene el empotrado. Lo que ya había terminado se queda en el modelo y se puede deshacer."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Cierra la herramienta sin empotrar. Su pintura, capas y ajustes se quedan con el modelo."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Modelo: %1% triángulos - el empotrado refina hasta la resolución indicada arriba, dentro de su presupuesto"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Modelo: %1% triángulo - el empotrado refina hasta la resolución indicada arriba, dentro de su presupuesto"
+msgstr[1] "Modelo: %1% triángulos - el empotrado refina hasta la resolución indicada arriba, dentro de su presupuesto"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Empotrar mueve los vértices existentes - el modelo se queda en %1% triángulo"
+msgstr[1] "Empotrar mueve los vértices existentes - el modelo se queda en %1% triángulos"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Empotrar mueve los vértices existentes - el modelo se queda en %1% triángulos"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Resultado del empotrado: hasta ~%1% k triángulo"
+msgstr[1] "Resultado del empotrado: hasta ~%1% k triángulos"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Resultado del empotrado: hasta ~%1% k triángulos"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% capas sin pintar, omitidas"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% capa sin pintar, omitida"
+msgstr[1] "%1% capas sin pintar, omitidas"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% sin pintar, omitida(s)"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% sin pintar, omitida"
+msgstr[1] "%1% sin pintar, omitidas"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -28742,6 +32709,10 @@ msgstr "Edición de desplazamiento de textura"
msgid "Choose SLA archive:"
msgstr "Elige el archivo SLA:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "Archivos SL1 / SL1S"
+
# AI Translated
msgid "Import file"
msgstr "Importar archivo"
@@ -28905,6 +32876,34 @@ msgstr "Plugins de filamento"
msgid "Printer plugins"
msgstr "Plugins de impresora"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Este perfil no usa ninguna capacidad de plugin"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Capacidades usadas por este perfil"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Configuración de la capacidad (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Configuración del plugin"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Descartar la configuración específica de este perfil y volver a usar la configuración global"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Restaurar valores predeterminados"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "JSON no válido"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "La configuración no es un JSON válido. No se guardaron los cambios."
@@ -28924,10 +32923,6 @@ msgstr ""
"\n"
"Esto descarta la configuración propia del perfil y usa la configuración global."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Restaurar valores predeterminados"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Usando la configuración global. Guarde el perfil para conservarla."
@@ -28953,10 +32948,6 @@ msgstr "Cancelar suscripción"
msgid "Overwrite Plugin"
msgstr "Sobrescribir plugin"
-# AI Translated
-msgid "Show in folder"
-msgstr "Mostrar en la carpeta"
-
# AI Translated
msgid "Reinstall"
msgstr "Reinstalar"
@@ -28965,6 +32956,10 @@ msgstr "Reinstalar"
msgid "Delete cache and reload"
msgstr "Borrar la caché y recargar"
+# AI Translated
+msgid "No description."
+msgstr "Sin descripción."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Seleccione un paquete de plugin .py o .whl."
@@ -28997,6 +32992,293 @@ msgstr "Instalando plugin"
msgid "Installed \"%s\"."
msgstr "Se ha instalado \"%s\"."
+# AI Translated
+msgid "Search plugins"
+msgstr "Buscar plugins"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Borrar búsqueda"
+
+# AI Translated
+msgid "Match case"
+msgstr "Coincidir mayúsculas y minúsculas"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Coincidir con palabra completa"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Más opciones de instalación de plugins"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Instalar plugin"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Instalar plugin local"
+
+# AI Translated
+msgid "Activate"
+msgstr "Activar"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Ordenar por nombre"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Ordenar por versión"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Versión del plugin"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Ordenar por origen"
+
+# AI Translated
+msgid "Source"
+msgstr "Origen"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Ordenar por estado"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Estado"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Arrastre para cambiar el tamaño; doble clic para restablecer"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Cambiar el tamaño de la lista de plugins"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Detalles del plugin"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Información del plugin"
+
+# AI Translated
+msgid "Description"
+msgstr "Descripción"
+
+# AI Translated
+msgid "Config"
+msgstr "Configuración"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Registro de cambios"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnóstico"
+
+# AI Translated
+msgid "Types"
+msgstr "Tipos"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Versión instalada"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Última versión"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Actualizar a la última versión"
+
+# AI Translated
+msgid "No description available"
+msgstr "No hay descripción disponible"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Seleccione un plugin para configurar sus capacidades"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Capacidades configurables"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Descartar la configuración guardada para esta capacidad y restaurar los valores predeterminados del plugin"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Registro de cambios del plugin"
+
+# AI Translated
+msgid "Date"
+msgstr "Fecha"
+
+# AI Translated
+msgid "Changes"
+msgstr "Cambios"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "No hay registro de cambios disponible"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "No se han detectado problemas"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "No se encontraron plugins"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Ningún plugin coincide con \"%s\""
+
+# AI Translated
+# Needs human review: Plugin source value in the Plugins dialog list (Mine / Subscribed / Orphaned / Local); check it reads right as the source of a plugin you authored.
+msgid "Mine"
+msgstr "Propio"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Suscrito"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Huérfano"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Local"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Algunas capacidades del plugin están activadas"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Contraer las capacidades de %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Expandir las capacidades de %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Contraer capacidades"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Expandir capacidades"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Abrir este plugin en el navegador"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Capacidades: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Capacidades"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Ejecutar \"%s\""
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Activar %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "No autorizado para actualizaciones"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Cargando el plugin…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Este plugin no expone ninguna capacidad"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Active este plugin para configurar sus capacidades"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Ver en OrcaCloud aquí "
+
+# AI Translated
+msgid "Activated"
+msgstr "Activado"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Error de ejecución"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Inactivo"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Este plugin está activo y listo para usarse."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Este plugin todavía se está cargando."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Este plugin está bloqueado hasta que se corrija su error."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Este plugin está cargado, pero una capacidad ha informado de un error."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Este plugin está inactivo. Actívelo para instalarlo o cargarlo."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Seleccione un plugin para ver su estado y detalles."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Huérfano: este plugin ya no está suscrito ni disponible en OrcaCloud. La copia local sigue instalada y se puede seguir usando."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Hay disponible una versión más reciente del plugin."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Las actualizaciones en la nube no están disponibles porque este plugin no está autorizado para actualizaciones."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -29213,6 +33495,56 @@ msgstr "No se pudo recargar el plugin."
msgid "Reloaded \"%s\"."
msgstr "Se ha recargado \"%s\"."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Conexión de la impresora"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Configure la conexión de su impresora para ver el dispositivo."
+
+msgid "No model information"
+msgstr "No hay información sobre el modelo"
+
+msgid "Edit Project Info"
+msgstr "Editar información del proyecto"
+
+msgid "Model Information"
+msgstr "Información del modelo"
+
+msgid "Accessories"
+msgstr "Accesorios"
+
+msgid "Profile Information"
+msgstr "Información del perfil"
+
+msgid "Model name"
+msgstr "Nombre del modelo"
+
+msgid "Created by"
+msgstr "Creado por"
+
+msgid "Remixed by"
+msgstr "Remixado por"
+
+msgid "Shared by"
+msgstr "Compartido por"
+
+msgid "Model description"
+msgstr "Descripción del modelo"
+
+msgid "BOM"
+msgstr "Lista de materiales"
+
+msgid "Profile name"
+msgstr "Nombre del perfil"
+
+msgid "Profile Author"
+msgstr "Autor del perfil"
+
+msgid "Profile description"
+msgstr "Descripción del perfil"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Ajustes del modo de purga"
@@ -29237,6 +33569,19 @@ msgstr "Reduce el desperdicio de purga e imprime más rápido. Puede causar una
msgid "Terminal"
msgstr "Terminal"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... o uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Terminal de plugins listo."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "El proceso finalizó con el código: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Ya se está ejecutando un comando."
@@ -29283,8 +33628,10 @@ msgstr "Nuevos filamentos mixtos"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "El proyecto admite hasta %d filamentos. Se descartarán los filamentos adicionales."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "El proyecto admite hasta %d filamento. Se descartarán los filamentos adicionales."
+msgstr[1] "El proyecto admite hasta %d filamentos. Se descartarán los filamentos adicionales."
# AI Translated
msgid "Import Model"
@@ -29371,8 +33718,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Error en el cálculo. Ajuste los parámetros y vuelva a intentarlo."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "La malla tiene geometría no manifold o contornos abiertos. Puede importarla tal cual o repararla con el servicio de reparación 3D de Windows antes de importarla."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "La malla tiene geometría no manifold o contornos abiertos. Puede importarla tal cual o repararla antes de importarla."
# AI Translated
msgid "Mesh repair"
@@ -29386,14 +33733,6 @@ msgstr "Importar sin reparar"
msgid "Repair and import"
msgstr "Reparar e importar"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Tenga en cuenta que la malla tiene geometría no manifold o contornos abiertos."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Problema de malla"
-
# AI Translated
msgid "The selected image is empty."
msgstr "La imagen seleccionada está vacía."
@@ -29402,6 +33741,14 @@ msgstr "La imagen seleccionada está vacía."
msgid "Failed to prepare the texture for use."
msgstr "No se pudo preparar la textura para su uso."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "No se pudo crear la carpeta para las texturas importadas."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "No se pudo guardar la textura importada."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Solo se pueden quitar las texturas importadas por usted."
@@ -29410,18 +33757,10 @@ msgstr "Solo se pueden quitar las texturas importadas por usted."
msgid "Could not delete the texture file."
msgstr "No se pudo eliminar el archivo de textura."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "No se pudo crear la carpeta para las texturas importadas."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "No se pudo cargar la imagen seleccionada."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "No se pudo guardar la textura importada."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "No se pudo leer el archivo de textura."
@@ -29465,8 +33804,10 @@ msgstr "Elija Desplegar como mapeo de una capa de textura para editar aquí sus
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d vértices seleccionados | arrastrar = mover juntos, clic con Shift/Ctrl = añadir/quitar"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d vértice seleccionado | arrastrar = mover juntos, clic con Shift/Ctrl = añadir/quitar"
+msgstr[1] "%d vértices seleccionados | arrastrar = mover juntos, clic con Shift/Ctrl = añadir/quitar"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29474,8 +33815,10 @@ msgstr "Modo vértice: arrastre un vértice para cambiar la forma | clic con S
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d aristas seleccionadas | arrastrar = mover juntas, clic con Shift/Ctrl = añadir/quitar"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d arista seleccionada | arrastrar = mover juntas, clic con Shift/Ctrl = añadir/quitar"
+msgstr[1] "%d aristas seleccionadas | arrastrar = mover juntas, clic con Shift/Ctrl = añadir/quitar"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29483,8 +33826,10 @@ msgstr "Modo arista: arrastre una arista de isla para cambiar la forma | clic
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d islas seleccionadas | arrastrar = mover juntas, clic con Shift/Ctrl = añadir/quitar, R/S = girar/escalar la principal"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d isla seleccionada | arrastrar = mover juntas, clic con Shift/Ctrl = añadir/quitar, R/S = girar/escalar la principal"
+msgstr[1] "%d islas seleccionadas | arrastrar = mover juntas, clic con Shift/Ctrl = añadir/quitar, R/S = girar/escalar la principal"
# AI Translated
#, c-format, boost-format
@@ -29503,6 +33848,10 @@ msgstr " | ajuste ACTIVO"
msgid "Change texture - choose another one from the texture library"
msgstr "Cambiar textura - elija otra de la biblioteca de texturas"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "El tamaño de tesela de la capa de textura activa: cuánto del modelo cubre una repetición de la textura. El lienzo se mide en teselas, así que una celda de la cuadrícula es una repetición. Cámbielo con «Tamaño de tesela» en los ajustes de la capa."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Mapa de alturas - muestra la textura de la capa bajo las islas"
@@ -29536,16 +33885,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Organiza el despliegue como una red conectada: las piezas que comparten una arista se despliegan una junto a otra (un cubo se convierte en una red unida en lugar de seis cuadrados sueltos). Siguen siendo islas separadas, así que después puede mover cualquiera de ellas a mano."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Isla - mover, girar y escalar islas completas"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Isla - trabaje con islas completas. Haga clic en una para seleccionarla y después arrástrela para moverla, arrástrela con el botón derecho para girarla, o pulse R para girarla y S para escalarla con el ratón (clic o Intro para confirmar, Esc para cancelar)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Vértice - arrastre vértices para cambiar la forma; Shift/Ctrl para selección múltiple"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Vértice - arrastre vértices para dar forma a una isla a mano; Shift añade a la selección y Ctrl añade o quita un vértice de ella."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Arista - arrastre aristas para cambiar la forma; Shift/Ctrl para selección múltiple"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Arista - arrastre aristas para dar forma a una isla a mano; Shift añade a la selección y Ctrl añade o quita una arista de ella."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -29584,8 +33933,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Ajustar - une las islas al arrastrar una contra otra"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Encuadrar todas las islas (Inicio)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Encuadrar todas las islas, ajustándolas todas a la vista (Inicio o F).\n"
+"En el resto del lienzo: use la rueda para hacer zoom alrededor del cursor, y arrastre con el botón central - o arrastre en un espacio vacío - para desplazar la vista."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Lo que está seleccionado y las cifras exactas del movimiento, la rotación o la escala mientras arrastra."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -29596,6 +33953,10 @@ msgstr "Ninguna capa mapeada con Desplegar"
msgid "%.1f mm tile"
msgstr "tesela de %.1f mm"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "El panel sigue a la capa de textura activa, y esa capa tiene que estar mapeada con Desplegar (LSCM). Añada una capa y establezca su «Mapeo» en «Desplegar»."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Desactualizado - la pintura, las costuras o el ángulo de costura han cambiado desde que se hizo este despliegue. Pulse para desplegar de nuevo."
@@ -29604,19 +33965,70 @@ msgstr "Desactualizado - la pintura, las costuras o el ángulo de costura han ca
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Aplana el área pintada en islas UV. Solo se calcula cuando pulsa este botón, no en cada edición - así que pinte, cambie el ángulo de costura o marque costuras primero, y luego pulse Desplegar."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Active primero «Marcar costuras» - «Trayecto» es una forma más rápida de marcarlas."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "No hay costuras UV marcadas en esta capa de textura."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "No se ha cambiado a mano la forma de ninguna isla, así que no hay nada que descartar."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d islas, %s caras"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d isla"
+msgstr[1] "%d islas"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s cara"
+msgstr[1] "%s caras"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Cómo ha quedado el área pintada tras el despliegue: el número de piezas separadas en que se ha cortado (en las costuras UV y en las aristas más agudas que el ángulo de costura) y cuántos triángulos contienen en total."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Pulse primero «Desplegar» - todavía no hay islas con las que trabajar."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Haga clic primero en una isla del lienzo, en el modo Isla."
+
+# AI Translated
+# Needs human review: Short badge for a published project; kept as PUB (it also abbreviates 'publicado'). Check it fits the badge.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "PUB"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Sesión no iniciada"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Plug-in de Bambu Network no detectado. Haga clic aquí para instalarlo."
+
+msgid "Create new project"
+msgstr "Crear nuevo proyecto"
+
+msgid "Recently opened"
+msgstr "Abiertos recientemente"
+
+msgid "Open Containing Folder"
+msgstr "Abrir carpeta contenedora"
# AI Translated
msgid "Forward"
msgstr "Adelante"
-# AI Translated
-msgid "Tools"
-msgstr "Herramientas"
-
# AI Translated
msgid "View Source"
msgstr "Ver código fuente"
@@ -29688,6 +34100,75 @@ msgstr "Cargar %1% en %2%"
msgid "Load %s"
msgstr "Cargar %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "No se pudo habilitar el agente de impresora '%1%': el ID de agente '%2%' ya está registrado por la capacidad '%3%' del plugin '%4%'."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "No se pudo habilitar el agente de impresora '%1%': el ID de agente '%2%' ya está registrado por '%3%'."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Archivo subido"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Subiendo G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Iniciando impresión..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Impresión iniciada"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Subiendo..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Versión de la biblioteca de red no especificada"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Biblioteca de red no encontrada"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Error al cargar la biblioteca de red"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "La biblioteca de red no se pudo cargar"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Una serie de plugins anterior. Las funciones que requieren compatibilidad con un plugin más reciente, como las capturas de fallos de impresión en el cuadro de diálogo de errores del dispositivo, no están disponibles."
+
+# AI Translated
+msgid "unknown name"
+msgstr "nombre desconocido"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"El plugin \"%s\" solicita acceso de lectura al sistema de archivos en:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Permisos del plugin"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -29702,36 +34183,60 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"El plugin \"%s\" solicita leer el siguiente archivo:\n"
+"%s"
+msgstr[1] ""
"El plugin \"%s\" solicita leer los siguientes archivos:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"El plugin \"%s\" solicita leer/escribir el siguiente archivo:\n"
+"%s"
+msgstr[1] ""
"El plugin \"%s\" solicita leer/escribir los siguientes archivos:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"El plugin \"%s\" solicita crear el siguiente archivo:\n"
+"%s"
+msgstr[1] ""
"El plugin \"%s\" solicita crear los siguientes archivos:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"El plugin \"%s\" solicita eliminar el siguiente archivo:\n"
+"%s"
+msgstr[1] ""
"El plugin \"%s\" solicita eliminar los siguientes archivos:\n"
"%s"
@@ -29756,10 +34261,30 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"El plugin \"%s\" solicita ejecutar el siguiente comando:\n"
+"%s"
+msgstr[1] ""
+"El plugin \"%s\" solicita ejecutar los siguientes comandos:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "El plugin \"%s\" solicita permiso para crear un hilo."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"El plugin \"%s\" solicita ejecutar los siguientes comandos:\n"
+"El plugin \"%s\" solicita reemplazar la aplicación en ejecución por:\n"
"%s"
# AI Translated
@@ -29771,6 +34296,47 @@ msgstr "El plugin \"%s\" solicita permiso para el evento de auditoría de Python
msgid "Plugin permission request"
msgstr "Solicitud de permiso del plugin"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "El perfil almacena un JSON de configuración de capacidad de plugin no válido."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "La configuración de capacidad de plugin del perfil no es una matriz y no se puede editar."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Conexión de impresora"
+
+# AI Translated
+msgid "Pages"
+msgstr "Páginas"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Análisis"
+
+# AI Translated
+msgid "Importer"
+msgstr "Importador"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Exportador"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Visualización"
+
+# AI Translated
+msgid "Script"
+msgstr "Script"
+
+# AI Translated
+# Needs human review: Plugin capability type 'Slicing Pipeline' (a step in the slicing process); check the wording next to the other capability types (Importer, Exporter, Analysis...).
+msgid "Slicing Pipeline"
+msgstr "Flujo de laminado"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "La interfaz de configuración del plugin estaba vacía. Se muestra el editor predeterminado."
@@ -29793,8 +34359,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "No se pudo escribir la configuración en el disco. No se cambió nada."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Error al instalar el plugin"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Error al instalar el plugin: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: el plugin instalado no se encontró en el catálogo."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "A la clave del plugin en la nube le falta el UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "No se pudo suscribir al plugin en la nube. Consulte los registros para obtener más información."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Solo se puede cancelar la suscripción de los plugins en la nube."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "No se pudo cancelar la suscripción al plugin. Consulte los registros para obtener más información."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "No se pudo obtener la URL de descarga del plugin (resultado %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "No tiene autorización para descargar este plugin en la nube."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "No hay ningún paquete de plugin disponible para este sistema operativo."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "No se encontró la versión seleccionada del plugin."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "No se encontró la versión %1% del plugin."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "No se encontró el plugin en la nube."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "No se encontró la descarga del plugin en la nube: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "No se encontró la descarga del plugin en la nube."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "No hay ninguna URL de descarga disponible para este plugin. Compruebe si hay errores en los registros."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "No se pudo descargar el plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "La descarga del plugin falló con el estado HTTP %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "La descarga del plugin devolvió datos vacíos."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "No se pudo crear el archivo temporal para la descarga del plugin."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "No se pudieron escribir los datos del plugin en el archivo temporal."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "No se pudo resolver la carpeta del plugin: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "No se pudo eliminar la carpeta del plugin %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "El directorio del plugin no existe: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "El directorio del plugin contiene varios archivos .py: %1% y %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "El directorio del plugin contiene varios archivos .whl: %1% y %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "El directorio del plugin contiene archivos de entrada .py y .whl a la vez"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "El directorio del plugin no contiene ningún archivo de entrada .py ni .whl"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Error del plugin de la canalización de laminado '%1%': %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "El paquete del plugin debe ser un archivo .py o .whl; se recibió: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "No se pudo extraer la dependencia .whl del plugin %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "No se pudo añadir la dependencia .whl a sys.path: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "El intérprete de Python no está inicializado: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "El manifiesto del plugin no es válido: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "No se pudieron instalar las dependencias del plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "No se pudo cargar el módulo del plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Error al registrar el plugin: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "El módulo del plugin no registró ninguna capacidad"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "El plugin declara la capacidad duplicada '%1%' para el tipo %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Error al materializar la capacidad del plugin: %1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "Error al materializar la capacidad del plugin"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Error en on_load del plugin: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Error en on_load del plugin"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "El paquete del plugin no es un archivo: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "El UUID del plugin en la nube no es un identificador válido: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "No se pudo crear el directorio del plugin %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "No se pudo hacer una copia de seguridad del plugin existente %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "No se pudo copiar el archivo del plugin en %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "No se pudo escribir el estado de instalación del plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "El paquete del plugin ya está cargado: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Colisión de capacidad para el tipo %1% y el nombre '%2%'"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Se detectó una clave de plugin duplicada: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "La carga del plugin sigue en curso"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "El plugin no es válido: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "No se encontró el plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Fallo inesperado al cargar el plugin: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Fallo inesperado al cargar el plugin"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "No se encontró el manifiesto del plugin: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "No se pudieron obtener los plugins de la nube. Consulte los registros para más detalles."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Inicie sesión en OrcaCloud para instalar este plugin."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud no devolvió el plugin en la nube suscrito."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "No se pudo descargar el plugin en la nube."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "No se pudo instalar el plugin en la nube."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Solo se pueden actualizar los plugins en la nube."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "No hay ninguna actualización disponible para este plugin."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Se rechaza eliminar un plugin fuera de los directorios de plugins conocidos."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Se rechaza actualizar un plugin fuera de los directorios de plugins conocidos."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "No se puede mantener el plugin como local: ya existe una clave de plugin local: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "No se pudo actualizar el estado de instalación del plugin: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "No se puede cancelar la suscripción a sus propios plugins."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Solo se pueden eliminar y cancelar la suscripción de los plugins en la nube."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "No se puede cancelar la suscripción a sus propios plugins. Use Borrar para eliminar los archivos locales."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Solicitud de permiso de lectura del sistema de archivos del plugin denegada"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -29828,6 +34730,10 @@ msgstr "falló la fusión de la extrusión de dos lados"
msgid "imported regions produced no extrudable geometry"
msgstr "las regiones importadas no produjeron ninguna geometría extruible"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "el perfil cruza el eje de revolución — debe estar a un lado de este"
+
# AI Translated
msgid "Failed to revolve"
msgstr "No se pudo aplicar la revolución"
@@ -29864,6 +34770,10 @@ msgstr "Falló la cara de la cajera"
msgid "Pocket cut failed"
msgstr "Falló el corte de la cajera"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "el perfil se cruza o se repliega sobre sí mismo, por lo que no delimita una única región"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "el croquis no tiene ningún contorno cerrado"
@@ -29896,10 +34806,26 @@ msgstr "mesh_to_brep: la malla no tiene triángulos"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: todos los triángulos se descartaron por degenerados (pruebe con una tolerancia menor)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "el radio del redondeo debe ser mayor que 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "no hay aristas que redondear en ese grupo"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "el radio de redondeo es demasiado grande para esta geometría"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "la distancia del chaflán debe ser mayor que 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "no hay aristas que achaflanar en ese grupo"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "la distancia del chaflán es demasiado grande para esta geometría"
@@ -29912,6 +34838,152 @@ msgstr "apply_fillet: falló el redondeo de OCCT"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: falló el chaflán de OCCT"
+# AI Translated
+msgid "empty component list"
+msgstr "lista de componentes vacía"
+
+# AI Translated
+msgid "empty component index"
+msgstr "índice de componente vacío"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "el índice de componente debe ser >= 1 (se recibió %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "índice de componente \"%1%\" no válido"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "se requieren al menos 2 componentes (se recibieron %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "índice de componente %1% duplicado"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "valor de proporción vacío"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "la proporción debe ser positiva (se recibió %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "proporción \"%1%\" no válida"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "el número de proporciones debe coincidir con el de componentes: se esperaban %1%, se recibieron %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "se esperaban dos números decimales separados por comas, p. ej. \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "las proporciones inicial y final deben estar en (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "el tamaño de la matriz %1% no coincide con el número de ranuras de filamento %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "debe establecerse cuando se especifican parámetros de filamento mixto"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "ranura %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "ranura %1%: componente %2% fuera de rango (el índice máximo de filamento físico es %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "ranura %1%: no puede hacer referencia a sí misma como componente"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "ranura %1%: el componente %2% hace referencia a una ranura de filamento mixto"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "ranura %1%: el degradado requiere exactamente 2 componentes"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "ranura %1%: curva no válida (se necesitan al menos 2 puntos de control válidos)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Error al cargar el archivo de configuración \"%1%\": %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "No es un archivo G-code generado por %1%."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "No se encontró la etiqueta de configuración \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Número sospechosamente bajo de valores de configuración extraídos de %1%: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Error al cargar el archivo STEP.\n"
+"No se puede abrir el archivo para lectura.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "error al importar SVG: no se pudo abrir el SVG."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "error al importar SVG: no se pudieron analizar los datos SVG importados."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "El G-code personalizado informa de un z_retracted negativo."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "El G-code personalizado informa de un z_restart_extra negativo."
+
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "La copia del directorio %1% a %2% ha fallado: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Autenticación completada"
@@ -30357,6 +35429,1088 @@ msgstr ""
"Evita la deformación\n"
"¿Sabías que al imprimir materiales propensos a la deformación como el ABS, aumentar adecuadamente la temperatura de la cama térmica puede reducir la probabilidad de deformaciones?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Por favor, elija el color del filamento"
+
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Ancho de línea del puente. Si se expresa en porcentaje, se calculará sobre el diámetro de la boquilla.\n"
+#~ "Se recomienda utilizarlo con una densidad de puente o una relación de flujo de puente más altas.\n"
+#~ "\n"
+#~ "El valor máximo es del 100 % o el diámetro de la boquilla.\n"
+#~ "Si se establece en 0, el ancho de línea seguirá el ancho del relleno sólido interno."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Active esta opción para ralentizar la impresión en áreas donde los perímetros puedan haberse curvado hacia arriba.\n"
+#~ "Por ejemplo, se aplicará una ralentización adicional al imprimir voladizos en esquinas afiladas, como la parte frontal del casco de Benchy, reduciendo la curvatura que se acumula en varias capas.\n"
+#~ "\n"
+#~ "Generalmente se recomienda tener esta opción activada, a menos que la refrigeración de la impresora sea lo suficientemente potente o la velocidad de impresión lo suficientemente baja como para evitar la curvatura de los perímetros.\n"
+#~ "Si imprime con una alta velocidad de perímetro externo, este parámetro puede generar artefactos en las paredes al reducir la velocidad, debido a la posible gran variación en las velocidades de impresión, lo que impide que el extrusor pueda seguir el ritmo del cambio de flujo solicitado.\n"
+#~ "La causa principal de estos artefactos probablemente sea un ajuste de PA ligeramente desviado, especialmente cuando se combina con un tiempo de suavizado de PA elevado.\n"
+#~ "\n"
+#~ "Recomendaciones al activar esta opción:\n"
+#~ "1. Reduzca el tiempo de suavizado de Pressure Advance a 0,015 - 0,02 para que el extrusor reaccione rápidamente a los cambios de velocidad.\n"
+#~ "2. Aumente la velocidad mínima de impresión para limitar la magnitud de la ralentización y reducir la variación entre los segmentos rápidos y lentos.\n"
+#~ "3. Si aún aparecen artefactos, active la función de suavizado de la velocidad de extrusión (ERS) para suavizar aún más las transiciones del flujo.\n"
+#~ "\n"
+#~ "Nota: Cuando esta opción está activada, los perímetros en voladizo se tratan como tales, lo que significa que se aplica la velocidad de voladizo incluso si el perímetro en voladizo forma parte de un puente.\n"
+#~ "Por ejemplo, cuando los perímetros sobresalen al 100%, sin ninguna pared que los sostenga por debajo, se aplicará la velocidad de voladizo del 100%."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Velocidad de las extrusiones de puentes exteriormente visibles.\n"
+#~ "\n"
+#~ "Adicionalmente, si se desactiva la función 'Reducir velocidad en perímetros curvados' o se usa el método Clásico de voladizos, también se utilizará esta velocidad para perímetros en voladizo con menos de un 13% de soporte, ya sean parte de un puento o de un voladizo."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Este ajuste independiente afectará a la velocidad de los perímetros con radio <= small_perimeter_threshold (normalmente orificios). Si se expresa como un porcentaje (por ejemplo: 80%) se calculará en base al ajuste de velocidad del perímetro exterior anterior. Póngalo a cero para auto."
+
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Igual que \"Perímetros pequeños\", pero para los soportes. Este ajuste independiente afectará a la velocidad del soporte en áreas <= `small_support_perimeter_threshold`. Si se expresa como porcentaje (por ejemplo: 80%), se calculará sobre el ajuste de velocidad de soporte o de interfaz de soporte anterior. Establécelo a cero para automático."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Secuencia de impresión de los perímetros internos y externos.\n"
+#~ "\n"
+#~ "Utilice Interior/Exterior para obtener los mejores voladizos. Esto se debe a que los perímetros salientes pueden adherirse a un perímetro vecino durante la impresión. Sin embargo, esta opción da como resultado una calidad de superficie ligeramente reducida, ya que el perímetro externo se deforma al aplastarse contra el perímetro interno.\n"
+#~ "\n"
+#~ "Utilice Interior/Exterior/Interior para obtener el mejor acabado de superficie exterior y precisión dimensional, ya que el perímetro exterior se imprime sin perturbaciones por un perímetro interior. Sin embargo, el rendimiento del voladizo se reducirá al no haber un perímetro interno contra el que imprimir el perímetro externo. Esta opción requiere un mínimo de 3 perímetros para ser efectiva, ya que imprime primero los perímetros interiores a partir del 3er perímetro, después el perímetro exterior y, finalmente, el primer perímetro interior. En la mayoría de los casos, se recomienda utilizar esta opción en lugar de la opción Exterior/Interior.\n"
+#~ "\n"
+#~ "Utilice Exterior/Interior para obtener la misma calidad en los perímetros exteriores y la misma precisión dimensional que con la opción Interior/Exterior/Interior. Sin embargo, las costuras Z tendrán un peor acabado ya que la primera extrusión de cada capa comienza en una superficie visible."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Velocidad de la primera capa excepto la parte sólida de relleno."
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Velocidad de la parte de relleno sólido de la primera capa."
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "El área de relleno se amplía ligeramente para solaparse con el perímetro y mejorar la adherencia. El valor porcentual es relativo al ancho de línea del relleno de baja densidad. Ajuste este valor a ~10-15% para minimizar una potencial sobreextrusión y/o una acumulación de material que resulte en artefactos en las superficies superiores."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "El área de relleno sólido de cubierta superior/inferior se amplía ligeramente para solaparse con el perímetro, mejorando la adherencia y minimizando la aparición de agujeros cuando el relleno de cubierta superior/inferior se une a los perímetros. Un valor alrededor de 25-30% es un buen punto de partida para minimizar la aparición de agujeros. El valor porcentual es relativo al ancho de línea del relleno de baja densidad."
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Profundidad de enlazado de una región segmentada. Se ignorará si \"mmu_segmented_region_max_width\" es cero o si \"mmu_segmented_region_interlocking_depth \"es mayor que \"mmu_segmented_region_max_width\". El valor cero desactiva esta función."
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Reduce la altura de los perímetros de la superficie superior para que coincida con la altura del borde del modelo.\n"
+#~ "Afecta a los perímetros con una pendiente inferior a este ángulo (grados).\n"
+#~ "Un valor razonable es 35. Establece el valor en 0 para desactivar esta opción."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Velocidad de purga según tipo de línea"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Un protector contra corrientes de aire resulta útil para evitar que una impresión de ABS o ASA se deforme o se despegue de la cama de impresión debido a las corrientes de aire. Por lo general, solo es necesario en impresoras de estructura abierta, es decir, sin carcasa.\n"
+#~ "\n"
+#~ "Si se activa, la falda tendrá la misma altura que el objeto impreso más alto. En caso contrario, se utilizará la «altura de falda».\n"
+#~ "Nota: Con el protector contra corrientes de aire activo, el faldón se imprimirá a una distancia determinada del objeto. Por lo tanto, si los bordes están activos, puede que se crucen con ellos. Para evitarlo, aumenta el valor de la distancia de la falda.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "La velocidad máxima de impresión al purgar en la torre de purga e imprimir las capas de baja densidad de la torre de purga. Al purgar, si la velocidad de relleno de baja densidad o la velocidad calculada a partir de la velocidad volumétrica máxima del filamento es inferior, se utilizará la velocidad más baja.\n"
+#~ "\n"
+#~ "Al imprimir las capas de baja densidad, si la velocidad del perímetro interno o la velocidad calculada a partir de la velocidad volumétrica máxima del filamento es inferior, se utilizará la velocidad más baja.\n"
+#~ "\n"
+#~ "Aumentar esta velocidad puede afectar a la estabilidad de la torre, así como aumentar la fuerza con la que la boquilla colisiona con las acummulaciones que se hayan podido formar en la torre de purga.\n"
+#~ "\n"
+#~ "Antes de aumentar este parámetro más allá del valor por defecto de 90mm/s, asegúrese de que su impresora puede puentear de forma fiable a las velocidades aumentadas y que el rezume al cambiar de cabezal está bien controlado.\n"
+#~ "\n"
+#~ "Para los perímetros externos de la torre de purga se utiliza la velocidad del perímetro interno independientemente de este ajuste."
+
+# AI Translated
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Tipo de pared externa de la torre de purga.\n"
+#~ "1. Rectángulo: Tipo de pared por defecto, un rectángulo con ancho y altura fijos.\n"
+#~ "2. Cono: Un cono con un redondeo en la base para ayudar a estabilizar la torre de purga.\n"
+#~ "3. Costilla: Añade cuatro refuerzos a la pared de la torre para mejorar la estabilidad."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Flujo extra utilizado para las líneas de purga en la torre de purga. Esto hace que las líneas de purga sean más gruesas o más delgadas de lo normal. La separación se ajusta automáticamente."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Ajuste este valor para evitar que se impriman perímetros cortos y no cerrados, lo que podría aumentar el tiempo de impresión. Los valores más altos eliminan más perímetros y más largos.\n"
+#~ "\n"
+#~ "NOTA: Las superficies inferior y superior no se verán afectadas por este valor para evitar huecos visuales en el exterior del modelo. Ajuste \"Umbral para generar un solo perímetro\" en la configuración avanzada para ajustar la sensibilidad de lo que se considera una superficie superior. El \"Umbral para generar un solo perímetro\" sólo es visible si este valor es superior al valor predeterminado de 0,5, o si las superficies superiores de un solo perímetro están activados."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Dividir en %1% pieza"
+#~ msgstr[1] "Dividir en %1% piezas"
+
+#~ msgid "Repair failed"
+#~ msgstr "La reparación ha fallado"
+
+#~ msgid "Repair canceled"
+#~ msgstr "Reparación cancelada"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Lo que hace esta capa donde se superpone a las de abajo. Añadir y Restar acumulan relieve o lo tallan. Multiplicar y Dividir escalan lo que hay debajo, lo que convierte esta capa en una máscara sobre ello - en ese caso, Profundidad actúa como una intensidad, y 1 mm deja intactas las áreas blancas."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "La malla tiene geometría no manifold o contornos abiertos. Puede importarla tal cual o repararla con el servicio de reparación 3D de Windows antes de importarla."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Tenga en cuenta que la malla tiene geometría no manifold o contornos abiertos."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Problema de malla"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Error de reparación: la malla sigue abierta tras rellenar los agujeros."
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "No se puede aplicar una operación lógica a operandos no buleanos."
+
+#~ msgid "Reading"
+#~ msgstr "Leyendo"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "El recuento de filamentos supera el número máximo que admite la herramienta de pintura. Sólo los primeros %1% filamentos estarán disponibles en la herramienta de pintura."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Tecla de acceso directo "
+
+#~ msgid "Build Volume"
+#~ msgstr "Volumen de construcción"
+
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Los objetos(%1%) tienen conectores duplicados. Es posible que falten algunos conectores en el resultado del laminado.\n"
+#~ "Informe al equipo de OrcaSlicer sobre el escenario en el que se produjo este problema.\n"
+#~ "Gracias."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d triángulos"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Moviendo)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Solucionado)"
+
+#~ msgid "Filament "
+#~ msgstr "Filamento "
+
+#~ msgid "hotend"
+#~ msgstr "hotend"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Organizando "
+
+#~ msgid "Orienting"
+#~ msgstr "Orientación"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Por favor, mandar a inicio todos los ejes (presione "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") para localizar la posición del cabezal. Esto previene que el dispositivo se mueva más allá de los limites de impresión y cause desgaste en el equipo."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Aumenta %1%g de filamento y %2% cambios en comparación con la agrupación óptima."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Aumenta %1%g de filamento y ahorra %2% cambios en comparación con la agrupación óptima."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Ahorra %1%g de filamento y aumenta %2% cambios en comparación con la agrupación óptima."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Ahorra %1%g de filamento y %2% cambios en comparación con una impresora con una boquilla."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Ahorra %1%g de filamento y aumenta %2% cambios en comparación con una impresora con una boquilla."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Aumenta %1%g de filamento y ahorra %2% cambios en comparación con una impresora con una boquilla."
+
+#~ msgid "number keys"
+#~ msgstr "teclas numéricas"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Los filamentos %s están colocados en el %s, pero la ruta de G-code generada excede el rango imprimible del %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Los filamentos %s están colocados en el %s, pero la ruta de G-code generada excede la altura imprimible del %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Los filamentos %s no pueden imprimirse directamente en la superficie de esta cama."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "se cerrará antes de crear un nuevo modelo. ¿Quiere continuar?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "En Cola de Laminado en la Nube, hay %s tareas por delante."
+
+#~ msgid " upload failed"
+#~ msgstr " Carga fallida"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " Error en la carga de configuración\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Sin cubo de almacenamiento correspondiente\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " no es posible abrirlo\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "El resultado de su comentario no se puede cargar debido a algunas razones, que son:\n"
+#~ "\n"
+#~ " código de error: "
+
+#~ msgid "error message: "
+#~ msgstr "mensaje de error: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "¿Desea redirigir a la página web para la valoración?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (perfil de proceso: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "La boquilla %s no puede imprimir %s."
+
+#~ msgid " nozzle"
+#~ msgstr " boquilla"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "No se recomienda imprimir los siguientes filamentos con %1%: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " cama %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "¿Eliminar los %1% filamentos mixtos?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "¿Desea reemplazarlo"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Conflicto de temperatura de la cama: T%d (%s) ajusta la cama a %d°C, pero T%d (%s) requiere %d°C. La herramienta principal controla la cama; las herramientas secundarias imprimen a la temperatura que esta establezca."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "No se proporcionaron aceleraciones para la calibración. Usar valor de aceleración por defecto "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "No se proporcionaron velocidades para la calibración. Usar velocidad óptima por defecto "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "No hay ninguna torre de temperatura para cinta disponible para el rango de %1% a %2% °C. Use un rango que cubran los modelos de torre, por ejemplo, de 230 a 190."
+
+#~ msgid "The selected file"
+#~ msgstr "El archivo seleccionado"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "No contiene G-code válido."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "con OrcaSlicer para que pueda abrir modelos desde"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Costo %dg de filamento y %d cambios más que la agrupación óptima."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Los parámetros con este icono se pueden configurar por boquilla."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Palabras clave utilizadas y encontradas"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "El perfil de Filamento %d y el perfil de Proceso %d están adjuntos a esta impresora. Esos perfiles se borrarían si se elimina la impresora."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "El siguiente perfil hereda de este otro."
+#~ msgstr[1] "Los siguientes perfiles heredan de este otro."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "Perfil %1%"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "¿Está seguro de %1% el perfil seleccionado?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Dividir en %1% partes"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Descargando nuevos perfiles de fabricante: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "No se han podido descargar los perfiles de fabricante: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "En este modo Span, solo se imprimen colores con %1%, pero el filamento %2% no está asignado a ninguna herramienta. Use filamentos asignados a %1% o cambie esta cama al modo Principal (Primary)."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "En este modo Span, solo se imprimen colores con %1%, pero el filamento %2% está asignado a T%3%. Use filamentos asignados a %1% o cambie esta cama al modo Principal (Primary)."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " está muy cerca del área de exclusión, puede conllevar colisiones cuando se imprime."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " está demasiado cerca del área de detección de aglomeraciones, puede haber colisiones durante la impresión."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Torre de purga"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " está demasiado cerca de otros, y se pueden producir colisiones.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " está demasiado cerca de una zona de exclusión, lo que provocará colisiones.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " está demasiado cerca del área de detección de aglomeraciones, y se producirán colisiones.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " está parcialmente fuera del área imprimible, y no se puede imprimir.\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "ninguna herramienta configurada"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "G-Code ejecutado en el final de la impresión completa."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Velocidad máxima en X"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Velocidad máxima en Y"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Velocidad máxima en Z"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Velocidad máxima en E"
+
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Plugin(s) de Python que se invocan en cada paso de la canalización de laminado para leer y modificar los datos intermedios de laminado, incluido un paso final de posprocesamiento de G-code. Investigación/experimental."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Si se activa, el laminador emite el G-Code con el contenido de la zona principal centrado en el origen de la cama (0,0). El firmware de la impresora se encarga de colocar las copias o los reflejos en la posición física de cada zona. Actívelo solo en impresoras cuyo firmware aplique sus propios desplazamientos de zona en el modo Copia/Espejo (Copy/Mirror) (p. ej., el modo de duplicación IDEX de RepRapFirmware). No tiene efecto en el modo Principal (Primary)."
+
+# AI Translated
+# Needs human review: 'pem-inversion' kept verbatim; it looks like an internal term (physical extruder map inversion). Check whether users understand it or the English should be rephrased.
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Asignación por cama que sustituye la correspondencia entre los cabezales físicos y las ranuras de filamento (empezando en 1). Si está vacía, se usan los valores predeterminados de pem-inversion."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Eje alrededor del cual se gira la malla antes de laminar. Es la inclinación de la impresora de cinta: una rotación isométrica (sin distorsión) que también determina la representación de la cama y la inclinación de la gravedad de los soportes, y que la transformación inversa del G-Code deshace antes del cizallamiento/escalado y la reasignación al sistema de coordenadas de la máquina. X es la inclinación típica del pórtico (la cinta avanza a lo largo de Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Ajuste para expertos: establece el ángulo de inclinación del sistema de coordenadas de la máquina (cizallamiento/escalado del G-Code) de forma independiente del ángulo de rotación previo al laminado. Si se desactiva, la transformación del sistema de coordenadas de la máquina se deriva del ángulo de inclinación de la cinta, de modo que un único ángulo controla ambas etapas. Actívelo solo para compensar una máquina cuya inclinación física del pórtico difiera de la rotación de laminado."
+
+# AI Translated
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "La desviación máxima permitida al reducir la resolución para el parámetro «Resolución máxima de la pared». Si aumentas este valor, la impresión será menos precisa, pero el G-code será más pequeño. El parámetro «Desviación máxima de la pared» limita la «Resolución máxima de la pared», por lo que, si ambos entran en conflicto, prevalece el primero."
+
+#~ msgid " not in range "
+#~ msgstr " fuera de rango "
+
+#~ msgid "floating regions"
+#~ msgstr "regiones flotantes"
+
+#~ msgid "floating cantilever"
+#~ msgstr "voladizos flotantes"
+
+#~ msgid "large overhangs"
+#~ msgstr "voladizos grandes"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Parece que el objeto %s tiene %s. Por favor, reoriente el objeto o active la generación de soportes."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "No se han detectado capas. Es posible que desee reparar su(s) archivo(s) STL o comprobar su tamaño o grosor y volver a intentarlo.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Este tipo de máquina sólo puede guardar %d resultados históricos por boquilla. Este resultado no se guardará."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Este tipo de máquina sólo puede almacenar %d resultados históricos por boquilla."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Voladizo"
+
+#~ msgid "Start / End"
+#~ msgstr "Inicio / Fin"
+
+#~ msgid "Damp"
+#~ msgstr "Amortiguación"
+
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "Se han detectado %d posiciones IFS en la impresora."
+
+#~ msgid "selected"
+#~ msgstr "seleccionado"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "El siguiente perfil hereda de este perfil."
+#~ msgstr[1] "Los siguientes perfiles heredan de este perfil."
+
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "Se encontraron %zu impresora(s) Creality. Selecciona una y haz clic en Usar seleccionada."
+
+#~ msgid "log(s)"
+#~ msgstr "registro(s)"
+
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Error: el extrusor %s no tiene ninguna boquilla %s disponible; el resultado del grupo actual no es válido."
+
+#~ msgid "invalid brim ears"
+#~ msgstr "orejas con el borde defectuoso"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Omitiendo %d objetos."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Abrir carpeta en el explorador"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Haga clic en el centro y luego en un vértice — %d lados, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "circunscrito"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "inscrito"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Croquis creado (%zu cotas conductoras) — selecciónelo y luego haga clic derecho para extruir"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — %zu triángulos"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Esta malla tiene %d triángulos. Cada triángulo se convierte en una cara B-rep antes de fusionar las coplanares, por lo que importarla puede tardar mucho y dejar un cuerpo lento de editar. Normalmente es mejor simplificar antes la malla.\n"
+#~ "\n"
+#~ "¿Importar de todos modos?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Sólido importado — %d triángulos → %d caras, volumen %.2f mm³. Elija una cara o arista y luego Redondeo / Cortar / Vaciado para modificarlo"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — arrastre para colocar/dimensionar y luego confirme"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d entidades de croquis"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — escriba un valor y pulse Intro (o Confirmar)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Vista previa — %zu triángulos"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "%1% restricción(es) ignorada(s) por no poder actuar sobre esta geometría (una elipse o una curva spline, o un círculo de tamaño cero)"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "%1% restricción(es) eliminada(s) al quedar invalidada(s) por el redondeo/chaflán"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "%1% restricción(es) liberada(s) por la transformación"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...y %1% extremo(s) abierto(s) más"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "La lista de materiales admite como máximo %1% colores. Tras la descomposición de %2%, el número de materiales superaría %1%. Elimine los filamentos no utilizados en la pantalla principal antes de descomponer."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% colores imprimibles con %2% filamentos"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% islas"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Las %1% capas están en uso"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Vista previa: %1% triángulos"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Modelo: %1% triángulos - el empotrado refina hasta la resolución indicada arriba, dentro de su presupuesto"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Empotrar mueve los vértices existentes - el modelo se queda en %1% triángulos"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Resultado del empotrado: hasta ~%1% k triángulos"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% capas sin pintar, omitidas"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "El proyecto admite hasta %d filamentos. Se descartarán los filamentos adicionales."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d vértices seleccionados | arrastrar = mover juntos, clic con Shift/Ctrl = añadir/quitar"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d aristas seleccionadas | arrastrar = mover juntas, clic con Shift/Ctrl = añadir/quitar"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d islas seleccionadas | arrastrar = mover juntas, clic con Shift/Ctrl = añadir/quitar, R/S = girar/escalar la principal"
+
+# AI Translated
+# Needs human review: The English says 'Change it with Tiling', but the layer setting is labeled 'Tile size' (Tamaño de tesela); check which control is meant.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "El tamaño de tesela de la capa de textura activa: cuánto del modelo cubre una repetición de la textura. El lienzo se mide en teselas, así que una celda de la cuadrícula es una repetición. Cámbielo con «Tamaño de tesela» en los ajustes de la capa."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d islas, %s caras"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "El plugin \"%s\" solicita leer los siguientes archivos:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "El plugin \"%s\" solicita leer/escribir los siguientes archivos:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "El plugin \"%s\" solicita crear los siguientes archivos:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "El plugin \"%s\" solicita eliminar los siguientes archivos:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "El plugin \"%s\" solicita ejecutar los siguientes comandos:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Error al instalar el plugin"
+
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "No se pudo instalar Microsoft WebView2 Runtime.\n"
+#~ "Algunas funciones, incluido el asistente de configuración, pueden aparecer en blanco hasta que se instale.\n"
+#~ "Instálelo manualmente desde https://developer.microsoft.com/microsoft-edge/webview2/ y reinicie Orca Slicer."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Por qué esta agrupación"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "El software no admite usar boquillas de diámetros diferentes en una sola impresión. Si las boquillas izquierda y derecha son inconsistentes, solo podremos continuar con impresión de un solo cabezal. Confirme qué boquilla desea usar para este proyecto."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Cambiar diámetro"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "Proyecto de BambuStudio"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "El archivo 3MF fue creado con BambuStudio (versión %s), que es más reciente que la versión compatible %s. Se han detectado ajustes no reconocidos:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "El archivo 3MF ha sido creado con BambuStudio (versión %s), que es más reciente que la versión compatible %s. Es posible que algunos ajustes no sean totalmente compatibles."
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "El archivo 3MF ha sido creado por BambuStudio. Es posible que algunos ajustes difieran de los de OrcaSlicer."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "No se puede deshacer ni rehacer mientras se ejecuta una operación. Deténgala primero."
+
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Centra el relleno interno de cada pieza sobre sí misma, como si se laminara por separado, en lugar de sobre todo el conjunto. Las piezas que se tocan o se superponen se tratan como un solo cuerpo y comparten un centro; las piezas separadas (u objetos 3D distintos) tienen cada una el suyo.\n"
+#~ "Útil cuando un conjunto agrupa varios objetos que deben mantener cada uno un relleno coherente y autocentrado.\n"
+#~ "Afecta a los patrones de línea y cuadrícula y a los rellenos con plantilla de rotación.\n"
+#~ "Los patrones anclados a coordenadas globales (Giroide, Panal, TPMS, ...) no se ven afectados."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Índice de la capa actual. Basado en uno (es decir, la primera capa es la número 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Vídeo tutorial"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Primitivo"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Se generó una malla vacía"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Caja"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Rápido:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Ancho (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Profundidad (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Altura (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "R inferior"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "R superior"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "R mayor"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "R menor"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Todas las aristas"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Aristas superiores"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Aristas inferiores"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Aristas laterales"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Resolución de la malla"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Añadir forma"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "No hay perfil exterior"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "No se pudo crear la cara exterior"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "No se pudo crear la cara con agujeros"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Falló la revolución"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Perfil"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Iniciar un nuevo perfil (para agujeros)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segmentos"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Lados"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Haga clic en el lienzo para dibujar"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Ajustar a la cuadrícula"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Paso de cuadrícula"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Exterior"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "cerrado"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% puntos %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (superior)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (frontal)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (lateral)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Grados de revolución"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "Establezca 0 para extruir y >0 para revolución"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Cajera (corte)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu perfil cerrado"
+#~ msgstr[1] "%zu perfiles cerrados"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Dibuje un perfil cerrado para activarlo"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Resultado vacío"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Extruir: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Revolución: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "No hay ningún objeto seleccionado"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Falló la cara"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Falló la cara con agujeros"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Malla de la herramienta vacía"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Cajera añadida (volumen negativo)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Cajera: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Requiere que la capa activa use el mapeo Desplegar (LSCM)."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Damero - una cuadrícula de prueba en lugar de la textura. Donde los cuadrados siguen siendo cuadrados, la textura no se deforma; donde se estiran, la textura también se estirará"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Distorsión - mapa de calor del estiramiento, de azul a rojo, sobre el despliegue"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Mezclar por"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Superficie"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Capas: los dos filamentos se alternan entre capas de impresión, lo que mezcla de forma suave en las superficies verticales pero desaparece en las horizontales, donde toda una capa es una sola franja.\n"
+#~ "Superficie: un damero fino sobre la superficie, que funciona con cualquier ángulo pero puede verse como una textura en lugar de como una mezcla.\n"
+#~ "Automático: capas en las caras verticales; las caras horizontales toman el filamento único más cercano, ya que allí un damero se ve como un patrón."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Isla - mover, girar y escalar islas completas"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Vértice - arrastre vértices para cambiar la forma; Shift/Ctrl para selección múltiple"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Arista - arrastre aristas para cambiar la forma; Shift/Ctrl para selección múltiple"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Encuadrar todas las islas (Inicio)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Experimental) Usar agentes de impresora en lugar de hosts de impresión"
@@ -30390,16 +36544,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Haga clic en una cara o en un plano de referencia y luego elija una herramienta de dibujo"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -30456,10 +36600,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Distancia vertical"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Lineal"
-
#~ msgid "Face recognition"
#~ msgstr "Reconocimiento de caras"
@@ -31868,9 +38008,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Ha fallado el cálculo del ancho de línea de %1%. No se puede obtener el valor de \"%2%\". "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Espaciado no válido suministrado a Flow::with_spacing(), comprueba la altura de su capa y el ancho de extrusión."
-
#~ msgid "Anisotropic surfaces"
#~ msgstr "Superficies anisótropas"
@@ -32143,9 +38280,6 @@ msgstr ""
#~ "ya que estos están sujetos a la cama \n"
#~ "y solo se pueden levantar las piezas."
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid "This disables all cloud services e.g. Orca Cloud and Bambu Cloud. This stops the transmission of data to Bambu's cloud services too. Users who don't use BBL machines or use LAN mode only can safely turn on this function."
#~ msgstr "Esto desactiva todos los servicios en la nube, como Orca Cloud y Bambu Cloud. Además, detiene la transmisión de datos a los servicios en la nube de Bambu. Los usuarios que no utilicen máquinas BBL o que utilicen únicamente el modo LAN pueden activar esta función sin ningún problema."
@@ -34575,10 +40709,6 @@ msgstr ""
#~ msgid "Export."
#~ msgstr "Exportar."
-#, boost-format
-#~ msgid "Copying directory %1% to %2% failed: %3%"
-#~ msgstr "La copia del directorio %1% a %2% ha fallado: %3%"
-
#~ msgid "This controls brim position including outer side of models, inner side of holes or both. Auto means both the brim position and brim width is analysed and calculated automatically"
#~ msgstr "Esto controla la posición del borde de adherencia, incluyendo el lado exterior de los modelos, el lado interior de los huecos o ambos. Auto significa que tanto la posición como la anchura del borde de adherencia se analizan y calculan automáticamente"
@@ -34867,9 +40997,6 @@ msgstr ""
#~ msgid "Preview only mode for G-Code file."
#~ msgstr "Modo de vista previa sólo para el archivo G-Code."
-#~ msgid "Printer Selection"
-#~ msgstr "Selección de la impresora"
-
#~ msgid "Purging after filament change will be done inside objects' infills. This may lower the amount of waste and decrease the print time. If the walls are printed with transparent filament, the mixed color infill will be seen outside"
#~ msgstr "La purga tras el cambio de filamento se realizará dentro del relleno de los objetos. Esto puede reducir la cantidad de residuos y disminuir el tiempo de impresión. Si las paredes se imprimen con filamento transparente, el mezclado se podrá ver en el exterior."
@@ -34895,9 +41022,6 @@ msgstr ""
#~ msgid "Reload items"
#~ msgstr "Recarga de objetos"
-#~ msgid "Repair"
-#~ msgstr "Reparar"
-
#~ msgid "Repair the model's meshes if it is non-manifold mesh"
#~ msgstr "Reparar las mallas del modelo si se trata de una malla no plegable"
diff --git a/localization/i18n/eu/OrcaSlicer_eu.po b/localization/i18n/eu/OrcaSlicer_eu.po
index ef5b78dacc..0482155c5a 100644
--- a/localization/i18n/eu/OrcaSlicer_eu.po
+++ b/localization/i18n/eu/OrcaSlicer_eu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2026-07-20 13:33+0200\n"
"Last-Translator: Manu Goiogana \n"
"Language-Team: \n"
@@ -379,8 +379,10 @@ msgid "Please wait"
msgstr "Itxaron, mesedez"
# AI Translated
-msgid "Reading"
-msgstr "Irakurtzen"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Indukziozko hotend-en euskarria: %d/%d irakurtzen"
msgid "Running..."
msgstr "Exekutatzen..."
@@ -531,9 +533,12 @@ msgstr "Oinarritzat jartzeko aldea aukeratzeko tresna"
msgid "Lay on Face"
msgstr "Oinarritzat jartzeko aldea aukeratu"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Filamentuen zenbaketak pintura-tresnak onartzen duen gehienezko kopurua gainditzen du. Lehen %1% filamentuak bakarrik egongo dira eskuragarri pintura-erremintan."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Filamentu kopuruak pintura-tresnak onartzen duen gehienezko kopurua gainditzen du. Lehen %1% filamentua soilik egongo da eskuragarri pintura-tresnan."
+msgstr[1] "Filamentu kopuruak pintura-tresnak onartzen duen gehienezko kopurua gainditzen du. Lehen %1% filamentuak soilik egongo dira eskuragarri pintura-tresnan."
msgid "Color Painting"
msgstr "Koloreak margotu"
@@ -585,8 +590,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Sartu"
-msgid "Shortcut Key "
-msgstr "Lasterbideko tekla "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Lasterbideko tekla %d"
msgid "Triangle"
msgstr "Triangelua"
@@ -678,6 +685,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Pieza hautatzea"
+msgid "Select multiple objects"
+msgstr "Hautatu objektu bat baino gehiago"
+
msgid "Fixed step drag"
msgstr "Urrats finkoko arrastatzea"
@@ -738,9 +748,82 @@ msgstr "Pieza"
msgid "Relative"
msgstr "Erlatiboa"
+msgid "Selection"
+msgstr "Hautaketa"
+
+msgid "Plate"
+msgstr "Plaka"
+
+msgid "Distribute"
+msgstr ""
+
msgid "Coordinate system used for transform actions."
msgstr "Eraldatze-ekintzetan erabilitako koordenatu-sistema."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Lerrokatu ezkerrean"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Lerrokatu erdian ezker-eskuin norabidean"
+
+# AI Translated
+msgid "Align right"
+msgstr "Lerrokatu eskuinean"
+
+# AI Translated
+msgid "Align front"
+msgstr "Lerrokatu aurrean"
+
+# AI Translated
+# Needs human review: Object menu item that aligns object centers on the plate's front-back (Y) axis; check that the 'aurre-atze' compound reads naturally.
+msgid "Align front-back center"
+msgstr "Lerrokatu erdian aurre-atze norabidean"
+
+# AI Translated
+msgid "Align back"
+msgstr "Lerrokatu atzean"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Lerrokatu behean"
+
+# AI Translated
+# Needs human review: Object menu item that aligns object centers on the vertical (Z) axis; check that the 'goi-behe' compound reads naturally.
+msgid "Align top-bottom center"
+msgstr "Lerrokatu erdian goi-behe norabidean"
+
+# AI Translated
+msgid "Align top"
+msgstr "Lerrokatu goian"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Banatu ezker-eskuin norabidean"
+
+# AI Translated
+# Needs human review: Object menu item that spaces objects evenly along the plate's front-back (Y) axis; check that the 'aurre-atze' compound reads naturally.
+msgid "Distribute front-back"
+msgstr "Banatu aurre-atze norabidean"
+
+# AI Translated
+# Needs human review: Object menu item that spaces objects evenly along the vertical (Z) axis; check that the 'goi-behe' compound reads naturally.
+msgid "Distribute top-bottom"
+msgstr "Banatu goi-behe norabidean"
+
+msgid "Drop"
+msgstr "Askatu"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
msgid "Absolute"
msgstr "Absolutua"
@@ -842,9 +925,6 @@ msgstr "Artekaren angelua"
msgid "Cut position"
msgstr "Ebaketa-kokapena"
-msgid "Build Volume"
-msgstr "Eraikuntza-bulomena"
-
msgid "Multiple"
msgstr "Anitza"
@@ -1014,12 +1094,21 @@ msgstr "Arteka duen ebaketa-planoa ez da baliozkoa"
msgid "Connector"
msgstr "Konektore"
+# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"Objektuak (%1%) konektore bikoiztuak ditu. Baliteke konektore batzuk falta izatea xerratze-emaitzan.\n"
+"Jakinarazi OrcaSlicer taldeari zer egoeratan gertatu den arazoa.\n"
+"Eskerrik asko."
+msgstr[1] ""
"Objektuek (%1%) konektore bikoiztuak dituzte. Baliteke konektore batzuk falta izatea xerratze-emaitzan.\n"
"Jakinarazi OrcaSlicer taldeari zer egoeratan gertatu den arazoa.\n"
"Eskerrik asko."
@@ -1085,9 +1174,12 @@ msgstr "Baxua"
msgid "Extra low"
msgstr "Oso baxua"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d triangelu"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% triangelu"
+msgstr[1] "%1% triangelu"
msgid "Show wireframe"
msgstr "Erakutsi alambre-sarea"
@@ -1098,6 +1190,17 @@ msgstr "Ezin da aplikatu prozesuaren aurrebistan"
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Eragiketa bertan behera uzten ari da. Mesedez, itxaron segundo batzuk."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "Modeloaren sinplifikazioa bertan behera utzi da"
+
+msgid "Wiki Guide"
+msgstr "Wiki Gida"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Bideo-gida"
+
msgid "Enforce seam"
msgstr "Jostura indartu"
@@ -1148,6 +1251,14 @@ msgstr "Gainazaleko posizioa"
msgid "Emboss"
msgstr "Erliebea"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Estiloan ez dago letra-tipo aktiborik. Hautatu zuzena."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont ez da behar bezala kargatu."
+
msgid "NORMAL"
msgstr "NORMALA"
@@ -1799,11 +1910,25 @@ msgstr "Diametroa"
msgid "Length"
msgstr "Luzera"
-msgid "Selection"
-msgstr "Hautaketa"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "1. aurpegia (finkoa)"
-msgid " (Moving)"
-msgstr " (Mugitzen)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "2. aurpegia (mugikorra)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "1. puntua (finkoa)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "2. puntua (mugikorra)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "1. hautaketa"
msgid ""
"Select 2 faces on objects and \n"
@@ -1819,14 +1944,9 @@ msgstr ""
"Hautatu 2 puntu edo zirkulu objektuetan eta\n"
" zehaztu beraien arteko distantzia."
-msgid "Face"
-msgstr "Aurpegia"
-
-msgid " (Fixed)"
-msgstr " (Finkatuta)"
-
-msgid "Point"
-msgstr "Puntua"
+# AI Translated
+msgid "Selection 2"
+msgstr "2. hautaketa"
msgid ""
"Feature 1 has been reset, \n"
@@ -1924,6 +2044,18 @@ msgstr "Muntaketa tresnan sartzen"
msgid "Leaving Assembly gizmo"
msgstr "Muntaketa tresnatik irteten"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2098,14 +2230,16 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
+# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Ezin izan da Microsoft WebView2 Runtime instalatu.\n"
"Zenbait eginbide, konfigurazio-laguntzailea barne, hutsik ager daitezke instalatu arte.\n"
-"Instalatu eskuz https://developer.microsoft.com/microsoft-edge/webview2/ helbidetik eta berrabiarazi OrcaSlicer."
+"Instalatu eskuz %1% helbidetik eta berrabiarazi Orca Slicer."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2324,6 +2458,66 @@ msgstr "Sareko pluginean murrizketak"
msgid "Privacy Policy Update"
msgstr "Pribatutasun politikaren eguneraketa"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Zure filamentu-aurrezarpen guztiak sortu ziren inprimagailuetan daude erabilgarri."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Migratu filamentu-aurrezarpenak"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 bertsioak sistemaren filamentu-aurrezarpen asko berregituratu ditu profil okerrak zuzentzeko eta etorkizuneko funtzioak prestatzeko. Ondorioz, beheko aurrezarpenak ez dira jada agertzen sortu ziren inprimagailu batzuetan. Barkatu eragozpenak; behin bakarrik egin beharreko zuzenketa da.\n"
+"\n"
+"Inprimagailu horiek zure aurrezarpenetan berriro gehitu nahi dituzu orain? Zure aurrezarpenen babeskopia egingo da lehenik. Geroago ere egin dezakezu, Laguntza > Migratu filamentu-aurrezarpenak aukeratik."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (oinarria: %2%)"
+
+msgid "Don't remind me again"
+msgstr "Ez gogorarazi berriro"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Zure aurrezarpenen babeskopia ezin izan da egin, beraz ez dira migratu."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Erabiltzailearen aurrezarpenen karpeta ezin izan da blokeatu, beraz ez da ezer migratu. Baliteke OrcaSlicer-en beste instantzia bat aurrezarpenak gordetzen ari izatea; saiatu berriro geroago Laguntza > Migratu filamentu-aurrezarpenak aukeratik."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Zure filamentu-aurrezarpenak ezin izan dira migratu. Zure aurrezarpenen babeskopia hemen gorde da:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Zure filamentu-aurrezarpenak migratu dira. Hautatu berriro filamentu-zerrendan, erabiltzen zenituen lekuetan.\n"
+"\n"
+"Zure aurrezarpenen babeskopia hemen gorde da:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Aurrezarpen hauek ezin izan dira migratu:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "zure Orca Cloud profila (erabiltzaile-IDa: \"%s\")"
@@ -2436,6 +2630,9 @@ msgstr "Pluginak freskatu dira."
msgid "Failed to refresh plugins: %s"
msgstr "Huts egin du pluginak freskatzean: %s"
+msgid "Unknown error"
+msgstr "Errore ezezaguna"
+
# AI Translated
msgid "Select plugin package"
msgstr "Hautatu plugin-paketea"
@@ -2959,6 +3156,22 @@ msgstr "Birkargatu guztia"
msgid "Reload all from disk"
msgstr "Birkargatu guztia diskotik"
+# AI Translated
+msgid "Fix All"
+msgstr "Konpondu guztiak"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Konpondu uneko plakako modelo guztiak"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Konpondu plaka guztiak"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Konpondu plaka guztietako modelo guztiak"
+
msgid "Auto Rotate"
msgstr "Biratu automatikoki"
@@ -3010,8 +3223,13 @@ msgstr "(Kolorea galdu da)"
msgid "Center"
msgstr "Zentratu"
-msgid "Drop"
-msgstr "Askatu"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Lerrokatu/Banatu"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Lerrokatu eta banatu objektuak"
msgid "Edit Process Settings"
msgstr "Editatu Prozesuaren Ezarpenak"
@@ -3287,6 +3505,13 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] "Ezin izan da ondorengo objektu-modeloa konpondu"
msgstr[1] "Ezin izan dira ondorengo objektu-modeloak konpondu"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "Ez zen konponketarik behar izan %1$d modelo-objektuan."
+msgstr[1] "Ez zen konponketarik behar izan %1$d modelo-objektutan."
+
msgid "Repairing was canceled"
msgstr "Konponketa bertan behera geratu zen"
@@ -3358,9 +3583,6 @@ msgstr "Itsaspen ertzik gabe"
msgid "Outer wall speed"
msgstr "Kanpoko hormako abiadura"
-msgid "Plate"
-msgstr "Plaka"
-
msgid "Brim"
msgstr "Itsaspen ertza"
@@ -3444,9 +3666,6 @@ msgstr "Gehitu Txantiloi Pertsonalizatua"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Txertatu txantiloiko G-code pertsonalizatua geruza honen hasieran."
-msgid "Filament "
-msgstr "Filamentua "
-
msgid "Change filament at the beginning of this layer."
msgstr "Aldatu filamentua geruza honen hasieran."
@@ -3534,8 +3753,10 @@ msgstr "Aldatu hala ere"
msgid "Off"
msgstr "Desaktibatuta"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
-msgstr "Iragazi"
+msgstr "Iragazkia"
msgid "Enabling filtration redirects the right fan to filter gas, which may reduce cooling performance."
msgstr "Iragazketa gaitzean, eskuineko haizagailua gasa iragaztera bideratzen da, eta horrek hozte-errendimendua murriztu dezake."
@@ -3647,11 +3868,20 @@ msgstr "Estrusioa konfirmatu"
msgid "Check filament location"
msgstr "Filamentuaren lokalizazioa egiaztatu"
-msgid "Switch"
-msgstr "Aldatu"
+# AI Translated
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Pausatu"
-msgid "hotend"
-msgstr "hotend-a"
+# AI Translated
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Aldatu estrusorea"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Aldatu hotenda"
msgid "Wait for AMS cooling"
msgstr "Itxaron AMS hoztu arte"
@@ -3815,8 +4045,10 @@ msgid "Arranging"
msgstr "Antolaketa"
# AI Translated
-msgid "Arranging "
-msgstr "Antolatzen "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "%1% antolatzen"
msgid "Arranging canceled."
msgstr "Antolaketa bertan behera utzi da."
@@ -3855,8 +4087,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Orientatzen..."
-msgid "Orienting"
-msgstr "Orientatzioa"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "%1% orientatzen"
msgid "Orienting canceled."
msgstr "Orientatzea bertan behera utzi da."
@@ -3864,6 +4099,12 @@ msgstr "Orientatzea bertan behera utzi da."
msgid "Filling"
msgstr "Betetzea"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "%1% betetzen"
+
msgid "Bed filling canceled."
msgstr "Ohearen betetzea bertan behera utzi da."
@@ -3879,6 +4120,34 @@ msgstr "Orientazioaren bilaketa bertan behera utzita."
msgid "Orientation found."
msgstr "Orientazioa aurkituta."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Gainazal-kalitate onena"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Optimizatu objektuaren biraketa gainazal-kalitate onena lortzeko."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Irtengune-malda murriztuak"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Optimizatu objektuaren biraketa euskarri-egiturak behar dituzten irtengune kopuru minimoa izan dadin.\n"
+"Kontuan izan ez badago igoerarik ezarrita, metodo honek objektuaren gainazalik onena aurkitzen saiatuko dela ohearekin kontaktuan egoteko."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Z altuera txikiena"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Biratu modeloa z altuera ahalik eta txikiena izan dezan, inprimatze-denbora azkarragoa lortzeko."
+
msgid "Logging in"
msgstr "Saioa hasten"
@@ -4167,6 +4436,16 @@ msgstr "Azken proiektuak"
msgid "Go to Plate"
msgstr "Joan plakara"
+msgid "Device"
+msgstr "Gailua"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Gailua (Web)"
+
+msgid "Multi-device"
+msgstr "Gailu anitz"
+
msgid "AMS Materials Setting"
msgstr "AMS Materialen Ezarpena"
@@ -4193,9 +4472,6 @@ msgstr "Sarreraren balioak %1% baino handiagoa eta %2% baino txikiagoa izan beha
msgid "Factors of Flow Dynamics Calibration"
msgstr "Fluxu-Dinamiken Kalibrazioaren faktoreak"
-msgid "Wiki Guide"
-msgstr "Wiki Gida"
-
# AI Translated
msgid "PA Profile"
msgstr "PA profila"
@@ -4226,6 +4502,14 @@ msgstr "Mesedez, sartu baliozko balio bat (K in %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Mesedez, sartu baliozko balio bat (K in %.1f~%.1f, N in %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Gogoko filamentuak"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Filamentu guztiak"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4542,11 +4826,11 @@ msgstr "Sareko plugina instalatu da, baina ezin izan da kargatu. Berrabiarazi ap
msgid "Restart Required"
msgstr "Berrabiarazi behar da"
-msgid "Please home all axes (click "
-msgstr "Mesedez, itzuli ardatz guztiak jatorrira (klik egin "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") inprimatze-buruaren posizioa kokatzeko. Horrela, gailua inprimatu daitekeen mugatik haratago mugitzea eta ekipoaren higadura saihesten ditu."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Mesedez, itzuli ardatz guztiak jatorrira (egin klik %1%) inprimatze-buruaren posizioa kokatzeko. Horrela, gailua inprimatu daitekeen mugatik haratago mugitzea eta ekipoa higatzea saihesten da."
msgid "Go Home"
msgstr "Hasierara joan"
@@ -4561,6 +4845,10 @@ msgstr "Errore oso larria gertatu da: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Mesedez, gorde proiektua eta berrabiarazi programa."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "C++ salbuespen ezezaguna."
+
msgid "Processing G-Code from previous file…"
msgstr "G-codea prozesatzen aurreko fitxategitik…"
@@ -4781,6 +5069,14 @@ msgstr "Automatikoki mugara (%g mm) doitu nahi duzu?"
msgid "Adjust"
msgstr "Doitu"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Baltsa eta aire-korronteen babeslea ez daude erabilgarri zinta-inprimagailuetan.\n"
+"Desgaitu egin dira."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5465,8 +5761,9 @@ msgstr "Pausatu inprimaketa"
msgid "Travel"
msgstr "Desplazamenduak"
+# AI Translated
msgid "Wipe"
-msgstr "Purgak"
+msgstr "Garbiketak"
msgid "Extrude"
msgstr "Estruitu"
@@ -5611,9 +5908,6 @@ msgstr "Berriro xerratu automatikoki filamentuen taldekatze optimoaren arabera;
msgid "Filament Grouping"
msgstr "Filamentuen taldekatzea"
-msgid "Why this grouping"
-msgstr "Zergatik taldekatze hau"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Jarri filamentuak inprimagailuan taldekatze-emaitzaren arabera."
@@ -5623,29 +5917,47 @@ msgstr "Aholkuak:"
msgid "Current grouping of slice result is not optimal."
msgstr "Xerratzearen emaitzaren uneko taldekatzea ez da optimoa."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Filamentua %1% g eta aldaketak %2% handitzen ditu taldekatze optimoarekin alderatuta."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Handitu %1% g filamentua eta %2% aldaketa taldekatze optimoarekin alderatuta."
+msgstr[1] "Handitu %1% g filamentua eta %2% aldaketa taldekatze optimoarekin alderatuta."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Filamentua %1% g handitzen du eta %2% aldaketa aurrezten ditu taldekatze optimoarekin alderatuta."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Handitu %1% g filamentua eta aurreztu %2% aldaketa taldekatze optimoarekin alderatuta."
+msgstr[1] "Handitu %1% g filamentua eta aurreztu %2% aldaketa taldekatze optimoarekin alderatuta."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Aurreztu %1% g filamentua eta handitu %2% aldaketa taldekatze optimoarekin alderatuta."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Aurreztu %1% g filamentua eta handitu %2% aldaketa taldekatze optimoarekin alderatuta."
+msgstr[1] "Aurreztu %1% g filamentua eta handitu %2% aldaketa taldekatze optimoarekin alderatuta."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Aurreztu %1% g filamentua eta %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Aurreztu %1% g filamentua eta %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
+msgstr[1] "Aurreztu %1% g filamentua eta %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Aurreztu %1% g filamentua eta handitu %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Aurreztu %1% g filamentua eta handitu %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
+msgstr[1] "Aurreztu %1% g filamentua eta handitu %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Handitu %1% g filamentua eta aurreztu %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Handitu %1% g filamentua eta aurreztu %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
+msgstr[1] "Handitu %1% g filamentua eta aurreztu %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
msgid "Set to Optimal"
msgstr "Ezarri optimo gisa"
@@ -5802,11 +6114,60 @@ msgstr "Edizio-eremua handitu/txikitu"
msgid "Sequence"
msgstr "Sekuentzia"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Plakaren masa-zentroa"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Piezaren masa-zentroa"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Euskarriaren masa-zentroa"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Multzoaren masa-zentroa"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Objektuaren masa-zentroa"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Amaitutako inprimaketa"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "%1%. geruzaraino inprimatuta"
+
+# AI Translated
+msgid "Weight"
+msgstr "Pisua"
+
+msgid "Volume"
+msgstr "Bolumena"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Zentroa muga-kutxan"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Muga-kutxaren tamaina"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Inertzia-momentua"
+
msgid "Object selection"
msgstr "Objektuen hautaketa"
-msgid "number keys"
-msgstr "zenbaki-teklak"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "1~16 zenbaki-teklak"
msgid "Number keys can quickly change the color of objects"
msgstr "Zenbaki-teklek objektuen kolorea azkar alda dezakete"
@@ -6012,9 +6373,20 @@ msgstr "Ardatzak"
msgid "Gridlines"
msgstr "Sareta-lerroak"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Etiketak"
+# AI Translated
+msgid "Center of mass"
+msgstr "Masa-zentroa"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Erakutsi G-code gordina (zintarako soilik)"
+
# AI Translated
msgid "Move section plane"
msgstr "Mugitu sekzio-planoa"
@@ -6063,7 +6435,7 @@ msgstr "Bolumena:"
msgid "Size:"
msgstr "Tamaina:"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "G-code ibilbideen gatazkak aurkitu dira %d geruzan, Z = %.2lf mm. Urrundu gehiago gatazkan dauden objektuak (%s <-> %s)."
@@ -6083,21 +6455,19 @@ msgstr "Ez da onartzen bi TPU filamenturekin edo gehiagorekin inprimatzea."
msgid "Tool %d"
msgstr "%d tresna"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "%s filamentua %s(e)n dago, baina sortutako G-code ibilbideak %s-ren inprimatze-eremua gainditzen du."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "%s filamentuak %s(e)n daude, baina sortutako G-code ibilbideak %s-ren inprimatze-eremua gainditzen du."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "%s filamentua %s(e)n dago, baina sortutako G-code ibilbideak %s-ren inprimatze-eremua gainditzen du."
+msgstr[1] "%s filamentuak %s(e)n daude, baina sortutako G-code ibilbideak %s-ren inprimatze-eremua gainditzen du."
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "%s filamentua %s(e)n dago, baina sortutako G-code ibilbideak %s-ren inprimatze-altuera gainditzen du."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "%s filamentuak %s(e)n daude, baina sortutako G-code ibilbideak %s-ren inprimatze-altuera gainditzen du."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "%s filamentua %s(e)n dago, baina sortutako G-code ibilbideak %s-ren inprimatze-altuera gainditzen du."
+msgstr[1] "%s filamentuak %s(e)n daude, baina sortutako G-code ibilbideak %s-ren inprimatze-altuera gainditzen du."
msgid "Open wiki for more information."
msgstr "Ireki wikia informazio gehiago lortzeko."
@@ -6105,9 +6475,12 @@ msgstr "Ireki wikia informazio gehiago lortzeko."
msgid "Only the object being edited is visible."
msgstr "Editatzen ari den objektua bakarrik dago ikusgai."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "%s filamentuak ezin dira zuzenean plaka honen gainazalean inprimatu."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "%s filamentua ezin da zuzenean plaka honen gainazalean inprimatu."
+msgstr[1] "%s filamentuak ezin dira zuzenean plaka honen gainazalean inprimatu."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "PLA eta PETG filamentuak hauteman dira nahasketan. Doitu parametroak Wikiaren arabera inprimatze-kalitatea bermatzeko."
@@ -6226,27 +6599,20 @@ msgstr "Prestatu"
msgid "Preview"
msgstr "Aurrebista"
-msgid "Device"
-msgstr "Gailua"
-
-msgid "Multi-device"
-msgstr "Gailu anitz"
-
msgid "Project"
msgstr "Proiektua"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Gailua (Web)"
-
msgid "Yes"
msgstr "Bai"
msgid "No"
msgstr "Ez"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "itxi egingo da modelo berri bat sortu aurretik. Jarraitu nahi duzu?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s itxi egingo da modelo berri bat sortu aurretik. Jarraitu nahi duzu?"
msgid "Print all"
msgstr "Inprimatu dena"
@@ -6291,6 +6657,10 @@ msgstr "Konfigurazio-laguntzailea"
msgid "Show Configuration Folder"
msgstr "Erakutsi konfigurazio-karpeta"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Berreskuratu profil-eguneraketa batek sortu ziren inprimagailuetatik kendutako filamentu-aurrezarpenak"
+
msgid "Troubleshoot Center"
msgstr "Arazoak konpontzeko zentroa"
@@ -6529,6 +6899,14 @@ msgstr "Erakutsi sareta-lerroak"
msgid "Show Gridlines on plate"
msgstr "Erakutsi sareta-lerroak plakan"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Erakutsi IDEX/IQEX inprimatze-burua"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Erakutsi IDEX/IQEX inprimatze-buruaren irudikapena pita aktibo bakoitzaren inguruan G-code aurrebistan."
+
msgid "Reset Window Layout"
msgstr "Berrezarri Leihoaren Diseinua"
@@ -7157,6 +7535,8 @@ msgstr "Baloratu"
msgid "Calculating..."
msgstr "Kalkulatzen..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Kamera"
@@ -7235,9 +7615,12 @@ msgstr "Deskargatzen..."
msgid "Cloud Slicing..."
msgstr "Hodeian xerratzen..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "Hodeian xerratzeko ilaran, %s zeregin dituzu aurretik."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "Hodeiko xerratze-ilaran, %d zeregin dago zure aurretik."
+msgstr[1] "Hodeiko xerratze-ilaran, %d zeregin daude zure aurretik."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7268,6 +7651,11 @@ msgstr "Honek inprimatzean bakarrik du eragina"
msgid "Silent"
msgstr "Isila"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Estandarra"
+
msgid "Sport"
msgstr "Kirola"
@@ -7322,17 +7710,29 @@ msgstr "Igo irudiak"
msgid "Number of images successfully uploaded"
msgstr "Behar bezala igotako irudi kopurua"
-msgid " upload failed"
-msgstr " igotzeak huts egin du"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "%s igotzeak huts egin du"
-msgid " upload config prase failed\n"
-msgstr " igoeraren konfigurazioa analizatzeak huts egin du\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "%s igoeraren konfigurazioa analizatzeak huts egin du"
-msgid " No corresponding storage bucket\n"
-msgstr " Ez dago dagokion biltegiratze-ontzirik\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: Ez dago dagokion biltegiratze-ontzirik"
-msgid " cannot be opened\n"
-msgstr " ezin da ireki\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s ezin da ireki"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7350,26 +7750,22 @@ msgstr "Igoerak huts egin du\n"
msgid "Obtaining instance_id failed\n"
msgstr "instance_id eskuratzeak huts egin du\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Zure iruzkinaren emaitza ezin da igo arrazoi hauengatik:\n"
-"\n"
-" errore-kodea: "
-
-msgid "error message: "
-msgstr "errore-mezua: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Zure iruzkinaren emaitza ezin da igo arrazoi hauengatik:\n"
"\n"
+" errore-kodea: %d\n"
+" errore-mezua: %s\n"
"\n"
-"Web orrira birbideratu nahi duzu balorazioa emateko?"
+"Web-orrira birbideratu nahi zaitugu balorazioa emateko?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Zure irudi batzuk ezin izan dira igo. Web orrira birbideratu nahi duzu balorazioa emateko?"
@@ -8200,6 +8596,108 @@ msgstr "Ikusi objektuaren ezarpen guztiak"
msgid "Material settings"
msgstr "Materialaren ezarpenak"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Modu bakoitzak zehazten du zein inprimatze-buruk hartzen duten parte eta bakoitzak zer rol betetzen duen. Egin klik erreminta-botoi batean haren rola aldatzeko — jarri sagua beheko kolore baten gainean rol bakoitzak zer egiten duen ikusteko."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Gehitu modua"
+
+# AI Translated
+msgid "Tools"
+msgstr "Tresnak"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Moduak plakaren IDEX/IQEX modu-hautatzailean duen izena. Derrigorrezkoa — izenik gabeko modu bat ezin da hautatu."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Zein inprimatze-buruk hartzen duten parte moduan eta bakoitzak zer rol betetzen duen. Egin klik lauza batean haren rola aldatzeko."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "Inprimaketaren hasieran exekutatzen den G-code, inprimagailua modu honetan jartzeko (adibidez, Klipper-en SET_PRINT_MODE dei bat). Xerratzaileak erreminta nagusiaren (Primary) ibilbideak soilik sortzen ditu; besteak firmwareak gidatzen ditu."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Inaktibo"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Nagusia"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Kopia"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Ispilua"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Xerratutako ibilbide guztiak gidatzen ditu. Beti 0 erreminta da — erabili goiko \"0 erremintaren posizioa\" ohearen zein izkina hartzen duen aukeratzeko. Ezin da saretik mugitu."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Nagusiari (Primary) jarraitzen dio firmware mailan, ibilbide berak inprimatuz bere eremura desplazatuta."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Nagusiari (Primary) jarraitzen dio firmware mailan, ibilbide berak inprimatuz bi eremuen arteko mugan islatuta."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Nagusiaren (Primary) atariko erreminta bat haren kolore anitzeko bikote gisa markatzen du. Beharrezkoa da atari-bikoteko moduetan kolore anitzeko inprimaketa ahalbidetzeko."
+
+# AI Translated
+msgid "Primary"
+msgstr "Nagusia"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Moduaren izena (derrigorrezkoa)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Modu paralelo honen izena, plakaren IDEX/IQEX modu-hautatzailean agertzen den bezala. Proiektuan izenaren arabera gordetzen da; beraz, plakek dagoeneko erabiltzen duten modu bat berrizendatzen bada, plaka horiek Nagusia (Primary) modura itzuliko dira. Ezin da hutsik egon — izen hutsa sortutako izen batekin ordezkatzen da."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "Modu hau erabiltzen duen inprimaketa baten hasieran behin igortzen den G-code, makinaren hasierako G-codearen aurretik. Hemen jartzen da inprimagailua dagokion firmware-moduan — adibidez, Klipper-en SET_PRINT_MODE dei bat edo RepRapFirmware-ren M567 bat —, xerratzaileak erreminta nagusiaren (Primary) ibilbideak soilik igortzen dituelako eta Kopia / Ispilua (Copy / Mirror) erremintak firmwareak gidatzen dituelako. Posizio-markagailuak onartzen dira; erabili edizio-botoia haiek arakatzeko. Utzi hutsik moduak firmware-konfiguraziorik behar ez badu."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Editatu G-code / arakatu posizio-markagailuak"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Kendu modua"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Baztertu saio honetan modu honi egindako aldaketak (itzuli gordetako baliora)"
+
msgid "Remove current plate (if not last one)"
msgstr "Kendu uneko plaka (azkena ez bada)"
@@ -8224,12 +8722,33 @@ msgstr "Editatu uneko plakaren izena"
msgid "Move plate to the front"
msgstr "Eraman plaka aurrealdera"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX modua: %1% (prozesu-aurrezarpena: %2%) (ezkerreko klik aldatzeko, eskuineko klik menurako)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX modua: %1% (ezkerreko klik aldatzeko, eskuineko klik menurako)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Abisua: plaka honek IDEX/IQEX modu paraleloa erabiltzen du material anitzeko objektuekin. Jarraitu kontuz — egiaztatu zure G-codeak konbinazio hau behar bezala kudeatzen duela."
+
msgid "Customize current plate"
msgstr "Pertsonalizatu uneko plaka"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "%s pitak ezin du %s inprimatu."
+msgid "The left nozzle cannot print %s."
+msgstr "Ezkerreko pitak ezin du %s inprimatu."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "Eskuineko pitak ezin du %s inprimatu."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8239,12 +8758,18 @@ msgstr "Kolore nahasiko filamentua estrusore bakarreko inprimagailu batean inpri
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Ez da gomendatzen inprimatzean %1% eta %2% nahastea.\n"
-msgid " nozzle"
-msgstr " pita"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Ez da gomendatzen filamentu hauek %1% erabiliz inprimatzea: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "%1%mm-ko pita (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Ez da gomendatzen filamentu hau %1% erabiliz inprimatzea: %2%\n"
+msgstr[1] "Ez da gomendatzen filamentu hauek %1% erabiliz inprimatzea: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "Ez da gomendatzen pita eta filamentu konbinazio hauek erabiltzea:\n"
@@ -8253,9 +8778,11 @@ msgstr "Ez da gomendatzen pita eta filamentu konbinazio hauek erabiltzea:\n"
msgid "%1% with %2%\n"
msgstr "%1%, %2% erabiliz\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " %1% plaka:"
+msgid "Slicing plate %1%: %2%"
+msgstr "%1% plaka xerratzen: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Izen baliogabea; karaktere hauek ez dira onartzen:"
@@ -8290,12 +8817,6 @@ msgstr "AMS (zirrikitu 1)"
msgid "Not installed"
msgstr "Instalatu gabe"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "Softwareak ez du onartzen inprimatze berean diametro desberdineko pitak erabiltzea. Ezkerreko eta eskuineko pitak desberdinak badira, buru bakarreko inprimatzea baino ezin da egin. Berretsi zein pita erabili nahi duzun proiektu honetan."
-
-msgid "Switch diameter"
-msgstr "Aldatu diametroa"
-
msgid "Configuration incompatible"
msgstr "Konfigurazio bateraezina"
@@ -8374,6 +8895,10 @@ msgstr "Filamentu nahasia"
msgid "Remove last mixed filament"
msgstr "Kendu azken filamentu nahasia"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Kendu filamentu nahasi guztiak"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Gehitu filamentu nahasia"
@@ -8396,6 +8921,13 @@ msgstr "Filamentu nahasiak hautsitako osagai-erreferentziak ditu"
msgid "Edit / Delete / Merge"
msgstr "Editatu / Ezabatu / Batu"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Kendu %1% filamentu nahasia?"
+msgstr[1] "Kendu %1% filamentu nahasi guztiak?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Helburuko filamentu nahasiak filamentu fisiko hau erabiltzen du osagai gisa. Batzeak filamentu fisiko hau ezabatuko du eta filamentu nahasia baliogabetu dezake. Jarraitu?"
@@ -8470,9 +9002,6 @@ msgstr "%s fitxategia kargatzen"
msgid "Load 3MF"
msgstr "Kargatu 3MF"
-msgid "BambuStudio Project"
-msgstr "BambuStudio proiektua"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "3MF-a ez du OrcaSlicerrek onartzen; geometriaren datuak bakarrik kargatzen."
@@ -8503,17 +9032,6 @@ msgstr "Softwarea eguneratu beharko zenuke.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "3MF-aren %s bertsioa %s-ren %s bertsioa baino berriagoa da; softwarea eguneratzea gomendatzen da."
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "3MF fitxategia BambuStudio bidez sortu zen (%s bertsioa), bertsio hori bateragarria den %s bertsioa baino berriagoa da. Ezagutzen ez diren ezarpenak aurkitu dira:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "3MF fitxategia BambuStudioren %s bertsioarekin sortu da, eta hori %s bertsio bateragarria baino berriagoa da. Baliteke ezarpen batzuk guztiz bateragarriak ez izatea."
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "3MF fitxategia BambuStudio erabiliz sortu da. Baliteke ezarpen batzuk OrcaSlicerrekoen desberdinak izatea."
-
msgid "Invalid values found in the 3MF:"
msgstr "Balio baliogabeak aurkitu dira 3MF fitxategian:"
@@ -8677,6 +9195,14 @@ msgstr "Auto-Drop desgaitu Z posizioa mantentzeko?\n"
msgid "Object with floating parts was detected"
msgstr "Airean dauden piezak dituen objektu bat detektatu da"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Ezin da xerratu: objektu bat IDEX/IQEX inprimatze paraleloarentzat gordetako gune batekin gainjartzen da (bigarren mailako eremu bat, edo eremu nagusiaren barruko orgaren tarte-banda bat)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Ezin da xerratu: purgatze-dorrea IDEX/IQEX inprimatze paraleloarentzat gordetako gune batekin gainjartzen da (bigarren mailako eremu bat, edo eremu nagusiaren barruko orgaren tarte-banda bat)."
+
msgid "Another export job is running."
msgstr "Beste esportazio-lan bat martxan dago."
@@ -8729,8 +9255,9 @@ msgstr "Ordeztutako bolumenak"
msgid "Please select a file"
msgstr "Hautatu fitxategi bat"
-msgid "Do you want to replace it"
-msgstr "Ordeztu nahi duzu"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Ordeztu nahi duzu?"
msgid "Message"
msgstr "Mezua"
@@ -8759,6 +9286,50 @@ msgstr "Datu baliogabeak"
msgid "Slicing Canceled"
msgstr "Xerraketa bertan behera utzita"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Ohearen tenperatura-gatazka: T%d (%s) tresnak ohea %d℃-tan jartzen du — T%d (%s) tresnak %d℃ behar ditu. Tresna nagusiak kontrolatzen du ohea; bigarren mailako tresnek hark ezartzen duen tenperaturan inprimatzen dute."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Filamentu motak ez datoz bat: T%d erremintak %s erabiltzen du eta T%d erremintak %s. Material hauek eskakizun bateraezinak dituzte eta ez daude elkarrekin inprimatzeko diseinatuta."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"%d. plakak IDEX/IQEX modu paraleloa aktibo du, arazo hauekin:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Xerratzen jarraitu?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "IDEX/IQEX modu paraleloaren abisua"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Ez erakutsi abisu hauek berriro"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "%d. plaka:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"IDEX/IQEX modu paraleloaren arazo hauek hauteman dira:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Sareko plugina behar bezala aldatu da."
@@ -8791,8 +9362,8 @@ msgid "Sync now"
msgstr "Sinkronizatu orain"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Ezin da desegin edo berregin eragiketa bat martxan dagoen bitartean. Gelditu lehenik."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Ezin da desegin edo berregin eragiketa bat martxan dagoen bitartean. Gelditu eragiketa, edo itxaron amaitu arte eta saiatu berriro."
# AI Translated
msgid ""
@@ -8863,6 +9434,14 @@ msgstr "Deskargak huts egin du; fitxategiaren tamainarekin arazoa."
msgid "Project downloaded %d%%"
msgstr "Proiektua deskargatuta: %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"PA lerroa eta PA patroia probak ez daude oraindik gaituta zinta-inprimagailuetan.\n"
+"Erabili PA dorrea metodoa horren ordez."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Pressure Advance proba"
@@ -8870,11 +9449,15 @@ msgstr "Pressure Advance proba"
msgid "INFO:"
msgstr "INFO:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Ez da azeleraziorik eman kalibraziorako. Erabili azelerazio-balio lehenetsia "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Ez da azeleraziorik eman kalibraziorako. Erabili azelerazio-balio lehenetsia %1%mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Ez da abiadurarik eman kalibraziorako. Erabili abiadura optimo lehenetsia "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Ez da abiadurarik eman kalibraziorako. Erabili abiadura optimo lehenetsia %1%mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -8889,6 +9472,15 @@ msgstr "Orca YOLO fluxu-kalibrazioa"
msgid "Flowrate Test - Pass%d"
msgstr "Fluxu-tasaren proba - %d. pasaldia"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Ez dago zintarako tenperatura-dorrerik %1% eta %2%℃ arteko tarterako. Erabili dorre-modeloek estaltzen duten tarte bat, adibidez 230etik 190era."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Tenperatura-dorrea"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Pitaren tenperatura-proba"
@@ -8912,11 +9504,16 @@ msgstr "Kurbatze-proba"
msgid "Import SLA archive"
msgstr "SLA artxiboa inportatu"
-msgid "The selected file"
-msgstr "Hautatutako fitxategiak"
-
-msgid "Does not contain valid G-code."
-msgstr "Ez dauka baliozko G-coderik."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Hautatutako fitxategiak:\n"
+"%1%\n"
+"ez du baliozko G-coderik."
msgid "An Error has occurred while loading the G-code file."
msgstr "Errore bat gertatu da G-code fitxategia kargatzean."
@@ -9177,6 +9774,27 @@ msgstr "Une honetan, objektuaren konfigurazio-inprimakia ezin da erabili estruso
msgid "Not available"
msgstr "Ez dago erabilgarri"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (plakarik ez)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — ez dago filamenturik bideratuta\n"
+"Gehitu estrusore bat Makina fitxan, buru honek filamentu-zirrikitu bat izan dezan."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> %2%. filamentua"
+
msgid "isometric"
msgstr "isometrikoa"
@@ -9216,8 +9834,10 @@ msgstr "Europa"
msgid "North America"
msgstr "Ipar Amerika"
+# AI Translated
+msgctxt "Region"
msgid "Others"
-msgstr "Besteak"
+msgstr "Beste batzuk"
msgid "Changing the region will log you out of your account.\n"
msgstr "Eskualdea aldatzean zure kontuko saioa itxiko da.\n"
@@ -9290,11 +9910,17 @@ msgstr "Ezin izan da sareko plugina birkargatu. Berrabiarazi aplikazioa."
msgid "Reload Failed"
msgstr "Birkargatzeak huts egin du"
-msgid "Associate"
-msgstr "Elkartu"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Elkartu %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "OrcaSlicerrekin, Orcak hemendik modeloak ireki ahal izateko:"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Elkartu %s:// OrcaSlicerrekin, Orcak modeloak hemendik ireki ahal izateko: %s"
msgid "Current Association: "
msgstr "Uneko esleipena: "
@@ -9586,6 +10212,9 @@ msgstr "Gogoratu azken inprimatze-ekintza"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Gaituta badago, OrcaSlicerrek inprimatze-botoiaren goitibeherako zerrendan hautatutako azken aukera gogoratuko du (adib. Inprimatu, Esportatu plakan xerratutako objektuak fitxategi batera, Esportatu G-code fitxategia) eta lehenetsi gisa erabiliko du hurrengo abiaraztean."
+msgid "Camera"
+msgstr "Kamera"
+
msgid "Touchpad"
msgstr "Ukipen-panela"
@@ -10012,6 +10641,9 @@ msgstr "Sareko pluginaren bertsioa"
msgid "Select the network plug-in version to use"
msgstr "Hautatu erabili beharreko sareko pluginaren bertsioa"
+msgid "Associate"
+msgstr "Elkartu"
+
msgid "Associate files to OrcaSlicer"
msgstr "Esleitu fitxategiak OrcaSlicerri"
@@ -10060,6 +10692,12 @@ msgstr "Erakutsi onartzen ez diren aurrezarpenak"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Erakutsi bateraezinak edo onartu gabeak diren aurrezarpenak inprimagailuaren eta filamentuaren goitibeherako zerrendetan. Aurrezarpen hauek ezin dira hautatu."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Experimental Features"
msgstr "Ezaugarri esperimentalak"
@@ -10342,10 +10980,6 @@ msgstr "Argitaratu 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Hautatu zein ezarpen argitaratuko diren 3MF fitxategian"
-# AI Translated
-msgid "Video Guide"
-msgstr "Bideo-gida"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Filamentu nahasia - osorik argitaratzen da goian \"Gaitu\" hautatuta dagoenean"
@@ -10510,6 +11144,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Sinplea"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s hemendik: %s"
+
# AI Translated
msgid "Search actions"
msgstr "Bilatu ekintzak"
@@ -10627,6 +11267,10 @@ msgstr "Erakutsi xehetasunak"
msgid "Hide details"
msgstr "Ezkutatu xehetasunak"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Web ikuspegia ez dago erabilgarri."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -10900,9 +11544,12 @@ msgstr "Bidalketak huts egin du"
msgid "The name length exceeds the limit."
msgstr "Izenaren luzerak muga gainditzen du."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Taldekatze optimoak baino %d g filamentu gehiago eta %d aldaketa gehiago kostatzen ditu."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Taldekatze optimoak baino %d g filamentu gehiago eta %d aldaketa gehiago kostatzen ditu."
+msgstr[1] "Taldekatze optimoak baino %d g filamentu gehiago eta %d aldaketa gehiago kostatzen ditu."
# AI Translated
msgid "Right-Ext"
@@ -10982,6 +11629,9 @@ msgstr "Filamentu batzuk estrusoreen artean alda daitezke inprimatzen ari den bi
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "Fitxategi honetan harilkatzeko joera duen filamentua dago. Inprimatze-kalitate onena lortzeko, pitako material-metaketaren detekzioa Auto modura aldatzea gomendatzen dugu."
+msgid "Switch"
+msgstr "Aldatu"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "'Fluxu Dinamikoaren Kalibrazioa' Auto/On ezarrita badago, sistemak eskuzko kalibrazio-balioa edo balio lehenetsia erabiliko du eta fluxu-kalibrazioaren prozesua saltatuko du. TPU filamenturako eskuzko fluxu-kalibrazioa egin dezakezu 'Kalibrazioa' orrian."
@@ -11288,6 +11938,10 @@ msgstr "Ez da onartzen estrusore-eragile desberdinak edo pita-bolumen mota desbe
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Sinkronizatu parametroen aldaketak beste estrusoreko parametro baliokideekin."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Ikono hau duten parametroak pita bakoitzeko konfigura daitezke."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Egin klik ezarpen guztiak azken aurrezarpen gordera berrezartzeko."
@@ -11521,6 +12175,9 @@ msgstr "Ezaugarrietarako filamentua"
msgid "Ooze prevention"
msgstr "Jarioa saihestea"
+msgid "Others"
+msgstr "Besteak"
+
msgid "Special mode"
msgstr "Modu berezia"
@@ -11559,8 +12216,11 @@ msgstr[1] ""
"%s lerroek erreserbatutako gako-hitzak dituzte.\n"
"Kendu, bestela G-codearen bistaratzeak eta inprimatze-denboraren estimazioak huts egingo dute."
-msgid "Reserved keywords found"
-msgstr "Erreserbatutako gako-hitzak aurkitu dira"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Erreserbatutako gako-hitzak aurkitu dira hemen: %1%"
msgid "Setting Overrides"
msgstr "Ezarpenen gainidazketak"
@@ -11698,7 +12358,16 @@ msgstr "Inprimatzeko espazioa"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Hautatu sare-agentearen inplementazioa inprimagailuarekin komunikatzeko. Erabilgarri dauden agenteak abioan erregistratzen dira."
+# AI Translated
+msgid "Belt printer"
+msgstr "Zinta-inprimagailua"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Makinaren koordenatu-sistemaren transformazioak"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Balio baliogabea eman da %1% parametrorako: %2%"
@@ -11811,9 +12480,29 @@ msgstr "Pitaren diametroa"
msgid "Wipe tower"
msgstr "Purgatze-dorrea"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Zintaren purgatze-dorrea"
+
msgid "Single extruder multi-material parameters"
msgstr "Estrusore bakarreko material anitzeko parametroak"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "IDEX/IQEX konfigurazioa"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Xerratu aurreko abisuak"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Erakutsi abisu-elkarrizketa-koadro bat xerratu aurretik IDEX/IQEX modu paraleloaren arazoak hautematen badira (ohearen tenperatura-gatazkak, bat ez datozen filamentu motak, material anitzeko gatazkak). Elkarrizketa-koadrotik bertatik desgai daiteke. Gaitu berriro hemen nahi gabe desgaitu bada."
+
+# AI Translated
+msgid "Modes"
+msgstr "Moduak"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Hau estrusore bakarreko material anitzeko inprimagailua da; estrusore guztien diametroak balio berrira ezarriko dira. Jarraitu nahi duzu?"
@@ -11823,12 +12512,29 @@ msgstr "Geruza-altueraren mugak"
msgid "Z-Hop"
msgstr "Z jauzia"
+# AI Translated
+msgid "Front-left"
+msgstr "Aurre-ezkerra"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Aurre-eskuina"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Atze-ezkerra"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Atze-eskuina"
+
+# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
"\n"
"Shall I set it to 100% in order to enable Firmware Retraction?"
msgstr ""
-"'Garbitu aurretik atzera egin' aukerak %100 izan behar du firmware bidezko atzera-egite modua erabiltzean.\n"
+"'Garbiketa aurreko atzera-egite kantitatea' aukerak %100 izan behar du firmware bidezko atzera-egite modua erabiltzean.\n"
"\n"
"%100ean ezarri nahi duzu firmware bidezko atzera-egitea gaitzeko?"
@@ -11844,22 +12550,37 @@ msgstr "Erabili aldatutako balioa"
msgid "Detached"
msgstr "Bereizita"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% eta %2% inprimagailu honi lotuta daude. Inprimagailua ezabatuz gero, aurrezarpen horiek ezabatuko lirateke."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d filamentuen aurrezarpen eta %d prozesu-aurrezarpen inprimagailu honi lotuta daude. Inprimagailua ezabatuz gero, aurrezarpen horiek ezabatuko lirateke."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d filamentu-aurrezarpen"
+msgstr[1] "%d filamentu-aurrezarpen"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d prozesu-aurrezarpen"
+msgstr[1] "%d prozesu-aurrezarpen"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Beste aurrezarpen batzuetatik herentzian hartutako aurrezarpenak ezin dira ezabatu!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Hurrengo aurrezarpenak aurrezarpen hau hartuko du herentzian."
-msgstr[1] "Hurrengo aurrezarpenek aurrezarpen hau hartuko dute herentzian."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "Hurrengo aurrezarpenak aurrezarpen hau hartzen du herentzian."
+msgstr[1] "Hurrengo aurrezarpenek aurrezarpen hau hartzen dute herentzian."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% aurrezarpena"
+msgid "Delete Preset"
+msgstr "Ezabatu aurrezarpena"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -11873,9 +12594,9 @@ msgstr ""
"Ziur zaude hautatutako aurrezarpena ezabatu nahi duzula?\n"
"Aurrezarpena zure inprimagailuan unean erabiltzen den filamenturen bati badagokio, berrezarri zirrikitu horretako filamentuen informazioa."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Ziur hautatutako aurrezarpena %1% nahi duzula?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Ziur hautatutako aurrezarpena ezabatu nahi duzula?"
msgid "Select printers"
msgstr "Hautatu inprimagailuak"
@@ -11928,9 +12649,40 @@ msgstr "Jarraitu"
msgid "Don't warn again for this preset"
msgstr "Ez ohartarazi berriro aurrezarpen honetarako"
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# AI Translated
+# Needs human review: Short nozzle flow-type tag; kept as the English abbreviation printed on the nozzles. Check whether a Basque abbreviation is preferred.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Short nozzle flow-type tag; kept as the English abbreviation printed on the nozzles. Check whether a Basque abbreviation is preferred.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Short nozzle flow-type tag; kept as the English abbreviation printed on the nozzles. Check whether a Basque abbreviation is preferred.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Short nozzle flow-type tag; kept as the English abbreviation printed on the nozzles. Check whether a Basque abbreviation is preferred.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short nozzle flow-type tag; kept as the English abbreviation printed on the nozzles. Check whether a Basque abbreviation is preferred.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
msgid "No modifications need to be copied."
msgstr "Ez dago kopiatu beharreko aldaketarik."
@@ -12122,6 +12874,12 @@ msgstr "Aurrezarpenetako bat ez da existitzen"
msgid "Compared presets has different printer technology"
msgstr "Alderatutako aurrezarpenek inprimagailu-teknologia desberdina dute"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" eta \"%2%\" alderatuta"
+
msgid "Add File"
msgstr "Gehitu fitxategia"
@@ -12147,6 +12905,22 @@ msgstr "Materialen zerrenda"
msgid "Assembly Guide"
msgstr "Muntaketa-gida"
+# AI Translated
+msgid "Image files"
+msgstr "Irudi-fitxategiak"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXT fitxategiak"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCEL fitxategiak"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDF fitxategiak"
+
msgid "Author"
msgstr "Egilea"
@@ -12345,9 +13119,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Erabateko moldaketa"
-msgid "Volume"
-msgstr "Bolumena"
-
msgid "Ramming line"
msgstr "Moldaketa-lerroa"
@@ -12374,8 +13145,10 @@ msgstr "Biderkatzailea"
msgid "Flushing volumes for filament change"
msgstr "Filamentua aldatzeko purgatze-bolumenak"
-msgid "Please choose the filament color"
-msgstr "Hautatu filamentuen kolorea"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "nondik/nora"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "Hodeiko agentea ez dago erabilgarri. Berrabiarazi OrcaSlicer eta saiatu berriro."
@@ -12395,6 +13168,155 @@ msgstr "Saio-hasierak huts egin du. Saiatu berriro."
msgid "parse json failed"
msgstr "JSONa analizatzeak huts egin du"
+# AI Translated
+msgid "Loading…"
+msgstr "Kargatzen…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Pertsonalizatua"
+
+# AI Translated
+msgid "Welcome to Orca Slicer"
+msgstr "Ongi etorri Orca Slicer-era"
+
+# AI Translated
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer hainbat urratsetan konfiguratuko da. Has gaitezen!"
+
+# AI Translated
+msgid "Get Started"
+msgstr "Hasi"
+
+# AI Translated
+msgid "Please select your login region"
+msgstr "Hautatu saio-hasierako eskualdea"
+
+msgid "Finish"
+msgstr "Amaitu"
+
+# AI Translated
+msgid "Printer Selection"
+msgstr "Inprimagailuen hautaketa"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Hornitzaileak"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Inprimagailu pertsonalizatua"
+
+msgid "Create"
+msgstr "Sortu"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Bilatu inprimagailu berriak"
+
+# AI Translated
+msgid "At least one printer must be selected."
+msgstr "Gutxienez inprimagailu bat hautatu behar da."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Inprimagailu berriak aurkitu dira"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Inprimagailu-hornitzaile berriak instalatu dira: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Inprimagailu-hornitzaile berriak aurkitu dira, baina instalazioa bertan behera utzi da."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Ez da inprimagailu berririk aurkitu."
+
+# AI Translated
+msgid "Filament Selection"
+msgstr "Filamentuen hautaketa"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "Sistemako filamentuak"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "Filamentu pertsonalizatuak"
+
+# AI Translated
+msgid "Create New"
+msgstr "Sortu berria"
+
+msgid "Filament type"
+msgstr "Filamentu mota"
+
+msgid "Vendor"
+msgstr "Hornitzailea"
+
+# AI Translated
+msgid "No items"
+msgstr "Ez dago elementurik"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Iragazi elementuak"
+
+# AI Translated
+msgid "Checked"
+msgstr "Hautatuak"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Hautatu gabeak"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Hautatu iragazitakoak"
+
+# AI Translated
+msgid "Clear all"
+msgstr "Garbitu dena"
+
+# AI Translated
+msgid "At least one filament must be selected."
+msgstr "Gutxienez filamentu bat hautatu behar da."
+
+# AI Translated
+msgid "Do you want to use the default filament?"
+msgstr "Filamentu lehenetsia erabili nahi duzu?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Honek hodeiko eginbide guztiak desgaitzen ditu, Orca Cloud profilen sinkronizazioa barne. Guztiz lineaz kanpo lan egin nahi duten erabiltzaileek aukera hau gaitu dezakete."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Oharra: Modu ezkutua gaituta dagoenean, zure erabiltzaile-profilen segurtasun-kopiarik ez da egingo Orca Cloud-en."
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "Gaitu modu isila."
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Plugin jabedunak"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Inprimagailu-hornitzaile batzuek plugin jabedunak behar dituzte beren inprimagailuekin komunikatzeko. Hautatu dagokion plugina horrelako inprimagailuak erabiltzen badituzu."
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Kontuan izan plugin hauek ez dituela OrcaSlicer-ek garatzen edo mantentzen. Zure erabakiz eta arriskuz erabili behar dira."
+
+# AI Translated
+msgid "Install Bambu Network plug-in"
+msgstr "Instalatu Bambu sareko plugina"
+
msgid "[Action Required] "
msgstr "[Ekintza behar da] "
@@ -12463,9 +13385,6 @@ msgstr "Erabilgarri Prestatu fitxako 3D ikuspegiak fokua duen bitartean."
msgid "Select a part"
msgstr "Hautatu pieza bat"
-msgid "Select multiple objects"
-msgstr "Hautatu objektu bat baino gehiago"
-
msgid "Select objects by rectangle"
msgstr "Hautatu objektuak laukizuzen bidez"
@@ -12792,26 +13711,20 @@ msgstr "Firmwarearen bertsioa ez da egokia. Inprimatu aurretik konpondu eta egun
msgid "Extension Board"
msgstr "Hedapen-plaka"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Banatu %1% piezatan"
-
msgid "Repair finished"
msgstr "Konponketa amaitu da"
-msgid "Repair failed"
-msgstr "Konponketak huts egin du"
-
-msgid "Repair canceled"
-msgstr "Konponketa bertan behera utzi da"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "%1% fitxategia %2% helmugara kopiatzeak huts egin du: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Hornitzaileen profil berriak deskargatzen: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Hornitzailearen profil berria deskargatzen: %1%..."
+msgstr[1] "Hornitzaileen profil berriak deskargatzen: %1%..."
# AI Translated
#, boost-format
@@ -12819,8 +13732,12 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Konfigurazio-paketea: %1% %2% bertsiora eguneratu da"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Huts egin du hornitzaileen profilak deskargatzeak: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Huts egin du hornitzailearen profila deskargatzeak: %1%"
+msgstr[1] "Huts egin du hornitzaileen profilak deskargatzeak: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Egiaztatu gorde gabeko aldaketarik dagoen konfigurazioa eguneratu aurretik."
@@ -12828,6 +13745,10 @@ msgstr "Egiaztatu gorde gabeko aldaketarik dagoen konfigurazioa eguneratu aurret
msgid "Open G-code file:"
msgstr "Ireki G-code fitxategia:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Purgatze-dorrearen sorrerak huts egin du, ziurrenik lehen geruza hutsik dagoelako."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Objektu batek lehen geruza hutsa du eta ezin da inprimatu. Ebaki beheko zatia edo gaitu euskarriak."
@@ -12848,9 +13769,61 @@ msgstr "Prozesua aldatzeko estrusio-funtzioaren G-codea"
msgid "Filament change extrusion role G-code"
msgstr "Filamentua aldatzeko estrusio-funtzioaren G-codea"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"G-codea esportatzeak huts egin du: %1%\n"
+"Ezin da fitxategia ireki idazteko."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "%1% karpeta ez da existitzen."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"G-codea esportatzeak huts egin du: %1%\n"
+"Diskoa beteta al dago?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Huts egin du irteerako G-code fitxategiaren izena %1% izenetik %2% izenera aldatzeak.\n"
+"Errorea: %3%\n"
+"%1% blokeatuta al dago?"
+
msgid "No object can be printed. It may be too small."
msgstr "Ezin da objekturik inprimatu. Baliteke txikiegia izatea."
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "\"%1%\" IDEX/IQEX moduak ez du erremintarik esleituta hautatutako inprimagailuan. Nagusia (Primary) moduan inprimatuko da horren ordez. Esleitu moduaren erremintak Inprimagailuaren ezarpenetan, edo aukeratu beste modu bat plakaren IDEX/IQEX botoian."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Plaka hau \"%1%\" IDEX/IQEX modura ezarrita dago, baina hautatutako inprimagailuak ez du modu hori definitzen. Nagusia (Primary) moduan inprimatuko da horren ordez. Aukeratu modu bat plakaren IDEX/IQEX botoian, edo leheneratu modua Inprimagailuaren ezarpenetan."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Miniaturen balio baliogabea:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Zure inprimaketa purgatze-eremuetatik oso gertu dago. Ziurtatu ez dagoela talkarik."
@@ -12894,6 +13867,10 @@ msgstr "Taldekatze-errorea: %1% ezin da ezkerreko pitan jarri"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Taldekatze-errorea: %1% ezin da eskuineko pitan jarri"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Ez da baliozko pitarik aurkitu. Egiaztatu pita kopurua."
+
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Taldekatze-errorea eskuzko moduan. Egiaztatu pita kopurua edo taldekatu berriro."
@@ -12912,6 +13889,18 @@ msgstr "perimetro batekin ebakidura anitz daude, bakarra erabili da (%1%)"
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "perimetro bat aldatzaile baten barruan dago osorik; aldatzailea ez zaio aplikatu (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "%1% motako \"%2%\" aldatzaileak (\"%3%\" objektukoak) perimetro oso bat estaltzen du"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "%1% motako \"%2%\" aldatzaileak (\"%3%\" objektukoak, guztira %4%) perimetro oso bat estaltzen du"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -12926,9 +13915,47 @@ msgstr "\"%2%\" objektuaren \"%1%\" aldatzaileak (%3% guztira) ez du eraginik iz
msgid "Seam placement may differ from expected."
msgstr "Josturaren kokapena espero zena ez bezalakoa izan daiteke."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Barruko zubia"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() funtzioak tarte negatiboa sortu du. Estrusio-zabaleraren bat txikiegi ezarri duzu?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() funtzioak fluxu negatiboa sortu du. Estrusio-zabaleraren bat txikiegi ezarri duzu?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Huts egin du %1%-(r)en lerro-zabalera kalkulatzean. Ezin da \"%2%\" balioa lortu."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Flow::with_spacing() funtzioari tarte baliogabea eman zaio; egiaztatu geruza-altuera eta estrusio-zabalera"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Hautatutako 3mf fitxategia %1%-(r)en bertsio berriago batekin gorde da eta ez da bateragarria."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Hautatutako 3MF fitxategiak PrusaSlicer-en bertsio berriago batekin pintatutako FDM euskarriak dituen objektu bat dauka eta ez da bateragarria."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Hautatutako 3MF fitxategiak PrusaSlicer-en bertsio berriago batekin pintatutako jostura duen objektu bat dauka eta ez da bateragarria."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Hautatutako 3MF fitxategiak PrusaSlicer-en bertsio berriago batekin pintatutako material anitzeko objektu bat dauka eta ez da bateragarria."
+
msgid "undefined error"
msgstr "definitu gabeko errorea"
@@ -13022,6 +14049,56 @@ msgstr "baliozkotzeak huts egin du"
msgid "write callback failed"
msgstr "idazketa-callbackak huts egin du"
+# AI Translated
+msgid "unknown error"
+msgstr "errore ezezaguna"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "IDEX/IQEX modu paraleloetako kolore anitzeko inprimaketek filamentu bakoitzak bere estrusore fisiko propioa izatea eskatzen dute. Filamentu aktiboetako bi edo gehiago buru fisiko berera bideratuta daude inprimagailuaren estrusore fisikoen maparen bidez (MMU/AFC kolektore bat), eta atari menpekoak ezin du hori jarraitu."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "IDEX/IQEX modu aktiboak ez du erreminta nagusirik definitzen; beraz, ezin da kolore anitzeko inprimaketa programatu. Ireki inprimagailuaren ezarpenetako IDEX/IQEX moduen editorea eta esleitu Nagusia (Primary) rola erreminta bati."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Modu honetako kolore anitzekoa ez da inprimatze paraleloko egoera bat — erreminta aktibo guztiak atari bakarrean daude, beraz ez dago kopiatu edo islatu beharreko bigarren ataririk. Aldatu plaka Nagusia (Primary) modura atari bakarrean kolore anitzeko inprimaketa egiteko, edo definitu bigarren atari bateko erremintak barne hartzen dituen IDEX/IQEX modu bat."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "IDEX/IQEX modu paraleloetako kolore anitzeko inprimaketek Span erreminta bat behar dute nagusiaren atarian — hori gabe, moduak ez du atari barruko kolore anitzeko bikoterik adierazten. Murriztu inprimaketa filamentu bakarrera, aldatu Nagusia (Primary) modura, edo ireki inprimagailuaren ezarpenetako IDEX/IQEX moduen editorea eta markatu nagusiaren atariko erreminta bat Span gisa."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Span modu honetan, koloreak %1% tresnek soilik inprimatzen dituzte, baina %2%. filamentua ez dago inongo tresnatara bideratuta. Erabili %1% tresnetara bideratutako filamentuak, edo aldatu plaka hau Nagusia (Primary) modura."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Span modu honetan, koloreak %1% tresnek soilik inprimatzen dituzte, baina %2%. filamentua T%3% tresnara bideratuta dago. Erabili %1% tresnetara bideratutako filamentuak, edo aldatu plaka hau Nagusia (Primary) modura."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Hautatutako aurrezarpena ezin da kargatu: %1%\n"
+"\tArrazoia: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Huts egin du aurrezarpen-fitxategia kargatzeak: %1%\n"
+"\tArrazoia: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% bazterketa-eremutik gertuegi dago. Inprimatzean talkak gerta daitezke."
@@ -13038,27 +14115,34 @@ msgstr "%1% altuegia da, eta talkak sortuko dira."
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "Modeloaren eta purgatze-dorrearen kokapen erlatiboak ez ditu betetzen \"Geruza bakandurik ez\" funtzioaren baldintzak. Doitu haien kokapen erlatiboa, jaitsi modeloaren altuera edo desaktibatu \"Geruza bakandurik ez\"."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " baztertze-eremutik gertuegi dago; talkak egon daitezke inprimatzean."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " material-metaketa detektatzeko eremutik gertuegi dago; inprimatzean talkak gerta daitezke."
-
-msgid "Prime Tower"
-msgstr "Purgatze-dorrea"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " besteetatik gertuegi dago, eta talkak sor daitezke.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " bazterketa-eremu batetik gertuegi dago, eta talkak eragingo ditu.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " material-metaketa detektatzeko eremutik gertuegi dago, eta talkak eragingo ditu.\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% material-metaketa detektatzeko eremutik gertuegi dago. Inprimatzean talkak gerta daitezke."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " inprimagarri den eremutik kanpo dago partzialki, eta ezin da inprimatu.\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "Purgatze-dorrea besteetatik gertuegi dago, eta talkak sor daitezke.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "Purgatze-dorrea bazterketa-eremu batetik gertuegi dago, eta talkak eragingo ditu.\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "Purgatze-dorrea material-metaketa detektatzeko eremutik gertuegi dago, eta talkak eragingo ditu.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "Purgatze-dorrea bazterketa-eremu batetik gertuegi dago. Inprimatzean talkak gerta daitezke."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "Purgatze-dorrea material-metaketa detektatzeko eremutik gertuegi dago. Inprimatzean talkak gerta daitezke."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "Purgatze-dorrea partzialki inprimagarria den eremutik kanpo dago, eta ezin da inprimatu.\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "Hautatutako pita-tenperaturak ez dira bateragarriak. Filamentu bakoitzaren pita-tenperaturak gainerako filamentuen gomendatutako pita-tenperatura tartean egon behar du. Bestela, pita buxatu edo inprimagailua kaltetu daiteke."
@@ -13072,6 +14156,58 @@ msgstr "Hala ere inprimatu nahi baduzu, aukera hau gaitu dezakezu: Hobespenak /
msgid "No extrusions under current settings."
msgstr "Uneko ezarpenekin ez dago estrusiorik."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Filamentu nahasiak ez dira onartzen IDEX/IQEX modu paraleloetan. Aldatu plaka hau Nagusia (Primary) modura."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "\"%1%\" IDEX/IQEX moduak T%2% tresnarekin inprimatzen du, baina plaka honetako filamentu bat ere ez dago konfiguratutako tresna batean. Esleitu T%2% tresnan kargatutako filamentu bat, edo aldatu plaka hau Nagusia (Primary) modura."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "\"%1%\" IDEX/IQEX moduak T%2% erremintarekin inprimatzen du, baina plaka honetako filamentuak hemen daude: %3%. Esleitu T%2% erremintan kargatutako filamentu bat, edo aldatu plaka hau Nagusia (Primary) modura."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Baltsa ez da bateragarria zinta-inprimagailuaren moduarekin."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Aire-korronteen babeslea ez da bateragarria zinta-inprimagailuaren moduarekin."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "Itsaspen ertza ez da bateragarria espiral formako loreontziaren moduarekin zinta-inprimagailu batean. Desgaitu horietako bat."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Zinta malkartsuegia da itsaspen ertz baterako; beraz, ez da itsaspen ertzik sortuko."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Itsaspen ertza zinta inklinatuta dagoenean soilik sortzen da. Ezarri zintaren inklinazio-angelu bat, edo kendu itsaspen ertzaren ezarpena."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Zinta-inprimagailuek kanpoaldeko eta barrualdeko itsaspen ertzak soilik onartzen dituzte. Automatikoki, Saguaren belarria eta Margotua motako itsaspen ertzak \"Kanpoaldeko itsaspen ertza soilik\" gisa inprimatzen dira, \"Itsaspen ertzaren zabalera\" erabiliz."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "\"Itsaspen ertza-objektu tartea\" aukerak aurreko itsaspen ertza objektuaren aurreko ertzetik bereizten du, hau da, ainguratu behar duen ertzetik. Ezarri tartea 0 aurreko itsaspen ertzaren luzera erabiltzean."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "\"Aurreko itsaspen ertzaren luzera\" objektu bakoitzaren aurrerantz hedatzen da zintan zehar, eta \"Antolatu\" funtzioak ez du toki hori gordetzen. Utzi tartea objektuen artean."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "\"Aurreko ertza soilik\" itsaspen ertza zinta-inprimagailuei aplikatzen zaie. Inprimagailu honetan kanpoaldeko itsaspen ertz arrunt gisa inprimatzen da."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Gradientedun filamentu nahasi bat erabiltzen ari da, baina 'Kolore nahasiaren azpigeruza' desgaituta dago. Gradientea ez da inprimatuko."
@@ -13082,6 +14218,18 @@ msgstr "Timelapsearen modu leuna ez da onartzen \"objektuka\" sekuentzia gaituta
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "Material-metaketa detektatzea ez da onartzen \"objektuz objektu\" sekuentzia gaituta dagoenean."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "Zintaren purgatze-dorrea ez da sortzen \"Objektuka\" inprimatze-sekuentzian; filamentu-aldaketak ez dira purgatuko."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "Zintaren purgatze-dorrea gaituta dago, baina proiektuak ez du purgatze-dorre objekturik; filamentu-aldaketak ez dira purgatuko. Ireki proiektua aplikazioan dorrea sortzeko."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Proiektuak kudeatutako zintaren purgatze-dorre bat baino gehiago ditu. Kargatu berriro plaka edo desaktibatu eta aktibatu zintaren purgatze-dorrea hura berriro sortzeko."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Z altuera zehatza eta purgatze-dorrea batera gaitzeak xerratze-erroreak sor ditzake."
@@ -13098,10 +14246,6 @@ msgstr "Espiral formako (loreontzi) moduak ez du funtzionatzen objektu batek mat
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "%1% objektua bera eraikitze-bolumenean kabitzen bada ere, gehieneko eraikitze-altuera gainditzen du materialaren uzkurdura-konpentsazioagatik."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "%1% objektuak gehieneko eraikitze-bolumenaren altuera gainditzen du."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "%1% objektua bera eraikitze-bolumenean kabitzen bada ere, azken geruzak gehieneko eraikitze-altuera gainditzen du."
@@ -13109,6 +14253,10 @@ msgstr "%1% objektua bera eraikitze-bolumenean kabitzen bada ere, azken geruzak
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Modeloaren tamaina txikitu edo uneko inprimatze-ezarpenak aldatu eta berriro saiatu nahi izan dezakezu."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "%1% objektuak gehieneko eraikitze-bolumenaren altuera gainditzen du."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Geruza-altuera aldakorra ez da onartzen euskarri organikoekin."
@@ -13264,6 +14412,10 @@ msgstr "Estrusore baten edo gehiagoren Pressure Advance egokigarriaren modeloak
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "Filamentuaren uzkurdura ez da erabiliko, erabilitako filamentuen uzkurdura-balioak ez datozelako bat."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "Inprimaketa hutsik dago. Modeloa ezin da inprimatu uneko inprimatze-ezarpenekin."
+
msgid "Generating skirt & brim"
msgstr "Gona eta itsaspen ertza sortzen"
@@ -13282,6 +14434,17 @@ msgstr "G-codea esportatzen"
msgid "Generating G-code"
msgstr "G-codea sortzen"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Huts egin du aurreko 3MF fitxategiko %1% G-code fitxategia prozesatzeak."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "Zintaren purgatze-dorreak ezin du purgatze-bolumen osoa xurgatu: guztira %1% mm³ ezin izan dira purgatu (geruzarik txarrena: %2% mm³, %3% altueran). Inprimaketan koloreak nahas daitezke. Handitu zintaren purgatze-dorrearen zabalera, edo murriztu purgatze-bolumenak."
+
msgid "Processing of the filename_format template failed."
msgstr "filename_format txantiloia prozesatzeak huts egin du."
@@ -13730,18 +14893,20 @@ msgstr ""
"\n"
"Erabilitako benetako zubi-fluxua balio hau filamentuen fluxu-erlazioarekin eta, ezarrita badago, objektuaren fluxu-erlazioarekin biderkatuta kalkulatzen da."
+# AI Translated
+# Needs human review: po_tool printf heuristic warns (100% or vs %100 edo); false positive, there are no placeholders. Basque writes the percent sign before the number, as elsewhere in this catalog.
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
"Zubiaren lerro-zabalera. % gisa adierazten bada, pitaren diametroaren arabera kalkulatuko da.\n"
-"Zubi-dentsitate handiagoarekin edo zubiaren fluxu-erlazio handiagoarekin erabiltzea gomendatzen da.\n"
+"Zubien dentsitate handiagoarekin edo zubien fluxu-ratio handiagoarekin erabiltzea gomendatzen da.\n"
"\n"
"Gehieneko balioa %100 edo pitaren diametroa da.\n"
-"0 ezartzen bada, lerro-zabalera barruko betegarri solidoaren zabalerarekin bat etorriko da."
+"0 ezartzen bada, lerro-zabalera barruko betegarri solidoaren zabalerarekin bat etorriko da, edo pitaren diametroarekin zubi lodietan."
msgid "Internal bridge flow ratio"
msgstr "Barruko zubien fluxu-ratioa"
@@ -14011,6 +15176,7 @@ msgstr "Gaitu aukera hau irtenguneak inprimatzean abiadura moteltzeko. Irtengune
msgid "Slow down for curled perimeters"
msgstr "Moteldu kiribildutako perimetroetan"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
@@ -14026,7 +15192,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Gaitu aukera hau perimetroak gorantz kizkurtu daitezkeen eremuetan inprimatze-abiadura moteltzeko.\n"
"Adibidez, moteltze gehigarria aplikatuko da Benchy ontziaren aurrealdeko ertz zorrotzetan bezalako irtenguneak inprimatzean, geruzaz geruza metatzen den kizkurtzea murrizteko.\n"
@@ -14038,22 +15204,23 @@ msgstr ""
"Aukera hau gaitzean gomendioak:\n"
"1. Murriztu Pressure Advance leuntze-denbora 0.015 - 0.02 baliora, estrusoreak abiadura-aldaketei azkar erantzun diezaien.\n"
"2. Handitu gutxieneko inprimatze-abiadurak moteltzearen neurria eta segmentu azkar eta motelen arteko aldea mugatzeko.\n"
-"3. Akatsak agertzen badira, gaitu Extrusion Rate Smoothing (ERS) fluxu-trantsizioak gehiago leuntzeko.\n"
+"3. Akatsak agertzen badira, gaitu Estrusio-tasaren leuntzea (ERS) fluxu-trantsizioak gehiago leuntzeko.\n"
"\n"
"Oharra: aukera hau gaituta dagoenean, irtenguneen perimetroak irtengune gisa tratatzen dira; beraz, irtenguneen abiadura aplikatuko da perimetroa zubi baten parte bada ere.\n"
-"Adibidez, perimetroak %100 irtengunean daudenean eta azpitik eusten dien hormarik ez dagoenean, %100eko irtenguneetako abiadura aplikatuko da."
+"Adibidez, perimetroak %100 irtengunean daudenean eta azpitik eusten dien hormarik ez dagoenean, %75eko irtenguneetako abiadura aplikatuko da, zubi-abiadurak mugatuta."
msgid "mm/s or %"
msgstr "mm/s edo %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Kanpotik ikusgai dauden zubi-estrusioen abiadura.\n"
"\n"
-"Gainera, perimetro kiribilduetarako moteltzea desgaituta badago edo irtengune-modu klasikoa gaituta badago, %13 baino gutxiagoz eutsita dauden irtengune-hormen inprimatze-abiadura izango da, zubi baten edo irtengune baten parte izan."
+"Gainera, \"Moteldu kiribildutako perimetroetan\" desgaituta badago, %13 baino gutxiagoz eutsita dauden irtengune-hormen inprimatze-abiadura izango da, zubi baten zein irtengune baten parte izan."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Barru-zubien abiadura. Balioa ehuneko gisa adierazten bada, Zubien abiadura-ren arabera kalkulatuko da. Lehenetsitako balioa % 150ekoa da."
@@ -14061,12 +15228,57 @@ msgstr "Barru-zubien abiadura. Balioa ehuneko gisa adierazten bada, Zubien abiad
msgid "This is the distance from the model to the outermost brim line."
msgstr "Hau da modelotik itsaspen ertzaren kanporen lerrora dagoen distantzia."
+# AI Translated
+msgid "Leading brim length"
+msgstr "Aurreko itsaspen ertzaren luzera"
+
+# AI Translated
+# Needs human review: Quotes the existing 'Brim flow ratio' label (Itsaspen ertzaren fluxu-erlazioa), which uses 'fluxu-erlazioa' instead of the glossary 'Fluxu-ratioa'; update both if the label is aligned with the glossary.
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Zinta-inprimagailuetarako soilik. Itsaspen ertza objektuaren AURRERANTZ luzatzen du zintan zehar, haren kontaktu-eremuaren aldapa beherantz begira dagoen ertz bakoitzean - bai objektuak zintarekin duen lehen kontaktuan, bai geroago zintaren gainean jartzen den edozein uhartetan. Mantal hau zintaren gainean ezartzen da objektua iritsi aurretik; horrela, aurreko ertzak jada itsatsita dagoen zerbait du heltzeko.\n"
+"\n"
+"Zintaren gainazalean neurtzen da, eta Itsaspen ertzaren zabaleraren gainean gehitzen da: itsaspen ertza objektuaren aurrean Itsaspen ertza-objektu tartea + Aurreko itsaspen ertzaren luzera + Itsaspen ertzaren zabalera iristen da. Ezarri Itsaspen ertza-objektu tartea 0 balioan; bestela, mantalak ez du ukituko ainguratu behar duen objektua.\n"
+"\n"
+"Zinta inklinatu batean, geruza bakoitzak itsaspen ertzaren zerrenda bat ezartzen du; beraz, sortzen den itsaspen ertzaren xaflaren lodiera fluxuak zehazten du, ez geruza-altuerak. Erabili Itsaspen ertzaren fluxu-erlazioa hura doitzeko.\n"
+"\n"
+"Ezarri 0 desgaitzeko."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Itsaspen ertzaren zabalera gehigarria"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Zinta-inprimagailuetarako soilik. Itsaspen ertza ALBOETARA zabaltzen du, zintaren zeharka, objektuaren aurrerago edo atzerago luzatu gabe. Erabili pieza batek bere luzeran Itsaspen ertzaren zabalerak bakarrik ematen duena baino heldulekua gehiago behar duenean.\n"
+"\n"
+"Zintaren gainazalean neurtzen da, eta Itsaspen ertzaren zabaleraren gainean gehitzen da: itsaspen ertza objektuaren alde bakoitzera Itsaspen ertza-objektu tartea + Itsaspen ertzaren zabalera + Itsaspen ertzaren zabalera gehigarria iristen da. Itsaspen ertza objektuaren aurrerantz luzatzeko, erabili Aurreko itsaspen ertzaren luzera.\n"
+"\n"
+"Ezarri 0 desgaitzeko."
+
msgid "Brim type"
msgstr "Itsaspen ertz mota"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Honek modeloen kanpoaldean eta/edo barrualdean sortzen den itsaspen ertzaren sorrera kontrolatzen du. 'Auto' aukerak esan nahi du itsaspen ertzaren zabalera automatikoki aztertu eta kalkulatzen dela."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Aurreko ertza soilik"
+
msgid "Brim-object gap"
msgstr "Itsaspen ertza-objektu tartea"
@@ -14357,6 +15569,9 @@ msgstr ""
"2. Iragazketa mugatua: barruko zubiak sortzen ditu oso inklinatutako gainazaletan, beharrezkoak ez diren zubiak saihestuz.\n"
"3. Iragazketarik ez: barruko irtengune posible guztietan zubiak sortzen ditu. Oso inklinatutako goiko gainazaletarako erabilgarria da, baina gehienetan beharrezkoak ez diren zubi gehiegi sortzen ditu."
+msgid "Filter"
+msgstr "Iragazi"
+
msgid "Limited filtering"
msgstr "Iragazketa mugatua"
@@ -14372,7 +15587,8 @@ msgstr "Hau da euskarririk behar ez duten zubien gehieneko luzera. Ezarri 0 zubi
msgid "End G-code"
msgstr "End G-code"
-msgid "Add end G-Code when finishing the entire print."
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
msgstr "Gehitu amaierako G-codea inprimaketa osoa amaitzean."
msgid "Between Object G-code"
@@ -14559,8 +15775,9 @@ msgstr "Hau piezen kanpoko hormetarako inprimatze-abiadura da. Oro har, barruko
msgid "Small perimeters"
msgstr "Perimetro txikiak"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Ezarpen bereizi honek erradioa <= small_perimeter_threshold duten perimetroen abiaduran eragiten du (normalean zuloak). Ehuneko gisa adierazten bada (adibidez: 80%), goiko kanpoko hormaren abiaduraren arabera kalkulatuko da. Jarri zero automatikoa izateko."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Ezarpen bereizi honek erradioa <= small_perimeter_threshold duten perimetroen abiaduran eragiten du (normalean zuloak). Ehuneko gisa adierazten bada (adibidez: %80), goiko kanpoko hormaren abiaduraren arabera kalkulatuko da."
msgid "Small perimeters threshold"
msgstr "Perimetro txikien atalasea"
@@ -14571,8 +15788,9 @@ msgstr "Perimetro txikien luzeraren atalasea ezartzen du. Atalase lehenetsia 0 m
msgid "Small support perimeters"
msgstr "Euskarri-perimetro txikiak"
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "\"Perimetro txikiak\" ezarpenaren berdina, baina euskarrietarako. Ezarpen honek `small_support_perimeter_threshold` baino txikiagoak edo berdinak diren eremuen euskarri-abiadurari eragingo dio. Ehuneko gisa adierazten bada (adibidez, %80), goiko euskarri- edo euskarri-interfaze abiaduraren arabera kalkulatuko da. Ezarri zero automatikorako."
+# AI Translated
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "\"Perimetro txikiak\" ezarpenaren berdina, baina euskarrietarako. Ezarpen honek `small_support_perimeter_threshold` baino txikiagoak edo berdinak diren eremuen euskarri-abiadurari eragingo dio. Ehuneko gisa adierazten bada (adibidez, %80), goiko euskarri- edo euskarri-interfaze abiaduraren arabera kalkulatuko da."
msgid "Small support perimeters threshold"
msgstr "Euskarri-perimetro txikien atalasea"
@@ -14583,22 +15801,23 @@ msgstr "Honek euskarri-perimetro txikien luzera-atalasea ezartzen du. Lehenetsit
msgid "Walls printing order"
msgstr "Hormen inprimatze-ordena"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
"Barruko eta kanpoko hormen inprimatze-sekuentzia.\n"
"\n"
-"Erabili Barru/Kanpo irtengune onenak lortzeko. Irtenguneetan dauden hormak ondoko perimetro bati atxiki daitezke inprimatzean. Hala ere, gainazalaren kalitatea apur bat murriztu daiteke, kanpoko perimetroa barrukoaren kontra zanpatzen delako.\n"
+"Erabili Barrukoa/Kanpokoa irtengune onenak lortzeko. Irtenguneetan dauden hormak ondoko perimetro bati atxiki daitezke inprimatzean. Hala ere, gainazalaren kalitatea apur bat murriztu daiteke, kanpoko perimetroa barrukoaren kontra zanpatzen delako.\n"
"\n"
-"Erabili Barru/Kanpo/Barru kanpoko gainazalaren akabera eta neurri-zehaztasun onenak lortzeko, kanpoko horma barruko perimetro batek oztopatu gabe inprimatzen baita. Irtenguneen portaera, ordea, okerragoa izango da. Gutxienez 3 horma behar dira: lehenik hirugarrenetik aurrerako barruko hormak, gero kanpokoa eta azkenik lehenengo barrukoa. Kasu gehienetan Kanpo/Barru baino gomendagarriagoa da.\n"
+"Erabili Barrukoa/Kanpokoa/Barrukoa kanpoko gainazalaren akabera eta neurri-zehaztasun onenak lortzeko, kanpoko horma barruko perimetro batek oztopatu gabe inprimatzen baita. Irtenguneen portaera, ordea, okerragoa izango da, kanpoko horma inprimatzeko barruko perimetrorik ez dagoelako. Aukera honek gutxienez 3 horma behar ditu eraginkorra izateko: lehenik hirugarren perimetrotik aurrerako barruko hormak inprimatzen ditu, gero kanpoko perimetroa eta azkenik lehen barruko perimetroa. Kasu gehienetan Kanpokoa/Barrukoa aukera baino gomendagarriagoa da.\n"
"\n"
-"Erabili Kanpo/Barru Barru/Kanpo/Barru aukeraren kanpoko hormaren kalitate eta neurri-zehaztasun bera lortzeko. Hala ere, Z josturak ez dira hain koherenteak izango, geruza berriaren lehen estrusioa gainazal ikusgai batean hasten delako."
+"Erabili Kanpokoa/Barrukoa Barrukoa/Kanpokoa/Barrukoa aukeraren kanpoko hormaren kalitate eta neurri-zehaztasun bera lortzeko. Hala ere, Z josturak ez dira hain koherenteak izango, geruza berriaren lehen estrusioa gainazal ikusgai batean hasten delako."
msgid "Inner/Outer"
msgstr "Barrukoa/Kanpokoa"
@@ -15224,9 +16443,6 @@ msgstr "Filamentuaren prezioa, estatistiketarako soilik."
msgid "money/kg"
msgstr "dirua/kg"
-msgid "Vendor"
-msgstr "Hornitzailea"
-
msgid "Vendor of filament. For show only."
msgstr "Filamentuaren hornitzailea. Bistaratzeko soilik."
@@ -15298,6 +16514,92 @@ msgstr "Lerro anitzeko betegarria"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Erabili hainbat lerro betegarri-patroirako, betegarri-patroiak onartzen badu."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Dentsitate egokigarria (esperimentala)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Giroidea eta TPMS betegarriak mailakatzen ditu objektuaren barruan: haien gelaxkak objektuaren gainazaletik erdigunerantz handitzen dira. Dentsitate baxuko betegarriaren dentsitatea gainazalean erabiltzen da, eta barruko dentsitatea erdigunean.\n"
+"Distantzia-deformazioak, Nahasketa leunak eta Oskol mailakatuek gainazal hurbilenerainoko distantziari jarraitzen diote, goiko eta beheko gainazalak barne, eta barruko dentsitatea hartatik urrunen dagoen puntuan dago:\n"
+" - Distantzia-deformazioa: patroi jarraitu bakarra, luzatua eta okertua distantzia norabideen artean aldatzen den lekuetan, plaka itxurako objektuetan eta pieza luzeetan bezala.\n"
+" - Nahasketa leuna: ondoko dentsitateen patroiak elkarren artean nahastuta, elkartzen diren lekuetan begizta txikiekin.\n"
+" - Oskol mailakatuak: patroi arruntaren oskolak, gutxi gorabehera 1,5 aldiz bereizitako dentsitateekin, haien lerroak oskolen mugetan zehar lotuta.\n"
+" - Lobuluak: objektuaren 3D forma jarraitzen du, goiko eta beheko aldeak barne. Lobulu bakoitza, gainerakoari lepo estuago baten bidez lotutako zati bat, bere erdigunerantz mailakatzen da.\n"
+" - Z, Y edo X normala: objektuak ardatz horrekiko normalak diren sekzioei jarraitzen die; beraz, dentsitatea ez da ardatz horretan zehar aldatzen."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Distantzia-deformazioa"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Nahasketa leuna"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Oskol mailakatuak"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Lobuluak"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Z normala"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Y normala"
+
+# AI Translated
+msgid "Normal X"
+msgstr "X normala"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Barruko dentsitatea"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Betegarri egokigarriaren dentsitatea objektuaren erdigunean."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Gradiente egokigarria"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Dentsitatea nola aldatzen den objektuaren gainazaletik erdiguneraino.\n"
+"Lineala: dentsitatea erritmo konstantean aldatzen da.\n"
+"Koadratikoa: dentsitatea dentsitate baxuko betegarriaren dentsitatetik gertu mantentzen da gainazaletik gertu, eta azkarrago aldatzen da erdigunerantz.\n"
+"Esponentziala: dentsitatea azkar aldatzen da gainazalaren azpian, eta egonkortu egiten da erdigunerantz."
+
+# AI Translated
+msgid "Linear"
+msgstr "Lineala"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Koadratikoa"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Esponentziala"
+
msgid "Z-buckling bias optimization (experimental)"
msgstr "Z ardatzeko okerdura-biasaren optimizazioa (esperimentala)"
@@ -15450,14 +16752,16 @@ msgstr "Lehen geruzaren altuera"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Lehen geruzaren altuera. Lehen geruza lodiagoak inprimatze-plakarekiko atxikimendua hobetu dezake."
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Hau da lehen geruzaren abiadura, betegarri solidoko atalak izan ezik."
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Hau da lehen geruzako hormen eta itsaspen ertzaren abiadura."
msgid "First layer infill"
msgstr "Lehen geruzaren betegarria"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Hau da lehen geruzako betegarri solidoaren atalen abiadura."
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Hau da lehen geruzaren abiadura, hormak eta itsaspen ertza izan ezik; adibidez, betegarria, hutsuneak betetzea eta euskarria."
msgid "First layer travel speed"
msgstr "Lehen geruzako mugimendu-abiadura"
@@ -15915,6 +17219,10 @@ msgstr "G-code mota"
msgid "What kind of G-code the printer is compatible with."
msgstr "Inprimagailua zer G-code motarekin den bateragarria."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (zaharkitua)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16149,16 +17457,18 @@ msgstr "Barruko dentsitate baxuko betegarriaren lerro-zabalera. %-tan adierazten
msgid "Infill/wall overlap"
msgstr "Betegarriaren eta hormaren gainjartzea"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Betegarri-eremua apur bat handitzen du hormekin gainjartzeko eta lotura hobetzeko. Ehunekoa dentsitate baxuko betegarriaren lerro-zabalerarekiko da. Ezarri gutxi gorabehera %10-15, gainestrusioa eta goiko gainazal zakarrak sor ditzakeen material-pilaketa gutxitzeko."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Betegarri-eremua apur bat handitzen du hormekin gainjartzeko eta lotura hobetzeko. Ehunekoa barruko hormaren lerro-zabalerarekiko da. Ezarri gutxi gorabehera %10-15, gainestrusioa eta goiko gainazal zakarrak sor ditzakeen material-pilaketa gutxitzeko."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Goiko/Beheko betegarri solidoaren eta hormaren gainjartzea"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "Goiko betegarri solidoaren eremua pixka bat handitzen da hormarekin gainjartzeko, lotura hobetzeko eta goiko betegarria hormekin elkartzen den tokian zulotxoen itxura minimizatzeko. %25-30 inguruko balioa abiapuntu ona da."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "Goiko betegarri solidoaren eremua pixka bat handitzen da hormarekin gainjartzeko, lotura hobetzeko eta goiko betegarria hormekin elkartzen den tokian zulotxoen itxura minimizatzeko. %25-30 inguruko balioa abiapuntu ona da, zulotxoen itxura minimizatuz. Ehunekoa barruko hormaren lerro-zabalerarekiko da."
msgid "This is the speed for internal sparse infill."
msgstr "Hau da barruko dentsitate baxuko betegarriaren abiadura."
@@ -16184,8 +17494,9 @@ msgstr "Segmentatutako eremu baten gehieneko zabalera. 0 balioak ezaugarria desg
msgid "Interlocking depth of a segmented region"
msgstr "Eskualde segmentatu baten elkarblokeatze-sakonera"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Eskualde segmentatu baten elkarblokeatze-sakonera. Ez da kontuan hartuko \"mmu_segmented_region_max_width\" zero bada edo \"mmu_segmented_region_interlocking_depth\" \"mmu_segmented_region_max_width\" baino handiagoa bada. Zero balioak ezaugarri hau desgaitzen du."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Eskualde segmentatu baten elkarblokeatze-sakonera. Bi geruzatik behin, eskualde segmentatua sakonera honetara mugatzen da. Ez da kontuan hartuko \"interlocking_beam\" gaituta badago. Zero balioak ezaugarri hau desgaitzen du."
msgid "Use beam interlocking"
msgstr "Erabili habeen elkarblokeatzea"
@@ -16288,13 +17599,14 @@ msgstr "Gaitu Z geruzen sestratzea (Z geruzen antialiasing-a ere deitua)."
msgid "Minimize wall height angle"
msgstr "Murriztu hormaren altuera-angelua"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Murriztu goiko gainazaleko perimetroen altuera modeloaren ertzaren altuerarekin bat etor dadin.\n"
-"Angelu hau baino malda txikiagoa duten perimetroei eragiten die (graduetan).\n"
+"Angelu hau baino malda handiagoa duten perimetroei eragiten die (graduetan).\n"
"35 balio arrazoizkoa da. Ezarri 0 desgaitzeko."
msgid "Don't alternate fill direction"
@@ -16369,17 +17681,21 @@ msgstr "Z gehieneko abiadura"
msgid "Maximum speed E"
msgstr "E gehieneko abiadura"
-msgid "Maximum X speed"
-msgstr "X gehieneko abiadura"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "X ardatzaren gehieneko abiadura"
-msgid "Maximum Y speed"
-msgstr "Y gehieneko abiadura"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Y ardatzaren gehieneko abiadura"
-msgid "Maximum Z speed"
-msgstr "Z gehieneko abiadura"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Z ardatzaren gehieneko abiadura"
-msgid "Maximum E speed"
-msgstr "E gehieneko abiadura"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "E ardatzaren gehieneko abiadura"
msgid "Maximum acceleration X"
msgstr "X gehieneko azelerazioa"
@@ -16886,8 +18202,9 @@ msgstr "Erabilitako pluginak"
msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capability."
msgstr "Aurrezarpen honek erreferentziatutako plugin-gaitasunak; izena;uuid;gaitasuna formatuan gordeta."
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
-msgstr "Xerratze-prozesuko urrats bakoitzean deitzen diren Python pluginak, tarteko datuak irakurri eta aldatzeko; horien artean, G-codearen azken post-prozesatze fasea ere sartzen da. Ikerketa- edo esperimentazio-mailakoak."
+# AI Translated
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgstr "Xerratze-prozesuko urrats bakoitzean deitzen diren Python pluginak, tarteko xerratze-datuak irakurri eta aldatzeko; horien artean, G-codearen azken post-prozesatze-urratsa ere sartzen da. Ikerketa- edo esperimentazio-mailakoak."
msgid "Printer type"
msgstr "Inprimagailu mota"
@@ -16943,14 +18260,17 @@ msgstr "Mugimendu-distantziaren atalasea"
msgid "Only trigger retraction when the travel distance is longer than this threshold."
msgstr "Aktibatu atzera-egitea mugimendu-distantzia atalase hau baino handiagoa denean bakarrik."
+# AI Translated
msgid "Retract amount before wipe"
-msgstr "Garbitu aurreko atzera-egite kantitatea"
+msgstr "Garbiketa aurreko atzera-egite kantitatea"
+# AI Translated
msgid "This is the length of fast retraction before a wipe, relative to retraction length."
-msgstr "Hau da garbitu aurreko atzera-egite azkarraren luzera, atzera-egitearen luzerarekiko."
+msgstr "Hau da garbiketa aurreko atzera-egite azkarraren luzera, atzera-egitearen luzerarekiko."
+# AI Translated
msgid "Retract amount after wipe"
-msgstr "Garbitu ondorengo atzera-egite kantitatea"
+msgstr "Garbiketa ondorengo atzera-egite kantitatea"
#, no-c-format, no-boost-format
msgid ""
@@ -17247,11 +18567,13 @@ msgstr "Barruko hormetarako alaka juntura"
msgid "Use scarf joint for inner walls as well."
msgstr "Erabili alaka juntura barruko hormetan ere."
-msgid "Role base wipe speed"
-msgstr "Eginkizunaren araberako purgatze-abiadura"
+# AI Translated
+msgid "Role based wipe speed"
+msgstr "Rolaren araberako garbiketa-abiadura"
+# AI Translated
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
-msgstr "Purgatze-abiadura uneko estrusio-eginkizunaren abiadurak zehazten du. Adibidez, purgatze-ekintza bat kanpoko hormaren estrusioaren ondoren berehala egiten bada, kanpoko hormaren estrusio-abiadura erabiliko da purgatze-ekintzarako."
+msgstr "Garbiketa-abiadura uneko estrusio-rolaren abiadurak zehazten du. Adibidez, garbiketa-ekintza bat kanpoko hormaren estrusioaren ondoren berehala egiten bada, kanpoko hormaren estrusio-abiadura erabiliko da garbiketa-ekintzarako."
msgid "Wipe on loops"
msgstr "Garbitu begiztetan"
@@ -17261,7 +18583,7 @@ msgstr "Begizta itxiko estrusio batean josturaren ikusgarritasuna minimizatzeko,
# AI Translated
msgid "Wipe inward"
-msgstr "Purgatu barrurantz"
+msgstr "Garbitu barrurantz"
# AI Translated
msgid ""
@@ -17271,15 +18593,15 @@ msgid ""
"\n"
"Uses the regular wipe if no adjacent inner wall is already printed (single-wall areas or Outer/Inner wall order), or if no supported inward path can be found, for example at tight corners or seam gaps."
msgstr ""
-"Kanpoko hormei soilik aplikatzen zaie, zuloen mugak barne. Purgatzean pita beroa jada inprimatutako barruko hormetarantz mugitzen du, inprimatu berri den plastikoa berriro berotzea eta jostura-markak murrizteko.\n"
+"Kanpoko hormei soilik aplikatzen zaie, zuloen mugak barne. Garbitzean pita beroa jada inprimatutako barruko hormetarantz mugitzen du, inprimatu berri den plastikoa berriro berotzea eta jostura-markak murrizteko.\n"
"\n"
-"Bereziki erabilgarria da 0,1 mm-tik beherako geruza-altueretan, non purgatze-markak nabarmenago ikusten diren.\n"
+"Bereziki erabilgarria da 0,1 mm-tik beherako geruza-altueretan, non garbiketa-markak nabarmenago ikusten diren.\n"
"\n"
-"Purgatze arrunta erabiltzen du ondoko barruko hormarik jada inprimatuta ez badago (horma bakarreko eremuak edo Kanpokoa/Barrukoa hormen ordena) edo euskarria duen barrurako biderik aurkitzen ez bada, adibidez izkina estuetan edo josturako hutsuneetan."
+"Garbiketa arrunta erabiltzen du ondoko barruko hormarik jada inprimatuta ez badago (horma bakarreko eremuak edo Kanpokoa/Barrukoa hormen ordena) edo euskarria duen barrurako biderik aurkitzen ez bada, adibidez izkina estuetan edo josturako hutsuneetan."
# AI Translated
msgid "Wipe inward distance"
-msgstr "Barrurako purgatze-distantzia"
+msgstr "Barrurako garbiketa-distantzia"
# AI Translated
#, no-c-format, no-boost-format
@@ -17288,9 +18610,9 @@ msgid ""
"\n"
"For example, 50% shifts the path by half of the outer-wall width. The effective offset is limited by both the actual outer-wall width and the available spacing to the adjacent wall, so values above 100% or an equivalent absolute distance have no additional effect. Set to 0 to disable the offset."
msgstr ""
-"Purgatze-bidea kanpoko perimetrotik zenbat desplazatzen den, milimetrotan edo kanpoko hormaren benetako estrusio-zabaleraren ehuneko gisa adierazita.\n"
+"Garbiketa-ibilbidea kanpoko perimetrotik zenbat desplazatzen den, milimetrotan edo kanpoko hormaren benetako estrusio-zabaleraren ehuneko gisa adierazita.\n"
"\n"
-"Adibidez, 50% bideak kanpoko hormaren zabaleraren erdia desplazatzen du. Desplazamendu eraginkorra mugatuta dago bai kanpoko hormaren benetako zabaleragatik bai ondoko hormarainoko tarte erabilgarriagatik; beraz, 100% baino handiagoko balioek edo baliokidea den distantzia absolutu batek ez dute eragin gehigarririk. Ezarri 0 desplazamendua desgaitzeko."
+"Adibidez, 50% ibilbideak kanpoko hormaren zabaleraren erdia desplazatzen du. Desplazamendu eraginkorra mugatuta dago bai kanpoko hormaren benetako zabaleragatik bai ondoko hormarainoko tarte erabilgarriagatik; beraz, 100% baino handiagoko balioek edo baliokidea den distantzia absolutu batek ez dute eragin gehigarririk. Ezarri 0 desplazamendua desgaitzeko."
msgid "Wipe before external loop"
msgstr "Garbitu kanpoko begizta baino lehen"
@@ -17304,11 +18626,13 @@ msgstr ""
"\n"
"Hau erabilgarria da Kanpoko/Barruko edo Barruko/Kanpoko/Barruko horma inprimatze ordenarekin inprimatzean; izan ere, modu horietan litekeena da kanpoko perimetro bat atzera-egitea lehengoratzeko mugimendu baten ondoren berehala inprimatzea."
+# AI Translated
msgid "Wipe speed"
-msgstr "Purgatze-abiadura"
+msgstr "Garbiketa-abiadura"
+# AI Translated
msgid "The wipe speed is determined by the speed setting specified in this configuration. If the value is expressed as a percentage (e.g. 80%), it will be calculated based on the travel speed setting above. The default value for this parameter is 80%."
-msgstr "Purgatze-abiadura konfigurazio honetan zehaztutako abiadura-ezarpenak zehazten du. Balioa ehuneko gisa adierazten bada (adibidez, %80), goiko mugimendu-abiaduraren ezarpenaren arabera kalkulatuko da. Parametro honen balio lehenetsia %80 da."
+msgstr "Garbiketa-abiadura konfigurazio honetan zehaztutako abiadura-ezarpenak zehazten du. Balioa ehuneko gisa adierazten bada (adibidez, %80), goiko mugimendu-abiaduraren ezarpenaren arabera kalkulatuko da. Parametro honen balio lehenetsia %80 da."
msgid "Skirt distance"
msgstr "Gonaren distantzia"
@@ -17337,16 +18661,15 @@ msgstr "Gonaren/haize-babesaren begiztak horma bakarrera mugatzen ditu lehen ger
msgid "Draft shield"
msgstr "Aire-korronteen babeslea"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
-"Aire-korronteen babeslea erabilgarria da ABS edo ASA inprimaketa haize-korronteengatik deformatzetik eta inprimatze-ohetik askatzetik babesteko. Normalean egitura irekiko inprimagailuetan bakarrik behar da, hauda, itxiturarik gabe.\n"
+"Aire-korronteen babeslea erabilgarria da ABS edo ASA inprimaketa haize-korronteengatik deformatzetik eta inprimatze-ohetik askatzetik babesteko. Normalean egitura irekiko inprimagailuetan bakarrik behar da, hau da, itxiturarik gabe.\n"
"\n"
-"Gaituta = gona inprimatutako objekturik altuena bezain altua da. Bestela,'Gonaren altuera' erabiltzen da.\n"
-"Oharra: aire-korronteen babeslea aktibo dagoenean, gona objektutik gonaren distantziara inprimatuko da. Beraz, itsaspen ertzak aktibo badaude, haiekin gurutza daiteke. Hori saihesteko, handitu gonaren distantziaren balioa.\n"
+"Gaituta = gona inprimatutako objekturik altuena bezain altua da. Bestela, 'Gonaren altuera' erabiltzen da."
msgid "Enabled"
msgstr "Gaituta"
@@ -17508,6 +18831,130 @@ msgstr "Estrusore bakarreko material anitzekoa"
msgid "Use single nozzle to print multi filament."
msgstr "Erabili pita bakarra hainbat filamentu inprimatzeko."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "IDEX/IQEX inprimagailua"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Gaitu inprimatze paraleloa orga independente anitz dituzten inprimagailuetarako (IDEX, IQEX eta antzekoak)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Firmwareak kudeatutako eremuak"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Gaituta dagoenean, xerratzaileak eremu nagusiaren edukia ohearen jatorrian (0,0) zentratuta duen G-code sortzen du. Inprimagailuaren firmwareak kokatzen ditu kopiak/ispiluak eremu fisiko bakoitzaren posizioan. Gaitu soilik firmwareak kopia/ispilu moduan bere eremu-desplazamenduak aplikatzen dituen inprimagailuetan (adib. RepRapFirmware-ren IDEX bikoizte-modua). Ez du eraginik Nagusia (Primary) moduan."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Atari kopurua"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Y ardatzeko atari independenteen kopurua. 1 IDEX/errail bakarreko IQEX-erako. 2 atari bikoitzeko sistemetarako (ohea errenkadatan banatzen du)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Erreminta kopurua atari bakoitzeko"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Atari bakoitzeko inprimatze-buru independenteen kopurua X ardatzean. 2 IDEX motakoetarako."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "0 erremintaren posizioa"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "T0 erreminta (0 indizea) ohearen zein posizio fisikotan dagoen. Erreminta-indizeak ohearen eremuekin nola lotzen diren zehazten du. Atari bakarreko konfigurazioetan (IDEX) ezkerra/eskuina soilik da garrantzitsua; atari bikoitzeko konfigurazioetan (IQEX) lau izkinak hauta daitezke (aurrea = Y txikiagoa / operadoretik gertu, atzea = Y handiagoa / makinaren atzealdea)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Pitaren X tartea"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Pitatik orgaren talka-aldeko ertzeraino dagoen distantzia (mm) X ardatzean. X muga bakoitzeko talka-bazterketako bandaren zabalera kalkulatzeko erabiltzen da."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Pitaren Y tartea"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Pitatik orgaren talka-aldeko ertzeraino dagoen distantzia (mm) Y ardatzean. Y muga bakoitzeko talka-bazterketako bandaren zabalera kalkulatzeko erabiltzen da."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Segurtasun-marjina"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Eremu nagusiaren barruan orga-muga bakoitzean marrazten den tarte-banda aholku-emailea eta ez-blokeatzailea (mm). Banda horren barruan jarritako piezak xerratu egingo dira; eremuaren ertzetik gertu tarte gehigarria uzteko oroigarri bisuala da."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Bistaratze-gaia"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Ohearen IDEX/IQEX eremuak bistaratzeko kolore-gaia. Aukeratu daltonikoentzako egokia den gai bat behar izanez gero."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranopia / Protanopia (gorria-berdea)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopia (urdina-horia)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Kontraste handia"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "IDEX/IQEX inprimatze-modua"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "IDEX/IQEX inprimatze-modu paralelo aktiboaren izena, edo \"primary\" orga bakarreko inprimaketarako. IDEX/IQEX inprimagailua gaituta egon behar du inprimagailuaren aurrezarpenean (Inprimagailua → Material anitzekoa → IDEX/IQEX konfigurazioa)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "IDEX/IQEX buruen filamentu-mapa"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Plaka bakoitzeko gainidazketa, buru fisikoak filamentu-zirrikituekin lotzen dituena (1etik hasita). Hutsik badago, buru bakoitzak inprimagailuaren estrusore fisikoen mapak berari bideratzen dion lehen filamentua erabiltzen du."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "IDEX/IQEX moduen izenak"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Erabiltzaileak definitutako IDEX/IQEX inprimatze-modu paralelo bakoitzaren izen bistaratuak."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "IDEX/IQEX moduen erreminta aktiboak"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Modu bakoitzeko erreminten rol-esleipenak. Formatua: \"idx:P,idx:C,idx:M\", non P=Primary (Nagusia), C=Copy (Kopia), M=Mirror (Ispilua) (adib. \"0:P,1:C,2:M,3:M\"). Inprimagailuaren aurrezarpeneko IDEX/IQEX moduen editoreak kudeatzen ditu."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "IDEX/IQEX moduen G-codeak"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "Modu bakoitzerako inprimaketaren hasieran txertatu beharreko G-code edo makro-deia."
+
msgid "Manual Filament Change"
msgstr "Eskuzko filamentu-aldaketa"
@@ -17888,6 +19335,167 @@ msgstr "Atalase-gainjartzea"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Atalase-angelua zero bada, euskarria sortuko da gainjartzea atalasearen azpitik duten irtenguneetarako. Balio hau zenbat eta txikiagoa izan, orduan eta irtengune malkartsuagoa inprima daiteke euskarririk gabe."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Ohearen X inklinazioa"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Ohearen inklinazio-angelua X ardatzean. Balio positiboak ohea inklinatzen du +X aldea altuagoa izan dadin; grabitatea -X aldera desplazatzen da eta irtenguneak handitzen dira +X aldean. Balio negatiboak -X aldea altxatzen du. Ezarri 0 X ardatzean inklinaziorik ez izateko. Zinta-inprimagailuaren moduan, zintaren angeluarekin automatikoki sinkronizatzen da."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Ohearen Y inklinazioa"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Ohearen inklinazio-angelua Y ardatzean. Balio positiboak ohea inklinatzen du +Y aldea altuagoa izan dadin; grabitatea -Y aldera desplazatzen da eta irtenguneak handitzen dira +Y aldean. Balio negatiboak -Y aldea altxatzen du. Ezarri 0 Y ardatzean inklinaziorik ez izateko."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Gaitu zinta-inprimaketa"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Gaitu zinta-inprimagailuaren modua. Zinta-inprimagailuek garraio-zinta bat erabiltzen dute inprimatze-gainazal gisa, angelu batean inklinatuta (normalean 45 gradu). Xerratzaileak xerratze-planoa biratuko du eta G-code koordenatuak eraldatuko ditu gainazal inklinaturako."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Y ardatz infinitua"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Gaitu Y ardatz infinitua zinta-inprimagailuetarako. Gaituta dagoenean, Y ardatzeko inprimatze-bolumenaren muga kendu egiten da, eta edozein luzeratako objektuak inprima daitezke zintaren norabidean."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Zintaren inklinazio-ardatza"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Xerratu aurretik sarea zein ardatzaren inguruan biratzen den. Zinta-inprimagailuaren inklinazioa da: biraketa isometriko bat (distortsiorik gabea), ohearen errendatzea eta euskarrien grabitate-inklinazioa ere gidatzen dituena, eta G-codearen alderantzizko transformazioak desegiten duena makinaren koordenatu-sistemaren zizailadura/eskala eta berresleipena aplikatu aurretik. X da atariaren ohiko inklinazioa (zinta Y ardatzean zehar mugitzen da)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Zintaren inklinazio-angelua"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Zintaren gainazalaren inklinazio-angelua, gradutan. Zinta-inprimagailu gehienek 45° erabiltzen dute. Balio positiboek erlojuaren orratzen kontrako noranzkoan biratzen dute inklinazio-ardatz positiboan behera begiratuta; magnitudea ohearen errendatzerako eta euskarrien grabitaterako erabiltzen den zintaren inklinazio fisikoa ere bada."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Desakoplatu makinaren koordenatu-sistemaren inklinazioa"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Adituentzako gainidazketa: ezarri makinaren koordenatu-sistemaren inklinazio-angelua (G-codearen zizailadura/eskala) xerratu aurreko biraketa-angelutik independenteki. Desgaituta dagoenean, makinaren koordenatu-sistemaren transformazioa zintaren inklinazio-angelutik ateratzen da; beraz, angelu bakar batek gidatzen ditu bi etapak. Gaitu soilik atariaren inklinazio fisikoa xerratze-biraketatik desberdina duen makina bat konpentsatzeko."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Makinaren koordenatu-sistemaren inklinazio-angelua"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "G-codeari aplikatzen zaizkion makinaren koordenatu-sistemaren zizailadura (cot) eta eskala (1/|sin|) ateratzeko erabiltzen den inklinazio-angelua (graduak). 'Desakoplatu makinaren koordenatu-sistemaren inklinazioa' gaituta dagoenean soilik erabiltzen da; bestela, zintaren inklinazio-angelua erabiltzen da."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "Alderantzizko X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Alderantzizko Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Alderantzizko Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "G-codearen X berresleipena"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Zein xerratze-ardatz lotzen den makinaren X ardatzarekin G-code irteeran. Xerratu ONDOREN aplikatzen da, G-code sortzean."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "G-codearen Y berresleipena"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Zein xerratze-ardatz lotzen den makinaren Y ardatzarekin G-code irteeran. Xerratu ONDOREN aplikatzen da, G-code sortzean."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "G-codearen Z berresleipena"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Zein xerratze-ardatz lotzen den makinaren Z ardatzarekin G-code irteeran. Xerratu ONDOREN aplikatzen da, G-code sortzean."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Euskarri-zoruaren Z desplazamendua"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Kalkulatutako zinta-zorua gora edo behera mugitzen du (mm). Balio negatiboek zorua jaisten dute, eta euskarri gehiago mantentzen dira. Erabili hau zinta-zoruaren formularen arazoak diagnostikatzeko."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Gaitu zintaren purgatze-dorrea"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Purgatze-dorrearen ordezkoa zinta-inprimagailuetarako. Zinta-inprimagailu batean gaituta dagoenean, purgatze-prisma bat sortzen da automatikoki inprimatutako piezen ondoan, eta filamentu-aldaketako purgatzea hara bideratzen da (purgatze-dorre klasikoa ezin da erabili zinta-inprimagailuetan, haren G-codeak zintaren transformazioa saihesten duelako). Zinta-inprimagailuetan soilik dago erabilgarri."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Zintaren purgatze-dorrearen zabalera"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Zinta-inprimagailuetan, zintaren purgatze-dorrea gaituta dagoenean eta filamentu anitz erabiltzen direnean, automatikoki sortzen den purgatze-prismaren zabalera (makinaren X, zintaren zeharka). Filamentu-aldaketako purgatzea prisma honen estrusioetara bideratzen da, purgatze-dorre klasiko baten ordez. Haren altuera automatikoki kalkulatzen da geruza bakoitzeko purgatze-bolumen txarrenetik abiatuta: prisma zabalago batek prisma laburragoa ematen du."
+
msgid "Tree support branch angle"
msgstr "Zuhaitz-euskarriaren adar-angelua"
@@ -18067,13 +19675,11 @@ msgstr "Betegarri bereiziak"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"Pieza bakoitzaren barruko betegarria bere buruarekiko zentratzen du, bereiz xerratuko balitz bezala, muntaketa osoarekiko zentratu beharrean. Elkar ukitzen edo gainjartzen diren piezak gorputz bakartzat hartzen dira eta zentro bera partekatzen dute; bereizitako pieza bakoitzak (edo 3D objektu bakoitzak) bere zentroa izango du.\n"
-"Erabilgarria da muntaketa batek betegarri koherente eta autozentratua mantendu behar duten hainbat objektu biltzen dituenean.\n"
-"Lerro eta sareta patroiei eta biraketa-txantiloia duten betegarriei eragiten die.\n"
-"Koordenatu globaletara lotutako patroiei (Giroidea, Abaraska, TPMS...) ez die eragiten."
+"Pieza bakoitzaren barruko betegarria pieza beraren gainean zentratzen du, bakarrik xerratuko balitz bezala, multzo osoaren gainean egin beharrean. Elkar ukitzen edo gainjartzen diren piezak gorputz bakartzat hartzen dira eta zentro bera dute; pieza bereiziek (edo 3D objektu desberdinek) bakoitzak berea du.\n"
+"Erabilgarria multzo batek hainbat objektu biltzen dituenean eta bakoitzak bere betegarri koherente eta bere buruan zentratua mantendu behar duenean.\n"
+"Kubiko egokigarriak eta Euskarri kubikoak pieza bakoitza beti bere gainean zentratzen dute, eta Tximista betegarria objektu osorako sortzen da eta ez du eraginik jasotzen."
# AI Translated
msgid "Center surface pattern on"
@@ -18109,9 +19715,11 @@ msgstr "Garbitu atzera-egitean"
msgid "This moves the nozzle along the last extrusion path when retracting to clean any leaked material on the nozzle. This can minimize blobs when printing a new part after traveling."
msgstr "Honek pita azken estrusio-bidean zehar mugitzen du atzera-egitean, pitatik isuritako materiala garbitzeko. Horrek pikorrak murriztu ditzake pieza berri bat inprimatzean."
+# AI Translated
msgid "Wipe distance"
-msgstr "Garbitze-distantzia"
+msgstr "Garbiketa-distantzia"
+# AI Translated
msgid ""
"Describe how long the nozzle will move along the last path when retracting.\n"
"\n"
@@ -18121,9 +19729,9 @@ msgid ""
msgstr ""
"Atzera egitean pitak azken bidean zehar zenbat mugituko den zehazten du.\n"
"\n"
-"Purgatze-eragiketak zenbat irauten duen eta estrusorearen/filamentuaren atzera-egite ezarpenak zein azkar eta luzeak diren kontuan hartuta, baliteke atzera-egite mugimendu bat behar izatea geratzen den filamentua atzera eramateko.\n"
+"Garbiketa-eragiketak zenbat irauten duen eta estrusorearen/filamentuaren atzera-egite ezarpenak zein azkar eta luzeak diren kontuan hartuta, baliteke atzera-egite mugimendu bat behar izatea geratzen den filamentua atzera eramateko.\n"
"\n"
-"Beheko garbitu aurreko atzera-egite kantitatearen ezarpenean balio batezarriz gero, gehiegizko atzera-egitea garbiketa baino lehen egingo da; bestela, ondoren egingo da."
+"Beheko garbiketa aurreko atzera-egite kantitatearen ezarpenean balio bat ezarriz gero, gehiegizko atzera-egitea garbiketa baino lehen egingo da; bestela, ondoren egingo da."
# AI Translated
msgid "Mixed color sublayer"
@@ -18196,40 +19804,42 @@ msgstr "Purgatze-dorrea egonkortzeko erabiltzen den konoaren erpineko angelua. A
msgid "Maximum wipe tower print speed"
msgstr "Purgatze-dorrearen gehieneko inprimatze-abiadura"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
"Purgatze-dorrean purgatzean eta purgatze-dorrearen geruza bakanduak inprimatzean erabiliko den gehieneko inprimatze-abiadura. Purgatzean, dentsitate baxuko betegarriaren abiadura edo filamentuaren gehieneko abiadura bolumetrikotik kalkulatutako abiadura txikiagoa bada, txikiena erabiliko da.\n"
"\n"
-"Geruza bakanduak inprimatzean, barruko perimetroaren abiadura edo filamentuaren gehieneko abiadura bolumetrikotik kalkulatutako abiadura txikiagoa bada, txikiena erabiliko da.\n"
+"Geruza bakanduak inprimatzean, dentsitate baxuko betegarriaren abiadura edo filamentuaren gehieneko abiadura bolumetrikotik kalkulatutako abiadura txikiagoa bada, txikiena erabiliko da.\n"
"\n"
"Abiadura hau handitzeak dorrearen egonkortasunean eragina izan dezake, eta pitak purgatze-dorrean sortu diren pikorrekin talka egitean duen indarra handitu dezake.\n"
"\n"
"Parametro hau 90 mm/s-ko balio lehenetsitik gora handitu aurretik, ziurtatu zure inprimagailuak abiadura handiagoetan zubiak modu fidagarrian inprima ditzakeela eta tresna-aldaketan jarioa ondo kontrolatuta dagoela.\n"
"\n"
-"Purgatze-dorrearen kanpoko perimetroetarako barruko perimetroaren abiadura erabiltzen da, ezarpen hau kontuan hartu gabe."
+"Purgatze-dorrearen kanpoko perimetroetarako barruko perimetroaren abiadura erabiltzen da, ezarpen honek ere mugatuta."
msgid "Wall type"
msgstr "Horma mota"
+# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"Purgatze-dorrearen kanpoko horma mota.\n"
-"1. Laukizuzena: horma mota lehenetsia, zabalera eta altuera finkoko laukizuzena.\n"
+"1. Laukizuzena: zabalera eta altuera finkoko laukizuzena.\n"
"2. Konoa: behealdean biribiltzea duen konoa, purgatze-dorrea egonkortzen laguntzeko.\n"
-"3. Nerbioa: lau nerbio gehitzen dizkio dorrearen hormari egonkortasuna handitzeko."
+"3. Nerbioa: horma mota lehenetsia, dorrearen hormari lau nerbio gehitzen dizkiona, egonkortasuna handitzeko."
msgid "Rectangle"
msgstr "Laukizuzena"
@@ -18298,6 +19908,14 @@ msgstr "Filamentua aldatu ondorengo purgatzea objektuen euskarrietan egingo da.
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Objektu hau filamentua aldatu ondoren pita purgatzeko erabiliko da, filamentua aurrezteko eta inprimatze-denbora laburtzeko. Ondorioz, objektuen koloreak nahasiko dira. Ez du eraginik izango purgatze-dorrea gaituta ez badago."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Zintaren purgatze-dorrearen objektua"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Automatikoki sortutako zintaren purgatze-prisma markatzen du. Automatikoki kudeatzen da; ez ezarri eskuz."
+
msgid "Maximal bridging distance"
msgstr "Zubiaren gehieneko distantzia"
@@ -18313,8 +19931,9 @@ msgstr "Purgatze-dorreko purga-lerroen arteko tartea."
msgid "Extra flow for purging"
msgstr "Purgatzeko fluxu gehigarria"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Purgatze-dorreko purga-lerroetarako erabiltzen den fluxu gehigarria. Horrek purga-lerroak normalean baino lodiagoak edo meheagoak egiten ditu. Tartea automatikoki doitzen da."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Purgatze-dorreko purga-lerroetarako erabiltzen den fluxu gehigarria. Horrek purga-lerroak normalean baino lodiagoak egiten ditu. Tartea automatikoki doitzen da."
msgid "Idle temperature"
msgstr "Inaktibo dagoeneko tenperatura"
@@ -18430,14 +20049,15 @@ msgstr "Ezaugarri meheen gutxieneko lodiera. Balio hau baino meheagoak diren eza
msgid "Minimum wall length"
msgstr "Hormaren gutxieneko luzera"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Doitu balio hau horma labur eta itxi gabeak inprima ez daitezen; horrek inprimatze-denbora handitu lezake. Balio handiagoek horma gehiago eta luzeagoak kentzen dituzte.\n"
+"Doitu balio hau horma labur eta itxi gabeak inprima ez daitezen; horrek inprimatze-denbora handitu lezake. Balioa horma-zabaleraren multiploa da. Balio handiagoek horma gehiago eta luzeagoak kentzen dituzte.\n"
"\n"
-"OHARRA: beheko eta goiko gainazalek ez dute balio honen eraginik izango, modeloaren kanpoaldean hutsune ikusgarriak saihesteko. Doitu beheko Ezarpen aurreratuetako 'Horma bakarreko atalasea' goiko gainazaltzat zer hartzen den zehazteko sentikortasuna doitzeko. 'Horma bakarreko atalasea' ezarpen hau 0.5 balio lehenetsiaren gainetik ezarrita badago edo horma bakarreko goiko gainazalak gaituta badaude bakarrik ikusiko da."
+"OHARRA: beheko eta goiko gainazalek ez dute balio honen eraginik izango, modeloaren kanpoaldean hutsune ikusgarriak saihesteko. Doitu beheko 'Hormak eta gainazalak' ezarpenetako 'Horma bakarraren atalasea' goiko gainazaltzat zer hartzen den zehazteko sentikortasuna doitzeko. 'Horma bakarraren atalasea' ezarpen hau 0.5 balio lehenetsiaren gainetik ezarrita badago edo horma bakarreko goiko gainazalak gaituta badaude bakarrik ikusiko da."
msgid "Maximum wall resolution"
msgstr "Hormen gehieneko bereizmena"
@@ -18448,8 +20068,9 @@ msgstr "Balio honek horma-lerroaren segmentu laburrenaren luzera zehazten du, mm
msgid "Maximum wall deviation"
msgstr "Hormen gehieneko desbideratzea"
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "'Hormaren gehieneko bereizmena' ezarpenerako bereizmena murriztean baimendutako gehieneko desbideratzea. Handitzen baduzu, inprimaketa ez da hain zehatza izango, baina G-codea txikiagoa izango da. 'Hormaren gehieneko desbideratzeak'-ek 'Hormaren gehieneko bereizmena' mugatzen du; beraz, bien artean gatazkarik badago, 'Hormaren gehieneko desbideratzeak' izango du lehentasuna."
+# AI Translated
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "'Hormen gehieneko bereizmena' ezarpenerako bereizmena murriztean baimendutako gehieneko desbideratzea. Handitzen baduzu, inprimaketa ez da hain zehatza izango, baina G-codea txikiagoa izango da. 'Hormen gehieneko desbideratzea' ezarpenak 'Hormen gehieneko bereizmena' ezarpena mugatzen du; beraz, bien artean gatazkarik badago, 'Hormen gehieneko desbideratzea' ezarpenak du lehentasuna."
msgid "First layer minimum wall width"
msgstr "Lehen geruzaren gutxieneko horma-zabalera"
@@ -18540,8 +20161,11 @@ msgstr "Zubien lerro-zabalerak ezin du pitaren diametroa gainditu: "
msgid "too large line width "
msgstr "lerro-zabalera handiegia "
-msgid " not in range "
-msgstr " ez dago tartean "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% ez dago [%2%, %3%] tartean"
msgid "This exports the project as a 3MF file."
msgstr "Honek proiektua 3MF gisa esportatzen du."
@@ -18691,6 +20315,14 @@ msgstr "Orientazio-aukerak"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Orientazio-aukerak: 0-desgaitu, 1-gaitu, besteak-auto"
+# AI Translated
+msgid "Repair"
+msgstr "Konpondu"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Konpondu modeloen sareak \"Konpondu modeloa\" funtzioak egiten duen bezala: itxi zuloak eta pitzadurak, orientatu kanporantz eta kendu auto-gurutzaketak."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Z ardatzaren inguruko biraketa-angelua, gradutan."
@@ -18799,6 +20431,12 @@ msgstr "Irteerako direktorioa"
msgid "This is the output directory for exported files."
msgstr "Hau da esportatutako fitxategien irteerako direktorioa."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Arazketa-maila"
@@ -18963,6 +20601,56 @@ msgstr "Estrusore bakarreko MM primatzea du"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Inprimaketa honetan material anitzeko primatze-eremu gehigarriak erabiltzen dira?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Euskarririk gabeko hasierako estrusorea"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Euskarririk gabe inprimatzeko erabilitako lehen estrusorearen zeroan oinarritutako indizea. initial_no_support_tool-en berdina."
+
+# AI Translated
+# Needs human review: 'Head wrap' is rendered as 'buruaren inguraketa' after the catalog's 'nozzle wrapping' (pitaren inguraketa); check against the printer's detection feature.
+msgid "In head wrap detect zone"
+msgstr "Buruaren inguraketa detektatzeko eremuan"
+
+# AI Translated
+# Needs human review: 'Head wrap' is rendered as 'buruaren inguraketa' after the catalog's 'nozzle wrapping' (pitaren inguraketa); check against the printer's detection feature.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Lehen geruza buruaren inguraketa-eremuarekin gainjartzen den adierazten du."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Uneko ohe mota"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Hautatuta dagoen ohe-plaka motaren izena (adib. 'Testuradun PEI plaka', 'Tenperatura alturako plaka leuna')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "IDEX/IQEX modu aktiboa"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Plaka honen IDEX/IQEX inprimatze paraleloko modu aktiboaren izena (adib. 'primary', 'mirror', 'copy'). Kate hutsa IDEX/IQEX gaituta ez badago."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "IDEX/IQEX modu aktiboaren indizea"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "IDEX/IQEX inprimatze paraleloko modu aktiboaren zeroan oinarritutako indizea imex_mode_names zerrendan."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "IDEX/IQEX modu aktiboaren G-codea"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "IDEX/IQEX inprimatze paraleloko modu aktiboaren G-code txantiloi gordina, placeholder-ak ebaluatu ondoren. Hemen definitutako aldagai globalak machine_start_gcode-ra pasatzen dira."
+
msgid "Volume per extruder"
msgstr "Bolumena estrusoreko"
@@ -19108,6 +20796,18 @@ msgstr "Sarrerako fitxategi-izena luzapenik gabe"
msgid "Source filename of the first object, without extension."
msgstr "Lehen objektuaren jatorrizko fitxategi-izena, luzapenik gabe."
+# AI Translated
+msgid "Full input filename"
+msgstr "Sarrerako fitxategi-izen osoa"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Lehen objektuaren jatorrizko fitxategi-izena."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Xerratutako plakaren izena."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Bektoreak bi elementu ditu: puntuaren X eta Y koordenatuak. Balioak mm-tan."
@@ -19138,6 +20838,58 @@ msgstr "Inprimatze-ohearen muga-kutxaren goi-eskuineko ertza"
msgid "Size of the print bed bounding box"
msgstr "Inprimatze-ohearen muga-kutxaren tamaina"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Lehen geruzaren zentroa purgatze-dorrerik gabe"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Lehen geruzaren altuera."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Estrusore/filamentu bakoitzaren ohearen tenperaturen bektorea."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Estrusore/filamentu bakoitzaren lehen geruzako ohearen tenperaturen bektorea. first_layer_bed_temperature-ren balio bera ematen du."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Lehen geruzako ohearen tenperatura (hasierako estrusorea)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Hasierako estrusorearen lehen geruzako ohearen tenperatura. bed_temperature_initial_layer[initial_extruder]-ren berdina"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Estrusore/filamentu bakoitzaren ganberako tenperaturen bektorea."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Estrusore/filamentu bakoitzaren ganberako gutxieneko tenperaturen bektorea."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Ganberako tenperatura orokorra"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Ganberako tenperatura orokorra. Balio hau erabilitako edozein estrusore/filamenturen ganberako tenperatura maximoa da."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Estrusore/filamentu bakoitzaren lehen geruzako ohearen tenperaturen bektorea. bed_temperature_initial_layer-en balio bera ematen du."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Lehen geruzako tenperatura"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Estrusore/filamentu bakoitzaren lehen geruzako tenperaturen bektorea."
+
msgid "Timestamp"
msgstr "Denbora-zigilua"
@@ -19183,8 +20935,9 @@ msgstr "Xerraketarako erabilitako inprimagailu fisikoaren izena."
msgid "Layer number"
msgstr "Geruza-zenbakia"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Uneko geruzaren indizea. Batean oinarritua (hau da, lehen geruza 1 zenbakia da)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Uneko geruzaren indizea. Zeroan oinarritua (hau da, lehen geruza 0 zenbakia da), estrusio-rolaren aldaketako G-codean izan ezik, non batean oinarritua den."
msgid "Layer Z"
msgstr "Geruzaren Z"
@@ -19204,6 +20957,252 @@ msgstr "Filamentuaren estrusore-IDa"
msgid "The current extruder ID. The same as current_extruder."
msgstr "Uneko estrusore-IDa. current_extruder-en berdina."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Aurreko estrusorea"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Deskargatzen ari den estrusorearen indizea. Indizea zeroan oinarritua da (lehen estrusorearen indizea 0 da)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Hurrengo estrusorea"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Kargatzen ari den estrusorearen indizea. Indizea zeroan oinarritua da (lehen estrusorearen indizea 0 da)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "E ardatz erlatiboa"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Kokapen erlatiboa erabiltzen ari den adierazten du."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Tresna-aldaketen kopurua"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "Inprimaketan zehar egindako tresna-aldaketen kopurua."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Atzera-egite luzera zaharra"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Aurreko filamentuaren atzera-egitearen luzera."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Atzera-egite luzera berria"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Filamentu berriaren atzera-egitearen luzera."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Atzera-egite luzera zaharra tresna-aldaketan"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Aurreko filamentuaren tresna-aldaketako atzera-egitearen luzera."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Atzera-egite luzera berria tresna-aldaketan"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "Filamentu berriaren tresna-aldaketako atzera-egitearen luzera."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Filamentu zaharraren tenperatura"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "Filamentu zaharraren tenperatura."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Filamentu berriaren tenperatura"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "Filamentu berriaren tenperatura."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X tresna-aldaketaren ondoren"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "X posizioa tresna-aldaketaren ondoren."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y tresna-aldaketaren ondoren"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "Y posizioa tresna-aldaketaren ondoren."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z tresna-aldaketaren ondoren"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "Z posizioa tresna-aldaketaren ondoren."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Lehen purgatze-bolumena"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Lehen purgatze-bolumena."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Bigarren purgatze-bolumena"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Bigarren purgatze-bolumena."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Filamentu zaharraren E elikatze-abiadura"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "Filamentu zaharraren estrusorearen elikatze-abiadura."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Filamentu berriaren E elikatze-abiadura"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "Filamentu berriaren estrusorearen elikatze-abiadura."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "1. desplazamendu-puntua X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "1. desplazamendu-puntuaren X."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "1. desplazamendu-puntua Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "1. desplazamendu-puntuaren Y."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "2. desplazamendu-puntua X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "2. desplazamendu-puntuaren X."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "2. desplazamendu-puntua Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "2. desplazamendu-puntuaren Y."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "3. desplazamendu-puntua X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "3. desplazamendu-puntuaren X."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "3. desplazamendu-puntua Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "3. desplazamendu-puntuaren Y."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "1. purgatze-luzera"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "Lehen purgatze-luzera."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "2. purgatze-luzera"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "Bigarren purgatze-luzera."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "3. purgatze-luzera"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "Hirugarren purgatze-luzera."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "4. purgatze-luzera"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "Laugarren purgatze-luzera."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Estrusio-rola"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Erabiliko den estrusio-rol/mota berria\n"
+"Balio posibleak:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Azken estrusio-rola"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Aurrez erabilitako estrusio-rol/mota\n"
+"Balio posibleak:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Errorea ZIP artxiboan"
@@ -19216,24 +21215,32 @@ msgstr "Betegarri-eremuak sortzen"
msgid "Generating infill toolpath"
msgstr "Betegarrirako inprimatze-ibilbidea sortzen"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z sestratutako geruza %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Detektatu irtenguneak auto-jasotzerako"
msgid "Checking support necessity"
msgstr "Euskarrien beharra egiaztatzen"
-msgid "floating regions"
-msgstr "eskualde flotatzaileak"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Badirudi %1% objektuak eskualde flotatzaileak dituela. Orientatu berriro objektua edo gaitu euskarrien sorrera."
-msgid "floating cantilever"
-msgstr "irtengune flotatzailea"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Badirudi %1% objektuak kantilibre flotatzaile bat duela. Orientatu berriro objektua edo gaitu euskarrien sorrera."
-msgid "large overhangs"
-msgstr "irtengune handiak"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Badirudi %s objektuak %s dituela. Orientatu berriro objektua edo gaitu euskarrien sorrera."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Badirudi %1% objektuak irtengune handiak dituela. Orientatu berriro objektua edo gaitu euskarrien sorrera."
msgid "Generating support"
msgstr "Euskarriak sortzen"
@@ -19244,8 +21251,9 @@ msgstr "Inprimatze-ibilbidea optimizatzen"
msgid "Slicing mesh"
msgstr "Sarea xerratzen"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Ez da geruzarik detektatu. Baliteke STL fitxategia(k) konpondu behar izatea edo haien tamaina edo lodiera egiaztatu eta berriro saiatu behar izatea.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Ez da geruzarik detektatu. Baliteke modeloa konpondu behar izatea, edo bere tamaina edo lodiera egiaztatu eta berriro saiatu behar izatea.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19264,6 +21272,397 @@ msgstr ""
msgid "Object name"
msgstr "Objektuaren izena"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Ezin da minus unarioko eragilea aplikatu."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Ezin da osoko zenbaki bihurtu."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Ezin da zenbakizkoa ez den balio bat biribildu."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Ezin da zenbakizkoa ez den balio bat behera biribildu."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Ezin da zenbakizkoa ez den balio bat gora biribildu."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Ezin da ezeztapen-eragilea (not) aplikatu."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Ezin dira zenbakizkoak ez diren motak gehitu."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Ezin dira zenbakizkoak ez diren motak kendu."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Ezin da zenbakizkoa ez den mota batekin biderkatu."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Ezin da zenbakizkoa ez den mota bat zatitu."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Ezin da zenbakizkoa ez den mota batekin zatitu."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Zeroz zatitzea"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Ez da adierazpen boolearra"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Ezin dira motak konparatu."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Ez da zenbakizko mota."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: bigarren parametroak osoko zenbakia izan behar du"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: hirugarren parametroak osoko zenbakia izan behar du"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Regex parekatzearen ezkerreko aldeak kate bat izan behar du."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Adierazpen erregularraren konpilazioak huts egin du: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "regex_replace(): lehen parametroak kate bat izan behar du."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): lehen parametroak (parekatu beharreko kateak) kate-balio bat izan behar du"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): patroiak kate-balio bat izan behar du"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Adierazpen erregularraren konpilazioak huts egin du"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Ezin da eragiketa logikoa aplikatu boolearrak ez diren eragigaiei."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Aldagai eskalar bat indexatzen saiatzen ari da"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Bektore-indize baliogabea"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "Aldagaia ez da existitzen (adar inaktibo batean)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "Aldagaia ez da existitzen"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Definitu gabeko (nil) aldagai aukerazko bati erreferentzia egiten saiatzen ari da"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Bektore-aldagai huts bat indexatzen"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Aukerako balioen bektore bateko definitu gabeko (nil) elementu bati erreferentzia egiten saiatzen ari da"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "Indexatzeko aldagaiak osoko zenbakia izan behar du"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Bektore-indize negatiboa"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Ez da aldagai-izen bat"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Ez da aldagai-izen bat (adar inaktibo batean)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "FloatOrPercent aldagaiak huts egin du \"ratio_over\" mendekotasunak ebaztean"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Onartzen ez den aldagai eskalar mota"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Bektore-aldagai bati erreferentzia egiten zaio eskalar bat espero denean"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Onartzen ez den bektore-aldagai mota"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Ezin da irakurtzeko soilik den aldagai bat aldatu"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Eskuineko aldea ez da zenbakizko adierazpena"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Bektorea betetzeko elementu kopurua espero zen."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Elementu kopuru negatiboa zehaztu da."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Eskuineko aldea ez da adierazpen boolearra"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Onartzen ez den irteerako aldagai eskalar mota"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Irteerako bektore-aldagai bati erreferentzia egiten zaio eskalar bat espero denean"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Indizea tartetik kanpo dago"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Onartzen ez den irteerako bektore-aldagai mota"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Ikurra dagoeneko definituta dago irakurtzeko soilik den sistemaren hiztegian"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Ikurra dagoeneko definituta dago sistemaren irteerako aldagai gisa"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Aldagai globalak ez daude erabilgarri testuinguru honetan"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Aldagai-izena dagoeneko definituta dago eremu lokalean"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Aldagai-izena dagoeneko definituta dago eremu globalean"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Ezin zaio eskalar-balio bat esleitu bektore-aldagai bati."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Ezin zaio bektore-balio bat esleitu aldagai eskalar bati."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Ezin da bektore-aldagairik sortu hasieratze-zerrenda huts batetik, bere mota ezin baita ondorioztatu."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Eskuineko aldea ez da baliozkoa: zenbakizko eta boolearrezko motak nahastea."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Ezin zaio eskalar bat esleitu bektore bati"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Aukerako balioen eskuineko aldeko bektore-aldagaiaren elementu batzuk definitu gabe daude (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Ezkerreko aldea koma mugikorreko bektorea da, baina eskuinekoa ez."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Ezkerreko aldea osoko zenbakien bektorea da, baina eskuinekoa ez."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Ezkerreko aldea kate-bektorea da, baina eskuinekoa ez."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Ezkerreko aldea bektore boolearra da, baina eskuinekoa ez."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Ezkerreko eta eskuineko aldeetako bektoreak ez dira bateragarriak."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Ez da onartzen bektore-aldagai mota hau bikoiztea"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "empty() funtzioaren parametroa ez da bektore-aldagai bat"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "size() funtzioaren parametroa ez da bektore-aldagai bat"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Ez da onartzen osoa ez den indizea bektore-aldagai bat helbideratzeko."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Ausazko zenbaki-sortzailea ez dago erabilgarri testuinguru honetan."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Analisi-errorea %1%. lerroan: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Analisi-errorea %1%. lerroan. %2% etiketa espero zen"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Analisi-errorea %1%. lerroan. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "Interpolazio-balioak zenbaki bat izan behar du."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "Taulako puntu baten X balioak zenbaki bat izan behar du."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "Taulako puntu baten Y balioak zenbaki bat izan behar du."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Taulako X koordenatuek gorakorrak izan behar dute"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "Interpolazio-balioa taularen tartetik kanpo dago"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Sintaxi-errore ezezaguna"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Testu baliogabea."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Testu-bloke baliogabea."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Makro baliogabea."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Ez da {if}{else}{endif} makroa."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Ez da {switch} makroa."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Aldagaia hedatzeko formatu zaharkitu bat espero zen"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Identifikatzaile bat espero zen."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Baldintza-adierazpen bat espero zen."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Adierazpen boolear bat espero zen."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Adierazpen bat espero zen."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Itxierako giltza bat edo aukerako parametro bat espero zen."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Kate-patroien zerrenda bat espero zen (testu soila edo regex)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Aldagai-erreferentzia bat espero zen."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Aldagai-izen bat espero zen."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Adierazpen erregular bat espero zen."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "utf8 sekuentzia baliogabea"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "ASCII7 ez diren karaktereak testu-blokeetan eta kate-literaletan soilik onartzen dira, ez kode-blokeetan."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Ihes-sekuentzia baliogabea"
+
msgid "Support: generate contact points"
msgstr "Euskarriak: sortu kontaktu-puntuak"
@@ -19280,6 +21679,10 @@ msgstr "Emandako fitxategia ezin izan da irakurri hutsik dagoelako."
msgid "The file format is incompatible and cannot be parsed."
msgstr "Fitxategi-formatua bateraezina da eta ezin da analizatu."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Huts egin du baliabidea STL bihurtzeak ModelIO bidez."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Fitxategi-formatu ezezaguna: sarrerako fitxategiak .stl, .obj edo .amf(.xml) luzapena izan behar du."
@@ -19328,9 +21731,6 @@ msgstr "Birkalibrazioa"
msgid "Calibrate"
msgstr "Kalibratu"
-msgid "Finish"
-msgstr "Amaitu"
-
msgid "How can I use calibration results?"
msgstr "Nola erabil ditzaket kalibrazio-emaitzak?"
@@ -19425,9 +21825,12 @@ msgstr ""
"Estrusore berean, izenak (%s) bakarra izan behar du filamentuen mota, pitaren diametroa eta pitaren fluxua berdinak direnean.\n"
"Ziur zaude aurreko emaitza gainidatzi nahi duzula?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Makina mota honek pita bakoitzeko %d emaitza historiko soilik gorde ditzake. Emaitza hau ez da gordeko."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Makina mota honek pita bakoitzeko %d emaitza historiko soilik gorde dezake. Emaitza hau ez da gordeko."
+msgstr[1] "Makina mota honek pita bakoitzeko %d emaitza historiko soilik gorde ditzake. Emaitza hau ez da gordeko."
msgid "Connecting to printer..."
msgstr "Inprimagailura konektatzen..."
@@ -19650,9 +22053,13 @@ msgstr "Sinkronizatu pitaren eta AMSren informazioa"
msgid "Please connect the printer first before synchronizing."
msgstr "Konektatu inprimagailua sinkronizatu aurretik."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "%s inprimagailuaren pitaren informazioa ez da ezarri. Konfiguratu kalibrazioarekin jarraitu aurretik."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Inprimagailuaren eskuineko pitaren informazioa ez da ezarri. Konfiguratu kalibrazioarekin jarraitu aurretik."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Inprimagailuaren ezkerreko pitaren informazioa ez da ezarri. Konfiguratu kalibrazioarekin jarraitu aurretik."
msgid "AMS and nozzle information are synced"
msgstr "AMSaren eta pitaren informazioa sinkronizatuta dago"
@@ -19715,6 +22122,11 @@ msgstr "Abiadura bolumetrikotik"
msgid "To Volumetric Speed"
msgstr "Abiadura bolumetrikora"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Urratsa"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Ziur zaude inprimaketa hau bertan behera utzi nahi duzula?"
@@ -19740,9 +22152,12 @@ msgstr "Oharra: %s gailuko hotendaren zenbakia euskarriari lotuta dago. Hotenda
msgid "Action"
msgstr "Ekintza"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Makina mota honek pita bakoitzeko %d emaitza historiko soilik gorde ditzake."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Makina mota honek pita bakoitzeko %d emaitza historiko soilik gorde dezake."
+msgstr[1] "Makina mota honek pita bakoitzeko %d emaitza historiko soilik gorde ditzake."
msgid "Edit Flow Dynamics Calibration"
msgstr "Editatu fluxu-dinamikaren kalibrazioa"
@@ -19870,12 +22285,13 @@ msgstr ""
"Azelerazio-balioek abiadura-balioek baino handiagoak izan behar dute.\n"
"Egiaztatu sarrerak."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Oraindik ez dago gaituta zinta-inprimagailuetan — erabili PA dorrea metodoa horren ordez."
+
msgid "Temperature calibration"
msgstr "Tenperaturaren kalibrazioa"
-msgid "Filament type"
-msgstr "Filamentu mota"
-
msgid "PLA"
msgstr "PLA"
@@ -19897,6 +22313,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Proba-modeloa"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Estandarra"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Irtengunea"
+
msgid "Start temp: "
msgstr "Hasierako tenp.: "
@@ -20022,9 +22451,6 @@ msgstr "Hasierako atzera-egite luzera: "
msgid "End retraction length: "
msgstr "Amaierako atzera-egite luzera: "
-msgid "Test model"
-msgstr "Proba-modeloa"
-
msgid "Ringing Tower"
msgstr "Erresonantzia dorrea"
@@ -20054,8 +22480,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Maiztasuna (hasiera / amaiera): "
-msgid "Start / End"
-msgstr "Hasiera / Amaiera"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X hasiera / amaiera: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y hasiera / amaiera: "
msgid "Frequency settings"
msgstr "Maiztasun-ezarpenak"
@@ -20092,8 +22523,13 @@ msgstr "Egiaztatu firmwarearen bateragarritasuna."
msgid "Frequency: "
msgstr "Maiztasuna: "
-msgid "Damp"
-msgstr "Moteltzea"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Maiztasuna X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Moteltzea (hasiera / amaiera): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "RepRap firmwareak maiztasun bera erabiltzen du bi ardatzetarako."
@@ -20218,9 +22654,12 @@ msgstr "Time-lapsea"
msgid "Enable IFS"
msgstr "Gaitu IFS"
+# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "%d IFS zirrikitu detektatu dira inprimagailuan."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "%d IFS zirrikitu detektatu da inprimagailuan."
+msgstr[1] "%d IFS zirrikitu detektatu dira inprimagailuan."
msgid "This printer does not report a material station."
msgstr "Inprimagailu honek ez du material-estaziorik jakinarazten."
@@ -20338,8 +22777,10 @@ msgstr "Kendu hemendik"
msgid "Subtract with"
msgstr "Kendu honekin"
-msgid "selected"
-msgstr "hautatuta"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 hautatuta"
msgid "Part 1"
msgstr "1. pieza"
@@ -20452,9 +22893,6 @@ msgstr "adib. Oinarrizkoa, Matea, Zeta, Marmola"
msgid "Filament Preset"
msgstr "Filamentu-aurrezarpena"
-msgid "Create"
-msgstr "Sortu"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "Ez da hornitzailerik hautatu; hautatu berriro."
@@ -20758,6 +23196,10 @@ msgstr ""
"Inprimagailua eta hari dagozkion filamentuen eta prozesuen aurrezarpen guztiak.\n"
"Besteekin parteka daitezke."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Sartu ohearen testura eta modelo pertsonalizatuak"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -20809,14 +23251,6 @@ msgstr "Oharra: filamentu honen azpiko aurrezarpen bakarra ezabatzen bada, filam
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Beste aurrezarpen batzuetatik herentzian hartutako aurrezarpenak ezin dira ezabatu"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Hurrengo aurrezarpenak aurrezarpen hau hartuko du herentzian."
-msgstr[1] "Hurrengo aurrezarpenek aurrezarpen hau hartuko dute herentzian."
-
-msgid "Delete Preset"
-msgstr "Ezabatu aurrezarpena"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Ziur hautatutako aurrezarpena ezabatu nahi duzula?"
@@ -20893,10 +23327,12 @@ msgstr "Hasiera, amaiera edo urratsa ez da balio baliozkoa."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "Inprimagailuaren estrusore kopurua ez dator bat kalibraziorako hautatutako inprimagailuarekin."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "%s estrusorearen pitaren diametroa 0,2 mm da, eta ez du fluxu-dinamikaren kalibrazio automatikoa onartzen."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -20912,6 +23348,12 @@ msgstr ""
"Pitaren diametroa ez dator bat inprimagailuaren benetako pitaren diametroarekin.\n"
"Egin klik goiko Sinkronizatu botoian eta berrabiarazi kalibrazioa."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "%s inprimagailuaren pitaren informazioa ez da ezarri. Konfiguratu kalibrazioarekin jarraitu aurretik."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -20984,6 +23426,11 @@ msgstr "Detektatu Creality K serieko inprimagailua"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Egin klik Eskaneatu botoian sareko K serieko inprimagailuak bilatzeko."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Modeloa"
+
# AI Translated
msgid "Scan"
msgstr "Eskaneatu"
@@ -21001,9 +23448,12 @@ msgstr "(K serieko eredu ezezaguna)"
msgid "No K-series printers found. Make sure the printer is on the same network and not blocked by Wi-Fi client isolation, then click Scan again."
msgstr "Ez da K serieko inprimagailurik aurkitu. Ziurtatu inprimagailua sare berean dagoela eta Wi-Fi bezeroen isolamenduak ez duela blokeatzen; ondoren, egin klik berriro Eskaneatu botoian."
+# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "%zu Creality inprimagailu aurkitu dira. Hautatu bat eta egin klik Erabili hautatutakoa botoian."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "%zu Creality inprimagailu aurkitu da. Hautatu eta egin klik Erabili hautatutakoa botoian."
+msgstr[1] "%zu Creality inprimagailu aurkitu dira. Hautatu bat eta egin klik Erabili hautatutakoa botoian."
msgid "Active"
msgstr "Aktibo"
@@ -21092,8 +23542,13 @@ msgstr "Ezin izan da exekutagarriaren bidea zehaztu."
msgid "Failed to launch a new instance."
msgstr "Ezin izan da instantzia berri bat abiarazi."
-msgid "log(s)"
-msgstr "erregistro"
+# AI Translated
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d erregistro (%.2f %s)"
+msgstr[1] "%d erregistro (%.2f %s)"
msgid "Choose where to save the exported JSON file"
msgstr "Aukeratu esportatutako JSON fitxategia non gorde"
@@ -21136,15 +23591,35 @@ msgstr "Ez da inprimagailu mota aurkitu; hautatu eskuz."
msgid "Authorizing..."
msgstr "Baimena ematen..."
-msgid "Error. Can't get API token for authorization"
-msgstr "Errorea. Ezin da baimenerako API tokena lortu"
+# AI Translated
+msgid "Maximum login retries exceeded"
+msgstr "Saioa hasteko saiakera kopuru maximoa gainditu da"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "HTTP errorea: %1%"
msgid "Could not parse server response."
msgstr "Ezin izan da zerbitzariaren erantzuna analizatu."
+msgid "Error. Can't get API token for authorization"
+msgstr "Errorea. Ezin da baimenerako API tokena lortu"
+
msgid "Error saving session to file"
msgstr "Errorea saioa fitxategian gordetzean"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "3DPrinterOS hodeirako konexioak ondo funtzionatzen du."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Saioa hasita erabiltzaile honekin: %1%"
+
msgid "Error session check"
msgstr "Errorea saioa egiaztatzean"
@@ -21179,6 +23654,42 @@ msgstr "Pasahitz okerra"
msgid "Could not get resources to create a new connection"
msgstr "Ezin izan dira konexio berri bat sortzeko baliabideak lortu"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "UltiMaker-erako konexioak ondo funtzionatzen du."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Ezin izan da UltiMaker-era konektatu"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Errorea kredentzialak sortzean! Ikusi erregistroa xehetasunetarako."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "ERROREA: ID edo KEY hutsik dago. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Erabiltzaile-izena: %1% Pasahitza: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Autentifikazio-kredentzialak onarpenaren zain daude. Onartu sarbidea inprimagailuaren pantailako elkarrizketa-koadroan."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Autentifikazio-kredentzial baliogabeak"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Errorea: ez da autentifikazio-kredentzialik aurkitu!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Karga ez dago gaituta FlashAir txartelean."
@@ -21292,6 +23803,14 @@ msgstr ""
"Mezuaren gorputza: \"%1%\"\n"
"Errorea: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "ESP3D-rako konexioak ondo funtzionatzen du."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Ezin izan da ESP3D-ra konektatu"
+
msgid "No AMS"
msgstr "AMSrik ez"
@@ -21363,6 +23882,11 @@ msgstr "Hauta daitezkeen inprimagailuen gehienezko kopurua %d da"
msgid "No task"
msgstr "Zereginik gabe"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Ikusi"
+
msgid "Edit Printers"
msgstr "Editatu inprimagailuak"
@@ -21404,6 +23928,11 @@ msgstr "Inprimaketak huts egin du"
msgid "Printing Pause"
msgstr "Inprimaketa pausatuta"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Prestatzen"
+
msgid "Pending"
msgstr "Egiteke"
@@ -21435,9 +23964,6 @@ msgstr "Gaitu filamentuen esleipen adimenduna: esleitu filamentua hainbat pitata
msgid "File Saving"
msgstr "Fitxategia gordetzea"
-msgid "Don't remind me again"
-msgstr "Ez gogorarazi berriro"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Ez da beste leiho gainerakorrik agertuko. 'Hobespenak' atalean berriro ireki dezakezu"
@@ -21462,15 +23988,24 @@ msgstr "Esleitu filamentua eskuz ezkerreko edo eskuineko pitari"
msgid "Global settings"
msgstr "Ezarpen orokorrak"
-msgid "Video tutorial"
-msgstr "Bideo-tutoriala"
-
msgid "(Sync with printer)"
msgstr "(Sinkronizatu inprimagailuarekin)"
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Errorea: %s estrusoreak ez du %s pita erabilgarririk; uneko taldekatze-emaitza baliogabea da."
+# AI Translated
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Errorea: ezkerreko estrusoreak ez du pita estandar erabilgarririk; uneko taldekatze-emaitza baliogabea da."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Errorea: ezkerreko estrusoreak ez du fluxu handiko pita erabilgarririk; uneko taldekatze-emaitza baliogabea da."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Errorea: eskuineko estrusoreak ez du pita estandar erabilgarririk; uneko taldekatze-emaitza baliogabea da."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Errorea: eskuineko estrusoreak ez du fluxu handiko pita erabilgarririk; uneko taldekatze-emaitza baliogabea da."
msgid "We will slice according to this grouping method:"
msgstr "Taldekatze-metodo honen arabera xerratuko da:"
@@ -21510,15 +24045,22 @@ msgstr "Ezin izan da SimplyPrint-era konektatu"
msgid "Internal error"
msgstr "Barne-errorea"
-msgid "Unknown error"
-msgstr "Errore ezezaguna"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "SimplyPrint kontua ez dago lotuta. Joan Konektatu aukeretara konfiguratzeko."
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforgek JSON erantzun baliogabea itzuli du."
+# AI Translated
+msgid "Request failed"
+msgstr "Eskaerak huts egin du"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Flashforge tokiko API errorea %1%: %2%"
+
msgid "No Flashforge printers were discovered on the local network."
msgstr "Ez da Flashforge inprimagailurik aurkitu sare lokalean."
@@ -21664,8 +24206,12 @@ msgstr "Abisua: itsaspen ertz mota ez dago \"margotua\" gisa ezarrita; ertz-bela
msgid "Set the brim type of this object to \"painted\""
msgstr "Ezarri objektu honen itsaspen ertz mota \"margotua\" gisa"
-msgid "invalid brim ears"
-msgstr "ertz-belarri baliogabeak"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d ertz-belarri baliogabe"
+msgstr[1] "%d ertz-belarri baliogabe"
msgid "Brim Ears"
msgstr "Ertz-belarriak"
@@ -21691,6 +24237,7 @@ msgstr "Ezin izan da saltatutako objektuen informazioa kargatu. Saiatu berriro."
msgid "Failed to create the temporary folder."
msgstr "Ezin izan da aldi baterako karpeta sortu."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d hautatuta"
@@ -21710,9 +24257,12 @@ msgstr "Objektu guztiak saltatzen."
msgid "The printing job will be stopped. Continue?"
msgstr "Inprimaketa-lana gelditu egingo da. Jarraitu?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "%d objektuak saltatzen."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "%d objektu saltatzen."
+msgstr[1] "%d objektu saltatzen."
msgid "This action cannot be undone. Continue?"
msgstr "Ekintza hau ezin da desegin. Jarraitu?"
@@ -21858,6 +24408,42 @@ msgstr "Gaituz gero, goiko balioak etorkizuneko STEP inportazioetan erabiliko di
msgid "PresetBundle"
msgstr "Aurrezarpen-paketea"
+# AI Translated
+msgid "Export Presets"
+msgstr "Esportatu aurrezarpenak"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Erakutsi karpetan"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Ezabatu paketea"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Utzi paketearen harpidetza"
+
+# AI Translated
+msgid "Update available"
+msgstr "Eguneratzea erabilgarri"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Baimenik gabeko paketea"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Ireki pakete hau zure nabigatzailean"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "Harpidetua"
+
+# AI Translated
+msgid "Local"
+msgstr "Lokala"
+
msgid "Bundle folder does not exist."
msgstr "Pakete-karpeta ez da existitzen."
@@ -21891,6 +24477,14 @@ msgstr "Utzi paketearen harpidetza"
msgid "ExportPresetBundle"
msgstr "Esportatu aurrezarpen-paketea"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Esportatu OrcaCloud-era"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Esportatu karpetara"
+
msgid "Save preset bundle"
msgstr "Gorde aurrezarpen sorta"
@@ -21976,6 +24570,11 @@ msgstr "AMS Lehortasun-kontrola"
msgid "Filament Drying Settings"
msgstr "Filamentua lehortzearen ezarpenak"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "h"
+
msgid "Stopping"
msgstr "Gelditzen"
@@ -22113,6 +24712,11 @@ msgstr "Abiarazten: Aire-sarrera egiaztatzen"
msgid "Starting: Checking air vent"
msgstr "Abiarazten: Aire-hustubidea egiaztatzen"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Ezin izan da %1% direktorioa sortu"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Baliteke filamentua uneko makinaren ezarpenekin bateragarria ez izatea. Filamentuaren aurrezarpen generikoak erabiliko dira."
@@ -22128,6 +24732,105 @@ msgstr "Baliteke filamentua uneko makinaren ezarpenekin bateragarria ez izatea.
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Filamentu-modeloa ezezaguna da. Ausazko filamentuen aurrezarpen bat erabiliko da."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Konfigurazio-fitxategi ezezaguna: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Konfigurazio-fitxategi baliogabea: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "zirrikitua %1% -> zirrikitua %2%: filamentu nahasia"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "filamentu nahasiaren definizioa: filamentu-zirrikituen muga lortu da"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "filamentu-zirrikituen muga lortu da"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "inprimagailuaren filamentu-muga %1% da"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "zirrikitua %1% -> zirrikitua %2%: esleitu gabeko filamentu nahasia (inprimagailuaren filamentu-muga %3% da)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "zirrikitua %1%: esleitu gabeko filamentu nahasia (inprimagailuaren filamentu-muga %2% da)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "zirrikitua %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "zirrikitua %1%: ezin izan da filamentu nahasiaren definizioa inportatu"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "gutxienez bi osagai behar ditu"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "osagaiek falta diren zirrikituak erreferentziatzen dituzte"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "filamentu nahasiaren definizioa: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "zirrikitua %1%: ezin izan da filamentu nahasiaren definizioa inportatu (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "zirrikitua %1%: %2% -> %3% (ordezkoa)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Huts egin du %1% konfigurazio-fitxategia kargatzeak\n"
+"Gomendagarria da lehenik %2% direktorioa garbitzea"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"%1% hornitzailearen konfigurazio-bertsioa: %2% baliogabea da\n"
+"Gomendagarria da lehenik %3% direktorioa garbitzea"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Huts egin du %1% konfigurazio-fitxategia kargatzeak: %2%\n"
+"Gomendagarria da lehenik %3% direktorioa garbitzea"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Ezkutatu erreferentzia-planoak eta ardatzak"
@@ -22441,6 +25144,11 @@ msgstr "Ez dago loditzeko xafla-gorputzik — sortu lehenik gainazal-eragiketa b
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Erreferentzia / Kurba (planoa / ardatza / koord. sistema / helizea / proiektatu)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Planoa"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Erreferentzia-planoa (desplazatua / inklinatua / erdiko planoa / tangentea / bi ertz / kointzidentea)"
@@ -22507,6 +25215,11 @@ msgstr "Mugitu eta/edo biratu lehendik dagoen gorputz bat"
msgid "Transform needs a body — add or import one first"
msgstr "Eraldatu eragiketak gorputz bat behar du — gehitu edo inportatu bat lehenik"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Islatu"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Islatu gorputz bat plano batekiko"
@@ -22600,6 +25313,11 @@ msgstr "(bat ere ez)"
msgid "Hole / thread"
msgstr "Zuloa / haria"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Zuloa"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Egin zulo bat, hautatutako aurpegi batean zentratuta edo plano batean kokatuta"
@@ -22644,6 +25362,11 @@ msgstr "Egin klik 2 puntutan edo lerro / zirkulu / arku batean kota bat jartzeko
msgid "Line / polyline"
msgstr "Lerroa / polilerroa"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Lerroa"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Egin klik hasieran, gero amaieran — gero ezarri luzera zehatza"
@@ -22780,6 +25503,9 @@ msgstr "Spline-a"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Egin klik kontrol-puntuetan; klik bikoitza, eskuineko klik edo Enter amaitzeko"
+msgid "Point"
+msgstr "Puntua"
+
# AI Translated
msgid "Click to place a point"
msgstr "Egin klik puntu bat kokatzeko"
@@ -22898,16 +25624,17 @@ msgstr "Hautatu entitateak, arrastatu angelu-tartearen heldulekua, egin klik kop
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Egin klik zentroan, gero erpin batean — %d alde, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Egin klik zentroan, gero erpin batean — %d alde, zirkunskribatua"
+msgstr[1] "Egin klik zentroan, gero erpin batean — %d alde, zirkunskribatua"
# AI Translated
-msgid "circumscribed"
-msgstr "zirkunskribatua"
-
-# AI Translated
-msgid "inscribed"
-msgstr "inskribatua"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Egin klik zentroan, gero erpin batean — %d alde, inskribatua"
+msgstr[1] "Egin klik zentroan, gero erpin batean — %d alde, inskribatua"
# AI Translated
msgid "Polygon"
@@ -23245,6 +25972,11 @@ msgstr "Aurpegian"
msgid "Thread plane"
msgstr "Hariaren planoa"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Estandarra"
+
# AI Translated
msgid "Pitch"
msgstr "Urratsa"
@@ -23432,6 +26164,9 @@ msgstr "Hautatu aurpegi solido bat irekitzeko, gero ezarri hormaren lodiera."
msgid "(pick a side face)"
msgstr "(hautatu alboko aurpegi bat)"
+msgid "Face"
+msgstr "Aurpegia"
+
# AI Translated
msgid "Draft"
msgstr "Desmoldatze-angelua"
@@ -23810,8 +26545,10 @@ msgstr "Krokisa eguneratu da"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Krokisa sortu da (%zu kota gidari) — hautatu, gero eskuineko klik Estruitu aukeratzeko"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Krokisa sortu da (%zu kota gidari) — hautatu, gero eskuineko klik Estruitu aukeratzeko"
+msgstr[1] "Krokisa sortu da (%zu kota gidari) — hautatu, gero eskuineko klik Estruitu aukeratzeko"
# AI Translated
#, c-format, boost-format
@@ -23948,8 +26685,10 @@ msgstr "Editatzen: Krokisa %d · N = begiratu planoarekiko normalean ·
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "Ados — %zu triangelu"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "Ados — %zu triangelu"
+msgstr[1] "Ados — %zu triangelu"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -24035,10 +26774,18 @@ msgstr "Sareak ez du triangelurik"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Sare honek %d triangelu du. Triangelu bakoitza B-rep aurpegi bihurtzen da aurpegi koplanarrak batu aurretik; beraz, inportatzeak denbora luzea har dezake eta editatzeko motela den gorputz bat utz dezake. Normalean hobe da lehenik sarea dezimatzea.\n"
+"\n"
+"Inportatu hala ere?"
+msgstr[1] ""
"Sare honek %d triangelu ditu. Triangelu bakoitza B-rep aurpegi bihurtzen da aurpegi koplanarrak batu aurretik; beraz, inportatzeak denbora luzea har dezake eta editatzeko motela den gorputz bat utz dezake. Normalean hobe da lehenik sarea dezimatzea.\n"
"\n"
"Inportatu hala ere?"
@@ -24067,8 +26814,8 @@ msgstr "Sare-inportazioak huts egin du: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Solidoa inportatu da — %d triangelu → %d aurpegi, bolumena %.2f mm³. Hautatu aurpegi edo ertz bat, gero Biribildu / Ebaki / Hustu aldatzeko"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Solidoa inportatu da — triangeluak: %d → aurpegiak: %d, bolumena %.2f mm³. Hautatu aurpegi edo ertz bat, gero Biribildu / Ebaki / Hustu aldatzeko"
# AI Translated
#, c-format, boost-format
@@ -24085,8 +26832,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s krokisera gehitu da — Berretsi hura finkatzeko"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — arrastatu kokatzeko/tamaina aldatzeko, gero Berretsi"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — arrastatu kokatzeko/tamaina aldatzeko, gero Berretsi"
# AI Translated
msgid "Insert canceled"
@@ -24293,9 +27042,12 @@ msgid "a geometry operation failed"
msgstr "eragiketa geometriko batek huts egin du"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d hautatuta"
+msgid_plural " · %d picked"
+msgstr[0] " · %d hautatuta"
+msgstr[1] " · %d hautatuta"
# AI Translated
#, c-format, boost-format
@@ -24311,7 +27063,9 @@ msgstr "Hautatu — egin klik entitate batean hura hautatzeko · arrastatu mut
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d hautatuta · orain aukeratu murrizketa bat (Horizontala, Paraleloa, Tangentea, Berdina…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d hautatuta · orain aukeratu murrizketa bat (Horizontala, Paraleloa, Tangentea, Berdina…)"
+msgstr[1] "%d hautatuta · orain aukeratu murrizketa bat (Horizontala, Paraleloa, Tangentea, Berdina…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -24572,7 +27326,9 @@ msgstr "Islatu — ardatza ezarrita · orain egin klik islatu beharreko entita
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Islatu — ardatza ezarrita · %d islatzeko · egin klik beste batean gehitzeko edo kentzeko · Enter-ek aplikatzen du"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Islatu — ardatza ezarrita · %d islatzeko · egin klik beste batean gehitzeko edo kentzeko · Enter-ek aplikatzen du"
+msgstr[1] "Islatu — ardatza ezarrita · %d islatzeko · egin klik beste batean gehitzeko edo kentzeko · Enter-ek aplikatzen du"
# AI Translated
msgid "Move — click the entities to move"
@@ -24695,8 +27451,10 @@ msgstr "Krokis-puntua"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d krokis-entitate"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d krokis-entitate"
+msgstr[1] "%d krokis-entitate"
# AI Translated
msgid "select something first"
@@ -25232,8 +27990,10 @@ msgid "Applied edit"
msgstr "Edizioa aplikatu da"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — idatzi balio bat, sakatu Enter (edo Berretsi)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — idatzi balio bat, sakatu Enter (edo Berretsi)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -25305,10 +28065,23 @@ msgstr "Bidali plakara — bidali solidoa Prestatu fitxara"
msgid "Nothing to commit — add a feature first"
msgstr "Ez dago plakara bidaltzeko ezer — gehitu lehenik eragiketa bat"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Diseinu-gorputza %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Gorputz guztiak ezkutatuta daude — erakutsi bat plakara bidali aurretik"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Diseinu-multzoa"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Diseinu-gorputza"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -25375,8 +28148,10 @@ msgstr "Baliogabea: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Aurrebista — %zu triangelu"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Aurrebista — %zu triangelu"
+msgstr[1] "Aurrebista — %zu triangelu"
# AI Translated
#, c-format, boost-format
@@ -25478,8 +28253,10 @@ msgstr "Kota hori ezin da bete — krokisa gehiegi murriztuta dago"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "Geometria honetan eragin ezin duten murrizketak ez dira kontuan hartzen (elipse edo spline kurba bat, edo zero tamainako zirkulu bat): %1%"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% murrizketa ezin da geometria honetan aplikatu (elipse edo spline kurba bat, edo zero tamainako zirkulu bat) eta ez da kontuan hartzen"
+msgstr[1] "%1% murrizketa ezin dira geometria honetan aplikatu (elipse edo spline kurba bat, edo zero tamainako zirkulu bat) eta ez dira kontuan hartzen"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -25537,8 +28314,10 @@ msgstr "Alakatu: distantziak alde bateko luzera gainditzen du, edo bi lerroak ez
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "Biribiltzeak/alakatzeak baliogabetu eta kendutako murrizketak: %1%"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "Biribiltzeak/alakatzeak baliogabetutako %1% murrizketa kendu da"
+msgstr[1] "Biribiltzeak/alakatzeak baliogabetutako %1% murrizketa kendu dira"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -25558,8 +28337,10 @@ msgstr "Kopia kopuruak zenbaki osoa izan behar du, 2 edo gehiago"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "Transformazioak askatutako murrizketak: %1%"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "Transformazioak askatutako %1% murrizketa"
+msgstr[1] "Transformazioak askatutako %1% murrizketa"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -25710,11 +28491,6 @@ msgstr "Loditu gainazala"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Loditu gainazala eragiketak xafla-gorputz bat behar du — sortu bat lehenik gainazal-tresna batekin"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Zuloa"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -25799,11 +28575,6 @@ msgstr "Errepikapen zirkularra"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Errepikatu gorputza ardatz baten inguruan — ezarri kopurua eta angelu-tartea"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Islatu"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -25840,11 +28611,6 @@ msgstr "Lerrokatu eragiketak gorputz bat behar du — gehitu edo inportatu bat l
msgid "Align the body to a picked face or plane"
msgstr "Lerrokatu gorputza hautatutako aurpegi edo plano batekin"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Planoa"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -25950,11 +28716,6 @@ msgstr "Ezabatu gorputza"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Ezabatu gorputz hau osorik — sortu zuen eragiketa kentzen du"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Lerroa"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -26269,214 +29030,6 @@ msgstr "Letra-tipo honek ez du ingeradarik testu honetarako"
msgid "Size: %.1f × %.1f mm"
msgstr "Tamaina: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Oinarrizko geometria"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Sare hutsa sortu da"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Kutxa"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Azkar:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Zabalera (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Sakonera (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Altuera (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "Beheko R"
-
-# AI Translated
-msgid "Top R"
-msgstr "Goiko R"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "R nagusia"
-
-# AI Translated
-msgid "Minor R"
-msgstr "R txikia"
-
-# AI Translated
-msgid "All edges"
-msgstr "Ertz guztiak"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Goiko ertzak"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Beheko ertzak"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Alboko ertzak"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Sarearen bereizmena"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Gehitu forma"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Ez dago kanpoko profilik"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Ezin izan da kanpoko aurpegia sortu"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Ezin izan da zuloak dituen aurpegia eraiki"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Erreboluzioak huts egin du"
-
-# AI Translated
-msgid "Profile"
-msgstr "Profila"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Hasi profil berri bat (zuloetarako)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segmentuak"
-
-# AI Translated
-msgid "Sides"
-msgstr "Aldeak"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Egin klik mihisean marrazteko"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Atxiki saretara"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Sareta-urratsa"
-
-# AI Translated
-msgid "Outer"
-msgstr "Kanpokoa"
-
-# AI Translated
-msgid "closed"
-msgstr "itxita"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% puntu %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (Goikoa)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (Aurrekoa)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (Albokoa)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Erreboluzio-graduak"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "Ezarri 0 estruitzeko, >0 erreboluzionatzeko"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Poltsa (ebaki)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu profil itxi"
-msgstr[1] "%zu profil itxi"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Marraztu profil itxi bat gaitzeko"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Garbitu dena"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Emaitza hutsa"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Estrusioa: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Erreboluzioa: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Ez dago objekturik hautatuta"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Aurpegiak huts egin du"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Zuloak dituen aurpegiak huts egin du"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Tresnaren sarea hutsik dago"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Poltsa gehitu da (bolumen negatiboa)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Poltsa: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -26598,6 +29151,10 @@ msgstr "Muntatzeko tresna"
msgid "Gizmo brim ears"
msgstr "Belarri ertzen tresna"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Testura-desplazamendua margotzeko tresna"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Graduatzaile bertikala - Mugitu hatz aktiboa gora"
@@ -26832,6 +29389,12 @@ msgstr "aurpegi zilindrikoa behar da bi muturretan — %1% konektorea aurpegi la
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "aurpegi zilindrikoa behar da bi muturretan — %1% konektorea aurpegi kurbatu batean dago"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (oinarrizko planoa falta da)"
+
# AI Translated
msgid "two points are coincident"
msgstr "bi puntuak kointzidenteak dira"
@@ -26860,10 +29423,31 @@ msgstr "planoak paraleloak dira (ez dago ebakidurarik)"
msgid "zero-length direction"
msgstr "luzera nuluko norabidea"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "eragiketa batek %1% gorputzean jarduten du; gorputz hori ez dago historiaren puntu horretan"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "\"%1%\" ezabatu edo ezkutatu den eragiketa batek sortutako gorputz batean ari da lanean"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "\"%1%\" historiaren puntu horretan existitzen ez den gorputz batean ari da lanean"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "geroagoko eragiketa batek erabiltzen du eragiketa hau"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "\"%1%\" eragiketak \"%2%\" erabiltzen du; beraz, ezin da hura baino lehen egon"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "krokis-entitateek ez dute begizta itxirik osatzen"
@@ -26874,9 +29458,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Irekita hemen: (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...eta beste %1% mutur ireki"
+msgid "Open ends not shown: %1%"
+msgstr "Erakutsi gabeko mutur irekiak: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "erreboluzioa: ardatz-lerroa ez dago dagoeneko krokisean — aukeratu ardatza berriro"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "erreboluzioa: ardatz-lerroak ez du luzerarik"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -27024,6 +29617,30 @@ msgstr "zuloaren alanbreak huts egin du"
msgid "hole cut failed"
msgstr "zuloaren ebaketak huts egin du"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "haria: diametroak gutxienez 1 mm izan behar du"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "haria: urratsak 0.1 mm baino gehiago izan behar du"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "haria: sakonerak 0 eta 0.7 x urratsa artean egon behar du"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "haria: sakonera handiegia da diametro honetarako"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "haria: luzerak urratsaren erdia baino gehiago izan behar du"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "haria: bira gehiegi (luzera / urratsa 400 baino txikiagoa izan behar da)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "barne-hariak gorputz bat behar du"
@@ -27084,6 +29701,22 @@ msgstr "delete_face eragiketak huts egin du"
msgid "delete_face produced no geometry"
msgstr "delete_face eragiketak ez du geometriarik sortu"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "boolearra: ez dago helburuko gorputzik"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "boolearra: ez dago tresna-gorputzik — aukeratu bigarren gorputz bat"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "boolearra: helburua eta tresna gorputz bera dira"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "boolearra: gorputz batek ez du geometriarik"
+
# AI Translated
msgid "boolean operation failed"
msgstr "eragiketa boolearrak huts egin du"
@@ -27414,6 +30047,10 @@ msgstr "Modeloaren irudiak"
msgid "Auxiliaries"
msgstr "Lagungarriak"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Zintaren purgatze-dorrea"
+
# AI Translated
msgid "Project Filament List"
msgstr "Proiektuko filamentu-zerrenda"
@@ -27448,8 +30085,18 @@ msgstr "Gutxienez material mota bereko bi filamentu behar dira deskonposatzeko"
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "Material-zerrendak gehienez %1% kolore onartzen ditu. %2% deskonposatu ondoren, material kopuruak %1% gaindituko luke. Ezabatu erabiltzen ez diren filamentuak pantaila nagusian deskonposatu aurretik."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Material-zerrendak gehienez %1% kolore onartzen du. Material-zerrenda deskonposatu ondoren, material kopuruak %1% gaindituko luke. Ezabatu erabiltzen ez diren filamentuak pantaila nagusian deskonposatu aurretik."
+msgstr[1] "Material-zerrendak gehienez %1% kolore onartzen ditu. Material-zerrenda deskonposatu ondoren, material kopuruak %1% gaindituko luke. Ezabatu erabiltzen ez diren filamentuak pantaila nagusian deskonposatu aurretik."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Material-zerrendak gehienez %1% kolore onartzen du. %2% deskonposatu ondoren, material kopuruak %1% gaindituko luke. Ezabatu erabiltzen ez diren filamentuak pantaila nagusian deskonposatu aurretik."
+msgstr[1] "Material-zerrendak gehienez %1% kolore onartzen ditu. %2% deskonposatu ondoren, material kopuruak %1% gaindituko luke. Ezabatu erabiltzen ez diren filamentuak pantaila nagusian deskonposatu aurretik."
# AI Translated
msgid "Cyan"
@@ -27479,6 +30126,13 @@ msgstr "Berdea"
msgid "Blue"
msgstr "Urdina"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -27486,7 +30140,1235 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "Uneko filamentu-zerrendan ez dago %s. Filamentu nahasiak behar duen proiektuko filamentu bat automatikoki sortuko da deskonposatu ondoren."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "Uneko filamentu-zerrendan ez dago %s. Filamentu nahasiak behar duen proiektuko filamentu bat automatikoki sortuko da deskonposatu ondoren."
+msgstr[1] "Uneko filamentu-zerrendan ez dago %s. Filamentu nahasiak behar dituen proiektuko filamentuak automatikoki sortuko dira deskonposatu ondoren."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Opakutasuna"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -27582,10 +31464,6 @@ msgstr "Nire ezarpenak"
msgid "Custom Printer Setup"
msgstr "Inprimagailu pertsonalizatuaren konfigurazioa"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Inprimagailu pertsonalizatua"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Definitu inprimagailu-profil pertsonalizatu bat"
@@ -27853,6 +31731,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Finkatu"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Idatzi balio zehatz bat graduatzaile batean"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Graduatzailearen eskuineko muturreko edizio-ikonoa"
+
# AI Translated
msgid "Texture displacement"
msgstr "Testura-desplazamendua"
@@ -27989,6 +31875,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Kendu testura"
+# AI Translated
+msgid "Adjust image"
+msgstr "Doitu irudia"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Distira"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Kontrastea"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Zorroztasuna"
+
+# AI Translated
+msgid "Blur"
+msgstr "Lausotzea"
+
+# AI Translated
+msgid "Hue"
+msgstr "Tonua"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Irudiaren xehetasun finenak nabarmentzen ditu. Lausotzearen ondoren aplikatzen da, beraz biak batera erabil daitezke: lausotu orbanak, eta gero zorroztu gelditzen diren ertzak."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Irudia bera lausotzen du. Testura-geruzaren Leuntzen graduatzaileak erliebea leuntzen du irudia aldatu gabe, eta lehenik hura erabili beharko zenuke."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Testura hau gris-eskalakoa da, beraz ez du aldatzeko tonurik."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Modeloa graduatzailea askatzen duzunean eguneratzen da. Gorde kopia gisa aukerak doitutako irudia zure testura-liburutegian gordetzen du eta testura-geruza hau hartara bideratzen du."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Gorde kopia gisa"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Kendu testura-desplazamenduko geruza"
@@ -28125,6 +32055,15 @@ msgstr "Idatzi kapturatutako fase bakoitza OBJ fitxategi gisa, sare-ikustaile ba
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Ezin izan da margotutako eremua birsaretutako modelora eraman; beraz, ez da ezer aldatu. Aldatu Pro modura eta birsaretu margotu aurretik."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Barrutia: %1% eta %2% artean"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Idatzi balio bat arrastatu beharrean. Graduatzailean Ctrl+klik eginez gauza bera egiten da."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -28231,8 +32170,8 @@ msgid "Click a triangle to paint it"
msgstr "Egin klik triangelu batean hura margotzeko"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Geruza aktiboak Zabaldu (LSCM) mapaketa izan behar du."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Zabaldu (LSCM) bidez mapatutako testura-geruza baterako soilik - ezarri testura-geruza aktiboaren Mapaketa \"Zabaldu\" gisa ikuspegi hau erabiltzeko."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -28247,16 +32186,16 @@ msgid "Checker"
msgstr "Xake-taula"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Xake-taula - proba-sareta bat testuraren ordez. Laukiak karratu mantentzen diren lekuetan testura ez da deformatzen; luzatzen diren lekuetan, testura ere luzatuko da"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Xake-taula - proba-sareta bat testuraren ordez. Laukiak karratu mantentzen diren lekuetan testura ez da deformatzen; luzatzen diren lekuetan, testura ere luzatuko da. UV editorea irekitzen du itxita badago"
# AI Translated
msgid "Distortion"
msgstr "Distortsioa"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Distortsioa - luzapenaren bero-mapa, urdinetik gorrira, zabaltzearen gainean"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Distortsioa - luzapenaren bero-mapa, urdinetik gorrira, zabaltzearen gainean. UV editorea irekitzen du itxita badago"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -28282,6 +32221,10 @@ msgstr "Aukeratu beste irudi bat geruza honetarako. Margoa, sakonera eta lauzake
msgid "not painted"
msgstr "margotu gabe"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Distira, kontrastea, zorroztasuna, lausotzea eta tonua, ezartzen dituzun heinean irudian eta modeloan erakutsita. Gorde kopia gisa aukerak emaitza zure testura-liburutegian gordetzen du eta testura-geruza hau hartara bideratzen du."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Mugitu gora - lehenago aplikatzen da"
@@ -28302,10 +32245,20 @@ msgstr "Erliebearen altuera: testurako zuriak gainazala zenbat altxatzen duen, m
msgid "Tile size"
msgstr "Lauzaren tamaina"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Modeloaren UV diseinuak berak mapatzen du, eta hori da jada kokapena - testuraren kopia batek zehazki estaltzen du, beraz ez dago ezartzeko lauzaren tamainarik."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Testuraren kopia batek modeloan duen zabalera. Txikiagoak patroia maizago errepikatzen du eta xehetasuna finagoa egiten du; Lauzatu desaktibatuta dagoenean, kopia bakarraren tamaina da."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Testura gainazalean biratzen du, gradutan - patroi bat modeloaren ertz batekin lerrokatzeko."
@@ -28373,28 +32326,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Bi filamentu tartekatzen ditu tarteko koloreak simulatzeko; horrela, filamentu gutxi batzuekin argazki bat edo gradiente bat estal daiteke. Kolore lauko irudi bat berdin inprimatzen da bi kasuetan. Desaktibatuta, filamentu bat erabiltzen da eremu bakoitzeko."
# AI Translated
-msgid "Mix by"
-msgstr "Nahasteko modua"
+msgid "Mixed colors"
+msgstr "Kolore nahasiak"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Gainazala"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Finkatze batek gehi ditzakeen filamentu nahasien gehieneko kopurua. Testuraren koloreetatik aukeratzen dira, eta finkatzeak benetan erabiltzen dituenak soilik sortzen dira."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Geruzak: bi filamentuak inprimatze-geruzen artean txandakatzen dira; horrek leun nahasten ditu gainazal zutikoetan, baina gainazal lauetan desagertzen da, geruza oso bat banda bakarra baita.\n"
-"Gainazala: xake-taula fin bat gainazalean zehar; edozein angelutan funtzionatzen du, baina nahasketa baino testura gisa irakur daiteke.\n"
-"Automatikoa: geruzak aurpegi zutikoetan; aurpegi lauek filamentu bakar hurbilena hartzen dute, han xake-taula patroi gisa ikusten baita."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% kolore inprimagarri, %2% filamentutatik"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "%1% filamentutik"
+msgstr[1] "%1% filamentutik"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% kolore inprimagarri %2%"
+msgstr[1] "%1% kolore inprimagarri %2%"
# AI Translated
msgid "Denoise"
@@ -28445,6 +32404,18 @@ msgstr "Ikuspegitik"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Ikuspegitik - zuzenean proiektatzen du margotutako eremuaren gainean begiratzen ari zaren lekutik, diapositiba-proiektore batek bezala."
+# AI Translated
+msgid "Model UV"
+msgstr "Modeloaren UV"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "Modeloaren UV - modeloak berak dakartzan testura-koordenatuak erabiltzen ditu, eta horrela modelo horretarako egindako testura margotu zen lekuan bertan gelditzen da. Ez da ezer zabaltzen, eta Lauzaren tamaina ez da aplikatzen: modeloaren diseinua bera da kokapena."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Modelo honek ez du berezko testura-koordenaturik. UV kanala duen modelo inportatu bat bakarrik - esaterako, testuradun OBJ bat - mapa daiteke horien bidez."
+
# AI Translated
msgid "Open UV editor"
msgstr "Ireki UV editorea"
@@ -28459,8 +32430,10 @@ msgstr "Oraindik zabaldu gabe"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% uharte"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% uharte"
+msgstr[1] "%1% uharte"
# AI Translated
msgid "Capture current view"
@@ -28490,10 +32463,6 @@ msgstr "Proiekzio-markoa"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Modeloaren gainean arrastatzen duzun leiho bat irekitzen du. Haren bidez ikus dezakezun guztiak jasotzen du testura, eta haren ertza proiekzioaren muga bihurtzen da."
-# AI Translated
-msgid "Opacity"
-msgstr "Opakutasuna"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Markoaren leihoa zenbateraino ikusten den solido kokatzen duzun bitartean. Jaitsi modeloa haren bidez ikusteko; ez dio emaitzari eragiten."
@@ -28547,6 +32516,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Gehitu"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Ordeztu"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -28566,8 +32540,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Oinarrizko geruzak ez du azpian konbinatzeko ezer; beraz, beti gehitzen du."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Geruza honek zer egiten duen azpikoekin gainjartzen den lekuan. Gehitu eta Kendu aukerek erliebea pilatzen edo zizelkatzen dute. Biderkatu eta Zatitu aukerek azpian dagoena eskalatzen dute; horrek geruza hau haren gaineko maskara bihurtzen du - kasu horretan, Sakonerak indar gisa jokatzen du, eta 1 mm-k eremu zuriak ukitu gabe uzten ditu."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Geruza honek zer egiten duen azpikoekin gainjartzen den lekuan. Gehitu eta Kendu aukerek erliebea pilatzen edo zizelkatzen dute. Ordeztu aukerak azpikoak ordezkatzen ditu, beraz margotuta dagoen lekuan geruza honen erliebea soilik geratzen da. Biderkatu eta Zatitu aukerek azpian dagoena eskalatzen dute; horrek geruza hau haren gaineko maskara bihurtzen du - kasu horretan, Sakonerak indar gisa jokatzen du, eta 1 mm-k eremu zuriak ukitu gabe uzten ditu."
# AI Translated
msgid "Adjust placement"
@@ -28591,8 +32565,10 @@ msgstr "Ezarpen gehiago"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "%1% geruza guztiak erabilita"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "%1% geruza guztia erabilita"
+msgstr[1] "%1% geruza guztiak erabilita"
# AI Translated
msgid "Add layer"
@@ -28672,8 +32648,10 @@ msgstr "Triangelu-aurrekontua: ezarri behean, Triangeluak aukerarekin."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Aurrebista: %1% triangelu"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Aurrebista: %1% triangelu"
+msgstr[1] "Aurrebista: %1% triangelu"
# AI Translated
msgid "Steps"
@@ -28715,6 +32693,12 @@ msgstr "Birsaretzea"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Modelo osoa berreraikitzeko erabiltzen den triangelu-tamaina, milimetrotan. Desplazamenduak sare uniforme batean funtzionatzen du ondoen; honek bihurtzen du inportazio irregular bat sare uniforme."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Mantendu ertz zorrotzak"
@@ -28849,14 +32833,6 @@ msgstr "%1% triangelu inguru behar ditu, aurrekontua %2% - finkatzeak berriro si
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Fintzeak modeloari zenbat mila triangelu gehi diezazkiokeen. Okerren egokitzen den triangelua zatitzen da beti lehenik; beraz, guztia gastatzen duen exekuzio batek ere gehien nabaritzen den lekuan gastatu du. Igo ezazu erliebeak oraindik lodia ematen badu."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Finkatzea gelditzen du. Dagoeneko amaitu duena modeloan geratzen da, eta desegin daiteke."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Tresna ixten du finkatu gabe. Zure margoa, geruzak eta ezarpenak modeloarekin geratzen dira."
-
# AI Translated
msgid "Preparing..."
msgstr "Prestatzen..."
@@ -28881,35 +32857,56 @@ msgstr "Bihurtu margotutako altuera-mapak benetako geometria, dagoeneko dauden e
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Bihurtu margotutako altuera-mapak benetako geometria. Sarea lehenik dentsitate uniformera birsaretzen da eta testura tolesten den lekuan fintzen da, xehetasunak erpinak izan ditzan - dena urrats bakarrean."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Finkatzea gelditzen du. Dagoeneko amaitu duena modeloan geratzen da, eta desegin daiteke."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Tresna ixten du finkatu gabe. Zure margoa, geruzak eta ezarpenak modeloarekin geratzen dira."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Modeloa: %1% triangelu - finkatzeak goiko bereizmeneraino fintzen du, bere aurrekontuaren mugaraino"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Modeloa: %1% triangelu - finkatzeak goiko bereizmeneraino fintzen du, bere aurrekontuaren mugaraino"
+msgstr[1] "Modeloa: %1% triangelu - finkatzeak goiko bereizmeneraino fintzen du, bere aurrekontuaren mugaraino"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Finkatzeak lehendik dauden erpinak mugitzen ditu - modeloak %1% triangelu izaten jarraitzen du"
+msgstr[1] "Finkatzeak lehendik dauden erpinak mugitzen ditu - modeloak %1% triangelu izaten jarraitzen du"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Finkatzeak lehendik dauden erpinak mugitzen ditu - modeloak %1% triangelu izaten jarraitzen du"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Finkatzearen emaitza: ~%1% k triangelu gehienez"
+msgstr[1] "Finkatzearen emaitza: ~%1% k triangelu gehienez"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Finkatzearen emaitza: ~%1% k triangelu gehienez"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% geruza margotu gabe, saltatuta"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% geruza margotu gabe, saltatuta"
+msgstr[1] "%1% geruza margotu gabe, saltatuta"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% margotu gabe, saltatuta"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% margotu gabe, saltatuta"
+msgstr[1] "%1% margotu gabe, saltatuta"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -28927,6 +32924,10 @@ msgstr "Testura-desplazamenduaren edizioa"
msgid "Choose SLA archive:"
msgstr "Aukeratu SLA artxiboa:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "SL1 / SL1S artxibo-fitxategiak"
+
# AI Translated
msgid "Import file"
msgstr "Inportatu fitxategia"
@@ -29097,6 +33098,34 @@ msgstr "Filamentu-pluginak"
msgid "Printer plugins"
msgstr "Inprimagailu-pluginak"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Aurrezarpen honek ez du plugin-gaitasunik erabiltzen"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Aurrezarpen honek erabiltzen dituen gaitasunak"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Gaitasunaren konfigurazioa (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Pluginaren konfigurazioa"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Baztertu aurrezarpen honen gainidazketa eta erabili berriro konfigurazio globala"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Leheneratu lehenetsiak"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "JSON baliogabea"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "Konfigurazioa ez da baliozko JSON bat. Zure aldaketak ez dira gorde."
@@ -29116,10 +33145,6 @@ msgstr ""
"\n"
"Honek aurrezarpenaren gainidazketa baztertzen du eta konfigurazio globala erabiltzen du."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Leheneratu lehenetsiak"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Konfigurazio globala erabiltzen. Gorde aurrezarpena iraunarazteko."
@@ -29145,10 +33170,6 @@ msgstr "Utzi harpidetza"
msgid "Overwrite Plugin"
msgstr "Gainidatzi plugina"
-# AI Translated
-msgid "Show in folder"
-msgstr "Erakutsi karpetan"
-
# AI Translated
msgid "Reinstall"
msgstr "Berrinstalatu"
@@ -29157,6 +33178,10 @@ msgstr "Berrinstalatu"
msgid "Delete cache and reload"
msgstr "Ezabatu cachea eta birkargatu"
+# AI Translated
+msgid "No description."
+msgstr "Ez dago deskribapenik."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Hautatu .py edo .whl plugin-pakete bat."
@@ -29189,6 +33214,292 @@ msgstr "Plugina instalatzen"
msgid "Installed \"%s\"."
msgstr "\"%s\" instalatu da."
+# AI Translated
+msgid "Search plugins"
+msgstr "Bilatu pluginak"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Garbitu bilaketa"
+
+# AI Translated
+msgid "Match case"
+msgstr "Bereizi maiuskulak eta minuskulak"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Hitz osoak soilik"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Plugina instalatzeko aukera gehiago"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Instalatu plugina"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Instalatu plugin lokala"
+
+# AI Translated
+msgid "Activate"
+msgstr "Aktibatu"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Ordenatu izenaren arabera"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Ordenatu bertsioaren arabera"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Pluginaren bertsioa"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Ordenatu jatorriaren arabera"
+
+# AI Translated
+msgid "Source"
+msgstr "Jatorria"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Ordenatu egoeraren arabera"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Egoera"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Arrastatu tamaina aldatzeko; klik bikoitza berrezartzeko"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Aldatu plugin-zerrendaren tamaina"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Pluginaren xehetasunak"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Pluginaren informazioa"
+
+# AI Translated
+msgid "Description"
+msgstr "Deskribapena"
+
+# AI Translated
+msgid "Config"
+msgstr "Konfigurazioa"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Aldaketa-erregistroa"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnostikoak"
+
+# AI Translated
+msgid "Types"
+msgstr "Motak"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Instalatutako bertsioa"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Azken bertsioa"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Eguneratu azken bertsiora"
+
+# AI Translated
+msgid "No description available"
+msgstr "Ez dago deskribapenik"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Hautatu plugin bat haren gaitasunak konfiguratzeko"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Gaitasun konfiguragarriak"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Baztertu gaitasun honetarako gordetako ezarpenak eta leheneratu pluginaren balio lehenetsiak"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Pluginaren aldaketa-erregistroa"
+
+# AI Translated
+msgid "Date"
+msgstr "Data"
+
+# AI Translated
+msgid "Changes"
+msgstr "Aldaketak"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Ez dago aldaketa-erregistrorik"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Ez da arazorik hauteman"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Ez da pluginik aurkitu"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Ez dago \"%s\" bilaketarekin bat datorren pluginik"
+
+# AI Translated
+msgid "Mine"
+msgstr "Nirea"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Harpidetuta"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Umezurtza"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Tokikoa"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Pluginaren gaitasun batzuk gaituta daude"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Tolestu %s pluginaren gaitasunak"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Zabaldu %s pluginaren gaitasunak"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Tolestu gaitasunak"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Zabaldu gaitasunak"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Ireki plugin hau zure nabigatzailean"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Gaitasunak: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Gaitasunak"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Exekutatu \"%s\""
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Gaitu %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Eguneratzeetarako baimenik gabe"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Plugina kargatzen…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Plugin honek ez du gaitasunik eskaintzen"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Aktibatu plugin hau haren gaitasunak konfiguratzeko"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Ikusi OrcaCloud-en hemen "
+
+# AI Translated
+msgid "Activated"
+msgstr "Aktibatuta"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Exekuzio-errorea"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Inaktibo"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Plugin hau aktibo dago eta erabiltzeko prest."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Plugin hau oraindik kargatzen ari da."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Plugin hau blokeatuta dago bere errorea konpondu arte."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Plugin hau kargatuta dago, baina gaitasun batek errore bat jakinarazi du."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Plugin hau inaktibo dago. Aktibatu instalatzeko edo kargatzeko."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Hautatu plugin bat haren egoera eta xehetasunak ikusteko."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Umezurtza: plugin honen harpidetza jada ez dago aktibo, edo ez dago erabilgarri OrcaCloud-en. Kopia lokala instalatuta geratzen da eta oraindik erabil daiteke."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Pluginaren bertsio berriago bat dago erabilgarri."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Hodeiko eguneratzeak ez daude erabilgarri, plugin honek ez duelako eguneratzeetarako baimenik."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -29405,6 +33716,70 @@ msgstr "Ezin izan da plugina birkargatu."
msgid "Reloaded \"%s\"."
msgstr "\"%s\" birkargatu da."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Inprimagailuaren konexioa"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Konfiguratu inprimagailuaren konexioa gailua ikusteko."
+
+# AI Translated
+msgid "No model information"
+msgstr "Ez dago modeloaren informaziorik"
+
+# AI Translated
+msgid "Edit Project Info"
+msgstr "Editatu proiektuaren informazioa"
+
+# AI Translated
+msgid "Model Information"
+msgstr "Modeloaren informazioa"
+
+# AI Translated
+msgid "Accessories"
+msgstr "Osagarriak"
+
+# AI Translated
+msgid "Profile Information"
+msgstr "Profilaren informazioa"
+
+# AI Translated
+msgid "Model name"
+msgstr "Modeloaren izena"
+
+# AI Translated
+msgid "Created by"
+msgstr "Sortzailea"
+
+# AI Translated
+msgid "Remixed by"
+msgstr "Remix-egilea"
+
+# AI Translated
+msgid "Shared by"
+msgstr "Partekatzailea"
+
+# AI Translated
+msgid "Model description"
+msgstr "Modeloaren deskribapena"
+
+# AI Translated
+msgid "BOM"
+msgstr "Materialen zerrenda"
+
+# AI Translated
+msgid "Profile name"
+msgstr "Profilaren izena"
+
+# AI Translated
+msgid "Profile Author"
+msgstr "Profilaren egilea"
+
+# AI Translated
+msgid "Profile description"
+msgstr "Profilaren deskribapena"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Purgatze-moduaren ezarpenak"
@@ -29429,6 +33804,19 @@ msgstr "Purgatze-hondakinak murrizten ditu eta azkarrago inprimatzen du. Kolore-
msgid "Terminal"
msgstr "Terminala"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... edo uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Plugin-terminala prest."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Prozesua irten da kode honekin: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Komando bat exekutatzen ari da dagoeneko."
@@ -29475,8 +33863,10 @@ msgstr "Filamentu nahasi berriak"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Proiektuak gehienez %d filamentu onartzen ditu. Gainerako filamentuak baztertu egingo dira."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Proiektuak gehienez %d filamentu onartzen du. Gainerako filamentuak baztertu egingo dira."
+msgstr[1] "Proiektuak gehienez %d filamentu onartzen ditu. Gainerako filamentuak baztertu egingo dira."
# AI Translated
msgid "Import Model"
@@ -29563,8 +33953,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Kalkuluak huts egin du. Doitu parametroak eta saiatu berriro."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "Sareak geometria ez-manifolda edo muga irekiak ditu. Dagoen bezala inporta dezakezu edo Windows-en 3D konponketa-zerbitzuarekin konpondu inportatu aurretik."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "Sareak geometria ez-manifolda edo muga irekiak ditu. Dagoen bezala inporta dezakezu edo konpondu inportatu aurretik."
# AI Translated
msgid "Mesh repair"
@@ -29578,14 +33968,6 @@ msgstr "Inportatu konpondu gabe"
msgid "Repair and import"
msgstr "Konpondu eta inportatu"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Kontuan izan sareak geometria ez-manifolda edo muga irekiak dituela."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Sarearen arazoa"
-
# AI Translated
msgid "The selected image is empty."
msgstr "Hautatutako irudia hutsik dago."
@@ -29594,6 +33976,14 @@ msgstr "Hautatutako irudia hutsik dago."
msgid "Failed to prepare the texture for use."
msgstr "Ezin izan da testura erabiltzeko prestatu."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Ezin izan da inportatutako testuren karpeta sortu."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Ezin izan da inportatutako testura gorde."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Zuk inportatutako testurak soilik ken daitezke."
@@ -29602,18 +33992,10 @@ msgstr "Zuk inportatutako testurak soilik ken daitezke."
msgid "Could not delete the texture file."
msgstr "Ezin izan da testura-fitxategia ezabatu."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Ezin izan da inportatutako testuren karpeta sortu."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Ezin izan da hautatutako irudia kargatu."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Ezin izan da inportatutako testura gorde."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Ezin izan da testura-fitxategia irakurri."
@@ -29657,8 +34039,10 @@ msgstr "Aukeratu Zabaldu testura-geruza baten mapaketa gisa haren UVak hemen edi
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d erpin hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d erpin hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu"
+msgstr[1] "%d erpin hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29666,8 +34050,10 @@ msgstr "Erpin modua: arrastatu erpin bat forma aldatzeko | Shift/Ctrl klik = h
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d ertz hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d ertz hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu"
+msgstr[1] "%d ertz hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29675,8 +34061,10 @@ msgstr "Ertz modua: arrastatu uharte baten ertza forma aldatzeko | Shift/Ctrl
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d uharte hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu, R/S = biratu/eskalatu nagusia"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d uharte hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu, R/S = biratu/eskalatu nagusia"
+msgstr[1] "%d uharte hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu, R/S = biratu/eskalatu nagusia"
# AI Translated
#, c-format, boost-format
@@ -29695,6 +34083,10 @@ msgstr " | atxikitzea AKTIBATUTA"
msgid "Change texture - choose another one from the texture library"
msgstr "Aldatu testura - aukeratu beste bat testura-liburutegitik"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Testura-geruza aktiboaren lauzaren tamaina: testuraren errepikapen batek modeloaren zenbat estaltzen duen. Oihala lauzatan neurtzen da; beraz, sareta-gelaxka bat errepikapen bat da. Aldatu testura-geruzaren ezarpenetako Lauzaren tamaina aukeraren bidez."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Altuera-mapa - erakutsi geruzaren testura uharteen azpian"
@@ -29728,16 +34120,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Antolatu zabaltzea garapen konektatu gisa: ertz bat partekatzen duten zatiak elkarren ondoan zabaltzen dira (kubo bat garapen elkartu bihurtzen da, sei karratu solte izan beharrean). Uharte bereiziak izaten jarraitzen dute; beraz, gero edozein eskuz mugi dezakezu."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Uhartea - mugitu, biratu eta eskalatu uharte osoak"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Uhartea - lan egin uharte osoekin. Egin klik batean hautatzeko, eta gero arrastatu mugitzeko, arrastatu eskuineko botoiarekin biratzeko, edo sakatu R saguarekin biratzeko eta S eskalatzeko (klik edo Enter berresteko, Esc bertan behera uzteko)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Erpina - arrastatu erpinak forma aldatzeko; Shift/Ctrl hautaketa anitzerako"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Erpina - arrastatu erpinak uharte baten forma eskuz aldatzeko; Shift-ek hautaketara gehitzen du, Ctrl-ek bat hautaketan sartu edo ateratzen du."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Ertza - arrastatu ertzak forma aldatzeko; Shift/Ctrl hautaketa anitzerako"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Ertza - arrastatu ertzak uharte baten forma eskuz aldatzeko; Shift-ek hautaketara gehitzen du, Ctrl-ek bat hautaketan sartu edo ateratzen du."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -29776,8 +34168,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Atxiki - itsatsi uharteak bata bestearen kontra arrastatzean"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Enkoadratu uharte guztiak (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Enkoadratu uharte guztiak, denak ikuspegian sartuz (Home edo F).\n"
+"Oihaleko beste edozein lekutan: korritu kurtsorearen inguruan zooma egiteko, eta arrastatu erdiko botoiarekin - edo arrastatu leku hutsa - desplazatzeko."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Zer dagoen hautatuta, eta mugimenduaren, biraketaren edo eskalaren zifra zehatzak arrastatzen ari zaren bitartean."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -29788,6 +34188,10 @@ msgstr "Ez dago Zabaldu mapaketa duen geruzarik"
msgid "%.1f mm tile"
msgstr "%.1f mm-ko lauza"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Panelak testura-geruza aktiboari jarraitzen dio, eta geruza horrek Zabaldu (LSCM) bidez mapatuta egon behar du. Gehitu testura-geruza bat eta ezarri haren Mapaketa \"Zabaldu\" gisa."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Zaharkituta - margoa, ebaki-lerroak edo ebaki-angelua aldatu dira zabaltze hau egin zenetik. Sakatu berriro zabaltzeko."
@@ -29796,19 +34200,74 @@ msgstr "Zaharkituta - margoa, ebaki-lerroak edo ebaki-angelua aldatu dira zabalt
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Lautu margotutako eremua UV uharteetan. Hau sakatzen duzunean soilik kalkulatzen da, ez edizio bakoitzean; beraz, margotu, aldatu ebaki-angelua edo markatu ebaki-lerroak lehenik, eta gero sakatu Zabaldu."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Aktibatu lehenik \"Markatu ebaki-lerroak\" - Bidea ebaki-lerroak markatzeko modu azkarragoa da."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Ez dago ebaki-lerrorik markatuta testura-geruza honetan."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Ez da uharteen formarik eskuz aldatu; beraz, ez dago baztertzeko ezer."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d uharte, %s aurpegi"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d uharte"
+msgstr[1] "%d uharte"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s aurpegi"
+msgstr[1] "%s aurpegi"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Margotutako eremua nola atera den zabaltzetik: zenbat zati bereizitan ebaki den (ebaki-lerroetan eta ebaki-angelua baino zorrotzagoak diren ertzetan), eta guztira zenbat triangelu dituzten."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Sakatu lehenik Zabaldu - oraindik ez dago lantzeko uharterik."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Egin klik lehenik oihaleko uharte batean, Uhartea moduan."
+
+# AI Translated
+# Needs human review: Short badge for 'published' derived from Argitaratu (Publish); kept to about three letters. Check it fits the badge.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "ARG"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Saioa hasi gabe"
+
+# AI Translated
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Bambu Network plugina ez da detektatu. Egin klik hemen instalatzeko."
+
+# AI Translated
+msgid "Create new project"
+msgstr "Sortu proiektu berria"
+
+# AI Translated
+msgid "Recently opened"
+msgstr "Azkenaldian irekiak"
+
+# AI Translated
+msgid "Open Containing Folder"
+msgstr "Ireki fitxategia duen karpeta"
# AI Translated
msgid "Forward"
msgstr "Aurrera"
-# AI Translated
-msgid "Tools"
-msgstr "Tresnak"
-
# AI Translated
msgid "View Source"
msgstr "Ikusi iturburua"
@@ -29880,6 +34339,75 @@ msgstr "Kargatu %1% hona: %2%"
msgid "Load %s"
msgstr "Kargatu %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "'%1%' inprimagailu-agentea ezin izan da gaitu: '%2%' agentearen IDa dagoeneko erregistratuta dago '%3%' gaitasunean ('%4%' plugina)."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "'%1%' inprimagailu-agentea ezin izan da gaitu: '%2%' agentearen IDa dagoeneko erregistratuta dago hemen: '%3%'."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Fitxategia igota"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "G-codea igotzen..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Inprimaketa hasten..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Inprimaketa hasi da"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Igotzen..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Ez da sare-liburutegiaren bertsioa zehaztu"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Ez da sare-liburutegia aurkitu"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Ezin izan da sare-liburutegia kargatu"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Sare-liburutegiak huts egin du kargatzean"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Plugin serie zaharrago bat. Plugin berriago baten laguntza behar duten eginbideak, hala nola inprimaketa-hutsegiteen argazkiak gailuaren erroreen elkarrizketa-koadroan, ez daude erabilgarri."
+
+# AI Translated
+msgid "unknown name"
+msgstr "izen ezezaguna"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"\"%s\" pluginak fitxategi-sistemako irakurketa-sarbidea eskatzen du hemen:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Pluginaren baimenak"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -29894,36 +34422,60 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"\"%s\" pluginak fitxategi hau irakurtzeko baimena eskatzen du:\n"
+"%s"
+msgstr[1] ""
"\"%s\" pluginak fitxategi hauek irakurtzeko baimena eskatzen du:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"\"%s\" pluginak fitxategi hau irakurtzeko/idazteko baimena eskatzen du:\n"
+"%s"
+msgstr[1] ""
"\"%s\" pluginak fitxategi hauek irakurtzeko/idazteko baimena eskatzen du:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"\"%s\" pluginak fitxategi hau sortzeko baimena eskatzen du:\n"
+"%s"
+msgstr[1] ""
"\"%s\" pluginak fitxategi hauek sortzeko baimena eskatzen du:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"\"%s\" pluginak fitxategi hau ezabatzeko baimena eskatzen du:\n"
+"%s"
+msgstr[1] ""
"\"%s\" pluginak fitxategi hauek ezabatzeko baimena eskatzen du:\n"
"%s"
@@ -29948,10 +34500,30 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"\"%s\" pluginak komando hau exekutatzeko baimena eskatzen du:\n"
+"%s"
+msgstr[1] ""
+"\"%s\" pluginak komando hauek exekutatzeko baimena eskatzen du:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "\"%s\" plugina exekuzio-hari bat sortzeko baimena eskatzen ari da."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"\"%s\" pluginak komando hauek exekutatzeko baimena eskatzen du:\n"
+"\"%s\" plugina exekutatzen ari den aplikazioa honekin ordezkatzeko eskatzen ari da:\n"
"%s"
# AI Translated
@@ -29963,6 +34535,46 @@ msgstr "\"%s\" pluginak baimena eskatzen du \"%s\" Python ikuskaritza-gertaerara
msgid "Plugin permission request"
msgstr "Pluginaren baimen-eskaera"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "Aurrezarpenak pluginaren gaitasun-konfigurazioaren JSON baliogabea gordetzen du."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "Aurrezarpenaren pluginaren gaitasun-konfigurazioa ez da array bat eta ezin da editatu."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Inprimagailuaren konexioa"
+
+# AI Translated
+msgid "Pages"
+msgstr "Orriak"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Analisia"
+
+# AI Translated
+msgid "Importer"
+msgstr "Inportatzailea"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Esportatzailea"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Bistaratzea"
+
+# AI Translated
+msgid "Script"
+msgstr "Scripta"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Xerratze-kanalizazioa"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "Pluginaren konfigurazio-interfazea hutsik zegoen. Editore lehenetsia erakusten."
@@ -29985,8 +34597,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Ezin izan da konfigurazioa diskoan idatzi. Ez da ezer aldatu."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Pluginaren instalazioak huts egin du"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Pluginaren instalazioak huts egin du: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: instalatutako plugina ez da katalogoan aurkitu."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "Hodeiko pluginaren gakoak UUID falta du."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Ezin izan da hodeiko pluginaren harpidetza egin; ikusi erregistroak informazio gehiagorako."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Hodeiko pluginen harpidetza bakarrik utz daiteke."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Ezin izan da pluginaren harpidetza utzi; ikusi erregistroak informazio gehiagorako."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Ezin izan da pluginaren deskarga-URLa eskuratu (emaitza: %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Ez duzu baimenik hodeiko plugin hau deskargatzeko."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Ez dago plugin-paketerik erabilgarri sistema eragile honetarako."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "Ez da hautatutako pluginaren bertsioa aurkitu."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "Ez da pluginaren %1% bertsioa aurkitu."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Ez da hodeiko plugina aurkitu."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Ez da hodeiko pluginaren deskarga aurkitu: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Ez da hodeiko pluginaren deskarga aurkitu."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Ez dago deskarga-URLrik erabilgarri plugin honetarako. Begiratu erregistroak erroreak bilatzeko."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Ezin izan da plugina deskargatu: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Pluginaren deskargak huts egin du HTTP %1% egoerarekin."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Pluginaren deskargak datu hutsak itzuli ditu."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Ezin izan da aldi baterako fitxategia sortu pluginaren deskargarako."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Ezin izan dira pluginaren datuak aldi baterako fitxategian idatzi."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Ezin izan da pluginaren karpeta ebatzi: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Ezin izan da pluginaren karpeta ezabatu %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Pluginaren direktorioa ez da existitzen: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "Pluginaren direktorioak hainbat .py fitxategi ditu: %1% eta %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "Pluginaren direktorioak hainbat .whl fitxategi ditu: %1% eta %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "Pluginaren direktorioak .py eta .whl sarrera-fitxategiak ditu"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "Pluginaren direktorioak ez du .py edo .whl sarrera-fitxategirik"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "'%1%' xerratze-prozesuko pluginaren errorea: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Plugin-paketeak .py edo .whl fitxategia izan behar du, baina hau jaso da: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Ezin izan da pluginaren .whl mendekotasuna atera %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Ezin izan da .whl mendekotasuna sys.path-era gehitu: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Python interpretatzailea ez dago hasieratuta: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Pluginaren manifestua baliogabea da: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Ezin izan dira pluginaren mendekotasunak instalatu: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Ezin izan da pluginaren modulua kargatu: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Pluginaren erregistroak huts egin du: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Pluginaren moduluak ez du gaitasunik erregistratu"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Pluginak '%1%' gaitasun bikoiztua deklaratzen du %2% motarako"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Pluginaren gaitasunen gauzatzeak huts egin du: %1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "Pluginaren gaitasunen gauzatzeak huts egin du"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Pluginaren on_load-ek huts egin du: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Pluginaren on_load-ek huts egin du"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Plugin-paketea ez da fitxategi bat: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "Hodeiko pluginaren UUIDa ez da identifikatzaile baliozko bat: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Ezin izan da pluginaren direktorioa sortu %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Ezin izan da lehendik dagoen pluginaren babeskopia egin %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Ezin izan da pluginaren fitxategia %1%(e)ra kopiatu: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Ezin izan da pluginaren instalazio-egoera idatzi: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Plugin-paketea dagoeneko kargatuta dago: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Gaitasun-talka %1% motarako eta '%2%' izenerako"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Pluginaren gako bikoiztua aurkitu da: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Pluginaren karga oraindik abian da"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Plugina baliogabea da: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Ez da plugina aurkitu: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Pluginaren kargak ustekabeko hutsegitea izan du: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Pluginaren kargak ustekabeko hutsegitea izan du"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Ez da pluginaren manifestua aurkitu: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Ezin izan dira pluginak hodeitik eskuratu. Ikusi erregistroak xehetasunetarako."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Hasi saioa OrcaCloud-en plugin hau instalatzeko."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud-ek ez du harpidetutako hodeiko plugina itzuli."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Ezin izan da hodeiko plugina deskargatu."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Ezin izan da hodeiko plugina instalatu."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Hodeiko pluginak bakarrik eguneratu daitezke."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Ez dago eguneratzerik plugin honetarako."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Ez da onartzen ezagutzen diren plugin-direktorioetatik kanpoko plugin bat ezabatzea."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Ez da onartzen ezagutzen diren plugin-direktorioetatik kanpoko plugin bat eguneratzea."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Ezin da plugina tokian mantendu: tokiko pluginaren gakoa dagoeneko existitzen da: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Ezin izan da pluginaren instalazio-egoera eguneratu: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Ezin duzu zure pluginen harpidetza utzi."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Hodeiko pluginak bakarrik ezaba daitezke eta haien harpidetza utz daiteke."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Ezin duzu zure pluginen harpidetza utzi. Erabili Ezabatu tokiko fitxategiak kentzeko."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Pluginaren fitxategi-sistemako irakurtzeko baimen-eskaera ukatu da"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30020,6 +34968,10 @@ msgstr "bi aldeko estrusioaren fusioak huts egin du"
msgid "imported regions produced no extrudable geometry"
msgstr "inportatutako eskualdeek ez dute geometria estruigarririk sortu"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "profilak erreboluzio-ardatza zeharkatzen du — ardatzaren alde batean egon behar du"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Ezin izan da erreboluzionatu"
@@ -30056,6 +35008,10 @@ msgstr "Poltsaren aurpegiak huts egin du"
msgid "Pocket cut failed"
msgstr "Poltsaren ebaketak huts egin du"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "profila bere buruarekin gurutzatzen edo tolesten da; beraz, ez du eskualde bakar bat mugatzen"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "krokisak ez du begizta itxirik"
@@ -30088,10 +35044,26 @@ msgstr "mesh_to_brep: sareak ez du triangelurik"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: triangelu guztiak baztertu dira endekatuak direlako (saiatu perdoi txikiagoarekin)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "biribiltzearen erradioak 0 baino handiagoa izan behar du"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "ez dago biribiltzeko ertzik talde horretan"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "biribiltze-erradioa handiegia da geometria honetarako"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "alakatzearen distantziak 0 baino handiagoa izan behar du"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "ez dago alakatzeko ertzik talde horretan"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "alakatze-distantzia handiegia da geometria honetarako"
@@ -30104,6 +35076,153 @@ msgstr "apply_fillet: OCCT biribiltzeak huts egin du"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: OCCT alakatzeak huts egin du"
+# AI Translated
+msgid "empty component list"
+msgstr "osagai-zerrenda hutsik dago"
+
+# AI Translated
+msgid "empty component index"
+msgstr "osagai-indizea hutsik dago"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "osagai-indizeak >= 1 izan behar du (%1% jaso da)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "osagai-indize baliogabea \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "gutxienez 2 osagai behar dira (%1% jaso dira)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "osagai-indize bikoiztua: %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "ratio-balioa hutsik dago"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "ratioak positiboa izan behar du (%1% jaso da)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "ratio baliogabea \"%1%\""
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "ratio kopuruak osagai kopuruarekin bat etorri behar du: %1% espero zen, %2% jaso da"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "komaz bereizitako koma mugikorreko bi zenbaki espero ziren, adib. \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "hasierako eta amaierako ratioak (0, 1) tartean egon behar dute"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "arrayaren tamaina (%1%) ez dator bat filamentu-zirrikituen kopuruarekin (%2%)"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "ezarri behar da filamentu nahasiaren parametroak zehazten direnean"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "zirrikitua %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "zirrikitua %1%: %2% osagaia tartetik kanpo dago (filamentu fisikoaren gehieneko indizea %3% da)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "zirrikitua %1%: ezin du bere burua osagai gisa erreferentziatu"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "zirrikitua %1%: %2% osagaiak filamentu nahasi baten zirrikitua erreferentziatzen du"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "zirrikitua %1%: gradienteak zehazki 2 osagai behar ditu"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "zirrikitua %1%: kurba baliogabea (gutxienez 2 kontrol-puntu baliozko behar dira)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Huts egin du \"%1%\" konfigurazio-fitxategia kargatzeak: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Ez da %1% aplikazioak sortutako G-code fitxategia."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Ez da \"%1%\" konfigurazio-etiketa aurkitu"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "%1% fitxategitik atera den konfigurazio-balio kopurua susmagarriki txikia da: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"STEP fitxategia kargatzeak huts egin du.\n"
+"Ezin da fitxategia ireki irakurtzeko.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "SVG inportatzeak huts egin du: ezin izan da SVGa ireki."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "SVG inportatzeak huts egin du: ezin izan dira inportatutako SVG datuak analizatu."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "G-code pertsonalizatuak z_retracted negatiboa jakinarazten du."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "G-code pertsonalizatuak z_restart_extra negatiboa jakinarazten du."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "%1% direktorioa %2% helmugara kopiatzeak huts egin du: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Autentifikazioa osatu da"
@@ -30549,6 +35668,1088 @@ msgstr ""
"Saihestu okertzea\n"
"Ba al zenekien ABS bezalako okertzeko joera duten materialak inprimatzean ohe beroaren tenperatura egoki igotzeak okertzeko probabilitatea murriztu dezakeela?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Hautatu filamentuen kolorea"
+
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Zubiaren lerro-zabalera. % gisa adierazten bada, pitaren diametroaren arabera kalkulatuko da.\n"
+#~ "Zubi-dentsitate handiagoarekin edo zubiaren fluxu-erlazio handiagoarekin erabiltzea gomendatzen da.\n"
+#~ "\n"
+#~ "Gehieneko balioa %100 edo pitaren diametroa da.\n"
+#~ "0 ezartzen bada, lerro-zabalera barruko betegarri solidoaren zabalerarekin bat etorriko da."
+
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Gaitu aukera hau perimetroak gorantz kizkurtu daitezkeen eremuetan inprimatze-abiadura moteltzeko.\n"
+#~ "Adibidez, moteltze gehigarria aplikatuko da Benchy ontziaren aurrealdeko ertz zorrotzetan bezalako irtenguneak inprimatzean, geruzaz geruza metatzen den kizkurtzea murrizteko.\n"
+#~ "\n"
+#~ "Oro har, aukera hau aktibatuta edukitzea gomendatzen da, inprimagailuaren hoztea oso indartsua ez bada edo abiadura nahikoa motela ez bada perimetroak ez kizkurtzeko.\n"
+#~ "Kanpoko perimetro-abiadura handiarekin inprimatzean, parametro honek horma-akatsak sor ditzake moteltzean, abiadura-alde handiek estrusoreari eskatutako fluxu-aldaketari jarraitzea eragotz diezaioketelako.\n"
+#~ "Akats horien arrazoia PA doikuntza apur bat oker egotea izan ohi da, bereziki PA leuntze-denbora handiarekin batera.\n"
+#~ "\n"
+#~ "Aukera hau gaitzean gomendioak:\n"
+#~ "1. Murriztu Pressure Advance leuntze-denbora 0.015 - 0.02 baliora, estrusoreak abiadura-aldaketei azkar erantzun diezaien.\n"
+#~ "2. Handitu gutxieneko inprimatze-abiadurak moteltzearen neurria eta segmentu azkar eta motelen arteko aldea mugatzeko.\n"
+#~ "3. Akatsak agertzen badira, gaitu Extrusion Rate Smoothing (ERS) fluxu-trantsizioak gehiago leuntzeko.\n"
+#~ "\n"
+#~ "Oharra: aukera hau gaituta dagoenean, irtenguneen perimetroak irtengune gisa tratatzen dira; beraz, irtenguneen abiadura aplikatuko da perimetroa zubi baten parte bada ere.\n"
+#~ "Adibidez, perimetroak %100 irtengunean daudenean eta azpitik eusten dien hormarik ez dagoenean, %100eko irtenguneetako abiadura aplikatuko da."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Kanpotik ikusgai dauden zubi-estrusioen abiadura.\n"
+#~ "\n"
+#~ "Gainera, perimetro kiribilduetarako moteltzea desgaituta badago edo irtengune-modu klasikoa gaituta badago, %13 baino gutxiagoz eutsita dauden irtengune-hormen inprimatze-abiadura izango da, zubi baten edo irtengune baten parte izan."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Ezarpen bereizi honek erradioa <= small_perimeter_threshold duten perimetroen abiaduran eragiten du (normalean zuloak). Ehuneko gisa adierazten bada (adibidez: 80%), goiko kanpoko hormaren abiaduraren arabera kalkulatuko da. Jarri zero automatikoa izateko."
+
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "\"Perimetro txikiak\" ezarpenaren berdina, baina euskarrietarako. Ezarpen honek `small_support_perimeter_threshold` baino txikiagoak edo berdinak diren eremuen euskarri-abiadurari eragingo dio. Ehuneko gisa adierazten bada (adibidez, %80), goiko euskarri- edo euskarri-interfaze abiaduraren arabera kalkulatuko da. Ezarri zero automatikorako."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Barruko eta kanpoko hormen inprimatze-sekuentzia.\n"
+#~ "\n"
+#~ "Erabili Barru/Kanpo irtengune onenak lortzeko. Irtenguneetan dauden hormak ondoko perimetro bati atxiki daitezke inprimatzean. Hala ere, gainazalaren kalitatea apur bat murriztu daiteke, kanpoko perimetroa barrukoaren kontra zanpatzen delako.\n"
+#~ "\n"
+#~ "Erabili Barru/Kanpo/Barru kanpoko gainazalaren akabera eta neurri-zehaztasun onenak lortzeko, kanpoko horma barruko perimetro batek oztopatu gabe inprimatzen baita. Irtenguneen portaera, ordea, okerragoa izango da. Gutxienez 3 horma behar dira: lehenik hirugarrenetik aurrerako barruko hormak, gero kanpokoa eta azkenik lehenengo barrukoa. Kasu gehienetan Kanpo/Barru baino gomendagarriagoa da.\n"
+#~ "\n"
+#~ "Erabili Kanpo/Barru Barru/Kanpo/Barru aukeraren kanpoko hormaren kalitate eta neurri-zehaztasun bera lortzeko. Hala ere, Z josturak ez dira hain koherenteak izango, geruza berriaren lehen estrusioa gainazal ikusgai batean hasten delako."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Hau da lehen geruzaren abiadura, betegarri solidoko atalak izan ezik."
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Hau da lehen geruzako betegarri solidoaren atalen abiadura."
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Betegarri-eremua apur bat handitzen du hormekin gainjartzeko eta lotura hobetzeko. Ehunekoa dentsitate baxuko betegarriaren lerro-zabalerarekiko da. Ezarri gutxi gorabehera %10-15, gainestrusioa eta goiko gainazal zakarrak sor ditzakeen material-pilaketa gutxitzeko."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "Goiko betegarri solidoaren eremua pixka bat handitzen da hormarekin gainjartzeko, lotura hobetzeko eta goiko betegarria hormekin elkartzen den tokian zulotxoen itxura minimizatzeko. %25-30 inguruko balioa abiapuntu ona da."
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Eskualde segmentatu baten elkarblokeatze-sakonera. Ez da kontuan hartuko \"mmu_segmented_region_max_width\" zero bada edo \"mmu_segmented_region_interlocking_depth\" \"mmu_segmented_region_max_width\" baino handiagoa bada. Zero balioak ezaugarri hau desgaitzen du."
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Murriztu goiko gainazaleko perimetroen altuera modeloaren ertzaren altuerarekin bat etor dadin.\n"
+#~ "Angelu hau baino malda txikiagoa duten perimetroei eragiten die (graduetan).\n"
+#~ "35 balio arrazoizkoa da. Ezarri 0 desgaitzeko."
+
+# AI Translated
+#~ msgid "Role base wipe speed"
+#~ msgstr "Eginkizunaren araberako garbitze-abiadura"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Aire-korronteen babeslea erabilgarria da ABS edo ASA inprimaketa haize-korronteengatik deformatzetik eta inprimatze-ohetik askatzetik babesteko. Normalean egitura irekiko inprimagailuetan bakarrik behar da, hauda, itxiturarik gabe.\n"
+#~ "\n"
+#~ "Gaituta = gona inprimatutako objekturik altuena bezain altua da. Bestela,'Gonaren altuera' erabiltzen da.\n"
+#~ "Oharra: aire-korronteen babeslea aktibo dagoenean, gona objektutik gonaren distantziara inprimatuko da. Beraz, itsaspen ertzak aktibo badaude, haiekin gurutza daiteke. Hori saihesteko, handitu gonaren distantziaren balioa.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Purgatze-dorrean purgatzean eta purgatze-dorrearen geruza bakanduak inprimatzean erabiliko den gehieneko inprimatze-abiadura. Purgatzean, dentsitate baxuko betegarriaren abiadura edo filamentuaren gehieneko abiadura bolumetrikotik kalkulatutako abiadura txikiagoa bada, txikiena erabiliko da.\n"
+#~ "\n"
+#~ "Geruza bakanduak inprimatzean, barruko perimetroaren abiadura edo filamentuaren gehieneko abiadura bolumetrikotik kalkulatutako abiadura txikiagoa bada, txikiena erabiliko da.\n"
+#~ "\n"
+#~ "Abiadura hau handitzeak dorrearen egonkortasunean eragina izan dezake, eta pitak purgatze-dorrean sortu diren pikorrekin talka egitean duen indarra handitu dezake.\n"
+#~ "\n"
+#~ "Parametro hau 90 mm/s-ko balio lehenetsitik gora handitu aurretik, ziurtatu zure inprimagailuak abiadura handiagoetan zubiak modu fidagarrian inprima ditzakeela eta tresna-aldaketan jarioa ondo kontrolatuta dagoela.\n"
+#~ "\n"
+#~ "Purgatze-dorrearen kanpoko perimetroetarako barruko perimetroaren abiadura erabiltzen da, ezarpen hau kontuan hartu gabe."
+
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Purgatze-dorrearen kanpoko horma mota.\n"
+#~ "1. Laukizuzena: horma mota lehenetsia, zabalera eta altuera finkoko laukizuzena.\n"
+#~ "2. Konoa: behealdean biribiltzea duen konoa, purgatze-dorrea egonkortzen laguntzeko.\n"
+#~ "3. Nerbioa: lau nerbio gehitzen dizkio dorrearen hormari egonkortasuna handitzeko."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Purgatze-dorreko purga-lerroetarako erabiltzen den fluxu gehigarria. Horrek purga-lerroak normalean baino lodiagoak edo meheagoak egiten ditu. Tartea automatikoki doitzen da."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Doitu balio hau horma labur eta itxi gabeak inprima ez daitezen; horrek inprimatze-denbora handitu lezake. Balio handiagoek horma gehiago eta luzeagoak kentzen dituzte.\n"
+#~ "\n"
+#~ "OHARRA: beheko eta goiko gainazalek ez dute balio honen eraginik izango, modeloaren kanpoaldean hutsune ikusgarriak saihesteko. Doitu beheko Ezarpen aurreratuetako 'Horma bakarreko atalasea' goiko gainazaltzat zer hartzen den zehazteko sentikortasuna doitzeko. 'Horma bakarreko atalasea' ezarpen hau 0.5 balio lehenetsiaren gainetik ezarrita badago edo horma bakarreko goiko gainazalak gaituta badaude bakarrik ikusiko da."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Banatu %1% piezatan"
+#~ msgstr[1] "Banatu %1% piezatan"
+
+#~ msgid "Repair failed"
+#~ msgstr "Konponketak huts egin du"
+
+#~ msgid "Repair canceled"
+#~ msgstr "Konponketa bertan behera utzi da"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Geruza honek zer egiten duen azpikoekin gainjartzen den lekuan. Gehitu eta Kendu aukerek erliebea pilatzen edo zizelkatzen dute. Biderkatu eta Zatitu aukerek azpian dagoena eskalatzen dute; horrek geruza hau haren gaineko maskara bihurtzen du - kasu horretan, Sakonerak indar gisa jokatzen du, eta 1 mm-k eremu zuriak ukitu gabe uzten ditu."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "Sareak geometria ez-manifolda edo muga irekiak ditu. Dagoen bezala inporta dezakezu edo Windows-en 3D konponketa-zerbitzuarekin konpondu inportatu aurretik."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Kontuan izan sareak geometria ez-manifolda edo muga irekiak dituela."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Sarearen arazoa"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Konponketak huts egin du: sareak irekita jarraitzen du zuloak bete ondoren."
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Ezin da eragiketa logikoa aplikatu boolearrak ez diren eragileei."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Irakurtzen"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Filamentuen zenbaketak pintura-tresnak onartzen duen gehienezko kopurua gainditzen du. Lehen %1% filamentuak bakarrik egongo dira eskuragarri pintura-erremintan."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Lasterbideko tekla "
+
+# AI Translated
+#~ msgid "Build Volume"
+#~ msgstr "Inprimatze-bolumena"
+
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Objektuek (%1%) konektore bikoiztuak dituzte. Baliteke konektore batzuk falta izatea xerratze-emaitzan.\n"
+#~ "Jakinarazi OrcaSlicer taldeari zer egoeratan gertatu den arazoa.\n"
+#~ "Eskerrik asko."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d triangelu"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Mugitzen)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Finkatuta)"
+
+#~ msgid "Filament "
+#~ msgstr "Filamentua "
+
+#~ msgid "hotend"
+#~ msgstr "hotend-a"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Antolatzen "
+
+#~ msgid "Orienting"
+#~ msgstr "Orientatzioa"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Mesedez, itzuli ardatz guztiak jatorrira (klik egin "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") inprimatze-buruaren posizioa kokatzeko. Horrela, gailua inprimatu daitekeen mugatik haratago mugitzea eta ekipoaren higadura saihesten ditu."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Filamentua %1% g eta aldaketak %2% handitzen ditu taldekatze optimoarekin alderatuta."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Filamentua %1% g handitzen du eta %2% aldaketa aurrezten ditu taldekatze optimoarekin alderatuta."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Aurreztu %1% g filamentua eta handitu %2% aldaketa taldekatze optimoarekin alderatuta."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Aurreztu %1% g filamentua eta %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Aurreztu %1% g filamentua eta handitu %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Handitu %1% g filamentua eta aurreztu %2% aldaketa pita bakarreko inprimagailu batekin alderatuta."
+
+#~ msgid "number keys"
+#~ msgstr "zenbaki-teklak"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "%s filamentuak %s(e)n daude, baina sortutako G-code ibilbideak %s-ren inprimatze-eremua gainditzen du."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "%s filamentuak %s(e)n daude, baina sortutako G-code ibilbideak %s-ren inprimatze-altuera gainditzen du."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "%s filamentuak ezin dira zuzenean plaka honen gainazalean inprimatu."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "itxi egingo da modelo berri bat sortu aurretik. Jarraitu nahi duzu?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "Hodeian xerratzeko ilaran, %s zeregin dituzu aurretik."
+
+#~ msgid " upload failed"
+#~ msgstr " igotzeak huts egin du"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " igoeraren konfigurazioa analizatzeak huts egin du\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Ez dago dagokion biltegiratze-ontzirik\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " ezin da ireki\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Zure iruzkinaren emaitza ezin da igo arrazoi hauengatik:\n"
+#~ "\n"
+#~ " errore-kodea: "
+
+#~ msgid "error message: "
+#~ msgstr "errore-mezua: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Web orrira birbideratu nahi duzu balorazioa emateko?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (prozesu-aurrezarpena: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "%s pitak ezin du %s inprimatu."
+
+#~ msgid " nozzle"
+#~ msgstr " pita"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Ez da gomendatzen filamentu hauek %1% erabiliz inprimatzea: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " %1% plaka:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Kendu filamentu nahasi guztiak (%1%)?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Ordeztu nahi duzu"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Ohearen tenperatura-gatazka: T%d (%s) erremintak ohea %d°C-tan jartzen du — T%d (%s) erremintak %d°C behar ditu. Erreminta nagusiak kontrolatzen du ohea; bigarren mailako erremintek hark ezartzen duen tenperaturan inprimatzen dute."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Ez da azeleraziorik eman kalibraziorako. Erabili azelerazio-balio lehenetsia "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Ez da abiadurarik eman kalibraziorako. Erabili abiadura optimo lehenetsia "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Ez dago zintarako tenperatura-dorrerik %1% eta %2% °C arteko tarterako. Erabili dorre-modeloek estaltzen duten tarte bat, adibidez 230etik 190era."
+
+#~ msgid "The selected file"
+#~ msgstr "Hautatutako fitxategiak"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "Ez dauka baliozko G-coderik."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "OrcaSlicerrekin, Orcak hemendik modeloak ireki ahal izateko:"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Taldekatze optimoak baino %d g filamentu gehiago eta %d aldaketa gehiago kostatzen ditu."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Ikono hau duten parametroak pita bakoitzeko konfigura daitezke."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Erreserbatutako gako-hitzak aurkitu dira"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d filamentuen aurrezarpen eta %d prozesu-aurrezarpen inprimagailu honi lotuta daude. Inprimagailua ezabatuz gero, aurrezarpen horiek ezabatuko lirateke."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Hurrengo aurrezarpenak aurrezarpen hau hartuko du herentzian."
+#~ msgstr[1] "Hurrengo aurrezarpenek aurrezarpen hau hartuko dute herentzian."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% aurrezarpena"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Ziur hautatutako aurrezarpena %1% nahi duzula?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Banatu %1% piezatan"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Hornitzaileen profil berriak deskargatzen: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Huts egin du hornitzaileen profilak deskargatzeak: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Span modu honetan %1% erremintek soilik inprimatzen dituzte koloreak, baina %2%. filamentua ez dago inongo erremintara bideratuta. Erabili %1% erremintetara bideratutako filamentuak, edo aldatu plaka hau Nagusia (Primary) modura."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Span modu honetan %1% erremintek soilik inprimatzen dituzte koloreak, baina %2%. filamentua T%3% erremintara bideratuta dago. Erabili %1% erremintetara bideratutako filamentuak, edo aldatu plaka hau Nagusia (Primary) modura."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " baztertze-eremutik gertuegi dago; talkak egon daitezke inprimatzean."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " material-metaketa detektatzeko eremutik gertuegi dago; inprimatzean talkak gerta daitezke."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Purgatze-dorrea"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " besteetatik gertuegi dago, eta talkak sor daitezke.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " bazterketa-eremu batetik gertuegi dago, eta talkak eragingo ditu.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " material-metaketa detektatzeko eremutik gertuegi dago, eta talkak eragingo ditu.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " inprimagarri den eremutik kanpo dago partzialki, eta ezin da inprimatu.\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "konfiguratutako erremintarik ez"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "Gehitu amaierako G-codea inprimaketa osoa amaitzean."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "X gehieneko abiadura"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Y gehieneko abiadura"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Z gehieneko abiadura"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "E gehieneko abiadura"
+
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Xerratze-prozesuko urrats bakoitzean deitzen diren Python pluginak, tarteko datuak irakurri eta aldatzeko; horien artean, G-codearen azken post-prozesatze fasea ere sartzen da. Ikerketa- edo esperimentazio-mailakoak."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Gaituta dagoenean, xerratzaileak eremu nagusiaren edukia ohearen jatorrian (0,0) zentratuta duen G-code sortzen du. Inprimagailuaren firmwareak kokatzen ditu kopiak/ispiluak eremu fisiko bakoitzaren posizioan. Gaitu soilik firmwareak kopia/ispilu moduan bere eremu-desplazamenduak aplikatzen dituen inprimagailuetan (adib. RepRapFirmware-ren IDEX bikoizte-modua). Ez du eraginik Nagusia (Primary) moduan."
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Plaka bakoitzeko gainidazketa, buru fisikoak filamentu-zirrikituekin lotzen dituena (1etik hasita). Hutsik badago, pem-inbertsioaren balio lehenetsiak erabiltzen dira."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Xerratu aurretik sarea zein ardatzaren inguruan biratzen den. Zinta-inprimagailuaren inklinazioa da: biraketa isometriko bat (distortsiorik gabea), ohearen errendatzea eta euskarrien grabitate-inklinazioa ere gidatzen dituena, eta G-codearen alderantzizko transformazioak desegiten duena makinaren koordenatu-sistemaren zizailadura/eskala eta berresleipena aplikatu aurretik. X da atariaren ohiko inklinazioa (zinta Y ardatzean zehar mugitzen da)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Adituentzako gainidazketa: ezarri makinaren koordenatu-sistemaren inklinazio-angelua (G-codearen zizailadura/eskala) xerratu aurreko biraketa-angelutik independenteki. Desgaituta dagoenean, makinaren koordenatu-sistemaren transformazioa zintaren inklinazio-angelutik ateratzen da; beraz, angelu bakar batek gidatzen ditu bi etapak. Gaitu soilik atariaren inklinazio fisikoa xerratze-biraketatik desberdina duen makina bat konpentsatzeko."
+
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "'Hormaren gehieneko bereizmena' ezarpenerako bereizmena murriztean baimendutako gehieneko desbideratzea. Handitzen baduzu, inprimaketa ez da hain zehatza izango, baina G-codea txikiagoa izango da. 'Hormaren gehieneko desbideratzeak'-ek 'Hormaren gehieneko bereizmena' mugatzen du; beraz, bien artean gatazkarik badago, 'Hormaren gehieneko desbideratzeak' izango du lehentasuna."
+
+#~ msgid " not in range "
+#~ msgstr " ez dago tartean "
+
+#~ msgid "floating regions"
+#~ msgstr "eskualde flotatzaileak"
+
+#~ msgid "floating cantilever"
+#~ msgstr "irtengune flotatzailea"
+
+#~ msgid "large overhangs"
+#~ msgstr "irtengune handiak"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Badirudi %s objektuak %s dituela. Orientatu berriro objektua edo gaitu euskarrien sorrera."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Ez da geruzarik detektatu. Baliteke STL fitxategia(k) konpondu behar izatea edo haien tamaina edo lodiera egiaztatu eta berriro saiatu behar izatea.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Makina mota honek pita bakoitzeko %d emaitza historiko soilik gorde ditzake. Emaitza hau ez da gordeko."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Makina mota honek pita bakoitzeko %d emaitza historiko soilik gorde ditzake."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Irtengunea"
+
+#~ msgid "Start / End"
+#~ msgstr "Hasiera / Amaiera"
+
+#~ msgid "Damp"
+#~ msgstr "Moteltzea"
+
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "%d IFS zirrikitu detektatu dira inprimagailuan."
+
+#~ msgid "selected"
+#~ msgstr "hautatuta"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Hurrengo aurrezarpenak aurrezarpen hau hartuko du herentzian."
+#~ msgstr[1] "Hurrengo aurrezarpenek aurrezarpen hau hartuko dute herentzian."
+
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "%zu Creality inprimagailu aurkitu dira. Hautatu bat eta egin klik Erabili hautatutakoa botoian."
+
+#~ msgid "log(s)"
+#~ msgstr "erregistro"
+
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Errorea: %s estrusoreak ez du %s pita erabilgarririk; uneko taldekatze-emaitza baliogabea da."
+
+#~ msgid "invalid brim ears"
+#~ msgstr "ertz-belarri baliogabeak"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "%d objektuak saltatzen."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Ireki karpeta fitxategi-arakatzailean"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Egin klik zentroan, gero erpin batean — %d alde, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "zirkunskribatua"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "inskribatua"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Krokisa sortu da (%zu kota gidari) — hautatu, gero eskuineko klik Estruitu aukeratzeko"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "Ados — %zu triangelu"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Sare honek %d triangelu ditu. Triangelu bakoitza B-rep aurpegi bihurtzen da aurpegi koplanarrak batu aurretik; beraz, inportatzeak denbora luzea har dezake eta editatzeko motela den gorputz bat utz dezake. Normalean hobe da lehenik sarea dezimatzea.\n"
+#~ "\n"
+#~ "Inportatu hala ere?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Solidoa inportatu da — %d triangelu → %d aurpegi, bolumena %.2f mm³. Hautatu aurpegi edo ertz bat, gero Biribildu / Ebaki / Hustu aldatzeko"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — arrastatu kokatzeko/tamaina aldatzeko, gero Berretsi"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d krokis-entitate"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — idatzi balio bat, sakatu Enter (edo Berretsi)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Aurrebista — %zu triangelu"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "Geometria honetan eragin ezin duten murrizketak ez dira kontuan hartzen (elipse edo spline kurba bat, edo zero tamainako zirkulu bat): %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "Biribiltzeak/alakatzeak baliogabetu eta kendutako murrizketak: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "Transformazioak askatutako murrizketak: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...eta beste %1% mutur ireki"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "Material-zerrendak gehienez %1% kolore onartzen ditu. %2% deskonposatu ondoren, material kopuruak %1% gaindituko luke. Ezabatu erabiltzen ez diren filamentuak pantaila nagusian deskonposatu aurretik."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% kolore inprimagarri, %2% filamentutatik"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% uharte"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "%1% geruza guztiak erabilita"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Aurrebista: %1% triangelu"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Modeloa: %1% triangelu - finkatzeak goiko bereizmeneraino fintzen du, bere aurrekontuaren mugaraino"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Finkatzeak lehendik dauden erpinak mugitzen ditu - modeloak %1% triangelu izaten jarraitzen du"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Finkatzearen emaitza: ~%1% k triangelu gehienez"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% geruza margotu gabe, saltatuta"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Proiektuak gehienez %d filamentu onartzen ditu. Gainerako filamentuak baztertu egingo dira."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d erpin hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d ertz hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d uharte hautatuta | arrastatu = mugitu batera, Shift/Ctrl klik = gehitu/kendu, R/S = biratu/eskalatu nagusia"
+
+# AI Translated
+# Needs human review: English names a 'Tiling' control, but no label 'Tiling' exists (the layer settings show 'Tile' = Lauzatu and 'Tile size' = Lauzaren tamaina); check which one it means and quote it.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Testura-geruza aktiboaren lauzaren tamaina: testuraren errepikapen batek modeloaren zenbat estaltzen duen. Oihala lauzatan neurtzen da; beraz, sareta-gelaxka bat errepikapen bat da. Aldatu testura-geruzaren ezarpenetako lauzaketaren bidez."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d uharte, %s aurpegi"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "\"%s\" pluginak fitxategi hauek irakurtzeko baimena eskatzen du:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "\"%s\" pluginak fitxategi hauek irakurtzeko/idazteko baimena eskatzen du:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "\"%s\" pluginak fitxategi hauek sortzeko baimena eskatzen du:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "\"%s\" pluginak fitxategi hauek ezabatzeko baimena eskatzen du:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "\"%s\" pluginak komando hauek exekutatzeko baimena eskatzen du:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Pluginaren instalazioak huts egin du"
+
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Ezin izan da Microsoft WebView2 Runtime instalatu.\n"
+#~ "Zenbait eginbide, konfigurazio-laguntzailea barne, hutsik ager daitezke instalatu arte.\n"
+#~ "Instalatu eskuz https://developer.microsoft.com/microsoft-edge/webview2/ helbidetik eta berrabiarazi OrcaSlicer."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Zergatik taldekatze hau"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "Softwareak ez du onartzen inprimatze berean diametro desberdineko pitak erabiltzea. Ezkerreko eta eskuineko pitak desberdinak badira, buru bakarreko inprimatzea baino ezin da egin. Berretsi zein pita erabili nahi duzun proiektu honetan."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Aldatu diametroa"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "BambuStudio proiektua"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "3MF fitxategia BambuStudio bidez sortu zen (%s bertsioa), bertsio hori bateragarria den %s bertsioa baino berriagoa da. Ezagutzen ez diren ezarpenak aurkitu dira:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "3MF fitxategia BambuStudioren %s bertsioarekin sortu da, eta hori %s bertsio bateragarria baino berriagoa da. Baliteke ezarpen batzuk guztiz bateragarriak ez izatea."
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "3MF fitxategia BambuStudio erabiliz sortu da. Baliteke ezarpen batzuk OrcaSlicerrekoen desberdinak izatea."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Ezin da desegin edo berregin eragiketa bat martxan dagoen bitartean. Gelditu lehenik."
+
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Pieza bakoitzaren barruko betegarria bere buruarekiko zentratzen du, bereiz xerratuko balitz bezala, muntaketa osoarekiko zentratu beharrean. Elkar ukitzen edo gainjartzen diren piezak gorputz bakartzat hartzen dira eta zentro bera partekatzen dute; bereizitako pieza bakoitzak (edo 3D objektu bakoitzak) bere zentroa izango du.\n"
+#~ "Erabilgarria da muntaketa batek betegarri koherente eta autozentratua mantendu behar duten hainbat objektu biltzen dituenean.\n"
+#~ "Lerro eta sareta patroiei eta biraketa-txantiloia duten betegarriei eragiten die.\n"
+#~ "Koordenatu globaletara lotutako patroiei (Giroidea, Abaraska, TPMS...) ez die eragiten."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Uneko geruzaren indizea. Batean oinarritua (hau da, lehen geruza 1 zenbakia da)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Bideo-tutoriala"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Oinarrizko geometria"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Sare hutsa sortu da"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Kutxa"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Azkar:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Zabalera (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Sakonera (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Altuera (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "Beheko R"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "Goiko R"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "R nagusia"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "R txikia"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Ertz guztiak"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Goiko ertzak"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Beheko ertzak"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Alboko ertzak"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Sarearen bereizmena"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Gehitu forma"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Ez dago kanpoko profilik"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Ezin izan da kanpoko aurpegia sortu"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Ezin izan da zuloak dituen aurpegia eraiki"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Erreboluzioak huts egin du"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Profila"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Hasi profil berri bat (zuloetarako)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segmentuak"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Aldeak"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Egin klik mihisean marrazteko"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Atxiki saretara"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Sareta-urratsa"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Kanpokoa"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "itxita"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% puntu %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (Goikoa)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (Aurrekoa)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (Albokoa)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Erreboluzio-graduak"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "Ezarri 0 estruitzeko, >0 erreboluzionatzeko"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Poltsa (ebaki)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu profil itxi"
+#~ msgstr[1] "%zu profil itxi"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Marraztu profil itxi bat gaitzeko"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Emaitza hutsa"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Estrusioa: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Erreboluzioa: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Ez dago objekturik hautatuta"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Aurpegiak huts egin du"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Zuloak dituen aurpegiak huts egin du"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Tresnaren sarea hutsik dago"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Poltsa gehitu da (bolumen negatiboa)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Poltsa: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Geruza aktiboak Zabaldu (LSCM) mapaketa izan behar du."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Xake-taula - proba-sareta bat testuraren ordez. Laukiak karratu mantentzen diren lekuetan testura ez da deformatzen; luzatzen diren lekuetan, testura ere luzatuko da"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Distortsioa - luzapenaren bero-mapa, urdinetik gorrira, zabaltzearen gainean"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Nahasteko modua"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Gainazala"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Geruzak: bi filamentuak inprimatze-geruzen artean txandakatzen dira; horrek leun nahasten ditu gainazal zutikoetan, baina gainazal lauetan desagertzen da, geruza oso bat banda bakarra baita.\n"
+#~ "Gainazala: xake-taula fin bat gainazalean zehar; edozein angelutan funtzionatzen du, baina nahasketa baino testura gisa irakur daiteke.\n"
+#~ "Automatikoa: geruzak aurpegi zutikoetan; aurpegi lauek filamentu bakar hurbilena hartzen dute, han xake-taula patroi gisa ikusten baita."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Uhartea - mugitu, biratu eta eskalatu uharte osoak"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Erpina - arrastatu erpinak forma aldatzeko; Shift/Ctrl hautaketa anitzerako"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Ertza - arrastatu ertzak forma aldatzeko; Shift/Ctrl hautaketa anitzerako"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Enkoadratu uharte guztiak (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Esperimentala) Erabili inprimagailu-agenteak inprimatze-hostenen ordez"
@@ -30582,16 +36783,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Egin klik aurpegi batean edo erreferentzia-plano batean, gero hautatu marrazketa-tresna bat"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -30648,10 +36839,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Distantzia bertikala"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Lineala"
-
#~ msgid "Face recognition"
#~ msgstr "Aurpegiak hauteman"
@@ -32033,9 +38220,6 @@ msgstr ""
#~ msgid "Hotend"
#~ msgstr "Hotend-a"
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Flow::with_spacing() funtzioari tarte baliogabea eman zaio; egiaztatu geruza-altuera eta estrusio-zabalera"
-
#~ msgid "Alt + Mouse wheel"
#~ msgstr "Alt + Saguaren gurpila"
@@ -32108,9 +38292,6 @@ msgstr ""
#~ msgid "Object coordinates"
#~ msgstr "Objektuaren koordenatuak"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid "uniform scale"
#~ msgstr "eskala uniformea"
diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po
index 19c0fa9673..87b8a18e88 100644
--- a/localization/i18n/fr/OrcaSlicer_fr.po
+++ b/localization/i18n/fr/OrcaSlicer_fr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Guislain Cyril, Thomas Lété\n"
@@ -395,8 +395,10 @@ msgid "Please wait"
msgstr "Veuillez patienter"
# AI Translated
-msgid "Reading"
-msgstr "Lecture en cours"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Rack Hotend Induction : lecture %d/%d"
msgid "Running..."
msgstr "En cours..."
@@ -547,9 +549,12 @@ msgstr "Gizmo-Placer sur la face"
msgid "Lay on Face"
msgstr "Poser sur une face"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Le nombre de filaments dépasse le nombre maximum pris en charge par l'outil de peinture. Seuls les %1% premiers filaments seront disponibles dans l'outil de peinture."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Le nombre de filaments dépasse le maximum pris en charge par l’outil de peinture. Seul %1% filament sera disponible dans l’outil de peinture."
+msgstr[1] "Le nombre de filaments dépasse le maximum pris en charge par l’outil de peinture. Seuls les %1% premiers filaments seront disponibles dans l’outil de peinture."
msgid "Color Painting"
msgstr "Mettre en couleur"
@@ -601,8 +606,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Entrée"
-msgid "Shortcut Key "
-msgstr "Raccourci "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Raccourci %d"
msgid "Triangle"
msgstr "Triangle"
@@ -695,6 +702,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Sélection de pièce"
+msgid "Select multiple objects"
+msgstr "Sélectionner plusieurs objets"
+
msgid "Fixed step drag"
msgstr "Déplacement par pas fixe"
@@ -755,9 +765,78 @@ msgstr "Pièce"
msgid "Relative"
msgstr "Relatif"
+msgid "Selection"
+msgstr "Sélection"
+
+msgid "Plate"
+msgstr "Plaque"
+
+msgid "Distribute"
+msgstr ""
+
msgid "Coordinate system used for transform actions."
msgstr "Système de coordonnées utilisé pour les actions de transformation."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Aligner à gauche"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Aligner au centre gauche-droite"
+
+# AI Translated
+msgid "Align right"
+msgstr "Aligner à droite"
+
+# AI Translated
+msgid "Align front"
+msgstr "Aligner à l’avant"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Aligner au centre avant-arrière"
+
+# AI Translated
+msgid "Align back"
+msgstr "Aligner à l’arrière"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Aligner en bas"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Aligner au centre haut-bas"
+
+# AI Translated
+msgid "Align top"
+msgstr "Aligner en haut"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Répartir gauche-droite"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Répartir avant-arrière"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Répartir haut-bas"
+
+msgid "Drop"
+msgstr "Déposer"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
msgid "Absolute"
msgstr "Absolu"
@@ -859,9 +938,6 @@ msgstr "Angle de la rainure"
msgid "Cut position"
msgstr "Position de coupe"
-msgid "Build Volume"
-msgstr "Volume d’impression"
-
msgid "Multiple"
msgstr "Plusieurs"
@@ -1031,12 +1107,21 @@ msgstr "Le plan de coupe avec rainure est invalide"
msgid "Connector"
msgstr "Connecteur"
+# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"L’objet (%1%) a des connecteurs dupliqués. Certains connecteurs risquent d’être absents du résultat du découpage.\n"
+"Veuillez signaler à l’équipe OrcaSlicer dans quel scénario ce problème est survenu.\n"
+"Merci."
+msgstr[1] ""
"Les objets (%1%) ont des connecteurs dupliqués. Certains connecteurs risquent d’être absents du résultat du découpage.\n"
"Veuillez signaler à l’équipe OrcaSlicer dans quel scénario ce problème est survenu.\n"
"Merci."
@@ -1102,9 +1187,12 @@ msgstr "Faible"
msgid "Extra low"
msgstr "Très bas"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d triangles"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% triangle"
+msgstr[1] "%1% triangles"
msgid "Show wireframe"
msgstr "Afficher le maillage"
@@ -1115,6 +1203,17 @@ msgstr "Ne peut pas s'appliquer lors du processus de prévisualisation."
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Opération déjà en cours d'annulation. Veuillez patienter quelques secondes."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "La simplification du modèle a été annulée"
+
+msgid "Wiki Guide"
+msgstr "Guide wiki"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Guide vidéo"
+
msgid "Enforce seam"
msgstr "Forcer la couture"
@@ -1165,6 +1264,14 @@ msgstr "Positionner sur la surface"
msgid "Emboss"
msgstr "Embosser"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Aucune police active dans le style. Sélectionnez-en une valide."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont n’est pas chargé correctement."
+
msgid "NORMAL"
msgstr "Normal"
@@ -1815,11 +1922,25 @@ msgstr "Diamètre"
msgid "Length"
msgstr "Longueur"
-msgid "Selection"
-msgstr "Sélection"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Face 1 (fixe)"
-msgid " (Moving)"
-msgstr " (Déplacement)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Face 2 (mobile)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Point 1 (fixe)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Point 2 (mobile)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Sélection 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1835,14 +1956,9 @@ msgstr ""
"Sélectionnez 2 points ou cercles sur des objets et \n"
" spécifier la distance qui les sépare."
-msgid "Face"
-msgstr "Face"
-
-msgid " (Fixed)"
-msgstr " (Fixé)"
-
-msgid "Point"
-msgstr "Point"
+# AI Translated
+msgid "Selection 2"
+msgstr "Sélection 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1940,6 +2056,18 @@ msgstr "Entrée dans l’outil Assemblage"
msgid "Leaving Assembly gizmo"
msgstr "Quitter l’outil Assemblage"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Maj+"
@@ -2114,14 +2242,16 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
+# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Le runtime Microsoft WebView2 n’a pas pu être installé.\n"
"Certaines fonctionnalités, dont l’assistant de configuration, peuvent apparaître vides tant qu’il n’est pas installé.\n"
-"Veuillez l’installer manuellement depuis https://developer.microsoft.com/microsoft-edge/webview2/ et redémarrer Orca Slicer."
+"Veuillez l’installer manuellement depuis %1% et redémarrer Orca Slicer."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2347,6 +2477,66 @@ msgstr "Restriction du plug-in réseau"
msgid "Privacy Policy Update"
msgstr "Mise à jour de la politique de confidentialité"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Tous vos préréglages de filament sont disponibles sur les imprimantes pour lesquelles ils ont été créés."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Migrer les préréglages de filament"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 a restructuré de nombreux préréglages de filament système afin de corriger des profils incorrects et de préparer des fonctionnalités à venir. De ce fait, les préréglages ci-dessous ne s’affichent plus sur certaines des imprimantes pour lesquelles ils ont été créés. Nous nous excusons pour la gêne occasionnée ; il s’agit d’une correction ponctuelle.\n"
+"\n"
+"Ajouter à nouveau ces imprimantes à vos préréglages maintenant ? Vos préréglages sont d’abord sauvegardés. Vous pouvez aussi le faire plus tard depuis Aide > Migrer les préréglages de filament."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (basé sur %2%)"
+
+msgid "Don't remind me again"
+msgstr "Ne plus me rappeler"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Vos préréglages n’ont pas pu être sauvegardés ; ils n’ont donc pas été migrés."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Le dossier des préréglages utilisateur n’a pas pu être verrouillé ; rien n’a donc été migré. Une autre instance d’OrcaSlicer est peut-être en train d’enregistrer des préréglages ; réessayez plus tard depuis Aide > Migrer les préréglages de filament."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Vos préréglages de filament n’ont pas pu être migrés. Une sauvegarde de vos préréglages a été enregistrée dans :\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Vos préréglages de filament ont été migrés. Sélectionnez-les à nouveau dans la liste des filaments là où vous les utilisiez.\n"
+"\n"
+"Une sauvegarde de vos préréglages a été enregistrée dans :\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Ces préréglages n’ont pas pu être migrés :"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "votre profil Orca Cloud (ID utilisateur : \"%s\")"
@@ -2461,6 +2651,9 @@ msgstr "Plugins actualisés."
msgid "Failed to refresh plugins: %s"
msgstr "Échec de l'actualisation des plugins : %s"
+msgid "Unknown error"
+msgstr "Erreur inconnue"
+
msgid "Select plugin package"
msgstr "Sélectionner le paquet du plugin"
@@ -2984,6 +3177,22 @@ msgstr "Tout recharger"
msgid "Reload all from disk"
msgstr "Tout recharger à partir du disque"
+# AI Translated
+msgid "Fix All"
+msgstr "Tout réparer"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Réparer tous les modèles sur la plaque actuelle"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Réparer toutes les plaques"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Réparer tous les modèles sur toutes les plaques"
+
msgid "Auto Rotate"
msgstr "Rotation automatique"
@@ -3035,8 +3244,13 @@ msgstr "(Couleur perdue)"
msgid "Center"
msgstr "Centrer"
-msgid "Drop"
-msgstr "Déposer"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Aligner/Répartir"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Aligner et répartir les objets"
msgid "Edit Process Settings"
msgstr "Modifier les paramètres du traitement"
@@ -3313,6 +3527,13 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] "Échec de la réparation de l'objet modèle suivant"
msgstr[1] "Échec de la réparation des objets de modèle suivants"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d objet modèle n’a pas nécessité de réparation."
+msgstr[1] "%1$d objets modèles n’ont pas nécessité de réparation."
+
msgid "Repairing was canceled"
msgstr "La réparation a été annulée"
@@ -3384,9 +3605,6 @@ msgstr "Sans bord"
msgid "Outer wall speed"
msgstr "Vitesse de paroi extérieure"
-msgid "Plate"
-msgstr "Plaque"
-
msgid "Brim"
msgstr "Bordure"
@@ -3469,9 +3687,6 @@ msgstr "Ajouter un Modèle Personnalisé"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Insérer un G-code personnalisé au début de cette couche."
-msgid "Filament "
-msgstr "Filament "
-
msgid "Change filament at the beginning of this layer."
msgstr "Changez le filament au début de cette couche."
@@ -3560,8 +3775,10 @@ msgstr "Modifier quand même"
msgid "Off"
msgstr "Désactivé"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
-msgstr "Filtrer"
+msgstr "Filtre"
msgid "Enabling filtration redirects the right fan to filter gas, which may reduce cooling performance."
msgstr "L'activation de la filtration redirige le ventilateur droit pour filtrer les gaz, ce qui peut réduire les performances de refroidissement."
@@ -3674,12 +3891,19 @@ msgid "Check filament location"
msgstr "Vérification de la position du filament"
# AI Translated
-msgid "Switch"
-msgstr "Commuter"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Mettre en pause"
# AI Translated
-msgid "hotend"
-msgstr "hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Changer d’extrudeur"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Changer de hotend"
# AI Translated
msgid "Wait for AMS cooling"
@@ -3848,8 +4072,10 @@ msgid "Arranging"
msgstr "Agencement"
# AI Translated
-msgid "Arranging "
-msgstr "Agencement "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Agencement de %1%"
msgid "Arranging canceled."
msgstr "Agencement annulé."
@@ -3888,8 +4114,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Orienter…"
-msgid "Orienting"
-msgstr "Orienter"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Orientation de %1%"
msgid "Orienting canceled."
msgstr "Orientation annulée."
@@ -3897,6 +4126,12 @@ msgstr "Orientation annulée."
msgid "Filling"
msgstr "Remplissage"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Remplissage du plateau avec %1%"
+
msgid "Bed filling canceled."
msgstr "Remplissage de plateau annulé."
@@ -3912,6 +4147,34 @@ msgstr "Recherche d'orientation annulée."
msgid "Orientation found."
msgstr "Orientation trouvée."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Meilleure qualité de surface"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Optimise la rotation de l’objet pour obtenir la meilleure qualité de surface."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Pentes de surplomb réduites"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Optimise la rotation de l’objet pour réduire au minimum les surplombs nécessitant des supports.\n"
+"Notez que cette méthode essaie de trouver la meilleure face de l’objet pour toucher le plateau si aucune élévation n’est définie."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Hauteur Z minimale"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Fait pivoter le modèle pour obtenir la hauteur Z la plus basse et un temps d’impression plus court."
+
msgid "Logging in"
msgstr "Connexion en cours"
@@ -4197,6 +4460,16 @@ msgstr "Projets récents"
msgid "Go to Plate"
msgstr "Aller à la plaque"
+msgid "Device"
+msgstr "Appareil"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Appareil (Web)"
+
+msgid "Multi-device"
+msgstr "Multi-appareils"
+
msgid "AMS Materials Setting"
msgstr "Réglage des matériaux AMS"
@@ -4223,9 +4496,6 @@ msgstr "La valeur saisie doit être supérieure à %1% et inférieure à %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Facteurs de calibration dynamique du débit"
-msgid "Wiki Guide"
-msgstr "Guide wiki"
-
msgid "PA Profile"
msgstr "Profil PA"
@@ -4255,6 +4525,14 @@ msgstr "Veuillez saisir une valeur valide (K entre %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Veuillez saisir une valeur valide (K entre %.1f~%.1f, N entre %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Filaments favoris"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Tous les filaments"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4315,7 +4593,7 @@ msgstr "Enregistrer"
msgctxt "Navigation"
msgid "Back"
-msgstr "Arrière"
+msgstr "Retour"
msgid "Example"
msgstr "Exemple"
@@ -4571,11 +4849,11 @@ msgstr "Le plug-in réseau a été installé mais n'a pas pu être chargé. Veui
msgid "Restart Required"
msgstr "Redémarrage requis"
-msgid "Please home all axes (click "
-msgstr "Veuillez mettre à 0 les axes (cliquer "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") pour localiser la position de la tête. Cela évite de dépasser la limite imprimable et de provoquer une usure de l'équipement."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Veuillez mettre à zéro tous les axes (cliquez sur %1%) pour localiser la position de la tête d’outil. Cela évite que l’appareil ne dépasse la limite imprimable et n’use l’équipement."
msgid "Go Home"
msgstr "Retour 0"
@@ -4590,6 +4868,10 @@ msgstr "Une erreur fatale s’est produite : « %1% »"
msgid "Please save your project and restart the application."
msgstr "Veuillez enregistrer le projet et redémarrer le programme."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Exception C++ inconnue."
+
msgid "Processing G-Code from previous file…"
msgstr "Traitement du G-Code du fichier précédent…"
@@ -4810,6 +5092,14 @@ msgstr "L’ajuster automatiquement à la limite (%g mm) ?"
msgid "Adjust"
msgstr "Ajuster"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Le radeau et le paravent ne sont pas disponibles sur les imprimantes à tapis.\n"
+"Ils ont été désactivés."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5646,9 +5936,6 @@ msgstr "Retrancher automatiquement selon le regroupement optimal des filaments,
msgid "Filament Grouping"
msgstr "Regroupement des filaments"
-msgid "Why this grouping"
-msgstr "Pourquoi ce regroupement"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Veuillez placer les filaments sur l'imprimante en fonction du résultat du regroupement."
@@ -5658,29 +5945,47 @@ msgstr "Astuces:"
msgid "Current grouping of slice result is not optimal."
msgstr "Le regroupement actuel du résultat de tranchage n'est pas optimal."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Augmentation de %1%g de filament et %2% changements par rapport au regroupement optimal."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Augmentation de %1%g de filament et de %2% changement par rapport au regroupement optimal."
+msgstr[1] "Augmentation de %1%g de filament et de %2% changements par rapport au regroupement optimal."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Augmentation de %1%g de filament et économie de %2% changements par rapport au regroupement optimal."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Augmentation de %1%g de filament et économie de %2% changement par rapport au regroupement optimal."
+msgstr[1] "Augmentation de %1%g de filament et économie de %2% changements par rapport au regroupement optimal."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Économie de %1%g de filament et augmentation de %2% changements par rapport au regroupement optimal."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Économie de %1%g de filament et augmentation de %2% changement par rapport au regroupement optimal."
+msgstr[1] "Économie de %1%g de filament et augmentation de %2% changements par rapport au regroupement optimal."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Économie de %1%g de filament et %2% changements par rapport à une imprimante à une seule buse."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Économie de %1%g de filament et de %2% changement par rapport à une imprimante à une seule buse."
+msgstr[1] "Économie de %1%g de filament et de %2% changements par rapport à une imprimante à une seule buse."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Économie de %1%g de filament et augmentation de %2% changements par rapport à une imprimante à une seule buse."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Économie de %1%g de filament et augmentation de %2% changement par rapport à une imprimante à une seule buse."
+msgstr[1] "Économie de %1%g de filament et augmentation de %2% changements par rapport à une imprimante à une seule buse."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Augmentation de %1%g de filament et économie de %2% changements par rapport à une imprimante à une seule buse."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Augmentation de %1%g de filament et économie de %2% changement par rapport à une imprimante à une seule buse."
+msgstr[1] "Augmentation de %1%g de filament et économie de %2% changements par rapport à une imprimante à une seule buse."
msgid "Set to Optimal"
msgstr "Définir comme optimal"
@@ -5837,11 +6142,60 @@ msgstr "Augmenter/diminuer la zone d'édition"
msgid "Sequence"
msgstr "Séquence"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Centre de masse de la plaque"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Centre de masse de la pièce"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Centre de masse des supports"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Centre de masse de l'assemblage"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Centre de masse de l'objet"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Impression terminée"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Imprimé jusqu'à la couche %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Poids"
+
+msgid "Volume"
+msgstr "Volume"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Centre dans la boîte de délimitation"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Taille de la boîte de délimitation"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Moment d'inertie"
+
msgid "Object selection"
msgstr "Sélection d’objet"
-msgid "number keys"
-msgstr "touches numériques"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "Touches numériques 1~16"
msgid "Number keys can quickly change the color of objects"
msgstr "Les touches numériques peuvent rapidement changer la couleur des objets"
@@ -6047,9 +6401,20 @@ msgstr "Axes"
msgid "Gridlines"
msgstr "Quadrillage"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Étiquettes"
+# AI Translated
+msgid "Center of mass"
+msgstr "Centre de masse"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Afficher le G-code brut (tapis uniquement)"
+
# AI Translated
msgid "Move section plane"
msgstr "Déplacer le plan de coupe"
@@ -6098,7 +6463,7 @@ msgstr "Volume :"
msgid "Size:"
msgstr "Taille :"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Des conflits de chemins G-code ont été trouvés au niveau de la couche %d, z = %.2lfmm. Veuillez séparer davantage les objets en conflit (%s <-> %s)."
@@ -6118,21 +6483,19 @@ msgstr "L'impression de 2 filaments TPU ou plus n'est pas prise en charge."
msgid "Tool %d"
msgstr "Outil %d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Le filament %s est placé dans le/la %s, mais le chemin G-code généré dépasse la zone d'impression du/de la %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Les filaments %s sont placés dans le/la %s, mais le chemin G-code généré dépasse la zone d'impression du/de la %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "Le filament %s est placé dans le/la %s, mais le chemin G-code généré dépasse la zone d’impression du/de la %s."
+msgstr[1] "Les filaments %s sont placés dans le/la %s, mais le chemin G-code généré dépasse la zone d’impression du/de la %s."
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Le filament %s est placé dans le/la %s, mais le chemin G-code généré dépasse la hauteur d'impression du/de la %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Les filaments %s sont placés dans le/la %s, mais le chemin G-code généré dépasse la hauteur d'impression du/de la %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "Le filament %s est placé dans le/la %s, mais le chemin G-code généré dépasse la hauteur d’impression du/de la %s."
+msgstr[1] "Les filaments %s sont placés dans le/la %s, mais le chemin G-code généré dépasse la hauteur d’impression du/de la %s."
msgid "Open wiki for more information."
msgstr "Ouvrir le wiki pour plus d'informations."
@@ -6140,9 +6503,12 @@ msgstr "Ouvrir le wiki pour plus d'informations."
msgid "Only the object being edited is visible."
msgstr "Seul l'objet en cours d'édition est visible."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Les filaments %s ne peuvent pas être imprimés directement sur la surface de cette plaque."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "Le filament %s ne peut pas être imprimé directement sur la surface de cette plaque."
+msgstr[1] "Les filaments %s ne peuvent pas être imprimés directement sur la surface de cette plaque."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "Des filaments PLA et PETG ont été détectés dans le mélange. Ajustez les paramètres selon le Wiki pour garantir la qualité d'impression."
@@ -6265,27 +6631,20 @@ msgstr "Préparer"
msgid "Preview"
msgstr "Aperçu"
-msgid "Device"
-msgstr "Appareil"
-
-msgid "Multi-device"
-msgstr "Multi-appareils"
-
msgid "Project"
msgstr "Projet"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Appareil (Web)"
-
msgid "Yes"
msgstr "Oui"
msgid "No"
msgstr "Non"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "sera fermé avant de créer un nouveau modèle. Voulez-vous continuer ?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s sera fermé avant de créer un nouveau modèle. Voulez-vous continuer ?"
msgid "Print all"
msgstr "Tout imprimer"
@@ -6330,6 +6689,10 @@ msgstr "Assistant de configuration"
msgid "Show Configuration Folder"
msgstr "Afficher le dossier de configuration"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Restaurer les préréglages de filament qu’une mise à jour de profil a retirés des imprimantes pour lesquelles ils ont été créés"
+
msgid "Troubleshoot Center"
msgstr "Centre de dépannage"
@@ -6569,6 +6932,14 @@ msgstr "Afficher le quadrillage"
msgid "Show Gridlines on plate"
msgstr "Afficher le quadrillage sur la plaque"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Afficher la tête d'outil IDEX/IQEX"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Affiche la représentation de la tête d'outil IDEX/IQEX autour de chaque buse active dans l'aperçu du G-code."
+
msgid "Reset Window Layout"
msgstr "Réinitialiser la présentation de la fenêtre"
@@ -7196,6 +7567,8 @@ msgstr "Noter"
msgid "Calculating..."
msgstr "Calcul en cours…"
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Caméra"
@@ -7277,9 +7650,12 @@ msgstr "Téléchargement…"
msgid "Cloud Slicing..."
msgstr "Découpe par le Cloud…"
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "Dans la file d’attente Cloud Slicing, il reste %s tâches en attente."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "Dans la file d’attente Cloud Slicing, il reste %d tâche en attente."
+msgstr[1] "Dans la file d’attente Cloud Slicing, il reste %d tâches en attente."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7310,6 +7686,11 @@ msgstr "Cela ne prend effet que pendant l'impression"
msgid "Silent"
msgstr "Silencieux"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Standard"
+
msgid "Sport"
msgstr "Sport"
@@ -7364,17 +7745,29 @@ msgstr "Envoyer des images"
msgid "Number of images successfully uploaded"
msgstr "Nombre d’images envoyées avec succès"
-msgid " upload failed"
-msgstr " échec de l’envoi"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Échec de l’envoi de %s"
-msgid " upload config prase failed\n"
-msgstr " échec de l’analyse de la configuration de l’envoi\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Échec de l’analyse de la configuration d’envoi de %s"
-msgid " No corresponding storage bucket\n"
-msgstr " Aucun compartiment de stockage correspondant\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s : aucun compartiment de stockage correspondant"
-msgid " cannot be opened\n"
-msgstr " ne peut pas être ouvert\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s ne peut pas être ouvert"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7392,26 +7785,22 @@ msgstr "Échec de l’envoi\n"
msgid "Obtaining instance_id failed\n"
msgstr "échec de l’obtention de l’instance_id\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Le résultat de votre commentaire ne peut pas être téléchargé pour certaines raisons :\n"
-"\n"
-" code d’erreur : "
-
-msgid "error message: "
-msgstr "message d’erreur : "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Le résultat de votre commentaire ne peut pas être envoyé pour les raisons suivantes :\n"
"\n"
+" code d’erreur : %d\n"
+" message d’erreur : %s\n"
"\n"
-"Souhaitez-vous être redirigé vers la page Web pour l’évaluation ?"
+"Voulez-vous être redirigé vers la page web pour donner une note ?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Certaines de vos images n’ont pas pu être envoyées. Souhaitez-vous être redirigé vers la page Web pour l’évaluation ?"
@@ -8214,6 +8603,108 @@ msgstr "Afficher tous les paramètres de l'objet"
msgid "Material settings"
msgstr "Réglages des matériaux"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Chaque mode indique les têtes d'outil qui y participent et le rôle de chacune. Cliquez sur le bouton d'un outil pour faire défiler ses rôles — survolez une couleur ci-dessous pour voir ce que fait chaque rôle."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Ajouter un mode"
+
+# AI Translated
+msgid "Tools"
+msgstr "Outils"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Nom du mode tel qu'il apparaît dans le sélecteur de mode IDEX/IQEX de la plaque. Obligatoire — un mode sans nom ne peut pas être sélectionné."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Les têtes d'outil qui participent au mode et le rôle de chacune. Cliquez sur une case pour faire défiler son rôle."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code exécuté au début de l'impression pour placer l'imprimante dans ce mode (par exemple un appel Klipper SET_PRINT_MODE). Le logiciel de découpe ne génère que les parcours de l'outil Principal (Primary) ; le firmware pilote les autres."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Inactif"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Principal"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Copie"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Miroir"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Pilote tous les parcours découpés. Toujours l'outil 0 — utilisez « Position de l'outil 0 » ci-dessus pour choisir le coin du plateau qu'il occupe. Il ne peut pas être modifié depuis la grille."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Suit l'outil Principal (Primary) au niveau du firmware, en imprimant les mêmes parcours décalés dans sa propre zone."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Suit l'outil Principal (Primary) au niveau du firmware, en imprimant les mêmes parcours en symétrie par rapport à la limite entre les deux zones."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Désigne un outil du portique de l'outil Principal (Primary) comme son partenaire multicolore. Requis pour permettre l'impression multicolore dans les modes à portiques appariés."
+
+# AI Translated
+msgid "Primary"
+msgstr "Principal"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Nom du mode (obligatoire)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Nom de ce mode parallèle, tel qu'il apparaît dans le sélecteur de mode IDEX/IQEX de la plaque. Le projet l'enregistre par son nom : renommer un mode déjà utilisé par des plaques les fait revenir au mode Principal (Primary). Ne peut pas être vide — un nom vide est remplacé par un nom généré."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code émis une seule fois au début d'une impression utilisant ce mode, avant le G-code de démarrage de la machine. C'est ici que l'imprimante est placée dans le mode firmware correspondant — par exemple un appel Klipper SET_PRINT_MODE ou un M567 RepRapFirmware — car le logiciel de découpe ne génère que les parcours de l'outil Principal (Primary) et le firmware pilote les outils Copie (Copy) / Miroir (Mirror). Les placeholders sont pris en charge ; utilisez le bouton d'édition pour les parcourir. Laissez vide si le mode ne nécessite aucune configuration du firmware."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Modifier le G-code / parcourir les placeholders"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Supprimer le mode"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Annuler les modifications de ce mode faites pendant la session (revenir à la valeur enregistrée)"
+
msgid "Remove current plate (if not last one)"
msgstr "Retirer la plaque actuelle (si elle n'est pas la dernière)"
@@ -8238,12 +8729,33 @@ msgstr "Modifier le nom de la plaque actuelle"
msgid "Move plate to the front"
msgstr "Déplacer la plaque vers l’avant"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "Mode IDEX/IQEX : %1% (préréglage de traitement : %2%) (clic gauche pour changer, clic droit pour le menu)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "Mode IDEX/IQEX : %1% (clic gauche pour changer, clic droit pour le menu)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Avertissement : cette plaque utilise un mode parallèle IDEX/IQEX avec des objets multi-matériaux. Procédez avec prudence — vérifiez que votre G-code gère correctement cette combinaison."
+
msgid "Customize current plate"
msgstr "Personnaliser la plaque actuelle"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "La buse %s ne peut pas imprimer %s."
+msgid "The left nozzle cannot print %s."
+msgstr "La buse gauche ne peut pas imprimer %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "La buse droite ne peut pas imprimer %s."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8253,12 +8765,18 @@ msgstr "L’impression d’un filament de couleur mixte sur une imprimante à ex
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Le mélange de %1% avec %2% lors de l'impression n'est pas recommandé.\n"
-msgid " nozzle"
-msgstr " buse"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Il n'est pas recommandé d'imprimer le(s) filament(s) suivant(s) avec %1% : %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "Buse %1%mm %2%"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Il n’est pas recommandé d’imprimer le filament suivant avec %1% : %2%\n"
+msgstr[1] "Il n’est pas recommandé d’imprimer les filaments suivants avec %1% : %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "Il n'est pas recommandé d'utiliser les combinaisons buse/filament suivantes :\n"
@@ -8267,9 +8785,11 @@ msgstr "Il n'est pas recommandé d'utiliser les combinaisons buse/filament suiva
msgid "%1% with %2%\n"
msgstr "%1% avec %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " plaque %1% :"
+msgid "Slicing plate %1%: %2%"
+msgstr "Découpe de la plaque %1% : %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Nom invalide, les caractères suivants ne sont pas autorisés :"
@@ -8304,12 +8824,6 @@ msgstr "AMS (1 emplacement)"
msgid "Not installed"
msgstr "Non installé"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "Le logiciel ne prend pas en charge l'utilisation de buses de diamètres différents pour une même impression. Si les buses gauche et droite sont différentes, nous ne pouvons procéder qu'avec une impression à tête unique. Veuillez confirmer quelle buse vous souhaitez utiliser pour ce projet."
-
-msgid "Switch diameter"
-msgstr "Changer le diamètre"
-
msgid "Configuration incompatible"
msgstr "Configuration incompatible"
@@ -8391,6 +8905,10 @@ msgstr "Filament mixte"
msgid "Remove last mixed filament"
msgstr "Supprimer le dernier filament mixte"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Supprimer tous les filaments mixtes"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Ajouter un filament mixte"
@@ -8413,6 +8931,13 @@ msgstr "Le filament mixte comporte des références de composants invalides"
msgid "Edit / Delete / Merge"
msgstr "Éditer / Supprimer / Fusionner"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Supprimer %1% filament mixte ?"
+msgstr[1] "Supprimer les %1% filaments mixtes ?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Le filament mixte cible utilise ce filament physique comme composant. La fusion supprimera ce filament physique et risque de rendre le filament mixte invalide. Continuer ?"
@@ -8487,9 +9012,6 @@ msgstr "Chargement du fichier : %s"
msgid "Load 3MF"
msgstr "Charger 3MF"
-msgid "BambuStudio Project"
-msgstr "Projet BambuStudio"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "Le 3MF n'est pas pris en charge par OrcaSlicer, chargement des données géométriques uniquement."
@@ -8519,17 +9041,6 @@ msgstr "Vous feriez mieux de mettre à jour votre logiciel.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "La version %s du 3MF est plus récente que la version %s de %s. Nous vous suggérons de mettre à jour votre logiciel."
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "Le fichier 3MF a été créé par BambuStudio (version %s), plus récente que la version compatible %s. Paramètres non reconnus détectés :"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "Le fichier 3MF a été créé par BambuStudio (version %s), plus récente que la version compatible %s. Certains paramètres peuvent ne pas être totalement compatibles."
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "Le fichier 3MF a été créé par BambuStudio. Certains paramètres peuvent différer de ceux d’OrcaSlicer."
-
msgid "Invalid values found in the 3MF:"
msgstr "Valeurs invalides trouvées dans le 3MF :"
@@ -8694,6 +9205,15 @@ msgstr "Désactiver le dépôt automatique pour préserver le positionnement en
msgid "Object with floating parts was detected"
msgstr "Un objet comportant des parties flottantes a été détecté"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Découpage impossible : un objet chevauche une zone réservée à l'impression parallèle IDEX/IQEX (une zone secondaire, ou une bande de dégagement de chariot dans la zone principale)."
+
+# AI Translated
+# Needs human review: Glossary cell for Prime tower / Wipe tower is unsettled (⚠); used the catalog's Tour d’amorçage
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Découpage impossible : la tour d’amorçage chevauche une zone réservée à l'impression parallèle IDEX/IQEX (une zone secondaire, ou une bande de dégagement de chariot dans la zone principale)."
+
msgid "Another export job is running."
msgstr "Une autre tâche d'exportation est en cours d'exécution."
@@ -8746,8 +9266,9 @@ msgstr "Volumes remplacés"
msgid "Please select a file"
msgstr "Veuillez sélectionner un fichier"
-msgid "Do you want to replace it"
-msgstr "Voulez-vous le remplacer"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Voulez-vous le remplacer ?"
msgid "Message"
msgstr "Message"
@@ -8776,6 +9297,50 @@ msgstr "Donnée non valide"
msgid "Slicing Canceled"
msgstr "Découpe annulée"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Conflit de température du plateau : T%d (%s) règle le plateau à %d℃ — T%d (%s) nécessite %d℃. L’outil principal contrôle le plateau ; les outils secondaires impriment à la température qu’il définit."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Types de filament incompatibles : T%d utilise %s et T%d utilise %s. Ces matériaux ont des exigences contradictoires et ne sont pas conçus pour être imprimés ensemble."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"Le mode parallèle IDEX/IQEX est actif sur la plaque %d, avec les points d'attention suivants :\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Continuer le découpage ?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Avertissement du mode parallèle IDEX/IQEX"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Ne plus afficher ces avertissements"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Plaque %d :\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Les points d'attention suivants ont été détectés pour le mode parallèle IDEX/IQEX :\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Plug-in réseau changé avec succès."
@@ -8808,8 +9373,8 @@ msgid "Sync now"
msgstr "Synchroniser maintenant"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Impossible d’annuler ou de rétablir pendant qu’une opération est en cours. Arrêtez-la d’abord."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Impossible d'annuler ou de rétablir pendant qu'une opération est en cours. Arrêtez l'opération, ou attendez qu'elle se termine, puis réessayez."
# AI Translated
msgid ""
@@ -8880,6 +9445,14 @@ msgstr "Le téléchargement a échoué, exception de taille de fichier."
msgid "Project downloaded %d%%"
msgstr "Projet téléchargé à %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"Les tests Ligne PA et Motif PA ne sont pas encore disponibles sur les imprimantes à tapis.\n"
+"Veuillez plutôt utiliser la méthode Tour PA."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Test de Pressure Advance"
@@ -8887,11 +9460,15 @@ msgstr "Test de Pressure Advance"
msgid "INFO:"
msgstr "INFO :"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Aucune accélération n’est fournie pour l’étalonnage. Utiliser la valeur d’accélération par défaut "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Aucune accélération n’est fournie pour l’étalonnage. Utiliser la valeur d’accélération par défaut %1%mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Aucune vitesse n’est fournie pour l’étalonnage. Utiliser la vitesse optimale par défaut "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Aucune vitesse n’est fournie pour l’étalonnage. Utiliser la vitesse optimale par défaut %1%mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -8906,6 +9483,15 @@ msgstr "Calibration du débit Orca YOLO"
msgid "Flowrate Test - Pass%d"
msgstr "Test de débit - Passe %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Aucune tour de température pour tapis n’est disponible pour la plage de %1% à %2%℃. Utilisez une plage couverte par les modèles de tour, par exemple de 230 à 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Tour de température"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Test de température de buse"
@@ -8929,11 +9515,16 @@ msgstr "Test de virage"
msgid "Import SLA archive"
msgstr "Importer les archives SLA"
-msgid "The selected file"
-msgstr "Le fichier sélectionné"
-
-msgid "Does not contain valid G-code."
-msgstr "ne contient pas de G-code valide."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Le fichier sélectionné :\n"
+"%1%\n"
+"ne contient pas de G-code valide."
msgid "An Error has occurred while loading the G-code file."
msgstr "Une erreur s'est produite lors du chargement du fichier G-code."
@@ -9205,6 +9796,27 @@ msgstr "Actuellement, le formulaire de configuration d'objet ne peut pas être u
msgid "Not available"
msgstr "Non disponible"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (aucune plaque)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — aucun filament acheminé\n"
+"Ajoutez un extrudeur dans l’onglet Machine pour que cette tête dispose d’un emplacement de filament."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> filament %2%"
+
msgid "isometric"
msgstr "isométrique"
@@ -9244,6 +9856,8 @@ msgstr "Europe"
msgid "North America"
msgstr "Amérique du Nord"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "Autres"
@@ -9318,11 +9932,17 @@ msgstr "Échec du rechargement du plug-in réseau. Veuillez redémarrer l'applic
msgid "Reload Failed"
msgstr "Échec du rechargement"
-msgid "Associate"
-msgstr "Associer"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Associer %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "avec OrcaSlicer afin qu’Orca puisse ouvrir des modèles à partir de"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Associer %s:// à OrcaSlicer afin qu’Orca puisse ouvrir des modèles depuis %s"
msgid "Current Association: "
msgstr "Association actuelle : "
@@ -9610,6 +10230,9 @@ msgstr "Mémoriser la dernière action d’impression"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Si cette option est activée, OrcaSlicer mémorise la dernière option sélectionnée dans le menu déroulant du bouton d’impression (par ex. Imprimer, Exporter le fichier découpé de la plaque, Exporter le fichier G-code) et l’utilise par défaut au prochain démarrage."
+msgid "Camera"
+msgstr "Caméra"
+
msgid "Touchpad"
msgstr "Pavé tactile"
@@ -10032,6 +10655,9 @@ msgstr "Version du plug-in réseau"
msgid "Select the network plug-in version to use"
msgstr "Sélectionner la version du plug-in réseau à utiliser"
+msgid "Associate"
+msgstr "Associer"
+
msgid "Associate files to OrcaSlicer"
msgstr "Associer des fichiers à Orca Slicer"
@@ -10080,6 +10706,12 @@ msgstr "Afficher les préréglages non pris en charge"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Affiche les préréglages incompatibles ou non pris en charge dans les listes déroulantes d’imprimantes et de filaments. Ces préréglages ne peuvent pas être sélectionnés."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Experimental Features"
msgstr "Fonctionnalités expérimentales"
@@ -10363,10 +10995,6 @@ msgstr "Publier 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Sélectionnez les réglages à publier dans le fichier 3MF"
-# AI Translated
-msgid "Video Guide"
-msgstr "Guide vidéo"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Filament mixte - publié dans son ensemble lorsque « Activer » est coché ci-dessus"
@@ -10529,6 +11157,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Simple"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s depuis %s"
+
# AI Translated
msgid "Search actions"
msgstr "Rechercher des actions"
@@ -10636,6 +11270,10 @@ msgstr "Afficher les détails"
msgid "Hide details"
msgstr "Masquer les détails"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "La vue Web n’est pas disponible."
+
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
msgstr "\"%s\" est un paramètre Développeur. Activer le mode développeur pour le modifier ?"
@@ -10916,9 +11554,12 @@ msgstr "Échec de l’envoi"
msgid "The name length exceeds the limit."
msgstr "La longueur du nom dépasse la limite."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Coût de %dg de filament et %d changements de plus que le regroupement optimal."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Coût de %dg de filament et de %d changement de plus que le regroupement optimal."
+msgstr[1] "Coût de %dg de filament et de %d changements de plus que le regroupement optimal."
# AI Translated
msgid "Right-Ext"
@@ -11008,6 +11649,10 @@ msgstr "Certains filaments peuvent changer d'extrudeur pendant l'impression. L'
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "Ce fichier contient un filament sujet au stringing. Pour une qualité d'impression optimale, nous recommandons de passer la détection d'agglutination de la buse en mode Auto."
+# AI Translated
+msgid "Switch"
+msgstr "Commuter"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Si « Étalonnage dynamique du débit » est réglé sur Auto/Activé, le système utilisera la valeur d'étalonnage manuel ou la valeur par défaut et ignorera le processus d'étalonnage du débit. Vous pouvez effectuer un étalonnage manuel du débit pour le filament TPU sur la page « Étalonnage »."
@@ -11314,6 +11959,10 @@ msgstr "La synchronisation entre des entraînements d’extrudeur ou des types d
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Synchroniser la modification des paramètres avec les paramètres correspondants d’un autre extrudeur."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Les paramètres affichant cette icône peuvent être configurés par buse."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Cliquez pour rétablir tous les paramètres au dernier préréglage enregistré."
@@ -11336,6 +11985,7 @@ msgid "Enabling both precise Z height and the prime tower may cause slicing erro
msgstr "L'activation simultanée de la hauteur Z précise et de la tour d'amorçage peut provoquer des erreurs de tranchage. Voulez-vous quand même activer la hauteur Z précise ?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’amorçage"; align it once the term is settled.
msgid "Smooth timelapse needs a prime tower on every layer, which is not compatible with \"No sparse layers\". \"No sparse layers\" has been turned off."
msgstr "Le timelapse fluide nécessite une tour d’amorçage à chaque couche, ce qui est incompatible avec « Pas de couches éparses ». « Pas de couches éparses » a été désactivé."
@@ -11343,6 +11993,7 @@ msgid "A prime tower is required for smooth timelapse mode. There may be flaws o
msgstr "Une tour d’amorçage est requise pour le mode timelapse fluide. Le modèle peut présenter des défauts sans tour d’amorçage. Voulez-vous activer la tour d’amorçage ?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’amorçage"; align it once the term is settled.
msgid "\"No sparse layers\" is not compatible with smooth timelapse, which needs a prime tower on every layer. Timelapse has been switched to traditional mode."
msgstr "« Pas de couches éparses » est incompatible avec le timelapse fluide, qui nécessite une tour d’amorçage à chaque couche. Le timelapse est repassé en mode traditionnel."
@@ -11544,6 +12195,9 @@ msgstr "Filament pour les caractéristiques"
msgid "Ooze prevention"
msgstr "Prévention des suintements"
+msgid "Others"
+msgstr "Autres"
+
msgid "Special mode"
msgstr "Mode spécial"
@@ -11584,8 +12238,11 @@ msgstr[1] ""
"Les lignes suivantes %s contiennent des mots-clés réservés.\n"
"Veuillez les supprimer, sans quoi la visualisation du G-code et l’estimation du temps d’impression seront faussées."
-msgid "Reserved keywords found"
-msgstr "Mots clés réservés trouvés"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Mots clés réservés trouvés dans %1%"
msgid "Setting Overrides"
msgstr "Forçage des réglages"
@@ -11723,7 +12380,16 @@ msgstr "Espace imprimable"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Sélectionner l'implémentation de l'agent réseau pour la communication avec l'imprimante. Les agents disponibles sont enregistrés au démarrage."
+# AI Translated
+msgid "Belt printer"
+msgstr "Imprimante à tapis"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Transformations du repère machine"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Valeur non valide fournie pour le réglage %1% : %2%"
@@ -11836,9 +12502,29 @@ msgstr "Diamètre de la buse"
msgid "Wipe tower"
msgstr "Tour d’essuyage"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Tour de purge du tapis"
+
msgid "Single extruder multi-material parameters"
msgstr "Paramètres multi-matériaux pour extrudeur unique"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "Configuration IDEX/IQEX"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Avertissements avant découpage"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Affiche une boîte de dialogue d'avertissement avant le découpage si des points d'attention du mode parallèle IDEX/IQEX sont détectés (conflits de température du plateau, types de filament incompatibles, conflits multi-matériaux). Peut être désactivé depuis la boîte de dialogue elle-même. Réactivez-le ici en cas de désactivation accidentelle."
+
+# AI Translated
+msgid "Modes"
+msgstr "Modes"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Il s’agit d’une imprimante mono extrudeur multimatériaux, les diamètres de tous les extrudeurs seront réglés sur la nouvelle valeur. Voulez-vous continuer ?"
@@ -11848,6 +12534,22 @@ msgstr "Limites de hauteur de couche"
msgid "Z-Hop"
msgstr "Saut en Z"
+# AI Translated
+msgid "Front-left"
+msgstr "Avant gauche"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Avant droit"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Arrière gauche"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Arrière droit"
+
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
"\n"
@@ -11869,22 +12571,37 @@ msgstr "Utiliser la valeur modifiée"
msgid "Detached"
msgstr "Détaché"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% et %2% sont associés à cette imprimante. Ces préréglages seront supprimés si l’imprimante est supprimée."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "Le préréglage de filament %d et le préréglage de processus %d sont associés à cette imprimante. Ces préréglages seront supprimés si l’imprimante est supprimée."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d préréglage de filament"
+msgstr[1] "%d préréglages de filament"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d préréglage de traitement"
+msgstr[1] "%d préréglages de traitement"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Les préréglages hérités d’autres préréglages ne peuvent pas être supprimés !"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Les préréglages suivants héritent de ce préréglage."
-msgstr[1] "Le préréglage suivant hérite de ce préréglage."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "Le préréglage suivant hérite de ce préréglage."
+msgstr[1] "Les préréglages suivants héritent de ce préréglage."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% Préréglage"
+msgid "Delete Preset"
+msgstr "Supprimer le préréglage"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -11898,9 +12615,9 @@ msgstr ""
"Voulez-vous vraiment supprimer le préréglage sélectionné ?\n"
"Si le préréglage correspond à un filament actuellement utilisé sur votre imprimante, veuillez réinitialiser les informations sur le filament pour cet emplacement."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Voulez-vous vraiment %1% le préréglage sélectionné ?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Voulez-vous vraiment supprimer le préréglage sélectionné ?"
msgid "Select printers"
msgstr "Sélectionner les imprimantes"
@@ -11953,9 +12670,40 @@ msgstr "Continuer"
msgid "Don't warn again for this preset"
msgstr "Ne plus avertir pour ce préréglage"
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s : %s"
+# AI Translated
+# Needs human review: Short nozzle-flow tag (Standard Flow) kept as the English abbreviation; check whether a French abbreviation such as DS (Débit Standard) is preferred where the tag is shown.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Short nozzle-flow tag (High Flow) kept as the English abbreviation; check whether a French abbreviation such as HD (Haut débit) is preferred where the tag is shown.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Short nozzle-flow tag (TPU High Flow) kept as the English abbreviation; check whether a French abbreviation is preferred where the tag is shown.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Short nozzle-flow tag (E3D High Flow) kept as the English abbreviation; check whether a French abbreviation is preferred where the tag is shown.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short nozzle-flow tag (Extra High Flow) kept as the English abbreviation; check whether a French abbreviation is preferred where the tag is shown.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
msgid "No modifications need to be copied."
msgstr "Aucune modification à copier."
@@ -12152,6 +12900,12 @@ msgstr "L’un des préréglages n’existe pas."
msgid "Compared presets has different printer technology"
msgstr "Les préréglages comparés utilisent une technologie d’imprimante différente."
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "« %1% » vs « %2% »"
+
msgid "Add File"
msgstr "Ajouter un Fichier"
@@ -12177,6 +12931,22 @@ msgstr "Nomenclature"
msgid "Assembly Guide"
msgstr "Guide d'assemblage"
+# AI Translated
+msgid "Image files"
+msgstr "Fichiers image"
+
+# AI Translated
+msgid "TXT files"
+msgstr "Fichiers TXT"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "Fichiers EXCEL"
+
+# AI Translated
+msgid "PDF files"
+msgstr "Fichiers PDF"
+
msgid "Author"
msgstr "Auteur"
@@ -12376,9 +13146,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Bourrage total"
-msgid "Volume"
-msgstr "Volume"
-
msgid "Ramming line"
msgstr "Ligne de bourrage"
@@ -12405,8 +13172,10 @@ msgstr "Multiplicateur"
msgid "Flushing volumes for filament change"
msgstr "Volumes de purge pour le changement de filament"
-msgid "Please choose the filament color"
-msgstr "Veuillez choisir la couleur du filament"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "de/vers"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "L’agent cloud n’est pas disponible. Veuillez redémarrer OrcaSlicer et réessayer."
@@ -12426,6 +13195,140 @@ msgstr "Échec de la connexion. Veuillez réessayer."
msgid "parse json failed"
msgstr "Échec de l’analyse du JSON"
+msgid "Loading…"
+msgstr "Chargement en cours…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Personnalisé"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Bienvenue sur Orca Slicer"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer sera configuré en plusieurs étapes. Commençons !"
+
+msgid "Get Started"
+msgstr "Commencer"
+
+msgid "Please select your login region"
+msgstr "Veuillez sélectionner votre région de connexion"
+
+msgid "Finish"
+msgstr "Terminer"
+
+msgid "Printer Selection"
+msgstr "Sélection de l'imprimante"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Fabricants"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Imprimante personnalisée"
+
+msgid "Create"
+msgstr "Créer"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Rechercher de nouvelles imprimantes"
+
+msgid "At least one printer must be selected."
+msgstr "Au moins une imprimante doit être sélectionnée."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Nouvelles imprimantes trouvées"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Nouveaux fabricants d'imprimantes installés : %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "De nouveaux fabricants d'imprimantes ont été trouvés, mais l'installation a été annulée."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Aucune nouvelle imprimante trouvée."
+
+msgid "Filament Selection"
+msgstr "Sélection des filaments"
+
+msgid "System Filaments"
+msgstr "Filaments du système"
+
+msgid "Custom Filaments"
+msgstr "Filaments personnalisés"
+
+msgid "Create New"
+msgstr "Créer un nouveau filament"
+
+msgid "Filament type"
+msgstr "Filament"
+
+msgid "Vendor"
+msgstr "Fabricant"
+
+# AI Translated
+msgid "No items"
+msgstr "Aucun élément"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Filtrer les éléments"
+
+# AI Translated
+msgid "Checked"
+msgstr "Cochés"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Non cochés"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Sélectionner les éléments filtrés"
+
+# AI Translated
+msgid "Clear all"
+msgstr "Tout effacer"
+
+msgid "At least one filament must be selected."
+msgstr "Au moins un filament doit être sélectionné."
+
+msgid "Do you want to use the default filament?"
+msgstr "Voulez-vous utiliser le filament par défaut ?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Ceci désactive toutes les fonctionnalités cloud, y compris la synchronisation des profils Orca Cloud. Les utilisateurs qui préfèrent travailler entièrement hors ligne peuvent activer cette option."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Remarque : lorsque le mode furtif est activé, vos profils utilisateur ne sont pas sauvegardés dans Orca Cloud."
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "Activer le mode furtif."
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Plugins propriétaires"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Certains fabricants d'imprimantes nécessitent des plugins propriétaires pour communiquer avec leurs imprimantes. Veuillez sélectionner le plugin correspondant si vous utilisez ces imprimantes."
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Veuillez noter que ces plugins ne sont pas développés ou maintenus par OrcaSlicer. Ils doivent être utilisés à votre propre discrétion et à vos propres risques."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Installer le plugin Bambu Network"
+
msgid "[Action Required] "
msgstr "[Action requise] "
@@ -12491,9 +13394,6 @@ msgstr "Disponible lorsque la vue 3D de l'onglet Préparer a le focus."
msgid "Select a part"
msgstr "Sélectionner une pièce"
-msgid "Select multiple objects"
-msgstr "Sélectionner plusieurs objets"
-
msgid "Select objects by rectangle"
msgstr "Sélectionner les objets par rectangle"
@@ -12814,26 +13714,20 @@ msgstr "La version du firmware est erronée. La réparation et la mise à jour s
msgid "Extension Board"
msgstr "Carte d'Extension"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Diviser en %1% parties"
-
msgid "Repair finished"
msgstr "Réparation terminée"
-msgid "Repair failed"
-msgstr "Échec de la réparation"
-
-msgid "Repair canceled"
-msgstr "Réparation annulée"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Échec de la copie du fichier %1% vers %2% : %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Téléchargement des nouveaux profils de fabricant : "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Téléchargement du nouveau profil de fabricant : %1%..."
+msgstr[1] "Téléchargement des nouveaux profils de fabricant : %1%..."
# AI Translated
#, boost-format
@@ -12841,8 +13735,12 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Paquet de configuration : %1% mis à jour en %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Échec du téléchargement des profils de fabricant : "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Échec du téléchargement du profil de fabricant : %1%"
+msgstr[1] "Échec du téléchargement des profils de fabricant : %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Besoin de vérifier les modifications non enregistrées avant les mises à jour de configuration."
@@ -12850,6 +13748,11 @@ msgstr "Besoin de vérifier les modifications non enregistrées avant les mises
msgid "Open G-code file:"
msgstr "Ouvrir un fichier G-code :"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’essuyage"; align it once the term is settled.
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Échec de la génération de la tour d’essuyage, peut-être à cause d’une première couche vide."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Un objet a une couche initiale vide et ne peut pas être imprimé. Veuillez couper le bas ou activer les supports."
@@ -12870,9 +13773,61 @@ msgstr "G-code de changement du rôle de l’extrusion (traitement)"
msgid "Filament change extrusion role G-code"
msgstr "G-code de changement du rôle de l’extrusion (filament)"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"Échec de l’exportation du G-code vers %1%.\n"
+"Impossible d’ouvrir le fichier en écriture."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "Le dossier %1% n’existe pas."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"Échec de l’exportation du G-code vers %1%.\n"
+"Le disque est-il plein ?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Échec du renommage du fichier G-code de sortie de %1% en %2%.\n"
+"Erreur : %3%\n"
+"%1% est-il verrouillé ?"
+
msgid "No object can be printed. It may be too small."
msgstr "Aucun objet ne peut être imprimé. Peut-être trop petit"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "Le mode IDEX/IQEX « %1% » n'a aucun outil attribué sur l'imprimante sélectionnée. Impression en mode Principal (Primary) à la place. Attribuez les outils du mode dans les paramètres de l'imprimante, ou choisissez un autre mode avec le bouton IDEX/IQEX de la plaque."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Cette plaque est réglée sur le mode IDEX/IQEX « %1% », que l'imprimante sélectionnée ne définit pas. Impression en mode Principal (Primary) à la place. Choisissez un mode avec le bouton IDEX/IQEX de la plaque, ou rétablissez le mode dans les paramètres de l'imprimante."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Valeur de vignettes non valide :"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Votre impression est très proche des régions d’amorçage. Assurez-vous qu’il n’y a pas de collision."
@@ -12916,6 +13871,10 @@ msgstr "Erreur de regroupement : %1% ne peut pas être placé dans la buse gauch
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Erreur de regroupement : %1% ne peut pas être placé dans la buse droite"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Aucune buse valide trouvée. Veuillez vérifier le nombre de buses."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Erreur de regroupement en mode manuel. Veuillez vérifier le nombre de buses ou regrouper à nouveau."
@@ -12935,6 +13894,18 @@ msgstr "intersections multiples avec un périmètre, une seule a été utilisée
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "un périmètre est entièrement à l’intérieur d’un modificateur, le modificateur ne lui a pas été appliqué (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "Le modificateur %1% « %2% » de « %3% » couvre un périmètre entier"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "Le modificateur %1% « %2% » de « %3% » (%4% au total) couvre un périmètre entier"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -12949,9 +13920,47 @@ msgstr "le modificateur « %1% » de « %2% » (%3% au total) n’a eu aucun eff
msgid "Seam placement may differ from expected."
msgstr "Le placement de la couture peut différer de celui attendu."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Pont interne"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() a produit un espacement négatif. Avez-vous défini une largeur d’extrusion trop petite ?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() a produit un débit négatif. Avez-vous défini une largeur d’extrusion trop petite ?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Échec du calcul de la largeur de ligne de %1%. Impossible d’obtenir la valeur de « %2% »."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Espacement non valide fourni à Flow::with_spacing(), vérifiez la hauteur de votre couche et la largeur d’extrusion"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Le fichier 3mf sélectionné a été enregistré avec une version plus récente de %1% et n’est pas compatible."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Le 3MF sélectionné contient un objet avec des supports FDM peints, créé avec une version plus récente de PrusaSlicer, et n’est pas compatible."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Le 3MF sélectionné contient un objet avec une couture peinte, créé avec une version plus récente de PrusaSlicer, et n’est pas compatible."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Le 3MF sélectionné contient un objet multi-matériaux peint, créé avec une version plus récente de PrusaSlicer, et n’est pas compatible."
+
msgid "undefined error"
msgstr "erreur non définie"
@@ -13045,6 +14054,56 @@ msgstr "échec de la validation"
msgid "write callback failed"
msgstr "échec du rappel d'écriture"
+# AI Translated
+msgid "unknown error"
+msgstr "erreur inconnue"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Les impressions multicolores en modes parallèles IDEX/IQEX exigent que chaque filament dispose de son propre extrudeur physique dédié. Au moins deux des filaments actifs sont acheminés vers la même tête physique via la table des extrudeurs physiques de l'imprimante (un collecteur MMU/AFC), ce que le portique asservi ne peut pas suivre."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "Le mode IDEX/IQEX actif ne définit pas d'outil principal, l'impression multicolore ne peut donc pas être planifiée. Ouvrez l'éditeur des modes IDEX/IQEX dans les paramètres de l'imprimante et attribuez le rôle Principal (Primary) à un outil."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Le multicolore dans ce mode n'est pas un cas d'impression parallèle — tous les outils actifs se trouvent sur un seul portique, il n'y a donc pas de second portique vers lequel copier ou refléter. Passez la plaque en mode Principal (Primary) pour l'impression multicolore sur un seul portique, ou définissez un mode IDEX/IQEX qui inclut des outils sur un second portique."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Les impressions multicolores en modes parallèles IDEX/IQEX nécessitent un outil Span sur le portique de l'outil principal — sans lui, le mode ne déclare aucun partenaire multicolore sur le même portique. Réduisez l'impression à un seul filament, passez en mode Principal (Primary), ou ouvrez l'éditeur des modes IDEX/IQEX dans les paramètres de l'imprimante et marquez un outil du portique de l'outil principal comme Span."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Dans ce mode Span, les couleurs sont imprimées uniquement par %1%, mais le filament %2% n’est acheminé vers aucun outil. Utilisez des filaments acheminés vers %1%, ou passez cette plaque en mode Principal (Primary)."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Dans ce mode Span, les couleurs sont imprimées uniquement par %1%, mais le filament %2% est acheminé vers T%3%. Utilisez des filaments acheminés vers %1%, ou passez cette plaque en mode Principal (Primary)."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Le préréglage sélectionné ne peut pas être chargé : %1%\n"
+"\tRaison : %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Échec du chargement du fichier de préréglage : %1%\n"
+"\tRaison : %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% est trop proche de la zone d'exclusion. Il peut y avoir des collisions lors de l'impression."
@@ -13058,30 +14117,44 @@ msgid "%1% is too tall, and collisions will be caused."
msgstr "%1% est trop grand, cela pourrait provoquer des collisions."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’amorçage"; align it once the term is settled.
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "La position relative du modèle et de la tour d’amorçage ne répond pas aux exigences de la fonction « Pas de couches éparses ». Veuillez ajuster leurs positions relatives, réduire la hauteur du modèle ou désactiver « Pas de couches éparses »."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " est trop proche d'une zone d'exclusion, il peut y avoir des collisions lors de l'impression."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " est trop proche de la zone de détection d'agglomération, il peut y avoir des collisions lors de l'impression."
-
-msgid "Prime Tower"
-msgstr "Tour d’amorçage"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " est trop proche des autres. Des collisions risquent d'être provoquées.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " est trop proche d'une zone d'exclusion. Cela va entraîner des collisions.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " est trop proche de la zone de détection d'agglomération, et des collisions seront causées.\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% est trop proche de la zone de détection d’agglomération. Des collisions peuvent survenir lors de l’impression."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " est partiellement en dehors de la zone imprimable et ne peut pas être imprimé.\n"
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’amorçage"; align it once the term is settled.
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "La tour d’amorçage est trop proche des autres, ce qui risque de provoquer des collisions.\n"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’amorçage"; align it once the term is settled.
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "La tour d’amorçage est trop proche d’une zone d’exclusion, ce qui provoquera des collisions.\n"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’amorçage"; align it once the term is settled.
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "La tour d’amorçage est trop proche de la zone de détection d’agglomération, ce qui provoquera des collisions.\n"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’amorçage"; align it once the term is settled.
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "La tour d’amorçage est trop proche d’une zone d’exclusion. Des collisions peuvent survenir lors de l’impression."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’amorçage"; align it once the term is settled.
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "La tour d’amorçage est trop proche de la zone de détection d’agglomération. Des collisions peuvent survenir lors de l’impression."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’amorçage"; align it once the term is settled.
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "La tour d’amorçage est partiellement en dehors de la zone imprimable et ne peut pas être imprimée.\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "Les températures de buse sélectionnées sont incompatibles. La température de buse de chaque filament doit se situer dans la plage de température de buse recommandée des autres filaments. Sinon, un bouchage de la buse ou des dommages à l’imprimante peuvent survenir."
@@ -13095,6 +14168,58 @@ msgstr "Si vous souhaitez tout de même imprimer, vous pouvez activer l’option
msgid "No extrusions under current settings."
msgstr "Aucune extrusion dans les paramètres actuels."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Les filaments mixtes ne sont pas pris en charge dans les modes parallèles IDEX/IQEX. Passez cette plaque en mode Principal (Primary)."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Le mode IDEX/IQEX « %1% » imprime avec T%2%, mais aucun des filaments de cette plaque ne se trouve sur un outil configuré. Attribuez un filament chargé sur T%2%, ou passez cette plaque en mode Principal (Primary)."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Le mode IDEX/IQEX « %1% » imprime avec T%2%, mais les filaments de cette plaque sont sur %3%. Attribuez un filament chargé sur T%2%, ou passez cette plaque en mode Principal (Primary)."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Le radeau n'est pas compatible avec le mode imprimante à tapis."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Le paravent n'est pas compatible avec le mode imprimante à tapis."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "La bordure n'est pas compatible avec le mode vase spirale sur une imprimante à tapis. Désactivez l'un des deux."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Le tapis est trop incliné pour une bordure ; aucune bordure ne sera générée."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Une bordure n'est générée que si le tapis est incliné. Définissez un angle d'inclinaison du tapis, ou supprimez le réglage de bordure."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Les imprimantes à tapis ne prennent en charge que les bordures extérieure et intérieure. Les bordures « Auto », « Sur les angles uniquement » et « Peint » sont imprimées comme « Bordure extérieure uniquement », avec la « Largeur de la bordure »."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "« Écart bord-objet » sépare la bordure d'attaque du bord d'attaque de l'objet, c'est-à-dire du bord qu'elle doit ancrer. Réglez l'écart sur 0 lorsque vous utilisez « Longueur de bordure d'attaque »."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "« Longueur de bordure d'attaque » prolonge la bordure en avant de chaque objet le long du tapis, et « Organiser » ne réserve pas cet espace. Laissez de la place entre les objets."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "La bordure « Bord d'attaque uniquement » s'applique aux imprimantes à tapis. Sur cette imprimante, elle est imprimée comme une bordure extérieure ordinaire."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Un filament mixte avec dégradé est utilisé, mais « Sous-couche de couleur mixte » est désactivé. Le dégradé ne sera pas imprimé."
@@ -13105,6 +14230,18 @@ msgstr "Le mode fluide du timelapse n'est pas pris en charge lorsque le mode d'i
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "La détection d'agglomération n'est pas prise en charge lorsque la séquence \"par objet\" est activée."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "La tour de purge du tapis n'est pas générée avec la séquence d'impression « Par objet » ; les changements de filament ne seront pas purgés."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "La tour de purge du tapis est activée mais le projet ne contient aucun objet tour de purge ; les changements de filament ne seront pas purgés. Ouvrez le projet dans l'application pour générer la tour."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Le projet contient plusieurs tours de purge du tapis gérées. Rechargez la plaque ou désactivez puis réactivez la tour de purge du tapis pour la régénérer."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "L'activation simultanée de la hauteur Z précise et de la tour d'amorçage peut provoquer des erreurs de tranchage."
@@ -13121,10 +14258,6 @@ msgstr "Le mode vase en spirale ne fonctionne pas lorsqu'un objet contient plusi
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Bien que l’objet %1% corresponde au volume de construction, il dépasse la hauteur maximale du volume de construction en raison de la compensation du rétrécissement du matériau."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "L’objet %1% dépasse la hauteur maximale du volume d’impression."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Bien que l’objet %1% s’adapte lui-même au volume d’impression, sa dernière couche dépasse la hauteur maximale du volume de construction."
@@ -13132,10 +14265,15 @@ msgstr "Bien que l’objet %1% s’adapte lui-même au volume d’impression, sa
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Vous devez réduire la taille de votre modèle ou modifier les paramètres d’impression actuels et réessayer."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "L’objet %1% dépasse la hauteur maximale du volume d’impression."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "La hauteur de couche variable n’est pas prise en charge avec les supports organiques."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’essuyage"; align it once the term is settled.
msgid "The wipe tower filament cannot be a mixed filament."
msgstr "Le filament de la tour d’essuyage ne peut pas être un filament mixte."
@@ -13285,6 +14423,10 @@ msgstr "Le modèle de Pressure Advance adaptatif d’un ou plusieurs extrudeurs
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "Le rétrécissement du filament ne sera pas utilisé car le rétrécissement des filaments utilisés ne correspond pas."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "L’impression est vide. Le modèle n’est pas imprimable avec les paramètres d’impression actuels."
+
msgid "Generating skirt & brim"
msgstr "Génération jupe et bord"
@@ -13303,6 +14445,17 @@ msgstr "Exportation du G-code"
msgid "Generating G-code"
msgstr "Génération du G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Échec du traitement du fichier G-code %1% du fichier 3MF précédent."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "La tour de purge du tapis ne peut pas absorber le volume de purge complet : %1% mm³ au total n’ont pas pu être purgés (pire couche : %2% mm³ à la hauteur %3%). L’impression peut présenter des mélanges de couleurs. Augmentez la largeur de la tour de purge du tapis, ou réduisez les volumes de purge."
+
msgid "Processing of the filename_format template failed."
msgstr "Échec du traitement du modèle filename_format."
@@ -13738,8 +14891,9 @@ msgstr ""
"\n"
"Cette option fonctionne particulièrement bien combinée à l’option de second pont interne au-dessus du remplissage, pour améliorer encore les ponts avant l’extrusion du remplissage plein."
+# AI Translated
msgid "Bridge flow ratio"
-msgstr "Débit des ponts"
+msgstr "Rapport de débit du pont"
msgid ""
"This value governs the thickness of the external (visible) bridge layer.\n"
@@ -13754,18 +14908,20 @@ msgstr ""
"\n"
"Le débit de pont réellement utilisé est calculé en multipliant cette valeur par le rapport de débit du filament et, s’il est défini, par celui de l’objet."
+# AI Translated
+# Needs human review: Setting names are quoted from the GUI labels: the English says 'Bridge density' where the GUI labels are 'External/Internal bridge density' (the external one is quoted). Check it.
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
-"La largeur de ligne des ponts s’exprime soit en valeur absolue, soit en pourcentage du diamètre de la buse active (les pourcentages sont calculés à partir du diamètre de la buse).\n"
-"Recommandé avec une densité de pont ou un rapport de débit de pont plus élevés.\n"
+"Largeur de ligne du pont. Si elle est exprimée en %, elle sera calculée sur le diamètre de la buse.\n"
+"Recommandé avec une densité du pont externe ou un rapport de débit du pont plus élevés.\n"
"\n"
"La valeur maximale est 100 % ou le diamètre de la buse.\n"
-"Si réglée à 0, la largeur de ligne correspond à celle du remplissage plein interne."
+"Si réglée à 0, la largeur de ligne correspond à celle du remplissage plein interne, ou au diamètre de la buse pour les ponts épais."
msgid "Internal bridge flow ratio"
msgstr "Rapport de débit du pont interne"
@@ -14032,6 +15188,7 @@ msgstr "Activez cette option pour ralentir l'impression pour différents degrés
msgid "Slow down for curled perimeters"
msgstr "Ralentir lors des périmètres courbés"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
@@ -14047,34 +15204,35 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Activez cette option pour ralentir l’impression dans les zones où les périmètres risquent de s’être recourbés vers le haut.\n"
"Par exemple, un ralentissement supplémentaire est appliqué lors de l’impression de surplombs sur des angles vifs, comme l’avant de la coque du Benchy, réduisant le tuilage qui s’amplifie au fil des couches.\n"
"\n"
"Il est généralement recommandé de laisser cette option activée, sauf si le refroidissement de votre imprimante est assez puissant ou la vitesse d’impression assez lente pour que les périmètres ne se recourbent pas. \n"
-"En cas d’impression avec une vitesse de périmètre externe élevée, ce paramètre peut introduire des artéfacts sur les parois lors du ralentissement, en raison de la variation potentiellement importante des vitesses d’impression empêchant l’extrudeur de suivre le changement de débit demandé.\n"
-"La cause profonde de ces artéfacts est très probablement un réglage du PA légèrement décalé, surtout combiné à un temps de lissage du PA élevé.\n"
+"En cas d’impression avec une vitesse de périmètre externe élevée, ce paramètre peut introduire des artefacts sur les parois lors du ralentissement, en raison de la variation potentiellement importante des vitesses d’impression empêchant l’extrudeur de suivre le changement de débit demandé.\n"
+"La cause profonde de ces artefacts est très probablement un réglage du PA légèrement décalé, surtout combiné à un temps de lissage du PA élevé.\n"
"\n"
"Recommandations lorsque cette option est activée :\n"
-"1. Réduisez le temps de lissage du Pressure Advance à 0,015 – 0,02 pour que l’extrudeur réagisse rapidement aux changements de vitesse.\n"
+"1. Réduisez le temps de lissage du Pressure Advance à 0,015 - 0,02 pour que l’extrudeur réagisse rapidement aux changements de vitesse.\n"
"2. Augmentez les vitesses d’impression minimales pour limiter l’ampleur du ralentissement et réduire l’écart entre segments rapides et lents.\n"
-"3. Si des artéfacts persistent, activez le lissage du débit d’extrusion (ERS) pour adoucir davantage les transitions de débit.\n"
+"3. Si des artefacts persistent, activez le lissage du taux d’extrusion (ERS) pour adoucir davantage les transitions de débit.\n"
"\n"
"Remarque : lorsque cette option est activée, les périmètres en surplomb sont traités comme des surplombs : la vitesse de surplomb s’applique même si le périmètre en surplomb fait partie d’un pont.\n"
-"Par exemple, lorsque les périmètres sont à 100 % en surplomb, sans paroi pour les soutenir par en dessous, la vitesse de surplomb à 100 % est appliquée."
+"Par exemple, lorsque les périmètres sont à 100 % en surplomb, sans paroi pour les soutenir par en dessous, la vitesse de surplomb à 75 % est appliquée, limitée par la vitesse du pont."
msgid "mm/s or %"
msgstr "mm/s ou %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Vitesse des extrusions de pont visible de l’extérieur.\n"
"\n"
-"En outre, si la fonction Ralentir pour les périmètres courbés est désactivée ou si le mode Surplomb classique est activé, il s’agira de la vitesse d’impression des parois en surplomb dont l’appui est inférieur à 13 %, qu’elles fassent partie d’un pont ou d’un surplomb."
+"En outre, si l’option « Ralentir lors des périmètres courbés » est désactivée, il s’agira de la vitesse d’impression des parois en surplomb dont l’appui est inférieur à 13 %, qu’elles fassent partie d’un pont ou d’un surplomb."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Vitesse des ponts internes. Si la valeur est exprimée en pourcentage, elle sera calculée sur la base de la vitesse du pont. La valeur par défaut est 150%."
@@ -14082,12 +15240,56 @@ msgstr "Vitesse des ponts internes. Si la valeur est exprimée en pourcentage, e
msgid "This is the distance from the model to the outermost brim line."
msgstr "Distance du modèle à la ligne de bord la plus externe"
+# AI Translated
+msgid "Leading brim length"
+msgstr "Longueur de bordure d'attaque"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Imprimantes à tapis uniquement. Prolonge la bordure EN AVANT de l'objet le long du tapis, sur chaque bord de sa zone de contact tourné vers le bas de la pente — aussi bien le premier contact de l'objet avec le tapis que tout îlot qui s'y pose plus tard. Ce tablier est déposé sur le tapis avant que l'objet ne l'atteigne, de sorte que le bord d'attaque dispose déjà d'un appui collé auquel s'accrocher.\n"
+"\n"
+"Mesurée sur la surface du tapis, et ajoutée à « Largeur de la bordure » : la bordure s'étend jusqu'à « Écart bord-objet » + « Longueur de bordure d'attaque » + « Largeur de la bordure » en avant de l'objet. Réglez « Écart bord-objet » sur 0, sinon le tablier ne touchera pas l'objet qu'il doit ancrer.\n"
+"\n"
+"Sur un tapis incliné, chaque couche dépose une bande de la bordure, si bien que l'épaisseur de la nappe de bordure obtenue dépend du débit plutôt que de la hauteur de couche. Utilisez « Rapport de débit de la bordure » pour l'ajuster.\n"
+"\n"
+"Réglez sur 0 pour désactiver."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Largeur de bordure supplémentaire"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Imprimantes à tapis uniquement. Élargit la bordure LATÉRALEMENT, en travers du tapis, sans la prolonger davantage en avant ou en arrière de l'objet. Utile lorsqu'une pièce a besoin de plus d'adhérence sur sa longueur que ce que fournit « Largeur de la bordure » seule.\n"
+"\n"
+"Mesurée sur la surface du tapis, et ajoutée à « Largeur de la bordure » : la bordure s'étend jusqu'à « Écart bord-objet » + « Largeur de la bordure » + « Largeur de bordure supplémentaire » de chaque côté de l'objet. Pour prolonger plutôt la bordure en avant de l'objet, utilisez « Longueur de bordure d'attaque ».\n"
+"\n"
+"Réglez sur 0 pour désactiver."
+
msgid "Brim type"
msgstr "Type de bordure"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Cela permet de contrôler la génération de bordure extérieur et/ou intérieur des modèles. Auto signifie que la largeur de bordure est analysée et calculée automatiquement."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Bord d'attaque uniquement"
+
msgid "Brim-object gap"
msgstr "Écart bord-objet"
@@ -14378,6 +15580,9 @@ msgstr ""
"2. Filtrage limité - crée des ponts internes sur les surfaces fortement inclinées tout en évitant les ponts inutiles. Cette option fonctionne bien pour la plupart des modèles difficiles.\n"
"3. Pas de filtrage - crée des ponts internes sur chaque surplomb interne potentiel. Cette option est utile pour les modèles à surface supérieure fortement inclinée ; cependant, dans la plupart des cas, elle crée trop de ponts inutiles."
+msgid "Filter"
+msgstr "Filtrer"
+
msgid "Limited filtering"
msgstr "Filtrage limité"
@@ -14393,8 +15598,9 @@ msgstr "Il s'agit de la longueur maximale des ponts qui n'ont pas besoin de supp
msgid "End G-code"
msgstr "G-code de fin"
-msgid "Add end G-Code when finishing the entire print."
-msgstr "G-code de fin lorsque vous avez terminé toute l'impression"
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
+msgstr "Ajouter le G-code de fin lorsque toute l’impression est terminée."
msgid "Between Object G-code"
msgstr "G-code entre objet"
@@ -14582,8 +15788,9 @@ msgstr "Vitesse de paroi extérieure qui est la plus à l'extérieur et visible.
msgid "Small perimeters"
msgstr "Petits périmètres"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Ce paramètre séparé affectera la vitesse des périmètres ayant un rayon <= petite longueur de périmètre (généralement des trous). S’il est exprimé en pourcentage (par exemple : 80%), il sera calculé sur la vitesse de la paroi extérieure ci-dessus. Mettre à zéro pour automatique."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Ce paramètre séparé affectera la vitesse des périmètres ayant un rayon <= small_perimeter_threshold (généralement des trous). S’il est exprimé en pourcentage (par exemple : 80%), il sera calculé sur la vitesse de la paroi extérieure ci-dessus."
msgid "Small perimeters threshold"
msgstr "Seuil des petits périmètres"
@@ -14594,8 +15801,9 @@ msgstr "Cela définit le seuil pour une petite longueur de périmètre. Le seuil
msgid "Small support perimeters"
msgstr "Petits périmètres de support"
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Comme « Petits périmètres », mais pour les supports. Ce réglage distinct affecte la vitesse des supports pour les zones <= `small_support_perimeter_threshold`. S’il est exprimé en pourcentage (par exemple : 80 %), il est calculé à partir du réglage de vitesse des supports ou de l’interface de support ci-dessus. Réglez sur zéro pour automatique."
+# AI Translated
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Comme « Petits périmètres », mais pour les supports. Ce réglage distinct affecte la vitesse des supports pour les zones <= `small_support_perimeter_threshold`. S’il est exprimé en pourcentage (par exemple : 80 %), il est calculé à partir du réglage de vitesse des supports ou de l’interface de support ci-dessus."
msgid "Small support perimeters threshold"
msgstr "Seuil des petits périmètres de support"
@@ -14606,12 +15814,13 @@ msgstr "Définit le seuil de longueur des petits périmètres de support. Le seu
msgid "Walls printing order"
msgstr "Ordre d’impression des parois"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
@@ -14619,15 +15828,16 @@ msgstr ""
"\n"
"Utilisez Intérieur/Extérieur pour obtenir les meilleurs surplombs. En effet, les parois en surplomb peuvent adhérer à un périmètre voisin lors de l'impression. Toutefois, cette option entraîne une légère diminution de la qualité de la surface, car le périmètre externe est déformé par l'écrasement du périmètre interne.\n"
"\n"
-"Utilisez l’option Intérieur/Extérieur/Intérieur pour obtenir la meilleure finition de surface externe et la meilleure précision dimensionnelle, car la paroi externe est imprimée sans être dérangée par un périmètre interne. Cependant, les performances de la paroi en surplomb seront réduites car il n’y a pas de périmètre interne contre lequel imprimer la paroi externe. Cette option nécessite un minimum de trois parois pour être efficace, car elle imprime d’abord les parois internes à partir du troisième périmètre, puis le périmètre externe et, enfin, le premier périmètre interne. Cette option est recommandée par rapport à l’option Extérieur/intérieur dans la plupart des cas.\n"
+"Utilisez l’option Intérieur/Extérieur/Intérieur pour obtenir la meilleure finition de surface externe et la meilleure précision dimensionnelle, car la paroi externe est imprimée sans être dérangée par un périmètre interne. Cependant, les performances de la paroi en surplomb seront réduites car il n’y a pas de périmètre interne contre lequel imprimer la paroi externe. Cette option nécessite un minimum de trois parois pour être efficace, car elle imprime d’abord les parois internes à partir du troisième périmètre, puis le périmètre externe et, enfin, le premier périmètre interne. Cette option est recommandée par rapport à l’option Extérieur/Intérieur dans la plupart des cas.\n"
"\n"
-"Utilisez l’option Extérieur/intérieur pour bénéficier de la même qualité de paroi externe et de la même précision dimensionnelle que l’option Intérieur/extérieur/intérieur. Cependant, les joints en z paraîtront moins cohérents car la première extrusion d’une nouvelle couche commence sur une surface visible."
+"Utilisez l’option Extérieur/Intérieur pour bénéficier de la même qualité de paroi externe et de la même précision dimensionnelle que l’option Intérieur/Extérieur/Intérieur. Cependant, les coutures en Z paraîtront moins cohérentes car la première extrusion d’une nouvelle couche commence sur une surface visible."
msgid "Inner/Outer"
msgstr "Intérieur/Extérieur"
+# AI Translated
msgid "Outer/Inner"
-msgstr "Extérieur/intérieur"
+msgstr "Extérieur/Intérieur"
msgid "Inner/Outer/Inner"
msgstr "Intérieur/Extérieur/Intérieur"
@@ -15255,9 +16465,6 @@ msgstr "Coût du filament. Pour les statistiques uniquement"
msgid "money/kg"
msgstr "argent/kg"
-msgid "Vendor"
-msgstr "Fabricant"
-
msgid "Vendor of filament. For show only."
msgstr "Vendeur du filament. Pour affichage uniquement"
@@ -15327,6 +16534,92 @@ msgstr "Remplissage multiligne"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Utilisation de lignes multiples pour le motif de remplissage, si pris en charge par le motif."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Densité adaptative (expérimental)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Applique un dégradé au remplissage Gyroïde et TPMS à l'intérieur de l'objet : ses cellules grossissent de la surface de l'objet vers son centre. La densité de remplissage s'applique à la surface et la densité intérieure au centre.\n"
+"Déformation selon la distance, Fondu lisse et Coques étagées suivent la distance à la surface la plus proche, y compris les surfaces supérieure et inférieure, la densité intérieure étant atteinte au point le plus éloigné de celle-ci :\n"
+" - Déformation selon la distance : un seul motif continu, étiré et cisaillé là où la distance varie selon les directions, comme dans les plaques et les pièces longues.\n"
+" - Fondu lisse : les motifs des densités voisines se fondent les uns dans les autres, avec de petites boucles là où ils se rejoignent.\n"
+" - Coques étagées : des coques du motif régulier à des densités espacées d'un facteur d'environ 1,5, leurs lignes étant reliées le long des limites des coques.\n"
+" - Lobes : suit la forme 3D de l'objet, y compris ses surfaces supérieure et inférieure. Chaque lobe, une partie reliée au reste par un col plus étroit, reçoit un dégradé vers son propre centre.\n"
+" - Normale Z, Y ou X : suit les sections de l'objet perpendiculaires à cet axe, de sorte que la densité ne varie pas le long de celui-ci."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Déformation selon la distance"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Fondu lisse"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Coques étagées"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Lobes"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Normale Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Normale Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Normale X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Densité intérieure"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Densité du remplissage adaptatif au centre de l'objet."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Dégradé adaptatif"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Manière dont la densité varie de la surface vers le centre de l'objet.\n"
+"Linéaire : la densité varie à un rythme constant.\n"
+"Quadratique : la densité reste proche de la densité de remplissage près de la surface et varie plus vite vers le centre.\n"
+"Exponentiel : la densité varie rapidement juste sous la surface et se stabilise vers le centre."
+
+# AI Translated
+msgid "Linear"
+msgstr "Linéaire"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Quadratique"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Exponentiel"
+
msgid "Z-buckling bias optimization (experimental)"
msgstr "Optimisation du biais de flambage en Z (expérimental)"
@@ -15476,14 +16769,16 @@ msgstr "Hauteur de couche initiale"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Hauteur de la première couche. Augmenter la hauteur de la première couche peut améliorer l’adhérence au plateau."
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Vitesse de la couche initiale à l'exception du remplissage"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Vitesse des parois et de la bordure de la couche initiale."
msgid "First layer infill"
msgstr "Remplissage de la couche initiale"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Vitesse du remplissage à la couche initiale"
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Vitesse de la couche initiale, à l’exception des parois et de la bordure, comme le remplissage, le remplissage des espaces et les supports."
msgid "First layer travel speed"
msgstr "Déplacements"
@@ -15940,6 +17235,10 @@ msgstr "Version du G-code"
msgid "What kind of G-code the printer is compatible with."
msgstr "Avec quel type de G-code l'imprimante est-elle compatible."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (ancienne version)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16172,16 +17471,18 @@ msgstr "Largeur de ligne du remplissage interne. Si elle est exprimée en %, ell
msgid "Infill/wall overlap"
msgstr "Chevauchement de remplissage/paroi"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "La zone de remplissage est légèrement élargie pour chevaucher la paroi afin d’améliorer l’adhérence. La valeur du pourcentage est relative à la largeur de la ligne de remplissage. Réglez cette valeur à ~10-15% pour minimiser le risque de sur-extrusion et d’accumulation de matériau, ce qui rendrait les surfaces supérieures rugueuses."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "La zone de remplissage peut être légèrement élargie pour chevaucher les parois afin d’améliorer l’adhérence. La valeur du pourcentage est relative à la largeur de ligne de la paroi intérieure. Réglez cette valeur à ~10-15% pour minimiser le risque de sur-extrusion et d’accumulation de matériau, ce qui rendrait les surfaces supérieures rugueuses."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Chevauchement du remplissage ou de la paroi supérieur(e)/inférieur(e)"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "La zone de remplissage solide supérieure est légèrement élargie pour chevaucher la paroi afin d’améliorer l’adhérence et de minimiser l’apparition de trous d’épingle à l’endroit où le remplissage supérieur rencontre les parois. Une valeur de 25-30% est un bon point de départ, minimisant l’apparition de trous d’épingle. La valeur en pourcentage est relative à la largeur de ligne du remplissage"
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "La zone de remplissage solide supérieure est légèrement élargie pour chevaucher la paroi afin d’améliorer l’adhérence et de minimiser l’apparition de trous d’épingle à l’endroit où le remplissage supérieur rencontre les parois. Une valeur de 25-30% est un bon point de départ, minimisant l’apparition de trous d’épingle. La valeur en pourcentage est relative à la largeur de ligne de la paroi intérieure."
msgid "This is the speed for internal sparse infill."
msgstr "Vitesse de remplissage interne"
@@ -16207,8 +17508,9 @@ msgstr "Largeur maximale d’une région segmentée. Zéro désactive cette fonc
msgid "Interlocking depth of a segmented region"
msgstr "Profondeur d’emboîtement d’une région segmentée"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Profondeur d’imbrication d’une région segmentée. Elle sera ignorée si « mmu_segmented_region_max_width » est égal à zéro ou si « mmu_segmented_region_interlocking_depth » est supérieur à « mmu_segmented_region_max_width ». La valeur zéro désactive cette fonctionnalité."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Profondeur d’emboîtement d’une région segmentée. Une couche sur deux, la région segmentée est limitée à cette profondeur. Elle sera ignorée si « interlocking_beam » est activé. Zéro désactive cette fonction."
msgid "Use beam interlocking"
msgstr "Utiliser l’emboîtement des poutres"
@@ -16310,13 +17612,14 @@ msgstr "Activer le contournage des couches en Z (alias anticrénelage des couche
msgid "Minimize wall height angle"
msgstr "Angle de minimisation de la hauteur des parois"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Réduit la hauteur des périmètres de la surface supérieure pour qu’elle corresponde à la hauteur du bord du modèle.\n"
-"Affecte les périmètres dont la pente est inférieure à cet angle (en degrés).\n"
+"Affecte les périmètres dont la pente est supérieure à cet angle (en degrés).\n"
"Une valeur raisonnable est 35. Réglez sur 0 pour désactiver."
msgid "Don't alternate fill direction"
@@ -16390,17 +17693,21 @@ msgstr "Vitesse maximale Z"
msgid "Maximum speed E"
msgstr "Vitesse maximale E"
-msgid "Maximum X speed"
-msgstr "Vitesse en X maximale"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Vitesse maximale de l’axe X"
-msgid "Maximum Y speed"
-msgstr "Vitesse en Y maximale"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Vitesse maximale de l’axe Y"
-msgid "Maximum Z speed"
-msgstr "Vitesse en Z maximale"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Vitesse maximale de l’axe Z"
-msgid "Maximum E speed"
-msgstr "Vitesse en E maximale"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Vitesse maximale de l’axe E"
msgid "Maximum acceleration X"
msgstr "Accélérations maximum X"
@@ -16912,8 +18219,8 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Capacités de plugin référencées par ce préréglage, stockées sous la forme name;uuid;capability."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
-msgstr "Plugin(s) Python invoqué(s) à chaque étape du pipeline de découpe pour lire et modifier les données de découpe intermédiaires, y compris une étape finale de post-traitement du G-code. Recherche/expérimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgstr "Plugins Python invoqués à chaque étape du pipeline de découpe pour lire et modifier les données de découpe intermédiaires, y compris une étape finale de post-traitement du G-code. Recherche/expérimental."
msgid "Printer type"
msgstr "Type d’imprimante"
@@ -17278,7 +18585,8 @@ msgstr "Joint en biseau pour les parois intérieures"
msgid "Use scarf joint for inner walls as well."
msgstr "Utiliser également un joint en biseau pour les parois intérieures."
-msgid "Role base wipe speed"
+# AI Translated
+msgid "Role based wipe speed"
msgstr "Vitesse d’essuyage en fonction de la vitesse d’extrusion"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -17368,16 +18676,15 @@ msgstr "Limite les boucles de jupe/bouclier de courant d'air à une seule paroi
msgid "Draft shield"
msgstr "Paravent"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"Un paravent est utile pour protéger une impression ABS ou ASA contre la déformation et le détachement du plateau d’impression en raison des courants d’air. Il n’est généralement nécessaire que pour les imprimantes à structure ouverte, c’est-à-dire sans boîtier.\n"
"\n"
-"Activé = la hauteur de la jupe est égale à celle de l’objet imprimé le plus haut. Sinon, c’est la « hauteur de la jupe » qui est utilisée.\n"
-"Remarque : lorsque le paravent est actif, la jupe est imprimée à la distance de la jupe par rapport à l’objet. Par conséquent, si des bordures sont actives, elle peut les croiser. Pour éviter cela, augmentez la valeur de la distance de la jupe.\n"
+"Activé = la hauteur de la jupe est égale à celle de l’objet imprimé le plus haut. Sinon, c’est la « Hauteur de la jupe » qui est utilisée."
msgid "Enabled"
msgstr "Activé"
@@ -17497,8 +18804,9 @@ msgid "Farthest point timelapse"
msgstr "Timelapse au point le plus éloigné"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’essuyage"; align it once the term is settled.
msgid "When enabled, the timelapse snapshot is taken at the farthest point from camera instead of traveling to the wipe tower or excess chute. Only effective in traditional timelapse mode on non-I3 printers."
-msgstr "Lorsque cette option est activée, l'instantané du timelapse est pris au point le plus éloigné de la caméra au lieu de se déplacer vers la tour d'essuyage ou la goulotte d'évacuation. Efficace uniquement en mode timelapse traditionnel sur les imprimantes non-I3."
+msgstr "Lorsque cette option est activée, l’instantané du timelapse est pris au point le plus éloigné de la caméra au lieu de se déplacer vers la tour d’essuyage ou la goulotte d’évacuation. Efficace uniquement en mode timelapse traditionnel sur les imprimantes non-I3."
msgid "Temperature variation"
msgstr "Variation de température"
@@ -17540,6 +18848,130 @@ msgstr "Multi-matériaux pour extrudeur unique"
msgid "Use single nozzle to print multi filament."
msgstr "Utiliser une seule buse pour imprimer plusieurs filaments"
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "Imprimante IDEX/IQEX"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Active l'impression parallèle pour les imprimantes à plusieurs chariots indépendants (IDEX, IQEX et similaires)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Zones gérées par le firmware"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Si activé, le logiciel de découpe génère un G-code dont le contenu de la zone principale est centré sur l’origine du plateau (0,0). Le firmware de l’imprimante se charge de placer les copies et les images miroir à la position physique de chaque zone. N’activez cette option que sur les imprimantes dont le firmware applique ses propres décalages de zone en mode copie/miroir (par ex. le mode duplication IDEX de RepRapFirmware). Sans effet en mode Principal (Primary)."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Nombre de portiques"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Nombre de portiques indépendants sur l'axe Y. 1 pour l'IDEX ou l'IQEX à rail unique. 2 pour les systèmes à double portique (divise le plateau en rangées)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Outils par portique"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Nombre de têtes d'outil indépendantes par portique le long de X. 2 pour le type IDEX."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Position de l'outil 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Position physique de l'outil T0 (indice 0) sur le plateau. Détermine la correspondance entre les indices d'outil et les zones du plateau. Pour les configurations à un seul portique (IDEX), seuls gauche/droite comptent ; pour les configurations à double portique (IQEX), les quatre coins peuvent être sélectionnés (avant = Y le plus bas / près de l'opérateur, arrière = Y le plus haut / fond de la machine)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Dégagement de buse X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Distance (mm) entre la buse et le bord du chariot côté collision en X. Sert à calculer la largeur de la bande d'exclusion anti-collision à chaque limite X."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Dégagement de buse Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Distance (mm) entre la buse et le bord du chariot côté collision en Y. Sert à calculer la largeur de la bande d'exclusion anti-collision à chaque limite Y."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Marge de sécurité"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Bande de dégagement indicative et non bloquante (mm) affichée dans la zone principale à chaque limite de chariot. Les pièces placées dans cette bande seront tout de même découpées ; il s'agit d'un rappel visuel pour laisser un dégagement supplémentaire près du bord de la zone."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Thème de visualisation"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Thème de couleurs pour la visualisation des zones du plateau IDEX/IQEX. Choisissez au besoin un thème adapté aux daltoniens."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deutéranopie / Protanopie (rouge-vert)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopie (bleu-jaune)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Contraste élevé"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "Mode d'impression IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Nom du mode d'impression parallèle IDEX/IQEX actif, ou « primary » pour l'impression avec un seul chariot. Nécessite l'activation de « Imprimante IDEX/IQEX » dans le préréglage d'imprimante (Imprimante → Multi-matériaux → Configuration IDEX/IQEX)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "Correspondance têtes-filaments IDEX/IQEX"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Remplacement, par plaque, de la correspondance entre les têtes physiques et les emplacements de filament (numérotés à partir de 1). Vide signifie que chaque tête utilise le premier filament que la table des extrudeurs physiques lui attribue."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "Noms des modes IDEX/IQEX"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Noms affichés de chaque mode d'impression parallèle IDEX/IQEX défini par l'utilisateur."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Outils actifs des modes IDEX/IQEX"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Attribution des rôles d'outil pour chaque mode. Format : \"idx:P,idx:C,idx:M\" où P=Principal (Primary), C=Copie (Copy), M=Miroir (Mirror) (par ex. \"0:P,1:C,2:M,3:M\"). Géré par l'éditeur des modes IDEX/IQEX dans le préréglage d'imprimante."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-codes des modes IDEX/IQEX"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code ou appel de macro à insérer au début de l'impression pour chaque mode."
+
msgid "Manual Filament Change"
msgstr "Changement manuel du filament"
@@ -17574,10 +19006,12 @@ msgid "Force the toolhead to travel to the wipe tower before issuing the tool ch
msgstr "Force la tête d’outil à se déplacer vers la tour d’essuyage avant d’émettre la commande de changement d’outil (Tx). Pertinent uniquement pour les imprimantes multi-extrudeurs (à têtes d’outil multiples) utilisant une tour d’essuyage de type 2. Par défaut, Orca omet ce déplacement sur les machines à têtes d’outil multiples car le firmware gère le changement de tête, ce qui peut entraîner l’émission de la commande Tx au-dessus de la pièce imprimée. Activez cette option si vous préférez que le changement d’outil soit toujours émis au-dessus de la tour d’essuyage."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’essuyage"; align it once the term is settled.
msgid "Wait for temperature on wipe tower"
msgstr "Attendre la température sur la tour d’essuyage"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’essuyage"; align it once the term is settled.
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
msgstr "Prend le nouvel outil sans attendre qu’il atteigne la température d’impression, se déplace vers la tour d’essuyage et y attend la température, juste avant la purge. Le suintement dû à la chauffe se dépose sur la tour plutôt que sur le modèle, et le déplacement se superpose à la chauffe. Uniquement pertinent pour les imprimantes multi-extrudeurs (multi-têtes) utilisant une tour d’essuyage de type 2. Le firmware ou la macro de changement d’outil ne doivent pas attendre la température eux-mêmes. Lorsque cette option est désactivée, l’attente de température est émise juste après la commande de changement d’outil."
@@ -17585,14 +19019,16 @@ msgid "No sparse layers (beta)"
msgstr "Pas de couches éparses (beta)"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’essuyage"; align it once the term is settled.
msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower, so the tower ends up below the model and the toolhead has to reach down to it. Layouts where that would collide with an already printed object are rejected. Has no effect with smooth timelapse or clumping detection, which need a tower on every layer."
-msgstr "Si cette option est activée, la tour d'essuyage n'est pas imprimée sur les couches sans changement d'outil. Sur les couches comportant un changement d'outil, l'extrudeur descend pour imprimer la tour d'essuyage : la tour se retrouve donc sous le modèle et la tête d'outil doit descendre jusqu'à elle. Les dispositions où cela entrerait en collision avec un objet déjà imprimé sont rejetées. Sans effet avec le timelapse fluide ou la détection d'agglomération de la buse, qui nécessitent une tour à chaque couche."
+msgstr "Si cette option est activée, la tour d’essuyage n’est pas imprimée sur les couches sans changement d’outil. Sur les couches comportant un changement d’outil, l’extrudeur descend pour imprimer la tour d’essuyage : la tour se retrouve donc sous le modèle et la tête d’outil doit descendre jusqu’à elle. Les dispositions où cela entrerait en collision avec un objet déjà imprimé sont rejetées. Sans effet avec le timelapse fluide ou la détection d’agglomération de la buse, qui nécessitent une tour à chaque couche."
# AI Translated
msgid "Combine sparse layers"
msgstr "Combiner les couches éparses"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’amorçage"; align it once the term is settled.
msgid ""
"If enabled, consecutive layers on which the prime tower has no filament change are printed as a single thicker tower layer instead of one thin layer each, the same way infill combination merges sparse infill. The merged layer is printed at the top of the run, at the height of everything it covers.\n"
"\n"
@@ -17916,6 +19352,172 @@ msgstr "Chevauchement du seuil"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Si l’angle seuil est égal à zéro, le support sera généré pour les surplombs dont le chevauchement est inférieur au seuil. Plus cette valeur est petite, plus la pente du surplomb qui peut être imprimé sans support est importante."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Inclinaison du plateau X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Angle d'inclinaison du plateau le long de l'axe X. Une valeur positive incline le plateau de sorte que le côté +X soit plus haut, ce qui déplace la gravité vers -X et augmente les surplombs du côté +X. Une valeur négative relève le côté -X. Réglez sur 0 pour aucune inclinaison en X. En mode imprimante à tapis, cette valeur est automatiquement synchronisée avec l'angle du tapis."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Inclinaison du plateau Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Angle d'inclinaison du plateau le long de l'axe Y. Une valeur positive incline le plateau de sorte que le côté +Y soit plus haut, ce qui déplace la gravité vers -Y et augmente les surplombs du côté +Y. Une valeur négative relève le côté -Y. Réglez sur 0 pour aucune inclinaison en Y."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Activer l'impression sur tapis"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Active le mode imprimante à tapis. Les imprimantes à tapis utilisent un tapis convoyeur comme surface d'impression, incliné selon un angle (généralement 45 degrés). Le logiciel de découpe fait pivoter le plan de découpe et transforme les coordonnées du G-code pour la surface d'impression inclinée."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Axe Y infini"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Active l'axe Y infini pour les imprimantes à tapis. Si activé, la limite du volume d'impression sur l'axe Y est de fait supprimée, ce qui permet d'imprimer des objets de n'importe quelle longueur dans le sens du tapis."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Axe d'inclinaison du tapis"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Axe autour duquel le maillage pivote avant le découpage. Il s’agit de l’inclinaison de l’imprimante à tapis : une rotation isométrique (sans distorsion) qui détermine aussi le rendu du plateau et l’inclinaison de la gravité pour les supports, et que la transformation inverse du G-code annule avant le cisaillement/la mise à l’échelle et le remappage dans le repère machine. X correspond à l’inclinaison habituelle du portique (le tapis avance le long de Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Angle d'inclinaison du tapis"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Angle d'inclinaison de la surface du tapis, en degrés. La plupart des imprimantes à tapis utilisent 45°. Les valeurs positives font pivoter dans le sens antihoraire en regardant le long de l'axe d'inclinaison positif ; la valeur absolue correspond aussi à l'inclinaison physique du tapis utilisée pour le rendu du plateau et la gravité des supports."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Découpler l'inclinaison du repère machine"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Réglage expert : définit l’angle d’inclinaison du repère machine (cisaillement/mise à l’échelle du G-code) indépendamment de l’angle de rotation avant découpage. Si désactivé, la transformation du repère machine est dérivée de l’angle d’inclinaison du tapis, de sorte qu’un seul angle pilote les deux étapes. N’activez cette option que pour compenser une machine dont l’inclinaison physique du portique diffère de la rotation de découpage."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Angle d'inclinaison du repère machine"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Angle d'inclinaison (degrés) servant à calculer le cisaillement (cot) et la mise à l'échelle (1/|sin|) du repère machine appliqués au G-code. Utilisé uniquement lorsque « Découpler l'inclinaison du repère machine » est activé ; sinon, l'angle d'inclinaison du tapis est utilisé."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+# Needs human review: G-code remap option (Printer settings, belt printer): 'Rev' means reversed (max − position), distinct from '-X' (negated). Check that 'X inversé' is not confused with '-X'.
+msgid "Rev X"
+msgstr "X inversé"
+
+# AI Translated
+# Needs human review: G-code remap option (Printer settings, belt printer): 'Rev' means reversed (max − position), distinct from '-Y' (negated). Check that 'Y inversé' is not confused with '-Y'.
+msgid "Rev Y"
+msgstr "Y inversé"
+
+# AI Translated
+# Needs human review: G-code remap option (Printer settings, belt printer): 'Rev' means reversed (max − position), distinct from '-Z' (negated). Check that 'Z inversé' is not confused with '-Z'.
+msgid "Rev Z"
+msgstr "Z inversé"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "Remappage G-code X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Axe de découpage qui correspond à l'axe X de la machine dans le G-code généré. Appliqué APRÈS le découpage, lors de la génération du G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "Remappage G-code Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Axe de découpage qui correspond à l'axe Y de la machine dans le G-code généré. Appliqué APRÈS le découpage, lors de la génération du G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "Remappage G-code Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Axe de découpage qui correspond à l'axe Z de la machine dans le G-code généré. Appliqué APRÈS le découpage, lors de la génération du G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Décalage Z du plancher des supports"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Déplace vers le haut ou vers le bas le plancher calculé du tapis (mm). Les valeurs négatives abaissent le plancher, ce qui permet de conserver davantage de supports. Utilisez ce réglage pour diagnostiquer les problèmes de la formule du plancher du tapis."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Activer la tour de purge du tapis"
+
+# AI Translated
+# Needs human review: Glossary cell for Prime tower / Wipe tower is unsettled (⚠); used the catalog's Tour d’essuyage / Tour d’amorçage
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Remplacement de la tour d’essuyage/d’amorçage pour les imprimantes à tapis. Lorsque cette option est activée sur une imprimante à tapis, un prisme de purge est généré automatiquement à côté des pièces imprimées et la purge lors des changements de filament y est dirigée (la tour d’essuyage classique ne peut pas être utilisée sur les imprimantes à tapis, car son G-code contourne la transformation du tapis). Disponible uniquement sur les imprimantes à tapis."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Largeur de la tour de purge du tapis"
+
+# AI Translated
+# Needs human review: Glossary cell for Prime tower / Wipe tower is unsettled (⚠); used the catalog's Tour d’essuyage for 'wipe tower'
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Largeur (X machine, en travers du tapis) du prisme de purge généré automatiquement sur les imprimantes à tapis lorsque la tour de purge du tapis est activée et que plusieurs filaments sont utilisés. La purge lors des changements de filament est dirigée vers les extrusions de ce prisme au lieu d'une tour d’essuyage classique. Sa hauteur est calculée automatiquement à partir du volume de purge le plus défavorable par couche : un prisme plus large sera moins haut."
+
msgid "Tree support branch angle"
msgstr "Angle de branche support arborescent"
@@ -18096,13 +19698,11 @@ msgstr "Remplissages séparés"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"Centre le remplissage interne de chaque pièce sur elle-même, comme si elle était découpée seule, au lieu de sur l'ensemble de l'assemblage. Les pièces qui se touchent ou se chevauchent sont traitées comme un seul corps et partagent un centre ; les pièces séparées (ou des objets 3D distincts) en obtiennent chacune un.\n"
-"Utile lorsqu'un assemblage regroupe plusieurs objets qui devraient chacun conserver un remplissage cohérent et centré sur lui-même.\n"
-"Affecte les motifs en lignes et en grille et les remplissages à modèle de rotation.\n"
-"Les motifs verrouillés sur les coordonnées globales (Gyroïde, Nid d'abeille, TPMS, ...) ne sont pas affectés."
+"Centre le remplissage interne de chaque pièce sur elle-même, comme si elle était découpée seule, plutôt que sur l'ensemble de l'assemblage. Les pièces qui se touchent ou se chevauchent sont traitées comme un seul corps et partagent un centre ; les pièces séparées (ou les objets 3D distincts) ont chacune le leur.\n"
+"Utile lorsqu'un assemblage regroupe plusieurs objets qui doivent chacun conserver un remplissage cohérent, centré sur eux-mêmes.\n"
+"Cubique adaptatif et Support Cubique centrent toujours chaque pièce sur elle-même, et le remplissage Lightning est généré pour l'objet entier et n'est pas affecté."
# AI Translated
msgid "Center surface pattern on"
@@ -18202,8 +19802,9 @@ msgid "Prime volume mode"
msgstr "Mode de volume d'amorçage"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’essuyage"; align it once the term is settled.
msgid "Selects how the wipe-tower prime and flush volumes are computed on multi-extruder printers."
-msgstr "Sélectionne la manière dont les volumes d'amorçage et de purge de la tour d'essuyage sont calculés sur les imprimantes multi-extrudeurs."
+msgstr "Sélectionne la manière dont les volumes d’amorçage et de purge de la tour d’essuyage sont calculés sur les imprimantes multi-extrudeurs."
# AI Translated
msgid "Saving"
@@ -18234,40 +19835,44 @@ msgstr "Angle au sommet du cône utilisé pour stabiliser la tour d’essuyage.
msgid "Maximum wipe tower print speed"
msgstr "Vitesse maximale d’impression de la tour d’essuyage"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’essuyage"; align it once the term is settled.
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
"Vitesse d’impression maximale lors de la purge dans la tour d’essuyage et de l’impression des couches éparses de la tour d’essuyage. Lors de la purge, si la vitesse de remplissage ou la vitesse calculée à partir de la vitesse volumétrique maximale du filament est inférieure, c’est la plus faible qui sera utilisée.\n"
"\n"
-"Lors de l’impression des couches éparses, si la vitesse du périmètre interne ou la vitesse calculée à partir de la vitesse volumétrique maximale du filament est inférieure, c’est la plus faible qui sera utilisée.\n"
+"Lors de l’impression des couches éparses, si la vitesse de remplissage ou la vitesse calculée à partir de la vitesse volumétrique maximale du filament est inférieure, c’est la plus faible qui sera utilisée.\n"
"\n"
"L’augmentation de cette vitesse peut affecter la stabilité de la tour et accroître la force avec laquelle la buse heurte les éventuels amas qui se sont formés sur la tour d’essuyage.\n"
"\n"
"Avant d’augmenter ce paramètre au-delà de la valeur par défaut de 90 mm/s, assurez-vous que votre imprimante peut réaliser des ponts de façon fiable à des vitesses plus élevées et que le suintement lors des changements d’outil est bien maîtrisé.\n"
"\n"
-"Pour les périmètres externes de la tour d’essuyage, c’est la vitesse du périmètre interne qui est utilisée, indépendamment de ce paramètre."
+"Pour les périmètres externes de la tour d’essuyage, c’est la vitesse du périmètre interne qui est utilisée, également limitée par ce paramètre."
msgid "Wall type"
msgstr "Type de paroi"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’essuyage"; align it once the term is settled.
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
-"Type de paroi extérieure de la tour de purge.\n"
-"1. Rectangle : Le type de paroi par défaut, un rectangle avec une largeur et une hauteur fixes.\n"
-"2. Cône : Un cône avec un congé en bas pour aider à stabiliser la tour de purge.\n"
-"3. Nervure : Ajoute quatre nervures à la paroi de la tour pour une stabilité améliorée."
+"Type de paroi extérieure de la tour d’essuyage.\n"
+"1. Rectangle : Un rectangle avec une largeur et une hauteur fixes.\n"
+"2. Cône : Un cône avec un congé en bas pour aider à stabiliser la tour d’essuyage.\n"
+"3. Nervure : Le type de paroi par défaut, qui ajoute quatre nervures à la paroi de la tour pour une stabilité améliorée."
msgid "Rectangle"
msgstr "Rectangle"
@@ -18335,6 +19940,14 @@ msgstr "La purge après le changement de filament se fera à l'intérieur du sup
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Cet objet sera utilisé pour purger la buse après un changement de filament afin d'économiser du filament et de réduire le temps d'impression. Les couleurs des objets seront mélangées en conséquence. Cela ne prendra effet que si la tour d’amorçage est activée."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Objet tour de purge du tapis"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Identifie le prisme de purge du tapis généré automatiquement. Géré automatiquement ; ne pas définir manuellement."
+
msgid "Maximal bridging distance"
msgstr "Distance de pont maximale"
@@ -18350,8 +19963,10 @@ msgstr "Espacement des lignes de purge sur la tour d’essuyage."
msgid "Extra flow for purging"
msgstr "Débit supplémentaire pour purger"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Débit supplémentaire utilisé pour les lignes de purge de la tour d’essuyage. Cela rend les lignes de purge plus épaisses ou plus étroites qu’elles ne le seraient normalement. L’espacement est ajusté automatiquement."
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’essuyage"; align it once the term is settled.
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Débit supplémentaire utilisé pour les lignes de purge de la tour d’essuyage. Cela rend les lignes de purge plus épaisses qu’elles ne le seraient normalement. L’espacement est ajusté automatiquement."
msgid "Idle temperature"
msgstr "Température au repos"
@@ -18467,14 +20082,15 @@ msgstr "Épaisseur minimale des éléments fins. Les éléments du modèle plus
msgid "Minimum wall length"
msgstr "Longueur minimale de la paroi"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Ajustez cette valeur pour éviter que des parois courtes et non fermées soient imprimées, ce qui pourrait augmenter le temps d’impression. Des valeurs plus élevées suppriment des parois plus nombreuses et plus longues.\n"
+"Ajustez cette valeur pour éviter que des parois courtes et non fermées soient imprimées, ce qui pourrait augmenter le temps d’impression. La valeur est un multiple de la largeur de paroi. Des valeurs plus élevées suppriment des parois plus nombreuses et plus longues.\n"
"\n"
-"REMARQUE : les surfaces inférieures et supérieures ne sont pas affectées par cette valeur afin d’éviter les lacunes visuelles sur le côté du modèle. Réglez le « seuil d’une paroi » dans les paramètres avancés ci-dessous pour ajuster la sensibilité de ce qui est considéré comme une surface supérieure. Le « seuil d’une paroi » n’est visible que si ce paramètre est supérieur à la valeur par défaut de 0,5 ou si l’option « surfaces supérieures à une paroi » est activée."
+"REMARQUE : les surfaces inférieures et supérieures ne sont pas affectées par cette valeur afin d’éviter les lacunes visuelles sur le côté du modèle. Réglez « Seuil de paroi unique » dans les paramètres « Parois et surfaces » ci-dessous pour ajuster la sensibilité de ce qui est considéré comme une surface supérieure. « Seuil de paroi unique » n’est visible que si ce paramètre est supérieur à la valeur par défaut de 0,5 ou si l’option « surfaces supérieures à une paroi » est activée."
msgid "Maximum wall resolution"
msgstr "Résolution maximale des parois"
@@ -18485,8 +20101,9 @@ msgstr "Cette valeur détermine la longueur du plus petit segment de ligne de pa
msgid "Maximum wall deviation"
msgstr "Écart maximal des parois"
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "Écart maximal autorisé lors de la réduction de la résolution pour le paramètre « Résolution maximale des parois ». Si vous l’augmentez, l’impression sera moins exacte, mais le G-code sera plus petit. « Écart maximal des parois » limite « Résolution maximale des parois » ; en cas de conflit entre les deux, « Écart maximal des parois » est prioritaire."
+# AI Translated
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "Écart maximal autorisé lors de la réduction de la résolution pour le paramètre « Résolution maximale des parois ». Si vous l’augmentez, l’impression sera moins exacte, mais le G-code sera plus petit. « Écart maximal des parois » limite « Résolution maximale des parois » ; en cas de conflit entre les deux, « Écart maximal des parois » est prioritaire."
msgid "First layer minimum wall width"
msgstr "Largeur minimale de la paroi de la première couche"
@@ -18579,8 +20196,11 @@ msgstr "La largeur de ligne des ponts ne doit pas dépasser le diamètre de la b
msgid "too large line width "
msgstr "largeur de ligne trop grande "
-msgid " not in range "
-msgstr " hors plage "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% n’est pas dans la plage [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Exporter le projet au format 3MF."
@@ -18730,6 +20350,14 @@ msgstr "Options d’orientation"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Options d’orientation : 0-désactiver, 1-activer, autres-auto"
+# AI Translated
+msgid "Repair"
+msgstr "Réparer"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Répare les maillages des modèles comme le fait « Réparer le modèle » : comble les trous et les fissures, les oriente vers l’extérieur et supprime les auto-intersections."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Angle de rotation autour de l’axe Z en degrés."
@@ -18838,6 +20466,12 @@ msgstr "Répertoire de sortie"
msgid "This is the output directory for exported files."
msgstr "Répertoire de sortie des fichiers exportés."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Niveau de débogage"
@@ -19002,6 +20636,56 @@ msgstr "Dispose d’un seul extrudeur MM d’amorçage"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Les régions d’amorçage multimatériaux supplémentaires sont-elles utilisées dans cette impression ?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Extrudeur initial sans support"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Index commençant à zéro du premier extrudeur utilisé pour l’impression sans support. Identique à initial_no_support_tool."
+
+# AI Translated
+# Needs human review: Placeholder variable label. 'Head wrap' (filament wrapping around the toolhead/nozzle) is translated as 'enroulement de la tête'; confirm the wording against the printer feature.
+msgid "In head wrap detect zone"
+msgstr "Dans la zone de détection d’enroulement de la tête"
+
+# AI Translated
+# Needs human review: 'Head wrap zone' is translated as 'zone d’enroulement de la tête'; confirm the wording against the printer feature.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Indique si la première couche chevauche la zone d’enroulement de la tête."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Type de plateau actuel"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Nom du type de plateau actuellement sélectionné (par ex. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Mode IDEX/IQEX actif"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Nom du mode d’impression parallèle IDEX/IQEX actif pour cette plaque (par ex. 'primary', 'mirror', 'copy'). Chaîne vide si IDEX/IQEX n’est pas activé."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Index du mode IDEX/IQEX actif"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Index (à partir de zéro) du mode d’impression parallèle IDEX/IQEX actif dans imex_mode_names."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code du mode IDEX/IQEX actif"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Modèle de G-code brut du mode d’impression parallèle IDEX/IQEX actif, après évaluation des placeholders. Les variables globales définies ici sont transmises à machine_start_gcode."
+
msgid "Volume per extruder"
msgstr "Volume par extrudeur"
@@ -19138,6 +20822,18 @@ msgstr "Nom du fichier d’entrée sans extension"
msgid "Source filename of the first object, without extension."
msgstr "Nom du fichier source du premier objet, sans extension."
+# AI Translated
+msgid "Full input filename"
+msgstr "Nom complet du fichier d’entrée"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Nom du fichier source du premier objet."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Nom de la plaque découpée."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Le vecteur a deux éléments : les coordonnées x et y du point. Valeurs en mm."
@@ -19168,6 +20864,59 @@ msgstr "Coin supérieur droit de la boîte de délimitation du plateau d’impre
msgid "Size of the print bed bounding box"
msgstr "Taille du plateau d’impression"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "tour d’essuyage"; align it once the term is settled.
+msgid "First layer center without wipe tower"
+msgstr "Centre de la première couche sans tour d’essuyage"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Hauteur de la première couche."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Vecteur des températures du plateau pour chaque extrudeur/filament."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Vecteur des températures du plateau de la première couche pour chaque extrudeur/filament. Fournit la même valeur que first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Température du plateau de la première couche (extrudeur initial)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Température du plateau de la première couche pour l’extrudeur initial. Identique à bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Vecteur des températures du caisson pour chaque extrudeur/filament."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Vecteur des températures minimales du caisson pour chaque extrudeur/filament."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Température globale du caisson"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Température globale du caisson. Cette valeur est la température maximale du caisson parmi tous les extrudeurs/filaments utilisés."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Vecteur des températures du plateau de la première couche pour chaque extrudeur/filament. Fournit la même valeur que bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Température de la première couche"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Vecteur des températures de la première couche pour chaque extrudeur/filament."
+
msgid "Timestamp"
msgstr "Horodatage"
@@ -19213,8 +20962,9 @@ msgstr "Nom de l’imprimante physique utilisé pour la découpe."
msgid "Layer number"
msgstr "Numéro de couche"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Indice de la couche actuelle. Base unitaire (c’est-à-dire que la première couche porte le numéro 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Indice de la couche actuelle. Commence à zéro (la première couche porte le numéro 0), sauf dans le G-code de changement du rôle de l’extrusion, où il commence à un."
msgid "Layer Z"
msgstr "Couche z"
@@ -19234,6 +20984,252 @@ msgstr "ID de l’extrudeur de filaments"
msgid "The current extruder ID. The same as current_extruder."
msgstr "L’ID de l’extrudeur actuel. Identique à current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Extrudeur précédent"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Index de l’extrudeur en cours de déchargement. L’index commence à zéro (le premier extrudeur a l’index 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Extrudeur suivant"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Index de l’extrudeur en cours de chargement. L’index commence à zéro (le premier extrudeur a l’index 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Axe E relatif"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Indique si le positionnement relatif est utilisé."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Nombre de changements d’outil"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "Nombre de changements d’outil pendant l’impression."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Ancienne longueur de rétraction"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Longueur de rétraction du filament précédent."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Nouvelle longueur de rétraction"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Longueur de rétraction du nouveau filament."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Ancienne longueur de rétraction (changement d’outil)"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Longueur de rétraction du filament précédent lors du changement d’outil."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Nouvelle longueur de rétraction (changement d’outil)"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "Longueur de rétraction du nouveau filament lors du changement d’outil."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Ancienne température du filament"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "L’ancienne température du filament."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Nouvelle température du filament"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "La nouvelle température du filament."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X après changement d’outil"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "La position X après le changement d’outil."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y après changement d’outil"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "La position Y après le changement d’outil."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z après changement d’outil"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "La position Z après le changement d’outil."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Premier volume de purge"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Le premier volume de purge."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Deuxième volume de purge"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Le deuxième volume de purge."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Ancienne vitesse d’avance E du filament"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "La vitesse d’avance de l’extrudeur de l’ancien filament."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Nouvelle vitesse d’avance E du filament"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "La vitesse d’avance de l’extrudeur du nouveau filament."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Point de déplacement 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "Le point de déplacement 1 X."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Point de déplacement 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Le point de déplacement 1 Y."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Point de déplacement 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "Le point de déplacement 2 X."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Point de déplacement 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Le point de déplacement 2 Y."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Point de déplacement 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "Le point de déplacement 3 X."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Point de déplacement 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Le point de déplacement 3 Y."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Longueur de purge 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "La première longueur de purge."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Longueur de purge 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "La deuxième longueur de purge."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Longueur de purge 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "La troisième longueur de purge."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Longueur de purge 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "La quatrième longueur de purge."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Rôle de l'extrusion"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Le nouveau rôle/type d'extrusion qui va être utilisé\n"
+"Valeurs possibles :\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Dernier rôle de l'extrusion"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Le rôle/type d'extrusion utilisé précédemment\n"
+"Valeurs possibles :\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Erreur dans l'archive zip"
@@ -19246,24 +21242,32 @@ msgstr "Génération de régions de remplissage"
msgid "Generating infill toolpath"
msgstr "Génération d'un parcours d'outil de remplissage"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Contournage en Z : couche %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Détectez les surplombs pour un levage automatique"
msgid "Checking support necessity"
msgstr "Vérification de la nécessité du support"
-msgid "floating regions"
-msgstr "régions flottantes"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Il semble que l’objet %1% ait des régions flottantes. Veuillez réorienter l’objet ou activer la génération de supports."
-msgid "floating cantilever"
-msgstr "surplomb flottant"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Il semble que l’objet %1% ait un porte-à-faux flottant. Veuillez réorienter l’objet ou activer la génération de supports."
-msgid "large overhangs"
-msgstr "grands surplombs"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Il semble que l'objet %s possède %s. Veuillez réorienter l'objet ou activer la génération de support."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Il semble que l’objet %1% ait de grands surplombs. Veuillez réorienter l’objet ou activer la génération de supports."
msgid "Generating support"
msgstr "Génération des supports"
@@ -19274,8 +21278,9 @@ msgstr "Optimisation du parcours d'outil"
msgid "Slicing mesh"
msgstr "Découpe du maillage"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Aucune couche n'a été détectée. Vous pouvez réparer vos STL, vérifier leur taille ou leur épaisseur et réessayer.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Aucune couche n’a été détectée. Vous pouvez réparer le modèle, vérifier sa taille ou son épaisseur et réessayer.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19294,6 +21299,397 @@ msgstr ""
msgid "Object name"
msgstr "Nom de l'objet"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Impossible d’appliquer l’opérateur moins unaire."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Impossible de convertir en entier."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Impossible d’arrondir une valeur non numérique."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Impossible d’arrondir à l’entier inférieur une valeur non numérique."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Impossible d’arrondir à l’entier supérieur une valeur non numérique."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Impossible d’appliquer l’opérateur not."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Impossible d’additionner des types non numériques."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Impossible de soustraire des types non numériques."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Impossible de multiplier avec un type non numérique."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Impossible de diviser un type non numérique."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Impossible de diviser par un type non numérique."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Division par zéro"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Ce n’est pas une expression booléenne"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Impossible de comparer ces types."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Ce n’est pas un type numérique."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits : le deuxième paramètre doit être un entier"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits : le troisième paramètre doit être un entier"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Le côté gauche d’une correspondance regex doit être une chaîne."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Échec de la compilation de l’expression régulière : %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "Le premier paramètre de regex_replace() doit être une chaîne."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of() : le premier paramètre (la chaîne à comparer) doit être une valeur de type chaîne"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of() : le motif doit être une valeur de type chaîne"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Échec de la compilation de l’expression régulière"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Impossible d’appliquer une opération logique à des opérandes non booléens."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Tentative d’indexation d’une variable scalaire"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Index de vecteur non valide"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "La variable n’existe pas (dans une branche inactive)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "La variable n’existe pas"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Tentative de référence à une variable facultative non définie (nil)"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Indexation d’une variable vectorielle vide"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Tentative de référence à un élément non défini (nil) d’un vecteur de valeurs facultatives"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "La variable d’indexation doit être un entier"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Index de vecteur négatif"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Ce n’est pas un nom de variable"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Ce n’est pas un nom de variable (dans une branche inactive)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "La variable FloatOrPercent n’a pas pu résoudre les dépendances « ratio_over »"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Type de variable scalaire non pris en charge"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Référence à une variable vectorielle alors qu’un scalaire est attendu"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Type de variable vectorielle non pris en charge"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Impossible de modifier une variable en lecture seule"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Le côté droit n’est pas une expression numérique"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Nombre d’éléments attendu pour remplir un vecteur."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Nombre d’éléments négatif spécifié."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Le côté droit n’est pas une expression booléenne"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Type de variable scalaire de sortie non pris en charge"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Référence à une variable vectorielle de sortie alors qu’un scalaire est attendu"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Index hors limites"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Type de variable vectorielle de sortie non pris en charge"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Le symbole est déjà défini dans le dictionnaire système en lecture seule"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Le symbole est déjà défini comme variable de sortie système"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Les variables globales ne sont pas disponibles dans ce contexte"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Nom de variable déjà défini dans la portée locale"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Nom de variable déjà défini dans la portée globale"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Impossible d’affecter une valeur scalaire à une variable vectorielle."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Impossible d’affecter une valeur vectorielle à une variable scalaire."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Impossible de créer une variable vectorielle à partir d’une liste d’initialisation vide, car son type ne peut pas être déduit."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Le côté droit n’est pas valide : mélange de types numériques et booléens."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Impossible d’affecter un scalaire à un vecteur"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Certains éléments de la variable vectorielle de valeurs facultatives du côté droit ne sont pas définis (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Le côté gauche est un vecteur de flottants, alors que le côté droit n’en est pas un."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Le côté gauche est un vecteur d’entiers, alors que le côté droit n’en est pas un."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Le côté gauche est un vecteur de chaînes, alors que le côté droit n’en est pas un."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Le côté gauche est un vecteur de booléens, alors que le côté droit n’en est pas un."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Les vecteurs du côté gauche et du côté droit ne sont pas compatibles."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "La duplication de ce type de variable vectorielle n’est pas prise en charge"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "Le paramètre de empty() n’est pas une variable vectorielle"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "Le paramètre de size() n’est pas une variable vectorielle"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Un index non entier n’est pas autorisé pour adresser une variable vectorielle."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Le générateur de nombres aléatoires n’est pas disponible dans ce contexte."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Erreur d’analyse à la ligne %1% : %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Erreur d’analyse à la ligne %1%. Balise %2% attendue"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Erreur d’analyse à la ligne %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "La valeur d’interpolation doit être un nombre."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "La valeur X d’un point du tableau doit être un nombre."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "La valeur Y d’un point du tableau doit être un nombre."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Les coordonnées X du tableau doivent être croissantes"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "La valeur d’interpolation est en dehors de la plage du tableau"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Erreur de syntaxe inconnue"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Texte non valide."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Bloc de texte non valide."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Macro non valide."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Ce n’est pas une macro {if}{else}{endif}."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Ce n’est pas une macro {switch}."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Ancien format d’expansion de variable attendu"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Identifiant attendu."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Expression conditionnelle attendue."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Expression booléenne attendue."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Expression attendue."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Accolade fermante ou paramètre facultatif attendu."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Liste de motifs de chaîne attendue (texte simple ou regex)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Référence de variable attendue."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Nom de variable attendu."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Expression régulière attendue."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Séquence utf8 non valide"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Les caractères non ASCII7 ne sont autorisés que dans les blocs de texte et les littéraux de chaîne, pas dans les blocs de code."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Séquence d’échappement non valide"
+
msgid "Support: generate contact points"
msgstr "Support : génération des points de contact"
@@ -19310,6 +21706,10 @@ msgstr "Le fichier fourni n'a pas pu être lu car il est vide"
msgid "The file format is incompatible and cannot be parsed."
msgstr "Le format du fichier est incompatible et ne peut pas être analysé."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Échec de la conversion de la ressource en STL via ModelIO."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Format de fichier inconnu : le fichier d'entrée doit porter l'extension .stl, .obj ou .amf (.xml)."
@@ -19358,9 +21758,6 @@ msgstr "Recalibration"
msgid "Calibrate"
msgstr "Calibrer"
-msgid "Finish"
-msgstr "Terminer"
-
msgid "How can I use calibration results?"
msgstr "Comment utiliser le résultat de la calibration ?"
@@ -19455,9 +21852,12 @@ msgstr ""
"Au sein du même extrudeur, le nom (%s) doit être unique lorsque le type de filament, le diamètre de buse et le débit de buse sont identiques.\n"
"Voulez-vous vraiment écraser le résultat historique ?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Ce type de machine ne peut contenir que %d résultats historiques par buse. Ce résultat ne sera pas enregistré."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Ce type de machine ne peut contenir que %d résultat historique par buse. Ce résultat ne sera pas enregistré."
+msgstr[1] "Ce type de machine ne peut contenir que %d résultats historiques par buse. Ce résultat ne sera pas enregistré."
msgid "Connecting to printer..."
msgstr "Connexion à l’imprimante…"
@@ -19679,9 +22079,13 @@ msgstr "Synchroniser les informations de buse et d'AMS"
msgid "Please connect the printer first before synchronizing."
msgstr "Veuillez d'abord connecter l'imprimante avant de synchroniser."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "Les informations de buse de l'imprimante %s n'ont pas été définies. Veuillez les configurer avant de procéder à la calibration."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Les informations de la buse droite de l’imprimante n’ont pas été définies. Veuillez les configurer avant de procéder à la calibration."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Les informations de la buse gauche de l’imprimante n’ont pas été définies. Veuillez les configurer avant de procéder à la calibration."
msgid "AMS and nozzle information are synced"
msgstr "Les informations de l'AMS et de la buse sont synchronisées"
@@ -19744,6 +22148,11 @@ msgstr "Depuis la vitesse volumétrique"
msgid "To Volumetric Speed"
msgstr "Vers la vitesse volumétrique"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Pas"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Voulez-vous vraiment annuler cette impression ?"
@@ -19769,9 +22178,12 @@ msgstr "Remarque : Le numéro du hotend sur le %s est lié au support. Lorsque l
msgid "Action"
msgstr "Action"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Ce type de machine ne peut contenir que %d résultats historiques par buse."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Ce type de machine ne peut contenir que %d résultat historique par buse."
+msgstr[1] "Ce type de machine ne peut contenir que %d résultats historiques par buse."
msgid "Edit Flow Dynamics Calibration"
msgstr "Modifier la calibration dynamique du débit"
@@ -19898,12 +22310,13 @@ msgstr ""
"Les valeurs d'accélération doivent être supérieures aux valeurs de vitesse.\n"
"Veuillez vérifier les entrées."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Pas encore disponible sur les imprimantes à tapis — utilisez plutôt la méthode Tour PA."
+
msgid "Temperature calibration"
msgstr "Calibration de Température"
-msgid "Filament type"
-msgstr "Filament"
-
msgid "PLA"
msgstr "PLA"
@@ -19925,6 +22338,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Modèle de test"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Standard"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Surplomb"
+
msgid "Start temp: "
msgstr "Temp. de début: "
@@ -20050,9 +22476,6 @@ msgstr "Longueur de rétraction de début: "
msgid "End retraction length: "
msgstr "Longueur de rétraction de fin: "
-msgid "Test model"
-msgstr "Modèle de test"
-
msgid "Ringing Tower"
msgstr "Tour de résonance"
@@ -20082,8 +22505,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Fréquence (début / fin) : "
-msgid "Start / End"
-msgstr "Début / Fin"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X Début / Fin : "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y Début / Fin : "
msgid "Frequency settings"
msgstr "Paramètres de fréquence"
@@ -20120,8 +22548,13 @@ msgstr "Vérifier la compatibilité du firmware."
msgid "Frequency: "
msgstr "Fréquence : "
-msgid "Damp"
-msgstr "Amortissement"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Fréquence X / Y : "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Amortissement (début / fin) : "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "Le firmware RepRap utilise la même fréquence pour les deux axes."
@@ -20245,9 +22678,12 @@ msgstr "Timelapse"
msgid "Enable IFS"
msgstr "Activer l’IFS"
+# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "%d emplacements IFS détectés sur l’imprimante."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "%d emplacement IFS détecté sur l’imprimante."
+msgstr[1] "%d emplacements IFS détectés sur l’imprimante."
msgid "This printer does not report a material station."
msgstr "Cette imprimante ne signale aucune station de matériaux."
@@ -20365,8 +22801,10 @@ msgstr "Soustraire de"
msgid "Subtract with"
msgstr "Soustraire avec"
-msgid "selected"
-msgstr "sélectionné"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 sélectionné"
msgid "Part 1"
msgstr "Partie 1"
@@ -20479,9 +22917,6 @@ msgstr "par exemple : Basic, Matte, Silk, Marble"
msgid "Filament Preset"
msgstr "Préréglage du filament"
-msgid "Create"
-msgstr "Créer"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "Le fournisseur n’est pas sélectionné, veuillez le sélectionner à nouveau."
@@ -20788,6 +23223,10 @@ msgstr ""
"Imprimante et tous les préréglages de filament et de traitement qui appartiennent à l’imprimante.\n"
"Peut être partagé avec d’autres."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Inclure la texture et le modèle personnalisés du plateau"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -20839,14 +23278,6 @@ msgstr "Remarque : si le seul préréglage sous ce filament est supprimé, le fi
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Les préréglages hérités d’autres préréglages ne peuvent pas être supprimés"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Les préréglages suivants héritent de ce préréglage."
-msgstr[1] "Le préréglage suivant hérite de ce préréglage."
-
-msgid "Delete Preset"
-msgstr "Supprimer le préréglage"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Voulez-vous vraiment supprimer le préréglage sélectionné ?"
@@ -20923,10 +23354,12 @@ msgstr "Le début, la fin ou l’intervalle n’est pas une valeur valide."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "Le nombre d'extrudeurs de l'imprimante et l'imprimante sélectionnée pour la calibration ne correspondent pas."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "Le diamètre de buse de l'extrudeur %s est de 0,2 mm, ce qui ne prend pas en charge la calibration automatique de dynamique de débit."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -20942,6 +23375,12 @@ msgstr ""
"Le diamètre de buse ne correspond pas au diamètre de buse réel de l'imprimante.\n"
"Veuillez cliquer sur le bouton Synchroniser ci-dessus et redémarrer la calibration."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Les informations de buse de l'imprimante %s n'ont pas été définies. Veuillez les configurer avant de procéder à la calibration."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21014,6 +23453,11 @@ msgstr "Détecter une imprimante Creality série K"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Cliquez sur Scan pour rechercher des imprimantes série K sur votre réseau."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Modèle"
+
# AI Translated
msgid "Scan"
msgstr "Rechercher"
@@ -21031,9 +23475,12 @@ msgstr "(série K inconnue)"
msgid "No K-series printers found. Make sure the printer is on the same network and not blocked by Wi-Fi client isolation, then click Scan again."
msgstr "Aucune imprimante série K trouvée. Assurez-vous que l’imprimante est sur le même réseau et qu’elle n’est pas bloquée par l’isolation des clients Wi-Fi, puis cliquez à nouveau sur Scan."
+# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "%zu imprimante(s) Creality trouvée(s). Sélectionnez-en une et cliquez sur Utiliser la sélection."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "%zu imprimante Creality trouvée. Sélectionnez-la et cliquez sur Utiliser la sélection."
+msgstr[1] "%zu imprimantes Creality trouvées. Sélectionnez-en une et cliquez sur Utiliser la sélection."
msgid "Active"
msgstr "Actif"
@@ -21122,8 +23569,13 @@ msgstr "Impossible de déterminer le chemin de l’exécutable."
msgid "Failed to launch a new instance."
msgstr "Échec du lancement d’une nouvelle instance."
-msgid "log(s)"
-msgstr "journal(aux)"
+# AI Translated
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d journal (%.2f %s)"
+msgstr[1] "%d journaux (%.2f %s)"
msgid "Choose where to save the exported JSON file"
msgstr "Choisissez où enregistrer le fichier JSON exporté"
@@ -21166,15 +23618,35 @@ msgstr "Type d’imprimante introuvable, veuillez le sélectionner manuellement.
msgid "Authorizing..."
msgstr "Autorisation en cours…"
-msgid "Error. Can't get API token for authorization"
-msgstr "Erreur : impossible d’obtenir le jeton d’API pour l’autorisation"
+# AI Translated
+msgid "Maximum login retries exceeded"
+msgstr "Nombre maximal de tentatives de connexion dépassé"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "Erreur HTTP : %1%"
msgid "Could not parse server response."
msgstr "Impossible d’analyser la réponse du serveur."
+msgid "Error. Can't get API token for authorization"
+msgstr "Erreur : impossible d’obtenir le jeton d’API pour l’autorisation"
+
msgid "Error saving session to file"
msgstr "Erreur lors de l’enregistrement de la session dans un fichier"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "La connexion au cloud 3DPrinterOS fonctionne correctement."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Connecté en tant qu’utilisateur : %1%"
+
msgid "Error session check"
msgstr "Erreur lors de la vérification de la session"
@@ -21209,6 +23681,42 @@ msgstr "Mot de passe erroné"
msgid "Could not get resources to create a new connection"
msgstr "Impossible d’obtenir des ressources pour créer une nouvelle connexion"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "La connexion à UltiMaker fonctionne correctement."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Impossible de se connecter à UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Erreur lors de la génération des identifiants ! Consultez le journal pour plus de détails."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "ERREUR : l’ID ou la CLÉ est vide. ID=%1% CLÉ=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Nom d’utilisateur : %1% Mot de passe : %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Les identifiants d’authentification sont en attente d’approbation. Veuillez approuver l’accès via la boîte de dialogue sur l’écran de l’imprimante."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Identifiants d’authentification non valides"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Erreur : aucun identifiant d’authentification trouvé !"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Le téléchargement n’est pas activé sur la carte FlashAir."
@@ -21322,6 +23830,14 @@ msgstr ""
"Corps du message : « %1% »\n"
"Erreur : « %2% »"
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "La connexion à ESP3D fonctionne correctement."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Impossible de se connecter à ESP3D"
+
msgid "No AMS"
msgstr "Pas d’AMS"
@@ -21393,6 +23909,11 @@ msgstr "Le nombre maximum d’imprimantes pouvant être sélectionnées est de %
msgid "No task"
msgstr "Aucune tâche"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Afficher"
+
msgid "Edit Printers"
msgstr "Modifier les imprimantes"
@@ -21434,6 +23955,11 @@ msgstr "Échec de l’impression"
msgid "Printing Pause"
msgstr "Impression en pause"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Préparation"
+
msgid "Pending"
msgstr "En attente"
@@ -21466,9 +23992,6 @@ msgstr "Activer l'attribution intelligente de filament : attribuer un filament
msgid "File Saving"
msgstr "Enregistrement du fichier"
-msgid "Don't remind me again"
-msgstr "Ne plus me rappeler"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Aucune fenêtre contextuelle n'apparaîtra plus. Vous pouvez la rouvrir dans 'Préférences'"
@@ -21493,16 +24016,24 @@ msgstr "Assigner manuellement le filament à la buse gauche ou droite"
msgid "Global settings"
msgstr "Paramètres globaux"
-msgid "Video tutorial"
-msgstr "Tutoriel vidéo"
-
msgid "(Sync with printer)"
msgstr "(Synchroniser avec l'imprimante)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Erreur : l'extrudeur %s n'a aucune buse %s disponible, le résultat de regroupement actuel est invalide."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Erreur : l’extrudeur gauche n’a aucune buse Standard disponible, le résultat de regroupement actuel n’est pas valide."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Erreur : l’extrudeur gauche n’a aucune buse haut débit disponible, le résultat de regroupement actuel n’est pas valide."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Erreur : l’extrudeur droit n’a aucune buse Standard disponible, le résultat de regroupement actuel n’est pas valide."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Erreur : l’extrudeur droit n’a aucune buse haut débit disponible, le résultat de regroupement actuel n’est pas valide."
msgid "We will slice according to this grouping method:"
msgstr "Nous allons trancher selon cette méthode de regroupement :"
@@ -21545,15 +24076,22 @@ msgstr "Impossible de se connecter à SimplyPrint"
msgid "Internal error"
msgstr "Erreur interne"
-msgid "Unknown error"
-msgstr "Erreur inconnue"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "Le compte SimplyPrint n’est pas lié. Allez dans les options de connexion pour le configurer."
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge a renvoyé une réponse JSON invalide."
+# AI Translated
+msgid "Request failed"
+msgstr "Échec de la requête"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Erreur de l’API locale Flashforge %1% : %2%"
+
msgid "No Flashforge printers were discovered on the local network."
msgstr "Aucune imprimante Flashforge n’a été découverte sur le réseau local."
@@ -21699,8 +24237,12 @@ msgstr "Attention : Si le type de bord n’est pas réglé sur « peint », les
msgid "Set the brim type of this object to \"painted\""
msgstr "Définir le type de bordure de cet objet sur \"peint\""
-msgid "invalid brim ears"
-msgstr "bordures à oreilles non valides"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d oreille de bordure non valide"
+msgstr[1] "%d oreilles de bordure non valides"
msgid "Brim Ears"
msgstr "Bordure à oreilles"
@@ -21726,6 +24268,7 @@ msgstr "Échec du chargement des informations d'objets à sauter. Veuillez rées
msgid "Failed to create the temporary folder."
msgstr "Échec de la création du dossier temporaire."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Sélectionné(s)"
@@ -21745,9 +24288,12 @@ msgstr "Ignorer tous les objets."
msgid "The printing job will be stopped. Continue?"
msgstr "Le travail d'impression sera arrêté. Continuer ?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Ignorer %d objet(s)."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "%d objet ignoré."
+msgstr[1] "%d objets ignorés."
msgid "This action cannot be undone. Continue?"
msgstr "Cette action ne peut pas être annulée. Continuer ?"
@@ -21893,6 +24439,43 @@ msgstr "Si activé, les valeurs ci-dessus sont stockées comme valeurs par défa
msgid "PresetBundle"
msgstr "Paquet de préréglages"
+# AI Translated
+msgid "Export Presets"
+msgstr "Exporter les préréglages"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Afficher dans le dossier"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Supprimer le paquet"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Se désabonner du paquet"
+
+# AI Translated
+msgid "Update available"
+msgstr "Mise à jour disponible"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Paquet non autorisé"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Ouvrir ce paquet dans votre navigateur"
+
+# AI Translated
+# Needs human review: Shared label: preset bundle type (Subscribed / Local / Default) and plugin source (Mine / Subscribed / Orphaned / Local). Check that the noun 'Abonnement' reads right in both lists.
+msgid "Subscribed"
+msgstr "Abonnement"
+
+# AI Translated
+msgid "Local"
+msgstr "Local"
+
msgid "Bundle folder does not exist."
msgstr "Le dossier du paquet n’existe pas."
@@ -21926,6 +24509,14 @@ msgstr "Se désabonner du paquet"
msgid "ExportPresetBundle"
msgstr "Exporter le paquet de préréglages"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Exporter vers OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Exporter vers un dossier"
+
msgid "Save preset bundle"
msgstr "Enregistrer le paquet de préréglages"
@@ -22013,6 +24604,11 @@ msgstr "Contrôle de l'humidité de l'AMS"
msgid "Filament Drying Settings"
msgstr "Paramètres de séchage du filament"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "h"
+
# AI Translated
msgid "Stopping"
msgstr "Arrêt en cours"
@@ -22192,6 +24788,11 @@ msgstr "Démarrage : vérification de l'entrée d'air"
msgid "Starting: Checking air vent"
msgstr "Démarrage : vérification de la sortie d'air"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Impossible de créer le répertoire %1%"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Le filament peut ne pas être compatible avec les paramètres actuels de la machine. Les préréglages de filament génériques seront utilisés."
@@ -22207,6 +24808,105 @@ msgstr "Le filament peut ne pas être compatible avec les paramètres actuels de
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Le modèle de filament est inconnu. Un préréglage de filament aléatoire sera utilisé."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Fichier de configuration inconnu : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Fichier de configuration non valide : %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "emplacement %1% -> emplacement %2% : filament mixte"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "définition de filament mixte : limite d’emplacements de filament atteinte"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "limite d’emplacements de filament atteinte"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "la limite de filaments de l’imprimante est %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "emplacement %1% -> emplacement %2% : filament mixte non attribué (la limite de filaments de l’imprimante est %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "emplacement %1% : filament mixte non attribué (la limite de filaments de l’imprimante est %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "emplacement %1% : %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "emplacement %1% : la définition du filament mixte n’a pas pu être importée"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "nécessite au moins deux composants"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "les composants font référence à des emplacements manquants"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "définition de filament mixte : %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "emplacement %1% : la définition du filament mixte n’a pas pu être importée (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "emplacement %1% : %2% -> %3% (substitut)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Échec du chargement du fichier de configuration %1%\n"
+"Il est conseillé de nettoyer d’abord le répertoire %2%"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Version de configuration du fabricant %1% : %2% non valide\n"
+"Il est conseillé de nettoyer d’abord le répertoire %3%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Échec du chargement du fichier de configuration %1% : %2%\n"
+"Il est conseillé de nettoyer d’abord le répertoire %3%"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Masquer les plans et axes de référence"
@@ -22478,6 +25178,11 @@ msgstr "Aucun corps surfacique à épaissir — créez d'abord une fonction de s
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Référence / Courbe (plan / axe / repère / hélice / projection)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Plan"
+
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Plan de référence (décalage / inclinaison / plan médian / tangent / deux arêtes / coïncident)"
@@ -22536,6 +25241,11 @@ msgstr "Déplacer et/ou faire pivoter un corps existant"
msgid "Transform needs a body — add or import one first"
msgstr "Transformer nécessite un corps — ajoutez-en ou importez-en un d'abord"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Symétrie"
+
msgid "Reflect a body about a plane"
msgstr "Refléter un corps par rapport à un plan"
@@ -22615,6 +25325,11 @@ msgstr "(aucun)"
msgid "Hole / thread"
msgstr "Trou / filetage"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Trou"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Percer un trou, centré sur une face choisie ou placé sur un plan"
@@ -22657,6 +25372,11 @@ msgstr "Cliquez sur 2 points ou sur une ligne / un cercle / un arc pour placer u
msgid "Line / polyline"
msgstr "Ligne / polyligne"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Ligne"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Cliquez sur le début, puis sur la fin — puis définissez la longueur exacte"
@@ -22786,6 +25506,9 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Cliquez sur des points de contrôle ; double-clic, clic droit ou Entrée pour terminer"
+msgid "Point"
+msgstr "Point"
+
# AI Translated
msgid "Click to place a point"
msgstr "Cliquez pour placer un point"
@@ -22890,17 +25613,19 @@ msgstr "Répétition circulaire (autour du centroïde)"
msgid "Pick entities, drag the sweep handle, click the count; click empty to apply"
msgstr "Choisissez des entités, faites glisser la poignée de balayage, cliquez sur le nombre ; cliquez dans le vide pour appliquer"
+# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Cliquez sur le centre puis sur un sommet — %d côtés, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Cliquez sur le centre puis sur un sommet — %d côté, circonscrit"
+msgstr[1] "Cliquez sur le centre puis sur un sommet — %d côtés, circonscrit"
# AI Translated
-msgid "circumscribed"
-msgstr "circonscrit"
-
-# AI Translated
-msgid "inscribed"
-msgstr "inscrit"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Cliquez sur le centre puis sur un sommet — %d côté, inscrit"
+msgstr[1] "Cliquez sur le centre puis sur un sommet — %d côtés, inscrit"
# AI Translated
msgid "Polygon"
@@ -23220,6 +25945,11 @@ msgstr "Sur la face"
msgid "Thread plane"
msgstr "Plan du filetage"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Norme"
+
# AI Translated
msgid "Pitch"
msgstr "Pas"
@@ -23392,6 +26122,9 @@ msgstr "Choisissez une face de solide à ouvrir, puis définissez l'épaisseur d
msgid "(pick a side face)"
msgstr "(choisir une face latérale)"
+msgid "Face"
+msgstr "Face"
+
# AI Translated
msgid "Draft"
msgstr "Dépouille"
@@ -23735,9 +26468,12 @@ msgstr "Esquisse vide — rien de validé"
msgid "Sketch updated"
msgstr "Esquisse mise à jour"
+# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Esquisse créée (%zu cotes pilotantes) — sélectionnez-la, puis clic droit pour Extruder"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Esquisse créée (%zu cote pilotante) — sélectionnez-la, puis clic droit pour Extruder"
+msgstr[1] "Esquisse créée (%zu cotes pilotantes) — sélectionnez-la, puis clic droit pour Extruder"
# AI Translated
#, c-format, boost-format
@@ -23870,8 +26606,10 @@ msgstr "Modification : Esquisse %d · N = vue normale au plan · Confirm
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — %zu triangles"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — %zu triangle"
+msgstr[1] "OK — %zu triangles"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -23954,13 +26692,22 @@ msgstr "Format de maillage non pris en charge (STL et OBJ sont pris en charge)"
msgid "The mesh contains no triangles"
msgstr "Le maillage ne contient aucun triangle"
+# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
-"Ce maillage compte %d triangles. Chaque triangle devient une face B-rep avant la fusion des faces coplanaires ; l'import peut donc être très long et produire un corps lent à modifier. Il vaut généralement mieux décimer d'abord le maillage.\n"
+msgstr[0] ""
+"Ce maillage compte %d triangle. Chaque triangle devient une face B-rep avant la fusion des faces coplanaires ; l’import peut donc être très long et produire un corps lent à modifier. Il vaut généralement mieux décimer d’abord le maillage.\n"
+"\n"
+"Importer quand même ?"
+msgstr[1] ""
+"Ce maillage compte %d triangles. Chaque triangle devient une face B-rep avant la fusion des faces coplanaires ; l’import peut donc être très long et produire un corps lent à modifier. Il vaut généralement mieux décimer d’abord le maillage.\n"
"\n"
"Importer quand même ?"
@@ -23985,9 +26732,10 @@ msgstr "Maillage"
msgid "Mesh import failed: %s"
msgstr "Échec de l’importation du maillage : %s"
+# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Solide importé — %d triangles → %d faces, volume %.2f mm³. Choisissez une face ou une arête, puis Congé / Coupe / Coque pour modifier"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Solide importé — triangles : %d → faces : %d, volume %.2f mm³. Choisissez une face ou une arête, puis Congé / Coupe / Coque pour modifier"
# AI Translated
#, c-format, boost-format
@@ -24002,8 +26750,11 @@ msgstr "Aucune géométrie importable trouvée"
msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s ajouté à l'esquisse — Confirmer pour le valider"
-msgid " — drag to place/size, then Confirm"
-msgstr " — faites glisser pour placer/dimensionner, puis Confirmer"
+# AI Translated
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — faites glisser pour placer/dimensionner, puis Confirmer"
msgid "Insert canceled"
msgstr "Insertion annulée"
@@ -24191,9 +26942,12 @@ msgid "a geometry operation failed"
msgstr "une opération géométrique a échoué"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d choisi(s)"
+msgid_plural " · %d picked"
+msgstr[0] " · %d choisi"
+msgstr[1] " · %d choisis"
# AI Translated
#, c-format, boost-format
@@ -24208,7 +26962,9 @@ msgstr "Sélection — cliquez sur une entité pour la choisir · faites gliss
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d choisi(s) · choisissez maintenant une contrainte (Horizontale, Parallèle, Tangente, Égale…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d choisi · choisissez maintenant une contrainte (Horizontale, Parallèle, Tangente, Égale…)"
+msgstr[1] "%d choisis · choisissez maintenant une contrainte (Horizontale, Parallèle, Tangente, Égale…)"
msgid "Constrain — click one or two entities, then choose a constraint"
msgstr "Contraindre — cliquez sur une ou deux entités, puis choisissez une contrainte"
@@ -24435,7 +27191,9 @@ msgstr "Symétrie — axe défini · cliquez maintenant sur les entités à sy
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Symétrie — axe défini · %d à symétriser · cliquez sur une autre entité pour l’ajouter ou la retirer · Entrée pour appliquer"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Symétrie — axe défini · %d à symétriser · cliquez sur une autre entité pour l’ajouter ou la retirer · Entrée pour appliquer"
+msgstr[1] "Symétrie — axe défini · %d à symétriser · cliquez sur une autre entité pour l’ajouter ou la retirer · Entrée pour appliquer"
# AI Translated
msgid "Move — click the entities to move"
@@ -24553,8 +27311,10 @@ msgstr "Point d’esquisse"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d entités d’esquisse"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d entité d’esquisse"
+msgstr[1] "%d entités d’esquisse"
msgid "select something first"
msgstr "sélectionnez d'abord quelque chose"
@@ -25018,8 +27778,10 @@ msgid "Applied edit"
msgstr "Modification appliquée"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — saisissez une valeur, appuyez sur Entrée (ou Confirmer)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — saisissez une valeur, appuyez sur Entrée (ou Confirmer)"
msgid "Pick a segment in the viewport first"
msgstr "Choisissez d'abord un segment dans la vue"
@@ -25082,10 +27844,23 @@ msgstr "Valider sur la plaque — envoyer le solide vers Préparer"
msgid "Nothing to commit — add a feature first"
msgstr "Rien à valider — ajoutez d'abord une fonction"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Corps de conception %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Tous les corps sont masqués — affichez-en un avant de valider"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Assemblage de conception"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Corps de conception"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -25151,8 +27926,10 @@ msgstr "Non valide : %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Aperçu — %zu triangles"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Aperçu — %zu triangle"
+msgstr[1] "Aperçu — %zu triangles"
#, c-format, boost-format
msgid "Body %d — moved (%.1f, %.1f, %.1f) mm, rotated %.1f°"
@@ -25246,8 +28023,10 @@ msgstr "Cette cote ne peut pas être respectée — l’esquisse est sur-contrai
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "Contraintes ignorées, car elles ne peuvent pas agir sur cette géométrie (une ellipse ou une courbe spline, ou un cercle de taille nulle) : %1%"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% contrainte ne peut pas agir sur cette géométrie (une ellipse ou une courbe spline, ou un cercle de taille nulle) et est ignorée"
+msgstr[1] "%1% contraintes ne peuvent pas agir sur cette géométrie (une ellipse ou une courbe spline, ou un cercle de taille nulle) et sont ignorées"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -25305,8 +28084,10 @@ msgstr "Chanfrein : la distance dépasse la longueur d’un côté, ou les deux
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "Contraintes invalidées par le congé/chanfrein et supprimées : %1%"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "%1% contrainte invalidée par le congé/chanfrein a été supprimée"
+msgstr[1] "%1% contraintes invalidées par le congé/chanfrein ont été supprimées"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -25326,8 +28107,10 @@ msgstr "Le nombre de copies doit être un nombre entier, égal ou supérieur à
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "Contraintes libérées par la transformation : %1%"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "%1% contrainte libérée par la transformation"
+msgstr[1] "%1% contraintes libérées par la transformation"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -25477,11 +28260,6 @@ msgstr "Épaissir la surface"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "L’épaississement de surface nécessite un corps surfacique — créez-en un d’abord avec un outil de surface"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Trou"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -25566,11 +28344,6 @@ msgstr "Répétition circulaire"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Répéter le corps autour d’un axe — définissez le nombre et l’angle"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Symétrie"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -25607,11 +28380,6 @@ msgstr "L’alignement nécessite un corps — ajoutez-en ou importez-en un d’
msgid "Align the body to a picked face or plane"
msgstr "Aligner le corps sur une face ou un plan choisi"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Plan"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -25716,11 +28484,6 @@ msgstr "Supprimer le corps"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Supprimer tout ce corps — retire la fonction à partir de laquelle il a été créé"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Ligne"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -26035,214 +28798,6 @@ msgstr "Cette police n’a pas de contour pour ce texte"
msgid "Size: %.1f × %.1f mm"
msgstr "Taille : %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Primitive"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Maillage vide généré"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Boîte"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Rapide :"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Largeur (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Profondeur (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Hauteur (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "R inférieur"
-
-# AI Translated
-msgid "Top R"
-msgstr "R supérieur"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "Grand R"
-
-# AI Translated
-msgid "Minor R"
-msgstr "Petit R"
-
-# AI Translated
-msgid "All edges"
-msgstr "Toutes les arêtes"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Arêtes supérieures"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Arêtes inférieures"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Arêtes latérales"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Résolution du maillage"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Ajouter la forme"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Aucun profil extérieur"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Échec de la création de la face extérieure"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Échec de la création de la face avec trous"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Échec de la révolution"
-
-# AI Translated
-msgid "Profile"
-msgstr "Profil"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Commencer un nouveau profil (pour les trous)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segments"
-
-# AI Translated
-msgid "Sides"
-msgstr "Côtés"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Cliquez dans la vue pour dessiner"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Aimanter à la grille"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Pas de la grille"
-
-# AI Translated
-msgid "Outer"
-msgstr "Extérieur"
-
-# AI Translated
-msgid "closed"
-msgstr "fermé"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2% : %3% points %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (Haut)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (Avant)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (Côté)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Révolution (°)"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "0 pour une extrusion, >0 pour une révolution"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Poche (enlèvement)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu profil fermé"
-msgstr[1] "%zu profils fermés"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Dessinez un profil fermé pour activer"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Tout effacer"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Résultat vide"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Extrusion : %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Révolution : %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Aucun objet sélectionné"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Échec de la face"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Échec de la face avec trous"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Maillage de l’outil vide"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Poche ajoutée (volume négatif)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Poche : %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -26358,6 +28913,10 @@ msgstr "Gizmo assembler"
msgid "Gizmo brim ears"
msgstr "Gizmo bordure à oreilles"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Gizmo de peinture de déplacement de texture"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Barre de défilement verticale - Déplacer le curseur actif vers le Haut"
@@ -26588,6 +29147,12 @@ msgstr "nécessite une face cylindrique aux deux extrémités — le connecteur
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "nécessite une face cylindrique aux deux extrémités — le connecteur %1% est sur une face courbe"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (plan de base manquant)"
+
# AI Translated
msgid "two points are coincident"
msgstr "deux points sont confondus"
@@ -26616,10 +29181,31 @@ msgstr "les plans sont parallèles (aucune intersection)"
msgid "zero-length direction"
msgstr "direction de longueur nulle"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "une fonction agit sur le corps %1%, qui n’existe pas à ce stade de l’historique"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "« %1% » agit sur un corps créé par une fonction supprimée ou masquée"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "« %1% » agit sur un corps qui n’existe pas à ce stade de l’historique"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "la fonction est utilisée par une fonction ultérieure"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "« %1% » utilise « %2% », il ne peut donc pas être placé avant"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "les entités de l’esquisse ne forment pas une boucle fermée"
@@ -26630,9 +29216,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Ouvert en (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "…et %1% autre(s) extrémité(s) ouverte(s)"
+msgid "Open ends not shown: %1%"
+msgstr "Extrémités ouvertes non affichées : %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "révolution : la ligne d’axe ne figure plus dans l’esquisse — sélectionnez à nouveau l’axe"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "révolution : la ligne d’axe n’a pas de longueur"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -26780,6 +29375,30 @@ msgstr "échec du contour du trou"
msgid "hole cut failed"
msgstr "échec de l’enlèvement du trou"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "filetage : le diamètre doit être d’au moins 1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "filetage : le pas doit être supérieur à 0.1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "filetage : la profondeur doit être comprise entre 0 et 0.7 x le pas"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "filetage : la profondeur est trop grande pour ce diamètre"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "filetage : la longueur doit être supérieure à un demi-pas"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "filetage : trop de tours (longueur / pas doit rester inférieur à 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "le filetage intérieur nécessite un corps"
@@ -26840,6 +29459,22 @@ msgstr "échec de la suppression de face"
msgid "delete_face produced no geometry"
msgstr "la suppression de face n’a produit aucune géométrie"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "booléen : aucun corps cible"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "booléen : aucun corps outil — sélectionnez un second corps"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "booléen : la cible et l’outil sont le même corps"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "booléen : un corps n’a pas de géométrie"
+
# AI Translated
msgid "boolean operation failed"
msgstr "échec de l’opération booléenne"
@@ -27167,6 +29802,10 @@ msgstr "Images du modèle"
msgid "Auxiliaries"
msgstr "Auxiliaires"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Tour de purge du tapis"
+
# AI Translated
msgid "Project Filament List"
msgstr "Liste des filaments du projet"
@@ -27201,8 +29840,18 @@ msgstr "Au moins deux filaments du même type de matériau sont nécessaires pou
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "La liste des matériaux prend en charge au maximum %1% couleurs. Après la décomposition %2%, le nombre de matériaux dépasserait %1%. Veuillez supprimer les filaments inutilisés sur l’écran principal avant la décomposition."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "La liste des matériaux prend en charge au maximum %1% couleur. Après la décomposition de la liste des matériaux, le nombre de matériaux dépasserait %1%. Veuillez supprimer les filaments inutilisés sur l’écran principal avant la décomposition."
+msgstr[1] "La liste des matériaux prend en charge au maximum %1% couleurs. Après la décomposition de la liste des matériaux, le nombre de matériaux dépasserait %1%. Veuillez supprimer les filaments inutilisés sur l’écran principal avant la décomposition."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "La liste des matériaux prend en charge au maximum %1% couleur. Après la décomposition %2%, le nombre de matériaux dépasserait %1%. Veuillez supprimer les filaments inutilisés sur l’écran principal avant la décomposition."
+msgstr[1] "La liste des matériaux prend en charge au maximum %1% couleurs. Après la décomposition %2%, le nombre de matériaux dépasserait %1%. Veuillez supprimer les filaments inutilisés sur l’écran principal avant la décomposition."
# AI Translated
msgid "Cyan"
@@ -27232,6 +29881,13 @@ msgstr "Vert"
msgid "Blue"
msgstr "Bleu"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -27239,7 +29895,1235 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "La liste de filaments actuelle ne contient pas %s. Un filament de projet requis par le filament mixte sera créé automatiquement après la décomposition."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "La liste de filaments actuelle ne contient pas %s. Un filament de projet requis par le filament mixte sera créé automatiquement après la décomposition."
+msgstr[1] "La liste de filaments actuelle ne contient pas %s. Les filaments de projet requis par le filament mixte seront créés automatiquement après la décomposition."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Opacité"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -27335,10 +31219,6 @@ msgstr "Mes réglages"
msgid "Custom Printer Setup"
msgstr "Configuration d’une imprimante personnalisée"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Imprimante personnalisée"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Définir un profil d’imprimante personnalisé"
@@ -27606,6 +31486,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Intégrer"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Saisir une valeur exacte dans un curseur"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Icône de modification à l'extrémité droite d'un curseur"
+
# AI Translated
msgid "Texture displacement"
msgstr "Déplacement de texture"
@@ -27742,6 +31630,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Supprimer la texture"
+# AI Translated
+msgid "Adjust image"
+msgstr "Ajuster l’image"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Luminosité"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Contraste"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Netteté"
+
+# AI Translated
+msgid "Blur"
+msgstr "Flou"
+
+# AI Translated
+msgid "Hue"
+msgstr "Teinte"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Fait ressortir les détails les plus fins de l’image. Appliquée après Flou, elle peut être combinée avec lui : atténuez le grain, puis accentuez les contours restants."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Floute l’image elle-même. Le curseur Lissage propre au calque adoucit le relief sans modifier l’image, et c’est celui à utiliser en premier."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Cette texture est en niveaux de gris : elle n’a donc pas de teinte à décaler."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Le modèle se met à jour lorsque vous relâchez un curseur. Enregistrer comme copie écrit l’image ajustée dans votre bibliothèque de textures et y associe ce calque."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Enregistrer comme copie"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Supprimer le calque de déplacement de texture"
@@ -27878,6 +31810,15 @@ msgstr "Écrit chaque étape capturée dans un fichier OBJ, pour pouvoir les ouv
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "La zone peinte n’a pas pu être reportée sur le modèle remaillé, donc rien n’a été modifié. Passez en mode Pro et remaillez avant de peindre."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Plage : %1% à %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Saisissez une valeur au lieu de faire glisser. Ctrl+clic sur le curseur a le même effet."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -27984,8 +31925,8 @@ msgid "Click a triangle to paint it"
msgstr "Cliquez sur un triangle pour le peindre"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Nécessite que le calque actif soit mappé avec Dépliage (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Uniquement pour un calque projeté avec Déplier (LSCM) - réglez le « Mappage » du calque actif sur « Déplier » pour utiliser cette vue."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -28000,16 +31941,16 @@ msgid "Checker"
msgstr "Damier"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Damier - une grille de test à la place de la texture. Là où les carrés restent carrés, la texture n’est pas déformée ; là où ils s’étirent, elle le sera aussi"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Damier - une grille de test à la place de la texture. Là où les carrés restent carrés, la texture n’est pas déformée ; là où ils s’étirent, elle le sera aussi. Ouvre l’éditeur UV s’il est fermé"
# AI Translated
msgid "Distortion"
msgstr "Distorsion"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Distorsion - carte thermique de l’étirement, du bleu au rouge, sur le dépliage"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Distorsion - carte thermique de l’étirement, du bleu au rouge, sur le dépliage. Ouvre l’éditeur UV s’il est fermé"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -28035,6 +31976,10 @@ msgstr "Choisissez une autre image pour ce calque. La peinture, la profondeur et
msgid "not painted"
msgstr "non peint"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Luminosité, contraste, netteté, flou et teinte, visibles sur l’image et sur le modèle au fur et à mesure que vous les réglez. Enregistrer comme copie écrit le résultat dans votre bibliothèque de textures et y associe ce calque."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Monter - appliqué plus tôt"
@@ -28055,10 +32000,20 @@ msgstr "Hauteur du relief : de combien le blanc de la texture soulève la surfac
msgid "Tile size"
msgstr "Taille de tuile"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Mappé selon la disposition UV propre au modèle, qui constitue déjà le placement - une copie de la texture le recouvre exactement, il n’y a donc pas de taille de tuile à définir."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Largeur d’une copie de la texture sur le modèle. Plus elle est petite, plus le motif se répète souvent et plus ses détails sont fins ; avec Mosaïque désactivée, c’est la taille de la copie unique."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Fait pivoter la texture sur la surface, en degrés - pour aligner un motif sur une arête du modèle."
@@ -28126,28 +32081,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Entrelace deux filaments pour simuler les couleurs intermédiaires, afin qu’une poignée de filaments puisse reproduire une photo ou un dégradé. Une image en aplats de couleur s’imprime de la même façon dans les deux cas. Désactivé, un seul filament est utilisé par zone."
# AI Translated
-msgid "Mix by"
-msgstr "Mélanger par"
+msgid "Mixed colors"
+msgstr "Couleurs mixtes"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Surface"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Nombre maximal de filaments mixtes qu'une intégration peut ajouter. Ils sont choisis parmi les couleurs de la texture, et seuls ceux réellement utilisés par l'intégration sont créés."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Couches : les deux filaments alternent entre les couches d’impression, ce qui donne un mélange fluide sur les surfaces verticales mais disparaît sur les surfaces horizontales, où une couche entière forme une seule bande.\n"
-"Surface : un fin damier sur la surface, qui fonctionne sous n’importe quel angle mais peut se lire comme une texture plutôt que comme un mélange.\n"
-"Automatique : couches sur les faces verticales ; les faces horizontales prennent le filament unique le plus proche, car un damier y apparaîtrait comme un motif."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% couleurs imprimables à partir de %2% filaments"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "à partir de %1% filament"
+msgstr[1] "à partir de %1% filaments"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% couleur imprimable %2%"
+msgstr[1] "%1% couleurs imprimables %2%"
# AI Translated
msgid "Denoise"
@@ -28198,6 +32159,18 @@ msgstr "Depuis la vue"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Depuis la vue - projette directement sur la zone peinte depuis votre point de vue, comme un projecteur de diapositives."
+# AI Translated
+msgid "Model UV"
+msgstr "UV du modèle"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "UV du modèle - utilise les coordonnées de texture fournies avec le modèle lui-même, de sorte qu’une texture conçue pour ce modèle se place exactement là où elle a été peinte. Rien n’est déplié, et Taille de tuile ne s’applique pas : la disposition propre au modèle constitue le placement."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Ce modèle ne comporte pas de coordonnées de texture propres. Seul un modèle importé avec un canal UV - un OBJ texturé, par exemple - peut être mappé avec elles."
+
# AI Translated
msgid "Open UV editor"
msgstr "Ouvrir l’éditeur UV"
@@ -28212,8 +32185,10 @@ msgstr "Pas encore déplié"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% îlots"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% îlot"
+msgstr[1] "%1% îlots"
# AI Translated
msgid "Capture current view"
@@ -28243,10 +32218,6 @@ msgstr "Cadre de projection"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Ouvre une fenêtre que vous faites glisser sur le modèle. Tout ce que vous voyez à travers reçoit la texture, et sa bordure devient le bord de la projection."
-# AI Translated
-msgid "Opacity"
-msgstr "Opacité"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Opacité de la fenêtre du cadre pendant que vous la placez. Diminuez-la pour voir le modèle à travers ; cela n’affecte pas le résultat."
@@ -28300,6 +32271,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Ajouter"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Remplacer"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -28319,8 +32295,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Le calque de base n’a rien en dessous avec quoi se combiner, il ajoute donc toujours."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Ce que fait ce calque là où il chevauche ceux du dessous. Ajouter et Soustraire empilent du relief ou le creusent. Multiplier et Diviser mettent à l’échelle ce qui se trouve en dessous, ce qui transforme ce calque en masque sur celui-ci - Profondeur y agit alors comme une intensité, et 1 mm laisse les zones blanches intactes."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Ce que fait ce calque là où il chevauche ceux du dessous. Ajouter et Soustraire empilent du relief ou le creusent. Remplacer substitue ce calque à ceux du dessous, de sorte que seul son relief reste là où il est peint. Multiplier et Diviser mettent à l’échelle ce qui se trouve en dessous, ce qui transforme ce calque en masque sur celui-ci - Profondeur y agit alors comme une intensité, et 1 mm laisse les zones blanches intactes."
# AI Translated
msgid "Adjust placement"
@@ -28344,8 +32320,10 @@ msgstr "Plus de réglages"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Les %1% calques sont utilisés"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Le calque (%1%) est utilisé"
+msgstr[1] "Les %1% calques sont utilisés"
# AI Translated
msgid "Add layer"
@@ -28425,8 +32403,10 @@ msgstr "Budget de triangles : défini avec Triangles, ci-dessous."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Aperçu : %1% triangles"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Aperçu : %1% triangle"
+msgstr[1] "Aperçu : %1% triangles"
# AI Translated
msgid "Steps"
@@ -28468,6 +32448,12 @@ msgstr "Remaillage"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Taille des triangles avec laquelle tout le modèle est reconstruit, en millimètres. Le déplacement fonctionne mieux sur un maillage uniforme ; c’est ce qui en crée un à partir d’une importation irrégulière."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Conserver les arêtes vives"
@@ -28602,14 +32588,6 @@ msgstr "Nécessite environ %1% triangles, budget %2% - l’intégration simplifi
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Nombre de milliers de triangles que l’affinage peut ajouter au modèle. Le triangle le moins bien ajusté est toujours divisé en premier ; même une exécution qui épuise tout le budget l’a donc dépensé là où cela se voit le plus. Augmentez-le si le relief semble encore grossier."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Arrête l’intégration. Ce qui était déjà terminé reste sur le modèle et peut être annulé."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Ferme l’outil sans intégrer. Votre peinture, vos calques et vos réglages restent avec le modèle."
-
# AI Translated
msgid "Preparing..."
msgstr "Préparation..."
@@ -28634,35 +32612,56 @@ msgstr "Transforme les cartes de hauteur peintes en géométrie réelle, en dép
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Transforme les cartes de hauteur peintes en géométrie réelle. Le maillage est d’abord remaillé à une densité uniforme et affiné là où la texture se courbe, afin que le détail ait des sommets sur lesquels se poser - le tout en une seule étape."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Arrête l’intégration. Ce qui était déjà terminé reste sur le modèle et peut être annulé."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Ferme l’outil sans intégrer. Votre peinture, vos calques et vos réglages restent avec le modèle."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Modèle : %1% triangles - l’intégration affine jusqu’à la résolution ci-dessus, dans la limite de son budget"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Modèle : %1% triangle - l’intégration affine jusqu’à la résolution ci-dessus, dans la limite de son budget"
+msgstr[1] "Modèle : %1% triangles - l’intégration affine jusqu’à la résolution ci-dessus, dans la limite de son budget"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "L’intégration déplace les sommets existants - le modèle reste à %1% triangle"
+msgstr[1] "L’intégration déplace les sommets existants - le modèle reste à %1% triangles"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "L’intégration déplace les sommets existants - le modèle reste à %1% triangles"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Résultat de l’intégration jusqu’à ~%1% k triangle"
+msgstr[1] "Résultat de l’intégration jusqu’à ~%1% k triangles"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Résultat de l’intégration jusqu’à ~%1% k triangles"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% calques non peints, ignorés"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% calque non peint, ignoré"
+msgstr[1] "%1% calques non peints, ignorés"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% non peint, ignoré"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% non peint, ignoré"
+msgstr[1] "%1% non peints, ignorés"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -28679,6 +32678,10 @@ msgstr "Modification du déplacement de texture"
msgid "Choose SLA archive:"
msgstr "Choisissez l'archive SLA :"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "Fichiers d’archive SL1 / SL1S"
+
# AI Translated
msgid "Import file"
msgstr "Importer un fichier"
@@ -28843,6 +32846,34 @@ msgstr "Plugins de filament"
msgid "Printer plugins"
msgstr "Plugins d’imprimante"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Ce préréglage n'utilise aucune capacité de plugin"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Capacités utilisées par ce préréglage"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Configuration de la capacité (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Configuration du plugin"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Abandonner le remplacement propre à ce préréglage et réutiliser la configuration globale"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Restaurer les valeurs par défaut"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "JSON non valide"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "La configuration n’est pas un JSON valide. Vos modifications n’ont pas été enregistrées."
@@ -28862,10 +32893,6 @@ msgstr ""
"\n"
"Cela supprime la surcharge du préréglage et utilise la configuration globale."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Restaurer les valeurs par défaut"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Utilisation de la configuration globale. Enregistrez le préréglage pour la conserver."
@@ -28891,10 +32918,6 @@ msgstr "Se désabonner"
msgid "Overwrite Plugin"
msgstr "Écraser le plugin"
-# AI Translated
-msgid "Show in folder"
-msgstr "Afficher dans le dossier"
-
# AI Translated
msgid "Reinstall"
msgstr "Réinstaller"
@@ -28903,6 +32926,10 @@ msgstr "Réinstaller"
msgid "Delete cache and reload"
msgstr "Supprimer le cache et recharger"
+# AI Translated
+msgid "No description."
+msgstr "Aucune description."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Sélectionnez un paquet de plugin .py ou .whl."
@@ -28935,6 +32962,294 @@ msgstr "Installation du plugin"
msgid "Installed \"%s\"."
msgstr "« %s » installé."
+# AI Translated
+msgid "Search plugins"
+msgstr "Rechercher des plugins"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Effacer la recherche"
+
+# AI Translated
+msgid "Match case"
+msgstr "Respecter la casse"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Mot entier uniquement"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Plus d'options d'installation de plugin"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Installer un plugin"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Installer un plugin local"
+
+# AI Translated
+msgid "Activate"
+msgstr "Activer"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Trier par nom"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Trier par version"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Version du plugin"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Trier par source"
+
+# AI Translated
+msgid "Source"
+msgstr "Source"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Trier par état"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "État"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Faites glisser pour redimensionner ; double-cliquez pour réinitialiser"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Redimensionner la liste des plugins"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Détails du plugin"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Infos du plugin"
+
+# AI Translated
+msgid "Description"
+msgstr "Description"
+
+# AI Translated
+msgid "Config"
+msgstr "Configuration"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Journal des modifications"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnostics"
+
+# AI Translated
+msgid "Types"
+msgstr "Types"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Version installée"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Dernière version"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Mettre à jour vers la dernière version"
+
+# AI Translated
+msgid "No description available"
+msgstr "Aucune description disponible"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Sélectionnez un plugin pour configurer ses capacités"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Capacités configurables"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Abandonner les réglages enregistrés pour cette capacité et restaurer les valeurs par défaut du plugin"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Journal des modifications du plugin"
+
+# AI Translated
+msgid "Date"
+msgstr "Date"
+
+# AI Translated
+msgid "Changes"
+msgstr "Modifications"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Aucun journal des modifications disponible"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Aucun problème détecté"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Aucun plugin trouvé"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Aucun plugin ne correspond à « %s »"
+
+# AI Translated
+# Needs human review: Plugin source value in the Plugins dialog list (Mine / Subscribed / Orphaned / Local): a plugin the user published. Check 'Personnel' reads right next to 'Abonnement', 'Orphelin', 'Local'.
+msgid "Mine"
+msgstr "Personnel"
+
+# AI Translated
+# Needs human review: Plugin source label (Subscribed vs Local); check it reads right in the plugin list.
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Abonné"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Orphelin"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Local"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Certaines capacités du plugin sont activées"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Réduire les capacités de %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Développer les capacités de %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Réduire les capacités"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Développer les capacités"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Ouvrir ce plugin dans votre navigateur"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Capacités : %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Capacités"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Exécuter « %s »"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Activer %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Non autorisé pour les mises à jour"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Chargement du plugin…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Ce plugin n'expose aucune capacité"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Activez ce plugin pour configurer ses capacités"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Voir sur OrcaCloud ici "
+
+# AI Translated
+msgid "Activated"
+msgstr "Activé"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Erreur d'exécution"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Inactif"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Ce plugin est actif et prêt à être utilisé."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Ce plugin est encore en cours de chargement."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Ce plugin est bloqué jusqu'à ce que son erreur soit corrigée."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Ce plugin est chargé, mais une capacité a signalé une erreur."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Ce plugin est inactif. Activez-le pour l'installer ou le charger."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Sélectionnez un plugin pour afficher son état et ses détails."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Orphelin : vous n'êtes plus abonné à ce plugin ou il n'est plus disponible sur OrcaCloud. La copie locale reste installée et peut toujours être utilisée."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Une version plus récente du plugin est disponible."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Les mises à jour depuis le cloud ne sont pas disponibles, car ce plugin n'est pas autorisé pour les mises à jour."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -29151,6 +33466,57 @@ msgstr "Échec du rechargement du plugin."
msgid "Reloaded \"%s\"."
msgstr "« %s » rechargé."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Connexion à l'imprimante"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Veuillez configurer la connexion de votre imprimante pour afficher l'appareil."
+
+msgid "No model information"
+msgstr "Pas d'information sur le modèle"
+
+msgid "Edit Project Info"
+msgstr "Modifier les informations du projet"
+
+msgid "Model Information"
+msgstr "Informations sur le modèle"
+
+msgid "Accessories"
+msgstr "Accessoires"
+
+msgid "Profile Information"
+msgstr "Informations de profil"
+
+msgid "Model name"
+msgstr "Nom du modèle"
+
+msgid "Created by"
+msgstr "Créé par"
+
+msgid "Remixed by"
+msgstr "Remixé par"
+
+msgid "Shared by"
+msgstr "Partagé par"
+
+msgid "Model description"
+msgstr "Description du modèle"
+
+# AI Translated
+msgid "BOM"
+msgstr "Nomenclature"
+
+msgid "Profile name"
+msgstr "Nom du profil"
+
+msgid "Profile Author"
+msgstr "Auteur du profil"
+
+msgid "Profile description"
+msgstr "Description du profil"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Réglages du mode de purge"
@@ -29175,6 +33541,19 @@ msgstr "Réduit les déchets d’amorçage et imprime plus vite. Peut provoquer
msgid "Terminal"
msgstr "Terminal"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... ou uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Terminal des plugins prêt."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Le processus s'est terminé avec le code : %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Une commande est déjà en cours d’exécution."
@@ -29221,8 +33600,10 @@ msgstr "Nouveaux filaments mixtes"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Le projet prend en charge jusqu’à %d filaments. Les filaments supplémentaires seront ignorés."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Le projet prend en charge jusqu’à %d filament. Les filaments supplémentaires seront ignorés."
+msgstr[1] "Le projet prend en charge jusqu’à %d filaments. Les filaments supplémentaires seront ignorés."
# AI Translated
msgid "Import Model"
@@ -29309,8 +33690,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Échec du calcul. Veuillez ajuster les paramètres et réessayer."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "Le maillage présente une géométrie non-manifold ou des bords ouverts. Vous pouvez l’importer tel quel ou le réparer avec le service de réparation 3D de Windows avant l’importation."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "Le maillage présente une géométrie non-manifold ou des bords ouverts. Vous pouvez l’importer tel quel ou le réparer avant l’importation."
# AI Translated
msgid "Mesh repair"
@@ -29324,14 +33705,6 @@ msgstr "Importer sans réparer"
msgid "Repair and import"
msgstr "Réparer et importer"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Veuillez noter que le maillage présente une géométrie non-manifold ou des bords ouverts."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Problème de maillage"
-
# AI Translated
msgid "The selected image is empty."
msgstr "L’image sélectionnée est vide."
@@ -29340,6 +33713,14 @@ msgstr "L’image sélectionnée est vide."
msgid "Failed to prepare the texture for use."
msgstr "Échec de la préparation de la texture pour son utilisation."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Impossible de créer le dossier des textures importées."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Échec de l’enregistrement de la texture importée."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Seules les textures que vous avez importées peuvent être supprimées."
@@ -29348,18 +33729,10 @@ msgstr "Seules les textures que vous avez importées peuvent être supprimées."
msgid "Could not delete the texture file."
msgstr "Impossible de supprimer le fichier de texture."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Impossible de créer le dossier des textures importées."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Impossible de charger l’image sélectionnée."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Échec de l’enregistrement de la texture importée."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Impossible de lire le fichier de texture."
@@ -29403,8 +33776,10 @@ msgstr "Choisissez Dépliage comme mappage d’un calque de texture pour modifie
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d sommets sélectionnés | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d sommet sélectionné | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer"
+msgstr[1] "%d sommets sélectionnés | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29412,8 +33787,10 @@ msgstr "Mode sommet : faites glisser un sommet pour remodeler | Maj/Ctrl+clic
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d arêtes sélectionnées | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d arête sélectionnée | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer"
+msgstr[1] "%d arêtes sélectionnées | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29421,8 +33798,10 @@ msgstr "Mode arête : faites glisser une arête d’îlot pour remodeler | Maj
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d îlots sélectionnés | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer, R/S = pivoter/mettre à l’échelle le principal"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d îlot sélectionné | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer, R/S = pivoter/mettre à l’échelle le principal"
+msgstr[1] "%d îlots sélectionnés | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer, R/S = pivoter/mettre à l’échelle le principal"
# AI Translated
#, c-format, boost-format
@@ -29441,6 +33820,10 @@ msgstr " | aimantation ACTIVÉE"
msgid "Change texture - choose another one from the texture library"
msgstr "Changer la texture - en choisir une autre dans la bibliothèque de textures"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Taille de tuile du calque actif : la part du modèle que couvre une répétition de la texture. Le canevas est mesuré en tuiles, donc une case de la grille correspond à une répétition. Modifiez-la avec Taille de tuile dans les réglages du calque."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Carte de hauteur - afficher la texture du calque sous les îlots"
@@ -29474,16 +33857,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Dispose le dépliage en patron connecté : les morceaux qui partagent une arête sont dépliés les uns à côté des autres (un cube devient un patron d’un seul tenant plutôt que six carrés séparés). Ils restent des îlots distincts, vous pouvez donc toujours déplacer chacun d’eux à la main ensuite."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Îlot - déplacer, pivoter et mettre à l’échelle des îlots entiers"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Îlot - travailler sur des îlots entiers. Cliquez sur un îlot pour le sélectionner, puis faites-le glisser pour le déplacer, glissez avec le bouton droit pour le faire pivoter, ou appuyez sur R pour le faire pivoter et sur S pour le mettre à l’échelle avec la souris (clic ou Entrée pour valider, Échap pour annuler)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Sommet - faire glisser des sommets pour remodeler ; Maj/Ctrl pour la multisélection"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Sommet - faites glisser des sommets pour remodeler un îlot à la main ; Maj ajoute à la sélection, Ctrl ajoute ou retire un élément de la sélection."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Arête - faire glisser des arêtes pour remodeler ; Maj/Ctrl pour la multisélection"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Arête - faites glisser des arêtes pour remodeler un îlot à la main ; Maj ajoute à la sélection, Ctrl ajoute ou retire un élément de la sélection."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -29522,8 +33905,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Aimanter - coller les îlots entre eux lorsqu’on en fait glisser un contre un autre"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Cadrer tous les îlots (Début)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Cadrer tous les îlots, en les faisant tous tenir dans la vue (Début ou F).\n"
+"Ailleurs sur le canevas : faites défiler pour zoomer autour du curseur, et glissez avec le bouton central - ou faites glisser un espace vide - pour faire un panoramique."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Ce qui est sélectionné, et les valeurs exactes du déplacement, de la rotation ou de la mise à l’échelle pendant que vous en effectuez un."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -29534,6 +33925,10 @@ msgstr "Aucun calque mappé avec Dépliage"
msgid "%.1f mm tile"
msgstr "tuile de %.1f mm"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Le panneau suit le calque de texture actif, et ce calque doit être projeté avec Déplier (LSCM). Ajoutez un calque et réglez son « Mappage » sur « Déplier »."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Obsolète - la peinture, les coutures ou l’angle de couture ont changé depuis ce dépliage. Appuyez pour déplier à nouveau."
@@ -29542,19 +33937,70 @@ msgstr "Obsolète - la peinture, les coutures ou l’angle de couture ont chang
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Aplatit la zone peinte en îlots UV. Le calcul n’a lieu que lorsque vous appuyez ici, pas à chaque modification - peignez, changez l’angle de couture ou marquez les coutures d’abord, puis appuyez sur Déplier."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Activez d’abord « Marquer les coutures » - « Chemin » est un moyen plus rapide de les marquer."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Aucune couture n’est marquée sur ce calque."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Aucun îlot n’a été remodelé à la main, il n’y a donc rien à annuler."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d îlots, %s faces"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d îlot"
+msgstr[1] "%d îlots"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s face"
+msgstr[1] "%s faces"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Résultat du dépliage de la zone peinte : le nombre de morceaux distincts en lesquels elle a été découpée (aux coutures et aux arêtes plus vives que l’angle de couture), et le nombre total de triangles qu’ils contiennent."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Appuyez d’abord sur « Déplier » - il n’y a encore aucun îlot sur lequel travailler."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Cliquez d’abord sur un îlot dans le canevas, en mode Îlot."
+
+# AI Translated
+# Needs human review: Short badge for a published project; 'PUB' would read as 'advert' in French, so 'PUBL' (4 letters) is used. Check it fits the badge width.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "PUBL"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Non connecté"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Le plug-in Bambu Network n'est pas détecté. Cliquez ici pour l'installer."
+
+msgid "Create new project"
+msgstr "Créer un nouveau projet"
+
+msgid "Recently opened"
+msgstr "Récemment ouvert"
+
+msgid "Open Containing Folder"
+msgstr "Ouvrir le dossier contenant"
# AI Translated
msgid "Forward"
msgstr "Avancer"
-# AI Translated
-msgid "Tools"
-msgstr "Outils"
-
# AI Translated
msgid "View Source"
msgstr "Afficher la source"
@@ -29626,6 +34072,75 @@ msgstr "Charger %1% sur %2%"
msgid "Load %s"
msgstr "Charger %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "L’agent d’imprimante « %1% » n’a pas pu être activé : l’ID d’agent « %2% » est déjà enregistré par la capacité « %3% » du plugin « %4% »."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "L’agent d’imprimante « %1% » n’a pas pu être activé : l’ID d’agent « %2% » est déjà enregistré par « %3% »."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Fichier envoyé"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Envoi du G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Démarrage de l’impression..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Impression démarrée"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Envoi en cours..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Version de la bibliothèque réseau non spécifiée"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Bibliothèque réseau introuvable"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Échec du chargement de la bibliothèque réseau"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "La bibliothèque réseau n’a pas pu être chargée"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Une ancienne série de plug-ins. Les fonctions nécessitant la prise en charge d’un plug-in plus récent, comme les instantanés d’échec d’impression dans la boîte de dialogue d’erreur de l’appareil, ne sont pas disponibles."
+
+# AI Translated
+msgid "unknown name"
+msgstr "nom inconnu"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"Le plugin « %s » demande un accès en lecture au système de fichiers pour :\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Autorisations du plugin"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -29640,37 +34155,61 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
-"Le plugin « %s » demande à lire le ou les fichiers suivants :\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"Le plugin « %s » demande à lire le fichier suivant :\n"
+"%s"
+msgstr[1] ""
+"Le plugin « %s » demande à lire les fichiers suivants :\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
-"Le plugin « %s » demande à lire/écrire le ou les fichiers suivants :\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"Le plugin « %s » demande à lire/écrire le fichier suivant :\n"
+"%s"
+msgstr[1] ""
+"Le plugin « %s » demande à lire/écrire les fichiers suivants :\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
-"Le plugin « %s » demande à créer le ou les fichiers suivants :\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"Le plugin « %s » demande à créer le fichier suivant :\n"
+"%s"
+msgstr[1] ""
+"Le plugin « %s » demande à créer les fichiers suivants :\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
-"Le plugin « %s » demande à supprimer le ou les fichiers suivants :\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"Le plugin « %s » demande à supprimer le fichier suivant :\n"
+"%s"
+msgstr[1] ""
+"Le plugin « %s » demande à supprimer les fichiers suivants :\n"
"%s"
# AI Translated
@@ -29694,10 +34233,30 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"Le plugin « %s » demande à exécuter la commande suivante :\n"
+"%s"
+msgstr[1] ""
+"Le plugin « %s » demande à exécuter les commandes suivantes :\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "Le plugin « %s » demande l'autorisation de créer un thread."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"Le plugin « %s » demande à exécuter la ou les commandes suivantes :\n"
+"Le plugin « %s » demande à remplacer l'application en cours d'exécution par :\n"
"%s"
# AI Translated
@@ -29709,6 +34268,46 @@ msgstr "Le plugin « %s » demande l’autorisation pour l’événement d’aud
msgid "Plugin permission request"
msgstr "Demande d’autorisation d’un plugin"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "Le préréglage stocke un JSON de configuration de capacité de plugin non valide."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "La configuration de capacité de plugin du préréglage n’est pas un tableau et ne peut pas être modifiée."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Connexion à l'imprimante"
+
+# AI Translated
+msgid "Pages"
+msgstr "Pages"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Analyse"
+
+# AI Translated
+msgid "Importer"
+msgstr "Importateur"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Exportateur"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Visualisation"
+
+# AI Translated
+msgid "Script"
+msgstr "Script"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Pipeline de découpage"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "L’interface de configuration du plugin était vide. Affichage de l’éditeur par défaut."
@@ -29731,8 +34330,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "La configuration n’a pas pu être écrite sur le disque. Rien n’a été modifié."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Échec de l’installation du plugin"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Échec de l’installation du plugin : %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1% : le plugin installé est introuvable dans le catalogue."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "La clé du plugin cloud n’a pas d’UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Échec de l’abonnement au plugin cloud, consultez les journaux pour plus d’informations."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Seuls les plugins cloud permettent de se désabonner."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Échec du désabonnement du plugin, consultez les journaux pour plus d’informations."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Échec de la récupération de l’URL de téléchargement du plugin (résultat %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Vous n’êtes pas autorisé à télécharger ce plugin cloud."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Aucun paquet de plugin n’est disponible pour ce système d’exploitation."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "La version de plugin sélectionnée est introuvable."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "La version %1% du plugin est introuvable."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Plugin cloud introuvable."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Téléchargement du plugin cloud introuvable : %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Téléchargement du plugin cloud introuvable."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Aucune URL de téléchargement n’est disponible pour ce plugin. Veuillez consulter les journaux pour identifier les erreurs."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Échec du téléchargement du plugin : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Le téléchargement du plugin a échoué avec le statut HTTP %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Le téléchargement du plugin a renvoyé des données vides."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Échec de la création du fichier temporaire pour le téléchargement du plugin."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Échec de l’écriture des données du plugin dans le fichier temporaire."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Échec de la résolution du dossier du plugin : %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Échec de la suppression du dossier du plugin %1% : %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Le répertoire du plugin n’existe pas : %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "Le répertoire du plugin contient plusieurs fichiers .py : %1% et %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "Le répertoire du plugin contient plusieurs fichiers .whl : %1% et %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "Le répertoire du plugin contient à la fois des fichiers d’entrée .py et .whl"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "Le répertoire du plugin ne contient aucun fichier d’entrée .py ou .whl"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Erreur du plugin de pipeline de découpe « %1% » : %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Le paquet de plugin doit être un fichier .py ou .whl, reçu : %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Échec de l’extraction de la dépendance .whl du plugin %1% : %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Échec de l’ajout de la dépendance .whl à sys.path : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Interpréteur Python non initialisé : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Le manifeste du plugin n’est pas valide : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Échec de l’installation des dépendances du plugin : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Échec du chargement du module du plugin : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Échec de l’enregistrement du plugin : %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Le module du plugin n’a enregistré aucune capacité"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Le plugin déclare une capacité « %1% » en double pour le type %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Échec de la matérialisation de la capacité du plugin : %1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "Échec de la matérialisation de la capacité du plugin"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Échec de on_load du plugin : %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Échec de on_load du plugin"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Le paquet de plugin n’est pas un fichier : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "L’UUID du plugin cloud n’est pas un identifiant valide : %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Échec de la création du répertoire du plugin %1% : %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Échec de la sauvegarde du plugin existant %1% : %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Échec de la copie du fichier du plugin vers %1% : %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Échec de l’écriture de l’état d’installation du plugin : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Le paquet de plugin est déjà chargé : %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Conflit de capacités pour le type %1% et le nom « %2% »"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Clé de plugin en double détectée : %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Le chargement du plugin est toujours en cours"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Le plugin n’est pas valide : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Plugin introuvable : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Échec inattendu du chargement du plugin : %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Échec inattendu du chargement du plugin"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Manifeste du plugin introuvable : %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Échec de la récupération des plugins depuis le cloud. Consultez les journaux pour plus de détails."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Connectez-vous à OrcaCloud pour installer ce plugin."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "Le plugin cloud auquel vous êtes abonné n’a pas été renvoyé par OrcaCloud."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Échec du téléchargement du plugin cloud."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Échec de l’installation du plugin cloud."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Seuls les plugins cloud peuvent être mis à jour."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Aucune mise à jour n’est disponible pour ce plugin."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Refus de supprimer un plugin situé hors des répertoires de plugins connus."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Refus de mettre à jour un plugin situé hors des répertoires de plugins connus."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Impossible de conserver le plugin en local : la clé de plugin locale existe déjà : %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Échec de la mise à jour de l’état d’installation du plugin : %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Impossible de se désabonner de ses propres plugins."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Seuls les plugins cloud peuvent être supprimés et désabonnés."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Impossible de se désabonner de ses propres plugins. Utilisez Supprimer pour retirer les fichiers locaux."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Demande d’autorisation de lecture du système de fichiers par le plugin refusée"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -29766,6 +34701,10 @@ msgstr "échec de la fusion de l’extrusion dans deux directions"
msgid "imported regions produced no extrudable geometry"
msgstr "les régions importées n’ont produit aucune géométrie extrudable"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "le profil coupe l’axe de révolution — il doit se trouver d’un seul côté"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Échec de la révolution"
@@ -29802,6 +34741,10 @@ msgstr "Échec de la face de la poche"
msgid "Pocket cut failed"
msgstr "Échec de l’enlèvement de la poche"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "le profil se croise ou se replie sur lui-même, il ne délimite donc pas une seule région"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "l’esquisse ne comporte aucune boucle fermée"
@@ -29834,10 +34777,26 @@ msgstr "mesh_to_brep : le maillage ne comporte aucun triangle"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep : tous les triangles ont été rejetés comme dégénérés (essayez une tolérance plus faible)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "le rayon du congé doit être supérieur à 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "aucune arête pour le congé dans ce groupe"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "rayon de congé trop grand pour cette géométrie"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "la distance du chanfrein doit être supérieure à 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "aucune arête pour le chanfrein dans ce groupe"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "distance de chanfrein trop grande pour cette géométrie"
@@ -29850,6 +34809,153 @@ msgstr "apply_fillet : échec du congé OCCT"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer : échec du chanfrein OCCT"
+# AI Translated
+msgid "empty component list"
+msgstr "liste de composants vide"
+
+# AI Translated
+msgid "empty component index"
+msgstr "index de composant vide"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "l’index de composant doit être >= 1 (reçu : %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "index de composant « %1% » non valide"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "au moins 2 composants requis (reçu : %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "index de composant %1% en double"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "valeur de proportion vide"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "la proportion doit être positive (reçu : %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "proportion « %1% » non valide"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "le nombre de proportions doit correspondre au nombre de composants : %1% attendu, %2% reçu"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "deux flottants séparés par une virgule attendus, par ex. « 0.10,0.90 »"
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "les proportions de début et de fin doivent être comprises dans (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "la taille du tableau %1% ne correspond pas au nombre d’emplacements de filament %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "doit être défini lorsque des paramètres de filament mixte sont spécifiés"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "emplacement %1% : %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "emplacement %1% : le composant %2% est hors plage (l’index de filament physique maximal est %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "emplacement %1% : impossible de se référencer soi-même comme composant"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "emplacement %1% : le composant %2% référence un emplacement de filament mixte"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "emplacement %1% : le dégradé nécessite exactement 2 composants"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "emplacement %1% : courbe non valide (au moins 2 points de contrôle valides requis)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Échec du chargement du fichier de configuration « %1% » : %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Ce n’est pas un fichier G-code généré par %1%."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Balise de configuration « %1% » introuvable"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Nombre anormalement faible de valeurs de configuration extraites de %1% : %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Échec du chargement du fichier STEP.\n"
+"Impossible d’ouvrir le fichier en lecture.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "échec de l’import SVG : impossible d’ouvrir le SVG."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "échec de l’import SVG : impossible d’analyser les données SVG importées."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Le G-code personnalisé signale un z_retracted négatif."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Le G-code personnalisé signale un z_restart_extra négatif."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Échec de la copie du répertoire %1% vers %2% : %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Authentification terminée"
@@ -30295,6 +35401,1084 @@ msgstr ""
"Éviter la déformation\n"
"Saviez-vous que lors de l’impression de matériaux susceptibles de se déformer, tels que l’ABS, une augmentation appropriée de la température du plateau chauffant peut réduire la probabilité de déformation?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Veuillez choisir la couleur du filament"
+
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "La largeur de ligne des ponts s’exprime soit en valeur absolue, soit en pourcentage du diamètre de la buse active (les pourcentages sont calculés à partir du diamètre de la buse).\n"
+#~ "Recommandé avec une densité de pont ou un rapport de débit de pont plus élevés.\n"
+#~ "\n"
+#~ "La valeur maximale est 100 % ou le diamètre de la buse.\n"
+#~ "Si réglée à 0, la largeur de ligne correspond à celle du remplissage plein interne."
+
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Activez cette option pour ralentir l’impression dans les zones où les périmètres risquent de s’être recourbés vers le haut.\n"
+#~ "Par exemple, un ralentissement supplémentaire est appliqué lors de l’impression de surplombs sur des angles vifs, comme l’avant de la coque du Benchy, réduisant le tuilage qui s’amplifie au fil des couches.\n"
+#~ "\n"
+#~ "Il est généralement recommandé de laisser cette option activée, sauf si le refroidissement de votre imprimante est assez puissant ou la vitesse d’impression assez lente pour que les périmètres ne se recourbent pas. \n"
+#~ "En cas d’impression avec une vitesse de périmètre externe élevée, ce paramètre peut introduire des artéfacts sur les parois lors du ralentissement, en raison de la variation potentiellement importante des vitesses d’impression empêchant l’extrudeur de suivre le changement de débit demandé.\n"
+#~ "La cause profonde de ces artéfacts est très probablement un réglage du PA légèrement décalé, surtout combiné à un temps de lissage du PA élevé.\n"
+#~ "\n"
+#~ "Recommandations lorsque cette option est activée :\n"
+#~ "1. Réduisez le temps de lissage du Pressure Advance à 0,015 – 0,02 pour que l’extrudeur réagisse rapidement aux changements de vitesse.\n"
+#~ "2. Augmentez les vitesses d’impression minimales pour limiter l’ampleur du ralentissement et réduire l’écart entre segments rapides et lents.\n"
+#~ "3. Si des artéfacts persistent, activez le lissage du débit d’extrusion (ERS) pour adoucir davantage les transitions de débit.\n"
+#~ "\n"
+#~ "Remarque : lorsque cette option est activée, les périmètres en surplomb sont traités comme des surplombs : la vitesse de surplomb s’applique même si le périmètre en surplomb fait partie d’un pont.\n"
+#~ "Par exemple, lorsque les périmètres sont à 100 % en surplomb, sans paroi pour les soutenir par en dessous, la vitesse de surplomb à 100 % est appliquée."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Vitesse des extrusions de pont visible de l’extérieur.\n"
+#~ "\n"
+#~ "En outre, si la fonction Ralentir pour les périmètres courbés est désactivée ou si le mode Surplomb classique est activé, il s’agira de la vitesse d’impression des parois en surplomb dont l’appui est inférieur à 13 %, qu’elles fassent partie d’un pont ou d’un surplomb."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Ce paramètre séparé affectera la vitesse des périmètres ayant un rayon <= petite longueur de périmètre (généralement des trous). S’il est exprimé en pourcentage (par exemple : 80%), il sera calculé sur la vitesse de la paroi extérieure ci-dessus. Mettre à zéro pour automatique."
+
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Comme « Petits périmètres », mais pour les supports. Ce réglage distinct affecte la vitesse des supports pour les zones <= `small_support_perimeter_threshold`. S’il est exprimé en pourcentage (par exemple : 80 %), il est calculé à partir du réglage de vitesse des supports ou de l’interface de support ci-dessus. Réglez sur zéro pour automatique."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Séquence d'impression des parois internes (intérieures) et externes (extérieures).\n"
+#~ "\n"
+#~ "Utilisez Intérieur/Extérieur pour obtenir les meilleurs surplombs. En effet, les parois en surplomb peuvent adhérer à un périmètre voisin lors de l'impression. Toutefois, cette option entraîne une légère diminution de la qualité de la surface, car le périmètre externe est déformé par l'écrasement du périmètre interne.\n"
+#~ "\n"
+#~ "Utilisez l’option Intérieur/Extérieur/Intérieur pour obtenir la meilleure finition de surface externe et la meilleure précision dimensionnelle, car la paroi externe est imprimée sans être dérangée par un périmètre interne. Cependant, les performances de la paroi en surplomb seront réduites car il n’y a pas de périmètre interne contre lequel imprimer la paroi externe. Cette option nécessite un minimum de trois parois pour être efficace, car elle imprime d’abord les parois internes à partir du troisième périmètre, puis le périmètre externe et, enfin, le premier périmètre interne. Cette option est recommandée par rapport à l’option Extérieur/intérieur dans la plupart des cas.\n"
+#~ "\n"
+#~ "Utilisez l’option Extérieur/intérieur pour bénéficier de la même qualité de paroi externe et de la même précision dimensionnelle que l’option Intérieur/extérieur/intérieur. Cependant, les joints en z paraîtront moins cohérents car la première extrusion d’une nouvelle couche commence sur une surface visible."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Vitesse de la couche initiale à l'exception du remplissage"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Vitesse du remplissage à la couche initiale"
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "La zone de remplissage est légèrement élargie pour chevaucher la paroi afin d’améliorer l’adhérence. La valeur du pourcentage est relative à la largeur de la ligne de remplissage. Réglez cette valeur à ~10-15% pour minimiser le risque de sur-extrusion et d’accumulation de matériau, ce qui rendrait les surfaces supérieures rugueuses."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "La zone de remplissage solide supérieure est légèrement élargie pour chevaucher la paroi afin d’améliorer l’adhérence et de minimiser l’apparition de trous d’épingle à l’endroit où le remplissage supérieur rencontre les parois. Une valeur de 25-30% est un bon point de départ, minimisant l’apparition de trous d’épingle. La valeur en pourcentage est relative à la largeur de ligne du remplissage"
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Profondeur d’imbrication d’une région segmentée. Elle sera ignorée si « mmu_segmented_region_max_width » est égal à zéro ou si « mmu_segmented_region_interlocking_depth » est supérieur à « mmu_segmented_region_max_width ». La valeur zéro désactive cette fonctionnalité."
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Réduit la hauteur des périmètres de la surface supérieure pour qu’elle corresponde à la hauteur du bord du modèle.\n"
+#~ "Affecte les périmètres dont la pente est inférieure à cet angle (en degrés).\n"
+#~ "Une valeur raisonnable est 35. Réglez sur 0 pour désactiver."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Vitesse d’essuyage en fonction de la vitesse d’extrusion"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Un paravent est utile pour protéger une impression ABS ou ASA contre la déformation et le détachement du plateau d’impression en raison des courants d’air. Il n’est généralement nécessaire que pour les imprimantes à structure ouverte, c’est-à-dire sans boîtier.\n"
+#~ "\n"
+#~ "Activé = la hauteur de la jupe est égale à celle de l’objet imprimé le plus haut. Sinon, c’est la « hauteur de la jupe » qui est utilisée.\n"
+#~ "Remarque : lorsque le paravent est actif, la jupe est imprimée à la distance de la jupe par rapport à l’objet. Par conséquent, si des bordures sont actives, elle peut les croiser. Pour éviter cela, augmentez la valeur de la distance de la jupe.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Vitesse d’impression maximale lors de la purge dans la tour d’essuyage et de l’impression des couches éparses de la tour d’essuyage. Lors de la purge, si la vitesse de remplissage ou la vitesse calculée à partir de la vitesse volumétrique maximale du filament est inférieure, c’est la plus faible qui sera utilisée.\n"
+#~ "\n"
+#~ "Lors de l’impression des couches éparses, si la vitesse du périmètre interne ou la vitesse calculée à partir de la vitesse volumétrique maximale du filament est inférieure, c’est la plus faible qui sera utilisée.\n"
+#~ "\n"
+#~ "L’augmentation de cette vitesse peut affecter la stabilité de la tour et accroître la force avec laquelle la buse heurte les éventuels amas qui se sont formés sur la tour d’essuyage.\n"
+#~ "\n"
+#~ "Avant d’augmenter ce paramètre au-delà de la valeur par défaut de 90 mm/s, assurez-vous que votre imprimante peut réaliser des ponts de façon fiable à des vitesses plus élevées et que le suintement lors des changements d’outil est bien maîtrisé.\n"
+#~ "\n"
+#~ "Pour les périmètres externes de la tour d’essuyage, c’est la vitesse du périmètre interne qui est utilisée, indépendamment de ce paramètre."
+
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Type de paroi extérieure de la tour de purge.\n"
+#~ "1. Rectangle : Le type de paroi par défaut, un rectangle avec une largeur et une hauteur fixes.\n"
+#~ "2. Cône : Un cône avec un congé en bas pour aider à stabiliser la tour de purge.\n"
+#~ "3. Nervure : Ajoute quatre nervures à la paroi de la tour pour une stabilité améliorée."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Débit supplémentaire utilisé pour les lignes de purge de la tour d’essuyage. Cela rend les lignes de purge plus épaisses ou plus étroites qu’elles ne le seraient normalement. L’espacement est ajusté automatiquement."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Ajustez cette valeur pour éviter que des parois courtes et non fermées soient imprimées, ce qui pourrait augmenter le temps d’impression. Des valeurs plus élevées suppriment des parois plus nombreuses et plus longues.\n"
+#~ "\n"
+#~ "REMARQUE : les surfaces inférieures et supérieures ne sont pas affectées par cette valeur afin d’éviter les lacunes visuelles sur le côté du modèle. Réglez le « seuil d’une paroi » dans les paramètres avancés ci-dessous pour ajuster la sensibilité de ce qui est considéré comme une surface supérieure. Le « seuil d’une paroi » n’est visible que si ce paramètre est supérieur à la valeur par défaut de 0,5 ou si l’option « surfaces supérieures à une paroi » est activée."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Diviser en %1% pièce"
+#~ msgstr[1] "Diviser en %1% pièces"
+
+#~ msgid "Repair failed"
+#~ msgstr "Échec de la réparation"
+
+#~ msgid "Repair canceled"
+#~ msgstr "Réparation annulée"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Ce que fait ce calque là où il chevauche ceux du dessous. Ajouter et Soustraire empilent du relief ou le creusent. Multiplier et Diviser mettent à l’échelle ce qui se trouve en dessous, ce qui transforme ce calque en masque sur celui-ci - Profondeur y agit alors comme une intensité, et 1 mm laisse les zones blanches intactes."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "Le maillage présente une géométrie non-manifold ou des bords ouverts. Vous pouvez l’importer tel quel ou le réparer avec le service de réparation 3D de Windows avant l’importation."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Veuillez noter que le maillage présente une géométrie non-manifold ou des bords ouverts."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Problème de maillage"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Échec de la réparation : le maillage est encore ouvert après le comblement des trous."
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Impossible d’appliquer une opération logique à des opérandes non booléens."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Lecture en cours"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Le nombre de filaments dépasse le nombre maximum pris en charge par l'outil de peinture. Seuls les %1% premiers filaments seront disponibles dans l'outil de peinture."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Raccourci "
+
+#~ msgid "Build Volume"
+#~ msgstr "Volume d’impression"
+
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Les objets (%1%) ont des connecteurs dupliqués. Certains connecteurs risquent d’être absents du résultat du découpage.\n"
+#~ "Veuillez signaler à l’équipe OrcaSlicer dans quel scénario ce problème est survenu.\n"
+#~ "Merci."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d triangles"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Déplacement)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Fixé)"
+
+#~ msgid "Filament "
+#~ msgstr "Filament "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "hotend"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Agencement "
+
+#~ msgid "Orienting"
+#~ msgstr "Orienter"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Veuillez mettre à 0 les axes (cliquer "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") pour localiser la position de la tête. Cela évite de dépasser la limite imprimable et de provoquer une usure de l'équipement."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Augmentation de %1%g de filament et %2% changements par rapport au regroupement optimal."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Augmentation de %1%g de filament et économie de %2% changements par rapport au regroupement optimal."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Économie de %1%g de filament et augmentation de %2% changements par rapport au regroupement optimal."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Économie de %1%g de filament et %2% changements par rapport à une imprimante à une seule buse."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Économie de %1%g de filament et augmentation de %2% changements par rapport à une imprimante à une seule buse."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Augmentation de %1%g de filament et économie de %2% changements par rapport à une imprimante à une seule buse."
+
+#~ msgid "number keys"
+#~ msgstr "touches numériques"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Les filaments %s sont placés dans le/la %s, mais le chemin G-code généré dépasse la zone d'impression du/de la %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Les filaments %s sont placés dans le/la %s, mais le chemin G-code généré dépasse la hauteur d'impression du/de la %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Les filaments %s ne peuvent pas être imprimés directement sur la surface de cette plaque."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "sera fermé avant de créer un nouveau modèle. Voulez-vous continuer ?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "Dans la file d’attente Cloud Slicing, il reste %s tâches en attente."
+
+#~ msgid " upload failed"
+#~ msgstr " échec de l’envoi"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " échec de l’analyse de la configuration de l’envoi\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Aucun compartiment de stockage correspondant\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " ne peut pas être ouvert\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Le résultat de votre commentaire ne peut pas être téléchargé pour certaines raisons :\n"
+#~ "\n"
+#~ " code d’erreur : "
+
+#~ msgid "error message: "
+#~ msgstr "message d’erreur : "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Souhaitez-vous être redirigé vers la page Web pour l’évaluation ?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (préréglage de traitement : %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "La buse %s ne peut pas imprimer %s."
+
+#~ msgid " nozzle"
+#~ msgstr " buse"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Il n'est pas recommandé d'imprimer le(s) filament(s) suivant(s) avec %1% : %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " plaque %1% :"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Supprimer les %1% filaments mixtes ?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Voulez-vous le remplacer"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Conflit de température du plateau : T%d (%s) règle le plateau à %d°C — T%d (%s) nécessite %d°C. L'outil principal contrôle le plateau ; les outils secondaires impriment à la température qu'il définit."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Aucune accélération n’est fournie pour l’étalonnage. Utiliser la valeur d’accélération par défaut "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Aucune vitesse n’est fournie pour l’étalonnage. Utiliser la vitesse optimale par défaut "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Aucune tour de température pour tapis n'est disponible pour la plage de %1% à %2% °C. Utilisez une plage couverte par les modèles de tour, par exemple de 230 à 190."
+
+#~ msgid "The selected file"
+#~ msgstr "Le fichier sélectionné"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "ne contient pas de G-code valide."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "avec OrcaSlicer afin qu’Orca puisse ouvrir des modèles à partir de"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Coût de %dg de filament et %d changements de plus que le regroupement optimal."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Les paramètres affichant cette icône peuvent être configurés par buse."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Mots clés réservés trouvés"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "Le préréglage de filament %d et le préréglage de processus %d sont associés à cette imprimante. Ces préréglages seront supprimés si l’imprimante est supprimée."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Les préréglages suivants héritent de ce préréglage."
+#~ msgstr[1] "Le préréglage suivant hérite de ce préréglage."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% Préréglage"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Voulez-vous vraiment %1% le préréglage sélectionné ?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Diviser en %1% parties"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Téléchargement des nouveaux profils de fabricant : "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Échec du téléchargement des profils de fabricant : "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Dans ce mode Span, seuls les outils %1% impriment les couleurs, mais le filament %2% n'est acheminé vers aucun outil. Utilisez des filaments acheminés vers %1%, ou passez cette plaque en mode Principal (Primary)."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Dans ce mode Span, seuls les outils %1% impriment les couleurs, mais le filament %2% est acheminé vers T%3%. Utilisez des filaments acheminés vers %1%, ou passez cette plaque en mode Principal (Primary)."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " est trop proche d'une zone d'exclusion, il peut y avoir des collisions lors de l'impression."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " est trop proche de la zone de détection d'agglomération, il peut y avoir des collisions lors de l'impression."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Tour d’amorçage"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " est trop proche des autres. Des collisions risquent d'être provoquées.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " est trop proche d'une zone d'exclusion. Cela va entraîner des collisions.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " est trop proche de la zone de détection d'agglomération, et des collisions seront causées.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " est partiellement en dehors de la zone imprimable et ne peut pas être imprimé.\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "aucun outil configuré"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "G-code de fin lorsque vous avez terminé toute l'impression"
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Vitesse en X maximale"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Vitesse en Y maximale"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Vitesse en Z maximale"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Vitesse en E maximale"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Plugin(s) Python invoqué(s) à chaque étape du pipeline de découpe pour lire et modifier les données de découpe intermédiaires, y compris une étape finale de post-traitement du G-code. Recherche/expérimental."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Si activé, le logiciel de découpe génère un G-code dont le contenu de la zone principale est centré sur l'origine du plateau (0,0). Le firmware de l'imprimante se charge de placer les copies et les images miroir à la position physique de chaque zone. N'activez cette option que sur les imprimantes dont le firmware applique ses propres décalages de zone en mode copie/miroir (par ex. le mode duplication IDEX de RepRapFirmware). Sans effet en mode Principal (Primary)."
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Remplacement, par plaque, de la correspondance entre têtes physiques et emplacements de filament (numérotés à partir de 1). Vide signifie utiliser les valeurs par défaut obtenues par inversion de la table pem."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Axe autour duquel le maillage pivote avant le découpage. Il s'agit de l'inclinaison de l'imprimante à tapis : une rotation isométrique (sans distorsion) qui détermine aussi le rendu du plateau et l'inclinaison de la gravité pour les supports, et que la transformation inverse du G-code annule avant le cisaillement/la mise à l'échelle et le remappage dans le repère machine. X correspond à l'inclinaison habituelle du portique (le tapis avance le long de Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Réglage expert : définit l'angle d'inclinaison du repère machine (cisaillement/mise à l'échelle du G-code) indépendamment de l'angle de rotation avant découpage. Si désactivé, la transformation du repère machine est dérivée de l'angle d'inclinaison du tapis, de sorte qu'un seul angle pilote les deux étapes. N'activez cette option que pour compenser une machine dont l'inclinaison physique du portique diffère de la rotation de découpage."
+
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "Écart maximal autorisé lors de la réduction de la résolution pour le paramètre « Résolution maximale des parois ». Si vous l’augmentez, l’impression sera moins exacte, mais le G-code sera plus petit. « Écart maximal des parois » limite « Résolution maximale des parois » ; en cas de conflit entre les deux, « Écart maximal des parois » est prioritaire."
+
+#~ msgid " not in range "
+#~ msgstr " hors plage "
+
+#~ msgid "floating regions"
+#~ msgstr "régions flottantes"
+
+#~ msgid "floating cantilever"
+#~ msgstr "surplomb flottant"
+
+#~ msgid "large overhangs"
+#~ msgstr "grands surplombs"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Il semble que l'objet %s possède %s. Veuillez réorienter l'objet ou activer la génération de support."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Aucune couche n'a été détectée. Vous pouvez réparer vos STL, vérifier leur taille ou leur épaisseur et réessayer.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Ce type de machine ne peut contenir que %d résultats historiques par buse. Ce résultat ne sera pas enregistré."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Ce type de machine ne peut contenir que %d résultats historiques par buse."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Surplomb"
+
+#~ msgid "Start / End"
+#~ msgstr "Début / Fin"
+
+#~ msgid "Damp"
+#~ msgstr "Amortissement"
+
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "%d emplacements IFS détectés sur l’imprimante."
+
+#~ msgid "selected"
+#~ msgstr "sélectionné"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Les préréglages suivants héritent de ce préréglage."
+#~ msgstr[1] "Le préréglage suivant hérite de ce préréglage."
+
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "%zu imprimante(s) Creality trouvée(s). Sélectionnez-en une et cliquez sur Utiliser la sélection."
+
+#~ msgid "log(s)"
+#~ msgstr "journal(aux)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Erreur : l'extrudeur %s n'a aucune buse %s disponible, le résultat de regroupement actuel est invalide."
+
+#~ msgid "invalid brim ears"
+#~ msgstr "bordures à oreilles non valides"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Ignorer %d objet(s)."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Ouvrir le dossier dans l'explorateur"
+
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Cliquez sur le centre puis sur un sommet — %d côtés, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "circonscrit"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "inscrit"
+
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Esquisse créée (%zu cotes pilotantes) — sélectionnez-la, puis clic droit pour Extruder"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — %zu triangles"
+
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Ce maillage compte %d triangles. Chaque triangle devient une face B-rep avant la fusion des faces coplanaires ; l'import peut donc être très long et produire un corps lent à modifier. Il vaut généralement mieux décimer d'abord le maillage.\n"
+#~ "\n"
+#~ "Importer quand même ?"
+
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Solide importé — %d triangles → %d faces, volume %.2f mm³. Choisissez une face ou une arête, puis Congé / Coupe / Coque pour modifier"
+
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — faites glisser pour placer/dimensionner, puis Confirmer"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d entités d’esquisse"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — saisissez une valeur, appuyez sur Entrée (ou Confirmer)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Aperçu — %zu triangles"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "Contraintes ignorées, car elles ne peuvent pas agir sur cette géométrie (une ellipse ou une courbe spline, ou un cercle de taille nulle) : %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "Contraintes invalidées par le congé/chanfrein et supprimées : %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "Contraintes libérées par la transformation : %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "…et %1% autre(s) extrémité(s) ouverte(s)"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "La liste des matériaux prend en charge au maximum %1% couleurs. Après la décomposition %2%, le nombre de matériaux dépasserait %1%. Veuillez supprimer les filaments inutilisés sur l’écran principal avant la décomposition."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% couleurs imprimables à partir de %2% filaments"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% îlots"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Les %1% calques sont utilisés"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Aperçu : %1% triangles"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Modèle : %1% triangles - l’intégration affine jusqu’à la résolution ci-dessus, dans la limite de son budget"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "L’intégration déplace les sommets existants - le modèle reste à %1% triangles"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Résultat de l’intégration jusqu’à ~%1% k triangles"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% calques non peints, ignorés"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Le projet prend en charge jusqu’à %d filaments. Les filaments supplémentaires seront ignorés."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d sommets sélectionnés | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d arêtes sélectionnées | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d îlots sélectionnés | glisser = déplacer ensemble, Maj/Ctrl+clic = ajouter/retirer, R/S = pivoter/mettre à l’échelle le principal"
+
+# AI Translated
+# Needs human review: UV editor tooltip: the English names a 'Tiling' setting that does not exist; the layer settings show 'Tile' (Mosaïque) and 'Tile size' (Taille de tuile). Check the last sentence once the source names the right label.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Taille de tuile du calque actif : la part du modèle que couvre une répétition de la texture. Le canevas est mesuré en tuiles, donc une case de la grille correspond à une répétition. Modifiez-la avec les réglages de mosaïque du calque."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d îlots, %s faces"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Le plugin « %s » demande à lire le ou les fichiers suivants :\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Le plugin « %s » demande à lire/écrire le ou les fichiers suivants :\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Le plugin « %s » demande à créer le ou les fichiers suivants :\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Le plugin « %s » demande à supprimer le ou les fichiers suivants :\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Le plugin « %s » demande à exécuter la ou les commandes suivantes :\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Échec de l’installation du plugin"
+
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Le runtime Microsoft WebView2 n’a pas pu être installé.\n"
+#~ "Certaines fonctionnalités, dont l’assistant de configuration, peuvent apparaître vides tant qu’il n’est pas installé.\n"
+#~ "Veuillez l’installer manuellement depuis https://developer.microsoft.com/microsoft-edge/webview2/ et redémarrer Orca Slicer."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Pourquoi ce regroupement"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "Le logiciel ne prend pas en charge l'utilisation de buses de diamètres différents pour une même impression. Si les buses gauche et droite sont différentes, nous ne pouvons procéder qu'avec une impression à tête unique. Veuillez confirmer quelle buse vous souhaitez utiliser pour ce projet."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Changer le diamètre"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "Projet BambuStudio"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "Le fichier 3MF a été créé par BambuStudio (version %s), plus récente que la version compatible %s. Paramètres non reconnus détectés :"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "Le fichier 3MF a été créé par BambuStudio (version %s), plus récente que la version compatible %s. Certains paramètres peuvent ne pas être totalement compatibles."
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "Le fichier 3MF a été créé par BambuStudio. Certains paramètres peuvent différer de ceux d’OrcaSlicer."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Impossible d’annuler ou de rétablir pendant qu’une opération est en cours. Arrêtez-la d’abord."
+
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s : %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Centre le remplissage interne de chaque pièce sur elle-même, comme si elle était découpée seule, au lieu de sur l'ensemble de l'assemblage. Les pièces qui se touchent ou se chevauchent sont traitées comme un seul corps et partagent un centre ; les pièces séparées (ou des objets 3D distincts) en obtiennent chacune un.\n"
+#~ "Utile lorsqu'un assemblage regroupe plusieurs objets qui devraient chacun conserver un remplissage cohérent et centré sur lui-même.\n"
+#~ "Affecte les motifs en lignes et en grille et les remplissages à modèle de rotation.\n"
+#~ "Les motifs verrouillés sur les coordonnées globales (Gyroïde, Nid d'abeille, TPMS, ...) ne sont pas affectés."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Indice de la couche actuelle. Base unitaire (c’est-à-dire que la première couche porte le numéro 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Tutoriel vidéo"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Primitive"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Maillage vide généré"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Boîte"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Rapide :"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Largeur (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Profondeur (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Hauteur (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "R inférieur"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "R supérieur"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "Grand R"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "Petit R"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Toutes les arêtes"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Arêtes supérieures"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Arêtes inférieures"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Arêtes latérales"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Résolution du maillage"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Ajouter la forme"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Aucun profil extérieur"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Échec de la création de la face extérieure"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Échec de la création de la face avec trous"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Échec de la révolution"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Profil"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Commencer un nouveau profil (pour les trous)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segments"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Côtés"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Cliquez dans la vue pour dessiner"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Aimanter à la grille"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Pas de la grille"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Extérieur"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "fermé"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2% : %3% points %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (Haut)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (Avant)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (Côté)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Révolution (°)"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "0 pour une extrusion, >0 pour une révolution"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Poche (enlèvement)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu profil fermé"
+#~ msgstr[1] "%zu profils fermés"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Dessinez un profil fermé pour activer"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Résultat vide"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Extrusion : %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Révolution : %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Aucun objet sélectionné"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Échec de la face"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Échec de la face avec trous"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Maillage de l’outil vide"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Poche ajoutée (volume négatif)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Poche : %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Nécessite que le calque actif soit mappé avec Dépliage (LSCM)."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Damier - une grille de test à la place de la texture. Là où les carrés restent carrés, la texture n’est pas déformée ; là où ils s’étirent, elle le sera aussi"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Distorsion - carte thermique de l’étirement, du bleu au rouge, sur le dépliage"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Mélanger par"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Surface"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Couches : les deux filaments alternent entre les couches d’impression, ce qui donne un mélange fluide sur les surfaces verticales mais disparaît sur les surfaces horizontales, où une couche entière forme une seule bande.\n"
+#~ "Surface : un fin damier sur la surface, qui fonctionne sous n’importe quel angle mais peut se lire comme une texture plutôt que comme un mélange.\n"
+#~ "Automatique : couches sur les faces verticales ; les faces horizontales prennent le filament unique le plus proche, car un damier y apparaîtrait comme un motif."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Îlot - déplacer, pivoter et mettre à l’échelle des îlots entiers"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Sommet - faire glisser des sommets pour remodeler ; Maj/Ctrl pour la multisélection"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Arête - faire glisser des arêtes pour remodeler ; Maj/Ctrl pour la multisélection"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Cadrer tous les îlots (Début)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Expérimental) Utiliser les agents d’imprimante au lieu des hôtes d’impression"
@@ -30324,16 +36508,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Cliquez sur une face ou un plan de référence, puis choisissez un outil de dessin"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -30388,10 +36562,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Distance verticale"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Linéaire"
-
#~ msgid "Face recognition"
#~ msgstr "Reconnaissance faciale"
@@ -31806,9 +37976,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Échec du calcul de la largeur de ligne de %1%. Impossible d'obtenir la valeur de \"%2%\" "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Espacement non valide fourni à Flow::with_spacing(), vérifiez la hauteur de votre couche et la largeur d’extrusion"
-
#~ msgid "Renders cast shadows on the plate in realistic view."
#~ msgstr "Affiche les ombres portées sur la plaque dans la vue réaliste."
@@ -32061,9 +38228,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "sélection de pièce"
-#~ msgid "°"
-#~ msgstr "°"
-
#, c-format, boost-format
#~ msgid ""
#~ "Failed to connect to OrcaCloud.\n"
diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po
index 951fa2edd1..612504a77b 100644
--- a/localization/i18n/hu/OrcaSlicer_hu.po
+++ b/localization/i18n/hu/OrcaSlicer_hu.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -390,8 +390,10 @@ msgid "Please wait"
msgstr "Kérlek, várj"
# AI Translated
-msgid "Reading"
-msgstr "Beolvasás"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Indukciós fejegységtartó: beolvasás %d/%d"
msgid "Running..."
msgstr "Futtatás..."
@@ -546,9 +548,12 @@ msgstr "Gizmo – felület asztalra illesztése"
msgid "Lay on Face"
msgstr "Felületre fektetés"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "A filamentek száma meghaladja a festés által támogatott maximális mennyiséget. Csak az első %1% filament lesz használható a festéshez."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "A filamentek száma meghaladja a festés által támogatott maximális mennyiséget. Csak az első %1% filament lesz használható a festéshez."
+msgstr[1] "A filamentek száma meghaladja a festés által támogatott maximális mennyiséget. Csak az első %1% filament lesz használható a festéshez."
msgid "Color Painting"
msgstr "Színfestés"
@@ -600,8 +605,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Gyorsgomb "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Gyorsgomb %d"
msgid "Triangle"
msgstr "Háromszög"
@@ -700,6 +707,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Alkatrész kijelölés"
+msgid "Select multiple objects"
+msgstr "Több objektum kijelölése"
+
msgid "Fixed step drag"
msgstr "Rögzített lépésközű húzás"
@@ -763,10 +773,80 @@ msgstr "Tárgy"
msgid "Relative"
msgstr "Relatív"
+msgid "Selection"
+msgstr "Kijelölés"
+
+msgid "Plate"
+msgstr "Tálca"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "A transzformációs műveletekhez használt koordináta-rendszer."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Igazítás balra"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Igazítás középre bal-jobb irányban"
+
+# AI Translated
+msgid "Align right"
+msgstr "Igazítás jobbra"
+
+# AI Translated
+# Needs human review: Object menu item that aligns the objects' front edges (-Y on the plate); check that 'előre' is not read as 'in advance'.
+msgid "Align front"
+msgstr "Igazítás előre"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Igazítás középre előre-hátra irányban"
+
+# AI Translated
+msgid "Align back"
+msgstr "Igazítás hátra"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Igazítás alulra"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Igazítás középre fel-le irányban"
+
+# AI Translated
+msgid "Align top"
+msgstr "Igazítás felülre"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Elosztás bal-jobb irányban"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Elosztás előre-hátra irányban"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Elosztás fel-le irányban"
+
+msgid "Drop"
+msgstr "Lehelyezés"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "Abszolút"
@@ -870,9 +950,6 @@ msgstr "Horonyszög"
msgid "Cut position"
msgstr "Vágási pozíció"
-msgid "Build Volume"
-msgstr "Nyomtatási térfogat"
-
msgid "Multiple"
msgstr "Többszörös"
@@ -1046,11 +1123,19 @@ msgstr "Csatlakozó"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
-"A(z) (%1%) objektumoknak duplikált csatlakozóik vannak. Egyes csatlakozók hiányozhatnak a szeletelés eredményéből.\n"
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"Az objektum (%1%) duplikált csatlakozókat tartalmaz. Egyes csatlakozók hiányozhatnak a szeletelés eredményéből.\n"
+"Kérlek, jelezd az OrcaSlicer csapatának, milyen helyzetben fordult elő ez a hiba.\n"
+"Köszönjük."
+msgstr[1] ""
+"Az objektumok (%1%) duplikált csatlakozókat tartalmaznak. Egyes csatlakozók hiányozhatnak a szeletelés eredményéből.\n"
"Kérlek, jelezd az OrcaSlicer csapatának, milyen helyzetben fordult elő ez a hiba.\n"
"Köszönjük."
@@ -1119,9 +1204,12 @@ msgstr "Alacsony"
msgid "Extra low"
msgstr "Extra alacsony"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d háromszög"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% háromszög"
+msgstr[1] "%1% háromszög"
msgid "Show wireframe"
msgstr "Drótváz megjelenítése"
@@ -1132,6 +1220,17 @@ msgstr "Nem használható folyamat előnézetben."
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "A művelet törlése már folyamatban van. Kérlek, várj néhány másodpercet."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "A modell egyszerűsítése megszakítva"
+
+msgid "Wiki Guide"
+msgstr "Wiki útmutató"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Videós útmutató"
+
msgid "Enforce seam"
msgstr "Varrat kényszerítése"
@@ -1182,6 +1281,14 @@ msgstr "Elhelyezés a felületen"
msgid "Emboss"
msgstr "Dombornyomás"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Nincs aktív betűtípus a stílusban. Válaszd ki a megfelelőt."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "A WxFont nem töltődött be megfelelően."
+
msgid "NORMAL"
msgstr "NORMÁL"
@@ -1835,11 +1942,25 @@ msgstr "Átmérő"
msgid "Length"
msgstr "Hossz"
-msgid "Selection"
-msgstr "Kijelölés"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Lap 1 (rögzített)"
-msgid " (Moving)"
-msgstr " (Mozgatás)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Lap 2 (mozgó)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Pont 1 (rögzített)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Pont 2 (mozgó)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Kijelölés 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1856,15 +1977,8 @@ msgstr ""
"és add meg köztük a távolságot."
# AI Translated
-msgid "Face"
-msgstr "Felület"
-
-# AI Translated
-msgid " (Fixed)"
-msgstr " (Rögzített)"
-
-msgid "Point"
-msgstr "Pont"
+msgid "Selection 2"
+msgstr "Kijelölés 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1967,6 +2081,18 @@ msgstr "Belépés az összeállítás gizmóba"
msgid "Leaving Assembly gizmo"
msgstr "Kilépés az összeállítás gizmóból"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2146,14 +2272,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"A Microsoft WebView2 Runtime telepítése nem sikerült.\n"
"Egyes funkciók, köztük a beállítási varázsló, üresen jelenhetnek meg a telepítéséig.\n"
-"Kérlek, telepítsd kézzel innen: https://developer.microsoft.com/microsoft-edge/webview2/, majd indítsd újra az Orca Slicert."
+"Kérlek, telepítsd kézzel innen: %1%, majd indítsd újra az Orca Slicert."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2393,6 +2520,66 @@ msgstr "Hálózati bővítmény korlátozás"
msgid "Privacy Policy Update"
msgstr "Adatvédelmi szabályzat frissítése"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Az összes filamentbeállításod elérhető azokon a nyomtatókon, amelyekhez készültek."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Filamentbeállítások áttelepítése"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"Az OrcaSlicer 2.5.0 átszervezte a rendszer számos filamentbeállítását, hogy kijavítsa a hibás profilokat és előkészítse a jövőbeli funkciókat. Emiatt az alábbi beállítások már nem jelennek meg néhány nyomtatón, amelyekhez készültek. Elnézést a kellemetlenségért; ez egy egyszeri javítás.\n"
+"\n"
+"Szeretnéd most visszaadni ezeket a nyomtatókat a beállításaidhoz? Előtte biztonsági mentés készül a beállításaidról. Ezt később is megteheted a Segítség > Filamentbeállítások áttelepítése menüpontban."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (%2% alapján)"
+
+msgid "Don't remind me again"
+msgstr "Ne emlékeztessen újra"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "A beállításaidról nem sikerült biztonsági mentést készíteni, ezért nem lettek áttelepítve."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "A felhasználói beállítások mappáját nem sikerült zárolni, ezért semmi sem lett áttelepítve. Lehet, hogy egy másik OrcaSlicer példány éppen beállításokat ment; próbáld újra később a Segítség > Filamentbeállítások áttelepítése menüpontban."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"A filamentbeállításaidat nem sikerült áttelepíteni. A beállításaidról készült biztonsági mentés ide lett mentve:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"A filamentbeállításaid áttelepítése megtörtént. Válaszd ki őket újra a filamentlistában ott, ahol használtad őket.\n"
+"\n"
+"A beállításaidról készült biztonsági mentés ide lett mentve:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Ezeket a beállításokat nem sikerült áttelepíteni:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "az Orca Cloud-profilod (felhasználói azonosító: \"%s\")"
@@ -2514,6 +2701,9 @@ msgstr "Bővítmények frissítve."
msgid "Failed to refresh plugins: %s"
msgstr "Nem sikerült frissíteni a bővítményeket: %s"
+msgid "Unknown error"
+msgstr "Ismeretlen hiba"
+
# AI Translated
msgid "Select plugin package"
msgstr "Bővítménycsomag kiválasztása"
@@ -3041,6 +3231,22 @@ msgstr "Összes újratöltése"
msgid "Reload all from disk"
msgstr "Összes újratöltése lemezről"
+# AI Translated
+msgid "Fix All"
+msgstr "Összes javítása"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Az aktuális tálca összes modelljének javítása"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Összes tálca javítása"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Az összes tálca összes modelljének javítása"
+
msgid "Auto Rotate"
msgstr "Automatikus forgatás"
@@ -3092,8 +3298,13 @@ msgstr "(Elveszett szín)"
msgid "Center"
msgstr "Közép"
-msgid "Drop"
-msgstr "Lehelyezés"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Igazítás/Elosztás"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Objektumok igazítása és elosztása"
msgid "Edit Process Settings"
msgstr "Folyamatbeállítások szerkesztése"
@@ -3390,6 +3601,13 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] "Nem sikerült megjavítani a következő modellt"
msgstr[1] "Nem sikerült megjavítani a következő modelleket"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d modellobjektum nem szorult javításra."
+msgstr[1] "%1$d modellobjektum nem szorult javításra."
+
msgid "Repairing was canceled"
msgstr "A javítás meg lett szakítva"
@@ -3462,9 +3680,6 @@ msgstr "Nincs perem"
msgid "Outer wall speed"
msgstr "Külső fal sebessége"
-msgid "Plate"
-msgstr "Tálca"
-
msgid "Brim"
msgstr "Perem"
@@ -3553,10 +3768,6 @@ msgstr "Egyéni sablon hozzáadása"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Sablon szerinti egyéni G-code beszúrása ennek a rétegnek az elejére."
-# AI Translated
-msgid "Filament "
-msgstr "Filament "
-
msgid "Change filament at the beginning of this layer."
msgstr "Filament cseréje ennek a rétegnek az elején."
@@ -3647,6 +3858,8 @@ msgstr "Módosítás mindenképp"
msgid "Off"
msgstr "Ki"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "Szűrő"
@@ -3762,12 +3975,19 @@ msgid "Check filament location"
msgstr "Ellenőrizd a filament helyzetét"
# AI Translated
-msgid "Switch"
-msgstr "Váltás"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Szüneteltetés"
# AI Translated
-msgid "hotend"
-msgstr "fejegység"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Extruder váltása"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Fejegység váltása"
# AI Translated
msgid "Wait for AMS cooling"
@@ -3949,8 +4169,10 @@ msgid "Arranging"
msgstr "Elrendezés"
# AI Translated
-msgid "Arranging "
-msgstr "Elrendezés "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Elrendezés: %1%"
msgid "Arranging canceled."
msgstr "Elrendezése törölve."
@@ -3989,8 +4211,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Tájolás folyamatban..."
-msgid "Orienting"
-msgstr "Tájolás"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Tájolás: %1%"
msgid "Orienting canceled."
msgstr "Tájolás megszakítva."
@@ -3998,6 +4223,12 @@ msgstr "Tájolás megszakítva."
msgid "Filling"
msgstr "Kitöltés"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Asztal kitöltése: %1%"
+
msgid "Bed filling canceled."
msgstr "Asztal kitöltése megszakítva."
@@ -4013,6 +4244,35 @@ msgstr "Tájolás keresés visszavonva."
msgid "Orientation found."
msgstr "Tájolás megtalálva."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Legjobb felületminőség"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Az objektum elforgatásának optimalizálása a legjobb felületminőség érdekében."
+
+# AI Translated
+# Needs human review: Orient mode name; check that 'reduced overhang slopes' reads right for the option in the Orient dialog.
+msgid "Reduced overhang slopes"
+msgstr "Csökkentett túlnyúlási lejtők"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Az objektum elforgatásának optimalizálása úgy, hogy a lehető legkevesebb támaszt igénylő túlnyúlás legyen.\n"
+"Vedd figyelembe, hogy ha nincs megadva emelés, ez a módszer megpróbálja megtalálni az objektum legjobb felületét az asztallal való érintkezéshez."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Legalacsonyabb Z magasság"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "A modell elforgatása úgy, hogy a Z magasság a lehető legkisebb legyen a gyorsabb nyomtatás érdekében."
+
msgid "Logging in"
msgstr "Bejelentkezés"
@@ -4305,6 +4565,17 @@ msgstr "Legutóbbi projektek"
msgid "Go to Plate"
msgstr "Ugrás a tálcára"
+msgid "Device"
+msgstr "Nyomtató"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Nyomtató (Web)"
+
+# AI Translated
+msgid "Multi-device"
+msgstr "Több eszköz"
+
msgid "AMS Materials Setting"
msgstr "AMS anyagok beállítása"
@@ -4333,9 +4604,6 @@ msgstr "A megadott értéknek nagyobbnak kell lennie, mint %1% és kisebbnek, mi
msgid "Factors of Flow Dynamics Calibration"
msgstr "Áramlásdinamika-kalibrálás tényezői"
-msgid "Wiki Guide"
-msgstr "Wiki útmutató"
-
msgid "PA Profile"
msgstr "PA-profil"
@@ -4365,6 +4633,14 @@ msgstr "Adj meg érvényes értéket (K tartomány: %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Adj meg érvényes értéket (K tartomány: %.1f~%.1f, N tartomány: %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Kedvenc filamentek"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Összes filament"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4684,11 +4960,11 @@ msgstr "A hálózati bővítmény telepítve lett, de nem tölthető be. Indíts
msgid "Restart Required"
msgstr "Újraindítás szükséges"
-msgid "Please home all axes (click "
-msgstr "Kérlek, állítsd alaphelyzetbe az összes tengelyt (kattints "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr "). Így a nyomtató nem mozgatja a fejet a nyomtatható területen túlra, ami az eszköz kopását okozhatná."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Kérlek, állítsd alaphelyzetbe az összes tengelyt (kattints a(z) %1% gombra) a szerszámfej helyzetének meghatározásához. Így a nyomtató nem mozog a nyomtatható területen túlra, ami az eszköz kopását okozná."
msgid "Go Home"
msgstr "Alaphelyzet"
@@ -4703,6 +4979,10 @@ msgstr "Végzetes hiba történt: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Kérlek, mentsd el a projektet és indítsd újra a programot."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Ismeretlen C++ kivétel."
+
# AI Translated
msgid "Processing G-Code from previous file…"
msgstr "G-code feldolgozása egy előző fájlból..."
@@ -4936,6 +5216,14 @@ msgstr "Szeretnéd automatikusan a határértékre (%g mm) igazítani?"
msgid "Adjust"
msgstr "Módosítás"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"A tutaj és a huzatvédő nem érhető el szalagos nyomtatókon.\n"
+"Ezért ki lettek kapcsolva."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5777,9 +6065,6 @@ msgstr "Automatikus újraszeletelés az optimális filamentcsoportosítás alapj
msgid "Filament Grouping"
msgstr "Filamentcsoportosítás"
-msgid "Why this grouping"
-msgstr "Miért ez a csoportosítás"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Helyezd fel a filamenteket a nyomtatóra a csoportosítási eredmény alapján."
@@ -5789,29 +6074,47 @@ msgstr "Tippek:"
msgid "Current grouping of slice result is not optimal."
msgstr "A szeletelési eredmény jelenlegi csoportosítása nem optimális."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "%1%g-mal több filament és %2%-kal több váltás az optimális csoportosításhoz képest."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Az optimális csoportosításhoz képest %1%g-mal több filament és %2% több váltás."
+msgstr[1] "Az optimális csoportosításhoz képest %1%g-mal több filament és %2% több váltás."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "%1%g-mal több filament, de %2%-kal kevesebb váltás az optimális csoportosításhoz képest."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Az optimális csoportosításhoz képest %1%g-mal több filament, de %2% kevesebb váltás."
+msgstr[1] "Az optimális csoportosításhoz képest %1%g-mal több filament, de %2% kevesebb váltás."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "%1%g filament megtakarítás, de %2%-kal több váltás az optimális csoportosításhoz képest."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Az optimális csoportosításhoz képest %1%g-mal kevesebb filament, de %2% több váltás."
+msgstr[1] "Az optimális csoportosításhoz képest %1%g-mal kevesebb filament, de %2% több váltás."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "%1%g filament és %2% váltás megtakarítás egy egyfúvókás nyomtatóhoz képest."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Az egyfúvókás nyomtatóhoz képest %1%g-mal kevesebb filament és %2% kevesebb váltás."
+msgstr[1] "Az egyfúvókás nyomtatóhoz képest %1%g-mal kevesebb filament és %2% kevesebb váltás."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "%1%g filament megtakarítás, de %2%-kal több váltás egy egyfúvókás nyomtatóhoz képest."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Az egyfúvókás nyomtatóhoz képest %1%g-mal kevesebb filament, de %2% több váltás."
+msgstr[1] "Az egyfúvókás nyomtatóhoz képest %1%g-mal kevesebb filament, de %2% több váltás."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "%1%g-mal több filament, de %2% váltás megtakarítás egy egyfúvókás nyomtatóhoz képest."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Az egyfúvókás nyomtatóhoz képest %1%g-mal több filament, de %2% kevesebb váltás."
+msgstr[1] "Az egyfúvókás nyomtatóhoz képest %1%g-mal több filament, de %2% kevesebb váltás."
msgid "Set to Optimal"
msgstr "Beállítás optimálisra"
@@ -5968,11 +6271,60 @@ msgstr "Szerkesztési terület növelése/csökkentése"
msgid "Sequence"
msgstr "Sorrend"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Tálca tömegközéppontja"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Tárgy tömegközéppontja"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Támasz tömegközéppontja"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Összeállítás tömegközéppontja"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Objektum tömegközéppontja"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Kész nyomat"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Kinyomtatva a(z) %1%. rétegig"
+
+# AI Translated
+msgid "Weight"
+msgstr "Tömeg"
+
+msgid "Volume"
+msgstr "Térfogat"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Középpont a befoglaló dobozban"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Befoglaló doboz mérete"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Tehetetlenségi nyomaték"
+
msgid "Object selection"
msgstr "Objektum kijelölés"
-msgid "number keys"
-msgstr "számbillentyűk"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "1~16 számbillentyűk"
msgid "Number keys can quickly change the color of objects"
msgstr "A számbillentyűkkel gyorsan módosítható az objektumok színe"
@@ -6181,9 +6533,20 @@ msgstr "Tengelyek"
msgid "Gridlines"
msgstr "Rácsvonalak"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Címkék"
+# AI Translated
+msgid "Center of mass"
+msgstr "Tömegközéppont"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Nyers G-code megjelenítése (csak szalagos nyomtatón)"
+
# AI Translated
msgid "Move section plane"
msgstr "Metszősík mozgatása"
@@ -6233,7 +6596,7 @@ msgid "Size:"
msgstr "Méret:"
# AI Translated
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "G-code útvonalütközés található a(z) %d. rétegen, Z = %.2lfmm. Helyezd távolabb egymástól az ütköző objektumokat (%s <-> %s)."
@@ -6258,22 +6621,16 @@ msgstr "%d. eszköz"
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "A(z) %s filament a(z) %s helyre van téve, de a generált G-code útvonal túllépi a(z) %s nyomtatható tartományát."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "A(z) %s filamentek a(z) %s helyre vannak téve, de a generált G-code útvonal túllépi a(z) %s nyomtatható tartományát."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "A(z) %s filament a(z) %s helyre van téve, de a generált G-code útvonal túllépi a(z) %s nyomtatható tartományát."
+msgstr[1] "A(z) %s filamentek a(z) %s helyre vannak téve, de a generált G-code útvonal túllépi a(z) %s nyomtatható tartományát."
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "A(z) %s filament a(z) %s helyre van téve, de a generált G-code útvonal túllépi a(z) %s nyomtatható magasságát."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "A(z) %s filamentek a(z) %s helyre vannak téve, de a generált G-code útvonal túllépi a(z) %s nyomtatható magasságát."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "A(z) %s filament a(z) %s helyre van téve, de a generált G-code útvonal túllépi a(z) %s nyomtatható magasságát."
+msgstr[1] "A(z) %s filamentek a(z) %s helyre vannak téve, de a generált G-code útvonal túllépi a(z) %s nyomtatható magasságát."
msgid "Open wiki for more information."
msgstr "További információért nyisd meg a Wiki oldalt."
@@ -6281,9 +6638,12 @@ msgstr "További információért nyisd meg a Wiki oldalt."
msgid "Only the object being edited is visible."
msgstr "Csak az éppen szerkesztett objektum látható."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "A(z) %s filamentek nem nyomtathatók közvetlenül ennek a tálcának a felületére."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "A(z) %s filament nem nyomtatható közvetlenül ennek a tálcának a felületére."
+msgstr[1] "A(z) %s filamentek nem nyomtathatók közvetlenül ennek a tálcának a felületére."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "PLA és PETG filamentek vannak a keverékben. A nyomtatási minőség biztosításához állítsd be a paramétereket a Wiki alapján."
@@ -6406,28 +6766,20 @@ msgstr "Előkészítés"
msgid "Preview"
msgstr "Előnézet"
-msgid "Device"
-msgstr "Nyomtató"
-
-# AI Translated
-msgid "Multi-device"
-msgstr "Több eszköz"
-
msgid "Project"
msgstr "Projekt"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Nyomtató (Web)"
-
msgid "Yes"
msgstr "Igen"
msgid "No"
msgstr "Nem"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "bezárul az új modell létrehozása előtt. Folytatod?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "A(z) %s bezárul az új modell létrehozása előtt. Folytatod?"
msgid "Print all"
msgstr "Összes nyomtatása"
@@ -6473,6 +6825,10 @@ msgstr "Beállítás varázsló"
msgid "Show Configuration Folder"
msgstr "Konfigurációs mappa megjelenítése"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Azoknak a filamentbeállításoknak a visszahozása, amelyeket egy profilfrissítés eltávolított azokról a nyomtatókról, amelyekhez készültek"
+
# AI Translated
msgid "Troubleshoot Center"
msgstr "Hibaelhárító központ"
@@ -6716,6 +7072,14 @@ msgstr "Rácsvonalak megjelenítése"
msgid "Show Gridlines on plate"
msgstr "Rácsvonalak megjelenítése a tálcán"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "IDEX/IQEX szerszámfej megjelenítése"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Megjeleníti az IDEX/IQEX szerszámfej ábrázolását minden aktív fúvóka körül a G-code előnézetben."
+
msgid "Reset Window Layout"
msgstr "Ablakelrendezés visszaállítása"
@@ -7353,6 +7717,8 @@ msgstr "Értékelés"
msgid "Calculating..."
msgstr "Számítás..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Kamera"
@@ -7435,8 +7801,10 @@ msgstr "Felhőszeletelés..."
# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "A felhőszeletelési sorban %s feladat van előtted."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "A felhőszeletelési sorban %d feladat van előtted."
+msgstr[1] "A felhőszeletelési sorban %d feladat van előtted."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7467,6 +7835,11 @@ msgstr "Ez csak a nyomtatás során érvényesül"
msgid "Silent"
msgstr "Csendes"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Normál"
+
# AI Translated
msgid "Sport"
msgstr "Sport"
@@ -7524,17 +7897,29 @@ msgstr "Képek feltöltése"
msgid "Number of images successfully uploaded"
msgstr "Sikeresen feltöltött képek száma"
-msgid " upload failed"
-msgstr " feltöltés sikertelen"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "A(z) %s feltöltése sikertelen"
-msgid " upload config prase failed\n"
-msgstr " feltöltési konfiguráció feldolgozása sikertelen\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "A(z) %s feltöltési konfigurációjának feldolgozása sikertelen"
-msgid " No corresponding storage bucket\n"
-msgstr " Nincs megfelelő tárolóhely\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: Nincs megfelelő tárolóhely"
-msgid " cannot be opened\n"
-msgstr " nem nyitható meg\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "A(z) %s nem nyitható meg"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7552,26 +7937,22 @@ msgstr "Feltöltés sikertelen\n"
msgid "Obtaining instance_id failed\n"
msgstr "Az instance_id beszerzése sikertelen\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"A megjegyzésed eredménye az alábbi okok miatt nem tölthető fel:\n"
-"\n"
-" hibakód: "
-
-msgid "error message: "
-msgstr "hibaüzenet: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Az értékelésed nem tölthető fel a következő okok miatt:\n"
"\n"
+" hibakód: %d\n"
+" hibaüzenet: %s\n"
"\n"
-"Szeretnél átirányítást az értékeléshez tartozó weboldalra?"
+"Szeretnél átlépni a weboldalra az értékelés beküldéséhez?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Néhány képet nem sikerült feltölteni. Szeretnéd, ha átirányítanánk a weboldalra az értékelés beküldéséhez?"
@@ -8411,6 +8792,108 @@ msgstr "Az összes objektum beállításainak megtekintése"
msgid "Material settings"
msgstr "Anyagbeállítások"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Minden mód megnevezi a részt vevő szerszámfejeket és az egyes fejek szerepét. Kattints egy szerszámgombra a szerepe váltásához — vidd az egeret egy lenti szín fölé, hogy lásd, mit csinál az adott szerep."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Mód hozzáadása"
+
+# AI Translated
+msgid "Tools"
+msgstr "Eszközök"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "A mód neve a tálca IDEX/IQEX módválasztójában. Kötelező — név nélküli mód nem választható ki."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Mely szerszámfejek vesznek részt a módban, és mi az egyes fejek szerepe. Kattints egy csempére a szerepe váltásához."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "A nyomtatás kezdetén futtatott G-code, amely ebbe a módba állítja a nyomtatót (például egy Klipper SET_PRINT_MODE hívás). A szeletelő csak az elsődleges (Primary) szerszám útvonalait állítja elő; a többit a firmware vezérli."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Inaktív"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Elsődleges"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Másolat"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Tükör"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Ez hajt végre minden szeletelt útvonalat. Mindig a 0. szerszám — a fenti \"0. szerszám helyzete\" beállítással választhatod ki, hogy az asztal melyik sarkában legyen. A rácson nem mozgatható."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Firmware-szinten követi az elsődleges (Primary) szerszámot, és ugyanazokat az útvonalakat nyomtatja a saját zónájába eltolva."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Firmware-szinten követi az elsődleges (Primary) szerszámot, és ugyanazokat az útvonalakat nyomtatja a két zóna határára tükrözve."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Az elsődleges (Primary) szerszám portálján lévő szerszámot jelöli meg annak többszínű társaként. Szükséges a többszínű nyomtatáshoz a páros portálos módokban."
+
+# AI Translated
+msgid "Primary"
+msgstr "Elsődleges"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Mód neve (kötelező)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "A párhuzamos mód neve, ahogy a tálca IDEX/IQEX módválasztójában megjelenik. A projekt név szerint tárolja, ezért ha átnevezel egy tálcák által már használt módot, azok visszaállnak elsődleges (Primary) módra. Nem lehet üres — az üres név helyére egy generált név kerül."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "Az ezt a módot használó nyomtatás elején egyszer kiírt G-code, a gép kezdő G-code-ja előtt. Itt kell a nyomtatót a megfelelő firmware-módba állítani — például egy Klipper SET_PRINT_MODE hívással vagy egy RepRapFirmware M567 paranccsal —, mivel a szeletelő csak az elsődleges (Primary) szerszám útvonalait állítja elő, a másolat (Copy) és tükör (Mirror) szerszámokat pedig a firmware vezérli. Helyőrzők használhatók; a szerkesztés gombbal böngészheted őket. Hagyd üresen, ha a mód nem igényel firmware-beállítást."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "G-code szerkesztése / helyőrzők böngészése"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Mód eltávolítása"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "A mód ebben a munkamenetben végzett módosításainak elvetése (visszaállítás a mentett értékre)"
+
msgid "Remove current plate (if not last one)"
msgstr "Aktuális tálca eltávolítása (ha nem az utolsó)"
@@ -8435,12 +8918,33 @@ msgstr "Aktuális tálcanév szerkesztése"
msgid "Move plate to the front"
msgstr "Tálca előre helyezése"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX mód: %1% (folyamatbeállítás: %2%) (bal kattintás: váltás, jobb kattintás: menü)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX mód: %1% (bal kattintás: váltás, jobb kattintás: menü)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Figyelmeztetés: ez a tálca párhuzamos IDEX/IQEX módot használ többanyagú objektumokkal. Óvatosan folytasd — ellenőrizd, hogy a G-code-od helyesen kezeli-e ezt a kombinációt."
+
msgid "Customize current plate"
msgstr "Aktuális tálca testreszabása"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "A(z) %s fúvóka nem tudja nyomtatni ezt: %s."
+msgid "The left nozzle cannot print %s."
+msgstr "A bal fúvóka nem tudja nyomtatni ezt: %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "A jobb fúvóka nem tudja nyomtatni ezt: %s."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8450,12 +8954,18 @@ msgstr "A kevert színű filament nyomtatása egyextruderes nyomtatón gyakori f
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "A(z) %1% és %2% keverése nyomtatás közben nem ajánlott.\n"
-msgid " nozzle"
-msgstr " fúvóka"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "A következő filament(ek) nyomtatása %1% használatával nem ajánlott: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "%1%mm-es %2% fúvóka"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "A következő filament nyomtatása %1% használatával nem ajánlott: %2%\n"
+msgstr[1] "A következő filamentek nyomtatása %1% használatával nem ajánlott: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "Az alábbi fúvóka és filament kombinációk használata nem ajánlott:\n"
@@ -8464,9 +8974,11 @@ msgstr "Az alábbi fúvóka és filament kombinációk használata nem ajánlott
msgid "%1% with %2%\n"
msgstr "%1% ezzel: %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " %1% tálca:"
+msgid "Slicing plate %1%: %2%"
+msgstr "%1%. tálca szeletelése: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Érvénytelen név, a következő karakterek nem megengedettek:"
@@ -8501,12 +9013,6 @@ msgstr "AMS (1 férőhely)"
msgid "Not installed"
msgstr "Nincs telepítve"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "A szoftver nem támogatja eltérő fúvókaátmérők használatát egy nyomtatáson belül. Ha a bal és jobb fúvóka nem egyezik, csak egyfejes nyomtatás lehetséges. Erősítsd meg, melyik fúvókát szeretnéd használni ennél a projektnél."
-
-msgid "Switch diameter"
-msgstr "Átmérő váltása"
-
msgid "Configuration incompatible"
msgstr "Nem kompatibilis konfiguráció"
@@ -8588,6 +9094,10 @@ msgstr "Kevert filament"
msgid "Remove last mixed filament"
msgstr "Utolsó kevert filament eltávolítása"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Összes kevert filament eltávolítása"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Kevert filament hozzáadása"
@@ -8610,6 +9120,13 @@ msgstr "A kevert filament hibás összetevő-hivatkozásokat tartalmaz"
msgid "Edit / Delete / Merge"
msgstr "Szerkesztés / Törlés / Egyesítés"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Eltávolítod a(z) %1% kevert filamentet?"
+msgstr[1] "Eltávolítod mind a(z) %1% kevert filamentet?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "A cél kevert filament ezt a fizikai filamentet használja összetevőként. Az egyesítés eltávolítja ezt a fizikai filamentet, és a kevert filament érvénytelenné válhat. Folytatja?"
@@ -8684,9 +9201,6 @@ msgstr "Fájl betöltése: %s"
msgid "Load 3MF"
msgstr "3MF betöltése"
-msgid "BambuStudio Project"
-msgstr "BambuStudio projekt"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "A 3MF fájlt az OrcaSlicer nem támogatja teljesen, csak a geometriai adatok töltődnek be."
@@ -8716,17 +9230,6 @@ msgstr "Jobb lenne, ha frissítenéd a szoftvert.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "A 3MF fájl %s verziója újabb, mint a(z) %s verziója %s, javasolt a szoftver frissítése."
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "A 3MF-et a BambuStudio készítette (%s verzió), amely újabb, mint a %s kompatibilis verzió. Felismeretlen beállításokat találtunk:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "A 3MF-et a BambuStudio készítette (%s verzió), amely újabb, mint a %s kompatibilis verzió. Előfordulhat, hogy egyes beállítások nem teljesen kompatibilisek."
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "A 3MF-et a BambuStudio készítette. Egyes beállítások eltérhetnek az OrcaSlicer-től."
-
msgid "Invalid values found in the 3MF:"
msgstr "Érvénytelen értékek találhatók a 3MF-ben:"
@@ -8901,6 +9404,14 @@ msgstr "Letiltja az Auto-Drop funkciót a Z pozicionálás megőrzéséhez?\n"
msgid "Object with floating parts was detected"
msgstr "Lebegő részeket tartalmazó tárgyat észleltünk"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Nem szeletelhető: egy objektum átfedésben van az IDEX/IQEX párhuzamos nyomtatáshoz fenntartott területtel (egy másodlagos zónával, vagy a kocsik számára hagyott szabad sávval az elsődleges zónán belül)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Nem szeletelhető: a törlőtorony átfedésben van az IDEX/IQEX párhuzamos nyomtatáshoz fenntartott területtel (egy másodlagos zónával, vagy a kocsik számára hagyott szabad sávval az elsődleges zónán belül)."
+
msgid "Another export job is running."
msgstr "Egy másik exportálási feladat is fut."
@@ -8954,8 +9465,9 @@ msgstr "Lecserélt térfogatok"
msgid "Please select a file"
msgstr "Kérlek, válassz egy fájlt"
-msgid "Do you want to replace it"
-msgstr "Cserélni szeretné"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Szeretnéd lecserélni?"
msgid "Message"
msgstr "Üzenet"
@@ -8985,6 +9497,50 @@ msgstr "Érvénytelen adat"
msgid "Slicing Canceled"
msgstr "Szeletelés megszakítva"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Asztalhőmérséklet-ütközés: a T%d (%s) %d℃-ra állítja az asztalt — a T%d (%s) %d℃-ot igényel. Az asztalt az elsődleges szerszám vezérli; a másodlagos szerszámok az általa beállított hőmérsékleten nyomtatnak."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Filamenttípus-eltérés: a T%d %s, a T%d pedig %s anyagot használ. Ezeknek az anyagoknak összeférhetetlenek a követelményei, és nem együttes nyomtatásra tervezték őket."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"A(z) %d. tálcán aktív az IDEX/IQEX párhuzamos mód, a következő problémákkal:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Folytatod a szeletelést?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "IDEX/IQEX párhuzamos mód figyelmeztetés"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Ne mutasd újra ezeket a figyelmeztetéseket"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "%d. tálca:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Az alábbi problémák észlelhetők az IDEX/IQEX párhuzamos módban:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "A hálózati bővítmény sikeresen átváltva."
@@ -9018,8 +9574,8 @@ msgid "Sync now"
msgstr "Szinkronizálás most"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Művelet futása közben nem lehet visszavonni vagy újra végrehajtani. Előbb állítsd le."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Művelet futása közben nem lehet visszavonni vagy újra végrehajtani. Állítsd le a műveletet, vagy várd meg, amíg befejeződik, majd próbáld újra."
# AI Translated
msgid ""
@@ -9090,6 +9646,14 @@ msgstr "Letöltés sikertelen, fájlméret kivétel."
msgid "Project downloaded %d%%"
msgstr "Projekt letöltve %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"A PA vonal és a PA-minta tesztek szalagos nyomtatókon még nem érhetők el.\n"
+"Kérlek, használd helyette a PA-torony módszert."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Pressure Advance teszt"
@@ -9098,11 +9662,15 @@ msgstr "Pressure Advance teszt"
msgid "INFO:"
msgstr "INFO:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Nincs megadva gyorsulás a kalibráláshoz. Alapértelmezett gyorsulási érték használata "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Nincs megadva gyorsulás a kalibráláshoz. Alapértelmezett gyorsulási érték használata: %1%mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Nincs megadva sebesség a kalibráláshoz. Alapértelmezett optimális sebesség használata "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Nincs megadva sebesség a kalibráláshoz. Alapértelmezett optimális sebesség használata: %1%mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9117,6 +9685,15 @@ msgstr "Orca YOLO anyagáramlás-kalibrálás"
msgid "Flowrate Test - Pass%d"
msgstr "Anyagáramlás-teszt - %d. menet"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Nem érhető el szalagos hőmérséklettorony a(z) %1% és %2%℃ közötti tartományhoz. Olyan tartományt használj, amelyet a toronymodellek lefednek, például 230-tól 190-ig."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Hőmérséklettorony"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Fúvókahőmérséklet-teszt"
@@ -9140,12 +9717,16 @@ msgstr "Kanyarsebesség-teszt"
msgid "Import SLA archive"
msgstr "SLA archívum importálása"
-msgid "The selected file"
-msgstr "A kiválasztott fájl"
-
# AI Translated
-msgid "Does not contain valid G-code."
-msgstr "nem tartalmaz érvényes G-code-ot."
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"A kiválasztott fájl:\n"
+"%1%\n"
+"nem tartalmaz érvényes G-code-ot."
# AI Translated
msgid "An Error has occurred while loading the G-code file."
@@ -9423,6 +10004,27 @@ msgstr "Jelenleg az objektum konfigurációja nem használható többextruderes
msgid "Not available"
msgstr "Nem elérhető"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (nincs tálca)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — nincs filament hozzárendelve\n"
+"Adj hozzá egy extrudert a Gép lapon, hogy ennek a fejnek legyen filamenthelye."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> %2%. filament"
+
msgid "isometric"
msgstr "izometrikus"
@@ -9462,6 +10064,8 @@ msgstr "Európa"
msgid "North America"
msgstr "Észak-Amerika"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "Egyéb"
@@ -9536,11 +10140,17 @@ msgstr "A hálózati bővítmény újratöltése nem sikerült. Kérlek, indíts
msgid "Reload Failed"
msgstr "Sikertelen újratöltés"
-msgid "Associate"
-msgstr "Társítás"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "%s:// társítása"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "az OrcaSlicerrel, hogy az Orca modelleket tudjon megnyitni innen:"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "%s:// társítása az OrcaSlicerrel, hogy az Orca modelleket tudjon megnyitni innen: %s"
msgid "Current Association: "
msgstr "Jelenlegi társítás: "
@@ -9841,6 +10451,9 @@ msgstr "Utolsó nyomtatási művelet megjegyzése"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Ha be van kapcsolva, az OrcaSlicer megjegyzi a nyomtatás gomb legördülő menüjében utoljára kiválasztott lehetőséget (pl. Nyomtatás, Szeletelt tálca exportálása, G-code fájl exportálása), és a következő indításkor ezt használja alapértelmezettként."
+msgid "Camera"
+msgstr "Kamera"
+
msgid "Touchpad"
msgstr "Érintőpad"
@@ -10279,6 +10892,9 @@ msgstr "Hálózati bővítmény verzió"
msgid "Select the network plug-in version to use"
msgstr "A használandó hálózati bővítmény verzió kiválasztása"
+msgid "Associate"
+msgstr "Társítás"
+
msgid "Associate files to OrcaSlicer"
msgstr "Fájlok társítása az OrcaSlicerhez"
@@ -10331,6 +10947,12 @@ msgstr "Nem támogatott beállítások megjelenítése"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Megjeleníti a nem kompatibilis vagy nem támogatott beállításokat a nyomtató- és filamentlegördülő listákban. Ezek a beállítások nem választhatók ki."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "Kísérleti funkciók"
@@ -10623,10 +11245,6 @@ msgstr "3MF közzététele..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Válaszd ki, mely beállítások kerüljenek közzétételre a 3MF fájlban"
-# AI Translated
-msgid "Video Guide"
-msgstr "Videós útmutató"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Kevert filament - egészében kerül közzétételre, ha fent az \"Engedélyezve\" be van jelölve"
@@ -10791,6 +11409,13 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Egyszerű"
+# AI Translated
+# Needs human review: Screen-reader label of a Speed Dial action (' from '); check it reads right with the real action and source names.
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s – innen: %s"
+
# AI Translated
msgid "Search actions"
msgstr "Műveletek keresése"
@@ -10908,6 +11533,10 @@ msgstr "Részletek megjelenítése"
msgid "Hide details"
msgstr "Részletek elrejtése"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "A webnézet nem érhető el."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11193,9 +11822,12 @@ msgstr "Sikertelen küldés"
msgid "The name length exceeds the limit."
msgstr "A név hossza meghaladja a korlátot."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "%dg-mal több filament és %d váltással több az optimális csoportosításhoz képest."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Az optimális csoportosításhoz képest %dg-mal több filament és %d több váltás."
+msgstr[1] "Az optimális csoportosításhoz képest %dg-mal több filament és %d több váltás."
# AI Translated
msgid "Right-Ext"
@@ -11285,6 +11917,10 @@ msgstr "Egyes filamentek nyomtatás közben extrudert válthatnak. A kézi K-ér
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "Ebben a fájlban szálhúzásra hajlamos filament található. A legjobb nyomtatási minőség érdekében javasoljuk a fúvókacsomósodás-észlelés Automatikus módra váltását."
+# AI Translated
+msgid "Switch"
+msgstr "Váltás"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Ha a 'Dinamikus anyagáramlás-kalibrálás' Automatikus/Be értékre van állítva, a rendszer a kézi kalibrálási értéket vagy az alapértelmezett értéket használja, és kihagyja az anyagáramlás-kalibrálási folyamatot. A TPU filament kézi anyagáramlás-kalibrálását a 'Kalibrálás' oldalon végezheted el."
@@ -11595,6 +12231,10 @@ msgstr "A különböző extruderhajtások vagy fúvókatérfogat-típusok szinkr
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "A paraméterek módosításának szinkronizálása egy másik extruder megfelelő paramétereire."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Az ezzel az ikonnal jelölt paraméterek fúvókánként állíthatók."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Kattints az összes beállítás utolsó mentett változatának visszaállításához."
@@ -11825,6 +12465,9 @@ msgstr "Filament funkciókhoz"
msgid "Ooze prevention"
msgstr "Szivárgás megelőzés"
+msgid "Others"
+msgstr "Egyéb"
+
msgid "Special mode"
msgstr "Speciális mód"
@@ -11867,8 +12510,11 @@ msgstr[1] ""
"A következő sorok foglalt kulcsszavakat tartalmaz: %s.\n"
"Kérlek, távolítsd el, vagy különben problémát fog okozni a G-kód megjelenítésében és a nyomtatási idő becslésében."
-msgid "Reserved keywords found"
-msgstr "Foglalt kulcsszavakat találtunk"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Foglalt kulcsszavakat találtunk itt: %1%"
msgid "Setting Overrides"
msgstr "Beállítások felülbírálása"
@@ -12015,7 +12661,16 @@ msgstr "Nyomtatási terület"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Válaszd ki a nyomtatóval való kommunikációhoz használt hálózati ügynököt. Az elérhető ügynököket indításkor regisztrálja a rendszer."
+# AI Translated
+msgid "Belt printer"
+msgstr "Szalagos nyomtató"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Gépi koordináta-rendszer transzformációi"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Érvénytelen érték lett megadva a(z) %1% paraméterhez: %2%"
@@ -12141,9 +12796,29 @@ msgstr "Fúvóka átmérője"
msgid "Wipe tower"
msgstr "Törlőtorony"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Szalagos törlőtorony"
+
msgid "Single extruder multi-material parameters"
msgstr "Egyetlen extruder többanyagú paraméterei"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "IDEX/IQEX konfiguráció"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Szeletelés előtti figyelmeztetések"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Figyelmeztető párbeszédablak megjelenítése szeletelés előtt, ha IDEX/IQEX párhuzamos módbeli problémák észlelhetők (asztalhőmérséklet-ütközések, filamenttípus-eltérések, többanyagú ütközések). Magában a párbeszédablakban letiltható. Ha véletlenül letiltottad, itt újra engedélyezheted."
+
+# AI Translated
+msgid "Modes"
+msgstr "Módok"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Ez egy egyextruderes többanyagú nyomtató, ezért az összes extruder átmérője az új értékre lesz állítva. Szeretnéd folytatni?"
@@ -12153,6 +12828,22 @@ msgstr "Rétegmagasság limitek"
msgid "Z-Hop"
msgstr "Z-emelés"
+# AI Translated
+msgid "Front-left"
+msgstr "Bal első"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Jobb első"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Bal hátsó"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Jobb hátsó"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -12175,22 +12866,37 @@ msgstr "Módosított érték használata"
msgid "Detached"
msgstr "Különálló"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "A(z) %1% és a(z) %2% ehhez a nyomtatóhoz tartozik. Ha törlöd a nyomtatót, ezek a beállítások is törlődnek."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "A(z) %d filamentbeállítás és a(z) %d folyamatbeállítás ehhez a nyomtatóhoz kapcsolódik. Ha törlöd a nyomtatót, akkor ezek a beállítások is törlődnek."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d filamentbeállítás"
+msgstr[1] "%d filamentbeállítás"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d folyamatbeállítás"
+msgstr[1] "%d folyamatbeállítás"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "A más beállítások által örökölt beállítások nem törölhetők!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "A következő profil örökli ezt a profilt."
-msgstr[1] "A következő profilok öröklik ezt a profilt."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "A következő beállítás örökli ezt a beállítást."
+msgstr[1] "A következő beállítások öröklik ezt a beállítást."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% beállítás"
+msgid "Delete Preset"
+msgstr "Beállítás törlése"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -12204,9 +12910,9 @@ msgstr ""
"Biztosan törlöd a kiválasztott beállítást?\n"
"Ha ez a filament jelenleg használatban van a nyomtatón, kérlek, töröld az adott férőhelyen a filamentadatokat."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Biztos, hogy %1% a kiválasztott beállítást?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Biztosan törlöd a kiválasztott beállítást?"
msgid "Select printers"
msgstr "Nyomtatók kiválasztása"
@@ -12260,9 +12966,39 @@ msgid "Don't warn again for this preset"
msgstr "Ne legyen több figyelmeztetés ennél az előbeállításnál"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# Needs human review: Short nozzle flow type tag (Standard/High Flow); kept as the English abbreviation, check whether a localized abbreviation is wanted.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Short nozzle flow type tag (Standard/High Flow); kept as the English abbreviation, check whether a localized abbreviation is wanted.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Short nozzle flow type tag (Standard/High Flow); kept as the English abbreviation, check whether a localized abbreviation is wanted.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Short nozzle flow type tag (Standard/High Flow); kept as the English abbreviation, check whether a localized abbreviation is wanted.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short nozzle flow type tag (Standard/High Flow); kept as the English abbreviation, check whether a localized abbreviation is wanted.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
# AI Translated
msgid "No modifications need to be copied."
@@ -12465,6 +13201,12 @@ msgstr "Az egyik beállítás nem létezik"
msgid "Compared presets has different printer technology"
msgstr "Az összehasonlított beállítások eltérő nyomtatótechnológiájúak"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" vs. \"%2%\""
+
msgid "Add File"
msgstr "Fájl hozzáadása"
@@ -12490,6 +13232,22 @@ msgstr "Alkatrészlista"
msgid "Assembly Guide"
msgstr "Összeszerelési útmutató"
+# AI Translated
+msgid "Image files"
+msgstr "Képfájlok"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXT fájlok"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCEL fájlok"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDF fájlok"
+
msgid "Author"
msgstr "Szerző"
@@ -12690,9 +13448,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Összes tömörítés"
-msgid "Volume"
-msgstr "Térfogat"
-
msgid "Ramming line"
msgstr "Tömörítési sor"
@@ -12719,8 +13474,10 @@ msgstr "Szorzó"
msgid "Flushing volumes for filament change"
msgstr "Filamentcsere öblítési mennyisége"
-msgid "Please choose the filament color"
-msgstr "Kérlek, válaszd ki a filament színét"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "honnan/hová"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "A felhőszolgáltatás nem érhető el. Indítsd újra az OrcaSlicert, majd próbáld újra."
@@ -12741,6 +13498,155 @@ msgstr "Sikertelen bejelentkezés. Próbáld újra."
msgid "parse json failed"
msgstr "a JSON feldolgozása sikertelen"
+# AI Translated
+msgid "Loading…"
+msgstr "Betöltés…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Egyéni"
+
+# AI Translated
+msgid "Welcome to Orca Slicer"
+msgstr "Üdvözöl az Orca Slicer"
+
+# AI Translated
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Az Orca Slicer beállítása több lépésben történik. Kezdjük!"
+
+# AI Translated
+msgid "Get Started"
+msgstr "Kezdés"
+
+# AI Translated
+msgid "Please select your login region"
+msgstr "Kérlek, válaszd ki a bejelentkezési régiódat"
+
+msgid "Finish"
+msgstr "Kész"
+
+# AI Translated
+msgid "Printer Selection"
+msgstr "Nyomtató kiválasztása"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Gyártók"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Egyedi nyomtató"
+
+msgid "Create"
+msgstr "Létrehoz"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Új nyomtatók keresése"
+
+# AI Translated
+msgid "At least one printer must be selected."
+msgstr "Legalább egy nyomtatót ki kell választani."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Új nyomtatók találhatók"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Új nyomtatógyártók telepítve: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Új nyomtatógyártók találhatók, de a telepítés meg lett szakítva."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Nem található új nyomtató."
+
+# AI Translated
+msgid "Filament Selection"
+msgstr "Filament kiválasztása"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "Rendszerfilamentek"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "Egyedi filamentek"
+
+# AI Translated
+msgid "Create New"
+msgstr "Új létrehozása"
+
+msgid "Filament type"
+msgstr "Filament típusa"
+
+msgid "Vendor"
+msgstr "Gyártó"
+
+# AI Translated
+msgid "No items"
+msgstr "Nincsenek elemek"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Elemek szűrése"
+
+# AI Translated
+msgid "Checked"
+msgstr "Bejelölt"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Nem bejelölt"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Szűrtek kijelölése"
+
+# AI Translated
+msgid "Clear all"
+msgstr "Összes törlése"
+
+# AI Translated
+msgid "At least one filament must be selected."
+msgstr "Legalább egy filamentet ki kell választani."
+
+# AI Translated
+msgid "Do you want to use the default filament?"
+msgstr "Szeretnéd az alapértelmezett filamentet használni?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Ez kikapcsolja az összes felhőfunkciót, beleértve az Orca Cloud profilszinkronizálást is. Azok a felhasználók kapcsolhatják be, akik teljesen offline szeretnének dolgozni."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Megjegyzés: ha a lopakodó mód be van kapcsolva, a felhasználói profiljaidról nem készül biztonsági mentés az Orca Cloudba."
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "Lopakodó mód engedélyezése."
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Zárt forrású bővítmények"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Egyes nyomtatógyártók zárt forrású bővítményeket igényelnek a nyomtatóikkal való kommunikációhoz. Ha ilyen nyomtatót használsz, válaszd ki a megfelelő bővítményt."
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Vedd figyelembe, hogy ezeket a bővítményeket nem az OrcaSlicer fejleszti és tartja karban. Saját belátásod szerint és saját felelősségedre használd őket."
+
+# AI Translated
+msgid "Install Bambu Network plug-in"
+msgstr "Bambu Network bővítmény telepítése"
+
msgid "[Action Required] "
msgstr "[Művelet szükséges] "
@@ -12809,9 +13715,6 @@ msgstr "Akkor érhető el, ha az Előkészítés fül 3D nézete van fókuszban.
msgid "Select a part"
msgstr "Válassz egy tárgyat"
-msgid "Select multiple objects"
-msgstr "Több objektum kijelölése"
-
msgid "Select objects by rectangle"
msgstr "Objektumok kijelölése téglalapok alapján"
@@ -13144,26 +14047,20 @@ msgstr "A firmware-verzió hibás. Nyomtatás előtt javítani és frissíteni k
msgid "Extension Board"
msgstr "Bővítőpanel"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Felosztva %1% részre"
-
msgid "Repair finished"
msgstr "Javítás befejezve"
-msgid "Repair failed"
-msgstr "A javítás sikertelen"
-
-msgid "Repair canceled"
-msgstr "Javítás megszakítva"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "%1% fájl másolása sikertelen a következő helyre: %2% Hiba: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Új gyártói profilok letöltése: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Új gyártói profil letöltése: %1%..."
+msgstr[1] "Új gyártói profilok letöltése: %1%..."
# AI Translated
#, boost-format
@@ -13171,8 +14068,12 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Konfigurációs csomag: %1% frissítve erre: %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Nem sikerült letölteni a gyártói profilokat: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Nem sikerült letölteni a gyártói profilt: %1%"
+msgstr[1] "Nem sikerült letölteni a gyártói profilokat: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Kérlek, ellenőrizd a nem mentett módosításokat a konfiguráció frissítése előtt."
@@ -13181,6 +14082,10 @@ msgstr "Kérlek, ellenőrizd a nem mentett módosításokat a konfiguráció fri
msgid "Open G-code file:"
msgstr "G-code fájl megnyitása:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "A törlőtorony létrehozása sikertelen, valószínűleg az üres első réteg miatt."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Az egyik objektum üres kezdőréteggel rendelkezik, ezért nem nyomtatható. Kérlek, vágd le az alját, vagy engedélyezd a támaszokat."
@@ -13203,9 +14108,61 @@ msgstr "Folyamat módosítása extrudálási szerepkör G-code-ja"
msgid "Filament change extrusion role G-code"
msgstr "Filament változás extrudálási szerepkör G-code-ja"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"A G-code exportálása ide sikertelen: %1%\n"
+"A fájl nem nyitható meg írásra."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "A(z) %1% mappa nem létezik."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"A G-code exportálása ide sikertelen: %1%\n"
+"Megtelt a lemez?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Nem sikerült átnevezni a kimeneti G-code fájlt erről: %1%, erre: %2%.\n"
+"Hiba: %3%\n"
+"Zárolva van a(z) %1%?"
+
msgid "No object can be printed. It may be too small."
msgstr "Objektum nem nyomtatható ki. Lehet, hogy túl kicsi."
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "A(z) \"%1%\" IDEX/IQEX módhoz nincsenek szerszámok hozzárendelve a kiválasztott nyomtatón. A nyomtatás helyette elsődleges (Primary) módban történik. Rendeld hozzá a mód szerszámait a Nyomtatóbeállításokban, vagy válassz másik módot a tálca IDEX/IQEX gombjával."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Ez a tálca a(z) \"%1%\" IDEX/IQEX módra van állítva, amelyet a kiválasztott nyomtató nem határoz meg. A nyomtatás helyette elsődleges (Primary) módban történik. Válassz módot a tálca IDEX/IQEX gombjával, vagy állítsd vissza a módot a Nyomtatóbeállításokban."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Érvénytelen miniatűrérték:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "A nyomat nagyon közel van az előkészítő extrudálás területéhez. Ellenőrizd, hogy nem ütköznek-e."
@@ -13253,6 +14210,10 @@ msgstr "Csoportosítási hiba: %1% nem helyezhető a bal fúvókába"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Csoportosítási hiba: %1% nem helyezhető a jobb fúvókába"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Nem található érvényes fúvóka. Ellenőrizd a fúvókák számát."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Csoportosítási hiba kézi módban. Kérlek, ellenőrizd a fúvókaszámot, vagy csoportosíts újra."
@@ -13272,6 +14233,18 @@ msgstr "több metszéspont egy kerülettel, csak egy lett felhasználva (%1%)"
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "egy kerület teljesen egy módosítón belül van, a módosító nem lett rá alkalmazva (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "%1% módosító „%2%” (objektum: „%3%”) a teljes kerületet lefedi"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "%1% módosító „%2%” (objektum: „%3%”, összesen: %4%) a teljes kerületet lefedi"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13286,9 +14259,47 @@ msgstr "a(z) \"%2%\" \"%1%\" módosítója (összesen %3%) nem volt hatással a
msgid "Seam placement may differ from expected."
msgstr "A varrat elhelyezése eltérhet a várttól."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Belső híd"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "A Flow::spacing() negatív térközt eredményezett. Nem állítottál be túl kicsi extrudálási szélességet?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "A Flow::mm3_per_mm() negatív áramlást eredményezett. Nem állítottál be túl kicsi extrudálási szélességet?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Nem sikerült kiszámítani a(z) %1% vonalszélességét. A(z) \"%2%\" értéke nem érhető el."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Érvénytelen térköz lett megadva a Flow::with_spacing() függvényhez, ellenőrizd a rétegmagasságot és az extrudálási szélességet"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "A kiválasztott 3mf fájlt a(z) %1% újabb verziójával mentették, ezért nem kompatibilis."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "A kiválasztott 3MF a PrusaSlicer újabb verziójával festett FDM-támaszokkal rendelkező objektumot tartalmaz, ezért nem kompatibilis."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "A kiválasztott 3MF a PrusaSlicer újabb verziójával festett varratokkal rendelkező objektumot tartalmaz, ezért nem kompatibilis."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "A kiválasztott 3MF a PrusaSlicer újabb verziójával festett többanyagú objektumot tartalmaz, ezért nem kompatibilis."
+
msgid "undefined error"
msgstr "meghatározatlan hiba"
@@ -13382,6 +14393,56 @@ msgstr "sikertelen érvényesítés"
msgid "write callback failed"
msgstr "írás callback sikertelen"
+# AI Translated
+msgid "unknown error"
+msgstr "ismeretlen hiba"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Az IDEX/IQEX párhuzamos módokban a többszínű nyomtatáshoz minden filamentnek saját, dedikált fizikai extruderre van szüksége. Két vagy több aktív filament a nyomtató fizikai extrudertérképén (egy MMU/AFC elosztón) keresztül ugyanarra a fizikai fejre van irányítva, amit a követő portál nem tud követni."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "Az aktív IDEX/IQEX mód nem határoz meg elsődleges szerszámot, így a többszínű nyomtatás nem ütemezhető. Nyisd meg a nyomtatóbeállításokban az IDEX/IQEX módszerkesztőt, és rendeld hozzá az elsődleges (Primary) szerepet egy szerszámhoz."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Ebben a módban a többszínű nyomtatás nem párhuzamos nyomtatási helyzet — az összes aktív szerszám egyetlen portálon van, így nincs második portál, amelyre másolni vagy tükrözni lehetne. Egyetlen portálon történő többszínű nyomtatáshoz állítsd a tálcát elsődleges (Primary) módra, vagy határozz meg egy olyan IDEX/IQEX módot, amely egy második portál szerszámait is tartalmazza."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Az IDEX/IQEX párhuzamos módokban a többszínű nyomtatáshoz Span szerszám szükséges az elsődleges szerszám portálján — enélkül a mód nem jelöl ki portálon belüli többszínű társat. Csökkentsd a nyomtatást egyetlen filamentre, válts elsődleges (Primary) módra, vagy nyisd meg a nyomtatóbeállításokban az IDEX/IQEX módszerkesztőt, és állíts be Span szerepet egy szerszámnak az elsődleges szerszám portálján."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Ebben a Span módban a színeket csak a(z) %1% nyomtatja, de a(z) %2%. filament nincs egyetlen szerszámhoz sem irányítva. Használj a(z) %1% szerszámhoz irányított filamenteket, vagy állítsd ezt a tálcát elsődleges (Primary) módra."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Ebben a Span módban a színeket csak a(z) %1% nyomtatja, de a(z) %2%. filament a T%3% szerszámhoz van irányítva. Használj a(z) %1% szerszámhoz irányított filamenteket, vagy állítsd ezt a tálcát elsődleges (Primary) módra."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"A kiválasztott beállítás nem tölthető be: %1%\n"
+"\tOk: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Nem sikerült betölteni a beállításfájlt: %1%\n"
+"\tOk: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% túl közel van a tiltott területhez, a nyomtatás során előfordulhatnak ütközések."
@@ -13398,27 +14459,34 @@ msgstr "%1% túl magas, a nyomtatás során előfordulhatnak ütközések."
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "A modell és a törlőtorony egymáshoz viszonyított helyzete nem felel meg a \"Nincsenek ritka rétegek\" funkció követelményeinek. Módosítsd az egymáshoz viszonyított helyzetüket, csökkentsd a modell magasságát, vagy kapcsold ki a \"Nincsenek ritka rétegek\" beállítást."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " túl közel van a tiltott területhez, a nyomtatás során előfordulhatnak ütközések."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " túl közel van a csomósodásészlelési területhez, ezért nyomtatás közben ütközések fordulhatnak elő."
-
-msgid "Prime Tower"
-msgstr "Törlőtorony"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " túl közel van más tárgyakhoz, a nyomtatás során előfordulhatnak ütközések.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " túl közel van a tiltott területhez, a nyomtatás során előfordulhatnak ütközések.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " túl közel van a csomósodásészlelési területhez, és ez ütközést fog okozni.\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% túl közel van a csomósodásészlelési területhez, a nyomtatás során előfordulhatnak ütközések."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " részben a nyomtatható területen kívül esik, ezért nem nyomtatható ki.\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "A törlőtorony túl közel van más tárgyakhoz, ezért ütközések fordulhatnak elő.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "A törlőtorony túl közel van a tiltott területhez, és ez ütközést fog okozni.\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "A törlőtorony túl közel van a csomósodásészlelési területhez, és ez ütközést fog okozni.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "A törlőtorony túl közel van a tiltott területhez, a nyomtatás során előfordulhatnak ütközések."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "A törlőtorony túl közel van a csomósodásészlelési területhez, a nyomtatás során előfordulhatnak ütközések."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "A törlőtorony részben a nyomtatható területen kívül esik, ezért nem nyomtatható ki.\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "A kiválasztott fúvóka hőmérsékletek nem kompatibilisek. Mindegyik filament fúvóka hőmérsékletének a többi filament ajánlott fúvóka hőmérsékleti tartományába kell esnie. Ellenkező esetben a fúvóka eltömődhet vagy a nyomtató megsérülhet."
@@ -13432,6 +14500,58 @@ msgstr "Ha továbbra is szeretnél nyomtatni, engedélyezheted az opciót itt: B
msgid "No extrusions under current settings."
msgstr "A jelenlegi beállításokkal nincsenek extrudálások."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Az IDEX/IQEX párhuzamos módok nem támogatják a kevert filamenteket. Állítsd ezt a tálcát elsődleges (Primary) módra."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "A(z) \"%1%\" IDEX/IQEX mód a T%2% szerszámmal nyomtat, de a tálca egyik filamentje sincs beállított szerszámon. Rendelj hozzá egy T%2% szerszámba betöltött filamentet, vagy állítsd ezt a tálcát elsődleges (Primary) módra."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "A(z) \"%1%\" IDEX/IQEX mód a T%2% szerszámmal nyomtat, de a tálca filamentjei itt vannak: %3%. Rendelj hozzá egy T%2% szerszámba betöltött filamentet, vagy állítsd ezt a tálcát elsődleges (Primary) módra."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "A tutaj nem kompatibilis a szalagos nyomtató móddal."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "A huzatvédő nem kompatibilis a szalagos nyomtató móddal."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "Szalagos nyomtatón a perem nem kompatibilis a spirál (váza) móddal. Kapcsold ki az egyiket."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "A szalag túl meredek a peremhez, ezért nem készül perem."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Perem csak döntött szalag esetén készül. Állítsd be a szalag dőlésszögét, vagy távolítsd el a perembeállítást."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "A szalagos nyomtatók csak külső és belső peremet támogatnak. Az Automatikus, az Egérfül és a Festett perem \"Csak külső perem\" típusként nyomtatódik, a \"Perem szélessége\" értékkel."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "A \"Perem-tárgy közötti rés\" elválasztja a belépőoldali peremet a tárgy belépőélétől, vagyis attól az éltől, amelyet a peremnek rögzítenie kellene. Állítsd a rést 0-ra, ha a \"Belépőoldali perem hossza\" beállítást használod."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "A \"Belépőoldali perem hossza\" a szalag mentén minden tárgy elé meghosszabbítja a peremet, és az \"Elrendezés\" nem tartja fenn ezt a helyet. Hagyj helyet a tárgyak között."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "A \"Csak belépőél\" perem szalagos nyomtatókra vonatkozik. Ezen a nyomtatón hagyományos külső peremként nyomtatódik."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Színátmenetes kevert filament van használatban, de a 'Kevert színű alréteg' ki van kapcsolva. A színátmenet nem lesz kinyomtatva."
@@ -13442,6 +14562,18 @@ msgstr "A sima Timelapse nem használható, ha a nyomtatási sorrend \"Tárgyank
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "A csomósodásészlelés nem támogatott, ha a nyomtatási sorrend \"Tárgyanként\" értékre van állítva."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "A szalagos törlőtorony nem jön létre \"Tárgyanként\" nyomtatási sorrendben; a filamentcserék nem lesznek öblítve."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "A szalagos törlőtorony engedélyezve van, de a projektben nincs törlőtorony-objektum; a filamentcserék nem lesznek öblítve. Nyisd meg a projektet az alkalmazásban a torony létrehozásához."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "A projekt több kezelt szalagos törlőtornyot tartalmaz. Töltsd újra a tálcát, vagy kapcsold ki és be a szalagos törlőtornyot az újragenerálásához."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "A pontos Z magasság és a törlőtorony egyidejű engedélyezése szeletelési hibákat okozhat."
@@ -13458,10 +14590,6 @@ msgstr "A spirál (váza) mód nem működik, ha egy objektum egynél több anya
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Bár a(z) %1% objektum önmagában belefér a nyomtatási térfogatba, az anyag zsugorodáskompenzációja miatt túllépi a maximális nyomtatási magasságot."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "A(z) %1% objektum túllépi a maximális nyomtatási magasságot."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Bár a(z) %1% objektum önmagában belefér a nyomtatási térfogatba, az utolsó rétege túllépi a maximális nyomtatási magasságot."
@@ -13469,6 +14597,10 @@ msgstr "Bár a(z) %1% objektum önmagában belefér a nyomtatási térfogatba, a
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Próbáld meg csökkenteni a modell méretét vagy módosítani a jelenlegi nyomtatási beállításokat, majd próbáld újra."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "A(z) %1% objektum túllépi a maximális nyomtatási magasságot."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "A változó rétegmagasság nem működik az organikus támaszokkal."
@@ -13628,6 +14760,10 @@ msgstr "Egy vagy több extruder adaptív Pressure Advance modellje érvénytelen
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "A filament zsugorodása nem lesz figyelembe véve, mert a használt filamentekhez megadott zsugorodási értékek nem egyeznek."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "A nyomtatás üres. A modell nem nyomtatható az aktuális nyomtatási beállításokkal."
+
msgid "Generating skirt & brim"
msgstr "Szoknya & perem generálása"
@@ -13649,6 +14785,17 @@ msgstr "G-code exportálása"
msgid "Generating G-code"
msgstr "G-code generálása"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Nem sikerült feldolgozni a(z) %1% G-code fájlt az előző 3MF fájlból."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "A szalagos törlőtorony nem tudja elnyelni a teljes öblítési mennyiséget: összesen %1% mm³ nem volt kiöblíthető (a legrosszabb réteg: %2% mm³ %3% magasságnál). A nyomtatás során színek keveredhetnek. Növeld a szalagos törlőtorony szélességét, vagy csökkentsd az öblítési mennyiségeket."
+
# AI Translated
msgid "Processing of the filename_format template failed."
msgstr "Nem sikerült feldolgozni a filename_format sablont."
@@ -14128,13 +15275,13 @@ msgid ""
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
"Az áthidalás vonalszélessége. Ha %-ban van megadva, a fúvóka átmérőjéből számítódik.\n"
-"Ajánlott nagyobb áthidalási sűrűséggel vagy áthidalási anyagáramlással együtt használni.\n"
+"Ajánlott nagyobb áthidalási sűrűséggel vagy magasabb „Áthidalás anyagáramlása” értékkel együtt használni.\n"
"\n"
"A maximális érték 100%, illetve a fúvóka átmérője.\n"
-"Ha 0-ra van állítva, a vonalszélesség megegyezik a belső tömör kitöltés szélességével."
+"Ha 0-ra van állítva, a vonalszélesség megegyezik a belső szilárd kitöltés szélességével, vastag áthidalásoknál pedig a fúvóka átmérőjével."
msgid "Internal bridge flow ratio"
msgstr "Belső híd anyagáramlása"
@@ -14419,7 +15566,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Kapcsold be ezt a lehetőséget, hogy lassabban nyomtasson azokon a területeken, ahol a falak felfelé kunkorodhattak.\n"
"Például további lassítás lép életbe éles sarkokon lévő túlnyúlások nyomtatásakor, mint amilyen a Benchy hajótestének eleje, csökkentve a több rétegen át felhalmozódó kunkorodást.\n"
@@ -14434,19 +15581,20 @@ msgstr ""
"3. Ha még mindig megjelennek a hibák, kapcsold be az extrudálási sebesség simítását (ERS) az anyagáramlás átmeneteinek további simításához.\n"
"\n"
"Megjegyzés: ha ez a beállítás be van kapcsolva, a túlnyúló falakat a rendszer túlnyúlásként kezeli, vagyis a túlnyúlási sebesség akkor is érvényes, ha a túlnyúló fal egy áthidalás része.\n"
-"Például amikor a falak 100%-ban túlnyúlnak, és alattuk nincs alátámasztó fal, a 100%-os túlnyúlási sebesség lesz alkalmazva."
+"Például amikor a falak 100%-ban túlnyúlnak, és alattuk nincs alátámasztó fal, a 75%-os túlnyúlási sebesség lesz alkalmazva, az áthidalási sebesség által korlátozva."
msgid "mm/s or %"
msgstr "mm/s vagy %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"A külsőleg látható hídextrudálások sebessége.\n"
"\n"
-"Ezen felül, ha a felkunkorodó kerületeknél való lassítás ki van kapcsolva, vagy a klasszikus túlnyúlási mód engedélyezett, akkor ez lesz azon túlnyúló falak nyomtatási sebessége is, amelyeket 13%-nál kisebb mértékben támaszt alá az alattuk lévő réteg, függetlenül attól, hogy híd vagy túlnyúlás részét képezik."
+"Ezen felül, ha a Lassítás felkunkorodó kerületeknél ki van kapcsolva, akkor ez lesz azon túlnyúló falak nyomtatási sebessége is, amelyeket 13%-nál kisebb mértékben támaszt alá az alattuk lévő réteg, függetlenül attól, hogy híd vagy túlnyúlás részét képezik."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "A belső hidak sebessége. Ha az érték százalékban van megadva, a bridge_speed alapján lesz kiszámítva. Az alapértelmezett érték 150%."
@@ -14454,12 +15602,56 @@ msgstr "A belső hidak sebessége. Ha az érték százalékban van megadva, a br
msgid "This is the distance from the model to the outermost brim line."
msgstr "A modell és a legkülső peremvonal közötti távolság"
+# AI Translated
+msgid "Leading brim length"
+msgstr "Belépőoldali perem hossza"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Csak szalagos nyomtatókhoz. A szalag mentén a tárgy ELÉ hosszabbítja a peremet, az érintkezési felület minden lejtő felé néző élén — a tárgy szalaggal való első érintkezésénél és minden később lerakódó szigetnél is. Ez a kötény még azelőtt kerül a szalagra, hogy a tárgy odaérne, így a belépőél már lerögzített anyagba kapaszkodhat.\n"
+"\n"
+"A szalag felületén mérve, a \"Perem szélessége\" értékéhez hozzáadva: a perem a tárgy előtt \"Perem-tárgy közötti rés\" + \"Belépőoldali perem hossza\" + \"Perem szélessége\" távolságig ér. Állítsd a \"Perem-tárgy közötti rés\" értékét 0-ra, különben a kötény nem éri el a tárgyat, amelyet rögzítenie kellene.\n"
+"\n"
+"Döntött szalagon minden réteg a perem egy csíkját rakja le, így a keletkező peremlemez vastagságát nem a rétegmagasság, hanem az anyagáramlás határozza meg. A finomhangolásához használd a \"Perem anyagáramlása\" beállítást.\n"
+"\n"
+"A kikapcsoláshoz állítsd 0-ra."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Extra perem szélessége"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Csak szalagos nyomtatókhoz. OLDALIRÁNYBAN, a szalagon keresztben szélesíti a peremet, anélkül hogy a tárgy elé vagy mögé tovább nyújtaná. Akkor használd, ha egy tárgynak a hossza mentén több tapadásra van szüksége, mint amennyit a \"Perem szélessége\" önmagában biztosít.\n"
+"\n"
+"A szalag felületén mérve, a \"Perem szélessége\" értékéhez hozzáadva: a perem a tárgy mindkét oldalán \"Perem-tárgy közötti rés\" + \"Perem szélessége\" + \"Extra perem szélessége\" távolságig ér. Ha inkább a tárgy elé szeretnéd meghosszabbítani a peremet, használd a \"Belépőoldali perem hossza\" beállítást.\n"
+"\n"
+"A kikapcsoláshoz állítsd 0-ra."
+
msgid "Brim type"
msgstr "Perem típusa"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Ez a modellek külső és/vagy belső oldalán létrehozott perem generálását szabályozza. Az Automatikus azt jelenti, hogy a perem szélessége automatikusan van elemezve és kiszámítva."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Csak belépőél"
+
msgid "Brim-object gap"
msgstr "Perem-tárgy közötti rés"
@@ -14757,6 +15949,9 @@ msgstr ""
"2. Korlátozott szűrés - erősen lejtős felületeken hoz létre belső hidakat, miközben elkerüli a felesleges hidakat. Ez a legtöbb nehéz modellnél jól működik\n"
"3. Nincs szűrés - minden lehetséges belső túlnyúlásnál belső hidat hoz létre. Ez hasznos lehet erősen lejtős felső felületű modelleknél, de a legtöbb esetben túl sok szükségtelen hidat eredményez."
+msgid "Filter"
+msgstr "Szűrő"
+
msgid "Limited filtering"
msgstr "Korlátozott szűrés"
@@ -14774,8 +15969,8 @@ msgid "End G-code"
msgstr "Befejező G-code"
# AI Translated
-msgid "Add end G-Code when finishing the entire print."
-msgstr "Befejező G-code az egész nyomtatás befejezésekor"
+msgid "Add end G-code when finishing the entire print."
+msgstr "Befejező G-code az egész nyomtatás befejezésekor."
# AI Translated
msgid "Between Object G-code"
@@ -14967,8 +16162,9 @@ msgstr "A legkülső látható fal sebessége. A jobb minőség érdekében ez l
msgid "Small perimeters"
msgstr "Kis peremek"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Ez a külön beállítás a <= small_perimeter_threshold sugarú kerületek sebességét befolyásolja (általában furatoknál). Ha százalékban van megadva (például: 80%), a fenti külső fali sebesség alapján lesz kiszámítva. Az automatikus módhoz állítsd 0-ra."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Ez a külön beállítás a <= small_perimeter_threshold sugarú kerületek sebességét befolyásolja (általában furatoknál). Ha százalékban van megadva (például: 80%), a fenti külső fali sebesség alapján lesz kiszámítva."
msgid "Small perimeters threshold"
msgstr "Kis kerületek küszöbértéke"
@@ -14981,8 +16177,8 @@ msgid "Small support perimeters"
msgstr "Kis támaszfalak"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Ugyanaz, mint a \"Kis peremek\", de a támaszokra vonatkozik. Ez a külön beállítás a támasz sebességét befolyásolja a `small_support_perimeter_threshold` értéknél kisebb vagy azzal egyenlő területeken. Ha százalékban van megadva (például: 80%), a fenti támasz- vagy támasz érintkező felület sebességéből számítódik. Automatikus működéshez állítsd nullára."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Ugyanaz, mint a „Kis peremek”, de a támaszokra vonatkozik. Ez a külön beállítás a támasz sebességét befolyásolja a `small_support_perimeter_threshold` értéknél kisebb vagy azzal egyenlő területeken. Ha százalékban van megadva (például: 80%), a fenti támasz- vagy támasz érintkező felület sebességéből számítódik."
# AI Translated
msgid "Small support perimeters threshold"
@@ -14995,12 +16191,13 @@ msgstr "Ez állítja be a kis támaszfalak hosszának küszöbértékét. Az ala
msgid "Walls printing order"
msgstr "Falak nyomtatási sorrendje"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
@@ -15652,9 +16849,6 @@ msgstr "A filament ára, kizárólag statisztikai célokra."
msgid "money/kg"
msgstr "pénz/kg"
-msgid "Vendor"
-msgstr "Gyártó"
-
msgid "Vendor of filament. For show only."
msgstr "Filamentgyártó."
@@ -15728,6 +16922,92 @@ msgstr "Többvonalas kitöltés"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Több vonal használata a kitöltési mintához, ha azt a kitöltési minta támogatja."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Adaptív sűrűség (kísérleti)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"A tárgy belsejében fokozatosan változtatja a Gyroid és TPMS kitöltés sűrűségét: a cellák a tárgy felületétől a középpontja felé haladva nőnek. A felületen a \"Kitöltés sűrűsége\", a középpontban a belső sűrűség érvényes.\n"
+"A Távolságalapú torzítás, a Sima átmenet és a Lépcsős héjak a legközelebbi felülettől – a felsőt és az alsót is beleértve – mért távolságot követik, a belső sűrűség pedig a felülettől legtávolabbi pontban érvényes:\n"
+" - Távolságalapú torzítás: egyetlen összefüggő mintázat, amely ott nyúlik és nyíródik, ahol a távolság irányonként eltérően változik, például lapos és hosszú tárgyaknál.\n"
+" - Sima átmenet: a szomszédos sűrűségek mintázatai egymásba olvadnak, a találkozásuknál kis hurkokkal.\n"
+" - Lépcsős héjak: a szabályos mintázat héjai, egymástól körülbelül 1,5-szeres sűrűségkülönbséggel, vonalaik a héjhatárok mentén összekapcsolva.\n"
+" - Lebenyek: a tárgy 3D alakját követi, a tetejét és az alját is beleértve. Minden lebeny – egy keskenyebb nyakkal a többihez kapcsolódó rész – a saját középpontja felé változó sűrűségű.\n"
+" - Normál Z, Y vagy X: a tárgy adott tengelyre merőleges metszeteit követi, így a sűrűség e tengely mentén nem változik."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Távolságalapú torzítás"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Sima átmenet"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Lépcsős héjak"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Lebenyek"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Normál Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Normál Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Normál X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Belső sűrűség"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Az adaptív kitöltés sűrűsége a tárgy középpontjában."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Adaptív gradiens"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Hogyan változik a sűrűség a tárgy felületétől a középpontjáig.\n"
+"Lineáris: a sűrűség egyenletes ütemben változik.\n"
+"Négyzetes: a sűrűség a felület közelében a \"Kitöltés sűrűsége\" értékéhez közel marad, és a középpont felé gyorsabban változik.\n"
+"Exponenciális: a sűrűség közvetlenül a felület alatt gyorsan változik, majd a középpont felé kiegyenlítődik."
+
+# AI Translated
+msgid "Linear"
+msgstr "Lineáris"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Négyzetes"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Exponenciális"
+
msgid "Z-buckling bias optimization (experimental)"
msgstr "Z-kihajlási torzítás optimalizálása (kísérleti)"
@@ -15879,14 +17159,16 @@ msgstr "Kezdő rétegmagasság"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Kezdőréteg magassága. A vastagabb kezdőréteg javíthatja a tárgy asztalhoz való tapadását"
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "A kezdőréteg nyomtatási sebessége a szilárd kitöltési rész kivételével"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "A kezdőréteg falainak és peremének sebessége."
msgid "First layer infill"
msgstr "Kezdőréteg kitöltése"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "A kezdőréteg szilárd kitöltési részének sebessége"
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "A kezdőréteg sebessége a falak és a perem kivételével, például a kitöltés, a hézagok kitöltése és a támasz."
msgid "First layer travel speed"
msgstr "Első réteg mozgási sebessége"
@@ -16356,6 +17638,10 @@ msgstr "G-code változat"
msgid "What kind of G-code the printer is compatible with."
msgstr "Milyen G-code-dal kompatibilis a nyomtató."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (régi)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16599,16 +17885,18 @@ msgstr "A belső kitöltés vonalszélessége. Ha százalékban adod meg, a szel
msgid "Infill/wall overlap"
msgstr "Kitöltés/fal átfedés"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "A jobb kötés érdekében kissé megnöveli a kitöltési területet, hogy az átfedje a falat. A százalékos érték a kitöltés vonalszélességéhez viszonyított. Körülbelül 10-15%-os értékkel csökkenthető a túlextrudálás és az érdes felső felületet okozó anyagfelhalmozódás."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "A jobb kötés érdekében kissé megnöveli a kitöltési területet, hogy az átfedje a falat. A százalékos érték a belső fal vonalszélességéhez viszonyított. Körülbelül 10-15%-os értékkel csökkenthető a túlextrudálás és az érdes felső felületet okozó anyagfelhalmozódás."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Felső/alsó tömör kitöltés és fal átfedése"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "A jobb kötés és a felső kitöltés falhoz csatlakozásánál megjelenő apró lyukak csökkentése érdekében kissé megnöveli a felső tömör kitöltés területét, hogy az átfedje a falat. Jó kiindulási érték a 25-30%. A százalékos érték a kitöltés vonalszélességéhez viszonyított."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "A jobb kötés és a felső kitöltés falhoz csatlakozásánál megjelenő apró lyukak csökkentése érdekében kissé megnöveli a felső tömör kitöltés területét, hogy az átfedje a falat. Jó kiindulási érték a 25-30%. A százalékos érték a belső fal vonalszélességéhez viszonyított."
msgid "This is the speed for internal sparse infill."
msgstr "A belső kitöltés sebessége"
@@ -16634,8 +17922,9 @@ msgstr "Szegmentált régió maximális szélessége. A 0 érték letiltja ezt a
msgid "Interlocking depth of a segmented region"
msgstr "Szegmentált régió összekapcsolódási mélysége"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "A szegmentált régió összekapcsolódási mélysége. Figyelmen kívül marad, ha a \"mmu_segmented_region_max_width\" értéke nulla, vagy ha a \"mmu_segmented_region_interlocking_depth\" nagyobb, mint a \"mmu_segmented_region_max_width\". A 0 letiltja ezt a funkciót."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "A szegmentált régió összekapcsolódási mélysége. Minden második rétegen a szegmentált régiót ez a mélység korlátozza. Figyelmen kívül marad, ha az „interlocking_beam” engedélyezve van. A 0 érték letiltja ezt a funkciót."
msgid "Use beam interlocking"
msgstr "Gerendaszerű kapcsolódás használata"
@@ -16737,13 +18026,14 @@ msgstr "Z-réteg kontúrozás engedélyezése (más néven Z-réteg élsimítás
msgid "Minimize wall height angle"
msgstr "Falmagasság szög minimalizálása"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Csökkentsd a felső felület kerületének magasságát, hogy megfeleljen a modell élmagasságának.\n"
-"Befolyásolja az ennél a szögnél (foknál) kisebb lejtésű kerületeket.\n"
+"Befolyásolja az ennél a szögnél (foknál) nagyobb lejtésű kerületeket.\n"
"Az ésszerű érték 35. A letiltáshoz állítsd 0-ra."
msgid "Don't alternate fill direction"
@@ -16824,17 +18114,21 @@ msgstr "Maximális sebesség Z"
msgid "Maximum speed E"
msgstr "Maximális sebesség E"
-msgid "Maximum X speed"
-msgstr "Maximális X sebesség"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Az X tengely maximális sebessége"
-msgid "Maximum Y speed"
-msgstr "Maximális Y sebesség"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Az Y tengely maximális sebessége"
-msgid "Maximum Z speed"
-msgstr "Maximális Z sebesség"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "A Z tengely maximális sebessége"
-msgid "Maximum E speed"
-msgstr "Maximális E sebesség"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Az E tengely maximális sebessége"
msgid "Maximum acceleration X"
msgstr "Maximális gyorsulás X"
@@ -17359,8 +18653,8 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "A beállítás által hivatkozott bővítményképességek, name;uuid;capability formában tárolva."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
-msgstr "A szeletelési folyamat minden lépésénél meghívott Python bővítmény(ek), amelyek beolvassák és módosítják a köztes szeletelési adatokat, beleértve egy záró G-code utófeldolgozási lépést is. Kutatási/kísérleti célra."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgstr "A szeletelési folyamat minden lépésénél meghívott Python bővítmények, amelyek beolvassák és módosítják a köztes szeletelési adatokat, beleértve egy záró G-code utófeldolgozási lépést is. Kutatási/kísérleti célra."
msgid "Printer type"
msgstr "Nyomtató típusa"
@@ -17726,7 +19020,8 @@ msgstr "Átlapolt illesztés a belső falaknál"
msgid "Use scarf joint for inner walls as well."
msgstr "Átlapolt illesztés használata a belső falaknál is."
-msgid "Role base wipe speed"
+# AI Translated
+msgid "Role based wipe speed"
msgstr "Szerepalapú törlési sebesség"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -17816,16 +19111,15 @@ msgstr "Az első réteg után a szoknya/huzatvédő hurkait egy falra korlátozz
msgid "Draft shield"
msgstr "Huzatvédő"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"A huzatvédő segíthet megelőzni, hogy a légmozgás miatt az ABS- vagy ASA-nyomatok felkunkorodjanak és leváljanak az asztalról. Általában csak nyitott vázas, azaz burkolat nélküli nyomtatóknál van rá szükség.\n"
"\n"
-"Engedélyezve = a szoknya olyan magas lesz, mint a legmagasabb nyomtatott objektum. Ellenkező esetben a \"Szoknya magassága\" érték kerül használatra.\n"
-"Megjegyzés: Aktív huzatvédő mellett a szoknya az objektumtól mért szoknyatávolságban lesz nyomtatva. Ezért ha perem is aktív, metszheti azt. Ennek elkerüléséhez növeld a szoknyatávolság értékét.\n"
+"Engedélyezve = a szoknya olyan magas lesz, mint a legmagasabb nyomtatott objektum. Ellenkező esetben a „Szoknya magassága” érték kerül használatra."
msgid "Enabled"
msgstr "Engedélyezve"
@@ -17997,6 +19291,130 @@ msgstr "Egyextruder Többanyag"
msgid "Use single nozzle to print multi filament."
msgstr "Egyetlen fúvóka használata többféle filament nyomtatásához."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "IDEX/IQEX nyomtató"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Párhuzamos nyomtatás engedélyezése több független kocsival rendelkező nyomtatókhoz (IDEX, IQEX és hasonlók)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Firmware által kezelt zónák"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Ha engedélyezve van, a szeletelő úgy állítja elő a G-code-ot, hogy az elsődleges zóna tartalma az asztal origójára (0,0) van középre igazítva. A másolatok/tükörképek elhelyezése az egyes fizikai zónapozíciókba a nyomtató firmware-ének feladata. Csak olyan nyomtatókon engedélyezd, amelyek firmware-e másolat/tükör módban saját zónaeltolásokat alkalmaz (pl. RepRapFirmware IDEX duplikációs mód). Elsődleges (Primary) módban nincs hatása."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Portálok száma"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "A független Y-tengelyes portálok száma. 1 IDEX/egysínes IQEX esetén. 2 kétportálos rendszereknél (az asztalt sorokra osztja)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Szerszámok portálonként"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "A független szerszámfejek száma portálonként az X tengely mentén. IDEX típusnál 2."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "0. szerszám helyzete"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "A T0 szerszám (0-s index) fizikai helyzete az asztalon. Meghatározza, hogyan rendelődnek a szerszámindexek az asztal zónáihoz. Egyportálos elrendezésnél (IDEX) csak a bal/jobb számít; kétportálos elrendezésnél (IQEX) mind a négy sarok választható (első = kisebb Y / a kezelő felőli oldal, hátsó = nagyobb Y / a gép hátulja)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Fúvóka szabad távolsága X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "A fúvóka és a kocsi ütközési oldali széle közötti távolság (mm) X irányban. Az ütközés elleni kizárási sáv szélességének kiszámításához használatos minden X irányú határon."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Fúvóka szabad távolsága Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "A fúvóka és a kocsi ütközési oldali széle közötti távolság (mm) Y irányban. Az ütközés elleni kizárási sáv szélességének kiszámításához használatos minden Y irányú határon."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Biztonsági ráhagyás"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Nem blokkoló, tájékoztató jellegű szabad sáv (mm), amely az elsődleges zónán belül, minden kocsihatárnál megjelenik. Az ebbe a sávba helyezett tárgyak ettől még szeletelhetők; ez csak vizuális emlékeztető, hogy a zóna szélén hagyj több szabad helyet."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Megjelenítési téma"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Színtéma az IDEX/IQEX asztalzónák megjelenítéséhez. Szükség esetén válassz színvak-barát témát."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranópia / Protanópia (vörös-zöld)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanópia (kék-sárga)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Nagy kontraszt"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "IDEX/IQEX nyomtatási mód"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Az aktív IDEX/IQEX párhuzamos nyomtatási mód neve, vagy \"primary\" az egykocsis nyomtatáshoz. Ehhez a nyomtatóbeállításban engedélyezni kell az \"IDEX/IQEX nyomtató\" opciót (Nyomtató → Többanyagú nyomtatás → IDEX/IQEX konfiguráció)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "IDEX/IQEX fej–filament térkép"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Tálcánkénti felülbírálás, amely a fizikai fejeket filamenthelyekhez rendeli (1-től számozva). Üresen minden fej az első olyan filamentet használja, amelyet a nyomtató fizikai extrudertérképe hozzá irányít."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "IDEX/IQEX módnevek"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "A felhasználó által meghatározott IDEX/IQEX párhuzamos nyomtatási módok megjelenített nevei."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "IDEX/IQEX mód aktív szerszámai"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Szerszámszerepek hozzárendelése módonként. Formátum: \"idx:P,idx:C,idx:M\", ahol P=Primary (elsődleges), C=Copy (másolat), M=Mirror (tükör) (pl. \"0:P,1:C,2:M,3:M\"). A nyomtatóbeállítás IDEX/IQEX módszerkesztője kezeli."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "IDEX/IQEX mód G-code-ok"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "A nyomtatás kezdetén módonként beillesztendő G-code vagy makróhívás."
+
msgid "Manual Filament Change"
msgstr "Kézi filamentcsere"
@@ -18379,6 +19797,167 @@ msgstr "Átfedési küszöbérték"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Ha a küszöbszög nulla, támasz azoknál a túlnyúlásoknál jön létre, amelyek átfedése a küszöbérték alatt van. Minél kisebb ez az érték, annál meredekebb túlnyúlás nyomtatható támasz nélkül."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Asztal dőlése X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Az asztal dőlésszöge az X tengely mentén. Pozitív érték esetén az asztal úgy dől, hogy a +X oldal kerül magasabbra, így a gravitáció a -X irány felé tolódik, és a +X oldalon nőnek a túlnyúlások. Negatív érték esetén a -X oldal kerül magasabbra. 0 értéknél nincs X tengely menti dőlés. Szalagos nyomtató módban ez automatikusan a szalag dőlésszögéhez igazodik."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Asztal dőlése Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Az asztal dőlésszöge az Y tengely mentén. Pozitív érték esetén az asztal úgy dől, hogy a +Y oldal kerül magasabbra, így a gravitáció a -Y irány felé tolódik, és a +Y oldalon nőnek a túlnyúlások. Negatív érték esetén a -Y oldal kerül magasabbra. 0 értéknél nincs Y tengely menti dőlés."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Szalagos nyomtatás engedélyezése"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Szalagos nyomtató mód engedélyezése. A szalagos nyomtatók szállítószalagot használnak nyomtatási felületként, amely szögben (jellemzően 45 fokban) meg van döntve. A szeletelő elforgatja a szeletelési síkot, és átalakítja a G-code koordinátákat a döntött nyomtatási felülethez."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Végtelen Y tengely"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Végtelen Y tengely engedélyezése szalagos nyomtatókhoz. Ha engedélyezve van, a nyomtatási térfogat Y irányú korlátja gyakorlatilag megszűnik, így tetszőleges hosszúságú tárgyak nyomtathatók a szalag irányában."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Szalag dőlési tengelye"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Az a tengely, amely körül a háló szeletelés előtt elfordul. Ez a szalagos nyomtató dőlése: izometrikus (torzításmentes) forgatás, amely az asztal megjelenítését és a támaszok gravitációs dőlését is meghatározza, és amelyet a G-code visszatranszformáció megfordít a gépi koordináta-rendszerbe történő nyírás/skálázás és tengelyleképezés előtt. Jellemzően X a portál dőlési tengelye (a szalag Y irányban halad)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Szalag dőlésszöge"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "A szalag felületének dőlésszöge fokban. A legtöbb szalagos nyomtató 45°-ot használ. Pozitív értéknél a forgatás a pozitív dőlési tengely irányába nézve az óramutató járásával ellentétes; az érték nagysága egyben a szalag fizikai dőlése is, amelyet az asztal megjelenítése és a támaszok gravitációja használ."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Gépi koordináta-rendszer dőlésének leválasztása"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Szakértői felülbírálás: a gépi koordináta-rendszer (G-code nyírás/skálázás) dőlésszöge a szeletelés előtti forgatási szögtől függetlenül állítható be. Ha ki van kapcsolva, a gépi koordináta-rendszer transzformációja a szalag dőlésszögéből származik, így egyetlen szög vezérli mindkét lépést. Csak akkor engedélyezd, ha olyan gépet kell kompenzálni, amelynek fizikai portáldőlése eltér a szeletelési forgatástól."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Gépi koordináta-rendszer dőlésszöge"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Dőlésszög (fok), amelyből a G-code-ra alkalmazott gépi koordináta-rendszerbeli nyírás (cot) és skálázás (1/|sin|) származik. Csak akkor használatos, ha a 'Gépi koordináta-rendszer dőlésének leválasztása' engedélyezve van; egyébként a szalag dőlésszöge érvényes."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "Fordított X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Fordított Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Fordított Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "G-code tengelyleképezés X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Melyik szeletelési tengely felel meg a gép X tengelyének a G-code kimenetben. A szeletelés UTÁN, a G-code generálása során alkalmazódik."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "G-code tengelyleképezés Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Melyik szeletelési tengely felel meg a gép Y tengelyének a G-code kimenetben. A szeletelés UTÁN, a G-code generálása során alkalmazódik."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "G-code tengelyleképezés Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Melyik szeletelési tengely felel meg a gép Z tengelyének a G-code kimenetben. A szeletelés UTÁN, a G-code generálása során alkalmazódik."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Támaszpadló Z-eltolása"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Felfelé vagy lefelé tolja a kiszámított szalagpadlót (mm). A negatív értékek lejjebb viszik a padlót, így több támasz marad meg. A szalagpadló-képlet hibáinak diagnosztizálására használd."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Szalagos törlőtorony engedélyezése"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "A törlőtorony szalagos nyomtatókhoz készült helyettesítője. Szalagos nyomtatón engedélyezve a nyomtatott tárgyak mellett automatikusan létrejön egy öblítőhasáb, és a filamentcserék öblítése ebbe kerül (a hagyományos törlőtorony szalagos nyomtatókon nem használható, mert a G-code-ja megkerüli a szalagtranszformációt). Csak szalagos nyomtatókon érhető el."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Szalagos törlőtorony szélessége"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Az öblítőhasáb szélessége (gépi X, a szalagon keresztben), amely szalagos nyomtatókon automatikusan létrejön, ha a szalagos törlőtorony engedélyezve van és több filament van használatban. A filamentcserék öblítése a hagyományos törlőtorony helyett ennek a hasábnak az extrudálásaiba kerül. A magassága automatikusan számítódik a rétegenkénti legrosszabb esetbeli öblítési térfogatból: a szélesebb hasáb alacsonyabb lesz."
+
msgid "Tree support branch angle"
msgstr "Fa típusú támasz ágainak szöge"
@@ -18564,13 +20143,11 @@ msgstr "Különálló kitöltések"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
"Az egyes tárgyak belső kitöltését önmagukra igazítja, mintha külön lennének szeletelve, nem pedig a teljes összeállításra. Az egymáshoz érő vagy egymást átfedő tárgyak egy testként kezelődnek, és közös középpontot kapnak; a különálló tárgyak (vagy önálló 3D objektumok) mindegyike sajátot.\n"
"Akkor hasznos, ha egy összeállítás több objektumot fog össze, és mindegyiknek egységes, önmagára igazított kitöltést kell megtartania.\n"
-"A vonalas és rácsos mintázatokra, valamint a forgatási sablont használó kitöltésekre van hatással.\n"
-"A globális koordinátákhoz kötött mintázatokat (Gyroid, Méhsejt, TPMS, ...) nem érinti."
+"Az Adaptív kocka és a Támasz kocka mindig önmagára igazítja az egyes tárgyakat, a Villám kitöltés pedig a teljes objektumra jön létre, így arra nincs hatással."
# AI Translated
msgid "Center surface pattern on"
@@ -18703,43 +20280,46 @@ msgstr "A törlőtorony stabilizálására szolgáló kúp csúcsszöge. A nagyo
msgid "Maximum wipe tower print speed"
msgstr "A törlőtorony maximális nyomtatási sebessége"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
-"A maximális nyomtatási sebesség öblítéskor a törlőtoronyban, valamint a törlőtorony ritka rétegeinek nyomtatásakor. Öblítés közben, ha a kitöltés sebessége vagy a filament maximális térfogati sebességéből számolt sebesség alacsonyabb, a kisebbik értéket használja.\n"
+"A maximális nyomtatási sebesség öblítéskor a törlőtoronyban, valamint a törlőtorony ritka rétegeinek nyomtatásakor. Öblítés közben, ha a kitöltés sebessége vagy a filament maximális volumetrikus sebességéből számolt sebesség alacsonyabb, a kisebbik értéket használja.\n"
"\n"
-"A ritka rétegek nyomtatásakor, ha a belső kerület sebessége vagy a filament maximális térfogati sebességéből számolt sebesség alacsonyabb, akkor a kisebbik érték lesz használva.\n"
+"A ritka rétegek nyomtatásakor, ha a kitöltés sebessége vagy a filament maximális volumetrikus sebességéből számolt sebesség alacsonyabb, akkor a kisebbik érték lesz használva.\n"
"\n"
"Ennek a sebességnek a növelése befolyásolhatja a torony stabilitását, és növelheti azt az erőt is, amellyel a fúvóka nekiütközik a törlőtoronyon esetleg kialakuló anyagcsomóknak.\n"
"\n"
"Mielőtt ezt a paramétert a 90 mm/s alapértelmezett érték fölé emeled, győződj meg arról, hogy a nyomtatód megbízhatóan tud hidalni nagyobb sebességen is, és hogy a szerszámváltás közbeni szivárgás megfelelően szabályozott.\n"
"\n"
-"A törlőtorony külső kerületeinél ettől a beállítástól függetlenül a belső kerületi sebesség lesz használva."
+"A törlőtorony külső kerületeinél a belső kerületi sebesség lesz használva, amelyet ez a beállítás szintén korlátoz."
msgid "Wall type"
msgstr "Fal típusa"
+# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"A törlőtorony külső falának típusa.\n"
-"1. Téglalap: Az alapértelmezett faltípus, rögzített szélességű és magasságú téglalap.\n"
+"1. Téglalap: Rögzített szélességű és magasságú téglalap.\n"
"2. Kúp: Alul lekerekített kúp, amely segít stabilizálni a törlőtoronyt.\n"
-"3. Borda: Négy bordát ad a torony falához a nagyobb stabilitás érdekében."
+"3. Borda: Az alapértelmezett faltípus, amely négy bordát ad a torony falához a nagyobb stabilitás érdekében."
+# AI Translated
msgid "Rectangle"
-msgstr "Négyzet"
+msgstr "Téglalap"
msgid "Rib"
msgstr "Borda"
@@ -18804,6 +20384,14 @@ msgstr "A filamentcsere utáni öblítés az objektumok támaszain belül tört
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Ezt az objektumot használja a fúvóka öblítésére filamentcsere után, így filamentet és nyomtatási időt takarít meg. Emiatt az objektum színei keverednek. Ez a beállítás csak bekapcsolt törlőtoronnyal működik."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Szalagos törlőtorony-objektum"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Az automatikusan létrehozott szalagos öblítőhasábot jelöli. Automatikusan kezelt; ne állítsd be kézzel."
+
msgid "Maximal bridging distance"
msgstr "Maximális áthidalási távolság"
@@ -18819,8 +20407,9 @@ msgstr "A törlőtorony öblítési vonalainak távolsága."
msgid "Extra flow for purging"
msgstr "Többletáramlás az öblítéshez"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "A törlőtorony öblítési vonalaihoz használt többletáramlás. Ettől az öblítési vonalak a szokásosnál vastagabbak vagy vékonyabbak lesznek. A távolság automatikusan igazodik."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "A törlőtorony öblítési vonalaihoz használt többletáramlás. Ettől az öblítési vonalak a szokásosnál vastagabbak lesznek. A távolság automatikusan igazodik."
msgid "Idle temperature"
msgstr "Üresjárati hőmérséklet"
@@ -18942,14 +20531,15 @@ msgstr "A vékony elemek minimális vastagsága. Az ennél vékonyabb modellelem
msgid "Minimum wall length"
msgstr "Minimális falhossz"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Állítsd ezt az értéket úgy, hogy megakadályozza a rövid, nem zárt falak kinyomtatását, amelyek növelhetik a nyomtatási időt. A nagyobb értékek több és hosszabb falat távolítanak el.\n"
+"Állítsd ezt az értéket úgy, hogy megakadályozza a rövid, nem zárt falak kinyomtatását, amelyek növelhetik a nyomtatási időt. Az érték a falszélesség többszöröse. A nagyobb értékek több és hosszabb falat távolítanak el.\n"
"\n"
-"MEGJEGYZÉS: Az alsó és felső felületeket ez az érték nem érinti, hogy elkerülhetők legyenek a modell külsején megjelenő látható hézagok. A lentebbi Speciális beállításokban az 'Egyfalas küszöbérték' módosításával állíthatod be annak érzékenységét, hogy mi számít felső felületnek. Az 'Egyfalas küszöbérték' csak akkor látható, ha ez a beállítás az alapértelmezett 0.5 fölé van állítva, vagy ha az egyfalú felső felületek engedélyezve vannak."
+"MEGJEGYZÉS: Az alsó és felső felületeket ez az érték nem érinti, hogy elkerülhetők legyenek a modell külsején megjelenő látható hézagok. Az alábbi „Falak és felületek” beállításai között az „Egyfalas küszöbérték” módosításával állíthatod be annak érzékenységét, hogy mi számít felső felületnek. Az „Egyfalas küszöbérték” csak akkor látható, ha ez a beállítás az alapértelmezett 0.5 fölé van állítva, vagy ha az egyfalú felső felületek engedélyezve vannak."
msgid "Maximum wall resolution"
msgstr "Maximális falfelbontás"
@@ -18961,8 +20551,8 @@ msgid "Maximum wall deviation"
msgstr "Maximális fal eltérés"
# AI Translated
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "A megengedett legnagyobb eltérés a „Maximális falfelbontás” beállítás felbontásának csökkentésekor. Ha ezt növeled, a nyomtatás kevésbé lesz pontos, de a G-code kisebb lesz. A „maximális faleltérés” korlátozza a „maximális falfelbontást”, így ha a kettő ütközik, a „Maximális faleltérés” élvez elsőbbséget."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "A megengedett legnagyobb eltérés a „Maximális falfelbontás” beállítás felbontásának csökkentésekor. Ha ezt növeled, a nyomtatás kevésbé lesz pontos, de a G-code kisebb lesz. A „Maximális fal eltérés” korlátozza a „Maximális falfelbontást”, így ha a kettő ütközik, a „Maximális fal eltérés” élvez elsőbbséget."
msgid "First layer minimum wall width"
msgstr "Első réteg minimális falszélessége"
@@ -19056,8 +20646,11 @@ msgstr "Az áthidalás vonalszélessége nem haladhatja meg a fúvóka átmérő
msgid "too large line width "
msgstr "túl nagy vonalszélesség "
-msgid " not in range "
-msgstr " nincs a tartományban "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% nincs a [%2%, %3%] tartományban"
msgid "This exports the project as a 3MF file."
msgstr "Projekt exportálása 3MF formátumban."
@@ -19208,6 +20801,15 @@ msgstr "Tájolási beállítások"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Tájolási beállítások: 0-letiltás, 1-engedélyezés, egyéb-automatikus"
+# AI Translated
+msgid "Repair"
+msgstr "Javítás"
+
+# AI Translated
+# Needs human review: Quotes the Fix Model label as „Modell javítása” (as in the tip text); the catalog's own msgstr for the "Fix Model" menu entry is "Model javítása" (single l, probably a typo), so the tooltip and the menu label differ until that is fixed.
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Kijavítja a modellek hálóit úgy, ahogy a „Modell javítása” is: lezárja a lyukakat és a repedéseket, kifelé orientálja a hálót, és eltávolítja az önmetszéseket."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Az Z tengely körüli forgatási szög fokban."
@@ -19316,6 +20918,12 @@ msgstr "Kimeneti mappa"
msgid "This is the output directory for exported files."
msgstr "Az exportált fájlok kimeneti mappája."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Hibakeresés szintje"
@@ -19489,6 +21097,56 @@ msgstr "Van egyextruderes MM előkészítés"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Használatban vannak-e ebben a nyomtatásban az extra többanyagú előkészítési területek?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Kezdeti extruder támasz nélkül"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "A támasz nélküli nyomtatáshoz elsőként használt extruder nullától indexelt sorszáma. Ugyanaz, mint az initial_no_support_tool."
+
+# AI Translated
+# Needs human review: 'Head wrap' is rendered as nozzle/head wrapping (bevonódás), matching the nozzle-wrapping detection strings; check the meaning against the placeholder's real behavior.
+msgid "In head wrap detect zone"
+msgstr "A fejbevonódás-észlelési zónában"
+
+# AI Translated
+# Needs human review: 'Head wrap zone' rendered as the nozzle-wrapping zone (bevonódás); check the meaning against the placeholder's real behavior.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Megadja, hogy az első réteg átfedésben van-e a fejbevonódás zónájával."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Aktuális asztaltípus"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Az aktuálisan kiválasztott asztaltípus neve (pl. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "IDEX/IQEX aktív mód"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Az ezen a tálcán aktív IDEX/IQEX párhuzamos nyomtatási mód neve (pl. 'primary', 'mirror', 'copy'). Üres karakterlánc, ha az IDEX/IQEX nincs engedélyezve."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "IDEX/IQEX aktív mód indexe"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Az aktív IDEX/IQEX párhuzamos nyomtatási mód nullától indexelt sorszáma az imex_mode_names listában."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "IDEX/IQEX aktív mód G-code-ja"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Az aktív IDEX/IQEX párhuzamos nyomtatási mód nyers G-code sablonja a helyőrzők kiértékelése után. Az itt definiált globális változók átkerülnek a machine_start_gcode-ba."
+
msgid "Volume per extruder"
msgstr "Térfogat extruderenként"
@@ -19634,6 +21292,18 @@ msgstr "Bemeneti fájlnév kiterjesztés nélkül"
msgid "Source filename of the first object, without extension."
msgstr "Az első objektum forrásfájlneve kiterjesztés nélkül."
+# AI Translated
+msgid "Full input filename"
+msgstr "Teljes bemeneti fájlnév"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Az első objektum forrásfájlneve."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "A szeletelt tálca neve."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "A vektor két elemet tartalmaz: a pont X és Y koordinátáját. Az értékek mm-ben vannak."
@@ -19664,6 +21334,58 @@ msgstr "Az asztal befoglaló téglalapjának jobb felső sarka"
msgid "Size of the print bed bounding box"
msgstr "Az asztal befoglaló téglalapjának mérete"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Az első réteg középpontja törlőtorony nélkül"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Az első réteg magassága."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Az asztalhőmérsékletek vektora minden extruderhez/filamenthez."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Az első réteg asztalhőmérsékleteinek vektora minden extruderhez/filamenthez. Ugyanazt az értéket adja, mint a first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Első réteg asztalhőmérséklete (kezdeti extruder)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "A kezdeti extruder első rétegének asztalhőmérséklete. Ugyanaz, mint a bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "A kamrahőmérsékletek vektora minden extruderhez/filamenthez."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "A minimális kamrahőmérsékletek vektora minden extruderhez/filamenthez."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Kamra összesített hőmérséklete"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "A kamra összesített hőmérséklete. Ez az érték a használt extruderek/filamentek közül a legmagasabb kamrahőmérséklet."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Az első réteg asztalhőmérsékleteinek vektora minden extruderhez/filamenthez. Ugyanazt az értéket adja, mint a bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Első réteg hőmérséklete"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Az első réteg hőmérsékleteinek vektora minden extruderhez/filamenthez."
+
msgid "Timestamp"
msgstr "Időbélyeg"
@@ -19709,8 +21431,9 @@ msgstr "A szeleteléshez használt fizikai nyomtató neve."
msgid "Layer number"
msgstr "Rétegszám"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Az aktuális réteg indexe. Egytől számozott (azaz az első réteg száma 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Az aktuális réteg indexe. Nullától számozott (azaz az első réteg száma 0), kivéve az extrudálási szerep váltásakor futó G-code-ban, ahol egytől számozott."
msgid "Layer Z"
msgstr "Réteg Z"
@@ -19730,6 +21453,252 @@ msgstr "Filament extruderazonosító"
msgid "The current extruder ID. The same as current_extruder."
msgstr "Az aktuális extruder azonosítója. Ugyanaz, mint a current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Előző extruder"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Az éppen kiürített extruder indexe. Az index nullától számozott (az első extruder indexe 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Következő extruder"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Az éppen betöltés alatt álló extruder indexe. Az index nullától számozott (az első extruder indexe 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Relatív E tengely"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Jelzi, hogy relatív pozicionálás van-e használatban."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Szerszámcserék száma"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "A szerszámcserék száma a nyomtatás során."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Régi visszahúzási hossz"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Az előző filament visszahúzási hossza."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Új visszahúzási hossz"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Az új filament visszahúzási hossza."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Régi visszahúzási hossz szerszámcserénél"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Az előző filament visszahúzási hossza szerszámcserénél."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Új visszahúzási hossz szerszámcserénél"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "Az új filament visszahúzási hossza szerszámcserénél."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Régi filament hőmérséklete"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "A régi filament hőmérséklete."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Új filament hőmérséklete"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "Az új filament hőmérséklete."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X szerszámcsere után"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "Az X pozíció szerszámcsere után."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y szerszámcsere után"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "Az Y pozíció szerszámcsere után."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z szerszámcsere után"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "A Z pozíció szerszámcsere után."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Első öblítési térfogat"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Az első öblítési térfogat."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Második öblítési térfogat"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "A második öblítési térfogat."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Régi filament E előtolási sebessége"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "A régi filament extruderének előtolási sebessége."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Új filament E előtolási sebessége"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "Az új filament extruderének előtolási sebessége."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "1. mozgási pont X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "Az 1. mozgási pont X koordinátája."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "1. mozgási pont Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Az 1. mozgási pont Y koordinátája."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "2. mozgási pont X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "A 2. mozgási pont X koordinátája."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "2. mozgási pont Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "A 2. mozgási pont Y koordinátája."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "3. mozgási pont X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "A 3. mozgási pont X koordinátája."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "3. mozgási pont Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "A 3. mozgási pont Y koordinátája."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "1. öblítési hossz"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "Az első öblítési hossz."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "2. öblítési hossz"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "A második öblítési hossz."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "3. öblítési hossz"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "A harmadik öblítési hossz."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "4. öblítési hossz"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "A negyedik öblítési hossz."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Extrudálási szerep"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"A következőként használt extrudálási szerep/típus\n"
+"Lehetséges értékek:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Utolsó extrudálási szerep"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Az előzőleg használt extrudálási szerep/típus\n"
+"Lehetséges értékek:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Hiba a zip fájlban"
@@ -19742,24 +21711,32 @@ msgstr "Kitöltési területek generálása"
msgid "Generating infill toolpath"
msgstr "Kitöltési szerszámút generálás"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z kontúrozott réteg %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Túlnyúlások észlelése az automatikus emeléshez"
msgid "Checking support necessity"
msgstr "Támasz szükségességének ellenőrzése"
-msgid "floating regions"
-msgstr "lebegő régiók"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Úgy tűnik, a(z) %1% objektumnak lebegő területei vannak. Tájold át az objektumot, vagy engedélyezd a támaszgenerálást."
-msgid "floating cantilever"
-msgstr "lebegő konzol"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Úgy tűnik, a(z) %1% objektumnak lebegő kinyúló része van. Tájold át az objektumot, vagy engedélyezd a támaszgenerálást."
-msgid "large overhangs"
-msgstr "nagy túlnyúlások"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Úgy tűnik, hogy a(z) %s objektumnál %s található. Tájold át az objektumot, vagy engedélyezd a támaszgenerálást."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Úgy tűnik, a(z) %1% objektumnak nagy túlnyúlásai vannak. Tájold át az objektumot, vagy engedélyezd a támaszgenerálást."
msgid "Generating support"
msgstr "Támaszok generálása"
@@ -19770,8 +21747,9 @@ msgstr "Szerszámút optimalizálása"
msgid "Slicing mesh"
msgstr "Háló szeletelése"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Nem észlelhetők rétegek. Érdemes lehet kijavítani az STL fájl(oka)t, vagy ellenőrizni a méretüket, illetve vastagságukat, majd újra megpróbálni.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Nem észlelhetők rétegek. Érdemes lehet kijavítani a modellt, vagy ellenőrizni a méretét, illetve vastagságát, majd újra megpróbálni.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19790,6 +21768,397 @@ msgstr ""
msgid "Object name"
msgstr "Objektum neve"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Az előjelváltó mínusz operátor nem alkalmazható."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Nem alakítható egész számmá."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Nem numerikus érték nem kerekíthető."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Nem numerikus érték nem kerekíthető lefelé."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Nem numerikus érték nem kerekíthető felfelé."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "A tagadás (not) operátor nem alkalmazható."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Nem numerikus típusok nem adhatók össze."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Nem numerikus típusok nem vonhatók ki."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Nem numerikus típussal nem szorozható."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Nem numerikus típus nem osztható."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Nem numerikus típussal nem osztható."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Nullával való osztás"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Nem logikai kifejezés"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "A típusok nem hasonlíthatók össze."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Nem numerikus típus."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: a második paraméternek egész számnak kell lennie"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: a harmadik paraméternek egész számnak kell lennie"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "A reguláris kifejezéses egyezés bal oldalának karakterláncnak kell lennie."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "A reguláris kifejezés fordítása sikertelen: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "A regex_replace() első paraméterének karakterláncnak kell lennie."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): Az első paraméternek (az illesztendő karakterláncnak) karakterlánc értéknek kell lennie"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): A mintának karakterlánc értéknek kell lennie"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "A reguláris kifejezés fordítása sikertelen"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Logikai művelet nem alkalmazható nem logikai operandusokra."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Skaláris változó indexelésére tett kísérlet"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Érvénytelen vektorindex"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "A változó nem létezik (egy inaktív ágban)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "A változó nem létezik"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Hivatkozás meghatározatlan (nil) opcionális változóra"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Üres vektorváltozó indexelése"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Hivatkozás az opcionális értékek vektorának meghatározatlan (nil) elemére"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "Az indexelő változónak egész számnak kell lennie"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Negatív vektorindex"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Nem változónév"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Nem változónév (egy inaktív ágban)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "A FloatOrPercent változó nem tudta feloldani a \"ratio_over\" függőségeket"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Nem támogatott skaláris változótípus"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Vektorváltozóra hivatkozás, miközben skalár a várt"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Nem támogatott vektorváltozó-típus"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Csak olvasható változó nem módosítható"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "A jobb oldal nem numerikus kifejezés"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Elvárt elemszám a vektor feltöltéséhez."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Negatív elemszám lett megadva."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "A jobb oldal nem logikai kifejezés"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Nem támogatott kimeneti skaláris változótípus"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Kimeneti vektorváltozóra hivatkozás, miközben skalár a várt"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Az index kívül esik a tartományon"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Nem támogatott kimeneti vektorváltozó-típus"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "A szimbólum már definiálva van a csak olvasható rendszerszótárban"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "A szimbólum már definiálva van rendszer-kimeneti változóként"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "A globális változók ebben a környezetben nem érhetők el"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "A változónév már definiálva van a helyi hatókörben"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "A változónév már definiálva van a globális hatókörben"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Skaláris érték nem rendelhető vektorváltozóhoz."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Vektorérték nem rendelhető skaláris változóhoz."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Üres inicializálási listából nem hozható létre vektorváltozó, mert a típusa nem határozható meg."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "A jobb oldal érvénytelen: numerikus és logikai típusok keverése."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Skalár nem rendelhető vektorhoz"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Az opcionális értékeket tartalmazó jobb oldali vektorváltozó egyes elemei nincsenek definiálva (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "A bal oldal lebegőpontos vektor, a jobb oldal viszont nem."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "A bal oldal egész típusú vektor, a jobb oldal viszont nem."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "A bal oldal karakterlánc-vektor, a jobb oldal viszont nem."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "A bal oldal logikai vektor, a jobb oldal viszont nem."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "A bal és a jobb oldali vektorok nem kompatibilisek."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Az ilyen típusú vektorváltozó duplikálása nem támogatott"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "Az empty() paramétere nem vektorváltozó"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "A size() paramétere nem vektorváltozó"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Nem egész index nem használható vektorváltozó megcímzésére."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "A véletlenszám-generátor ebben a környezetben nem érhető el."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Értelmezési hiba a(z) %1%. sorban: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Értelmezési hiba a(z) %1%. sorban. Várt címke: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Értelmezési hiba a(z) %1%. sorban. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "Az interpolációs értéknek számnak kell lennie."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "A táblázat pontjának X értékének számnak kell lennie."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "A táblázat pontjának Y értékének számnak kell lennie."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "A táblázat X koordinátáinak növekvőknek kell lenniük"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "Az interpolációs érték a táblázat tartományán kívül esik"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Ismeretlen szintaktikai hiba"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Érvénytelen szöveg."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Érvénytelen szövegblokk."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Érvénytelen makró."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Nem {if}{else}{endif} makró."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Nem {switch} makró."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Régi változókiterjesztési formátum várt"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Azonosító várt."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Feltételes kifejezés várt."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Logikai kifejezés várt."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Kifejezés várt."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Záró kapcsos zárójel vagy opcionális paraméter várt."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Karakterlánc-minták listája várt (egyszerű szöveg vagy reguláris kifejezés)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Változóhivatkozás várt."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Változónév várt."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Reguláris kifejezés várt."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Érvénytelen utf8 sorozat"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Nem ASCII7 karakterek csak szövegblokkokban és karakterlánc-literálokban engedélyezettek, kódblokkokban nem."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Érvénytelen escape-sorozat"
+
msgid "Support: generate contact points"
msgstr "Támasz: érintkezési pontok generálása"
@@ -19806,6 +22175,10 @@ msgstr "A megadott fájl nem olvasható be, mert üres"
msgid "The file format is incompatible and cannot be parsed."
msgstr "A fájlformátum nem kompatibilis, ezért nem értelmezhető."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Nem sikerült a fájlt STL-lé konvertálni a ModelIO segítségével."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Ismeretlen fájlformátum. A bemeneti fájlnak .stl, .obj vagy .amf(.xml) kiterjesztésűnek kell lennie."
@@ -19855,9 +22228,6 @@ msgstr "Újrakalibrálás"
msgid "Calibrate"
msgstr "Kalibrálás"
-msgid "Finish"
-msgstr "Kész"
-
msgid "How can I use calibration results?"
msgstr "Hogyan használjam a kalibrálási eredményeket?"
@@ -19952,9 +22322,12 @@ msgstr ""
"Ugyanazon az extruderen belül a névnek (%s) egyedinek kell lennie, ha a filament típusa, a fúvóka átmérője és a fúvóka anyagáramlása azonos.\n"
"Biztosan felül akarod írni a korábbi eredményt?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Ez a géptípus fúvókánként legfeljebb %d előzményeredményt tud tárolni. Ez az eredmény nem lesz elmentve."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Ez a géptípus fúvókánként legfeljebb %d előzményeredményt tud tárolni. Ez az eredmény nem lesz elmentve."
+msgstr[1] "Ez a géptípus fúvókánként legfeljebb %d előzményeredményt tud tárolni. Ez az eredmény nem lesz elmentve."
msgid "Connecting to printer..."
msgstr "Csatlakozás a nyomtatóhoz..."
@@ -20176,9 +22549,13 @@ msgstr "Fúvóka- és AMS-információk szinkronizálása"
msgid "Please connect the printer first before synchronizing."
msgstr "Szinkronizálás előtt először csatlakoztasd a nyomtatót."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "A(z) %s nyomtató fúvókaadatai nincsenek beállítva. A kalibrálás folytatása előtt állítsd be őket."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "A nyomtató jobb fúvókájának adatai nincsenek beállítva. A kalibrálás folytatása előtt állítsd be őket."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "A nyomtató bal fúvókájának adatai nincsenek beállítva. A kalibrálás folytatása előtt állítsd be őket."
msgid "AMS and nozzle information are synced"
msgstr "Az AMS- és fúvókainformációk szinkronizálva vannak"
@@ -20241,6 +22618,11 @@ msgstr "Ettől a volumetrikus sebességtől"
msgid "To Volumetric Speed"
msgstr "Eddig a volumetrikus sebességig"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Lépésköz"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Biztosan megszakítod ezt a nyomtatást?"
@@ -20266,9 +22648,12 @@ msgstr "Megjegyzés: a fejegység száma ezen a helyen van a tartóhoz rendelve:
msgid "Action"
msgstr "Művelet"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Ez a géptípus fúvókánként legfeljebb %d előzményeredményt tud tárolni."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Ez a géptípus fúvókánként legfeljebb %d előzményeredményt tud tárolni."
+msgstr[1] "Ez a géptípus fúvókánként legfeljebb %d előzményeredményt tud tárolni."
msgid "Edit Flow Dynamics Calibration"
msgstr "Áramlásdinamikai kalibráció szerkesztése"
@@ -20395,12 +22780,13 @@ msgstr ""
"A gyorsulási értékeknek nagyobbaknak kell lenniük a sebességértékeknél.\n"
"Ellenőrizd a megadott adatokat."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Szalagos nyomtatókon még nem érhető el — használd helyette a PA-torony módszert."
+
msgid "Temperature calibration"
msgstr "Hőmérséklet kalibrálás"
-msgid "Filament type"
-msgstr "Filament típusa"
-
msgid "PLA"
msgstr "PLA"
@@ -20422,6 +22808,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Tesztmodell"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Normál"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Túlnyúlás"
+
msgid "Start temp: "
msgstr "Kezdőhőmérséklet: "
@@ -20547,9 +22946,6 @@ msgstr "Kezdő visszahúzás hossza: "
msgid "End retraction length: "
msgstr "Befejező visszahúzási hossz: "
-msgid "Test model"
-msgstr "Tesztmodell"
-
msgid "Ringing Tower"
msgstr "Rezonanciatorony"
@@ -20579,8 +22975,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Frekvencia (Kezdés / Vég): "
-msgid "Start / End"
-msgstr "Kezdés / Vég"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X Kezdés / Vég: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y Kezdés / Vég: "
msgid "Frequency settings"
msgstr "Frekvenciabeállítások"
@@ -20617,8 +23018,13 @@ msgstr "Ellenőrizd a firmware kompatibilitását."
msgid "Frequency: "
msgstr "Frekvencia: "
-msgid "Damp"
-msgstr "Csillapítás"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Frekvencia X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Csillapítás (kezdés / vég): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "A RepRap firmware mindkét tengelyhez ugyanazt a frekvenciát használja."
@@ -20750,8 +23156,10 @@ msgstr "IFS engedélyezése"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "%d IFS hely észlelve a nyomtatón."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "%d IFS hely észlelve a nyomtatón."
+msgstr[1] "%d IFS hely észlelve a nyomtatón."
# AI Translated
msgid "This printer does not report a material station."
@@ -20880,8 +23288,10 @@ msgstr "Kivonás ebből"
msgid "Subtract with"
msgstr "Kivonás ezzel"
-msgid "selected"
-msgstr "kiválasztva"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 kiválasztva"
msgid "Part 1"
msgstr "1. tárgy"
@@ -20994,9 +23404,6 @@ msgstr "pl.: Basic, Matt, Silk, Marble"
msgid "Filament Preset"
msgstr "Filamentbeállítás"
-msgid "Create"
-msgstr "Létrehoz"
-
# AI Translated
msgid "Vendor is not selected; please reselect vendor."
msgstr "Nincs kiválasztva gyártó; kérlek, válaszd ki újra a gyártót."
@@ -21314,6 +23721,10 @@ msgstr ""
"A nyomtató és az ahhoz tartozó összes filament- és folyamatbeállítás.\n"
"Megosztható másokkal."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Egyedi asztaltextúra és -modell belefoglalása"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21365,14 +23776,6 @@ msgstr "Megjegyzés: Ha a filamenthez tartozó utolsó beállítás is törlődi
msgid "Presets inherited by other presets cannot be deleted"
msgstr "A más beállítások által örökölt beállítások nem törölhetők"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "A következő profil örökli ezt a profilt."
-msgstr[1] "A következő profilok öröklik ezt a profilt."
-
-msgid "Delete Preset"
-msgstr "Beállítás törlése"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Biztosan törlöd a kiválasztott beállítást?"
@@ -21450,10 +23853,12 @@ msgstr "A kezdő-, vég- vagy lépésérték nem érvényes."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "A nyomtató extrudereinek száma nem egyezik a kalibráláshoz kiválasztott nyomtatóéval."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "A(z) %s extruder fúvókaátmérője 0.2 mm, ami nem támogatja az automatikus áramlásdinamika-kalibrálást."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21469,6 +23874,12 @@ msgstr ""
"A fúvókaátmérő nem egyezik a nyomtató tényleges fúvókaátmérőjével.\n"
"Kattints a fenti Szinkronizálás gombra, majd indítsd újra a kalibrálást."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "A(z) %s nyomtató fúvókaadatai nincsenek beállítva. A kalibrálás folytatása előtt állítsd be őket."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21546,6 +23957,11 @@ msgstr "Creality K-sorozatú nyomtató észlelése"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Kattints a Keresés gombra a hálózatodon lévő K-sorozatú nyomtatók megkereséséhez."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Modell"
+
# AI Translated
msgid "Scan"
msgstr "Keresés"
@@ -21568,8 +23984,10 @@ msgstr "Nem található K-sorozatú nyomtató. Győződj meg róla, hogy a nyomt
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "%zu Creality nyomtató található. Válassz ki egyet, majd kattints a Kijelölt használata gombra."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "%zu Creality nyomtató található. Jelöld ki, majd kattints a Kijelölt használata gombra."
+msgstr[1] "%zu Creality nyomtató található. Válassz ki egyet, majd kattints a Kijelölt használata gombra."
# AI Translated
msgid "Active"
@@ -21688,8 +24106,12 @@ msgid "Failed to launch a new instance."
msgstr "Nem sikerült új példányt indítani."
# AI Translated
-msgid "log(s)"
-msgstr "napló(k)"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d napló (%.2f %s)"
+msgstr[1] "%d napló (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -21744,17 +24166,37 @@ msgid "Authorizing..."
msgstr "Engedélyezés..."
# AI Translated
-msgid "Error. Can't get API token for authorization"
-msgstr "Hiba. Nem sikerült API-tokent szerezni az engedélyezéshez"
+msgid "Maximum login retries exceeded"
+msgstr "A bejelentkezési próbálkozások maximális száma túllépve"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "HTTP-hiba: %1%"
# AI Translated
msgid "Could not parse server response."
msgstr "Nem sikerült feldolgozni a kiszolgáló válaszát."
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "Hiba. Nem sikerült API-tokent szerezni az engedélyezéshez"
+
# AI Translated
msgid "Error saving session to file"
msgstr "Hiba a munkamenet fájlba mentésekor"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "A 3DPrinterOS felhővel létesített kapcsolat megfelelően működik."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Bejelentkezve felhasználóként: %1%"
+
# AI Translated
msgid "Error session check"
msgstr "Hiba a munkamenet ellenőrzésekor"
@@ -21791,6 +24233,42 @@ msgstr "Hibás jelszó"
msgid "Could not get resources to create a new connection"
msgstr "Nem sikerült erőforrásokat szerezni új kapcsolat létrehozásához"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "Az UltiMaker kapcsolat megfelelően működik."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Nem sikerült csatlakozni az UltiMakerhez"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Hiba a hitelesítő adatok létrehozásakor! A részleteket lásd a naplóban."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "HIBA: Az ID vagy a KEY üres. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Felhasználónév: %1% Jelszó: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "A hitelesítő adatok jóváhagyásra várnak. Hagyd jóvá a hozzáférést a nyomtató képernyőjén megjelenő párbeszédablakban."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Érvénytelen hitelesítő adatok"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Hiba: Nem találhatók hitelesítő adatok!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "A feltöltés nincs engedélyezve a FlashAir kártyán."
@@ -21908,6 +24386,14 @@ msgstr ""
"Üzenet törzse: \"%1%\"\n"
"Hiba: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "Az ESP3D kapcsolata megfelelően működik."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Nem sikerült csatlakozni az ESP3D-hez"
+
msgid "No AMS"
msgstr "Nincs AMS"
@@ -21979,6 +24465,11 @@ msgstr "Legfeljebb %d nyomtató választható ki"
msgid "No task"
msgstr "Nincs feladat"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Megtekintés"
+
msgid "Edit Printers"
msgstr "Nyomtatók szerkesztése"
@@ -22020,6 +24511,11 @@ msgstr "Nyomtatás sikertelen"
msgid "Printing Pause"
msgstr "Nyomtatás szüneteltetve"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Előkészítés"
+
msgid "Pending"
msgstr "Függőben"
@@ -22052,9 +24548,6 @@ msgstr "Intelligens filament-hozzárendelés bekapcsolása: egy filament több f
msgid "File Saving"
msgstr "Fájl mentése"
-msgid "Don't remind me again"
-msgstr "Ne emlékeztessen újra"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Nem jelenik meg több felugró ablak. A 'Beállítások' menüben újra megnyitható."
@@ -22079,16 +24572,24 @@ msgstr "Filament kézi hozzárendelése a bal vagy jobb fúvókához"
msgid "Global settings"
msgstr "Globális beállítások"
-msgid "Video tutorial"
-msgstr "Videós útmutató"
-
msgid "(Sync with printer)"
msgstr "(Szinkronizálás a nyomtatóval)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Hiba: a(z) %s extruderhez nincs elérhető %s fúvóka, a jelenlegi csoportosítás eredménye érvénytelen."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Hiba: a bal extruderhez nincs elérhető normál fúvóka, a jelenlegi csoportosítás eredménye érvénytelen."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Hiba: a bal extruderhez nincs elérhető nagy áramlású fúvóka, a jelenlegi csoportosítás eredménye érvénytelen."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Hiba: a jobb extruderhez nincs elérhető normál fúvóka, a jelenlegi csoportosítás eredménye érvénytelen."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Hiba: a jobb extruderhez nincs elérhető nagy áramlású fúvóka, a jelenlegi csoportosítás eredménye érvénytelen."
msgid "We will slice according to this grouping method:"
msgstr "A szeletelés a következő csoportosítási módszer szerint történik:"
@@ -22131,9 +24632,6 @@ msgstr "Nem sikerült csatlakozni a SimplyPrint-hez"
msgid "Internal error"
msgstr "Belső hiba"
-msgid "Unknown error"
-msgstr "Ismeretlen hiba"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "A SimplyPrint-fiók nincs összekapcsolva. A beállításhoz lépj a Csatlakozási beállításokhoz."
@@ -22141,6 +24639,16 @@ msgstr "A SimplyPrint-fiók nincs összekapcsolva. A beállításhoz lépj a Csa
msgid "Flashforge returned an invalid JSON response."
msgstr "A Flashforge érvénytelen JSON választ adott."
+# AI Translated
+msgid "Request failed"
+msgstr "A kérés sikertelen"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Flashforge helyi API-hiba %1%: %2%"
+
# AI Translated
msgid "No Flashforge printers were discovered on the local network."
msgstr "Nem található Flashforge nyomtató a helyi hálózaton."
@@ -22320,8 +24828,12 @@ msgstr "Figyelmeztetés: a perem típusa nincs \"festett\" értékre állítva,
msgid "Set the brim type of this object to \"painted\""
msgstr "Állítsd ennek az objektumnak a peremtípusát \"festett\" értékre"
-msgid "invalid brim ears"
-msgstr "érvénytelen peremfülek"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d érvénytelen peremfül"
+msgstr[1] "%d érvénytelen peremfül"
msgid "Brim Ears"
msgstr "Peremfülek"
@@ -22350,6 +24862,7 @@ msgstr "A kihagyott objektumok adatainak betöltése sikertelen. Próbáld újra
msgid "Failed to create the temporary folder."
msgstr "Nem sikerült létrehozni az ideiglenes mappát."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d kiválasztva"
@@ -22369,9 +24882,12 @@ msgstr "Az összes objektum kihagyása."
msgid "The printing job will be stopped. Continue?"
msgstr "A nyomtatási feladat le lesz állítva. Folytatod?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "%d objektum kihagyása."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "%d objektum kihagyása."
+msgstr[1] "%d objektum kihagyása."
msgid "This action cannot be undone. Continue?"
msgstr "Ez a művelet nem vonható vissza. Folytatod?"
@@ -22520,6 +25036,42 @@ msgstr "Ha be van kapcsolva, a fenti értékek alapértelmezettként tárolódna
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Beállítások exportálása"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Megjelenítés mappában"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Csomag törlése"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Leiratkozás a csomagról"
+
+# AI Translated
+msgid "Update available"
+msgstr "Frissítés érhető el"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Nem engedélyezett csomag"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "A csomag megnyitása a böngészőben"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "Feliratkozott"
+
+# AI Translated
+msgid "Local"
+msgstr "Helyi"
+
# AI Translated
msgid "Bundle folder does not exist."
msgstr "A csomagmappa nem létezik."
@@ -22564,6 +25116,14 @@ msgstr "Leiratkozás a csomagról"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Exportálás az OrcaCloudba"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Exportálás mappába"
+
# AI Translated
msgid "Save preset bundle"
msgstr "Beállításcsomag mentése"
@@ -22665,6 +25225,11 @@ msgstr "AMS szárazságszabályozás"
msgid "Filament Drying Settings"
msgstr "Filamentszárítási beállítások"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "ó"
+
# AI Translated
msgid "Stopping"
msgstr "Leállítás"
@@ -22844,6 +25409,11 @@ msgstr "Indítás: levegőbeszívás ellenőrzése"
msgid "Starting: Checking air vent"
msgstr "Indítás: levegőkifúvás ellenőrzése"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Nem sikerült létrehozni a(z) %1% könyvtárat"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Előfordulhat, hogy a filament nem kompatibilis a jelenlegi gépbeállításokkal. Általános filamentbeállításokat használ."
@@ -22859,6 +25429,105 @@ msgstr "Előfordulhat, hogy a filament nem kompatibilis a jelenlegi gépbeállí
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "A filament modellje ismeretlen. Egy véletlenszerű filamentbeállítást használ."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Ismeretlen konfigurációs fájl: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Érvénytelen konfigurációs fájl: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "%1%. hely -> %2%. hely: kevert filament"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "kevert filament definíciója: elérted a filamenthelyek korlátját"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "elérted a filamenthelyek korlátját"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "a nyomtató filamentkorlátja: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "%1%. hely -> %2%. hely: nem hozzárendelt kevert filament (a nyomtató filamentkorlátja: %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "%1%. hely: nem hozzárendelt kevert filament (a nyomtató filamentkorlátja: %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "%1%. hely: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "%1%. hely: a kevert filament definíciója nem importálható"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "legalább két összetevő szükséges"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "az összetevők nem létező helyekre hivatkoznak"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "kevert filament definíciója: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "%1%. hely: a kevert filament definíciója nem importálható (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "%1%. hely: %2% -> %3% (helyettesítő)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Nem sikerült betölteni a(z) %1% konfigurációs fájlt\n"
+"Javasolt előbb megtisztítani a(z) %2% könyvtárat"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"A(z) %1% gyártó konfigurációs verziója érvénytelen: %2%\n"
+"Javasolt előbb megtisztítani a(z) %3% könyvtárat"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Nem sikerült betölteni a(z) %1% konfigurációs fájlt: %2%\n"
+"Javasolt előbb megtisztítani a(z) %3% könyvtárat"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Referenciasíkok és -tengelyek elrejtése"
@@ -23172,6 +25841,11 @@ msgstr "Nincs vastagítható felülettest — előbb hozz létre egy felületjel
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Referencia / görbe (sík / tengely / koord. rendszer / csavarvonal / vetítés)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Sík"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Referenciasík (eltolt / döntött / középsík / érintő / két él / egybeeső)"
@@ -23238,6 +25912,11 @@ msgstr "Meglévő test mozgatása és/vagy forgatása"
msgid "Transform needs a body — add or import one first"
msgstr "A transzformáláshoz test szükséges — előbb adj hozzá vagy importálj egyet"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Tükrözés"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Test tükrözése egy síkra"
@@ -23331,6 +26010,11 @@ msgstr "(nincs)"
msgid "Hole / thread"
msgstr "Furat / menet"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Furat"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Furat készítése egy kijelölt lap közepén vagy egy síkon elhelyezve"
@@ -23375,6 +26059,11 @@ msgstr "Kattints 2 pontra vagy egy vonalra / körre / ívre a méret elhelyezés
msgid "Line / polyline"
msgstr "Vonal / vonallánc"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Vonal"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Kattints a kezdőpontra, majd a végpontra — utána állítsd be a pontos hosszt"
@@ -23511,6 +26200,9 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Kattints a vezérlőpontokra; befejezés dupla kattintással, jobb kattintással vagy Enterrel"
+msgid "Point"
+msgstr "Pont"
+
# AI Translated
msgid "Click to place a point"
msgstr "Kattints egy pont elhelyezéséhez"
@@ -23629,16 +26321,17 @@ msgstr "Válaszd ki az elemeket, húzd a szögtartomány-fogantyút, kattints a
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Kattints a középpontra, majd egy csúcsra — %d oldal, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Kattints a középpontra, majd egy csúcsra — %d oldal, köréírt"
+msgstr[1] "Kattints a középpontra, majd egy csúcsra — %d oldal, köréírt"
# AI Translated
-msgid "circumscribed"
-msgstr "köré írt"
-
-# AI Translated
-msgid "inscribed"
-msgstr "beírt"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Kattints a középpontra, majd egy csúcsra — %d oldal, beírt"
+msgstr[1] "Kattints a középpontra, majd egy csúcsra — %d oldal, beírt"
# AI Translated
msgid "Polygon"
@@ -23976,6 +26669,11 @@ msgstr "Lapon"
msgid "Thread plane"
msgstr "Menet síkja"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Szabvány"
+
# AI Translated
msgid "Pitch"
msgstr "Menetemelkedés"
@@ -24163,6 +26861,10 @@ msgstr "Válassz ki egy testlapot a megnyitásához, majd állítsd be a falvast
msgid "(pick a side face)"
msgstr "(válassz egy oldallapot)"
+# AI Translated
+msgid "Face"
+msgstr "Felület"
+
# AI Translated
msgid "Draft"
msgstr "Ferdeség"
@@ -24541,8 +27243,10 @@ msgstr "Vázlat frissítve"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Vázlat létrehozva (%zu vezérlő méret) — jelöld ki, majd jobb kattintással extrudáld"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Vázlat létrehozva (%zu vezérlő méret) — jelöld ki, majd jobb kattintással extrudáld"
+msgstr[1] "Vázlat létrehozva (%zu vezérlő méret) — jelöld ki, majd jobb kattintással extrudáld"
# AI Translated
#, c-format, boost-format
@@ -24679,8 +27383,10 @@ msgstr "Szerkesztés: Vázlat %d · N = merőleges nézet a síkra · Me
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — %zu háromszög"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — %zu háromszög"
+msgstr[1] "OK — %zu háromszög"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -24766,10 +27472,18 @@ msgstr "A háló nem tartalmaz háromszögeket"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Ez a háló %d háromszögből áll. Az egysíkú lapok összevonása előtt minden háromszögből B-rep lap lesz, így az importálás sokáig tarthat, és a kapott test lassan szerkeszthető lesz. Általában jobb, ha előbb egyszerűsíted a hálót.\n"
+"\n"
+"Mégis importálod?"
+msgstr[1] ""
"Ez a háló %d háromszögből áll. Az egysíkú lapok összevonása előtt minden háromszögből B-rep lap lesz, így az importálás sokáig tarthat, és a kapott test lassan szerkeszthető lesz. Általában jobb, ha előbb egyszerűsíted a hálót.\n"
"\n"
"Mégis importálod?"
@@ -24798,8 +27512,8 @@ msgstr "A háló importálása sikertelen: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Szilárd test importálva — %d háromszög → %d lap, térfogat: %.2f mm³. Válassz ki egy lapot vagy élt, majd módosítsd Lekerekítéssel / Vágással / Héjazással"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Szilárd test importálva — háromszögek: %d → lapok: %d, térfogat: %.2f mm³. Válassz ki egy lapot vagy élt, majd módosítsd Lekerekítéssel / Vágással / Héjazással"
# AI Translated
#, c-format, boost-format
@@ -24816,8 +27530,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s hozzáadva a vázlathoz — a véglegesítéshez kattints a Megerősítésre"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — húzással helyezd el/méretezd, majd Megerősítés"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — húzással helyezd el/méretezd, majd Megerősítés"
# AI Translated
msgid "Insert canceled"
@@ -25024,9 +27740,12 @@ msgid "a geometry operation failed"
msgstr "egy geometriai művelet sikertelen"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d kiválasztva"
+msgid_plural " · %d picked"
+msgstr[0] " · %d kiválasztva"
+msgstr[1] " · %d kiválasztva"
# AI Translated
#, c-format, boost-format
@@ -25042,7 +27761,9 @@ msgstr "Kijelölés — kattints egy elemre a kiválasztásához · végpont v
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d kiválasztva · most válassz kényszert (Vízszintes, Párhuzamos, Érintő, Egyenlő…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d kiválasztva · most válassz kényszert (Vízszintes, Párhuzamos, Érintő, Egyenlő…)"
+msgstr[1] "%d kiválasztva · most válassz kényszert (Vízszintes, Párhuzamos, Érintő, Egyenlő…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -25303,7 +28024,9 @@ msgstr "Tükrözés — tengely beállítva · most kattints a tükrözendő e
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Tükrözés — tengely beállítva · %d tükrözendő elem · kattints egy másikra a hozzáadásához vagy eltávolításához · Enter: alkalmazás"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Tükrözés — tengely beállítva · %d tükrözendő elem · kattints egy másikra a hozzáadásához vagy eltávolításához · Enter: alkalmazás"
+msgstr[1] "Tükrözés — tengely beállítva · %d tükrözendő elem · kattints egy másikra a hozzáadásához vagy eltávolításához · Enter: alkalmazás"
# AI Translated
msgid "Move — click the entities to move"
@@ -25426,8 +28149,10 @@ msgstr "Vázlatpont"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d vázlatelem"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d vázlatelem"
+msgstr[1] "%d vázlatelem"
# AI Translated
msgid "select something first"
@@ -25963,8 +28688,10 @@ msgid "Applied edit"
msgstr "Szerkesztés alkalmazva"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — írj be egy értéket, majd nyomd meg az Entert (vagy Megerősítés)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — írj be egy értéket, majd nyomd meg az Entert (vagy Megerősítés)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -26036,10 +28763,23 @@ msgstr "Tálcára küldés — a szilárd test átküldése az Előkészítésbe
msgid "Nothing to commit — add a feature first"
msgstr "Nincs mit a tálcára küldeni — előbb adj hozzá egy jellemzőt"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Tervezési test %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Minden test rejtett — a tálcára küldés előtt jeleníts meg legalább egyet"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Tervezési összeállítás"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Tervezési test"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -26106,8 +28846,10 @@ msgstr "Érvénytelen: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Előnézet — %zu háromszög"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Előnézet — %zu háromszög"
+msgstr[1] "Előnézet — %zu háromszög"
# AI Translated
#, c-format, boost-format
@@ -26209,8 +28951,10 @@ msgstr "Ez a méret nem teljesíthető — a vázlat túlhatározott"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "%1% kényszer nem alkalmazható erre a geometriára (ellipszis- vagy spline-görbe, illetve nulla méretű kör), ezért figyelmen kívül marad"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% kényszer nem alkalmazható erre a geometriára (ellipszis- vagy spline-görbe, illetve nulla méretű kör), ezért figyelmen kívül marad"
+msgstr[1] "%1% kényszer nem alkalmazható erre a geometriára (ellipszis- vagy spline-görbe, illetve nulla méretű kör), ezért figyelmen kívül maradnak"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -26268,8 +29012,10 @@ msgstr "Letörés: a távolság túlnyúlik az egyik szár végén, vagy a két
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "A lekerekítés/letörés által érvénytelenített %1% kényszer eltávolítva"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "A lekerekítés/letörés által érvénytelenített %1% kényszer eltávolítva"
+msgstr[1] "A lekerekítés/letörés által érvénytelenített %1% kényszer eltávolítva"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -26289,8 +29035,10 @@ msgstr "A másolatok száma csak 2 vagy annál nagyobb egész szám lehet"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "A transzformálás %1% kényszert feloldott"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "A transzformálás %1% kényszert feloldott"
+msgstr[1] "A transzformálás %1% kényszert feloldott"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26441,11 +29189,6 @@ msgstr "Felület vastagítása"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "A felület vastagításához felülettest szükséges — előbb hozz létre egyet egy Felület eszközzel"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Furat"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26530,11 +29273,6 @@ msgstr "Körkörös sokszorozás"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "A test ismétlése egy tengely körül — állítsd be a darabszámot és a szögtartományt"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Tükrözés"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26571,11 +29309,6 @@ msgstr "Az igazításhoz test szükséges — előbb adj hozzá vagy importálj
msgid "Align the body to a picked face or plane"
msgstr "A test igazítása egy kijelölt laphoz vagy síkhoz"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Sík"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -26681,11 +29414,6 @@ msgstr "Test törlése"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Az egész test törlése — a létrehozó jellemzőt is eltávolítja"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Vonal"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -27000,214 +29728,6 @@ msgstr "Ennek a betűtípusnak nincs körvonala ehhez a szöveghez"
msgid "Size: %.1f × %.1f mm"
msgstr "Méret: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Primitív"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Üres háló jött létre"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Téglatest"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Gyors:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Szélesség (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Mélység (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Magasság (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "Alsó R"
-
-# AI Translated
-msgid "Top R"
-msgstr "Felső R"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "Fő R"
-
-# AI Translated
-msgid "Minor R"
-msgstr "Cső R"
-
-# AI Translated
-msgid "All edges"
-msgstr "Minden él"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Felső élek"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Alsó élek"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Oldalélek"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Hálófelbontás"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Alakzat hozzáadása"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Nincs külső profil"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Nem sikerült létrehozni a külső lapot"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Nem sikerült létrehozni a lyukas lapot"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "A körbeforgatás sikertelen"
-
-# AI Translated
-msgid "Profile"
-msgstr "Profil"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Új profil kezdése (lyukakhoz)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Szakaszok"
-
-# AI Translated
-msgid "Sides"
-msgstr "Oldalak"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Kattints a vászonra a rajzoláshoz"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Rácshoz illesztés"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Rács lépésköze"
-
-# AI Translated
-msgid "Outer"
-msgstr "Külső"
-
-# AI Translated
-msgid "closed"
-msgstr "zárt"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% pont %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (felülnézet)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (elölnézet)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (oldalnézet)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Körbeforgatás (°)"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "0: extrudálás, >0: körbeforgatás"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Zseb (vágás)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu zárt profil"
-msgstr[1] "%zu zárt profil"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Az engedélyezéshez rajzolj egy zárt profilt"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Összes törlése"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Üres eredmény"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Extrudálás: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Körbeforgatás: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Nincs kijelölt objektum"
-
-# AI Translated
-msgid "Face failed"
-msgstr "A lap létrehozása sikertelen"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "A lyukas lap létrehozása sikertelen"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "A szerszámháló üres"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Zseb hozzáadva (negatív térfogat)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Zseb: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -27329,6 +29849,10 @@ msgstr "Gizmo összeállítás"
msgid "Gizmo brim ears"
msgstr "Gizmo peremfülek"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Gizmo textúrás domborítás festése"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Függőleges csúszka - Az aktív csúszka felfelé mozgatása"
@@ -27564,6 +30088,12 @@ msgstr "mindkét végén hengeres lap szükséges — a(z) %1% csatlakozó sík
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "mindkét végén hengeres lap szükséges — a(z) %1% csatlakozó íves lapon van"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (hiányzik az alapsík)"
+
# AI Translated
msgid "two points are coincident"
msgstr "a két pont egybeesik"
@@ -27592,10 +30122,31 @@ msgstr "a síkok párhuzamosak (nincs metszésvonal)"
msgid "zero-length direction"
msgstr "nulla hosszúságú irány"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "egy jellemző a(z) %1% testen működik, amely az előzmények adott pontján nem létezik"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "A(z) \"%1%\" egy olyan testen működik, amelyet egy törölt vagy elrejtett jellemző hozott létre"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "A(z) \"%1%\" egy olyan testen működik, amely az előzmények adott pontján nem létezik"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "a jellemzőt egy későbbi jellemző használja"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "A(z) \"%1%\" a(z) \"%2%\" elemet használja, ezért nem kerülhet elé"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "a vázlatelemek nem alkotnak zárt hurkot"
@@ -27606,9 +30157,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Nyitott itt: (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...és további %1% nyitott vég"
+msgid "Open ends not shown: %1%"
+msgstr "Nem megjelenített nyitott végek: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "körbeforgatás: a tengelyvonal már nincs a vázlatban — jelöld ki újra a tengelyt"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "körbeforgatás: a tengelyvonal hossza nulla"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -27756,6 +30316,30 @@ msgstr "a furat kontúrjának létrehozása sikertelen"
msgid "hole cut failed"
msgstr "a furat kivágása sikertelen"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "menet: az átmérőnek legalább 1 mm-nek kell lennie"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "menet: a menetemelkedésnek 0.1 mm-nél nagyobbnak kell lennie"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "menet: a mélységnek 0 és 0.7 x a menetemelkedés között kell lennie"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "menet: a mélység túl nagy ehhez az átmérőhöz"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "menet: a hossznak nagyobbnak kell lennie fél menetemelkedésnél"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "menet: túl sok fordulat (a hossz / menetemelkedés értékének 400 alatt kell maradnia)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "a belső menethez test szükséges"
@@ -27816,6 +30400,22 @@ msgstr "a lap törlése sikertelen"
msgid "delete_face produced no geometry"
msgstr "a lap törlése nem hozott létre geometriát"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "logikai művelet: nincs céltest"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "logikai művelet: nincs szerszámtest — jelölj ki egy második testet"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "logikai művelet: a céltest és a szerszámtest ugyanaz"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "logikai művelet: az egyik testnek nincs geometriája"
+
# AI Translated
msgid "boolean operation failed"
msgstr "a logikai művelet sikertelen"
@@ -28143,6 +30743,10 @@ msgstr "Modellképek"
msgid "Auxiliaries"
msgstr "Kiegészítők"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Szalagos törlőtorony"
+
# AI Translated
msgid "Project Filament List"
msgstr "Projekt filamentlista"
@@ -28177,8 +30781,18 @@ msgstr "A szétbontáshoz legalább két azonos anyagtípusú filament szükség
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "Az anyaglista legfeljebb %1% színt támogat. A(z) %2% szétbontása után az anyagok száma meghaladná ezt: %1%. Szétbontás előtt töröld a nem használt filamenteket a főképernyőn."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Az anyaglista legfeljebb %1% színt támogat. Az Anyaglista szétbontása után az anyagok száma meghaladná ezt: %1%. Szétbontás előtt töröld a nem használt filamenteket a főképernyőn."
+msgstr[1] "Az anyaglista legfeljebb %1% színt támogat. Az Anyaglista szétbontása után az anyagok száma meghaladná ezt: %1%. Szétbontás előtt töröld a nem használt filamenteket a főképernyőn."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Az anyaglista legfeljebb %1% színt támogat. A(z) %2% szétbontása után az anyagok száma meghaladná ezt: %1%. Szétbontás előtt töröld a nem használt filamenteket a főképernyőn."
+msgstr[1] "Az anyaglista legfeljebb %1% színt támogat. A(z) %2% szétbontása után az anyagok száma meghaladná ezt: %1%. Szétbontás előtt töröld a nem használt filamenteket a főképernyőn."
# AI Translated
msgid "Cyan"
@@ -28208,6 +30822,13 @@ msgstr "Zöld"
msgid "Blue"
msgstr "Kék"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -28215,7 +30836,1235 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "A jelenlegi filamentlista nem tartalmazza ezt: %s. A kevert filamenthez szükséges projektfilament a szétbontás után automatikusan létrejön."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "A jelenlegi filamentlista nem tartalmazza ezt: %s. A kevert filamenthez szükséges projektfilament a szétbontás után automatikusan létrejön."
+msgstr[1] "A jelenlegi filamentlista nem tartalmazza ezt: %s. A kevert filamenthez szükséges projektfilamentek a szétbontás után automatikusan létrejönnek."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Átlátszatlanság"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -28311,10 +32160,6 @@ msgstr "Saját beállítások"
msgid "Custom Printer Setup"
msgstr "Egyedi nyomtató beállítása"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Egyedi nyomtató"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Egyedi nyomtatóprofil létrehozása"
@@ -28583,6 +32428,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Beégetés"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Pontos érték beírása egy csúszkába"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Szerkesztés ikon a csúszka jobb végén"
+
# AI Translated
msgid "Texture displacement"
msgstr "Textúrás domborítás"
@@ -28719,6 +32572,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Textúra eltávolítása"
+# AI Translated
+msgid "Adjust image"
+msgstr "Kép módosítása"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Fényerő"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Kontraszt"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Élesség"
+
+# AI Translated
+msgid "Blur"
+msgstr "Elmosás"
+
+# AI Translated
+msgid "Hue"
+msgstr "Színárnyalat"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Kiemeli a kép legapróbb részleteit. Az Elmosás után lesz alkalmazva, így a kettő együtt is használható: az elmosással tüntesd el a szemcsézettséget, majd élesítsd a megmaradt éleket."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Magát a képet mossa el. A textúraréteg saját Simítás csúszkája a kép módosítása nélkül lágyítja a domborzatot, és érdemes először ahhoz nyúlni."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Ez a textúra szürkeárnyalatos, így nincs színárnyalata, amit eltolhatnál."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "A modell a csúszka elengedésekor frissül. A Mentés másolatként a módosított képet a textúratárba írja, és ezt a textúraréteget az új képre állítja át."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Mentés másolatként"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Textúrás domborítási réteg eltávolítása"
@@ -28855,6 +32752,15 @@ msgstr "Minden rögzített szakaszt OBJ fájlként ír ki, így egymás mellett
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "A befestett területet nem sikerült átvinni az újrahálózott modellre, így semmi sem változott. Válts Pro módra, és festés előtt hálózd újra a modellt."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Tartomány: %1% – %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Húzás helyett írj be egy értéket. A csúszkára Ctrl+kattintás ugyanezt teszi."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -28961,8 +32867,8 @@ msgid "Click a triangle to paint it"
msgstr "Kattints egy háromszögre a befestéséhez"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Az aktív réteghez Kiterítés (LSCM) hozzárendelés szükséges."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Csak Kiterítés (LSCM) leképezésű rétegnél - a nézet használatához állítsd az aktív réteg Leképezését Kiterítésre."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -28977,16 +32883,16 @@ msgid "Checker"
msgstr "Sakktábla"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Sakktábla - tesztrács a textúra helyett. Ahol a négyzetek négyzetek maradnak, a textúra torzításmentes; ahol megnyúlnak, ott a textúra is meg fog"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Sakktábla - tesztrács a textúra helyett. Ahol a négyzetek négyzetek maradnak, a textúra torzításmentes; ahol megnyúlnak, ott a textúra is meg fog. Megnyitja az UV-szerkesztőt, ha zárva van"
# AI Translated
msgid "Distortion"
msgstr "Torzítás"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Torzítás - kéktől pirosig terjedő nyúlási hőtérkép a kiterítésen"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Torzítás - kéktől pirosig terjedő nyúlási hőtérkép a kiterítésen. Megnyitja az UV-szerkesztőt, ha zárva van"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -29012,6 +32918,10 @@ msgstr "Válassz másik képet ehhez a réteghez. A festés, a mélység és a c
msgid "not painted"
msgstr "nincs befestve"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Fényerő, kontraszt, élesség, elmosás és színárnyalat, módosítás közben a képen és a modellen is látható. A Mentés másolatként az eredményt a textúratárba írja, és ezt a textúraréteget az új képre állítja át."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Feljebb - korábban alkalmazva"
@@ -29032,10 +32942,20 @@ msgstr "A domborzat magassága: a textúra fehér részei milliméterben mennyiv
msgid "Tile size"
msgstr "Csempeméret"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "A modell saját UV-elrendezése szerint leképezve, ami már maga az elhelyezés - a textúra egyetlen másolata pontosan lefedi, így nincs megadandó csempeméret."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "A textúra egy példányának szélessége a modellen. Kisebb értéknél a minta gyakrabban ismétlődik, és a részletei finomabbak; kikapcsolt Csempézésnél ez az egyetlen példány mérete."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Elforgatja a textúrát a felületen, fokban megadva - egy minta a modell egyik éléhez igazításához."
@@ -29103,28 +33023,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Két filamentet váltakoztat a köztes színek imitálásához, így néhány filamenttel is lefedhető egy fotó vagy egy színátmenet. Egy egyszínű foltokból álló kép mindkét módon ugyanúgy nyomtatódik. Kikapcsolva területenként egy filamentet használ."
# AI Translated
-msgid "Mix by"
-msgstr "Keverés módja"
+msgid "Mixed colors"
+msgstr "Kevert színek"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Felület"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "A beégetés által legfeljebb hozzáadható kevert filamentek száma. A textúra színeiből választódnak ki, és csak azok jönnek létre, amelyeket a beégetés ténylegesen használ."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Rétegek: a két filament a nyomtatási rétegek között váltakozik, ami függőleges felületeken simán összeolvad, de vízszintes felületeken eltűnik, ahol egy teljes réteg egyetlen sáv.\n"
-"Felület: finom sakktáblaminta a felületen, ami bármilyen szögben működik, de keverék helyett inkább textúrának hathat.\n"
-"Automatikus: függőleges felületeken rétegek; a vízszintes felületek a közelebbi egyetlen filamentet kapják, mivel ott a sakktábla mintázatként látszik."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% nyomtatható szín %2% filamentből"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "%1% filamentből"
+msgstr[1] "%1% filamentből"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% nyomtatható szín %2%"
+msgstr[1] "%1% nyomtatható szín %2%"
# AI Translated
msgid "Denoise"
@@ -29175,6 +33101,18 @@ msgstr "Nézetből"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Nézetből - egyenesen a befestett területre vetít onnan, ahonnan nézed, mint egy diavetítő."
+# AI Translated
+msgid "Model UV"
+msgstr "Modell UV"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "Modell UV - a modellhez eleve tartozó textúrakoordinátákat használja, így az ahhoz a modellhez készült textúra pontosan oda kerül, ahová festették. Nem történik kiterítés, és a Csempeméret nem érvényes: a modell saját elrendezése maga az elhelyezés."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Ennek a modellnek nincsenek saját textúrakoordinátái. Csak UV-csatornával importált modell - például textúrázott OBJ - képezhető le velük."
+
# AI Translated
msgid "Open UV editor"
msgstr "UV-szerkesztő megnyitása"
@@ -29189,8 +33127,10 @@ msgstr "Még nincs kiterítve"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% sziget"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% UV-sziget"
+msgstr[1] "%1% UV-sziget"
# AI Translated
msgid "Capture current view"
@@ -29220,10 +33160,6 @@ msgstr "Vetítési keret"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Megnyit egy ablakot, amelyet a modell fölé húzhatsz. Ami rajta keresztül látszik, az kapja a textúrát, a kerete pedig a vetítés széle lesz."
-# AI Translated
-msgid "Opacity"
-msgstr "Átlátszatlanság"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Mennyire tömörnek látszik a keretablak, amíg elhelyezed. Csökkentsd, hogy átláss rajta a modellre; az eredményt nem befolyásolja."
@@ -29277,6 +33213,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Hozzáadás"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Felülírás"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -29296,8 +33237,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Az alapréteg alatt nincs semmi, amivel kombinálódhatna, ezért mindig hozzáad."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Mit tesz ez a réteg ott, ahol átfedi az alatta lévőket. A Hozzáadás és a Kivonás domborzatot halmoz rá vagy farag el. A Szorzás és az Osztás az alatta lévőt skálázza, így ez a réteg maszkká válik fölötte - ott a Mélység erősségként működik, és 1 mm érintetlenül hagyja a fehér területeket."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Mit tesz ez a réteg ott, ahol átfedi az alatta lévőket. A Hozzáadás és a Kivonás domborzatot halmoz rá vagy farag el. A Felülírás lecseréli őket, így ott, ahol festve van, csak ennek a rétegnek a domborzata marad. A Szorzás és az Osztás az alatta lévőt skálázza, így ez a réteg maszkká válik fölötte - ott a Mélység erősségként működik, és 1 mm érintetlenül hagyja a fehér területeket."
# AI Translated
msgid "Adjust placement"
@@ -29321,8 +33262,10 @@ msgstr "Több beállítás"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Mind a(z) %1% réteg használatban"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Mind a(z) %1% réteg használatban"
+msgstr[1] "Mind a(z) %1% réteg használatban"
# AI Translated
msgid "Add layer"
@@ -29402,8 +33345,10 @@ msgstr "Háromszögkeret: lent, a Háromszögek beállításnál adható meg."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Előnézet: %1% háromszög"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Előnézet: %1% háromszög"
+msgstr[1] "Előnézet: %1% háromszög"
# AI Translated
msgid "Steps"
@@ -29445,6 +33390,12 @@ msgstr "Újrahálózás"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Háromszögméret, amellyel a teljes modell újraépül, milliméterben. A domborítás egyenletes hálón működik a legjobban; ez készít ilyet egy egyenetlen importált modellből."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Éles élek megtartása"
@@ -29579,14 +33530,6 @@ msgstr "Kb. %1% háromszög szükséges, a keret %2% - a beégetés visszaegysze
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Hány ezer háromszöget adhat hozzá a finomítás a modellhez. Mindig a legrosszabbul illeszkedő háromszöget osztja fel először, így még a teljes keretet elhasználó futás is ott költötte el, ahol a leginkább látszik. Növeld, ha a domborzat még mindig durvának tűnik."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Leállítja a beégetést. Amit már befejezett, az a modellen marad, és visszavonható."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Beégetés nélkül bezárja az eszközt. A festésed, a rétegek és a beállítások a modellnél maradnak."
-
# AI Translated
msgid "Preparing..."
msgstr "Előkészítés..."
@@ -29611,35 +33554,56 @@ msgstr "A befestett magasságtérképeket valódi geometriává alakítja a már
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "A befestett magasságtérképeket valódi geometriává alakítja. A hálót előbb egyenletes sűrűségűre hálózza újra, és ott finomítja, ahol a textúra hajlik, hogy a részleteknek legyenek csúcsai - mindezt egy lépésben."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Leállítja a beégetést. Amit már befejezett, az a modellen marad, és visszavonható."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Beégetés nélkül bezárja az eszközt. A festésed, a rétegek és a beállítások a modellnél maradnak."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Modell: %1% háromszög - a beégetés a fenti felbontásig finomít, legfeljebb a keretéig"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Modell: %1% háromszög - a beégetés a fenti felbontásig finomít, legfeljebb a keretéig"
+msgstr[1] "Modell: %1% háromszög - a beégetés a fenti felbontásig finomít, legfeljebb a keretéig"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "A beégetés a meglévő csúcsokat mozgatja - a modell %1% háromszögű marad"
+msgstr[1] "A beégetés a meglévő csúcsokat mozgatja - a modell %1% háromszögű marad"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "A beégetés a meglévő csúcsokat mozgatja - a modell %1% háromszögű marad"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "A beégetés eredménye legfeljebb ~%1% k háromszög"
+msgstr[1] "A beégetés eredménye legfeljebb ~%1% k háromszög"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "A beégetés eredménye legfeljebb ~%1% k háromszög"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% réteg nincs befestve, kihagyva"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% réteg nincs befestve, kihagyva"
+msgstr[1] "%1% réteg nincs befestve, kihagyva"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1%: nincs befestve, kihagyva"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% nincs befestve, kihagyva"
+msgstr[1] "%1% nincsenek befestve, kihagyva"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29657,6 +33621,10 @@ msgstr "Textúrás domborítás szerkesztése"
msgid "Choose SLA archive:"
msgstr "Válassz SLA archívumot:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "SL1 / SL1S archívumfájlok"
+
# AI Translated
msgid "Import file"
msgstr "Fájl importálása"
@@ -29827,6 +33795,34 @@ msgstr "Filamentbővítmények"
msgid "Printer plugins"
msgstr "Nyomtatóbővítmények"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Ez a beállítás nem használ bővítményképességeket"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "A beállítás által használt képességek"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Képesség konfigurációja (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Bővítmény konfigurációja"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "A beállítás felülbírálásának elvetése és a globális konfiguráció ismételt használata"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Alapértékek visszaállítása"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "Érvénytelen JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "A konfiguráció nem érvényes JSON. A módosításaid nem lettek mentve."
@@ -29846,10 +33842,6 @@ msgstr ""
"\n"
"Ez elveti a beállítás felülírását, és a globális konfigurációt használja."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Alapértékek visszaállítása"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "A globális konfiguráció van használatban. A megőrzéséhez mentsd a beállítást."
@@ -29875,10 +33867,6 @@ msgstr "Leiratkozás"
msgid "Overwrite Plugin"
msgstr "Bővítmény felülírása"
-# AI Translated
-msgid "Show in folder"
-msgstr "Megjelenítés mappában"
-
# AI Translated
msgid "Reinstall"
msgstr "Újratelepítés"
@@ -29887,6 +33875,10 @@ msgstr "Újratelepítés"
msgid "Delete cache and reload"
msgstr "Gyorsítótár törlése és újratöltés"
+# AI Translated
+msgid "No description."
+msgstr "Nincs leírás."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Válassz egy .py vagy .whl bővítménycsomagot."
@@ -29919,6 +33911,292 @@ msgstr "Bővítmény telepítése"
msgid "Installed \"%s\"."
msgstr "\"%s\" telepítve."
+# AI Translated
+msgid "Search plugins"
+msgstr "Bővítmények keresése"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Keresés törlése"
+
+# AI Translated
+msgid "Match case"
+msgstr "Kis- és nagybetűk megkülönböztetése"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Csak teljes szavak"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "További bővítménytelepítési lehetőségek"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Bővítmény telepítése"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Helyi bővítmény telepítése"
+
+# AI Translated
+msgid "Activate"
+msgstr "Aktiválás"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Rendezés név szerint"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Rendezés verzió szerint"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Bővítmény verziója"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Rendezés forrás szerint"
+
+# AI Translated
+msgid "Source"
+msgstr "Forrás"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Rendezés állapot szerint"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Állapot"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Húzd az átméretezéshez; dupla kattintás a visszaállításhoz"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "A bővítménylista átméretezése"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Bővítmény részletei"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Bővítményinformáció"
+
+# AI Translated
+msgid "Description"
+msgstr "Leírás"
+
+# AI Translated
+msgid "Config"
+msgstr "Konfiguráció"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Változásnapló"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnosztika"
+
+# AI Translated
+msgid "Types"
+msgstr "Típusok"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Telepített verzió"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Legújabb verzió"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Frissítés a legújabb verzióra"
+
+# AI Translated
+msgid "No description available"
+msgstr "Nincs elérhető leírás"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Válassz ki egy bővítményt a képességei konfigurálásához"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Konfigurálható képességek"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "A képességhez mentett beállítások elvetése és a bővítmény alapértékeinek visszaállítása"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Bővítmény változásnaplója"
+
+# AI Translated
+msgid "Date"
+msgstr "Dátum"
+
+# AI Translated
+msgid "Changes"
+msgstr "Változások"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Nincs elérhető változásnapló"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Nem észlelhető probléma"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Nem található bővítmény"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Egy bővítmény sem felel meg ennek: \"%s\""
+
+# AI Translated
+msgid "Mine"
+msgstr "Saját"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Feliratkozva"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Árva"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Helyi"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Egyes bővítményképességek engedélyezve vannak"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "A(z) %s képességeinek összecsukása"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "A(z) %s képességeinek kibontása"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Képességek összecsukása"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Képességek kibontása"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "A bővítmény megnyitása a böngészőben"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Képességek: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Képességek"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "\"%s\" futtatása"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "%s engedélyezése"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Frissítésre nem jogosult"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Bővítmény betöltése…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Ez a bővítmény nem kínál képességeket"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Aktiváld ezt a bővítményt a képességei konfigurálásához"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Megtekintés az OrcaCloudon itt "
+
+# AI Translated
+msgid "Activated"
+msgstr "Aktiválva"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Futásidejű hiba"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Inaktív"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Ez a bővítmény aktív és használatra kész."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Ez a bővítmény még töltődik."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Ez a bővítmény a hibája kijavításáig blokkolva van."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Ez a bővítmény betöltődött, de az egyik képessége hibát jelzett."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Ez a bővítmény inaktív. Aktiváld a telepítéséhez vagy betöltéséhez."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Válassz ki egy bővítményt az állapota és a részletei megtekintéséhez."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Árva: erre a bővítményre már nem vagy feliratkozva, vagy már nem érhető el az OrcaCloudban. A helyi másolat telepítve marad, és továbbra is használható."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Újabb bővítményverzió érhető el."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "A felhőből történő frissítések nem érhetők el, mert ez a bővítmény nem jogosult frissítésre."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -30135,6 +34413,70 @@ msgstr "Nem sikerült újratölteni a bővítményt."
msgid "Reloaded \"%s\"."
msgstr "\"%s\" újratöltve."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Nyomtatókapcsolat"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Az eszköz megtekintéséhez állítsd be a nyomtatókapcsolatot."
+
+# AI Translated
+msgid "No model information"
+msgstr "Nincs modellinformáció"
+
+# AI Translated
+msgid "Edit Project Info"
+msgstr "Projektinformációk szerkesztése"
+
+# AI Translated
+msgid "Model Information"
+msgstr "Modellinformáció"
+
+# AI Translated
+msgid "Accessories"
+msgstr "Tartozékok"
+
+# AI Translated
+msgid "Profile Information"
+msgstr "Profilinformáció"
+
+# AI Translated
+msgid "Model name"
+msgstr "Modell neve"
+
+# AI Translated
+msgid "Created by"
+msgstr "Készítette"
+
+# AI Translated
+msgid "Remixed by"
+msgstr "Átdolgozta"
+
+# AI Translated
+msgid "Shared by"
+msgstr "Megosztotta"
+
+# AI Translated
+msgid "Model description"
+msgstr "Modell leírása"
+
+# AI Translated
+msgid "BOM"
+msgstr "Anyagjegyzék"
+
+# AI Translated
+msgid "Profile name"
+msgstr "Profil neve"
+
+# AI Translated
+msgid "Profile Author"
+msgstr "Profil szerzője"
+
+# AI Translated
+msgid "Profile description"
+msgstr "Profil leírása"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Öblítési mód beállításai"
@@ -30159,6 +34501,19 @@ msgstr "Csökkenti az előkészítési hulladékot, és gyorsabban nyomtat. Enyh
msgid "Terminal"
msgstr "Terminál"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... vagy uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "A bővítményterminál készen áll."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "A folyamat a következő kóddal lépett ki: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Már fut egy parancs."
@@ -30205,8 +34560,10 @@ msgstr "Új kevert filamentek"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "A projekt legfeljebb %d filamentet támogat. A felesleges filamentek el lesznek vetve."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "A projekt legfeljebb %d filamentet támogat. A felesleges filamentek el lesznek vetve."
+msgstr[1] "A projekt legfeljebb %d filamentet támogat. A felesleges filamentek el lesznek vetve."
# AI Translated
msgid "Import Model"
@@ -30293,8 +34650,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "A számítás sikertelen. Módosítsd a paramétereket, és próbáld újra."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "A háló nem manifold geometriát vagy nyitott határokat tartalmaz. Importálhatod így is, vagy importálás előtt kijavíthatod a Windows 3D-javító szolgáltatásával."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "A háló nem manifold geometriát vagy nyitott határokat tartalmaz. Importálhatod így is, vagy importálás előtt kijavíthatod."
# AI Translated
msgid "Mesh repair"
@@ -30308,14 +34665,6 @@ msgstr "Importálás javítás nélkül"
msgid "Repair and import"
msgstr "Javítás és importálás"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Figyelem: a háló nem manifold geometriát vagy nyitott határokat tartalmaz."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Hálóprobléma"
-
# AI Translated
msgid "The selected image is empty."
msgstr "A kiválasztott kép üres."
@@ -30324,6 +34673,14 @@ msgstr "A kiválasztott kép üres."
msgid "Failed to prepare the texture for use."
msgstr "Nem sikerült előkészíteni a textúrát a használatra."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Nem sikerült létrehozni az importált textúrák mappáját."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Nem sikerült menteni az importált textúrát."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Csak a saját importált textúráid távolíthatók el."
@@ -30332,18 +34689,10 @@ msgstr "Csak a saját importált textúráid távolíthatók el."
msgid "Could not delete the texture file."
msgstr "Nem sikerült törölni a textúrafájlt."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Nem sikerült létrehozni az importált textúrák mappáját."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Nem sikerült betölteni a kiválasztott képet."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Nem sikerült menteni az importált textúrát."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Nem sikerült beolvasni a textúrafájlt."
@@ -30387,8 +34736,10 @@ msgstr "Válaszd a Kiterítés hozzárendelést egy textúrarétegnél, hogy itt
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d csúcs kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d csúcs kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás"
+msgstr[1] "%d csúcs kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30396,8 +34747,10 @@ msgstr "Csúcs mód: húzz egy csúcsot az alakításhoz | Shift/Ctrl + kattin
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d él kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d él kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás"
+msgstr[1] "%d él kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30405,8 +34758,10 @@ msgstr "Él mód: húzd egy sziget élét az alakításhoz | Shift/Ctrl + katt
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d sziget kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás, R/S = az elsődleges forgatása/átméretezése"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d UV-sziget kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás, R/S = az elsődleges forgatása/átméretezése"
+msgstr[1] "%d UV-sziget kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás, R/S = az elsődleges forgatása/átméretezése"
# AI Translated
#, c-format, boost-format
@@ -30425,6 +34780,10 @@ msgstr " | illesztés BE"
msgid "Change texture - choose another one from the texture library"
msgstr "Textúra cseréje - válassz másikat a textúratárból"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Az aktív réteg csempemérete: a textúra egy ismétlése mekkora részt fed le a modellből. A vászon csempékben mérődik, így egy rácscella egy ismétlésnek felel meg. Módosítsd a réteg beállításaiban a Csempeméret mezővel."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Magasságtérkép - a réteg textúrájának megjelenítése a szigetek alatt"
@@ -30458,16 +34817,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "A kiterítést összefüggő hálóként rendezi el: a közös élű darabok egymás mellé hajtódnak ki (egy kocka hat különálló négyzet helyett összefüggő kiterített hálót ad). Különálló szigetek maradnak, így utána bármelyiket kézzel is mozgathatod."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Sziget - teljes szigetek mozgatása, forgatása és átméretezése"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "UV-sziget - teljes UV-szigeteken dolgozhatsz. Kattints egyre a kijelöléséhez, majd húzd a mozgatáshoz, jobb gombbal húzd a forgatáshoz, vagy nyomd meg az R-t a forgatáshoz és az S-t az egérrel történő átméretezéshez (kattintás vagy Enter: megerősítés, Esc: mégse)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Csúcs - csúcsok húzása az alakításhoz; Shift/Ctrl a többszörös kijelöléshez"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Csúcs - húzd a csúcsokat egy UV-sziget kézi alakításához; a Shift hozzáad a kijelöléshez, a Ctrl pedig egy elemet be- vagy kivesz belőle."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Él - élek húzása az alakításhoz; Shift/Ctrl a többszörös kijelöléshez"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Él - húzd az éleket egy UV-sziget kézi alakításához; a Shift hozzáad a kijelöléshez, a Ctrl pedig egy elemet be- vagy kivesz belőle."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30506,8 +34865,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Illesztés - a szigetek összetapadnak, amikor egyiket a másikhoz húzod"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Összes sziget a nézetben (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Az összes UV-sziget nézetbe illesztése, hogy mindegyik látható legyen (Home vagy F).\n"
+"A vászon más részein: görgess a kurzor körüli nagyításhoz, és középső gombbal húzz - vagy húzz üres területen - a pásztázáshoz."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Mi van kijelölve, és húzás közben a mozgatás, forgatás vagy átméretezés pontos értékei."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30518,6 +34885,10 @@ msgstr "Nincs Kiterítés hozzárendelésű réteg"
msgid "%.1f mm tile"
msgstr "%.1f mm-es csempe"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "A panel az aktív textúraréteget követi, és ennek a rétegnek Kiterítés (LSCM) leképezésűnek kell lennie. Adj hozzá egy réteget, és állítsd a Leképezését Kiterítésre."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Elavult - a festés, a varratok vagy a varratszög megváltozott a kiterítés óta. Nyomd meg az újbóli kiterítéshez."
@@ -30526,19 +34897,74 @@ msgstr "Elavult - a festés, a varratok vagy a varratszög megváltozott a kiter
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "A befestett területet UV-szigetekké teríti ki. Csak akkor számolódik ki, amikor ezt megnyomod, nem minden szerkesztéskor - ezért előbb fess, módosítsd a varratszöget vagy jelölj varratokat, majd nyomd meg a Kiterítés gombot."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Előbb kapcsold be a Varratok jelölése eszközt - az Útvonal gyorsabb módja a jelölésüknek."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Ezen a rétegen nincs jelölt UV-varrat."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Egyetlen UV-szigetet sem alakítottál át kézzel, így nincs mit elvetni."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d sziget, %s felület"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d UV-sziget"
+msgstr[1] "%d UV-sziget"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s lap"
+msgstr[1] "%s lap"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "A befestett terület kiterítésének eredménye: hány különálló darabra lett vágva (az UV-varratoknál és a varratszögnél élesebb éleknél), és ezek összesen hány háromszöget tartalmaznak."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Előbb nyomd meg a Kiterítés gombot - még nincsenek UV-szigetek, amelyeken dolgozni lehetne."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Előbb kattints egy UV-szigetre a vásznon, UV-sziget módban."
+
+# AI Translated
+# Needs human review: Short badge for a published 3MF (about three letters); 'KÖZ' abbreviates 'közzétett'. Check it fits the badge and reads right.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "KÖZ"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Nincs bejelentkezve"
+
+# AI Translated
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "A Bambu Network bővítmény nem található. Kattints ide a telepítéséhez."
+
+# AI Translated
+msgid "Create new project"
+msgstr "Új projekt létrehozása"
+
+# AI Translated
+msgid "Recently opened"
+msgstr "Legutóbb megnyitott"
+
+# AI Translated
+msgid "Open Containing Folder"
+msgstr "Tartalmazó mappa megnyitása"
# AI Translated
msgid "Forward"
msgstr "Előre"
-# AI Translated
-msgid "Tools"
-msgstr "Eszközök"
-
# AI Translated
msgid "View Source"
msgstr "Forrás megtekintése"
@@ -30610,6 +35036,75 @@ msgstr "%1% betöltése ide: %2%"
msgid "Load %s"
msgstr "%s betöltése"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "A(z) '%1%' nyomtatóügynök nem engedélyezhető: a(z) '%2%' ügynökazonosítót már regisztrálta a(z) '%4%' bővítmény '%3%' képessége."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "A(z) '%1%' nyomtatóügynök nem engedélyezhető: a(z) '%2%' ügynökazonosítót már regisztrálta a(z) '%3%'."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Fájl feltöltve"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "G-code feltöltése..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Nyomtatás indítása..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Nyomtatás elindult"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Feltöltés..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "A hálózati könyvtár verziója nincs megadva"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "A hálózati könyvtár nem található"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Nem sikerült betölteni a hálózati könyvtárat"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "A hálózati könyvtár betöltése sikertelen"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Egy régebbi bővítménysorozat. Az újabb bővítménytámogatást igénylő funkciók, például a nyomtatási hiba pillanatképei az eszközhiba-párbeszédablakban, nem érhetők el."
+
+# AI Translated
+msgid "unknown name"
+msgstr "ismeretlen név"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"A(z) \"%s\" bővítmény fájlrendszer-olvasási hozzáférést kér ehhez:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Bővítményengedélyek"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -30624,37 +35119,61 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
-"A(z) \"%s\" bővítmény a következő fájl(ok) olvasását kéri:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"A(z) \"%s\" bővítmény a következő fájl olvasását kéri:\n"
+"%s"
+msgstr[1] ""
+"A(z) \"%s\" bővítmény a következő fájlok olvasását kéri:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
-"A(z) \"%s\" bővítmény a következő fájl(ok) olvasását/írását kéri:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"A(z) \"%s\" bővítmény a következő fájl olvasását/írását kéri:\n"
+"%s"
+msgstr[1] ""
+"A(z) \"%s\" bővítmény a következő fájlok olvasását/írását kéri:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
-"A(z) \"%s\" bővítmény a következő fájl(ok) létrehozását kéri:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"A(z) \"%s\" bővítmény a következő fájl létrehozását kéri:\n"
+"%s"
+msgstr[1] ""
+"A(z) \"%s\" bővítmény a következő fájlok létrehozását kéri:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
-"A(z) \"%s\" bővítmény a következő fájl(ok) törlését kéri:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"A(z) \"%s\" bővítmény a következő fájl törlését kéri:\n"
+"%s"
+msgstr[1] ""
+"A(z) \"%s\" bővítmény a következő fájlok törlését kéri:\n"
"%s"
# AI Translated
@@ -30678,10 +35197,30 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"A(z) \"%s\" bővítmény a következő parancs futtatását kéri:\n"
+"%s"
+msgstr[1] ""
+"A(z) \"%s\" bővítmény a következő parancsok futtatását kéri:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "A(z) \"%s\" bővítmény engedélyt kér egy szál létrehozására."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"A(z) \"%s\" bővítmény a következő parancs(ok) futtatását kéri:\n"
+"A(z) \"%s\" bővítmény a futó alkalmazás lecserélését kéri erre:\n"
"%s"
# AI Translated
@@ -30693,6 +35232,46 @@ msgstr "A(z) \"%s\" bővítmény engedélyt kér a(z) \"%s\" Python audit esemé
msgid "Plugin permission request"
msgstr "Bővítmény engedélykérése"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "A beállítás érvénytelen bővítményképesség-konfigurációs JSON-t tárol."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "A beállításban tárolt bővítményképesség-konfiguráció nem tömb, ezért nem szerkeszthető."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Nyomtatókapcsolat"
+
+# AI Translated
+msgid "Pages"
+msgstr "Oldalak"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Elemzés"
+
+# AI Translated
+msgid "Importer"
+msgstr "Importáló"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Exportáló"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Megjelenítés"
+
+# AI Translated
+msgid "Script"
+msgstr "Szkript"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Szeletelési folyamat"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "A bővítmény konfigurációs felülete üres volt. Az alapértelmezett szerkesztő jelenik meg."
@@ -30715,8 +35294,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "A konfigurációt nem sikerült lemezre írni. Semmi sem változott."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "A bővítmény telepítése sikertelen"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "A bővítmény telepítése sikertelen: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: a telepített bővítmény nem található a katalógusban."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "A felhőbővítmény kulcsából hiányzik az UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Nem sikerült feliratkozni a felhőbővítményre, további információért lásd a naplókat."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Csak a felhőbővítményekről lehet leiratkozni."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Nem sikerült leiratkozni a bővítményről, további információért lásd a naplókat."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Nem sikerült lekérni a bővítmény letöltési URL-jét (eredmény: %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Nincs jogosultságod a felhőbővítmény letöltésére."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Ehhez az operációs rendszerhez nem érhető el bővítménycsomag."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "A kiválasztott bővítményverzió nem található."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "A(z) %1% bővítményverzió nem található."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "A felhőbővítmény nem található."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "A felhőbővítmény letöltése nem található: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "A felhőbővítmény letöltése nem található."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Ehhez a bővítményhez nem érhető el letöltési URL. Ellenőrizd a naplókat a hibák miatt."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Nem sikerült letölteni a bővítményt: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "A bővítmény letöltése sikertelen volt, HTTP-állapot: %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "A bővítmény letöltése üres adatot adott vissza."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Nem sikerült ideiglenes fájlt létrehozni a bővítmény letöltéséhez."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Nem sikerült a bővítmény adatait az ideiglenes fájlba írni."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Nem sikerült feloldani a bővítmény mappáját: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Nem sikerült törölni a(z) %1% bővítménymappát: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "A bővítmény könyvtára nem létezik: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "A bővítmény könyvtára több .py fájlt tartalmaz: %1% és %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "A bővítmény könyvtára több .whl fájlt tartalmaz: %1% és %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "A bővítmény könyvtára .py és .whl belépési fájlt is tartalmaz"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "A bővítmény könyvtára nem tartalmaz .py vagy .whl belépési fájlt"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "A(z) '%1%' szeletelési folyamat bővítményének hibája: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "A bővítménycsomagnak .py vagy .whl fájlnak kell lennie, kapott: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Nem sikerült kibontani a bővítmény .whl függőségét %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Nem sikerült a .whl függőséget hozzáadni a sys.path-hoz: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "A Python-értelmező nincs inicializálva: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "A bővítményjegyzék (manifest) érvénytelen: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Nem sikerült telepíteni a bővítmény függőségeit: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Nem sikerült betölteni a bővítménymodult: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "A bővítmény regisztrálása sikertelen: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "A bővítménymodul nem regisztrált egyetlen képességet sem"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "A bővítmény duplikált '%1%' képességet deklarál a(z) %2% típushoz"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "A bővítményképesség példányosítása sikertelen: %1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "A bővítményképesség példányosítása sikertelen"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "A bővítmény on_load hívása sikertelen: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "A bővítmény on_load hívása sikertelen"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "A bővítménycsomag nem fájl: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "A felhőbővítmény UUID-ja nem érvényes azonosító: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Nem sikerült létrehozni a(z) %1% bővítménykönyvtárat: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Nem sikerült biztonsági másolatot készíteni a meglévő bővítményről (%1%): %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Nem sikerült a bővítményfájlt a(z) %1% helyre másolni: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Nem sikerült kiírni a bővítmény telepítési állapotát: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "A bővítménycsomag már be van töltve: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Képességütközés a(z) %1% típusnál és a(z) '%2%' névnél"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Duplikált bővítménykulcs található: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "A bővítmény betöltése még folyamatban van"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "A bővítmény érvénytelen: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "A bővítmény nem található: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Váratlan bővítménybetöltési hiba: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Váratlan bővítménybetöltési hiba"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "A bővítményjegyzék (manifest) nem található: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Nem sikerült lekérni a bővítményeket a felhőből. A részleteket lásd a naplókban."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "A bővítmény telepítéséhez jelentkezz be az OrcaCloudba."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "Az OrcaCloud nem adta vissza a feliratkozott felhőbővítményt."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Nem sikerült letölteni a felhőbővítményt."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Nem sikerült telepíteni a felhőbővítményt."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Csak a felhőbővítményeket lehet frissíteni."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Ehhez a bővítményhez nem érhető el frissítés."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Az ismert bővítménykönyvtárakon kívüli bővítmény törlése megtagadva."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Az ismert bővítménykönyvtárakon kívüli bővítmény frissítése megtagadva."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "A bővítmény nem tartható meg helyiként: a helyi bővítménykulcs már létezik: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Nem sikerült frissíteni a bővítmény telepítési állapotát: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "A saját bővítményeidről nem lehet leiratkozni."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Csak a felhőbővítményeket lehet törölni és leiratkozni róluk."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "A saját bővítményeidről nem lehet leiratkozni. A helyi fájlok eltávolításához használd a Törlés lehetőséget."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "A bővítmény fájlrendszer-olvasási engedélykérése elutasítva"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30750,6 +35665,10 @@ msgstr "a kétirányú extrudálás egyesítése sikertelen"
msgid "imported regions produced no extrudable geometry"
msgstr "az importált régiókból nem jött létre extrudálható geometria"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "a profil keresztezi a körbeforgatás tengelyét — annak egyik oldalán kell lennie"
+
# AI Translated
msgid "Failed to revolve"
msgstr "A körbeforgatás sikertelen"
@@ -30786,6 +35705,10 @@ msgstr "A zseb lapjának létrehozása sikertelen"
msgid "Pocket cut failed"
msgstr "A zseb kivágása sikertelen"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "a profil keresztezi önmagát vagy visszahajlik önmagára, ezért nem egyetlen tartományt határol"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "a vázlatnak nincs zárt hurka"
@@ -30818,10 +35741,26 @@ msgstr "mesh_to_brep: a hálónak nincsenek háromszögei"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: minden háromszög elfajultként lett elvetve (próbálj kisebb tűrést)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "a lekerekítés sugarának nagyobbnak kell lennie 0-nál"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "nincs lekerekíthető él ebben a csoportban"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "a lekerekítési sugár túl nagy ehhez a geometriához"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "a letörés távolságának nagyobbnak kell lennie 0-nál"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "nincs letörhető él ebben a csoportban"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "a letörési távolság túl nagy ehhez a geometriához"
@@ -30834,6 +35773,153 @@ msgstr "apply_fillet: az OCCT lekerekítés sikertelen"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: az OCCT letörés sikertelen"
+# AI Translated
+msgid "empty component list"
+msgstr "üres összetevőlista"
+
+# AI Translated
+msgid "empty component index"
+msgstr "üres összetevőindex"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "az összetevőindexnek legalább 1-nek kell lennie (kapott: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "érvénytelen összetevőindex: \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "legalább 2 összetevő szükséges (kapott: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "duplikált összetevőindex: %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "üres arányérték"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "az aránynak pozitívnak kell lennie (kapott: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "érvénytelen arány: \"%1%\""
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "az arányok számának egyeznie kell az összetevők számával: várt %1%, kapott %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "két vesszővel elválasztott lebegőpontos szám várt, pl. \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "a kezdő és a záró aránynak a (0, 1) tartományban kell lennie"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "a tömb mérete (%1%) nem egyezik a filamenthelyek számával (%2%)"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "meg kell adni, ha kevert filament paraméterek vannak megadva"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "%1%. hely: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "%1%. hely: a(z) %2%. összetevő kívül esik a tartományon (a legnagyobb fizikai filamentindex: %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "%1%. hely: nem hivatkozhat önmagára összetevőként"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "%1%. hely: a(z) %2%. összetevő egy kevert filament helyre hivatkozik"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "%1%. hely: az átmenethez pontosan 2 összetevő szükséges"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "%1%. hely: érvénytelen görbe (legalább 2 érvényes vezérlőpont szükséges)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Nem sikerült betölteni a(z) \"%1%\" konfigurációs fájlt: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Nem a(z) %1% által generált G-code fájl."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "A(z) \"%1%\" konfigurációs címke nem található"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Gyanúsan kevés konfigurációs értéket sikerült kinyerni a(z) %1% fájlból: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"A STEP fájl betöltése sikertelen.\n"
+"A fájl nem nyitható meg olvasásra.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "Az svg importálása sikertelen: az svg nem nyitható meg."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "Az svg importálása sikertelen: az importált svg-adatok nem dolgozhatók fel."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Az egyedi G-code negatív z_retracted értéket jelez."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Az egyedi G-code negatív z_restart_extra értéket jelez."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "A(z) %1% könyvtár másolása ide: %2% sikertelen: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Hitelesítés kész"
@@ -31281,6 +36367,1106 @@ msgstr ""
"Kunkorodás elkerülése\n"
"Tudtad, hogy a kunkorodásra hajlamos anyagok (például ABS) nyomtatásakor az asztal hőmérsékletének növelése csökkentheti a kunkorodás valószínűségét?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Kérlek, válaszd ki a filament színét"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Az áthidalás vonalszélessége. Ha %-ban van megadva, a fúvóka átmérőjéből számítódik.\n"
+#~ "Ajánlott nagyobb áthidalási sűrűséggel vagy áthidalási anyagáramlással együtt használni.\n"
+#~ "\n"
+#~ "A maximális érték 100%, illetve a fúvóka átmérője.\n"
+#~ "Ha 0-ra van állítva, a vonalszélesség megegyezik a belső tömör kitöltés szélességével."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Kapcsold be ezt a lehetőséget, hogy lassabban nyomtasson azokon a területeken, ahol a falak felfelé kunkorodhattak.\n"
+#~ "Például további lassítás lép életbe éles sarkokon lévő túlnyúlások nyomtatásakor, mint amilyen a Benchy hajótestének eleje, csökkentve a több rétegen át felhalmozódó kunkorodást.\n"
+#~ "\n"
+#~ "Általában javasolt bekapcsolva hagyni, hacsak a nyomtató hűtése nem elég erős, vagy a nyomtatási sebesség nem elég alacsony ahhoz, hogy a falak kunkorodása ne forduljon elő. \n"
+#~ "Nagy külső falsebességgel nyomtatva ez a paraméter falhibákat okozhat a lassítás során, mivel a nyomtatási sebességek nagy szórása miatt az extruder nem tudja követni a kért anyagáramlás-változást.\n"
+#~ "Ezeknek a hibáknak az oka legtöbbször a kissé pontatlan PA-hangolás, különösen ha nagy PA simítási idővel párosul.\n"
+#~ "\n"
+#~ "Javaslatok a beállítás bekapcsolásakor:\n"
+#~ "1. Csökkentsd a Pressure Advance simítási idejét 0,015 - 0,02 értékre, hogy az extruder gyorsan reagáljon a sebességváltozásokra.\n"
+#~ "2. Növeld a minimális nyomtatási sebességeket, hogy korlátozd a lassítás mértékét, és csökkentsd a gyors és lassú szakaszok közötti eltérést.\n"
+#~ "3. Ha még mindig megjelennek a hibák, kapcsold be az extrudálási sebesség simítását (ERS) az anyagáramlás átmeneteinek további simításához.\n"
+#~ "\n"
+#~ "Megjegyzés: ha ez a beállítás be van kapcsolva, a túlnyúló falakat a rendszer túlnyúlásként kezeli, vagyis a túlnyúlási sebesség akkor is érvényes, ha a túlnyúló fal egy áthidalás része.\n"
+#~ "Például amikor a falak 100%-ban túlnyúlnak, és alattuk nincs alátámasztó fal, a 100%-os túlnyúlási sebesség lesz alkalmazva."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "A külsőleg látható hídextrudálások sebessége.\n"
+#~ "\n"
+#~ "Ezen felül, ha a felkunkorodó kerületeknél való lassítás ki van kapcsolva, vagy a klasszikus túlnyúlási mód engedélyezett, akkor ez lesz azon túlnyúló falak nyomtatási sebessége is, amelyeket 13%-nál kisebb mértékben támaszt alá az alattuk lévő réteg, függetlenül attól, hogy híd vagy túlnyúlás részét képezik."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Ez a külön beállítás a <= small_perimeter_threshold sugarú kerületek sebességét befolyásolja (általában furatoknál). Ha százalékban van megadva (például: 80%), a fenti külső fali sebesség alapján lesz kiszámítva. Az automatikus módhoz állítsd 0-ra."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Ugyanaz, mint a \"Kis peremek\", de a támaszokra vonatkozik. Ez a külön beállítás a támasz sebességét befolyásolja a `small_support_perimeter_threshold` értéknél kisebb vagy azzal egyenlő területeken. Ha százalékban van megadva (például: 80%), a fenti támasz- vagy támasz érintkező felület sebességéből számítódik. Automatikus működéshez állítsd nullára."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "A belső és külső falak nyomtatási sorrendje.\n"
+#~ "\n"
+#~ "A legjobb túlnyúlásokhoz használd a Belső/Külső módot. Ennek oka, hogy a túlnyúló falak nyomtatás közben hozzátapadhatnak egy szomszédos kerülethez. Ez az opció azonban kissé gyengébb felületminőséget eredményez, mert a külső kerület deformálódik, amikor a belső kerülethez préselődik.\n"
+#~ "\n"
+#~ "A legjobb külső felületi minőség és méretpontosság érdekében használd a Belső/Külső/Belső módot, mivel a külső fal zavartalanul nyomtatódik a belső kerülettől. Ugyanakkor a túlnyúlási teljesítmény csökken, mivel nincs belső kerület, amelyhez a külső fal hozzányomtatható lenne. Ennek a módnak a hatékony működéséhez legalább 3 fal szükséges, mert először a 3. kerülettől kezdve nyomtatja a belső falakat, majd a külső kerületet, végül az első belső kerületet. A legtöbb esetben ez a mód ajánlott a Külső/Belső helyett.\n"
+#~ "\n"
+#~ "A Külső/Belső mód ugyanazokat az előnyöket nyújtja külső falminőség és méretpontosság terén, mint a Belső/Külső/Belső. A Z-varratok azonban kevésbé lesznek egyenletesek, mivel az új réteg első extrudálása látható felületen kezdődik."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "A kezdőréteg nyomtatási sebessége a szilárd kitöltési rész kivételével"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "A kezdőréteg szilárd kitöltési részének sebessége"
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "A jobb kötés érdekében kissé megnöveli a kitöltési területet, hogy az átfedje a falat. A százalékos érték a kitöltés vonalszélességéhez viszonyított. Körülbelül 10-15%-os értékkel csökkenthető a túlextrudálás és az érdes felső felületet okozó anyagfelhalmozódás."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "A jobb kötés és a felső kitöltés falhoz csatlakozásánál megjelenő apró lyukak csökkentése érdekében kissé megnöveli a felső tömör kitöltés területét, hogy az átfedje a falat. Jó kiindulási érték a 25-30%. A százalékos érték a kitöltés vonalszélességéhez viszonyított."
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "A szegmentált régió összekapcsolódási mélysége. Figyelmen kívül marad, ha a \"mmu_segmented_region_max_width\" értéke nulla, vagy ha a \"mmu_segmented_region_interlocking_depth\" nagyobb, mint a \"mmu_segmented_region_max_width\". A 0 letiltja ezt a funkciót."
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Csökkentsd a felső felület kerületének magasságát, hogy megfeleljen a modell élmagasságának.\n"
+#~ "Befolyásolja az ennél a szögnél (foknál) kisebb lejtésű kerületeket.\n"
+#~ "Az ésszerű érték 35. A letiltáshoz állítsd 0-ra."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Szerepalapú törlési sebesség"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "A huzatvédő segíthet megelőzni, hogy a légmozgás miatt az ABS- vagy ASA-nyomatok felkunkorodjanak és leváljanak az asztalról. Általában csak nyitott vázas, azaz burkolat nélküli nyomtatóknál van rá szükség.\n"
+#~ "\n"
+#~ "Engedélyezve = a szoknya olyan magas lesz, mint a legmagasabb nyomtatott objektum. Ellenkező esetben a \"Szoknya magassága\" érték kerül használatra.\n"
+#~ "Megjegyzés: Aktív huzatvédő mellett a szoknya az objektumtól mért szoknyatávolságban lesz nyomtatva. Ezért ha perem is aktív, metszheti azt. Ennek elkerüléséhez növeld a szoknyatávolság értékét.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "A maximális nyomtatási sebesség öblítéskor a törlőtoronyban, valamint a törlőtorony ritka rétegeinek nyomtatásakor. Öblítés közben, ha a kitöltés sebessége vagy a filament maximális térfogati sebességéből számolt sebesség alacsonyabb, a kisebbik értéket használja.\n"
+#~ "\n"
+#~ "A ritka rétegek nyomtatásakor, ha a belső kerület sebessége vagy a filament maximális térfogati sebességéből számolt sebesség alacsonyabb, akkor a kisebbik érték lesz használva.\n"
+#~ "\n"
+#~ "Ennek a sebességnek a növelése befolyásolhatja a torony stabilitását, és növelheti azt az erőt is, amellyel a fúvóka nekiütközik a törlőtoronyon esetleg kialakuló anyagcsomóknak.\n"
+#~ "\n"
+#~ "Mielőtt ezt a paramétert a 90 mm/s alapértelmezett érték fölé emeled, győződj meg arról, hogy a nyomtatód megbízhatóan tud hidalni nagyobb sebességen is, és hogy a szerszámváltás közbeni szivárgás megfelelően szabályozott.\n"
+#~ "\n"
+#~ "A törlőtorony külső kerületeinél ettől a beállítástól függetlenül a belső kerületi sebesség lesz használva."
+
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "A törlőtorony külső falának típusa.\n"
+#~ "1. Téglalap: Az alapértelmezett faltípus, rögzített szélességű és magasságú téglalap.\n"
+#~ "2. Kúp: Alul lekerekített kúp, amely segít stabilizálni a törlőtoronyt.\n"
+#~ "3. Borda: Négy bordát ad a torony falához a nagyobb stabilitás érdekében."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "A törlőtorony öblítési vonalaihoz használt többletáramlás. Ettől az öblítési vonalak a szokásosnál vastagabbak vagy vékonyabbak lesznek. A távolság automatikusan igazodik."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Állítsd ezt az értéket úgy, hogy megakadályozza a rövid, nem zárt falak kinyomtatását, amelyek növelhetik a nyomtatási időt. A nagyobb értékek több és hosszabb falat távolítanak el.\n"
+#~ "\n"
+#~ "MEGJEGYZÉS: Az alsó és felső felületeket ez az érték nem érinti, hogy elkerülhetők legyenek a modell külsején megjelenő látható hézagok. A lentebbi Speciális beállításokban az 'Egyfalas küszöbérték' módosításával állíthatod be annak érzékenységét, hogy mi számít felső felületnek. Az 'Egyfalas küszöbérték' csak akkor látható, ha ez a beállítás az alapértelmezett 0.5 fölé van állítva, vagy ha az egyfalú felső felületek engedélyezve vannak."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Felosztás %1% tárgyra"
+#~ msgstr[1] "Felosztás %1% tárgyra"
+
+#~ msgid "Repair failed"
+#~ msgstr "A javítás sikertelen"
+
+#~ msgid "Repair canceled"
+#~ msgstr "Javítás megszakítva"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Mit tesz ez a réteg ott, ahol átfedi az alatta lévőket. A Hozzáadás és a Kivonás domborzatot halmoz rá vagy farag el. A Szorzás és az Osztás az alatta lévőt skálázza, így ez a réteg maszkká válik fölötte - ott a Mélység erősségként működik, és 1 mm érintetlenül hagyja a fehér területeket."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "A háló nem manifold geometriát vagy nyitott határokat tartalmaz. Importálhatod így is, vagy importálás előtt kijavíthatod a Windows 3D-javító szolgáltatásával."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Figyelem: a háló nem manifold geometriát vagy nyitott határokat tartalmaz."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Hálóprobléma"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "A javítás sikertelen: a háló a lyukak kitöltése után is nyitott."
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Logikai művelet nem alkalmazható nem logikai operandusokra."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Beolvasás"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "A filamentek száma meghaladja a festés által támogatott maximális mennyiséget. Csak az első %1% filament lesz használható a festéshez."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Gyorsgomb "
+
+#~ msgid "Build Volume"
+#~ msgstr "Nyomtatási térfogat"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "A(z) (%1%) objektumoknak duplikált csatlakozóik vannak. Egyes csatlakozók hiányozhatnak a szeletelés eredményéből.\n"
+#~ "Kérlek, jelezd az OrcaSlicer csapatának, milyen helyzetben fordult elő ez a hiba.\n"
+#~ "Köszönjük."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d háromszög"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Mozgatás)"
+
+# AI Translated
+#~ msgid " (Fixed)"
+#~ msgstr " (Rögzített)"
+
+# AI Translated
+#~ msgid "Filament "
+#~ msgstr "Filament "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "fejegység"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Elrendezés "
+
+#~ msgid "Orienting"
+#~ msgstr "Tájolás"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Kérlek, állítsd alaphelyzetbe az összes tengelyt (kattints "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr "). Így a nyomtató nem mozgatja a fejet a nyomtatható területen túlra, ami az eszköz kopását okozhatná."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "%1%g-mal több filament és %2%-kal több váltás az optimális csoportosításhoz képest."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "%1%g-mal több filament, de %2%-kal kevesebb váltás az optimális csoportosításhoz képest."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "%1%g filament megtakarítás, de %2%-kal több váltás az optimális csoportosításhoz képest."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "%1%g filament és %2% váltás megtakarítás egy egyfúvókás nyomtatóhoz képest."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "%1%g filament megtakarítás, de %2%-kal több váltás egy egyfúvókás nyomtatóhoz képest."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "%1%g-mal több filament, de %2% váltás megtakarítás egy egyfúvókás nyomtatóhoz képest."
+
+#~ msgid "number keys"
+#~ msgstr "számbillentyűk"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "A(z) %s filamentek a(z) %s helyre vannak téve, de a generált G-code útvonal túllépi a(z) %s nyomtatható tartományát."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "A(z) %s filamentek a(z) %s helyre vannak téve, de a generált G-code útvonal túllépi a(z) %s nyomtatható magasságát."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "A(z) %s filamentek nem nyomtathatók közvetlenül ennek a tálcának a felületére."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "bezárul az új modell létrehozása előtt. Folytatod?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "A felhőszeletelési sorban %s feladat van előtted."
+
+#~ msgid " upload failed"
+#~ msgstr " feltöltés sikertelen"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " feltöltési konfiguráció feldolgozása sikertelen\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Nincs megfelelő tárolóhely\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " nem nyitható meg\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "A megjegyzésed eredménye az alábbi okok miatt nem tölthető fel:\n"
+#~ "\n"
+#~ " hibakód: "
+
+#~ msgid "error message: "
+#~ msgstr "hibaüzenet: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Szeretnél átirányítást az értékeléshez tartozó weboldalra?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (folyamatbeállítás: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "A(z) %s fúvóka nem tudja nyomtatni ezt: %s."
+
+#~ msgid " nozzle"
+#~ msgstr " fúvóka"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "A következő filament(ek) nyomtatása %1% használatával nem ajánlott: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " %1% tálca:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Eltávolítod mind a(z) %1% kevert filamentet?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Cserélni szeretné"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Asztalhőmérséklet-ütközés: a T%d (%s) %d°C-ra állítja az asztalt — a T%d (%s) %d°C-ot igényel. Az asztalt az elsődleges szerszám vezérli; a másodlagos szerszámok az általa beállított hőmérsékleten nyomtatnak."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Nincs megadva gyorsulás a kalibráláshoz. Alapértelmezett gyorsulási érték használata "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Nincs megadva sebesség a kalibráláshoz. Alapértelmezett optimális sebesség használata "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Nem érhető el szalagos hőmérséklettorony a(z) %1% és %2% °C közötti tartományhoz. Olyan tartományt használj, amelyet a toronymodellek lefednek, például 230-tól 190-ig."
+
+#~ msgid "The selected file"
+#~ msgstr "A kiválasztott fájl"
+
+# AI Translated
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "nem tartalmaz érvényes G-code-ot."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "az OrcaSlicerrel, hogy az Orca modelleket tudjon megnyitni innen:"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "%dg-mal több filament és %d váltással több az optimális csoportosításhoz képest."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Az ezzel az ikonnal jelölt paraméterek fúvókánként állíthatók."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Foglalt kulcsszavakat találtunk"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "A(z) %d filamentbeállítás és a(z) %d folyamatbeállítás ehhez a nyomtatóhoz kapcsolódik. Ha törlöd a nyomtatót, akkor ezek a beállítások is törlődnek."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "A következő profil örökli ezt a profilt."
+#~ msgstr[1] "A következő profilok öröklik ezt a profilt."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% beállítás"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Biztos, hogy %1% a kiválasztott beállítást?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Felosztva %1% részre"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Új gyártói profilok letöltése: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Nem sikerült letölteni a gyártói profilokat: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Ebben a Span módban csak a(z) %1% nyomtat színeket, de a(z) %2%. filament nincs egyetlen szerszámhoz sem irányítva. Használj a(z) %1% szerszámhoz irányított filamenteket, vagy állítsd ezt a tálcát elsődleges (Primary) módra."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Ebben a Span módban csak a(z) %1% nyomtat színeket, de a(z) %2%. filament a T%3% szerszámhoz van irányítva. Használj a(z) %1% szerszámhoz irányított filamenteket, vagy állítsd ezt a tálcát elsődleges (Primary) módra."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " túl közel van a tiltott területhez, a nyomtatás során előfordulhatnak ütközések."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " túl közel van a csomósodásészlelési területhez, ezért nyomtatás közben ütközések fordulhatnak elő."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Törlőtorony"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " túl közel van más tárgyakhoz, a nyomtatás során előfordulhatnak ütközések.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " túl közel van a tiltott területhez, a nyomtatás során előfordulhatnak ütközések.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " túl közel van a csomósodásészlelési területhez, és ez ütközést fog okozni.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " részben a nyomtatható területen kívül esik, ezért nem nyomtatható ki.\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "nincs beállított szerszám"
+
+# AI Translated
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "Befejező G-code az egész nyomtatás befejezésekor"
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Maximális X sebesség"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Maximális Y sebesség"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Maximális Z sebesség"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Maximális E sebesség"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "A szeletelési folyamat minden lépésénél meghívott Python bővítmény(ek), amelyek beolvassák és módosítják a köztes szeletelési adatokat, beleértve egy záró G-code utófeldolgozási lépést is. Kutatási/kísérleti célra."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Ha engedélyezve van, a szeletelő úgy állítja elő a G-code-ot, hogy az elsődleges zóna tartalma az asztal origójára (0,0) van középre igazítva. A másolatok/tükörképek elhelyezése az egyes fizikai zónapozíciókba a nyomtató firmware-ének feladata. Csak olyan nyomtatókon engedélyezd, amelyek firmware-e másolat/tükör módban saját zónaeltolásokat alkalmaz (pl. RepRapFirmware IDEX duplikációs mód). Elsődleges (Primary) módban nincs hatása."
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Tálcánkénti felülbírálás, amely a fizikai fejeket filamenthelyekhez rendeli (1-től számozva). Üresen a pem-inverzióból származó alapértelmezéseket használja."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Az a tengely, amely körül a háló szeletelés előtt elfordul. Ez a szalagos nyomtató dőlése: izometrikus (torzításmentes) forgatás, amely az asztal megjelenítését és a támaszok gravitációs dőlését is meghatározza, és amelyet a G-code visszatranszformáció megfordít a gépi koordináta-rendszerbe történő nyírás/skálázás és tengelyleképezés előtt. Jellemzően X a portál dőlési tengelye (a szalag Y irányban halad)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Szakértői felülbírálás: a gépi koordináta-rendszer (G-code nyírás/skálázás) dőlésszöge a szeletelés előtti forgatási szögtől függetlenül állítható be. Ha ki van kapcsolva, a gépi koordináta-rendszer transzformációja a szalag dőlésszögéből származik, így egyetlen szög vezérli mindkét lépést. Csak akkor engedélyezd, ha olyan gépet kell kompenzálni, amelynek fizikai portáldőlése eltér a szeletelési forgatástól."
+
+# AI Translated
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "A megengedett legnagyobb eltérés a „Maximális falfelbontás” beállítás felbontásának csökkentésekor. Ha ezt növeled, a nyomtatás kevésbé lesz pontos, de a G-code kisebb lesz. A „maximális faleltérés” korlátozza a „maximális falfelbontást”, így ha a kettő ütközik, a „Maximális faleltérés” élvez elsőbbséget."
+
+#~ msgid " not in range "
+#~ msgstr " nincs a tartományban "
+
+#~ msgid "floating regions"
+#~ msgstr "lebegő régiók"
+
+#~ msgid "floating cantilever"
+#~ msgstr "lebegő konzol"
+
+#~ msgid "large overhangs"
+#~ msgstr "nagy túlnyúlások"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Úgy tűnik, hogy a(z) %s objektumnál %s található. Tájold át az objektumot, vagy engedélyezd a támaszgenerálást."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Nem észlelhetők rétegek. Érdemes lehet kijavítani az STL fájl(oka)t, vagy ellenőrizni a méretüket, illetve vastagságukat, majd újra megpróbálni.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Ez a géptípus fúvókánként legfeljebb %d előzményeredményt tud tárolni. Ez az eredmény nem lesz elmentve."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Ez a géptípus fúvókánként legfeljebb %d előzményeredményt tud tárolni."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Túlnyúlás"
+
+#~ msgid "Start / End"
+#~ msgstr "Kezdés / Vég"
+
+#~ msgid "Damp"
+#~ msgstr "Csillapítás"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "%d IFS hely észlelve a nyomtatón."
+
+#~ msgid "selected"
+#~ msgstr "kiválasztva"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "A következő profil örökli ezt a profilt."
+#~ msgstr[1] "A következő profilok öröklik ezt a profilt."
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "%zu Creality nyomtató található. Válassz ki egyet, majd kattints a Kijelölt használata gombra."
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "napló(k)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Hiba: a(z) %s extruderhez nincs elérhető %s fúvóka, a jelenlegi csoportosítás eredménye érvénytelen."
+
+#~ msgid "invalid brim ears"
+#~ msgstr "érvénytelen peremfülek"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "%d objektum kihagyása."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Mappa megnyitása a fájlkezelőben"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Kattints a középpontra, majd egy csúcsra — %d oldal, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "köré írt"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "beírt"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Vázlat létrehozva (%zu vezérlő méret) — jelöld ki, majd jobb kattintással extrudáld"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — %zu háromszög"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Ez a háló %d háromszögből áll. Az egysíkú lapok összevonása előtt minden háromszögből B-rep lap lesz, így az importálás sokáig tarthat, és a kapott test lassan szerkeszthető lesz. Általában jobb, ha előbb egyszerűsíted a hálót.\n"
+#~ "\n"
+#~ "Mégis importálod?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Szilárd test importálva — %d háromszög → %d lap, térfogat: %.2f mm³. Válassz ki egy lapot vagy élt, majd módosítsd Lekerekítéssel / Vágással / Héjazással"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — húzással helyezd el/méretezd, majd Megerősítés"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d vázlatelem"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — írj be egy értéket, majd nyomd meg az Entert (vagy Megerősítés)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Előnézet — %zu háromszög"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "%1% kényszer nem alkalmazható erre a geometriára (ellipszis- vagy spline-görbe, illetve nulla méretű kör), ezért figyelmen kívül marad"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "A lekerekítés/letörés által érvénytelenített %1% kényszer eltávolítva"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "A transzformálás %1% kényszert feloldott"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...és további %1% nyitott vég"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "Az anyaglista legfeljebb %1% színt támogat. A(z) %2% szétbontása után az anyagok száma meghaladná ezt: %1%. Szétbontás előtt töröld a nem használt filamenteket a főképernyőn."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% nyomtatható szín %2% filamentből"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% sziget"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Mind a(z) %1% réteg használatban"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Előnézet: %1% háromszög"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Modell: %1% háromszög - a beégetés a fenti felbontásig finomít, legfeljebb a keretéig"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "A beégetés a meglévő csúcsokat mozgatja - a modell %1% háromszögű marad"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "A beégetés eredménye legfeljebb ~%1% k háromszög"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% réteg nincs befestve, kihagyva"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "A projekt legfeljebb %d filamentet támogat. A felesleges filamentek el lesznek vetve."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d csúcs kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d él kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d sziget kijelölve | húzás = együttes mozgatás, Shift/Ctrl + kattintás = hozzáadás/eltávolítás, R/S = az elsődleges forgatása/átméretezése"
+
+# AI Translated
+# Needs human review: The English says 'Change it with Tiling' but the layer card has no 'Tiling' label, only 'Tile' (Csempézés) and 'Tile size' (Csempeméret); check which control is meant and quote its label.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Az aktív réteg csempemérete: a textúra egy ismétlése mekkora részt fed le a modellből. A vászon csempékben mérődik, így egy rácscella egy ismétlésnek felel meg. A réteg beállításaiban, a Csempézésnél módosíthatod."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d sziget, %s felület"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "A(z) \"%s\" bővítmény a következő fájl(ok) olvasását kéri:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "A(z) \"%s\" bővítmény a következő fájl(ok) olvasását/írását kéri:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "A(z) \"%s\" bővítmény a következő fájl(ok) létrehozását kéri:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "A(z) \"%s\" bővítmény a következő fájl(ok) törlését kéri:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "A(z) \"%s\" bővítmény a következő parancs(ok) futtatását kéri:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "A bővítmény telepítése sikertelen"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "A Microsoft WebView2 Runtime telepítése nem sikerült.\n"
+#~ "Egyes funkciók, köztük a beállítási varázsló, üresen jelenhetnek meg a telepítéséig.\n"
+#~ "Kérlek, telepítsd kézzel innen: https://developer.microsoft.com/microsoft-edge/webview2/, majd indítsd újra az Orca Slicert."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Miért ez a csoportosítás"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "A szoftver nem támogatja eltérő fúvókaátmérők használatát egy nyomtatáson belül. Ha a bal és jobb fúvóka nem egyezik, csak egyfejes nyomtatás lehetséges. Erősítsd meg, melyik fúvókát szeretnéd használni ennél a projektnél."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Átmérő váltása"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "BambuStudio projekt"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "A 3MF-et a BambuStudio készítette (%s verzió), amely újabb, mint a %s kompatibilis verzió. Felismeretlen beállításokat találtunk:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "A 3MF-et a BambuStudio készítette (%s verzió), amely újabb, mint a %s kompatibilis verzió. Előfordulhat, hogy egyes beállítások nem teljesen kompatibilisek."
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "A 3MF-et a BambuStudio készítette. Egyes beállítások eltérhetnek az OrcaSlicer-től."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Művelet futása közben nem lehet visszavonni vagy újra végrehajtani. Előbb állítsd le."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Az egyes tárgyak belső kitöltését önmagukra igazítja, mintha külön lennének szeletelve, nem pedig a teljes összeállításra. Az egymáshoz érő vagy egymást átfedő tárgyak egy testként kezelődnek, és közös középpontot kapnak; a különálló tárgyak (vagy önálló 3D objektumok) mindegyike sajátot.\n"
+#~ "Akkor hasznos, ha egy összeállítás több objektumot fog össze, és mindegyiknek egységes, önmagára igazított kitöltést kell megtartania.\n"
+#~ "A vonalas és rácsos mintázatokra, valamint a forgatási sablont használó kitöltésekre van hatással.\n"
+#~ "A globális koordinátákhoz kötött mintázatokat (Gyroid, Méhsejt, TPMS, ...) nem érinti."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Az aktuális réteg indexe. Egytől számozott (azaz az első réteg száma 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Videós útmutató"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Primitív"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Üres háló jött létre"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Téglatest"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Gyors:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Szélesség (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Mélység (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Magasság (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "Alsó R"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "Felső R"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "Fő R"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "Cső R"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Minden él"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Felső élek"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Alsó élek"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Oldalélek"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Hálófelbontás"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Alakzat hozzáadása"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Nincs külső profil"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Nem sikerült létrehozni a külső lapot"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Nem sikerült létrehozni a lyukas lapot"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "A körbeforgatás sikertelen"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Profil"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Új profil kezdése (lyukakhoz)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Szakaszok"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Oldalak"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Kattints a vászonra a rajzoláshoz"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Rácshoz illesztés"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Rács lépésköze"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Külső"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "zárt"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% pont %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (felülnézet)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (elölnézet)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (oldalnézet)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Körbeforgatás (°)"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "0: extrudálás, >0: körbeforgatás"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Zseb (vágás)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu zárt profil"
+#~ msgstr[1] "%zu zárt profil"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Az engedélyezéshez rajzolj egy zárt profilt"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Üres eredmény"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Extrudálás: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Körbeforgatás: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Nincs kijelölt objektum"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "A lap létrehozása sikertelen"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "A lyukas lap létrehozása sikertelen"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "A szerszámháló üres"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Zseb hozzáadva (negatív térfogat)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Zseb: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Az aktív réteghez Kiterítés (LSCM) hozzárendelés szükséges."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Sakktábla - tesztrács a textúra helyett. Ahol a négyzetek négyzetek maradnak, a textúra torzításmentes; ahol megnyúlnak, ott a textúra is meg fog"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Torzítás - kéktől pirosig terjedő nyúlási hőtérkép a kiterítésen"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Keverés módja"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Felület"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Rétegek: a két filament a nyomtatási rétegek között váltakozik, ami függőleges felületeken simán összeolvad, de vízszintes felületeken eltűnik, ahol egy teljes réteg egyetlen sáv.\n"
+#~ "Felület: finom sakktáblaminta a felületen, ami bármilyen szögben működik, de keverék helyett inkább textúrának hathat.\n"
+#~ "Automatikus: függőleges felületeken rétegek; a vízszintes felületek a közelebbi egyetlen filamentet kapják, mivel ott a sakktábla mintázatként látszik."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Sziget - teljes szigetek mozgatása, forgatása és átméretezése"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Csúcs - csúcsok húzása az alakításhoz; Shift/Ctrl a többszörös kijelöléshez"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Él - élek húzása az alakításhoz; Shift/Ctrl a többszörös kijelöléshez"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Összes sziget a nézetben (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Kísérleti) Nyomtatóügynökök használata nyomtatókiszolgálók helyett"
@@ -31314,16 +37500,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Kattints egy lapra vagy egy referenciasíkra, majd válassz egy rajzeszközt"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -31380,10 +37556,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Függőleges távolság"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Lineáris"
-
#~ msgid "Face recognition"
#~ msgstr "Arcfelismerés"
@@ -32801,9 +38973,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Nem sikerült kiszámítani %1% vonalszélességét. \"%2%\" értéke nem érhető el "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Érvénytelen térköz lett megadva a Flow::with_spacing() függvényhez, ellenőrizd a rétegmagasságot és az extrudálási szélességet"
-
#~ msgid "Continue to sync filaments"
#~ msgstr "Filamentek szinkronizálásának folytatása"
@@ -32973,9 +39142,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "alkatrész kijelölés"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid "Loading current beállítás"
#~ msgstr "Jelenlegi beállítás betöltése"
diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po
index 9c9f915319..960cbf4bec 100644
--- a/localization/i18n/it/OrcaSlicer_it.po
+++ b/localization/i18n/it/OrcaSlicer_it.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -392,8 +392,10 @@ msgid "Please wait"
msgstr "Attendi prego"
# AI Translated
-msgid "Reading"
-msgstr "Lettura"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Rack Hotend a Induzione: lettura %d/%d"
msgid "Running..."
msgstr "In Corso..."
@@ -549,9 +551,12 @@ msgstr "Strumento selezione faccia come base"
msgid "Lay on Face"
msgstr "Posiziona su faccia"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Il numero di filamenti supera il numero massimo supportato dallo strumento di pittura. Solo il primo %1% dei filamenti sarà disponibile nello strumento di pittura."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Il numero di filamenti supera il massimo supportato dallo strumento di pittura. Solo %1% filamento sarà disponibile nello strumento di pittura."
+msgstr[1] "Il numero di filamenti supera il massimo supportato dallo strumento di pittura. Solo i primi %1% filamenti saranno disponibili nello strumento di pittura."
msgid "Color Painting"
msgstr "Pittura a colori"
@@ -604,8 +609,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Invio"
-msgid "Shortcut Key "
-msgstr "Tasto di scelta rapida "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Tasto di scelta rapida %d"
msgid "Triangle"
msgstr "Triangolo"
@@ -704,6 +711,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Selezione parte"
+msgid "Select multiple objects"
+msgstr "Seleziona più oggetti"
+
msgid "Fixed step drag"
msgstr "Trascinamento a passo fisso"
@@ -768,10 +778,79 @@ msgstr "Parte"
msgid "Relative"
msgstr "Relativo"
+msgid "Selection"
+msgstr "Selezione"
+
+msgid "Plate"
+msgstr "Piatto"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "Sistema di coordinate utilizzato per le azioni di trasformazione."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Allinea a sinistra"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Allinea al centro sinistra-destra"
+
+# AI Translated
+msgid "Align right"
+msgstr "Allinea a destra"
+
+# AI Translated
+msgid "Align front"
+msgstr "Allinea davanti"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Allinea al centro davanti-dietro"
+
+# AI Translated
+msgid "Align back"
+msgstr "Allinea dietro"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Allinea in basso"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Allinea al centro alto-basso"
+
+# AI Translated
+msgid "Align top"
+msgstr "Allinea in alto"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Distribuisci sinistra-destra"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Distribuisci davanti-dietro"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Distribuisci alto-basso"
+
+msgid "Drop"
+msgstr "Lascia"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "Assoluto"
@@ -875,9 +954,6 @@ msgstr "Angolo Scanalatura"
msgid "Cut position"
msgstr "Posizione taglio"
-msgid "Build Volume"
-msgstr "Volume di stampa"
-
msgid "Multiple"
msgstr "Multiplo"
@@ -1053,11 +1129,19 @@ msgstr "Connettore"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
-"Gli oggetti (%1%) hanno connettori duplicati. Alcuni connettori potrebbero mancare nel risultato dello slicing.\n"
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"L'oggetto (%1%) ha connettori duplicati. Alcuni connettori potrebbero mancare nel risultato dell'elaborazione.\n"
+"Segnala al team di OrcaSlicer in quale scenario si è verificato questo problema.\n"
+"Grazie."
+msgstr[1] ""
+"Gli oggetti (%1%) hanno connettori duplicati. Alcuni connettori potrebbero mancare nel risultato dell'elaborazione.\n"
"Segnala al team di OrcaSlicer in quale scenario si è verificato questo problema.\n"
"Grazie."
@@ -1126,9 +1210,12 @@ msgstr "Basso"
msgid "Extra low"
msgstr "Molto basso"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d triangoli"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% triangolo"
+msgstr[1] "%1% triangoli"
msgid "Show wireframe"
msgstr "Mostra modello reticolato"
@@ -1139,6 +1226,17 @@ msgstr "Non si può applicare durante la creazione dell'anteprima."
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Operazione già annullata. Si prega di attendere qualche secondo."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "La semplificazione del modello è stata annullata"
+
+msgid "Wiki Guide"
+msgstr "Guida Wiki"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Guida video"
+
# AI Translated
msgid "Enforce seam"
msgstr "Forza cucitura"
@@ -1190,6 +1288,14 @@ msgstr "Posizione sulla superficie"
msgid "Emboss"
msgstr "Rilievo"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Nessun carattere attivo nello stile. Seleziona quello corretto."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont non è stato caricato correttamente."
+
msgid "NORMAL"
msgstr "NORMALE"
@@ -1845,11 +1951,25 @@ msgstr "Diametro"
msgid "Length"
msgstr "Lunghezza"
-msgid "Selection"
-msgstr "Selezione"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Faccia 1 (fissa)"
-msgid " (Moving)"
-msgstr " (In movimento)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Faccia 2 (in movimento)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Punto 1 (fisso)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Punto 2 (in movimento)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Selezione 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1865,14 +1985,9 @@ msgstr ""
"Seleziona 2 punti o cerchi sugli oggetti e \n"
" specifica la distanza tra loro."
-msgid "Face"
-msgstr "Faccia"
-
-msgid " (Fixed)"
-msgstr " (Risolto)"
-
-msgid "Point"
-msgstr "Punto"
+# AI Translated
+msgid "Selection 2"
+msgstr "Selezione 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1975,6 +2090,18 @@ msgstr "Attivazione strumento Assemblaggio"
msgid "Leaving Assembly gizmo"
msgstr "Uscita dallo strumento Assemblaggio"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Maiusc+"
@@ -2152,14 +2279,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Impossibile installare il Microsoft WebView2 Runtime.\n"
"Alcune funzionalità, inclusa la configurazione guidata, potrebbero apparire vuote finché non viene installato.\n"
-"Installalo manualmente da https://developer.microsoft.com/microsoft-edge/webview2/ e riavvia Orca Slicer."
+"Installalo manualmente da %1% e riavvia Orca Slicer."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2401,6 +2529,66 @@ msgstr "Restrizione modulo di rete"
msgid "Privacy Policy Update"
msgstr "Aggiornamento dell'informativa sulla riservatezza"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Tutti i tuoi profili di filamento sono disponibili sulle stampanti per cui sono stati creati."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Migra profili di filamento"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 ha ristrutturato molti profili di filamento di sistema per correggere profili errati e prepararsi a funzionalità future. Di conseguenza, i profili qui sotto non compaiono più su alcune delle stampanti per cui sono stati creati. Ci scusiamo per il disagio; si tratta di una correzione una tantum.\n"
+"\n"
+"Vuoi aggiungere di nuovo queste stampanti ai tuoi profili adesso? Prima viene eseguito il backup dei tuoi profili. Puoi farlo anche in seguito da Aiuto > Migra profili di filamento."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (basato su %2%)"
+
+msgid "Don't remind me again"
+msgstr "Non ricordarmelo più"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Non è stato possibile eseguire il backup dei tuoi profili, quindi non sono stati migrati."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Non è stato possibile bloccare la cartella dei profili utente, quindi non è stato migrato nulla. Un'altra istanza di OrcaSlicer potrebbe essere in fase di salvataggio dei profili; riprova più tardi da Aiuto > Migra profili di filamento."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Non è stato possibile migrare i tuoi profili di filamento. Un backup dei tuoi profili è stato salvato in:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"I tuoi profili di filamento sono stati migrati. Selezionali di nuovo nell'elenco dei filamenti dove li utilizzavi.\n"
+"\n"
+"Un backup dei tuoi profili è stato salvato in:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Non è stato possibile migrare questi profili:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "il tuo profilo Orca Cloud (ID utente: \"%s\")"
@@ -2521,6 +2709,9 @@ msgstr "Plugin aggiornati."
msgid "Failed to refresh plugins: %s"
msgstr "Aggiornamento dei plugin non riuscito: %s"
+msgid "Unknown error"
+msgstr "Errore sconosciuto"
+
# AI Translated
msgid "Select plugin package"
msgstr "Seleziona pacchetto plugin"
@@ -3047,6 +3238,22 @@ msgstr "Ricarica tutto"
msgid "Reload all from disk"
msgstr "Ricarica tutto dal disco"
+# AI Translated
+msgid "Fix All"
+msgstr "Correggi tutto"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Correggi tutti i modelli sul piatto corrente"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Correggi tutti i piatti"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Correggi tutti i modelli su tutti i piatti"
+
msgid "Auto Rotate"
msgstr "Rotazione automatica"
@@ -3098,8 +3305,13 @@ msgstr "(Colore perso)"
msgid "Center"
msgstr "Centro"
-msgid "Drop"
-msgstr "Lascia"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Allinea/Distribuisci"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Allinea e distribuisci gli oggetti"
msgid "Edit Process Settings"
msgstr "Modifica impostazioni di processo"
@@ -3396,6 +3608,13 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] "Impossibile riparare il seguente modello di oggetto"
msgstr[1] "Impossibile riparare i seguenti modelli di oggetti"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d modello di oggetto non ha richiesto riparazioni."
+msgstr[1] "%1$d modelli di oggetti non hanno richiesto riparazioni."
+
msgid "Repairing was canceled"
msgstr "La riparazione è stata annullata"
@@ -3468,9 +3687,6 @@ msgstr "Senza tesa"
msgid "Outer wall speed"
msgstr "Velocità parete esterna"
-msgid "Plate"
-msgstr "Piatto"
-
msgid "Brim"
msgstr "Tesa"
@@ -3553,9 +3769,6 @@ msgstr "Aggiungi modello personalizzato"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Inserisci un modello G-code personalizzato all'inizio di questo strato."
-msgid "Filament "
-msgstr "Filamento "
-
msgid "Change filament at the beginning of this layer."
msgstr "Cambia filamento all'inizio di questo strato."
@@ -3644,8 +3857,10 @@ msgstr "Modifica comunque"
msgid "Off"
msgstr "Spento"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
-msgstr "Filtra"
+msgstr "Filtro"
msgid "Enabling filtration redirects the right fan to filter gas, which may reduce cooling performance."
msgstr "L'abilitazione della filtrazione reindirizza la ventola destra al filtraggio del gas, il che potrebbe ridurre le prestazioni di raffreddamento."
@@ -3758,12 +3973,19 @@ msgid "Check filament location"
msgstr "Controllare la posizione del filamento"
# AI Translated
-msgid "Switch"
-msgstr "Cambia"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Pausa"
# AI Translated
-msgid "hotend"
-msgstr "hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Cambiare estrusore"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Cambiare hotend"
# AI Translated
msgid "Wait for AMS cooling"
@@ -3944,8 +4166,10 @@ msgid "Arranging"
msgstr "Disposizione"
# AI Translated
-msgid "Arranging "
-msgstr "Disposizione "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Disposizione di %1%"
msgid "Arranging canceled."
msgstr "Disposizione annullata."
@@ -3984,8 +4208,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Orientamento..."
-msgid "Orienting"
-msgstr "Orientamento"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Orientamento di %1%"
msgid "Orienting canceled."
msgstr "Orientamento annullato."
@@ -3993,6 +4220,12 @@ msgstr "Orientamento annullato."
msgid "Filling"
msgstr "Riempimento"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Riempimento di %1%"
+
msgid "Bed filling canceled."
msgstr "Riempimento del piatto annullato."
@@ -4008,6 +4241,34 @@ msgstr "Ricerca orientamento annullata."
msgid "Orientation found."
msgstr "Trovato orientamento."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Migliore qualità della superficie"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Ottimizza la rotazione dell'oggetto per ottenere la migliore qualità della superficie."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Pendenze delle sporgenze ridotte"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Ottimizza la rotazione dell'oggetto per ridurre al minimo le sporgenze che richiedono strutture di supporto.\n"
+"Nota: se non è impostata alcuna elevazione, questo metodo cerca di individuare la superficie migliore dell'oggetto da appoggiare sul piatto."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Altezza Z minima"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Ruota il modello per ottenere l'altezza Z minima e ridurre il tempo di stampa."
+
msgid "Logging in"
msgstr "Accesso in corso"
@@ -4298,6 +4559,16 @@ msgstr "Progetti recenti"
msgid "Go to Plate"
msgstr "Vai al piatto"
+msgid "Device"
+msgstr "Dispositivo"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Dispositivo (Web)"
+
+msgid "Multi-device"
+msgstr "Multi-dispositivo"
+
msgid "AMS Materials Setting"
msgstr "Impostazione materiali AMS"
@@ -4326,9 +4597,6 @@ msgstr "Il valore immesso deve essere maggiore di %1% e minore di %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Fattori di calibrazione della dinamica del flusso"
-msgid "Wiki Guide"
-msgstr "Guida Wiki"
-
msgid "PA Profile"
msgstr "Profilo AP"
@@ -4358,6 +4626,14 @@ msgstr "Si prega di immettere un valore valido (K in %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Si prega di immettere un valore valido (K in %.1f~%.1f, N in %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Filamenti preferiti"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Tutti i filamenti"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4419,7 +4695,7 @@ msgstr "Salva"
msgctxt "Navigation"
msgid "Back"
-msgstr "Posteriore"
+msgstr "Indietro"
msgid "Example"
msgstr "Esempio"
@@ -4676,11 +4952,11 @@ msgstr "Il modulo di rete è stato installato ma non è stato possibile caricarl
msgid "Restart Required"
msgstr "Riavvio necessario"
-msgid "Please home all axes (click "
-msgstr "Porta gli assi al punto di origine (clicca "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") per individuare la posizione del gruppo testina. In questo modo si evita che il dispositivo si sposti oltre il limite stampabile, causando l'usura dell'apparecchiatura."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Porta gli assi al punto di origine (clicca %1%) per individuare la posizione della testa di stampa. In questo modo si evita che il dispositivo si sposti oltre il limite stampabile, causando l'usura dell'apparecchiatura."
msgid "Go Home"
msgstr "Vai all'origine"
@@ -4695,6 +4971,10 @@ msgstr "Si è verificato un errore irreversibile: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Salva il progetto e riavvia l'applicazione."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Eccezione C++ sconosciuta."
+
msgid "Processing G-Code from previous file…"
msgstr "Elaborazione G-Code dal file precedente..."
@@ -4916,6 +5196,14 @@ msgstr "Regolarla automaticamente al limite (%g mm)?"
msgid "Adjust"
msgstr "Regola"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Zattera e scudo protettivo non sono disponibili sulle stampanti a nastro.\n"
+"Sono stati disattivati."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5750,9 +6038,6 @@ msgstr "Rielabora automaticamente in base al raggruppamento ottimale dei filamen
msgid "Filament Grouping"
msgstr "Raggruppamento filamenti"
-msgid "Why this grouping"
-msgstr "Perché questo raggruppamento"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Posizionare i filamenti sulla stampante in base al risultato del raggruppamento."
@@ -5762,29 +6047,47 @@ msgstr "Suggerimenti:"
msgid "Current grouping of slice result is not optimal."
msgstr "Il raggruppamento attuale del risultato di slicing non è ottimale."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Aumento di %1%g di filamento e %2% cambi rispetto al raggruppamento ottimale."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Aumento di %1%g di filamento e %2% cambio rispetto al raggruppamento ottimale."
+msgstr[1] "Aumento di %1%g di filamento e %2% cambi rispetto al raggruppamento ottimale."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Aumento di %1%g di filamento e risparmio di %2% cambi rispetto al raggruppamento ottimale."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Aumento di %1%g di filamento e risparmio di %2% cambio rispetto al raggruppamento ottimale."
+msgstr[1] "Aumento di %1%g di filamento e risparmio di %2% cambi rispetto al raggruppamento ottimale."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Risparmio di %1%g di filamento e aumento di %2% cambi rispetto al raggruppamento ottimale."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Risparmio di %1%g di filamento e aumento di %2% cambio rispetto al raggruppamento ottimale."
+msgstr[1] "Risparmio di %1%g di filamento e aumento di %2% cambi rispetto al raggruppamento ottimale."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Risparmio di %1%g di filamento e %2% cambi rispetto a una stampante con un ugello."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Risparmio di %1%g di filamento e %2% cambio rispetto a una stampante con un ugello."
+msgstr[1] "Risparmio di %1%g di filamento e %2% cambi rispetto a una stampante con un ugello."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Risparmio di %1%g di filamento e aumento di %2% cambi rispetto a una stampante con un ugello."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Risparmio di %1%g di filamento e aumento di %2% cambio rispetto a una stampante con un ugello."
+msgstr[1] "Risparmio di %1%g di filamento e aumento di %2% cambi rispetto a una stampante con un ugello."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Aumento di %1%g di filamento e risparmio di %2% cambi rispetto a una stampante con un ugello."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Aumento di %1%g di filamento e risparmio di %2% cambio rispetto a una stampante con un ugello."
+msgstr[1] "Aumento di %1%g di filamento e risparmio di %2% cambi rispetto a una stampante con un ugello."
msgid "Set to Optimal"
msgstr "Imposta al valore ottimale"
@@ -5941,11 +6244,61 @@ msgstr "Aumenta/diminuisci l'area di modifica"
msgid "Sequence"
msgstr "Sequenza"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Centro di massa del piatto"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Centro di massa della parte"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Centro di massa del supporto"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Centro di massa dell'assemblaggio"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Centro di massa dell'oggetto"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Stampa completata"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Stampato fino allo strato %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Peso"
+
+# AI Translated
+msgid "Volume"
+msgstr "Volume"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Centro nel riquadro di delimitazione"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Dimensione del riquadro di delimitazione"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Momento d'inerzia"
+
msgid "Object selection"
msgstr "Selezione oggetto"
-msgid "number keys"
-msgstr "tasti numerici"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "Tasti numerici 1~16"
msgid "Number keys can quickly change the color of objects"
msgstr "I tasti numerici possono cambiare rapidamente il colore degli oggetti"
@@ -6154,9 +6507,20 @@ msgstr "Assi"
msgid "Gridlines"
msgstr "Linee griglia"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Etichette"
+# AI Translated
+msgid "Center of mass"
+msgstr "Centro di massa"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Mostra G-code grezzo (solo nastro)"
+
# AI Translated
msgid "Move section plane"
msgstr "Sposta il piano di sezione"
@@ -6206,7 +6570,7 @@ msgstr "Volume:"
msgid "Size:"
msgstr "Dimensione:"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Sono stati trovati conflitti di percorsi nel G-code sullo strato %d, Z = %.2lfmm. Si prega di separare gli oggetti in conflitto (%s <-> %s)."
@@ -6226,21 +6590,19 @@ msgstr "La stampa con 2 o più filamenti TPU non è supportata."
msgid "Tool %d"
msgstr "Testina %d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Il filamento %s è posizionato nel %s, ma il percorso G-code generato supera l'area stampabile del %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "I filamenti %s sono posizionati nel %s, ma il percorso G-code generato supera l'area stampabile del %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "Il filamento %s è posizionato nel %s, ma il percorso G-code generato supera l'area stampabile del %s."
+msgstr[1] "I filamenti %s sono posizionati nel %s, ma il percorso G-code generato supera l'area stampabile del %s."
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Il filamento %s è posizionato nel %s, ma il percorso G-code generato supera l'altezza stampabile del %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "I filamenti %s sono posizionati nel %s, ma il percorso G-code generato supera l'altezza stampabile del %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "Il filamento %s è posizionato nel %s, ma il percorso G-code generato supera l'altezza stampabile del %s."
+msgstr[1] "I filamenti %s sono posizionati nel %s, ma il percorso G-code generato supera l'altezza stampabile del %s."
msgid "Open wiki for more information."
msgstr "Apri la wiki per maggiori informazioni."
@@ -6248,9 +6610,12 @@ msgstr "Apri la wiki per maggiori informazioni."
msgid "Only the object being edited is visible."
msgstr "È visibile solo l'oggetto da modificare."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "I filamenti %s non possono essere stampati direttamente sulla superficie di questa piastra."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "Il filamento %s non può essere stampato direttamente sulla superficie di questo piatto."
+msgstr[1] "I filamenti %s non possono essere stampati direttamente sulla superficie di questo piatto."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "Rilevati filamenti PLA e PETG nella miscela. Regolare i parametri in base alla Wiki per garantire la qualità di stampa."
@@ -6373,19 +6738,9 @@ msgstr "Prepara"
msgid "Preview"
msgstr "Anteprima"
-msgid "Device"
-msgstr "Dispositivo"
-
-msgid "Multi-device"
-msgstr "Multi-dispositivo"
-
msgid "Project"
msgstr "Progetto"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Dispositivo (Web)"
-
msgid "Yes"
msgstr "Sì"
@@ -6393,8 +6748,11 @@ msgstr "Sì"
msgid "No"
msgstr "No"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "verrà chiuso prima di creare un nuovo modello. Vuoi continuare?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s verrà chiuso prima di creare un nuovo modello. Vuoi continuare?"
msgid "Print all"
msgstr "Stampa tutto"
@@ -6439,6 +6797,10 @@ msgstr "Configurazione Guidata"
msgid "Show Configuration Folder"
msgstr "Mostra cartella di configurazione"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Ripristina i profili di filamento che un aggiornamento dei profili ha rimosso dalle stampanti per cui erano stati creati"
+
# AI Translated
msgid "Troubleshoot Center"
msgstr "Centro di risoluzione dei problemi"
@@ -6678,6 +7040,14 @@ msgstr "Mostra linee griglia"
msgid "Show Gridlines on plate"
msgstr "Mostra linee griglia sulla piastra"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Mostra testa di stampa IDEX/IQEX"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Mostra la rappresentazione della testa di stampa IDEX/IQEX attorno a ogni ugello attivo nell'anteprima G-code."
+
msgid "Reset Window Layout"
msgstr "Ripristina disposizione finestra"
@@ -7314,6 +7684,8 @@ msgstr "Vota"
msgid "Calculating..."
msgstr "Calcolo in corso..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Telecamera"
@@ -7395,9 +7767,12 @@ msgstr "Scaricamento..."
msgid "Cloud Slicing..."
msgstr "Elaborazone nel cloud..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "Ci sono %s attività davanti nella coda di elaborazione del cloud."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "C'è %d attività davanti nella coda di elaborazione del cloud."
+msgstr[1] "Ci sono %d attività davanti nella coda di elaborazione del cloud."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7428,6 +7803,11 @@ msgstr "Questo ha effetto solo in fase di stampa"
msgid "Silent"
msgstr "Silenzioso"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Standard"
+
msgid "Sport"
msgstr "Sportivo"
@@ -7484,17 +7864,29 @@ msgstr "Carica foto"
msgid "Number of images successfully uploaded"
msgstr "Numero di immagini caricate con successo"
-msgid " upload failed"
-msgstr " Caricamento non riuscito"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Caricamento di %s non riuscito"
-msgid " upload config prase failed\n"
-msgstr " Caricamento della configurazione non riuscita\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Analisi della configurazione di caricamento di %s non riuscita"
-msgid " No corresponding storage bucket\n"
-msgstr " Nessun secchio di stoccaggio corrispondente\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: nessun bucket di archiviazione corrispondente"
-msgid " cannot be opened\n"
-msgstr " non può essere aperto\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s non può essere aperto"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7512,24 +7904,20 @@ msgstr "Caricamento non riuscito\n"
msgid "Obtaining instance_id failed\n"
msgstr "Ottenimento di instance_id non riuscito\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Il risultato del tuo commento non può essere caricato per i seguenti motivi:\n"
-"\n"
-" Codice di errore: "
-
-msgid "error message: "
-msgstr "messaggio d'errore: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Impossibile caricare il tuo commento per i seguenti motivi:\n"
"\n"
+" codice di errore: %d\n"
+" messaggio di errore: %s\n"
"\n"
"Vuoi essere reindirizzato alla pagina web per la valutazione?"
@@ -8371,6 +8759,108 @@ msgstr "Visualizza tutte le impostazioni dell'oggetto"
msgid "Material settings"
msgstr "Impostazioni materiale"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Ogni modalità indica le testine coinvolte e il ruolo di ciascuna. Fai clic sul pulsante di una testina per cambiarne il ruolo a rotazione; passa il mouse su un colore qui sotto per vedere cosa fa ogni ruolo."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Aggiungi modalità"
+
+# AI Translated
+msgid "Tools"
+msgstr "Strumenti"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Come la modalità appare nel selettore della modalità IDEX/IQEX del piatto. Obbligatorio: una modalità senza nome non può essere selezionata."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Quali testine partecipano alla modalità e quale ruolo svolge ciascuna. Fai clic su un riquadro per cambiarne il ruolo a rotazione."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code eseguito all'inizio della stampa per portare la stampante in questa modalità (ad esempio una chiamata Klipper SET_PRINT_MODE). Lo slicer genera solo i percorsi della testina Principale (Primary); il firmware gestisce le altre."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Inattivo"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Principale"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Copia"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Specchio"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Esegue tutti i percorsi elaborati. È sempre la testina 0: usa Posizione testina 0 qui sopra per scegliere in quale angolo del piatto si trova. Non può essere spostata dalla griglia."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Segue la testina Principale (Primary) a livello di firmware, stampando gli stessi percorsi traslati nella propria zona."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Segue la testina Principale (Primary) a livello di firmware, stampando gli stessi percorsi riflessi rispetto al confine tra le due zone."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Contrassegna una testina sul portale della testina Principale (Primary) come sua partner multicolore. Necessario per consentire la stampa multicolore nelle modalità a portali accoppiati."
+
+# AI Translated
+msgid "Primary"
+msgstr "Principale"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Nome modalità (obbligatorio)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Nome di questa modalità parallela, come appare nel selettore della modalità IDEX/IQEX del piatto. Viene salvato nel progetto per nome, quindi rinominare una modalità già usata dai piatti li fa tornare alla modalità Principale (Primary). Non può essere vuoto: un nome vuoto viene sostituito da uno generato."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code emesso una sola volta all'inizio di una stampa che usa questa modalità, prima del G-code iniziale macchina. Qui si porta la stampante nella modalità firmware corrispondente, ad esempio con una chiamata Klipper SET_PRINT_MODE o un M567 di RepRapFirmware, poiché lo slicer genera solo i percorsi della testina Principale (Primary) e il firmware gestisce le testine Copia (Copy) / Specchio (Mirror). I segnaposto sono supportati; usa il pulsante di modifica per sfogliarli. Lascia vuoto se la modalità non richiede alcuna configurazione del firmware."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Modifica G-code / sfoglia segnaposto"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Rimuovi modalità"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Scarta le modifiche a questa modalità fatte in questa sessione (ripristina il valore salvato)"
+
msgid "Remove current plate (if not last one)"
msgstr "Rimuovi il piatto corrente (se non è l'ultimo)"
@@ -8395,12 +8885,33 @@ msgstr "Modifica il nome del piatto corrente"
msgid "Move plate to the front"
msgstr "Sposta il piatto in avanti"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "Modalità IDEX/IQEX: %1% (profilo di processo: %2%) (clic sinistro per cambiarla a rotazione, clic destro per il menu)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "Modalità IDEX/IQEX: %1% (clic sinistro per cambiarla a rotazione, clic destro per il menu)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Attenzione: questo piatto usa una modalità IDEX/IQEX parallela con oggetti multimateriale. Procedi con cautela e verifica che il tuo G-code gestisca correttamente questa combinazione."
+
msgid "Customize current plate"
msgstr "Personalizza il piatto corrente"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "L'ugello %s non può stampare %s."
+msgid "The left nozzle cannot print %s."
+msgstr "L'ugello sinistro non può stampare %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "L'ugello destro non può stampare %s."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8410,12 +8921,18 @@ msgstr "La stampa di filamento a colore misto su una stampante a estrusore singo
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Non è consigliato miscelare %1% con %2% nella stampa.\n"
-msgid " nozzle"
-msgstr " ugello"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Non è consigliato stampare i seguenti filamenti con %1%: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "Ugello %2% da %1%mm"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Non è consigliato stampare il seguente filamento con %1%: %2%\n"
+msgstr[1] "Non è consigliato stampare i seguenti filamenti con %1%: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "Non è consigliato utilizzare le seguenti combinazioni di ugello e filamento:\n"
@@ -8424,9 +8941,11 @@ msgstr "Non è consigliato utilizzare le seguenti combinazioni di ugello e filam
msgid "%1% with %2%\n"
msgstr "%1% con %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " piatto %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Elaborazione piatto %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Nome non valido, i seguenti caratteri non sono consentiti:"
@@ -8461,12 +8980,6 @@ msgstr "AMS (1 slot)"
msgid "Not installed"
msgstr "Non installato"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "Il software non supporta l'uso di ugelli con diametri diversi per una singola stampa. Se gli ugelli sinistro e destro sono diversi, è possibile procedere solo con la stampa a testa singola. Confermare quale ugello si desidera utilizzare per questo progetto."
-
-msgid "Switch diameter"
-msgstr "Cambia diametro"
-
msgid "Configuration incompatible"
msgstr "Configurazione incompatibile"
@@ -8548,6 +9061,10 @@ msgstr "Filamento misto"
msgid "Remove last mixed filament"
msgstr "Rimuovi l'ultimo filamento misto"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Rimuovi tutti i filamenti misti"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Aggiungi filamento misto"
@@ -8570,6 +9087,13 @@ msgstr "Il filamento misto ha riferimenti a componenti non validi"
msgid "Edit / Delete / Merge"
msgstr "Modifica / Elimina / Unisci"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Rimuovere %1% filamento misto?"
+msgstr[1] "Rimuovere tutti i %1% filamenti misti?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Il filamento misto di destinazione utilizza questo filamento fisico come componente. L'unione rimuoverà questo filamento fisico e potrebbe invalidare il filamento misto. Continuare?"
@@ -8644,9 +9168,6 @@ msgstr "Caricamento file: %s"
msgid "Load 3MF"
msgstr "Carica 3MF"
-msgid "BambuStudio Project"
-msgstr "Progetto BambuStudio"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "Il formato 3MF non è supportato da OrcaSlicer. Saranno caricati solo i dati geometrici."
@@ -8676,17 +9197,6 @@ msgstr "Devi aggiornare il software.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "Il 3MF versione %s è più recente di %s versione %s. Si consiglia di aggiornare il software."
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "Il file 3MF è stato creato da BambuStudio (versione %s), che è più recente della versione compatibile %s. Sono state trovate impostazioni non riconosciute:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "Il file 3MF è stato creato da BambuStudio (versione %s), che è più recente della versione compatibile %s. Alcune impostazioni potrebbero non essere pienamente compatibili."
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "Il file 3MF è stato generato da una vecchia versione di OrcaSlicer. Saranno caricati solo i dati geometrici."
-
msgid "Invalid values found in the 3MF:"
msgstr "Valori non validi trovati nell'3MF:"
@@ -8853,6 +9363,14 @@ msgstr "Disabilitare la funzione di Rilascio automatico per preservare il posizi
msgid "Object with floating parts was detected"
msgstr "È stato rilevato un oggetto con parti fluttuanti"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Impossibile elaborare: un oggetto si sovrappone a un'area riservata alla stampa parallela IDEX/IQEX (una zona secondaria o una fascia di ingombro del carrello all'interno della zona principale)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Impossibile elaborare: la torre di spurgo si sovrappone a un'area riservata alla stampa parallela IDEX/IQEX (una zona secondaria o una fascia di ingombro del carrello all'interno della zona principale)."
+
msgid "Another export job is running."
msgstr "È in esecuzione un altro processo di esportazione."
@@ -8906,8 +9424,9 @@ msgstr "Volumi sostituiti"
msgid "Please select a file"
msgstr "Seleziona file"
-msgid "Do you want to replace it"
-msgstr "Vuoi sostituirlo"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Vuoi sostituirlo?"
msgid "Message"
msgstr "Messaggio"
@@ -8937,6 +9456,50 @@ msgstr "Dati non validi"
msgid "Slicing Canceled"
msgstr "Elaborazone Annullata"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Conflitto di temperatura del piatto: T%d (%s) imposta il piatto a %d℃, ma T%d (%s) richiede %d℃. La testina principale controlla il piatto; le testine secondarie stampano alla temperatura che essa imposta."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Tipo di filamento non corrispondente: T%d usa %s e T%d usa %s. Questi materiali hanno requisiti incompatibili e non sono pensati per essere stampati insieme."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"Il piatto %d ha la modalità parallela IDEX/IQEX attiva con i seguenti problemi:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Continuare l'elaborazione?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Avviso modalità parallela IDEX/IQEX"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Non mostrare più questi avvisi"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Piatto %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Sono stati rilevati i seguenti problemi della modalità parallela IDEX/IQEX:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Modulo di rete cambiato con successo."
@@ -8969,8 +9532,8 @@ msgid "Sync now"
msgstr "Sincronizza ora"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Impossibile annullare o ripetere mentre è in corso un'operazione. Interrompila prima."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Impossibile annullare o ripetere mentre è in corso un'operazione. Interrompi l'operazione, oppure attendi che termini e riprova."
# AI Translated
msgid ""
@@ -9041,6 +9604,14 @@ msgstr "Scaricamento non riuscito; errore dimensione file."
msgid "Project downloaded %d%%"
msgstr "Progetto scaricato %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"I test Linea AP e Modello AP non sono ancora abilitati sulle stampanti a nastro.\n"
+"Usa invece il metodo Torre AP."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Test Pressure Advance"
@@ -9048,11 +9619,15 @@ msgstr "Test Pressure Advance"
msgid "INFO:"
msgstr "INFORMAZIONI:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Nessun valore di accelerazione fornito per la calibrazione. Verrà utilizzato il valore di accelerazione predefinito "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Nessun valore di accelerazione fornito per la calibrazione. Verrà utilizzato il valore di accelerazione predefinito %1%mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Nessun valore di velocità fornito per la calibrazione. Verrà utilizzato il valore di velocità ottimale predefinito "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Nessun valore di velocità fornito per la calibrazione. Verrà utilizzato il valore di velocità ottimale predefinito %1%mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9067,6 +9642,15 @@ msgstr "Calibrazione del flusso Orca YOLO"
msgid "Flowrate Test - Pass%d"
msgstr "Test del flusso - Passaggio %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Nessuna torre di temperatura per nastro disponibile per l'intervallo da %1% a %2%℃. Usa un intervallo coperto dai modelli della torre, ad esempio da 230 a 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Torre di temperatura"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Test temperatura dell'ugello"
@@ -9090,11 +9674,16 @@ msgstr "Test gestione angoli"
msgid "Import SLA archive"
msgstr "Importa archivio SLA"
-msgid "The selected file"
-msgstr "Il file selezionato"
-
-msgid "Does not contain valid G-code."
-msgstr "non contiene un G-code valido."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Il file selezionato:\n"
+"%1%\n"
+"non contiene un G-code valido."
msgid "An Error has occurred while loading the G-code file."
msgstr "Si è verificato un errore durante il caricamento del file G-code"
@@ -9370,6 +9959,27 @@ msgstr "Attualmente, il modulo di configurazione dell'oggetto non può essere ut
msgid "Not available"
msgstr "Non disponibile"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (nessun piatto)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — nessun filamento assegnato\n"
+"Aggiungi un estrusore nella scheda Macchina in modo che questa testina abbia uno slot per il filamento."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> filamento %2%"
+
msgid "isometric"
msgstr "isometrica"
@@ -9409,6 +10019,8 @@ msgstr "Europa"
msgid "North America"
msgstr "Nord America"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "Altro"
@@ -9484,11 +10096,17 @@ msgstr "Impossibile ricaricare il modulo di rete. Riavviare l'applicazione."
msgid "Reload Failed"
msgstr "Ricaricamento fallito"
-msgid "Associate"
-msgstr "Associa"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Associa %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "con OrcaSlicer in modo che possa aprire i modelli da"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Associa %s:// a OrcaSlicer in modo che Orca possa aprire i modelli da %s"
msgid "Current Association: "
msgstr "Associazione attuale: "
@@ -9788,6 +10406,9 @@ msgstr "Ricorda l'ultima azione di stampa"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Se abilitato, OrcaSlicer ricorderà l'ultima opzione selezionata nel menu a tendina del pulsante di stampa (ad es. Stampa, Esporta il file del piatto elaborato, Esporta file G-code) e la userà come predefinita al prossimo avvio."
+msgid "Camera"
+msgstr "Telecamera"
+
msgid "Touchpad"
msgstr "Pannello tattile"
@@ -10242,6 +10863,9 @@ msgstr "Versione modulo di rete"
msgid "Select the network plug-in version to use"
msgstr "Seleziona la versione del modulo di rete da utilizzare"
+msgid "Associate"
+msgstr "Associa"
+
msgid "Associate files to OrcaSlicer"
msgstr "Associa i file ad OrcaSlicer"
@@ -10294,6 +10918,12 @@ msgstr "Mostra i profili non supportati"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Mostra i profili incompatibili/non supportati negli elenchi a discesa di stampante e filamento. Questi profili non possono essere selezionati."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "Funzionalità sperimentali"
@@ -10584,10 +11214,6 @@ msgstr "Pubblica 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Seleziona quali impostazioni pubblicare nel file 3MF"
-# AI Translated
-msgid "Video Guide"
-msgstr "Guida video"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Filamento misto - pubblicato per intero quando sopra è selezionato \"Abilita\""
@@ -10752,6 +11378,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Semplice"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s da %s"
+
# AI Translated
msgid "Search actions"
msgstr "Cerca azioni"
@@ -10869,6 +11501,10 @@ msgstr "Mostra dettagli"
msgid "Hide details"
msgstr "Nascondi dettagli"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Vista web non disponibile."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11152,9 +11788,12 @@ msgstr "Invio non riuscito"
msgid "The name length exceeds the limit."
msgstr "La lunghezza del nome supera il limite."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Costa %dg di filamento e %d cambi in più rispetto al raggruppamento ottimale."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Costa %dg di filamento e %d cambio in più rispetto al raggruppamento ottimale."
+msgstr[1] "Costa %dg di filamento e %d cambi in più rispetto al raggruppamento ottimale."
# AI Translated
msgid "Right-Ext"
@@ -11244,6 +11883,10 @@ msgstr "Alcuni filamenti potrebbero passare da un estrusore all'altro durante la
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "In questo file è presente un filamento soggetto a stringing. Per una qualità di stampa ottimale, si consiglia di impostare il rilevamento dell'accumulo sull'ugello sulla modalità Auto."
+# AI Translated
+msgid "Switch"
+msgstr "Cambia"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Se 'Dynamic Flow Calibration' è impostato su Auto/On, il sistema utilizzerà il valore di calibrazione manuale o il valore predefinito e salterà il processo di calibrazione del flusso. Puoi eseguire una calibrazione manuale del flusso per il filamento TPU nella pagina 'Calibrazione'."
@@ -11553,6 +12196,10 @@ msgstr "La sincronizzazione di trasmissioni di estrusore diverse o di tipi di vo
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Sincronizza la modifica dei parametri con i parametri corrispondenti di un altro estrusore."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "I parametri con questa icona possono essere configurati per ogni ugello."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Clicca per ripristinare tutte le impostazioni dell'ultimo profilo salvato."
@@ -11783,6 +12430,9 @@ msgstr "Filamento per elementi"
msgid "Ooze prevention"
msgstr "Prevenzione trasudo materiale"
+msgid "Others"
+msgstr "Altro"
+
msgid "Special mode"
msgstr "Modalità speciale"
@@ -11823,8 +12473,11 @@ msgstr[1] ""
"Le righe seguenti %s contengono parole chiave riservate.\n"
"Si prega di rimuoverle, altrimenti inciderà sulla visualizzazione del G-Code e sulla stima del tempo di stampa."
-msgid "Reserved keywords found"
-msgstr "Parole chiave riservate trovate"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Parole chiave riservate trovate in %1%"
msgid "Setting Overrides"
msgstr "Sovrascrivi impostazioni"
@@ -11967,7 +12620,16 @@ msgstr "Spazio di stampa"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Selezionare l'implementazione dell'agente di rete per la comunicazione con la stampante. Gli agenti disponibili vengono registrati all'avvio."
+# AI Translated
+msgid "Belt printer"
+msgstr "Stampante a nastro"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Trasformazioni del sistema di riferimento macchina"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Valore non valido fornito per il parametro %1%: %2%"
@@ -12080,9 +12742,29 @@ msgstr "Diametro ugello"
msgid "Wipe tower"
msgstr "Torre di spurgo"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Torre di spurgo del nastro"
+
msgid "Single extruder multi-material parameters"
msgstr "Parametri estrusore singolo multimateriale"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "Configurazione IDEX/IQEX"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Avvisi pre-elaborazione"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Mostra una finestra di dialogo di avviso prima dell'elaborazione se vengono rilevati problemi della modalità parallela IDEX/IQEX (conflitti di temperatura del piatto, filamenti di tipo diverso, conflitti multimateriale). Gli avvisi possono essere disattivati dalla finestra di dialogo stessa. Riattivali qui se li hai disattivati per errore."
+
+# AI Translated
+msgid "Modes"
+msgstr "Modalità"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Questa è una stampante multimateriale a singolo estrusore. I diametri di tutti gli estrusori saranno impostati sul nuovo valore. Vuoi procedere?"
@@ -12092,6 +12774,22 @@ msgstr "Limiti altezza strati"
msgid "Z-Hop"
msgstr "Sollevamento Z"
+# AI Translated
+msgid "Front-left"
+msgstr "Anteriore sinistra"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Anteriore destra"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Posteriore sinistra"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Posteriore destra"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -12114,22 +12812,37 @@ msgstr "Usa valore modificato"
msgid "Detached"
msgstr "Separato"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% e %2% sono collegati a questa stampante. Questi profili verranno eliminati se la stampante viene eliminata."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d Profilo Filamento e %d Profilo Processo sono collegati a questa stampante. Questi profili verranno eliminati se la stampante viene eliminata."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d profilo filamento"
+msgstr[1] "%d profili filamento"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d profilo di processo"
+msgstr[1] "%d profili di processo"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "I profili ereditati da altri profili non possono essere eliminati!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
msgstr[0] "Il seguente profilo eredita questo profilo."
-msgstr[1] "I seguentii profili ereditano questi profili."
+msgstr[1] "I seguenti profili ereditano questo profilo."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% Profilo"
+msgid "Delete Preset"
+msgstr "Elimina profilo"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -12143,9 +12856,9 @@ msgstr ""
"Sei sicuro di voler eliminare il profilo selezionato?\n"
"Se la profilo corrisponde a un filamento attualmente in uso sulla stampante, reimpostare le informazioni sul filamento per tale slot."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Sei sicuro di voler %1% il preset selezionato?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Sei sicuro di voler eliminare il profilo selezionato?"
msgid "Select printers"
msgstr "Seleziona stampanti"
@@ -12199,9 +12912,34 @@ msgid "Don't warn again for this preset"
msgstr "Non inviare più avvisi per questo profilo"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
# AI Translated
msgid "No modifications need to be copied."
@@ -12408,6 +13146,12 @@ msgstr "Uno dei profili non esiste"
msgid "Compared presets has different printer technology"
msgstr "I profili confrontati hanno una tecnologia di stampa diversa"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" vs \"%2%\""
+
msgid "Add File"
msgstr "Aggiungi file"
@@ -12433,6 +13177,22 @@ msgstr "Lista materiali"
msgid "Assembly Guide"
msgstr "Guida al montaggio"
+# AI Translated
+msgid "Image files"
+msgstr "File immagine"
+
+# AI Translated
+msgid "TXT files"
+msgstr "File TXT"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "File EXCEL"
+
+# AI Translated
+msgid "PDF files"
+msgstr "File PDF"
+
msgid "Author"
msgstr "Autore"
@@ -12633,10 +13393,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Spinta totale"
-# AI Translated
-msgid "Volume"
-msgstr "Volume"
-
msgid "Ramming line"
msgstr "Linea di spinta"
@@ -12663,8 +13419,10 @@ msgstr "Moltiplicatore"
msgid "Flushing volumes for filament change"
msgstr "Volumi di spurgo per cambio filamento"
-msgid "Please choose the filament color"
-msgstr "Scegliere il colore del filamento"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "da/a"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "Il fornitore di servizi cloud non è disponibile. Riavviare OrcaSlicer e riprovare."
@@ -12686,6 +13444,137 @@ msgstr "Accesso non riuscito. Riprova."
msgid "parse json failed"
msgstr "analisi del JSON non riuscita"
+# AI Translated
+msgid "Loading…"
+msgstr "Caricamento…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Personalizzate"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Benvenuti in OrcaSlicer"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "OrcaSlicer verrà configurato seguendo diversi passaggi. Cominciamo!"
+
+msgid "Get Started"
+msgstr "Inizia"
+
+msgid "Please select your login region"
+msgstr "Seleziona la tua regione di accesso"
+
+msgid "Finish"
+msgstr "Fine"
+
+msgid "Printer Selection"
+msgstr "Selezione della stampante"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Produttori"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Stampante personalizzata"
+
+msgid "Create"
+msgstr "Crea"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Cerca nuove stampanti"
+
+msgid "At least one printer must be selected."
+msgstr "È necessario selezionare almeno una stampante."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Nuove stampanti trovate"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Nuovi produttori di stampanti installati: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Sono stati trovati nuovi produttori di stampanti, ma l'installazione è stata annullata."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Nessuna nuova stampante trovata."
+
+msgid "Filament Selection"
+msgstr "Selezione del filamento"
+
+msgid "System Filaments"
+msgstr "Filamenti di sistema"
+
+msgid "Custom Filaments"
+msgstr "Filamenti personalizzati"
+
+msgid "Create New"
+msgstr "Crea Nuovo"
+
+msgid "Filament type"
+msgstr "Tipo filamento"
+
+msgid "Vendor"
+msgstr "Produttore"
+
+# AI Translated
+msgid "No items"
+msgstr "Nessun elemento"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Filtra elementi"
+
+# AI Translated
+msgid "Checked"
+msgstr "Selezionati"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Non selezionati"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Seleziona filtrati"
+
+msgid "Clear all"
+msgstr "Cancella tutto"
+
+msgid "At least one filament must be selected."
+msgstr "È necessario selezionare almeno un filamento."
+
+msgid "Do you want to use the default filament?"
+msgstr "Vuoi utilizzare il filamento predefinito?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Questo disabilita tutte le funzionalità cloud, inclusa la sincronizzazione dei profili di Orca Cloud. Gli utenti che preferiscono lavorare completamente offline possono abilitare questa opzione."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Nota: quando la Modalità Stealth è abilitata, i tuoi profili utente non verranno salvati come backup su Orca Cloud."
+
+msgid "Enable Stealth Mode."
+msgstr "Abilita la modalità invisibile."
+
+msgid "Proprietary Plugins"
+msgstr "Moduli proprietari"
+
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Le stampanti di alcuni produttori richiedono dei moduli proprietari per far in modo che la comunicazione abbia successo. Seleziona il modulo corrispondente se utilizzi tali stampanti."
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Si prega di notare che questi moduli non sono sviluppati o mantenuti da OrcaSlicer. Dovrebbero essere utilizzati a proprio rischio e discrezione."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Installa il modulo di rete Bambu"
+
msgid "[Action Required] "
msgstr "[Azione necessaria] "
@@ -12754,9 +13643,6 @@ msgstr "Disponibile quando la vista 3D della scheda Prepara è attiva."
msgid "Select a part"
msgstr "Seleziona parte"
-msgid "Select multiple objects"
-msgstr "Seleziona più oggetti"
-
msgid "Select objects by rectangle"
msgstr "Seleziona oggetti per rettangolo"
@@ -13090,26 +13976,20 @@ msgstr "La versione del firmware è anomala. Prima di stampare, è necessario es
msgid "Extension Board"
msgstr "Scheda di estensione"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Dividere in %1% parti"
-
msgid "Repair finished"
msgstr "Riparazione completata"
-msgid "Repair failed"
-msgstr "Riparazione fallita"
-
-msgid "Repair canceled"
-msgstr "Riparazione annullata"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Copia del file %1% su %2% non riuscita: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Download dei nuovi profili produttore: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Download del nuovo profilo produttore: %1%..."
+msgstr[1] "Download dei nuovi profili produttore: %1%..."
# AI Translated
#, boost-format
@@ -13117,8 +13997,12 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Pacchetto di configurazione: %1% aggiornato a %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Download dei profili produttore non riuscito: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Download del profilo produttore non riuscito: %1%"
+msgstr[1] "Download dei profili produttore non riuscito: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Controllare le modifiche non salvate prima di aggiornare la configurazione."
@@ -13126,6 +14010,10 @@ msgstr "Controllare le modifiche non salvate prima di aggiornare la configurazio
msgid "Open G-code file:"
msgstr "Apri un file G-code:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Generazione della torre di spurgo non riuscita, probabilmente a causa di un primo strato vuoto."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Un oggetto ha lo strato iniziale vuoto e non può essere stampato. Taglia il fondo o abilita i supporti."
@@ -13146,9 +14034,61 @@ msgstr "G-code cambio ruolo estrusione processo"
msgid "Filament change extrusion role G-code"
msgstr "G-code cambio ruolo estrusione filamento"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"Esportazione del G-code in %1% non riuscita.\n"
+"Impossibile aprire il file in scrittura."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "La cartella %1% non esiste."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"Esportazione del G-code in %1% non riuscita.\n"
+"Il disco è pieno?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Impossibile rinominare il file G-code di output da %1% a %2%.\n"
+"Errore: %3%\n"
+"%1% è bloccato?"
+
msgid "No object can be printed. It may be too small."
msgstr "Non è possibile stampare alcun oggetto. Potrebbe essere troppo piccolo"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "La modalità IDEX/IQEX \"%1%\" non ha testine assegnate sulla stampante selezionata. Verrà invece usata la modalità Principale (Primary). Assegna le testine della modalità in Impostazioni stampante, oppure scegli un'altra modalità dal pulsante IDEX/IQEX del piatto."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Questo piatto è impostato sulla modalità IDEX/IQEX \"%1%\", che la stampante selezionata non definisce. Verrà invece usata la modalità Principale (Primary). Scegli una modalità dal pulsante IDEX/IQEX del piatto, oppure ripristina la modalità in Impostazioni stampante."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Valore delle miniature non valido:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "La stampa è molto vicina alle aree di preparazione. Assicurati che non vi siano collisioni."
@@ -13192,6 +14132,10 @@ msgstr "Errore di raggruppamento: %1% non può essere collocato nell'ugello sini
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Errore di raggruppamento: %1% non può essere collocato nell'ugello destro"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Nessun ugello valido trovato. Controlla il numero di ugelli."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Errore di raggruppamento in modalità manuale. Verifica il numero di ugelli o esegui un nuovo raggruppamento."
@@ -13211,6 +14155,18 @@ msgstr "intersezioni multiple con un perimetro, ne è stata usata solo una (%1%)
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "un perimetro è interamente all'interno di un modificatore, il modificatore non vi è stato applicato (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "Il modificatore %1% \"%2%\" di \"%3%\" copre un intero perimetro"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "Il modificatore %1% \"%2%\" di \"%3%\" (%4% in totale) copre un intero perimetro"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13225,9 +14181,47 @@ msgstr "il modificatore \"%1%\" di \"%2%\" (%3% in totale) non ha avuto effetto
msgid "Seam placement may differ from expected."
msgstr "Il posizionamento della cucitura potrebbe differire da quanto previsto."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Ponte interno"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() ha prodotto una spaziatura negativa. Hai impostato qualche larghezza di estrusione troppo piccola?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() ha prodotto un flusso negativo. Hai impostato qualche larghezza di estrusione troppo piccola?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Impossibile calcolare la larghezza della linea di %1%. Impossibile ottenere il valore di \"%2%\"."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Spaziatura non valida fornita a Flow::with_spacing(), controlla l'altezza dello strato e la larghezza di estrusione"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Il file 3mf selezionato è stato salvato con una versione più recente di %1% e non è compatibile."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Il 3MF selezionato contiene un oggetto con supporti FDM dipinti, creato con una versione più recente di PrusaSlicer, e non è compatibile."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Il 3MF selezionato contiene un oggetto con cucitura dipinta, creato con una versione più recente di PrusaSlicer, e non è compatibile."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Il 3MF selezionato contiene un oggetto dipinto multimateriale, creato con una versione più recente di PrusaSlicer, e non è compatibile."
+
msgid "undefined error"
msgstr "errore indefinito"
@@ -13321,6 +14315,56 @@ msgstr "convalida non riuscita"
msgid "write callback failed"
msgstr "ripristino della scrittura non riuscita"
+# AI Translated
+msgid "unknown error"
+msgstr "errore sconosciuto"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Le stampe multicolore nelle modalità parallele IDEX/IQEX richiedono che ogni filamento abbia un proprio estrusore fisico dedicato. Due o più filamenti attivi sono instradati verso la stessa testina fisica tramite la mappa degli estrusori fisici della stampante (un collettore MMU/AFC), che il portale asservito non può seguire."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "La modalità IDEX/IQEX attiva non definisce una testina principale, quindi non è possibile pianificare la stampa multicolore. Apri l'editor Modalità IDEX/IQEX nelle impostazioni della stampante e assegna il ruolo Principale (Primary) a una testina."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "In questa modalità il multicolore non è uno scenario di stampa parallela: tutte le testine attive si trovano su un unico portale, quindi non c'è un secondo portale su cui copiare o specchiare. Passa il piatto alla modalità Principale (Primary) per la stampa multicolore su un unico portale, oppure definisci una modalità IDEX/IQEX che includa testine su un secondo portale."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Le stampe multicolore nelle modalità parallele IDEX/IQEX richiedono una testina Span sul portale della testina principale: senza di essa, la modalità non dichiara un partner multicolore sullo stesso portale. Riduci la stampa a un solo filamento, passa alla modalità Principale (Primary), oppure apri l'editor Modalità IDEX/IQEX nelle impostazioni della stampante e contrassegna come Span una testina sul portale della testina principale."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "In questa modalità Span i colori vengono stampati solo da %1%, ma il filamento %2% non è instradato verso alcuna testina. Usa filamenti instradati verso %1%, oppure passa questo piatto alla modalità Principale (Primary)."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "In questa modalità Span i colori vengono stampati solo da %1%, ma il filamento %2% è instradato verso T%3%. Usa filamenti instradati verso %1%, oppure passa questo piatto alla modalità Principale (Primary)."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Impossibile caricare il profilo selezionato: %1%\n"
+"\tMotivo: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Caricamento del file del profilo non riuscito: %1%\n"
+"\tMotivo: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% è troppo vicino all'area di esclusione e potrebbero verificarsi collisioni durante la stampa."
@@ -13337,27 +14381,34 @@ msgstr "%1% è troppo alto e si verificheranno collisioni."
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "La posizione relativa del modello e della torre di spurgo non soddisfa i requisiti della funzione \"Nessuno strato sparso\". Modifica le loro posizioni relative, riduci l'altezza del modello oppure disattiva \"Nessuno strato sparso\"."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " è troppo vicino all'area di esclusione e potrebbero verificarsi collisioni durante la stampa."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " è troppo vicino all'area di rilevamento ammassi, potrebbero verificarsi collisioni durante la stampa."
-
-msgid "Prime Tower"
-msgstr "Torre di spurgo"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " è troppo vicino agli altri e possono verificarsi collisioni.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " è troppo vicino all'area di esclusione e si verificheranno collisioni.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " è troppo vicino all'area di rilevamento ammassi e verranno causate collisioni.\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% è troppo vicino all'area di rilevamento ammassi. Potrebbero verificarsi collisioni durante la stampa."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " è parzialmente fuori dall'area stampabile e non può essere stampato.\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "La torre di spurgo è troppo vicina agli altri oggetti e possono verificarsi collisioni.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "La torre di spurgo è troppo vicina a un'area di esclusione e si verificheranno collisioni.\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "La torre di spurgo è troppo vicina all'area di rilevamento ammassi e verranno causate collisioni.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "La torre di spurgo è troppo vicina a un'area di esclusione. Potrebbero verificarsi collisioni durante la stampa."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "La torre di spurgo è troppo vicina all'area di rilevamento ammassi. Potrebbero verificarsi collisioni durante la stampa."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "La torre di spurgo è parzialmente fuori dall'area stampabile e non può essere stampata.\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "Le temperature degli ugelli selezionate sono incompatibili. La temperatura dell'ugello per ciascun filamento deve rientrare nell'intervallo di temperatura consigliato per gli altri filamenti. In caso contrario, potrebbero verificarsi ostruzioni degli ugelli o danni alla stampante."
@@ -13371,6 +14422,58 @@ msgstr "Se desideri comunque stampare, puoi abilitare l'opzione in Preferenze /
msgid "No extrusions under current settings."
msgstr "Nessuna estrusione con le impostazioni attuali."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "I filamenti misti non sono supportati nelle modalità parallele IDEX/IQEX. Passa questo piatto alla modalità Principale (Primary)."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "La modalità IDEX/IQEX \"%1%\" stampa con T%2%, ma nessuno dei filamenti di questo piatto si trova su una testina configurata. Assegna un filamento caricato su T%2%, oppure passa questo piatto alla modalità Principale (Primary)."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "La modalità IDEX/IQEX \"%1%\" stampa con T%2%, ma i filamenti di questo piatto sono su %3%. Assegna un filamento caricato su T%2%, oppure passa questo piatto alla modalità Principale (Primary)."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "La zattera non è compatibile con la modalità stampante a nastro."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Lo scudo protettivo non è compatibile con la modalità stampante a nastro."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "La tesa non è compatibile con la modalità vaso a spirale su una stampante a nastro. Disattivane una delle due."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Il nastro è troppo inclinato per una tesa, quindi non verrà generata alcuna tesa."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "La tesa viene generata solo quando il nastro è inclinato. Imposta un angolo di inclinazione del nastro oppure rimuovi l'impostazione della tesa."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Le stampanti a nastro supportano solo la tesa esterna e interna. Le tese Auto, Orecchio di topo e Dipinto vengono stampate come Solo tesa esterna, usando Larghezza tesa."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "Spazio tesa-oggetto separa la tesa d'attacco dal bordo d'attacco dell'oggetto, cioè il bordo che dovrebbe ancorare. Imposta lo spazio a 0 quando usi Lunghezza tesa d'attacco."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "Lunghezza tesa d'attacco si estende davanti a ogni oggetto lungo il nastro, e Disponi non riserva quello spazio. Lascia spazio tra gli oggetti."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "La tesa \"Solo bordo d'attacco\" si applica alle stampanti a nastro. Su questa stampante viene stampata come una normale tesa esterna."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "È in uso un filamento misto con gradiente, ma 'Sottostrato di colore misto' è disattivato. Il gradiente non verrà stampato."
@@ -13381,6 +14484,18 @@ msgstr "La modalità fluida del timelapse non è supportata quando è abilitata
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "Il rilevamento degli ammassi non è supportato quando la sequenza \"per oggetto\" è abilitata."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "La torre di spurgo del nastro non viene generata con la sequenza di stampa \"Per oggetto\"; i cambi di filamento non verranno spurgati."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "La torre di spurgo del nastro è abilitata, ma il progetto non contiene alcun oggetto torre di spurgo; i cambi di filamento non verranno spurgati. Apri il progetto nell'applicazione per generare la torre."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Il progetto contiene più torri di spurgo del nastro gestite. Ricarica il piatto oppure disattiva e riattiva la torre di spurgo del nastro per rigenerarla."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "L'abilitazione sia dell'altezza Z precisa che della torre di spurgo potrebbe causare errori di slicing."
@@ -13397,10 +14512,6 @@ msgstr "La modalità Vaso a spirale non funziona quando un oggetto contiene più
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Sebbene l'oggetto %1% rientri nel volume di stampa, esso supera l'altezza massima del volume di stampa a causa della compensazione del restringimento del materiale."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "L'oggetto %1% supera l'altezza massima del volume di stampa."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Sebbene l'oggetto %1% rientri nel volume di stampa, il suo ultimo strato supera l'altezza massima del volume di stampa."
@@ -13408,6 +14519,10 @@ msgstr "Sebbene l'oggetto %1% rientri nel volume di stampa, il suo ultimo strato
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "È possibile ridurre le dimensioni del modello o modificare le impostazioni di stampa correnti e riprovare."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "L'oggetto %1% supera l'altezza massima del volume di stampa."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Altezza strato adattiva non è compatibile con i Supporti organici."
@@ -13566,6 +14681,10 @@ msgstr "Il modello Pressure Advance adattivo per uno o più estrusori potrebbe c
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "La compensazione del restringimento del materiale non verrà utilizzata perché il fenomeno di restringimento nei filamenti utilizzati varia in modo significativo."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "La stampa è vuota. Il modello non è stampabile con le impostazioni di stampa attuali."
+
msgid "Generating skirt & brim"
msgstr "Generazione gonna e tesa"
@@ -13585,6 +14704,17 @@ msgstr "Esportazione G-code"
msgid "Generating G-code"
msgstr "Generazione G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Elaborazione del file G-code %1% del 3MF precedente non riuscita."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "La torre di spurgo del nastro non riesce ad assorbire l'intero volume di spurgo: in totale non è stato possibile spurgare %1% mm³ (strato peggiore: %2% mm³ all'altezza %3%). La stampa potrebbe presentare sbavature di colore. Aumenta la larghezza della torre di spurgo del nastro o riduci i volumi di spurgo."
+
msgid "Processing of the filename_format template failed."
msgstr "Elaborazione del modello filename_format non riuscita."
@@ -14054,18 +15184,19 @@ msgstr ""
"Il flusso del ponte effettivamente utilizzato è calcolato moltiplicando questo valore per il rapporto di flusso del filamento e, se impostato, per il rapporto di flusso dell'oggetto."
# AI Translated
+# Needs human review: The English says 'Bridge density', but the GUI labels are 'External bridge density' and 'Internal bridge density'; the external label ('Densità ponti esterni') is quoted here. Check it is the right one.
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
-"Larghezza della linea del ponte. Se espressa in %, verrà calcolata rispetto al diametro dell'ugello.\n"
-"Se ne consiglia l'uso con una densità del ponte o un rapporto di flusso del ponte più elevati.\n"
+"Larghezza della linea del ponte. Se espresso come una %, verrà calcolato sul diametro dell'ugello.\n"
+"Se ne consiglia l'uso con una 'Densità ponti esterni' o un 'Flusso di stampa ponti' più elevati.\n"
"\n"
"Il valore massimo è 100% o il diametro dell'ugello.\n"
-"Se impostata a 0, la larghezza della linea corrisponderà alla larghezza del riempimento solido interno."
+"Se impostata a 0, la larghezza della linea corrisponderà alla larghezza del riempimento solido interno, oppure al diametro dell'ugello per i ponti spessi."
msgid "Internal bridge flow ratio"
msgstr "Flusso di stampa ponti interni"
@@ -14350,7 +15481,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Abilita questa opzione per rallentare la stampa nelle aree in cui i perimetri potrebbero essersi arricciati verso l'alto.\n"
"Ad esempio, verrà applicato un rallentamento aggiuntivo durante la stampa di sporgenze su angoli acuti come la parte anteriore dello scafo del Benchy, riducendo l'arricciamento che si accumula su più strati.\n"
@@ -14362,22 +15493,23 @@ msgstr ""
"Raccomandazioni quando si abilita questa opzione:\n"
"1. Riduci il tempo di smoothing del Pressure Advance a 0,015 - 0,02 in modo che l'estrusore reagisca rapidamente alle variazioni di velocità.\n"
"2. Aumenta le velocità di stampa minime per limitare l'entità del rallentamento e ridurre la variazione tra i segmenti veloci e lenti.\n"
-"3. Se gli artefatti persistono, abilita l'Extrusion Rate Smoothing (ERS) per uniformare ulteriormente le transizioni di flusso.\n"
+"3. Se gli artefatti persistono, abilita 'Livellamento velocità di estrusione' (ERS) per uniformare ulteriormente le transizioni di flusso.\n"
"\n"
"Nota: quando questa opzione è abilitata, i perimetri in sporgenza vengono trattati come sporgenze, il che significa che la velocità per le sporgenze viene applicata anche se il perimetro in sporgenza fa parte di un ponte.\n"
-"Ad esempio, quando i perimetri sono in sporgenza al 100%, senza alcuna parete a sostenerli da sotto, verrà applicata la velocità per sporgenze del 100%."
+"Ad esempio, quando i perimetri sono in sporgenza al 100%, senza alcuna parete a sostenerli da sotto, verrà applicata la velocità per sporgenze del 75%, limitata dalla velocità del ponte."
msgid "mm/s or %"
msgstr "mm/s o %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Velocità di estrusione dei ponti visibili esternamente.\n"
"\n"
-"Inoltre, se 'Rallenta per pareti incurvate' è disabilitato o è abilitata la modalità Sporgenza classica, la velocità di stampa delle pareti sporgenti supportate sarà inferiore al 13%, indipendentemente dal fatto che facciano parte di un ponte o di una sporgenza."
+"Inoltre, se 'Rallenta per pareti incurvate' è disabilitato, sarà la velocità di stampa delle pareti sporgenti supportate per meno del 13%, indipendentemente dal fatto che facciano parte di un ponte o di una sporgenza."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Velocità dei ponti interni. Se il valore è espresso in percentuale, verrà calcolato in base a bridge_speed. Il valore predefinito è 150%."
@@ -14385,12 +15517,56 @@ msgstr "Velocità dei ponti interni. Se il valore è espresso in percentuale, ve
msgid "This is the distance from the model to the outermost brim line."
msgstr "Questa è la distanza tra il modello e la linea più esterna della tesa."
+# AI Translated
+msgid "Leading brim length"
+msgstr "Lunghezza tesa d'attacco"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Solo stampanti a nastro. Estende la tesa DAVANTI all'oggetto lungo il nastro, su ogni bordo rivolto verso valle della sua area di contatto: sia il primo contatto dell'oggetto con il nastro sia ogni isola che vi si appoggia in seguito. Questo grembiule viene steso sul nastro prima che l'oggetto lo raggiunga, così il bordo d'attacco ha già qualcosa di aderente a cui ancorarsi.\n"
+"\n"
+"Misurata sulla superficie del nastro e aggiunta a Larghezza tesa: la tesa arriva a Spazio tesa-oggetto + Lunghezza tesa d'attacco + Larghezza tesa davanti all'oggetto. Imposta Spazio tesa-oggetto a 0, altrimenti il grembiule non toccherà l'oggetto che dovrebbe ancorare.\n"
+"\n"
+"Su un nastro inclinato ogni strato stende una striscia della tesa, quindi lo spessore del foglio di tesa risultante dipende dal flusso e non dall'altezza strato. Usa Flusso di stampa tese per regolarlo.\n"
+"\n"
+"Imposta a 0 per disattivare."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Larghezza tesa aggiuntiva"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Solo stampanti a nastro. Allarga la tesa LATERALMENTE, trasversalmente al nastro, senza estenderla ulteriormente davanti o dietro l'oggetto. Usala quando una parte ha bisogno di più aderenza lungo la sua lunghezza di quella data dalla sola Larghezza tesa.\n"
+"\n"
+"Misurata sulla superficie del nastro e aggiunta a Larghezza tesa: la tesa arriva a Spazio tesa-oggetto + Larghezza tesa + Larghezza tesa aggiuntiva su entrambi i lati dell'oggetto. Per estendere invece la tesa davanti all'oggetto, usa Lunghezza tesa d'attacco.\n"
+"\n"
+"Imposta a 0 per disattivare."
+
msgid "Brim type"
msgstr "Tipo di tesa"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Controlla la generazione della tesa esterna e/o interna dei modelli. Se impostato ad Auto, la larghezza della tesa viene analizzata e calcolata automaticamente."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Solo bordo d'attacco"
+
msgid "Brim-object gap"
msgstr "Spazio tesa-oggetto"
@@ -14685,6 +15861,9 @@ msgstr ""
"2. Filtraggio limitato: crea ponti interni su superfici fortemente inclinate evitando ponti non necessari. Funziona bene per la maggior parte dei modelli complessi\n"
"3. Nessun filtraggio: crea ponti interni su ogni potenziale sporgenza interna. Questa opzione è utile per modelli di superficie superiore fortemente inclinati; tuttavia, nella maggior parte dei casi, crea troppi ponti non necessari."
+msgid "Filter"
+msgstr "Filtra"
+
msgid "Limited filtering"
msgstr "Filtraggio limitato"
@@ -14700,8 +15879,9 @@ msgstr "Questa è la lunghezza massima dei ponti che non necessitano di supporti
msgid "End G-code"
msgstr "G-code finale"
-msgid "Add end G-Code when finishing the entire print."
-msgstr "G-code finale quando si termina la stampa."
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
+msgstr "G-code finale quando si termina l'intera stampa."
msgid "Between Object G-code"
msgstr "G-code tra oggetti"
@@ -14889,8 +16069,9 @@ msgstr "Indica la velocità di stampa per le pareti esterne dei pezzi. Queste ve
msgid "Small perimeters"
msgstr "Perimetri piccoli"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Questa impostazione influenzerà la velocità di stampa dei perimetri con raggio <= small_perimeter_threshold (di solito fori). Se espresso in percentuale (ad esempio: 80%) verrà calcolato sull'impostazione della velocità delle pareti esterne di cui sopra. Impostare su zero per auto."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Questa impostazione influenzerà la velocità di stampa dei perimetri con raggio <= small_perimeter_threshold (di solito fori). Se espresso in percentuale (ad esempio: 80%) verrà calcolato sull'impostazione della velocità delle pareti esterne di cui sopra."
msgid "Small perimeters threshold"
msgstr "Soglia perimetri piccoli"
@@ -14903,8 +16084,8 @@ msgid "Small support perimeters"
msgstr "Perimetri di supporto piccoli"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Come \"Perimetri piccoli\", ma per i supporti. Questa impostazione separata influirà sulla velocità del supporto per le aree <= `small_support_perimeter_threshold`. Se espressa come percentuale (ad esempio: 80%), verrà calcolata sull'impostazione di velocità del supporto o dell'interfaccia del supporto sopra riportata. Imposta a zero per auto."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Come \"Perimetri piccoli\", ma per i supporti. Questa impostazione separata influirà sulla velocità del supporto per le aree <= `small_support_perimeter_threshold`. Se espressa come percentuale (ad esempio: 80%), verrà calcolata sull'impostazione di velocità del supporto o dell'interfaccia del supporto sopra riportata."
# AI Translated
msgid "Small support perimeters threshold"
@@ -14917,22 +16098,23 @@ msgstr "Imposta la soglia per la lunghezza dei perimetri di supporto piccoli. La
msgid "Walls printing order"
msgstr "Ordine stampa pareti"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
"Sequenza di stampa delle pareti interne ed esterne.\n"
"\n"
-"Utilizzare Interno/Esterno per sporgenze migliori. Questo perché le pareti sporgenti possono aderire a un perimetro vicino durante la stampa. Tuttavia, questa opzione comporta una qualità della superficie leggermente ridotta poiché il perimetro esterno viene deformato dalla pressione sul perimetro interno.\n"
+"Utilizzare Interna/Esterna per sporgenze migliori. Questo perché le pareti sporgenti possono aderire a un perimetro vicino durante la stampa. Tuttavia, questa opzione comporta una qualità della superficie leggermente ridotta poiché il perimetro esterno viene deformato dalla pressione sul perimetro interno.\n"
"\n"
-"Utilizzare Interno/Esterno/Interno per ottenere la migliore finitura superficiale esterna e la migliore precisione dimensionale, poiché la parete esterna viene stampata senza essere disturbata dal perimetro interno. Tuttavia, la qualità delle sporgenze si ridurrà poiché non si dispone di un perimetro interno contro cui stampare la parete esterna. Questa opzione richiede un minimo di 3 pareti per essere efficace, in quanto stampa prima le pareti interne dal 3° perimetro in poi, poi il perimetro esterno e, infine, il primo perimetro interno. Nella maggior parte dei casi, questa è l'opzione consigliata rispetto a Esterno/Interno.\n"
+"Utilizzare Interna/Esterna/Interna per ottenere la migliore finitura superficiale esterna e la migliore precisione dimensionale, poiché la parete esterna viene stampata senza essere disturbata dal perimetro interno. Tuttavia, la qualità delle sporgenze si ridurrà poiché non si dispone di un perimetro interno contro cui stampare la parete esterna. Questa opzione richiede un minimo di 3 pareti per essere efficace, in quanto stampa prima le pareti interne dal 3° perimetro in poi, poi il perimetro esterno e, infine, il primo perimetro interno. Nella maggior parte dei casi, questa è l'opzione consigliata rispetto a Esterna/Interna.\n"
"\n"
-"Utilizzare Esterno/Interno per ottenere la stessa qualità della parete esterna e gli stessi vantaggi di precisione dimensionale dell'opzione Interno/Esterno/Interno. Tuttavia, le cuciture Z appariranno meno coerenti quando la prima estrusione di un nuovo strato inizia su una superficie visibile."
+"Utilizzare Esterna/Interna per ottenere la stessa qualità della parete esterna e gli stessi vantaggi di precisione dimensionale dell'opzione Interna/Esterna/Interna. Tuttavia, le cuciture Z appariranno meno coerenti poiché la prima estrusione di un nuovo strato inizia su una superficie visibile."
msgid "Inner/Outer"
msgstr "Interna/Esterna"
@@ -15570,9 +16752,6 @@ msgstr "Prezzo del filamento, solo a fini statistici."
msgid "money/kg"
msgstr "soldi/kg"
-msgid "Vendor"
-msgstr "Produttore"
-
msgid "Vendor of filament. For show only."
msgstr "Produttore del filamento. Solo per dettagli."
@@ -15646,6 +16825,92 @@ msgstr "Riempimento multilinea"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Utilizzo di linee multiple per il pattern di riempimento, se supportato dal pattern di riempimento."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Densità adattiva (sperimentale)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Gradua il riempimento Giroide e TPMS all'interno dell'oggetto: le sue celle crescono dalla superficie dell'oggetto verso il centro. La densità del riempimento sparso viene usata in superficie e la densità interna al centro.\n"
+"Deformazione per distanza, Fusione graduale e Gusci a gradini seguono la distanza dalla superficie più vicina, comprese quella superiore e quella inferiore, con la densità interna nel punto più lontano da essa:\n"
+" - Deformazione per distanza: un unico motivo continuo, stirato e deformato dove la distanza cambia tra le direzioni, come nelle lastre e nelle parti lunghe.\n"
+" - Fusione graduale: i motivi delle densità vicine si fondono l'uno nell'altro, con piccoli anelli dove si incontrano.\n"
+" - Gusci a gradini: gusci del motivo regolare a densità che differiscono di circa 1,5 volte, con le linee unite lungo i confini dei gusci.\n"
+" - Lobi: segue la forma 3D dell'oggetto, compresi la parte superiore e quella inferiore. Ogni lobo, una parte unita al resto da un collo più stretto, viene graduato verso il proprio centro.\n"
+" - Normale Z, Y o X: segue le sezioni dell'oggetto perpendicolari a quell'asse, quindi la densità non cambia lungo di esso."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Deformazione per distanza"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Fusione graduale"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Gusci a gradini"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Lobi"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Normale Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Normale Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Normale X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Densità interna"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Densità del riempimento adattivo al centro dell'oggetto."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Gradiente adattivo"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Come cambia la densità dalla superficie al centro dell'oggetto.\n"
+"Lineare: la densità cambia a velocità costante.\n"
+"Quadratico: la densità resta prossima alla densità del riempimento sparso nei pressi della superficie e cambia più rapidamente verso il centro.\n"
+"Esponenziale: la densità cambia rapidamente appena sotto la superficie e si stabilizza verso il centro."
+
+# AI Translated
+msgid "Linear"
+msgstr "Lineare"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Quadratico"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Esponenziale"
+
# AI Translated
msgid "Z-buckling bias optimization (experimental)"
msgstr "Ottimizzazione dello svergolamento in Z (sperimentale)"
@@ -15799,14 +17064,16 @@ msgstr "Altezza primo strato"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Altezza del primo strato. L'aumento dell'altezza del primo strato può migliorare l'adesione al piano di stampa."
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Indica la velocità per il primo strato, tranne che per le sezioni di riempimento solido."
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Indica la velocità per le pareti e la tesa del primo strato."
msgid "First layer infill"
msgstr "Riempimento primo strato"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Indica la velocità per le parti di riempimento solido del primo strato."
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Indica la velocità per il primo strato, ad eccezione di pareti e tesa, come riempimento, riempi spazio vuoto e supporti."
msgid "First layer travel speed"
msgstr "Velocità spostamento primo strato"
@@ -16269,6 +17536,10 @@ msgstr "Formato G-code"
msgid "What kind of G-code the printer is compatible with."
msgstr "Con quale tipo di G-code la stampante è compatibile."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (legacy)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16508,16 +17779,18 @@ msgstr "Larghezza della linea del riempimento sparso interno. Se espresso come u
msgid "Infill/wall overlap"
msgstr "Sovrapposizione riempimento/parete"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "L'area di riempimento viene leggermente allargata per sovrapporsi alla parete e garantire una migliore adesione. Il valore percentuale è relativo alla larghezza della linea del riempimento sparso. Imposta questo valore a circa il 10-15% per ridurre al minimo la potenziale sovraestrusione e l'accumulo di materiale, che causerebbero superfici superiori ruvide."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Permette di allargare leggermente l'area di riempimento per sovrapporsi alle pareti e garantire una migliore adesione. Il valore percentuale è relativo alla larghezza della linea della parete interna. Imposta questo valore a circa il 10-15% per ridurre al minimo la potenziale sovraestrusione e l'accumulo di materiale, che causerebbero superfici superiori ruvide."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Sovrapposizione riempimento solido superiore/inferiore e parete"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "L'area di riempimento solido superiore/inferiore viene leggermente allargata per sovrapporsi alla parete, garantendo una migliore adesione e riducendo al minimo la comparsa di fori nei punti in cui il riempimento superiore/inferiore incontra le pareti. Un valore del 25-30% è un buon punto di partenza, riducendo al minimo la comparsa di fori. Il valore percentuale è relativo alla larghezza della linea del riempimento sparso."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "L'area di riempimento solido superiore viene leggermente allargata per sovrapporsi alla parete, garantendo una migliore adesione e riducendo al minimo la comparsa di fori nei punti in cui il riempimento superiore incontra le pareti. Un valore del 25-30% è un buon punto di partenza, riducendo al minimo la comparsa di fori. Il valore percentuale è relativo alla larghezza della linea della parete interna."
msgid "This is the speed for internal sparse infill."
msgstr "Velocità del riempimento sparso interno."
@@ -16543,8 +17816,9 @@ msgstr "Larghezza massima di una regione segmentata. Il valore zero disabilita q
msgid "Interlocking depth of a segmented region"
msgstr "Profondità di incastro regione segmentata"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Profondità di incastro di una regione segmentata. Sarà ignorata se \"mmu_segmented_region_max_width\" è impostato a zero o se \"mmu_segmented_region_interlocking_depth\" è maggiore di \"mmu_segmented_region_max_width\". Il valore zero disabilita questa funzione."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Profondità di incastro di una regione segmentata. Su ogni strato alternato, la regione segmentata è limitata a questa profondità. Sarà ignorata se 'interlocking_beam' è abilitato. Zero disabilita questa funzione."
msgid "Use beam interlocking"
msgstr "Usa trave ad incastro"
@@ -16645,13 +17919,14 @@ msgstr "Abilita la contornatura degli strati sull'asse Z (noto anche come anti-a
msgid "Minimize wall height angle"
msgstr "Riduci altezza su pareti inclinate"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
-"Riduce l'altezza dei perimetri della superficie superiore in modo che si adattino meglio al bordo del modello\n"
-"Influisce sui perimetri con una pendenza inferiore a questo angolo (in gradi).\n"
+"Riduce l'altezza dei perimetri della superficie superiore in modo che si adattino meglio al bordo del modello.\n"
+"Influisce sui perimetri con una pendenza superiore a questo angolo (in gradi).\n"
"Il valore consigliato è 35. Impostare a 0 per disabilitare questa funzione."
msgid "Don't alternate fill direction"
@@ -16727,17 +18002,21 @@ msgstr "Velocità massima Z"
msgid "Maximum speed E"
msgstr "Velocità massima E"
-msgid "Maximum X speed"
-msgstr "Velocità massima X"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Velocità massima dell'asse X"
-msgid "Maximum Y speed"
-msgstr "Velocità massima Y"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Velocità massima dell'asse Y"
-msgid "Maximum Z speed"
-msgstr "Velocità massima Z"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Velocità massima dell'asse Z"
-msgid "Maximum E speed"
-msgstr "Velocità massima E"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Velocità massima dell'asse E"
msgid "Maximum acceleration X"
msgstr "Accelerazione massima X"
@@ -17252,7 +18531,7 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Funzionalità plugin a cui fa riferimento questo profilo, memorizzate come name;uuid;capability."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr "Plugin Python richiamati a ogni fase della pipeline di slicing per leggere e modificare i dati di slicing intermedi, incluso un passaggio finale di post-elaborazione del G-code. Ricerca/sperimentale."
msgid "Printer type"
@@ -17621,7 +18900,8 @@ msgstr "Cucitura obliqua per pareti interne"
msgid "Use scarf joint for inner walls as well."
msgstr "Utilizza la cucitura obliqua anche per le pareti interne."
-msgid "Role base wipe speed"
+# AI Translated
+msgid "Role based wipe speed"
msgstr "Velocità di spurgo basata su ruolo"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -17669,14 +18949,15 @@ msgstr ""
msgid "Wipe before external loop"
msgstr "Spurgo prima del perimetro esterno"
+# AI Translated
msgid ""
"To minimize visibility of potential overextrusion at the start of an external perimeter when printing with Outer/Inner or Inner/Outer/Inner wall print order, the de-retraction is performed slightly on the inside from the start of the external perimeter. That way any potential over extrusion is hidden from the outside surface.\n"
"\n"
"This is useful when printing with Outer/Inner or Inner/Outer/Inner wall print order as in these modes it is more likely an external perimeter is printed immediately after a de-retraction move."
msgstr ""
-"Per ridurre al minimo la visibilità di una potenziale sovraestrusione all'inizio di un perimetro esterno quando si stampa con l'ordine Esterno/Interno o Interno/Esterno/Interno, la de-retrazione viene eseguita leggermente verso l'interno, a partire dall'inizio del perimetro esterno. In questo modo qualsiasi potenziale sovraestrusione viene nascosta dalla superficie esterna.\n"
+"Per ridurre al minimo la visibilità di una potenziale sovraestrusione all'inizio di un perimetro esterno quando si stampa con l'ordine Esterna/Interna o Interna/Esterna/Interna, la de-retrazione viene eseguita leggermente verso l'interno, a partire dall'inizio del perimetro esterno. In questo modo qualsiasi potenziale sovraestrusione viene nascosta dalla superficie esterna.\n"
"\n"
-"Ciò è utile quando si stampa con l'ordine Esterno/Interno o Interno/Esterno/Interno, poiché in queste modalità è più probabile che venga stampato un perimetro esterno immediatamente dopo un movimento di de-retrazione."
+"Ciò è utile quando si stampa con l'ordine Esterna/Interna o Interna/Esterna/Interna, poiché in queste modalità è più probabile che venga stampato un perimetro esterno immediatamente dopo un movimento di de-retrazione."
msgid "Wipe speed"
msgstr "Velocità di spurgo"
@@ -17711,16 +18992,15 @@ msgstr "Limita i perimetri di gonna/scudo protettivo a una parete dopo il primo
msgid "Draft shield"
msgstr "Scudo protettivo"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
-"Uno scudo protettivo è utile per proteggere una stampa in ABS o ASA da deformazioni e distacchi dal piano di stampa dovuti a correnti d'aria. Di solito è necessario solo nelle stampanti con struttura aperta, ovvero senza un involucro.\n"
+"Uno scudo protettivo è utile per proteggere una stampa in ABS o ASA da deformazioni e distacchi dal piatto dovuti a correnti d'aria. Di solito è necessario solo nelle stampanti con struttura aperta, ovvero senza un involucro.\n"
"\n"
-"Abilitato = la gonna è alta quanto l'oggetto stampato più alto, altrimenti viene utilizzato il valore di 'Altezza gonna'.\n"
-"Nota: con lo scudo protettivo abilitato, la distanza tra la gonna e l'oggetto è stabilita dall'opzione 'Distanza gonna'. Pertanto se le tese sono attive, potrebbe intersecarsi con esse. Per evitare ciò, aumentare il valore della distanza gonna.\n"
+"Abilitato = la gonna è alta quanto l'oggetto stampato più alto, altrimenti viene utilizzato il valore di 'Altezza gonna'."
msgid "Enabled"
msgstr "Abilitato"
@@ -17887,6 +19167,130 @@ msgstr "Estrusore singolo multimateriale"
msgid "Use single nozzle to print multi filament."
msgstr "Usa un ugello singolo per stampare più filamenti."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "Stampante IDEX/IQEX"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Abilita la stampa parallela per stampanti con più carrelli indipendenti (IDEX, IQEX e simili)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Zone gestite dal firmware"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Se abilitata, lo slicer genera G-code con il contenuto della zona principale centrato sull'origine del piatto (0,0). Il firmware della stampante si occupa di posizionare le copie e le immagini speculari nella posizione fisica di ciascuna zona. Abilita solo su stampanti il cui firmware applica i propri offset di zona in modalità Copia/Specchio (ad es. la modalità di duplicazione IDEX di RepRapFirmware). Non ha effetto in modalità Principale (Primary)."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Numero di portali"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Numero di portali indipendenti sull'asse Y. 1 per IDEX/IQEX a binario singolo. 2 per sistemi a doppio portale (divide il piatto in righe)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Testine per portale"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Numero di teste di stampa indipendenti per portale lungo X. 2 per lo stile IDEX."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Posizione testina 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Posizione fisica sul piatto in cui si trova la testina T0 (indice 0). Determina come gli indici delle testine corrispondono alle zone del piatto. Per le configurazioni a portale singolo (IDEX) conta solo sinistra/destra; per le configurazioni a doppio portale (IQEX) sono selezionabili tutti e quattro gli angoli (anteriore = Y minore / vicino all'operatore, posteriore = Y maggiore / retro della macchina)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Ingombro ugello X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Distanza (mm) dall'ugello al bordo del carrello sul lato di collisione in X. Usata per calcolare la larghezza della fascia di esclusione anticollisione a ciascun confine X."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Ingombro ugello Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Distanza (mm) dall'ugello al bordo del carrello sul lato di collisione in Y. Usata per calcolare la larghezza della fascia di esclusione anticollisione a ciascun confine Y."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Margine di sicurezza"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Fascia di ingombro indicativa e non bloccante (mm), disegnata all'interno della zona principale a ciascun confine del carrello. Le parti posizionate in questa fascia verranno comunque elaborate; è un promemoria visivo per lasciare spazio extra vicino al bordo della zona."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Tema di visualizzazione"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Tema di colori per la visualizzazione delle zone del piatto IDEX/IQEX. Se necessario, scegli un tema adatto ai daltonici."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranopia / Protanopia (rosso-verde)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopia (blu-giallo)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Alto contrasto"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "Modalità di stampa IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Nome della modalità di stampa parallela IDEX/IQEX attiva, oppure \"primary\" per la stampa con un solo carrello. Richiede che Stampante IDEX/IQEX sia abilitata nel profilo della stampante (Stampante → Multimateriale → Configurazione IDEX/IQEX)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "Mappa filamenti delle testine IDEX/IQEX"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Associazione per piatto, che sostituisce quella predefinita, tra testine fisiche e slot filamento (numerati da 1). Vuota significa che ogni testina usa il primo filamento a cui la mappa degli estrusori fisici della stampante la collega."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "Nomi delle modalità IDEX/IQEX"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Nomi visualizzati per ciascuna modalità di stampa parallela IDEX/IQEX definita dall'utente."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Testine attive delle modalità IDEX/IQEX"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Assegnazioni dei ruoli delle testine per ciascuna modalità. Formato: \"idx:P,idx:C,idx:M\" dove P=Primary (Principale), C=Copy (Copia), M=Mirror (Specchio) (ad es. \"0:P,1:C,2:M,3:M\"). Gestite dall'editor Modalità IDEX/IQEX nel profilo della stampante."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-code delle modalità IDEX/IQEX"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code o chiamata a macro da inserire all'inizio della stampa per ciascuna modalità."
+
msgid "Manual Filament Change"
msgstr "Cambio manuale del filamento"
@@ -18268,6 +19672,167 @@ msgstr "Soglia sovrapposizione"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Se l'angolo di soglia è zero, i supporti verranno generati per le sporgenze la cui sovrapposizione è al di sotto della soglia. Quanto più piccolo è questo valore, tanto più ripide saranno le sporgenze stampabili senza supporti."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Inclinazione piatto X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Angolo di inclinazione del piatto lungo l'asse X. Un valore positivo inclina il piatto in modo che il lato +X sia più alto, spostando la gravità verso -X e aumentando le sporgenze sul lato +X. Un valore negativo solleva il lato -X. Imposta 0 per nessuna inclinazione sull'asse X. In modalità stampante a nastro, viene sincronizzato automaticamente con l'angolo del nastro."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Inclinazione piatto Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Angolo di inclinazione del piatto lungo l'asse Y. Un valore positivo inclina il piatto in modo che il lato +Y sia più alto, spostando la gravità verso -Y e aumentando le sporgenze sul lato +Y. Un valore negativo solleva il lato -Y. Imposta 0 per nessuna inclinazione sull'asse Y."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Abilita stampa a nastro"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Abilita la modalità stampante a nastro. Le stampanti a nastro usano un nastro trasportatore come superficie di stampa, inclinato di un certo angolo (in genere 45 gradi). Lo slicer ruoterà il piano di sezionamento e trasformerà le coordinate del G-code per la superficie di stampa inclinata."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Asse Y infinito"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Abilita l'asse Y infinito per le stampanti a nastro. Se abilitato, il limite del volume di stampa sull'asse Y viene di fatto rimosso, consentendo di stampare oggetti di qualsiasi lunghezza lungo la direzione del nastro."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Asse di inclinazione del nastro"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Asse attorno al quale la mesh viene ruotata prima dell'elaborazione. È l'inclinazione della stampante a nastro: una rotazione isometrica (senza distorsione) che determina anche la visualizzazione del piatto e l'inclinazione della gravità per i supporti, e che la trasformazione inversa del G-code annulla prima di taglio/scala e rimappatura nel sistema di riferimento macchina. X è l'inclinazione tipica del portale (il nastro scorre lungo Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Angolo di inclinazione del nastro"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Angolo di inclinazione della superficie del nastro, in gradi. La maggior parte delle stampanti a nastro usa 45°. I valori positivi ruotano in senso antiorario guardando lungo l'asse di inclinazione positivo; il valore assoluto è anche l'inclinazione fisica del nastro usata per la visualizzazione del piatto e la gravità dei supporti."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Disaccoppia inclinazione del sistema di riferimento macchina"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Opzione per esperti: imposta l'angolo di inclinazione del sistema di riferimento macchina (taglio/scala del G-code) indipendentemente dall'angolo di rotazione pre-elaborazione. Se disabilitata, la trasformazione del sistema di riferimento macchina deriva dall'angolo di inclinazione del nastro, quindi un unico angolo governa entrambe le fasi. Abilita solo per compensare una macchina la cui inclinazione fisica del portale differisce dalla rotazione di elaborazione."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Angolo di inclinazione del sistema di riferimento macchina"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Angolo di inclinazione (gradi) usato per ricavare il taglio (cot) e la scala (1/|sin|) del sistema di riferimento macchina applicati al G-code. Usato solo quando 'Disaccoppia inclinazione del sistema di riferimento macchina' è abilitato; altrimenti viene usato l'angolo di inclinazione del nastro."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "X invertito"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Y invertito"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Z invertito"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "Rimappatura G-code X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Quale asse di elaborazione corrisponde all'asse X della macchina nel G-code generato. Applicato DOPO l'elaborazione, durante la generazione del G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "Rimappatura G-code Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Quale asse di elaborazione corrisponde all'asse Y della macchina nel G-code generato. Applicato DOPO l'elaborazione, durante la generazione del G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "Rimappatura G-code Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Quale asse di elaborazione corrisponde all'asse Z della macchina nel G-code generato. Applicato DOPO l'elaborazione, durante la generazione del G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Offset Z del pavimento dei supporti"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Sposta in alto o in basso il pavimento del nastro calcolato (mm). I valori negativi abbassano il pavimento, consentendo di mantenere più supporti. Usalo per diagnosticare problemi della formula del pavimento del nastro."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Abilita torre di spurgo del nastro"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Sostituto della torre di spurgo per le stampanti a nastro. Se abilitata su una stampante a nastro, viene generato automaticamente un prisma di spurgo accanto alle parti stampate e lo spurgo durante il cambio filamento viene indirizzato al suo interno (la classica torre di spurgo non può essere usata sulle stampanti a nastro perché il suo G-code aggira la trasformazione del nastro). Disponibile solo sulle stampanti a nastro."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Larghezza torre di spurgo del nastro"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Larghezza (X della macchina, trasversale al nastro) del prisma di spurgo generato automaticamente sulle stampanti a nastro quando la torre di spurgo del nastro è abilitata e vengono usati più filamenti. Lo spurgo durante il cambio filamento viene indirizzato nelle estrusioni di questo prisma invece che in una classica torre di spurgo. La sua altezza viene calcolata automaticamente dal volume di spurgo massimo per strato: un prisma più largo risulta più basso."
+
msgid "Tree support branch angle"
msgstr "Angolo rami supporti ad albero"
@@ -18451,13 +20016,11 @@ msgstr "Riempimenti separati"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
"Centra il riempimento interno di ogni parte su se stessa, come se fosse elaborata singolarmente, invece che sull'intero assieme. Le parti che si toccano o si sovrappongono vengono trattate come un unico corpo e condividono un centro; le parti separate (o oggetti 3D distinti) ne ottengono ciascuna uno proprio.\n"
"Utile quando un assieme raggruppa più oggetti che dovrebbero mantenere ciascuno un riempimento coerente e centrato su se stesso.\n"
-"Influisce sui motivi a linee e a griglia e sui riempimenti a schema ruotato.\n"
-"I motivi vincolati alle coordinate globali (Giroide, Nido d'ape, TPMS, ...) non ne sono influenzati."
+"Cubico adattivo e Supporto cubico centrano sempre ogni parte su se stessa, mentre il riempimento Fulmine viene generato per l'intero oggetto e non ne è influenzato."
# AI Translated
msgid "Center surface pattern on"
@@ -18590,40 +20153,42 @@ msgstr "Angolo all'apice del cono utilizzato per stabilizzare la torre di spurgo
msgid "Maximum wipe tower print speed"
msgstr "Velocità massima di stampa della torre di spurgo"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
"Velocità massima di stampa durante lo spurgo nella torre di spurgo e nella stampa degli strati sparsi della torre. Durante lo spurgo, se la velocità del riempimento sparso o quella calcolata in base alla velocità volumetrica massima del filamento è inferiore, verrà utilizzata quella inferiore.\n"
"\n"
-"Durante la stampa di strati sparsi, se la velocità delle pareti interne o quella calcolata in base alla velocità volumetrica massima del filamento è inferiore, verrà utilizzata quella inferiore.\n"
+"Durante la stampa di strati sparsi, se la velocità del riempimento sparso o quella calcolata in base alla velocità volumetrica massima del filamento è inferiore, verrà utilizzata quella inferiore.\n"
"\n"
"Aumentare questa velocità può compromettere la stabilità della torre e aumentare la forza con cui l'ugello entra in collisione con eventuali grumi che si sono formati sulla torre di spurgo.\n"
"\n"
"Prima di aumentare questo parametro oltre il valore predefinito di 90 mm/s, accertati che la stampante sia in grado di gestire in modo affidabile le maggiori velocità, e che il trasudo del materiale durante il cambio di testina sia ben controllato.\n"
"\n"
-"Per i perimetri esterni della torre di spurgo viene utilizzata la velocità dei perimetri interni, indipendentemente da questa impostazione."
+"Per i perimetri esterni della torre di spurgo viene utilizzata la velocità dei perimetri interni, anch'essa limitata da questa impostazione."
msgid "Wall type"
msgstr "Tipo di parete"
+# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
-"Tipo di parete esterna della torre di pulizia.\n"
-"1. Rettangolo: il tipo di parete predefinito, un rettangolo con larghezza e altezza fisse.\n"
-"2. Cono: un cono con raccordo sul fondo per contribuire alla stabilizzazione della torre di pulizia.\n"
-"3. Nervatura: aggiunge quattro nervature alla parete della torre per una stabilità migliorata."
+"Tipo di parete esterna della torre di spurgo.\n"
+"1. Rettangolo: un rettangolo con larghezza e altezza fisse.\n"
+"2. Cono: un cono con raccordo sul fondo per contribuire alla stabilizzazione della torre di spurgo.\n"
+"3. Nervatura: il tipo di parete predefinito, che aggiunge quattro nervature alla parete della torre per una stabilità migliorata."
msgid "Rectangle"
msgstr "Rettangolo"
@@ -18691,6 +20256,14 @@ msgstr "Lo spurgo dopo il cambio del filamento verrà eseguito all'interno del s
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Questo oggetto viene utilizzato per spurgare l'ugello dopo un cambio di filamento, per risparmiare filamento e ridurre il tempo di stampa. I colori degli oggetti saranno mescolati. Non avrà effetto, a meno che la torre di spurgo non sia abilitata."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Oggetto torre di spurgo del nastro"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Contrassegna il prisma di spurgo del nastro generato automaticamente. Gestito automaticamente; non impostare manualmente."
+
msgid "Maximal bridging distance"
msgstr "Distanza massima di collegamento"
@@ -18706,8 +20279,9 @@ msgstr "Spaziatura tra le linee della torre di spurgo."
msgid "Extra flow for purging"
msgstr "Flusso aggiuntivo per spurgo"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Flusso aggiuntivo utilizzato per le linee sulla torre di spurgo. Ciò rende le linee di spurgo più spesse o più sottili di quanto sarebbero normalmente. La spaziatura viene regolata automaticamente."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Flusso aggiuntivo utilizzato per le linee sulla torre di spurgo. Ciò rende le linee di spurgo più spesse di quanto sarebbero normalmente. La spaziatura viene regolata automaticamente."
msgid "Idle temperature"
msgstr "Temperatura di inattività"
@@ -18825,14 +20399,15 @@ msgstr "Spessore minimo delle caratteristiche sottili. Le caratteristiche del mo
msgid "Minimum wall length"
msgstr "Lunghezza minima parete"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Regola questo valore per evitare che vengano stampate pareti corte e non chiuse, le quali potrebbero aumentare il tempo di stampa. Valori più alti rimuovono un numero maggiore di pareti e di maggior lunghezza.\n"
+"Regola questo valore per evitare che vengano stampate pareti corte e non chiuse, le quali potrebbero aumentare il tempo di stampa. Il valore è un multiplo della larghezza della parete. Valori più alti rimuovono un numero maggiore di pareti e di maggior lunghezza.\n"
"\n"
-"NOTA: le superfici inferiori e superiori non saranno influenzate da questo valore, per evitare spazi visibili all'esterno del modello. Usa 'Soglia singola parete' nelle impostazioni avanzate qui sotto, per regolare la sensibilità di ciò che è considerato una superficie superiore. 'Soglia singola parete' è visibile solo se questa impostazione è impostata sopra il valore predefinito di 0,5 o se sono abilitate superfici superiori a parete singola."
+"NOTA: le superfici inferiori e superiori non saranno influenzate da questo valore, per evitare spazi visibili all'esterno del modello. Usa 'Soglia singola parete' nelle impostazioni 'Pareti e superfici' qui sotto, per regolare la sensibilità di ciò che è considerato una superficie superiore. 'Soglia singola parete' è visibile solo se questa impostazione è impostata sopra il valore predefinito di 0,5 o se sono abilitate superfici superiori a parete singola."
msgid "Maximum wall resolution"
msgstr "Risoluzione massima parete"
@@ -18843,8 +20418,9 @@ msgstr "Questo valore determina la lunghezza minima del segmento di linea della
msgid "Maximum wall deviation"
msgstr "Deviazione massima parete"
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "Deviazione massima consentita quando si riduce la risoluzione tramite l'impostazione \"Risoluzione massima parete\". Se si aumenta questo valore, la stampa sarà meno precisa, ma il G-Code sarà più contenuto. \"Deviazione massima parete\" limita \"Risoluzione massima parete\", quindi in caso di conflitto tra i due valori, \"Deviazione massima parete\" ha la precedenza."
+# AI Translated
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "Deviazione massima consentita quando si riduce la risoluzione tramite l'impostazione \"Risoluzione massima parete\". Se si aumenta questo valore, la stampa sarà meno precisa, ma il G-code sarà più contenuto. \"Deviazione massima parete\" limita \"Risoluzione massima parete\", quindi in caso di conflitto tra i due valori, \"Deviazione massima parete\" ha la precedenza."
msgid "First layer minimum wall width"
msgstr "Larghezza minima parete del primo strato"
@@ -18938,8 +20514,11 @@ msgstr "La larghezza della linea del ponte non deve superare il diametro dell'ug
msgid "too large line width "
msgstr "larghezza della linea troppo grande "
-msgid " not in range "
-msgstr " fuori portata "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% non è compreso nell'intervallo [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Esporta il progetto come file 3MF."
@@ -19089,6 +20668,14 @@ msgstr "Opzioni di orientamento"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Opzioni di orientamento: 0-disabilita, 1-abilita, altri-auto"
+# AI Translated
+msgid "Repair"
+msgstr "Ripara"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Ripara le mesh dei modelli come fa \"Correggi il modello\": chiude fori e crepe, le orienta verso l'esterno ed elimina le autointersezioni."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Angolo di rotazione attorno all'asse Z in gradi."
@@ -19197,6 +20784,12 @@ msgstr "Cartella di destinazione"
msgid "This is the output directory for exported files."
msgstr "Questa è la cartella di destinazione per i file esportati."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Livello di debug"
@@ -19363,6 +20956,57 @@ msgstr "Ha spurgo estrusore singolo MM"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "In questa stampa vengono utilizzate regioni di spurgo multimateriale aggiuntive?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Estrusore iniziale senza supporto"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Indice a base zero del primo estrusore utilizzato per la stampa senza supporto. Equivalente a initial_no_support_tool."
+
+# AI Translated
+# Needs human review: Placeholder variable label (in_head_wrap_detect_zone); 'head wrap' read as filament wrapping around the nozzle/head, check wording.
+msgid "In head wrap detect zone"
+msgstr "Nella zona di rilevamento avvolgimento testina"
+
+# AI Translated
+# Needs human review: Placeholder variable description (in_head_wrap_detect_zone); 'head wrap' read as filament wrapping around the nozzle/head, check wording.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Indica se il primo strato si sovrappone alla zona di avvolgimento della testina."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Tipo di piatto attuale"
+
+# AI Translated
+# Needs human review: Examples kept in English on purpose: they are the literal values the curr_bed_type placeholder returns.
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Nome del tipo di piatto attualmente selezionato (ad es. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Modalità attiva IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Nome della modalità di stampa parallela IDEX/IQEX attiva per questo piatto (ad es. 'primary', 'mirror', 'copy'). Stringa vuota se IDEX/IQEX non è abilitato."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Indice della modalità attiva IDEX/IQEX"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Indice a base zero della modalità di stampa parallela IDEX/IQEX attiva all'interno di imex_mode_names."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code della modalità attiva IDEX/IQEX"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Il modello G-code grezzo della modalità di stampa parallela IDEX/IQEX attiva, dopo la valutazione dei segnaposto. Le variabili globali definite qui confluiscono in machine_start_gcode."
+
msgid "Volume per extruder"
msgstr "Volume per estrusore"
@@ -19508,6 +21152,18 @@ msgstr "Nome del file di input senza estensione"
msgid "Source filename of the first object, without extension."
msgstr "Nome del file sorgente del primo oggetto, senza estensione."
+# AI Translated
+msgid "Full input filename"
+msgstr "Nome file di input completo"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Nome del file sorgente del primo oggetto."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Nome del piatto elaborato."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Il vettore ha due elementi: le coordinate X e Y del punto. Valori in mm."
@@ -19538,6 +21194,58 @@ msgstr "Angolo superiore destro del riquadro di delimitazione del piano di stamp
msgid "Size of the print bed bounding box"
msgstr "Dimensione del riquadro di delimitazione del piano di stampa"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Centro del primo strato senza torre di spurgo"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Altezza del primo strato."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Vettore delle temperature del piatto per ogni estrusore/filamento."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Vettore delle temperature del piatto del primo strato per ogni estrusore/filamento. Fornisce lo stesso valore di first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Temperatura piatto primo strato (estrusore iniziale)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Temperatura del piatto del primo strato per l'estrusore iniziale. Equivalente a bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Vettore delle temperature della camera per ogni estrusore/filamento."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Vettore delle temperature minime della camera per ogni estrusore/filamento."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Temperatura complessiva della camera"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Temperatura complessiva della camera. Questo valore è la temperatura massima della camera tra tutti gli estrusori/filamenti utilizzati."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Vettore delle temperature del piatto del primo strato per ogni estrusore/filamento. Fornisce lo stesso valore di bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Temperatura del primo strato"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Vettore delle temperature del primo strato per ogni estrusore/filamento."
+
msgid "Timestamp"
msgstr "Marca temporale"
@@ -19583,8 +21291,9 @@ msgstr "Nome della stampante fisica utilizzata per l'elaborazione."
msgid "Layer number"
msgstr "Numero dello strato"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Indice dello strato attuale. Basato su uno (cioè il primo livello è il numero 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Indice dello strato attuale. Parte da zero (cioè il primo strato è il numero 0), tranne nel G-code cambio ruolo di estrusione, dove parte da uno."
msgid "Layer Z"
msgstr "Strato Z"
@@ -19604,6 +21313,252 @@ msgstr "ID estrusore di filamento"
msgid "The current extruder ID. The same as current_extruder."
msgstr "L'ID dell'estrusore attuale. Equivalente a current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Estrusore precedente"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Indice dell'estrusore che viene scaricato. L'indice parte da zero (il primo estrusore ha indice 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Estrusore successivo"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Indice dell'estrusore che viene caricato. L'indice parte da zero (il primo estrusore ha indice 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Asse E relativo"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Indica se viene usato il posizionamento relativo."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Numero di cambi testina"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "Il numero di cambi testina durante la stampa."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Vecchia lunghezza di retrazione"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "La lunghezza di retrazione del filamento precedente."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Nuova lunghezza di retrazione"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "La lunghezza di retrazione del nuovo filamento."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Vecchia lunghezza di retrazione al cambio testina"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "La lunghezza di retrazione al cambio testina del filamento precedente."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Nuova lunghezza di retrazione al cambio testina"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "La lunghezza di retrazione al cambio testina del nuovo filamento."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Temperatura del vecchio filamento"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "La temperatura del vecchio filamento."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Temperatura del nuovo filamento"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "La temperatura del nuovo filamento."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X dopo il cambio testina"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "La posizione X dopo il cambio testina."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y dopo il cambio testina"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "La posizione Y dopo il cambio testina."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z dopo il cambio testina"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "La posizione Z dopo il cambio testina."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Primo volume di spurgo"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Il primo volume di spurgo."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Secondo volume di spurgo"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Il secondo volume di spurgo."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Velocità di avanzamento E del vecchio filamento"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "La velocità di avanzamento dell'estrusore del vecchio filamento."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Velocità di avanzamento E del nuovo filamento"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "La velocità di avanzamento dell'estrusore del nuovo filamento."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Punto di spostamento 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "Il punto di spostamento 1 X."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Punto di spostamento 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Il punto di spostamento 1 Y."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Punto di spostamento 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "Il punto di spostamento 2 X."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Punto di spostamento 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Il punto di spostamento 2 Y."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Punto di spostamento 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "Il punto di spostamento 3 X."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Punto di spostamento 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Il punto di spostamento 3 Y."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Lunghezza di spurgo 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "La prima lunghezza di spurgo."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Lunghezza di spurgo 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "La seconda lunghezza di spurgo."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Lunghezza di spurgo 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "La terza lunghezza di spurgo."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Lunghezza di spurgo 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "La quarta lunghezza di spurgo."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Ruolo di estrusione"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Il nuovo ruolo/tipo di estrusione che verrà utilizzato\n"
+"Valori possibili:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Ultimo ruolo di estrusione"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Il ruolo/tipo di estrusione utilizzato in precedenza\n"
+"Valori possibili:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Errore nell'archivio zip"
@@ -19616,24 +21571,32 @@ msgstr "Generazione regioni di riempimento"
msgid "Generating infill toolpath"
msgstr "Generazione percorso testina per riempimento"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Strato con contornatura Z %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Rilevamento sporgenze per il sollevamento automatico"
msgid "Checking support necessity"
msgstr "Verifica necessità di supporti"
-msgid "floating regions"
-msgstr "regioni fluttuanti"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Sembra che l'oggetto %1% abbia regioni sospese. Orienta nuovamente l'oggetto o abilita la generazione dei supporti."
-msgid "floating cantilever"
-msgstr "sbalzo fluttuante"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Sembra che l'oggetto %1% abbia uno sbalzo sospeso. Orienta nuovamente l'oggetto o abilita la generazione dei supporti."
-msgid "large overhangs"
-msgstr "sporgenze ampie"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Sembra che l'oggetto %s ha %s. Orienta nuovamente l'oggetto o abilita la generazione dei supporti."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Sembra che l'oggetto %1% abbia grandi sporgenze. Orienta nuovamente l'oggetto o abilita la generazione dei supporti."
msgid "Generating support"
msgstr "Generazione supporti"
@@ -19644,8 +21607,9 @@ msgstr "Ottimizzazione percorso testina"
msgid "Slicing mesh"
msgstr "Elaborazione maglia"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Non sono stati rilevati strati. Ripara il file STL o controlla le dimensioni o lo spessore e riprova.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Non sono stati rilevati strati. Ripara il modello o controlla le dimensioni o lo spessore e riprova.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19664,6 +21628,397 @@ msgstr ""
msgid "Object name"
msgstr "Nome oggetto"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Impossibile applicare l'operatore meno unario."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Impossibile convertire in intero."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Impossibile arrotondare un valore non numerico."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Impossibile arrotondare per difetto un valore non numerico."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Impossibile arrotondare per eccesso un valore non numerico."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Impossibile applicare l'operatore not."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Impossibile sommare tipi non numerici."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Impossibile sottrarre tipi non numerici."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Impossibile moltiplicare con un tipo non numerico."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Impossibile dividere un tipo non numerico."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Impossibile dividere per un tipo non numerico."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Divisione per zero"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Non è un'espressione booleana"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Impossibile confrontare i tipi."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Non è un tipo numerico."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: il secondo parametro deve essere un intero"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: il terzo parametro deve essere un intero"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Il lato sinistro di una corrispondenza regex deve essere una stringa."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Compilazione dell'espressione regolare non riuscita: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "Il primo parametro di regex_replace() deve essere una stringa."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): il primo parametro (la stringa con cui confrontare) deve essere un valore stringa"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): il pattern deve essere un valore stringa"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Compilazione dell'espressione regolare non riuscita"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Impossibile applicare un'operazione logica a operandi non booleani."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Tentativo di indicizzare una variabile scalare"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Indice del vettore non valido"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "La variabile non esiste (in un ramo inattivo)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "La variabile non esiste"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Tentativo di fare riferimento a una variabile opzionale non definita (nil)"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Indicizzazione di una variabile vettore vuota"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Tentativo di fare riferimento a un elemento non definito (nil) di un vettore di valori opzionali"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "La variabile di indicizzazione deve essere un intero"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Indice del vettore negativo"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Non è un nome di variabile"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Non è un nome di variabile (in un ramo inattivo)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "La variabile FloatOrPercent non è riuscita a risolvere le dipendenze di \"ratio_over\""
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Tipo di variabile scalare non supportato"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Riferimento a una variabile vettore dove è atteso uno scalare"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Tipo di variabile vettore non supportato"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Impossibile modificare una variabile di sola lettura"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Il lato destro non è un'espressione numerica"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Numero di elementi previsto con cui riempire un vettore."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Specificato un numero di elementi negativo."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Il lato destro non è un'espressione booleana"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Tipo di variabile scalare di output non supportato"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Riferimento a una variabile vettore di output dove è atteso uno scalare"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Indice fuori intervallo"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Tipo di variabile vettore di output non supportato"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Il simbolo è già definito nel dizionario di sistema di sola lettura"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Il simbolo è già definito come variabile di output di sistema"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Le variabili globali non sono disponibili in questo contesto"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Nome di variabile già definito nell'ambito locale"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Nome di variabile già definito nell'ambito globale"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Impossibile assegnare un valore scalare a una variabile vettore."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Impossibile assegnare un valore vettore a una variabile scalare."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Impossibile creare una variabile vettore da un elenco di inizializzazione vuoto, perché il suo tipo non può essere dedotto."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Il lato destro non è valido: miscela di tipi numerici e booleani."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Impossibile assegnare uno scalare a un vettore"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Alcuni elementi della variabile vettore di valori opzionali sul lato destro non sono definiti (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Il lato sinistro è un vettore di float, mentre il lato destro no."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Il lato sinistro è un vettore di interi, mentre il lato destro no."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Il lato sinistro è un vettore di stringhe, mentre il lato destro no."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Il lato sinistro è un vettore di booleani, mentre il lato destro no."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "I vettori del lato sinistro e del lato destro non sono compatibili."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "La duplicazione di questo tipo di variabile vettore non è supportata"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "Il parametro di empty() non è una variabile vettore"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "Il parametro di size() non è una variabile vettore"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Un indice non intero non è consentito per accedere a una variabile vettore."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Generatore di numeri casuali non disponibile in questo contesto."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Errore di analisi alla riga %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Errore di analisi alla riga %1%. Atteso tag %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Errore di analisi alla riga %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "Il valore di interpolazione deve essere un numero."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "Il valore X di un punto della tabella deve essere un numero."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "Il valore Y di un punto della tabella deve essere un numero."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Le coordinate X della tabella devono essere crescenti"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "Il valore di interpolazione è fuori dall'intervallo della tabella"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Errore di sintassi sconosciuto"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Testo non valido."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Blocco di testo non valido."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Macro non valida."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Non è una macro {if}{else}{endif}."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Non è una macro {switch}."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Atteso un formato legacy di espansione delle variabili"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Atteso un identificatore."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Attesa un'espressione condizionale."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Attesa un'espressione booleana."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Attesa un'espressione."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Attesa una parentesi graffa di chiusura o un parametro opzionale."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Atteso un elenco di pattern di stringa (testo semplice o regexp)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Atteso un riferimento a una variabile."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Atteso un nome di variabile."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Attesa un'espressione regolare."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Sequenza utf8 non valida"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "I caratteri non ASCII7 sono consentiti solo all'interno di blocchi di testo e letterali stringa, non all'interno di blocchi di codice."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Sequenza di escape non valida"
+
msgid "Support: generate contact points"
msgstr "Supporto: generazione punti di contatto"
@@ -19680,6 +22035,10 @@ msgstr "Impossibile leggere il file fornito perché è vuoto"
msgid "The file format is incompatible and cannot be parsed."
msgstr "Il formato del file non è compatibile e non può essere interpretato."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Conversione della risorsa in STL tramite ModelIO non riuscita."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Formato file sconosciuto: il file di input deve avere un'estensione .stl, .obj o .amf(.xml)."
@@ -19728,9 +22087,6 @@ msgstr "Ricalibrazione"
msgid "Calibrate"
msgstr "Calibra"
-msgid "Finish"
-msgstr "Fine"
-
msgid "How can I use calibration results?"
msgstr "Come utilizzare il risultato della calibrazione?"
@@ -19825,9 +22181,12 @@ msgstr ""
"Nello stesso estrusore, il nome (%s) deve essere univoco quando il tipo di filamento, il diametro dell'ugello e il flusso dell'ugello sono gli stessi.\n"
"Sei sicuro di voler sovrascrivere il risultato storico?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Questo tipo di macchina può contenere solo %d risultati per ogni ugello. Questo risultato non verrà salvato."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Questo tipo di macchina può contenere solo %d risultato storico per ogni ugello. Questo risultato non verrà salvato."
+msgstr[1] "Questo tipo di macchina può contenere solo %d risultati storici per ogni ugello. Questo risultato non verrà salvato."
msgid "Connecting to printer..."
msgstr "Connessione alla stampante..."
@@ -20049,9 +22408,13 @@ msgstr "Sincronizza informazioni ugello e AMS"
msgid "Please connect the printer first before synchronizing."
msgstr "Collegare prima la stampante prima di sincronizzare."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "Le informazioni dell'ugello della stampante %s non sono state impostate. Configurarle prima di procedere con la calibrazione."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Le informazioni dell'ugello destro della stampante non sono state impostate. Configurarle prima di procedere con la calibrazione."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Le informazioni dell'ugello sinistro della stampante non sono state impostate. Configurarle prima di procedere con la calibrazione."
msgid "AMS and nozzle information are synced"
msgstr "Le informazioni AMS e ugello sono sincronizzate"
@@ -20114,6 +22477,11 @@ msgstr "Dalla velocità volumetrica"
msgid "To Volumetric Speed"
msgstr "Alla velocità volumetrica"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Passo"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Sei sicuro di voler annullare la stampa?"
@@ -20139,9 +22507,12 @@ msgstr "Nota: Il numero del hotend su %s è collegato al supporto. Quando un hot
msgid "Action"
msgstr "Azione"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Questo tipo di macchina può contenere solo %d risultati per ogni ugello."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Questo tipo di macchina può contenere solo %d risultato storico per ogni ugello."
+msgstr[1] "Questo tipo di macchina può contenere solo %d risultati storici per ogni ugello."
msgid "Edit Flow Dynamics Calibration"
msgstr "Modifica calibrazione dinamica flusso"
@@ -20268,12 +22639,13 @@ msgstr ""
"I valori di accelerazione devono essere maggiori dei valori di velocità.\n"
"Verificare gli input."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Non ancora abilitato sulle stampanti a nastro: usa invece il metodo Torre AP."
+
msgid "Temperature calibration"
msgstr "Calibrazione della temperatura"
-msgid "Filament type"
-msgstr "Tipo filamento"
-
msgid "PLA"
msgstr "PLA"
@@ -20295,6 +22667,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Modello di test"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Standard"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Sporgenza"
+
msgid "Start temp: "
msgstr "Temperatura Iniziale: "
@@ -20420,9 +22805,6 @@ msgstr "Lunghezza di retrazione iniziale: "
msgid "End retraction length: "
msgstr "Lunghezza di retrazione finale: "
-msgid "Test model"
-msgstr "Modello di test"
-
msgid "Ringing Tower"
msgstr "Torre Ringing"
@@ -20452,8 +22834,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Frequenza (Inizio / Fine): "
-msgid "Start / End"
-msgstr "Inizio / Fine"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X Inizio / Fine: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y Inizio / Fine: "
msgid "Frequency settings"
msgstr "Impostazioni frequenza"
@@ -20490,8 +22877,13 @@ msgstr "Verifica compatibilità firmware."
msgid "Frequency: "
msgstr "Frequenza: "
-msgid "Damp"
-msgstr "Smorzamento"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Frequenza X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Smorzamento (Inizio / Fine): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "Il firmware RepRap utilizza la stessa frequenza per entrambi gli assi."
@@ -20622,8 +23014,10 @@ msgstr "Abilita IFS"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "Rilevati %d slot IFS sulla stampante."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "Rilevato %d slot IFS sulla stampante."
+msgstr[1] "Rilevati %d slot IFS sulla stampante."
# AI Translated
msgid "This printer does not report a material station."
@@ -20753,8 +23147,10 @@ msgstr "Sottrai da"
msgid "Subtract with"
msgstr "Sottrai con"
-msgid "selected"
-msgstr "selezionato"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 selezionato"
msgid "Part 1"
msgstr "Parte 1"
@@ -20867,9 +23263,6 @@ msgstr "ad esempio Base, Opaco, Seta, Marmo"
msgid "Filament Preset"
msgstr "Profilo filamento"
-msgid "Create"
-msgstr "Crea"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "Il produttore non è stato selezionato, si prega di selezionare nuovamente il produttore."
@@ -21180,6 +23573,10 @@ msgstr ""
"Stampante e tutti profili di filamento e processo che appartengono alla stampante.\n"
"Può essere condiviso con altri."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Includi trama e modello personalizzati del piatto"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21234,14 +23631,6 @@ msgstr "Nota: Se viene eliminato l'unico profilo basato su questo filamento, il
msgid "Presets inherited by other presets cannot be deleted"
msgstr "I profili ereditati da altri profili non possono essere eliminati"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Il seguente profilo eredita questo profilo."
-msgstr[1] "I seguenti profili ereditano questo profilo."
-
-msgid "Delete Preset"
-msgstr "Elimina profilo"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Sei sicuro di voler eliminare il profilo selezionato?"
@@ -21318,10 +23707,12 @@ msgstr "L'inizio, la fine o l'incremento non sono valori validi."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "Il numero di estrusori della stampante e la stampante selezionata per la calibrazione non corrispondono."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "Il diametro dell'ugello dell'estrusore %s è 0.2mm e non supporta la calibrazione automatica della dinamica del flusso."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21337,6 +23728,12 @@ msgstr ""
"Il diametro dell'ugello non corrisponde al diametro effettivo dell'ugello della stampante.\n"
"Fare clic sul pulsante Sincronizza sopra e riavviare la calibrazione."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Le informazioni dell'ugello della stampante %s non sono state impostate. Configurarle prima di procedere con la calibrazione."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21414,6 +23811,11 @@ msgstr "Rileva stampante Creality serie K"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Fai clic su Scansiona per cercare stampanti serie K sulla tua rete."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Modello"
+
# AI Translated
msgid "Scan"
msgstr "Scansiona"
@@ -21436,8 +23838,10 @@ msgstr "Nessuna stampante serie K trovata. Assicurati che la stampante sia sulla
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "Trovate %zu stampanti Creality. Selezionane una e fai clic su Usa selezionata."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "Trovata %zu stampante Creality. Selezionala e fai clic su Usa selezionata."
+msgstr[1] "Trovate %zu stampanti Creality. Selezionane una e fai clic su Usa selezionata."
# AI Translated
msgid "Active"
@@ -21556,8 +23960,12 @@ msgid "Failed to launch a new instance."
msgstr "Impossibile avviare una nuova istanza."
# AI Translated
-msgid "log(s)"
-msgstr "log"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d file di log (%.2f %s)"
+msgstr[1] "%d file di log (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -21612,17 +24020,37 @@ msgid "Authorizing..."
msgstr "Autorizzazione in corso..."
# AI Translated
-msgid "Error. Can't get API token for authorization"
-msgstr "Errore. Impossibile ottenere il token API per l'autorizzazione"
+msgid "Maximum login retries exceeded"
+msgstr "Numero massimo di tentativi di accesso superato"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "Errore HTTP: %1%"
# AI Translated
msgid "Could not parse server response."
msgstr "Impossibile analizzare la risposta del server."
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "Errore. Impossibile ottenere il token API per l'autorizzazione"
+
# AI Translated
msgid "Error saving session to file"
msgstr "Errore durante il salvataggio della sessione su file"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "La connessione al cloud di 3DPrinterOS funziona correttamente."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Accesso eseguito come utente: %1%"
+
# AI Translated
msgid "Error session check"
msgstr "Errore durante la verifica della sessione"
@@ -21659,6 +24087,42 @@ msgstr "Password errata"
msgid "Could not get resources to create a new connection"
msgstr "Impossibile trovare le risorse per stabilire una nuova connessione"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "La connessione a UltiMaker funziona correttamente."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Impossibile connettersi a UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Errore nella generazione delle credenziali! Consulta il log per i dettagli."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "ERRORE: ID o KEY è vuoto. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Nome utente: %1% Password: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Le credenziali di autenticazione sono in attesa di approvazione. Approva l'accesso tramite la finestra di dialogo sullo schermo della stampante."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Credenziali di autenticazione non valide"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Errore: nessuna credenziale di autenticazione trovata!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Caricamento non attivato sulla scheda FlashAir."
@@ -21776,6 +24240,14 @@ msgstr ""
"Corpo messaggio: \"%1%\"\n"
"Errore: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "La connessione a ESP3D funziona correttamente."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Impossibile connettersi a ESP3D"
+
msgid "No AMS"
msgstr "Senza AMS"
@@ -21847,6 +24319,11 @@ msgstr "Il numero massimo di stampanti che possono essere selezionate è %d"
msgid "No task"
msgstr "Nessuna attività"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Visualizza"
+
msgid "Edit Printers"
msgstr "Modifica Stampanti"
@@ -21888,6 +24365,11 @@ msgstr "Stampa non riuscita"
msgid "Printing Pause"
msgstr "Stampa in pausa"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "In preparazione"
+
msgid "Pending"
msgstr "In attesa"
@@ -21920,9 +24402,6 @@ msgstr "Abilita l'assegnazione intelligente del filamento: assegna un filamento
msgid "File Saving"
msgstr "Salvataggio file"
-msgid "Don't remind me again"
-msgstr "Non ricordarmelo più"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Non apparirà più alcun popup. Puoi riaprirlo nelle 'Preferenze'"
@@ -21947,17 +24426,24 @@ msgstr "Assegna manualmente il filamento all'ugello sinistro o destro"
msgid "Global settings"
msgstr "Impostazioni globali"
-# AI Translated
-msgid "Video tutorial"
-msgstr "Video tutorial"
-
msgid "(Sync with printer)"
msgstr "(Sincronizza con stampante)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Errore: l'estrusore %s non ha alcun ugello %s disponibile, il risultato del raggruppamento attuale non è valido."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Errore: l'estrusore sinistro non ha alcun ugello Standard disponibile, il risultato del raggruppamento attuale non è valido."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Errore: l'estrusore sinistro non ha alcun ugello ad alto flusso disponibile, il risultato del raggruppamento attuale non è valido."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Errore: l'estrusore destro non ha alcun ugello Standard disponibile, il risultato del raggruppamento attuale non è valido."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Errore: l'estrusore destro non ha alcun ugello ad alto flusso disponibile, il risultato del raggruppamento attuale non è valido."
msgid "We will slice according to this grouping method:"
msgstr "Lo slicing verrà eseguito secondo questo metodo di raggruppamento:"
@@ -22000,9 +24486,6 @@ msgstr "Impossibile connettersi a SimplyPrint"
msgid "Internal error"
msgstr "Errore interno"
-msgid "Unknown error"
-msgstr "Errore sconosciuto"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "Profilo SimplyPrint non collegato. Vai alle opzioni di connessione per configurarlo."
@@ -22010,6 +24493,16 @@ msgstr "Profilo SimplyPrint non collegato. Vai alle opzioni di connessione per c
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge ha restituito una risposta JSON non valida."
+# AI Translated
+msgid "Request failed"
+msgstr "Richiesta non riuscita"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Errore API locale Flashforge %1%: %2%"
+
# AI Translated
msgid "No Flashforge printers were discovered on the local network."
msgstr "Nessuna stampante Flashforge rilevata sulla rete locale."
@@ -22194,8 +24687,11 @@ msgid "Set the brim type of this object to \"painted\""
msgstr "Imposta il tipo di tesa di questo oggetto su \"dipinta\""
# AI Translated
-msgid "invalid brim ears"
-msgstr "tese ad orecchio non valide"
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d tesa ad orecchio non valida"
+msgstr[1] "%d tese ad orecchio non valide"
msgid "Brim Ears"
msgstr "Tese ad orecchio"
@@ -22224,6 +24720,7 @@ msgstr "Caricamento informazioni sugli oggetti da saltare fallito. Riprovare."
msgid "Failed to create the temporary folder."
msgstr "Impossibile creare la cartella temporanea."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Selezionati"
@@ -22243,9 +24740,12 @@ msgstr "Salto di tutti gli oggetti."
msgid "The printing job will be stopped. Continue?"
msgstr "Il lavoro di stampa verrà interrotto. Continuare?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Salto di %d oggetti."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "Salto di %d oggetto."
+msgstr[1] "Salto di %d oggetti."
msgid "This action cannot be undone. Continue?"
msgstr "Questa azione non può essere annullata. Continuare?"
@@ -22394,6 +24894,42 @@ msgstr "Se abilitata, i valori sopra riportati vengono memorizzati come valori p
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Esporta profili"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Mostra nella cartella"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Elimina pacchetto"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Annulla sottoscrizione pacchetto"
+
+# AI Translated
+msgid "Update available"
+msgstr "Aggiornamento disponibile"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Pacchetto non autorizzato"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Apri questo pacchetto nel browser"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "Sottoscritto"
+
+# AI Translated
+msgid "Local"
+msgstr "Locale"
+
# AI Translated
msgid "Bundle folder does not exist."
msgstr "La cartella del bundle non esiste."
@@ -22438,6 +24974,14 @@ msgstr "Annulla sottoscrizione bundle"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Esporta su OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Esporta in una cartella"
+
# AI Translated
msgid "Save preset bundle"
msgstr "Salva bundle di profili"
@@ -22539,6 +25083,11 @@ msgstr "Controllo dell'essiccazione AMS"
msgid "Filament Drying Settings"
msgstr "Impostazioni di essiccazione del filamento"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "h"
+
# AI Translated
msgid "Stopping"
msgstr "Arresto in corso"
@@ -22718,6 +25267,11 @@ msgstr "Avvio: verifica della presa d'aria"
msgid "Starting: Checking air vent"
msgstr "Avvio: verifica dello sfiato dell'aria"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Impossibile creare la cartella %1%"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Il filamento potrebbe non essere compatibile con le impostazioni correnti della macchina. Verranno utilizzati i profili di filamento generici."
@@ -22733,6 +25287,105 @@ msgstr "Il filamento potrebbe non essere compatibile con le impostazioni corrent
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Il modello di filamento è sconosciuto. Verrà utilizzato un profilo filamento casuale."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "File di configurazione sconosciuto: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "File di configurazione non valido: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "slot %1% -> slot %2%: filamento misto"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "definizione del filamento misto: limite degli slot filamento raggiunto"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "limite degli slot filamento raggiunto"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "il limite di filamenti della stampante è %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "slot %1% -> slot %2%: filamento misto non assegnato (il limite di filamenti della stampante è %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "slot %1%: filamento misto non assegnato (il limite di filamenti della stampante è %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "slot %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "slot %1%: impossibile importare la definizione del filamento misto"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "richiede almeno due componenti"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "i componenti fanno riferimento a slot mancanti"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "definizione del filamento misto: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "slot %1%: impossibile importare la definizione del filamento misto (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "slot %1%: %2% -> %3% (sostituito)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Caricamento del file di configurazione %1% non riuscito\n"
+"Si consiglia di pulire prima la cartella %2%"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Versione di configurazione del produttore %1% non valida: %2%\n"
+"Si consiglia di pulire prima la cartella %3%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Caricamento del file di configurazione %1% non riuscito: %2%\n"
+"Si consiglia di pulire prima la cartella %3%"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Nascondi piani e assi di riferimento"
@@ -23046,6 +25699,11 @@ msgstr "Nessun corpo superficie da ispessire — crea prima una funzione superfi
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Riferimento / Curva (piano / asse / sist. coord. / elica / proiezione)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Piano"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Piano di riferimento (offset / inclinato / piano medio / tangente / due spigoli / coincidente)"
@@ -23112,6 +25770,11 @@ msgstr "Sposta e/o ruota un corpo esistente"
msgid "Transform needs a body — add or import one first"
msgstr "Trasforma richiede un corpo — aggiungine o importane uno prima"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Specchia"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Rifletti un corpo rispetto a un piano"
@@ -23205,6 +25868,11 @@ msgstr "(nessuno)"
msgid "Hole / thread"
msgstr "Foro / filettatura"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Foro"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Pratica un foro, centrato su una faccia selezionata o posizionato su un piano"
@@ -23249,6 +25917,11 @@ msgstr "Clicca 2 punti o una linea / un cerchio / un arco per posizionare una qu
msgid "Line / polyline"
msgstr "Linea / polilinea"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Linea"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Clicca l'inizio, poi la fine — quindi imposta la lunghezza esatta"
@@ -23385,6 +26058,9 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Clicca i punti di controllo; doppio clic, clic destro o Invio per terminare"
+msgid "Point"
+msgstr "Punto"
+
# AI Translated
msgid "Click to place a point"
msgstr "Clicca per posizionare un punto"
@@ -23503,16 +26179,17 @@ msgstr "Scegli le entità, trascina la maniglia dell'ampiezza, clicca il numero;
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Clicca il centro, poi un vertice — %d lati, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Clicca il centro, poi un vertice — %d lato, circoscritto"
+msgstr[1] "Clicca il centro, poi un vertice — %d lati, circoscritto"
# AI Translated
-msgid "circumscribed"
-msgstr "circoscritto"
-
-# AI Translated
-msgid "inscribed"
-msgstr "inscritto"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Clicca il centro, poi un vertice — %d lato, inscritto"
+msgstr[1] "Clicca il centro, poi un vertice — %d lati, inscritto"
# AI Translated
msgid "Polygon"
@@ -23850,6 +26527,11 @@ msgstr "Su faccia"
msgid "Thread plane"
msgstr "Piano della filettatura"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Standard"
+
# AI Translated
msgid "Pitch"
msgstr "Passo"
@@ -24037,6 +26719,9 @@ msgstr "Scegli una faccia solida da aprire, poi imposta lo spessore della parete
msgid "(pick a side face)"
msgstr "(scegli una faccia laterale)"
+msgid "Face"
+msgstr "Faccia"
+
# AI Translated
msgid "Draft"
msgstr "Sformo"
@@ -24415,8 +27100,10 @@ msgstr "Schizzo aggiornato"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Schizzo creato (%zu quote guida) — selezionalo, poi clic destro per estruderlo"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Schizzo creato (%zu quota guida) — selezionalo, poi clic destro per estruderlo"
+msgstr[1] "Schizzo creato (%zu quote guida) — selezionalo, poi clic destro per estruderlo"
# AI Translated
#, c-format, boost-format
@@ -24553,8 +27240,10 @@ msgstr "Modifica: Schizzo %d · N = vista normale al piano · Conferma o
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — %zu triangoli"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — %zu triangolo"
+msgstr[1] "OK — %zu triangoli"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -24640,10 +27329,18 @@ msgstr "La mesh non contiene triangoli"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Questa mesh ha %d triangolo. Ogni triangolo diventa una faccia B-rep prima dell'unione delle facce complanari, quindi l'importazione potrebbe richiedere molto tempo e produrre un corpo lento da modificare. Di solito è meglio decimare prima la mesh.\n"
+"\n"
+"Importare comunque?"
+msgstr[1] ""
"Questa mesh ha %d triangoli. Ogni triangolo diventa una faccia B-rep prima dell'unione delle facce complanari, quindi l'importazione potrebbe richiedere molto tempo e produrre un corpo lento da modificare. Di solito è meglio decimare prima la mesh.\n"
"\n"
"Importare comunque?"
@@ -24672,8 +27369,8 @@ msgstr "Importazione mesh non riuscita: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Solido importato — %d triangoli → %d facce, volume %.2f mm³. Scegli una faccia o uno spigolo, poi Raccordo / Taglia / Svuotamento per modificarlo"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Solido importato — triangoli: %d → facce: %d, volume %.2f mm³. Scegli una faccia o uno spigolo, poi Raccordo / Taglia / Svuotamento per modificarlo"
# AI Translated
#, c-format, boost-format
@@ -24690,8 +27387,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s aggiunto allo schizzo — premi Conferma per applicarlo"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — trascina per posizionare/ridimensionare, poi Conferma"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — trascina per posizionare/ridimensionare, poi Conferma"
# AI Translated
msgid "Insert canceled"
@@ -24898,9 +27597,12 @@ msgid "a geometry operation failed"
msgstr "un'operazione geometrica non è riuscita"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d selezionati"
+msgid_plural " · %d picked"
+msgstr[0] " · %d selezionato"
+msgstr[1] " · %d selezionati"
# AI Translated
#, c-format, boost-format
@@ -24916,7 +27618,9 @@ msgstr "Seleziona — clicca un'entità per sceglierla · trascina un punto fi
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d selezionati · ora scegli un vincolo (Orizzontale, Parallelo, Tangente, Uguale…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d selezionato · ora scegli un vincolo (Orizzontale, Parallelo, Tangente, Uguale…)"
+msgstr[1] "%d selezionati · ora scegli un vincolo (Orizzontale, Parallelo, Tangente, Uguale…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -25177,7 +27881,9 @@ msgstr "Specchia — asse impostato · ora clicca le entità da specchiare ·
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Specchia — asse impostato · %d da specchiare · clicca un'altra entità per aggiungerla o rimuoverla · Invio applica"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Specchia — asse impostato · %d da specchiare · clicca un'altra entità per aggiungerla o rimuoverla · Invio applica"
+msgstr[1] "Specchia — asse impostato · %d da specchiare · clicca un'altra entità per aggiungerla o rimuoverla · Invio applica"
# AI Translated
msgid "Move — click the entities to move"
@@ -25300,8 +28006,10 @@ msgstr "Punto di schizzo"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d entità di schizzo"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d entità di schizzo"
+msgstr[1] "%d entità di schizzo"
# AI Translated
msgid "select something first"
@@ -25837,8 +28545,10 @@ msgid "Applied edit"
msgstr "Modifica applicata"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — digita un valore, premi Invio (o Conferma)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — digita un valore, premi Invio (o Conferma)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -25910,10 +28620,23 @@ msgstr "Invia al piatto — invia il solido a Prepara"
msgid "Nothing to commit — add a feature first"
msgstr "Niente da inviare — aggiungi prima una funzione"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Corpo di progettazione %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Tutti i corpi sono nascosti — mostrane uno prima di inviare"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Assemblaggio di progettazione"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Corpo di progettazione"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -25980,8 +28703,10 @@ msgstr "Non valido: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Anteprima — %zu triangoli"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Anteprima — %zu triangolo"
+msgstr[1] "Anteprima — %zu triangoli"
# AI Translated
#, c-format, boost-format
@@ -26083,8 +28808,10 @@ msgstr "Quella quota non può essere soddisfatta — lo schizzo è sovravincolat
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "Vincoli ignorati perché non possono agire su questa geometria (un'ellisse o una curva spline, o un cerchio di dimensione nulla): %1%"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% vincolo non può agire su questa geometria (un'ellisse o una curva spline, o un cerchio di dimensione nulla) ed è ignorato"
+msgstr[1] "%1% vincoli non possono agire su questa geometria (un'ellisse o una curva spline, o un cerchio di dimensione nulla) e sono ignorati"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -26142,8 +28869,10 @@ msgstr "Smusso: la distanza supera la lunghezza di un lato, oppure le due linee
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "Vincoli invalidati dal raccordo/smusso e rimossi: %1%"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "%1% vincolo invalidato dal raccordo/smusso è stato rimosso"
+msgstr[1] "%1% vincoli invalidati dal raccordo/smusso sono stati rimossi"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -26163,8 +28892,10 @@ msgstr "Il numero di copie deve essere un numero intero, pari o superiore a 2"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "Vincoli sciolti dalla trasformazione: %1%"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "%1% vincolo sciolto dalla trasformazione"
+msgstr[1] "%1% vincoli sciolti dalla trasformazione"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26315,11 +29046,6 @@ msgstr "Ispessisci superficie"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Ispessisci superficie richiede un corpo superficie — creane prima uno con uno strumento di superficie"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Foro"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26404,11 +29130,6 @@ msgstr "Ripetizione circolare"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Ripeti il corpo attorno a un asse — imposta il numero e l'ampiezza"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Specchia"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26445,11 +29166,6 @@ msgstr "Allinea richiede un corpo — aggiungine o importane uno prima"
msgid "Align the body to a picked face or plane"
msgstr "Allinea il corpo a una faccia o a un piano selezionati"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Piano"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -26555,11 +29271,6 @@ msgstr "Elimina corpo"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Elimina l'intero corpo — rimuove la funzione da cui è stato creato"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Linea"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -26874,214 +29585,6 @@ msgstr "Questo carattere non ha un contorno per questo testo"
msgid "Size: %.1f × %.1f mm"
msgstr "Dimensioni: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Primitiva"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Generata una mesh vuota"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Parallelepipedo"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Rapido:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Larghezza (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Profondità (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Altezza (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "R inferiore"
-
-# AI Translated
-msgid "Top R"
-msgstr "R superiore"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "R maggiore"
-
-# AI Translated
-msgid "Minor R"
-msgstr "R minore"
-
-# AI Translated
-msgid "All edges"
-msgstr "Tutti gli spigoli"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Spigoli superiori"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Spigoli inferiori"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Spigoli laterali"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Risoluzione mesh"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Aggiungi forma"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Nessun profilo esterno"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Impossibile creare la faccia esterna"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Impossibile creare la faccia con i fori"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Rivoluzione non riuscita"
-
-# AI Translated
-msgid "Profile"
-msgstr "Profilo"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Inizia un nuovo profilo (per i fori)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segmenti"
-
-# AI Translated
-msgid "Sides"
-msgstr "Lati"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Clicca nell'area di disegno per disegnare"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Aggancia alla griglia"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Passo griglia"
-
-# AI Translated
-msgid "Outer"
-msgstr "Esterno"
-
-# AI Translated
-msgid "closed"
-msgstr "chiuso"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% punti %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (Superiore)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (Frontale)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (Laterale)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Gradi rivoluzione"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "Imposta 0 per estrudere, >0 per rivoluzionare"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Tasca (taglio)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu profilo chiuso"
-msgstr[1] "%zu profili chiusi"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Disegna un profilo chiuso per abilitare"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Cancella tutto"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Risultato vuoto"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Estrusione: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Rivoluzione: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Nessun oggetto selezionato"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Creazione della faccia non riuscita"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Creazione della faccia con fori non riuscita"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Mesh dell'utensile vuota"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Tasca aggiunta (volume negativo)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Tasca: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -27203,6 +29706,10 @@ msgstr "Gizmo assemblaggio"
msgid "Gizmo brim ears"
msgstr "Gizmo tese ad orecchio"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Strumento pittura trama in rilievo"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Cursore di scorrimento verticale - Solleva cursore attivo"
@@ -27437,6 +29944,12 @@ msgstr "richiede una faccia cilindrica a entrambe le estremità — il connettor
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "richiede una faccia cilindrica a entrambe le estremità — il connettore %1% è su una faccia curva"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (piano base mancante)"
+
# AI Translated
msgid "two points are coincident"
msgstr "i due punti sono coincidenti"
@@ -27465,10 +29978,31 @@ msgstr "i piani sono paralleli (nessuna intersezione)"
msgid "zero-length direction"
msgstr "direzione di lunghezza nulla"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "una funzione opera sul corpo %1%, che a quel punto della cronologia non esiste"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "\"%1%\" opera su un corpo creato da una funzione eliminata o nascosta"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "\"%1%\" opera su un corpo che a quel punto della cronologia non esiste"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "la funzione è usata da una funzione successiva"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "\"%1%\" usa \"%2%\", quindi non può venire prima"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "le entità dello schizzo non formano un contorno chiuso"
@@ -27479,9 +30013,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Aperto in (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...e altre %1% estremità aperte"
+msgid "Open ends not shown: %1%"
+msgstr "Estremità aperte non mostrate: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "rivoluziona: la linea dell'asse non è più nello schizzo — scegli di nuovo l'asse"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "rivoluziona: la linea dell'asse non ha lunghezza"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -27629,6 +30172,30 @@ msgstr "creazione del contorno del foro non riuscita"
msgid "hole cut failed"
msgstr "taglio del foro non riuscito"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "filettatura: il diametro deve essere almeno 1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "filettatura: il passo deve essere superiore a 0,1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "filettatura: la profondità deve essere compresa tra 0 e 0,7 x il passo"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "filettatura: la profondità è troppo grande per questo diametro"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "filettatura: la lunghezza deve essere superiore a mezzo passo"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "filettatura: troppe spire (lunghezza / passo deve restare sotto 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "la filettatura interna richiede un corpo"
@@ -27689,6 +30256,22 @@ msgstr "eliminazione delle facce non riuscita"
msgid "delete_face produced no geometry"
msgstr "l'eliminazione delle facce non ha prodotto alcuna geometria"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "booleana: nessun corpo di destinazione"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "booleana: nessun corpo utensile — scegli un secondo corpo"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "booleana: la destinazione e l'utensile sono lo stesso corpo"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "booleana: un corpo non ha geometria"
+
# AI Translated
msgid "boolean operation failed"
msgstr "operazione booleana non riuscita"
@@ -28016,6 +30599,10 @@ msgstr "Immagini del modello"
msgid "Auxiliaries"
msgstr "Ausiliari"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Torre di spurgo del nastro"
+
# AI Translated
msgid "Project Filament List"
msgstr "Elenco filamenti del progetto"
@@ -28050,8 +30637,18 @@ msgstr "Per la scomposizione servono almeno due filamenti dello stesso tipo di m
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "L'elenco materiali supporta al massimo %1% colori. Dopo la scomposizione di %2%, il numero di materiali supererebbe %1%. Elimina i filamenti non usati nella schermata principale prima della scomposizione."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "L'elenco materiali supporta al massimo %1% colore. Dopo la scomposizione dell'elenco materiali, il numero di materiali supererebbe %1%. Elimina i filamenti non usati nella schermata principale prima della scomposizione."
+msgstr[1] "L'elenco materiali supporta al massimo %1% colori. Dopo la scomposizione dell'elenco materiali, il numero di materiali supererebbe %1%. Elimina i filamenti non usati nella schermata principale prima della scomposizione."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "L'elenco materiali supporta al massimo %1% colore. Dopo la scomposizione di %2%, il numero di materiali supererebbe %1%. Elimina i filamenti non usati nella schermata principale prima della scomposizione."
+msgstr[1] "L'elenco materiali supporta al massimo %1% colori. Dopo la scomposizione di %2%, il numero di materiali supererebbe %1%. Elimina i filamenti non usati nella schermata principale prima della scomposizione."
# AI Translated
msgid "Cyan"
@@ -28081,6 +30678,13 @@ msgstr "Verde"
msgid "Blue"
msgstr "Blu"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -28088,7 +30692,1235 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "L'elenco filamenti attuale non contiene %s. Dopo la scomposizione verrà creato automaticamente un filamento del progetto richiesto dal filamento misto."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "L'elenco filamenti attuale non contiene %s. Dopo la scomposizione verrà creato automaticamente un filamento del progetto richiesto dal filamento misto."
+msgstr[1] "L'elenco filamenti attuale non contiene %s. Dopo la scomposizione verranno creati automaticamente i filamenti del progetto richiesti dal filamento misto."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Opacità"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -28184,10 +32016,6 @@ msgstr "Le mie impostazioni"
msgid "Custom Printer Setup"
msgstr "Configurazione stampante personalizzata"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Stampante personalizzata"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Definisci un profilo stampante personalizzato"
@@ -28455,6 +32283,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Integra"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Digita un valore esatto in un cursore"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Icona di modifica all'estremità destra di un cursore"
+
# AI Translated
msgid "Texture displacement"
msgstr "Trama in rilievo"
@@ -28591,6 +32427,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Rimuovi trama"
+# AI Translated
+msgid "Adjust image"
+msgstr "Regola immagine"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Luminosità"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Contrasto"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Nitidezza"
+
+# AI Translated
+msgid "Blur"
+msgstr "Sfocatura"
+
+# AI Translated
+msgid "Hue"
+msgstr "Tonalità"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Mette in risalto i dettagli più fini dell'immagine. Viene applicata dopo Sfocatura, quindi i due controlli possono essere usati insieme: elimina la grana con la sfocatura, poi accentua i bordi che restano."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Sfoca l'immagine stessa. Il cursore Levigatura del livello ammorbidisce il rilievo senza alterare l'immagine, ed è quello da usare per primo."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Questa trama è in scala di grigi, quindi non ha una tonalità da spostare."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Il modello si aggiorna quando rilasci un cursore. Salva come copia scrive l'immagine regolata nella libreria delle trame e vi fa puntare questo livello."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Salva come copia"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Rimuovi livello di trama in rilievo"
@@ -28727,6 +32607,15 @@ msgstr "Scrive ogni fase acquisita come file OBJ, così da poterle aprire una ac
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Non è stato possibile trasferire l'area dipinta sul modello con la mesh ricostruita, quindi non è stato modificato nulla. Passa alla modalità Pro e ricostruisci la mesh prima di dipingere."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Intervallo: da %1% a %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Digita un valore invece di trascinare. Ctrl+clic sul cursore ha lo stesso effetto."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -28833,8 +32722,8 @@ msgid "Click a triangle to paint it"
msgstr "Clicca un triangolo per dipingerlo"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Richiede che il livello attivo sia mappato con Sviluppo UV (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Solo per un livello mappato con Sviluppa (LSCM) - imposta la Mappatura del livello attivo su Sviluppa per usare questa vista."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -28849,16 +32738,16 @@ msgid "Checker"
msgstr "Scacchiera"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Scacchiera - una griglia di prova al posto della trama. Dove i quadrati restano quadrati la trama non è distorta; dove si allungano, si allungherà anche la trama"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Scacchiera - una griglia di prova al posto della trama. Dove i quadrati restano quadrati la trama non è distorta; dove si allungano, si allungherà anche la trama. Apre l'editor UV se è chiuso"
# AI Translated
msgid "Distortion"
msgstr "Distorsione"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Distorsione - mappa di calore dell'allungamento, dal blu al rosso, sullo sviluppo UV"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Distorsione - mappa di calore dell'allungamento, dal blu al rosso, sullo sviluppo UV. Apre l'editor UV se è chiuso"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -28884,6 +32773,10 @@ msgstr "Scegli un'altra immagine per questo livello. Pittura, profondità e tass
msgid "not painted"
msgstr "non dipinto"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Luminosità, contrasto, nitidezza, sfocatura e tonalità, mostrati sull'immagine e sul modello man mano che li imposti. Salva come copia scrive il risultato nella libreria delle trame e vi fa puntare questo livello."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Sposta su - applicato prima"
@@ -28904,10 +32797,20 @@ msgstr "Altezza del rilievo: di quanto il bianco della trama solleva la superfic
msgid "Tile size"
msgstr "Dimensione tessera"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Mappata in base al layout UV del modello stesso, che è già il posizionamento - una copia della trama lo copre esattamente, quindi non c'è alcuna dimensione della tessera da impostare."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Larghezza di una copia della trama sul modello. Valori più piccoli ripetono il motivo più spesso e ne rendono i dettagli più fini; con Tassellatura disattivata, è la dimensione della singola copia."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Ruota la trama sulla superficie, in gradi - per allineare un motivo a uno spigolo del modello."
@@ -28975,28 +32878,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Alterna due filamenti per simulare i colori intermedi, così pochi filamenti possono riprodurre una foto o un gradiente. Un'immagine a colori uniformi viene stampata allo stesso modo in entrambi i casi. Se disattivato, usa un filamento per area."
# AI Translated
-msgid "Mix by"
-msgstr "Mescola per"
+msgid "Mixed colors"
+msgstr "Colori misti"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Superficie"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Numero massimo di filamenti misti che l'integrazione può aggiungere. Vengono scelti tra i colori della trama, e vengono creati solo quelli effettivamente usati dall'integrazione."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Strati: i due filamenti si alternano tra gli strati di stampa, il che dà una sfumatura uniforme sulle superfici verticali ma scompare su quelle orizzontali, dove un intero strato è un'unica fascia.\n"
-"Superficie: una scacchiera fine sulla superficie, che funziona con qualsiasi angolazione ma può apparire come una trama anziché come una sfumatura.\n"
-"Automatico: strati sulle facce verticali; le facce orizzontali prendono il singolo filamento più vicino, perché lì una scacchiera appare come un motivo."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% colori stampabili da %2% filamenti"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "da %1% filamento"
+msgstr[1] "da %1% filamenti"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% colore stampabile %2%"
+msgstr[1] "%1% colori stampabili %2%"
# AI Translated
msgid "Denoise"
@@ -29047,6 +32956,18 @@ msgstr "Dalla vista"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Dalla vista - proietta direttamente sull'area dipinta dal punto in cui stai guardando, come un proiettore di diapositive."
+# AI Translated
+msgid "Model UV"
+msgstr "UV del modello"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "UV del modello - usa le coordinate di trama con cui il modello è stato creato, così una trama realizzata per quel modello si posiziona esattamente dove è stata dipinta. Non viene sviluppato nulla e Dimensione tessera non si applica: il layout del modello stesso è il posizionamento."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Questo modello non ha coordinate di trama proprie. Solo un modello importato con un canale UV - un OBJ con trama, ad esempio - può essere mappato con esse."
+
# AI Translated
msgid "Open UV editor"
msgstr "Apri editor UV"
@@ -29061,8 +32982,10 @@ msgstr "Non ancora sviluppato"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% isole"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% isola"
+msgstr[1] "%1% isole"
# AI Translated
msgid "Capture current view"
@@ -29092,10 +33015,6 @@ msgstr "Cornice di proiezione"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Apre una finestra da trascinare sopra il modello. Ciò che vedi attraverso di essa riceve la trama, e il suo bordo diventa il bordo della proiezione."
-# AI Translated
-msgid "Opacity"
-msgstr "Opacità"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Quanto appare piena la finestra della cornice mentre la posizioni. Abbassala per vedere il modello attraverso; non influisce sul risultato."
@@ -29149,6 +33068,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Aggiungi"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Sovrascrivi"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -29168,8 +33092,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Il livello base non ha nulla sotto con cui combinarsi, quindi aggiunge sempre."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Cosa fa questo livello dove si sovrappone a quelli sottostanti. Aggiungi e Sottrai accumulano rilievo o lo asportano. Moltiplica e Dividi scalano ciò che sta sotto, trasformando questo livello in una maschera sopra di esso - in quel caso Profondità agisce come intensità, e 1 mm lascia invariate le aree bianche."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Cosa fa questo livello dove si sovrappone a quelli sottostanti. Aggiungi e Sottrai accumulano rilievo o lo asportano. Sovrascrivi li sostituisce, quindi dove è dipinto resta solo il rilievo di questo livello. Moltiplica e Dividi scalano ciò che sta sotto, trasformando questo livello in una maschera sopra di esso - in quel caso Profondità agisce come intensità, e 1 mm lascia invariate le aree bianche."
# AI Translated
msgid "Adjust placement"
@@ -29193,8 +33117,10 @@ msgstr "Più impostazioni"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Tutti i %1% livelli usati"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Tutti i livelli usati (%1%)"
+msgstr[1] "Tutti i %1% livelli usati"
# AI Translated
msgid "Add layer"
@@ -29274,8 +33200,10 @@ msgstr "Budget di triangoli: impostato con Triangoli, qui sotto."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Anteprima: %1% triangoli"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Anteprima: %1% triangolo"
+msgstr[1] "Anteprima: %1% triangoli"
# AI Translated
msgid "Steps"
@@ -29317,6 +33245,12 @@ msgstr "Ricostruzione della mesh"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Dimensione dei triangoli con cui viene ricostruito l'intero modello, in millimetri. Il rilievo funziona meglio su una mesh uniforme; questo valore permette di ottenerla da un modello importato irregolare."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Mantieni spigoli vivi"
@@ -29451,14 +33385,6 @@ msgstr "Servono circa %1% triangoli, budget %2% - l'integrazione semplificherà
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Quante migliaia di triangoli l'affinamento può aggiungere al modello. Il triangolo che si adatta peggio viene sempre diviso per primo, quindi anche un'esecuzione che esaurisce il budget lo ha speso dove si vede di più. Aumentalo se il rilievo appare ancora grossolano."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Interrompe l'integrazione. Ciò che era già stato completato resta sul modello e può essere annullato."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Chiude lo strumento senza integrare. Pittura, livelli e impostazioni restano con il modello."
-
# AI Translated
msgid "Preparing..."
msgstr "Preparazione..."
@@ -29483,35 +33409,56 @@ msgstr "Trasforma le mappe di altezza dipinte in geometria reale, spostando i ve
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Trasforma le mappe di altezza dipinte in geometria reale. La mesh viene prima ricostruita con densità uniforme e affinata dove la trama cambia pendenza, così il dettaglio ha vertici su cui posarsi - tutto in un solo passaggio."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Interrompe l'integrazione. Ciò che era già stato completato resta sul modello e può essere annullato."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Chiude lo strumento senza integrare. Pittura, livelli e impostazioni restano con il modello."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Modello: %1% triangoli - l'integrazione affina fino alla risoluzione indicata sopra, entro il suo budget"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Modello: %1% triangolo - l'integrazione affina fino alla risoluzione indicata sopra, entro il suo budget"
+msgstr[1] "Modello: %1% triangoli - l'integrazione affina fino alla risoluzione indicata sopra, entro il suo budget"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Integra sposta i vertici esistenti - il modello resta a %1% triangolo"
+msgstr[1] "Integra sposta i vertici esistenti - il modello resta a %1% triangoli"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Integra sposta i vertici esistenti - il modello resta a %1% triangoli"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Risultato dell'integrazione fino a ~%1% k triangolo"
+msgstr[1] "Risultato dell'integrazione fino a ~%1% k triangoli"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Risultato dell'integrazione fino a ~%1% k triangoli"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% livelli non dipinti, saltati"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% livello non dipinto, saltato"
+msgstr[1] "%1% livelli non dipinti, saltati"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% non dipinto, saltato"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% non dipinto, saltato"
+msgstr[1] "%1% non dipinti, saltati"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29528,6 +33475,10 @@ msgstr "Modifica trama in rilievo"
msgid "Choose SLA archive:"
msgstr "Seleziona l'archivio SLA:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "File di archivio SL1 / SL1S"
+
msgid "Import file"
msgstr "Importa file"
@@ -29691,6 +33642,34 @@ msgstr "Plugin filamento"
msgid "Printer plugins"
msgstr "Plugin stampante"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Questo profilo non usa alcuna funzionalità dei plugin"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Funzionalità usate da questo profilo"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Configurazione della funzionalità (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Configurazione del plugin"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Scarta la sostituzione specifica di questo profilo e torna a usare la configurazione globale"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Ripristina predefiniti"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "JSON non valido"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "La configurazione non è un JSON valido. Le modifiche non sono state salvate."
@@ -29710,10 +33689,6 @@ msgstr ""
"\n"
"Verrà scartata la personalizzazione del profilo e sarà usata la configurazione globale."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Ripristina predefiniti"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Uso della configurazione globale. Salva il profilo per renderla permanente."
@@ -29739,10 +33714,6 @@ msgstr "Annulla sottoscrizione"
msgid "Overwrite Plugin"
msgstr "Sovrascrivi plugin"
-# AI Translated
-msgid "Show in folder"
-msgstr "Mostra nella cartella"
-
# AI Translated
msgid "Reinstall"
msgstr "Reinstalla"
@@ -29751,6 +33722,10 @@ msgstr "Reinstalla"
msgid "Delete cache and reload"
msgstr "Elimina cache e ricarica"
+# AI Translated
+msgid "No description."
+msgstr "Nessuna descrizione."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Seleziona un pacchetto plugin .py o .whl."
@@ -29783,6 +33758,292 @@ msgstr "Installazione plugin"
msgid "Installed \"%s\"."
msgstr "\"%s\" installato."
+# AI Translated
+msgid "Search plugins"
+msgstr "Cerca plugin"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Cancella ricerca"
+
+# AI Translated
+msgid "Match case"
+msgstr "Distingui maiuscole/minuscole"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Solo parole intere"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Altre opzioni di installazione dei plugin"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Installa plugin"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Installa plugin locale"
+
+# AI Translated
+msgid "Activate"
+msgstr "Attiva"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Ordina per nome"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Ordina per versione"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Versione plugin"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Ordina per origine"
+
+# AI Translated
+msgid "Source"
+msgstr "Origine"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Ordina per stato"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Stato"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Trascina per ridimensionare; doppio clic per ripristinare"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Ridimensiona l'elenco dei plugin"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Dettagli del plugin"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Info plugin"
+
+# AI Translated
+msgid "Description"
+msgstr "Descrizione"
+
+# AI Translated
+msgid "Config"
+msgstr "Configurazione"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Registro modifiche"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnostica"
+
+# AI Translated
+msgid "Types"
+msgstr "Tipi"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Versione installata"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Ultima versione"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Aggiorna all'ultima versione"
+
+# AI Translated
+msgid "No description available"
+msgstr "Nessuna descrizione disponibile"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Seleziona un plugin per configurarne le funzionalità"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Funzionalità configurabili"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Scarta le impostazioni salvate per questa funzionalità e ripristina i valori predefiniti del plugin"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Registro modifiche del plugin"
+
+# AI Translated
+msgid "Date"
+msgstr "Data"
+
+# AI Translated
+msgid "Changes"
+msgstr "Modifiche"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Nessun registro modifiche disponibile"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Nessun problema rilevato"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Nessun plugin trovato"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Nessun plugin corrisponde a \"%s\""
+
+# AI Translated
+msgid "Mine"
+msgstr "Mio"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Sottoscritto"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Orfano"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Locale"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Alcune funzionalità del plugin sono abilitate"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Comprimi le funzionalità di %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Espandi le funzionalità di %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Comprimi funzionalità"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Espandi funzionalità"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Apri questo plugin nel browser"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Funzionalità: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Funzionalità"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Esegui \"%s\""
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Abilita %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Non autorizzato agli aggiornamenti"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Caricamento del plugin…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Questo plugin non espone alcuna funzionalità"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Attiva questo plugin per configurarne le funzionalità"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Visualizza su OrcaCloud qui "
+
+# AI Translated
+msgid "Activated"
+msgstr "Attivato"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Errore di esecuzione"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Inattivo"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Questo plugin è attivo e pronto per l'uso."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Questo plugin è ancora in caricamento."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Questo plugin è bloccato finché il suo errore non viene corretto."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Questo plugin è caricato, ma una funzionalità ha segnalato un errore."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Questo plugin non è attivo. Attivalo per installarlo o caricarlo."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Seleziona un plugin per visualizzarne lo stato e i dettagli."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Orfano: questo plugin non ha più una sottoscrizione attiva o non è più disponibile su OrcaCloud. La copia locale resta installata e può ancora essere usata."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "È disponibile una versione più recente del plugin."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Gli aggiornamenti dal cloud non sono disponibili perché questo plugin non è autorizzato agli aggiornamenti."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -29999,6 +34260,56 @@ msgstr "Impossibile ricaricare il plugin."
msgid "Reloaded \"%s\"."
msgstr "\"%s\" ricaricato."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Connessione stampante"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Configura la connessione della stampante per visualizzare il dispositivo."
+
+msgid "No model information"
+msgstr "Nessuna informazione sul modello"
+
+msgid "Edit Project Info"
+msgstr "Modifica informazioni progetto"
+
+msgid "Model Information"
+msgstr "Informazioni sul modello"
+
+msgid "Accessories"
+msgstr "Accessori"
+
+msgid "Profile Information"
+msgstr "Informazioni sul profilo"
+
+msgid "Model name"
+msgstr "Nome del modello"
+
+msgid "Created by"
+msgstr "Creato da"
+
+msgid "Remixed by"
+msgstr "Modificato da"
+
+msgid "Shared by"
+msgstr "Condiviso da"
+
+msgid "Model description"
+msgstr "Descrizione del modello"
+
+msgid "BOM"
+msgstr "Elenco dei materiali"
+
+msgid "Profile name"
+msgstr "Nome del profilo"
+
+msgid "Profile Author"
+msgstr "Autore del profilo"
+
+msgid "Profile description"
+msgstr "Descrizione del profilo"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Impostazioni modalità di spurgo"
@@ -30023,6 +34334,19 @@ msgstr "Riduce lo scarto di spurgo e stampa più velocemente. Può causare una l
msgid "Terminal"
msgstr "Terminale"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... o uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Terminale plugin pronto."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Il processo è terminato con codice: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Un comando è già in esecuzione."
@@ -30069,8 +34393,10 @@ msgstr "Nuovi filamenti misti"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Il progetto supporta fino a %d filamenti. I filamenti in eccesso verranno scartati."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Il progetto supporta fino a %d filamento. I filamenti in eccesso verranno scartati."
+msgstr[1] "Il progetto supporta fino a %d filamenti. I filamenti in eccesso verranno scartati."
# AI Translated
msgid "Import Model"
@@ -30157,8 +34483,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Calcolo non riuscito. Regola i parametri e riprova."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "La mesh ha geometria non-manifold o bordi aperti. Puoi importarla così com'è o ripararla con il servizio di riparazione 3D di Windows prima dell'importazione."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "La mesh ha geometria non-manifold o bordi aperti. Puoi importarla così com'è o ripararla prima dell'importazione."
# AI Translated
msgid "Mesh repair"
@@ -30172,14 +34498,6 @@ msgstr "Importa senza riparare"
msgid "Repair and import"
msgstr "Ripara e importa"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Nota: la mesh ha geometria non-manifold o bordi aperti."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Problema della mesh"
-
# AI Translated
msgid "The selected image is empty."
msgstr "L'immagine selezionata è vuota."
@@ -30188,6 +34506,14 @@ msgstr "L'immagine selezionata è vuota."
msgid "Failed to prepare the texture for use."
msgstr "Impossibile preparare la trama per l'uso."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Impossibile creare la cartella per le trame importate."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Impossibile salvare la trama importata."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Puoi rimuovere solo le trame che hai importato tu."
@@ -30196,18 +34522,10 @@ msgstr "Puoi rimuovere solo le trame che hai importato tu."
msgid "Could not delete the texture file."
msgstr "Impossibile eliminare il file della trama."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Impossibile creare la cartella per le trame importate."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Impossibile caricare l'immagine selezionata."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Impossibile salvare la trama importata."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Impossibile leggere il file della trama."
@@ -30251,8 +34569,10 @@ msgstr "Scegli Sviluppo UV come mappatura di un livello della trama per modifica
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d vertici selezionati | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d vertice selezionato | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi"
+msgstr[1] "%d vertici selezionati | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30260,8 +34580,10 @@ msgstr "Modalità vertice: trascina un vertice per modificare la forma | clic
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d spigoli selezionati | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d spigolo selezionato | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi"
+msgstr[1] "%d spigoli selezionati | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30269,8 +34591,10 @@ msgstr "Modalità spigolo: trascina uno spigolo di un'isola per modificare la fo
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d isole selezionate | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi, R/S = ruota/scala la principale"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d isola selezionata | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi, R/S = ruota/scala la principale"
+msgstr[1] "%d isole selezionate | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi, R/S = ruota/scala la principale"
# AI Translated
#, c-format, boost-format
@@ -30289,6 +34613,10 @@ msgstr " | aggancio ATTIVO"
msgid "Change texture - choose another one from the texture library"
msgstr "Cambia trama - scegline un'altra dalla libreria delle trame"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Dimensione tessera del livello attivo: quanta parte del modello copre una ripetizione della trama. L'area di lavoro è misurata in tessere, quindi una cella della griglia corrisponde a una ripetizione. Modificala con Dimensione tessera nelle impostazioni del livello."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Mappa di altezza - mostra la trama del livello sotto le isole"
@@ -30322,16 +34650,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Disponi lo sviluppo UV come una rete collegata: i pezzi che condividono uno spigolo vengono aperti uno accanto all'altro (un cubo diventa una rete unita invece di sei quadrati separati). Restano isole separate, quindi puoi comunque spostarle a mano in seguito."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Isola - sposta, ruota e scala intere isole"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Isola - lavora su isole intere. Clicca su una per selezionarla, poi trascinala per spostarla, trascinala con il tasto destro per ruotarla, oppure premi R per ruotarla e S per scalarla con il mouse (clic o Invio per confermare, Esc per annullare)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Vertice - trascina i vertici per modificare la forma; Maiusc/Ctrl per la selezione multipla"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Vertice - trascina i vertici per modificare a mano la forma di un'isola; Maiusc aggiunge alla selezione, Ctrl aggiunge o rimuove un vertice dalla selezione."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Spigolo - trascina gli spigoli per modificare la forma; Maiusc/Ctrl per la selezione multipla"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Spigolo - trascina gli spigoli per modificare a mano la forma di un'isola; Maiusc aggiunge alla selezione, Ctrl aggiunge o rimuove uno spigolo dalla selezione."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30370,8 +34698,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Aggancia - unisce le isole quando ne trascini una contro un'altra"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Inquadra tutte le isole (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Inquadra tutte le isole, adattandole tutte alla vista (Home o F).\n"
+"Altrove nell'area di lavoro: scorri per ingrandire attorno al cursore e trascina con il tasto centrale - o trascina su uno spazio vuoto - per spostare la vista."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Cosa è selezionato e i valori esatti dello spostamento, della rotazione o della scala mentre ne trascini uno."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30382,6 +34718,10 @@ msgstr "Nessun livello mappato con Sviluppo UV"
msgid "%.1f mm tile"
msgstr "tessera da %.1f mm"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Il pannello segue il livello di trama attivo, che deve essere mappato con Sviluppa (LSCM). Aggiungi un livello e imposta la sua Mappatura su Sviluppa."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Non aggiornato - la pittura, i tagli UV o l'angolo di taglio sono cambiati da quando è stato creato questo sviluppo UV. Premi per sviluppare di nuovo."
@@ -30390,19 +34730,69 @@ msgstr "Non aggiornato - la pittura, i tagli UV o l'angolo di taglio sono cambia
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Appiattisce l'area dipinta in isole UV. Viene calcolato solo quando premi questo pulsante, non a ogni modifica - quindi prima dipingi, cambia l'angolo di taglio o segna i tagli UV, poi premi Sviluppa."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Attiva prima Segna tagli UV - Percorso è un modo più rapido per segnarli."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Nessun taglio UV è segnato su questo livello."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Nessuna isola è stata modificata a mano, quindi non c'è nulla da scartare."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d isole, %s facce"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d isola"
+msgstr[1] "%d isole"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s faccia"
+msgstr[1] "%s facce"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Il risultato dello sviluppo UV dell'area dipinta: il numero di pezzi separati in cui è stata tagliata (lungo i tagli UV e gli spigoli più netti dell'angolo di taglio) e quanti triangoli contengono in totale."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Premi prima Sviluppa - non ci sono ancora isole su cui lavorare."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Clicca prima un'isola nell'area di lavoro, in modalità Isola."
+
+# AI Translated
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "PUB"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Accesso non effettuato"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Modulo di rete Bambu non rilevato. Fai clic qui per installarlo."
+
+msgid "Create new project"
+msgstr "Crea un nuovo progetto"
+
+msgid "Recently opened"
+msgstr "Aperti di recente"
+
+msgid "Open Containing Folder"
+msgstr "Apri cartella con contenuto"
# AI Translated
msgid "Forward"
msgstr "Avanti"
-# AI Translated
-msgid "Tools"
-msgstr "Strumenti"
-
# AI Translated
msgid "View Source"
msgstr "Visualizza sorgente"
@@ -30474,6 +34864,75 @@ msgstr "Carica %1% in %2%"
msgid "Load %s"
msgstr "Carica %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Impossibile abilitare l'agente stampante '%1%': l'ID agente '%2%' è già registrato dalla funzionalità '%3%' del plugin '%4%'."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Impossibile abilitare l'agente stampante '%1%': l'ID agente '%2%' è già registrato da '%3%'."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "File caricato"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Caricamento del G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Avvio della stampa..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Stampa avviata"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Caricamento..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Versione della libreria di rete non specificata"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Libreria di rete non trovata"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Caricamento della libreria di rete non riuscito"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Impossibile caricare la libreria di rete"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Una serie di moduli di rete meno recente. Le funzioni che richiedono un modulo più recente, come le istantanee dei guasti di stampa nella finestra di dialogo degli errori del dispositivo, non sono disponibili."
+
+# AI Translated
+msgid "unknown name"
+msgstr "nome sconosciuto"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"Il plugin \"%s\" richiede l'accesso in lettura al file system a:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Autorizzazioni del plugin"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -30488,36 +34947,60 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"Il plugin \"%s\" richiede di leggere il seguente file:\n"
+"%s"
+msgstr[1] ""
"Il plugin \"%s\" richiede di leggere i seguenti file:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"Il plugin \"%s\" richiede di leggere/scrivere il seguente file:\n"
+"%s"
+msgstr[1] ""
"Il plugin \"%s\" richiede di leggere/scrivere i seguenti file:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"Il plugin \"%s\" richiede di creare il seguente file:\n"
+"%s"
+msgstr[1] ""
"Il plugin \"%s\" richiede di creare i seguenti file:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"Il plugin \"%s\" richiede di eliminare il seguente file:\n"
+"%s"
+msgstr[1] ""
"Il plugin \"%s\" richiede di eliminare i seguenti file:\n"
"%s"
@@ -30542,10 +35025,30 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"Il plugin \"%s\" richiede di eseguire il seguente comando:\n"
+"%s"
+msgstr[1] ""
+"Il plugin \"%s\" richiede di eseguire i seguenti comandi:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "Il plugin \"%s\" richiede l'autorizzazione per creare un thread."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"Il plugin \"%s\" richiede di eseguire i seguenti comandi:\n"
+"Il plugin \"%s\" chiede di sostituire l'applicazione in esecuzione con:\n"
"%s"
# AI Translated
@@ -30557,6 +35060,46 @@ msgstr "Il plugin \"%s\" richiede l'autorizzazione per l'evento di audit Python
msgid "Plugin permission request"
msgstr "Richiesta di autorizzazione del plugin"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "Il profilo contiene un JSON di configurazione delle funzionalità del plugin non valido."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "La configurazione delle funzionalità del plugin del profilo non è un array e non può essere modificata."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Connessione stampante"
+
+# AI Translated
+msgid "Pages"
+msgstr "Pagine"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Analisi"
+
+# AI Translated
+msgid "Importer"
+msgstr "Importatore"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Esportatore"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Visualizzazione"
+
+# AI Translated
+msgid "Script"
+msgstr "Script"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Pipeline di slicing"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "L'interfaccia di configurazione del plugin era vuota. Viene mostrato l'editor predefinito."
@@ -30579,8 +35122,346 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Impossibile scrivere la configurazione sul disco. Non è stato modificato nulla."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Installazione del plugin non riuscita"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Installazione del plugin non riuscita: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: il plugin installato non è stato trovato nel catalogo."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "Nella chiave del plugin cloud manca l'UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Sottoscrizione al plugin cloud non riuscita, consulta i log per maggiori informazioni."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "È possibile annullare la sottoscrizione solo dei plugin cloud."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Annullamento della sottoscrizione del plugin non riuscito, consulta i log per maggiori informazioni."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Recupero dell'URL di download del plugin non riuscito (risultato %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Non sei autorizzato a scaricare questo plugin cloud."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Nessun pacchetto del plugin è disponibile per questo sistema operativo."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "La versione del plugin selezionata non è stata trovata."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "La versione %1% del plugin non è stata trovata."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Plugin cloud non trovato."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Download del plugin cloud non trovato: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Download del plugin cloud non trovato."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Nessun URL di download è disponibile per questo plugin. Controlla i log per eventuali errori."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Download del plugin non riuscito: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Download del plugin non riuscito con stato HTTP %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Il download del plugin ha restituito dati vuoti."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Impossibile creare il file temporaneo per il download del plugin."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Impossibile scrivere i dati del plugin nel file temporaneo."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Impossibile risolvere la cartella del plugin: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Impossibile eliminare la cartella del plugin %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "La cartella del plugin non esiste: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "La cartella del plugin contiene più file .py: %1% e %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "La cartella del plugin contiene più file .whl: %1% e %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "La cartella del plugin contiene sia file di ingresso .py che .whl"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "La cartella del plugin non contiene un file di ingresso .py o .whl"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Errore del plugin della pipeline di slicing '%1%': %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Il pacchetto del plugin deve essere un file .py o .whl, ricevuto: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Impossibile estrarre la dipendenza .whl del plugin %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Impossibile aggiungere la dipendenza .whl a sys.path: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Interprete Python non inizializzato: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Il manifest del plugin non è valido: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Impossibile installare le dipendenze del plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Impossibile caricare il modulo del plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Registrazione del plugin non riuscita: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Il modulo del plugin non ha registrato alcuna funzionalità"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Il plugin dichiara una funzionalità duplicata '%1%' per il tipo %2%"
+
+# AI Translated
+# Needs human review: 'Materialization' (turning the saved capability configuration into live capability objects) rendered as 'Istanziazione'; check it reads right.
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Istanziazione delle funzionalità del plugin non riuscita: %1%"
+
+# AI Translated
+# Needs human review: 'Materialization' (turning the saved capability configuration into live capability objects) rendered as 'Istanziazione'; check it reads right.
+msgid "Plugin capability materialization failed"
+msgstr "Istanziazione delle funzionalità del plugin non riuscita"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "on_load del plugin non riuscito: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "on_load del plugin non riuscito"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Il pacchetto del plugin non è un file: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "L'UUID del plugin cloud non è un identificatore valido: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Impossibile creare la cartella del plugin %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Impossibile eseguire il backup del plugin esistente %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Impossibile copiare il file del plugin in %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Impossibile scrivere lo stato di installazione del plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Il pacchetto del plugin è già caricato: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Conflitto di funzionalità per il tipo %1% e il nome '%2%'"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Rilevata una chiave plugin duplicata: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Il caricamento del plugin è ancora in corso"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Il plugin non è valido: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Plugin non trovato: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Errore imprevisto nel caricamento del plugin: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Errore imprevisto nel caricamento del plugin"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Manifest del plugin non trovato: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Recupero dei plugin dal cloud non riuscito. Consulta i log per i dettagli."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Accedi a OrcaCloud per installare questo plugin."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "Il plugin cloud sottoscritto non è stato restituito da OrcaCloud."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Download del plugin cloud non riuscito."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Installazione del plugin cloud non riuscita."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "È possibile aggiornare solo i plugin cloud."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Nessun aggiornamento disponibile per questo plugin."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Eliminazione rifiutata: il plugin si trova fuori dalle cartelle dei plugin note."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Aggiornamento rifiutato: il plugin si trova fuori dalle cartelle dei plugin note."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Impossibile mantenere il plugin in locale: esiste già una chiave plugin locale: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Impossibile aggiornare lo stato di installazione del plugin: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Non puoi annullare la sottoscrizione ai tuoi plugin."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "È possibile eliminare e annullare la sottoscrizione solo dei plugin cloud."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Non puoi annullare la sottoscrizione ai tuoi plugin. Usa Elimina per rimuovere i file locali."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Richiesta di autorizzazione alla lettura del file system del plugin negata"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30614,6 +35495,10 @@ msgstr "unione dell'estrusione bidirezionale non riuscita"
msgid "imported regions produced no extrudable geometry"
msgstr "le regioni importate non hanno prodotto geometria estrudibile"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "il profilo attraversa l'asse di rivoluzione — deve trovarsi da un solo lato"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Rivoluzione non riuscita"
@@ -30650,6 +35535,10 @@ msgstr "Creazione della faccia della tasca non riuscita"
msgid "Pocket cut failed"
msgstr "Taglio della tasca non riuscito"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "il profilo si interseca o si ripiega su se stesso, quindi non delimita un'unica regione"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "lo schizzo non ha un contorno chiuso"
@@ -30682,10 +35571,26 @@ msgstr "mesh_to_brep: la mesh non ha triangoli"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: tutti i triangoli sono stati scartati perché degeneri (prova una tolleranza più piccola)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "il raggio del raccordo deve essere maggiore di 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "nessuno spigolo da raccordare in quel gruppo"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "raggio del raccordo troppo grande per questa geometria"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "la distanza dello smusso deve essere maggiore di 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "nessuno spigolo da smussare in quel gruppo"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "distanza dello smusso troppo grande per questa geometria"
@@ -30698,6 +35603,153 @@ msgstr "apply_fillet: raccordo OCCT non riuscito"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: smusso OCCT non riuscito"
+# AI Translated
+msgid "empty component list"
+msgstr "elenco dei componenti vuoto"
+
+# AI Translated
+msgid "empty component index"
+msgstr "indice del componente vuoto"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "l'indice del componente deve essere >= 1 (ricevuto %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "indice del componente \"%1%\" non valido"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "sono richiesti almeno 2 componenti (ricevuti %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "indice del componente %1% duplicato"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "valore del rapporto vuoto"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "il rapporto deve essere positivo (ricevuto %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "rapporto \"%1%\" non valido"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "il numero di rapporti deve corrispondere al numero di componenti: previsti %1%, ricevuti %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "attesi due float separati da virgola, ad es. \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "i rapporti iniziale e finale devono essere in (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "la dimensione dell'array %1% non corrisponde al numero di slot filamento %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "deve essere impostato quando sono specificati i parametri del filamento misto"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "slot %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "slot %1%: il componente %2% è fuori intervallo (l'indice massimo del filamento fisico è %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "slot %1%: non può fare riferimento a se stesso come componente"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "slot %1%: il componente %2% fa riferimento a uno slot di filamento misto"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "slot %1%: il gradiente richiede esattamente 2 componenti"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "slot %1%: curva non valida (servono almeno 2 punti di controllo validi)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Caricamento del file di configurazione \"%1%\" non riuscito: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Non è un file G-code generato da %1%."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Tag di configurazione \"%1%\" non trovato"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Numero sospettosamente basso di valori di configurazione estratti da %1%: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Caricamento del file STEP non riuscito.\n"
+"Impossibile aprire il file in lettura.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "importazione SVG non riuscita: impossibile aprire l'SVG."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "importazione SVG non riuscita: impossibile analizzare i dati SVG importati."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Il G-code personalizzato riporta un z_retracted negativo."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Il G-code personalizzato riporta un z_restart_extra negativo."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Copia della cartella %1% su %2% non riuscita: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Autenticazione completata"
@@ -31144,6 +36196,1099 @@ msgstr ""
"Evita le deformazioni\n"
"Sapevi che quando si stampano materiali soggetti a deformazioni come l'ABS, aumentare in modo appropriato la temperatura del piano riscaldato può ridurre la probabilità di deformazione?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Scegliere il colore del filamento"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Larghezza della linea del ponte. Se espressa in %, verrà calcolata rispetto al diametro dell'ugello.\n"
+#~ "Se ne consiglia l'uso con una densità del ponte o un rapporto di flusso del ponte più elevati.\n"
+#~ "\n"
+#~ "Il valore massimo è 100% o il diametro dell'ugello.\n"
+#~ "Se impostata a 0, la larghezza della linea corrisponderà alla larghezza del riempimento solido interno."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Abilita questa opzione per rallentare la stampa nelle aree in cui i perimetri potrebbero essersi arricciati verso l'alto.\n"
+#~ "Ad esempio, verrà applicato un rallentamento aggiuntivo durante la stampa di sporgenze su angoli acuti come la parte anteriore dello scafo del Benchy, riducendo l'arricciamento che si accumula su più strati.\n"
+#~ "\n"
+#~ "In genere si consiglia di tenere attiva questa opzione, a meno che il raffreddamento della stampante non sia abbastanza potente o la velocità di stampa non sia abbastanza lenta da evitare l'arricciamento dei perimetri. \n"
+#~ "Se si stampa con un'elevata velocità del perimetro esterno, questo parametro può introdurre artefatti sulle pareti durante il rallentamento, a causa della variazione potenzialmente ampia delle velocità di stampa che impedisce all'estrusore di tenere il passo con la variazione di flusso richiesta.\n"
+#~ "La causa principale di questi artefatti è molto probabilmente una regolazione del PA leggermente imprecisa, soprattutto se combinata con un tempo di smoothing del PA elevato.\n"
+#~ "\n"
+#~ "Raccomandazioni quando si abilita questa opzione:\n"
+#~ "1. Riduci il tempo di smoothing del Pressure Advance a 0,015 - 0,02 in modo che l'estrusore reagisca rapidamente alle variazioni di velocità.\n"
+#~ "2. Aumenta le velocità di stampa minime per limitare l'entità del rallentamento e ridurre la variazione tra i segmenti veloci e lenti.\n"
+#~ "3. Se gli artefatti persistono, abilita l'Extrusion Rate Smoothing (ERS) per uniformare ulteriormente le transizioni di flusso.\n"
+#~ "\n"
+#~ "Nota: quando questa opzione è abilitata, i perimetri in sporgenza vengono trattati come sporgenze, il che significa che la velocità per le sporgenze viene applicata anche se il perimetro in sporgenza fa parte di un ponte.\n"
+#~ "Ad esempio, quando i perimetri sono in sporgenza al 100%, senza alcuna parete a sostenerli da sotto, verrà applicata la velocità per sporgenze del 100%."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Velocità di estrusione dei ponti visibili esternamente.\n"
+#~ "\n"
+#~ "Inoltre, se 'Rallenta per pareti incurvate' è disabilitato o è abilitata la modalità Sporgenza classica, la velocità di stampa delle pareti sporgenti supportate sarà inferiore al 13%, indipendentemente dal fatto che facciano parte di un ponte o di una sporgenza."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Questa impostazione influenzerà la velocità di stampa dei perimetri con raggio <= small_perimeter_threshold (di solito fori). Se espresso in percentuale (ad esempio: 80%) verrà calcolato sull'impostazione della velocità delle pareti esterne di cui sopra. Impostare su zero per auto."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Come \"Perimetri piccoli\", ma per i supporti. Questa impostazione separata influirà sulla velocità del supporto per le aree <= `small_support_perimeter_threshold`. Se espressa come percentuale (ad esempio: 80%), verrà calcolata sull'impostazione di velocità del supporto o dell'interfaccia del supporto sopra riportata. Imposta a zero per auto."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Sequenza di stampa delle pareti interne ed esterne.\n"
+#~ "\n"
+#~ "Utilizzare Interno/Esterno per sporgenze migliori. Questo perché le pareti sporgenti possono aderire a un perimetro vicino durante la stampa. Tuttavia, questa opzione comporta una qualità della superficie leggermente ridotta poiché il perimetro esterno viene deformato dalla pressione sul perimetro interno.\n"
+#~ "\n"
+#~ "Utilizzare Interno/Esterno/Interno per ottenere la migliore finitura superficiale esterna e la migliore precisione dimensionale, poiché la parete esterna viene stampata senza essere disturbata dal perimetro interno. Tuttavia, la qualità delle sporgenze si ridurrà poiché non si dispone di un perimetro interno contro cui stampare la parete esterna. Questa opzione richiede un minimo di 3 pareti per essere efficace, in quanto stampa prima le pareti interne dal 3° perimetro in poi, poi il perimetro esterno e, infine, il primo perimetro interno. Nella maggior parte dei casi, questa è l'opzione consigliata rispetto a Esterno/Interno.\n"
+#~ "\n"
+#~ "Utilizzare Esterno/Interno per ottenere la stessa qualità della parete esterna e gli stessi vantaggi di precisione dimensionale dell'opzione Interno/Esterno/Interno. Tuttavia, le cuciture Z appariranno meno coerenti quando la prima estrusione di un nuovo strato inizia su una superficie visibile."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Indica la velocità per il primo strato, tranne che per le sezioni di riempimento solido."
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Indica la velocità per le parti di riempimento solido del primo strato."
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "L'area di riempimento viene leggermente allargata per sovrapporsi alla parete e garantire una migliore adesione. Il valore percentuale è relativo alla larghezza della linea del riempimento sparso. Imposta questo valore a circa il 10-15% per ridurre al minimo la potenziale sovraestrusione e l'accumulo di materiale, che causerebbero superfici superiori ruvide."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "L'area di riempimento solido superiore/inferiore viene leggermente allargata per sovrapporsi alla parete, garantendo una migliore adesione e riducendo al minimo la comparsa di fori nei punti in cui il riempimento superiore/inferiore incontra le pareti. Un valore del 25-30% è un buon punto di partenza, riducendo al minimo la comparsa di fori. Il valore percentuale è relativo alla larghezza della linea del riempimento sparso."
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Profondità di incastro di una regione segmentata. Sarà ignorata se \"mmu_segmented_region_max_width\" è impostato a zero o se \"mmu_segmented_region_interlocking_depth\" è maggiore di \"mmu_segmented_region_max_width\". Il valore zero disabilita questa funzione."
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Riduce l'altezza dei perimetri della superficie superiore in modo che si adattino meglio al bordo del modello\n"
+#~ "Influisce sui perimetri con una pendenza inferiore a questo angolo (in gradi).\n"
+#~ "Il valore consigliato è 35. Impostare a 0 per disabilitare questa funzione."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Velocità di spurgo basata su ruolo"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Uno scudo protettivo è utile per proteggere una stampa in ABS o ASA da deformazioni e distacchi dal piano di stampa dovuti a correnti d'aria. Di solito è necessario solo nelle stampanti con struttura aperta, ovvero senza un involucro.\n"
+#~ "\n"
+#~ "Abilitato = la gonna è alta quanto l'oggetto stampato più alto, altrimenti viene utilizzato il valore di 'Altezza gonna'.\n"
+#~ "Nota: con lo scudo protettivo abilitato, la distanza tra la gonna e l'oggetto è stabilita dall'opzione 'Distanza gonna'. Pertanto se le tese sono attive, potrebbe intersecarsi con esse. Per evitare ciò, aumentare il valore della distanza gonna.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Velocità massima di stampa durante lo spurgo nella torre di spurgo e nella stampa degli strati sparsi della torre. Durante lo spurgo, se la velocità del riempimento sparso o quella calcolata in base alla velocità volumetrica massima del filamento è inferiore, verrà utilizzata quella inferiore.\n"
+#~ "\n"
+#~ "Durante la stampa di strati sparsi, se la velocità delle pareti interne o quella calcolata in base alla velocità volumetrica massima del filamento è inferiore, verrà utilizzata quella inferiore.\n"
+#~ "\n"
+#~ "Aumentare questa velocità può compromettere la stabilità della torre e aumentare la forza con cui l'ugello entra in collisione con eventuali grumi che si sono formati sulla torre di spurgo.\n"
+#~ "\n"
+#~ "Prima di aumentare questo parametro oltre il valore predefinito di 90 mm/s, accertati che la stampante sia in grado di gestire in modo affidabile le maggiori velocità, e che il trasudo del materiale durante il cambio di testina sia ben controllato.\n"
+#~ "\n"
+#~ "Per i perimetri esterni della torre di spurgo viene utilizzata la velocità dei perimetri interni, indipendentemente da questa impostazione."
+
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Tipo di parete esterna della torre di pulizia.\n"
+#~ "1. Rettangolo: il tipo di parete predefinito, un rettangolo con larghezza e altezza fisse.\n"
+#~ "2. Cono: un cono con raccordo sul fondo per contribuire alla stabilizzazione della torre di pulizia.\n"
+#~ "3. Nervatura: aggiunge quattro nervature alla parete della torre per una stabilità migliorata."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Flusso aggiuntivo utilizzato per le linee sulla torre di spurgo. Ciò rende le linee di spurgo più spesse o più sottili di quanto sarebbero normalmente. La spaziatura viene regolata automaticamente."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Regola questo valore per evitare che vengano stampate pareti corte e non chiuse, le quali potrebbero aumentare il tempo di stampa. Valori più alti rimuovono un numero maggiore di pareti e di maggior lunghezza.\n"
+#~ "\n"
+#~ "NOTA: le superfici inferiori e superiori non saranno influenzate da questo valore, per evitare spazi visibili all'esterno del modello. Usa 'Soglia singola parete' nelle impostazioni avanzate qui sotto, per regolare la sensibilità di ciò che è considerato una superficie superiore. 'Soglia singola parete' è visibile solo se questa impostazione è impostata sopra il valore predefinito di 0,5 o se sono abilitate superfici superiori a parete singola."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Dividi in %1% parte"
+#~ msgstr[1] "Dividi in %1% parti"
+
+#~ msgid "Repair failed"
+#~ msgstr "Riparazione fallita"
+
+#~ msgid "Repair canceled"
+#~ msgstr "Riparazione annullata"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Cosa fa questo livello dove si sovrappone a quelli sottostanti. Aggiungi e Sottrai accumulano rilievo o lo asportano. Moltiplica e Dividi scalano ciò che sta sotto, trasformando questo livello in una maschera sopra di esso - in quel caso Profondità agisce come intensità, e 1 mm lascia invariate le aree bianche."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "La mesh ha geometria non-manifold o bordi aperti. Puoi importarla così com'è o ripararla con il servizio di riparazione 3D di Windows prima dell'importazione."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Nota: la mesh ha geometria non-manifold o bordi aperti."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Problema della mesh"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Riparazione non riuscita: la mesh è ancora aperta dopo il riempimento dei fori."
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Impossibile applicare un'operazione logica a operandi non booleani."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Lettura"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Il numero di filamenti supera il numero massimo supportato dallo strumento di pittura. Solo il primo %1% dei filamenti sarà disponibile nello strumento di pittura."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Tasto di scelta rapida "
+
+#~ msgid "Build Volume"
+#~ msgstr "Volume di stampa"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Gli oggetti (%1%) hanno connettori duplicati. Alcuni connettori potrebbero mancare nel risultato dello slicing.\n"
+#~ "Segnala al team di OrcaSlicer in quale scenario si è verificato questo problema.\n"
+#~ "Grazie."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d triangoli"
+
+#~ msgid " (Moving)"
+#~ msgstr " (In movimento)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Risolto)"
+
+#~ msgid "Filament "
+#~ msgstr "Filamento "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "hotend"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Disposizione "
+
+#~ msgid "Orienting"
+#~ msgstr "Orientamento"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Porta gli assi al punto di origine (clicca "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") per individuare la posizione del gruppo testina. In questo modo si evita che il dispositivo si sposti oltre il limite stampabile, causando l'usura dell'apparecchiatura."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Aumento di %1%g di filamento e %2% cambi rispetto al raggruppamento ottimale."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Aumento di %1%g di filamento e risparmio di %2% cambi rispetto al raggruppamento ottimale."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Risparmio di %1%g di filamento e aumento di %2% cambi rispetto al raggruppamento ottimale."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Risparmio di %1%g di filamento e %2% cambi rispetto a una stampante con un ugello."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Risparmio di %1%g di filamento e aumento di %2% cambi rispetto a una stampante con un ugello."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Aumento di %1%g di filamento e risparmio di %2% cambi rispetto a una stampante con un ugello."
+
+#~ msgid "number keys"
+#~ msgstr "tasti numerici"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "I filamenti %s sono posizionati nel %s, ma il percorso G-code generato supera l'area stampabile del %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "I filamenti %s sono posizionati nel %s, ma il percorso G-code generato supera l'altezza stampabile del %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "I filamenti %s non possono essere stampati direttamente sulla superficie di questa piastra."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "verrà chiuso prima di creare un nuovo modello. Vuoi continuare?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "Ci sono %s attività davanti nella coda di elaborazione del cloud."
+
+#~ msgid " upload failed"
+#~ msgstr " Caricamento non riuscito"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " Caricamento della configurazione non riuscita\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Nessun secchio di stoccaggio corrispondente\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " non può essere aperto\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Il risultato del tuo commento non può essere caricato per i seguenti motivi:\n"
+#~ "\n"
+#~ " Codice di errore: "
+
+#~ msgid "error message: "
+#~ msgstr "messaggio d'errore: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Vuoi essere reindirizzato alla pagina web per la valutazione?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (profilo di processo: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "L'ugello %s non può stampare %s."
+
+#~ msgid " nozzle"
+#~ msgstr " ugello"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Non è consigliato stampare i seguenti filamenti con %1%: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " piatto %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Rimuovere tutti i %1% filamenti misti?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Vuoi sostituirlo"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Conflitto di temperatura del piatto: T%d (%s) imposta il piatto a %d°C, ma T%d (%s) richiede %d°C. La testina principale controlla il piatto; le testine secondarie stampano alla temperatura che essa imposta."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Nessun valore di accelerazione fornito per la calibrazione. Verrà utilizzato il valore di accelerazione predefinito "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Nessun valore di velocità fornito per la calibrazione. Verrà utilizzato il valore di velocità ottimale predefinito "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Nessuna torre di temperatura per nastro disponibile per l'intervallo da %1% a %2% °C. Usa un intervallo coperto dai modelli della torre, ad esempio da 230 a 190."
+
+#~ msgid "The selected file"
+#~ msgstr "Il file selezionato"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "non contiene un G-code valido."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "con OrcaSlicer in modo che possa aprire i modelli da"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Costa %dg di filamento e %d cambi in più rispetto al raggruppamento ottimale."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "I parametri con questa icona possono essere configurati per ogni ugello."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Parole chiave riservate trovate"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d Profilo Filamento e %d Profilo Processo sono collegati a questa stampante. Questi profili verranno eliminati se la stampante viene eliminata."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Il seguente profilo eredita questo profilo."
+#~ msgstr[1] "I seguentii profili ereditano questi profili."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% Profilo"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Sei sicuro di voler %1% il preset selezionato?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Dividere in %1% parti"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Download dei nuovi profili produttore: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Download dei profili produttore non riuscito: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "In questa modalità Span i colori vengono stampati solo da %1%, ma il filamento %2% non è instradato verso alcuna testina. Usa filamenti instradati verso %1%, oppure passa questo piatto alla modalità Principale (Primary)."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "In questa modalità Span i colori vengono stampati solo da %1%, ma il filamento %2% è instradato verso T%3%. Usa filamenti instradati verso %1%, oppure passa questo piatto alla modalità Principale (Primary)."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " è troppo vicino all'area di esclusione e potrebbero verificarsi collisioni durante la stampa."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " è troppo vicino all'area di rilevamento ammassi, potrebbero verificarsi collisioni durante la stampa."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Torre di spurgo"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " è troppo vicino agli altri e possono verificarsi collisioni.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " è troppo vicino all'area di esclusione e si verificheranno collisioni.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " è troppo vicino all'area di rilevamento ammassi e verranno causate collisioni.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " è parzialmente fuori dall'area stampabile e non può essere stampato.\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "nessuna testina configurata"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "G-code finale quando si termina la stampa."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Velocità massima X"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Velocità massima Y"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Velocità massima Z"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Velocità massima E"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Plugin Python richiamati a ogni fase della pipeline di slicing per leggere e modificare i dati di slicing intermedi, incluso un passaggio finale di post-elaborazione del G-code. Ricerca/sperimentale."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Se abilitata, lo slicer genera G-code con il contenuto della zona principale centrato sull'origine del piatto (0,0). Il firmware della stampante si occupa di posizionare le copie e le immagini speculari nella posizione fisica di ciascuna zona. Abilita solo su stampanti il cui firmware applica i propri offset di zona in modalità Copia/Specchio (ad es. la modalità di duplicazione IDEX di RepRapFirmware). Non ha effetto in modalità Principale (Primary)."
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Associazione per piatto, che sostituisce quella predefinita, tra testine fisiche e slot filamento (numerati da 1). Vuota significa usare i valori predefiniti dell'inversione pem."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Asse attorno al quale la mesh viene ruotata prima dell'elaborazione. È l'inclinazione della stampante a nastro: una rotazione isometrica (senza distorsione) che determina anche la visualizzazione del piatto e l'inclinazione della gravità per i supporti, e che la trasformazione inversa del G-code annulla prima di taglio/scala e rimappatura nel sistema di riferimento macchina. X è l'inclinazione tipica del portale (il nastro scorre lungo Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Opzione per esperti: imposta l'angolo di inclinazione del sistema di riferimento macchina (taglio/scala del G-code) indipendentemente dall'angolo di rotazione pre-elaborazione. Se disabilitata, la trasformazione del sistema di riferimento macchina deriva dall'angolo di inclinazione del nastro, quindi un unico angolo governa entrambe le fasi. Abilita solo per compensare una macchina la cui inclinazione fisica del portale differisce dalla rotazione di elaborazione."
+
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "Deviazione massima consentita quando si riduce la risoluzione tramite l'impostazione \"Risoluzione massima parete\". Se si aumenta questo valore, la stampa sarà meno precisa, ma il G-Code sarà più contenuto. \"Deviazione massima parete\" limita \"Risoluzione massima parete\", quindi in caso di conflitto tra i due valori, \"Deviazione massima parete\" ha la precedenza."
+
+#~ msgid " not in range "
+#~ msgstr " fuori portata "
+
+#~ msgid "floating regions"
+#~ msgstr "regioni fluttuanti"
+
+#~ msgid "floating cantilever"
+#~ msgstr "sbalzo fluttuante"
+
+#~ msgid "large overhangs"
+#~ msgstr "sporgenze ampie"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Sembra che l'oggetto %s ha %s. Orienta nuovamente l'oggetto o abilita la generazione dei supporti."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Non sono stati rilevati strati. Ripara il file STL o controlla le dimensioni o lo spessore e riprova.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Questo tipo di macchina può contenere solo %d risultati per ogni ugello. Questo risultato non verrà salvato."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Questo tipo di macchina può contenere solo %d risultati per ogni ugello."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Sporgenze"
+
+#~ msgid "Start / End"
+#~ msgstr "Inizio / Fine"
+
+#~ msgid "Damp"
+#~ msgstr "Smorzamento"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "Rilevati %d slot IFS sulla stampante."
+
+#~ msgid "selected"
+#~ msgstr "selezionato"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Il seguente profilo eredita questo profilo."
+#~ msgstr[1] "I seguenti profili ereditano questo profilo."
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "Trovate %zu stampanti Creality. Selezionane una e fai clic su Usa selezionata."
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "log"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Errore: l'estrusore %s non ha alcun ugello %s disponibile, il risultato del raggruppamento attuale non è valido."
+
+# AI Translated
+#~ msgid "invalid brim ears"
+#~ msgstr "tese ad orecchio non valide"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Salto di %d oggetti."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Apri cartella nel gestore file"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Clicca il centro, poi un vertice — %d lati, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "circoscritto"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "inscritto"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Schizzo creato (%zu quote guida) — selezionalo, poi clic destro per estruderlo"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — %zu triangoli"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Questa mesh ha %d triangoli. Ogni triangolo diventa una faccia B-rep prima dell'unione delle facce complanari, quindi l'importazione potrebbe richiedere molto tempo e produrre un corpo lento da modificare. Di solito è meglio decimare prima la mesh.\n"
+#~ "\n"
+#~ "Importare comunque?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Solido importato — %d triangoli → %d facce, volume %.2f mm³. Scegli una faccia o uno spigolo, poi Raccordo / Taglia / Svuotamento per modificarlo"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — trascina per posizionare/ridimensionare, poi Conferma"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d entità di schizzo"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — digita un valore, premi Invio (o Conferma)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Anteprima — %zu triangoli"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "Vincoli ignorati perché non possono agire su questa geometria (un'ellisse o una curva spline, o un cerchio di dimensione nulla): %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "Vincoli invalidati dal raccordo/smusso e rimossi: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "Vincoli sciolti dalla trasformazione: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...e altre %1% estremità aperte"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "L'elenco materiali supporta al massimo %1% colori. Dopo la scomposizione di %2%, il numero di materiali supererebbe %1%. Elimina i filamenti non usati nella schermata principale prima della scomposizione."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% colori stampabili da %2% filamenti"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% isole"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Tutti i %1% livelli usati"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Anteprima: %1% triangoli"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Modello: %1% triangoli - l'integrazione affina fino alla risoluzione indicata sopra, entro il suo budget"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Integra sposta i vertici esistenti - il modello resta a %1% triangoli"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Risultato dell'integrazione fino a ~%1% k triangoli"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% livelli non dipinti, saltati"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Il progetto supporta fino a %d filamenti. I filamenti in eccesso verranno scartati."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d vertici selezionati | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d spigoli selezionati | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d isole selezionate | trascina = sposta insieme, clic con Maiusc/Ctrl = aggiungi/rimuovi, R/S = ruota/scala la principale"
+
+# AI Translated
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Dimensione tessera del livello attivo: quanta parte del modello copre una ripetizione della trama. L'area di lavoro è misurata in tessere, quindi una cella della griglia corrisponde a una ripetizione. Modificala con Tassellatura nelle impostazioni del livello."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d isole, %s facce"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Il plugin \"%s\" richiede di leggere i seguenti file:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Il plugin \"%s\" richiede di leggere/scrivere i seguenti file:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Il plugin \"%s\" richiede di creare i seguenti file:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Il plugin \"%s\" richiede di eliminare i seguenti file:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Il plugin \"%s\" richiede di eseguire i seguenti comandi:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Installazione del plugin non riuscita"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Impossibile installare il Microsoft WebView2 Runtime.\n"
+#~ "Alcune funzionalità, inclusa la configurazione guidata, potrebbero apparire vuote finché non viene installato.\n"
+#~ "Installalo manualmente da https://developer.microsoft.com/microsoft-edge/webview2/ e riavvia Orca Slicer."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Perché questo raggruppamento"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "Il software non supporta l'uso di ugelli con diametri diversi per una singola stampa. Se gli ugelli sinistro e destro sono diversi, è possibile procedere solo con la stampa a testa singola. Confermare quale ugello si desidera utilizzare per questo progetto."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Cambia diametro"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "Progetto BambuStudio"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "Il file 3MF è stato creato da BambuStudio (versione %s), che è più recente della versione compatibile %s. Sono state trovate impostazioni non riconosciute:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "Il file 3MF è stato creato da BambuStudio (versione %s), che è più recente della versione compatibile %s. Alcune impostazioni potrebbero non essere pienamente compatibili."
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "Il file 3MF è stato generato da una vecchia versione di OrcaSlicer. Saranno caricati solo i dati geometrici."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Impossibile annullare o ripetere mentre è in corso un'operazione. Interrompila prima."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Centra il riempimento interno di ogni parte su se stessa, come se fosse elaborata singolarmente, invece che sull'intero assieme. Le parti che si toccano o si sovrappongono vengono trattate come un unico corpo e condividono un centro; le parti separate (o oggetti 3D distinti) ne ottengono ciascuna uno proprio.\n"
+#~ "Utile quando un assieme raggruppa più oggetti che dovrebbero mantenere ciascuno un riempimento coerente e centrato su se stesso.\n"
+#~ "Influisce sui motivi a linee e a griglia e sui riempimenti a schema ruotato.\n"
+#~ "I motivi vincolati alle coordinate globali (Giroide, Nido d'ape, TPMS, ...) non ne sono influenzati."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Indice dello strato attuale. Basato su uno (cioè il primo livello è il numero 1)."
+
+# AI Translated
+#~ msgid "Video tutorial"
+#~ msgstr "Video tutorial"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Primitiva"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Generata una mesh vuota"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Parallelepipedo"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Rapido:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Larghezza (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Profondità (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Altezza (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "R inferiore"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "R superiore"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "R maggiore"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "R minore"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Tutti gli spigoli"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Spigoli superiori"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Spigoli inferiori"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Spigoli laterali"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Risoluzione mesh"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Aggiungi forma"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Nessun profilo esterno"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Impossibile creare la faccia esterna"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Impossibile creare la faccia con i fori"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Rivoluzione non riuscita"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Profilo"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Inizia un nuovo profilo (per i fori)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segmenti"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Lati"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Clicca nell'area di disegno per disegnare"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Aggancia alla griglia"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Passo griglia"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Esterno"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "chiuso"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% punti %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (Superiore)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (Frontale)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (Laterale)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Gradi rivoluzione"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "Imposta 0 per estrudere, >0 per rivoluzionare"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Tasca (taglio)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu profilo chiuso"
+#~ msgstr[1] "%zu profili chiusi"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Disegna un profilo chiuso per abilitare"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Risultato vuoto"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Estrusione: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Rivoluzione: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Nessun oggetto selezionato"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Creazione della faccia non riuscita"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Creazione della faccia con fori non riuscita"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Mesh dell'utensile vuota"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Tasca aggiunta (volume negativo)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Tasca: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Richiede che il livello attivo sia mappato con Sviluppo UV (LSCM)."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Scacchiera - una griglia di prova al posto della trama. Dove i quadrati restano quadrati la trama non è distorta; dove si allungano, si allungherà anche la trama"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Distorsione - mappa di calore dell'allungamento, dal blu al rosso, sullo sviluppo UV"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Mescola per"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Superficie"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Strati: i due filamenti si alternano tra gli strati di stampa, il che dà una sfumatura uniforme sulle superfici verticali ma scompare su quelle orizzontali, dove un intero strato è un'unica fascia.\n"
+#~ "Superficie: una scacchiera fine sulla superficie, che funziona con qualsiasi angolazione ma può apparire come una trama anziché come una sfumatura.\n"
+#~ "Automatico: strati sulle facce verticali; le facce orizzontali prendono il singolo filamento più vicino, perché lì una scacchiera appare come un motivo."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Isola - sposta, ruota e scala intere isole"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Vertice - trascina i vertici per modificare la forma; Maiusc/Ctrl per la selezione multipla"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Spigolo - trascina gli spigoli per modificare la forma; Maiusc/Ctrl per la selezione multipla"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Inquadra tutte le isole (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Sperimentale) Usa gli agenti stampante invece degli host di stampa"
@@ -31177,16 +37322,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Clicca una faccia o un piano di riferimento, poi scegli uno strumento di disegno"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -31243,10 +37378,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Distanza verticale"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Lineare"
-
#~ msgid "Face recognition"
#~ msgstr "Riconoscimento faccia"
@@ -32664,9 +38795,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Impossibile calcolare la larghezza della linea di %1%. Impossibile ottenere il valore \"%2%\" "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Spaziatura non valida fornita a Flow::with_spacing(), controlla l'altezza dello strato e la larghezza di estrusione"
-
#~ msgid "Continue to sync filaments"
#~ msgstr "Continua la sincronizzazione dei filamenti"
@@ -32833,9 +38961,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "selezione parte"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid "This disables all cloud services e.g. Orca Cloud and Bambu Cloud. This stops the transmission of data to Bambu's cloud services too. Users who don't use BBL machines or use LAN mode only can safely turn on this function."
#~ msgstr "Questa opzione disabilita tutti i servizi cloud, ad esempio Orca Cloud e Bambu Cloud. Interrompe anche la trasmissione dei dati ai servizi cloud di Bambu. Gli utenti che non utilizzano macchine BBL o che utilizzano solo la modalità LAN, possono attivare questa opzione in tutta sicurezza."
diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po
index 923b7122f4..6a7d913431 100644
--- a/localization/i18n/ja/OrcaSlicer_ja.po
+++ b/localization/i18n/ja/OrcaSlicer_ja.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -391,8 +391,10 @@ msgid "Please wait"
msgstr "お待ちください"
# AI Translated
-msgid "Reading"
-msgstr "読み込み中"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "誘導式ホットエンドラック: 読み取り中 %d/%d"
msgid "Running..."
msgstr "実行中..."
@@ -547,9 +549,11 @@ msgstr "ギズモ-面に配置"
msgid "Lay on Face"
msgstr "底面選択"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "使用するフィラメント数は多いです。最初%1%個のフィラメントを使用できます"
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "フィラメント数がペイントツールの対応上限を超えています。ペイントツールで使用できるのは最初の%1%個のフィラメントのみです。"
msgid "Color Painting"
msgstr "色塗り"
@@ -601,8 +605,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "ショートカット"
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "ショートカットキー %d"
msgid "Triangle"
msgstr "三角形"
@@ -701,6 +707,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "パーツ選択"
+msgid "Select multiple objects"
+msgstr "複数のオブジェクトを選択"
+
msgid "Fixed step drag"
msgstr "固定ステップドラッグ"
@@ -765,10 +774,79 @@ msgstr "パーツ"
msgid "Relative"
msgstr "相対"
+msgid "Selection"
+msgstr "選択"
+
+msgid "Plate"
+msgstr "プレート"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "変換操作に使用する座標系です。"
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "左端揃え"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "左右中央揃え"
+
+# AI Translated
+msgid "Align right"
+msgstr "右端揃え"
+
+# AI Translated
+msgid "Align front"
+msgstr "前端揃え"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "前後中央揃え"
+
+# AI Translated
+msgid "Align back"
+msgstr "後端揃え"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "下端揃え"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "上下中央揃え"
+
+# AI Translated
+msgid "Align top"
+msgstr "上端揃え"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "左右に均等配置"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "前後に均等配置"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "上下に均等配置"
+
+msgid "Drop"
+msgstr "ドロップ"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "絶対"
@@ -871,9 +949,6 @@ msgstr "溝角度"
msgid "Cut position"
msgstr "カットポジション"
-msgid "Build Volume"
-msgstr "ビルドボリューム"
-
msgid "Multiple"
msgstr "複数"
@@ -1049,10 +1124,14 @@ msgstr "コネクタ"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
"オブジェクト(%1%)にコネクターの重複があります。スライス結果で一部のコネクターが欠落する可能性があります。\n"
"この問題が発生した状況をOrcaSlicerチームにご報告ください。\n"
"ご協力ありがとうございます。"
@@ -1121,9 +1200,11 @@ msgstr "低い"
msgid "Extra low"
msgstr "超低い"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d 個の三角形"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% 個の三角形"
msgid "Show wireframe"
msgstr "ワイヤフレームを表示"
@@ -1134,6 +1215,17 @@ msgstr "プレビュー処理中は適用できません"
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "操作を取り消し中、少々お待ちください。"
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "モデルの簡略化がキャンセルされました"
+
+msgid "Wiki Guide"
+msgstr "Wikiガイド"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "ビデオガイド"
+
msgid "Enforce seam"
msgstr "強制継ぎ目"
@@ -1185,6 +1277,14 @@ msgstr "表面に配置"
msgid "Emboss"
msgstr "エンボス"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "スタイルに有効なフォントがありません。正しいフォントを選択してください。"
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFontを正しく読み込めませんでした。"
+
msgid "NORMAL"
msgstr "ノーマル"
@@ -1837,11 +1937,25 @@ msgstr "直径"
msgid "Length"
msgstr "長さ"
-msgid "Selection"
-msgstr "選択"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "面 1 (固定)"
-msgid " (Moving)"
-msgstr " (移動中)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "面 2 (可動)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "点 1 (固定)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "点 2 (可動)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "選択 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1855,14 +1969,9 @@ msgstr ""
"オブジェクト上の2点または円を選択し、\n"
"その間の距離を特定する。"
-msgid "Face"
-msgstr "面"
-
-msgid " (Fixed)"
-msgstr "(固定)"
-
-msgid "Point"
-msgstr "点"
+# AI Translated
+msgid "Selection 2"
+msgstr "選択 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1965,6 +2074,18 @@ msgstr "組み立てギズモを開始"
msgid "Leaving Assembly gizmo"
msgstr "組み立てギズモを終了"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2142,14 +2263,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Microsoft WebView2 Runtimeをインストールできませんでした。\n"
"インストールされるまで、セットアップウィザードを含む一部の機能が空白で表示される場合があります。\n"
-"https://developer.microsoft.com/microsoft-edge/webview2/ から手動でインストールし、Orca Slicerを再起動してください。"
+"%1% から手動でインストールし、Orca Slicerを再起動してください。"
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2392,6 +2514,66 @@ msgstr "ネットワークプラグイン制限"
msgid "Privacy Policy Update"
msgstr "プライバシーポリシーの更新"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "すべてのフィラメントプリセットは、対象のプリンターで利用できます。"
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "フィラメントプリセットを移行"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 では、誤ったプロファイルの修正と今後の機能への備えのため、多くのシステムフィラメントプリセットを再構成しました。その結果、以下のプリセットが、作成元のプリンターの一部で表示されなくなっています。ご不便をおかけして申し訳ありません。これは1回限りの修正です。\n"
+"\n"
+"これらのプリンターをプリセットに今すぐ再度追加しますか?プリセットは事前にバックアップされます。後から ヘルプ > フィラメントプリセットを移行 で実行することもできます。"
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (%2%ベース)"
+
+msgid "Don't remind me again"
+msgstr "再度通知しない"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "プリセットをバックアップできなかったため、移行しませんでした。"
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "ユーザープリセットフォルダーをロックできなかったため、何も移行されませんでした。別のOrcaSlicerのインスタンスがプリセットを保存している可能性があります。しばらくしてから、ヘルプ > フィラメントプリセットを移行 からもう一度お試しください。"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"フィラメントプリセットを移行できませんでした。プリセットのバックアップを次の場所に保存しました:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"フィラメントプリセットを移行しました。使用していたフィラメントリストで、もう一度選択してください。\n"
+"\n"
+"プリセットのバックアップを次の場所に保存しました:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "次のプリセットは移行できませんでした:"
+
# AI Translated
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
@@ -2523,6 +2705,9 @@ msgstr "プラグインを更新しました。"
msgid "Failed to refresh plugins: %s"
msgstr "プラグインの更新に失敗しました: %s"
+msgid "Unknown error"
+msgstr "不明なエラー"
+
# AI Translated
msgid "Select plugin package"
msgstr "プラグインパッケージを選択"
@@ -3058,6 +3243,22 @@ msgstr "全て再読み込み"
msgid "Reload all from disk"
msgstr "全てディスクから再読み込み"
+# AI Translated
+msgid "Fix All"
+msgstr "すべて修復"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "現在のプレート上のすべてのモデルを修復"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "全プレートを修復"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "すべてのプレート上のすべてのモデルを修復"
+
msgid "Auto Rotate"
msgstr "自動回転"
@@ -3109,8 +3310,13 @@ msgstr "(色が失われました)"
msgid "Center"
msgstr "センター"
-msgid "Drop"
-msgstr "ドロップ"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "整列/均等配置"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "オブジェクトの整列と均等配置"
msgid "Edit Process Settings"
msgstr "プロセス設定を編集"
@@ -3403,6 +3609,12 @@ msgid "Failed to repair the following model object"
msgid_plural "Failed to repair the following model objects"
msgstr[0] "以下のオブジェクトを修復てきませんでした"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d個のモデルオブジェクトは修復の必要がありませんでした。"
+
msgid "Repairing was canceled"
msgstr "修復は取消しました"
@@ -3475,9 +3687,6 @@ msgstr "ブリム無し"
msgid "Outer wall speed"
msgstr "外壁造形速度"
-msgid "Plate"
-msgstr "プレート"
-
msgid "Brim"
msgstr "ブリム"
@@ -3562,9 +3771,6 @@ msgstr "カスタムテンプレートを追加"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "このレイヤーの先頭にテンプレートのカスタムG-codeを挿入します。"
-msgid "Filament "
-msgstr "フィラメント"
-
msgid "Change filament at the beginning of this layer."
msgstr "このレイヤーの先頭でフィラメントを交換"
@@ -3654,6 +3860,8 @@ msgstr "変更する"
msgid "Off"
msgstr "オフ"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "フィルター"
@@ -3768,12 +3976,19 @@ msgid "Check filament location"
msgstr "フィラメント位置を確認"
# AI Translated
-msgid "Switch"
-msgstr "切替"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "一時停止"
# AI Translated
-msgid "hotend"
-msgstr "ホットエンド"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "押出機を切り替え"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "ホットエンドを切り替え"
# AI Translated
msgid "Wait for AMS cooling"
@@ -3950,8 +4165,10 @@ msgid "Arranging"
msgstr "レイアウト中"
# AI Translated
-msgid "Arranging "
-msgstr "レイアウト中 "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "%1%をレイアウト中"
msgid "Arranging canceled."
msgstr "レイアウトを取り消しました"
@@ -3988,8 +4205,11 @@ msgstr ""
msgid "Orienting..."
msgstr "向き調整中"
-msgid "Orienting"
-msgstr "向き調整中"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "%1%の向きを調整中"
msgid "Orienting canceled."
msgstr "向き最適化がキャンセルされました。"
@@ -3997,6 +4217,12 @@ msgstr "向き最適化がキャンセルされました。"
msgid "Filling"
msgstr "充填中"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "%1%を充填中"
+
msgid "Bed filling canceled."
msgstr "ベッド充填がキャンセルされました。"
@@ -4012,6 +4238,34 @@ msgstr "オリエンテーション検索がキャンセルされました。"
msgid "Orientation found."
msgstr "オリエンテーションが見つかりました。"
+# AI Translated
+msgid "Best surface quality"
+msgstr "最良の表面品質"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "最良の表面品質が得られるようにオブジェクトの回転を最適化します。"
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "オーバーハングの傾斜を軽減"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"サポート構造が必要なオーバーハングの量が最小になるようにオブジェクトの回転を最適化します。\n"
+"なお、持ち上げ高さが設定されていない場合、この方法はベッドに接地させるオブジェクトの最適な面を探します。"
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "最小Z高さ"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Z高さが最も低くなるようにモデルを回転させ、印刷時間を短縮します。"
+
msgid "Logging in"
msgstr "サインイン中"
@@ -4304,6 +4558,17 @@ msgstr "最近のプロジェクト"
msgid "Go to Plate"
msgstr "プレートへ移動"
+msgid "Device"
+msgstr "デバイス"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "デバイス (Web)"
+
+# AI Translated
+msgid "Multi-device"
+msgstr "マルチデバイス"
+
msgid "AMS Materials Setting"
msgstr "AMS素材設定"
@@ -4328,9 +4593,6 @@ msgstr "入力値範囲は %1% ~ %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "フローダイナミクスキャリブレーションの係数"
-msgid "Wiki Guide"
-msgstr "Wikiガイド"
-
msgid "PA Profile"
msgstr "PAプロファイル"
@@ -4360,6 +4622,14 @@ msgstr "有効な値を入力してください(Kは%.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "有効な値を入力してください(Kは%.1f~%.1f、Nは%.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "お気に入りのフィラメント"
+
+# AI Translated
+msgid "All filaments"
+msgstr "すべてのフィラメント"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4420,7 +4690,7 @@ msgstr "保存"
msgctxt "Navigation"
msgid "Back"
-msgstr "背面"
+msgstr "戻る"
msgid "Example"
msgstr "例"
@@ -4678,11 +4948,11 @@ msgstr "ネットワークプラグインはインストールされましたが
msgid "Restart Required"
msgstr "再起動が必要"
-msgid "Please home all axes (click "
-msgstr "すべての軸を原点復帰してください("
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ")。造形可能領域外へ移動してしまうことを防ぎます。"
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "全軸を原点帰還 (%1%をクリック) して、ツールヘッドの位置を特定してください。装置が造形可能領域外へ移動して機器が摩耗するのを防ぎます。"
msgid "Go Home"
msgstr "原点帰還"
@@ -4697,6 +4967,10 @@ msgstr "致命的なエラーが発生しました: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "プロジェクトを保存して、アプリケーションを再起動してください。"
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "不明なC++例外です。"
+
# AI Translated
msgid "Processing G-Code from previous file…"
msgstr "前のファイルのG-codeを処理中…"
@@ -4930,6 +5204,14 @@ msgstr "自動的に制限値 (%g mm) に調整しますか?"
msgid "Adjust"
msgstr "調整"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"ベルトプリンターではラフトと保護シールドを使用できません。\n"
+"これらは無効になりました。"
+
# AI Translated
msgid ""
"Layer height too small\n"
@@ -5128,8 +5410,9 @@ msgstr "一時停止(フロントカバー脱落)"
msgid "Calibrating the micro lidar"
msgstr "ライダー キャリブレーション"
+# AI Translated
msgid "Calibrating flow ratio"
-msgstr "フロー率のキャリブレーション中"
+msgstr "流量比のキャリブレーション中"
msgid "Pause (nozzle temperature malfunction)"
msgstr "一時停止(ノズル温度異常)"
@@ -5772,9 +6055,6 @@ msgstr "最適なフィラメントグルーピングに従って自動的に再
msgid "Filament Grouping"
msgstr "フィラメントグルーピング"
-msgid "Why this grouping"
-msgstr "なぜこのグルーピングか"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "グルーピング結果に基づいてプリンターにフィラメントを配置してください。"
@@ -5784,29 +6064,41 @@ msgstr "ヒント"
msgid "Current grouping of slice result is not optimal."
msgstr "現在のスライス結果のグルーピングは最適ではありません。"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "最適なグルーピングと比較して%1%gのフィラメントと%2%回の変更が増加します。"
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "最適なグルーピングと比較して%1%gのフィラメントと%2%回の変更が増加します。"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "最適なグルーピングと比較して%1%gのフィラメントが増加し、%2%回の変更が節約されます。"
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "最適なグルーピングと比較して%1%gのフィラメントが増加し、%2%回の変更が節約されます。"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "最適なグルーピングと比較して%1%gのフィラメントが節約され、%2%回の変更が増加します。"
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "最適なグルーピングと比較して%1%gのフィラメントが節約され、%2%回の変更が増加します。"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "シングルノズルプリンターと比較して%1%gのフィラメントと%2%回の変更が節約されます。"
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "シングルノズルプリンターと比較して%1%gのフィラメントと%2%回の変更が節約されます。"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "シングルノズルプリンターと比較して%1%gのフィラメントが節約され、%2%回の変更が増加します。"
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "シングルノズルプリンターと比較して%1%gのフィラメントが節約され、%2%回の変更が増加します。"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "シングルノズルプリンターと比較して%1%gのフィラメントが増加し、%2%回の変更が節約されます。"
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "シングルノズルプリンターと比較して%1%gのフィラメントが増加し、%2%回の変更が節約されます。"
msgid "Set to Optimal"
msgstr "最適に設定"
@@ -5964,12 +6256,61 @@ msgstr "編集領域を拡大/縮小"
msgid "Sequence"
msgstr "順番"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "プレートの重心"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "パーツの重心"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "サポートの重心"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "アセンブリの重心"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "オブジェクトの重心"
+
+# AI Translated
+msgid "Finished print"
+msgstr "印刷完了時"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "%1% 層目まで印刷"
+
+# AI Translated
+msgid "Weight"
+msgstr "重量"
+
+msgid "Volume"
+msgstr "体積"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "バウンディングボックス内の重心位置"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "バウンディングボックスのサイズ"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "慣性モーメント"
+
# AI Translated
msgid "Object selection"
msgstr "オブジェクトの選択"
-msgid "number keys"
-msgstr "数字キー"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "数字キー 1~16"
msgid "Number keys can quickly change the color of objects"
msgstr "数字キーでオブジェクトの色を素早く変更できます"
@@ -6179,9 +6520,20 @@ msgstr "軸"
msgid "Gridlines"
msgstr "グリッドライン"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "ラベル"
+# AI Translated
+msgid "Center of mass"
+msgstr "重心"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "生のG-codeを表示 (ベルトプリンターのみ)"
+
# AI Translated
msgid "Move section plane"
msgstr "断面平面を移動"
@@ -6230,7 +6582,7 @@ msgstr "ボリューム"
msgid "Size:"
msgstr "サイズ:"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "レイヤー%d、Z = %.2lfmmでG-codeパスの衝突が検出されました。衝突するオブジェクトをもっと離してください(%s <-> %s)。"
@@ -6250,21 +6602,17 @@ msgstr "2つ以上のTPUフィラメントの印刷はサポートされてい
msgid "Tool %d"
msgstr "ツール%d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "フィラメント%sは%sに配置されていますが、生成されたG-codeパスが%sの印刷可能範囲を超えています。"
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "フィラメント%sは%sに配置されていますが、生成されたG-codeパスが%sの印刷可能範囲を超えています。"
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "フィラメント%sは%sに配置されていますが、生成されたG-codeパスが%sの印刷可能範囲を超えています。"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "フィラメント%sは%sに配置されていますが、生成されたG-codeパスが%sの印刷可能高さを超えています。"
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "フィラメント%sは%sに配置されていますが、生成されたG-codeパスが%sの印刷可能高さを超えています。"
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "フィラメント%sは%sに配置されていますが、生成されたG-codeパスが%sの印刷可能高さを超えています。"
msgid "Open wiki for more information."
msgstr "詳細はWikiを参照してください。"
@@ -6272,9 +6620,11 @@ msgstr "詳細はWikiを参照してください。"
msgid "Only the object being edited is visible."
msgstr "編集中のオブジェクトのみ表示されます"
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "フィラメント%sはこのプレートの表面に直接印刷できません。"
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "フィラメント%sはこのプレートの表面に直接印刷できません。"
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "PLAとPETGフィラメントの混合が検出されました。印刷品質を確保するためにWikiに従ってパラメータを調整してください。"
@@ -6391,28 +6741,20 @@ msgstr "準備"
msgid "Preview"
msgstr "プレビュー"
-msgid "Device"
-msgstr "デバイス"
-
-# AI Translated
-msgid "Multi-device"
-msgstr "マルチデバイス"
-
msgid "Project"
msgstr "プロジェクト"
-# AI Translated
-msgid "Device (Web)"
-msgstr "デバイス (Web)"
-
msgid "Yes"
msgstr "はい"
msgid "No"
msgstr "いいえ"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "新しいモデルを作成する前に閉じられます。続行しますか?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "新しいモデルを作成する前に%sを閉じます。続行しますか?"
msgid "Print all"
msgstr "造形開始 (全プレート)"
@@ -6457,6 +6799,10 @@ msgstr "セットアップ ウィザード"
msgid "Show Configuration Folder"
msgstr "構成フォルダを表示"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "プロファイルの更新により作成元のプリンターから外れたフィラメントプリセットを元に戻します"
+
# AI Translated
msgid "Troubleshoot Center"
msgstr "トラブルシューティングセンター"
@@ -6696,6 +7042,14 @@ msgstr "グリッドラインを表示"
msgid "Show Gridlines on plate"
msgstr "プレート上にグリッドラインを表示"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "IDEX/IQEXツールヘッドを表示"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "G-codeプレビューで、有効な各ノズルの周囲にIDEX/IQEXツールヘッドを表示します。"
+
msgid "Reset Window Layout"
msgstr "ウィンドウレイアウトをリセット"
@@ -7330,6 +7684,8 @@ msgstr "評価"
msgid "Calculating..."
msgstr "計算中..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "カメラ"
@@ -7410,9 +7766,11 @@ msgstr "ダウンロード中"
msgid "Cloud Slicing..."
msgstr "クラウドにてスライス中"
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "クラウドスライスキューには%sタスクが先にあります。"
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "クラウドスライスキューには先に%d件のタスクがあります。"
#, c-format, boost-format
msgid "Layer: %s"
@@ -7444,6 +7802,11 @@ msgstr "造形時の設定"
msgid "Silent"
msgstr "サイレント"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "標準"
+
msgid "Sport"
msgstr "スポーツ"
@@ -7500,17 +7863,29 @@ msgstr "画像をアップロード"
msgid "Number of images successfully uploaded"
msgstr "アップロードに成功した画像の数"
-msgid " upload failed"
-msgstr " アップロード失敗"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "%sのアップロードに失敗しました"
-msgid " upload config prase failed\n"
-msgstr " アップロード設定の解析に失敗しました\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "%sのアップロード設定の解析に失敗しました"
-msgid " No corresponding storage bucket\n"
-msgstr " 対応するストレージバケットがありません\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: 対応するストレージバケットがありません"
-msgid " cannot be opened\n"
-msgstr " を開くことができません\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%sを開くことができません"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7528,26 +7903,22 @@ msgstr "アップロード失敗\n"
msgid "Obtaining instance_id failed\n"
msgstr "instance_idの取得に失敗しました\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"以下の理由でコメントの結果をアップロードできません:\n"
-"\n"
-" エラーコード: "
-
-msgid "error message: "
-msgstr "エラーメッセージ: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"コメントの結果を次の理由でアップロードできません:\n"
"\n"
+" エラーコード: %d\n"
+" エラーメッセージ: %s\n"
"\n"
-"ウェブページにリダイレクトして評価しますか?"
+"評価を行うためにWebページへ移動しますか?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "一部の画像のアップロードに失敗しました。ウェブページにリダイレクトして評価しますか?"
@@ -8389,6 +8760,108 @@ msgstr "全てのオブジェクトの設定"
msgid "Material settings"
msgstr "材料設定"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "各モードでは、参加するツールヘッドとそれぞれの役割を指定します。ツールボタンをクリックすると役割が切り替わります。下の色にカーソルを合わせると、各役割の説明が表示されます。"
+
+# AI Translated
+msgid "Add Mode"
+msgstr "モードを追加"
+
+# AI Translated
+msgid "Tools"
+msgstr "ツール"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "プレートのIDEX/IQEXモードセレクターに表示されるモード名です。必須項目で、名前のないモードは選択できません。"
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "このモードに参加するツールヘッドと、それぞれの役割です。タイルをクリックすると役割が切り替わります。"
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "印刷開始時に実行され、プリンターをこのモードに切り替えるG-codeです (例: KlipperのSET_PRINT_MODE呼び出し)。スライサーはプライマリ (Primary) ツールのパスのみを出力し、他のツールはファームウェアが制御します。"
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "非アクティブ"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "プライマリ"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "コピー"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "ミラー"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "スライスされたすべてのパスを実行します。常にツール0です。ベッドのどの隅に配置するかは、上の「ツール0の位置」で選択します。グリッドから移動することはできません。"
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "ファームウェアレベルでプライマリ (Primary) に追従し、同じパスを自身のゾーンへオフセットして印刷します。"
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "ファームウェアレベルでプライマリ (Primary) に追従し、同じパスを2つのゾーンの境界で反転させて印刷します。"
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "プライマリ (Primary) と同じガントリー上のツールを、マルチカラー印刷のパートナーとして指定します。ペアガントリーモードでマルチカラー印刷を行うには必須です。"
+
+# AI Translated
+msgid "Primary"
+msgstr "プライマリ"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "モード名 (必須)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "プレートのIDEX/IQEXモードセレクターに表示される、この並列モードの名前です。プロジェクトには名前で保存されるため、プレートで使用中のモードの名前を変更すると、それらのプレートはプライマリ (Primary) に戻ります。空にはできません。空欄の名前は自動生成された名前に置き換えられます。"
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "このモードを使用する印刷の開始時に、プリンター開始G-codeの前に一度だけ出力されるG-codeです。スライサーはプライマリ (Primary) ツールのパスのみを出力し、コピー (Copy) / ミラー (Mirror) ツールはファームウェアが制御するため、ここでプリンターを対応するファームウェアモードに切り替えます (例: KlipperのSET_PRINT_MODE呼び出しやRepRapFirmwareのM567)。プレースホルダーを使用できます。編集ボタンから一覧を参照できます。ファームウェアの設定が不要なモードでは空欄のままにしてください。"
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "G-codeを編集 / プレースホルダーを参照"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "モードを削除"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "このモードのセッション中の編集を破棄 (保存済みの値に戻す)"
+
msgid "Remove current plate (if not last one)"
msgstr "現在のプレートを削除(最後でない場合)"
@@ -8413,12 +8886,33 @@ msgstr "現在のプレート名を編集"
msgid "Move plate to the front"
msgstr "プレートを前面に移動"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEXモード: %1% (プロセスプリセット: %2%) (左クリックで切り替え、右クリックでメニュー)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEXモード: %1% (左クリックで切り替え、右クリックでメニュー)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "警告: このプレートでは、マルチマテリアルのオブジェクトにIDEX/IQEX並列モードを使用しています。注意して続行し、G-codeがこの組み合わせを正しく処理できることを確認してください。"
+
msgid "Customize current plate"
msgstr "現在のプレートをカスタマイズ"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "%sノズルは%sを印刷できません。"
+msgid "The left nozzle cannot print %s."
+msgstr "左ノズルは%sを印刷できません。"
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "右ノズルは%sを印刷できません。"
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8428,12 +8922,17 @@ msgstr "単一押出機のプリンターで混色フィラメントを印刷す
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "%1%と%2%を混合して印刷することは推奨されません。\n"
-msgid " nozzle"
-msgstr " ノズル"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "%1%で以下のフィラメントを印刷することは推奨されません: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "%1%mm %2%ノズル"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "%1%で以下のフィラメントを印刷することは推奨されません: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "以下のノズルとフィラメントの組み合わせは推奨されません:\n"
@@ -8442,9 +8941,11 @@ msgstr "以下のノズルとフィラメントの組み合わせは推奨され
msgid "%1% with %2%\n"
msgstr "%1%と%2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr "プレート%1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "プレート%1%をスライス中: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "無効な名前です、次の文字を使用できません:"
@@ -8479,12 +8980,6 @@ msgstr "AMS(1スロット)"
msgid "Not installed"
msgstr "未取り付け"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "ソフトウェアは1つの印刷で異なる径のノズルの使用をサポートしていません。左右のノズルが一致しない場合、シングルヘッド印刷のみ可能です。このプロジェクトに使用するノズルを確認してください。"
-
-msgid "Switch diameter"
-msgstr "直径を切り替え"
-
msgid "Configuration incompatible"
msgstr "構成ファイルは互換性がありません"
@@ -8566,6 +9061,10 @@ msgstr "混合フィラメント"
msgid "Remove last mixed filament"
msgstr "最後の混合フィラメントを削除"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "すべての混合フィラメントを削除"
+
# AI Translated
msgid "Add mixed filament"
msgstr "混合フィラメントを追加"
@@ -8588,6 +9087,12 @@ msgstr "混合フィラメントのコンポーネント参照が壊れていま
msgid "Edit / Delete / Merge"
msgstr "編集 / 削除 / 結合"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "%1% 個の混合フィラメントを削除しますか?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "対象の混合フィラメントはこの物理フィラメントをコンポーネントとして使用しています。結合するとこの物理フィラメントは削除され、混合フィラメントが無効になる可能性があります。続行しますか?"
@@ -8662,10 +9167,6 @@ msgstr "ファイルを読込む: %s"
msgid "Load 3MF"
msgstr "3mfを読込み"
-# AI Translated
-msgid "BambuStudio Project"
-msgstr "BambuStudioプロジェクト"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "この3mfファイルと互換性がありません、ジオメトリーデータのみ読込みます。"
@@ -8697,20 +9198,6 @@ msgstr "ソフトウェアをアップデートする必要があります。\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "3mfのバージョン%sは%sの%sより新しい為、ソフトウェアを更新してください。"
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "この3MFはBambuStudio (バージョン%s) で作成されており、互換バージョン%sより新しいものです。認識できない設定が見つかりました:"
-
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "この3MFはBambuStudio (バージョン%s) で作成されており、互換バージョン%sより新しいものです。一部の設定が完全には互換でない可能性があります。"
-
-# AI Translated
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "この3MFはBambuStudioで作成されています。一部の設定がOrcaSlicerと異なる場合があります。"
-
msgid "Invalid values found in the 3MF:"
msgstr "3MFに無効な値が見つかりました:"
@@ -8881,6 +9368,15 @@ msgstr "Z位置を維持するために自動ドロップを無効にします
msgid "Object with floating parts was detected"
msgstr "浮いているパーツを含むオブジェクトが検出されました"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "スライスできません: オブジェクトがIDEX/IQEX並列印刷用に予約された領域 (セカンダリゾーン、またはプライマリゾーン内のキャリッジ用クリアランス帯) と重なっています。"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "スライスできません: プライムタワーがIDEX/IQEX並列印刷用に予約された領域 (セカンダリゾーン、またはプライマリゾーン内のキャリッジ用クリアランス帯) と重なっています。"
+
msgid "Another export job is running."
msgstr "エクスポート中です"
@@ -8934,8 +9430,9 @@ msgstr "置換されたボリューム"
msgid "Please select a file"
msgstr "ファイルを選択してください"
-msgid "Do you want to replace it"
-msgstr "置換しますか"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "置換しますか?"
msgid "Message"
msgstr "メッセージ"
@@ -8965,6 +9462,50 @@ msgstr "無効なデータ"
msgid "Slicing Canceled"
msgstr "スライスを取消しました"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "ベッド温度の競合: T%d (%s) はベッドを%d℃に設定しますが、T%d (%s) は%d℃を必要とします。ベッドはプライマリツールが制御し、セカンダリツールはその設定温度で印刷します。"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "フィラメントタイプの不一致: T%d は %s、T%d は %s を使用しています。これらの材料は要件が両立せず、一緒に印刷するようには設計されていません。"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"プレート%dではIDEX/IQEX並列モードが有効になっており、次の懸念事項があります:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "スライスを続行しますか?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "IDEX/IQEX並列モードの警告"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "これらの警告を今後表示しない"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "プレート%d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"次のIDEX/IQEX並列モードの懸念事項が検出されました:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "ネットワークプラグインの切り替えに成功しました。"
@@ -8997,8 +9538,8 @@ msgid "Sync now"
msgstr "今すぐ同期"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "処理の実行中は元に戻す/やり直しを実行できません。先に処理を停止してください。"
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "処理の実行中は元に戻す/やり直しを実行できません。処理を停止するか、完了するまで待ってから再試行してください。"
# AI Translated
msgid ""
@@ -9070,6 +9611,14 @@ msgstr "ダウンロード失敗、ファイルサイズ例外。"
msgid "Project downloaded %d%%"
msgstr "プロジェクトをダウンロード %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"PAラインとPAパターンのテストは、ベルトプリンターではまだ使用できません。\n"
+"代わりにPAタワー方式を使用してください。"
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Pressure Advanceテスト"
@@ -9077,11 +9626,15 @@ msgstr "Pressure Advanceテスト"
msgid "INFO:"
msgstr "情報:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "キャリブレーション用の加速度が提供されていません。デフォルトの加速度値を使用します "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "キャリブレーション用の加速度が提供されていません。デフォルトの加速度値%1%mm/s²を使用します"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "キャリブレーション用の速度が提供されていません。デフォルトの最適速度を使用します "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "キャリブレーション用の速度が提供されていません。デフォルトの最適速度%1%mm/sを使用します"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9096,6 +9649,15 @@ msgstr "Orca YOLO流量比キャリブレーション"
msgid "Flowrate Test - Pass%d"
msgstr "流量比テスト - パス%d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "%1%~%2%℃の範囲に対応するベルト用温度タワーはありません。タワーモデルが対応する範囲 (例: 230~190) を使用してください。"
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "温度タワー"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "ノズル温度テスト"
@@ -9119,11 +9681,16 @@ msgstr "コーナリングテスト"
msgid "Import SLA archive"
msgstr "SLAアーカイブをインポート"
-msgid "The selected file"
-msgstr "選択したファイル"
-
-msgid "Does not contain valid G-code."
-msgstr "有効なG-codeが含まれていません。"
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"選択したファイル:\n"
+"%1%\n"
+"に有効なG-codeが含まれていません。"
msgid "An Error has occurred while loading the G-code file."
msgstr "G-codeファイルの読込みにエラーが発生しました"
@@ -9399,6 +9966,27 @@ msgstr "現在、オブジェクト設定フォームはマルチエクストル
msgid "Not available"
msgstr "利用不可"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (プレートなし)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — フィラメントが割り当てられていません\n"
+"このヘッドにフィラメントスロットを持たせるには、プリンタータブで押出機を追加してください。"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> フィラメント %2%"
+
msgid "isometric"
msgstr "アイソメトリック"
@@ -9438,6 +10026,8 @@ msgstr "ヨーロッパ地域"
msgid "North America"
msgstr "北米"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "その他"
@@ -9512,11 +10102,17 @@ msgstr "ネットワークプラグインの再読み込みに失敗しました
msgid "Reload Failed"
msgstr "再読み込み失敗"
-msgid "Associate"
-msgstr "関連付け"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "%s://を関連付け"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "OrcaSlicerに関連付けて、Orcaがモデルを開けるようにする"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "%s://をOrcaSlicerに関連付けて、Orcaが%sからモデルを開けるようにします"
msgid "Current Association: "
msgstr "現在の関連付け: "
@@ -9819,6 +10415,9 @@ msgstr "最後の印刷アクションを記憶"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "有効にすると、OrcaSlicerは印刷ボタンのドロップダウンで最後に選択したオプション (印刷、プレートのスライスファイルをエクスポート、G-codeファイルをエクスポートなど) を記憶し、次回起動時のデフォルトとして使用します。"
+msgid "Camera"
+msgstr "カメラ"
+
msgid "Touchpad"
msgstr "タッチパッド"
@@ -10276,6 +10875,9 @@ msgstr "ネットワークプラグインのバージョン"
msgid "Select the network plug-in version to use"
msgstr "使用するネットワークプラグインのバージョンを選択"
+msgid "Associate"
+msgstr "関連付け"
+
msgid "Associate files to OrcaSlicer"
msgstr "ファイルをOrca Slicerに関連付ける"
@@ -10328,6 +10930,12 @@ msgstr "非対応のプリセットを表示"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "プリンターとフィラメントのドロップダウンリストに、互換性のない/非対応のプリセットを表示します。これらのプリセットは選択できません。"
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "実験的機能"
@@ -10617,10 +11225,6 @@ msgstr "3MFを公開..."
msgid "Select which settings to be published in the 3MF file"
msgstr "3MFファイルで公開する設定を選択してください"
-# AI Translated
-msgid "Video Guide"
-msgstr "ビデオガイド"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "混合フィラメント - 上の「有効化」を選択すると全体が公開されます"
@@ -10785,6 +11389,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "シンプル"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s (%sから)"
+
# AI Translated
msgid "Search actions"
msgstr "アクションを検索"
@@ -10902,6 +11512,10 @@ msgstr "詳細を表示"
msgid "Hide details"
msgstr "詳細を隠す"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Webビューは利用できません。"
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11185,9 +11799,11 @@ msgstr "送信失敗"
msgid "The name length exceeds the limit."
msgstr "名前の長さが制限を超えています。"
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "最適なグルーピングより%dgのフィラメントと%d回の変更が多くなります。"
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "最適なグルーピングより%dgのフィラメントと%d回の変更が多くなります。"
# AI Translated
msgid "Right-Ext"
@@ -11277,6 +11893,10 @@ msgstr "一部のフィラメントは印刷中に押出機間で切り替わる
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "このファイルには糸引きしやすいフィラメントが含まれています。最良の印刷品質を得るには、ノズルクランピング検出を自動モードに切り替えることをおすすめします。"
+# AI Translated
+msgid "Switch"
+msgstr "切替"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "「ダイナミックフローキャリブレーション」が自動/オンに設定されている場合、システムは手動キャリブレーション値またはデフォルト値を使用し、フローキャリブレーション処理をスキップします。TPUフィラメントの手動フローキャリブレーションは「キャリブレーション」ページで実行できます。"
@@ -11587,6 +12207,10 @@ msgstr "異なる押出機の駆動方式や内腔容積タイプの同期には
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "パラメータの変更を、もう一方の押出機の対応するパラメータに同期します。"
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "このアイコンが付いたパラメータは、ノズルごとに設定できます。"
+
msgid "Click to reset all settings to the last saved preset."
msgstr "全ての変更をリセットします"
@@ -11594,6 +12218,7 @@ msgid "Prime tower is required for nozzle changing. There may be flaws on the mo
msgstr "ノズルの切り替えにはプライムタワーが必要です。無効にするとモデルに欠陥が生じる可能性があります。本当にプライムタワーを無効にしますか?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without a prime tower. Are you sure you want to disable the prime tower?"
msgstr "スムーズタイムラプスモードにはプライムタワーが必要です。プライムタワーがない場合、モデルに欠陥が生じる可能性があります。本当にプライムタワーを無効にしますか?"
@@ -11610,6 +12235,7 @@ msgid "Enabling both precise Z height and the prime tower may cause slicing erro
msgstr "正確なZ高さとプライムタワーの両方を有効にすると、スライスエラーが発生する可能性があります。それでも正確なZ高さを有効にしますか?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "Smooth timelapse needs a prime tower on every layer, which is not compatible with \"No sparse layers\". \"No sparse layers\" has been turned off."
msgstr "スムーズタイムラプスは全積層にプライムタワーが必要なため、「スパース層なし」とは併用できません。「スパース層なし」をオフにしました。"
@@ -11617,6 +12243,7 @@ msgid "A prime tower is required for smooth timelapse mode. There may be flaws o
msgstr "スムーズタイムラプスビデオを作成するにはプライムタワーが必要です。プライムタワーを有効にしますか?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "\"No sparse layers\" is not compatible with smooth timelapse, which needs a prime tower on every layer. Timelapse has been switched to traditional mode."
msgstr "「スパース層なし」は、全積層にプライムタワーが必要なスムーズタイムラプスとは併用できません。タイムラプスを通常モードに切り替えました。"
@@ -11817,6 +12444,9 @@ msgstr "フィーチャー用フィラメント"
msgid "Ooze prevention"
msgstr "垂れ出し抑止"
+msgid "Others"
+msgstr "その他"
+
msgid "Special mode"
msgstr "特別モード"
@@ -11852,8 +12482,11 @@ msgid_plural ""
"Please remove them, or G-code visualization and print time estimation will be broken."
msgstr[0] "以下のラインでは %s 予約語が入っていますのでG-codeがうまく表示できない可能性があります、削除してください"
-msgid "Reserved keywords found"
-msgstr "保留キーワードが見つかりました"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "%1%に予約済みキーワードが見つかりました"
msgid "Setting Overrides"
msgstr "上書き設定"
@@ -11870,8 +12503,9 @@ msgstr "推奨ノズル温度"
msgid "Recommended nozzle temperature range of this filament. 0 means not set"
msgstr "フィラメントの推奨ノズル温度、0は未設定との意味です"
+# AI Translated
msgid "Flow ratio and Pressure Advance"
-msgstr "フロー率とPressure Advance"
+msgstr "流量比とPressure Advance"
msgid "Print chamber temperature"
msgstr "印刷チャンバー温度"
@@ -11994,7 +12628,16 @@ msgstr "造形可能領域"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "プリンター通信用のネットワークエージェント実装を選択します。使用可能なエージェントは起動時に登録されます。"
+# AI Translated
+msgid "Belt printer"
+msgstr "ベルトプリンター"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "機械座標系の変換"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "パラメータ %1% に無効な値が指定されました: %2%"
@@ -12109,9 +12752,29 @@ msgstr "ノズル直径"
msgid "Wipe tower"
msgstr "ワイプタワー"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "ベルトパージタワー"
+
msgid "Single extruder multi-material parameters"
msgstr "単一エクストルーダーのマルチマテリアルパラメーター"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "IDEX/IQEX設定"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "スライス前の警告"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "IDEX/IQEX並列モードの懸念事項 (ベッド温度の競合、フィラメントタイプの不一致、マルチマテリアルの競合) が検出された場合、スライス前に警告ダイアログを表示します。ダイアログ上で非表示にできます。誤って非表示にした場合は、ここで再度有効にしてください。"
+
+# AI Translated
+msgid "Modes"
+msgstr "モード"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "シングルエクストルーダーのマルチマテリアルプリンターです。すべてのエクストルーダーの径が新しい値に設定されます。続行しますか?"
@@ -12121,6 +12784,22 @@ msgstr "積層ピッチの制限"
msgid "Z-Hop"
msgstr "Z-ホップ"
+# AI Translated
+msgid "Front-left"
+msgstr "左前"
+
+# AI Translated
+msgid "Front-right"
+msgstr "右前"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "左後ろ"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "右後ろ"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -12143,22 +12822,34 @@ msgstr "変更された値を使用"
msgid "Detached"
msgstr "分離的"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1%と%2%がこのプリンターに関連付けられています。プリンターを削除すると、これらのプリセットも削除されます。"
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d個のフィラメントプリセットと%d個のプロセスプリセットがこのプリンターに関連付けられています。プリンターを削除するとこれらのプリセットも削除されます。"
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d個のフィラメントプリセット"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d個のプロセスプリセット"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "他のプリセットに継承されているプリセットは削除できません!"
# AI Translated
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
msgstr[0] "以下のプリセットがこのプリセットを継承しています。"
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% プリセット"
+msgid "Delete Preset"
+msgstr "プリセットを削除"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -12171,9 +12862,9 @@ msgstr ""
"選択したプリセットを削除してもよろしいですか?\n"
"プリセットがプリンターで使用中のフィラメントに対応する場合、そのスロットのフィラメント情報をリセットしてください。"
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "選択したプリセットを %1% しますか?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "選択したプリセットを削除してもよろしいですか?"
msgid "Select printers"
msgstr "プリンターを選択"
@@ -12234,9 +12925,39 @@ msgid "Don't warn again for this preset"
msgstr "このプリセットでは今後警告しない"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# Needs human review: Short tag for the Standard nozzle flow type, kept as the international abbreviation (same as the English); check whether a Japanese tag is preferred.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Short tag for the High Flow nozzle type, kept as the international abbreviation; check whether a Japanese tag is preferred.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Short tag for the TPU High Flow nozzle type, kept as the international abbreviation; check whether a Japanese tag is preferred.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Short tag for the E3D High Flow nozzle type, kept as the international abbreviation; check whether a Japanese tag is preferred.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short tag for the Extra High Flow nozzle type, kept as the international abbreviation; check whether a Japanese tag is preferred.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
# AI Translated
msgid "No modifications need to be copied."
@@ -12440,6 +13161,12 @@ msgstr "いずれかのプリセットが存在しません"
msgid "Compared presets has different printer technology"
msgstr "比較したプリセットのプリンター技術が異なります"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "「%1%」と「%2%」の比較"
+
msgid "Add File"
msgstr "ファイルを追加"
@@ -12465,6 +13192,22 @@ msgstr "部品表"
msgid "Assembly Guide"
msgstr "アセンブリガイド"
+# AI Translated
+msgid "Image files"
+msgstr "画像ファイル"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXTファイル"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCELファイル"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDFファイル"
+
msgid "Author"
msgstr "作成者"
@@ -12665,9 +13408,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "合計ラミング"
-msgid "Volume"
-msgstr "体積"
-
msgid "Ramming line"
msgstr "ラミングライン"
@@ -12694,8 +13434,11 @@ msgstr "マルチプライヤ"
msgid "Flushing volumes for filament change"
msgstr "フィラメントを入替える為のフラッシュ量"
-msgid "Please choose the filament color"
-msgstr "フィラメントの色を選択してください"
+# AI Translated
+# Needs human review: Corner header of the flushing volume table (rows = filament flushed from, columns = changed to); check it fits the cell.
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "変更前/変更後"
# AI Translated
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -12718,6 +13461,155 @@ msgstr "ログインに失敗しました。もう一度お試しください。
msgid "parse json failed"
msgstr "JSONの解析に失敗しました"
+# AI Translated
+msgid "Loading…"
+msgstr "読み込み中…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "カスタム"
+
+# AI Translated
+msgid "Welcome to Orca Slicer"
+msgstr "Orca Slicerへようこそ"
+
+# AI Translated
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicerをいくつかのステップで設定します。始めましょう!"
+
+# AI Translated
+msgid "Get Started"
+msgstr "始める"
+
+# AI Translated
+msgid "Please select your login region"
+msgstr "ログイン地域を選択してください"
+
+msgid "Finish"
+msgstr "完了"
+
+# AI Translated
+msgid "Printer Selection"
+msgstr "プリンターの選択"
+
+# AI Translated
+msgid "Vendors"
+msgstr "メーカー"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "カスタムプリンター"
+
+msgid "Create"
+msgstr "作成"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "新しいプリンターを確認"
+
+# AI Translated
+msgid "At least one printer must be selected."
+msgstr "少なくとも1台のプリンターを選択する必要があります。"
+
+# AI Translated
+msgid "New printers found"
+msgstr "新しいプリンターが見つかりました"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "新しいプリンターメーカーをインストールしました: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "新しいプリンターメーカーが見つかりましたが、インストールはキャンセルされました。"
+
+# AI Translated
+msgid "No new printers found."
+msgstr "新しいプリンターは見つかりませんでした。"
+
+# AI Translated
+msgid "Filament Selection"
+msgstr "フィラメントの選択"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "システムフィラメント"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "カスタムフィラメント"
+
+# AI Translated
+msgid "Create New"
+msgstr "新規作成"
+
+msgid "Filament type"
+msgstr "フィラメントタイプ"
+
+msgid "Vendor"
+msgstr "ベンダー"
+
+# AI Translated
+msgid "No items"
+msgstr "項目がありません"
+
+# AI Translated
+msgid "Filter items"
+msgstr "項目を絞り込み"
+
+# AI Translated
+msgid "Checked"
+msgstr "選択済み"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "未選択"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "絞り込み結果を選択"
+
+# AI Translated
+msgid "Clear all"
+msgstr "すべてクリア"
+
+# AI Translated
+msgid "At least one filament must be selected."
+msgstr "少なくとも1つのフィラメントを選択する必要があります。"
+
+# AI Translated
+msgid "Do you want to use the default filament?"
+msgstr "デフォルトのフィラメントを使用しますか?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "クラウド機能をすべて無効にします (Orca Cloudのプロファイル同期を含む)。完全にオフラインで作業したいユーザーはこのオプションを有効にできます。"
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "注意: ステルスモードを有効にすると、ユーザープロファイルはOrca Cloudにバックアップされません。"
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "ステルスモードを有効にする。"
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "独自プラグイン"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "一部のプリンターメーカーでは、プリンターとの通信に独自のプラグインが必要です。そのようなプリンターを使用する場合は、対応するプラグインを選択してください。"
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "これらのプラグインはOrcaSlicerが開発・保守しているものではありません。ご自身の判断と責任でご使用ください。"
+
+# AI Translated
+msgid "Install Bambu Network plug-in"
+msgstr "Bambuネットワークプラグインをインストール"
+
msgid "[Action Required] "
msgstr "【対応が必要】 "
@@ -12786,9 +13678,6 @@ msgstr "準備タブの3Dビューにフォーカスがあるときに使用で
msgid "Select a part"
msgstr "パーツを選択"
-msgid "Select multiple objects"
-msgstr "複数のオブジェクトを選択"
-
msgid "Select objects by rectangle"
msgstr "矩形でオブジェクトを選択"
@@ -13124,27 +14013,19 @@ msgstr "ファームウェアのバージョンに異常があります。印刷
msgid "Extension Board"
msgstr "拡張ボード"
-# AI Translated
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "%1%個のパーツに分割"
-
msgid "Repair finished"
msgstr "修復完了"
-msgid "Repair failed"
-msgstr "修復が失敗しました"
-
-msgid "Repair canceled"
-msgstr "修復を取消しました"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "ファイル %1% を %2% へのコピーが失敗しました (%3%)"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "新しいベンダープロファイルをダウンロード中: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "新しいベンダープロファイルをダウンロード中: %1%..."
# AI Translated
#, boost-format
@@ -13152,8 +14033,11 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "設定パッケージ: %1% を %2% に更新しました"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "ベンダープロファイルのダウンロードに失敗しました: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "ベンダープロファイルのダウンロードに失敗しました: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "構成を更新する前に、未保存の変更をご確認ください"
@@ -13161,6 +14045,11 @@ msgstr "構成を更新する前に、未保存の変更をご確認ください
msgid "Open G-code file:"
msgstr "G-codeファイルを開く"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "ワイプタワーの生成に失敗しました。最初の積層が空である可能性があります。"
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "オブジェクトはプレートと接触していないため造形できません。サポートを有効するか、オブジェクトを修正してください。"
@@ -13183,10 +14072,62 @@ msgstr "プロセスの押出ロール変更G-code"
msgid "Filament change extrusion role G-code"
msgstr "フィラメントの押出ロール変更G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"%1%へのG-codeエクスポートに失敗しました。\n"
+"ファイルを書き込み用に開けません。"
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "フォルダ%1%は存在しません。"
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"%1%へのG-codeエクスポートに失敗しました。\n"
+"ディスクの空き容量が不足していませんか?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"出力G-codeファイルの名前を%1%から%2%に変更できませんでした。\n"
+"エラー: %3%\n"
+"%1%がロックされていませんか?"
+
# AI Translated
msgid "No object can be printed. It may be too small."
msgstr "造形できるオブジェクトがありません。小さすぎる可能性があります。"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "IDEX/IQEXモード「%1%」には、選択したプリンターでツールが割り当てられていません。代わりにプライマリ (Primary) モードで印刷します。「プリンター設定」でモードのツールを割り当てるか、プレートのIDEX/IQEXボタンから別のモードを選択してください。"
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "このプレートはIDEX/IQEXモード「%1%」に設定されていますが、選択したプリンターにはこのモードが定義されていません。代わりにプライマリ (Primary) モードで印刷します。プレートのIDEX/IQEXボタンからモードを選択するか、「プリンター設定」でモードを復元してください。"
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "無効なサムネイル値:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "プリントはプライミング領域に非常に近いです。 衝突がないことを確認してください。"
@@ -13231,6 +14172,10 @@ msgstr "グルーピングエラー: %1% は左ノズルに配置できません
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "グルーピングエラー: %1% は右ノズルに配置できません"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "有効なノズルが見つかりません。ノズル数を確認してください。"
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "手動モードでのグループ分けエラーです。ノズル数を確認するか、グループを作り直してください。"
@@ -13250,6 +14195,18 @@ msgstr "外周との交差が複数あり、1つのみ使用されました (%1%
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "外周がモディファイアの内部に完全に含まれているため、モディファイアは適用されませんでした (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "「%3%」の %1% モディファイア「%2%」は外周全体を覆っています"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "「%3%」の %1% モディファイア「%2%」(合計%4%個) は外周全体を覆っています"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13264,9 +14221,47 @@ msgstr "「%2%」のモディファイア「%1%」(合計%3%個) は継ぎ目に
msgid "Seam placement may differ from expected."
msgstr "継ぎ目の位置が想定と異なる可能性があります。"
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "内部ブリッジ"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing()が負の間隔を生成しました。押出幅を小さく設定しすぎていませんか?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm()が負の流量を生成しました。押出幅を小さく設定しすぎていませんか?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "%1%の線幅を算出できませんでした。「%2%」の値を取得できません。"
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Flow::with_spacing()に無効な間隔が指定されました。レイヤー高さと押出幅を確認してください"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "選択した3mfファイルは%1%の新しいバージョンで保存されており、互換性がありません。"
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "選択した3MFには、新しいバージョンのPrusaSlicerで作成されたFDMサポートのペイント済みオブジェクトが含まれており、互換性がありません。"
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "選択した3MFには、新しいバージョンのPrusaSlicerで作成された継ぎ目のペイント済みオブジェクトが含まれており、互換性がありません。"
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "選択した3MFには、新しいバージョンのPrusaSlicerで作成されたマルチマテリアルのペイント済みオブジェクトが含まれており、互換性がありません。"
+
msgid "undefined error"
msgstr "未定義エラー"
@@ -13360,6 +14355,56 @@ msgstr "アカウントの認証に失敗しました"
msgid "write callback failed"
msgstr "書込みコールバック失敗"
+# AI Translated
+msgid "unknown error"
+msgstr "不明なエラー"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "IDEX/IQEX並列モードでのマルチカラー印刷では、各フィラメントに専用の物理押出機が必要です。使用中のフィラメントのうち2つ以上が、プリンターの物理押出機マップ (MMU/AFCマニホールド) によって同じ物理ヘッドに割り当てられており、従属するガントリーはこれに追従できません。"
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "有効なIDEX/IQEXモードにプライマリツールが定義されていないため、マルチカラー印刷をスケジュールできません。プリンター設定のIDEX/IQEXモードエディターを開き、いずれかのツールにプライマリ (Primary) の役割を割り当ててください。"
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "このモードでのマルチカラーは並列印刷になりません。有効なツールがすべて1つのガントリー上にあるため、コピーまたはミラーの対象となる2つ目のガントリーがありません。1つのガントリーでマルチカラー印刷を行うにはプレートをプライマリ (Primary) モードに切り替えるか、2つ目のガントリー上のツールを含むIDEX/IQEXモードを定義してください。"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "IDEX/IQEX並列モードでのマルチカラー印刷には、プライマリのガントリー上にSpanツールが必要です。Spanツールがないと、このモードには同じガントリー内のマルチカラーパートナーが定義されません。印刷を単一のフィラメントにするか、プライマリ (Primary) モードに切り替えるか、プリンター設定のIDEX/IQEXモードエディターを開いてプライマリのガントリー上のツールをSpanに指定してください。"
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "このSpanモードで色を印刷できるのは%1%のみですが、フィラメント%2%はどのツールにも割り当てられていません。%1%に割り当てられたフィラメントを使用するか、このプレートをプライマリ (Primary) モードに切り替えてください。"
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "このSpanモードで色を印刷できるのは%1%のみですが、フィラメント%2%はT%3%に割り当てられています。%1%に割り当てられたフィラメントを使用するか、このプレートをプライマリ (Primary) モードに切り替えてください。"
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"選択したプリセットを読み込めません: %1%\n"
+"\t理由: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"プリセットファイルの読み込みに失敗しました: %1%\n"
+"\t理由: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% は除外エリアに近すぎます。造形時に衝突の可能性があります。"
@@ -13373,31 +14418,44 @@ msgid "%1% is too tall, and collisions will be caused."
msgstr "%1% は高すぎます、衝突の可能性があります。"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "モデルとプライムタワーの相対位置が「スパース層なし」機能の要件を満たしていません。相対位置を調整するか、モデルの高さを下げるか、「スパース層なし」をオフにしてください。"
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr "が除外領域に近すぎます。衝突の可能性があります。"
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " がクランピング検出エリアに近すぎます。印刷中に衝突が発生する可能性があります。"
-
-msgid "Prime Tower"
-msgstr "プライムタワー"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr "他のオブジェクト に近すぎるので、衝突の可能性があります\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% がクランピング検出エリアに近すぎます。印刷中に衝突が発生する可能性があります。"
# AI Translated
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " は除外エリアに近すぎるため、衝突が発生します。\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " がクランピング検出エリアに近すぎ、衝突が発生します。\n"
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "プライムタワーが他のオブジェクトに近すぎるため、衝突が発生する可能性があります。\n"
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " は造形可能領域から一部はみ出しているため、印刷できません。\n"
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "プライムタワーが除外エリアに近すぎるため、衝突が発生します。\n"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "プライムタワーがクランピング検出エリアに近すぎるため、衝突が発生します。\n"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "プライムタワーが除外エリアに近すぎます。印刷中に衝突が発生する可能性があります。"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "プライムタワーがクランピング検出エリアに近すぎます。印刷中に衝突が発生する可能性があります。"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "プライムタワーが造形可能領域から一部はみ出しているため、印刷できません。\n"
# AI Translated
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
@@ -13414,6 +14472,58 @@ msgstr "それでも印刷する場合は、環境設定 / 制御 / スライス
msgid "No extrusions under current settings."
msgstr "現在の設定では造形しません"
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "混合フィラメントはIDEX/IQEX並列モードではサポートされていません。このプレートをプライマリ (Primary) モードに切り替えてください。"
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEXモード「%1%」はT%2%で印刷しますが、このプレートのフィラメントはいずれも設定済みのツールにありません。T%2%に装填されたフィラメントを割り当てるか、このプレートをプライマリ (Primary) モードに切り替えてください。"
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEXモード「%1%」はT%2%で印刷しますが、このプレートのフィラメントは%3%に割り当てられています。T%2%に装填されたフィラメントを割り当てるか、このプレートをプライマリ (Primary) モードに切り替えてください。"
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "ラフトはベルトプリンターモードと互換性がありません。"
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "保護シールドはベルトプリンターモードと互換性がありません。"
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "ベルトプリンターでは、ブリムとスパイラルモードを併用できません。どちらかを無効にしてください。"
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "ベルトの傾斜が急すぎるため、ブリムは生成されません。"
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "ブリムはベルトが傾斜している場合にのみ生成されます。ベルト傾斜角度を設定するか、ブリムの設定を解除してください。"
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "ベルトプリンターは外側ブリムと内側ブリムのみに対応しています。「自動」「マウスイヤー」「ペイント済み」のブリムは、「ブリム幅」を使用して「外側ブリムのみ」として印刷されます。"
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "「ブリムとオブジェクトの間隔」により、前縁ブリムが、本来固定すべきオブジェクトの前縁から離れてしまいます。「前縁ブリムの長さ」を使用する場合は、間隔を0に設定してください。"
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "「前縁ブリムの長さ」はベルトに沿って各オブジェクトの前方へ延びますが、「レイアウト」はそのスペースを確保しません。オブジェクト間に余裕を空けてください。"
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "「前縁のみ」のブリムはベルトプリンター用です。このプリンターでは通常の外側ブリムとして印刷されます。"
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "グラデーション付きの混合フィラメントが使用されていますが、「混色サブレイヤー」が無効です。グラデーションは印刷されません。"
@@ -13424,6 +14534,18 @@ msgstr "オブジェクト順で造形するでは、この機能を使用でき
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "「オブジェクト別」シーケンスが有効な場合、クランピング検出はサポートされていません。"
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "造形シーケンスが「オブジェクト順」の場合、ベルトパージタワーは生成されません。フィラメント交換時のフラッシュは行われません。"
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "ベルトパージタワーが有効ですが、プロジェクトにパージタワーオブジェクトがありません。フィラメント交換時のフラッシュは行われません。アプリケーションでプロジェクトを開いてタワーを生成してください。"
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "プロジェクトに管理対象のベルトパージタワーが複数含まれています。プレートを再読み込みするか、ベルトパージタワーをオフにしてから再度オンにして再生成してください。"
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "正確なZ高さとプライムタワーの両方を有効にするとスライスエラーが発生する可能性があります。"
@@ -13440,10 +14562,6 @@ msgstr "複数の素材の場合、スパイラルモードを使用できませ
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "オブジェクト %1% 自体はビルドボリュームに適合していますが、材料の収縮補正のため、ビルドボリュームの最大の高さを超えています。"
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "オブジェクト %1% がビルドボリュームの最大高さを超えています。"
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "オブジェクト %1% 自体はビルドボリュームに適合していますが、その最後のレイヤーはビルドボリュームの最大高さを超えてしまいます。"
@@ -13451,14 +14569,20 @@ msgstr "オブジェクト %1% 自体はビルドボリュームに適合して
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "モデルのサイズを小さくするか、現在のプリント設定を変更してリトライしてください。"
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "オブジェクト %1% がビルドボリュームの最大高さを超えています。"
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "可変レイヤー高さはオーガニックサポートではサポートされていません。"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "The wipe tower filament cannot be a mixed filament."
msgstr "ワイプタワーのフィラメントに混合フィラメントは使用できません。"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution."
msgstr "ノズル径やフィラメント径が異なる場合、プライムタワーを有効にすると正しく動作しないことがあります。非常に実験的な機能ですので、慎重にお進みください。"
@@ -13469,6 +14593,7 @@ msgid "Ooze prevention is only supported with the wipe tower when 'single_extrud
msgstr "オーズ防止は、'single_extruder_multi_material'がオフの場合にのみ、 ワイプタワーと併用してサポートされます。"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "The prime tower is currently only supported for the Marlin, RepRap/Sprinter, RepRapFirmware and Repetier G-code flavors."
msgstr "プライムタワーは現在、Marlin、RepRap/Sprinter、RepRapFirmware、およびRepetierのG-codeフレーバーでのみサポートされています。"
@@ -13488,6 +14613,7 @@ msgid "A prime tower requires that all objects are printed over the same number
msgstr "プライムタワーを使用するには、全てのオブジェクトが同じラフト層数を使う必要があります"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "The prime tower is only supported for multiple objects if they are printed with the same support_top_z_distance."
msgstr "プライムタワーは、複数のオブジェクトが同じsupport_top_z_distanceで印刷される場合にのみ対応しています。"
@@ -13617,6 +14743,10 @@ msgstr "1つ以上の押出機のアダプティブPressure Advanceモデルに
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "使用するフィラメントの収縮率が大きく異なるため、フィラメント収縮率は使用しません。"
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "印刷内容が空です。現在の印刷設定ではモデルを印刷できません。"
+
msgid "Generating skirt & brim"
msgstr "スカートとブリムを生成"
@@ -13636,6 +14766,17 @@ msgstr "G-codeをエクスポート中"
msgid "Generating G-code"
msgstr "G-codeを生成"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "前の3MFファイルのG-codeファイル%1%を処理できませんでした。"
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "ベルトパージタワーでは必要なフラッシュ量を吸収しきれません: 合計%1% mm³をフラッシュできませんでした (最悪の積層: 高さ%3%で%2% mm³)。色が混ざる可能性があります。ベルトパージタワーの幅を増やすか、フラッシュ量を減らしてください。"
+
msgid "Processing of the filename_format template failed."
msgstr "filename_formatテンプレートを処理できませんでした"
@@ -14100,8 +15241,9 @@ msgstr ""
"\n"
"このオプションは、ソリッドインフィルを押し出す前にブリッジ性能をさらに高める「インフィル上の2層目の内部ブリッジ」オプションと組み合わせると特に効果的です。"
+# AI Translated
msgid "Bridge flow ratio"
-msgstr "ブリッジ流量"
+msgstr "ブリッジ流量比"
# AI Translated
msgid ""
@@ -14123,16 +15265,17 @@ msgid ""
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
"ブリッジのライン幅です。%で指定した場合、ノズル径に対して計算されます。\n"
"ブリッジ密度やブリッジ流量比を高めに設定して使用することをおすすめします。\n"
"\n"
"最大値は100%またはノズル径です。\n"
-"0に設定すると、ライン幅は内部ソリッドインフィルの幅と同じになります。"
+"0に設定すると、ライン幅は内部ソリッド インフィルの幅と同じになります。厚いブリッジの場合はノズル径と同じになります。"
+# AI Translated
msgid "Internal bridge flow ratio"
-msgstr "内部ブリッジフロー率"
+msgstr "内部ブリッジ流量比"
# AI Translated
msgid ""
@@ -14148,8 +15291,9 @@ msgstr ""
"\n"
"実際に使用されるブリッジ流量は、この値にフィラメントの流量比を掛け、設定されている場合はオブジェクトの流量比も掛けて計算されます。"
+# AI Translated
msgid "Top surface flow ratio"
-msgstr "上面フロー率"
+msgstr "上面流量比"
# AI Translated
msgid ""
@@ -14161,8 +15305,9 @@ msgstr ""
"\n"
"実際に使用される上面の流量は、この値にフィラメントの流量比を掛け、設定されている場合はオブジェクトの流量比も掛けて計算されます。"
+# AI Translated
msgid "Bottom surface flow ratio"
-msgstr "底面フロー率"
+msgstr "底面流量比"
# AI Translated
msgid ""
@@ -14174,15 +15319,17 @@ msgstr ""
"\n"
"実際に使用される底面ソリッドインフィルの流量は、この値にフィラメントの流量比を掛け、設定されている場合はオブジェクトの流量比も掛けて計算されます。"
+# AI Translated
msgid "Set other flow ratios"
-msgstr "他のフロー率を設定"
+msgstr "他の流量比を設定"
# AI Translated
msgid "Change flow ratios for other extrusion path types."
msgstr "その他の押出パスタイプの流量比を変更します。"
+# AI Translated
msgid "First layer flow ratio"
-msgstr "初期レイヤーフロー率"
+msgstr "初期レイヤー流量比"
# AI Translated
msgid ""
@@ -14194,8 +15341,9 @@ msgstr ""
"\n"
"1層目では、各パスロールの実際の流量比 (ブリムとスカートには影響しません) にこの値が掛けられます。"
+# AI Translated
msgid "Outer wall flow ratio"
-msgstr "外壁フロー率"
+msgstr "外壁流量比"
# AI Translated
msgid ""
@@ -14207,8 +15355,9 @@ msgstr ""
"\n"
"実際に使用される外壁の流量は、この値にフィラメントの流量比を掛け、設定されている場合はオブジェクトの流量比も掛けて計算されます。"
+# AI Translated
msgid "Inner wall flow ratio"
-msgstr "内壁フロー率"
+msgstr "内壁流量比"
# AI Translated
msgid ""
@@ -14220,8 +15369,9 @@ msgstr ""
"\n"
"実際に使用される内壁の流量は、この値にフィラメントの流量比を掛け、設定されている場合はオブジェクトの流量比も掛けて計算されます。"
+# AI Translated
msgid "Overhang flow ratio"
-msgstr "オーバーハングフロー率"
+msgstr "オーバーハング流量比"
# AI Translated
msgid ""
@@ -14233,8 +15383,9 @@ msgstr ""
"\n"
"実際に使用されるオーバーハングの流量は、この値にフィラメントの流量比を掛け、設定されている場合はオブジェクトの流量比も掛けて計算されます。"
+# AI Translated
msgid "Sparse infill flow ratio"
-msgstr "スパースインフィルフロー率"
+msgstr "スパースインフィル流量比"
# AI Translated
msgid ""
@@ -14246,8 +15397,9 @@ msgstr ""
"\n"
"実際に使用されるスパース インフィルの流量は、この値にフィラメントの流量比を掛け、設定されている場合はオブジェクトの流量比も掛けて計算されます。"
+# AI Translated
msgid "Internal solid infill flow ratio"
-msgstr "内部ソリッドインフィルフロー率"
+msgstr "内部ソリッドインフィル流量比"
# AI Translated
msgid ""
@@ -14259,8 +15411,9 @@ msgstr ""
"\n"
"実際に使用される内部ソリッドインフィルの流量は、この値にフィラメントの流量比を掛け、設定されている場合はオブジェクトの流量比も掛けて計算されます。"
+# AI Translated
msgid "Gap fill flow ratio"
-msgstr "ギャップフィルフロー率"
+msgstr "ギャップフィル流量比"
# AI Translated
msgid ""
@@ -14272,8 +15425,9 @@ msgstr ""
"\n"
"実際に使用される隙間充填の流量は、この値にフィラメントの流量比を掛け、設定されている場合はオブジェクトの流量比も掛けて計算されます。"
+# AI Translated
msgid "Support flow ratio"
-msgstr "サポートフロー率"
+msgstr "サポート流量比"
# AI Translated
msgid ""
@@ -14285,8 +15439,9 @@ msgstr ""
"\n"
"実際に使用されるサポートの流量は、この値にフィラメントの流量比を掛け、設定されている場合はオブジェクトの流量比も掛けて計算されます。"
+# AI Translated
msgid "Support interface flow ratio"
-msgstr "サポートインターフェースフロー率"
+msgstr "サポートインターフェース流量比"
# AI Translated
msgid ""
@@ -14433,7 +15588,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"外周が上向きにカールしている可能性がある領域で、印刷を減速させる場合にこのオプションを有効にします。\n"
"例えば、Benchyの船首のような鋭角部のオーバーハングを印刷する際に追加の減速が適用され、複数の層にわたって蓄積するカールを抑えられます。\n"
@@ -14445,10 +15600,10 @@ msgstr ""
"このオプションを有効にする際の推奨事項:\n"
"1. Pressure Advanceのスムーズ時間を0.015〜0.02に下げ、押出機が速度変化に素早く反応するようにします。\n"
"2. 最小印刷速度を上げて減速の幅を抑え、速い区間と遅い区間の差を小さくします。\n"
-"3. それでもアーティファクトが出る場合は、Extrusion Rate Smoothing (ERS) を有効にして流量の遷移をさらに滑らかにします。\n"
+"3. それでもアーティファクトが出る場合は、押出レートスムージング (ERS) を有効にして流量の遷移をさらに滑らかにします。\n"
"\n"
"注意: このオプションを有効にすると、オーバーハング外周はオーバーハングとして扱われるため、オーバーハングする外周がブリッジの一部であってもオーバーハング速度が適用されます。\n"
-"例えば、外周が100%オーバーハングで下に支える壁がない場合、100%オーバーハング時の速度が適用されます。"
+"例えば、外周が100%オーバーハングで下に支える壁がない場合、75%のオーバーハング速度が適用され、ブリッジ速度で制限されます。"
msgid "mm/s or %"
msgstr "mm/s 或は %"
@@ -14457,11 +15612,11 @@ msgstr "mm/s 或は %"
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"外部から見えるブリッジ押出の速度です。\n"
"\n"
-"さらに、「カールした外周で減速」が無効、またはクラシックオーバーハングモードが有効な場合、ブリッジかオーバーハングかに関わらず、支持率13%未満のオーバーハング壁の印刷速度になります。"
+"さらに、「カールした外周のスローダウン」が無効な場合、ブリッジかオーバーハングかに関わらず、支持率13%未満のオーバーハング壁の印刷速度になります。"
# AI Translated
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
@@ -14470,6 +15625,46 @@ msgstr "内部ブリッジの速度です。値を%で指定した場合、bridg
msgid "This is the distance from the model to the outermost brim line."
msgstr "一番外側のブリム線がモデルと距離です。"
+# AI Translated
+msgid "Leading brim length"
+msgstr "前縁ブリムの長さ"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"ベルトプリンター専用です。ベルトに沿ってオブジェクトの「前方」にブリムを延長します。対象は接地領域の下り側を向いたすべての縁で、オブジェクトが最初にベルトに接する部分と、後から接地するアイランドの両方が含まれます。このエプロンはオブジェクトが到達する前にベルト上に敷かれるため、前縁はすでに貼り付いた部分につかまることができます。\n"
+"\n"
+"ベルト面上で測定され、「ブリム幅」に加算されます。ブリムはオブジェクトの前方に「ブリムとオブジェクトの間隔」+「前縁ブリムの長さ」+「ブリム幅」の距離まで達します。「ブリムとオブジェクトの間隔」を0に設定しないと、エプロンが固定対象のオブジェクトに接しません。\n"
+"\n"
+"傾斜したベルトでは各積層がブリムを1列ずつ敷くため、できあがるブリムシートの厚さは積層ピッチではなく流量で決まります。「ブリムの流量比」で調整してください。\n"
+"\n"
+"0に設定すると無効になります。"
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "追加ブリム幅"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"ベルトプリンター専用です。オブジェクトの前方や後方には延長せず、ベルトを横切る「横方向」にブリムを広げます。パーツの長さ方向に「ブリム幅」だけでは足りない保持力が必要な場合に使用します。\n"
+"\n"
+"ベルト面上で測定され、「ブリム幅」に加算されます。ブリムはオブジェクトの両側に「ブリムとオブジェクトの間隔」+「ブリム幅」+「追加ブリム幅」の距離まで達します。代わりにオブジェクトの前方へブリムを延長するには、「前縁ブリムの長さ」を使用してください。\n"
+"\n"
+"0に設定すると無効になります。"
+
msgid "Brim type"
msgstr "ブリムタイプ"
@@ -14477,6 +15672,10 @@ msgstr "ブリムタイプ"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "モデルの外側および/または内側にブリムを生成する方法を制御します。自動を選ぶと、ブリム幅が解析されて自動的に計算されます。"
+# AI Translated
+msgid "Leading edge only"
+msgstr "前縁のみ"
+
msgid "Brim-object gap"
msgstr "ブリムとオブジェクトの間隔"
@@ -14786,6 +15985,9 @@ msgstr ""
"2. 限定的に除外する - 不要なブリッジを避けつつ、大きく傾斜した面に内部ブリッジを作成します。難しいモデルの多くでうまく機能します\n"
"3. 除外しない - 内部オーバーハングになり得るすべての箇所に内部ブリッジを作成します。上面が大きく傾斜したモデルには有効ですが、多くの場合は不要なブリッジが増えすぎます。"
+msgid "Filter"
+msgstr "フィルター"
+
msgid "Limited filtering"
msgstr "制限付きフィルタリング"
@@ -14801,8 +16003,9 @@ msgstr "サポートの要らないブリッジの最大長さです。値が0
msgid "End G-code"
msgstr "終了G-code"
-msgid "Add end G-Code when finishing the entire print."
-msgstr "造形完了時のG-codeを追加"
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
+msgstr "印刷全体の完了時に終了G-codeを追加します。"
msgid "Between Object G-code"
msgstr "オブジェクト間G-code"
@@ -14996,8 +16199,8 @@ msgid "Small perimeters"
msgstr "小さな外周"
# AI Translated
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "この個別の設定は、半径がsmall_perimeter_threshold以下の外周 (通常は穴) の速度に影響します。パーセント (例: 80%) で指定した場合、上の外壁速度の設定を基準に計算されます。自動にするには0を設定してください。"
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "この個別の設定は、半径がsmall_perimeter_threshold以下の外周 (通常は穴) の速度に影響します。パーセント (例: 80%) で指定した場合、上の外壁速度の設定を基準に計算されます。"
msgid "Small perimeters threshold"
msgstr "小さな外周のしきい値"
@@ -15011,8 +16214,8 @@ msgid "Small support perimeters"
msgstr "小さなサポート外周"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "「小さな外周」と同様ですが、サポート用です。この個別の設定は、`small_support_perimeter_threshold`以下の領域のサポート速度に影響します。パーセント (例: 80%) で指定した場合、上のサポートまたはサポートインターフェースの速度設定を基準に計算されます。自動にするには0を設定してください。"
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "「小さな外周」と同様ですが、サポート用です。この個別の設定は、`small_support_perimeter_threshold`以下の領域のサポート速度に影響します。パーセント (例: 80%) で指定した場合、上のサポートまたはサポート接触面の速度設定を基準に計算されます。"
# AI Translated
msgid "Small support perimeters threshold"
@@ -15031,17 +16234,17 @@ msgid ""
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
"内壁と外壁の印刷順序です。\n"
"\n"
-"オーバーハングを最良にするには内壁→外壁を使用します。オーバーハングする壁が印刷中に隣接する外周に密着できるためです。ただし、外周が内周に押し付けられて変形するため、表面品質はわずかに低下します。\n"
+"オーバーハングを最良にするには内側/外側を使用します。オーバーハングする壁が印刷中に隣接する外周に密着できるためです。ただし、外周が内周に押し付けられて変形するため、表面品質はわずかに低下します。\n"
"\n"
-"外面の仕上がりと寸法精度を最良にするには内壁→外壁→内壁を使用します。外壁が内周に乱されずに印刷されるためです。ただし、外壁を印刷する際に支えとなる内周がないため、オーバーハング性能は低下します。このオプションは3本目以降の内壁を先に印刷し、次に外壁、最後に1本目の内壁を印刷するため、効果を得るには最低3本の壁が必要です。多くの場合、外壁→内壁よりこのオプションをおすすめします。\n"
+"外面の仕上がりと寸法精度を最良にするには内側/外側/内側を使用します。外壁が内周に乱されずに印刷されるためです。ただし、外壁を印刷する際に支えとなる内周がないため、オーバーハング性能は低下します。このオプションは3本目以降の内壁を先に印刷し、次に外壁、最後に1本目の内壁を印刷するため、効果を得るには最低3本の壁が必要です。多くの場合、外側/内側よりこのオプションをおすすめします。\n"
"\n"
-"外壁→内壁は内壁→外壁→内壁と同様に外壁の品質と寸法精度の利点がありますが、新しい層の最初の押出が見える面から始まるため、Zシームの一貫性が低く見えます。"
+"外側/内側は内側/外側/内側と同様に外壁の品質と寸法精度の利点がありますが、新しい層の最初の押出が見える面から始まるため、継ぎ目の一貫性が低く見えます。"
msgid "Inner/Outer"
msgstr "内側/外側"
@@ -15511,6 +16714,7 @@ msgid "Minimal purge on wipe tower"
msgstr "プライムタワー上最小フラッシュ量"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial object, Orca Slicer will always prime this amount of material into the wipe tower to produce successive infill or sacrificial object extrusions reliably."
msgstr "ツール交換後は、新しくロードされたフィラメントのノズル内での正確な位置が分からず、フィラメント圧力もまだ安定していない可能性があります。プリントヘッドをインフィルや犠牲オブジェクトへパージする前に、Orca Slicerは常にこの量の材料をワイプタワーに押し出し、その後のインフィルや犠牲オブジェクトの押出を確実に行えるようにします。"
@@ -15701,9 +16905,6 @@ msgstr "フィラメントの価格です。統計目的にのみ使用されま
msgid "money/kg"
msgstr "USD/kg"
-msgid "Vendor"
-msgstr "ベンダー"
-
# AI Translated
msgid "Vendor of filament. For show only."
msgstr "フィラメントのメーカーです。表示専用です。"
@@ -15783,6 +16984,94 @@ msgstr "マルチラインフィル"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "充填パターンが対応している場合は、複数のラインを使って充填します。"
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "アダプティブ密度 (実験的)"
+
+# AI Translated
+# Needs human review: Quotes the existing 'Sparse infill density' label (充填密度), which does not follow the glossary's スパース インフィル; check the option names match their labels in the Adaptive density dropdown.
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"オブジェクト内部のジャイロイドおよびTPMSインフィルに密度勾配を付けます。セルはオブジェクトの表面から中心に向かって大きくなります。表面では「充填密度」、中心では「内部密度」が使用されます。\n"
+"「距離ワープ」「スムーズブレンド」「段階シェル」は、上面と底面を含む最も近い表面までの距離に従い、表面から最も遠い点で内部密度になります:\n"
+" - 距離ワープ: 1つの連続したパターンで、板状や細長いパーツのように方向によって距離が変化する箇所では引き伸ばされ、せん断されます。\n"
+" - スムーズブレンド: 隣接する密度のパターンを互いに混ぜ合わせ、接する部分には小さなループができます。\n"
+" - 段階シェル: 密度が約1.5倍ずつ異なる通常パターンのシェルで、各直線はシェルの境界に沿って接続されます。\n"
+" - ローブ: 上面と底面を含むオブジェクトの3D形状に従います。より細いくびれで残りの部分とつながった各ローブは、それぞれ自身の中心に向かって勾配が付けられます。\n"
+" - 法線Z、Y、X: その軸に垂直なオブジェクトの断面に従うため、その軸方向には密度が変化しません。"
+
+# AI Translated
+msgid "Distance warp"
+msgstr "距離ワープ"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "スムーズブレンド"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "段階シェル"
+
+# AI Translated
+msgid "Lobes"
+msgstr "ローブ"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "法線Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "法線Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "法線X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "内部密度"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "オブジェクトの中心におけるアダプティブインフィルの密度です。"
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "アダプティブ勾配"
+
+# AI Translated
+# Needs human review: Quotes the existing 'Linear' option label (直線状); 線形 would suit a gradient better, so check the Adaptive gradient dropdown and this tooltip together.
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"オブジェクトの表面から中心に向かって密度がどのように変化するかを指定します。\n"
+"直線状: 密度が一定の割合で変化します。\n"
+"二次: 表面付近では密度が「充填密度」に近いまま保たれ、中心に向かうほど速く変化します。\n"
+"指数: 表面のすぐ内側で密度が急速に変化し、中心に向かって横ばいになります。"
+
+# AI Translated
+msgid "Linear"
+msgstr "直線状"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "二次"
+
+# AI Translated
+msgid "Exponential"
+msgstr "指数"
+
# AI Translated
msgid "Z-buckling bias optimization (experimental)"
msgstr "Z座屈バイアス最適化 (実験的)"
@@ -15950,14 +17239,16 @@ msgstr "1層目の高さ"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "1層目の高さです。高さを大きくすればプレートとの接着性が良くなります。"
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "1層目を造形時に、ソリッド インフィル以外の部分の造形速度です。"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "1層目の壁とブリムの造形速度です。"
msgid "First layer infill"
msgstr "1層目インフィル"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "1層目のソリッド インフィルの造形速度です。"
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "1層目の壁とブリムを除く部分 (インフィル、隙間充填、サポートなど) の造形速度です。"
# AI Translated
msgid "First layer travel speed"
@@ -16462,6 +17753,10 @@ msgstr "G-codeスタイル"
msgid "What kind of G-code the printer is compatible with."
msgstr "プリンターが対応するG-code"
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (レガシー)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16728,8 +18023,8 @@ msgstr "インフィル/壁面 オーバーラップ"
# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "インフィル領域をわずかに広げて壁面と重ねることで、接着を改善します。パーセント値はスパース インフィルのライン幅に対する相対値です。過剰押出や材料の蓄積による上面のざらつきを最小限に抑えるには、この値を10〜15%程度に設定します。"
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "インフィル領域をわずかに広げて壁面と重ねることで、接着を改善します。パーセント値は内壁のライン幅に対する相対値です。過剰押出や材料の蓄積による上面のざらつきを最小限に抑えるには、この値を10〜15%程度に設定します。"
# AI Translated
msgid "Top/Bottom solid infill/wall overlap"
@@ -16737,8 +18032,8 @@ msgstr "上面/底面ソリッドインフィルと壁面の重なり"
# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "上面ソリッドインフィルの領域をわずかに広げて壁面と重ねることで、接着を改善し、上面インフィルと壁面の境目にできるピンホールを目立たなくします。25〜30%が良い出発点で、ピンホールを目立たなくできます。パーセント値はスパース インフィルのライン幅に対する相対値です。"
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "上面ソリッドインフィルの領域をわずかに広げて壁面と重ねることで、接着を改善し、上面インフィルと壁面の境目にできるピンホールを目立たなくします。25〜30%が良い出発点で、ピンホールを目立たなくできます。パーセント値は内壁のライン幅に対する相対値です。"
msgid "This is the speed for internal sparse infill."
msgstr "スパース インフィルの造形速度です。"
@@ -16765,8 +18060,9 @@ msgstr "セグメント化された領域の最大幅。値が 0 の場合、こ
msgid "Interlocking depth of a segmented region"
msgstr "分割領域のかみ合わせ深さ"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "セグメント化された領域の連動深さ。mmu_segmented_region_max_width \"が0か、\"mmu_segmented_region_interlocking_depth \"が \"mmu_segmented_region_max_width \"より大きい場合は無視される。ゼロはこの機能を無効にする。"
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "分割領域のかみ合わせ深さです。1層おきに、分割領域がこの深さに制限されます。「interlocking_beam」が有効な場合は無視されます。0にすると、この機能は無効になります。"
msgid "Use beam interlocking"
msgstr "インターロックビームを使用する"
@@ -16879,11 +18175,11 @@ msgstr "壁面高さ最小化の角度"
# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"上面の外周の高さを下げて、モデルの縁の高さに合わせます。\n"
-"この角度 (度) 未満の傾斜を持つ外周に影響します。\n"
+"この角度 (度) を超える傾斜を持つ外周に影響します。\n"
"35程度が妥当な値です。0にすると無効になります。"
# AI Translated
@@ -16967,17 +18263,21 @@ msgstr "最大速度 Z"
msgid "Maximum speed E"
msgstr "最大速度 E"
-msgid "Maximum X speed"
-msgstr "最大速度 X"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "X軸の最大速度"
-msgid "Maximum Y speed"
-msgstr "最大速度 Y"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Y軸の最大速度"
-msgid "Maximum Z speed"
-msgstr "最大速度 Z"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Z軸の最大速度"
-msgid "Maximum E speed"
-msgstr "最大速度 E"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "E軸の最大速度"
msgid "Maximum acceleration X"
msgstr "最大加速度 X"
@@ -17529,7 +18829,7 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "このプリセットが参照するプラグイン機能で、name;uuid;capability の形式で保存されます。"
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr "スライスパイプラインの各ステップで呼び出され、中間のスライスデータを読み取り・変更するPythonプラグインです。最終的なG-codeの後処理ステップも含みます。研究/実験用です。"
msgid "Printer type"
@@ -17938,8 +19238,8 @@ msgid "Use scarf joint for inner walls as well."
msgstr "内壁にも斜め継ぎ目を使用"
# AI Translated
-msgid "Role base wipe speed"
-msgstr "ロール基準のワイプ速度"
+msgid "Role based wipe speed"
+msgstr "ロール基準の拭き上げ速度"
# AI Translated
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -18043,13 +19343,11 @@ msgstr "保護シールド"
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"保護シールドは、ABSやASAの印刷物が風によって反ったりベッドから剥がれたりするのを防ぐのに役立ちます。通常はエンクロージャーのないオープンフレームのプリンターでのみ必要です。\n"
"\n"
-"有効 = スカートは最も高い印刷オブジェクトと同じ高さになります。それ以外の場合は「スカートの高さ」が使用されます。\n"
-"注意: 保護シールドが有効な場合、スカートはオブジェクトからスカート距離だけ離して印刷されます。そのため、ブリムが有効だと交差する可能性があります。これを避けるには、スカート距離の値を大きくしてください。\n"
+"有効 = スカートは最も高い印刷オブジェクトと同じ高さになります。それ以外の場合は「スカートの高さ」が使用されます。"
msgid "Enabled"
msgstr "有効"
@@ -18187,6 +19485,7 @@ msgid "Farthest point timelapse"
msgstr "最遠点タイムラプス"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "When enabled, the timelapse snapshot is taken at the farthest point from camera instead of traveling to the wipe tower or excess chute. Only effective in traditional timelapse mode on non-I3 printers."
msgstr "有効にすると、ワイプタワーや排出シュートへ移動する代わりに、カメラから最も遠い点でタイムラプスのスナップショットを撮影します。I3系以外のプリンターの従来型タイムラプスモードでのみ有効です。"
@@ -18237,6 +19536,130 @@ msgstr "シングルエクストルーダー・マルチマテリアル"
msgid "Use single nozzle to print multi filament."
msgstr "1つのノズルで複数のフィラメントを印刷します。"
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "IDEX/IQEXプリンター"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "複数の独立したキャリッジを持つプリンター (IDEX、IQEXなど) で並列印刷を有効にします。"
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "ファームウェア管理のゾーン"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "有効にすると、スライサーはプライマリゾーンの内容をベッド原点 (0,0) を中心に配置したG-codeを出力します。各物理ゾーン位置へのコピー/ミラーの配置はプリンターのファームウェアが行います。コピー/ミラーモードでファームウェアが独自のゾーンオフセットを適用するプリンター (例: RepRapFirmwareのIDEX複製モード) でのみ有効にしてください。プライマリ (Primary) モードでは効果がありません。"
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "ガントリー数"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "独立したY軸ガントリーの数です。IDEX/シングルレールIQEXでは1、デュアルガントリーシステムでは2 (ベッドを行に分割) です。"
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "ガントリーあたりのツール数"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "X方向に並ぶ、ガントリーあたりの独立したツールヘッドの数です。IDEX方式では2です。"
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "ツール0の位置"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "ツールT0 (インデックス0) が配置されているベッド上の物理的な位置です。ツールのインデックスとベッドのゾーンの対応を決定します。シングルガントリー構成 (IDEX) では左右のみが関係し、デュアルガントリー構成 (IQEX) では4隅すべてを選択できます (前 = Yが小さい側 / オペレーター側、後ろ = Yが大きい側 / マシンの奥)。"
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "ノズルクリアランスX"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "X方向における、ノズルから衝突側のキャリッジ端までの距離 (mm) です。各X境界での衝突除外帯の幅の計算に使用されます。"
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "ノズルクリアランスY"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Y方向における、ノズルから衝突側のキャリッジ端までの距離 (mm) です。各Y境界での衝突除外帯の幅の計算に使用されます。"
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "安全マージン"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "各キャリッジ境界でプライマリゾーンの内側に描画される、配置を妨げない注意喚起用のクリアランス帯 (mm) です。この帯の内側に置かれたパーツもスライスされます。ゾーンの端付近に余分なクリアランスを残すための視覚的な目安です。"
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "表示テーマ"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "IDEX/IQEXのベッドゾーン表示に使用するカラーテーマです。必要に応じて、色覚特性に配慮したテーマを選択してください。"
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "2型色覚 / 1型色覚 (赤緑)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "3型色覚 (青黄)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "ハイコントラスト"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "IDEX/IQEX印刷モード"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "有効なIDEX/IQEX並列印刷モードの名前、または単一キャリッジでの印刷の場合は \"primary\" です。プリンタープリセットで「IDEX/IQEXプリンター」が有効になっている必要があります (プリンター → マルチマテリアル → IDEX/IQEX設定)。"
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "IDEX/IQEXヘッドのフィラメントマップ"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "物理ヘッドをフィラメントスロットに対応付ける、プレートごとのオーバーライドです (1始まり)。空の場合、各ヘッドはプリンターの物理押出機マップが割り当てる最初のフィラメントを使用します。"
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "IDEX/IQEXモード名"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "ユーザー定義の各IDEX/IQEX並列印刷モードの表示名です。"
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "IDEX/IQEXモードの有効なツール"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "各モードのツールの役割の割り当てです。形式: \"idx:P,idx:C,idx:M\" (P=プライマリ (Primary)、C=コピー (Copy)、M=ミラー (Mirror)、例: \"0:P,1:C,2:M,3:M\")。プリンタープリセットのIDEX/IQEXモードエディターで管理されます。"
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "IDEX/IQEXモードのG-code"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "各モードで印刷開始時に挿入するG-codeまたはマクロ呼び出しです。"
+
# AI Translated
msgid "Manual Filament Change"
msgstr "手動フィラメント交換"
@@ -18249,6 +19672,7 @@ msgid "Wipe tower type"
msgstr "ワイプタワータイプ"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "Choose the wipe tower implementation for multi-material prints. Type 1 is recommended for Bambu and Qidi printers with a filament cutter. Type 2 offers better compatibility with multi-tool and MMU printers and provide overall better compatibility."
msgstr "マルチマテリアル印刷でのワイプタワーの実装方式を選択します。フィラメントカッターを備えたBambuおよびQidiのプリンターにはタイプ1をおすすめします。タイプ2はマルチツールおよびMMUプリンターとの互換性が高く、全体的により良い互換性が得られます。"
@@ -18259,10 +19683,12 @@ msgid "Type 2"
msgstr "タイプ2"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "Purge in prime tower"
msgstr "プライムタワーでフラッシュ"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "Purge remaining filament into prime tower."
msgstr "残ったフィラメントをプライムタワーにフラッシュします。"
@@ -18270,18 +19696,22 @@ msgid "Enable filament ramming"
msgstr "フィラメントラミングを有効にする"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "Tool change on wipe tower"
msgstr "ワイプタワー上でツール交換"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
msgstr "ツール交換コマンド (Tx) を発行する前に、ツールヘッドを強制的にワイプタワーへ移動させます。タイプ2のワイプタワーを使用するマルチ押出機 (マルチツールヘッド) プリンターにのみ関係します。デフォルトでは、マルチツールヘッド機ではファームウェアがヘッドの交換を処理するためOrcaは移動をスキップしますが、その結果Txコマンドが造形物の上で発行される場合があります。ツール交換を常にワイプタワーの上で発行したい場合は、このオプションを有効にしてください。"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "Wait for temperature on wipe tower"
msgstr "ワイプタワーで温度待機"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
msgstr "印刷温度に達するのを待たずに新しいツールを取り付け、ワイプタワーへ移動し、パージ直前にそこで温度を待ちます。加熱中の垂れ出しはモデルではなくタワーに落ち、移動時間が加熱と重なります。タイプ 2 のワイプタワーを使用するマルチ押出機 (マルチツールヘッド) プリンターでのみ有効です。ファームウェアやツール交換マクロ側で温度待機を行わないようにしてください。無効の場合、温度待機はツール交換コマンドの直後に出力されます。"
@@ -18290,6 +19720,7 @@ msgid "No sparse layers (beta)"
msgstr "スパース層なし (ベータ)"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower, so the tower ends up below the model and the toolhead has to reach down to it. Layouts where that would collide with an already printed object are rejected. Has no effect with smooth timelapse or clumping detection, which need a tower on every layer."
msgstr "有効にすると、ツール交換のない積層ではワイプタワーを造形しません。ツール交換のある積層では押出機が下降してワイプタワーを造形するため、タワーはモデルより下に位置し、ツールヘッドがそこまで下りる必要があります。造形済みのオブジェクトと衝突するような配置は拒否されます。全積層にタワーが必要なスムーズタイムラプスやノズル付着検出では効果がありません。"
@@ -18298,6 +19729,7 @@ msgid "Combine sparse layers"
msgstr "スパース層を結合"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid ""
"If enabled, consecutive layers on which the prime tower has no filament change are printed as a single thicker tower layer instead of one thin layer each, the same way infill combination merges sparse infill. The merged layer is printed at the top of the run, at the height of everything it covers.\n"
"\n"
@@ -18618,6 +20050,7 @@ msgid "Independent support layer height"
msgstr "独立サポート層ピッチ"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "Support layer uses layer height independent with object layer. This is to support customizing Z-gap and save print time. This option will be invalid when the prime tower is enabled."
msgstr "サポート層はオブジェクトの層とは独立した積層ピッチを使用します。これはZ隙間のカスタマイズと印刷時間の短縮のためです。プライムタワーが有効な場合、このオプションは無効になります。"
@@ -18637,6 +20070,170 @@ msgstr "閾値の重複"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "しきい値角度がゼロの場合、オーバーラップがしきい値を下回るオーバーハングに対してサポートが生成されます。この値が小さいほど、サポートなしで印刷できるオーバーハングの角度が急になります。"
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "ベッド傾斜X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "X軸方向のベッドの傾斜角度です。正の値では+X側が高くなるようにベッドを傾け、重力が-X方向に移るため+X側のオーバーハングが増えます。負の値では-X側が高くなります。X軸方向に傾けない場合は0に設定します。ベルトプリンターモードでは、ベルトの角度と自動的に同期されます。"
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "ベッド傾斜Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Y軸方向のベッドの傾斜角度です。正の値では+Y側が高くなるようにベッドを傾け、重力が-Y方向に移るため+Y側のオーバーハングが増えます。負の値では-Y側が高くなります。Y軸方向に傾けない場合は0に設定します。"
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "ベルト印刷を有効にする"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "ベルトプリンターモードを有効にします。ベルトプリンターは、ある角度 (通常は45度) に傾けたコンベアベルトを造形面として使用します。スライサーは傾いた造形面に合わせて、スライス平面を回転させ、G-code座標を変換します。"
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "無限Y軸"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "ベルトプリンターで無限Y軸を有効にします。有効にすると、Y軸方向のビルドボリュームの制限が実質的になくなり、ベルト方向に任意の長さのオブジェクトを印刷できます。"
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "ベルト傾斜軸"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "スライス前にメッシュを回転させる軸です。これはベルトプリンターの傾斜で、歪みのない等長回転です。ベッドの描画とサポートの重力方向の傾斜にも使用され、G-codeの逆変換では、機械座標系のせん断/スケールとリマップの前にこの回転が元に戻されます。一般的なガントリーの傾斜はXです (ベルトはY方向に移動)。"
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "ベルト傾斜角度"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "ベルト面の傾斜角度 (度) です。ほとんどのベルトプリンターは45°を使用します。正の値では、正の傾斜軸に沿って見たときに反時計回りに回転します。この値の大きさは、ベッドの描画とサポートの重力方向に使用される物理的なベルトの傾斜でもあります。"
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "機械座標系の傾斜を分離"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "エキスパート向けの上書き設定: 機械座標系 (G-codeのせん断/スケール) の傾斜角度を、スライス前の回転角度とは独立して設定します。無効の場合、機械座標系の変換はベルト傾斜角度から導出されるため、1つの角度で両方の段階を制御します。物理的なガントリーの傾斜がスライス時の回転と異なるマシンを補正する場合にのみ有効にしてください。"
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "機械座標系の傾斜角度"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "G-codeに適用する機械座標系のせん断 (cot) とスケール (1/|sin|) を導出するための傾斜角度 (度) です。「機械座標系の傾斜を分離」が有効な場合にのみ使用され、それ以外の場合はベルト傾斜角度が使用されます。"
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+# Needs human review: G-code remap option; 'Rev' means reversed (max - pos), distinct from the -X option. Check the dropdown reads clearly.
+msgid "Rev X"
+msgstr "反転X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "反転Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "反転Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "G-codeリマップX"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "G-code出力でマシンのXに対応付けるスライス軸です。スライスの「後」、G-code生成時に適用されます。"
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "G-codeリマップY"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "G-code出力でマシンのYに対応付けるスライス軸です。スライスの「後」、G-code生成時に適用されます。"
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "G-codeリマップZ"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "G-code出力でマシンのZに対応付けるスライス軸です。スライスの「後」、G-code生成時に適用されます。"
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "サポート床面Zオフセット"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "計算されたベルト床面を上下に移動します (mm)。負の値では床面が下がり、より多くのサポートが残ります。ベルト床面の計算式の問題を診断する際に使用します。"
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "ベルトパージタワーを有効にする"
+
+# AI Translated
+# Needs human review: Glossary cell for Prime tower / Wipe tower is unsettled; 'wipe/prime tower' and 'wipe tower' rendered as プライムタワー
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "ベルトプリンター用のプライムタワーの代替です。ベルトプリンターで有効にすると、印刷するパーツの横にパージ用の角柱が自動生成され、フィラメント交換時のフラッシュはそこで行われます (従来のプライムタワーはG-codeがベルト変換を経由しないため、ベルトプリンターでは使用できません)。ベルトプリンターでのみ使用できます。"
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "ベルトパージタワーの幅"
+
+# AI Translated
+# Needs human review: Glossary cell for Prime tower / Wipe tower is unsettled; 'classic wipe tower' rendered as 従来のプライムタワー
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "ベルトパージタワーが有効で複数のフィラメントを使用する場合に、ベルトプリンターで自動生成されるパージ用の角柱の幅 (マシンのX方向、ベルトを横切る方向) です。フィラメント交換時のフラッシュは、従来のプライムタワーではなくこの角柱の押し出しで行われます。高さは積層ごとの最大フラッシュ量から自動的に計算され、角柱を広くするほど低くなります。"
+
msgid "Tree support branch angle"
msgstr "ツリーサポート枝アングル"
@@ -18829,13 +20426,11 @@ msgstr "インフィルを個別に配置"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
"各パーツの内部インフィルを、アセンブリ全体ではなく、そのパーツ単体でスライスした場合のようにパーツ自身の中心に合わせます。接触または重なっているパーツは1つの本体として扱われ、中心を共有します。分離したパーツ (または別々の3Dオブジェクト) はそれぞれ独自の中心を持ちます。\n"
"アセンブリが複数のオブジェクトをまとめており、それぞれに一貫した自己中心のインフィルを保ちたい場合に便利です。\n"
-"直線およびグリッドのパターンと、回転テンプレートのインフィルに影響します。\n"
-"グローバル座標に固定されたパターン (ジャイロイド、ハニカム、TPMSなど) は影響を受けません。"
+"アダプティブ キュービックとキュービックサポートは常に各パーツをそれ自身の中心に合わせます。ライトニングインフィルはオブジェクト全体に対して生成されるため、影響を受けません。"
# AI Translated
msgid "Center surface pattern on"
@@ -18901,6 +20496,7 @@ msgid "Enable mixed color sublayer splitting. When enabled, layers containing mi
msgstr "混色サブレイヤーへの分割を有効にします。有効にすると、混色フィラメントを含む積層がサブレイヤーに分割され、色を混ぜる効果が得られます。"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects."
msgstr "ワイプタワーは、ノズルに残った樹脂を除去し、ノズル内のチャンバー圧力を安定させることで、オブジェクト印刷時の外観不良を防ぐために使用できます。"
@@ -18938,6 +20534,7 @@ msgid "Prime volume mode"
msgstr "プライム容量モード"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "Selects how the wipe-tower prime and flush volumes are computed on multi-extruder printers."
msgstr "マルチ押出機プリンターで、ワイプタワーのプライム量とフラッシュ量をどのように計算するかを選択します。"
@@ -18968,45 +20565,48 @@ msgid "Angle at the apex of the cone that is used to stabilize the wipe tower. L
msgstr "ワイプタワーを安定させるために使用される円錐の頂点の角度。角度が大きいと底面が広くなります。"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "Maximum wipe tower print speed"
msgstr "ワイプタワーの最大印刷速度"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
"ワイプタワーでのパージ時、およびワイプタワーのスパース層を印刷する際の最大印刷速度です。パージ時に、スパース インフィル速度やフィラメントの最大体積速度から計算された速度の方が低い場合は、最も低い速度が使用されます。\n"
"\n"
-"スパース層の印刷時に、内周速度やフィラメントの最大体積速度から計算された速度の方が低い場合は、最も低い速度が使用されます。\n"
+"スパース層の印刷時に、スパース インフィル速度やフィラメントの最大体積速度から計算された速度の方が低い場合は、最も低い速度が使用されます。\n"
"\n"
"この速度を上げるとタワーの安定性に影響する可能性があり、ワイプタワーにできたブロブにノズルが衝突する際の力も大きくなります。\n"
"\n"
"このパラメータをデフォルトの90 mm/sより大きくする前に、上げた速度でもプリンターが安定してブリッジでき、ツール交換時の垂れ出しが十分に制御できていることを確認してください。\n"
"\n"
-"ワイプタワーの外周には、この設定に関わらず内周の速度が使用されます。"
+"ワイプタワーの外周には内周の速度が使用され、この設定による上限も受けます。"
msgid "Wall type"
msgstr "壁タイプ"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"ワイプタワーの外壁タイプです。\n"
-"1. 長方形: デフォルトの壁タイプで、幅と高さが固定された長方形です。\n"
+"1. 長方形: 幅と高さが固定された長方形です。\n"
"2. コーン: 底部にフィレットを持つ円錐形で、ワイプタワーの安定に役立ちます。\n"
-"3. リブ: タワーの壁に4本のリブを追加して安定性を高めます。"
+"3. リブ: デフォルトの壁タイプで、タワーの壁に4本のリブを追加して安定性を高めます。"
msgid "Rectangle"
msgstr "長方形"
@@ -19031,6 +20631,7 @@ msgid "Fillet wall"
msgstr "フィレット壁"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "The wall of prime tower will fillet."
msgstr "プライムタワーの壁にフィレットを付けます。"
@@ -19047,6 +20648,7 @@ msgid "Skip points"
msgstr "スキップポイント"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "The wall of prime tower will skip the start points of wipe path."
msgstr "プライムタワーの壁は、ワイプパスの開始点をスキップします。"
@@ -19054,6 +20656,7 @@ msgid "Enable tower interface features"
msgstr "タワーインターフェース機能を有効にする"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "Enable optimized prime tower interface behavior when different materials meet."
msgstr "異なる材料が接する際のプライムタワーのインターフェース動作を最適化します。"
@@ -19061,6 +20664,7 @@ msgid "Cool down from interface boost during prime tower"
msgstr "プライムタワー中のインターフェースブーストからの冷却"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "When interface-layer temperature boost is active, set the nozzle back to print temperature at the start of the prime tower so it cools down during the tower."
msgstr "インターフェース層の温度ブーストが有効な場合、プライムタワーの開始時にノズルを印刷温度に戻し、タワーの印刷中に冷えるようにします。"
@@ -19074,12 +20678,21 @@ msgid "Purging after filament change will be done inside objects' infills. This
msgstr "廃料をオブジェクトのインフィルに使用されます。フィラメントの廃料が減り、造形時間も短縮できます。ただ、壁面の色が透明又は薄い場合は中の色が見えてしまう可能性があります。"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "プライムタワー"; align it once the term is settled.
msgid "Purging after filament change will be done inside objects' support. This may lower the amount of waste and decrease the print time. It will not take effect unless a prime tower is enabled."
msgstr "フィラメント交換後のパージをオブジェクトのサポート内で行います。廃棄量が減り、造形時間も短縮できます。プライムタワーが有効な場合にのみ機能します。"
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "このオブジェクトは廃料で造形されます。時間とフィラメントの節約として有効的ですが、色の指定ができなくなります。プライムタワーが有効になる場合、この設定が無効になります。"
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "ベルトパージタワーオブジェクト"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "自動生成されたベルトのパージ用角柱を示します。自動的に管理されるため、手動で設定しないでください。"
+
msgid "Maximal bridging distance"
msgstr "ブリッジ最大距離"
@@ -19095,8 +20708,10 @@ msgstr "ワイプタワーのパージラインの間隔。"
msgid "Extra flow for purging"
msgstr "パージ用の余分の量"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "ワイプタワーのパージラインで使用される余分の量。 これによって、パージラインが通常よりも太くなったり、細くなったりします。 間隔は自動的に調整されます。"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "ワイプタワーのパージラインで使用される余分の量。 これによって、パージラインが通常よりも太くなります。 間隔は自動的に調整されます。"
msgid "Idle temperature"
msgstr "アイドリング温度"
@@ -19183,6 +20798,7 @@ msgid "Use relative E distances"
msgstr "相対E距離を使用"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "Relative extrusion is recommended when using \"label_objects\" option. Some extruders work better with this option unchecked (absolute extrusion mode). Wipe tower is only compatible with relative mode. It is recommended on most printers. Default is checked."
msgstr "「label_objects」オプションを使用する場合は相対押出をおすすめします。押出機によっては、このオプションのチェックを外した方 (絶対押出モード) がうまく動作します。ワイプタワーは相対モードにのみ対応しています。ほとんどのプリンターで推奨されます。デフォルトはチェックありです。"
@@ -19232,13 +20848,13 @@ msgstr "最小壁長さ"
# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"短く閉じていない壁が印刷されて印刷時間が増えるのを防ぐため、この値を調整します。値を大きくすると、より多くの、より長い壁が取り除かれます。\n"
+"短く閉じていない壁が印刷されて印刷時間が増えるのを防ぐため、この値を調整します。値は壁幅の倍数です。値を大きくすると、より多くの、より長い壁が取り除かれます。\n"
"\n"
-"注意: モデル外側に視覚的な隙間が生じるのを防ぐため、底面と上面はこの値の影響を受けません。上面と見なす判定の感度は、下の詳細設定にある「1本壁のしきい値」で調整してください。「1本壁のしきい値」は、この設定がデフォルト値の0.5より大きい場合、または上面1本壁が有効な場合にのみ表示されます。"
+"注意: モデル外側に視覚的な隙間が生じるのを防ぐため、底面と上面はこの値の影響を受けません。上面と見なす判定の感度は、下の「壁と表面」の設定にある「1壁しきい値」で調整してください。「1壁しきい値」は、この設定がデフォルト値の0.5より大きい場合、または「トップ面に1層」が有効な場合にのみ表示されます。"
# AI Translated
msgid "Maximum wall resolution"
@@ -19253,7 +20869,7 @@ msgid "Maximum wall deviation"
msgstr "最大壁偏差"
# AI Translated
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
msgstr "「最大壁解像度」設定で解像度を下げる際に許容される最大偏差です。これを大きくすると印刷の精度は下がりますが、G-Codeは小さくなります。「最大壁偏差」は「最大壁解像度」を制限するため、両者が競合する場合は「最大壁偏差」が優先されます。"
# AI Translated
@@ -19351,8 +20967,11 @@ msgstr "ブリッジのライン幅はノズル径を超えてはいけません
msgid "too large line width "
msgstr "線幅が大きすぎます"
-msgid " not in range "
-msgstr "範囲外 "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1%が範囲[%2%, %3%]外です"
msgid "This exports the project as a 3MF file."
msgstr "プロジェクトを3MF式で出力"
@@ -19519,6 +21138,14 @@ msgstr "方向オプション"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "方向オプション: 0-無効、1-有効、その他-自動"
+# AI Translated
+msgid "Repair"
+msgstr "修復"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "「モデルを修復」と同様にモデルのメッシュを修復します。穴や隙間を閉じ、メッシュを外向きに揃え、自己交差を取り除きます。"
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Z軸周りの回転角度(度)。"
@@ -19640,6 +21267,12 @@ msgstr "出力先フォルダ"
msgid "This is the output directory for exported files."
msgstr "エクスポートの出力先フォルダです。"
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "デバッグ レベル"
@@ -19833,6 +21466,56 @@ msgstr "シングルエクストルーダーのMMプライミングあり"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "このプリントでは追加のマルチマテリアルプライミング領域が使用されていますか?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "サポートなしの最初の押出機"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "サポートなしで印刷する際に最初に使用する押出機の、0から始まるインデックスです。initial_no_support_toolと同じです。"
+
+# AI Translated
+# Needs human review: Placeholder name; 'head wrap' is the filament wrapping around the toolhead and has no established Japanese term in the catalog. Check the wording.
+msgid "In head wrap detect zone"
+msgstr "ヘッドラップ検出ゾーン内"
+
+# AI Translated
+# Needs human review: 'Head wrap' has no established Japanese term in the catalog; check the wording.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "最初の積層がヘッドラップ検出ゾーンと重なっているかどうかを示します。"
+
+# AI Translated
+msgid "Current bed type"
+msgstr "現在のベッドタイプ"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "現在選択されているベッドプレートタイプの名前です (例: 'Textured PEI Plate'、'Smooth High Temp Plate')。"
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "IDEX/IQEXのアクティブモード"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "このプレートで有効なIDEX/IQEX並列印刷モードの名前です (例: 'primary'、'mirror'、'copy')。IDEX/IQEXが有効でない場合は空文字列です。"
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "IDEX/IQEXのアクティブモードのインデックス"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "imex_mode_names内での、アクティブなIDEX/IQEX並列印刷モードの0から始まるインデックスです。"
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "IDEX/IQEXのアクティブモードG-code"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "プレースホルダー評価後の、アクティブなIDEX/IQEX並列印刷モードの未加工のモードG-codeテンプレートです。ここで定義されたグローバル変数はmachine_start_gcodeに引き継がれます。"
+
msgid "Volume per extruder"
msgstr "エクストルーダーあたりの体積"
@@ -19895,6 +21578,7 @@ msgid "Total wipe tower cost"
msgstr "ワイプタワーのトータルコスト"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
msgid "Total cost of the material wasted on the wipe tower. Calculated from filament_cost value in Filament Settings."
msgstr "ワイプタワーで無駄になる材料の総コストです。フィラメント設定のfilament_cost値から計算されます。"
@@ -19986,6 +21670,18 @@ msgstr "拡張子を除いたファイル名を入力。"
msgid "Source filename of the first object, without extension."
msgstr "最初のオブジェクトのソース ファイル名(拡張子を除く)。"
+# AI Translated
+msgid "Full input filename"
+msgstr "入力ファイル名 (完全)"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "最初のオブジェクトのソース ファイル名。"
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "スライスしたプレートの名前。"
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "ベクトルには、点の x 座標と y 座標という 2 つの要素があります。 値は mm 単位です。"
@@ -20017,6 +21713,59 @@ msgstr "プリント ベッド境界ボックスの右上隅"
msgid "Size of the print bed bounding box"
msgstr "プリントベッド境界ボックスのサイズ"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "ワイプタワー"; align it once the term is settled.
+msgid "First layer center without wipe tower"
+msgstr "ワイプタワーを除いた1層目の中心"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "1層目の高さです。"
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "各押出機/フィラメントのベッド温度のベクトルです。"
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "各押出機/フィラメントの1層目ベッド温度のベクトルです。first_layer_bed_temperatureと同じ値を返します。"
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "1層目ベッド温度 (初期押出機)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "初期押出機の1層目ベッド温度です。bed_temperature_initial_layer[initial_extruder]と同じ"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "各押出機/フィラメントの庫内温度のベクトルです。"
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "各押出機/フィラメントの最低庫内温度のベクトルです。"
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "全体の庫内温度"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "全体の庫内温度です。この値は、使用するすべての押出機/フィラメントのうち最大の庫内温度です。"
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "各押出機/フィラメントの1層目ベッド温度のベクトルです。bed_temperature_initial_layerと同じ値を返します。"
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "1層目の温度"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "各押出機/フィラメントの1層目の温度のベクトルです。"
+
msgid "Timestamp"
msgstr "タイムスタンプ"
@@ -20063,8 +21812,8 @@ msgid "Layer number"
msgstr "レイヤーナンバー"
# AI Translated
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "現在の層のインデックスです。1から始まります (つまり1層目は1です)。"
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "現在の積層のインデックスです。0始まり (つまり最初の積層は0番) ですが、押出ロール変更G-codeでは1始まりです。"
msgid "Layer Z"
msgstr "レイヤーZ"
@@ -20086,6 +21835,252 @@ msgstr "フィラメントの押出機ID"
msgid "The current extruder ID. The same as current_extruder."
msgstr "現在の押出機IDです。current_extruderと同じです。"
+# AI Translated
+msgid "Previous extruder"
+msgstr "前の押出機"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "アンロード中の押出機のインデックスです。インデックスは0から始まります (最初の押出機のインデックスは0)。"
+
+# AI Translated
+msgid "Next extruder"
+msgstr "次の押出機"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "ロード中の押出機のインデックスです。インデックスは0から始まります (最初の押出機のインデックスは0)。"
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "相対E軸"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "相対位置指定が使用されているかどうかを示します。"
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "ツール交換回数"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "印刷全体でのツール交換の回数です。"
+
+# AI Translated
+msgid "Old retract length"
+msgstr "旧リトラクション量"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "前のフィラメントのリトラクション量です。"
+
+# AI Translated
+msgid "New retract length"
+msgstr "新リトラクション量"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "新しいフィラメントのリトラクション量です。"
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "旧リトラクション量 (ツール交換)"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "前のフィラメントのツール交換時のリトラクション量です。"
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "新リトラクション量 (ツール交換)"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "新しいフィラメントのツール交換時のリトラクション量です。"
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "旧フィラメント温度"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "前のフィラメントの温度です。"
+
+# AI Translated
+msgid "New filament temp"
+msgstr "新フィラメント温度"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "新しいフィラメントの温度です。"
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "ツール交換後のX"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "ツール交換後のX位置です。"
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "ツール交換後のY"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "ツール交換後のY位置です。"
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "ツール交換後のZ"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "ツール交換後のZ位置です。"
+
+# AI Translated
+msgid "First flush volume"
+msgstr "最初のフラッシュ量"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "最初のフラッシュ量です。"
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "2番目のフラッシュ量"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "2番目のフラッシュ量です。"
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "旧フィラメントのEフィードレート"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "前のフィラメントの押出機フィードレートです。"
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "新フィラメントのEフィードレート"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "新しいフィラメントの押出機フィードレートです。"
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "移動ポイント1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "移動ポイント1のX座標です。"
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "移動ポイント1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "移動ポイント1のY座標です。"
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "移動ポイント2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "移動ポイント2のX座標です。"
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "移動ポイント2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "移動ポイント2のY座標です。"
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "移動ポイント3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "移動ポイント3のX座標です。"
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "移動ポイント3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "移動ポイント3のY座標です。"
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "フラッシュ長さ 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "最初のフラッシュ長さです。"
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "フラッシュ長さ 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "2番目のフラッシュ長さです。"
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "フラッシュ長さ 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "3番目のフラッシュ長さです。"
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "フラッシュ長さ 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "4番目のフラッシュ長さです。"
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "押出ロール"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"これから使用される新しい押出ロール/タイプ\n"
+"指定可能な値:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "直前の押出ロール"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"直前に使用された押出ロール/タイプ\n"
+"指定可能な値:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "ファイル圧縮にエラー発生"
@@ -20098,24 +22093,32 @@ msgstr "インフィル領域を生成"
msgid "Generating infill toolpath"
msgstr "インフィルパスを生成"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z輪郭処理済みの積層 %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "オーバーハング自動検出"
msgid "Checking support necessity"
msgstr "サポートの必要性を確認"
-msgid "floating regions"
-msgstr "浮動領域"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "オブジェクト%1%に浮いた領域があるようです。オブジェクトの向きを変更するか、サポート生成を有効にしてください。"
-msgid "floating cantilever"
-msgstr "浮動片持ち梁"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "オブジェクト%1%に宙に浮いた片持ち部があるようです。オブジェクトの向きを変更するか、サポート生成を有効にしてください。"
-msgid "large overhangs"
-msgstr "大きなオーバーハング"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "オブジェクト %s に %s があるようです。オブジェクトの向きを変更するか、サポート生成を有効にしてください。."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "オブジェクト%1%に大きなオーバーハングがあるようです。オブジェクトの向きを変更するか、サポート生成を有効にしてください。"
msgid "Generating support"
msgstr "サポートを生成"
@@ -20126,8 +22129,9 @@ msgstr "ツールパスを最適化"
msgid "Slicing mesh"
msgstr "メッシュをスライス中"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "レイヤーが検出されませんでした。STLファイルを修正するか、サイズや厚さを確認して再試行してください。\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "積層が検出されませんでした。モデルを修復するか、サイズや厚さを確認して再試行してください。\n"
# AI Translated
msgid ""
@@ -20147,6 +22151,397 @@ msgstr ""
msgid "Object name"
msgstr "オブジェクト名"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "単項マイナス演算子を適用できません。"
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "整数に変換できません。"
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "数値以外の値は四捨五入できません。"
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "数値以外の値は切り捨てできません。"
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "数値以外の値は切り上げできません。"
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "not演算子を適用できません。"
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "数値以外の型は加算できません。"
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "数値以外の型は減算できません。"
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "数値以外の型との乗算はできません。"
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "数値以外の型は除算できません。"
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "数値以外の型での除算はできません。"
+
+# AI Translated
+msgid "Division by zero"
+msgstr "ゼロ除算"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "ブール式ではありません"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "型を比較できません。"
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "数値型ではありません。"
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: 2番目のパラメータは整数でなければなりません"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: 3番目のパラメータは整数でなければなりません"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "正規表現マッチの左辺は文字列でなければなりません。"
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "正規表現のコンパイルに失敗しました: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "regex_replace()の最初のパラメータは文字列でなければなりません。"
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): 最初のパラメータ (照合対象の文字列) は文字列値でなければなりません"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): パターンは文字列値でなければなりません"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "正規表現のコンパイルに失敗しました"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "論理演算を非ブールのオペランドに適用できません。"
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "スカラー変数にインデックスを指定しようとしました"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "無効なベクトルインデックス"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "変数が存在しません (非アクティブな分岐内)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "変数が存在しません"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "未定義 (nil) のオプション変数を参照しようとしました"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "空のベクトル変数にインデックスを指定しています"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "オプション値ベクトルの未定義 (nil) の要素を参照しようとしました"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "インデックスに使う変数は整数でなければなりません"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "負のベクトルインデックス"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "変数名ではありません"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "変数名ではありません (非アクティブな分岐内)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "FloatOrPercent変数が\"ratio_over\"の依存関係を解決できませんでした"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "サポートされていないスカラー変数の型です"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "スカラーが期待される箇所でベクトル変数を参照しています"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "サポートされていないベクトル変数の型です"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "読み取り専用の変数は変更できません"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "右辺が数式ではありません"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "ベクトルを埋める要素数が必要です。"
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "要素数に負の値が指定されました。"
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "右辺がブール式ではありません"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "サポートされていない出力スカラー変数の型です"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "スカラーが期待される箇所で出力ベクトル変数を参照しています"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "インデックスが範囲外です"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "サポートされていない出力ベクトル変数の型です"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "シンボルは読み取り専用のシステム辞書に既に定義されています"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "シンボルはシステム出力変数として既に定義されています"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "グローバル変数はこのコンテキストでは使用できません"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "変数名はローカルスコープで既に定義されています"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "変数名はグローバルスコープで既に定義されています"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "ベクトル変数にスカラー値を代入できません。"
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "スカラー変数にベクトル値を代入できません。"
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "型を推定できないため、空の初期化子リストからベクトル変数を作成できません。"
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "右辺が無効です: 数値型とブール型が混在しています。"
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "ベクトルにスカラーを代入できません"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "オプション値の右辺ベクトル変数の一部の要素が未定義 (nil) です"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "左辺はfloatベクトルですが、右辺は違います。"
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "左辺はintベクトルですが、右辺は違います。"
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "左辺は文字列ベクトルですが、右辺は違います。"
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "左辺はboolベクトルですが、右辺は違います。"
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "左辺と右辺のベクトルに互換性がありません。"
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "この型のベクトル変数の複製はサポートされていません"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "empty()のパラメータがベクトル変数ではありません"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "size()のパラメータがベクトル変数ではありません"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "ベクトル変数のアドレス指定に整数以外のインデックスは使用できません。"
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "乱数生成器はこのコンテキストでは使用できません。"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "%1%行目の解析エラー: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "%1%行目の解析エラー。タグ%2%が必要です"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "%1%行目の解析エラー。%2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "補間値は数値でなければなりません。"
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "テーブルポイントのX値は数値でなければなりません。"
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "テーブルポイントのY値は数値でなければなりません。"
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "テーブルのX座標は昇順でなければなりません"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "補間値がテーブルの範囲外です"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "不明な構文エラー"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "テキストが無効です。"
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "テキストブロックが無効です。"
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "マクロが無効です。"
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "{if}{else}{endif}マクロではありません。"
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "{switch}マクロではありません。"
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "従来形式の変数展開が必要です"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "識別子が必要です。"
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "条件式が必要です。"
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "ブール式が必要です。"
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "式が必要です。"
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "閉じ波括弧またはオプションのパラメータが必要です。"
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "文字列パターン (単純なテキストまたは正規表現) のリストが必要です"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "変数参照が必要です。"
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "変数名が必要です。"
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "正規表現が必要です。"
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "無効なutf8シーケンス"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "ASCII7以外の文字は、テキストブロックと文字列リテラルの内部でのみ使用でき、コードブロック内では使用できません。"
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "無効なエスケープシーケンス"
+
msgid "Support: generate contact points"
msgstr "サポート: 接触点を生成"
@@ -20163,6 +22558,10 @@ msgstr "提供されたファイルは空であるため読み込めませんで
msgid "The file format is incompatible and cannot be parsed."
msgstr "ファイル形式に互換性がないため、解析できません。"
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "ModelIO経由でアセットをSTLに変換できませんでした。"
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "ファイル形式が不明です。入力ファイルの拡張子は .stl、.obj、.amf(.xml)である必要があります。"
@@ -20211,9 +22610,6 @@ msgstr "再キャリブレーション"
msgid "Calibrate"
msgstr "キャリブレーション"
-msgid "Finish"
-msgstr "完了"
-
msgid "How can I use calibration results?"
msgstr "キャリブレーション結果をどのように活用できますか?"
@@ -20311,9 +22707,11 @@ msgstr ""
"同じ押出機内で、フィラメントの種類、ノズルの直径、およびノズル流量が同じ場合は、名前 (%s) が一意である必要があります。\n"
"過去の結果を上書きしてもよろしいですか。"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "この機種では、ノズルごとに最大 %d 件の履歴結果のみ保持できます。この結果は保存されません。"
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "この機種では、ノズルごとに最大%d件の履歴結果のみ保持できます。この結果は保存されません。"
msgid "Connecting to printer..."
msgstr "プリンタに接続中..."
@@ -20543,9 +22941,13 @@ msgstr "ノズルとAMS情報を同期"
msgid "Please connect the printer first before synchronizing."
msgstr "同期する前にまずプリンターを接続してください。"
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "プリンター%sのノズル情報が設定されていません。キャリブレーションを進める前に設定してください。"
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "プリンターの右ノズル情報が設定されていません。キャリブレーションを進める前に設定してください。"
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "プリンターの左ノズル情報が設定されていません。キャリブレーションを進める前に設定してください。"
msgid "AMS and nozzle information are synced"
msgstr "AMSとノズル情報が同期されました"
@@ -20610,6 +23012,11 @@ msgstr "体積速度の開始値"
msgid "To Volumetric Speed"
msgstr "体積速度の終了値"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "ステップ"
+
msgid "Are you sure you want to cancel this print?"
msgstr "現在の造形をキャンセルしても宜しいでしょうか?"
@@ -20635,9 +23042,11 @@ msgstr "注:%s のホットエンド番号はホルダーに紐づいていま
msgid "Action"
msgstr "アクション"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "このマシンタイプはノズルあたり%d個の履歴結果のみ保持できます。"
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "この機種では、ノズルごとに最大%d件の履歴結果のみ保持できます。"
msgid "Edit Flow Dynamics Calibration"
msgstr "フローダイナミクスキャリブレーションを編集"
@@ -20765,12 +23174,13 @@ msgstr ""
"加速度の値は速度の値より大きくなければなりません。\n"
"入力を確認してください。"
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "ベルトプリンターではまだ使用できません。代わりにPAタワー方式を使用してください。"
+
msgid "Temperature calibration"
msgstr "温度キャリブレーション"
-msgid "Filament type"
-msgstr "フィラメントタイプ"
-
msgid "PLA"
msgstr "PLA"
@@ -20792,6 +23202,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "テストモデル"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "標準"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "オーバーハング"
+
msgid "Start temp: "
msgstr "開始温度: "
@@ -20920,9 +23343,6 @@ msgstr "開始リトラクション長さ: "
msgid "End retraction length: "
msgstr "終了リトラクション長さ: "
-msgid "Test model"
-msgstr "テストモデル"
-
msgid "Ringing Tower"
msgstr "リンギングタワー"
@@ -20956,8 +23376,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "周波数(開始/終了): "
-msgid "Start / End"
-msgstr "開始/終了"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X 開始/終了: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y 開始/終了: "
msgid "Frequency settings"
msgstr "周波数設定"
@@ -20999,8 +23424,13 @@ msgstr "ファームウェアの互換性をご確認ください。"
msgid "Frequency: "
msgstr "周波数: "
-msgid "Damp"
-msgstr "ダンプ"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "周波数 X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "減衰 (開始/終了): "
# AI Translated
msgid "RepRap firmware uses the same frequency for both axes."
@@ -21147,8 +23577,9 @@ msgstr "IFSを有効化"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "プリンターで%d個のIFSスロットを検出しました。"
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "プリンターで%d個のIFSスロットを検出しました。"
# AI Translated
msgid "This printer does not report a material station."
@@ -21277,8 +23708,10 @@ msgstr "差し引き元"
msgid "Subtract with"
msgstr "差し引き先"
-msgid "selected"
-msgstr "選択済み"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1つ選択済み"
msgid "Part 1"
msgstr "パーツ1"
@@ -21391,9 +23824,6 @@ msgstr "例: Basic, Matte, Silk, Marble"
msgid "Filament Preset"
msgstr "フィラメントプリセット"
-msgid "Create"
-msgstr "作成"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "ベンダーが選択されていません。ベンダーを再選択してください。"
@@ -21715,6 +24145,10 @@ msgstr ""
"プリンターと、そのプリンターに属するすべてのフィラメントおよびプロセスのプリセットです。\n"
"他のユーザーと共有できます。"
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "カスタムベッドのテクスチャとモデルを含める"
+
# AI Translated
msgid ""
"User's filament preset set.\n"
@@ -21765,14 +24199,6 @@ msgstr "注記:このフィラメントの唯一のプリセットが削除さ
msgid "Presets inherited by other presets cannot be deleted"
msgstr "他のプリセットに継承されているプリセットは削除できません"
-# AI Translated
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "以下のプリセットがこのプリセットを継承しています。"
-
-msgid "Delete Preset"
-msgstr "プリセットを削除"
-
msgid "Are you sure to delete the selected preset?"
msgstr "選択したプリセットを削除してもよろしいですか?"
@@ -21850,10 +24276,12 @@ msgstr "開始、終了、またはステップの値が無効です。"
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "プリンタの押出機の数と、キャリブレーション対象として選択されたプリンタの数が一致しません。"
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "%s押出機のノズル径は0.2mmのため、自動フローダイナミクスキャリブレーションには対応していません。"
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21869,6 +24297,12 @@ msgstr ""
"ノズル径が実際のプリンタノズル径と一致しません。\n"
"上の「同期」ボタンをクリックし、キャリブレーションをやり直してください。"
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "プリンター%sのノズル情報が設定されていません。キャリブレーションを進める前に設定してください。"
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21946,6 +24380,11 @@ msgstr "Creality Kシリーズプリンターを検出"
msgid "Click Scan to look for K-series printers on your network."
msgstr "「スキャン」をクリックして、ネットワーク上のKシリーズプリンターを探します。"
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "機種"
+
# AI Translated
msgid "Scan"
msgstr "スキャン"
@@ -21968,8 +24407,9 @@ msgstr "Kシリーズプリンターが見つかりませんでした。プリ
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "%zu台のCrealityプリンターが見つかりました。1台を選択して「選択したものを使用」をクリックしてください。"
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "%zu台のCrealityプリンターが見つかりました。1台を選択して「選択したものを使用」をクリックしてください。"
# AI Translated
msgid "Active"
@@ -22088,8 +24528,11 @@ msgid "Failed to launch a new instance."
msgstr "新しいインスタンスの起動に失敗しました。"
# AI Translated
-msgid "log(s)"
-msgstr "ログ"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d件のログ (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -22144,17 +24587,37 @@ msgid "Authorizing..."
msgstr "認証中..."
# AI Translated
-msgid "Error. Can't get API token for authorization"
-msgstr "エラー。認証用のAPIトークンを取得できません"
+msgid "Maximum login retries exceeded"
+msgstr "ログインの再試行回数の上限を超えました"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "HTTPエラー: %1%"
# AI Translated
msgid "Could not parse server response."
msgstr "サーバーの応答を解析できませんでした。"
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "エラー。認証用のAPIトークンを取得できません"
+
# AI Translated
msgid "Error saving session to file"
msgstr "セッションのファイル保存中にエラーが発生しました"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "3DPrinterOSクラウドへの接続は正常に動作しています。"
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "ユーザーとしてログインしました: %1%"
+
# AI Translated
msgid "Error session check"
msgstr "セッション確認エラー"
@@ -22192,6 +24655,42 @@ msgstr "パスワードが間違っています"
msgid "Could not get resources to create a new connection"
msgstr "新しい接続を作成するためのリソースを取得できませんでした"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "UltiMakerへの接続は正常に動作しています。"
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "UltiMakerに接続できませんでした"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "認証情報の生成中にエラーが発生しました。詳細はログを確認してください。"
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "エラー: IDまたはKEYが空です。ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "ユーザー名: %1% パスワード: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "認証情報が承認待ちです。プリンターの画面に表示されるダイアログでアクセスを承認してください。"
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "無効な認証情報"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "エラー: 認証情報が見つかりません!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "FlashAirカードでアップロードが有効になっていません。"
@@ -22311,6 +24810,14 @@ msgstr ""
"メッセージ本文:「%1%」\n"
"エラー: 「%2%」"
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "ESP3Dへの接続は正常に動作しています。"
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "ESP3Dに接続できませんでした"
+
msgid "No AMS"
msgstr "AMSなし"
@@ -22382,6 +24889,11 @@ msgstr "選択できるプリンターの最大数は%dです"
msgid "No task"
msgstr "タスクなし"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "表示"
+
msgid "Edit Printers"
msgstr "プリンターを編集"
@@ -22423,6 +24935,11 @@ msgstr "印刷失敗"
msgid "Printing Pause"
msgstr "印刷一時停止"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "準備中"
+
msgid "Pending"
msgstr "保留中"
@@ -22455,9 +24972,6 @@ msgstr "スマートフィラメント割り当てを有効にする: 1つのフ
msgid "File Saving"
msgstr "ファイル保存"
-msgid "Don't remind me again"
-msgstr "再度通知しない"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "今後ポップアップは表示されません。「設定」から再度開くことができます"
@@ -22482,16 +24996,24 @@ msgstr "手動でフィラメントを左または右のノズルに割り当て
msgid "Global settings"
msgstr "グローバル設定"
-msgid "Video tutorial"
-msgstr "ビデオチュートリアル"
-
msgid "(Sync with printer)"
msgstr "(プリンターと同期)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "エラー: %s押出機に利用可能な%sノズルがないため、現在のグループ分け結果は無効です。"
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "エラー: 左押出機に利用可能な標準ノズルがないため、現在のグループ分け結果は無効です。"
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "エラー: 左押出機に利用可能なハイフローノズルがないため、現在のグループ分け結果は無効です。"
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "エラー: 右押出機に利用可能な標準ノズルがないため、現在のグループ分け結果は無効です。"
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "エラー: 右押出機に利用可能なハイフローノズルがないため、現在のグループ分け結果は無効です。"
msgid "We will slice according to this grouping method:"
msgstr "このグルーピング方法に従ってスライスします:"
@@ -22534,9 +25056,6 @@ msgstr "SimplyPrintに接続できませんでした"
msgid "Internal error"
msgstr "内部エラー"
-msgid "Unknown error"
-msgstr "不明なエラー"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "SimplyPrintアカウントがリンクされていません。接続オプションに移動して設定してください。"
@@ -22544,6 +25063,16 @@ msgstr "SimplyPrintアカウントがリンクされていません。接続オ
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforgeが無効なJSON応答を返しました。"
+# AI Translated
+msgid "Request failed"
+msgstr "リクエストに失敗しました"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Flashforge ローカルAPIエラー %1%: %2%"
+
# AI Translated
msgid "No Flashforge printers were discovered on the local network."
msgstr "ローカルネットワーク上でFlashforgeプリンターは検出されませんでした。"
@@ -22727,8 +25256,11 @@ msgstr "警告: ブリムタイプが「ペイント」に設定されていな
msgid "Set the brim type of this object to \"painted\""
msgstr "このオブジェクトのブリムタイプを「ペイント」に設定"
-msgid "invalid brim ears"
-msgstr "不適切なブリム"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d個の無効なブリムイヤー"
msgid "Brim Ears"
msgstr "ブリム"
@@ -22757,6 +25289,7 @@ msgstr "スキップオブジェクト情報のロードに失敗しました。
msgid "Failed to create the temporary folder."
msgstr "一時フォルダの作成に失敗しました。"
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d 選択済み"
@@ -22776,9 +25309,11 @@ msgstr "すべてのオブジェクトをスキップします。"
msgid "The printing job will be stopped. Continue?"
msgstr "印刷ジョブが停止されます。続行しますか?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "%d個のオブジェクトをスキップします。"
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "%d個のオブジェクトをスキップします。"
msgid "This action cannot be undone. Continue?"
msgstr "この操作は元に戻せません。続行しますか?"
@@ -22927,6 +25462,42 @@ msgstr "有効にすると、上記の値が今後のSTEPインポートで使
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "プリセットをエクスポート"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "フォルダに表示"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "バンドルを削除"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "バンドルの購読を解除"
+
+# AI Translated
+msgid "Update available"
+msgstr "アップデートが利用可能"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "許可されていないバンドル"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "このバンドルをブラウザーで開く"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "購読済み"
+
+# AI Translated
+msgid "Local"
+msgstr "ローカル"
+
# AI Translated
msgid "Bundle folder does not exist."
msgstr "バンドルフォルダが存在しません。"
@@ -22971,6 +25542,14 @@ msgstr "バンドルの購読を解除"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "OrcaCloudにエクスポート"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "フォルダにエクスポート"
+
# AI Translated
msgid "Save preset bundle"
msgstr "プリセットバンドルを保存"
@@ -23072,6 +25651,11 @@ msgstr "AMS乾燥コントロール"
msgid "Filament Drying Settings"
msgstr "フィラメント乾燥設定"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "時間"
+
# AI Translated
msgid "Stopping"
msgstr "停止中"
@@ -23251,6 +25835,11 @@ msgstr "開始中: 吸気口を確認しています"
msgid "Starting: Checking air vent"
msgstr "開始中: 排気口を確認しています"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "ディレクトリ%1%を作成できません"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "フィラメントが現在のマシン設定と互換性がない可能性があります。ジェネリックフィラメントプリセットが使用されます。"
@@ -23266,6 +25855,105 @@ msgstr "フィラメントが現在のマシン設定と互換性がない可能
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "フィラメントモデルが不明です。ランダムなフィラメントプリセットが使用されます。"
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "不明な設定ファイル: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "無効な設定ファイル: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "スロット%1% -> スロット%2%: 混合フィラメント"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "混合フィラメント定義: フィラメントスロット数の上限に達しました"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "フィラメントスロット数の上限に達しました"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "プリンターのフィラメント数の上限は%1%です"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "スロット%1% -> スロット%2%: 未割り当ての混合フィラメント (プリンターのフィラメント数の上限は%3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "スロット%1%: 未割り当ての混合フィラメント (プリンターのフィラメント数の上限は%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "スロット%1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "スロット%1%: 混合フィラメント定義をインポートできませんでした"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "少なくとも2つのコンポーネントが必要です"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "コンポーネントが存在しないスロットを参照しています"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "混合フィラメント定義: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "スロット%1%: 混合フィラメント定義をインポートできませんでした (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "スロット%1%: %2% -> %3% (代替)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"設定ファイル%1%の読み込みに失敗しました\n"
+"先にディレクトリ%2%をクリーンアップすることをおすすめします"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"ベンダー%1%の設定バージョン%2%が無効です\n"
+"先にディレクトリ%3%をクリーンアップすることをおすすめします"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"設定ファイル%1%の読み込みに失敗しました: %2%\n"
+"先にディレクトリ%3%をクリーンアップすることをおすすめします"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "参照平面と軸を非表示"
@@ -23579,6 +26267,11 @@ msgstr "厚み付けするシートボディがありません — 先にサー
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "データム / 曲線 (平面 / 軸 / 座標系 / ヘリックス / 投影)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "平面"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "参照平面 (オフセット / 傾斜 / 中間平面 / 接平面 / 2エッジ / 一致)"
@@ -23645,6 +26338,11 @@ msgstr "既存のボディを移動または回転"
msgid "Transform needs a body — add or import one first"
msgstr "変換にはボディが必要です — 先に追加またはインポートしてください"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "反転"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "平面を基準にボディを反転"
@@ -23738,6 +26436,11 @@ msgstr "(なし)"
msgid "Hole / thread"
msgstr "穴 / ねじ"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "穴"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "選択した面の中心、または平面上に穴を開けます"
@@ -23782,6 +26485,11 @@ msgstr "2点、または線分 / 円 / 円弧をクリックして寸法を配
msgid "Line / polyline"
msgstr "線分 / ポリライン"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "線分"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "始点、終点の順にクリック — その後、正確な長さを設定"
@@ -23918,6 +26626,9 @@ msgstr "スプライン"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "制御点をクリック。ダブルクリック、右クリック、またはEnterで終了"
+msgid "Point"
+msgstr "点"
+
# AI Translated
msgid "Click to place a point"
msgstr "クリックして点を配置"
@@ -24036,16 +26747,15 @@ msgstr "エンティティを選択し、角度範囲ハンドルをドラッグ
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "中心、次に頂点をクリック — %d 辺、%s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "中心、次に頂点をクリック — %d 辺、外接"
# AI Translated
-msgid "circumscribed"
-msgstr "外接"
-
-# AI Translated
-msgid "inscribed"
-msgstr "内接"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "中心、次に頂点をクリック — %d 辺、内接"
# AI Translated
msgid "Polygon"
@@ -24382,6 +27092,11 @@ msgstr "面上"
msgid "Thread plane"
msgstr "ねじの平面"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "標準"
+
# AI Translated
msgid "Pitch"
msgstr "ピッチ"
@@ -24569,6 +27284,9 @@ msgstr "開口するソリッドの面を選択し、壁厚を設定してくだ
msgid "(pick a side face)"
msgstr "(側面を選択)"
+msgid "Face"
+msgstr "面"
+
# AI Translated
msgid "Draft"
msgstr "抜き勾配"
@@ -24947,8 +27665,9 @@ msgstr "スケッチを更新しました"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "スケッチを作成しました (駆動寸法 %zu 個) — 選択して右クリックで押し出し"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "スケッチを作成しました (駆動寸法 %zu 個) — 選択して右クリックで押し出し"
# AI Translated
#, c-format, boost-format
@@ -25082,8 +27801,9 @@ msgstr "編集中: スケッチ%d · N = 平面に垂直に表示 · ツ
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — 三角形 %zu 個"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — 三角形 %zu 個"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -25168,10 +27888,14 @@ msgstr "メッシュに三角形が含まれていません"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
"このメッシュには%d個の三角形があります。同一平面の結合前にすべての三角形がB-repの面になるため、インポートに時間がかかり、編集が遅いボディになる可能性があります。通常は先にメッシュを間引くことをおすすめします。\n"
"\n"
"それでもインポートしますか?"
@@ -25200,7 +27924,7 @@ msgstr "メッシュのインポートに失敗しました: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
msgstr "ソリッドをインポートしました — 三角形 %d 個 → 面 %d 個、体積 %.2f mm³。面またはエッジを選択し、フィレット / カット / シェルで変更します"
# AI Translated
@@ -25218,8 +27942,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%sをスケッチに追加しました — 確定して反映してください"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — ドラッグで配置/サイズ調整し、確定してください"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — ドラッグで配置/サイズ調整し、確定してください"
# AI Translated
msgid "Insert canceled"
@@ -25425,9 +28151,11 @@ msgid "a geometry operation failed"
msgstr "ジオメトリ演算に失敗しました"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d 個選択"
+msgid_plural " · %d picked"
+msgstr[0] " · %d 個選択"
# AI Translated
#, c-format, boost-format
@@ -25442,7 +28170,8 @@ msgstr "選択 — エンティティをクリックして選択 · 端点ま
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d 個選択 · 拘束を選択してください (水平、平行、正接、等しい…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d 個選択 · 拘束を選択してください (水平、平行、正接、等しい…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -25703,7 +28432,8 @@ msgstr "反転 — 軸を設定済み · 反転するエンティティをク
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "反転 — 軸を設定済み · 反転対象 %d 個 · 別のエンティティをクリックして追加/削除 · Enterで適用"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "反転 — 軸を設定済み · 反転対象 %d 個 · 別のエンティティをクリックして追加/削除 · Enterで適用"
# AI Translated
msgid "Move — click the entities to move"
@@ -25825,8 +28555,9 @@ msgstr "スケッチ点"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d 個のスケッチエンティティ"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d 個のスケッチエンティティ"
# AI Translated
msgid "select something first"
@@ -26361,8 +29092,10 @@ msgid "Applied edit"
msgstr "編集を適用しました"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — 値を入力してEnterを押してください (または確定)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — 値を入力してEnterを押してください (または確定)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -26434,10 +29167,23 @@ msgstr "プレートに確定 — ソリッドを準備タブに送る"
msgid "Nothing to commit — add a feature first"
msgstr "確定するものがありません — 先にフィーチャーを追加してください"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "デザインボディ %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "すべてのボディが非表示です — 確定する前にいずれかを表示してください"
+# AI Translated
+msgid "Design Assembly"
+msgstr "デザインアセンブリ"
+
+# AI Translated
+msgid "Design Body"
+msgstr "デザインボディ"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -26503,8 +29249,9 @@ msgstr "無効: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "プレビュー — 三角形 %zu 個"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "プレビュー — 三角形 %zu 個"
# AI Translated
#, c-format, boost-format
@@ -26604,8 +29351,9 @@ msgstr "その寸法を満たせません — スケッチが過拘束です"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "%1% 個の拘束はこのジオメトリ (楕円やスプライン曲線、またはサイズ0の円) に作用できないため無視されます"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% 個の拘束はこのジオメトリ (楕円やスプライン曲線、またはサイズ0の円) に作用できないため無視されます"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -26663,8 +29411,9 @@ msgstr "面取り: 距離が一方の辺の長さを超えているか、2本の
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "フィレット/面取りで無効になった %1% 個の拘束を削除しました"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "フィレット/面取りで無効になった %1% 個の拘束を削除しました"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -26684,8 +29433,9 @@ msgstr "コピー数は2以上の整数にする必要があります"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "変換により %1% 個の拘束が解除されました"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "変換により %1% 個の拘束が解除されました"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26836,11 +29586,6 @@ msgstr "サーフェスの厚み付け"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "サーフェスの厚み付けにはシートボディが必要です — 先にサーフェスツールで作成してください"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "穴"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26925,11 +29670,6 @@ msgstr "円形パターン"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "軸の周りにボディを繰り返す — 個数と角度範囲を設定"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "反転"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26966,11 +29706,6 @@ msgstr "位置合わせにはボディが必要です — 先に追加または
msgid "Align the body to a picked face or plane"
msgstr "選択した面または平面にボディを位置合わせ"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "平面"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -27076,11 +29811,6 @@ msgstr "ボディを削除"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "このボディ全体を削除 — 作成元のフィーチャーも削除されます"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "線分"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -27395,213 +30125,6 @@ msgstr "このフォントにはこのテキストのアウトラインがあり
msgid "Size: %.1f × %.1f mm"
msgstr "サイズ: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "プリミティブ"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "空のメッシュが生成されました"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "ボックス"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "クイック:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "幅 (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "奥行き (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "高さ (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "底面半径"
-
-# AI Translated
-msgid "Top R"
-msgstr "上面半径"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "大半径"
-
-# AI Translated
-msgid "Minor R"
-msgstr "小半径"
-
-# AI Translated
-msgid "All edges"
-msgstr "すべてのエッジ"
-
-# AI Translated
-msgid "Top edges"
-msgstr "上面のエッジ"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "底面のエッジ"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "側面のエッジ"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "メッシュ分解能"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "形状を追加"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "外側のプロファイルがありません"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "外側の面を作成できませんでした"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "穴のある面を作成できませんでした"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "回転押し出しに失敗しました"
-
-# AI Translated
-msgid "Profile"
-msgstr "プロファイル"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "新しいプロファイルを開始 (穴用)"
-
-# AI Translated
-msgid "Segments"
-msgstr "セグメント数"
-
-# AI Translated
-msgid "Sides"
-msgstr "辺数"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "キャンバスをクリックして描画"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "グリッドにスナップ"
-
-# AI Translated
-msgid "Grid step"
-msgstr "グリッド間隔"
-
-# AI Translated
-msgid "Outer"
-msgstr "外側"
-
-# AI Translated
-msgid "closed"
-msgstr "閉じています"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% 点 %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (上面)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (正面)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (側面)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "回転押し出し角度"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "0で押し出し、0より大きい値で回転押し出し"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "ポケット (カット)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu個の閉じたプロファイル"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "有効にするには閉じたプロファイルを描画してください"
-
-# AI Translated
-msgid "Clear all"
-msgstr "すべてクリア"
-
-# AI Translated
-msgid "Empty result"
-msgstr "結果が空です"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "押し出し: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "回転押し出し: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "オブジェクトが選択されていません"
-
-# AI Translated
-msgid "Face failed"
-msgstr "面の作成に失敗しました"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "穴のある面の作成に失敗しました"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "ツールメッシュが空です"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "ポケットを追加しました (マイナスボリューム)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "ポケット: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -27724,6 +30247,10 @@ msgstr "組立てる"
msgid "Gizmo brim ears"
msgstr "ブリム"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "テクスチャ変位ペイント"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "垂直スライダー"
@@ -27958,6 +30485,12 @@ msgstr "両端に円筒面が必要です — コネクター%1%が平面上に
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "両端に円筒面が必要です — コネクター%1%が曲面上にあります"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (基準平面なし)"
+
# AI Translated
msgid "two points are coincident"
msgstr "2つの点が一致しています"
@@ -27986,10 +30519,31 @@ msgstr "平面が平行です (交線がありません)"
msgid "zero-length direction"
msgstr "方向の長さがゼロです"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "あるフィーチャーが、履歴のその時点では存在しないボディ%1%に作用しています"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "「%1%」は、削除または非表示にされたフィーチャーが作成したボディに作用しています"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "「%1%」は、履歴のその時点では存在しないボディに作用しています"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "このフィーチャーは後続のフィーチャーで使用されています"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "「%1%」は「%2%」を使用しているため、それより前には置けません"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "スケッチエンティティが閉じたループを形成していません"
@@ -28000,9 +30554,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "(%.3f, %.3f) で開いています"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...ほかに%1%個の開いた端点があります"
+msgid "Open ends not shown: %1%"
+msgstr "表示されていない開放端: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "回転押し出し: 軸の直線がスケッチ内に存在しません — 軸を選択し直してください"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "回転押し出し: 軸の直線の長さが0です"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -28150,6 +30713,30 @@ msgstr "穴のワイヤー作成に失敗しました"
msgid "hole cut failed"
msgstr "穴のカットに失敗しました"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "ねじ: 直径は1 mm以上でなければなりません"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "ねじ: ピッチは0.1 mmより大きくなければなりません"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "ねじ: 深さは0からピッチの0.7倍の間でなければなりません"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "ねじ: この直径に対して深さが大きすぎます"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "ねじ: 長さは半ピッチより長くなければなりません"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "ねじ: 巻き数が多すぎます (長さ / ピッチは400未満にする必要があります)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "めねじにはボディが必要です"
@@ -28210,6 +30797,22 @@ msgstr "面の削除に失敗しました"
msgid "delete_face produced no geometry"
msgstr "面の削除でジオメトリが生成されませんでした"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "ブーリアン: 対象のボディがありません"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "ブーリアン: ツールボディがありません — 2つ目のボディを選択してください"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "ブーリアン: 対象とツールが同じボディです"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "ブーリアン: ジオメトリのないボディがあります"
+
# AI Translated
msgid "boolean operation failed"
msgstr "ブーリアン演算に失敗しました"
@@ -28537,6 +31140,10 @@ msgstr "モデル画像"
msgid "Auxiliaries"
msgstr "補助ファイル"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "ベルトパージタワー"
+
# AI Translated
msgid "Project Filament List"
msgstr "プロジェクトフィラメントリスト"
@@ -28571,8 +31178,16 @@ msgstr "分解するには、同じ材料タイプのフィラメントが2つ
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "材料リストは最大%1%色までサポートしています。%2%で分解すると、材料数が%1%を超えてしまいます。分解する前に、メイン画面で未使用のフィラメントを削除してください。"
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "材料リストは最大%1%色までサポートしています。材料リストで分解すると、材料数が%1%を超えてしまいます。分解する前に、メイン画面で未使用のフィラメントを削除してください。"
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "材料リストは最大%1%色までサポートしています。%2%で分解すると、材料数が%1%を超えてしまいます。分解する前に、メイン画面で未使用のフィラメントを削除してください。"
# AI Translated
msgid "Cyan"
@@ -28602,6 +31217,13 @@ msgstr "グリーン"
msgid "Blue"
msgstr "ブルー"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -28609,7 +31231,1234 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "現在のフィラメントリストに%sが含まれていません。混合フィラメントに必要なプロジェクトフィラメントは、分解後に自動的に作成されます。"
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "現在のフィラメントリストに%sが含まれていません。混合フィラメントに必要なプロジェクトフィラメントは、分解後に自動的に作成されます。"
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "不透明度"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -28705,10 +32554,6 @@ msgstr "マイ設定"
msgid "Custom Printer Setup"
msgstr "カスタムプリンターのセットアップ"
-# AI Translated
-msgid "Custom Printer"
-msgstr "カスタムプリンター"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "カスタムプリンタープロファイルを定義"
@@ -28975,6 +32820,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "焼付け"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "スライダーに正確な値を入力"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "スライダー右端の編集アイコン"
+
# AI Translated
msgid "Texture displacement"
msgstr "テクスチャ変位"
@@ -29111,6 +32964,50 @@ msgstr ""
msgid "Remove texture"
msgstr "テクスチャを削除"
+# AI Translated
+msgid "Adjust image"
+msgstr "画像を調整"
+
+# AI Translated
+msgid "Brightness"
+msgstr "明るさ"
+
+# AI Translated
+msgid "Contrast"
+msgstr "コントラスト"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "シャープネス"
+
+# AI Translated
+msgid "Blur"
+msgstr "ぼかし"
+
+# AI Translated
+msgid "Hue"
+msgstr "色相"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "画像の最も細かいディテールを際立たせます。「ぼかし」の後に適用されるため、両方を併用できます。まずぼかしてノイズを除き、残ったエッジをシャープにします。"
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "画像そのものをぼかします。レイヤー自体の「スムージング」スライダーは、画像を変えずに起伏をなだらかにするため、まずはそちらを試してください。"
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "このテクスチャはグレースケールのため、シフトできる色相がありません。"
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "スライダーを放すとモデルが更新されます。「コピーとして保存」は、調整後の画像をテクスチャライブラリに書き込み、このレイヤーがその画像を使うようにします。"
+
+# AI Translated
+msgid "Save as copy"
+msgstr "コピーとして保存"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "テクスチャ変位レイヤーを削除"
@@ -29247,6 +33144,15 @@ msgstr "キャプチャした各段階をOBJファイルとして書き出し、
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "ペイント領域をリメッシュ後のモデルに引き継げなかったため、何も変更されませんでした。プロモードに切り替え、ペイントする前にリメッシュしてください。"
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "範囲: %1%~%2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "ドラッグする代わりに値を入力します。スライダーをCtrl+クリックしても同じです。"
+
# AI Translated
msgid "Pro"
msgstr "プロ"
@@ -29353,8 +33259,8 @@ msgid "Click a triangle to paint it"
msgstr "三角形をクリックしてペイント"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "展開 (LSCM) でマッピングされたアクティブレイヤーが必要です。"
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "展開 (LSCM) でマッピングされたレイヤーのみ - このビューを使用するには、アクティブなレイヤーの「マッピング」を「展開」に設定してください。"
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -29369,16 +33275,16 @@ msgid "Checker"
msgstr "チェッカー"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "チェッカー - テクスチャの代わりにテストグリッドを表示します。マス目が正方形のままの場所ではテクスチャは歪まず、引き伸ばされる場所ではテクスチャも引き伸ばされます"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "チェッカー - テクスチャの代わりにテストグリッドを表示します。正方形が正方形のままの箇所ではテクスチャは歪まず、引き伸ばされている箇所ではテクスチャも引き伸ばされます。UVエディターが閉じている場合は開きます"
# AI Translated
msgid "Distortion"
msgstr "歪み"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "歪み - 展開による引き伸ばしを青から赤のヒートマップで表示"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "歪み - 展開上の引き伸ばしを青から赤のヒートマップで表示します。UVエディターが閉じている場合は開きます"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -29404,6 +33310,10 @@ msgstr "このレイヤーに別の画像を選択します。ペイント、深
msgid "not painted"
msgstr "未ペイント"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "明るさ、コントラスト、シャープネス、ぼかし、色相。設定すると画像とモデルに表示されます。「コピーとして保存」は結果をテクスチャライブラリに書き込み、このレイヤーがその画像を使うようにします。"
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "上へ移動 - 先に適用"
@@ -29424,10 +33334,20 @@ msgstr "起伏の高さ: テクスチャの白い部分が表面を持ち上げ
msgid "Tile size"
msgstr "タイルサイズ"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "モデル自身のUVレイアウトでマッピングされます。このレイアウトがそのまま配置になり、テクスチャ1枚がちょうど全体を覆うため、設定するタイルサイズはありません。"
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "モデル上でのテクスチャ1枚分の幅です。小さくするとパターンの繰り返しが増え、ディテールが細かくなります。「タイル」がオフの場合は、1枚だけ配置されるテクスチャのサイズになります。"
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "表面上でテクスチャを回転させます (度)。パターンをモデルのエッジに揃えるときに使用します。"
@@ -29495,28 +33415,32 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "2つのフィラメントを交互に配置して中間色を擬似的に表現し、少数のフィラメントで写真やグラデーションを再現できるようにします。単色で構成された画像はどちらでも同じように印刷されます。オフの場合は、領域ごとに1つのフィラメントを使用します。"
# AI Translated
-msgid "Mix by"
-msgstr "混合方法"
+msgid "Mixed colors"
+msgstr "混合色"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "表面"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "焼付けで追加できる混合フィラメントの最大数です。テクスチャの色から選ばれ、焼付けで実際に使用されるものだけが作成されます。"
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"積層: 2つのフィラメントを積層ごとに交互に使います。垂直に近い面では滑らかに混ざりますが、上や下を向いた面では1つの積層全体が1色の帯になるため効果がありません。\n"
-"表面: 表面全体に細かい市松模様を配置します。どの角度でも機能しますが、混色ではなくテクスチャのように見えることがあります。\n"
-"自動: 垂直に近い面には積層を使い、上や下を向いた面には近い方の単一フィラメントを使います。そこでは市松模様が模様として見えてしまうためです。"
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%2%個のフィラメントで印刷可能な色: %1%色"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "%1%個のフィラメントから"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%2%、印刷可能な色は%1%色"
# AI Translated
msgid "Denoise"
@@ -29567,6 +33491,18 @@ msgstr "ビューから"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "ビューから - スライドプロジェクターのように、現在見ている方向からペイント領域にまっすぐ投影します。"
+# AI Translated
+msgid "Model UV"
+msgstr "モデルUV"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "モデルUV - モデルに元から付属するテクスチャ座標を使うため、そのモデル用に作られたテクスチャは描かれた位置にそのまま配置されます。展開は行われず、「タイルサイズ」は適用されません。モデル自身のレイアウトがそのまま配置になります。"
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "このモデルには独自のテクスチャ座標がありません。UVチャンネル付きでインポートしたモデル (たとえばテクスチャ付きOBJ) のみ、その座標でマッピングできます。"
+
# AI Translated
msgid "Open UV editor"
msgstr "UVエディターを開く"
@@ -29581,8 +33517,9 @@ msgstr "未展開"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1%個のUVアイランド"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1%個のUVアイランド"
# AI Translated
msgid "Capture current view"
@@ -29612,10 +33549,6 @@ msgstr "投影フレーム"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "モデル上にドラッグするウィンドウを開きます。そのウィンドウを通して見える部分にテクスチャが適用され、ウィンドウの枠が投影の境界になります。"
-# AI Translated
-msgid "Opacity"
-msgstr "不透明度"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "配置中のフレームウィンドウの不透明度です。下げるとフレーム越しにモデルが見えます。結果には影響しません。"
@@ -29669,6 +33602,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "追加"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "上書き"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -29688,8 +33626,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "ベースレイヤーは下に組み合わせるものがないため、常に追加になります。"
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "このレイヤーが下のレイヤーと重なる部分での動作です。「追加」と「減算」は起伏を盛り上げたり削ったりします。「乗算」と「除算」は下にあるものを拡大縮小するため、このレイヤーはその上のマスクになります - その場合「深さ」は強度として働き、1 mmでは白い部分は変化しません。"
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "このレイヤーが下のレイヤーと重なる部分での動作です。「追加」と「減算」は起伏を盛り上げたり削ったりします。「上書き」は下のレイヤーを置き換えるため、ペイントした部分にはこのレイヤーの起伏だけが残ります。「乗算」と「除算」は下にあるものを拡大縮小するため、このレイヤーはその上のマスクになります - その場合「深さ」は強度として働き、1 mmでは白い部分は変化しません。"
# AI Translated
msgid "Adjust placement"
@@ -29713,8 +33651,9 @@ msgstr "その他の設定"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "%1%個のレイヤーをすべて使用済み"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "%1%個のレイヤーをすべて使用済み"
# AI Translated
msgid "Add layer"
@@ -29794,8 +33733,9 @@ msgstr "三角形の上限数: 下の「三角形」で設定します。"
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "プレビュー: 三角形 %1% 個"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "プレビュー: 三角形 %1% 個"
# AI Translated
msgid "Steps"
@@ -29837,6 +33777,12 @@ msgstr "リメッシュ"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "モデル全体を再構築する際の三角形のサイズ (mm) です。変位は均一なメッシュで最もよく機能します。不均一なインポートモデルから均一なメッシュを作るための設定です。"
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "シャープエッジを保持"
@@ -29971,14 +33917,6 @@ msgstr "約%1%個の三角形が必要ですが、上限数は%2%です - 焼付
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "細分化でモデルに追加できる三角形の数 (千単位) です。最も合っていない三角形から常に先に分割されるため、上限まで使い切った場合でも、最も目立つ場所に使われています。起伏がまだ粗く見える場合は値を上げてください。"
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "焼付けを停止します。すでに完了した部分はモデルに残り、元に戻すことができます。"
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "焼付けせずにツールを閉じます。ペイント、レイヤー、設定はモデルに保持されます。"
-
# AI Translated
msgid "Preparing..."
msgstr "準備中..."
@@ -30003,35 +33941,51 @@ msgstr "既存の頂点を動かして、ペイントしたハイトマップを
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "ペイントしたハイトマップを実際のジオメトリにします。メッシュは均一な密度にリメッシュされ、テクスチャが曲がる場所が先に細分化されるため、ディテールを表す頂点が確保されます - すべて1ステップで行われます。"
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "焼付けを停止します。すでに完了した部分はモデルに残り、元に戻すことができます。"
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "焼付けせずにツールを閉じます。ペイント、レイヤー、設定はモデルに保持されます。"
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "モデル: 三角形 %1% 個 - 焼付けでは上の分解能まで、上限数の範囲内で細分化します"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "モデル: 三角形 %1% 個 - 焼付けでは上の分解能まで、上限数の範囲内で細分化します"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "焼付けでは既存の頂点を動かします - モデルは三角形 %1% 個のままです"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "焼付けでは既存の頂点を動かします - モデルは三角形 %1% 個のままです"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "焼付け結果は最大で約 %1% k 個の三角形"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "焼付け結果は最大で約 %1% k 個の三角形"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1%個のレイヤーは未ペイントのためスキップ"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1%個のレイヤーは未ペイントのためスキップ"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1%は未ペイントのためスキップ"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1%は未ペイントのためスキップ"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -30049,6 +34003,10 @@ msgstr "テクスチャ変位の編集"
msgid "Choose SLA archive:"
msgstr "SLAアーカイブを選択:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "SL1 / SL1Sアーカイブファイル"
+
# AI Translated
msgid "Import file"
msgstr "ファイルをインポート"
@@ -30213,6 +34171,34 @@ msgstr "フィラメントプラグイン"
msgid "Printer plugins"
msgstr "プリンタープラグイン"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "このプリセットはプラグインの機能を使用しません"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "このプリセットで使用される機能"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "機能の設定 (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "プラグインの設定"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "このプリセットの上書き設定を破棄し、グローバル設定に戻す"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "デフォルトに戻す"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "無効なJSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "設定が有効なJSONではありません。変更は保存されませんでした。"
@@ -30232,10 +34218,6 @@ msgstr ""
"\n"
"プリセットでの上書き設定を破棄し、グローバル設定を使用します。"
-# AI Translated
-msgid "Restore defaults"
-msgstr "デフォルトに戻す"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "グローバル設定を使用しています。保持するにはプリセットを保存してください。"
@@ -30261,10 +34243,6 @@ msgstr "購読を解除"
msgid "Overwrite Plugin"
msgstr "プラグインを上書き"
-# AI Translated
-msgid "Show in folder"
-msgstr "フォルダに表示"
-
# AI Translated
msgid "Reinstall"
msgstr "再インストール"
@@ -30273,6 +34251,10 @@ msgstr "再インストール"
msgid "Delete cache and reload"
msgstr "キャッシュを削除して再読み込み"
+# AI Translated
+msgid "No description."
+msgstr "説明はありません。"
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr ".pyまたは.whlのプラグインパッケージを選択してください。"
@@ -30305,6 +34287,294 @@ msgstr "プラグインをインストール中"
msgid "Installed \"%s\"."
msgstr "「%s」をインストールしました。"
+# AI Translated
+msgid "Search plugins"
+msgstr "プラグインを検索"
+
+# AI Translated
+msgid "Clear search"
+msgstr "検索をクリア"
+
+# AI Translated
+msgid "Match case"
+msgstr "大文字と小文字を区別"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "単語単位で一致"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "その他のプラグインのインストールオプション"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "プラグインをインストール"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "ローカルプラグインをインストール"
+
+# AI Translated
+msgid "Activate"
+msgstr "アクティブ化"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "名前で並べ替え"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "バージョンで並べ替え"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "プラグインのバージョン"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "入手元で並べ替え"
+
+# AI Translated
+# Needs human review: Plugins dialog column whose values are Mine / Subscribed / Orphaned / Local; check 入手元 fits the column.
+msgid "Source"
+msgstr "入手元"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "ステータスで並べ替え"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "ステータス"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "ドラッグでサイズ変更、ダブルクリックでリセット"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "プラグインリストのサイズを変更"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "プラグインの詳細"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "プラグイン情報"
+
+# AI Translated
+msgid "Description"
+msgstr "説明"
+
+# AI Translated
+msgid "Config"
+msgstr "設定"
+
+# AI Translated
+msgid "Changelog"
+msgstr "変更履歴"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "診断"
+
+# AI Translated
+msgid "Types"
+msgstr "種類"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "インストール済みバージョン"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "最新バージョン"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "最新バージョンに更新"
+
+# AI Translated
+msgid "No description available"
+msgstr "説明はありません"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "機能を設定するプラグインを選択してください"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "設定可能な機能"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "この機能に保存された設定を破棄し、プラグインのデフォルトに戻す"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "プラグインの変更履歴"
+
+# AI Translated
+msgid "Date"
+msgstr "日付"
+
+# AI Translated
+msgid "Changes"
+msgstr "変更内容"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "変更履歴はありません"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "問題は検出されませんでした"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "プラグインが見つかりません"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "「%s」に一致するプラグインはありません"
+
+# AI Translated
+# Needs human review: Plugin source badge 'Mine' (plugins the signed-in user owns on OrcaCloud), next to Subscribed / Orphaned / Local; check 自作 reads right.
+msgid "Mine"
+msgstr "自作"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "購読済み"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "孤立"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "ローカル"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "一部のプラグイン機能が有効です"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "%sの機能を折りたたむ"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "%sの機能を展開"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "機能を折りたたむ"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "機能を展開"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "このプラグインをブラウザーで開く"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "機能: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "機能"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "「%s」を実行"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "%sを有効化"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "更新が許可されていません"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "プラグインを読み込み中…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "このプラグインには機能がありません"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "機能を設定するには、このプラグインをアクティブ化してください"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "OrcaCloudでの表示はこちら "
+
+# AI Translated
+msgid "Activated"
+msgstr "アクティブ"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "実行時エラー"
+
+# AI Translated
+msgid "Inactive"
+msgstr "非アクティブ"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "このプラグインはアクティブで、使用できる状態です。"
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "このプラグインはまだ読み込み中です。"
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "このプラグインは、エラーが修正されるまでブロックされます。"
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "このプラグインは読み込まれていますが、機能がエラーを報告しました。"
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "このプラグインは非アクティブです。インストールまたは読み込むにはアクティブ化してください。"
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "ステータスと詳細を表示するプラグインを選択してください。"
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "孤立: このプラグインは購読されていないか、OrcaCloudで利用できなくなっています。ローカルのコピーはインストールされたままで、引き続き使用できます。"
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "プラグインの新しいバージョンが利用可能です。"
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "このプラグインは更新が許可されていないため、クラウドからの更新は利用できません。"
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -30521,6 +34791,71 @@ msgstr "プラグインの再読み込みに失敗しました。"
msgid "Reloaded \"%s\"."
msgstr "「%s」を再読み込みしました。"
+# AI Translated
+msgid "Printer Connection"
+msgstr "プリンター接続"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "デバイスを表示するには、プリンター接続を設定してください。"
+
+# AI Translated
+msgid "No model information"
+msgstr "モデル情報がありません"
+
+# AI Translated
+msgid "Edit Project Info"
+msgstr "プロジェクト情報を編集"
+
+# AI Translated
+msgid "Model Information"
+msgstr "モデル情報"
+
+# AI Translated
+msgid "Accessories"
+msgstr "アクセサリー"
+
+# AI Translated
+msgid "Profile Information"
+msgstr "プロファイル情報"
+
+# AI Translated
+msgid "Model name"
+msgstr "モデル名"
+
+# AI Translated
+msgid "Created by"
+msgstr "作成者"
+
+# AI Translated
+msgid "Remixed by"
+msgstr "リミックス作成者"
+
+# AI Translated
+msgid "Shared by"
+msgstr "共有者"
+
+# AI Translated
+msgid "Model description"
+msgstr "モデルの説明"
+
+# AI Translated
+# Needs human review: Project page section 'BOM' (bill of materials) kept as the acronym; 部品表 is the Japanese term if the acronym is not clear to users.
+msgid "BOM"
+msgstr "BOM"
+
+# AI Translated
+msgid "Profile name"
+msgstr "プロファイル名"
+
+# AI Translated
+msgid "Profile Author"
+msgstr "プロファイル作成者"
+
+# AI Translated
+msgid "Profile description"
+msgstr "プロファイルの説明"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "フラッシュモードの設定"
@@ -30545,6 +34880,19 @@ msgstr "プライムの廃材を減らし、より速く印刷します。わず
msgid "Terminal"
msgstr "ターミナル"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... または uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "プラグインターミナルの準備ができました。"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "プロセスが終了しました。終了コード: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "コマンドはすでに実行中です。"
@@ -30591,8 +34939,9 @@ msgstr "新しい混合フィラメント"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "プロジェクトでサポートされるフィラメントは最大%d個です。超過したフィラメントは破棄されます。"
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "プロジェクトでサポートされるフィラメントは最大%d個です。超過したフィラメントは破棄されます。"
# AI Translated
msgid "Import Model"
@@ -30679,8 +35028,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "計算に失敗しました。パラメータを調整して再試行してください。"
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "メッシュに非多様体ジオメトリまたは開いた境界があります。そのままインポートするか、インポート前にWindowsの3D修復サービスで修復できます。"
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "メッシュに非多様体ジオメトリまたは開いた境界があります。そのままインポートするか、インポート前に修復できます。"
# AI Translated
msgid "Mesh repair"
@@ -30694,14 +35043,6 @@ msgstr "修復せずにインポート"
msgid "Repair and import"
msgstr "修復してインポート"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "メッシュに非多様体ジオメトリまたは開いた境界があることに注意してください。"
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "メッシュの問題"
-
# AI Translated
msgid "The selected image is empty."
msgstr "選択した画像は空です。"
@@ -30710,6 +35051,14 @@ msgstr "選択した画像は空です。"
msgid "Failed to prepare the texture for use."
msgstr "テクスチャを使用できるように準備できませんでした。"
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "インポートしたテクスチャ用のフォルダーを作成できませんでした。"
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "インポートしたテクスチャの保存に失敗しました。"
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "削除できるのは自分でインポートしたテクスチャのみです。"
@@ -30718,18 +35067,10 @@ msgstr "削除できるのは自分でインポートしたテクスチャのみ
msgid "Could not delete the texture file."
msgstr "テクスチャファイルを削除できませんでした。"
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "インポートしたテクスチャ用のフォルダーを作成できませんでした。"
-
# AI Translated
msgid "Could not load the selected image."
msgstr "選択した画像を読み込めませんでした。"
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "インポートしたテクスチャの保存に失敗しました。"
-
# AI Translated
msgid "Could not read the texture file."
msgstr "テクスチャファイルを読み込めませんでした。"
@@ -30773,8 +35114,9 @@ msgstr "ここでUVを編集するには、テクスチャレイヤーのマッ
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d個の頂点を選択中 | ドラッグ = まとめて移動、Shift/Ctrlクリック = 追加/削除"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d個の頂点を選択中 | ドラッグ = まとめて移動、Shift/Ctrlクリック = 追加/削除"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30782,8 +35124,9 @@ msgstr "頂点モード: 頂点をドラッグして形状を変更 | Shift/Ct
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d本のエッジを選択中 | ドラッグ = まとめて移動、Shift/Ctrlクリック = 追加/削除"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d本のエッジを選択中 | ドラッグ = まとめて移動、Shift/Ctrlクリック = 追加/削除"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30791,8 +35134,9 @@ msgstr "エッジモード: アイランドのエッジをドラッグして形
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d個のアイランドを選択中 | ドラッグ = まとめて移動、Shift/Ctrlクリック = 追加/削除、R/S = メインのアイランドを回転/拡大縮小"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d個のアイランドを選択中 | ドラッグ = まとめて移動、Shift/Ctrlクリック = 追加/削除、R/S = メインのアイランドを回転/拡大縮小"
# AI Translated
#, c-format, boost-format
@@ -30811,6 +35155,10 @@ msgstr " | スナップ オン"
msgid "Change texture - choose another one from the texture library"
msgstr "テクスチャを変更 - テクスチャライブラリから別のテクスチャを選択"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "アクティブなレイヤーのタイルサイズです。テクスチャ1回分の繰り返しがモデルのどれだけを覆うかを示します。キャンバスはタイル単位で測られるため、グリッドの1マスが1回分の繰り返しになります。レイヤー設定のタイルサイズで変更できます。"
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "ハイトマップ - アイランドの下にレイヤーのテクスチャを表示"
@@ -30844,16 +35192,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "展開を連結した展開図としてレイアウトします: エッジを共有する部分が隣り合わせに展開されます (立方体はバラバラの6つの正方形ではなく、つながった展開図になります)。それぞれは別のアイランドのままなので、後から個別に手動で移動できます。"
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "アイランド - アイランド全体を移動、回転、拡大縮小"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "UVアイランド - UVアイランド全体を操作します。クリックして選択し、ドラッグで移動、右ドラッグで回転します。または、Rキーで回転、Sキーで拡大縮小をマウスで行います (クリックまたはEnterで確定、Escでキャンセル)。"
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "頂点 - 頂点をドラッグして形状を変更。Shift/Ctrlで複数選択"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "頂点 - 頂点をドラッグしてUVアイランドの形状を手動で変更します。Shiftで選択に追加し、Ctrlで選択への追加/解除を切り替えます。"
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "エッジ - エッジをドラッグして形状を変更。Shift/Ctrlで複数選択"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "エッジ - エッジをドラッグしてUVアイランドの形状を手動で変更します。Shiftで選択に追加し、Ctrlで選択への追加/解除を切り替えます。"
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30892,8 +35240,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "スナップ - ドラッグ中のアイランドを他のアイランドに近づけると吸着させる"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "すべてのアイランドを全体表示 (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"すべてのUVアイランドがビューに収まるように全体表示します (HomeまたはF)。\n"
+"キャンバス上のその他の操作: スクロールでカーソル位置を中心にズームし、中ボタンドラッグまたは空き領域のドラッグでパンします。"
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "選択されている内容と、ドラッグ中の移動・回転・拡大縮小の正確な数値です。"
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30904,6 +35260,10 @@ msgstr "「展開」でマッピングされたレイヤーがありません"
msgid "%.1f mm tile"
msgstr "%.1f mm タイル"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "このペインはアクティブなテクスチャレイヤーに連動し、そのレイヤーは展開 (LSCM) でマッピングされている必要があります。レイヤーを追加し、その「マッピング」を「展開」に設定してください。"
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "最新ではありません - この展開の作成後に、ペイント、シーム、またはシーム角度が変更されました。押すと再展開します。"
@@ -30912,19 +35272,71 @@ msgstr "最新ではありません - この展開の作成後に、ペイント
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "ペイント領域を平らに広げてUVアイランドにします。計算はこのボタンを押したときのみ行われ、編集のたびには行われません - 先にペイント、シーム角度の変更、シームのマークを行ってから「展開」を押してください。"
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "先に「シームをマーク」をオンにしてください - 「パス」を使うとより素早くマークできます。"
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "このレイヤーにはシームがマークされていません。"
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "手動で形状を変更したUVアイランドがないため、破棄するものはありません。"
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "UVアイランド %d 個、面 %s 個"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d個のUVアイランド"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s個の面"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "ペイント領域の展開結果です。分割されたピースの数 (シームと、シーム角度より鋭いエッジで分割) と、それらに含まれる三角形の総数を示します。"
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "先に「展開」を押してください - 操作できるUVアイランドがまだありません。"
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "先にUVアイランドモードで、キャンバス上のUVアイランドをクリックしてください。"
+
+# AI Translated
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "公開"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "サインインしていません"
+
+# AI Translated
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Bambuネットワークプラグインが検出されませんでした。インストールするにはこちら をクリックしてください。"
+
+# AI Translated
+msgid "Create new project"
+msgstr "新しいプロジェクトを作成"
+
+# AI Translated
+msgid "Recently opened"
+msgstr "最近開いた項目"
+
+# AI Translated
+msgid "Open Containing Folder"
+msgstr "ファイルの場所を開く"
# AI Translated
msgid "Forward"
msgstr "進む"
-# AI Translated
-msgid "Tools"
-msgstr "ツール"
-
# AI Translated
msgid "View Source"
msgstr "ソースを表示"
@@ -30996,6 +35408,75 @@ msgstr "%1%のロード先: %2%"
msgid "Load %s"
msgstr "%sをロード"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "プリンターエージェント「%1%」を有効にできませんでした: エージェントID「%2%」は、プラグイン「%4%」の機能「%3%」によって既に登録されています。"
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "プリンターエージェント「%1%」を有効にできませんでした: エージェントID「%2%」は「%3%」によって既に登録されています。"
+
+# AI Translated
+msgid "File uploaded"
+msgstr "ファイルをアップロードしました"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "G-codeをアップロード中..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "印刷を開始中..."
+
+# AI Translated
+msgid "Print started"
+msgstr "印刷を開始しました"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "アップロード中..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "ネットワークライブラリのバージョンが指定されていません"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "ネットワークライブラリが見つかりません"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "ネットワークライブラリの読み込みに失敗しました"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "ネットワークライブラリを読み込めませんでした"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "旧世代のプラグインシリーズです。デバイスエラーダイアログでの印刷失敗スナップショットなど、新しいプラグインのサポートが必要な機能は利用できません。"
+
+# AI Translated
+msgid "unknown name"
+msgstr "不明な名前"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"プラグイン「%s」がファイルシステムの次の場所への読み取りアクセスを要求しています:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "プラグインの権限"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -31010,36 +35491,48 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
"プラグイン「%s」が以下のファイルの読み取りを要求しています:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
"プラグイン「%s」が以下のファイルの読み取り/書き込みを要求しています:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
"プラグイン「%s」が以下のファイルの作成を要求しています:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
"プラグイン「%s」が以下のファイルの削除を要求しています:\n"
"%s"
@@ -31064,10 +35557,27 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"プラグイン「%s」が以下のコマンドの実行を要求しています:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "プラグイン「%s」がスレッドの作成の許可を要求しています。"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"プラグイン「%s」が以下のコマンドの実行を要求しています:\n"
+"プラグイン「%s」が、実行中のアプリケーションを次のものに置き換えるよう要求しています:\n"
"%s"
# AI Translated
@@ -31079,6 +35589,46 @@ msgstr "プラグイン「%s」がPython監査イベント「%s」の許可を
msgid "Plugin permission request"
msgstr "プラグインの権限リクエスト"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "プリセットに保存されているプラグイン機能の設定JSONが無効です。"
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "プリセットのプラグイン機能の設定が配列ではないため、編集できません。"
+
+# AI Translated
+msgid "Printer connection"
+msgstr "プリンター接続"
+
+# AI Translated
+msgid "Pages"
+msgstr "ページ"
+
+# AI Translated
+msgid "Analysis"
+msgstr "解析"
+
+# AI Translated
+msgid "Importer"
+msgstr "インポーター"
+
+# AI Translated
+msgid "Exporter"
+msgstr "エクスポーター"
+
+# AI Translated
+msgid "Visualization"
+msgstr "可視化"
+
+# AI Translated
+msgid "Script"
+msgstr "スクリプト"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "スライスパイプライン"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "プラグインの設定UIが空でした。デフォルトのエディターを表示します。"
@@ -31101,8 +35651,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "設定をディスクに書き込めませんでした。何も変更されていません。"
# AI Translated
-msgid "Plugin installation failed"
-msgstr "プラグインのインストールに失敗しました"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "プラグインのインストールに失敗しました: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: インストール済みのプラグインがカタログに見つかりませんでした。"
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "クラウドプラグインのキーにUUIDがありません。"
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "クラウドプラグインの購読に失敗しました。詳細はログを確認してください。"
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "購読を解除できるのはクラウドプラグインのみです。"
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "プラグインの購読解除に失敗しました。詳細はログを確認してください。"
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "プラグインのダウンロードURLの取得に失敗しました (結果: %1%)。"
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "このクラウドプラグインをダウンロードする権限がありません。"
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "このオペレーティングシステム用のプラグインパッケージはありません。"
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "選択したプラグインのバージョンが見つかりませんでした。"
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "プラグインのバージョン%1%が見つかりませんでした。"
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "クラウドプラグインが見つかりませんでした。"
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "クラウドプラグインのダウンロードが見つかりませんでした: %1%。"
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "クラウドプラグインのダウンロードが見つかりませんでした。"
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "このプラグインにはダウンロードURLがありません。ログでエラーを確認してください。"
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "プラグインのダウンロードに失敗しました: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "プラグインのダウンロードがHTTPステータス%1%で失敗しました。"
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "プラグインのダウンロードで空のデータが返されました。"
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "プラグインのダウンロード用の一時ファイルを作成できませんでした。"
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "プラグインデータを一時ファイルに書き込めませんでした。"
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "プラグインフォルダを解決できませんでした: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "プラグインフォルダ%1%を削除できませんでした: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "プラグインのディレクトリが存在しません: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "プラグインのディレクトリに複数の.pyファイルがあります: %1%と%2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "プラグインのディレクトリに複数の.whlファイルがあります: %1%と%2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "プラグインのディレクトリに.pyと.whlの両方のエントリファイルがあります"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "プラグインのディレクトリに.pyまたは.whlのエントリファイルがありません"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "スライスパイプラインプラグイン「%1%」のエラー: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "プラグインパッケージは.pyまたは.whlファイルでなければなりません。指定されたもの: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "プラグインの.whl依存関係%1%を展開できませんでした: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr ".whl依存関係をsys.pathに追加できませんでした: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Pythonインタープリターが初期化されていません: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "プラグインのマニフェストが無効です: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "プラグインの依存関係のインストールに失敗しました: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "プラグインモジュールの読み込みに失敗しました: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "プラグインの登録に失敗しました: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "プラグインモジュールが機能を1つも登録しませんでした"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "プラグインがタイプ%2%の機能「%1%」を重複して宣言しています"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "プラグイン機能の実体化に失敗しました: %1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "プラグイン機能の実体化に失敗しました"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "プラグインのon_loadに失敗しました: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "プラグインのon_loadに失敗しました"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "プラグインパッケージがファイルではありません: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "クラウドプラグインのUUIDが有効な識別子ではありません: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "プラグインディレクトリ%1%を作成できませんでした: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "既存のプラグイン%1%のバックアップに失敗しました: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "プラグインファイルを%1%にコピーできませんでした: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "プラグインのインストール状態を書き込めませんでした: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "プラグインパッケージは既に読み込まれています: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "タイプ%1%と名前「%2%」で機能が衝突しています"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "重複するプラグインキーが見つかりました: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "プラグインの読み込みはまだ進行中です"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "プラグインが無効です: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "プラグインが見つかりません: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "予期しないプラグイン読み込みエラー: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "予期しないプラグイン読み込みエラー"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "プラグインのマニフェストが見つかりません: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "クラウドからプラグインを取得できませんでした。詳細はログを確認してください。"
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "このプラグインをインストールするにはOrcaCloudにサインインしてください。"
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "購読済みのクラウドプラグインがOrcaCloudから返されませんでした。"
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "クラウドプラグインのダウンロードに失敗しました。"
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "クラウドプラグインのインストールに失敗しました。"
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "更新できるのはクラウドプラグインのみです。"
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "このプラグインに利用可能な更新はありません。"
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "既知のプラグインディレクトリ外にあるプラグインは削除できません。"
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "既知のプラグインディレクトリ外にあるプラグインは更新できません。"
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "プラグインをローカルのまま保持できません: ローカルのプラグインキーが既に存在します: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "プラグインのインストール状態を更新できませんでした: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "自分のプラグインは購読解除できません。"
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "削除と購読解除ができるのはクラウドプラグインのみです。"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "自分のプラグインは購読解除できません。ローカルファイルを削除するには「削除」を使用してください。"
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "プラグインのファイルシステム読み取り権限のリクエストが拒否されました"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -31136,6 +36022,10 @@ msgstr "両側押し出しの結合に失敗しました"
msgid "imported regions produced no extrudable geometry"
msgstr "インポートした領域から押し出し可能なジオメトリが生成されませんでした"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "プロファイルが回転押し出しの軸と交差しています — 軸の片側に収める必要があります"
+
# AI Translated
msgid "Failed to revolve"
msgstr "回転押し出しに失敗しました"
@@ -31172,6 +36062,10 @@ msgstr "ポケットの面の作成に失敗しました"
msgid "Pocket cut failed"
msgstr "ポケットのカットに失敗しました"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "プロファイルが自己交差または折り返しているため、1つの領域を囲んでいません"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "スケッチに閉じたループがありません"
@@ -31204,10 +36098,26 @@ msgstr "mesh_to_brep: メッシュに三角形がありません"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: すべての三角形が縮退として除外されました (より小さい許容値を試してください)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "フィレット半径は0より大きくなければなりません"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "そのグループにフィレット対象のエッジがありません"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "このジオメトリに対してフィレットの半径が大きすぎます"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "面取り距離は0より大きくなければなりません"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "そのグループに面取り対象のエッジがありません"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "このジオメトリに対して面取りの距離が大きすぎます"
@@ -31220,6 +36130,153 @@ msgstr "apply_fillet: OCCTのフィレットに失敗しました"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: OCCTの面取りに失敗しました"
+# AI Translated
+msgid "empty component list"
+msgstr "コンポーネントリストが空です"
+
+# AI Translated
+msgid "empty component index"
+msgstr "コンポーネントのインデックスが空です"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "コンポーネントのインデックスは1以上でなければなりません (指定値: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "無効なコンポーネントのインデックス「%1%」"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "コンポーネントは少なくとも2つ必要です (指定数: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "コンポーネントのインデックス%1%が重複しています"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "比率の値が空です"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "比率は正の値でなければなりません (指定値: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "無効な比率「%1%」"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "比率の数はコンポーネント数と一致する必要があります: 期待値%1%、実際の値%2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "カンマ区切りの2つの浮動小数点数が必要です。例: \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "開始比率と終了比率は(0, 1)の範囲内でなければなりません"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "配列サイズ%1%がフィラメントスロット数%2%と一致しません"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "混合フィラメントのパラメータを指定する場合は設定が必要です"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "スロット%1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "スロット%1%: コンポーネント%2%が範囲外です (物理フィラメントの最大インデックスは%3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "スロット%1%: 自分自身をコンポーネントとして参照できません"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "スロット%1%: コンポーネント%2%が混合フィラメントのスロットを参照しています"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "スロット%1%: グラデーションにはちょうど2つのコンポーネントが必要です"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "スロット%1%: カーブが無効です (有効な制御点が少なくとも2つ必要です)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "設定ファイル「%1%」の読み込みに失敗しました: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "%1%で生成されたG-codeファイルではありません。"
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "設定タグ「%1%」が見つかりません"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "%1%から抽出された設定値の数が異常に少ないです: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"STEPファイルの読み込みに失敗しました。\n"
+"ファイルを読み取り用に開けません。\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "SVGのインポートに失敗しました: SVGを開けませんでした。"
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "SVGのインポートに失敗しました: インポートしたSVGデータを解析できませんでした。"
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "カスタムG-codeがz_retractedに負の値を報告しています。"
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "カスタムG-codeがz_restart_extraに負の値を報告しています。"
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "ディレクトリ%1%の%2%へのコピーに失敗しました: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "認証が完了しました"
@@ -31677,6 +36734,1117 @@ msgstr ""
"反りを避ける\n"
"ABSのような反りやすい素材を印刷する場合、ヒートベッドの温度を適切に上げることで、反りが発生する確率を下げることができることをご存知ですか?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "フィラメントの色を選択してください"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "ブリッジのライン幅です。%で指定した場合、ノズル径に対して計算されます。\n"
+#~ "ブリッジ密度やブリッジ流量比を高めに設定して使用することをおすすめします。\n"
+#~ "\n"
+#~ "最大値は100%またはノズル径です。\n"
+#~ "0に設定すると、ライン幅は内部ソリッドインフィルの幅と同じになります。"
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "外周が上向きにカールしている可能性がある領域で、印刷を減速させる場合にこのオプションを有効にします。\n"
+#~ "例えば、Benchyの船首のような鋭角部のオーバーハングを印刷する際に追加の減速が適用され、複数の層にわたって蓄積するカールを抑えられます。\n"
+#~ "\n"
+#~ "プリンターの冷却が十分に強力であるか、印刷速度が十分に遅く外周のカールが起きない場合を除き、通常はこのオプションを有効にすることをおすすめします。 \n"
+#~ "外壁速度が高い状態で印刷している場合、印刷速度の差が大きくなり押出機が要求された流量変化に追随できなくなるため、減速時に壁面のアーティファクトが生じることがあります。\n"
+#~ "これらのアーティファクトの根本原因は、多くの場合PAの調整がわずかにずれていることであり、特にPAスムーズ時間が長い場合に顕著です。\n"
+#~ "\n"
+#~ "このオプションを有効にする際の推奨事項:\n"
+#~ "1. Pressure Advanceのスムーズ時間を0.015〜0.02に下げ、押出機が速度変化に素早く反応するようにします。\n"
+#~ "2. 最小印刷速度を上げて減速の幅を抑え、速い区間と遅い区間の差を小さくします。\n"
+#~ "3. それでもアーティファクトが出る場合は、Extrusion Rate Smoothing (ERS) を有効にして流量の遷移をさらに滑らかにします。\n"
+#~ "\n"
+#~ "注意: このオプションを有効にすると、オーバーハング外周はオーバーハングとして扱われるため、オーバーハングする外周がブリッジの一部であってもオーバーハング速度が適用されます。\n"
+#~ "例えば、外周が100%オーバーハングで下に支える壁がない場合、100%オーバーハング時の速度が適用されます。"
+
+# AI Translated
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "外部から見えるブリッジ押出の速度です。\n"
+#~ "\n"
+#~ "さらに、「カールした外周で減速」が無効、またはクラシックオーバーハングモードが有効な場合、ブリッジかオーバーハングかに関わらず、支持率13%未満のオーバーハング壁の印刷速度になります。"
+
+# AI Translated
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "この個別の設定は、半径がsmall_perimeter_threshold以下の外周 (通常は穴) の速度に影響します。パーセント (例: 80%) で指定した場合、上の外壁速度の設定を基準に計算されます。自動にするには0を設定してください。"
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "「小さな外周」と同様ですが、サポート用です。この個別の設定は、`small_support_perimeter_threshold`以下の領域のサポート速度に影響します。パーセント (例: 80%) で指定した場合、上のサポートまたはサポートインターフェースの速度設定を基準に計算されます。自動にするには0を設定してください。"
+
+# AI Translated
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "内壁と外壁の印刷順序です。\n"
+#~ "\n"
+#~ "オーバーハングを最良にするには内壁→外壁を使用します。オーバーハングする壁が印刷中に隣接する外周に密着できるためです。ただし、外周が内周に押し付けられて変形するため、表面品質はわずかに低下します。\n"
+#~ "\n"
+#~ "外面の仕上がりと寸法精度を最良にするには内壁→外壁→内壁を使用します。外壁が内周に乱されずに印刷されるためです。ただし、外壁を印刷する際に支えとなる内周がないため、オーバーハング性能は低下します。このオプションは3本目以降の内壁を先に印刷し、次に外壁、最後に1本目の内壁を印刷するため、効果を得るには最低3本の壁が必要です。多くの場合、外壁→内壁よりこのオプションをおすすめします。\n"
+#~ "\n"
+#~ "外壁→内壁は内壁→外壁→内壁と同様に外壁の品質と寸法精度の利点がありますが、新しい層の最初の押出が見える面から始まるため、Zシームの一貫性が低く見えます。"
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "1層目を造形時に、ソリッド インフィル以外の部分の造形速度です。"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "1層目のソリッド インフィルの造形速度です。"
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "インフィル領域をわずかに広げて壁面と重ねることで、接着を改善します。パーセント値はスパース インフィルのライン幅に対する相対値です。過剰押出や材料の蓄積による上面のざらつきを最小限に抑えるには、この値を10〜15%程度に設定します。"
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "上面ソリッドインフィルの領域をわずかに広げて壁面と重ねることで、接着を改善し、上面インフィルと壁面の境目にできるピンホールを目立たなくします。25〜30%が良い出発点で、ピンホールを目立たなくできます。パーセント値はスパース インフィルのライン幅に対する相対値です。"
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "セグメント化された領域の連動深さ。mmu_segmented_region_max_width \"が0か、\"mmu_segmented_region_interlocking_depth \"が \"mmu_segmented_region_max_width \"より大きい場合は無視される。ゼロはこの機能を無効にする。"
+
+# AI Translated
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "上面の外周の高さを下げて、モデルの縁の高さに合わせます。\n"
+#~ "この角度 (度) 未満の傾斜を持つ外周に影響します。\n"
+#~ "35程度が妥当な値です。0にすると無効になります。"
+
+# AI Translated
+#~ msgid "Role base wipe speed"
+#~ msgstr "ロール基準のワイプ速度"
+
+# AI Translated
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "保護シールドは、ABSやASAの印刷物が風によって反ったりベッドから剥がれたりするのを防ぐのに役立ちます。通常はエンクロージャーのないオープンフレームのプリンターでのみ必要です。\n"
+#~ "\n"
+#~ "有効 = スカートは最も高い印刷オブジェクトと同じ高さになります。それ以外の場合は「スカートの高さ」が使用されます。\n"
+#~ "注意: 保護シールドが有効な場合、スカートはオブジェクトからスカート距離だけ離して印刷されます。そのため、ブリムが有効だと交差する可能性があります。これを避けるには、スカート距離の値を大きくしてください。\n"
+
+# AI Translated
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "ワイプタワーでのパージ時、およびワイプタワーのスパース層を印刷する際の最大印刷速度です。パージ時に、スパース インフィル速度やフィラメントの最大体積速度から計算された速度の方が低い場合は、最も低い速度が使用されます。\n"
+#~ "\n"
+#~ "スパース層の印刷時に、内周速度やフィラメントの最大体積速度から計算された速度の方が低い場合は、最も低い速度が使用されます。\n"
+#~ "\n"
+#~ "この速度を上げるとタワーの安定性に影響する可能性があり、ワイプタワーにできたブロブにノズルが衝突する際の力も大きくなります。\n"
+#~ "\n"
+#~ "このパラメータをデフォルトの90 mm/sより大きくする前に、上げた速度でもプリンターが安定してブリッジでき、ツール交換時の垂れ出しが十分に制御できていることを確認してください。\n"
+#~ "\n"
+#~ "ワイプタワーの外周には、この設定に関わらず内周の速度が使用されます。"
+
+# AI Translated
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "ワイプタワーの外壁タイプです。\n"
+#~ "1. 長方形: デフォルトの壁タイプで、幅と高さが固定された長方形です。\n"
+#~ "2. コーン: 底部にフィレットを持つ円錐形で、ワイプタワーの安定に役立ちます。\n"
+#~ "3. リブ: タワーの壁に4本のリブを追加して安定性を高めます。"
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "ワイプタワーのパージラインで使用される余分の量。 これによって、パージラインが通常よりも太くなったり、細くなったりします。 間隔は自動的に調整されます。"
+
+# AI Translated
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "短く閉じていない壁が印刷されて印刷時間が増えるのを防ぐため、この値を調整します。値を大きくすると、より多くの、より長い壁が取り除かれます。\n"
+#~ "\n"
+#~ "注意: モデル外側に視覚的な隙間が生じるのを防ぐため、底面と上面はこの値の影響を受けません。上面と見なす判定の感度は、下の詳細設定にある「1本壁のしきい値」で調整してください。「1本壁のしきい値」は、この設定がデフォルト値の0.5より大きい場合、または上面1本壁が有効な場合にのみ表示されます。"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "%1%個のパーツに分割"
+
+#~ msgid "Repair failed"
+#~ msgstr "修復が失敗しました"
+
+#~ msgid "Repair canceled"
+#~ msgstr "修復を取消しました"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "このレイヤーが下のレイヤーと重なる部分での動作です。「追加」と「減算」は起伏を盛り上げたり削ったりします。「乗算」と「除算」は下にあるものを拡大縮小するため、このレイヤーはその上のマスクになります - その場合「深さ」は強度として働き、1 mmでは白い部分は変化しません。"
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "メッシュに非多様体ジオメトリまたは開いた境界があります。そのままインポートするか、インポート前にWindowsの3D修復サービスで修復できます。"
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "メッシュに非多様体ジオメトリまたは開いた境界があることに注意してください。"
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "メッシュの問題"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "修復に失敗しました: 穴埋め後もメッシュが開いたままです。"
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "論理演算を非ブールのオペランドに適用できません。"
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "読み込み中"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "使用するフィラメント数は多いです。最初%1%個のフィラメントを使用できます"
+
+#~ msgid "Shortcut Key "
+#~ msgstr "ショートカット"
+
+#~ msgid "Build Volume"
+#~ msgstr "ビルドボリューム"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "オブジェクト(%1%)にコネクターの重複があります。スライス結果で一部のコネクターが欠落する可能性があります。\n"
+#~ "この問題が発生した状況をOrcaSlicerチームにご報告ください。\n"
+#~ "ご協力ありがとうございます。"
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d 個の三角形"
+
+#~ msgid " (Moving)"
+#~ msgstr " (移動中)"
+
+#~ msgid " (Fixed)"
+#~ msgstr "(固定)"
+
+#~ msgid "Filament "
+#~ msgstr "フィラメント"
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "ホットエンド"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "レイアウト中 "
+
+#~ msgid "Orienting"
+#~ msgstr "向き調整中"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "すべての軸を原点復帰してください("
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ")。造形可能領域外へ移動してしまうことを防ぎます。"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "最適なグルーピングと比較して%1%gのフィラメントと%2%回の変更が増加します。"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "最適なグルーピングと比較して%1%gのフィラメントが増加し、%2%回の変更が節約されます。"
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "最適なグルーピングと比較して%1%gのフィラメントが節約され、%2%回の変更が増加します。"
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "シングルノズルプリンターと比較して%1%gのフィラメントと%2%回の変更が節約されます。"
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "シングルノズルプリンターと比較して%1%gのフィラメントが節約され、%2%回の変更が増加します。"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "シングルノズルプリンターと比較して%1%gのフィラメントが増加し、%2%回の変更が節約されます。"
+
+#~ msgid "number keys"
+#~ msgstr "数字キー"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "フィラメント%sは%sに配置されていますが、生成されたG-codeパスが%sの印刷可能範囲を超えています。"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "フィラメント%sは%sに配置されていますが、生成されたG-codeパスが%sの印刷可能高さを超えています。"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "フィラメント%sはこのプレートの表面に直接印刷できません。"
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "新しいモデルを作成する前に閉じられます。続行しますか?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "クラウドスライスキューには%sタスクが先にあります。"
+
+#~ msgid " upload failed"
+#~ msgstr " アップロード失敗"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " アップロード設定の解析に失敗しました\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " 対応するストレージバケットがありません\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " を開くことができません\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "以下の理由でコメントの結果をアップロードできません:\n"
+#~ "\n"
+#~ " エラーコード: "
+
+#~ msgid "error message: "
+#~ msgstr "エラーメッセージ: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "ウェブページにリダイレクトして評価しますか?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (プロセスプリセット: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "%sノズルは%sを印刷できません。"
+
+#~ msgid " nozzle"
+#~ msgstr " ノズル"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "%1%で以下のフィラメントを印刷することは推奨されません: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr "プレート%1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "%1% 個の混合フィラメントをすべて削除しますか?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "置換しますか"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "ベッド温度の競合: T%d (%s) はベッドを%d°Cに設定しますが、T%d (%s) は%d°Cを必要とします。ベッドはプライマリツールが制御し、セカンダリツールはその設定温度で印刷します。"
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "キャリブレーション用の加速度が提供されていません。デフォルトの加速度値を使用します "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "キャリブレーション用の速度が提供されていません。デフォルトの最適速度を使用します "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "%1%~%2% °Cの範囲に対応するベルト用温度タワーはありません。タワーモデルが対応する範囲 (例: 230~190) を使用してください。"
+
+#~ msgid "The selected file"
+#~ msgstr "選択したファイル"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "有効なG-codeが含まれていません。"
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "OrcaSlicerに関連付けて、Orcaがモデルを開けるようにする"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "最適なグルーピングより%dgのフィラメントと%d回の変更が多くなります。"
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "このアイコンが付いたパラメータは、ノズルごとに設定できます。"
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "保留キーワードが見つかりました"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d個のフィラメントプリセットと%d個のプロセスプリセットがこのプリンターに関連付けられています。プリンターを削除するとこれらのプリセットも削除されます。"
+
+# AI Translated
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "以下のプリセットがこのプリセットを継承しています。"
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% プリセット"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "選択したプリセットを %1% しますか?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "%1%個のパーツに分割"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "新しいベンダープロファイルをダウンロード中: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "ベンダープロファイルのダウンロードに失敗しました: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "このSpanモードで色を印刷できるのは%1%のみですが、フィラメント%2%はどのツールにも割り当てられていません。%1%に割り当てられたフィラメントを使用するか、このプレートをプライマリ (Primary) モードに切り替えてください。"
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "このSpanモードで色を印刷できるのは%1%のみですが、フィラメント%2%はT%3%に割り当てられています。%1%に割り当てられたフィラメントを使用するか、このプレートをプライマリ (Primary) モードに切り替えてください。"
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr "が除外領域に近すぎます。衝突の可能性があります。"
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " がクランピング検出エリアに近すぎます。印刷中に衝突が発生する可能性があります。"
+
+#~ msgid "Prime Tower"
+#~ msgstr "プライムタワー"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr "他のオブジェクト に近すぎるので、衝突の可能性があります\n"
+
+# AI Translated
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " は除外エリアに近すぎるため、衝突が発生します。\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " がクランピング検出エリアに近すぎ、衝突が発生します。\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " は造形可能領域から一部はみ出しているため、印刷できません。\n"
+
+# AI Translated
+# Needs human review: Substituted as %3% into 'IDEX/IQEX mode "%1%" prints with T%2%, but this plate's filaments are on %3%.' (Print.cpp); check the Japanese sentence reads right with it.
+#~ msgid "no configured tool"
+#~ msgstr "未設定のツール"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "造形完了時のG-codeを追加"
+
+#~ msgid "Maximum X speed"
+#~ msgstr "最大速度 X"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "最大速度 Y"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "最大速度 Z"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "最大速度 E"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "スライスパイプラインの各ステップで呼び出され、中間のスライスデータを読み取り・変更するPythonプラグインです。最終的なG-codeの後処理ステップも含みます。研究/実験用です。"
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "有効にすると、スライサーはプライマリゾーンの内容をベッド原点 (0,0) を中心に配置したG-codeを出力します。各物理ゾーン位置へのコピー/ミラーの配置はプリンターのファームウェアが行います。コピー/ミラーモードでファームウェアが独自のゾーンオフセットを適用するプリンター (例: RepRapFirmwareのIDEX複製モード) でのみ有効にしてください。プライマリ (Primary) モードでは効果がありません。"
+
+# AI Translated
+# Needs human review: 'pem-inversion' is developer jargon (inverse of the physical extruder map); check the wording is understandable.
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "物理ヘッドをフィラメントスロットに対応付ける、プレートごとのオーバーライドです (1始まり)。空の場合はpem反転によるデフォルトを使用します。"
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "スライス前にメッシュを回転させる軸です。これはベルトプリンターの傾斜で、歪みのない等長回転です。ベッドの描画とサポートの重力方向の傾斜にも使用され、G-codeの逆変換では、機械座標系のせん断/スケールとリマップの前にこの回転が元に戻されます。一般的なガントリーの傾斜はXです (ベルトはY方向に移動)。"
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "エキスパート向けの上書き設定: 機械座標系 (G-codeのせん断/スケール) の傾斜角度を、スライス前の回転角度とは独立して設定します。無効の場合、機械座標系の変換はベルト傾斜角度から導出されるため、1つの角度で両方の段階を制御します。物理的なガントリーの傾斜がスライス時の回転と異なるマシンを補正する場合にのみ有効にしてください。"
+
+# AI Translated
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "「最大壁解像度」設定で解像度を下げる際に許容される最大偏差です。これを大きくすると印刷の精度は下がりますが、G-Codeは小さくなります。「最大壁偏差」は「最大壁解像度」を制限するため、両者が競合する場合は「最大壁偏差」が優先されます。"
+
+#~ msgid " not in range "
+#~ msgstr "範囲外 "
+
+#~ msgid "floating regions"
+#~ msgstr "浮動領域"
+
+#~ msgid "floating cantilever"
+#~ msgstr "浮動片持ち梁"
+
+#~ msgid "large overhangs"
+#~ msgstr "大きなオーバーハング"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "オブジェクト %s に %s があるようです。オブジェクトの向きを変更するか、サポート生成を有効にしてください。."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "レイヤーが検出されませんでした。STLファイルを修正するか、サイズや厚さを確認して再試行してください。\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "この機種では、ノズルごとに最大 %d 件の履歴結果のみ保持できます。この結果は保存されません。"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "このマシンタイプはノズルあたり%d個の履歴結果のみ保持できます。"
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "オーバーハング"
+
+#~ msgid "Start / End"
+#~ msgstr "開始/終了"
+
+#~ msgid "Damp"
+#~ msgstr "ダンプ"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "プリンターで%d個のIFSスロットを検出しました。"
+
+#~ msgid "selected"
+#~ msgstr "選択済み"
+
+# AI Translated
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "以下のプリセットがこのプリセットを継承しています。"
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "%zu台のCrealityプリンターが見つかりました。1台を選択して「選択したものを使用」をクリックしてください。"
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "ログ"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "エラー: %s押出機に利用可能な%sノズルがないため、現在のグループ分け結果は無効です。"
+
+#~ msgid "invalid brim ears"
+#~ msgstr "不適切なブリム"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "%d個のオブジェクトをスキップします。"
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "エクスプローラーでフォルダを開く"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "中心、次に頂点をクリック — %d 辺、%s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "外接"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "内接"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "スケッチを作成しました (駆動寸法 %zu 個) — 選択して右クリックで押し出し"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — 三角形 %zu 個"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "このメッシュには%d個の三角形があります。同一平面の結合前にすべての三角形がB-repの面になるため、インポートに時間がかかり、編集が遅いボディになる可能性があります。通常は先にメッシュを間引くことをおすすめします。\n"
+#~ "\n"
+#~ "それでもインポートしますか?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "ソリッドをインポートしました — 三角形 %d 個 → 面 %d 個、体積 %.2f mm³。面またはエッジを選択し、フィレット / カット / シェルで変更します"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — ドラッグで配置/サイズ調整し、確定してください"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d 個のスケッチエンティティ"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — 値を入力してEnterを押してください (または確定)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "プレビュー — 三角形 %zu 個"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "%1% 個の拘束はこのジオメトリ (楕円やスプライン曲線、またはサイズ0の円) に作用できないため無視されます"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "フィレット/面取りで無効になった %1% 個の拘束を削除しました"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "変換により %1% 個の拘束が解除されました"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...ほかに%1%個の開いた端点があります"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "材料リストは最大%1%色までサポートしています。%2%で分解すると、材料数が%1%を超えてしまいます。分解する前に、メイン画面で未使用のフィラメントを削除してください。"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%2%個のフィラメントで印刷可能な色: %1%色"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1%個のUVアイランド"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "%1%個のレイヤーをすべて使用済み"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "プレビュー: 三角形 %1% 個"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "モデル: 三角形 %1% 個 - 焼付けでは上の分解能まで、上限数の範囲内で細分化します"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "焼付けでは既存の頂点を動かします - モデルは三角形 %1% 個のままです"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "焼付け結果は最大で約 %1% k 個の三角形"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1%個のレイヤーは未ペイントのためスキップ"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "プロジェクトでサポートされるフィラメントは最大%d個です。超過したフィラメントは破棄されます。"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d個の頂点を選択中 | ドラッグ = まとめて移動、Shift/Ctrlクリック = 追加/削除"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d本のエッジを選択中 | ドラッグ = まとめて移動、Shift/Ctrlクリック = 追加/削除"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d個のアイランドを選択中 | ドラッグ = まとめて移動、Shift/Ctrlクリック = 追加/削除、R/S = メインのアイランドを回転/拡大縮小"
+
+# AI Translated
+# Needs human review: The English names a 'Tiling' control, but the layer settings show 'Tile' (タイル) and 'Tile size' (タイルサイズ); check which control is meant.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "アクティブなレイヤーのタイルサイズです。テクスチャ1回分の繰り返しがモデルのどれだけを覆うかを示します。キャンバスはタイル単位で測られるため、グリッドの1マスが1回分の繰り返しになります。レイヤー設定のタイリングで変更できます。"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "UVアイランド %d 個、面 %s 個"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "プラグイン「%s」が以下のファイルの読み取りを要求しています:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "プラグイン「%s」が以下のファイルの読み取り/書き込みを要求しています:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "プラグイン「%s」が以下のファイルの作成を要求しています:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "プラグイン「%s」が以下のファイルの削除を要求しています:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "プラグイン「%s」が以下のコマンドの実行を要求しています:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "プラグインのインストールに失敗しました"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Microsoft WebView2 Runtimeをインストールできませんでした。\n"
+#~ "インストールされるまで、セットアップウィザードを含む一部の機能が空白で表示される場合があります。\n"
+#~ "https://developer.microsoft.com/microsoft-edge/webview2/ から手動でインストールし、Orca Slicerを再起動してください。"
+
+#~ msgid "Why this grouping"
+#~ msgstr "なぜこのグルーピングか"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "ソフトウェアは1つの印刷で異なる径のノズルの使用をサポートしていません。左右のノズルが一致しない場合、シングルヘッド印刷のみ可能です。このプロジェクトに使用するノズルを確認してください。"
+
+#~ msgid "Switch diameter"
+#~ msgstr "直径を切り替え"
+
+# AI Translated
+#~ msgid "BambuStudio Project"
+#~ msgstr "BambuStudioプロジェクト"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "この3MFはBambuStudio (バージョン%s) で作成されており、互換バージョン%sより新しいものです。認識できない設定が見つかりました:"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "この3MFはBambuStudio (バージョン%s) で作成されており、互換バージョン%sより新しいものです。一部の設定が完全には互換でない可能性があります。"
+
+# AI Translated
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "この3MFはBambuStudioで作成されています。一部の設定がOrcaSlicerと異なる場合があります。"
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "処理の実行中は元に戻す/やり直しを実行できません。先に処理を停止してください。"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "各パーツの内部インフィルを、アセンブリ全体ではなく、そのパーツ単体でスライスした場合のようにパーツ自身の中心に合わせます。接触または重なっているパーツは1つの本体として扱われ、中心を共有します。分離したパーツ (または別々の3Dオブジェクト) はそれぞれ独自の中心を持ちます。\n"
+#~ "アセンブリが複数のオブジェクトをまとめており、それぞれに一貫した自己中心のインフィルを保ちたい場合に便利です。\n"
+#~ "直線およびグリッドのパターンと、回転テンプレートのインフィルに影響します。\n"
+#~ "グローバル座標に固定されたパターン (ジャイロイド、ハニカム、TPMSなど) は影響を受けません。"
+
+# AI Translated
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "現在の層のインデックスです。1から始まります (つまり1層目は1です)。"
+
+#~ msgid "Video tutorial"
+#~ msgstr "ビデオチュートリアル"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "プリミティブ"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "空のメッシュが生成されました"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "ボックス"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "クイック:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "幅 (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "奥行き (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "高さ (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "底面半径"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "上面半径"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "大半径"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "小半径"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "すべてのエッジ"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "上面のエッジ"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "底面のエッジ"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "側面のエッジ"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "メッシュ分解能"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "形状を追加"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "外側のプロファイルがありません"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "外側の面を作成できませんでした"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "穴のある面を作成できませんでした"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "回転押し出しに失敗しました"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "プロファイル"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "新しいプロファイルを開始 (穴用)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "セグメント数"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "辺数"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "キャンバスをクリックして描画"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "グリッドにスナップ"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "グリッド間隔"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "外側"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "閉じています"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% 点 %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (上面)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (正面)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (側面)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "回転押し出し角度"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "0で押し出し、0より大きい値で回転押し出し"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "ポケット (カット)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu個の閉じたプロファイル"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "有効にするには閉じたプロファイルを描画してください"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "結果が空です"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "押し出し: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "回転押し出し: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "オブジェクトが選択されていません"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "面の作成に失敗しました"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "穴のある面の作成に失敗しました"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "ツールメッシュが空です"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "ポケットを追加しました (マイナスボリューム)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "ポケット: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "展開 (LSCM) でマッピングされたアクティブレイヤーが必要です。"
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "チェッカー - テクスチャの代わりにテストグリッドを表示します。マス目が正方形のままの場所ではテクスチャは歪まず、引き伸ばされる場所ではテクスチャも引き伸ばされます"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "歪み - 展開による引き伸ばしを青から赤のヒートマップで表示"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "混合方法"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "表面"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "積層: 2つのフィラメントを積層ごとに交互に使います。垂直に近い面では滑らかに混ざりますが、上や下を向いた面では1つの積層全体が1色の帯になるため効果がありません。\n"
+#~ "表面: 表面全体に細かい市松模様を配置します。どの角度でも機能しますが、混色ではなくテクスチャのように見えることがあります。\n"
+#~ "自動: 垂直に近い面には積層を使い、上や下を向いた面には近い方の単一フィラメントを使います。そこでは市松模様が模様として見えてしまうためです。"
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "アイランド - アイランド全体を移動、回転、拡大縮小"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "頂点 - 頂点をドラッグして形状を変更。Shift/Ctrlで複数選択"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "エッジ - エッジをドラッグして形状を変更。Shift/Ctrlで複数選択"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "すべてのアイランドを全体表示 (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(実験的) プリントホストの代わりにプリンターエージェントを使用"
@@ -31710,16 +37878,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "面または参照平面をクリックしてから、描画ツールを選択"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -31776,10 +37934,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "垂直距離"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "直線状"
-
#~ msgid "Face recognition"
#~ msgstr "外観認識"
@@ -33230,9 +39384,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "線幅 %1% を算出できませんでした。%2%の値を取得できません。"
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Flow::with_spacing()に無効な間隔が指定されました。レイヤー高さと押出幅を確認してください"
-
#~ msgid "Continue to sync filaments"
#~ msgstr "フィラメントの同期を続行"
@@ -33378,9 +39529,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "パーツ選択"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction mode.\n"
#~ "\n"
diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po
index c6515d4bc4..4358072734 100644
--- a/localization/i18n/ko/OrcaSlicer_ko.po
+++ b/localization/i18n/ko/OrcaSlicer_ko.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2025-06-02 17:12+0900\n"
"Last-Translator: crwusiz \n"
"Language-Team: \n"
@@ -395,8 +395,10 @@ msgid "Please wait"
msgstr "잠시 기다려 주세요"
# AI Translated
-msgid "Reading"
-msgstr "읽는 중"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "인덕션 핫엔드 랙: 읽는 중 %d/%d"
msgid "Running..."
msgstr "실행 중..."
@@ -552,9 +554,11 @@ msgstr "변형도구 - 면에 배치"
msgid "Lay on Face"
msgstr "바닥면 선택"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "필라멘트 수가 페인팅 도구가 지원하는 최대 수를 초과합니다. 첫 번째 %1% 필라멘트만 페인팅 도구에서 사용할 수 있습니다."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "필라멘트 수가 페인팅 도구가 지원하는 최대 수를 초과합니다. 처음 %1%개의 필라멘트만 페인팅 도구에서 사용할 수 있습니다."
msgid "Color Painting"
msgstr "색 칠하기"
@@ -607,8 +611,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "단축키 "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "단축키 %d"
msgid "Triangle"
msgstr "삼각형"
@@ -707,6 +713,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "파트 선택"
+msgid "Select multiple objects"
+msgstr "여러 객체 선택"
+
msgid "Fixed step drag"
msgstr "고정 단계 드래그"
@@ -771,10 +780,79 @@ msgstr "부품"
msgid "Relative"
msgstr "상대"
+msgid "Selection"
+msgstr "선택"
+
+msgid "Plate"
+msgstr "플레이트"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "변형 작업에 사용되는 좌표계입니다."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "왼쪽 정렬"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "좌우 중앙 정렬"
+
+# AI Translated
+msgid "Align right"
+msgstr "오른쪽 정렬"
+
+# AI Translated
+msgid "Align front"
+msgstr "앞쪽 정렬"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "앞뒤 중앙 정렬"
+
+# AI Translated
+msgid "Align back"
+msgstr "뒤쪽 정렬"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "아래쪽 정렬"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "상하 중앙 정렬"
+
+# AI Translated
+msgid "Align top"
+msgstr "위쪽 정렬"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "좌우 균등 분배"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "앞뒤 균등 분배"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "상하 균등 분배"
+
+msgid "Drop"
+msgstr "내리기"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "절대"
@@ -877,9 +955,6 @@ msgstr "홈 각도"
msgid "Cut position"
msgstr "자르기 위치"
-msgid "Build Volume"
-msgstr "빌드 볼륨"
-
msgid "Multiple"
msgstr "다수"
@@ -1053,10 +1128,14 @@ msgstr "커넥터"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
"객체(%1%)에 중복된 커넥터가 있습니다. 슬라이싱 결과에서 일부 커넥터가 누락될 수 있습니다.\n"
"어떤 상황에서 이 문제가 발생했는지 OrcaSlicer 팀에 보고해 주십시오.\n"
"감사합니다."
@@ -1126,9 +1205,11 @@ msgstr "낮음"
msgid "Extra low"
msgstr "매우 낮음"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d 삼각형"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "삼각형 %1%개"
msgid "Show wireframe"
msgstr "와이어프레임 보기"
@@ -1139,6 +1220,17 @@ msgstr "미리 보기 진행 시 적용할 수 없습니다."
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "작업이 이미 취소중입니다. 몇 초만 기다려 주십시오."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "모델 단순화가 취소되었습니다"
+
+msgid "Wiki Guide"
+msgstr "위키 가이드"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "동영상 가이드"
+
msgid "Enforce seam"
msgstr "재봉선 적용"
@@ -1190,6 +1282,14 @@ msgstr "표면 위 위치"
msgid "Emboss"
msgstr "양각"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "스타일에 활성 글꼴이 없습니다. 올바른 글꼴을 선택하세요."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont가 제대로 로드되지 않았습니다."
+
# AI Translated
msgid "NORMAL"
msgstr "보통"
@@ -1849,11 +1949,25 @@ msgstr "직경"
msgid "Length"
msgstr "길이"
-msgid "Selection"
-msgstr "선택"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "면 1 (고정)"
-msgid " (Moving)"
-msgstr " (움직이는)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "면 2 (이동)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "점 1 (고정)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "점 2 (이동)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "선택 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1870,14 +1984,8 @@ msgstr ""
" 그들 사이의 거리를 지정하십시오."
# AI Translated
-msgid "Face"
-msgstr "면"
-
-msgid " (Fixed)"
-msgstr " (고정된)"
-
-msgid "Point"
-msgstr "가리키다"
+msgid "Selection 2"
+msgstr "선택 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1980,6 +2088,18 @@ msgstr "조립 변형도구 진입"
msgid "Leaving Assembly gizmo"
msgstr "조립 변형도구 나가기"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2157,14 +2277,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2 런타임"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Microsoft WebView2 Runtime을 설치할 수 없습니다.\n"
"설치하기 전까지는 설정 마법사를 포함한 일부 기능이 빈 화면으로 표시될 수 있습니다.\n"
-"https://developer.microsoft.com/microsoft-edge/webview2/ 에서 수동으로 설치한 후 Orca Slicer를 다시 시작하십시오."
+"%1% 에서 수동으로 설치한 후 Orca Slicer를 다시 시작하십시오."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2406,6 +2527,66 @@ msgstr "네트워크 플러그인 제한"
msgid "Privacy Policy Update"
msgstr "개인 정보 보호 정책 업데이트"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "모든 필라멘트 사전 설정을 대상 프린터에서 사용할 수 있습니다."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "필라멘트 사전 설정 이전"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0에서는 잘못된 프로파일을 바로잡고 향후 기능에 대비하기 위해 많은 시스템 필라멘트 사전 설정의 구조를 개편했습니다. 그 결과 아래 사전 설정이 원래 대상이었던 일부 프린터에 더 이상 표시되지 않습니다. 불편을 드려 죄송합니다. 이는 한 번만 적용되는 수정입니다.\n"
+"\n"
+"지금 해당 프린터를 사전 설정에 다시 추가하시겠습니까? 사전 설정은 먼저 백업됩니다. 나중에 도움말 > 필라멘트 사전 설정 이전 메뉴에서도 할 수 있습니다."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (%2% 기반)"
+
+msgid "Don't remind me again"
+msgstr "다시 알리지 마세요"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "사전 설정을 백업하지 못해 이전하지 않았습니다."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "사용자 사전 설정 폴더를 잠그지 못해 아무것도 이전하지 않았습니다. 다른 OrcaSlicer 인스턴스가 사전 설정을 저장 중일 수 있습니다. 나중에 도움말 > 필라멘트 사전 설정 이전 메뉴에서 다시 시도하십시오."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"필라멘트 사전 설정을 이전하지 못했습니다. 사전 설정 백업이 다음 위치에 저장되었습니다:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"필라멘트 사전 설정을 이전했습니다. 사용하던 필라멘트 목록에서 다시 선택하십시오.\n"
+"\n"
+"사전 설정 백업이 다음 위치에 저장되었습니다:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "다음 사전 설정을 이전하지 못했습니다:"
+
# AI Translated
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
@@ -2537,6 +2718,9 @@ msgstr "플러그인을 새로 고쳤습니다."
msgid "Failed to refresh plugins: %s"
msgstr "플러그인을 새로 고치지 못했습니다: %s"
+msgid "Unknown error"
+msgstr "알 수 없는 오류"
+
# AI Translated
msgid "Select plugin package"
msgstr "플러그인 패키지 선택"
@@ -2605,8 +2789,9 @@ msgstr "채우기"
msgid "Support"
msgstr "서포트"
+# AI Translated
msgid "Flush options"
-msgstr "버리기 옵션"
+msgstr "플러시 옵션"
msgid "Speed"
msgstr "속도"
@@ -2877,17 +3062,21 @@ msgstr "출력 가능 영역에 맞게 확장"
msgid "Scale an object to fit the build volume"
msgstr "출력 가능 영역에 맞게 객체 크기 조정"
+# AI Translated
msgid "Flush Options"
-msgstr "버리기 옵션"
+msgstr "플러시 옵션"
+# AI Translated
msgid "Flush into objects' infill"
-msgstr "객체의 채우기에서 버리기"
+msgstr "객체의 채우기에서 플러시"
+# AI Translated
msgid "Flush into this object"
-msgstr "객체에서 버리기"
+msgstr "객체에서 플러시"
+# AI Translated
msgid "Flush into objects' support"
-msgstr "객체의 서포트에서 버리기"
+msgstr "객체의 서포트에서 플러시"
msgid "Edit in Parameter Table"
msgstr "객체/부품 설정에서 편집"
@@ -3066,6 +3255,22 @@ msgstr "모두 다시 불러오기"
msgid "Reload all from disk"
msgstr "디스크에서 모두 다시 로드"
+# AI Translated
+msgid "Fix All"
+msgstr "모두 수리"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "현재 플레이트의 모든 모델 수리"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "전체 플레이트 수리"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "모든 플레이트의 모든 모델 수리"
+
msgid "Auto Rotate"
msgstr "자동 회전"
@@ -3117,8 +3322,14 @@ msgstr "(색상 손실)"
msgid "Center"
msgstr "중앙"
-msgid "Drop"
-msgstr "내리기"
+# AI Translated
+# Needs human review: 정렬 is also this catalog's rendering of Arrange; check the submenu in the object right-click menu is not mistaken for Arrange.
+msgid "Align/Distribute"
+msgstr "정렬/분배"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "객체 정렬 및 분배"
msgid "Edit Process Settings"
msgstr "프로세스 설정에서 편집"
@@ -3411,6 +3622,12 @@ msgid "Failed to repair the following model object"
msgid_plural "Failed to repair the following model objects"
msgstr[0] "다음 모델 객체 교정을 실패하였습니다"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "모델 객체 %1$d개는 수리가 필요하지 않았습니다."
+
msgid "Repairing was canceled"
msgstr "수리가 취소되었습니다"
@@ -3483,9 +3700,6 @@ msgstr "사용안함"
msgid "Outer wall speed"
msgstr "외벽 속도"
-msgid "Plate"
-msgstr "플레이트"
-
msgid "Brim"
msgstr "브림"
@@ -3575,9 +3789,6 @@ msgstr "사용자 정의 템플릿 추가"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "이 레이어의 시작 부분에 사용자 정의 템플릿 G-code를 삽입합니다."
-msgid "Filament "
-msgstr "필라멘트 "
-
msgid "Change filament at the beginning of this layer."
msgstr "이 레이어의 시작 부분에서 필라멘트를 변경합니다."
@@ -3668,6 +3879,8 @@ msgstr "변경"
msgid "Off"
msgstr "끄기"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "필터"
@@ -3772,8 +3985,9 @@ msgstr "새로운 필라멘트를 압출기에 밀어 넣습니다"
msgid "Grab new filament"
msgstr "새 필라멘트 가져오기"
+# AI Translated
msgid "Purge old filament"
-msgstr "오래된 필라멘트 제거"
+msgstr "이전 필라멘트 플러시"
msgid "Confirm extruded"
msgstr "압출 확인"
@@ -3782,12 +3996,19 @@ msgid "Check filament location"
msgstr "필라멘트 위치 확인"
# AI Translated
-msgid "Switch"
-msgstr "전환"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "일시 정지"
# AI Translated
-msgid "hotend"
-msgstr "핫엔드"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "압출기 전환"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "핫엔드 전환"
# AI Translated
msgid "Wait for AMS cooling"
@@ -3968,8 +4189,10 @@ msgid "Arranging"
msgstr "정렬 중"
# AI Translated
-msgid "Arranging "
-msgstr "정렬 중 "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "%1% 정렬 중"
msgid "Arranging canceled."
msgstr "정렬 취소됨."
@@ -4008,8 +4231,11 @@ msgstr ""
msgid "Orienting..."
msgstr "방향 지정 중..."
-msgid "Orienting"
-msgstr "방향 지정 중"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "%1% 방향 지정 중"
msgid "Orienting canceled."
msgstr "방향지정이 취소되었습니다."
@@ -4017,6 +4243,12 @@ msgstr "방향지정이 취소되었습니다."
msgid "Filling"
msgstr "채우기"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "%1% 채우는 중"
+
msgid "Bed filling canceled."
msgstr "베드 채우기 취소됨."
@@ -4032,6 +4264,34 @@ msgstr "방향 검색이 취소되었습니다."
msgid "Orientation found."
msgstr "방향을 찾았습니다."
+# AI Translated
+msgid "Best surface quality"
+msgstr "최고 표면 품질"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "최고의 표면 품질을 위해 객체 회전을 최적화합니다."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "오버행 경사 감소"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"서포트가 필요한 오버행이 최소가 되도록 객체 회전을 최적화합니다.\n"
+"참고: 높이가 설정되지 않은 경우 이 방법은 객체가 베드에 닿는 가장 좋은 면을 찾으려고 시도합니다."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "최저 Z 높이"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "더 빠른 출력 시간을 위해 Z 높이가 가장 낮아지도록 모델을 회전합니다."
+
msgid "Logging in"
msgstr "로그인 중"
@@ -4327,6 +4587,16 @@ msgstr "최근 프로젝트"
msgid "Go to Plate"
msgstr "플레이트로 이동"
+msgid "Device"
+msgstr "장치"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "장치 (웹)"
+
+msgid "Multi-device"
+msgstr "멀티 디바이스"
+
msgid "AMS Materials Setting"
msgstr "AMS 재료 설정"
@@ -4353,9 +4623,6 @@ msgstr "입력 값은 %1%보다 크고 %2%보다 작아야 합니다"
msgid "Factors of Flow Dynamics Calibration"
msgstr "동적 압출량 교정 계수"
-msgid "Wiki Guide"
-msgstr "위키 가이드"
-
msgid "PA Profile"
msgstr "PA 사전설정"
@@ -4385,6 +4652,14 @@ msgstr "유효한 값을 입력하세요 (%.1f~%.1f 사이의 K)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "유효한 값을 입력하세요 (%.1f~%.1f 사이의 K, %.1f~%.1f 사이의 N)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "즐겨찾는 필라멘트"
+
+# AI Translated
+msgid "All filaments"
+msgstr "모든 필라멘트"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4711,11 +4986,11 @@ msgstr "네트워크 플러그인이 설치되었지만 로드할 수 없습니
msgid "Restart Required"
msgstr "다시 시작 필요"
-msgid "Please home all axes (click "
-msgstr "모든 축을 홈으로 이동하세요(클릭 "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ")을 클릭하여 툴헤드의 위치를 찾습니다. 이렇게 하면 장치가 출력 가능한 경계를 벗어나 장치가 마모되는 것을 방지할 수 있습니다."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "툴헤드의 위치를 확인하려면 모든 축을 홈으로 이동하세요(%1% 클릭). 이렇게 하면 장치가 출력 가능한 경계를 벗어나 장비가 마모되는 것을 방지할 수 있습니다."
msgid "Go Home"
msgstr "홈으로"
@@ -4730,6 +5005,10 @@ msgstr "치명적인 오류가 발생했습니다: “%1%”"
msgid "Please save your project and restart the application."
msgstr "프로젝트를 저장하고 프로그램을 다시 시작하세요."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "알 수 없는 C++ 예외입니다."
+
# AI Translated
msgid "Processing G-Code from previous file…"
msgstr "이전 파일의 G-code를 처리하는 중..."
@@ -4963,6 +5242,14 @@ msgstr "한도(%g mm)에 맞게 자동으로 조정할까요?"
msgid "Adjust"
msgstr "조정"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"벨트 프린터에서는 라프트와 드래프트 실드를 사용할 수 없습니다.\n"
+"비활성화되었습니다."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5781,8 +6068,9 @@ msgstr "모든 플레이트 통계"
msgid "Display"
msgstr "표시"
+# AI Translated
msgid "Flushed"
-msgstr "버리기"
+msgstr "플러시"
msgid "Tower"
msgstr "타워"
@@ -5805,9 +6093,6 @@ msgstr "최적의 필라멘트 그룹핑에 따라 자동으로 재슬라이싱
msgid "Filament Grouping"
msgstr "필라멘트 그룹핑"
-msgid "Why this grouping"
-msgstr "이 그룹핑의 이유"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "그룹핑 결과에 따라 프린터에 필라멘트를 배치하세요."
@@ -5817,29 +6102,41 @@ msgstr "팁:"
msgid "Current grouping of slice result is not optimal."
msgstr "현재 슬라이스 결과의 그룹핑이 최적이 아닙니다."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "최적 그룹핑 대비 %1%g 필라멘트와 %2%회 변경이 증가합니다."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "최적 그룹핑 대비 %1%g 필라멘트와 %2%회 변경이 증가합니다."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "최적 그룹핑 대비 %1%g 필라멘트가 증가하고 %2%회 변경이 절감됩니다."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "최적 그룹핑 대비 %1%g 필라멘트가 증가하고 %2%회 변경이 절감됩니다."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "최적 그룹핑 대비 %1%g 필라멘트가 절감되고 %2%회 변경이 증가합니다."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "최적 그룹핑 대비 %1%g 필라멘트가 절감되고 %2%회 변경이 증가합니다."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "단일 노즐 프린터 대비 %1%g 필라멘트와 %2%회 변경이 절감됩니다."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "단일 노즐 프린터 대비 %1%g 필라멘트와 %2%회 변경이 절감됩니다."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "단일 노즐 프린터 대비 %1%g 필라멘트가 절감되고 %2%회 변경이 증가합니다."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "단일 노즐 프린터 대비 %1%g 필라멘트가 절감되고 %2%회 변경이 증가합니다."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "단일 노즐 프린터 대비 %1%g 필라멘트가 증가하고 %2%회 변경이 절감됩니다."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "단일 노즐 프린터 대비 %1%g 필라멘트가 증가하고 %2%회 변경이 절감됩니다."
msgid "Set to Optimal"
msgstr "최적으로 설정"
@@ -5998,12 +6295,62 @@ msgstr "편집 영역 증가/감소"
msgid "Sequence"
msgstr "순서"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "플레이트 질량 중심"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "부품 질량 중심"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "서포트 질량 중심"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "조립체 질량 중심"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "객체 질량 중심"
+
+# AI Translated
+msgid "Finished print"
+msgstr "완성된 출력물"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "레이어 %1%까지 출력됨"
+
+# AI Translated
+msgid "Weight"
+msgstr "무게"
+
+# AI Translated
+msgid "Volume"
+msgstr "부피"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "경계 상자 내 중심 위치"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "경계 상자 크기"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "관성 모멘트"
+
# AI Translated
msgid "Object selection"
msgstr "객체 선택"
-msgid "number keys"
-msgstr "숫자 키"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "1~16 숫자 키"
msgid "Number keys can quickly change the color of objects"
msgstr "숫자 키로 객체의 색상을 빠르게 변경할 수 있습니다"
@@ -6212,9 +6559,20 @@ msgstr "축"
msgid "Gridlines"
msgstr "그리드 라인"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "레이블"
+# AI Translated
+msgid "Center of mass"
+msgstr "질량 중심"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "원시 G-code 표시(벨트 전용)"
+
# AI Translated
msgid "Move section plane"
msgstr "단면 평면 이동"
@@ -6264,7 +6622,7 @@ msgid "Size:"
msgstr "크기:"
# AI Translated
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "레이어 %d, Z = %.2lf mm에서 G-code 경로 충돌이 발견되었습니다. 충돌하는 객체를 더 멀리 분리하세요 (%s <-> %s)."
@@ -6286,21 +6644,17 @@ msgstr "2개 이상의 TPU 필라멘트 인쇄는 지원되지 않습니다."
msgid "Tool %d"
msgstr "도구 %d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "필라멘트 %s이(가) %s에 배치되었지만 생성된 G-code 경로가 %s의 인쇄 가능 범위를 초과합니다."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "필라멘트 %s이(가) %s에 배치되었지만 생성된 G-code 경로가 %s의 인쇄 가능 범위를 초과합니다."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "필라멘트 %s이(가) %s에 배치되었지만 생성된 G-code 경로가 %s의 출력 가능 범위를 초과합니다."
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "필라멘트 %s이(가) %s에 배치되었지만 생성된 G-code 경로가 %s의 인쇄 가능 높이를 초과합니다."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "필라멘트 %s이(가) %s에 배치되었지만 생성된 G-code 경로가 %s의 인쇄 가능 높이를 초과합니다."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "필라멘트 %s이(가) %s에 배치되었지만 생성된 G-code 경로가 %s의 출력 가능 높이를 초과합니다."
msgid "Open wiki for more information."
msgstr "자세한 내용은 위키를 참조하세요."
@@ -6308,9 +6662,11 @@ msgstr "자세한 내용은 위키를 참조하세요."
msgid "Only the object being edited is visible."
msgstr "편집 중인 객체만 표시됩니다."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "필라멘트 %s은(는) 이 플레이트 표면에 직접 인쇄할 수 없습니다."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "필라멘트 %s은(는) 이 플레이트 표면에 직접 출력할 수 없습니다."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "PLA와 PETG 필라멘트의 혼합이 감지되었습니다. 인쇄 품질을 보장하기 위해 위키에 따라 매개변수를 조정하세요."
@@ -6318,8 +6674,9 @@ msgstr "PLA와 PETG 필라멘트의 혼합이 감지되었습니다. 인쇄 품
msgid "The prime tower extends beyond the plate boundary."
msgstr "프라임 타워가 플레이트 경계를 초과합니다."
+# AI Translated
msgid "Partial flushing volume set to 0. Multi-color printing may cause color mixing in models. Please readjust flushing settings."
-msgstr "부분 플러싱 볼륨이 0으로 설정되었습니다. 멀티컬러 인쇄 시 모델에 색상 혼합이 발생할 수 있습니다. 플러싱 설정을 재조정하세요."
+msgstr "부분 플러시 볼륨이 0으로 설정되었습니다. 멀티컬러 출력 시 모델에 색상 혼합이 발생할 수 있습니다. 플러시 설정을 재조정하세요."
msgid "Click Wiki for help."
msgstr "도움말은 위키를 클릭하세요."
@@ -6327,8 +6684,9 @@ msgstr "도움말은 위키를 클릭하세요."
msgid "Click here to regroup"
msgstr "재그룹핑하려면 여기를 클릭하세요"
+# AI Translated
msgid "Flushing Volume"
-msgstr "플러싱 볼륨"
+msgstr "플러시 볼륨"
msgid "Calibration step selection"
msgstr "교정 단계 선택"
@@ -6429,27 +6787,20 @@ msgstr "준비 하기"
msgid "Preview"
msgstr "미리 보기"
-msgid "Device"
-msgstr "장치"
-
-msgid "Multi-device"
-msgstr "멀티 디바이스"
-
msgid "Project"
msgstr "프로젝트"
-# AI Translated
-msgid "Device (Web)"
-msgstr "장치 (웹)"
-
msgid "Yes"
msgstr "예"
msgid "No"
msgstr "아니오"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "새 모델을 생성하기 전에 닫힙니다. 계속하시겠습니까?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s이(가) 새 모델을 생성하기 전에 닫힙니다. 계속하시겠습니까?"
msgid "Print all"
msgstr "모두 출력"
@@ -6495,6 +6846,10 @@ msgstr "설정 마법사"
msgid "Show Configuration Folder"
msgstr "설정 폴더 열기"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "프로파일 업데이트로 대상 프린터에서 제거된 필라멘트 사전 설정을 복원합니다"
+
# AI Translated
msgid "Troubleshoot Center"
msgstr "문제 해결 센터"
@@ -6738,6 +7093,14 @@ msgstr "그리드 라인 표시"
msgid "Show Gridlines on plate"
msgstr "플레이트에 그리드 라인 표시"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "IDEX/IQEX 툴헤드 표시"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "G-code 미리보기에서 활성화된 각 노즐 주위에 IDEX/IQEX 툴헤드 형상을 표시합니다."
+
msgid "Reset Window Layout"
msgstr "창 레이아웃 재설정"
@@ -7375,6 +7738,8 @@ msgstr "평가"
msgid "Calculating..."
msgstr "계산 중..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "카메라"
@@ -7455,9 +7820,11 @@ msgstr "다운로드 중..."
msgid "Cloud Slicing..."
msgstr "클라우드 슬라이싱..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "클라우드 슬라이싱 대기열에는 %s개의 작업이 앞에 있습니다."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "클라우드 슬라이싱 대기열에는 %d개의 작업이 앞에 있습니다."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7488,6 +7855,11 @@ msgstr "출력하는 동안에만 적용됩니다"
msgid "Silent"
msgstr "조용한"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "표준"
+
msgid "Sport"
msgstr "스포츠"
@@ -7544,17 +7916,29 @@ msgstr "사진 업로드"
msgid "Number of images successfully uploaded"
msgstr "성공적으로 업로드된 이미지 수"
-msgid " upload failed"
-msgstr " 업로드 실패"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "%s 업로드 실패"
-msgid " upload config prase failed\n"
-msgstr " 구성 업로드 실패\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "%s 업로드 구성 구문 분석 실패"
-msgid " No corresponding storage bucket\n"
-msgstr " 해당 스토리지 버킷이 없습니다.\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: 해당 스토리지 버킷 없음"
-msgid " cannot be opened\n"
-msgstr " 열 수 없습니다\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s을(를) 열 수 없습니다"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7572,26 +7956,22 @@ msgstr "업로드 실패\n"
msgid "Obtaining instance_id failed\n"
msgstr "instance_id를 가져오지 못했습니다.\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"다음과 같은 몇 가지 이유로 귀하의 댓글 결과를 업로드할 수 없습니다.:\n"
-"\n"
-" 에러 코드: "
-
-msgid "error message: "
-msgstr "에러 메시지: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"다음과 같은 이유로 댓글 결과를 업로드할 수 없습니다:\n"
"\n"
+" 오류 코드: %d\n"
+" 오류 메시지: %s\n"
"\n"
-"평가를 위해 웹페이지로 이동하시겠습니까?"
+"웹페이지로 이동하여 평점을 남기시겠습니까?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "일부 이미지를 업로드하지 못했습니다. 평가를 위해 웹페이지로 리디렉션하시겠습니까?"
@@ -8434,6 +8814,109 @@ msgstr "모든 객체 설정 보기"
msgid "Material settings"
msgstr "재료 설정"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "각 모드는 참여하는 툴헤드와 각 툴헤드의 역할을 지정합니다. 도구 버튼을 클릭하면 역할이 차례로 바뀌며, 아래 색상 위에 마우스를 올리면 각 역할의 설명을 볼 수 있습니다."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "모드 추가"
+
+# AI Translated
+msgid "Tools"
+msgstr "도구"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "플레이트의 IDEX/IQEX 모드 선택기에 표시되는 모드 이름입니다. 필수 항목이며, 이름이 없는 모드는 선택할 수 없습니다."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "모드에 참여하는 툴헤드와 각 툴헤드의 역할입니다. 타일을 클릭하면 역할이 차례로 바뀝니다."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "출력 시작 시 프린터를 이 모드로 전환하기 위해 실행되는 G-code입니다(예: Klipper SET_PRINT_MODE 호출). 슬라이서는 주(Primary) 도구의 경로만 생성하며, 나머지 도구는 펌웨어가 제어합니다."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "비활성"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "주"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "복사"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "미러"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "슬라이스된 모든 경로를 구동합니다. 항상 도구 0이며, 베드의 어느 모서리에 위치할지는 위의 도구 0 위치에서 선택하세요. 격자에서 이동할 수 없습니다."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "펌웨어 수준에서 주(Primary)를 따라가며, 같은 경로를 자신의 영역으로 오프셋하여 출력합니다."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "펌웨어 수준에서 주(Primary)를 따라가며, 같은 경로를 두 영역 사이의 경계를 기준으로 대칭 반전하여 출력합니다."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "주(Primary) 도구의 갠트리에 있는 도구를 주 도구의 멀티컬러 파트너로 지정합니다. 쌍 갠트리 모드에서 멀티컬러 출력을 하려면 필요합니다."
+
+# AI Translated
+# Needs human review: Name of the Primary mode in the plate's IDEX/IQEX mode selector and in the Modes editor; check that the one-syllable glossary term reads as a mode name there.
+msgid "Primary"
+msgstr "주"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "모드 이름(필수)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "플레이트의 IDEX/IQEX 모드 선택기에 표시되는 이 병렬 모드의 이름입니다. 프로젝트에는 이름으로 저장되므로, 플레이트에서 이미 사용 중인 모드의 이름을 바꾸면 해당 플레이트는 주(Primary) 모드로 돌아갑니다. 비워 둘 수 없으며, 빈 이름은 자동 생성된 이름으로 바뀝니다."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "이 모드를 사용하는 출력의 시작 시 장치 시작 G-code보다 먼저 한 번 출력되는 G-code입니다. 슬라이서는 주(Primary) 도구의 경로만 생성하고 복사(Copy)/미러(Mirror) 도구는 펌웨어가 제어하므로, 여기에서 프린터를 해당 펌웨어 모드로 전환합니다(예: Klipper SET_PRINT_MODE 호출 또는 RepRapFirmware M567). 자리 표시자를 사용할 수 있으며, 편집 버튼으로 찾아볼 수 있습니다. 모드에 펌웨어 설정이 필요 없으면 비워 두세요."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "G-code 편집 / 자리 표시자 찾아보기"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "모드 제거"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "이 모드에 대해 현재 세션에서 편집한 내용 버리기(저장된 값으로 되돌림)"
+
msgid "Remove current plate (if not last one)"
msgstr "현재 플레이트 제거(마지막 플레이트가 아닌 경우)"
@@ -8458,12 +8941,33 @@ msgstr "현재 번호판 이름 수정"
msgid "Move plate to the front"
msgstr "플레이트를 앞쪽으로 이동"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX 모드: %1% (프로세스 사전 설정: %2%) (왼쪽 클릭으로 전환, 오른쪽 클릭으로 메뉴)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX 모드: %1% (왼쪽 클릭으로 전환, 오른쪽 클릭으로 메뉴)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "경고: 이 플레이트는 다중 재료 객체와 함께 IDEX/IQEX 병렬 모드를 사용합니다. 주의해서 진행하고, G-code가 이 조합을 올바르게 처리하는지 확인하세요."
+
msgid "Customize current plate"
msgstr "사용자 정의 플레이트"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "%s 노즐은 %s 을 인쇄할 수 없습니다."
+msgid "The left nozzle cannot print %s."
+msgstr "왼쪽 노즐은 %s을(를) 출력할 수 없습니다."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "오른쪽 노즐은 %s을(를) 출력할 수 없습니다."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8473,12 +8977,17 @@ msgstr "단일 압출기 프린터에서 혼색 필라멘트를 출력하면 필
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "%1%와 %2% 혼합 출력을 권장하지 않습니다.\n"
-msgid " nozzle"
-msgstr "노즐"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "다음 필라멘트로 출력하지 않는 것이 좋습니다: %1%%2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "%1%mm %2% 노즐"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "다음 필라멘트를 %1%(으)로 출력하는 것은 권장하지 않습니다: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "다음과 같은 노즐과 필라멘트 조합은 사용하지 않는 것이 좋습니다.\n"
@@ -8487,9 +8996,11 @@ msgstr "다음과 같은 노즐과 필라멘트 조합은 사용하지 않는
msgid "%1% with %2%\n"
msgstr "%1%와 %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " 플레이트 %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "플레이트 %1% 슬라이싱 중: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "잘못된 이름입니다. 다음 문자는 사용할 수 없습니다:"
@@ -8524,13 +9035,6 @@ msgstr "AMS(1 슬롯)"
msgid "Not installed"
msgstr "설치되지 않음"
-# AI Translated
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "이 소프트웨어는 한 번의 출력에 서로 다른 직경의 노즐을 사용하는 것을 지원하지 않습니다. 왼쪽과 오른쪽 노즐이 서로 다르면 단일 헤드 출력으로만 진행할 수 있습니다. 이 프로젝트에 사용할 노즐을 확인해 주십시오."
-
-msgid "Switch diameter"
-msgstr "직경 스위치"
-
msgid "Configuration incompatible"
msgstr "호환되지 않는 구성"
@@ -8585,8 +9089,9 @@ msgstr "프로젝트 필라멘트"
msgid "Purge mode"
msgstr "플러시 모드"
+# AI Translated
msgid "Flushing volumes"
-msgstr "버리기 볼륨"
+msgstr "플러시 볼륨"
msgid "Add one filament"
msgstr "필라멘트 한개 추가"
@@ -8612,6 +9117,10 @@ msgstr "혼합 필라멘트"
msgid "Remove last mixed filament"
msgstr "마지막 혼합 필라멘트 제거"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "모든 혼합 필라멘트 제거"
+
# AI Translated
msgid "Add mixed filament"
msgstr "혼합 필라멘트 추가"
@@ -8634,6 +9143,12 @@ msgstr "혼합 필라멘트의 구성 요소 참조가 손상되었습니다"
msgid "Edit / Delete / Merge"
msgstr "편집 / 삭제 / 병합"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "혼합 필라멘트 %1%개를 제거하시겠습니까?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "대상 혼합 필라멘트가 이 물리 필라멘트를 구성 요소로 사용합니다. 병합하면 이 물리 필라멘트가 제거되어 혼합 필라멘트가 무효가 될 수 있습니다. 계속할까요?"
@@ -8711,10 +9226,6 @@ msgstr "파일 로드 중: %s"
msgid "Load 3MF"
msgstr "3mf 불러오기"
-# AI Translated
-msgid "BambuStudio Project"
-msgstr "BambuStudio 프로젝트"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "이 3mf는 OrcaSlicer에서 지원되지 않습니다. 형상 데이터만 불러옵니다."
@@ -8748,20 +9259,6 @@ msgstr "소프트웨어를 업그레이드하는 것이 좋습니다.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "3mf의 %s 버전이 %s의 %s 버전보다 최신입니다. 소프트웨어를 업그레이드 하십시오."
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "이 3MF는 BambuStudio(버전 %s)에서 생성되었으며, 이는 호환 버전 %s보다 최신입니다. 인식할 수 없는 설정을 찾았습니다:"
-
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "이 3MF는 BambuStudio(버전 %s)에서 생성되었으며, 이는 호환 버전 %s보다 최신입니다. 일부 설정이 완전히 호환되지 않을 수 있습니다."
-
-# AI Translated
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "이 3MF는 BambuStudio에서 생성되었습니다. 일부 설정이 OrcaSlicer와 다를 수 있습니다."
-
msgid "Invalid values found in the 3MF:"
msgstr "3mf에서 잘못된 값이 발견됨:"
@@ -8940,6 +9437,14 @@ msgstr "Z 위치를 유지하기 위해 자동 내려놓기를 비활성화하
msgid "Object with floating parts was detected"
msgstr "떠 있는 부품이 있는 객체가 감지되었습니다"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "슬라이스할 수 없음: 객체가 IDEX/IQEX 병렬 출력용으로 예약된 영역(보조 영역 또는 주 영역 안의 캐리지 여유 공간 띠)과 겹칩니다."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "슬라이스할 수 없음: 프라임 타워가 IDEX/IQEX 병렬 출력용으로 예약된 영역(보조 영역 또는 주 영역 안의 캐리지 여유 공간 띠)과 겹칩니다."
+
msgid "Another export job is running."
msgstr "다른 내보내기 작업이 실행 중입니다."
@@ -9001,8 +9506,9 @@ msgstr "교체된 볼륨"
msgid "Please select a file"
msgstr "파일을 선택하세요"
-msgid "Do you want to replace it"
-msgstr "교체하시겠습니까"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "교체하시겠습니까?"
msgid "Message"
msgstr "메시지"
@@ -9032,6 +9538,50 @@ msgstr "유효하지 않은 데이터"
msgid "Slicing Canceled"
msgstr "슬라이싱 취소됨"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "베드 온도 충돌: T%d(%s)은(는) 베드를 %d℃로 설정하지만 T%d(%s)은(는) %d℃가 필요합니다. 베드는 주 툴이 제어하며, 보조 툴은 주 툴이 설정한 온도로 출력합니다."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "필라멘트 유형 불일치: T%d은(는) %s을(를), T%d은(는) %s을(를) 사용합니다. 이 재료들은 요구 조건이 서로 맞지 않아 함께 출력하도록 설계되지 않았습니다."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"플레이트 %d에서 IDEX/IQEX 병렬 모드가 활성화되어 있으며 다음과 같은 우려 사항이 있습니다:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "슬라이스를 계속하시겠습니까?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "IDEX/IQEX 병렬 모드 경고"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "이 경고를 다시 표시하지 않음"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "플레이트 %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"다음과 같은 IDEX/IQEX 병렬 모드 우려 사항이 감지되었습니다:\n"
+"\n"
+
# AI Translated
msgid "Network plug-in switched successfully."
msgstr "네트워크 플러그인을 성공적으로 전환했습니다."
@@ -9069,8 +9619,8 @@ msgid "Sync now"
msgstr "지금 동기화"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "작업이 실행 중일 때는 실행 취소하거나 다시 실행할 수 없습니다. 먼저 작업을 중지하십시오."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "작업이 실행 중일 때는 실행 취소나 다시 실행을 할 수 없습니다. 작업을 중지하거나, 완료될 때까지 기다린 후 다시 시도하세요."
# AI Translated
msgid ""
@@ -9141,6 +9691,14 @@ msgstr "다운로드에 실패했습니다. 파일 크기 예외입니다."
msgid "Project downloaded %d%%"
msgstr "프로젝트 %d%% 다운로드됨"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"벨트 프린터에서는 아직 PA 선 및 PA 패턴 테스트를 사용할 수 없습니다.\n"
+"대신 PA 타워 방식을 사용하세요."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Pressure Advance 테스트"
@@ -9148,11 +9706,15 @@ msgstr "Pressure Advance 테스트"
msgid "INFO:"
msgstr "정보:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "보정을 위해 가속도가 제공되지 않습니다. 기본 가속도 값 사용 "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "보정을 위한 가속도가 제공되지 않았습니다. 기본 가속도 값 %1%mm/s² 사용"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "보정을 위한 속도가 제공되지 않습니다. 기본 최적 속도 사용 "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "보정을 위한 속도가 제공되지 않았습니다. 기본 최적 속도 %1%mm/s 사용"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9167,6 +9729,15 @@ msgstr "Orca YOLO 압출량 교정"
msgid "Flowrate Test - Pass%d"
msgstr "압출량 테스트 - %d차"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "%1%~%2%℃ 범위에 사용할 수 있는 벨트 온도 타워가 없습니다. 타워 모델이 지원하는 범위(예: 230~190)를 사용하세요."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "온도 타워"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "노즐 온도 테스트"
@@ -9192,12 +9763,16 @@ msgstr "코너링 테스트"
msgid "Import SLA archive"
msgstr "SLA 압축파일 가져오기"
-msgid "The selected file"
-msgstr "선택한 파일"
-
# AI Translated
-msgid "Does not contain valid G-code."
-msgstr "유효한 G-code를 포함하지 않습니다."
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"선택한 파일:\n"
+"%1%\n"
+"에는 유효한 G-code가 포함되어 있지 않습니다."
# AI Translated
msgid "An Error has occurred while loading the G-code file."
@@ -9479,6 +10054,27 @@ msgstr "현재 개체 구성 양식은 다중 압출기 프린터와 함께 사
msgid "Not available"
msgstr "사용 불가"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (플레이트 없음)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — 필라멘트가 지정되지 않음\n"
+"장치 탭에서 압출기를 추가하여 이 헤드에 필라멘트 슬롯이 생기게 하세요."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> 필라멘트 %2%"
+
msgid "isometric"
msgstr "아이소메트릭"
@@ -9519,6 +10115,8 @@ msgstr "유럽"
msgid "North America"
msgstr "북아메리카"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "기타"
@@ -9602,11 +10200,17 @@ msgstr "네트워크 플러그인을 다시 로드하지 못했습니다. 애플
msgid "Reload Failed"
msgstr "다시 로드 실패"
-msgid "Associate"
-msgstr "링크"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "%s:// 연결"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "를 OrcaSlicer와 연결하여 Orca가 다음 사이트의 모델을 열 수 있게 합니다"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "%s://을(를) OrcaSlicer와 연결하여 Orca가 %s의 모델을 열 수 있게 합니다"
msgid "Current Association: "
msgstr "현재 연결: "
@@ -9903,7 +10507,7 @@ msgstr "다음 변경 후 자동 플러시..."
# AI Translated
msgid "Auto calculate flushing volumes when selected values changed"
-msgstr "선택한 값이 변경되면 플러시 용량을 자동으로 계산합니다"
+msgstr "선택한 값이 변경되면 플러시 볼륨을 자동으로 계산합니다"
msgid "Auto arrange plate after cloning"
msgstr "복제 후 플레이트 자동 정렬"
@@ -9935,6 +10539,9 @@ msgstr "마지막 출력 동작 기억"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "활성화하면 OrcaSlicer가 출력 버튼 드롭다운에서 마지막으로 선택한 옵션(예: 출력, 플레이트 슬라이스 파일 내보내기, G-code 파일 내보내기)을 기억하여 다음 시작 시 기본값으로 사용합니다."
+msgid "Camera"
+msgstr "카메라"
+
msgid "Touchpad"
msgstr "터치패드"
@@ -10407,6 +11014,9 @@ msgstr "네트워크 플러그인 버전"
msgid "Select the network plug-in version to use"
msgstr "사용할 네트워크 플러그인 버전을 선택합니다"
+msgid "Associate"
+msgstr "링크"
+
msgid "Associate files to OrcaSlicer"
msgstr "파일을 OrcaSlicer에 연결"
@@ -10462,6 +11072,12 @@ msgstr "지원되지 않는 사전 설정 표시"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "프린터 및 필라멘트 드롭다운 목록에 호환되지 않거나 지원되지 않는 사전 설정을 표시합니다. 이러한 사전 설정은 선택할 수 없습니다."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "실험적 기능"
@@ -10754,10 +11370,6 @@ msgstr "3MF 게시..."
msgid "Select which settings to be published in the 3MF file"
msgstr "3MF 파일에 게시할 설정을 선택하세요"
-# AI Translated
-msgid "Video Guide"
-msgstr "동영상 가이드"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "혼합 필라멘트 - 위에서 \"활성화\"를 선택하면 전체가 게시됩니다"
@@ -10923,6 +11535,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "간단"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s (출처: %s)"
+
# AI Translated
msgid "Search actions"
msgstr "작업 검색"
@@ -11041,6 +11659,10 @@ msgstr "세부 정보 표시"
msgid "Hide details"
msgstr "세부 정보 숨기기"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "웹 뷰를 사용할 수 없습니다."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11327,9 +11949,11 @@ msgstr "전송 실패"
msgid "The name length exceeds the limit."
msgstr "이름 길이가 제한을 초과합니다."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "비용 %dg 필라멘트 및 %d 최적의 그룹화보다 더 많이 변경됩니다."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "최적 그룹핑보다 %dg 필라멘트와 %d회 변경이 더 소요됩니다."
# AI Translated
msgid "Right-Ext"
@@ -11419,6 +12043,10 @@ msgstr "일부 필라멘트는 출력 중에 압출기 사이를 오갈 수 있
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "이 파일에는 실 늘어짐이 발생하기 쉬운 필라멘트가 있습니다. 최상의 출력 품질을 위해 노즐 뭉침 감지를 자동 모드로 전환하는 것이 좋습니다."
+# AI Translated
+msgid "Switch"
+msgstr "전환"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "'동적 압출량 교정'이 자동/켬으로 설정되어 있으면 시스템이 수동 교정값 또는 기본값을 사용하고 압출량 교정 과정을 건너뜁니다. TPU 필라멘트의 수동 압출량 교정은 '교정' 페이지에서 수행할 수 있습니다."
@@ -11733,6 +12361,10 @@ msgstr "서로 다른 압출기 구동 방식이나 노즐 부피 유형 간의
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "변경한 매개변수를 다른 압출기의 해당 매개변수에 동기화합니다."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "이 아이콘이 있는 매개변수는 노즐별로 설정할 수 있습니다."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "모든 설정을 마지막으로 저장한 사전 설정으로 되돌립니다."
@@ -11971,6 +12603,9 @@ msgstr "기능용 필라멘트"
msgid "Ooze prevention"
msgstr "흘러내림 방지"
+msgid "Others"
+msgstr "기타"
+
msgid "Special mode"
msgstr "특수 모드"
@@ -12010,8 +12645,11 @@ msgstr[0] ""
"다음 줄 %s에는 예약어가 포함되어 있습니다.\n"
"제거해 주십시오. 그렇지 않으면 Gcode 시각화 및 출력 시간 추정치를 능가할 것입니다."
-msgid "Reserved keywords found"
-msgstr "예약어를 찾았습니다"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "%1%에서 예약어를 찾았습니다"
msgid "Setting Overrides"
msgstr "설정 덮어쓰기"
@@ -12159,7 +12797,16 @@ msgstr "출력 가능 공간"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "프린터 통신에 사용할 네트워크 에이전트 구현을 선택합니다. 사용 가능한 에이전트는 시작 시 등록됩니다."
+# AI Translated
+msgid "Belt printer"
+msgstr "벨트 프린터"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "기계 좌표계 변환"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "%1% 매개변수에 잘못된 값이 입력됨: %2%"
@@ -12290,9 +12937,29 @@ msgstr "노즐 직경"
msgid "Wipe tower"
msgstr "프라임 타워"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "벨트 퍼지 타워"
+
msgid "Single extruder multi-material parameters"
msgstr "단일 압출기 다중 재료 매개변수"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "IDEX/IQEX 구성"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "슬라이스 전 경고"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "IDEX/IQEX 병렬 모드 우려 사항(베드 온도 충돌, 필라멘트 유형 불일치, 다중 재료 충돌)이 감지되면 슬라이스 전에 경고 대화 상자를 표시합니다. 대화 상자에서 직접 끌 수 있으며, 실수로 끈 경우 여기에서 다시 활성화하세요."
+
+# AI Translated
+msgid "Modes"
+msgstr "모드"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "이것은 단일 압출기 다중 재료 프린터이며 모든 압출기의 직경이 새 값으로 설정됩니다. 계속 진행하시겠습니까?"
@@ -12302,6 +12969,22 @@ msgstr "레이어 높이 한도"
msgid "Z-Hop"
msgstr "Z올리기"
+# AI Translated
+msgid "Front-left"
+msgstr "왼쪽 앞"
+
+# AI Translated
+msgid "Front-right"
+msgstr "오른쪽 앞"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "왼쪽 뒤"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "오른쪽 뒤"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -12324,21 +13007,34 @@ msgstr "수정된 값 사용"
msgid "Detached"
msgstr "분리됨"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1%와(과) %2%이(가) 이 프린터에 연결되어 있습니다. 프린터를 삭제하면 해당 사전 설정도 삭제됩니다."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d개의 필라멘트 사전 설정과 %d개의 프로세스 사전 설정이 이 프린터에 연결되어 있습니다.프린터를 삭제하면 사전 설정도 삭제됩니다."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "필라멘트 사전 설정 %d개"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "프로세스 사전 설정 %d개"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "다른 프리셋에 상속된 프리셋은 삭제할 수 없습니다!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "다음 사전 설정은 이 사전 설정을 상속합니다."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "다음 사전 설정이 이 사전 설정을 상속합니다."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "사전 설정 %1%"
+msgid "Delete Preset"
+msgstr "사전 설정 삭제"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -12352,9 +13048,8 @@ msgstr ""
"프리셋이 현재 프린터에서 사용 중인 필라멘트와 일치하는 경우,해당 슬롯의 필라멘트 정보를 재설정해 주세요."
# AI Translated
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "선택한 사전 설정을 %1%하시겠습니까?"
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "선택한 사전 설정을 삭제하시겠습니까?"
# AI Translated
msgid "Select printers"
@@ -12417,9 +13112,39 @@ msgid "Don't warn again for this preset"
msgstr "이 사전 설정에 대해 다시 경고하지 않기"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# Needs human review: Short badge for the Standard flow nozzle; kept as the English abbreviation. Check whether a Korean tag (e.g. 표준) fits the badge.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Short badge for the High Flow nozzle; kept as the English abbreviation. Check whether a Korean tag (e.g. 고유량) fits the badge.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Short badge for the TPU High Flow nozzle; kept as the English abbreviation.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Short badge for the E3D High Flow nozzle; kept as the English abbreviation.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short badge for the Extra High Flow nozzle; kept as the English abbreviation.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
# AI Translated
msgid "No modifications need to be copied."
@@ -12587,8 +13312,9 @@ msgstr ""
msgid "Extruder count"
msgstr "익스트루더 수"
+# AI Translated
msgid "Capabilities"
-msgstr "성능"
+msgstr "기능"
msgid "Show all presets (including incompatible)"
msgstr "모든 사전 설정 표시(호환되지 않는 설정 포함)"
@@ -12628,6 +13354,12 @@ msgstr "사전 설정 중 하나가 존재하지 않습니다"
msgid "Compared presets has different printer technology"
msgstr "비교한 사전 설정의 프린터 기술이 서로 다릅니다"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" 대 \"%2%\""
+
msgid "Add File"
msgstr "파일 추가"
@@ -12653,6 +13385,22 @@ msgstr "재료 명세서"
msgid "Assembly Guide"
msgstr "조립 가이드"
+# AI Translated
+msgid "Image files"
+msgstr "이미지 파일"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXT 파일"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCEL 파일"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDF 파일"
+
msgid "Author"
msgstr "원작자"
@@ -12855,24 +13603,22 @@ msgstr "ms"
msgid "Total ramming"
msgstr "전체 채워넣기"
-# AI Translated
-msgid "Volume"
-msgstr "부피"
-
# AI Translated
msgid "Ramming line"
msgstr "채워넣기 선"
# AI Translated
msgid "Orca would re-calculate your flushing volumes everytime the filaments color changed or filaments changed. You could disable the auto-calculate in Orca Slicer > Preferences"
-msgstr "Orca는 필라멘트 색상이 바뀌거나 필라멘트가 변경될 때마다 플러시 용량을 다시 계산합니다. Orca Slicer > 기본 설정에서 자동 계산을 비활성화할 수 있습니다"
+msgstr "Orca는 필라멘트 색상이 바뀌거나 필라멘트가 변경될 때마다 플러시 볼륨을 다시 계산합니다. Orca Slicer > 기본 설정에서 자동 계산을 비활성화할 수 있습니다"
+# AI Translated
msgid "Flushing volume (mm³) for each filament pair."
-msgstr "각 필라멘트 쌍에 대한 버리기 볼륨(mm³)."
+msgstr "각 필라멘트 쌍에 대한 플러시 볼륨(mm³)."
+# AI Translated
#, c-format, boost-format
msgid "Suggestion: Flushing Volume in range [%d, %d]"
-msgstr "제안: [%d, %d] 범위의 버리기 볼륨"
+msgstr "제안: [%d, %d] 범위의 플러시 볼륨"
#, c-format, boost-format
msgid "The multiplier should be in range [%.2f, %.2f]."
@@ -12884,11 +13630,15 @@ msgstr "다시 계산"
msgid "Multiplier"
msgstr "승수"
+# AI Translated
msgid "Flushing volumes for filament change"
-msgstr "필라멘트 교체를 위한 버리기 볼륨"
+msgstr "필라멘트 교체를 위한 플러시 볼륨"
-msgid "Please choose the filament color"
-msgstr "필라멘트 색상을 선택하세요"
+# AI Translated
+# Needs human review: Corner header of the flushing volume table (rows = filament flushed from, columns = changed to); check it reads right in the table.
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "이전/이후"
# AI Translated
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -12911,6 +13661,144 @@ msgstr "로그인에 실패했습니다. 다시 시도하십시오."
msgid "parse json failed"
msgstr "JSON 구문 분석 실패"
+msgid "Loading…"
+msgstr "로딩 중……"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "사용자 정의"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Orca Slicer에 오신 것을 환영합니다"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer는 여러 단계로 설정됩니다. 시작!"
+
+msgid "Get Started"
+msgstr "시작"
+
+msgid "Please select your login region"
+msgstr "로그인 지역을 선택해주세요"
+
+msgid "Finish"
+msgstr "완료"
+
+msgid "Printer Selection"
+msgstr "프린터 선택"
+
+# AI Translated
+msgid "Vendors"
+msgstr "제조사"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "사용자 정의 프린터"
+
+msgid "Create"
+msgstr "생성"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "새 프린터 확인"
+
+msgid "At least one printer must be selected."
+msgstr "하나 이상의 프린터를 선택해야 합니다."
+
+# AI Translated
+msgid "New printers found"
+msgstr "새 프린터 발견"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "새 프린터 제조사 설치됨: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "새 프린터 제조사를 찾았지만 설치가 취소되었습니다."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "새 프린터를 찾지 못했습니다."
+
+msgid "Filament Selection"
+msgstr "필라멘트 선택"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "시스템 필라멘트"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "사용자 정의 필라멘트"
+
+# AI Translated
+msgid "Create New"
+msgstr "새로 만들기"
+
+msgid "Filament type"
+msgstr "필라멘트 유형"
+
+msgid "Vendor"
+msgstr "제조사"
+
+# AI Translated
+msgid "No items"
+msgstr "항목 없음"
+
+# AI Translated
+msgid "Filter items"
+msgstr "항목 필터"
+
+# AI Translated
+msgid "Checked"
+msgstr "선택됨"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "선택 안 됨"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "필터링된 항목 선택"
+
+# AI Translated
+msgid "Clear all"
+msgstr "모두 지우기"
+
+msgid "At least one filament must be selected."
+msgstr "하나 이상의 필라멘트를 선택해야 합니다."
+
+msgid "Do you want to use the default filament?"
+msgstr "기본 필라멘트를 사용하시겠습니까?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "이 옵션은 Orca Cloud 프로필 동기화를 포함한 모든 클라우드 기능을 비활성화합니다. 완전히 오프라인으로 작업하려는 사용자는 이 옵션을 활성화할 수 있습니다."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "참고: 스텔스 모드를 활성화하면 사용자 프로필이 Orca Cloud에 백업되지 않습니다."
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "스텔스 모드를 활성화합니다."
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "독점 플러그인"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "일부 프린터 제조사는 프린터와 통신하기 위해 독점 플러그인이 필요합니다. 해당 프린터를 사용하는 경우 그에 맞는 플러그인을 선택하세요."
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "이 플러그인은 OrcaSlicer가 개발하거나 유지 관리하지 않는다는 점에 유의하세요. 사용자 본인의 판단과 책임하에 사용해야 합니다."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Bambu 네트워크 플러그인 설치"
+
# AI Translated
msgid "[Action Required] "
msgstr "[조치 필요] "
@@ -12981,9 +13869,6 @@ msgstr "준비 하기 탭의 3D 보기에 포커스가 있을 때 사용할 수
msgid "Select a part"
msgstr "부품 선택"
-msgid "Select multiple objects"
-msgstr "여러 객체 선택"
-
msgid "Select objects by rectangle"
msgstr "사각형으로 객체 선택"
@@ -13319,27 +14204,19 @@ msgstr "펌웨어 버전이 비정상입니다. 출력하기 전에 수리 및
msgid "Extension Board"
msgstr "확장 보드"
-# AI Translated
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "%1%개의 부품으로 분할"
-
msgid "Repair finished"
msgstr "수리 완료"
-msgid "Repair failed"
-msgstr "수리에 실패하였습니다."
-
-msgid "Repair canceled"
-msgstr "수리 취소됨"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "파일 %1%를 %2%으로 복사 실패: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "새 제조사 프로파일 다운로드 중: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "새 제조사 프로파일 다운로드 중: %1%..."
# AI Translated
#, boost-format
@@ -13347,8 +14224,11 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "구성 패키지: %1%이(가) %2%(으)로 업데이트되었습니다"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "제조사 프로파일을 다운로드하지 못했습니다: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "제조사 프로파일을 다운로드하지 못했습니다: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "구성 업데이트 전에 저장되지 않은 변경 사항을 확인해야 합니다."
@@ -13357,6 +14237,10 @@ msgstr "구성 업데이트 전에 저장되지 않은 변경 사항을 확인
msgid "Open G-code file:"
msgstr "G-code 파일 열기:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "프라임 타워 생성에 실패했습니다. 첫 번째 레이어가 비어 있기 때문일 수 있습니다."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "객체 하나에 초기 레이어가 비어 있어 출력할 수 없습니다. 바닥을 자르거나 서포트를 활성화하세요."
@@ -13379,9 +14263,61 @@ msgstr "프로세스 압출 역할 변경 G-code"
msgid "Filament change extrusion role G-code"
msgstr "필라멘트 압출 역할 변경 G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"G-code를 %1%(으)로 내보내지 못했습니다.\n"
+"쓰기 위해 파일을 열 수 없습니다."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "폴더 %1%이(가) 존재하지 않습니다."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"G-code를 %1%(으)로 내보내지 못했습니다.\n"
+"디스크가 가득 찼나요?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"출력 G-code 파일 이름을 %1%에서 %2%(으)로 변경하지 못했습니다.\n"
+"오류: %3%\n"
+"%1%이(가) 잠겨 있나요?"
+
msgid "No object can be printed. It may be too small."
msgstr "객체를 출력할 수 없습니다. 너무 작을 수 있습니다"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "선택한 프린터에서 IDEX/IQEX 모드 \"%1%\"에 할당된 도구가 없습니다. 대신 주(Primary) 모드로 출력합니다. 프린터 설정에서 모드의 도구를 할당하거나, 플레이트의 IDEX/IQEX 버튼에서 다른 모드를 선택하세요."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "이 플레이트는 IDEX/IQEX 모드 \"%1%\"(으)로 설정되어 있지만, 선택한 프린터에는 이 모드가 정의되어 있지 않습니다. 대신 주(Primary) 모드로 출력합니다. 플레이트의 IDEX/IQEX 버튼에서 모드를 선택하거나, 프린터 설정에서 모드를 복원하세요."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "잘못된 썸네일 값:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "출력물이 프라이밍 영역에 매우 가깝습니다. 충돌이 없는지 확인합니다."
@@ -13431,6 +14367,10 @@ msgstr "그룹화 오류: %1%은(는) 왼쪽 노즐에 배치할 수 없습니
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "그룹화 오류: %1%은(는) 오른쪽 노즐에 배치할 수 없습니다"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "유효한 노즐을 찾을 수 없습니다. 노즐 수를 확인하세요."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "수동 모드에서 그룹 오류가 발생했습니다. 노즐 개수를 확인하거나 다시 그룹화하십시오."
@@ -13450,6 +14390,18 @@ msgstr "둘레와 여러 번 교차하여 하나만 사용했습니다(%1%)"
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "둘레가 수정자 안에 완전히 들어 있어 수정자가 적용되지 않았습니다(%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "\"%3%\"의 %1% 수정자 \"%2%\"이(가) 둘레 전체를 덮고 있습니다"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "\"%3%\"의 %1% 수정자 \"%2%\"(총 %4%개)이(가) 둘레 전체를 덮고 있습니다"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13464,9 +14416,47 @@ msgstr "\"%2%\"의 수정자 \"%1%\"(총 %3%개)이(가) 재봉선에 영향을
msgid "Seam placement may differ from expected."
msgstr "재봉선 위치가 예상과 다를 수 있습니다."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "내부 브릿지"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing()이(가) 음수 간격을 생성했습니다. 압출 너비를 너무 작게 설정하지 않았나요?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm()이(가) 음수 압출량을 생성했습니다. 압출 너비를 너무 작게 설정하지 않았나요?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "%1%의 선 너비를 계산하지 못했습니다. \"%2%\"의 값을 가져올 수 없습니다."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Flow::with_spacing()에 잘못된 간격이 제공되었습니다. 레이어 높이와 돌출 너비를 확인하세요"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "선택한 3mf 파일이 더 새로운 버전의 %1%로 저장되어 호환되지 않습니다."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "선택한 3MF에는 더 새로운 버전의 PrusaSlicer로 FDM 서포트를 페인팅한 객체가 포함되어 있어 호환되지 않습니다."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "선택한 3MF에는 더 새로운 버전의 PrusaSlicer로 재봉선을 페인팅한 객체가 포함되어 있어 호환되지 않습니다."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "선택한 3MF에는 더 새로운 버전의 PrusaSlicer로 멀티 머티리얼을 페인팅한 객체가 포함되어 있어 호환되지 않습니다."
+
msgid "undefined error"
msgstr "정의되지 않은 오류"
@@ -13561,6 +14551,56 @@ msgstr "검증에 실패했습니다"
msgid "write callback failed"
msgstr "쓰기 호출 실패"
+# AI Translated
+msgid "unknown error"
+msgstr "알 수 없는 오류"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "IDEX/IQEX 병렬 모드에서 멀티컬러 출력을 하려면 각 필라멘트에 전용 물리 압출기가 있어야 합니다. 활성 필라멘트 중 두 개 이상이 프린터의 물리 압출기 맵(MMU/AFC 매니폴드)을 통해 같은 물리 헤드로 연결되어 있으며, 종속된 갠트리는 이를 따라갈 수 없습니다."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "활성 IDEX/IQEX 모드에 주 도구가 정의되어 있지 않아 멀티컬러 출력을 계획할 수 없습니다. 프린터 설정의 IDEX/IQEX 모드 편집기를 열고 도구 하나에 주(Primary) 역할을 지정하세요."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "이 모드의 멀티컬러는 병렬 출력에 해당하지 않습니다. 활성 도구가 모두 하나의 갠트리에 있어 복사하거나 미러링할 두 번째 갠트리가 없습니다. 단일 갠트리에서 멀티컬러 출력을 하려면 플레이트를 주(Primary) 모드로 전환하거나, 두 번째 갠트리의 도구를 포함하는 IDEX/IQEX 모드를 정의하세요."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "IDEX/IQEX 병렬 모드에서 멀티컬러 출력을 하려면 주 도구의 갠트리에 Span 도구가 있어야 합니다. Span 도구가 없으면 모드에 같은 갠트리 안의 멀티컬러 파트너가 지정되지 않습니다. 출력을 단일 필라멘트로 줄이거나, 주(Primary) 모드로 전환하거나, 프린터 설정의 IDEX/IQEX 모드 편집기를 열어 주 도구의 갠트리에 있는 도구 하나를 Span으로 지정하세요."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "이 Span 모드에서는 %1%만 색상을 출력하지만, 필라멘트 %2%은(는) 어떤 툴에도 연결되어 있지 않습니다. %1%에 연결된 필라멘트를 사용하거나, 이 플레이트를 주(Primary) 모드로 전환하세요."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "이 Span 모드에서는 %1%만 색상을 출력하지만, 필라멘트 %2%은(는) T%3%에 연결되어 있습니다. %1%에 연결된 필라멘트를 사용하거나, 이 플레이트를 주(Primary) 모드로 전환하세요."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"선택한 사전 설정을 로드할 수 없습니다: %1%\n"
+"\t이유: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"사전 설정 파일을 로드하지 못했습니다: %1%\n"
+"\t이유: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% 이(가) 제외 영역에 너무 가깝습니다. 출력 시 충돌이 발생 할 수 있습니다."
@@ -13577,27 +14617,34 @@ msgstr "%1% 이(가) 너무 높아서 충돌이 출력 시 발생할 수 있습
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "모델과 프라임 타워의 상대 위치가 \"희소 레이어 없음\" 기능의 요구 사항을 충족하지 않습니다. 상대 위치를 조정하거나 모델 높이를 낮추거나 \"희소 레이어 없음\"을 해제하세요."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " 이(가) 제외 영역에 너무 가깝습니다. 출력 시 충돌이 발생 할 수 있습니다."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " 뭉침 감지 영역에 너무 가까워 출력 시 충돌이 발생할 수 있습니다."
-
-msgid "Prime Tower"
-msgstr "프라임 타워"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " 이(가) 다른 객체와 너무 가까워 출력 시 충돌이 발생 할 수 있습니다.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " 이(가) 제외 영역에 너무 가깝습니다. 출력 시 충돌이 발생 할 수 있습니다.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " 뭉침 감지 영역에 너무 가까워 충돌이 발생할 수 있습니다.\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1%이(가) 뭉침 감지 영역에 너무 가깝습니다. 출력 시 충돌이 발생할 수 있습니다."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " 이(가) 출력 가능 영역을 일부 벗어나 출력할 수 없습니다.\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "프라임 타워가 다른 객체와 너무 가까워 충돌이 발생할 수 있습니다.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "프라임 타워가 제외 영역에 너무 가까워 충돌이 발생하게 됩니다.\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "프라임 타워가 뭉침 감지 영역에 너무 가까워 충돌이 발생하게 됩니다.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "프라임 타워가 제외 영역에 너무 가깝습니다. 출력 시 충돌이 발생할 수 있습니다."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "프라임 타워가 뭉침 감지 영역에 너무 가깝습니다. 출력 시 충돌이 발생할 수 있습니다."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "프라임 타워가 출력 가능 영역을 일부 벗어나 출력할 수 없습니다.\n"
# AI Translated
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
@@ -13614,6 +14661,58 @@ msgstr "그래도 출력하려면 기본 설정 / 제어 / 슬라이싱 / 혼합
msgid "No extrusions under current settings."
msgstr "현재 설정에 압출기가 없습니다."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "IDEX/IQEX 병렬 모드에서는 혼합 필라멘트가 지원되지 않습니다. 이 플레이트를 주(Primary) 모드로 전환하세요."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX 모드 \"%1%\"은(는) T%2%(으)로 출력하지만, 이 플레이트의 필라멘트 중 구성된 툴에 있는 것이 없습니다. T%2%에 로드된 필라멘트를 지정하거나, 이 플레이트를 주(Primary) 모드로 전환하세요."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX 모드 \"%1%\"은(는) T%2%(으)로 출력하지만, 이 플레이트의 필라멘트는 %3%에 있습니다. T%2%에 로드된 필라멘트를 지정하거나, 이 플레이트를 주(Primary) 모드로 전환하세요."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "라프트는 벨트 프린터 모드와 호환되지 않습니다."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "드래프트 실드는 벨트 프린터 모드와 호환되지 않습니다."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "벨트 프린터에서는 브림이 나선형 꽃병 모드와 호환되지 않습니다. 둘 중 하나를 비활성화하세요."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "벨트 경사가 너무 가팔라 브림을 생성하지 않습니다."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "브림은 벨트가 기울어진 경우에만 생성됩니다. 벨트 기울기 각도를 설정하거나 브림 설정을 제거하세요."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "벨트 프린터는 외부 및 내부 브림만 지원합니다. '자동', '생쥐 귀', '칠해짐' 브림은 '외부 브림만'으로 출력되며, '브림 너비'를 사용합니다."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "브림-객체 간격은 앞쪽 브림을 객체의 앞쪽 가장자리(브림이 고정해야 할 가장자리)와 떨어뜨립니다. 앞쪽 브림 길이를 사용할 때는 간격을 0으로 설정하세요."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "앞쪽 브림 길이는 벨트를 따라 각 객체 앞쪽으로 브림을 연장하며, 정렬은 그 공간을 확보하지 않습니다. 객체 사이에 여유 공간을 두세요."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "\"앞쪽 가장자리만\" 브림은 벨트 프린터에 적용됩니다. 이 프린터에서는 일반 외부 브림으로 출력됩니다."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "그라데이션 혼합 필라멘트가 사용 중이지만 '혼색 서브레이어'가 비활성화되어 있습니다. 그라데이션은 출력되지 않습니다."
@@ -13624,6 +14723,18 @@ msgstr "타임랩스의 유연 모드는 \"객체별\" 출력순서가 활성화
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "\"객체별\" 시퀀스가 활성화된 경우 뭉침 감지가 지원되지 않습니다."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "\"객체별\" 출력 순서에서는 벨트 퍼지 타워가 생성되지 않으므로 필라멘트 교체 시 플러시가 수행되지 않습니다."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "벨트 퍼지 타워가 활성화되어 있지만 프로젝트에 퍼지 타워 객체가 없어 필라멘트 교체 시 플러시가 수행되지 않습니다. 애플리케이션에서 프로젝트를 열어 타워를 생성하세요."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "프로젝트에 관리되는 벨트 퍼지 타워가 여러 개 있습니다. 플레이트를 다시 불러오거나 벨트 퍼지 타워를 껐다 켜서 다시 생성하세요."
+
# AI Translated
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "정밀 Z 높이와 프라임 타워를 함께 활성화하면 슬라이싱 오류가 발생할 수 있습니다."
@@ -13642,10 +14753,6 @@ msgstr "객체에 둘 이상의 재료가 포함된 경우 나선형 꽃병 모
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "객체 %1% 자체는 빌드 볼륨에 맞지만, 머티리얼 수축 보정 때문에 최대 빌드 볼륨 높이를 초과합니다."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "%1% 객체가 최대 빌드 부피 높이를 초과합니다."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "%1% 객체 자체가 빌드 부피에 맞지만 마지막 레이어가 최대 빌드 부피 높이를 초과합니다."
@@ -13653,6 +14760,10 @@ msgstr "%1% 객체 자체가 빌드 부피에 맞지만 마지막 레이어가
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "모델 크기를 줄이거나 현재 출력 설정을 변경하고 다시 시도할 수 있습니다."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "%1% 객체가 최대 빌드 부피 높이를 초과합니다."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "유기체 서포트에서는 가변 레이어 높이가 지원되지 않습니다."
@@ -13666,8 +14777,9 @@ msgstr "프라임 타워를 활성화하면 노즐 직경과 필라멘트 직경
msgid "The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1)."
msgstr "프라임 타워는 현재 관련 압출기에서만 지원됩니다.주소 지정(use_relative_e_distances=1)."
+# AI Translated
msgid "Ooze prevention is only supported with the wipe tower when 'single_extruder_multi_material' is off."
-msgstr "흘러내림 방지는 'single_extruder_multi_material'이 꺼져 있을 때만 와이프 타워에서 지원됩니다."
+msgstr "흘러내림 방지는 'single_extruder_multi_material'이 꺼져 있을 때만 프라임 타워에서 지원됩니다."
# AI Translated
msgid "The prime tower is currently only supported for the Marlin, RepRap/Sprinter, RepRapFirmware and Repetier G-code flavors."
@@ -13818,6 +14930,10 @@ msgstr "하나 이상의 압출기에 대한 적응형 Pressure Advance 모델
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "사용된 필라멘트들의 수축률이 서로 일치하지 않으므로 필라멘트 수축 보정이 적용되지 않습니다."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "출력이 비어 있습니다. 현재 출력 설정으로는 모델을 출력할 수 없습니다."
+
msgid "Generating skirt & brim"
msgstr "스커트 & 브림 생성 중"
@@ -13839,6 +14955,17 @@ msgstr "G-code 내보내는 중"
msgid "Generating G-code"
msgstr "G-code 생성 중"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "이전 3MF 파일의 G-code 파일 %1%을(를) 처리하지 못했습니다."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "벨트 퍼지 타워가 전체 플러시 볼륨을 흡수할 수 없습니다: 총 %1% mm³를 플러시하지 못했습니다(최악의 레이어: 높이 %3%에서 %2% mm³). 출력물에 색 번짐이 나타날 수 있습니다. 벨트 퍼지 타워 너비를 늘리거나 플러시 볼륨을 줄이세요."
+
# AI Translated
msgid "Processing of the filename_format template failed."
msgstr "filename_format 템플릿 처리에 실패했습니다."
@@ -14324,13 +15451,13 @@ msgid ""
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
"브릿지의 선 너비입니다. %로 입력 시 노즐 직경에 대한 비율로 계산됩니다.\n"
"브릿지 밀도나 브릿지 압출량 비율을 높여 함께 사용하는 것이 좋습니다.\n"
"\n"
"최대값은 100% 또는 노즐 직경입니다.\n"
-"0으로 설정하면 선 너비가 꽉찬 내부 채우기 너비와 같아집니다."
+"0으로 설정하면 선 너비가 꽉찬 내부 채우기 너비와 같아지며, 두꺼운 브릿지의 경우 노즐 직경과 같아집니다."
msgid "Internal bridge flow ratio"
msgstr "내부 브릿지 압출량 비율"
@@ -14635,7 +15762,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"둘레가 위로 말려 올라갈 수 있는 영역에서 출력 속도를 늦추려면 이 옵션을 활성화하십시오.\n"
"예를 들어 Benchy 선체 앞부분과 같은 날카로운 모서리의 오버행을 출력할 때 추가 감속이 적용되어, 여러 레이어에 걸쳐 누적되는 말림을 줄여 줍니다.\n"
@@ -14647,22 +15774,23 @@ msgstr ""
"이 옵션을 활성화할 때의 권장 사항:\n"
"1. 압출기가 속도 변화에 빠르게 반응하도록 Pressure Advance 평활 시간을 0.015 - 0.02로 줄이십시오.\n"
"2. 최소 출력 속도를 높여 감속 폭을 제한하고 빠른 구간과 느린 구간의 차이를 줄이십시오.\n"
-"3. 그래도 아티팩트가 나타나면 압출량 평활화(ERS)를 활성화하여 압출량 전환을 더 부드럽게 하십시오.\n"
+"3. 그래도 아티팩트가 나타나면 유연한 압출량(ERS)을 활성화하여 압출량 전환을 더 부드럽게 하십시오.\n"
"\n"
"참고: 이 옵션을 활성화하면 오버행 둘레가 오버행처럼 처리되어, 오버행 둘레가 브릿지의 일부인 경우에도 오버행 속도가 적용됩니다.\n"
-"예를 들어 둘레가 100% 오버행이고 아래에서 받쳐 주는 벽이 없으면 100% 오버행 속도가 적용됩니다."
+"예를 들어 둘레가 100% 오버행이고 아래에서 받쳐 주는 벽이 없으면 75% 오버행 속도가 적용되며, 브릿지 속도로 제한됩니다."
msgid "mm/s or %"
msgstr "mm/s 또는 %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"외부에서 볼 수 있는 브릿지 돌출 속도입니다.\n"
"\n"
-"또한, 구부러진 둘레에 대한 속도 저하가 비활성화되거나 클래식 오버행 모드가 활성화된 경우 브릿지의 일부이든 오버행이든 상관없이 오버행 벽의 출력 속도는 13% 미만으로 지원됩니다."
+"또한, \"구부러진 둘레에서 감속\"이 비활성화된 경우, 브릿지의 일부이든 오버행이든 상관없이 지지율이 13% 미만인 오버행 벽의 출력 속도가 됩니다."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "내부 브릿지의 속도. 값을 백분율로 표현하면 bridge_speed를 기준으로 계산됩니다. 기본값은 150%입니다."
@@ -14670,12 +15798,56 @@ msgstr "내부 브릿지의 속도. 값을 백분율로 표현하면 bridge_spee
msgid "This is the distance from the model to the outermost brim line."
msgstr "모델과 가장 바깥쪽 브림 선까지의 거리"
+# AI Translated
+msgid "Leading brim length"
+msgstr "앞쪽 브림 길이"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"벨트 프린터 전용. 벨트를 따라 객체 앞쪽으로 브림을 연장하며, 접촉 영역에서 내리막 쪽을 향하는 모든 가장자리에 적용됩니다. 객체가 벨트에 처음 닿는 부분과 나중에 닿는 모든 섬이 포함됩니다. 이 에이프런은 객체가 도달하기 전에 벨트에 먼저 깔리므로, 앞쪽 가장자리가 이미 붙어 있는 부분을 붙잡을 수 있습니다.\n"
+"\n"
+"벨트 표면에서 측정하며 브림 너비에 더해집니다. 브림은 객체 앞쪽으로 브림-객체 간격 + 앞쪽 브림 길이 + 브림 너비만큼 뻗습니다. 브림-객체 간격을 0으로 설정하지 않으면 에이프런이 고정해야 할 객체에 닿지 않습니다.\n"
+"\n"
+"기울어진 벨트에서는 각 레이어가 브림을 한 줄씩 깔기 때문에, 만들어지는 브림 시트의 두께는 레이어 높이가 아니라 압출량으로 결정됩니다. 브림 압출량 비율로 조정하세요.\n"
+"\n"
+"0으로 설정하면 비활성화됩니다."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "추가 브림 너비"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"벨트 프린터 전용. 객체 앞이나 뒤로 더 연장하지 않고, 벨트를 가로질러 브림을 옆으로 넓힙니다. 부품이 길이 방향으로 브림 너비만으로 얻을 수 있는 것보다 더 큰 접착력이 필요할 때 사용하세요.\n"
+"\n"
+"벨트 표면에서 측정하며 브림 너비에 더해집니다. 브림은 객체 양옆으로 브림-객체 간격 + 브림 너비 + 추가 브림 너비만큼 뻗습니다. 대신 객체 앞쪽으로 브림을 연장하려면 앞쪽 브림 길이를 사용하세요.\n"
+"\n"
+"0으로 설정하면 비활성화됩니다."
+
msgid "Brim type"
msgstr "브림 유형"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "모델의 외부 그리고/또는 내부에서 브림의 생성을 제어합니다. 자동은 브림너비가 자동으로 분석 및 계산됨을 의미합니다."
+# AI Translated
+msgid "Leading edge only"
+msgstr "앞쪽 가장자리만"
+
msgid "Brim-object gap"
msgstr "브림-객체 간격"
@@ -14988,6 +16160,9 @@ msgstr ""
"\n"
"3. 필터링 없음 - 모든 잠재적인 내부 오버행에 내부 브릿지를 생성합니다. 이 옵션은 경사가 심한 윗면 모델에 유용하지만, 대부분의 경우 불필요한 브릿지가 너무 많이 생성됩니다."
+msgid "Filter"
+msgstr "필터"
+
msgid "Limited filtering"
msgstr "제한된 필터링"
@@ -15005,8 +16180,8 @@ msgid "End G-code"
msgstr "종료 G-code"
# AI Translated
-msgid "Add end G-Code when finishing the entire print."
-msgstr "출력이 종료될 때의 G-code"
+msgid "Add end G-code when finishing the entire print."
+msgstr "전체 출력이 끝날 때 종료 G-code를 추가합니다."
# AI Translated
msgid "Between Object G-code"
@@ -15199,8 +16374,9 @@ msgstr "가장 바깥쪽의 눈에 보이는 외벽의 속도. 더 나은 품질
msgid "Small perimeters"
msgstr "작은 둘레"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "이 별도의 설정은 반지름이 가진 둘레의 속도에 영향을 줍니다 <= 작은 둘레 임계값(small_perimeter_threshold) 이하인 둘레(일반적으로 구멍). 백분율로 설정하면(예: 80%) 외벽 속도 설정에서 계산됩니다. 자동의 경우 0으로 설정합니다."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "이 별도의 설정은 반지름이 small_perimeter_threshold 이하인 둘레(일반적으로 구멍)의 속도에 영향을 줍니다. 백분율로 설정하면(예: 80%) 위의 외벽 속도 설정을 기준으로 계산됩니다."
msgid "Small perimeters threshold"
msgstr "작은 둘레 임계값"
@@ -15213,8 +16389,8 @@ msgid "Small support perimeters"
msgstr "작은 서포트 둘레"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "\"작은 둘레\"와 같지만 서포트에 적용됩니다. 이 별도 설정은 `small_support_perimeter_threshold` 이하 영역의 서포트 속도에 영향을 줍니다. 백분율(예: 80%)로 입력하면 위의 서포트 또는 서포트 접점 속도를 기준으로 계산됩니다. 0으로 설정하면 자동입니다."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "\"작은 둘레\"와 같지만 서포트에 적용됩니다. 이 별도 설정은 `small_support_perimeter_threshold` 이하 영역의 서포트 속도에 영향을 줍니다. 백분율(예: 80%)로 입력하면 위의 서포트 또는 서포트 접점 속도를 기준으로 계산됩니다."
# AI Translated
msgid "Small support perimeters threshold"
@@ -15227,22 +16403,23 @@ msgstr "작은 서포트 둘레 길이의 임계값을 설정합니다. 기본
msgid "Walls printing order"
msgstr "벽 출력 순서"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
"내벽 및 외벽의 출력 순서를 지정합니다.\n"
"\n"
-"오버행을 가장 잘 출력하려면 내부/외부를 사용합니다. 이는 돌출된 벽이 출력하는 동안 인접한 경계에 부착될 수 있기 때문입니다. 그러나 이 옵션을 사용하면 외부 경계가 내부 경계에 눌려 변형되므로 표면 품질이 약간 저하됩니다.\n"
+"오버행을 가장 잘 출력하려면 내벽/외벽을 사용합니다. 이는 돌출된 벽이 출력하는 동안 인접한 둘레에 부착될 수 있기 때문입니다. 그러나 이 옵션을 사용하면 외부 둘레가 내부 둘레에 눌려 변형되므로 표면 품질이 약간 저하됩니다.\n"
"\n"
-"내부/외부/내부를 사용하면 외부 벽이 내부 경계에서 방해받지 않고 출력되므로 최상의 외부 표면 마감과 치수 정확도를 얻을 수 있습니다. 그러나 외부 벽을 출력할 내부 경계가 없으므로 오버행 성능이 저하됩니다. 이 옵션은 세 번째 경계부터 내부 벽을 먼저 출력한 다음 외부 경계, 마지막으로 첫 번째 내부 경계를 출력하므로 최소 3개 이상의 벽이 있어야 효과적입니다. 이 옵션은 대부분의 경우 외부/내부 옵션보다 권장됩니다.\n"
+"내벽/외벽/내벽을 사용하면 외벽이 내부 둘레에서 방해받지 않고 출력되므로 최상의 외부 표면 마감과 치수 정확도를 얻을 수 있습니다. 그러나 외벽을 출력할 내부 둘레가 없으므로 오버행 성능이 저하됩니다. 이 옵션은 세 번째 둘레부터 내벽을 먼저 출력한 다음 외부 둘레, 마지막으로 첫 번째 내부 둘레를 출력하므로 최소 3개 이상의 벽이 있어야 효과적입니다. 이 옵션은 대부분의 경우 외벽/내벽 옵션보다 권장됩니다.\n"
"\n"
-"내부/외부/내부 옵션과 동일한 외벽 품질 및 치수 정확도 이점을 얻으려면 외부/내부를 사용하세요. 그러나 새 레이어의 첫 번째 돌출이 보이는 표면에서 시작되므로 Z 심이 덜 일관되게 나타납니다."
+"외벽/내벽은 내벽/외벽/내벽 옵션과 동일한 외벽 품질 및 치수 정확도 이점이 있습니다. 그러나 새 레이어의 첫 번째 돌출이 보이는 표면에서 시작되므로 Z 재봉선이 덜 일관되게 나타납니다."
msgid "Inner/Outer"
msgstr "내벽/외벽"
@@ -15701,14 +16878,17 @@ msgstr "첫 번째 냉각 이동 속도"
msgid "Cooling moves are gradually accelerating beginning at this speed."
msgstr "이 속도부터 냉각 동작이 점차 가속됩니다."
+# AI Translated
msgid "Minimal purge on wipe tower"
-msgstr "프라임 타워의 최소 청소"
+msgstr "프라임 타워의 최소 플러시"
+# AI Translated
msgid "After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial object, Orca Slicer will always prime this amount of material into the wipe tower to produce successive infill or sacrificial object extrusions reliably."
-msgstr "툴 체인지 후 노즐 내부에 새로 로드된 필라멘트의 정확한 위치를 알 수 없으며 필라멘트 압력이 아직 안정적이지 않을 수 있습니다. 프린트 헤드를 채우기 또는 희생 객체로 청소하기 전에 Orca Slicer은 항상 이 양의 재료를 프라임 타워로 프라이밍하여 연속적인 채우기 또는 희생 물체 압출을 안정적으로 생성합니다."
+msgstr "툴 체인지 후 노즐 내부에 새로 로드된 필라멘트의 정확한 위치를 알 수 없으며 필라멘트 압력이 아직 안정적이지 않을 수 있습니다. 프린트 헤드를 채우기 또는 희생 객체로 플러시하기 전에 OrcaSlicer는 항상 이 양의 재료를 프라임 타워로 프라이밍하여 연속적인 채우기 또는 희생 객체 압출을 안정적으로 생성합니다."
+# AI Translated
msgid "Wipe tower cooling"
-msgstr "와이프 타워 냉각"
+msgstr "프라임 타워 냉각"
msgid "Temperature drop before entering filament tower"
msgstr "필라멘트 타워 진입 전 온도 강하"
@@ -15894,9 +17074,6 @@ msgstr "필라멘트 가격. 통계 전용"
msgid "money/kg"
msgstr "가격/kg"
-msgid "Vendor"
-msgstr "제조사"
-
msgid "Vendor of filament. For show only."
msgstr "필라멘트 제조사"
@@ -15973,6 +17150,92 @@ msgstr "다중 선 채우기"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "채우기 패턴에서 지원되는 경우 채우기 패턴에 여러 줄을 사용합니다."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "적응형 밀도(실험적)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"객체 내부의 자이로이드 및 TPMS 채우기에 밀도 변화를 줍니다. 셀은 객체 표면에서 중심으로 갈수록 커집니다. 표면에는 드문 채우기 밀도가, 중심에는 내부 밀도가 사용됩니다.\n"
+"거리 왜곡, 부드러운 혼합, 계단식 쉘은 상단과 하단을 포함한 가장 가까운 표면까지의 거리를 따르며, 표면에서 가장 먼 지점에 내부 밀도가 적용됩니다:\n"
+" - 거리 왜곡: 하나로 이어진 패턴이며, 판재나 긴 부품처럼 방향에 따라 거리가 달라지는 곳에서는 늘어나고 기울어집니다.\n"
+" - 부드러운 혼합: 인접한 밀도의 패턴이 서로 섞이며, 만나는 곳에 작은 루프가 생깁니다.\n"
+" - 계단식 쉘: 밀도가 약 1.5배씩 차이 나는 일반 패턴의 쉘로, 선이 쉘 경계를 따라 연결됩니다.\n"
+" - 로브: 상단과 하단을 포함한 객체의 3D 형상을 따릅니다. 더 좁은 목으로 나머지 부분과 연결된 각 로브는 자체 중심을 향해 밀도가 변합니다.\n"
+" - 법선 Z, Y 또는 X: 해당 축에 수직인 객체 단면을 따르므로, 그 축을 따라서는 밀도가 변하지 않습니다."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "거리 왜곡"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "부드러운 혼합"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "계단식 쉘"
+
+# AI Translated
+msgid "Lobes"
+msgstr "로브"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "법선 Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "법선 Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "법선 X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "내부 밀도"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "객체 중심에서의 적응형 채우기 밀도입니다."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "적응형 그라데이션"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"객체 표면에서 중심으로 갈 때 밀도가 변하는 방식입니다.\n"
+"선형: 밀도가 일정한 비율로 변합니다.\n"
+"2차: 표면 근처에서는 밀도가 드문 채우기 밀도에 가깝게 유지되다가 중심으로 갈수록 빠르게 변합니다.\n"
+"지수: 표면 바로 아래에서 밀도가 빠르게 변하고 중심으로 갈수록 완만해집니다."
+
+# AI Translated
+msgid "Linear"
+msgstr "선형"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "2차"
+
+# AI Translated
+msgid "Exponential"
+msgstr "지수"
+
# AI Translated
msgid "Z-buckling bias optimization (experimental)"
msgstr "Z축 좌굴 편향 최적화(실험적)"
@@ -16128,14 +17391,16 @@ msgstr "초기 레이어 높이"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "초기 레이어의 높이입니다. 초기 레이어 높이를 약간 두껍게 하면 빌드 플레이트 접착력을 향상시킬 수 있습니다"
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "꽉찬 채우기 부분을 제외한 초기 레이어 속도"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "초기 레이어의 벽과 브림 속도입니다."
msgid "First layer infill"
msgstr "초기 레이어 채우기"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "초기 레이어의 꽉찬 채우기 속도"
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "벽과 브림을 제외한 초기 레이어의 속도입니다(채우기, 간격 채우기, 서포트 등)."
msgid "First layer travel speed"
msgstr "초기 레이어 이동 속도"
@@ -16621,6 +17886,10 @@ msgstr "G-code 유형"
msgid "What kind of G-code the printer is compatible with."
msgstr "프린터와 호환되는 G-code 종류"
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (레거시)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16650,7 +17919,7 @@ msgstr "객체 이름표"
# AI Translated
# Wipe into this object;s infill/Wipe into this object
msgid "Enable this to add comments into the G-code labeling print moves with what object they belong to, which is useful for the Octoprint CancelObject plug-in. This setting is NOT compatible with Single Extruder Multi Material setup and Wipe into Object / Wipe into Infill."
-msgstr "출력 이동이 어느 객체에 속하는지 표시하는 주석을 G-code에 추가하려면 이 옵션을 활성화하세요. 이는 Octoprint CancelObject 플러그인에 유용합니다. 이 설정은 단일 압출기 다중 재료 설정 및 객체에서 버리기 / 채우기에서 버리기와 호환되지 않습니다."
+msgstr "출력 이동이 어느 객체에 속하는지 표시하는 주석을 G-code에 추가하려면 이 옵션을 활성화하세요. 이는 Octoprint CancelObject 플러그인에 유용합니다. 이 설정은 단일 압출기 다중 재료 설정 및 객체에서 플러시 / 채우기에서 플러시와 호환되지 않습니다."
msgid "Exclude objects"
msgstr "객체 제외"
@@ -16876,16 +18145,18 @@ msgstr "드문 내부 채우기의 선 너비. %로 입력 시 노즐 직경에
msgid "Infill/wall overlap"
msgstr "채우기/벽 겹치기"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "채우기 영역은 더 나은 접착을 위해 벽과 겹치도록 약간 확대됩니다. 백분율 값은 희박한 채우기의 선 너비를 기준으로 합니다. 거친 상단 표면을 초래하는 재료의 압출 및 축적 가능성을 최소화하려면 이 값을 ~10-15%로 설정하십시오."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "채우기 영역은 더 나은 접착을 위해 벽과 겹치도록 약간 확대됩니다. 백분율 값은 내벽 선 너비를 기준으로 합니다. 거친 상단 표면을 초래하는 재료의 압출 및 축적 가능성을 최소화하려면 이 값을 ~10-15%로 설정하십시오."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "상하단 솔리드 채우기/벽 겹침"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "상단 솔리드 채우기 영역은 더 나은 접착을 위해 벽과 겹치도록 약간 확대되고 상단 채우기가 벽과 만나는 핀홀의 모양을 최소화합니다. 25-30%의 값은 핀홀의 모양을 최소화하는 좋은 출발점입니다. 백분율 값은 희박한 채우기의 선 너비를 기준으로 합니다"
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "상단 솔리드 채우기 영역은 더 나은 접착을 위해 벽과 겹치도록 약간 확대되고 상단 채우기가 벽과 만나는 핀홀의 모양을 최소화합니다. 25-30%의 값은 핀홀의 모양을 최소화하는 좋은 출발점입니다. 백분율 값은 내벽 선 너비를 기준으로 합니다."
msgid "This is the speed for internal sparse infill."
msgstr "내부 드문 채우기 속도"
@@ -16911,8 +18182,9 @@ msgstr "분할된 영역의 최대 너비입니다. 0은 이 기능을 비활성
msgid "Interlocking depth of a segmented region"
msgstr "분할된 영역의 연동 깊이"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "분할된 영역의 연동 깊이. \"mmu_segmented_region_max_width\"가 0이거나 \"mmu_segmented_region_interlocking_length\"가 \"mmu_segmented_region_max_width\"보다 크면 무시됩니다. 0은 이 기능을 비활성화합니다."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "분할된 영역의 연동 깊이입니다. 한 레이어 걸러, 분할된 영역이 이 깊이로 제한됩니다. \"interlocking_beam\"이 활성화되어 있으면 무시됩니다. 0으로 설정하면 이 기능이 비활성화됩니다."
msgid "Use beam interlocking"
msgstr "인터로킹 빔 사용"
@@ -17025,11 +18297,11 @@ msgstr "벽 높이 최소화 각도"
# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"상단 표면 둘레의 높이를 모델 가장자리 높이에 맞춰 줄입니다.\n"
-"이 각도(도)보다 기울기가 작은 둘레에 적용됩니다.\n"
+"이 각도(도)보다 기울기가 큰 둘레에 적용됩니다.\n"
"적절한 값은 35입니다. 0으로 설정하면 비활성화됩니다."
# AI Translated
@@ -17114,16 +18386,20 @@ msgstr "Z축 최대 속도"
msgid "Maximum speed E"
msgstr "E축 최대 속도"
-msgid "Maximum X speed"
+# AI Translated
+msgid "Maximum speed of the X axis"
msgstr "X축 최대 속도"
-msgid "Maximum Y speed"
+# AI Translated
+msgid "Maximum speed of the Y axis"
msgstr "Y축 최대 속도"
-msgid "Maximum Z speed"
+# AI Translated
+msgid "Maximum speed of the Z axis"
msgstr "Z축 최대 속도"
-msgid "Maximum E speed"
+# AI Translated
+msgid "Maximum speed of the E axis"
msgstr "E축 최대 속도"
msgid "Maximum acceleration X"
@@ -17664,7 +18940,7 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "이 사전 설정이 참조하는 플러그인 기능으로, name;uuid;capability 형식으로 저장됩니다."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr "슬라이싱 파이프라인의 각 단계에서 호출되어 중간 슬라이싱 데이터를 읽고 수정하는 Python 플러그인입니다. 마지막 G-code 후처리 단계도 포함됩니다. 연구/실험용입니다."
msgid "Printer type"
@@ -18041,7 +19317,8 @@ msgstr "내벽용 스카프 조인트"
msgid "Use scarf joint for inner walls as well."
msgstr "내벽에도 스카프 조인트를 사용하십시오."
-msgid "Role base wipe speed"
+# AI Translated
+msgid "Role based wipe speed"
msgstr "역할 기반 노즐 청소 속도"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -18133,16 +19410,15 @@ msgstr "초기 레이어 이후 스커트/드래프트 실드의 루프를 벽
msgid "Draft shield"
msgstr "드래프트 실드"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"드래프트 실드는 바람으로 인해 ABS 또는 ASA 출력물이 뒤틀리거나 출력 베드에서 분리되는 것을 방지하는 데 유용합니다. 일반적으로 오픈 프레임 프린터, 즉 인클로저가 없는 경우에만 필요합니다.\n"
"\n"
-"활성화 = 스커트가 가장 높은 출력물의 높이와 같습니다. 그렇지 않으면 '스커트 높이'가 사용됩니다.\n"
-"참고: 드래프트 실드가 활성화되면 스커트는 객체로부터 스커트 거리에 출력됩니다. 따라서 챙이 활성화된 경우 챙과 교차할 수 있습니다. 이를 방지하려면 스커트 거리 값을 늘리십시오.\n"
+"활성화 = 스커트가 가장 높은 출력물의 높이와 같습니다. 그렇지 않으면 '스커트 높이'가 사용됩니다."
msgid "Enabled"
msgstr "활성화"
@@ -18313,6 +19589,130 @@ msgstr "단일 압출기 다중 재료"
msgid "Use single nozzle to print multi filament."
msgstr "단일 노즐을 사용하여 다중 필라멘트 출력"
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "IDEX/IQEX 프린터"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "여러 개의 독립 캐리지가 있는 프린터(IDEX, IQEX 등)에서 병렬 출력을 활성화합니다."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "펌웨어 관리 영역"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "활성화하면 슬라이서가 주 영역의 내용을 베드 원점(0,0)에 중심을 맞춘 G-code를 생성합니다. 각 물리 영역 위치에 복사본/미러본을 배치하는 것은 프린터 펌웨어가 담당합니다. 복사/미러 모드에서 펌웨어가 자체 영역 오프셋을 적용하는 프린터(예: RepRapFirmware IDEX 복제 모드)에서만 활성화하세요. 주(Primary) 모드에서는 효과가 없습니다."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "갠트리 수"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "독립적인 Y축 갠트리의 수입니다. IDEX/단일 레일 IQEX는 1, 듀얼 갠트리 시스템은 2입니다(베드를 행으로 나눔)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "갠트리당 도구 수"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "갠트리당 X 방향의 독립 툴헤드 수입니다. IDEX 방식은 2입니다."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "도구 0 위치"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "도구 T0(인덱스 0)이 위치한 베드 위의 물리적 위치입니다. 도구 인덱스가 베드 영역에 매핑되는 방식을 결정합니다. 단일 갠트리 구성(IDEX)에서는 왼쪽/오른쪽만 의미가 있으며, 듀얼 갠트리 구성(IQEX)에서는 네 모서리를 모두 선택할 수 있습니다(앞 = 낮은 Y / 작업자 쪽, 뒤 = 높은 Y / 기계 뒤쪽)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "노즐 여유 공간 X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "X 방향으로 노즐에서 충돌 쪽 캐리지 가장자리까지의 거리(mm)입니다. 각 X 경계에서 충돌 제외 띠의 너비를 계산하는 데 사용됩니다."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "노즐 여유 공간 Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Y 방향으로 노즐에서 충돌 쪽 캐리지 가장자리까지의 거리(mm)입니다. 각 Y 경계에서 충돌 제외 띠의 너비를 계산하는 데 사용됩니다."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "안전 여유"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "각 캐리지 경계에서 주 영역 안쪽에 그려지는, 슬라이스를 막지 않는 권고용 여유 공간 띠(mm)입니다. 이 띠 안에 놓인 부품도 슬라이스되며, 영역 가장자리 근처에 여유 공간을 더 두라는 시각적 알림입니다."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "시각화 테마"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "IDEX/IQEX 베드 영역 시각화에 사용할 색상 테마입니다. 필요하면 색각 이상을 고려한 테마를 선택하세요."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "녹색맹 / 적색맹(적록)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "청색맹(청황)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "고대비"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "IDEX/IQEX 출력 모드"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "활성 IDEX/IQEX 병렬 출력 모드의 이름이며, 단일 캐리지 출력이면 \"primary\"입니다. 프린터 사전 설정에서 IDEX/IQEX 프린터가 활성화되어 있어야 합니다(프린터 → 다중 재료 → IDEX/IQEX 구성)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "IDEX/IQEX 헤드 필라멘트 맵"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "물리 헤드를 필라멘트 슬롯(1부터 시작)에 매핑하는 플레이트별 재정의입니다. 비어 있으면 각 헤드는 프린터의 물리 압출기 맵이 해당 헤드에 연결하는 첫 번째 필라멘트를 사용합니다."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "IDEX/IQEX 모드 이름"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "사용자 정의 IDEX/IQEX 병렬 출력 모드별 표시 이름입니다."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "IDEX/IQEX 모드 활성 도구"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "모드별 도구 역할 지정입니다. 형식: \"idx:P,idx:C,idx:M\" (P=주(Primary), C=복사(Copy), M=미러(Mirror), 예: \"0:P,1:C,2:M,3:M\"). 프린터 사전 설정의 IDEX/IQEX 모드 편집기에서 관리합니다."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "IDEX/IQEX 모드 G-code"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "모드별로 출력 시작 시 삽입할 G-code 또는 매크로 호출입니다."
+
msgid "Manual Filament Change"
msgstr "수동 필라멘트 교체"
@@ -18320,8 +19720,9 @@ msgstr "수동 필라멘트 교체"
msgid "Enable this option to omit the custom Change filament G-code only at the beginning of the print. The tool change command (e.g., T0) will be skipped throughout the entire print. This is useful for manual multi-material printing, where we use M600/PAUSE to trigger the manual filament change action."
msgstr "출력 시작 시에만 사용자 정의 필라멘트 변경 G-code를 생략하려면 이 옵션을 활성화합니다. 툴 변경 명령(예: T0)은 전체 출력 과정에서 건너뜁니다. 이는 M600/PAUSE를 사용하여 수동 필라멘트 교체 작업을 실행하는 수동 다중 재료 출력에 유용합니다."
+# AI Translated
msgid "Wipe tower type"
-msgstr "와이프 타워 유형"
+msgstr "프라임 타워 유형"
# AI Translated
msgid "Choose the wipe tower implementation for multi-material prints. Type 1 is recommended for Bambu and Qidi printers with a filament cutter. Type 2 offers better compatibility with multi-tool and MMU printers and provide overall better compatibility."
@@ -18333,11 +19734,13 @@ msgstr "유형 1"
msgid "Type 2"
msgstr "유형 2"
+# AI Translated
msgid "Purge in prime tower"
-msgstr "프라임 타워에서 청소"
+msgstr "프라임 타워에서 플러시"
+# AI Translated
msgid "Purge remaining filament into prime tower."
-msgstr "남은 필라멘트를 프라임 타워에서 제거"
+msgstr "남은 필라멘트를 프라임 타워에 플러시합니다."
msgid "Enable filament ramming"
msgstr "필라멘트 채워넣기 활성화"
@@ -18356,7 +19759,7 @@ msgstr "프라임 타워에서 온도 대기"
# AI Translated
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
-msgstr "출력 온도에 도달할 때까지 기다리지 않고 새 툴을 집은 뒤 프라임 타워로 이동하여, 퍼지 직전에 그곳에서 온도를 기다립니다. 가열 중 흘러나온 재료는 모델이 아닌 타워에 떨어지고, 이동 시간이 가열 시간과 겹칩니다. 타입 2 프라임 타워를 사용하는 다중 압출기(다중 툴헤드) 프린터에만 해당합니다. 펌웨어나 툴 체인지 매크로가 직접 온도를 기다려서는 안 됩니다. 비활성화하면 툴 체인지 명령 직후에 온도 대기가 실행됩니다."
+msgstr "출력 온도에 도달할 때까지 기다리지 않고 새 툴을 집은 뒤 프라임 타워로 이동하여, 플러시 직전에 그곳에서 온도를 기다립니다. 가열 중 흘러나온 재료는 모델이 아닌 타워에 떨어지고, 이동 시간이 가열 시간과 겹칩니다. 타입 2 프라임 타워를 사용하는 다중 압출기(다중 툴헤드) 프린터에만 해당합니다. 펌웨어나 툴 체인지 매크로가 직접 온도를 기다려서는 안 됩니다. 비활성화하면 툴 체인지 명령 직후에 온도 대기가 실행됩니다."
msgid "No sparse layers (beta)"
msgstr "희소 레이어 없음(베타)"
@@ -18701,6 +20104,167 @@ msgstr "임계값 중복"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "임계각이 0이면 오버행이 임계값 미만인 오버행에 대한 서포트가 생성됩니다. 이 값이 작을수록 서포트 없이 출력할 수 있는 오버행이 가파르게 됩니다."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "베드 기울기 X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "X축 방향의 베드 기울기 각도입니다. 양수 값은 +X 쪽이 높아지도록 베드를 기울여 중력이 -X 쪽으로 향하게 하고 +X 쪽의 오버행을 늘립니다. 음수 값은 -X 쪽을 높입니다. X축으로 기울이지 않으려면 0으로 설정하세요. 벨트 프린터 모드에서는 벨트 각도와 자동으로 동기화됩니다."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "베드 기울기 Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Y축 방향의 베드 기울기 각도입니다. 양수 값은 +Y 쪽이 높아지도록 베드를 기울여 중력이 -Y 쪽으로 향하게 하고 +Y 쪽의 오버행을 늘립니다. 음수 값은 -Y 쪽을 높입니다. Y축으로 기울이지 않으려면 0으로 설정하세요."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "벨트 출력 활성화"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "벨트 프린터 모드를 활성화합니다. 벨트 프린터는 일정 각도(보통 45도)로 기울어진 컨베이어 벨트를 출력 표면으로 사용합니다. 슬라이서는 기울어진 출력 표면에 맞게 슬라이스 평면을 회전하고 G-code 좌표를 변환합니다."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "무한 Y축"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "벨트 프린터에서 무한 Y축을 활성화합니다. 활성화하면 Y축 빌드 볼륨 제한이 사실상 없어져 벨트 방향으로 길이에 상관없이 객체를 출력할 수 있습니다."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "벨트 기울기 축"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "슬라이스 전에 메시를 회전시키는 기준 축입니다. 벨트 프린터의 기울기에 해당하며, 왜곡 없는(등거리) 회전으로 베드 렌더링과 서포트 중력 기울기에도 적용됩니다. G-code 역변환은 기계 좌표계 전단/배율 및 재매핑 전에 이 회전을 되돌립니다. 일반적인 갠트리 기울기는 X입니다(벨트는 Y 방향으로 이동)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "벨트 기울기 각도"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "벨트 표면의 기울기 각도(도)입니다. 대부분의 벨트 프린터는 45°를 사용합니다. 양수 값은 양의 기울기 축 방향으로 내려다볼 때 반시계 방향으로 회전합니다. 이 값의 크기는 베드 렌더링과 서포트 중력에 사용되는 실제 벨트 기울기이기도 합니다."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "기계 좌표계 기울기 분리"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "전문가용 재정의: 기계 좌표계(G-code 전단/배율) 기울기 각도를 슬라이스 전 회전 각도와 별도로 설정합니다. 비활성화하면 기계 좌표계 변환이 벨트 기울기 각도에서 산출되므로 하나의 각도가 두 단계를 모두 결정합니다. 실제 갠트리 기울기가 슬라이스 회전과 다른 기계를 보정할 때만 활성화하세요."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "기계 좌표계 기울기 각도"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "G-code에 적용되는 기계 좌표계 전단(cot)과 배율(1/|sin|)을 산출하는 데 사용되는 기울기 각도(도)입니다. '기계 좌표계 기울기 분리'가 활성화된 경우에만 사용되며, 그렇지 않으면 벨트 기울기 각도가 사용됩니다."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "역방향 X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "역방향 Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "역방향 Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "G-code 재매핑 X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "G-code 출력에서 기계 X에 매핑되는 슬라이스 축입니다. 슬라이스 후 G-code 생성 중에 적용됩니다."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "G-code 재매핑 Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "G-code 출력에서 기계 Y에 매핑되는 슬라이스 축입니다. 슬라이스 후 G-code 생성 중에 적용됩니다."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "G-code 재매핑 Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "G-code 출력에서 기계 Z에 매핑되는 슬라이스 축입니다. 슬라이스 후 G-code 생성 중에 적용됩니다."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "서포트 바닥 Z 오프셋"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "계산된 벨트 바닥을 위나 아래로 이동합니다(mm). 음수 값은 바닥을 낮춰 더 많은 서포트가 남도록 합니다. 벨트 바닥 공식 문제를 진단할 때 사용하세요."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "벨트 퍼지 타워 활성화"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "프라임 타워를 대신하는 벨트 프린터용 기능입니다. 벨트 프린터에서 활성화하면 출력되는 부품 옆에 퍼지 프리즘이 자동으로 생성되고, 필라멘트 교체 시 플러시가 그 안으로 이루어집니다(기존 프라임 타워는 G-code가 벨트 변환을 거치지 않으므로 벨트 프린터에서 사용할 수 없습니다). 벨트 프린터에서만 사용할 수 있습니다."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "벨트 퍼지 타워 너비"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "벨트 퍼지 타워가 활성화되고 여러 필라멘트를 사용할 때 벨트 프린터에서 자동으로 생성되는 퍼지 프리즘의 너비(기계 X, 벨트를 가로지르는 방향)입니다. 필라멘트 교체 시 플러시는 기존 프라임 타워 대신 이 프리즘의 압출로 이루어집니다. 높이는 레이어당 최악의 경우의 플러시 볼륨으로부터 자동 계산되며, 프리즘이 넓을수록 높이가 낮아집니다."
+
msgid "Tree support branch angle"
msgstr "트리 서포트 가지 각도"
@@ -18893,13 +20457,11 @@ msgstr "분리된 채우기"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"전체 어셈블리가 아니라 각 부품을 개별적으로 슬라이스한 것처럼 부품마다 내부 채우기를 자체 중심에 맞춥니다. 서로 닿거나 겹치는 부품은 하나의 몸체로 간주되어 중심을 공유하며, 분리된 부품(또는 별개의 3D 객체)은 각각 자체 중심을 갖습니다.\n"
-"여러 객체를 묶은 어셈블리에서 각 객체가 자체 중심을 기준으로 일관된 채우기를 유지해야 할 때 유용합니다.\n"
-"선 및 격자 패턴과 회전 템플릿 채우기에 영향을 줍니다.\n"
-"전역 좌표에 고정된 패턴(자이로이드, 벌집, TPMS 등)은 영향을 받지 않습니다."
+"내부 채우기의 중심을 전체 조립체가 아닌 각 부품 자체에 맞춰, 각 부품을 따로 슬라이스한 것처럼 만듭니다. 서로 닿거나 겹치는 부품은 하나로 취급되어 중심을 공유하며, 떨어져 있는 부품(또는 별개의 3D 객체)은 각각 자체 중심을 갖습니다.\n"
+"여러 객체를 묶은 조립체에서 각 객체가 일관된 자체 중심 채우기를 유지해야 할 때 유용합니다.\n"
+"적응형 정육면체와 정육면체 서포트는 항상 각 부품 자체에 중심을 맞추며, 번개 채우기는 객체 전체에 대해 생성되므로 영향을 받지 않습니다."
# AI Translated
msgid "Center surface pattern on"
@@ -18941,6 +20503,7 @@ msgstr "노즐에서 흘러내린된 재료를 청소하기 위해 후퇴할 때
msgid "Wipe distance"
msgstr "노즐 청소 거리"
+# AI Translated
msgid ""
"Describe how long the nozzle will move along the last path when retracting.\n"
"\n"
@@ -18950,9 +20513,9 @@ msgid ""
msgstr ""
"후퇴할 때 노즐이 마지막 경로를 따라 얼마나 오래 움직일지 설명합니다.\n"
"\n"
-"와이프 작업의 지속 시간, 압출기/필라멘트 후퇴 설정의 속도와 길이에 따라 남은 필라멘트를 후퇴시키기 위해 후퇴 동작이 필요할 수 있습니다.\n"
+"노즐 청소 작업의 지속 시간, 압출기/필라멘트 후퇴 설정의 속도와 길이에 따라 남은 필라멘트를 후퇴시키기 위해 후퇴 동작이 필요할 수 있습니다.\n"
"\n"
-"아래의 와이프 전 후퇴량 설정에서 값을 설정하면 와이프 전에 초과 후퇴가 수행되고, 그렇지 않으면 와이프 후에 수행됩니다."
+"아래의 노즐 청소 전 후퇴량 설정에서 값을 설정하면 노즐 청소 전에 초과 후퇴가 수행되고, 그렇지 않으면 노즐 청소 후에 수행됩니다."
# AI Translated
msgid "Mixed color sublayer"
@@ -18971,28 +20534,32 @@ msgstr "내부 갈비"
msgid "Enable internal ribs to increase the stability of the prime tower."
msgstr "프라임 타워의 안정성을 높이기 위해 내부 리브를 활성화합니다."
+# AI Translated
msgid "Purging volumes"
-msgstr "버리기 볼륨"
+msgstr "플러시 볼륨"
+# AI Translated
msgid "Flush multiplier"
-msgstr "버리기 승수"
+msgstr "플러시 승수"
+# AI Translated
msgid "The actual flushing volumes is equal to the flush multiplier value multiplied by the flushing volumes in the table."
-msgstr "실제 버리기 볼륨은 버리기 승수에 테이블의 버리기 볼륨을 곱한 것과 같습니다."
+msgstr "실제 플러시 볼륨은 플러시 승수에 테이블의 플러시 볼륨을 곱한 것과 같습니다."
# AI Translated
msgid "Flush multiplier (Fast mode)"
-msgstr "플러시 배수(고속 모드)"
+msgstr "플러시 승수(고속 모드)"
# AI Translated
msgid "The flush multiplier used in fast purge mode."
-msgstr "고속 플러시 모드에서 사용하는 플러시 배수입니다."
+msgstr "고속 플러시 모드에서 사용하는 플러시 승수입니다."
msgid "Prime volume"
msgstr "프라임양"
+# AI Translated
msgid "This is the volume of material to prime the extruder with on the tower."
-msgstr "탑에서 압출을 실행할 재료의 부피."
+msgstr "타워에서 압출기를 프라임하는 데 사용할 재료의 부피입니다."
# AI Translated
msgid "Prime volume mode"
@@ -19000,7 +20567,7 @@ msgstr "프라임 용량 모드"
# AI Translated
msgid "Selects how the wipe-tower prime and flush volumes are computed on multi-extruder printers."
-msgstr "다중 압출기 프린터에서 프라임 타워의 프라임 및 플러시 용량을 계산하는 방식을 선택합니다."
+msgstr "다중 압출기 프린터에서 프라임 타워의 프라임 용량과 플러시 볼륨을 계산하는 방식을 선택합니다."
# AI Translated
msgid "Saving"
@@ -19031,26 +20598,27 @@ msgstr "프라임 타워를 안정화하는 데 사용되는 원뿔 꼭대기의
msgid "Maximum wipe tower print speed"
msgstr "프라임 타워 최대 속도"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
-"와이프 타워에서 버리기하고 와이프 타워 희박 레이어를 출력할 때 최대 출력 속도입니다. 버리기 시 희소 충전 속도 또는 필라멘트 최대 압출 속도에서 계산된 속도가 더 낮은 경우 가장 낮은 속도가 대신 사용됩니다.\n"
+"프라임 타워에서 플러시를 하고 프라임 타워의 희소 레이어를 출력할 때의 최대 출력 속도입니다. 플러시 시 드문 채우기 속도 또는 필라멘트 최대 압출 속도에서 계산된 속도가 더 낮은 경우 가장 낮은 속도가 대신 사용됩니다.\n"
"\n"
-"희소 레이어를 출력할 때 내부 주변 속도 또는 필라멘트 최대 압출 속도에서 계산된 속도가 더 낮은 경우 가장 낮은 속도가 대신 사용됩니다.\n"
+"희소 레이어를 출력할 때 드문 채우기 속도 또는 필라멘트 최대 압출 속도에서 계산된 속도가 더 낮은 경우 가장 낮은 속도가 대신 사용됩니다.\n"
"\n"
-"이 속도를 높이면 타워의 안정성에 영향을 줄 수 있을 뿐만 아니라 노즐이 와이프 타워에 형성될 수 있는 얼룩과 충돌하는 힘도 증가할 수 있습니다.\n"
+"이 속도를 높이면 타워의 안정성에 영향을 줄 수 있을 뿐만 아니라 노즐이 프라임 타워에 형성될 수 있는 얼룩과 충돌하는 힘도 증가할 수 있습니다.\n"
"\n"
-"이 매개변수를 기본값인 90mm/초 이상으로 늘리기 전에 프린터가 증가된 속도에서 안정적으로 브릿지할 수 있고 도구 교환 시 흘러나오는 현상이 잘 제어되는지 확인하십시오.\n"
+"이 매개변수를 기본값인 90 mm/s 이상으로 늘리기 전에 프린터가 증가된 속도에서 안정적으로 브릿지할 수 있고 툴 교체 시 흘러내림 방지가 잘 되는지 확인하십시오.\n"
"\n"
-"와이프 타워 외부 경계의 경우 이 설정에 관계없이 내부 경계 속도가 사용됩니다."
+"프라임 타워의 외부 둘레에는 내부 둘레 속도가 사용되며, 이 설정으로도 제한됩니다."
# AI Translated
msgid "Wall type"
@@ -19059,14 +20627,14 @@ msgstr "벽 유형"
# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"프라임 타워의 외벽 유형입니다.\n"
-"1. 직사각형: 기본 벽 유형으로, 너비와 높이가 고정된 직사각형입니다.\n"
+"1. 직사각형: 너비와 높이가 고정된 직사각형입니다.\n"
"2. 원뿔: 프라임 타워를 안정화하기 위해 바닥에 필렛이 있는 원뿔입니다.\n"
-"3. 리브: 안정성을 높이기 위해 타워 벽에 리브 4개를 추가합니다."
+"3. 리브: 기본 벽 유형으로, 안정성을 높이기 위해 타워 벽에 리브 4개를 추가합니다."
msgid "Rectangle"
msgstr "직사각형"
@@ -19080,7 +20648,7 @@ msgstr "추가 리브 길이"
# AI Translated
msgid "Positive values can increase the size of the rib wall, while negative values can reduce the size. However, the size of the rib wall can not be smaller than that determined by the cleaning volume."
-msgstr "양수 값은 리브 벽의 크기를 키우고 음수 값은 크기를 줄입니다. 다만 리브 벽의 크기는 청소 용량으로 결정되는 크기보다 작아질 수 없습니다."
+msgstr "양수 값은 리브 벽의 크기를 키우고 음수 값은 크기를 줄입니다. 다만 리브 벽의 크기는 플러시 볼륨으로 결정되는 크기보다 작아질 수 없습니다."
msgid "Rib width"
msgstr "리브 너비"
@@ -19098,11 +20666,13 @@ msgstr "프라임 타워의 벽에 필렛을 적용합니다."
msgid "The extruder to use when printing perimeter of the wipe tower. Set to 0 to use the one that is available (non-soluble would be preferred)."
msgstr "프라임 타워의 둘레를 출력할 때 사용하는 압출기입니다. 사용 가능한 압출기를 사용하려면 0으로 설정하세요 (비가용성 재료가 적절합니다)."
+# AI Translated
msgid "Purging volumes - load/unload volumes"
-msgstr "버리기량 - 로드/언로드량"
+msgstr "플러시 볼륨 - 로드/언로드 볼륨"
+# AI Translated
msgid "This vector saves required volumes to change from/to each tool used on the wipe tower. These values are used to simplify creation of the full purging volumes below."
-msgstr "이 벡터는 프라임 타워에서 사용되는 각 툴을 교체하는 데 필요한 부피을 저장합니다. 이러한 값은 아래의 전체 청소 부피 생성을 단순화하는 데 사용됩니다."
+msgstr "이 벡터는 프라임 타워에서 사용되는 각 툴을 교체하는 데 필요한 볼륨을 저장합니다. 이러한 값은 아래의 전체 플러시 볼륨 생성을 단순화하는 데 사용됩니다."
msgid "Skip points"
msgstr "포인트 건너뛰기"
@@ -19133,14 +20703,25 @@ msgstr "인필 갭"
msgid "Infill gap."
msgstr "채우기 간격입니다."
+# AI Translated
msgid "Purging after filament change will be done inside objects' infills. This may lower the amount of waste and decrease the print time. If the walls are printed with transparent filament, the mixed color infill will be visible. It will not take effect unless the prime tower is enabled."
-msgstr "필라멘트 교체 후 버리기는 객체의 채우기 내부에서 수행됩니다. 이렇게 하면 낭비되는 양이 줄어들고 출력 시간이 단축될 수 있습니다. 벽이 투명 필라멘트로 출력된 경우 혼합 색상 충전재가 외부에 보입니다. 프라임 타워가 활성화되지 않으면 적용되지 않습니다."
+msgstr "필라멘트 교체 후 플러시는 객체의 채우기 내부에서 수행됩니다. 이렇게 하면 낭비되는 양이 줄어들고 출력 시간이 단축될 수 있습니다. 벽이 투명 필라멘트로 출력된 경우 혼합 색상 충전재가 외부에 보입니다. 프라임 타워가 활성화되지 않으면 적용되지 않습니다."
+# AI Translated
msgid "Purging after filament change will be done inside objects' support. This may lower the amount of waste and decrease the print time. It will not take effect unless a prime tower is enabled."
-msgstr "필라멘트 변경 후 버리기는 객체의 서포트 내부에서 수행됩니다. 이렇게 하면 낭비되는 양이 줄어들고 출력 시간이 단축될 수 있습니다. 프라임 타워가 활성화되지 않으면 적용되지 않습니다."
+msgstr "필라멘트 변경 후 플러시는 객체의 서포트 내부에서 수행됩니다. 이렇게 하면 낭비되는 양이 줄어들고 출력 시간이 단축될 수 있습니다. 프라임 타워가 활성화되지 않으면 적용되지 않습니다."
+# AI Translated
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
-msgstr "이 객체는 필라멘트를 절약하고 출력 시간을 줄이기 위해 필라멘트 변경 후 노즐에 남은 잔류물을 제거하는 데 사용됩니다. 결과적으로 객체의 색상이 혼합됩니다. 기본 타워가 활성화되지 않으면 적용되지 않습니다."
+msgstr "이 객체는 필라멘트를 절약하고 출력 시간을 줄이기 위해 필라멘트 변경 후 노즐을 플러시하는 데 사용됩니다. 결과적으로 객체의 색상이 혼합됩니다. 프라임 타워가 활성화되지 않으면 적용되지 않습니다."
+
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "벨트 퍼지 타워 객체"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "자동 생성된 벨트 퍼지 프리즘을 표시합니다. 자동으로 관리되므로 수동으로 설정하지 마세요."
msgid "Maximal bridging distance"
msgstr "최대 브릿지 거리"
@@ -19148,17 +20729,21 @@ msgstr "최대 브릿지 거리"
msgid "Maximal distance between supports on sparse infill sections."
msgstr "드문 채우기 부분의 서포트 사이의 최대 거리."
+# AI Translated
msgid "Wipe tower purge lines spacing"
-msgstr "프라임 타워 청소 선 간격"
+msgstr "프라임 타워 플러시 선 간격"
+# AI Translated
msgid "Spacing of purge lines on the wipe tower."
-msgstr "프라임 타워의 청소 선 간격입니다."
+msgstr "프라임 타워의 플러시 선 간격입니다."
+# AI Translated
msgid "Extra flow for purging"
-msgstr "퍼지를 위한 추가 흐름"
+msgstr "플러시를 위한 추가 흐름"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "와이프 타워의 퍼지 라인에 추가 흐름이 사용됩니다. 이렇게 하면 퍼지 라인이 평소보다 두껍거나 좁아집니다. 간격은 자동으로 조정됩니다."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "프라임 타워의 플러시 선에 추가 흐름이 사용됩니다. 이렇게 하면 플러시 선이 평소보다 두꺼워집니다. 간격은 자동으로 조정됩니다."
msgid "Idle temperature"
msgstr "공회전 온도"
@@ -19237,8 +20822,9 @@ msgstr "G-code 미리보기 포맷: 최고 품질은 PNG, 최소 크기는 JPG,
msgid "Use relative E distances"
msgstr "상대적 E 거리 사용"
+# AI Translated
msgid "Relative extrusion is recommended when using \"label_objects\" option. Some extruders work better with this option unchecked (absolute extrusion mode). Wipe tower is only compatible with relative mode. It is recommended on most printers. Default is checked."
-msgstr "\"label_objects\" 옵션을 사용할 때는 상대 압출을 권장합니다. 일부 압출기는 이 옵션을 선택하지 않은 경우(절대 압출 모드) 더 잘 작동합니다. 와이프 타워는 상대 모드와만 호환됩니다. 대부분의 프린터에 권장됩니다. 기본값이 선택되어 있습니다"
+msgstr "\"label_objects\" 옵션을 사용할 때는 상대 압출을 권장합니다. 일부 압출기는 이 옵션을 선택하지 않은 경우(절대 압출 모드) 더 잘 작동합니다. 프라임 타워는 상대 모드와만 호환됩니다. 대부분의 프린터에 권장됩니다. 기본값이 선택되어 있습니다."
msgid "The classic wall generator produces walls with constant extrusion width and for very thin areas, gap-fill is used. The Arachne engine produces walls with variable extrusion width."
msgstr "클래식 벽 생성기는 돌출 폭이 일정한 벽을 생성하며 매우 얇은 영역에는 간격 채움이 사용됩니다. 아라크네 엔진은 압출 폭이 가변적인 벽을 생성합니다."
@@ -19280,14 +20866,15 @@ msgstr "얇은 형상의 최소 두께입니다. 이 값보다 얇은 모델 형
msgid "Minimum wall length"
msgstr "최소 벽 길이"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"짧고 닫히지 않은 벽이 출력되는 것을 방지하려면 이 값을 조정하십시오. 이로 인해 출력 시간이 늘어날 수 있습니다. 값이 높을수록 더 많은 벽과 긴 벽이 제거됩니다.\n"
+"짧고 닫히지 않은 벽이 출력되는 것을 방지하려면 이 값을 조정하십시오. 이로 인해 출력 시간이 늘어날 수 있습니다. 값은 벽 너비의 배수입니다. 값이 높을수록 더 많은 벽과 긴 벽이 제거됩니다.\n"
"\n"
-"참고: 모델 외부의 시각적 틈을 방지하기 위해 하단 및 상단 표면은 이 값의 영향을 받지 않습니다. 상단 표면으로 간주되는 항목의 감도를 조정하려면 아래 고급 설정에서 '벽 하나의 임계값'을 조정하세요. '하나의 벽 임계값'은 이 설정이 기본값인 0.5보다 높게 설정되거나 단일 벽 상단 표면이 활성화된 경우에만 표시됩니다."
+"참고: 모델 외부의 시각적 틈을 방지하기 위해 하단 및 상단 표면은 이 값의 영향을 받지 않습니다. 상단 표면으로 간주되는 항목의 감도를 조정하려면 아래 '벽과 표면' 설정에서 '단일 벽 임계값'을 조정하세요. '단일 벽 임계값'은 이 설정이 기본값인 0.5보다 높게 설정되거나 '상단 표면에 단일 벽 생성'이 활성화된 경우에만 표시됩니다."
# AI Translated
msgid "Maximum wall resolution"
@@ -19302,7 +20889,7 @@ msgid "Maximum wall deviation"
msgstr "최대 벽 편차"
# AI Translated
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
msgstr "'최대 벽 해상도' 설정에 따라 해상도를 낮출 때 허용되는 최대 편차입니다. 이 값을 키우면 출력 정확도는 떨어지지만 G-code 크기는 작아집니다. '최대 벽 편차'는 '최대 벽 해상도'를 제한하므로, 두 설정이 충돌하면 '최대 벽 편차'가 우선합니다."
msgid "First layer minimum wall width"
@@ -19359,7 +20946,7 @@ msgstr "고속 플러시 모드 지원"
# AI Translated
msgid "Whether this printer supports fast purge mode with optimized temperature and multiplier."
-msgstr "이 프린터가 최적화된 온도와 배수를 사용하는 고속 플러시 모드를 지원하는지 여부입니다."
+msgstr "이 프린터가 최적화된 온도와 승수를 사용하는 고속 플러시 모드를 지원하는지 여부입니다."
# AI Translated
msgid "Filament change"
@@ -19397,8 +20984,11 @@ msgstr "브릿지 선 너비는 노즐 직경을 초과할 수 없습니다: "
msgid "too large line width "
msgstr "너무 넓은 선 너비 "
-msgid " not in range "
-msgstr " 범위를 벗어남 "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1%이(가) 범위 [%2%, %3%]에 속하지 않습니다"
msgid "This exports the project as a 3MF file."
msgstr "프로젝트를 3MF로 내보내기."
@@ -19549,6 +21139,14 @@ msgstr "방향 최적화 옵션"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "방향 최적화 옵션: 0-비활성화, 1-활성화, 기타-자동"
+# AI Translated
+msgid "Repair"
+msgstr "수리"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "\"모델 수리\"와 같은 방식으로 모델의 메시를 수리합니다. 구멍과 틈을 메우고, 바깥쪽을 향하도록 방향을 맞추며, 자기 교차를 제거합니다."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Z축을 중심으로 한 회전 각도입니다."
@@ -19658,6 +21256,12 @@ msgstr "출력 디렉토리"
msgid "This is the output directory for exported files."
msgstr "내보내기 파일의 출력 디렉토리입니다."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "디버그 수준"
@@ -19796,11 +21400,13 @@ msgstr "현재 객체 인덱스"
msgid "Specific for sequential printing. Zero-based index of currently printed object."
msgstr "순차 출력에만 해당됩니다. 현재 출력된 객체의 0 기반 인덱스입니다."
+# AI Translated
msgid "Has wipe tower"
-msgstr "와이프 타워 있음"
+msgstr "프라임 타워 있음"
+# AI Translated
msgid "Whether or not wipe tower is being generated in the print."
-msgstr "출력물에 와이프타워가 생성되는지 여부입니다."
+msgstr "출력물에 프라임 타워가 생성되는지 여부입니다."
msgid "Initial extruder"
msgstr "초기 압출기"
@@ -19832,6 +21438,56 @@ msgstr "단일 압출기 MM 프라이밍 있음"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "이 출력물에 추가 다중 재료 프라이밍 영역이 사용됩니까?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "서포트 없는 출력의 초기 압출기"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "서포트 없이 출력하는 데 사용된 첫 번째 압출기의 0 기반 인덱스입니다. initial_no_support_tool과 동일합니다."
+
+# AI Translated
+# Needs human review: Variable label; 'head wrap detect zone' is not defined in the glossary, check the term for the zone.
+msgid "In head wrap detect zone"
+msgstr "헤드 랩 감지 영역 내"
+
+# AI Translated
+# Needs human review: 'head wrap zone' is not defined in the glossary; check the wording matches the zone term used elsewhere.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "첫 번째 레이어가 헤드 랩 영역과 겹치는지 여부를 나타냅니다."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "현재 베드 유형"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "현재 선택된 베드 플레이트 유형의 이름입니다(예: 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "IDEX/IQEX 활성 모드"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "이 플레이트의 활성 IDEX/IQEX 병렬 출력 모드 이름입니다(예: 'primary', 'mirror', 'copy'). IDEX/IQEX가 활성화되지 않은 경우 빈 문자열입니다."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "IDEX/IQEX 활성 모드 인덱스"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "imex_mode_names 내 활성 IDEX/IQEX 병렬 출력 모드의 0 기반 인덱스입니다."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "IDEX/IQEX 활성 모드 G-code"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "자리 표시자 평가 후의, 활성 IDEX/IQEX 병렬 출력 모드의 원본 모드 G-code 템플릿입니다. 여기서 정의된 전역 변수는 machine_start_gcode로 전달됩니다."
+
msgid "Volume per extruder"
msgstr "압출기당 부피"
@@ -19991,6 +21647,18 @@ msgstr "확장자가 없는 입력 파일 이름"
msgid "Source filename of the first object, without extension."
msgstr "확장자가 없는 첫 번째 객체의 소스 파일 이름입니다."
+# AI Translated
+msgid "Full input filename"
+msgstr "전체 입력 파일 이름"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "첫 번째 객체의 소스 파일 이름입니다."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "슬라이싱한 플레이트의 이름입니다."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "벡터에는 점의 x 및 y 좌표라는 두 가지 요소가 있습니다. 값(mm)"
@@ -20021,6 +21689,58 @@ msgstr "출력 베드 경계 상자의 오른쪽 상단 모서리"
msgid "Size of the print bed bounding box"
msgstr "출력 베드 경계 상자의 크기"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "프라임 타워를 제외한 초기 레이어 중심"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "초기 레이어의 높이입니다."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "각 압출기/필라멘트의 베드 온도 벡터입니다."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "각 압출기/필라멘트의 초기 레이어 베드 온도 벡터입니다. first_layer_bed_temperature와 같은 값을 제공합니다."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "초기 레이어 베드 온도(초기 압출기)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "초기 압출기의 초기 레이어 베드 온도입니다. bed_temperature_initial_layer[initial_extruder]와 동일합니다"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "각 압출기/필라멘트의 챔버 온도 벡터입니다."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "각 압출기/필라멘트의 최소 챔버 온도 벡터입니다."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "전체 챔버 온도"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "전체 챔버 온도입니다. 이 값은 사용된 모든 압출기/필라멘트의 최대 챔버 온도입니다."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "각 압출기/필라멘트의 초기 레이어 베드 온도 벡터입니다. bed_temperature_initial_layer와 같은 값을 제공합니다."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "초기 레이어 온도"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "각 압출기/필라멘트의 초기 레이어 온도 벡터입니다."
+
msgid "Timestamp"
msgstr "타임스탬프"
@@ -20066,8 +21786,9 @@ msgstr "슬라이싱에 사용되는 실제 프린터의 이름입니다."
msgid "Layer number"
msgstr "레이어 번호"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "현재 레이어의 인덱스입니다. 1 기반(즉, 첫 번째 레이어가 1번입니다)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "현재 레이어의 인덱스입니다. 0부터 시작하지만(즉, 첫 번째 레이어는 0번), 압출 역할 변경 G-code에서는 1부터 시작합니다."
msgid "Layer Z"
msgstr "레이어 z"
@@ -20087,6 +21808,252 @@ msgstr "필라멘트 압출기 ID"
msgid "The current extruder ID. The same as current_extruder."
msgstr "현재 압출기 ID입니다. current_extruder와 동일합니다."
+# AI Translated
+msgid "Previous extruder"
+msgstr "이전 압출기"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "언로드 중인 압출기의 인덱스입니다. 인덱스는 0부터 시작합니다(첫 번째 압출기의 인덱스는 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "다음 압출기"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "로드 중인 압출기의 인덱스입니다. 인덱스는 0부터 시작합니다(첫 번째 압출기의 인덱스는 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "상대 E축"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "상대 좌표 사용 여부를 나타냅니다."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "툴 체인지 횟수"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "출력 전체에서의 툴 체인지 횟수입니다."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "이전 후퇴 길이"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "이전 필라멘트의 후퇴 길이입니다."
+
+# AI Translated
+msgid "New retract length"
+msgstr "새 후퇴 길이"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "새 필라멘트의 후퇴 길이입니다."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "이전 툴 체인지 후퇴 길이"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "이전 필라멘트의 툴 체인지 후퇴 길이입니다."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "새 툴 체인지 후퇴 길이"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "새 필라멘트의 툴 체인지 후퇴 길이입니다."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "이전 필라멘트 온도"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "이전 필라멘트 온도입니다."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "새 필라멘트 온도"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "새 필라멘트 온도입니다."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "툴 체인지 후 X"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "툴 체인지 후 X 위치입니다."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "툴 체인지 후 Y"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "툴 체인지 후 Y 위치입니다."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "툴 체인지 후 Z"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "툴 체인지 후 Z 위치입니다."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "첫 번째 플러시 볼륨"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "첫 번째 플러시 볼륨입니다."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "두 번째 플러시 볼륨"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "두 번째 플러시 볼륨입니다."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "이전 필라멘트 E 이송 속도"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "이전 필라멘트 압출기의 이송 속도입니다."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "새 필라멘트 E 이송 속도"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "새 필라멘트 압출기의 이송 속도입니다."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "이동 지점 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "이동 지점 1 X입니다."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "이동 지점 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "이동 지점 1 Y입니다."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "이동 지점 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "이동 지점 2 X입니다."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "이동 지점 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "이동 지점 2 Y입니다."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "이동 지점 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "이동 지점 3 X입니다."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "이동 지점 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "이동 지점 3 Y입니다."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "플러시 길이 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "첫 번째 플러시 길이입니다."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "플러시 길이 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "두 번째 플러시 길이입니다."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "플러시 길이 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "세 번째 플러시 길이입니다."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "플러시 길이 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "네 번째 플러시 길이입니다."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "압출 역할"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"사용될 새 압출 역할/유형\n"
+"가능한 값:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "마지막 압출 역할"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"이전에 사용된 압출 역할/유형\n"
+"가능한 값:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "ZIP 압축파일 오류"
@@ -20099,24 +22066,32 @@ msgstr "채우기 영역 생성 중"
msgid "Generating infill toolpath"
msgstr "채우기 툴 경로 생성 중"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z 윤곽 처리 레이어 %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Z 올리기를 위한 오버행 감지"
msgid "Checking support necessity"
msgstr "서포트 필요성 확인"
-msgid "floating regions"
-msgstr "떠있는 영역"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "객체 %1%에 떠 있는 영역이 있는 것 같습니다. 객체의 방향을 바꾸거나 서포트 생성을 활성화하세요."
-msgid "floating cantilever"
-msgstr "떠있는 외팔보"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "객체 %1%에 떠 있는 캔틸레버가 있는 것 같습니다. 객체의 방향을 바꾸거나 서포트 생성을 활성화하세요."
-msgid "large overhangs"
-msgstr "큰 오버행"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "객체 %s에 %s가 있는 것 같습니다. 물체의 방향을 바꾸거나 서포트 생성을 활성화하세요."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "객체 %1%에 큰 오버행이 있는 것 같습니다. 객체의 방향을 바꾸거나 서포트 생성을 활성화하세요."
msgid "Generating support"
msgstr "서포트 생성 중"
@@ -20127,8 +22102,9 @@ msgstr "툴 경로 최적화"
msgid "Slicing mesh"
msgstr "슬라이싱 메시"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "감지된 레이어가 없습니다. STL 파일을 고치거나 크기 또는 두께를 확인하고 다시 시도할 수 있습니다.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "감지된 레이어가 없습니다. 모델을 복구하거나 크기 또는 두께를 확인한 후 다시 시도해 보세요.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -20147,6 +22123,397 @@ msgstr ""
msgid "Object name"
msgstr "물체 이름"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "단항 마이너스 연산자를 적용할 수 없습니다."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "정수로 변환할 수 없습니다."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "숫자가 아닌 값은 반올림할 수 없습니다."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "숫자가 아닌 값은 내림할 수 없습니다."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "숫자가 아닌 값은 올림할 수 없습니다."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "not 연산자를 적용할 수 없습니다."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "숫자가 아닌 타입은 더할 수 없습니다."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "숫자가 아닌 타입은 뺄 수 없습니다."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "숫자가 아닌 타입과는 곱할 수 없습니다."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "숫자가 아닌 타입은 나눌 수 없습니다."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "숫자가 아닌 타입으로는 나눌 수 없습니다."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "0으로 나누기"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "불리언 식이 아닙니다"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "타입을 비교할 수 없습니다."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "숫자 타입이 아닙니다."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: 두 번째 매개변수는 정수여야 합니다"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: 세 번째 매개변수는 정수여야 합니다"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "정규식 일치의 좌변은 문자열이어야 합니다."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "정규식 컴파일에 실패했습니다: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "regex_replace()의 첫 번째 매개변수는 문자열이어야 합니다."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): 첫 번째 매개변수(일치시킬 문자열)는 문자열 값이어야 합니다"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): 패턴은 문자열 값이어야 합니다"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "정규식 컴파일에 실패했습니다"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "불리언이 아닌 피연산자에는 논리 연산을 적용할 수 없습니다."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "스칼라 변수를 인덱싱하려고 합니다"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "잘못된 벡터 인덱스"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "변수가 존재하지 않습니다(비활성 분기에서)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "변수가 존재하지 않습니다"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "정의되지 않은(nil) 선택적 변수를 참조하려고 합니다"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "빈 벡터 변수를 인덱싱하고 있습니다"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "선택적 값 벡터의 정의되지 않은(nil) 요소를 참조하려고 합니다"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "인덱싱 변수는 정수여야 합니다"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "음수 벡터 인덱스"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "변수 이름이 아닙니다"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "변수 이름이 아닙니다(비활성 분기에서)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "FloatOrPercent 변수가 \"ratio_over\" 종속성을 해석하지 못했습니다"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "지원되지 않는 스칼라 변수 타입"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "스칼라가 필요한 곳에서 벡터 변수를 참조하고 있습니다"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "지원되지 않는 벡터 변수 타입"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "읽기 전용 변수를 수정할 수 없습니다"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "우변이 숫자 식이 아닙니다"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "벡터를 채울 요소 수가 필요합니다."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "요소 수가 음수로 지정되었습니다."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "우변이 불리언 식이 아닙니다"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "지원되지 않는 출력 스칼라 변수 타입"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "스칼라가 필요한 곳에서 출력 벡터 변수를 참조하고 있습니다"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "인덱스가 범위를 벗어났습니다"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "지원되지 않는 출력 벡터 변수 타입"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "심볼이 읽기 전용 시스템 사전에 이미 정의되어 있습니다"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "심볼이 시스템 출력 변수로 이미 정의되어 있습니다"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "이 컨텍스트에서는 전역 변수를 사용할 수 없습니다"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "변수 이름이 로컬 스코프에 이미 정의되어 있습니다"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "변수 이름이 전역 스코프에 이미 정의되어 있습니다"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "벡터 변수에 스칼라 값을 할당할 수 없습니다."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "스칼라 변수에 벡터 값을 할당할 수 없습니다."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "타입을 추론할 수 없으므로 빈 초기화 목록으로 벡터 변수를 만들 수 없습니다."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "우변이 올바르지 않습니다: 숫자 타입과 불리언 타입이 섞여 있습니다."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "벡터에 스칼라를 할당할 수 없습니다"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "선택적 값의 우변 벡터 변수 중 일부 요소가 정의되지 않았습니다(nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "좌변은 실수 벡터이지만 우변은 그렇지 않습니다."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "좌변은 정수 벡터이지만 우변은 그렇지 않습니다."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "좌변은 문자열 벡터이지만 우변은 그렇지 않습니다."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "좌변은 불리언 벡터이지만 우변은 그렇지 않습니다."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "좌변 / 우변 벡터가 호환되지 않습니다."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "이 타입의 벡터 변수 복제는 지원되지 않습니다"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "empty()의 매개변수가 벡터 변수가 아닙니다"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "size()의 매개변수가 벡터 변수가 아닙니다"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "벡터 변수를 지정하는 데 정수가 아닌 인덱스는 허용되지 않습니다."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "이 컨텍스트에서는 난수 생성기를 사용할 수 없습니다."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "%1%번째 줄에서 구문 분석 오류: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "%1%번째 줄에서 구문 분석 오류. 태그 %2%이(가) 필요합니다"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "%1%번째 줄에서 구문 분석 오류. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "보간 값은 숫자여야 합니다."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "표 지점의 X 값은 숫자여야 합니다."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "표 지점의 Y 값은 숫자여야 합니다."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "표의 X 좌표는 증가해야 합니다"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "보간 값이 표 범위를 벗어났습니다"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "알 수 없는 구문 오류"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "잘못된 텍스트입니다."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "잘못된 텍스트 블록입니다."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "잘못된 매크로입니다."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "{if}{else}{endif} 매크로가 아닙니다."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "{switch} 매크로가 아닙니다."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "레거시 변수 확장 형식이 필요합니다"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "식별자가 필요합니다."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "조건식이 필요합니다."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "불리언 식이 필요합니다."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "식이 필요합니다."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "닫는 중괄호 또는 선택적 매개변수가 필요합니다."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "문자열 패턴 목록(단순 텍스트 또는 정규식)이 필요합니다"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "변수 참조가 필요합니다."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "변수 이름이 필요합니다."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "정규식이 필요합니다."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "잘못된 utf8 시퀀스"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "ASCII7이 아닌 문자는 텍스트 블록과 문자열 리터럴 안에서만 허용되며, 코드 블록 안에서는 허용되지 않습니다."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "잘못된 이스케이프 시퀀스"
+
msgid "Support: generate contact points"
msgstr "서포트: 접점 생성"
@@ -20163,6 +22530,10 @@ msgstr "제공된 파일이 비어 있어 읽을 수 없습니다"
msgid "The file format is incompatible and cannot be parsed."
msgstr "파일 형식이 호환되지 않아 해석할 수 없습니다."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "ModelIO를 통해 에셋을 STL로 변환하지 못했습니다."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "알 수 없는 파일 형식: 입력 파일의 확장자는 .stl, .obj 또는 .amf(.xml)여야 합니다."
@@ -20211,9 +22582,6 @@ msgstr "재교정"
msgid "Calibrate"
msgstr "교정"
-msgid "Finish"
-msgstr "완료"
-
msgid "How can I use calibration results?"
msgstr "교정 결과를 어떻게 사용하나요?"
@@ -20308,9 +22676,11 @@ msgstr ""
"동일한 압출기 내에서 필라멘트 유형, 노즐 직경 및 노즐 흐름이 동일한 경우 이름(%s)은 고유해야 합니다.\n"
"과거 결과를 재정의하시겠습니까?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "이 기계 유형은 노즐당 %d개의 기록 결과만 보유할 수 있습니다. 이 결과는 저장되지 않습니다."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "이 기계 유형은 노즐당 %d개의 기록 결과만 보유할 수 있습니다. 이 결과는 저장되지 않습니다."
msgid "Connecting to printer..."
msgstr "프린터에 연결하는 중..."
@@ -20533,9 +22903,13 @@ msgstr "노즐 및 AMS 정보 동기화"
msgid "Please connect the printer first before synchronizing."
msgstr "동기화하기 전에 먼저 프린터를 연결하세요."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "프린터 %s 노즐 정보가 설정되지 않았습니다. 보정을 진행하기 전에 구성해 주세요."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "프린터 오른쪽 노즐 정보가 설정되지 않았습니다. 보정을 진행하기 전에 구성해 주세요."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "프린터 왼쪽 노즐 정보가 설정되지 않았습니다. 보정을 진행하기 전에 구성해 주세요."
msgid "AMS and nozzle information are synced"
msgstr "AMS와 노즐 정보가 동기화되었습니다."
@@ -20599,6 +22973,11 @@ msgstr "압출 속도에서"
msgid "To Volumetric Speed"
msgstr "압출 속도로"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "증분"
+
msgid "Are you sure you want to cancel this print?"
msgstr "이 출력을 취소하겠습니까?"
@@ -20624,9 +23003,11 @@ msgstr "참고: %s의 핫엔드 번호는 홀더에 연결되어 있습니다.
msgid "Action"
msgstr "실행"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "이 기계 유형은 노즐당 %d개의 기록 결과만 보유할 수 있습니다."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "이 기계 유형은 노즐당 %d개의 기록 결과만 보유할 수 있습니다."
msgid "Edit Flow Dynamics Calibration"
msgstr "동적 압출량 교정 편집"
@@ -20754,12 +23135,13 @@ msgstr ""
"가속도 값은 속도 값보다 커야 합니다.\n"
"입력값을 확인하십시오."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "벨트 프린터에서는 아직 사용할 수 없습니다 — 대신 PA 타워 방식을 사용하세요."
+
msgid "Temperature calibration"
msgstr "온도 교정"
-msgid "Filament type"
-msgstr "필라멘트 유형"
-
msgid "PLA"
msgstr "PLA"
@@ -20781,6 +23163,20 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+# AI Translated
+msgid "Test model"
+msgstr "테스트 모델"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "표준"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "오버행"
+
msgid "Start temp: "
msgstr "시작 온도: "
@@ -20907,10 +23303,6 @@ msgstr "후퇴 시작 길이: "
msgid "End retraction length: "
msgstr "후퇴 종료 길이: "
-# AI Translated
-msgid "Test model"
-msgstr "테스트 모델"
-
# AI Translated
msgid "Ringing Tower"
msgstr "링잉 타워"
@@ -20948,8 +23340,12 @@ msgid "Frequency (Start / End): "
msgstr "주파수 (시작 / 종료): "
# AI Translated
-msgid "Start / End"
-msgstr "시작 / 종료"
+msgid "X Start / End: "
+msgstr "X 시작 / 종료: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y 시작 / 종료: "
# AI Translated
msgid "Frequency settings"
@@ -20996,8 +23392,12 @@ msgid "Frequency: "
msgstr "주파수: "
# AI Translated
-msgid "Damp"
-msgstr "감쇠"
+msgid "Frequency X / Y: "
+msgstr "주파수 X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "감쇠 (시작 / 종료): "
# AI Translated
msgid "RepRap firmware uses the same frequency for both axes."
@@ -21147,8 +23547,9 @@ msgstr "IFS 활성화"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "프린터에서 %d개의 IFS 슬롯을 감지했습니다."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "프린터에서 %d개의 IFS 슬롯을 감지했습니다."
# AI Translated
msgid "This printer does not report a material station."
@@ -21277,8 +23678,10 @@ msgstr "다음에서 잘라내기"
msgid "Subtract with"
msgstr "다음으로 잘라내기"
-msgid "selected"
-msgstr "선택됨"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1개 선택됨"
msgid "Part 1"
msgstr "부품 1"
@@ -21391,9 +23794,6 @@ msgstr "예를 들어 기본, 매트, 실크, 마블"
msgid "Filament Preset"
msgstr "필라멘트 사전 설정"
-msgid "Create"
-msgstr "생성"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "공급업체가 선택되지 않았습니다. 공급업체를 다시 선택하세요."
@@ -21709,6 +24109,10 @@ msgstr ""
"프린터와 프린터에 속한 모든 필라멘트 및 프로세스 사전 설정.\n"
"다른 사람과 공유할 수 있습니다."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "사용자 정의 베드 텍스처 및 모델 포함"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21760,13 +24164,6 @@ msgstr "참고: 이 필라멘트 아래의 유일한 사전 설정이 삭제되
msgid "Presets inherited by other presets cannot be deleted"
msgstr "다른 사전 설정에 상속된 사전 설정은 삭제할 수 없습니다"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "다음 사전 설정은 이 사전 설정을 상속합니다."
-
-msgid "Delete Preset"
-msgstr "사전 설정 삭제"
-
msgid "Are you sure to delete the selected preset?"
msgstr "선택한 사전 설정을 삭제하시겠습니까?"
@@ -21843,10 +24240,12 @@ msgstr "시작, 끝 또는 단계가 유효한 값이 아닙니다."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "프린터 압출기 수와 보정을 위해 선택한 프린터가 일치하지 않습니다."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "%s 압출기의 노즐 직경은 0.2mm이며 자동 유동 역학 보정을 지원하지 않습니다."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21862,6 +24261,12 @@ msgstr ""
"노즐 직경이 실제 프린터 노즐 직경과 일치하지 않습니다.\n"
"위의 동기화 버튼을 클릭하고 보정을 다시 시작하세요."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "프린터 %s 노즐 정보가 설정되지 않았습니다. 보정을 진행하기 전에 구성해 주세요."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21939,6 +24344,11 @@ msgstr "Creality K 시리즈 프린터 감지"
msgid "Click Scan to look for K-series printers on your network."
msgstr "네트워크에서 K 시리즈 프린터를 찾으려면 검색을 클릭하십시오."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "모델"
+
# AI Translated
msgid "Scan"
msgstr "스캔"
@@ -21961,8 +24371,9 @@ msgstr "K 시리즈 프린터를 찾지 못했습니다. 프린터가 같은 네
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "Creality 프린터 %zu대를 찾았습니다. 하나를 선택한 후 선택한 항목 사용을 클릭하십시오."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "Creality 프린터 %zu대를 찾았습니다. 하나를 선택한 후 선택한 항목 사용을 클릭하십시오."
# AI Translated
msgid "Active"
@@ -22081,8 +24492,11 @@ msgid "Failed to launch a new instance."
msgstr "새 인스턴스를 실행하지 못했습니다."
# AI Translated
-msgid "log(s)"
-msgstr "개 로그"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "로그 %d개 (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -22137,17 +24551,37 @@ msgid "Authorizing..."
msgstr "인증 중..."
# AI Translated
-msgid "Error. Can't get API token for authorization"
-msgstr "오류. 인증용 API 토큰을 가져올 수 없습니다"
+msgid "Maximum login retries exceeded"
+msgstr "최대 로그인 재시도 횟수를 초과했습니다"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "HTTP 오류: %1%"
# AI Translated
msgid "Could not parse server response."
msgstr "서버 응답을 구문 분석할 수 없습니다."
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "오류. 인증용 API 토큰을 가져올 수 없습니다"
+
# AI Translated
msgid "Error saving session to file"
msgstr "세션을 파일에 저장하는 중 오류가 발생했습니다"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "3DPrinterOS 클라우드에 대한 연결이 올바르게 작동합니다."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "사용자로 로그인됨: %1%"
+
# AI Translated
msgid "Error session check"
msgstr "세션 확인 중 오류가 발생했습니다"
@@ -22184,6 +24618,42 @@ msgstr "잘못된 비밀번호"
msgid "Could not get resources to create a new connection"
msgstr "새 연결을 생성하기 위한 리소스를 얻을 수 없습니다"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "UltiMaker에 대한 연결이 올바르게 작동합니다."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "UltiMaker에 연결할 수 없습니다"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "자격 증명 생성 중 오류가 발생했습니다! 자세한 내용은 로그를 확인하세요."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "오류: ID 또는 KEY가 비어 있습니다. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "사용자 이름: %1% 비밀번호: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "인증 자격 증명이 승인을 기다리고 있습니다. 프린터 화면의 대화 상자에서 접근을 승인하세요."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "잘못된 인증 자격 증명"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "오류: 인증 자격 증명을 찾을 수 없습니다!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "FlashAir 카드에서는 업로드가 활성화되지 않았습니다."
@@ -22301,6 +24771,14 @@ msgstr ""
"메시지 본문: \"%1%\"\n"
"오류: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "ESP3D에 대한 연결이 올바르게 작동합니다."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "ESP3D에 연결할 수 없습니다"
+
msgid "No AMS"
msgstr "AMS 없음"
@@ -22372,6 +24850,11 @@ msgstr "선택할 수 있는 최대 프린터 수는 %d입니다"
msgid "No task"
msgstr "작업 없음"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "보기"
+
msgid "Edit Printers"
msgstr "프린터 편집"
@@ -22413,6 +24896,11 @@ msgstr "출력 실패"
msgid "Printing Pause"
msgstr "출력 일시중지"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "준비 중"
+
msgid "Pending"
msgstr "대기중"
@@ -22445,9 +24933,6 @@ msgstr "스마트 필라멘트 할당 활성화: 하나의 필라멘트를 여
msgid "File Saving"
msgstr "파일 저장"
-msgid "Don't remind me again"
-msgstr "다시 알리지 마세요"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "더 이상 팝업이 표시되지 않습니다. '환경설정'에서 다시 열 수 있습니다"
@@ -22474,16 +24959,24 @@ msgstr "필라멘트를 왼쪽 또는 오른쪽 노즐에 수동으로 할당합
msgid "Global settings"
msgstr "글로벌 설정"
-msgid "Video tutorial"
-msgstr "비디오 자습서"
-
msgid "(Sync with printer)"
msgstr "(프린터와 동기화)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "오류: %s 압출기에 사용 가능한 %s 노즐이 없어 현재 그룹 결과가 유효하지 않습니다."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "오류: 왼쪽 압출기에 사용 가능한 표준 노즐이 없어 현재 그룹 결과가 유효하지 않습니다."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "오류: 왼쪽 압출기에 사용 가능한 고유량 노즐이 없어 현재 그룹 결과가 유효하지 않습니다."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "오류: 오른쪽 압출기에 사용 가능한 표준 노즐이 없어 현재 그룹 결과가 유효하지 않습니다."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "오류: 오른쪽 압출기에 사용 가능한 고유량 노즐이 없어 현재 그룹 결과가 유효하지 않습니다."
msgid "We will slice according to this grouping method:"
msgstr "이 그룹화 방법에 따라 슬라이싱합니다:"
@@ -22527,9 +25020,6 @@ msgstr "SimplyPrint에 연결할 수 없습니다"
msgid "Internal error"
msgstr "내부 오류"
-msgid "Unknown error"
-msgstr "알 수 없는 오류"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "SimplyPrint 계정이 연결되지 않았습니다. 연결 옵션으로 이동하여 설정합니다."
@@ -22537,6 +25027,16 @@ msgstr "SimplyPrint 계정이 연결되지 않았습니다. 연결 옵션으로
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge가 잘못된 JSON 응답을 반환했습니다."
+# AI Translated
+msgid "Request failed"
+msgstr "요청 실패"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Flashforge 로컬 API 오류 %1%: %2%"
+
# AI Translated
msgid "No Flashforge printers were discovered on the local network."
msgstr "로컬 네트워크에서 Flashforge 프린터를 찾지 못했습니다."
@@ -22722,8 +25222,11 @@ msgstr "경고: 브림 유형이 “페인트”로 설정되어 있지 않으
msgid "Set the brim type of this object to \"painted\""
msgstr "이 개체의 테두리 유형을 \"페인트\"로 설정합니다"
-msgid "invalid brim ears"
-msgstr " 유효하지 않은 브림 귀"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "유효하지 않은 브림 귀 %d개"
msgid "Brim Ears"
msgstr "브림 귀"
@@ -22752,6 +25255,7 @@ msgstr "건너뛰는 개체 정보를 로드하지 못했습니다. 다시 시
msgid "Failed to create the temporary folder."
msgstr "임시 폴더를 만들지 못했습니다."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d 선택됨"
@@ -22771,9 +25275,11 @@ msgstr "모든 객체를 건너뛰기."
msgid "The printing job will be stopped. Continue?"
msgstr "출력 작업이 중단됩니다. 계속하시겠습니까?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "%d 물체 건너뛰기"
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "객체 %d개 건너뛰기."
msgid "This action cannot be undone. Continue?"
msgstr "이 작업은 취소할 수 없습니다. 계속하시겠습니까?"
@@ -22944,6 +25450,42 @@ msgstr "활성화하면 위의 값이 이후 STEP 가져오기에 사용되는
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "사전 설정 내보내기"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "폴더에서 보기"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "번들 삭제"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "번들 구독 취소"
+
+# AI Translated
+msgid "Update available"
+msgstr "업데이트 가능"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "승인되지 않은 번들"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "브라우저에서 이 번들 열기"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "구독됨"
+
+# AI Translated
+msgid "Local"
+msgstr "로컬"
+
# AI Translated
msgid "Bundle folder does not exist."
msgstr "번들 폴더가 존재하지 않습니다."
@@ -22988,6 +25530,14 @@ msgstr "번들 구독 취소"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "OrcaCloud로 내보내기"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "폴더로 내보내기"
+
# AI Translated
msgid "Save preset bundle"
msgstr "사전 설정 번들 저장"
@@ -23089,6 +25639,11 @@ msgstr "AMS 건조 제어"
msgid "Filament Drying Settings"
msgstr "필라멘트 건조 설정"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "시간"
+
# AI Translated
msgid "Stopping"
msgstr "중지 중"
@@ -23268,6 +25823,11 @@ msgstr "시작 중: 공기 흡입구 확인"
msgid "Starting: Checking air vent"
msgstr "시작 중: 공기 배출구 확인"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "디렉터리 %1%을(를) 만들 수 없습니다"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "필라멘트가 현재 기계 설정과 호환되지 않을 수 있습니다. 일반 필라멘트 사전 설정이 사용됩니다."
@@ -23283,6 +25843,105 @@ msgstr "필라멘트가 현재 기기 설정과 호환되지 않을 수 있습
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "미지의 필라멘트 모델. 무작위 필라멘트 사전 설정이 사용됩니다."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "알 수 없는 구성 파일: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "잘못된 구성 파일: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "슬롯 %1% -> 슬롯 %2%: 혼합 필라멘트"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "혼합 필라멘트 정의: 필라멘트 슬롯 한도에 도달했습니다"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "필라멘트 슬롯 한도에 도달했습니다"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "프린터의 필라멘트 한도: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "슬롯 %1% -> 슬롯 %2%: 할당되지 않은 혼합 필라멘트 (프린터의 필라멘트 한도: %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "슬롯 %1%: 할당되지 않은 혼합 필라멘트 (프린터의 필라멘트 한도: %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "슬롯 %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "슬롯 %1%: 혼합 필라멘트 정의를 가져올 수 없습니다"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "구성 요소가 최소 두 개 필요합니다"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "구성 요소가 없는 슬롯을 참조합니다"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "혼합 필라멘트 정의: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "슬롯 %1%: 혼합 필라멘트 정의를 가져올 수 없습니다 (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "슬롯 %1%: %2% -> %3% (대체)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"구성 파일 %1% 로드에 실패했습니다\n"
+"먼저 디렉터리 %2%을(를) 정리하는 것이 좋습니다"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"제조사 %1%의 구성 버전 %2%이(가) 잘못되었습니다\n"
+"먼저 디렉터리 %3%을(를) 정리하는 것이 좋습니다"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"구성 파일 %1% 로드에 실패했습니다: %2%\n"
+"먼저 디렉터리 %3%을(를) 정리하는 것이 좋습니다"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "기준 평면과 축 숨기기"
@@ -23596,6 +26255,11 @@ msgstr "두껍게 할 시트 바디가 없습니다 — 먼저 곡면 피처를
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "기준 / 곡선(평면 / 축 / 좌표계 / 나선 / 투영)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "평면"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "기준 평면(간격띄우기 / 기울기 / 중간 평면 / 접선 / 두 모서리 / 일치)"
@@ -23662,6 +26326,11 @@ msgstr "기존 바디 이동 및/또는 회전"
msgid "Transform needs a body — add or import one first"
msgstr "변환에는 바디가 필요합니다 — 먼저 추가하거나 가져오십시오"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "대칭"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "평면을 기준으로 바디 대칭"
@@ -23755,6 +26424,11 @@ msgstr "(없음)"
msgid "Hole / thread"
msgstr "구멍 / 나사산"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "구멍"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "선택한 면의 중앙 또는 평면 위에 구멍 뚫기"
@@ -23799,6 +26473,11 @@ msgstr "두 점 또는 선 / 원 / 호를 클릭하여 치수 배치"
msgid "Line / polyline"
msgstr "선 / 폴리선"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "선"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "시작점을 클릭한 다음 끝점 클릭 — 그다음 정확한 길이 설정"
@@ -23935,6 +26614,9 @@ msgstr "스플라인"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "조정점 클릭, 더블 클릭하거나 마우스 오른쪽 버튼을 클릭하거나 Enter를 눌러 완료"
+msgid "Point"
+msgstr "가리키다"
+
# AI Translated
msgid "Click to place a point"
msgstr "클릭하여 점 배치"
@@ -24053,16 +26735,15 @@ msgstr "요소를 선택하고 회전 범위 핸들을 드래그한 다음 개
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "중심을 클릭한 다음 꼭지점 클릭 — 변 %d개, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "중심을 클릭한 다음 꼭지점 클릭 — 변 %d개, 외접"
# AI Translated
-msgid "circumscribed"
-msgstr "외접"
-
-# AI Translated
-msgid "inscribed"
-msgstr "내접"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "중심을 클릭한 다음 꼭지점 클릭 — 변 %d개, 내접"
# AI Translated
msgid "Polygon"
@@ -24399,6 +27080,11 @@ msgstr "면 위"
msgid "Thread plane"
msgstr "나사산 평면"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "표준"
+
# AI Translated
msgid "Pitch"
msgstr "피치"
@@ -24586,6 +27272,10 @@ msgstr "열 솔리드 면을 선택한 다음 벽 두께를 설정하십시오."
msgid "(pick a side face)"
msgstr "(측면 선택)"
+# AI Translated
+msgid "Face"
+msgstr "면"
+
# AI Translated
msgid "Draft"
msgstr "구배"
@@ -24964,8 +27654,9 @@ msgstr "스케치 업데이트됨"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "스케치 생성됨(구동 치수 %zu개) — 스케치를 선택한 다음 마우스 오른쪽 클릭으로 돌출"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "스케치 생성됨(구동 치수 %zu개) — 스케치를 선택한 다음 마우스 오른쪽 클릭으로 돌출"
# AI Translated
#, c-format, boost-format
@@ -25099,8 +27790,9 @@ msgstr "편집 중: 스케치 %d · N = 평면에 수직으로 보기 ·
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "완료 — 삼각형 %zu개"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "완료 — 삼각형 %zu개"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -25185,10 +27877,14 @@ msgstr "메시에 삼각형이 없습니다"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
"이 메시에는 삼각형이 %d개 있습니다. 동일 평면 병합 전에 모든 삼각형이 B-rep 면이 되므로, 가져오는 데 오래 걸리고 편집이 느린 바디가 만들어질 수 있습니다. 보통은 먼저 메시의 삼각형 수를 줄이는 것이 좋습니다.\n"
"\n"
"그래도 가져오시겠습니까?"
@@ -25217,8 +27913,8 @@ msgstr "메시 가져오기 실패: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "솔리드를 가져왔습니다 — 삼각형 %d개 → 면 %d개, 부피 %.2f mm³. 면이나 모서리를 선택한 다음 필렛 / 자르기 / 쉘로 수정하십시오"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "솔리드를 가져왔습니다 — 삼각형: %d → 면: %d, 부피 %.2f mm³. 면이나 모서리를 선택한 다음 필렛 / 자르기 / 쉘로 수정하십시오"
# AI Translated
#, c-format, boost-format
@@ -25235,8 +27931,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s이(가) 스케치에 추가되었습니다 — 확정하려면 확인을 누르십시오"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — 드래그하여 위치/크기를 정한 다음 확인"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — 드래그하여 위치/크기를 정한 다음 확인"
# AI Translated
msgid "Insert canceled"
@@ -25442,9 +28140,11 @@ msgid "a geometry operation failed"
msgstr "형상 연산에 실패했습니다"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d개 선택됨"
+msgid_plural " · %d picked"
+msgstr[0] " · %d개 선택됨"
# AI Translated
#, c-format, boost-format
@@ -25459,7 +28159,8 @@ msgstr "선택 — 요소를 클릭하여 선택 · 끝점이나 중심을 드
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d개 선택됨 · 이제 구속조건 선택(수평, 평행, 접선, 같음…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d개 선택됨 · 이제 구속조건 선택(수평, 평행, 접선, 같음…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -25720,7 +28421,8 @@ msgstr "대칭 — 축 설정됨 · 이제 대칭할 요소 클릭 · Esc로
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "대칭 — 축 설정됨 · 대칭할 요소 %d개 · 다른 요소를 클릭하여 추가 또는 제거 · Enter로 적용"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "대칭 — 축 설정됨 · 대칭할 요소 %d개 · 다른 요소를 클릭하여 추가 또는 제거 · Enter로 적용"
# AI Translated
msgid "Move — click the entities to move"
@@ -25842,8 +28544,9 @@ msgstr "스케치 점"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "스케치 요소 %d개"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "스케치 요소 %d개"
# AI Translated
msgid "select something first"
@@ -26378,8 +29081,10 @@ msgid "Applied edit"
msgstr "편집 적용됨"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — 값을 입력하고 Enter를 누르십시오(또는 확인)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — 값을 입력하고 Enter를 누르십시오(또는 확인)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -26451,10 +29156,23 @@ msgstr "플레이트로 보내기 — 솔리드를 준비 하기 탭으로 보
msgid "Nothing to commit — add a feature first"
msgstr "보낼 항목이 없습니다 — 먼저 피처를 추가하십시오"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "디자인 바디 %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "모든 바디가 숨겨져 있습니다 — 보내기 전에 하나 이상 표시하십시오"
+# AI Translated
+msgid "Design Assembly"
+msgstr "디자인 어셈블리"
+
+# AI Translated
+msgid "Design Body"
+msgstr "디자인 바디"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -26520,8 +29238,9 @@ msgstr "유효하지 않음: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "미리 보기 — 삼각형 %zu개"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "미리 보기 — 삼각형 %zu개"
# AI Translated
#, c-format, boost-format
@@ -26621,8 +29340,9 @@ msgstr "해당 치수를 만족할 수 없습니다 — 스케치가 과잉 구
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "구속조건 %1%개는 이 형상(타원 또는 스플라인 곡선, 크기가 0인 원)에 적용할 수 없으므로 무시됩니다"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "구속조건 %1%개는 이 형상(타원 또는 스플라인 곡선, 크기가 0인 원)에 적용할 수 없으므로 무시됩니다"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -26680,8 +29400,9 @@ msgstr "모따기: 거리가 한쪽 변을 벗어나거나 두 선이 코너에
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "필렛/모따기로 인해 무효가 된 구속조건 %1%개를 제거했습니다"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "필렛/모따기로 인해 무효가 된 구속조건 %1%개를 제거했습니다"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -26701,8 +29422,9 @@ msgstr "복사본 수는 2 이상의 정수여야 합니다"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "변환으로 인해 구속조건 %1%개가 해제되었습니다"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "변환으로 인해 구속조건 %1%개가 해제되었습니다"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26853,11 +29575,6 @@ msgstr "곡면 두껍게 하기"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "곡면 두껍게 하기에는 곡면 바디가 필요합니다 — 먼저 곡면 도구로 만드십시오"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "구멍"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26942,11 +29659,6 @@ msgstr "원형 패턴"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "축을 중심으로 바디 반복 — 개수와 회전 범위 설정"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "대칭"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26983,11 +29695,6 @@ msgstr "정렬에는 바디가 필요합니다 — 먼저 추가하거나 가져
msgid "Align the body to a picked face or plane"
msgstr "선택한 면이나 평면에 바디 정렬"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "평면"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -27093,11 +29800,6 @@ msgstr "바디 삭제"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "이 바디 전체 삭제 — 바디를 만든 피처도 제거됩니다"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "선"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -27412,213 +30114,6 @@ msgstr "이 글꼴에는 이 텍스트의 외곽선이 없습니다"
msgid "Size: %.1f × %.1f mm"
msgstr "크기: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "기본 모델"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "빈 메시가 생성되었습니다"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "상자"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "빠른 선택:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "너비 (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "깊이 (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "높이 (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "하단 R"
-
-# AI Translated
-msgid "Top R"
-msgstr "상단 R"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "주 R"
-
-# AI Translated
-msgid "Minor R"
-msgstr "부 R"
-
-# AI Translated
-msgid "All edges"
-msgstr "모든 모서리"
-
-# AI Translated
-msgid "Top edges"
-msgstr "상단 모서리"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "하단 모서리"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "측면 모서리"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "메시 해상도"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "형상 추가"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "외곽 프로파일 없음"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "외곽 면을 만들지 못했습니다"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "구멍이 있는 면을 만들지 못했습니다"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "회전 실패"
-
-# AI Translated
-msgid "Profile"
-msgstr "프로파일"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "새 프로파일 시작(구멍용)"
-
-# AI Translated
-msgid "Segments"
-msgstr "세그먼트 수"
-
-# AI Translated
-msgid "Sides"
-msgstr "변 수"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "캔버스를 클릭하여 그리기"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "격자에 스냅"
-
-# AI Translated
-msgid "Grid step"
-msgstr "격자 간격"
-
-# AI Translated
-msgid "Outer"
-msgstr "외곽"
-
-# AI Translated
-msgid "closed"
-msgstr "닫힘"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: 점 %3%개 %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (위)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (앞)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (측면)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "회전 각도"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "돌출은 0, 회전은 0보다 큰 값으로 설정"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "포켓(잘라내기)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu개의 닫힌 프로파일"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "활성화하려면 닫힌 프로파일을 그리십시오"
-
-# AI Translated
-msgid "Clear all"
-msgstr "모두 지우기"
-
-# AI Translated
-msgid "Empty result"
-msgstr "결과가 비어 있음"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "돌출: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "회전: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "선택한 객체 없음"
-
-# AI Translated
-msgid "Face failed"
-msgstr "면 생성 실패"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "구멍이 있는 면 생성 실패"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "도구 메시가 비어 있음"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "포켓 추가됨(비우기 부품)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "포켓: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -27742,6 +30237,10 @@ msgstr "변형도구 병합"
msgid "Gizmo brim ears"
msgstr "변형도구 브림 귀"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "변형도구 텍스처 변위 칠하기"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "수직 슬라이더 - 활성 레이어 위로 이동"
@@ -27977,6 +30476,12 @@ msgstr "양쪽 끝에 원통형 면이 필요합니다 — 커넥터 %1%이(가)
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "양쪽 끝에 원통형 면이 필요합니다 — 커넥터 %1%이(가) 곡면 위에 있습니다"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (기준 평면 없음)"
+
# AI Translated
msgid "two points are coincident"
msgstr "두 점이 일치합니다"
@@ -28005,10 +30510,31 @@ msgstr "평면이 평행합니다(교차 없음)"
msgid "zero-length direction"
msgstr "길이가 0인 방향"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "피처가 바디 %1%에 적용되는데, 이 바디는 히스토리의 해당 시점에 존재하지 않습니다"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "\"%1%\"이(가) 삭제되었거나 숨겨진 피처가 만든 바디에 적용됩니다"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "\"%1%\"이(가) 히스토리의 해당 시점에 존재하지 않는 바디에 적용됩니다"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "이후 피처에서 사용 중인 피처입니다"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "\"%1%\"이(가) \"%2%\"을(를) 사용하므로 그보다 앞에 올 수 없습니다"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "스케치 요소가 닫힌 루프를 이루지 않습니다"
@@ -28019,9 +30545,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "열린 위치 (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...외 열린 끝 %1%개"
+msgid "Open ends not shown: %1%"
+msgstr "표시되지 않은 열린 끝: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "회전: 축 선이 스케치에 더 이상 없습니다 — 축을 다시 선택하세요"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "회전: 축 선의 길이가 0입니다"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -28169,6 +30704,30 @@ msgstr "구멍 와이어 생성 실패"
msgid "hole cut failed"
msgstr "구멍 잘라내기 실패"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "나사산: 지름은 1 mm 이상이어야 합니다"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "나사산: 피치는 0.1 mm보다 커야 합니다"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "나사산: 깊이는 0에서 피치의 0.7배 사이여야 합니다"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "나사산: 이 지름에 비해 깊이가 너무 큽니다"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "나사산: 길이는 피치의 절반보다 커야 합니다"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "나사산: 회전 수가 너무 많습니다(길이 / 피치는 400 미만이어야 함)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "내부 나사산에는 바디가 필요합니다"
@@ -28229,6 +30788,22 @@ msgstr "면 삭제 실패"
msgid "delete_face produced no geometry"
msgstr "면 삭제에서 생성된 형상이 없습니다"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "불리언: 대상 바디가 없습니다"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "불리언: 도구 바디가 없습니다 — 두 번째 바디를 선택하세요"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "불리언: 대상과 도구가 같은 바디입니다"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "불리언: 바디에 형상이 없습니다"
+
# AI Translated
msgid "boolean operation failed"
msgstr "불리언 연산 실패"
@@ -28556,6 +31131,10 @@ msgstr "모델 사진"
msgid "Auxiliaries"
msgstr "보조 자료"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "벨트 퍼지 타워"
+
# AI Translated
msgid "Project Filament List"
msgstr "프로젝트 필라멘트 목록"
@@ -28590,8 +31169,16 @@ msgstr "분해하려면 같은 재료 유형의 필라멘트가 2개 이상 필
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "재료 목록은 최대 %1%가지 색상을 지원합니다. %2% 분해 후에는 재료 수가 %1%개를 초과합니다. 분해하기 전에 메인 화면에서 사용하지 않는 필라멘트를 삭제하십시오."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "재료 목록은 최대 %1%가지 색상을 지원합니다. 재료 목록 분해 후에는 재료 수가 %1%개를 초과합니다. 분해하기 전에 메인 화면에서 사용하지 않는 필라멘트를 삭제하십시오."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "재료 목록은 최대 %1%가지 색상을 지원합니다. %2% 분해 후에는 재료 수가 %1%개를 초과합니다. 분해하기 전에 메인 화면에서 사용하지 않는 필라멘트를 삭제하십시오."
# AI Translated
msgid "Cyan"
@@ -28621,6 +31208,13 @@ msgstr "초록"
msgid "Blue"
msgstr "파랑"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -28628,7 +31222,1234 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "현재 필라멘트 목록에 %s이(가) 없습니다. 분해 후 혼합 필라멘트에 필요한 프로젝트 필라멘트가 자동으로 생성됩니다."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "현재 필라멘트 목록에 %s이(가) 없습니다. 분해 후 혼합 필라멘트에 필요한 프로젝트 필라멘트가 자동으로 생성됩니다."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "불투명도"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -28724,10 +32545,6 @@ msgstr "내 설정"
msgid "Custom Printer Setup"
msgstr "사용자 정의 프린터 설정"
-# AI Translated
-msgid "Custom Printer"
-msgstr "사용자 정의 프린터"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "사용자 정의 프린터 프로파일 정의"
@@ -28994,6 +32811,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "굽기"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "슬라이더에 정확한 값 입력"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "슬라이더 오른쪽 끝의 편집 아이콘"
+
# AI Translated
msgid "Texture displacement"
msgstr "텍스처 변위"
@@ -29130,6 +32955,50 @@ msgstr ""
msgid "Remove texture"
msgstr "텍스처 제거"
+# AI Translated
+msgid "Adjust image"
+msgstr "이미지 조정"
+
+# AI Translated
+msgid "Brightness"
+msgstr "밝기"
+
+# AI Translated
+msgid "Contrast"
+msgstr "대비"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "선명도"
+
+# AI Translated
+msgid "Blur"
+msgstr "블러"
+
+# AI Translated
+msgid "Hue"
+msgstr "색조"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "이미지의 가장 미세한 디테일을 살려 줍니다. 블러 다음에 적용되므로 두 항목을 함께 사용할 수 있습니다. 먼저 블러로 노이즈를 없앤 뒤 남은 가장자리를 선명하게 하세요."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "이미지 자체를 흐리게 합니다. 레이어의 스무딩 슬라이더는 이미지를 바꾸지 않고 요철을 부드럽게 하므로, 먼저 그것을 사용해 보세요."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "이 텍스처는 회색조라서 바꿀 색조가 없습니다."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "슬라이더를 놓으면 모델이 업데이트됩니다. \"복사본으로 저장\"은 조정한 이미지를 텍스처 라이브러리에 저장하고 이 레이어가 그 이미지를 사용하도록 합니다."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "복사본으로 저장"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "텍스처 변위 레이어 제거"
@@ -29266,6 +33135,15 @@ msgstr "캡처한 모든 단계를 OBJ 파일로 저장하여 메시 뷰어에
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "칠한 영역을 리메시된 모델로 옮길 수 없어 아무것도 변경하지 않았습니다. 프로 모드로 전환하여 칠하기 전에 리메시하십시오."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "범위: %1%~%2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "드래그하는 대신 값을 입력합니다. 슬라이더를 Ctrl+클릭해도 같습니다."
+
# AI Translated
msgid "Pro"
msgstr "프로"
@@ -29372,8 +33250,8 @@ msgid "Click a triangle to paint it"
msgstr "삼각형을 클릭하여 칠하십시오"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "활성 레이어가 펼치기(LSCM)로 매핑되어 있어야 합니다."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "펼치기(LSCM)로 매핑된 레이어에서만 사용할 수 있습니다 - 이 보기를 사용하려면 활성 레이어의 매핑을 펼치기로 설정하세요."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -29388,16 +33266,16 @@ msgid "Checker"
msgstr "체커"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "체커 - 텍스처 대신 테스트 격자를 표시합니다. 정사각형이 정사각형으로 유지되는 곳은 텍스처가 왜곡되지 않으며, 늘어나는 곳은 텍스처도 늘어납니다"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "체커 - 텍스처 대신 테스트 격자를 표시합니다. 정사각형이 정사각형으로 유지되는 곳은 텍스처가 왜곡되지 않으며, 늘어나는 곳은 텍스처도 늘어납니다. UV 편집기가 닫혀 있으면 엽니다"
# AI Translated
msgid "Distortion"
msgstr "왜곡"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "왜곡 - 펼친 면 위에 늘어난 정도를 파랑에서 빨강으로 이어지는 히트맵으로 표시합니다"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "왜곡 - 펼친 면 위에 늘어난 정도를 파랑에서 빨강으로 이어지는 히트맵으로 표시합니다. UV 편집기가 닫혀 있으면 엽니다"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -29423,6 +33301,10 @@ msgstr "이 레이어의 이미지를 다른 것으로 고릅니다. 칠, 깊이
msgid "not painted"
msgstr "칠하지 않음"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "밝기, 대비, 선명도, 블러, 색조를 설정하면 이미지와 모델에 바로 표시됩니다. \"복사본으로 저장\"은 결과를 텍스처 라이브러리에 저장하고 이 레이어가 그 이미지를 사용하도록 합니다."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "위로 이동 - 먼저 적용"
@@ -29443,10 +33325,20 @@ msgstr "요철의 높이: 텍스처의 흰색이 표면을 얼마나 들어 올
msgid "Tile size"
msgstr "타일 크기"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "모델 자체의 UV 레이아웃으로 매핑됩니다. 이 레이아웃이 곧 배치이므로 텍스처 한 장이 정확히 전체를 덮으며, 설정할 타일 크기가 없습니다."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "모델 위에서 텍스처 한 장의 폭입니다. 작을수록 패턴이 더 자주 반복되고 디테일이 더 세밀해집니다. 타일이 꺼져 있으면 단일 텍스처의 크기입니다."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "표면 위의 텍스처를 도 단위로 회전합니다 - 패턴을 모델의 모서리에 맞출 때 사용합니다."
@@ -29514,28 +33406,32 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "두 필라멘트를 번갈아 배치하여 그 사이의 색상을 흉내 내므로, 적은 수의 필라멘트로도 사진이나 그라데이션을 표현할 수 있습니다. 단색 영역으로 이루어진 이미지는 어느 쪽이든 똑같이 출력됩니다. 끄면 영역마다 필라멘트 하나를 사용합니다."
# AI Translated
-msgid "Mix by"
-msgstr "혼합 방식"
+msgid "Mixed colors"
+msgstr "혼합 색상"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "표면"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "굽기에서 추가할 수 있는 혼합 필라멘트의 최대 개수입니다. 텍스처의 색상에서 선택되며, 굽기에서 실제로 사용하는 것만 생성됩니다."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"레이어: 두 필라멘트가 출력 레이어마다 번갈아 사용됩니다. 수직면에서는 부드럽게 섞이지만, 레이어 하나가 하나의 띠가 되는 평평한 면에서는 효과가 사라집니다.\n"
-"표면: 표면 전체에 촘촘한 체커보드를 만듭니다. 어떤 각도에서도 작동하지만 혼색이 아니라 질감처럼 보일 수 있습니다.\n"
-"자동: 수직면에는 레이어를 사용하고, 평평한 면에서는 체커보드가 패턴으로 드러나므로 더 가까운 필라멘트 하나를 사용합니다."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "필라멘트 %2%개로 출력 가능한 색상 %1%개"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "필라멘트 %1%개로"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%2% 출력 가능한 색상 %1%개"
# AI Translated
msgid "Denoise"
@@ -29586,6 +33482,18 @@ msgstr "현재 뷰에서"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "현재 뷰에서 - 슬라이드 프로젝터처럼 보고 있는 방향에서 칠한 영역에 곧바로 투영합니다."
+# AI Translated
+msgid "Model UV"
+msgstr "모델 UV"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "모델 UV - 모델에 원래 포함된 텍스처 좌표를 사용하므로, 해당 모델용으로 만든 텍스처가 칠해진 위치에 그대로 놓입니다. 펼치기는 하지 않으며 타일 크기는 적용되지 않습니다. 모델 자체의 레이아웃이 곧 배치입니다."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "이 모델에는 자체 텍스처 좌표가 없습니다. UV 채널과 함께 가져온 모델(예: 텍스처가 있는 OBJ)만 이 좌표로 매핑할 수 있습니다."
+
# AI Translated
msgid "Open UV editor"
msgstr "UV 편집기 열기"
@@ -29600,8 +33508,9 @@ msgstr "아직 펼치지 않음"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "아일랜드 %1%개"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "아일랜드 %1%개"
# AI Translated
msgid "Capture current view"
@@ -29631,10 +33540,6 @@ msgstr "투영 프레임"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "모델 위로 끌어 놓는 창을 엽니다. 이 창을 통해 보이는 부분에 텍스처가 적용되고, 창의 테두리가 투영의 가장자리가 됩니다."
-# AI Translated
-msgid "Opacity"
-msgstr "불투명도"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "프레임 창을 배치하는 동안 얼마나 불투명하게 보일지 정합니다. 낮추면 창 너머로 모델이 보입니다. 결과에는 영향을 주지 않습니다."
@@ -29688,6 +33593,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "추가"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "덮어쓰기"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -29707,8 +33617,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "기본 레이어는 아래에 결합할 대상이 없으므로 항상 더해집니다."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "이 레이어가 아래 레이어와 겹치는 곳에서 어떻게 작용할지 정합니다. 추가와 빼기는 요철을 쌓거나 깎아 냅니다. 곱하기와 나누기는 아래에 있는 것의 크기를 조절하므로 이 레이어가 그 위의 마스크가 됩니다 - 이 경우 깊이는 강도로 작용하며, 1 mm이면 흰색 영역은 그대로 유지됩니다."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "이 레이어가 아래 레이어와 겹치는 곳에서 어떻게 작용할지 정합니다. 추가와 빼기는 요철을 쌓거나 깎아 냅니다. 덮어쓰기는 아래 레이어를 대체하므로, 칠한 곳에는 이 레이어의 요철만 남습니다. 곱하기와 나누기는 아래에 있는 것의 크기를 조절하므로 이 레이어가 그 위의 마스크가 됩니다 - 이 경우 깊이는 강도로 작용하며, 1 mm이면 흰색 영역은 그대로 유지됩니다."
# AI Translated
msgid "Adjust placement"
@@ -29732,8 +33642,9 @@ msgstr "설정 더 보기"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "레이어 %1%개 모두 사용함"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "레이어 %1%개 모두 사용함"
# AI Translated
msgid "Add layer"
@@ -29813,8 +33724,9 @@ msgstr "삼각형 예산: 아래의 삼각형에서 설정합니다."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "미리 보기: 삼각형 %1%개"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "미리 보기: 삼각형 %1%개"
# AI Translated
msgid "Steps"
@@ -29856,6 +33768,12 @@ msgstr "리메시"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "모델 전체를 다시 만들 때 사용할 삼각형 크기(밀리미터)입니다. 변위는 고른 메시에서 가장 잘 작동하며, 이 설정으로 고르지 않은 가져온 메시를 고르게 만듭니다."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "날카로운 모서리 유지"
@@ -29990,14 +33908,6 @@ msgstr "삼각형이 약 %1%개 필요하지만 예산은 %2%입니다 - 굽기
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "세분화로 모델에 추가할 수 있는 삼각형 수(천 개 단위)입니다. 가장 맞지 않는 삼각형부터 항상 먼저 분할하므로, 예산을 모두 쓰더라도 가장 눈에 띄는 곳에 쓰입니다. 요철이 여전히 거칠어 보이면 높이십시오."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "굽기를 중지합니다. 이미 완료된 부분은 모델에 남으며 실행 취소할 수 있습니다."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "굽지 않고 도구를 닫습니다. 칠, 레이어, 설정은 모델에 그대로 남습니다."
-
# AI Translated
msgid "Preparing..."
msgstr "준비 중..."
@@ -30022,35 +33932,51 @@ msgstr "이미 있는 정점을 움직여 칠한 높이 맵을 실제 형상으
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "칠한 높이 맵을 실제 형상으로 바꿉니다. 먼저 메시를 고른 밀도로 리메시하고 텍스처가 굽어지는 곳을 세분화하여 디테일이 놓일 정점을 확보합니다 - 이 모든 것을 한 단계로 처리합니다."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "굽기를 중지합니다. 이미 완료된 부분은 모델에 남으며 실행 취소할 수 있습니다."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "굽지 않고 도구를 닫습니다. 칠, 레이어, 설정은 모델에 그대로 남습니다."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "모델: 삼각형 %1%개 - 굽기는 예산 한도 내에서 위의 해상도까지 세분화합니다"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "모델: 삼각형 %1%개 - 굽기는 예산 한도 내에서 위의 해상도까지 세분화합니다"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "굽기는 기존 정점을 움직입니다 - 모델은 삼각형 %1%개로 유지됩니다"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "굽기는 기존 정점을 움직입니다 - 모델은 삼각형 %1%개로 유지됩니다"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "굽기 결과: 삼각형 최대 약 %1% k개"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "굽기 결과: 삼각형 최대 약 %1% k개"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "칠하지 않은 레이어 %1%개, 건너뜀"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "칠하지 않은 레이어 %1%개, 건너뜀"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% 칠하지 않음, 건너뜀"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% 칠하지 않음, 건너뜀"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -30067,6 +33993,10 @@ msgstr "텍스처 변위 편집"
msgid "Choose SLA archive:"
msgstr "SLA 압축파일 선택:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "SL1 / SL1S 아카이브 파일"
+
# AI Translated
msgid "Import file"
msgstr "파일 가져오기"
@@ -30231,6 +34161,34 @@ msgstr "필라멘트 플러그인"
msgid "Printer plugins"
msgstr "프린터 플러그인"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "이 사전 설정은 플러그인 기능을 사용하지 않습니다"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "이 사전 설정에서 사용하는 기능"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "기능 구성(JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "플러그인 구성"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "이 사전 설정의 재정의를 버리고 다시 전역 구성 사용"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "기본값 복원"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "잘못된 JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "구성이 올바른 JSON이 아닙니다. 변경 사항이 저장되지 않았습니다."
@@ -30250,10 +34208,6 @@ msgstr ""
"\n"
"사전 설정의 재정의를 버리고 전역 구성을 사용합니다."
-# AI Translated
-msgid "Restore defaults"
-msgstr "기본값 복원"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "전역 구성을 사용합니다. 유지하려면 사전 설정을 저장하십시오."
@@ -30279,10 +34233,6 @@ msgstr "구독 취소"
msgid "Overwrite Plugin"
msgstr "플러그인 덮어쓰기"
-# AI Translated
-msgid "Show in folder"
-msgstr "폴더에서 보기"
-
# AI Translated
msgid "Reinstall"
msgstr "다시 설치"
@@ -30291,6 +34241,10 @@ msgstr "다시 설치"
msgid "Delete cache and reload"
msgstr "캐시 삭제 후 다시 로드"
+# AI Translated
+msgid "No description."
+msgstr "설명 없음."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr ".py 또는 .whl 플러그인 패키지를 선택하십시오."
@@ -30323,6 +34277,294 @@ msgstr "플러그인 설치 중"
msgid "Installed \"%s\"."
msgstr "\"%s\"을(를) 설치했습니다."
+# AI Translated
+msgid "Search plugins"
+msgstr "플러그인 검색"
+
+# AI Translated
+msgid "Clear search"
+msgstr "검색 지우기"
+
+# AI Translated
+msgid "Match case"
+msgstr "대소문자 구분"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "단어 단위로 일치"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "추가 플러그인 설치 옵션"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "플러그인 설치"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "로컬 플러그인 설치"
+
+# AI Translated
+msgid "Activate"
+msgstr "활성화"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "이름순 정렬"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "버전순 정렬"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "플러그인 버전"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "출처순 정렬"
+
+# AI Translated
+msgid "Source"
+msgstr "출처"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "상태순 정렬"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "상태"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "드래그하여 크기 조정, 두 번 클릭하여 초기화"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "플러그인 목록 크기 조정"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "플러그인 세부 정보"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "플러그인 정보"
+
+# AI Translated
+msgid "Description"
+msgstr "설명"
+
+# AI Translated
+msgid "Config"
+msgstr "구성"
+
+# AI Translated
+msgid "Changelog"
+msgstr "변경 로그"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "진단"
+
+# AI Translated
+msgid "Types"
+msgstr "유형"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "설치된 버전"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "최신 버전"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "최신 버전으로 업데이트"
+
+# AI Translated
+msgid "No description available"
+msgstr "설명 없음"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "기능을 구성할 플러그인을 선택하세요"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "구성 가능한 기능"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "이 기능에 저장된 설정을 버리고 플러그인 기본값 복원"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "플러그인 변경 로그"
+
+# AI Translated
+msgid "Date"
+msgstr "날짜"
+
+# AI Translated
+msgid "Changes"
+msgstr "변경 사항"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "변경 로그 없음"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "감지된 문제 없음"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "플러그인을 찾을 수 없음"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "\"%s\"와(과) 일치하는 플러그인 없음"
+
+# AI Translated
+# Needs human review: Source badge in the Plugins dialog for a plugin the user authored (next to Subscribed/Orphaned/Local); check the badge fits.
+msgid "Mine"
+msgstr "내 플러그인"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "구독한 플러그인"
+
+# AI Translated
+# Needs human review: Source badge in the Plugins dialog for a plugin no longer subscribed or available in OrcaCloud; check the word reads naturally there.
+msgid "Orphaned"
+msgstr "분리됨"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "로컬 플러그인"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "일부 플러그인 기능이 활성화됨"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "%s의 기능 접기"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "%s의 기능 펼치기"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "기능 접기"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "기능 펼치기"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "브라우저에서 이 플러그인 열기"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "기능: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "기능"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "\"%s\" 실행"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "%s 활성화"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "업데이트 권한 없음"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "플러그인 로드 중…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "이 플러그인은 제공하는 기능이 없습니다"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "기능을 구성하려면 이 플러그인을 활성화하세요"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "여기 를 클릭하여 OrcaCloud에서 보기"
+
+# AI Translated
+msgid "Activated"
+msgstr "활성화됨"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "런타임 오류"
+
+# AI Translated
+msgid "Inactive"
+msgstr "비활성"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "이 플러그인은 활성화되어 있으며 사용할 준비가 되었습니다."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "이 플러그인은 아직 로드 중입니다."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "오류가 해결될 때까지 이 플러그인은 차단됩니다."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "이 플러그인은 로드되었지만 기능 중 하나에서 오류가 보고되었습니다."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "이 플러그인은 비활성 상태입니다. 설치하거나 로드하려면 활성화하세요."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "상태와 세부 정보를 보려면 플러그인을 선택하세요."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "분리됨: 이 플러그인은 더 이상 구독되어 있지 않거나 OrcaCloud에서 사용할 수 없습니다. 로컬 사본은 설치된 상태로 남아 있으며 계속 사용할 수 있습니다."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "새 플러그인 버전을 사용할 수 있습니다."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "이 플러그인은 업데이트 권한이 없으므로 클라우드 업데이트를 사용할 수 없습니다."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -30539,6 +34781,71 @@ msgstr "플러그인을 다시 불러오지 못했습니다."
msgid "Reloaded \"%s\"."
msgstr "\"%s\"을(를) 다시 불러왔습니다."
+# AI Translated
+msgid "Printer Connection"
+msgstr "프린터 연결"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "장치를 보려면 프린터 연결을 설정하세요."
+
+# AI Translated
+msgid "No model information"
+msgstr "모델 정보 없음"
+
+# AI Translated
+msgid "Edit Project Info"
+msgstr "프로젝트 정보 편집"
+
+# AI Translated
+msgid "Model Information"
+msgstr "모델 정보"
+
+# AI Translated
+msgid "Accessories"
+msgstr "액세서리"
+
+# AI Translated
+msgid "Profile Information"
+msgstr "프로필 정보"
+
+# AI Translated
+msgid "Model name"
+msgstr "모델 이름"
+
+# AI Translated
+msgid "Created by"
+msgstr "제작자"
+
+# AI Translated
+msgid "Remixed by"
+msgstr "리믹스한 사람"
+
+# AI Translated
+msgid "Shared by"
+msgstr "공유한 사람"
+
+# AI Translated
+msgid "Model description"
+msgstr "모델 설명"
+
+# AI Translated
+# Needs human review: Project page file section for the Bill of Materials (same rendering as the existing "Bill of Materials"); check whether the abbreviation BOM should stay instead.
+msgid "BOM"
+msgstr "재료 명세서"
+
+# AI Translated
+msgid "Profile name"
+msgstr "프로필 이름"
+
+# AI Translated
+msgid "Profile Author"
+msgstr "프로필 작성자"
+
+# AI Translated
+msgid "Profile description"
+msgstr "프로필 설명"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "플러시 모드 설정"
@@ -30549,7 +34856,7 @@ msgstr "최상의 출력 품질을 위해 속도 및 온도 전환과 함께 완
# AI Translated
msgid "Uses optimized purge temperature, multiplier and stronger extrusion for faster purging. May cause slight color mixing in some extreme cases."
-msgstr "더 빠른 플러시를 위해 최적화된 플러시 온도와 배수, 더 강한 압출을 사용합니다. 일부 극단적인 경우 색상이 약간 섞일 수 있습니다."
+msgstr "더 빠른 플러시를 위해 최적화된 플러시 온도와 승수, 더 강한 압출을 사용합니다. 일부 극단적인 경우 색상이 약간 섞일 수 있습니다."
# AI Translated
msgid "Prime Saving"
@@ -30563,6 +34870,19 @@ msgstr "프라임 낭비를 줄이고 더 빠르게 출력합니다. 색상이
msgid "Terminal"
msgstr "터미널"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... 또는 uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "플러그인 터미널이 준비되었습니다."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "프로세스가 다음 코드로 종료됨: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "명령이 이미 실행 중입니다."
@@ -30609,8 +34929,9 @@ msgstr "새 혼합 필라멘트"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "프로젝트는 최대 %d개의 필라멘트를 지원합니다. 초과한 필라멘트는 버려집니다."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "프로젝트는 최대 %d개의 필라멘트를 지원합니다. 초과한 필라멘트는 버려집니다."
# AI Translated
msgid "Import Model"
@@ -30697,8 +35018,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "계산에 실패했습니다. 매개변수를 조정한 후 다시 시도하십시오."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "메시에 비다양체 형상이나 열린 경계가 있습니다. 그대로 가져오거나, 가져오기 전에 Windows 3D 복구 서비스로 복구할 수 있습니다."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "메시에 비다양체 형상이나 열린 경계가 있습니다. 그대로 가져오거나, 가져오기 전에 수리할 수 있습니다."
# AI Translated
msgid "Mesh repair"
@@ -30712,14 +35033,6 @@ msgstr "복구하지 않고 가져오기"
msgid "Repair and import"
msgstr "복구 후 가져오기"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "메시에 비다양체 형상이나 열린 경계가 있습니다."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "메시 문제"
-
# AI Translated
msgid "The selected image is empty."
msgstr "선택한 이미지가 비어 있습니다."
@@ -30728,6 +35041,14 @@ msgstr "선택한 이미지가 비어 있습니다."
msgid "Failed to prepare the texture for use."
msgstr "텍스처를 사용할 수 있도록 준비하지 못했습니다."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "가져온 텍스처용 폴더를 만들 수 없습니다."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "가져온 텍스처를 저장하지 못했습니다."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "직접 가져온 텍스처만 제거할 수 있습니다."
@@ -30736,18 +35057,10 @@ msgstr "직접 가져온 텍스처만 제거할 수 있습니다."
msgid "Could not delete the texture file."
msgstr "텍스처 파일을 삭제할 수 없습니다."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "가져온 텍스처용 폴더를 만들 수 없습니다."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "선택한 이미지를 불러올 수 없습니다."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "가져온 텍스처를 저장하지 못했습니다."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "텍스처 파일을 읽을 수 없습니다."
@@ -30791,8 +35104,9 @@ msgstr "여기에서 UV를 편집하려면 텍스처 레이어의 매핑으로
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "정점 %d개 선택됨 | 드래그 = 함께 이동, Shift/Ctrl 클릭 = 추가/제거"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "정점 %d개 선택됨 | 드래그 = 함께 이동, Shift/Ctrl 클릭 = 추가/제거"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30800,8 +35114,9 @@ msgstr "정점 모드: 정점을 드래그하여 모양 변경 | Shift/Ctrl
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "모서리 %d개 선택됨 | 드래그 = 함께 이동, Shift/Ctrl 클릭 = 추가/제거"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "모서리 %d개 선택됨 | 드래그 = 함께 이동, Shift/Ctrl 클릭 = 추가/제거"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30809,8 +35124,9 @@ msgstr "모서리 모드: 아일랜드 모서리를 드래그하여 모양 변
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "아일랜드 %d개 선택됨 | 드래그 = 함께 이동, Shift/Ctrl 클릭 = 추가/제거, R/S = 기준 아일랜드 회전/배율 조정"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "아일랜드 %d개 선택됨 | 드래그 = 함께 이동, Shift/Ctrl 클릭 = 추가/제거, R/S = 기준 아일랜드 회전/배율 조정"
# AI Translated
#, c-format, boost-format
@@ -30829,6 +35145,10 @@ msgstr " | 스냅 켜짐"
msgid "Change texture - choose another one from the texture library"
msgstr "텍스처 변경 - 텍스처 라이브러리에서 다른 텍스처를 선택합니다"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "활성 레이어의 타일 크기: 텍스처가 한 번 반복될 때 모델을 덮는 범위입니다. 캔버스는 타일 단위로 측정되므로 격자 한 칸이 한 번의 반복입니다. 레이어 설정의 타일 크기에서 변경하세요."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "높이 맵 - 아일랜드 아래에 레이어의 텍스처를 표시합니다"
@@ -30862,16 +35182,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "펼친 결과를 연결된 전개도로 배치합니다: 모서리를 공유하는 조각을 서로 옆에 펼칩니다(정육면체가 흩어진 정사각형 6개가 아니라 이어진 전개도가 됩니다). 각 조각은 별개의 아일랜드로 남으므로, 나중에 어느 것이든 직접 옮길 수 있습니다."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "아일랜드 - 아일랜드 전체를 이동, 회전, 배율 조정합니다"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "아일랜드 - 아일랜드 전체를 다룹니다. 클릭하여 선택한 다음 드래그하여 이동하고, 오른쪽 드래그로 회전하거나, R을 눌러 회전하고 S를 눌러 마우스로 배율을 조정합니다(클릭 또는 Enter로 확인, Esc로 취소)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "정점 - 정점을 드래그하여 모양을 바꿉니다. Shift/Ctrl로 다중 선택"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "정점 - 정점을 드래그하여 아일랜드 모양을 직접 바꿉니다. Shift는 선택에 추가하고, Ctrl은 선택에 넣거나 뺍니다."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "모서리 - 모서리를 드래그하여 모양을 바꿉니다. Shift/Ctrl로 다중 선택"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "모서리 - 모서리를 드래그하여 아일랜드 모양을 직접 바꿉니다. Shift는 선택에 추가하고, Ctrl은 선택에 넣거나 뺍니다."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30910,8 +35230,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "스냅 - 아일랜드를 다른 아일랜드에 대고 드래그하면 서로 붙입니다"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "모든 아일랜드 맞추기 (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"모든 아일랜드가 화면에 들어오도록 맞춥니다(Home 또는 F).\n"
+"캔버스의 다른 곳에서: 스크롤하면 커서를 중심으로 확대/축소하고, 가운데 버튼 드래그 또는 빈 공간 드래그로 화면을 이동합니다."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "선택된 항목과, 드래그하는 동안의 이동, 회전 또는 배율의 정확한 수치입니다."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30922,6 +35250,10 @@ msgstr "펼치기로 매핑된 레이어 없음"
msgid "%.1f mm tile"
msgstr "%.1f mm 타일"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "이 창은 활성 텍스처 레이어를 따르며, 해당 레이어는 펼치기(LSCM)로 매핑되어 있어야 합니다. 레이어를 추가하고 매핑을 펼치기로 설정하세요."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "오래됨 - 이 펼치기를 만든 뒤 칠, 심 또는 심 각도가 변경되었습니다. 눌러서 다시 펼치십시오."
@@ -30930,19 +35262,68 @@ msgstr "오래됨 - 이 펼치기를 만든 뒤 칠, 심 또는 심 각도가
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "칠한 영역을 UV 아일랜드로 펼칩니다. 편집할 때마다가 아니라 이 버튼을 누를 때만 계산되므로, 먼저 칠하고 심 각도를 바꾸거나 심을 표시한 다음 펼치기를 누르십시오."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "먼저 심 표시를 켜세요 - 경로를 사용하면 더 빠르게 표시할 수 있습니다."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "이 레이어에 표시된 심이 없습니다."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "직접 모양을 바꾼 아일랜드가 없으므로 버릴 내용이 없습니다."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "아일랜드 %d개, 면 %s개"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "아일랜드 %d개"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "면 %s개"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "칠한 영역이 펼치기로 어떻게 나뉘었는지 보여 줍니다. (심과 심 각도보다 날카로운 모서리에서) 잘린 개별 조각의 수와, 그 조각들이 포함하는 삼각형의 총 개수입니다."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "먼저 펼치기를 누르세요 - 아직 작업할 아일랜드가 없습니다."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "먼저 아일랜드 모드에서 캔버스의 아일랜드를 클릭하세요."
+
+# AI Translated
+# Needs human review: Short badge for a published 3MF (about three letters in English); check it fits the badge width.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "게시"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "로그인하지 않음"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Bambu 네트워크 플러그인이 감지되지 않습니다. 여기를 클릭 하여 설치하세요."
+
+msgid "Create new project"
+msgstr "새 프로젝트 생성"
+
+msgid "Recently opened"
+msgstr "최근 사용"
+
+msgid "Open Containing Folder"
+msgstr "포함된 폴더 열기"
# AI Translated
msgid "Forward"
msgstr "앞으로"
-# AI Translated
-msgid "Tools"
-msgstr "도구"
-
# AI Translated
msgid "View Source"
msgstr "소스 보기"
@@ -31014,6 +35395,75 @@ msgstr "%1% 로드 대상: %2%"
msgid "Load %s"
msgstr "%s 로드"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "프린터 에이전트 '%1%'을(를) 활성화할 수 없습니다: 에이전트 ID '%2%'이(가) 플러그인 '%4%'의 기능 '%3%'에 이미 등록되어 있습니다."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "프린터 에이전트 '%1%'을(를) 활성화할 수 없습니다: 에이전트 ID '%2%'이(가) '%3%'에 이미 등록되어 있습니다."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "파일이 업로드되었습니다"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "G-code 업로드 중..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "출력 시작 중..."
+
+# AI Translated
+msgid "Print started"
+msgstr "출력이 시작되었습니다"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "업로드 중..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "네트워크 라이브러리 버전이 지정되지 않았습니다"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "네트워크 라이브러리를 찾을 수 없습니다"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "네트워크 라이브러리를 로드하지 못했습니다"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "네트워크 라이브러리 로드에 실패했습니다"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "이전 플러그인 시리즈입니다. 장치 오류 대화 상자의 출력 실패 스냅샷처럼 최신 플러그인 지원이 필요한 기능은 사용할 수 없습니다."
+
+# AI Translated
+msgid "unknown name"
+msgstr "알 수 없는 이름"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"플러그인 \"%s\"이(가) 다음 위치에 대한 파일 시스템 읽기 권한을 요청하고 있습니다:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "플러그인 권한"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -31028,36 +35478,48 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
"플러그인 \"%s\"이(가) 다음 파일 읽기를 요청하고 있습니다:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
"플러그인 \"%s\"이(가) 다음 파일 읽기/쓰기를 요청하고 있습니다:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
"플러그인 \"%s\"이(가) 다음 파일 생성을 요청하고 있습니다:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
"플러그인 \"%s\"이(가) 다음 파일 삭제를 요청하고 있습니다:\n"
"%s"
@@ -31082,10 +35544,27 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"플러그인 \"%s\"이(가) 다음 명령 실행을 요청하고 있습니다:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "플러그인 \"%s\"이(가) 스레드 생성 권한을 요청하고 있습니다."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"플러그인 \"%s\"이(가) 다음 명령 실행을 요청하고 있습니다:\n"
+"플러그인 \"%s\"이(가) 실행 중인 애플리케이션을 다음으로 교체하려고 요청하고 있습니다:\n"
"%s"
# AI Translated
@@ -31097,6 +35576,46 @@ msgstr "플러그인 \"%s\"이(가) Python 감사 이벤트 \"%s\"에 대한 권
msgid "Plugin permission request"
msgstr "플러그인 권한 요청"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "사전 설정에 잘못된 플러그인 기능 구성 JSON이 저장되어 있습니다."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "사전 설정의 플러그인 기능 구성이 배열이 아니므로 편집할 수 없습니다."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "프린터 연결"
+
+# AI Translated
+msgid "Pages"
+msgstr "페이지"
+
+# AI Translated
+msgid "Analysis"
+msgstr "분석"
+
+# AI Translated
+msgid "Importer"
+msgstr "가져오기 도구"
+
+# AI Translated
+msgid "Exporter"
+msgstr "내보내기 도구"
+
+# AI Translated
+msgid "Visualization"
+msgstr "시각화"
+
+# AI Translated
+msgid "Script"
+msgstr "스크립트"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "슬라이스 파이프라인"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "플러그인의 구성 UI가 비어 있습니다. 기본 편집기를 표시합니다."
@@ -31119,8 +35638,346 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "구성을 디스크에 쓸 수 없습니다. 아무것도 변경되지 않았습니다."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "플러그인 설치 실패"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "플러그인 설치 실패: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: 설치된 플러그인을 카탈로그에서 찾을 수 없습니다."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "클라우드 플러그인 키에 UUID가 없습니다."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "클라우드 플러그인을 구독하지 못했습니다. 자세한 내용은 로그를 확인하세요."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "클라우드 플러그인만 구독을 취소할 수 있습니다."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "플러그인 구독을 취소하지 못했습니다. 자세한 내용은 로그를 확인하세요."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "플러그인 다운로드 URL을 가져오지 못했습니다(결과 %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "이 클라우드 플러그인을 다운로드할 권한이 없습니다."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "이 운영 체제용 플러그인 패키지가 없습니다."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "선택한 플러그인 버전을 찾을 수 없습니다."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "플러그인 버전 %1%을(를) 찾을 수 없습니다."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "클라우드 플러그인을 찾을 수 없습니다."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "클라우드 플러그인 다운로드를 찾을 수 없습니다: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "클라우드 플러그인 다운로드를 찾을 수 없습니다."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "이 플러그인에 사용할 수 있는 다운로드 URL이 없습니다. 로그에서 오류를 확인하세요."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "플러그인을 다운로드하지 못했습니다: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "HTTP 상태 %1%(으)로 플러그인 다운로드에 실패했습니다."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "플러그인 다운로드가 빈 데이터를 반환했습니다."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "플러그인 다운로드용 임시 파일을 만들지 못했습니다."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "플러그인 데이터를 임시 파일에 쓰지 못했습니다."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "플러그인 폴더를 확인하지 못했습니다: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "플러그인 폴더 %1%을(를) 삭제하지 못했습니다: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "플러그인 디렉터리가 존재하지 않습니다: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "플러그인 디렉터리에 .py 파일이 여러 개 있습니다: %1% 및 %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "플러그인 디렉터리에 .whl 파일이 여러 개 있습니다: %1% 및 %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "플러그인 디렉터리에 .py 및 .whl 진입 파일이 모두 있습니다"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "플러그인 디렉터리에 .py 또는 .whl 진입 파일이 없습니다"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "슬라이싱 파이프라인 플러그인 '%1%' 오류: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "플러그인 패키지는 .py 또는 .whl 파일이어야 합니다. 받은 값: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "플러그인 .whl 종속성 %1% 추출에 실패했습니다: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr ".whl 종속성을 sys.path에 추가하지 못했습니다: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Python 인터프리터가 초기화되지 않았습니다: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "플러그인 매니페스트가 잘못되었습니다: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "플러그인 종속성을 설치하지 못했습니다: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "플러그인 모듈을 로드하지 못했습니다: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "플러그인 등록 실패: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "플러그인 모듈이 어떤 기능도 등록하지 않았습니다"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "플러그인이 %2% 타입에 대해 중복된 기능 '%1%'을(를) 선언했습니다"
+
+# AI Translated
+# Needs human review: 'materialization' means creating the capability objects from the plugin's declarations; check that 구체화 reads right for it.
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "플러그인 기능 구체화 실패: %1%"
+
+# AI Translated
+# Needs human review: 'materialization' means creating the capability objects from the plugin's declarations; check that 구체화 reads right for it.
+msgid "Plugin capability materialization failed"
+msgstr "플러그인 기능 구체화 실패"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "플러그인 on_load 실패: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "플러그인 on_load 실패"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "플러그인 패키지가 파일이 아닙니다: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "클라우드 플러그인 UUID가 유효한 식별자가 아닙니다: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "플러그인 디렉터리 %1%을(를) 만들지 못했습니다: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "기존 플러그인 %1%을(를) 백업하지 못했습니다: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "플러그인 파일을 %1%(으)로 복사하지 못했습니다: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "플러그인 설치 상태를 쓰지 못했습니다: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "플러그인 패키지가 이미 로드되었습니다: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "타입 %1% 및 이름 '%2%'의 기능 충돌"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "중복된 플러그인 키가 발견되었습니다: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "플러그인 로드가 아직 진행 중입니다"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "플러그인이 잘못되었습니다: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "플러그인을 찾을 수 없습니다: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "예기치 않은 플러그인 로드 실패: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "예기치 않은 플러그인 로드 실패"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "플러그인 매니페스트를 찾을 수 없습니다: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "클라우드에서 플러그인을 가져오지 못했습니다. 자세한 내용은 로그를 확인하세요."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "이 플러그인을 설치하려면 OrcaCloud에 로그인하세요."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "구독한 클라우드 플러그인이 OrcaCloud에서 반환되지 않았습니다."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "클라우드 플러그인을 다운로드하지 못했습니다."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "클라우드 플러그인을 설치하지 못했습니다."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "클라우드 플러그인만 업데이트할 수 있습니다."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "이 플러그인에 사용할 수 있는 업데이트가 없습니다."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "알려진 플러그인 디렉터리 밖의 플러그인은 삭제할 수 없습니다."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "알려진 플러그인 디렉터리 밖의 플러그인은 업데이트할 수 없습니다."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "플러그인을 로컬로 유지할 수 없습니다: 로컬 플러그인 키가 이미 존재합니다: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "플러그인 설치 상태를 업데이트하지 못했습니다: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "내 플러그인은 구독을 취소할 수 없습니다."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "클라우드 플러그인만 삭제하고 구독을 취소할 수 있습니다."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "내 플러그인은 구독을 취소할 수 없습니다. 로컬 파일을 제거하려면 삭제를 사용하세요."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "플러그인 파일 시스템 읽기 권한 요청이 거부되었습니다"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -31154,6 +36011,10 @@ msgstr "양방향 돌출 결합 실패"
msgid "imported regions produced no extrudable geometry"
msgstr "가져온 영역에서 돌출 가능한 형상이 생성되지 않았습니다"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "프로파일이 회전 축과 교차합니다 — 축의 한쪽에만 있어야 합니다"
+
# AI Translated
msgid "Failed to revolve"
msgstr "회전하지 못했습니다"
@@ -31190,6 +36051,10 @@ msgstr "포켓 면 생성 실패"
msgid "Pocket cut failed"
msgstr "포켓 잘라내기 실패"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "프로파일이 자기 자신과 교차하거나 되접혀 있어 하나의 영역을 둘러싸지 않습니다"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "스케치에 닫힌 루프가 없습니다"
@@ -31222,10 +36087,26 @@ msgstr "mesh_to_brep: 메시에 삼각형이 없습니다"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: 모든 삼각형이 퇴화된 것으로 제외되었습니다(더 작은 공차를 시도하십시오)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "필렛 반경은 0보다 커야 합니다"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "해당 그룹에 필렛을 적용할 모서리가 없습니다"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "이 형상에 비해 필렛 반지름이 너무 큽니다"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "모따기 거리는 0보다 커야 합니다"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "해당 그룹에 모따기를 적용할 모서리가 없습니다"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "이 형상에 비해 모따기 거리가 너무 큽니다"
@@ -31238,6 +36119,153 @@ msgstr "apply_fillet: OCCT 필렛 실패"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: OCCT 모따기 실패"
+# AI Translated
+msgid "empty component list"
+msgstr "빈 구성 요소 목록"
+
+# AI Translated
+msgid "empty component index"
+msgstr "빈 구성 요소 인덱스"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "구성 요소 인덱스는 1 이상이어야 합니다(받은 값: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "잘못된 구성 요소 인덱스 \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "구성 요소가 최소 2개 필요합니다(받은 값: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "중복된 구성 요소 인덱스 %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "빈 비율 값"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "비율은 양수여야 합니다(받은 값: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "잘못된 비율 \"%1%\""
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "비율 수는 구성 요소 수와 일치해야 합니다: 예상 %1%개, 실제 %2%개"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "쉼표로 구분된 실수 두 개가 필요합니다(예: \"0.10,0.90\")"
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "시작 및 종료 비율은 (0, 1) 범위여야 합니다"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "배열 크기 %1%이(가) 필라멘트 슬롯 수 %2%와(과) 일치하지 않습니다"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "혼합 필라멘트 매개변수를 지정할 때는 설정해야 합니다"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "슬롯 %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "슬롯 %1%: 구성 요소 %2%이(가) 범위를 벗어났습니다(최대 물리 필라멘트 인덱스: %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "슬롯 %1%: 자기 자신을 구성 요소로 참조할 수 없습니다"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "슬롯 %1%: 구성 요소 %2%이(가) 혼합 필라멘트 슬롯을 참조합니다"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "슬롯 %1%: 그라데이션에는 정확히 2개의 구성 요소가 필요합니다"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "슬롯 %1%: 잘못된 곡선(유효한 제어점이 최소 2개 필요)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "구성 파일 \"%1%\" 로드에 실패했습니다: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "%1%에서 생성한 G-code 파일이 아닙니다."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "구성 태그 \"%1%\"을(를) 찾을 수 없습니다"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "%1%에서 추출된 구성 값의 수가 비정상적으로 적습니다: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"STEP 파일 로드에 실패했습니다.\n"
+"읽기 위해 파일을 열 수 없습니다.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "SVG 가져오기 실패: SVG를 열 수 없습니다."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "SVG 가져오기 실패: 가져온 SVG 데이터를 구문 분석할 수 없습니다."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "사용자 정의 G-code가 음수 z_retracted를 보고합니다."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "사용자 정의 G-code가 음수 z_restart_extra를 보고합니다."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "디렉터리 %1%을(를) %2%(으)로 복사하지 못했습니다: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "인증 완료"
@@ -31686,6 +36714,1109 @@ msgstr ""
"뒤틀림 방지\n"
"ABS와 같이 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "필라멘트 색상을 선택하세요"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "브릿지의 선 너비입니다. %로 입력 시 노즐 직경에 대한 비율로 계산됩니다.\n"
+#~ "브릿지 밀도나 브릿지 압출량 비율을 높여 함께 사용하는 것이 좋습니다.\n"
+#~ "\n"
+#~ "최대값은 100% 또는 노즐 직경입니다.\n"
+#~ "0으로 설정하면 선 너비가 꽉찬 내부 채우기 너비와 같아집니다."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "둘레가 위로 말려 올라갈 수 있는 영역에서 출력 속도를 늦추려면 이 옵션을 활성화하십시오.\n"
+#~ "예를 들어 Benchy 선체 앞부분과 같은 날카로운 모서리의 오버행을 출력할 때 추가 감속이 적용되어, 여러 레이어에 걸쳐 누적되는 말림을 줄여 줍니다.\n"
+#~ "\n"
+#~ "프린터 냉각 성능이 충분히 강하거나 출력 속도가 충분히 느려 둘레 말림이 발생하지 않는 경우가 아니라면, 일반적으로 이 옵션을 켜 두는 것이 좋습니다.\n"
+#~ "외벽 속도를 높게 설정하여 출력하는 경우, 출력 속도 차이가 커져 압출기가 요구되는 압출량 변화를 따라가지 못해 감속 시 벽에 아티팩트가 생길 수 있습니다.\n"
+#~ "이러한 아티팩트의 근본 원인은 대부분 PA 조정이 약간 어긋난 것이며, 특히 PA 평활 시간이 큰 경우에 두드러집니다.\n"
+#~ "\n"
+#~ "이 옵션을 활성화할 때의 권장 사항:\n"
+#~ "1. 압출기가 속도 변화에 빠르게 반응하도록 Pressure Advance 평활 시간을 0.015 - 0.02로 줄이십시오.\n"
+#~ "2. 최소 출력 속도를 높여 감속 폭을 제한하고 빠른 구간과 느린 구간의 차이를 줄이십시오.\n"
+#~ "3. 그래도 아티팩트가 나타나면 압출량 평활화(ERS)를 활성화하여 압출량 전환을 더 부드럽게 하십시오.\n"
+#~ "\n"
+#~ "참고: 이 옵션을 활성화하면 오버행 둘레가 오버행처럼 처리되어, 오버행 둘레가 브릿지의 일부인 경우에도 오버행 속도가 적용됩니다.\n"
+#~ "예를 들어 둘레가 100% 오버행이고 아래에서 받쳐 주는 벽이 없으면 100% 오버행 속도가 적용됩니다."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "외부에서 볼 수 있는 브릿지 돌출 속도입니다.\n"
+#~ "\n"
+#~ "또한, 구부러진 둘레에 대한 속도 저하가 비활성화되거나 클래식 오버행 모드가 활성화된 경우 브릿지의 일부이든 오버행이든 상관없이 오버행 벽의 출력 속도는 13% 미만으로 지원됩니다."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "이 별도의 설정은 반지름이 가진 둘레의 속도에 영향을 줍니다 <= 작은 둘레 임계값(small_perimeter_threshold) 이하인 둘레(일반적으로 구멍). 백분율로 설정하면(예: 80%) 외벽 속도 설정에서 계산됩니다. 자동의 경우 0으로 설정합니다."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "\"작은 둘레\"와 같지만 서포트에 적용됩니다. 이 별도 설정은 `small_support_perimeter_threshold` 이하 영역의 서포트 속도에 영향을 줍니다. 백분율(예: 80%)로 입력하면 위의 서포트 또는 서포트 접점 속도를 기준으로 계산됩니다. 0으로 설정하면 자동입니다."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "내벽 및 외벽의 출력 순서를 지정합니다.\n"
+#~ "\n"
+#~ "오버행을 가장 잘 출력하려면 내부/외부를 사용합니다. 이는 돌출된 벽이 출력하는 동안 인접한 경계에 부착될 수 있기 때문입니다. 그러나 이 옵션을 사용하면 외부 경계가 내부 경계에 눌려 변형되므로 표면 품질이 약간 저하됩니다.\n"
+#~ "\n"
+#~ "내부/외부/내부를 사용하면 외부 벽이 내부 경계에서 방해받지 않고 출력되므로 최상의 외부 표면 마감과 치수 정확도를 얻을 수 있습니다. 그러나 외부 벽을 출력할 내부 경계가 없으므로 오버행 성능이 저하됩니다. 이 옵션은 세 번째 경계부터 내부 벽을 먼저 출력한 다음 외부 경계, 마지막으로 첫 번째 내부 경계를 출력하므로 최소 3개 이상의 벽이 있어야 효과적입니다. 이 옵션은 대부분의 경우 외부/내부 옵션보다 권장됩니다.\n"
+#~ "\n"
+#~ "내부/외부/내부 옵션과 동일한 외벽 품질 및 치수 정확도 이점을 얻으려면 외부/내부를 사용하세요. 그러나 새 레이어의 첫 번째 돌출이 보이는 표면에서 시작되므로 Z 심이 덜 일관되게 나타납니다."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "꽉찬 채우기 부분을 제외한 초기 레이어 속도"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "초기 레이어의 꽉찬 채우기 속도"
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "채우기 영역은 더 나은 접착을 위해 벽과 겹치도록 약간 확대됩니다. 백분율 값은 희박한 채우기의 선 너비를 기준으로 합니다. 거친 상단 표면을 초래하는 재료의 압출 및 축적 가능성을 최소화하려면 이 값을 ~10-15%로 설정하십시오."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "상단 솔리드 채우기 영역은 더 나은 접착을 위해 벽과 겹치도록 약간 확대되고 상단 채우기가 벽과 만나는 핀홀의 모양을 최소화합니다. 25-30%의 값은 핀홀의 모양을 최소화하는 좋은 출발점입니다. 백분율 값은 희박한 채우기의 선 너비를 기준으로 합니다"
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "분할된 영역의 연동 깊이. \"mmu_segmented_region_max_width\"가 0이거나 \"mmu_segmented_region_interlocking_length\"가 \"mmu_segmented_region_max_width\"보다 크면 무시됩니다. 0은 이 기능을 비활성화합니다."
+
+# AI Translated
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "상단 표면 둘레의 높이를 모델 가장자리 높이에 맞춰 줄입니다.\n"
+#~ "이 각도(도)보다 기울기가 작은 둘레에 적용됩니다.\n"
+#~ "적절한 값은 35입니다. 0으로 설정하면 비활성화됩니다."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "역할 기반 노즐 청소 속도"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "드래프트 실드는 바람으로 인해 ABS 또는 ASA 출력물이 뒤틀리거나 출력 베드에서 분리되는 것을 방지하는 데 유용합니다. 일반적으로 오픈 프레임 프린터, 즉 인클로저가 없는 경우에만 필요합니다.\n"
+#~ "\n"
+#~ "활성화 = 스커트가 가장 높은 출력물의 높이와 같습니다. 그렇지 않으면 '스커트 높이'가 사용됩니다.\n"
+#~ "참고: 드래프트 실드가 활성화되면 스커트는 객체로부터 스커트 거리에 출력됩니다. 따라서 챙이 활성화된 경우 챙과 교차할 수 있습니다. 이를 방지하려면 스커트 거리 값을 늘리십시오.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "와이프 타워에서 버리기하고 와이프 타워 희박 레이어를 출력할 때 최대 출력 속도입니다. 버리기 시 희소 충전 속도 또는 필라멘트 최대 압출 속도에서 계산된 속도가 더 낮은 경우 가장 낮은 속도가 대신 사용됩니다.\n"
+#~ "\n"
+#~ "희소 레이어를 출력할 때 내부 주변 속도 또는 필라멘트 최대 압출 속도에서 계산된 속도가 더 낮은 경우 가장 낮은 속도가 대신 사용됩니다.\n"
+#~ "\n"
+#~ "이 속도를 높이면 타워의 안정성에 영향을 줄 수 있을 뿐만 아니라 노즐이 와이프 타워에 형성될 수 있는 얼룩과 충돌하는 힘도 증가할 수 있습니다.\n"
+#~ "\n"
+#~ "이 매개변수를 기본값인 90mm/초 이상으로 늘리기 전에 프린터가 증가된 속도에서 안정적으로 브릿지할 수 있고 도구 교환 시 흘러나오는 현상이 잘 제어되는지 확인하십시오.\n"
+#~ "\n"
+#~ "와이프 타워 외부 경계의 경우 이 설정에 관계없이 내부 경계 속도가 사용됩니다."
+
+# AI Translated
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "프라임 타워의 외벽 유형입니다.\n"
+#~ "1. 직사각형: 기본 벽 유형으로, 너비와 높이가 고정된 직사각형입니다.\n"
+#~ "2. 원뿔: 프라임 타워를 안정화하기 위해 바닥에 필렛이 있는 원뿔입니다.\n"
+#~ "3. 리브: 안정성을 높이기 위해 타워 벽에 리브 4개를 추가합니다."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "와이프 타워의 퍼지 라인에 추가 흐름이 사용됩니다. 이렇게 하면 퍼지 라인이 평소보다 두껍거나 좁아집니다. 간격은 자동으로 조정됩니다."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "짧고 닫히지 않은 벽이 출력되는 것을 방지하려면 이 값을 조정하십시오. 이로 인해 출력 시간이 늘어날 수 있습니다. 값이 높을수록 더 많은 벽과 긴 벽이 제거됩니다.\n"
+#~ "\n"
+#~ "참고: 모델 외부의 시각적 틈을 방지하기 위해 하단 및 상단 표면은 이 값의 영향을 받지 않습니다. 상단 표면으로 간주되는 항목의 감도를 조정하려면 아래 고급 설정에서 '벽 하나의 임계값'을 조정하세요. '하나의 벽 임계값'은 이 설정이 기본값인 0.5보다 높게 설정되거나 단일 벽 상단 표면이 활성화된 경우에만 표시됩니다."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "%1%개의 부품으로 분할"
+
+#~ msgid "Repair failed"
+#~ msgstr "수리에 실패하였습니다."
+
+#~ msgid "Repair canceled"
+#~ msgstr "수리 취소됨"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "이 레이어가 아래 레이어와 겹치는 곳에서 어떻게 작용할지 정합니다. 추가와 빼기는 요철을 쌓거나 깎아 냅니다. 곱하기와 나누기는 아래에 있는 것의 크기를 조절하므로 이 레이어가 그 위의 마스크가 됩니다 - 이 경우 깊이는 강도로 작용하며, 1 mm이면 흰색 영역은 그대로 유지됩니다."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "메시에 비다양체 형상이나 열린 경계가 있습니다. 그대로 가져오거나, 가져오기 전에 Windows 3D 복구 서비스로 복구할 수 있습니다."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "메시에 비다양체 형상이나 열린 경계가 있습니다."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "메시 문제"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "복구 실패: 구멍 메우기 후에도 메시가 여전히 열려 있습니다."
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "불리언이 아닌 피연산자에는 논리 연산을 적용할 수 없습니다."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "읽는 중"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "필라멘트 수가 페인팅 도구가 지원하는 최대 수를 초과합니다. 첫 번째 %1% 필라멘트만 페인팅 도구에서 사용할 수 있습니다."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "단축키 "
+
+#~ msgid "Build Volume"
+#~ msgstr "빌드 볼륨"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "객체(%1%)에 중복된 커넥터가 있습니다. 슬라이싱 결과에서 일부 커넥터가 누락될 수 있습니다.\n"
+#~ "어떤 상황에서 이 문제가 발생했는지 OrcaSlicer 팀에 보고해 주십시오.\n"
+#~ "감사합니다."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d 삼각형"
+
+#~ msgid " (Moving)"
+#~ msgstr " (움직이는)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (고정된)"
+
+#~ msgid "Filament "
+#~ msgstr "필라멘트 "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "핫엔드"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "정렬 중 "
+
+#~ msgid "Orienting"
+#~ msgstr "방향 지정 중"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "모든 축을 홈으로 이동하세요(클릭 "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ")을 클릭하여 툴헤드의 위치를 찾습니다. 이렇게 하면 장치가 출력 가능한 경계를 벗어나 장치가 마모되는 것을 방지할 수 있습니다."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "최적 그룹핑 대비 %1%g 필라멘트와 %2%회 변경이 증가합니다."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "최적 그룹핑 대비 %1%g 필라멘트가 증가하고 %2%회 변경이 절감됩니다."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "최적 그룹핑 대비 %1%g 필라멘트가 절감되고 %2%회 변경이 증가합니다."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "단일 노즐 프린터 대비 %1%g 필라멘트와 %2%회 변경이 절감됩니다."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "단일 노즐 프린터 대비 %1%g 필라멘트가 절감되고 %2%회 변경이 증가합니다."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "단일 노즐 프린터 대비 %1%g 필라멘트가 증가하고 %2%회 변경이 절감됩니다."
+
+#~ msgid "number keys"
+#~ msgstr "숫자 키"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "필라멘트 %s이(가) %s에 배치되었지만 생성된 G-code 경로가 %s의 인쇄 가능 범위를 초과합니다."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "필라멘트 %s이(가) %s에 배치되었지만 생성된 G-code 경로가 %s의 인쇄 가능 높이를 초과합니다."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "필라멘트 %s은(는) 이 플레이트 표면에 직접 인쇄할 수 없습니다."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "새 모델을 생성하기 전에 닫힙니다. 계속하시겠습니까?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "클라우드 슬라이싱 대기열에는 %s개의 작업이 앞에 있습니다."
+
+#~ msgid " upload failed"
+#~ msgstr " 업로드 실패"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " 구성 업로드 실패\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " 해당 스토리지 버킷이 없습니다.\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " 열 수 없습니다\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "다음과 같은 몇 가지 이유로 귀하의 댓글 결과를 업로드할 수 없습니다.:\n"
+#~ "\n"
+#~ " 에러 코드: "
+
+#~ msgid "error message: "
+#~ msgstr "에러 메시지: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "평가를 위해 웹페이지로 이동하시겠습니까?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (프로세스 사전 설정: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "%s 노즐은 %s 을 인쇄할 수 없습니다."
+
+#~ msgid " nozzle"
+#~ msgstr "노즐"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "다음 필라멘트로 출력하지 않는 것이 좋습니다: %1%%2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " 플레이트 %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "혼합 필라멘트 %1%개를 모두 제거하시겠습니까?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "교체하시겠습니까"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "베드 온도 충돌: T%d(%s)은(는) 베드를 %d°C로 설정하지만 T%d(%s)은(는) %d°C가 필요합니다. 베드는 주 도구가 제어하며, 보조 도구는 주 도구가 설정한 온도로 출력합니다."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "보정을 위해 가속도가 제공되지 않습니다. 기본 가속도 값 사용 "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "보정을 위한 속도가 제공되지 않습니다. 기본 최적 속도 사용 "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "%1%~%2% °C 범위에 사용할 수 있는 벨트 온도 타워가 없습니다. 타워 모델이 지원하는 범위(예: 230~190)를 사용하세요."
+
+#~ msgid "The selected file"
+#~ msgstr "선택한 파일"
+
+# AI Translated
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "유효한 G-code를 포함하지 않습니다."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "를 OrcaSlicer와 연결하여 Orca가 다음 사이트의 모델을 열 수 있게 합니다"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "비용 %dg 필라멘트 및 %d 최적의 그룹화보다 더 많이 변경됩니다."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "이 아이콘이 있는 매개변수는 노즐별로 설정할 수 있습니다."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "예약어를 찾았습니다"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d개의 필라멘트 사전 설정과 %d개의 프로세스 사전 설정이 이 프린터에 연결되어 있습니다.프린터를 삭제하면 사전 설정도 삭제됩니다."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "다음 사전 설정은 이 사전 설정을 상속합니다."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "사전 설정 %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "선택한 사전 설정을 %1%하시겠습니까?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "%1%개의 부품으로 분할"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "새 제조사 프로파일 다운로드 중: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "제조사 프로파일을 다운로드하지 못했습니다: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "이 Span 모드에서는 %1%만 색상을 출력하지만, 필라멘트 %2%은(는) 어떤 도구에도 연결되어 있지 않습니다. %1%에 연결된 필라멘트를 사용하거나, 이 플레이트를 주(Primary) 모드로 전환하세요."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "이 Span 모드에서는 %1%만 색상을 출력하지만, 필라멘트 %2%은(는) T%3%에 연결되어 있습니다. %1%에 연결된 필라멘트를 사용하거나, 이 플레이트를 주(Primary) 모드로 전환하세요."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " 이(가) 제외 영역에 너무 가깝습니다. 출력 시 충돌이 발생 할 수 있습니다."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " 뭉침 감지 영역에 너무 가까워 출력 시 충돌이 발생할 수 있습니다."
+
+#~ msgid "Prime Tower"
+#~ msgstr "프라임 타워"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " 이(가) 다른 객체와 너무 가까워 출력 시 충돌이 발생 할 수 있습니다.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " 이(가) 제외 영역에 너무 가깝습니다. 출력 시 충돌이 발생 할 수 있습니다.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " 뭉침 감지 영역에 너무 가까워 충돌이 발생할 수 있습니다.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " 이(가) 출력 가능 영역을 일부 벗어나 출력할 수 없습니다.\n"
+
+# AI Translated
+# Needs human review: Substituted for %3% in "IDEX/IQEX mode "%1%" prints with T%2%, but this plate's filaments are on %3%" when no tool is mapped; check the sentence reads right with it.
+#~ msgid "no configured tool"
+#~ msgstr "구성되지 않은 도구"
+
+# AI Translated
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "출력이 종료될 때의 G-code"
+
+#~ msgid "Maximum X speed"
+#~ msgstr "X축 최대 속도"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Y축 최대 속도"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Z축 최대 속도"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "E축 최대 속도"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "슬라이싱 파이프라인의 각 단계에서 호출되어 중간 슬라이싱 데이터를 읽고 수정하는 Python 플러그인입니다. 마지막 G-code 후처리 단계도 포함됩니다. 연구/실험용입니다."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "활성화하면 슬라이서가 주 영역의 내용을 베드 원점(0,0)에 중심을 맞춘 G-code를 생성합니다. 각 물리 영역 위치에 복사본/미러본을 배치하는 것은 프린터 펌웨어가 담당합니다. 복사/미러 모드에서 펌웨어가 자체 영역 오프셋을 적용하는 프린터(예: RepRapFirmware IDEX 복제 모드)에서만 활성화하세요. 주(Primary) 모드에서는 효과가 없습니다."
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "물리 헤드를 필라멘트 슬롯(1부터 시작)에 매핑하는 플레이트별 재정의입니다. 비어 있으면 pem 역변환 기본값을 사용합니다."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "슬라이스 전에 메시를 회전시키는 기준 축입니다. 벨트 프린터의 기울기에 해당하며, 왜곡 없는(등거리) 회전으로 베드 렌더링과 서포트 중력 기울기에도 적용됩니다. G-code 역변환은 기계 좌표계 전단/배율 및 재매핑 전에 이 회전을 되돌립니다. 일반적인 갠트리 기울기는 X입니다(벨트는 Y 방향으로 이동)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "전문가용 재정의: 기계 좌표계(G-code 전단/배율) 기울기 각도를 슬라이스 전 회전 각도와 별도로 설정합니다. 비활성화하면 기계 좌표계 변환이 벨트 기울기 각도에서 산출되므로 하나의 각도가 두 단계를 모두 결정합니다. 실제 갠트리 기울기가 슬라이스 회전과 다른 기계를 보정할 때만 활성화하세요."
+
+# AI Translated
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "'최대 벽 해상도' 설정에 따라 해상도를 낮출 때 허용되는 최대 편차입니다. 이 값을 키우면 출력 정확도는 떨어지지만 G-code 크기는 작아집니다. '최대 벽 편차'는 '최대 벽 해상도'를 제한하므로, 두 설정이 충돌하면 '최대 벽 편차'가 우선합니다."
+
+#~ msgid " not in range "
+#~ msgstr " 범위를 벗어남 "
+
+#~ msgid "floating regions"
+#~ msgstr "떠있는 영역"
+
+#~ msgid "floating cantilever"
+#~ msgstr "떠있는 외팔보"
+
+#~ msgid "large overhangs"
+#~ msgstr "큰 오버행"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "객체 %s에 %s가 있는 것 같습니다. 물체의 방향을 바꾸거나 서포트 생성을 활성화하세요."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "감지된 레이어가 없습니다. STL 파일을 고치거나 크기 또는 두께를 확인하고 다시 시도할 수 있습니다.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "이 기계 유형은 노즐당 %d개의 기록 결과만 보유할 수 있습니다. 이 결과는 저장되지 않습니다."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "이 기계 유형은 노즐당 %d개의 기록 결과만 보유할 수 있습니다."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "오버행"
+
+# AI Translated
+#~ msgid "Start / End"
+#~ msgstr "시작 / 종료"
+
+# AI Translated
+#~ msgid "Damp"
+#~ msgstr "감쇠"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "프린터에서 %d개의 IFS 슬롯을 감지했습니다."
+
+#~ msgid "selected"
+#~ msgstr "선택됨"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "다음 사전 설정은 이 사전 설정을 상속합니다."
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "Creality 프린터 %zu대를 찾았습니다. 하나를 선택한 후 선택한 항목 사용을 클릭하십시오."
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "개 로그"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "오류: %s 압출기에 사용 가능한 %s 노즐이 없어 현재 그룹 결과가 유효하지 않습니다."
+
+#~ msgid "invalid brim ears"
+#~ msgstr " 유효하지 않은 브림 귀"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "%d 물체 건너뛰기"
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "탐색기에서 폴더 열기"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "중심을 클릭한 다음 꼭지점 클릭 — 변 %d개, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "외접"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "내접"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "스케치 생성됨(구동 치수 %zu개) — 스케치를 선택한 다음 마우스 오른쪽 클릭으로 돌출"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "완료 — 삼각형 %zu개"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "이 메시에는 삼각형이 %d개 있습니다. 동일 평면 병합 전에 모든 삼각형이 B-rep 면이 되므로, 가져오는 데 오래 걸리고 편집이 느린 바디가 만들어질 수 있습니다. 보통은 먼저 메시의 삼각형 수를 줄이는 것이 좋습니다.\n"
+#~ "\n"
+#~ "그래도 가져오시겠습니까?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "솔리드를 가져왔습니다 — 삼각형 %d개 → 면 %d개, 부피 %.2f mm³. 면이나 모서리를 선택한 다음 필렛 / 자르기 / 쉘로 수정하십시오"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — 드래그하여 위치/크기를 정한 다음 확인"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "스케치 요소 %d개"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — 값을 입력하고 Enter를 누르십시오(또는 확인)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "미리 보기 — 삼각형 %zu개"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "구속조건 %1%개는 이 형상(타원 또는 스플라인 곡선, 크기가 0인 원)에 적용할 수 없으므로 무시됩니다"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "필렛/모따기로 인해 무효가 된 구속조건 %1%개를 제거했습니다"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "변환으로 인해 구속조건 %1%개가 해제되었습니다"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...외 열린 끝 %1%개"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "재료 목록은 최대 %1%가지 색상을 지원합니다. %2% 분해 후에는 재료 수가 %1%개를 초과합니다. 분해하기 전에 메인 화면에서 사용하지 않는 필라멘트를 삭제하십시오."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "필라멘트 %2%개로 출력 가능한 색상 %1%개"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "아일랜드 %1%개"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "레이어 %1%개 모두 사용함"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "미리 보기: 삼각형 %1%개"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "모델: 삼각형 %1%개 - 굽기는 예산 한도 내에서 위의 해상도까지 세분화합니다"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "굽기는 기존 정점을 움직입니다 - 모델은 삼각형 %1%개로 유지됩니다"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "굽기 결과: 삼각형 최대 약 %1% k개"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "칠하지 않은 레이어 %1%개, 건너뜀"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "프로젝트는 최대 %d개의 필라멘트를 지원합니다. 초과한 필라멘트는 버려집니다."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "정점 %d개 선택됨 | 드래그 = 함께 이동, Shift/Ctrl 클릭 = 추가/제거"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "모서리 %d개 선택됨 | 드래그 = 함께 이동, Shift/Ctrl 클릭 = 추가/제거"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "아일랜드 %d개 선택됨 | 드래그 = 함께 이동, Shift/Ctrl 클릭 = 추가/제거, R/S = 기준 아일랜드 회전/배율 조정"
+
+# AI Translated
+# Needs human review: Source says "Change it with Tiling" but the layer settings show "Tile size" (타일 크기) and "Tile"; translated as Tile size, check it matches the control.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "활성 레이어의 타일 크기: 텍스처가 한 번 반복될 때 모델을 덮는 범위입니다. 캔버스는 타일 단위로 측정되므로 격자 한 칸이 한 번의 반복입니다. 레이어 설정의 타일 크기에서 변경하세요."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "아일랜드 %d개, 면 %s개"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "플러그인 \"%s\"이(가) 다음 파일 읽기를 요청하고 있습니다:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "플러그인 \"%s\"이(가) 다음 파일 읽기/쓰기를 요청하고 있습니다:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "플러그인 \"%s\"이(가) 다음 파일 생성을 요청하고 있습니다:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "플러그인 \"%s\"이(가) 다음 파일 삭제를 요청하고 있습니다:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "플러그인 \"%s\"이(가) 다음 명령 실행을 요청하고 있습니다:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "플러그인 설치 실패"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Microsoft WebView2 Runtime을 설치할 수 없습니다.\n"
+#~ "설치하기 전까지는 설정 마법사를 포함한 일부 기능이 빈 화면으로 표시될 수 있습니다.\n"
+#~ "https://developer.microsoft.com/microsoft-edge/webview2/ 에서 수동으로 설치한 후 Orca Slicer를 다시 시작하십시오."
+
+#~ msgid "Why this grouping"
+#~ msgstr "이 그룹핑의 이유"
+
+# AI Translated
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "이 소프트웨어는 한 번의 출력에 서로 다른 직경의 노즐을 사용하는 것을 지원하지 않습니다. 왼쪽과 오른쪽 노즐이 서로 다르면 단일 헤드 출력으로만 진행할 수 있습니다. 이 프로젝트에 사용할 노즐을 확인해 주십시오."
+
+#~ msgid "Switch diameter"
+#~ msgstr "직경 스위치"
+
+# AI Translated
+#~ msgid "BambuStudio Project"
+#~ msgstr "BambuStudio 프로젝트"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "이 3MF는 BambuStudio(버전 %s)에서 생성되었으며, 이는 호환 버전 %s보다 최신입니다. 인식할 수 없는 설정을 찾았습니다:"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "이 3MF는 BambuStudio(버전 %s)에서 생성되었으며, 이는 호환 버전 %s보다 최신입니다. 일부 설정이 완전히 호환되지 않을 수 있습니다."
+
+# AI Translated
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "이 3MF는 BambuStudio에서 생성되었습니다. 일부 설정이 OrcaSlicer와 다를 수 있습니다."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "작업이 실행 중일 때는 실행 취소하거나 다시 실행할 수 없습니다. 먼저 작업을 중지하십시오."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "전체 어셈블리가 아니라 각 부품을 개별적으로 슬라이스한 것처럼 부품마다 내부 채우기를 자체 중심에 맞춥니다. 서로 닿거나 겹치는 부품은 하나의 몸체로 간주되어 중심을 공유하며, 분리된 부품(또는 별개의 3D 객체)은 각각 자체 중심을 갖습니다.\n"
+#~ "여러 객체를 묶은 어셈블리에서 각 객체가 자체 중심을 기준으로 일관된 채우기를 유지해야 할 때 유용합니다.\n"
+#~ "선 및 격자 패턴과 회전 템플릿 채우기에 영향을 줍니다.\n"
+#~ "전역 좌표에 고정된 패턴(자이로이드, 벌집, TPMS 등)은 영향을 받지 않습니다."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "현재 레이어의 인덱스입니다. 1 기반(즉, 첫 번째 레이어가 1번입니다)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "비디오 자습서"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "기본 모델"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "빈 메시가 생성되었습니다"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "상자"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "빠른 선택:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "너비 (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "깊이 (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "높이 (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "하단 R"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "상단 R"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "주 R"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "부 R"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "모든 모서리"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "상단 모서리"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "하단 모서리"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "측면 모서리"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "메시 해상도"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "형상 추가"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "외곽 프로파일 없음"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "외곽 면을 만들지 못했습니다"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "구멍이 있는 면을 만들지 못했습니다"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "회전 실패"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "프로파일"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "새 프로파일 시작(구멍용)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "세그먼트 수"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "변 수"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "캔버스를 클릭하여 그리기"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "격자에 스냅"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "격자 간격"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "외곽"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "닫힘"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: 점 %3%개 %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (위)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (앞)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (측면)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "회전 각도"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "돌출은 0, 회전은 0보다 큰 값으로 설정"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "포켓(잘라내기)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu개의 닫힌 프로파일"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "활성화하려면 닫힌 프로파일을 그리십시오"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "결과가 비어 있음"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "돌출: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "회전: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "선택한 객체 없음"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "면 생성 실패"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "구멍이 있는 면 생성 실패"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "도구 메시가 비어 있음"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "포켓 추가됨(비우기 부품)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "포켓: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "활성 레이어가 펼치기(LSCM)로 매핑되어 있어야 합니다."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "체커 - 텍스처 대신 테스트 격자를 표시합니다. 정사각형이 정사각형으로 유지되는 곳은 텍스처가 왜곡되지 않으며, 늘어나는 곳은 텍스처도 늘어납니다"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "왜곡 - 펼친 면 위에 늘어난 정도를 파랑에서 빨강으로 이어지는 히트맵으로 표시합니다"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "혼합 방식"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "표면"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "레이어: 두 필라멘트가 출력 레이어마다 번갈아 사용됩니다. 수직면에서는 부드럽게 섞이지만, 레이어 하나가 하나의 띠가 되는 평평한 면에서는 효과가 사라집니다.\n"
+#~ "표면: 표면 전체에 촘촘한 체커보드를 만듭니다. 어떤 각도에서도 작동하지만 혼색이 아니라 질감처럼 보일 수 있습니다.\n"
+#~ "자동: 수직면에는 레이어를 사용하고, 평평한 면에서는 체커보드가 패턴으로 드러나므로 더 가까운 필라멘트 하나를 사용합니다."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "아일랜드 - 아일랜드 전체를 이동, 회전, 배율 조정합니다"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "정점 - 정점을 드래그하여 모양을 바꿉니다. Shift/Ctrl로 다중 선택"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "모서리 - 모서리를 드래그하여 모양을 바꿉니다. Shift/Ctrl로 다중 선택"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "모든 아일랜드 맞추기 (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(실험적) 출력 호스트 대신 프린터 에이전트 사용"
@@ -31719,16 +37850,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "면이나 기준 평면을 클릭한 다음 그리기 도구를 선택하십시오"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -31785,10 +37906,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "수직 거리"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "선형"
-
#~ msgid "Face recognition"
#~ msgstr "바닥면 인식"
@@ -33216,9 +39333,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "%1%의 선 너비를 계산하지 못했습니다. \"%2%\"의 값을 가져올 수 없습니다 "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Flow::with_spacing()에 잘못된 간격이 제공되었습니다. 레이어 높이와 돌출 너비를 확인하세요"
-
#~ msgid "Continue to sync filaments"
#~ msgstr "필라멘트 동기화 계속하기"
@@ -33373,9 +39487,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "부품 선택"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction mode.\n"
#~ "\n"
diff --git a/localization/i18n/list.txt b/localization/i18n/list.txt
index b1ebb54f5e..128318039f 100644
--- a/localization/i18n/list.txt
+++ b/localization/i18n/list.txt
@@ -72,6 +72,8 @@ src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp
src/slic3r/GUI/Gizmos/GLGizmoCut.cpp
src/slic3r/GUI/Gizmos/GLGizmoCut.hpp
src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp
+src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp
+src/slic3r/GUI/Gizmos/GLGizmoUtils.cpp
src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp
src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp
src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp
@@ -80,6 +82,7 @@ src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp
src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp
src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp
src/slic3r/GUI/Gizmos/GLGizmoAssembly.hpp
+src/slic3r/GUI/Gizmos/GLGizmoAlignment.cpp
src/slic3r/GUI/GUI.cpp
src/slic3r/GUI/GUI_App.cpp
src/slic3r/GUI/GUI_AuxiliaryList.cpp
@@ -110,6 +113,7 @@ src/slic3r/GUI/Jobs/ArrangeJob.cpp
src/slic3r/GUI/Jobs/OrientJob.cpp
src/slic3r/GUI/Jobs/FillBedJob.cpp
src/slic3r/GUI/Jobs/RotoptimizeJob.cpp
+src/slic3r/GUI/Jobs/RotoptimizeJob.hpp
src/slic3r/GUI/Jobs/BindJob.cpp
src/slic3r/GUI/Jobs/PrintJob.cpp
src/slic3r/GUI/Jobs/SendJob.cpp
@@ -138,6 +142,7 @@ src/slic3r/GUI/DeviceErrorDialog.cpp
src/slic3r/GUI/ExtraRenderers.cpp
src/slic3r/GUI/EditGCodeDialog.cpp
src/slic3r/GUI/Field.cpp
+src/slic3r/GUI/Field.hpp
src/slic3r/GUI/GCodeViewer.cpp
src/slic3r/GUI/GLCanvas3D.cpp
src/slic3r/GUI/Calibration.cpp
@@ -164,6 +169,8 @@ src/slic3r/GUI/OptionsGroup.cpp
src/slic3r/GUI/PrintOptionsDialog.cpp
src/slic3r/GUI/SafetyOptionsDialog.cpp
src/slic3r/GUI/ParamsPanel.cpp
+src/slic3r/GUI/IMEXModesCtrl.cpp
+src/slic3r/GUI/IMEXFilamentPickerPopover.cpp
src/slic3r/GUI/PartPlate.cpp
src/slic3r/GUI/Plater.cpp
src/slic3r/GUI/Preferences.cpp
@@ -208,12 +215,18 @@ src/libslic3r/GCode.cpp
src/libslic3r/GCodeWriter.cpp
src/libslic3r/GCode/ToolOrdering.cpp
src/libslic3r/GCode/SeamPlacer.cpp
+src/libslic3r/GCode/GCodeStatistics.cpp
src/libslic3r/ExtrusionEntity.cpp
src/libslic3r/Flow.cpp
src/libslic3r/Format/AMF.cpp
+src/libslic3r/Format/3mf.cpp
+src/libslic3r/Format/bbs_3mf.cpp
src/libslic3r/miniz_extension.cpp
+src/libslic3r/IMEXHelpers.cpp
src/libslic3r/Preset.cpp
src/libslic3r/Print.cpp
+src/libslic3r/BeltPurge.cpp
+src/libslic3r/AppConfig.cpp
src/libslic3r/PrintBase.cpp
src/libslic3r/PrintConfig.cpp
src/libslic3r/Zipper.cpp
@@ -251,6 +264,7 @@ src/slic3r/Utils/MKS.cpp
src/slic3r/Utils/Moonraker.cpp
src/slic3r/Utils/OctoPrint.cpp
src/slic3r/Utils/Repetier.cpp
+src/slic3r/Utils/ESP3D.cpp
src/slic3r/GUI/SendMultiMachinePage.cpp
src/slic3r/GUI/MultiMachinePage.cpp
src/slic3r/GUI/MultiMachineManagerPage.cpp
@@ -305,10 +319,13 @@ src/slic3r/GUI/AuxiliaryDataViewModel.cpp
src/slic3r/GUI/AuxiliaryDialog.cpp
src/slic3r/GUI/BBLStatusBarPrint.cpp
src/slic3r/GUI/BBLStatusBarSend.cpp
+src/slic3r/GUI/BBLStatusBar.cpp
+src/slic3r/GUI/BeltPurgeTower.cpp
src/slic3r/GUI/BaseTransparentDPIFrame.cpp
src/slic3r/GUI/CloneDialog.cpp
src/slic3r/GUI/ColorDecomposeDialog.cpp
src/slic3r/GUI/ColorDecomposeSupport.cpp
+src/slic3r/GUI/ColorPickerDialog.cpp
src/slic3r/GUI/ConfigWizard.cpp
src/slic3r/GUI/DeviceCore/DevCalib.cpp
src/slic3r/GUI/DeviceCore/DevUpgrade.cpp
@@ -331,6 +348,8 @@ src/slic3r/GUI/OAuthDialog.cpp
src/slic3r/GUI/PluginPickerDialog.cpp
src/slic3r/GUI/PluginsConfigDialog.cpp
src/slic3r/GUI/PluginsDialog.cpp
+src/slic3r/GUI/PrinterWebView.cpp
+src/slic3r/GUI/Project.cpp
src/slic3r/GUI/PublishSettingsDialog.hpp
src/slic3r/GUI/PurgeModeDialog.cpp
src/slic3r/GUI/TerminalDialog.cpp
@@ -339,16 +358,31 @@ src/slic3r/GUI/TextureLibrary.cpp
src/slic3r/GUI/TextureProjectorFrame.cpp
src/slic3r/GUI/UVEditorCanvas.cpp
src/slic3r/GUI/UserManager.cpp
-src/slic3r/GUI/WebDownPluginDlg.cpp
src/slic3r/GUI/WebViewDialog.cpp
src/slic3r/GUI/Widgets/AMSItem.cpp
src/slic3r/GUI/Widgets/DialogButtons.cpp
src/slic3r/Utils/NetworkAgentFactory.cpp
+src/slic3r/Utils/MoonrakerPrinterAgent.cpp
+src/slic3r/Utils/BBLNetworkPlugin.cpp
+src/slic3r/Utils/OrcaCloudServiceAgent.cpp
src/slic3r/plugin/PluginAuditManager.cpp
src/slic3r/plugin/PluginConfig.cpp
src/slic3r/plugin/PluginResolver.cpp
+src/slic3r/plugin/CloudPluginService.cpp
+src/slic3r/plugin/PluginFsUtils.cpp
+src/slic3r/plugin/PluginHooks.cpp
+src/slic3r/plugin/PluginLoader.cpp
+src/slic3r/plugin/PluginManager.cpp
+src/slic3r/plugin/PythonPluginBridge.cpp
src/libslic3r/CAD/SketchEngine.cpp
src/libslic3r/CAD/GeometryEngine.cpp
+src/libslic3r/FilamentMixer.cpp
+src/libslic3r/Config.cpp
+src/libslic3r/Format/STEP.cpp
+src/libslic3r/Format/svg.cpp
+src/libslic3r/Extruder.cpp
+src/libslic3r/MeshBoolean.cpp
+src/libslic3r/utils.cpp
src/slic3r/GUI/CAD/DesignOffer.hpp
src/slic3r/GUI/CAD/DesignSketchTool.cpp
src/slic3r/GUI/EncodedFilament.cpp
diff --git a/localization/i18n/lt/OrcaSlicer_lt.po b/localization/i18n/lt/OrcaSlicer_lt.po
index 2531cae672..3385fec8ac 100644
--- a/localization/i18n/lt/OrcaSlicer_lt.po
+++ b/localization/i18n/lt/OrcaSlicer_lt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2026-07-02 14:13+0300\n"
"Last-Translator: Gintaras Kučinskas \n"
"Language-Team: \n"
@@ -411,8 +411,10 @@ msgid "Please wait"
msgstr "Palaukite"
# AI Translated
-msgid "Reading"
-msgstr "Nuskaitoma"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Indukcinis kaitinimo blokų stovas: nuskaitoma %d/%d"
# AI Translated
msgid "Running..."
@@ -574,9 +576,13 @@ msgstr "Manipuliatorius – Pridėti prie paviršiaus"
msgid "Lay on Face"
msgstr "Paguldyti ant paviršiaus"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Gijų skaičius viršija didžiausią piešimo įrankio palaikomą skaičių. Piešimo įrankyje bus prieinamos tik pirmosios %1% gijos."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Gijų skaičius viršija didžiausią piešimo įrankio palaikomą skaičių. Piešimo įrankyje bus prieinama tik pirmoji %1% gija."
+msgstr[1] "Gijų skaičius viršija didžiausią piešimo įrankio palaikomą skaičių. Piešimo įrankyje bus prieinamos tik pirmosios %1% gijos."
+msgstr[2] "Gijų skaičius viršija didžiausią piešimo įrankio palaikomą skaičių. Piešimo įrankyje bus prieinamos tik pirmosios %1% gijų."
msgid "Color Painting"
msgstr "Spalvotas piešimas"
@@ -628,8 +634,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Spartusis klavišas "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Spartusis klavišas %d"
msgid "Triangle"
msgstr "Trikampis"
@@ -721,6 +729,9 @@ msgstr "mm."
msgid "Part selection"
msgstr "Detalių pasirinkimas"
+msgid "Select multiple objects"
+msgstr "Pasirinkite kelis objektus"
+
msgid "Fixed step drag"
msgstr "Vilkimas fiksuotu žingsniu"
@@ -781,9 +792,78 @@ msgstr "Dalis"
msgid "Relative"
msgstr "Santykinis"
+msgid "Selection"
+msgstr "Pasirinkimas"
+
+msgid "Plate"
+msgstr "Spausdinimo plokštė"
+
+msgid "Distribute"
+msgstr ""
+
msgid "Coordinate system used for transform actions."
msgstr "Transformavimo veiksmams naudojama koordinačių sistema."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Sulygiuoti pagal kairįjį kraštą"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Sulygiuoti centrus kairės-dešinės kryptimi"
+
+# AI Translated
+msgid "Align right"
+msgstr "Sulygiuoti pagal dešinįjį kraštą"
+
+# AI Translated
+msgid "Align front"
+msgstr "Sulygiuoti pagal priekinį kraštą"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Sulygiuoti centrus priekio-galo kryptimi"
+
+# AI Translated
+msgid "Align back"
+msgstr "Sulygiuoti pagal galinį kraštą"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Sulygiuoti pagal apatinį kraštą"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Sulygiuoti centrus viršaus-apačios kryptimi"
+
+# AI Translated
+msgid "Align top"
+msgstr "Sulygiuoti pagal viršutinį kraštą"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Paskirstyti kairės-dešinės kryptimi"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Paskirstyti priekio-galo kryptimi"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Paskirstyti viršaus-apačios kryptimi"
+
+msgid "Drop"
+msgstr "Nuleisti"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
msgid "Absolute"
msgstr "Absoliutus"
@@ -885,9 +965,6 @@ msgstr "Griovelio kampas"
msgid "Cut position"
msgstr "Pjovimo vieta"
-msgid "Build Volume"
-msgstr "Spausdinimo tūris"
-
msgid "Multiple"
msgstr "Keli"
@@ -1063,10 +1140,22 @@ msgstr "Jungtis"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"Objektas (%1%) turi pasikartojančių jungčių. Kai kurių jungčių gali trūkti pjaustymo rezultate.\n"
+"Praneškite OrcaSlicer komandai, kokiu atveju kilo ši problema.\n"
+"Ačiū."
+msgstr[1] ""
+"Objektai (%1%) turi pasikartojančių jungčių. Kai kurių jungčių gali trūkti pjaustymo rezultate.\n"
+"Praneškite OrcaSlicer komandai, kokiu atveju kilo ši problema.\n"
+"Ačiū."
+msgstr[2] ""
"Objektai (%1%) turi pasikartojančių jungčių. Kai kurių jungčių gali trūkti pjaustymo rezultate.\n"
"Praneškite OrcaSlicer komandai, kokiu atveju kilo ši problema.\n"
"Ačiū."
@@ -1132,9 +1221,13 @@ msgstr "Žemas"
msgid "Extra low"
msgstr "Labai žemas"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d trikampiai"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% trikampis"
+msgstr[1] "%1% trikampiai"
+msgstr[2] "%1% trikampių"
msgid "Show wireframe"
msgstr "Rodyti karkasinį vaizdą"
@@ -1145,6 +1238,17 @@ msgstr "Nepavyko pritaikyti apdorojant peržiūrą"
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Operacija jau atšaukiama. Palaukite kelias sekundes."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "Modelio supaprastinimas atšauktas"
+
+msgid "Wiki Guide"
+msgstr "Wiki vadovas"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Vaizdo vadovas"
+
msgid "Enforce seam"
msgstr "Priverstinė siūlė"
@@ -1195,6 +1299,14 @@ msgstr "Padėtis ant paviršiaus"
msgid "Emboss"
msgstr "Tekstas (Emboss)"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Stiliuje nėra aktyvaus šrifto. Pasirinkite tinkamą."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont įkeltas netinkamai."
+
msgid "NORMAL"
msgstr "ĮPRASTAS"
@@ -1845,11 +1957,25 @@ msgstr "Skersmuo"
msgid "Length"
msgstr "Ilgis"
-msgid "Selection"
-msgstr "Pasirinkimas"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Paviršius 1 (Fiksuotas)"
-msgid " (Moving)"
-msgstr " (Judantis)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Paviršius 2 (Judantis)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Taškas 1 (Fiksuotas)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Taškas 2 (Judantis)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Pasirinkimas 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1865,14 +1991,9 @@ msgstr ""
"Pasirinkite 2 taškus arba apskritimus ant \n"
"objektų ir nurodykite atstumą tarp jų."
-msgid "Face"
-msgstr "Paviršius"
-
-msgid " (Fixed)"
-msgstr " (Fiksuotas)"
-
-msgid "Point"
-msgstr "Taškas"
+# AI Translated
+msgid "Selection 2"
+msgstr "Pasirinkimas 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1971,6 +2092,18 @@ msgstr "Įjungiamas surinkimo manipuliatorius"
msgid "Leaving Assembly gizmo"
msgstr "Išjungiamas surinkimo manipuliatorius"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2145,14 +2278,16 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "„WebView2“ paleidimo terpė"
+# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Nepavyko įdiegti „Microsoft WebView2 Runtime“.\n"
-"Kol tai nebus įdiegta, kai kurios funkcijos, įskaitant diegimo vedlį, gali būti tuščios.\n"
-"Prašome įdiegti rankiniu būdu iš https://developer.microsoft.com/microsoft-edge/webview2/ ir iš naujo paleisti „Orca Slicer“."
+"Kai kurios funkcijos, įskaitant nustatymų vedlį, gali būti rodomos tuščios, kol jis neįdiegtas.\n"
+"Įdiekite jį rankiniu būdu iš %1% ir paleiskite Orca Slicer iš naujo."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2380,6 +2515,66 @@ msgstr "Tinklo papildinio ribojimas"
msgid "Privacy Policy Update"
msgstr "Privatumo politikos atnaujinimas"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Visi jūsų gijų profiliai pasiekiami spausdintuvuose, kuriems jie buvo sukurti."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Perkelti gijų profilius"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 versijoje pertvarkyta daug sistemos gijų profilių, kad būtų ištaisyti neteisingi profiliai ir pasiruošta būsimoms funkcijoms. Dėl to toliau nurodyti profiliai nebėra rodomi kai kuriuose spausdintuvuose, kuriems jie buvo sukurti. Atsiprašome už nepatogumus; tai vienkartinis pataisymas.\n"
+"\n"
+"Ar dabar grąžinti tuos spausdintuvus į jūsų profilius? Pirmiausia sukuriama atsarginė jūsų profilių kopija. Tai galite padaryti ir vėliau, per Pagalba > Perkelti gijų profilius."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (pagal %2%)"
+
+msgid "Don't remind me again"
+msgstr "Daugiau neberodyti šio priminimo"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Nepavyko sukurti atsarginės jūsų profilių kopijos, todėl jie nebuvo perkelti."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Nepavyko užrakinti naudotojo profilių aplanko, todėl niekas nebuvo perkelta. Galbūt kitas OrcaSlicer egzempliorius šiuo metu išsaugo profilius; bandykite vėliau per Pagalba > Perkelti gijų profilius."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Nepavyko perkelti jūsų gijų profilių. Atsarginė jūsų profilių kopija įrašyta čia:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Jūsų gijų profiliai perkelti. Pasirinkite juos iš naujo gijų sąraše ten, kur juos naudojote.\n"
+"\n"
+"Atsarginė jūsų profilių kopija įrašyta čia:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Šių profilių nepavyko perkelti:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "jūsų „Orca Cloud“ profilis (vartotojo ID: „%s“)"
@@ -2499,6 +2694,9 @@ msgstr "Papildiniai atnaujinti."
msgid "Failed to refresh plugins: %s"
msgstr "Nepavyko atnaujinti papildinių: %s"
+msgid "Unknown error"
+msgstr "Nežinoma klaida"
+
# AI Translated
msgid "Select plugin package"
msgstr "Pasirinkite papildinio paketą"
@@ -3027,6 +3225,22 @@ msgstr "Įkelti viską iš naujo"
msgid "Reload all from disk"
msgstr "Įkelti viską iš naujo iš disko"
+# AI Translated
+msgid "Fix All"
+msgstr "Taisyti viską"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Taisyti visus modelius dabartinėje plokštėje"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Taisyti visas plokštes"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Taisyti visus modelius visose plokštėse"
+
msgid "Auto Rotate"
msgstr "Automatinis pasukimas"
@@ -3078,8 +3292,13 @@ msgstr "(Prarasta spalva)"
msgid "Center"
msgstr "Centras"
-msgid "Drop"
-msgstr "Nuleisti"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Sulygiuoti/Paskirstyti"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Sulygiuoti ir paskirstyti objektus"
msgid "Edit Process Settings"
msgstr "Taisyti proceso nustatymus"
@@ -3381,6 +3600,14 @@ msgstr[0] "Nepavyko pataisyti šio modelio objekto"
msgstr[1] "Nepavyko pataisyti šių modelio objektų"
msgstr[2] "Nepavyko pataisyti šių modelio objektų"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d modelio objekto taisyti nereikėjo."
+msgstr[1] "%1$d modelio objektų taisyti nereikėjo."
+msgstr[2] "%1$d modelio objektų taisyti nereikėjo."
+
msgid "Repairing was canceled"
msgstr "Taisymas buvo atšauktas"
@@ -3453,9 +3680,6 @@ msgstr "Nėra krašto"
msgid "Outer wall speed"
msgstr "Išorinių sienų greitis"
-msgid "Plate"
-msgstr "Spausdinimo plokštė"
-
msgid "Brim"
msgstr "Kraštas"
@@ -3544,9 +3768,6 @@ msgstr "Pridėti pasirinktinį šabloną"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Įterpti šablono pasirinktinį G-code šio sluoksnio pradžioje."
-msgid "Filament "
-msgstr "Gija "
-
msgid "Change filament at the beginning of this layer."
msgstr "Pakeisti giją šio sluoksnio pradžioje."
@@ -3637,6 +3858,8 @@ msgstr "Vis tiek pakeisti"
msgid "Off"
msgstr "Išjungta"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "Filtras"
@@ -3751,12 +3974,19 @@ msgid "Check filament location"
msgstr "Patikrinti gijos padėtį"
# AI Translated
-msgid "Switch"
-msgstr "Perjungti"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Pristabdyti"
# AI Translated
-msgid "hotend"
-msgstr "kaitinimo blokas"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Perjungti ekstruderį"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Perjungti kaitinimo bloką"
# AI Translated
msgid "Wait for AMS cooling"
@@ -3938,8 +4168,10 @@ msgid "Arranging"
msgstr "Išdėstymas"
# AI Translated
-msgid "Arranging "
-msgstr "Išdėstoma "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Išdėstoma: %1%"
msgid "Arranging canceled."
msgstr "Išdėstymas atšauktas."
@@ -3978,8 +4210,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Nustatoma padėtis..."
-msgid "Orienting"
-msgstr "Padėties nustatymas"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Nustatoma padėtis: %1%"
msgid "Orienting canceled."
msgstr "Padėties nustatymas atšauktas."
@@ -3987,6 +4222,12 @@ msgstr "Padėties nustatymas atšauktas."
msgid "Filling"
msgstr "Užpildoma"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Užpildoma: %1%"
+
msgid "Bed filling canceled."
msgstr "Pagrindo užpildymas atšauktas."
@@ -4002,6 +4243,34 @@ msgstr "Padėties paieška atšaukta."
msgid "Orientation found."
msgstr "Padėtis rasta."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Geriausia paviršiaus kokybė"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Optimizuoti objekto pasukimą geriausiai paviršiaus kokybei."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Sumažinti iškyšų nuolydžiai"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Optimizuoti objekto pasukimą, kad būtų kuo mažiau iškyšų, kurioms reikia atraminių konstrukcijų.\n"
+"Atkreipkite dėmesį: jei nenustatytas pakėlimas, šis metodas bandys rasti geriausią objekto paviršių, kuriuo jis liestų pagrindą."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Mažiausias Z aukštis"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Pasukti modelį, kad Z aukštis būtų mažiausias ir spausdinimas vyktų greičiau."
+
msgid "Logging in"
msgstr "Jungiamasi"
@@ -4293,6 +4562,16 @@ msgstr "Paskutinieji projektai"
msgid "Go to Plate"
msgstr "Eiti į plokštę"
+msgid "Device"
+msgstr "Įrenginys"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Įrenginys (Web)"
+
+msgid "Multi-device"
+msgstr "Kelių įrenginių valdymas (Multi-device)"
+
msgid "AMS Materials Setting"
msgstr "AMS medžiagų nuostatos"
@@ -4319,9 +4598,6 @@ msgstr "Įvesties reikšmė turi būti didesnė nei %1% ir mažesnė nei %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Srauto dinamikos kalibravimo koeficientai"
-msgid "Wiki Guide"
-msgstr "Wiki vadovas"
-
msgid "PA Profile"
msgstr "PA profilis"
@@ -4351,6 +4627,14 @@ msgstr "Įveskite tinkamą reikšmę (K %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Įveskite tinkamą reikšmę (K %.1f~%.1f, N %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Mėgstamiausios gijos"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Visos gijos"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4668,11 +4952,11 @@ msgstr "Tinklo papildinys įdiegtas, tačiau jo nepavyko įkelti. Paleiskite pro
msgid "Restart Required"
msgstr "Būtina paleisti iš naujo"
-msgid "Please home all axes (click "
-msgstr "Prašome sugrąžinti visas ašis į pradinę padėtį (spauskite "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") norėdami nustatyti spausdinimo galvutės padėtį. Taip išvengiama, kad įrenginys judėtų už spausdinimo srities ir dėvėtųsi."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Sugrąžinkite visas ašis į pradinę padėtį (spauskite %1%), kad būtų nustatyta spausdinimo galvutės padėtis. Taip išvengiama, kad įrenginys judėtų už spausdinimo srities ribų ir dėvėtųsi."
msgid "Go Home"
msgstr "Grįžti į pradinę padėtį"
@@ -4687,6 +4971,10 @@ msgstr "Įvyko lemtinga klaida: „%1%“"
msgid "Please save your project and restart the application."
msgstr "Išsaugokite projektą ir iš naujo paleiskite programą."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Nežinoma C++ išimtis."
+
# AI Translated
msgid "Processing G-Code from previous file…"
msgstr "Apdorojamas G-code iš ankstesnio failo…"
@@ -4880,8 +5168,9 @@ msgstr ""
msgid "The recommended nozzle temperature for this filament type is [%d, %d] degrees Celsius."
msgstr "Rekomenduojama šio tipo gijos purkštuko temperatūra yra [%d, %d] laipsnių Celsijaus."
+# AI Translated
msgid "Adaptive Pressure Advance model validation failed:\n"
-msgstr "Nepavyko patvirtinti adaptyviojo slėgio išankstinio (Pressure Advance) modelio:\n"
+msgstr "Nepavyko patvirtinti adaptyviojo Pressure Advance modelio:\n"
msgid ""
"Too small max volumetric speed.\n"
@@ -4922,6 +5211,14 @@ msgstr "Automatiškai sureguliuoti iki ribos (%g mm)?"
msgid "Adjust"
msgstr "Sureguliuoti"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Platforma ir apsauginis skydas juostiniuose spausdintuvuose negalimi.\n"
+"Jie buvo išjungti."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5036,10 +5333,11 @@ msgstr ""
# AI Translated
msgid "Brim ear radius"
-msgstr "Apvado „ausies“ spindulys"
+msgstr "Krašto „ausies“ spindulys"
+# AI Translated
msgid "Brim width"
-msgstr "Pado apvado plotis"
+msgstr "Krašto plotis"
msgid "Spiral mode only works when wall loops is 1, support is disabled, clumping detection by probing is disabled, top shell layers is 0, sparse infill density is 0 and timelapse type is traditional."
msgstr "Spiralinis režimas veikia tik tada, kai sienelės kilpų skaičius yra 1, atramos išjungtos, sulipimo aptikimas zonduojant išjungtas, viršutinių apvalkalo sluoksnių yra 0, reto užpildo tankis yra 0 %, o laiko intervalų vaizdo įrašo tipas – tradicinis."
@@ -5588,8 +5886,9 @@ msgstr "Sluoksnio laikas"
msgid "Layer Time (log)"
msgstr "Sluoksnio laikas (log)"
+# AI Translated
msgid "Pressure Advance"
-msgstr "Slėgio išankstinis valdymas (Pressure Advance)"
+msgstr "Pressure Advance"
msgid "Noop"
msgstr "Tuščia operacija (Noop)"
@@ -5761,9 +6060,6 @@ msgstr "Automatiškai pjaustyti iš naujo pagal optimalų gijų grupavimą, o gr
msgid "Filament Grouping"
msgstr "Gijų grupavimas"
-msgid "Why this grouping"
-msgstr "Kodėl šis grupavimas"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Prašome sudėti gijas spausdintuve vadovaujantis grupavimo rezultatais."
@@ -5773,29 +6069,53 @@ msgstr "Patarimai:"
msgid "Current grouping of slice result is not optimal."
msgstr "Dabartinis pjaustymo rezultatų grupavimas nėra optimalus."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Sunaudojama %1% g daugiau gijos ir atliekama %2% keitimų daugiau, lyginant su optimaliu grupavimu."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Sunaudojama %1% g daugiau gijos ir atliekamas %2% keitimas daugiau, lyginant su optimaliu grupavimu."
+msgstr[1] "Sunaudojama %1% g daugiau gijos ir atliekami %2% keitimai daugiau, lyginant su optimaliu grupavimu."
+msgstr[2] "Sunaudojama %1% g daugiau gijos ir atliekama %2% keitimų daugiau, lyginant su optimaliu grupavimu."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Sunaudojama %1% g daugiau gijos ir sutaupoma %2% keitimų, lyginant su optimaliu grupavimu."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Sunaudojama %1% g daugiau gijos ir sutaupomas %2% keitimas, lyginant su optimaliu grupavimu."
+msgstr[1] "Sunaudojama %1% g daugiau gijos ir sutaupomi %2% keitimai, lyginant su optimaliu grupavimu."
+msgstr[2] "Sunaudojama %1% g daugiau gijos ir sutaupoma %2% keitimų, lyginant su optimaliu grupavimu."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Sutaupoma %1% g gijos ir atliekama %2% keitimų daugiau, lyginant su optimaliu grupavimu."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Sutaupoma %1% g gijos ir atliekamas %2% keitimas daugiau, lyginant su optimaliu grupavimu."
+msgstr[1] "Sutaupoma %1% g gijos ir atliekami %2% keitimai daugiau, lyginant su optimaliu grupavimu."
+msgstr[2] "Sutaupoma %1% g gijos ir atliekama %2% keitimų daugiau, lyginant su optimaliu grupavimu."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Sutaupoma %1% g gijos ir %2% keitimų, lyginant su vieno purkštuko spausdintuvu."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Sutaupoma %1% g gijos ir %2% keitimas, lyginant su vieno purkštuko spausdintuvu."
+msgstr[1] "Sutaupoma %1% g gijos ir %2% keitimai, lyginant su vieno purkštuko spausdintuvu."
+msgstr[2] "Sutaupoma %1% g gijos ir %2% keitimų, lyginant su vieno purkštuko spausdintuvu."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Sutaupoma %1% g gijos ir atliekama %2% keitimų daugiau, lyginant su vieno purkštuko spausdintuvu."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Sutaupoma %1% g gijos ir atliekamas %2% keitimas daugiau, lyginant su vieno purkštuko spausdintuvu."
+msgstr[1] "Sutaupoma %1% g gijos ir atliekami %2% keitimai daugiau, lyginant su vieno purkštuko spausdintuvu."
+msgstr[2] "Sutaupoma %1% g gijos ir atliekama %2% keitimų daugiau, lyginant su vieno purkštuko spausdintuvu."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Sunaudojama %1% g daugiau gijos ir sutaupoma %2% keitimų, lyginant su vieno purkštuko spausdintuvu."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Sunaudojama %1% g daugiau gijos ir sutaupomas %2% keitimas, lyginant su vieno purkštuko spausdintuvu."
+msgstr[1] "Sunaudojama %1% g daugiau gijos ir sutaupomi %2% keitimai, lyginant su vieno purkštuko spausdintuvu."
+msgstr[2] "Sunaudojama %1% g daugiau gijos ir sutaupoma %2% keitimų, lyginant su vieno purkštuko spausdintuvu."
msgid "Set to Optimal"
msgstr "Nustatyti į optimalų"
@@ -5952,11 +6272,60 @@ msgstr "Padidinti / sumažinti redagavimo plotą"
msgid "Sequence"
msgstr "Seka"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Plokštės masės centras"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Dalies masės centras"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Atramų masės centras"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Surinkinio masės centras"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Objekto masės centras"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Užbaigtas spaudinys"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Atspausdinta iki %1% sluoksnio"
+
+# AI Translated
+msgid "Weight"
+msgstr "Svoris"
+
+msgid "Volume"
+msgstr "Tūris"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Centras ribojančiame gretasienyje"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Ribojančio gretasienio dydis"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Inercijos momentas"
+
msgid "Object selection"
msgstr "Objekto pasirinkimas"
-msgid "number keys"
-msgstr "skaičių klavišai"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "1~16 skaičių klavišai"
msgid "Number keys can quickly change the color of objects"
msgstr "Skaičių klavišais galima greitai pakeisti objektų spalvas"
@@ -6167,9 +6536,20 @@ msgstr "Ašys"
msgid "Gridlines"
msgstr "Tinklelio linijos"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Etiketės (Užrašai)"
+# AI Translated
+msgid "Center of mass"
+msgstr "Masės centras"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Rodyti neapdorotą G-code (tik juostiniams spausdintuvams)"
+
# AI Translated
msgid "Move section plane"
msgstr "Perkelti pjūvio plokštumą"
@@ -6219,7 +6599,7 @@ msgid "Size:"
msgstr "Dydis:"
# AI Translated
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Rasta G-code trajektorijų konfliktų %d sluoksnyje, Z = %.2lfmm. Prašome labiau atskirti konfliktuojančius objektus (%s <-> %s)."
@@ -6244,22 +6624,18 @@ msgstr "%d įrankis"
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Gija %s yra įstatyta į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo sritį."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Gijos %s yra įstatytos į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo sritį."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "Gija %s yra įstatyta į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo sritį."
+msgstr[1] "Gijos %s yra įstatytos į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo sritį."
+msgstr[2] "Gijos %s yra įstatytos į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo sritį."
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Gija %s yra įstatyta į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo aukštį."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Gijos %s yra įstatytos į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo aukštį."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "Gija %s yra įstatyta į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo aukštį."
+msgstr[1] "Gijos %s yra įstatytos į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo aukštį."
+msgstr[2] "Gijos %s yra įstatytos į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo aukštį."
msgid "Open wiki for more information."
msgstr "Atidaryti „wiki“ puslapį, norint gauti daugiau informacijos."
@@ -6267,9 +6643,13 @@ msgstr "Atidaryti „wiki“ puslapį, norint gauti daugiau informacijos."
msgid "Only the object being edited is visible."
msgstr "Matomas tik redaguojamas objektas."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Gijų %s negalima spausdinti tiesiai ant šios plokštės paviršiaus."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "Gijos %s negalima spausdinti tiesiai ant šios plokštės paviršiaus."
+msgstr[1] "Gijų %s negalima spausdinti tiesiai ant šios plokštės paviršiaus."
+msgstr[2] "Gijų %s negalima spausdinti tiesiai ant šios plokštės paviršiaus."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "Mišinyje aptiktos PLA ir PETG gijos. Norėdami užtikrinti spausdinimo kokybę, pakoreguokite parametrus pagal „Wiki“ vadovą."
@@ -6392,27 +6772,20 @@ msgstr "Paruošimas"
msgid "Preview"
msgstr "Peržiūra"
-msgid "Device"
-msgstr "Įrenginys"
-
-msgid "Multi-device"
-msgstr "Kelių įrenginių valdymas (Multi-device)"
-
msgid "Project"
msgstr "Projektas"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Įrenginys (Web)"
-
msgid "Yes"
msgstr "Taip"
msgid "No"
msgstr "Ne"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "bus uždarytas prieš sukuriant naują modelį. Ar norite tęsti?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s bus uždarytas prieš sukuriant naują modelį. Ar norite tęsti?"
msgid "Print all"
msgstr "Spausdinti viską"
@@ -6458,6 +6831,10 @@ msgstr "Nustatymų vedlys"
msgid "Show Configuration Folder"
msgstr "Rodyti konfigūravimo katalogą"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Grąžinti gijų profilius, kuriuos profilių atnaujinimas pašalino iš spausdintuvų, kuriems jie buvo sukurti"
+
msgid "Troubleshoot Center"
msgstr "Pagalbos centras"
@@ -6700,6 +7077,14 @@ msgstr "Rodyti tinklelio linijas"
msgid "Show Gridlines on plate"
msgstr "Rodyti tinklelio linijas ant plokštės"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Rodyti IDEX/IQEX spausdinimo galvutę"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "G-code peržiūroje rodyti IDEX/IQEX spausdinimo galvutės vaizdą aplink kiekvieną aktyvų purkštuką."
+
msgid "Reset Window Layout"
msgstr "Atstatyti lango išdėstymą"
@@ -6763,8 +7148,9 @@ msgstr "Temperatūros kalibravimas"
msgid "Max flowrate"
msgstr "Maksimalus tūrinis srautas"
+# AI Translated
msgid "Pressure advance"
-msgstr "Slėgio kompensavimas (Pressure Advance)"
+msgstr "Pressure Advance"
msgid "Flow ratio"
msgstr "Srauto santykis"
@@ -7334,6 +7720,8 @@ msgstr "Įvertinti"
msgid "Calculating..."
msgstr "Skaičiuojama..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Kamera"
@@ -7415,9 +7803,13 @@ msgstr "Atsisiunčiama..."
msgid "Cloud Slicing..."
msgstr "Sluoksniavimas debesyje..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "Debesies sluoksniavimo eilėje priekyje yra %s užduotys (-ių)."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "Debesies sluoksniavimo eilėje prieš jus yra %d užduotis."
+msgstr[1] "Debesies sluoksniavimo eilėje prieš jus yra %d užduotys."
+msgstr[2] "Debesies sluoksniavimo eilėje prieš jus yra %d užduočių."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7448,6 +7840,11 @@ msgstr "Tai turi įtakos tik spausdinimo metu"
msgid "Silent"
msgstr "Tylus"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Standartinis"
+
msgid "Sport"
msgstr "Sportinis"
@@ -7504,17 +7901,29 @@ msgstr "Įkelti paveikslėlius"
msgid "Number of images successfully uploaded"
msgstr "Sėkmingai įkeltų vaizdų skaičius"
-msgid " upload failed"
-msgstr " įkėlimas nepavyko"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "%s įkėlimas nepavyko"
-msgid " upload config prase failed\n"
-msgstr " nepavyko apdoroti įkėlimo konfigūracijos\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "%s: nepavyko apdoroti įkėlimo konfigūracijos"
-msgid " No corresponding storage bucket\n"
-msgstr " Nėra atitinkamos saugyklos talpyklos\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: nėra atitinkamos saugyklos talpyklos"
-msgid " cannot be opened\n"
-msgstr " nepavyko atidaryti\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "Nepavyko atidaryti %s"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7532,26 +7941,22 @@ msgstr "Įkėlimas nepavyko\n"
msgid "Obtaining instance_id failed\n"
msgstr "Nepavyko gauti „instance_id“\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Nepavyko įkelti jūsų komentaro dėl šių priežasčių:\n"
-"\n"
-" klaidos kodas: "
-
-msgid "error message: "
-msgstr "klaidos pranešimas: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Jūsų komentaro nepavyko įkelti dėl šių priežasčių:\n"
"\n"
+" klaidos kodas: %d\n"
+" klaidos pranešimas: %s\n"
"\n"
-"Norite būti nukreipti į puslapį, kuriame galima įvertinti?"
+"Norite būti nukreipti į puslapį, kuriame galite įvertinti?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Nepavyko įkelti kai kurių jūsų vaizdų. Norite būti nukreipti į puslapį, kuriame galite įvertinti?"
@@ -8394,6 +8799,108 @@ msgstr "Matyti visus objekto nustatymus"
msgid "Material settings"
msgstr "Medžiagos nustatymai"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Kiekvienas režimas nurodo, kurios spausdinimo galvutės jame dalyvauja ir kokį vaidmenį atlieka kiekviena. Spustelėkite įrankio mygtuką, kad perjungtumėte jo vaidmenį — užveskite žymeklį ant spalvos žemiau, kad sužinotumėte, ką atlieka kiekvienas vaidmuo."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Pridėti režimą"
+
+# AI Translated
+msgid "Tools"
+msgstr "Įrankiai"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Kaip režimas pavadintas plokštės IDEX/IQEX režimo pasirinkimo sąraše. Privaloma — režimo be pavadinimo pasirinkti negalima."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Kurios spausdinimo galvutės dalyvauja režime ir kokį vaidmenį atlieka kiekviena. Spustelėkite langelį, kad perjungtumėte jo vaidmenį."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code, vykdomas spausdinimo pradžioje, kad spausdintuvas būtų perjungtas į šį režimą (pavyzdžiui, Klipper SET_PRINT_MODE iškvietimas). Pjaustyklė generuoja tik pagrindinio (Primary) įrankio trajektorijas; kitus įrankius valdo programinė aparatinė įranga."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Neaktyvus"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Pagrindinis"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Kopija"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Veidrodis"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Valdo visas sluoksniuotas trajektorijas. Visada įrankis 0 — parinktimi „Įrankio 0 padėtis“ aukščiau pasirinkite, kurį pagrindo kampą jis užima. Jo negalima perkelti tinklelyje."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Seka pagrindinį (Primary) įrankį programinės aparatinės įrangos lygmeniu ir spausdina tas pačias trajektorijas, perstumtas į savo zoną."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Seka pagrindinį (Primary) įrankį programinės aparatinės įrangos lygmeniu ir spausdina tas pačias trajektorijas, atspindėtas per ribą tarp dviejų zonų."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Pažymi pagrindinio (Primary) įrankio portale esantį įrankį kaip jo daugiaspalvio spausdinimo partnerį. Būtina, kad porinių portalų režimuose būtų galima spausdinti keliomis spalvomis."
+
+# AI Translated
+msgid "Primary"
+msgstr "Pagrindinis"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Režimo pavadinimas (privaloma)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Šio lygiagretaus režimo pavadinimas, rodomas plokštės IDEX/IQEX režimo pasirinkimo sąraše. Projekte saugomas pagal pavadinimą, todėl pervadinus režimą, kurį jau naudoja plokštės, jos grįžta į režimą „Pagrindinis“. Negali būti tuščias — tuščias pavadinimas pakeičiamas sugeneruotu."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code, išvedamas vieną kartą spausdinimo, kuriame naudojamas šis režimas, pradžioje, prieš įrenginio pradžios G-code. Čia spausdintuvas perjungiamas į atitinkamą programinės aparatinės įrangos režimą — pavyzdžiui, Klipper SET_PRINT_MODE iškvietimu arba RepRapFirmware M567 — nes pjaustyklė generuoja tik pagrindinio (Primary) įrankio trajektorijas, o kopijos (Copy) / veidrodžio (Mirror) įrankius valdo programinė aparatinė įranga. Palaikomi kintamieji; norėdami juos peržiūrėti, naudokite redagavimo mygtuką. Palikite tuščią, jei režimui nereikia programinės aparatinės įrangos sąrankos."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Redaguoti G-code / naršyti kintamuosius"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Pašalinti režimą"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Atmesti šio seanso metu atliktus šio režimo pakeitimus (grąžinti išsaugotą reikšmę)"
+
msgid "Remove current plate (if not last one)"
msgstr "Pašalinti dabartinę plokštę (jei ji ne paskutinė)"
@@ -8418,12 +8925,33 @@ msgstr "Taisyti dabartinės plokštės pavadinimą"
msgid "Move plate to the front"
msgstr "Perkelti plokštę į priekį"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX režimas: %1% (proceso profilis: %2%) (kairysis spustelėjimas – perjungti, dešinysis – meniu)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX režimas: %1% (kairysis spustelėjimas – perjungti, dešinysis – meniu)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Įspėjimas: šioje plokštėje naudojamas lygiagretus IDEX/IQEX režimas su kelių medžiagų objektais. Tęskite atsargiai — patikrinkite, ar jūsų G-code teisingai apdoroja šį derinį."
+
msgid "Customize current plate"
msgstr "Individualizuoti esamą plokštę"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "%s purkštukas negali spausdinti %s."
+msgid "The left nozzle cannot print %s."
+msgstr "Kairysis purkštukas negali spausdinti %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "Dešinysis purkštukas negali spausdinti %s."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8435,14 +8963,19 @@ msgstr ""
"Spausdinant nerekomenduojama maišyti %1% su %2%.\n"
"\n"
-msgid " nozzle"
-msgstr " purkštukas"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr ""
-"Su %1% nerekomenduojama spausdinti šių gijų: %2%\n"
-"\n"
+msgid "%1%mm %2% nozzle"
+msgstr "%1% mm %2% purkštukas"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Su %1% nerekomenduojama spausdinti šia gija: %2%\n"
+msgstr[1] "Su %1% nerekomenduojama spausdinti šiomis gijomis: %2%\n"
+msgstr[2] "Su %1% nerekomenduojama spausdinti šiomis gijomis: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr ""
@@ -8455,9 +8988,11 @@ msgstr ""
"%1% su %2%\n"
"\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " plokštė %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Sluoksniuojama plokštė %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Netinkamas pavadinimas. Neleidžiami simboliai:"
@@ -8492,12 +9027,6 @@ msgstr "AMS (1 lizdas)"
msgid "Not installed"
msgstr "Neįdiegta"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "Programinė įranga nepalaiko skirtingo skersmens purkštukų naudojimo vienam spausdinimui. Jei kairysis ir dešinysis purkštukai skiriasi, galima spausdinti tik su viena galvute. Patvirtinkite, kurį purkštuką norite naudoti šiam projektui."
-
-msgid "Switch diameter"
-msgstr "Pakeisti skersmenį"
-
msgid "Configuration incompatible"
msgstr "Nesuderinama konfigūracija"
@@ -8579,6 +9108,10 @@ msgstr "Mišri gija"
msgid "Remove last mixed filament"
msgstr "Pašalinti paskutinę mišrią giją"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Pašalinti visas mišrias gijas"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Pridėti mišrią giją"
@@ -8601,6 +9134,14 @@ msgstr "Mišri gija turi sugadintų komponentų nuorodų"
msgid "Edit / Delete / Merge"
msgstr "Redaguoti / Ištrinti / Sujungti"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Pašalinti %1% mišrią giją?"
+msgstr[1] "Pašalinti visas %1% mišrias gijas?"
+msgstr[2] "Pašalinti visas %1% mišrių gijų?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Paskirties mišri gija naudoja šią fizinę giją kaip komponentą. Sujungus ši fizinė gija bus pašalinta ir mišri gija gali tapti netinkama. Tęsti?"
@@ -8675,9 +9216,6 @@ msgstr "Įkeliamas failas: %s"
msgid "Load 3MF"
msgstr "Įkelti 3MF"
-msgid "BambuStudio Project"
-msgstr "„BambuStudio“ projektas"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "3MF nepalaikomas Orca Slicer. Įkeliami tik geometrijos duomenys."
@@ -8707,17 +9245,6 @@ msgstr "Geriau jau atnaujinkite savo programinę įrangą\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "3MF failo versija %s yra naujesnė nei %s versija %s. Siūloma atnaujinti jūsų programinę įrangą."
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "3MF failą sukūrė „BambuStudio“ (versija %s), kuri yra naujesnė už suderinamą versiją %s. Rasta nepažįstamų nustatymų:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "3MF failą sukūrė „BambuStudio“ (versija %s), kuri yra naujesnė už suderinamą versiją %s. Kai kurie nustatymai gali būti nevisiškai suderinami."
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "3MF failą sukūrė „BambuStudio“. Kai kurie nustatymai gali skirtis nuo „OrcaSlicer“ nustatymų."
-
msgid "Invalid values found in the 3MF:"
msgstr "3MF rasti netinkami duomenys:"
@@ -8890,6 +9417,14 @@ msgstr "Išjungti automatinį nuleidimą, kad būtų išsaugota Z pozicija?\n"
msgid "Object with floating parts was detected"
msgstr "Aptiktas objektas su ore kabančiomis dalimis"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Neįmanoma sluoksniuoti: objektas užeina ant srities, rezervuotos IDEX/IQEX lygiagrečiam spausdinimui (antrinės zonos arba vežimėlio prošvaisos juostos pagrindinėje zonoje)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Neįmanoma sluoksniuoti: valymo bokštas užeina ant srities, rezervuotos IDEX/IQEX lygiagrečiam spausdinimui (antrinės zonos arba vežimėlio prošvaisos juostos pagrindinėje zonoje)."
+
msgid "Another export job is running."
msgstr "Vyksta kitas eksportavimo procesas."
@@ -8945,8 +9480,9 @@ msgstr "Pakeisti tūriai"
msgid "Please select a file"
msgstr "Prašome pasirinkti failą"
-msgid "Do you want to replace it"
-msgstr "Ar norite jį pakeisti"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Ar norite jį pakeisti?"
msgid "Message"
msgstr "Pranešimas"
@@ -8976,6 +9512,50 @@ msgstr "Netinkami duomenys"
msgid "Slicing Canceled"
msgstr "Sluoksniavimas atšauktas"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Pagrindo temperatūros konfliktas: T%d (%s) nustato pagrindo temperatūrą %d℃ — T%d (%s) reikia %d℃. Pagrindą valdo pagrindinis įrankis; antriniai įrankiai spausdina tokia temperatūra, kokią jis nustato."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Gijų tipų neatitikimas: T%d naudoja %s, o T%d naudoja %s. Šių medžiagų reikalavimai nesuderinami, todėl jos nėra skirtos spausdinti kartu."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"Plokštėje %d įjungtas lygiagretus IDEX/IQEX režimas, kuriame aptiktos šios problemos:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Tęsti sluoksniavimą?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "IDEX/IQEX lygiagretaus režimo įspėjimas"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Daugiau nerodyti šių įspėjimų"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Plokštė %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Aptiktos šios IDEX/IQEX lygiagretaus režimo problemos:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Tinklo įskiepis sėkmingai pakeistas."
@@ -9009,8 +9589,8 @@ msgid "Sync now"
msgstr "Sinchronizuoti dabar"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Negalima atšaukti ar perdaryti, kol vykdoma operacija. Pirmiausia ją sustabdykite."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Negalima atšaukti ar perdaryti, kol vykdoma operacija. Sustabdykite operaciją arba palaukite, kol ji baigsis, ir bandykite dar kartą."
# AI Translated
msgid ""
@@ -9081,6 +9661,14 @@ msgstr "Atsisiųsti nepavyko. Failo dydžio išimtis."
msgid "Project downloaded %d%%"
msgstr "Projektas atsisiųstas %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"„PA linija (Pressure Advance)“ ir „PA raštas (Pressure Advance)“ testai juostiniuose spausdintuvuose dar neįjungti.\n"
+"Vietoj jų naudokite „PA bokštelis“ metodą."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Pressure Advance testas"
@@ -9088,11 +9676,15 @@ msgstr "Pressure Advance testas"
msgid "INFO:"
msgstr "INFORMACIJA:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Kalibravimui nepateikti jokie pagreičiai. Naudokite numatytąją pagreičio vertę "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Kalibravimui nepateikti jokie pagreičiai. Naudokite numatytąją pagreičio vertę %1% mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Kalibravimo greičiai nenumatyti. Naudokite numatytąjį optimalų greitį "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Kalibravimui nepateikti jokie greičiai. Naudokite numatytąjį optimalų greitį %1% mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9107,6 +9699,15 @@ msgstr "Orca YOLO srauto kalibravimas"
msgid "Flowrate Test - Pass%d"
msgstr "Srauto testas – %d etapas"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Juostiniam spausdintuvui nėra temperatūros bokštelio intervalui nuo %1% iki %2%℃. Naudokite intervalą, kurį apima bokštelio modeliai, pavyzdžiui, nuo 230 iki 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Temperatūros bokštelis"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Purkštuko temperatūros testas"
@@ -9130,12 +9731,16 @@ msgstr "Posūkių įveikimo testas"
msgid "Import SLA archive"
msgstr "Importuoti SLA archyvą"
-msgid "The selected file"
-msgstr "Pasirinktame faile"
-
# AI Translated
-msgid "Does not contain valid G-code."
-msgstr "Jame nėra galiojančio G-code."
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Pasirinktame faile:\n"
+"%1%\n"
+"nėra tinkamo G-code."
# AI Translated
msgid "An Error has occurred while loading the G-code file."
@@ -9413,6 +10018,27 @@ msgstr "Šiuo metu objekto konfigūracijos formos negalima naudoti su spausdintu
msgid "Not available"
msgstr "Neprieinama"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (nėra plokštės)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — gija nenukreipta\n"
+"Pridėkite ekstruderį skirtuke „Spausdintuvas“, kad ši galvutė turėtų gijos lizdą."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> gija %2%"
+
msgid "isometric"
msgstr "izometrinis"
@@ -9452,6 +10078,8 @@ msgstr "Europa"
msgid "North America"
msgstr "Šiaurės Amerika"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "Kita"
@@ -9526,11 +10154,17 @@ msgstr "Nepavyko iš naujo įkelti tinklo įskiepio. Paleiskite programą iš na
msgid "Reload Failed"
msgstr "Pakartotinis įkėlimas nepavyko"
-msgid "Associate"
-msgstr "Susietas"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Susieti %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "su \"OrcaSlicer\", kad \"Orca\" galėtų atverti modelius iš"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Susieti %s:// su OrcaSlicer, kad Orca galėtų atverti modelius iš %s"
msgid "Current Association: "
msgstr "Dabartinis susiejimas: "
@@ -9823,6 +10457,9 @@ msgstr "Prisiminti paskutinį spausdinimo veiksmą"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Jei įjungta, OrcaSlicer prisimins paskutinę spausdinimo mygtuko išskleidžiamajame sąraše pasirinktą parinktį (pvz., „Spausdinti“, „Eksportuoti supjaustytos plokštės failą“, „Eksportuoti G-code failą“) ir kitą kartą paleidus naudos ją kaip numatytąją."
+msgid "Camera"
+msgstr "Kamera"
+
msgid "Touchpad"
msgstr "Jutiklinis kilimėlis"
@@ -10248,6 +10885,9 @@ msgstr "Tinklo įskiepio versija"
msgid "Select the network plug-in version to use"
msgstr "Pasirinkite naudotiną tinklo įskiepio versiją"
+msgid "Associate"
+msgstr "Susietas"
+
msgid "Associate files to OrcaSlicer"
msgstr "Susieti failus su Orca Slicer"
@@ -10296,6 +10936,12 @@ msgstr "Rodyti nepalaikomus profilius"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Rodyti nesuderinamus / nepalaikomus profilius spausdintuvų ir gijų išskleidžiamuosiuose sąrašuose. Šių profilių pasirinkti negalima."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Experimental Features"
msgstr "Eksperimentinis"
@@ -10579,10 +11225,6 @@ msgstr "Talpinti 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Pasirinkite, kuriuos parametrus talpinti 3MF faile"
-# AI Translated
-msgid "Video Guide"
-msgstr "Vaizdo vadovas"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Mišri gija - talpinama kaip visuma, kai viršuje pasirinkta \"Įjungti\""
@@ -10747,6 +11389,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Paprastas"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s iš %s"
+
# AI Translated
msgid "Search actions"
msgstr "Ieškoti veiksmų"
@@ -10864,6 +11512,10 @@ msgstr "Rodyti išsamiau"
msgid "Hide details"
msgstr "Slėpti išsamią informaciją"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Žiniatinklio rodinys nepasiekiamas."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11148,9 +11800,13 @@ msgstr "Siuntimas nepavyko"
msgid "The name length exceeds the limit."
msgstr "Pavadinimas viršijo leistiną dydį."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Sunaudoja %d g gijos ir %d pakeitimais daugiau nei pasirinkus optimalų grupavimą."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Sunaudojama %d g daugiau gijos ir atliekamas %d keitimas daugiau, lyginant su optimaliu grupavimu."
+msgstr[1] "Sunaudojama %d g daugiau gijos ir atliekami %d keitimai daugiau, lyginant su optimaliu grupavimu."
+msgstr[2] "Sunaudojama %d g daugiau gijos ir atliekama %d keitimų daugiau, lyginant su optimaliu grupavimu."
# AI Translated
msgid "Right-Ext"
@@ -11240,6 +11896,10 @@ msgstr "Kai kurios gijos spausdinimo metu gali persijungti tarp ekstruderių. Ra
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "Šiame faile yra prie siūlų linkusios gijos. Geriausiai spausdinimo kokybei rekomenduojame perjungti purkštuko apsivėlimo aptikimą į automatinį režimą."
+# AI Translated
+msgid "Switch"
+msgstr "Perjungti"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Jei „Dinaminis srauto kalibravimas“ nustatytas į automatinį/įjungtą, sistema naudos rankinio kalibravimo reikšmę arba numatytąją reikšmę ir praleis srauto kalibravimo procesą. TPU gijos rankinį srauto kalibravimą galite atlikti puslapyje „Kalibravimas“."
@@ -11546,6 +12206,10 @@ msgstr "Skirtingų ekstruderių pavarų arba purkštukų tūrio tipų sinchroniz
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Sinchronizuoti parametrų pakeitimus su atitinkamais kito ekstruderio parametrais."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Parametrus su šia piktograma galima konfigūruoti kiekvienam purkštukui atskirai."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Paspauskite, norėdami atkurti visus nustatymus pagal paskutinį išsaugotą profilį."
@@ -11778,6 +12442,9 @@ msgstr "Gija spausdinimo elementams"
msgid "Ooze prevention"
msgstr "Ištekėjimo prevencija"
+msgid "Others"
+msgstr "Kita"
+
msgid "Special mode"
msgstr "Specialus režimas"
@@ -11824,8 +12491,11 @@ msgstr[2] ""
"Toliau nurodytose eilutėse %s yra rezervuotų raktažodžių.\n"
"Pašalinkite jas, kitaip G-code vaizdavimas ir spausdinimo laiko įvertinimas neveiks."
-msgid "Reserved keywords found"
-msgstr "Rasti rezervuoti raktažodžiai"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Rasti rezervuoti raktažodžiai: %1%"
msgid "Setting Overrides"
msgstr "Nustatymų perrašymas"
@@ -11965,7 +12635,16 @@ msgstr "Erdvė spausdinimui"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Pasirinkite tinklo agento modulį ryšiui su spausdintuvu palaikyti. Prieinami agentai užregistruojami paleidimo metu."
+# AI Translated
+msgid "Belt printer"
+msgstr "Juostinis spausdintuvas"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Mašinos koordinačių sistemos transformacijos"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Neteisinga parametro %1% reikšmė: %2%"
@@ -12091,9 +12770,29 @@ msgstr "Purkštuko skersmuo"
msgid "Wipe tower"
msgstr "Valymo bokštas"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Juostos valymo bokštas"
+
msgid "Single extruder multi-material parameters"
msgstr "Vieno ekstruderio kelių medžiagų parametrai"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "IDEX/IQEX konfigūracija"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Įspėjimai prieš sluoksniavimą"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Rodyti įspėjimo dialogo langą prieš sluoksniuojant, jei aptinkama IDEX/IQEX lygiagretaus režimo problemų (pagrindo temperatūrų konfliktų, gijų tipų neatitikimų, kelių medžiagų konfliktų). Įspėjimus galima išjungti pačiame dialogo lange. Jei juos išjungėte netyčia, vėl įjunkite čia."
+
+# AI Translated
+msgid "Modes"
+msgstr "Režimai"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Tai yra vieno ekstruderio ir kelių medžiagų spausdintuvas, todėl visų ekstruderių skersmenys bus nustatyti pagal naują vertę. Ar norite tęsti?"
@@ -12103,6 +12802,22 @@ msgstr "Sluoksnio aukščio ribos"
msgid "Z-Hop"
msgstr "Z šuolis"
+# AI Translated
+msgid "Front-left"
+msgstr "Priekinis kairysis"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Priekinis dešinysis"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Galinis kairysis"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Galinis dešinysis"
+
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
"\n"
@@ -12124,23 +12839,40 @@ msgstr "Naudoti pakeistą reikšmę"
msgid "Detached"
msgstr "Atjungta"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "Prie šio spausdintuvo priskirta: %1% ir %2%. Ištrynus spausdintuvą, šie profiliai taip pat bus ištrinti."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "Prie šio spausdintuvo yra priskirtas %d gijos profilis ir %d apdorojimo profilis. Ištrynus spausdintuvą, šie profiliai taip pat bus ištrinti."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d gijos profilis"
+msgstr[1] "%d gijos profiliai"
+msgstr[2] "%d gijos profilių"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d proceso profilis"
+msgstr[1] "%d proceso profiliai"
+msgstr[2] "%d proceso profilių"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Profilių, kuriuos paveldi kiti profiliai, ištrinti negalima!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
msgstr[0] "Šį profilį paveldi šis profilis."
msgstr[1] "Šį profilį paveldi šie profiliai."
msgstr[2] "Šį profilį paveldi šie profiliai."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% profilis"
+msgid "Delete Preset"
+msgstr "Ištrinti profilį"
# AI Translated
msgid "The following preset will be deleted too:"
@@ -12156,9 +12888,9 @@ msgstr ""
"Ar tikrai norite ištrinti pasirinktą profilį?\n"
"Jei šis profilis atitinka šiuo metu jūsų spausdintuve naudojamą giją, iš naujo nustatykite tos lizdo vietos gijos informaciją."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Ar tikrai norite %1% pasirinkto išankstinio nustatymo?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Ar tikrai norite ištrinti pasirinktą profilį?"
msgid "Select printers"
msgstr "Pasirinkite spausdintuvus"
@@ -12212,9 +12944,39 @@ msgid "Don't warn again for this preset"
msgstr "Daugiau neperspėti šiam profiliui"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# Needs human review: Nozzle flow type tag kept as the English abbreviation, as the catalog shows 'High Flow' in English; check whether a Lithuanian abbreviation is preferred.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Nozzle flow type tag kept as the English abbreviation, as the catalog shows 'High Flow' in English; check whether a Lithuanian abbreviation is preferred.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Nozzle flow type tag kept as the English abbreviation, as the catalog shows 'High Flow' in English; check whether a Lithuanian abbreviation is preferred.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Nozzle flow type tag kept as the English abbreviation, as the catalog shows 'High Flow' in English; check whether a Lithuanian abbreviation is preferred.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Nozzle flow type tag kept as the English abbreviation, as the catalog shows 'High Flow' in English; check whether a Lithuanian abbreviation is preferred.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
msgid "No modifications need to be copied."
msgstr "Nereikia kopijuoti jokių modifikacijų"
@@ -12413,6 +13175,12 @@ msgstr "Vieno iš profilių nėra"
msgid "Compared presets has different printer technology"
msgstr "Palyginti profiliai naudoja skirtingą spausdintuvo technologiją"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "„%1%“ vs „%2%“"
+
msgid "Add File"
msgstr "Pridėti failą"
@@ -12438,6 +13206,22 @@ msgstr "Komponentų ir medžiagų žiniaraštis (BOM)"
msgid "Assembly Guide"
msgstr "Surinkimo vadovas"
+# AI Translated
+msgid "Image files"
+msgstr "Paveikslėlių failai"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXT failai"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCEL failai"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDF failai"
+
msgid "Author"
msgstr "Autorius"
@@ -12637,9 +13421,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Bendras supresavimas (ramming)"
-msgid "Volume"
-msgstr "Tūris"
-
msgid "Ramming line"
msgstr "Supresavimo (ramming) linija"
@@ -12666,8 +13447,10 @@ msgstr "Daugiklis"
msgid "Flushing volumes for filament change"
msgstr "Išmetimo tūris keičiant gijas"
-msgid "Please choose the filament color"
-msgstr "Pasirinkite gijos spalvą"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "iš/į"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "Debesies agentas nepasiekiamas. Iš naujo paleiskite „OrcaSlicer“ ir bandykite vėl."
@@ -12688,6 +13471,137 @@ msgstr "Prisijungti nepavyko. Bandykite dar kartą."
msgid "parse json failed"
msgstr "nepavyko išanalizuoti json"
+# AI Translated
+msgid "Loading…"
+msgstr "Įkeliama…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Pasirinktiniai"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Pasisveikinkite su Orca Slicer"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer bus nustatyta per kelis žingsnius. Pradėkime!"
+
+msgid "Get Started"
+msgstr "Pradėti"
+
+msgid "Please select your login region"
+msgstr "Pasirinkite prisijungimo regioną"
+
+msgid "Finish"
+msgstr "Baigti"
+
+msgid "Printer Selection"
+msgstr "Spausdintuvo pasirinkimas"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Gamintojai"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Pasirinktinis spausdintuvas"
+
+msgid "Create"
+msgstr "Sukurti"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Ieškoti naujų spausdintuvų"
+
+msgid "At least one printer must be selected."
+msgstr "Turi būti pasirinktas bent vienas spausdintuvas."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Rasta naujų spausdintuvų"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Įdiegti nauji spausdintuvų gamintojai: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Rasta naujų spausdintuvų gamintojų, tačiau diegimas atšauktas."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Naujų spausdintuvų nerasta."
+
+msgid "Filament Selection"
+msgstr "Gijos pasirinkimas"
+
+msgid "System Filaments"
+msgstr "Sistemos gijos"
+
+msgid "Custom Filaments"
+msgstr "Pasirinktinės gijos"
+
+msgid "Create New"
+msgstr "Sukurti naują"
+
+msgid "Filament type"
+msgstr "Gijos tipas"
+
+msgid "Vendor"
+msgstr "Prekės ženklas"
+
+# AI Translated
+msgid "No items"
+msgstr "Elementų nėra"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Filtruoti elementus"
+
+# AI Translated
+msgid "Checked"
+msgstr "Pažymėti"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Nepažymėti"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Pasirinkti išfiltruotus"
+
+msgid "Clear all"
+msgstr "Išvalyti visus"
+
+msgid "At least one filament must be selected."
+msgstr "Turi būti pasirinkta bent viena gija."
+
+msgid "Do you want to use the default filament?"
+msgstr "Ar norite naudoti numatytąją giją?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Išjungia visas debesijos funkcijas, įskaitant „Orca Cloud“ profilių sinchronizavimą. Naudotojai, kurie nori dirbti visiškai neprisijungę prie tinklo, gali įjungti šią parinktį."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Pastaba: kai įjungtas slaptas režimas, jūsų naudotojo profilių atsarginės kopijos nebus kuriamos „Orca Cloud“ debesyje."
+
+msgid "Enable Stealth Mode."
+msgstr "Įjungti slaptą režimą."
+
+msgid "Proprietary Plugins"
+msgstr "Patentuoti papildiniai"
+
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Kai kurie spausdintuvų gamintojai reikalauja patentuotų papildinių, kad būtų galima bendrauti su jų spausdintuvais. Jei naudojate tokius spausdintuvus, pasirinkite atitinkamą papildinį."
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Atkreipkite dėmesį, kad OrcaSlicer šių papildinių nesukuria ir neprižiūri. Juos turėtumėte naudoti savo nuožiūra ir rizika."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Įdiegti Bambu tinklo papildinį"
+
msgid "[Action Required] "
msgstr "[Reikalingas veiksmas] "
@@ -12756,9 +13670,6 @@ msgstr "Veikia, kai aktyvus skirtuko „Paruošimas“ 3D vaizdas."
msgid "Select a part"
msgstr "Pasirinkti dalį"
-msgid "Select multiple objects"
-msgstr "Pasirinkite kelis objektus"
-
msgid "Select objects by rectangle"
msgstr "Pasirinkti objektus stačiakampio rėmeliu"
@@ -13088,26 +13999,21 @@ msgstr "Įterptinės programinės įrangos versija yra nenormali. Prieš spausdi
msgid "Extension Board"
msgstr "Išplėtimo plokštė"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Padalinti į %1% dalių"
-
msgid "Repair finished"
msgstr "Taisymas baigtas"
-msgid "Repair failed"
-msgstr "Taisymas nepavyko"
-
-msgid "Repair canceled"
-msgstr "Taisymas atšauktas"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Failo %1% kopijavimas į %2% nepavyko: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Atsisiunčiami nauji gamintojų profiliai: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Atsisiunčiamas naujas gamintojo profilis: %1%..."
+msgstr[1] "Atsisiunčiami nauji gamintojų profiliai: %1%..."
+msgstr[2] "Atsisiunčiami nauji gamintojų profiliai: %1%..."
# AI Translated
#, boost-format
@@ -13115,8 +14021,13 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Konfigūracijos paketas: %1% atnaujintas į %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Nepavyko atsisiųsti gamintojų profilių: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Nepavyko atsisiųsti gamintojo profilio: %1%"
+msgstr[1] "Nepavyko atsisiųsti gamintojų profilių: %1%"
+msgstr[2] "Nepavyko atsisiųsti gamintojų profilių: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Prieš atnaujinant konfigūraciją reikia patikrinti neišsaugotus pakeitimus."
@@ -13125,6 +14036,10 @@ msgstr "Prieš atnaujinant konfigūraciją reikia patikrinti neišsaugotus pakei
msgid "Open G-code file:"
msgstr "Atidaryti G-code failą:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Nepavyko sugeneruoti valymo bokšto, galbūt dėl tuščio pirmojo sluoksnio."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Vienas objektas turi tuščią pradinį sluoksnį ir jo negalima spausdinti. Iškirpkite apačią arba įjunkite atramas."
@@ -13147,9 +14062,61 @@ msgstr "Proceso ekstruzijos vaidmens keitimo G-code"
msgid "Filament change extrusion role G-code"
msgstr "Gijos ekstruzijos vaidmens keitimo G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"G-code eksportas į %1% nepavyko.\n"
+"Nepavyksta atidaryti failo rašymui."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "Aplanko %1% nėra."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"G-code eksportas į %1% nepavyko.\n"
+"Ar diskas pilnas?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Nepavyko pervardyti išvesties G-code failo iš %1% į %2%.\n"
+"Klaida: %3%\n"
+"Ar %1% užrakintas?"
+
msgid "No object can be printed. It may be too small."
msgstr "Negalima spausdinti jokio objekto. Jis gali būti per mažas."
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "IDEX/IQEX režimui „%1%“ pasirinktame spausdintuve nepriskirta jokių įrankių. Vietoj jo spausdinama režimu „Pagrindinis“. Priskirkite režimo įrankius skiltyje „Spausdintuvo nustatymai“ arba pasirinkite kitą režimą plokštės IDEX/IQEX mygtuku."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Šiai plokštei nustatytas IDEX/IQEX režimas „%1%“, kurio pasirinktas spausdintuvas neapibrėžia. Vietoj jo spausdinama režimu „Pagrindinis“. Pasirinkite režimą plokštės IDEX/IQEX mygtuku arba atkurkite režimą skiltyje „Spausdintuvo nustatymai“."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Netinkama miniatiūrų reikšmė:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Jūsų spaudinys yra labai arti valymo / paruošimo (priming) sričių. Įsitikinkite, kad nekils susidūrimo."
@@ -13196,6 +14163,10 @@ msgstr "Grupavimo klaida: %1% negalima įdėti į kairįjį purkštuką"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Grupavimo klaida: %1% negalima įdėti į dešinįjį purkštuką"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Nerastas tinkamas purkštukas. Patikrinkite purkštukų skaičių."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Grupavimo klaida rankiniame režime. Patikrinkite purkštukų skaičių arba pergrupuokite."
@@ -13215,6 +14186,18 @@ msgstr "keli susikirtimai su perimetru, panaudotas tik vienas (%1%)"
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "perimetras yra visiškai modifikatoriaus viduje, modifikatorius jam nepritaikytas (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "Modifikatorius %1% „%2%“ objekto „%3%“ apima visą perimetrą"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "Modifikatorius %1% „%2%“ objekto „%3%“ (iš viso %4%) apima visą perimetrą"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13229,9 +14212,47 @@ msgstr "objekto „%2%“ modifikatorius „%1%“ (iš viso %3%) neturėjo įta
msgid "Seam placement may differ from expected."
msgstr "Siūlės vieta gali skirtis nuo numatytos."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Vidinis tiltas"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() gavosi neigiamas tarpas. Ar nenustatėte per mažo išspaudimo pločio?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() gavosi neigiamas srautas. Ar nenustatėte per mažo išspaudimo pločio?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Nepavyko apskaičiuoti %1% linijos pločio. Nepavyksta gauti „%2%“ reikšmės."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Srautui Flow::with_spacing() pateiktas neteisingas tarpas, patikrinkite sluoksnio aukštį ir išspaudimo plotį"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Pasirinktas 3mf failas išsaugotas naujesne %1% versija ir yra nesuderinamas."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Pasirinktame 3MF yra objektas su nupieštomis FDM atramomis, sukurtas naujesne PrusaSlicer versija, todėl jis nesuderinamas."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Pasirinktame 3MF yra objektas su nupiešta siūle, sukurtas naujesne PrusaSlicer versija, todėl jis nesuderinamas."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Pasirinktame 3MF yra objektas, nupieštas keliomis medžiagomis, sukurtas naujesne PrusaSlicer versija, todėl jis nesuderinamas."
+
msgid "undefined error"
msgstr "neapibrėžta klaida"
@@ -13325,6 +14346,56 @@ msgstr "patvirtinimas nepavyko"
msgid "write callback failed"
msgstr "nepavyko vykdyti įrašymo atgalinio iškvietimo (write callback)"
+# AI Translated
+msgid "unknown error"
+msgstr "nežinoma klaida"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Daugiaspalviam spausdinimui IDEX/IQEX lygiagrečiuose režimuose kiekviena gija turi turėti savo atskirą fizinį ekstruderį. Dvi ar daugiau aktyvių gijų per spausdintuvo fizinių ekstruderių žemėlapį (MMU/AFC kolektorių) nukreiptos į tą pačią fizinę galvutę, o pavaldusis portalas to atkartoti negali."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "Aktyvus IDEX/IQEX režimas neapibrėžia pagrindinio įrankio, todėl daugiaspalvio spausdinimo suplanuoti negalima. Atverkite spausdintuvo nustatymų IDEX/IQEX režimų redaktorių ir vienam įrankiui priskirkite pagrindinio (Primary) vaidmenį."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Daugiaspalvis spausdinimas šiuo režimu nėra lygiagretaus spausdinimo atvejis — visi aktyvūs įrankiai yra viename portale, todėl nėra antro portalo, į kurį būtų kopijuojama ar atspindima. Norėdami spausdinti keliomis spalvomis viename portale, perjunkite plokštę į režimą „Pagrindinis“ arba apibrėžkite IDEX/IQEX režimą, į kurį įtraukti antrojo portalo įrankiai."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Daugiaspalviam spausdinimui IDEX/IQEX lygiagrečiuose režimuose pagrindinio įrankio portale reikia Span įrankio — be jo režimas neapibrėžia daugiaspalvio spausdinimo partnerio tame pačiame portale. Sumažinkite spaudinį iki vienos gijos, perjunkite į režimą „Pagrindinis“ arba atverkite spausdintuvo nustatymų IDEX/IQEX režimų redaktorių ir pažymėkite pagrindinio įrankio portale esantį įrankį kaip Span."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Šiame Span režime spalvomis spausdina tik %1%, tačiau gija %2% nenukreipta į jokį įrankį. Naudokite gijas, nukreiptas į %1%, arba perjunkite šią plokštę į režimą „Pagrindinis“."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Šiame Span režime spalvomis spausdina tik %1%, tačiau gija %2% nukreipta į T%3%. Naudokite gijas, nukreiptas į %1%, arba perjunkite šią plokštę į režimą „Pagrindinis“."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Nepavyko įkelti pasirinkto profilio: %1%\n"
+"\tPriežastis: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Nepavyko įkelti profilio failo: %1%\n"
+"\tPriežastis: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% yra per arti uždraustos srities, spausdinant gali įvykti susidūrimų."
@@ -13341,29 +14412,34 @@ msgstr "%1% yra per aukštas, todėl įvyks susidūrimai."
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "Modelio ir valymo bokšto tarpusavio padėtis neatitinka funkcijos \"Nėra retų sluoksnių\" reikalavimų. Pakoreguokite jų tarpusavio padėtį, sumažinkite modelio aukštį arba išjunkite parinktį \"Nėra retų sluoksnių\"."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " yra per arti uždraustosios zonos, spausdinant gali įvykti susidūrimų."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " yra per arti sulipimo aptikimo (clumping detection) zonos, spausdinant gali įvykti susidūrimų."
-
-msgid "Prime Tower"
-msgstr "Valymo bokštas (Prime tower)"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " yra per arti kitų, todėl gali įvykti susidūrimai.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " yra per arti uždraustosios zonos, todėl įvyks susidūrimai.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr ""
-" yra per arti sulipimo aptikimo zonos, todėl įvyks susidūrimai.\n"
-"\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% yra per arti sulipimo aptikimo (clumping detection) srities, spausdinant gali įvykti susidūrimų."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " yra iš dalies už spausdinimo srities ribų ir negali būti atspausdintas.\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "Valymo bokštas yra per arti kitų, todėl gali įvykti susidūrimai.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "Valymo bokštas yra per arti uždraustos srities, todėl įvyks susidūrimai.\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "Valymo bokštas yra per arti sulipimo aptikimo (clumping detection) srities, todėl įvyks susidūrimai.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "Valymo bokštas yra per arti uždraustos srities, spausdinant gali įvykti susidūrimų."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "Valymo bokštas yra per arti sulipimo aptikimo (clumping detection) srities, spausdinant gali įvykti susidūrimų."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "Valymo bokštas yra iš dalies už spausdinimo srities ribų ir negali būti atspausdintas.\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "Pasirinktos purkštuko temperatūros yra nesuderinamos. Kiekvienos gijos purkštuko temperatūra turi patekti į kitų gijų rekomenduojamos temperatūros diapazoną. Priešingu atveju gali užsikimšti purkštukas arba sugesti spausdintuvas."
@@ -13377,6 +14453,58 @@ msgstr "Jei vis tiek norite spausdinti, galite įjungti šią parinktį skiltyje
msgid "No extrusions under current settings."
msgstr "Pagal dabartinius nustatymus nėra išspaudimų."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Mišrios gijos IDEX/IQEX lygiagrečiuose režimuose nepalaikomos. Perjunkite šią plokštę į režimą „Pagrindinis“."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX režimas „%1%“ spausdina įrankiu T%2%, tačiau nė viena šios plokštės gija nėra priskirta sukonfigūruotam įrankiui. Priskirkite giją, įkeltą į T%2%, arba perjunkite šią plokštę į režimą „Pagrindinis“."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX režimas „%1%“ spausdina įrankiu T%2%, tačiau šios plokštės gijų įrankiai: %3%. Priskirkite giją, įkeltą į T%2%, arba perjunkite šią plokštę į režimą „Pagrindinis“."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Platforma nesuderinama su juostinio spausdintuvo režimu."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Apsauginis skydas nesuderinamas su juostinio spausdintuvo režimu."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "Juostiniame spausdintuve kraštas nesuderinamas su spiralinės vazos režimu. Išjunkite vieną iš jų."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Juosta pakreipta per stačiai kraštui, todėl kraštas nebus generuojamas."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Kraštas generuojamas tik tada, kai juosta pakreipta. Nustatykite juostos pokrypio kampą arba pašalinkite krašto nustatymą."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Juostiniai spausdintuvai palaiko tik išorinį ir vidinį kraštą. Kraštai „Automatiškai“, „Kampų fiksatoriai („Pelės ausys“)“ ir „Piešta“ spausdinami kaip „Tik išorinis kraštas“, naudojant parinktį „Krašto plotis“."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "„Tarpas tarp krašto ir objekto“ atskiria priekinį kraštą nuo objekto priekinės briaunos, kurią šis kraštas turi pritvirtinti. Kai naudojate parinktį „Priekinio krašto ilgis“, nustatykite tarpą lygų 0."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "„Priekinio krašto ilgis“ prailgina kraštą prieš kiekvieną objektą išilgai juostos, o „Išdėstyti“ šios vietos nerezervuoja. Palikite tarpus tarp objektų."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "Kraštas „Tik priekinė briauna“ taikomas juostiniams spausdintuvams. Šiame spausdintuve jis spausdinamas kaip įprastas išorinis kraštas."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Naudojama mišri gija su gradientu, tačiau 'Mišrios spalvos posluoksnis' yra išjungtas. Gradientas nebus atspausdintas."
@@ -13387,6 +14515,18 @@ msgstr "Sklandus pakadrinio filmavimo (timelapse) režimas nepalaikomas, kai įj
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "Sulipimo aptikimas (clumping detection) nepalaikomas, kai įjungta spausdinimo seka „pagal objektą“."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "Juostos valymo bokštas negeneruojamas, kai spausdinimo eiga yra „Objektas po objekto“; keičiant giją pravalymas nebus atliekamas."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "Juostos valymo bokštas įjungtas, tačiau projekte nėra valymo bokšto objekto; keičiant giją pravalymas nebus atliekamas. Atverkite projektą programoje, kad bokštas būtų sugeneruotas."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Projekte yra keli automatiškai valdomi juostos valymo bokštai. Iš naujo įkelkite plokštę arba išjunkite ir vėl įjunkite juostos valymo bokštą, kad jis būtų sugeneruotas iš naujo."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Vienu metu įjungus tikslų Z aukštį ir valymo bokštą, gali kilti pjaustymo klaidų."
@@ -13403,10 +14543,6 @@ msgstr "Spiralinės vazos režimas neveikia, kai objekte yra daugiau nei viena m
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Nors pats objektas %1% telpa į surinkimo tūrį, jis viršija maksimalų surinkimo tūrio aukštį dėl medžiagos susitraukimo kompensavimo."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "Objektas %1% viršija maksimalų galimą spausdinimo tūrio aukštį."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Nors pats objektas %1% telpa į spausdinimo tūrį, jo paskutinis sluoksnis viršija didžiausią spausdinimo tūrio aukštį."
@@ -13414,6 +14550,10 @@ msgstr "Nors pats objektas %1% telpa į spausdinimo tūrį, jo paskutinis sluoks
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Galbūt norėsite sumažinti modelio dydį arba pakeisti esamus spausdinimo nustatymus ir bandyti dar kartą."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "Objektas %1% viršija maksimalų galimą spausdinimo tūrio aukštį."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Kintamas sluoksnio aukštis nepalaikomas su \" Organinėmis atramomis\"."
@@ -13561,12 +14701,17 @@ msgstr ""
msgid "The precise wall option will be ignored for outer-inner or inner-outer-inner wall sequences."
msgstr "Tikslios sienelės (precise wall) parinktis bus ignoruojama esant išorinės–vidinės arba vidinės–išorinės–vidinės sienelių spausdinimo sekai."
+# AI Translated
msgid "The Adaptive Pressure Advance model for one or more extruders may contain invalid values."
-msgstr "Vieno ar kelių ekstruderių „Adaptive Pressure Advance“ modelis gali turėti netinkamų reikšmių."
+msgstr "Vieno ar kelių ekstruderių adaptyviojo Pressure Advance modelis gali turėti netinkamų reikšmių."
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "Gijų susitraukimas nenaudojamas, nes naudojamų gijų susitraukimas labai skiriasi."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "Spaudinys tuščias. Modelio negalima atspausdinti su dabartiniais spausdinimo nustatymais."
+
msgid "Generating skirt & brim"
msgstr "Generuojamas apvadas ir kraštas"
@@ -13587,6 +14732,17 @@ msgstr "Eksportuojamas G-code"
msgid "Generating G-code"
msgstr "Generuojamas G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Nepavyko apdoroti G-code failo %1% iš ankstesnio 3MF failo."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "Juostos valymo bokštas negali sugerti viso pravalymo tūrio: iš viso nepavyko pravalyti %1% mm³ (blogiausias sluoksnis: %2% mm³ ties %3% aukščiu). Spaudinyje gali matytis spalvų persimaišymas. Padidinkite juostos valymo bokšto plotį arba sumažinkite valymo tūrius."
+
msgid "Processing of the filename_format template failed."
msgstr "Nepavyko apdoroti šablono filename_format."
@@ -14041,18 +15197,19 @@ msgstr ""
"\n"
"Faktinis naudojamas tiltelio srautas apskaičiuojamas padauginus šią reikšmę iš gijos srauto koeficiento (filament flow ratio) ir objekto srauto koeficiento (jei jis nustatytas)."
+# AI Translated
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
-"Tiltelio linijos plotis. Jei išreikštas procentais (%), jis bus skaičiuojamas nuo purkštuko skersmens.\n"
-"Rekomenduojama naudoti su didesniu tiltelio tankiu arba išorinio tilto srauto koeficientu.\n"
+"Tilto linijos plotis. Jei išreikštas procentais (%), jis bus skaičiuojamas nuo purkštuko skersmens.\n"
+"Rekomenduojama naudoti su didesniu tilto tankiu arba išorinio tilto srauto koeficientu.\n"
"\n"
"Maksimali reikšmė yra 100 % arba purkštuko skersmuo.\n"
-"Nustačius 0, linijos plotas sutaps su vidinio vientiso užpildo (internal solid infill) pločiu."
+"Nustačius 0, linijos plotis sutaps su vidinio vientiso užpildo pločiu, o storų tiltų atveju – su purkštuko skersmeniu."
msgid "Internal bridge flow ratio"
msgstr "Vidinio tilto srauto koeficientas"
@@ -14318,6 +15475,7 @@ msgstr "Įjunkite šią parinktį, kad sulėtintumėte greitį spausdinant išky
msgid "Slow down for curled perimeters"
msgstr "Sulėtinti greitį riečiantis perimetrams"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
@@ -14333,34 +15491,35 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Įjunkite šią parinktį, kad sumažintumėte spausdinimo greitį vietose, kur perimetrai linkę riestis į viršų.\n"
"Pavyzdžiui, papildomas sulėtinimas bus taikomas spausdinant iškyšas ties aštriais kampais (kaip „Benchy“ laivelio priekis) – tai apsaugo nuo sluoksnių rietimosi, kuris linkęs kauptis per kelis sluoksnius.\n"
"\n"
"Rekomenduojama visada laikyti šią parinktį įjungtą, nebent spausdintuvo aušinimas yra itin galingas arba spausdinimo greitis toks mažas, kad perimetrų rietimasis nevyksta.\n"
-"Jei spausdinama dideliu išorinio perimetro greičiu, šis parametras lėtėjimo metu gali sukelti sienelių artefaktų (defektų), nes dėl didelių greičio šuolių ekstruderis gali nespėti sureguliuoti srauto pokyčio.\n"
+"Jei spausdinama dideliu išorinio perimetro greičiu, šis parametras lėtėjimo metu gali sukelti sienelių artefaktų, nes dėl didelių greičio šuolių ekstruderis gali nespėti sureguliuoti srauto pokyčio.\n"
"Pagrindinė tokių artefaktų priežastis dažniausiai yra netiksliai suderintas „Pressure Advance“ (PA) parametras, ypač jei naudojama didelė „PA smooth time“ reikšmė.\n"
"\n"
"Rekomendacijos įjungus šią parinktį:\n"
"1. Sumažinkite „Pressure Advance smooth time“ iki 0.015 - 0.02, kad ekstruderis greitai reaguotų į greičio pokyčius.\n"
"2. Padidinkite minimalų spausdinimo greitį, kad apribotumėte sulėtėjimo mastą ir sumažintumėte skirtumą tarp greitų bei lėtų segmentų.\n"
-"3. Jei artefaktai išlieka, įjunkite „Ekstruzijos srauto glotninimą“ (ERS), kad sušvelgintumėte srauto perėjimus.\n"
+"3. Jei artefaktai išlieka, įjunkite „Išstūmimo greičio išlyginimas“ (ERS), kad sušvelnintumėte srauto perėjimus.\n"
"\n"
-"Pastaba: kai ši parinktis įjungta, išsikišę perimetrai yra traktuojami kaip iškyšos, t. y. iškyšų greitis taikomas net ir tada, kai perimetras yra tiltelio dalis.\n"
-"Pavyzdžiui, kai perimetrai kyšo 100 % (apačioje nėra jokios palaikančios sienelės), bus taikomas būtent 100 % iškyšos greitis."
+"Pastaba: kai ši parinktis įjungta, išsikišę perimetrai yra traktuojami kaip iškyšos, t. y. iškyšų greitis taikomas net ir tada, kai perimetras yra tilto dalis.\n"
+"Pavyzdžiui, kai perimetrai kyšo 100 % (apačioje nėra jokios palaikančios sienelės), bus taikomas 75 % iškyšos greitis, apribotas tilto greičiu."
msgid "mm/s or %"
msgstr "mm/s arba %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
-"Išoriškai matomų tiltelio ekstruzijų greitis.\n"
+"Išoriškai matomų tilto ekstruzijų greitis.\n"
"\n"
-"Papildomai, jei funkcija „Sulėtinti greitį riesantis perimetrams“ yra išjungta arba įjungtas „Klasikinis iškyšų režimas“, šis greitis bus taikomas iškyšų sienelėms, kurių atrama yra mažesnė nei 13 % (nesvarbu, ar jos yra tiltelio, ar iškyšos dalis)."
+"Papildomai, jei funkcija „Sulėtinti greitį riečiantis perimetrams“ yra išjungta, šis greitis bus taikomas iškyšų sienelėms, kurių atrama yra mažesnė nei 13 % (nesvarbu, ar jos yra tilto, ar iškyšos dalis)."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Vidinių tiltelių spausdinimo greitis. Jei reikšmė nurodoma procentais, ji apskaičiuojama pagal „bridge_speed“ (tiltelių greitį). Numatytoji reikšmė – 150 %."
@@ -14368,21 +15527,70 @@ msgstr "Vidinių tiltelių spausdinimo greitis. Jei reikšmė nurodoma procentai
msgid "This is the distance from the model to the outermost brim line."
msgstr "Atstumas nuo modelio iki išorinės krašto linijos"
+# AI Translated
+msgid "Leading brim length"
+msgstr "Priekinio krašto ilgis"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Tik juostiniams spausdintuvams. Prailgina kraštą PRIEŠ objektą išilgai juostos, ties kiekviena žemyn nukreipta jo sąlyčio srities briauna – tiek ten, kur objektas pirmą kartą paliečia juostą, tiek ties bet kuria vėliau nusileidžiančia sala. Ši prijuostė paklojama ant juostos dar prieš objektui ją pasiekiant, todėl priekinė briauna turi už ko laikytis – už jau prilipusio pagrindo.\n"
+"\n"
+"Matuojama juostos paviršiuje ir pridedama prie „Krašto plotis“: kraštas siekia „Tarpas tarp krašto ir objekto“ + „Priekinio krašto ilgis“ + „Krašto plotis“ prieš objektą. Nustatykite „Tarpas tarp krašto ir objekto“ lygų 0, kitaip prijuostė nesilies su objektu, kurį turi pritvirtinti.\n"
+"\n"
+"Ant pakreiptos juostos kiekvienas sluoksnis pakloja vieną krašto juostelę, todėl susidariusio krašto lakšto storį lemia srautas, o ne sluoksnio aukštis. Jam derinti naudokite „Krašto srauto santykis“.\n"
+"\n"
+"Nustatykite 0, kad išjungtumėte."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Papildomas krašto plotis"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Tik juostiniams spausdintuvams. Praplatina kraštą Į ŠONUS, skersai juostos, neprailgindamas jo toliau prieš objektą ar už jo. Naudokite, kai daliai reikia daugiau sukibimo per visą jos ilgį, nei suteikia vien „Krašto plotis“.\n"
+"\n"
+"Matuojama juostos paviršiuje ir pridedama prie „Krašto plotis“: kraštas siekia „Tarpas tarp krašto ir objekto“ + „Krašto plotis“ + „Papildomas krašto plotis“ į abi objekto puses. Norėdami prailginti kraštą prieš objektą, naudokite „Priekinio krašto ilgis“.\n"
+"\n"
+"Nustatykite 0, kad išjungtumėte."
+
+# AI Translated
msgid "Brim type"
-msgstr "Apvado tipas"
+msgstr "Krašto tipas"
+# AI Translated
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
-msgstr "Valdo apvado generavimą modelio išorinėje ir (arba) vidinėje pusėje. „Auto“ režimu apvado plotis išanalizuojamas ir apskaičiuojamas automatiškai."
+msgstr "Valdo krašto generavimą modelio išorinėje ir (arba) vidinėje pusėje. „Auto“ režimu krašto plotis išanalizuojamas ir apskaičiuojamas automatiškai."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Tik priekinė briauna"
+
+# AI Translated
msgid "Brim-object gap"
-msgstr "Tarpas tarp apvado ir objekto"
+msgstr "Tarpas tarp krašto ir objekto"
msgid "This creates a gap between the innermost brim line and the object and can make the brim easier to remove."
msgstr "Sukuriamas tarpas tarp vidinės krašto linijos ir objekto, todėl galima lengviau jį atskirti."
+# AI Translated
msgid "Brim flow ratio"
-msgstr "Apvado srauto koeficientas"
+msgstr "Krašto srauto santykis"
+# AI Translated
msgid ""
"This factor affects the amount of material for brims.\n"
"\n"
@@ -14390,53 +15598,61 @@ msgid ""
"\n"
"Note: The resulting value will not be affected by the first-layer flow ratio."
msgstr ""
-"Šis koeficientas turi įtakos pado apvadų medžiagos kiekiui.\n"
+"Šis koeficientas turi įtakos kraštų medžiagos kiekiui.\n"
"\n"
-"Faktinis apvado srautas apskaičiuojamas padauginus šią reikšmę iš gijos srauto koeficiento ir objekto srauto koeficiento (jei jis nustatytas).\n"
+"Faktinis krašto srautas apskaičiuojamas padauginus šią reikšmę iš gijos srauto santykio ir objekto srauto santykio (jei jis nustatytas).\n"
"\n"
-"Pastaba: gautai reikšmei pirmojo sluoksnio srauto koeficientas įtakos neturės."
+"Pastaba: gautai reikšmei pirmojo sluoksnio srauto santykis įtakos neturės."
+# AI Translated
msgid "Brim follows compensated outline"
-msgstr "Apvadas atitinka kompensuotą kontūrą"
+msgstr "Kraštas atitinka kompensuotą kontūrą"
+# AI Translated
msgid ""
"When enabled, the brim is aligned with the first-layer perimeter geometry after Elephant Foot Compensation is applied.\n"
"This option is intended for cases where Elephant Foot Compensation significantly alters the first-layer footprint.\n"
"\n"
"If your current setup already works well, enabling it may be unnecessary and can cause the brim to fuse with upper layers."
msgstr ""
-"Kai įjungta, apvadas sulygiuojamas su pirmojo sluoksnio perimetro geometrija jau pritaikius „Dramblio pėdos kompensaciją“ (Elephant Foot Compensation).\n"
-"\n"
+"Kai įjungta, kraštas sulygiuojamas su pirmojo sluoksnio perimetro geometrija jau pritaikius „Dramblio pėdos kompensaciją“ (Elephant Foot Compensation).\n"
"Ši parinktis skirta atvejams, kai dramblio pėdos kompensacija stipriai keičia pirmojo sluoksnio kontūrus.\n"
"\n"
-"Jei dabartinė sąranka veikia gerai, šios parinkties įjungti nebūtina, nes apvadas gali per stipriai susilieti su aukštesniais sluoksniais."
+"Jei dabartinė sąranka veikia gerai, šios parinkties įjungti nebūtina, nes kraštas gali per stipriai susilieti su aukštesniais sluoksniais."
+# AI Translated
msgid "Combine brims"
-msgstr "Apjungti apvadus"
+msgstr "Apjungti kraštus"
+# AI Translated
msgid "Combine multiple brims into one when they are close to each other. This can improve brim adhesion."
-msgstr "Apjungia kelis arti vienas kito esančius apvadus į vieną. Tai gali pagerinti apvado sukibimą su pagrindu."
+msgstr "Apjungia kelis arti vienas kito esančius kraštus į vieną. Tai gali pagerinti krašto sukibimą su pagrindu."
+# AI Translated
msgid "Brim ears"
-msgstr "Apvado „ausys“ (Brim ears)"
+msgstr "Krašto „ausys“"
+# AI Translated
msgid "Only draw brim over the sharp edges of the model."
-msgstr "Generuoti apvadą tik aplink aštrius modelio kampus (kraštus)."
+msgstr "Generuoti kraštą tik aplink aštrius modelio kampus."
+# AI Translated
msgid "Brim ear max angle"
-msgstr "Maksimalus apvado „ausies“ kampas"
+msgstr "Maksimalus krašto „ausies“ kampas"
+# AI Translated
msgid ""
"Maximum angle to let a brim ear appear.\n"
"If set to 0, no brim will be created.\n"
"If set to ~180, brim will be created on everything but straight sections."
msgstr ""
-"Maksimalus kampas, kuriam esant dar generuojama apvado „ausis“.\n"
-"Nustačius 0, apvadas nebus kuriamas.\n"
-"Nustačius ~180, apvadas bus kuriamas visur, išskyrus visiškai tiesias atkarpas."
+"Maksimalus kampas, kuriam esant dar generuojama krašto „ausis“.\n"
+"Nustačius 0, kraštas nebus kuriamas.\n"
+"Nustačius ~180, kraštas bus kuriamas visur, išskyrus visiškai tiesias atkarpas."
+# AI Translated
msgid "Brim ear detection radius"
-msgstr "Apvado „ausų“ aptikimo spindulys"
+msgstr "Krašto „ausų“ aptikimo spindulys"
msgid ""
"The geometry will be decimated before detecting sharp angles. This parameter indicates the minimum length of the deviation for the decimation.\n"
@@ -14447,7 +15663,7 @@ msgstr ""
# AI Translated
msgid "Brim ears outer only"
-msgstr "Apvado „ausys“ tik išorėje"
+msgstr "Krašto „ausys“ tik išorėje"
# AI Translated
msgid "Generate mouse ears only on the outer contour of the model, excluding holes and enclosed sections."
@@ -14669,6 +15885,9 @@ msgstr ""
"2. Ribotas filtravimas – sukuria vidinius tiltelius tik ant stipriai nuožulnių paviršių, išvengiant perteklinio jų generavimo. Puikiai tinka sudėtingiems modeliams.\n"
"3. Be filtravimo – sukuria vidinius tiltelius ties kiekviena potencialia vidine iškyša. Naudinga modeliams su itin nuožulniais viršutiniais paviršiais, tačiau dažniausiai sugeneruoja per daug nereikalingų tiltelių."
+msgid "Filter"
+msgstr "Filtras"
+
msgid "Limited filtering"
msgstr "Ribotas filtravimas"
@@ -14686,7 +15905,7 @@ msgid "End G-code"
msgstr "Pabaigos G-code"
# AI Translated
-msgid "Add end G-Code when finishing the entire print."
+msgid "Add end G-code when finishing the entire print."
msgstr "Pabaigos G-code, vykdomas baigus visą spausdinimą."
# AI Translated
@@ -14878,8 +16097,9 @@ msgstr "Tai išorinių detalių sienelių spausdinimo greitis. Siekiant aukštes
msgid "Small perimeters"
msgstr "Mažos trajektorijos (Small perimeters)"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Šis nustatymas valdo perimetrų, kurių spindulys $\\le$ „Mažų perimetrų riba“ (dažniausiai tai nedidelės skylės), spausdinimo greitį. Jei nurodomas procentais (pvz., 80 %), jis apskaičiuojamas pagal viršuje nustatytą išorinės sienelės greitį. Nustačius 0, greitis parandamas automatiškai."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Šis atskiras nustatymas valdo perimetrų, kurių spindulys <= small_perimeter_threshold (dažniausiai tai skylės), spausdinimo greitį. Jei nurodomas procentais (pvz., 80 %), jis apskaičiuojamas pagal viršuje nustatytą išorinės sienelės greitį."
msgid "Small perimeters threshold"
msgstr "Mažų perimetrų riba"
@@ -14890,8 +16110,9 @@ msgstr "Nustato mažų perimetrų ilgio arba spindulio ribą. Numatytoji reikšm
msgid "Small support perimeters"
msgstr "Maži atramų perimetrai"
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Tas pats, kas „Maži perimetrai“, bet skirta atramoms. Šis atskiras nustatymas turės įtakos atramų greičiui tose vietose, kurios yra ≤ `small_support_perimeter_threshold`. Jei išreikšta procentais (pavyzdžiui: 80 %), bus skaičiuojama nuo aukščiau nustatyto atramų arba atramų sąsajos greičio. Nustatykite nulį, jei norite naudoti automatinį režimą."
+# AI Translated
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Tas pats, kas „Mažos trajektorijos (Small perimeters)“, bet skirta atramoms. Šis atskiras nustatymas turės įtakos atramų greičiui tose vietose, kurios yra <= `small_support_perimeter_threshold`. Jei išreikšta procentais (pavyzdžiui: 80 %), bus skaičiuojama nuo aukščiau nustatyto atramų arba atramų sąsajos greičio."
msgid "Small support perimeters threshold"
msgstr "Mažo atramų perimetro ribos"
@@ -14902,22 +16123,23 @@ msgstr "Nustatoma mažo atramų perimetro ilgio riba. Numatytoji riba yra 0 mm"
msgid "Walls printing order"
msgstr "Sienelių spausdinimo eiliškumas"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
-"Vidinių (inner) ir išorinių (outer) sienelių spausdinimo seka.\n"
+"Vidinių ir išorinių sienelių spausdinimo seka.\n"
"\n"
-"„Vidinis / išorinis“ (Inner/Outer) užtikrina geriausią iškyšų kokybę, nes spausdinama iškyšos sienelė turi prie ko prisitvirtinti (prie vidinio perimetro). Tačiau išorinio paviršiaus kokybė gali nežymiai nukentėti, nes išorinis perimetras gali būti šiek tiek deformuojamas (išspaudžiamas) vidinio perimetro įtakos.\n"
+"„Vidinis / išorinis“ užtikrina geriausią iškyšų kokybę, nes spausdinama iškyšos sienelė turi prie ko prisitvirtinti (prie vidinio perimetro). Tačiau išorinio paviršiaus kokybė gali nežymiai nukentėti, nes išorinis perimetras gali būti šiek tiek deformuojamas (išspaudžiamas) vidinio perimetro įtakos.\n"
"\n"
-"„Vidinis / išorinis / vidinis“ (Inner/Outer/Inner) užtikrina geriausią išorinio paviršiaus kokybę ir matmenų tikslumą, nes išorinė sienelė spausdinama netrikdomai. Visgi, iškyšų kokybė sumažėja, nes nėra pilno vidinio pagrindo išorinei sienelei prilaikyti. Šis nustatymas efektyvus tik turint bent 3 sieneles – pjaustyklė pirmiausia spausdina vidines sieneles nuo 3-iojo perimetro gilyn, tada išorinį perimetrą, ir galiausiai pirmąjį vidinį perimetrą. Daugeliu atvejų tai yra pranašesnis pasirinkimas nei „Išorinis / vidinis“.\n"
+"„Vidinis / išorinis / vidinis“ užtikrina geriausią išorinio paviršiaus kokybę ir matmenų tikslumą, nes išorinė sienelė spausdinama netrikdomai. Visgi, iškyšų kokybė sumažėja, nes nėra pilno vidinio pagrindo išorinei sienelei prilaikyti. Šis nustatymas efektyvus tik turint bent 3 sieneles – pirmiausia spausdinamos vidinės sienelės nuo 3-iojo perimetro gilyn, tada išorinis perimetras ir galiausiai pirmasis vidinis perimetras. Daugeliu atvejų tai yra pranašesnis pasirinkimas nei „Išorinis / vidinis“.\n"
"\n"
-"„Išorinis / vidinis“ (Outer/Inner) suteikia panašų paviršiaus švarumą ir matmenų tikslumą kaip ir „Vidinis / išorinis / vidinis“, tačiau vertikalios siūlės (Z seam) gali atrodyti mažiau tvarkingos, nes naujas sluoksnis pradedamas spausdinti tiesiai ant matomo išorinio paviršiaus."
+"„Išorinis / vidinis“ suteikia panašų paviršiaus švarumą ir matmenų tikslumą kaip ir „Vidinis / išorinis / vidinis“, tačiau Z siūlės gali atrodyti mažiau tvarkingos, nes naujas sluoksnis pradedamas spausdinti tiesiai ant matomo išorinio paviršiaus."
msgid "Inner/Outer"
msgstr "Vidinis / išorinis"
@@ -15039,14 +16261,17 @@ msgstr ""
"\n"
"Galutinis objekto srauto koeficientas gaunamas šią reikšmę padauginus iš plastiko srauto koeficiento (filament flow ratio)."
+# AI Translated
msgid "Enable pressure advance"
-msgstr "Įjungti slėgio kompensavimą (Pressure Advance)"
+msgstr "Įjungti Pressure Advance"
+# AI Translated
msgid "Enable pressure advance, auto calibration result will be overwritten once enabled."
-msgstr "Įjungia slėgio kompensavimą (Pressure Advance). Jį aktyvavus, automatinio kalibravimo rezultatai bus nepaisomi."
+msgstr "Įjungia Pressure Advance. Jį aktyvavus, automatinio kalibravimo rezultatai bus nepaisomi."
+# AI Translated
msgid "Pressure advance (Klipper) AKA Linear advance factor (Marlin)."
-msgstr "Slėgio kompensavimas (Pressure Advance „Klipper“ mikroprogramoje) arba linijinis kompensavimas (Linear Advance „Marlin“ mikroprogramoje)."
+msgstr "Pressure Advance („Klipper“ mikroprogramoje), dar vadinamas Linear Advance koeficientu („Marlin“ mikroprogramoje)."
# AI Translated
msgid "Enable adaptive pressure advance (beta)"
@@ -15071,6 +16296,7 @@ msgstr ""
msgid "Adaptive pressure advance measurements (beta)"
msgstr "Adaptyviojo Pressure Advance matavimai (beta)"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Add sets of pressure advance (PA) values, the volumetric flow speeds and accelerations they were measured at, separated by a comma. One set of values per line. For example\n"
@@ -15084,7 +16310,7 @@ msgid ""
"2. Take note of the optimal PA value for each volumetric flow speed and acceleration. You can find the flow number by selecting flow from the color scheme drop down and move the horizontal slider over the PA pattern lines. The number should be visible at the bottom of the page. The ideal PA value should be decreasing the higher the volumetric flow is. If it is not, confirm that your extruder is functioning correctly. The slower and with less acceleration you print, the larger the range of acceptable PA values. If no difference is visible, use the PA value from the faster test\n"
"3. Enter the triplets of PA values, Flow and Accelerations in the text box here and save your filament profile."
msgstr ""
-"Įveskite slėgio kompensavimo (PA) reikšmių rinkinius, nurodydami tūrinį srautą bei pagreitį, prie kurių jie buvo išmatuoti, atskirdami kableliais. Vienoje eilutėje – vienas trejetas. Pavyzdžiui:\n"
+"Įveskite Pressure Advance (PA) reikšmių rinkinius, nurodydami tūrinį srautą bei pagreitį, prie kurių jie buvo išmatuoti, atskirdami kableliais. Vienoje eilutėje – vienas trejetas. Pavyzdžiui:\n"
"0.04,3.96,3000\n"
"0.033,3.96,10000\n"
"0.029,7.91,3000\n"
@@ -15107,7 +16333,7 @@ msgid ""
"\n"
"This is an experimental option, as if the PA profile is not set accurately, it will cause uniformity issues."
msgstr ""
-"Įjunkite „Adaptive PA“, kai elemente pasikeičia srautas, pavyzdžiui, keičiantis linijos pločiui kampuose arba iškyšose.\n"
+"Įjunkite adaptyvųjį PA, kai elemente pasikeičia srautas, pavyzdžiui, keičiantis linijos pločiui kampuose arba iškyšose.\n"
"\n"
"Nėra suderinama su „Prusa“ spausdintuvais, nes jie pristabdo darbą PA pakeitimams apdoroti, o tai sukelia vėlavimą ir defektus.\n"
"\n"
@@ -15553,9 +16779,6 @@ msgstr "Gijos kaina, tik statistikai."
msgid "money/kg"
msgstr "pinigų/kg"
-msgid "Vendor"
-msgstr "Prekės ženklas"
-
msgid "Vendor of filament. For show only."
msgstr "Gijos prekės ženklas. Tik parodymui."
@@ -15625,6 +16848,92 @@ msgstr "Užpildyti kelias eilutes"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Kelių linijų naudojimas užpildo raštui, jei tai palaiko pats užpildo raštas."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Prisitaikantis tankis (eksperimentinis)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Laipsniškai keičia giroido ir TPMS užpildo tankį objekto viduje: jo ląstelės didėja nuo objekto paviršiaus link centro. Prie paviršiaus naudojamas reto užpildo tankis, o centre – vidaus tankis.\n"
+"„Atstumo deformacija“, „Sklandus suliejimas“ ir „Pakopiniai apvalkalai“ remiasi atstumu iki artimiausio paviršiaus, įskaitant viršutinį ir apatinį, o vidaus tankis taikomas toliausiai nuo jo esančiame taške:\n"
+" - Atstumo deformacija: vienas ištisinis raštas, ištemptas ir pasviręs ten, kur atstumas skirtingomis kryptimis kinta skirtingai, pvz., plokščiose ir ilgose dalyse.\n"
+" - Sklandus suliejimas: gretimų tankių raštai susilieja vienas su kitu, o jų susidūrimo vietose susidaro mažos kilpos.\n"
+" - Pakopiniai apvalkalai: įprasto rašto apvalkalai, kurių tankiai skiriasi maždaug 1,5 karto, o jų linijos sujungtos išilgai apvalkalų ribų.\n"
+" - Skiltys: atkartoja 3D objekto formą, įskaitant jo viršų ir apačią. Kiekviena skiltis – dalis, su likusiu objektu sujungta siauresniu kaklu – tankinama link savo centro.\n"
+" - Statmenai Z, Y ar X ašiai: atkartoja objekto pjūvius, statmenus tai ašiai, todėl išilgai jos tankis nekinta."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Atstumo deformacija"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Sklandus suliejimas"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Pakopiniai apvalkalai"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Skiltys"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Statmenai Z ašiai"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Statmenai Y ašiai"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Statmenai X ašiai"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Vidaus tankis"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Prisitaikančio užpildo tankis objekto centre."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Prisitaikantis gradientas"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Kaip tankis kinta nuo paviršiaus link objekto centro.\n"
+"Linijinis: tankis kinta pastoviu greičiu.\n"
+"Kvadratinis: prie paviršiaus tankis išlieka artimas reto užpildo tankiui ir greičiau kinta link centro.\n"
+"Eksponentinis: tankis greitai pasikeičia iškart po paviršiumi ir link centro išsilygina."
+
+# AI Translated
+msgid "Linear"
+msgstr "Linijinis"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Kvadratinis"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Eksponentinis"
+
msgid "Z-buckling bias optimization (experimental)"
msgstr "Z ašies išklumpavimo (buckling) optimizavimas (eksperimentinis)"
@@ -15774,14 +17083,16 @@ msgstr "Pirmojo sluoksnio aukštis"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Pirmojo sluoksnio aukštis. Padarius pirmąjį sluoksnį storesnį, galima pagerinti sukibimą su pagrindu."
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Pirmojo sluoksnio greitis, išskyrus vientiso užpildo dalį."
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Pirmojo sluoksnio sienelių ir krašto greitis."
msgid "First layer infill"
msgstr "Pirmojo sluoksnio užpildas"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Pirmojo sluoksnio vientiso užpildo dalies greitis."
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Pirmojo sluoksnio greitis, išskyrus sieneles ir kraštą, pavyzdžiui, užpildą, plyšių užpildymą ir atramas."
msgid "First layer travel speed"
msgstr "Pirmojo sluoksnio tuščiosios eigos (travel) greitis"
@@ -16253,6 +17564,10 @@ msgstr "G-code tipas"
msgid "What kind of G-code the printer is compatible with."
msgstr "Su kokiu G-code suderinamas spausdintuvas."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (senasis)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16489,16 +17804,18 @@ msgstr "Vidinio reto užpildo linijos plotis. Jei išreiškiama procentais (%%),
msgid "Infill/wall overlap"
msgstr "Užpildo ir sienelės persidengimas"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Užpildo plotas yra šiek tiek padidinamas, kad persidengtų su sienele geresniam sukibimui. Procentinė vertė yra santykinė su reto užpildo linijos pločiu. Nustatykite šią vertę ties ~10–15%, kad sumažintumėte perteklinio išspaudimo (overextrusion) ir medžiagos sankaupų riziką, dėl kurios viršutiniai paviršiai tampa šiurkštūs."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Užpildo plotas yra šiek tiek padidinamas, kad persidengtų su sienele geresniam sukibimui. Procentinė vertė yra santykinė su vidinės sienelės linijos pločiu. Nustatykite šią vertę ties ~10-15%, kad sumažintumėte perteklinio išspaudimo ir medžiagos sankaupų riziką, dėl kurios viršutiniai paviršiai tampa šiurkštūs."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Viršutinio / apatinio vientiso užpildo ir sienelės persidengimas"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "Viršutinio vientiso užpildo plotas yra šiek tiek padidinamas, kad persidengtų su sienele geresniam sukibimui ir sumažintų mikroskylučių (pinholes) susidarymą sandūroje. 25–30%% vertė yra geras pradinis taškas, sumažinantis skylučių matomumą. Procentinė vertė yra santykinė su reto užpildo linijos pločiu."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "Viršutinio vientiso užpildo plotas yra šiek tiek padidinamas, kad persidengtų su sienele geresniam sukibimui ir sumažintų mikroskylučių susidarymą sandūroje, kur viršutinis užpildas susiduria su sienelėmis. 25-30% vertė yra geras pradinis taškas, sumažinantis skylučių matomumą. Procentinė vertė yra santykinė su vidinės sienelės linijos pločiu."
msgid "This is the speed for internal sparse infill."
msgstr "Vidinio reto užpildo greitis."
@@ -16524,8 +17841,9 @@ msgstr "Didžiausias segmentuotos srities plotis. Nulis išjungia šią funkcij
msgid "Interlocking depth of a segmented region"
msgstr "Segmentuotos srities susikirtimo gylis"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Segmentuoto regiono susikirtimo gylis. Jis bus ignoruojamas, jei „mmu_segmented_region_max_width“ yra nulis arba jei „mmu_segmented_region_interlocking_depth“ yra didesnis už „mmu_segmented_region_max_width“. Nulis išjungia šią funkciją."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Segmentuotos srities susikirtimo gylis. Kas antrame sluoksnyje segmentuota sritis apribojama šiuo gyliu. Bus nepaisoma, jei įjungta „interlocking_beam“. Nulis išjungia šią funkciją."
msgid "Use beam interlocking"
msgstr "Naudoti sijų sujungimą (interlocking)"
@@ -16626,13 +17944,14 @@ msgstr "Įjungti Z-sluoksnių kontūravimą (dar žinomą kaip Z-sluoksnių glot
msgid "Minimize wall height angle"
msgstr "Sienelės aukščio kampo minimizavimas"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Sumažinti viršutinio paviršiaus perimetrų aukštį, kad jis sutaptų su modelio krašto aukščiu.\n"
-"Paveikia perimetrus, kurių nuolydis yra mažesnis už šį kampą (laipsniais).\n"
+"Paveikia perimetrus, kurių nuolydis yra didesnis už šį kampą (laipsniais).\n"
"Protinga vertė yra 35. Nustatykite 0, kad išjungtumėte."
msgid "Don't alternate fill direction"
@@ -16712,17 +18031,21 @@ msgstr "Didžiausias Z greitis"
msgid "Maximum speed E"
msgstr "Didžiausias E greitis"
-msgid "Maximum X speed"
-msgstr "Didžiausias X greitis"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Didžiausias X ašies greitis"
-msgid "Maximum Y speed"
-msgstr "Didžiausias Y greitis"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Didžiausias Y ašies greitis"
-msgid "Maximum Z speed"
-msgstr "Didžiausias Z greitis"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Didžiausias Z ašies greitis"
-msgid "Maximum E speed"
-msgstr "Didžiausias E greitis"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Didžiausias E ašies greitis"
msgid "Maximum acceleration X"
msgstr "Didžiausias pagreitis X"
@@ -16990,9 +18313,9 @@ msgstr ""
"\n"
"Reikšmė 0 išjungia šią funkciją.\n"
"\n"
-"Spartiems, didelio srauto tiesioginės pavaros (Direct Drive) spausdintuvams (tokiems kaip „Bambu Lab“ arba „Voron“) ši reikšmė paprastai nėra būtina. Vis dėlto ji gali duoti nedidelės naudos tais atvejais, kai spausdinimo elementų greičiai labai skiriasi – pavyzdžiui, esant žymiems sulėtėjimams ties iškyšomis. Tokiais atvejais rekomenduojama didelė reikšmė (apie 300–350 mm³/s²), kuri užtikrina pakankamą išlyginimą, padedantį slėgio kompensavimo (Pressure Advance) algoritmui pasiekti sklandesnį srauto perėjimą.\n"
+"Spartiems, didelio srauto tiesioginės pavaros (Direct Drive) spausdintuvams (tokiems kaip „Bambu Lab“ arba „Voron“) ši reikšmė paprastai nėra būtina. Vis dėlto ji gali duoti nedidelės naudos tais atvejais, kai spausdinimo elementų greičiai labai skiriasi – pavyzdžiui, esant žymiems sulėtėjimams ties iškyšomis. Tokiais atvejais rekomenduojama didelė reikšmė (apie 300–350 mm³/s²), kuri užtikrina pakankamą išlyginimą, padedantį Pressure Advance algoritmui pasiekti sklandesnį srauto perėjimą.\n"
"\n"
-"Lėtesniems spausdintuvams be slėgio kompensavimo (Pressure Advance) šią reikšmę reikėtų nustatyti gerokai mažesnę. Tiesioginės pavaros (Direct Drive) ekstruderiams gera pradinė reikšmė yra 10–15 mm³/s², o „Bowden“ tipo – 5–10 mm³/s².\n"
+"Lėtesniems spausdintuvams be Pressure Advance šią reikšmę reikėtų nustatyti gerokai mažesnę. Tiesioginės pavaros (Direct Drive) ekstruderiams gera pradinė reikšmė yra 10–15 mm³/s², o „Bowden“ tipo – 5–10 mm³/s².\n"
"\n"
"„PrusaSlicer“ programoje ši funkcija vadinama „Pressure Equalizer“.\n"
"\n"
@@ -17232,8 +18555,8 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Šio profilio naudojamos papildinių galimybės, saugomos kaip name;uuid;capability."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
-msgstr "Python papildinys (-iai), iškviečiamas kiekviename pjaustymo konvejerio žingsnyje, kad nuskaitytų ir keistų tarpinius pjaustymo duomenis, įskaitant galutinį G-code po apdorojimo žingsnį. Tyrimų/eksperimentinis."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgstr "Python papildiniai, iškviečiami kiekviename sluoksniavimo konvejerio žingsnyje, kad nuskaitytų ir keistų tarpinius sluoksniavimo duomenis, įskaitant galutinį G-code papildomo apdorojimo žingsnį. Tyrimams skirta / eksperimentinė."
msgid "Printer type"
msgstr "Spausdintuvo tipas"
@@ -17600,7 +18923,8 @@ msgstr "Įstrižoji jungtis (Scarf joint) vidinėms sienelėms"
msgid "Use scarf joint for inner walls as well."
msgstr "Įstrižąją jungtį (Scarf joint) naudoti ir vidinėms sienelėms."
-msgid "Role base wipe speed"
+# AI Translated
+msgid "Role based wipe speed"
msgstr "Valymo greitis pagal elemento tipą"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -17690,16 +19014,15 @@ msgstr "Po pirmojo sluoksnio apriboja apvado / apsauginio skydo kontūrus iki vi
msgid "Draft shield"
msgstr "Apsauginis skydas (Draft shield)"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
-"Apsauginis skydas (Draft shield) padeda apsaugoti ABS arba ASA spaudinius nuo deformavimosi ir atšokimo nuo pagrindo dėl skersvėjų. Dažniausiai jis reikalingas tik atviro tipo spausdintuvams be korpuso (enclosure).\n"
+"Apsauginis skydas (Draft shield) padeda apsaugoti ABS arba ASA spaudinius nuo deformavimosi ir atšokimo nuo pagrindo dėl skersvėjų. Dažniausiai jis reikalingas tik atviro tipo spausdintuvams be korpuso.\n"
"\n"
-"Įjungta = apvadas bus tokio paties aukščio kaip ir aukščiausias spausdinamas objektas. Priešingu atveju naudojamas parametras „Apvado aukštis“.\n"
-"Pastaba: kai apsauginis skydas aktyvus, apvadas bus spausdinamas nurodytu „Apvado atstumu“ nuo objekto. Jei naudojami pado kraštai (brim), jie gali susikirsti. Norėdami to išvengti, padidinkite apvado atstumo reikšmę.\n"
+"Įjungta = apvadas bus tokio paties aukščio kaip ir aukščiausias spausdinamas objektas. Priešingu atveju naudojamas parametras „Apvado aukštis“."
msgid "Enabled"
msgstr "Įjungta"
@@ -17867,6 +19190,130 @@ msgstr "Vieno ekstruderio daugiamedžiagis spausdinimas (Multi-Material)"
msgid "Use single nozzle to print multi filament."
msgstr "Naudoti vieną purkštuką spausdinimui keliomis gijomis."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "IDEX/IQEX spausdintuvas"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Įjungti lygiagretų spausdinimą spausdintuvams su keliais nepriklausomais vežimėliais (IDEX, IQEX ir panašiems)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Programinės aparatinės įrangos valdomos zonos"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Kai įjungta, pjaustyklė generuoja G-code, kuriame pagrindinės zonos turinys centruotas pagrindo koordinačių pradžioje (0,0). Kopijas ir veidrodinius atvaizdus kiekvienos fizinės zonos padėtyje išdėsto spausdintuvo programinė aparatinė įranga. Įjunkite tik tuose spausdintuvuose, kurių programinė aparatinė įranga kopijos (Copy) / veidrodžio (Mirror) režimu pati taiko zonų poslinkius (pvz., RepRapFirmware IDEX dubliavimo režimas). Režimu „Pagrindinis“ neturi jokio poveikio."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Portalų skaičius"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Nepriklausomų Y ašies portalų skaičius. 1 – IDEX / vieno bėgio IQEX sistemoms. 2 – dviejų portalų sistemoms (padalija pagrindą į eilutes)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Įrankių skaičius portale"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Nepriklausomų spausdinimo galvučių skaičius viename portale išilgai X. 2 – IDEX tipo sistemoms."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Įrankio 0 padėtis"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Fizinė padėtis ant pagrindo, kurioje yra įrankis T0 (indeksas 0). Nustato, kaip įrankių indeksai susiejami su pagrindo zonomis. Vieno portalo sistemose (IDEX) svarbu tik kairė / dešinė; dviejų portalų sistemose (IQEX) galima pasirinkti bet kurį iš keturių kampų (priekis = mažesnė Y / arčiau operatoriaus, galas = didesnė Y / įrenginio gale)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Purkštuko prošvaisa X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Atstumas (mm) nuo purkštuko iki vežimėlio krašto susidūrimo pusėje pagal X. Naudojamas susidūrimų draudžiamosios juostos pločiui ties kiekviena X riba apskaičiuoti."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Purkštuko prošvaisa Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Atstumas (mm) nuo purkštuko iki vežimėlio krašto susidūrimo pusėje pagal Y. Naudojamas susidūrimų draudžiamosios juostos pločiui ties kiekviena Y riba apskaičiuoti."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Saugos atsarga"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Neblokuojanti rekomendacinė prošvaisos juosta (mm), braižoma pagrindinėje zonoje ties kiekviena vežimėlio riba. Šioje juostoje esančios dalys vis tiek bus sluoksniuojamos; tai tik vaizdinis priminimas palikti daugiau vietos prie zonos krašto."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Vizualizacijos tema"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "IDEX/IQEX pagrindo zonų vizualizacijos spalvų tema. Jei reikia, pasirinkite daltonikams pritaikytą temą."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranopija / protanopija (raudona-žalia)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopija (mėlyna-geltona)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Didelis kontrastas"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "IDEX/IQEX spausdinimo režimas"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Aktyvaus IDEX/IQEX lygiagretaus spausdinimo režimo pavadinimas arba „primary“, kai spausdinama vienu vežimėliu. Spausdintuvo profilyje turi būti įjungta parinktis „IDEX/IQEX spausdintuvas“ (Spausdintuvas → Kelios medžiagos → IDEX/IQEX konfigūracija)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "IDEX/IQEX galvučių ir gijų žemėlapis"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Plokštės lygmens perrašymas, susiejantis fizines galvutes su gijų lizdais (numeruojama nuo 1). Tuščia reiškia, kad kiekviena galvutė naudoja pirmąją giją, kurią spausdintuvo fizinių ekstruderių žemėlapis nukreipia į šią galvutę."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "IDEX/IQEX režimų pavadinimai"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Kiekvieno naudotojo apibrėžto IDEX/IQEX lygiagretaus spausdinimo režimo rodomi pavadinimai."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "IDEX/IQEX režimų aktyvūs įrankiai"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Kiekvieno režimo įrankių vaidmenų priskyrimas. Formatas: \"idx:P,idx:C,idx:M\", kur P=Primary (pagrindinis), C=Copy (kopija), M=Mirror (veidrodis) (pvz., \"0:P,1:C,2:M,3:M\"). Valdoma IDEX/IQEX režimų redaktoriumi spausdintuvo profilyje."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "IDEX/IQEX režimų G-code"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code arba makrokomandos iškvietimas, įterpiamas kiekvieno režimo spausdinimo pradžioje."
+
msgid "Manual Filament Change"
msgstr "Rankinis gijų keitimas"
@@ -18245,6 +19692,168 @@ msgstr "Slenksčio persidengimas"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Jei ribinis kampas lygus nuliui, atramos bus generuojamos iškyšoms, kurių persidengimas yra mažesnis už šią ribą. Kuo mažesnė ši reikšmė, tuo statesnes iškyšas galima atspausdinti be atramų."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Pagrindo pokrypis X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Pagrindo pokrypio kampas išilgai X ašies. Teigiama reikšmė pakreipia pagrindą taip, kad +X pusė būtų aukščiau – sunkio jėga pasislenka link -X, o +X pusėje padidėja iškyšos. Neigiama reikšmė pakelia -X pusę. Nustatykite 0, jei X ašies pokrypio nereikia. Juostinio spausdintuvo režimu ši reikšmė automatiškai sinchronizuojama su juostos kampu."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Pagrindo pokrypis Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Pagrindo pokrypio kampas išilgai Y ašies. Teigiama reikšmė pakreipia pagrindą taip, kad +Y pusė būtų aukščiau – sunkio jėga pasislenka link -Y, o +Y pusėje padidėja iškyšos. Neigiama reikšmė pakelia -Y pusę. Nustatykite 0, jei Y ašies pokrypio nereikia."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Įjungti spausdinimą ant juostos"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Įjungti juostinio spausdintuvo režimą. Juostiniuose spausdintuvuose spausdinimo paviršius yra konvejerio juosta, pakreipta tam tikru kampu (paprastai 45 laipsnių). Pjaustyklė pasuks sluoksniavimo plokštumą ir transformuos G-code koordinates pagal pakreiptą spausdinimo paviršių."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Begalinė Y ašis"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Įjungti begalinę Y ašį juostiniams spausdintuvams. Kai įjungta, Y ašies spausdinimo tūrio apribojimas praktiškai panaikinamas, todėl išilgai juostos galima spausdinti bet kokio ilgio objektus."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Juostos pokrypio ašis"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Ašis, apie kurią poligoninis tinklas pasukamas prieš sluoksniavimą. Tai juostinio spausdintuvo pokrypis: izometrinis (be iškraipymų) pasukimas, kuris taip pat lemia pagrindo atvaizdavimą ir atramų sunkio jėgos pokrypį ir kurį atvirkštinė G-code transformacija panaikina prieš mašinos koordinačių sistemos šlytį / mastelį ir ašių perskirstymą. X – įprastas portalo pokrypis (juosta juda išilgai Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Juostos pokrypio kampas"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Juostos paviršiaus pokrypio kampas laipsniais. Dauguma juostinių spausdintuvų naudoja 45°. Teigiamos reikšmės pasuka prieš laikrodžio rodyklę, žiūrint išilgai teigiamos pokrypio ašies; absoliuti reikšmė taip pat yra fizinis juostos pokrypis, naudojamas pagrindo atvaizdavimui ir atramų sunkio jėgai."
+
+# AI Translated
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Atsieti mašinos koordinačių sistemos pokrypį"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Eksperto parinktis: nustatyti mašinos koordinačių sistemos (G-code šlyties / mastelio) pokrypio kampą nepriklausomai nuo pasukimo prieš sluoksniavimą kampo. Kai išjungta, mašinos koordinačių sistemos transformacija išvedama iš juostos pokrypio kampo, todėl vienas kampas valdo abu etapus. Įjunkite tik tada, kai reikia kompensuoti įrenginį, kurio fizinis portalo pokrypis skiriasi nuo sluoksniavimo pasukimo."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Mašinos koordinačių sistemos pokrypio kampas"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Pokrypio kampas (laipsniais), naudojamas mašinos koordinačių sistemos šlyčiai (cot) ir masteliui (1/|sin|), taikomiems G-code, apskaičiuoti. Naudojamas tik tada, kai įjungta „Atsieti mašinos koordinačių sistemos pokrypį“; kitu atveju naudojamas juostos pokrypio kampas."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "Atvirkštinė X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Atvirkštinė Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Atvirkštinė Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "G-code X ašies perskirstymas"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Kuri sluoksniavimo ašis išvesties G-code atitinka įrenginio X ašį. Taikoma PO sluoksniavimo, generuojant G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "G-code Y ašies perskirstymas"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Kuri sluoksniavimo ašis išvesties G-code atitinka įrenginio Y ašį. Taikoma PO sluoksniavimo, generuojant G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "G-code Z ašies perskirstymas"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Kuri sluoksniavimo ašis išvesties G-code atitinka įrenginio Z ašį. Taikoma PO sluoksniavimo, generuojant G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Atramų grindų Z poslinkis"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Paslenka apskaičiuotas juostos grindis aukštyn arba žemyn (mm). Neigiamos reikšmės nuleidžia grindis, todėl išlieka daugiau atramų. Naudokite juostos grindų formulės problemoms diagnozuoti."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Įjungti juostos valymo bokštą"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Juostiniams spausdintuvams skirtas valymo bokšto pakaitalas. Įjungus juostiniame spausdintuve, šalia spausdinamų dalių automatiškai sugeneruojama pravalymo prizmė, į kurią nukreipiamas pravalymas keičiant giją (klasikinio valymo bokšto juostiniuose spausdintuvuose naudoti negalima, nes jo G-code apeina juostos transformaciją). Prieinama tik juostiniuose spausdintuvuose."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Juostos valymo bokšto plotis"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Pravalymo prizmės, kuri automatiškai sugeneruojama juostiniuose spausdintuvuose, kai įjungtas juostos valymo bokštas ir naudojamos kelios gijos, plotis (įrenginio X, skersai juostos). Pravalymas keičiant giją nukreipiamas į šios prizmės ekstruzijas, o ne į klasikinį valymo bokštą. Jos aukštis apskaičiuojamas automatiškai pagal didžiausią pravalymo tūrį sluoksnyje: kuo platesnė prizmė, tuo ji žemesnė."
+
msgid "Tree support branch angle"
msgstr "Atraminio medžio šakos kampas"
@@ -18271,17 +19880,21 @@ msgstr "Šakų tankis"
msgid "Adjusts the density of the support structure used to generate the tips of the branches. A higher value results in better overhangs but the supports are harder to remove, thus it is recommended to enable top support interfaces instead of a high branch density value if dense interfaces are needed."
msgstr "Reguliuoja atraminės struktūros tankį ties šakų viršūnėmis. Didesnė reikšmė užtikrina kokybiškesnes iškyšas, tačiau tokias atramas sunkiau pašalinti. Jei reikalingas tankus kontaktas, rekomenduojama įjungti viršutinius atramų sąsajos (interface) sluoksnius, užuot nustačius didelį šakų tankį."
+# AI Translated
msgid "Auto brim width"
-msgstr "Automatinis pagrindo apvado (brim) plotis"
+msgstr "Automatinis krašto plotis"
+# AI Translated
msgid "Enabling this option means the width of the brim for tree support will be automatically calculated."
-msgstr "Įjungus šią parinktį, medinių atramų pagrindo apvado (brim) plotis bus apskaičiuojamas automatiškai."
+msgstr "Įjungus šią parinktį, medinių atramų krašto (brim) plotis bus apskaičiuojamas automatiškai."
+# AI Translated
msgid "Tree support brim width"
-msgstr "Atraminio medžio pagrindo apvado plotis"
+msgstr "Atraminio medžio krašto plotis"
+# AI Translated
msgid "Distance from tree branch to the outermost brim line."
-msgstr "Atstumas nuo medžio šakos iki tolimiausios pagrindo apvado (brim) linijos."
+msgstr "Atstumas nuo medžio šakos iki tolimiausios krašto (brim) linijos."
msgid "Tip Diameter"
msgstr "Galo skersmuo"
@@ -18430,13 +20043,11 @@ msgstr "Atskirti užpildai"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"Centruoja kiekvienos dalies vidinį užpildą pagal ją pačią, tarsi ji būtų supjaustyta atskirai, o ne pagal visą surinkinį. Besiliečiančios ar persidengiančios dalys traktuojamos kaip vienas kūnas ir dalijasi vienu centru; atskiros dalys (arba skirtingi 3D objektai) gauna savo centrą.\n"
-"Naudinga, kai surinkinys sugrupuoja kelis objektus, kurių kiekvienas turi išlaikyti nuoseklų, į save centruotą užpildą.\n"
-"Veikia linijų ir tinklelio raštus bei pasukimo šablonų užpildus.\n"
-"Raštai, pririšti prie globalių koordinačių (Giroidas, Korys, TPMS, ...), nepaveikiami."
+"Centruoja kiekvienos dalies vidinį užpildą pagal pačią dalį, tarsi ji būtų sluoksniuojama atskirai, o ne pagal visą surinkinį. Besiliečiančios arba persidengiančios dalys laikomos vienu kūnu ir turi bendrą centrą; atskiros dalys (arba atskiri 3D objektai) gauna kiekviena savo centrą.\n"
+"Naudinga, kai surinkinys grupuoja kelis objektus, kurių kiekvienas turėtų išlaikyti nuoseklų, pagal save centruotą užpildą.\n"
+"„Prisitaikantis kubinis“ ir „Atraminis kubinis (Support Cubic)“ visada centruoja kiekvieną dalį pagal ją pačią, o „Žaibas (Lightning)“ užpildas generuojamas visam objektui, todėl šis nustatymas jo neveikia."
# AI Translated
msgid "Center surface pattern on"
@@ -18556,8 +20167,9 @@ msgstr "Valymo bokšto sukimosi kampas"
msgid "Wipe tower rotation angle with respect to X axis."
msgstr "Valymo bokštelio sukimosi kampas X ašies atžvilgiu."
+# AI Translated
msgid "Brim width of prime tower, negative number means auto calculated width based on the height of prime tower."
-msgstr "Valymo bokštelio pagrindo apvado (brim) plotis. Neigiama reikšmė nurodo, kad plotis bus apskaičiuojamas automatiškai pagal valymo bokštelio aukštį."
+msgstr "Valymo bokštelio krašto (brim) plotis. Neigiama reikšmė nurodo, kad plotis bus apskaičiuojamas automatiškai pagal valymo bokštelio aukštį."
msgid "Stabilization cone apex angle"
msgstr "Stabilizavimo kūgio viršūnės kampas"
@@ -18568,40 +20180,42 @@ msgstr "Kūgio, naudojamo valymo bokšteliui stabilizuoti, viršūnės kampas. D
msgid "Maximum wipe tower print speed"
msgstr "Didžiausias valymo bokštelio spausdinimo greitis"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
-"Didžiausias spausdinimo greitis atliekant gijos pravalymą (purging) bei spausdinant valymo bokštelio retuosius (sparse) sluoksnius. Jei pravalymo metu retojo užpildo greitis arba apskaičiuotas greitis pagal maksimalų tūrinį gijos greitį yra mažesnis, bus naudojamas mažiausias iš jų.\n"
+"Didžiausias spausdinimo greitis atliekant gijos pravalymą bei spausdinant valymo bokšto retuosius sluoksnius. Jei pravalymo metu retojo užpildo greitis arba apskaičiuotas greitis pagal maksimalų tūrinį gijos greitį yra mažesnis, bus naudojamas mažiausias iš jų.\n"
"\n"
-"Spausdinant retuosius sluoksnius, jei vidinio perimetro greitis arba apskaičiuotas greitis pagal maksimalų tūrinį gijos greitį yra mažesnis, bus naudojamas mažiausias iš jų.\n"
+"Spausdinant retuosius sluoksnius, jei retojo užpildo greitis arba apskaičiuotas greitis pagal maksimalų tūrinį gijos greitį yra mažesnis, bus naudojamas mažiausias iš jų.\n"
"\n"
-"Padidinus šį greitį, gali nukentėti bokštelio stabilumas bei padidėti jėga, su kuria purkštukas susidurs su bet kokiais ant valymo bokštelio susidariusiais gijos gumbeliais (blobs).\n"
+"Padidinus šį greitį, gali nukentėti bokšto stabilumas bei padidėti jėga, su kuria purkštukas susidurs su bet kokiais ant valymo bokšto susidariusiais gijos gumbeliais.\n"
"\n"
-"Prieš didindami šį parametrą virš numatytųjų 90 mm/s, įsitikinkite, kad jūsų spausdintuvas patikimai formuoja tiltelius (bridging) esant didesniam greičiui, o gijos nutekėjimas (ooze) keičiant įrankį yra gerai kontroliuojamas.\n"
+"Prieš didindami šį parametrą virš numatytųjų 90 mm/s, įsitikinkite, kad jūsų spausdintuvas patikimai formuoja tiltus esant didesniam greičiui, o gijos nutekėjimas keičiant įrankį yra gerai kontroliuojamas.\n"
"\n"
-"Valymo bokštelio išoriniams perimetrams, nepriklausomai nuo šio nustatymo, visada naudojamas vidinio perimetro greitis."
+"Valymo bokšto išoriniams perimetrams naudojamas vidinio perimetro greitis, kurį taip pat riboja šis nustatymas."
msgid "Wall type"
msgstr "Sienelės tipas"
+# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
-"Valymo bokštelio išorinės sienelės tipas.\n"
-"1. Stačiakampis (Rectangle): numatytasis sienelės tipas – fiksuoto pločio ir aukščio stačiakampis.\n"
-"2. Kūgis (Cone): kūgis su suapvalinimu apačioje, padedantis stabilizuoti valymo bokštelį.\n"
-"3. Briauna (Rib): prie bokštelio sienelės pridedamos keturios briaunos geresniam stabilumui užtikrinti."
+"Valymo bokšto išorinės sienelės tipas.\n"
+"1. Stačiakampis: stačiakampis su fiksuotu pločiu ir aukščiu.\n"
+"2. Kūgis: kūgis su suapvalinimu apačioje, padedantis stabilizuoti valymo bokštą.\n"
+"3. Briauna (Rib): numatytasis sienelės tipas, kai prie bokšto sienelės pridedamos keturios briaunos geresniam stabilumui užtikrinti."
msgid "Rectangle"
msgstr "Stačiakampis"
@@ -18669,6 +20283,14 @@ msgstr "Išplovimas pakeitus siūlelį bus atliekamas objektų atramų viduje. T
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Šis objektas bus naudojamas purkštuko pravalymui po gijos pakeitimo, siekiant sutaupyti medžiagos ir sutrumpinti spausdinimo laiką. Dėl šios priežasties pereinamieji gijos atspalviai bus sumaišyti pačiame objekte. Ši funkcija veikia tik tuomet, kai įjungtas valymo bokštelis."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Juostos valymo bokšto objektas"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Pažymi automatiškai sugeneruotą juostos pravalymo prizmę. Valdoma automatiškai; nenustatykite rankiniu būdu."
+
msgid "Maximal bridging distance"
msgstr "Maksimalus tiltelio atstumas"
@@ -18684,8 +20306,9 @@ msgstr "Valymo bokšto valymo linijų atstumai."
msgid "Extra flow for purging"
msgstr "Papildomas pravalymo srautas"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Papildomas gijos srautas, naudojamas valymo bokštelio pravalymo linijoms. Jis leidžia suformuoti storesnes arba siauresnes pravalymo linijas nei įprastai. Atstumai tarp linijų pritaikomi automatiškai."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Papildomas gijos srautas, naudojamas valymo bokšto pravalymo linijoms. Dėl jo pravalymo linijos būna storesnės nei įprastai. Atstumai tarp linijų pritaikomi automatiškai."
msgid "Idle temperature"
msgstr "Budėjimo (idle) temperatūra"
@@ -18804,14 +20427,15 @@ msgstr "Mažiausias plonų elementų storis. Modelio elementai, plonesni už ši
msgid "Minimum wall length"
msgstr "Mažiausias sienelės ilgis"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Pakoreguokite šią reikšmę, kad nebūtų spausdinamos trumpos, neuždaros sienelės, galinčios pailginti spausdinimo laiką. Didesnės reikšmės pašalina daugiau ir ilgesnes sieneles.\n"
+"Pakoreguokite šią reikšmę, kad nebūtų spausdinamos trumpos, neuždaros sienelės, galinčios pailginti spausdinimo laiką. Reikšmė yra sienelės pločio kartotinis. Didesnės reikšmės pašalina daugiau ir ilgesnes sieneles.\n"
"\n"
-"PASTABA: Šis nustatymas neturi įtakos apatiniams ir viršutiniams paviršiams, kad modelio išorėje neatsirastų matomų tuštumų. Žemiau esančiuose išplėstiniuose nustatymuose pakeiskite parametro „Vienos sienelės slenkstis“ (One wall threshold) jautrumą, apibrėžiantį, kas laikoma viršutiniu paviršiumi. Šis slenkstis matomas tik tada, kai nustatymas viršija numatytąją 0,5 reikšmę arba kai įjungta vienos sienelės viršutinių paviršių funkcija."
+"PASTABA: Šis nustatymas neturi įtakos apatiniams ir viršutiniams paviršiams, kad modelio išorėje neatsirastų matomų tuštumų. Žemiau, grupėje „Sienos ir paviršiai“, pakeiskite parametro „Vienos sienelės slenkstis“ jautrumą, apibrėžiantį, kas laikoma viršutiniu paviršiumi. „Vienos sienelės slenkstis“ matomas tik tada, kai šis nustatymas viršija numatytąją 0,5 reikšmę arba kai įjungti vienos sienelės viršutiniai paviršiai."
msgid "Maximum wall resolution"
msgstr "Didžiausia sienelių skiriamoji geba (resolution)"
@@ -18822,8 +20446,9 @@ msgstr "Ši reikšmė nustato mažiausią sienelės linijos segmento ilgį milim
msgid "Maximum wall deviation"
msgstr "Didžiausias sienelės nuokrypis"
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "Didžiausias leidžiamas nuokrypis, mažinant „Didžiausios sienelės raiškos“ nustatymo skiriamąją gebą. Jei jį padidinsite, spaudinys bus mažiau tikslus, tačiau G-kodas (G-Code) bus mažesnės apimties. „Didžiausias sienelės nuokrypis“ riboja „Didžiausią sienelės raišką“, todėl jei šie du nustatymai konfliktuoja, viršenybė teikiama „Didžiausiam sienelės nuokrypiui“."
+# AI Translated
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "Didžiausias leidžiamas nuokrypis, mažinant „Didžiausios sienelės raiškos“ nustatymo skiriamąją gebą. Jei jį padidinsite, spaudinys bus mažiau tikslus, tačiau G-code bus mažesnės apimties. „Didžiausias sienelės nuokrypis“ riboja „Didžiausią sienelės raišką“, todėl jei šie du nustatymai konfliktuoja, viršenybė teikiama „Didžiausiam sienelės nuokrypiui“."
msgid "First layer minimum wall width"
msgstr "Pirmojo sluoksnio mažiausias sienelės plotis"
@@ -18931,8 +20556,11 @@ msgstr "Tiltelių linijos plotis negali viršyti purkštuko skersmens: "
msgid "too large line width "
msgstr "per didelis linijos plotis "
-msgid " not in range "
-msgstr " nepatenka į intervalą "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% nepatenka į intervalą [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Tai eksportuoja projektą kaip 3MF failą."
@@ -19082,6 +20710,14 @@ msgstr "Orientacijos parinktys"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Orientacijos parinktys: 0 – išjungti, 1 – įjungti, kitos – automatiškai"
+# AI Translated
+msgid "Repair"
+msgstr "Taisyti"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Taiso modelių tinklelius taip, kaip „Taisyti modelį“: uždaro skyles ir plyšius, nukreipia juos į išorę ir pašalina savaiminius susikirtimus."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Sukimosi kampas aplink Z ašį laipsniais."
@@ -19190,6 +20826,12 @@ msgstr "Išvesties katalogas"
msgid "This is the output directory for exported files."
msgstr "Tai yra eksportuotų failų išvesties aplankas."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Derinimo lygis"
@@ -19358,6 +21000,56 @@ msgstr "Turi vieno ekstruderio MM užpildymą (MM priming)"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Ar šiame spaudinyje naudojamos papildomos kelių medžiagų užpildymo (priming) sritys?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Pradinis ekstruderis be atramų"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Pirmojo ekstruderio, naudojamo spausdinant be atramų, indeksas, skaičiuojamas nuo nulio. Toks pat kaip „initial_no_support_tool“."
+
+# AI Translated
+# Needs human review: 'Head wrap' is rendered as filament wrapping around the nozzle (apsivėlimas), as in the nozzle wrapping detection string; check the term against the printer's UI. G-code placeholder name.
+msgid "In head wrap detect zone"
+msgstr "Galvutės apsivėlimo aptikimo zonoje"
+
+# AI Translated
+# Needs human review: 'Head wrap' is rendered as filament wrapping around the nozzle (apsivėlimas); check the term against the printer's UI.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Nurodo, ar pirmasis sluoksnis persidengia su galvutės apsivėlimo zona."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Dabartinis pagrindo tipas"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Šiuo metu pasirinkto pagrindo tipo pavadinimas (pvz., „Textured PEI Plate“, „Smooth High Temp Plate“)."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Aktyvus IDEX/IQEX režimas"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Šios plokštės aktyvaus IDEX/IQEX lygiagretaus spausdinimo režimo pavadinimas (pvz., „primary“, „mirror“, „copy“). Tuščia eilutė, jei IDEX/IQEX neįjungtas."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Aktyvaus IDEX/IQEX režimo indeksas"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Aktyvaus IDEX/IQEX lygiagretaus spausdinimo režimo indeksas sąraše imex_mode_names, skaičiuojamas nuo nulio."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "Aktyvaus IDEX/IQEX režimo G-code"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Aktyvaus IDEX/IQEX lygiagretaus spausdinimo režimo neapdorotas režimo G-code šablonas po kintamųjų įvertinimo. Čia apibrėžti visuotiniai kintamieji perduodami į machine_start_gcode."
+
msgid "Volume per extruder"
msgstr "Vieno ekstruderio tūris"
@@ -19503,6 +21195,18 @@ msgstr "Įvesties failo pavadinimas be plėtinio"
msgid "Source filename of the first object, without extension."
msgstr "Pirmojo objekto šaltinio failo pavadinimas be plėtinio."
+# AI Translated
+msgid "Full input filename"
+msgstr "Pilnas įvesties failo pavadinimas"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Pirmojo objekto šaltinio failo pavadinimas."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Sluoksniuojamos plokštės pavadinimas."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Vektorių sudaro du elementai: taško x ir y koordinatės. Vertės mm."
@@ -19533,6 +21237,58 @@ msgstr "Viršutinis dešinysis spausdinimo pagrindo ribų lango kampas"
msgid "Size of the print bed bounding box"
msgstr "Spausdinimo pagrindo ribojančio lango dydis"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Pirmojo sluoksnio centras be valymo bokšto"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Pirmojo sluoksnio aukštis."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Pagrindo temperatūrų vektorius kiekvienam ekstruderiui / gijai."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Pirmojo sluoksnio pagrindo temperatūrų vektorius kiekvienam ekstruderiui / gijai. Pateikia tą pačią reikšmę kaip first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Pirmojo sluoksnio pagrindo temperatūra (pradinis ekstruderis)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Pirmojo sluoksnio pagrindo temperatūra pradiniam ekstruderiui. Tas pats kaip bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Kameros temperatūrų vektorius kiekvienam ekstruderiui / gijai."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Mažiausių kameros temperatūrų vektorius kiekvienam ekstruderiui / gijai."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Bendra kameros temperatūra"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Bendra kameros temperatūra. Ši reikšmė yra didžiausia naudojamo ekstruderio / gijos kameros temperatūra."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Pirmojo sluoksnio pagrindo temperatūrų vektorius kiekvienam ekstruderiui / gijai. Pateikia tą pačią reikšmę kaip bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Pirmojo sluoksnio temperatūra"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Pirmojo sluoksnio temperatūrų vektorius kiekvienam ekstruderiui / gijai."
+
msgid "Timestamp"
msgstr "Laiko žyma"
@@ -19578,8 +21334,9 @@ msgstr "Fizinio spausdintuvo, naudojamo sluoksniavimui, pavadinimas."
msgid "Layer number"
msgstr "Sluoksnio numeris"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Dabartinio sluoksnio indeksas, skaičiuojamas nuo vieneto (t. y. pirmasis sluoksnis yra Nr. 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Dabartinio sluoksnio indeksas. Skaičiuojama nuo nulio (t. y. pirmasis sluoksnis yra 0), išskyrus ekstruzijos vaidmens keitimo G-code, kuriame skaičiuojama nuo vieneto."
msgid "Layer Z"
msgstr "Sluoksnio Z aukštis"
@@ -19599,6 +21356,252 @@ msgstr "Gijos ekstruderio ID"
msgid "The current extruder ID. The same as current_extruder."
msgstr "Dabartinis ekstruderio ID. Toks pat kaip current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Ankstesnis ekstruderis"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Iškraunamo ekstruderio indeksas. Indeksas skaičiuojamas nuo nulio (pirmojo ekstruderio indeksas yra 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Kitas ekstruderis"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Įkraunamo ekstruderio indeksas. Indeksas skaičiuojamas nuo nulio (pirmojo ekstruderio indeksas yra 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Santykinė E ašis"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Nurodo, ar naudojamas santykinis padėties nustatymas."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Įrankių keitimų skaičius"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "Įrankių keitimų skaičius per visą spausdinimą."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Senas atitraukimo ilgis"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Ankstesnės gijos atitraukimo ilgis."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Naujas atitraukimo ilgis"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Naujos gijos atitraukimo ilgis."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Senas atitraukimo ilgis keičiant įrankį"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Ankstesnės gijos atitraukimo ilgis keičiant įrankį."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Naujas atitraukimo ilgis keičiant įrankį"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "Naujos gijos atitraukimo ilgis keičiant įrankį."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Senos gijos temperatūra"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "Senos gijos temperatūra."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Naujos gijos temperatūra"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "Naujos gijos temperatūra."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X po įrankio keitimo"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "X padėtis po įrankio keitimo."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y po įrankio keitimo"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "Y padėtis po įrankio keitimo."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z po įrankio keitimo"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "Z padėtis po įrankio keitimo."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Pirmasis pravalymo tūris"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Pirmasis pravalymo tūris."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Antrasis pravalymo tūris"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Antrasis pravalymo tūris."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Senos gijos E padavimo greitis"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "Senos gijos ekstruderio padavimo greitis."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Naujos gijos E padavimo greitis"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "Naujos gijos ekstruderio padavimo greitis."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Tuščiosios eigos taškas 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "Tuščiosios eigos taško 1 X koordinatė."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Tuščiosios eigos taškas 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Tuščiosios eigos taško 1 Y koordinatė."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Tuščiosios eigos taškas 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "Tuščiosios eigos taško 2 X koordinatė."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Tuščiosios eigos taškas 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Tuščiosios eigos taško 2 Y koordinatė."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Tuščiosios eigos taškas 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "Tuščiosios eigos taško 3 X koordinatė."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Tuščiosios eigos taškas 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Tuščiosios eigos taško 3 Y koordinatė."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Pravalymo ilgis 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "Pirmasis pravalymo ilgis."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Pravalymo ilgis 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "Antrasis pravalymo ilgis."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Pravalymo ilgis 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "Trečiasis pravalymo ilgis."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Pravalymo ilgis 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "Ketvirtasis pravalymo ilgis."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Ekstruzijos vaidmuo"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Naujas naudojamas ekstruzijos vaidmuo / tipas\n"
+"Galimos reikšmės:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Paskutinis ekstruzijos vaidmuo"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Anksčiau naudotas ekstruzijos vaidmuo / tipas\n"
+"Galimos reikšmės:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Klaida zip archyve"
@@ -19611,24 +21614,32 @@ msgstr "Užpildo sričių generavimas"
msgid "Generating infill toolpath"
msgstr "Užpildo įrankio trajektorijos (toolpath) generavimas"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z ašies kontūruojamas sluoksnis %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Aptikti iškyšas automatiniam pakėlimui"
msgid "Checking support necessity"
msgstr "Atramų reikalingumo tikrinimas"
-msgid "floating regions"
-msgstr "ore kabančių sričių"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Atrodo, kad objektas %1% turi kabančių sričių. Perorientuokite objektą arba įjunkite atramų generavimą."
-msgid "floating cantilever"
-msgstr "ore kabančią konstrukciją"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Atrodo, kad objektas %1% turi kabančią gembę. Perorientuokite objektą arba įjunkite atramų generavimą."
-msgid "large overhangs"
-msgstr "didelių iškyšų"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Atrodo, kad objektas %s turi %s. Prašome perorientuoti objektą arba įjungti atramų generavimą."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Atrodo, kad objektas %1% turi dideles iškyšas. Perorientuokite objektą arba įjunkite atramų generavimą."
msgid "Generating support"
msgstr "Atramų generavimas"
@@ -19639,8 +21650,9 @@ msgstr "Įrankių trajektorijų optimizavimas"
msgid "Slicing mesh"
msgstr "Figūros sluoksniavimas"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Sluoksnių neaptikta. Galbūt reikėtų pataisyti STL failą (-us) arba patikrinti jų dydį ar storį ir bandyti dar kartą.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Sluoksnių neaptikta. Galbūt reikėtų pataisyti modelį arba patikrinti jo dydį ar storį ir bandyti dar kartą.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19659,6 +21671,398 @@ msgstr ""
msgid "Object name"
msgstr "Objekto pavadinimas"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Negalima taikyti unarinio minuso operatoriaus."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Negalima konvertuoti į sveikąjį skaičių."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Negalima apvalinti neskaitinės reikšmės."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Negalima apvalinti žemyn neskaitinės reikšmės."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Negalima apvalinti aukštyn neskaitinės reikšmės."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Negalima taikyti neigimo operatoriaus."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Negalima sudėti neskaitinių tipų."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Negalima atimti neskaitinių tipų."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Negalima dauginti iš neskaitinio tipo."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Negalima dalyti neskaitinio tipo."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Negalima dalyti iš neskaitinio tipo."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Dalyba iš nulio"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Ne loginė išraiška"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Šių tipų palyginti negalima."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Ne skaitinis tipas."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: antrasis parametras turi būti sveikasis skaičius"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: trečiasis parametras turi būti sveikasis skaičius"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Reguliariosios išraiškos (regex) atitikties kairioji pusė turi būti eilutė."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Nepavyko sukompiliuoti reguliariosios išraiškos: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "Pirmasis regex_replace() parametras turi būti eilutė."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): pirmasis parametras (eilutė, su kuria lyginama) turi būti eilutės reikšmė"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): šablonas turi būti eilutės reikšmė"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Nepavyko sukompiliuoti reguliariosios išraiškos"
+
+# AI Translated
+# Needs human review: English says 'operators' but means operands (the values the logical operation is applied to); translated as operands. Check the source wording.
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Loginės operacijos negalima taikyti neloginiams operandams."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Bandoma indeksuoti skaliarinį kintamąjį"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Netinkamas vektoriaus indeksas"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "Kintamasis neegzistuoja (neaktyvioje šakoje)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "Kintamasis neegzistuoja"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Bandoma kreiptis į neapibrėžtą (nil) neprivalomą kintamąjį"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Tuščio vektoriaus kintamojo indeksavimas"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Bandoma kreiptis į neapibrėžtą (nil) neprivalomų reikšmių vektoriaus elementą"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "Indeksavimo kintamasis turi būti sveikasis skaičius"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Neigiamas vektoriaus indeksas"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Tai nėra kintamojo pavadinimas"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Tai nėra kintamojo pavadinimas (neaktyvioje šakoje)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "FloatOrPercent kintamajam nepavyko išspręsti „ratio_over“ priklausomybių"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Nepalaikomas skaliarinio kintamojo tipas"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Kreipiamasi į vektoriaus kintamąjį, kai tikimasi skaliaro"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Nepalaikomas vektoriaus kintamojo tipas"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Negalima keisti tik skaitomo kintamojo"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Dešinioji pusė nėra skaitinė išraiška"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Tikėtasi elementų skaičiaus vektoriui užpildyti."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Nurodytas neigiamas elementų skaičius."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Dešinioji pusė nėra loginė išraiška"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Nepalaikomas išvesties skaliarinio kintamojo tipas"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Kreipiamasi į išvesties vektoriaus kintamąjį, kai tikimasi skaliaro"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Indeksas už ribų"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Nepalaikomas išvesties vektoriaus kintamojo tipas"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Simbolis jau apibrėžtas tik skaitomame sistemos žodyne"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Simbolis jau apibrėžtas kaip sistemos išvesties kintamasis"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Visuotiniai kintamieji šiame kontekste neprieinami"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Kintamojo pavadinimas jau apibrėžtas vietinėje taikymo srityje"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Kintamojo pavadinimas jau apibrėžtas visuotinėje taikymo srityje"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Skaliarinės reikšmės negalima priskirti vektoriaus kintamajam."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Vektoriaus reikšmės negalima priskirti skaliariniam kintamajam."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Negalima sukurti vektoriaus kintamojo iš tuščio inicializavimo sąrašo, nes jo tipo nustatyti neįmanoma."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Dešinioji pusė netinkama: maišomi skaitiniai ir loginiai tipai."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Skaliaro negalima priskirti vektoriui"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Kai kurie dešiniosios pusės neprivalomų reikšmių vektoriaus kintamojo elementai neapibrėžti (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Kairioji pusė yra slankiojo kablelio vektorius, o dešinioji – ne."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Kairioji pusė yra sveikųjų skaičių vektorius, o dešinioji – ne."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Kairioji pusė yra eilučių vektorius, o dešinioji – ne."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Kairioji pusė yra loginių reikšmių vektorius, o dešinioji – ne."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Kairiosios ir dešiniosios pusių vektoriai nesuderinami."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Šio tipo vektoriaus kintamojo dubliavimas nepalaikomas"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "empty() parametras nėra vektoriaus kintamasis"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "size() parametras nėra vektoriaus kintamasis"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Vektoriaus kintamojo negalima adresuoti ne sveikuoju indeksu."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Atsitiktinių skaičių generatorius šiame kontekste neprieinamas."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Analizavimo klaida %1% eilutėje: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Analizavimo klaida %1% eilutėje. Tikimasi žymės %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Analizavimo klaida %1% eilutėje. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "Interpoliacijos reikšmė turi būti skaičius."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "Lentelės taško X reikšmė turi būti skaičius."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "Lentelės taško Y reikšmė turi būti skaičius."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Lentelės X koordinatės turi didėti"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "Interpoliacijos reikšmė nepatenka į lentelės intervalą"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Nežinoma sintaksės klaida"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Netinkamas tekstas."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Netinkamas teksto blokas."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Netinkama makrokomanda."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Tai nėra {if}{else}{endif} makrokomanda."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Tai nėra {switch} makrokomanda."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Tikimasi senojo kintamųjų išplėtimo formato"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Tikimasi identifikatoriaus."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Tikimasi sąlyginės išraiškos."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Tikimasi loginės išraiškos."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Tikimasi išraiškos."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Tikimasi užsidarančio riestinio skliausto arba neprivalomo parametro."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Tikimasi eilučių šablonų sąrašo (paprastas tekstas arba regexp)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Tikimasi nuorodos į kintamąjį."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Tikimasi kintamojo pavadinimo."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Tikimasi reguliariosios išraiškos."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Netinkama utf8 seka"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Ne ASCII7 simboliai leidžiami tik teksto blokuose ir eilutės literaluose, bet ne kodo blokuose."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Netinkama escape seka"
+
msgid "Support: generate contact points"
msgstr "Atramos: generuoti kontaktinius taškus"
@@ -19675,6 +22079,10 @@ msgstr "Pateikto failo nepavyko nuskaityti, nes jis yra tuščias."
msgid "The file format is incompatible and cannot be parsed."
msgstr "Failo formatas nesuderinamas ir jo nepavyksta perskaityti."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Nepavyko konvertuoti išteklio į STL naudojant ModelIO."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Nežinomas failo formatas: įvesties failas privalo turėti .stl, .obj arba .amf(.xml) plėtinį."
@@ -19723,9 +22131,6 @@ msgstr "Perkalibruoti"
msgid "Calibrate"
msgstr "Kalibruoti"
-msgid "Finish"
-msgstr "Baigti"
-
msgid "How can I use calibration results?"
msgstr "Kaip galiu panaudoti kalibravimo rezultatus?"
@@ -19820,9 +22225,13 @@ msgstr ""
"Tam pačiam ekstruderiui pavadinimas (%s) turi būti unikalus, kai gijos tipas, purkštuko skersmuo ir purkštuko srautas sutampa.\n"
"Ar tikrai norite perrašyti ankstesnį rezultatą?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Šio tipo įrenginyje vienam purkštukui galima išsaugoti tik %d istorinių rezultatų. Šis rezultatas nebus išsaugotas."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Šio tipo įrenginyje vienam purkštukui galima išsaugoti tik %d istorinį rezultatą. Šis rezultatas nebus išsaugotas."
+msgstr[1] "Šio tipo įrenginyje vienam purkštukui galima išsaugoti tik %d istorinius rezultatus. Šis rezultatas nebus išsaugotas."
+msgstr[2] "Šio tipo įrenginyje vienam purkštukui galima išsaugoti tik %d istorinių rezultatų. Šis rezultatas nebus išsaugotas."
msgid "Connecting to printer..."
msgstr "Jungiamasi prie spausdintuvo..."
@@ -20046,9 +22455,13 @@ msgstr "Sinchronizuoti purkštuko ir AMS informaciją"
msgid "Please connect the printer first before synchronizing."
msgstr "Prieš sinchronizuodami, pirmiausia prijunkite spausdintuvą."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "Spausdintuvo %s purkštuko informacija nenustatyta. Konfigūruokite ją prieš tęsdami kalibravimą."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Spausdintuvo dešiniojo purkštuko informacija nenustatyta. Konfigūruokite ją prieš tęsdami kalibravimą."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Spausdintuvo kairiojo purkštuko informacija nenustatyta. Konfigūruokite ją prieš tęsdami kalibravimą."
msgid "AMS and nozzle information are synced"
msgstr "AMS ir purkštuko informacija sinchronizuota"
@@ -20111,6 +22524,11 @@ msgstr "Nuo tūrinio greičio"
msgid "To Volumetric Speed"
msgstr "Iki tūrinio greičio"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Žingsnis"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Ar tikrai norite sustabdyti šį spausdinimą?"
@@ -20137,9 +22555,13 @@ msgstr "Pastaba: kaitinimo bloko numeris įrenginyje %s susietas su laikikliu. P
msgid "Action"
msgstr "Veiksmas"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Šio tipo įrenginyje vienam purkštukui galima išsaugoti tik %d istorinių rezultatų."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Šio tipo įrenginyje vienam purkštukui galima išsaugoti tik %d istorinį rezultatą."
+msgstr[1] "Šio tipo įrenginyje vienam purkštukui galima išsaugoti tik %d istorinius rezultatus."
+msgstr[2] "Šio tipo įrenginyje vienam purkštukui galima išsaugoti tik %d istorinių rezultatų."
msgid "Edit Flow Dynamics Calibration"
msgstr "Redaguoti srauto dinamikos kalibravimą"
@@ -20266,12 +22688,13 @@ msgstr ""
"Pagreičio reikšmės turi būti didesnės už greičio reikšmes.\n"
"Patikrinkite įvesties duomenis."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Juostiniuose spausdintuvuose dar neįjungta — vietoj to naudokite „PA bokštelis“ metodą."
+
msgid "Temperature calibration"
msgstr "Temperatūros kalibravimas"
-msgid "Filament type"
-msgstr "Gijos tipas"
-
msgid "PLA"
msgstr "PLA"
@@ -20293,6 +22716,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Bandomasis modelis"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Standartinis"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Iškyša"
+
msgid "Start temp: "
msgstr "Pradžios temp: "
@@ -20418,9 +22854,6 @@ msgstr "Pradinis įtraukimo ilgis: "
msgid "End retraction length: "
msgstr "Galinis įtraukimo ilgis: "
-msgid "Test model"
-msgstr "Bandomasis modelis"
-
msgid "Ringing Tower"
msgstr "Bangavimo bokštelis"
@@ -20450,8 +22883,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Dažnis (Pradžia / Pabaiga): "
-msgid "Start / End"
-msgstr "Pradžia / Pabaiga"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X pradžia / pabaiga: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y pradžia / pabaiga: "
msgid "Frequency settings"
msgstr "Dažnio nustatymai"
@@ -20488,8 +22926,13 @@ msgstr "Patikrinkite programinės aparatinės įrangos suderinamumą."
msgid "Frequency: "
msgstr "Dažnis: "
-msgid "Damp"
-msgstr "Slopinimas"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Dažnis X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Slopinimas (pradžia / pabaiga): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "RepRap programinė aparatinė įranga naudoja tą patį dažnį abiem ašims."
@@ -20614,9 +23057,13 @@ msgstr "Laiko intervalai"
msgid "Enable IFS"
msgstr "Įjungti IFS"
+# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "Spausdintuve aptikta %d IFS lizdų."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "Spausdintuve aptiktas %d IFS lizdas."
+msgstr[1] "Spausdintuve aptikti %d IFS lizdai."
+msgstr[2] "Spausdintuve aptikta %d IFS lizdų."
msgid "This printer does not report a material station."
msgstr "Šis spausdintuvas nepraneša apie medžiagų stotelę."
@@ -20734,8 +23181,10 @@ msgstr "Atimti iš"
msgid "Subtract with"
msgstr "Atimti su"
-msgid "selected"
-msgstr "pasirinkta"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 pasirinktas"
msgid "Part 1"
msgstr "1 dalis"
@@ -20848,9 +23297,6 @@ msgstr "pvz., pagrindinis, matinis, šilkinis, marmurinis"
msgid "Filament Preset"
msgstr "Gijos profilis"
-msgid "Create"
-msgstr "Sukurti"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "Prekės ženklas nepasirinktas; prašome pasirinkti prekės ženklą iš naujo."
@@ -21160,6 +23606,10 @@ msgstr ""
"Spausdintuvas ir visi jam priklausantys gijos bei proceso profiliai.\n"
"Galima bendrinti su kitais."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Įtraukti pasirinktinę pagrindo tekstūrą ir modelį"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21211,15 +23661,6 @@ msgstr "Pastaba: jei bus ištrintas vienintelis šiai gijai priklausantis profil
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Profilių, kuriuos paveldi kiti profiliai, ištrinti negalima"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Šį profilį paveldi šis profilis."
-msgstr[1] "Šį profilį paveldi šie profiliai."
-msgstr[2] "Šį profilį paveldi šie profiliai."
-
-msgid "Delete Preset"
-msgstr "Ištrinti profilį"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Ar tikrai norite ištrinti pasirinktą profilį?"
@@ -21296,10 +23737,12 @@ msgstr "Pradžios, pabaigos arba žingsnio reikšmė netinkama."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "Spausdintuvo ekstruderių skaičius neatitinka kalibravimui pasirinkto spausdintuvo parametrų."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "%s ekstruderio purkštuko skersmuo yra 0,2 mm, o toks skersmuo nepalaiko automatinio srauto dinamikos kalibravimo."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21315,6 +23758,12 @@ msgstr ""
"Purkštuko skersmuo neatitinka faktinio spausdintuvo purkštuko skersmens.\n"
"Spustelėkite viršuje esantį sinchronizavimo mygtuką ir paleiskite kalibravimą iš naujo."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Spausdintuvo %s purkštuko informacija nenustatyta. Konfigūruokite ją prieš tęsdami kalibravimą."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21387,6 +23836,11 @@ msgstr "Aptikti „Creality K“ serijos spausdintuvą"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Spustelėkite „Nuskaityti“ (Scan), kad tinkle ieškotumėte „K“ serijos spausdintuvų."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Modelis"
+
# AI Translated
msgid "Scan"
msgstr "Skenuoti"
@@ -21404,9 +23858,13 @@ msgstr "(nežinoma K serija)"
msgid "No K-series printers found. Make sure the printer is on the same network and not blocked by Wi-Fi client isolation, then click Scan again."
msgstr "„K“ serijos spausdintuvų nerasta. Įsitikinkite, kad spausdintuvas yra tame pačiame tinkle ir jo neblokuoja „Wi-Fi“ klientų izoliacija, tada dar kartą spustelėkite „Nuskaityti“ (Scan)."
+# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "Rasta „%zu“ „Creality“ spausdintuvų. Pasirinkite vieną ir spustelėkite „Naudoti pasirinktą“ (Use Selected)."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "Rastas %zu Creality spausdintuvas. Pasirinkite jį ir spustelėkite „Naudoti pasirinktą“."
+msgstr[1] "Rasti %zu Creality spausdintuvai. Pasirinkite vieną ir spustelėkite „Naudoti pasirinktą“."
+msgstr[2] "Rasta %zu Creality spausdintuvų. Pasirinkite vieną ir spustelėkite „Naudoti pasirinktą“."
msgid "Active"
msgstr "Aktyvus"
@@ -21495,8 +23953,14 @@ msgstr "Nepavyko nustatyti vykdomojo failo kelio."
msgid "Failed to launch a new instance."
msgstr "Nepavyko paleisti naujo egzemplioriaus."
-msgid "log(s)"
-msgstr "Žurnalas(-i)"
+# AI Translated
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d žurnalas (%.2f %s)"
+msgstr[1] "%d žurnalai (%.2f %s)"
+msgstr[2] "%d žurnalų (%.2f %s)"
msgid "Choose where to save the exported JSON file"
msgstr "Pasirinkite, kur saugoti eksportuotą JSON failą"
@@ -21539,15 +24003,35 @@ msgstr "Spausdintuvo tipas nerastas, pasirinkite rankiniu būdu."
msgid "Authorizing..."
msgstr "Autorizuojama..."
-msgid "Error. Can't get API token for authorization"
-msgstr "Klaida. Nepavyko gauti API žetono (token) autorizacijai"
+# AI Translated
+msgid "Maximum login retries exceeded"
+msgstr "Viršytas didžiausias bandymų prisijungti skaičius"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "HTTP klaida: %1%"
msgid "Could not parse server response."
msgstr "Nepavyko apdoroti serverio atsakymo."
+msgid "Error. Can't get API token for authorization"
+msgstr "Klaida. Nepavyko gauti API žetono (token) autorizacijai"
+
msgid "Error saving session to file"
msgstr "Klaida įrašant sesiją į failą"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "Ryšys su 3DPrinterOS debesija veikia tinkamai."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Prisijungta kaip naudotojas: %1%"
+
msgid "Error session check"
msgstr "Klaida tikrinant sesiją"
@@ -21582,6 +24066,42 @@ msgstr "Neteisingas slaptažodis"
msgid "Could not get resources to create a new connection"
msgstr "Nepavyko gauti išteklių naujam ryšiui sukurti"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "Ryšys su UltiMaker veikia tinkamai."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Nepavyko prisijungti prie UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Klaida generuojant prisijungimo duomenis! Išsamiau žr. žurnale."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "KLAIDA: tuščias ID arba KEY. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Naudotojo vardas: %1% Slaptažodis: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Autentifikavimo duomenys laukia patvirtinimo. Patvirtinkite prieigą dialogo lange spausdintuvo ekrane."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Netinkami autentifikavimo duomenys"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Klaida: nerasta autentifikavimo duomenų!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Įkėlimas neįjungtas „FlashAir“ kortelėje."
@@ -21695,6 +24215,14 @@ msgstr ""
"Pranešimo tekstas: „%1%“\n"
"Klaida: „%2%“"
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "Ryšys su ESP3D veikia tinkamai."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Nepavyko prisijungti prie ESP3D"
+
msgid "No AMS"
msgstr "Be AMS"
@@ -21766,6 +24294,11 @@ msgstr "Didžiausias pasirenkamų spausdintuvų skaičius yra %d"
msgid "No task"
msgstr "Nėra užduočių"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Rodyti"
+
msgid "Edit Printers"
msgstr "Redaguoti spausdintuvus"
@@ -21807,6 +24340,11 @@ msgstr "Spausdinimas nepavyko"
msgid "Printing Pause"
msgstr "Spausdinimo pauzė"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Ruošiama"
+
msgid "Pending"
msgstr "Laukiama"
@@ -21839,9 +24377,6 @@ msgstr "Įjungti išmanųjį gijos priskyrimą: priskirkite vieną giją keliems
msgid "File Saving"
msgstr "Failo įrašymas"
-msgid "Don't remind me again"
-msgstr "Daugiau neberodyti šio priminimo"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Iškylantieji langai daugiau nebus rodomi. Juos vėl galite įjungti „Nuostatose“"
@@ -21866,16 +24401,24 @@ msgstr "Rankiniu būdu priskirti giją kairiajam arba dešiniajam purkštukui"
msgid "Global settings"
msgstr "Visuotiniai nustatymai"
-msgid "Video tutorial"
-msgstr "Vaizdo pamoka"
-
msgid "(Sync with printer)"
msgstr "(Sinchronizuoti su spausdintuvu)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Klaida: %s ekstruderis neturi prieinamo %s purkštuko, dabartinis grupavimo rezultatas negalioja."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Klaida: kairysis ekstruderis neturi prieinamo standartinio purkštuko, dabartinis grupavimo rezultatas negalioja."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Klaida: kairysis ekstruderis neturi prieinamo didelio srauto (High Flow) purkštuko, dabartinis grupavimo rezultatas negalioja."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Klaida: dešinysis ekstruderis neturi prieinamo standartinio purkštuko, dabartinis grupavimo rezultatas negalioja."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Klaida: dešinysis ekstruderis neturi prieinamo didelio srauto (High Flow) purkštuko, dabartinis grupavimo rezultatas negalioja."
msgid "We will slice according to this grouping method:"
msgstr "Pjaustymas bus atliekamas pagal šį priskyrimo metodą:"
@@ -21918,15 +24461,22 @@ msgstr "Nepavyko prisijungti prie „SimplyPrint“"
msgid "Internal error"
msgstr "Vidinė klaida"
-msgid "Unknown error"
-msgstr "Nežinoma klaida"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "\"SimplyPrint\" paskyra nesusieta. Eikite į Prisijungimo parinktis ir ją nustatykite."
msgid "Flashforge returned an invalid JSON response."
msgstr "„Flashforge“ grąžino negaliojantį JSON atsakymą."
+# AI Translated
+msgid "Request failed"
+msgstr "Užklausa nepavyko"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Flashforge vietinio API klaida %1%: %2%"
+
msgid "No Flashforge printers were discovered on the local network."
msgstr "Vietiniame tinkle nerasta jokių „Flashforge“ spausdintuvų."
@@ -22072,8 +24622,13 @@ msgstr "Įspėjimas: Jei krašto tipas nenustatytas kaip „pieštas“, krašto
msgid "Set the brim type of this object to \"painted\""
msgstr "Nustatykite šio objekto krašto tipą kaip „pieštas“"
-msgid "invalid brim ears"
-msgstr "negaliojančios krašto „ausys“"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d negaliojanti krašto „ausis“"
+msgstr[1] "%d negaliojančios krašto „ausys“"
+msgstr[2] "%d negaliojančių krašto „ausų“"
msgid "Brim Ears"
msgstr "Krašto \"ausys\""
@@ -22099,6 +24654,7 @@ msgstr "Nepavyko įkelti praleidžiamų objektų informacijos. Bandykite dar kar
msgid "Failed to create the temporary folder."
msgstr "Nepavyko sukurti laikinojo aplanko."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/Pasirinkta: %d"
@@ -22118,9 +24674,13 @@ msgstr "Praleidžiami visi objektai."
msgid "The printing job will be stopped. Continue?"
msgstr "Spausdinimo užduotis bus sustabdyta. Tęsti?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Praleidžiama objektų: %d."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "Praleidžiamas %d objektas."
+msgstr[1] "Praleidžiami %d objektai."
+msgstr[2] "Praleidžiama %d objektų."
msgid "This action cannot be undone. Continue?"
msgstr "Šio veiksmo atšaukti nebus galima. Tęsti?"
@@ -22266,6 +24826,42 @@ msgstr "Jei įjungta, aukščiau nurodytos vertės yra išsaugomos kaip numatyto
msgid "PresetBundle"
msgstr "ProfiliųRinkinys"
+# AI Translated
+msgid "Export Presets"
+msgstr "Eksportuoti profilius"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Rodyti aplanke"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Ištrinti rinkinį"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Atsisakyti rinkinio prenumeratos"
+
+# AI Translated
+msgid "Update available"
+msgstr "Yra atnaujinimas"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Neautorizuotas rinkinys"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Atverti šį rinkinį naršyklėje"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "Prenumeruojamas"
+
+# AI Translated
+msgid "Local"
+msgstr "Vietinis"
+
msgid "Bundle folder does not exist."
msgstr "Rinkinio aplankas neegzistuoja."
@@ -22299,6 +24895,14 @@ msgstr "Atsisakyti rinkinio prenumeratos"
msgid "ExportPresetBundle"
msgstr "EksportuotiProfiliųRinkinį"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Eksportuoti į OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Eksportuoti į aplanką"
+
msgid "Save preset bundle"
msgstr "Išsaugoti profilių rinkinį"
@@ -22386,6 +24990,11 @@ msgstr "AMS sausumo valdymas"
msgid "Filament Drying Settings"
msgstr "Gijos džiovinimo nustatymai"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "h"
+
# AI Translated
msgid "Stopping"
msgstr "Stabdoma"
@@ -22565,6 +25174,11 @@ msgstr "Pradedama: tikrinama oro įsiurbimo anga"
msgid "Starting: Checking air vent"
msgstr "Pradedama: tikrinama oro išleidimo anga"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Nepavyko sukurti aplanko %1%"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Gija gali būti nesuderinama su dabartiniais įrenginio nustatymais. Bus naudojami bendrieji gijos profiliai."
@@ -22580,6 +25194,105 @@ msgstr "Gija gali būti nesuderinama su dabartiniais įrenginio nustatymais. Bus
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Gijos modelis nežinomas. Bus naudojamas atsitiktinis gijos profilis."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Nežinomas konfigūracijos failas: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Netinkamas konfigūracijos failas: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "lizdas %1% -> lizdas %2%: mišri gija"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "mišrios gijos apibrėžtis: pasiektas gijų lizdų limitas"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "pasiektas gijų lizdų limitas"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "spausdintuvo gijų limitas yra %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "lizdas %1% -> lizdas %2%: nepriskirta mišri gija (spausdintuvo gijų limitas yra %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "lizdas %1%: nepriskirta mišri gija (spausdintuvo gijų limitas yra %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "lizdas %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "lizdas %1%: nepavyko importuoti mišrios gijos apibrėžties"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "reikia bent dviejų komponentų"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "komponentai nurodo neegzistuojančius lizdus"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "mišrios gijos apibrėžtis: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "lizdas %1%: nepavyko importuoti mišrios gijos apibrėžties (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "lizdas %1%: %2% -> %3% (pakaitalas)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Nepavyko įkelti konfigūracijos failo %1%\n"
+"Rekomenduojama pirmiausia išvalyti aplanką %2%"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Gamintojo %1% konfigūracijos versija %2% netinkama\n"
+"Rekomenduojama pirmiausia išvalyti aplanką %3%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Nepavyko įkelti konfigūracijos failo %1%: %2%\n"
+"Rekomenduojama pirmiausia išvalyti aplanką %3%"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Slėpti atskaitos plokštumas ir ašis"
@@ -22893,6 +25606,11 @@ msgstr "Nėra paviršinio kūno sustorinimui — pirmiausia sukurkite paviršiau
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Atskaitos geometrija / kreivė (plokštuma / ašis / koord. sistema / sraigtinė linija / projekcija)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Plokštuma"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Atskaitos plokštuma (poslinkis / pakreipimas / vidurio plokštuma / liestinė / dvi briaunos / sutampanti)"
@@ -22959,6 +25677,11 @@ msgstr "Perkelti ir (arba) pasukti esamą kūną"
msgid "Transform needs a body — add or import one first"
msgstr "Transformavimui reikia kūno — pirmiausia jį pridėkite arba importuokite"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Atspindėjimas"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Atspindėti kūną plokštumos atžvilgiu"
@@ -23052,6 +25775,11 @@ msgstr "(nėra)"
msgid "Hole / thread"
msgstr "Skylė / sriegis"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Skylė"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Išgręžti skylę pasirinkto paviršiaus centre arba plokštumoje"
@@ -23096,6 +25824,11 @@ msgstr "Spustelėkite 2 taškus arba liniją / apskritimą / lanką, kad pridėt
msgid "Line / polyline"
msgstr "Linija / laužtė"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Linija"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Spustelėkite pradžią, tada pabaigą — tada nustatykite tikslų ilgį"
@@ -23232,6 +25965,9 @@ msgstr "Splainas"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Spustelėkite valdymo taškus; dukart spustelėkite, spustelėkite dešiniuoju pelės mygtuku arba paspauskite Enter, kad baigtumėte"
+msgid "Point"
+msgstr "Taškas"
+
# AI Translated
msgid "Click to place a point"
msgstr "Spustelėkite, kad padėtumėte tašką"
@@ -23349,17 +26085,22 @@ msgid "Pick entities, drag the sweep handle, click the count; click empty to app
msgstr "Pasirinkite objektus, vilkite aprėpties kampo rankenėlę, spustelėkite kiekį; spustelėkite tuščią vietą, kad pritaikytumėte"
# AI Translated
+# Needs human review: Polygon sketch tool prompt: 'circumscribed' rendered as apibrėžtasis (polygon drawn around the circle); check against the tool's behavior.
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Spustelėkite centrą, tada viršūnę — kraštinių: %d, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Spustelėkite centrą, tada viršūnę — %d kraštinė, apibrėžtasis"
+msgstr[1] "Spustelėkite centrą, tada viršūnę — %d kraštinės, apibrėžtasis"
+msgstr[2] "Spustelėkite centrą, tada viršūnę — %d kraštinių, apibrėžtasis"
# AI Translated
-msgid "circumscribed"
-msgstr "apibrėžtas"
-
-# AI Translated
-msgid "inscribed"
-msgstr "įbrėžtas"
+# Needs human review: Polygon sketch tool prompt: 'inscribed' rendered as įbrėžtasis (polygon drawn inside the circle); check against the tool's behavior.
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Spustelėkite centrą, tada viršūnę — %d kraštinė, įbrėžtasis"
+msgstr[1] "Spustelėkite centrą, tada viršūnę — %d kraštinės, įbrėžtasis"
+msgstr[2] "Spustelėkite centrą, tada viršūnę — %d kraštinių, įbrėžtasis"
# AI Translated
msgid "Polygon"
@@ -23698,6 +26439,11 @@ msgstr "Ant paviršiaus"
msgid "Thread plane"
msgstr "Sriegio plokštuma"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Standartas"
+
# AI Translated
msgid "Pitch"
msgstr "Žingsnis"
@@ -23885,6 +26631,9 @@ msgstr "Pasirinkite kietojo kūno paviršių, kurį norite atverti, tada nustaty
msgid "(pick a side face)"
msgstr "(pasirinkite šoninį paviršių)"
+msgid "Face"
+msgstr "Paviršius"
+
# AI Translated
msgid "Draft"
msgstr "Nuolydis"
@@ -24263,8 +27012,11 @@ msgstr "Eskizas atnaujintas"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Eskizas sukurtas (valdančiųjų matmenų: %zu) — pasirinkite jį, tada spustelėkite dešiniuoju pelės mygtuku, kad išspaustumėte"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Eskizas sukurtas (valdantis matmuo: %zu) — pasirinkite jį, tada spustelėkite dešiniuoju pelės mygtuku, kad išspaustumėte"
+msgstr[1] "Eskizas sukurtas (valdantys matmenys: %zu) — pasirinkite jį, tada spustelėkite dešiniuoju pelės mygtuku, kad išspaustumėte"
+msgstr[2] "Eskizas sukurtas (valdančiųjų matmenų: %zu) — pasirinkite jį, tada spustelėkite dešiniuoju pelės mygtuku, kad išspaustumėte"
# AI Translated
#, c-format, boost-format
@@ -24404,8 +27156,11 @@ msgstr "Redaguojama: Eskizas %d · N = žiūrėti statmenai plokštumai ·
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "Gerai — trikampių: %zu"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "Gerai — %zu trikampis"
+msgstr[1] "Gerai — %zu trikampiai"
+msgstr[2] "Gerai — %zu trikampių"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -24492,10 +27247,22 @@ msgstr "Poligoniniame tinkle nėra trikampių"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Šiame poligoniniame tinkle yra %d trikampis. Prieš sujungiant vienoje plokštumoje esančius paviršius, kiekvienas trikampis tampa B-rep paviršiumi, todėl importavimas gali užtrukti ilgai, o gautą kūną bus lėta redaguoti. Paprastai geriau pirmiausia supaprastinti tinklą.\n"
+"\n"
+"Vis tiek importuoti?"
+msgstr[1] ""
+"Šiame poligoniniame tinkle yra %d trikampiai. Prieš sujungiant vienoje plokštumoje esančius paviršius, kiekvienas trikampis tampa B-rep paviršiumi, todėl importavimas gali užtrukti ilgai, o gautą kūną bus lėta redaguoti. Paprastai geriau pirmiausia supaprastinti tinklą.\n"
+"\n"
+"Vis tiek importuoti?"
+msgstr[2] ""
"Šiame poligoniniame tinkle yra %d trikampių. Prieš sujungiant vienoje plokštumoje esančius paviršius, kiekvienas trikampis tampa B-rep paviršiumi, todėl importavimas gali užtrukti ilgai, o gautą kūną bus lėta redaguoti. Paprastai geriau pirmiausia supaprastinti tinklą.\n"
"\n"
"Vis tiek importuoti?"
@@ -24524,8 +27291,8 @@ msgstr "Poligoninio tinklo importuoti nepavyko: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Kietasis kūnas importuotas — %d trikampių → %d paviršių, tūris %.2f mm³. Pasirinkite paviršių arba briauną, tada keiskite naudodami „Suapvalinimas“ / „Pjūvis“ / „Išskobimas“"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Kietasis kūnas importuotas — trikampių: %d → paviršių: %d, tūris %.2f mm³. Pasirinkite paviršių arba briauną, tada keiskite naudodami „Suapvalinimas“ / „Pjūvis“ / „Išskobimas“"
# AI Translated
#, c-format, boost-format
@@ -24542,8 +27309,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "„%s“ pridėta prie eskizo — patvirtinkite, kad išsaugotumėte"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — vilkite, kad nustatytumėte vietą / dydį, tada patvirtinkite"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — vilkite, kad nustatytumėte vietą / dydį, tada patvirtinkite"
# AI Translated
msgid "Insert canceled"
@@ -24751,9 +27520,13 @@ msgid "a geometry operation failed"
msgstr "geometrinė operacija nepavyko"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · pasirinkta: %d"
+msgid_plural " · %d picked"
+msgstr[0] " · pasirinktas %d"
+msgstr[1] " · pasirinkti %d"
+msgstr[2] " · pasirinkta %d"
# AI Translated
#, c-format, boost-format
@@ -24770,7 +27543,10 @@ msgstr "Pasirinkti — spustelėkite objektą, kad jį pasirinktumėte · vilk
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "Pasirinkta: %d · dabar pasirinkite apribojimą („Horizontaliai“, „Lygiagrečiai“, „Liestinė“, „Vienodi“…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "Pasirinktas %d · dabar pasirinkite apribojimą („Horizontaliai“, „Lygiagrečiai“, „Liestinė“, „Vienodi“…)"
+msgstr[1] "Pasirinkti %d · dabar pasirinkite apribojimą („Horizontaliai“, „Lygiagrečiai“, „Liestinė“, „Vienodi“…)"
+msgstr[2] "Pasirinkta %d · dabar pasirinkite apribojimą („Horizontaliai“, „Lygiagrečiai“, „Liestinė“, „Vienodi“…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -25031,7 +27807,10 @@ msgstr "Atspindėti — ašis nustatyta · dabar spustelėkite atspindimus obj
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Atspindėti — ašis nustatyta · atspindima: %d · spustelėkite kitą objektą, kad jį pridėtumėte ar pašalintumėte · Enter – pritaikyti"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Atspindėti — ašis nustatyta · atspindimas: %d · spustelėkite kitą objektą, kad jį pridėtumėte ar pašalintumėte · Enter – pritaikyti"
+msgstr[1] "Atspindėti — ašis nustatyta · atspindimi: %d · spustelėkite kitą objektą, kad jį pridėtumėte ar pašalintumėte · Enter – pritaikyti"
+msgstr[2] "Atspindėti — ašis nustatyta · atspindima: %d · spustelėkite kitą objektą, kad jį pridėtumėte ar pašalintumėte · Enter – pritaikyti"
# AI Translated
msgid "Move — click the entities to move"
@@ -25155,8 +27934,11 @@ msgstr "Eskizo taškas"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "Eskizo objektai: %d"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d eskizo objektas"
+msgstr[1] "%d eskizo objektai"
+msgstr[2] "%d eskizo objektų"
# AI Translated
msgid "select something first"
@@ -25693,8 +28475,10 @@ msgid "Applied edit"
msgstr "Pakeitimas pritaikytas"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — įveskite reikšmę, paspauskite Enter (arba patvirtinkite)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — įveskite reikšmę, paspauskite Enter (arba patvirtinkite)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -25766,10 +28550,23 @@ msgstr "Perduoti į plokštę — nusiųsti kietąjį kūną į skirtuką „Par
msgid "Nothing to commit — add a feature first"
msgstr "Nėra ką perduoti — pirmiausia pridėkite elementą"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Projektavimo kūnas %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Visi kūnai paslėpti — prieš perduodami parodykite bent vieną"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Projektavimo surinkinys"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Projektavimo kūnas"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -25837,8 +28634,11 @@ msgstr "Netinkama: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Peržiūra — trikampių: %zu"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Peržiūra — %zu trikampis"
+msgstr[1] "Peržiūra — %zu trikampiai"
+msgstr[2] "Peržiūra — %zu trikampių"
# AI Translated
#, c-format, boost-format
@@ -25942,8 +28742,11 @@ msgstr "Šio matmens neįmanoma patenkinti — eskizas per daug apribotas"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "Ignoruojami apribojimai, kurių negalima taikyti šiai geometrijai (elipsei ar splaino kreivei arba nulinio dydžio apskritimui): %1%"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "Ignoruojamas %1% apribojimas, kurio negalima taikyti šiai geometrijai (elipsei ar splaino kreivei arba nulinio dydžio apskritimui)"
+msgstr[1] "Ignoruojami %1% apribojimai, kurių negalima taikyti šiai geometrijai (elipsei ar splaino kreivei arba nulinio dydžio apskritimui)"
+msgstr[2] "Ignoruojama %1% apribojimų, kurių negalima taikyti šiai geometrijai (elipsei ar splaino kreivei arba nulinio dydžio apskritimui)"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -26001,8 +28804,11 @@ msgstr "Nuožula: atstumas viršija kraštinės ilgį arba šios dvi linijos nes
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "Pašalinti apribojimai, kuriuos suapvalinimas / nuožula padarė negaliojančiais: %1%"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "Pašalintas %1% apribojimas, kurį suapvalinimas / nuožula padarė negaliojančiu"
+msgstr[1] "Pašalinti %1% apribojimai, kuriuos suapvalinimas / nuožula padarė negaliojančiais"
+msgstr[2] "Pašalinta %1% apribojimų, kuriuos suapvalinimas / nuožula padarė negaliojančiais"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -26022,8 +28828,11 @@ msgstr "Kopijų skaičius turi būti sveikasis skaičius, 2 arba daugiau"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "Transformacijos panaikinti apribojimai: %1%"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "Transformacijos panaikintas %1% apribojimas"
+msgstr[1] "Transformacijos panaikinti %1% apribojimai"
+msgstr[2] "Transformacijos panaikinta %1% apribojimų"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26174,11 +28983,6 @@ msgstr "Paviršiaus sustorinimas"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Paviršiaus sustorinimui reikia paviršinio kūno — pirmiausia jį sukurkite paviršiaus įrankiu"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Skylė"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26263,11 +29067,6 @@ msgstr "Apskritiminis masyvas"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Kartoti kūną aplink ašį — nustatykite kiekį ir aprėpties kampą"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Atspindėjimas"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26304,11 +29103,6 @@ msgstr "Sulygiavimui reikia kūno — pirmiausia jį pridėkite arba importuokit
msgid "Align the body to a picked face or plane"
msgstr "Sulygiuoti kūną su pasirinktu paviršiumi arba plokštuma"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Plokštuma"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -26414,11 +29208,6 @@ msgstr "Ištrinti kūną"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Ištrinti visą šį kūną — pašalinamas elementas, iš kurio jis sukurtas"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Linija"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -26733,215 +29522,6 @@ msgstr "Šis šriftas neturi šio teksto kontūro"
msgid "Size: %.1f × %.1f mm"
msgstr "Dydis: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Primityvas"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Sugeneruotas tuščias poligoninis tinklas"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Dėžė"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Greitai:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Plotis (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Gylis (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Aukštis (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "Apat. R"
-
-# AI Translated
-msgid "Top R"
-msgstr "Viršut. R"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "Didysis R"
-
-# AI Translated
-msgid "Minor R"
-msgstr "Mažasis R"
-
-# AI Translated
-msgid "All edges"
-msgstr "Visos briaunos"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Viršutinės briaunos"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Apatinės briaunos"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Šoninės briaunos"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Tinklelio raiška"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Pridėti formą"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Nėra išorinio profilio"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Nepavyko sukurti išorinio paviršiaus"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Nepavyko sukurti paviršiaus su skylėmis"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Apsukimas nepavyko"
-
-# AI Translated
-msgid "Profile"
-msgstr "Profilis"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Pradėti naują profilį (skylėms)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segmentai"
-
-# AI Translated
-msgid "Sides"
-msgstr "Kraštinės"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Spustelėkite drobėje, kad pieštumėte"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Pritraukti prie tinklelio"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Tinklelio žingsnis"
-
-# AI Translated
-msgid "Outer"
-msgstr "Išorinis"
-
-# AI Translated
-msgid "closed"
-msgstr "uždaras"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% tšk. %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (viršus)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (priekis)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (šonas)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Apsukimo kampas"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "0 – išspaudimas, >0 – apsukimas"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Įduba (pjūvis)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu uždaras profilis"
-msgstr[1] "%zu uždari profiliai"
-msgstr[2] "%zu uždarų profilių"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Nubrėžkite uždarą profilį, kad įjungtumėte"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Išvalyti viską"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Tuščias rezultatas"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Išspaudimas: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Apsukimas: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Nepasirinktas joks objektas"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Nepavyko sukurti paviršiaus"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Nepavyko sukurti paviršiaus su skylėmis"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Įrankio tinklelis tuščias"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Įduba pridėta (neigiamas tūris)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Įduba: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -27063,6 +29643,10 @@ msgstr "Surinkimo manipuliatorius"
msgid "Gizmo brim ears"
msgstr "Krašto „auselių“ (brim ears) manipuliatorius"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Tekstūrinio reljefo piešimo manipuliatorius"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Vertikalus slankiklis – kelti aktyvų žymeklį aukštyn"
@@ -27298,6 +29882,12 @@ msgstr "abiejuose galuose reikia cilindrinio paviršiaus — jungtis %1% yra ant
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "abiejuose galuose reikia cilindrinio paviršiaus — jungtis %1% yra ant išlenkto paviršiaus"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (trūksta bazinės plokštumos)"
+
# AI Translated
msgid "two points are coincident"
msgstr "du taškai sutampa"
@@ -27326,10 +29916,31 @@ msgstr "plokštumos lygiagrečios (nėra sankirtos)"
msgid "zero-length direction"
msgstr "nulinio ilgio kryptis"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "elementas veikia kūną %1%, kurio šiuo istorijos momentu nėra"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "„%1%“ veikia kūną, sukurtą elemento, kuris buvo ištrintas arba paslėptas"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "„%1%“ veikia kūną, kurio šiuo istorijos momentu nėra"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "elementą naudoja vėlesnis elementas"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "„%1%“ naudoja „%2%“, todėl negali būti prieš jį"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "eskizo objektai nesudaro uždaro kontūro"
@@ -27340,9 +29951,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Atvira ties (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...ir dar atvirų galų: %1%"
+msgid "Open ends not shown: %1%"
+msgstr "Neparodyta atvirų galų: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "apsukimas: ašies linijos eskize nebėra — pasirinkite ašį iš naujo"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "apsukimas: ašies linija neturi ilgio"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -27490,6 +30110,30 @@ msgstr "nepavyko sukurti skylės kontūro"
msgid "hole cut failed"
msgstr "skylės išpjovimas nepavyko"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "sriegis: skersmuo turi būti ne mažesnis kaip 1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "sriegis: žingsnis turi būti didesnis nei 0.1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "sriegis: gylis turi būti nuo 0 iki 0.7 x žingsnio"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "sriegis: gylis per didelis šiam skersmeniui"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "sriegis: ilgis turi būti didesnis nei pusė žingsnio"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "sriegis: per daug vijų (ilgis / žingsnis turi būti mažesnis nei 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "vidiniam sriegiui reikia kūno"
@@ -27550,6 +30194,22 @@ msgstr "paviršiaus pašalinimas nepavyko"
msgid "delete_face produced no geometry"
msgstr "paviršiaus pašalinimas nesukūrė jokios geometrijos"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "loginė operacija: nėra tikslinio kūno"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "loginė operacija: nėra įrankio kūno — pasirinkite antrą kūną"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "loginė operacija: tikslinis ir įrankio kūnas yra tas pats kūnas"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "loginė operacija: kūnas neturi geometrijos"
+
# AI Translated
msgid "boolean operation failed"
msgstr "loginė operacija nepavyko"
@@ -27878,6 +30538,10 @@ msgstr "Modelio paveikslėliai"
msgid "Auxiliaries"
msgstr "Papildomi failai"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Juostos valymo bokštas"
+
# AI Translated
msgid "Project Filament List"
msgstr "Projekto gijų sąrašas"
@@ -27912,8 +30576,20 @@ msgstr "Išskaidymui reikia bent dviejų to paties medžiagos tipo gijų"
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "Medžiagų sąraše gali būti daugiausia %1% spalvų. Po išskaidymo (%2%) medžiagų skaičius viršytų %1%. Prieš išskaidydami, pagrindiniame lange ištrinkite nenaudojamas gijas."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Medžiagų sąraše gali būti daugiausia %1% spalva. Po medžiagų sąrašo išskaidymo medžiagų skaičius viršytų %1%. Prieš išskaidydami, pagrindiniame lange ištrinkite nenaudojamas gijas."
+msgstr[1] "Medžiagų sąraše gali būti daugiausia %1% spalvos. Po medžiagų sąrašo išskaidymo medžiagų skaičius viršytų %1%. Prieš išskaidydami, pagrindiniame lange ištrinkite nenaudojamas gijas."
+msgstr[2] "Medžiagų sąraše gali būti daugiausia %1% spalvų. Po medžiagų sąrašo išskaidymo medžiagų skaičius viršytų %1%. Prieš išskaidydami, pagrindiniame lange ištrinkite nenaudojamas gijas."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Medžiagų sąraše gali būti daugiausia %1% spalva. Po išskaidymo (%2%) medžiagų skaičius viršytų %1%. Prieš išskaidydami, pagrindiniame lange ištrinkite nenaudojamas gijas."
+msgstr[1] "Medžiagų sąraše gali būti daugiausia %1% spalvos. Po išskaidymo (%2%) medžiagų skaičius viršytų %1%. Prieš išskaidydami, pagrindiniame lange ištrinkite nenaudojamas gijas."
+msgstr[2] "Medžiagų sąraše gali būti daugiausia %1% spalvų. Po išskaidymo (%2%) medžiagų skaičius viršytų %1%. Prieš išskaidydami, pagrindiniame lange ištrinkite nenaudojamas gijas."
# AI Translated
msgid "Cyan"
@@ -27943,6 +30619,14 @@ msgstr "Žalia"
msgid "Blue"
msgstr "Mėlyna"
+# AI Translated
+# Needs human review: Color name followed by filament type; kept as the bare pattern because the color name is already translated and the type is a material code. Check word order reads right.
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -27950,7 +30634,1236 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "Dabartiniame gijų sąraše trūksta: %s. Po išskaidymo automatiškai bus sukurta mišriai gijai reikalinga projekto gija."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "Dabartiniame gijų sąraše nėra %s. Po išskaidymo automatiškai bus sukurta mišriai gijai reikalinga projekto gija."
+msgstr[1] "Dabartiniame gijų sąraše nėra %s. Po išskaidymo automatiškai bus sukurtos mišriai gijai reikalingos projekto gijos."
+msgstr[2] "Dabartiniame gijų sąraše nėra %s. Po išskaidymo automatiškai bus sukurtos mišriai gijai reikalingos projekto gijos."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Nepermatomumas"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -28046,10 +31959,6 @@ msgstr "Mano nustatymai"
msgid "Custom Printer Setup"
msgstr "Pasirinktinio spausdintuvo sąranka"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Pasirinktinis spausdintuvas"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Apibrėžti pasirinktinio spausdintuvo profilį"
@@ -28319,6 +32228,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Įkepti"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Įvesti tikslią reikšmę į slankiklį"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Redagavimo piktograma dešiniajame slankiklio gale"
+
# AI Translated
msgid "Texture displacement"
msgstr "Tekstūrinis reljefas"
@@ -28455,6 +32372,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Pašalinti tekstūrą"
+# AI Translated
+msgid "Adjust image"
+msgstr "Koreguoti vaizdą"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Ryškumas"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Kontrastas"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Aštrumas"
+
+# AI Translated
+msgid "Blur"
+msgstr "Suliejimas"
+
+# AI Translated
+msgid "Hue"
+msgstr "Spalvos tonas"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Išryškina smulkiausias vaizdo detales. Taikoma po suliejimo, todėl abu galima naudoti kartu: sulieskite triukšmą, tada paaštrinkite likusius kraštus."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Suliejamas pats vaizdas. Paties sluoksnio slankiklis „Glotninimas“ sušvelnina reljefą nekeisdamas vaizdo, todėl pirmiausia rinkitės jį."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Ši tekstūra yra pilkų atspalvių, todėl neturi spalvos tono, kurį būtų galima keisti."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Modelis atnaujinamas atleidus slankiklį. „Išsaugoti kaip kopiją“ įrašo pakoreguotą vaizdą į jūsų tekstūrų biblioteką ir nukreipia šį sluoksnį į jį."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Išsaugoti kaip kopiją"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Pašalinti tekstūrinio reljefo sluoksnį"
@@ -28591,6 +32552,15 @@ msgstr "Įrašyti kiekvieną užfiksuotą etapą kaip OBJ failą, kad juos būt
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Nupieštos srities nepavyko perkelti į pertinklintą modelį, todėl niekas nepakeista. Perjunkite į „Pro“ režimą ir pertinklinkite prieš piešdami."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Intervalas: nuo %1% iki %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Įveskite reikšmę, užuot vilkę. Tą patį atlieka Ctrl+spustelėjimas ant slankiklio."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -28697,8 +32667,8 @@ msgid "Click a triangle to paint it"
msgstr "Spustelėkite trikampį, kad jį nupieštumėte"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Aktyviajam sluoksniui turi būti priskirtas išskleidimas (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Tik tekstūros sluoksniui, kuriam priskirtas „Išskleidimas (LSCM)“ – norėdami naudoti šį rodinį, aktyvaus tekstūros sluoksnio parinktį „Tekstūros uždėjimas“ nustatykite į „Išskleidimas (LSCM)“."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -28713,16 +32683,16 @@ msgid "Checker"
msgstr "Šachmatinis raštas"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Šachmatinis raštas - bandomasis tinklelis vietoj tekstūros. Kur kvadratai lieka kvadratais, tekstūra neiškraipyta; kur jie ištempti, bus ištempta ir tekstūra"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Šachmatinis raštas - bandomasis tinklelis vietoj tekstūros. Kur kvadratai lieka kvadratais, tekstūra neiškraipyta; kur jie ištempti, bus ištempta ir tekstūra. Atveria UV redaktorių, jei jis uždarytas"
# AI Translated
msgid "Distortion"
msgstr "Iškraipymas"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Iškraipymas - išskleidimo ištempimo šiluminis žemėlapis nuo mėlynos iki raudonos"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Iškraipymas - išskleidimo ištempimo šiluminis žemėlapis nuo mėlynos iki raudonos. Atveria UV redaktorių, jei jis uždarytas"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -28748,6 +32718,10 @@ msgstr "Pasirinkite kitą šio sluoksnio paveikslėlį. Piešinys, gylis ir plyt
msgid "not painted"
msgstr "nenupiešta"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Ryškumas, kontrastas, aštrumas, suliejimas ir spalvos tonas rodomi vaizde ir modelyje, kai juos nustatote. „Išsaugoti kaip kopiją“ įrašo rezultatą į jūsų tekstūrų biblioteką ir nukreipia šį sluoksnį į jį."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Perkelti aukštyn - taikoma anksčiau"
@@ -28768,10 +32742,20 @@ msgstr "Reljefo aukštis: kiek balta tekstūros spalva pakelia paviršių, milim
msgid "Tile size"
msgstr "Plytelės dydis"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Tekstūra dedama pagal paties modelio UV išdėstymą, kuris jau nustato padėtį - viena tekstūros kopija jį dengia tiksliai, todėl plytelės dydžio nustatyti nereikia."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Kokio pločio yra viena tekstūros kopija ant modelio. Mažesnė reikšmė dažniau kartoja raštą ir smulkina jo detales; išjungus „Plytelės“, tai vienintelės kopijos dydis."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Pasuka tekstūrą paviršiuje, laipsniais - kad raštą būtų galima sulygiuoti su modelio briauna."
@@ -28839,28 +32823,36 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Pakaitomis naudoja dvi gijas, kad imituotų tarpines spalvas, todėl keliomis gijomis galima atkurti nuotrauką ar gradientą. Vienodų spalvų paveikslėlis abiem atvejais spausdinamas taip pat. Išjungus, kiekvienai sričiai naudojama viena gija."
# AI Translated
-msgid "Mix by"
-msgstr "Maišyti pagal"
+msgid "Mixed colors"
+msgstr "Mišrios spalvos"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Paviršius"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Didžiausias mišrių gijų skaičius, kurį gali pridėti įkepimas. Jos parenkamos iš tekstūros spalvų, ir sukuriamos tik tos, kurias įkepimas iš tikrųjų naudoja."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Sluoksniai: dvi gijos keičiasi spausdinimo sluoksniais; ant vertikalių paviršių spalvos sklandžiai susilieja, bet ant horizontalių išnyksta, nes ten visas sluoksnis yra viena juosta.\n"
-"Paviršius: smulkus šachmatinis raštas paviršiuje; veikia bet kokiu kampu, bet gali atrodyti kaip tekstūra, o ne kaip spalvų mišinys.\n"
-"Automatinis: vertikaliuose paviršiuose – sluoksniai; horizontaliems paviršiams naudojama artimiausia viena gija, nes šachmatinis raštas ten matytųsi kaip raštas."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "Spausdinamų spalvų: %1% (iš gijų: %2%)"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "iš %1% gijos"
+msgstr[1] "iš %1% gijų"
+msgstr[2] "iš %1% gijų"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% spausdinama spalva %2%"
+msgstr[1] "%1% spausdinamos spalvos %2%"
+msgstr[2] "%1% spausdinamų spalvų %2%"
# AI Translated
msgid "Denoise"
@@ -28911,6 +32903,18 @@ msgstr "Iš vaizdo"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Iš vaizdo - projektuoja tiesiai į nupieštą sritį iš ten, iš kur žiūrite, kaip skaidrių projektorius."
+# AI Translated
+msgid "Model UV"
+msgstr "Modelio UV"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "Modelio UV - naudojamos pačiam modeliui priskirtos tekstūros koordinatės, todėl tam modeliui sukurta tekstūra patenka būtent ten, kur buvo nupiešta. Niekas neišskleidžiama, o plytelės dydis netaikomas: padėtį nustato paties modelio išdėstymas."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Šis modelis neturi savų tekstūros koordinačių. Pagal jas galima išdėstyti tik modelį, importuotą su UV kanalu (pavyzdžiui, tekstūruotą OBJ)."
+
# AI Translated
msgid "Open UV editor"
msgstr "Atverti UV redaktorių"
@@ -28925,8 +32929,11 @@ msgstr "Dar neišskleista"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "UV salų: %1%"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% UV sala"
+msgstr[1] "%1% UV salos"
+msgstr[2] "%1% UV salų"
# AI Translated
msgid "Capture current view"
@@ -28956,10 +32963,6 @@ msgstr "Projekcijos rėmelis"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Atveria langą, kurį vilkite virš modelio. Tai, kas matoma pro jį, gauna tekstūrą, o jo kraštas tampa projekcijos riba."
-# AI Translated
-msgid "Opacity"
-msgstr "Nepermatomumas"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Kiek nepermatomas atrodo rėmelio langas, kol jį dedate. Sumažinkite, kad matytumėte modelį pro jį; rezultatui tai neturi įtakos."
@@ -29013,6 +33016,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Įtraukti"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Perrašyti"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -29032,8 +33040,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Po baziniu sluoksniu nėra nieko, su kuo jį būtų galima derinti, todėl jis visada pridedamas."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Ką šis sluoksnis daro ten, kur persidengia su apatiniais. „Įtraukti“ ir „Atimti“ prideda reljefo arba jį išpjauna. „Dauginti“ ir „Dalyti“ keičia to, kas apačioje, mastelį, todėl šis sluoksnis tampa jo kauke - tuomet „Gylis“ veikia kaip stiprumas, o 1 mm baltų sričių nekeičia."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Ką šis sluoksnis daro ten, kur persidengia su apatiniais. „Įtraukti“ ir „Atimti“ prideda reljefo arba jį išpjauna. „Perrašyti“ pakeičia apatinius sluoksnius, todėl nupieštoje vietoje lieka tik šio sluoksnio reljefas. „Dauginti“ ir „Dalyti“ keičia to, kas apačioje, mastelį, todėl šis sluoksnis tampa jo kauke - tuomet „Gylis“ veikia kaip stiprumas, o 1 mm baltų sričių nekeičia."
# AI Translated
msgid "Adjust placement"
@@ -29057,8 +33065,11 @@ msgstr "Daugiau nustatymų"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Panaudoti visi sluoksniai (%1%)"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Panaudotas visas %1% sluoksnis"
+msgstr[1] "Panaudoti visi %1% sluoksniai"
+msgstr[2] "Panaudota visų %1% sluoksnių"
# AI Translated
msgid "Add layer"
@@ -29138,8 +33149,11 @@ msgstr "Trikampių biudžetas: nustatomas žemiau, ties „Trikampiai“."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Peržiūra – trikampių: %1%"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Peržiūra: %1% trikampis"
+msgstr[1] "Peržiūra: %1% trikampiai"
+msgstr[2] "Peržiūra: %1% trikampių"
# AI Translated
msgid "Steps"
@@ -29181,6 +33195,12 @@ msgstr "Pertinklinimas"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Trikampių dydis, kuriuo perkuriamas visas modelis, milimetrais. Reljefas geriausiai formuojamas ant tolygaus tinklelio; būtent ši parinktis iš netolygaus importuoto modelio padaro tolygų."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Išlaikyti aštrias briaunas"
@@ -29315,14 +33335,6 @@ msgstr "Reikia apie %1% trikampių, biudžetas %2% - įkepimas supaprastins tink
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Kiek tūkstančių trikampių smulkinimas gali pridėti prie modelio. Visada pirmiausia dalijamas prasčiausiai atitinkantis trikampis, todėl net išnaudojus visą biudžetą jis panaudojamas ten, kur labiausiai matyti. Padidinkite, jei reljefas vis dar atrodo šiurkštus."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Sustabdo įkepimą. Tai, kas jau atlikta, lieka modelyje ir gali būti atšaukta."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Uždaro įrankį neįkepus. Jūsų piešinys, sluoksniai ir nustatymai lieka su modeliu."
-
# AI Translated
msgid "Preparing..."
msgstr "Ruošiama..."
@@ -29347,35 +33359,61 @@ msgstr "Paverčia nupieštus aukščių žemėlapius tikra geometrija, perkeldam
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Paverčia nupieštus aukščių žemėlapius tikra geometrija. Pirmiausia tinklelis pertinklinamas iki tolygaus tankio ir smulkinamas ten, kur tekstūra lenkiasi, kad detalėms atsirastų viršūnių - viskas vienu žingsniu."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Sustabdo įkepimą. Tai, kas jau atlikta, lieka modelyje ir gali būti atšaukta."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Uždaro įrankį neįkepus. Jūsų piešinys, sluoksniai ir nustatymai lieka su modeliu."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% tūkst."
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Modelyje trikampių: %1% - įkepimas smulkina iki aukščiau nurodytos skiriamosios gebos, neviršydamas biudžeto"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Modelis: %1% trikampis - įkepimas smulkina iki aukščiau nurodytos skiriamosios gebos, neviršydamas biudžeto"
+msgstr[1] "Modelis: %1% trikampiai - įkepimas smulkina iki aukščiau nurodytos skiriamosios gebos, neviršydamas biudžeto"
+msgstr[2] "Modelis: %1% trikampių - įkepimas smulkina iki aukščiau nurodytos skiriamosios gebos, neviršydamas biudžeto"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Įkepimas perkelia esamas viršūnes - modelis lieka su %1% trikampiu"
+msgstr[1] "Įkepimas perkelia esamas viršūnes - modelis lieka su %1% trikampiais"
+msgstr[2] "Įkepimas perkelia esamas viršūnes - modelis lieka su %1% trikampių"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Įkepimas perkelia esamas viršūnes - modelyje lieka trikampių: %1%"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Įkepimo rezultatas – iki ~%1% tūkst. trikampių"
+msgstr[1] "Įkepimo rezultatas – iki ~%1% tūkst. trikampių"
+msgstr[2] "Įkepimo rezultatas – iki ~%1% tūkst. trikampių"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Įkepimo rezultatas – iki ~%1% tūkst. trikampių"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "Nenupieštų sluoksnių: %1%, praleista"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% sluoksnis nenupieštas, praleistas"
+msgstr[1] "%1% sluoksniai nenupiešti, praleisti"
+msgstr[2] "%1% sluoksnių nenupiešta, praleista"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% – nenupiešta, praleista"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% – nenupiešta, praleista"
+msgstr[1] "%1% – nenupiešta, praleista"
+msgstr[2] "%1% – nenupiešta, praleista"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29393,6 +33431,10 @@ msgstr "Tekstūrinio reljefo redagavimas"
msgid "Choose SLA archive:"
msgstr "Pasirinkite SLA archyvą:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "SL1 / SL1S archyvo failai"
+
# AI Translated
msgid "Import file"
msgstr "Importuoti failą"
@@ -29563,6 +33605,34 @@ msgstr "Gijų papildiniai"
msgid "Printer plugins"
msgstr "Spausdintuvo papildiniai"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Šis profilis nenaudoja jokių papildinių galimybių"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Šio profilio naudojamos galimybės"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Galimybės konfigūracija (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Papildinio konfigūracija"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Atmesti šio profilio perrašymą ir vėl naudoti bendrąją konfigūraciją"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Atkurti numatytąsias reikšmes"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "Netinkamas JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "Konfigūracija nėra tinkamas JSON. Jūsų pakeitimai neišsaugoti."
@@ -29582,10 +33652,6 @@ msgstr ""
"\n"
"Tai atmes profilyje perrašytą konfigūraciją ir bus naudojama bendroji konfigūracija."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Atkurti numatytąsias reikšmes"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Naudojama bendroji konfigūracija. Išsaugokite profilį, kad tai išliktų."
@@ -29611,10 +33677,6 @@ msgstr "Atsisakyti prenumeratos"
msgid "Overwrite Plugin"
msgstr "Perrašyti papildinį"
-# AI Translated
-msgid "Show in folder"
-msgstr "Rodyti aplanke"
-
# AI Translated
msgid "Reinstall"
msgstr "Įdiegti iš naujo"
@@ -29623,6 +33685,10 @@ msgstr "Įdiegti iš naujo"
msgid "Delete cache and reload"
msgstr "Ištrinti podėlį ir įkelti iš naujo"
+# AI Translated
+msgid "No description."
+msgstr "Nėra aprašymo."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Pasirinkite .py arba .whl papildinio paketą."
@@ -29655,6 +33721,293 @@ msgstr "Diegiamas papildinys"
msgid "Installed \"%s\"."
msgstr "Įdiegta: „%s“."
+# AI Translated
+msgid "Search plugins"
+msgstr "Ieškoti papildinių"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Išvalyti paiešką"
+
+# AI Translated
+msgid "Match case"
+msgstr "Skirti didžiąsias ir mažąsias raides"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Tik ištisi žodžiai"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Daugiau papildinių diegimo parinkčių"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Įdiegti papildinį"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Įdiegti vietinį papildinį"
+
+# AI Translated
+msgid "Activate"
+msgstr "Aktyvuoti"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Rikiuoti pagal pavadinimą"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Rikiuoti pagal versiją"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Papildinio versija"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Rikiuoti pagal šaltinį"
+
+# AI Translated
+msgid "Source"
+msgstr "Šaltinis"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Rikiuoti pagal būseną"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Būsena"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Vilkite, kad pakeistumėte dydį; dukart spustelėkite, kad atkurtumėte"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Keisti papildinių sąrašo dydį"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Išsami papildinio informacija"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Papildinio informacija"
+
+# AI Translated
+msgid "Description"
+msgstr "Aprašymas"
+
+# AI Translated
+msgid "Config"
+msgstr "Konfigūracija"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Pakeitimų žurnalas"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnostika"
+
+# AI Translated
+msgid "Types"
+msgstr "Tipai"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Įdiegta versija"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Naujausia versija"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Atnaujinti iki naujausios versijos"
+
+# AI Translated
+msgid "No description available"
+msgstr "Aprašymo nėra"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Pasirinkite papildinį, kad sukonfigūruotumėte jo galimybes"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Konfigūruojamos galimybės"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Atmesti šiai galimybei išsaugotus nustatymus ir atkurti numatytuosius papildinio nustatymus"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Papildinio pakeitimų žurnalas"
+
+# AI Translated
+msgid "Date"
+msgstr "Data"
+
+# AI Translated
+msgid "Changes"
+msgstr "Pakeitimai"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Pakeitimų žurnalo nėra"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Problemų neaptikta"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Papildinių nerasta"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Nėra papildinių, atitinkančių „%s“"
+
+# AI Translated
+msgid "Mine"
+msgstr "Mano"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Prenumeruojami"
+
+# AI Translated
+# Needs human review: Plugin source label (Plugins dialog) for a plugin no longer subscribed or available in OrcaCloud; check the word reads naturally, and keep it identical to the 'Orphaned:' prefix of the status text.
+msgid "Orphaned"
+msgstr "Našlaitinis"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Vietiniai"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Įjungtos kai kurios papildinio galimybės"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Sutraukti „%s“ galimybes"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Išskleisti „%s“ galimybes"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Sutraukti galimybes"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Išskleisti galimybes"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Atverti šį papildinį naršyklėje"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Galimybės: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Galimybės"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Paleisti „%s“"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Įjungti %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Neautorizuotas atnaujinimams"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Įkeliamas papildinys…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Šis papildinys neteikia jokių galimybių"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Aktyvuokite šį papildinį, kad galėtumėte konfigūruoti jo galimybes"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Peržiūrėkite OrcaCloud čia "
+
+# AI Translated
+msgid "Activated"
+msgstr "Aktyvuotas"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Vykdymo klaida"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Neaktyvus"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Šis papildinys aktyvus ir paruoštas naudoti."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Šis papildinys dar įkeliamas."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Šis papildinys užblokuotas, kol bus ištaisyta jo klaida."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Šis papildinys įkeltas, tačiau viena iš jo galimybių pranešė apie klaidą."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Šis papildinys neaktyvus. Aktyvuokite jį, kad jis būtų įdiegtas arba įkeltas."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Pasirinkite papildinį, kad peržiūrėtumėte jo būseną ir informaciją."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Našlaitinis: šio papildinio prenumerata nebegalioja arba jis nebeprieinamas OrcaCloud. Vietinė kopija lieka įdiegta ir ją vis dar galima naudoti."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Yra naujesnė papildinio versija."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Atnaujinimai iš debesijos neprieinami, nes šis papildinys neautorizuotas atnaujinimams."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -29871,6 +34224,57 @@ msgstr "Nepavyko iš naujo įkelti papildinio."
msgid "Reloaded \"%s\"."
msgstr "Iš naujo įkelta: „%s“."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Spausdintuvo ryšys"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Nustatykite spausdintuvo ryšį, kad galėtumėte peržiūrėti įrenginį."
+
+msgid "No model information"
+msgstr "Nėra informacijos apie modelį"
+
+msgid "Edit Project Info"
+msgstr "Redaguoti projekto informaciją"
+
+msgid "Model Information"
+msgstr "Modelio informacija"
+
+msgid "Accessories"
+msgstr "Priedai"
+
+msgid "Profile Information"
+msgstr "Profilio informacija"
+
+msgid "Model name"
+msgstr "Modelio pavadinimas"
+
+msgid "Created by"
+msgstr "Sukurta"
+
+msgid "Remixed by"
+msgstr "Perkurta"
+
+msgid "Shared by"
+msgstr "Pasidalinta"
+
+msgid "Model description"
+msgstr "Modelio aprašymas"
+
+# AI Translated
+msgid "BOM"
+msgstr "Komponentų ir medžiagų žiniaraštis (BOM)"
+
+msgid "Profile name"
+msgstr "Profilio pavadinimas"
+
+msgid "Profile Author"
+msgstr "Profilio autorius"
+
+msgid "Profile description"
+msgstr "Profilio aprašymas"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Pravalymo režimo nustatymai"
@@ -29895,6 +34299,19 @@ msgstr "Sumažina pravalymo atliekas ir spausdina greičiau. Spalvos gali šiek
msgid "Terminal"
msgstr "Terminalas"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... arba uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Papildinių terminalas paruoštas."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Procesas baigėsi su kodu: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Komanda jau vykdoma."
@@ -29941,8 +34358,11 @@ msgstr "Naujos mišrios gijos"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Projekte gali būti daugiausia gijų: %d. Perteklinės gijos bus atmestos."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Projekte gali būti daugiausia %d gija. Perteklinės gijos bus atmestos."
+msgstr[1] "Projekte gali būti daugiausia %d gijos. Perteklinės gijos bus atmestos."
+msgstr[2] "Projekte gali būti daugiausia %d gijų. Perteklinės gijos bus atmestos."
# AI Translated
msgid "Import Model"
@@ -30029,8 +34449,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Skaičiavimas nepavyko. Pakoreguokite parametrus ir bandykite dar kartą."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "Tinklelyje yra ne daugialypės (non-manifold) geometrijos arba atvirų kraštų. Galite jį importuoti tokį, koks yra, arba prieš importuodami sutaisyti „Windows“ 3D taisymo paslauga."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "Tinklelyje yra ne daugialypės (non-manifold) geometrijos arba atvirų kraštų. Galite jį importuoti tokį, koks yra, arba prieš importuodami sutaisyti."
# AI Translated
msgid "Mesh repair"
@@ -30044,14 +34464,6 @@ msgstr "Importuoti netaisant"
msgid "Repair and import"
msgstr "Sutaisyti ir importuoti"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Atkreipkite dėmesį, kad tinklelyje yra ne daugialypės (non-manifold) geometrijos arba atvirų kraštų."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Tinklelio problema"
-
# AI Translated
msgid "The selected image is empty."
msgstr "Pasirinktas paveikslėlis tuščias."
@@ -30060,6 +34472,14 @@ msgstr "Pasirinktas paveikslėlis tuščias."
msgid "Failed to prepare the texture for use."
msgstr "Nepavyko paruošti tekstūros naudojimui."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Nepavyko sukurti aplanko importuotoms tekstūroms."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Nepavyko išsaugoti importuotos tekstūros."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Pašalinti galima tik jūsų pačių importuotas tekstūras."
@@ -30068,18 +34488,10 @@ msgstr "Pašalinti galima tik jūsų pačių importuotas tekstūras."
msgid "Could not delete the texture file."
msgstr "Nepavyko ištrinti tekstūros failo."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Nepavyko sukurti aplanko importuotoms tekstūroms."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Nepavyko įkelti pasirinkto paveikslėlio."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Nepavyko išsaugoti importuotos tekstūros."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Nepavyko nuskaityti tekstūros failo."
@@ -30123,8 +34535,11 @@ msgstr "Pasirinkite išskleidimą kaip tekstūros sluoksnio uždėjimo būdą, k
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Pasirinkta viršūnių: %d | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Pasirinkta %d viršūnė | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti"
+msgstr[1] "Pasirinktos %d viršūnės | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti"
+msgstr[2] "Pasirinkta %d viršūnių | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30132,8 +34547,11 @@ msgstr "Viršūnių režimas: vilkite viršūnę, kad pakeistumėte formą | S
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Pasirinkta briaunų: %d | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Pasirinkta %d briauna | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti"
+msgstr[1] "Pasirinktos %d briaunos | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti"
+msgstr[2] "Pasirinkta %d briaunų | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30141,8 +34559,11 @@ msgstr "Briaunų režimas: vilkite UV salos briauną, kad pakeistumėte formą
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "Pasirinkta UV salų: %d | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti, R/S = pasukti / keisti pagrindinės salos mastelį"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "Pasirinkta %d UV sala | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti, R/S = pasukti / keisti pagrindinės salos mastelį"
+msgstr[1] "Pasirinktos %d UV salos | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti, R/S = pasukti / keisti pagrindinės salos mastelį"
+msgstr[2] "Pasirinkta %d UV salų | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti, R/S = pasukti / keisti pagrindinės salos mastelį"
# AI Translated
#, c-format, boost-format
@@ -30161,6 +34582,10 @@ msgstr " | pritraukimas ĮJUNGTAS"
msgid "Change texture - choose another one from the texture library"
msgstr "Keisti tekstūrą - pasirinkite kitą iš tekstūrų bibliotekos"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Aktyvaus tekstūros sluoksnio plytelės dydis: kokią modelio dalį dengia vienas tekstūros pasikartojimas. Drobė matuojama plytelėmis, todėl vienas tinklelio langelis yra vienas pasikartojimas. Keisti galite sluoksnio nustatymuose, parinktimi „Plytelės dydis“."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Aukščių žemėlapis - rodyti sluoksnio tekstūrą po UV salomis"
@@ -30194,16 +34619,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Išdėstyti išskleidimą kaip sujungtą išklotinę: dalys, turinčios bendrą briauną, išskleidžiamos greta viena kitos (kubas tampa sujungta išklotine, o ne šešiais atskirais kvadratais). Jos lieka atskiromis UV salomis, todėl vėliau bet kurią iš jų vis tiek galite perkelti rankiniu būdu."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "UV sala - perkelti, pasukti ir keisti ištisų UV salų mastelį"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "UV sala - dirbti su ištisomis UV salomis. Spustelėkite vieną, kad ją pasirinktumėte, tada vilkite, kad perkeltumėte, vilkite dešiniuoju pelės mygtuku, kad pasuktumėte, arba paspauskite R, kad pasuktumėte, ir S, kad keistumėte mastelį pele (spustelėkite arba paspauskite Enter, kad patvirtintumėte, Esc – kad atšauktumėte)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Viršūnė - vilkite viršūnes, kad pakeistumėte formą; Shift/Ctrl – kelių pasirinkimas"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Viršūnė - vilkite viršūnes, kad rankiniu būdu pakeistumėte UV salos formą; Shift prideda prie pasirinkimo, Ctrl įtraukia viršūnę į pasirinkimą arba iš jo pašalina."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Briauna - vilkite briaunas, kad pakeistumėte formą; Shift/Ctrl – kelių pasirinkimas"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Briauna - vilkite briaunas, kad rankiniu būdu pakeistumėte UV salos formą; Shift prideda prie pasirinkimo, Ctrl įtraukia briauną į pasirinkimą arba iš jo pašalina."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30242,8 +34667,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Pritraukimas - vilkdami vieną UV salą prie kitos, sulipdyti jas"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Sutalpinti visas UV salas (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Parodyti visas UV salas, kad visos tilptų rodinyje (Home arba F).\n"
+"Kitur drobėje: slinkite pelės ratuku, kad keistumėte mastelį aplink žymeklį, o vilkite viduriniu pelės mygtuku - arba vilkite tuščią vietą - kad paslinktumėte vaizdą."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Kas pasirinkta, ir tikslūs perkėlimo, pasukimo ar mastelio keitimo skaičiai, kol vilkite."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30254,6 +34687,10 @@ msgstr "Nėra sluoksnio, kuriam priskirtas išskleidimas"
msgid "%.1f mm tile"
msgstr "%.1f mm plytelė"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Skydelis seka aktyvų tekstūros sluoksnį, kuriam turi būti priskirtas „Išskleidimas (LSCM)“. Pridėkite tekstūros sluoksnį ir jo parinktį „Tekstūros uždėjimas“ nustatykite į „Išskleidimas (LSCM)“."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Pasenęs - nuo šio išskleidimo pasikeitė piešinys, UV siūlės arba UV siūlės kampas. Paspauskite, kad išskleistumėte iš naujo."
@@ -30262,19 +34699,71 @@ msgstr "Pasenęs - nuo šio išskleidimo pasikeitė piešinys, UV siūlės arba
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Ištiesinti nupieštą sritį į UV salas. Skaičiuojama tik paspaudus šį mygtuką, o ne po kiekvieno pakeitimo - todėl pirmiausia pieškite, keiskite UV siūlės kampą ar žymėkite UV siūles, tada paspauskite „Išskleisti“."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Pirmiausia įjunkite „Žymėti UV siūles“ - „Kelias“ yra greitesnis būdas jas pažymėti."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Šiame sluoksnyje nepažymėta jokių UV siūlių."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Nė viena UV sala nebuvo pakeista rankiniu būdu, todėl nėra ką atmesti."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "UV salų: %d, paviršių: %s"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d UV sala"
+msgstr[1] "%d UV salos"
+msgstr[2] "%d UV salų"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s paviršius"
+msgstr[1] "%s paviršiai"
+msgstr[2] "%s paviršių"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Kaip nupiešta sritis buvo išskleista: į kiek atskirų dalių ji buvo perkirpta (ties UV siūlėmis ir ties briaunomis, aštresnėmis už UV siūlės kampą) ir kiek iš viso trikampių jos turi."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Pirmiausia paspauskite „Išskleisti“ - dar nėra UV salų, su kuriomis būtų galima dirbti."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Pirmiausia drobėje spustelėkite UV salą, įjungę režimą „UV sala“."
+
+# AI Translated
+# Needs human review: Short badge (about three letters) for a published project; PSK is short for 'paskelbta'. Check it is recognizable, or keep PUB.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "PSK"
+
+msgid "Not signed in"
+msgstr "Neprisiregistruota"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Neaptiktas Bambu tinklo papildinys. Spustelėkite čia jo diegimui."
+
+msgid "Create new project"
+msgstr "Sukurti naują projektą"
+
+msgid "Recently opened"
+msgstr "Neseniai atidaryti"
+
+msgid "Open Containing Folder"
+msgstr "Atidaryti katalogą, kuriame yra"
# AI Translated
msgid "Forward"
msgstr "Pirmyn"
-# AI Translated
-msgid "Tools"
-msgstr "Įrankiai"
-
# AI Translated
msgid "View Source"
msgstr "Rodyti šaltinį"
@@ -30346,6 +34835,75 @@ msgstr "Įkelti %1%: %2%"
msgid "Load %s"
msgstr "Įkelti %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Nepavyko įjungti spausdintuvo agento „%1%“: agento ID „%2%“ jau užregistravo papildinio „%4%“ galimybė „%3%“."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Nepavyko įjungti spausdintuvo agento „%1%“: agento ID „%2%“ jau užregistruotas „%3%“."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Failas įkeltas"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Įkeliamas G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Pradedamas spausdinimas..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Spausdinimas pradėtas"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Įkeliama..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Nenurodyta tinklo bibliotekos versija"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Tinklo biblioteka nerasta"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Nepavyko įkelti tinklo bibliotekos"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Tinklo bibliotekos įkelti nepavyko"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Senesnė papildinio serija. Funkcijos, kurioms reikia naujesnio papildinio palaikymo, pavyzdžiui, spausdinimo nesėkmės momentinės nuotraukos įrenginio klaidos dialogo lange, nepasiekiamos."
+
+# AI Translated
+msgid "unknown name"
+msgstr "nežinomas pavadinimas"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"Papildinys „%s“ prašo leidimo skaityti iš failų sistemos:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Papildinio leidimai"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -30360,36 +34918,72 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"Papildinys „%s“ prašo leidimo skaityti šį failą:\n"
+"%s"
+msgstr[1] ""
+"Papildinys „%s“ prašo leidimo skaityti šiuos failus:\n"
+"%s"
+msgstr[2] ""
"Papildinys „%s“ prašo leidimo skaityti šiuos failus:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"Papildinys „%s“ prašo leidimo skaityti ir rašyti šį failą:\n"
+"%s"
+msgstr[1] ""
+"Papildinys „%s“ prašo leidimo skaityti ir rašyti šiuos failus:\n"
+"%s"
+msgstr[2] ""
"Papildinys „%s“ prašo leidimo skaityti ir rašyti šiuos failus:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"Papildinys „%s“ prašo leidimo sukurti šį failą:\n"
+"%s"
+msgstr[1] ""
+"Papildinys „%s“ prašo leidimo sukurti šiuos failus:\n"
+"%s"
+msgstr[2] ""
"Papildinys „%s“ prašo leidimo sukurti šiuos failus:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"Papildinys „%s“ prašo leidimo ištrinti šį failą:\n"
+"%s"
+msgstr[1] ""
+"Papildinys „%s“ prašo leidimo ištrinti šiuos failus:\n"
+"%s"
+msgstr[2] ""
"Papildinys „%s“ prašo leidimo ištrinti šiuos failus:\n"
"%s"
@@ -30414,10 +35008,33 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"Papildinys „%s“ prašo leidimo vykdyti šią komandą:\n"
+"%s"
+msgstr[1] ""
+"Papildinys „%s“ prašo leidimo vykdyti šias komandas:\n"
+"%s"
+msgstr[2] ""
+"Papildinys „%s“ prašo leidimo vykdyti šias komandas:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "Papildinys „%s“ prašo leidimo sukurti vykdymo giją."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"Papildinys „%s“ prašo leidimo vykdyti šias komandas:\n"
+"Papildinys „%s“ prašo veikiančią programą pakeisti šia:\n"
"%s"
# AI Translated
@@ -30429,6 +35046,47 @@ msgstr "Papildinys „%s“ prašo leidimo Python audito įvykiui „%s“."
msgid "Plugin permission request"
msgstr "Papildinio leidimo užklausa"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "Profilis saugo netinkamą papildinio galimybės konfigūracijos JSON."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "Profilio papildinio galimybės konfigūracija nėra masyvas, todėl jos redaguoti negalima."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Spausdintuvo ryšys"
+
+# AI Translated
+msgid "Pages"
+msgstr "Puslapiai"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Analizė"
+
+# AI Translated
+msgid "Importer"
+msgstr "Importavimo priemonė"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Eksportavimo priemonė"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Vizualizacija"
+
+# AI Translated
+msgid "Script"
+msgstr "Scenarijus"
+
+# AI Translated
+# Needs human review: Plugin capability type (a step plugged into the slicing pipeline), shown in the Plugins dialog Types list; check the term.
+msgid "Slicing Pipeline"
+msgstr "Sluoksniavimo grandinė"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "Papildinio konfigūracijos sąsaja tuščia. Rodomas numatytasis redaktorius."
@@ -30451,8 +35109,346 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Konfigūracijos nepavyko įrašyti į diską. Niekas nepakeista."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Papildinio įdiegti nepavyko"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Nepavyko įdiegti papildinio: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: įdiegto papildinio kataloge nerasta."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "Debesies papildinio rakte trūksta UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Nepavyko užsiprenumeruoti debesies papildinio, daugiau informacijos žr. žurnaluose."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Prenumeratą galima atsisakyti tik debesies papildiniams."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Nepavyko atsisakyti papildinio prenumeratos, daugiau informacijos žr. žurnaluose."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Nepavyko gauti papildinio atsisiuntimo URL (rezultatas %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Neturite teisės atsisiųsti šio debesies papildinio."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Šiai operacinei sistemai papildinio paketo nėra."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "Pasirinkta papildinio versija nerasta."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "Papildinio versija %1% nerasta."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Debesies papildinys nerastas."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Debesies papildinio atsisiuntimas nerastas: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Debesies papildinio atsisiuntimas nerastas."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Šiam papildiniui nėra atsisiuntimo URL. Patikrinkite žurnalus, ar nėra klaidų."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Nepavyko atsisiųsti papildinio: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Papildinio atsisiuntimas nepavyko, HTTP būsena %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Papildinio atsisiuntimas grąžino tuščius duomenis."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Nepavyko sukurti laikinojo failo papildinio atsisiuntimui."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Nepavyko įrašyti papildinio duomenų į laikinąjį failą."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Nepavyko nustatyti papildinio aplanko: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Nepavyko ištrinti papildinio aplanko %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Papildinio katalogo nėra: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "Papildinio kataloge yra keli .py failai: %1% ir %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "Papildinio kataloge yra keli .whl failai: %1% ir %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "Papildinio kataloge yra ir .py, ir .whl įėjimo failai"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "Papildinio kataloge nėra .py ar .whl įėjimo failo"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Sluoksniavimo konvejerio papildinio „%1%“ klaida: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Papildinio paketas turi būti .py arba .whl failas, gauta: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Nepavyko išskleisti papildinio .whl priklausomybės %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Nepavyko įtraukti .whl priklausomybės į sys.path: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Python interpretatorius neinicializuotas: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Netinkamas papildinio manifestas: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Nepavyko įdiegti papildinio priklausomybių: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Nepavyko įkelti papildinio modulio: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Papildinio registracija nepavyko: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Papildinio modulis neužregistravo jokių galimybių"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Papildinys deklaruoja pasikartojančią galimybę „%1%“ tipui %2%"
+
+# AI Translated
+# Needs human review: 'Materialization' (creating the usable capability objects from the plugin's declared capabilities) is a developer term; check it reads acceptably.
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Papildinio galimybės materializavimas nepavyko: %1%"
+
+# AI Translated
+# Needs human review: 'Materialization' (creating the usable capability objects from the plugin's declared capabilities) is a developer term; check it reads acceptably.
+msgid "Plugin capability materialization failed"
+msgstr "Papildinio galimybės materializavimas nepavyko"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Papildinio on_load nepavyko: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Papildinio on_load nepavyko"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Papildinio paketas nėra failas: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "Debesies papildinio UUID nėra tinkamas identifikatorius: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Nepavyko sukurti papildinio katalogo %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Nepavyko sukurti esamo papildinio %1% atsarginės kopijos: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Nepavyko nukopijuoti papildinio failo į %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Nepavyko įrašyti papildinio diegimo būsenos: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Papildinio paketas jau įkeltas: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Galimybių kolizija tipui %1% ir pavadinimui „%2%“"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Aptiktas pasikartojantis papildinio raktas: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Papildinio įkėlimas dar vyksta"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Papildinys netinkamas: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Papildinys nerastas: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Netikėta papildinio įkėlimo klaida: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Netikėta papildinio įkėlimo klaida"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Papildinio manifestas nerastas: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Nepavyko gauti papildinių iš debesies. Išsamiau žr. žurnaluose."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Prisijunkite prie OrcaCloud, kad įdiegtumėte šį papildinį."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud negrąžino užsiprenumeruoto debesies papildinio."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Nepavyko atsisiųsti debesies papildinio."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Nepavyko įdiegti debesies papildinio."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Atnaujinti galima tik debesies papildinius."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Šiam papildiniui naujinio nėra."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Atsisakoma ištrinti papildinį, esantį už žinomų papildinių katalogų ribų."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Atsisakoma atnaujinti papildinio, esančio už žinomų papildinių katalogų ribų."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Papildinio palikti vietinio negalima: vietinis papildinio raktas jau yra: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Nepavyko atnaujinti papildinio diegimo būsenos: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Negalima atsisakyti savo papildinių prenumeratos."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Ištrinti ir atsisakyti prenumeratos galima tik debesies papildiniams."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Negalima atsisakyti savo papildinių prenumeratos. Vietiniams failams pašalinti naudokite „Ištrinti“."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Papildinio failų sistemos skaitymo leidimo užklausa atmesta"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30486,6 +35482,10 @@ msgstr "dvipusio išspaudimo sujungimas nepavyko"
msgid "imported regions produced no extrudable geometry"
msgstr "importuotos sritys nesukūrė išspaudžiamos geometrijos"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "profilis kerta apsukimo ašį — jis turi būti vienoje jos pusėje"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Nepavyko apsukti"
@@ -30522,6 +35522,10 @@ msgstr "Nepavyko sukurti įdubos paviršiaus"
msgid "Pocket cut failed"
msgstr "Įdubos išpjovimas nepavyko"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "profilis kertasi arba užsilenkia pats ant savęs, todėl neapriboja vienos srities"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "eskize nėra uždaro kontūro"
@@ -30554,10 +35558,26 @@ msgstr "mesh_to_brep: tinklelyje nėra trikampių"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: visi trikampiai atmesti kaip išsigimę (pabandykite mažesnę leistinąją paklaidą)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "suapvalinimo spindulys turi būti didesnis už 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "toje grupėje nėra briaunų suapvalinimui"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "suapvalinimo spindulys per didelis šiai geometrijai"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "nuožulos atstumas turi būti didesnis už 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "toje grupėje nėra briaunų nuožulai"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "nuožulos atstumas per didelis šiai geometrijai"
@@ -30570,6 +35590,153 @@ msgstr "apply_fillet: OCCT suapvalinimas nepavyko"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: OCCT nuožula nepavyko"
+# AI Translated
+msgid "empty component list"
+msgstr "tuščias komponentų sąrašas"
+
+# AI Translated
+msgid "empty component index"
+msgstr "tuščias komponento indeksas"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "komponento indeksas turi būti >= 1 (gauta %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "netinkamas komponento indeksas „%1%“"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "reikia bent 2 komponentų (gauta %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "pasikartojantis komponento indeksas %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "tuščia santykio reikšmė"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "santykis turi būti teigiamas (gauta %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "netinkamas santykis „%1%“"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "santykių skaičius turi sutapti su komponentų skaičiumi: tikėtasi %1%, gauta %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "tikėtasi dviejų kableliais atskirtų slankiojo kablelio skaičių, pvz., „0.10,0.90“"
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "pradžios ir pabaigos santykiai turi būti intervale (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "masyvo dydis %1% nesutampa su gijų lizdų skaičiumi %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "turi būti nustatyta, kai nurodomi mišrios gijos parametrai"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "lizdas %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "lizdas %1%: komponentas %2% už ribų (didžiausias fizinės gijos indeksas yra %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "lizdas %1%: negali nurodyti savęs kaip komponento"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "lizdas %1%: komponentas %2% nurodo mišrios gijos lizdą"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "lizdas %1%: gradientui reikia lygiai 2 komponentų"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "lizdas %1%: netinkama kreivė (reikia bent 2 tinkamų valdymo taškų)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Nepavyko įkelti konfigūracijos failo „%1%“: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Tai ne %1% sugeneruotas G-code failas."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Konfigūracijos žymė „%1%“ nerasta"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Įtartinai mažai konfigūracijos verčių išgauta iš %1%: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"STEP failo įkėlimas nepavyko.\n"
+"Nepavyksta atidaryti failo skaitymui.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "SVG importas nepavyko: nepavyko atidaryti SVG."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "SVG importas nepavyko: nepavyko išanalizuoti importuotų SVG duomenų."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Pasirinktinis G-code pateikia neigiamą z_retracted."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Pasirinktinis G-code pateikia neigiamą z_restart_extra."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Katalogo %1% kopijavimas į %2% nepavyko: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Autentifikavimas baigtas"
@@ -30926,6 +36093,7 @@ msgstr ""
"Suskirstykite spaudinius į pagrindus\n"
"Ar žinojote, kad daug dalių turintį modelį galite padalyti į atskirus, spausdinimui paruoštus pagrindus? Tai supaprastins visų dalių sekimo procesą."
+# AI Translated
#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer
#: Height]
msgid ""
@@ -30933,7 +36101,7 @@ msgid ""
"Did you know that you can print a model even faster by using the Adaptive Layer Height option? Check it out!"
msgstr ""
"Paspartinkite spausdinimą naudodami prisitaikantį sluoksnio aukštį\n"
-"Ar žinojote, kad naudodami prisitaikančio sluoksnio aukščio (Adaptive Layer Height) parinktį modelį galite atspausdinti dar greičiau? Išbandykite!"
+"Ar žinojote, kad naudodami prisitaikančio sluoksnio aukščio parinktį modelį galite atspausdinti dar greičiau? Išbandykite!"
#: resources/data/hints.ini: [hint:Support painting]
msgid ""
@@ -31016,6 +36184,1106 @@ msgstr ""
"Venkite deformacijų (warping)\n"
"Ar žinojote, kad spausdinant medžiagas, kurios yra linkusios trauktis ir riestis (pvz., ABS), tinkamas kaitinamojo pagrindo temperatūros padidinimas gali sumažinti deformacijų (warping) tikimybę?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Pasirinkite gijos spalvą"
+
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Tiltelio linijos plotis. Jei išreikštas procentais (%), jis bus skaičiuojamas nuo purkštuko skersmens.\n"
+#~ "Rekomenduojama naudoti su didesniu tiltelio tankiu arba išorinio tilto srauto koeficientu.\n"
+#~ "\n"
+#~ "Maksimali reikšmė yra 100 % arba purkštuko skersmuo.\n"
+#~ "Nustačius 0, linijos plotas sutaps su vidinio vientiso užpildo (internal solid infill) pločiu."
+
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Įjunkite šią parinktį, kad sumažintumėte spausdinimo greitį vietose, kur perimetrai linkę riestis į viršų.\n"
+#~ "Pavyzdžiui, papildomas sulėtinimas bus taikomas spausdinant iškyšas ties aštriais kampais (kaip „Benchy“ laivelio priekis) – tai apsaugo nuo sluoksnių rietimosi, kuris linkęs kauptis per kelis sluoksnius.\n"
+#~ "\n"
+#~ "Rekomenduojama visada laikyti šią parinktį įjungtą, nebent spausdintuvo aušinimas yra itin galingas arba spausdinimo greitis toks mažas, kad perimetrų rietimasis nevyksta.\n"
+#~ "Jei spausdinama dideliu išorinio perimetro greičiu, šis parametras lėtėjimo metu gali sukelti sienelių artefaktų (defektų), nes dėl didelių greičio šuolių ekstruderis gali nespėti sureguliuoti srauto pokyčio.\n"
+#~ "Pagrindinė tokių artefaktų priežastis dažniausiai yra netiksliai suderintas „Pressure Advance“ (PA) parametras, ypač jei naudojama didelė „PA smooth time“ reikšmė.\n"
+#~ "\n"
+#~ "Rekomendacijos įjungus šią parinktį:\n"
+#~ "1. Sumažinkite „Pressure Advance smooth time“ iki 0.015 - 0.02, kad ekstruderis greitai reaguotų į greičio pokyčius.\n"
+#~ "2. Padidinkite minimalų spausdinimo greitį, kad apribotumėte sulėtėjimo mastą ir sumažintumėte skirtumą tarp greitų bei lėtų segmentų.\n"
+#~ "3. Jei artefaktai išlieka, įjunkite „Ekstruzijos srauto glotninimą“ (ERS), kad sušvelgintumėte srauto perėjimus.\n"
+#~ "\n"
+#~ "Pastaba: kai ši parinktis įjungta, išsikišę perimetrai yra traktuojami kaip iškyšos, t. y. iškyšų greitis taikomas net ir tada, kai perimetras yra tiltelio dalis.\n"
+#~ "Pavyzdžiui, kai perimetrai kyšo 100 % (apačioje nėra jokios palaikančios sienelės), bus taikomas būtent 100 % iškyšos greitis."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Išoriškai matomų tiltelio ekstruzijų greitis.\n"
+#~ "\n"
+#~ "Papildomai, jei funkcija „Sulėtinti greitį riesantis perimetrams“ yra išjungta arba įjungtas „Klasikinis iškyšų režimas“, šis greitis bus taikomas iškyšų sienelėms, kurių atrama yra mažesnė nei 13 % (nesvarbu, ar jos yra tiltelio, ar iškyšos dalis)."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Šis nustatymas valdo perimetrų, kurių spindulys $\\le$ „Mažų perimetrų riba“ (dažniausiai tai nedidelės skylės), spausdinimo greitį. Jei nurodomas procentais (pvz., 80 %), jis apskaičiuojamas pagal viršuje nustatytą išorinės sienelės greitį. Nustačius 0, greitis parandamas automatiškai."
+
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Tas pats, kas „Maži perimetrai“, bet skirta atramoms. Šis atskiras nustatymas turės įtakos atramų greičiui tose vietose, kurios yra ≤ `small_support_perimeter_threshold`. Jei išreikšta procentais (pavyzdžiui: 80 %), bus skaičiuojama nuo aukščiau nustatyto atramų arba atramų sąsajos greičio. Nustatykite nulį, jei norite naudoti automatinį režimą."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Vidinių (inner) ir išorinių (outer) sienelių spausdinimo seka.\n"
+#~ "\n"
+#~ "„Vidinis / išorinis“ (Inner/Outer) užtikrina geriausią iškyšų kokybę, nes spausdinama iškyšos sienelė turi prie ko prisitvirtinti (prie vidinio perimetro). Tačiau išorinio paviršiaus kokybė gali nežymiai nukentėti, nes išorinis perimetras gali būti šiek tiek deformuojamas (išspaudžiamas) vidinio perimetro įtakos.\n"
+#~ "\n"
+#~ "„Vidinis / išorinis / vidinis“ (Inner/Outer/Inner) užtikrina geriausią išorinio paviršiaus kokybę ir matmenų tikslumą, nes išorinė sienelė spausdinama netrikdomai. Visgi, iškyšų kokybė sumažėja, nes nėra pilno vidinio pagrindo išorinei sienelei prilaikyti. Šis nustatymas efektyvus tik turint bent 3 sieneles – pjaustyklė pirmiausia spausdina vidines sieneles nuo 3-iojo perimetro gilyn, tada išorinį perimetrą, ir galiausiai pirmąjį vidinį perimetrą. Daugeliu atvejų tai yra pranašesnis pasirinkimas nei „Išorinis / vidinis“.\n"
+#~ "\n"
+#~ "„Išorinis / vidinis“ (Outer/Inner) suteikia panašų paviršiaus švarumą ir matmenų tikslumą kaip ir „Vidinis / išorinis / vidinis“, tačiau vertikalios siūlės (Z seam) gali atrodyti mažiau tvarkingos, nes naujas sluoksnis pradedamas spausdinti tiesiai ant matomo išorinio paviršiaus."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Pirmojo sluoksnio greitis, išskyrus vientiso užpildo dalį."
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Pirmojo sluoksnio vientiso užpildo dalies greitis."
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Užpildo plotas yra šiek tiek padidinamas, kad persidengtų su sienele geresniam sukibimui. Procentinė vertė yra santykinė su reto užpildo linijos pločiu. Nustatykite šią vertę ties ~10–15%, kad sumažintumėte perteklinio išspaudimo (overextrusion) ir medžiagos sankaupų riziką, dėl kurios viršutiniai paviršiai tampa šiurkštūs."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "Viršutinio vientiso užpildo plotas yra šiek tiek padidinamas, kad persidengtų su sienele geresniam sukibimui ir sumažintų mikroskylučių (pinholes) susidarymą sandūroje. 25–30%% vertė yra geras pradinis taškas, sumažinantis skylučių matomumą. Procentinė vertė yra santykinė su reto užpildo linijos pločiu."
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Segmentuoto regiono susikirtimo gylis. Jis bus ignoruojamas, jei „mmu_segmented_region_max_width“ yra nulis arba jei „mmu_segmented_region_interlocking_depth“ yra didesnis už „mmu_segmented_region_max_width“. Nulis išjungia šią funkciją."
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Sumažinti viršutinio paviršiaus perimetrų aukštį, kad jis sutaptų su modelio krašto aukščiu.\n"
+#~ "Paveikia perimetrus, kurių nuolydis yra mažesnis už šį kampą (laipsniais).\n"
+#~ "Protinga vertė yra 35. Nustatykite 0, kad išjungtumėte."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Valymo greitis pagal elemento tipą"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Apsauginis skydas (Draft shield) padeda apsaugoti ABS arba ASA spaudinius nuo deformavimosi ir atšokimo nuo pagrindo dėl skersvėjų. Dažniausiai jis reikalingas tik atviro tipo spausdintuvams be korpuso (enclosure).\n"
+#~ "\n"
+#~ "Įjungta = apvadas bus tokio paties aukščio kaip ir aukščiausias spausdinamas objektas. Priešingu atveju naudojamas parametras „Apvado aukštis“.\n"
+#~ "Pastaba: kai apsauginis skydas aktyvus, apvadas bus spausdinamas nurodytu „Apvado atstumu“ nuo objekto. Jei naudojami pado kraštai (brim), jie gali susikirsti. Norėdami to išvengti, padidinkite apvado atstumo reikšmę.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Didžiausias spausdinimo greitis atliekant gijos pravalymą (purging) bei spausdinant valymo bokštelio retuosius (sparse) sluoksnius. Jei pravalymo metu retojo užpildo greitis arba apskaičiuotas greitis pagal maksimalų tūrinį gijos greitį yra mažesnis, bus naudojamas mažiausias iš jų.\n"
+#~ "\n"
+#~ "Spausdinant retuosius sluoksnius, jei vidinio perimetro greitis arba apskaičiuotas greitis pagal maksimalų tūrinį gijos greitį yra mažesnis, bus naudojamas mažiausias iš jų.\n"
+#~ "\n"
+#~ "Padidinus šį greitį, gali nukentėti bokštelio stabilumas bei padidėti jėga, su kuria purkštukas susidurs su bet kokiais ant valymo bokštelio susidariusiais gijos gumbeliais (blobs).\n"
+#~ "\n"
+#~ "Prieš didindami šį parametrą virš numatytųjų 90 mm/s, įsitikinkite, kad jūsų spausdintuvas patikimai formuoja tiltelius (bridging) esant didesniam greičiui, o gijos nutekėjimas (ooze) keičiant įrankį yra gerai kontroliuojamas.\n"
+#~ "\n"
+#~ "Valymo bokštelio išoriniams perimetrams, nepriklausomai nuo šio nustatymo, visada naudojamas vidinio perimetro greitis."
+
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Valymo bokštelio išorinės sienelės tipas.\n"
+#~ "1. Stačiakampis (Rectangle): numatytasis sienelės tipas – fiksuoto pločio ir aukščio stačiakampis.\n"
+#~ "2. Kūgis (Cone): kūgis su suapvalinimu apačioje, padedantis stabilizuoti valymo bokštelį.\n"
+#~ "3. Briauna (Rib): prie bokštelio sienelės pridedamos keturios briaunos geresniam stabilumui užtikrinti."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Papildomas gijos srautas, naudojamas valymo bokštelio pravalymo linijoms. Jis leidžia suformuoti storesnes arba siauresnes pravalymo linijas nei įprastai. Atstumai tarp linijų pritaikomi automatiškai."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Pakoreguokite šią reikšmę, kad nebūtų spausdinamos trumpos, neuždaros sienelės, galinčios pailginti spausdinimo laiką. Didesnės reikšmės pašalina daugiau ir ilgesnes sieneles.\n"
+#~ "\n"
+#~ "PASTABA: Šis nustatymas neturi įtakos apatiniams ir viršutiniams paviršiams, kad modelio išorėje neatsirastų matomų tuštumų. Žemiau esančiuose išplėstiniuose nustatymuose pakeiskite parametro „Vienos sienelės slenkstis“ (One wall threshold) jautrumą, apibrėžiantį, kas laikoma viršutiniu paviršiumi. Šis slenkstis matomas tik tada, kai nustatymas viršija numatytąją 0,5 reikšmę arba kai įjungta vienos sienelės viršutinių paviršių funkcija."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Padalinti į %1% dalį"
+#~ msgstr[1] "Padalinti į %1% dalis"
+#~ msgstr[2] "Padalinti į %1% dalių"
+
+#~ msgid "Repair failed"
+#~ msgstr "Taisymas nepavyko"
+
+#~ msgid "Repair canceled"
+#~ msgstr "Taisymas atšauktas"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Ką šis sluoksnis daro ten, kur persidengia su apatiniais. „Įtraukti“ ir „Atimti“ prideda reljefo arba jį išpjauna. „Dauginti“ ir „Dalyti“ keičia to, kas apačioje, mastelį, todėl šis sluoksnis tampa jo kauke - tuomet „Gylis“ veikia kaip stiprumas, o 1 mm baltų sričių nekeičia."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "Tinklelyje yra ne daugialypės (non-manifold) geometrijos arba atvirų kraštų. Galite jį importuoti tokį, koks yra, arba prieš importuodami sutaisyti „Windows“ 3D taisymo paslauga."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Atkreipkite dėmesį, kad tinklelyje yra ne daugialypės (non-manifold) geometrijos arba atvirų kraštų."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Tinklelio problema"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Taisymas nepavyko: tinklas po skylių užpildymo vis dar atviras."
+
+# AI Translated
+# Needs human review: English says 'operators' but means operands (the values the logical operation is applied to); translated as operands. Check the source wording.
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Loginės operacijos negalima taikyti neloginiams operandams."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Nuskaitoma"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Gijų skaičius viršija didžiausią piešimo įrankio palaikomą skaičių. Piešimo įrankyje bus prieinamos tik pirmosios %1% gijos."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Spartusis klavišas "
+
+#~ msgid "Build Volume"
+#~ msgstr "Spausdinimo tūris"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Objektai (%1%) turi pasikartojančių jungčių. Kai kurių jungčių gali trūkti pjaustymo rezultate.\n"
+#~ "Praneškite OrcaSlicer komandai, kokiu atveju kilo ši problema.\n"
+#~ "Ačiū."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d trikampiai"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Judantis)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Fiksuotas)"
+
+#~ msgid "Filament "
+#~ msgstr "Gija "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "kaitinimo blokas"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Išdėstoma "
+
+#~ msgid "Orienting"
+#~ msgstr "Padėties nustatymas"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Prašome sugrąžinti visas ašis į pradinę padėtį (spauskite "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") norėdami nustatyti spausdinimo galvutės padėtį. Taip išvengiama, kad įrenginys judėtų už spausdinimo srities ir dėvėtųsi."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Sunaudojama %1% g daugiau gijos ir atliekama %2% keitimų daugiau, lyginant su optimaliu grupavimu."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Sunaudojama %1% g daugiau gijos ir sutaupoma %2% keitimų, lyginant su optimaliu grupavimu."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Sutaupoma %1% g gijos ir atliekama %2% keitimų daugiau, lyginant su optimaliu grupavimu."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Sutaupoma %1% g gijos ir %2% keitimų, lyginant su vieno purkštuko spausdintuvu."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Sutaupoma %1% g gijos ir atliekama %2% keitimų daugiau, lyginant su vieno purkštuko spausdintuvu."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Sunaudojama %1% g daugiau gijos ir sutaupoma %2% keitimų, lyginant su vieno purkštuko spausdintuvu."
+
+#~ msgid "number keys"
+#~ msgstr "skaičių klavišai"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Gijos %s yra įstatytos į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo sritį."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Gijos %s yra įstatytos į „%s“, tačiau sugeneruota G-code trajektorija viršija „%s“ spausdinimo aukštį."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Gijų %s negalima spausdinti tiesiai ant šios plokštės paviršiaus."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "bus uždarytas prieš sukuriant naują modelį. Ar norite tęsti?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "Debesies sluoksniavimo eilėje priekyje yra %s užduotys (-ių)."
+
+#~ msgid " upload failed"
+#~ msgstr " įkėlimas nepavyko"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " nepavyko apdoroti įkėlimo konfigūracijos\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Nėra atitinkamos saugyklos talpyklos\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " nepavyko atidaryti\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Nepavyko įkelti jūsų komentaro dėl šių priežasčių:\n"
+#~ "\n"
+#~ " klaidos kodas: "
+
+#~ msgid "error message: "
+#~ msgstr "klaidos pranešimas: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Norite būti nukreipti į puslapį, kuriame galima įvertinti?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (proceso profilis: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "%s purkštukas negali spausdinti %s."
+
+#~ msgid " nozzle"
+#~ msgstr " purkštukas"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr ""
+#~ "Su %1% nerekomenduojama spausdinti šių gijų: %2%\n"
+#~ "\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " plokštė %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Pašalinti visas mišrias gijas (%1%)?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Ar norite jį pakeisti"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Pagrindo temperatūros konfliktas: T%d (%s) nustato pagrindo temperatūrą %d°C — T%d (%s) reikia %d°C. Pagrindą valdo pagrindinis įrankis; antriniai įrankiai spausdina tokia temperatūra, kokią jis nustato."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Kalibravimui nepateikti jokie pagreičiai. Naudokite numatytąją pagreičio vertę "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Kalibravimo greičiai nenumatyti. Naudokite numatytąjį optimalų greitį "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Juostiniam spausdintuvui nėra temperatūros bokštelio intervalui nuo %1% iki %2% °C. Naudokite intervalą, kurį apima bokštelio modeliai, pavyzdžiui, nuo 230 iki 190."
+
+#~ msgid "The selected file"
+#~ msgstr "Pasirinktame faile"
+
+# AI Translated
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "Jame nėra galiojančio G-code."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "su \"OrcaSlicer\", kad \"Orca\" galėtų atverti modelius iš"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Sunaudoja %d g gijos ir %d pakeitimais daugiau nei pasirinkus optimalų grupavimą."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Parametrus su šia piktograma galima konfigūruoti kiekvienam purkštukui atskirai."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Rasti rezervuoti raktažodžiai"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "Prie šio spausdintuvo yra priskirtas %d gijos profilis ir %d apdorojimo profilis. Ištrynus spausdintuvą, šie profiliai taip pat bus ištrinti."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Šį profilį paveldi šis profilis."
+#~ msgstr[1] "Šį profilį paveldi šie profiliai."
+#~ msgstr[2] "Šį profilį paveldi šie profiliai."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% profilis"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Ar tikrai norite %1% pasirinkto išankstinio nustatymo?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Padalinti į %1% dalių"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Atsisiunčiami nauji gamintojų profiliai: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Nepavyko atsisiųsti gamintojų profilių: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Šiame Span režime spalvomis spausdina tik %1%, tačiau gija %2% nenukreipta į jokį įrankį. Naudokite gijas, nukreiptas į %1%, arba perjunkite šią plokštę į režimą „Pagrindinis“."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Šiame Span režime spalvomis spausdina tik %1%, tačiau gija %2% nukreipta į T%3%. Naudokite gijas, nukreiptas į %1%, arba perjunkite šią plokštę į režimą „Pagrindinis“."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " yra per arti uždraustosios zonos, spausdinant gali įvykti susidūrimų."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " yra per arti sulipimo aptikimo (clumping detection) zonos, spausdinant gali įvykti susidūrimų."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Valymo bokštas (Prime tower)"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " yra per arti kitų, todėl gali įvykti susidūrimai.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " yra per arti uždraustosios zonos, todėl įvyks susidūrimai.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr ""
+#~ " yra per arti sulipimo aptikimo zonos, todėl įvyks susidūrimai.\n"
+#~ "\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " yra iš dalies už spausdinimo srities ribų ir negali būti atspausdintas.\n"
+
+# AI Translated
+# Needs human review: Substituted as %3% into 'IDEX/IQEX mode "%1%" prints with T%2%, but this plate's filaments are on %3%' (rendered '...šios plokštės gijų įrankiai: %3%'); check that the whole sentence reads right.
+#~ msgid "no configured tool"
+#~ msgstr "nėra sukonfigūruoto įrankio"
+
+# AI Translated
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "Pabaigos G-code, vykdomas baigus visą spausdinimą."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Didžiausias X greitis"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Didžiausias Y greitis"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Didžiausias Z greitis"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Didžiausias E greitis"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Python papildinys (-iai), iškviečiamas kiekviename pjaustymo konvejerio žingsnyje, kad nuskaitytų ir keistų tarpinius pjaustymo duomenis, įskaitant galutinį G-code po apdorojimo žingsnį. Tyrimų/eksperimentinis."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Kai įjungta, pjaustyklė generuoja G-code, kuriame pagrindinės zonos turinys centruotas pagrindo koordinačių pradžioje (0,0). Kopijas ir veidrodinius atvaizdus kiekvienos fizinės zonos padėtyje išdėsto spausdintuvo programinė aparatinė įranga. Įjunkite tik tuose spausdintuvuose, kurių programinė aparatinė įranga kopijos (Copy) / veidrodžio (Mirror) režimu pati taiko zonų poslinkius (pvz., RepRapFirmware IDEX dubliavimo režimas). Režimu „Pagrindinis“ neturi jokio poveikio."
+
+# AI Translated
+# Needs human review: 'pem-inversion' is an undefined internal term kept verbatim; check what it refers to and whether it should be explained or translated.
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Plokštės lygmens perrašymas, susiejantis fizines galvutes su gijų lizdais (numeruojama nuo 1). Tuščia reiškia, kad naudojami numatytieji pem-inversion nustatymai."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Ašis, apie kurią poligoninis tinklas pasukamas prieš sluoksniavimą. Tai juostinio spausdintuvo pokrypis: izometrinis (be iškraipymų) pasukimas, kuris taip pat lemia pagrindo atvaizdavimą ir atramų sunkio jėgos pokrypį ir kurį atvirkštinė G-code transformacija panaikina prieš mašinos koordinačių sistemos šlytį / mastelį ir ašių perskirstymą. X – įprastas portalo pokrypis (juosta juda išilgai Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Eksperto parinktis: nustatyti mašinos koordinačių sistemos (G-code šlyties / mastelio) pokrypio kampą nepriklausomai nuo pasukimo prieš sluoksniavimą kampo. Kai išjungta, mašinos koordinačių sistemos transformacija išvedama iš juostos pokrypio kampo, todėl vienas kampas valdo abu etapus. Įjunkite tik tada, kai reikia kompensuoti įrenginį, kurio fizinis portalo pokrypis skiriasi nuo sluoksniavimo pasukimo."
+
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "Didžiausias leidžiamas nuokrypis, mažinant „Didžiausios sienelės raiškos“ nustatymo skiriamąją gebą. Jei jį padidinsite, spaudinys bus mažiau tikslus, tačiau G-kodas (G-Code) bus mažesnės apimties. „Didžiausias sienelės nuokrypis“ riboja „Didžiausią sienelės raišką“, todėl jei šie du nustatymai konfliktuoja, viršenybė teikiama „Didžiausiam sienelės nuokrypiui“."
+
+#~ msgid " not in range "
+#~ msgstr " nepatenka į intervalą "
+
+#~ msgid "floating regions"
+#~ msgstr "ore kabančių sričių"
+
+#~ msgid "floating cantilever"
+#~ msgstr "ore kabančią konstrukciją"
+
+#~ msgid "large overhangs"
+#~ msgstr "didelių iškyšų"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Atrodo, kad objektas %s turi %s. Prašome perorientuoti objektą arba įjungti atramų generavimą."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Sluoksnių neaptikta. Galbūt reikėtų pataisyti STL failą (-us) arba patikrinti jų dydį ar storį ir bandyti dar kartą.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Šio tipo įrenginyje vienam purkštukui galima išsaugoti tik %d istorinių rezultatų. Šis rezultatas nebus išsaugotas."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Šio tipo įrenginyje vienam purkštukui galima išsaugoti tik %d istorinių rezultatų."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Iškyšos"
+
+#~ msgid "Start / End"
+#~ msgstr "Pradžia / Pabaiga"
+
+#~ msgid "Damp"
+#~ msgstr "Slopinimas"
+
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "Spausdintuve aptikta %d IFS lizdų."
+
+#~ msgid "selected"
+#~ msgstr "pasirinkta"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Šį profilį paveldi šis profilis."
+#~ msgstr[1] "Šį profilį paveldi šie profiliai."
+#~ msgstr[2] "Šį profilį paveldi šie profiliai."
+
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "Rasta „%zu“ „Creality“ spausdintuvų. Pasirinkite vieną ir spustelėkite „Naudoti pasirinktą“ (Use Selected)."
+
+#~ msgid "log(s)"
+#~ msgstr "Žurnalas(-i)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Klaida: %s ekstruderis neturi prieinamo %s purkštuko, dabartinis grupavimo rezultatas negalioja."
+
+#~ msgid "invalid brim ears"
+#~ msgstr "negaliojančios krašto „ausys“"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Praleidžiama objektų: %d."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Atverti aplanką failų naršyklėje"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Spustelėkite centrą, tada viršūnę — kraštinių: %d, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "apibrėžtas"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "įbrėžtas"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Eskizas sukurtas (valdančiųjų matmenų: %zu) — pasirinkite jį, tada spustelėkite dešiniuoju pelės mygtuku, kad išspaustumėte"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "Gerai — trikampių: %zu"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Šiame poligoniniame tinkle yra %d trikampių. Prieš sujungiant vienoje plokštumoje esančius paviršius, kiekvienas trikampis tampa B-rep paviršiumi, todėl importavimas gali užtrukti ilgai, o gautą kūną bus lėta redaguoti. Paprastai geriau pirmiausia supaprastinti tinklą.\n"
+#~ "\n"
+#~ "Vis tiek importuoti?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Kietasis kūnas importuotas — %d trikampių → %d paviršių, tūris %.2f mm³. Pasirinkite paviršių arba briauną, tada keiskite naudodami „Suapvalinimas“ / „Pjūvis“ / „Išskobimas“"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — vilkite, kad nustatytumėte vietą / dydį, tada patvirtinkite"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "Eskizo objektai: %d"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — įveskite reikšmę, paspauskite Enter (arba patvirtinkite)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Peržiūra — trikampių: %zu"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "Ignoruojami apribojimai, kurių negalima taikyti šiai geometrijai (elipsei ar splaino kreivei arba nulinio dydžio apskritimui): %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "Pašalinti apribojimai, kuriuos suapvalinimas / nuožula padarė negaliojančiais: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "Transformacijos panaikinti apribojimai: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...ir dar atvirų galų: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "Medžiagų sąraše gali būti daugiausia %1% spalvų. Po išskaidymo (%2%) medžiagų skaičius viršytų %1%. Prieš išskaidydami, pagrindiniame lange ištrinkite nenaudojamas gijas."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "Spausdinamų spalvų: %1% (iš gijų: %2%)"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "UV salų: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Panaudoti visi sluoksniai (%1%)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Peržiūra – trikampių: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Modelyje trikampių: %1% - įkepimas smulkina iki aukščiau nurodytos skiriamosios gebos, neviršydamas biudžeto"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Įkepimas perkelia esamas viršūnes - modelyje lieka trikampių: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Įkepimo rezultatas – iki ~%1% tūkst. trikampių"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "Nenupieštų sluoksnių: %1%, praleista"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Projekte gali būti daugiausia gijų: %d. Perteklinės gijos bus atmestos."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Pasirinkta viršūnių: %d | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Pasirinkta briaunų: %d | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "Pasirinkta UV salų: %d | vilkti = perkelti kartu, Shift/Ctrl spustelėjimas = pridėti/pašalinti, R/S = pasukti / keisti pagrindinės salos mastelį"
+
+# AI Translated
+# Needs human review: The English names a 'Tiling' setting, but the layer settings only have the 'Tile' checkbox (Plytelės) and 'Tile size' (Plytelės dydis); check which control is meant.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Aktyvaus tekstūros sluoksnio plytelės dydis: kokią modelio dalį dengia vienas tekstūros pasikartojimas. Drobė matuojama plytelėmis, todėl vienas tinklelio langelis yra vienas pasikartojimas. Jį galite pakeisti sluoksnio nustatymuose, skiltyje „Plytelės“."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "UV salų: %d, paviršių: %s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Papildinys „%s“ prašo leidimo skaityti šiuos failus:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Papildinys „%s“ prašo leidimo skaityti ir rašyti šiuos failus:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Papildinys „%s“ prašo leidimo sukurti šiuos failus:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Papildinys „%s“ prašo leidimo ištrinti šiuos failus:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Papildinys „%s“ prašo leidimo vykdyti šias komandas:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Papildinio įdiegti nepavyko"
+
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Nepavyko įdiegti „Microsoft WebView2 Runtime“.\n"
+#~ "Kol tai nebus įdiegta, kai kurios funkcijos, įskaitant diegimo vedlį, gali būti tuščios.\n"
+#~ "Prašome įdiegti rankiniu būdu iš https://developer.microsoft.com/microsoft-edge/webview2/ ir iš naujo paleisti „Orca Slicer“."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Kodėl šis grupavimas"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "Programinė įranga nepalaiko skirtingo skersmens purkštukų naudojimo vienam spausdinimui. Jei kairysis ir dešinysis purkštukai skiriasi, galima spausdinti tik su viena galvute. Patvirtinkite, kurį purkštuką norite naudoti šiam projektui."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Pakeisti skersmenį"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "„BambuStudio“ projektas"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "3MF failą sukūrė „BambuStudio“ (versija %s), kuri yra naujesnė už suderinamą versiją %s. Rasta nepažįstamų nustatymų:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "3MF failą sukūrė „BambuStudio“ (versija %s), kuri yra naujesnė už suderinamą versiją %s. Kai kurie nustatymai gali būti nevisiškai suderinami."
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "3MF failą sukūrė „BambuStudio“. Kai kurie nustatymai gali skirtis nuo „OrcaSlicer“ nustatymų."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Negalima atšaukti ar perdaryti, kol vykdoma operacija. Pirmiausia ją sustabdykite."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Centruoja kiekvienos dalies vidinį užpildą pagal ją pačią, tarsi ji būtų supjaustyta atskirai, o ne pagal visą surinkinį. Besiliečiančios ar persidengiančios dalys traktuojamos kaip vienas kūnas ir dalijasi vienu centru; atskiros dalys (arba skirtingi 3D objektai) gauna savo centrą.\n"
+#~ "Naudinga, kai surinkinys sugrupuoja kelis objektus, kurių kiekvienas turi išlaikyti nuoseklų, į save centruotą užpildą.\n"
+#~ "Veikia linijų ir tinklelio raštus bei pasukimo šablonų užpildus.\n"
+#~ "Raštai, pririšti prie globalių koordinačių (Giroidas, Korys, TPMS, ...), nepaveikiami."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Dabartinio sluoksnio indeksas, skaičiuojamas nuo vieneto (t. y. pirmasis sluoksnis yra Nr. 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Vaizdo pamoka"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Primityvas"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Sugeneruotas tuščias poligoninis tinklas"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Dėžė"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Greitai:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Plotis (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Gylis (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Aukštis (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "Apat. R"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "Viršut. R"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "Didysis R"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "Mažasis R"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Visos briaunos"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Viršutinės briaunos"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Apatinės briaunos"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Šoninės briaunos"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Tinklelio raiška"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Pridėti formą"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Nėra išorinio profilio"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Nepavyko sukurti išorinio paviršiaus"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Nepavyko sukurti paviršiaus su skylėmis"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Apsukimas nepavyko"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Profilis"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Pradėti naują profilį (skylėms)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segmentai"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Kraštinės"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Spustelėkite drobėje, kad pieštumėte"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Pritraukti prie tinklelio"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Tinklelio žingsnis"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Išorinis"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "uždaras"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% tšk. %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (viršus)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (priekis)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (šonas)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Apsukimo kampas"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "0 – išspaudimas, >0 – apsukimas"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Įduba (pjūvis)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu uždaras profilis"
+#~ msgstr[1] "%zu uždari profiliai"
+#~ msgstr[2] "%zu uždarų profilių"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Nubrėžkite uždarą profilį, kad įjungtumėte"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Tuščias rezultatas"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Išspaudimas: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Apsukimas: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Nepasirinktas joks objektas"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Nepavyko sukurti paviršiaus"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Nepavyko sukurti paviršiaus su skylėmis"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Įrankio tinklelis tuščias"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Įduba pridėta (neigiamas tūris)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Įduba: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Aktyviajam sluoksniui turi būti priskirtas išskleidimas (LSCM)."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Šachmatinis raštas - bandomasis tinklelis vietoj tekstūros. Kur kvadratai lieka kvadratais, tekstūra neiškraipyta; kur jie ištempti, bus ištempta ir tekstūra"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Iškraipymas - išskleidimo ištempimo šiluminis žemėlapis nuo mėlynos iki raudonos"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Maišyti pagal"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Paviršius"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Sluoksniai: dvi gijos keičiasi spausdinimo sluoksniais; ant vertikalių paviršių spalvos sklandžiai susilieja, bet ant horizontalių išnyksta, nes ten visas sluoksnis yra viena juosta.\n"
+#~ "Paviršius: smulkus šachmatinis raštas paviršiuje; veikia bet kokiu kampu, bet gali atrodyti kaip tekstūra, o ne kaip spalvų mišinys.\n"
+#~ "Automatinis: vertikaliuose paviršiuose – sluoksniai; horizontaliems paviršiams naudojama artimiausia viena gija, nes šachmatinis raštas ten matytųsi kaip raštas."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "UV sala - perkelti, pasukti ir keisti ištisų UV salų mastelį"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Viršūnė - vilkite viršūnes, kad pakeistumėte formą; Shift/Ctrl – kelių pasirinkimas"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Briauna - vilkite briaunas, kad pakeistumėte formą; Shift/Ctrl – kelių pasirinkimas"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Sutalpinti visas UV salas (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Eksperimentinė) Naudoti spausdintuvo agentus vietoj spausdinimo serverių"
@@ -31049,16 +37317,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Spustelėkite paviršių arba atskaitos plokštumą, tada pasirinkite piešimo įrankį"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -31115,10 +37373,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Vertikalus atstumas"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Linijinis"
-
#~ msgid "Face recognition"
#~ msgstr "Paviršių atpažinimas"
@@ -32543,9 +38797,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Nepavyko apskaičiuoti %1% linijos pločio. Nepavyksta gauti „%2%“ reikšmės."
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Srautui Flow::with_spacing() pateiktas neteisingas tarpas, patikrinkite sluoksnio aukštį ir išspaudimo plotį"
-
#~ msgid "Renders cast shadows on the plate in realistic view."
#~ msgstr "Realistiniame vaizde atvaizduoja krentančius šešėlius ant spausdinimo pagrindo."
diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po
index 205c67235b..518e4a1cde 100644
--- a/localization/i18n/nl/OrcaSlicer_nl.po
+++ b/localization/i18n/nl/OrcaSlicer_nl.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -405,8 +405,11 @@ msgid "Please wait"
msgstr "Even geduld"
# AI Translated
-msgid "Reading"
-msgstr "Uitlezen"
+# Needs human review: Reuses the existing label 'Inductie Hot-end rek' (human translation) so status text matches it; glossary says 'Hotend', so label and this string may both need 'Hotend' rek.
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Inductie Hot-end rek: lezen %d/%d"
msgid "Running..."
msgstr "Bezig met uitvoeren..."
@@ -565,8 +568,10 @@ msgstr "Op zijde leggen"
# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Het aantal filamenten overschrijdt het maximale aantal dat het schildergereedschap ondersteunt. Alleen de eerste %1% filamenten zijn beschikbaar in het schildergereedschap."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Het aantal filamenten overschrijdt het maximale aantal dat het schildergereedschap ondersteunt. Alleen het eerste %1% filament is beschikbaar in het schildergereedschap."
+msgstr[1] "Het aantal filamenten overschrijdt het maximale aantal dat het schildergereedschap ondersteunt. Alleen de eerste %1% filamenten zijn beschikbaar in het schildergereedschap."
msgid "Color Painting"
msgstr "Kleuren schilderen"
@@ -620,8 +625,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Sneltoest "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Sneltoets %d"
msgid "Triangle"
msgstr "Driehoek"
@@ -727,6 +734,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Onderdeelselectie"
+msgid "Select multiple objects"
+msgstr "Selecteer meerdere objecten"
+
# AI Translated
msgid "Fixed step drag"
msgstr "Slepen met vaste stap"
@@ -794,10 +804,79 @@ msgstr "Onderdeel"
msgid "Relative"
msgstr "Relatief"
+msgid "Selection"
+msgstr "Selectie"
+
+msgid "Plate"
+msgstr "Printbed"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "Coördinatensysteem dat wordt gebruikt voor transformatiebewerkingen."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Links uitlijnen"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Links-rechts gecentreerd uitlijnen"
+
+# AI Translated
+msgid "Align right"
+msgstr "Rechts uitlijnen"
+
+# AI Translated
+msgid "Align front"
+msgstr "Vooraan uitlijnen"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Voor-achter gecentreerd uitlijnen"
+
+# AI Translated
+msgid "Align back"
+msgstr "Achteraan uitlijnen"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Onderaan uitlijnen"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Boven-onder gecentreerd uitlijnen"
+
+# AI Translated
+msgid "Align top"
+msgstr "Bovenaan uitlijnen"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Links-rechts verdelen"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Voor-achter verdelen"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Boven-onder verdelen"
+
+msgid "Drop"
+msgstr "Neerzetten"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "Absoluut"
@@ -907,10 +986,6 @@ msgstr "Groefhoek"
msgid "Cut position"
msgstr "Snijpositie"
-# AI Translated
-msgid "Build Volume"
-msgstr "Bouwvolume"
-
msgid "Multiple"
msgstr "Meerdere"
@@ -1101,11 +1176,19 @@ msgstr "Verbinding"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
-"Objecten(%1%) hebben dubbele verbindingsstukken. Sommige verbindingsstukken ontbreken mogelijk in het sliceresultaat.\n"
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"Object (%1%) heeft dubbele verbindingsstukken. Sommige verbindingsstukken ontbreken mogelijk in het sliceresultaat.\n"
+"Meld aan het OrcaSlicer-team in welke situatie dit probleem zich voordeed.\n"
+"Bedankt."
+msgstr[1] ""
+"Objecten (%1%) hebben dubbele verbindingsstukken. Sommige verbindingsstukken ontbreken mogelijk in het sliceresultaat.\n"
"Meld aan het OrcaSlicer-team in welke situatie dit probleem zich voordeed.\n"
"Bedankt."
@@ -1175,9 +1258,12 @@ msgstr "Laag"
msgid "Extra low"
msgstr "Extra laag"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d driehoeken"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% driehoek"
+msgstr[1] "%1% driehoeken"
msgid "Show wireframe"
msgstr "Draadmodel tonen"
@@ -1188,6 +1274,18 @@ msgstr "Kan niet toepassen bij een voorvertoning."
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "De toepassing wordt al geannuleerd. Wacht even alstublieft."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "Modelvereenvoudiging is geannuleerd"
+
+# AI Translated
+msgid "Wiki Guide"
+msgstr "Wiki-handleiding"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Videohandleiding"
+
msgid "Enforce seam"
msgstr "Naad versterken"
@@ -1244,6 +1342,14 @@ msgstr "Positie op oppervlak"
msgid "Emboss"
msgstr "Reliëf"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Geen actief lettertype in de stijl. Selecteer het juiste lettertype."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont is niet correct geladen."
+
msgid "NORMAL"
msgstr "NORMAAL"
@@ -1992,11 +2098,25 @@ msgstr "Diameter"
msgid "Length"
msgstr "Lengte"
-msgid "Selection"
-msgstr "Selectie"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Vlak 1 (vast)"
-msgid " (Moving)"
-msgstr " (Bewegen)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Vlak 2 (beweegt)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Punt 1 (vast)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Punt 2 (beweegt)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Selectie 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -2014,16 +2134,8 @@ msgstr ""
" geef de afstand ertussen op."
# AI Translated
-msgid "Face"
-msgstr "Vlak"
-
-# AI Translated
-msgid " (Fixed)"
-msgstr " (Vast)"
-
-# AI Translated
-msgid "Point"
-msgstr "Punt"
+msgid "Selection 2"
+msgstr "Selectie 2"
# AI Translated
msgid ""
@@ -2145,6 +2257,18 @@ msgstr "Samenstelgizmo starten"
msgid "Leaving Assembly gizmo"
msgstr "Samenstelgizmo verlaten"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2341,14 +2465,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"De Microsoft WebView2 Runtime kon niet worden geïnstalleerd.\n"
"Sommige functies, waaronder de installatiewizard, kunnen leeg blijven totdat deze is geïnstalleerd.\n"
-"Installeer deze handmatig via https://developer.microsoft.com/microsoft-edge/webview2/ en start Orca Slicer opnieuw."
+"Installeer deze handmatig via %1% en start Orca Slicer opnieuw."
# AI Translated
#, c-format, boost-format
@@ -2601,6 +2726,67 @@ msgstr "Beperking netwerkplug-in"
msgid "Privacy Policy Update"
msgstr "Update privacybeleid"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Al uw filamentvoorinstellingen zijn beschikbaar op de printers waarvoor ze zijn gemaakt."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Filamentvoorinstellingen migreren"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 heeft veel systeemfilamentvoorinstellingen herstructureerd om onjuiste profielen te corrigeren en voor te bereiden op toekomstige functies. Hierdoor worden de onderstaande voorinstellingen niet meer weergegeven op sommige printers waarvoor ze zijn gemaakt. Onze excuses voor het ongemak; dit is een eenmalige oplossing.\n"
+"\n"
+"Deze printers nu weer toevoegen aan uw voorinstellingen? Van uw voorinstellingen wordt eerst een back-up gemaakt. U kunt dit ook later doen via Hulp > Filamentvoorinstellingen migreren."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (gebaseerd op %2%)"
+
+# AI Translated
+msgid "Don't remind me again"
+msgstr "Herinner mij niet meer"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Er kon geen back-up van uw voorinstellingen worden gemaakt, dus ze zijn niet gemigreerd."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "De map met gebruikersvoorinstellingen kon niet worden vergrendeld, dus er is niets gemigreerd. Mogelijk slaat een andere OrcaSlicer-instantie op dit moment voorinstellingen op; probeer het later opnieuw via Hulp > Filamentvoorinstellingen migreren."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Uw filamentvoorinstellingen konden niet worden gemigreerd. Een back-up van uw voorinstellingen is opgeslagen in:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Uw filamentvoorinstellingen zijn gemigreerd. Selecteer ze opnieuw in de filamentlijst waar u ze gebruikte.\n"
+"\n"
+"Een back-up van uw voorinstellingen is opgeslagen in:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Deze voorinstellingen konden niet worden gemigreerd:"
+
# AI Translated
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
@@ -2732,6 +2918,9 @@ msgstr "Plug-ins vernieuwd."
msgid "Failed to refresh plugins: %s"
msgstr "Vernieuwen van plug-ins mislukt: %s"
+msgid "Unknown error"
+msgstr "Onbekende fout"
+
# AI Translated
msgid "Select plugin package"
msgstr "Plug-inpakket selecteren"
@@ -3294,6 +3483,22 @@ msgstr "Alles opnieuw laden"
msgid "Reload all from disk"
msgstr "Alles opnieuw laden vanaf schijf"
+# AI Translated
+msgid "Fix All"
+msgstr "Alles repareren"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Alle modellen op het huidige printbed repareren"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Alle printbedden repareren"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Alle modellen op alle printbedden repareren"
+
msgid "Auto Rotate"
msgstr "Automatisch roteren"
@@ -3355,8 +3560,13 @@ msgstr "(Kleur verloren)"
msgid "Center"
msgstr "Centreren"
-msgid "Drop"
-msgstr "Neerzetten"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Uitlijnen/Verdelen"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Objecten uitlijnen en verdelen"
msgid "Edit Process Settings"
msgstr "Procesinstellingen bewerken"
@@ -3663,6 +3873,13 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] "Repareren van de volgende modellen is mislukt@"
msgstr[1] "Repareren van de volgende modellen is mislukt@"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "Bij %1$d modelobject was geen reparatie nodig."
+msgstr[1] "Bij %1$d modelobjecten was geen reparatie nodig."
+
msgid "Repairing was canceled"
msgstr "Repareren is geannuleerd"
@@ -3742,9 +3959,6 @@ msgstr "Geen extra rand (brim)"
msgid "Outer wall speed"
msgstr "Snelheid buitenwand"
-msgid "Plate"
-msgstr "Printbed"
-
msgid "Brim"
msgstr "Rand"
@@ -3835,10 +4049,6 @@ msgstr "Aangepaste sjabloon toevoegen"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Voeg aan het begin van deze laag aangepaste sjabloon-G-code in."
-# AI Translated
-msgid "Filament "
-msgstr "Filament "
-
# AI Translated
msgid "Change filament at the beginning of this layer."
msgstr "Wissel van filament aan het begin van deze laag."
@@ -3943,6 +4153,7 @@ msgid "Off"
msgstr "Uit"
# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "Filter"
@@ -4073,12 +4284,19 @@ msgid "Check filament location"
msgstr "Controleer de positie van het filament"
# AI Translated
-msgid "Switch"
-msgstr "Wisselen"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Pauzeren"
# AI Translated
-msgid "hotend"
-msgstr "hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Extruder wisselen"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Hotend wisselen"
# AI Translated
msgid "Wait for AMS cooling"
@@ -4262,8 +4480,10 @@ msgid "Arranging"
msgstr "Rangschikken"
# AI Translated
-msgid "Arranging "
-msgstr "Rangschikken "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Rangschikken %1%"
msgid "Arranging canceled."
msgstr "Rangschikken geannuleerd."
@@ -4302,8 +4522,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Oriënteren..."
-msgid "Orienting"
-msgstr "Oriënteren"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Oriënteren %1%"
# AI Translated
msgid "Orienting canceled."
@@ -4312,6 +4535,12 @@ msgstr "Oriënteren geannuleerd."
msgid "Filling"
msgstr "Vullen"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Vullen %1%"
+
# AI Translated
msgid "Bed filling canceled."
msgstr "Printbed vullen geannuleerd."
@@ -4329,6 +4558,34 @@ msgstr "Oriëntatie zoeken geannuleerd."
msgid "Orientation found."
msgstr "Oriëntatie gevonden."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Beste oppervlaktekwaliteit"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Optimaliseer de rotatie van het object voor de beste oppervlaktekwaliteit."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Verminderde overhanghellingen"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Optimaliseer de rotatie van het object zodat er zo min mogelijk overhangen zijn die ondersteuningsstructuren nodig hebben.\n"
+"Let op: deze methode probeert het beste oppervlak van het object tegen het printbed te leggen als er geen verhoging is ingesteld."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Laagste Z-hoogte"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Draai het model zodat de Z-hoogte zo laag mogelijk is voor een kortere printtijd."
+
msgid "Logging in"
msgstr "Bezig met inloggen"
@@ -4663,6 +4920,17 @@ msgstr "Recente projecten"
msgid "Go to Plate"
msgstr "Naar printbed gaan"
+msgid "Device"
+msgstr "Apparaat"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Apparaat (Web)"
+
+# AI Translated
+msgid "Multi-device"
+msgstr "Meerdere apparaten"
+
msgid "AMS Materials Setting"
msgstr "AMS Materiaal instellingen"
@@ -4691,10 +4959,6 @@ msgstr "De invoerwaarde moet groter zijn dan %1% en kleiner dan %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Factoren van Flow Dynamics Calibration"
-# AI Translated
-msgid "Wiki Guide"
-msgstr "Wiki-handleiding"
-
msgid "PA Profile"
msgstr "PA-profiel"
@@ -4729,6 +4993,14 @@ msgstr "Voer een geldige waarde in (K tussen %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Voer een geldige waarde in (K tussen %.1f~%.1f, N tussen %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Favoriete filamenten"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Alle filamenten"
+
# AI Translated
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
@@ -4792,7 +5064,7 @@ msgstr "Bewaar"
msgctxt "Navigation"
msgid "Back"
-msgstr "Achterzijde"
+msgstr "Terug"
msgid "Example"
msgstr "Voorbeeld"
@@ -5074,11 +5346,11 @@ msgstr "De netwerkplug-in is geïnstalleerd, maar kon niet worden geladen. Start
msgid "Restart Required"
msgstr "Herstart vereist"
-msgid "Please home all axes (click "
-msgstr "Centreer alle assen (klik"
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") om de positie van de gereedschapskop te bepalen. Dit voorkomt dat het apparaat de printbare grens overschrijdt en dat apparatuur slijt."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Voer homing van alle assen uit (klik op %1%) om de positie van de printkop te bepalen. Dit voorkomt dat het apparaat buiten het printbare gebied beweegt en slijtage van de apparatuur veroorzaakt."
msgid "Go Home"
msgstr "Near home positie"
@@ -5095,6 +5367,10 @@ msgstr "Er is een fatale fout opgetreden: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Sla uw project alstublieft op en herstart het programma."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Onbekende C++-uitzondering."
+
msgid "Processing G-Code from previous file…"
msgstr "De G-code van het vorige bestand wordt verwerkt..."
@@ -5323,6 +5599,14 @@ msgstr "Automatisch aanpassen naar de limiet (%g mm)?"
msgid "Adjust"
msgstr "Aanpassen"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Vlot en tochtscherm zijn niet beschikbaar op bandprinters.\n"
+"Ze zijn uitgeschakeld."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -6252,10 +6536,6 @@ msgstr "Slice automatisch opnieuw volgens de optimale filamentgroepering; de gro
msgid "Filament Grouping"
msgstr "Filamentgroepering"
-# AI Translated
-msgid "Why this grouping"
-msgstr "Waarom deze groepering"
-
# AI Translated
msgid "Please place filaments on the printer based on grouping result."
msgstr "Plaats de filamenten in de printer op basis van het groeperingsresultaat."
@@ -6270,33 +6550,45 @@ msgstr "De huidige groepering van het sliceresultaat is niet optimaal."
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "%1%g meer filament en %2% meer wissels ten opzichte van de optimale groepering."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "%1%g meer filament en %2% extra wissel ten opzichte van de optimale groepering."
+msgstr[1] "%1%g meer filament en %2% extra wissels ten opzichte van de optimale groepering."
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "%1%g meer filament en %2% wissels minder ten opzichte van de optimale groepering."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "%1%g meer filament en %2% wissel minder ten opzichte van de optimale groepering."
+msgstr[1] "%1%g meer filament en %2% wissels minder ten opzichte van de optimale groepering."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "%1%g minder filament en %2% wissels meer ten opzichte van de optimale groepering."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "%1%g minder filament en %2% extra wissel ten opzichte van de optimale groepering."
+msgstr[1] "%1%g minder filament en %2% extra wissels ten opzichte van de optimale groepering."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "%1%g filament en %2% wissels minder ten opzichte van een printer met één mondstuk."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "%1%g filament en %2% wissel minder ten opzichte van een printer met één mondstuk."
+msgstr[1] "%1%g filament en %2% wissels minder ten opzichte van een printer met één mondstuk."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "%1%g minder filament en %2% wissels meer ten opzichte van een printer met één mondstuk."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "%1%g minder filament en %2% extra wissel ten opzichte van een printer met één mondstuk."
+msgstr[1] "%1%g minder filament en %2% extra wissels ten opzichte van een printer met één mondstuk."
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "%1%g meer filament en %2% wissels minder ten opzichte van een printer met één mondstuk."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "%1%g meer filament en %2% wissel minder ten opzichte van een printer met één mondstuk."
+msgstr[1] "%1%g meer filament en %2% wissels minder ten opzichte van een printer met één mondstuk."
# AI Translated
msgid "Set to Optimal"
@@ -6462,13 +6754,62 @@ msgstr "Bewerkingsgebied vergroten/verkleinen"
msgid "Sequence"
msgstr "Reeks"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Zwaartepunt van printbed"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Zwaartepunt van onderdeel"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Zwaartepunt van ondersteuning"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Zwaartepunt van samenstelling"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Zwaartepunt van object"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Voltooide print"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Geprint tot en met laag %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Gewicht"
+
+# AI Translated
+msgid "Volume"
+msgstr "Volume"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Zwaartepunt in omhullend kader"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Grootte van omhullend kader"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Traagheidsmoment"
+
# AI Translated
msgid "Object selection"
msgstr "Objectselectie"
# AI Translated
-msgid "number keys"
-msgstr "cijfertoetsen"
+msgid "1~16 number keys"
+msgstr "1~16 cijfertoetsen"
# AI Translated
msgid "Number keys can quickly change the color of objects"
@@ -6689,10 +7030,21 @@ msgstr "Assen"
msgid "Gridlines"
msgstr "Rasterlijnen"
+msgid "Focus mode"
+msgstr ""
+
# AI Translated
msgid "Labels"
msgstr "Labels"
+# AI Translated
+msgid "Center of mass"
+msgstr "Zwaartepunt"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Ruwe G-code tonen (alleen band)"
+
# AI Translated
msgid "Move section plane"
msgstr "Doorsnedevlak verplaatsen"
@@ -6743,7 +7095,7 @@ msgid "Size:"
msgstr "Maat:"
# AI Translated
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Er zijn conflicten tussen G-code-paden gevonden op laag %d, Z = %.2lfmm. Plaats de conflicterende objecten verder uit elkaar (%s <-> %s)."
@@ -6767,22 +7119,16 @@ msgstr "Gereedschap %d"
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Filament %s is in de %s geplaatst, maar het gegenereerde G-code-pad valt buiten het printbare bereik van de %s."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Filamenten %s zijn in de %s geplaatst, maar het gegenereerde G-code-pad valt buiten het printbare bereik van de %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "Filament %s is in de %s geplaatst, maar het gegenereerde G-code-pad valt buiten het printbare bereik van de %s."
+msgstr[1] "Filamenten %s zijn in de %s geplaatst, maar het gegenereerde G-code-pad valt buiten het printbare bereik van de %s."
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Filament %s is in de %s geplaatst, maar het gegenereerde G-code-pad overschrijdt de printbare hoogte van de %s."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Filamenten %s zijn in de %s geplaatst, maar het gegenereerde G-code-pad overschrijdt de printbare hoogte van de %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "Filament %s is in de %s geplaatst, maar het gegenereerde G-code-pad overschrijdt de printbare hoogte van de %s."
+msgstr[1] "Filamenten %s zijn in de %s geplaatst, maar het gegenereerde G-code-pad overschrijdt de printbare hoogte van de %s."
# AI Translated
msgid "Open wiki for more information."
@@ -6793,14 +7139,17 @@ msgstr "Alleen het object waaraan gewerkt wordt is zichtbaar."
# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Filamenten %s kunnen niet rechtstreeks op het oppervlak van dit printbed worden geprint."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "Filament %s kan niet rechtstreeks op het oppervlak van dit printbed worden geprint."
+msgstr[1] "Filamenten %s kunnen niet rechtstreeks op het oppervlak van dit printbed worden geprint."
# AI Translated
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "Er zijn PLA- en PETG-filamenten in de combinatie gedetecteerd. Pas de parameters aan volgens de wiki om de printkwaliteit te waarborgen."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "The prime tower extends beyond the plate boundary."
msgstr "De prime toren steekt buiten de rand van het printbed uit."
@@ -6926,21 +7275,10 @@ msgstr "Voorbereiden"
msgid "Preview"
msgstr "Voorvertoning"
-msgid "Device"
-msgstr "Apparaat"
-
-# AI Translated
-msgid "Multi-device"
-msgstr "Meerdere apparaten"
-
# AI Translated
msgid "Project"
msgstr "Project"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Apparaat (Web)"
-
msgid "Yes"
msgstr "Ja"
@@ -6948,8 +7286,10 @@ msgid "No"
msgstr "Nee"
# AI Translated
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "wordt gesloten voordat een nieuw model wordt gemaakt. Wilt u doorgaan?"
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s wordt gesloten voordat een nieuw model wordt gemaakt. Wilt u doorgaan?"
msgid "Print all"
msgstr "Print alles"
@@ -6995,6 +7335,10 @@ msgstr "Installatiewizard"
msgid "Show Configuration Folder"
msgstr "Toon de configuratie map"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Filamentvoorinstellingen terugbrengen die door een profielupdate zijn verwijderd van de printers waarvoor ze zijn gemaakt"
+
# AI Translated
msgid "Troubleshoot Center"
msgstr "Probleemoplossingscentrum"
@@ -7248,6 +7592,14 @@ msgstr "Rasterlijnen tonen"
msgid "Show Gridlines on plate"
msgstr "Rasterlijnen op het printbed tonen"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "IDEX/IQEX-printkop tonen"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Toon de weergave van de IDEX/IQEX-printkop rond elk actief mondstuk in de G-code-voorvertoning."
+
# AI Translated
msgid "Reset Window Layout"
msgstr "Vensterindeling terugzetten"
@@ -7942,6 +8294,7 @@ msgid "Calculating..."
msgstr "Berekenen..."
# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Camera"
@@ -8030,8 +8383,10 @@ msgstr "Cloud slicen..."
# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "In de wachtrij voor cloud-slicing staan %s taken vóór u."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "In de wachtrij voor cloud-slicing staat %d taak vóór u."
+msgstr[1] "In de wachtrij voor cloud-slicing staan %d taken vóór u."
#, c-format, boost-format
msgid "Layer: %s"
@@ -8064,6 +8419,11 @@ msgstr "Dit is alleen van kracht tijdens het printen"
msgid "Silent"
msgstr "Stille"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Standaard"
+
# AI Translated
msgid "Sport"
msgstr "Sport"
@@ -8126,18 +8486,29 @@ msgstr "Afbeeldingen uploaden"
msgid "Number of images successfully uploaded"
msgstr "Aantal afbeeldingen succesvol geüpload"
-msgid " upload failed"
-msgstr "uploaden mislukt"
-
-msgid " upload config prase failed\n"
-msgstr " upload config prase mislukt\n"
-
-msgid " No corresponding storage bucket\n"
-msgstr " Geen bijbehorende opslag bucket\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Uploaden van %s mislukt"
# AI Translated
-msgid " cannot be opened\n"
-msgstr " kan niet worden geopend\n"
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Uploadconfiguratie van %s kon niet worden verwerkt"
+
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: geen bijbehorende opslagbucket"
+
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s kan niet worden geopend"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -8156,27 +8527,21 @@ msgid "Obtaining instance_id failed\n"
msgstr "het verkrijgen van instance_id is mislukt\n"
# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Uw beoordeling kan om de volgende redenen niet worden geüpload:\n"
-"\n"
-" foutcode: "
-
-msgid "error message: "
-msgstr "foutmelding: "
-
-# AI Translated
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Uw beoordeling kan om de volgende redenen niet worden geüpload:\n"
"\n"
+" foutcode: %d\n"
+" foutmelding: %s\n"
"\n"
-"Wilt u worden doorgestuurd naar de webpagina om een beoordeling te geven?"
+"Wilt u naar de webpagina gaan om een beoordeling te geven?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Sommige afbeeldingen zijn niet geüpload. Wilt u doorverwijzen naar de webpagina voor beoordeling?"
@@ -9057,6 +9422,113 @@ msgstr "Alle instellingen van het object weergeven"
msgid "Material settings"
msgstr "Materiaalinstellingen"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Elke modus noemt de printkoppen die meedoen en de rol die elk ervan speelt. Klik op een gereedschapsknop om de rol te wisselen — beweeg over een kleur hieronder om te zien wat elke rol doet."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Modus toevoegen"
+
+# AI Translated
+msgid "Tools"
+msgstr "Extra"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Hoe de modus wordt weergegeven in de IDEX/IQEX-moduskeuze van het printbed. Verplicht — een modus zonder naam kan niet worden geselecteerd."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Welke printkoppen aan de modus deelnemen en welke rol elk ervan speelt. Klik op een tegel om de rol te wisselen."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code die bij de start van de print wordt uitgevoerd om de printer in deze modus te zetten (bijvoorbeeld een Klipper SET_PRINT_MODE-aanroep). De slicer genereert alleen de paden van het primaire gereedschap (Primary); de firmware stuurt de andere aan."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Inactief"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Primair"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Kopie"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Spiegel"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Stuurt elk geslicet pad aan. Altijd gereedschap 0 — gebruik Positie gereedschap 0 hierboven om te kiezen welke hoek van het printbed het inneemt. Het kan niet uit het raster worden verplaatst."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Volgt de primaire (Primary) op firmwareniveau en print dezelfde paden, verschoven naar de eigen zone."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Volgt de primaire (Primary) op firmwareniveau en print dezelfde paden, gespiegeld over de grens tussen de twee zones."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Markeert een gereedschap op het portaal van de primaire (Primary) als diens partner voor meerdere kleuren. Vereist om printen in meerdere kleuren mogelijk te maken in modi met gekoppelde portalen."
+
+# AI Translated
+msgid "Primary"
+msgstr "Primair"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Modusnaam (verplicht)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Naam van deze parallelle modus, zoals die in de IDEX/IQEX-moduskeuze van het printbed verschijnt. Wordt op naam in het project opgeslagen; als u een modus hernoemt die printbedden al gebruiken, vallen die terug op Primair. Mag niet leeg zijn — een lege naam wordt vervangen door een gegenereerde naam."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code die eenmaal wordt uitgevoerd aan het begin van een print die deze modus gebruikt, vóór de start-G-code van de machine. Hier wordt de printer in de bijbehorende firmwaremodus gezet — bijvoorbeeld met een Klipper SET_PRINT_MODE-aanroep of een RepRapFirmware M567 — omdat de slicer alleen de paden van het primaire gereedschap (Primary) genereert en de firmware de gereedschappen Kopie (Copy) / Spiegel (Mirror) aanstuurt. Plaatshouders worden ondersteund; gebruik de bewerkknop om ze te bekijken. Laat leeg als de modus geen firmware-instelling nodig heeft."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "G-code bewerken / plaatshouders bekijken"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Modus verwijderen"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Wijzigingen in deze modus tijdens deze sessie verwerpen (terug naar de opgeslagen waarde)"
+
# AI Translated
msgid "Remove current plate (if not last one)"
msgstr "Huidig printbed verwijderen (als het niet het laatste is)"
@@ -9089,14 +9561,34 @@ msgstr "Naam van het huidige printbed bewerken"
msgid "Move plate to the front"
msgstr "Printbed naar voren verplaatsen"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX-modus: %1% (procesvoorinstelling: %2%) (linksklik om te wisselen, rechtsklik voor menu)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX-modus: %1% (linksklik om te wisselen, rechtsklik voor menu)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Waarschuwing: dit printbed gebruikt een parallelle IDEX/IQEX-modus met objecten van meerdere materialen. Ga voorzichtig te werk — controleer of uw G-code deze combinatie correct verwerkt."
+
# AI Translated
msgid "Customize current plate"
msgstr "Huidig printbed aanpassen"
# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "Het %s-mondstuk kan %s niet printen."
+msgid "The left nozzle cannot print %s."
+msgstr "Het linker mondstuk kan %s niet printen."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "Het rechter mondstuk kan %s niet printen."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -9108,13 +9600,17 @@ msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Het combineren van %1% met %2% bij het printen wordt afgeraden.\n"
# AI Translated
-msgid " nozzle"
-msgstr " mondstuk"
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
+#, boost-format
+msgid "%1%mm %2% nozzle"
+msgstr "%2% mondstuk van %1%mm"
# AI Translated
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Het wordt afgeraden de volgende filament(en) met %1% te printen: %2%\n"
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Het wordt afgeraden het volgende filament met %1% te printen: %2%\n"
+msgstr[1] "Het wordt afgeraden de volgende filamenten met %1% te printen: %2%\n"
# AI Translated
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
@@ -9125,9 +9621,11 @@ msgstr "Het wordt afgeraden de volgende combinaties van mondstuk en filament te
msgid "%1% with %2%\n"
msgstr "%1% met %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " printbed %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Printbed %1% slicen: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Ongeldige naam, the volgende karakters zijn niet toegestaan:"
@@ -9167,14 +9665,6 @@ msgstr "AMS(1 slot)"
msgid "Not installed"
msgstr "Niet geïnstalleerd"
-# AI Translated
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "De software ondersteunt het gebruik van mondstukken met verschillende diameters voor één print niet. Als het linker- en rechtermondstuk verschillen, kan er alleen met één printkop worden geprint. Bevestig welk mondstuk u voor dit project wilt gebruiken."
-
-# AI Translated
-msgid "Switch diameter"
-msgstr "Diameter wisselen"
-
msgid "Configuration incompatible"
msgstr "De configuratie is niet geschikt"
@@ -9262,6 +9752,10 @@ msgstr "Gemengd filament"
msgid "Remove last mixed filament"
msgstr "Laatste gemengde filament verwijderen"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Alle gemengde filamenten verwijderen"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Gemengd filament toevoegen"
@@ -9285,6 +9779,13 @@ msgstr "Het gemengde filament bevat ongeldige componentverwijzingen"
msgid "Edit / Delete / Merge"
msgstr "Bewerken / Verwijderen / Samenvoegen"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "%1% gemengd filament verwijderen?"
+msgstr[1] "Alle %1% gemengde filamenten verwijderen?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Het gemengde doelfilament gebruikt dit fysieke filament als component. Bij het samenvoegen wordt dit fysieke filament verwijderd en kan het gemengde filament ongeldig worden. Doorgaan?"
@@ -9350,6 +9851,7 @@ msgid "Enabling traditional timelapse photography may cause surface imperfection
msgstr "Het inschakelen van traditionele timelapse-fotografie kan oneffenheden in het oppervlak veroorzaken. Het wordt aanbevolen om over te schakelen naar de vloeiende modus."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Smooth mode for timelapse is enabled, but the prime tower is off, which may cause print defects. Please enable the prime tower, re-slice and print again."
msgstr "De vloeiende modus voor timelapse is ingeschakeld, maar de prime toren staat uit, wat printfouten kan veroorzaken. Schakel de prime toren in, slice opnieuw en print nogmaals."
@@ -9366,10 +9868,6 @@ msgstr "Bestand laden: %s"
msgid "Load 3MF"
msgstr "Laad 3MF"
-# AI Translated
-msgid "BambuStudio Project"
-msgstr "BambuStudio-project"
-
# AI Translated
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "De 3MF wordt niet ondersteund door OrcaSlicer; alleen de geometriegegevens worden geladen."
@@ -9405,20 +9903,6 @@ msgstr "U dient de software te upgraden.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "Versie %s van de 3MF is nieuwer dan versie %s van %s. Wij stellen voor om uw software te upgraden."
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "Het 3MF-bestand is gemaakt door BambuStudio (versie %s), dat nieuwer is dan de compatibele versie %s. Er zijn niet-herkende instellingen gevonden:"
-
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "Het 3MF-bestand is gemaakt door BambuStudio (versie %s), dat nieuwer is dan de compatibele versie %s. Sommige instellingen zijn mogelijk niet volledig compatibel."
-
-# AI Translated
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "Het 3MF-bestand is gemaakt door BambuStudio. Sommige instellingen kunnen afwijken van OrcaSlicer."
-
# AI Translated
msgid "Invalid values found in the 3MF:"
msgstr "Ongeldige waarden gevonden in het 3MF-bestand:"
@@ -9599,6 +10083,15 @@ msgstr "Automatisch laten vallen uitschakelen om de Z-positie te behouden?\n"
msgid "Object with floating parts was detected"
msgstr "Er is een object met zwevende onderdelen gedetecteerd"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Kan niet slicen: een object overlapt een gebied dat is gereserveerd voor IDEX/IQEX-parallel printen (een secundaire zone, of een vrijloopstrook voor de wagen binnen de primaire zone)."
+
+# AI Translated
+# Needs human review: Prime tower glossary cell is unsettled (Prime toren / Afveegblok); used 'prime toren' as in other AI entries
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Kan niet slicen: de prime toren overlapt een gebied dat is gereserveerd voor IDEX/IQEX-parallel printen (een secundaire zone, of een vrijloopstrook voor de wagen binnen de primaire zone)."
+
msgid "Another export job is running."
msgstr "Er is reeds een export taak actief."
@@ -9660,8 +10153,9 @@ msgstr "Vervangen volumes"
msgid "Please select a file"
msgstr "Selecteer een bestand"
-msgid "Do you want to replace it"
-msgstr "Wilt u deze vervangen"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Wilt u deze vervangen?"
msgid "Message"
msgstr "Bericht"
@@ -9691,6 +10185,51 @@ msgstr "Interne solide vulling (infill)"
msgid "Slicing Canceled"
msgstr "Slicing Geannuleerd"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Conflict in bedtemperatuur: T%d (%s) stelt het printbed in op %d℃ — T%d (%s) vereist %d℃. Het primaire gereedschap regelt het printbed; secundaire gereedschappen printen op de temperatuur die het instelt."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Filamenttypen komen niet overeen: T%d gebruikt %s en T%d gebruikt %s. Deze materialen hebben onverenigbare eisen en zijn niet bedoeld om samen te printen."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"Op printbed %d is de IDEX/IQEX-parallelle modus actief, met de volgende aandachtspunten:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Doorgaan met slicen?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Waarschuwing IDEX/IQEX-parallelle modus"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Deze waarschuwingen niet meer tonen"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Printbed %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"De volgende aandachtspunten voor de IDEX/IQEX-parallelle modus zijn gedetecteerd:\n"
+"\n"
+
# AI Translated
msgid "Network plug-in switched successfully."
msgstr "De netwerkplug-in is met succes gewisseld."
@@ -9727,8 +10266,8 @@ msgid "Sync now"
msgstr "Nu synchroniseren"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Ongedaan maken of opnieuw doen is niet mogelijk terwijl een bewerking bezig is. Stop deze eerst."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Ongedaan maken of opnieuw uitvoeren is niet mogelijk terwijl een bewerking loopt. Stop de bewerking, of wacht tot deze klaar is en probeer het dan opnieuw."
# AI Translated
msgid ""
@@ -9802,6 +10341,14 @@ msgstr "Downloaden mislukt; uitzondering in bestandsgrootte."
msgid "Project downloaded %d%%"
msgstr "Project %d%% gedownload"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"De tests PA-lijn en PA-patroon zijn nog niet beschikbaar op bandprinters.\n"
+"Gebruik in plaats daarvan de methode PA-toren."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Pressure Advance-test"
@@ -9811,12 +10358,14 @@ msgid "INFO:"
msgstr "INFO:"
# AI Translated
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Er zijn geen versnellingen opgegeven voor de kalibratie. De standaard versnellingswaarde wordt gebruikt "
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Er zijn geen versnellingen opgegeven voor de kalibratie. De standaardversnelling %1%mm/s² wordt gebruikt"
# AI Translated
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Er zijn geen snelheden opgegeven voor de kalibratie. De standaard optimale snelheid wordt gebruikt "
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Er zijn geen snelheden opgegeven voor de kalibratie. De standaard optimale snelheid %1%mm/s wordt gebruikt"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9831,6 +10380,15 @@ msgstr "Orca YOLO-flowkalibratie"
msgid "Flowrate Test - Pass%d"
msgstr "Flowrate-test - ronde %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Er is geen temperatuurtoren voor de band beschikbaar voor het bereik %1% tot %2%℃. Gebruik een bereik dat de torenmodellen dekken, bijvoorbeeld 230 tot 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Temperatuurtoren"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Temperatuurtest mondstuk"
@@ -9856,11 +10414,16 @@ msgstr "Bochtentest"
msgid "Import SLA archive"
msgstr "Importeer SLA-archief"
-msgid "The selected file"
-msgstr "Het geselecteerde bestand"
-
-msgid "Does not contain valid G-code."
-msgstr "Bevat geen geldige G-code"
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Het geselecteerde bestand:\n"
+"%1%\n"
+"bevat geen geldige G-code."
msgid "An Error has occurred while loading the G-code file."
msgstr "Er is een fout opgetreden tijdens het laden van het G-codebestand."
@@ -10156,6 +10719,27 @@ msgstr "Op dit moment kan het objectconfiguratieformulier niet worden gebruikt m
msgid "Not available"
msgstr "Niet beschikbaar"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (geen printbed)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — geen filament toegewezen\n"
+"Voeg een extruder toe op het tabblad Machine zodat deze printkop een filamentslot heeft."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% print filament %2%"
+
# AI Translated
msgid "isometric"
msgstr "isometric"
@@ -10201,8 +10785,10 @@ msgstr "Europa"
msgid "North America"
msgstr "Noord-Amerika"
+# AI Translated
+msgctxt "Region"
msgid "Others"
-msgstr "Andere"
+msgstr "Overige"
msgid "Changing the region will log you out of your account.\n"
msgstr "Als u de regio wijzigt, wordt u afgemeld bij uw account.\n"
@@ -10285,11 +10871,17 @@ msgstr "Opnieuw laden van de netwerkplug-in is mislukt. Start de applicatie opni
msgid "Reload Failed"
msgstr "Opnieuw laden mislukt"
-msgid "Associate"
-msgstr "Associeer"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Koppel %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "met OrcaSlicer zodat Orca modellen kan openen van"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Koppel %s:// aan OrcaSlicer zodat Orca modellen kan openen van %s"
msgid "Current Association: "
msgstr "Huidige associatie: "
@@ -10624,6 +11216,10 @@ msgstr "Laatste printactie onthouden"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Indien ingeschakeld onthoudt OrcaSlicer de laatst gekozen optie in de keuzelijst van de printknop (bijv. Printen, Exporteer plate sliced bestand, G-codebestand exporteren) en gebruikt deze bij de volgende start als standaard."
+# AI Translated
+msgid "Camera"
+msgstr "Camera"
+
# AI Translated
msgid "Touchpad"
msgstr "Touchpad"
@@ -11099,6 +11695,9 @@ msgstr "Versie van de netwerkplug-in"
msgid "Select the network plug-in version to use"
msgstr "Selecteer de te gebruiken versie van de netwerkplug-in"
+msgid "Associate"
+msgstr "Associeer"
+
msgid "Associate files to OrcaSlicer"
msgstr "Koppel bestanden aan OrcaSlicer"
@@ -11153,6 +11752,12 @@ msgstr "Niet-ondersteunde voorinstellingen tonen"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Toon incompatibele/niet-ondersteunde voorinstellingen in de keuzelijsten voor printer en filament. Deze voorinstellingen kunnen niet worden geselecteerd."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "Experimentele functies"
@@ -11454,10 +12059,6 @@ msgstr "3MF publiceren..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Selecteer welke instellingen in het 3MF-bestand worden gepubliceerd"
-# AI Translated
-msgid "Video Guide"
-msgstr "Videohandleiding"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Gemengd filament - wordt als geheel gepubliceerd wanneer hierboven \"Inschakelen\" is geselecteerd"
@@ -11623,6 +12224,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Eenvoudig"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s uit %s"
+
# AI Translated
msgid "Search actions"
msgstr "Acties zoeken"
@@ -11741,6 +12348,10 @@ msgstr "Details tonen"
msgid "Hide details"
msgstr "Details verbergen"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Webweergave is niet beschikbaar."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -12045,8 +12656,10 @@ msgstr "De naam is langer dan toegestaan."
# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Kost %dg filament en %d wissels meer dan de optimale groepering."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Kost %dg filament en %d wissel meer dan de optimale groepering."
+msgstr[1] "Kost %dg filament en %d wissels meer dan de optimale groepering."
# AI Translated
msgid "Right-Ext"
@@ -12143,6 +12756,10 @@ msgstr "Sommige filamenten kunnen tijdens het printen tussen extruders wisselen.
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "Dit bestand bevat filament dat gevoelig is voor draadvorming. Voor de beste printkwaliteit raden we aan de klontdetectie op het mondstuk op de automatische modus te zetten."
+# AI Translated
+msgid "Switch"
+msgstr "Wisselen"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Als 'Dynamische flowkalibratie' op Auto/Aan staat, gebruikt het systeem de handmatige kalibratiewaarde of de standaardwaarde en slaat het het flowkalibratieproces over. U kunt op de pagina 'Kalibratie' een handmatige flowkalibratie voor TPU-filament uitvoeren."
@@ -12489,6 +13106,10 @@ msgstr "Synchronisatie van verschillende extruderaandrijvingen of typen mondstuk
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Synchroniseer de wijziging van parameters met de overeenkomstige parameters van een andere extruder."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Parameters met dit pictogram kunnen per mondstuk worden ingesteld."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Klik om alle instellingen terug te zetten naar de laatst opgeslagen voorinstelling."
@@ -12499,6 +13120,7 @@ msgid "A prime tower is required for smooth timelapse mode. There may be flaws o
msgstr "Een Prime-toren is vereist voor een vloeiende timeplase-modus. Er kunnen gebreken ontstaan aan het model zonder prime-toren. Weet je zeker dat je de prime-toren wilt uitschakelen?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?"
msgstr "Voor klontdetectie is een prime toren vereist. Zonder prime toren kunnen er onvolkomenheden op het model ontstaan. Weet u zeker dat u de prime toren wilt uitschakelen?"
@@ -12506,6 +13128,7 @@ msgid "Enabling both precise Z height and the prime tower may cause slicing erro
msgstr "Het inschakelen van zowel precieze Z-hoogte als de spoeltoren kan slicefouten veroorzaken. Wilt u nog steeds inschakelen?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Do you still want to enable clumping detection?"
msgstr "Voor klontdetectie is een prime toren vereist. Zonder prime toren kunnen er onvolkomenheden op het model ontstaan. Wilt u klontdetectie toch inschakelen?"
@@ -12513,6 +13136,7 @@ msgid "Enabling both precise Z height and the prime tower may cause slicing erro
msgstr "Het inschakelen van zowel precieze Z-hoogte als de spoeltoren kan slicefouten veroorzaken. Wilt u precieze Z-hoogte nog steeds inschakelen?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Smooth timelapse needs a prime tower on every layer, which is not compatible with \"No sparse layers\". \"No sparse layers\" has been turned off."
msgstr "Vloeiende timelapse heeft op elke laag een prime toren nodig, wat niet samengaat met \"Geen dunne lagen\". \"Geen dunne lagen\" is uitgeschakeld."
@@ -12520,6 +13144,7 @@ msgid "A prime tower is required for smooth timelapse mode. There may be flaws o
msgstr "Een prime-toren is vereist voor een vloeiende timelapse-modus. Er kunnen gebreken ontstaan aan het model zonder prime-toren. Wilt u de prime-toren inschakelen?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "\"No sparse layers\" is not compatible with smooth timelapse, which needs a prime tower on every layer. Timelapse has been switched to traditional mode."
msgstr "\"Geen dunne lagen\" gaat niet samen met vloeiende timelapse, die op elke laag een prime toren nodig heeft. De timelapse is overgeschakeld naar de traditionele modus."
@@ -12727,6 +13352,9 @@ msgstr "Filament voor functies"
msgid "Ooze prevention"
msgstr "Druippreventie"
+msgid "Others"
+msgstr "Andere"
+
msgid "Special mode"
msgstr "Speciale modus"
@@ -12769,8 +13397,11 @@ msgstr[1] ""
"De volgende regel %s bevat gereserveerde trefwoorden.\n"
"Verwijder deze woorden alstublieft, anders overschrijven deze de G-code-visualisatie en de schatting van de afdruktijd."
-msgid "Reserved keywords found"
-msgstr "Gereserveerde zoekworden gevonden"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Gereserveerde trefwoorden gevonden in %1%"
msgid "Setting Overrides"
msgstr "Overschrijvingen instellen"
@@ -12901,6 +13532,7 @@ msgid "Set"
msgstr "Instellen"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Tool change parameters with multi extruder MM printers"
msgstr "Toolwisselparameters voor multi-materialprinters met meerdere extruders"
@@ -12920,8 +13552,17 @@ msgstr "Ruimte waarbinnen geprint kan worden"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Selecteer de implementatie van de netwerkagent voor de communicatie met de printer. Beschikbare agenten worden bij het opstarten geregistreerd."
+# AI Translated
+msgid "Belt printer"
+msgstr "Bandprinter"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Transformaties naar machinecoördinatenstelsel"
+
# AI Translated
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Ongeldige waarde opgegeven voor parameter %1%: %2%"
@@ -13047,9 +13688,29 @@ msgstr "Mondstuk diameter"
msgid "Wipe tower"
msgstr "Afveegblok"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Band-spoeltoren"
+
msgid "Single extruder multi-material parameters"
msgstr "Parameter voor multi-material met één extruder"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "IDEX/IQEX-configuratie"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Waarschuwingen vóór het slicen"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Toon vóór het slicen een waarschuwingsdialoogvenster als er aandachtspunten voor de IDEX/IQEX-parallelle modus worden gedetecteerd (conflicten in bedtemperatuur, niet-overeenkomende filamenttypen, conflicten met meerdere materialen). Kan in het dialoogvenster zelf worden onderdrukt. Schakel het hier weer in als het per ongeluk is onderdrukt."
+
+# AI Translated
+msgid "Modes"
+msgstr "Modi"
+
# AI Translated
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Dit is een multi-materialprinter met één extruder; de diameters van alle extruders worden op de nieuwe waarde ingesteld. Wilt u doorgaan?"
@@ -13060,6 +13721,22 @@ msgstr "Limieten voor laaghoogte"
msgid "Z-Hop"
msgstr "Z-hop"
+# AI Translated
+msgid "Front-left"
+msgstr "Linksvoor"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Rechtsvoor"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Linksachter"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Rechtsachter"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -13084,22 +13761,37 @@ msgstr "Gewijzigde waarde gebruiken"
msgid "Detached"
msgstr "Losgemaakt"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% en %2% zijn gekoppeld aan deze printer. Deze voorinstellingen worden verwijderd als de printer wordt verwijderd."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d Filament Preset en %d Process Preset zijn gekoppeld aan deze printer. Deze voorinstellingen worden verwijderd als de printer wordt verwijderd."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d filamentvoorinstelling"
+msgstr[1] "%d filamentvoorinstellingen"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d procesvoorinstelling"
+msgstr[1] "%d procesvoorinstellingen"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Presets die door andere presets worden geërfd, kunnen niet worden verwijderd!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "De volgende voorinstellingen erven van deze voorinstelling."
-msgstr[1] "De volgende voorinstelling erft van deze voorinstelling."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "De volgende voorinstelling erft van deze voorinstelling."
+msgstr[1] "De volgende voorinstellingen erven van deze voorinstelling."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% Voorinstelling"
+msgid "Delete Preset"
+msgstr "Preset verwijderen"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -13113,9 +13805,9 @@ msgstr ""
"Weet je zeker dat je de geselecteerde preset wilt verwijderen?\n"
"Als de voorinstelling overeenkomt met een filament dat momenteel in gebruik is op je printer, reset dan de filamentinformatie voor die sleuf."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Weet u zeker dat u de geselecteerde preset wilt %1%?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Weet u zeker dat u de geselecteerde voorinstelling wilt verwijderen?"
# AI Translated
msgid "Select printers"
@@ -13178,9 +13870,34 @@ msgid "Don't warn again for this preset"
msgstr "Niet meer waarschuwen voor deze voorinstelling"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
# AI Translated
msgid "No modifications need to be copied."
@@ -13399,6 +14116,12 @@ msgstr "Een van de voorinstellingen bestaat niet"
msgid "Compared presets has different printer technology"
msgstr "De vergeleken voorinstellingen hebben verschillende printertechnologie"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" versus \"%2%\""
+
msgid "Add File"
msgstr "Bestand toevoegen"
@@ -13424,6 +14147,22 @@ msgstr "Materiaal rekening"
msgid "Assembly Guide"
msgstr "Montagehandleiding"
+# AI Translated
+msgid "Image files"
+msgstr "Afbeeldingsbestanden"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXT-bestanden"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCEL-bestanden"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDF-bestanden"
+
msgid "Author"
msgstr "Auteur"
@@ -13659,10 +14398,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Totale ramming"
-# AI Translated
-msgid "Volume"
-msgstr "Volume"
-
# AI Translated
msgid "Ramming line"
msgstr "Ramminglijn"
@@ -13692,8 +14427,9 @@ msgid "Flushing volumes for filament change"
msgstr "Volumes reinigen voor filament wijziging"
# AI Translated
-msgid "Please choose the filament color"
-msgstr "Kies de filamentkleur"
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "van/naar"
# AI Translated
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -13716,6 +14452,155 @@ msgstr "Inloggen mislukt. Probeer het opnieuw."
msgid "parse json failed"
msgstr "json parsen mislukt"
+# AI Translated
+msgid "Loading…"
+msgstr "Laden…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Aangepast"
+
+# AI Translated
+msgid "Welcome to Orca Slicer"
+msgstr "Welkom bij Orca Slicer"
+
+# AI Translated
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer wordt in een aantal stappen ingesteld. Laten we beginnen!"
+
+# AI Translated
+msgid "Get Started"
+msgstr "Aan de slag"
+
+# AI Translated
+msgid "Please select your login region"
+msgstr "Selecteer uw inlogregio"
+
+msgid "Finish"
+msgstr "Klaar"
+
+# AI Translated
+msgid "Printer Selection"
+msgstr "Printerselectie"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Leveranciers"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Aangepaste printer"
+
+msgid "Create"
+msgstr "Creëren"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Controleren op nieuwe printers"
+
+# AI Translated
+msgid "At least one printer must be selected."
+msgstr "Er moet minstens één printer worden geselecteerd."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Nieuwe printers gevonden"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Nieuwe printerleveranciers geïnstalleerd: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Er zijn nieuwe printerleveranciers gevonden, maar de installatie is geannuleerd."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Geen nieuwe printers gevonden."
+
+# AI Translated
+msgid "Filament Selection"
+msgstr "Filamentselectie"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "Systeemfilamenten"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "Aangepaste filamenten"
+
+# AI Translated
+msgid "Create New"
+msgstr "Nieuw maken"
+
+msgid "Filament type"
+msgstr "Filamenttype"
+
+msgid "Vendor"
+msgstr "Leverancier"
+
+# AI Translated
+msgid "No items"
+msgstr "Geen items"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Items filteren"
+
+# AI Translated
+msgid "Checked"
+msgstr "Aangevinkt"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Niet aangevinkt"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Gefilterde selecteren"
+
+# AI Translated
+msgid "Clear all"
+msgstr "Alles wissen"
+
+# AI Translated
+msgid "At least one filament must be selected."
+msgstr "Er moet minstens één filament worden geselecteerd."
+
+# AI Translated
+msgid "Do you want to use the default filament?"
+msgstr "Wilt u het standaardfilament gebruiken?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Hiermee worden alle cloudfuncties uitgeschakeld, inclusief het synchroniseren van Orca Cloud-profielen. Gebruikers die volledig offline willen werken, kunnen deze optie inschakelen."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Let op: wanneer de Stealth-modus is ingeschakeld, worden uw gebruikersprofielen niet geback-upt naar Orca Cloud."
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "Stealth-modus inschakelen."
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Propriëtaire plug-ins"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Sommige printerleveranciers vereisen propriëtaire plug-ins voor de communicatie met hun printers. Selecteer de bijbehorende plug-in als u zulke printers gebruikt."
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Houd er rekening mee dat deze plug-ins niet door OrcaSlicer worden ontwikkeld of onderhouden. Gebruik ze naar eigen inzicht en op eigen risico."
+
+# AI Translated
+msgid "Install Bambu Network plug-in"
+msgstr "Bambu-netwerkplug-in installeren"
+
# AI Translated
msgid "[Action Required] "
msgstr "[Actie vereist] "
@@ -13786,9 +14671,6 @@ msgstr "Beschikbaar wanneer de 3D-weergave in het tabblad Voorbereiden de focus
msgid "Select a part"
msgstr "Selecteer een onderdeel"
-msgid "Select multiple objects"
-msgstr "Selecteer meerdere objecten"
-
msgid "Select objects by rectangle"
msgstr "Objecten selecteren door rechthoek"
@@ -14145,27 +15027,20 @@ msgstr "De firmwareversie is abnormaal. Repareren en bijwerken is vereist voor h
msgid "Extension Board"
msgstr "Uitbreidingsprint"
-# AI Translated
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Splitsen in %1% onderdelen"
-
msgid "Repair finished"
msgstr "Reperaren afgerond"
-msgid "Repair failed"
-msgstr "Repareren mislukt."
-
-msgid "Repair canceled"
-msgstr "Repareren geannuleerd"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Het kopieeren van bestand %1% naar %2% is mislukt: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Nieuwe leveranciersprofielen downloaden: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Nieuw leveranciersprofiel downloaden: %1%..."
+msgstr[1] "Nieuwe leveranciersprofielen downloaden: %1%..."
# AI Translated
#, boost-format
@@ -14173,8 +15048,12 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Configuratiepakket: %1% bijgewerkt naar %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Downloaden van leveranciersprofielen mislukt: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Downloaden van leveranciersprofiel mislukt: %1%"
+msgstr[1] "Downloaden van leveranciersprofielen mislukt: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Controleer niet-opgeslagen wijzigingen voordat u de configuratie bijwerkt."
@@ -14182,6 +15061,11 @@ msgstr "Controleer niet-opgeslagen wijzigingen voordat u de configuratie bijwerk
msgid "Open G-code file:"
msgstr "Open G-code bestand:"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Het genereren van de prime toren is mislukt, mogelijk door een lege eerste laag."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Eén object heeft een lege eerste laag en kan niet geprint worden. Knip een stuk van de bodem van het object of genereer support."
@@ -14205,9 +15089,62 @@ msgstr "Proces-G-code bij wijzigen van extrusietype"
msgid "Filament change extrusion role G-code"
msgstr "Filament-G-code bij wijzigen van extrusietype"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"Exporteren van G-code naar %1% mislukt.\n"
+"Kan het bestand niet openen om te schrijven."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "De map %1% bestaat niet."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"Exporteren van G-code naar %1% mislukt.\n"
+"Is de schijf vol?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Hernoemen van het G-code-uitvoerbestand van %1% naar %2% is mislukt.\n"
+"Fout: %3%\n"
+"Is %1% vergrendeld?"
+
msgid "No object can be printed. It may be too small."
msgstr "Er kunnen geen objecten geprint worden. Het kan zijn dat ze te klein zijn."
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "Aan de IDEX/IQEX-modus \"%1%\" zijn op de geselecteerde printer geen gereedschappen toegewezen. Er wordt in plaats daarvan in de modus Primair geprint. Wijs de gereedschappen van de modus toe in Printer instellingen, of kies een andere modus via de IDEX/IQEX-knop van het printbed."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Dit printbed is ingesteld op de IDEX/IQEX-modus \"%1%\", die de geselecteerde printer niet definieert. Er wordt in plaats daarvan in de modus Primair geprint. Kies een modus via de IDEX/IQEX-knop van het printbed, of herstel de modus in Printer instellingen."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Ongeldige waarde voor miniaturen:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Uw print is dichtbij de afveeggebieden. Let op dat dit geen botsingen veroorzaakt."
@@ -14255,6 +15192,10 @@ msgstr "Groeperingsfout: %1% kan niet in de linker nozzle worden geplaatst"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Groeperingsfout: %1% kan niet in de rechter nozzle worden geplaatst"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Geen geldig mondstuk gevonden. Controleer het aantal mondstukken."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Groeperingsfout in de handmatige modus. Controleer het aantal mondstukken of groepeer opnieuw."
@@ -14274,6 +15215,18 @@ msgstr "meerdere snijpunten met een perimeter, slechts één is gebruikt (%1%)"
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "een perimeter ligt volledig binnen een aanpasser, de aanpasser is er niet op toegepast (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "Aanpasser \"%2%\" (%1%) van \"%3%\" bedekt een volledige perimeter"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "Aanpasser \"%2%\" (%1%) van \"%3%\" (%4% in totaal) bedekt een volledige perimeter"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -14288,10 +15241,49 @@ msgstr "aanpasser \"%1%\" van \"%2%\" (%3% in totaal) had geen effect op de naad
msgid "Seam placement may differ from expected."
msgstr "De plaatsing van de naad kan afwijken van wat verwacht wordt."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
# AI Translated
msgid "Internal Bridge"
msgstr "Interne brug"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() gaf een negatieve tussenruimte. Hebt u een extrusiebreedte te klein ingesteld?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() gaf een negatieve flow. Hebt u een extrusiebreedte te klein ingesteld?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Kan de lijndikte van %1% niet berekenen. De waarde van \"%2%\" kan niet worden opgehaald."
+
+# AI Translated
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Ongeldige tussenruimte doorgegeven aan Flow::with_spacing(); controleer uw laaghoogte en extrusiebreedte."
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Het geselecteerde 3mf-bestand is opgeslagen met een nieuwere versie van %1% en is niet compatibel."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Het geselecteerde 3MF-bestand bevat een object met geschilderde FDM-ondersteuning, gemaakt met een nieuwere versie van PrusaSlicer, en is niet compatibel."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Het geselecteerde 3MF-bestand bevat een object met een geschilderde naad, gemaakt met een nieuwere versie van PrusaSlicer, en is niet compatibel."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Het geselecteerde 3MF-bestand bevat een met multi-material geschilderd object, gemaakt met een nieuwere versie van PrusaSlicer, en is niet compatibel."
+
msgid "undefined error"
msgstr "Onbekende fout"
@@ -14385,6 +15377,60 @@ msgstr "Valideren is mislukt"
msgid "write callback failed"
msgstr "callback schrijven is mislukt"
+# AI Translated
+msgid "unknown error"
+msgstr "onbekende fout"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Prints in meerdere kleuren in parallelle IDEX/IQEX-modi vereisen dat elk filament een eigen, toegewezen fysieke extruder heeft. Twee of meer van de actieve filamenten worden via de fysieke extruderkoppeling van de printer (een MMU/AFC-verdeelstuk) naar dezelfde fysieke kop geleid, en dat kan het meelopende portaal niet volgen."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "De actieve IDEX/IQEX-modus definieert geen primair gereedschap, dus printen in meerdere kleuren kan niet worden gepland. Open de IDEX/IQEX-moduseditor in de printerinstellingen en wijs aan één gereedschap de rol Primair (Primary) toe."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Meerdere kleuren in deze modus is geen situatie voor parallel printen — alle actieve gereedschappen zitten op één portaal, dus er is geen tweede portaal waarnaar wordt gekopieerd of gespiegeld. Zet het printbed in de modus Primair om in meerdere kleuren op één portaal te printen, of definieer een IDEX/IQEX-modus met gereedschappen op een tweede portaal."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Prints in meerdere kleuren in parallelle IDEX/IQEX-modi vereisen een Span-gereedschap op het portaal van de primaire (Primary) — zonder dat declareert de modus geen partner voor meerdere kleuren binnen hetzelfde portaal. Beperk de print tot één filament, schakel over naar de modus Primair, of open de IDEX/IQEX-moduseditor in de printerinstellingen en markeer een gereedschap op het portaal van de primaire als Span."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "In deze Span-modus wordt alleen met %1% in kleur geprint, maar filament %2% is aan geen enkel gereedschap gekoppeld. Gebruik filamenten die aan %1% zijn gekoppeld, of zet dit printbed in de modus Primair."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "In deze Span-modus wordt alleen met %1% in kleur geprint, maar filament %2% is gekoppeld aan T%3%. Gebruik filamenten die aan %1% zijn gekoppeld, of zet dit printbed in de modus Primair."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"De geselecteerde voorinstelling kan niet worden geladen: %1%\n"
+"\tReden: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Laden van het voorinstellingsbestand mislukt: %1%\n"
+"\tReden: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% bevindt zich te dicht bij het uitsluitingsgebied. Er kunnen botsingen optreden tijdens het afdrukken."
@@ -14398,32 +15444,44 @@ msgid "%1% is too tall, and collisions will be caused."
msgstr "%1% is te hoog en er kunnen botsingen ontstaan."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "De onderlinge positie van het model en de prime toren voldoet niet aan de eisen van de functie \"Geen dunne lagen\". Pas hun onderlinge posities aan, verlaag de modelhoogte of schakel \"Geen dunne lagen\" uit."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr "is te dicht bij het uitsluitingsgebied, er botsingen optreden tijdens het printen."
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% ligt te dicht bij het gebied voor klontdetectie. Er kunnen botsingen optreden tijdens het printen."
# AI Translated
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " ligt te dicht bij het gebied voor klontdetectie; er kunnen botsingen optreden tijdens het printen."
-
-msgid "Prime Tower"
-msgstr "Prime toren"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr "staat te dicht bij andere objecten en er kunnen botsingen worden veroorzaakt.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " bevindt zich te dicht bij het uitsluitingsgebied en er zullen botsingen worden veroorzaakt.\n"
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "De prime toren staat te dicht bij andere objecten en er kunnen botsingen worden veroorzaakt.\n"
# AI Translated
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " ligt te dicht bij het gebied voor klontdetectie, waardoor er botsingen zullen ontstaan.\n"
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "De prime toren bevindt zich te dicht bij het uitsluitingsgebied en er zullen botsingen worden veroorzaakt.\n"
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " ligt gedeeltelijk buiten het printbare gebied en kan niet worden geprint.\n"
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "De prime toren ligt te dicht bij het gebied voor klontdetectie, waardoor er botsingen zullen ontstaan.\n"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "De prime toren bevindt zich te dicht bij het uitsluitingsgebied. Er kunnen botsingen optreden tijdens het printen."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "De prime toren ligt te dicht bij het gebied voor klontdetectie. Er kunnen botsingen optreden tijdens het printen."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "De prime toren ligt gedeeltelijk buiten het printbare gebied en kan niet worden geprint.\n"
# AI Translated
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
@@ -14440,6 +15498,59 @@ msgstr "Als u toch wilt printen, kunt u de optie inschakelen via Voorkeuren / Be
msgid "No extrusions under current settings."
msgstr "Geen extrusion onder de huidige instellingen"
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Gemengde filamenten worden niet ondersteund in parallelle IDEX/IQEX-modi. Zet dit printbed in de modus Primair."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX-modus \"%1%\" print met T%2%, maar geen van de filamenten van dit printbed zit op een geconfigureerd gereedschap. Wijs een filament toe dat in T%2% is geladen, of zet dit printbed in de modus Primair."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX-modus \"%1%\" print met T%2%, maar de filamenten van dit printbed zitten op %3%. Wijs een filament toe dat in T%2% is geladen, of zet dit printbed in de modus Primair."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Vlot is niet compatibel met de bandprintermodus."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Tochtscherm is niet compatibel met de bandprintermodus."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "Rand is niet compatibel met de spiraalvaasmodus op een bandprinter. Schakel een van beide uit."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "De band is te steil voor een rand, dus er wordt geen rand gegenereerd."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Een rand wordt alleen gegenereerd als de band gekanteld is. Stel een kantelhoek voor de band in, of verwijder de randinstelling."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Bandprinters ondersteunen alleen een buiten- en binnenrand. De randtypen Automatisch, Muisoor en Geschilderd worden geprint als Alleen buitenrand, met de Rand breedte."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "Ruimte tussen rand en object scheidt de voorste rand van de voorrand van het object, die hij juist moet verankeren. Stel deze ruimte in op 0 bij gebruik van Lengte voorste rand."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "Lengte voorste rand reikt langs de band vóór elk object uit, en Rangschikken reserveert die ruimte niet. Laat ruimte tussen de objecten."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "De rand \"Alleen voorrand\" geldt voor bandprinters. Op deze printer wordt hij geprint als een gewone buitenrand."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Er wordt een gemengd filament met verloop gebruikt, maar 'Sublaag met gemengde kleur' is uitgeschakeld. Het verloop wordt niet geprint."
@@ -14451,10 +15562,23 @@ msgstr "Vloeiende modus van timelapse wordt niet ondersteund wanneer \"per objec
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "Klontdetectie wordt niet ondersteund wanneer de volgorde \"per object\" is ingeschakeld."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "De band-spoeltoren wordt niet gegenereerd bij afdrukvolgorde \"Op basis van object\"; bij filamentwissels wordt niet gespoeld."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "De band-spoeltoren is ingeschakeld, maar het project heeft geen spoeltorenobject; bij filamentwissels wordt niet gespoeld. Open het project in de applicatie om de toren te genereren."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Het project bevat meerdere beheerde band-spoeltorens. Laad het printbed opnieuw of schakel de band-spoeltoren uit en weer in om hem opnieuw te genereren."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Het inschakelen van zowel precieze Z-hoogte als de spoeltoren kan slicefouten veroorzaken."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "A prime tower is required for clumping detection; otherwise, there may be flaws on the model."
msgstr "Voor klontdetectie is een prime toren vereist; anders kunnen er onvolkomenheden op het model ontstaan."
@@ -14469,11 +15593,6 @@ msgstr "Spiraal (vaas) modus werkt niet als een object meer dan 1 filament beval
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Hoewel object %1% zelf binnen het bouwvolume past, overschrijdt het de maximale hoogte van het bouwvolume vanwege de compensatie voor materiaalkrimp."
-# AI Translated
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "Object %1% overschrijdt de maximale hoogte van het bouwvolume."
-
# AI Translated
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
@@ -14483,14 +15602,21 @@ msgstr "Hoewel object %1% zelf binnen het bouwvolume past, overschrijdt de laats
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Verklein eventueel uw model of wijzig de huidige printinstellingen en probeer het opnieuw."
+# AI Translated
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "Object %1% overschrijdt de maximale hoogte van het bouwvolume."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Variabele laaghoogte wordt niet ondersteund met organische steunen."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "The wipe tower filament cannot be a mixed filament."
msgstr "Het filament van het afveegblok mag geen gemengd filament zijn."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution."
msgstr "Verschillende mondstukdiameters en verschillende filamentdiameters werken mogelijk niet goed wanneer de prime toren is ingeschakeld. Dit is zeer experimenteel; ga daarom voorzichtig te werk."
@@ -14498,6 +15624,7 @@ msgid "The Wipe Tower is currently only supported with the relative extruder add
msgstr "De Wipe Tower wordt momenteel alleen ondersteund met de relatieve extruderadressering (use_relative_e_distances=1)."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Ooze prevention is only supported with the wipe tower when 'single_extruder_multi_material' is off."
msgstr "Druippreventie wordt bij het afveegblok alleen ondersteund wanneer 'single_extruder_multi_material' uit staat."
@@ -14508,6 +15635,7 @@ msgid "A prime tower is not supported in “By object” print."
msgstr "Een prime-toren wordt niet ondersteund bij het \"per object\" printen."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "A prime tower is not supported when adaptive layer height is on. It requires that all objects have the same layer height."
msgstr "Een prime toren wordt niet ondersteund wanneer adaptieve laaghoogte is ingeschakeld. Hiervoor moeten alle objecten dezelfde laaghoogte hebben."
@@ -14521,6 +15649,7 @@ msgid "A prime tower requires that all objects are printed over the same number
msgstr "Een prime-toren vereist dat alle objecten op hetzelfde aantal raftlagen worden afgedrukt."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "The prime tower is only supported for multiple objects if they are printed with the same support_top_z_distance."
msgstr "De prime toren wordt bij meerdere objecten alleen ondersteund als ze met dezelfde support_top_z_distance worden geprint."
@@ -14659,6 +15788,10 @@ msgstr "Het Adaptive Pressure Advance-model voor een of meer extruders bevat mog
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "De filamentkrimp wordt niet gebruikt omdat de filamentkrimp van de gebruikte filamenten niet overeenkomt."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "De print is leeg. Het model is niet printbaar met de huidige printinstellingen."
+
msgid "Generating skirt & brim"
msgstr "Skirt en brim worden gegenereerd"
@@ -14678,6 +15811,17 @@ msgstr "G-code exporteren"
msgid "Generating G-code"
msgstr "Genereer G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Verwerken van het G-code-bestand %1% uit het vorige 3MF-bestand is mislukt."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "De band-spoeltoren kan het volledige spoelvolume niet opnemen: in totaal kon %1% mm³ niet worden gespoeld (slechtste laag: %2% mm³ op hoogte %3%). De print kan kleurvermenging vertonen. Vergroot de breedte van de band-spoeltoren of verlaag de spoelvolumes."
+
# AI Translated
msgid "Processing of the filename_format template failed."
msgstr "Het verwerken van het sjabloon filename_format is mislukt."
@@ -15156,8 +16300,9 @@ msgstr ""
"\n"
"Deze optie werkt bijzonder goed in combinatie met de optie voor een tweede interne brug over de vulling, om de overbrugging verder te verbeteren voordat de solide vulling wordt geëxtrudeerd."
+# AI Translated
msgid "Bridge flow ratio"
-msgstr "Brugflow"
+msgstr "Flow verhouding brug"
# AI Translated
msgid ""
@@ -15174,18 +16319,19 @@ msgstr ""
"De daadwerkelijk gebruikte brugflow wordt berekend door deze waarde te vermenigvuldigen met de flow verhouding van het filament en, indien ingesteld, met de flow verhouding van het object."
# AI Translated
+# Needs human review: 'brugdichtheid' is generic (the labels are 'Dichtheid van externe/interne bruggen').
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
-"Lijnbreedte van de brug. Als dit als % wordt uitgedrukt, wordt het berekend over de mondstukdiameter.\n"
-"Aanbevolen in combinatie met een hogere brugdichtheid of een hogere flow verhouding voor bruggen.\n"
+"Lijnbreedte van de brug. Als dit als percentage (%) wordt uitgedrukt, wordt het berekend over de mondstukdiameter.\n"
+"Aanbevolen in combinatie met een hogere brugdichtheid of Flow verhouding brug.\n"
"\n"
"De maximale waarde is 100% of de mondstukdiameter.\n"
-"Als dit op 0 wordt ingesteld, komt de lijnbreedte overeen met de breedte van de interne solide vulling."
+"Als dit op 0 wordt ingesteld, komt de lijnbreedte overeen met de breedte van de interne solide vulling, of met de mondstukdiameter bij dikke bruggen."
# AI Translated
msgid "Internal bridge flow ratio"
@@ -15514,7 +16660,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Schakel deze optie in om af te remmen in gebieden waar perimeters omhoog gekruld kunnen zijn.\n"
"Zo wordt er extra afgeremd bij het printen van overhangen op scherpe hoeken, zoals de voorkant van de Benchy-romp, wat het omkrullen vermindert dat zich over meerdere lagen opstapelt.\n"
@@ -15526,10 +16672,10 @@ msgstr ""
"Aanbevelingen bij het inschakelen van deze optie:\n"
"1. Verlaag de smoothtijd van Pressure Advance tot 0,015 - 0,02, zodat de extruder snel op de snelheidsveranderingen reageert.\n"
"2. Verhoog de minimale printsnelheden om de omvang van de vertraging te beperken en het verschil tussen snelle en trage segmenten te verkleinen.\n"
-"3. Als er nog steeds artefacten optreden, schakel dan Extrusion Rate Smoothing (ERS) in om de flowovergangen verder af te vlakken.\n"
+"3. Als er nog steeds artefacten optreden, schakel dan Afvlakking van de extrusiesnelheid (ERS) in om de flowovergangen verder af te vlakken.\n"
"\n"
"Let op: wanneer deze optie is ingeschakeld, worden overhangende perimeters als overhangen behandeld, wat betekent dat de overhangsnelheid wordt toegepast, zelfs als de overhangende perimeter deel uitmaakt van een brug.\n"
-"Bijvoorbeeld: wanneer de perimeters voor 100% overhangen en er geen wand is die ze van onderaf ondersteunt, wordt de overhangsnelheid voor 100% toegepast."
+"Bijvoorbeeld: wanneer de perimeters voor 100% overhangen en er geen wand is die ze van onderaf ondersteunt, wordt de overhangsnelheid voor 75% toegepast, beperkt door de brugsnelheid."
msgid "mm/s or %"
msgstr "mm/s of %"
@@ -15538,11 +16684,11 @@ msgstr "mm/s of %"
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Snelheid van de extern zichtbare brugextrusies.\n"
"\n"
-"Als bovendien Afremmen voor omgekrulde perimeters is uitgeschakeld of de klassieke overhangmodus is ingeschakeld, is dit de printsnelheid van overhangende wanden die voor minder dan 13% worden ondersteund, ongeacht of ze deel uitmaken van een brug of een overhang."
+"Als bovendien Afremmen voor omgekrulde perimeters is uitgeschakeld, is dit de printsnelheid van overhangende wanden met een ondersteuning van minder dan 13%, ongeacht of ze deel uitmaken van een brug of een overhang."
# AI Translated
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
@@ -15551,6 +16697,46 @@ msgstr "Snelheid van interne bruggen. Als de waarde als percentage wordt uitgedr
msgid "This is the distance from the model to the outermost brim line."
msgstr "Dit is de afstand van het model tot de buitenste randlijn."
+# AI Translated
+msgid "Leading brim length"
+msgstr "Lengte voorste rand"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Alleen voor bandprinters. Verlengt de rand VÓÓR het object langs de band, aan elke naar beneden gerichte kant van het contactvlak - zowel het eerste contact van het object met de band als elk eiland dat later neerkomt. Deze schort wordt op de band gelegd voordat het object die bereikt, zodat de voorrand zich kan vasthouden aan iets dat al vastzit.\n"
+"\n"
+"Gemeten op het bandoppervlak en opgeteld bij Rand breedte: de rand reikt Ruimte tussen rand en object + Lengte voorste rand + Rand breedte vóór het object uit. Stel Ruimte tussen rand en object in op 0, anders raakt de schort het object dat hij moet verankeren niet.\n"
+"\n"
+"Op een gekantelde band legt elke laag één strook van de rand, dus de dikte van de resulterende rand wordt bepaald door de flow en niet door de laaghoogte. Gebruik Flow verhouding rand om dit af te stemmen.\n"
+"\n"
+"Stel in op 0 om uit te schakelen."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Extra randbreedte"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Alleen voor bandprinters. Verbreedt de rand ZIJWAARTS, dwars over de band, zonder hem verder vóór of achter het object te verlengen. Gebruik dit wanneer een onderdeel over zijn lengte meer grip nodig heeft dan Rand breedte alleen geeft.\n"
+"\n"
+"Gemeten op het bandoppervlak en opgeteld bij Rand breedte: de rand reikt Ruimte tussen rand en object + Rand breedte + Extra randbreedte aan weerszijden van het object. Gebruik Lengte voorste rand om de rand in plaats daarvan vóór het object te verlengen.\n"
+"\n"
+"Stel in op 0 om uit te schakelen."
+
msgid "Brim type"
msgstr "Rand type"
@@ -15558,6 +16744,10 @@ msgstr "Rand type"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Dit regelt het genereren van de rand aan de buiten- en/of binnenzijde van modellen. Auto betekent dat de randbreedte automatisch wordt geanalyseerd en berekend."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Alleen voorrand"
+
msgid "Brim-object gap"
msgstr "Ruimte tussen rand en object"
@@ -15673,6 +16863,7 @@ msgid "Intra-layer order"
msgstr "Volgorde binnen een laag"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
msgid ""
"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n"
"\n"
@@ -15884,6 +17075,10 @@ msgstr ""
"2. Beperkt filteren - maakt interne bruggen op sterk hellende oppervlakken en vermijdt onnodige bruggen. Dit werkt goed voor de meeste lastige modellen\n"
"3. Niet filteren - maakt interne bruggen op elke mogelijke interne overhang. Deze optie is nuttig voor modellen met sterk hellende bovenoppervlakken; in de meeste gevallen ontstaan er echter te veel onnodige bruggen."
+# AI Translated
+msgid "Filter"
+msgstr "Filter"
+
# AI Translated
msgid "Limited filtering"
msgstr "Beperkt filteren"
@@ -15901,7 +17096,8 @@ msgstr "Maximale lengte van bruggen die geen ondersteuning nodig hebben. Stel he
msgid "End G-code"
msgstr "Einde G-code"
-msgid "Add end G-Code when finishing the entire print."
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
msgstr "Voeg een eind G-code toe bij het afwerken van de hele print."
msgid "Between Object G-code"
@@ -16102,8 +17298,8 @@ msgid "Small perimeters"
msgstr "Kleine omtrek"
# AI Translated
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Deze afzonderlijke instelling beïnvloedt de snelheid van perimeters met een straal <= small_perimeter_threshold (meestal gaten). Als dit als percentage wordt uitgedrukt (bijvoorbeeld: 80%), wordt het berekend op basis van de bovenstaande instelling voor de snelheid van de buitenste wand. Zet op nul voor automatisch."
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Deze afzonderlijke instelling beïnvloedt de snelheid van perimeters met een straal <= small_perimeter_threshold (meestal gaten). Als dit als percentage wordt uitgedrukt (bijvoorbeeld: 80%), wordt het berekend op basis van de bovenstaande instelling voor de snelheid van de buitenste wand."
# AI Translated
msgid "Small perimeters threshold"
@@ -16117,8 +17313,8 @@ msgid "Small support perimeters"
msgstr "Kleine ondersteuningsperimeters"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Hetzelfde als \"Kleine perimeters\", maar voor ondersteuningen. Deze afzonderlijke instelling beïnvloedt de ondersteuningssnelheid voor gebieden <= `small_support_perimeter_threshold`. Als dit als percentage wordt uitgedrukt (bijvoorbeeld: 80%), wordt het berekend op basis van de bovenstaande instelling voor de snelheid van de ondersteuning of de ondersteuningsinterface. Zet op nul voor automatisch."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Hetzelfde als \"Kleine omtrek\", maar voor ondersteuningen. Deze afzonderlijke instelling beïnvloedt de ondersteuningssnelheid voor gebieden <= `small_support_perimeter_threshold`. Als dit als percentage wordt uitgedrukt (bijvoorbeeld: 80%), wordt het berekend op basis van de bovenstaande instelling voor de snelheid van de ondersteuning of de ondersteuningsinterface."
# AI Translated
msgid "Small support perimeters threshold"
@@ -16138,7 +17334,7 @@ msgid ""
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
@@ -16304,6 +17500,7 @@ msgid "Enable adaptive pressure advance (beta)"
msgstr "Adaptieve Pressure Advance inschakelen (bèta)"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
#, no-c-format, no-boost-format
msgid ""
"With increasing print speeds (and hence increasing volumetric flow through the nozzle) and increasing accelerations, it has been observed that the effective PA value typically decreases. This means that a single PA value is not always 100% optimal for all features and a compromise value is usually used that does not cause too much bulging on features with lower flow speed and accelerations while also not causing gaps on faster features.\n"
@@ -16491,6 +17688,7 @@ msgid "Filament load time"
msgstr "Filament laadt tijd"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Time to load new filament when switch filament. It's usually applicable for single-extruder multi-material machines. For tool changers or multi-tool machines, it's typically 0. For statistics only."
msgstr "Tijd om nieuw filament te laden bij het wisselen van filament. Dit geldt meestal voor multi-materialmachines met één extruder. Voor toolchangers of machines met meerdere tools is dit doorgaans 0. Alleen voor statistieken."
@@ -16498,14 +17696,17 @@ msgid "Filament unload time"
msgstr "Tijd die nodig is om filament te ontladen"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Time to unload old filament when switch filament. It's usually applicable for single-extruder multi-material machines. For tool changers or multi-tool machines, it's typically 0. For statistics only."
msgstr "Tijd om oud filament te ontladen bij het wisselen van filament. Dit geldt meestal voor multi-materialmachines met één extruder. Voor toolchangers of machines met meerdere tools is dit doorgaans 0. Alleen voor statistieken."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Tool change time"
msgstr "Tijd voor toolwissel"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Time taken to switch tools. It's usually applicable for tool changers or multi-tool machines. For single-extruder multi-material machines, it's typically 0. For statistics only."
msgstr "Tijd die nodig is om van tool te wisselen. Dit geldt meestal voor toolchangers of machines met meerdere tools. Voor multi-materialmachines met één extruder is dit doorgaans 0. Alleen voor statistieken."
@@ -16656,6 +17857,7 @@ msgid "Minimal purge on wipe tower"
msgstr "Minimale filament reiniging op de wipe tower"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial object, Orca Slicer will always prime this amount of material into the wipe tower to produce successive infill or sacrificial object extrusions reliably."
msgstr "Na een toolwissel is de exacte positie van het pas geladen filament in het mondstuk mogelijk niet bekend en is de filamentdruk waarschijnlijk nog niet stabiel. Voordat de printkop in een vulling of een offerobject wordt gespoeld, drukt Orca Slicer altijd deze hoeveelheid materiaal in het afveegblok, zodat de daaropvolgende extrusies in de vulling of het offerobject betrouwbaar zijn."
@@ -16670,6 +17872,7 @@ msgid "Interface layer pre-extrusion distance"
msgstr "Voorextrusieafstand overgangslaag"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Pre-extrusion distance for prime tower interface layer (where different materials meet)."
msgstr "Voorextrusieafstand voor de overgangslaag van de prime toren (waar verschillende materialen samenkomen)."
@@ -16678,14 +17881,17 @@ msgid "Interface layer pre-extrusion length"
msgstr "Voorextrusielengte overgangslaag"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Pre-extrusion length for prime tower interface layer (where different materials meet)."
msgstr "Voorextrusielengte voor de overgangslaag van de prime toren (waar verschillende materialen samenkomen)."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "toren"; align it once the term is settled.
msgid "Tower ironing area"
msgstr "Strijkgebied van de toren"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Ironing area for prime tower interface layer (where different materials meet)."
msgstr "Strijkgebied voor de overgangslaag van de prime toren (waar verschillende materialen samenkomen)."
@@ -16697,6 +17903,7 @@ msgid "Interface layer purge length"
msgstr "Spoellengte overgangslaag"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Purge length for prime tower interface layer (where different materials meet)."
msgstr "Spoellengte voor de overgangslaag van de prime toren (waar verschillende materialen samenkomen)."
@@ -16705,6 +17912,7 @@ msgid "Interface layer print temperature"
msgstr "Printtemperatuur overgangslaag"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Print temperature for prime tower interface layer (where different materials meet). If set to -1, use max recommended nozzle temperature."
msgstr "Printtemperatuur voor de overgangslaag van de prime toren (waar verschillende materialen samenkomen). Bij -1 wordt de maximaal aanbevolen mondstuktemperatuur gebruikt."
@@ -16721,26 +17929,32 @@ msgid "This string is edited by RammingDialog and contains ramming specific para
msgstr "Deze frase is bewerkt door het Rammingdialoog en bevat parameters voor de ramming."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Enable ramming for multi-tool setups"
msgstr "Ramming inschakelen voor opstellingen met meerdere tools"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Perform ramming when using multi-tool printer (i.e. when the 'Single Extruder Multimaterial' in Printer Settings is unchecked). When checked, a small amount of filament is rapidly extruded on the wipe tower just before the tool change. This option is only used when the wipe tower is enabled."
msgstr "Voer ramming uit bij gebruik van een printer met meerdere tools (d.w.z. wanneer 'Single Extruder Multimaterial' in de printerinstellingen niet is aangevinkt). Indien aangevinkt wordt er vlak voor de toolwissel een kleine hoeveelheid filament snel op het afveegblok geëxtrudeerd. Deze optie wordt alleen gebruikt wanneer het afveegblok is ingeschakeld."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Multi-tool ramming volume"
msgstr "Rammingvolume bij meerdere tools"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "The volume to be rammed before the tool change."
msgstr "Het volume dat vóór de toolwissel moet worden gerammd."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Multi-tool ramming flow"
msgstr "Rammingflow bij meerdere tools"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Flow used for ramming the filament before the tool change."
msgstr "Flow die wordt gebruikt voor het rammen van het filament vóór de toolwissel."
@@ -16864,9 +18078,6 @@ msgstr "Filament prijs. Alleen voor statistieken"
msgid "money/kg"
msgstr "Prijs per KG"
-msgid "Vendor"
-msgstr "Leverancier"
-
msgid "Vendor of filament. For show only."
msgstr "Verkoper van filament. Alleen voor show"
@@ -16948,6 +18159,92 @@ msgstr "Vulling met meerdere lijnen"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Meerdere lijnen gebruiken voor het vulpatroon, als het vulpatroon dit ondersteunt."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Adaptieve dichtheid (experimenteel)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Laat de dichtheid van de Gyroide- en TPMS-vulling binnen het object verlopen: de cellen groeien vanaf het oppervlak van het object naar het midden. Aan het oppervlak wordt de dichtheid van de dunne vulling (infill) gebruikt en in het midden de Kerndichtheid.\n"
+"Afstandsvervorming, Vloeiende overgang en Getrapte schillen volgen de afstand tot het dichtstbijzijnde oppervlak, inclusief de bovenste en onderste oppervlakken, met de Kerndichtheid op het punt dat er het verst vandaan ligt:\n"
+" - Afstandsvervorming: één doorlopend patroon, uitgerekt en scheefgetrokken waar de afstand per richting verandert, zoals in platen en lange onderdelen.\n"
+" - Vloeiende overgang: de patronen van naburige dichtheden lopen in elkaar over, met kleine lussen waar ze elkaar raken.\n"
+" - Getrapte schillen: schillen van het gewone patroon met dichtheden die ongeveer 1,5 keer uit elkaar liggen, met hun lijnen verbonden langs de schilgrenzen.\n"
+" - Lobben: volgt de 3D-vorm van het object, inclusief de bovenste en onderste oppervlakken. Elke lob, een deel dat via een smallere hals met de rest verbonden is, verloopt naar zijn eigen midden.\n"
+" - Normaal Z, Y of X: volgt de doorsneden van het object loodrecht op die as, zodat de dichtheid daarlangs niet verandert."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Afstandsvervorming"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Vloeiende overgang"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Getrapte schillen"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Lobben"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Normaal Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Normaal Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Normaal X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Kerndichtheid"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Dichtheid van de adaptieve vulling in het midden van het object."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Adaptief verloop"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Hoe de dichtheid verandert van het oppervlak naar het midden van het object.\n"
+"Lineair: de dichtheid verandert met een constante snelheid.\n"
+"Kwadratisch: de dichtheid blijft nabij het oppervlak dicht bij de dichtheid van de dunne vulling (infill) en verandert sneller richting het midden.\n"
+"Exponentieel: de dichtheid verandert snel net onder het oppervlak en vlakt af richting het midden."
+
+# AI Translated
+msgid "Linear"
+msgstr "Lineair"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Kwadratisch"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Exponentieel"
+
# AI Translated
msgid "Z-buckling bias optimization (experimental)"
msgstr "Optimalisatie van de Z-knikbelasting (experimenteel)"
@@ -17117,14 +18414,16 @@ msgstr "Laaghoogte van de eerste laag"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Dit is de hoogte van de eerste laag. Door de hoogte van de eerste laag hoger te maken, kan de hechting op het printbed worden verbeterd."
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Dit is de snelheid voor de eerste laag behalve solide vulling (infill) delen"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Dit is de snelheid voor de wanden en de rand van de eerste laag."
msgid "First layer infill"
msgstr "Vulling (infill) van de eerste laag"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Dit is de snelheid voor de solide vulling (infill) delen van de eerste laag."
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Dit is de snelheid voor de eerste laag, behalve voor wanden en rand, zoals vulling, gatvulling en ondersteuning."
# AI Translated
msgid "First layer travel speed"
@@ -17642,6 +18941,10 @@ msgstr "G-code type"
msgid "What kind of G-code the printer is compatible with."
msgstr "Het type G-code waarmee de printer compatibel is."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (verouderd)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -17928,8 +19231,8 @@ msgstr "Vulling (infill)/wand overlap"
# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Hiermee kan het vulgebied iets worden vergroot zodat het overlapt met de wanden voor een betere hechting. De percentagewaarde is relatief ten opzichte van de lijnbreedte van de dunne vulling (infill). Stel deze waarde in op ~10-15% om mogelijke overextrusie en materiaalophoping, die ruwe bovenoppervlakken veroorzaken, te beperken."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Hiermee kan het vulgebied iets worden vergroot zodat het overlapt met de wanden voor een betere hechting. De percentagewaarde is relatief ten opzichte van de lijnbreedte van de binnenste wand. Stel deze waarde in op ~10-15% om mogelijke overextrusie en materiaalophoping, die ruwe bovenoppervlakken veroorzaken, te beperken."
# AI Translated
msgid "Top/Bottom solid infill/wall overlap"
@@ -17937,8 +19240,8 @@ msgstr "Overlap van solide vulling boven/onder met de wand"
# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "Het gebied van de solide vulling aan de bovenzijde wordt iets vergroot zodat het met de wand overlapt voor een betere hechting en om speldenprikgaatjes waar de bovenvulling de wanden raakt zoveel mogelijk te voorkomen. Een waarde van 25-30% is een goed startpunt om speldenprikgaatjes te beperken. De percentagewaarde is relatief ten opzichte van de lijnbreedte van de dunne vulling (infill)."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "Het gebied van de solide vulling aan de bovenzijde wordt iets vergroot zodat het met de wand overlapt voor een betere hechting en om speldenprikgaatjes waar de bovenvulling de wanden raakt zoveel mogelijk te voorkomen. Een waarde van 25-30% is een goed startpunt om speldenprikgaatjes te beperken. De percentagewaarde is relatief ten opzichte van de lijnbreedte van de binnenste wand."
msgid "This is the speed for internal sparse infill."
msgstr "Dit is de snelheid voor de dunne vulling (infill)"
@@ -17969,8 +19272,8 @@ msgid "Interlocking depth of a segmented region"
msgstr "Insluitdiepte van een gesegmenteerde regio"
# AI Translated
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Vergrendeldiepte van een gesegmenteerd gebied. Dit wordt genegeerd als \"mmu_segmented_region_max_width\" nul is of als \"mmu_segmented_region_interlocking_depth\" groter is dan \"mmu_segmented_region_max_width\". Nul schakelt deze functie uit."
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Insluitdiepte van een gesegmenteerde regio. Op elke tweede laag is de gesegmenteerde regio beperkt tot deze diepte. Wordt genegeerd als \"interlocking_beam\" is ingeschakeld. Nul schakelt deze functie uit."
# AI Translated
msgid "Use beam interlocking"
@@ -18098,11 +19401,11 @@ msgstr "Hoek voor het minimaliseren van de wandhoogte"
# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Verlaag de hoogte van de perimeters van het bovenoppervlak zodat deze overeenkomt met de hoogte van de modelrand.\n"
-"Heeft invloed op perimeters met een helling kleiner dan deze hoek (graden).\n"
+"Heeft invloed op perimeters met een helling groter dan deze hoek (graden).\n"
"Een redelijke waarde is 35. Zet op 0 om uit te schakelen."
# AI Translated
@@ -18187,17 +19490,21 @@ msgstr "Maximale snelheid voor Z"
msgid "Maximum speed E"
msgstr "Maximale snelheid voor E"
-msgid "Maximum X speed"
-msgstr "Maximale X snelheid"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Maximale snelheid van de X-as"
-msgid "Maximum Y speed"
-msgstr "Maximale Y snelheid"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Maximale snelheid van de Y-as"
-msgid "Maximum Z speed"
-msgstr "Maximale Z snelheid"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Maximale snelheid van de Z-as"
-msgid "Maximum E speed"
-msgstr "Maximale E snelheid"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Maximale snelheid van de E-as"
msgid "Maximum acceleration X"
msgstr "Maximale versnelling voor X"
@@ -18753,8 +20060,8 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Plug-inmogelijkheden waarnaar deze voorinstelling verwijst, opgeslagen als name;uuid;capability."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
-msgstr "Python-plug-in(s) die bij elke stap van de slicepijplijn worden aangeroepen om tussentijdse slicegegevens te lezen en te wijzigen, inclusief een afsluitende nabewerkingsstap voor de G-code. Onderzoek/experimenteel."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgstr "Python-plug-ins die bij elke stap van de slicepijplijn worden aangeroepen om tussentijdse slicegegevens te lezen en te wijzigen, inclusief een afsluitende nabewerkingsstap voor de G-code. Onderzoek/experimenteel."
msgid "Printer type"
msgstr "Printertype"
@@ -18869,10 +20176,12 @@ msgid "Retraction distance when extruder change"
msgstr "Terugtrekafstand bij extruderwissel"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
msgid "Retraction Length (Toolchange)"
msgstr "Terugtreklengte (Gereedschapswissel)"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
msgid "When retraction is triggered before changing tool, filament is pulled back by the specified amount (the length is measured on raw filament, before it enters the extruder)."
msgstr "Wanneer het terugtrekken vóór een gereedschapswissel wordt geactiveerd, wordt het filament met de opgegeven hoeveelheid teruggetrokken (de lengte wordt gemeten op het onbewerkte filament, voordat het de extruder ingaat)."
@@ -18991,6 +20300,7 @@ msgid "When the retraction is compensated after the travel move, the extruder wi
msgstr "Als retracten wordt gecompenseerd na een beweging, wordt deze extra hoeveelheid filament geëxtrudeerd. Deze instelling is zelden van toepassing."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
msgid "Extra length on restart (Toolchange)"
msgstr "Extra lengte bij herstart (Gereedschapswissel)"
@@ -19176,7 +20486,7 @@ msgid "Use scarf joint for inner walls as well."
msgstr "Gebruik de schuine naad ook voor de binnenste wanden."
# AI Translated
-msgid "Role base wipe speed"
+msgid "Role based wipe speed"
msgstr "Veegsnelheid op basis van het extrusietype"
# AI Translated
@@ -19282,13 +20592,11 @@ msgstr "Tochtscherm"
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"Een tochtscherm is nuttig om een ABS- of ASA-print te beschermen tegen kromtrekken en loskomen van het printbed door tocht. Meestal is dit alleen nodig bij printers met een open frame, dus zonder behuizing.\n"
"\n"
-"Ingeschakeld = de skirt is even hoog als het hoogste geprinte object. Anders wordt 'Hoogte van de skirt' gebruikt.\n"
-"Let op: met een actief tochtscherm wordt de skirt op de skirt-afstand van het object geprint. Als er randen actief zijn, kan hij daarmee overlappen. Verhoog de waarde voor de skirt-afstand om dit te voorkomen.\n"
+"Ingeschakeld = de skirt is even hoog als het hoogste geprinte object. Anders wordt 'Hoogte van de skirt' gebruikt."
msgid "Enabled"
msgstr "Aan"
@@ -19425,6 +20733,7 @@ msgid "Farthest point timelapse"
msgstr "Timelapse op het verste punt"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "When enabled, the timelapse snapshot is taken at the farthest point from camera instead of traveling to the wipe tower or excess chute. Only effective in traditional timelapse mode on non-I3 printers."
msgstr "Indien ingeschakeld wordt de timelapsemomentopname genomen op het punt dat het verst van de camera ligt, in plaats van naar het afveegblok of de afvoerschacht te verplaatsen. Alleen van toepassing in de traditionele timelapsemodus op niet-i3-printers."
@@ -19444,6 +20753,7 @@ msgid "Preheat time"
msgstr "Voorverwarmtijd"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "To reduce the waiting time after tool change, Orca can preheat the next tool while the current tool is still in use. This setting specifies the time in seconds to preheat the next tool. Orca will insert a M104 command to preheat the tool in advance."
msgstr "Om de wachttijd na een toolwissel te verkorten, kan Orca de volgende tool voorverwarmen terwijl de huidige tool nog in gebruik is. Deze instelling bepaalt de tijd in seconden om de volgende tool voor te verwarmen. Orca voegt een M104-opdracht in om de tool alvast op te warmen."
@@ -19476,11 +20786,141 @@ msgstr "Multi-material met één extruder"
msgid "Use single nozzle to print multi filament."
msgstr "Gebruik één mondstuk om met meerdere filamenten te printen."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "IDEX/IQEX-printer"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Schakel parallel printen in voor printers met meerdere onafhankelijke wagens (IDEX, IQEX en vergelijkbare)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Door firmware beheerde zones"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Indien ingeschakeld genereert de slicer G-code waarin de inhoud van de primaire zone gecentreerd is op de oorsprong van het printbed (0,0). De printerfirmware is verantwoordelijk voor het plaatsen van kopieën/spiegelingen op elke fysieke zonepositie. Schakel dit alleen in op printers waarvan de firmware zelf zoneverschuivingen toepast in de kopie-/spiegelmodus (bijv. de IDEX-duplicatiemodus van RepRapFirmware). Heeft geen effect in de modus Primair."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Aantal portalen"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Aantal onafhankelijke Y-as-portalen. 1 voor IDEX/IQEX met één rail. 2 voor systemen met twee portalen (verdeelt het printbed in rijen)."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "Tools per Gantry"
+msgstr "Gereedschappen per portaal"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Aantal onafhankelijke printkoppen per portaal langs X. 2 voor IDEX-opstellingen."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "Tool 0 Position"
+msgstr "Positie gereedschap 0"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Fysieke positie op het printbed waar gereedschap T0 (index 0) zich bevindt. Bepaalt hoe gereedschapsindexen aan zones van het printbed worden gekoppeld. Bij opstellingen met één portaal (IDEX) telt alleen links/rechts; bij opstellingen met twee portalen (IQEX) zijn alle vier de hoeken te kiezen (voor = lagere Y / dicht bij de gebruiker, achter = hogere Y / achterkant van de machine)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Vrije ruimte mondstuk X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Afstand (mm) van het mondstuk tot de rand van de wagen aan de botszijde in X. Wordt gebruikt om de breedte van de uitsluitingsstrook tegen botsingen bij elke X-grens te berekenen."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Vrije ruimte mondstuk Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Afstand (mm) van het mondstuk tot de rand van de wagen aan de botszijde in Y. Wordt gebruikt om de breedte van de uitsluitingsstrook tegen botsingen bij elke Y-grens te berekenen."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Veiligheidsmarge"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Niet-blokkerende, adviserende vrijloopstrook (mm) die binnen de primaire zone bij elke wagengrens wordt getekend. Onderdelen binnen deze strook worden nog steeds geslicet; het is een visuele herinnering om extra ruimte te laten bij de rand van de zone."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Visualisatiethema"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Kleurthema voor de visualisatie van de IDEX/IQEX-zones op het printbed. Kies zo nodig een kleurenblindvriendelijk thema."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranopie / protanopie (rood-groen)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopie (blauw-geel)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Hoog contrast"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "IDEX/IQEX-printmodus"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Naam van de actieve parallelle IDEX/IQEX-printmodus, of \"primary\" voor printen met één wagen. Vereist dat IDEX/IQEX-printer is ingeschakeld in de printervoorinstelling (Printer → Multimateriaal → IDEX/IQEX-configuratie)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "IDEX/IQEX-filamentkoppeling per kop"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Overschrijving per printbed die fysieke koppen aan filamentslots koppelt (vanaf 1 geteld). Leeg betekent dat elke kop het eerste filament gebruikt dat de fysieke extrudermap van de printer aan die kop koppelt."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "IDEX/IQEX-modusnamen"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Weergavenamen voor elke door de gebruiker gedefinieerde parallelle IDEX/IQEX-printmodus."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Actieve gereedschappen IDEX/IQEX-modus"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Roltoewijzingen van de gereedschappen voor elke modus. Formaat: \"idx:P,idx:C,idx:M\" waarbij P=Primary (Primair), C=Copy (Kopie), M=Mirror (Spiegel) (bijv. \"0:P,1:C,2:M,3:M\"). Beheerd door de IDEX/IQEX-moduseditor in de printervoorinstelling."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-codes IDEX/IQEX-modus"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code of macro-aanroep die voor elke modus bij de start van de print wordt ingevoegd."
+
# AI Translated
msgid "Manual Filament Change"
msgstr "Handmatige filamentwissel"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Enable this option to omit the custom Change filament G-code only at the beginning of the print. The tool change command (e.g., T0) will be skipped throughout the entire print. This is useful for manual multi-material printing, where we use M600/PAUSE to trigger the manual filament change action."
msgstr "Schakel deze optie in om de aangepaste G-code voor het wisselen van filament alleen aan het begin van de print weg te laten. De opdracht voor de toolwissel (bijv. T0) wordt gedurende de hele print overgeslagen. Dit is nuttig voor handmatig multi-materialprinten, waarbij M600/PAUSE wordt gebruikt om de handmatige filamentwissel te activeren."
@@ -19488,6 +20928,7 @@ msgid "Wipe tower type"
msgstr "Type spoeltoren"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Choose the wipe tower implementation for multi-material prints. Type 1 is recommended for Bambu and Qidi printers with a filament cutter. Type 2 offers better compatibility with multi-tool and MMU printers and provide overall better compatibility."
msgstr "Kies de implementatie van het afveegblok voor multi-materialprints. Type 1 wordt aanbevolen voor Bambu- en Qidi-printers met een filamentsnijder. Type 2 biedt betere compatibiliteit met multi-tool- en MMU-printers en over het geheel genomen een betere compatibiliteit."
@@ -19500,10 +20941,12 @@ msgid "Type 2"
msgstr "Type 2"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Purge in prime tower"
msgstr "Spoelen in de prime toren"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Purge remaining filament into prime tower."
msgstr "Spoel het resterende filament in de prime toren."
@@ -19512,18 +20955,22 @@ msgid "Enable filament ramming"
msgstr "Filament-ramming inschakelen"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Tool change on wipe tower"
msgstr "Toolwissel op het afveegblok"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
msgstr "Dwing de printkop naar het afveegblok te bewegen voordat de opdracht voor de toolwissel (Tx) wordt gegeven. Alleen relevant voor printers met meerdere extruders (meerdere printkoppen) die een afveegblok van type 2 gebruiken. Standaard slaat Orca deze verplaatsing op machines met meerdere printkoppen over, omdat de firmware de kopwissel afhandelt, waardoor de Tx-opdracht boven het geprinte onderdeel kan worden gegeven. Schakel deze optie in als u wilt dat de toolwissel altijd boven het afveegblok wordt uitgevoerd."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Wait for temperature on wipe tower"
msgstr "Wachten op temperatuur bij het afveegblok"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
msgstr "Pakt het nieuwe gereedschap op zonder te wachten tot het de printtemperatuur bereikt, verplaatst zich naar het afveegblok en wacht daar op de temperatuur, vlak voor het spoelen. Het materiaal dat tijdens het opwarmen uitloopt komt op het blok terecht in plaats van op het model, en de verplaatsing overlapt met het opwarmen. Alleen relevant voor printers met meerdere extruders (meerdere printkoppen) die een afveegblok van type 2 gebruiken. De firmware of de gereedschapswisselmacro mag niet zelf op de temperatuur wachten. Wanneer dit is uitgeschakeld, wordt het wachten op de temperatuur direct na het gereedschapswisselcommando uitgevoerd."
@@ -19532,6 +20979,7 @@ msgid "No sparse layers (beta)"
msgstr "Geen dunne lagen (bèta)"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower, so the tower ends up below the model and the toolhead has to reach down to it. Layouts where that would collide with an already printed object are rejected. Has no effect with smooth timelapse or clumping detection, which need a tower on every layer."
msgstr "Indien ingeschakeld wordt het afveegblok niet geprint op lagen zonder gereedschapswissels. Op lagen met een gereedschapswissel beweegt de extruder omlaag om het afveegblok te printen, zodat het blok onder het model uitkomt en de printkop ernaartoe omlaag moet reiken. Opstellingen waarbij dat zou botsen met een al geprint voorwerp worden afgewezen. Heeft geen effect bij vloeiende timelapse of klontdetectie, die op elke laag een blok nodig hebben."
@@ -19540,6 +20988,7 @@ msgid "Combine sparse layers"
msgstr "Dunne lagen combineren"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid ""
"If enabled, consecutive layers on which the prime tower has no filament change are printed as a single thicker tower layer instead of one thin layer each, the same way infill combination merges sparse infill. The merged layer is printed at the top of the run, at the height of everything it covers.\n"
"\n"
@@ -19560,10 +21009,12 @@ msgid "If enabled, all printing extruders will be primed at the front edge of th
msgstr "Alle extruders worden afgeveegd aan de voorzijde van het printbed aan het begin van de print als dit is ingeschakeld."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Toolchange ordering"
msgstr "Volgorde van toolwissels"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid ""
"Determines the order of tool changes on each layer.\n"
"- Default: Starts with the last used extruder to minimize tool changes.\n"
@@ -19582,6 +21033,7 @@ msgid "Cyclic order"
msgstr "Cyclische volgorde"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
msgid ""
"Custom filament sequence used by the cyclic toolchange ordering, as filament numbers separated by commas (e.g. \"3,2,1,4\").\n"
"Each layer prints its filaments following this sequence; filaments not listed are printed last, in ascending order.\n"
@@ -19596,6 +21048,7 @@ msgid "Apply cyclic order to first layer"
msgstr "Cyclische volgorde toepassen op de eerste laag"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
msgid ""
"Applies the cyclic toolchange order to the first layer as well.\n"
"By default this is disabled, because the first layer is instead ordered for the best bed adhesion: filaments that print small, fragile first-layer features are printed last, so the following tool changes and travel moves are less likely to knock those weakly anchored parts loose. This first-layer order also honors a custom first layer filament sequence when one is set. The cyclic order's benefit (extra tool changes give each layer more time to cool) does not apply to the first layer, which is printed slowly and hot for adhesion.\n"
@@ -19865,6 +21318,7 @@ msgid "Independent support layer height"
msgstr "Onafhankelijke support laaghoogte"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Support layer uses layer height independent with object layer. This is to support customizing Z-gap and save print time. This option will be invalid when the prime tower is enabled."
msgstr "De ondersteuningslaag gebruikt een laaghoogte die onafhankelijk is van die van het object. Zo kunt u de Z-ruimte aanpassen en printtijd besparen. Deze optie is ongeldig wanneer de prime toren is ingeschakeld."
@@ -19885,6 +21339,169 @@ msgstr "Drempeloverlap"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Als de drempelhoek nul is, wordt er ondersteuning gegenereerd voor overhangen waarvan de overlap onder de drempelwaarde ligt. Hoe kleiner deze waarde is, hoe steiler de overhang die zonder ondersteuning kan worden geprint."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Kanteling printbed X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Kantelhoek van het printbed langs de X-as. Een positieve waarde kantelt het printbed zodat de +X-zijde hoger ligt, waardoor de zwaartekracht naar -X verschuift en de overhangen aan de +X-zijde toenemen. Een negatieve waarde maakt de -X-zijde hoger. Stel in op 0 voor geen kanteling langs de X-as. In de bandprintermodus wordt dit automatisch gesynchroniseerd met de bandhoek."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Kanteling printbed Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Kantelhoek van het printbed langs de Y-as. Een positieve waarde kantelt het printbed zodat de +Y-zijde hoger ligt, waardoor de zwaartekracht naar -Y verschuift en de overhangen aan de +Y-zijde toenemen. Een negatieve waarde maakt de -Y-zijde hoger. Stel in op 0 voor geen kanteling langs de Y-as."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Bandprinten inschakelen"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Schakel de bandprintermodus in. Bandprinters gebruiken een transportband als printoppervlak, gekanteld onder een hoek (meestal 45 graden). De slicer draait het slicevlak en transformeert de G-code-coördinaten voor het gekantelde printoppervlak."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Oneindige Y-as"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Schakel een oneindige Y-as in voor bandprinters. Indien ingeschakeld wordt de limiet van het bouwvolume op de Y-as feitelijk opgeheven, zodat objecten van elke lengte in de bandrichting kunnen worden geprint."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Kantelas band"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "As waaromheen de mesh vóór het slicen wordt gedraaid. Dit is de kanteling van de bandprinter: een isometrische rotatie (zonder vervorming) die ook de weergave van het printbed en de zwaartekrachtkanteling van de ondersteuning bepaalt, en die de G-code-terugtransformatie omkeert vóór de afschuiving/schaling naar het machinecoördinatenstelsel en de herindeling van de assen. X is de gebruikelijke kanteling van het portaal (de band beweegt langs Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Kantelhoek band"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Kantelhoek van het bandoppervlak, in graden. De meeste bandprinters gebruiken 45°. Positieve waarden draaien tegen de klok in, gezien langs de positieve kantelas; de grootte is ook de fysieke bandkanteling die wordt gebruikt voor de weergave van het printbed en de zwaartekracht bij ondersteuning."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Kanteling machinecoördinatenstelsel loskoppelen"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Overschrijving voor experts: stel de kantelhoek van het machinecoördinatenstelsel (G-code-afschuiving/-schaling) in los van de rotatiehoek vóór het slicen. Indien uitgeschakeld wordt de transformatie naar het machinecoördinatenstelsel afgeleid van de kantelhoek van de band, zodat één hoek beide stappen bepaalt. Schakel dit alleen in om te compenseren voor een machine waarvan de fysieke portaalkanteling afwijkt van de slicerotatie."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Kantelhoek machinecoördinatenstelsel"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Kantelhoek (graden) waaruit de afschuiving (cot) en schaling (1/|sin|) van het machinecoördinatenstelsel worden afgeleid die op de G-code worden toegepast. Alleen gebruikt als 'Kanteling machinecoördinatenstelsel loskoppelen' is ingeschakeld; anders wordt de kantelhoek van de band gebruikt."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "Omgekeerd X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Omgekeerd Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Omgekeerd Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "G-code-herindeling X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Welke slice-as in de G-code-uitvoer op machine-X wordt afgebeeld. Wordt NA het slicen toegepast, tijdens het genereren van de G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "G-code-herindeling Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Welke slice-as in de G-code-uitvoer op machine-Y wordt afgebeeld. Wordt NA het slicen toegepast, tijdens het genereren van de G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "G-code-herindeling Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Welke slice-as in de G-code-uitvoer op machine-Z wordt afgebeeld. Wordt NA het slicen toegepast, tijdens het genereren van de G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Z-verschuiving ondersteuningsvloer"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Verschuift de berekende bandvloer omhoog of omlaag (mm). Negatieve waarden verlagen de vloer, waardoor meer ondersteuning behouden blijft. Gebruik dit om problemen met de formule van de bandvloer te diagnosticeren."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Band-spoeltoren inschakelen"
+
+# AI Translated
+# Needs human review: Prime tower glossary cell is unsettled (Prime toren / Afveegblok); 'wipe/prime tower' rendered as 'prime toren'
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Vervanging van de prime toren voor bandprinters. Indien ingeschakeld op een bandprinter wordt automatisch een spoelprisma naast de geprinte onderdelen gegenereerd en wordt het spoelen bij filamentwissels daarin geleid (de klassieke prime toren kan niet op bandprinters worden gebruikt, omdat de G-code ervan de bandtransformatie omzeilt). Alleen beschikbaar op bandprinters."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Breedte band-spoeltoren"
+
+# AI Translated
+# Needs human review: Prime tower glossary cell is unsettled (Prime toren / Afveegblok); 'wipe tower' rendered as 'prime toren'
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Breedte (machine-X, dwars over de band) van het spoelprisma dat automatisch op bandprinters wordt gegenereerd wanneer de band-spoeltoren is ingeschakeld en er meerdere filamenten worden gebruikt. Het spoelen bij filamentwissels wordt in de extrusies van dit prisma geleid in plaats van in een klassieke prime toren. De hoogte wordt automatisch berekend uit het ongunstigste spoelvolume per laag: een breder prisma wordt lager."
+
msgid "Tree support branch angle"
msgstr "Tree support vertakkingshoek"
@@ -20092,13 +21709,11 @@ msgstr "Gescheiden vullingen"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
"Centreert de interne vulling van elk onderdeel op zichzelf, alsof het afzonderlijk was geslicet, in plaats van op het geheel. Onderdelen die elkaar raken of overlappen worden als één lichaam behandeld en delen een middelpunt; losse onderdelen (of afzonderlijke 3D-objecten) krijgen elk hun eigen middelpunt.\n"
"Nuttig wanneer een samenstelling meerdere objecten groepeert die elk een consistente, op zichzelf gecentreerde vulling moeten houden.\n"
-"Heeft invloed op lijn- en rasterpatronen en op vullingen met rotatiesjablonen.\n"
-"Patronen die aan globale coördinaten vastzitten (Gyroide, Honeycomb, TPMS, ...) worden niet beïnvloed."
+"Adaptief kubiek en Ondersteuning Cubic centreren elk onderdeel altijd op zichzelf, en Lightning-vulling wordt voor het hele object gegenereerd en wordt niet beïnvloed."
# AI Translated
msgid "Center surface pattern on"
@@ -20170,6 +21785,7 @@ msgid "Internal ribs"
msgstr "Interne ribben"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Enable internal ribs to increase the stability of the prime tower."
msgstr "Schakel interne ribben in om de stabiliteit van de prime toren te vergroten."
@@ -20201,6 +21817,7 @@ msgid "Prime volume mode"
msgstr "Modus voor primingvolume"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Selects how the wipe-tower prime and flush volumes are computed on multi-extruder printers."
msgstr "Bepaalt hoe de priming- en spoelvolumes van het afveegblok worden berekend op printers met meerdere extruders."
@@ -20222,6 +21839,7 @@ msgid "Wipe tower rotation angle with respect to X axis."
msgstr "Rotatie van het afveegblok ten opzichte van de X-as."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Brim width of prime tower, negative number means auto calculated width based on the height of prime tower."
msgstr "Randbreedte van de prime toren; een negatief getal betekent dat de breedte automatisch wordt berekend op basis van de hoogte van de prime toren."
@@ -20230,50 +21848,54 @@ msgid "Stabilization cone apex angle"
msgstr "Tophoek van de stabilisatiekegel"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Angle at the apex of the cone that is used to stabilize the wipe tower. Larger angle means wider base."
msgstr "Hoek aan de top van de kegel die wordt gebruikt om het afveegblok te stabiliseren. Een grotere hoek betekent een bredere basis."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Maximum wipe tower print speed"
msgstr "Maximale printsnelheid van het afveegblok"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "gereedschap"; align it once the term is settled.
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
"De maximale printsnelheid bij het spoelen in het afveegblok en het printen van de dunne lagen van het afveegblok. Als bij het spoelen de snelheid van de dunne vulling (infill) of de uit de maximale volumetrische snelheid van het filament berekende snelheid lager is, wordt de laagste van beide gebruikt.\n"
"\n"
-"Als bij het printen van de dunne lagen de snelheid van de interne perimeter of de uit de maximale volumetrische snelheid van het filament berekende snelheid lager is, wordt de laagste van beide gebruikt.\n"
+"Als bij het printen van de dunne lagen de snelheid van de dunne vulling (infill) of de uit de maximale volumetrische snelheid van het filament berekende snelheid lager is, wordt de laagste van beide gebruikt.\n"
"\n"
"Het verhogen van deze snelheid kan de stabiliteit van de toren beïnvloeden en de kracht vergroten waarmee het mondstuk botst met eventuele blobs die zich op het afveegblok hebben gevormd.\n"
"\n"
-"Controleer, voordat u deze parameter boven de standaardwaarde van 90 mm/s verhoogt, of uw printer bij de hogere snelheden betrouwbaar kan overbruggen en of het druipen bij toolwissels goed onder controle is.\n"
+"Controleer, voordat u deze parameter boven de standaardwaarde van 90 mm/s verhoogt, of uw printer bij de hogere snelheden betrouwbaar kan overbruggen en of het druipen bij gereedschapswissels goed onder controle is.\n"
"\n"
-"Voor de externe perimeters van het afveegblok wordt ongeacht deze instelling de snelheid van de interne perimeter gebruikt."
+"Voor de externe perimeters van het afveegblok wordt de snelheid van de interne perimeter gebruikt, ook beperkt door deze instelling."
# AI Translated
msgid "Wall type"
msgstr "Wandtype"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"Type buitenwand van het afveegblok.\n"
-"1. Rechthoek: het standaardwandtype, een rechthoek met vaste breedte en hoogte.\n"
+"1. Rechthoek: een rechthoek met vaste breedte en hoogte.\n"
"2. Kegel: een kegel met een afronding aan de onderkant om het afveegblok te helpen stabiliseren.\n"
-"3. Rib: voegt vier ribben aan de wand van de toren toe voor extra stabiliteit."
+"3. Rib: het standaardwandtype, dat vier ribben aan de wand van de toren toevoegt voor extra stabiliteit."
msgid "Rectangle"
msgstr "Rechthoek"
@@ -20295,6 +21917,7 @@ msgid "Rib width"
msgstr "Ribbreedte"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Rib width is always less than half the prime tower side length."
msgstr "De ribbreedte is altijd kleiner dan de helft van de zijdelengte van de prime toren."
@@ -20303,10 +21926,12 @@ msgid "Fillet wall"
msgstr "Afgeronde wand"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "The wall of prime tower will fillet."
msgstr "De wand van de prime toren wordt afgerond."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "The extruder to use when printing perimeter of the wipe tower. Set to 0 to use the one that is available (non-soluble would be preferred)."
msgstr "De extruder die wordt gebruikt bij het printen van de perimeter van het afveegblok. Zet op 0 om de beschikbare extruder te gebruiken (niet-oplosbaar heeft de voorkeur)."
@@ -20321,22 +21946,27 @@ msgid "Skip points"
msgstr "Punten overslaan"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "The wall of prime tower will skip the start points of wipe path."
msgstr "De wand van de prime toren slaat de startpunten van het veegpad over."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "toren"; align it once the term is settled.
msgid "Enable tower interface features"
msgstr "Overgangsfuncties van de toren inschakelen"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Enable optimized prime tower interface behavior when different materials meet."
msgstr "Schakel geoptimaliseerd gedrag van de overgangslaag van de prime toren in wanneer verschillende materialen samenkomen."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "Cool down from interface boost during prime tower"
msgstr "Afkoelen na de temperatuurverhoging van de overgangslaag tijdens de prime toren"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
msgid "When interface-layer temperature boost is active, set the nozzle back to print temperature at the start of the prime tower so it cools down during the tower."
msgstr "Wanneer de temperatuurverhoging voor de overgangslaag actief is, wordt het mondstuk aan het begin van de prime toren teruggezet naar de printtemperatuur, zodat het tijdens de toren afkoelt."
@@ -20357,6 +21987,14 @@ msgstr "Het purgen na het verwisselen van het filament vindt plaats in de onders
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Dit object wordt gebruikt om het mondstuk te reinigen nadat het filament is vervangen om filament te besparen en de printtijd te verkorten. Als resultaat worden de kleuren van de objecten gemengd. Het wordt niet van kracht tenzij de prime toren is ingeschakeld."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Band-spoeltorenobject"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Markeert het automatisch gegenereerde spoelprisma van de band. Wordt automatisch beheerd; niet handmatig instellen."
+
msgid "Maximal bridging distance"
msgstr "Maximale brugafstand"
@@ -20364,10 +22002,12 @@ msgid "Maximal distance between supports on sparse infill sections."
msgstr "Maximale afstand tussen support op dunne vullingsdelen."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Wipe tower purge lines spacing"
msgstr "Afstand tussen spoellijnen op het afveegblok"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Spacing of purge lines on the wipe tower."
msgstr "Afstand tussen de spoellijnen op het afveegblok."
@@ -20376,14 +22016,16 @@ msgid "Extra flow for purging"
msgstr "Extra flow voor het spoelen"
# AI Translated
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Extra flow die wordt gebruikt voor de spoellijnen op het afveegblok. Hierdoor worden de spoellijnen dikker of dunner dan ze normaal zouden zijn. De afstand wordt automatisch aangepast."
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Extra flow die wordt gebruikt voor de spoellijnen op het afveegblok. Hierdoor worden de spoellijnen dikker dan ze normaal zouden zijn. De afstand wordt automatisch aangepast."
# AI Translated
msgid "Idle temperature"
msgstr "Temperatuur bij inactiviteit"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Nozzle temperature when the tool is currently not used in multi-tool setups. This is only used when 'Ooze prevention' is active in Print Settings. Set to 0 to disable."
msgstr "Mondstuktemperatuur wanneer de tool in opstellingen met meerdere tools niet in gebruik is. Dit wordt alleen gebruikt wanneer 'Druippreventie' actief is in de printinstellingen. Zet op 0 om uit te schakelen."
@@ -20506,13 +22148,13 @@ msgstr "Minimale wandlengte"
# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Pas deze waarde aan om te voorkomen dat er korte, niet-gesloten wanden worden geprint, wat de printtijd kan verlengen. Hogere waarden verwijderen meer en langere wanden.\n"
+"Pas deze waarde aan om te voorkomen dat korte, niet-gesloten wanden worden geprint, wat de printtijd kan verlengen. De waarde is een veelvoud van de wandbreedte. Hogere waarden verwijderen meer en langere wanden.\n"
"\n"
-"LET OP: onder- en bovenoppervlakken worden niet door deze waarde beïnvloed, om zichtbare gaten aan de buitenzijde van het model te voorkomen. Pas 'Drempel voor één wand' in de geavanceerde instellingen hieronder aan om te bepalen wat als bovenoppervlak wordt beschouwd. 'Drempel voor één wand' is alleen zichtbaar als deze instelling boven de standaardwaarde van 0,5 staat of als bovenoppervlakken met één wand zijn ingeschakeld."
+"LET OP: onder- en bovenoppervlakken worden niet door deze waarde beïnvloed, om zichtbare gaten aan de buitenzijde van het model te voorkomen. Pas 'Drempel voor één wand' in de instellingen 'Wanden en oppervlakten' hieronder aan om de gevoeligheid van wat als bovenoppervlak wordt beschouwd aan te passen. 'Drempel voor één wand' is alleen zichtbaar als deze instelling boven de standaardwaarde van 0,5 staat of als bovenoppervlakken met één wand zijn ingeschakeld."
# AI Translated
msgid "Maximum wall resolution"
@@ -20527,7 +22169,7 @@ msgid "Maximum wall deviation"
msgstr "Maximale wandafwijking"
# AI Translated
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
msgstr "De maximale afwijking die is toegestaan bij het verlagen van de resolutie voor de instelling 'Maximale wandresolutie'. Als u deze verhoogt, wordt de print minder nauwkeurig, maar de G-code kleiner. 'Maximale wandafwijking' beperkt 'Maximale wandresolutie'; als de twee met elkaar in conflict zijn, gaat 'Maximale wandafwijking' voor."
msgid "First layer minimum wall width"
@@ -20591,6 +22233,7 @@ msgid "Filament change"
msgstr "Filamentwissel"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "toren"; align it once the term is settled.
msgid "The volume of material required to prime the extruder on the tower, excluding a hotend change."
msgstr "Het materiaalvolume dat nodig is om de extruder op de toren te primen, exclusief een hotendwissel."
@@ -20626,8 +22269,10 @@ msgid "too large line width "
msgstr "te grote lijnbreedte "
# AI Translated
-msgid " not in range "
-msgstr " niet in bereik "
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% valt buiten het bereik [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Dit exporteert het project als 3MF."
@@ -20789,6 +22434,14 @@ msgstr "Oriëntatieopties"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Oriëntatieopties: 0-uitschakelen, 1-inschakelen, andere-automatisch"
+# AI Translated
+msgid "Repair"
+msgstr "Repareren"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Repareert de meshes van de modellen zoals \"Repareer model\" dat doet: sluit gaten en scheuren, richt ze naar buiten en verwijdert zelfdoorsnijdingen."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Rotatiehoek rond de Z-as in graden."
@@ -20912,6 +22565,12 @@ msgstr "Uitvoermap"
msgid "This is the output directory for exported files."
msgstr "Dit is de map waarin de geëxporteerde bestanden worden opgeslagen"
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Debuggen level"
@@ -21077,10 +22736,12 @@ msgid "Specific for sequential printing. Zero-based index of currently printed o
msgstr "Specifiek voor sequentieel printen. Nulgebaseerde index van het momenteel geprinte object."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Has wipe tower"
msgstr "Heeft afveegblok"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Whether or not wipe tower is being generated in the print."
msgstr "Of er in de print wel of geen afveegblok wordt gegenereerd."
@@ -21093,6 +22754,7 @@ msgid "Zero-based index of the first extruder used in the print. Same as initial
msgstr "Nulgebaseerde index van de eerste extruder die in de print wordt gebruikt. Hetzelfde als initial_tool."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Initial tool"
msgstr "Eerste tool"
@@ -21124,6 +22786,54 @@ msgstr "Heeft MM-priming met één extruder"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Worden de extra primingzones voor multi-material in deze print gebruikt?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Eerste extruder zonder ondersteuning"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Nulgebaseerde index van de eerste extruder die wordt gebruikt voor printen zonder ondersteuning. Hetzelfde als initial_no_support_tool."
+
+# AI Translated
+msgid "In head wrap detect zone"
+msgstr "In detectiezone voor head wrap"
+
+# AI Translated
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Geeft aan of de eerste laag overlapt met de head wrap-zone."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Huidig printbedtype"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Naam van het momenteel geselecteerde printbedtype (bijv. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Actieve IDEX/IQEX-modus"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Naam van de actieve parallelle IDEX/IQEX-printmodus voor dit printbed (bijv. 'primary', 'mirror', 'copy'). Lege tekenreeks als IDEX/IQEX niet is ingeschakeld."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Index van de actieve IDEX/IQEX-modus"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Nulgebaseerde index van de actieve parallelle IDEX/IQEX-printmodus binnen imex_mode_names."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code van de actieve IDEX/IQEX-modus"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "De ruwe G-code-sjabloon van de modus voor de actieve parallelle IDEX/IQEX-printmodus, na evaluatie van de plaatshouders. Globale variabelen die hier worden gedefinieerd, stromen door naar machine_start_gcode."
+
# AI Translated
msgid "Volume per extruder"
msgstr "Volume per extruder"
@@ -21133,10 +22843,12 @@ msgid "Total filament volume extruded per extruder during the entire print."
msgstr "Totaal geëxtrudeerd filamentvolume per extruder tijdens de hele print."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Total tool changes"
msgstr "Totaal aantal toolwissels"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "Number of tool changes during the print."
msgstr "Aantal toolwissels tijdens de print."
@@ -21197,18 +22909,22 @@ msgid "Total cost of all material used in the print. Calculated from filament_co
msgstr "Totale kosten van al het materiaal dat in de print is gebruikt. Berekend uit de waarde filament_cost in de filamentinstellingen."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Total wipe tower cost"
msgstr "Totale kosten van het afveegblok"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Total cost of the material wasted on the wipe tower. Calculated from filament_cost value in Filament Settings."
msgstr "Totale kosten van het materiaal dat op het afveegblok verloren gaat. Berekend uit de waarde filament_cost in de filamentinstellingen."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Wipe tower volume"
msgstr "Volume van het afveegblok"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "afveegblok"; align it once the term is settled.
msgid "Total filament volume extruded on the wipe tower."
msgstr "Totaal filamentvolume dat op het afveegblok is geëxtrudeerd."
@@ -21303,6 +23019,18 @@ msgstr "Invoerbestandsnaam zonder extensie"
msgid "Source filename of the first object, without extension."
msgstr "Bronbestandsnaam van het eerste object, zonder extensie."
+# AI Translated
+msgid "Full input filename"
+msgstr "Volledige invoerbestandsnaam"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Bronbestandsnaam van het eerste object."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Naam van het geslicede printbed."
+
# AI Translated
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "De vector heeft twee elementen: de X- en Y-coördinaat van het punt. Waarden in mm."
@@ -21343,6 +23071,59 @@ msgstr "Rechterbovenhoek van het omhullende kader van het printbed"
msgid "Size of the print bed bounding box"
msgstr "Grootte van het omhullende kader van het printbed"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime toren"; align it once the term is settled.
+msgid "First layer center without wipe tower"
+msgstr "Midden van de eerste laag zonder prime toren"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Hoogte van de eerste laag."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Vector met printbedtemperaturen voor elke extruder/elk filament."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Vector met printbedtemperaturen van de eerste laag voor elke extruder/elk filament. Geeft dezelfde waarde als first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Printbedtemperatuur van de eerste laag (eerste extruder)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Printbedtemperatuur van de eerste laag voor de eerste extruder. Hetzelfde als bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Vector met kamertemperaturen voor elke extruder/elk filament."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Vector met minimale kamertemperaturen voor elke extruder/elk filament."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Totale kamertemperatuur"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Totale kamertemperatuur. Deze waarde is de maximale kamertemperatuur van alle gebruikte extruders/filamenten."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Vector met printbedtemperaturen van de eerste laag voor elke extruder/elk filament. Geeft dezelfde waarde als bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Temperatuur van de eerste laag"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Vector met temperaturen van de eerste laag voor elke extruder/elk filament."
+
msgid "Timestamp"
msgstr "Tijdstempel"
@@ -21399,8 +23180,8 @@ msgid "Layer number"
msgstr "Laagnummer"
# AI Translated
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Index van de huidige laag. Eengebaseerd (de eerste laag is dus nummer 1)."
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Index van de huidige laag. Begint bij nul (d.w.z. de eerste laag heeft nummer 0), behalve in de G-code bij wijzigen van extrusietype, waar deze bij één begint."
# AI Translated
msgid "Layer Z"
@@ -21426,6 +23207,264 @@ msgstr "Extruder-ID van het filament"
msgid "The current extruder ID. The same as current_extruder."
msgstr "De huidige extruder-ID. Hetzelfde als current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Vorige extruder"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Index van de extruder die wordt ontladen. De index begint bij nul (de eerste extruder heeft index 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Volgende extruder"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Index van de extruder die wordt geladen. De index begint bij nul (de eerste extruder heeft index 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Relatieve E-as"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Geeft aan of relatieve positionering wordt gebruikt."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "Toolchange count"
+msgstr "Aantal toolwissels"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "The number of toolchanges throughout the print."
+msgstr "Het aantal toolwissels tijdens de print."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Oude terugtreklengte"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "De terugtreklengte van het vorige filament."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Nieuwe terugtreklengte"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "De terugtreklengte van het nieuwe filament."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "Old retract length toolchange"
+msgstr "Oude terugtreklengte toolwissel"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "The toolchange retraction length of the previous filament."
+msgstr "De terugtreklengte bij toolwissel van het vorige filament."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "New retract length toolchange"
+msgstr "Nieuwe terugtreklengte toolwissel"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "The toolchange retraction length of the new filament."
+msgstr "De terugtreklengte bij toolwissel van het nieuwe filament."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Oude filamenttemperatuur"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "De oude filamenttemperatuur."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Nieuwe filamenttemperatuur"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "De nieuwe filamenttemperatuur."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "X after toolchange"
+msgstr "X na toolwissel"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "The X pos after toolchange."
+msgstr "De X-positie na de toolwissel."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "Y after toolchange"
+msgstr "Y na toolwissel"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "The Y pos after toolchange."
+msgstr "De Y-positie na de toolwissel."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "Z after toolchange"
+msgstr "Z na toolwissel"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
+msgid "The Z pos after toolchange."
+msgstr "De Z-positie na de toolwissel."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Eerste spoelvolume"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Het eerste spoelvolume."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Tweede spoelvolume"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Het tweede spoelvolume."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Oude voedingssnelheid (E) van filament"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "De oude voedingssnelheid (E) van de extruder voor het filament."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Nieuwe voedingssnelheid (E) van filament"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "De nieuwe voedingssnelheid (E) van de extruder voor het filament."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Verplaatsingspunt 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "Het verplaatsingspunt 1 X."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Verplaatsingspunt 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Het verplaatsingspunt 1 Y."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Verplaatsingspunt 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "Het verplaatsingspunt 2 X."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Verplaatsingspunt 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Het verplaatsingspunt 2 Y."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Verplaatsingspunt 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "Het verplaatsingspunt 3 X."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Verplaatsingspunt 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Het verplaatsingspunt 3 Y."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Spoellengte 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "De eerste spoellengte."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Spoellengte 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "De tweede spoellengte."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Spoellengte 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "De derde spoellengte."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Spoellengte 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "De vierde spoellengte."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Extrusietype"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Het nieuwe extrusietype dat gaat worden gebruikt\n"
+"Mogelijke waarden:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Laatste extrusietype"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Het eerder gebruikte extrusietype\n"
+"Mogelijke waarden:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Fout in het zip archief"
@@ -21438,6 +23477,12 @@ msgstr "Vulling (infill) genereren"
msgid "Generating infill toolpath"
msgstr "Infill toolpath genereren"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z-contourvolging laag %d/%d (%d%%)"
+
# AI Translated
msgid "Detect overhangs for auto-lift"
msgstr "Overhangen detecteren voor automatisch liften"
@@ -21446,21 +23491,19 @@ msgid "Checking support necessity"
msgstr "Controleren of support is noodzakelijk"
# AI Translated
-msgid "floating regions"
-msgstr "zwevende gebieden"
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Het lijkt erop dat object %1% zwevende gebieden heeft. Oriënteer het object opnieuw of schakel het genereren van ondersteuning in."
# AI Translated
-msgid "floating cantilever"
-msgstr "een zwevende uitkraging"
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Het lijkt erop dat object %1% een zwevende uitkraging heeft. Oriënteer het object opnieuw of schakel het genereren van ondersteuning in."
# AI Translated
-msgid "large overhangs"
-msgstr "grote overhangen"
-
-# AI Translated
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Het lijkt erop dat object %s %s heeft. Oriënteer het object opnieuw of schakel het genereren van ondersteuning in."
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Het lijkt erop dat object %1% grote overhangen heeft. Oriënteer het object opnieuw of schakel het genereren van ondersteuning in."
msgid "Generating support"
msgstr "Support genereren"
@@ -21473,8 +23516,8 @@ msgid "Slicing mesh"
msgstr "Mesh slicen"
# AI Translated
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Er zijn geen lagen gedetecteerd. Repareer eventueel uw STL-bestand(en) of controleer de grootte of dikte ervan en probeer het opnieuw.\n"
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Er zijn geen lagen gedetecteerd. Repareer eventueel het model of controleer de grootte of dikte ervan en probeer het opnieuw.\n"
# AI Translated
msgid ""
@@ -21496,6 +23539,397 @@ msgstr ""
msgid "Object name"
msgstr "Objectnaam"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Kan de unaire min-operator niet toepassen."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Kan niet naar een geheel getal worden geconverteerd."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Kan een niet-numerieke waarde niet afronden."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Kan een niet-numerieke waarde niet naar beneden afronden."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Kan een niet-numerieke waarde niet naar boven afronden."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Kan de not-operator niet toepassen."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Kan geen niet-numerieke typen optellen."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Kan geen niet-numerieke typen aftrekken."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Kan niet vermenigvuldigen met een niet-numeriek type."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Kan een niet-numeriek type niet delen."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Kan niet delen door een niet-numeriek type."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Deling door nul"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Geen booleaanse expressie"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Kan de typen niet vergelijken."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Geen numeriek type."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: tweede parameter moet een geheel getal zijn"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: derde parameter moet een geheel getal zijn"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "De linkerkant van een regex-overeenkomst moet een tekenreeks zijn."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Compileren van de regex mislukt: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "De eerste parameter van regex_replace() moet een tekenreeks zijn."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): de eerste parameter (de tekenreeks waarmee wordt vergeleken) moet een tekenreekswaarde zijn"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): het patroon moet een tekenreekswaarde zijn"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Compileren van de regex mislukt"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Kan geen logische bewerking toepassen op niet-booleaanse operanden."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Poging om een scalaire variabele te indexeren"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Ongeldige vectorindex"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "Variabele bestaat niet (in een inactieve vertakking)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "Variabele bestaat niet"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Poging om te verwijzen naar een niet-gedefinieerde (nil) optionele variabele"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Indexeren van een lege vectorvariabele"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Poging om te verwijzen naar een niet-gedefinieerd (nil) element van een vector met optionele waarden"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "De indexvariabele moet een geheel getal zijn"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Negatieve vectorindex"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Geen variabelenaam"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Geen variabelenaam (in een inactieve vertakking)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "FloatOrPercent-variabele kon de afhankelijkheden van \"ratio_over\" niet oplossen"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Niet-ondersteund type scalaire variabele"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Verwijzing naar een vectorvariabele terwijl een scalair wordt verwacht"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Niet-ondersteund type vectorvariabele"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Kan een alleen-lezen variabele niet wijzigen"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "De rechterkant is geen numerieke expressie"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Aantal elementen verwacht om een vector mee te vullen."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Negatief aantal elementen opgegeven."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "De rechterkant is geen booleaanse expressie"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Niet-ondersteund type scalaire uitvoervariabele"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Verwijzing naar een uitvoervectorvariabele terwijl een scalair wordt verwacht"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Index buiten bereik"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Niet-ondersteund type uitvoervectorvariabele"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Symbool is al gedefinieerd in het alleen-lezen systeemwoordenboek"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Symbool is al gedefinieerd als systeemuitvoervariabele"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Globale variabelen zijn in deze context niet beschikbaar"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Variabelenaam is al gedefinieerd in het lokale bereik"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Variabelenaam is al gedefinieerd in het globale bereik"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Kan geen scalaire waarde toewijzen aan een vectorvariabele."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Kan geen vectorwaarde toewijzen aan een scalaire variabele."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Kan geen vectorvariabele maken van een lege initialisatielijst, omdat het type niet kan worden afgeleid."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "De rechterkant is niet geldig: numerieke en booleaanse typen worden gemengd."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Kan geen scalair toewijzen aan een vector"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Sommige elementen van de vectorvariabele met optionele waarden aan de rechterkant zijn niet gedefinieerd (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "De linkerkant is een float-vector, terwijl de rechterkant dat niet is."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "De linkerkant is een int-vector, terwijl de rechterkant dat niet is."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "De linkerkant is een tekenreeksvector, terwijl de rechterkant dat niet is."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "De linkerkant is een bool-vector, terwijl de rechterkant dat niet is."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "De vectoren aan de linker- en rechterkant zijn niet compatibel."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Dit type vectorvariabele dupliceren wordt niet ondersteund"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "De parameter van empty() is geen vectorvariabele"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "De parameter van size() is geen vectorvariabele"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Een niet-gehele index is niet toegestaan om een vectorvariabele te adresseren."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Generator voor willekeurige getallen niet beschikbaar in deze context."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Parseerfout op regel %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Parseerfout op regel %1%. Tag %2% verwacht"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Parseerfout op regel %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "De interpolatiewaarde moet een getal zijn."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "De X-waarde van een tabelpunt moet een getal zijn."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "De Y-waarde van een tabelpunt moet een getal zijn."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "De X-coördinaten van de tabel moeten oplopen"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "De interpolatiewaarde valt buiten het tabelbereik"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Onbekende syntaxfout"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Ongeldige tekst."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Ongeldig tekstblok."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Ongeldige macro."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Geen {if}{else}{endif}-macro."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Geen {switch}-macro."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Verouderd formaat voor variabele-expansie verwacht"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Identifier verwacht."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Voorwaardelijke expressie verwacht."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Booleaanse expressie verwacht."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Expressie verwacht."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Sluitende accolade of optionele parameter verwacht."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Lijst met tekenreekspatronen verwacht (gewone tekst of regex)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Variabeleverwijzing verwacht."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Variabelenaam verwacht."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Regex verwacht."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Ongeldige utf8-reeks"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Niet-ASCII7-tekens zijn alleen toegestaan binnen tekstblokken en tekenreeksliteralen, niet binnen codeblokken."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Ongeldige escape-reeks"
+
msgid "Support: generate contact points"
msgstr "Support: contactpunten genereren"
@@ -21515,6 +23949,10 @@ msgstr "Het opgegeven bestand kon niet worden gelezen omdat het leeg is."
msgid "The file format is incompatible and cannot be parsed."
msgstr "De bestandsindeling is niet compatibel en kan niet worden gelezen."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Converteren van de asset naar STL via ModelIO mislukt."
+
# AI Translated
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Onbekende bestandsindeling: het invoerbestand moet de extensie .stl, .obj of .amf(.xml) hebben."
@@ -21571,9 +24009,6 @@ msgstr "Herkalibratie"
msgid "Calibrate"
msgstr "Kalibreren"
-msgid "Finish"
-msgstr "Klaar"
-
msgid "How can I use calibration results?"
msgstr "Hoe kan ik kalibratieresultaten gebruiken?"
@@ -21672,9 +24107,12 @@ msgstr ""
"Binnen dezelfde extruder moet de naam(%s) uniek zijn wanneer het filamenttype, de mondstukdiameter en de mondstukflow gelijk zijn.\n"
"Weet u zeker dat u het eerdere resultaat wilt overschrijven?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Dit type machine kan slechts %d historische resultaten per mondstuk bevatten. Dit resultaat wordt niet opgeslagen."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Dit type machine kan slechts %d historisch resultaat per mondstuk bevatten. Dit resultaat wordt niet opgeslagen."
+msgstr[1] "Dit type machine kan slechts %d historische resultaten per mondstuk bevatten. Dit resultaat wordt niet opgeslagen."
msgid "Connecting to printer..."
msgstr "Aansluiten op de printer..."
@@ -21904,9 +24342,12 @@ msgid "Please connect the printer first before synchronizing."
msgstr "Verbind eerst de printer voordat u synchroniseert."
# AI Translated
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "De mondstukinformatie van printer %s is niet ingesteld. Configureer deze voordat u met de kalibratie doorgaat."
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "De informatie over het rechter mondstuk van de printer is niet ingesteld. Configureer deze voordat u met de kalibratie doorgaat."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "De informatie over het linker mondstuk van de printer is niet ingesteld. Configureer deze voordat u met de kalibratie doorgaat."
# AI Translated
msgid "AMS and nozzle information are synced"
@@ -21974,6 +24415,11 @@ msgstr "Van Volumetric Speed"
msgid "To Volumetric Speed"
msgstr "Naar volumetrische snelheid"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Stap"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Weet je zeker dat je deze print wilt annuleren?"
@@ -21999,9 +24445,12 @@ msgstr "Opmerking: Het nummer van de hot-end op de %s is gekoppeld aan de houder
msgid "Action"
msgstr "Actie"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Dit type machine kan slechts %d historische resultaten per mondstuk bevatten."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Dit type machine kan slechts %d historisch resultaat per mondstuk bevatten."
+msgstr[1] "Dit type machine kan slechts %d historische resultaten per mondstuk bevatten."
msgid "Edit Flow Dynamics Calibration"
msgstr "Flow Dynamics-kalibratie bewerken"
@@ -22138,12 +24587,13 @@ msgstr ""
"Versnellingswaarden moeten groter zijn dan snelheidswaarden.\n"
"Controleer de invoer."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Nog niet beschikbaar op bandprinters — gebruik in plaats daarvan de methode PA-toren."
+
msgid "Temperature calibration"
msgstr "Temperatuurkalibratie"
-msgid "Filament type"
-msgstr "Filamenttype"
-
msgid "PLA"
msgstr "PLA"
@@ -22165,6 +24615,20 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+# AI Translated
+msgid "Test model"
+msgstr "Testmodel"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Standaard"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Overhang"
+
msgid "Start temp: "
msgstr "Starttemp:"
@@ -22293,10 +24757,6 @@ msgstr "Begin terugtreklengte:"
msgid "End retraction length: "
msgstr "Beëindig terugtreklengte: "
-# AI Translated
-msgid "Test model"
-msgstr "Testmodel"
-
# AI Translated
msgid "Ringing Tower"
msgstr "Ringing-toren"
@@ -22334,8 +24794,12 @@ msgid "Frequency (Start / End): "
msgstr "Frequentie (Start / Einde): "
# AI Translated
-msgid "Start / End"
-msgstr "Start / Einde"
+msgid "X Start / End: "
+msgstr "X Start / Einde: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y Start / Einde: "
# AI Translated
msgid "Frequency settings"
@@ -22382,8 +24846,12 @@ msgid "Frequency: "
msgstr "Frequentie: "
# AI Translated
-msgid "Damp"
-msgstr "Demping"
+msgid "Frequency X / Y: "
+msgstr "Frequentie X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Demping (Start / Einde): "
# AI Translated
msgid "RepRap firmware uses the same frequency for both axes."
@@ -22533,8 +25001,10 @@ msgstr "IFS inschakelen"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "%d IFS-slots op de printer gedetecteerd."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "%d IFS-slot op de printer gedetecteerd."
+msgstr[1] "%d IFS-slots op de printer gedetecteerd."
# AI Translated
msgid "This printer does not report a material station."
@@ -22553,6 +25023,7 @@ msgid "Slice the plate first to get project material information."
msgstr "Slice eerst het printbed om informatie over het projectmateriaal te krijgen."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "tool"; align it once the term is settled.
msgid "This plate uses multiple materials. Enable IFS and assign each tool to a printer slot."
msgstr "Dit printbed gebruikt meerdere materialen. Schakel IFS in en wijs elke tool aan een slot van de printer toe."
@@ -22668,8 +25139,10 @@ msgstr "Aftrekken van"
msgid "Subtract with"
msgstr "Aftrekken met"
-msgid "selected"
-msgstr "geselecteerd"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 geselecteerd"
msgid "Part 1"
msgstr "Deel 1"
@@ -22786,9 +25259,6 @@ msgstr "bijv. Basic, Mat, Zijde, Marmer"
msgid "Filament Preset"
msgstr "Filament voorinstelling"
-msgid "Create"
-msgstr "Creëren"
-
# AI Translated
msgid "Vendor is not selected; please reselect vendor."
msgstr "Er is geen leverancier geselecteerd; selecteer de leverancier opnieuw."
@@ -23117,6 +25587,10 @@ msgstr ""
"De printer en alle filament- en procesvoorinstellingen die bij de printer horen.\n"
"Kan met anderen worden gedeeld."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Aangepaste textuur en model van het printbed meenemen"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -23169,14 +25643,6 @@ msgstr "Opmerking: Als de enige preset onder deze gloeidraad wordt verwijderd, w
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Presets die door andere presets worden geërfd, kunnen niet worden verwijderd"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "De volgende voorinstellingen nemen deze voorinstelling over."
-msgstr[1] "De volgende voorinstelling neemt deze voorinstelling over."
-
-msgid "Delete Preset"
-msgstr "Preset verwijderen"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Weet je zeker dat je de geselecteerde preset wilt verwijderen?"
@@ -23259,11 +25725,13 @@ msgid "The number of printer extruders and the printer selected for calibration
msgstr "Het aantal extruders van de printer komt niet overeen met de printer die voor de kalibratie is geselecteerd."
# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "De mondstukdiameter van extruder %s is 0,2 mm, wat geen automatische Flow Dynamics-kalibratie ondersteunt."
# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -23281,6 +25749,13 @@ msgstr ""
"Klik op de knop Synchroniseren hierboven en start de kalibratie opnieuw."
# AI Translated
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "De mondstukinformatie van printer %s is niet ingesteld. Configureer deze voordat u met de kalibratie doorgaat."
+
+# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -23358,6 +25833,11 @@ msgstr "Creality K-serie printer detecteren"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Klik op Scannen om op uw netwerk naar printers uit de K-serie te zoeken."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Model"
+
# AI Translated
msgid "Scan"
msgstr "Scannen"
@@ -23380,8 +25860,10 @@ msgstr "Er zijn geen printers uit de K-serie gevonden. Controleer of de printer
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "%zu Creality-printer(s) gevonden. Selecteer er een en klik op Geselecteerde gebruiken."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "%zu Creality-printer gevonden. Selecteer deze en klik op Geselecteerde gebruiken."
+msgstr[1] "%zu Creality-printers gevonden. Selecteer er een en klik op Geselecteerde gebruiken."
# AI Translated
msgid "Active"
@@ -23500,8 +25982,12 @@ msgid "Failed to launch a new instance."
msgstr "Starten van een nieuwe instantie is mislukt."
# AI Translated
-msgid "log(s)"
-msgstr "logboek(en)"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d logbestand (%.2f %s)"
+msgstr[1] "%d logbestanden (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -23556,17 +26042,37 @@ msgid "Authorizing..."
msgstr "Autoriseren..."
# AI Translated
-msgid "Error. Can't get API token for authorization"
-msgstr "Fout. Kan geen API-token voor autorisatie ophalen"
+msgid "Maximum login retries exceeded"
+msgstr "Maximaal aantal inlogpogingen overschreden"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "HTTP-fout: %1%"
# AI Translated
msgid "Could not parse server response."
msgstr "Kan het antwoord van de server niet verwerken."
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "Fout. Kan geen API-token voor autorisatie ophalen"
+
# AI Translated
msgid "Error saving session to file"
msgstr "Fout bij het opslaan van de sessie in een bestand"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "De verbinding met de 3DPrinterOS-cloud werkt correct."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Ingelogd als gebruiker: %1%"
+
# AI Translated
msgid "Error session check"
msgstr "Fout bij de sessiecontrole"
@@ -23606,6 +26112,42 @@ msgstr "Verkeerd wachtwoord."
msgid "Could not get resources to create a new connection"
msgstr "Kan geen bronnen krijgen om een nieuwe verbinding te maken"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "De verbinding met UltiMaker werkt correct."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Kan geen verbinding maken met UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Fout bij het genereren van inloggegevens! Zie het logboek voor details."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "FOUT: ID of KEY is leeg. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Gebruikersnaam: %1% Wachtwoord: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "De authenticatiegegevens wachten op goedkeuring. Keur de toegang goed via het dialoogvenster op het scherm van de printer."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Ongeldige authenticatiegegevens"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Fout: geen authenticatiegegevens gevonden!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Uploaden niet ingeschakeld op FlashAir-kaart."
@@ -23730,6 +26272,14 @@ msgstr ""
"Inhoud bericht: \"%1%\"\n"
"Fout: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "De verbinding met ESP3D werkt correct."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Kan geen verbinding maken met ESP3D"
+
msgid "No AMS"
msgstr "Geen AMS"
@@ -23822,6 +26372,11 @@ msgstr "Er kunnen maximaal %d printers worden geselecteerd"
msgid "No task"
msgstr "Geen taak"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Bekijken"
+
# AI Translated
msgid "Edit Printers"
msgstr "Printers bewerken"
@@ -23872,6 +26427,11 @@ msgstr "Printen mislukt"
msgid "Printing Pause"
msgstr "Printen gepauzeerd"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Voorbereiden"
+
msgid "Pending"
msgstr "In afwachting"
@@ -23909,10 +26469,6 @@ msgstr "Slimme filamenttoewijzing inschakelen: wijs één filament aan meerdere
msgid "File Saving"
msgstr "Bestand opslaan"
-# AI Translated
-msgid "Don't remind me again"
-msgstr "Herinner mij niet meer"
-
# AI Translated
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Er verschijnen geen pop-ups meer. U kunt dit opnieuw inschakelen in 'Voorkeuren'"
@@ -23944,17 +26500,25 @@ msgstr "Wijs filament handmatig toe aan het linker- of rechtermondstuk"
msgid "Global settings"
msgstr "Globale instellingen"
-msgid "Video tutorial"
-msgstr "Instructie video"
-
# AI Translated
msgid "(Sync with printer)"
msgstr "(Synchroniseren met printer)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Fout: de %s-extruder heeft geen beschikbaar %s-mondstuk; het huidige groeperingsresultaat is ongeldig."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Fout: de linker extruder heeft geen beschikbaar standaardmondstuk; het huidige groeperingsresultaat is ongeldig."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Fout: de linker extruder heeft geen beschikbaar High Flow-mondstuk; het huidige groeperingsresultaat is ongeldig."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Fout: de rechter extruder heeft geen beschikbaar standaardmondstuk; het huidige groeperingsresultaat is ongeldig."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Fout: de rechter extruder heeft geen beschikbaar High Flow-mondstuk; het huidige groeperingsresultaat is ongeldig."
# AI Translated
msgid "We will slice according to this grouping method:"
@@ -24004,9 +26568,6 @@ msgstr "Kan geen verbinding maken met SimplyPrint"
msgid "Internal error"
msgstr "Interne fout"
-msgid "Unknown error"
-msgstr "Onbekende fout"
-
# AI Translated
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "Het SimplyPrint-account is niet gekoppeld. Ga naar de verbindingsopties om dit in te stellen."
@@ -24015,6 +26576,16 @@ msgstr "Het SimplyPrint-account is niet gekoppeld. Ga naar de verbindingsopties
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge gaf een ongeldig JSON-antwoord terug."
+# AI Translated
+msgid "Request failed"
+msgstr "Verzoek mislukt"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Lokale API-fout van Flashforge %1%: %2%"
+
# AI Translated
msgid "No Flashforge printers were discovered on the local network."
msgstr "Er zijn geen Flashforge-printers gevonden op het lokale netwerk."
@@ -24205,8 +26776,12 @@ msgstr "Waarschuwing: het randtype is niet op \"geschilderd\" ingesteld; de rand
msgid "Set the brim type of this object to \"painted\""
msgstr "Zet het randtype van dit object op \"geschilderd\""
-msgid "invalid brim ears"
-msgstr " ongeldige rand oren"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d ongeldig randoor"
+msgstr[1] "%d ongeldige randoren"
msgid "Brim Ears"
msgstr "Rand Oren"
@@ -24236,6 +26811,7 @@ msgstr "Het laden van de informatie over over te slaan objecten is mislukt. Prob
msgid "Failed to create the temporary folder."
msgstr "Aanmaken van de tijdelijke map is mislukt."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d geselecteerd"
@@ -24261,8 +26837,10 @@ msgstr "De printopdracht wordt gestopt. Doorgaan?"
# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "%d objecten worden overgeslagen."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "%d object wordt overgeslagen."
+msgstr[1] "%d objecten worden overgeslagen."
# AI Translated
msgid "This action cannot be undone. Continue?"
@@ -24442,6 +27020,42 @@ msgstr "Indien ingeschakeld worden de bovenstaande waarden opgeslagen als standa
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Voorinstellingen exporteren"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Weergeven in map"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Bundel verwijderen"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Abonnement op bundel opzeggen"
+
+# AI Translated
+msgid "Update available"
+msgstr "Update beschikbaar"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Niet-geautoriseerde bundel"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Deze bundel openen in uw browser"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "Geabonneerd"
+
+# AI Translated
+msgid "Local"
+msgstr "Lokaal"
+
# AI Translated
msgid "Bundle folder does not exist."
msgstr "De bundelmap bestaat niet."
@@ -24486,6 +27100,14 @@ msgstr "Abonnement op bundel opzeggen"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Exporteren naar OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Exporteren naar map"
+
# AI Translated
msgid "Save preset bundle"
msgstr "Voorinstellingenbundel opslaan"
@@ -24587,6 +27209,11 @@ msgstr "Droogregeling van de AMS"
msgid "Filament Drying Settings"
msgstr "Instellingen voor het drogen van filament"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "u"
+
# AI Translated
msgid "Stopping"
msgstr "Stoppen"
@@ -24766,6 +27393,11 @@ msgstr "Starten: luchtinlaat controleren"
msgid "Starting: Checking air vent"
msgstr "Starten: luchtafvoer controleren"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Kan map %1% niet maken"
+
# AI Translated
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Het filament is mogelijk niet compatibel met de huidige machine-instellingen. Er worden generieke filamentvoorinstellingen gebruikt."
@@ -24786,6 +27418,105 @@ msgstr "Het filament is mogelijk niet compatibel met de huidige machine-instelli
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Het filamentmodel is onbekend. Er wordt een willekeurige filamentvoorinstelling gebruikt."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Onbekend configuratiebestand: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Ongeldig configuratiebestand: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "slot %1% -> slot %2%: gemengd filament"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "definitie van gemengd filament: limiet voor filamentslots bereikt"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "limiet voor filamentslots bereikt"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "de filamentlimiet van de printer is %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "slot %1% -> slot %2%: niet-toegewezen gemengd filament (de filamentlimiet van de printer is %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "slot %1%: niet-toegewezen gemengd filament (de filamentlimiet van de printer is %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "slot %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "slot %1%: definitie van gemengd filament kon niet worden geïmporteerd"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "heeft ten minste twee componenten nodig"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "componenten verwijzen naar ontbrekende slots"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "definitie van gemengd filament: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "slot %1%: definitie van gemengd filament kon niet worden geïmporteerd (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "slot %1%: %2% -> %3% (vervanging)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Laden van configuratiebestand %1% mislukt\n"
+"Overweeg eerst de map %2% op te schonen"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Configuratieversie %2% van leverancier %1% is ongeldig\n"
+"Overweeg eerst de map %3% op te schonen"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Laden van configuratiebestand %1% mislukt: %2%\n"
+"Overweeg eerst de map %3% op te schonen"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Referentievlakken en assen verbergen"
@@ -25099,6 +27830,11 @@ msgstr "Geen oppervlaklichaam om te verdikken — maak eerst een oppervlakfeatur
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Referentie / curve (vlak / as / coörd.-systeem / helix / projecteren)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Vlak"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Referentievlak (offset / gekanteld / middenvlak / rakend / twee randen / samenvallend)"
@@ -25165,6 +27901,11 @@ msgstr "Een bestaand lichaam verplaatsen en/of roteren"
msgid "Transform needs a body — add or import one first"
msgstr "Transformeren vereist een lichaam — voeg er eerst een toe of importeer er een"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Spiegelen"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Een lichaam spiegelen in een vlak"
@@ -25258,6 +27999,11 @@ msgstr "(geen)"
msgid "Hole / thread"
msgstr "Gat / schroefdraad"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Gat"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Een gat boren, gecentreerd op een gekozen vlak of geplaatst op een vlak"
@@ -25302,6 +28048,11 @@ msgstr "Klik op 2 punten of een lijn / cirkel / boog om een maat te plaatsen"
msgid "Line / polyline"
msgstr "Lijn / polylijn"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Lijn"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Klik op het begin, daarna op het eind — stel daarna de exacte lengte in"
@@ -25438,6 +28189,10 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Klik op controlepunten; dubbelklik, rechtsklik of Enter om te voltooien"
+# AI Translated
+msgid "Point"
+msgstr "Punt"
+
# AI Translated
msgid "Click to place a point"
msgstr "Klik om een punt te plaatsen"
@@ -25556,16 +28311,17 @@ msgstr "Kies entiteiten, sleep de greep voor de hoekomvang, klik op het aantal;
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Klik op het middelpunt en daarna op een hoekpunt — %d zijden, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Klik op het middelpunt en daarna op een hoekpunt — %d zijde, omgeschreven"
+msgstr[1] "Klik op het middelpunt en daarna op een hoekpunt — %d zijden, omgeschreven"
# AI Translated
-msgid "circumscribed"
-msgstr "omgeschreven"
-
-# AI Translated
-msgid "inscribed"
-msgstr "ingeschreven"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Klik op het middelpunt en daarna op een hoekpunt — %d zijde, ingeschreven"
+msgstr[1] "Klik op het middelpunt en daarna op een hoekpunt — %d zijden, ingeschreven"
# AI Translated
msgid "Polygon"
@@ -25904,6 +28660,11 @@ msgstr "Op vlak"
msgid "Thread plane"
msgstr "Schroefdraadvlak"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Norm"
+
# AI Translated
msgid "Pitch"
msgstr "Spoed"
@@ -26091,6 +28852,10 @@ msgstr "Kies een vlak van het volumelichaam om het te openen en stel daarna de w
msgid "(pick a side face)"
msgstr "(kies een zijvlak)"
+# AI Translated
+msgid "Face"
+msgstr "Vlak"
+
# AI Translated
msgid "Draft"
msgstr "Lossing"
@@ -26469,8 +29234,10 @@ msgstr "Schets bijgewerkt"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Schets gemaakt (%zu sturende maten) — selecteer deze en klik met de rechtermuisknop om te extruderen"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Schets gemaakt (%zu sturende maat) — selecteer deze en klik met de rechtermuisknop om te extruderen"
+msgstr[1] "Schets gemaakt (%zu sturende maten) — selecteer deze en klik met de rechtermuisknop om te extruderen"
# AI Translated
#, c-format, boost-format
@@ -26607,8 +29374,10 @@ msgstr "Bewerken: Schets %d · N = loodrecht op het vlak kijken · Beves
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — %zu driehoeken"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — %zu driehoek"
+msgstr[1] "OK — %zu driehoeken"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -26694,10 +29463,18 @@ msgstr "De mesh bevat geen driehoeken"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Deze mesh heeft %d driehoek. Elke driehoek wordt een B-rep-vlak voordat coplanaire vlakken worden samengevoegd, dus het importeren kan lang duren en een lichaam opleveren dat traag te bewerken is. Het is meestal beter om de mesh eerst te decimeren.\n"
+"\n"
+"Toch importeren?"
+msgstr[1] ""
"Deze mesh heeft %d driehoeken. Elke driehoek wordt een B-rep-vlak voordat coplanaire vlakken worden samengevoegd, dus het importeren kan lang duren en een lichaam opleveren dat traag te bewerken is. Het is meestal beter om de mesh eerst te decimeren.\n"
"\n"
"Toch importeren?"
@@ -26726,8 +29503,8 @@ msgstr "Meshimport mislukt: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Volumelichaam geïmporteerd — %d driehoeken → %d vlakken, volume %.2f mm³. Kies een vlak of rand en daarna Afronding / Snijden / Uithollen om te wijzigen"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Volumelichaam geïmporteerd — driehoeken: %d → vlakken: %d, volume %.2f mm³. Kies een vlak of rand en daarna Afronding / Snijden / Uithollen om te wijzigen"
# AI Translated
#, c-format, boost-format
@@ -26744,8 +29521,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s toegevoegd aan de schets — bevestig om het vast te leggen"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — sleep om te plaatsen/schalen en bevestig daarna"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — sleep om te plaatsen/schalen en bevestig daarna"
# AI Translated
msgid "Insert canceled"
@@ -26952,9 +29731,12 @@ msgid "a geometry operation failed"
msgstr "een geometriebewerking is mislukt"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d gekozen"
+msgid_plural " · %d picked"
+msgstr[0] " · %d gekozen"
+msgstr[1] " · %d gekozen"
# AI Translated
#, c-format, boost-format
@@ -26970,7 +29752,9 @@ msgstr "Selecteren — klik op een entiteit om deze te kiezen · sleep een ein
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d gekozen · kies nu een beperking (Horizontaal, Parallel, Rakend, Gelijk…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d gekozen · kies nu een beperking (Horizontaal, Parallel, Rakend, Gelijk…)"
+msgstr[1] "%d gekozen · kies nu een beperking (Horizontaal, Parallel, Rakend, Gelijk…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -27231,7 +30015,9 @@ msgstr "Spiegelen — as ingesteld · klik nu op de te spiegelen entiteiten
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Spiegelen — as ingesteld · %d te spiegelen · klik op een andere om deze toe te voegen of te verwijderen · Enter past toe"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Spiegelen — as ingesteld · %d te spiegelen · klik op een andere om deze toe te voegen of te verwijderen · Enter past toe"
+msgstr[1] "Spiegelen — as ingesteld · %d te spiegelen · klik op een andere om deze toe te voegen of te verwijderen · Enter past toe"
# AI Translated
msgid "Move — click the entities to move"
@@ -27354,8 +30140,10 @@ msgstr "Schetspunt"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d schetsentiteiten"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d schetsentiteit"
+msgstr[1] "%d schetsentiteiten"
# AI Translated
msgid "select something first"
@@ -27891,8 +30679,10 @@ msgid "Applied edit"
msgstr "Bewerking toegepast"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — typ een waarde en druk op Enter (of Bevestigen)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — typ een waarde en druk op Enter (of Bevestigen)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -27964,10 +30754,23 @@ msgstr "Naar printbed — het volumelichaam naar Voorbereiden sturen"
msgid "Nothing to commit — add a feature first"
msgstr "Niets om vast te leggen — voeg eerst een feature toe"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Ontwerplichaam %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Alle lichamen zijn verborgen — toon er een voordat u vastlegt"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Ontwerpassemblage"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Ontwerplichaam"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -28034,8 +30837,10 @@ msgstr "Ongeldig: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Voorvertoning — %zu driehoeken"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Voorvertoning — %zu driehoek"
+msgstr[1] "Voorvertoning — %zu driehoeken"
# AI Translated
#, c-format, boost-format
@@ -28137,8 +30942,10 @@ msgstr "Aan die maat kan niet worden voldaan — de schets is overbeperkt"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "%1% beperking(en) kunnen niet op deze geometrie werken (een ellips of splinecurve, of een cirkel met grootte nul) en worden genegeerd"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% beperking kan niet op deze geometrie werken (een ellips of splinecurve, of een cirkel met grootte nul) en wordt genegeerd"
+msgstr[1] "%1% beperkingen kunnen niet op deze geometrie werken (een ellips of splinecurve, of een cirkel met grootte nul) en worden genegeerd"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -28196,8 +31003,10 @@ msgstr "Afschuining: de afstand reikt voorbij een van de benen, of de twee lijne
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "%1% beperking(en) die door de afronding/afschuining ongeldig werden, zijn verwijderd"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "%1% beperking die door de afronding/afschuining ongeldig werd, is verwijderd"
+msgstr[1] "%1% beperkingen die door de afronding/afschuining ongeldig werden, zijn verwijderd"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -28217,8 +31026,10 @@ msgstr "Het aantal kopieën moet een geheel getal van 2 of meer zijn"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "%1% beperking(en) opgeheven door de transformatie"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "%1% beperking opgeheven door de transformatie"
+msgstr[1] "%1% beperkingen opgeheven door de transformatie"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -28369,11 +31180,6 @@ msgstr "Oppervlak verdikken"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Oppervlak verdikken vereist een oppervlaklichaam — maak er eerst een met een oppervlakgereedschap"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Gat"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -28458,11 +31264,6 @@ msgstr "Cirkelvormig patroon"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Het lichaam herhalen rond een as — stel het aantal en de hoekomvang in"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Spiegelen"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -28499,11 +31300,6 @@ msgstr "Uitlijnen vereist een lichaam — voeg er eerst een toe of importeer er
msgid "Align the body to a picked face or plane"
msgstr "Het lichaam uitlijnen op een gekozen vlak of referentievlak"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Vlak"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -28609,11 +31405,6 @@ msgstr "Lichaam verwijderen"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Dit hele lichaam verwijderen — verwijdert de feature waaruit het is gemaakt"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Lijn"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -28928,214 +31719,6 @@ msgstr "Dit lettertype heeft geen omtrek voor deze tekst"
msgid "Size: %.1f × %.1f mm"
msgstr "Grootte: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Primitief"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Lege mesh gegenereerd"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Blok"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Snel:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Breedte (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Diepte (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Hoogte (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "R onder"
-
-# AI Translated
-msgid "Top R"
-msgstr "R boven"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "Grote R"
-
-# AI Translated
-msgid "Minor R"
-msgstr "Kleine R"
-
-# AI Translated
-msgid "All edges"
-msgstr "Alle randen"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Bovenranden"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Onderranden"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Zijranden"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Meshresolutie"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Vorm toevoegen"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Geen buitenprofiel"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Kan het buitenvlak niet maken"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Kan het vlak met gaten niet opbouwen"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Wentelen mislukt"
-
-# AI Translated
-msgid "Profile"
-msgstr "Profiel"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Nieuw profiel beginnen (voor gaten)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segmenten"
-
-# AI Translated
-msgid "Sides"
-msgstr "Zijden"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Klik op het canvas om te tekenen"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Uitlijnen op raster"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Rasterstap"
-
-# AI Translated
-msgid "Outer"
-msgstr "Buiten"
-
-# AI Translated
-msgid "closed"
-msgstr "gesloten"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% punten %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (boven)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (voor)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (zijkant)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Wentelhoek (°)"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "Zet op 0 om te extruderen, >0 om te wentelen"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Uitsparing (snijden)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu gesloten profiel"
-msgstr[1] "%zu gesloten profielen"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Teken een gesloten profiel om dit in te schakelen"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Alles wissen"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Leeg resultaat"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Extruderen: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Wentelen: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Geen object geselecteerd"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Vlak mislukt"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Vlak met gaten mislukt"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Gereedschapsmesh leeg"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Uitsparing toegevoegd (negatief volume)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Uitsparing: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -29260,6 +31843,10 @@ msgstr "Gizmo monteren"
msgid "Gizmo brim ears"
msgstr "Gizmo rand oren"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Gizmo textuurverplaatsing schilderen"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Verticale schuifregelaar - Actieve thumb omhoog bewegen"
@@ -29499,6 +32086,12 @@ msgstr "vereist aan beide kanten een cilindrisch vlak — connector %1% ligt op
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "vereist aan beide kanten een cilindrisch vlak — connector %1% ligt op een gebogen vlak"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (basisvlak ontbreekt)"
+
# AI Translated
msgid "two points are coincident"
msgstr "twee punten vallen samen"
@@ -29527,10 +32120,31 @@ msgstr "vlakken zijn evenwijdig (geen snijlijn)"
msgid "zero-length direction"
msgstr "richting met lengte nul"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "een feature werkt op lichaam %1%, dat op dat punt in de geschiedenis niet bestaat"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "\"%1%\" werkt op een lichaam dat is gemaakt door een feature die is verwijderd of verborgen"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "\"%1%\" werkt op een lichaam dat op dat punt in de geschiedenis niet bestaat"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "feature wordt gebruikt door een latere feature"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "\"%1%\" gebruikt \"%2%\", dus het kan er niet voor komen"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "schetsentiteiten vormen geen gesloten lus"
@@ -29541,9 +32155,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Open bij (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...en nog %1% open uiteinde(n)"
+msgid "Open ends not shown: %1%"
+msgstr "Open uiteinden niet getoond: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "wentelen: de aslijn staat niet meer in de schets — kies de as opnieuw"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "wentelen: de aslijn heeft geen lengte"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -29691,6 +32314,30 @@ msgstr "gatcontour mislukt"
msgid "hole cut failed"
msgstr "snijden van gat mislukt"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "schroefdraad: de diameter moet minstens 1 mm zijn"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "schroefdraad: de spoed moet groter zijn dan 0.1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "schroefdraad: de diepte moet tussen 0 en 0.7 x de spoed liggen"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "schroefdraad: de diepte is te groot voor deze diameter"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "schroefdraad: de lengte moet groter zijn dan een halve spoed"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "schroefdraad: te veel windingen (lengte / spoed moet kleiner blijven dan 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "binnenschroefdraad vereist een lichaam"
@@ -29751,6 +32398,22 @@ msgstr "delete_face mislukt"
msgid "delete_face produced no geometry"
msgstr "delete_face leverde geen geometrie op"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "booleaans: geen doellichaam"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "booleaans: geen gereedschapslichaam — kies een tweede lichaam"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "booleaans: het doel en het gereedschap zijn hetzelfde lichaam"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "booleaans: een lichaam heeft geen geometrie"
+
# AI Translated
msgid "boolean operation failed"
msgstr "booleaanse bewerking mislukt"
@@ -30078,6 +32741,10 @@ msgstr "Modelafbeeldingen"
msgid "Auxiliaries"
msgstr "Hulpbestanden"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Band-spoeltoren"
+
# AI Translated
msgid "Project Filament List"
msgstr "Projectfilamentlijst"
@@ -30112,8 +32779,18 @@ msgstr "Voor ontleding zijn minstens twee filamenten van hetzelfde materiaaltype
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "De materiaallijst ondersteunt maximaal %1% kleuren. Na ontleding van %2% zou het aantal materialen %1% overschrijden. Verwijder ongebruikte filamenten in het hoofdscherm voordat u ontleedt."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "De materiaallijst ondersteunt maximaal %1% kleur. Na ontleding van de materiaallijst zou het aantal materialen %1% overschrijden. Verwijder ongebruikte filamenten in het hoofdscherm voordat u ontleedt."
+msgstr[1] "De materiaallijst ondersteunt maximaal %1% kleuren. Na ontleding van de materiaallijst zou het aantal materialen %1% overschrijden. Verwijder ongebruikte filamenten in het hoofdscherm voordat u ontleedt."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "De materiaallijst ondersteunt maximaal %1% kleur. Na ontleding van %2% zou het aantal materialen %1% overschrijden. Verwijder ongebruikte filamenten in het hoofdscherm voordat u ontleedt."
+msgstr[1] "De materiaallijst ondersteunt maximaal %1% kleuren. Na ontleding van %2% zou het aantal materialen %1% overschrijden. Verwijder ongebruikte filamenten in het hoofdscherm voordat u ontleedt."
# AI Translated
msgid "Cyan"
@@ -30143,6 +32820,13 @@ msgstr "Groen"
msgid "Blue"
msgstr "Blauw"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -30150,7 +32834,1235 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "De huidige filamentlijst bevat geen %s. Een projectfilament dat het gemengde filament nodig heeft, wordt na de ontleding automatisch aangemaakt."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "De huidige filamentlijst bevat geen %s. Een projectfilament dat het gemengde filament nodig heeft, wordt na de ontleding automatisch aangemaakt."
+msgstr[1] "De huidige filamentlijst bevat geen %s. Projectfilamenten die het gemengde filament nodig heeft, worden na de ontleding automatisch aangemaakt."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Dekking"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -30246,10 +34158,6 @@ msgstr "Mijn instellingen"
msgid "Custom Printer Setup"
msgstr "Aangepaste printer instellen"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Aangepaste printer"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Een aangepast printerprofiel definiëren"
@@ -30517,6 +34425,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Bakken"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Een exacte waarde in een schuifregelaar typen"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Bewerkpictogram aan het rechteruiteinde van een schuifregelaar"
+
# AI Translated
msgid "Texture displacement"
msgstr "Textuurverplaatsing"
@@ -30653,6 +34569,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Textuur verwijderen"
+# AI Translated
+msgid "Adjust image"
+msgstr "Afbeelding aanpassen"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Helderheid"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Contrast"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Scherpte"
+
+# AI Translated
+msgid "Blur"
+msgstr "Vervagen"
+
+# AI Translated
+msgid "Hue"
+msgstr "Tint"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Haalt de fijnste details uit de afbeelding naar voren. Wordt toegepast na Vervagen, dus beide kunnen samen worden gebruikt: vervaag de ruis en maak daarna de resterende randen scherper."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Vervaagt de afbeelding zelf. De eigen schuifregelaar Gladmaken van de laag maakt het reliëf zachter zonder de afbeelding te wijzigen en is de eerste keuze."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Deze textuur is in grijswaarden, dus er is geen tint om te verschuiven."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Het model wordt bijgewerkt zodra u een schuifregelaar loslaat. \"Opslaan als kopie\" schrijft de aangepaste afbeelding naar uw textuurbibliotheek en laat deze laag ernaar verwijzen."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Opslaan als kopie"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Laag voor textuurverplaatsing verwijderen"
@@ -30789,6 +34749,15 @@ msgstr "Schrijf elke vastgelegde fase weg als OBJ-bestand, zodat ze naast elkaar
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Het geschilderde gebied kon niet naar het geremeshte model worden overgezet, dus er is niets gewijzigd. Schakel over naar de Pro-modus en remesh vóór het schilderen."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Bereik: %1% tot %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Typ een waarde in plaats van te slepen. Ctrl+klik op de schuifregelaar doet hetzelfde."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -30895,8 +34864,8 @@ msgid "Click a triangle to paint it"
msgstr "Klik op een driehoek om deze te schilderen"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Vereist dat de actieve laag is toegewezen met Uitvouwen (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Alleen voor een laag die met Uitvouwen (LSCM) is gemapt - stel Mapping van de actieve laag in op Uitvouwen om deze weergave te gebruiken."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -30911,16 +34880,16 @@ msgid "Checker"
msgstr "Dambord"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Dambord - een testraster in plaats van de textuur. Waar de vakjes vierkant blijven, is de textuur niet vervormd; waar ze uitrekken, rekt de textuur ook uit"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Dambord - een testraster in plaats van de textuur. Waar de vierkantjes vierkant blijven, is de textuur onvervormd; waar ze uitrekken, doet de textuur dat ook. Opent de UV-editor als die gesloten is"
# AI Translated
msgid "Distortion"
msgstr "Vervorming"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Vervorming - heatmap van blauw tot rood die de uitrekking over de uitvouwing toont"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Vervorming - een heatmap van blauw naar rood die de uitrekking over het uitgevouwen gebied toont. Opent de UV-editor als die gesloten is"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -30946,6 +34915,10 @@ msgstr "Kies een andere afbeelding voor deze laag. Het schilderwerk, de diepte e
msgid "not painted"
msgstr "niet geschilderd"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Helderheid, contrast, scherpte, vervagen en tint, direct zichtbaar op de afbeelding en op het model terwijl u ze instelt. \"Opslaan als kopie\" schrijft het resultaat naar uw textuurbibliotheek en laat deze laag ernaar verwijzen."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Omhoog - eerder toegepast"
@@ -30966,10 +34939,20 @@ msgstr "Hoogte van het reliëf: hoe ver wit in de textuur het oppervlak optilt,
msgid "Tile size"
msgstr "Tegelgrootte"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Gekoppeld via de eigen UV-indeling van het model, die al de plaatsing bepaalt: één kopie van de textuur bedekt het model precies, dus er is geen tegelgrootte in te stellen."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Hoe breed één kopie van de textuur op het model is. Kleiner herhaalt het patroon vaker en maakt het detail fijner; met Tegelen uit is dit de grootte van de enkele kopie."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Draait de textuur op het oppervlak, in graden - om een patroon uit te lijnen met een rand van het model."
@@ -31037,28 +35020,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Wisselt twee filamenten af om de tussenliggende kleuren na te bootsen, zodat een handvol filamenten een foto of kleurverloop kan weergeven. Een afbeelding met egale kleuren print hoe dan ook hetzelfde. Uit gebruikt één filament per gebied."
# AI Translated
-msgid "Mix by"
-msgstr "Mengen per"
+msgid "Mixed colors"
+msgstr "Gemengde kleuren"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Oppervlak"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Het maximale aantal gemengde filamenten dat bij het bakken mag worden toegevoegd. Ze worden gekozen uit de kleuren van de textuur, en alleen de filamenten die bij het bakken daadwerkelijk worden gebruikt, worden aangemaakt."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Lagen: de twee filamenten wisselen elkaar af tussen printlagen, wat vloeiend mengt op staande oppervlakken maar verdwijnt op horizontale oppervlakken, waar een hele laag één band is.\n"
-"Oppervlak: een fijn dambordpatroon over het oppervlak, dat onder elke hoek werkt maar eerder als textuur dan als menging kan overkomen.\n"
-"Automatisch: lagen op staande vlakken; horizontale vlakken krijgen het dichtstbijzijnde enkele filament, omdat een dambordpatroon daar als patroon zichtbaar wordt."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% printbare kleuren uit %2% filamenten"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "uit %1% filament"
+msgstr[1] "uit %1% filamenten"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% printbare kleur %2%"
+msgstr[1] "%1% printbare kleuren %2%"
# AI Translated
msgid "Denoise"
@@ -31109,6 +35098,18 @@ msgstr "Vanuit aanzicht"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Vanuit aanzicht - projecteert recht op het geschilderde gebied vanuit uw kijkrichting, zoals een diaprojector."
+# AI Translated
+msgid "Model UV"
+msgstr "Model-UV"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "Model-UV - gebruikt de textuurcoördinaten die bij het model zelf horen, zodat een textuur die voor dat model is gemaakt precies terechtkomt waar die is geschilderd. Er wordt niets uitgevouwen en Tegelgrootte is niet van toepassing: de eigen indeling van het model is de plaatsing."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Dit model heeft geen eigen textuurcoördinaten. Alleen een model dat met een UV-kanaal is geïmporteerd - bijvoorbeeld een getextureerde OBJ - kan daarmee worden gekoppeld."
+
# AI Translated
msgid "Open UV editor"
msgstr "UV-editor openen"
@@ -31123,8 +35124,10 @@ msgstr "Nog niet uitgevouwen"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% eilanden"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% eiland"
+msgstr[1] "%1% eilanden"
# AI Translated
msgid "Capture current view"
@@ -31154,10 +35157,6 @@ msgstr "Projectiekader"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Opent een venster dat u over het model sleept. Alles wat u erdoorheen kunt zien, krijgt de textuur, en de rand ervan wordt de rand van de projectie."
-# AI Translated
-msgid "Opacity"
-msgstr "Dekking"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Hoe ondoorzichtig het kadervenster eruitziet terwijl u het plaatst. Verlaag dit om het model erdoorheen te zien; het heeft geen invloed op het resultaat."
@@ -31211,6 +35210,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Toevoegen"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Overschrijven"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -31230,8 +35234,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "De basislaag heeft niets eronder om mee te combineren, dus deze wordt altijd toegevoegd."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Wat deze laag doet waar deze de onderliggende lagen overlapt. Toevoegen en Aftrekken stapelen reliëf op of snijden het weg. Vermenigvuldigen en Delen schalen wat eronder ligt, waardoor deze laag een masker daarover wordt - daar werkt Diepte als sterkte, en bij 1 mm blijven witte gebieden onaangetast."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Wat deze laag doet waar deze de onderliggende lagen overlapt. Toevoegen en Aftrekken stapelen reliëf op of snijden het weg. Overschrijven vervangt de lagen eronder, zodat alleen het reliëf van deze laag overblijft waar het is geschilderd. Vermenigvuldigen en Delen schalen wat eronder ligt, waardoor deze laag een masker daarover wordt - daar werkt Diepte als sterkte, en bij 1 mm blijven witte gebieden onaangetast."
# AI Translated
msgid "Adjust placement"
@@ -31255,8 +35259,10 @@ msgstr "Meer instellingen"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Alle %1% lagen gebruikt"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Alle %1% laag gebruikt"
+msgstr[1] "Alle %1% lagen gebruikt"
# AI Translated
msgid "Add layer"
@@ -31336,8 +35342,10 @@ msgstr "Driehoekenbudget: in te stellen met Driehoeken, hieronder."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Voorvertoning: %1% driehoeken"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Voorvertoning: %1% driehoek"
+msgstr[1] "Voorvertoning: %1% driehoeken"
# AI Translated
msgid "Steps"
@@ -31379,6 +35387,12 @@ msgstr "Remeshen"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Driehoeksgrootte waarmee het hele model opnieuw wordt opgebouwd, in millimeters. Verplaatsing werkt het best op een gelijkmatige mesh; hiermee maakt u er een van een ongelijkmatige import."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Scherpe randen behouden"
@@ -31513,14 +35527,6 @@ msgstr "Vereist ongeveer %1% driehoeken, budget %2% - het bakken vereenvoudigt d
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Hoeveel duizend driehoeken de verfijning aan het model mag toevoegen. De driehoek die het slechtst past, wordt altijd eerst gesplitst, dus zelfs een run die alles opmaakt, heeft het besteed waar het het meest zichtbaar is. Verhoog het als het reliëf nog grof oogt."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Stopt het bakken. Wat al klaar was, blijft op het model en kan ongedaan worden gemaakt."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Sluit het gereedschap zonder te bakken. Uw schilderwerk, lagen en instellingen blijven bij het model."
-
# AI Translated
msgid "Preparing..."
msgstr "Voorbereiden..."
@@ -31545,35 +35551,56 @@ msgstr "Zet de geschilderde hoogtekaarten om in echte geometrie door de bestaand
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Zet de geschilderde hoogtekaarten om in echte geometrie. De mesh wordt eerst geremesht tot een gelijkmatige dichtheid en verfijnd waar de textuur buigt, zodat het detail hoekpunten heeft om op te landen - alles in één stap."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Stopt het bakken. Wat al klaar was, blijft op het model en kan ongedaan worden gemaakt."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Sluit het gereedschap zonder te bakken. Uw schilderwerk, lagen en instellingen blijven bij het model."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Model: %1% driehoeken - het bakken verfijnt tot de resolutie hierboven, tot aan het budget"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Model: %1% driehoek - het bakken verfijnt tot de resolutie hierboven, tot aan het budget"
+msgstr[1] "Model: %1% driehoeken - het bakken verfijnt tot de resolutie hierboven, tot aan het budget"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Bakken verplaatst bestaande hoekpunten - het model blijft op %1% driehoek"
+msgstr[1] "Bakken verplaatst bestaande hoekpunten - het model blijft op %1% driehoeken"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Bakken verplaatst bestaande hoekpunten - het model blijft op %1% driehoeken"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Bakresultaat tot ~%1% k driehoek"
+msgstr[1] "Bakresultaat tot ~%1% k driehoeken"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Bakresultaat tot ~%1% k driehoeken"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% lagen niet geschilderd, overgeslagen"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% laag niet geschilderd, overgeslagen"
+msgstr[1] "%1% lagen niet geschilderd, overgeslagen"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% niet geschilderd, overgeslagen"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% niet geschilderd, overgeslagen"
+msgstr[1] "%1% niet geschilderd, overgeslagen"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -31591,6 +35618,10 @@ msgstr "Textuurverplaatsing bewerken"
msgid "Choose SLA archive:"
msgstr "Kies SLA-archief:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "SL1 / SL1S-archiefbestanden"
+
# AI Translated
msgid "Import file"
msgstr "Bestand importeren"
@@ -31761,6 +35792,34 @@ msgstr "Filamentplug-ins"
msgid "Printer plugins"
msgstr "Printerplug-ins"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Deze voorinstelling gebruikt geen mogelijkheden van plug-ins"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Mogelijkheden die deze voorinstelling gebruikt"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Configuratie van mogelijkheid (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Plug-inconfiguratie"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "De overschrijving van deze voorinstelling verwerpen en weer de globale configuratie gebruiken"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Standaardwaarden herstellen"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "Ongeldige JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "De configuratie is geen geldige JSON. Uw wijzigingen zijn niet opgeslagen."
@@ -31780,10 +35839,6 @@ msgstr ""
"\n"
"Hiermee wordt de overschrijving in de voorinstelling verworpen en wordt de globale configuratie gebruikt."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Standaardwaarden herstellen"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Globale configuratie wordt gebruikt. Sla de voorinstelling op om dit permanent te maken."
@@ -31809,10 +35864,6 @@ msgstr "Abonnement opzeggen"
msgid "Overwrite Plugin"
msgstr "Plug-in overschrijven"
-# AI Translated
-msgid "Show in folder"
-msgstr "Weergeven in map"
-
# AI Translated
msgid "Reinstall"
msgstr "Opnieuw installeren"
@@ -31821,6 +35872,10 @@ msgstr "Opnieuw installeren"
msgid "Delete cache and reload"
msgstr "Cache verwijderen en opnieuw laden"
+# AI Translated
+msgid "No description."
+msgstr "Geen beschrijving."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Selecteer een .py- of .whl-plug-inpakket."
@@ -31853,6 +35908,293 @@ msgstr "Plug-in wordt geïnstalleerd"
msgid "Installed \"%s\"."
msgstr "\"%s\" geïnstalleerd."
+# AI Translated
+msgid "Search plugins"
+msgstr "Plug-ins zoeken"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Zoekopdracht wissen"
+
+# AI Translated
+msgid "Match case"
+msgstr "Hoofdlettergevoelig"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Alleen hele woorden"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Meer installatieopties voor plug-ins"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Plug-in installeren"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Lokale plug-in installeren"
+
+# AI Translated
+msgid "Activate"
+msgstr "Activeren"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Sorteren op naam"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Sorteren op versie"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Plug-inversie"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Sorteren op bron"
+
+# AI Translated
+msgid "Source"
+msgstr "Bron"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Sorteren op status"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Status"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Sleep om het formaat te wijzigen; dubbelklik om te herstellen"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Formaat van de plug-inlijst wijzigen"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Plug-indetails"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Plug-ininfo"
+
+# AI Translated
+msgid "Description"
+msgstr "Beschrijving"
+
+# AI Translated
+msgid "Config"
+msgstr "Configuratie"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Wijzigingslog"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnostiek"
+
+# AI Translated
+msgid "Types"
+msgstr "Typen"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Geïnstalleerde versie"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Nieuwste versie"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Bijwerken naar de nieuwste versie"
+
+# AI Translated
+msgid "No description available"
+msgstr "Geen beschrijving beschikbaar"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Selecteer een plug-in om de mogelijkheden ervan te configureren"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Configureerbare mogelijkheden"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "De voor deze mogelijkheid opgeslagen instellingen verwerpen en de standaardwaarden van de plug-in herstellen"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Wijzigingslog van plug-in"
+
+# AI Translated
+msgid "Date"
+msgstr "Datum"
+
+# AI Translated
+msgid "Changes"
+msgstr "Wijzigingen"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Geen wijzigingslog beschikbaar"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Geen problemen gedetecteerd"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Geen plug-ins gevonden"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Geen plug-ins komen overeen met \"%s\""
+
+# AI Translated
+# Needs human review: Plugin source value for plugins the user owns (Plugins dialog, next to Geabonneerd/Verweesd/Lokaal); check 'Eigen' reads right there.
+msgid "Mine"
+msgstr "Eigen"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Geabonneerd"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Verweesd"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Lokaal"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Sommige mogelijkheden van plug-ins zijn ingeschakeld"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Mogelijkheden van %s inklappen"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Mogelijkheden van %s uitklappen"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Mogelijkheden inklappen"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Mogelijkheden uitklappen"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Deze plug-in openen in uw browser"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Mogelijkheden: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Mogelijkheden"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "\"%s\" uitvoeren"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "%s inschakelen"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Niet geautoriseerd voor updates"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Plug-in wordt geladen…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Deze plug-in biedt geen mogelijkheden"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Activeer deze plug-in om de mogelijkheden ervan te configureren"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Bekijk hier op OrcaCloud"
+
+# AI Translated
+msgid "Activated"
+msgstr "Geactiveerd"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Runtimefout"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Inactief"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Deze plug-in is actief en klaar voor gebruik."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Deze plug-in wordt nog geladen."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Deze plug-in is geblokkeerd totdat de fout is verholpen."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Deze plug-in is geladen, maar een mogelijkheid heeft een fout gemeld."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Deze plug-in is inactief. Activeer hem om hem te installeren of te laden."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Selecteer een plug-in om de status en details ervan te bekijken."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Verweesd: u bent niet langer op deze plug-in geabonneerd of hij is niet meer beschikbaar in OrcaCloud. De lokale kopie blijft geïnstalleerd en kan nog steeds worden gebruikt."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Er is een nieuwere versie van de plug-in beschikbaar."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Cloudupdates zijn niet beschikbaar omdat deze plug-in niet geautoriseerd is voor updates."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -32069,6 +36411,70 @@ msgstr "Herladen van de plug-in is mislukt."
msgid "Reloaded \"%s\"."
msgstr "\"%s\" herladen."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Printerverbinding"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Stel uw printerverbinding in om het apparaat te bekijken."
+
+# AI Translated
+msgid "No model information"
+msgstr "Geen modelinformatie"
+
+# AI Translated
+msgid "Edit Project Info"
+msgstr "Projectinfo bewerken"
+
+# AI Translated
+msgid "Model Information"
+msgstr "Modelinformatie"
+
+# AI Translated
+msgid "Accessories"
+msgstr "Accessoires"
+
+# AI Translated
+msgid "Profile Information"
+msgstr "Profielinformatie"
+
+# AI Translated
+msgid "Model name"
+msgstr "Modelnaam"
+
+# AI Translated
+msgid "Created by"
+msgstr "Gemaakt door"
+
+# AI Translated
+msgid "Remixed by"
+msgstr "Geremixt door"
+
+# AI Translated
+msgid "Shared by"
+msgstr "Gedeeld door"
+
+# AI Translated
+msgid "Model description"
+msgstr "Modelbeschrijving"
+
+# AI Translated
+msgid "BOM"
+msgstr "Stuklijst"
+
+# AI Translated
+msgid "Profile name"
+msgstr "Profielnaam"
+
+# AI Translated
+msgid "Profile Author"
+msgstr "Profielauteur"
+
+# AI Translated
+msgid "Profile description"
+msgstr "Profielbeschrijving"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Instellingen spoelmodus"
@@ -32093,6 +36499,19 @@ msgstr "Vermindert prime-afval en print sneller. Kan lichte kleurvermenging of k
msgid "Terminal"
msgstr "Terminal"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... of uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Plug-interminal gereed."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Proces afgesloten met code: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Er wordt al een opdracht uitgevoerd."
@@ -32139,8 +36558,10 @@ msgstr "Nieuwe gemengde filamenten"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Het project ondersteunt maximaal %d filamenten. Extra filamenten worden genegeerd."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Het project ondersteunt maximaal %d filament. Extra filamenten worden genegeerd."
+msgstr[1] "Het project ondersteunt maximaal %d filamenten. Extra filamenten worden genegeerd."
# AI Translated
msgid "Import Model"
@@ -32227,8 +36648,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Berekening mislukt. Pas de parameters aan en probeer het opnieuw."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "De mesh heeft niet-manifold geometrie of open grenzen. U kunt het model ongewijzigd importeren of het vóór het importeren repareren met de 3D-reparatieservice van Windows."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "De mesh heeft niet-manifold geometrie of open grenzen. U kunt het model ongewijzigd importeren of het vóór het importeren repareren."
# AI Translated
msgid "Mesh repair"
@@ -32242,14 +36663,6 @@ msgstr "Importeren zonder reparatie"
msgid "Repair and import"
msgstr "Repareren en importeren"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Let op: de mesh heeft niet-manifold geometrie of open grenzen."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Meshprobleem"
-
# AI Translated
msgid "The selected image is empty."
msgstr "De geselecteerde afbeelding is leeg."
@@ -32258,6 +36671,14 @@ msgstr "De geselecteerde afbeelding is leeg."
msgid "Failed to prepare the texture for use."
msgstr "Voorbereiden van de textuur voor gebruik is mislukt."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Kon de map voor geïmporteerde texturen niet aanmaken."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Opslaan van de geïmporteerde textuur is mislukt."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Alleen uw eigen geïmporteerde texturen kunnen worden verwijderd."
@@ -32266,18 +36687,10 @@ msgstr "Alleen uw eigen geïmporteerde texturen kunnen worden verwijderd."
msgid "Could not delete the texture file."
msgstr "Kon het textuurbestand niet verwijderen."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Kon de map voor geïmporteerde texturen niet aanmaken."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Kon de geselecteerde afbeelding niet laden."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Opslaan van de geïmporteerde textuur is mislukt."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Kon het textuurbestand niet lezen."
@@ -32321,8 +36734,10 @@ msgstr "Kies Uitvouwen als toewijzing van een textuurlaag om de UV's ervan hier
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d hoekpunten geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d hoekpunt geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen"
+msgstr[1] "%d hoekpunten geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -32330,8 +36745,10 @@ msgstr "Hoekpuntmodus: sleep een hoekpunt om de vorm te wijzigen | Shift/Ctrl-
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d randen geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d rand geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen"
+msgstr[1] "%d randen geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -32339,8 +36756,10 @@ msgstr "Randmodus: sleep een eilandrand om de vorm te wijzigen | Shift/Ctrl-kl
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d eilanden geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen, R/S = primair eiland roteren/schalen"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d eiland geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen, R/S = primair eiland roteren/schalen"
+msgstr[1] "%d eilanden geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen, R/S = primair eiland roteren/schalen"
# AI Translated
#, c-format, boost-format
@@ -32359,6 +36778,10 @@ msgstr " | snappen AAN"
msgid "Change texture - choose another one from the texture library"
msgstr "Textuur wijzigen - kies een andere uit de textuurbibliotheek"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "De tegelgrootte van de actieve laag: hoeveel van het model één herhaling van de textuur bedekt. Het canvas wordt in tegels gemeten, dus één rastercel is één herhaling. Wijzig dit via Tegelgrootte in de instellingen van de laag."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Hoogtekaart - toon de textuur van de laag onder de eilanden"
@@ -32392,16 +36815,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Leg de uitvouwing uit als een verbonden net: stukken die een rand delen, worden naast elkaar uitgevouwen (een kubus wordt een samenhangende uitslag in plaats van zes losse vierkanten). Het blijven afzonderlijke eilanden, dus u kunt ze daarna nog steeds met de hand verplaatsen."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Eiland - verplaats, roteer en schaal hele eilanden"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Eiland - werk met hele eilanden. Klik op een eiland om het te selecteren en sleep dan om het te verplaatsen, sleep met de rechtermuisknop om het te roteren, of druk op R om te roteren en S om met de muis te schalen (klik of Enter om te bevestigen, Esc om te annuleren)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Hoekpunt - sleep hoekpunten om de vorm te wijzigen; Shift/Ctrl voor meervoudige selectie"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Hoekpunt - sleep hoekpunten om een eiland met de hand te vervormen; Shift voegt toe aan de selectie, Ctrl voegt er een toe aan of haalt er een uit."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Rand - sleep randen om de vorm te wijzigen; Shift/Ctrl voor meervoudige selectie"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Rand - sleep randen om een eiland met de hand te vervormen; Shift voegt toe aan de selectie, Ctrl voegt er een toe aan of haalt er een uit."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -32440,8 +36863,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Snappen - laat eilanden aan elkaar vastklikken wanneer u er een tegen een ander sleept"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Alle eilanden in beeld brengen (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Alle eilanden in beeld brengen, zodat ze allemaal zichtbaar zijn (Home of F).\n"
+"Elders op het canvas: scroll om rond de cursor te zoomen, en sleep met de middelste muisknop - of sleep in een lege ruimte - om te pannen."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Wat er geselecteerd is, en de exacte waarden van de verplaatsing, rotatie of schaling terwijl u er een sleept."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -32452,6 +36883,10 @@ msgstr "Geen laag toegewezen met Uitvouwen"
msgid "%.1f mm tile"
msgstr "%.1f mm-tegel"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Het paneel volgt de actieve textuurlaag, en die laag moet met Uitvouwen (LSCM) zijn gemapt. Voeg een laag toe en stel de Mapping ervan in op Uitvouwen."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Verouderd - het schilderwerk, de naden of de naadhoek zijn gewijzigd sinds deze uitvouwing is gemaakt. Druk hierop om opnieuw uit te vouwen."
@@ -32460,19 +36895,74 @@ msgstr "Verouderd - het schilderwerk, de naden of de naadhoek zijn gewijzigd sin
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Vouw het geschilderde gebied uit tot UV-eilanden. Dit wordt alleen berekend wanneer u hierop drukt, niet bij elke bewerking - schilder dus eerst, wijzig de naadhoek of markeer naden, en druk daarna op Uitvouwen."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Zet eerst Naden markeren aan - Pad is een snellere manier om ze te markeren."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Er zijn geen naden gemarkeerd op deze laag."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Er zijn geen eilanden met de hand vervormd, dus er is niets te verwerpen."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d eilanden, %s vlakken"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d eiland"
+msgstr[1] "%d eilanden"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s vlak"
+msgstr[1] "%s vlakken"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Hoe het geschilderde gebied uit het uitvouwen is gekomen: het aantal afzonderlijke stukken waarin het is gesneden (bij de naden en bij randen die scherper zijn dan de naadhoek), en hoeveel driehoeken ze in totaal bevatten."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Druk eerst op Uitvouwen - er zijn nog geen eilanden om mee te werken."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Klik eerst op een eiland op het canvas, in de modus Eiland."
+
+# AI Translated
+# Needs human review: Short badge for a published project. Kept as PUB (no common Dutch three-letter abbreviation for gepubliceerd); check it reads right and fits the badge.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "PUB"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Niet ingelogd"
+
+# AI Translated
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Bambu Network-plug-in niet gedetecteerd. Klik hier om deze te installeren."
+
+# AI Translated
+msgid "Create new project"
+msgstr "Nieuw project maken"
+
+# AI Translated
+msgid "Recently opened"
+msgstr "Recent geopend"
+
+# AI Translated
+msgid "Open Containing Folder"
+msgstr "Bovenliggende map openen"
# AI Translated
msgid "Forward"
msgstr "Vooruit"
-# AI Translated
-msgid "Tools"
-msgstr "Extra"
-
# AI Translated
msgid "View Source"
msgstr "Bron weergeven"
@@ -32544,6 +37034,75 @@ msgstr "%1% laden naar %2%"
msgid "Load %s"
msgstr "%s laden"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Printeragent '%1%' kon niet worden ingeschakeld: agent-ID '%2%' is al geregistreerd door mogelijkheid '%3%' van plug-in '%4%'."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Printeragent '%1%' kon niet worden ingeschakeld: agent-ID '%2%' is al geregistreerd door '%3%'."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Bestand geüpload"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "G-code uploaden..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Print starten..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Print gestart"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Uploaden..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Versie van netwerkbibliotheek niet opgegeven"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Netwerkbibliotheek niet gevonden"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Laden van netwerkbibliotheek mislukt"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Netwerkbibliotheek kon niet worden geladen"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Een oudere plug-inserie. Functies die nieuwere plug-inondersteuning nodig hebben, zoals momentopnamen van printfouten in het foutdialoogvenster van het apparaat, zijn niet beschikbaar."
+
+# AI Translated
+msgid "unknown name"
+msgstr "onbekende naam"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"Plug-in \"%s\" vraagt leestoegang tot het bestandssysteem voor:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Plug-intoestemmingen"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -32558,37 +37117,61 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
-"Plug-in \"%s\" vraagt om de volgende bestand(en) te lezen:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"Plug-in \"%s\" vraagt om het volgende bestand te lezen:\n"
+"%s"
+msgstr[1] ""
+"Plug-in \"%s\" vraagt om de volgende bestanden te lezen:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
-"Plug-in \"%s\" vraagt om de volgende bestand(en) te lezen/schrijven:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"Plug-in \"%s\" vraagt om het volgende bestand te lezen/schrijven:\n"
+"%s"
+msgstr[1] ""
+"Plug-in \"%s\" vraagt om de volgende bestanden te lezen/schrijven:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
-"Plug-in \"%s\" vraagt om de volgende bestand(en) aan te maken:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"Plug-in \"%s\" vraagt om het volgende bestand aan te maken:\n"
+"%s"
+msgstr[1] ""
+"Plug-in \"%s\" vraagt om de volgende bestanden aan te maken:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
-"Plug-in \"%s\" vraagt om de volgende bestand(en) te verwijderen:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"Plug-in \"%s\" vraagt om het volgende bestand te verwijderen:\n"
+"%s"
+msgstr[1] ""
+"Plug-in \"%s\" vraagt om de volgende bestanden te verwijderen:\n"
"%s"
# AI Translated
@@ -32612,10 +37195,30 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"Plug-in \"%s\" vraagt om de volgende opdracht uit te voeren:\n"
+"%s"
+msgstr[1] ""
+"Plug-in \"%s\" vraagt om de volgende opdrachten uit te voeren:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "Plug-in \"%s\" vraagt toestemming om een thread aan te maken."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"Plug-in \"%s\" vraagt om de volgende opdracht(en) uit te voeren:\n"
+"Plug-in \"%s\" vraagt om de actieve applicatie te vervangen door:\n"
"%s"
# AI Translated
@@ -32627,6 +37230,46 @@ msgstr "Plug-in \"%s\" vraagt toestemming voor de Python-auditgebeurtenis \"%s\"
msgid "Plugin permission request"
msgstr "Toestemmingsverzoek van plug-in"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "De voorinstelling bevat ongeldige JSON voor de configuratie van plug-inmogelijkheden."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "De configuratie van plug-inmogelijkheden van de voorinstelling is geen array en kan niet worden bewerkt."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Printerverbinding"
+
+# AI Translated
+msgid "Pages"
+msgstr "Pagina's"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Analyse"
+
+# AI Translated
+msgid "Importer"
+msgstr "Importfunctie"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Exportfunctie"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Visualisatie"
+
+# AI Translated
+msgid "Script"
+msgstr "Script"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Slicepijplijn"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "De configuratie-UI van de plug-in was leeg. De standaardeditor wordt getoond."
@@ -32649,8 +37292,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "De configuratie kon niet naar de schijf worden geschreven. Er is niets gewijzigd."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Installatie van plug-in mislukt"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Installatie van plug-in mislukt: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: geïnstalleerde plug-in is niet gevonden in de catalogus."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "UUID ontbreekt in de sleutel van de cloudplug-in."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Abonneren op cloudplug-in mislukt; zie de logboeken voor meer informatie."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Alleen bij cloudplug-ins kan het abonnement worden opgezegd."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Abonnement op plug-in opzeggen mislukt; zie de logboeken voor meer informatie."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Ophalen van de download-URL van de plug-in mislukt (resultaat %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "U bent niet gemachtigd om deze cloudplug-in te downloaden."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Er is geen plug-inpakket beschikbaar voor dit besturingssysteem."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "De geselecteerde plug-inversie is niet gevonden."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "Plug-inversie %1% is niet gevonden."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Cloudplug-in is niet gevonden."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Download van cloudplug-in is niet gevonden: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Download van cloudplug-in is niet gevonden."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Er is geen download-URL beschikbaar voor deze plug-in. Controleer de logboeken op fouten."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Downloaden van plug-in mislukt: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Downloaden van plug-in mislukt met HTTP-status %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Download van plug-in leverde lege gegevens op."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Tijdelijk bestand voor het downloaden van de plug-in kon niet worden gemaakt."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Plug-ingegevens konden niet naar het tijdelijke bestand worden geschreven."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Plug-inmap kon niet worden bepaald: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Verwijderen van plug-inmap %1% mislukt: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Plug-inmap bestaat niet: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "Plug-inmap bevat meerdere .py-bestanden: %1% en %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "Plug-inmap bevat meerdere .whl-bestanden: %1% en %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "Plug-inmap bevat zowel .py- als .whl-startbestanden"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "Plug-inmap bevat geen .py- of .whl-startbestand"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Fout in plug-in '%1%' voor de slicepijplijn: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Plug-inpakket moet een .py- of .whl-bestand zijn, ontvangen: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Uitpakken van .whl-afhankelijkheid %1% van de plug-in mislukt: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Toevoegen van .whl-afhankelijkheid aan sys.path mislukt: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Python-interpreter niet geïnitialiseerd: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Plug-inmanifest is ongeldig: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Installeren van plug-inafhankelijkheden mislukt: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Laden van plug-inmodule mislukt: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Registratie van plug-in mislukt: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Plug-inmodule heeft geen mogelijkheden geregistreerd"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Plug-in declareert dubbele mogelijkheid '%1%' voor type %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Materialiseren van plug-inmogelijkheden mislukt: %1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "Materialiseren van plug-inmogelijkheden mislukt"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "on_load van plug-in mislukt: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "on_load van plug-in mislukt"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Plug-inpakket is geen bestand: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "UUID van cloudplug-in is geen geldige identifier: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Aanmaken van plug-inmap %1% mislukt: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Back-up maken van bestaande plug-in %1% mislukt: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Kopiëren van plug-inbestand naar %1% mislukt: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Schrijven van installatiestatus van plug-in mislukt: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Plug-inpakket is al geladen: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Botsing van mogelijkheden voor type %1% en naam '%2%'"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Dubbele plug-insleutel gevonden: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Plug-in wordt nog geladen"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Plug-in is ongeldig: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Plug-in niet gevonden: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Onverwachte fout bij het laden van plug-in: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Onverwachte fout bij het laden van plug-in"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Plug-inmanifest niet gevonden: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Ophalen van plug-ins uit de cloud mislukt. Zie de logboeken voor details."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Log in bij OrcaCloud om deze plug-in te installeren."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud heeft de geabonneerde cloudplug-in niet geretourneerd."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Downloaden van cloudplug-in mislukt."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Installeren van cloudplug-in mislukt."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Alleen cloudplug-ins kunnen worden bijgewerkt."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Er is geen update beschikbaar voor deze plug-in."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Het verwijderen van een plug-in buiten de bekende plug-inmappen wordt geweigerd."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Het bijwerken van een plug-in buiten de bekende plug-inmappen wordt geweigerd."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Kan plug-in niet lokaal houden: lokale plug-insleutel bestaat al: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Bijwerken van installatiestatus van plug-in mislukt: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Kan het abonnement op uw eigen plug-ins niet opzeggen."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Alleen cloudplug-ins kunnen worden verwijderd en opgezegd."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Kan het abonnement op uw eigen plug-ins niet opzeggen. Gebruik Verwijderen om de lokale bestanden te verwijderen."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Verzoek om leestoegang tot het bestandssysteem door de plug-in geweigerd"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -32684,6 +37663,10 @@ msgstr "samenvoegen bij tweezijdig extruderen mislukt"
msgid "imported regions produced no extrudable geometry"
msgstr "geïmporteerde gebieden leverden geen extrudeerbare geometrie op"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "het profiel kruist de wentelas — het moet aan één kant ervan liggen"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Wentelen mislukt"
@@ -32720,6 +37703,10 @@ msgstr "Vlak voor uitsparing mislukt"
msgid "Pocket cut failed"
msgstr "Snijden van uitsparing mislukt"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "het profiel kruist zichzelf of vouwt op zichzelf terug, en omsluit daardoor niet één gebied"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "schets heeft geen gesloten lus"
@@ -32752,10 +37739,26 @@ msgstr "mesh_to_brep: mesh bevat geen driehoeken"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: elke driehoek is als gedegenereerd afgewezen (probeer een kleinere tolerantie)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "de afrondingsstraal moet groter zijn dan 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "geen randen om af te ronden in die groep"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "afrondingsstraal te groot voor deze geometrie"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "de afschuinafstand moet groter zijn dan 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "geen randen om af te schuinen in die groep"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "afschuiningsafstand te groot voor deze geometrie"
@@ -32768,6 +37771,153 @@ msgstr "apply_fillet: OCCT-afronding mislukt"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: OCCT-afschuining mislukt"
+# AI Translated
+msgid "empty component list"
+msgstr "lege componentenlijst"
+
+# AI Translated
+msgid "empty component index"
+msgstr "lege componentindex"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "componentindex moet >= 1 zijn (kreeg %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "ongeldige componentindex \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "ten minste 2 componenten vereist (kreeg %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "dubbele componentindex %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "lege verhoudingswaarde"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "verhouding moet positief zijn (kreeg %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "ongeldige verhouding \"%1%\""
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "het aantal verhoudingen moet overeenkomen met het aantal componenten: verwacht %1%, kreeg %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "twee kommagescheiden floats verwacht, bijv. \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "begin- en eindverhoudingen moeten in (0, 1) liggen"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "arraygrootte %1% komt niet overeen met het aantal filamentslots %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "moet worden ingesteld wanneer parameters voor gemengd filament zijn opgegeven"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "slot %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "slot %1%: component %2% valt buiten bereik (hoogste fysieke filamentindex is %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "slot %1%: kan niet naar zichzelf verwijzen als component"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "slot %1%: component %2% verwijst naar een slot met gemengd filament"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "slot %1%: een verloop vereist precies 2 componenten"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "slot %1%: ongeldige curve (minstens 2 geldige controlepunten nodig)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Laden van configuratiebestand \"%1%\" mislukt: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Geen G-code-bestand dat door %1% is gegenereerd."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Config-tag \"%1%\" niet gevonden"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Verdacht laag aantal configuratiewaarden uit %1% gehaald: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Laden van STEP-bestand mislukt.\n"
+"Kan het bestand niet openen om te lezen.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "svg importeren mislukt: svg kon niet worden geopend."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "svg importeren mislukt: de geïmporteerde svg-gegevens konden niet worden geparseerd."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Aangepaste G-code meldt een negatieve z_retracted."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Aangepaste G-code meldt een negatieve z_restart_extra."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Kopiëren van map %1% naar %2% mislukt: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Authenticatie voltooid"
@@ -33214,6 +38364,1159 @@ msgstr ""
"Kromtrekken voorkomen\n"
"Wist je dat bij het printen van materialen die gevoelig zijn voor kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het warmtebed de kans op kromtrekken kan verkleinen?"
+# AI Translated
+#~ msgid "Please choose the filament color"
+#~ msgstr "Kies de filamentkleur"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Lijnbreedte van de brug. Als dit als % wordt uitgedrukt, wordt het berekend over de mondstukdiameter.\n"
+#~ "Aanbevolen in combinatie met een hogere brugdichtheid of een hogere flow verhouding voor bruggen.\n"
+#~ "\n"
+#~ "De maximale waarde is 100% of de mondstukdiameter.\n"
+#~ "Als dit op 0 wordt ingesteld, komt de lijnbreedte overeen met de breedte van de interne solide vulling."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Schakel deze optie in om af te remmen in gebieden waar perimeters omhoog gekruld kunnen zijn.\n"
+#~ "Zo wordt er extra afgeremd bij het printen van overhangen op scherpe hoeken, zoals de voorkant van de Benchy-romp, wat het omkrullen vermindert dat zich over meerdere lagen opstapelt.\n"
+#~ "\n"
+#~ "Het is over het algemeen aan te raden deze optie ingeschakeld te laten, tenzij de koeling van uw printer krachtig genoeg is of de printsnelheid laag genoeg is om omkrullen van perimeters te voorkomen. \n"
+#~ "Bij printen met een hoge snelheid voor de externe perimeter kan deze parameter tijdens het afremmen wandartefacten veroorzaken, doordat de mogelijk grote verschillen in printsnelheid ervoor zorgen dat de extruder de gevraagde flowverandering niet kan bijhouden.\n"
+#~ "De oorzaak van deze artefacten is meestal een licht afwijkende PA-afstelling, vooral in combinatie met een hoge PA-smoothtijd.\n"
+#~ "\n"
+#~ "Aanbevelingen bij het inschakelen van deze optie:\n"
+#~ "1. Verlaag de smoothtijd van Pressure Advance tot 0,015 - 0,02, zodat de extruder snel op de snelheidsveranderingen reageert.\n"
+#~ "2. Verhoog de minimale printsnelheden om de omvang van de vertraging te beperken en het verschil tussen snelle en trage segmenten te verkleinen.\n"
+#~ "3. Als er nog steeds artefacten optreden, schakel dan Extrusion Rate Smoothing (ERS) in om de flowovergangen verder af te vlakken.\n"
+#~ "\n"
+#~ "Let op: wanneer deze optie is ingeschakeld, worden overhangende perimeters als overhangen behandeld, wat betekent dat de overhangsnelheid wordt toegepast, zelfs als de overhangende perimeter deel uitmaakt van een brug.\n"
+#~ "Bijvoorbeeld: wanneer de perimeters voor 100% overhangen en er geen wand is die ze van onderaf ondersteunt, wordt de overhangsnelheid voor 100% toegepast."
+
+# AI Translated
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Snelheid van de extern zichtbare brugextrusies.\n"
+#~ "\n"
+#~ "Als bovendien Afremmen voor omgekrulde perimeters is uitgeschakeld of de klassieke overhangmodus is ingeschakeld, is dit de printsnelheid van overhangende wanden die voor minder dan 13% worden ondersteund, ongeacht of ze deel uitmaken van een brug of een overhang."
+
+# AI Translated
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Deze afzonderlijke instelling beïnvloedt de snelheid van perimeters met een straal <= small_perimeter_threshold (meestal gaten). Als dit als percentage wordt uitgedrukt (bijvoorbeeld: 80%), wordt het berekend op basis van de bovenstaande instelling voor de snelheid van de buitenste wand. Zet op nul voor automatisch."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Hetzelfde als \"Kleine perimeters\", maar voor ondersteuningen. Deze afzonderlijke instelling beïnvloedt de ondersteuningssnelheid voor gebieden <= `small_support_perimeter_threshold`. Als dit als percentage wordt uitgedrukt (bijvoorbeeld: 80%), wordt het berekend op basis van de bovenstaande instelling voor de snelheid van de ondersteuning of de ondersteuningsinterface. Zet op nul voor automatisch."
+
+# AI Translated
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Printvolgorde van de interne (binnenste) en externe (buitenste) wanden.\n"
+#~ "\n"
+#~ "Gebruik Binnen/Buiten voor de beste overhangen. Dat komt doordat de overhangende wanden tijdens het printen kunnen hechten aan een naastgelegen perimeter. Deze optie levert echter een iets mindere oppervlaktekwaliteit op, omdat de externe perimeter vervormt doordat hij tegen de interne perimeter wordt aangedrukt.\n"
+#~ "\n"
+#~ "Gebruik Binnen/Buiten/Binnen voor de beste afwerking van het buitenoppervlak en de beste maatnauwkeurigheid, omdat de buitenwand ongestoord door een interne perimeter wordt geprint. De prestaties bij overhangen nemen echter af, omdat er geen interne perimeter is om de buitenwand tegenaan te printen. Voor deze optie zijn minimaal 3 wanden nodig om effectief te zijn, omdat eerst de interne wanden vanaf de 3e perimeter worden geprint, daarna de externe perimeter en ten slotte de eerste interne perimeter. Deze optie wordt in de meeste gevallen aanbevolen boven de optie Buiten/Binnen.\n"
+#~ "\n"
+#~ "Gebruik Buiten/Binnen voor dezelfde voordelen op het gebied van kwaliteit van de buitenwand en maatnauwkeurigheid als bij de optie Binnen/Buiten/Binnen. De Z-naden zullen echter minder consistent lijken, omdat de eerste extrusie van een nieuwe laag op een zichtbaar oppervlak begint."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Dit is de snelheid voor de eerste laag behalve solide vulling (infill) delen"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Dit is de snelheid voor de solide vulling (infill) delen van de eerste laag."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Hiermee kan het vulgebied iets worden vergroot zodat het overlapt met de wanden voor een betere hechting. De percentagewaarde is relatief ten opzichte van de lijnbreedte van de dunne vulling (infill). Stel deze waarde in op ~10-15% om mogelijke overextrusie en materiaalophoping, die ruwe bovenoppervlakken veroorzaken, te beperken."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "Het gebied van de solide vulling aan de bovenzijde wordt iets vergroot zodat het met de wand overlapt voor een betere hechting en om speldenprikgaatjes waar de bovenvulling de wanden raakt zoveel mogelijk te voorkomen. Een waarde van 25-30% is een goed startpunt om speldenprikgaatjes te beperken. De percentagewaarde is relatief ten opzichte van de lijnbreedte van de dunne vulling (infill)."
+
+# AI Translated
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Vergrendeldiepte van een gesegmenteerd gebied. Dit wordt genegeerd als \"mmu_segmented_region_max_width\" nul is of als \"mmu_segmented_region_interlocking_depth\" groter is dan \"mmu_segmented_region_max_width\". Nul schakelt deze functie uit."
+
+# AI Translated
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Verlaag de hoogte van de perimeters van het bovenoppervlak zodat deze overeenkomt met de hoogte van de modelrand.\n"
+#~ "Heeft invloed op perimeters met een helling kleiner dan deze hoek (graden).\n"
+#~ "Een redelijke waarde is 35. Zet op 0 om uit te schakelen."
+
+# AI Translated
+#~ msgid "Role base wipe speed"
+#~ msgstr "Veegsnelheid op basis van het extrusietype"
+
+# AI Translated
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Een tochtscherm is nuttig om een ABS- of ASA-print te beschermen tegen kromtrekken en loskomen van het printbed door tocht. Meestal is dit alleen nodig bij printers met een open frame, dus zonder behuizing.\n"
+#~ "\n"
+#~ "Ingeschakeld = de skirt is even hoog als het hoogste geprinte object. Anders wordt 'Hoogte van de skirt' gebruikt.\n"
+#~ "Let op: met een actief tochtscherm wordt de skirt op de skirt-afstand van het object geprint. Als er randen actief zijn, kan hij daarmee overlappen. Verhoog de waarde voor de skirt-afstand om dit te voorkomen.\n"
+
+# AI Translated
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "De maximale printsnelheid bij het spoelen in het afveegblok en het printen van de dunne lagen van het afveegblok. Als bij het spoelen de snelheid van de dunne vulling (infill) of de uit de maximale volumetrische snelheid van het filament berekende snelheid lager is, wordt de laagste van beide gebruikt.\n"
+#~ "\n"
+#~ "Als bij het printen van de dunne lagen de snelheid van de interne perimeter of de uit de maximale volumetrische snelheid van het filament berekende snelheid lager is, wordt de laagste van beide gebruikt.\n"
+#~ "\n"
+#~ "Het verhogen van deze snelheid kan de stabiliteit van de toren beïnvloeden en de kracht vergroten waarmee het mondstuk botst met eventuele blobs die zich op het afveegblok hebben gevormd.\n"
+#~ "\n"
+#~ "Controleer, voordat u deze parameter boven de standaardwaarde van 90 mm/s verhoogt, of uw printer bij de hogere snelheden betrouwbaar kan overbruggen en of het druipen bij toolwissels goed onder controle is.\n"
+#~ "\n"
+#~ "Voor de externe perimeters van het afveegblok wordt ongeacht deze instelling de snelheid van de interne perimeter gebruikt."
+
+# AI Translated
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Type buitenwand van het afveegblok.\n"
+#~ "1. Rechthoek: het standaardwandtype, een rechthoek met vaste breedte en hoogte.\n"
+#~ "2. Kegel: een kegel met een afronding aan de onderkant om het afveegblok te helpen stabiliseren.\n"
+#~ "3. Rib: voegt vier ribben aan de wand van de toren toe voor extra stabiliteit."
+
+# AI Translated
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Extra flow die wordt gebruikt voor de spoellijnen op het afveegblok. Hierdoor worden de spoellijnen dikker of dunner dan ze normaal zouden zijn. De afstand wordt automatisch aangepast."
+
+# AI Translated
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Pas deze waarde aan om te voorkomen dat er korte, niet-gesloten wanden worden geprint, wat de printtijd kan verlengen. Hogere waarden verwijderen meer en langere wanden.\n"
+#~ "\n"
+#~ "LET OP: onder- en bovenoppervlakken worden niet door deze waarde beïnvloed, om zichtbare gaten aan de buitenzijde van het model te voorkomen. Pas 'Drempel voor één wand' in de geavanceerde instellingen hieronder aan om te bepalen wat als bovenoppervlak wordt beschouwd. 'Drempel voor één wand' is alleen zichtbaar als deze instelling boven de standaardwaarde van 0,5 staat of als bovenoppervlakken met één wand zijn ingeschakeld."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Splitsen in %1% onderdeel"
+#~ msgstr[1] "Splitsen in %1% onderdelen"
+
+#~ msgid "Repair failed"
+#~ msgstr "Repareren mislukt."
+
+#~ msgid "Repair canceled"
+#~ msgstr "Repareren geannuleerd"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Wat deze laag doet waar deze de onderliggende lagen overlapt. Toevoegen en Aftrekken stapelen reliëf op of snijden het weg. Vermenigvuldigen en Delen schalen wat eronder ligt, waardoor deze laag een masker daarover wordt - daar werkt Diepte als sterkte, en bij 1 mm blijven witte gebieden onaangetast."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "De mesh heeft niet-manifold geometrie of open grenzen. U kunt het model ongewijzigd importeren of het vóór het importeren repareren met de 3D-reparatieservice van Windows."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Let op: de mesh heeft niet-manifold geometrie of open grenzen."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Meshprobleem"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Repareren mislukt: mesh nog steeds open na het vullen van gaten."
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Kan geen logische bewerking toepassen op niet-booleaanse operatoren."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Uitlezen"
+
+# AI Translated
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Het aantal filamenten overschrijdt het maximale aantal dat het schildergereedschap ondersteunt. Alleen de eerste %1% filamenten zijn beschikbaar in het schildergereedschap."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Sneltoest "
+
+# AI Translated
+#~ msgid "Build Volume"
+#~ msgstr "Bouwvolume"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Objecten(%1%) hebben dubbele verbindingsstukken. Sommige verbindingsstukken ontbreken mogelijk in het sliceresultaat.\n"
+#~ "Meld aan het OrcaSlicer-team in welke situatie dit probleem zich voordeed.\n"
+#~ "Bedankt."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d driehoeken"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Bewegen)"
+
+# AI Translated
+#~ msgid " (Fixed)"
+#~ msgstr " (Vast)"
+
+# AI Translated
+#~ msgid "Filament "
+#~ msgstr "Filament "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "hotend"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Rangschikken "
+
+#~ msgid "Orienting"
+#~ msgstr "Oriënteren"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Centreer alle assen (klik"
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") om de positie van de gereedschapskop te bepalen. Dit voorkomt dat het apparaat de printbare grens overschrijdt en dat apparatuur slijt."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "%1%g meer filament en %2% meer wissels ten opzichte van de optimale groepering."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "%1%g meer filament en %2% wissels minder ten opzichte van de optimale groepering."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "%1%g minder filament en %2% wissels meer ten opzichte van de optimale groepering."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "%1%g filament en %2% wissels minder ten opzichte van een printer met één mondstuk."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "%1%g minder filament en %2% wissels meer ten opzichte van een printer met één mondstuk."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "%1%g meer filament en %2% wissels minder ten opzichte van een printer met één mondstuk."
+
+# AI Translated
+#~ msgid "number keys"
+#~ msgstr "cijfertoetsen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Filamenten %s zijn in de %s geplaatst, maar het gegenereerde G-code-pad valt buiten het printbare bereik van de %s."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Filamenten %s zijn in de %s geplaatst, maar het gegenereerde G-code-pad overschrijdt de printbare hoogte van de %s."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Filamenten %s kunnen niet rechtstreeks op het oppervlak van dit printbed worden geprint."
+
+# AI Translated
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "wordt gesloten voordat een nieuw model wordt gemaakt. Wilt u doorgaan?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "In de wachtrij voor cloud-slicing staan %s taken vóór u."
+
+#~ msgid " upload failed"
+#~ msgstr "uploaden mislukt"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " upload config prase mislukt\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Geen bijbehorende opslag bucket\n"
+
+# AI Translated
+#~ msgid " cannot be opened\n"
+#~ msgstr " kan niet worden geopend\n"
+
+# AI Translated
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Uw beoordeling kan om de volgende redenen niet worden geüpload:\n"
+#~ "\n"
+#~ " foutcode: "
+
+#~ msgid "error message: "
+#~ msgstr "foutmelding: "
+
+# AI Translated
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Wilt u worden doorgestuurd naar de webpagina om een beoordeling te geven?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (procesvoorinstelling: %1%)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "Het %s-mondstuk kan %s niet printen."
+
+# AI Translated
+#~ msgid " nozzle"
+#~ msgstr " mondstuk"
+
+# AI Translated
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Het wordt afgeraden de volgende filament(en) met %1% te printen: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " printbed %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Alle %1% gemengde filamenten verwijderen?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Wilt u deze vervangen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Conflict in bedtemperatuur: T%d (%s) stelt het printbed in op %d°C — T%d (%s) vereist %d°C. Het primaire gereedschap regelt het printbed; secundaire gereedschappen printen op de temperatuur die het instelt."
+
+# AI Translated
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Er zijn geen versnellingen opgegeven voor de kalibratie. De standaard versnellingswaarde wordt gebruikt "
+
+# AI Translated
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Er zijn geen snelheden opgegeven voor de kalibratie. De standaard optimale snelheid wordt gebruikt "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Er is geen temperatuurtoren voor de band beschikbaar voor het bereik %1% tot %2% °C. Gebruik een bereik dat de torenmodellen dekken, bijvoorbeeld 230 tot 190."
+
+#~ msgid "The selected file"
+#~ msgstr "Het geselecteerde bestand"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "Bevat geen geldige G-code"
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "met OrcaSlicer zodat Orca modellen kan openen van"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Kost %dg filament en %d wissels meer dan de optimale groepering."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Parameters met dit pictogram kunnen per mondstuk worden ingesteld."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Gereserveerde zoekworden gevonden"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d Filament Preset en %d Process Preset zijn gekoppeld aan deze printer. Deze voorinstellingen worden verwijderd als de printer wordt verwijderd."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "De volgende voorinstellingen erven van deze voorinstelling."
+#~ msgstr[1] "De volgende voorinstelling erft van deze voorinstelling."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% Voorinstelling"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Weet u zeker dat u de geselecteerde preset wilt %1%?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Splitsen in %1% onderdelen"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Nieuwe leveranciersprofielen downloaden: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Downloaden van leveranciersprofielen mislukt: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "In deze Span-modus wordt alleen met %1% in kleur geprint, maar filament %2% is aan geen enkel gereedschap gekoppeld. Gebruik filamenten die aan %1% zijn gekoppeld, of zet dit printbed in de modus Primair."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "In deze Span-modus wordt alleen met %1% in kleur geprint, maar filament %2% is gekoppeld aan T%3%. Gebruik filamenten die aan %1% zijn gekoppeld, of zet dit printbed in de modus Primair."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr "is te dicht bij het uitsluitingsgebied, er botsingen optreden tijdens het printen."
+
+# AI Translated
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " ligt te dicht bij het gebied voor klontdetectie; er kunnen botsingen optreden tijdens het printen."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Prime toren"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr "staat te dicht bij andere objecten en er kunnen botsingen worden veroorzaakt.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " bevindt zich te dicht bij het uitsluitingsgebied en er zullen botsingen worden veroorzaakt.\n"
+
+# AI Translated
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " ligt te dicht bij het gebied voor klontdetectie, waardoor er botsingen zullen ontstaan.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " ligt gedeeltelijk buiten het printbare gebied en kan niet worden geprint.\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "geen geconfigureerd gereedschap"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "Voeg een eind G-code toe bij het afwerken van de hele print."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Maximale X snelheid"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Maximale Y snelheid"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Maximale Z snelheid"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Maximale E snelheid"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Python-plug-in(s) die bij elke stap van de slicepijplijn worden aangeroepen om tussentijdse slicegegevens te lezen en te wijzigen, inclusief een afsluitende nabewerkingsstap voor de G-code. Onderzoek/experimenteel."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Indien ingeschakeld genereert de slicer G-code waarin de inhoud van de primaire zone gecentreerd is op de oorsprong van het printbed (0,0). De printerfirmware is verantwoordelijk voor het plaatsen van kopieën/spiegelingen op elke fysieke zonepositie. Schakel dit alleen in op printers waarvan de firmware zelf zoneverschuivingen toepast in de kopie-/spiegelmodus (bijv. de IDEX-duplicatiemodus van RepRapFirmware). Heeft geen effect in de modus Primair."
+
+# AI Translated
+# Needs human review: 'pem-inversion' is unexplained jargon in the source (probably the inverse of the physical extruder map); check the wording once the English is clarified.
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Overschrijving per printbed die fysieke koppen aan filamentslots koppelt (vanaf 1 geteld). Leeg betekent dat de standaardwaarden uit de pem-inversie worden gebruikt."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "As waarom de mesh vóór het slicen wordt gedraaid. Dit is de kanteling van de bandprinter: een isometrische rotatie (zonder vervorming) die ook de weergave van het printbed en de zwaartekrachtkanteling van de ondersteuning bepaalt, en die de G-code-terugtransformatie omkeert vóór de afschuiving/schaling naar het machinecoördinatenstelsel en de herindeling van de assen. X is de gebruikelijke kanteling van het portaal (de band beweegt langs Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Overschrijving voor experts: stel de kantelhoek van het machinecoördinatenstelsel (G-code-afschuiving/-schaling) in los van de rotatiehoek vóór het slicen. Indien uitgeschakeld wordt de transformatie naar het machinecoördinatenstelsel afgeleid van de kantelhoek van de band, zodat één hoek beide stappen bepaalt. Schakel dit alleen in om te compenseren voor een machine waarvan de fysieke portaalkanteling afwijkt van de slicerotatie."
+
+# AI Translated
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "De maximale afwijking die is toegestaan bij het verlagen van de resolutie voor de instelling 'Maximale wandresolutie'. Als u deze verhoogt, wordt de print minder nauwkeurig, maar de G-code kleiner. 'Maximale wandafwijking' beperkt 'Maximale wandresolutie'; als de twee met elkaar in conflict zijn, gaat 'Maximale wandafwijking' voor."
+
+# AI Translated
+#~ msgid " not in range "
+#~ msgstr " niet in bereik "
+
+# AI Translated
+#~ msgid "floating regions"
+#~ msgstr "zwevende gebieden"
+
+# AI Translated
+#~ msgid "floating cantilever"
+#~ msgstr "een zwevende uitkraging"
+
+# AI Translated
+#~ msgid "large overhangs"
+#~ msgstr "grote overhangen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Het lijkt erop dat object %s %s heeft. Oriënteer het object opnieuw of schakel het genereren van ondersteuning in."
+
+# AI Translated
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Er zijn geen lagen gedetecteerd. Repareer eventueel uw STL-bestand(en) of controleer de grootte of dikte ervan en probeer het opnieuw.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Dit type machine kan slechts %d historische resultaten per mondstuk bevatten. Dit resultaat wordt niet opgeslagen."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Dit type machine kan slechts %d historische resultaten per mondstuk bevatten."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Overhangen"
+
+# AI Translated
+#~ msgid "Start / End"
+#~ msgstr "Start / Einde"
+
+# AI Translated
+#~ msgid "Damp"
+#~ msgstr "Demping"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "%d IFS-slots op de printer gedetecteerd."
+
+#~ msgid "selected"
+#~ msgstr "geselecteerd"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "De volgende voorinstellingen nemen deze voorinstelling over."
+#~ msgstr[1] "De volgende voorinstelling neemt deze voorinstelling over."
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "%zu Creality-printer(s) gevonden. Selecteer er een en klik op Geselecteerde gebruiken."
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "logboek(en)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Fout: de %s-extruder heeft geen beschikbaar %s-mondstuk; het huidige groeperingsresultaat is ongeldig."
+
+#~ msgid "invalid brim ears"
+#~ msgstr " ongeldige rand oren"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "%d objecten worden overgeslagen."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Map openen in verkenner"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Klik op het middelpunt en daarna op een hoekpunt — %d zijden, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "omgeschreven"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "ingeschreven"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Schets gemaakt (%zu sturende maten) — selecteer deze en klik met de rechtermuisknop om te extruderen"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — %zu driehoeken"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Deze mesh heeft %d driehoeken. Elke driehoek wordt een B-rep-vlak voordat coplanaire vlakken worden samengevoegd, dus het importeren kan lang duren en een lichaam opleveren dat traag te bewerken is. Het is meestal beter om de mesh eerst te decimeren.\n"
+#~ "\n"
+#~ "Toch importeren?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Volumelichaam geïmporteerd — %d driehoeken → %d vlakken, volume %.2f mm³. Kies een vlak of rand en daarna Afronding / Snijden / Uithollen om te wijzigen"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — sleep om te plaatsen/schalen en bevestig daarna"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d schetsentiteiten"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — typ een waarde en druk op Enter (of Bevestigen)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Voorvertoning — %zu driehoeken"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "%1% beperking(en) kunnen niet op deze geometrie werken (een ellips of splinecurve, of een cirkel met grootte nul) en worden genegeerd"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "%1% beperking(en) die door de afronding/afschuining ongeldig werden, zijn verwijderd"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "%1% beperking(en) opgeheven door de transformatie"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...en nog %1% open uiteinde(n)"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "De materiaallijst ondersteunt maximaal %1% kleuren. Na ontleding van %2% zou het aantal materialen %1% overschrijden. Verwijder ongebruikte filamenten in het hoofdscherm voordat u ontleedt."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% printbare kleuren uit %2% filamenten"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% eilanden"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Alle %1% lagen gebruikt"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Voorvertoning: %1% driehoeken"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Model: %1% driehoeken - het bakken verfijnt tot de resolutie hierboven, tot aan het budget"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Bakken verplaatst bestaande hoekpunten - het model blijft op %1% driehoeken"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Bakresultaat tot ~%1% k driehoeken"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% lagen niet geschilderd, overgeslagen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Het project ondersteunt maximaal %d filamenten. Extra filamenten worden genegeerd."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d hoekpunten geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d randen geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d eilanden geselecteerd | slepen = samen verplaatsen, Shift/Ctrl-klik = toevoegen/verwijderen, R/S = primair eiland roteren/schalen"
+
+# AI Translated
+# Needs human review: The English names a 'Tiling' setting, but the layer settings show 'Tile' (Tegelen) and 'Tile size' (Tegelgrootte); check which one is meant and quote its label.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "De tegelgrootte van de actieve laag: hoeveel van het model één herhaling van de textuur bedekt. Het canvas wordt in tegels gemeten, dus één rastercel is één herhaling. Wijzig dit via de tegeling in de instellingen van de laag."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d eilanden, %s vlakken"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plug-in \"%s\" vraagt om de volgende bestand(en) te lezen:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plug-in \"%s\" vraagt om de volgende bestand(en) te lezen/schrijven:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plug-in \"%s\" vraagt om de volgende bestand(en) aan te maken:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plug-in \"%s\" vraagt om de volgende bestand(en) te verwijderen:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plug-in \"%s\" vraagt om de volgende opdracht(en) uit te voeren:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Installatie van plug-in mislukt"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "De Microsoft WebView2 Runtime kon niet worden geïnstalleerd.\n"
+#~ "Sommige functies, waaronder de installatiewizard, kunnen leeg blijven totdat deze is geïnstalleerd.\n"
+#~ "Installeer deze handmatig via https://developer.microsoft.com/microsoft-edge/webview2/ en start Orca Slicer opnieuw."
+
+# AI Translated
+#~ msgid "Why this grouping"
+#~ msgstr "Waarom deze groepering"
+
+# AI Translated
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "De software ondersteunt het gebruik van mondstukken met verschillende diameters voor één print niet. Als het linker- en rechtermondstuk verschillen, kan er alleen met één printkop worden geprint. Bevestig welk mondstuk u voor dit project wilt gebruiken."
+
+# AI Translated
+#~ msgid "Switch diameter"
+#~ msgstr "Diameter wisselen"
+
+# AI Translated
+#~ msgid "BambuStudio Project"
+#~ msgstr "BambuStudio-project"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "Het 3MF-bestand is gemaakt door BambuStudio (versie %s), dat nieuwer is dan de compatibele versie %s. Er zijn niet-herkende instellingen gevonden:"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "Het 3MF-bestand is gemaakt door BambuStudio (versie %s), dat nieuwer is dan de compatibele versie %s. Sommige instellingen zijn mogelijk niet volledig compatibel."
+
+# AI Translated
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "Het 3MF-bestand is gemaakt door BambuStudio. Sommige instellingen kunnen afwijken van OrcaSlicer."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Ongedaan maken of opnieuw doen is niet mogelijk terwijl een bewerking bezig is. Stop deze eerst."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Centreert de interne vulling van elk onderdeel op zichzelf, alsof het afzonderlijk was geslicet, in plaats van op het geheel. Onderdelen die elkaar raken of overlappen worden als één lichaam behandeld en delen een middelpunt; losse onderdelen (of afzonderlijke 3D-objecten) krijgen elk hun eigen middelpunt.\n"
+#~ "Nuttig wanneer een samenstelling meerdere objecten groepeert die elk een consistente, op zichzelf gecentreerde vulling moeten houden.\n"
+#~ "Heeft invloed op lijn- en rasterpatronen en op vullingen met rotatiesjablonen.\n"
+#~ "Patronen die aan globale coördinaten vastzitten (Gyroide, Honeycomb, TPMS, ...) worden niet beïnvloed."
+
+# AI Translated
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Index van de huidige laag. Eengebaseerd (de eerste laag is dus nummer 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Instructie video"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Primitief"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Lege mesh gegenereerd"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Blok"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Snel:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Breedte (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Diepte (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Hoogte (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "R onder"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "R boven"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "Grote R"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "Kleine R"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Alle randen"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Bovenranden"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Onderranden"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Zijranden"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Meshresolutie"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Vorm toevoegen"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Geen buitenprofiel"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Kan het buitenvlak niet maken"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Kan het vlak met gaten niet opbouwen"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Wentelen mislukt"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Profiel"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Nieuw profiel beginnen (voor gaten)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segmenten"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Zijden"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Klik op het canvas om te tekenen"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Uitlijnen op raster"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Rasterstap"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Buiten"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "gesloten"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% punten %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (boven)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (voor)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (zijkant)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Wentelhoek (°)"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "Zet op 0 om te extruderen, >0 om te wentelen"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Uitsparing (snijden)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu gesloten profiel"
+#~ msgstr[1] "%zu gesloten profielen"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Teken een gesloten profiel om dit in te schakelen"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Leeg resultaat"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Extruderen: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Wentelen: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Geen object geselecteerd"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Vlak mislukt"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Vlak met gaten mislukt"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Gereedschapsmesh leeg"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Uitsparing toegevoegd (negatief volume)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Uitsparing: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Vereist dat de actieve laag is toegewezen met Uitvouwen (LSCM)."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Dambord - een testraster in plaats van de textuur. Waar de vakjes vierkant blijven, is de textuur niet vervormd; waar ze uitrekken, rekt de textuur ook uit"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Vervorming - heatmap van blauw tot rood die de uitrekking over de uitvouwing toont"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Mengen per"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Oppervlak"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Lagen: de twee filamenten wisselen elkaar af tussen printlagen, wat vloeiend mengt op staande oppervlakken maar verdwijnt op horizontale oppervlakken, waar een hele laag één band is.\n"
+#~ "Oppervlak: een fijn dambordpatroon over het oppervlak, dat onder elke hoek werkt maar eerder als textuur dan als menging kan overkomen.\n"
+#~ "Automatisch: lagen op staande vlakken; horizontale vlakken krijgen het dichtstbijzijnde enkele filament, omdat een dambordpatroon daar als patroon zichtbaar wordt."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Eiland - verplaats, roteer en schaal hele eilanden"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Hoekpunt - sleep hoekpunten om de vorm te wijzigen; Shift/Ctrl voor meervoudige selectie"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Rand - sleep randen om de vorm te wijzigen; Shift/Ctrl voor meervoudige selectie"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Alle eilanden in beeld brengen (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Experimenteel) Printeragents gebruiken in plaats van printhosts"
@@ -33247,16 +39550,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Klik op een vlak of een referentievlak en kies daarna een tekengereedschap"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -33313,10 +39606,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Verticale afstand"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Lineair"
-
#~ msgid "Face recognition"
#~ msgstr "Gezichtsherkenning"
@@ -34896,9 +41185,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "onderdeel selectie"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction mode.\n"
#~ "\n"
diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po
index 66bd86e2e6..a8292fdfd8 100644
--- a/localization/i18n/pl/OrcaSlicer_pl.po
+++ b/localization/i18n/pl/OrcaSlicer_pl.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OrcaSlicer 2.3.0-rc\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: \n"
"Last-Translator: Krzysztof Morga <>\n"
"Language-Team: \n"
@@ -394,8 +394,10 @@ msgid "Please wait"
msgstr "Proszę czekać"
# AI Translated
-msgid "Reading"
-msgstr "Odczyt"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Indukcyjny uchwyt na hotendy: odczyt %d/%d"
msgid "Running..."
msgstr "Uruchamianie..."
@@ -551,9 +553,13 @@ msgstr "Uchwyt-Połóż na Płaszczyźnie"
msgid "Lay on Face"
msgstr "Połóż na powierzchni"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Liczba filamentów przekracza maksymalną ilość obsługiwaną przez narzędzie malowania. Tylko pierwsze %1% filamenty będą dostępne w tym narzędziu."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Liczba filamentów przekracza maksimum obsługiwane przez narzędzie malowania. W narzędziu malowania będzie dostępny tylko pierwszy filament (%1%)."
+msgstr[1] "Liczba filamentów przekracza maksimum obsługiwane przez narzędzie malowania. W narzędziu malowania będą dostępne tylko pierwsze %1% filamenty."
+msgstr[2] "Liczba filamentów przekracza maksimum obsługiwane przez narzędzie malowania. W narzędziu malowania będzie dostępnych tylko pierwszych %1% filamentów."
msgid "Color Painting"
msgstr "Malowanie kolorem"
@@ -607,8 +613,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Skrót klawiszowy "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Skrót klawiszowy %d"
msgid "Triangle"
msgstr "Trójkąt"
@@ -709,6 +717,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Wybór części"
+msgid "Select multiple objects"
+msgstr "Wybierz wiele obiektów"
+
msgid "Fixed step drag"
msgstr "Skok przesunięcia"
@@ -773,10 +784,79 @@ msgstr "Część"
msgid "Relative"
msgstr "Względny"
+msgid "Selection"
+msgstr "Wybór"
+
+msgid "Plate"
+msgstr "Płyta"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "Układ współrzędnych używany przy operacjach transformacji."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Wyrównaj do lewej"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Wyrównaj do środka lewo-prawo"
+
+# AI Translated
+msgid "Align right"
+msgstr "Wyrównaj do prawej"
+
+# AI Translated
+msgid "Align front"
+msgstr "Wyrównaj do przodu"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Wyrównaj do środka przód-tył"
+
+# AI Translated
+msgid "Align back"
+msgstr "Wyrównaj do tyłu"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Wyrównaj do dołu"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Wyrównaj do środka góra-dół"
+
+# AI Translated
+msgid "Align top"
+msgstr "Wyrównaj do góry"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Rozłóż lewo-prawo"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Rozłóż przód-tył"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Rozłóż góra-dół"
+
+msgid "Drop"
+msgstr "Upuść"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "Bezwzględny"
@@ -880,9 +960,6 @@ msgstr "Kąt rowka"
msgid "Cut position"
msgstr "Miejsce przcięcia"
-msgid "Build Volume"
-msgstr "Wymiary robocze"
-
msgid "Multiple"
msgstr "Wielokrotne"
@@ -1060,10 +1137,22 @@ msgstr "Łącznik"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"Obiekt (%1%) ma zduplikowane łączniki. W wyniku cięcia niektórych łączników może brakować.\n"
+"Zgłoś zespołowi OrcaSlicer, w jakiej sytuacji wystąpił ten problem.\n"
+"Dziękujemy."
+msgstr[1] ""
+"Obiekty (%1%) mają zduplikowane łączniki. W wyniku cięcia niektórych łączników może brakować.\n"
+"Zgłoś zespołowi OrcaSlicer, w jakiej sytuacji wystąpił ten problem.\n"
+"Dziękujemy."
+msgstr[2] ""
"Obiekty (%1%) mają zduplikowane łączniki. W wyniku cięcia niektórych łączników może brakować.\n"
"Zgłoś zespołowi OrcaSlicer, w jakiej sytuacji wystąpił ten problem.\n"
"Dziękujemy."
@@ -1129,9 +1218,13 @@ msgstr "Niska"
msgid "Extra low"
msgstr "Bardzo niski"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d trójkątów"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% trójkąt"
+msgstr[1] "%1% trójkąty"
+msgstr[2] "%1% trójkątów"
msgid "Show wireframe"
msgstr "Pokaż siatkę"
@@ -1142,6 +1235,17 @@ msgstr "Nie można zastosować w czasie podglądu procesu."
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Operacja jest już anulowana. Proszę poczekać kilka sekund."
+msgid "Model simplification has been canceled"
+msgstr "Uproszczenie modelu zostało anulowane"
+
+# AI Translated
+msgid "Wiki Guide"
+msgstr "Przewodnik Wiki"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Przewodnik wideo"
+
msgid "Enforce seam"
msgstr "Wymuś szew"
@@ -1193,6 +1297,14 @@ msgstr "Pozycja na powierzchni"
msgid "Emboss"
msgstr "Tekst"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Brak aktywnej czcionki w stylu. Wybierz właściwą."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont nie został poprawnie załadowany."
+
# AI Translated
msgid "NORMAL"
msgstr "NORMALNY"
@@ -1850,11 +1962,25 @@ msgstr "Średnica"
msgid "Length"
msgstr "Długość"
-msgid "Selection"
-msgstr "Wybór"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Powierzchnia 1 (stała)"
-msgid " (Moving)"
-msgstr " (Przesuwanie)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Powierzchnia 2 (ruchoma)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Punkt 1 (stały)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Punkt 2 (ruchomy)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Wybór 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1870,14 +1996,9 @@ msgstr ""
"Wybierz 2 punkty lub koła na obiektach \n"
"i określ odległość między nimi."
-msgid "Face"
-msgstr "Powierzchnia"
-
-msgid " (Fixed)"
-msgstr " (Stały)"
-
-msgid "Point"
-msgstr "Punkt"
+# AI Translated
+msgid "Selection 2"
+msgstr "Wybór 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1978,6 +2099,18 @@ msgstr "Wejście do gizmo składania"
msgid "Leaving Assembly gizmo"
msgstr "Wyjście z gizmo składania"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2173,14 +2306,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Nie udało się zainstalować Microsoft WebView2 Runtime.\n"
"Niektóre funkcje, w tym kreator konfiguracji, mogą być puste do czasu jego zainstalowania.\n"
-"Zainstaluj go ręcznie ze strony https://developer.microsoft.com/microsoft-edge/webview2/ i uruchom ponownie Orca Slicer."
+"Zainstaluj go ręcznie ze strony %1% i uruchom ponownie Orca Slicer."
# AI Translated
#, c-format, boost-format
@@ -2430,6 +2564,66 @@ msgstr "Ograniczenie wtyczki sieciowej"
msgid "Privacy Policy Update"
msgstr "Aktualizacja polityki prywatności"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Wszystkie Twoje profile filamentu są dostępne na drukarkach, dla których zostały utworzone."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Przenieś profile filamentu"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 zmienił strukturę wielu systemowych profili filamentu, aby naprawić nieprawidłowe profile i przygotować się na przyszłe funkcje. W rezultacie poniższe profile nie są już wyświetlane na niektórych drukarkach, dla których zostały utworzone. Przepraszamy za kłopot; to jednorazowa poprawka.\n"
+"\n"
+"Dodać te drukarki z powrotem do Twoich profili teraz? Najpierw zostanie utworzona kopia zapasowa Twoich profili. Możesz to też zrobić później w menu Pomoc > Przenieś profile filamentu."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (na podstawie %2%)"
+
+msgid "Don't remind me again"
+msgstr "Nie przypominaj mi ponownie"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Nie udało się utworzyć kopii zapasowej Twoich profili, więc nie zostały przeniesione."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Nie udało się zablokować folderu profili użytkownika, więc nic nie zostało przeniesione. Inna instancja OrcaSlicer może zapisywać profile; spróbuj ponownie później w menu Pomoc > Przenieś profile filamentu."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Nie udało się przenieść Twoich profili filamentu. Kopia zapasowa Twoich profili została zapisana w:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Twoje profile filamentu zostały przeniesione. Wybierz je ponownie na liście filamentów w miejscach, w których były używane.\n"
+"\n"
+"Kopia zapasowa Twoich profili została zapisana w:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Nie udało się przenieść tych profili:"
+
# AI Translated
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
@@ -2561,6 +2755,9 @@ msgstr "Odświeżono wtyczki."
msgid "Failed to refresh plugins: %s"
msgstr "Nie udało się odświeżyć wtyczek: %s"
+msgid "Unknown error"
+msgstr "Nieznany błąd"
+
# AI Translated
msgid "Select plugin package"
msgstr "Wybierz pakiet wtyczki"
@@ -3102,6 +3299,22 @@ msgstr "Wczytaj wszystko ponownie"
msgid "Reload all from disk"
msgstr "Przeładuj wszystko z dysku"
+# AI Translated
+msgid "Fix All"
+msgstr "Napraw wszystkie"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Napraw wszystkie modele na bieżącej płycie"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Napraw wszystkie płyty"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Napraw wszystkie modele na wszystkich płytach"
+
msgid "Auto Rotate"
msgstr "Obróć automatycznie"
@@ -3153,8 +3366,13 @@ msgstr "(Utracony kolor)"
msgid "Center"
msgstr "Wyśrodkuj"
-msgid "Drop"
-msgstr "Upuść"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Wyrównaj/Rozłóż"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Wyrównaj i rozłóż obiekty"
msgid "Edit Process Settings"
msgstr "Edytuj ustawienia procesu"
@@ -3459,6 +3677,14 @@ msgstr[0] "Nie udało się naprawić następującego obiektu modelu"
msgstr[1] "Nie udało się naprawić następujących obiektów modelu"
msgstr[2] "Nie udało się naprawić następujących obiektów modelu"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d obiekt modelu nie wymagał naprawy."
+msgstr[1] "%1$d obiekty modelu nie wymagały naprawy."
+msgstr[2] "%1$d obiektów modelu nie wymagało naprawy."
+
msgid "Repairing was canceled"
msgstr "Naprawa została anulowana"
@@ -3531,9 +3757,6 @@ msgstr "Bez brimu"
msgid "Outer wall speed"
msgstr "Prędkość zewnętrznej ściany"
-msgid "Plate"
-msgstr "Płyta"
-
# AI Translated
msgid "Brim"
msgstr "Brim"
@@ -3619,9 +3842,6 @@ msgstr "Dodaj niestandardowy szablon"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Wstaw niestandardowy szablon G-code na początku tej warstwy."
-msgid "Filament "
-msgstr "Materiał "
-
msgid "Change filament at the beginning of this layer."
msgstr "Zmień filament na początku tej warstwy."
@@ -3711,6 +3931,8 @@ msgstr "Zmień mimo to"
msgid "Off"
msgstr "Wył."
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "Filtr"
@@ -3829,12 +4051,19 @@ msgid "Check filament location"
msgstr "Sprawdź lokalizację filamentu"
# AI Translated
-msgid "Switch"
-msgstr "Przełącznik"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Wstrzymaj"
# AI Translated
-msgid "hotend"
-msgstr "hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Przełączanie ekstrudera"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Przełączanie hotendu"
# AI Translated
msgid "Wait for AMS cooling"
@@ -4015,8 +4244,10 @@ msgid "Arranging"
msgstr "Układanie"
# AI Translated
-msgid "Arranging "
-msgstr "Rozmieszczanie "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Układanie: %1%"
msgid "Arranging canceled."
msgstr "Układanie anulowane."
@@ -4055,8 +4286,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Orientacja..."
-msgid "Orienting"
-msgstr "Orientacja"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Orientacja: %1%"
msgid "Orienting canceled."
msgstr "Orientacja anulowana."
@@ -4064,6 +4298,12 @@ msgstr "Orientacja anulowana."
msgid "Filling"
msgstr "Wypełnianie"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Wypełnianie: %1%"
+
msgid "Bed filling canceled."
msgstr "Anulowanie wypełniania stołu."
@@ -4079,6 +4319,28 @@ msgstr "Anulowano wyszukiwanie orientacji."
msgid "Orientation found."
msgstr "Znaleziono orientację."
+msgid "Best surface quality"
+msgstr "Najlepsza jakość powierzchni"
+
+msgid "Optimize object rotation for best surface quality."
+msgstr "Optymalizuje orientację modelu dla najlepszej jakości powierzchni."
+
+msgid "Reduced overhang slopes"
+msgstr "Redukuj nawisy"
+
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Optymalizuj orientację modelu, aby ilość zwisów wymagających podparcia była minimalna.\n"
+"Weź pod uwagę, że spowoduje to próbę odnalezienia najlepszej powierzchni styku z platformą, jeśli nie ustawiono podniesienia modelu."
+
+msgid "Lowest Z height"
+msgstr "Najniższa wysokość Z"
+
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Optymalizuje orientację modelu, aby miał jak najmniejszy rozmiar w osi Z dla skrócenia czasu drukowania."
+
msgid "Logging in"
msgstr "Logowanie"
@@ -4385,6 +4647,16 @@ msgstr "Ostatnie projekty"
msgid "Go to Plate"
msgstr "Przejdź do płyty"
+msgid "Device"
+msgstr "Urządzenie"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Urządzenie (Web)"
+
+msgid "Multi-device"
+msgstr "Wiele urządzeń"
+
msgid "AMS Materials Setting"
msgstr "Ustawienia filamentów AMS"
@@ -4413,10 +4685,6 @@ msgstr "Wartość wejściowa powinna być większa niż %1% i mniejsza niż %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "współczynnik kalibracji dynamiki przepływu"
-# AI Translated
-msgid "Wiki Guide"
-msgstr "Przewodnik Wiki"
-
msgid "PA Profile"
msgstr "Profil PA"
@@ -4446,6 +4714,14 @@ msgstr "Proszę podać prawidłową wartość (K w zakresie %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Proszę podać prawidłową wartość (K w zakresie %.1f~%.1f, N in %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Ulubione filamenty"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Wszystkie filamenty"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4507,7 +4783,7 @@ msgstr "Zapisz"
msgctxt "Navigation"
msgid "Back"
-msgstr "Tył"
+msgstr "Wstecz"
msgid "Example"
msgstr "Przykład"
@@ -4770,11 +5046,11 @@ msgstr "Wtyczka sieciowa została zainstalowana, ale nie udało się jej wczyta
msgid "Restart Required"
msgstr "Wymagane ponowne uruchomienie"
-msgid "Please home all axes (click "
-msgstr "Ustaw wszystkie osie na pozycje domową (kliknij "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") aby określić pozycję głowicy drukującej. To uniemożliwi narzędziu wyjście poza możliwy obszar druku, co chroni sprzęt przed zużyciem."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Ustaw wszystkie osie w pozycji domowej (kliknij %1%), aby zlokalizować pozycję głowicy. Zapobiega to wychodzeniu urządzenia poza obszar drukowania i zużyciu sprzętu."
msgid "Go Home"
msgstr "Poz. domowa"
@@ -4789,6 +5065,10 @@ msgstr "Wystąpił błąd krytyczny: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Zapisz projekt i uruchom program ponownie."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Nieznany wyjątek C++."
+
msgid "Processing G-Code from previous file…"
msgstr "Przetwarzanie G-code z poprzedniego pliku..."
@@ -5014,6 +5294,14 @@ msgstr "Dostosować ją automatycznie do limitu (%g mm)?"
msgid "Adjust"
msgstr "Dostosuj"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Tratwa i osłona przeciwprzeciągowa nie są dostępne w drukarkach taśmowych.\n"
+"Zostały wyłączone."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5869,9 +6157,6 @@ msgstr "Automatyczne ponowne cięcie zgodnie z optymalnym grupowaniem filamentu,
msgid "Filament Grouping"
msgstr "Grupowanie filamentów"
-msgid "Why this grouping"
-msgstr "Dlaczego tak jest zgrupowane"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Umieść filamenty w drukarce zgodnie z wynikiem grupowania."
@@ -5881,29 +6166,53 @@ msgstr "Wskazówki:"
msgid "Current grouping of slice result is not optimal."
msgstr "Aktualne grupowanie wyników cięcia nie jest optymalne."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "W porównaniu do optymalnego grupowania, zużycie filamentu wzrośnie o %1%g, a liczba jego zmian o %2%."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "W porównaniu do optymalnego grupowania zużycie filamentu wzrośnie o %1%g i dojdzie %2% zmiana filamentu."
+msgstr[1] "W porównaniu do optymalnego grupowania zużycie filamentu wzrośnie o %1%g i dojdą %2% zmiany filamentu."
+msgstr[2] "W porównaniu do optymalnego grupowania zużycie filamentu wzrośnie o %1%g i dojdzie %2% zmian filamentu."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "W porównaniu do optymalnego grupowania, zużycie filamentu wzrośnie o %1%g, a liczba jego zmian spadnie o %2%."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "W porównaniu do optymalnego grupowania zużycie filamentu wzrośnie o %1%g, ale ubędzie %2% zmiana filamentu."
+msgstr[1] "W porównaniu do optymalnego grupowania zużycie filamentu wzrośnie o %1%g, ale ubędą %2% zmiany filamentu."
+msgstr[2] "W porównaniu do optymalnego grupowania zużycie filamentu wzrośnie o %1%g, ale ubędzie %2% zmian filamentu."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "W porównaniu do optymalnego grupowania, zużycie filamentu spadnie o %1%g, a liczba jego zmian wzrośnie o %2%."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "W porównaniu do optymalnego grupowania zużycie filamentu spadnie o %1%g, ale dojdzie %2% zmiana filamentu."
+msgstr[1] "W porównaniu do optymalnego grupowania zużycie filamentu spadnie o %1%g, ale dojdą %2% zmiany filamentu."
+msgstr[2] "W porównaniu do optymalnego grupowania zużycie filamentu spadnie o %1%g, ale dojdzie %2% zmian filamentu."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "W porównaniu do drukarki z jedną dyszą, zużycie filamentu spadnie o %1%g, a liczba jego zmian o %2%."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "W porównaniu do drukarki z jedną dyszą zużycie filamentu spadnie o %1%g i ubędzie %2% zmiana filamentu."
+msgstr[1] "W porównaniu do drukarki z jedną dyszą zużycie filamentu spadnie o %1%g i ubędą %2% zmiany filamentu."
+msgstr[2] "W porównaniu do drukarki z jedną dyszą zużycie filamentu spadnie o %1%g i ubędzie %2% zmian filamentu."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "W porównaniu do drukarki z jedną dyszą, zużycie filamentu spadnie o %1%g, a liczba jego zmian wzrośnie o %2%."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "W porównaniu do drukarki z jedną dyszą zużycie filamentu spadnie o %1%g, ale dojdzie %2% zmiana filamentu."
+msgstr[1] "W porównaniu do drukarki z jedną dyszą zużycie filamentu spadnie o %1%g, ale dojdą %2% zmiany filamentu."
+msgstr[2] "W porównaniu do drukarki z jedną dyszą zużycie filamentu spadnie o %1%g, ale dojdzie %2% zmian filamentu."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "W porównaniu do drukarki z jedną dyszą, zużycie filamentu wzrośnie o %1%g, a liczba jego zmian spadnie o %2%."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "W porównaniu do drukarki z jedną dyszą zużycie filamentu wzrośnie o %1%g, ale ubędzie %2% zmiana filamentu."
+msgstr[1] "W porównaniu do drukarki z jedną dyszą zużycie filamentu wzrośnie o %1%g, ale ubędą %2% zmiany filamentu."
+msgstr[2] "W porównaniu do drukarki z jedną dyszą zużycie filamentu wzrośnie o %1%g, ale ubędzie %2% zmian filamentu."
msgid "Set to Optimal"
msgstr "Ustaw na optymalne"
@@ -6062,12 +6371,61 @@ msgstr "Zwiększ/zmniejsz obszar edycji"
msgid "Sequence"
msgstr "Kolejność"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Środek masy płyty"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Środek masy części"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Środek masy podpór"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Środek masy złożenia"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Środek masy obiektu"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Ukończony wydruk"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Wydrukowano do warstwy %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Waga"
+
+msgid "Volume"
+msgstr "Objętość"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Środek w obwiedni"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Rozmiar obwiedni"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Moment bezwładności"
+
# AI Translated
msgid "Object selection"
msgstr "Wybór obiektu"
-msgid "number keys"
-msgstr "klawisze numeryczne"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "klawisze numeryczne 1~16"
# AI Translated
msgid "Number keys can quickly change the color of objects"
@@ -6286,10 +6644,21 @@ msgstr "Osie"
msgid "Gridlines"
msgstr "Linie siatki"
+msgid "Focus mode"
+msgstr ""
+
# AI Translated
msgid "Labels"
msgstr "Etykiety"
+# AI Translated
+msgid "Center of mass"
+msgstr "Środek masy"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Pokaż surowy G-code (tylko drukarki taśmowe)"
+
# AI Translated
msgid "Move section plane"
msgstr "Przesuń płaszczyznę przekroju"
@@ -6338,7 +6707,7 @@ msgstr "Objętość:"
msgid "Size:"
msgstr "Rozmiar:"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Wykryto konflikty ścieżek G-code na warstwie %d, Z = %.2lfmm. Proszę oddalić od siebie obiekty będące w konflikcie (%s <-> %s)."
@@ -6359,23 +6728,21 @@ msgstr "Nie obsługuje druku 2 lub więcej filamentów TPU."
msgid "Tool %d"
msgstr "Narzędzie %d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Filament %s jest umieszczony w %s, ale wygenerowana w G-code ścieżka przekracza zakres drukowania %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "Filament %s jest umieszczony w %s, ale wygenerowana ścieżka G-code wykracza poza obszar roboczy: %s."
+msgstr[1] "Filamenty %s są umieszczone w %s, ale wygenerowana ścieżka G-code wykracza poza obszar roboczy: %s."
+msgstr[2] "Filamenty %s są umieszczone w %s, ale wygenerowana ścieżka G-code wykracza poza obszar roboczy: %s."
# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Filamenty %s są umieszczone w %s, ale wygenerowana ścieżka G-code wykracza poza obszar roboczy %s."
-
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Filament %s jest umieszczony w %s, ale wygenerowana w G-code ścieżka przekracza wysokość drukowania %s."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Filamenty %s są umieszczone w %s, ale wygenerowana ścieżka G-code przekracza wysokość druku %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "Filament %s jest umieszczony w %s, ale wygenerowana ścieżka G-code przekracza wysokość druku: %s."
+msgstr[1] "Filamenty %s są umieszczone w %s, ale wygenerowana ścieżka G-code przekracza wysokość druku: %s."
+msgstr[2] "Filamenty %s są umieszczone w %s, ale wygenerowana ścieżka G-code przekracza wysokość druku: %s."
msgid "Open wiki for more information."
msgstr "Otwórz wiki, aby uzyskać więcej informacji."
@@ -6385,8 +6752,11 @@ msgstr "Widoczny jest tylko edytowany obiekt."
# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Filamentów %s nie można drukować bezpośrednio na powierzchni tej płyty."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "Filament %s nie może być drukowany bezpośrednio na powierzchni tej płyty."
+msgstr[1] "Filamenty %s nie mogą być drukowane bezpośrednio na powierzchni tej płyty."
+msgstr[2] "Filamenty %s nie mogą być drukowane bezpośrednio na powierzchni tej płyty."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "Wykryto filamenty PLA i PETG. Dostosuj parametry zgodnie z Wiki, aby zapewnić dobrą jakość druku."
@@ -6510,27 +6880,20 @@ msgstr "Przygotowanie"
msgid "Preview"
msgstr "Podgląd"
-msgid "Device"
-msgstr "Urządzenie"
-
-msgid "Multi-device"
-msgstr "Wiele urządzeń"
-
msgid "Project"
msgstr "Projekt"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Urządzenie (Web)"
-
msgid "Yes"
msgstr "Tak"
msgid "No"
msgstr "Nie"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "zostanie zamknięta przed utworzeniem nowego modelu. Czy kontynuować?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "Plik %s zostanie zamknięty przed utworzeniem nowego modelu. Czy kontynuować?"
msgid "Print all"
msgstr "Drukuj wszystkie płyty"
@@ -6575,6 +6938,10 @@ msgstr "Kreator konfiguracji"
msgid "Show Configuration Folder"
msgstr "Otwórz katalog konfiguracji"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Przywróć profile filamentu, które aktualizacja profili usunęła z drukarek, dla których zostały utworzone"
+
# AI Translated
msgid "Troubleshoot Center"
msgstr "Centrum rozwiązywania problemów"
@@ -6820,6 +7187,14 @@ msgstr "Pokaż linie siatki"
msgid "Show Gridlines on plate"
msgstr "Pokaż linie siatki na płycie"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Pokaż głowicę IDEX/IQEX"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Pokazuje w podglądzie G-code obrys głowicy IDEX/IQEX wokół każdej aktywnej dyszy."
+
msgid "Reset Window Layout"
msgstr "Przywróć układ okna"
@@ -7471,6 +7846,8 @@ msgstr "Oceń"
msgid "Calculating..."
msgstr "Obliczanie..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Kamera"
@@ -7553,9 +7930,13 @@ msgstr "Pobieranie..."
msgid "Cloud Slicing..."
msgstr "Cięcie w chmurze..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "W kolejce do cięcia w chmurze jest %s zadań przed tobą."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "W kolejce do cięcia w chmurze przed tobą jest %d zadanie."
+msgstr[1] "W kolejce do cięcia w chmurze przed tobą są %d zadania."
+msgstr[2] "W kolejce do cięcia w chmurze przed tobą jest %d zadań."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7586,6 +7967,11 @@ msgstr "To działa tylko podczas drukowania"
msgid "Silent"
msgstr "Cichy"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Standardowy"
+
# AI Translated
msgid "Sport"
msgstr "Sport"
@@ -7643,17 +8029,29 @@ msgstr "Prześlij obrazy"
msgid "Number of images successfully uploaded"
msgstr "Liczba pomyślnie przesłanych obrazów"
-msgid " upload failed"
-msgstr " przesyłanie nie powiodło się"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Przesyłanie %s nie powiodło się"
-msgid " upload config prase failed\n"
-msgstr " błąd przesyłania konfiguracji\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Nie udało się przeanalizować konfiguracji przesyłania: %s"
-msgid " No corresponding storage bucket\n"
-msgstr " Brak odpowiadającego pojemnika na dane\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: brak odpowiadającego zasobnika pamięci masowej"
-msgid " cannot be opened\n"
-msgstr " nie można otworzyć\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "Nie można otworzyć %s"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7671,26 +8069,22 @@ msgstr "Nie udało się przesłać\n"
msgid "Obtaining instance_id failed\n"
msgstr "nie udało się uzyskać instance_id\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Wynik twojego komentarza nie może być przesłany z powodu następujących przyczyn:\n"
-"\n"
-" kod błędu: "
-
-msgid "error message: "
-msgstr "komunikat o błędzie: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Nie można przesłać Twojej opinii z następujących powodów:\n"
"\n"
+" kod błędu: %d\n"
+" komunikat błędu: %s\n"
"\n"
-"Czy przenieść na stronę internetową w celu oceny?"
+"Czy chcesz przejść na stronę internetową, aby wystawić ocenę?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Niektóre z twoich zdjęć nie zostały przesłane. Chcesz przekierować się na stronę internetową w celu oceny?"
@@ -8546,6 +8940,108 @@ msgstr "Wyświetl wszystkie ustawienia obiektów"
msgid "Material settings"
msgstr "Ustawienia materiału"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Każdy tryb określa głowice, które biorą w nim udział, oraz rolę każdej z nich. Kliknij przycisk narzędzia, aby przełączyć jego rolę — najedź na kolor poniżej, aby zobaczyć, co robi każda rola."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Dodaj tryb"
+
+# AI Translated
+msgid "Tools"
+msgstr "Narzędzia"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Nazwa trybu wyświetlana w selektorze trybów IDEX/IQEX płyty. Wymagana — trybu bez nazwy nie można wybrać."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Głowice biorące udział w trybie i rola każdej z nich. Kliknij kafelek, aby przełączyć jego rolę."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code uruchamiany na początku druku, aby przełączyć drukarkę w ten tryb (na przykład wywołanie SET_PRINT_MODE w Klipper). Slicer generuje tylko ścieżki narzędzia głównego (Primary); pozostałymi steruje oprogramowanie sprzętowe."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Nieaktywny"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Główny"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Kopia"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Lustro"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Wykonuje wszystkie ścieżki wygenerowane podczas cięcia. Zawsze narzędzie 0 — użyj opcji Pozycja narzędzia 0 powyżej, aby wybrać, który narożnik stołu zajmuje. Nie można go usunąć z siatki."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Podąża za narzędziem głównym (Primary) na poziomie oprogramowania sprzętowego, drukując te same ścieżki przesunięte do własnej strefy."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Podąża za narzędziem głównym (Primary) na poziomie oprogramowania sprzętowego, drukując te same ścieżki odbite względem granicy między dwiema strefami."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Oznacza narzędzie na portalu narzędzia głównego (Primary) jako jego partnera do druku wielokolorowego. Wymagane, aby umożliwić druk wielokolorowy w trybach z parą portali."
+
+# AI Translated
+msgid "Primary"
+msgstr "Główny"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Nazwa trybu (wymagana)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Nazwa tego trybu równoległego wyświetlana w selektorze trybów IDEX/IQEX płyty. Jest zapisywana w projekcie według nazwy, więc zmiana nazwy trybu, którego używają już płyty, sprawi, że powrócą one do trybu głównego (Primary). Nie może być pusta — pusta nazwa zostanie zastąpiona wygenerowaną."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code wysyłany jednorazowo na początku druku, który używa tego trybu, przed początkowym G-code drukarki. To tutaj drukarka jest przełączana w odpowiedni tryb oprogramowania sprzętowego — na przykład wywołaniem SET_PRINT_MODE w Klipper lub M567 w RepRapFirmware — ponieważ slicer generuje tylko ścieżki narzędzia głównego (Primary), a narzędziami Kopia / Lustro (Copy / Mirror) steruje oprogramowanie sprzętowe. Obsługiwane są zmienne; użyj przycisku edycji, aby je przeglądać. Pozostaw puste, jeśli tryb nie wymaga konfiguracji oprogramowania sprzętowego."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Edytuj G-code / przeglądaj zmienne"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Usuń tryb"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Odrzuć zmiany wprowadzone w tym trybie w bieżącej sesji (przywróć zapisaną wartość)"
+
msgid "Remove current plate (if not last one)"
msgstr "Usuń bieżący stół (jeśli nie jest ostatnim)"
@@ -8570,12 +9066,33 @@ msgstr "Edytuj aktualną nazwę płyty"
msgid "Move plate to the front"
msgstr "Umieść płytę jako pierwszą"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "Tryb IDEX/IQEX: %1% (profil procesu: %2%) (lewy przycisk: przełączanie, prawy przycisk: menu)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "Tryb IDEX/IQEX: %1% (lewy przycisk: przełączanie, prawy przycisk: menu)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Ostrzeżenie: ta płyta używa równoległego trybu IDEX/IQEX z obiektami wielomateriałowymi. Zachowaj ostrożność — sprawdź, czy G-code poprawnie obsługuje to połączenie."
+
msgid "Customize current plate"
msgstr "Dostosuj bieżący stół"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "Dysza %s nie może drukować %s."
+msgid "The left nozzle cannot print %s."
+msgstr "Lewa dysza nie może drukować %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "Prawa dysza nie może drukować %s."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8585,12 +9102,19 @@ msgstr "Drukowanie filamentu o mieszanym kolorze na drukarce z jednym ekstrudere
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Mieszanie %1% z %2% podczas druku nie jest zalecane.\n"
-msgid " nozzle"
-msgstr " dysza"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Nie jest rekomendowane drukowanie poniższych filamentów przu użyciu %1%: %2%.\n"
+msgid "%1%mm %2% nozzle"
+msgstr "Dysza %1%mm (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Nie zaleca się drukowania następującego filamentu z użyciem %1%: %2%\n"
+msgstr[1] "Nie zaleca się drukowania następujących filamentów z użyciem %1%: %2%\n"
+msgstr[2] "Nie zaleca się drukowania następujących filamentów z użyciem %1%: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "Nie jest zalecane stosowanie następujących kombinacji dysz i filamentów:\n"
@@ -8599,9 +9123,11 @@ msgstr "Nie jest zalecane stosowanie następujących kombinacji dysz i filament
msgid "%1% with %2%\n"
msgstr "%1% z %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " płyty %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Cięcie płyty %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Nieprawidłowa nazwa, poniższe znaki są niedozwolone:"
@@ -8636,13 +9162,6 @@ msgstr "AMS(1 gniazdo)"
msgid "Not installed"
msgstr "Nie zainstalowano"
-# AI Translated
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "Oprogramowanie nie obsługuje używania dysz o różnych średnicach w jednym druku. Jeśli lewa i prawa dysza są niezgodne, możemy kontynuować tylko druk jednogłowicowy. Potwierdź, której dyszy chcesz użyć w tym projekcie."
-
-msgid "Switch diameter"
-msgstr "Zmiana średnicy"
-
msgid "Configuration incompatible"
msgstr "Niekompatybilna konfiguracja"
@@ -8724,6 +9243,10 @@ msgstr "Filament mieszany"
msgid "Remove last mixed filament"
msgstr "Usuń ostatni filament mieszany"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Usuń wszystkie filamenty mieszane"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Dodaj filament mieszany"
@@ -8746,6 +9269,14 @@ msgstr "Filament mieszany ma uszkodzone odwołania do składników"
msgid "Edit / Delete / Merge"
msgstr "Edytuj / Usuń / Scal"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Usunąć %1% filament mieszany?"
+msgstr[1] "Usunąć wszystkie %1% filamenty mieszane?"
+msgstr[2] "Usunąć wszystkie %1% filamentów mieszanych?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Docelowy filament mieszany używa tego fizycznego filamentu jako składnika. Scalenie usunie ten fizyczny filament i może unieważnić filament mieszany. Kontynuować?"
@@ -8823,10 +9354,6 @@ msgstr "Wczytywanie pliku: %s"
msgid "Load 3MF"
msgstr "Wczytaj 3MF"
-# AI Translated
-msgid "BambuStudio Project"
-msgstr "Projekt BambuStudio"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "Plik 3MF nie jest obsługiwany przez OrcaSlicer, wczytuj tylko dane geometrii."
@@ -8860,20 +9387,6 @@ msgstr "Lepiej zaktualizuj swoje oprogramowanie.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "Wersja 3MF %s jest nowsza niż wersja %s %s, sugeruje się aktualizację oprogramowania."
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "Plik 3MF został utworzony przez BambuStudio (wersja %s), która jest nowsza niż zgodna wersja %s. Znaleziono nierozpoznane ustawienia:"
-
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "Plik 3MF został utworzony przez BambuStudio (wersja %s), która jest nowsza niż zgodna wersja %s. Niektóre ustawienia mogą nie być w pełni zgodne."
-
-# AI Translated
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "Plik 3MF został utworzony przez BambuStudio. Niektóre ustawienia mogą różnić się od OrcaSlicer."
-
msgid "Invalid values found in the 3MF:"
msgstr "Znaleziono nieprawidłowe wartości w pliku 3MF:"
@@ -9046,6 +9559,14 @@ msgstr "Wyłączyć automatyczne opuszczanie, aby zachować pozycję Z?\n"
msgid "Object with floating parts was detected"
msgstr "Wykryto obiekt z unoszącymi się częściami"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Nie można pociąć: obiekt nachodzi na obszar zarezerwowany dla druku równoległego IDEX/IQEX (strefę dodatkową lub pas odstępu karetki wewnątrz strefy głównej)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Nie można pociąć: wieża czyszcząca nachodzi na obszar zarezerwowany dla druku równoległego IDEX/IQEX (strefę dodatkową lub pas odstępu karetki wewnątrz strefy głównej)."
+
msgid "Another export job is running."
msgstr "Trwa inne eksportowanie."
@@ -9107,8 +9628,9 @@ msgstr "Zastąpione bryły"
msgid "Please select a file"
msgstr "Proszę wybrać plik"
-msgid "Do you want to replace it"
-msgstr "Czy chcesz go zastąpić"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Czy chcesz go zastąpić?"
msgid "Message"
msgstr "Wiadomość"
@@ -9138,6 +9660,50 @@ msgstr "Nieprawidłowe dane"
msgid "Slicing Canceled"
msgstr "Anulowano cięcie"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Konflikt temperatury stołu: T%d (%s) ustawia stół na %d℃ — T%d (%s) wymaga %d℃. Stołem steruje narzędzie główne; narzędzia dodatkowe drukują w temperaturze, którą ono ustawi."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Niezgodność typu filamentu: T%d używa %s, a T%d używa %s. Te materiały mają niezgodne wymagania i nie są przeznaczone do wspólnego drukowania."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"Płyta %d ma aktywny tryb równoległy IDEX/IQEX z następującymi potencjalnymi problemami:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Kontynuować cięcie?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Ostrzeżenie trybu równoległego IDEX/IQEX"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Nie pokazuj ponownie tych ostrzeżeń"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Płyta %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Wykryto następujące potencjalne problemy trybu równoległego IDEX/IQEX:\n"
+"\n"
+
# AI Translated
msgid "Network plug-in switched successfully."
msgstr "Wtyczka sieciowa została przełączona pomyślnie."
@@ -9174,8 +9740,8 @@ msgid "Sync now"
msgstr "Synchronizuj teraz"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Nie można cofnąć ani ponowić, gdy trwa operacja. Najpierw ją zatrzymaj."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Nie można cofnąć ani ponowić podczas trwania operacji. Zatrzymaj operację lub poczekaj na jej zakończenie, a następnie spróbuj ponownie."
# AI Translated
msgid ""
@@ -9246,6 +9812,14 @@ msgstr "Nie udało się pobrać. Wyjątek rozmiaru pliku."
msgid "Project downloaded %d%%"
msgstr "Projekt pobrany w %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"Testy Linia PA i Wzór PA nie są jeszcze dostępne w drukarkach taśmowych.\n"
+"Użyj zamiast tego metody Wieża PA."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Test Pressure Advance"
@@ -9254,11 +9828,15 @@ msgstr "Test Pressure Advance"
msgid "INFO:"
msgstr "INFORMACJA:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Brak wartości przyspieszenia do kalibracji. Użyj wartości domyślnej."
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Nie podano przyspieszeń do kalibracji. Użyto domyślnej wartości przyspieszenia %1%mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Prędkość nie została określona do kalibracji. Użyj domyślnej prędkości optymalnej."
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Nie podano prędkości do kalibracji. Użyto domyślnej optymalnej prędkości %1%mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9273,6 +9851,15 @@ msgstr "Kalibracja przepływu Orca YOLO"
msgid "Flowrate Test - Pass%d"
msgstr "Test natężenia przepływu - przebieg %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Brak taśmowej wieży temperatur dla zakresu od %1% do %2%℃. Użyj zakresu, który obejmują modele wieży, na przykład od 230 do 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Wieża temperatur"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Test temperatury dyszy"
@@ -9298,11 +9885,16 @@ msgstr "Test pokonywania narożników"
msgid "Import SLA archive"
msgstr "Importuj archiwum SLA"
-msgid "The selected file"
-msgstr "Wybrany plik"
-
-msgid "Does not contain valid G-code."
-msgstr "nie zawiera prawidłowego G-code."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Wybrany plik:\n"
+"%1%\n"
+"nie zawiera prawidłowego G-code."
msgid "An Error has occurred while loading the G-code file."
msgstr "Wystąpił błąd podczas wczytywania pliku z G-code"
@@ -9578,6 +10170,27 @@ msgstr "Obecnie formularz konfiguracji obiektu nie może być używany z drukark
msgid "Not available"
msgstr "Niedostępne"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (brak płyty)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — brak przypisanego filamentu\n"
+"Dodaj ekstruder w zakładce Drukarka, aby ta głowica miała gniazdo na filament."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> filament %2%"
+
msgid "isometric"
msgstr "izometryczny"
@@ -9617,6 +10230,8 @@ msgstr "Europa"
msgid "North America"
msgstr "Ameryka Północna"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "Inne"
@@ -9700,11 +10315,17 @@ msgstr "Nie udało się ponownie wczytać wtyczki sieciowej. Uruchom ponownie ap
msgid "Reload Failed"
msgstr "Ponowne wczytanie nie powiodło się"
-msgid "Associate"
-msgstr "Powiązanie"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Skojarz %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "aktualnie skojarzone z OrcaSlicer, aby Orca mogła otwierać modele z"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Skojarz %s:// z OrcaSlicer, aby Orca mogła otwierać modele z %s"
msgid "Current Association: "
msgstr "Aktualnie powiązano: "
@@ -10031,6 +10652,9 @@ msgstr "Zapamiętaj ostatnią akcję drukowania"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Jeśli włączone, OrcaSlicer zapamięta ostatnio wybraną opcję z listy rozwijanej przycisku drukowania (np. Drukuj, Eksportuj plik pociętej płyty, Eksportuj plik G-code) i użyje jej jako domyślnej przy następnym uruchomieniu."
+msgid "Camera"
+msgstr "Kamera"
+
msgid "Touchpad"
msgstr "Panel dotykowy"
@@ -10504,6 +11128,9 @@ msgstr "Wersja wtyczki sieciowej"
msgid "Select the network plug-in version to use"
msgstr "Wybierz wersję wtyczki sieciowej, która ma być używana"
+msgid "Associate"
+msgstr "Powiązanie"
+
msgid "Associate files to OrcaSlicer"
msgstr "Skojarzenia plików z OrcaSlicer"
@@ -10559,6 +11186,12 @@ msgstr "Pokaż nieobsługiwane profile"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Pokazuj niekompatybilne/nieobsługiwane profile na listach rozwijanych drukarek i filamentów. Tych profili nie można wybrać."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "Funkcje eksperymentalne"
@@ -10851,10 +11484,6 @@ msgstr "Opublikuj 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Wybierz, które ustawienia zostaną opublikowane w pliku 3MF"
-# AI Translated
-msgid "Video Guide"
-msgstr "Przewodnik wideo"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Filament mieszany - publikowany w całości, gdy powyżej zaznaczono \"Włącz\""
@@ -11020,6 +11649,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Proste"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s z %s"
+
# AI Translated
msgid "Search actions"
msgstr "Szukaj akcji"
@@ -11138,6 +11773,10 @@ msgstr "Pokaż szczegóły"
msgid "Hide details"
msgstr "Ukryj szczegóły"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Widok internetowy jest niedostępny."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11427,9 +12066,13 @@ msgstr "Wysyłanie nieudane"
msgid "The name length exceeds the limit."
msgstr "Długość nazwy przekracza limit."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Zużycie filamentu wzrośnie o %dg, a liczba zmian o %d w porównaniu do optymalnego grupowania."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "W porównaniu do optymalnego grupowania zużycie filamentu wzrośnie o %dg i dojdzie %d zmiana filamentu."
+msgstr[1] "W porównaniu do optymalnego grupowania zużycie filamentu wzrośnie o %dg i dojdą %d zmiany filamentu."
+msgstr[2] "W porównaniu do optymalnego grupowania zużycie filamentu wzrośnie o %dg i dojdzie %d zmian filamentu."
# AI Translated
msgid "Right-Ext"
@@ -11519,6 +12162,10 @@ msgstr "Niektóre filamenty mogą być przełączane między ekstruderami podcza
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "W tym pliku znajduje się filament podatny na tworzenie nitek. Dla najlepszej jakości druku zalecamy przełączenie wykrywania zlepiania dyszy w tryb automatyczny."
+# AI Translated
+msgid "Switch"
+msgstr "Przełącznik"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Jeśli opcja „Kalibracja dynamicznego przepływu” jest ustawiona na Auto/Wł., system użyje wartości z kalibracji ręcznej lub wartości domyślnej i pominie proces kalibracji przepływu. Ręczną kalibrację przepływu dla filamentu TPU możesz wykonać na stronie „Kalibracja”."
@@ -11837,6 +12484,10 @@ msgstr "Synchronizacja różnych napędów ekstrudera lub typów objętości dys
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Zsynchronizuj zmianę parametrów z odpowiadającymi parametrami drugiego ekstrudera."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Parametry z tą ikoną można konfigurować osobno dla każdej dyszy."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Proszę kliknąć, aby przywrócić wszystkie ustawienia do ostatnio zapisanego profilu."
@@ -11864,14 +12515,14 @@ msgstr "Jednoczesne włączenie precyzyjnej wysokości Z i wieży czyszczącej m
# AI Translated
msgid "Smooth timelapse needs a prime tower on every layer, which is not compatible with \"No sparse layers\". \"No sparse layers\" has been turned off."
-msgstr "Płynny timelapse wymaga wieży czyszczącej na każdej warstwie, co nie jest zgodne z opcją \"Warstwy bez czyszczenia\". Opcja \"Warstwy bez czyszczenia\" została wyłączona."
+msgstr "Płynny timelapse wymaga wieży czyszczącej na każdej warstwie, co nie jest zgodne z opcją \"Bez rzadkich warstw\". Opcja \"Bez rzadkich warstw\" została wyłączona."
msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without prime tower. Do you want to enable the prime tower?"
msgstr "Wieża czyszcząca jest wymagana dla płynnego timelapse. Możliwe są wady na modelu bez wieży czyszczącej. Czy włączyć wieżę czyszczącą?"
# AI Translated
msgid "\"No sparse layers\" is not compatible with smooth timelapse, which needs a prime tower on every layer. Timelapse has been switched to traditional mode."
-msgstr "Opcja \"Warstwy bez czyszczenia\" nie jest zgodna z płynnym timelapse, który wymaga wieży czyszczącej na każdej warstwie. Timelapse został przełączony w tryb tradycyjny."
+msgstr "Opcja \"Bez rzadkich warstw\" nie jest zgodna z płynnym timelapse, który wymaga wieży czyszczącej na każdej warstwie. Timelapse został przełączony w tryb tradycyjny."
msgid "Still print by object?"
msgstr "Czy nadal drukować według obiektu?"
@@ -12055,8 +12706,9 @@ msgstr "Junction Deviation"
msgid "Jerk(XY)"
msgstr "Jerk (XY)"
+# AI Translated
msgid "Raft"
-msgstr "Tratwa (raft)"
+msgstr "Tratwa"
msgid "Filament for Supports"
msgstr "Filament podpory"
@@ -12076,6 +12728,9 @@ msgstr "Filament dla elementu druku"
msgid "Ooze prevention"
msgstr "Zapobieganie wyciekom"
+msgid "Others"
+msgstr "Inne"
+
msgid "Special mode"
msgstr "Tryby specjalne"
@@ -12119,8 +12774,11 @@ msgstr[2] ""
"Następujące %s linii zawiera zarezerwowane słowa kluczowe.\n"
"Proszę je usunąć, inaczej może to zakłócić wizualizację G-code i oszacowanie czasu druku."
-msgid "Reserved keywords found"
-msgstr "Znaleziono zarezerwowane słowa kluczowe"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Znaleziono zarezerwowane słowa kluczowe w %1%"
msgid "Setting Overrides"
msgstr "Nadpisywane Ustawień"
@@ -12267,7 +12925,16 @@ msgstr "Przestrzeń do druku"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Wybierz implementację agenta sieciowego do komunikacji z drukarką. Dostępni agenci są rejestrowani przy uruchamianiu."
+# AI Translated
+msgid "Belt printer"
+msgstr "Drukarka taśmowa"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Transformacje układu współrzędnych maszyny"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Podano nieprawidłową wartość dla parametru%1%: %2%"
@@ -12387,9 +13054,29 @@ msgstr "Średnica dyszy"
msgid "Wipe tower"
msgstr "Wieża czyszcząca"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Wieża czyszcząca taśmy"
+
msgid "Single extruder multi-material parameters"
msgstr "Parametry pojedynczego extrudera wielomateriałowego"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "Konfiguracja IDEX/IQEX"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Ostrzeżenia przed cięciem"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Pokazuj okno ostrzeżenia przed cięciem, jeśli wykryto potencjalne problemy trybu równoległego IDEX/IQEX (konflikty temperatury stołu, niezgodności typów filamentu, konflikty wielomateriałowe). Można je wyłączyć w samym oknie dialogowym. Włącz je tutaj ponownie, jeśli zostały wyłączone przypadkowo."
+
+# AI Translated
+msgid "Modes"
+msgstr "Tryby"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "To jest drukarka wielomateriałowa z jednym ekstruderem. Średnice wszystkich ekstruderów zostaną ustawione na nową wartość. Czy kontynuować?"
@@ -12399,6 +13086,22 @@ msgstr "Ograniczenia wysokości warstwy"
msgid "Z-Hop"
msgstr "Z-Hop"
+# AI Translated
+msgid "Front-left"
+msgstr "Przedni lewy"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Przedni prawy"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Tylny lewy"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Tylny prawy"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -12421,23 +13124,40 @@ msgstr "Użyj zmodyfikowanej wartości"
msgid "Detached"
msgstr "Odłączony"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% i %2% są przypisane do tej drukarki. Te profile zostaną skasowane, jeśli drukarka zostanie usunięta."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d profil filamentu i %d profil procesu jest przypisany do tej drukarki. Te profile zostaną skasowane, jeśli drukarka zostanie usunięta."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d profil filamentu"
+msgstr[1] "%d profile filamentu"
+msgstr[2] "%d profili filamentu"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d profil procesu"
+msgstr[1] "%d profile procesu"
+msgstr[2] "%d profili procesu"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Profile dziedziczone przez inne profile nie mogą być usunięte!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Następny profil przejmie te ustawienia."
-msgstr[1] "Następne profile przejmą te ustawienia."
-msgstr[2] "Następnych profili przejmie te ustawienia."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "Następujący profil dziedziczy po tym profilu."
+msgstr[1] "Następujące profile dziedziczą po tym profilu."
+msgstr[2] "Następujące profile dziedziczą po tym profilu."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% profil"
+msgid "Delete Preset"
+msgstr "Usuń profil"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -12452,9 +13172,9 @@ msgstr ""
"Czy na pewno usunąć wybrany profil?\n"
"Jeśli profil odpowiada filamentowi aktualnie używanemu w drukarce, proszę zresetować informacje o filamentach dla tego slotu."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Czy na pewno %1% wybrane ustawienia?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Czy na pewno usunąć wybrany profil?"
# AI Translated
msgid "Select printers"
@@ -12517,9 +13237,34 @@ msgid "Don't warn again for this preset"
msgstr "Nie ostrzegaj ponownie dla tego profilu"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
# AI Translated
msgid "No modifications need to be copied."
@@ -12727,6 +13472,12 @@ msgstr "Jeden z profili nie istnieje"
msgid "Compared presets has different printer technology"
msgstr "Porównywane profile mają inną technologię druku"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "„%1%” vs „%2%”"
+
msgid "Add File"
msgstr "Dodaj plik"
@@ -12752,6 +13503,22 @@ msgstr "Lista filamentów"
msgid "Assembly Guide"
msgstr "Instrukcja montażu"
+# AI Translated
+msgid "Image files"
+msgstr "Pliki obrazów"
+
+# AI Translated
+msgid "TXT files"
+msgstr "Pliki TXT"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "Pliki EXCEL"
+
+# AI Translated
+msgid "PDF files"
+msgstr "Pliki PDF"
+
msgid "Author"
msgstr "Autor"
@@ -12954,9 +13721,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Całkowite ramming"
-msgid "Volume"
-msgstr "Objętość"
-
# AI Translated
msgid "Ramming line"
msgstr "Linia ramming"
@@ -12985,8 +13749,10 @@ msgstr "Mnożnik"
msgid "Flushing volumes for filament change"
msgstr "Objętości płukania przy zmianie filamentu"
-msgid "Please choose the filament color"
-msgstr "Proszę wybrać kolor filamentu"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "z/do"
# AI Translated
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -13009,6 +13775,136 @@ msgstr "Logowanie nie powiodło się. Spróbuj ponownie."
msgid "parse json failed"
msgstr "analiza pliku json nie powiodła się"
+msgid "Loading…"
+msgstr "Ładowanie trwa…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Niestandardowe"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Witamy w Orca Slicer"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer zostanie skonfigurowany w kilku krokach. Zacznijmy!"
+
+msgid "Get Started"
+msgstr "Rozpocznij"
+
+msgid "Please select your login region"
+msgstr "Proszę wybrać swój region logowania"
+
+msgid "Finish"
+msgstr "Zakończ"
+
+msgid "Printer Selection"
+msgstr "Wybór drukarki"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Dostawcy"
+
+msgid "Custom Printer"
+msgstr "Niestandardowa drukarka"
+
+msgid "Create"
+msgstr "Utwórz"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Sprawdź nowe drukarki"
+
+msgid "At least one printer must be selected."
+msgstr "Przynajmniej jedna drukarka musi być wybrana."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Znaleziono nowe drukarki"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Zainstalowano nowych dostawców drukarek: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Znaleziono nowych dostawców drukarek, ale instalacja została anulowana."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Nie znaleziono nowych drukarek."
+
+msgid "Filament Selection"
+msgstr "Wybór filamentu"
+
+msgid "System Filaments"
+msgstr "Systemowe filamenty"
+
+msgid "Custom Filaments"
+msgstr "Niestandardowe filamenty"
+
+msgid "Create New"
+msgstr "Utwórz nowy"
+
+msgid "Filament type"
+msgstr "Rodzaj filamentu"
+
+msgid "Vendor"
+msgstr "Dostawca"
+
+# AI Translated
+msgid "No items"
+msgstr "Brak elementów"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Filtruj elementy"
+
+# AI Translated
+msgid "Checked"
+msgstr "Zaznaczone"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Niezaznaczone"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Zaznacz przefiltrowane"
+
+msgid "Clear all"
+msgstr "Wyczyść wszystko"
+
+msgid "At least one filament must be selected."
+msgstr "Przynajmniej jeden filament musi być wybrany."
+
+msgid "Do you want to use the default filament?"
+msgstr "Czy chcesz użyć domyślnego filamentu?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Wyłącza wszystkie funkcje chmurowe, w tym synchronizację profili Orca Cloud. Użytkownicy, którzy wolą pracować całkowicie offline, mogą włączyć tę opcję."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Uwaga: gdy tryb Stealth jest włączony, Twoje profile użytkownika nie będą kopiowane do Orca Cloud."
+
+msgid "Enable Stealth Mode."
+msgstr "Włącz tryb «Niewidzialny»"
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Wtyczki własnościowe"
+
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Niektórzy dostawcy drukarek wymagają własnych wtyczek do komunikacji ze swoimi drukarkami. Proszę wybrać odpowiednią wtyczkę, jeśli korzystasz z takich drukarek."
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Proszę mieć świadomość, że te wtyczki nie są rozwijane ani utrzymywane przez OrcaSlicer. Powinny być używane na własne ryzyko i z rozwagą."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Zainstaluj wtyczkę Bambu Network"
+
# AI Translated
msgid "[Action Required] "
msgstr "[Wymagane działanie] "
@@ -13079,9 +13975,6 @@ msgstr "Dostępne, gdy fokus ma widok 3D na karcie Przygotowanie."
msgid "Select a part"
msgstr "Wybierz część"
-msgid "Select multiple objects"
-msgstr "Wybierz wiele obiektów"
-
msgid "Select objects by rectangle"
msgstr "Wybierz obiekty prostokątem"
@@ -13417,27 +14310,21 @@ msgstr "Błąd wersji oprogramowania układowego. Naprawa i aktualizacja są wym
msgid "Extension Board"
msgstr "Płyta rozszerzeń"
-# AI Translated
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Podziel na %1% części"
-
msgid "Repair finished"
msgstr "Naprawa zakończona"
-msgid "Repair failed"
-msgstr "Naprawa nie powiodła się."
-
-msgid "Repair canceled"
-msgstr "Naprawa anulowana"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Nie udało się skopiować pliku %1% do %2%: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Pobieranie nowych profili producentów: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Pobieranie nowego profilu producenta: %1%..."
+msgstr[1] "Pobieranie nowych profili producentów: %1%..."
+msgstr[2] "Pobieranie nowych profili producentów: %1%..."
# AI Translated
#, boost-format
@@ -13445,8 +14332,13 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Pakiet konfiguracyjny: %1% zaktualizowany do %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Nie udało się pobrać profili producentów: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Nie udało się pobrać profilu producenta: %1%"
+msgstr[1] "Nie udało się pobrać profili producentów: %1%"
+msgstr[2] "Nie udało się pobrać profili producentów: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Należy sprawdzić niezapisane zmiany przed aktualizacją konfiguracji."
@@ -13454,6 +14346,10 @@ msgstr "Należy sprawdzić niezapisane zmiany przed aktualizacją konfiguracji."
msgid "Open G-code file:"
msgstr "Otwórz plik G-code:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Generowanie wieży czyszczącej nie powiodło się, prawdopodobnie z powodu pustej pierwszej warstwy."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Jeden obiekt ma pustą pierwszą warstwę i nie może być wydrukowany. Proszę przyciąć dolną część modelu lub włączyć podpory."
@@ -13476,9 +14372,61 @@ msgstr "G-code zmiany trybu ekstruzji (proces)"
msgid "Filament change extrusion role G-code"
msgstr "G-code zmiany trybu ekstruzji (filament)"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"Eksport G-code do %1% nie powiódł się.\n"
+"Nie można otworzyć pliku do zapisu."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "Folder %1% nie istnieje."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"Eksport G-code do %1% nie powiódł się.\n"
+"Czy dysk jest pełny?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Nie udało się zmienić nazwy wyjściowego pliku G-code z %1% na %2%.\n"
+"Błąd: %3%\n"
+"Czy %1% jest zablokowany?"
+
msgid "No object can be printed. It may be too small."
msgstr "Żaden obiekt nie może być wydrukowany. Może jest za mały"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "Tryb IDEX/IQEX „%1%” nie ma przypisanych narzędzi w wybranej drukarce. Zamiast tego druk odbędzie się w trybie głównym (Primary). Przypisz narzędzia trybu w Ustawieniach drukarki lub wybierz inny tryb przyciskiem IDEX/IQEX płyty."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Ta płyta jest ustawiona na tryb IDEX/IQEX „%1%”, którego wybrana drukarka nie definiuje. Zamiast tego druk odbędzie się w trybie głównym (Primary). Wybierz tryb przyciskiem IDEX/IQEX płyty lub przywróć tryb w Ustawieniach drukarki."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Nieprawidłowa wartość miniatur:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Twój wydruk znajduje się bardzo blisko obszaru czyszczenia dyszy. Upewnij się, że nie dojdzie do kolizji."
@@ -13524,6 +14472,10 @@ msgstr "Błąd grupowania: %1% nie może zostać umieszczony w lewej dyszy"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Błąd grupowania: %1% nie może zostać umieszczony w prawej dyszy"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Nie znaleziono prawidłowej dyszy. Sprawdź liczbę dysz."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Błąd grupowania w trybie ręcznym. Sprawdź liczbę dysz lub pogrupuj ponownie."
@@ -13543,6 +14495,18 @@ msgstr "wiele przecięć z obrysem, użyto tylko jednego (%1%)"
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "obrys znajduje się w całości wewnątrz modyfikatora, modyfikator nie został do niego zastosowany (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "Modyfikator „%2%” (%1%) obiektu „%3%” obejmuje cały obrys"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "Modyfikator „%2%” (%1%) obiektu „%3%” (łącznie %4%) obejmuje cały obrys"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13557,9 +14521,44 @@ msgstr "modyfikator „%1%” obiektu „%2%” (łącznie %3%) nie wpłynął n
msgid "Seam placement may differ from expected."
msgstr "Położenie szwu może różnić się od oczekiwanego."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Wewnętrzny most"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() zwróciło ujemny odstęp. Czy ustawiono zbyt małą szerokość ekstruzji?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() zwróciło ujemny przepływ. Czy ustawiono zbyt małą szerokość ekstruzji?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Nie udało się obliczyć szerokości linii %1%. Nie można uzyskać wartości „%2%”."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Nieprawidłowy odstęp podany do Flow::with_spacing(), sprawdź wysokość warstwy i szerokość ekstruzji."
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Wybrany plik 3MF został zapisany w nowszej wersji %1% i nie jest kompatybilny."
+
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Wybrany plik 3MF zawiera podpory FDM namalowane przy pomocy nowszej wersji OrcaSlicer i nie jest kompatybilny."
+
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Wybrany plik 3MF zawiera szew namalowany przy pomocy nowszej wersji OrcaSlicer i nie jest kompatybilny."
+
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Wybrany plik 3MF zawiera model pomalowany do Multi Material przy pomocy nowszej wersji OrcaSlicer i nie jest kompatybilny."
+
msgid "undefined error"
msgstr "nieznany błąd"
@@ -13654,6 +14653,56 @@ msgstr "niepowodzenie weryfikacji"
msgid "write callback failed"
msgstr "błąd zapisu funkcji zwrotnej"
+# AI Translated
+msgid "unknown error"
+msgstr "nieznany błąd"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Wydruki wielokolorowe w równoległych trybach IDEX/IQEX wymagają, aby każdy filament miał własny, dedykowany fizyczny ekstruder. Co najmniej dwa aktywne filamenty są kierowane do tej samej fizycznej głowicy przez mapę fizycznych ekstruderów drukarki (rozgałęźnik MMU/AFC), czego podporządkowany portal nie jest w stanie odtworzyć."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "Aktywny tryb IDEX/IQEX nie definiuje narzędzia głównego, więc nie można zaplanować druku wielokolorowego. Otwórz edytor trybów IDEX/IQEX w ustawieniach drukarki i przypisz jednemu narzędziu rolę Główny (Primary)."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Druk wielokolorowy w tym trybie nie jest scenariuszem druku równoległego — wszystkie aktywne narzędzia znajdują się na jednym portalu, więc nie ma drugiego portalu, na który byłby kopiowany lub odbijany. Przełącz płytę na tryb główny (Primary), aby drukować wielokolorowo na jednym portalu, lub zdefiniuj tryb IDEX/IQEX obejmujący narzędzia na drugim portalu."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Wydruki wielokolorowe w równoległych trybach IDEX/IQEX wymagają narzędzia Span na portalu narzędzia głównego — bez niego tryb nie deklaruje partnera do druku wielokolorowego w obrębie portalu. Ogranicz wydruk do jednego filamentu, przełącz na tryb główny (Primary) lub otwórz edytor trybów IDEX/IQEX w ustawieniach drukarki i oznacz narzędzie na portalu narzędzia głównego jako Span."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "W tym trybie Span kolory drukują wyłącznie narzędzia %1%, ale filament %2% nie jest przypisany do żadnego narzędzia. Użyj filamentów przypisanych do %1% lub przełącz tę płytę na tryb główny (Primary)."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "W tym trybie Span kolory drukują wyłącznie narzędzia %1%, ale filament %2% jest przypisany do T%3%. Użyj filamentów przypisanych do %1% lub przełącz tę płytę na tryb główny (Primary)."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Nie można załadować wybranego profilu: %1%\n"
+"\tPrzyczyna: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Nie udało się wczytać pliku profilu: %1%\n"
+"\tPrzyczyna: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% jest zbyt blisko obszaru wykluczenia, mogą wystąpić kolizje podczas drukowania."
@@ -13668,29 +14717,36 @@ msgstr "%1% jest zbyt wysoki, mogą wystąpić kolizje."
# AI Translated
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
-msgstr "Wzajemne położenie modelu i wieży czyszczącej nie spełnia wymagań funkcji \"Warstwy bez czyszczenia\". Zmień ich wzajemne położenie, zmniejsz wysokość modelu albo wyłącz opcję \"Warstwy bez czyszczenia\"."
-
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " jest zbyt blisko obszaru wykluczenia, mogą wystąpić kolizje podczas drukowania."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " jest zbyt blisko obszaru wykrywania zalepienia dyszy, mogą wystąpić kolizje podczas drukowania."
-
-msgid "Prime Tower"
-msgstr "Wieża Czyszcząca"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " jest zbyt blisko innych modeli, mogą wystąpić kolizje.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " jest zbyt blisko obszaru wykluczenia, mogą wystąpić kolizje.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " jest zbyt blisko obszaru wykrywania zalepienia dyszy, co doprowadzi do kolizji.\n"
+msgstr "Wzajemne położenie modelu i wieży czyszczącej nie spełnia wymagań funkcji \"Bez rzadkich warstw\". Zmień ich wzajemne położenie, zmniejsz wysokość modelu albo wyłącz opcję \"Bez rzadkich warstw\"."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " znajduje się częściowo poza obszarem druku i nie może zostać wydrukowany.\n"
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% jest zbyt blisko obszaru wykrywania zalepienia dyszy. Mogą wystąpić kolizje podczas drukowania."
+
+# AI Translated
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "Wieża czyszcząca jest zbyt blisko innych obiektów, mogą wystąpić kolizje.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "Wieża czyszcząca jest zbyt blisko obszaru wykluczenia, co doprowadzi do kolizji.\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "Wieża czyszcząca jest zbyt blisko obszaru wykrywania zalepienia dyszy, co doprowadzi do kolizji.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "Wieża czyszcząca jest zbyt blisko obszaru wykluczenia. Mogą wystąpić kolizje podczas drukowania."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "Wieża czyszcząca jest zbyt blisko obszaru wykrywania zalepienia dyszy. Mogą wystąpić kolizje podczas drukowania."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "Wieża czyszcząca znajduje się częściowo poza obszarem druku i nie może zostać wydrukowana.\n"
# AI Translated
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
@@ -13707,6 +14763,58 @@ msgstr "Jeśli mimo to chcesz drukować, możesz włączyć opcję w Preferencje
msgid "No extrusions under current settings."
msgstr "Brak ekstruzji przy obecnych ustawieniach."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Filamenty mieszane nie są obsługiwane w równoległych trybach IDEX/IQEX. Przełącz tę płytę na tryb główny (Primary)."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Tryb IDEX/IQEX „%1%” drukuje za pomocą T%2%, ale żaden z filamentów tej płyty nie jest przypisany do skonfigurowanego narzędzia. Przypisz filament załadowany w T%2% lub przełącz tę płytę na tryb główny (Primary)."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Tryb IDEX/IQEX „%1%” drukuje za pomocą T%2%, ale filamenty tej płyty są na narzędziach: %3%. Przypisz filament załadowany w T%2% lub przełącz tę płytę na tryb główny (Primary)."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Tratwa nie jest zgodna z trybem drukarki taśmowej."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Osłona przeciwprzeciągowa nie jest zgodna z trybem drukarki taśmowej."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "Brim nie jest zgodny z trybem wazy w drukarce taśmowej. Wyłącz jedno z nich."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Taśma jest zbyt stroma na brim, więc brim nie zostanie wygenerowany."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Brim jest generowany tylko wtedy, gdy taśma jest pochylona. Ustaw kąt pochylenia taśmy lub usuń ustawienie brimu."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Drukarki taśmowe obsługują tylko brim zewnętrzny i wewnętrzny. „Auto”, „Ucho myszy” i „Malowane” są drukowane jako „Tylko zewnętrzny brim”, z użyciem wartości „Szerokość brimu”."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "„Odstęp brimu od obiektu” oddziela brim natarcia od krawędzi natarcia obiektu, czyli od krawędzi, którą ma on zakotwiczać. Ustaw odstęp na 0, gdy używasz opcji „Długość brimu natarcia”."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "„Długość brimu natarcia” wydłuża brim przed każdym obiektem wzdłuż taśmy, a funkcja „Ustaw” nie rezerwuje tego miejsca. Zostaw odstęp między obiektami."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "Brim „Tylko krawędź natarcia” dotyczy drukarek taśmowych. W tej drukarce jest drukowany jako zwykły zewnętrzny brim."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Używany jest filament mieszany z gradientem, ale opcja 'Podwarstwa mieszanego koloru' jest wyłączona. Gradient nie zostanie wydrukowany."
@@ -13717,6 +14825,18 @@ msgstr "Tryb „Wygładzony” timelapse nie jest obsługiwany, gdy włączona j
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "W trybie drukowania \"według obiektu\" funkcja wykrywania zalepienia dyszy nie działa."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "Wieża czyszcząca taśmy nie jest generowana przy sekwencji druku „Wg obiektu”; przy zmianach filamentu nie będzie wykonywane płukanie."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "Wieża czyszcząca taśmy jest włączona, ale projekt nie zawiera obiektu wieży czyszczącej; przy zmianach filamentu nie będzie wykonywane płukanie. Otwórz projekt w aplikacji, aby wygenerować wieżę."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Projekt zawiera wiele zarządzanych wież czyszczących taśmy. Przeładuj płytę lub wyłącz i ponownie włącz wieżę czyszczącą taśmy, aby wygenerować ją na nowo."
+
# AI Translated
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Jednoczesne włączenie precyzyjnej wysokości Z i wieży czyszczącej może powodować błędy cięcia."
@@ -13735,10 +14855,6 @@ msgstr "Tryb „Wazy” nie działa, gdy obiekt zawiera więcej niż jeden filam
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Chociaż obiekt %1% mieści się w objętości roboczej, przekracza maksymalną jej wysokość z powodu kompensacji skurczu materiału."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "Obiekt %1% przekracza maksymalną wysokość objętości budowy."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Podczas gdy sam obiekt %1% mieści się w przestrzeni roboczej, jego ostatnia warstwa przekracza maksymalną wysokość przestrzeni roboczej."
@@ -13746,6 +14862,10 @@ msgstr "Podczas gdy sam obiekt %1% mieści się w przestrzeni roboczej, jego ost
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Może być konieczne zmniejszenie rozmiaru modelu lub zmiana bieżących ustawień druku i ponowienie próby."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "Obiekt %1% przekracza maksymalną wysokość objętości budowy."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Zmienna wysokość warstwy nie jest dostępna w przypadku podpór organicznych."
@@ -13909,6 +15029,10 @@ msgstr "Model Adaptive Pressure Advance dla jednego lub więcej ekstruderów mo
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "Kompensacja skurczu filamentu nie będzie zastosowana, ponieważ skurcz używanych filamentów jest zbyt zróżnicowany."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "Wydruk jest pusty. Model nie nadaje się do wydrukowania przy bieżących ustawieniach druku."
+
msgid "Generating skirt & brim"
msgstr "Generowanie skirtu i brimu"
@@ -13928,6 +15052,17 @@ msgstr "Eksportowanie G-code"
msgid "Generating G-code"
msgstr "Generowanie G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Nie udało się przetworzyć pliku G-code %1% z poprzedniego pliku 3MF."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "Wieża czyszcząca taśmy nie może przyjąć pełnej objętości płukania: łącznie %1% mm³ nie zostało wypłukane (najgorsza warstwa: %2% mm³ na wysokości %3%). Na wydruku może wystąpić przenikanie kolorów. Zwiększ szerokość wieży czyszczącej taśmy lub zmniejsz objętości płukania."
+
msgid "Processing of the filename_format template failed."
msgstr "Niepowodzenie przetwarzania szablonu filename_format."
@@ -14408,13 +15543,13 @@ msgid ""
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
"Szerokość linii mostu. Jeśli wyrażona w %, będzie liczona względem średnicy dyszy.\n"
-"Zalecane stosowanie z większą gęstością mostu lub większym współczynnikiem przepływu mostu.\n"
+"Zalecane jest stosowanie razem z wyższymi wartościami ustawień „Gęstość zewnętrznych mostów” lub „Współczynnik przepływu przy mostach”.\n"
"\n"
-"Maksymalna wartość to 100% lub średnica dyszy.\n"
-"Przy ustawieniu 0 szerokość linii będzie odpowiadać szerokości wewnętrznego wypełnienia pełnego."
+"Maksymalna wartość to średnica dyszy lub 100%.\n"
+"Przy ustawieniu 0 szerokość linii będzie odpowiadać szerokości wypełnienia wewnętrznego, a dla grubych mostów średnicy dyszy."
msgid "Internal bridge flow ratio"
msgstr "Współczynnik przepływu dla wewnętrznych mostów"
@@ -14722,7 +15857,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Włącz tę opcję, aby spowolnić druk w obszarach, w których obrysy mogły zawinąć się do góry.\n"
"Na przykład dodatkowe spowolnienie zostanie zastosowane przy druku nawisów na ostrych narożnikach, takich jak dziób kadłuba Benchy, co ogranicza zawijanie kumulujące się przez wiele warstw.\n"
@@ -14734,22 +15869,23 @@ msgstr ""
"Zalecenia przy włączaniu tej opcji:\n"
"1. Zmniejsz czas wygładzania Pressure Advance do 0,015–0,02, aby ekstruder szybko reagował na zmiany prędkości.\n"
"2. Zwiększ minimalne prędkości druku, aby ograniczyć skalę spowolnienia i zmniejszyć różnicę między szybkimi i wolnymi odcinkami.\n"
-"3. Jeśli artefakty nadal występują, włącz wygładzanie natężenia ekstruzji (ERS), aby dodatkowo wygładzić zmiany przepływu.\n"
+"3. Jeśli artefakty nadal występują, włącz „Wygładzanie przepływu ekstruzji” (ERS), aby dodatkowo wygładzić zmiany przepływu.\n"
"\n"
"Uwaga: gdy ta opcja jest włączona, obrysy nawisów są traktowane jak nawisy, co oznacza, że prędkość nawisu jest stosowana nawet wtedy, gdy obrys nawisu jest częścią mostu.\n"
-"Na przykład gdy obrysy są w 100% nawisem, bez podpierającej ich od spodu ściany, zostanie zastosowana prędkość nawisu 100%."
+"Na przykład gdy obrysy są w 100% nawisem, bez podpierającej ich od spodu ściany, zostanie zastosowana prędkość nawisu 75%, ograniczona prędkością mostu."
msgid "mm/s or %"
msgstr "mm/s lub %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Szybkość druku zewnętrznych widocznych obrysów mostu.\n"
"\n"
-"Ponadto, jeśli opcja zwalniania na łukach jest wyłączona lub włączony jest klasyczny tryb druku nawisów, to szybkość druku ścian nawisu, które mają wsparcie mniejsze niż 13%, będzie taka sama, niezależnie od tego, czy są częścią mostu, czy nawisu."
+"Ponadto, jeśli opcja „Zwalnienie na łukach” jest wyłączona, ta szybkość będzie stosowana do ścian nawisu, które mają wsparcie mniejsze niż 13%, niezależnie od tego, czy są częścią mostu, czy nawisu."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Prędkość wewnętrznych mostów. Jeśli wartość jest wyrażona w procentach, będzie obliczana na podstawie prędkości mostu. Wartość domyślna wynosi 150%."
@@ -14757,12 +15893,56 @@ msgstr "Prędkość wewnętrznych mostów. Jeśli wartość jest wyrażona w pro
msgid "This is the distance from the model to the outermost brim line."
msgstr "Odległość od modelu do najbardziej zewnętrznej linii brimu"
+# AI Translated
+msgid "Leading brim length"
+msgstr "Długość brimu natarcia"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Tylko drukarki taśmowe. Wydłuża brim PRZED obiektem wzdłuż taśmy, na każdej krawędzi obszaru styku zwróconej w dół taśmy - zarówno przy pierwszym zetknięciu obiektu z taśmą, jak i przy każdej wyspie, która opada na nią później. Ten fartuch jest układany na taśmie, zanim dotrze do niej obiekt, więc krawędź natarcia ma się czego trzymać.\n"
+"\n"
+"Mierzona na powierzchni taśmy i dodawana do wartości Szerokość brimu: brim sięga na Odstęp brimu od obiektu + Długość brimu natarcia + Szerokość brimu przed obiektem. Ustaw Odstęp brimu od obiektu na 0, w przeciwnym razie fartuch nie dotknie obiektu, który ma zakotwiczać.\n"
+"\n"
+"Na pochylonej taśmie każda warstwa układa jeden pas brimu, więc grubość powstałego arkusza brimu zależy od przepływu, a nie od wysokości warstwy. Do jej dostrojenia użyj opcji Współczynnik przepływu brimu.\n"
+"\n"
+"Ustaw 0, aby wyłączyć."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Dodatkowa szerokość brimu"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Tylko drukarki taśmowe. Poszerza brim NA BOKI, w poprzek taśmy, bez wydłużania go dalej przed obiektem ani za nim. Używaj, gdy część potrzebuje na swojej długości lepszej przyczepności, niż zapewnia sama Szerokość brimu.\n"
+"\n"
+"Mierzona na powierzchni taśmy i dodawana do wartości Szerokość brimu: brim sięga na Odstęp brimu od obiektu + Szerokość brimu + Dodatkowa szerokość brimu po obu stronach obiektu. Aby zamiast tego wydłużyć brim przed obiektem, użyj opcji Długość brimu natarcia.\n"
+"\n"
+"Ustaw 0, aby wyłączyć."
+
msgid "Brim type"
msgstr "Rodzaj brimu"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "To kontroluje generowanie brimu na zewnętrznej i/lub wewnętrznej stronie modeli. Auto oznacza, że szerokość Brimu jest analizowana i obliczana automatycznie."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Tylko krawędź natarcia"
+
msgid "Brim-object gap"
msgstr "Odstęp brimu od obiektu"
@@ -15069,6 +16249,9 @@ msgstr ""
"2. Ograniczone filtrowanie – tworzy mosty wewnętrzne na mocno nachylonych powierzchniach, unikając tworzenia niepotrzebnych mostów wewnętrznych. Działa to dobrze w przypadku trudnych modeli.\n"
"3. Brak filtrowania – tworzy mosty wewnętrzne nad każdym potencjalnym wewnętrznym występem. Ta opcja jest przydatna w przypadku modeli o mocno nachylonych górnych powierzchniach, ale w większości przypadków tworzy zbyt wiele zbędnych mostów."
+msgid "Filter"
+msgstr "Filtr"
+
msgid "Limited filtering"
msgstr "Ograniczona filtracja"
@@ -15084,8 +16267,9 @@ msgstr "Maksymalna długość mostów, które nie potrzebują podpór. Ustaw na
msgid "End G-code"
msgstr "Końcowy G-code"
-msgid "Add end G-Code when finishing the entire print."
-msgstr "Końcowy G-code po zakończeniu całego druku"
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
+msgstr "Końcowy G-code po zakończeniu całego druku."
msgid "Between Object G-code"
msgstr "G-code między obiektami"
@@ -15280,8 +16464,9 @@ msgstr "Prędkość druku zewnętrznej ściany, która jest najbardziej widoczn
msgid "Small perimeters"
msgstr "Małe obrysy"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "To ustawienie reguluje prędkość obrysów posiadających promień <= próg małego obrysu (zazwyczaj chodzi o otwory). Jeśli ustawisz wartość procentową (np. 80%) to zostanie obliczona z prędkości obrysów ustawionej powyżej. Ustaw zero, aby użyć ustawień automatycznych."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "To ustawienie reguluje prędkość obrysów posiadających promień <= small_perimeter_threshold (zazwyczaj chodzi o otwory). Jeśli ustawisz wartość procentową (np. 80%), zostanie obliczona z prędkości ściany zewnętrznej ustawionej powyżej."
msgid "Small perimeters threshold"
msgstr "Próg małego obrysu"
@@ -15294,8 +16479,8 @@ msgid "Small support perimeters"
msgstr "Małe obrysy podpór"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Tak samo jak „Małe obrysy”, ale dla podpór. To osobne ustawienie wpływa na prędkość podpór dla obszarów <= `small_support_perimeter_threshold`. Jeśli wyrażone w procentach (na przykład: 80%), zostanie obliczone na podstawie powyższego ustawienia prędkości podpór lub warstwy łączącej podpór. Ustaw zero, aby wybrać automatycznie."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Tak samo jak „Małe obrysy”, ale dla podpór. To osobne ustawienie wpływa na prędkość podpór dla obszarów <= `small_support_perimeter_threshold`. Jeśli wyrażone w procentach (na przykład: 80%), zostanie obliczone na podstawie powyższego ustawienia prędkości podpór lub warstwy łączącej podpór."
# AI Translated
msgid "Small support perimeters threshold"
@@ -15308,22 +16493,23 @@ msgstr "Ustawia próg długości małego obrysu podpory. Domyślny próg to 0 mm
msgid "Walls printing order"
msgstr "Kolejność drukowania ścian"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
-"Sekwencja druku zewnętrznych i wewnętrznych ścian.\n"
+"Kolejność druku ścian wewnętrznych i zewnętrznych.\n"
"\n"
-"Użyj opcji „wewnętrzna/zewnętrzna” dla najlepszego efektu nawisów. Jest to spowodowane tym, że ściany zwisające mogą przylegać do sąsiednich obwodów podczas drukowania. Jednakże, opcja ta skutkuje delikatnie obniżoną jakością powierzchni, ponieważ zewnętrzny obrys jest deformowany przez ścianę wewnętrzną, która jest do niej dociskana.\n"
+"Użyj „Wewnętrzna/zewnętrzna”, aby uzyskać najlepsze nawisy. Dzieje się tak, ponieważ nawisające ściany mogą podczas druku przylegać do sąsiedniego obrysu. Ta opcja nieznacznie obniża jednak jakość powierzchni, ponieważ zewnętrzny obrys jest deformowany przez docisk do obrysu wewnętrznego.\n"
"\n"
-"Użyj opcji „wewnętrzna/zewnętrzna/wewnętrzna” dla najlepszego wykończenia zewnętrznej powierzchni i dokładności wymiarowej, ponieważ zewnętrzna ściana jest drukowana niezakłócona przez wewnętrzny obwód. Jednak wydajność druku przy nawisach będzie niższa, ponieważ nie ma wewnętrznego obwodu, który mógłby podeprzeć druk zewnętrznej ściany. Ta opcja wymaga co najmniej 3 ścian, aby była skuteczna, ponieważ najpierw drukuje wewnętrzne ściany zaczynając od trzeciego obwodu, następnie zewnętrzny obwód i w końcu pierwszy wewnętrzny obwód. W większości przypadków ta opcja jest polecana jako alternatywa dla opcji zewnętrzna/wewnętrzna.\n"
+"Użyj „Wewnętrzna/zewnętrzna/wewnętrzna”, aby uzyskać najlepsze wykończenie powierzchni zewnętrznej i dokładność wymiarową, ponieważ ściana zewnętrzna jest drukowana bez wpływu obrysu wewnętrznego. Pogorszy się jednak jakość nawisów, ponieważ nie ma obrysu wewnętrznego, do którego można by drukować ścianę zewnętrzną. Aby ta opcja działała skutecznie, wymaga co najmniej 3 ścian: najpierw drukuje ściany wewnętrzne od 3. obrysu wzwyż, następnie obrys zewnętrzny, a na końcu pierwszy obrys wewnętrzny. W większości przypadków ta opcja jest zalecana zamiast „Zewnętrzna/wewnętrzna”.\n"
"\n"
-"Użyj opcji „zewnętrzna/wewnętrzna”, aby uzyskać taką samą jakość zewnętrznej ściany i precyzję wymiarową jak w opcji „wewnętrzna/zewnętrzna/wewnętrzna”. Jednakże, szwy na osi Z będą wydawać się mniej spójne, ponieważ pierwsza ekstruzja nowej warstwy rozpoczyna się na widocznej powierzchni."
+"Użyj „Zewnętrzna/wewnętrzna”, aby uzyskać taką samą jakość ściany zewnętrznej i dokładność wymiarową jak przy opcji „Wewnętrzna/zewnętrzna/wewnętrzna”. Szwy Z będą jednak wyglądać mniej spójnie, ponieważ pierwsza ekstruzja nowej warstwy zaczyna się na widocznej powierzchni."
msgid "Inner/Outer"
msgstr "Wewnętrzna/zewnętrzna"
@@ -15966,9 +17152,6 @@ msgstr "Cena filamentu. Tylko do celów statystycznych"
msgid "money/kg"
msgstr "zł/kg"
-msgid "Vendor"
-msgstr "Dostawca"
-
msgid "Vendor of filament. For show only."
msgstr "Dostawca filamentu. Tylko do celów prezentacyjnych"
@@ -16045,6 +17228,92 @@ msgstr "Wypełnienie wielolinijkowe"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Wypełnienie przy użyciu wielu linii, jeśli jest to obsługiwane przez wybrany wzór wypełnienia."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Gęstość adaptacyjna (eksperymentalna)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Stopniuje wypełnienie typu Gyroidalny i TPMS wewnątrz obiektu: jego komórki rosną od powierzchni obiektu w kierunku jego środka. Przy powierzchni używana jest gęstość wypełnienia, a w środku gęstość wewnętrzna.\n"
+"Odkształcenie wg odległości, Płynne przejście i Powłoki schodkowe podążają za odległością od najbliższej powierzchni, w tym górnej i dolnej, z gęstością wewnętrzną w punkcie najbardziej od niej oddalonym:\n"
+" - Odkształcenie wg odległości: jeden ciągły wzór, rozciągany i ścinany tam, gdzie odległość zmienia się w różnych kierunkach, jak w płytach i długich częściach.\n"
+" - Płynne przejście: wzory sąsiednich gęstości przenikają się nawzajem, z małymi pętlami w miejscach styku.\n"
+" - Powłoki schodkowe: powłoki zwykłego wzoru o gęstościach różniących się około 1,5 raza, z liniami połączonymi wzdłuż granic powłok.\n"
+" - Płaty: podąża za kształtem 3D obiektu, w tym jego górą i dołem. Każdy płat, czyli część połączona z resztą węższą szyjką, jest stopniowany w kierunku własnego środka.\n"
+" - Prostopadle do Z, Y lub X: podąża za przekrojami obiektu prostopadłymi do tej osi, więc gęstość nie zmienia się wzdłuż niej."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Odkształcenie wg odległości"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Płynne przejście"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Powłoki schodkowe"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Płaty"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Prostopadle do Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Prostopadle do Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Prostopadle do X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Gęstość wewnętrzna"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Gęstość wypełnienia adaptacyjnego w środku obiektu."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Gradient adaptacyjny"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Jak zmienia się gęstość od powierzchni do środka obiektu.\n"
+"Liniowy: gęstość zmienia się w stałym tempie.\n"
+"Kwadratowy: gęstość pozostaje bliska gęstości wypełnienia przy powierzchni i zmienia się szybciej w kierunku środka.\n"
+"Wykładniczy: gęstość zmienia się szybko tuż pod powierzchnią i wyrównuje się w kierunku środka."
+
+# AI Translated
+msgid "Linear"
+msgstr "Liniowy"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Kwadratowy"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Wykładniczy"
+
# AI Translated
msgid "Z-buckling bias optimization (experimental)"
msgstr "Optymalizacja odporności na wyboczenie w osi Z (eksperymentalne)"
@@ -16075,8 +17344,9 @@ msgstr "Linie"
msgid "Grid"
msgstr "Siatka"
+# AI Translated
msgid "Tri-hexagon"
-msgstr "Trójkątne"
+msgstr "Trójkątno-sześciokątne"
msgid "Cubic"
msgstr "Sześcienny"
@@ -16106,8 +17376,9 @@ msgstr "Boczny plaster miodu"
msgid "Lateral Lattice"
msgstr "Siatka 2D"
+# AI Translated
msgid "Cross Hatch"
-msgstr "Krzyżowy podparty"
+msgstr "Kreskowanie krzyżowe"
msgid "TPMS-D"
msgstr "TPMS-D"
@@ -16200,14 +17471,16 @@ msgstr "Wysokość pierwszej warstwy"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Wysokość pierwszej warstwy. Nieznaczne zwiększenie grubości pierwszej warstwy może poprawić przyczepność do stołu"
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Prędkość pierwszej warstwy z wyjątkiem pełnego wypełnienia"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Prędkość ścian i brimu na pierwszej warstwie."
msgid "First layer infill"
msgstr "Wypełnienie pierwszej warstwy"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Prędkość pełnego wypełnienia na pierwszej warstwie"
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Prędkość pierwszej warstwy poza ścianami i brimem, na przykład dla wypełnienia, wypełniania szczelin i podpór."
msgid "First layer travel speed"
msgstr "Prędkość przemieszczenia pierwszej warstwy"
@@ -16686,6 +17959,10 @@ msgstr "Rodzaj G-code"
msgid "What kind of G-code the printer is compatible with."
msgstr "Z jakim rodzajem G-code drukarka jest kompatybilna."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (starsza wersja)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16935,16 +18212,18 @@ msgstr "Szerokość linii wewnętrznego wypełnienia. Jeśli jest wyrażona w pr
msgid "Infill/wall overlap"
msgstr "Nakładanie wypełnienia na obrysy"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Obszar wypełnienia jest nieznacznie powiększony, aby częściowo zachodzić na ścianę i tym zapewnić lepsze połączenie. Wartość procentowa odnosi się do szerokości linii wypełnienia. Ustaw tę wartość na około 10-15%, aby uniknąć nadmiernej ekstruzji materiału, co może prowadzić do nierówności na górnej powierzchni wydruku."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Obszar wypełnienia jest nieznacznie powiększony, aby częściowo zachodzić na ścianę i tym zapewnić lepsze połączenie. Wartość procentowa odnosi się do szerokości linii wewnętrznej ściany. Ustaw tę wartość na około 10-15%, aby uniknąć nadmiernej ekstruzji materiału, co może prowadzić do nierówności na górnej powierzchni wydruku."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Nachodzenie pełnego wypełnienia na ściany"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "Górny obszar wypełnienia jest nieznacznie powiększony, aby zachodził na ścianę w celu lepszego połączenia i zminimalizowania pojawiania się otworów w miejscu, w którym górne wypełnienie styka się ze ścianami. Wartość 25-30% jest dobrym punktem wyjścia, minimalizującym pojawianie się otworów. Wartość procentowa odnosi się do szerokości linii wypełnienia"
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "Górny obszar wypełnienia jest nieznacznie powiększony, aby zachodził na ścianę w celu lepszego połączenia i zminimalizowania pojawiania się otworów w miejscu, w którym górne wypełnienie styka się ze ścianami. Wartość 25-30% jest dobrym punktem wyjścia, minimalizującym pojawianie się otworów. Wartość procentowa odnosi się do szerokości linii wewnętrznej ściany."
msgid "This is the speed for internal sparse infill."
msgstr "Prędkość wewnętrznego wypełnienia"
@@ -16970,8 +18249,9 @@ msgstr "Maksymalna szerokość segmentu. Wartość zero wyłącza tę funkcję."
msgid "Interlocking depth of a segmented region"
msgstr "Głębokość zazębiania się podzielonego na segmenty obszaru"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Głębokość zazębiania się podzielonego na segmenty obszaru. Zostanie ona zignorowana, jeśli „mmu_segmented_region_max_width” wynosi zero lub jeśli „mmu_segmented_region_interlocking_depth” jest większa niż „mmu_segmented_region_max_width”. Wartość zero wyłącza tę funkcję."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Głębokość zazębiania się podzielonego na segmenty obszaru. Na co drugiej warstwie podzielony na segmenty obszar jest ograniczony do tej głębokości. Zostanie ona zignorowana, jeśli włączone jest „interlocking_beam”. Wartość zero wyłącza tę funkcję."
msgid "Use beam interlocking"
msgstr "Użyj struktury zazębiającej"
@@ -17084,11 +18364,11 @@ msgstr "Kąt minimalizacji wysokości ściany"
# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Zmniejsza wysokość obrysów górnej powierzchni, aby dopasować je do wysokości krawędzi modelu.\n"
-"Dotyczy obrysów o nachyleniu mniejszym niż ten kąt (w stopniach).\n"
+"Dotyczy obrysów o nachyleniu większym niż ten kąt (w stopniach).\n"
"Rozsądna wartość to 35. Ustaw 0, aby wyłączyć."
# AI Translated
@@ -17173,17 +18453,21 @@ msgstr "Maksymalna prędkość Z"
msgid "Maximum speed E"
msgstr "Maksymalna prędkość E"
-msgid "Maximum X speed"
-msgstr "Maksymalna prędkość X"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Maksymalna prędkość osi X"
-msgid "Maximum Y speed"
-msgstr "Maksymalna prędkość Y"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Maksymalna prędkość osi Y"
-msgid "Maximum Z speed"
-msgstr "Maksymalna prędkość Z"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Maksymalna prędkość osi Z"
-msgid "Maximum E speed"
-msgstr "Maksymalna prędkość E"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Maksymalna prędkość osi E"
msgid "Maximum acceleration X"
msgstr "Maks. przyspieszenie X"
@@ -17722,7 +19006,7 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Możliwości wtyczek używane przez ten profil, zapisane jako name;uuid;capability."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr "Wtyczki Pythona wywoływane na każdym etapie potoku cięcia w celu odczytu i modyfikacji pośrednich danych cięcia, w tym końcowego etapu postprocessingu G-code. Badawcze/eksperymentalne."
msgid "Printer type"
@@ -18095,8 +19379,9 @@ msgstr "Szwy ukośne dla wewnętrznych obwodów"
msgid "Use scarf joint for inner walls as well."
msgstr "Zastosuj szwy ukośne również do wewnętrznych obrysów."
-msgid "Role base wipe speed"
-msgstr "Prędkość wycierania dyszy w oparciu o rolę ekstruzji"
+# AI Translated
+msgid "Role based wipe speed"
+msgstr "Prędkość wycierania zależna od trybu ekstruzji"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
msgstr "Szybkość wycierania dyszy drukującej jest ustalana na podstawie prędkości aktualnie używanej w procesie ekstruzji. Na przykład, jeżeli wycieranie jest przeprowadzane zaraz po wydrukowaniu zewnętrznej ścianki modelu, to dla wycierania dyszy wykorzystywana jest prędkość, która została zastosowana przy drukowaniu tej ścianki."
@@ -18188,16 +19473,15 @@ msgstr "Ogranicza pętle skirtu/osłony przeciwprzeciągowej do jednej ściany p
msgid "Draft shield"
msgstr "Osłona przeciwprzeciągowa"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
-"Draft Shield („ochrona przed przeciągiem”)jest przydatna do ochrony wydruku z ABS lub ASA przed wypaczaniem i oderwaniem się od stołu drukarki z powodu podmuchów powietrza. Zazwyczaj jest to potrzebne tylko w przypadku drukarek otwartych, czyli bez obudowy.\n"
+"Osłona przeciwprzeciągowa jest przydatna do ochrony wydruku z ABS lub ASA przed wypaczaniem i oderwaniem się od stołu drukarki z powodu podmuchów powietrza. Zazwyczaj jest potrzebna tylko w przypadku drukarek otwartych, czyli bez obudowy.\n"
"\n"
-"Włączony = skirt ma wysokość równą najwyższemu wydrukowanemu obiektowi. W przeciwnym razie stosuje się „wysokość obramowania”.\n"
-"Uwaga: Aktywując funkcję Draft Shield, Skirt zostanie wydrukowany w takiej odległości od obiektu jak określono w odstęp Skirtu od obiektu. Jeśli w tym samym czasie Brim jest też aktywny, może dojść do jego przecięcia się ze Skirt-em. Aby temu zapobiec, zwiększ wartość odległości od Skirtu\n"
+"Włączona = skirt ma wysokość równą najwyższemu wydrukowanemu obiektowi. W przeciwnym razie stosuje się „Wysokość skirt”."
msgid "Enabled"
msgstr "Włączony"
@@ -18367,6 +19651,130 @@ msgstr "Pojedynczy extruder wielomateriałowy"
msgid "Use single nozzle to print multi filament."
msgstr "Użyj pojedynczej dyszy do drukowania wieloma filamentami"
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "Drukarka IDEX/IQEX"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Włącza druk równoległy w drukarkach z wieloma niezależnymi karetkami (IDEX, IQEX i podobnych)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Strefy zarządzane przez oprogramowanie sprzętowe"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Gdy ta opcja jest włączona, slicer generuje G-code z zawartością strefy głównej wyśrodkowaną względem początku układu stołu (0,0). Oprogramowanie sprzętowe drukarki odpowiada za umieszczenie kopii i odbić lustrzanych w położeniu każdej fizycznej strefy. Włączaj tylko w drukarkach, których oprogramowanie sprzętowe samo stosuje przesunięcia stref w trybie Kopia/Lustro (np. tryb duplikacji IDEX w RepRapFirmware). Nie ma wpływu w trybie głównym (Primary)."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Liczba portali"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Liczba niezależnych portali osi Y. 1 dla IDEX/IQEX z jedną prowadnicą. 2 dla systemów z dwoma portalami (dzieli stół na rzędy)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Narzędzia na portal"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Liczba niezależnych głowic na portal wzdłuż osi X. 2 dla układów typu IDEX."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Pozycja narzędzia 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Fizyczne położenie na stole, w którym znajduje się narzędzie T0 (indeks 0). Określa, jak indeksy narzędzi są przypisywane do stref stołu. W układach z jednym portalem (IDEX) liczy się tylko lewo/prawo; w układach z dwoma portalami (IQEX) można wybrać każdy z czterech narożników (przód = mniejsze Y / blisko operatora, tył = większe Y / tył maszyny)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Odstęp dyszy X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Odległość (mm) od dyszy do krawędzi karetki po stronie kolizji w osi X. Służy do obliczania szerokości pasa wykluczenia kolizji na każdej granicy X."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Odstęp dyszy Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Odległość (mm) od dyszy do krawędzi karetki po stronie kolizji w osi Y. Służy do obliczania szerokości pasa wykluczenia kolizji na każdej granicy Y."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Margines bezpieczeństwa"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Nieblokujący, informacyjny pas odstępu (mm) rysowany wewnątrz strefy głównej na każdej granicy karetki. Części umieszczone w tym pasie nadal zostaną pocięte; jest to wizualne przypomnienie, aby zostawić dodatkowy odstęp przy krawędzi strefy."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Motyw wizualizacji"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Motyw kolorów wizualizacji stref stołu IDEX/IQEX. W razie potrzeby wybierz motyw przyjazny dla osób z daltonizmem."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranopia / Protanopia (czerwony-zielony)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopia (niebieski-żółty)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Wysoki kontrast"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "Tryb druku IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Nazwa aktywnego równoległego trybu druku IDEX/IQEX lub „primary” dla druku jedną karetką. Wymaga włączenia opcji Drukarka IDEX/IQEX w profilu drukarki (Drukarka → Multimateriał → Konfiguracja IDEX/IQEX)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "Mapa filamentów głowic IDEX/IQEX"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Nadpisanie dla płyty przypisujące fizyczne głowice do gniazd filamentu (liczonych od 1). Puste oznacza, że każda głowica używa pierwszego filamentu, do którego kieruje ją fizyczna mapa ekstruderów drukarki."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "Nazwy trybów IDEX/IQEX"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Nazwy wyświetlane dla każdego zdefiniowanego przez użytkownika równoległego trybu druku IDEX/IQEX."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Aktywne narzędzia trybów IDEX/IQEX"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Przypisanie ról narzędzi dla każdego trybu. Format: \"idx:P,idx:C,idx:M\", gdzie P=Primary (Główny), C=Copy (Kopia), M=Mirror (Lustro) (np. \"0:P,1:C,2:M,3:M\"). Zarządzane przez edytor trybów IDEX/IQEX w profilu drukarki."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-code trybów IDEX/IQEX"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code lub wywołanie makra wstawiane na początku druku dla każdego trybu."
+
msgid "Manual Filament Change"
msgstr "Ręczna zmiana filamentu"
@@ -18414,8 +19822,9 @@ msgstr "Czekaj na temperaturę na wieży czyszczącej"
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
msgstr "Pobiera nowe narzędzie bez czekania, aż osiągnie temperaturę druku, przejeżdża do wieży czyszczącej i tam czeka na temperaturę, tuż przed płukaniem. Materiał wyciekający podczas nagrzewania trafia na wieżę zamiast na model, a przejazd nakłada się na nagrzewanie. Dotyczy wyłącznie drukarek z wieloma ekstruderami (wieloma głowicami) używających wieży czyszczącej typu 2. Firmware ani makro zmiany narzędzia nie mogą samodzielnie czekać na temperaturę. Gdy opcja jest wyłączona, oczekiwanie na temperaturę jest wysyłane bezpośrednio po poleceniu zmiany narzędzia."
+# AI Translated
msgid "No sparse layers (beta)"
-msgstr "Warstwy bez czyszczenia (beta)"
+msgstr "Bez rzadkich warstw (beta)"
# AI Translated
msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower, so the tower ends up below the model and the toolhead has to reach down to it. Layouts where that would collide with an already printed object are rejected. Has no effect with smooth timelapse or clumping detection, which need a tower on every layer."
@@ -18437,7 +19846,7 @@ msgstr ""
"\n"
"Łączone są tylko całe warstwy i nigdy powyżej maksymalnej wysokości warstwy dyszy drukującej wieżę (trzech czwartych średnicy dyszy, gdy pozostawiono 0). Dlatego co najmniej dwie warstwy muszą zmieścić się w tym limicie, zanim cokolwiek się zmieni: przy wysokości warstwy 0,2 mm i maksimum 0,3 mm nic nie jest łączone, a przy 0,1 mm trzy warstwy stają się jedną.\n"
"\n"
-"W przeciwieństwie do opcji „Warstwy bez czyszczenia” wieża nadal podąża za modelem, więc głowica nigdy nie musi po nią sięgać w dół. Nie działa z opcją „Warstwy bez czyszczenia”, płynnym timelapse ani wykrywaniem zlepiania, które wymagają wieży na każdej warstwie."
+"W przeciwieństwie do opcji „Bez rzadkich warstw” wieża nadal podąża za modelem, więc głowica nigdy nie musi po nią sięgać w dół. Nie działa z opcją „Bez rzadkich warstw”, płynnym timelapse ani wykrywaniem zlepiania, które wymagają wieży na każdej warstwie."
msgid "Prime all printing extruders"
msgstr "Wyczyść wszystkie używane ekstrudery"
@@ -18758,6 +20167,167 @@ msgstr "Próg nakładania"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Ustala próg nakładania się obwodów dla generowania podpór. Jeśli „Kąt progowy podpory” wynosi zero, podpory będą tworzone dla wiszących obszarów, gdzie górny obwód opiera się na dolnym w mniej niż zadanym procencie szerokości. Im mniejsza wartość tego parametru, tym ostrzejsze nawisy można wydrukować bez podpór."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Pochylenie stołu X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Kąt pochylenia stołu wzdłuż osi X. Wartość dodatnia pochyla stół tak, że strona +X jest wyżej, co przesuwa grawitację w kierunku -X i zwiększa nawisy po stronie +X. Wartość ujemna unosi stronę -X. Ustaw 0, aby nie pochylać w osi X. W trybie drukarki taśmowej wartość jest automatycznie synchronizowana z kątem taśmy."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Pochylenie stołu Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Kąt pochylenia stołu wzdłuż osi Y. Wartość dodatnia pochyla stół tak, że strona +Y jest wyżej, co przesuwa grawitację w kierunku -Y i zwiększa nawisy po stronie +Y. Wartość ujemna unosi stronę -Y. Ustaw 0, aby nie pochylać w osi Y."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Włącz druk taśmowy"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Włącza tryb drukarki taśmowej. Drukarki taśmowe używają jako powierzchni roboczej przenośnika taśmowego pochylonego pod kątem (zwykle 45 stopni). Slicer obróci płaszczyznę cięcia i przekształci współrzędne G-code dla pochylonej powierzchni roboczej."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Nieskończona oś Y"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Włącza nieskończoną oś Y w drukarkach taśmowych. Po włączeniu limit przestrzeni roboczej w osi Y zostaje w praktyce zniesiony, co pozwala drukować obiekty dowolnej długości w kierunku ruchu taśmy."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Oś pochylenia taśmy"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Oś, wokół której siatka jest obracana przed cięciem. To pochylenie drukarki taśmowej: obrót izometryczny (bez zniekształceń), który steruje również renderowaniem stołu i pochyleniem grawitacji dla podpór i który odwrotna transformacja G-code cofa przed ścinaniem/skalowaniem w układzie współrzędnych maszyny i przemapowaniem osi. X to typowe pochylenie portalu (taśma przesuwa się wzdłuż Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Kąt pochylenia taśmy"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Kąt pochylenia powierzchni taśmy w stopniach. Większość drukarek taśmowych używa 45°. Wartości dodatnie obracają przeciwnie do ruchu wskazówek zegara, patrząc wzdłuż dodatniej osi pochylenia; wartość bezwzględna jest też fizycznym pochyleniem taśmy używanym do renderowania stołu i grawitacji podpór."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Rozdziel pochylenie układu współrzędnych maszyny"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Nadpisanie dla ekspertów: ustawia kąt pochylenia układu współrzędnych maszyny (ścinanie/skalowanie G-code) niezależnie od kąta obrotu przed cięciem. Gdy opcja jest wyłączona, transformacja układu współrzędnych maszyny jest wyznaczana z kąta pochylenia taśmy, więc jeden kąt steruje oboma etapami. Włączaj tylko w celu kompensacji maszyny, której fizyczne pochylenie portalu różni się od obrotu przy cięciu."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Kąt pochylenia układu współrzędnych maszyny"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Kąt pochylenia (w stopniach) używany do wyznaczenia ścinania (cot) i skalowania (1/|sin|) układu współrzędnych maszyny stosowanych do G-code. Używany tylko wtedy, gdy włączona jest opcja „Rozdziel pochylenie układu współrzędnych maszyny”; w przeciwnym razie używany jest kąt pochylenia taśmy."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "Odwrócona X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Odwrócona Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Odwrócona Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "Przemapowanie X w G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Która oś cięcia odpowiada osi X maszyny w wyjściowym G-code. Stosowane PO cięciu, podczas generowania G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "Przemapowanie Y w G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Która oś cięcia odpowiada osi Y maszyny w wyjściowym G-code. Stosowane PO cięciu, podczas generowania G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "Przemapowanie Z w G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Która oś cięcia odpowiada osi Z maszyny w wyjściowym G-code. Stosowane PO cięciu, podczas generowania G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Przesunięcie Z podłoża podpór"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Przesuwa obliczone podłoże taśmy w górę lub w dół (mm). Wartości ujemne obniżają podłoże, dzięki czemu zachowuje się więcej podpór. Służy do diagnozowania problemów ze wzorem podłoża taśmy."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Włącz wieżę czyszczącą taśmy"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Zamiennik wieży czyszczącej dla drukarek taśmowych. Po włączeniu w drukarce taśmowej obok drukowanych części jest automatycznie generowany graniastosłup czyszczący, do którego kierowane jest płukanie przy zmianie filamentu (klasycznej wieży czyszczącej nie można używać w drukarkach taśmowych, ponieważ jej G-code omija transformację taśmy). Dostępne tylko w drukarkach taśmowych."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Szerokość wieży czyszczącej taśmy"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Szerokość (oś X maszyny, w poprzek taśmy) graniastosłupa czyszczącego, który jest automatycznie generowany w drukarkach taśmowych, gdy wieża czyszcząca taśmy jest włączona i używanych jest wiele filamentów. Płukanie przy zmianie filamentu jest kierowane do ekstruzji tego graniastosłupa zamiast do klasycznej wieży czyszczącej. Jego wysokość jest obliczana automatycznie na podstawie najgorszego przypadku objętości płukania na warstwę: szerszy graniastosłup będzie niższy."
+
msgid "Tree support branch angle"
msgstr "Kąt nachylenia gałęzi"
@@ -18948,13 +20518,11 @@ msgstr "Oddzielne wypełnienia"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
"Centruje wewnętrzne wypełnienie każdej części na niej samej, tak jakby była cięta osobno, zamiast na całym złożeniu. Części stykające się lub nakładające są traktowane jako jedna bryła i mają wspólny środek; oddzielne części (lub odrębne obiekty 3D) mają własne środki.\n"
"Przydatne, gdy złożenie grupuje kilka obiektów, z których każdy powinien zachować spójne, wycentrowane względem siebie wypełnienie.\n"
-"Dotyczy wzorów liniowych i siatkowych oraz wypełnień z szablonem obrotu.\n"
-"Wzory powiązane ze współrzędnymi globalnymi (Gyroidalny, Plaster miodu, TPMS, ...) pozostają bez zmian."
+"Sześcian adaptacyjny i Sześcian podparty zawsze centrują każdą część na niej samej, a wypełnienie Błyskawica jest generowane dla całego obiektu i pozostaje bez zmian."
# AI Translated
msgid "Center surface pattern on"
@@ -19086,25 +20654,27 @@ msgstr "Kąt w wierzchołku stożka, który jest używany do stabilizacji wieży
msgid "Maximum wipe tower print speed"
msgstr "Maksymalna prędkość drukowania wieży czyszczącej"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
-"Jest to funkcja odpowiedzialna za maksymalną prędkość drukowania podczas oczyszczania w wieży czyszczącej i drukowania jej rzadkich warstw.\n"
-"Podczas oczyszczania, jeśli prędkość rzadkiego wypełnienia jest niższa od prędkości obliczonej na podstawie maksymalnego natężenia przepływu filamentu, to właśnie ta niższa wartość zostanie wybrana.\n"
+"Maksymalna prędkość drukowania podczas oczyszczania na wieży czyszczącej i drukowania jej rzadkich warstw. Podczas oczyszczania, jeśli prędkość wypełnienia rzadkiego lub prędkość obliczona na podstawie maksymalnej prędkości przepływu filamentu jest niższa, zostanie użyta najniższa z nich.\n"
"\n"
-"Podczas drukowania rzadkich warstw, jeśli prędkość wewnętrznych obrysów lub prędkość obliczona na podstawie maksymalnego natężenia przepływu filamentu jest niższa, zostanie użyta właśnie ta niższa wartość.\n"
+"Podczas drukowania rzadkich warstw, jeśli prędkość wypełnienia rzadkiego lub prędkość obliczona na podstawie maksymalnej prędkości przepływu filamentu jest niższa, zostanie użyta najniższa z nich.\n"
"\n"
-"Przed zwiększeniem tego parametru powyżej domyślnej wartości 90mm/s, upewnij się, że Twoja drukarka potrafi niezawodnie mostkować przy wyższych prędkościach oraz że wyciek filamentu podczas jego zmiany jest dobrze kontrolowany.\n"
+"Zwiększenie tej prędkości może wpłynąć na stabilność wieży oraz zwiększyć siłę, z jaką dysza uderza w ewentualne grudki, które mogły powstać na wieży czyszczącej.\n"
"\n"
-"W przypadku zewnętrznych obwodów wieży czyszczącej prędkość jej obwodu wewnętrznego jest niezależna od tego ustawienia."
+"Przed zwiększeniem tego parametru powyżej domyślnej wartości 90 mm/s upewnij się, że Twoja drukarka potrafi niezawodnie mostkować przy wyższych prędkościach oraz że wyciek filamentu podczas zmiany narzędzia jest dobrze kontrolowany.\n"
+"\n"
+"W przypadku zewnętrznych obrysów wieży czyszczącej używana jest prędkość obrysu wewnętrznego, również ograniczona tym ustawieniem."
# AI Translated
msgid "Wall type"
@@ -19113,14 +20683,14 @@ msgstr "Typ ściany"
# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"Typ ściany zewnętrznej wieży czyszczącej.\n"
-"1. Prostokąt: domyślny typ ściany, prostokąt o stałej szerokości i wysokości.\n"
+"1. Prostokąt: prostokąt o stałej szerokości i wysokości.\n"
"2. Stożek: stożek z zaokrągleniem u dołu, pomagający ustabilizować wieżę czyszczącą.\n"
-"3. Żebro: dodaje cztery żebra do ściany wieży dla większej stabilności."
+"3. Żebro: domyślny typ ściany, dodający cztery żebra do ściany wieży dla większej stabilności."
msgid "Rectangle"
msgstr "Prostokąt"
@@ -19197,6 +20767,14 @@ msgstr "Po zmianie filamentu oczyszczanie odbywa się wewnątrz podpór obiektó
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "To jest obiekt wykorzystywany do oczyszczenia dyszy po zmianie filamentu, co pozwala zaoszczędzić filament i skrócić czas druku. W wyniku tego procesu kolory filamentów mogą się wymieszać."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Obiekt wieży czyszczącej taśmy"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Oznacza automatycznie wygenerowany graniastosłup czyszczący taśmy. Zarządzane automatycznie; nie ustawiaj ręcznie."
+
msgid "Maximal bridging distance"
msgstr "Maksymalna odległość mostów"
@@ -19212,8 +20790,9 @@ msgstr "Rozmieszczenie linii czyszczenia na wieży czyszczącej."
msgid "Extra flow for purging"
msgstr "Dodatkowy przepływ podczas czyszczenia"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Dodatkowy przepływ stosowany w ekstruzjach na wieży czyszczącej. Powoduje to, że linie czyszczące są grubsze lub cieńsze niż standardowo. Odstępy regulowane są automatycznie."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Dodatkowy przepływ stosowany w liniach czyszczących na wieży czyszczącej. Powoduje to, że linie czyszczące są grubsze niż standardowo. Odstępy regulowane są automatycznie."
msgid "Idle temperature"
msgstr "Temperatura w bezczynności"
@@ -19334,14 +20913,15 @@ msgstr "Minimalna grubość cienkich elementów. Elementy modelu cieńsze niż t
msgid "Minimum wall length"
msgstr "Minimalna szerokość ściany"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Zmodyfikuj tę wartość, aby uniknąć drukowania krótkich, otwartych ścianek, co może prowadzić do wydłużenia czasu druku. Wyższe wartości spowodują usunięcie większej ilości dłuższych ścianek.\n"
+"Zmodyfikuj tę wartość, aby uniknąć drukowania krótkich, otwartych ścianek, co może prowadzić do wydłużenia czasu druku. Wartość jest wielokrotnością szerokości ściany. Wyższe wartości spowodują usunięcie większej ilości dłuższych ścianek.\n"
"\n"
-"UWAGA: Ta wartość nie wpłynie na dolne i górne powierzchnie modelu i może zapobiec widocznym przerwom na zewnątrz. Aby dostosować czułość określającą, co jest uważane za górną powierzchnię, dostosuj „Próg jednej ściany” w zaawansowanych ustawieniach poniżej. „Próg jednej ściany” jest widoczny tylko wtedy, gdy to ustawienie jest ustawione na wartość wyższą niż domyślna wartość 0,5 lub jeśli opcja pojedynczych ścianek na górze jest włączona."
+"UWAGA: Ta wartość nie wpłynie na dolne i górne powierzchnie modelu, aby zapobiec widocznym przerwom na zewnątrz. Aby dostosować czułość określającą, co jest uważane za górną powierzchnię, dostosuj „Próg jednej ściany” w ustawieniach „Ściany i powierzchnie” poniżej. „Próg jednej ściany” jest widoczny tylko wtedy, gdy to ustawienie jest ustawione na wartość wyższą niż domyślna wartość 0,5 lub jeśli włączona jest opcja „Tylko jedna ściana na górnych powierzchniach”."
# AI Translated
msgid "Maximum wall resolution"
@@ -19356,7 +20936,7 @@ msgid "Maximum wall deviation"
msgstr "Maksymalna odchyłka ściany"
# AI Translated
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
msgstr "Maksymalna dopuszczalna odchyłka przy zmniejszaniu rozdzielczości dla ustawienia „Maksymalna rozdzielczość ściany”. Jej zwiększenie sprawi, że wydruk będzie mniej dokładny, ale G-code będzie mniejszy. „Maksymalna odchyłka ściany” ogranicza „Maksymalną rozdzielczość ściany”, więc w razie konfliktu pierwszeństwo ma „Maksymalna odchyłka ściany”."
msgid "First layer minimum wall width"
@@ -19451,8 +21031,11 @@ msgstr "Szerokość linii mostu nie może przekraczać średnicy dyszy: "
msgid "too large line width "
msgstr "zbyt duża szerokość linii "
-msgid " not in range "
-msgstr " nie w zakresie "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% jest poza zakresem [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Eksportuj projekt jako 3MF."
@@ -19602,6 +21185,14 @@ msgstr "Opcje orientacji"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Opcje orientacji: 0-wyłącz, 1-włącz, inne-auto"
+# AI Translated
+msgid "Repair"
+msgstr "Napraw"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Naprawia siatki modeli tak jak „Napraw model”: zamyka otwory i pęknięcia, orientuje je na zewnątrz i usuwa samoprzecięcia."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Kąt obrotu wokół osi Z w stopniach."
@@ -19713,6 +21304,12 @@ msgstr "Katalog wyjściowy"
msgid "This is the output directory for exported files."
msgstr "Katalog wyjściowy dla eksportowanych plików."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Poziom debugowania"
@@ -19885,6 +21482,55 @@ msgstr "Umożliwia drukowanie MM z jednym ekstruderem"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Czy w tym wydruku używane są dodatkowe obszary czyszczenia wielomateriałowego?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Początkowy ekstruder bez podpór"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Indeks pierwszego ekstrudera używanego do drukowania bez podpór, licząc od zera. To samo, co initial_no_support_tool."
+
+# AI Translated
+# Needs human review: Setting label: 'head wrap' is rendered as the nozzle/head being wrapped by filament (owinięcie), matching the wrap-detection strings; check against the Bambu feature wording.
+msgid "In head wrap detect zone"
+msgstr "W strefie wykrywania owinięcia głowicy"
+
+# AI Translated
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Wskazuje, czy pierwsza warstwa nakłada się na strefę owinięcia głowicy."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Bieżący typ stołu"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Nazwa aktualnie wybranego typu płyty stołu (np. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Aktywny tryb IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Nazwa aktywnego równoległego trybu druku IDEX/IQEX dla tej płyty (np. 'primary', 'mirror', 'copy'). Pusty ciąg, jeśli IDEX/IQEX nie jest włączony."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Indeks aktywnego trybu IDEX/IQEX"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Indeks aktywnego równoległego trybu druku IDEX/IQEX w imex_mode_names, licząc od zera."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code aktywnego trybu IDEX/IQEX"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Surowy szablon G-code dla aktywnego równoległego trybu druku IDEX/IQEX, po obliczeniu zmiennych. Zmienne globalne zdefiniowane tutaj przechodzą do machine_start_gcode."
+
msgid "Volume per extruder"
msgstr "Objętość na extruder"
@@ -20035,6 +21681,18 @@ msgstr "Podaj nazwę pliku wejściowego bez rozszerzenia"
msgid "Source filename of the first object, without extension."
msgstr "Nazwa pliku źródłowego pierwszego obiektu, bez rozszerzenia."
+# AI Translated
+msgid "Full input filename"
+msgstr "Pełna nazwa pliku wejściowego"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Nazwa pliku źródłowego pierwszego obiektu."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Nazwa ciętej płyty."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Wektor składa się z dwóch elementów: współrzędnych x i y punktu. Wartości w mm."
@@ -20065,6 +21723,58 @@ msgstr "Prawy górny róg obwiedni stołu roboczego"
msgid "Size of the print bed bounding box"
msgstr "Rozmiar graniczny obszaru stołu roboczego"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Środek pierwszej warstwy bez wieży czyszczącej"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Wysokość pierwszej warstwy."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Wektor temperatur stołu dla każdego ekstrudera/filamentu."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Wektor temperatur stołu pierwszej warstwy dla każdego ekstrudera/filamentu. Zawiera tę samą wartość co first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Temperatura stołu pierwszej warstwy (początkowy ekstruder)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Temperatura stołu pierwszej warstwy dla początkowego ekstrudera. To samo co bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Wektor temperatur komory dla każdego ekstrudera/filamentu."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Wektor minimalnych temperatur komory dla każdego ekstrudera/filamentu."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Ogólna temperatura komory"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Ogólna temperatura komory. Wartość ta jest maksymalną temperaturą komory spośród wszystkich używanych ekstruderów/filamentów."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Wektor temperatur stołu pierwszej warstwy dla każdego ekstrudera/filamentu. Zawiera tę samą wartość co bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Temperatura pierwszej warstwy"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Wektor temperatur pierwszej warstwy dla każdego ekstrudera/filamentu."
+
msgid "Timestamp"
msgstr "Sygnatura czasowa"
@@ -20110,8 +21820,9 @@ msgstr "Nazwa fizycznej drukarki używanej do przygotowywania pliku do druku."
msgid "Layer number"
msgstr "Numer warstwy"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Indeks aktualnej warstwy uwzględniający zero (pierwsza warstwa ma wartość 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Indeks bieżącej warstwy. Liczony od zera (tzn. pierwsza warstwa ma numer 0), z wyjątkiem G-code zmiany trybu ekstruzji, gdzie jest liczony od jedynki."
msgid "Layer Z"
msgstr "Warstwa Z"
@@ -20131,6 +21842,252 @@ msgstr "ID ekstrudera filamentu"
msgid "The current extruder ID. The same as current_extruder."
msgstr "ID obecnie wybranego ekstrudera. Taki sam jak current_extruder"
+# AI Translated
+msgid "Previous extruder"
+msgstr "Poprzedni ekstruder"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Indeks ekstrudera, który jest rozładowywany. Indeks liczony od zera (pierwszy ekstruder ma indeks 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Następny ekstruder"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Indeks ekstrudera, który jest ładowany. Indeks liczony od zera (pierwszy ekstruder ma indeks 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Względna oś E"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Wskazuje, czy używane jest pozycjonowanie względne."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Liczba zmian narzędzi"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "Liczba zmian narzędzi podczas druku."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Poprzednia długość retrakcji"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Długość retrakcji poprzedniego filamentu."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Nowa długość retrakcji"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Długość retrakcji nowego filamentu."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Poprzednia długość retrakcji przy zmianie narzędzia"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Długość retrakcji poprzedniego filamentu przy zmianie narzędzia."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Nowa długość retrakcji przy zmianie narzędzia"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "Długość retrakcji nowego filamentu przy zmianie narzędzia."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Poprzednia temperatura filamentu"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "Poprzednia temperatura filamentu."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Nowa temperatura filamentu"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "Nowa temperatura filamentu."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X po zmianie narzędzia"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "Pozycja X po zmianie narzędzia."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y po zmianie narzędzia"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "Pozycja Y po zmianie narzędzia."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z po zmianie narzędzia"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "Pozycja Z po zmianie narzędzia."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Pierwsza objętość płukania"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Pierwsza objętość płukania."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Druga objętość płukania"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Druga objętość płukania."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Poprzednia prędkość posuwu E filamentu"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "Poprzednia prędkość posuwu ekstrudera dla filamentu."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Nowa prędkość posuwu E filamentu"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "Nowa prędkość posuwu ekstrudera dla filamentu."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Punkt przemieszczenia 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "Punkt przemieszczenia 1 X."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Punkt przemieszczenia 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Punkt przemieszczenia 1 Y."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Punkt przemieszczenia 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "Punkt przemieszczenia 2 X."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Punkt przemieszczenia 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Punkt przemieszczenia 2 Y."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Punkt przemieszczenia 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "Punkt przemieszczenia 3 X."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Punkt przemieszczenia 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Punkt przemieszczenia 3 Y."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Długość płukania 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "Pierwsza długość płukania."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Długość płukania 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "Druga długość płukania."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Długość płukania 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "Trzecia długość płukania."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Długość płukania 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "Czwarta długość płukania."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Tryb ekstruzji"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Nowy tryb/typ ekstruzji, który zostanie użyty\n"
+"Możliwe wartości:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Ostatni tryb ekstruzji"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Poprzednio użyty tryb/typ ekstruzji\n"
+"Możliwe wartości:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Błąd w archiwum zip"
@@ -20143,24 +22100,32 @@ msgstr "Generowanie regionów wypełnienia"
msgid "Generating infill toolpath"
msgstr "Generowanie ścieżki narzędzia wypełnienia"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Konturowanie w osi Z, warstwa %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Wykrywanie nawisów do automatycznego podnoszenia"
msgid "Checking support necessity"
msgstr "Sprawdzanie konieczności użycia podpór"
-msgid "floating regions"
-msgstr "unoszące się obszary"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Wydaje się, że obiekt %1% ma pływające obszary. Proszę ponownie ustawić obiekt lub włączyć generowanie podpór."
-msgid "floating cantilever"
-msgstr "nawisającą konstrukcje (cantilever)"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Wydaje się, że obiekt %1% ma niepodparty wspornik. Proszę ponownie ustawić obiekt lub włączyć generowanie podpór."
-msgid "large overhangs"
-msgstr "duże nawisy"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Wydaje się, że obiekt %s ma %s. Proszę ponownie ustawić obiekt lub włączyć generowanie podpór."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Wydaje się, że obiekt %1% ma duże nawisy. Proszę ponownie ustawić obiekt lub włączyć generowanie podpór."
msgid "Generating support"
msgstr "Generowanie podpór"
@@ -20171,8 +22136,9 @@ msgstr "Optymalizowanie ścieżki narzędzia"
msgid "Slicing mesh"
msgstr "Krojenie siatki"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Nie wykryto żadnych warstw. Możesz chcieć naprawić swoje pliki STL lub sprawdzić ich rozmiar lub grubość i spróbować ponownie.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Nie wykryto żadnych warstw. Możesz chcieć naprawić model lub sprawdzić jego rozmiar lub grubość i spróbować ponownie.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -20191,6 +22157,398 @@ msgstr ""
msgid "Object name"
msgstr "Nazwa obiektu"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Nie można zastosować operatora minus jednoargumentowego."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Nie można przekonwertować na liczbę całkowitą."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Nie można zaokrąglić wartości nienumerycznej."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Nie można zaokrąglić w dół wartości nienumerycznej."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Nie można zaokrąglić w górę wartości nienumerycznej."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Nie można zastosować operatora not."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Nie można dodawać typów nienumerycznych."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Nie można odejmować typów nienumerycznych."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Nie można mnożyć przez typ nienumeryczny."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Nie można dzielić typu nienumerycznego."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Nie można dzielić przez typ nienumeryczny."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Dzielenie przez zero"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "To nie jest wyrażenie logiczne"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Nie można porównać tych typów."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "To nie jest typ numeryczny."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: drugi parametr musi być liczbą całkowitą"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: trzeci parametr musi być liczbą całkowitą"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Lewa strona dopasowania wyrażenia regularnego musi być ciągiem znaków."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Kompilacja wyrażenia regularnego nie powiodła się: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "regex_replace(): pierwszy parametr musi być ciągiem znaków."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): pierwszy parametr (ciąg znaków do dopasowania) musi być ciągiem znaków"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): wzorzec musi być ciągiem znaków"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Kompilacja wyrażenia regularnego nie powiodła się"
+
+# AI Translated
+# Needs human review: English says 'non-boolean operators' but means operands; rendered as operandów. Source wording may need fixing.
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Nie można zastosować operacji logicznej do operandów nielogicznych."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Próba indeksowania zmiennej skalarnej"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Nieprawidłowy indeks wektora"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "Zmienna nie istnieje (w nieaktywnej gałęzi)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "Zmienna nie istnieje"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Próba odwołania się do niezdefiniowanej (nil) opcjonalnej zmiennej"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Indeksowanie pustej zmiennej wektorowej"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Próba odwołania się do niezdefiniowanego (nil) elementu wektora wartości opcjonalnych"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "Zmienna indeksująca musi być liczbą całkowitą"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Ujemny indeks wektora"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "To nie jest nazwa zmiennej"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "To nie jest nazwa zmiennej (w nieaktywnej gałęzi)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "Zmienna FloatOrPercent nie zdołała rozwiązać zależności \"ratio_over\""
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Nieobsługiwany typ zmiennej skalarnej"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Odwołanie do zmiennej wektorowej, gdy oczekiwany jest skalar"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Nieobsługiwany typ zmiennej wektorowej"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Nie można modyfikować zmiennej tylko do odczytu"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Prawa strona nie jest wyrażeniem numerycznym"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Oczekiwano liczby elementów, którymi ma zostać wypełniony wektor."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Podano ujemną liczbę elementów."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Prawa strona nie jest wyrażeniem logicznym"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Nieobsługiwany typ wyjściowej zmiennej skalarnej"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Odwołanie do wyjściowej zmiennej wektorowej, gdy oczekiwany jest skalar"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Indeks poza zakresem"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Nieobsługiwany typ wyjściowej zmiennej wektorowej"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Symbol jest już zdefiniowany w systemowym słowniku tylko do odczytu"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Symbol jest już zdefiniowany jako systemowa zmienna wyjściowa"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Zmienne globalne nie są dostępne w tym kontekście"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Nazwa zmiennej jest już zdefiniowana w zakresie lokalnym"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Nazwa zmiennej jest już zdefiniowana w zakresie globalnym"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Nie można przypisać wartości skalarnej do zmiennej wektorowej."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Nie można przypisać wartości wektorowej do zmiennej skalarnej."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Nie można utworzyć zmiennej wektorowej z pustej listy inicjalizacyjnej, ponieważ nie można wywnioskować jej typu."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Prawa strona jest nieprawidłowa: mieszanie typów numerycznych i logicznych."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Nie można przypisać skalara do wektora"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Niektóre elementy zmiennej wektorowej wartości opcjonalnych po prawej stronie są niezdefiniowane (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Lewa strona jest wektorem zmiennoprzecinkowym, a prawa nie jest."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Lewa strona jest wektorem całkowitoliczbowym, a prawa nie jest."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Lewa strona jest wektorem ciągów znaków, a prawa nie jest."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Lewa strona jest wektorem logicznym, a prawa nie jest."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Wektory po lewej i prawej stronie nie są zgodne."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Duplikowanie tego typu zmiennej wektorowej nie jest obsługiwane"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "parametr empty() nie jest zmienną wektorową"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "parametr size() nie jest zmienną wektorową"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Indeks niecałkowity nie może służyć do adresowania zmiennej wektorowej."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Generator liczb losowych nie jest dostępny w tym kontekście."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Błąd analizy w linii %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Błąd analizy w linii %1%. Oczekiwano znacznika %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Błąd analizy w linii %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "Wartość interpolacji musi być liczbą."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "Wartość X punktu tabeli musi być liczbą."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "Wartość Y punktu tabeli musi być liczbą."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Współrzędne X tabeli muszą rosnąć"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "Wartość interpolacji jest poza zakresem tabeli"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Nieznany błąd składni"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Nieprawidłowy tekst."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Nieprawidłowy blok tekstu."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Nieprawidłowe makro."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "To nie jest makro {if}{else}{endif}."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "To nie jest makro {switch}."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Oczekiwano starszego formatu rozwinięcia zmiennej"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Oczekiwano identyfikatora."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Oczekiwano wyrażenia warunkowego."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Oczekiwano wyrażenia logicznego."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Oczekiwano wyrażenia."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Oczekiwano klamry zamykającej lub parametru opcjonalnego."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Oczekiwano listy wzorców tekstowych (zwykły tekst lub wyrażenie regularne)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Oczekiwano odwołania do zmiennej."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Oczekiwano nazwy zmiennej."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Oczekiwano wyrażenia regularnego."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Nieprawidłowa sekwencja UTF-8"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Znaki spoza ASCII7 są dozwolone tylko wewnątrz bloków tekstu i literałów tekstowych, nie wewnątrz bloków kodu."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Nieprawidłowa sekwencja ucieczki"
+
msgid "Support: generate contact points"
msgstr "Podpory: tworzenie miejsc kontaktowych"
@@ -20207,6 +22565,10 @@ msgstr "Dostarczony plik nie mógł być odczytany, ponieważ jest pusty"
msgid "The file format is incompatible and cannot be parsed."
msgstr "Format pliku jest niezgodny i nie można go odczytać."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Nie udało się przekonwertować zasobu na STL za pomocą ModelIO."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Nieznany format pliku. Plik wejściowy musi mieć rozszerzenie .stl, .obj, .amf(.xml)."
@@ -20255,9 +22617,6 @@ msgstr "Rekalibracja"
msgid "Calibrate"
msgstr "Kalibruj"
-msgid "Finish"
-msgstr "Zakończ"
-
msgid "How can I use calibration results?"
msgstr "Jak używać wyniku kalibracji?"
@@ -20354,9 +22713,13 @@ msgstr ""
"W obrębie tego samego ekstrudera nazwa (%s) musi być unikalna, kiedy typ filamentu, średnica oraz przepływ dyszy są takie same. \n"
"Czy chcesz nadpisać poprzedni wynik?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "To urządzenie może przechowywać tylko %d wyników w historii dla jednej dyszy. Ten wynik nie zostanie zapisany."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Ten typ drukarki może przechowywać tylko %d wynik w historii dla jednej dyszy. Ten wynik nie zostanie zapisany."
+msgstr[1] "Ten typ drukarki może przechowywać tylko %d wyniki w historii dla jednej dyszy. Ten wynik nie zostanie zapisany."
+msgstr[2] "Ten typ drukarki może przechowywać tylko %d wyników w historii dla jednej dyszy. Ten wynik nie zostanie zapisany."
msgid "Connecting to printer..."
msgstr "Łączenie z drukarką..."
@@ -20579,9 +22942,13 @@ msgstr "Synchronizuj informacje o dyszy i AMS"
msgid "Please connect the printer first before synchronizing."
msgstr "Przed synchronizacją należy najpierw podłączyć drukarkę."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "Nie skonfigurowano informacji o dyszy drukarki %s. Proszę je skonfigurować przed kontynuowaniem kalibracji."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Nie skonfigurowano informacji o prawej dyszy drukarki. Proszę je skonfigurować przed kontynuowaniem kalibracji."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Nie skonfigurowano informacji o lewej dyszy drukarki. Proszę je skonfigurować przed kontynuowaniem kalibracji."
msgid "AMS and nozzle information are synced"
msgstr "Zsynchronizowano informacje AMS i dyszy."
@@ -20645,6 +23012,11 @@ msgstr "Z Prędkości Przepływu"
msgid "To Volumetric Speed"
msgstr "Do Prędkości Przepływu"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Krok"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Czy na pewno chcesz anulować to drukowanie?"
@@ -20670,9 +23042,13 @@ msgstr "Uwaga: Numer hotendu na %s jest powiązany z uchwytem. Po przeniesieniu
msgid "Action"
msgstr "Akcja"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "To urządzenie może przechowywać tylko %d wyników w historii dla jednej dyszy."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Ten typ drukarki może przechowywać tylko %d wynik w historii dla jednej dyszy."
+msgstr[1] "Ten typ drukarki może przechowywać tylko %d wyniki w historii dla jednej dyszy."
+msgstr[2] "Ten typ drukarki może przechowywać tylko %d wyników w historii dla jednej dyszy."
msgid "Edit Flow Dynamics Calibration"
msgstr "Edytuj kalibrację dynamiki przepływu"
@@ -20800,12 +23176,13 @@ msgstr ""
"Wartości przyspieszenia muszą być większe niż wartości prędkości.\n"
"Sprawdź wprowadzone dane."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Jeszcze niedostępne w drukarkach taśmowych — użyj zamiast tego metody Wieża PA."
+
msgid "Temperature calibration"
msgstr "Kalibracja temperatury"
-msgid "Filament type"
-msgstr "Rodzaj filamentu"
-
msgid "PLA"
msgstr "PLA"
@@ -20827,6 +23204,20 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+# AI Translated
+msgid "Test model"
+msgstr "Model testowy"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Standardowy"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Nawis"
+
msgid "Start temp: "
msgstr "Temp. początkowa: "
@@ -20953,10 +23344,6 @@ msgstr "Długość retrakcji na początku: "
msgid "End retraction length: "
msgstr "Długość retrakcji na końcu: "
-# AI Translated
-msgid "Test model"
-msgstr "Model testowy"
-
# AI Translated
msgid "Ringing Tower"
msgstr "Ringing Tower"
@@ -20994,8 +23381,12 @@ msgid "Frequency (Start / End): "
msgstr "Częstotliwość (początek / koniec): "
# AI Translated
-msgid "Start / End"
-msgstr "Początek / koniec"
+msgid "X Start / End: "
+msgstr "X początek / koniec: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y początek / koniec: "
# AI Translated
msgid "Frequency settings"
@@ -21042,8 +23433,12 @@ msgid "Frequency: "
msgstr "Częstotliwość: "
# AI Translated
-msgid "Damp"
-msgstr "Tłumienie"
+msgid "Frequency X / Y: "
+msgstr "Częstotliwość X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Tłumienie (początek / koniec): "
# AI Translated
msgid "RepRap firmware uses the same frequency for both axes."
@@ -21192,8 +23587,11 @@ msgstr "Włącz IFS"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "Wykryto %d slotów IFS w drukarce."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "Wykryto %d slot IFS w drukarce."
+msgstr[1] "Wykryto %d sloty IFS w drukarce."
+msgstr[2] "Wykryto %d slotów IFS w drukarce."
# AI Translated
msgid "This printer does not report a material station."
@@ -21323,8 +23721,10 @@ msgstr "Odejmij od"
msgid "Subtract with"
msgstr "Odejmij z"
-msgid "selected"
-msgstr "wybrane"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "Wybrano 1"
msgid "Part 1"
msgstr "Część 1"
@@ -21441,9 +23841,6 @@ msgstr "np. Basic, Matte, Silk, Marble"
msgid "Filament Preset"
msgstr "Ustawienie profilu filamentu"
-msgid "Create"
-msgstr "Utwórz"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "Dostawca nie jest wybrany, proszę ponownie wybrać producenta."
@@ -21756,6 +24153,10 @@ msgstr ""
"Profil drukarki oraz wszystkie ustawienia filamentu i procesu, które do niej należą.\n"
"Można je udostępniać innym osobom."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Dołącz niestandardową teksturę i model stołu"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21809,15 +24210,6 @@ msgstr "Uwaga: Jeśli ostatni profil tego filamentu zostanie usunięty, filament
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Nie można usunąć profili dziedziczonych przez inne profile"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Następujące ustawienia dziedziczą to ustawienie."
-msgstr[1] "Następujące ustawienia dziedziczą to ustawienie."
-msgstr[2] "Następujących ustawień dziedziczą to ustawienie."
-
-msgid "Delete Preset"
-msgstr "Usuń profil"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Czy na pewno usunąć wybrany profil?"
@@ -21894,10 +24286,12 @@ msgstr "Wartość początkowa, końcowa lub krokowa jest nieprawidłowa."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "Liczba ekstruderów i wybrana drukarka do kalibracji nie są zgodne."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "Średnica dyszy ekstrudera %s wynosi 0.2 mm i nie obsługuje automatycznej kalibracji dynamiki przepływu."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21913,6 +24307,12 @@ msgstr ""
"Średnica dyszy nie jest zgodna z aktualną średnicą dyszy drukarki.\n"
"Kliknij \"Synchronizuj\" i zrestartuj kalibrację."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Nie skonfigurowano informacji o dyszy drukarki %s. Proszę je skonfigurować przed kontynuowaniem kalibracji."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21990,6 +24390,11 @@ msgstr "Wykryj drukarkę Creality serii K"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Kliknij Skanuj, aby wyszukać drukarki serii K w Twojej sieci."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Model"
+
# AI Translated
msgid "Scan"
msgstr "Skanuj"
@@ -22012,8 +24417,11 @@ msgstr "Nie znaleziono drukarek serii K. Upewnij się, że drukarka jest w tej s
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "Znaleziono %zu drukarek Creality. Wybierz jedną i kliknij Użyj wybranej."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "Znaleziono %zu drukarkę Creality. Wybierz ją i kliknij Użyj wybranej."
+msgstr[1] "Znaleziono %zu drukarki Creality. Wybierz jedną i kliknij Użyj wybranej."
+msgstr[2] "Znaleziono %zu drukarek Creality. Wybierz jedną i kliknij Użyj wybranej."
# AI Translated
msgid "Active"
@@ -22132,8 +24540,13 @@ msgid "Failed to launch a new instance."
msgstr "Nie udało się uruchomić nowej instancji."
# AI Translated
-msgid "log(s)"
-msgstr "dziennik(i)"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d dziennik (%.2f %s)"
+msgstr[1] "%d dzienniki (%.2f %s)"
+msgstr[2] "%d dzienników (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -22188,17 +24601,37 @@ msgid "Authorizing..."
msgstr "Autoryzowanie..."
# AI Translated
-msgid "Error. Can't get API token for authorization"
-msgstr "Błąd. Nie można uzyskać tokenu API do autoryzacji"
+msgid "Maximum login retries exceeded"
+msgstr "Przekroczono maksymalną liczbę prób logowania"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "Błąd HTTP: %1%"
# AI Translated
msgid "Could not parse server response."
msgstr "Nie udało się przeanalizować odpowiedzi serwera."
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "Błąd. Nie można uzyskać tokenu API do autoryzacji"
+
# AI Translated
msgid "Error saving session to file"
msgstr "Błąd zapisu sesji do pliku"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "Połączenie z chmurą 3DPrinterOS działa poprawnie."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Zalogowano jako użytkownik: %1%"
+
# AI Translated
msgid "Error session check"
msgstr "Błąd sprawdzania sesji"
@@ -22235,6 +24668,42 @@ msgstr "Nieprawidłowe hasło"
msgid "Could not get resources to create a new connection"
msgstr "Nie udało się uzyskać zasobów do utworzenia nowego połączenia"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "Połączenie z UltiMaker działa poprawnie."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Nie udało się połączyć z UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Błąd podczas generowania danych uwierzytelniających! Szczegóły znajdziesz w logu."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "BŁĄD: ID lub KEY jest puste. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Nazwa użytkownika: %1% Hasło: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Dane uwierzytelniające oczekują na zatwierdzenie. Zatwierdź dostęp w oknie dialogowym na ekranie drukarki."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Nieprawidłowe dane uwierzytelniające"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Błąd: nie znaleziono danych uwierzytelniających!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Przesyłanie nie jest włączone na karcie FlashAir."
@@ -22352,6 +24821,14 @@ msgstr ""
"Treść wiadomości: „%1%”\n"
"Błąd: „%2%”"
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "Połączenie z ESP3D działa poprawnie."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Nie udało się połączyć z ESP3D"
+
msgid "No AMS"
msgstr "Brak AMS"
@@ -22423,6 +24900,11 @@ msgstr "Maksymalna liczba drukarek, które można wybrać, to %d"
msgid "No task"
msgstr "Brak zadania"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Wyświetl"
+
msgid "Edit Printers"
msgstr "Edycja drukarek"
@@ -22464,6 +24946,11 @@ msgstr "Drukowanie nie powiodło się"
msgid "Printing Pause"
msgstr "Drukowanie wstrzymane"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Przygotowanie"
+
msgid "Pending"
msgstr "W toku"
@@ -22496,9 +24983,6 @@ msgstr "Włącz inteligentne przypisywanie filamentu: przypisz jeden filament do
msgid "File Saving"
msgstr "Zapisywanie pliku"
-msgid "Don't remind me again"
-msgstr "Nie przypominaj mi ponownie"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Nie pojawi się już żadne wyskakujące okienko. Możesz to zmienić w \"Preferencjach\""
@@ -22525,16 +25009,24 @@ msgstr "Ręcznie przypisz filament do lewej lub prawej dyszy"
msgid "Global settings"
msgstr "Ustawienia globalne"
-msgid "Video tutorial"
-msgstr "Samouczek wideo"
-
msgid "(Sync with printer)"
msgstr "(Synchronizuj z drukarką)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Błąd: ekstruder %s nie ma dostępnej dyszy %s, bieżący wynik grupowania jest nieprawidłowy."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Błąd: lewy ekstruder nie ma dostępnej dyszy standardowej, bieżący wynik grupowania jest nieprawidłowy."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Błąd: lewy ekstruder nie ma dostępnej dyszy o wysokim przepływie, bieżący wynik grupowania jest nieprawidłowy."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Błąd: prawy ekstruder nie ma dostępnej dyszy standardowej, bieżący wynik grupowania jest nieprawidłowy."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Błąd: prawy ekstruder nie ma dostępnej dyszy o wysokim przepływie, bieżący wynik grupowania jest nieprawidłowy."
msgid "We will slice according to this grouping method:"
msgstr "Potniemy zgodnie z tą metodą grupowania:"
@@ -22578,9 +25070,6 @@ msgstr "Nie można połączyć się z SimplyPrint"
msgid "Internal error"
msgstr "Błąd wewnętrzny"
-msgid "Unknown error"
-msgstr "Nieznany błąd"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "Nie połączono z kontem SimplyPrint. Przejdź do opcji Połącz, aby go skonfigurować."
@@ -22588,6 +25077,16 @@ msgstr "Nie połączono z kontem SimplyPrint. Przejdź do opcji Połącz, aby go
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge zwrócił nieprawidłową odpowiedź JSON."
+# AI Translated
+msgid "Request failed"
+msgstr "Żądanie nie powiodło się"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Błąd lokalnego API Flashforge %1%: %2%"
+
# AI Translated
msgid "No Flashforge printers were discovered on the local network."
msgstr "W sieci lokalnej nie wykryto żadnych drukarek Flashforge."
@@ -22773,8 +25272,13 @@ msgstr "Ostrzeżenie: rodzaj brimu nie jest ustawiony na „malowane”. Uszy br
msgid "Set the brim type of this object to \"painted\""
msgstr "Ustaw typ brimu tego obiektu na \"malowane\"."
-msgid "invalid brim ears"
-msgstr " nieprawidłowe uszy brim"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d nieprawidłowe ucho brim"
+msgstr[1] "%d nieprawidłowe uszy brim"
+msgstr[2] "%d nieprawidłowych uszu brim"
msgid "Brim Ears"
msgstr "Uszy brim"
@@ -22803,6 +25307,7 @@ msgstr "Nie udało się pobrać informacji o pomijanych obiektach. Proszę spró
msgid "Failed to create the temporary folder."
msgstr "Nie udało się utworzyć folderu tymczasowego."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d wybrano"
@@ -22825,9 +25330,13 @@ msgstr "Pomiń wszystkie obiekty."
msgid "The printing job will be stopped. Continue?"
msgstr "Zadanie druku zostanie zatrzymane. Kontynuować?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "%d obiekty będą pomijane."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "Pomijanie %d obiektu."
+msgstr[1] "Pomijanie %d obiektów."
+msgstr[2] "Pomijanie %d obiektów."
msgid "This action cannot be undone. Continue?"
msgstr "Tego działania nie będzie można cofnąć. Kontynuować?"
@@ -22953,8 +25462,9 @@ msgstr "BRAK WYCISKANIA"
msgid "s"
msgstr "s"
+# AI Translated
msgid "Volumetric speed"
-msgstr "Prędkości Przepływu"
+msgstr "Prędkość przepływu"
msgid "Step file import parameters"
msgstr "Parametry importu pliku Step"
@@ -22995,6 +25505,44 @@ msgstr "Jeśli opcja jest włączona, powyższe wartości są zapisywane jako do
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Eksportuj profile"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Pokaż w folderze"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Usuń pakiet"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Anuluj subskrypcję pakietu"
+
+# AI Translated
+msgid "Update available"
+msgstr "Dostępna aktualizacja"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Nieautoryzowany pakiet"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Otwórz ten pakiet w przeglądarce"
+
+# AI Translated
+# Needs human review: One msgid serves the preset bundle Type column (next to 'Domyślny') and the plugin source badge; the neuter form is a compromise between pakiet (m.) and wtyczka (f.). Check both dialogs; the source may need a msgctxt.
+msgid "Subscribed"
+msgstr "Subskrybowane"
+
+# AI Translated
+# Needs human review: One msgid serves the preset bundle Type column (next to 'Domyślny') and the plugin source badge; the neuter form is a compromise between pakiet (m.) and wtyczka (f.). Check both dialogs; the source may need a msgctxt.
+msgid "Local"
+msgstr "Lokalne"
+
# AI Translated
msgid "Bundle folder does not exist."
msgstr "Folder pakietu nie istnieje."
@@ -23039,6 +25587,14 @@ msgstr "Anuluj subskrypcję pakietu"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Eksportuj do OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Eksportuj do folderu"
+
# AI Translated
msgid "Save preset bundle"
msgstr "Zapisz pakiet profili"
@@ -23134,6 +25690,11 @@ msgstr "Kontrola wilgotności AMS"
msgid "Filament Drying Settings"
msgstr "Ustawienia suszenia filamentu"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "h"
+
# AI Translated
msgid "Stopping"
msgstr "Zatrzymywanie"
@@ -23313,6 +25874,11 @@ msgstr "Rozpoczynanie: sprawdzanie wlotu powietrza"
msgid "Starting: Checking air vent"
msgstr "Rozpoczynanie: sprawdzanie wylotu powietrza"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Nie można utworzyć folderu %1%"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Filament może być niekompatybilny z obecnymi ustawieniami maszyny. Domyślny profil filamentu zostanie użyty."
@@ -23328,6 +25894,105 @@ msgstr "Filament może być niezgodny z bieżącymi ustawieniami urządzenia. U
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Model filamentu jest nieznany. Losowy profil filamentu zostanie użyty"
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Nieznany plik konfiguracyjny: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Nieprawidłowy plik konfiguracyjny: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "slot %1% -> slot %2%: filament mieszany"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "definicja filamentu mieszanego: osiągnięto limit slotów filamentu"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "osiągnięto limit slotów filamentu"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "limit filamentów drukarki wynosi %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "slot %1% -> slot %2%: nieprzypisany filament mieszany (limit filamentów drukarki wynosi %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "slot %1%: nieprzypisany filament mieszany (limit filamentów drukarki wynosi %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "slot %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "slot %1%: nie udało się zaimportować definicji filamentu mieszanego"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "wymaga co najmniej dwóch składników"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "składniki odwołują się do brakujących slotów"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "definicja filamentu mieszanego: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "slot %1%: nie udało się zaimportować definicji filamentu mieszanego (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "slot %1%: %2% -> %3% (zamiennik)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Nie udało się wczytać pliku konfiguracyjnego %1%\n"
+"Zalecane jest najpierw wyczyszczenie folderu %2%"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Nieprawidłowa wersja konfiguracji producenta %1%: %2%\n"
+"Zalecane jest najpierw wyczyszczenie folderu %3%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Nie udało się wczytać pliku konfiguracyjnego %1%: %2%\n"
+"Zalecane jest najpierw wyczyszczenie folderu %3%"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Ukryj płaszczyzny i osie odniesienia"
@@ -23641,6 +26306,11 @@ msgstr "Brak bryły powierzchniowej do pogrubienia — najpierw utwórz operacj
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Odniesienie / krzywa (płaszczyzna / oś / układ wsp. / helisa / rzutowanie)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Płaszczyzna"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Płaszczyzna odniesienia (odsunięta / pochylona / środkowa / styczna / dwie krawędzie / zgodna)"
@@ -23707,6 +26377,11 @@ msgstr "Przesuń i/lub obróć istniejącą bryłę"
msgid "Transform needs a body — add or import one first"
msgstr "Transformacja wymaga bryły — najpierw dodaj lub zaimportuj bryłę"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Lustrzane odbicie"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Odbij bryłę względem płaszczyzny"
@@ -23800,6 +26475,11 @@ msgstr "(brak)"
msgid "Hole / thread"
msgstr "Otwór / gwint"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Otwór"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Wywierć otwór wyśrodkowany na wybranej powierzchni lub umieszczony na płaszczyźnie"
@@ -23844,6 +26524,11 @@ msgstr "Kliknij 2 punkty lub linię / okrąg / łuk, aby umieścić wymiar"
msgid "Line / polyline"
msgstr "Linia / polilinia"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Linia"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Kliknij początek, potem koniec — następnie ustaw dokładną długość"
@@ -23980,6 +26665,9 @@ msgstr "Splajn"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Klikaj punkty kontrolne; kliknij dwukrotnie, prawym przyciskiem lub naciśnij Enter, aby zakończyć"
+msgid "Point"
+msgstr "Punkt"
+
# AI Translated
msgid "Click to place a point"
msgstr "Kliknij, aby umieścić punkt"
@@ -24097,16 +26785,19 @@ msgstr "Wybierz elementy, przeciągnij uchwyt zakresu kąta, kliknij liczbę; kl
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Kliknij środek, potem wierzchołek — liczba boków: %d, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Kliknij środek, potem wierzchołek — %d bok, opisany"
+msgstr[1] "Kliknij środek, potem wierzchołek — %d boki, opisany"
+msgstr[2] "Kliknij środek, potem wierzchołek — %d boków, opisany"
# AI Translated
-msgid "circumscribed"
-msgstr "opisany"
-
-# AI Translated
-msgid "inscribed"
-msgstr "wpisany"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Kliknij środek, potem wierzchołek — %d bok, wpisany"
+msgstr[1] "Kliknij środek, potem wierzchołek — %d boki, wpisany"
+msgstr[2] "Kliknij środek, potem wierzchołek — %d boków, wpisany"
# AI Translated
msgid "Polygon"
@@ -24445,6 +27136,12 @@ msgstr "Na powierzchni"
msgid "Thread plane"
msgstr "Płaszczyzna gwintu"
+# AI Translated
+# Needs human review: Label of the thread standard selector (ISO, UNC...) in the Design tab; 'Norma' (technical standard) chosen over 'Standard'. Check it reads right beside the other thread options.
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Norma"
+
# AI Translated
msgid "Pitch"
msgstr "Skok"
@@ -24632,6 +27329,9 @@ msgstr "Wybierz powierzchnię bryły, aby ją otworzyć, a następnie ustaw grub
msgid "(pick a side face)"
msgstr "(wybierz powierzchnię boczną)"
+msgid "Face"
+msgstr "Powierzchnia"
+
# AI Translated
msgid "Draft"
msgstr "Pochylenie"
@@ -25010,8 +27710,11 @@ msgstr "Zaktualizowano szkic"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Utworzono szkic (wymiary sterujące: %zu) — zaznacz go, a następnie kliknij prawym przyciskiem, aby wykonać Wyciągnięcie"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Utworzono szkic (%zu wymiar sterujący) — zaznacz go, a następnie kliknij prawym przyciskiem, aby wykonać Wyciągnięcie"
+msgstr[1] "Utworzono szkic (%zu wymiary sterujące) — zaznacz go, a następnie kliknij prawym przyciskiem, aby wykonać Wyciągnięcie"
+msgstr[2] "Utworzono szkic (%zu wymiarów sterujących) — zaznacz go, a następnie kliknij prawym przyciskiem, aby wykonać Wyciągnięcie"
# AI Translated
#, c-format, boost-format
@@ -25151,8 +27854,11 @@ msgstr "Edycja: Szkic %d · N = widok prostopadle do płaszczyzny · Pot
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — trójkąty: %zu"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — %zu trójkąt"
+msgstr[1] "OK — %zu trójkąty"
+msgstr[2] "OK — %zu trójkątów"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -25239,10 +27945,22 @@ msgstr "Siatka nie zawiera trójkątów"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Ta siatka ma %d trójkąt. Każdy trójkąt staje się powierzchnią B-rep przed scaleniem powierzchni współpłaszczyznowych, więc import może trwać długo i pozostawić bryłę, której edycja jest powolna. Zwykle lepiej najpierw uprościć siatkę.\n"
+"\n"
+"Zaimportować mimo to?"
+msgstr[1] ""
+"Ta siatka ma %d trójkąty. Każdy trójkąt staje się powierzchnią B-rep przed scaleniem powierzchni współpłaszczyznowych, więc import może trwać długo i pozostawić bryłę, której edycja jest powolna. Zwykle lepiej najpierw uprościć siatkę.\n"
+"\n"
+"Zaimportować mimo to?"
+msgstr[2] ""
"Ta siatka ma %d trójkątów. Każdy trójkąt staje się powierzchnią B-rep przed scaleniem powierzchni współpłaszczyznowych, więc import może trwać długo i pozostawić bryłę, której edycja jest powolna. Zwykle lepiej najpierw uprościć siatkę.\n"
"\n"
"Zaimportować mimo to?"
@@ -25271,7 +27989,7 @@ msgstr "Import siatki nie powiódł się: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
msgstr "Zaimportowano bryłę — trójkąty: %d → powierzchnie: %d, objętość %.2f mm³. Wybierz powierzchnię lub krawędź, a następnie Zaokrąglenie / Przetnij / Skorupa, aby modyfikować"
# AI Translated
@@ -25289,8 +28007,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "Dodano do szkicu: %s — potwierdź, aby zatwierdzić"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — przeciągnij, aby umieścić/zmienić rozmiar, a następnie potwierdź"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — przeciągnij, aby umieścić/zmienić rozmiar, a następnie potwierdź"
# AI Translated
msgid "Insert canceled"
@@ -25498,9 +28218,13 @@ msgid "a geometry operation failed"
msgstr "operacja geometryczna nie powiodła się"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · wybrano: %d"
+msgid_plural " · %d picked"
+msgstr[0] " · wybrano: %d"
+msgstr[1] " · wybrano: %d"
+msgstr[2] " · wybrano: %d"
# AI Translated
#, c-format, boost-format
@@ -25517,7 +28241,10 @@ msgstr "Zaznacz — kliknij element, aby go wybrać · przeciągnij punkt koń
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "Wybrano: %d · teraz wybierz wiązanie (Poziomość, Równoległość, Styczność, Równość…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "Wybrano: %d · teraz wybierz wiązanie (Poziomość, Równoległość, Styczność, Równość…)"
+msgstr[1] "Wybrano: %d · teraz wybierz wiązanie (Poziomość, Równoległość, Styczność, Równość…)"
+msgstr[2] "Wybrano: %d · teraz wybierz wiązanie (Poziomość, Równoległość, Styczność, Równość…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -25778,7 +28505,10 @@ msgstr "Lustrzane odbicie — oś ustawiona · teraz kliknij elementy do odbic
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Lustrzane odbicie — oś ustawiona · do odbicia: %d · kliknij kolejny element, aby go dodać lub usunąć · Enter zatwierdza"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Lustrzane odbicie — oś ustawiona · do odbicia: %d · kliknij kolejny element, aby go dodać lub usunąć · Enter zatwierdza"
+msgstr[1] "Lustrzane odbicie — oś ustawiona · do odbicia: %d · kliknij kolejny element, aby go dodać lub usunąć · Enter zatwierdza"
+msgstr[2] "Lustrzane odbicie — oś ustawiona · do odbicia: %d · kliknij kolejny element, aby go dodać lub usunąć · Enter zatwierdza"
# AI Translated
msgid "Move — click the entities to move"
@@ -25902,8 +28632,11 @@ msgstr "Punkt szkicu"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "Elementy szkicu: %d"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d element szkicu"
+msgstr[1] "%d elementy szkicu"
+msgstr[2] "%d elementów szkicu"
# AI Translated
msgid "select something first"
@@ -26440,8 +29173,10 @@ msgid "Applied edit"
msgstr "Zastosowano edycję"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — wpisz wartość, naciśnij Enter (lub Potwierdź)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — wpisz wartość, naciśnij Enter (lub Potwierdź)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -26513,10 +29248,23 @@ msgstr "Przenieś na płytę — wyślij bryłę do Przygotowania"
msgid "Nothing to commit — add a feature first"
msgstr "Nie ma czego przenieść na płytę — najpierw dodaj operację"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Bryła projektowa %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Wszystkie bryły są ukryte — pokaż jedną przed przeniesieniem na płytę"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Złożenie projektowe"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Bryła projektowa"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -26584,8 +29332,11 @@ msgstr "Nieprawidłowe: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Podgląd — trójkąty: %zu"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Podgląd — %zu trójkąt"
+msgstr[1] "Podgląd — %zu trójkąty"
+msgstr[2] "Podgląd — %zu trójkątów"
# AI Translated
#, c-format, boost-format
@@ -26689,8 +29440,11 @@ msgstr "Tego wymiaru nie można spełnić — szkic jest nadmiernie zdefiniowany
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "Pominięte wiązania, które nie mogą działać na tej geometrii (elipsa lub krzywa splajn albo okrąg o zerowym rozmiarze): %1%"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% wiązanie nie może działać na tej geometrii (elipsa lub krzywa splajn albo okrąg o zerowym rozmiarze) i zostało pominięte"
+msgstr[1] "%1% wiązania nie mogą działać na tej geometrii (elipsa lub krzywa splajn albo okrąg o zerowym rozmiarze) i zostały pominięte"
+msgstr[2] "%1% wiązań nie może działać na tej geometrii (elipsa lub krzywa splajn albo okrąg o zerowym rozmiarze) i zostało pominiętych"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -26748,8 +29502,11 @@ msgstr "Fazowanie: odległość przekracza długość ramienia albo te dwie lini
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "Usunięte wiązania unieważnione przez zaokrąglenie/fazowanie: %1%"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "Usunięto %1% wiązanie unieważnione przez zaokrąglenie/fazowanie"
+msgstr[1] "Usunięto %1% wiązania unieważnione przez zaokrąglenie/fazowanie"
+msgstr[2] "Usunięto %1% wiązań unieważnionych przez zaokrąglenie/fazowanie"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -26769,8 +29526,11 @@ msgstr "Liczba kopii musi być liczbą całkowitą równą 2 lub większą"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "Wiązania usunięte przez transformację: %1%"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "Transformacja usunęła %1% wiązanie"
+msgstr[1] "Transformacja usunęła %1% wiązania"
+msgstr[2] "Transformacja usunęła %1% wiązań"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26921,11 +29681,6 @@ msgstr "Pogrubienie powierzchni"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Pogrubienie powierzchni wymaga bryły powierzchniowej — najpierw utwórz ją narzędziem powierzchniowym"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Otwór"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -27010,11 +29765,6 @@ msgstr "Szyk kołowy"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Powiel bryłę wokół osi — ustaw liczbę i zakres kąta"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Lustrzane odbicie"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -27051,11 +29801,6 @@ msgstr "Wyrównanie wymaga bryły — najpierw dodaj lub zaimportuj bryłę"
msgid "Align the body to a picked face or plane"
msgstr "Wyrównaj bryłę do wybranej powierzchni lub płaszczyzny"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Płaszczyzna"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -27161,11 +29906,6 @@ msgstr "Usuń bryłę"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Usuń całą bryłę — usuwa operację, z której powstała"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Linia"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -27480,215 +30220,6 @@ msgstr "Ta czcionka nie ma konturu dla tego tekstu"
msgid "Size: %.1f × %.1f mm"
msgstr "Rozmiar: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Prymityw"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Wygenerowano pustą siatkę"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Prostopadłościan"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Szybki wybór:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Szerokość (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Głębokość (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Wysokość (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "R dolny"
-
-# AI Translated
-msgid "Top R"
-msgstr "R górny"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "R większy"
-
-# AI Translated
-msgid "Minor R"
-msgstr "R mniejszy"
-
-# AI Translated
-msgid "All edges"
-msgstr "Wszystkie krawędzie"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Górne krawędzie"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Dolne krawędzie"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Boczne krawędzie"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Rozdzielczość siatki"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Dodaj kształt"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Brak profilu zewnętrznego"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Nie udało się utworzyć powierzchni zewnętrznej"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Nie udało się zbudować powierzchni z otworami"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Obrót nie powiódł się"
-
-# AI Translated
-msgid "Profile"
-msgstr "Profil"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Rozpocznij nowy profil (dla otworów)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segmenty"
-
-# AI Translated
-msgid "Sides"
-msgstr "Boki"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Kliknij w widoku, aby rysować"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Przyciągaj do siatki"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Krok siatki"
-
-# AI Translated
-msgid "Outer"
-msgstr "Zewnętrzny"
-
-# AI Translated
-msgid "closed"
-msgstr "zamknięty"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% pkt %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (góra)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (przód)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (bok)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Obrót (°)"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "Ustaw 0 dla wyciągnięcia, >0 dla obrotu"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Kieszeń (wycięcie)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu zamknięty profil"
-msgstr[1] "%zu zamknięte profile"
-msgstr[2] "%zu zamkniętych profili"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Narysuj zamknięty profil, aby włączyć"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Wyczyść wszystko"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Pusty wynik"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Wyciągnięcie: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Obrót: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Nie wybrano obiektu"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Nie udało się utworzyć powierzchni"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Nie udało się utworzyć powierzchni z otworami"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Siatka narzędzia jest pusta"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Dodano kieszeń (objętość ujemna)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Kieszeń: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -27811,6 +30342,10 @@ msgstr "Gizmo montować"
msgid "Gizmo brim ears"
msgstr "Gizmo uszy brim"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Uchwyt malowania tekstury reliefowej"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Pionowy suwak - Przesuń aktywny punkt w górę"
@@ -28045,6 +30580,12 @@ msgstr "wymaga powierzchni walcowej po obu stronach — łącznik %1% leży na p
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "wymaga powierzchni walcowej po obu stronach — łącznik %1% leży na zakrzywionej powierzchni"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (brak płaszczyzny bazowej)"
+
# AI Translated
msgid "two points are coincident"
msgstr "dwa punkty się pokrywają"
@@ -28073,10 +30614,31 @@ msgstr "płaszczyzny są równoległe (brak przecięcia)"
msgid "zero-length direction"
msgstr "kierunek o zerowej długości"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "operacja działa na bryle %1%, która nie istnieje w tym miejscu historii"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "„%1%” działa na bryle utworzonej przez operację, która została usunięta lub ukryta"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "„%1%” działa na bryle, która nie istnieje w tym miejscu historii"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "operacja jest używana przez późniejszą operację"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "„%1%” używa „%2%”, więc nie może występować przed nią"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "elementy szkicu nie tworzą zamkniętej pętli"
@@ -28087,9 +30649,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Otwarte w (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...i jeszcze otwarte końce: %1%"
+msgid "Open ends not shown: %1%"
+msgstr "Nie pokazano otwartych końców: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "obrót: linia osi nie znajduje się już w szkicu — wybierz oś ponownie"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "obrót: linia osi nie ma długości"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -28237,6 +30808,30 @@ msgstr "nie udało się utworzyć konturu otworu"
msgid "hole cut failed"
msgstr "wycięcie otworu nie powiodło się"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "gwint: średnica musi wynosić co najmniej 1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "gwint: skok musi być większy niż 0.1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "gwint: głębokość musi mieścić się między 0 a 0.7 x skoku"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "gwint: głębokość jest zbyt duża dla tej średnicy"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "gwint: długość musi być większa niż pół skoku"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "gwint: zbyt wiele zwojów (długość / skok musi pozostać poniżej 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "gwint wewnętrzny wymaga bryły"
@@ -28297,6 +30892,22 @@ msgstr "usuwanie powierzchni nie powiodło się"
msgid "delete_face produced no geometry"
msgstr "usuwanie powierzchni: nie powstała żadna geometria"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "operacja boolowska: brak bryły docelowej"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "operacja boolowska: brak bryły narzędzia — wybierz drugą bryłę"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "operacja boolowska: bryła docelowa i bryła narzędzia to ta sama bryła"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "operacja boolowska: bryła nie ma geometrii"
+
# AI Translated
msgid "boolean operation failed"
msgstr "operacja logiczna nie powiodła się"
@@ -28619,6 +31230,10 @@ msgstr "Obrazy"
msgid "Auxiliaries"
msgstr "Akcesoria"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Wieża czyszcząca taśmy"
+
# AI Translated
msgid "Project Filament List"
msgstr "Lista filamentów projektu"
@@ -28653,8 +31268,20 @@ msgstr "Do rozkładu wymagane są co najmniej dwa filamenty tego samego typu mat
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "Lista materiałów obsługuje maksymalnie %1% kolorów. Po rozkładzie w trybie %2% liczba materiałów przekroczyłaby %1%. Przed rozkładem usuń nieużywane filamenty na ekranie głównym."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Lista materiałów obsługuje maksymalnie %1% kolor. Po rozkładzie Listy materiałów liczba materiałów przekroczyłaby %1%. Przed rozkładem usuń nieużywane filamenty na ekranie głównym."
+msgstr[1] "Lista materiałów obsługuje maksymalnie %1% kolory. Po rozkładzie Listy materiałów liczba materiałów przekroczyłaby %1%. Przed rozkładem usuń nieużywane filamenty na ekranie głównym."
+msgstr[2] "Lista materiałów obsługuje maksymalnie %1% kolorów. Po rozkładzie Listy materiałów liczba materiałów przekroczyłaby %1%. Przed rozkładem usuń nieużywane filamenty na ekranie głównym."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Lista materiałów obsługuje maksymalnie %1% kolor. Po rozkładzie w trybie %2% liczba materiałów przekroczyłaby %1%. Przed rozkładem usuń nieużywane filamenty na ekranie głównym."
+msgstr[1] "Lista materiałów obsługuje maksymalnie %1% kolory. Po rozkładzie w trybie %2% liczba materiałów przekroczyłaby %1%. Przed rozkładem usuń nieużywane filamenty na ekranie głównym."
+msgstr[2] "Lista materiałów obsługuje maksymalnie %1% kolorów. Po rozkładzie w trybie %2% liczba materiałów przekroczyłaby %1%. Przed rozkładem usuń nieużywane filamenty na ekranie głównym."
# AI Translated
msgid "Cyan"
@@ -28684,6 +31311,13 @@ msgstr "Zielony"
msgid "Blue"
msgstr "Niebieski"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -28691,7 +31325,1236 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "Bieżąca lista filamentów nie zawiera następujących kolorów: %s. Filament projektu wymagany przez filament mieszany zostanie utworzony automatycznie po rozkładzie."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "Bieżąca lista filamentów nie zawiera: %s. Filament projektu wymagany przez filament mieszany zostanie utworzony automatycznie po rozkładzie."
+msgstr[1] "Bieżąca lista filamentów nie zawiera: %s. Filamenty projektu wymagane przez filament mieszany zostaną utworzone automatycznie po rozkładzie."
+msgstr[2] "Bieżąca lista filamentów nie zawiera: %s. Filamenty projektu wymagane przez filament mieszany zostaną utworzone automatycznie po rozkładzie."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Krycie"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
msgid "Alternate nozzles:"
msgstr "Inne rozmiary dysz:"
@@ -28766,9 +32629,6 @@ msgstr "Moje ustawienia"
msgid "Custom Printer Setup"
msgstr "Ustawienie Własnej Drukarki"
-msgid "Custom Printer"
-msgstr "Niestandardowa drukarka"
-
msgid "Define a custom printer profile"
msgstr "Zdefiniuj własny profil drukarki"
@@ -28992,6 +32852,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Wypiecz"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Wpisz dokładną wartość w suwaku"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Ikona edycji na prawym końcu suwaka"
+
# AI Translated
msgid "Texture displacement"
msgstr "Tekstura reliefowa"
@@ -29128,6 +32996,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Usuń teksturę"
+# AI Translated
+msgid "Adjust image"
+msgstr "Dostosuj obraz"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Jasność"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Kontrast"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Ostrość"
+
+# AI Translated
+msgid "Blur"
+msgstr "Rozmycie"
+
+# AI Translated
+msgid "Hue"
+msgstr "Odcień"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Wydobywa najdrobniejsze szczegóły obrazu. Stosowana po opcji „Rozmycie”, więc obie można łączyć: rozmyj plamki, a następnie wyostrz krawędzie, które pozostały."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Rozmywa sam obraz. Suwak „Wygładzanie” samej warstwy łagodzi relief bez zmiany obrazu i warto sięgnąć po niego w pierwszej kolejności."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Ta tekstura jest w skali szarości, więc nie ma odcienia do przesunięcia."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Model aktualizuje się po puszczeniu suwaka. „Zapisz jako kopię” zapisuje dopasowany obraz w bibliotece tekstur i przypisuje go tej warstwie."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Zapisz jako kopię"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Usuń warstwę tekstury reliefowej"
@@ -29264,6 +33176,15 @@ msgstr "Zapisuje każdy przechwycony etap jako plik OBJ, aby można je było otw
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Nie udało się przenieść pomalowanego obszaru na model z przebudowaną siatką, więc nic nie zostało zmienione. Przełącz się w tryb Pro i przebuduj siatkę przed malowaniem."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Zakres: od %1% do %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Wpisz wartość zamiast przeciągać. Ctrl+kliknięcie suwaka działa tak samo."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -29370,8 +33291,8 @@ msgid "Click a triangle to paint it"
msgstr "Kliknij trójkąt, aby go pomalować"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Wymaga aktywnej warstwy z mapowaniem Rozwinięcie (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Tylko dla warstwy mapowanej metodą Rozwiń (LSCM) - ustaw „Mapowanie” aktywnej warstwy na „Rozwiń”, aby użyć tego widoku."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -29386,16 +33307,16 @@ msgid "Checker"
msgstr "Szachownica"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Szachownica - siatka testowa zamiast tekstury. Tam, gdzie kwadraty pozostają kwadratowe, tekstura nie jest zniekształcona; tam, gdzie się rozciągają, tekstura również się rozciągnie"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Szachownica - siatka testowa zamiast tekstury. Tam, gdzie kwadraty pozostają kwadratowe, tekstura nie jest zniekształcona; tam, gdzie się rozciągają, tekstura również się rozciągnie. Otwiera edytor UV, jeśli jest zamknięty"
# AI Translated
msgid "Distortion"
msgstr "Zniekształcenie"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Zniekształcenie - mapa cieplna rozciągnięcia (od niebieskiego do czerwonego) na rozwinięciu"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Zniekształcenie - mapa cieplna rozciągnięcia (od niebieskiego do czerwonego) na rozwinięciu. Otwiera edytor UV, jeśli jest zamknięty"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -29421,6 +33342,10 @@ msgstr "Wybierz inny obraz dla tej warstwy. Malowanie, głębokość i kafelkowa
msgid "not painted"
msgstr "niepomalowana"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Jasność, kontrast, ostrość, rozmycie i odcień są pokazywane na obrazie i na modelu podczas ustawiania. „Zapisz jako kopię” zapisuje wynik w bibliotece tekstur i przypisuje go tej warstwie."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Przesuń w górę - stosowana wcześniej"
@@ -29441,10 +33366,20 @@ msgstr "Wysokość reliefu: o ile biel w teksturze podnosi powierzchnię, w mili
msgid "Tile size"
msgstr "Rozmiar kafelka"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Mapowanie według własnego układu UV modelu, który już stanowi rozmieszczenie - jedna kopia tekstury pokrywa go dokładnie, więc nie ma rozmiaru kafelka do ustawienia."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Szerokość jednej kopii tekstury na modelu. Mniejsza wartość częściej powtarza wzór, a jego szczegóły stają się drobniejsze; przy wyłączonym Kafelkowaniu jest to rozmiar pojedynczej kopii."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Obraca teksturę na powierzchni, w stopniach - aby wyrównać wzór z krawędzią modelu."
@@ -29512,28 +33447,36 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Przeplata dwa filamenty, aby imitować kolory pośrednie, dzięki czemu kilka filamentów może odwzorować zdjęcie lub gradient. Obraz z jednolitymi kolorami drukuje się tak samo w obu przypadkach. Po wyłączeniu każdy obszar używa jednego filamentu."
# AI Translated
-msgid "Mix by"
-msgstr "Mieszaj według"
+msgid "Mixed colors"
+msgstr "Kolory mieszane"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Powierzchnia"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Maksymalna liczba filamentów mieszanych, które może dodać wypiekanie. Są wybierane z kolorów tekstury, a tworzone są tylko te, których wypiekanie faktycznie używa."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Warstwy: dwa filamenty zmieniają się co warstwę druku, co daje płynne przejście na pionowych powierzchniach, ale zanika na powierzchniach skierowanych płasko, gdzie cała warstwa jest jednym pasem.\n"
-"Powierzchnia: drobna szachownica na powierzchni, która działa pod każdym kątem, ale może być odbierana jako tekstura, a nie jako mieszanie kolorów.\n"
-"Automatyczny: warstwy na pionowych ścianach; ściany skierowane płasko otrzymują najbliższy pojedynczy filament, ponieważ szachownica jest tam widoczna jako wzór."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "Kolory do druku: %1% (z filamentów: %2%)"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "z %1% filamentu"
+msgstr[1] "z %1% filamentów"
+msgstr[2] "z %1% filamentów"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% kolor do druku %2%"
+msgstr[1] "%1% kolory do druku %2%"
+msgstr[2] "%1% kolorów do druku %2%"
# AI Translated
msgid "Denoise"
@@ -29584,6 +33527,18 @@ msgstr "Z widoku"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Z widoku - rzutuje teksturę prosto na pomalowany obszar z miejsca, z którego patrzysz, jak rzutnik do slajdów."
+# AI Translated
+msgid "Model UV"
+msgstr "UV modelu"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "UV modelu - używa współrzędnych tekstury dołączonych do samego modelu, więc tekstura wykonana dla tego modelu trafia dokładnie tam, gdzie została namalowana. Nic nie jest rozwijane, a rozmiar kafelka nie ma zastosowania: własny układ modelu jest rozmieszczeniem."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Ten model nie zawiera własnych współrzędnych tekstury. Tylko model zaimportowany z kanałem UV - na przykład teksturowany OBJ - może być mapowany według nich."
+
# AI Translated
msgid "Open UV editor"
msgstr "Otwórz edytor UV"
@@ -29598,8 +33553,11 @@ msgstr "Jeszcze nie rozwinięto"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "Wyspy: %1%"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% wyspa"
+msgstr[1] "%1% wyspy"
+msgstr[2] "%1% wysp"
# AI Translated
msgid "Capture current view"
@@ -29629,10 +33587,6 @@ msgstr "Ramka projekcji"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Otwiera okno, które przeciągasz nad modelem. Wszystko, co przez nie widać, otrzyma teksturę, a jego obramowanie staje się krawędzią projekcji."
-# AI Translated
-msgid "Opacity"
-msgstr "Krycie"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Jak mocno kryjące jest okno ramki podczas umieszczania. Zmniejsz, aby widzieć przez nie model; nie wpływa na wynik."
@@ -29686,6 +33640,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Dodaj"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Zastąp"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -29705,8 +33664,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Warstwa bazowa nie ma pod sobą nic, z czym mogłaby się łączyć, więc zawsze dodaje."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Co ta warstwa robi tam, gdzie nakłada się na warstwy poniżej. Dodaj i Odejmij nakładają relief lub go wycinają. Pomnóż i Podziel skalują to, co jest pod spodem, przez co ta warstwa staje się nad tym maską - tam Głębokość działa jak siła, a 1 mm pozostawia białe obszary nietknięte."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Co ta warstwa robi tam, gdzie nakłada się na warstwy poniżej. Dodaj i Odejmij nakładają relief lub go wycinają. Zastąp zastępuje je, więc tam, gdzie warstwa jest namalowana, zostaje tylko jej relief. Pomnóż i Podziel skalują to, co jest pod spodem, przez co ta warstwa staje się nad tym maską - tam Głębokość działa jak siła, a 1 mm pozostawia białe obszary nietknięte."
# AI Translated
msgid "Adjust placement"
@@ -29730,8 +33689,11 @@ msgstr "Więcej ustawień"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Użyto wszystkich warstw (%1%)"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Użyto jedynej warstwy (%1%)"
+msgstr[1] "Użyto wszystkich warstw (%1%)"
+msgstr[2] "Użyto wszystkich warstw (%1%)"
# AI Translated
msgid "Add layer"
@@ -29811,8 +33773,11 @@ msgstr "Budżet trójkątów: ustawiany poniżej w polu Trójkąty."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Podgląd — trójkąty: %1%"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Podgląd: %1% trójkąt"
+msgstr[1] "Podgląd: %1% trójkąty"
+msgstr[2] "Podgląd: %1% trójkątów"
# AI Translated
msgid "Steps"
@@ -29854,6 +33819,12 @@ msgstr "Przebudowa siatki"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Rozmiar trójkątów, z jakim przebudowywany jest cały model, w milimetrach. Przemieszczenie działa najlepiej na równomiernej siatce; to ustawienie tworzy ją z nierównomiernego importu."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Zachowaj ostre krawędzie"
@@ -29988,14 +33959,6 @@ msgstr "Wymaga ok. %1% trójkątów, budżet %2% - wypiekanie uprości siatkę i
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Ile tysięcy trójkątów zagęszczanie może dodać do modelu. Najgorzej dopasowany trójkąt jest zawsze dzielony jako pierwszy, więc nawet przebieg, który wykorzysta cały budżet, wyda go tam, gdzie jest to najbardziej widoczne. Zwiększ, jeśli relief nadal wygląda zgrubnie."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Zatrzymuje wypiekanie. To, co zostało już ukończone, pozostaje na modelu i można to cofnąć."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Zamyka narzędzie bez wypiekania. Malowanie, warstwy i ustawienia pozostają przy modelu."
-
# AI Translated
msgid "Preparing..."
msgstr "Przygotowywanie..."
@@ -30020,35 +33983,61 @@ msgstr "Zamienia pomalowane mapy wysokości w rzeczywistą geometrię, przesuwaj
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Zamienia pomalowane mapy wysokości w rzeczywistą geometrię. Siatka jest najpierw przebudowywana do równomiernej gęstości i zagęszczana tam, gdzie tekstura się zagina, aby szczegóły miały wierzchołki, na których mogą się oprzeć - wszystko w jednym kroku."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Zatrzymuje wypiekanie. To, co zostało już ukończone, pozostaje na modelu i można to cofnąć."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Zamyka narzędzie bez wypiekania. Malowanie, warstwy i ustawienia pozostają przy modelu."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Model: %1% trójkątów - wypiekanie zagęszcza do powyższej rozdzielczości, w granicach budżetu"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Model: %1% trójkąt - wypiekanie zagęszcza do powyższej rozdzielczości, w granicach budżetu"
+msgstr[1] "Model: %1% trójkąty - wypiekanie zagęszcza do powyższej rozdzielczości, w granicach budżetu"
+msgstr[2] "Model: %1% trójkątów - wypiekanie zagęszcza do powyższej rozdzielczości, w granicach budżetu"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Wypiekanie przesuwa istniejące wierzchołki - model nadal ma %1% trójkąt"
+msgstr[1] "Wypiekanie przesuwa istniejące wierzchołki - model nadal ma %1% trójkąty"
+msgstr[2] "Wypiekanie przesuwa istniejące wierzchołki - model nadal ma %1% trójkątów"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Wypiekanie przesuwa istniejące wierzchołki - model pozostaje przy %1% trójkątów"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Wynik wypiekania do ~%1% k trójkąta"
+msgstr[1] "Wynik wypiekania do ~%1% k trójkątów"
+msgstr[2] "Wynik wypiekania do ~%1% k trójkątów"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Wynik wypiekania do ~%1% k trójkątów"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "pominięto niepomalowane warstwy (%1%)"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "pominięto niepomalowaną warstwę (%1%)"
+msgstr[1] "pominięto niepomalowane warstwy (%1%)"
+msgstr[2] "pominięto niepomalowanych warstw (%1%)"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "pominięto niepomalowane: %1%"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "pominięto niepomalowane: %1%"
+msgstr[1] "pominięto niepomalowane: %1%"
+msgstr[2] "pominięto niepomalowane: %1%"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -30065,6 +34054,10 @@ msgstr "Edycja tekstury reliefowej"
msgid "Choose SLA archive:"
msgstr "Wybierz archiwum SLA:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "Pliki archiwum SL1 / SL1S"
+
# AI Translated
msgid "Import file"
msgstr "Plik do importu"
@@ -30229,6 +34222,34 @@ msgstr "Wtyczki filamentu"
msgid "Printer plugins"
msgstr "Wtyczki drukarki"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Ten profil nie używa żadnych możliwości wtyczek"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Możliwości używane przez ten profil"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Konfiguracja możliwości (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Konfiguracja wtyczki"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Odrzuć nadpisanie tego profilu i ponownie użyj konfiguracji globalnej"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Przywróć domyślne"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "Nieprawidłowy JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "Konfiguracja nie jest prawidłowym JSON. Zmiany nie zostały zapisane."
@@ -30248,10 +34269,6 @@ msgstr ""
"\n"
"Spowoduje to odrzucenie nadpisania z profilu i użycie konfiguracji globalnej."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Przywróć domyślne"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Używana jest konfiguracja globalna. Zapisz profil, aby to zachować."
@@ -30277,10 +34294,6 @@ msgstr "Anuluj subskrypcję"
msgid "Overwrite Plugin"
msgstr "Nadpisz wtyczkę"
-# AI Translated
-msgid "Show in folder"
-msgstr "Pokaż w folderze"
-
# AI Translated
msgid "Reinstall"
msgstr "Zainstaluj ponownie"
@@ -30289,6 +34302,10 @@ msgstr "Zainstaluj ponownie"
msgid "Delete cache and reload"
msgstr "Usuń pamięć podręczną i wczytaj ponownie"
+# AI Translated
+msgid "No description."
+msgstr "Brak opisu."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Wybierz pakiet wtyczki .py lub .whl."
@@ -30321,6 +34338,293 @@ msgstr "Instalowanie wtyczki"
msgid "Installed \"%s\"."
msgstr "Zainstalowano „%s”."
+# AI Translated
+msgid "Search plugins"
+msgstr "Szukaj wtyczek"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Wyczyść wyszukiwanie"
+
+# AI Translated
+msgid "Match case"
+msgstr "Uwzględnij wielkość liter"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Dopasuj całe wyrazy"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Więcej opcji instalacji wtyczek"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Zainstaluj wtyczkę"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Zainstaluj wtyczkę lokalną"
+
+# AI Translated
+msgid "Activate"
+msgstr "Aktywuj"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Sortuj według nazwy"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Sortuj według wersji"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Wersja wtyczki"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Sortuj według źródła"
+
+# AI Translated
+msgid "Source"
+msgstr "Źródło"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Sortuj według stanu"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Stan"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Przeciągnij, aby zmienić rozmiar; kliknij dwukrotnie, aby przywrócić"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Zmień rozmiar listy wtyczek"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Szczegóły wtyczki"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Informacje o wtyczce"
+
+# AI Translated
+msgid "Description"
+msgstr "Opis"
+
+# AI Translated
+msgid "Config"
+msgstr "Konfiguracja"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Lista zmian"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnostyka"
+
+# AI Translated
+msgid "Types"
+msgstr "Typy"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Zainstalowana wersja"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Najnowsza wersja"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Zaktualizuj do najnowszej wersji"
+
+# AI Translated
+msgid "No description available"
+msgstr "Brak opisu"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Wybierz wtyczkę, aby skonfigurować jej możliwości"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Konfigurowalne możliwości"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Odrzuć ustawienia zapisane dla tej możliwości i przywróć domyślne ustawienia wtyczki"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Lista zmian wtyczki"
+
+# AI Translated
+msgid "Date"
+msgstr "Data"
+
+# AI Translated
+msgid "Changes"
+msgstr "Zmiany"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Brak listy zmian"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Nie wykryto problemów"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Nie znaleziono wtyczek"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Brak wtyczek pasujących do „%s”"
+
+# AI Translated
+# Needs human review: Plugin source badge (plugins you authored), shown next to 'Subskrybowane', 'Osierocone', 'Lokalne'; check the badge set reads consistently.
+msgid "Mine"
+msgstr "Moje"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Subskrybowane"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Osierocone"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Lokalne"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Niektóre możliwości wtyczki są włączone"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Zwiń możliwości wtyczki %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Rozwiń możliwości wtyczki %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Zwiń możliwości"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Rozwiń możliwości"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Otwórz tę wtyczkę w przeglądarce"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Możliwości: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Możliwości"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Uruchom „%s”"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Włącz %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Brak autoryzacji do aktualizacji"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Ładowanie wtyczki…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Ta wtyczka nie udostępnia żadnych możliwości"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Aktywuj tę wtyczkę, aby skonfigurować jej możliwości"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Zobacz w OrcaCloud tutaj "
+
+# AI Translated
+msgid "Activated"
+msgstr "Aktywna"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Błąd wykonania"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Nieaktywna"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Ta wtyczka jest aktywna i gotowa do użycia."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Ta wtyczka wciąż się ładuje."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Ta wtyczka jest zablokowana do czasu naprawienia jej błędu."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Ta wtyczka jest załadowana, ale jedna z jej możliwości zgłosiła błąd."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Ta wtyczka jest nieaktywna. Aktywuj ją, aby ją zainstalować lub załadować."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Wybierz wtyczkę, aby wyświetlić jej stan i szczegóły."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Osierocone: ta wtyczka nie jest już subskrybowana ani dostępna w OrcaCloud. Lokalna kopia pozostaje zainstalowana i nadal można jej używać."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Dostępna jest nowsza wersja wtyczki."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Aktualizacje z chmury są niedostępne, ponieważ ta wtyczka nie ma autoryzacji do aktualizacji."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -30537,6 +34841,60 @@ msgstr "Nie udało się ponownie wczytać wtyczki."
msgid "Reloaded \"%s\"."
msgstr "Ponownie wczytano „%s”."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Połączenie z drukarką"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Skonfiguruj połączenie z drukarką, aby wyświetlić urządzenie."
+
+msgid "No model information"
+msgstr "Brak informacji o modelu"
+
+msgid "Edit Project Info"
+msgstr "Edytuj informacje o projekcie"
+
+msgid "Model Information"
+msgstr "Informacje o modelu"
+
+msgid "Accessories"
+msgstr "Akcesoria"
+
+msgid "Profile Information"
+msgstr "Informacje o profilu"
+
+msgid "Model name"
+msgstr "Nazwa modelu"
+
+msgid "Created by"
+msgstr "Utworzone przez"
+
+# AI Translated
+msgid "Remixed by"
+msgstr "Zremiksowane przez"
+
+# AI Translated
+msgid "Shared by"
+msgstr "Udostępnione przez"
+
+msgid "Model description"
+msgstr "Opis modelu"
+
+# AI Translated
+# Needs human review: Section title on the project page under Accessories (followed by a count); 'Bill of Materials' is rendered 'Lista filamentów' elsewhere in this catalog. Check which wording fits.
+msgid "BOM"
+msgstr "Wykaz materiałów"
+
+msgid "Profile name"
+msgstr "Nazwa profilu"
+
+msgid "Profile Author"
+msgstr "Autor profilu"
+
+msgid "Profile description"
+msgstr "Opis profilu"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Ustawienia trybu płukania"
@@ -30561,6 +34919,19 @@ msgstr "Zmniejsza ilość odpadu z płukania i przyspiesza druk. Może powodowa
msgid "Terminal"
msgstr "Terminal"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... lub uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Terminal wtyczek gotowy."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Proces zakończył działanie z kodem: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Polecenie jest już uruchomione."
@@ -30607,8 +34978,11 @@ msgstr "Nowe filamenty mieszane"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Projekt obsługuje maksymalnie %d filamentów. Dodatkowe filamenty zostaną odrzucone."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Projekt obsługuje maksymalnie %d filament. Dodatkowe filamenty zostaną odrzucone."
+msgstr[1] "Projekt obsługuje maksymalnie %d filamenty. Dodatkowe filamenty zostaną odrzucone."
+msgstr[2] "Projekt obsługuje maksymalnie %d filamentów. Dodatkowe filamenty zostaną odrzucone."
# AI Translated
msgid "Import Model"
@@ -30695,8 +35069,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Obliczenia nie powiodły się. Dostosuj parametry i spróbuj ponownie."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "Siatka ma geometrię nierozmaitościową lub otwarte brzegi. Możesz zaimportować ją bez zmian lub przed importem naprawić ją za pomocą usługi naprawy 3D systemu Windows."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "Siatka ma geometrię nierozmaitościową lub otwarte brzegi. Możesz zaimportować ją bez zmian lub naprawić ją przed importem."
# AI Translated
msgid "Mesh repair"
@@ -30710,14 +35084,6 @@ msgstr "Importuj bez naprawy"
msgid "Repair and import"
msgstr "Napraw i importuj"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Uwaga: siatka ma geometrię nierozmaitościową lub otwarte brzegi."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Problem z siatką"
-
# AI Translated
msgid "The selected image is empty."
msgstr "Wybrany obraz jest pusty."
@@ -30726,6 +35092,14 @@ msgstr "Wybrany obraz jest pusty."
msgid "Failed to prepare the texture for use."
msgstr "Nie udało się przygotować tekstury do użycia."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Nie udało się utworzyć folderu na zaimportowane tekstury."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Nie udało się zapisać zaimportowanej tekstury."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Można usuwać tylko własne zaimportowane tekstury."
@@ -30734,18 +35108,10 @@ msgstr "Można usuwać tylko własne zaimportowane tekstury."
msgid "Could not delete the texture file."
msgstr "Nie udało się usunąć pliku tekstury."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Nie udało się utworzyć folderu na zaimportowane tekstury."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Nie udało się wczytać wybranego obrazu."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Nie udało się zapisać zaimportowanej tekstury."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Nie udało się odczytać pliku tekstury."
@@ -30789,8 +35155,11 @@ msgstr "Wybierz Rozwinięcie jako mapowanie warstwy tekstury, aby edytować tuta
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Zaznaczone wierzchołki: %d | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Zaznaczono %d wierzchołek | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń"
+msgstr[1] "Zaznaczono %d wierzchołki | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń"
+msgstr[2] "Zaznaczono %d wierzchołków | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30798,8 +35167,11 @@ msgstr "Tryb wierzchołków: przeciągnij wierzchołek, aby zmienić kształt |
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Zaznaczone krawędzie: %d | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Zaznaczono %d krawędź | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń"
+msgstr[1] "Zaznaczono %d krawędzie | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń"
+msgstr[2] "Zaznaczono %d krawędzi | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30807,8 +35179,11 @@ msgstr "Tryb krawędzi: przeciągnij krawędź wyspy, aby zmienić kształt |
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "Zaznaczone wyspy: %d | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń, R/S = obróć/skaluj główną"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "Zaznaczono %d wyspę | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń, R/S = obróć/skaluj główną"
+msgstr[1] "Zaznaczono %d wyspy | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń, R/S = obróć/skaluj główną"
+msgstr[2] "Zaznaczono %d wysp | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń, R/S = obróć/skaluj główną"
# AI Translated
#, c-format, boost-format
@@ -30827,6 +35202,10 @@ msgstr " | przyciąganie WŁ."
msgid "Change texture - choose another one from the texture library"
msgstr "Zmień teksturę - wybierz inną z biblioteki tekstur"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Rozmiar kafelka aktywnej warstwy: jaką część modelu obejmuje jedno powtórzenie tekstury. Widok jest mierzony w kafelkach, więc jedna komórka siatki to jedno powtórzenie. Zmień go w polu „Rozmiar kafelka” w ustawieniach warstwy."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Mapa wysokości - pokaż teksturę warstwy pod wyspami"
@@ -30860,16 +35239,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Układa rozwinięcie jako połączoną siatkę bryły: fragmenty, które dzielą krawędź, są rozkładane obok siebie (sześcian staje się połączoną siatką zamiast sześciu luźnych kwadratów). Pozostają osobnymi wyspami, więc nadal możesz później ręcznie przesunąć każdą z nich."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Wyspa - przesuwaj, obracaj i skaluj całe wyspy"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Wyspa - pracuj na całych wyspach. Kliknij wyspę, aby ją zaznaczyć, a następnie przeciągnij, aby ją przesunąć, przeciągnij prawym przyciskiem, aby ją obrócić, lub naciśnij R, aby obracać, i S, aby skalować myszą (kliknięcie lub Enter zatwierdza, Esc anuluje)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Wierzchołek - przeciągaj wierzchołki, aby zmienić kształt; Shift/Ctrl, aby zaznaczyć wiele"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Wierzchołek - przeciągaj wierzchołki, aby ręcznie zmienić kształt wyspy; Shift dodaje do zaznaczenia, Ctrl dodaje element do zaznaczenia lub go z niego usuwa."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Krawędź - przeciągaj krawędzie, aby zmienić kształt; Shift/Ctrl, aby zaznaczyć wiele"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Krawędź - przeciągaj krawędzie, aby ręcznie zmienić kształt wyspy; Shift dodaje do zaznaczenia, Ctrl dodaje element do zaznaczenia lub go z niego usuwa."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30908,8 +35287,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Przyciąganie - sklejaj wyspy podczas przeciągania jednej do drugiej"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Pokaż wszystkie wyspy (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Pokaż wszystkie wyspy, mieszcząc każdą z nich w widoku (Home lub F).\n"
+"W innym miejscu widoku: przewijaj, aby powiększać wokół kursora, i przeciągaj środkowym przyciskiem - lub przeciągaj pusty obszar - aby przesuwać widok."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Co jest zaznaczone oraz dokładne wartości przesunięcia, obrotu lub skali podczas przeciągania."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30920,6 +35307,10 @@ msgstr "Brak warstwy z mapowaniem Rozwinięcie"
msgid "%.1f mm tile"
msgstr "Kafelek %.1f mm"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Panel podąża za aktywną warstwą tekstury, a ta warstwa musi być mapowana metodą Rozwiń (LSCM). Dodaj warstwę i ustaw jej „Mapowanie” na „Rozwiń”."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Nieaktualne - malowanie, szwy lub kąt szwu zmieniły się od utworzenia tego rozwinięcia. Naciśnij, aby rozwinąć ponownie."
@@ -30928,19 +35319,73 @@ msgstr "Nieaktualne - malowanie, szwy lub kąt szwu zmieniły się od utworzenia
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Spłaszcz pomalowany obszar do wysp UV. Jest to obliczane tylko po naciśnięciu tego przycisku, a nie przy każdej edycji - więc najpierw maluj, zmień kąt szwu lub oznacz szwy, a następnie naciśnij Rozwiń."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Najpierw włącz „Oznacz szwy” - „Ścieżka” to szybszy sposób ich oznaczania."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Na tej warstwie nie oznaczono szwów."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Kształt żadnej wyspy nie został zmieniony ręcznie, więc nie ma czego odrzucać."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "Wyspy: %d, ściany: %s"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d wyspa"
+msgstr[1] "%d wyspy"
+msgstr[2] "%d wysp"
+
+# AI Translated
+# Needs human review: Plural entry whose %s is a pre-formatted string, not a number; check the inflection matches the value shown (B-rep faces, rendered as powierzchnia).
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s powierzchnia"
+msgstr[1] "%s powierzchnie"
+msgstr[2] "%s powierzchni"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Wynik rozwinięcia pomalowanego obszaru: liczba oddzielnych fragmentów, na które został pocięty (na szwach i krawędziach ostrzejszych niż kąt szwu), oraz łączna liczba zawartych w nich trójkątów."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Najpierw naciśnij „Rozwiń” - nie ma jeszcze wysp do edycji."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Najpierw kliknij wyspę w widoku, w trybie Wyspa."
+
+# AI Translated
+# Needs human review: Three-letter badge for a published 3MF; kept as PUB. Consider a localized three-letter badge if one reads better.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "PUB"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Nie zalogowano"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Wtyczka Bambu Network nie wykryta. Kliknij tutaj aby zainstalować."
+
+msgid "Create new project"
+msgstr "Utwórz nowy projekt"
+
+msgid "Recently opened"
+msgstr "Ostatnio otwarte"
+
+msgid "Open Containing Folder"
+msgstr "Otwórz folder zawierający"
# AI Translated
msgid "Forward"
msgstr "Dalej"
-# AI Translated
-msgid "Tools"
-msgstr "Narzędzia"
-
msgid "View Source"
msgstr "Zobacz źródło"
@@ -30998,6 +35443,75 @@ msgstr "Załaduj %1%: %2%"
msgid "Load %s"
msgstr "Załaduj %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Nie można włączyć agenta drukarki „%1%”: identyfikator agenta „%2%” jest już zarejestrowany przez możliwość „%3%” z wtyczki „%4%”."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Nie można włączyć agenta drukarki „%1%”: identyfikator agenta „%2%” jest już zarejestrowany przez „%3%”."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Plik został przesłany"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Przesyłanie G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Rozpoczynanie drukowania..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Drukowanie rozpoczęte"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Przesyłanie..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Nie określono wersji biblioteki sieciowej"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Nie znaleziono biblioteki sieciowej"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Nie udało się wczytać biblioteki sieciowej"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Nie udało się wczytać biblioteki sieciowej"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Starsza seria wtyczek. Funkcje wymagające nowszej obsługi wtyczek, takie jak migawki awarii druku w oknie dialogowym błędów urządzenia, są niedostępne."
+
+# AI Translated
+msgid "unknown name"
+msgstr "nieznana nazwa"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"Wtyczka „%s” prosi o dostęp do odczytu w systemie plików:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Uprawnienia wtyczki"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -31012,36 +35526,72 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"Wtyczka „%s” prosi o odczyt następującego pliku:\n"
+"%s"
+msgstr[1] ""
+"Wtyczka „%s” prosi o odczyt następujących plików:\n"
+"%s"
+msgstr[2] ""
"Wtyczka „%s” prosi o odczyt następujących plików:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"Wtyczka „%s” prosi o odczyt/zapis następującego pliku:\n"
+"%s"
+msgstr[1] ""
+"Wtyczka „%s” prosi o odczyt/zapis następujących plików:\n"
+"%s"
+msgstr[2] ""
"Wtyczka „%s” prosi o odczyt/zapis następujących plików:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"Wtyczka „%s” prosi o utworzenie następującego pliku:\n"
+"%s"
+msgstr[1] ""
+"Wtyczka „%s” prosi o utworzenie następujących plików:\n"
+"%s"
+msgstr[2] ""
"Wtyczka „%s” prosi o utworzenie następujących plików:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"Wtyczka „%s” prosi o usunięcie następującego pliku:\n"
+"%s"
+msgstr[1] ""
+"Wtyczka „%s” prosi o usunięcie następujących plików:\n"
+"%s"
+msgstr[2] ""
"Wtyczka „%s” prosi o usunięcie następujących plików:\n"
"%s"
@@ -31066,10 +35616,33 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"Wtyczka „%s” prosi o uruchomienie następującego polecenia:\n"
+"%s"
+msgstr[1] ""
+"Wtyczka „%s” prosi o uruchomienie następujących poleceń:\n"
+"%s"
+msgstr[2] ""
+"Wtyczka „%s” prosi o uruchomienie następujących poleceń:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "Wtyczka „%s” prosi o uprawnienie do utworzenia wątku."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"Wtyczka „%s” prosi o uruchomienie następujących poleceń:\n"
+"Wtyczka „%s” prosi o zastąpienie uruchomionej aplikacji przez:\n"
"%s"
# AI Translated
@@ -31081,6 +35654,46 @@ msgstr "Wtyczka „%s” prosi o uprawnienie do zdarzenia audytu Pythona „%s
msgid "Plugin permission request"
msgstr "Prośba wtyczki o uprawnienia"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "Profil przechowuje nieprawidłowy JSON konfiguracji możliwości wtyczek."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "Konfiguracja możliwości wtyczek w profilu nie jest tablicą i nie można jej edytować."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Połączenie z drukarką"
+
+# AI Translated
+msgid "Pages"
+msgstr "Strony"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Analiza"
+
+# AI Translated
+msgid "Importer"
+msgstr "Importer"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Eksporter"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Wizualizacja"
+
+# AI Translated
+msgid "Script"
+msgstr "Skrypt"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Potok cięcia"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "Interfejs konfiguracji wtyczki był pusty. Wyświetlany jest domyślny edytor."
@@ -31103,8 +35716,346 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Nie udało się zapisać konfiguracji na dysku. Nic nie zostało zmienione."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Instalacja wtyczki nie powiodła się"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Instalacja wtyczki nie powiodła się: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: zainstalowanej wtyczki nie znaleziono w katalogu."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "W kluczu wtyczki z chmury brakuje UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Nie udało się zasubskrybować wtyczki z chmury, szczegóły znajdziesz w logach."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Subskrypcję można anulować tylko dla wtyczek z chmury."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Nie udało się anulować subskrypcji wtyczki, szczegóły znajdziesz w logach."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Nie udało się pobrać adresu URL do pobrania wtyczki (wynik %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Nie masz uprawnień do pobrania tej wtyczki z chmury."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Brak pakietu wtyczki dla tego systemu operacyjnego."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "Nie znaleziono wybranej wersji wtyczki."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "Nie znaleziono wersji wtyczki %1%."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Nie znaleziono wtyczki z chmury."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Nie znaleziono pliku do pobrania wtyczki z chmury: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Nie znaleziono pliku do pobrania wtyczki z chmury."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Brak adresu URL do pobrania tej wtyczki. Sprawdź logi pod kątem błędów."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Nie udało się pobrać wtyczki: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Pobieranie wtyczki nie powiodło się ze statusem HTTP %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Pobieranie wtyczki zwróciło puste dane."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Nie udało się utworzyć pliku tymczasowego do pobrania wtyczki."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Nie udało się zapisać danych wtyczki do pliku tymczasowego."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Nie udało się ustalić folderu wtyczki: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Nie udało się usunąć folderu wtyczki %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Katalog wtyczki nie istnieje: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "Katalog wtyczki zawiera wiele plików .py: %1% i %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "Katalog wtyczki zawiera wiele plików .whl: %1% i %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "Katalog wtyczki zawiera zarówno plik wejściowy .py, jak i .whl"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "Katalog wtyczki nie zawiera pliku wejściowego .py ani .whl"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Błąd wtyczki potoku cięcia „%1%”: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Pakiet wtyczki musi być plikiem .py lub .whl, otrzymano: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Nie udało się wyodrębnić zależności wtyczki .whl %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Nie udało się dodać zależności .whl do sys.path: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Interpreter Pythona nie został zainicjowany: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Manifest wtyczki jest nieprawidłowy: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Nie udało się zainstalować zależności wtyczki: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Nie udało się wczytać modułu wtyczki: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Rejestracja wtyczki nie powiodła się: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Moduł wtyczki nie zarejestrował żadnych możliwości"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Wtyczka deklaruje zduplikowaną możliwość „%1%” dla typu %2%"
+
+# AI Translated
+# Needs human review: 'Capability materialization' (turning declared capabilities into usable objects) rendered as creating the capabilities; check it reads right to plugin developers.
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Nie udało się utworzyć możliwości wtyczki: %1%"
+
+# AI Translated
+# Needs human review: 'Capability materialization' (turning declared capabilities into usable objects) rendered as creating the capabilities; check it reads right to plugin developers.
+msgid "Plugin capability materialization failed"
+msgstr "Nie udało się utworzyć możliwości wtyczki"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Błąd on_load wtyczki: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Błąd on_load wtyczki"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Pakiet wtyczki nie jest plikiem: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "UUID wtyczki z chmury nie jest prawidłowym identyfikatorem: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Nie udało się utworzyć katalogu wtyczki %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Nie udało się utworzyć kopii zapasowej istniejącej wtyczki %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Nie udało się skopiować pliku wtyczki do %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Nie udało się zapisać stanu instalacji wtyczki: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Pakiet wtyczki jest już wczytany: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Kolizja możliwości dla typu %1% i nazwy „%2%”"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Wykryto zduplikowany klucz wtyczki: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Wczytywanie wtyczki wciąż trwa"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Wtyczka jest nieprawidłowa: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Nie znaleziono wtyczki: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Nieoczekiwany błąd wczytywania wtyczki: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Nieoczekiwany błąd wczytywania wtyczki"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Nie znaleziono manifestu wtyczki: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Nie udało się pobrać wtyczek z chmury. Szczegóły znajdziesz w logach."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Zaloguj się do OrcaCloud, aby zainstalować tę wtyczkę."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud nie zwrócił subskrybowanej wtyczki z chmury."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Nie udało się pobrać wtyczki z chmury."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Nie udało się zainstalować wtyczki z chmury."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Aktualizować można tylko wtyczki z chmury."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Brak aktualizacji dla tej wtyczki."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Odmowa usunięcia wtyczki spoza znanych katalogów wtyczek."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Odmowa aktualizacji wtyczki spoza znanych katalogów wtyczek."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Nie można zachować wtyczki jako lokalnej: lokalny klucz wtyczki już istnieje: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Nie udało się zaktualizować stanu instalacji wtyczki: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Nie można anulować subskrypcji własnych wtyczek."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Usuwać i anulować subskrypcję można tylko w przypadku wtyczek z chmury."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Nie można anulować subskrypcji własnych wtyczek. Użyj opcji Usuń, aby usunąć pliki lokalne."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Odrzucono prośbę wtyczki o uprawnienie do odczytu systemu plików"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -31138,6 +36089,10 @@ msgstr "łączenie wyciągnięcia dwustronnego nie powiodło się"
msgid "imported regions produced no extrudable geometry"
msgstr "zaimportowane obszary nie dały geometrii nadającej się do wyciągnięcia"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "profil przecina oś obrotu — musi leżeć po jednej jej stronie"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Nie udało się wykonać obrotu"
@@ -31174,6 +36129,10 @@ msgstr "Nie udało się utworzyć powierzchni kieszeni"
msgid "Pocket cut failed"
msgstr "Wycięcie kieszeni nie powiodło się"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "profil przecina się lub zawija sam na siebie, więc nie ogranicza jednego obszaru"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "szkic nie ma zamkniętej pętli"
@@ -31206,10 +36165,26 @@ msgstr "mesh_to_brep: siatka nie ma trójkątów"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: wszystkie trójkąty odrzucono jako zdegenerowane (spróbuj mniejszej tolerancji)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "promień zaokrąglenia musi być większy niż 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "brak krawędzi do zaokrąglenia w tej grupie"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "promień zaokrąglenia jest zbyt duży dla tej geometrii"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "odległość fazowania musi być większa niż 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "brak krawędzi do fazowania w tej grupie"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "długość fazy jest zbyt duża dla tej geometrii"
@@ -31222,6 +36197,153 @@ msgstr "apply_fillet: zaokrąglenie OCCT nie powiodło się"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: fazowanie OCCT nie powiodło się"
+# AI Translated
+msgid "empty component list"
+msgstr "pusta lista składników"
+
+# AI Translated
+msgid "empty component index"
+msgstr "pusty indeks składnika"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "indeks składnika musi być >= 1 (otrzymano %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "nieprawidłowy indeks składnika „%1%”"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "wymagane są co najmniej 2 składniki (otrzymano %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "zduplikowany indeks składnika %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "pusta wartość proporcji"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "proporcja musi być dodatnia (otrzymano %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "nieprawidłowa proporcja „%1%”"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "liczba proporcji musi odpowiadać liczbie składników: oczekiwano %1%, otrzymano %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "oczekiwano dwóch liczb zmiennoprzecinkowych rozdzielonych przecinkiem, np. „0.10,0.90”"
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "proporcje początkowa i końcowa muszą mieścić się w przedziale (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "rozmiar tablicy %1% nie odpowiada liczbie slotów filamentu %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "musi być ustawione, gdy podano parametry filamentu mieszanego"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "slot %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "slot %1%: składnik %2% poza zakresem (maksymalny indeks filamentu fizycznego to %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "slot %1%: nie może odwoływać się do samego siebie jako składnika"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "slot %1%: składnik %2% odwołuje się do slotu filamentu mieszanego"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "slot %1%: gradient wymaga dokładnie 2 składników"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "slot %1%: nieprawidłowa krzywa (wymagane są co najmniej 2 prawidłowe punkty kontrolne)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Nie udało się wczytać pliku konfiguracyjnego „%1%”: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "To nie jest plik G-code wygenerowany przez %1%."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Nie znaleziono znacznika konfiguracji „%1%”"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Podejrzanie mała liczba wartości konfiguracji wyodrębnionych z %1%: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Nie udało się wczytać pliku STEP.\n"
+"Nie można otworzyć pliku do odczytu.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "import SVG nie powiódł się: nie można otworzyć pliku SVG."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "import SVG nie powiódł się: nie udało się przeanalizować zaimportowanych danych SVG."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Niestandardowy G-code zgłasza ujemną wartość z_retracted."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Niestandardowy G-code zgłasza ujemną wartość z_restart_extra."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Nie udało się skopiować katalogu %1% do %2%: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Uwierzytelnianie zakończone"
@@ -31667,6 +36789,1117 @@ msgstr ""
"Unikaj odkształceń\n"
"Czy wiesz, że podczas drukowania filamentami podatnymi na odkształcenia, takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może zmniejszyć prawdopodobieństwo odkształceń?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Proszę wybrać kolor filamentu"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Szerokość linii mostu. Jeśli wyrażona w %, będzie liczona względem średnicy dyszy.\n"
+#~ "Zalecane stosowanie z większą gęstością mostu lub większym współczynnikiem przepływu mostu.\n"
+#~ "\n"
+#~ "Maksymalna wartość to 100% lub średnica dyszy.\n"
+#~ "Przy ustawieniu 0 szerokość linii będzie odpowiadać szerokości wewnętrznego wypełnienia pełnego."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Włącz tę opcję, aby spowolnić druk w obszarach, w których obrysy mogły zawinąć się do góry.\n"
+#~ "Na przykład dodatkowe spowolnienie zostanie zastosowane przy druku nawisów na ostrych narożnikach, takich jak dziób kadłuba Benchy, co ogranicza zawijanie kumulujące się przez wiele warstw.\n"
+#~ "\n"
+#~ "Ogólnie zaleca się włączenie tej opcji, chyba że chłodzenie Twojej drukarki jest wystarczająco mocne lub prędkość druku na tyle niska, że zawijanie obrysów nie występuje. \n"
+#~ "Przy druku z dużą prędkością obrysu zewnętrznego ten parametr może wprowadzać artefakty na ścianach podczas spowalniania, ze względu na potencjalnie dużą zmienność prędkości druku, przy której ekstruder nie nadąża za żądaną zmianą przepływu.\n"
+#~ "Przyczyną tych artefaktów jest najprawdopodobniej niedokładne dostrojenie PA, zwłaszcza w połączeniu z długim czasem wygładzania PA.\n"
+#~ "\n"
+#~ "Zalecenia przy włączaniu tej opcji:\n"
+#~ "1. Zmniejsz czas wygładzania Pressure Advance do 0,015–0,02, aby ekstruder szybko reagował na zmiany prędkości.\n"
+#~ "2. Zwiększ minimalne prędkości druku, aby ograniczyć skalę spowolnienia i zmniejszyć różnicę między szybkimi i wolnymi odcinkami.\n"
+#~ "3. Jeśli artefakty nadal występują, włącz wygładzanie natężenia ekstruzji (ERS), aby dodatkowo wygładzić zmiany przepływu.\n"
+#~ "\n"
+#~ "Uwaga: gdy ta opcja jest włączona, obrysy nawisów są traktowane jak nawisy, co oznacza, że prędkość nawisu jest stosowana nawet wtedy, gdy obrys nawisu jest częścią mostu.\n"
+#~ "Na przykład gdy obrysy są w 100% nawisem, bez podpierającej ich od spodu ściany, zostanie zastosowana prędkość nawisu 100%."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Szybkość druku zewnętrznych widocznych obrysów mostu.\n"
+#~ "\n"
+#~ "Ponadto, jeśli opcja zwalniania na łukach jest wyłączona lub włączony jest klasyczny tryb druku nawisów, to szybkość druku ścian nawisu, które mają wsparcie mniejsze niż 13%, będzie taka sama, niezależnie od tego, czy są częścią mostu, czy nawisu."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "To ustawienie reguluje prędkość obrysów posiadających promień <= próg małego obrysu (zazwyczaj chodzi o otwory). Jeśli ustawisz wartość procentową (np. 80%) to zostanie obliczona z prędkości obrysów ustawionej powyżej. Ustaw zero, aby użyć ustawień automatycznych."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Tak samo jak „Małe obrysy”, ale dla podpór. To osobne ustawienie wpływa na prędkość podpór dla obszarów <= `small_support_perimeter_threshold`. Jeśli wyrażone w procentach (na przykład: 80%), zostanie obliczone na podstawie powyższego ustawienia prędkości podpór lub warstwy łączącej podpór. Ustaw zero, aby wybrać automatycznie."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Sekwencja druku zewnętrznych i wewnętrznych ścian.\n"
+#~ "\n"
+#~ "Użyj opcji „wewnętrzna/zewnętrzna” dla najlepszego efektu nawisów. Jest to spowodowane tym, że ściany zwisające mogą przylegać do sąsiednich obwodów podczas drukowania. Jednakże, opcja ta skutkuje delikatnie obniżoną jakością powierzchni, ponieważ zewnętrzny obrys jest deformowany przez ścianę wewnętrzną, która jest do niej dociskana.\n"
+#~ "\n"
+#~ "Użyj opcji „wewnętrzna/zewnętrzna/wewnętrzna” dla najlepszego wykończenia zewnętrznej powierzchni i dokładności wymiarowej, ponieważ zewnętrzna ściana jest drukowana niezakłócona przez wewnętrzny obwód. Jednak wydajność druku przy nawisach będzie niższa, ponieważ nie ma wewnętrznego obwodu, który mógłby podeprzeć druk zewnętrznej ściany. Ta opcja wymaga co najmniej 3 ścian, aby była skuteczna, ponieważ najpierw drukuje wewnętrzne ściany zaczynając od trzeciego obwodu, następnie zewnętrzny obwód i w końcu pierwszy wewnętrzny obwód. W większości przypadków ta opcja jest polecana jako alternatywa dla opcji zewnętrzna/wewnętrzna.\n"
+#~ "\n"
+#~ "Użyj opcji „zewnętrzna/wewnętrzna”, aby uzyskać taką samą jakość zewnętrznej ściany i precyzję wymiarową jak w opcji „wewnętrzna/zewnętrzna/wewnętrzna”. Jednakże, szwy na osi Z będą wydawać się mniej spójne, ponieważ pierwsza ekstruzja nowej warstwy rozpoczyna się na widocznej powierzchni."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Prędkość pierwszej warstwy z wyjątkiem pełnego wypełnienia"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Prędkość pełnego wypełnienia na pierwszej warstwie"
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Obszar wypełnienia jest nieznacznie powiększony, aby częściowo zachodzić na ścianę i tym zapewnić lepsze połączenie. Wartość procentowa odnosi się do szerokości linii wypełnienia. Ustaw tę wartość na około 10-15%, aby uniknąć nadmiernej ekstruzji materiału, co może prowadzić do nierówności na górnej powierzchni wydruku."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "Górny obszar wypełnienia jest nieznacznie powiększony, aby zachodził na ścianę w celu lepszego połączenia i zminimalizowania pojawiania się otworów w miejscu, w którym górne wypełnienie styka się ze ścianami. Wartość 25-30% jest dobrym punktem wyjścia, minimalizującym pojawianie się otworów. Wartość procentowa odnosi się do szerokości linii wypełnienia"
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Głębokość zazębiania się podzielonego na segmenty obszaru. Zostanie ona zignorowana, jeśli „mmu_segmented_region_max_width” wynosi zero lub jeśli „mmu_segmented_region_interlocking_depth” jest większa niż „mmu_segmented_region_max_width”. Wartość zero wyłącza tę funkcję."
+
+# AI Translated
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Zmniejsza wysokość obrysów górnej powierzchni, aby dopasować je do wysokości krawędzi modelu.\n"
+#~ "Dotyczy obrysów o nachyleniu mniejszym niż ten kąt (w stopniach).\n"
+#~ "Rozsądna wartość to 35. Ustaw 0, aby wyłączyć."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Prędkość wycierania dyszy w oparciu o rolę ekstruzji"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Draft Shield („ochrona przed przeciągiem”)jest przydatna do ochrony wydruku z ABS lub ASA przed wypaczaniem i oderwaniem się od stołu drukarki z powodu podmuchów powietrza. Zazwyczaj jest to potrzebne tylko w przypadku drukarek otwartych, czyli bez obudowy.\n"
+#~ "\n"
+#~ "Włączony = skirt ma wysokość równą najwyższemu wydrukowanemu obiektowi. W przeciwnym razie stosuje się „wysokość obramowania”.\n"
+#~ "Uwaga: Aktywując funkcję Draft Shield, Skirt zostanie wydrukowany w takiej odległości od obiektu jak określono w odstęp Skirtu od obiektu. Jeśli w tym samym czasie Brim jest też aktywny, może dojść do jego przecięcia się ze Skirt-em. Aby temu zapobiec, zwiększ wartość odległości od Skirtu\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Jest to funkcja odpowiedzialna za maksymalną prędkość drukowania podczas oczyszczania w wieży czyszczącej i drukowania jej rzadkich warstw.\n"
+#~ "Podczas oczyszczania, jeśli prędkość rzadkiego wypełnienia jest niższa od prędkości obliczonej na podstawie maksymalnego natężenia przepływu filamentu, to właśnie ta niższa wartość zostanie wybrana.\n"
+#~ "\n"
+#~ "Podczas drukowania rzadkich warstw, jeśli prędkość wewnętrznych obrysów lub prędkość obliczona na podstawie maksymalnego natężenia przepływu filamentu jest niższa, zostanie użyta właśnie ta niższa wartość.\n"
+#~ "\n"
+#~ "Przed zwiększeniem tego parametru powyżej domyślnej wartości 90mm/s, upewnij się, że Twoja drukarka potrafi niezawodnie mostkować przy wyższych prędkościach oraz że wyciek filamentu podczas jego zmiany jest dobrze kontrolowany.\n"
+#~ "\n"
+#~ "W przypadku zewnętrznych obwodów wieży czyszczącej prędkość jej obwodu wewnętrznego jest niezależna od tego ustawienia."
+
+# AI Translated
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Typ ściany zewnętrznej wieży czyszczącej.\n"
+#~ "1. Prostokąt: domyślny typ ściany, prostokąt o stałej szerokości i wysokości.\n"
+#~ "2. Stożek: stożek z zaokrągleniem u dołu, pomagający ustabilizować wieżę czyszczącą.\n"
+#~ "3. Żebro: dodaje cztery żebra do ściany wieży dla większej stabilności."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Dodatkowy przepływ stosowany w ekstruzjach na wieży czyszczącej. Powoduje to, że linie czyszczące są grubsze lub cieńsze niż standardowo. Odstępy regulowane są automatycznie."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Zmodyfikuj tę wartość, aby uniknąć drukowania krótkich, otwartych ścianek, co może prowadzić do wydłużenia czasu druku. Wyższe wartości spowodują usunięcie większej ilości dłuższych ścianek.\n"
+#~ "\n"
+#~ "UWAGA: Ta wartość nie wpłynie na dolne i górne powierzchnie modelu i może zapobiec widocznym przerwom na zewnątrz. Aby dostosować czułość określającą, co jest uważane za górną powierzchnię, dostosuj „Próg jednej ściany” w zaawansowanych ustawieniach poniżej. „Próg jednej ściany” jest widoczny tylko wtedy, gdy to ustawienie jest ustawione na wartość wyższą niż domyślna wartość 0,5 lub jeśli opcja pojedynczych ścianek na górze jest włączona."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Podziel na %1% część"
+#~ msgstr[1] "Podziel na %1% części"
+#~ msgstr[2] "Podziel na %1% części"
+
+#~ msgid "Repair failed"
+#~ msgstr "Naprawa nie powiodła się."
+
+#~ msgid "Repair canceled"
+#~ msgstr "Naprawa anulowana"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Co ta warstwa robi tam, gdzie nakłada się na warstwy poniżej. Dodaj i Odejmij nakładają relief lub go wycinają. Pomnóż i Podziel skalują to, co jest pod spodem, przez co ta warstwa staje się nad tym maską - tam Głębokość działa jak siła, a 1 mm pozostawia białe obszary nietknięte."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "Siatka ma geometrię nierozmaitościową lub otwarte brzegi. Możesz zaimportować ją bez zmian lub przed importem naprawić ją za pomocą usługi naprawy 3D systemu Windows."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Uwaga: siatka ma geometrię nierozmaitościową lub otwarte brzegi."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Problem z siatką"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Naprawa nie powiodła się: siatka jest nadal otwarta po wypełnieniu otworów."
+
+# AI Translated
+# Needs human review: English says 'non-boolean operators' but means operands; rendered as operandów. Source wording may need fixing.
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Nie można zastosować operacji logicznej do operandów nielogicznych."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Odczyt"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Liczba filamentów przekracza maksymalną ilość obsługiwaną przez narzędzie malowania. Tylko pierwsze %1% filamenty będą dostępne w tym narzędziu."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Skrót klawiszowy "
+
+#~ msgid "Build Volume"
+#~ msgstr "Wymiary robocze"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Obiekty (%1%) mają zduplikowane łączniki. W wyniku cięcia niektórych łączników może brakować.\n"
+#~ "Zgłoś zespołowi OrcaSlicer, w jakiej sytuacji wystąpił ten problem.\n"
+#~ "Dziękujemy."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d trójkątów"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Przesuwanie)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Stały)"
+
+#~ msgid "Filament "
+#~ msgstr "Materiał "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "hotend"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Rozmieszczanie "
+
+#~ msgid "Orienting"
+#~ msgstr "Orientacja"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Ustaw wszystkie osie na pozycje domową (kliknij "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") aby określić pozycję głowicy drukującej. To uniemożliwi narzędziu wyjście poza możliwy obszar druku, co chroni sprzęt przed zużyciem."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "W porównaniu do optymalnego grupowania, zużycie filamentu wzrośnie o %1%g, a liczba jego zmian o %2%."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "W porównaniu do optymalnego grupowania, zużycie filamentu wzrośnie o %1%g, a liczba jego zmian spadnie o %2%."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "W porównaniu do optymalnego grupowania, zużycie filamentu spadnie o %1%g, a liczba jego zmian wzrośnie o %2%."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "W porównaniu do drukarki z jedną dyszą, zużycie filamentu spadnie o %1%g, a liczba jego zmian o %2%."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "W porównaniu do drukarki z jedną dyszą, zużycie filamentu spadnie o %1%g, a liczba jego zmian wzrośnie o %2%."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "W porównaniu do drukarki z jedną dyszą, zużycie filamentu wzrośnie o %1%g, a liczba jego zmian spadnie o %2%."
+
+#~ msgid "number keys"
+#~ msgstr "klawisze numeryczne"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Filamenty %s są umieszczone w %s, ale wygenerowana ścieżka G-code wykracza poza obszar roboczy %s."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Filamenty %s są umieszczone w %s, ale wygenerowana ścieżka G-code przekracza wysokość druku %s."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Filamentów %s nie można drukować bezpośrednio na powierzchni tej płyty."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "zostanie zamknięta przed utworzeniem nowego modelu. Czy kontynuować?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "W kolejce do cięcia w chmurze jest %s zadań przed tobą."
+
+#~ msgid " upload failed"
+#~ msgstr " przesyłanie nie powiodło się"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " błąd przesyłania konfiguracji\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Brak odpowiadającego pojemnika na dane\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " nie można otworzyć\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Wynik twojego komentarza nie może być przesłany z powodu następujących przyczyn:\n"
+#~ "\n"
+#~ " kod błędu: "
+
+#~ msgid "error message: "
+#~ msgstr "komunikat o błędzie: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Czy przenieść na stronę internetową w celu oceny?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (profil procesu: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "Dysza %s nie może drukować %s."
+
+#~ msgid " nozzle"
+#~ msgstr " dysza"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Nie jest rekomendowane drukowanie poniższych filamentów przu użyciu %1%: %2%.\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " płyty %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Usunąć wszystkie filamenty mieszane (%1%)?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Czy chcesz go zastąpić"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Konflikt temperatury stołu: T%d (%s) ustawia stół na %d°C — T%d (%s) wymaga %d°C. Stołem steruje narzędzie główne; narzędzia dodatkowe drukują w temperaturze, którą ono ustawi."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Brak wartości przyspieszenia do kalibracji. Użyj wartości domyślnej."
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Prędkość nie została określona do kalibracji. Użyj domyślnej prędkości optymalnej."
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Brak taśmowej wieży temperatur dla zakresu od %1% do %2% °C. Użyj zakresu, który obejmują modele wieży, na przykład od 230 do 190."
+
+#~ msgid "The selected file"
+#~ msgstr "Wybrany plik"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "nie zawiera prawidłowego G-code."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "aktualnie skojarzone z OrcaSlicer, aby Orca mogła otwierać modele z"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Zużycie filamentu wzrośnie o %dg, a liczba zmian o %d w porównaniu do optymalnego grupowania."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Parametry z tą ikoną można konfigurować osobno dla każdej dyszy."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Znaleziono zarezerwowane słowa kluczowe"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d profil filamentu i %d profil procesu jest przypisany do tej drukarki. Te profile zostaną skasowane, jeśli drukarka zostanie usunięta."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Następny profil przejmie te ustawienia."
+#~ msgstr[1] "Następne profile przejmą te ustawienia."
+#~ msgstr[2] "Następnych profili przejmie te ustawienia."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% profil"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Czy na pewno %1% wybrane ustawienia?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Podziel na %1% części"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Pobieranie nowych profili producentów: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Nie udało się pobrać profili producentów: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "W tym trybie Span kolory drukują wyłącznie narzędzia %1%, ale filament %2% nie jest przypisany do żadnego narzędzia. Użyj filamentów przypisanych do %1% lub przełącz tę płytę na tryb główny (Primary)."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "W tym trybie Span kolory drukują wyłącznie narzędzia %1%, ale filament %2% jest przypisany do T%3%. Użyj filamentów przypisanych do %1% lub przełącz tę płytę na tryb główny (Primary)."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " jest zbyt blisko obszaru wykluczenia, mogą wystąpić kolizje podczas drukowania."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " jest zbyt blisko obszaru wykrywania zalepienia dyszy, mogą wystąpić kolizje podczas drukowania."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Wieża Czyszcząca"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " jest zbyt blisko innych modeli, mogą wystąpić kolizje.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " jest zbyt blisko obszaru wykluczenia, mogą wystąpić kolizje.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " jest zbyt blisko obszaru wykrywania zalepienia dyszy, co doprowadzi do kolizji.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " znajduje się częściowo poza obszarem druku i nie może zostać wydrukowany.\n"
+
+# AI Translated
+# Needs human review: Substituted for %3% in 'IDEX/IQEX mode "%1%" prints with T%2%, but this plate's filaments are on %3%' (translated 'są na narzędziach: %3%'); check the combined sentence reads acceptably.
+#~ msgid "no configured tool"
+#~ msgstr "brak skonfigurowanego narzędzia"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "Końcowy G-code po zakończeniu całego druku"
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Maksymalna prędkość X"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Maksymalna prędkość Y"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Maksymalna prędkość Z"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Maksymalna prędkość E"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Wtyczki Pythona wywoływane na każdym etapie potoku cięcia w celu odczytu i modyfikacji pośrednich danych cięcia, w tym końcowego etapu postprocessingu G-code. Badawcze/eksperymentalne."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Gdy ta opcja jest włączona, slicer generuje G-code z zawartością strefy głównej wyśrodkowaną względem początku układu stołu (0,0). Oprogramowanie sprzętowe drukarki odpowiada za umieszczenie kopii i odbić lustrzanych w położeniu każdej fizycznej strefy. Włączaj tylko w drukarkach, których oprogramowanie sprzętowe samo stosuje przesunięcia stref w trybie Kopia/Lustro (np. tryb duplikacji IDEX w RepRapFirmware). Nie ma wpływu w trybie głównym (Primary)."
+
+# AI Translated
+# Needs human review: 'pem-inversion' (inverse of the physical extruder map) is developer jargon kept as 'odwrócenia pem'; check it is understandable.
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Nadpisanie dla płyty przypisujące fizyczne głowice do gniazd filamentu (liczonych od 1). Puste oznacza użycie wartości domyślnych z odwrócenia pem."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Oś, wokół której siatka jest obracana przed cięciem. To pochylenie drukarki taśmowej: obrót izometryczny (bez zniekształceń), który steruje również renderowaniem stołu i pochyleniem grawitacji dla podpór i który odwrotna transformacja G-code cofa przed ścinaniem/skalowaniem w układzie współrzędnych maszyny i przemapowaniem osi. X to typowe pochylenie portalu (taśma przesuwa się wzdłuż Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Nadpisanie dla ekspertów: ustawia kąt pochylenia układu współrzędnych maszyny (ścinanie/skalowanie G-code) niezależnie od kąta obrotu przed cięciem. Gdy opcja jest wyłączona, transformacja układu współrzędnych maszyny jest wyznaczana z kąta pochylenia taśmy, więc jeden kąt steruje oboma etapami. Włączaj tylko w celu kompensacji maszyny, której fizyczne pochylenie portalu różni się od obrotu przy cięciu."
+
+# AI Translated
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "Maksymalna dopuszczalna odchyłka przy zmniejszaniu rozdzielczości dla ustawienia „Maksymalna rozdzielczość ściany”. Jej zwiększenie sprawi, że wydruk będzie mniej dokładny, ale G-code będzie mniejszy. „Maksymalna odchyłka ściany” ogranicza „Maksymalną rozdzielczość ściany”, więc w razie konfliktu pierwszeństwo ma „Maksymalna odchyłka ściany”."
+
+#~ msgid " not in range "
+#~ msgstr " nie w zakresie "
+
+#~ msgid "floating regions"
+#~ msgstr "unoszące się obszary"
+
+#~ msgid "floating cantilever"
+#~ msgstr "nawisającą konstrukcje (cantilever)"
+
+#~ msgid "large overhangs"
+#~ msgstr "duże nawisy"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Wydaje się, że obiekt %s ma %s. Proszę ponownie ustawić obiekt lub włączyć generowanie podpór."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Nie wykryto żadnych warstw. Możesz chcieć naprawić swoje pliki STL lub sprawdzić ich rozmiar lub grubość i spróbować ponownie.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "To urządzenie może przechowywać tylko %d wyników w historii dla jednej dyszy. Ten wynik nie zostanie zapisany."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "To urządzenie może przechowywać tylko %d wyników w historii dla jednej dyszy."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Nawis"
+
+# AI Translated
+#~ msgid "Start / End"
+#~ msgstr "Początek / koniec"
+
+# AI Translated
+#~ msgid "Damp"
+#~ msgstr "Tłumienie"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "Wykryto %d slotów IFS w drukarce."
+
+#~ msgid "selected"
+#~ msgstr "wybrane"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Następujące ustawienia dziedziczą to ustawienie."
+#~ msgstr[1] "Następujące ustawienia dziedziczą to ustawienie."
+#~ msgstr[2] "Następujących ustawień dziedziczą to ustawienie."
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "Znaleziono %zu drukarek Creality. Wybierz jedną i kliknij Użyj wybranej."
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "dziennik(i)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Błąd: ekstruder %s nie ma dostępnej dyszy %s, bieżący wynik grupowania jest nieprawidłowy."
+
+#~ msgid "invalid brim ears"
+#~ msgstr " nieprawidłowe uszy brim"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "%d obiekty będą pomijane."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Otwórz folder w eksploratorze"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Kliknij środek, potem wierzchołek — liczba boków: %d, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "opisany"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "wpisany"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Utworzono szkic (wymiary sterujące: %zu) — zaznacz go, a następnie kliknij prawym przyciskiem, aby wykonać Wyciągnięcie"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — trójkąty: %zu"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Ta siatka ma %d trójkątów. Każdy trójkąt staje się powierzchnią B-rep przed scaleniem powierzchni współpłaszczyznowych, więc import może trwać długo i pozostawić bryłę, której edycja jest powolna. Zwykle lepiej najpierw uprościć siatkę.\n"
+#~ "\n"
+#~ "Zaimportować mimo to?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Zaimportowano bryłę — trójkąty: %d → powierzchnie: %d, objętość %.2f mm³. Wybierz powierzchnię lub krawędź, a następnie Zaokrąglenie / Przetnij / Skorupa, aby modyfikować"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — przeciągnij, aby umieścić/zmienić rozmiar, a następnie potwierdź"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "Elementy szkicu: %d"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — wpisz wartość, naciśnij Enter (lub Potwierdź)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Podgląd — trójkąty: %zu"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "Pominięte wiązania, które nie mogą działać na tej geometrii (elipsa lub krzywa splajn albo okrąg o zerowym rozmiarze): %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "Usunięte wiązania unieważnione przez zaokrąglenie/fazowanie: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "Wiązania usunięte przez transformację: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...i jeszcze otwarte końce: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "Lista materiałów obsługuje maksymalnie %1% kolorów. Po rozkładzie w trybie %2% liczba materiałów przekroczyłaby %1%. Przed rozkładem usuń nieużywane filamenty na ekranie głównym."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "Kolory do druku: %1% (z filamentów: %2%)"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "Wyspy: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Użyto wszystkich warstw (%1%)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Podgląd — trójkąty: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Model: %1% trójkątów - wypiekanie zagęszcza do powyższej rozdzielczości, w granicach budżetu"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Wypiekanie przesuwa istniejące wierzchołki - model pozostaje przy %1% trójkątów"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Wynik wypiekania do ~%1% k trójkątów"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "pominięto niepomalowane warstwy (%1%)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Projekt obsługuje maksymalnie %d filamentów. Dodatkowe filamenty zostaną odrzucone."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Zaznaczone wierzchołki: %d | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Zaznaczone krawędzie: %d | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "Zaznaczone wyspy: %d | przeciąganie = przesuń razem, Shift/Ctrl + klik = dodaj/usuń, R/S = obróć/skaluj główną"
+
+# AI Translated
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Rozmiar kafelka aktywnej warstwy: jaką część modelu obejmuje jedno powtórzenie tekstury. Widok jest mierzony w kafelkach, więc jedna komórka siatki to jedno powtórzenie. Zmień go opcją „Kafelkowanie” w ustawieniach warstwy."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "Wyspy: %d, ściany: %s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Wtyczka „%s” prosi o odczyt następujących plików:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Wtyczka „%s” prosi o odczyt/zapis następujących plików:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Wtyczka „%s” prosi o utworzenie następujących plików:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Wtyczka „%s” prosi o usunięcie następujących plików:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Wtyczka „%s” prosi o uruchomienie następujących poleceń:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Instalacja wtyczki nie powiodła się"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Nie udało się zainstalować Microsoft WebView2 Runtime.\n"
+#~ "Niektóre funkcje, w tym kreator konfiguracji, mogą być puste do czasu jego zainstalowania.\n"
+#~ "Zainstaluj go ręcznie ze strony https://developer.microsoft.com/microsoft-edge/webview2/ i uruchom ponownie Orca Slicer."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Dlaczego tak jest zgrupowane"
+
+# AI Translated
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "Oprogramowanie nie obsługuje używania dysz o różnych średnicach w jednym druku. Jeśli lewa i prawa dysza są niezgodne, możemy kontynuować tylko druk jednogłowicowy. Potwierdź, której dyszy chcesz użyć w tym projekcie."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Zmiana średnicy"
+
+# AI Translated
+#~ msgid "BambuStudio Project"
+#~ msgstr "Projekt BambuStudio"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "Plik 3MF został utworzony przez BambuStudio (wersja %s), która jest nowsza niż zgodna wersja %s. Znaleziono nierozpoznane ustawienia:"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "Plik 3MF został utworzony przez BambuStudio (wersja %s), która jest nowsza niż zgodna wersja %s. Niektóre ustawienia mogą nie być w pełni zgodne."
+
+# AI Translated
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "Plik 3MF został utworzony przez BambuStudio. Niektóre ustawienia mogą różnić się od OrcaSlicer."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Nie można cofnąć ani ponowić, gdy trwa operacja. Najpierw ją zatrzymaj."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Centruje wewnętrzne wypełnienie każdej części na niej samej, tak jakby była cięta osobno, zamiast na całym złożeniu. Części stykające się lub nakładające są traktowane jako jedna bryła i mają wspólny środek; oddzielne części (lub odrębne obiekty 3D) mają własne środki.\n"
+#~ "Przydatne, gdy złożenie grupuje kilka obiektów, z których każdy powinien zachować spójne, wycentrowane względem siebie wypełnienie.\n"
+#~ "Dotyczy wzorów liniowych i siatkowych oraz wypełnień z szablonem obrotu.\n"
+#~ "Wzory powiązane ze współrzędnymi globalnymi (Gyroidalny, Plaster miodu, TPMS, ...) pozostają bez zmian."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Indeks aktualnej warstwy uwzględniający zero (pierwsza warstwa ma wartość 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Samouczek wideo"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Prymityw"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Wygenerowano pustą siatkę"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Prostopadłościan"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Szybki wybór:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Szerokość (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Głębokość (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Wysokość (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "R dolny"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "R górny"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "R większy"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "R mniejszy"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Wszystkie krawędzie"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Górne krawędzie"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Dolne krawędzie"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Boczne krawędzie"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Rozdzielczość siatki"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Dodaj kształt"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Brak profilu zewnętrznego"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Nie udało się utworzyć powierzchni zewnętrznej"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Nie udało się zbudować powierzchni z otworami"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Obrót nie powiódł się"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Profil"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Rozpocznij nowy profil (dla otworów)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segmenty"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Boki"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Kliknij w widoku, aby rysować"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Przyciągaj do siatki"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Krok siatki"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Zewnętrzny"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "zamknięty"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% pkt %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (góra)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (przód)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (bok)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Obrót (°)"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "Ustaw 0 dla wyciągnięcia, >0 dla obrotu"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Kieszeń (wycięcie)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu zamknięty profil"
+#~ msgstr[1] "%zu zamknięte profile"
+#~ msgstr[2] "%zu zamkniętych profili"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Narysuj zamknięty profil, aby włączyć"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Pusty wynik"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Wyciągnięcie: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Obrót: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Nie wybrano obiektu"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Nie udało się utworzyć powierzchni"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Nie udało się utworzyć powierzchni z otworami"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Siatka narzędzia jest pusta"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Dodano kieszeń (objętość ujemna)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Kieszeń: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Wymaga aktywnej warstwy z mapowaniem Rozwinięcie (LSCM)."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Szachownica - siatka testowa zamiast tekstury. Tam, gdzie kwadraty pozostają kwadratowe, tekstura nie jest zniekształcona; tam, gdzie się rozciągają, tekstura również się rozciągnie"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Zniekształcenie - mapa cieplna rozciągnięcia (od niebieskiego do czerwonego) na rozwinięciu"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Mieszaj według"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Powierzchnia"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Warstwy: dwa filamenty zmieniają się co warstwę druku, co daje płynne przejście na pionowych powierzchniach, ale zanika na powierzchniach skierowanych płasko, gdzie cała warstwa jest jednym pasem.\n"
+#~ "Powierzchnia: drobna szachownica na powierzchni, która działa pod każdym kątem, ale może być odbierana jako tekstura, a nie jako mieszanie kolorów.\n"
+#~ "Automatyczny: warstwy na pionowych ścianach; ściany skierowane płasko otrzymują najbliższy pojedynczy filament, ponieważ szachownica jest tam widoczna jako wzór."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Wyspa - przesuwaj, obracaj i skaluj całe wyspy"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Wierzchołek - przeciągaj wierzchołki, aby zmienić kształt; Shift/Ctrl, aby zaznaczyć wiele"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Krawędź - przeciągaj krawędzie, aby zmienić kształt; Shift/Ctrl, aby zaznaczyć wiele"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Pokaż wszystkie wyspy (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Eksperymentalne) Używaj agentów drukarki zamiast serwerów druku"
@@ -31700,16 +37933,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Kliknij powierzchnię lub płaszczyznę odniesienia, a następnie wybierz narzędzie rysowania"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -31766,10 +37989,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Odległość pionowa"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Liniowy"
-
#~ msgid "Face recognition"
#~ msgstr "Rozpoznawanie twarzy"
@@ -33170,9 +39389,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Nie udało się obliczyć szerokości linii %1%. Nie można uzyskać wartości „%2%” "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Nieprawidłowy odstęp podany do Flow::with_spacing(), sprawdź wysokość warstwy i szerokość ekstruzji."
-
#~ msgid "Continue to sync filaments"
#~ msgstr "Kontynuuj aby zsynchronizować filamenty"
@@ -33327,9 +39543,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "wybór części"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction mode.\n"
#~ "\n"
@@ -35223,28 +41436,6 @@ msgstr ""
#~ msgid "The maximum temperature cannot exceed"
#~ msgstr "Maksymalna temperatura nie może przekroczyć"
-#~ msgid "Best surface quality"
-#~ msgstr "Najlepsza jakość powierzchni"
-
-#~ msgid "Optimize object rotation for best surface quality."
-#~ msgstr "Optymalizuje orientację modelu dla najlepszej jakości powierzchni."
-
-#~ msgid "Reduced overhang slopes"
-#~ msgstr "Redukuj nawisy"
-
-#~ msgid ""
-#~ "Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
-#~ "Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
-#~ msgstr ""
-#~ "Optymalizuj orientację modelu, aby ilość zwisów wymagających podparcia była minimalna.\n"
-#~ "Weź pod uwagę, że spowoduje to próbę odnalezienia najlepszej powierzchni styku z platformą, jeśli nie ustawiono podniesienia modelu."
-
-#~ msgid "Lowest Z height"
-#~ msgstr "Najniższa wysokość Z"
-
-#~ msgid "Rotate the model to have the lowest z height for faster print time."
-#~ msgstr "Optymalizuje orientację modelu, aby miał jak najmniejszy rozmiar w osi Z dla skrócenia czasu drukowania."
-
#~ msgid "Movement:"
#~ msgstr "Ruch:"
@@ -35282,9 +41473,6 @@ msgstr ""
#~ msgid "Measure gizmo editing"
#~ msgstr "Edycja uchwytów pomiaru"
-#~ msgid "Model simplification has been canceled"
-#~ msgstr "Uproszczenie modelu zostało anulowane"
-
#~ msgid "Cannot proceed without support points! Add support points or disable support generation."
#~ msgstr "Nie można kontynuować bez punktów podpór! Dodaj punkty podpór lub wyłącz ich generowanie."
@@ -35352,15 +41540,6 @@ msgstr ""
#~ msgid "The selected 3MF file has been saved with a newer version of %1% and is not compatible."
#~ msgstr "Wybrany plik 3MF został zapisany przy pomocy nowszej wersji %1% i nie jest kompatybilny"
-#~ msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
-#~ msgstr "Wybrany plik 3MF zawiera podpory FDM namalowane przy pomocy nowszej wersji OrcaSlicer i nie jest kompatybilny."
-
-#~ msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
-#~ msgstr "Wybrany plik 3MF zawiera szew namalowany przy pomocy nowszej wersji OrcaSlicer i nie jest kompatybilny."
-
-#~ msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
-#~ msgstr "Wybrany plik 3MF zawiera model pomalowany do Multi Material przy pomocy nowszej wersji OrcaSlicer i nie jest kompatybilny."
-
#~ msgid ""
#~ "Number of mm the overhang need to be for the reversal to be considered useful. Can be a (%) of the perimeter width.\n"
#~ "Value 0 enables reversal on every odd layers regardless."
diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po
index affa2aced8..06fd49ab2f 100644
--- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po
+++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po
@@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
-"PO-Revision-Date: 2026-07-26 11:14-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
+"PO-Revision-Date: 2026-10-11 16:22-0300\n"
"Last-Translator: Alexandre Folle de Menezes\n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -251,7 +251,6 @@ msgstr "Padrão"
msgid "TPU High Flow"
msgstr "TPU Alto fluxo"
-# AI Translated
msgid "E3D High Flow"
msgstr "E3D Alto Fluxo"
@@ -351,8 +350,11 @@ msgstr "Leitura "
msgid "Please wait"
msgstr "Por favor, aguarde"
-msgid "Reading"
-msgstr "Lendo"
+# AI Translated
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Suporte para Hotend por Indução: lendo %d/%d"
msgid "Running..."
msgstr "Executando…"
@@ -503,9 +505,12 @@ msgstr "Gizmo-Posicionar na face"
msgid "Lay on Face"
msgstr "Apoiar na Face"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "A contagem de filamentos excede o número máximo que a ferramenta de pintura suporta. Apenas os primeiros %1% filamentos estarão disponíveis na ferramenta de pintura."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "A contagem de filamentos excede o número máximo que a ferramenta de pintura suporta. Apenas %1% filamento (o primeiro) estará disponível na ferramenta de pintura."
+msgstr[1] "A contagem de filamentos excede o número máximo que a ferramenta de pintura suporta. Apenas os primeiros %1% filamentos estarão disponíveis na ferramenta de pintura."
msgid "Color Painting"
msgstr "Pintura de Cores"
@@ -519,7 +524,6 @@ msgstr "Pintar"
msgid "Choose filament"
msgstr "Escolher filamento"
-# AI Translated
msgid "Edge detection"
msgstr "Detecção de arestas"
@@ -557,8 +561,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Tecla de atalho "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Tecla de atalho %d"
msgid "Triangle"
msgstr "Triângulo"
@@ -650,6 +656,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Seleção de peça"
+msgid "Select multiple objects"
+msgstr "Selecionar vários objetos"
+
msgid "Fixed step drag"
msgstr "Arrasto de passo fixo"
@@ -710,9 +719,78 @@ msgstr "Peça"
msgid "Relative"
msgstr "Relativo"
+msgid "Selection"
+msgstr "Seleção"
+
+msgid "Plate"
+msgstr "Placa"
+
+msgid "Distribute"
+msgstr ""
+
msgid "Coordinate system used for transform actions."
msgstr "Sistema de coordenadas usado para ações de transformação."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Alinhar à esquerda"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Alinhar ao centro esquerda-direita"
+
+# AI Translated
+msgid "Align right"
+msgstr "Alinhar à direita"
+
+# AI Translated
+msgid "Align front"
+msgstr "Alinhar à frente"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Alinhar ao centro frente-trás"
+
+# AI Translated
+msgid "Align back"
+msgstr "Alinhar atrás"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Alinhar embaixo"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Alinhar ao centro cima-baixo"
+
+# AI Translated
+msgid "Align top"
+msgstr "Alinhar em cima"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Distribuir esquerda-direita"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Distribuir frente-trás"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Distribuir cima-baixo"
+
+msgid "Drop"
+msgstr "Descartar"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
msgid "Absolute"
msgstr "Absoluto"
@@ -814,9 +892,6 @@ msgstr "Ângulo da cavidade"
msgid "Cut position"
msgstr "Posição de corte"
-msgid "Build Volume"
-msgstr "Volume de Impressão"
-
msgid "Multiple"
msgstr "Múltiplo"
@@ -985,13 +1060,22 @@ msgstr "Plano de corte com cavidade é inválido"
msgid "Connector"
msgstr "Conector"
+# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
-"Os objetos(%1%) têm conectores duplicados. Alguns conectores podem estar faltando no resultado do fatiamento.\n"
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"O objeto (%1%) tem conectores duplicados. Alguns conectores podem estar faltando no resultado do fatiamento.\n"
+"Por favor, informe à equipe do OrcaSlicer em qual cenário esse problema ocorreu.\n"
+"Obrigado."
+msgstr[1] ""
+"Os objetos (%1%) têm conectores duplicados. Alguns conectores podem estar faltando no resultado do fatiamento.\n"
"Por favor, informe à equipe do OrcaSlicer em qual cenário esse problema ocorreu.\n"
"Obrigado."
@@ -1056,9 +1140,12 @@ msgstr "Baixo"
msgid "Extra low"
msgstr "Extra baixo"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d triângulos"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% triângulo"
+msgstr[1] "%1% triângulos"
msgid "Show wireframe"
msgstr "Mostrar malha"
@@ -1069,6 +1156,17 @@ msgstr "Não é possível aplicar quando a pré-visualização está em processa
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Operação já está sendo cancelada. Por favor, aguarde alguns segundos."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "A simplificação do modelo foi cancelada"
+
+msgid "Wiki Guide"
+msgstr "Guia Wiki"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Guia em vídeo"
+
msgid "Enforce seam"
msgstr "Forçar costura"
@@ -1119,6 +1217,14 @@ msgstr "Posição na superfície"
msgid "Emboss"
msgstr "Relevo"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Nenhuma fonte ativa no estilo. Selecione a correta."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "A WxFont não foi carregada corretamente."
+
msgid "NORMAL"
msgstr "NORMAL"
@@ -1569,19 +1675,15 @@ msgstr "O traço da forma (%1%) é muito fino (largura mínima é %2% mm)."
msgid "Stroke of shape (%1%) contains unsupported: %2%."
msgstr "O traço da forma (%1%) contém não suportado: %2%."
-# AI Translated
msgid "Not valid state please report reproduction steps on github"
msgstr "Estado inválido, informe os passos para reproduzir no GitHub"
-# AI Translated
msgid "No embossed file"
msgstr "Nenhum arquivo em relevo"
-# AI Translated
msgid "Missing svg file in embossed shape"
msgstr "Arquivo SVG ausente na forma em relevo"
-# AI Translated
msgid "Missing data of svg file"
msgstr "Dados do arquivo SVG ausentes"
@@ -1671,7 +1773,6 @@ msgstr "Espelhar horizontalmente"
msgid "Change SVG Type"
msgstr "Alterar tipo de SVG"
-# AI Translated
msgid "SVG shape"
msgstr "Forma SVG"
@@ -1704,14 +1805,12 @@ msgstr "Sem recurso"
msgid "Vertex"
msgstr "Vértice"
-# AI Translated
msgid "Edge"
msgstr "Aresta"
msgid "Plane"
msgstr "Plano"
-# AI Translated
msgid "Point on edge"
msgstr "Ponto na aresta"
@@ -1721,7 +1820,6 @@ msgstr "Ponto no círculo"
msgid "Point on plane"
msgstr "Ponto no plano"
-# AI Translated
msgid "Center of edge"
msgstr "Centro da aresta"
@@ -1770,11 +1868,25 @@ msgstr "Diâmetro"
msgid "Length"
msgstr "Comprimento"
-msgid "Selection"
-msgstr "Seleção"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Face 1 (Fixa)"
-msgid " (Moving)"
-msgstr " (Movendo)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Face 2 (Movendo)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Ponto 1 (Fixo)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Ponto 2 (Movendo)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Seleção 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1790,14 +1902,9 @@ msgstr ""
"Selecione 2 pontos ou círculos em objetos\n"
"e especifique a distância entre eles."
-msgid "Face"
-msgstr "Face"
-
-msgid " (Fixed)"
-msgstr " (Fixo)"
-
-msgid "Point"
-msgstr "Ponto"
+# AI Translated
+msgid "Selection 2"
+msgstr "Seleção 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1894,6 +2001,18 @@ msgstr "Entrando no gizmo de Montagem"
msgid "Leaving Assembly gizmo"
msgstr "Saindo do gizmo de Montagem"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -1946,7 +2065,6 @@ msgstr ""
"\n"
"Abra apenas anexos de projetos em que você confia. Abrir mesmo assim?"
-# AI Translated
msgid "Open attachment"
msgstr "Abrir anexo"
@@ -2068,14 +2186,16 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "Tempo de execução WebView2"
+# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Não foi possível instalar o Microsoft WebView2 Runtime.\n"
-"Alguns recursos, incluindo o assistente de instalação, podem aparecer em branco até que ele seja instalado.\n"
-"Por favor, instale-o manualmente de https://developer.microsoft.com/microsoft-edge/webview2/ e reinicie o OrcaSlicer."
+"Alguns recursos, incluindo o assistente de configuração, podem aparecer em branco até que ele seja instalado.\n"
+"Instale-o manualmente a partir de %1% e reinicie o Orca Slicer."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2293,6 +2413,66 @@ msgstr "Restrição de Plug-in de Rede"
msgid "Privacy Policy Update"
msgstr "Atualização da Política de Privacidade"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Todas as suas predefinições de filamento estão disponíveis nas impressoras para as quais foram criadas."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Migrar Predefinições de Filamento"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"O OrcaSlicer 2.5.0 reestruturou muitas predefinições de filamento do sistema para corrigir perfis incorretos e preparar recursos futuros. Como resultado, as predefinições abaixo não aparecem mais em algumas das impressoras para as quais foram criadas. Pedimos desculpas pelo transtorno; esta é uma correção única.\n"
+"\n"
+"Adicionar essas impressoras de volta às suas predefinições agora? É feito um backup das suas predefinições antes. Você também pode fazer isso mais tarde em Ajuda > Migrar Predefinições de Filamento."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (baseado em %2%)"
+
+msgid "Don't remind me again"
+msgstr "Não me avise novamente"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Não foi possível fazer backup das suas predefinições, então elas não foram migradas."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Não foi possível bloquear a pasta de predefinições do usuário, então nada foi migrado. Outra instância do OrcaSlicer pode estar salvando predefinições; tente novamente mais tarde em Ajuda > Migrar Predefinições de Filamento."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Não foi possível migrar suas predefinições de filamento. Um backup das suas predefinições foi salvo em:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Suas predefinições de filamento foram migradas. Selecione-as novamente na lista de filamentos onde você as usava.\n"
+"\n"
+"Um backup das suas predefinições foi salvo em:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Não foi possível migrar estas predefinições:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "seu perfil Orca Cloud (ID de usuário: \"%s\")"
@@ -2405,6 +2585,9 @@ msgstr "Plugins atualizados."
msgid "Failed to refresh plugins: %s"
msgstr "Falha ao atualizar plugins: %s"
+msgid "Unknown error"
+msgstr "Erro desconhecido"
+
msgid "Select plugin package"
msgstr "Selecione o pacote de plugins"
@@ -2925,6 +3108,22 @@ msgstr "Recarregar Tudo"
msgid "Reload all from disk"
msgstr "Recarregar tudo do disco"
+# AI Translated
+msgid "Fix All"
+msgstr "Corrigir Tudo"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Corrigir todos os modelos na placa atual"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Corrigir Todas as Placas"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Corrigir todos os modelos em todas as placas"
+
msgid "Auto Rotate"
msgstr "Rotação Automática"
@@ -2976,8 +3175,13 @@ msgstr "(Cor perdida)"
msgid "Center"
msgstr "Centralizar"
-msgid "Drop"
-msgstr "Descartar"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Alinhar/Distribuir"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Alinhar e distribuir objetos"
msgid "Edit Process Settings"
msgstr "Editar Configurações de Processo"
@@ -3255,6 +3459,13 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] "Falha ao reparar o seguinte objeto modelo"
msgstr[1] "Falha ao reparar os seguintes objetos modelo"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d objeto modelo não precisou de reparo."
+msgstr[1] "%1$d objetos modelo não precisaram de reparo."
+
msgid "Repairing was canceled"
msgstr "A reparação foi cancelada"
@@ -3326,9 +3537,6 @@ msgstr "Sem borda"
msgid "Outer wall speed"
msgstr "Velocidade da parede externa"
-msgid "Plate"
-msgstr "Placa"
-
msgid "Brim"
msgstr "Borda"
@@ -3411,9 +3619,6 @@ msgstr "Adicionar Gabarito Personalizado"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Inserir gabarito de G-code personalizado no início desta camada."
-msgid "Filament "
-msgstr "Filamento "
-
msgid "Change filament at the beginning of this layer."
msgstr "Trocar o filamento no início desta camada."
@@ -3447,10 +3652,9 @@ msgstr "Verificar o estado dos serviços de sistema atuais"
msgid "code"
msgstr "código"
-# AI Translated
#. TRN Short for "description" of a connection error
msgid "desc"
-msgstr "desc."
+msgstr "descr"
#. TRN Short for "additional information" about a connection error
msgid "info"
@@ -3501,8 +3705,10 @@ msgstr "Mudar Mesmo Assim"
msgid "Off"
msgstr "Desligado"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
-msgstr "Filtrar"
+msgstr "Filtro"
msgid "Enabling filtration redirects the right fan to filter gas, which may reduce cooling performance."
msgstr "Ativar a filtragem redireciona a ventoinha direito para filtrar o gás, o que pode reduzir o desempenho de resfriamento."
@@ -3613,11 +3819,20 @@ msgstr "Confirmar extrusão"
msgid "Check filament location"
msgstr "Verificar localização do filamento"
-msgid "Switch"
-msgstr "Alternar"
+# AI Translated
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Pausar"
-msgid "hotend"
-msgstr "hotend"
+# AI Translated
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Trocar extrusora"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Trocar hotend"
msgid "Wait for AMS cooling"
msgstr "Aguardar resfriamento do AMS"
@@ -3784,8 +3999,10 @@ msgid "Arranging"
msgstr "Organizando"
# AI Translated
-msgid "Arranging "
-msgstr "Organizando "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Organizando %1%"
msgid "Arranging canceled."
msgstr "Organização cancelada."
@@ -3824,8 +4041,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Orientando…"
-msgid "Orienting"
-msgstr "Orientando"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Orientando %1%"
msgid "Orienting canceled."
msgstr "Orientação cancelada."
@@ -3833,6 +4053,12 @@ msgstr "Orientação cancelada."
msgid "Filling"
msgstr "Preenchendo"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Preenchendo %1%"
+
msgid "Bed filling canceled."
msgstr "Preenchimento da mesa cancelado."
@@ -3848,6 +4074,35 @@ msgstr "Busca de orientação cancelada."
msgid "Orientation found."
msgstr "Orientação encontrada."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Melhor qualidade de superfície"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Otimiza a rotação do objeto para a melhor qualidade de superfície."
+
+# AI Translated
+# Needs human review: Option name in the Optimize Rotation menu (RotoptimizeJob); check it reads as a choice next to the other options.
+msgid "Reduced overhang slopes"
+msgstr "Inclinações de saliência reduzidas"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Otimiza a rotação do objeto para ter a mínima quantidade de saliências que precisam de estruturas de suporte.\n"
+"Observe que este método tentará encontrar a melhor superfície do objeto para tocar a mesa se nenhuma elevação estiver definida."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Menor altura Z"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Gira o modelo para obter a menor altura Z e um tempo de impressão menor."
+
msgid "Logging in"
msgstr "Conectando-se"
@@ -4134,6 +4389,15 @@ msgstr "Projetos Recentes"
msgid "Go to Plate"
msgstr "Ir para Placa"
+msgid "Device"
+msgstr "Dispositivo"
+
+msgid "Device (Web)"
+msgstr "Dispositivo (Web)"
+
+msgid "Multi-device"
+msgstr "Multi-dispositivo"
+
msgid "AMS Materials Setting"
msgstr "Configuração de Materiais AMS"
@@ -4160,9 +4424,6 @@ msgstr "O valor de entrada deve ser maior que %1% e menor que %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Fatores de Calibração de Dinâmica de Fluxo"
-msgid "Wiki Guide"
-msgstr "Guia Wiki"
-
msgid "PA Profile"
msgstr "Perfil PA"
@@ -4192,6 +4453,14 @@ msgstr "Por favor insira um valor válido (K entre %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Por favor insira um valor válido (K entre %.1f~%.1f, N entre %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Filamentos favoritos"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Todos os filamentos"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4507,11 +4776,11 @@ msgstr "O plug-in de rede foi instalado, mas não pôde ser carregado. Reinicie
msgid "Restart Required"
msgstr "Reinicialização Necessária"
-msgid "Please home all axes (click "
-msgstr "Por favor, mandar a origem todos os eixos (clique "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") para localizar a posição do cabeçote. Isso impede que o dispositivo se mova além do limite imprimível e cause desgaste no equipamento."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Posicione todos os eixos na origem (clique em %1%) para localizar a posição da cabeça da ferramenta. Isso evita que o dispositivo se mova além do limite imprimível e cause desgaste no equipamento."
msgid "Go Home"
msgstr "Ir para Ínicio"
@@ -4526,6 +4795,10 @@ msgstr "Ocorreu um erro fatal: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Por favor, salve seu projeto e reinicie a aplicação."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Exceção C++ desconhecida."
+
msgid "Processing G-Code from previous file…"
msgstr "Processando o G-code do arquivo anterior…"
@@ -4745,6 +5018,14 @@ msgstr "Ajustar automaticamente para o limite (%g mm)?"
msgid "Adjust"
msgstr "Ajustar"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"A jangada e o escudo de ar não estão disponíveis em impressoras de esteira.\n"
+"Eles foram desativados."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -4805,7 +5086,7 @@ msgid ""
msgstr ""
"A torre de purga não funciona quando a Altura de Camada Adaptativa ou a Altura de Camada de Suporte Independente está ativada.\n"
"Qual você deseja manter?\n"
-"SIM — Manter a Torre de Preparo\n"
+"SIM — Manter a Torre de Purga\n"
"NÃO — Manter a Altura de Camada Adaptativa e a Altura de Camada de Suporte Independente"
msgid ""
@@ -4816,7 +5097,7 @@ msgid ""
msgstr ""
"A torre de purga não funciona quando a Altura de Camada Adaptativa está ativa.\n"
"Qual você deseja manter?\n"
-"SIM — Manter a Torre de Preparo\n"
+"SIM — Manter a Torre de Purga\n"
"NÃO — Manter a Altura de Camada Adaptativa"
msgid ""
@@ -4827,7 +5108,7 @@ msgid ""
msgstr ""
"A torre de purga não funciona quando a Altura da Camada de Suporte Independente está ativa.\n"
"Qual você deseja manter?\n"
-"SIM — Manter a Torre de Preparo\n"
+"SIM — Manter a Torre de Purga\n"
"NÃO — Manter a Altura da Camada de Suporte Independente"
msgid ""
@@ -5567,9 +5848,6 @@ msgstr "Refatiar automaticamente de acordo com o agrupamento ideal de filamentos
msgid "Filament Grouping"
msgstr "Agrupamento de Filamento"
-msgid "Why this grouping"
-msgstr "Motivo desse agrupamento"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Coloque os filamentos na impressora de acordo com o resultado do agrupamento."
@@ -5579,29 +5857,47 @@ msgstr "Dicas:"
msgid "Current grouping of slice result is not optimal."
msgstr "O agrupamento atual do resultado do fatiamento não é o ideal."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Aumento de %1%g no filamento e %2% nas trocas em comparação com o agrupamento ideal."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Aumento de %1%g no filamento e %2% troca em comparação com o agrupamento ideal."
+msgstr[1] "Aumento de %1%g no filamento e %2% trocas em comparação com o agrupamento ideal."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Aumento de %1%g no filamento e economia de %2% nas trocas em comparação com o agrupamento ideal."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Aumento de %1%g no filamento e economia de %2% troca em comparação com o agrupamento ideal."
+msgstr[1] "Aumento de %1%g no filamento e economia de %2% trocas em comparação com o agrupamento ideal."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Economia de %1%g no filamento e aumento de %2% nas trocas em comparação com o agrupamento ideal."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Economia de %1%g no filamento e aumento de %2% troca em comparação com o agrupamento ideal."
+msgstr[1] "Economia de %1%g no filamento e aumento de %2% trocas em comparação com o agrupamento ideal."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Economia de %1%g no filamento e %2% nas trocas em comparação com uma impressora com um bico."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Economia de %1%g no filamento e %2% troca em comparação com uma impressora com um bico."
+msgstr[1] "Economia de %1%g no filamento e %2% trocas em comparação com uma impressora com um bico."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Economia de %1%g no filamento e aumento de %2% nas trocas em comparação com uma impressora com um bico."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Economia de %1%g no filamento e aumento de %2% troca em comparação com uma impressora com um bico."
+msgstr[1] "Economia de %1%g no filamento e aumento de %2% trocas em comparação com uma impressora com um bico."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Aumento de %1%g no filamento e economia de %2% nas trocas em comparação com uma impressora com um bico."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Aumento de %1%g no filamento e economia de %2% troca em comparação com uma impressora com um bico."
+msgstr[1] "Aumento de %1%g no filamento e economia de %2% trocas em comparação com uma impressora com um bico."
msgid "Set to Optimal"
msgstr "Definir para Ideal"
@@ -5754,11 +6050,59 @@ msgstr "Aumentar/diminuir área de edição"
msgid "Sequence"
msgstr "Sequência"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Centro de massa da placa"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Centro de massa da peça"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Centro de massa do suporte"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Centro de massa da montagem"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Centro de massa do objeto"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Impressão concluída"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Impresso até a camada %1%"
+
+msgid "Weight"
+msgstr "Peso"
+
+msgid "Volume"
+msgstr "Volume"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Centro na caixa delimitadora"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Tamanho da caixa delimitadora"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Momento de inércia"
+
msgid "Object selection"
msgstr "Seleção de objeto"
-msgid "number keys"
-msgstr "teclas numéricas"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "1~16 teclas numéricas"
msgid "Number keys can quickly change the color of objects"
msgstr "Teclas numéricas podem mudar a cor dos objetos rapidamente"
@@ -5831,7 +6175,6 @@ msgctxt "Axis"
msgid "Y"
msgstr "Y"
-# AI Translated
msgctxt "Axis"
msgid "Z"
msgstr "Z"
@@ -5961,9 +6304,20 @@ msgstr "Eixos"
msgid "Gridlines"
msgstr "Linhas da Grade"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Etiquetas"
+# AI Translated
+msgid "Center of mass"
+msgstr "Centro de massa"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Mostrar G-code bruto (somente esteira)"
+
# AI Translated
msgid "Move section plane"
msgstr "Mover plano de seção"
@@ -6012,7 +6366,7 @@ msgstr "Volume:"
msgid "Size:"
msgstr "Tamanho:"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Foram encontrados conflitos de caminhos de G-code na camada %d, Z = %.2lfmm. Por favor, separe mais os objetos em conflito (%s <-> %s)."
@@ -6032,21 +6386,19 @@ msgstr "Não suporta a impressão de 2 ou mais filamentos de TPU."
msgid "Tool %d"
msgstr "Ferramenta %d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "O filamento %s está colocado em %s, mas o caminho do G-code gerado excede a área imprimível de %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Os filamentos %s estão colocados em %s, mas o caminho do G-code gerado excede a área imprimível de %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "O filamento %s está colocado em %s, mas o caminho do G-code gerado excede a área imprimível de %s."
+msgstr[1] "Os filamentos %s estão colocados em %s, mas o caminho do G-code gerado excede a área imprimível de %s."
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "O filamento %s está colocado em %s, mas o caminho do G-code gerado excede a altura imprimível de %s."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Os filamentos %s estão colocados em %s, mas o caminho do G-code gerado excede a altura imprimível de %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "O filamento %s está colocado em %s, mas o caminho do G-code gerado excede a altura imprimível de %s."
+msgstr[1] "Os filamentos %s estão colocados em %s, mas o caminho do G-code gerado excede a altura imprimível de %s."
msgid "Open wiki for more information."
msgstr "Abra a wiki para obter mais informações."
@@ -6054,9 +6406,12 @@ msgstr "Abra a wiki para obter mais informações."
msgid "Only the object being edited is visible."
msgstr "Apenas o objeto em edição está visível."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Os filamentos %s não podem ser impressos diretamente na superfície desta placa."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "O filamento %s não pode ser impresso diretamente na superfície desta placa."
+msgstr[1] "Os filamentos %s não podem ser impressos diretamente na superfície desta placa."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "Filamentos PLA e PETG detectados na mistura. Ajuste os parâmetros de acordo com o Wiki para garantir a qualidade de impressão."
@@ -6179,26 +6534,20 @@ msgstr "Preparar"
msgid "Preview"
msgstr "Pré-visualizar"
-msgid "Device"
-msgstr "Dispositivo"
-
-msgid "Multi-device"
-msgstr "Multi-dispositivo"
-
msgid "Project"
msgstr "Projeto"
-msgid "Device (Web)"
-msgstr "Dispositivo (Web)"
-
msgid "Yes"
msgstr "Sim"
msgid "No"
msgstr "Não"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "será fechado antes de criar um novo modelo. Deseja continuar?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s será fechado antes de criar um novo modelo. Deseja continuar?"
msgid "Print all"
msgstr "Imprimir tudo"
@@ -6243,6 +6592,10 @@ msgstr "Assistente de Configuração"
msgid "Show Configuration Folder"
msgstr "Mostrar Pasta de Configuração"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Restaurar as predefinições de filamento que uma atualização de perfis removeu das impressoras para as quais foram criadas"
+
msgid "Troubleshoot Center"
msgstr "Central de Solução de Problemas"
@@ -6478,6 +6831,14 @@ msgstr "Mostrar Linhas da Grade"
msgid "Show Gridlines on plate"
msgstr "Mostrar Linhas da Grade na placa"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Mostrar cabeça da ferramenta IDEX/IQEX"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Mostra a representação da cabeça da ferramenta IDEX/IQEX ao redor de cada bico ativo na pré-visualização do G-code."
+
msgid "Reset Window Layout"
msgstr "Redefinir Layout da Janela"
@@ -7105,6 +7466,8 @@ msgstr "Avaliar"
msgid "Calculating..."
msgstr "Calculando…"
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Câmera"
@@ -7183,9 +7546,12 @@ msgstr "Baixando…"
msgid "Cloud Slicing..."
msgstr "Fatiando na Nuvem…"
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "Na Fila de Fatiamento na Nuvem, existem %s tarefas na sua frente."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "Na Fila de Fatiamento na Nuvem, existe %d tarefa na sua frente."
+msgstr[1] "Na Fila de Fatiamento na Nuvem, existem %d tarefas na sua frente."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7216,6 +7582,11 @@ msgstr "Isso só tem efeito durante a impressão"
msgid "Silent"
msgstr "Silencioso"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Padrão"
+
msgid "Sport"
msgstr "Esportivo"
@@ -7270,17 +7641,29 @@ msgstr "Enviar fotos"
msgid "Number of images successfully uploaded"
msgstr "Número de imagens carregadas com sucesso"
-msgid " upload failed"
-msgstr " falha ao enviar"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Falha ao enviar %s"
-msgid " upload config prase failed\n"
-msgstr " falha ao analisar a configuração\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Falha ao analisar a configuração de envio de %s"
-msgid " No corresponding storage bucket\n"
-msgstr " Nenhum balde de armazenamento correspondente\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: nenhum balde de armazenamento correspondente"
-msgid " cannot be opened\n"
-msgstr " não pode ser aberto\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s não pode ser aberto"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7298,24 +7681,20 @@ msgstr "Falha no envio\n"
msgid "Obtaining instance_id failed\n"
msgstr "Falha ao obter o instance_id\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"O resultado do seu comentário não pode ser enviado devido aos seguintes motivos:\n"
-"\n"
-" código de erro: "
-
-msgid "error message: "
-msgstr "mensagem de erro: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"O resultado do seu comentário não pode ser enviado devido aos seguintes motivos:\n"
"\n"
+" código de erro: %d\n"
+" mensagem de erro: %s\n"
"\n"
"Gostaria de ser redirecionado para a página da web para avaliar?"
@@ -8099,6 +8478,107 @@ msgstr "Ver todas as configurações do objeto"
msgid "Material settings"
msgstr "Configurações de material"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Cada modo indica as cabeças de ferramenta que participam e a função de cada uma. Clique no botão de uma ferramenta para alternar sua função — passe o mouse sobre uma cor abaixo para ver o que cada função faz."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Adicionar Modo"
+
+# AI Translated
+msgid "Tools"
+msgstr "Ferramentas"
+
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Como o modo é identificado no seletor de modo IDEX/IQEX da placa. Obrigatório — um modo sem nome não pode ser selecionado."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Quais cabeças de ferramenta participam do modo e qual função cada uma desempenha. Clique em um bloco para alternar sua função."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code executado no início da impressão para colocar a impressora neste modo (por exemplo, uma chamada SET_PRINT_MODE do Klipper). O fatiador emite apenas os percursos da ferramenta Principal (Primary); o firmware controla as demais."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Inativo"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Principal"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Cópia"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Espelho"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Conduz todos os percursos fatiados. Sempre a ferramenta 0 — use Posição da ferramenta 0 acima para escolher qual canto da mesa ela ocupa. Não pode ser movida na grade."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Segue a ferramenta Principal (Primary) no nível do firmware, imprimindo os mesmos percursos deslocados para a sua própria zona."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Segue a ferramenta Principal (Primary) no nível do firmware, imprimindo os mesmos percursos espelhados em relação ao limite entre as duas zonas."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Marca uma ferramenta no pórtico da ferramenta Principal (Primary) como sua parceira multicolor. Necessário para permitir a impressão multicolor em modos de pórticos pareados."
+
+# AI Translated
+msgid "Primary"
+msgstr "Principal"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Nome do modo (obrigatório)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Nome deste modo paralelo, como aparece no seletor de modo IDEX/IQEX da placa. É armazenado no projeto pelo nome, então renomear um modo que as placas já usam faz com que elas voltem ao modo Principal. Não pode ficar vazio — um nome em branco é substituído por um nome gerado."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code emitido uma vez no início de uma impressão que usa este modo, antes do G-code de início da máquina. É aqui que a impressora é colocada no modo de firmware correspondente — por exemplo, uma chamada SET_PRINT_MODE do Klipper ou um M567 do RepRapFirmware —, já que o fatiador emite apenas os percursos da ferramenta Principal (Primary) e o firmware controla as ferramentas Cópia / Espelho (Copy / Mirror). Marcadores de posição são suportados; use o botão de edição para navegar por eles. Deixe vazio se o modo não precisar de configuração no firmware."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Editar G-code / procurar marcadores de posição"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Remover modo"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Descartar as edições desta sessão neste modo (voltar ao valor salvo)"
+
msgid "Remove current plate (if not last one)"
msgstr "Remover a placa atual (se não for o última)"
@@ -8123,12 +8603,33 @@ msgstr "Editar nome da placa atual"
msgid "Move plate to the front"
msgstr "Mover placa para frente"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "Modo IDEX/IQEX: %1% (predefinição de processo: %2%) (clique com o botão esquerdo para alternar, com o botão direito para abrir o menu)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "Modo IDEX/IQEX: %1% (clique com o botão esquerdo para alternar, com o botão direito para abrir o menu)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Aviso: esta placa usa um modo paralelo IDEX/IQEX com objetos multimaterial. Prossiga com cautela — verifique se o seu G-code lida corretamente com essa combinação."
+
msgid "Customize current plate"
msgstr "Personalizar a placa atual"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "O bico %s não pode imprimir %s."
+msgid "The left nozzle cannot print %s."
+msgstr "O bico esquerdo não pode imprimir %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "O bico direito não pode imprimir %s."
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
msgstr "Imprimir filamento de cor mista em uma impressora de extrusora única exige trocas de filamento e purgas frequentes, o que pode aumentar significativamente o desperdício e o risco de entupimento do bico ou da calha de resíduos."
@@ -8137,12 +8638,18 @@ msgstr "Imprimir filamento de cor mista em uma impressora de extrusora única ex
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Misturar %1% com %2% na impressão não é recomendado.\n"
-msgid " nozzle"
-msgstr " bico"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Não é recomendável imprimir os seguintes filamentos com %1%: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "Bico %2% de %1% mm"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Não é recomendável imprimir o seguinte filamento com %1%: %2%\n"
+msgstr[1] "Não é recomendável imprimir os seguintes filamentos com %1%: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "Não é recomendável usar as seguintes combinações de bico e filamento:\n"
@@ -8151,9 +8658,11 @@ msgstr "Não é recomendável usar as seguintes combinações de bico e filament
msgid "%1% with %2%\n"
msgstr "%1% com %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " placa %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Fatiando placa %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Nome inválido, os seguintes caracteres não são permitidos:"
@@ -8188,12 +8697,6 @@ msgstr "AMS(1 espaço)"
msgid "Not installed"
msgstr "Não instalado"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "O software não suporta o uso de bicos de diâmetros diferentes para uma mesma impressão. Se os bicos esquerdo e direito forem incompatíveis, só é possível prosseguir com a impressão com um único bico. Confirme qual bico você gostaria de usar para este projeto."
-
-msgid "Switch diameter"
-msgstr "Trocar diâmetro"
-
msgid "Configuration incompatible"
msgstr "Configuração incompatível"
@@ -8269,6 +8772,10 @@ msgstr "Filamento Misto"
msgid "Remove last mixed filament"
msgstr "Remover o último filamento misto"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Remover todos os filamentos mistos"
+
msgid "Add mixed filament"
msgstr "Adicionar filamento misto"
@@ -8287,6 +8794,13 @@ msgstr "O filamento misto tem referências de componentes quebradas"
msgid "Edit / Delete / Merge"
msgstr "Editar / Excluir / Mesclar"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Remover %1% filamento misto?"
+msgstr[1] "Remover todos os %1% filamentos mistos?"
+
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "O filamento misto de destino usa este filamento físico como componente. Mesclar removerá este filamento físico e poderá invalidar o filamento misto. Continuar?"
@@ -8345,7 +8859,7 @@ msgid "Enabling traditional timelapse photography may cause surface imperfection
msgstr "A habilitação da fotografia tradicional em timelapse pode causar imperfeições na superfície. É recomendado mudar para o modo suave."
msgid "Smooth mode for timelapse is enabled, but the prime tower is off, which may cause print defects. Please enable the prime tower, re-slice and print again."
-msgstr "O modo suave para timelapse está ativado, mas a torre de purga está desativada, o que pode causar defeitos na impressão. Ative a torre de purga, fatie novamente e imprima de novo."
+msgstr "O modo suave para timelapse está ativado, mas a torre de purga está desativada, o que pode causar defeitos na impressão. Ative a torre de purga, refatie e imprima de novo."
msgid "Expand sidebar"
msgstr "Expandir barra lateral"
@@ -8360,9 +8874,6 @@ msgstr "Carregando arquivo: %s"
msgid "Load 3MF"
msgstr "Carregar 3MF"
-msgid "BambuStudio Project"
-msgstr "Projeto Bambu Studio"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "O 3MF não é suportado pelo OrcaSlicer, carregando apenas dados de geometria."
@@ -8392,17 +8903,6 @@ msgstr "Você deveria atualizar o seu software.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "A versão do 3MF %s é mais recente do que a versão do %s %s, sugerimos atualizar seu software."
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "O arquivo 3MF foi criado pelo Bambu Studio (versão %s), que é mais recente que a versão compatível %s. Configurações não reconhecidas encontradas:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "O arquivo 3MF foi criado pelo Bambu Studio (versão %s), que é mais recente que a versão compatível %s. Algumas configurações podem não ser compatíveis."
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "O arquivo 3MF foi criado pelo Bambu Studio. Algumas configurações podem ser diferentes do OrcaSlicer."
-
msgid "Invalid values found in the 3MF:"
msgstr "Valores inválidos encontrados no 3MF:"
@@ -8565,6 +9065,14 @@ msgstr "Desativar a Soltura Automática para preservar o posicionamento Z?\n"
msgid "Object with floating parts was detected"
msgstr "Foi detectado um objeto com partes flutuantes"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Não é possível fatiar: um objeto sobrepõe uma área reservada para a impressão paralela IDEX/IQEX (uma zona secundária ou uma faixa de folga do carro dentro da zona principal)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Não é possível fatiar: a torre de purga sobrepõe uma área reservada para a impressão paralela IDEX/IQEX (uma zona secundária ou uma faixa de folga do carro dentro da zona principal)."
+
msgid "Another export job is running."
msgstr "Outro trabalho de exportação está em execução."
@@ -8617,8 +9125,9 @@ msgstr "Volumes substiruídos"
msgid "Please select a file"
msgstr "Por favor, selecione um arquivo"
-msgid "Do you want to replace it"
-msgstr "Deseja substituí-lo"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Deseja substituí-lo?"
msgid "Message"
msgstr "Mensagem"
@@ -8647,6 +9156,50 @@ msgstr "Dados inválidos"
msgid "Slicing Canceled"
msgstr "Fatiamento Cancelado"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Conflito de temperatura da mesa: T%d (%s) define a mesa em %d℃ — T%d (%s) requer %d℃. A ferramenta principal controla a mesa; as ferramentas secundárias imprimem na temperatura que ela definir."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Tipo de filamento incompatível: T%d usa %s e T%d usa %s. Esses materiais têm requisitos incompatíveis e não foram projetados para imprimir juntos."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"A placa %d tem o modo paralelo IDEX/IQEX ativo com os seguintes pontos de atenção:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Continuar o fatiamento?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Aviso do modo paralelo IDEX/IQEX"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Não mostrar estes avisos novamente"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Placa %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Os seguintes pontos de atenção do modo paralelo IDEX/IQEX foram detectados:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Plug-in de rede alterado com sucesso."
@@ -8679,8 +9232,8 @@ msgid "Sync now"
msgstr "Sincronizar agora"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Não é possível desfazer ou refazer enquanto uma operação está em andamento. Interrompa-a primeiro."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Não é possível desfazer ou refazer enquanto uma operação está em andamento. Interrompa a operação ou aguarde sua conclusão e tente novamente."
# AI Translated
msgid ""
@@ -8747,6 +9300,14 @@ msgstr "Baixar falhou, erro no tamanho do arquivo."
msgid "Project downloaded %d%%"
msgstr "Projeto baixado %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"Os testes Linha de PA e Padrão de PA ainda não estão habilitados em impressoras de esteira.\n"
+"Use o método Torre de PA."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Teste de Pressure Advance"
@@ -8754,11 +9315,15 @@ msgstr "Teste de Pressure Advance"
msgid "INFO:"
msgstr "INFO:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Nenhuma aceleração fornecida para calibração. Usar o valor de aceleração padrão "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Nenhuma aceleração fornecida para calibração. Usar o valor de aceleração padrão %1% mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Nenhuma velocidade fornecida para calibração. Usar a velocidade padrão "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Nenhuma velocidade fornecida para calibração. Usar a velocidade ideal padrão %1% mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -8773,6 +9338,15 @@ msgstr "Calibração de fluxo Orca YOLO"
msgid "Flowrate Test - Pass%d"
msgstr "Teste de taxa de fluxo - Passo %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Nenhuma torre de temperatura para esteira está disponível para a faixa de %1% a %2%℃. Use uma faixa coberta pelos modelos de torre, por exemplo, 230 a 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Torre de temperatura"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Teste de temperatura do bico"
@@ -8796,11 +9370,16 @@ msgstr "Teste de quinas"
msgid "Import SLA archive"
msgstr "Importar arquivo SLA"
-msgid "The selected file"
-msgstr "O arquivo selecionado"
-
-msgid "Does not contain valid G-code."
-msgstr "Não contém G-code válido."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"O arquivo selecionado:\n"
+"%1%\n"
+"não contém G-code válido."
msgid "An Error has occurred while loading the G-code file."
msgstr "Um erro ocorreu ao carregar o arquivo de G-code."
@@ -8922,7 +9501,7 @@ msgid "Unable to log in to the Flashforge printer."
msgstr "Não é possível fazer login na impressora Flashforge."
msgid "Is the printer ready? Is the print sheet in place, empty and clean?"
-msgstr "A impressora está pronta? O folha de impressão está no lugar, vazia e limpa?"
+msgstr "A impressora está pronta? A placa de impressão está no lugar, vazia e limpa?"
msgid "Upload and Print"
msgstr "Enviar e Imprimir"
@@ -9059,6 +9638,27 @@ msgstr "Atualmente, o formulário de configuração de objetos não pode ser usa
msgid "Not available"
msgstr "Não disponível"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (sem placa)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — nenhum filamento direcionado\n"
+"Adicione uma extrusora na aba Máquina para que esta cabeça da ferramenta tenha um espaço de filamento."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> filamento %2%"
+
msgid "isometric"
msgstr "isométrico"
@@ -9098,8 +9698,11 @@ msgstr "Europa"
msgid "North America"
msgstr "América do Norte"
+# AI Translated
+# Needs human review: Region dropdown in Preferences (after Asia-Pacific, China, Europe, North America): feminine 'Outras' agrees with 'regiões'; the generic 'Others' in the catalog is 'Outros'.
+msgctxt "Region"
msgid "Others"
-msgstr "Outros"
+msgstr "Outras"
msgid "Changing the region will log you out of your account.\n"
msgstr "Mudar a região fará logout da sua conta.\n"
@@ -9172,11 +9775,17 @@ msgstr "Falha ao recarregar plug-in de rede. Por favor, reinicie a aplicação."
msgid "Reload Failed"
msgstr "Falha ao Recarregar"
-msgid "Associate"
-msgstr "Associar"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Associar %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "com OrcaSlicer para que Orca possa abrir modelos de"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Associar %s:// ao OrcaSlicer para que o Orca possa abrir modelos de %s"
msgid "Current Association: "
msgstr "Associação Atual: "
@@ -9449,7 +10058,7 @@ msgid "Auto slice after changes"
msgstr "Fatiar automaticamente após mudanças"
msgid "If enabled, OrcaSlicer will re-slice automatically whenever slicing-related settings change."
-msgstr "Se ativado, o OrcaSlicer irá re-fatiar automaticamente sempre que as configurações relacionadas ao fatiamento forem alteradas."
+msgstr "Se ativado, o OrcaSlicer irá refatiar automaticamente sempre que as configurações relacionadas ao fatiamento forem alteradas."
msgid "Delay in seconds before auto slicing starts, allowing multiple edits to be grouped. Use 0 to slice immediately."
msgstr "Atraso em segundos antes do início do fatiamento automático, permitindo que várias edições sejam agrupadas. Use 0 para fatiar imediatamente."
@@ -9468,6 +10077,9 @@ msgstr "Lembrar a última ação de impressão"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Se ativado, o OrcaSlicer lembrará a última opção selecionada no menu suspenso do botão de impressão (ex.: Imprimir, Exportar arquivo de placa fatiada, Exportar arquivo G-code) e a usará como padrão na próxima inicialização."
+msgid "Camera"
+msgstr "Câmera"
+
msgid "Touchpad"
msgstr "Touchpad"
@@ -9891,6 +10503,9 @@ msgstr "Versão do plug-in de rede"
msgid "Select the network plug-in version to use"
msgstr "Selecione a versão do plug-in de rede a ser usado"
+msgid "Associate"
+msgstr "Associar"
+
msgid "Associate files to OrcaSlicer"
msgstr "Associar arquivos ao OrcaSlicer"
@@ -9939,6 +10554,12 @@ msgstr "Mostrar predefinições não suportadas"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Exibir predefinições incompatíveis e não suportadas nas listas de impressora e filamento. Essas predefinições não podem ser selecionadas."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Experimental Features"
msgstr "Recursos Experimentais"
@@ -10208,10 +10829,6 @@ msgstr "Publicar 3MF…"
msgid "Select which settings to be published in the 3MF file"
msgstr "Selecione quais configurações serão publicadas no arquivo 3MF"
-# AI Translated
-msgid "Video Guide"
-msgstr "Guia em vídeo"
-
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Filamento misto - publicado por inteiro quando \"Ativar\" acima está selecionado"
@@ -10363,6 +10980,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Simples"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s de %s"
+
# AI Translated
msgid "Search actions"
msgstr "Buscar ações"
@@ -10476,6 +11099,10 @@ msgstr "Mostrar detalhes"
msgid "Hide details"
msgstr "Esconder detalhes"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "A visualização web não está disponível."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -10598,15 +11225,12 @@ msgstr "Descrição do erro"
msgid "Extra info"
msgstr "Informação extra"
-# AI Translated
msgid "The Filament Track Switch installed on the printer does not match the slicing file. Please re-slice to avoid print quality issues."
-msgstr "O Filament Track Switch instalado na impressora não corresponde ao arquivo de fatiamento. Por favor, refaça o fatiamento para evitar problemas de qualidade de impressão."
+msgstr "O Filament Track Switch instalado na impressora não corresponde ao arquivo de fatiamento. Por favor, refatie para evitar problemas de qualidade de impressão."
-# AI Translated
msgid "This print requires a Filament Track Switch. Please install it first."
msgstr "Esta impressão requer um Filament Track Switch. Por favor, instale-o primeiro."
-# AI Translated
msgid "The Filament Track Switch has not been setup. Please setup it first."
msgstr "O Filament Track Switch não foi configurado. Por favor, configure-o primeiro."
@@ -10647,7 +11271,6 @@ msgstr "O filamento não corresponde ao filamento no espaço do AMS. Atualize o
msgid "The selected printer (%s) is incompatible with the print file configuration (%s). Please adjust the printer preset in the prepare page or choose a compatible printer on this page."
msgstr "A impressora selecionada (%s) é incompatível com a configuração do arquivo de impressão (%s). Ajuste a predefinição da impressora na página de preparo ou escolha uma impressora compatível nesta página."
-# AI Translated
#, c-format, boost-format
msgid "The selected printer (%s) has an unknown model, so compatibility with the print file configuration (%s) cannot be verified. Please verify the printer preset before sending."
msgstr "A impressora selecionada (%s) tem um modelo desconhecido, então a compatibilidade com a configuração do arquivo de impressão (%s) não pode ser verificada. Verifique a predefinição da impressora antes de enviar."
@@ -10725,26 +11348,25 @@ msgstr "Limpar"
msgid "Preparing print job"
msgstr "Preparando trabalho de impressão"
-# AI Translated
msgid "Failed to upload the file to the printer's storage. Please try again."
msgstr "Falha ao enviar o arquivo para o armazenamento da impressora. Tente novamente."
-# AI Translated
msgid "Send Failed"
msgstr "Falha no envio"
msgid "The name length exceeds the limit."
msgstr "O comprimento do nome excede o limite."
-#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "O custo de %dg de filamento e %d muda mais do que o agrupamento ideal."
-
# AI Translated
+#, c-format, boost-format
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Custo de %dg de filamento e %d troca a mais que o agrupamento ideal."
+msgstr[1] "Custo de %dg de filamento e %d trocas a mais que o agrupamento ideal."
+
msgid "Right-Ext"
msgstr "Ext-Direita"
-# AI Translated
msgid "Left-Ext"
msgstr "Ext-Esquerda"
@@ -10765,7 +11387,7 @@ msgid "Please refresh the nozzle information and try again."
msgstr "Por favor, atualize as informações do bico e tente novamente."
msgid "Please re-slice to avoid filament waste."
-msgstr "Por favor, fatie novamente para evitar desperdício de filamento."
+msgstr "Por favor, refatie para evitar desperdício de filamento."
msgid "The reported hotend information may be unreliable."
msgstr "As informações reportadas sobre o hotend podem não ser confiáveis."
@@ -10815,6 +11437,9 @@ msgstr "Alguns filamentos podem alternar entre extrusoras durante a impressão.
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "Há filamento propenso a criar fios neste arquivo. Para a melhor qualidade de impressão, recomendamos alternar a detecção de aglomeração no bico para o modo Automático."
+msgid "Switch"
+msgstr "Alternar"
+
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Se a 'Calibração de Fluxo Dinâmico' estiver definida como Automático/Ativado, o sistema usará o valor de calibração manual ou o valor padrão e ignorará o processo de calibração de fluxo. Você pode realizar uma calibração de fluxo manual para filamento TPU na página 'Calibração'."
@@ -10909,7 +11534,6 @@ msgstr "Não é possível enviar um trabalho de impressão para uma placa vazia.
msgid "Storage needs to be inserted to record timelapse."
msgstr "O armazenamento precisa estar inserido para gravar o timelapse."
-# AI Translated
msgid "The selected printer model could not be identified, so compatibility with the print file configuration cannot be verified. Please verify the printer preset before sending."
msgstr "O modelo da impressora selecionada não pôde ser identificado, então a compatibilidade com a configuração do arquivo de impressão não pode ser verificada. Verifique a predefinição da impressora antes de enviar."
@@ -10977,7 +11601,6 @@ msgstr "A impressora deve estar na mesma LAN do OrcaSlicer."
msgid "The printer does not support sending to printer storage."
msgstr "A impressora não suporta envio para o armazenamento da impressora."
-# AI Translated
msgid "Failed to initialize the printer file transfer. Please check the connection and try again."
msgstr "Falha ao inicializar a transferência de arquivos da impressora. Verifique a conexão e tente novamente."
@@ -11117,6 +11740,10 @@ msgstr "A sincronização de diferentes acionamentos de extrusora ou tipos de vo
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Sincroniza a modificação de parâmetros com os parâmetros correspondentes de outra extrusora."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Parâmetros com este ícone podem ser configurados por bico."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Clique para redefinir todas as configurações para a última predefinição salva."
@@ -11130,13 +11757,13 @@ msgid "A prime tower is required for clumping detection. There may be flaws on t
msgstr "Uma torre de purga é necessária para a detecção de aglomeração. Podem ocorrer falhas no modelo sem a torre de purga. Tem certeza de que deseja desativar a torre de purga?"
msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable?"
-msgstr "Habilitar a altura Z precisa e a torre de preparação juntas pode causar erros de fatiamento. Deseja habilitar mesmo assim?"
+msgstr "Habilitar a altura Z precisa e a torre de purga juntas pode causar erros de fatiamento. Deseja habilitar mesmo assim?"
msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Do you still want to enable clumping detection?"
msgstr "Uma torre de purga é necessária para a detecção de aglomeração. Podem ocorrer falhas no modelo sem o Prime Tower. Tem certeza de que deseja ativar a detecção de aglomeração?"
msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable precise Z height?"
-msgstr "Habilitar a altura Z precisa e a torre de preparação juntas pode causar erros de fatiamento. Deseja habilitar a altura Z precisa mesmo assim?"
+msgstr "Habilitar a altura Z precisa e a torre de purga juntas pode causar erros de fatiamento. Deseja habilitar a altura Z precisa mesmo assim?"
msgid "Smooth timelapse needs a prime tower on every layer, which is not compatible with \"No sparse layers\". \"No sparse layers\" has been turned off."
msgstr "O timelapse suave precisa de uma torre de purga em todas as camadas, o que não é compatível com \"Sem camadas esparsas\". \"Sem camadas esparsas\" foi desativado."
@@ -11250,10 +11877,9 @@ msgstr "Informação adicional:"
msgid "vendor"
msgstr "fornecedor"
-# AI Translated
#. TRN Short for "version"
msgid "ver"
-msgstr "versão"
+msgstr "ver"
msgid "printer model"
msgstr "modelo de impressora"
@@ -11345,6 +11971,9 @@ msgstr "Filamento para Recursos"
msgid "Ooze prevention"
msgstr "Prevenção de vazamento"
+msgid "Others"
+msgstr "Outros"
+
msgid "Special mode"
msgstr "Modo especial"
@@ -11383,8 +12012,11 @@ msgstr[1] ""
"As linhas %s seguintes contêm palavras-chave reservadas.\n"
"Por favor, remova-as, ou afetará a visualização do G-code e a estimativa de tempo de impressão."
-msgid "Reserved keywords found"
-msgstr "Palavras-chave reservadas encontradas"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Palavras-chave reservadas encontradas em %1%"
msgid "Setting Overrides"
msgstr "Sobrescrever configurações"
@@ -11521,7 +12153,16 @@ msgstr "Espaço de impressão"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Selecione a implementação do agente de rede para comunicação com a impressora. Os agentes disponíveis são registrados na inicialização."
+# AI Translated
+msgid "Belt printer"
+msgstr "Impressora de esteira"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Transformações do referencial da máquina"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Valor inválido fornecido para o parâmetro %1%: %2%"
@@ -11634,9 +12275,29 @@ msgstr "Diâmetro do bico"
msgid "Wipe tower"
msgstr "Torre de purga"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Torre de purga da esteira"
+
msgid "Single extruder multi-material parameters"
msgstr "Parâmetros multimateriais de extrusora única"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "Configuração IDEX/IQEX"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Avisos antes do fatiamento"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Mostra uma caixa de diálogo de aviso antes do fatiamento se forem detectados pontos de atenção do modo paralelo IDEX/IQEX (conflitos de temperatura da mesa, tipos de filamento incompatíveis, conflitos multimaterial). Pode ser desativado na própria caixa de diálogo. Reative aqui se tiver sido desativado por engano."
+
+# AI Translated
+msgid "Modes"
+msgstr "Modos"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Esta é uma impressora multimaterial de extrusora única, os diâmetros de todas as extrusoras serão definidos para o novo valor. Você deseja prosseguir?"
@@ -11646,6 +12307,22 @@ msgstr "Limites de altura da camada"
msgid "Z-Hop"
msgstr "Z-Hop"
+# AI Translated
+msgid "Front-left"
+msgstr "Frontal esquerda"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Frontal direita"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Traseira esquerda"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Traseira direita"
+
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
"\n"
@@ -11667,22 +12344,37 @@ msgstr "Usar Valor Modificado"
msgid "Detached"
msgstr "Desanexado"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% e %2% estão vinculadas a esta impressora. Essas predefinições seriam excluídas se a impressora fosse excluída."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d Predefinição de Filamento e %d Predefinição de Processo estão vinculados a esta impressora. Essas predefinições serão excluídos se a impressora for deletada."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d predefinição de filamento"
+msgstr[1] "%d predefinições de filamento"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d predefinição de processo"
+msgstr[1] "%d predefinições de processo"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "As predefinições herdados por outras predefinições não podem ser excluídas!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "As seguintes predefinições herdam esta predefinição."
-msgstr[1] "A seguinte predefinição herda esta predefinição."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "A seguinte predefinição herda esta predefinição."
+msgstr[1] "As seguintes predefinições herdam esta predefinição."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% Predefinição"
+msgid "Delete Preset"
+msgstr "Excluir Predefinição"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -11696,9 +12388,9 @@ msgstr ""
"Tem certeza de que deseja excluir a predefinição selecionada?\n"
"Se a predefinição corresponde a um filamento atualmente em uso em sua impressora, redefina as informações do filamento para esse espaço."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Tem certeza de que quer %1% a predefinição selecionada?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Tem certeza de que deseja excluir a predefinição selecionada?"
msgid "Select printers"
msgstr "Selecionar impressoras"
@@ -11751,9 +12443,40 @@ msgstr "Continuar"
msgid "Don't warn again for this preset"
msgstr "Não avisar novamente para essa predifinição"
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# AI Translated
+# Needs human review: Short tag for the Standard nozzle flow type; the English abbreviation is kept as on the nozzle products. Check whether a localized tag (e.g. FP for Fluxo Padrão) is preferred.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Short tag for the High Flow nozzle flow type; the English abbreviation is kept as on the nozzle products. Check whether a localized tag (e.g. AF for Alto Fluxo) is preferred.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Short tag for the TPU High Flow nozzle; English abbreviation kept. Check against the localized tag chosen for HF.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Short tag for the E3D High Flow nozzle; brand and English abbreviation kept. Check against the localized tag chosen for HF.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short tag for the Extra High Flow nozzle; English abbreviation kept. Check against the localized tag chosen for HF.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
msgid "No modifications need to be copied."
msgstr "Nenhuma modificação precisa ser copiada."
@@ -11950,6 +12673,12 @@ msgstr "Uma das predefinições não existe"
msgid "Compared presets has different printer technology"
msgstr "As predefinições comparadas têm tecnologia de impressora diferente"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" vs. \"%2%\""
+
msgid "Add File"
msgstr "Adicionar arquivo"
@@ -11975,6 +12704,22 @@ msgstr "Lista de Materiais"
msgid "Assembly Guide"
msgstr "Guia de Montagem"
+# AI Translated
+msgid "Image files"
+msgstr "Arquivos de imagem"
+
+# AI Translated
+msgid "TXT files"
+msgstr "Arquivos TXT"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "Arquivos EXCEL"
+
+# AI Translated
+msgid "PDF files"
+msgstr "Arquivos PDF"
+
msgid "Author"
msgstr "Autor"
@@ -12173,9 +12918,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Moldeamento total"
-msgid "Volume"
-msgstr "Volume"
-
msgid "Ramming line"
msgstr "Linha de moldeamento"
@@ -12202,8 +12944,10 @@ msgstr "Multiplicador"
msgid "Flushing volumes for filament change"
msgstr "Volumes de purga para troca de filamento"
-msgid "Please choose the filament color"
-msgstr "Escolha a cor do filamento"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "de/para"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "O agente na nuvem não está disponível. Reinicie o OrcaSlicer e tente novamente."
@@ -12223,17 +12967,145 @@ msgstr "Falha no login. Tente novamente."
msgid "parse json failed"
msgstr "falha ao processar o json"
+msgid "Loading…"
+msgstr "Carregamento em andamento…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Personalizado"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Bem-vindo ao Orca Slicer"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer será configurado em várias etapas. Vamos começar!"
+
+msgid "Get Started"
+msgstr "Vamos Começar"
+
+msgid "Please select your login region"
+msgstr "Por favor, selecione sua região de login"
+
+msgid "Finish"
+msgstr "Terminar"
+
+msgid "Printer Selection"
+msgstr "Seleção de Impressora"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Fornecedores"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Impressora Personalizada"
+
+msgid "Create"
+msgstr "Criar"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Verificar novas impressoras"
+
+msgid "At least one printer must be selected."
+msgstr "Pelo menos uma impressora deve ser selecionada."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Novas impressoras encontradas"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Novos fornecedores de impressoras instalados: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Novos fornecedores de impressoras foram encontrados, mas a instalação foi cancelada."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Nenhuma impressora nova encontrada."
+
+msgid "Filament Selection"
+msgstr "Seleção de Filamento"
+
+msgid "System Filaments"
+msgstr "Filamentos do Sistema"
+
+msgid "Custom Filaments"
+msgstr "Filamentos Personalizados"
+
+msgid "Create New"
+msgstr "Criar Novo"
+
+msgid "Filament type"
+msgstr "Tipo de Filamento"
+
+msgid "Vendor"
+msgstr "Fornecedor"
+
+# AI Translated
+msgid "No items"
+msgstr "Nenhum item"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Filtrar itens"
+
+# AI Translated
+msgid "Checked"
+msgstr "Marcados"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Desmarcados"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Selecionar filtrados"
+
+msgid "Clear all"
+msgstr "Limpar tudo"
+
+msgid "At least one filament must be selected."
+msgstr "Pelo menos um filamento deve ser selecionado."
+
+msgid "Do you want to use the default filament?"
+msgstr "Você deseja usar o filamento padrão?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Isso desativa todos os recursos da nuvem, incluindo a sincronização de perfis do Orca Cloud. Usuários que preferem trabalhar totalmente offline podem ativar esta opção."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Nota: quando o Modo Furtivo está ativado, seus perfis de usuário não serão copiados para o Orca Cloud."
+
+msgid "Enable Stealth Mode."
+msgstr "Habilita Modo Furtivo."
+
+msgid "Proprietary Plugins"
+msgstr "Plugins Proprietários"
+
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Algumass fabricantes de impressoras exigem plugins proprietários para comunicação com suas impressoras. Se você utiliza tais impressoras, selecione o plug-in correspondente."
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Por favor seja cuidadoso estes plugins não são desenvolvidos ou mantidos por OrcaSlicer. Eles devem ser usados por sua conta e risco."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Instalar Bambu Network plug-in"
+
msgid "[Action Required] "
msgstr "[Ação Necessária] "
msgid "[Action Required]"
msgstr "[Ação Necessária]"
-# AI Translated
msgid "Printer update service is unavailable."
msgstr "O serviço de atualização de impressoras não está disponível."
-# AI Translated
msgid "Failed to check for new printers."
msgstr "Falha ao verificar novas impressoras."
@@ -12249,12 +13121,10 @@ msgstr "Mover Vista"
msgid "Rotate View"
msgstr "Rotacionar Vista"
-# AI Translated
#, c-format, boost-format
msgid "Use %s or %s, or a key that does not type a character."
msgstr "Use %s ou %s, ou uma tecla que não digite um caractere."
-# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Key"
msgstr "Tecla"
@@ -12262,15 +13132,12 @@ msgstr "Tecla"
msgid "Left mouse"
msgstr "Mouse esquerdo"
-# AI Translated
msgid "Available anywhere in the window, even while typing in a text field."
msgstr "Disponível em qualquer lugar da janela, mesmo ao digitar em um campo de texto."
-# AI Translated
msgid "Run favorite 1 to 10"
msgstr "Executar favorito 1 a 10"
-# AI Translated
msgid "Pin or unpin the selected action"
msgstr "Fixar ou desafixar a ação selecionada"
@@ -12278,20 +13145,15 @@ msgctxt "Keyboard Shortcut"
msgid "Tab"
msgstr "Tab"
-# AI Translated
msgid "Switch to the next main tab"
msgstr "Mudar para a próxima aba principal"
-# AI Translated
msgid "Available while the 3D view on the Prepare tab has focus."
msgstr "Disponível enquanto a vista 3D da aba Preparar estiver em foco."
msgid "Select a part"
msgstr "Selecionar uma peça"
-msgid "Select multiple objects"
-msgstr "Selecionar vários objetos"
-
msgid "Select objects by rectangle"
msgstr "Selecionar objetos por retângulo"
@@ -12313,11 +13175,9 @@ msgstr "Mouse direito"
msgid "Zoom View"
msgstr "Aproximar Vista"
-# AI Translated
msgid "Painting"
msgstr "Pintura"
-# AI Translated
msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting."
msgstr "Disponível enquanto um gizmo de pintura estiver aberto: suportes, costura, textura difusa ou pintura de cores."
@@ -12330,7 +13190,6 @@ msgstr "Suporte/Pintura em cores: ajustar o raio da caneta"
msgid "Objects list"
msgstr "Lista de objetos"
-# AI Translated
msgid "Available while the object list has focus."
msgstr "Disponível enquanto a lista de objetos estiver em foco."
@@ -12350,43 +13209,35 @@ msgstr "Clique do mouse"
msgid "Select the object/part and mouse click to change the name"
msgstr "Selecione o objeto/peça e clique do mouse para mudar o nome"
-# AI Translated
msgid "Available while the 3D view on the Preview tab has focus."
msgstr "Disponível enquanto a vista 3D da aba Pré-visualizar estiver em foco."
msgid "Move slider 5x faster"
-msgstr "Mover o controle deslizante 5 vezes mais rápido"
+msgstr "Mover o controle deslizante 5x mais rápido"
-# AI Translated
msgid "Scroll slider 5x faster"
-msgstr "Rolar o controle deslizante 5 vezes mais rápido"
+msgstr "Rolar o controle deslizante 5x mais rápido"
msgid "Not customizable"
msgstr "Não personalizável"
-# AI Translated
#, c-format, boost-format
msgid "%s is assigned to %s. Reassign it to %s?"
msgstr "%s está atribuído a %s. Reatribuí-lo a %s?"
-# AI Translated
#, c-format, boost-format
msgid "The default %s is assigned to %s. Reassign it to %s?"
msgstr "O %s padrão está atribuído a %s. Reatribuí-lo a %s?"
-# AI Translated
msgid "Global shortcuts also apply while typing."
msgstr "Os atalhos globais também funcionam durante a digitação."
-# AI Translated
msgid "A key that types a character cannot be a global shortcut."
msgstr "Uma tecla que digita um caractere não pode ser um atalho global."
-# AI Translated
msgid "Esc cancels, Enter confirms."
msgstr "Esc cancela, Enter confirma."
-# AI Translated
#, c-format, boost-format
msgid ""
"Press the new shortcut for\n"
@@ -12395,20 +13246,16 @@ msgstr ""
"Pressione o novo atalho para\n"
"\"%s\""
-# AI Translated
msgid "Unbind"
msgstr "Desvincular"
-# AI Translated
msgid "The system uses this shortcut, so it cannot be assigned."
msgstr "O sistema usa este atalho, então ele não pode ser atribuído."
-# AI Translated
#, c-format, boost-format
msgid "Shift and Ctrl with this key belong to %s and cannot be assigned."
msgstr "Shift e Ctrl com esta tecla pertencem a %s e não podem ser atribuídos."
-# AI Translated
#, c-format, boost-format
msgid "Already assigned to %s. Press OK to reassign it."
msgstr "Já atribuído a %s. Pressione OK para reatribuí-lo."
@@ -12488,9 +13335,8 @@ msgstr "Abrir arquivo de certificado CA"
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
msgstr "O arquivo CA HTTPS é opcional. É necessário apenas se você usar HTTPS com um certificado autoassinado."
-# AI Translated
msgid "This system uses HTTPS certificates from the system Certificate Store or Keychain. To use a custom CA file, import it there."
-msgstr "Este sistema usa certificados HTTPS do repositório de certificados do sistema ou do Keychain. Para usar um arquivo CA personalizado, importe-o lá."
+msgstr "Este sistema usa certificados HTTPS do Repositório de Certificados ou Chaveiro do sistema. Para usar um arquivo CA personalizado, importe-o lá."
msgid "Printer model"
msgstr "Modelo de impressora"
@@ -12565,18 +13411,15 @@ msgstr "Laser 40W"
msgid "Cutting Module"
msgstr "Módulo de Corte"
-# AI Translated
msgid "Active Cutting Module"
msgstr "Módulo de Corte Ativo"
-# AI Translated
msgid "Ultrasonic Cutting Module"
msgstr "Módulo de Corte Ultrassônico"
msgid "Auto Fire Extinguishing System"
msgstr "Sistema Automático de Extinção de Incêndio"
-# AI Translated
msgid "Filament Track Switch"
msgstr "Filament Track Switch"
@@ -12613,32 +13456,32 @@ msgstr "A versão do firmware está anormal. Reparar e atualizar é necessário
msgid "Extension Board"
msgstr "Mesa de Extensão"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Dividir em %1% peças"
-
msgid "Repair finished"
msgstr "Reparo concluído"
-msgid "Repair failed"
-msgstr "Reparo falhou"
-
-msgid "Repair canceled"
-msgstr "Reparo cancelado"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Falha ao copiar o arquivo %1% para %2%: %3%"
-msgid "Downloading new vendor profile(s): "
-msgstr "Baixando novo(s) perfil(is) de fornecedor: "
+# AI Translated
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Baixando novo perfil de fornecedor: %1%..."
+msgstr[1] "Baixando novos perfis de fornecedor: %1%..."
#, boost-format
msgid "Configuration package: %1% updated to %2%"
msgstr "Pacote de configuração: %1% atualizado para %2%"
-msgid "Failed to download vendor profile(s): "
-msgstr "Falha ao baixar o(s) perfil(is) de fornecedor: "
+# AI Translated
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Falha ao baixar o perfil de fornecedor: %1%"
+msgstr[1] "Falha ao baixar os perfis de fornecedor: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Verifique as alterações não salvas antes de atualizar a configuração."
@@ -12646,6 +13489,10 @@ msgstr "Verifique as alterações não salvas antes de atualizar a configuraçã
msgid "Open G-code file:"
msgstr "Abrir arquivo G-code:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Falha ao gerar a torre de purga, possivelmente devido a uma primeira camada vazia."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Um objeto tem uma primeira camada vazia e não pode ser impresso. Por favor, corte a base ou habilite os suportes."
@@ -12666,9 +13513,61 @@ msgstr "G-code de mudança de tipo de extrusão do processo"
msgid "Filament change extrusion role G-code"
msgstr "G-code de mudança de tipo de extrusão do filamento"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"Falha ao exportar o G-code para %1%.\n"
+"Não foi possível abrir o arquivo para gravação."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "A pasta %1% não existe."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"Falha ao exportar o G-code para %1%.\n"
+"O disco está cheio?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Falha ao renomear o arquivo G-code de saída de %1% para %2%.\n"
+"Erro: %3%\n"
+"%1% está bloqueado?"
+
msgid "No object can be printed. It may be too small."
msgstr "Nenhum objeto pode ser impresso. Talvez seja muito pequeno."
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "O modo IDEX/IQEX \"%1%\" não tem ferramentas atribuídas na impressora selecionada. Imprimindo no modo Principal em vez disso. Atribua as ferramentas do modo em Configurações da Impressora ou escolha outro modo no botão IDEX/IQEX da placa."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Esta placa está definida para o modo IDEX/IQEX \"%1%\", que a impressora selecionada não define. Imprimindo no modo Principal em vez disso. Escolha um modo no botão IDEX/IQEX da placa ou restaure o modo em Configurações da Impressora."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Valor de miniaturas inválido:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Sua impressão está muito próxima das regiões de preparação. Certifique-se de que não haverá colisão."
@@ -12710,41 +13609,89 @@ msgstr "Erro de agrupamento: %1% não pode ser colocado no bico esquerdo"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Erro de agrupamento: %1% não pode ser colocado no bico direito"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Nenhum bico válido encontrado. Verifique a quantidade de bicos."
+
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Erro de agrupamento no modo manual. Por favor, verifique o número de bicos ou reagrupe."
-# AI Translated
#, boost-format
msgid "failed to process some intersections (%1%)"
msgstr "falha ao processar algumas interseções (%1%)"
-# AI Translated
#, boost-format
msgid "multiple intersections with a perimeter, only one was used (%1%)"
msgstr "múltiplas interseções com um perímetro, apenas uma foi usada (%1%)"
-# AI Translated
#, boost-format
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
-msgstr "um perímetro está totalmente dentro de um modificador; o modificador não foi aplicado a ele (%1%)"
+msgstr "um perímetro está totalmente dentro de um modificador, o modificador não foi aplicado a ele (%1%)"
# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "O modificador %1% \"%2%\" de \"%3%\" cobre um perímetro inteiro"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "O modificador %1% \"%2%\" de \"%3%\" (%4% no total) cobre um perímetro inteiro"
+
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
msgstr "o modificador \"%1%\" de \"%2%\" não teve efeito na costura (talvez não alcance a linha central do perímetro impresso)"
-# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" (%3% in total) had no effect on the seam (it might not reach the centerline of the printed perimeter)"
msgstr "o modificador \"%1%\" de \"%2%\" (%3% no total) não teve efeito na costura (talvez não alcance a linha central do perímetro impresso)"
-# AI Translated
msgid "Seam placement may differ from expected."
msgstr "A posição da costura pode diferir do esperado."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Ponte interna"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() produziu espaçamento negativo. Você definiu alguma largura de extrusão pequena demais?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() produziu fluxo negativo. Você definiu alguma largura de extrusão pequena demais?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Falha ao calcular a largura da linha de %1%. Não é possível obter o valor de \"%2%\"."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Espaçamento inválido fornecido para Flow::with_spacing(), verifique a altura da camada e a largura da extrusão."
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "O arquivo 3mf selecionado foi salvo com uma versão mais recente do %1% e não é compatível."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "O 3MF selecionado contém um objeto com suportes FDM pintados usando uma versão mais recente do PrusaSlicer e não é compatível."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "O 3MF selecionado contém um objeto com costura pintada usando uma versão mais recente do PrusaSlicer e não é compatível."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "O 3MF selecionado contém um objeto pintado com multimaterial usando uma versão mais recente do PrusaSlicer e não é compatível."
+
msgid "undefined error"
msgstr "erro indefinido"
@@ -12838,6 +13785,56 @@ msgstr "validação falhou"
msgid "write callback failed"
msgstr "falha na chamada de escrita"
+# AI Translated
+msgid "unknown error"
+msgstr "erro desconhecido"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Impressões multicoloridas nos modos paralelos IDEX/IQEX exigem que cada filamento tenha sua própria extrusora física dedicada. Dois ou mais dos filamentos ativos são direcionados para a mesma cabeça física pelo mapa de extrusoras físicas da impressora (um coletor MMU/AFC), o que o pórtico subordinado não consegue acompanhar."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "O modo IDEX/IQEX ativo não define uma ferramenta principal, então a impressão multicolorida não pode ser programada. Abra o editor de Modos IDEX/IQEX nas configurações da impressora e atribua a função Principal (Primary) a uma ferramenta."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "A impressão multicolorida neste modo não é um cenário de impressão paralela — todas as ferramentas ativas estão em um único pórtico, então não há um segundo pórtico para o qual copiar ou espelhar. Mude a placa para o modo Principal para impressão multicolorida em um único pórtico ou defina um modo IDEX/IQEX que inclua ferramentas em um segundo pórtico."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Impressões multicoloridas nos modos paralelos IDEX/IQEX exigem uma ferramenta Span no pórtico da ferramenta principal — sem ela, o modo não declara uma parceira multicolor dentro do pórtico. Reduza a impressão a um único filamento, mude para o modo Principal ou abra o editor de Modos IDEX/IQEX nas configurações da impressora e marque uma ferramenta no pórtico da principal como Span."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Neste modo Span, as cores são impressas apenas por %1%, mas o filamento %2% não está direcionado a nenhuma ferramenta. Use filamentos direcionados a %1% ou mude esta placa para o modo Principal."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Neste modo Span, as cores são impressas apenas por %1%, mas o filamento %2% está direcionado a T%3%. Use filamentos direcionados a %1% ou mude esta placa para o modo Principal."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"A predefinição selecionada não pode ser carregada: %1%\n"
+"\tMotivo: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Falha ao carregar o arquivo de predefinição: %1%\n"
+"\tMotivo: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% está muito perto de área de exclusão. Pode haver colisões durante a impressão."
@@ -12853,26 +13850,34 @@ msgstr "%1% está muito alto, e ocorrerão colisões."
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "A posição relativa do modelo e da torre de purga não atende aos requisitos do recurso \"Sem camadas esparsas\". Ajuste as posições relativas, reduza a altura do modelo ou desative \"Sem camadas esparsas\"."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " está muito perto da área de exclusão, pode haver colisões durante a impressão."
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% está muito perto da área de detecção de aglomeração. Pode haver colisões durante a impressão."
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " está muito perto da área de detecção de aglomeração, podendo haver colisões durante a impressão."
+# AI Translated
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "A torre de purga está muito perto de outros, e colisões podem ocorrer.\n"
-msgid "Prime Tower"
-msgstr "Torre de Preparo"
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "A torre de purga está muito perto de uma área de exclusão, e ocorrerão colisões.\n"
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " está muito perto de outros, e colisões podem ocorrer.\n"
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "A torre de purga está muito perto da área de detecção de aglomeração, e ocorrerão colisões.\n"
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " está muito perto de uma área de exclusão, e colisões vão ocorrer.\n"
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "A torre de purga está muito perto de uma área de exclusão. Pode haver colisões durante a impressão."
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " está muito perto da área de detecção de aglomeração, e ocorrerão colisões.\n"
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "A torre de purga está muito perto da área de detecção de aglomeração. Pode haver colisões durante a impressão."
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " está parcialmente fora da área imprimível, e não pode ser impresso.\n"
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "A torre de purga está parcialmente fora da área imprimível e não pode ser impressa.\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "As temperaturas dos bicos selecionadas são incompatíveis. A temperatura do bico de cada filamento deve estar dentro da faixa de temperatura recomendada para os demais filamentos. Caso contrário, pode ocorrer entupimento do bico ou danos à impressora."
@@ -12886,6 +13891,58 @@ msgstr "Se ainda assim desejar imprimir, você pode ativar a opção em Preferê
msgid "No extrusions under current settings."
msgstr "Nenhuma extrusão com as configurações atuais."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Filamentos mistos não são suportados nos modos paralelos IDEX/IQEX. Mude esta placa para o modo Principal."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "O modo IDEX/IQEX \"%1%\" imprime com T%2%, mas nenhum dos filamentos desta placa está em uma ferramenta configurada. Atribua um filamento carregado em T%2% ou mude esta placa para o modo Principal."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "O modo IDEX/IQEX \"%1%\" imprime com T%2%, mas os filamentos desta placa estão em %3%. Atribua um filamento carregado em T%2% ou mude esta placa para o modo Principal."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "A jangada não é compatível com o modo de impressora de esteira."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "O escudo de ar não é compatível com o modo de impressora de esteira."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "A borda não é compatível com o modo vaso espiral em uma impressora de esteira. Desative um deles."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "A esteira é inclinada demais para uma borda, então nenhuma borda será gerada."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Uma borda só é gerada quando a esteira está inclinada. Defina um ângulo de inclinação da esteira ou remova a configuração de borda."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Impressoras de esteira suportam apenas borda externa e interna. Os tipos Auto, Orelha de rato e Pintado são impressos como Somente borda externa, usando a Largura da borda."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "O Espaço entre a borda e objeto separa a borda dianteira do bordo de ataque do objeto, que é justamente o que ela deve ancorar. Defina o espaço como 0 ao usar o Comprimento da borda dianteira."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "O Comprimento da borda dianteira se estende à frente de cada objeto ao longo da esteira, e Organizar não reserva esse espaço. Deixe espaço entre os objetos."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "A borda \"Somente bordo de ataque\" se aplica a impressoras de esteira. Nesta impressora, ela é impressa como uma borda externa comum."
+
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Um filamento misto com gradiente está em uso, mas 'Subcamada de cor mista' está desativado. O gradiente não será impresso."
@@ -12895,8 +13952,20 @@ msgstr "O modo suave do timelapse não é suportado quando a sequência \"por ob
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "A detecção de aglomeração não é suportada quando a sequência \"por objeto\" está ativada."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "A torre de purga da esteira não é gerada na sequência de impressão \"Por objeto\"; as trocas de filamento não serão purgadas."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "A torre de purga da esteira está ativada, mas o projeto não tem nenhum objeto de torre de purga; as trocas de filamento não serão purgadas. Abra o projeto no aplicativo para gerar a torre."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "O projeto contém várias torres de purga da esteira gerenciadas. Recarregue a placa ou desative e reative a torre de purga da esteira para regenerá-la."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
-msgstr "Habilitar a altura Z precisa e a torre de preparação juntas pode causar erros de fatiamento."
+msgstr "Habilitar a altura Z precisa e a torre de purga juntas pode causar erros de fatiamento."
msgid "A prime tower is required for clumping detection; otherwise, there may be flaws on the model."
msgstr "Uma torre de purga é necessária para a detecção de aglomeração, podem ocorrer falhas no modelo."
@@ -12911,10 +13980,6 @@ msgstr "O modo espiral (vaso) não funciona quando um objeto contém mais de um
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Embora o objeto %1% caiba no volume de construção, ele excede a altura máxima do volume de construção devido à compensação de contração do material."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "O objeto %1% excede a altura máxima do volume de impressão."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Embora o objeto %1% em si se ajuste ao volume de impressão, sua última camada excede a altura máxima do volume de impressão."
@@ -12922,6 +13987,10 @@ msgstr "Embora o objeto %1% em si se ajuste ao volume de impressão, sua última
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Você pode querer reduzir o tamanho do seu modelo ou alterar as configurações de impressão atuais e tentar novamente."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "O objeto %1% excede a altura máxima do volume de impressão."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "A altura de camada variável não é suportada com suportes Orgânicos."
@@ -13073,6 +14142,10 @@ msgstr "O modelo de Pressure Advance Adaptativo para uma ou mais extrusoras pode
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "A contração de filamento não será usada porque a contração dos filamentos usados difere significativamente."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "A impressão está vazia. O modelo não pode ser impresso com as configurações de impressão atuais."
+
msgid "Generating skirt & brim"
msgstr "Gerando saia e borda"
@@ -13091,6 +14164,17 @@ msgstr "Exportando G-code"
msgid "Generating G-code"
msgstr "Gerando G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Falha ao processar o arquivo G-code %1% do arquivo 3MF anterior."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "A torre de purga da esteira não consegue absorver todo o volume de purga: no total, %1% mm³ não puderam ser purgados (pior camada: %2% mm³ na altura %3%). A impressão pode apresentar mistura de cores. Aumente a largura da torre de purga da esteira ou reduza os volumes de purga."
+
msgid "Processing of the filename_format template failed."
msgstr "Falha no processamento do gabarito filename_format."
@@ -13545,18 +14629,19 @@ msgstr ""
"O fluxo de ponte real usado é calculado multiplicando este valor pela taxa de fluxo do filamento e, se definida, pela taxa de fluxo do objeto."
# AI Translated
+# Needs human review: The English says 'Bridge density', but the GUI labels are 'External bridge density' and 'Internal bridge density'; the external label ('Densidade de ponte externa') is quoted here. Check it is the right one.
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
-"Largura de linha da Ponte. Se expressa como %, será calculada sobre o diâmetro do bico.\n"
-"Recomendado usar com uma densidade de Ponte ou taxa de fluxo de Ponte mais alta.\n"
+"Largura de linha da Ponte. Se expresso como %, será calculado sobre o diâmetro do bico.\n"
+"Recomendado usar com uma 'Densidade de ponte externa' ou 'Taxa de fluxo em ponte' mais alta.\n"
"\n"
"O valor máximo é 100% ou o diâmetro do bico.\n"
-"Se definido como 0, a largura de linha corresponderá à largura do preenchimento sólido interno."
+"Se definido como 0, a largura de linha corresponderá à largura do preenchimento sólido interno, ou ao diâmetro do bico para pontes grossas."
msgid "Internal bridge flow ratio"
msgstr "Taxa de fluxo em ponte interna"
@@ -13839,7 +14924,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Ative esta opção para reduzir a velocidade de impressão em áreas onde os perímetros podem ter se enrolado para cima.\n"
"Por exemplo, uma desaceleração adicional será aplicada ao imprimir saliências em cantos vivos, como a frente do casco do Benchy, reduzindo o enrolamento que se acumula ao longo de várias camadas.\n"
@@ -13851,22 +14936,23 @@ msgstr ""
"Recomendações ao ativar esta opção:\n"
"1. Reduza o tempo de suavização do Pressure Advance para 0,015 - 0,02 para que a extrusora reaja rapidamente às mudanças de velocidade.\n"
"2. Aumente as velocidades mínimas de impressão para limitar a magnitude da desaceleração e reduzir a variação entre os segmentos rápidos e lentos.\n"
-"3. Se os artefatos ainda aparecerem, ative a Suavização da Taxa de Extrusão (ERS) para suavizar ainda mais as transições de fluxo.\n"
+"3. Se os artefatos ainda aparecerem, ative a 'Suavização da extrusão' (ERS) para suavizar ainda mais as transições de fluxo.\n"
"\n"
"Nota: quando esta opção está ativada, os perímetros de saliência são tratados como saliências, o que significa que a velocidade de saliência é aplicada mesmo que o perímetro em saliência faça parte de uma ponte.\n"
-"Por exemplo, quando os perímetros estão 100% em saliência, sem nenhuma parede os sustentando por baixo, a velocidade de saliência de 100% será aplicada."
+"Por exemplo, quando os perímetros estão 100% em saliência, sem nenhuma parede os sustentando por baixo, a velocidade de saliência de 75% será aplicada, limitada pela velocidade da ponte."
msgid "mm/s or %"
msgstr "mm/s ou %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Velocidade das extrusões de pontes visíveis externamente.\n"
"\n"
-"Além disso, se Desacelerar para perímetros curvos estiver desabilitado ou o Modo de saliência clássico estiver habilitado, será a velocidade de impressão de paredes de saliência que são suportadas por menos de 13%, sejam elas parte de uma ponte ou de uma saliência."
+"Além disso, se 'Reduzir vel. para perímetros encurvados' estiver desabilitado, será a velocidade de impressão de paredes de saliência que são suportadas por menos de 13%, sejam elas parte de uma ponte ou de uma saliência."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Velocidade de pontes internas. Se o valor for expresso como uma porcentagem, ele será calculado com base na bridge_speed. O valor padrão é 150%."
@@ -13874,12 +14960,56 @@ msgstr "Velocidade de pontes internas. Se o valor for expresso como uma porcenta
msgid "This is the distance from the model to the outermost brim line."
msgstr "Essa é a distância do modelo até a linha da borda mais externa."
+# AI Translated
+msgid "Leading brim length"
+msgstr "Comprimento da borda dianteira"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Somente para impressoras de esteira. Estende a borda À FRENTE do objeto ao longo da esteira, em cada aresta voltada para o declive da sua área de contato - tanto no primeiro contato do objeto com a esteira quanto em qualquer ilha que pouse depois. Essa faixa é depositada na esteira antes que o objeto a alcance, para que o bordo de ataque já tenha algo aderido em que se fixar.\n"
+"\n"
+"Medido na superfície da esteira e somado à Largura da borda: a borda alcança Espaço entre a borda e objeto + Comprimento da borda dianteira + Largura da borda à frente do objeto. Defina o Espaço entre a borda e objeto como 0, ou a faixa não tocará o objeto que deve ancorar.\n"
+"\n"
+"Em uma esteira inclinada, cada camada deposita uma tira da borda, então a espessura da lâmina de borda resultante é definida pelo fluxo e não pela altura da camada. Use a Taxa de fluxo em borda para ajustá-la.\n"
+"\n"
+"Defina como 0 para desativar."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Largura extra da borda"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Somente para impressoras de esteira. Alarga a borda LATERALMENTE, atravessando a esteira, sem estendê-la mais à frente ou atrás do objeto. Use quando uma peça precisar de mais aderência ao longo do seu comprimento do que a Largura da borda sozinha oferece.\n"
+"\n"
+"Medido na superfície da esteira e somado à Largura da borda: a borda alcança Espaço entre a borda e objeto + Largura da borda + Largura extra da borda para cada lado do objeto. Para estender a borda à frente do objeto, use o Comprimento da borda dianteira.\n"
+"\n"
+"Defina como 0 para desativar."
+
msgid "Brim type"
msgstr "Tipo de borda"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Isso controla a geração da borda no lado externo e/ou interno dos modelos. Automático significa que a largura da borda é analisada e calculada automaticamente."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Somente bordo de ataque"
+
msgid "Brim-object gap"
msgstr "Espaço entre a borda e objeto"
@@ -13925,9 +15055,8 @@ msgstr "Combine várias bordas em uma só quando estiverem próximas umas das ou
msgid "Brim ears"
msgstr "Orelhas da borda"
-# AI Translated
msgid "Only draw brim over the sharp edges of the model."
-msgstr "Desenhe a borda apenas sobre as arestas afiadas do modelo."
+msgstr "Desenhe a borda apenas sobre as arestas vivas do modelo."
msgid "Brim ear max angle"
msgstr "Ângulo máximo da orelha da borda"
@@ -14166,6 +15295,9 @@ msgstr ""
"2. Filtragem limitada - cria pontes em superfícies muito inclinadas, evitando pontes desnecessárias. Isso funciona bem para a maioria dos modelos difíceis\n"
"3. Sem filtragem - cria pontes internas em toda possível saliência interna. Esta opção é útil para modelos de superfície superior muito inclinados; no entanto, na maioria dos casos, cria muitas pontes desnecessárias."
+msgid "Filter"
+msgstr "Filtrar"
+
msgid "Limited filtering"
msgstr "Filtragem limitada"
@@ -14181,7 +15313,8 @@ msgstr "Este é o comprimento máximo de pontes que não precisam de suporte. De
msgid "End G-code"
msgstr "G-code de finalização"
-msgid "Add end G-Code when finishing the entire print."
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
msgstr "Adicionar G-code de finalização ao terminar a impressão completa."
msgid "Between Object G-code"
@@ -14358,8 +15491,9 @@ msgstr "Esta é a velocidade de impressão da parede externa das peças. Geralme
msgid "Small perimeters"
msgstr "Pequenos perímetros"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Essa configuração separada afetará a velocidade dos perímetros com raio <= small_perimeter_threshold (geralmente buracos). Se expresso como porcentagem (por exemplo: 80%), será calculado com base na configuração de velocidade da parede externa acima. Defina como zero para automático."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Essa configuração separada afetará a velocidade dos perímetros com raio <= small_perimeter_threshold (geralmente buracos). Se expresso como porcentagem (por exemplo: 80%), será calculado com base na configuração de velocidade da parede externa acima."
msgid "Small perimeters threshold"
msgstr "Limiar de pequenos perímetros"
@@ -14370,8 +15504,9 @@ msgstr "Isso define o limiar para o comprimento do perímetro pequeno. O limiar
msgid "Small support perimeters"
msgstr "Pequenos perímetros de suporte"
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Igual a \"Pequenos perímetros\", mas para suportes. Esta configuração separada afetará a velocidade do suporte para áreas <= `small_support_perimeter_threshold`. Se expressa como uma porcentagem (por exemplo: 80%), será calculada com base na configuração de velocidade de suporte ou de interface de suporte acima. Defina como zero para automático."
+# AI Translated
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Igual a \"Pequenos perímetros\", mas para suportes. Esta configuração separada afetará a velocidade do suporte para áreas <= `small_support_perimeter_threshold`. Se expressa como uma porcentagem (por exemplo: 80%), será calculada com base na configuração de velocidade de suporte ou de interface de suporte acima."
msgid "Small support perimeters threshold"
msgstr "Limiar de pequenos perímetros de suporte"
@@ -14382,12 +15517,13 @@ msgstr "Isto define o limite para o comprimento de pequenos perímetros de supor
msgid "Walls printing order"
msgstr "Ordem de impressão das paredes"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
@@ -14395,7 +15531,7 @@ msgstr ""
"\n"
"Use Interior/Exterior para melhores saliências. Isso ocorre porque as paredes salientes podem aderir a um perímetro vizinho durante a impressão. No entanto, esta opção resulta em uma qualidade superficial ligeiramente reduzida, pois o perímetro externo é deformado ao ser esmagado pelo perímetro interno.\n"
"\n"
-"Use Interior/Exterior/Interior para o melhor acabamento superficial externo e precisão dimensional, pois a parede externa é impresso sem interrupções a partir de um perímetro interno. No entanto, o desempenho da saliência será reduzido, pois não há perímetro interno para suportar a impressão da parede externa. Esta opção requer um mínimo de 3 paredes para ser eficaz, pois imprime as paredes internas a partir do terceiro perímetro para fora primeiro, depois o perímetro externo e finalmente o primeiro perímetro interno. Esta opção é recomendada em vez da opção Exterior/Interior na maioria dos casos.\n"
+"Use Interior/Exterior/Interior para o melhor acabamento superficial externo e precisão dimensional, pois a parede externa é impressa sem interrupções a partir de um perímetro interno. No entanto, o desempenho da saliência será reduzido, pois não há perímetro interno para suportar a impressão da parede externa. Esta opção requer um mínimo de 3 paredes para ser eficaz, pois imprime as paredes internas a partir do terceiro perímetro para fora primeiro, depois o perímetro externo e finalmente o primeiro perímetro interno. Esta opção é recomendada em vez da opção Exterior/Interior na maioria dos casos.\n"
"\n"
"Use Exterior/Interior para obter os mesmos benefícios de qualidade de parede externa e precisão dimensional da opção Interior/Exterior/Interior. No entanto, as costuras Z aparecerão menos consistentes, pois a primeira extrusão de uma nova camada começa em uma superfície visível."
@@ -14515,19 +15651,15 @@ msgstr ""
"\n"
"A taxa de fluxo final do objeto é este valor multiplicado pela taxa de fluxo do filamento."
-# AI Translated
msgid "Enable pressure advance"
msgstr "Habilitar Pressure Advance"
-# AI Translated
msgid "Enable pressure advance, auto calibration result will be overwritten once enabled."
msgstr "Habilitar Pressure Advance, o resultado da calibração automática será sobrescrito uma vez habilitado."
-# AI Translated
msgid "Pressure advance (Klipper) AKA Linear advance factor (Marlin)."
-msgstr "Pressure Advance (Klipper), também conhecido como fator de Linear Advance (Marlin)."
+msgstr "Pressure Advance (Klipper), também conhecido como Fator de Linear Advance (Marlin)."
-# AI Translated
msgid "Enable adaptive pressure advance (beta)"
msgstr "Habilitar Pressure Advance adaptativo (beta)"
@@ -14548,7 +15680,6 @@ msgstr ""
"Quando habilitado, o valor do Pressure Advance acima é substituído. No entanto, um valor padrão razoável acima é fortemente recomendado para atuar como um fallback e para quando a ferramenta for trocada.\n"
"\n"
-# AI Translated
msgid "Adaptive pressure advance measurements (beta)"
msgstr "Medidas do Pressure Advance adaptativo (beta)"
@@ -14577,7 +15708,6 @@ msgstr ""
"2. Anote o valor de PA ideal para cada velocidade e aceleração de fluxo volumétrico. Você pode encontrar o número do fluxo selecionando fluxo no menu suspenso do esquema de cores e movendo o controle deslizante horizontal sobre as linhas do padrão de PA. O número deve estar visível na parte inferior da página. O valor de PA ideal deve diminuir quanto maior for o fluxo volumétrico. Se não estiver, confirme se sua extrusora está funcionando corretamente. Quanto mais lento e com menos aceleração você imprimir, maior será o intervalo de valores de PA aceitáveis. Se nenhuma diferença for visível, use o valor de PA do teste mais rápido\n"
"3. Insira os tripletos de valores de PA, Fluxo e Acelerações na caixa de texto aqui e salve seu perfil de filamento."
-# AI Translated
msgid "Enable adaptive pressure advance within features (beta)"
msgstr "Habilitar Pressure Advance adaptativo nos recursos (beta)"
@@ -14594,9 +15724,8 @@ msgstr ""
"\n"
"Esta é uma opção experimental, pois se o perfil de PA não for definido com precisão, causará problemas de uniformidade."
-# AI Translated
msgid "Static pressure advance for bridges"
-msgstr "Pressure Advance estático para pontes"
+msgstr "Pressure advance estático para pontes"
# AI Translated
msgid ""
@@ -14856,13 +15985,13 @@ msgid "Interface layer pre-extrusion distance"
msgstr "Distância de pré-extrusão da camada de interface"
msgid "Pre-extrusion distance for prime tower interface layer (where different materials meet)."
-msgstr "Distância de pré-extrusão para a camada de interface da torre de preparação (onde diferentes materiais se encontram)."
+msgstr "Distância de pré-extrusão para a camada de interface da torre de purga (onde diferentes materiais se encontram)."
msgid "Interface layer pre-extrusion length"
msgstr "Comprimento de pré-extrusão da camada de interface"
msgid "Pre-extrusion length for prime tower interface layer (where different materials meet)."
-msgstr "Comprimento de pré-extrusão para a camada de interface da torre de preparação (onde diferentes materiais se encontram)."
+msgstr "Comprimento de pré-extrusão para a camada de interface da torre de purga (onde diferentes materiais se encontram)."
msgid "Tower ironing area"
msgstr "Area de alisamento da torre"
@@ -14877,13 +16006,13 @@ msgid "Interface layer purge length"
msgstr "Comprimento de purga da camada de interface"
msgid "Purge length for prime tower interface layer (where different materials meet)."
-msgstr "Comprimento de purga para a camada de interface da torre de preparação (onde diferentes materiais se encontram)."
+msgstr "Comprimento de purga para a camada de interface da torre de purga (onde diferentes materiais se encontram)."
msgid "Interface layer print temperature"
msgstr "Temperatura de impressão da camada de interface"
msgid "Print temperature for prime tower interface layer (where different materials meet). If set to -1, use max recommended nozzle temperature."
-msgstr "Temperatura de impressão para a camada de interface da torre de preparação (onde diferentes materiais se encontram). Se definida como -1, use a temperatura máxima recomendada do bico."
+msgstr "Temperatura de impressão para a camada de interface da torre de purga (onde diferentes materiais se encontram). Se definida como -1, use a temperatura máxima recomendada do bico."
msgid "Speed of the last cooling move"
msgstr "Velocidade do último movimento de resfriamento"
@@ -15014,9 +16143,6 @@ msgstr "Preço do filamento, para propósito estatístico apenas."
msgid "money/kg"
msgstr "dinheiro/kg"
-msgid "Vendor"
-msgstr "Fornecedor"
-
msgid "Vendor of filament. For show only."
msgstr "Fornecedor do filamento. Apenas para mostrar."
@@ -15084,6 +16210,90 @@ msgstr "Multilinhas de Preenchimento"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Usar múltiplas linhas para o padrão de preenchimento, se suportado pelo padrão de preenchimento."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Densidade adaptativa (experimental)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Gradua o preenchimento Giroide e TPMS dentro do objeto: suas células crescem da superfície do objeto em direção ao seu centro. A densidade do preenchimento esparso é usada na superfície e a densidade interior, no centro.\n"
+"Distorção por distância, Mistura suave e Cascas escalonadas seguem a distância até a superfície mais próxima, incluindo a superior e a inferior, com a densidade interior no ponto mais distante dela:\n"
+" - Distorção por distância: um padrão contínuo, esticado e cisalhado onde a distância muda entre direções, como em chapas e peças longas.\n"
+" - Mistura suave: os padrões de densidades vizinhas mesclados entre si, com pequenos laços onde se encontram.\n"
+" - Cascas escalonadas: cascas do padrão regular com densidades que diferem por um fator de cerca de 1,5, com suas linhas unidas ao longo dos limites das cascas.\n"
+" - Lóbulos: segue a forma 3D do objeto, incluindo suas partes superior e inferior. Cada lóbulo, uma porção unida ao restante por um pescoço mais estreito, é graduado em direção ao seu próprio centro.\n"
+" - Normal Z, Y ou X: segue as seções do objeto normais a esse eixo, de modo que a densidade não muda ao longo dele."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Distorção por distância"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Mistura suave"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Cascas escalonadas"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Lóbulos"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Normal Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Normal Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Normal X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Densidade interior"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Densidade do preenchimento adaptativo no centro do objeto."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Gradiente adaptativo"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Como a densidade muda da superfície até o centro do objeto.\n"
+"Linear: a densidade muda a uma taxa constante.\n"
+"Quadrático: a densidade se mantém próxima da densidade do preenchimento esparso perto da superfície e muda mais rápido em direção ao centro.\n"
+"Exponencial: a densidade muda rapidamente logo abaixo da superfície e se estabiliza em direção ao centro."
+
+# AI Translated
+msgid "Linear"
+msgstr "Linear"
+
+msgid "Quadratic"
+msgstr "Quadrático"
+
+msgid "Exponential"
+msgstr "Exponencial"
+
msgid "Z-buckling bias optimization (experimental)"
msgstr "Otimização de tendência à flambagem em Z (experimental)"
@@ -15231,14 +16441,16 @@ msgstr "Altura da primeira camada"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Altura da primeira camada. Tornar a altura da primeira camada mais espessa pode melhorar a adesão à placa de impressão."
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Esta é a velocidade da primeira camada, exceto as regiões de preenchimento sólido."
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Esta é a velocidade das paredes e da borda da primeira camada."
msgid "First layer infill"
msgstr "Preenchimento da primeira camada"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Esta é a velocidade das regiões de preenchimento sólido da primeira camada."
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Esta é a velocidade da primeira camada, exceto paredes e borda, como preenchimento, preenchimento de vão e suportes."
msgid "First layer travel speed"
msgstr "Velocidade de deslocamento da primeira camada"
@@ -15692,6 +16904,10 @@ msgstr "Tipo de G-code"
msgid "What kind of G-code the printer is compatible with."
msgstr "Com que tipo de G-code a impressora é compatível."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (legado)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -15797,11 +17013,9 @@ msgstr "Preenchimento simétrico no eixo Y"
msgid "If the model has two parts that are symmetric about the Y axis, and you want these parts to have symmetric textures, please click this option on one of the parts."
msgstr "Se o modelo tiver duas partes simétricas em relação ao eixo Y e você quiser que essas partes tenham texturas simétricas, clique nesta opção em uma das partes."
-# AI Translated
msgid "Fill pattern tops"
msgstr "Preencher os topos do padrão"
-# AI Translated
msgid "Choose this option if you want to completely fill in the tops of the infill pattern"
msgstr "Escolha esta opção se quiser preencher completamente os topos do padrão de preenchimento"
@@ -15922,16 +17136,18 @@ msgstr "Largura da linha do preenchimento esparso interno. Se expresso como %, s
msgid "Infill/wall overlap"
msgstr "Sobreposição de preenchimento/parede"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Isso permite a área de preenchimento ser aumentada ligeiramente para se sobrepor à parede para uma melhor ligação. O valor percentual é relativo à largura da linha do preencimento esparso. Defina este valor como ~10-15% para minimizar uma potencial sobre extrusão e acumulo de material resultando em superfícies superiores ásperas."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Isso permite que a área de preenchimento seja aumentada ligeiramente para se sobrepor às paredes e melhorar a ligação. O valor percentual é relativo à largura da linha da parede interna. Defina este valor como ~10-15% para minimizar uma potencial sobre extrusão e acúmulo de material, resultando em superfícies superiores ásperas."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Sobreposição Superior/Inferior de preenchimento sólido/parede"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "A área de preenchimento sólido é ligeiramente alargada para se sobrepor à parede para melhor adesão e para minimizar a aparência de furos onde o preenchimento encontra as paredes. Um valor de 25-30% é um bom ponto de partida, minimizando a aparência dos buracos. O valor percentual é relativo à largura da linha do preenchimento esparso."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "A área de preenchimento sólido superior é ligeiramente alargada para se sobrepor à parede para melhor adesão e para minimizar a aparência de furos onde o preenchimento superior encontra as paredes. Um valor de 25-30% é um bom ponto de partida, minimizando a aparência dos furos. O valor percentual é relativo à largura da linha da parede interna."
msgid "This is the speed for internal sparse infill."
msgstr "Essa é a velocidade do preenchimento esparso interno."
@@ -15957,8 +17173,9 @@ msgstr "Largura máxima de uma região segmentada. O valor 0 desativa essa funci
msgid "Interlocking depth of a segmented region"
msgstr "Profundidade de intertravamento de uma região segmentada"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Profundidade de intertravamento de uma região segmentada. Será ignorado se \"mmu_segmented_region_max_width\" for zero ou se \"mmu_segmented_region_interlocking_depth\" for maior que \"mmu_segmented_region_max_width\". Zero desabilita esse recurso."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Profundidade de intertravamento de uma região segmentada. Em camadas alternadas, a região segmentada é limitada a essa profundidade. Será ignorada se 'interlocking_beam' estiver habilitado. Zero desativa essa funcionalidade."
msgid "Use beam interlocking"
msgstr "Usar intertravamento de viga"
@@ -16059,13 +17276,14 @@ msgstr "Habilitar o contorno da camada Z (antisserrilhamento da camada Z)."
msgid "Minimize wall height angle"
msgstr "Minimizar o ângulo de altura das paredes"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Reduz a altura dos perímetros da superfície superior para corresponder à altura da aresta do modelo.\n"
-"Afeta os perímetros com uma inclinação menor que este ângulo (em graus).\n"
+"Afeta os perímetros com uma inclinação maior que este ângulo (em graus).\n"
"Um valor razoável é 35. Defina como 0 para desativar."
msgid "Don't alternate fill direction"
@@ -16139,17 +17357,21 @@ msgstr "Velocidade máxima Z"
msgid "Maximum speed E"
msgstr "Velocidade máxima E"
-msgid "Maximum X speed"
-msgstr "Velocidade máxima em X"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Velocidade máxima do eixo X"
-msgid "Maximum Y speed"
-msgstr "Velocidade máxima em Y"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Velocidade máxima do eixo Y"
-msgid "Maximum Z speed"
-msgstr "Velocidade máxima em Z"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Velocidade máxima do eixo Z"
-msgid "Maximum E speed"
-msgstr "Velocidade máxima em E"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Velocidade máxima do eixo E"
msgid "Maximum acceleration X"
msgstr "Aceleração máxima em X"
@@ -16655,8 +17877,9 @@ msgstr "Plugins Utilizados"
msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capability."
msgstr "Capacidades de plugin referenciados por esta predefinição, armazenados como name;uuid;capability."
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
-msgstr "Plugin(s) Python invocado(s) em cada etapa do pipeline de fatiamento para ler e modificar dados intermediários de fatiamento, incluindo uma etapa final de pós-processamento do G-code. Pesquisa/experimental."
+# AI Translated
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgstr "Plugins Python invocados em cada etapa do pipeline de fatiamento para ler e modificar dados intermediários de fatiamento, incluindo uma etapa final de pós-processamento do G-code. Pesquisa/experimental."
msgid "Printer type"
msgstr "Tipo de impressora"
@@ -16840,7 +18063,6 @@ msgstr "Bowden"
msgid "Hybrid"
msgstr "Híbrido"
-# AI Translated
msgid "Extra High Flow"
msgstr "Fluxo Extra Alto"
@@ -17013,7 +18235,8 @@ msgstr "Costura em bisel em paredes internas"
msgid "Use scarf joint for inner walls as well."
msgstr "Usar costura em bisel em paredes internas também."
-msgid "Role base wipe speed"
+# AI Translated
+msgid "Role based wipe speed"
msgstr "Velocidade de limpeza baseada na função"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -17101,16 +18324,15 @@ msgstr "Limitar as voltas da saia e escudo de ar a uma parede após a primeira c
msgid "Draft shield"
msgstr "Escudo de ar"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"Um escudo de ar é útil para proteger uma impressão ABS ou ASA de deformações e desprendimento da mesa de impressão devido à corrente de ar. Geralmente, ele é necessário apenas com impressoras de estrutura aberta, ou seja, sem um gabinete.\n"
"\n"
-"Habilitado = a saia é tão alta quanto o objeto impresso mais alto. Caso contrário, 'Altura da saia' é usada.\n"
-"Nota: com o escudo de ar ativo, a saia será impressa na distância da saia do objeto. Portanto, se as bordas estiverem ativas, ela pode se cruzar com elas. Para evitar isso, aumente o valor da distância da saia.\n"
+"Habilitado = a saia é tão alta quanto o objeto impresso mais alto. Caso contrário, 'Altura da saia' é usada."
msgid "Enabled"
msgstr "Ativado"
@@ -17253,7 +18475,6 @@ msgstr "Passos de pré-aquecimento"
msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1."
msgstr "Insire múltiplos comandos de pré-aquecimento (ex.: M104.1). Útil apenas para Prusa XL. Para outras impressoras, defina como 1."
-# AI Translated
msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}."
msgstr "G-code escrito no início do arquivo de saída, antes de qualquer outro conteúdo. Útil para adicionar metadados que o firmware da impressora lê nas primeiras linhas do arquivo (ex.: tempo estimado de impressão, uso de filamento). Suporta marcadores como {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} e {used_filament_length}."
@@ -17272,6 +18493,130 @@ msgstr "Multimaterial com Extrusora Única"
msgid "Use single nozzle to print multi filament."
msgstr "Usar um único bico para imprimir múltiplos filamentos."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "Impressora IDEX/IQEX"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Ativa a impressão paralela para impressoras com vários carros independentes (IDEX, IQEX e similares)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Zonas gerenciadas pelo firmware"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Quando ativado, o fatiador emite o G-code com o conteúdo da zona principal centralizado na origem da mesa (0,0). O firmware da impressora é responsável por posicionar as cópias/espelhos na posição física de cada zona. Ative somente em impressoras cujo firmware aplica seus próprios deslocamentos de zona no modo cópia/espelho (ex.: modo de duplicação IDEX do RepRapFirmware). Não tem efeito no modo Principal."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Número de pórticos"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Número de pórticos independentes no eixo Y. 1 para IDEX/IQEX de trilho único. 2 para sistemas de pórtico duplo (divide a mesa em linhas)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Ferramentas por pórtico"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Número de cabeças de ferramenta independentes por pórtico ao longo de X. 2 para o estilo IDEX."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Posição da ferramenta 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Posição física na mesa onde a ferramenta T0 (índice 0) está localizada. Determina como os índices das ferramentas são mapeados para as zonas da mesa. Em configurações de pórtico único (IDEX), apenas esquerda/direita importa; em configurações de pórtico duplo (IQEX), os quatro cantos podem ser selecionados (frontal = Y menor / perto do operador, traseira = Y maior / fundo da máquina)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Folga do bico X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Distância (mm) do bico até a extremidade do carro no lado de colisão em X. Usada para calcular a largura da faixa de exclusão de colisão em cada limite X."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Folga do bico Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Distância (mm) do bico até a extremidade do carro no lado de colisão em Y. Usada para calcular a largura da faixa de exclusão de colisão em cada limite Y."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Margem de segurança"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Faixa de folga apenas indicativa, sem bloqueio (mm), desenhada dentro da zona principal em cada limite de carro. Peças posicionadas dentro dessa faixa ainda serão fatiadas; ela é um lembrete visual para deixar folga extra perto do limite da zona."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Tema de visualização"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Tema de cores para a visualização das zonas da mesa IDEX/IQEX. Escolha um tema adequado para daltônicos, se necessário."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranopia / Protanopia (vermelho-verde)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopia (azul-amarelo)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Alto contraste"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "Modo de impressão IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Nome do modo de impressão paralela IDEX/IQEX ativo, ou \"primary\" para impressão com um único carro. Requer Impressora IDEX/IQEX ativada na predefinição de impressora (Impressora → Multimaterial → Configuração IDEX/IQEX)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "Mapa de filamentos por cabeça IDEX/IQEX"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Substituição por placa que mapeia as cabeças físicas para os espaços de filamento (começando em 1). Vazio significa que cada cabeça usa o primeiro filamento que o mapa de extrusoras físicas da impressora direciona para ela."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "Nomes dos modos IDEX/IQEX"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Nomes de exibição de cada modo de impressão paralela IDEX/IQEX definido pelo usuário."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Ferramentas ativas dos modos IDEX/IQEX"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Atribuições de função das ferramentas para cada modo. Formato: \"idx:P,idx:C,idx:M\", onde P=Primary (Principal), C=Copy (Cópia), M=Mirror (Espelho) (ex.: \"0:P,1:C,2:M,3:M\"). Gerenciado pelo editor de Modos IDEX/IQEX na predefinição de impressora."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-codes dos modos IDEX/IQEX"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code ou chamada de macro a ser inserido no início da impressão para cada modo."
+
msgid "Manual Filament Change"
msgstr "Troca Manual de Filamento"
@@ -17317,7 +18662,6 @@ msgstr "Sem camadas esparsas (beta)"
msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower, so the tower ends up below the model and the toolhead has to reach down to it. Layouts where that would collide with an already printed object are rejected. Has no effect with smooth timelapse or clumping detection, which need a tower on every layer."
msgstr "Se ativado, a torre de purga não será impressa nas camadas sem mudanças de ferramenta. Nas camadas com mudança de ferramenta, a extrusora descerá para imprimir a torre de purga, de modo que a torre fica abaixo do modelo e a cabeça da ferramenta precisa descer até ela. Disposições em que isso colidiria com um objeto já impresso são rejeitadas. Não tem efeito com o timelapse suave nem com a detecção de aglomeração no bico, que precisam de uma torre em todas as camadas."
-# AI Translated
msgid "Combine sparse layers"
msgstr "Combinar camadas esparsas"
@@ -17640,6 +18984,171 @@ msgstr "Sobreposição de limiar"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Se o ângulo limiar for zero, o suporte será gerado para saliências cuja sobreposição estiver abaixo do limiar. Quanto menor for esse valor, mais íngreme será a saliência que pode ser impressa sem suporte."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Inclinação da mesa em X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Ângulo de inclinação da mesa ao longo do eixo X. Um valor positivo inclina a mesa de modo que o lado +X fique mais alto, deslocando a gravidade em direção a -X e aumentando as saliências no lado +X. Um valor negativo deixa o lado -X mais alto. Defina como 0 para nenhuma inclinação no eixo X. No modo de impressora de esteira, isso é sincronizado automaticamente com o ângulo da esteira."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Inclinação da mesa em Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Ângulo de inclinação da mesa ao longo do eixo Y. Um valor positivo inclina a mesa de modo que o lado +Y fique mais alto, deslocando a gravidade em direção a -Y e aumentando as saliências no lado +Y. Um valor negativo deixa o lado -Y mais alto. Defina como 0 para nenhuma inclinação no eixo Y."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Ativar impressão em esteira"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Ativa o modo de impressora de esteira. Impressoras de esteira usam uma esteira transportadora como superfície de impressão, inclinada em um ângulo (normalmente 45 graus). O fatiador girará o plano de fatiamento e transformará as coordenadas do G-code para a superfície de impressão inclinada."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Eixo Y infinito"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Ativa o eixo Y infinito para impressoras de esteira. Quando ativado, o limite do volume de impressão no eixo Y é efetivamente removido, permitindo imprimir objetos de qualquer comprimento na direção da esteira."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Eixo de inclinação da esteira"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Eixo em torno do qual a malha é girada antes do fatiamento. Esta é a inclinação da impressora de esteira: uma rotação isométrica (sem distorção) que também define a renderização da mesa e a inclinação da gravidade dos suportes, e que a transformação inversa do G-code desfaz antes do cisalhamento/escala e do remapeamento do referencial da máquina. X é a inclinação típica do pórtico (a esteira se move ao longo de Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Ângulo de inclinação da esteira"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Ângulo de inclinação da superfície da esteira, em graus. A maioria das impressoras de esteira usa 45°. Valores positivos giram no sentido anti-horário olhando ao longo do sentido positivo do eixo de inclinação; o valor absoluto também é a inclinação física da esteira usada na renderização da mesa e na gravidade dos suportes."
+
+# AI Translated
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Desacoplar a inclinação do referencial da máquina"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Substituição para especialistas: define o ângulo de inclinação do referencial da máquina (cisalhamento/escala do G-code) independentemente do ângulo de rotação antes do fatiamento. Quando desativado, a transformação do referencial da máquina é derivada do ângulo de inclinação da esteira, de modo que um único ângulo controla as duas etapas. Ative somente para compensar uma máquina cuja inclinação física do pórtico difere da rotação de fatiamento."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Ângulo de inclinação do referencial da máquina"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Ângulo de inclinação (graus) usado para derivar o cisalhamento (cot) e a escala (1/|sin|) do referencial da máquina aplicados ao G-code. Usado somente quando 'Desacoplar a inclinação do referencial da máquina' está ativado; caso contrário, é usado o ângulo de inclinação da esteira."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+# Needs human review: Dropdown option of the belt G-code remap: 'Rev' is the reversed axis (max - position), distinct from the negated '-X' next to it; check the two read as different options.
+msgid "Rev X"
+msgstr "X invertido"
+
+# AI Translated
+# Needs human review: Dropdown option of the belt G-code remap: 'Rev' is the reversed axis (max - position), distinct from the negated '-Y' next to it; check the two read as different options.
+msgid "Rev Y"
+msgstr "Y invertido"
+
+# AI Translated
+# Needs human review: Dropdown option of the belt G-code remap: 'Rev' is the reversed axis (max - position), distinct from the negated '-Z' next to it; check the two read as different options.
+msgid "Rev Z"
+msgstr "Z invertido"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "Remapeamento X do G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Qual eixo de fatiamento corresponde ao X da máquina na saída do G-code. Aplicado DEPOIS do fatiamento, durante a geração do G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "Remapeamento Y do G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Qual eixo de fatiamento corresponde ao Y da máquina na saída do G-code. Aplicado DEPOIS do fatiamento, durante a geração do G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "Remapeamento Z do G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Qual eixo de fatiamento corresponde ao Z da máquina na saída do G-code. Aplicado DEPOIS do fatiamento, durante a geração do G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Deslocamento Z do piso dos suportes"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Desloca o piso calculado da esteira para cima ou para baixo (mm). Valores negativos abaixam o piso, permitindo que mais suportes sejam mantidos. Use isto para diagnosticar problemas na fórmula do piso da esteira."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Ativar torre de purga da esteira"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Substituto da torre de purga para impressoras de esteira. Quando ativado em uma impressora de esteira, um prisma de purga é gerado automaticamente ao lado das peças impressas e a purga das trocas de filamento é direcionada para ele (a torre de purga clássica não pode ser usada em impressoras de esteira porque seu G-code ignora a transformação da esteira). Disponível somente em impressoras de esteira."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Largura da torre de purga da esteira"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Largura (X da máquina, transversal à esteira) do prisma de purga gerado automaticamente em impressoras de esteira quando a torre de purga da esteira está ativada e vários filamentos são usados. A purga das trocas de filamento é direcionada para as extrusões deste prisma em vez de uma torre de purga clássica. Sua altura é calculada automaticamente a partir do pior caso de volume de purga por camada: um prisma mais largo resulta em um prisma mais baixo."
+
msgid "Tree support branch angle"
msgstr "Ângulo da ramificação da árvore de suporte"
@@ -17814,16 +19323,15 @@ msgstr "O número de camadas sólidas superiores é aumentado ao fatiar se a esp
msgid "Separated infills"
msgstr "Preenchimentos separados"
+# AI Translated
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
"Centraliza o preenchimento interno de cada peça em si mesma, como se fosse fatiada isoladamente, em vez de no conjunto inteiro. Peças que se tocam ou se sobrepõem são tratadas como um único corpo e compartilham um centro; peças separadas (ou objetos 3D distintos) recebem cada uma o seu próprio.\n"
"Útil quando um conjunto agrupa vários objetos que devem manter, cada um, um preenchimento consistente e autocentrado.\n"
-"Afeta os padrões de linha e grade e os preenchimentos com gabarito de rotação.\n"
-"Os padrões fixados em coordenadas globais (Giroide, Favo de mel, TPMS, …) não são afetados."
+"Cúbico Adaptativo e Cúbico de Suporte sempre centralizam cada peça em si mesma, e o preenchimento Relâmpago é gerado para o objeto inteiro e não é afetado."
msgid "Center surface pattern on"
msgstr "Centralizar padrão de superfície em"
@@ -17942,40 +19450,42 @@ msgstr "Ângulo no ápice do cone usado para estabilizar a torre de purga. Um â
msgid "Maximum wipe tower print speed"
msgstr "Velocidade máxima de impressão da torre de purga"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
"A velocidade máxima de impressão ao purgar na torre de purga e ao imprimir as camadas esparsas da torre de purga. Ao purgar, se a velocidade do preenchimento esparso ou a velocidade calculada a partir da velocidade volumétrica máxima do filamento for menor, a menor será utilizada.\n"
"\n"
-"Ao imprimir as camadas esparsas, se a velocidade do perímetro interno ou a velocidade calculada a partir da velocidade volumétrica máxima do filamento for menor, a menor será utilizada.\n"
+"Ao imprimir as camadas esparsas, se a velocidade do preenchimento esparso ou a velocidade calculada a partir da velocidade volumétrica máxima do filamento for menor, a menor será utilizada.\n"
"\n"
"Aumentar essa velocidade pode afetar a estabilidade da torre, bem como aumentar a força com que o bico colide com quaisquer bolhas que possam ter se formado na torre de purga.\n"
"\n"
"Antes de aumentar esse parâmetro além do padrão de 90 mm/s, certifique-se de que sua impressora pode realizar pontes de forma confiável nas velocidades aumentadas e que o vazamento ao trocar a ferramenta está bem controlado.\n"
"\n"
-"Para os perímetros externos da torre de purga, a velocidade do perímetro interno é utilizada independentemente dessa configuração."
+"Para os perímetros externos da torre de purga, a velocidade do perímetro interno é utilizada, também limitada por essa configuração."
msgid "Wall type"
msgstr "Tipo de parede"
+# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"Tipo de parede externa da torre de purga.\n"
-"1. Retângulo: O tipo de parede padrão, um retângulo com largura e altura fixas.\n"
+"1. Retângulo: Um retângulo com largura e altura fixas.\n"
"2. Cone: Um cone com um filete na parte inferior para ajudar a estabilizar a torre de purga.\n"
-"3. Nervura: Adiciona quatro nervuras à parede da torre para maior estabilidade."
+"3. Nervura: O tipo de parede padrão, que adiciona quatro nervuras à parede da torre para maior estabilidade."
msgid "Rectangle"
msgstr "Retângulo"
@@ -17995,11 +19505,9 @@ msgstr "Largura da nervura"
msgid "Rib width is always less than half the prime tower side length."
msgstr "A largura da nervura sempre é menor do que a metade da largura da torre de purga."
-# AI Translated
msgid "Fillet wall"
msgstr "Parede com filete"
-# AI Translated
msgid "The wall of prime tower will fillet."
msgstr "A parede da torre de purga terá um filete."
@@ -18045,6 +19553,14 @@ msgstr "A purga após a troca de filamento será feita dentro do suporte dos obj
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Este objeto será usado para purgar o bico após uma troca de filamento para economizar filamento e diminuir o tempo de impressão. As cores dos objetos serão misturadas como resultado. Isso não terá efeito a menos que a torre de purga esteja ativa."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Objeto da torre de purga da esteira"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Marca o prisma de purga da esteira gerado automaticamente. Gerenciado automaticamente; não defina manualmente."
+
msgid "Maximal bridging distance"
msgstr "Distância máxima de ponte"
@@ -18060,8 +19576,9 @@ msgstr "Espaçamento das linhas de purga na torre de purga."
msgid "Extra flow for purging"
msgstr "Fluxo extra para purga"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Fluxo extra usado para as linhas de purga na torre de purga. Isso torna as linhas de purga mais grossas ou mais estreitas do que normalmente seriam. O espaçamento é ajustado automaticamente."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Fluxo extra usado para as linhas de purga na torre de purga. Isso torna as linhas de purga mais grossas do que normalmente seriam. O espaçamento é ajustado automaticamente."
msgid "Idle temperature"
msgstr "Temperatura ociosa"
@@ -18177,14 +19694,15 @@ msgstr "Espessura mínima de elementos finos. Elementos do modelo mais finos que
msgid "Minimum wall length"
msgstr "Comprimento mínimo da parede"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Ajuste este valor para evitar que paredes curtas e não fechados sejam impressos, o que poderia aumentar o tempo de impressão. Valores mais altos removem paredes mais longas.\n"
+"Ajuste este valor para evitar que paredes curtas e não fechadas sejam impressas, o que poderia aumentar o tempo de impressão. O valor é um múltiplo da largura da parede. Valores mais altos removem mais paredes e paredes mais longas.\n"
"\n"
-"NOTA: As superfícies inferior e superior não serão afetadas por este valor para evitar lacunas visuais no exterior do modelo. Ajuste o 'Limiar de uma parede' nas configurações avançadas abaixo para ajustar a sensibilidade do que é considerado uma superfície superior. 'Limiar de uma parede' só é visível se esta configuração estiver acima do valor padrão de 0,5, ou se superfícies superiores de uma única parede estiverem habilitadas."
+"NOTA: As superfícies inferior e superior não serão afetadas por este valor para evitar lacunas visuais no exterior do modelo. Ajuste o 'Limiar de parede única' nas configurações de 'Paredes e superfícies' abaixo para ajustar a sensibilidade do que é considerado uma superfície superior. 'Limiar de parede única' só é visível se esta configuração estiver acima do valor padrão de 0,5, ou se superfícies superiores de parede única estiverem habilitadas."
msgid "Maximum wall resolution"
msgstr "Resolução máxima de parede"
@@ -18195,7 +19713,7 @@ msgstr "Este valor determina o menor comprimento do segmento de linha da parede
msgid "Maximum wall deviation"
msgstr "Desvio máximo de parede"
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
msgstr "O desvio máximo permitido ao reduzir a resolução para a configuração 'Resolução máxima de parede'. Se você aumentar esse valor, a impressão ficará menos precisa, mas o G-code será menor. 'Desvio máximo de parede' limita a 'Resolução máxima de parede', portanto, se houver conflito entre os dois, 'Desvio máximo de parede' terá prioridade."
msgid "First layer minimum wall width"
@@ -18285,8 +19803,11 @@ msgstr "A largura da linha de ponte não deve exceder o diâmetro do bico: "
msgid "too large line width "
msgstr "largura de linha muito grande "
-msgid " not in range "
-msgstr " fora do intervalo "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% fora do intervalo [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Isso exporta o projeto como um arquivo 3MF."
@@ -18429,6 +19950,14 @@ msgstr "Opções de Orientação"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Opções de orientação: 0-desativar, 1-habilitar, outros-auto"
+# AI Translated
+msgid "Repair"
+msgstr "Reparar"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Repara as malhas dos modelos como \"Corrigir Modelo\" faz: fecha buracos e fissuras, orienta-as para fora e remove auto-interseções."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Ângulo de rotação ao redor do eixo Z em graus."
@@ -18531,6 +20060,12 @@ msgstr "Diretório de saída"
msgid "This is the output directory for exported files."
msgstr "Este é o diretório de saída para arquivos exportados."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Nível de depuração"
@@ -18573,11 +20108,9 @@ msgstr "Permitir rotações ao arranjar"
msgid "If enabled, Arrange will allow rotation when placing objects."
msgstr "Se habilitado, o arranjo permitirá rotações ao posicionar objetos."
-# AI Translated
msgid "Align to Y axis when arranging"
msgstr "Alinhar ao eixo Y ao organizar"
-# AI Translated
msgid "If enabled, Arrange will turn each object so its long side runs along the Y axis before placing it. When not given, it is on for i3 printers and off for the others, as in the GUI."
msgstr "Se ativado, Organizar girará cada objeto para que seu lado mais longo fique ao longo do eixo Y antes de colocá-lo. Quando não informado, fica ativado para impressoras i3 e desativado para as demais, como na interface gráfica."
@@ -18695,6 +20228,58 @@ msgstr "Tem preparação de extrusora MM única"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "As regiões de preparação multimateriais extras são usadas nesta impressão?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Extrusora inicial sem suporte"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Índice base zero da primeira extrusora utilizada na impressão sem suporte. Mesmo que initial_no_support_tool."
+
+# AI Translated
+# Needs human review: Label of a G-code placeholder (in_head_wrap_detect_zone); check 'head wrap' means the nozzle/filament wrapping detection zone.
+msgid "In head wrap detect zone"
+msgstr "Na zona de detecção de enrolamento da cabeça da ferramenta"
+
+# AI Translated
+# Needs human review: Description of in_head_wrap_detect_zone; check 'head wrap zone' wording against the nozzle wrapping detection feature.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Indica se a primeira camada se sobrepõe à zona de enrolamento da cabeça da ferramenta."
+
+# AI Translated
+# Needs human review: Glossary says Bed = Mesa, but the catalog's established label 'Bed type' is 'Tipo de placa'; kept that wording so the placeholder matches the setting name.
+msgid "Current bed type"
+msgstr "Tipo de placa atual"
+
+# AI Translated
+# Needs human review: Example values kept in English on purpose: they are the literal strings the curr_bed_type placeholder returns.
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Nome do tipo de placa atualmente selecionado (ex.: 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Modo ativo IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Nome do modo de impressão paralela IDEX/IQEX ativo para esta placa (ex.: 'primary', 'mirror', 'copy'). String vazia se IDEX/IQEX não estiver ativado."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Índice do modo ativo IDEX/IQEX"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Índice base zero do modo de impressão paralela IDEX/IQEX ativo em imex_mode_names."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code do modo ativo IDEX/IQEX"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "O modelo de G-code bruto do modo de impressão paralela IDEX/IQEX ativo, após a avaliação dos placeholders. As variáveis globais definidas aqui são repassadas para machine_start_gcode."
+
msgid "Volume per extruder"
msgstr "Volume por extrusora"
@@ -18767,42 +20352,33 @@ msgstr "Fil. usado"
msgid "Total length of filament used in the print."
msgstr "Comprimento total de filamento usado na impressão."
-# AI Translated
msgid "Print time (total seconds)"
msgstr "Tempo de impressão (total em segundos)"
msgid "Total estimated print time in seconds. Replaced with actual value during post-processing."
msgstr "Tempo total estimado de impressão em segundos. Substituído pelo valor real durante o pós-processamento."
-# AI Translated
msgid "Print time (days component)"
msgstr "Tempo de impressão (componente de dias)"
-# AI Translated
msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing."
msgstr "Componente de dias do tempo estimado de impressão (modo normal). Substituído pelo valor real durante o pós-processamento."
-# AI Translated
msgid "Print time (hours component)"
msgstr "Tempo de impressão (componente de horas)"
-# AI Translated
msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing."
msgstr "Componente de horas do tempo estimado de impressão (modo normal). Substituído pelo valor real durante o pós-processamento."
-# AI Translated
msgid "Print time (minutes component)"
msgstr "Tempo de impressão (componente de minutos)"
-# AI Translated
msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing."
msgstr "Componente de minutos do tempo estimado de impressão (modo normal). Substituído pelo valor real durante o pós-processamento."
-# AI Translated
msgid "Print time (seconds component)"
msgstr "Tempo de impressão (componente de segundos)"
-# AI Translated
msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing."
msgstr "Componente de segundos do tempo estimado de impressão (modo normal). Substituído pelo valor real durante o pós-processamento."
@@ -18840,6 +20416,18 @@ msgstr "Nome do arquivo de entrada sem extensão"
msgid "Source filename of the first object, without extension."
msgstr "Nome do arquivo de origem do primeiro objeto, sem extensão."
+# AI Translated
+msgid "Full input filename"
+msgstr "Nome completo do arquivo de entrada"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Nome do arquivo de origem do primeiro objeto."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Nome da placa fatiada."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "O vetor possui dois elementos: coordenada X e Y do ponto. Valores em mm."
@@ -18870,6 +20458,58 @@ msgstr "Canto superior direito da caixa delimitadora da mesa de impressão"
msgid "Size of the print bed bounding box"
msgstr "Tamanho da caixa delimitadora da mesa de impressão"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Centro da primeira camada sem torre de purga"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Altura da primeira camada."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Vetor de temperaturas da mesa para cada extrusora/filamento."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Vetor de temperaturas da mesa da primeira camada para cada extrusora/filamento. Fornece o mesmo valor que first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Temperatura da mesa na primeira camada (extrusora inicial)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Temperatura da mesa na primeira camada para a extrusora inicial. Mesmo que bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Vetor de temperaturas da câmara para cada extrusora/filamento."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Vetor de temperaturas mínimas da câmara para cada extrusora/filamento."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Temperatura geral da câmara"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Temperatura geral da câmara. Este valor é a temperatura máxima da câmara de qualquer extrusora/filamento usado."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Vetor de temperaturas da mesa da primeira camada para cada extrusora/filamento. Fornece o mesmo valor que bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Temperatura da primeira camada"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Vetor de temperaturas da primeira camada para cada extrusora/filamento."
+
msgid "Timestamp"
msgstr "Data/hora"
@@ -18915,8 +20555,9 @@ msgstr "Nome da impressora física utilizada para fatiar."
msgid "Layer number"
msgstr "Número da camada"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Índice da camada atual. Baseado em um (ou seja, a primeira camada é o número 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Índice da camada atual. Baseado em zero (ou seja, a primeira camada é o número 0), exceto no G-code de mudança de tipo de extrusão, onde é baseado em um."
msgid "Layer Z"
msgstr "Camada Z"
@@ -18936,6 +20577,252 @@ msgstr "ID da extrusora de filamento"
msgid "The current extruder ID. The same as current_extruder."
msgstr "O ID da extrusora atual. O mesmo que current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Extrusora anterior"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Índice da extrusora que está sendo descarregada. O índice é base zero (a primeira extrusora tem índice 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Próxima extrusora"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Índice da extrusora que está sendo carregada. O índice é base zero (a primeira extrusora tem índice 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Eixo E relativo"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Indica se o posicionamento relativo está sendo usado."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Contagem de trocas de ferramenta"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "O número de trocas de ferramenta ao longo da impressão."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Comprimento de retração antigo"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "O comprimento de retração do filamento anterior."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Comprimento de retração novo"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "O comprimento de retração do filamento novo."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Comprimento de retração antigo na troca de ferramenta"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "O comprimento de retração na troca de ferramenta do filamento anterior."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Comprimento de retração novo na troca de ferramenta"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "O comprimento de retração na troca de ferramenta do filamento novo."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Temperatura do filamento antigo"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "A temperatura do filamento antigo."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Temperatura do filamento novo"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "A temperatura do filamento novo."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X após a troca de ferramenta"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "A posição X após a troca de ferramenta."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y após a troca de ferramenta"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "A posição Y após a troca de ferramenta."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z após a troca de ferramenta"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "A posição Z após a troca de ferramenta."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Primeiro volume de purga"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "O primeiro volume de purga."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Segundo volume de purga"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "O segundo volume de purga."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Velocidade de avanço E do filamento antigo"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "A velocidade de avanço da extrusora do filamento antigo."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Velocidade de avanço E do filamento novo"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "A velocidade de avanço da extrusora do filamento novo."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Ponto de deslocamento 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "O ponto de deslocamento 1 X."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Ponto de deslocamento 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "O ponto de deslocamento 1 Y."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Ponto de deslocamento 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "O ponto de deslocamento 2 X."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Ponto de deslocamento 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "O ponto de deslocamento 2 Y."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Ponto de deslocamento 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "O ponto de deslocamento 3 X."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Ponto de deslocamento 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "O ponto de deslocamento 3 Y."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Comprimento de purga 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "O primeiro comprimento de purga."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Comprimento de purga 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "O segundo comprimento de purga."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Comprimento de purga 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "O terceiro comprimento de purga."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Comprimento de purga 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "O quarto comprimento de purga."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Tipo de extrusão"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"O novo tipo de extrusão que será usado\n"
+"Valores possíveis:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Último tipo de extrusão"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"O tipo de extrusão usado anteriormente\n"
+"Valores possíveis:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Erro no arquivo zip"
@@ -18948,24 +20835,32 @@ msgstr "Gerando regiões de preenchimento"
msgid "Generating infill toolpath"
msgstr "Gerando caminho da ferramenta de preenchimento"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Camada com contorno em Z %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Detectar saliências para levantamento automático"
msgid "Checking support necessity"
msgstr "Verificando necessidade de suporte"
-msgid "floating regions"
-msgstr "regiões flutuantes"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Parece que o objeto %1% tem regiões flutuantes. Por favor, reoriente o objeto ou habilite a geração de suporte."
-msgid "floating cantilever"
-msgstr "balanço flutuante"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Parece que o objeto %1% tem um balanço flutuante. Por favor, reoriente o objeto ou habilite a geração de suporte."
-msgid "large overhangs"
-msgstr "saliências grandes"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Parece que o objeto %s tem %s. Por favor, reoriente o objeto ou habilite a geração de suporte."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Parece que o objeto %1% tem grandes saliências. Por favor, reoriente o objeto ou habilite a geração de suporte."
msgid "Generating support"
msgstr "Gerando suporte"
@@ -18976,8 +20871,9 @@ msgstr "Otimizando caminho da ferramenta"
msgid "Slicing mesh"
msgstr "Fatiando malha"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Nenhuma camada foi detectada. Você pode querer reparar seu(s) arquivo(s) STL ou verificar seu tamanho ou espessura e tentar novamente.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Nenhuma camada foi detectada. Você pode querer reparar o modelo ou verificar seu tamanho ou espessura e tentar novamente.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -18996,6 +20892,397 @@ msgstr ""
msgid "Object name"
msgstr "Nome do objeto"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Não é possível aplicar o operador de menos unário."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Não é possível converter para inteiro."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Não é possível arredondar um valor não numérico."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Não é possível arredondar para baixo um valor não numérico."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Não é possível arredondar para cima um valor não numérico."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Não é possível aplicar o operador not."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Não é possível somar tipos não numéricos."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Não é possível subtrair tipos não numéricos."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Não é possível multiplicar por um tipo não numérico."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Não é possível dividir um tipo não numérico."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Não é possível dividir por um tipo não numérico."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Divisão por zero"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Não é uma expressão booleana"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Não é possível comparar os tipos."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Não é um tipo numérico."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: o segundo parâmetro deve ser inteiro"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: o terceiro parâmetro deve ser inteiro"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "O lado esquerdo de uma correspondência de regex deve ser uma string."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Falha na compilação da expressão regular: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "O primeiro parâmetro de regex_replace() deve ser uma string."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): o primeiro parâmetro (a string a ser comparada) deve ser um valor do tipo string"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): o padrão deve ser um valor do tipo string"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Falha na compilação da expressão regular"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Não é possível aplicar uma operação lógica a operandos não booleanos."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Tentativa de indexar uma variável escalar"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Índice de vetor inválido"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "A variável não existe (em um ramo inativo)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "A variável não existe"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Tentativa de referenciar uma variável opcional indefinida (nil)"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Indexação de uma variável vetorial vazia"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Tentativa de referenciar um elemento indefinido (nil) de um vetor de valores opcionais"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "A variável de indexação deve ser um inteiro"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Índice de vetor negativo"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Não é um nome de variável"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Não é um nome de variável (em um ramo inativo)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "A variável FloatOrPercent não conseguiu resolver as dependências de \"ratio_over\""
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Tipo de variável escalar não suportado"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Referência a uma variável vetorial quando se espera um escalar"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Tipo de variável vetorial não suportado"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Não é possível modificar uma variável somente leitura"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "O lado direito não é uma expressão numérica"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Número esperado de elementos para preencher um vetor."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Número negativo de elementos especificado."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "O lado direito não é uma expressão booleana"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Tipo de variável escalar de saída não suportado"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Referência a uma variável vetorial de saída quando se espera um escalar"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Índice fora do intervalo"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Tipo de variável vetorial de saída não suportado"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "O símbolo já está definido no dicionário do sistema somente leitura"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "O símbolo já está definido como variável de saída do sistema"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "As variáveis globais não estão disponíveis neste contexto"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "O nome da variável já está definido no escopo local"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "O nome da variável já está definido no escopo global"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Não é possível atribuir um valor escalar a uma variável vetorial."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Não é possível atribuir um valor vetorial a uma variável escalar."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Não é possível criar uma variável vetorial a partir de uma lista de inicialização vazia, pois seu tipo não pode ser deduzido."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "O lado direito não é válido: mistura de tipos numéricos e booleanos."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Não é possível atribuir um escalar a um vetor"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Alguns elementos da variável vetorial de valores opcionais do lado direito estão indefinidos (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "O lado esquerdo é um vetor de float, enquanto o lado direito não é."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "O lado esquerdo é um vetor de int, enquanto o lado direito não é."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "O lado esquerdo é um vetor de string, enquanto o lado direito não é."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "O lado esquerdo é um vetor de bool, enquanto o lado direito não é."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Os vetores do lado esquerdo / lado direito não são compatíveis."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "A duplicação deste tipo de variável vetorial não é suportada"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "O parâmetro de empty() não é uma variável vetorial"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "O parâmetro de size() não é uma variável vetorial"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Não é permitido usar um índice não inteiro para acessar uma variável vetorial."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "O gerador de números aleatórios não está disponível neste contexto."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Erro de análise na linha %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Erro de análise na linha %1%. Esperava-se a tag %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Erro de análise na linha %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "O valor de interpolação deve ser um número."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "O valor X de um ponto da tabela deve ser um número."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "O valor Y de um ponto da tabela deve ser um número."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "As coordenadas X da tabela devem ser crescentes"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "O valor de interpolação está fora do intervalo da tabela"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Erro de sintaxe desconhecido"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Texto inválido."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Bloco de texto inválido."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Macro inválida."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Não é uma macro {if}{else}{endif}."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Não é uma macro {switch}."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Esperava-se um formato de expansão de variável legado"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Esperava-se um identificador."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Esperava-se uma expressão condicional."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Esperava-se uma expressão booleana."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Esperava-se uma expressão."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Esperava-se uma chave de fechamento ou um parâmetro opcional."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Esperava-se uma lista de padrões de string (texto simples ou regex)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Esperava-se uma referência de variável."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Esperava-se um nome de variável."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Esperava-se uma expressão regular."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Sequência utf8 inválida"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Caracteres não ASCII7 só são permitidos dentro de blocos de texto e literais de string, não dentro de blocos de código."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Sequência de escape inválida"
+
msgid "Support: generate contact points"
msgstr "Suporte: gerar pontos de contato"
@@ -19011,6 +21298,11 @@ msgstr "O arquivo fornecido não pôde ser lido porque está vazio."
msgid "The file format is incompatible and cannot be parsed."
msgstr "O formato do arquivo é incompatível e não pode ser processado."
+# AI Translated
+# Needs human review: 'asset' translated as 'arquivo' (macOS ModelIO import error); check it reads right for a 3D asset file.
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Falha ao converter o arquivo para STL via ModelIO."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Formato de arquivo desconhecido: o arquivo de entrada deve ter extensão .stl, .obj, .amf(.xml)."
@@ -19059,9 +21351,6 @@ msgstr "Recalibração"
msgid "Calibrate"
msgstr "Calibrar"
-msgid "Finish"
-msgstr "Terminar"
-
msgid "How can I use calibration results?"
msgstr "Como posso usar o resultado da calibração?"
@@ -19156,9 +21445,12 @@ msgstr ""
"Dentro da mesma extrusora, o nome (%s) deve ser único quando o tipo de filamento, o diâmetro do bico e o fluxo do bico forem os mesmos.\n"
"Tem certeza de que deseja sobrescrever o resultado histórico?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Este tipo de máquina só pode salvar %d resultados históricos por bico. Este resultado não será salvo."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Este tipo de máquina só pode manter %d resultado histórico por bico. Este resultado não será salvo."
+msgstr[1] "Este tipo de máquina só pode manter %d resultados históricos por bico. Este resultado não será salvo."
msgid "Connecting to printer..."
msgstr "Conectando à impressora…"
@@ -19265,20 +21557,17 @@ msgstr "material com significativa contração/expansão térmica, como…"
msgid "materials with inaccurate filament diameter"
msgstr "materiais com diâmetro de filamento impreciso"
-# AI Translated
#, boost-format
msgid "%1% Flow Rate Calibrated"
-msgstr "%1% Taxa de fluxo calibrada"
+msgstr "%1% Taxa de Fluxo Calibrada"
-# AI Translated
#, boost-format
msgid "%1% Temperature Calibrated"
-msgstr "%1% Temperatura calibrada"
+msgstr "%1% Temperatura Calibrada"
-# AI Translated
#, boost-format
msgid "%1% Max Vol Speed Calibrated"
-msgstr "%1% Vel. vol. máx. calibrada"
+msgstr "%1% Vel. Vol. Máx. Calibrada"
msgid "We found the best Flow Dynamics Calibration Factor"
msgstr "Encontramos o melhor Fator de Calibração de Dinâmica de Fluxo"
@@ -19380,9 +21669,13 @@ msgstr "Sincronizar informações de bico e AMS"
msgid "Please connect the printer first before synchronizing."
msgstr "Conecte a impressora antes de sincronizar."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "As informações do bico da impressora %s não foram configuradas. Configure-as antes de prosseguir com a calibração."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "As informações do bico direito da impressora não foram configuradas. Configure-as antes de prosseguir com a calibração."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "As informações do bico esquerdo da impressora não foram configuradas. Configure-as antes de prosseguir com a calibração."
msgid "AMS and nozzle information are synced"
msgstr "Informações de AMS e bico estão sincronizadas"
@@ -19445,6 +21738,11 @@ msgstr "Da Velocidade Volumétrica"
msgid "To Volumetric Speed"
msgstr "Para a Velocidade Volumétrica"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Passo"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Tem certeza de que deseja cancelar esta impressão?"
@@ -19470,9 +21768,12 @@ msgstr "Nota: O número do hotend no %s está vinculado ao suporte. Quando o hot
msgid "Action"
msgstr "Ação"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Este tipo de máquina só pode manter %d resultados históricos por bico."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Este tipo de máquina só pode manter %d resultado histórico por bico."
+msgstr[1] "Este tipo de máquina só pode manter %d resultados históricos por bico."
msgid "Edit Flow Dynamics Calibration"
msgstr "Editar Calibração de Dinâmica de Fluxo"
@@ -19597,12 +21898,13 @@ msgstr ""
"Os valores de aceleração devem ser maiores que os valores de velocidade.\n"
"Por favor, verifique as entradas."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Ainda não habilitado em impressoras de esteira — use o método Torre de PA."
+
msgid "Temperature calibration"
msgstr "Calibração de Temperatura"
-msgid "Filament type"
-msgstr "Tipo de Filamento"
-
msgid "PLA"
msgstr "PLA"
@@ -19624,6 +21926,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Modelo de teste"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Padrão"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Saliência"
+
msgid "Start temp: "
msgstr "Temp. inicial: "
@@ -19633,7 +21948,6 @@ msgstr "Temp. final: "
msgid "Temp step: "
msgstr "Passo de Temperatura: "
-# AI Translated
#. TRN %s is the temperature unit
#, c-format, boost-format
msgid "Supported range: 170%s - 500%s"
@@ -19741,9 +22055,6 @@ msgstr "Distância de Retração Inicial: "
msgid "End retraction length: "
msgstr "Distância de Retração Final: "
-msgid "Test model"
-msgstr "Modelo de teste"
-
msgid "Ringing Tower"
msgstr "Torre de Anéis"
@@ -19773,8 +22084,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Frequência (Inicial / Final): "
-msgid "Start / End"
-msgstr "Inicial / Final"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X Inicial / Final: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y Inicial / Final: "
msgid "Frequency settings"
msgstr "Configurações de frequência"
@@ -19811,8 +22127,13 @@ msgstr "Verifique compatibilidade de firmware."
msgid "Frequency: "
msgstr "Frequência: "
-msgid "Damp"
-msgstr "Amortecimento"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Frequência X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Amortecimento (Inicial / Final): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "O firmware RepRap usa a mesma frequência para ambos os eixos."
@@ -19936,9 +22257,12 @@ msgstr "Timelapse"
msgid "Enable IFS"
msgstr "Habilitar IFS"
+# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "Detectados %d espaços IFS na impressora."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "Detectado %d espaço IFS na impressora."
+msgstr[1] "Detectados %d espaços IFS na impressora."
msgid "This printer does not report a material station."
msgstr "Esta impressora não relata uma estação de material."
@@ -20023,7 +22347,6 @@ msgstr "Calibrar antes da impressão"
msgid "Filament Mapping:"
msgstr "Mapeamnto de Filamnto:"
-# AI Translated
#. TRN External spool slot, followed by its filament type
#, c-format, boost-format
msgid "Ext - %s"
@@ -20056,8 +22379,10 @@ msgstr "Subtrair de"
msgid "Subtract with"
msgstr "Subtrair com"
-msgid "selected"
-msgstr "selecionado"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 selecionado"
msgid "Part 1"
msgstr "Parte 1"
@@ -20104,23 +22429,19 @@ msgstr "Testar bing.com:"
msgid "Log Info"
msgstr "Informações do Registro"
-# AI Translated
#. TRN %s is the name of the tested website
#, c-format, boost-format
msgid "test %s start..."
msgstr "iniciando teste de %s..."
-# AI Translated
#, c-format, boost-format
msgid "test %s ip resolved = %s"
msgstr "teste de %s: IP resolvido = %s"
-# AI Translated
#, c-format, boost-format
msgid "test %s failed"
msgstr "teste de %s falhou"
-# AI Translated
#, c-format, boost-format
msgid "test %s ok"
msgstr "teste de %s ok"
@@ -20170,9 +22491,6 @@ msgstr "Ex.: Básico, Fosco, Seda, Mármore"
msgid "Filament Preset"
msgstr "Predefinição de Filamento"
-msgid "Create"
-msgstr "Criar"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "O fornecedor não está selecionado, por favor reselecione o fornecedor."
@@ -20479,6 +22797,10 @@ msgstr ""
"Predefinições de impressora e todos os filamentos e processos que pertencem à impressora.\n"
"Pode ser compartilhado com outros."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Incluir textura e modelo personalizados da mesa"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -20530,14 +22852,6 @@ msgstr "Nota: Se a única predefinição sob este filamento for excluída, o fil
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Predefinições herdadas por outras predefinições não podem ser excluídos"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "As seguintes predefinições herdam esta predefinição."
-msgstr[1] "A seguinte predefinição herda esta predefinição."
-
-msgid "Delete Preset"
-msgstr "Excluir Predefinição"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Tem certeza de que deseja excluir a predefinição selecionada?"
@@ -20614,10 +22928,12 @@ msgstr "O início, fim ou passo não é um valor válido."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "O número de extrusoras da impressora e a impressora selecionada para calibração não correspondem."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "O diâmetro do bico da extrusora %s é de 0,2mm, o que não permite a calibração automática da dinâmica de fluxo."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -20633,6 +22949,12 @@ msgstr ""
"O diâmetro do bico não corresponde ao diâmetro real do bico da impressora.\n"
"Clique no botão Sincronizar acima e reinicie a calibração."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "As informações do bico da impressora %s não foram configuradas. Configure-as antes de prosseguir com a calibração."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -20665,15 +22987,12 @@ msgstr "Sessão válida não detectada. Prosseguir com o login no 3DPrinterOS?"
msgid "Success!"
msgstr "Sucesso!"
-# AI Translated
msgid "Generate API Key"
msgstr "Gerar Chave da API"
-# AI Translated
msgid "API Key created. Go to the physical printer and hit \"authorize\" on the screen, then run \"Test\" again."
msgstr "Chave da API criada. Vá até a impressora física e toque em \"authorize\" (autorizar) na tela; depois execute \"Testar\" novamente."
-# AI Translated
msgid "API Key created."
msgstr "Chave da API criada."
@@ -20688,10 +23007,10 @@ msgstr "Substituir a aba do dispositivo do BambuLab pela webui do host de impres
#, c-format, boost-format
msgid "On this system, %s uses HTTPS certificates from the system Certificate Store or Keychain."
-msgstr "Neste sistema, %s usa certificados HTTPS da loja de certificados do sistema ou do Keychain."
+msgstr "Neste sistema, %s usa certificados HTTPS do Repositório de Certificados ou Chaveiro do sistema."
msgid "To use a custom CA file, please import your CA file into Certificate Store / Keychain."
-msgstr "Para usar um arquivo CA personalizado, importe seu arquivo CA para a loja de certificados / Keychain."
+msgstr "Para usar um arquivo CA personalizado, importe seu arquivo CA para o Repositório de Certificados / Chaveiro."
msgid "Login/Test"
msgstr "Login/Teste"
@@ -20703,9 +23022,13 @@ msgid "Detect Creality K-series printer"
msgstr "Detectar impressora Creality da série K"
msgid "Click Scan to look for K-series printers on your network."
-msgstr "Clique para buscar impressora Creality da série K na sua rede."
+msgstr "Clique em Buscar para procurar impressoras Creality da série K na sua rede."
# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Modelo"
+
msgid "Scan"
msgstr "Buscar"
@@ -20715,16 +23038,18 @@ msgstr "Usar Selecionada"
msgid "Scanning the LAN for K-series printers... this takes a few seconds."
msgstr "Buscando impressoras série K na rede… isso leva alguns segundos."
-# AI Translated
msgid "(unknown K-series)"
msgstr "(série K desconhecida)"
msgid "No K-series printers found. Make sure the printer is on the same network and not blocked by Wi-Fi client isolation, then click Scan again."
msgstr "Nenhuma impressora série K encontrada. Certifique-se de que a impressora está na mesma rede e não está bloqueada por isolamento de clientes Wi-Fi, então clique novamente em Buscar."
+# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "%zu impressora(s) Creality encontrada(s). Selecione um e clique em Usar Selecionada."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "%zu impressora Creality encontrada. Selecione-a e clique em Usar Selecionada."
+msgstr[1] "%zu impressoras Creality encontradas. Selecione uma e clique em Usar Selecionada."
msgid "Active"
msgstr "Ativa"
@@ -20813,13 +23138,17 @@ msgstr "Falha ao determinar o caminho do executável."
msgid "Failed to launch a new instance."
msgstr "Falha ao iniciar uma nova instância."
-msgid "log(s)"
-msgstr "log(s)"
+# AI Translated
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d log (%.2f %s)"
+msgstr[1] "%d logs (%.2f %s)"
msgid "Choose where to save the exported JSON file"
msgstr "Escolha onde salvar o arquivo JSON exportado"
-# AI Translated
msgid "JSON files (*.json)|*.json"
msgstr "Arquivos JSON (*.json)|*.json"
@@ -20857,15 +23186,35 @@ msgstr "Tipo de impressora não encontrado, selecione manualmente."
msgid "Authorizing..."
msgstr "Autorizando…"
-msgid "Error. Can't get API token for authorization"
-msgstr "Erro. Não foi possível obter o token de API para autorização"
+# AI Translated
+msgid "Maximum login retries exceeded"
+msgstr "Número máximo de tentativas de login excedido"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "Erro HTTP: %1%"
msgid "Could not parse server response."
msgstr "Não foi possível processar a resposta do servidor."
+msgid "Error. Can't get API token for authorization"
+msgstr "Erro. Não foi possível obter o token de API para autorização"
+
msgid "Error saving session to file"
msgstr "Erro salvando sessão para arquivo"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "A conexão com a nuvem do 3DPrinterOS funciona corretamente."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Conectado como usuário: %1%"
+
msgid "Error session check"
msgstr "Erro na verificação de sessão"
@@ -20900,6 +23249,42 @@ msgstr "Senha incorreta"
msgid "Could not get resources to create a new connection"
msgstr "Não foi possível obter recursos para criar uma nova conexão"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "A conexão com o UltiMaker funciona corretamente."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Não foi possível conectar ao UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Erro ao gerar credenciais! Consulte o log para obter detalhes."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "ERRO: o ID ou a KEY está vazio. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Usuário: %1% Senha: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "As credenciais de autenticação aguardam aprovação. Aprove o acesso por meio da caixa de diálogo na tela da impressora."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Credenciais de autenticação inválidas"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Erro: Nenhuma credencial de autenticação encontrada!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Upload não ativado no cartão FlashAir."
@@ -21013,6 +23398,14 @@ msgstr ""
"Corpo da Mensagem: \"%1%\"\n"
"Error: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "A conexão com o ESP3D funciona corretamente."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Não foi possível conectar ao ESP3D"
+
msgid "No AMS"
msgstr "Nenhum AMS"
@@ -21084,6 +23477,11 @@ msgstr "O número máximo de impressoras que podem ser selecionadas é %d"
msgid "No task"
msgstr "Nenhuma tarefa"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Visualizar"
+
msgid "Edit Printers"
msgstr "Editar impressoras"
@@ -21093,7 +23491,6 @@ msgstr "Nome da tarefa"
msgid "Actions"
msgstr "Ações"
-# AI Translated
#. TRN Button that jumps to the page number typed next to it
msgid "Go"
msgstr "Ir"
@@ -21125,6 +23522,12 @@ msgstr "Falha na Impressão"
msgid "Printing Pause"
msgstr "Pausa de Impressão"
+# AI Translated
+# Needs human review: Printer device status list in the multi-machine view (Idle, Printing, Prepare...); check the gerund reads right next to the other statuses.
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Preparando"
+
msgid "Pending"
msgstr "Pendente"
@@ -21155,9 +23558,6 @@ msgstr "Ativar atribuição inteligente de filamento: Atribui um filamento a vá
msgid "File Saving"
msgstr "Salvamento de Arquivo"
-msgid "Don't remind me again"
-msgstr "Não me avise novamente"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Nenhuma outra janela pop-up será exibida. Você pode reabri-la em 'Preferências'."
@@ -21182,15 +23582,24 @@ msgstr "Atribuir manualmente o filamento ao bico esquerdo ou direito"
msgid "Global settings"
msgstr "Definições globais"
-msgid "Video tutorial"
-msgstr "Tutorial em vídeo"
-
msgid "(Sync with printer)"
msgstr "(Sinc. com impressora)"
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Erro: a extrusora %s não tem nenhum bico %s disponível, o resultado do grupo atual é inválido."
+# AI Translated
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Erro: a extrusora esquerda não tem nenhum bico Padrão disponível, o resultado do grupo atual é inválido."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Erro: a extrusora esquerda não tem nenhum bico Alto Fluxo disponível, o resultado do grupo atual é inválido."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Erro: a extrusora direita não tem nenhum bico Padrão disponível, o resultado do grupo atual é inválido."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Erro: a extrusora direita não tem nenhum bico Alto Fluxo disponível, o resultado do grupo atual é inválido."
msgid "We will slice according to this grouping method:"
msgstr "Vamos fatiar de acordo com este método de agrupamento:"
@@ -21207,7 +23616,6 @@ msgstr " para definir o número de bicos"
msgid "Set the physical nozzle count..."
msgstr "Definir o número de bicos físicos…"
-# AI Translated
#, c-format, boost-format
msgid "(Std: %d, HF: %d)"
msgstr "(Pad.: %d, AF: %d)"
@@ -21230,15 +23638,22 @@ msgstr "Não foi possível conectar ao SimplyPrint"
msgid "Internal error"
msgstr "Erro interno"
-msgid "Unknown error"
-msgstr "Erro desconhecido"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "Conta SimplyPrint não vinculada. Vá para as opções de conexão para configurá-la."
msgid "Flashforge returned an invalid JSON response."
msgstr "O Flashforge retonou uma resposta JSON inválida."
+# AI Translated
+msgid "Request failed"
+msgstr "Falha na solicitação"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Erro %1% da API local da Flashforge: %2%"
+
msgid "No Flashforge printers were discovered on the local network."
msgstr "Nenhuma impressora Flashforge foi descoberta na rede local."
@@ -21384,8 +23799,12 @@ msgstr "Aviso: O tipo de borda não estiver definido como \"pintada\", as orelha
msgid "Set the brim type of this object to \"painted\""
msgstr "Definir o tipo de borda deste objeto como \"pintada\""
-msgid "invalid brim ears"
-msgstr "orelhas da borda iválidas"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d orelha da borda inválida"
+msgstr[1] "%d orelhas da borda inválidas"
msgid "Brim Ears"
msgstr "Orelhas da Borda"
@@ -21411,6 +23830,7 @@ msgstr "Falha ao carregar ignorando as informações dos objetos. Tente novament
msgid "Failed to create the temporary folder."
msgstr "Falha ao criar pasta temporária."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Selecionados"
@@ -21430,9 +23850,12 @@ msgstr "Ignorando todos os objetos."
msgid "The printing job will be stopped. Continue?"
msgstr "O trabalho de impressão será interrompido. Continuar?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Ignorando %d objetos."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "Ignorando %d objeto."
+msgstr[1] "Ignorando %d objetos."
msgid "This action cannot be undone. Continue?"
msgstr "Esta ação não pode ser desfeita. Continuar?"
@@ -21574,6 +23997,43 @@ msgstr "Se ativado, os valores acima são armazenados como os padrões usados pa
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Exportar Predefinições"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Mostrar na pasta"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Excluir pacote"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Cancelar inscrição do pacote"
+
+# AI Translated
+msgid "Update available"
+msgstr "Atualização disponível"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Pacote não autorizado"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Abrir este pacote no seu navegador"
+
+# AI Translated
+# Needs human review: Shared label: the type of a preset bundle (Preset Bundle dialog) and the source of a plugin (Plugins dialog); check the masculine singular fits both columns.
+msgid "Subscribed"
+msgstr "Inscrito"
+
+# AI Translated
+msgid "Local"
+msgstr "Local"
+
msgid "Bundle folder does not exist."
msgstr "A pasta do pacote não existe."
@@ -21607,10 +24067,17 @@ msgstr "Cancelar inscrição do Pacote"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Exportar para o OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Exportar para pasta"
+
msgid "Save preset bundle"
msgstr "Salvar pacote de predefinições"
-# AI Translated
msgid "Orca Preset Bundle (*.orca_bundle)|*.orca_bundle"
msgstr "Pacote de predefinições Orca (*.orca_bundle)|*.orca_bundle"
@@ -21692,6 +24159,11 @@ msgstr "Controle de Secura do AMS"
msgid "Filament Drying Settings"
msgstr "Configurações de Secagem de Filamento"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "h"
+
msgid "Stopping"
msgstr "Parando"
@@ -21827,6 +24299,11 @@ msgstr "Iniciando: Verificando a entrada de ar"
msgid "Starting: Checking air vent"
msgstr "Iniciando: Verificando a saída de ar"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Não foi possível criar o diretório %1%"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "O filamento pode não ser compatível com as configurações atuais da máquina. Serão usadas predefinições genéricas de filamento."
@@ -21842,6 +24319,105 @@ msgstr "O filamento pode não ser compatível com as configurações atuais da m
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "O modelo do filamento é desconhecido. Uma predefinição de filamento aleatória será usada."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Arquivo de configuração desconhecido: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Arquivo de configuração inválido: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "espaço %1% -> espaço %2%: filamento misto"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "definição de filamento misto: limite de espaços de filamento atingido"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "limite de espaços de filamento atingido"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "o limite de filamentos da impressora é %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "espaço %1% -> espaço %2%: filamento misto não atribuído (o limite de filamentos da impressora é %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "espaço %1%: filamento misto não atribuído (o limite de filamentos da impressora é %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "espaço %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "espaço %1%: não foi possível importar a definição de filamento misto"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "precisa de pelo menos dois componentes"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "os componentes referenciam espaços ausentes"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "definição de filamento misto: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "espaço %1%: não foi possível importar a definição de filamento misto (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "espaço %1%: %2% -> %3% (substituto)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Falha ao carregar o arquivo de configuração %1%\n"
+"Sugere-se limpar o diretório %2% primeiro"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Versão de configuração do fornecedor %1% inválida: %2%\n"
+"Sugere-se limpar o diretório %3% primeiro"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Falha ao carregar o arquivo de configuração %1%: %2%\n"
+"Sugere-se limpar o diretório %3% primeiro"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Ocultar planos e eixos de referência"
@@ -22153,11 +24729,15 @@ msgstr "Nenhum corpo de superfície para espessar — crie primeiro um recurso d
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Referência / Curva (plano / eixo / sist. coord. / hélice / projeção)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Plano"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Plano de referência (deslocamento / inclinado / plano médio / tangente / duas arestas / coincidente)"
-# AI Translated
msgid "Axis"
msgstr "Eixo"
@@ -22219,6 +24799,11 @@ msgstr "Mover e/ou rotacionar um corpo existente"
msgid "Transform needs a body — add or import one first"
msgstr "A transformação precisa de um corpo — adicione ou importe um primeiro"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Espelhar"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Refletir um corpo em relação a um plano"
@@ -22311,6 +24896,11 @@ msgstr "(nenhum)"
msgid "Hole / thread"
msgstr "Furo / rosca"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Furo"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Fazer um furo, centralizado em uma face selecionada ou colocado em um plano"
@@ -22355,6 +24945,11 @@ msgstr "Clique em 2 pontos ou em uma linha / círculo / arco para colocar uma co
msgid "Line / polyline"
msgstr "Linha / polilinha"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Linha"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Clique no início e depois no fim — depois defina o comprimento exato"
@@ -22491,6 +25086,9 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Clique nos pontos de controle; clique duplo, clique com o botão direito ou Enter para terminar"
+msgid "Point"
+msgstr "Ponto"
+
# AI Translated
msgid "Click to place a point"
msgstr "Clique para colocar um ponto"
@@ -22609,16 +25207,17 @@ msgstr "Selecione entidades, arraste a alça de ângulo e clique na quantidade;
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Clique no centro e depois em um vértice — %d lados, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Clique no centro e depois em um vértice — %d lado, circunscrito"
+msgstr[1] "Clique no centro e depois em um vértice — %d lados, circunscrito"
# AI Translated
-msgid "circumscribed"
-msgstr "circunscrito"
-
-# AI Translated
-msgid "inscribed"
-msgstr "inscrito"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Clique no centro e depois em um vértice — %d lado, inscrito"
+msgstr[1] "Clique no centro e depois em um vértice — %d lados, inscrito"
# AI Translated
msgid "Polygon"
@@ -22903,17 +25502,14 @@ msgstr "Arestas"
msgid "Size (r/dist)"
msgstr "Tamanho (r/dist)"
-# AI Translated
msgctxt "Axis"
msgid "XY"
msgstr "XY"
-# AI Translated
msgctxt "Axis"
msgid "XZ"
msgstr "XZ"
-# AI Translated
msgctxt "Axis"
msgid "YZ"
msgstr "YZ"
@@ -22948,6 +25544,12 @@ msgstr "Na face"
msgid "Thread plane"
msgstr "Plano da rosca"
+# AI Translated
+# Needs human review: Thread dropdown in the Design tab ('Standard' = thread standard such as ISO metric); 'Norma' chosen over 'Padrão'; check the sense.
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Norma"
+
# AI Translated
msgid "Pitch"
msgstr "Passo"
@@ -23134,6 +25736,9 @@ msgstr "Selecione uma face sólida para abri-la e depois defina a espessura da p
msgid "(pick a side face)"
msgstr "(selecione uma face lateral)"
+msgid "Face"
+msgstr "Face"
+
# AI Translated
msgid "Draft"
msgstr "Inclinação"
@@ -23407,9 +26012,8 @@ msgstr "Expressão"
msgid "Field"
msgstr "Campo"
-# AI Translated
msgid "Expr"
-msgstr "Expr."
+msgstr "Expr"
# AI Translated
msgid "(no bindings)"
@@ -23511,8 +26115,10 @@ msgstr "Esboço atualizado"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Esboço criado (%zu cotas motrizes) — selecione-o e clique com o botão direito para extrudar"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Esboço criado (%zu cota motriz) — selecione-o e clique com o botão direito para extrudar"
+msgstr[1] "Esboço criado (%zu cotas motrizes) — selecione-o e clique com o botão direito para extrudar"
# AI Translated
#, c-format, boost-format
@@ -23649,8 +26255,10 @@ msgstr "Editando: Esboço %d · N = olhar normal ao plano · Confirmar o
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — %zu triângulos"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — %zu triângulo"
+msgstr[1] "OK — %zu triângulos"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -23736,10 +26344,18 @@ msgstr "A malha não contém triângulos"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Esta malha tem %d triângulo. Cada triângulo se torna uma face B-rep antes da mesclagem de faces coplanares, então importá-la pode levar muito tempo e deixar um corpo lento para editar. Geralmente é melhor decimar a malha primeiro.\n"
+"\n"
+"Importar mesmo assim?"
+msgstr[1] ""
"Esta malha tem %d triângulos. Cada triângulo se torna uma face B-rep antes da mesclagem de faces coplanares, então importá-la pode levar muito tempo e deixar um corpo lento para editar. Geralmente é melhor decimar a malha primeiro.\n"
"\n"
"Importar mesmo assim?"
@@ -23768,8 +26384,8 @@ msgstr "Falha ao importar a malha: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Sólido importado — %d triângulos → %d faces, volume %.2f mm³. Selecione uma face ou aresta e depois Filete / Cortar / Casca para modificar"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Sólido importado — triângulos: %d → faces: %d, volume %.2f mm³. Selecione uma face ou aresta e depois Filete / Cortar / Casca para modificar"
# AI Translated
#, c-format, boost-format
@@ -23786,8 +26402,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s adicionado ao esboço — confirme para aplicá-lo"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — arraste para colocar/dimensionar e depois confirme"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — arraste para colocar/dimensionar e depois confirme"
# AI Translated
msgid "Insert canceled"
@@ -23994,9 +26612,12 @@ msgid "a geometry operation failed"
msgstr "uma operação geométrica falhou"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d selecionado(s)"
+msgid_plural " · %d picked"
+msgstr[0] " · %d selecionado"
+msgstr[1] " · %d selecionados"
# AI Translated
#, c-format, boost-format
@@ -24012,7 +26633,9 @@ msgstr "Selecionar — clique em uma entidade para selecioná-la · arraste um
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d selecionado(s) · agora escolha uma restrição (Horizontal, Paralelo, Tangente, Igual…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d selecionado · agora escolha uma restrição (Horizontal, Paralelo, Tangente, Igual…)"
+msgstr[1] "%d selecionados · agora escolha uma restrição (Horizontal, Paralelo, Tangente, Igual…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -24273,7 +26896,9 @@ msgstr "Espelhar — eixo definido · agora clique nas entidades a espelhar
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Espelhar — eixo definido · %d a espelhar · clique em outra para adicioná-la ou removê-la · Enter aplica"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Espelhar — eixo definido · %d a espelhar · clique em outra para adicioná-la ou removê-la · Enter aplica"
+msgstr[1] "Espelhar — eixo definido · %d a espelhar · clique em outra para adicioná-la ou removê-la · Enter aplica"
# AI Translated
msgid "Move — click the entities to move"
@@ -24396,8 +27021,10 @@ msgstr "Ponto de esboço"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d entidades de esboço"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d entidade de esboço"
+msgstr[1] "%d entidades de esboço"
msgid "select something first"
msgstr "selecione algo antes"
@@ -24415,11 +27042,9 @@ msgstr "Fixo"
msgid "Revolute"
msgstr "De revolução"
-# AI Translated
msgid "Slider"
-msgstr "Deslizante"
+msgstr "Controle Deslizante"
-# AI Translated
msgid "Cylindrical"
msgstr "Cilíndrico"
@@ -24598,89 +27223,68 @@ msgstr "recurso %d"
msgid "Deleted %s, the feature this body was made from — Ctrl+Z restores it"
msgstr "Recurso excluído: %s, aquele a partir do qual este corpo foi criado — Ctrl+Z o restaura"
-# AI Translated
msgid "Select the FEATURE that created this body (or use New Design)"
msgstr "Selecione o RECURSO que criou este corpo (ou use Novo design)"
-# AI Translated
msgid "Select a feature in the tree first"
-msgstr "Selecione primeiro um recurso na árvore"
+msgstr "Selecione um recurso na árvore primeiro"
-# AI Translated
#, c-format, boost-format
msgid "Body %d shown"
msgstr "Corpo %d exibido"
-# AI Translated
#, c-format, boost-format
msgid "Body %d hidden"
msgstr "Corpo %d oculto"
-# AI Translated
msgid "Feature shown"
msgstr "Recurso exibido"
-# AI Translated
msgid "Feature hidden"
msgstr "Recurso oculto"
-# AI Translated
msgid "Draw a sketch first, then Constrain"
-msgstr "Desenhe primeiro um esboço e depois use Restringir"
+msgstr "Desenhe um esboço primeiro e depois use Restringir"
-# AI Translated
msgid "Select a sketch in the tree first"
-msgstr "Selecione primeiro um esboço na árvore"
+msgstr "Selecione um esboço na árvore primeiro"
-# AI Translated
msgid "Selected feature is not a sketch"
msgstr "O recurso selecionado não é um esboço"
-# AI Translated
msgid "Pick 1-2 lines, then a constraint; right-click exits"
msgstr "Selecione 1-2 linhas e depois uma restrição; clique com o botão direito para sair"
-# AI Translated
msgid "Pick 1-2 entities, then a constraint or dimension; right-click exits"
msgstr "Selecione 1-2 entidades e depois uma restrição ou cota; clique com o botão direito para sair"
-# AI Translated
msgid "Pick an entity first"
-msgstr "Selecione primeiro uma entidade"
+msgstr "Selecione uma entidade primeiro"
-# AI Translated
msgid "Pick two entities first"
-msgstr "Selecione primeiro duas entidades"
+msgstr "Selecione duas entidades primeiro"
-# AI Translated
msgid "Horizontal and Vertical apply to a line"
msgstr "Horizontal e Vertical se aplicam a uma linha"
-# AI Translated
msgid "Angle applies between two lines"
msgstr "Ângulo se aplica entre duas linhas"
-# AI Translated
msgid "Collinear needs two lines"
msgstr "Colinear precisa de duas linhas"
-# AI Translated
msgid "Parallel, perpendicular and equal length apply to two lines"
msgstr "Paralelo, perpendicular e comprimento igual se aplicam a duas linhas"
-# AI Translated
msgid "Equal radius needs two circles or arcs"
-msgstr "Raio igual precisa de dois círculos ou arcos"
+msgstr "Mesmo raio precisa de dois círculos ou arcos"
-# AI Translated
msgid "Concentric needs two circles or arcs"
msgstr "Concêntrico precisa de dois círculos ou arcos"
-# AI Translated
msgid "Tangent needs a line and a circle/arc, or two circles/arcs"
msgstr "Tangente precisa de uma linha e um círculo/arco, ou de dois círculos/arcos"
-# AI Translated
msgid "This constraint needs two entities with a point to join"
msgstr "Esta restrição precisa de duas entidades com um ponto para unir"
@@ -24688,37 +27292,29 @@ msgstr "Esta restrição precisa de duas entidades com um ponto para unir"
msgid "This dimension needs two entities with a point to measure between"
msgstr "Esta cota precisa de duas entidades com pontos entre os quais medir"
-# AI Translated
msgid "Midpoint needs a point and a line"
msgstr "Ponto médio precisa de um ponto e uma linha"
-# AI Translated
msgid "Symmetric needs two points or two lines + an axis"
msgstr "Simétrico precisa de dois pontos ou duas linhas + um eixo"
-# AI Translated
msgid "Symmetric needs two points or two lines"
msgstr "Simétrico precisa de dois pontos ou duas linhas"
-# AI Translated
msgid "Symmetric: pick two entities, then an axis line"
msgstr "Simétrico: selecione duas entidades e depois uma linha de eixo"
-# AI Translated
msgid "Radius/Diameter needs a circle or arc"
msgstr "Raio/Diâmetro precisa de um círculo ou arco"
-# AI Translated
msgid "Unsupported constraint"
msgstr "Restrição não suportada"
-# AI Translated
msgid "Constraint rejected (over-constrained)"
-msgstr "Restrição rejeitada (esboço superrestrito)"
+msgstr "Restrição rejeitada (restrito demais)"
-# AI Translated
msgid "Applied constraint · its badge is on the sketch — click the badge to remove it"
-msgstr "Restrição aplicada · o ícone dela está no esboço — clique no ícone para removê-la"
+msgstr "Restrição aplicada · o distintivo dela está no esboço — clique no distintivo para removê-la"
# AI Translated
#, c-format, boost-format
@@ -24727,26 +27323,21 @@ msgid_plural "%s — %d selected. Press Esc for the Select tool, click one lin
msgstr[0] "%s — %d selecionado. Pressione Esc para a ferramenta Selecionar, clique em uma linha e depois Shift+clique ou Ctrl+clique na outra."
msgstr[1] "%s — %d selecionados. Pressione Esc para a ferramenta Selecionar, clique em uma linha e depois Shift+clique ou Ctrl+clique na outra."
-# AI Translated
msgid "Applied constraint"
msgstr "Restrição aplicada"
-# AI Translated
#. TRN Design sketch: abbreviation of "center", appended to a point tag such as "L3·Ctr"
msgid "·Ctr"
-msgstr "·Ctr"
+msgstr "·Cntr"
-# AI Translated
#, c-format, boost-format
msgid "Fix %s"
msgstr "Fixar %s"
-# AI Translated
#, c-format, boost-format
msgid "Lock X %s"
msgstr "Travar X %s"
-# AI Translated
#, c-format, boost-format
msgid "Lock Y %s"
msgstr "Travar Y %s"
@@ -24755,71 +27346,55 @@ msgctxt "Sketch Constraint"
msgid "Equal"
msgstr "Igual"
-# AI Translated
#, c-format, boost-format
msgid "Symmetric %s — %s / %s"
msgstr "Simétrico %s — %s / %s"
-# AI Translated
#, c-format, boost-format
msgid "Symmetric about Y axis %s — %s"
msgstr "Simétrico em relação ao eixo Y %s — %s"
-# AI Translated
#, c-format, boost-format
msgid "Symmetric about X axis %s — %s"
msgstr "Simétrico em relação ao eixo X %s — %s"
-# AI Translated
msgid "On line"
msgstr "Na linha"
-# AI Translated
msgid "On edge"
msgstr "Na aresta"
-# AI Translated
msgid "Constraint"
msgstr "Restrição"
-# AI Translated
#, c-format, boost-format
msgid "Constraints (%d)"
msgstr "Restrições (%d)"
-# AI Translated
msgid "No constraints yet"
msgstr "Nenhuma restrição ainda"
-# AI Translated
msgid "Delete constraint"
msgstr "Excluir restrição"
-# AI Translated
msgid "Constraint deleted"
msgstr "Restrição excluída"
-# AI Translated
msgid "Press Constrain on a sketch first"
msgstr "Pressione Restringir em um esboço primeiro"
-# AI Translated
msgid "Pick the entity, then a mirror-axis line"
msgstr "Selecione a entidade e depois uma linha de eixo de espelhamento"
-# AI Translated
msgid "Mirror axis must be a line"
msgstr "O eixo de espelhamento deve ser uma linha"
-# AI Translated
msgid "Mirror produced nothing"
msgstr "O espelhamento não produziu nada"
-# AI Translated
msgid "Offset distance (+left / -right of direction)"
msgstr "Distância de deslocamento (+esquerda / -direita da direção)"
-# AI Translated
msgid "Offset collapsed the entity"
msgstr "O deslocamento colapsou a entidade"
@@ -24839,19 +27414,15 @@ msgstr "Raio do filete"
msgid "Fillet failed (parallel lines or radius too large)"
msgstr "Falha no filete (linhas paralelas ou raio grande demais)"
-# AI Translated
msgid "Pick two lines to chamfer"
msgstr "Selecione duas linhas para o chanfro"
-# AI Translated
msgid "Chamfer needs two lines"
msgstr "O chanfro precisa de duas linhas"
-# AI Translated
msgid "Chamfer distance"
msgstr "Distância do chanfro"
-# AI Translated
msgid "Chamfer failed (parallel lines or distance too large)"
msgstr "Falha no chanfro (linhas paralelas ou distância grande demais)"
@@ -24932,8 +27503,10 @@ msgid "Applied edit"
msgstr "Edição aplicada"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — digite um valor e pressione Enter (ou Confirmar)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — digite um valor e pressione Enter (ou Confirmar)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -25005,10 +27578,23 @@ msgstr "Enviar para a placa — enviar o sólido para Preparar"
msgid "Nothing to commit — add a feature first"
msgstr "Nada para enviar à placa — adicione um recurso primeiro"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Corpo de Design %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Todos os corpos estão ocultos — mostre um antes de enviar à placa"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Montagem de Design"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Corpo de Design"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -25075,8 +27661,10 @@ msgstr "Inválido: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Pré-visualização — %zu triângulos"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Pré-visualização — %zu triângulo"
+msgstr[1] "Pré-visualização — %zu triângulos"
# AI Translated
#, c-format, boost-format
@@ -25178,8 +27766,10 @@ msgstr "Essa cota não pode ser satisfeita — o esboço está superrestrito"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "Restrições ignoradas por não poderem atuar sobre esta geometria (uma elipse ou curva spline, ou um círculo de tamanho zero): %1%"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% restrição não pode atuar sobre esta geometria (uma elipse ou curva spline, ou um círculo de tamanho zero) e é ignorada"
+msgstr[1] "%1% restrições não podem atuar sobre esta geometria (uma elipse ou curva spline, ou um círculo de tamanho zero) e são ignoradas"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -25237,8 +27827,10 @@ msgstr "Chanfro: a distância excede o comprimento de um dos lados, ou as duas l
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "Restrições invalidadas pelo filete/chanfro e removidas: %1%"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "%1% restrição invalidada pelo filete/chanfro foi removida"
+msgstr[1] "%1% restrições invalidadas pelo filete/chanfro foram removidas"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -25258,8 +27850,10 @@ msgstr "O número de cópias deve ser um número inteiro, 2 ou mais"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "Restrições liberadas pela transformação: %1%"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "%1% restrição liberada pela transformação"
+msgstr[1] "%1% restrições liberadas pela transformação"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -25345,30 +27939,24 @@ msgctxt "Design"
msgid "Loft"
msgstr "Loft"
-# AI Translated
msgctxt "Design"
msgid "Thicken"
msgstr "Espessar"
-# AI Translated
msgctxt "Design"
msgid "Join"
msgstr "Unir"
-# AI Translated
msgid "Fuse the tool body into the target — one solid, no seam"
-msgstr "Fundir o corpo da ferramenta ao alvo — um único sólido, sem emenda"
+msgstr "Fundir o corpo da ferramenta ao alvo — um único sólido, sem costura"
-# AI Translated
msgctxt "Design"
msgid "Subtract"
msgstr "Subtrair"
-# AI Translated
msgid "Cut the tool body out of the target"
msgstr "Recortar o corpo da ferramenta do alvo"
-# AI Translated
msgctxt "Design"
msgid "Intersect"
msgstr "Intersectar"
@@ -25410,11 +27998,6 @@ msgstr "Espessar superfície"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "O espessamento de superfície precisa de um corpo de superfície — crie um primeiro com uma ferramenta de superfície"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Furo"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -25499,11 +28082,6 @@ msgstr "Padrão circular"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Repetir o corpo em torno de um eixo — defina a quantidade e o ângulo"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Espelhar"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -25540,11 +28118,6 @@ msgstr "O alinhamento precisa de um corpo — adicione ou importe um primeiro"
msgid "Align the body to a picked face or plane"
msgstr "Alinhar o corpo a uma face ou plano selecionado"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Plano"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -25649,11 +28222,6 @@ msgstr "Excluir corpo"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Excluir este corpo inteiro — remove o recurso que o criou"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Linha"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -25968,214 +28536,6 @@ msgstr "Esta fonte não tem contorno para este texto"
msgid "Size: %.1f × %.1f mm"
msgstr "Tamanho: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Primitivo"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Malha vazia gerada"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Caixa"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Rápido:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Largura (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Profundidade (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Altura (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "R inferior"
-
-# AI Translated
-msgid "Top R"
-msgstr "R superior"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "R maior"
-
-# AI Translated
-msgid "Minor R"
-msgstr "R menor"
-
-# AI Translated
-msgid "All edges"
-msgstr "Todas as arestas"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Arestas superiores"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Arestas inferiores"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Arestas laterais"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Resolução da malha"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Adicionar forma"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Nenhum perfil externo"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Falha ao criar a face externa"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Falha ao construir a face com furos"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Falha na revolução"
-
-# AI Translated
-msgid "Profile"
-msgstr "Perfil"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Iniciar novo perfil (para furos)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segmentos"
-
-# AI Translated
-msgid "Sides"
-msgstr "Lados"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Clique na tela para desenhar"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Ajustar à grade"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Passo da grade"
-
-# AI Translated
-msgid "Outer"
-msgstr "Externo"
-
-# AI Translated
-msgid "closed"
-msgstr "fechado"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% pontos %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (Topo)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (Frente)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (Lateral)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Revolução (graus)"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "Defina como 0 para extrusão, >0 para revolução"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Cavidade (corte)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu perfil fechado"
-msgstr[1] "%zu perfis fechados"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Desenhe um perfil fechado para ativar"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Limpar tudo"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Resultado vazio"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Extrusão: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Revolução: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Nenhum objeto selecionado"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Falha na face"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Falha na face com furos"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Malha da ferramenta vazia"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Cavidade adicionada (volume negativo)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Cavidade: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -26291,6 +28651,10 @@ msgstr "Gizmo montar"
msgid "Gizmo brim ears"
msgstr "Gizmo orelhas da borda"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Gizmo pintura de deslocamento de textura"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Controle deslizante vertical - Mover o polegar ativo para cima"
@@ -26304,10 +28668,10 @@ msgid "Horizontal slider - Move active thumb Right"
msgstr "Controle deslizante horizontal - Mover o polegar ativo para a direita"
msgid "Horizontal slider - Move to start position"
-msgstr "Barra deslizante horizontal — Mover para a posição inicial"
+msgstr "Controle deslizante horizontal — Mover para a posição inicial"
msgid "Horizontal slider - Move to last position"
-msgstr "Barra deslizante horizontal — Mover para a última posição"
+msgstr "Controle deslizante horizontal — Mover para a última posição"
msgid "Camera view - Default"
msgstr "Vista da câmera - Padrão"
@@ -26523,6 +28887,12 @@ msgstr "precisa de uma face cilíndrica nos dois lados — o conector %1% está
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "precisa de uma face cilíndrica nos dois lados — o conector %1% está em uma face curva"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (plano de base ausente)"
+
# AI Translated
msgid "two points are coincident"
msgstr "dois pontos são coincidentes"
@@ -26551,10 +28921,31 @@ msgstr "os planos são paralelos (sem interseção)"
msgid "zero-length direction"
msgstr "direção de comprimento zero"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "um recurso atua sobre o corpo %1%, que não existe nesse ponto do histórico"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "\"%1%\" atua sobre um corpo criado por um recurso que foi excluído ou ocultado"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "\"%1%\" atua sobre um corpo que não existe nesse ponto do histórico"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "o recurso é usado por um recurso posterior"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "\"%1%\" usa \"%2%\", portanto não pode vir antes dele"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "as entidades do esboço não formam um laço fechado"
@@ -26565,9 +28956,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Abertura em (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...e mais %1% extremidade(s) aberta(s)"
+msgid "Open ends not shown: %1%"
+msgstr "Extremidades abertas não exibidas: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "revolução: a linha do eixo não está mais no esboço — selecione o eixo novamente"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "revolução: a linha do eixo não tem comprimento"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -26715,6 +29115,30 @@ msgstr "falha no contorno do furo"
msgid "hole cut failed"
msgstr "falha no corte do furo"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "rosca: o diâmetro deve ser de pelo menos 1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "rosca: o passo deve ser maior que 0,1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "rosca: a profundidade deve estar entre 0 e 0,7 x o passo"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "rosca: a profundidade é grande demais para este diâmetro"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "rosca: o comprimento deve ser maior que meio passo"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "rosca: voltas demais (comprimento / passo deve ficar abaixo de 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "a rosca interna precisa de um corpo"
@@ -26775,6 +29199,22 @@ msgstr "falha na exclusão de face"
msgid "delete_face produced no geometry"
msgstr "a exclusão de face não produziu geometria"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "booleana: nenhum corpo alvo"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "booleana: nenhum corpo da ferramenta — selecione um segundo corpo"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "booleana: o alvo e a ferramenta são o mesmo corpo"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "booleana: um corpo não tem geometria"
+
# AI Translated
msgid "boolean operation failed"
msgstr "falha na operação booleana"
@@ -27103,6 +29543,10 @@ msgstr "Imagens do Modelo"
msgid "Auxiliaries"
msgstr "Auxiliares"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Torre de Purga da Esteira"
+
# AI Translated
msgid "Project Filament List"
msgstr "Lista de Filamentos do Projeto"
@@ -27137,8 +29581,18 @@ msgstr "São necessários pelo menos dois filamentos do mesmo tipo de material p
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "A lista de materiais suporta no máximo %1% cores. Após a decomposição de %2%, a quantidade de materiais excederia %1%. Exclua os filamentos não utilizados na tela principal antes de decompor."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "A lista de materiais suporta no máximo %1% cor. Após a decomposição da Lista de Materiais, a quantidade de materiais excederia %1%. Exclua os filamentos não utilizados na tela principal antes de decompor."
+msgstr[1] "A lista de materiais suporta no máximo %1% cores. Após a decomposição da Lista de Materiais, a quantidade de materiais excederia %1%. Exclua os filamentos não utilizados na tela principal antes de decompor."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "A lista de materiais suporta no máximo %1% cor. Após a decomposição de %2%, a quantidade de materiais excederia %1%. Exclua os filamentos não utilizados na tela principal antes de decompor."
+msgstr[1] "A lista de materiais suporta no máximo %1% cores. Após a decomposição de %2%, a quantidade de materiais excederia %1%. Exclua os filamentos não utilizados na tela principal antes de decompor."
# AI Translated
msgid "Cyan"
@@ -27168,6 +29622,14 @@ msgstr "Verde"
msgid "Blue"
msgstr "Azul"
+# AI Translated
+# Needs human review: Reordered to filament type then color (e.g. 'PLA Basic Ciano') as Portuguese adjectives follow the noun; check it reads right in the color list.
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%2% %1%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -27175,7 +29637,1235 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "A lista de filamentos atual não contém %s. Um filamento do projeto exigido pelo filamento misto será criado automaticamente após a decomposição."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "A lista de filamentos atual não contém %s. Um filamento do projeto exigido pelo filamento misto será criado automaticamente após a decomposição."
+msgstr[1] "A lista de filamentos atual não contém %s. Os filamentos do projeto exigidos pelo filamento misto serão criados automaticamente após a decomposição."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Opacidade"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -27271,10 +30961,6 @@ msgstr "Minhas configurações"
msgid "Custom Printer Setup"
msgstr "Configuração de Impressora Personalizada"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Impressora Personalizada"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Definir um perfil de impressora personalizado"
@@ -27526,23 +31212,27 @@ msgstr "*Dicas: se você mudou a posição do carretel na máquina, feche esta p
msgid "Summary: This is currently the most suitable position for placement."
msgstr "Resumo: esta é atualmente a posição mais adequada para o posicionamento."
-# AI Translated
msgid "?"
msgstr "?"
-# AI Translated
msgid "Wiki->"
msgstr "Wiki->"
-# AI Translated
msgid "Note:"
-msgstr "Observação:"
+msgstr "Nota:"
-# AI Translated
msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Assar"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Digitar um valor exato em um controle deslizante"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Ícone de edição na extremidade direita de um controle deslizante"
+
# AI Translated
msgid "Texture displacement"
msgstr "Deslocamento de textura"
@@ -27557,11 +31247,11 @@ msgstr "Pintar deslocamento de textura"
# AI Translated
msgid "Mark texture seam"
-msgstr "Marcar emenda da textura"
+msgstr "Marcar costura da textura"
# AI Translated
msgid "Mark texture seam path"
-msgstr "Marcar caminho de emenda da textura"
+msgstr "Marcar caminho de costura da textura"
# AI Translated
#, boost-format
@@ -27576,7 +31266,6 @@ msgstr "Escala média das ilhas"
msgid "Select an island in the UV editor first."
msgstr "Selecione primeiro uma ilha no editor UV."
-# AI Translated
msgid "Cut texture island"
msgstr "Cortar ilha da textura"
@@ -27584,31 +31273,24 @@ msgstr "Cortar ilha da textura"
msgid "This island has no neighbour it shares an edge with."
msgstr "Esta ilha não tem nenhuma vizinha com a qual compartilhe uma aresta."
-# AI Translated
msgid "Join texture island"
msgstr "Unir ilha da textura"
-# AI Translated
msgid "Unjoin texture island"
msgstr "Desunir ilha da textura"
-# AI Translated
msgid "Clear texture seams"
-msgstr "Limpar emendas da textura"
+msgstr "Limpar costuras da textura"
-# AI Translated
msgid "Clear texture UV edits"
msgstr "Limpar edições UV da textura"
-# AI Translated
msgid "Apply texture projection frame"
msgstr "Aplicar moldura de projeção da textura"
-# AI Translated
msgid "Move texture island"
msgstr "Mover ilha da textura"
-# AI Translated
msgid "Edit texture UV"
msgstr "Editar UV da textura"
@@ -27636,29 +31318,23 @@ msgstr "Imagens (*.png;*.jpg;*.jpeg;*.bmp)|*.png;*.jpg;*.jpeg;*.bmp"
msgid "Choose a texture image (height map)"
msgstr "Escolha uma imagem de textura (mapa de altura)"
-# AI Translated
msgid "Choose a texture"
msgstr "Escolha uma textura"
-# AI Translated
msgid "Remove from My textures"
msgstr "Remover de Minhas texturas"
-# AI Translated
msgid "Built-in"
msgstr "Integradas"
-# AI Translated
msgid "No textures found."
msgstr "Nenhuma textura encontrada."
-# AI Translated
msgid "My textures"
msgstr "Minhas texturas"
-# AI Translated
msgid "Import your own image as a height map. It is converted to the format the slicer bakes from and saved to your personal texture folder, kept separate from the textures shipped with OrcaSlicer."
-msgstr "Importe sua própria imagem como mapa de altura. Ela é convertida para o formato a partir do qual o fatiador assa e salva na sua pasta pessoal de texturas, separada das texturas fornecidas com o OrcaSlicer."
+msgstr "Importe sua própria imagem como mapa de altura. Ela é convertida para o formato a partir do qual o fatiador assa e salva na sua pasta pessoal de texturas, mantida separada das texturas fornecidas com o OrcaSlicer."
# AI Translated
msgid "PNG, JPG or BMP - converted to a height map on import. Hover one of yours to remove it."
@@ -27679,6 +31355,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Remover textura"
+# AI Translated
+msgid "Adjust image"
+msgstr "Ajustar imagem"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Brilho"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Contraste"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Nitidez"
+
+# AI Translated
+msgid "Blur"
+msgstr "Desfoque"
+
+# AI Translated
+msgid "Hue"
+msgstr "Matiz"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Realça os menores detalhes da imagem. É aplicada depois do Desfoque, então os dois podem ser usados juntos: desfoque o granulado e, em seguida, aumente a nitidez das bordas que restarem."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Desfoca a própria imagem. O controle deslizante Suavização da camada atenua o relevo sem alterar a imagem e é o que se deve usar primeiro."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Esta textura está em tons de cinza, então não há matiz para deslocar."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "O modelo é atualizado quando você solta o controle deslizante. Salvar como cópia grava a imagem ajustada na sua biblioteca de texturas e faz esta camada apontar para ela."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Salvar como cópia"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Remover camada de deslocamento de textura"
@@ -27719,111 +31439,93 @@ msgstr "Pinte primeiro a área que deseja suavizar - a suavização só afeta a
msgid "Nothing to smooth - the painted area is only one triangle deep, so with \"Ignore outer ring\" on there are no interior vertices to relax."
msgstr "Nada a suavizar - a área pintada tem apenas um triângulo de profundidade, então, com \"Ignorar anel externo\" ativado, não há vértices internos para relaxar."
-# AI Translated
msgid "Smooth texture displacement"
msgstr "Suavizar deslocamento de textura"
-# AI Translated
msgid "Remesh model for texture displacement"
msgstr "Remalhar modelo para deslocamento de textura"
-# AI Translated
msgid "Remeshing did not change the model. It may be non-manifold (open edges or edges shared by more than two triangles), or the target edge length may already be met."
msgstr "O remalhamento não alterou o modelo. Ele pode ser não-manifold (arestas abertas ou arestas compartilhadas por mais de dois triângulos), ou o comprimento de aresta alvo pode já ter sido atingido."
-# AI Translated
msgid "Nothing is painted, there is nothing to bake."
msgstr "Nada está pintado, não há nada para assar."
-# AI Translated
msgid "Bake texture displacement"
msgstr "Assar deslocamento de textura"
-# AI Translated
msgid "Nothing is painted, so there are no bake stages to capture."
msgstr "Nada está pintado, então não há etapas de assamento para capturar."
-# AI Translated
msgid "Bake stages (debug)"
msgstr "Etapas do assamento (depuração)"
-# AI Translated
msgid "Capturing..."
msgstr "Capturando..."
-# AI Translated
msgid "Capture stages"
msgstr "Capturar etapas"
-# AI Translated
msgid "Run the same bake the Bake button runs, keeping the mesh after every stage, and step through them here. Nothing is committed to the model - this is for finding which stage a bad result came from."
msgstr "Executa o mesmo assamento que o botão Assar executa, mantendo a malha após cada etapa, e permite percorrê-las aqui. Nada é aplicado ao modelo - serve para descobrir de qual etapa veio um resultado ruim."
-# AI Translated
msgid "Check topology"
msgstr "Verificar topologia"
-# AI Translated
msgid "Count open and non-manifold edges after each stage, which is how a stage that tore the mesh is spotted. It scans every edge, so it adds noticeably to the capture on a fine bake."
msgstr "Conta as arestas abertas e não-manifold após cada etapa, que é como se identifica uma etapa que rasgou a malha. Analisa todas as arestas, então aumenta consideravelmente a captura em um assamento fino."
-# AI Translated
msgid "< Previous"
msgstr "< Anterior"
-# AI Translated
msgid "Next >"
msgstr "Próximo >"
-# AI Translated
msgid "triangles"
msgstr "triângulos"
-# AI Translated
msgid "vertices"
msgstr "vértices"
-# AI Translated
msgid "Open edges"
msgstr "Arestas abertas"
-# AI Translated
msgid "Non-manifold"
msgstr "Não-manifold"
-# AI Translated
msgid "Degenerate"
msgstr "Degenerados"
-# AI Translated
msgid "Write stage meshes"
msgstr "Gravar malhas das etapas"
-# AI Translated
msgid "Wrote the stage meshes as OBJ files to:"
msgstr "As malhas das etapas foram gravadas como arquivos OBJ em:"
-# AI Translated
msgid "Could not write the stage meshes."
msgstr "Não foi possível gravar as malhas das etapas."
-# AI Translated
msgid "Write every captured stage out as an OBJ file, so they can be opened side by side in a mesh viewer."
msgstr "Grava cada etapa capturada como um arquivo OBJ, para que possam ser abertas lado a lado em um visualizador de malhas."
-# AI Translated
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "A área pintada não pôde ser transferida para o modelo remalhado, então nada foi alterado. Mude para o modo Pro e remalhe antes de pintar."
# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Intervalo: %1% a %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Digite um valor em vez de arrastar. Ctrl+clique no controle deslizante faz o mesmo."
+
msgid "Pro"
msgstr "Pro"
-# AI Translated
msgid "Standard - pick a texture, paint where it goes, press Bake. Everything the mesh needs is done for you in that one step."
msgstr "Padrão - escolha uma textura, pinte onde ela vai e pressione Assar. Tudo o que a malha precisa é feito por você nessa única etapa."
-# AI Translated
msgid "Pro - the mesh preparation is yours to run: Remesh, Subdivide and Bake as separate steps, with every setting on show. For when Standard's result is not what you wanted and you know why."
msgstr "Pro - a preparação da malha fica por sua conta: Remalhar, Subdividir e Assar como etapas separadas, com todas as configurações à mostra. Para quando o resultado do Padrão não é o que você queria e você sabe por quê."
@@ -27864,7 +31566,6 @@ msgstr "Pincel - pinte sobre a superfície arrastando"
msgid "Face - click individual triangles"
msgstr "Face - clique em triângulos individuais"
-# AI Translated
msgid "Connected area"
msgstr "Área conectada"
@@ -27872,7 +31573,6 @@ msgstr "Área conectada"
msgid "Connected area - flood-fill the region reachable without crossing an edge sharper than the angle threshold"
msgstr "Área conectada - preenche a região alcançável sem cruzar uma aresta mais acentuada que o limiar de ângulo"
-# AI Translated
msgid "Wait for the bake to finish."
msgstr "Aguarde o assamento terminar."
@@ -27916,15 +31616,13 @@ msgstr "Esfera - pinta apenas dentro de uma esfera ao redor do ponto sob o curso
msgid "Angle threshold - the fill stops at edges sharper than this"
msgstr "Limiar de ângulo - o preenchimento para em arestas mais acentuadas que isto"
-# AI Translated
msgid "Click a triangle to paint it"
msgstr "Clique em um triângulo para pintá-lo"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Requer a camada ativa mapeada com Desdobrar (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Somente para uma camada mapeada com Desdobrar (LSCM) - defina o Mapeamento da camada ativa como Desdobrar para usar esta visualização."
-# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
msgstr "Normal - a geometria real, exatamente o que Assar vai produzir. Atualiza mais devagar"
@@ -27932,21 +31630,19 @@ msgstr "Normal - a geometria real, exatamente o que Assar vai produzir. Atualiza
msgid "Fast - the relief is only shaded on, not built, and only for the layer you are editing. Updates instantly while you paint"
msgstr "Rápido - o relevo é apenas sombreado, não construído, e só para a camada que você está editando. Atualiza instantaneamente enquanto você pinta"
-# AI Translated
msgid "Checker"
msgstr "Xadrez"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Xadrez - uma grade de teste no lugar da textura. Onde os quadrados continuam quadrados, a textura não está distorcida; onde eles esticam, ela também vai esticar"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Xadrez - uma grade de teste no lugar da textura. Onde os quadrados continuam quadrados, a textura não está distorcida; onde eles se esticam, ela também se esticará. Abre o editor UV se ele estiver fechado"
-# AI Translated
msgid "Distortion"
msgstr "Distorção"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Distorção - mapa de calor de estiramento, de azul a vermelho, sobre o desdobramento"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Distorção - mapa de calor de estiramento, de azul a vermelho, sobre o desdobramento. Abre o editor UV se ele estiver fechado"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -27956,7 +31652,6 @@ msgstr "Malha - sobrepõe as arestas da malha; independente da vista acima"
msgid "Rebuilds the preview as soon as anything changes. Turn it off on a heavy model if painting or dragging a slider starts to stutter - the preview then waits until you let go."
msgstr "Reconstrói a pré-visualização assim que algo muda. Desative em um modelo pesado se pintar ou arrastar um controle deslizante começar a travar - a pré-visualização então espera até você soltar."
-# AI Translated
msgid "Texture layers"
msgstr "Camadas de textura"
@@ -27972,6 +31667,10 @@ msgstr "Escolha outra imagem para esta camada. A pintura, a profundidade e o lad
msgid "not painted"
msgstr "sem pintura"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Brilho, contraste, nitidez, desfoque e matiz, mostrados na imagem e no modelo conforme você os ajusta. Salvar como cópia grava o resultado na sua biblioteca de texturas e faz esta camada apontar para ele."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Mover para cima - aplicada antes"
@@ -27992,10 +31691,20 @@ msgstr "Altura do relevo: quanto o branco da textura eleva a superfície, em mil
msgid "Tile size"
msgstr "Tamanho do ladrilho"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Mapeada pelo layout UV do próprio modelo, que já é o posicionamento - uma cópia da textura o cobre exatamente, então não há tamanho do ladrilho a definir."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Largura de uma cópia da textura no modelo. Valores menores repetem o padrão mais vezes e deixam seus detalhes mais finos; com Ladrilho desativado, este é o tamanho da cópia única."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Gira a textura na superfície, em graus - para alinhar um padrão com uma aresta do modelo."
@@ -28063,55 +31772,56 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Intercala dois filamentos para simular as cores intermediárias, de modo que poucos filamentos consigam cobrir uma foto ou um gradiente. Uma imagem de cores chapadas é impressa da mesma forma em ambos os casos. Desativado, usa um filamento por área."
# AI Translated
-msgid "Mix by"
-msgstr "Misturar por"
+msgid "Mixed colors"
+msgstr "Cores mistas"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Superfície"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "O número máximo de filamentos mistos que um assamento pode adicionar. Eles são escolhidos a partir das cores da textura, e somente os que o assamento realmente usa são criados."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Camadas: os dois filamentos se alternam entre as camadas de impressão, o que mistura suavemente em superfícies verticais, mas desaparece nas horizontais, onde uma camada inteira é uma única faixa.\n"
-"Superfície: um xadrez fino sobre a superfície, que funciona em qualquer ângulo, mas pode parecer textura em vez de mistura.\n"
-"Automático: camadas nas faces verticais; as faces horizontais recebem o filamento único mais próximo, já que ali um xadrez aparece como padrão."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% cores imprimíveis a partir de %2% filamentos"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "a partir de %1% filamento"
+msgstr[1] "a partir de %1% filamentos"
# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% cor imprimível %2%"
+msgstr[1] "%1% cores imprimíveis %2%"
+
msgid "Denoise"
-msgstr "Reduzir ruído"
+msgstr "Reduzir Ruído"
# AI Translated
msgid "Cleans up single stray triangles of the wrong color, which detail finer than the mesh leaves behind. Raise it if the result looks speckled, lower it if small features are being swallowed."
msgstr "Remove triângulos isolados com a cor errada, deixados por detalhes mais finos que a malha. Aumente se o resultado parecer salpicado; diminua se pequenos detalhes estiverem sendo engolidos."
-# AI Translated
msgctxt "Texture Displacement"
msgid "Mapping"
msgstr "Mapeamento"
-# AI Translated
msgid "Triplanar (blended)"
msgstr "Triplanar (mesclado)"
-# AI Translated
msgid "Triplanar - projects the texture from all three axes at once and blends between them, so a patch wrapping around a sharp edge has no seam."
-msgstr "Triplanar - projeta a textura a partir dos três eixos ao mesmo tempo e mescla entre eles, de modo que uma área que envolve uma aresta viva não tenha emenda."
+msgstr "Triplanar - projeta a textura a partir dos três eixos ao mesmo tempo e mescla entre eles, de modo que uma área que envolve uma aresta viva não tenha costura."
# AI Translated
msgid "Cylindrical - wraps the texture around the painted area's own center, for round shapes."
msgstr "Cilíndrico - envolve a textura ao redor do próprio centro da área pintada, para formas redondas."
-# AI Translated
msgid "Spherical"
msgstr "Esférico"
@@ -28119,15 +31829,12 @@ msgstr "Esférico"
msgid "Spherical - wraps the texture around the painted area's own center in both directions."
msgstr "Esférico - envolve a textura ao redor do próprio centro da área pintada, nas duas direções."
-# AI Translated
msgid "Unwrap (LSCM)"
msgstr "Desdobrar (LSCM)"
-# AI Translated
msgid "Unwrap - flattens the painted area and maps the texture onto it with as little stretching as possible. The area is cut into pieces at its sharp edges first (see Seam angle), so each piece can lie flat on its own."
-msgstr "Desdobrar - achata a área pintada e mapeia a textura sobre ela com o mínimo de estiramento possível. Primeiro a área é cortada em pedaços nas suas arestas vivas (veja Ângulo de emenda), para que cada pedaço possa ficar plano por conta própria."
+msgstr "Desdobrar - achata a área pintada e mapeia a textura sobre ela com o mínimo de estiramento possível. Primeiro a área é cortada em pedaços nas suas arestas vivas (veja Ângulo de costura), para que cada pedaço possa ficar plano por conta própria."
-# AI Translated
msgid "From view"
msgstr "Da vista"
@@ -28136,12 +31843,23 @@ msgid "From view - projects straight onto the painted area from where you are lo
msgstr "Da vista - projeta diretamente sobre a área pintada a partir de onde você está olhando, como um projetor de slides."
# AI Translated
+msgid "Model UV"
+msgstr "UV do modelo"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "UV do modelo - usa as coordenadas de textura que o próprio modelo trouxe, então uma textura feita para esse modelo cai exatamente onde foi pintada. Nada é desdobrado, e o tamanho do ladrilho não se aplica: o layout do próprio modelo é o posicionamento."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Este modelo não tem coordenadas de textura próprias. Apenas um modelo importado com um canal UV - um OBJ texturizado, por exemplo - pode ser mapeado por elas."
+
msgid "Open UV editor"
msgstr "Abrir editor UV"
# AI Translated
msgid "Opens the UV editor, where you can see how the texture is laid out over the painted area, cut seams and move the pieces around."
-msgstr "Abre o editor UV, onde você vê como a textura está distribuída sobre a área pintada, corta emendas e move os pedaços."
+msgstr "Abre o editor UV, onde você vê como a textura está distribuída sobre a área pintada, corta costuras e move os pedaços."
# AI Translated
msgid "Not unwrapped yet"
@@ -28149,8 +31867,10 @@ msgstr "Ainda não desdobrado"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% ilhas"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% ilha"
+msgstr[1] "%1% ilhas"
# AI Translated
msgid "Capture current view"
@@ -28180,10 +31900,6 @@ msgstr "Moldura de projeção"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Abre uma janela que você arrasta sobre o modelo. O que você vê através dela é o que recebe a textura, e sua borda se torna o limite da projeção."
-# AI Translated
-msgid "Opacity"
-msgstr "Opacidade"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Quão sólida a janela da moldura parece enquanto você a posiciona. Diminua para ver o modelo através dela; não afeta o resultado."
@@ -28237,6 +31953,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Adicionar"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Substituir"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -28256,8 +31977,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "A camada base não tem nada abaixo com que se combinar, então sempre adiciona."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "O que esta camada faz onde se sobrepõe às de baixo. Adicionar e Subtrair acumulam relevo ou o retiram. Multiplicar e Dividir escalam o que está embaixo, o que transforma esta camada em uma máscara sobre ele - ali, Profundidade age como intensidade, e 1 mm deixa as áreas brancas intactas."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "O que esta camada faz onde se sobrepõe às de baixo. Adicionar e Subtrair acumulam relevo ou o retiram. Substituir as substitui, de modo que apenas o relevo desta camada permanece onde ela é pintada. Multiplicar e Dividir escalam o que está embaixo, o que transforma esta camada em uma máscara sobre ele - ali, Profundidade age como intensidade, e 1 mm deixa as áreas brancas intactas."
# AI Translated
msgid "Adjust placement"
@@ -28281,8 +32002,10 @@ msgstr "Mais configurações"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Todas as %1% camadas usadas"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Toda a camada usada (%1%)"
+msgstr[1] "Todas as %1% camadas usadas"
# AI Translated
msgid "Add layer"
@@ -28308,9 +32031,8 @@ msgstr "Seguir detalhes da textura"
msgid "Spends the triangles where the texture actually bends - packed along ridges and edges, sparse over flat ground - instead of spreading them evenly. The same detail for fewer triangles on most textures."
msgstr "Gasta os triângulos onde a textura realmente se curva - concentrados ao longo de cristas e arestas, esparsos em áreas planas - em vez de distribuí-los uniformemente. O mesmo detalhe com menos triângulos na maioria das texturas."
-# AI Translated
msgid "Max edge"
-msgstr "Aresta máx."
+msgstr "Aresta máx"
# AI Translated
msgid "Target edge"
@@ -28332,9 +32054,8 @@ msgstr "Detalhe"
msgid "How far the mesh may sit from the shape the texture describes, in millimetres. Smaller follows fine detail and costs triangles; larger only chases the big features."
msgstr "Quanto a malha pode se afastar da forma descrita pela textura, em milímetros. Menor segue detalhes finos e custa triângulos; maior só acompanha as formas grandes."
-# AI Translated
msgid "Min edge"
-msgstr "Aresta mín."
+msgstr "Aresta mín"
# AI Translated
msgid "A floor on triangle size, so a sharp step in the texture cannot be chased forever. Lower it for finer relief, raise it if the count runs away at hard edges."
@@ -28362,8 +32083,10 @@ msgstr "Orçamento de triângulos: defina em Triângulos, abaixo."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Pré-visualização: %1% triângulos"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Pré-visualização: %1% triângulo"
+msgstr[1] "Pré-visualização: %1% triângulos"
# AI Translated
msgid "Steps"
@@ -28385,19 +32108,15 @@ msgstr "Pré-visualizar subdivisão"
msgid "Shows what the refinement would produce as a wireframe, without touching the model."
msgstr "Mostra o que o refinamento produziria como malha, sem alterar o modelo."
-# AI Translated
msgid "Subdivide"
msgstr "Subdividir"
-# AI Translated
msgid "Refines the painted area to the target edge length and carries your paint onto the finer mesh. The rest of the model is left as it is."
msgstr "Refina a área pintada até o comprimento de aresta alvo e transfere sua pintura para a malha mais fina. O restante do modelo fica como está."
-# AI Translated
msgid "Replaces the model's geometry with the subdivided mesh and clears any not-yet-baked paint on it (already-baked relief is unaffected)."
msgstr "Substitui a geometria do modelo pela malha subdividida e limpa qualquer pintura ainda não assada nela (o relevo já assado não é afetado)."
-# AI Translated
msgid "Remeshing"
msgstr "Remalhamento"
@@ -28405,23 +32124,24 @@ msgstr "Remalhamento"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Tamanho dos triângulos com que o modelo inteiro é reconstruído, em milímetros. O deslocamento funciona melhor em uma malha uniforme; isto cria uma a partir de uma importação irregular."
-# AI Translated
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
msgid "Keep sharp edges"
msgstr "Manter arestas vivas"
-# AI Translated
msgid "Holds hard edges and open borders in place while the rest is remeshed. Without it the remesher slides vertices along the surface and rounds every crisp edge off - a cube comes back with wobbly edges."
-msgstr "Mantém arestas vivas e bordas abertas no lugar enquanto o restante é remalhado. Sem isso, o remalhador desliza os vértices ao longo da superfície e arredonda toda aresta nítida - um cubo volta com arestas onduladas."
+msgstr "Mantém arestas vivas e bordas abertas fixas enquanto o restante remalhado. Sem isso, o remalhador desliza os vértices ao longo da superfície e arredonda todas as arestas nítidas - um cubo voltaria com arestas onduladas."
-# AI Translated
msgid "How sharp a fold has to be, in degrees, before the remesher treats it as an edge worth keeping. Lower protects more of the model's shape; higher rebuilds more of it evenly."
-msgstr "Quão acentuada uma dobra precisa ser, em graus, para que o remalhador a trate como uma aresta a ser mantida. Menor protege mais da forma do modelo; maior reconstrói mais dele de forma uniforme."
+msgstr "Quão acentuada uma dobra precisa ser, em graus, para que o remalhador a trate como uma aresta a ser mantida. Menor protege mais da forma do modelo; maior reconstrói mais dele uniformemente."
-# AI Translated
msgid "Remesh"
msgstr "Remalhar"
-# AI Translated
msgid "Rebuilds the whole model with triangles close to this edge length - splitting the big ones and merging the small ones - so displacement has an even density to work with. Replaces the geometry; your paint is carried onto the new triangles spatially, so it survives (already-baked relief is kept too)."
msgstr "Reconstrói o modelo inteiro com triângulos próximos deste comprimento de aresta - dividindo os grandes e mesclando os pequenos - para que o deslocamento tenha uma densidade uniforme para trabalhar. Substitui a geometria; sua pintura é transferida espacialmente para os novos triângulos, então ela sobrevive (o relevo já assado também é mantido)."
@@ -28466,19 +32186,15 @@ msgstr "Ignorar anel externo"
msgid "Keeps the outer ring of the painted area out of the smoothing. Its neighbours outside the paint never move, so smoothing it drags the relief down and leaves the pattern half-melted at the border."
msgstr "Mantém o anel externo da área pintada fora da suavização. Seus vizinhos fora da pintura nunca se movem, então suavizá-lo puxa o relevo para baixo e deixa o padrão meio derretido na borda."
-# AI Translated
msgid "Smooth baked mesh now"
msgstr "Suavizar malha assada agora"
-# AI Translated
msgid "Applies the smoothing above to the model itself, right now, within the painted area. For relief that is already baked in - anything not yet baked is smoothed by Bake."
msgstr "Aplica a suavização acima ao próprio modelo, agora mesmo, dentro da área pintada. Para relevo que já foi assado - o que ainda não foi assado é suavizado por Assar."
-# AI Translated
msgid "Experimental: classic bake pipeline"
msgstr "Experimental: pipeline de assamento clássico"
-# AI Translated
msgid "Bake by moving the vertices the mesh already has, after preparing it (remesh, adaptive subdivision, and a cut along sharp steps in the texture). Keeps the topology, which is what colors need. The default pipeline instead refines, cleans up sliver triangles, displaces and simplifies in one run; nothing needs preparing first, but it does not produce colors yet."
msgstr "Assa movendo os vértices que a malha já tem, depois de prepará-la (remalhamento, subdivisão adaptativa e um corte ao longo dos degraus bruscos da textura). Mantém a topologia, que é o que as cores precisam. O pipeline padrão, em vez disso, refina, limpa triângulos estreitos, desloca e simplifica de uma só vez; nada precisa ser preparado antes, mas ainda não produz cores."
@@ -28492,9 +32208,8 @@ msgstr "Orçamento"
msgid "%d k (auto)"
msgstr "%d k (automático)"
-# AI Translated
msgid "How many thousand triangles this bake may spend on the area you painted. Relief already baked into the rest of the model is kept on top of it, so a second bake somewhere else gets the same budget as the first. Raise it if the warning below Resolution says the detail will not fit; 0 keeps every triangle the refinement produced, however many that is."
-msgstr "Quantos milhares de triângulos este assamento pode gastar na área que você pintou. O relevo já assado no restante do modelo é mantido além disso, então um segundo assamento em outro lugar recebe o mesmo orçamento que o primeiro. Aumente se o aviso abaixo de Resolução disser que o detalhe não cabe; 0 mantém todos os triângulos que o refinamento produziu, quantos forem."
+msgstr "Quantos milhares de triângulos este assamento pode gastar na área que você pintou. O relevo já assado no restante do modelo é mantido além disso, então um segundo assamento em outro lugar recebe o mesmo orçamento que o primeiro. Aumente se o aviso abaixo de Resolução disser que o detalhe não cabe; 0 preserva todos os triângulos produzidos pelo refinamento, independentemente de quantos sejam."
# AI Translated
msgid "Align mesh to texture edges"
@@ -28526,19 +32241,35 @@ msgstr "%.2f mm (automático)"
msgid "Chosen from the size of the model: %1$.2f mm triangles, budget %2% k. Untick Auto to set them yourself."
msgstr "Escolhido pelo tamanho do modelo: triângulos de %1$.2f mm, orçamento de %2% k. Desmarque Auto para defini-los você mesmo."
-# AI Translated
msgid "How fine the mesh is made under the paint, in millimetres. It has to be smaller than the detail you want out of the texture - a 0.5 mm groove needs triangles well under 0.5 mm. Smaller costs triangles fast: halving it needs four times as many, and once they no longer fit the budget the bake simplifies back down and the detail goes with it."
-msgstr "Quão fina a malha fica sob a pintura, em milímetros. Precisa ser menor que o detalhe que você quer tirar da textura - um sulco de 0,5 mm precisa de triângulos bem abaixo de 0,5 mm. Menor custa triângulos rapidamente: reduzir pela metade exige quatro vezes mais, e quando eles não cabem mais no orçamento, o assamento simplifica de volta e o detalhe vai junto."
+msgstr "Quão fina a malha fica sob a pintura, em milímetros. Precisa ser menor que o detalhe que você quer tirar da textura - um sulco de 0,5 mm precisa de triângulos bem abaixo de 0,5 mm. Menor custa triângulos rapidamente: reduzir pela metade exige quatro vezes mais e quando eles não cabem mais no orçamento o assamento simplifica de volta e o detalhe vai junto."
-# AI Translated
#, boost-format
msgid "Needs about %1% triangles, budget %2% - the bake will simplify back down and lose detail."
msgstr "Precisa de cerca de %1% triângulos, orçamento de %2% - o assamento vai simplificar de volta e perder detalhes."
-# AI Translated
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Quantos milhares de triângulos o refinamento pode adicionar ao modelo. O triângulo que se ajusta pior é sempre dividido primeiro, então mesmo uma execução que gaste tudo terá gasto onde mais aparece. Aumente se o relevo ainda parecer grosseiro."
+# AI Translated
+msgid "Preparing..."
+msgstr "Preparando..."
+
+msgid "Baking..."
+msgstr "Assando..."
+
+msgid "Nothing is painted yet. The UV editor's seam tool is on, so strokes on the model mark seams instead of painting - turn it off in the pane to paint."
+msgstr "Nada foi pintado ainda. A ferramenta de costura do editor UV está ativa, então os traços no modelo marcam costuras em vez de pintar - desative-a no painel para pintar."
+
+msgid "Nothing is painted yet."
+msgstr "Nada foi pintado ainda."
+
+msgid "Turn the painted height maps into real geometry, by moving the vertices that are already there. Use Subdivide first if the mesh is too coarse to show the detail."
+msgstr "Transforma os mapas de altura pintados em geometria real, movendo os vértices que já existem. Use Subdividir antes se a malha for grosseira demais para mostrar o detalhe."
+
+msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
+msgstr "Transforma os mapas de altura pintados em geometria real. A malha é remalhada para uma densidade uniforme e refinada onde a textura se curva primeiro, para que o detalhe tenha vértices onde cair - tudo em uma etapa."
+
# AI Translated
msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
msgstr "Interrompe o assamento. O que já tiver sido concluído permanece no modelo e pode ser desfeito."
@@ -28547,59 +32278,47 @@ msgstr "Interrompe o assamento. O que já tiver sido concluído permanece no mod
msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
msgstr "Fecha a ferramenta sem assar. Sua pintura, camadas e configurações permanecem com o modelo."
-# AI Translated
-msgid "Preparing..."
-msgstr "Preparando..."
-
-# AI Translated
-msgid "Baking..."
-msgstr "Assando..."
-
-# AI Translated
-msgid "Nothing is painted yet. The UV editor's seam tool is on, so strokes on the model mark seams instead of painting - turn it off in the pane to paint."
-msgstr "Nada foi pintado ainda. A ferramenta de emenda do editor UV está ativa, então os traços no modelo marcam emendas em vez de pintar - desative-a no painel para pintar."
-
-# AI Translated
-msgid "Nothing is painted yet."
-msgstr "Nada foi pintado ainda."
-
-# AI Translated
-msgid "Turn the painted height maps into real geometry, by moving the vertices that are already there. Use Subdivide first if the mesh is too coarse to show the detail."
-msgstr "Transforma os mapas de altura pintados em geometria real, movendo os vértices que já existem. Use Subdividir antes se a malha for grosseira demais para mostrar o detalhe."
-
-# AI Translated
-msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
-msgstr "Transforma os mapas de altura pintados em geometria real. Primeiro a malha é remalhada para uma densidade uniforme e refinada onde a textura se curva, para que o detalhe tenha vértices onde cair - tudo em uma etapa."
-
-# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Modelo: %1% triângulos - o assamento refina até a resolução acima, dentro do seu orçamento"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Modelo: %1% triângulo - o assamento refina até a resolução acima, dentro do seu orçamento"
+msgstr[1] "Modelo: %1% triângulos - o assamento refina até a resolução acima, dentro do seu orçamento"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Assar move os vértices existentes - o modelo continua com %1% triângulo"
+msgstr[1] "Assar move os vértices existentes - o modelo continua com %1% triângulos"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Assar move os vértices existentes - o modelo continua com %1% triângulos"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Resultado do assamento até ~%1% k triângulo"
+msgstr[1] "Resultado do assamento até ~%1% k triângulos"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Resultado do assamento até ~%1% k triângulos"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% camadas sem pintura ignoradas"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% camada sem pintura ignorada"
+msgstr[1] "%1% camadas sem pintura ignoradas"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "ignorando %1% (sem pintura)"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% sem pintura, ignorada"
+msgstr[1] "%1% sem pintura, ignoradas"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -28613,43 +32332,37 @@ msgstr "Saindo da pintura de deslocamento de textura"
msgid "Texture displacement editing"
msgstr "Edição de deslocamento de textura"
-# AI Translated
msgid "Choose SLA archive:"
msgstr "Escolha o arquivo SLA:"
# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "Arquivos SL1 / SL1S"
+
msgid "Import file"
msgstr "Importar arquivo"
-# AI Translated
msgid "Import model and profile"
msgstr "Importar modelo e perfil"
-# AI Translated
msgid "Import profile only"
msgstr "Importar apenas o perfil"
-# AI Translated
msgid "Import model only"
msgstr "Importar apenas o modelo"
-# AI Translated
msgid "Accurate"
msgstr "Precisa"
-# AI Translated
msgid "Balanced"
msgstr "Equilibrada"
-# AI Translated
msgid "Quick"
msgstr "Rápida"
-# AI Translated
msgid "Baking texture displacement"
msgstr "Assando deslocamento de textura"
-# AI Translated
msgid "The bake produced no displacement, so nothing was changed and the paint was kept. Check that the painted layer has a texture and a non-zero depth."
msgstr "O assamento não produziu deslocamento, então nada foi alterado e a pintura foi mantida. Verifique se a camada pintada tem uma textura e uma profundidade diferente de zero."
@@ -28658,7 +32371,6 @@ msgstr "O assamento não produziu deslocamento, então nada foi alterado e a pin
msgid "The triangle budget limited the detail: this resolution needs %1% triangles, the budget kept %2%. Raise Budget or use a coarser Resolution for the full detail."
msgstr "O orçamento de triângulos limitou o detalhe: esta resolução precisa de %1% triângulos, o orçamento manteve %2%. Aumente Orçamento ou use uma Resolução mais grosseira para obter o detalhe completo."
-# AI Translated
msgid "Capturing bake stages"
msgstr "Capturando etapas do assamento"
@@ -28787,6 +32499,34 @@ msgstr "Plugins de filamento"
msgid "Printer plugins"
msgstr "Plugins de impressora"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Esta predefinição não usa nenhuma capacidade de plugin"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Capacidades usadas por esta predefinição"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Configuração da capacidade (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Configuração do plugin"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Descartar a substituição desta predefinição e voltar a usar a configuração global"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Restaurar padrões"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "JSON inválido"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "A configuração não é um JSON válido. Suas alterações não foram salvas."
@@ -28806,10 +32546,6 @@ msgstr ""
"\n"
"Isso descarta a substituição da predefinição e usa a configuração global."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Restaurar padrões"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Usando a configuração global. Salve a predefinição para mantê-la."
@@ -28835,10 +32571,6 @@ msgstr "Cancelar inscrição"
msgid "Overwrite Plugin"
msgstr "Sobrescrever Plugin"
-# AI Translated
-msgid "Show in folder"
-msgstr "Mostrar na pasta"
-
# AI Translated
msgid "Reinstall"
msgstr "Reinstalar"
@@ -28847,6 +32579,10 @@ msgstr "Reinstalar"
msgid "Delete cache and reload"
msgstr "Excluir cache e recarregar"
+# AI Translated
+msgid "No description."
+msgstr "Sem descrição."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Selecione um pacote de plugin .py ou .whl."
@@ -28879,6 +32615,292 @@ msgstr "Instalando plugin"
msgid "Installed \"%s\"."
msgstr "\"%s\" instalado."
+# AI Translated
+msgid "Search plugins"
+msgstr "Buscar plugins"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Limpar busca"
+
+# AI Translated
+msgid "Match case"
+msgstr "Diferenciar maiúsculas de minúsculas"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Coincidir palavra inteira"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Mais opções de instalação de plugin"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Instalar plugin"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Instalar plugin local"
+
+# AI Translated
+msgid "Activate"
+msgstr "Ativar"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Ordenar por nome"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Ordenar por versão"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Versão do Plugin"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Ordenar por origem"
+
+# AI Translated
+msgid "Source"
+msgstr "Origem"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Ordenar por estado"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Estado"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Arraste para redimensionar; clique duplo para redefinir"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Redimensionar a lista de plugins"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Detalhes do plugin"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Informações do Plugin"
+
+# AI Translated
+msgid "Description"
+msgstr "Descrição"
+
+# AI Translated
+msgid "Config"
+msgstr "Configuração"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Registro de alterações"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnóstico"
+
+# AI Translated
+msgid "Types"
+msgstr "Tipos"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Versão Instalada"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Versão Mais Recente"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Atualizar para a versão mais recente"
+
+# AI Translated
+msgid "No description available"
+msgstr "Nenhuma descrição disponível"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Selecione um plugin para configurar suas capacidades"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Capacidades configuráveis"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Descartar as configurações salvas para esta capacidade e restaurar os padrões do plugin"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Registro de alterações do plugin"
+
+# AI Translated
+msgid "Date"
+msgstr "Data"
+
+# AI Translated
+msgid "Changes"
+msgstr "Alterações"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Nenhum registro de alterações disponível"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Nenhum problema detectado"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Nenhum plugin encontrado"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Nenhum plugin corresponde a \"%s\""
+
+# AI Translated
+msgid "Mine"
+msgstr "Meu"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Inscrito"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Órfão"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Local"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Algumas capacidades do plugin estão ativadas"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Recolher as capacidades de %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Expandir as capacidades de %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Recolher capacidades"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Expandir capacidades"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Abrir este plugin no seu navegador"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Capacidades: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Capacidades"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Executar \"%s\""
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Ativar %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Não autorizado para atualizações"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Carregando o plugin…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Este plugin não expõe nenhuma capacidade"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Ative este plugin para configurar suas capacidades"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Ver no OrcaCloud aqui "
+
+# AI Translated
+msgid "Activated"
+msgstr "Ativado"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Erro de execução"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Inativo"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Este plugin está ativo e pronto para uso."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Este plugin ainda está carregando."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Este plugin está bloqueado até que seu erro seja corrigido."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Este plugin está carregado, mas uma capacidade relatou um erro."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Este plugin está inativo. Ative-o para instalá-lo ou carregá-lo."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Selecione um plugin para ver seu estado e detalhes."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Órfão: este plugin não está mais inscrito nem disponível no OrcaCloud. A cópia local continua instalada e ainda pode ser usada."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Uma versão mais recente do plugin está disponível."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "As atualizações pela nuvem estão indisponíveis porque este plugin não está autorizado para atualizações."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -29095,6 +33117,57 @@ msgstr "Falha ao recarregar o plugin."
msgid "Reloaded \"%s\"."
msgstr "\"%s\" recarregado."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Conexão da Impressora"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Configure a conexão da sua impressora para visualizar o dispositivo."
+
+msgid "No model information"
+msgstr "Sem informação do modelo"
+
+msgid "Edit Project Info"
+msgstr "Editar Info do Projeto"
+
+msgid "Model Information"
+msgstr "Informações do Modelo"
+
+msgid "Accessories"
+msgstr "Acessórios"
+
+msgid "Profile Information"
+msgstr "Informações do Perfil"
+
+msgid "Model name"
+msgstr "Nome do Modelo"
+
+msgid "Created by"
+msgstr "Criado por"
+
+msgid "Remixed by"
+msgstr "Remixado por"
+
+msgid "Shared by"
+msgstr "Compartilhado por"
+
+msgid "Model description"
+msgstr "Descrição do Modelo"
+
+# AI Translated
+msgid "BOM"
+msgstr "Lista de Materiais"
+
+msgid "Profile name"
+msgstr "Nome do Perfil"
+
+msgid "Profile Author"
+msgstr "Autor do Perfil"
+
+msgid "Profile description"
+msgstr "Descrição do Perfil"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Configurações do Modo de Purga"
@@ -29119,6 +33192,19 @@ msgstr "Reduz o desperdício de purga e imprime mais rápido. Pode causar leve m
msgid "Terminal"
msgstr "Terminal"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... ou uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Terminal de plugins pronto."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "O processo terminou com o código: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Um comando já está em execução."
@@ -29165,8 +33251,10 @@ msgstr "Novos Filamentos Mistos"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "O projeto suporta até %d filamentos. Os filamentos extras serão descartados."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "O projeto suporta até %d filamento. Os filamentos extras serão descartados."
+msgstr[1] "O projeto suporta até %d filamentos. Os filamentos extras serão descartados."
# AI Translated
msgid "Import Model"
@@ -29253,8 +33341,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "O cálculo falhou. Ajuste os parâmetros e tente novamente."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "A malha tem geometria não-manifold ou bordas abertas. Você pode importá-la como está ou repará-la com o serviço de reparo 3D do Windows antes de importar."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "A malha tem geometria não-manifold ou bordas abertas. Você pode importá-la como está ou repará-la antes de importar."
# AI Translated
msgid "Mesh repair"
@@ -29268,14 +33356,6 @@ msgstr "Importar sem reparar"
msgid "Repair and import"
msgstr "Reparar e importar"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Observe que a malha tem geometria não-manifold ou bordas abertas."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Problema na malha"
-
# AI Translated
msgid "The selected image is empty."
msgstr "A imagem selecionada está vazia."
@@ -29284,6 +33364,14 @@ msgstr "A imagem selecionada está vazia."
msgid "Failed to prepare the texture for use."
msgstr "Falha ao preparar a textura para uso."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Não foi possível criar a pasta para texturas importadas."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Falha ao salvar a textura importada."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Somente as texturas que você importou podem ser removidas."
@@ -29292,18 +33380,10 @@ msgstr "Somente as texturas que você importou podem ser removidas."
msgid "Could not delete the texture file."
msgstr "Não foi possível excluir o arquivo de textura."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Não foi possível criar a pasta para texturas importadas."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Não foi possível carregar a imagem selecionada."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Falha ao salvar a textura importada."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Não foi possível ler o arquivo de textura."
@@ -29347,8 +33427,10 @@ msgstr "Escolha Desdobrar como mapeamento de uma camada de textura para editar s
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d vértices selecionados | arrastar = mover juntos, Shift/Ctrl clique = adicionar/remover"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d vértice selecionado | arrastar = mover juntos, Shift/Ctrl clique = adicionar/remover"
+msgstr[1] "%d vértices selecionados | arrastar = mover juntos, Shift/Ctrl clique = adicionar/remover"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29356,8 +33438,10 @@ msgstr "Modo vértice: arraste um vértice para remodelar | Shift/Ctrl clique
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d arestas selecionadas | arrastar = mover juntas, Shift/Ctrl clique = adicionar/remover"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d aresta selecionada | arrastar = mover juntas, Shift/Ctrl clique = adicionar/remover"
+msgstr[1] "%d arestas selecionadas | arrastar = mover juntas, Shift/Ctrl clique = adicionar/remover"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29365,8 +33449,10 @@ msgstr "Modo aresta: arraste uma aresta de ilha para remodelar | Shift/Ctrl cl
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d ilhas selecionadas | arrastar = mover juntas, Shift/Ctrl clique = adicionar/remover, R/S = girar/escalar a principal"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d ilha selecionada | arrastar = mover juntas, Shift/Ctrl clique = adicionar/remover, R/S = girar/escalar a principal"
+msgstr[1] "%d ilhas selecionadas | arrastar = mover juntas, Shift/Ctrl clique = adicionar/remover, R/S = girar/escalar a principal"
# AI Translated
#, c-format, boost-format
@@ -29385,6 +33471,10 @@ msgstr " | encaixe ATIVO"
msgid "Change texture - choose another one from the texture library"
msgstr "Alterar textura - escolha outra na biblioteca de texturas"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "O tamanho do ladrilho da camada ativa: quanto do modelo uma repetição da textura cobre. A tela é medida em ladrilhos, então uma célula da grade é uma repetição. Altere-o em Tamanho do ladrilho nas configurações da camada."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Mapa de altura - mostra a textura da camada sob as ilhas"
@@ -29403,7 +33493,7 @@ msgstr "Desdobrar"
# AI Translated
msgid "Seam angle"
-msgstr "Ângulo de emenda"
+msgstr "Ângulo de costura"
# AI Translated
msgid "Edges sharper than this are cut, and the pieces either side of them are flattened separately. Lower it to cut more: each piece then lies flat with less stretching, at the cost of the texture not running continuously across the cut. Takes effect at the next Unwrap."
@@ -29418,28 +33508,26 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Dispõe o desdobramento como uma planificação conectada: pedaços que compartilham uma aresta são desdobrados lado a lado (um cubo vira uma planificação unida em vez de seis quadrados soltos). Eles continuam sendo ilhas separadas, então você ainda pode mover qualquer uma delas manualmente depois."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Ilha - mover, girar e escalar ilhas inteiras"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Ilha - trabalha com ilhas inteiras. Clique em uma para selecioná-la e depois arraste para movê-la, arraste com o botão direito para girá-la ou pressione R para girar e S para escalar com o mouse (clique ou Enter para confirmar, Esc para cancelar)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Vértice - arraste vértices para remodelar; Shift/Ctrl para seleção múltipla"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Vértice - arraste vértices para remodelar uma ilha manualmente; Shift adiciona à seleção, Ctrl inclui ou remove um vértice dela."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Aresta - arraste arestas para remodelar; Shift/Ctrl para seleção múltipla"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Aresta - arraste arestas para remodelar uma ilha manualmente; Shift adiciona à seleção, Ctrl inclui ou remove uma aresta dela."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
-msgstr "Marcar emendas - clique em arestas no modelo para cortar o desdobramento ao longo delas. A aresta sob o cursor fica destacada em amarelo; clique para marcá-la em vermelho, clique novamente em uma aresta vermelha para desmarcá-la. A pintura fica pausada enquanto isto estiver ativo."
+msgstr "Marcar costuras - clique em arestas no modelo para cortar o desdobramento ao longo delas. A aresta sob o cursor fica destacada em amarelo; clique para marcá-la em vermelho, clique novamente em uma aresta vermelha para desmarcá-la. A pintura fica pausada enquanto isto estiver ativo."
-# AI Translated
msgid "Path - instead of clicking every edge, click a start point and then an end point: the whole shortest path between them is seamed at once. Available while marking seams."
-msgstr "Caminho - em vez de clicar em cada aresta, clique em um ponto inicial e depois em um ponto final: todo o caminho mais curto entre eles recebe a emenda de uma vez. Disponível ao marcar emendas."
+msgstr "Caminho - em vez de clicar em cada aresta, clique em um ponto inicial e depois em um ponto final: todo o caminho mais curto entre eles recebe a costura de uma vez. Disponível ao marcar costuras."
-# AI Translated
msgid "Clear seams - remove every seam marked on this layer"
-msgstr "Limpar emendas - remove todas as emendas marcadas nesta camada"
+msgstr "Limpar costuras - remove todas as costuras marcadas nesta camada"
# AI Translated
msgid "Average scale - give every island the same texel density"
@@ -29466,39 +33554,99 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Encaixar - prende as ilhas umas às outras ao arrastar uma contra a outra"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Enquadrar todas as ilhas (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Enquadrar todas as ilhas, encaixando cada uma delas na vista (Home ou F).\n"
+"No restante da tela: role para aplicar zoom em torno do cursor e arraste com o botão do meio - ou arraste um espaço vazio - para mover a vista."
# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "O que está selecionado e os valores exatos do movimento, da rotação ou da escala enquanto você arrasta."
+
msgid "No layer mapped with Unwrap"
msgstr "Nenhuma camada mapeada com Desdobrar"
-# AI Translated
#, c-format, boost-format
msgid "%.1f mm tile"
msgstr "ladrilho de %.1f mm"
# AI Translated
-msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
-msgstr "Desatualizado - a pintura, as emendas ou o ângulo de emenda mudaram desde que este desdobramento foi feito. Pressione para desdobrar novamente."
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "O painel acompanha a camada de textura ativa, e essa camada precisa ser mapeada com Desdobrar (LSCM). Adicione uma camada e defina o Mapeamento dela como Desdobrar."
# AI Translated
+msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
+msgstr "Desatualizado - a pintura, as costuras ou o ângulo de costura mudaram desde que este desdobramento foi feito. Pressione para desdobrar novamente."
+
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
-msgstr "Achata a área pintada em ilhas UV. Só é calculado quando você pressiona isto, não a cada edição - então pinte, altere o ângulo de emenda ou marque emendas primeiro e depois pressione Desdobrar."
+msgstr "Achata a área pintada em ilhas UV. Só é calculado quando você pressiona isso, não a cada edição - então pinte, altere o ângulo de costura ou marque costuras primeiro e depois pressione Desdobrar."
+
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Ative Marcar costuras primeiro - Caminho é uma forma mais rápida de marcá-las."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Nenhuma costura está marcada nesta camada."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Nenhuma ilha foi remodelada manualmente, então não há nada a descartar."
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d ilhas, %s faces"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d ilha"
+msgstr[1] "%d ilhas"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s face"
+msgstr[1] "%s faces"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Como a área pintada ficou após o desdobramento: o número de pedaços separados em que foi cortada (nas costuras e nas arestas mais vivas que o ângulo de costura) e quantos triângulos eles contêm no total."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Pressione Desdobrar primeiro - ainda não há ilhas para trabalhar."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Primeiro clique em uma ilha na tela, no modo Ilha."
+
+# AI Translated
+# Needs human review: Short badge for a published project (about three letters); kept as PUB, abbreviation of 'Publicado'. Check it fits the badge.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "PUB"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Sessão não iniciada"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Bambu Network plug-in não detectado. Clique aqui para instalar isto."
+
+msgid "Create new project"
+msgstr "Criar Novo Projeto"
+
+msgid "Recently opened"
+msgstr "Aberto Recentemente"
+
+msgid "Open Containing Folder"
+msgstr "Abrir pasta de Conteúdo"
# AI Translated
msgid "Forward"
msgstr "Avançar"
-# AI Translated
-msgid "Tools"
-msgstr "Ferramentas"
-
# AI Translated
msgid "View Source"
msgstr "Ver Código-Fonte"
@@ -29570,6 +33718,75 @@ msgstr "Carregar %1% em %2%"
msgid "Load %s"
msgstr "Carregar %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Não foi possível ativar o agente de impressora '%1%': o ID de agente '%2%' já está registrado pela capacidade '%3%' do plugin '%4%'."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Não foi possível ativar o agente de impressora '%1%': o ID de agente '%2%' já está registrado por '%3%'."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Arquivo enviado"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Enviando G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Iniciando impressão..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Impressão iniciada"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Enviando..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Versão da biblioteca de rede não especificada"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Biblioteca de rede não encontrada"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Falha ao carregar a biblioteca de rede"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "A biblioteca de rede falhou ao carregar"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Uma série mais antiga do plugin. Os recursos que precisam de suporte de um plugin mais recente, como as capturas de falha de impressão na caixa de diálogo de erro do dispositivo, não estão disponíveis."
+
+# AI Translated
+msgid "unknown name"
+msgstr "nome desconhecido"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"O plugin \"%s\" solicita acesso de leitura ao sistema de arquivos em:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Permissões do plugin"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -29584,37 +33801,61 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
-"O plugin \"%s\" está solicitando a leitura do(s) seguinte(s) arquivo(s):\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"O plugin \"%s\" está solicitando a leitura do seguinte arquivo:\n"
+"%s"
+msgstr[1] ""
+"O plugin \"%s\" está solicitando a leitura dos seguintes arquivos:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
-"O plugin \"%s\" está solicitando a leitura/gravação do(s) seguinte(s) arquivo(s):\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"O plugin \"%s\" está solicitando a leitura/gravação do seguinte arquivo:\n"
+"%s"
+msgstr[1] ""
+"O plugin \"%s\" está solicitando a leitura/gravação dos seguintes arquivos:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
-"O plugin \"%s\" está solicitando a criação do(s) seguinte(s) arquivo(s):\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"O plugin \"%s\" está solicitando a criação do seguinte arquivo:\n"
+"%s"
+msgstr[1] ""
+"O plugin \"%s\" está solicitando a criação dos seguintes arquivos:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
-"O plugin \"%s\" está solicitando a exclusão do(s) seguinte(s) arquivo(s):\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"O plugin \"%s\" está solicitando a exclusão do seguinte arquivo:\n"
+"%s"
+msgstr[1] ""
+"O plugin \"%s\" está solicitando a exclusão dos seguintes arquivos:\n"
"%s"
# AI Translated
@@ -29638,10 +33879,30 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"O plugin \"%s\" está solicitando a execução do seguinte comando:\n"
+"%s"
+msgstr[1] ""
+"O plugin \"%s\" está solicitando a execução dos seguintes comandos:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "O plugin \"%s\" está solicitando permissão para criar uma thread."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"O plugin \"%s\" está solicitando executar o(s) seguinte(s) comando(s):\n"
+"O plugin \"%s\" está solicitando substituir o aplicativo em execução por:\n"
"%s"
# AI Translated
@@ -29653,6 +33914,46 @@ msgstr "O plugin \"%s\" está solicitando permissão para o evento de auditoria
msgid "Plugin permission request"
msgstr "Solicitação de permissão do plugin"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "A predefinição armazena um JSON de configuração de capacidade de plugin inválido."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "A configuração de capacidade de plugin da predefinição não é um array e não pode ser editada."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Conexão da impressora"
+
+# AI Translated
+msgid "Pages"
+msgstr "Páginas"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Análise"
+
+# AI Translated
+msgid "Importer"
+msgstr "Importador"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Exportador"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Visualização"
+
+# AI Translated
+msgid "Script"
+msgstr "Script"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Pipeline de fatiamento"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "A interface de configuração do plugin estava vazia. Exibindo o editor padrão."
@@ -29675,8 +33976,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Não foi possível gravar a configuração no disco. Nada foi alterado."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Falha na instalação do plugin"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Falha na instalação do plugin: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: o plugin instalado não foi encontrado no catálogo."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "A chave do plugin na nuvem não tem UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Falha ao se inscrever no plugin na nuvem; consulte os logs para mais informações."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Somente plugins na nuvem podem ter a inscrição cancelada."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Falha ao cancelar a inscrição do plugin; consulte os logs para mais informações."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Falha ao obter a URL de download do plugin (resultado %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Você não tem autorização para baixar este plugin na nuvem."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Nenhum pacote de plugin está disponível para este sistema operacional."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "A versão do plugin selecionada não foi encontrada."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "A versão %1% do plugin não foi encontrada."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "O plugin na nuvem não foi encontrado."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "O download do plugin na nuvem não foi encontrado: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "O download do plugin na nuvem não foi encontrado."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Nenhuma URL de download está disponível para este plugin. Verifique os logs em busca de erros."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Falha ao baixar o plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "O download do plugin falhou com status HTTP %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "O download do plugin retornou dados vazios."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Falha ao criar o arquivo temporário para o download do plugin."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Falha ao gravar os dados do plugin no arquivo temporário."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Falha ao resolver a pasta do plugin: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Falha ao excluir a pasta do plugin %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "O diretório do plugin não existe: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "O diretório do plugin contém vários arquivos .py: %1% e %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "O diretório do plugin contém vários arquivos .whl: %1% e %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "O diretório do plugin contém arquivos de entrada .py e .whl"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "O diretório do plugin não contém um arquivo de entrada .py ou .whl"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Erro no plugin de pipeline de fatiamento '%1%': %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "O pacote do plugin deve ser um arquivo .py ou .whl, recebido: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Falha ao extrair a dependência .whl do plugin %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Falha ao adicionar a dependência .whl ao sys.path: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Interpretador Python não inicializado: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "O manifesto do plugin é inválido: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Falha ao instalar as dependências do plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Falha ao carregar o módulo do plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Falha no registro do plugin: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "O módulo do plugin não registrou nenhuma capacidade"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "O plugin declara a capacidade duplicada '%1%' para o tipo %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Falha na materialização da capacidade do plugin: %1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "Falha na materialização da capacidade do plugin"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Falha em on_load do plugin: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Falha em on_load do plugin"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "O pacote do plugin não é um arquivo: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "O UUID do plugin na nuvem não é um identificador válido: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Falha ao criar o diretório do plugin %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Falha ao fazer backup do plugin existente %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Falha ao copiar o arquivo do plugin para %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Falha ao gravar o estado de instalação do plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "O pacote do plugin já está carregado: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Colisão de capacidade para o tipo %1% e o nome '%2%'"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Chave de plugin duplicada encontrada: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "O carregamento do plugin ainda está em andamento"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "O plugin é inválido: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Plugin não encontrado: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Falha inesperada ao carregar o plugin: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Falha inesperada ao carregar o plugin"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Manifesto do plugin não encontrado: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Falha ao buscar os plugins na nuvem. Consulte os logs para mais detalhes."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Entre no OrcaCloud para instalar este plugin."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "O plugin inscrito na nuvem não foi retornado pelo OrcaCloud."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Falha ao baixar o plugin na nuvem."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Falha ao instalar o plugin na nuvem."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Somente plugins na nuvem podem ser atualizados."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Nenhuma atualização está disponível para este plugin."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Recusando excluir um plugin fora dos diretórios de plugins conhecidos."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Recusando atualizar um plugin fora dos diretórios de plugins conhecidos."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Não é possível manter o plugin local: a chave de plugin local já existe: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Falha ao atualizar o estado de instalação do plugin: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Não é possível cancelar a inscrição dos seus próprios plugins."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Somente plugins na nuvem podem ser excluídos e ter a inscrição cancelada."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Não é possível cancelar a inscrição dos seus próprios plugins. Use Excluir para remover os arquivos locais."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Solicitação de permissão de leitura do sistema de arquivos pelo plugin negada"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -29710,6 +34347,10 @@ msgstr "falha na fusão da extrusão de dois lados"
msgid "imported regions produced no extrudable geometry"
msgstr "as regiões importadas não produziram geometria extrudável"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "o perfil cruza o eixo de revolução — ele deve ficar de um lado do eixo"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Falha na revolução"
@@ -29746,6 +34387,10 @@ msgstr "Falha na face da cavidade"
msgid "Pocket cut failed"
msgstr "Falha no corte da cavidade"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "o perfil se cruza ou se dobra sobre si mesmo, então não delimita uma única região"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "o esboço não tem laço fechado"
@@ -29778,10 +34423,26 @@ msgstr "mesh_to_brep: a malha não tem triângulos"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: todos os triângulos foram rejeitados como degenerados (tente uma tolerância menor)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "o raio do filete deve ser maior que 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "nenhuma aresta para filetar nesse grupo"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "raio do filete grande demais para esta geometria"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "a distância do chanfro deve ser maior que 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "nenhuma aresta para chanfrar nesse grupo"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "distância do chanfro grande demais para esta geometria"
@@ -29794,6 +34455,153 @@ msgstr "apply_fillet: falha no filete do OCCT"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: falha no chanfro do OCCT"
+# AI Translated
+msgid "empty component list"
+msgstr "lista de componentes vazia"
+
+# AI Translated
+msgid "empty component index"
+msgstr "índice de componente vazio"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "o índice do componente deve ser >= 1 (recebido %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "índice de componente inválido \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "são necessários pelo menos 2 componentes (recebido %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "índice de componente duplicado %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "valor de proporção vazio"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "a proporção deve ser positiva (recebido %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "proporção inválida \"%1%\""
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "a quantidade de proporções deve corresponder à quantidade de componentes: esperado %1%, recebido %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "esperados dois floats separados por vírgula, por exemplo \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "as proporções inicial e final devem estar em (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "o tamanho do array %1% não corresponde à quantidade de espaços de filamento %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "deve ser definido quando parâmetros de filamento misto são especificados"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "espaço %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "espaço %1%: componente %2% fora do intervalo (o índice máximo de filamento físico é %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "espaço %1%: não pode referenciar a si mesmo como componente"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "espaço %1%: o componente %2% referencia um espaço de filamento misto"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "espaço %1%: o gradiente exige exatamente 2 componentes"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "espaço %1%: curva inválida (são necessários pelo menos 2 pontos de controle válidos)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Falha ao carregar o arquivo de configuração \"%1%\": %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Não é um arquivo G-code gerado pelo %1%."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Tag de configuração \"%1%\" não encontrada"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Número suspeitamente baixo de valores de configuração extraídos de %1%: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Falha ao carregar o arquivo STEP.\n"
+"Não foi possível abrir o arquivo para leitura.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "falha ao importar o svg: não foi possível abrir o svg."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "falha ao importar o svg: não foi possível analisar os dados do svg importado."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "O G-code personalizado informa z_retracted negativo."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "O G-code personalizado informa z_restart_extra negativo."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Falha ao copiar o diretório %1% para %2%: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Autenticação concluída"
@@ -29852,7 +34660,6 @@ msgstr ""
"O plugin de pós-processamento %1% falhou.\n"
"Erro: %2%"
-# AI Translated
#, boost-format
msgid ""
"Post-processing plugin %1% failed.\n"
@@ -29862,19 +34669,16 @@ msgid ""
msgstr ""
"O plugin de pós-processamento %1% falhou.\n"
"\n"
-"Espera-se que o plugin de pós-processamento modifique o arquivo G-code %2% no próprio local, mas o arquivo G-code foi excluído.\n"
+"É esperado que o plugin de pós-processamento modifique o arquivo G-code %2% diretamente, mas o arquivo G-code foi excluído.\n"
"Verifique a implementação do plugin.\n"
-# AI Translated
#, boost-format
msgid "Failed making a temporary copy of G-code file %1% before running a post-processing script: %2%"
msgstr "Falha ao criar uma cópia temporária do arquivo G-code %1% antes de executar um script de pós-processamento: %2%"
-# AI Translated
msgid "Post-processor can't find exported gcode file"
msgstr "O pós-processador não consegue encontrar o arquivo G-code exportado"
-# AI Translated
#, boost-format
msgid ""
"Post-processing script %1% on file %2% failed.\n"
@@ -29883,7 +34687,6 @@ msgstr ""
"O script de pós-processamento %1% no arquivo %2% falhou.\n"
"Código de erro: %3%"
-# AI Translated
#, boost-format
msgid ""
"Post-processing script %1% on file %2% failed.\n"
@@ -29896,7 +34699,6 @@ msgstr ""
"Saída:\n"
"%4%"
-# AI Translated
#, boost-format
msgid ""
"Post-processing script %1% failed.\n"
@@ -29906,36 +34708,29 @@ msgid ""
msgstr ""
"O script de pós-processamento %1% falhou.\n"
"\n"
-"Espera-se que o script de pós-processamento altere o arquivo G-code %2% no próprio local, mas o arquivo G-code foi excluído e provavelmente salvo com um novo nome.\n"
-"Ajuste o script de pós-processamento para alterar o G-code no próprio local e consulte o manual para saber como, opcionalmente, renomear o arquivo G-code pós-processado.\n"
+"Espera-se que o script de pós-processamento altere o arquivo G-code %2% diretamente, mas o arquivo G-code foi excluído e provavelmente salvo com um novo nome.\n"
+"Ajuste o script de pós-processamento para alterar o G-code diretamente e consulte o manual para saber como renomear opcionalmente o arquivo G-code pós-processado.\n"
-# AI Translated
msgid "Unable to parse desired new path from output name file"
msgstr "Não foi possível analisar o novo caminho desejado a partir do arquivo de nome de saída"
-# AI Translated
#, boost-format
msgid "Output directory does not exist: %1%"
msgstr "O diretório de saída não existe: %1%"
-# AI Translated
#, boost-format
msgid "Failed reading a file %1% carrying the final name / path of a G-code file: %2%"
-msgstr "Falha ao ler o arquivo %1% que contém o nome / caminho final de um arquivo G-code: %2%"
+msgstr "Falha ao ler o arquivo %1% que contém o nome/caminho final de um arquivo G-code: %2%"
-# AI Translated
msgid "The printing task exceeds the limit, supporting a maximum of 6 printers."
-msgstr "A tarefa de impressão excede o limite; são suportadas no máximo 6 impressoras."
+msgstr "A tarefa de impressão excede o limite, são suportadas no máximo 6 impressoras."
-# AI Translated
msgid "Elapsed time:"
msgstr "Tempo decorrido:"
-# AI Translated
msgid "Estimated time:"
msgstr "Tempo estimado:"
-# AI Translated
msgid "Remaining time:"
msgstr "Tempo restante:"
@@ -30239,107 +35034,831 @@ msgstr ""
"Evitar empenamento\n"
"Você sabia que ao imprimir materiais propensos ao empenamento como ABS, aumentar adequadamente a temperatura da mesa aquecida pode reduzir a probabilidade de empenamento?"
-#~ msgid "(Experimental) Use printer agents instead of print hosts"
-#~ msgstr "(Experimental) Usar agentes de impressora em vez de hosts de impressão"
-
-# AI Translated
-#~ msgid "FEATURES"
-#~ msgstr "RECURSOS"
-
-# AI Translated
-#~ msgid "Click a face or a reference plane in the viewport, then a sketch tool"
-#~ msgstr "Clique em uma face ou em um plano de referência na janela de visualização e depois em uma ferramenta de esboço"
-
-# AI Translated
-#~ msgid "Click a face or a reference plane, then a sketch tool."
-#~ msgstr "Clique em uma face ou em um plano de referência e depois em uma ferramenta de esboço."
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "%s plane selected — right-click for the drawing tools"
-#~ msgstr "Plano %s selecionado — clique com o botão direito para ver as ferramentas de desenho"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Escolha a cor do filamento"
# AI Translated
#~ msgid ""
-#~ "Nothing yet — import a STEP or a mesh from the toolbar,\n"
-#~ "or click a reference plane and right-click it to start a sketch."
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
#~ msgstr ""
-#~ "Nada ainda — importe um STEP ou uma malha pela barra de ferramentas,\n"
-#~ "ou clique em um plano de referência e clique nele com o botão direito para iniciar um esboço."
+#~ "Largura de linha da Ponte. Se expressa como %, será calculada sobre o diâmetro do bico.\n"
+#~ "Recomendado usar com uma densidade de Ponte ou taxa de fluxo de Ponte mais alta.\n"
+#~ "\n"
+#~ "O valor máximo é 100% ou o diâmetro do bico.\n"
+#~ "Se definido como 0, a largura de linha corresponderá à largura do preenchimento sólido interno."
# AI Translated
-#~ msgid "Click a face or a reference plane, then pick a drawing tool"
-#~ msgstr "Clique em uma face ou em um plano de referência e depois escolha uma ferramenta de desenho"
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Ative esta opção para reduzir a velocidade de impressão em áreas onde os perímetros podem ter se enrolado para cima.\n"
+#~ "Por exemplo, uma desaceleração adicional será aplicada ao imprimir saliências em cantos vivos, como a frente do casco do Benchy, reduzindo o enrolamento que se acumula ao longo de várias camadas.\n"
+#~ "\n"
+#~ "Geralmente, recomenda-se manter esta opção ativada, a menos que o resfriamento da sua impressora seja potente o suficiente ou a velocidade de impressão seja lenta o suficiente para que o enrolamento dos perímetros não ocorra. \n"
+#~ "Se imprimir com uma velocidade alta de perímetro externo, este parâmetro pode introduzir artefatos na parede ao desacelerar, devido à variação potencialmente grande nas velocidades de impressão que faz com que a extrusora não consiga acompanhar a mudança de fluxo solicitada.\n"
+#~ "A causa raiz desses artefatos é provavelmente um ajuste de PA ligeiramente incorreto, especialmente quando combinado com um alto tempo de suavização de PA.\n"
+#~ "\n"
+#~ "Recomendações ao ativar esta opção:\n"
+#~ "1. Reduza o tempo de suavização do Pressure Advance para 0,015 - 0,02 para que a extrusora reaja rapidamente às mudanças de velocidade.\n"
+#~ "2. Aumente as velocidades mínimas de impressão para limitar a magnitude da desaceleração e reduzir a variação entre os segmentos rápidos e lentos.\n"
+#~ "3. Se os artefatos ainda aparecerem, ative a Suavização da Taxa de Extrusão (ERS) para suavizar ainda mais as transições de fluxo.\n"
+#~ "\n"
+#~ "Nota: quando esta opção está ativada, os perímetros de saliência são tratados como saliências, o que significa que a velocidade de saliência é aplicada mesmo que o perímetro em saliência faça parte de uma ponte.\n"
+#~ "Por exemplo, quando os perímetros estão 100% em saliência, sem nenhuma parede os sustentando por baixo, a velocidade de saliência de 100% será aplicada."
-#~ msgid "X"
-#~ msgstr "X"
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Velocidade das extrusões de pontes visíveis externamente.\n"
+#~ "\n"
+#~ "Além disso, se Desacelerar para perímetros curvos estiver desabilitado ou o Modo de saliência clássico estiver habilitado, será a velocidade de impressão de paredes de saliência que são suportadas por menos de 13%, sejam elas parte de uma ponte ou de uma saliência."
-#~ msgid "Y"
-#~ msgstr "Y"
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Essa configuração separada afetará a velocidade dos perímetros com raio <= small_perimeter_threshold (geralmente buracos). Se expresso como porcentagem (por exemplo: 80%), será calculado com base na configuração de velocidade da parede externa acima. Defina como zero para automático."
+
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Igual a \"Pequenos perímetros\", mas para suportes. Esta configuração separada afetará a velocidade do suporte para áreas <= `small_support_perimeter_threshold`. Se expressa como uma porcentagem (por exemplo: 80%), será calculada com base na configuração de velocidade de suporte ou de interface de suporte acima. Defina como zero para automático."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Sequência de impressão das paredes internas e externas.\n"
+#~ "\n"
+#~ "Use Interior/Exterior para melhores saliências. Isso ocorre porque as paredes salientes podem aderir a um perímetro vizinho durante a impressão. No entanto, esta opção resulta em uma qualidade superficial ligeiramente reduzida, pois o perímetro externo é deformado ao ser esmagado pelo perímetro interno.\n"
+#~ "\n"
+#~ "Use Interior/Exterior/Interior para o melhor acabamento superficial externo e precisão dimensional, pois a parede externa é impresso sem interrupções a partir de um perímetro interno. No entanto, o desempenho da saliência será reduzido, pois não há perímetro interno para suportar a impressão da parede externa. Esta opção requer um mínimo de 3 paredes para ser eficaz, pois imprime as paredes internas a partir do terceiro perímetro para fora primeiro, depois o perímetro externo e finalmente o primeiro perímetro interno. Esta opção é recomendada em vez da opção Exterior/Interior na maioria dos casos.\n"
+#~ "\n"
+#~ "Use Exterior/Interior para obter os mesmos benefícios de qualidade de parede externa e precisão dimensional da opção Interior/Exterior/Interior. No entanto, as costuras Z aparecerão menos consistentes, pois a primeira extrusão de uma nova camada começa em uma superfície visível."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Esta é a velocidade da primeira camada, exceto as regiões de preenchimento sólido."
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Esta é a velocidade das regiões de preenchimento sólido da primeira camada."
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Isso permite a área de preenchimento ser aumentada ligeiramente para se sobrepor à parede para uma melhor ligação. O valor percentual é relativo à largura da linha do preencimento esparso. Defina este valor como ~10-15% para minimizar uma potencial sobre extrusão e acumulo de material resultando em superfícies superiores ásperas."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "A área de preenchimento sólido é ligeiramente alargada para se sobrepor à parede para melhor adesão e para minimizar a aparência de furos onde o preenchimento encontra as paredes. Um valor de 25-30% é um bom ponto de partida, minimizando a aparência dos buracos. O valor percentual é relativo à largura da linha do preenchimento esparso."
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Profundidade de intertravamento de uma região segmentada. Será ignorado se \"mmu_segmented_region_max_width\" for zero ou se \"mmu_segmented_region_interlocking_depth\" for maior que \"mmu_segmented_region_max_width\". Zero desabilita esse recurso."
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Reduz a altura dos perímetros da superfície superior para corresponder à altura da aresta do modelo.\n"
+#~ "Afeta os perímetros com uma inclinação menor que este ângulo (em graus).\n"
+#~ "Um valor razoável é 35. Defina como 0 para desativar."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Velocidade de limpeza baseada na função"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Um escudo de ar é útil para proteger uma impressão ABS ou ASA de deformações e desprendimento da mesa de impressão devido à corrente de ar. Geralmente, ele é necessário apenas com impressoras de estrutura aberta, ou seja, sem um gabinete.\n"
+#~ "\n"
+#~ "Habilitado = a saia é tão alta quanto o objeto impresso mais alto. Caso contrário, 'Altura da saia' é usada.\n"
+#~ "Nota: com o escudo de ar ativo, a saia será impressa na distância da saia do objeto. Portanto, se as bordas estiverem ativas, ela pode se cruzar com elas. Para evitar isso, aumente o valor da distância da saia.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "A velocidade máxima de impressão ao purgar na torre de purga e ao imprimir as camadas esparsas da torre de purga. Ao purgar, se a velocidade do preenchimento esparso ou a velocidade calculada a partir da velocidade volumétrica máxima do filamento for menor, a menor será utilizada.\n"
+#~ "\n"
+#~ "Ao imprimir as camadas esparsas, se a velocidade do perímetro interno ou a velocidade calculada a partir da velocidade volumétrica máxima do filamento for menor, a menor será utilizada.\n"
+#~ "\n"
+#~ "Aumentar essa velocidade pode afetar a estabilidade da torre, bem como aumentar a força com que o bico colide com quaisquer bolhas que possam ter se formado na torre de purga.\n"
+#~ "\n"
+#~ "Antes de aumentar esse parâmetro além do padrão de 90 mm/s, certifique-se de que sua impressora pode realizar pontes de forma confiável nas velocidades aumentadas e que o vazamento ao trocar a ferramenta está bem controlado.\n"
+#~ "\n"
+#~ "Para os perímetros externos da torre de purga, a velocidade do perímetro interno é utilizada independentemente dessa configuração."
+
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Tipo de parede externa da torre de purga.\n"
+#~ "1. Retângulo: O tipo de parede padrão, um retângulo com largura e altura fixas.\n"
+#~ "2. Cone: Um cone com um filete na parte inferior para ajudar a estabilizar a torre de purga.\n"
+#~ "3. Nervura: Adiciona quatro nervuras à parede da torre para maior estabilidade."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Fluxo extra usado para as linhas de purga na torre de purga. Isso torna as linhas de purga mais grossas ou mais estreitas do que normalmente seriam. O espaçamento é ajustado automaticamente."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Ajuste este valor para evitar que paredes curtas e não fechados sejam impressos, o que poderia aumentar o tempo de impressão. Valores mais altos removem paredes mais longas.\n"
+#~ "\n"
+#~ "NOTA: As superfícies inferior e superior não serão afetadas por este valor para evitar lacunas visuais no exterior do modelo. Ajuste o 'Limiar de uma parede' nas configurações avançadas abaixo para ajustar a sensibilidade do que é considerado uma superfície superior. 'Limiar de uma parede' só é visível se esta configuração estiver acima do valor padrão de 0,5, ou se superfícies superiores de uma única parede estiverem habilitadas."
# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Dividir em %1% peça"
+#~ msgstr[1] "Dividir em %1% peças"
+
+#~ msgid "Repair failed"
+#~ msgstr "Reparo falhou"
+
+#~ msgid "Repair canceled"
+#~ msgstr "Reparo cancelado"
# AI Translated
-#~ msgid "XY"
-#~ msgstr "XY"
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "O que esta camada faz onde se sobrepõe às de baixo. Adicionar e Subtrair acumulam relevo ou o retiram. Multiplicar e Dividir escalam o que está embaixo, o que transforma esta camada em uma máscara sobre ele - ali, Profundidade age como intensidade, e 1 mm deixa as áreas brancas intactas."
# AI Translated
-#~ msgid "XZ"
-#~ msgstr "XZ"
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "A malha tem geometria não-manifold ou bordas abertas. Você pode importá-la como está ou repará-la com o serviço de reparo 3D do Windows antes de importar."
# AI Translated
-#~ msgid "YZ"
-#~ msgstr "YZ"
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Observe que a malha tem geometria não-manifold ou bordas abertas."
# AI Translated
-#~ msgid "Equal"
-#~ msgstr "Igual"
+#~ msgid "Mesh issue"
+#~ msgstr "Problema na malha"
# AI Translated
-#~ msgid "Perpendicular"
-#~ msgstr "Perpendicular"
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Falha no reparo: a malha ainda está aberta após o preenchimento de buracos."
# AI Translated
-#~ msgid "Midpoint"
-#~ msgstr "Ponto médio"
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Não é possível aplicar uma operação lógica a operadores não booleanos."
+
+#~ msgid "Reading"
+#~ msgstr "Lendo"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "A contagem de filamentos excede o número máximo que a ferramenta de pintura suporta. Apenas os primeiros %1% filamentos estarão disponíveis na ferramenta de pintura."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Tecla de atalho "
+
+#~ msgid "Build Volume"
+#~ msgstr "Volume de Impressão"
+
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Os objetos(%1%) têm conectores duplicados. Alguns conectores podem estar faltando no resultado do fatiamento.\n"
+#~ "Por favor, informe à equipe do OrcaSlicer em qual cenário esse problema ocorreu.\n"
+#~ "Obrigado."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d triângulos"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Movendo)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Fixo)"
+
+#~ msgid "Filament "
+#~ msgstr "Filamento "
+
+#~ msgid "hotend"
+#~ msgstr "hotend"
# AI Translated
-#~ msgid "Equal length"
-#~ msgstr "Comprimento igual"
+#~ msgid "Arranging "
+#~ msgstr "Organizando "
+
+#~ msgid "Orienting"
+#~ msgstr "Orientando"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Por favor, mandar a origem todos os eixos (clique "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") para localizar a posição do cabeçote. Isso impede que o dispositivo se mova além do limite imprimível e cause desgaste no equipamento."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Aumento de %1%g no filamento e %2% nas trocas em comparação com o agrupamento ideal."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Aumento de %1%g no filamento e economia de %2% nas trocas em comparação com o agrupamento ideal."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Economia de %1%g no filamento e aumento de %2% nas trocas em comparação com o agrupamento ideal."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Economia de %1%g no filamento e %2% nas trocas em comparação com uma impressora com um bico."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Economia de %1%g no filamento e aumento de %2% nas trocas em comparação com uma impressora com um bico."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Aumento de %1%g no filamento e economia de %2% nas trocas em comparação com uma impressora com um bico."
+
+#~ msgid "number keys"
+#~ msgstr "teclas numéricas"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Os filamentos %s estão colocados em %s, mas o caminho do G-code gerado excede a área imprimível de %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Os filamentos %s estão colocados em %s, mas o caminho do G-code gerado excede a altura imprimível de %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Os filamentos %s não podem ser impressos diretamente na superfície desta placa."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "será fechado antes de criar um novo modelo. Deseja continuar?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "Na Fila de Fatiamento na Nuvem, existem %s tarefas na sua frente."
+
+#~ msgid " upload failed"
+#~ msgstr " falha ao enviar"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " falha ao analisar a configuração\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Nenhum balde de armazenamento correspondente\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " não pode ser aberto\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "O resultado do seu comentário não pode ser enviado devido aos seguintes motivos:\n"
+#~ "\n"
+#~ " código de erro: "
+
+#~ msgid "error message: "
+#~ msgstr "mensagem de erro: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Gostaria de ser redirecionado para a página da web para avaliar?"
# AI Translated
-#~ msgid "Equal radius"
-#~ msgstr "Raio igual"
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (predefinição de processo: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "O bico %s não pode imprimir %s."
+
+#~ msgid " nozzle"
+#~ msgstr " bico"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Não é recomendável imprimir os seguintes filamentos com %1%: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " placa %1%:"
# AI Translated
-#~ msgid "Collinear"
-#~ msgstr "Colinear"
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Remover todos os %1% filamentos mistos?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Deseja substituí-lo"
# AI Translated
-#~ msgid "Symmetric about the vertical axis"
-#~ msgstr "Simétrico em relação ao eixo vertical"
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Conflito de temperatura da mesa: T%d (%s) define a mesa em %d°C — T%d (%s) requer %d°C. A ferramenta principal controla a mesa; as ferramentas secundárias imprimem na temperatura que ela definir."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Nenhuma aceleração fornecida para calibração. Usar o valor de aceleração padrão "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Nenhuma velocidade fornecida para calibração. Usar a velocidade padrão "
# AI Translated
-#~ msgid "Symmetric about the horizontal axis"
-#~ msgstr "Simétrico em relação ao eixo horizontal"
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Nenhuma torre de temperatura para esteira está disponível para a faixa de %1% a %2% °C. Use uma faixa coberta pelos modelos de torre, por exemplo, 230 a 190."
+
+#~ msgid "The selected file"
+#~ msgstr "O arquivo selecionado"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "Não contém G-code válido."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "com OrcaSlicer para que Orca possa abrir modelos de"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "O custo de %dg de filamento e %d muda mais do que o agrupamento ideal."
# AI Translated
-#~ msgid "Fix point (anchor in place)"
-#~ msgstr "Fixar ponto (ancorar no lugar)"
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Parâmetros com este ícone podem ser configurados por bico."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Palavras-chave reservadas encontradas"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d Predefinição de Filamento e %d Predefinição de Processo estão vinculados a esta impressora. Essas predefinições serão excluídos se a impressora for deletada."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "As seguintes predefinições herdam esta predefinição."
+#~ msgstr[1] "A seguinte predefinição herda esta predefinição."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% Predefinição"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Tem certeza de que quer %1% a predefinição selecionada?"
# AI Translated
-#~ msgid "Horizontal distance"
-#~ msgstr "Distância horizontal"
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Dividir em %1% peças"
+
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Baixando novo(s) perfil(is) de fornecedor: "
+
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Falha ao baixar o(s) perfil(is) de fornecedor: "
# AI Translated
-#~ msgid "Vertical distance"
-#~ msgstr "Distância vertical"
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Neste modo Span, as cores só são impressas por %1%, mas o filamento %2% não está direcionado a nenhuma ferramenta. Use filamentos direcionados a %1% ou mude esta placa para o modo Principal."
# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Linear"
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Neste modo Span, as cores só são impressas por %1%, mas o filamento %2% está direcionado a T%3%. Use filamentos direcionados a %1% ou mude esta placa para o modo Principal."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " está muito perto da área de exclusão, pode haver colisões durante a impressão."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " está muito perto da área de detecção de aglomeração, podendo haver colisões durante a impressão."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Torre de Purga"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " está muito perto de outros, e colisões podem ocorrer.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " está muito perto de uma área de exclusão, e colisões vão ocorrer.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " está muito perto da área de detecção de aglomeração, e ocorrerão colisões.\n"
+
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " está parcialmente fora da área imprimível, e não pode ser impresso.\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "nenhuma ferramenta configurada"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "Adicionar G-code de finalização ao terminar a impressão completa."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Velocidade máxima em X"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Velocidade máxima em Y"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Velocidade máxima em Z"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Velocidade máxima em E"
+
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Plugin(s) Python invocado(s) em cada etapa do pipeline de fatiamento para ler e modificar dados intermediários de fatiamento, incluindo uma etapa final de pós-processamento do G-code. Pesquisa/experimental."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Quando ativado, o fatiador emite o G-code com o conteúdo da zona principal centralizado na origem da mesa (0,0). O firmware da impressora é responsável por posicionar as cópias/espelhos na posição física de cada zona. Ative somente em impressoras cujo firmware aplica seus próprios deslocamentos de zona no modo cópia/espelho (ex.: modo de duplicação IDEX do RepRapFirmware). Não tem efeito no modo Principal."
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Substituição por placa que mapeia as cabeças físicas para os espaços de filamento (começando em 1). Vazio significa usar os padrões da inversão do pem."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Eixo em torno do qual a malha é girada antes do fatiamento. Esta é a inclinação da impressora de esteira: uma rotação isométrica (sem distorção) que também define a renderização da mesa e a inclinação da gravidade dos suportes, e que a transformação inversa do G-code desfaz antes do cisalhamento/escala e do remapeamento do referencial da máquina. X é a inclinação típica do pórtico (a esteira se move ao longo de Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Substituição para especialistas: define o ângulo de inclinação do referencial da máquina (cisalhamento/escala do G-code) independentemente do ângulo de rotação antes do fatiamento. Quando desativado, a transformação do referencial da máquina é derivada do ângulo de inclinação da esteira, de modo que um único ângulo controla as duas etapas. Ative somente para compensar uma máquina cuja inclinação física do pórtico difere da rotação de fatiamento."
+
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "O desvio máximo permitido ao reduzir a resolução para a configuração 'Resolução máxima de parede'. Se você aumentar esse valor, a impressão ficará menos precisa, mas o G-code será menor. 'Desvio máximo de parede' limita a 'Resolução máxima de parede', portanto, se houver conflito entre os dois, 'Desvio máximo de parede' terá prioridade."
+
+#~ msgid " not in range "
+#~ msgstr " fora do intervalo "
+
+#~ msgid "floating regions"
+#~ msgstr "regiões flutuantes"
+
+#~ msgid "floating cantilever"
+#~ msgstr "balanço flutuante"
+
+#~ msgid "large overhangs"
+#~ msgstr "saliências grandes"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Parece que o objeto %s tem %s. Por favor, reoriente o objeto ou habilite a geração de suporte."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Nenhuma camada foi detectada. Você pode querer reparar seu(s) arquivo(s) STL ou verificar seu tamanho ou espessura e tentar novamente.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Este tipo de máquina só pode salvar %d resultados históricos por bico. Este resultado não será salvo."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Este tipo de máquina só pode manter %d resultados históricos por bico."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Saliência"
+
+#~ msgid "Start / End"
+#~ msgstr "Inicial / Final"
+
+#~ msgid "Damp"
+#~ msgstr "Amortecimento"
+
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "Detectados %d espaços IFS na impressora."
+
+#~ msgid "selected"
+#~ msgstr "selecionado"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "As seguintes predefinições herdam esta predefinição."
+#~ msgstr[1] "A seguinte predefinição herda esta predefinição."
+
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "%zu impressora(s) Creality encontrada(s). Selecione um e clique em Usar Selecionada."
+
+#~ msgid "log(s)"
+#~ msgstr "log(s)"
+
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Erro: a extrusora %s não tem nenhum bico %s disponível, o resultado do grupo atual é inválido."
+
+#~ msgid "invalid brim ears"
+#~ msgstr "orelhas da borda iválidas"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Ignorando %d objetos."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Abrir pasta no explorador de arquivos"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Clique no centro e depois em um vértice — %d lados, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "circunscrito"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "inscrito"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Esboço criado (%zu cotas motrizes) — selecione-o e clique com o botão direito para extrudar"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — %zu triângulos"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Esta malha tem %d triângulos. Cada triângulo se torna uma face B-rep antes da mesclagem de faces coplanares, então importá-la pode levar muito tempo e deixar um corpo lento para editar. Geralmente é melhor decimar a malha primeiro.\n"
+#~ "\n"
+#~ "Importar mesmo assim?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Sólido importado — %d triângulos → %d faces, volume %.2f mm³. Selecione uma face ou aresta e depois Filete / Cortar / Casca para modificar"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — arraste para colocar/dimensionar e depois confirme"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d entidades de esboço"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — digite um valor e pressione Enter (ou Confirmar)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Pré-visualização — %zu triângulos"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "Restrições ignoradas por não poderem atuar sobre esta geometria (uma elipse ou curva spline, ou um círculo de tamanho zero): %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "Restrições invalidadas pelo filete/chanfro e removidas: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "Restrições liberadas pela transformação: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...e mais %1% extremidade(s) aberta(s)"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "A lista de materiais suporta no máximo %1% cores. Após a decomposição de %2%, a quantidade de materiais excederia %1%. Exclua os filamentos não utilizados na tela principal antes de decompor."
+
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% cores imprimíveis a partir de %2% filamentos"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% ilhas"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Todas as %1% camadas usadas"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Pré-visualização: %1% triângulos"
+
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Modelo: %1% triângulos - o assamento refina até a resolução acima, dentro do seu orçamento"
+
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Assar move os vértices existentes - o modelo continua com %1% triângulos"
+
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Resultado do assamento até ~%1% k triângulos"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% camadas sem pintura ignoradas"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "O projeto suporta até %d filamentos. Os filamentos extras serão descartados."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d vértices selecionados | arrastar = mover juntos, Shift/Ctrl clique = adicionar/remover"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d arestas selecionadas | arrastar = mover juntas, Shift/Ctrl clique = adicionar/remover"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d ilhas selecionadas | arrastar = mover juntas, Shift/Ctrl clique = adicionar/remover, R/S = girar/escalar a principal"
+
+# AI Translated
+# Needs human review: Source says 'Change it with Tiling', but the texture layer's controls are labeled 'Tile' (Ladrilho) and 'Tile size' (Tamanho do ladrilho); check which control is meant and quote its label.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "O tamanho do ladrilho da camada ativa: quanto do modelo uma repetição da textura cobre. A tela é medida em ladrilhos, então uma célula da grade é uma repetição. Altere-o no ladrilhamento das configurações da camada."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d ilhas, %s faces"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "O plugin \"%s\" está solicitando a leitura do(s) seguinte(s) arquivo(s):\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "O plugin \"%s\" está solicitando a leitura/gravação do(s) seguinte(s) arquivo(s):\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "O plugin \"%s\" está solicitando a criação do(s) seguinte(s) arquivo(s):\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "O plugin \"%s\" está solicitando a exclusão do(s) seguinte(s) arquivo(s):\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "O plugin \"%s\" está solicitando executar o(s) seguinte(s) comando(s):\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Falha na instalação do plugin"
+
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Não foi possível instalar o Microsoft WebView2 Runtime.\n"
+#~ "Alguns recursos, incluindo o assistente de instalação, podem aparecer em branco até que ele seja instalado.\n"
+#~ "Por favor, instale-o manualmente de https://developer.microsoft.com/microsoft-edge/webview2/ e reinicie o OrcaSlicer."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Motivo desse agrupamento"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "O software não suporta o uso de bicos de diâmetros diferentes para uma mesma impressão. Se os bicos esquerdo e direito forem incompatíveis, só é possível prosseguir com a impressão com um único bico. Confirme qual bico você gostaria de usar para este projeto."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Trocar diâmetro"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "Projeto Bambu Studio"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "O arquivo 3MF foi criado pelo Bambu Studio (versão %s), que é mais recente que a versão compatível %s. Configurações não reconhecidas encontradas:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "O arquivo 3MF foi criado pelo Bambu Studio (versão %s), que é mais recente que a versão compatível %s. Algumas configurações podem não ser compatíveis."
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "O arquivo 3MF foi criado pelo Bambu Studio. Algumas configurações podem ser diferentes do OrcaSlicer."
+
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Centraliza o preenchimento interno de cada peça em si mesma, como se fosse fatiada isoladamente, em vez de no conjunto inteiro. Peças que se tocam ou se sobrepõem são tratadas como um único corpo e compartilham um centro; peças separadas (ou objetos 3D distintos) recebem cada uma o seu próprio.\n"
+#~ "Útil quando um conjunto agrupa vários objetos que devem manter, cada um, um preenchimento consistente e autocentrado.\n"
+#~ "Afeta os padrões de linha e grade e os preenchimentos com gabarito de rotação.\n"
+#~ "Os padrões fixados em coordenadas globais (Giroide, Favo de mel, TPMS, …) não são afetados."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Índice da camada atual. Baseado em um (ou seja, a primeira camada é o número 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Tutorial em vídeo"
+
+#~ msgid "(Experimental) Use printer agents instead of print hosts"
+#~ msgstr "(Experimental) Usar agentes de impressora em vez de hosts de impressão"
#~ msgid "Face recognition"
#~ msgstr "Reconhecimento facial"
@@ -30378,10 +35897,6 @@ msgstr ""
#~ msgid "Please resolve the slicing errors and publish again."
#~ msgstr "Por favor, resolva os erros de fatiamento e publique novamente."
-# AI Translated
-#~ msgid "Treat sketch endpoints within 0.001 mm as one joint and weld the loop shut. Off: only exactly coincident endpoints join, so a loop with a tiny gap is shown as open instead of being closed for you."
-#~ msgstr "Trata extremidades do esboço a menos de 0,001 mm umas das outras como uma só junção e fecha o laço. Desativado: somente extremidades exatamente coincidentes se unem, então um laço com uma pequena folga é mostrado como aberto em vez de ser fechado para você."
-
#~ msgid "Slice all plates to obtain time and filament estimation"
#~ msgstr "Fatiar todas as placas para obter estimativa de tempo e filamento"
@@ -30629,860 +36144,21 @@ msgstr ""
#~ msgid "Standard profile for 0.8mm nozzle, prioritizing speed."
#~ msgstr "Perfil padrão para bico de 0,8 mm, priorizando a velocidade."
-# AI Translated
-#~ msgid "Slot — two centerline ends, then end radius"
-#~ msgstr "Rasgo — as duas extremidades da linha central e depois o raio da extremidade"
-
-# AI Translated
-#~ msgid "Isometric view, fitted"
-#~ msgstr "Vista isométrica, ajustada"
-
-# AI Translated
-#~ msgid "Coord Sys"
-#~ msgstr "Sist. coord."
-
-# AI Translated
-#~ msgid "Assembly: align two CoordSys features (fastened, planar, revolute, slider, cylindrical)"
-#~ msgstr "Montagem: alinhar dois recursos de sistema de coordenadas (fixo, planar, de revolução, deslizante, cilíndrico)"
-
-# AI Translated
-#~ msgid "Click points; click the first point to close the loop, right-click to end the chain"
-#~ msgstr "Clique nos pontos; clique no primeiro ponto para fechar o laço, clique com o botão direito para encerrar a cadeia"
-
-# AI Translated
-#~ msgid "Click two centerline ends, then a point for the end radius"
-#~ msgstr "Clique nas duas extremidades da linha central e depois em um ponto para o raio da extremidade"
-
-# AI Translated
-#~ msgid "Click control points; double-click or right-click to finish"
-#~ msgstr "Clique nos pontos de controle; clique duplo ou clique com o botão direito para terminar"
-
-# AI Translated
-#~ msgid "Click a segment to trim it back to its nearest intersection; right-click exits"
-#~ msgstr "Clique em um segmento para apará-lo até a interseção mais próxima; clique com o botão direito para sair"
-
-# AI Translated
-#~ msgid "Click a line or arc to extend it to the nearest entity; right-click exits"
-#~ msgstr "Clique em uma linha ou arco para estendê-lo até a entidade mais próxima; clique com o botão direito para sair"
-
-# AI Translated
-#~ msgid "✓ Confirm"
-#~ msgstr "✓ Confirmar"
-
-# AI Translated
-#~ msgid "✗ Cancel"
-#~ msgstr "✗ Cancelar"
-
-# AI Translated
-#~ msgid "Undo (Ctrl+Z)"
-#~ msgstr "Desfazer (Ctrl+Z)"
-
-# AI Translated
-#~ msgid "Redo (Ctrl+Shift+Z)"
-#~ msgstr "Refazer (Ctrl+Shift+Z)"
-
-# AI Translated
-#~ msgid "Taper °"
-#~ msgstr "Conicidade °"
-
-# AI Translated
-#~ msgid "Total angle°"
-#~ msgstr "Ângulo total°"
-
-# AI Translated
-#~ msgid "Union (join)"
-#~ msgstr "Unir (juntar)"
-
-# AI Translated
-#~ msgid "Subtract (cut)"
-#~ msgstr "Subtrair (cortar)"
-
-# AI Translated
-#~ msgid "Angle°"
-#~ msgstr "Ângulo°"
-
-# AI Translated
-#~ msgid "CS A (fixed)"
-#~ msgstr "SC A (fixo)"
-
-# AI Translated
-#~ msgid "CS B (moves)"
-#~ msgstr "SC B (móvel)"
-
-# AI Translated
-#~ msgid "Move body"
-#~ msgstr "Mover corpo"
-
-# AI Translated
-#~ msgid "Select a body row first, then move it"
-#~ msgstr "Selecione primeiro a linha de um corpo e depois mova-o"
-
-# AI Translated
-#~ msgid "+"
-#~ msgstr "+"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Body %d: edge %d selected — Fillet/Chamfer to dress it, or click again for the whole body"
-#~ msgstr "Corpo %d: aresta %d selecionada — Filete/Chanfro para arredondá-la ou chanfrá-la, ou clique novamente para o corpo inteiro"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Edge %d selected — Fillet/Chamfer to dress it, or click again for the whole body"
-#~ msgstr "Aresta %d selecionada — Filete/Chanfro para arredondá-la ou chanfrá-la, ou clique novamente para o corpo inteiro"
-
-# AI Translated
-#~ msgid "Text to insert:"
-#~ msgstr "Texto a inserir:"
-
-# AI Translated
-#~ msgid "STEP import failed: "
-#~ msgstr "Falha ao importar STEP: "
-
-# AI Translated
-#~ msgid "Could not read the OBJ file: "
-#~ msgstr "Não foi possível ler o arquivo OBJ: "
-
-# AI Translated
-#~ msgid "Mesh conversion failed: "
-#~ msgstr "Falha na conversão da malha: "
-
-# AI Translated
-#~ msgid "Mesh import failed: "
-#~ msgstr "Falha ao importar a malha: "
-
-# AI Translated
-#~ msgid "Drag a corner to scale, the center to move — right-click when done"
-#~ msgstr "Arraste um canto para dimensionar, o centro para mover — clique com o botão direito ao terminar"
-
-# AI Translated
-#~ msgid "Recompute error: "
-#~ msgstr "Erro de recálculo: "
-
-# AI Translated
-#~ msgid "Mate needs two CoordSys features — create them first"
-#~ msgstr "O posicionamento precisa de dois recursos de sistema de coordenadas — crie-os primeiro"
-
-# AI Translated
-#~ msgid "Mate: CS A and CS B must be different CoordSys features"
-#~ msgstr "Posicionamento: SC A e SC B devem ser recursos de sistema de coordenadas diferentes"
-
-# AI Translated
-#~ msgid "No interference — need at least two solid bodies to check"
-#~ msgstr "Sem interferência — são necessários pelo menos dois corpos sólidos para verificar"
-
-# AI Translated
-#, c-format
-#~ msgid "%zu interference pair, worst %.2f mm³"
-#~ msgid_plural "%zu interference pairs, worst %.2f mm³"
-#~ msgstr[0] "%zu par com interferência, pior %.2f mm³"
-#~ msgstr[1] "%zu pares com interferência, pior %.2f mm³"
-
-# AI Translated
-#~ msgid ""
-#~ "Interference pairs:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Pares com interferência:\n"
-#~ "\n"
-
-# AI Translated
-#~ msgid "Interference"
-#~ msgstr "Interferência"
-
-# AI Translated
-#~ msgid "Select a solid body first — its mass properties are what is reported"
-#~ msgstr "Selecione primeiro um corpo sólido — são as propriedades de massa dele que são informadas"
-
-# AI Translated
-#~ msgid "Mass properties could not be computed for this body"
-#~ msgstr "Não foi possível calcular as propriedades de massa deste corpo"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "%s: sheet body — %.2f cm² of surface, no volume"
-#~ msgstr "%s: corpo de superfície — %.2f cm² de superfície, sem volume"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid ""
-#~ "%s\n"
-#~ "\n"
-#~ "Sheet body (open shell)\n"
-#~ "Surface area: %.2f cm²\n"
-#~ "\n"
-#~ "A sheet encloses no material, so it has no volume. Thicken it into a solid to get one."
-#~ msgstr ""
-#~ "%s\n"
-#~ "\n"
-#~ "Corpo de superfície (casca aberta)\n"
-#~ "Área de superfície: %.2f cm²\n"
-#~ "\n"
-#~ "Uma superfície não envolve material, então não tem volume. Espesse-a para transformá-la em um sólido e obter um volume."
-
-# AI Translated
-#~ msgid "Mass properties"
-#~ msgstr "Propriedades de massa"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "%s: %.3f cm³, %.2f cm²"
-#~ msgstr "%s: %.3f cm³, %.2f cm²"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid ""
-#~ "%s\n"
-#~ "\n"
-#~ "Volume: %.3f cm³\n"
-#~ "Surface area: %.2f cm²"
-#~ msgstr ""
-#~ "%s\n"
-#~ "\n"
-#~ "Volume: %.3f cm³\n"
-#~ "Área de superfície: %.2f cm²"
-
-# AI Translated
-#~ msgid "Boolean needs two solid bodies — add or import a second one"
-#~ msgstr "A operação booleana precisa de dois corpos sólidos — adicione ou importe um segundo"
-
-# AI Translated
-#~ msgid "Line — click the end point, or type the length"
-#~ msgstr "Linha — clique no ponto final ou digite o comprimento"
-
-# AI Translated
-#~ msgid "Polyline — click the next point · click the start point to close it · right-click to end the chain"
-#~ msgstr "Polilinha — clique no próximo ponto · clique no ponto inicial para fechá-la · clique com o botão direito para encerrar a cadeia"
-
-# AI Translated
-#~ msgid "Circle — click to set the radius, or type it"
-#~ msgstr "Círculo — clique para definir o raio ou digite-o"
-
-# AI Translated
-#~ msgid "Spline — click the next control point · right-click to finish the curve"
-#~ msgstr "Spline — clique no próximo ponto de controle · clique com o botão direito para terminar a curva"
-
-# AI Translated
-#~ msgid "Trim — click a segment where it crosses another entity · right-click to exit"
-#~ msgstr "Aparar — clique em um segmento onde ele cruza outra entidade · clique com o botão direito para sair"
-
-# AI Translated
-#~ msgid "Extend — click a line or arc to grow it out to the nearest entity · right-click to exit"
-#~ msgstr "Estender — clique em uma linha ou arco para prolongá-lo até a entidade mais próxima · clique com o botão direito para sair"
-
-# AI Translated
-#~ msgid "Fillet — drag the arrow, or click the number to type the radius · click empty space to apply · right-click cancels"
-#~ msgstr "Filete — arraste a seta ou clique no número para digitar o raio · clique em um espaço vazio para aplicar · o botão direito cancela"
-
-# AI Translated
-#~ msgid "Chamfer — drag the arrow, or click the number to type the setback · click empty space to apply · right-click cancels"
-#~ msgstr "Chanfro — arraste a seta ou clique no número para digitar o recuo · clique em um espaço vazio para aplicar · o botão direito cancela"
-
-# AI Translated
-#~ msgid "Offset — click the entity to offset"
-#~ msgstr "Deslocamento — clique na entidade a deslocar"
-
-# AI Translated
-#~ msgid "Offset — drag the arrow to either side, or click the number to type the distance · click empty space to apply · right-click cancels"
-#~ msgstr "Deslocamento — arraste a seta para qualquer lado ou clique no número para digitar a distância · clique em um espaço vazio para aplicar · o botão direito cancela"
-
-# AI Translated
-#~ msgid "Mirror — axis set · now click the entities to mirror · right-click cancels"
-#~ msgstr "Espelhar — eixo definido · agora clique nas entidades a espelhar · o botão direito cancela"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Mirror — axis set · %d to mirror · click another to add or remove it · click empty space to apply"
-#~ msgstr "Espelhar — eixo definido · %d a espelhar · clique em outra para adicioná-la ou removê-la · clique em um espaço vazio para aplicar"
-
-# AI Translated
-#~ msgid "Move — drag the handle, or click the number to type the distance · click empty space to apply"
-#~ msgstr "Mover — arraste a alça ou clique no número para digitar a distância · clique em um espaço vazio para aplicar"
-
-# AI Translated
-#~ msgid "Rotate — drag the handle, or click the number to type the angle · click empty space to apply"
-#~ msgstr "Rotacionar — arraste a alça ou clique no número para digitar o ângulo · clique em um espaço vazio para aplicar"
-
-# AI Translated
-#~ msgid "Scale — drag the handle, or click the number to type the factor · click empty space to apply"
-#~ msgstr "Dimensionar — arraste a alça ou clique no número para digitar o fator · clique em um espaço vazio para aplicar"
-
-# AI Translated
-#~ msgid "Array — drag the handle to set the step, click the count to type it · click empty space to apply"
-#~ msgstr "Matriz — arraste a alça para definir o passo, clique na quantidade para digitá-la · clique em um espaço vazio para aplicar"
-
-# AI Translated
-#~ msgid "Polar array — drag the handle to set the sweep, click the count to type it · click empty space to apply"
-#~ msgstr "Matriz polar — arraste a alça para definir o ângulo total, clique na quantidade para digitá-la · clique em um espaço vazio para aplicar"
-
-# AI Translated
-#~ msgid "Drag a corner to scale, the center to move · right-click when done"
-#~ msgstr "Arraste um canto para dimensionar, o centro para mover · clique com o botão direito ao terminar"
-
-# AI Translated
-#~ msgid "Coord Sys added"
-#~ msgstr "Sist. coord. adicionado"
-
-# AI Translated
-#~ msgid "Could not restore the CAD model: "
-#~ msgstr "Não foi possível restaurar o modelo CAD: "
-
-# AI Translated
-#~ msgid "Boolean needs two bodies — create or import a second solid"
-#~ msgstr "A operação booleana precisa de dois corpos — crie ou importe um segundo sólido"
-
-# AI Translated
-#~ msgid "Edit rejected: "
-#~ msgstr "Edição rejeitada: "
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid ""
-#~ "Delete %s?\n"
-#~ "\n"
-#~ "That is the feature this body was made from. Features built on it may be removed or stop working."
-#~ msgstr ""
-#~ "Excluir %s?\n"
-#~ "\n"
-#~ "Esse é o recurso a partir do qual este corpo foi criado. Os recursos construídos sobre ele podem ser removidos ou parar de funcionar."
-
-# AI Translated
-#~ msgid "Delete body"
-#~ msgstr "Excluir corpo"
-
-# AI Translated
-#~ msgid "STEP export failed: "
-#~ msgstr "Falha ao exportar STEP: "
-
-# AI Translated
-#~ msgid "Coord Sys ready"
-#~ msgstr "Sist. coord. pronto"
-
-# AI Translated
-#~ msgid "Mate needs at least two CoordSys features"
-#~ msgstr "O posicionamento precisa de pelo menos dois recursos de sistema de coordenadas"
-
-# AI Translated
-#~ msgid "Mate: CS A and CS B must be different"
-#~ msgstr "Posicionamento: SC A e SC B devem ser diferentes"
-
-# AI Translated
-#~ msgid "Invalid: "
-#~ msgstr "Inválido: "
-
-# AI Translated
-#~ msgid "Variable name:"
-#~ msgstr "Nome da variável:"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Expression for '%s':"
-#~ msgstr "Expressão para '%s':"
-
-# AI Translated
-#~ msgid "Seg"
-#~ msgstr "Seg."
-
-# AI Translated
-#~ msgid "CLOSED"
-#~ msgstr "FECHADO"
-
-# AI Translated
-#, boost-format
-#~ msgid "%1% %2%: %3% pts %4%"
-#~ msgstr "%1% %2%: %3% pts %4%"
-
-# AI Translated
-#~ msgid "Pocket (Cut)"
-#~ msgstr "Cavidade (Corte)"
-
-# AI Translated
-#~ msgid "Clear All"
-#~ msgstr "Limpar tudo"
-
-# AI Translated
-#~ msgid "Hollow this object"
-#~ msgstr "Esvaziar este objeto"
-
-# AI Translated
-#~ msgid "Preview hollowed and drilled model"
-#~ msgstr "Pré-visualizar modelo esvaziado e perfurado"
-
-# AI Translated
-#~ msgid "Closing distance"
-#~ msgstr "Distância de fechamento"
-
-# AI Translated
-#~ msgid "Hole diameter"
-#~ msgstr "Diâmetro do furo"
-
-# AI Translated
-#~ msgid "Hole depth"
-#~ msgstr "Profundidade do furo"
-
-# AI Translated
-#~ msgid "Remove selected holes"
-#~ msgstr "Remover furos selecionados"
-
-# AI Translated
-#~ msgid "Remove all holes"
-#~ msgstr "Remover todos os furos"
-
-# AI Translated
-#~ msgid "Clipping of view"
-#~ msgstr "Recorte da vista"
-
#~ msgid "Reset direction"
#~ msgstr "Redefinir direção"
-# AI Translated
-#~ msgid "Show supports"
-#~ msgstr "Mostrar suportes"
-
-# AI Translated
-#~ msgid "Hollow and drill"
-#~ msgstr "Esvaziar e perfurar"
-
#~ msgid "Head diameter"
#~ msgstr "Diâmetro da cabeça"
-# AI Translated
-#~ msgid "Lock supports under new islands"
-#~ msgstr "Travar suportes sob novas ilhas"
-
#~ msgid "Remove selected points"
#~ msgstr "Remover pontos selecionados"
-# AI Translated
-#~ msgid "Remove all points"
-#~ msgstr "Remover todos os pontos"
-
-# AI Translated
-#~ msgid "Apply changes"
-#~ msgstr "Aplicar alterações"
-
-# AI Translated
-#~ msgid "Discard changes"
-#~ msgstr "Descartar alterações"
-
-# AI Translated
-#~ msgid "Minimal points distance"
-#~ msgstr "Distância mínima entre pontos"
-
-# AI Translated
-#~ msgid "Support points density"
-#~ msgstr "Densidade dos pontos de suporte"
-
-#~ msgid "Auto-generate points"
-#~ msgstr "Pontos gerados automaticamente"
-
-# AI Translated
-#~ msgid "Manual editing"
-#~ msgstr "Edição manual"
-
-# AI Translated
-#~ msgid "SLA Support Points"
-#~ msgstr "Pontos de Suporte SLA"
-
-# AI Translated
-#~ msgid "Do you want to save your manually edited support points?"
-#~ msgstr "Deseja salvar os pontos de suporte editados manualmente?"
-
-# AI Translated
-#~ msgid "Save support points?"
-#~ msgstr "Salvar pontos de suporte?"
-
-# AI Translated
-#~ msgid "Autogeneration will erase all manually edited points."
-#~ msgstr "A geração automática apagará todos os pontos editados manualmente."
-
-# AI Translated
-#~ msgid "Are you sure you want to do it?"
-#~ msgstr "Tem certeza de que deseja fazer isso?"
-
-# AI Translated
-#~ msgid "SLA gizmo keyboard shortcuts"
-#~ msgstr "Atalhos de teclado do gizmo SLA"
-
-# AI Translated
-#~ msgid "Note: some shortcuts work in (non)editing mode only."
-#~ msgstr "Observação: alguns atalhos funcionam apenas dentro ou apenas fora do modo de edição."
-
#~ msgid "Left click"
#~ msgstr "Clique esquerdo"
-# AI Translated
-#~ msgid "Add point"
-#~ msgstr "Adicionar ponto"
-
#~ msgid "Right click"
#~ msgstr "Clique direito"
-# AI Translated
-#~ msgid "Remove point"
-#~ msgstr "Remover ponto"
-
-# AI Translated
-#~ msgid "Move point"
-#~ msgstr "Mover ponto"
-
-# AI Translated
-#~ msgid "Add point to selection"
-#~ msgstr "Adicionar ponto à seleção"
-
-# AI Translated
-#~ msgid "Remove point from selection"
-#~ msgstr "Remover ponto da seleção"
-
-# AI Translated
-#~ msgid "Select by rectangle"
-#~ msgstr "Selecionar por retângulo"
-
-# AI Translated
-#~ msgid "Deselect by rectangle"
-#~ msgstr "Desmarcar por retângulo"
-
-# AI Translated
-#~ msgid "Select all points"
-#~ msgstr "Selecionar todos os pontos"
-
-# AI Translated
-#~ msgid "Move clipping plane"
-#~ msgstr "Mover plano de recorte"
-
-# AI Translated
-#~ msgid "Reset clipping plane"
-#~ msgstr "Redefinir plano de recorte"
-
-# AI Translated
-#~ msgid "Switch to editing mode"
-#~ msgstr "Mudar para o modo de edição"
-
-# AI Translated
-#~ msgctxt "Design"
-#~ msgid "Union"
-#~ msgstr "Unir"
-
-# AI Translated
-#~ msgid "target is not a sheet body"
-#~ msgstr "o alvo não é um corpo de superfície"
-
-# AI Translated
-#~ msgid "Drill a hole, centred on a picked face or placed on a plane"
-#~ msgstr "Fazer um furo, centralizado em uma face selecionada ou colocado em um plano"
-
-# AI Translated
-#~ msgid "Shell needs a solid body"
-#~ msgstr "A casca precisa de um corpo sólido"
-
-# AI Translated
-#~ msgid "Split needs a solid body"
-#~ msgstr "A divisão precisa de um corpo sólido"
-
-# AI Translated
-#~ msgid "Pattern on curve needs a body and a curve"
-#~ msgstr "O padrão em curva precisa de um corpo e de uma curva"
-
-# AI Translated
-#~ msgid "A mate needs two coordinate systems"
-#~ msgstr "Um posicionamento precisa de dois sistemas de coordenadas"
-
-# AI Translated
-#~ msgid "Align needs a body"
-#~ msgstr "O alinhamento precisa de um corpo"
-
-# AI Translated
-#~ msgctxt "Design"
-#~ msgid "Coord Sys"
-#~ msgstr "Sist. coord."
-
-# AI Translated
-#~ msgctxt "Design"
-#~ msgid "Mass"
-#~ msgstr "Massa"
-
-# AI Translated
-#~ msgctxt "Design"
-#~ msgid "Colour"
-#~ msgstr "Cor"
-
-# AI Translated
-#~ msgid "Set the selected body's display colour"
-#~ msgstr "Definir a cor de exibição do corpo selecionado"
-
-# AI Translated
-#~ msgctxt "Design"
-#~ msgid "Centre rectangle"
-#~ msgstr "Retângulo pelo centro"
-
-# AI Translated
-#~ msgctxt "Design"
-#~ msgid "Centre circle"
-#~ msgstr "Círculo pelo centro"
-
-# AI Translated
-#~ msgctxt "Design"
-#~ msgid "Centre-point arc"
-#~ msgstr "Arco pelo centro"
-
-# AI Translated
-#~ msgid "Triangle — click centre, then a vertex"
-#~ msgstr "Triângulo — clique no centro e depois em um vértice"
-
-# AI Translated
-#~ msgid "Square — click centre, then a vertex"
-#~ msgstr "Quadrado — clique no centro e depois em um vértice"
-
-# AI Translated
-#~ msgid "Pentagon — click centre, then a vertex"
-#~ msgstr "Pentágono — clique no centro e depois em um vértice"
-
-# AI Translated
-#~ msgid "Hexagon — click centre, then a vertex"
-#~ msgstr "Hexágono — clique no centro e depois em um vértice"
-
-# AI Translated
-#~ msgid "Octagon — click centre, then a vertex"
-#~ msgstr "Octógono — clique no centro e depois em um vértice"
-
-# AI Translated
-#~ msgid "Dodecagon — click centre, then a vertex"
-#~ msgstr "Dodecágono — clique no centro e depois em um vértice"
-
-# AI Translated
-#~ msgid "Type text; its outline is added to this sketch as editable lines"
-#~ msgstr "Digite um texto; o contorno dele é adicionado a este esboço como linhas editáveis"
-
-# AI Translated
-#~ msgid "Major"
-#~ msgstr "Eixo maior"
-
-# AI Translated
-#~ msgid "Minor"
-#~ msgstr "Eixo menor"
-
-# AI Translated
-#~ msgid "Extend: click a line/arc that can reach another live entity"
-#~ msgstr "Estender: clique em uma linha/arco que possa alcançar outra entidade ativa"
-
-# AI Translated
-#~ msgid "Trim: click a segment where it crosses another live entity"
-#~ msgstr "Aparar: clique em um segmento onde ele cruza outra entidade ativa"
-
-# AI Translated
-#~ msgid "closed profile(s)"
-#~ msgstr "perfil(is) fechado(s)"
-
-#~ msgid "Failed to generate cali G-code"
-#~ msgstr "Falha ao gerar o G-code de calibração"
-
-# AI Translated
-#~ msgid "Multiply"
-#~ msgstr "Multiplicar"
-
-# AI Translated
-#~ msgid " and "
-#~ msgstr " e "
-
-# AI Translated
-#~ msgid "cannot be mixed. Please select the same filament type."
-#~ msgstr "não podem ser misturados. Selecione o mesmo tipo de filamento."
-
-# AI Translated
-#~ msgid "An error occurred loading "
-#~ msgstr "Ocorreu um erro ao carregar "
-
-# AI Translated
-#~ msgid "/"
-#~ msgstr "/"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Load %s to "
-#~ msgstr "Carregar %s em "
-
-# AI Translated
-#~ msgid "In the Design tab, draw a mate connector as a small face instead of the conventional disc with a roll quadrant. A face's orientation is read without being learned. Turn this off for the conventional CAD representation."
-#~ msgstr "Na aba Design, desenha um conector de posicionamento como uma pequena face em vez do disco convencional com um quadrante de giro. A orientação de uma face é lida sem precisar ser aprendida. Desative para a representação CAD convencional."
-
-# AI Translated
-#~ msgid "Expert"
-#~ msgstr "Especialista"
-
-# AI Translated
-#~ msgid "Simple"
-#~ msgstr "Simples"
-
-# AI Translated
-#~ msgid "Click points; click first / right-click to close the loop"
-#~ msgstr "Clique nos pontos; clique no primeiro / clique com o botão direito para fechar o laço"
-
-# AI Translated
-#~ msgid "X hint X"
-#~ msgstr "Dica de X: X"
-
-# AI Translated
-#~ msgid "X hint Y"
-#~ msgstr "Dica de X: Y"
-
-# AI Translated
-#~ msgid "X hint Z"
-#~ msgstr "Dica de X: Z"
-
-# AI Translated
-#~ msgid " — the eye suppresses this mate"
-#~ msgstr " — o olho suprime este posicionamento"
-
-# AI Translated
-#~ msgid "Del"
-#~ msgstr "Excl."
-
-# AI Translated
-#~ msgid "Sketch kept — Finish to commit it, Cancel to discard"
-#~ msgstr "Esboço mantido — Terminar para confirmá-lo, Cancelar para descartá-lo"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Editing: Sketch %d · N = look normal to the plane · Finish or Cancel in the toolbar"
-#~ msgstr "Editando: Esboço %d · N = olhar normal ao plano · Terminar ou Cancelar na barra de ferramentas"
-
-# AI Translated
-#~ msgid "Editing sketch — drag a handle or click a quote to edit"
-#~ msgstr "Editando esboço — arraste uma alça ou clique em uma cota para editar"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Showing %s actions"
-#~ msgstr "Mostrando %s ações"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "%s actions"
-#~ msgstr "%s ações"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "%s tabs"
-#~ msgstr "%s abas"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "%s matches"
-#~ msgstr "%s correspondências"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "%s · on %s"
-#~ msgstr "%s · em %s"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Sketching on %s — pick a tool"
-#~ msgstr "Esboçando em %s — escolha uma ferramenta"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid ""
-#~ "Drawing on %s.\n"
-#~ "Pick a tool, or press Menu for the list."
-#~ msgstr ""
-#~ "Desenhando em %s.\n"
-#~ "Escolha uma ferramenta ou pressione Menu para ver a lista."
-
-# AI Translated
-#~ msgid "Colour"
-#~ msgstr "Cor"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Body %d "
-#~ msgstr "Corpo %d "
-
-# AI Translated
-#~ msgid "vertex selected — click again for the whole body"
-#~ msgstr "vértice selecionado — clique novamente para o corpo inteiro"
-
-# AI Translated
-#~ msgid "selected (whole body) — right-click for what applies to it"
-#~ msgstr "selecionado (corpo inteiro) — clique com o botão direito para ver o que se aplica a ele"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "face %d selected — right-click to push/pull it, or click again for the whole body"
-#~ msgstr "face %d selecionada — clique com o botão direito para empurrá-la/puxá-la, ou clique novamente para o corpo inteiro"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "edge %d selected — Fillet/Chamfer to dress it, or click again for the whole body"
-#~ msgstr "aresta %d selecionada — Filete/Chanfro para arredondá-la ou chanfrá-la, ou clique novamente para o corpo inteiro"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "placed (%.1f, %.1f, %.1f) mm — drag arrows to move, rings to rotate"
-#~ msgstr "colocado em (%.1f, %.1f, %.1f) mm — arraste as setas para mover, os anéis para rotacionar"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "%d degrees of freedom"
-#~ msgstr "%d graus de liberdade"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Imported %d solid(s) — pick a face or edge, then Fillet / Cut / Shell to modify"
-#~ msgstr "%d sólido(s) importado(s) — selecione uma face ou aresta e depois Filete / Cortar / Casca para modificar"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Imported as an open shell (not watertight): %d boundary edge(s), %d non-manifold edge(s) — %d triangles → %d faces. The source mesh has holes or duplicated geometry; boolean features may fail on it"
-#~ msgstr "Importado como uma casca aberta (não estanque): %d aresta(s) de borda, %d aresta(s) não-manifold — %d triângulos → %d faces. A malha de origem tem furos ou geometria duplicada; recursos booleanos podem falhar nela"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Sketch added on %s — select it, then right-click to Extrude"
-#~ msgstr "Esboço adicionado em %s — selecione-o e clique com o botão direito para extrudar"
-
-# AI Translated
-#, c-format
-#~ msgid "%zu interference pairs, worst %.2f mm³"
-#~ msgstr "%zu pares com interferência, pior %.2f mm³"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "the picked face of Body %d"
-#~ msgstr "a face selecionada do Corpo %d"
-
-# AI Translated
-#~ msgid "the picked face"
-#~ msgstr "a face selecionada"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "%d selected · Del removes them · Shift-click adds · double-click takes the whole loop"
-#~ msgstr "%d selecionado(s) · Del os remove · Shift+clique adiciona · clique duplo seleciona o laço inteiro"
-
-# AI Translated
-#, c-format, boost-format
-#~ msgid "Section view — showing the %s half"
-#~ msgstr "Vista de seção — mostrando a metade %s"
-
-# AI Translated
-#~ msgid "upper"
-#~ msgstr "superior"
-
-# AI Translated
-#~ msgid "lower"
-#~ msgstr "inferior"
-
-# AI Translated
-#, c-format
-#~ msgid "Redo (%zu more)"
-#~ msgstr "Refazer (mais %zu)"
-
-# AI Translated
-#, c-format
-#~ msgid "Undo (%zu more)"
-#~ msgstr "Desfazer (mais %zu)"
-
#~ msgid "Section View"
#~ msgstr "Vista de Seção"
@@ -31495,10 +36171,6 @@ msgstr ""
#~ msgid "Switch Camera View"
#~ msgstr "Trocar Vista da Câmera"
-# AI Translated
-#~ msgid "Renders cast shadows on the plate, other objects, and each object onto itself in realistic view."
-#~ msgstr "Renderiza sombras projetadas na mesa, em outros objetos e de cada objeto sobre si mesmo na visualização realista."
-
#~ msgid "Support/Color Painting: adjust section position"
#~ msgstr "Suporte/Pintura em cores: ajustar a posição da seção"
@@ -31508,14 +36180,6 @@ msgstr ""
#~ msgid "Displays current viewport FPS in the top-right corner."
#~ msgstr "Exibe o FPS atual da janela de visualização no canto superior direito."
-# AI Translated
-#~ msgid "Publish 3MF Wiki"
-#~ msgstr "Documentação de Publicar 3MF"
-
-# AI Translated
-#~ msgid "Publish 3MF Video Guide"
-#~ msgstr "Guia em vídeo de Publicar 3MF"
-
#~ msgid "Toolbar"
#~ msgstr "Barra de Ferramentas"
@@ -31600,18 +36264,6 @@ msgstr ""
#~ msgid " minimum drying temperature is "
#~ msgstr " temperatura mínima de secagem é "
-# AI Translated
-#~ msgid "needs"
-#~ msgstr "precisa de"
-
-# AI Translated
-#~ msgid "not enabled"
-#~ msgstr "não ativado"
-
-# AI Translated
-#~ msgid "material not published"
-#~ msgstr "material não publicado"
-
#~ msgid "Select the language"
#~ msgstr "Selecione o idioma"
@@ -31717,9 +36369,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Falha ao calcular a largura da linha de %1%. Não é possível obter o valor de “%2%”."
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Espaçamento inválido fornecido para Flow::with_spacing(), verifique a altura da camada e a largura da extrusão."
-
#~ msgid "Renders cast shadows on the plate in realistic view."
#~ msgstr "Renderiza sombras na placa em uma visualização realista."
@@ -31796,7 +36445,7 @@ msgstr ""
#~ msgstr "O conteúdo da predefinição é muito grande para ser sincronizado com a nuvem (excede 1 MB). Reduza o tamanho da predefinição removendo configurações personalizadas ou use-o apenas localmente."
#~ msgid "Enable adaptive pressure advance for overhangs (beta)"
-#~ msgstr "Habilitar pressure advance adaptativo para saliências (beta)"
+#~ msgstr "Habilitar Pressure Advance adaptativo para saliências (beta)"
#~ msgid "Pressure advance for bridges"
#~ msgstr "Pressure advance para pontes"
@@ -31806,7 +36455,7 @@ msgstr ""
#~ "\n"
#~ "A lower PA value when printing bridges helps reduce the appearance of slight under extrusion immediately after bridges. This is caused by the pressure drop in the nozzle when printing in the air and a lower PA helps counteract this."
#~ msgstr ""
-#~ "Valor do pressure advance para pontes. Defina como 0 para desabilitar.\n"
+#~ "Valor do Pressure Advance para pontes. Defina como 0 para desabilitar.\n"
#~ "\n"
#~ "Um valor de PA mais baixo ao imprimir pontes ajuda a reduzir a aparência de leve subextrusão imediatamente após as pontes. Isso é causado pela queda de pressão no bico ao imprimir no ar e um PA mais baixo ajuda a neutralizar isso."
@@ -32015,7 +36664,7 @@ msgstr ""
#~ msgstr ""
#~ "Habilite esta opção para desacelerar a impressão em áreas onde os perímetros podem ter se curvado para cima. Por exemplo, uma desaceleração adicional será aplicada ao imprimir saliências em cantos afiados, como a parte frontal do casco Benchy, reduzindo a curvatura que se acumula por várias camadas.\n"
#~ "\n"
-#~ "Geralmente, é recomendável ter esta opção ativada, a menos que o resfriamento da impressora seja potente o suficiente ou a velocidade de impressão lenta o suficiente para que a curvatura do perímetro não aconteça. Se estiver imprimindo com uma alta velocidade de perímetro externo, este parâmetro pode introduzir pequenos artefatos ao desacelerar devido à grande variação nas velocidades de impressão. Se você notar artefatos, certifique-se de que seu pressure advance esteja ajustado corretamente.\n"
+#~ "Geralmente, é recomendável ter esta opção ativada, a menos que o resfriamento da impressora seja potente o suficiente ou a velocidade de impressão lenta o suficiente para que a curvatura do perímetro não aconteça. Se estiver imprimindo com uma alta velocidade de perímetro externo, este parâmetro pode introduzir pequenos artefatos ao desacelerar devido à grande variação nas velocidades de impressão. Se você notar artefatos, certifique-se de que seu Pressure Advance esteja ajustado corretamente.\n"
#~ "\n"
#~ "Nota: quando esta opção estiver habilitada, os perímetros de saliência são tratados como saliências, o que significa que a velocidade de saliência é aplicada mesmo se o perímetro de saliência for parte de uma ponte. Por exemplo, quando os perímetros estiverem 100% salientes, sem nenhuma parede apoiando-os por baixo, a velocidade de saliência de 100% será aplicada."
@@ -32302,7 +36951,7 @@ msgstr ""
#~ msgstr "A posição da torre de purga ultrapassou os limites da placa de impressão e foi reposicionada para a borda válida mais próxima."
#~ msgid "Enabling both precise Z height and the prime tower may cause the size of prime tower to increase. Do you still want to enable?"
-#~ msgstr "Habilitar a altura Z precisa e a torre de preparação juntas pode causar o aumento de tamanho da torre de purga. Deseja habilitar mesmo assim?"
+#~ msgstr "Habilitar a altura Z precisa e a torre de purga juntas pode causar o aumento de tamanho da torre de purga. Deseja habilitar mesmo assim?"
#~ msgid "Missing BambuSource component registered for media playing! Please re-install BambuStudio or seek after-sales help."
#~ msgstr "Componente BambuSource ausente registrado para reprodução de mídia! Reinstale o Bambu Studio ou procure ajuda pós-venda."
@@ -33229,7 +37878,7 @@ msgstr ""
#~ msgstr "Diâmetros de bico diferentes e diâmetros de filamento diferentes não são permitidos quando a torre de purga está ativa."
#~ msgid "Ooze prevention is currently not supported with the prime tower enabled."
-#~ msgstr "A prevenção de vazamento atualmente não é suportada com a torre de prepao ativa."
+#~ msgstr "A prevenção de vazamento atualmente não é suportada com a torre de purga ativa."
#~ msgid "Interlocking depth of a segmented region. Zero disables this feature."
#~ msgstr "Profundidade de intertravamento de uma região segmentada. Zero desativa essa funcionalidade."
diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po
index f9225f8bc1..8215dec8f6 100644
--- a/localization/i18n/ru/OrcaSlicer_ru.po
+++ b/localization/i18n/ru/OrcaSlicer_ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: OrcaSlicer V2.5.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2026-02-25 13:38+0300\n"
"Last-Translator: Felix14_v2\n"
"Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg \n"
@@ -359,8 +359,11 @@ msgstr "Чтение "
msgid "Please wait"
msgstr "Подождите"
-msgid "Reading"
-msgstr "Чтение"
+# AI Translated
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Стойка индукционных хотэндов: чтение %d/%d"
msgid "Running..."
msgstr "Выполнение..."
@@ -523,9 +526,13 @@ msgstr "Гизмо: Поверхностью на стол"
msgid "Lay on Face"
msgstr "Поверхностью на стол"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Количество катушек превышает возможности инструмента. Для покраски будут доступны только первые %1%."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Количество материалов превышает максимум, который поддерживает инструмент рисования. В нём будут доступны только первые %1% материал."
+msgstr[1] "Количество материалов превышает максимум, который поддерживает инструмент рисования. В нём будут доступны только первые %1% материала."
+msgstr[2] "Количество материалов превышает максимум, который поддерживает инструмент рисования. В нём будут доступны только первые %1% материалов."
msgid "Color Painting"
msgstr "Покраска"
@@ -578,8 +585,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Горячая клавиша "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Горячая клавиша %d"
msgid "Triangle"
msgstr "Треугольник"
@@ -672,6 +681,9 @@ msgstr "мм"
msgid "Part selection"
msgstr "Выбрать часть"
+msgid "Select multiple objects"
+msgstr "Выбор нескольких моделей"
+
msgid "Fixed step drag"
msgstr "Сместить с шагом"
@@ -732,9 +744,79 @@ msgstr "Часть"
msgid "Relative"
msgstr "Прибавить"
+msgid "Selection"
+msgstr "Элемент"
+
+msgid "Plate"
+msgstr "Стол"
+
+msgid "Distribute"
+msgstr ""
+
msgid "Coordinate system used for transform actions."
msgstr "Опорная система координат для изменения положения."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Выровнять по левому краю"
+
+# AI Translated
+# Needs human review: Align/Distribute menu (object right-click): left-right/front-back/top-bottom are rendered as по ширине/глубине/высоте (the menu appends X/Y/Z); check it reads as aligning the objects' centers along that axis.
+msgid "Align left-right center"
+msgstr "Выровнять центры по ширине"
+
+# AI Translated
+msgid "Align right"
+msgstr "Выровнять по правому краю"
+
+# AI Translated
+msgid "Align front"
+msgstr "Выровнять по переднему краю"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Выровнять центры по глубине"
+
+# AI Translated
+msgid "Align back"
+msgstr "Выровнять по заднему краю"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Выровнять по нижнему краю"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Выровнять центры по высоте"
+
+# AI Translated
+msgid "Align top"
+msgstr "Выровнять по верхнему краю"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Распределить по ширине"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Распределить по глубине"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Распределить по высоте"
+
+msgid "Drop"
+msgstr "Опустить на стол"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
msgid "Absolute"
msgstr "Поворот"
@@ -836,9 +918,6 @@ msgstr "Угол скоса"
msgid "Cut position"
msgstr "Положение сечения"
-msgid "Build Volume"
-msgstr "Габарит"
-
msgid "Multiple"
msgstr "Множественный паз"
@@ -1016,13 +1095,25 @@ msgstr "текущее положение секущей плоскости с
msgid "Connector"
msgstr "Соединение"
-# Подставляется список моделей, через запятую
+# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"У модели (%1%) образовались дубликаты соединений, что может привести к их пропуску при нарезке.\n"
+"Пожалуйста, сообщите команде разработчиков условия, при которых это произошло.\n"
+"Заранее спасибо."
+msgstr[1] ""
+"У моделей (%1%) образовались дубликаты соединений, что может привести к их пропуску при нарезке.\n"
+"Пожалуйста, сообщите команде разработчиков условия, при которых это произошло.\n"
+"Заранее спасибо."
+msgstr[2] ""
"У моделей (%1%) образовались дубликаты соединений, что может привести к их пропуску при нарезке.\n"
"Пожалуйста, сообщите команде разработчиков условия, при которых это произошло.\n"
"Заранее спасибо."
@@ -1088,9 +1179,13 @@ msgstr "Низкая"
msgid "Extra low"
msgstr "Очень низкая"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "Треугольников: %d"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% треугольник"
+msgstr[1] "%1% треугольника"
+msgstr[2] "%1% треугольников"
msgid "Show wireframe"
msgstr "Показать сетку"
@@ -1101,6 +1196,17 @@ msgstr "Дождитесь окончания расчёта упрощения
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Операция уже отменена. Пожалуйста, подождите несколько секунд."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "Упрощение модели отменено"
+
+msgid "Wiki Guide"
+msgstr "Руководство"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Видеоруководство"
+
msgid "Enforce seam"
msgstr "Принудительный шов"
@@ -1152,6 +1258,14 @@ msgstr "Разместить на поверхности"
msgid "Emboss"
msgstr "Объёмный текст"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "В стиле нет активного шрифта. Выберите подходящий."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont загружен неправильно."
+
msgid "NORMAL"
msgstr "ОБЫЧНЫЙ"
@@ -1817,11 +1931,25 @@ msgstr "Диаметр"
msgid "Length"
msgstr "Длина"
-msgid "Selection"
-msgstr "Элемент"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Грань 1 (неподвижная)"
-msgid " (Moving)"
-msgstr " (подвижная)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Грань 2 (подвижная)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Точка 1 (неподвижная)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Точка 2 (подвижная)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Элемент 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1837,14 +1965,9 @@ msgstr ""
"Выберите 2 точки или окружности на моделях\n"
"и укажите расстояние между ними."
-msgid "Face"
-msgstr "Грань"
-
-msgid " (Fixed)"
-msgstr " (неподвижная)"
-
-msgid "Point"
-msgstr "Точка"
+# AI Translated
+msgid "Selection 2"
+msgstr "Элемент 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1947,6 +2070,18 @@ msgstr "Запуск режима сборки"
msgid "Leaving Assembly gizmo"
msgstr "Выход из режима сборки"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2134,14 +2269,16 @@ msgstr ""
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
+# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
-"Не удалось установить среду выполнения WebView2.\n"
-"Некоторые страницы (такие как мастер настройки) будут недоступны до момента установки.\n"
-"Необходимо выполнить установку в ручном режиме с https://developer.microsoft.com/microsoft-edge/webview2 и перезапустить OrcaSlicer."
+"Не удалось установить среду выполнения Microsoft WebView2.\n"
+"Некоторые страницы (такие как мастер настройки) могут отображаться пустыми до её установки.\n"
+"Установите её вручную с %1% и перезапустите Orca Slicer."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2366,6 +2503,66 @@ msgstr "Ограничение сетевого плагина"
msgid "Privacy Policy Update"
msgstr "Обновление политики конфиденциальности"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Все ваши профили материалов доступны на принтерах, для которых они были созданы."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Перенести профили материалов"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 изменил структуру многих системных профилей материалов, чтобы исправить неверные профили и подготовиться к будущим функциям. Из-за этого перечисленные ниже профили больше не отображаются на некоторых принтерах, для которых они были созданы. Приносим извинения за неудобства: это разовое исправление.\n"
+"\n"
+"Добавить эти принтеры в ваши профили обратно? Сначала будет создана резервная копия ваших профилей. Это можно сделать и позже через Помощь > Перенести профили материалов."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (на основе %2%)"
+
+msgid "Don't remind me again"
+msgstr "Больше не показывать"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Не удалось создать резервную копию ваших профилей, поэтому они не были перенесены."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Не удалось заблокировать папку пользовательских профилей, поэтому ничего не было перенесено. Возможно, другой экземпляр OrcaSlicer сохраняет профили; повторите попытку позже через Помощь > Перенести профили материалов."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Не удалось перенести ваши профили материалов. Резервная копия ваших профилей сохранена в:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Ваши профили материалов перенесены. Выберите их снова в списке материалов там, где вы их использовали.\n"
+"\n"
+"Резервная копия ваших профилей сохранена в:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Не удалось перенести эти профили:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "профиль Orca Cloud (идентификатор: «%s»)"
@@ -2478,6 +2675,9 @@ msgstr "Список плагинов обновлён."
msgid "Failed to refresh plugins: %s"
msgstr "Не удалось обновить список плагинов: %s"
+msgid "Unknown error"
+msgstr "Неизвестная ошибка"
+
# AI Translated
msgid "Select plugin package"
msgstr "Выберите пакет плагина"
@@ -3003,6 +3203,22 @@ msgstr "Перезагрузить всё"
msgid "Reload all from disk"
msgstr "Перезагрузить всё с диска"
+# AI Translated
+msgid "Fix All"
+msgstr "Восстановить все"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Восстановить все модели на текущем столе"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Восстановить все столы"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Восстановить все модели на всех столах"
+
msgid "Auto Rotate"
msgstr "Положить всё на стол"
@@ -3057,8 +3273,13 @@ msgstr " (с потерей цвета)"
msgid "Center"
msgstr "По центру"
-msgid "Drop"
-msgstr "Опустить на стол"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Выровнять/Распределить"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Выровнять и распределить модели"
# Согласуем с содержимым уведомления (отображается, если не нажато "больше не
# показывать")
@@ -3367,6 +3588,14 @@ msgstr[0] "Не удалось восстановить следующую мо
msgstr[1] "Не удалось восстановить следующие модели"
msgstr[2] "Не удалось восстановить следующие модели"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d модель не требовала восстановления."
+msgstr[1] "%1$d модели не требовали восстановления."
+msgstr[2] "%1$d моделей не требовали восстановления."
+
msgid "Repairing was canceled"
msgstr "Восстановление отменено"
@@ -3442,9 +3671,6 @@ msgstr "Без каймы"
msgid "Outer wall speed"
msgstr "𝑽 внеш. периметров"
-msgid "Plate"
-msgstr "Стол"
-
msgid "Brim"
msgstr "Кайма"
@@ -3532,9 +3758,6 @@ msgstr "Добавить шаблон"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Вставить шаблон пользовательского G-code в начале этого слоя."
-msgid "Filament "
-msgstr "Пруток "
-
msgid "Change filament at the beginning of this layer."
msgstr "Сменить материал в начале этого слоя."
@@ -3624,9 +3847,10 @@ msgstr "Изменить в любом случае"
msgid "Off"
msgstr "Выкл"
-# Очередной оверюзинг строки в нескольких местах; невозможно перевести универсально. UPD: а точно ли оверюзинг? Поиск по коду выдаёт только одно место. Поэтому согласовываю с чувствительностью фильтрации внутренних мостов.
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
-msgstr "Низкая"
+msgstr "Фильтр"
msgid "Enabling filtration redirects the right fan to filter gas, which may reduce cooling performance."
msgstr "Включение фильтрации направляет поток воздуха правого вентилятора через канал с фильтром, что может снизить эффективность охлаждения."
@@ -3744,11 +3968,20 @@ msgstr "Подтверждение экструзии"
msgid "Check filament location"
msgstr "Проверка расположения прутка"
-msgid "Switch"
-msgstr "Переключить"
+# AI Translated
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Приостановить"
-msgid "hotend"
-msgstr "хотэнд"
+# AI Translated
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Переключение экструдера"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Смена хотэнда"
msgid "Wait for AMS cooling"
msgstr "Дождитесь охлаждения AMS"
@@ -3912,8 +4145,11 @@ msgstr "Модель %s имеет нулевой размер и не може
msgid "Arranging"
msgstr "Расстановка"
-msgid "Arranging "
-msgstr "Расстановка: "
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Расстановка: %1%"
msgid "Arranging canceled."
msgstr "Расстановка отменена."
@@ -3950,8 +4186,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Ориентация..."
-msgid "Orienting"
-msgstr "Ориентация"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Ориентация: %1%"
msgid "Orienting canceled."
msgstr "Ориентация отменена."
@@ -3959,6 +4198,12 @@ msgstr "Ориентация отменена."
msgid "Filling"
msgstr "Заполнение стола"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Заполнение стола: %1%"
+
msgid "Bed filling canceled."
msgstr "Заполнение стола отменено."
@@ -3974,6 +4219,35 @@ msgstr "Поиск оптимального положения отменён."
msgid "Orientation found."
msgstr "Оптимальное положения найдено."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Наилучшее качество поверхности"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Подбор поворота модели для наилучшего качества поверхности."
+
+# AI Translated
+# Needs human review: Orient tool method name (RotoptimizeJob); English 'Reduced overhang slopes' is vague, rendered as 'fewer overhangs'. Check it matches the method's behaviour.
+msgid "Reduced overhang slopes"
+msgstr "Меньше нависаний"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Подбор поворота модели с минимальным количеством нависаний, требующих поддержек.\n"
+"Если высота подъёма не задана, метод постарается найти лучшую поверхность модели для контакта со столом."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Минимальная высота по Z"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Поворот модели для получения минимальной высоты по Z и сокращения времени печати."
+
msgid "Logging in"
msgstr "Авторизация"
@@ -4269,6 +4543,16 @@ msgstr "Недавние проекты"
msgid "Go to Plate"
msgstr "Перейти к столу"
+msgid "Device"
+msgstr "Принтер"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Принтер (веб)"
+
+msgid "Multi-device"
+msgstr "Принтеры"
+
msgid "AMS Materials Setting"
msgstr "Настройка материалов AMS"
@@ -4295,9 +4579,6 @@ msgstr "Введённое значение должно быть больше %
msgid "Factors of Flow Dynamics Calibration"
msgstr "Коэф. калиб. динам. потока"
-msgid "Wiki Guide"
-msgstr "Руководство"
-
msgid "PA Profile"
msgstr "Профиль PA"
@@ -4327,6 +4608,14 @@ msgstr "Пожалуйста, введите допустимое значени
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Пожалуйста, введите допустимое значение (K в диапазоне %.1f~%.1f, N в диапазоне %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Избранные материалы"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Все материалы"
+
# Дичь какая-то бамбуковская с терминами, требуется проверка.
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
@@ -4649,11 +4938,11 @@ msgstr "Сетевой плагин установлен, для его загр
msgid "Restart Required"
msgstr "Требуется перезапуск."
-msgid "Please home all axes (click "
-msgstr "Пожалуйста, припаркуйте все оси в начало координат (нажав "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") для определения положения печатной головы. Это предотвращает перемещение за пределы области печати и износ оборудования."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Пожалуйста, припаркуйте все оси в начало координат (нажмите %1%), чтобы определить положение печатающей головы. Это предотвращает перемещение за пределы области печати и износ оборудования."
msgid "Go Home"
msgstr "На главную"
@@ -4668,6 +4957,10 @@ msgstr "Произошла критическая ошибка: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Пожалуйста, сохраните проект и перезапустите программу."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Неизвестное исключение C++."
+
msgid "Processing G-Code from previous file…"
msgstr "Обработка G-code из предыдущего файла…"
@@ -4891,6 +5184,14 @@ msgstr "Автоматически подстроить под предел (%g
msgid "Adjust"
msgstr "Подстроиться"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Подложка и защитный кожух недоступны на ленточных принтерах.\n"
+"Они были отключены."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5762,9 +6063,6 @@ msgstr "Выполнить нарезку в соответствии с опт
msgid "Filament Grouping"
msgstr "Группировка материалов"
-msgid "Why this grouping"
-msgstr "Подробнее"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Заправьте принтер в соответствии с группировкой."
@@ -5774,41 +6072,53 @@ msgstr "Совет:"
msgid "Current grouping of slice result is not optimal."
msgstr "Текущая группировка материалов не оптимальна."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr ""
-"Сравнение с оптимальной:\n"
-"потери материала: %1% г, лишние смены прутка: %2%"
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Больше на %1% г материала и на %2% смену по сравнению с оптимальной группировкой."
+msgstr[1] "Больше на %1% г материала и на %2% смены по сравнению с оптимальной группировкой."
+msgstr[2] "Больше на %1% г материала и на %2% смен по сравнению с оптимальной группировкой."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr ""
-"Сравнение с оптимальной:\n"
-"потери материала: %1% г, экономия смен прутка: %2%"
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Больше на %1% г материала, но на %2% смену меньше по сравнению с оптимальной группировкой."
+msgstr[1] "Больше на %1% г материала, но на %2% смены меньше по сравнению с оптимальной группировкой."
+msgstr[2] "Больше на %1% г материала, но на %2% смен меньше по сравнению с оптимальной группировкой."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr ""
-"Сравнение с оптимальной:\n"
-"экономия материала: %1% г, лишние смены прутка: %2%"
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Меньше на %1% г материала, но на %2% смену больше по сравнению с оптимальной группировкой."
+msgstr[1] "Меньше на %1% г материала, но на %2% смены больше по сравнению с оптимальной группировкой."
+msgstr[2] "Меньше на %1% г материала, но на %2% смен больше по сравнению с оптимальной группировкой."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr ""
-"Сравнение с печатью одним соплом:\n"
-"экономия материала: %1% г, экономия смен прутка: %2%"
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Меньше на %1% г материала и на %2% смену по сравнению с принтером с одним соплом."
+msgstr[1] "Меньше на %1% г материала и на %2% смены по сравнению с принтером с одним соплом."
+msgstr[2] "Меньше на %1% г материала и на %2% смен по сравнению с принтером с одним соплом."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr ""
-"Сравнение с печатью одним соплом:\n"
-"экономия материала: %1% г, лишние смены прутка: %2%"
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Меньше на %1% г материала, но на %2% смену больше по сравнению с принтером с одним соплом."
+msgstr[1] "Меньше на %1% г материала, но на %2% смены больше по сравнению с принтером с одним соплом."
+msgstr[2] "Меньше на %1% г материала, но на %2% смен больше по сравнению с принтером с одним соплом."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr ""
-"Сравнение с печатью одним соплом:\n"
-"потери материала: %1% г, экономия смен прутка: %2%"
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Больше на %1% г материала, но на %2% смену меньше по сравнению с принтером с одним соплом."
+msgstr[1] "Больше на %1% г материала, но на %2% смены меньше по сравнению с принтером с одним соплом."
+msgstr[2] "Больше на %1% г материала, но на %2% смен меньше по сравнению с принтером с одним соплом."
msgid "Set to Optimal"
msgstr "Оптимизировать"
@@ -5967,11 +6277,60 @@ msgstr "Изменить размер инструмента"
msgid "Sequence"
msgstr "Последовательность"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Центр масс стола"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Центр масс части"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Центр масс поддержек"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Центр масс сборки"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Центр масс модели"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Напечатано полностью"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Напечатано до слоя %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Вес"
+
+msgid "Volume"
+msgstr "Объём"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Положение центра в габаритах"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Габаритные размеры"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Момент инерции"
+
msgid "Object selection"
msgstr "Выбрать объект"
-msgid "number keys"
-msgstr "(цифры)"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "Цифровые клавиши 1~16"
msgid "Number keys can quickly change the color of objects"
msgstr "Быстро переназначить цвет"
@@ -6179,9 +6538,20 @@ msgstr "Оси координат"
msgid "Gridlines"
msgstr "Разметка"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Имена моделей"
+# AI Translated
+msgid "Center of mass"
+msgstr "Центр масс"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Показать исходный G-code (только для ленточных принтеров)"
+
# AI Translated
msgid "Move section plane"
msgstr "Перемещение секущей плоскости"
@@ -6230,7 +6600,7 @@ msgstr "Объём:"
msgid "Size:"
msgstr "Размер:"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "В G-code на %d слое (z = %.2lf мм) обнаружен конфликт путей. Пожалуйста, разместите конфликтующие модели дальше друг от друга (%s <-> %s)."
@@ -6252,36 +6622,26 @@ msgid "Tool %d"
msgstr "%d"
# Подставляется номер материала (по порядку), предыдущая
+# AI Translated
+# Needs human review: %s is 'left nozzle' (catalog renders it in genitive, 'левого сопла') or 'Tool %d' (catalog renders it as a bare number); sentence is built with 'для %s'. Check the wording for both.
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr ""
-"Материал %s назначен на %s экструдер, но итоговый G-code выходит за его предел высоты печати.\n"
-"\n"
-"%s экструдер:"
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr ""
-"Материалы %s назначены на %s экструдер, но итоговый G-code выходит за его предел высоты печати.\n"
-"\n"
-"%s экструдер:"
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "Материал %s назначен для %s, но итоговый путь G-code выходит за область печати для %s."
+msgstr[1] "Материалы %s назначены для %s, но итоговый путь G-code выходит за область печати для %s."
+msgstr[2] "Материалы %s назначены для %s, но итоговый путь G-code выходит за область печати для %s."
# Возможно, какая-то специфичная проверка для тулченджеров, на профиле H2D при
# превышении высоты через подъём при откате оно не выводится. Последнее
# предложение – костыль для обхода кривизны системы локализации.
+# AI Translated
+# Needs human review: %s is 'left nozzle' (catalog renders it in genitive, 'левого сопла') or 'Tool %d' (catalog renders it as a bare number); sentence is built with 'для %s'. Check the wording for both.
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr ""
-"Материал %s назначен на %s экструдер, но итоговый G-code выходит за его предел высоты печати.\n"
-"\n"
-"%s экструдер:"
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr ""
-"Материалы %s назначены на %s экструдер, но итоговый G-code выходит за его предел высоты печати.\n"
-"\n"
-"%s экструдер:"
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "Материал %s назначен для %s, но итоговый путь G-code выходит за допустимую высоту печати для %s."
+msgstr[1] "Материалы %s назначены для %s, но итоговый путь G-code выходит за допустимую высоту печати для %s."
+msgstr[2] "Материалы %s назначены для %s, но итоговый путь G-code выходит за допустимую высоту печати для %s."
msgid "Open wiki for more information."
msgstr "Подробнее на Вики."
@@ -6289,9 +6649,13 @@ msgstr "Подробнее на Вики."
msgid "Only the object being edited is visible."
msgstr "Другие модели скрыты на время редактирования."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Для печати %s требуется подложка или основание из другого материала."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "Материал %s нельзя печатать непосредственно на поверхности этого стола."
+msgstr[1] "Материалы %s нельзя печатать непосредственно на поверхности этого стола."
+msgstr[2] "Материалы %s нельзя печатать непосредственно на поверхности этого стола."
# В конце подставляется "руководством."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
@@ -6422,27 +6786,20 @@ msgstr "Подготовка"
msgid "Preview"
msgstr "Просмотр нарезки"
-msgid "Device"
-msgstr "Принтер"
-
-msgid "Multi-device"
-msgstr "Принтеры"
-
msgid "Project"
msgstr "Проект"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Принтер (веб)"
-
msgid "Yes"
msgstr "Да"
msgid "No"
msgstr "Нет"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "будет закрыт перед созданием нового проекта. Продолжить?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s будет закрыт перед созданием новой модели. Продолжить?"
msgid "Print all"
msgstr "Распечатать все столы"
@@ -6497,6 +6854,10 @@ msgstr "Мастер настройки"
msgid "Show Configuration Folder"
msgstr "Открыть папку слайсера"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Вернуть профили материалов, которые обновление профилей убрало с принтеров, для которых они были созданы"
+
msgid "Troubleshoot Center"
msgstr "Экран отладки"
@@ -6736,6 +7097,14 @@ msgstr "Показать разметку"
msgid "Show Gridlines on plate"
msgstr "Показать разметку стола"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Показать печатающую голову IDEX/IQEX"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Показывать в предпросмотре G-code контур печатающей головы IDEX/IQEX вокруг каждого активного сопла."
+
msgid "Reset Window Layout"
msgstr "Сбросить макет интерфейса"
@@ -7376,6 +7745,8 @@ msgstr "Оценка"
msgid "Calculating..."
msgstr "Расчёт..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Камера"
@@ -7458,9 +7829,13 @@ msgstr "Загрузка..."
msgid "Cloud Slicing..."
msgstr "Облачная нарезка..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "Ваша очередь в облачной нарезке: %s."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "В очереди облачной нарезки перед вами %d задача."
+msgstr[1] "В очереди облачной нарезки перед вами %d задачи."
+msgstr[2] "В очереди облачной нарезки перед вами %d задач."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7491,6 +7866,11 @@ msgstr "Применимо только во время печати"
msgid "Silent"
msgstr "Тихий"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Стандартный"
+
msgid "Sport"
msgstr "Спортивный"
@@ -7546,17 +7926,29 @@ msgstr "Загрузка изображений"
msgid "Number of images successfully uploaded"
msgstr "Количество успешно отправленных изображений"
-msgid " upload failed"
-msgstr " ошибка загрузки"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Ошибка загрузки %s"
-msgid " upload config prase failed\n"
-msgstr " ошибка обработки конфигурации при отправке\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Ошибка обработки конфигурации при загрузке %s"
-msgid " No corresponding storage bucket\n"
-msgstr " Отсутствует накопитель данных\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: соответствующее хранилище не найдено"
-msgid " cannot be opened\n"
-msgstr " не удаётся открыть\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "Не удаётся открыть %s"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7574,26 +7966,22 @@ msgstr "Ошибка отправки\n"
msgid "Obtaining instance_id failed\n"
msgstr "не удалось получить instance_id\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Ваш комментарий не может быть отправлен по следующим причинам:\n"
-"\n"
-" Код ошибки: "
-
-msgid "error message: "
-msgstr "сообщение об ошибке: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Не удалось отправить вашу оценку по следующим причинам:\n"
"\n"
+" код ошибки: %d\n"
+" сообщение об ошибке: %s\n"
"\n"
-"Открыть страницу для выставления оценки?"
+"Перейти на веб-страницу, чтобы поставить оценку?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Некоторые из ваших изображений не удалось загрузить. Перейти на страницу для выставления оценки?"
@@ -8413,6 +8801,108 @@ msgstr "Сводка настроек моделей"
msgid "Material settings"
msgstr "Настройки материала"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Каждый режим задаёт участвующие в нём печатающие головы и роль каждой из них. Щёлкните кнопку инструмента, чтобы переключить его роль; наведите курсор на цвет ниже, чтобы узнать назначение каждой роли."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Добавить режим"
+
+# AI Translated
+msgid "Tools"
+msgstr "Инструменты"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Название режима в списке режимов IDEX/IQEX у стола. Обязательно — режим без названия нельзя выбрать."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Какие печатающие головы участвуют в режиме и какую роль выполняет каждая из них. Щёлкните плитку, чтобы переключить её роль."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code, выполняемый в начале печати для перевода принтера в этот режим (например, вызов SET_PRINT_MODE в Klipper). Слайсер формирует траектории только основного (Primary) инструмента; остальными управляет прошивка."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Неактивен"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Основной"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Копия"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Зеркало"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Задаёт все нарезанные траектории. Всегда инструмент 0 — выберите в параметре «Положение инструмента 0» выше, в каком углу стола он находится. Его нельзя переместить в сетке."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Повторяет движения основного (Primary) инструмента на уровне прошивки, печатая те же траектории со смещением в свою зону."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Повторяет движения основного (Primary) инструмента на уровне прошивки, печатая те же траектории, отражённые относительно границы между двумя зонами."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Отмечает инструмент на портале основного (Primary) инструмента как его партнёра по многоцветной печати. Необходим для многоцветной печати в режимах с парными порталами."
+
+# AI Translated
+msgid "Primary"
+msgstr "Основной"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Название режима (обязательно)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Название этого параллельного режима в списке режимов IDEX/IQEX у стола. В проекте режим хранится по названию, поэтому если переименовать режим, который уже используют столы, они вернутся к режиму «Основной». Не может быть пустым — пустое название заменяется сгенерированным."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code, выводимый один раз в начале печати в этом режиме, перед G-code начала печати принтера. Здесь принтер переводится в соответствующий режим прошивки — например, вызовом SET_PRINT_MODE в Klipper или M567 в RepRapFirmware, — поскольку слайсер формирует траектории только основного (Primary) инструмента, а инструментами копии (Copy) и зеркала (Mirror) управляет прошивка. Поддерживаются переменные; чтобы просмотреть их, нажмите кнопку правки. Оставьте пустым, если режиму не нужна настройка прошивки."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Изменить G-code / просмотреть переменные"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Удалить режим"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Отменить изменения этого режима в текущем сеансе (вернуть сохранённое значение)"
+
msgid "Remove current plate (if not last one)"
msgstr "Удалить стол (кроме последнего)"
@@ -8437,13 +8927,33 @@ msgstr "Переименовать стол"
msgid "Move plate to the front"
msgstr "Переместить стол в начало"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "Режим IDEX/IQEX: %1% (профиль настроек печати: %2%) (щелчок левой кнопкой — переключить, правой — меню)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "Режим IDEX/IQEX: %1% (щелчок левой кнопкой — переключить, правой — меню)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Внимание: на этом столе используется параллельный режим IDEX/IQEX с моделями из нескольких материалов. Будьте осторожны — убедитесь, что ваш G-code правильно обрабатывает такое сочетание."
+
msgid "Customize current plate"
msgstr "Настроить стол"
-# обход строчной буквы в начале предложения через "внимание"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "Внимание: «%s» экструдер не может печатать %s."
+msgid "The left nozzle cannot print %s."
+msgstr "Левое сопло не может печатать %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "Правое сопло не может печатать %s."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8453,18 +8963,20 @@ msgstr "Печать материала смешанного цвета на п
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Совмещение %1% с %2% при печати не рекомендуется.\n"
-# подстановка в составные уведомления (напр.: "0.2mm Стандартный nozzle").
-# Часто речь идёт именно об экструдере, а не о сопле, плюс "экструдер" лучше
-# согласуется.
-msgid " nozzle"
-msgstr " экструдер"
-
-# Очень кривая подстановка (nozzle_diameter, volume_type), поэтому такой
-# вариант. Например, сейчас получается: "Не рекомендуется одновременно
-# использовать сопло 0.2mm Стандартный экструдер и Bambu PETG Transparent"
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Не рекомендуется одновременно использовать сопло %1% и %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "Сопло %1% мм (%2%)"
+
+# AI Translated
+# Needs human review: %1% is a nozzle description such as '0.4mm Standard nozzle' built by get_nozzle_msg (nominative); the sentence puts it in parentheses to avoid inflecting it.
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Не рекомендуется использовать следующий материал (%1%): %2%\n"
+msgstr[1] "Не рекомендуется использовать следующие материалы (%1%): %2%\n"
+msgstr[2] "Не рекомендуется использовать следующие материалы (%1%): %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "Не рекомендуется одновременно использовать следующие сопло и материал:\n"
@@ -8473,9 +8985,11 @@ msgstr "Не рекомендуется одновременно использ
msgid "%1% with %2%\n"
msgstr "%1% и %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " стола %1%: "
+msgid "Slicing plate %1%: %2%"
+msgstr "Нарезка стола %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Недопустимое имя файла. Следующие символы не разрешены:"
@@ -8510,12 +9024,6 @@ msgstr "AMS (1 слот)"
msgid "Not installed"
msgstr "Не подключена"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "ПО не поддерживает печать разными диаметрами сопел в рамках одной печати. Выберите экструдер для синхронизации диаметров сопел:"
-
-msgid "Switch diameter"
-msgstr "Переключение диаметра"
-
msgid "Configuration incompatible"
msgstr "Несовместимый профиль"
@@ -8596,6 +9104,10 @@ msgstr "Смешанный материал"
msgid "Remove last mixed filament"
msgstr "Удалить последний смешанный материал"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Удалить все смешанные материалы"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Добавить смешанный материал"
@@ -8618,6 +9130,14 @@ msgstr "У смешанного материала нарушены ссылки
msgid "Edit / Delete / Merge"
msgstr "Изменить / Удалить / Объединить"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Удалить %1% смешанный материал?"
+msgstr[1] "Удалить все %1% смешанных материала?"
+msgstr[2] "Удалить все %1% смешанных материалов?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Целевой смешанный материал использует этот физический материал в качестве компонента. Объединение удалит этот физический материал и может сделать смешанный материал недействительным. Продолжить?"
@@ -8691,9 +9211,6 @@ msgstr "Загрузка файла: %s"
msgid "Load 3MF"
msgstr "Загрузка 3mf"
-msgid "BambuStudio Project"
-msgstr "Проект BambuStudio"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "Этот 3MF не поддерживается OrcaSlicer, поэтому загрузятся только данные геометрии."
@@ -8724,17 +9241,6 @@ msgstr "Рекомендуется обновить программу.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "Этот файл 3MF был сохранён в более новой версии OrcaSlicer %s (сейчас установлен %s %s). Рекомендуется обновить программу."
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "Этот файл 3MF был создан в BambuStudio (версии %s), которая новее совместимой с ней версией OrcaSlicer %s. Обнаружены следующие нераспознанные настройки:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "Этот файл 3MF был создан в BambuStudio (версии %s), которая новее совместимой с ней версией OrcaSlicer %s. Некоторые настройки могут не поддерживаться."
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "Этот файл 3MF был создан в BambuStudio. Некоторые настройки могут отличаться от OrcaSlicer."
-
msgid "Invalid values found in the 3MF:"
msgstr "В файле 3MF найдены недопустимые значения:"
@@ -8911,6 +9417,14 @@ msgstr "Отключить притягивание компонентов к с
msgid "Object with floating parts was detected"
msgstr "Обнаружен объект с парящими элементами"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Невозможно нарезать: модель перекрывает область, зарезервированную для параллельной печати IDEX/IQEX (дополнительную зону или полосу зазора каретки внутри основной зоны)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Невозможно нарезать: черновая башня перекрывает область, зарезервированную для параллельной печати IDEX/IQEX (дополнительную зону или полосу зазора каретки внутри основной зоны)."
+
msgid "Another export job is running."
msgstr "Уже идёт другой процесс экспорта."
@@ -8965,8 +9479,9 @@ msgstr "Модели заменены"
msgid "Please select a file"
msgstr "Пожалуйста, выберите файл"
-msgid "Do you want to replace it"
-msgstr "Хотите заменить его"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Хотите заменить его?"
msgid "Message"
msgstr "Сообщение"
@@ -8995,6 +9510,50 @@ msgstr "Неверные данные"
msgid "Slicing Canceled"
msgstr "Нарезка отменена"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Конфликт температуры стола: T%d (%s) задаёт температуру стола %d℃ — T%d (%s) требует %d℃. Столом управляет основной инструмент; остальные инструменты печатают при той температуре, которую он задаёт."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Несовпадение типов материала: T%d использует %s, а T%d — %s. У этих материалов несовместимые требования, и они не предназначены для совместной печати."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"На столе %d включён параллельный режим IDEX/IQEX, обнаружены следующие проблемы:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Продолжить нарезку?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Предупреждение о параллельном режиме IDEX/IQEX"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Больше не показывать эти предупреждения"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Стол %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Обнаружены следующие проблемы параллельного режима IDEX/IQEX:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Сетевой плагин успешно переключён."
@@ -9027,8 +9586,8 @@ msgid "Sync now"
msgstr "Синхронизировать"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Невозможно отменить или повторить действие во время выполнения операции. Сначала остановите её."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Невозможно отменить или повторить действие во время выполнения операции. Остановите операцию или дождитесь её завершения и повторите попытку."
# AI Translated
msgid ""
@@ -9099,6 +9658,14 @@ msgstr "Загрузка не удалась, ошибка размера фай
msgid "Project downloaded %d%%"
msgstr "Проект загружен %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"Тесты «Линии» и «Шаблон» пока недоступны на ленточных принтерах.\n"
+"Используйте вместо них метод «Башня»."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Тест Pressure Advance"
@@ -9106,11 +9673,15 @@ msgstr "Тест Pressure Advance"
msgid "INFO:"
msgstr "Информация:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Не заданы ускорения для калибровки. Используется значение по умолчанию: "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Не заданы ускорения для калибровки. Используется значение по умолчанию: %1% мм/с²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Не заданы скорости для калибровки. Используется значение по умолчанию: "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Не заданы скорости для калибровки. Используется оптимальная скорость по умолчанию: %1% мм/с"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9125,6 +9696,15 @@ msgstr "Калибровка потока Orca YOLO"
msgid "Flowrate Test - Pass%d"
msgstr "Тест потока - проход %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Для диапазона от %1% до %2%℃ нет температурной башни для ленточного принтера. Используйте диапазон, который охватывают модели башни, например от 230 до 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Температурная башня"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Тест температуры сопла"
@@ -9149,11 +9729,16 @@ msgstr "Тест прохождения углов"
msgid "Import SLA archive"
msgstr "Импорт SLA архива"
-msgid "The selected file"
-msgstr "В выбранном файле"
-
-msgid "Does not contain valid G-code."
-msgstr "не содержится правильного G-code."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Выбранный файл:\n"
+"%1%\n"
+"не содержит корректного G-code."
msgid "An Error has occurred while loading the G-code file."
msgstr "Ошибка при загрузке файла G-code"
@@ -9420,6 +10005,28 @@ msgstr "Сводка настроек моделей пока не поддер
msgid "Not available"
msgstr "Недоступно"
+# AI Translated
+# Needs human review: IDEX/IQEX ghost tooltip; check that 'plate' (a project plate, rendered Стол) is the intended sense here.
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (нет стола)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — материал не назначен\n"
+"Добавьте экструдер на вкладке «Принтер», чтобы у этой головы был слот для материала."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> материал %2%"
+
msgid "isometric"
msgstr "изометрия"
@@ -9459,8 +10066,10 @@ msgstr "Европа"
msgid "North America"
msgstr "Северная Америка"
+# AI Translated
+msgctxt "Region"
msgid "Others"
-msgstr "Прочее"
+msgstr "Другие"
msgid "Changing the region will log you out of your account.\n"
msgstr "Смена региона приведёт к выходу из вашей учётной записи.\n"
@@ -9533,12 +10142,17 @@ msgstr "Не удалось перезагрузить сетевой плаги
msgid "Reload Failed"
msgstr "Перезапуск не удался"
-# Строки дублируются, используем универсальное
-msgid "Associate"
-msgstr "Открытие"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Открытие ссылок %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "с OrcaSlicer, чтобы она могла открывать модели сразу с"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Открывать ссылки %s:// в OrcaSlicer, чтобы программа могла открывать модели с %s"
msgid "Current Association: "
msgstr "Открывается в "
@@ -9838,6 +10452,9 @@ msgstr "Запоминать последнее действие печати"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Если включено, OrcaSlicer запоминает последний выбранный вариант в выпадающем меню кнопки печати (например, «Печать», «Экспорт стола в файл проекта», «Экспорт в G-code») и использует его по умолчанию при следующем запуске."
+msgid "Camera"
+msgstr "Камера"
+
msgid "Touchpad"
msgstr "Тачпад"
@@ -10269,6 +10886,10 @@ msgstr "Версия сетевого плагина"
msgid "Select the network plug-in version to use"
msgstr "Выберите версию сетевого плагина для загрузки"
+# Строки дублируются, используем универсальное
+msgid "Associate"
+msgstr "Открытие"
+
msgid "Associate files to OrcaSlicer"
msgstr "Открытие файлов по умолчанию"
@@ -10320,6 +10941,12 @@ msgstr ""
"\n"
"Примечание: профили остаются недоступными для выбора."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Experimental Features"
msgstr "Экспериментальные настройки"
@@ -10608,10 +11235,6 @@ msgstr "Опубликовать 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Выберите, какие настройки будут опубликованы в файле 3MF"
-# AI Translated
-msgid "Video Guide"
-msgstr "Видеоруководство"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Смешанный материал — публикуется целиком, когда выше выбрано «Включить»"
@@ -10780,6 +11403,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Простой"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s из %s"
+
# AI Translated
msgid "Search actions"
msgstr "Поиск действий"
@@ -10897,6 +11526,10 @@ msgstr "Подробнее"
msgid "Hide details"
msgstr "Скрыть подробности"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Веб-представление недоступно."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11161,9 +11794,13 @@ msgstr "Ошибка отправки"
msgid "The name length exceeds the limit."
msgstr "Слишком длинное имя."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Будет затрачено на %d г материала и на %d смен больше, чем при оптимальной группировке."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Будет затрачено на %d г материала и на %d смену больше, чем при оптимальной группировке."
+msgstr[1] "Будет затрачено на %d г материала и на %d смены больше, чем при оптимальной группировке."
+msgstr[2] "Будет затрачено на %d г материала и на %d смен больше, чем при оптимальной группировке."
# AI Translated
msgid "Right-Ext"
@@ -11241,6 +11878,9 @@ msgstr "Некоторые материалы могут переключать
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "В текущем проекте есть материал, склонный к образованию паутины. Во избежание проблем с качеством рекомендуется включить автоматический режим обнаружения налипаний на сопло."
+msgid "Switch"
+msgstr "Переключить"
+
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Если «Калибровка динамики потока» установлена в «Авто/Вкл», система будет использовать значение ручной калибровки или значение по умолчанию и пропустит процесс калибровки. Ручную калибровку TPU можно выполнить на странице «Калибровка»."
@@ -11549,6 +12189,10 @@ msgstr "Синхронизация разных приводов экструд
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Перенести изменения в настройки другого экструдера."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Параметры с этим значком можно настраивать для каждого сопла отдельно."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Сбросить все изменения"
@@ -11792,6 +12436,9 @@ msgstr "Материал для линий"
msgid "Ooze prevention"
msgstr "Предотвращение течи материала"
+msgid "Others"
+msgstr "Прочее"
+
msgid "Special mode"
msgstr "Специальные режимы"
@@ -11835,8 +12482,11 @@ msgstr[2] ""
"Следующие строки %s содержат зарезервированные ключевые слова.\n"
"Удалите их, иначе могут возникнуть проблемы при визуализации G-code и оценка времени печати."
-msgid "Reserved keywords found"
-msgstr "Найдены зарезервированные ключевые слова"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Найдены зарезервированные ключевые слова в %1%"
msgid "Setting Overrides"
msgstr "Замещение настроек"
@@ -11995,7 +12645,16 @@ msgstr "Область печати"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Реализация сетевого агента для обмена информацией с принтером. Доступные реализации определяются при запуске."
+# AI Translated
+msgid "Belt printer"
+msgstr "Ленточный принтер"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Преобразования в машинную систему координат"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Указано недопустимое значение параметра %1%: %2%"
@@ -12108,9 +12767,29 @@ msgstr "Диаметр сопла"
msgid "Wipe tower"
msgstr "Черновая башня"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Черновая башня на ленте"
+
msgid "Single extruder multi-material parameters"
msgstr "Настройки комбинированной печати одним экструдером"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "Настройка IDEX/IQEX"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Предупреждения перед нарезкой"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Показывать перед нарезкой диалоговое окно с предупреждением, если обнаружены проблемы параллельного режима IDEX/IQEX (конфликты температуры стола, несовпадение типов материала, конфликты нескольких материалов). Его можно отключить в самом диалоговом окне. Если оно было отключено случайно, включите его снова здесь."
+
+# AI Translated
+msgid "Modes"
+msgstr "Режимы"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "У этого принтера есть только одно сопло для комбинированной печати, диаметры всех сопел будут установлены на новое значение. Продолжить?"
@@ -12123,6 +12802,22 @@ msgstr "Ограничение высоты слоя"
msgid "Z-Hop"
msgstr "Подъём головы при откате"
+# AI Translated
+msgid "Front-left"
+msgstr "Спереди слева"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Спереди справа"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Сзади слева"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Сзади справа"
+
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
"\n"
@@ -12145,29 +12840,41 @@ msgstr "Использовать изменённое значение"
msgid "Detached"
msgstr "Отсоединён"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "С этим принтером связаны %1% и %2%. Эти профили будут удалены вместе с принтером."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr ""
-"С этим принтером связаны\n"
-"• профили материалов: %d\n"
-"• профили настроек: %d\n"
-"\n"
-"Эти профили будут удалены вместе с принтером."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d профиль материала"
+msgstr[1] "%d профиля материала"
+msgstr[2] "%d профилей материала"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d профиль настроек печати"
+msgstr[1] "%d профиля настроек печати"
+msgstr[2] "%d профилей настроек печати"
# ??? Профили, наследуемые от других профилей, не могут быть удалены.
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Родительские профили невозможно удалить при наличии дочерних."
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Профиль, указанный ниже, наследуется от текущего профиля."
-msgstr[1] "Профили, указанные ниже, наследуются от текущего профиля."
-msgstr[2] "Профили, указанные ниже, наследуются от текущего профиля."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "Следующий профиль наследуется от текущего."
+msgstr[1] "Следующие профили наследуются от текущего."
+msgstr[2] "Следующие профили наследуются от текущего."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% профиль"
+msgid "Delete Preset"
+msgstr "Удалить профиль"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -12183,9 +12890,9 @@ msgstr ""
"Если вы используете его в принтере, сбросьте информацию\n"
"о нём у соответствующего слота."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Вы действительно хотите %1% выбранный профиль?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Вы действительно хотите удалить выбранный профиль?"
msgid "Select printers"
msgstr "Профили принтеров"
@@ -12238,9 +12945,35 @@ msgstr "Продолжить"
msgid "Don't warn again for this preset"
msgstr "Больше не спрашивать для этого профиля"
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# AI Translated
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
msgid "No modifications need to be copied."
msgstr "Перенос изменений не требуется."
@@ -12428,6 +13161,12 @@ msgstr "Один из профилей не существует"
msgid "Compared presets has different printer technology"
msgstr "Принтеры печатают по разным технологиям"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "«%1%» и «%2%»"
+
msgid "Add File"
msgstr "Добавить файл"
@@ -12453,6 +13192,22 @@ msgstr "Список материалов"
msgid "Assembly Guide"
msgstr "Памятка по сборке"
+# AI Translated
+msgid "Image files"
+msgstr "Файлы изображений"
+
+# AI Translated
+msgid "TXT files"
+msgstr "Файлы TXT"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "Файлы EXCEL"
+
+# AI Translated
+msgid "PDF files"
+msgstr "Файлы PDF"
+
msgid "Author"
msgstr "Автор"
@@ -12651,9 +13406,6 @@ msgstr "мс"
msgid "Total ramming"
msgstr "Полный рэмминг"
-msgid "Volume"
-msgstr "Объём"
-
msgid "Ramming line"
msgstr "Линия рэмминга"
@@ -12680,8 +13432,10 @@ msgstr "Множитель"
msgid "Flushing volumes for filament change"
msgstr "Объёмы прочистки при смене материала"
-msgid "Please choose the filament color"
-msgstr "Изменение цвета"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "с/на"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "Облачный агент недоступен. Перезапустите OrcaSlicer и повторите попытку."
@@ -12701,6 +13455,139 @@ msgstr "Ошибка входа. Попробуйте ещё раз."
msgid "parse json failed"
msgstr "не удалось обработать JSON"
+msgid "Loading…"
+msgstr "Загрузка..."
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Пользовательские"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Приветствуем в Orca Slicer!"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Для настройки Orca Slicer необходимо пройти несколько этапов. Давайте начнём!"
+
+msgid "Get Started"
+msgstr "Начать"
+
+msgid "Please select your login region"
+msgstr "Выбор региона"
+
+msgid "Finish"
+msgstr "Завершить"
+
+msgid "Printer Selection"
+msgstr "Выбор принтера"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Производители"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Пользовательский принтер"
+
+msgid "Create"
+msgstr "Создать"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Проверить наличие новых принтеров"
+
+msgid "At least one printer must be selected."
+msgstr "Должен быть выбран хотя бы один принтер."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Найдены новые принтеры"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Установлены новые производители принтеров: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Найдены новые производители принтеров, но установка была отменена."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Новых принтеров не найдено."
+
+msgid "Filament Selection"
+msgstr "Выбор материала"
+
+msgid "System Filaments"
+msgstr "Системные материалы"
+
+msgid "Custom Filaments"
+msgstr "Пользовательские материалы"
+
+msgid "Create New"
+msgstr "Создать новый"
+
+msgid "Filament type"
+msgstr "Тип материала"
+
+msgid "Vendor"
+msgstr "Производитель"
+
+# AI Translated
+msgid "No items"
+msgstr "Нет элементов"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Фильтр элементов"
+
+# AI Translated
+msgid "Checked"
+msgstr "Отмеченные"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Неотмеченные"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Выбрать отфильтрованные"
+
+msgid "Clear all"
+msgstr "Очистить"
+
+msgid "At least one filament must be selected."
+msgstr "Должен быть выбран хотя бы один материал."
+
+msgid "Do you want to use the default filament?"
+msgstr "Выбрать материалы по умолчанию?"
+
+# AI Translated
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Отключает все облачные функции, включая синхронизацию профилей с Orca Cloud. Пользователи, предпочитающие работать полностью без подключения к интернету, могут включить этот параметр."
+
+# AI Translated
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Примечание: при включённом режиме приватности ваши пользовательские профили не будут резервироваться в Orca Cloud."
+
+msgid "Enable Stealth Mode."
+msgstr "Включить режим конфиденциальности"
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Проприетарные плагины"
+
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Для связи с некоторыми моделями принтеров требуются проприетарные плагины. Выберите соответствующий плагин, если у вас такой принтер."
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Имейте в виду, что эти плагины не разрабатываются и не поддерживаются OrcaSlicer. Используйте их на свой страх и риск."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Установить сетевой плагин Bambu"
+
msgid "[Action Required] "
msgstr "[Требуется действие] "
@@ -12768,9 +13655,6 @@ msgstr "Доступно, когда в фокусе 3D-вид на вкладк
msgid "Select a part"
msgstr "Выбор части модели"
-msgid "Select multiple objects"
-msgstr "Выбор нескольких моделей"
-
msgid "Select objects by rectangle"
msgstr "Выбор прямоугольником"
@@ -13100,26 +13984,21 @@ msgstr "Ошибка в версии прошивки. Перед печатью
msgid "Extension Board"
msgstr "Плата расширения"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Разделение на части (%1%)"
-
msgid "Repair finished"
msgstr "Восстановление завершено"
-msgid "Repair failed"
-msgstr "Не удалось восстановить модель"
-
-msgid "Repair canceled"
-msgstr "Восстановление отменено"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Не удалось скопировать файл %1% в %2%: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Загрузка новых профилей производителей: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Загрузка нового профиля производителя: %1%..."
+msgstr[1] "Загрузка новых профилей производителей: %1%..."
+msgstr[2] "Загрузка новых профилей производителей: %1%..."
# AI Translated
#, boost-format
@@ -13127,8 +14006,13 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Пакет профилей: %1% обновлён до %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Не удалось загрузить профили производителей: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Не удалось загрузить профиль производителя: %1%"
+msgstr[1] "Не удалось загрузить профили производителей: %1%"
+msgstr[2] "Не удалось загрузить профили производителей: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Перед обновлением профилей необходимо проверить несохранённые изменения."
@@ -13136,6 +14020,10 @@ msgstr "Перед обновлением профилей необходимо
msgid "Open G-code file:"
msgstr "Выберите G-code файл:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Не удалось создать черновую башню, возможно, из-за пустого первого слоя."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Одна модель имеет пустой начальный слой и не может быть напечатана. Пожалуйста, обрежьте нижнюю часть или включите поддержку."
@@ -13156,9 +14044,61 @@ msgstr "G-code при смене типа линии с этими настро
msgid "Filament change extrusion role G-code"
msgstr "G-code при смене типа линии с этим материалом"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"Не удалось экспортировать G-code в %1%.\n"
+"Невозможно открыть файл для записи."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "Папка %1% не существует."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"Не удалось экспортировать G-code в %1%.\n"
+"Возможно, диск заполнен?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Не удалось переименовать выходной файл G-code из %1% в %2%.\n"
+"Ошибка: %3%\n"
+"Файл %1% заблокирован?"
+
msgid "No object can be printed. It may be too small."
msgstr "Печать моделей невозможна. Возможно, они слишком маленькие."
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "Для режима IDEX/IQEX «%1%» на выбранном принтере не назначены инструменты. Вместо него используется режим «Основной». Назначьте инструменты режима в настройках принтера или выберите другой режим кнопкой IDEX/IQEX на столе."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Для этого стола задан режим IDEX/IQEX «%1%», который не определён в выбранном принтере. Вместо него используется режим «Основной». Выберите режим кнопкой IDEX/IQEX на столе или восстановите режим в настройках принтера."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Недопустимое значение миниатюр:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Модель(-и) находится очень близко к области предзарядки (область подготовки экструдера). Убедитесь, что не произойдёт столкновения."
@@ -13202,6 +14142,10 @@ msgstr "Ошибка группировки: %1% нельзя разместит
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Ошибка группировки: %1% нельзя разместить в правом сопле"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Не найдено допустимого сопла. Проверьте количество сопел."
+
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Ошибка группировки в ручном режиме. Проверьте количество сопел или измените группировку."
@@ -13217,6 +14161,18 @@ msgstr "несколько пересечений с периметром, ис
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "периметр целиком внутри модификатора, модификатор для него не применён (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "Модификатор «%2%» (%1%) модели «%3%» охватывает периметр целиком"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "Модификатор «%2%» (%1%) модели «%3%» (всего: %4%) охватывает периметр целиком"
+
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
msgstr "модификатор «%1%» модели «%2%» не повлиял на шов (возможно, он не достигает осевой линии печатаемого периметра)"
@@ -13228,9 +14184,47 @@ msgstr "модификатор «%1%» модели «%2%» (всего: %3%) н
msgid "Seam placement may differ from expected."
msgstr "Размещение шва может отличаться от ожидаемого."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Внутренний мост"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() вернула отрицательный интервал. Не задана ли где-то слишком малая ширина линии?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() вернула отрицательный расход. Не задана ли где-то слишком малая ширина линии?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Не удалось вычислить ширину линии %1%. Не удаётся получить значение «%2%»."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Для Flow::with_spacing() был указан недопустимый интервал. Проверьте высоту слоя и ширину линии."
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Выбранный файл 3mf сохранён в более новой версии %1% и несовместим."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Выбранный файл 3MF содержит модель с нарисованными поддержками FDM, созданную в более новой версии PrusaSlicer, и несовместим."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Выбранный файл 3MF содержит модель с нарисованным швом, созданную в более новой версии PrusaSlicer, и несовместим."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Выбранный файл 3MF содержит модель с многоматериальной покраской, созданную в более новой версии PrusaSlicer, и несовместим."
+
msgid "undefined error"
msgstr "неопределённая ошибка"
@@ -13324,6 +14318,56 @@ msgstr "ошибка проверки"
msgid "write callback failed"
msgstr "ошибка записи функции обратного вызова"
+# AI Translated
+msgid "unknown error"
+msgstr "неизвестная ошибка"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Для многоцветной печати в параллельных режимах IDEX/IQEX у каждого материала должен быть свой физический экструдер. Два или более активных материала направлены в одну и ту же физическую голову через карту физических экструдеров принтера (коллектор MMU/AFC), а ведомый портал не может это повторить."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "В активном режиме IDEX/IQEX не задан основной инструмент, поэтому многоцветную печать невозможно спланировать. Откройте редактор режимов IDEX/IQEX в настройках принтера и назначьте одному инструменту роль основного (Primary)."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Многоцветная печать в этом режиме не является параллельной — все активные инструменты находятся на одном портале, поэтому нет второго портала, на который выполняется копирование или зеркалирование. Для многоцветной печати на одном портале переключите стол в режим «Основной» или задайте режим IDEX/IQEX, включающий инструменты на втором портале."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Для многоцветной печати в параллельных режимах IDEX/IQEX на портале основного инструмента нужен инструмент Span — без него в режиме не задан партнёр для многоцветной печати на том же портале. Сократите печать до одного материала, переключитесь в режим «Основной» или откройте редактор режимов IDEX/IQEX в настройках принтера и отметьте инструмент на портале основного инструмента как Span."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "В этом режиме Span разными цветами печатают только %1%, но материал %2% не подаётся ни в один инструмент. Используйте материалы, подаваемые в %1%, или переключите этот стол в режим «Основной»."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "В этом режиме Span разными цветами печатают только %1%, но материал %2% подаётся в T%3%. Используйте материалы, подаваемые в %1%, или переключите этот стол в режим «Основной»."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Не удалось загрузить выбранный профиль: %1%\n"
+"\tПричина: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Не удалось загрузить файл профиля: %1%\n"
+"\tПричина: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% находится слишком близко к области исключения, что может привести к столкновению при печати."
@@ -13340,27 +14384,34 @@ msgstr "Модель «%1%» слишком высокая, что привед
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "Взаимное расположение модели и черновой башни не отвечает требованиям функции «Без разреженных слоёв». Измените их взаимное расположение, уменьшите высоту модели или отключите параметр «Без разреженных слоёв»."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " находится слишком близко к области исключения, что может привести к столкновению при печати."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " находится слишком близко к зоне обнаружения налипаний, возможны столкновения при печати."
-
-msgid "Prime Tower"
-msgstr "Черновая башня"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " находится слишком близко к другим моделям, что может привести к колизии.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " находится слишком близко к области исключения, что приведёт к столкновению.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " находится слишком близко к зоне обнаружения налипаний, столкновения неизбежны.\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% находится слишком близко к зоне обнаружения налипаний, возможны столкновения при печати."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " частично находится за пределами области печати и не может быть напечатан.\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "Черновая башня находится слишком близко к другим моделям, что может привести к столкновению.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "Черновая башня находится слишком близко к области исключения, что приведёт к столкновению.\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "Черновая башня находится слишком близко к зоне обнаружения налипаний, столкновения неизбежны.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "Черновая башня находится слишком близко к области исключения, что может привести к столкновению при печати."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "Черновая башня находится слишком близко к зоне обнаружения налипаний, возможны столкновения при печати."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "Черновая башня частично находится за пределами области печати и не может быть напечатана.\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "Обнаружен недопустимый перепад температур. Каждый из используемых материалов должен иметь в профиле температуру печати в пределах допустимого диапазона других материалов. В противном случае сопло может забиться и повредить принтер."
@@ -13375,6 +14426,58 @@ msgstr "Если вас это не пугает, эту проверку мож
msgid "No extrusions under current settings."
msgstr "При текущих настройках экструзия отсутствует."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Смешанные материалы не поддерживаются в параллельных режимах IDEX/IQEX. Переключите этот стол в режим «Основной»."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Режим IDEX/IQEX «%1%» печатает инструментом T%2%, но ни один материал этого стола не загружен в настроенный инструмент. Назначьте материал, загруженный в T%2%, или переключите этот стол в режим «Основной»."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Режим IDEX/IQEX «%1%» печатает инструментом T%2%, но материалы этого стола загружены в %3%. Назначьте материал, загруженный в T%2%, или переключите этот стол в режим «Основной»."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Подложка несовместима с режимом ленточного принтера."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Защитный кожух несовместим с режимом ленточного принтера."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "На ленточном принтере кайма несовместима с режимом вазы. Отключите одно из них."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Наклон ленты слишком велик для каймы, поэтому кайма не будет создана."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Кайма создаётся, только если лента наклонена. Задайте угол наклона ленты или уберите настройку каймы."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Ленточные принтеры поддерживают только кайму снаружи и внутри. Каймы «Авто», «Мышиные ушки» и «Вручную» печатаются как «Снаружи» с шириной из параметра «Ширина каймы»."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "«Смещение каймы» отделяет переднюю кайму от переднего края модели, который она должна закреплять. При использовании параметра «Длина передней каймы» установите смещение, равное 0."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "«Длина передней каймы» продлевает кайму перед каждой моделью вдоль ленты, а функция «Расставить» не резервирует это место. Оставляйте промежутки между моделями."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "Кайма «Только передний край» предназначена для ленточных принтеров. На этом принтере она печатается как обычная кайма снаружи."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Используется смешанный материал с градиентом, но параметр «Подслой смешанного цвета» отключён. Градиент не будет напечатан."
@@ -13385,6 +14488,18 @@ msgstr "Плавный режим таймлапса не поддерживае
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "Обнаружение налипаний не поддерживается при печати моделей по очереди."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "Черновая башня на ленте не создаётся в режиме печати моделей «По очереди»; при сменах материала прочистка выполняться не будет."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "Черновая башня на ленте включена, но в проекте нет объекта черновой башни; при сменах материала прочистка выполняться не будет. Откройте проект в приложении, чтобы создать башню."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Проект содержит несколько управляемых черновых башен на ленте. Перезагрузите стол или выключите и снова включите черновую башню на ленте, чтобы создать её заново."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Совместное использование точной высоты Z и черновой башни может вызвать ошибки нарезки."
@@ -13401,10 +14516,6 @@ msgstr "Режим вазы не работает, когда модель пе
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "После применения компенсации усадки модель %1% начинает превышать максимальную высоту области печати."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "Высота модели «%1%» превышает максимально допустимую высоту области печати."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Хотя сама модель %1% вписывается в область построения, её последний слой превышает максимальную высоту области построения."
@@ -13412,6 +14523,10 @@ msgstr "Хотя сама модель %1% вписывается в облас
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Попробуйте уменьшить размер модели или изменить текущие настройки печати и повторить попытку."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "Высота модели «%1%» превышает максимально допустимую высоту области печати."
+
# Organic supports воспринимается как неправильный перевод древовидных
# поддержек, лучше написать развёрнуто
msgid "Variable layer height is not supported with Organic supports."
@@ -13572,6 +14687,10 @@ msgstr "Диапазон значений адаптивного Pressure Advanc
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "Компенсация усадки материала не будет использоваться, поскольку усадка у используемых материалов не совпадает."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "Печать пуста. Модель невозможно напечатать с текущими настройками печати."
+
msgid "Generating skirt & brim"
msgstr "Генерация юбки и каймы"
@@ -13590,6 +14709,17 @@ msgstr "Экспорт в G-code"
msgid "Generating G-code"
msgstr "Генерация G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Не удалось обработать файл G-code %1% из предыдущего файла 3MF."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "Черновая башня на ленте не может принять весь объём прочистки: всего не удалось прочистить %1% мм³ (худший слой: %2% мм³ на высоте %3%). На печати возможно смешение цветов. Увеличьте ширину черновой башни на ленте или уменьшите объёмы прочистки."
+
msgid "Processing of the filename_format template failed."
msgstr "Ошибка обработки шаблона filename_format."
@@ -14031,8 +15161,9 @@ msgstr ""
"\n"
"Примечание: рекомендуется использовать в паре с «Двухслойными мостами»."
+# AI Translated
msgid "Bridge flow ratio"
-msgstr "Поток внешних мостов"
+msgstr "Коэффициент потока внешних мостов"
msgid ""
"This value governs the thickness of the external (visible) bridge layer.\n"
@@ -14047,21 +15178,23 @@ msgstr ""
"Внимание: при значениях меньше 1 плотность линий автоматически повышается для обеспечения печатаемости.\n"
"Примечание: фактический поток для моста рассчитывается путём умножения этого значения на поток материала и общий поток модели (если он задан)."
-# Максимальное значение можно не указывать, т.к. теперь в каждой подсказке есть абзац с допустимым диапазоном значений.
+# AI Translated
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
"Ширина линий мостов. Можно указать процент от диаметра сопла.\n"
-"Рекомендуется использовать в паре с увеличенными плотностью или потоком мостов.\n"
+"Рекомендуется использовать в паре с увеличенными значениями параметров «Плотность внешних мостов» или «Коэффициент потока внешних мостов».\n"
"\n"
-"0 – использовать ширину линий сплошного заполнения."
+"Максимальное значение – 100% или диаметр сопла.\n"
+"0 – использовать ширину линий сплошного заполнения, а для толстых мостов – диаметр сопла."
+# AI Translated
msgid "Internal bridge flow ratio"
-msgstr "Поток внутренних мостов"
+msgstr "Коэффициент потока внутренних мостов"
msgid ""
"This value governs the thickness of the internal bridge layer. This is the first layer over sparse infill so increasing it may increase strength and upper layer quality.\n"
@@ -14333,7 +15466,7 @@ msgstr "Включение динамического управления ск
msgid "Slow down for curled perimeters"
msgstr "Замедляться на изогнутых периметрах"
-# Обновил, отформатировал и провёл семантическую оптимизацию
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
@@ -14349,35 +15482,35 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
-"Позволяет автоматически замедлять печать в областях, где выступающие периметры могут деформироваться из-за усадки.\n"
-"Например, форштевень Benchy, который сильнее подвержен накоплению усадочной деформации.\n"
+"Включите эту опцию, чтобы замедлять печать в областях, где периметры могут закручиваться вверх.\n"
+"Например, при печати нависаний на острых углах, таких как передняя часть корпуса кораблика Benchy, будет применяться дополнительное замедление, что уменьшит закручивание, которое накапливается за несколько слоёв.\n"
"\n"
-"Рекомендуется использовать в случаях, если скоростной режим, конструкция принтера или его система охлаждения не способны обеспечить качественного сопротивления усадке материала.\n"
+"В целом рекомендуется оставлять эту опцию включённой, кроме случаев, когда охлаждение принтера достаточно мощное или скорость печати достаточно низкая, чтобы периметры не закручивались. \n"
+"При печати с высокой скоростью внешнего периметра эта опция может вызывать артефакты на стенках при замедлении: из-за потенциально большого разброса скоростей печати экструдер не успевает за запрошенным изменением потока.\n"
+"Наиболее вероятная причина этих артефактов – слегка неточная настройка PA, особенно в сочетании с большим временем сглаживания PA.\n"
"\n"
-"Примечание: отключает скоростной режим мостов для нависающих периметров (передаёт его в управление настройкам нависаний ниже).\n"
+"Рекомендации при включении этой опции:\n"
+"1. Уменьшите время сглаживания Pressure Advance до 0.015 - 0.02, чтобы экструдер быстро реагировал на изменения скорости.\n"
+"2. Увеличьте минимальные скорости печати, чтобы ограничить величину замедления и уменьшить разброс между быстрыми и медленными участками.\n"
+"3. Если артефакты всё же появляются, включите «Сглаживание расхода» (ERS), чтобы дополнительно сгладить переходы потока.\n"
"\n"
-"Внимание: требуется крайне точная настройка коррекции давления. В противном случае при быстрой печати стенок в местах перепада скоростей будут возникать заметные артефакты поверхности.\n"
-"\n"
-"Рекомендации по настройке:\n"
-"1. Уменьшите время сглаживания Pressure Advance до 0.015-0.02, чтобы\n"
-" повысить реактивность экструдера на изменения скорости.\n"
-"2. Повысьте ограничения скоростей нависаний.\n"
-"3. Если это не помогло, воспользуйтесь сглаживанием расхода."
+"Примечание: когда эта опция включена, нависающие периметры обрабатываются как нависания, то есть скорость нависаний применяется, даже если нависающий периметр является частью моста.\n"
+"Например, если периметры нависают на 100% и под ними нет стенки, которая бы их поддерживала, будет применена скорость нависаний 75%, ограниченная скоростью моста."
msgid "mm/s or %"
msgstr "мм/с или %"
-# ???
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Скорость печати наружных периметров моста.\n"
"\n"
-"Кроме того, если отключена опция «Замедляться на изогнутых периметрах» или включён «Классический режим» печати нависаний, то скорость печати будет какой же, что и для нависающих периметров, которые имеют поддержку менее 13%, независимо от того, являются ли они частью моста или нависания."
+"Кроме того, если отключена опция «Замедляться на изогнутых периметрах», то скорость печати будет такой же, что и для нависающих периметров, которые имеют поддержку менее 13%, независимо от того, являются ли они частью моста или нависания."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Скорость печати внутреннего моста. Можно указать процент от скорости внешнего моста (bridge_speed). По умолчанию – 150%."
@@ -14385,12 +15518,56 @@ msgstr "Скорость печати внутреннего моста. Мож
msgid "This is the distance from the model to the outermost brim line."
msgstr "Расстояние от модели до внешней линии каймы."
+# AI Translated
+msgid "Leading brim length"
+msgstr "Длина передней каймы"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Только для ленточных принтеров. Продлевает кайму ВПЕРЁД от модели вдоль ленты, у каждого обращённого вниз по уклону края области контакта — как у первого касания модели с лентой, так и у любого острова, который ложится позже. Этот фартук укладывается на ленту до того, как до неё дойдёт модель, поэтому передний край держится за уже прилипший материал.\n"
+"\n"
+"Измеряется по поверхности ленты и добавляется к «Ширина каймы»: кайма выступает перед моделью на «Смещение каймы» + «Длина передней каймы» + «Ширина каймы». Установите «Смещение каймы» равным 0, иначе фартук не будет касаться модели, которую должен закреплять.\n"
+"\n"
+"На наклонной ленте каждый слой укладывает одну полосу каймы, поэтому толщина получившегося полотна каймы определяется потоком, а не высотой слоя. Для её настройки используйте «Поток каймы».\n"
+"\n"
+"Установите 0 для отключения."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Дополнительная ширина каймы"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Только для ленточных принтеров. Расширяет кайму В СТОРОНЫ, поперёк ленты, не продлевая её дальше вперёд или назад от модели. Используйте, если детали по всей длине нужно больше сцепления, чем даёт один параметр «Ширина каймы».\n"
+"\n"
+"Измеряется по поверхности ленты и добавляется к «Ширина каймы»: кайма выступает по обе стороны от модели на «Смещение каймы» + «Ширина каймы» + «Дополнительная ширина каймы». Чтобы вместо этого продлить кайму вперёд от модели, используйте «Длина передней каймы».\n"
+"\n"
+"Установите 0 для отключения."
+
msgid "Brim type"
msgstr "Тип каймы"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Этот параметр управляет формированием каймы на внешней/внутренней стороне моделей. Авто означает, что ширина каймы анализируется и рассчитывается автоматически."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Только передний край"
+
msgid "Brim-object gap"
msgstr "Смещение каймы"
@@ -14709,6 +15886,10 @@ msgstr ""
"\n"
"Примечание: в большинстве случаев высокая чувтствительность создаёт слишком много ненужных мостов."
+# Очередной оверюзинг строки в нескольких местах; невозможно перевести универсально. UPD: а точно ли оверюзинг? Поиск по коду выдаёт только одно место. Поэтому согласовываю с чувствительностью фильтрации внутренних мостов.
+msgid "Filter"
+msgstr "Низкая"
+
msgid "Limited filtering"
msgstr "Средняя"
@@ -14725,8 +15906,8 @@ msgid "End G-code"
msgstr "Завершающий G-code"
# AI Translated
-msgid "Add end G-Code when finishing the entire print."
-msgstr "G-code, который выполняется в самом конце печати."
+msgid "Add end G-code when finishing the entire print."
+msgstr "Добавляет G-code при завершении всей печати."
msgid "Between Object G-code"
msgstr "G-code между моделями"
@@ -14953,8 +16134,9 @@ msgstr "Ограничение скорости движения головы (
msgid "Small perimeters"
msgstr "Короткие периметры"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Ограничение скорости движения головы (относительно стола) при печати коротких периметров с радиусом, не превышающим значение порога маленьких периметров (обычно, это отверстия). Можно указать процент от ограничения скорости печати внешнего периметра, указанного выше. Установите 0 для автонастройки (50%)."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Ограничение скорости движения головы (относительно стола) при печати коротких периметров с радиусом, не превышающим значение small_perimeter_threshold (обычно это отверстия). Можно указать процент от ограничения скорости печати внешних периметров, указанного выше."
msgid "Small perimeters threshold"
msgstr "Порог коротких периметров"
@@ -14966,8 +16148,9 @@ msgstr "Пороговое значение (радиус) для расчёта
msgid "Small support perimeters"
msgstr "Короткие периметры поддержек"
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Аналогично скорости «Коротких периметров», но для небольших отростков поддержек. Значительно повышает стабильность печати маленьких ветвей древовидных поддержек. Можно указать абсолютную скорость или процент от текущей скорости печати поддержки (например, 80%). 0 – рассчитывать автоматически."
+# AI Translated
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Аналогично скорости «Короткие периметры», но для поддержек. Эта отдельная настройка влияет на скорость печати поддержек в областях, не превышающих `small_support_perimeter_threshold`. Если указан процент (например, 80%), он рассчитывается от скорости печати поддержки или связующего слоя, указанной выше."
msgid "Small support perimeters threshold"
msgstr "Порог коротких периметров поддержек"
@@ -14978,22 +16161,23 @@ msgstr "Пороговое значение (радиус) для расчёта
msgid "Walls printing order"
msgstr "Порядок печати периметров"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
"Очерёдность печати внутренних и внешних периметров.\n"
"\n"
-"• «Изнутри наружу» хорошо подходит для печати нависаний благодаря дополнительному сцеплению внешнего периметра к соседним внутренним, но может привести к небольшому снижению точности размеров и качества внешней поверхности, так как её форма будет повторять внутреннюю структуру печати.\n"
+"Используйте «Изнутри наружу» для лучшего качества нависаний, так как нависающие периметры при печати могут сцепляться с соседним периметром. Однако качество поверхности при этом немного снижается, так как внешний периметр деформируется, будучи прижатым к внутреннему.\n"
"\n"
-"• «Снаружи внутрь» обеспечивает хорошую точность размеров, так как внешний периметр печатается без контакта с внутрненним (что одновременно снижает качество нависаний), но при этом избыток материала в сопле в момент подачи может привести к выпиранию шва на внешнем периметре.\n"
+"Используйте «Навстречу» для лучшей отделки внешней поверхности и точности размеров, так как внешний периметр печатается без воздействия внутреннего периметра. Однако качество нависаний ухудшится, так как нет внутреннего периметра, к которому можно печатать внешний. Для работы этого варианта необходимо не менее 3 периметров: сначала печатаются внутренние периметры, начиная с третьего, затем внешний периметр и, наконец, первый внутренний периметр. В большинстве случаев этот вариант рекомендуется вместо «Снаружи внутрь».\n"
"\n"
-"• «Навстречу» обеспечивает точность размеров и наилучшее качество, так как помимо прочего внутренний периметр стабилизирует поток материала к началу печати внешнего. Требуется минимум 3 периметра: сначала печатаются крайние внутренние, затем внешний и оставшийся внутренний. В большинстве случаев предпочтительнее, чем «Снаружи внутрь»."
+"Используйте «Снаружи внутрь», чтобы получить такое же качество внешнего периметра и точность размеров, как у варианта «Навстречу». Однако швы по оси Z будут выглядеть менее однородно, так как первая экструзия нового слоя начинается на видимой поверхности."
msgid "Inner/Outer"
msgstr "Изнутри наружу"
@@ -15660,9 +16844,6 @@ msgstr "Стоимость материала. Используется при
msgid "money/kg"
msgstr "цена за кг"
-msgid "Vendor"
-msgstr "Производитель"
-
msgid "Vendor of filament. For show only."
msgstr "Производитель материала. Информационный параметр."
@@ -15732,6 +16913,94 @@ msgstr ""
"Использовать несколько линий для шаблона заполнения, если он это поддерживает.\n"
"Внимание: плотность заполнения будет скорректирована для сохранения того же расхода материала."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Адаптивная плотность (экспериментально)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Изменяет плотность заполнения «Гироид» и ТПМП внутри модели: его ячейки увеличиваются от поверхности модели к её центру. У поверхности используется «Плотность заполнения», а в центре — «Внутренняя плотность».\n"
+"«Деформация по расстоянию», «Плавное смешивание» и «Ступенчатые оболочки» учитывают расстояние до ближайшей поверхности, включая верхнюю и нижнюю, а внутренняя плотность достигается в наиболее удалённой от неё точке:\n"
+" - Деформация по расстоянию: один непрерывный шаблон, растянутый и скошенный там, где расстояние меняется по разным направлениям, как в пластинах и длинных деталях.\n"
+" - Плавное смешивание: шаблоны соседних плотностей плавно переходят друг в друга, образуя небольшие петли в местах стыка.\n"
+" - Ступенчатые оболочки: оболочки обычного шаблона с плотностями, отличающимися примерно в 1,5 раза, линии которых соединены вдоль границ оболочек.\n"
+" - Доли: повторяет трёхмерную форму модели, включая её верх и низ. Каждая доля — часть, соединённая с остальной моделью более узкой перемычкой, — изменяет плотность к собственному центру.\n"
+" - Нормаль Z, Y или X: повторяет сечения модели, перпендикулярные этой оси, поэтому плотность вдоль неё не меняется."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Деформация по расстоянию"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Плавное смешивание"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Ступенчатые оболочки"
+
+# AI Translated
+# Needs human review: Adaptive density dropdown option: regions joined to the rest of the object by a narrower neck; check 'Доли' (vs 'Лепестки') reads right.
+msgid "Lobes"
+msgstr "Доли"
+
+# AI Translated
+# Needs human review: Adaptive density dropdown option meaning 'sections normal to the Z axis'; check 'Нормаль Z' is clear (same for Y and X).
+msgid "Normal Z"
+msgstr "Нормаль Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Нормаль Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Нормаль X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Внутренняя плотность"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Плотность адаптивного заполнения в центре модели."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Адаптивный градиент"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Как меняется плотность от поверхности к центру модели.\n"
+"Линейный: плотность меняется с постоянной скоростью.\n"
+"Квадратичный: у поверхности плотность остаётся близкой к значению «Плотность заполнения» и быстрее меняется ближе к центру.\n"
+"Экспоненциальный: плотность быстро меняется сразу под поверхностью и выравнивается ближе к центру."
+
+# AI Translated
+msgid "Linear"
+msgstr "Линейный"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Квадратичный"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Экспоненциальный"
+
msgid "Z-buckling bias optimization (experimental)"
msgstr "Оптимизация CRAMP (beta)"
@@ -15746,51 +17015,9 @@ msgstr ""
msgid "Sparse infill pattern"
msgstr "Шаблон заполнения"
+# AI Translated
msgid "This is the line pattern for internal sparse infill."
-msgstr ""
-"Шаблон разреженного заполнения внутри модели.\n"
-"\n"
-"🞄 Зигзаг: самый простой и быстрый вариант заполнения.\n"
-"🞄 Ровный зигзаг: идентичен зигзагу, но сохраняет постоянный угол.\n"
-"🞄 Аккуратный зигзаг: идентичен зигзагу, но сохраняет согласованность\n"
-" между слоями и поддерживает зеркальный режим.\n"
-"🞄 Смещённый зигзаг: идентичен зигзагу, но смещается с каждым слоем.\n"
-"🞄 Двойной зигзаг: зигзаг в оболочке с возможностью её настройки.\n"
-"🞄 Нити: похожи на зигзаг, но содержат вдвое меньше углов и\n"
-" печатаются быстрее. Заполнение напоминает изонить.\n"
-"🞄 Сетка: простая сетка из двух перпендикулярных линий в основании.\n"
-"🞄 Треугольники: сетка из трёх линий в основании.\n"
-"🞄 Звёзды: идентичен треугольной сетке, но линии смещены для\n"
-" снижения переэкструзии в её узлах.\n"
-"🞄 Куб: заполнение из вертикально расположенных кубов, отлично\n"
-" распределяет нагрузку во всех направлениях у разных форм.\n"
-"🞄 Динамический куб: идентичен кубу, но экономит материал и время\n"
-" в наименее нагруженных областях. Идеален для крупных моделей.\n"
-"🞄 Четверной куб: алгоритм идентичен кубу, но имеет в основании\n"
-" 4 линии. Лучше распределяет нагрузку в ортогональных формах.\n"
-"🞄 Кубическая поддержка: экономичный шаблон заполнения,\n"
-" рекомендуется исключительно для ненагруженных деталей.\n"
-"🞄 Молния: предельно экономичный шаблон для быстрой печати\n"
-" тестовых и декоративных моделей.\n"
-"🞄 Соты: заполнение вертикальными шестигугольными сотами.\n"
-"🞄 3D-соты: заполнение усечёнными октаэдрами, состоящими из\n"
-" квадратов и наклонных шестиугольников.\n"
-"🞄 Боковые соты: идентичен сотам, но расположен горизонтально.\n"
-" Хорошо сопротивляется кручению.\n"
-"🞄 Боковая сетка: более слабый аналог боковых сот с настройкой углов.\n"
-"🞄 Переходный зигзаг: упрощённый \"гироид\" для слабой электроники,\n"
-" уступает ему в прочности.\n"
-"🞄 ТПМП Шварца D: похож на 3D-соты, но не создаёт концентраций\n"
-" напряжения. Заполнение изотропно, как и гироид.\n"
-"🞄 ТПМП Фишера-Коха S: схож с костной тканью и хорошо гасит удары.\n"
-"🞄 Гироид: как и 3 предыдущих, делит пространство на 2 объёма и\n"
-" хорошо подходит для заливки смолой.\n"
-"🞄 Эквидистанты: повторяют контур слоя. Подходят для сплошного\n"
-" заполнения и гибких деталей.\n"
-"🞄 Кривая Гильберта: создаёт непрерывный фрактальный лабиринт.\n"
-"🞄 Спираль Архимеда: как и кривая Гильберта, равномерно заполняет\n"
-" весь объём без его деления, подходит для заливки смолой.\n"
-"🞄 Спиральная октаграмма: декоративный шаблон."
+msgstr "Шаблон разреженного заполнения внутри модели."
msgid "Zig Zag"
msgstr "Аккуратный зигзаг"
@@ -15801,8 +17028,9 @@ msgstr "Смещённый зигзаг"
msgid "Locked Zag"
msgstr "Двойной зигзаг"
+# AI Translated
msgid "Line"
-msgstr "Нити"
+msgstr "Линия"
msgid "Grid"
msgstr "Сетка"
@@ -15934,14 +17162,16 @@ msgstr "Высота первого слоя"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Высота первого слоя. Небольшое увеличение высоты снижает вероятность отрыва детали от неровной поверхности стола."
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Общее ограничение скорости движения головы (относительно стола) при печати элементов первого слоя (кроме сплошного заполнения)."
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Ограничение скорости движения головы (относительно стола) при печати периметров и каймы на первом слое."
msgid "First layer infill"
msgstr "Заполнение"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Ограничение скорости движения головы (относительно стола) при печати сплошного заполнения на первом слое."
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Ограничение скорости движения головы (относительно стола) при печати первого слоя, кроме периметров и каймы: заполнения, заполнения щели и поддержек."
msgid "First layer travel speed"
msgstr "Холостые перемещения"
@@ -16441,6 +17671,10 @@ msgstr "Тип G-code"
msgid "What kind of G-code the printer is compatible with."
msgstr "Выбор типа G-code для совместимости с прошивкой вашего принтера."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (устаревший)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16697,16 +17931,18 @@ msgstr "Ширина линий заполнения. Можно указать
msgid "Infill/wall overlap"
msgstr "Перекрытие заполнения с периметром"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Параметр указывает на сколько процентов заполнение будет перекрываться с периметром для лучшего соединения друг с другом. Установите значение равным ≈10-15%, чтобы свести к минимуму вероятность чрезмерной экструзии и накопления материала приводящее к шероховатости поверхности."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Параметр указывает, на сколько заполнение будет перекрываться с периметром для лучшего соединения друг с другом. Значение в процентах рассчитывается от ширины линии внутренних периметров. Установите значение равным ≈10-15%, чтобы свести к минимуму вероятность чрезмерной экструзии и накопления материала, приводящих к шероховатости верхних поверхностей."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Перекрытие заполнения поверхности с периметром"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "Площадь верхнего сплошного заполнения немного увеличивается, чтобы перекрыть периметр для лучшего сцепления и минимизировать появление мелких отверстий в местах соединения верхнего заполнения с периметрами. Значение 25-30% является хорошей отправной точкой, минимизирующей появление таких отверстий."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "Площадь верхнего сплошного заполнения немного увеличивается, чтобы перекрыть периметр для лучшего сцепления и минимизировать появление мелких отверстий в местах соединения верхнего заполнения с периметрами. Значение 25-30% является хорошей отправной точкой, минимизирующей появление таких отверстий. Значение в процентах рассчитывается от ширины линии внутренних периметров."
msgid "This is the speed for internal sparse infill."
msgstr "Ограничение скорости движения головы при печати разреженного заполнения (относительно стола)."
@@ -16738,11 +17974,9 @@ msgstr "Толщина той части модели, которая была
msgid "Interlocking depth of a segmented region"
msgstr "Глубина переплетения окрашенной области"
-# Переведено с фактическими ошибками, переписать с нуля
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr ""
-"Глубина взаимного переплетения окрашенной области с основной моделью. Это значительно увеличивает прочность соединения между частями детали при мультиматериальной покраске.\n"
-"При 0 и если «Глубина переплетения окрашенной области» будет больше значения «Глубина проникновения окрашенной области», то переплетения не будет."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Глубина переплетения окрашенной области. На каждом втором слое окрашенная область ограничивается этой глубиной. Игнорируется, если включён «interlocking_beam». Значение 0 отключает эту функцию."
msgid "Use beam interlocking"
msgstr "Создать взаимосвязанную структуру"
@@ -16851,14 +18085,15 @@ msgstr ""
msgid "Minimize wall height angle"
msgstr "Угол прижима периметров"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
-"Прижимать периметры к предыдущему слою на поверхностях с наклоном менее заданного значения.\n"
-"\n"
-"Внимание: в настоящий момент действие настройки инвертировано (затрагивается всё, кроме верхних периметров с указанным углом), что делает её вредоносной."
+"Уменьшает высоту периметров верхней поверхности до высоты края модели.\n"
+"Затрагивает периметры с наклоном больше этого угла (в градусах).\n"
+"Разумное значение – 35. 0 – отключить."
msgid "Don't alternate fill direction"
msgstr "Отключить поворот шаблона заполнения"
@@ -16940,17 +18175,21 @@ msgstr "Максимальная скорость перемещения по Z"
msgid "Maximum speed E"
msgstr "Максимальная скорость подачи у экструдера"
-msgid "Maximum X speed"
-msgstr "Максимальная скорость перемещения по X"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Максимальная скорость по оси X"
-msgid "Maximum Y speed"
-msgstr "Максимальная скорость перемещения по Y"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Максимальная скорость по оси Y"
-msgid "Maximum Z speed"
-msgstr "Максимальная скорость перемещения по Z"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Максимальная скорость по оси Z"
-msgid "Maximum E speed"
-msgstr "Максимальная скорость подачи у экструдера"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Максимальная скорость по оси E"
msgid "Maximum acceleration X"
msgstr "Максимальное ускорение по X"
@@ -17492,8 +18731,9 @@ msgstr "Используемые плагины"
msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capability."
msgstr "Функционал плагинов, на который ссылается этот профиль, указывается как name;uuid;capability."
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
-msgstr "Python-плагины, вызываемые на каждом этапе нарезки для чтения и изменения промежуточных её данных (включая финальную постобработку G-code). Тестовая/экспериментальная функция."
+# AI Translated
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgstr "Python-плагины, вызываемые на каждом этапе конвейера нарезки для чтения и изменения промежуточных данных, включая завершающую постобработку G-code. Исследовательская/экспериментальная функция."
msgid "Printer type"
msgstr "Тип принтера"
@@ -17911,10 +19151,9 @@ msgstr "Косой шов для внутренних периметров"
msgid "Use scarf joint for inner walls as well."
msgstr "Использовать косой шов и для внутренних периметров."
-# Адаптивная скорость очистки, местная скорость очистки, локальная скорость
-# очистки, скорость очистки по типу линии
-msgid "Role base wipe speed"
-msgstr "Местная скорость очистки"
+# AI Translated
+msgid "Role based wipe speed"
+msgstr "Скорость очистки по типу линии"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
msgstr "Выбирать скорость очистки перед холостым перемещением на основе скорости печати последней линии. Например, если очистка происходит после печати внешнего периметра, скорость движения очистки будет как у периметра."
@@ -18032,16 +19271,15 @@ msgstr "После первого слоя количество контуров
msgid "Draft shield"
msgstr "Защитный кожух"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"Защитный кожух полезен для защиты материалов типа ABS, ASA от деформации и отрыва от стола из-за внешнего воздушного потока. Обычно защитный кожух необходим только для принтеров без термокамеры.\n"
"\n"
-"Если включено, то высота юбки будет равна высоте самой высокой модели, иначе используется значение «Слоёв юбки».\n"
-"Примечание: при включённом защитном кожухе, юбка будет печататься на расстоянии от модели, которое задаётся параметром «Расстояние до юбки». Если активна кайма, она может пересекаться с юбкой. Чтобы избежать этого, увеличьте значение «Расстояние до юбки».\n"
+"Если включено, то высота юбки будет равна высоте самой высокой модели, иначе используется значение «Слоёв юбки»."
msgid "Enabled"
msgstr "Включено"
@@ -18221,6 +19459,130 @@ msgstr "Общий экструдер"
msgid "Use single nozzle to print multi filament."
msgstr "Использовать общий экструдер для комбинированной печати несколькими цветами/материалами."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "Принтер IDEX/IQEX"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Включает параллельную печать для принтеров с несколькими независимыми каретками (IDEX, IQEX и аналогичных)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Зоны под управлением прошивки"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Если включено, слайсер выводит G-code, в котором содержимое основной зоны центрировано относительно начала координат стола (0,0). За размещение копий и зеркальных отражений в физическом положении каждой зоны отвечает прошивка принтера. Включайте только на принтерах, прошивка которых сама применяет смещения зон в режиме копии/зеркала (например, режим дублирования IDEX в RepRapFirmware). Не действует в режиме «Основной»."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Количество порталов"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Количество независимых порталов по оси Y. 1 — для IDEX и IQEX с одной направляющей. 2 — для систем с двумя порталами (делит стол на ряды)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Инструментов на портале"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Количество независимых печатающих голов на одном портале по оси X. 2 — для схемы IDEX."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Положение инструмента 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Физическое положение на столе, где находится инструмент T0 (индекс 0). Определяет, как индексы инструментов соотносятся с зонами стола. Для конфигураций с одним порталом (IDEX) важно только положение слева/справа; для конфигураций с двумя порталами (IQEX) можно выбрать любой из четырёх углов (спереди — меньшее значение Y / ближе к оператору, сзади — большее значение Y / задняя часть принтера)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Зазор сопла по X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Расстояние (мм) от сопла до края каретки со стороны возможного столкновения по оси X. Используется для расчёта ширины полосы исключения столкновений на каждой границе по X."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Зазор сопла по Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Расстояние (мм) от сопла до края каретки со стороны возможного столкновения по оси Y. Используется для расчёта ширины полосы исключения столкновений на каждой границе по Y."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Запас безопасности"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Рекомендательная полоса зазора (мм), которая отображается внутри основной зоны у каждой границы кареток и не блокирует нарезку. Модели в этой полосе всё равно будут нарезаны; это лишь визуальное напоминание оставить дополнительный зазор у края зоны."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Тема отображения"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Цветовая тема для отображения зон стола IDEX/IQEX. При необходимости выберите тему, адаптированную для нарушений цветового зрения."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Дейтеранопия / протанопия (красный-зелёный)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Тританопия (синий-жёлтый)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Высокая контрастность"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "Режим печати IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Название активного параллельного режима печати IDEX/IQEX или \"primary\" для печати одной кареткой. Требует включения параметра «Принтер IDEX/IQEX» в профиле принтера (Принтер → Многоцвет → Настройка IDEX/IQEX)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "Карта материалов голов IDEX/IQEX"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Переопределение для стола: соответствие физических голов слотам материала (нумерация с 1). Пустое значение означает, что каждая голова использует первый материал, на который её направляет карта физических экструдеров принтера."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "Названия режимов IDEX/IQEX"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Отображаемые названия всех пользовательских параллельных режимов печати IDEX/IQEX."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Активные инструменты режимов IDEX/IQEX"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Назначение ролей инструментов для каждого режима. Формат: \"idx:P,idx:C,idx:M\", где P=Primary (основной), C=Copy (копия), M=Mirror (зеркало) (например, \"0:P,1:C,2:M,3:M\"). Управляется редактором режимов IDEX/IQEX в профиле принтера."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-code режимов IDEX/IQEX"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code или вызов макроса, вставляемый в начале печати для каждого режима."
+
msgid "Manual Filament Change"
msgstr "Ручная смена прутка"
@@ -18652,6 +20014,168 @@ msgstr ""
"\n"
"Например, при значении 15% поддержка добавится, если верхний периметр лежит на нижнем меньше чем на 15% своей ширины, что при ширине линии 0.4 мм составляет 0.06 мм."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Наклон стола по X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Угол наклона стола вдоль оси X. Положительное значение наклоняет стол так, что сторона +X становится выше, смещая направление силы тяжести к -X и увеличивая нависания на стороне +X. Отрицательное значение поднимает сторону -X. Установите 0, чтобы не наклонять стол по оси X. В режиме ленточного принтера значение автоматически синхронизируется с углом наклона ленты."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Наклон стола по Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Угол наклона стола вдоль оси Y. Положительное значение наклоняет стол так, что сторона +Y становится выше, смещая направление силы тяжести к -Y и увеличивая нависания на стороне +Y. Отрицательное значение поднимает сторону -Y. Установите 0, чтобы не наклонять стол по оси Y."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Включить печать на ленте"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Включает режим ленточного принтера. В ленточных принтерах поверхностью печати служит конвейерная лента, наклонённая под углом (обычно 45 градусов). Слайсер поворачивает плоскость нарезки и преобразует координаты G-code для наклонной поверхности печати."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Бесконечная ось Y"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Включает бесконечную ось Y для ленточных принтеров. Если включено, ограничение области печати по оси Y фактически снимается, что позволяет печатать модели любой длины в направлении движения ленты."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Ось наклона ленты"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Ось, вокруг которой поворачивается сетка перед нарезкой. Это наклон ленточного принтера: изометрический (без искажений) поворот, который также определяет отображение стола и наклон направления силы тяжести для поддержек и который обратное преобразование G-code отменяет перед сдвигом/масштабированием в машинную систему координат и переназначением осей. Обычно портал наклонён вокруг X (лента движется вдоль Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Угол наклона ленты"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Угол наклона поверхности ленты в градусах. Большинство ленточных принтеров используют 45°. Положительные значения поворачивают против часовой стрелки, если смотреть вдоль положительного направления оси наклона; абсолютное значение также задаёт физический наклон ленты, используемый для отображения стола и направления силы тяжести для поддержек."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Отдельный наклон машинной системы координат"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Настройка для экспертов: задаёт угол наклона машинной системы координат (сдвиг/масштаб G-code) независимо от угла поворота перед нарезкой. Если отключено, преобразование в машинную систему координат выводится из угла наклона ленты, так что один угол управляет обоими этапами. Включайте только для компенсации принтера, у которого физический наклон портала отличается от поворота при нарезке."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Угол наклона машинной системы координат"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Угол наклона (в градусах), из которого выводятся сдвиг (cot) и масштаб (1/|sin|) машинной системы координат, применяемые к G-code. Используется, только если включён параметр «Отдельный наклон машинной системы координат»; иначе используется угол наклона ленты."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+# Needs human review: G-code remap dropdown: 'Rev' = reversed axis (max - position), distinct from -X; check the short label (also Rev Y/Z).
+msgid "Rev X"
+msgstr "Обратная X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Обратная Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Обратная Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "Переназначение X в G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Какая ось нарезки соответствует оси X принтера в выводе G-code. Применяется ПОСЛЕ нарезки, при генерации G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "Переназначение Y в G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Какая ось нарезки соответствует оси Y принтера в выводе G-code. Применяется ПОСЛЕ нарезки, при генерации G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "Переназначение Z в G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Какая ось нарезки соответствует оси Z принтера в выводе G-code. Применяется ПОСЛЕ нарезки, при генерации G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Смещение основания поддержек по Z"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Смещает вычисленное основание на ленте вверх или вниз (мм). Отрицательные значения опускают основание, сохраняя больше поддержек. Используйте для диагностики проблем с формулой основания на ленте."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Включить черновую башню на ленте"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Замена черновой башни для ленточных принтеров. Если включено на ленточном принтере, рядом с печатаемыми моделями автоматически создаётся призма для прочистки, и прочистка при смене материала выполняется в неё (обычную черновую башню нельзя использовать на ленточных принтерах, так как её G-code обходит преобразование ленты). Доступно только на ленточных принтерах."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Ширина черновой башни на ленте"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Ширина (по оси X принтера, поперёк ленты) призмы для прочистки, которая автоматически создаётся на ленточных принтерах, если включена черновая башня на ленте и используется несколько материалов. Прочистка при смене материала выполняется в линии этой призмы вместо обычной черновой башни. Её высота вычисляется автоматически из наибольшего объёма прочистки на слой: чем шире призма, тем она ниже."
+
# Angle=Наклон в данном случае, т.к. именно здесь угол расчитывается от
# вертикали, а не от горизонтали.
msgid "Tree support branch angle"
@@ -18833,15 +20357,15 @@ msgstr "Минимальная толщина оболочки сверху в
msgid "Separated infills"
msgstr "Независимые шаблоны"
-# Тут сразу несколько изменений. 1 - на Вики речь идёт в целом даже про отдельные куски одного меша, а не только про части в составе сборки. 2 - логически переупорядочил предложения. 3 - touch and overlap заменено на "прямой контакт". 4 - не вижу смысла приводить примеры, не давая полного списка шаблонов. Какой-то логики по структуре шаблонов тут нет, т.к. ограничение исходит из алгоритма центровки, так что это только будет путать.
+# AI Translated
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"Разделить шаблоны заполнения у независимых частей модели/сборки. Это позволяет получать симметричное расположение шаблона в случаях, когда отдельные части вызывают его смещение относительно центра модели.\n"
-"Примечание: не влияет на части с прямым контактом между собой и не затрагивает шаблоны с жёсткой привязкой к координатам стола."
+"Центрирует внутреннее заполнение каждой части относительно неё самой, как если бы она нарезалась отдельно, а не относительно всей сборки. Соприкасающиеся или пересекающиеся части считаются одним целым и имеют общий центр; отдельные части (или разные 3D-модели) получают собственный центр.\n"
+"Полезно, когда сборка объединяет несколько моделей, каждая из которых должна сохранять согласованное заполнение со своим центром.\n"
+"«Динамический куб» и «Кубическая поддержка» всегда центрируют каждую часть относительно неё самой, а заполнение «Молния» создаётся для всей модели и не затрагивается."
msgid "Center surface pattern on"
msgstr "Центровать шаблон по"
@@ -18982,26 +20506,27 @@ msgstr "Регулировка угла «стабилизирующего ко
msgid "Maximum wipe tower print speed"
msgstr "Макс. скорость печати черновой башни"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
-"Максимальная скорость печати при очистке в черновую башню и печати её разреженных слоёв.\n"
-"Во время прочистки программа сопоставляет скорость разреженного заполнения и скорость, рассчитанную по 'максимальному объёмному расходу', и использует наименьшую.\n"
-"При печати разреженных слоёв программа сопоставляет скорость внутренних периметров и скорость, рассчитанную по 'максимальному объёмному расходу', и также использует наименьшую.\n"
+"Максимальная скорость печати при прочистке на черновой башне и при печати её разреженных слоёв. Во время прочистки, если скорость разреженного заполнения или скорость, рассчитанная по максимальному объёмному расходу материала, ниже, то используется наименьшая из них.\n"
+"\n"
+"При печати разреженных слоёв, если скорость разреженного заполнения или скорость, рассчитанная по максимальному объёмному расходу материала, ниже, то используется наименьшая из них.\n"
"\n"
"Увеличение этой скорости может повлиять на устойчивость башни, а также увеличить силу, с которой сопло сталкивается с любыми наплывами, которые могли образоваться на черновой башне.\n"
"\n"
-"Перед увеличением этого параметра выше значения по умолчанию 90 мм/с убедитесь, что ваш принтер может надежно строить мосты на повышенных скоростях и что отсутствует подтекание при смене инструмента.\n"
+"Перед увеличением этого параметра выше значения по умолчанию 90 мм/с убедитесь, что ваш принтер может надёжно строить мосты на повышенных скоростях и что подтёки при смене инструмента хорошо контролируются.\n"
"\n"
-"Для внешних периметров черновой башни всегда используется скорость внутренних периметров, независимо от значения данного параметра."
+"Для внешних периметров черновой башни используется скорость внутренних периметров, также ограниченная этим параметром."
msgid "Wall type"
msgstr "Форма черновой башни"
@@ -19009,14 +20534,14 @@ msgstr "Форма черновой башни"
# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"Тип внешней стенки черновой башни.\n"
-"1. Прямоугольник с фиксированной шириной и высотой. Установлено по умолчанию.\n"
-"2. Конус со скруглением в нижней части для повышения устойчивости.\n"
-"3. Рёбра жёсткости, которые добавляются по четырём углам черновой башни для повышения устойчивости."
+"1. Прямоугольная: прямоугольник с фиксированной шириной и высотой.\n"
+"2. Конус: конус со скруглением в нижней части для повышения устойчивости черновой башни.\n"
+"3. Усиленная: тип по умолчанию, добавляет четыре ребра жёсткости к стенке башни для повышения устойчивости."
# Тянется из "Форма стола" (в создании принтера) и "Форма черновой башни"
msgid "Rectangle"
@@ -19094,6 +20619,14 @@ msgstr "Прочистка сопла после смены материала
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Использовать эту модель для очистки сопла после смены материала для его экономии и сокращения времени печати. В результате цвета будут смешиваться. Требуется включить черновую башню."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Объект черновой башни на ленте"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Помечает автоматически созданную призму для прочистки на ленте. Управляется автоматически; не задавайте вручную."
+
msgid "Maximal bridging distance"
msgstr "Максимальная длина моста"
@@ -19111,8 +20644,9 @@ msgstr "Расстояние между линиями очистки на че
msgid "Extra flow for purging"
msgstr "Дополнительный поток для очистки"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Регулирует количество пластика, которое будет использоваться для очистки на черновой башне. Делает линии шире или уже по сравнению с тем, что выставлено в «Мин. объём сброса на черновой башне». Расстояние между линиями пересчитывается автоматически."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Дополнительный поток, используемый для линий очистки на черновой башне. Делает линии очистки толще обычного. Расстояние между линиями пересчитывается автоматически."
msgid "Idle temperature"
msgstr "Температура в простое"
@@ -19249,14 +20783,15 @@ msgstr ""
msgid "Minimum wall length"
msgstr "Допустимая длина щели"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Максимальная длина щели в месте уплотнения, которую можно игнорировать. Помогает избежать печати большого количества ненужных коротких линий.\n"
+"Позволяет избежать печати коротких незамкнутых периметров, которые могут увеличить время печати. Значение задаётся как множитель ширины периметра. Чем оно больше, тем больше периметров и тем более длинные периметры удаляются.\n"
"\n"
-"Примечание: не влияет на периметры на первом слое и верхних поверхностях во избежание появления видимых щелей в них. Дополнительно можно настроить чувствительность определения поверхности как верхней в настройке «Порог верхней поверхности», если значение превышает стандартное значение в 0.5 мм."
+"ПРИМЕЧАНИЕ: нижние и верхние поверхности не затрагиваются этим значением, чтобы не появлялись видимые щели на внешней стороне модели. Чувствительность определения верхней поверхности можно настроить в параметре «Порог верхней поверхности» в разделе «Периметры и поверхности» ниже. «Порог верхней поверхности» отображается только если это значение выше стандартного значения 0.5 или если включён параметр «Только один периметр на верхней поверхности»."
# Минимальный сегмент периметра
msgid "Maximum wall resolution"
@@ -19272,9 +20807,8 @@ msgid "Maximum wall deviation"
msgstr "Предельное отклонение"
# AI Translated
-# Перенёс упоминание главенства этой настройки в настройку выше.
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "Максимальное отклонение сегментов от модели. Чем меньше, тем выше точность и размер файла G-code."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "Максимально допустимое отклонение при уменьшении разрешения для параметра «Минимальная длина сегмента». Чем оно больше, тем менее точна печать, но тем меньше размер G-code. Параметр «Предельное отклонение» ограничивает «Минимальная длина сегмента», поэтому при конфликте приоритет у «Предельное отклонение»."
msgid "First layer minimum wall width"
msgstr "Минимальная ширина периметра первого слоя"
@@ -19375,8 +20909,11 @@ msgstr "Ширина линии моста не может превышать д
msgid "too large line width "
msgstr "слишком большая ширина линии "
-msgid " not in range "
-msgstr " вне диапазона "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% вне диапазона [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Экспорт проекта в 3MF."
@@ -19538,6 +21075,14 @@ msgstr "Параметры ориентации"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Параметры ориентации: 0 - отключить, 1 - включить, другие - автоматически"
+# AI Translated
+msgid "Repair"
+msgstr "Восстановить"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Восстанавливает сетки моделей так же, как «Восстановить модель»: закрывает отверстия и трещины, ориентирует их наружу и убирает самопересечения."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Угол поворота вокруг оси Z в градусах."
@@ -19659,6 +21204,12 @@ msgstr "Папку сохранения"
msgid "This is the output directory for exported files."
msgstr "Выходной каталог для экспортированных файлов."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Уровень отладки журнала"
@@ -19831,6 +21382,56 @@ msgstr "Имеется предзарядка одиночного ММ экст
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Используется ли в этой печати дополнительная область очистки для комбинированной печати?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Начальный экструдер без поддержек"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Отсчитываемый от нуля номер первого экструдера, используемого при печати без поддержек. То же самое, что initial_no_support_tool."
+
+# AI Translated
+# Needs human review: 'Head wrap' (nozzle wrapped by filament) rendered with the catalog's 'clumping detection area' / nozzle-wrapping wording; check this matches the placeholder's meaning.
+msgid "In head wrap detect zone"
+msgstr "В зоне обнаружения налипаний"
+
+# AI Translated
+# Needs human review: 'Head wrap zone' rendered as the catalog's 'clumping detection area'; check.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Показывает, пересекается ли первый слой с зоной обнаружения налипаний."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Текущий тип стола"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Название выбранного типа стола (например, «Текстурный лист с PEI», «Гладкое (высокотемп.)»)."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Активный режим IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Название активного режима параллельной печати IDEX/IQEX для этого стола (например, 'primary', 'mirror', 'copy'). Пустая строка, если IDEX/IQEX не включён."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Индекс активного режима IDEX/IQEX"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Отсчитываемый от нуля индекс активного режима параллельной печати IDEX/IQEX в imex_mode_names."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code активного режима IDEX/IQEX"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Исходный шаблон G-code для активного режима параллельной печати IDEX/IQEX после вычисления переменных. Глобальные переменные, определённые здесь, передаются в machine_start_gcode."
+
msgid "Volume per extruder"
msgstr "Объём для каждого экструдера"
@@ -19984,6 +21585,18 @@ msgstr "Имя входного файла без расширения"
msgid "Source filename of the first object, without extension."
msgstr "Имя исходного файла первой модели без расширения."
+# AI Translated
+msgid "Full input filename"
+msgstr "Полное имя входного файла"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Имя исходного файла первой модели."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Название нарезаемого стола."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Вектор состоит из двух элементов: координаты точки x и y. Значения заданы в мм."
@@ -20014,6 +21627,58 @@ msgstr "Верхний правый угол ограничивающего пр
msgid "Size of the print bed bounding box"
msgstr "Размер прямоугольной рамки, ограничивающей область печати"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Центр первого слоя без черновой башни"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Высота первого слоя."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Вектор температур стола для каждого экструдера/материала."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Вектор температур стола на первом слое для каждого экструдера/материала. Значение то же, что у first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Температура стола для первого слоя (начальный экструдер)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Температура стола для первого слоя начального экструдера. То же, что bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Вектор температур термокамеры для каждого экструдера/материала."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Вектор минимальных температур термокамеры для каждого экструдера/материала."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Общая температура термокамеры"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Общая температура термокамеры. Это максимальная температура термокамеры среди всех используемых экструдеров/материалов."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Вектор температур стола на первом слое для каждого экструдера/материала. Значение то же, что у bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Температура сопла на первом слое"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Вектор температур сопла на первом слое для каждого экструдера/материала."
+
msgid "Timestamp"
msgstr "Временная метка"
@@ -20059,8 +21724,9 @@ msgstr "Имя физического принтера, используемог
msgid "Layer number"
msgstr "Номер слоя"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Номер текущего слоя, начиная с единицы (т.е. первый слой имеет номер 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Номер текущего слоя, отсчитываемый от нуля (т.е. первый слой имеет номер 0), кроме G-code при смене типа линии, где отсчёт начинается с единицы."
msgid "Layer Z"
msgstr "Высота слоя над столом"
@@ -20080,6 +21746,252 @@ msgstr "Номер текущего экструдера"
msgid "The current extruder ID. The same as current_extruder."
msgstr "Номер текущего экструдера (то же что и current_extruder.)"
+# AI Translated
+msgid "Previous extruder"
+msgstr "Предыдущий экструдер"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Номер выгружаемого экструдера. Нумерация начинается с нуля (первый экструдер имеет номер 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Следующий экструдер"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Номер загружаемого экструдера. Нумерация начинается с нуля (первый экструдер имеет номер 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Относительная ось E"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Показывает, используется ли относительное позиционирование."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Число смен инструмента"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "Число смен инструмента в процессе всей печати."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Прежняя длина отката"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Длина отката предыдущего материала."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Новая длина отката"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Длина отката нового материала."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Прежняя длина отката (смена инструмента)"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Длина отката предыдущего материала при смене инструмента."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Новая длина отката (смена инструмента)"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "Длина отката нового материала при смене инструмента."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Температура прежнего материала"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "Температура прежнего материала."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Температура нового материала"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "Температура нового материала."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X после смены инструмента"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "Позиция X после смены инструмента."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y после смены инструмента"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "Позиция Y после смены инструмента."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z после смены инструмента"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "Позиция Z после смены инструмента."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Первый объём прочистки"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Первый объём прочистки."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Второй объём прочистки"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Второй объём прочистки."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Скорость подачи E прежнего материала"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "Скорость подачи экструдера прежнего материала."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Скорость подачи E нового материала"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "Скорость подачи экструдера нового материала."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "X точки перемещения 1"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "Координата X точки перемещения 1."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Y точки перемещения 1"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Координата Y точки перемещения 1."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "X точки перемещения 2"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "Координата X точки перемещения 2."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Y точки перемещения 2"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Координата Y точки перемещения 2."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "X точки перемещения 3"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "Координата X точки перемещения 3."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Y точки перемещения 3"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Координата Y точки перемещения 3."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Длина прочистки 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "Длина первой прочистки."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Длина прочистки 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "Длина второй прочистки."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Длина прочистки 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "Длина третьей прочистки."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Длина прочистки 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "Длина четвёртой прочистки."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Тип линии"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Новый тип линии, который будет использован\n"
+"Возможные значения:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Предыдущий тип линии"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Ранее использованный тип линии\n"
+"Возможные значения:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Ошибка с ZIP-архивом"
@@ -20092,32 +22004,32 @@ msgstr "Генерация областей заполнения"
msgid "Generating infill toolpath"
msgstr "Генерация траектории заполнения"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Сглаживание слоёв: %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Обнаруживать нависания для автоподъёма"
msgid "Checking support necessity"
msgstr "Проверка необходимости поддержки"
-# Выводится, если на слое обнаружен контур, не связанный с основным и не
-# имеющий опоры (по сути, парящие кусочки пластика)
-msgid "floating regions"
-msgstr "подвешенные части"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Похоже, у модели %1% есть парящие области. Переориентируйте модель или включите создание поддержек."
-# Выводится, если в контуре слоя обнаружен выступ, не имеющий поддержки (число
-# не проверяется, они либо есть, либо нет)
-msgid "floating cantilever"
-msgstr "нависающие выступы"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Похоже, у модели %1% есть нависающий выступ. Переориентируйте модель или включите создание поддержек."
-# Никогда не выводится, мёртвый код
-msgid "large overhangs"
-msgstr "крупные нависания"
-
-# Подставляются floating regions, floating cantilever или large overhangs
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr ""
-"Похоже, что у модели %s имеются %s.\n"
-"Переориентируйте её или включите поддержки."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Похоже, у модели %1% есть большие нависания. Переориентируйте модель или включите создание поддержек."
msgid "Generating support"
msgstr "Генерация поддержки"
@@ -20128,8 +22040,9 @@ msgstr "Оптимизация траектории инструмента"
msgid "Slicing mesh"
msgstr "Нарезка сетки"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Слоёв не обнаружено. Возможно, требуется починить STL файл(ы) или проверить размер/толщину и повторить попытку.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Слои не обнаружены. Возможно, стоит починить модель или проверить её размер/толщину и повторить попытку.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -20146,6 +22059,398 @@ msgstr "Функция «Расширение контура/пустот сло
msgid "Object name"
msgstr "Имя модели"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Невозможно применить оператор унарного минуса."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Невозможно преобразовать в целое число."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Невозможно округлить нечисловое значение."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Невозможно округлить вниз нечисловое значение."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Невозможно округлить вверх нечисловое значение."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Невозможно применить оператор отрицания."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Невозможно сложить нечисловые типы."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Невозможно вычесть нечисловые типы."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Невозможно умножить на нечисловой тип."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Невозможно разделить нечисловой тип."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Невозможно разделить на нечисловой тип."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Деление на ноль"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Не является логическим выражением"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Невозможно сравнить типы."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Не является числовым типом."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: второй параметр должен быть целым числом"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: третий параметр должен быть целым числом"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Левая часть сопоставления с регулярным выражением должна быть строкой."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Не удалось скомпилировать регулярное выражение: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "Первый параметр regex_replace() должен быть строкой."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): первый параметр (строка для сопоставления) должен быть строкой"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): шаблон должен быть строкой"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Не удалось скомпилировать регулярное выражение"
+
+# AI Translated
+# Needs human review: English says 'operators' but means operands; rendered as 'операндам'. Source wording may need a fix.
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Невозможно применить логическую операцию к нелогическим операндам."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Попытка индексировать скалярную переменную"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Недопустимый индекс вектора"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "Переменная не существует (в неактивной ветви)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "Переменная не существует"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Попытка обратиться к неопределённой (nil) необязательной переменной"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Индексирование пустой векторной переменной"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Попытка обратиться к неопределённому (nil) элементу вектора необязательных значений"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "Индексирующая переменная должна быть целым числом"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Отрицательный индекс вектора"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Не является именем переменной"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Не является именем переменной (в неактивной ветви)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "Не удалось разрешить зависимости \"ratio_over\" для переменной FloatOrPercent"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Неподдерживаемый тип скалярной переменной"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Обращение к векторной переменной, где ожидается скаляр"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Неподдерживаемый тип векторной переменной"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Невозможно изменить переменную, доступную только для чтения"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Правая часть не является числовым выражением"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Ожидается количество элементов для заполнения вектора."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Указано отрицательное количество элементов."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Правая часть не является логическим выражением"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Неподдерживаемый тип выходной скалярной переменной"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Обращение к выходной векторной переменной, где ожидается скаляр"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Индекс вне диапазона"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Неподдерживаемый тип выходной векторной переменной"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Символ уже определён в системном словаре, доступном только для чтения"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Символ уже определён как системная выходная переменная"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Глобальные переменные недоступны в этом контексте"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Имя переменной уже определено в локальной области видимости"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Имя переменной уже определено в глобальной области видимости"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Невозможно присвоить скалярное значение векторной переменной."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Невозможно присвоить векторное значение скалярной переменной."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Невозможно создать векторную переменную из пустого списка инициализации, так как её тип нельзя определить."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Правая часть недопустима: смешение числовых и логических типов."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Невозможно присвоить скаляр вектору"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Некоторые элементы векторной переменной необязательных значений в правой части не определены (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Левая часть — вектор вещественных чисел, а правая — нет."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Левая часть — вектор целых чисел, а правая — нет."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Левая часть — вектор строк, а правая — нет."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Левая часть — вектор логических значений, а правая — нет."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Векторы левой и правой частей несовместимы."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Дублирование этого типа векторных переменных не поддерживается"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "Параметр empty() не является векторной переменной"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "Параметр size() не является векторной переменной"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Для обращения к векторной переменной нельзя использовать нецелочисленный индекс."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Генератор случайных чисел недоступен в этом контексте."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Ошибка разбора в строке %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Ошибка разбора в строке %1%. Ожидается тег %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Ошибка разбора в строке %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "Значение интерполяции должно быть числом."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "Значение X точки таблицы должно быть числом."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "Значение Y точки таблицы должно быть числом."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Координаты X таблицы должны возрастать"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "Значение интерполяции вне диапазона таблицы"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Неизвестная синтаксическая ошибка"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Недопустимый текст."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Недопустимый текстовый блок."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Недопустимый макрос."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Не является макросом {if}{else}{endif}."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Не является макросом {switch}."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Ожидается устаревший формат подстановки переменной"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Ожидается идентификатор."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Ожидается условное выражение."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Ожидается логическое выражение."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Ожидается выражение."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Ожидается закрывающая фигурная скобка или необязательный параметр."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Ожидается список строковых шаблонов (простой текст или регулярное выражение)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Ожидается ссылка на переменную."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Ожидается имя переменной."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Ожидается регулярное выражение."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Недопустимая последовательность utf8"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Символы, не входящие в ASCII7, допускаются только внутри текстовых блоков и строковых литералов, но не внутри блоков кода."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Недопустимая escape-последовательность"
+
msgid "Support: generate contact points"
msgstr "Поддержка: генерация точек контакта"
@@ -20162,6 +22467,10 @@ msgstr "Невозможно прочитать файл, так как он п
msgid "The file format is incompatible and cannot be parsed."
msgstr "Формат файла несовместим и не может быть прочитан."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Не удалось преобразовать ресурс в STL через ModelIO."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Неизвестный формат файла: входной файл должен иметь расширение *.stl, *.obj или *.amf(.xml)."
@@ -20210,9 +22519,6 @@ msgstr "Перекалибровка"
msgid "Calibrate"
msgstr "Калибровка"
-msgid "Finish"
-msgstr "Завершить"
-
msgid "How can I use calibration results?"
msgstr "Как использовать результаты калибровки?"
@@ -20307,9 +22613,13 @@ msgstr ""
"В рамках одного экструдера имя (%s) должно быть уникальным, если тип материала, диаметр сопла и поток одинаковы.\n"
"Перезаписать прошлый результат?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Данный принтер может хранить максимум %d результатов для каждого сопла. Этот результат не будет сохранён."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Данный принтер может хранить максимум %d результат для каждого сопла. Этот результат не будет сохранён."
+msgstr[1] "Данный принтер может хранить максимум %d результата для каждого сопла. Этот результат не будет сохранён."
+msgstr[2] "Данный принтер может хранить максимум %d результатов для каждого сопла. Этот результат не будет сохранён."
msgid "Connecting to printer..."
msgstr "Подключение к принтеру..."
@@ -20537,11 +22847,13 @@ msgstr "Синхронизировать данные сопел и AMS"
msgid "Please connect the printer first before synchronizing."
msgstr "Подключите принтер для синхронизации."
-# костыль с "внимание" для обхода косяка со строчной буквой в начале
-# предложения
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "Внимание: %s экструдер не настроен. Укажите информацию о нём перед продолжением калибровки."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Информация о правом сопле принтера не задана. Укажите её перед продолжением калибровки."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Информация о левом сопле принтера не задана. Укажите её перед продолжением калибровки."
msgid "AMS and nozzle information are synced"
msgstr "Информация об экструдере и AMS синхронизирована"
@@ -20604,6 +22916,11 @@ msgstr "От объёмного расхода"
msgid "To Volumetric Speed"
msgstr "К объёмному расходу"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Шаг"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Вы действительно хотите отменить эту печать?"
@@ -20630,9 +22947,13 @@ msgstr "Примечание: номер хотэнда на %s привязан
msgid "Action"
msgstr "Действие"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Данный принтер может хранить максимум %d результатов для каждого сопла."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Данный принтер может хранить максимум %d результат для каждого сопла."
+msgstr[1] "Данный принтер может хранить максимум %d результата для каждого сопла."
+msgstr[2] "Данный принтер может хранить максимум %d результатов для каждого сопла."
msgid "Edit Flow Dynamics Calibration"
msgstr "Редактировать калибровку динамики потока"
@@ -20758,12 +23079,13 @@ msgid ""
"Please verify the inputs."
msgstr "Значения ускорений должны быть больше ограничений скорости. Проверьте введённые значения."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Пока недоступно на ленточных принтерах — используйте метод «Башня»."
+
msgid "Temperature calibration"
msgstr "Калибровка температуры"
-msgid "Filament type"
-msgstr "Тип материала"
-
msgid "PLA"
msgstr "PLA"
@@ -20785,6 +23107,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Тестовая модель"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Стандартная"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Нависание"
+
msgid "Start temp: "
msgstr "Начальная температура: "
@@ -20908,9 +23243,6 @@ msgstr "Начальная длина отката: "
msgid "End retraction length: "
msgstr "Конечная длина отката: "
-msgid "Test model"
-msgstr "Тестовая модель"
-
msgid "Ringing Tower"
msgstr "Полный тест (Ringing Tower)"
@@ -20941,10 +23273,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Частота (начало/конец)"
-# Ранее было "(начальное/конечное значение)", но это слишком длинно и
-# раздувает границы окна настроек, смещая его вправо
-msgid "Start / End"
-msgstr "(начало/конец)"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X, начало / конец: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y, начало / конец: "
msgid "Frequency settings"
msgstr "Настройка частоты"
@@ -20979,9 +23314,13 @@ msgstr "Проверьте совместимость с прошивкой."
msgid "Frequency: "
msgstr "Частота: "
-# Коэффициент затухания
-msgid "Damp"
-msgstr "Коэффициент"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Частота X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Затухание (начало / конец): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "Прошивка RepRap использует общую частоту для обеих осей."
@@ -21108,9 +23447,13 @@ msgstr "Таймлапсы"
msgid "Enable IFS"
msgstr "Включить IFS"
+# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "Обнаруженные в принтере слоты IFS: %d."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "Обнаружен %d слот IFS в принтере."
+msgstr[1] "Обнаружено %d слота IFS в принтере."
+msgstr[2] "Обнаружено %d слотов IFS в принтере."
msgid "This printer does not report a material station."
msgstr "Принтер не сообщил о подключённом хранилище материалов."
@@ -21235,8 +23578,10 @@ msgstr "Главный"
msgid "Subtract with"
msgstr "Вычитаемый"
-msgid "selected"
-msgstr "выбрано"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "Выбрано: 1"
msgid "Part 1"
msgstr "Элемент 1"
@@ -21349,9 +23694,6 @@ msgstr "например обычная, матовая, шёлковая, мр
msgid "Filament Preset"
msgstr "Профиль материала"
-msgid "Create"
-msgstr "Создать"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "Производитель не выбран; пожалуйста, выберите его заново."
@@ -21666,6 +24008,10 @@ msgstr ""
"и настроек печати, связанные с выбранным принтером.\n"
"Этими файлами можно поделиться с другими пользователями."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Включить пользовательскую текстуру и модель стола"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21721,15 +24067,6 @@ msgstr ""
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Родительские профили невозможно удалить при наличии дочерних"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Следующий профиль наследуется от текущего:"
-msgstr[1] "Следующие профили наследуются от текущего:"
-msgstr[2] "Следующие профили наследуются от текущего:"
-
-msgid "Delete Preset"
-msgstr "Удалить профиль"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Вы действительно хотите удалить выбранный профиль?"
@@ -21808,10 +24145,12 @@ msgid "The number of printer extruders and the printer selected for calibration
msgstr "Количество экструдеров принтера не совпадает с принтером, выбранным для калибровки."
# подставляется "левый " или "правый " (с пробелами)
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "В данный момент %sэкструдер не поддерживает калибровку динамики потока, так как в нём установлено сопло с диаметром 0.2 мм."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21825,6 +24164,14 @@ msgstr ""
"Диаметр сопла не совпадает с фактическим диаметром сопла в экструдере.\n"
" Выполните синхронизацию при помощи кнопки выше и запустите калибровку заново."
+# костыль с "внимание" для обхода косяка со строчной буквой в начале
+# предложения
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Внимание: %s экструдер не настроен. Укажите информацию о нём перед продолжением калибровки."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21902,6 +24249,11 @@ msgstr "Обнаружение принтеров Creality K-серии"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Нажмите «Сканировать» для поиска принтеров K-серии в локальной сети."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Модель"
+
# AI Translated
msgid "Scan"
msgstr "Сканировать"
@@ -21919,9 +24271,13 @@ msgstr "(неизвестная модель K-серии)"
msgid "No K-series printers found. Make sure the printer is on the same network and not blocked by Wi-Fi client isolation, then click Scan again."
msgstr "Принтеров K-серии не найдено. Убедитесь, что принтер подключён к той же сети и не заблокирован функцией изоляции устройств (она же «гостевая сеть»)."
+# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "Найдено принтеров: %zu. Выберите нужный и нажмите «Использовать»."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "Найден %zu принтер Creality. Выберите его и нажмите «Использовать»."
+msgstr[1] "Найдено %zu принтера Creality. Выберите нужный и нажмите «Использовать»."
+msgstr[2] "Найдено %zu принтеров Creality. Выберите нужный и нажмите «Использовать»."
msgid "Active"
msgstr "Активно"
@@ -22010,8 +24366,14 @@ msgstr "Не удалось найти исполняемый файл для п
msgid "Failed to launch a new instance."
msgstr "Не удалось запустить новый экземпляр."
-msgid "log(s)"
-msgstr "журналов"
+# AI Translated
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d журнал (%.2f %s)"
+msgstr[1] "%d журнала (%.2f %s)"
+msgstr[2] "%d журналов (%.2f %s)"
msgid "Choose where to save the exported JSON file"
msgstr "Укажите расположение для экспорта JSON-файла"
@@ -22054,15 +24416,35 @@ msgstr "Требуется указать принтер вручную"
msgid "Authorizing..."
msgstr "Авторизация..."
-msgid "Error. Can't get API token for authorization"
-msgstr "Ошибка получения токена авторизации"
+# AI Translated
+msgid "Maximum login retries exceeded"
+msgstr "Превышено максимальное число попыток входа"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "Ошибка HTTP: %1%"
msgid "Could not parse server response."
msgstr "Ошибка анализа ответа сервера."
+msgid "Error. Can't get API token for authorization"
+msgstr "Ошибка получения токена авторизации"
+
msgid "Error saving session to file"
msgstr "Ошибка записи сеанса в файл"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "Подключение к облаку 3DPrinterOS успешно установлено."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Выполнен вход как пользователь: %1%"
+
msgid "Error session check"
msgstr "Ошибка проверки сеанса"
@@ -22097,6 +24479,42 @@ msgstr "Неверный пароль"
msgid "Could not get resources to create a new connection"
msgstr "Не удалось получить ресурсы для создания нового подключения"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "Подключение к UltiMaker успешно установлено."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Не удалось подключиться к UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Ошибка создания учётных данных! Подробности в журнале."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "ОШИБКА: ID или KEY пусты. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Имя пользователя: %1% Пароль: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Учётные данные ожидают подтверждения. Подтвердите доступ в диалоговом окне на экране принтера."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Недопустимые учётные данные для аутентификации"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Ошибка: учётные данные для аутентификации не найдены!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Загрузка данных на карту FlashAir не включена."
@@ -22211,6 +24629,14 @@ msgstr ""
"Текст сообщения: \"%1%\"\n"
"Ошибка: «%2%»"
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "Подключение к ESP3D успешно установлено."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Не удалось подключиться к ESP3D"
+
msgid "No AMS"
msgstr "AMS отсутствует"
@@ -22284,6 +24710,11 @@ msgstr "Максимальное количество принтеров, кот
msgid "No task"
msgstr "Нет заданий"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Просмотреть"
+
msgid "Edit Printers"
msgstr "Редактировать принтеры"
@@ -22325,6 +24756,11 @@ msgstr "Ошибка печати"
msgid "Printing Pause"
msgstr "Пауза печати"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Подготовка"
+
msgid "Pending"
msgstr "Ожидание"
@@ -22356,9 +24792,6 @@ msgstr "Включить умное назначение материалов:
msgid "File Saving"
msgstr "Сохранение файла"
-msgid "Don't remind me again"
-msgstr "Больше не показывать"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "В дальнейшем уведомление выводиться не будет. Отменить это можно в параметрах слайсера."
@@ -22385,16 +24818,24 @@ msgstr "Режим ручного назначения материала к н
msgid "Global settings"
msgstr "Глобальные настройки"
-msgid "Video tutorial"
-msgstr "Видеоурок"
-
msgid "(Sync with printer)"
msgstr " (состояние принтера)"
-# Отвратительная подстановка левое/правое и тип расхода сопла
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Ошибка: %s сопло не поддерживает требуемый расход (%s), результат текущей группировки недействителен."
+# AI Translated
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Ошибка: у левого экструдера нет доступного обычного сопла, результат текущей группировки недействителен."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Ошибка: у левого экструдера нет доступного сопла с высоким расходом, результат текущей группировки недействителен."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Ошибка: у правого экструдера нет доступного обычного сопла, результат текущей группировки недействителен."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Ошибка: у правого экструдера нет доступного сопла с высоким расходом, результат текущей группировки недействителен."
msgid "We will slice according to this grouping method:"
msgstr "Осуществлять нарезку в соответствии с этой группировкой:"
@@ -22434,15 +24875,22 @@ msgstr "Не удалось подключиться к SimplyPrint"
msgid "Internal error"
msgstr "Внутренняя ошибка"
-msgid "Unknown error"
-msgstr "Неизвестная ошибка"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "Учётная запись SimplyPrint не привязана. Перейдите в раздел подключения для настройки."
msgid "Flashforge returned an invalid JSON response."
msgstr "Ответ Flashforge содержит повреждённый JSON."
+# AI Translated
+msgid "Request failed"
+msgstr "Ошибка запроса"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Ошибка локального API Flashforge %1%: %2%"
+
msgid "No Flashforge printers were discovered on the local network."
msgstr "В локальной сети не обнаружено принтеров Flashforge."
@@ -22589,8 +25037,13 @@ msgstr "Предупреждение: ручная расстановка кай
msgid "Set the brim type of this object to \"painted\""
msgstr "Переключить тип каймы для этого объекта на «Вручную»."
-msgid "invalid brim ears"
-msgstr " недействительные «мышиные уши»"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d недействительное «мышиное ухо»"
+msgstr[1] "%d недействительных «мышиных уха»"
+msgstr[2] "%d недействительных «мышиных ушей»"
msgid "Brim Ears"
msgstr "Кайма «мышиные уши»"
@@ -22616,6 +25069,7 @@ msgstr "Не удалось загрузить информацию о проп
msgid "Failed to create the temporary folder."
msgstr "Не удалось создать временное расположение"
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "из %d выбрано"
@@ -22635,9 +25089,13 @@ msgstr "Исключение всех объектов."
msgid "The printing job will be stopped. Continue?"
msgstr "Печать будет остановлена. Продолжить?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Исключаемых объектов: %d"
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "Пропускается %d модель."
+msgstr[1] "Пропускаются %d модели."
+msgstr[2] "Пропускаются %d моделей."
msgid "This action cannot be undone. Continue?"
msgstr "Это действие необратимо. Продолжить?"
@@ -22786,6 +25244,42 @@ msgstr "Активируйте для сохранения настроек им
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Экспорт профилей"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Показать в папке"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Удалить пакет"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Отписаться от пакета"
+
+# AI Translated
+msgid "Update available"
+msgstr "Доступно обновление"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Неавторизованный пакет"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Открыть этот пакет в браузере"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "По подписке"
+
+# AI Translated
+msgid "Local"
+msgstr "Локальный"
+
msgid "Bundle folder does not exist."
msgstr "Хранилище пакета профилей не найдено."
@@ -22822,6 +25316,14 @@ msgstr "Ошибка"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Экспорт в OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Экспорт в папку"
+
msgid "Save preset bundle"
msgstr "Сохранить пакет профилей"
@@ -22910,6 +25412,11 @@ msgstr "Управление сушкой AMS"
msgid "Filament Drying Settings"
msgstr "Настройки сушки материала"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "ч"
+
msgid "Stopping"
msgstr "Остановка"
@@ -23049,6 +25556,11 @@ msgstr "Запуск: проверка забора воздуха"
msgid "Starting: Checking air vent"
msgstr "Запуск: проверка вентиляции"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Не удалось создать каталог %1%"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Материал может быть несовместим с текущими настройками принтера. Будет использоваться базовый профиль материала."
@@ -23076,6 +25588,105 @@ msgstr "Материал может быть несовместим с теку
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Модель материала неизвестна. Будет использован случайный профиль материала."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Неизвестный файл конфигурации: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Недопустимый файл конфигурации: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "слот %1% -> слот %2%: смешанный материал"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "определение смешанного материала: достигнут предел слотов материала"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "достигнут предел слотов материала"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "предел материалов принтера: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "слот %1% -> слот %2%: неназначенный смешанный материал (предел материалов принтера: %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "слот %1%: неназначенный смешанный материал (предел материалов принтера: %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "слот %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "слот %1%: не удалось импортировать определение смешанного материала"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "требуется не менее двух компонентов"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "компоненты ссылаются на отсутствующие слоты"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "определение смешанного материала: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "слот %1%: не удалось импортировать определение смешанного материала (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "слот %1%: %2% -> %3% (замена)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Не удалось загрузить файл конфигурации %1%\n"
+"Рекомендуется сначала очистить каталог %2%"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Недопустимая версия конфигурации производителя %1%: %2%\n"
+"Рекомендуется сначала очистить каталог %3%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Не удалось загрузить файл конфигурации %1%: %2%\n"
+"Рекомендуется сначала очистить каталог %3%"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Скрыть опорные плоскости и оси"
@@ -23389,6 +26000,11 @@ msgstr "Нет поверхностного тела для утолщения
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Опорная геометрия / кривые (плоскость / ось / СК / спираль / проекция)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Плоскость"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Опорная плоскость (смещение / наклон / средняя плоскость / касательная / два ребра / совпадающая)"
@@ -23455,6 +26071,11 @@ msgstr "Переместить и/или повернуть существующ
msgid "Transform needs a body — add or import one first"
msgstr "Для преобразования нужно тело — сначала добавьте или импортируйте его"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Отражение"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Отразить тело относительно плоскости"
@@ -23548,6 +26169,11 @@ msgstr "(нет)"
msgid "Hole / thread"
msgstr "Отверстие / резьба"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Отверстие"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Создать отверстие по центру выбранной грани или на плоскости"
@@ -23592,6 +26218,11 @@ msgstr "Щёлкните 2 точки или линию / окружность /
msgid "Line / polyline"
msgstr "Линия / ломаная"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Линия"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Щёлкните начало, затем конец — затем задайте точную длину"
@@ -23728,6 +26359,9 @@ msgstr "Сплайн"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Щёлкайте контрольные точки; двойной щелчок, ПКМ или Enter — завершить"
+msgid "Point"
+msgstr "Точка"
+
# AI Translated
msgid "Click to place a point"
msgstr "Щёлкните, чтобы разместить точку"
@@ -23846,16 +26480,19 @@ msgstr "Выберите объекты, перетащите маркер уг
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Щёлкните центр, затем вершину — сторон: %d, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Щёлкните центр, затем вершину — %d сторона (описанный)"
+msgstr[1] "Щёлкните центр, затем вершину — %d стороны (описанный)"
+msgstr[2] "Щёлкните центр, затем вершину — %d сторон (описанный)"
# AI Translated
-msgid "circumscribed"
-msgstr "описанный"
-
-# AI Translated
-msgid "inscribed"
-msgstr "вписанный"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Щёлкните центр, затем вершину — %d сторона (вписанный)"
+msgstr[1] "Щёлкните центр, затем вершину — %d стороны (вписанный)"
+msgstr[2] "Щёлкните центр, затем вершину — %d сторон (вписанный)"
# AI Translated
msgid "Polygon"
@@ -24195,6 +26832,11 @@ msgstr "На грани"
msgid "Thread plane"
msgstr "Плоскость резьбы"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Стандарт"
+
# AI Translated
msgid "Pitch"
msgstr "Шаг"
@@ -24382,6 +27024,9 @@ msgstr "Выберите грань твёрдого тела, чтобы отк
msgid "(pick a side face)"
msgstr "(выберите боковую грань)"
+msgid "Face"
+msgstr "Грань"
+
# AI Translated
msgid "Draft"
msgstr "Уклон"
@@ -24760,8 +27405,11 @@ msgstr "Эскиз обновлён"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Эскиз создан (управляющих размеров: %zu) — выберите его, затем ПКМ для выдавливания"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Эскиз создан (%zu управляющий размер) — выберите его, затем ПКМ для выдавливания"
+msgstr[1] "Эскиз создан (%zu управляющих размера) — выберите его, затем ПКМ для выдавливания"
+msgstr[2] "Эскиз создан (%zu управляющих размеров) — выберите его, затем ПКМ для выдавливания"
# AI Translated
#, c-format, boost-format
@@ -24901,8 +27549,11 @@ msgstr "Изменение: эскиз %d · N — вид по нормал
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "Ок — треугольников: %zu"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "Ок — %zu треугольник"
+msgstr[1] "Ок — %zu треугольника"
+msgstr[2] "Ок — %zu треугольников"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -24989,11 +27640,23 @@ msgstr "Сетка не содержит треугольников"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
-"Треугольников в этой сетке: %d. Каждый треугольник становится гранью B-rep до объединения компланарных граней, поэтому импорт может занять много времени, а полученное тело будет медленно редактироваться. Обычно лучше сначала упростить сетку.\n"
+msgstr[0] ""
+"В этой сетке %d треугольник. Каждый треугольник становится гранью B-rep до объединения компланарных граней, поэтому импорт может занять много времени, а полученное тело будет медленно редактироваться. Обычно лучше сначала упростить сетку.\n"
+"\n"
+"Всё равно импортировать?"
+msgstr[1] ""
+"В этой сетке %d треугольника. Каждый треугольник становится гранью B-rep до объединения компланарных граней, поэтому импорт может занять много времени, а полученное тело будет медленно редактироваться. Обычно лучше сначала упростить сетку.\n"
+"\n"
+"Всё равно импортировать?"
+msgstr[2] ""
+"В этой сетке %d треугольников. Каждый треугольник становится гранью B-rep до объединения компланарных граней, поэтому импорт может занять много времени, а полученное тело будет медленно редактироваться. Обычно лучше сначала упростить сетку.\n"
"\n"
"Всё равно импортировать?"
@@ -25021,7 +27684,7 @@ msgstr "Ошибка импорта сетки: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
msgstr "Твёрдое тело импортировано — треугольников: %d → граней: %d, объём %.2f мм³. Выберите грань или ребро, затем «Скругление» / «Разрез» / «Оболочка» для изменения"
# AI Translated
@@ -25039,8 +27702,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "Добавлено в эскиз: %s — подтвердите, чтобы зафиксировать"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — перетащите для размещения/изменения размера, затем подтвердите"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — перетащите для размещения/изменения размера, затем подтвердите"
# AI Translated
msgid "Insert canceled"
@@ -25248,9 +27913,13 @@ msgid "a geometry operation failed"
msgstr "ошибка геометрической операции"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · выбрано: %d"
+msgid_plural " · %d picked"
+msgstr[0] " · выбран %d элемент"
+msgstr[1] " · выбрано %d элемента"
+msgstr[2] " · выбрано %d элементов"
# AI Translated
#, c-format, boost-format
@@ -25267,7 +27936,10 @@ msgstr "Выбор — щёлкните объект, чтобы выбрать
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "Выбрано: %d · теперь выберите ограничение («Горизонтально», «Параллельно», «Касательно», «Равенство»…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "Выбран %d элемент · теперь выберите ограничение («Горизонтально», «Параллельно», «Касательно», «Равенство»…)"
+msgstr[1] "Выбрано %d элемента · теперь выберите ограничение («Горизонтально», «Параллельно», «Касательно», «Равенство»…)"
+msgstr[2] "Выбрано %d элементов · теперь выберите ограничение («Горизонтально», «Параллельно», «Касательно», «Равенство»…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -25528,7 +28200,10 @@ msgstr "Отражение — ось задана · теперь щёлкн
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Отражение — ось задана · для отражения: %d · щёлкните другой объект, чтобы добавить или убрать его · Enter — применить"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Отражение — ось задана · для отражения %d объект · щёлкните другой объект, чтобы добавить или убрать его · Enter — применить"
+msgstr[1] "Отражение — ось задана · для отражения %d объекта · щёлкните другой объект, чтобы добавить или убрать его · Enter — применить"
+msgstr[2] "Отражение — ось задана · для отражения %d объектов · щёлкните другой объект, чтобы добавить или убрать его · Enter — применить"
# AI Translated
msgid "Move — click the entities to move"
@@ -25652,8 +28327,11 @@ msgstr "Точка эскиза"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "Объектов эскиза: %d"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d объект эскиза"
+msgstr[1] "%d объекта эскиза"
+msgstr[2] "%d объектов эскиза"
# AI Translated
msgid "select something first"
@@ -26190,8 +28868,10 @@ msgid "Applied edit"
msgstr "Изменение применено"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — введите значение, нажмите Enter (или подтвердите)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — введите значение, нажмите Enter (или подтвердите)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -26263,10 +28943,26 @@ msgstr "Передать на стол — отправить тело на вк
msgid "Nothing to commit — add a feature first"
msgstr "Нечего передавать — сначала добавьте элемент"
+# AI Translated
+# Needs human review: Default name of an object committed from the Design tab; 'Design' rendered as 'моделирования' (the tab is Моделирование). Check it reads right in the object list.
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Тело моделирования %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Все тела скрыты — покажите хотя бы одно перед передачей"
+# AI Translated
+# Needs human review: Default name of an object committed from the Design tab; 'Design' rendered as 'моделирования' (the tab is Моделирование). Check it reads right in the object list.
+msgid "Design Assembly"
+msgstr "Сборка моделирования"
+
+# AI Translated
+# Needs human review: Default name of an object committed from the Design tab; 'Design' rendered as 'моделирования' (the tab is Моделирование). Check it reads right in the object list.
+msgid "Design Body"
+msgstr "Тело моделирования"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -26334,8 +29030,11 @@ msgstr "Недопустимо: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Предпросмотр — треугольников: %zu"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Предпросмотр — %zu треугольник"
+msgstr[1] "Предпросмотр — %zu треугольника"
+msgstr[2] "Предпросмотр — %zu треугольников"
# AI Translated
#, c-format, boost-format
@@ -26439,8 +29138,11 @@ msgstr "Этот размер невозможно соблюсти — эски
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "Ограничения, неприменимые к этой геометрии (эллипс, сплайн или окружность нулевого размера), игнорируются: %1%"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% ограничение не может действовать на эту геометрию (эллипс, сплайн или окружность нулевого размера) и игнорируется"
+msgstr[1] "%1% ограничения не могут действовать на эту геометрию (эллипс, сплайн или окружность нулевого размера) и игнорируются"
+msgstr[2] "%1% ограничений не могут действовать на эту геометрию (эллипс, сплайн или окружность нулевого размера) и игнорируются"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -26498,8 +29200,11 @@ msgstr "Фаска: расстояние превышает длину одно
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "Удалено ограничений, ставших недействительными после скругления/фаски: %1%"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "Удалено %1% ограничение, ставшее недействительным после скругления/фаски"
+msgstr[1] "Удалено %1% ограничения, ставших недействительными после скругления/фаски"
+msgstr[2] "Удалено %1% ограничений, ставших недействительными после скругления/фаски"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -26519,8 +29224,11 @@ msgstr "Число копий должно быть целым и не мень
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "Снято ограничений при преобразовании: %1%"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "Снято %1% ограничение при преобразовании"
+msgstr[1] "Снято %1% ограничения при преобразовании"
+msgstr[2] "Снято %1% ограничений при преобразовании"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26672,11 +29380,6 @@ msgstr "Утолщение поверхности"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Для утолщения поверхности нужно поверхностное тело — сначала создайте его инструментом из группы «Поверхность»"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Отверстие"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26761,11 +29464,6 @@ msgstr "Круговой массив"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Повторить тело вокруг оси — задайте количество и угол охвата"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Отражение"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26802,11 +29500,6 @@ msgstr "Для выравнивания нужно тело — сначала
msgid "Align the body to a picked face or plane"
msgstr "Выровнять тело по выбранной грани или плоскости"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Плоскость"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -26912,11 +29605,6 @@ msgstr "Удалить тело"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Удалить всё тело — удаляет элемент, из которого оно создано"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Линия"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -27231,215 +29919,6 @@ msgstr "В этом шрифте нет контуров символов это
msgid "Size: %.1f × %.1f mm"
msgstr "Размер: %.1f × %.1f мм"
-# AI Translated
-msgid "Primitive"
-msgstr "Фигура"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Создана пустая сетка"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Параллелепипед"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Быстрый выбор:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Ширина (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Глубина (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Высота (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "Нижний R"
-
-# AI Translated
-msgid "Top R"
-msgstr "Верхний R"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "Большой R"
-
-# AI Translated
-msgid "Minor R"
-msgstr "Малый R"
-
-# AI Translated
-msgid "All edges"
-msgstr "Все рёбра"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Верхние рёбра"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Нижние рёбра"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Боковые рёбра"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Разрешение сетки"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Добавить фигуру"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Нет внешнего профиля"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Не удалось создать внешнюю грань"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Не удалось построить грань с отверстиями"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Ошибка вращения"
-
-# AI Translated
-msgid "Profile"
-msgstr "Профиль"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Начать новый профиль (для отверстий)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Сегменты"
-
-# AI Translated
-msgid "Sides"
-msgstr "Стороны"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Щёлкайте в рабочем пространстве, чтобы рисовать"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Привязка к сетке"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Шаг сетки"
-
-# AI Translated
-msgid "Outer"
-msgstr "Внешний"
-
-# AI Translated
-msgid "closed"
-msgstr "замкнутый"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2% (точек: %3%) %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (сверху)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (спереди)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (сбоку)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Угол вращения, °"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "0 — выдавливание, >0 — вращение"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Карман (вырез)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu замкнутый профиль"
-msgstr[1] "%zu замкнутых профиля"
-msgstr[2] "%zu замкнутых профилей"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Нарисуйте замкнутый профиль, чтобы включить"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Очистить всё"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Пустой результат"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Выдавливание: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Вращение: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Модель не выбрана"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Ошибка построения грани"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Ошибка построения грани с отверстиями"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Сетка инструмента пуста"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Карман добавлен (вырез)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Карман: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -27556,6 +30035,10 @@ msgstr "Размещение частей сборки"
msgid "Gizmo brim ears"
msgstr "Размещение «мышиных ушек»"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Инструмент рисования рельефной текстуры"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Вертикальный ползунок - Сдвинуть активный ползунок вверх"
@@ -27790,6 +30273,12 @@ msgstr "нужна цилиндрическая грань с обеих сто
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "нужна цилиндрическая грань с обеих сторон — соединитель %1% находится на криволинейной грани"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (базовая плоскость отсутствует)"
+
# AI Translated
msgid "two points are coincident"
msgstr "две точки совпадают"
@@ -27818,10 +30307,31 @@ msgstr "плоскости параллельны (нет пересечения
msgid "zero-length direction"
msgstr "направление нулевой длины"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "элемент работает с телом %1%, которого нет на этом шаге истории"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "«%1%» работает с телом, созданным элементом, который удалён или скрыт"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "«%1%» работает с телом, которого нет на этом шаге истории"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "элемент используется последующим элементом"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "«%1%» использует «%2%», поэтому не может стоять перед ним"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "объекты эскиза не образуют замкнутый контур"
@@ -27832,9 +30342,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Разрыв в точке (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...и ещё незамкнутых концов: %1%"
+msgid "Open ends not shown: %1%"
+msgstr "Не показано открытых концов: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "вращение: линии оси больше нет в эскизе — выберите ось заново"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "вращение: у линии оси нулевая длина"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -27982,6 +30501,30 @@ msgstr "ошибка построения контура отверстия"
msgid "hole cut failed"
msgstr "ошибка вырезания отверстия"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "резьба: диаметр должен быть не менее 1 мм"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "резьба: шаг должен быть больше 0,1 мм"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "резьба: глубина должна быть от 0 до 0,7 × шага"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "резьба: слишком большая глубина для этого диаметра"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "резьба: длина должна быть больше половины шага"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "резьба: слишком много витков (длина / шаг должны быть меньше 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "для внутренней резьбы нужно тело"
@@ -28042,6 +30585,22 @@ msgstr "ошибка удаления грани"
msgid "delete_face produced no geometry"
msgstr "удаление грани не создало геометрию"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "булева операция: нет целевого тела"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "булева операция: нет тела-инструмента — выберите второе тело"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "булева операция: целевое тело и инструмент — одно и то же тело"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "булева операция: у тела нет геометрии"
+
# AI Translated
msgid "boolean operation failed"
msgstr "ошибка булевой операции"
@@ -28370,6 +30929,10 @@ msgstr "Изображения модели"
msgid "Auxiliaries"
msgstr "Вспомогательные файлы"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Черновая башня на ленте"
+
# AI Translated
msgid "Project Filament List"
msgstr "Список материалов проекта"
@@ -28404,8 +30967,20 @@ msgstr "Для разложения требуется не менее двух
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "Список материалов поддерживает не более %1% цветов. После разложения «%2%» количество материалов превысит %1%. Перед разложением удалите неиспользуемые материалы на главном экране."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Список материалов поддерживает не более %1% цвета. После разложения списка материалов их количество превысит %1%. Перед разложением удалите неиспользуемые материалы на главном экране."
+msgstr[1] "Список материалов поддерживает не более %1% цветов. После разложения списка материалов их количество превысит %1%. Перед разложением удалите неиспользуемые материалы на главном экране."
+msgstr[2] "Список материалов поддерживает не более %1% цветов. После разложения списка материалов их количество превысит %1%. Перед разложением удалите неиспользуемые материалы на главном экране."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Список материалов поддерживает не более %1% цвета. После разложения %2% количество материалов превысит %1%. Перед разложением удалите неиспользуемые материалы на главном экране."
+msgstr[1] "Список материалов поддерживает не более %1% цветов. После разложения %2% количество материалов превысит %1%. Перед разложением удалите неиспользуемые материалы на главном экране."
+msgstr[2] "Список материалов поддерживает не более %1% цветов. После разложения %2% количество материалов превысит %1%. Перед разложением удалите неиспользуемые материалы на главном экране."
# AI Translated
msgid "Cyan"
@@ -28435,6 +31010,13 @@ msgstr "Зелёный"
msgid "Blue"
msgstr "Синий"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -28442,7 +31024,1236 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "В текущем списке материалов нет: %s. Материал проекта, необходимый для смешанного материала, будет создан автоматически после разложения."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "В текущем списке материалов нет: %s. Материал проекта, необходимый для смешанного материала, будет создан автоматически после разложения."
+msgstr[1] "В текущем списке материалов нет: %s. Материалы проекта, необходимые для смешанного материала, будут созданы автоматически после разложения."
+msgstr[2] "В текущем списке материалов нет: %s. Материалы проекта, необходимые для смешанного материала, будут созданы автоматически после разложения."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Непрозрачность"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -28538,10 +32349,6 @@ msgstr "Мои настройки"
msgid "Custom Printer Setup"
msgstr "Настройка пользовательского принтера"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Пользовательский принтер"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Задать профиль пользовательского принтера"
@@ -28810,6 +32617,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Запечь"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Ввод точного значения в ползунок"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Значок правки на правом конце ползунка"
+
# AI Translated
msgid "Texture displacement"
msgstr "Рельефная текстура"
@@ -28946,6 +32761,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Удалить текстуру"
+# AI Translated
+msgid "Adjust image"
+msgstr "Настроить изображение"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Яркость"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Контрастность"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Резкость"
+
+# AI Translated
+msgid "Blur"
+msgstr "Размытие"
+
+# AI Translated
+msgid "Hue"
+msgstr "Оттенок"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Выявляет мельчайшие детали изображения. Применяется после параметра «Размытие», поэтому их можно использовать вместе: сначала убрать зернистость размытием, затем повысить резкость оставшихся краёв."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Размывает само изображение. Ползунок «Сглаживание» самого слоя смягчает рельеф, не изменяя изображение, и обращаться стоит в первую очередь к нему."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Эта текстура в оттенках серого, поэтому в ней нечего сдвигать по оттенку."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Модель обновляется, когда вы отпускаете ползунок. «Сохранить как копию» записывает скорректированное изображение в вашу библиотеку текстур и назначает его этому слою."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Сохранить как копию"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Удаление слоя рельефной текстуры"
@@ -29082,6 +32941,15 @@ msgstr "Записать каждый захваченный этап в фай
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Не удалось перенести нарисованную область на перестроенную модель, поэтому ничего не изменено. Переключитесь в режим «Профи» и перестройте сетку до рисования."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Диапазон: от %1% до %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Введите значение вместо перетаскивания. То же самое делает Ctrl+щелчок по ползунку."
+
# AI Translated
msgid "Pro"
msgstr "Профи"
@@ -29188,8 +33056,8 @@ msgid "Click a triangle to paint it"
msgstr "Щёлкните треугольник, чтобы закрасить его"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Требуется, чтобы активный слой использовал наложение «Развёртка (LSCM)»."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Только для слоя текстуры с наложением «Развёртка (LSCM)» - чтобы использовать этот вид, выберите для параметра «Наложение текстуры» активного слоя значение «Развёртка (LSCM)»."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -29204,16 +33072,16 @@ msgid "Checker"
msgstr "Шахматный узор"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Шахматный узор - тестовая клетка вместо текстуры. Где клетки остаются квадратными, текстура не искажена; где они растягиваются, растянется и она"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Шахматный узор - тестовая клетка вместо текстуры. Где клетки остаются квадратными, текстура не искажена; где они растягиваются, растянется и она. Открывает UV-редактор, если он закрыт"
# AI Translated
msgid "Distortion"
msgstr "Искажение"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Искажение - тепловая карта растяжения развёртки, от синего к красному"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Искажение - тепловая карта растяжения развёртки, от синего к красному. Открывает UV-редактор, если он закрыт"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -29239,6 +33107,10 @@ msgstr "Выбрать другое изображение для этого с
msgid "not painted"
msgstr "не нарисован"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Яркость, контрастность, резкость, размытие и оттенок отображаются на изображении и на модели по мере настройки. «Сохранить как копию» записывает результат в вашу библиотеку текстур и назначает его этому слою."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Переместить вверх - применяется раньше"
@@ -29259,10 +33131,20 @@ msgstr "Высота рельефа: насколько белый цвет те
msgid "Tile size"
msgstr "Размер плитки"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Наложение выполняется по собственной UV-развёртке модели, которая уже задаёт размещение - одна копия текстуры покрывает её точно, поэтому размер плитки задавать не нужно."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Ширина одной копии текстуры на модели. Чем меньше значение, тем чаще повторяется узор и тем мельче его детали; при выключенной «Плитке» это размер единственной копии."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Поворачивает текстуру на поверхности, в градусах - чтобы выровнять узор по краю модели."
@@ -29330,28 +33212,36 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Чередует два материала, имитируя промежуточные цвета, так что небольшим набором материалов можно передать фотографию или градиент. Изображение из сплошных цветов печатается одинаково в обоих случаях. Если выключено, на каждую область используется один материал."
# AI Translated
-msgid "Mix by"
-msgstr "Способ смешивания"
+msgid "Mixed colors"
+msgstr "Смешанные цвета"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "На поверхности"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Максимальное число смешанных материалов, которое может добавить запекание. Они подбираются по цветам текстуры, и создаются только те, которые запекание действительно использует."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Слои: два материала чередуются между слоями печати; это даёт плавный переход на вертикальных поверхностях, но пропадает на обращённых вверх или вниз, где весь слой - одна полоса.\n"
-"На поверхности: мелкая шахматная клетка по поверхности; работает под любым углом, но может восприниматься как текстура, а не как смешение.\n"
-"Автоматически: слои на вертикальных гранях; горизонтальные грани получают ближайший один материал, поскольку шахматная клетка на них выглядит как узор."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "Печатаемых цветов: %1% (из материалов: %2%)"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "из %1% материала"
+msgstr[1] "из %1% материалов"
+msgstr[2] "из %1% материалов"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% печатаемый цвет %2%"
+msgstr[1] "%1% печатаемых цвета %2%"
+msgstr[2] "%1% печатаемых цветов %2%"
# AI Translated
msgid "Denoise"
@@ -29402,6 +33292,18 @@ msgstr "Из вида"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Из вида - проецирует текстуру прямо на нарисованную область с текущей точки обзора, как диапроектор."
+# AI Translated
+msgid "Model UV"
+msgstr "UV модели"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "UV модели - использует текстурные координаты, с которыми поставляется сама модель, поэтому текстура, созданная для этой модели, ложится точно туда, где была нарисована. Развёртка не выполняется, а размер плитки не применяется: собственная раскладка модели и есть размещение."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "У этой модели нет собственных текстурных координат. Накладывать по ним можно только модель, импортированную с UV-каналом - например, текстурированный OBJ."
+
# AI Translated
msgid "Open UV editor"
msgstr "Открыть UV-редактор"
@@ -29416,8 +33318,11 @@ msgstr "Ещё не развёрнуто"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "Островов: %1%"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% UV-остров"
+msgstr[1] "%1% UV-острова"
+msgstr[2] "%1% UV-островов"
# AI Translated
msgid "Capture current view"
@@ -29447,10 +33352,6 @@ msgstr "Рамка проекции"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Открывает окно, которое вы перетаскиваете поверх модели. Всё, что видно сквозь него, получит текстуру, а его граница станет краем проекции."
-# AI Translated
-msgid "Opacity"
-msgstr "Непрозрачность"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Насколько плотным выглядит окно рамки, пока вы его размещаете. Уменьшите, чтобы видеть модель сквозь него; на результат не влияет."
@@ -29504,6 +33405,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Добавить"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Заменить"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -29523,8 +33429,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Под базовым слоем нет ничего для совмещения, поэтому он всегда добавляет рельеф."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Что делает этот слой там, где перекрывает нижние. «Добавить» и «Вычесть» наращивают рельеф или срезают его. «Умножить» и «Разделить» масштабируют то, что под ним, превращая этот слой в маску поверх нижних - тогда «Глубина» действует как сила, и 1 мм оставляет белые области без изменений."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Что делает этот слой там, где перекрывает нижние. «Добавить» и «Вычесть» наращивают рельеф или срезают его. «Заменить» заменяет их, так что там, где слой нанесён, остаётся только его рельеф. «Умножить» и «Разделить» масштабируют то, что под ним, превращая этот слой в маску поверх нижних - при этом «Глубина» действует как сила, и 1 мм оставляет белые области без изменений."
# AI Translated
msgid "Adjust placement"
@@ -29548,8 +33454,11 @@ msgstr "Больше настроек"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Использованы все слои (%1%)"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Использован весь %1% слой текстуры"
+msgstr[1] "Использованы все %1% слоя текстуры"
+msgstr[2] "Использованы все %1% слоёв текстуры"
# AI Translated
msgid "Add layer"
@@ -29629,8 +33538,11 @@ msgstr "Бюджет треугольников: задаётся парамет
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Предпросмотр, треугольников: %1%"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Предпросмотр: %1% треугольник"
+msgstr[1] "Предпросмотр: %1% треугольника"
+msgstr[2] "Предпросмотр: %1% треугольников"
# AI Translated
msgid "Steps"
@@ -29672,6 +33584,12 @@ msgstr "Перестроение сетки"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Размер треугольников, с которым перестраивается вся модель, в миллиметрах. Смещение лучше всего работает на равномерной сетке; этот параметр делает её из неравномерной импортированной."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Сохранять острые рёбра"
@@ -29806,14 +33724,6 @@ msgstr "Требуется треугольников: около %1%, бюдж
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Сколько тысяч треугольников уточнение может добавить к модели. Хуже всего вписывающийся треугольник всегда делится первым, поэтому даже израсходованный целиком бюджет потрачен там, где это заметнее всего. Увеличьте, если рельеф всё ещё выглядит грубым."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Останавливает запекание. Всё, что уже выполнено, остаётся на модели и может быть отменено."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Закрывает инструмент без запекания. Ваш рисунок, слои и настройки сохраняются в модели."
-
# AI Translated
msgid "Preparing..."
msgstr "Подготовка..."
@@ -29838,35 +33748,61 @@ msgstr "Превращает нарисованные карты высот в
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Превращает нарисованные карты высот в реальную геометрию. Сетка перестраивается до равномерной плотности и сначала уточняется там, где меняется текстура, чтобы деталям было на что лечь - всё за один шаг."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Останавливает запекание. Всё, что уже выполнено, остаётся на модели и может быть отменено."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Закрывает инструмент без запекания. Ваш рисунок, слои и настройки сохраняются в модели."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% тыс."
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Модель: %1% треуг. - запекание уточнит сетку до указанного выше разрешения в пределах бюджета"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Модель: %1% треугольник - запекание уточнит сетку до указанного выше разрешения в пределах бюджета"
+msgstr[1] "Модель: %1% треугольника - запекание уточнит сетку до указанного выше разрешения в пределах бюджета"
+msgstr[2] "Модель: %1% треугольников - запекание уточнит сетку до указанного выше разрешения в пределах бюджета"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Запекание смещает существующие вершины - в модели остаётся %1% треугольник"
+msgstr[1] "Запекание смещает существующие вершины - в модели остаётся %1% треугольника"
+msgstr[2] "Запекание смещает существующие вершины - в модели остаётся %1% треугольников"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Запекание смещает существующие вершины - в модели остаётся %1% треуг."
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Результат запекания: до ~%1% тыс. треугольников"
+msgstr[1] "Результат запекания: до ~%1% тыс. треугольников"
+msgstr[2] "Результат запекания: до ~%1% тыс. треугольников"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Результат запекания: до ~%1% тыс. треугольников"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "пропущено ненарисованных слоёв: %1%"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% слой не нарисован, пропущен"
+msgstr[1] "%1% слоя не нарисованы, пропущены"
+msgstr[2] "%1% слоёв не нарисованы, пропущены"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "пропущено (не нарисовано): %1%"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% не нарисован, пропущен"
+msgstr[1] "%1% не нарисованы, пропущены"
+msgstr[2] "%1% не нарисованы, пропущены"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29884,6 +33820,10 @@ msgstr "Редактирование рельефной текстуры"
msgid "Choose SLA archive:"
msgstr "Выберите архив SLA:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "Архивные файлы SL1 / SL1S"
+
# AI Translated
msgid "Import file"
msgstr "Импорт файла"
@@ -30054,6 +33994,34 @@ msgstr "Плагины материалов"
msgid "Printer plugins"
msgstr "Плагины принтеров"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Этот профиль не использует возможности плагинов"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Возможности, используемые этим профилем"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Настройки возможности (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Настройки плагина"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Отменить переопределение этого профиля и снова использовать глобальные настройки"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Восстановить по умолчанию"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "Недопустимый JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "Конфигурация не является допустимым JSON. Изменения не сохранены."
@@ -30073,10 +34041,6 @@ msgstr ""
"\n"
"Переопределение в профиле будет отменено, и будет использоваться глобальная конфигурация."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Восстановить по умолчанию"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Используется глобальная конфигурация. Сохраните профиль, чтобы закрепить изменения."
@@ -30102,10 +34066,6 @@ msgstr "Отписаться"
msgid "Overwrite Plugin"
msgstr "Перезаписать плагин"
-# AI Translated
-msgid "Show in folder"
-msgstr "Показать в папке"
-
# AI Translated
msgid "Reinstall"
msgstr "Переустановить"
@@ -30114,6 +34074,10 @@ msgstr "Переустановить"
msgid "Delete cache and reload"
msgstr "Очистить кэш и перезагрузить"
+# AI Translated
+msgid "No description."
+msgstr "Нет описания."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Выберите пакет плагина .py или .whl."
@@ -30146,6 +34110,293 @@ msgstr "Установка плагина"
msgid "Installed \"%s\"."
msgstr "Плагин «%s» установлен."
+# AI Translated
+msgid "Search plugins"
+msgstr "Поиск плагинов"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Очистить поиск"
+
+# AI Translated
+msgid "Match case"
+msgstr "Учитывать регистр"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Слово целиком"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Другие способы установки плагинов"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Установить плагин"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Установить локальный плагин"
+
+# AI Translated
+msgid "Activate"
+msgstr "Активировать"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Сортировать по имени"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Сортировать по версии"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Версия плагина"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Сортировать по источнику"
+
+# AI Translated
+msgid "Source"
+msgstr "Источник"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Сортировать по статусу"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Статус"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Перетащите, чтобы изменить размер; дважды щёлкните, чтобы сбросить"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Изменить размер списка плагинов"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Сведения о плагине"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Информация о плагине"
+
+# AI Translated
+msgid "Description"
+msgstr "Описание"
+
+# AI Translated
+msgid "Config"
+msgstr "Настройки"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Список изменений"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Диагностика"
+
+# AI Translated
+msgid "Types"
+msgstr "Типы"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Установленная версия"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Последняя версия"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Обновить до последней версии"
+
+# AI Translated
+msgid "No description available"
+msgstr "Описание отсутствует"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Выберите плагин, чтобы настроить его возможности"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Настраиваемые возможности"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Отменить сохранённые настройки этой возможности и восстановить значения плагина по умолчанию"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Список изменений плагина"
+
+# AI Translated
+msgid "Date"
+msgstr "Дата"
+
+# AI Translated
+msgid "Changes"
+msgstr "Изменения"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Список изменений отсутствует"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Проблем не обнаружено"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Плагины не найдены"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Нет плагинов, соответствующих «%s»"
+
+# AI Translated
+# Needs human review: Plugin source value in the plugin list (beside 'По подписке', 'Осиротевший', 'Локальный'); check the singular form fits the column and the source filter.
+msgid "Mine"
+msgstr "Мой"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "По подписке"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Осиротевший"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Локальный"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Включены некоторые возможности плагина"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Свернуть возможности %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Развернуть возможности %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Свернуть возможности"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Развернуть возможности"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Открыть этот плагин в браузере"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Возможности: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Возможности"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Запустить «%s»"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Включить %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Нет доступа к обновлениям"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Загрузка плагина…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Этот плагин не предоставляет возможностей"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Активируйте этот плагин, чтобы настроить его возможности"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Посмотреть в OrcaCloud можно здесь "
+
+# AI Translated
+msgid "Activated"
+msgstr "Активирован"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Ошибка выполнения"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Неактивен"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Этот плагин активен и готов к использованию."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Этот плагин ещё загружается."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Этот плагин заблокирован, пока его ошибка не будет исправлена."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Этот плагин загружен, но одна из его возможностей сообщила об ошибке."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Этот плагин неактивен. Активируйте его, чтобы установить или загрузить."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Выберите плагин, чтобы просмотреть его статус и сведения о нём."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Осиротевший: вы больше не подписаны на этот плагин, или он больше недоступен в OrcaCloud. Локальная копия остаётся установленной и по-прежнему может использоваться."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Доступна более новая версия плагина."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Обновления из облака недоступны, так как у этого плагина нет доступа к обновлениям."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -30362,6 +34613,56 @@ msgstr "Не удалось перезагрузить плагин."
msgid "Reloaded \"%s\"."
msgstr "«%s» перезагружен."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Подключение к принтеру"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Настройте подключение к принтеру, чтобы просматривать устройство."
+
+msgid "No model information"
+msgstr "Информация отсутствует"
+
+msgid "Edit Project Info"
+msgstr "Изменить информацию"
+
+msgid "Model Information"
+msgstr "Информация о модели"
+
+msgid "Accessories"
+msgstr "Прикреплённые файлы"
+
+msgid "Profile Information"
+msgstr "Информация о профиле"
+
+msgid "Model name"
+msgstr "Имя модели"
+
+msgid "Created by"
+msgstr "Автор"
+
+msgid "Remixed by"
+msgstr "Модифицировано"
+
+msgid "Shared by"
+msgstr "Поделиться"
+
+msgid "Model description"
+msgstr "Описание модели"
+
+msgid "BOM"
+msgstr "Список материалов"
+
+msgid "Profile name"
+msgstr "Имя профиля"
+
+msgid "Profile Author"
+msgstr "Профиль автора"
+
+msgid "Profile description"
+msgstr "Описание профиля"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Настройки режима прочистки"
@@ -30386,6 +34687,19 @@ msgstr "Уменьшает отходы прочистки и ускоряет
msgid "Terminal"
msgstr "Консоль"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... или uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Консоль плагина готова."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Процесс завершился с кодом: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Команда уже выполняется."
@@ -30432,8 +34746,11 @@ msgstr "Новые смешанные материалы"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Проект поддерживает не более %d материалов. Лишние материалы будут отброшены."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Проект поддерживает не более %d материала. Лишние материалы будут отброшены."
+msgstr[1] "Проект поддерживает не более %d материалов. Лишние материалы будут отброшены."
+msgstr[2] "Проект поддерживает не более %d материалов. Лишние материалы будут отброшены."
# AI Translated
msgid "Import Model"
@@ -30520,8 +34837,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Ошибка вычисления. Измените параметры и повторите попытку."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "Сетка содержит неманифолдную геометрию или открытые границы. Можно импортировать её как есть или перед импортом восстановить с помощью службы 3D-восстановления Windows."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "Сетка содержит неманифолдную геометрию или открытые границы. Можно импортировать её как есть или восстановить её перед импортом."
# AI Translated
msgid "Mesh repair"
@@ -30535,14 +34852,6 @@ msgstr "Импортировать без восстановления"
msgid "Repair and import"
msgstr "Восстановить и импортировать"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Обратите внимание: сетка содержит неманифолдную геометрию или открытые границы."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Проблема с сеткой"
-
# AI Translated
msgid "The selected image is empty."
msgstr "Выбранное изображение пустое."
@@ -30551,6 +34860,14 @@ msgstr "Выбранное изображение пустое."
msgid "Failed to prepare the texture for use."
msgstr "Не удалось подготовить текстуру к использованию."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Не удалось создать папку для импортированных текстур."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Не удалось сохранить импортированную текстуру."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Удалять можно только собственные импортированные текстуры."
@@ -30559,18 +34876,10 @@ msgstr "Удалять можно только собственные импор
msgid "Could not delete the texture file."
msgstr "Не удалось удалить файл текстуры."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Не удалось создать папку для импортированных текстур."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Не удалось загрузить выбранное изображение."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Не удалось сохранить импортированную текстуру."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Не удалось прочитать файл текстуры."
@@ -30614,8 +34923,11 @@ msgstr "Выберите «Развёртка (LSCM)» как наложение
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Выбрано вершин: %d | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Выбрана %d вершина | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать"
+msgstr[1] "Выбрано %d вершины | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать"
+msgstr[2] "Выбрано %d вершин | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30623,8 +34935,11 @@ msgstr "Режим вершин: перетащите вершину, чтобы
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Выбрано рёбер: %d | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Выбрано %d ребро | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать"
+msgstr[1] "Выбрано %d ребра | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать"
+msgstr[2] "Выбрано %d рёбер | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30632,8 +34947,11 @@ msgstr "Режим рёбер: перетащите ребро острова,
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "Выбрано островов: %d | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать, R/S = повернуть/масштабировать основной"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "Выбран %d UV-остров | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать, R/S = повернуть/масштабировать основной"
+msgstr[1] "Выбрано %d UV-острова | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать, R/S = повернуть/масштабировать основной"
+msgstr[2] "Выбрано %d UV-островов | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать, R/S = повернуть/масштабировать основной"
# AI Translated
#, c-format, boost-format
@@ -30652,6 +34970,10 @@ msgstr " | привязка ВКЛ"
msgid "Change texture - choose another one from the texture library"
msgstr "Сменить текстуру - выберите другую из библиотеки текстур"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Размер плитки активного слоя: какую часть модели покрывает один повтор текстуры. Холст измеряется в плитках, поэтому одна клетка сетки — это один повтор. Измените его параметром «Размер плитки» в настройках слоя."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Карта высот - показать текстуру слоя под островами"
@@ -30685,16 +35007,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Раскладывать развёртку связной сеткой: части с общим ребром разворачиваются рядом друг с другом (куб становится соединённой развёрткой, а не шестью отдельными квадратами). Они остаются отдельными островами, поэтому любой из них потом можно переместить вручную."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Остров - перемещение, поворот и масштабирование целых островов"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Остров - работа с целыми UV-островами. Щёлкните остров, чтобы выбрать его, затем перетащите, чтобы переместить, перетащите правой кнопкой, чтобы повернуть, или нажмите R для поворота и S для масштабирования мышью (щелчок или Enter — подтвердить, Esc — отменить)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Вершина - перетаскивание вершин для изменения формы; Shift/Ctrl - множественный выбор"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Вершина - перетаскивайте вершины, чтобы вручную изменить форму UV-острова; Shift добавляет к выделению, Ctrl добавляет вершину в выделение или исключает из него."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Ребро - перетаскивание рёбер для изменения формы; Shift/Ctrl - множественный выбор"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Ребро - перетаскивайте рёбра, чтобы вручную изменить форму UV-острова; Shift добавляет к выделению, Ctrl добавляет ребро в выделение или исключает из него."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30733,8 +35055,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Привязка - склеивать острова при перетаскивании одного к другому"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Вписать все острова (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Вписать все UV-острова, чтобы каждый из них поместился в поле зрения (Home или F).\n"
+"В остальной части холста: прокрутка масштабирует относительно курсора, а перетаскивание средней кнопкой - или перетаскивание по пустому месту - панорамирует вид."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Что выбрано, а также точные значения перемещения, поворота или масштабирования во время перетаскивания."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30745,6 +35075,10 @@ msgstr "Нет слоёв с наложением «Развёртка (LSCM)»"
msgid "%.1f mm tile"
msgstr "плитка %.1f мм"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Панель отображает активный слой текстуры, и для этого слоя должно быть выбрано наложение «Развёртка (LSCM)». Добавьте слой и выберите для его параметра «Наложение текстуры» значение «Развёртка (LSCM)»."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Устарело - рисунок, швы или угол шва изменились после создания этой развёртки. Нажмите, чтобы развернуть заново."
@@ -30753,19 +35087,72 @@ msgstr "Устарело - рисунок, швы или угол шва изм
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Развернуть нарисованную область в UV-острова. Вычисляется только при нажатии этой кнопки, а не при каждом изменении - поэтому сначала нарисуйте, измените угол шва или пометьте швы, а затем нажмите «Развернуть»."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Сначала включите «Пометить швы» - с помощью «Путь» швы развёртки помечаются быстрее."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "На этом слое не помечено ни одного шва развёртки."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Ни один UV-остров не изменялся вручную, поэтому отменять нечего."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "Островов: %d, граней: %s"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d UV-остров"
+msgstr[1] "%d UV-острова"
+msgstr[2] "%d UV-островов"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s грань"
+msgstr[1] "%s грани"
+msgstr[2] "%s граней"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Результат развёртки нарисованной области: количество отдельных частей, на которые она была разрезана (по швам развёртки и по рёбрам острее угла шва), и общее число треугольников в них."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Сначала нажмите «Развернуть» - UV-островов для работы пока нет."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Сначала щёлкните UV-остров на холсте в режиме «Остров»."
+
+# AI Translated
+# Needs human review: Short badge for a published 3MF on a recent project; check that this three-letter abbreviation of 'опубликовано' fits and reads clearly.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "ПУБ"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Вход не выполнен"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Сетевой плагин Bambu не обнаружен. Нажмите здесь , чтобы установить его."
+
+msgid "Create new project"
+msgstr "Создать новый проект"
+
+msgid "Recently opened"
+msgstr "Недавно открытые"
+
+msgid "Open Containing Folder"
+msgstr "Открыть папку с файлом"
# AI Translated
msgid "Forward"
msgstr "Вперёд"
-# AI Translated
-msgid "Tools"
-msgstr "Инструменты"
-
# AI Translated
msgid "View Source"
msgstr "Исходный код"
@@ -30837,6 +35224,75 @@ msgstr "Загрузить %1% в %2%"
msgid "Load %s"
msgstr "Загрузить %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Не удалось включить агент принтера '%1%': идентификатор агента '%2%' уже зарегистрирован возможностью '%3%' плагина '%4%'."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Не удалось включить агент принтера '%1%': идентификатор агента '%2%' уже зарегистрирован агентом '%3%'."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Файл загружен"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Загрузка G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Запуск печати..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Печать запущена"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Загрузка..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Версия сетевой библиотеки не указана"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Сетевая библиотека не найдена"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Не удалось загрузить сетевую библиотеку"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Сетевая библиотека не загрузилась"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Более старая серия плагина. Функции, которым нужна поддержка более нового плагина (например, снимки сбоя печати в диалоговом окне ошибок устройства), недоступны."
+
+# AI Translated
+msgid "unknown name"
+msgstr "неизвестное имя"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"Плагин «%s» запрашивает доступ к файловой системе для чтения:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Разрешения плагина"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -30851,36 +35307,72 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"Плагин «%s» запрашивает чтение следующего файла:\n"
+"%s"
+msgstr[1] ""
+"Плагин «%s» запрашивает чтение следующих файлов:\n"
+"%s"
+msgstr[2] ""
"Плагин «%s» запрашивает чтение следующих файлов:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"Плагин «%s» запрашивает чтение и запись следующего файла:\n"
+"%s"
+msgstr[1] ""
+"Плагин «%s» запрашивает чтение и запись следующих файлов:\n"
+"%s"
+msgstr[2] ""
"Плагин «%s» запрашивает чтение и запись следующих файлов:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"Плагин «%s» запрашивает создание следующего файла:\n"
+"%s"
+msgstr[1] ""
+"Плагин «%s» запрашивает создание следующих файлов:\n"
+"%s"
+msgstr[2] ""
"Плагин «%s» запрашивает создание следующих файлов:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"Плагин «%s» запрашивает удаление следующего файла:\n"
+"%s"
+msgstr[1] ""
+"Плагин «%s» запрашивает удаление следующих файлов:\n"
+"%s"
+msgstr[2] ""
"Плагин «%s» запрашивает удаление следующих файлов:\n"
"%s"
@@ -30905,10 +35397,33 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"Плагин «%s» запрашивает выполнение следующей команды:\n"
+"%s"
+msgstr[1] ""
+"Плагин «%s» запрашивает выполнение следующих команд:\n"
+"%s"
+msgstr[2] ""
+"Плагин «%s» запрашивает выполнение следующих команд:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "Плагин «%s» запрашивает разрешение на создание потока."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"Плагин «%s» запрашивает выполнение следующих команд:\n"
+"Плагин «%s» запрашивает замену запущенного приложения на:\n"
"%s"
# AI Translated
@@ -30920,6 +35435,46 @@ msgstr "Плагин «%s» запрашивает разрешение на с
msgid "Plugin permission request"
msgstr "Запрос разрешения плагина"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "В профиле сохранён недопустимый JSON конфигурации возможностей плагина."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "Конфигурация возможностей плагина в профиле не является массивом и не может быть изменена."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Подключение к принтеру"
+
+# AI Translated
+msgid "Pages"
+msgstr "Страницы"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Анализ"
+
+# AI Translated
+msgid "Importer"
+msgstr "Импорт"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Экспорт"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Визуализация"
+
+# AI Translated
+msgid "Script"
+msgstr "Скрипт"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Конвейер нарезки"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "Интерфейс настройки плагина пуст. Показан редактор по умолчанию."
@@ -30942,8 +35497,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Не удалось записать конфигурацию на диск. Ничего не изменено."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Не удалось установить плагин"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Не удалось установить плагин: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: установленный плагин не найден в каталоге."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "В ключе облачного плагина отсутствует UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Не удалось подписаться на облачный плагин, подробности в журналах."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Отписаться можно только от облачных плагинов."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Не удалось отписаться от плагина, подробности в журналах."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Не удалось получить URL для загрузки плагина (результат %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "У вас нет прав на загрузку этого облачного плагина."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Для этой операционной системы нет пакета плагина."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "Выбранная версия плагина не найдена."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "Версия плагина %1% не найдена."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Облачный плагин не найден."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Файл загрузки облачного плагина не найден: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Файл загрузки облачного плагина не найден."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Для этого плагина нет URL для загрузки. Проверьте журналы на наличие ошибок."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Не удалось загрузить плагин: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Загрузка плагина не удалась: статус HTTP %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "При загрузке плагина получены пустые данные."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Не удалось создать временный файл для загрузки плагина."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Не удалось записать данные плагина во временный файл."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Не удалось определить папку плагина: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Не удалось удалить папку плагина %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Папка плагина не существует: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "В папке плагина несколько файлов .py: %1% и %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "В папке плагина несколько файлов .whl: %1% и %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "В папке плагина есть одновременно входные файлы .py и .whl"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "В папке плагина нет входного файла .py или .whl"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Ошибка плагина конвейера нарезки '%1%': %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Пакет плагина должен быть файлом .py или .whl, получено: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Не удалось извлечь зависимость .whl плагина %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Не удалось добавить зависимость .whl в sys.path: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Интерпретатор Python не инициализирован: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Недопустимый манифест плагина: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Не удалось установить зависимости плагина: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Не удалось загрузить модуль плагина: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Не удалось зарегистрировать плагин: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Модуль плагина не зарегистрировал ни одной возможности"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Плагин объявляет повторяющуюся возможность '%1%' для типа %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Ошибка создания возможности плагина: %1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "Ошибка создания возможности плагина"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Сбой on_load плагина: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Сбой on_load плагина"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Пакет плагина не является файлом: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "UUID облачного плагина не является допустимым идентификатором: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Не удалось создать папку плагина %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Не удалось создать резервную копию существующего плагина %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Не удалось скопировать файл плагина в %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Не удалось записать состояние установки плагина: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Пакет плагина уже загружен: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Конфликт возможностей для типа %1% и имени '%2%'"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Обнаружен повторяющийся ключ плагина: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Загрузка плагина ещё выполняется"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Недопустимый плагин: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Плагин не найден: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Непредвиденная ошибка загрузки плагина: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Непредвиденная ошибка загрузки плагина"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Манифест плагина не найден: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Не удалось получить плагины из облака. Подробности в журналах."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Войдите в OrcaCloud, чтобы установить этот плагин."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud не вернул облачный плагин, на который оформлена подписка."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Не удалось загрузить облачный плагин."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Не удалось установить облачный плагин."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Обновлять можно только облачные плагины."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Для этого плагина нет обновлений."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Отказано в удалении плагина вне известных папок плагинов."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Отказано в обновлении плагина вне известных папок плагинов."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Невозможно оставить плагин локальным: локальный ключ плагина уже существует: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Не удалось обновить состояние установки плагина: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Нельзя отписаться от собственных плагинов."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Удалить и отписаться можно только для облачных плагинов."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Нельзя отписаться от собственных плагинов. Чтобы удалить локальные файлы, используйте «Удалить»."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Запрос разрешения плагина на чтение файловой системы отклонён"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30977,6 +35868,10 @@ msgstr "ошибка объединения при выдавливании в
msgid "imported regions produced no extrudable geometry"
msgstr "импортированные области не дали геометрии для выдавливания"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "профиль пересекает ось вращения — он должен лежать по одну сторону от неё"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Не удалось выполнить вращение"
@@ -31013,6 +35908,10 @@ msgstr "Ошибка построения грани кармана"
msgid "Pocket cut failed"
msgstr "Ошибка вырезания кармана"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "профиль пересекает сам себя или накладывается на себя, поэтому не ограничивает единую область"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "в эскизе нет замкнутого контура"
@@ -31045,10 +35944,26 @@ msgstr "mesh_to_brep: в сетке нет треугольников"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: все треугольники отклонены как вырожденные (попробуйте меньший допуск)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "радиус скругления должен быть больше 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "в этой группе нет рёбер для скругления"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "радиус скругления слишком велик для этой геометрии"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "расстояние фаски должно быть больше 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "в этой группе нет рёбер для снятия фаски"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "размер фаски слишком велик для этой геометрии"
@@ -31061,6 +35976,153 @@ msgstr "apply_fillet: ошибка скругления OCCT"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: ошибка построения фаски OCCT"
+# AI Translated
+msgid "empty component list"
+msgstr "пустой список компонентов"
+
+# AI Translated
+msgid "empty component index"
+msgstr "пустой индекс компонента"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "индекс компонента должен быть >= 1 (получено %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "недопустимый индекс компонента \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "требуется не менее 2 компонентов (получено %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "повторяющийся индекс компонента %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "пустое значение соотношения"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "соотношение должно быть положительным (получено %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "недопустимое соотношение \"%1%\""
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "количество соотношений должно совпадать с количеством компонентов: ожидалось %1%, получено %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "ожидаются два числа с плавающей запятой через запятую, например \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "начальное и конечное соотношения должны быть в интервале (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "размер массива %1% не совпадает с количеством слотов материала %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "должно быть задано, если указаны параметры смешанного материала"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "слот %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "слот %1%: компонент %2% вне диапазона (максимальный индекс физического материала: %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "слот %1%: не может ссылаться сам на себя как на компонент"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "слот %1%: компонент %2% ссылается на слот смешанного материала"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "слот %1%: для градиента требуется ровно 2 компонента"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "слот %1%: недопустимая кривая (нужно не менее 2 допустимых контрольных точек)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Не удалось загрузить файл конфигурации «%1%»: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Это не файл G-code, созданный в %1%."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Тег конфигурации «%1%» не найден"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Подозрительно мало значений конфигурации извлечено из %1%: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Не удалось загрузить файл STEP.\n"
+"Невозможно открыть файл для чтения.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "ошибка импорта SVG: не удалось открыть SVG."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "ошибка импорта SVG: не удалось разобрать импортированные данные SVG."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Пользовательский G-code сообщает отрицательное значение z_retracted."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Пользовательский G-code сообщает отрицательное значение z_restart_extra."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Не удалось скопировать папку %1% в %2%: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Аутентификация завершена"
@@ -31504,6 +36566,1143 @@ msgstr ""
"Предотвращение коробления материала\n"
"Знаете ли вы, что при печати материалами, склонными к короблению, таких как ABS, повышение температуры подогреваемого стола может снизить эту вероятность?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Изменение цвета"
+
+# Максимальное значение можно не указывать, т.к. теперь в каждой подсказке есть абзац с допустимым диапазоном значений.
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Ширина линий мостов. Можно указать процент от диаметра сопла.\n"
+#~ "Рекомендуется использовать в паре с увеличенными плотностью или потоком мостов.\n"
+#~ "\n"
+#~ "0 – использовать ширину линий сплошного заполнения."
+
+# Обновил, отформатировал и провёл семантическую оптимизацию
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Позволяет автоматически замедлять печать в областях, где выступающие периметры могут деформироваться из-за усадки.\n"
+#~ "Например, форштевень Benchy, который сильнее подвержен накоплению усадочной деформации.\n"
+#~ "\n"
+#~ "Рекомендуется использовать в случаях, если скоростной режим, конструкция принтера или его система охлаждения не способны обеспечить качественного сопротивления усадке материала.\n"
+#~ "\n"
+#~ "Примечание: отключает скоростной режим мостов для нависающих периметров (передаёт его в управление настройкам нависаний ниже).\n"
+#~ "\n"
+#~ "Внимание: требуется крайне точная настройка коррекции давления. В противном случае при быстрой печати стенок в местах перепада скоростей будут возникать заметные артефакты поверхности.\n"
+#~ "\n"
+#~ "Рекомендации по настройке:\n"
+#~ "1. Уменьшите время сглаживания Pressure Advance до 0.015-0.02, чтобы\n"
+#~ " повысить реактивность экструдера на изменения скорости.\n"
+#~ "2. Повысьте ограничения скоростей нависаний.\n"
+#~ "3. Если это не помогло, воспользуйтесь сглаживанием расхода."
+
+# ???
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Скорость печати наружных периметров моста.\n"
+#~ "\n"
+#~ "Кроме того, если отключена опция «Замедляться на изогнутых периметрах» или включён «Классический режим» печати нависаний, то скорость печати будет какой же, что и для нависающих периметров, которые имеют поддержку менее 13%, независимо от того, являются ли они частью моста или нависания."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Ограничение скорости движения головы (относительно стола) при печати коротких периметров с радиусом, не превышающим значение порога маленьких периметров (обычно, это отверстия). Можно указать процент от ограничения скорости печати внешнего периметра, указанного выше. Установите 0 для автонастройки (50%)."
+
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Аналогично скорости «Коротких периметров», но для небольших отростков поддержек. Значительно повышает стабильность печати маленьких ветвей древовидных поддержек. Можно указать абсолютную скорость или процент от текущей скорости печати поддержки (например, 80%). 0 – рассчитывать автоматически."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Очерёдность печати внутренних и внешних периметров.\n"
+#~ "\n"
+#~ "• «Изнутри наружу» хорошо подходит для печати нависаний благодаря дополнительному сцеплению внешнего периметра к соседним внутренним, но может привести к небольшому снижению точности размеров и качества внешней поверхности, так как её форма будет повторять внутреннюю структуру печати.\n"
+#~ "\n"
+#~ "• «Снаружи внутрь» обеспечивает хорошую точность размеров, так как внешний периметр печатается без контакта с внутрненним (что одновременно снижает качество нависаний), но при этом избыток материала в сопле в момент подачи может привести к выпиранию шва на внешнем периметре.\n"
+#~ "\n"
+#~ "• «Навстречу» обеспечивает точность размеров и наилучшее качество, так как помимо прочего внутренний периметр стабилизирует поток материала к началу печати внешнего. Требуется минимум 3 периметра: сначала печатаются крайние внутренние, затем внешний и оставшийся внутренний. В большинстве случаев предпочтительнее, чем «Снаружи внутрь»."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Общее ограничение скорости движения головы (относительно стола) при печати элементов первого слоя (кроме сплошного заполнения)."
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Ограничение скорости движения головы (относительно стола) при печати сплошного заполнения на первом слое."
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Параметр указывает на сколько процентов заполнение будет перекрываться с периметром для лучшего соединения друг с другом. Установите значение равным ≈10-15%, чтобы свести к минимуму вероятность чрезмерной экструзии и накопления материала приводящее к шероховатости поверхности."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "Площадь верхнего сплошного заполнения немного увеличивается, чтобы перекрыть периметр для лучшего сцепления и минимизировать появление мелких отверстий в местах соединения верхнего заполнения с периметрами. Значение 25-30% является хорошей отправной точкой, минимизирующей появление таких отверстий."
+
+# Переведено с фактическими ошибками, переписать с нуля
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr ""
+#~ "Глубина взаимного переплетения окрашенной области с основной моделью. Это значительно увеличивает прочность соединения между частями детали при мультиматериальной покраске.\n"
+#~ "При 0 и если «Глубина переплетения окрашенной области» будет больше значения «Глубина проникновения окрашенной области», то переплетения не будет."
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Прижимать периметры к предыдущему слою на поверхностях с наклоном менее заданного значения.\n"
+#~ "\n"
+#~ "Внимание: в настоящий момент действие настройки инвертировано (затрагивается всё, кроме верхних периметров с указанным углом), что делает её вредоносной."
+
+# Адаптивная скорость очистки, местная скорость очистки, локальная скорость
+# очистки, скорость очистки по типу линии
+#~ msgid "Role base wipe speed"
+#~ msgstr "Местная скорость очистки"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Защитный кожух полезен для защиты материалов типа ABS, ASA от деформации и отрыва от стола из-за внешнего воздушного потока. Обычно защитный кожух необходим только для принтеров без термокамеры.\n"
+#~ "\n"
+#~ "Если включено, то высота юбки будет равна высоте самой высокой модели, иначе используется значение «Слоёв юбки».\n"
+#~ "Примечание: при включённом защитном кожухе, юбка будет печататься на расстоянии от модели, которое задаётся параметром «Расстояние до юбки». Если активна кайма, она может пересекаться с юбкой. Чтобы избежать этого, увеличьте значение «Расстояние до юбки».\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Максимальная скорость печати при очистке в черновую башню и печати её разреженных слоёв.\n"
+#~ "Во время прочистки программа сопоставляет скорость разреженного заполнения и скорость, рассчитанную по 'максимальному объёмному расходу', и использует наименьшую.\n"
+#~ "При печати разреженных слоёв программа сопоставляет скорость внутренних периметров и скорость, рассчитанную по 'максимальному объёмному расходу', и также использует наименьшую.\n"
+#~ "\n"
+#~ "Увеличение этой скорости может повлиять на устойчивость башни, а также увеличить силу, с которой сопло сталкивается с любыми наплывами, которые могли образоваться на черновой башне.\n"
+#~ "\n"
+#~ "Перед увеличением этого параметра выше значения по умолчанию 90 мм/с убедитесь, что ваш принтер может надежно строить мосты на повышенных скоростях и что отсутствует подтекание при смене инструмента.\n"
+#~ "\n"
+#~ "Для внешних периметров черновой башни всегда используется скорость внутренних периметров, независимо от значения данного параметра."
+
+# AI Translated
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Тип внешней стенки черновой башни.\n"
+#~ "1. Прямоугольник с фиксированной шириной и высотой. Установлено по умолчанию.\n"
+#~ "2. Конус со скруглением в нижней части для повышения устойчивости.\n"
+#~ "3. Рёбра жёсткости, которые добавляются по четырём углам черновой башни для повышения устойчивости."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Регулирует количество пластика, которое будет использоваться для очистки на черновой башне. Делает линии шире или уже по сравнению с тем, что выставлено в «Мин. объём сброса на черновой башне». Расстояние между линиями пересчитывается автоматически."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Максимальная длина щели в месте уплотнения, которую можно игнорировать. Помогает избежать печати большого количества ненужных коротких линий.\n"
+#~ "\n"
+#~ "Примечание: не влияет на периметры на первом слое и верхних поверхностях во избежание появления видимых щелей в них. Дополнительно можно настроить чувствительность определения поверхности как верхней в настройке «Порог верхней поверхности», если значение превышает стандартное значение в 0.5 мм."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Разделить на %1% часть"
+#~ msgstr[1] "Разделить на %1% части"
+#~ msgstr[2] "Разделить на %1% частей"
+
+#~ msgid "Repair failed"
+#~ msgstr "Не удалось восстановить модель"
+
+#~ msgid "Repair canceled"
+#~ msgstr "Восстановление отменено"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Что делает этот слой там, где перекрывает нижние. «Добавить» и «Вычесть» наращивают рельеф или срезают его. «Умножить» и «Разделить» масштабируют то, что под ним, превращая этот слой в маску поверх нижних - тогда «Глубина» действует как сила, и 1 мм оставляет белые области без изменений."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "Сетка содержит неманифолдную геометрию или открытые границы. Можно импортировать её как есть или перед импортом восстановить с помощью службы 3D-восстановления Windows."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Обратите внимание: сетка содержит неманифолдную геометрию или открытые границы."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Проблема с сеткой"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Ошибка починки: после заполнения отверстий сетка осталась незамкнутой."
+
+# AI Translated
+# Needs human review: English says 'operators' but means operands; rendered as 'операндам'. Source wording may need a fix.
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Невозможно применить логическую операцию к нелогическим операндам."
+
+#~ msgid "Reading"
+#~ msgstr "Чтение"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Количество катушек превышает возможности инструмента. Для покраски будут доступны только первые %1%."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Горячая клавиша "
+
+#~ msgid "Build Volume"
+#~ msgstr "Габарит"
+
+# Подставляется список моделей, через запятую
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "У моделей (%1%) образовались дубликаты соединений, что может привести к их пропуску при нарезке.\n"
+#~ "Пожалуйста, сообщите команде разработчиков условия, при которых это произошло.\n"
+#~ "Заранее спасибо."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "Треугольников: %d"
+
+#~ msgid " (Moving)"
+#~ msgstr " (подвижная)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (неподвижная)"
+
+#~ msgid "Filament "
+#~ msgstr "Пруток "
+
+#~ msgid "hotend"
+#~ msgstr "хотэнд"
+
+#~ msgid "Arranging "
+#~ msgstr "Расстановка: "
+
+#~ msgid "Orienting"
+#~ msgstr "Ориентация"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Пожалуйста, припаркуйте все оси в начало координат (нажав "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") для определения положения печатной головы. Это предотвращает перемещение за пределы области печати и износ оборудования."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr ""
+#~ "Сравнение с оптимальной:\n"
+#~ "потери материала: %1% г, лишние смены прутка: %2%"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr ""
+#~ "Сравнение с оптимальной:\n"
+#~ "потери материала: %1% г, экономия смен прутка: %2%"
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr ""
+#~ "Сравнение с оптимальной:\n"
+#~ "экономия материала: %1% г, лишние смены прутка: %2%"
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr ""
+#~ "Сравнение с печатью одним соплом:\n"
+#~ "экономия материала: %1% г, экономия смен прутка: %2%"
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr ""
+#~ "Сравнение с печатью одним соплом:\n"
+#~ "экономия материала: %1% г, лишние смены прутка: %2%"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr ""
+#~ "Сравнение с печатью одним соплом:\n"
+#~ "потери материала: %1% г, экономия смен прутка: %2%"
+
+#~ msgid "number keys"
+#~ msgstr "(цифры)"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr ""
+#~ "Материалы %s назначены на %s экструдер, но итоговый G-code выходит за его предел высоты печати.\n"
+#~ "\n"
+#~ "%s экструдер:"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr ""
+#~ "Материалы %s назначены на %s экструдер, но итоговый G-code выходит за его предел высоты печати.\n"
+#~ "\n"
+#~ "%s экструдер:"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Для печати %s требуется подложка или основание из другого материала."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "будет закрыт перед созданием нового проекта. Продолжить?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "Ваша очередь в облачной нарезке: %s."
+
+#~ msgid " upload failed"
+#~ msgstr " ошибка загрузки"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " ошибка обработки конфигурации при отправке\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Отсутствует накопитель данных\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " не удаётся открыть\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Ваш комментарий не может быть отправлен по следующим причинам:\n"
+#~ "\n"
+#~ " Код ошибки: "
+
+#~ msgid "error message: "
+#~ msgstr "сообщение об ошибке: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Открыть страницу для выставления оценки?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (профиль настроек печати: %1%)"
+
+# обход строчной буквы в начале предложения через "внимание"
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "Внимание: «%s» экструдер не может печатать %s."
+
+# подстановка в составные уведомления (напр.: "0.2mm Стандартный nozzle").
+# Часто речь идёт именно об экструдере, а не о сопле, плюс "экструдер" лучше
+# согласуется.
+#~ msgid " nozzle"
+#~ msgstr " экструдер"
+
+# Очень кривая подстановка (nozzle_diameter, volume_type), поэтому такой
+# вариант. Например, сейчас получается: "Не рекомендуется одновременно
+# использовать сопло 0.2mm Стандартный экструдер и Bambu PETG Transparent"
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Не рекомендуется одновременно использовать сопло %1% и %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " стола %1%: "
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Удалить все смешанные материалы (%1%)?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Хотите заменить его"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Конфликт температуры стола: T%d (%s) задаёт температуру стола %d°C — T%d (%s) требует %d°C. Столом управляет основной инструмент; остальные инструменты печатают при той температуре, которую он задаёт."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Не заданы ускорения для калибровки. Используется значение по умолчанию: "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Не заданы скорости для калибровки. Используется значение по умолчанию: "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Для диапазона от %1% до %2% °C нет температурной башни для ленточного принтера. Используйте диапазон, который охватывают модели башни, например от 230 до 190."
+
+#~ msgid "The selected file"
+#~ msgstr "В выбранном файле"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "не содержится правильного G-code."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "с OrcaSlicer, чтобы она могла открывать модели сразу с"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Будет затрачено на %d г материала и на %d смен больше, чем при оптимальной группировке."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Параметры с этим значком можно настраивать для каждого сопла отдельно."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Найдены зарезервированные ключевые слова"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr ""
+#~ "С этим принтером связаны\n"
+#~ "• профили материалов: %d\n"
+#~ "• профили настроек: %d\n"
+#~ "\n"
+#~ "Эти профили будут удалены вместе с принтером."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Профиль, указанный ниже, наследуется от текущего профиля."
+#~ msgstr[1] "Профили, указанные ниже, наследуются от текущего профиля."
+#~ msgstr[2] "Профили, указанные ниже, наследуются от текущего профиля."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% профиль"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Вы действительно хотите %1% выбранный профиль?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Разделение на части (%1%)"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Загрузка новых профилей производителей: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Не удалось загрузить профили производителей: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "В этом режиме Span разными цветами печатают только %1%, но материал %2% не подаётся ни в один инструмент. Используйте материалы, подаваемые в %1%, или переключите этот стол в режим «Основной»."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "В этом режиме Span разными цветами печатают только %1%, но материал %2% подаётся в T%3%. Используйте материалы, подаваемые в %1%, или переключите этот стол в режим «Основной»."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " находится слишком близко к области исключения, что может привести к столкновению при печати."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " находится слишком близко к зоне обнаружения налипаний, возможны столкновения при печати."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Черновая башня"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " находится слишком близко к другим моделям, что может привести к колизии.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " находится слишком близко к области исключения, что приведёт к столкновению.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " находится слишком близко к зоне обнаружения налипаний, столкновения неизбежны.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " частично находится за пределами области печати и не может быть напечатан.\n"
+
+# AI Translated
+# Needs human review: Inserted as %3% into 'IDEX/IQEX mode "%1%" prints with T%2%, but this plate's filaments are on %3%' (translated 'загружены в %3%'); check the sentence reads right with it.
+#~ msgid "no configured tool"
+#~ msgstr "ненастроенный инструмент"
+
+# AI Translated
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "G-code, который выполняется в самом конце печати."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Максимальная скорость перемещения по X"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Максимальная скорость перемещения по Y"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Максимальная скорость перемещения по Z"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Максимальная скорость подачи у экструдера"
+
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Python-плагины, вызываемые на каждом этапе нарезки для чтения и изменения промежуточных её данных (включая финальную постобработку G-code). Тестовая/экспериментальная функция."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Если включено, слайсер выводит G-code, в котором содержимое основной зоны центрировано относительно начала координат стола (0,0). За размещение копий и зеркальных отражений в физическом положении каждой зоны отвечает прошивка принтера. Включайте только на принтерах, прошивка которых сама применяет смещения зон в режиме копии/зеркала (например, режим дублирования IDEX в RepRapFirmware). Не действует в режиме «Основной»."
+
+# AI Translated
+# Needs human review: 'pem-inversion defaults' is developer jargon (inverse of physical_extruder_map); check the wording.
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Переопределение для стола: соответствие физических голов слотам материала (нумерация с 1). Пустое значение означает значения по умолчанию, полученные обращением карты физических экструдеров (pem)."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Ось, вокруг которой поворачивается сетка перед нарезкой. Это наклон ленточного принтера: изометрический (без искажений) поворот, который также определяет отображение стола и наклон направления силы тяжести для поддержек и который обратное преобразование G-code отменяет перед сдвигом/масштабированием в машинную систему координат и переназначением осей. Обычно портал наклонён вокруг X (лента движется вдоль Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Настройка для экспертов: задаёт угол наклона машинной системы координат (сдвиг/масштаб G-code) независимо от угла поворота перед нарезкой. Если отключено, преобразование в машинную систему координат выводится из угла наклона ленты, так что один угол управляет обоими этапами. Включайте только для компенсации принтера, у которого физический наклон портала отличается от поворота при нарезке."
+
+# AI Translated
+# Перенёс упоминание главенства этой настройки в настройку выше.
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "Максимальное отклонение сегментов от модели. Чем меньше, тем выше точность и размер файла G-code."
+
+#~ msgid " not in range "
+#~ msgstr " вне диапазона "
+
+# Выводится, если на слое обнаружен контур, не связанный с основным и не
+# имеющий опоры (по сути, парящие кусочки пластика)
+#~ msgid "floating regions"
+#~ msgstr "подвешенные части"
+
+# Выводится, если в контуре слоя обнаружен выступ, не имеющий поддержки (число
+# не проверяется, они либо есть, либо нет)
+#~ msgid "floating cantilever"
+#~ msgstr "нависающие выступы"
+
+# Никогда не выводится, мёртвый код
+#~ msgid "large overhangs"
+#~ msgstr "крупные нависания"
+
+# Подставляются floating regions, floating cantilever или large overhangs
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr ""
+#~ "Похоже, что у модели %s имеются %s.\n"
+#~ "Переориентируйте её или включите поддержки."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Слоёв не обнаружено. Возможно, требуется починить STL файл(ы) или проверить размер/толщину и повторить попытку.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Данный принтер может хранить максимум %d результатов для каждого сопла. Этот результат не будет сохранён."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Данный принтер может хранить максимум %d результатов для каждого сопла."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Нависание"
+
+# Ранее было "(начальное/конечное значение)", но это слишком длинно и
+# раздувает границы окна настроек, смещая его вправо
+#~ msgid "Start / End"
+#~ msgstr "(начало/конец)"
+
+# Коэффициент затухания
+#~ msgid "Damp"
+#~ msgstr "Коэффициент"
+
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "Обнаруженные в принтере слоты IFS: %d."
+
+#~ msgid "selected"
+#~ msgstr "выбрано"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Следующий профиль наследуется от текущего:"
+#~ msgstr[1] "Следующие профили наследуются от текущего:"
+#~ msgstr[2] "Следующие профили наследуются от текущего:"
+
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "Найдено принтеров: %zu. Выберите нужный и нажмите «Использовать»."
+
+#~ msgid "log(s)"
+#~ msgstr "журналов"
+
+# Отвратительная подстановка левое/правое и тип расхода сопла
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Ошибка: %s сопло не поддерживает требуемый расход (%s), результат текущей группировки недействителен."
+
+#~ msgid "invalid brim ears"
+#~ msgstr " недействительные «мышиные уши»"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Исключаемых объектов: %d"
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Открыть папку в файловом менеджере"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Щёлкните центр, затем вершину — сторон: %d, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "описанный"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "вписанный"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Эскиз создан (управляющих размеров: %zu) — выберите его, затем ПКМ для выдавливания"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "Ок — треугольников: %zu"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Треугольников в этой сетке: %d. Каждый треугольник становится гранью B-rep до объединения компланарных граней, поэтому импорт может занять много времени, а полученное тело будет медленно редактироваться. Обычно лучше сначала упростить сетку.\n"
+#~ "\n"
+#~ "Всё равно импортировать?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Твёрдое тело импортировано — треугольников: %d → граней: %d, объём %.2f мм³. Выберите грань или ребро, затем «Скругление» / «Разрез» / «Оболочка» для изменения"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — перетащите для размещения/изменения размера, затем подтвердите"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "Объектов эскиза: %d"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — введите значение, нажмите Enter (или подтвердите)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Предпросмотр — треугольников: %zu"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "Ограничения, неприменимые к этой геометрии (эллипс, сплайн или окружность нулевого размера), игнорируются: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "Удалено ограничений, ставших недействительными после скругления/фаски: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "Снято ограничений при преобразовании: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...и ещё незамкнутых концов: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "Список материалов поддерживает не более %1% цветов. После разложения «%2%» количество материалов превысит %1%. Перед разложением удалите неиспользуемые материалы на главном экране."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "Печатаемых цветов: %1% (из материалов: %2%)"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "Островов: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Использованы все слои (%1%)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Предпросмотр, треугольников: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Модель: %1% треуг. - запекание уточнит сетку до указанного выше разрешения в пределах бюджета"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Запекание смещает существующие вершины - в модели остаётся %1% треуг."
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Результат запекания: до ~%1% тыс. треугольников"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "пропущено ненарисованных слоёв: %1%"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Проект поддерживает не более %d материалов. Лишние материалы будут отброшены."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Выбрано вершин: %d | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Выбрано рёбер: %d | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "Выбрано островов: %d | перетаскивание = переместить вместе, Shift/Ctrl+щелчок = добавить/убрать, R/S = повернуть/масштабировать основной"
+
+# AI Translated
+# Needs human review: The English names a 'Tiling' control, but the layer settings label it 'Tile size' (Размер плитки); check the reference.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Размер плитки активного слоя: какую часть модели покрывает один повтор текстуры. Холст измеряется в плитках, поэтому одна клетка сетки — это один повтор. Измените его параметром «Размер плитки» в настройках слоя."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "Островов: %d, граней: %s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Плагин «%s» запрашивает чтение следующих файлов:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Плагин «%s» запрашивает чтение и запись следующих файлов:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Плагин «%s» запрашивает создание следующих файлов:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Плагин «%s» запрашивает удаление следующих файлов:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Плагин «%s» запрашивает выполнение следующих команд:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Не удалось установить плагин"
+
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Не удалось установить среду выполнения WebView2.\n"
+#~ "Некоторые страницы (такие как мастер настройки) будут недоступны до момента установки.\n"
+#~ "Необходимо выполнить установку в ручном режиме с https://developer.microsoft.com/microsoft-edge/webview2 и перезапустить OrcaSlicer."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Подробнее"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "ПО не поддерживает печать разными диаметрами сопел в рамках одной печати. Выберите экструдер для синхронизации диаметров сопел:"
+
+#~ msgid "Switch diameter"
+#~ msgstr "Переключение диаметра"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "Проект BambuStudio"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "Этот файл 3MF был создан в BambuStudio (версии %s), которая новее совместимой с ней версией OrcaSlicer %s. Обнаружены следующие нераспознанные настройки:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "Этот файл 3MF был создан в BambuStudio (версии %s), которая новее совместимой с ней версией OrcaSlicer %s. Некоторые настройки могут не поддерживаться."
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "Этот файл 3MF был создан в BambuStudio. Некоторые настройки могут отличаться от OrcaSlicer."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Невозможно отменить или повторить действие во время выполнения операции. Сначала остановите её."
+
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# Тут сразу несколько изменений. 1 - на Вики речь идёт в целом даже про отдельные куски одного меша, а не только про части в составе сборки. 2 - логически переупорядочил предложения. 3 - touch and overlap заменено на "прямой контакт". 4 - не вижу смысла приводить примеры, не давая полного списка шаблонов. Какой-то логики по структуре шаблонов тут нет, т.к. ограничение исходит из алгоритма центровки, так что это только будет путать.
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Разделить шаблоны заполнения у независимых частей модели/сборки. Это позволяет получать симметричное расположение шаблона в случаях, когда отдельные части вызывают его смещение относительно центра модели.\n"
+#~ "Примечание: не влияет на части с прямым контактом между собой и не затрагивает шаблоны с жёсткой привязкой к координатам стола."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Номер текущего слоя, начиная с единицы (т.е. первый слой имеет номер 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Видеоурок"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Фигура"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Создана пустая сетка"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Параллелепипед"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Быстрый выбор:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Ширина (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Глубина (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Высота (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "Нижний R"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "Верхний R"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "Большой R"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "Малый R"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Все рёбра"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Верхние рёбра"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Нижние рёбра"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Боковые рёбра"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Разрешение сетки"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Добавить фигуру"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Нет внешнего профиля"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Не удалось создать внешнюю грань"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Не удалось построить грань с отверстиями"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Ошибка вращения"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Профиль"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Начать новый профиль (для отверстий)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Сегменты"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Стороны"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Щёлкайте в рабочем пространстве, чтобы рисовать"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Привязка к сетке"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Шаг сетки"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Внешний"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "замкнутый"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2% (точек: %3%) %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (сверху)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (спереди)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (сбоку)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Угол вращения, °"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "0 — выдавливание, >0 — вращение"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Карман (вырез)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu замкнутый профиль"
+#~ msgstr[1] "%zu замкнутых профиля"
+#~ msgstr[2] "%zu замкнутых профилей"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Нарисуйте замкнутый профиль, чтобы включить"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Пустой результат"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Выдавливание: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Вращение: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Модель не выбрана"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Ошибка построения грани"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Ошибка построения грани с отверстиями"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Сетка инструмента пуста"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Карман добавлен (вырез)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Карман: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Требуется, чтобы активный слой использовал наложение «Развёртка (LSCM)»."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Шахматный узор - тестовая клетка вместо текстуры. Где клетки остаются квадратными, текстура не искажена; где они растягиваются, растянется и она"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Искажение - тепловая карта растяжения развёртки, от синего к красному"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Способ смешивания"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "На поверхности"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Слои: два материала чередуются между слоями печати; это даёт плавный переход на вертикальных поверхностях, но пропадает на обращённых вверх или вниз, где весь слой - одна полоса.\n"
+#~ "На поверхности: мелкая шахматная клетка по поверхности; работает под любым углом, но может восприниматься как текстура, а не как смешение.\n"
+#~ "Автоматически: слои на вертикальных гранях; горизонтальные грани получают ближайший один материал, поскольку шахматная клетка на них выглядит как узор."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Остров - перемещение, поворот и масштабирование целых островов"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Вершина - перетаскивание вершин для изменения формы; Shift/Ctrl - множественный выбор"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Ребро - перетаскивание рёбер для изменения формы; Shift/Ctrl - множественный выбор"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Вписать все острова (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Экспериментально) Использовать агентов принтера вместо хостов печати"
@@ -31537,16 +37736,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Щёлкните грань или опорную плоскость, затем выберите инструмент рисования"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -31603,10 +37792,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Расстояние по вертикали"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Линейный"
-
#~ msgid "Face recognition"
#~ msgstr "Распознавание граней"
@@ -33024,9 +39209,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Не удалось вычислить ширину линии %1%. Не удаётся получить значение «%2%». "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Для Flow::with_spacing() был указан недопустимый интервал. Проверьте высоту слоя и ширину линии."
-
#~ msgid "Renders cast shadows on the plate in realistic view."
#~ msgstr "Отрисовывать тени в режиме продвинутой графики."
@@ -33212,9 +39394,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "Выбрать часть"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction mode.\n"
#~ "\n"
diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po
index a31a633246..50819ceaa4 100644
--- a/localization/i18n/sv/OrcaSlicer_sv.po
+++ b/localization/i18n/sv/OrcaSlicer_sv.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -412,8 +412,10 @@ msgid "Please wait"
msgstr "Vänligen vänta"
# AI Translated
-msgid "Reading"
-msgstr "Läser"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Induktion Hotend Ställning: Läser %d/%d"
msgid "Running..."
msgstr "Kör..."
@@ -571,9 +573,12 @@ msgstr "Gizmo-Placera på yta"
msgid "Lay on Face"
msgstr "Lägg på yta"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Filamentåtgången överstiger det maximala antalet som målningsverktyget stöder, bara det första %1% filamentet kommeratt vara tillgängligt i färgläggnings verktyget."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Antalet filament överskrider det maximala antal som målningsverktyget stöder. Endast det första %1% filamentet blir tillgängligt i målningsverktyget."
+msgstr[1] "Antalet filament överskrider det maximala antal som målningsverktyget stöder. Endast de första %1% filamenten blir tillgängliga i målningsverktyget."
msgid "Color Painting"
msgstr "Färgläggning"
@@ -626,8 +631,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Snabbkommando "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Snabbkommando %d"
msgid "Triangle"
msgstr "Triangel"
@@ -737,6 +744,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Val av del"
+msgid "Select multiple objects"
+msgstr "Välj flera objekt"
+
# AI Translated
msgid "Fixed step drag"
msgstr "Dra i fasta steg"
@@ -806,10 +816,80 @@ msgstr "Del"
msgid "Relative"
msgstr "Relativ"
+# AI Translated
+msgid "Selection"
+msgstr "Markering"
+
+msgid "Plate"
+msgstr "Platta"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "Koordinatsystem som används för transformeringar."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Justera vänsterkant"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Justera mitten i sidled"
+
+# AI Translated
+msgid "Align right"
+msgstr "Justera högerkant"
+
+# AI Translated
+msgid "Align front"
+msgstr "Justera framkant"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Justera mitten i djupled"
+
+# AI Translated
+msgid "Align back"
+msgstr "Justera bakkant"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Justera nederkant"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Justera mitten i höjdled"
+
+# AI Translated
+msgid "Align top"
+msgstr "Justera överkant"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Fördela i sidled"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Fördela i djupled"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Fördela i höjdled"
+
+msgid "Drop"
+msgstr "Släpp"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "Absolut"
@@ -920,10 +1000,6 @@ msgstr "Spårvinkel"
msgid "Cut position"
msgstr "Snittposition"
-# AI Translated
-msgid "Build Volume"
-msgstr "Byggvolym"
-
msgid "Multiple"
msgstr "Flertalet"
@@ -1114,10 +1190,18 @@ msgstr "Kontakt"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"Objektet (%1%) har dubblerade kopplingar. Vissa kopplingar kan saknas i beredningsresultatet.\n"
+"Rapportera gärna till OrcaSlicer-teamet i vilket scenario detta problem uppstod.\n"
+"Tack."
+msgstr[1] ""
"Objekten (%1%) har dubblerade kopplingar. Vissa kopplingar kan saknas i beredningsresultatet.\n"
"Rapportera gärna till OrcaSlicer-teamet i vilket scenario detta problem uppstod.\n"
"Tack."
@@ -1189,9 +1273,12 @@ msgstr "Låg"
msgid "Extra low"
msgstr "Extra låg"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d trianglar"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% triangel"
+msgstr[1] "%1% trianglar"
msgid "Show wireframe"
msgstr "Visa trådram"
@@ -1202,6 +1289,18 @@ msgstr "Kan inte tillämpas när processen förhandsgranskas."
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Åtgärden avbryts redan. Vänligen vänta."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "Förenklingen av modellen har avbrutits"
+
+# AI Translated
+msgid "Wiki Guide"
+msgstr "Wiki-guide"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Videoguide"
+
msgid "Enforce seam"
msgstr "Tvinga söm"
@@ -1260,6 +1359,14 @@ msgstr "Placera på ytan"
msgid "Emboss"
msgstr "Prägling"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Inget aktivt typsnitt i stilen. Välj ett korrekt typsnitt."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont har inte lästs in korrekt."
+
# AI Translated
msgid "NORMAL"
msgstr "NORMAL"
@@ -2070,12 +2177,24 @@ msgid "Length"
msgstr "Längd"
# AI Translated
-msgid "Selection"
-msgstr "Markering"
+msgid "Face 1 (Fixed)"
+msgstr "Yta 1 (Fast)"
# AI Translated
-msgid " (Moving)"
-msgstr " (Flyttas)"
+msgid "Face 2 (Moving)"
+msgstr "Yta 2 (Flyttas)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Punkt 1 (Fast)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Punkt 2 (Flyttas)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Markering 1"
# AI Translated
msgid ""
@@ -2094,16 +2213,8 @@ msgstr ""
" ange avståndet mellan dem."
# AI Translated
-msgid "Face"
-msgstr "Yta"
-
-# AI Translated
-msgid " (Fixed)"
-msgstr " (Fast)"
-
-# AI Translated
-msgid "Point"
-msgstr "Punkt"
+msgid "Selection 2"
+msgstr "Markering 2"
# AI Translated
msgid ""
@@ -2224,6 +2335,18 @@ msgstr "Öppnar monterings-gizmot"
msgid "Leaving Assembly gizmo"
msgstr "Lämnar monterings-gizmot"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2424,14 +2547,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Microsoft WebView2 Runtime kunde inte installeras.\n"
"Vissa funktioner, bland annat installationsguiden, kan visas tomma tills den är installerad.\n"
-"Installera den manuellt från https://developer.microsoft.com/microsoft-edge/webview2/ och starta om Orca Slicer."
+"Installera den manuellt från %1% och starta om Orca Slicer."
# AI Translated
#, c-format, boost-format
@@ -2686,6 +2810,67 @@ msgstr "Begränsning för nätverkets insticksmodul"
msgid "Privacy Policy Update"
msgstr "Uppdatering av integritetspolicy"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Alla dina filamentförinställningar finns tillgängliga på de skrivare de gjordes för."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Migrera filamentförinställningar"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 har strukturerat om många systemfilamentförinställningar för att rätta felaktiga profiler och förbereda för framtida funktioner. Därför visas förinställningarna nedan inte längre på vissa skrivare som de gjordes för. Vi ber om ursäkt för besväret; det här är en engångsåtgärd.\n"
+"\n"
+"Lägga till de skrivarna i dina förinställningar igen nu? Dina förinställningar säkerhetskopieras först. Du kan också göra detta senare via Hjälp > Migrera filamentförinställningar."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (baserad på %2%)"
+
+# AI Translated
+msgid "Don't remind me again"
+msgstr "Påminn mig inte igen"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Dina förinställningar kunde inte säkerhetskopieras, så de migrerades inte."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Mappen för användarförinställningar kunde inte låsas, så ingenting migrerades. En annan instans av OrcaSlicer kanske sparar förinställningar; försök igen senare via Hjälp > Migrera filamentförinställningar."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Dina filamentförinställningar kunde inte migreras. En säkerhetskopia av dina förinställningar sparades i:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Dina filamentförinställningar migrerades. Välj dem igen i filamentlistan där du använde dem.\n"
+"\n"
+"En säkerhetskopia av dina förinställningar sparades i:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Dessa förinställningar kunde inte migreras:"
+
# AI Translated
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
@@ -2817,6 +3002,10 @@ msgstr "Insticksmodulerna har uppdaterats."
msgid "Failed to refresh plugins: %s"
msgstr "Det gick inte att uppdatera insticksmodulerna: %s"
+# AI Translated
+msgid "Unknown error"
+msgstr "Okänt fel"
+
# AI Translated
msgid "Select plugin package"
msgstr "Välj paket med insticksmodul"
@@ -3384,6 +3573,22 @@ msgstr "Läs in allt igen"
msgid "Reload all from disk"
msgstr "Läs in allt från disk igen"
+# AI Translated
+msgid "Fix All"
+msgstr "Fixa alla"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Fixa alla modeller på den aktuella plattan"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Fixa alla plattor"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Fixa alla modeller på alla plattor"
+
msgid "Auto Rotate"
msgstr "Auto Rotera"
@@ -3446,8 +3651,13 @@ msgstr "(Färg förlorad)"
msgid "Center"
msgstr "Centrera"
-msgid "Drop"
-msgstr "Släpp"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Justera/Fördela"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Justera och fördela objekt"
msgid "Edit Process Settings"
msgstr "Redigera Process Inställningar"
@@ -3751,6 +3961,13 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] "Reparationen av följande modellobjekt misslyckades@Reparation av de följande modellobjekten misslyckades"
msgstr[1] "Reparationen av följande modellobjekt misslyckades@Reparation av de följande modellobjekten misslyckades"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d modellobjekt behövde ingen reparation."
+msgstr[1] "%1$d modellobjekt behövde ingen reparation."
+
msgid "Repairing was canceled"
msgstr "Reparation avbruten"
@@ -3792,8 +4009,9 @@ msgstr "Kopiering av flertalet celler stöds ej"
msgid "Outside"
msgstr "Utsida"
+# AI Translated
msgid "Layer height"
-msgstr "Lager höjd"
+msgstr "Lagerhöjd"
msgid "Wall loops"
msgstr "Antal väggar"
@@ -3827,9 +4045,6 @@ msgstr "Ingen Brim"
msgid "Outer wall speed"
msgstr "Ytterväggs hastighet"
-msgid "Plate"
-msgstr "Platta"
-
# AI Translated
msgid "Brim"
msgstr "Brim"
@@ -3922,10 +4137,6 @@ msgstr "Lägg till anpassad mall"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Infoga mall för anpassad G-code i början av detta lager."
-# AI Translated
-msgid "Filament "
-msgstr "Filament "
-
msgid "Change filament at the beginning of this layer."
msgstr "Byt filament i början av detta lager."
@@ -4022,6 +4233,7 @@ msgid "Off"
msgstr "Av"
# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "Filter"
@@ -4153,12 +4365,19 @@ msgid "Check filament location"
msgstr "Kontrollera filamentets placering"
# AI Translated
-msgid "Switch"
-msgstr "Växla"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Pausa"
# AI Translated
-msgid "hotend"
-msgstr "hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Byt extruder"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Byt hotend"
# AI Translated
msgid "Wait for AMS cooling"
@@ -4343,8 +4562,10 @@ msgid "Arranging"
msgstr "Placerar"
# AI Translated
-msgid "Arranging "
-msgstr "Placerar "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Placerar %1%"
msgid "Arranging canceled."
msgstr "Placering avbruten."
@@ -4383,8 +4604,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Placerar..."
-msgid "Orienting"
-msgstr "Placerar"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Orienterar %1%"
# AI Translated
msgid "Orienting canceled."
@@ -4393,6 +4617,12 @@ msgstr "Orientering avbruten."
msgid "Filling"
msgstr "Fyllnad"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Fyller %1%"
+
msgid "Bed filling canceled."
msgstr "Byggplattans fyllning avbruten."
@@ -4411,6 +4641,34 @@ msgstr "Orienteringssökningen avbruten."
msgid "Orientation found."
msgstr "Orientering hittad."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Bästa ytkvalitet"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Optimera objektets rotation för bästa ytkvalitet."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Reducerade överhängslutningar"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Optimera objektets rotation så att så lite överhäng som möjligt behöver support.\n"
+"Observera att den här metoden försöker hitta objektets bästa yta att lägga mot byggplattan om ingen höjning är inställd."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Lägsta Z-höjd"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Rotera modellen för lägsta Z-höjd och kortare utskriftstid."
+
msgid "Logging in"
msgstr "Loggar in"
@@ -4731,6 +4989,17 @@ msgstr "Senaste projekt"
msgid "Go to Plate"
msgstr "Gå till platta"
+msgid "Device"
+msgstr "Enhet"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Enhet (Webb)"
+
+# AI Translated
+msgid "Multi-device"
+msgstr "Flera enheter"
+
msgid "AMS Materials Setting"
msgstr "AMS Material Inställning"
@@ -4759,10 +5028,6 @@ msgstr "Inmatningsvärdet ska vara större än %1% och mindre än %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Faktorer för kalibrering av flödesdynamik"
-# AI Translated
-msgid "Wiki Guide"
-msgstr "Wiki-guide"
-
msgid "PA Profile"
msgstr "PA profil"
@@ -4794,6 +5059,14 @@ msgstr "Ange ett giltigt värde (K mellan %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Ange ett giltigt värde (K mellan %.1f~%.1f, N mellan %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Favoritfilament"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Alla filament"
+
# AI Translated
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
@@ -5141,11 +5414,11 @@ msgstr "Nätverkets insticksmodul installerades men kunde inte läsas in. Starta
msgid "Restart Required"
msgstr "Omstart krävs"
-msgid "Please home all axes (click "
-msgstr "Nollställ alla axlar (tryck "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") för att lokalisera verktygshuvudets position. Detta förhindrar att enheten rör sig utanför den utskrivbara gränsen och orsakar slitage på utrustningen."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Nollställ alla axlar (tryck på %1%) för att lokalisera verktygshuvudets position. Detta förhindrar att enheten rör sig utanför det utskrivbara området och orsakar slitage på utrustningen."
msgid "Go Home"
msgstr "Gå hem"
@@ -5161,6 +5434,10 @@ msgstr "Ett allvarligt fel uppstod: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Spara projekt och starta om programmet."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Okänt C++-undantag."
+
msgid "Processing G-Code from previous file…"
msgstr "Processera G-Code från Föregående fil…"
@@ -5396,6 +5673,14 @@ msgstr "Justera automatiskt till gränsvärdet (%g mm)?"
msgid "Adjust"
msgstr "Justera"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Raft och dragskydd är inte tillgängliga på bandskrivare.\n"
+"De har inaktiverats."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -6167,8 +6452,9 @@ msgstr "Noop"
msgid "Retract"
msgstr "Reversera"
+# AI Translated
msgid "Unretract"
-msgstr "Reversera Ej"
+msgstr "Deretraktion"
msgid "Seam"
msgstr "Söm"
@@ -6342,10 +6628,6 @@ msgstr "Bered automatiskt om enligt den optimala filamentgrupperingen. Grupperin
msgid "Filament Grouping"
msgstr "Filamentgruppering"
-# AI Translated
-msgid "Why this grouping"
-msgstr "Varför denna gruppering"
-
# AI Translated
msgid "Please place filaments on the printer based on grouping result."
msgstr "Placera filamenten i skrivaren enligt grupperingsresultatet."
@@ -6360,33 +6642,45 @@ msgstr "Den aktuella grupperingen i beredningsresultatet är inte optimal."
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Ökar med %1% g filament och %2% byten jämfört med optimal gruppering."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Ökar med %1% g filament och %2% byte jämfört med optimal gruppering."
+msgstr[1] "Ökar med %1% g filament och %2% byten jämfört med optimal gruppering."
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Ökar med %1% g filament men sparar %2% byten jämfört med optimal gruppering."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Ökar med %1% g filament men sparar %2% byte jämfört med optimal gruppering."
+msgstr[1] "Ökar med %1% g filament men sparar %2% byten jämfört med optimal gruppering."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Sparar %1% g filament men ökar med %2% byten jämfört med optimal gruppering."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Sparar %1% g filament men ökar med %2% byte jämfört med optimal gruppering."
+msgstr[1] "Sparar %1% g filament men ökar med %2% byten jämfört med optimal gruppering."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Sparar %1% g filament och %2% byten jämfört med en skrivare med en nozzel."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Sparar %1% g filament och %2% byte jämfört med en skrivare med en nozzel."
+msgstr[1] "Sparar %1% g filament och %2% byten jämfört med en skrivare med en nozzel."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Sparar %1% g filament men ökar med %2% byten jämfört med en skrivare med en nozzel."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Sparar %1% g filament men ökar med %2% byte jämfört med en skrivare med en nozzel."
+msgstr[1] "Sparar %1% g filament men ökar med %2% byten jämfört med en skrivare med en nozzel."
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Ökar med %1% g filament men sparar %2% byten jämfört med en skrivare med en nozzel."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Ökar med %1% g filament men sparar %2% byte jämfört med en skrivare med en nozzel."
+msgstr[1] "Ökar med %1% g filament men sparar %2% byten jämfört med en skrivare med en nozzel."
# AI Translated
msgid "Set to Optimal"
@@ -6554,13 +6848,61 @@ msgstr "Öka/minska redigeringsområdet"
msgid "Sequence"
msgstr "Sekvens"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Plattans masscentrum"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Delens masscentrum"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Supportens masscentrum"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Monteringens masscentrum"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Objektets masscentrum"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Färdig utskrift"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Utskrivet till och med lager %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Vikt"
+
+msgid "Volume"
+msgstr "Volym"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Centrum i begränsningsrutan"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Begränsningsrutans storlek"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Tröghetsmoment"
+
# AI Translated
msgid "Object selection"
msgstr "Objektval"
# AI Translated
-msgid "number keys"
-msgstr "sifferknappar"
+msgid "1~16 number keys"
+msgstr "1~16 sifferknappar"
# AI Translated
msgid "Number keys can quickly change the color of objects"
@@ -6784,9 +7126,20 @@ msgstr "Axlar"
msgid "Gridlines"
msgstr "Rutnät"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Etiketter"
+# AI Translated
+msgid "Center of mass"
+msgstr "Masscentrum"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Visa rå G-code (endast bandskrivare)"
+
# AI Translated
msgid "Move section plane"
msgstr "Flytta sektionsplanet"
@@ -6837,7 +7190,7 @@ msgid "Size:"
msgstr "Storlek:"
# AI Translated
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Konflikter mellan G-code-banor hittades på lager %d, Z = %.2lfmm. Placera de objekt som krockar längre ifrån varandra (%s <-> %s)."
@@ -6863,22 +7216,16 @@ msgstr "Verktyg %d"
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Filamentet %s är placerat i %s, men den genererade G-code-banan överskrider det utskrivbara området för %s."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Filamenten %s är placerade i %s, men den genererade G-code-banan överskrider det utskrivbara området för %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "Filamentet %s är placerat i %s, men den genererade G-code-banan överskrider det utskrivbara området för %s."
+msgstr[1] "Filamenten %s är placerade i %s, men den genererade G-code-banan överskrider det utskrivbara området för %s."
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Filamentet %s är placerat i %s, men den genererade G-code-banan överskrider den utskrivbara höjden för %s."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Filamenten %s är placerade i %s, men den genererade G-code-banan överskrider den utskrivbara höjden för %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "Filamentet %s är placerat i %s, men den genererade G-code-banan överskrider den utskrivbara höjden för %s."
+msgstr[1] "Filamenten %s är placerade i %s, men den genererade G-code-banan överskrider den utskrivbara höjden för %s."
# AI Translated
msgid "Open wiki for more information."
@@ -6889,8 +7236,10 @@ msgstr "Bara objektet som editeras är synligt."
# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Filamenten %s kan inte skrivas ut direkt på den här plattans yta."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "Filamentet %s kan inte skrivas ut direkt på den här plattans yta."
+msgstr[1] "Filamenten %s kan inte skrivas ut direkt på den här plattans yta."
# AI Translated
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
@@ -7024,28 +7373,20 @@ msgstr "Förbered"
msgid "Preview"
msgstr "Förhandsvisning"
-msgid "Device"
-msgstr "Enhet"
-
-# AI Translated
-msgid "Multi-device"
-msgstr "Flera enheter"
-
msgid "Project"
msgstr "Projekt"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Enhet (Webb)"
-
msgid "Yes"
msgstr "Ja"
msgid "No"
msgstr "Nej"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "avslutas innan en ny modell skapas. Vill du fortsätta?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s stängs innan en ny modell skapas. Vill du fortsätta?"
msgid "Print all"
msgstr "Skriv ut allt"
@@ -7092,6 +7433,10 @@ msgstr "Installationsguide"
msgid "Show Configuration Folder"
msgstr "Visa Konfigurations Mapp"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Hämta tillbaka filamentförinställningar som en profiluppdatering tog bort från de skrivare de gjordes för"
+
# AI Translated
msgid "Troubleshoot Center"
msgstr "Felsökningscenter"
@@ -7349,6 +7694,14 @@ msgstr "Visa rutnätslinjer"
msgid "Show Gridlines on plate"
msgstr "Visa rutnätslinjer på plattan"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Visa IDEX/IQEX-verktygshuvud"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Visa en representation av IDEX/IQEX-verktygshuvudet runt varje aktiv nozzel i G-code-förhandsvisningen."
+
# AI Translated
msgid "Reset Window Layout"
msgstr "Återställ fönsterlayout"
@@ -7431,8 +7784,9 @@ msgstr "Flödesförhållande"
msgid "Flow Rate Calibration"
msgstr "Kalibrering av flödeshastighet"
+# AI Translated
msgid "Retraction"
-msgstr "Reduktion"
+msgstr "Retraktion"
# AI Translated
msgid "Cornering"
@@ -8040,6 +8394,8 @@ msgstr "Betygsätt"
msgid "Calculating..."
msgstr "Beräknar..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Kamera"
@@ -8132,9 +8488,12 @@ msgstr "Laddar ner..."
msgid "Cloud Slicing..."
msgstr "Moln beredning..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "I Moln Berednings Kön finns det %s uppgifter framför dig."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "I Moln Berednings Kön finns det %d uppgift framför dig."
+msgstr[1] "I Moln Berednings Kön finns det %d uppgifter framför dig."
#, c-format, boost-format
msgid "Layer: %s"
@@ -8167,6 +8526,11 @@ msgstr "Detta gäller endast under utskrift."
msgid "Silent"
msgstr "Tyst"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Standard"
+
# AI Translated
msgid "Sport"
msgstr "Sport"
@@ -8229,18 +8593,29 @@ msgstr "Ladda upp bilder"
msgid "Number of images successfully uploaded"
msgstr "Antal bilder som laddats upp framgångsrikt"
-msgid " upload failed"
-msgstr " uppladdning misslyckades"
-
-msgid " upload config prase failed\n"
-msgstr " uppladdning av konfiguration misslyckades\n"
-
-msgid " No corresponding storage bucket\n"
-msgstr " Ingen motsvarande lagrings plats\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Uppladdningen av %s misslyckades"
# AI Translated
-msgid " cannot be opened\n"
-msgstr " kan inte öppnas\n"
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Tolkningen av uppladdningskonfigurationen för %s misslyckades"
+
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: Ingen motsvarande lagringsplats"
+
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s kan inte öppnas"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -8259,27 +8634,21 @@ msgid "Obtaining instance_id failed\n"
msgstr "det gick inte att få instance_id\n"
# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Din kommentar kunde inte laddas upp av följande skäl:\n"
-"\n"
-" felkod: "
-
-msgid "error message: "
-msgstr "felmeddelande: "
-
-# AI Translated
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Ditt omdöme kan inte laddas upp av följande skäl:\n"
"\n"
+" felkod: %d\n"
+" felmeddelande: %s\n"
"\n"
-"Vill du gå vidare till webbsidan för att ge ett betyg?"
+"Vill du gå till webbsidan för att lämna ett betyg?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Några av dina bilder kunde inte laddas upp. Vill du bli omdirigerad till webbsidan för betygsättning?"
@@ -8511,7 +8880,7 @@ msgstr "Kalibrering av flödesförhållande"
# AI Translated
msgid "Retraction Calibration"
-msgstr "Kalibrering av reduktion"
+msgstr "Kalibrering av retraktion"
# AI Translated
msgid "Cornering Calibration"
@@ -9167,6 +9536,108 @@ msgstr "Se alla objektens inställningar"
msgid "Material settings"
msgstr "Materialinställningar"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Varje läge anger vilka verktygshuvuden som deltar och vilken roll vart och ett har. Klicka på en verktygsknapp för att växla dess roll — håll muspekaren över en färg nedan för att se vad varje roll gör."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Lägg till läge"
+
+# AI Translated
+msgid "Tools"
+msgstr "Verktyg"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Hur läget benämns i plattans IDEX/IQEX-lägesväljare. Obligatoriskt — ett läge utan namn kan inte väljas."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Vilka verktygshuvuden som deltar i läget och vilken roll vart och ett har. Klicka på en ruta för att växla dess roll."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code som körs vid utskriftsstart för att försätta skrivaren i det här läget (till exempel ett Klipper-anrop till SET_PRINT_MODE). Beredningsprogrammet genererar bara banorna för det primära verktyget (Primary); den fasta programvaran styr de övriga."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Inaktiv"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Primär"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Kopia"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Spegel"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Styr alla banor som bereds. Alltid verktyg 0 — använd \"Position för verktyg 0\" ovan för att välja vilket hörn av byggplattan det har. Det kan inte flyttas från rutnätet."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Följer det primära verktyget (Primary) via den fasta programvaran och skriver ut samma banor förskjutna in i sin egen zon."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Följer det primära verktyget (Primary) via den fasta programvaran och skriver ut samma banor speglade över gränsen mellan de två zonerna."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Markerar ett verktyg på det primära verktygets (Primary) portal som dess flerfärgspartner. Krävs för flerfärgsutskrift i lägen med parade portaler."
+
+# AI Translated
+msgid "Primary"
+msgstr "Primär"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Lägesnamn (obligatoriskt)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Namnet på det här parallella läget, som det visas i plattans IDEX/IQEX-lägesväljare. Sparas i projektet med namn, så om du byter namn på ett läge som plattor redan använder återgår de till Primär. Får inte vara tomt — ett tomt namn ersätts med ett genererat."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code som skrivs en gång i början av en utskrift som använder det här läget, före maskinens start-G-code. Här försätts skrivaren i motsvarande läge i den fasta programvaran — till exempel med ett Klipper-anrop till SET_PRINT_MODE eller ett RepRapFirmware M567 — eftersom beredningsprogrammet bara genererar banorna för det primära verktyget (Primary) och den fasta programvaran styr verktygen Kopia/Spegel (Copy/Mirror). Platshållare stöds; använd redigeringsknappen för att bläddra bland dem. Lämna tomt om läget inte kräver någon inställning i den fasta programvaran."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Redigera G-code / bläddra bland platshållare"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Ta bort läge"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Förkasta ändringarna av det här läget under sessionen (återställ till sparat värde)"
+
# AI Translated
msgid "Remove current plate (if not last one)"
msgstr "Ta bort aktuell platta (om den inte är den sista)"
@@ -9199,14 +9670,34 @@ msgstr "Redigera den aktuella plattans namn"
msgid "Move plate to the front"
msgstr "Flytta plattan längst fram"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX-läge: %1% (processförinställning: %2%) (vänsterklicka för att växla, högerklicka för meny)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX-läge: %1% (vänsterklicka för att växla, högerklicka för meny)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Varning: den här plattan använder ett parallellt IDEX/IQEX-läge med objekt i flera material. Fortsätt med försiktighet — kontrollera att din G-code hanterar den här kombinationen korrekt."
+
# AI Translated
msgid "Customize current plate"
msgstr "Anpassa aktuell platta"
# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "Nozzeln %s kan inte skriva ut %s."
+msgid "The left nozzle cannot print %s."
+msgstr "Den vänstra nozzeln kan inte skriva ut %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "Den högra nozzeln kan inte skriva ut %s."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -9218,13 +9709,17 @@ msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Det rekommenderas inte att blanda %1% med %2% vid utskrift.\n"
# AI Translated
-msgid " nozzle"
-msgstr " nozzel"
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
+#, boost-format
+msgid "%1%mm %2% nozzle"
+msgstr "%1% mm nozzel (%2%)"
# AI Translated
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Det rekommenderas inte att skriva ut följande filament med %1%: %2%\n"
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Det rekommenderas inte att skriva ut följande filament med %1%: %2%\n"
+msgstr[1] "Det rekommenderas inte att skriva ut följande filament med %1%: %2%\n"
# AI Translated
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
@@ -9235,9 +9730,11 @@ msgstr "Följande kombinationer av nozzel och filament rekommenderas inte:\n"
msgid "%1% with %2%\n"
msgstr "%1% med %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " platta %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Bereder plattan %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Ogiltligt namn, följande tecken är inte tillåtna:"
@@ -9276,14 +9773,6 @@ msgstr "AMS (1 plats)"
msgid "Not installed"
msgstr "Inte installerad"
-# AI Translated
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "Programmet stöder inte att olika nozzeldiametrar används i samma utskrift. Om vänster och höger nozzel skiljer sig åt kan vi bara fortsätta med utskrift med ett huvud. Bekräfta vilken nozzel du vill använda för det här projektet."
-
-# AI Translated
-msgid "Switch diameter"
-msgstr "Byt diameter"
-
msgid "Configuration incompatible"
msgstr "Ej kompatibel konfiguration"
@@ -9372,6 +9861,10 @@ msgstr "Blandat filament"
msgid "Remove last mixed filament"
msgstr "Ta bort det senaste blandade filamentet"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Ta bort alla blandade filament"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Lägg till blandat filament"
@@ -9395,6 +9888,13 @@ msgstr "Det blandade filamentet har trasiga komponentreferenser"
msgid "Edit / Delete / Merge"
msgstr "Redigera / Radera / Slå ihop"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Ta bort %1% blandat filament?"
+msgstr[1] "Ta bort alla %1% blandade filament?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Det blandade målfilamentet använder detta fysiska filament som komponent. Sammanslagningen tar bort det fysiska filamentet och kan göra det blandade filamentet ogiltigt. Fortsätt?"
@@ -9478,10 +9978,6 @@ msgstr "Laddar fil: %s"
msgid "Load 3MF"
msgstr "Ladda 3MF"
-# AI Translated
-msgid "BambuStudio Project"
-msgstr "BambuStudio-projekt"
-
# AI Translated
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "3MF stöds inte av OrcaSlicer, laddar endast geometri data."
@@ -9517,20 +10013,6 @@ msgstr "Uppdatera mjukvaran.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "3mf:s version %s är nyare än %s version %s, Föreslår att du uppdaterar din programvara."
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "3MF-filen skapades av BambuStudio (version %s), som är nyare än den kompatibla versionen %s. Okända inställningar hittades:"
-
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "3MF-filen skapades av BambuStudio (version %s), som är nyare än den kompatibla versionen %s. Vissa inställningar kanske inte är helt kompatibla."
-
-# AI Translated
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "3MF-filen skapades av BambuStudio. Vissa inställningar kan skilja sig från OrcaSlicer."
-
msgid "Invalid values found in the 3MF:"
msgstr "Ogiltiga värden hittades i 3MF:"
@@ -9708,6 +10190,14 @@ msgstr "Vill du avaktivera automatiskt nedsläpp för att behålla Z-positionen?
msgid "Object with floating parts was detected"
msgstr "Ett objekt med svävande delar upptäcktes"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Kan inte bereda: ett objekt överlappar ett område som är reserverat för IDEX/IQEX-parallellutskrift (en sekundär zon eller en frigångsremsa för en vagn inuti den primära zonen)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Kan inte bereda: prime tornet överlappar ett område som är reserverat för IDEX/IQEX-parallellutskrift (en sekundär zon eller en frigångsremsa för en vagn inuti den primära zonen)."
+
msgid "Another export job is running."
msgstr "En annan exportering pågår."
@@ -9769,8 +10259,9 @@ msgstr "Ersatta volymer"
msgid "Please select a file"
msgstr "Välj en fil"
-msgid "Do you want to replace it"
-msgstr "Vill du byta ut den"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Vill du byta ut den?"
msgid "Message"
msgstr "Meddelande"
@@ -9800,6 +10291,50 @@ msgstr "Ogiltlig data"
msgid "Slicing Canceled"
msgstr "Beredning avbruten"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Konflikt i byggplattans temperatur: T%d (%s) ställer in byggplattan på %d℃ — T%d (%s) kräver %d℃. Det primära verktyget styr byggplattan; sekundära verktyg skriver ut vid den temperatur det ställer in."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Filamenttyperna stämmer inte överens: T%d använder %s och T%d använder %s. Dessa material har oförenliga krav och är inte avsedda att skrivas ut tillsammans."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"Platta %d har parallellt IDEX/IQEX-läge aktivt med följande anmärkningar:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Fortsätta beredningen?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Varning för parallellt IDEX/IQEX-läge"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Visa inte dessa varningar igen"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Platta %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Följande anmärkningar för parallellt IDEX/IQEX-läge upptäcktes:\n"
+"\n"
+
# AI Translated
msgid "Network plug-in switched successfully."
msgstr "Nätverkets insticksmodul byttes utan problem."
@@ -9837,8 +10372,8 @@ msgid "Sync now"
msgstr "Synkronisera nu"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Det går inte att ångra eller göra om medan en åtgärd pågår. Stoppa den först."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Det går inte att ångra eller göra om medan en åtgärd pågår. Stoppa åtgärden, eller vänta tills den är klar och försök sedan igen."
# AI Translated
msgid ""
@@ -9912,6 +10447,14 @@ msgstr "Nedladdningen misslyckades; fel på filstorleken."
msgid "Project downloaded %d%%"
msgstr "Projektet har laddats ned %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"Testerna PA linje och PA mönster är ännu inte aktiverade på bandskrivare.\n"
+"Använd metoden PA torn i stället."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Pressure Advance-test"
@@ -9921,12 +10464,14 @@ msgid "INFO:"
msgstr "INFO:"
# AI Translated
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Inga accelerationer angavs för kalibreringen. Standardvärdet för acceleration används "
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Inga accelerationer angavs för kalibreringen. Standardvärdet för acceleration (%1% mm/s²) används"
# AI Translated
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Inga hastigheter angavs för kalibreringen. Standardvärdet för optimal hastighet används "
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Inga hastigheter angavs för kalibreringen. Standardvärdet för optimal hastighet (%1% mm/s) används"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9941,6 +10486,15 @@ msgstr "Orca YOLO flödeskalibrering"
msgid "Flowrate Test - Pass%d"
msgstr "Flödestest - omgång %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Det finns inget temperaturtorn för bandskrivare för intervallet %1% till %2%℃. Använd ett intervall som tornmodellerna täcker, till exempel 230 till 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Temperaturtorn"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Test av nozzeltemperatur"
@@ -9968,12 +10522,16 @@ msgstr "Hörntagningstest"
msgid "Import SLA archive"
msgstr "Importera SLA-arkiv"
-msgid "The selected file"
-msgstr "Den valda filen"
-
# AI Translated
-msgid "Does not contain valid G-code."
-msgstr "Innehåller ingen giltig G-code."
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Den valda filen:\n"
+"%1%\n"
+"innehåller ingen giltig G-code."
# AI Translated
msgid "An Error has occurred while loading the G-code file."
@@ -10276,6 +10834,27 @@ msgstr "För närvarande kan objektkonfigurationsformuläret inte användas med
msgid "Not available"
msgstr "Inte tillgänglig"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (ingen platta)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — inget filament kopplat\n"
+"Lägg till en extruder på fliken Maskin så att huvudet får en filamentplats."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> filament %2%"
+
# AI Translated
msgid "isometric"
msgstr "isometrisk"
@@ -10322,8 +10901,10 @@ msgstr "Europa"
msgid "North America"
msgstr "Nordamerika"
+# AI Translated
+msgctxt "Region"
msgid "Others"
-msgstr "Andra"
+msgstr "Övriga"
msgid "Changing the region will log you out of your account.\n"
msgstr "Om du ändrar regionen loggas du ut från ditt konto.\n"
@@ -10407,12 +10988,16 @@ msgid "Reload Failed"
msgstr "Inläsningen misslyckades"
# AI Translated
-msgid "Associate"
-msgstr "Koppla"
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Koppla %s://"
# AI Translated
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "med OrcaSlicer så att Orca kan öppna modeller från"
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Koppla %s:// till OrcaSlicer så att Orca kan öppna modeller från %s"
# AI Translated
msgid "Current Association: "
@@ -10614,8 +11199,9 @@ msgstr "Spara fullständiga sökvägar till källfiler i projekt"
msgid "If enabled, saved projects store the absolute path to imported source files (STEP/STL/...), so \"Reload from disk\" still works when the source file is kept in a different folder than the project. If disabled, only the filename is stored, which keeps projects portable and avoids embedding absolute paths."
msgstr "Om detta är aktiverat sparar sparade projekt den absoluta sökvägen till importerade källfiler (STEP/STL/...), så att \"Läs in från disk igen\" fortfarande fungerar när källfilen ligger i en annan mapp än projektet. Om det är avstängt sparas endast filnamnet, vilket gör projekten portabla och undviker inbäddade absoluta sökvägar."
+# AI Translated
msgid "Preset"
-msgstr "Förinställd"
+msgstr "Förinställning"
# AI Translated
msgid "Remember printer configuration"
@@ -10761,6 +11347,9 @@ msgstr "Kom ihåg senaste utskriftsåtgärd"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Om detta är aktiverat kommer OrcaSlicer ihåg det senast valda alternativet i utskriftsknappens rullgardinsmeny (t.ex. Skriv ut, Exportera byggplattans beredda fil, Exportera G-code-fil) och använder det som standard vid nästa start."
+msgid "Camera"
+msgstr "Kamera"
+
# AI Translated
msgid "Touchpad"
msgstr "Styrplatta"
@@ -11241,6 +11830,10 @@ msgstr "Version av nätverkets insticksmodul"
msgid "Select the network plug-in version to use"
msgstr "Välj vilken version av nätverkets insticksmodul som ska användas"
+# AI Translated
+msgid "Associate"
+msgstr "Koppla"
+
msgid "Associate files to OrcaSlicer"
msgstr "Associerade filer till Orca Slicer"
@@ -11296,6 +11889,12 @@ msgstr "Visa förinställningar som inte stöds"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Visa inkompatibla förinställningar och förinställningar som inte stöds i rullgardinslistorna för skrivare och filament. Dessa förinställningar kan inte väljas."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "Experimentella funktioner"
@@ -11597,10 +12196,6 @@ msgstr "Publicera 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Välj vilka inställningar som ska publiceras i 3MF-filen"
-# AI Translated
-msgid "Video Guide"
-msgstr "Videoguide"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Blandat filament - publiceras i sin helhet när \"Aktivera\" ovan är valt"
@@ -11766,6 +12361,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Enkelt"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s från %s"
+
# AI Translated
msgid "Search actions"
msgstr "Sök åtgärder"
@@ -11884,6 +12485,10 @@ msgstr "Visa detaljer"
msgid "Hide details"
msgstr "Dölj detaljer"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Webbvyn är inte tillgänglig."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -12193,8 +12798,10 @@ msgstr "Namnlängden överskrider gränsen."
# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Kostar %d g filament och %d byten mer än optimal gruppering."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Kostar %d g filament och %d byte mer än optimal gruppering."
+msgstr[1] "Kostar %d g filament och %d byten mer än optimal gruppering."
# AI Translated
msgid "Right-Ext"
@@ -12291,6 +12898,10 @@ msgstr "Vissa filament kan växla mellan extrudrar under utskriften. Manuell K-v
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "Det finns filament som lätt ger stringing i den här filen. För bästa utskriftskvalitet rekommenderar vi att du ställer in detektering av klumpbildning på nozzeln på automatiskt läge."
+# AI Translated
+msgid "Switch"
+msgstr "Växla"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Om 'Dynamisk flödeskalibrering' är inställd på Auto/På använder systemet det manuellt kalibrerade värdet eller standardvärdet och hoppar över flödeskalibreringen. Du kan göra en manuell flödeskalibrering för TPU-filament på sidan 'Kalibrering'."
@@ -12640,6 +13251,10 @@ msgstr "Synkronisering mellan olika extruderdrivningar eller typer av Nozzle vol
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Synkronisera ändringen av parametrar till motsvarande parametrar för den andra extrudern."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Parametrar med den här ikonen kan ställas in per nozzel."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Klicka för att återställa alla inställningar till den senast sparade förinställningen."
@@ -12912,6 +13527,9 @@ msgstr "Filament för funktioner"
msgid "Ooze prevention"
msgstr "Droppförebyggande"
+msgid "Others"
+msgstr "Andra"
+
msgid "Special mode"
msgstr "Special läge"
@@ -12955,14 +13573,18 @@ msgstr[1] ""
"Följande linjer %s innehåller reserverade nyckelord.\n"
"Radera dem, annars påverkas G-kodens visualisering och den uppskattade utskriftstiden."
-msgid "Reserved keywords found"
-msgstr "Hittade reserverade nyckelord"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Reserverade nyckelord hittades i %1%"
msgid "Setting Overrides"
msgstr "Åsidosätter inställningar"
+# AI Translated
msgid "Retraction when switching material"
-msgstr "Reduktion vid material byte"
+msgstr "Retraktion vid material byte"
msgid "Basic information"
msgstr "Allmän information"
@@ -13038,27 +13660,31 @@ msgstr "Volumetrisk hastighets begränsning"
msgid "Cooling for specific layer"
msgstr "Kylning för valda lager"
+# AI Translated
msgid "Part cooling fan"
-msgstr "Del kylningsfläkten"
+msgstr "Delkylningsfläkten"
msgid "Min fan speed threshold"
msgstr "Min fläkt hastighets gräns"
# AI Translated
msgid "The part cooling fan will run at the minimum fan speed when the estimated layer time is longer than the threshold value. When the layer time is shorter than the threshold, the fan speed will be interpolated between the minimum and maximum fan speed according to layer printing time."
-msgstr "Del kylfläkten kommer att gå med lägsta fläkthastighet när den beräknade lagertiden är längre än gränsvärdet. När lagertiden är kortare än gränsvärdet interpoleras fläkthastigheten mellan lägsta och högsta fläkthastighet enligt lagrets utskriftstid."
+msgstr "Delkylningsfläkten kommer att gå med lägsta fläkthastighet när den beräknade lagertiden är längre än gränsvärdet. När lagertiden är kortare än gränsvärdet interpoleras fläkthastigheten mellan lägsta och högsta fläkthastighet enligt lagrets utskriftstid."
msgid "Max fan speed threshold"
msgstr "Max fläkt hastighets gräns"
+# AI Translated
msgid "The part cooling fan will run at maximum speed when the estimated layer time is shorter than the threshold value."
-msgstr "Del kylfläktens hastighet kommer att vara max när den beräknade lagringstiden är kortare än inställningsvärdet"
+msgstr "Delkylningsfläktens hastighet kommer att vara max när den beräknade lagringstiden är kortare än inställningsvärdet."
+# AI Translated
msgid "Auxiliary part cooling fan"
-msgstr "Extra del kylnings fläkt"
+msgstr "Extra delkylningsfläkt"
+# AI Translated
msgid "Exhaust fan"
-msgstr "Utsugs fläkt"
+msgstr "Utsugsfläkt"
msgid "During print"
msgstr "Under utskrift"
@@ -13111,8 +13737,17 @@ msgstr "Utskriftsbar yta"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Välj vilken nätverksagentimplementation som ska användas för kommunikation med skrivaren. Tillgängliga agenter registreras vid start."
+# AI Translated
+msgid "Belt printer"
+msgstr "Bandskrivare"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Transformationer till maskinkoordinatsystemet"
+
# AI Translated
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Ogiltigt värde angivet för parametern %1%: %2%"
@@ -13251,10 +13886,30 @@ msgstr "Nozzel diameter"
msgid "Wipe tower"
msgstr "Prime torn"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Bandrensningstorn"
+
# AI Translated
msgid "Single extruder multi-material parameters"
msgstr "Parametrar för multimaterial med en extruder"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "IDEX/IQEX-konfiguration"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Varningar före beredning"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Visa en varningsdialogruta före beredning om anmärkningar för parallellt IDEX/IQEX-läge upptäcks (konflikter i byggplattans temperatur, filamenttyper som inte stämmer överens, konflikter med flera material). Kan stängas av i själva dialogrutan. Aktivera igen här om den stängts av av misstag."
+
+# AI Translated
+msgid "Modes"
+msgstr "Lägen"
+
# AI Translated
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Det här är en multimaterialskrivare med en extruder, alla extrudrars diametrar ställs in på det nya värdet. Vill du fortsätta?"
@@ -13265,6 +13920,22 @@ msgstr "Lagerhöjds begränsning"
msgid "Z-Hop"
msgstr "Z-Hop"
+# AI Translated
+msgid "Front-left"
+msgstr "Främre vänster"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Främre höger"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Bakre vänster"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Bakre höger"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -13289,22 +13960,37 @@ msgstr "Använd ändrat värde"
msgid "Detached"
msgstr "Fristående"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% och %2% är kopplade till den här skrivaren. Dessa förinställningar raderas om skrivaren raderas."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d Filament inställning och %d Process inställning är kopplade till denna printer. Dessa inställningar raderas om printern raderas."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d filamentförinställning"
+msgstr[1] "%d filamentförinställningar"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d processförinställning"
+msgstr[1] "%d processförinställningar"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Inställningar som ärvts av andra inställningar kan inte raderas!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Följande förinställningar ärver denna förinställning."
-msgstr[1] "Följande förinställning ärver denna förinställning."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "Följande förinställning ärver denna förinställning."
+msgstr[1] "Följande förinställningar ärver denna förinställning."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% Förinställning"
+msgid "Delete Preset"
+msgstr "Ta bort inställning"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -13319,9 +14005,8 @@ msgstr ""
"Om inställningen motsvarar ett filament som för närvarande används på din skrivare, vänligen återställ filament informationen för den platsen."
# AI Translated
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Är du säker på att du vill %1% den valda förinställningen?"
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Är du säker på att du vill radera den valda förinställningen?"
# AI Translated
msgid "Select printers"
@@ -13384,9 +14069,34 @@ msgid "Don't warn again for this preset"
msgstr "Varna inte igen för den här förinställningen"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
# AI Translated
msgid "No modifications need to be copied."
@@ -13604,6 +14314,12 @@ msgstr "En av förinställningarna finns inte"
msgid "Compared presets has different printer technology"
msgstr "De jämförda förinställningarna har olika skrivarteknik"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" mot \"%2%\""
+
msgid "Add File"
msgstr "Lägg till fil"
@@ -13629,6 +14345,22 @@ msgstr "Materialförteckning"
msgid "Assembly Guide"
msgstr "Monterings Guide"
+# AI Translated
+msgid "Image files"
+msgstr "Bildfiler"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXT-filer"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCEL-filer"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDF-filer"
+
msgid "Author"
msgstr "Författare"
@@ -13866,9 +14598,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Total ramming"
-msgid "Volume"
-msgstr "Volym"
-
# AI Translated
msgid "Ramming line"
msgstr "Ramming-linje"
@@ -13898,8 +14627,9 @@ msgid "Flushing volumes for filament change"
msgstr "Rensnings volym för filament byte"
# AI Translated
-msgid "Please choose the filament color"
-msgstr "Välj filamentfärg"
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "från/till"
# AI Translated
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -13922,6 +14652,155 @@ msgstr "Inloggningen misslyckades. Försök igen."
msgid "parse json failed"
msgstr "det gick inte att tolka json"
+# AI Translated
+msgid "Loading…"
+msgstr "Läser in…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Anpassade"
+
+# AI Translated
+msgid "Welcome to Orca Slicer"
+msgstr "Välkommen till Orca Slicer"
+
+# AI Translated
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer konfigureras i flera steg. Nu sätter vi igång!"
+
+# AI Translated
+msgid "Get Started"
+msgstr "Kom igång"
+
+# AI Translated
+msgid "Please select your login region"
+msgstr "Välj din inloggningsregion"
+
+msgid "Finish"
+msgstr "Slutför"
+
+# AI Translated
+msgid "Printer Selection"
+msgstr "Val av skrivare"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Tillverkare"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Anpassad skrivare"
+
+msgid "Create"
+msgstr "Skapa"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Sök efter nya skrivare"
+
+# AI Translated
+msgid "At least one printer must be selected."
+msgstr "Minst en skrivare måste väljas."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Nya skrivare hittades"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Nya skrivartillverkare installerade: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Nya skrivartillverkare hittades, men installationen avbröts."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Inga nya skrivare hittades."
+
+# AI Translated
+msgid "Filament Selection"
+msgstr "Val av filament"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "Systemfilament"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "Anpassade filament"
+
+# AI Translated
+msgid "Create New"
+msgstr "Skapa ny"
+
+msgid "Filament type"
+msgstr "Filament typ"
+
+msgid "Vendor"
+msgstr "Leverantör"
+
+# AI Translated
+msgid "No items"
+msgstr "Inga poster"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Filtrera poster"
+
+# AI Translated
+msgid "Checked"
+msgstr "Markerade"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Omarkerade"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Välj filtrerade"
+
+# AI Translated
+msgid "Clear all"
+msgstr "Rensa alla"
+
+# AI Translated
+msgid "At least one filament must be selected."
+msgstr "Minst ett filament måste väljas."
+
+# AI Translated
+msgid "Do you want to use the default filament?"
+msgstr "Vill du använda standardfilamentet?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Detta stänger av alla molnfunktioner, inklusive profilsynkronisering med Orca Cloud. Användare som föredrar att arbeta helt offline kan aktivera det här alternativet."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Obs! När Stealth-läget är aktiverat säkerhetskopieras inte dina användarprofiler till Orca Cloud."
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "Aktivera Stealth-läge."
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Proprietära insticksmoduler"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Vissa skrivartillverkare kräver proprietära insticksmoduler för att kommunicera med sina skrivare. Välj motsvarande insticksmodul om du använder sådana skrivare."
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Observera att dessa insticksmoduler inte utvecklas eller underhålls av OrcaSlicer. De används efter eget omdöme och på egen risk."
+
+# AI Translated
+msgid "Install Bambu Network plug-in"
+msgstr "Installera insticksmodulen Bambu Network"
+
# AI Translated
msgid "[Action Required] "
msgstr "[Åtgärd krävs] "
@@ -13992,9 +14871,6 @@ msgstr "Tillgängligt när 3D-vyn på fliken Förbered har fokus."
msgid "Select a part"
msgstr "Välj del"
-msgid "Select multiple objects"
-msgstr "Välj flera objekt"
-
msgid "Select objects by rectangle"
msgstr "Välj objekt efter rektangel"
@@ -14350,27 +15226,20 @@ msgstr "Firmware versionen är onormal. Reparation och uppdatering krävs före
msgid "Extension Board"
msgstr "Utöknings enhet"
-# AI Translated
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Dela upp i %1% delar"
-
msgid "Repair finished"
msgstr "Reparation klar"
-msgid "Repair failed"
-msgstr "Reparation misslyckades."
-
-msgid "Repair canceled"
-msgstr "Reparation avbruten"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Kopierar fil %1% till %2% misslyckade: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Laddar ner nya leverantörsprofiler: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Laddar ner ny leverantörsprofil: %1%..."
+msgstr[1] "Laddar ner nya leverantörsprofiler: %1%..."
# AI Translated
#, boost-format
@@ -14378,8 +15247,12 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Konfigurationspaket: %1% uppdaterat till %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Det gick inte att ladda ner leverantörsprofiler: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Det gick inte att ladda ner leverantörsprofilen: %1%"
+msgstr[1] "Det gick inte att ladda ner leverantörsprofilerna: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Kontrollera ej sparade ändringar innan konfigureringen uppdateras."
@@ -14388,6 +15261,10 @@ msgstr "Kontrollera ej sparade ändringar innan konfigureringen uppdateras."
msgid "Open G-code file:"
msgstr "Öppna G-code-fil:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Det gick inte att skapa prime tornet, möjligen på grund av ett tomt första lager."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Ett objekt har ett tomt första lager och kan inte skrivas ut. Skär ut botten eller aktivera support."
@@ -14410,9 +15287,61 @@ msgstr "G-code vid byte av extruderingstyp i processen"
msgid "Filament change extrusion role G-code"
msgstr "G-code vid byte av extruderingstyp för filament"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"G-code-exporten till %1% misslyckades.\n"
+"Filen kan inte öppnas för skrivning."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "Mappen %1% finns inte."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"G-code-exporten till %1% misslyckades.\n"
+"Är disken full?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Det gick inte att byta namn på G-code-filen från %1% till %2%.\n"
+"Fel: %3%\n"
+"Är %1% låst?"
+
msgid "No object can be printed. It may be too small."
msgstr "Inget objekt kan skrivas ut. Det kan vara för litet"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "IDEX/IQEX-läget \"%1%\" har inga verktyg tilldelade på den valda skrivaren. Skriver ut i läget Primär i stället. Tilldela lägets verktyg i Skrivarens inställningar, eller välj ett annat läge med plattans IDEX/IQEX-knapp."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Den här plattan är inställd på IDEX/IQEX-läget \"%1%\", som den valda skrivaren inte definierar. Skriver ut i läget Primär i stället. Välj ett läge med plattans IDEX/IQEX-knapp, eller återställ läget i Skrivarens inställningar."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Ogiltigt värde för miniatyrbilder:"
+
# AI Translated
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Din utskrift ligger mycket nära primingområdena. Kontrollera att det inte blir någon kollision."
@@ -14464,6 +15393,10 @@ msgstr "Grupperingsfel: %1% kan inte placeras i vänster nozzel"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Grupperingsfel: %1% kan inte placeras i höger nozzel"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Ingen giltig nozzel hittades. Kontrollera antalet nozzlar."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Grupperingsfel i manuellt läge. Kontrollera antalet nozzlar eller gruppera om."
@@ -14483,6 +15416,18 @@ msgstr "flera skärningar med en perimeter, endast en användes (%1%)"
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "en perimeter ligger helt inuti en modifierare, modifieraren tillämpades inte på den (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "Modifieraren \"%2%\" (%1%) för \"%3%\" täcker en hel perimeter"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "Modifieraren \"%2%\" (%1%) för \"%3%\" (%4% totalt) täcker en hel perimeter"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -14497,10 +15442,49 @@ msgstr "modifieraren \"%1%\" för \"%2%\" (%3% totalt) hade ingen effekt på sö
msgid "Seam placement may differ from expected."
msgstr "Sömmens placering kan skilja sig från det förväntade."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
# AI Translated
msgid "Internal Bridge"
msgstr "Inre bridge"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() gav ett negativt avstånd. Har du ställt in någon extruderingsbredd för litet?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() gav ett negativt flöde. Har du ställt in någon extruderingsbredd för litet?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Det gick inte att beräkna linjebredden för %1%. Kan inte hämta värdet för \"%2%\"."
+
+# AI Translated
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Ogiltigt avstånd angavs till Flow::with_spacing(), kontrollera lagerhöjd och extruderingsbredd."
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Den valda 3mf-filen har sparats med en nyare version av %1% och är inte kompatibel."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Den valda 3MF-filen innehåller ett objekt med målad FDM-support från en nyare version av PrusaSlicer och är inte kompatibel."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Den valda 3MF-filen innehåller ett objekt med målad söm från en nyare version av PrusaSlicer och är inte kompatibel."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Den valda 3MF-filen innehåller ett flermaterialmålat objekt från en nyare version av PrusaSlicer och är inte kompatibel."
+
msgid "undefined error"
msgstr "Oidentifierat fel"
@@ -14594,6 +15578,56 @@ msgstr "validering misslyckad"
msgid "write callback failed"
msgstr "skriv återuppringning misslyckad"
+# AI Translated
+msgid "unknown error"
+msgstr "okänt fel"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Flerfärgsutskrifter i parallella IDEX/IQEX-lägen kräver att varje filament har en egen fysisk extruder. Två eller fler av de aktiva filamenten leds till samma fysiska huvud via skrivarens fysiska extruderkarta (ett MMU/AFC-fördelningsblock), vilket den slavstyrda portalen inte kan följa."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "Det aktiva IDEX/IQEX-läget definierar inget primärt verktyg, så flerfärgsutskrift kan inte planeras. Öppna redigeraren för IDEX/IQEX-lägen i skrivarens inställningar och tilldela ett verktyg rollen Primär (Primary)."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Flerfärg i det här läget är inte parallellutskrift — alla aktiva verktyg sitter på en enda portal, så det finns ingen andra portal att kopiera eller spegla till. Växla plattan till läget Primär för flerfärgsutskrift på en enda portal, eller definiera ett IDEX/IQEX-läge som omfattar verktyg på en andra portal."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Flerfärgsutskrifter i parallella IDEX/IQEX-lägen kräver ett Span-verktyg på det primära verktygets portal — utan ett sådant anger läget ingen flerfärgspartner på samma portal. Minska antingen utskriften till ett enda filament, växla till läget Primär, eller öppna redigeraren för IDEX/IQEX-lägen i skrivarens inställningar och markera ett verktyg på det primära verktygets portal som Span."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "I det här Span-läget skriver bara %1% ut färger, men filament %2% är inte kopplat till något verktyg. Använd filament som är kopplade till %1%, eller växla den här plattan till läget Primär."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "I det här Span-läget skriver bara %1% ut färger, men filament %2% är kopplat till T%3%. Använd filament som är kopplade till %1%, eller växla den här plattan till läget Primär."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Den valda förinställningen kan inte läsas in: %1%\n"
+"\tOrsak: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Det gick inte att läsa in förinställningsfilen: %1%\n"
+"\tOrsak: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% är för nära undantagsområde. Det kan förekomma kollisioner vid utskrift."
@@ -14610,29 +15644,34 @@ msgstr "%1% är för hög, och kollisioner kommer att uppstå."
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "Modellens och prime tornets inbördes placering uppfyller inte kraven för funktionen \"Inga glesa lager\". Justera deras inbördes placering, sänk modellens höjd eller stäng av \"Inga glesa lager\"."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " är för nära undantagsområdet, det kan förekomma kollisioner vid utskrift."
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% ligger för nära området för klumpdetektering. Det kan uppstå kollisioner vid utskrift."
# AI Translated
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " ligger för nära området för klumpdetektering, det kan uppstå kollisioner vid utskrift."
-
-msgid "Prime Tower"
-msgstr "Prime Torn"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr "är för nära andra och kollisioner kan orsakas.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " är för nära uteslutningsområdet, och kollisioner kommer att orsakas.\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "Prime tornet är för nära andra och kollisioner kan orsakas.\n"
# AI Translated
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " ligger för nära området för klumpdetektering, vilket kommer att orsaka kollisioner.\n"
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "Prime tornet är för nära ett undantagsområde, och kollisioner kommer att orsakas.\n"
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " är delvis utanför det utskrivbara området och kan inte skrivas ut.\n"
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "Prime tornet ligger för nära området för klumpdetektering, vilket kommer att orsaka kollisioner.\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "Prime tornet är för nära ett undantagsområde. Det kan förekomma kollisioner vid utskrift."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "Prime tornet ligger för nära området för klumpdetektering. Det kan uppstå kollisioner vid utskrift."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "Prime tornet är delvis utanför det utskrivbara området och kan inte skrivas ut.\n"
# AI Translated
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
@@ -14649,6 +15688,58 @@ msgstr "Om du ändå vill skriva ut kan du aktivera alternativet i Inställninga
msgid "No extrusions under current settings."
msgstr "Nuvarande inställning har ingen extrudering."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Blandade filament stöds inte i parallella IDEX/IQEX-lägen. Växla den här plattan till läget Primär."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX-läget \"%1%\" skriver ut med T%2%, men inget av den här plattans filament finns på ett konfigurerat verktyg. Tilldela ett filament som är laddat i T%2%, eller växla den här plattan till läget Primär."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX-läget \"%1%\" skriver ut med T%2%, men den här plattans filament finns på %3%. Tilldela ett filament som är laddat i T%2%, eller växla den här plattan till läget Primär."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Raft är inte kompatibelt med bandskrivarläget."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Dragskydd är inte kompatibelt med bandskrivarläget."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "Brim är inte kompatibelt med läget Spiral vas på en bandskrivare. Inaktivera ett av dem."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Bandet lutar för brant för brim, så ingen brim genereras."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Brim genereras bara när bandet lutar. Ange en lutningsvinkel för bandet, eller ta bort brim-inställningen."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Bandskrivare stöder endast yttre och inre brim. Auto, Musöra och Målad brim skrivs ut som \"Endast yttre brim\" med \"Brim bredd\"."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "\"Avstånd mellan brim och modell\" skiljer framkantsbrim från objektets framkant, som är den kant den ska förankra. Sätt avståndet till 0 när du använder \"Längd på framkantsbrim\"."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "\"Längd på framkantsbrim\" sträcker sig framför varje objekt längs bandet, och Arrangera reserverar inte det utrymmet. Lämna plats mellan objekten."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "Brim av typen \"Endast framkant\" gäller bandskrivare. På den här skrivaren skrivs den ut som en vanlig yttre brim."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Ett blandat filament med gradient används, men 'Underlager med blandad färg' är inaktiverat. Gradienten kommer inte att skrivas ut."
@@ -14660,6 +15751,18 @@ msgstr "Smooth läge för timelapse stöds inte när ”per objekt” -sekvens
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "Klumpdetektering stöds inte när utskriftssekvensen \"objekt för objekt\" är aktiverad."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "Bandrensningstornet genereras inte med utskriftssekvensen \"Per objekt\"; filamentbyten rensas inte."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "Bandrensningstornet är aktiverat men projektet har inget rensningstornobjekt; filamentbyten rensas inte. Öppna projektet i programmet för att generera tornet."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Projektet innehåller flera hanterade bandrensningstorn. Läs in plattan igen eller stäng av och slå på bandrensningstornet för att generera om det."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Att aktivera både exakt Z-höjd och rengöringstornet kan orsaka skärningsfel."
@@ -14678,11 +15781,6 @@ msgstr "Spiral Vase läge fungerar inte när objektet innehåller mer än ett ma
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Även om objektet %1% i sig ryms i byggvolymen överskrider det byggvolymens maximala höjd på grund av kompensation för materialkrympning."
-# AI Translated
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "Objektet %1% överskrider byggvolymens maximala höjd."
-
# AI Translated
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
@@ -14692,6 +15790,11 @@ msgstr "Även om objektet %1% i sig ryms i byggvolymen överskrider dess sista l
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Du kan behöva minska modellens storlek eller ändra de aktuella utskriftsinställningarna och försöka igen."
+# AI Translated
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "Objektet %1% överskrider byggvolymens maximala höjd."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Variabel lagerhöjd stöds inte med organiska support."
@@ -14870,6 +15973,10 @@ msgstr "Modellen för adaptiv Pressure Advance för en eller flera extrudrar kan
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "Filamentkrympning används inte eftersom filamentkrympningen för de använda filamenten inte stämmer överens."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "Utskriften är tom. Modellen går inte att skriva ut med de aktuella utskriftsinställningarna."
+
msgid "Generating skirt & brim"
msgstr "Skapar Skirt & Brim"
@@ -14891,6 +15998,17 @@ msgstr "Exporterar G-code"
msgid "Generating G-code"
msgstr "Skapar G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Det gick inte att bearbeta G-code-filen %1% från den tidigare 3MF-filen."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "Bandrensningstornet kan inte ta emot hela rensningsvolymen: totalt %1% mm³ kunde inte rensas (sämsta lagret: %2% mm³ på höjden %3%). Utskriften kan få färgläckage. Öka bandrensningstornets bredd eller minska rensningsvolymerna."
+
# AI Translated
msgid "Processing of the filename_format template failed."
msgstr "Bearbetningen av mallen filename_format misslyckades."
@@ -15240,7 +16358,7 @@ msgstr "Tvinga kylning för överhäng och bridges"
# AI Translated
msgid "Enable this option to allow adjustment of the part cooling fan speed for specifically for overhangs, internal and external bridges. Setting the fan speed specifically for these features can improve overall print quality and reduce warping."
-msgstr "Aktivera det här alternativet för att kunna justera hastigheten på del kylningsfläkten specifikt för överhäng samt inre och yttre bridges. Att ange fläkthastigheten särskilt för dessa detaljer kan förbättra den totala utskriftskvaliteten och minska skevhet."
+msgstr "Aktivera det här alternativet för att kunna justera hastigheten på delkylningsfläkten specifikt för överhäng samt inre och yttre bridges. Att ange fläkthastigheten särskilt för dessa detaljer kan förbättra den totala utskriftskvaliteten och minska skevhet."
# AI Translated
msgid "Overhangs and external bridges fan speed"
@@ -15252,7 +16370,7 @@ msgid ""
"\n"
"Please note, this fan speed is clamped on the lower end by the minimum fan speed threshold set above. It is also adjusted upwards up to the maximum fan speed threshold when the minimum layer time threshold is not met."
msgstr ""
-"Använd den här hastigheten på del kylningsfläkten när bridges eller överhängsväggar skrivs ut med ett överhäng som överstiger värdet i parametern 'Tröskel för kylning av överhäng' ovan. Ökad kylning särskilt för överhäng och bridges kan förbättra den totala utskriftskvaliteten för dessa detaljer.\n"
+"Använd den här hastigheten på delkylningsfläkten när bridges eller överhängsväggar skrivs ut med ett överhäng som överstiger värdet i parametern 'Tröskel för kylning av överhäng' ovan. Ökad kylning särskilt för överhäng och bridges kan förbättra den totala utskriftskvaliteten för dessa detaljer.\n"
"\n"
"Observera att den här fläkthastigheten begränsas nedåt av den lägsta fläkthastighetströskeln som anges ovan. Den justeras också uppåt, upp till den högsta fläkthastighetströskeln, när tröskeln för minsta lagertid inte uppnås."
@@ -15382,8 +16500,9 @@ msgstr ""
"\n"
"Det här alternativet fungerar särskilt bra tillsammans med alternativet andra inre bridge över ifyllnad, för att förbättra bridging ytterligare innan solid ifyllnad extruderas."
+# AI Translated
msgid "Bridge flow ratio"
-msgstr "Bridge/Brygg flöde"
+msgstr "Flödesförhållande för bridge"
# AI Translated
msgid ""
@@ -15400,18 +16519,19 @@ msgstr ""
"Det faktiska bridge-flödet beräknas genom att detta värde multipliceras med filamentets flödesförhållande och, om det är angivet, objektets flödesförhållande."
# AI Translated
+# Needs human review: 'bridge-densitet' is generic (the labels are 'Densitet för yttre/inre bridge'). The printf-style warning for '% e' after 100 is a false positive (the entry is not c-format).
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
-"Linjebredd för bridgen. Om värdet anges i % beräknas det utifrån nozzeldiametern.\n"
-"Rekommenderas att användas med högre bridge-densitet eller bridge-flödesförhållande.\n"
+"Linjebredd för Bridge/bro. Om värdet anges i procent (%) beräknas det utifrån nozzeldiametern.\n"
+"Rekommenderas att användas med högre bridge-densitet eller Flödesförhållande för bridge.\n"
"\n"
-"Maxvärdet är 100 % eller nozzeldiametern.\n"
-"Om det sätts till 0 motsvarar linjebredden bredden på inre solid ifyllnad."
+"Maxvärdet är 100% eller nozzeldiametern.\n"
+"Om det sätts till 0 motsvarar linjebredden bredden på invändig solid fyllnad, eller nozzeldiametern för tjocka bridges."
# AI Translated
msgid "Internal bridge flow ratio"
@@ -15739,7 +16859,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Aktivera det här alternativet för att sakta ner utskriften i områden där perimetrar kan ha böjt sig uppåt.\n"
"Till exempel tillämpas ytterligare nedsaktning vid utskrift av överhäng i skarpa hörn, som fören på en Benchy, vilket minskar uppböjning som annars förvärras över flera lager.\n"
@@ -15751,10 +16871,10 @@ msgstr ""
"Rekommendationer när du aktiverar det här alternativet:\n"
"1. Minska Pressure Advance-utjämningstiden till 0,015–0,02 så att extrudern reagerar snabbt på hastighetsändringarna.\n"
"2. Öka minimihastigheterna för utskrift för att begränsa nedsaktningens omfattning och minska variationen mellan snabba och långsamma sträckor.\n"
-"3. Om artefakter fortfarande syns, aktivera Extrusion Rate Smoothing (ERS) för att jämna ut flödesövergångarna ytterligare.\n"
+"3. Om artefakter fortfarande syns, aktivera Utjämning av extruderingshastighet (ERS) för att jämna ut flödesövergångarna ytterligare.\n"
"\n"
"Obs! När det här alternativet är aktiverat behandlas överhängsperimetrar som överhäng, vilket innebär att överhängshastigheten tillämpas även om den överhängande perimetern är en del av en bridge.\n"
-"Till exempel, när perimetrarna hänger över till 100 % utan någon vägg som stöder dem underifrån, tillämpas hastigheten för 100 % överhäng."
+"Till exempel, när perimetrarna hänger över till 100% utan någon vägg som stöder dem underifrån, tillämpas hastigheten för 75% överhäng, begränsad av bridge-hastigheten."
msgid "mm/s or %"
msgstr "mm/s eller %."
@@ -15763,11 +16883,11 @@ msgstr "mm/s eller %."
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Hastighet för de externt synliga bridge-extruderingarna.\n"
"\n"
-"Om Sakta ner för uppböjda perimetrar är avaktiverat eller Klassiskt överhängsläge är aktiverat är detta dessutom utskriftshastigheten för överhängsväggar som har stöd på mindre än 13 %, oavsett om de ingår i en bridge eller ett överhäng."
+"Om Sakta ner för uppböjda perimetrar är avaktiverat är detta dessutom utskriftshastigheten för överhängsväggar som har stöd på mindre än 13%, oavsett om de ingår i en bridge eller ett överhäng."
# AI Translated
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
@@ -15776,12 +16896,56 @@ msgstr "Hastighet för inre bridges. Om värdet anges i procent beräknas det ut
msgid "This is the distance from the model to the outermost brim line."
msgstr "Avståndet från modellen till yttersta brim linjen"
+# AI Translated
+msgid "Leading brim length"
+msgstr "Längd på framkantsbrim"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Endast bandskrivare. Förlänger brim FRAMFÖR objektet längs bandet, på varje kant av kontaktytan som vetter nedför bandet - både där objektet först når bandet och vid varje ö som landar senare. Detta förkläde läggs på bandet innan objektet når dit, så att framkanten redan har något fastsittande att hålla sig i.\n"
+"\n"
+"Mäts på bandytan och läggs till utöver \"Brim bredd\": brim når \"Avstånd mellan brim och modell\" + \"Längd på framkantsbrim\" + \"Brim bredd\" framför objektet. Sätt \"Avstånd mellan brim och modell\" till 0, annars når förklädet inte fram till objektet det ska förankra.\n"
+"\n"
+"På ett lutande band lägger varje lager en remsa av brim, så tjockleken på det resulterande brim-skiktet bestäms av flödet snarare än av lagerhöjden. Använd \"Flödesförhållande för brim\" för att justera den.\n"
+"\n"
+"Sätt till 0 för att inaktivera."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Extra brim bredd"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Endast bandskrivare. Breddar brim i SIDLED, tvärs över bandet, utan att förlänga den längre framför eller bakom objektet. Använd det när en del behöver mer grepp längs sin längd än vad \"Brim bredd\" ensamt ger.\n"
+"\n"
+"Mäts på bandytan och läggs till utöver \"Brim bredd\": brim når \"Avstånd mellan brim och modell\" + \"Brim bredd\" + \"Extra brim bredd\" ut på var sida om objektet. Använd \"Längd på framkantsbrim\" för att i stället förlänga brim framför objektet.\n"
+"\n"
+"Sätt till 0 för att inaktivera."
+
msgid "Brim type"
msgstr "Brim typ"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Detta styr genereringen av brim på modellens yttre och/eller inre sida. Auto innebär att brim bredd analyseras och beräknas automatiskt."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Endast framkant"
+
msgid "Brim-object gap"
msgstr "Avstånd mellan brim och modell"
@@ -15997,11 +17161,11 @@ msgstr "Aktivera detta för att åsidosätta den fläkthastighet som anges i anp
# AI Translated
msgid "Speed of exhaust fan during printing. This speed will override the speed in filament custom G-code."
-msgstr "Hastighet för frånluftsfläkt under utskrift. Denna hastighet kommer att åsidosätta hastigheten i filamentets anpassade G-code."
+msgstr "Hastighet för utsugsfläkt under utskrift. Denna hastighet kommer att åsidosätta hastigheten i filamentets anpassade G-code."
# AI Translated
msgid "Speed of exhaust fan after printing completes."
-msgstr "Hastighet för utsugs fläkten efter att utskriften är klar."
+msgstr "Hastighet för utsugsfläkten efter att utskriften är klar."
msgid "No cooling for the first"
msgstr "Ingen kylning vid första"
@@ -16107,6 +17271,10 @@ msgstr ""
"2. Begränsad filtrering – skapar inre bridges på kraftigt lutande ytor men undviker onödiga bridges. Det fungerar bra för de flesta svåra modeller\n"
"3. Ingen filtrering – skapar inre bridges vid varje potentiellt inre överhäng. Det här alternativet är användbart för modeller med kraftigt lutande ovansidor, men i de flesta fall skapar det alltför många onödiga bridges."
+# AI Translated
+msgid "Filter"
+msgstr "Filter"
+
# AI Translated
msgid "Limited filtering"
msgstr "Begränsad filtrering"
@@ -16126,7 +17294,7 @@ msgid "End G-code"
msgstr "Slut-G-code"
# AI Translated
-msgid "Add end G-Code when finishing the entire print."
+msgid "Add end G-code when finishing the entire print."
msgstr "Lägg till slut-G-code när hela utskriften avslutas."
# AI Translated
@@ -16183,8 +17351,9 @@ msgstr "Monoton linje"
msgid "Rectilinear"
msgstr "Räta linjer"
+# AI Translated
msgid "Aligned Rectilinear"
-msgstr "Justerade Rätlinjig"
+msgstr "Justerade räta linjer"
msgid "Concentric"
msgstr "Koncentrisk"
@@ -16330,8 +17499,8 @@ msgid "Small perimeters"
msgstr "Små perimetrar"
# AI Translated
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Den här separata inställningen påverkar hastigheten för perimetrar med radie <= small_perimeter_threshold (oftast hål). Om den anges i procent (till exempel 80 %) beräknas den utifrån inställningen för ytterväggshastighet ovan. Sätt till noll för automatiskt."
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Den här separata inställningen påverkar hastigheten för perimetrar med radie <= small_perimeter_threshold (oftast hål). Om den anges i procent (till exempel 80%) beräknas den utifrån inställningen för hastigheten för yttre vägg ovan."
# AI Translated
msgid "Small perimeters threshold"
@@ -16345,8 +17514,8 @@ msgid "Small support perimeters"
msgstr "Små supportperimetrar"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Samma som \"Små perimetrar\", men för support. Den här separata inställningen påverkar supporthastigheten för områden <= `small_support_perimeter_threshold`. Om den anges i procent (till exempel 80 %) beräknas den utifrån inställningen för hastighet för support eller supportens kontaktyta ovan. Sätt till noll för automatiskt."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Samma som \"Små perimetrar\", men för support. Den här separata inställningen påverkar supporthastigheten för områden <= `small_support_perimeter_threshold`. Om den anges i procent (till exempel 80%) beräknas den utifrån inställningen för hastighet för support eller support kontaktyta ovan."
# AI Translated
msgid "Small support perimeters threshold"
@@ -16366,7 +17535,7 @@ msgid ""
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
@@ -16619,8 +17788,9 @@ msgstr "Standardlinjebredd om övriga linjebredder är satta till 0. Om värdet
msgid "Keep fan always on"
msgstr "Behåll alltid fläkten på"
+# AI Translated
msgid "Enabling this setting means that part cooling fan will never stop entirely and will instead run at least at minimum speed to reduce the frequency of starting and stopping."
-msgstr "Om den här inställningen aktiveras, kommer en del kylfläkten aldrig stoppas och den kommer att åtminstone gå på lägsta hastighet för att minska frekvensen av start och stopp"
+msgstr "Om den här inställningen aktiveras, kommer delkylningsfläkten aldrig stoppas och den kommer att åtminstone gå på lägsta hastighet för att minska frekvensen av start och stopp."
# AI Translated
msgid "Don't slow down outer walls"
@@ -16641,8 +17811,9 @@ msgstr ""
msgid "Layer time"
msgstr "Lager tid"
+# AI Translated
msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time."
-msgstr "Del kylfläkten kommer att aktiveras för lager vars beräknade tid är kortare än detta värde. Fläkthastigheten interpoleras mellan den lägsta och högsta fläkthastigheten enligt utskriftstiden för lager"
+msgstr "Delkylningsfläkten kommer att aktiveras för lager vars beräknade tid är kortare än detta värde. Fläkthastigheten interpoleras mellan den lägsta och högsta fläkthastigheten enligt utskriftstiden för lager."
# AI Translated
msgctxt "second"
@@ -17113,9 +18284,6 @@ msgstr "Filament pris, endast för statistiska ändamål"
msgid "money/kg"
msgstr "pris/kg"
-msgid "Vendor"
-msgstr "Leverantör"
-
msgid "Vendor of filament. For show only."
msgstr "Försäljare av filament. Endast för visning"
@@ -17197,6 +18365,92 @@ msgstr "Flerlinjig fyllning"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Använder flera linjer för ifyllnadsmönstret, om mönstret stöder det."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Adaptiv densitet (experimentell)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Graderar Gyroid- och TPMS-ifyllnaden inuti objektet: dess celler växer från objektets yta mot dess mitt. \"Sparsam ifyllnads densitet\" används vid ytan och \"Inre densitet\" i mitten.\n"
+"Avståndsförvrängning, Mjuk övergång och Stegvisa skal följer avståndet till närmaste yta, inklusive topp och botten, med den inre densiteten i den punkt som ligger längst bort från den:\n"
+" - Avståndsförvrängning: ett sammanhängande mönster, sträckt och skjuvat där avståndet ändras olika i olika riktningar, som i skivor och långa delar.\n"
+" - Mjuk övergång: mönstren för närliggande densiteter blandas in i varandra, med små slingor där de möts.\n"
+" - Stegvisa skal: skal av det vanliga mönstret med densiteter som skiljer sig ungefär 1,5 gånger åt, med linjerna sammanfogade längs skalens gränser.\n"
+" - Lober: följer objektets 3D-form, inklusive topp och botten. Varje lob, en del som är förenad med resten via en smalare hals, graderas mot sin egen mitt.\n"
+" - Normal Z, Y eller X: följer objektets snitt vinkelrätt mot den axeln, så att densiteten inte ändras längs den."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Avståndsförvrängning"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Mjuk övergång"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Stegvisa skal"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Lober"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Normal Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Normal Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Normal X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Inre densitet"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Densitet för den adaptiva ifyllnaden i objektets mitt."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Adaptiv gradient"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Hur densiteten ändras från ytan till objektets mitt.\n"
+"Linjär: densiteten ändras i jämn takt.\n"
+"Kvadratisk: densiteten håller sig nära sparsam ifyllnads densitet nära ytan och ändras snabbare mot mitten.\n"
+"Exponentiell: densiteten ändras snabbt strax under ytan och planar ut mot mitten."
+
+# AI Translated
+msgid "Linear"
+msgstr "Linjär"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Kvadratisk"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Exponentiell"
+
# AI Translated
msgid "Z-buckling bias optimization (experimental)"
msgstr "Optimering av Z-knäckningsbias (experimentell)"
@@ -17370,14 +18624,16 @@ msgstr "Första lagerhöjd"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Första lagerhöjd. Högre första lager kan förbättra objektets fäste på byggplattan"
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Hastigheten för det första lagret förutom för solida ifyllnads sektioner"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Detta är hastigheten för väggarna och brimen i det första lagret."
msgid "First layer infill"
msgstr "Första lager ifyllnad"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Hastigheten för fasta ifyllnadsdelar av det första lagret"
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Detta är hastigheten för det första lagret förutom väggar och brim, till exempel ifyllnad, gap fyllning och support."
# AI Translated
msgid "First layer travel speed"
@@ -17440,7 +18696,7 @@ msgid ""
"Set to -1 to disable it.\n"
"This setting is overridden by disable_fan_first_layers."
msgstr ""
-"Den här hastigheten på del kylningsfläkten används vid utskrift av supportens kontaktytor. Om du sätter parametern högre än den vanliga hastigheten minskar lagerbindningen mellan support och den stödda delen, vilket gör dem lättare att separera.\n"
+"Den här hastigheten på delkylningsfläkten används vid utskrift av supportens kontaktytor. Om du sätter parametern högre än den vanliga hastigheten minskar lagerbindningen mellan support och den stödda delen, vilket gör dem lättare att separera.\n"
"Sätt till -1 för att avaktivera.\n"
"Den här inställningen åsidosätts av disable_fan_first_layers."
@@ -17454,7 +18710,7 @@ msgid ""
"\n"
"Reducing the internal bridges fan speed, compared to your regular fan speed, can help reduce part warping due to excessive cooling applied over a large surface for a prolonged period of time."
msgstr ""
-"Hastigheten på del kylningsfläkten som används för alla inre bridges. Sätt till -1 för att i stället använda inställningarna för fläkthastighet vid överhäng.\n"
+"Hastigheten på delkylningsfläkten som används för alla inre bridges. Sätt till -1 för att i stället använda inställningarna för fläkthastighet vid överhäng.\n"
"\n"
"Om du sänker fläkthastigheten för inre bridges jämfört med din vanliga fläkthastighet kan skevhet i delen minska, eftersom kraftig kylning annars appliceras över en stor yta under lång tid."
@@ -17467,7 +18723,7 @@ msgid ""
"This part cooling fan speed is applied when ironing. Setting this parameter to a lower than regular speed reduces possible nozzle clogging due to the low volumetric flow rate, making the interface smoother.\n"
"Set to -1 to disable it."
msgstr ""
-"Den här hastigheten på del kylningsfläkten används vid strykning. Om du sätter parametern lägre än den vanliga hastigheten minskar risken för igensatt nozzel på grund av det låga volymetriska flödet, vilket ger en jämnare yta.\n"
+"Den här hastigheten på delkylningsfläkten används vid strykning. Om du sätter parametern lägre än den vanliga hastigheten minskar risken för igensatt nozzel på grund av det låga volymetriska flödet, vilket ger en jämnare yta.\n"
"Sätt till -1 för att avaktivera."
msgid "Ironing flow"
@@ -17790,7 +19046,7 @@ msgstr "Bästa automatiska arrangemangs position i intervallet [0,1] w.r.t. bäd
# AI Translated
msgid "Enable this option if machine has auxiliary part cooling fan. G-code command: M106 P2 S(0-255)."
-msgstr "Aktivera det här alternativet om maskinen har en extra del kylningsfläkt. G-code-kommando: M106 P2 S(0-255)."
+msgstr "Aktivera det här alternativet om maskinen har en extra delkylningsfläkt. G-code-kommando: M106 P2 S(0-255)."
# AI Translated
msgid "Fan direction"
@@ -17840,7 +19096,7 @@ msgstr ""
# AI Translated
msgid "Minimum non-zero part cooling fan speed"
-msgstr "Lägsta fläkthastighet skild från noll för del kylningsfläkten"
+msgstr "Lägsta fläkthastighet skild från noll för delkylningsfläkten"
# AI Translated
msgid ""
@@ -17848,7 +19104,7 @@ msgid ""
"If your firmware already disables the fan below a threshold (for example Klipper's [fan] off_below: 0.10 shuts the fan off whenever the commanded duty cycle is below 10%), this option and the firmware threshold should ideally be set to the same value. Matching them (e.g. off_below: 0.10 in Klipper and 10% here) guarantees the slicer never emits a non-zero value that the firmware would silently drop, and the fan never receives a value below the one you know it can actually spool at.\n"
"Set to 0 to deactivate."
msgstr ""
-"Vissa del kylningsfläktar kan inte börja snurra när de får ett kommando under en viss PWM-arbetscykel. När värdet är över 0 höjs varje fläktkommando skilt från noll till minst den här procentandelen, så att fläkten startar tillförlitligt. Ett fläktkommando på 0 (fläkt av) följs alltid exakt. Denna begränsning tillämpas efter alla andra fläktberäkningar (upptrappning på första lagret, interpolering efter lagertid, åsidosättningar för överhäng/bridge/supportkontaktyta/strykning), så skalningen sker fortfarande inom intervallet [detta värde, 100 %].\n"
+"Vissa delkylningsfläktar kan inte börja snurra när de får ett kommando under en viss PWM-arbetscykel. När värdet är över 0 höjs varje fläktkommando skilt från noll till minst den här procentandelen, så att fläkten startar tillförlitligt. Ett fläktkommando på 0 (fläkt av) följs alltid exakt. Denna begränsning tillämpas efter alla andra fläktberäkningar (upptrappning på första lagret, interpolering efter lagertid, åsidosättningar för överhäng/bridge/supportkontaktyta/strykning), så skalningen sker fortfarande inom intervallet [detta värde, 100 %].\n"
"Om din fasta programvara redan stänger av fläkten under en tröskel (till exempel Klippers [fan] off_below: 0.10, som stänger av fläkten när den kommenderade arbetscykeln är under 10 %) bör det här alternativet och tröskeln i den fasta programvaran helst sättas till samma värde. Om de matchar (t.ex. off_below: 0.10 i Klipper och 10 % här) garanteras att beredningsprogrammet aldrig skickar ett värde skilt från noll som den fasta programvaran tyst skulle förkasta, och att fläkten aldrig får ett värde under det du vet att den faktiskt kan starta vid.\n"
"Sätt till 0 för att avaktivera."
@@ -17900,6 +19156,10 @@ msgstr "G-code-variant"
msgid "What kind of G-code the printer is compatible with."
msgstr "Vilken typ av G-code skrivaren är kompatibel med."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (äldre)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -18189,8 +19449,8 @@ msgstr "Ifyllnad/Vägg överlapp"
# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Detta gör att ifyllnads ytan förstoras något så att den överlappar väggarna för bättre bindning. Procentvärdet är relativt linjebredden för sparsam ifyllnad. Ställ in detta värde på ~10-15 % för att minimera risken för överextrudering och materialansamling som ger ojämna toppytor."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Detta gör att ifyllnadsytan förstoras något så att den överlappar väggarna för bättre bindning. Procentvärdet är relativt den inre väggens linjebredd. Ställ in detta värde på ~10-15% för att minimera risken för överextrudering och materialansamling som ger ojämna toppytor."
# AI Translated
msgid "Top/Bottom solid infill/wall overlap"
@@ -18198,8 +19458,8 @@ msgstr "Överlappning mellan övre/undre solid ifyllnad och vägg"
# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "Området med övre solid ifyllnad förstoras något så att det överlappar väggen för bättre bindning och för att minimera synliga nålhål där den övre ifyllnaden möter väggarna. Ett värde på 25–30 % är en bra utgångspunkt för att minimera nålhål. Procentvärdet är relativt linjebredden för sparsam ifyllnad."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "Området med övre solid ifyllnad förstoras något så att det överlappar väggen för bättre bindning och för att minimera synliga nålhål där den övre ifyllnaden möter väggarna. Ett värde på 25-30% är en bra utgångspunkt för att minimera nålhål. Procentvärdet är relativt den inre väggens linjebredd."
msgid "This is the speed for internal sparse infill."
msgstr "Hastighet för sparsam ifyllnad"
@@ -18231,8 +19491,8 @@ msgid "Interlocking depth of a segmented region"
msgstr "Sammanhängande djup i en segmenterad region"
# AI Translated
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Sammanflätningsdjup för ett segmenterat område. Det ignoreras om \"mmu_segmented_region_max_width\" är noll eller om \"mmu_segmented_region_interlocking_depth\" är större än \"mmu_segmented_region_max_width\". Noll avaktiverar funktionen."
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Sammanhängande djup i en segmenterad region. På vartannat lager är den segmenterade regionen begränsad till detta djup. Ignoreras om \"interlocking_beam\" är aktiverat. Noll inaktiverar denna funktion."
# AI Translated
msgid "Use beam interlocking"
@@ -18359,11 +19619,11 @@ msgstr "Vinkel för minskad vägghöjd"
# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Minska höjden på perimetrar vid ovansidor så att de matchar modellens kanthöjd.\n"
-"Påverkar perimetrar med en lutning mindre än den här vinkeln (grader).\n"
+"Påverkar perimetrar med en lutning större än den här vinkeln (grader).\n"
"Ett rimligt värde är 35. Sätt till 0 för att avaktivera."
# AI Translated
@@ -18451,17 +19711,21 @@ msgstr "Max hastighet Z"
msgid "Maximum speed E"
msgstr "Max hastighet E"
-msgid "Maximum X speed"
-msgstr "Max X hastighet"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Maximal hastighet för X-axeln"
-msgid "Maximum Y speed"
-msgstr "Max Y hastighet"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Maximal hastighet för Y-axeln"
-msgid "Maximum Z speed"
-msgstr "Max Z hastighet"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Maximal hastighet för Z-axeln"
-msgid "Maximum E speed"
-msgstr "Max E hastighet"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Maximal hastighet för E-axeln"
msgid "Maximum acceleration X"
msgstr "Max acceleration X"
@@ -18716,8 +19980,9 @@ msgstr ""
"Noll använder dämpningsförhållandet i den fasta programvaran.\n"
"Använd typen Avaktivera för att stänga av input shaping."
+# AI Translated
msgid "The part cooling fan speed may be increased when auto cooling is enabled. This is the maximum speed for the part cooling fan."
-msgstr "Del kylfläktens hastighet kan ökas när automatisk kylning är aktiverad. Detta är max hastighets begränsning för en del kylfläkt"
+msgstr "Delkylningsfläktens hastighet kan ökas när automatisk kylning är aktiverad. Detta är max hastighets begränsning för en delkylningsfläkt."
# AI Translated
msgid "The highest printable layer height for the extruder. Used to limit the maximum layer height when enable adaptive layer height."
@@ -18786,15 +20051,16 @@ msgstr "Tillämpa endast på yttre detaljer"
msgid "Applies extrusion rate smoothing only on external perimeters and overhangs. This can help reduce artefacts due to sharp speed transitions on externally visible overhangs without impacting the print speed of features that will not be visible to the user."
msgstr "Tillämpar utjämning av extruderingshastighet endast på ytterperimetrar och överhäng. Det kan minska artefakter från skarpa hastighetsövergångar på synliga överhäng utan att påverka utskriftshastigheten för detaljer som användaren ändå inte ser."
+# AI Translated
msgid "Minimum speed for part cooling fan."
-msgstr "Min hastighet för del kylfläkten"
+msgstr "Min hastighet för delkylningsfläkten."
# AI Translated
msgid ""
"Speed of auxiliary part cooling fan. Auxiliary fan will run at this speed during printing except the first several layers which is defined by no cooling layers.\n"
"Please enable auxiliary_fan in printer settings to use this feature. G-code command: M106 P2 S(0-255)"
msgstr ""
-"Hastighet för den extra del kylningsfläkten. Den extra fläkten körs med den här hastigheten under utskriften, utom de första lagren som definieras av antalet lager utan kylning.\n"
+"Hastighet för den extra delkylningsfläkten. Den extra fläkten körs med den här hastigheten under utskriften, utom de första lagren som definieras av antalet lager utan kylning.\n"
"Aktivera auxiliary_fan i skrivarinställningarna för att kunna använda funktionen. G-code-kommando: M106 P2 S(0-255)"
msgid "For the first"
@@ -19031,7 +20297,7 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Insticksmodulsfunktioner som den här förinställningen refererar till, lagrade som name;uuid;capability."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr "Python-insticksmoduler som anropas vid varje steg i beredningspipelinen för att läsa och ändra mellanliggande beredningsdata, inklusive ett avslutande efterbearbetningssteg för G-code. Forskning/experimentellt."
# AI Translated
@@ -19103,7 +20369,7 @@ msgstr "Detta är längden av snabb retraktion före en wipe, i förhållande ti
# AI Translated
msgid "Retract amount after wipe"
-msgstr "Reduktionsmängd efter avtorkning"
+msgstr "Retraktionsmängd efter avtorkning"
# AI Translated
#, no-c-format, no-boost-format
@@ -19111,8 +20377,8 @@ msgid ""
"This is the length of fast retraction after wipe, relative to retraction length.\n"
"The value will be clamped by 100% minus the retract amount before the wipe value."
msgstr ""
-"Längden på den snabba reduktionen efter avtorkning, i förhållande till reduktionslängden.\n"
-"Värdet begränsas till 100 % minus värdet för reduktionsmängd före avtorkning."
+"Längden på den snabba retraktionen efter avtorkning, i förhållande till retraktionslängden.\n"
+"Värdet begränsas till 100 % minus värdet för retraktionsmängd före avtorkning."
msgid "Retract on layer change"
msgstr "Retraktera vid lager byte"
@@ -19125,11 +20391,11 @@ msgstr "Retraktions längd"
# AI Translated
msgid "Some amount of material in extruder is pulled back to avoid ooze during long travel. Set zero to disable retraction."
-msgstr "En viss mängd material i extrudern dras tillbaka för att undvika dropp under långa flyttar. Sätt till noll för att avaktivera reduktion."
+msgstr "En viss mängd material i extrudern dras tillbaka för att undvika dropp under långa flyttar. Sätt till noll för att avaktivera retraktion."
# AI Translated
msgid "Long retraction when cut (beta)"
-msgstr "Lång reduktion vid kapning (beta)"
+msgstr "Lång retraktion vid kapning (beta)"
# AI Translated
msgid "Experimental feature: Retracting and cutting off the filament at a longer distance during changes to minimize purge. While this reduces flush significantly, it may also raise the risk of nozzle clogs or other printing problems."
@@ -19137,27 +20403,27 @@ msgstr "Experimentell funktion: Filamentet dras tillbaka och kapas på ett läng
# AI Translated
msgid "Retraction distance when cut"
-msgstr "Reduktionssträcka vid kapning"
+msgstr "Retraktionssträcka vid kapning"
# AI Translated
msgid "Experimental feature: Retraction length before cutting off during filament change."
-msgstr "Experimentell funktion: Reduktionslängd före kapning vid filamentbyte."
+msgstr "Experimentell funktion: Retraktionslängd före kapning vid filamentbyte."
# AI Translated
msgid "Long retraction when extruder change"
-msgstr "Lång reduktion vid extruderbyte"
+msgstr "Lång retraktion vid extruderbyte"
# AI Translated
msgid "Retraction distance when extruder change"
-msgstr "Reduktionssträcka vid extruderbyte"
+msgstr "Retraktionssträcka vid extruderbyte"
# AI Translated
msgid "Retraction Length (Toolchange)"
-msgstr "Reduktionslängd (Verktygsbyte)"
+msgstr "Retraktionslängd (Verktygsbyte)"
# AI Translated
msgid "When retraction is triggered before changing tool, filament is pulled back by the specified amount (the length is measured on raw filament, before it enters the extruder)."
-msgstr "När reduktionen utlöses före ett verktygsbyte dras filamentet tillbaka med den angivna mängden (längden mäts på det obearbetade filamentet, innan det når extrudern)."
+msgstr "När retraktionen utlöses före ett verktygsbyte dras filamentet tillbaka med den angivna mängden (längden mäts på det obearbetade filamentet, innan det når extrudern)."
# AI Translated
msgid "Z-hop height"
@@ -19276,7 +20542,7 @@ msgstr "Extra längd vid omstart"
# AI Translated
msgid "When the retraction is compensated after the travel move, the extruder will push this additional amount of filament. This setting is rarely needed."
-msgstr "När reduktionen kompenseras efter flyttrörelsen trycker extrudern fram den här extra mängden filament. Den här inställningen behövs sällan."
+msgstr "När retraktionen kompenseras efter flyttrörelsen trycker extrudern fram den här extra mängden filament. Den här inställningen behövs sällan."
# AI Translated
msgid "Extra length on restart (Toolchange)"
@@ -19284,7 +20550,7 @@ msgstr "Extra längd vid omstart (Verktygsbyte)"
# AI Translated
msgid "When the retraction is compensated after changing tool, the extruder will push this additional amount of filament."
-msgstr "När reduktionen kompenseras efter verktygsbyte trycker extrudern fram den här extra mängden filament."
+msgstr "När retraktionen kompenseras efter verktygsbyte trycker extrudern fram den här extra mängden filament."
msgid "Retraction speed"
msgstr "Retraktions hastighet"
@@ -19298,11 +20564,11 @@ msgstr "Åter retraktions hastighet"
# AI Translated
msgid "Speed for reloading filament into the nozzle. Zero means same speed of retraction."
-msgstr "Hastighet för att mata tillbaka filament in i nozzeln. Noll innebär samma hastighet som reduktionen."
+msgstr "Hastighet för att mata tillbaka filament in i nozzeln. Noll innebär samma hastighet som retraktionen."
# AI Translated
msgid "Deretraction speed (extruder change)"
-msgstr "Dereduktionshastighet (extruderbyte)"
+msgstr "Deretraktionshastighet (extruderbyte)"
# AI Translated
msgid "Speed for reloading filament into the nozzle when switching extruder."
@@ -19313,7 +20579,7 @@ msgstr "Använd firmware retraktion"
# AI Translated
msgid "This experimental setting uses G10 and G11 commands to have the firmware handle the retraction. This is only supported in recent Marlin."
-msgstr "Den här experimentella inställningen använder kommandona G10 och G11 så att den fasta programvaran hanterar reduktionen. Det stöds endast i nyare Marlin."
+msgstr "Den här experimentella inställningen använder kommandona G10 och G11 så att den fasta programvaran hanterar retraktionen. Det stöds endast i nyare Marlin."
# AI Translated
msgid "Show auto-calibration marks"
@@ -19466,7 +20732,7 @@ msgid "Use scarf joint for inner walls as well."
msgstr "Använd snedskarv även för innerväggar."
# AI Translated
-msgid "Role base wipe speed"
+msgid "Role based wipe speed"
msgstr "Avtorkningshastighet efter extruderingstyp"
# AI Translated
@@ -19524,9 +20790,9 @@ msgid ""
"\n"
"This is useful when printing with Outer/Inner or Inner/Outer/Inner wall print order as in these modes it is more likely an external perimeter is printed immediately after a de-retraction move."
msgstr ""
-"För att minimera synligheten av eventuell överextrudering i början av en ytterperimeter vid utskrift med väggordningen Yttre/Inre eller Inre/Yttre/Inre görs dereduktionen en liten bit på insidan om ytterperimeterns startpunkt. På så sätt döljs eventuell överextrudering från den yttre ytan.\n"
+"För att minimera synligheten av eventuell överextrudering i början av en ytterperimeter vid utskrift med väggordningen Yttre/Inre eller Inre/Yttre/Inre görs deretraktionen en liten bit på insidan om ytterperimeterns startpunkt. På så sätt döljs eventuell överextrudering från den yttre ytan.\n"
"\n"
-"Detta är användbart vid utskrift med väggordningen Yttre/Inre eller Inre/Yttre/Inre, eftersom det i dessa lägen är mer sannolikt att en ytterperimeter skrivs ut direkt efter en dereduktionsrörelse."
+"Detta är användbart vid utskrift med väggordningen Yttre/Inre eller Inre/Yttre/Inre, eftersom det i dessa lägen är mer sannolikt att en ytterperimeter skrivs ut direkt efter en deretraktionsrörelse."
msgid "Wipe speed"
msgstr "Hastighet för avtorkning"
@@ -19570,13 +20836,11 @@ msgstr "Dragskydd"
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"Ett dragskydd är användbart för att skydda en ABS- eller ASA-utskrift från att slå sig och lossna från byggplattan på grund av luftdrag. Det behövs oftast bara med öppna skrivare, det vill säga utan kåpa.\n"
"\n"
-"Aktiverat = skirten är lika hög som det högsta utskrivna objektet. Annars används 'Skirt-höjd'.\n"
-"Obs! Med dragskyddet aktivt skrivs skirten ut på skirt-avstånd från objektet. Om brim är aktiverat kan den därför skära in i det. Öka värdet för skirt-avstånd för att undvika detta.\n"
+"Aktiverat = skirten är lika hög som det högsta utskrivna objektet. Annars används 'Skirt höjd'."
# AI Translated
msgid "Enabled"
@@ -19772,6 +21036,130 @@ msgstr "Multimaterial med en extruder"
msgid "Use single nozzle to print multi filament."
msgstr "Använd en enda nozzel för att skriva ut med flera filament."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "IDEX/IQEX-skrivare"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Aktivera parallellutskrift för skrivare med flera oberoende vagnar (IDEX, IQEX och liknande)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Zoner hanterade av fast programvara"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "När detta är aktiverat genererar beredningsprogrammet G-code med den primära zonens innehåll centrerat kring byggplattans origo (0,0). Skrivarens fasta programvara ansvarar för att placera kopior/speglingar på varje fysisk zonposition. Aktivera endast på skrivare vars fasta programvara tillämpar egna zonförskjutningar i läget Kopia/Spegel (t.ex. dupliceringsläget för IDEX i RepRapFirmware). Har ingen effekt i läget Primär."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Antal portaler"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Antal oberoende portaler i Y-axeln. 1 för IDEX/IQEX med en skena. 2 för system med dubbla portaler (delar byggplattan i rader)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Verktyg per portal"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Antal oberoende verktygshuvuden per portal längs X. 2 för IDEX-typ."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Position för verktyg 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Fysisk position på byggplattan där verktyget T0 (index 0) finns. Bestämmer hur verktygsindex mappas till zoner på byggplattan. För uppställningar med en portal (IDEX) spelar bara vänster/höger roll; för uppställningar med dubbla portaler (IQEX) kan alla fyra hörnen väljas (främre = lägre Y / nära operatören, bakre = högre Y / maskinens baksida)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Nozzelfrigång X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Avstånd (mm) från nozzeln till vagnens kant på kollisionssidan i X. Används för att beräkna bredden på den spärrade kollisionsremsan vid varje X-gräns."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Nozzelfrigång Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Avstånd (mm) från nozzeln till vagnens kant på kollisionssidan i Y. Används för att beräkna bredden på den spärrade kollisionsremsan vid varje Y-gräns."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Säkerhetsmarginal"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Icke-blockerande, rådgivande frigångsremsa (mm) som ritas inuti den primära zonen vid varje vagngräns. Delar som placeras inom remsan bereds ändå; den är en visuell påminnelse om att lämna extra frigång nära zonens kant."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Visualiseringstema"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Färgtema för visualisering av IDEX/IQEX-zonerna på byggplattan. Välj vid behov ett tema anpassat för färgblindhet."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Deuteranopi / Protanopi (röd-grön)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopi (blå-gul)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Hög kontrast"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "IDEX/IQEX-utskriftsläge"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Namnet på det aktiva parallella IDEX/IQEX-utskriftsläget, eller \"primary\" för utskrift med en vagn. Kräver att IDEX/IQEX-skrivare är aktiverat i skrivarförinställningen (Skrivare → Multimaterial → IDEX/IQEX-konfiguration)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "IDEX/IQEX-filamentkarta för huvuden"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Åsidosättning per platta som mappar fysiska huvuden till filamentplatser (1-baserade). Tomt innebär att varje huvud använder det första filament som skrivarens fysiska extrudermappning dirigerar till det."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "Namn på IDEX/IQEX-lägen"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Visningsnamn för varje användardefinierat parallellt IDEX/IQEX-utskriftsläge."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Aktiva verktyg för IDEX/IQEX-lägen"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Verktygens rolltilldelning för varje läge. Format: \"idx:P,idx:C,idx:M\" där P=Primär (Primary), C=Kopia (Copy), M=Spegel (Mirror) (t.ex. \"0:P,1:C,2:M,3:M\"). Hanteras av redigeraren för IDEX/IQEX-lägen i skrivarförinställningen."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-code för IDEX/IQEX-lägen"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code eller makroanrop som infogas vid utskriftsstart för varje läge."
+
# AI Translated
msgid "Manual Filament Change"
msgstr "Manuellt filamentbyte"
@@ -20179,6 +21567,167 @@ msgstr "Tröskel för överlappning"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Om tröskelvinkeln är noll genereras stöd för överhäng vars överlappning är under tröskeln. Ju mindre detta värde är, desto brantare är det överhäng som kan skrivas ut utan stöd."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Byggplattans lutning X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Byggplattans lutningsvinkel längs X-axeln. Ett positivt värde lutar byggplattan så att +X-sidan är högre, vilket förskjuter tyngdkraften mot -X och ökar överhängen på +X-sidan. Ett negativt värde gör -X-sidan högre. Sätt till 0 för ingen lutning i X-axeln. I bandskrivarläget synkroniseras detta automatiskt med bandets vinkel."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Byggplattans lutning Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Byggplattans lutningsvinkel längs Y-axeln. Ett positivt värde lutar byggplattan så att +Y-sidan är högre, vilket förskjuter tyngdkraften mot -Y och ökar överhängen på +Y-sidan. Ett negativt värde gör -Y-sidan högre. Sätt till 0 för ingen lutning i Y-axeln."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Aktivera bandutskrift"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Aktivera bandskrivarläge. Bandskrivare använder ett transportband som byggyta, lutat i en vinkel (vanligtvis 45 grader). Beredningsprogrammet roterar beredningsplanet och transformerar G-code-koordinaterna för den lutande byggytan."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Oändlig Y-axel"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Aktivera oändlig Y-axel för bandskrivare. När detta är aktiverat tas byggvolymens gräns i Y-axeln i praktiken bort, så att objekt av valfri längd kan skrivas ut i bandets riktning."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Bandets lutningsaxel"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Axeln som meshen roteras kring före beredning. Detta är bandskrivarens lutning: en isometrisk (förvrängningsfri) rotation som även styr renderingen av byggplattan och tyngdkraftslutningen för support, och som G-code-baktransformationen inverterar före skjuvningen/skalningen och ommappningen till maskinkoordinatsystemet. X är den typiska portallutningen (bandet rör sig längs Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Bandets lutningsvinkel"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Bandytans lutningsvinkel i grader. De flesta bandskrivare använder 45°. Positiva värden roterar moturs sett längs den positiva lutningsaxeln; storleken är också den fysiska bandlutning som används för renderingen av byggplattan och tyngdkraften för support."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Frikoppla lutningen för maskinkoordinatsystemet"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Expertinställning: ange lutningsvinkeln för maskinkoordinatsystemet (G-code-skjuvning/skalning) oberoende av rotationsvinkeln före beredning. När detta är inaktiverat härleds transformationen till maskinkoordinatsystemet från bandets lutningsvinkel, så att en enda vinkel styr båda stegen. Aktivera endast för att kompensera för en maskin vars fysiska portallutning skiljer sig från beredningsrotationen."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Lutningsvinkel för maskinkoordinatsystemet"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Lutningsvinkel (grader) som används för att härleda skjuvningen (cot) och skalningen (1/|sin|) för maskinkoordinatsystemet som tillämpas på G-code. Används endast när 'Frikoppla lutningen för maskinkoordinatsystemet' är aktiverat; annars används bandets lutningsvinkel."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "Omvänd X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Omvänd Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Omvänd Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "G-code-ommappning X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Vilken beredningsaxel som mappas till maskinens X i G-code-utdata. Tillämpas EFTER beredningen, under genereringen av G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "G-code-ommappning Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Vilken beredningsaxel som mappas till maskinens Y i G-code-utdata. Tillämpas EFTER beredningen, under genereringen av G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "G-code-ommappning Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Vilken beredningsaxel som mappas till maskinens Z i G-code-utdata. Tillämpas EFTER beredningen, under genereringen av G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Z-förskjutning för supportgolv"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Flyttar det beräknade bandgolvet uppåt eller nedåt (mm). Negativa värden sänker golvet, så att mer support blir kvar. Använd detta för att felsöka problem med bandgolvsformeln."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Aktivera bandrensningstorn"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Bandskrivarens ersättning för prime tornet. När detta är aktiverat på en bandskrivare genereras automatiskt ett rensningsprisma bredvid de utskrivna delarna och rensningen vid filamentbyten leds dit (det klassiska prime tornet kan inte användas på bandskrivare eftersom dess G-code går förbi bandtransformationen). Endast tillgängligt på bandskrivare."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Bandrensningstornets bredd"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Bredd (maskinens X, tvärs över bandet) för rensningsprismat som genereras automatiskt på bandskrivare när bandrensningstornet är aktiverat och flera filament används. Rensningen vid filamentbyten leds in i prismats extruderingar i stället för till ett klassiskt prime torn. Dess höjd beräknas automatiskt utifrån den största rensningsvolymen per lager: ett bredare prisma blir lägre."
+
msgid "Tree support branch angle"
msgstr "Tree support grenarnas vinkel"
@@ -20386,13 +21935,11 @@ msgstr "Separerade ifyllnader"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"Centrerar varje dels inre ifyllnad på sig själv, som om den bereddes ensam, i stället för på hela sammansättningen. Delar som rör vid eller överlappar varandra behandlas som en kropp och delar mittpunkt; separata delar (eller distinkta 3D-objekt) får var sin.\n"
-"Användbart när en sammansättning grupperar flera objekt som var och ett ska behålla en konsekvent, självcentrerad ifyllnad.\n"
-"Påverkar linje- och rutnätsmönster samt ifyllnader med rotationsmall.\n"
-"Mönster som är låsta till globala koordinater (Gyroid, Bikaka, TPMS, ...) påverkas inte."
+"Centrerar den inre ifyllnaden för varje del på sig själv, som om den bereddes separat, i stället för på hela monteringen. Delar som rör vid eller överlappar varandra behandlas som en enhet och delar på ett centrum; separata delar (eller skilda 3D-objekt) får var sitt.\n"
+"Användbart när en montering grupperar flera objekt som vart och ett ska behålla en konsekvent, självcentrerad ifyllnad.\n"
+"Adaptiv Cubic och Kubik Support centrerar alltid varje del på sig själv, och Blixt-ifyllnad genereras för hela objektet och påverkas inte."
# AI Translated
msgid "Center surface pattern on"
@@ -20442,11 +21989,11 @@ msgid ""
"\n"
"Setting a value in the retract amount before wipe setting below will perform any excess retraction before the wipe, else it will be performed after."
msgstr ""
-"Beskriver hur långt nozzeln flyttas längs den sista banan vid reduktion.\n"
+"Beskriver hur långt nozzeln flyttas längs den sista banan vid retraktion.\n"
"\n"
-"Beroende på hur länge avtorkningen pågår och hur snabba och långa inställningarna för extruder-/filamentreduktion är, kan en reduktionsrörelse behövas för att dra tillbaka det återstående filamentet.\n"
+"Beroende på hur länge avtorkningen pågår och hur snabba och långa inställningarna för extruder-/filamentretraktion är, kan en retraktionsrörelse behövas för att dra tillbaka det återstående filamentet.\n"
"\n"
-"Om du anger ett värde i inställningen reduktionsmängd före avtorkning nedan utförs eventuell överskjutande reduktion före avtorkningen, annars utförs den efteråt."
+"Om du anger ett värde i inställningen retraktionsmängd före avtorkning nedan utförs eventuell överskjutande retraktion före avtorkningen, annars utförs den efteråt."
# AI Translated
msgid "Mixed color sublayer"
@@ -20537,23 +22084,23 @@ msgstr "Maximal utskriftshastighet för prime tornet"
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
"Den maximala utskriftshastigheten vid rensning i prime tornet och vid utskrift av tornets glesa lager. Vid rensning används den lägsta av hastigheten för sparsam ifyllnad och den hastighet som beräknas från filamentets max volymetriska hastighet, om någon av dem är lägre.\n"
"\n"
-"Vid utskrift av de glesa lagren används den lägsta av innerperimeterns hastighet och den hastighet som beräknas från filamentets max volymetriska hastighet, om någon av dem är lägre.\n"
+"Vid utskrift av de glesa lagren används den lägsta av hastigheten för sparsam ifyllnad och den hastighet som beräknas från filamentets max volymetriska hastighet, om någon av dem är lägre.\n"
"\n"
"Om du ökar hastigheten kan tornets stabilitet påverkas, liksom kraften med vilken nozzeln kolliderar med eventuella klumpar som bildats på prime tornet.\n"
"\n"
"Innan du ökar parametern över standardvärdet 90 mm/s bör du kontrollera att din skrivare klarar bridging tillförlitligt vid de högre hastigheterna och att dropp vid verktygsbyten är väl kontrollerat.\n"
"\n"
-"För prime tornets ytterperimetrar används innerperimeterns hastighet oavsett den här inställningen."
+"För prime tornets ytterperimetrar används innerperimeterns hastighet, även den begränsad av den här inställningen."
# AI Translated
msgid "Wall type"
@@ -20562,14 +22109,14 @@ msgstr "Väggtyp"
# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
-"Yttervägg för prime tornet.\n"
-"1. Rektangel: Standardväggtypen, en rektangel med fast bredd och höjd.\n"
+"Typ av yttre vägg för prime tornet.\n"
+"1. Rektangel: En rektangel med fast bredd och höjd.\n"
"2. Kon: En kon med en rundning nedtill som hjälper till att stabilisera prime tornet.\n"
-"3. Ribba: Lägger till fyra ribbor på tornets vägg för ökad stabilitet."
+"3. Ribba: Standardväggtypen, som lägger till fyra ribbor på tornets vägg för ökad stabilitet."
msgid "Rectangle"
msgstr "Rektangel"
@@ -20655,6 +22202,14 @@ msgstr "Rensning efter filamentbyte kommer att göras inuti objektens support. D
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Det här objektet används för att rensa nozzeln efter ett filamentbyte för att spara filament och minska utskriftstiden. Färgerna i objekten kommer att blandas som ett resultat. Det kommer inte att få effekt om inte prime tower är aktiverat."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Objekt för bandrensningstorn"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Markerar det automatiskt genererade rensningsprismat för bandet. Hanteras automatiskt; ställ inte in manuellt."
+
# AI Translated
msgid "Maximal bridging distance"
msgstr "Maximalt bridging-avstånd"
@@ -20676,8 +22231,8 @@ msgid "Extra flow for purging"
msgstr "Extra flöde för rensning"
# AI Translated
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Extra flöde som används för rensningslinjerna på prime tornet. Det gör rensningslinjerna tjockare eller smalare än de normalt skulle vara. Avståndet justeras automatiskt."
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Extra flöde som används för rensningslinjerna på prime tornet. Det gör rensningslinjerna tjockare än de normalt skulle vara. Avståndet justeras automatiskt."
# AI Translated
msgid "Idle temperature"
@@ -20812,13 +22367,13 @@ msgstr "Minsta vägglängd"
# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Justera det här värdet för att förhindra att korta, oslutna väggar skrivs ut, vilket kan öka utskriftstiden. Högre värden tar bort fler och längre väggar.\n"
+"Justera det här värdet för att förhindra att korta, oslutna väggar skrivs ut, vilket kan öka utskriftstiden. Värdet är en multipel av väggbredden. Högre värden tar bort fler och längre väggar.\n"
"\n"
-"OBS! Undersidor och ovansidor påverkas inte av värdet, för att undvika synliga gap på modellens utsida. Justera 'Tröskel för en vägg' i de avancerade inställningarna nedan för att ändra känsligheten för vad som räknas som en ovansida. 'Tröskel för en vägg' visas bara om den här inställningen är satt över standardvärdet 0,5, eller om ovansidor med en vägg är aktiverat."
+"OBS! Undersidor och ovansidor påverkas inte av värdet, för att undvika synliga gap på modellens utsida. Justera 'Tröskel för en vägg' i inställningarna 'Väggar och ytor' nedan för att ändra känsligheten för vad som räknas som en ovansida. 'Tröskel för en vägg' visas bara om den här inställningen är satt över standardvärdet 0,5, eller om ovansidor med en vägg är aktiverade."
# AI Translated
msgid "Maximum wall resolution"
@@ -20833,7 +22388,7 @@ msgid "Maximum wall deviation"
msgstr "Maximal väggavvikelse"
# AI Translated
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
msgstr "Den största avvikelse som tillåts när upplösningen minskas för inställningen 'Maximal väggupplösning'. Om du ökar den blir utskriften mindre exakt, men G-code:n blir mindre. 'Maximal väggavvikelse' begränsar 'Maximal väggupplösning', så om de två står i konflikt har 'Maximal väggavvikelse' företräde."
# AI Translated
@@ -20930,8 +22485,11 @@ msgstr "Bridge-linjebredden får inte överstiga nozzeldiametern: "
msgid "too large line width "
msgstr "för stor linjebredd "
-msgid " not in range "
-msgstr " inte inom intervallet "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% ligger utanför intervallet [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Exportera projekt som 3MF."
@@ -21092,6 +22650,14 @@ msgstr "Orienteringsalternativ"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Orienteringsalternativ: 0-avaktivera, 1-aktivera, andra-auto"
+# AI Translated
+msgid "Repair"
+msgstr "Reparera"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Reparerar modellernas meshar på samma sätt som \"Fixa modell\": stänger hål och sprickor, riktar dem utåt och tar bort självkorsningar."
+
# AI Translated
msgid "Rotation angle around the Z axis in degrees."
msgstr "Rotationsvinkel kring Z-axeln i grader."
@@ -21218,6 +22784,12 @@ msgstr "Mata ut katalog"
msgid "This is the output directory for exported files."
msgstr "Mata ut katalogen för exporterade filer."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Felsökningsnivå"
@@ -21350,15 +22922,15 @@ msgstr "Extruderns position i början av det anpassade G-code-blocket. Om den an
# AI Translated
msgid "Retraction state at the beginning of the custom G-code block. If the custom G-code moves the extruder axis, it should write to this variable so OrcaSlicer de-retracts correctly when it gets control back."
-msgstr "Reduktionstillstånd i början av det anpassade G-code-blocket. Om den anpassade G-code:n rör extruderaxeln bör den skriva till den här variabeln, så att OrcaSlicer dereducerar korrekt när kontrollen återlämnas."
+msgstr "Retraktionstillstånd i början av det anpassade G-code-blocket. Om den anpassade G-code:n rör extruderaxeln bör den skriva till den här variabeln, så att OrcaSlicer deretrakterar korrekt när kontrollen återlämnas."
# AI Translated
msgid "Extra de-retraction"
-msgstr "Extra dereduktion"
+msgstr "Extra deretraktion"
# AI Translated
msgid "Currently planned extra extruder priming after de-retraction."
-msgstr "Aktuellt planerad extra priming av extrudern efter dereduktion."
+msgstr "Aktuellt planerad extra priming av extrudern efter deretraktion."
# AI Translated
msgid "Absolute E position"
@@ -21432,6 +23004,56 @@ msgstr "Har MM-priming med en extruder"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Används de extra primingområdena för multimaterial i den här utskriften?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Första extruder utan support"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Nollbaserat index för den första extrudern som används vid utskrift utan support. Samma som initial_no_support_tool."
+
+# AI Translated
+# Needs human review: Bambu 'head wrap' (filament wrapping around the toolhead); check the term in the G-code placeholder docs.
+msgid "In head wrap detect zone"
+msgstr "I detekteringszonen för huvudomslag"
+
+# AI Translated
+# Needs human review: Bambu 'head wrap' (filament wrapping around the toolhead); check the term in the G-code placeholder docs.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Anger om det första lagret överlappar zonen för huvudomslag."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Aktuell typ av byggplatta"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Namnet på den för närvarande valda typen av byggplatta (t.ex. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Aktivt IDEX/IQEX-läge"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Namnet på det aktiva parallella IDEX/IQEX-utskriftsläget för den här plattan (t.ex. 'primary', 'mirror', 'copy'). Tom sträng om IDEX/IQEX inte är aktiverat."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Index för aktivt IDEX/IQEX-läge"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Nollbaserat index för det aktiva parallella IDEX/IQEX-utskriftsläget i imex_mode_names."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code för aktivt IDEX/IQEX-läge"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Den råa G-code-mallen för det aktiva parallella IDEX/IQEX-utskriftsläget, efter utvärdering av platshållare. Globala variabler som definieras här förs vidare till machine_start_gcode."
+
# AI Translated
msgid "Volume per extruder"
msgstr "Volym per extruder"
@@ -21611,6 +23233,18 @@ msgstr "Indatafilnamn utan filändelse"
msgid "Source filename of the first object, without extension."
msgstr "Källfilnamn för det första objektet, utan filändelse."
+# AI Translated
+msgid "Full input filename"
+msgstr "Fullständigt namn på indatafilen"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Källfilnamn för det första objektet."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Namnet på plattan som bereds."
+
# AI Translated
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Vektorn har två element: punktens X- och Y-koordinat. Värden i mm."
@@ -21651,6 +23285,58 @@ msgstr "Övre högra hörnet av byggplattans begränsningsruta"
msgid "Size of the print bed bounding box"
msgstr "Storlek på byggplattans begränsningsruta"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Första lagrets centrum utan prime torn"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Höjden på det första lagret."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Vektor med byggplattans temperaturer för varje extruder/filament."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Vektor med byggplattans temperaturer för första lagret för varje extruder/filament. Ger samma värde som first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Byggplattans temperatur för första lagret (första extruder)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Byggplattans temperatur för första lagret för den första extrudern. Samma som bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Vektor med kammarens temperaturer för varje extruder/filament."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Vektor med kammarens minimitemperaturer för varje extruder/filament."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Kammarens totala temperatur"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Kammarens totala temperatur. Värdet är den högsta kammartemperaturen för någon använd extruder/filament."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Vektor med byggplattans temperaturer för första lagret för varje extruder/filament. Ger samma värde som bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Temperatur för första lagret"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Vektor med temperaturer för första lagret för varje extruder/filament."
+
# AI Translated
msgid "Timestamp"
msgstr "Tidsstämpel"
@@ -21711,8 +23397,8 @@ msgid "Layer number"
msgstr "Lagernummer"
# AI Translated
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Det aktuella lagrets index. Ettbaserat (alltså är första lagret nummer 1)."
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Index för det aktuella lagret. Nollbaserat (dvs. första lagret har nummer 0), utom i G-code för byte av extruderingstyp, där det är ettbaserat."
# AI Translated
msgid "Layer Z"
@@ -21738,6 +23424,252 @@ msgstr "Filamentets extruder-ID"
msgid "The current extruder ID. The same as current_extruder."
msgstr "Det aktuella extruder-ID:t. Samma som current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Föregående extruder"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Index för extrudern som lastas ur. Indexet är nollbaserat (första extrudern har index 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Nästa extruder"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Index för extrudern som lastas in. Indexet är nollbaserat (första extrudern har index 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Relativ E-axel"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Anger om relativ positionering används."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Antal verktygsbyten"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "Antalet verktygsbyten under hela utskriften."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Gammal retraktionslängd"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Retraktionslängden för det föregående filamentet."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Ny retraktionslängd"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Retraktionslängden för det nya filamentet."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Gammal retraktionslängd vid verktygsbyte"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Retraktionslängden vid verktygsbyte för det föregående filamentet."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Ny retraktionslängd vid verktygsbyte"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "Retraktionslängden vid verktygsbyte för det nya filamentet."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Gammal filamenttemperatur"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "Det gamla filamentets temperatur."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Ny filamenttemperatur"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "Det nya filamentets temperatur."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X efter verktygsbyte"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "X-positionen efter verktygsbyte."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y efter verktygsbyte"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "Y-positionen efter verktygsbyte."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z efter verktygsbyte"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "Z-positionen efter verktygsbyte."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Första rensningsvolym"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Den första rensningsvolymen."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Andra rensningsvolym"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Den andra rensningsvolymen."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Gammalt filaments E-matningshastighet"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "Det gamla filamentets extrudermatningshastighet."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Nytt filaments E-matningshastighet"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "Det nya filamentets extrudermatningshastighet."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Flyttpunkt 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "X-koordinat för flyttpunkt 1."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Flyttpunkt 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Y-koordinat för flyttpunkt 1."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Flyttpunkt 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "X-koordinat för flyttpunkt 2."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Flyttpunkt 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Y-koordinat för flyttpunkt 2."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Flyttpunkt 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "X-koordinat för flyttpunkt 3."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Flyttpunkt 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Y-koordinat för flyttpunkt 3."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Rensningslängd 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "Den första rensningslängden."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Rensningslängd 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "Den andra rensningslängden."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Rensningslängd 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "Den tredje rensningslängden."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Rensningslängd 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "Den fjärde rensningslängden."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Extruderingstyp"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Den nya extruderingstypen som kommer att användas\n"
+"Möjliga värden:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Senaste extruderingstyp"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Den tidigare använda extruderingstypen\n"
+"Möjliga värden:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Fel i zip arkiv"
@@ -21750,24 +23682,32 @@ msgstr "Skapa ifyllnads område"
msgid "Generating infill toolpath"
msgstr "Skapa ifyllnadens verktygsbana"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z-konturerat lager %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Identifiera överhäng för automatisk lyftning"
msgid "Checking support necessity"
msgstr "Kontrollera supportens nödvändighet"
-msgid "floating regions"
-msgstr "flytande regioner"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Det verkar som om objektet %1% har svävande områden. Vänligen orientera om objektet eller aktivera supportgenerering."
-msgid "floating cantilever"
-msgstr "flytande konsol"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Det verkar som om objektet %1% har en svävande utkragning. Vänligen orientera om objektet eller aktivera supportgenerering."
-msgid "large overhangs"
-msgstr "stora överhäng"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Det verkar som om objektet %s har %s. Vänligen orientera om objektet eller aktivera supportgenerering."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Det verkar som om objektet %1% har stora överhäng. Vänligen orientera om objektet eller aktivera supportgenerering."
msgid "Generating support"
msgstr "Skapa support"
@@ -21778,8 +23718,9 @@ msgstr "Optimerar verktygsbanan"
msgid "Slicing mesh"
msgstr "Bereder mesh"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Inga lager upptäcktes. Du kanske vill reparera din(a) STL-fil(er) eller kontrollera deras storlek eller tjocklek och försöka igen.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Inga lager upptäcktes. Du kanske vill reparera modellen eller kontrollera dess storlek eller tjocklek och försöka igen.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -21800,6 +23741,398 @@ msgstr ""
msgid "Object name"
msgstr "Objektnamn"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Kan inte tillämpa den unära minusoperatorn."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Kan inte konvertera till heltal."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Kan inte avrunda ett icke-numeriskt värde."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Kan inte avrunda nedåt ett icke-numeriskt värde."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Kan inte avrunda uppåt ett icke-numeriskt värde."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Kan inte tillämpa en not-operator."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Kan inte addera icke-numeriska typer."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Kan inte subtrahera icke-numeriska typer."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Kan inte multiplicera med en icke-numerisk typ."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Kan inte dividera en icke-numerisk typ."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Kan inte dividera med en icke-numerisk typ."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Division med noll"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Inte ett booleskt uttryck"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Kan inte jämföra typerna."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Inte en numerisk typ."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: den andra parametern måste vara ett heltal"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: den tredje parametern måste vara ett heltal"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Vänstra sidan av en regex-matchning måste vara en sträng."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Kompileringen av det reguljära uttrycket misslyckades: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "Den första parametern till regex_replace() måste vara en sträng."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): Den första parametern (strängen att matcha mot) måste vara ett strängvärde"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): Mönstret måste vara ett strängvärde"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Kompileringen av det reguljära uttrycket misslyckades"
+
+# AI Translated
+# Needs human review: English says 'non-boolean operators' but means operands; translated as 'operander'. Check the source wording.
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Kan inte tillämpa logisk operation på icke-booleska operander."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Försöker indexera en skalär variabel"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Ogiltigt vektorindex"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "Variabeln finns inte (i en inaktiv gren)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "Variabeln finns inte"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Försöker referera till en odefinierad (nil) valfri variabel"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Indexering av en tom vektorvariabel"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Försöker referera till ett odefinierat (nil) element i en vektor med valfria värden"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "Indexvariabeln måste vara ett heltal"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Negativt vektorindex"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Inte ett variabelnamn"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Inte ett variabelnamn (i en inaktiv gren)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "FloatOrPercent-variabeln kunde inte lösa beroendena för \"ratio_over\""
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Skalär variabeltyp stöds inte"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Refererar till en vektorvariabel där en skalär förväntas"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Vektorbaserad variabeltyp stöds inte"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Kan inte ändra en skrivskyddad variabel"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Högra sidan är inte ett numeriskt uttryck"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Förväntade ett antal element att fylla en vektor med."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Ett negativt antal element angavs."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Högra sidan är inte ett booleskt uttryck"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Skalär utdatavariabeltyp stöds inte"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Refererar till en utdatavektorvariabel där en skalär förväntas"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Index utanför intervallet"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Vektorbaserad utdatavariabeltyp stöds inte"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Symbolen är redan definierad i den skrivskyddade systemordlistan"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Symbolen är redan definierad som systemets utdatavariabel"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Globala variabler är inte tillgängliga i det här sammanhanget"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Variabelnamnet är redan definierat i lokalt scope"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Variabelnamnet är redan definierat i globalt scope"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Kan inte tilldela ett skalärt värde till en vektorvariabel."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Kan inte tilldela ett vektorvärde till en skalär variabel."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Kan inte skapa en vektorvariabel från en tom initieringslista, eftersom dess typ inte kan härledas."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Högra sidan är ogiltig: Numeriska och booleska typer blandas."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Kan inte tilldela en skalär till en vektor"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Vissa element i vektorvariabeln med valfria värden på högra sidan är odefinierade (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Vänstra sidan är en flyttalsvektor, medan högra sidan inte är det."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Vänstra sidan är en heltalsvektor, medan högra sidan inte är det."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Vänstra sidan är en strängvektor, medan högra sidan inte är det."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Vänstra sidan är en boolesk vektor, medan högra sidan inte är det."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Vektorerna på vänstra och högra sidan är inte kompatibla."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Duplicering av den här typen av vektorvariabel stöds inte"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "parametern till empty() är inte en vektorvariabel"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "parametern till size() är inte en vektorvariabel"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Ett index som inte är ett heltal är inte tillåtet för att adressera en vektorvariabel."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Slumptalsgeneratorn är inte tillgänglig i det här sammanhanget."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Tolkningsfel på rad %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Tolkningsfel på rad %1%. Förväntade tagg %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Tolkningsfel på rad %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "Interpolationsvärdet måste vara ett tal."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "X-värdet för en tabellpunkt måste vara ett tal."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "Y-värdet för en tabellpunkt måste vara ett tal."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Tabellens X-koordinater måste vara stigande"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "Interpolationsvärdet ligger utanför tabellens intervall"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Okänt syntaxfel"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Ogiltig text."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Ogiltigt textblock."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Ogiltigt makro."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Inte ett {if}{else}{endif}-makro."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Inte ett {switch}-makro."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Förväntade ett äldre format för variabelexpansion"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Förväntade en identifierare."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Förväntade ett villkorsuttryck."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Förväntade ett booleskt uttryck."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Förväntade ett uttryck."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Förväntade en avslutande klammer eller en valfri parameter."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Förväntade en lista med strängmönster (enkel text eller regex)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Förväntade en variabelreferens."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Förväntade ett variabelnamn."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Förväntade ett reguljärt uttryck."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Ogiltig utf8-sekvens"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Tecken utanför ASCII7 är endast tillåtna i textblock och strängliteraler, inte i kodblock."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Ogiltig escape-sekvens"
+
msgid "Support: generate contact points"
msgstr "Support: generera kontaktpunkter"
@@ -21817,6 +24150,10 @@ msgstr "Den medföljande filen kunde inte läsas eftersom den är tom."
msgid "The file format is incompatible and cannot be parsed."
msgstr "Filformatet är inkompatibelt och kan inte tolkas."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Det gick inte att konvertera resursen till STL via ModelIO."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Okänt filformat: indata filen måste ha tillägget .stl, .obj eller .amf(.xml)."
@@ -21867,9 +24204,6 @@ msgstr "Omkalibrering"
msgid "Calibrate"
msgstr "Kalibrera"
-msgid "Finish"
-msgstr "Slutför"
-
msgid "How can I use calibration results?"
msgstr "Hur kan jag använda kalibreringsresultaten?"
@@ -21970,8 +24304,10 @@ msgstr ""
# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Den här maskintypen kan bara lagra %d historiska resultat per nozzel. Det här resultatet kommer inte att sparas."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Den här maskintypen kan bara lagra %d historiskt resultat per nozzel. Det här resultatet kommer inte att sparas."
+msgstr[1] "Den här maskintypen kan bara lagra %d historiska resultat per nozzel. Det här resultatet kommer inte att sparas."
msgid "Connecting to printer..."
msgstr "Ansluter till skrivaren..."
@@ -22201,9 +24537,12 @@ msgid "Please connect the printer first before synchronizing."
msgstr "Anslut skrivaren först innan du synkroniserar."
# AI Translated
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "Nozzelinformationen för skrivaren %s har inte angetts. Konfigurera den innan du fortsätter med kalibreringen."
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Nozzelinformationen för skrivarens högra nozzel har inte angetts. Konfigurera den innan du fortsätter med kalibreringen."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Nozzelinformationen för skrivarens vänstra nozzel har inte angetts. Konfigurera den innan du fortsätter med kalibreringen."
# AI Translated
msgid "AMS and nozzle information are synced"
@@ -22273,6 +24612,11 @@ msgstr "Från volymetrisk hastighet"
msgid "To Volumetric Speed"
msgstr "Till volymetrisk hastighet"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Steg"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Är du säker på att du vill avbryta utskriften?"
@@ -22300,8 +24644,10 @@ msgstr "Åtgärd"
# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Den här maskintypen kan bara lagra %d historiska resultat per nozzel."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Den här maskintypen kan bara lagra %d historiskt resultat per nozzel."
+msgstr[1] "Den här maskintypen kan bara lagra %d historiska resultat per nozzel."
msgid "Edit Flow Dynamics Calibration"
msgstr "Redigera kalibrering av flödesdynamik"
@@ -22442,12 +24788,13 @@ msgstr ""
"Accelerationsvärdena måste vara större än hastighetsvärdena.\n"
"Kontrollera dina inmatningar."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Ännu inte aktiverat på bandskrivare — använd metoden PA torn i stället."
+
msgid "Temperature calibration"
msgstr "Kalibrering av temperatur"
-msgid "Filament type"
-msgstr "Filament typ"
-
msgid "PLA"
msgstr "PLA"
@@ -22469,6 +24816,20 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+# AI Translated
+msgid "Test model"
+msgstr "Testmodell"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Standard"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Överhäng"
+
# AI Translated
msgid "Start temp: "
msgstr "Starttemp: "
@@ -22598,10 +24959,6 @@ msgstr "Starta retraktion längd: "
msgid "End retraction length: "
msgstr "Slutets indragnings längd: "
-# AI Translated
-msgid "Test model"
-msgstr "Testmodell"
-
# AI Translated
msgid "Ringing Tower"
msgstr "Ringing torn"
@@ -22639,8 +24996,12 @@ msgid "Frequency (Start / End): "
msgstr "Frekvens (start/slut): "
# AI Translated
-msgid "Start / End"
-msgstr "Start/slut"
+msgid "X Start / End: "
+msgstr "X start / slut: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y start / slut: "
# AI Translated
msgid "Frequency settings"
@@ -22687,8 +25048,12 @@ msgid "Frequency: "
msgstr "Frekvens: "
# AI Translated
-msgid "Damp"
-msgstr "Dämpning"
+msgid "Frequency X / Y: "
+msgstr "Frekvens X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Dämpning (start / slut): "
# AI Translated
msgid "RepRap firmware uses the same frequency for both axes."
@@ -22841,8 +25206,10 @@ msgstr "Aktivera IFS"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "Hittade %d IFS-platser på skrivaren."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "Hittade %d IFS-plats på skrivaren."
+msgstr[1] "Hittade %d IFS-platser på skrivaren."
# AI Translated
msgid "This printer does not report a material station."
@@ -22978,8 +25345,10 @@ msgstr "Subtrahera från"
msgid "Subtract with"
msgstr "Subtrahera med"
-msgid "selected"
-msgstr "vald"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 vald"
msgid "Part 1"
msgstr "Del 1"
@@ -23098,9 +25467,6 @@ msgstr "t.ex. Basic, Matt, Silke, Marmor"
msgid "Filament Preset"
msgstr "Filament inställning"
-msgid "Create"
-msgstr "Skapa"
-
# AI Translated
msgid "Vendor is not selected; please reselect vendor."
msgstr "Ingen tillverkare är vald; välj tillverkare igen."
@@ -23430,6 +25796,10 @@ msgstr ""
"Skrivaren och alla filament- och processförinställningar som hör till skrivaren.\n"
"Kan delas med andra."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Inkludera anpassad textur och modell för byggplattan"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -23482,14 +25852,6 @@ msgstr "Observera: Om den enda inställningen under detta filament raderas, komm
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Inställningar som ärvts av andra inställningar kan inte raderas"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Följande förinställningar ärver denna förinställning."
-msgstr[1] "Följande förinställning ärver denna förinställning."
-
-msgid "Delete Preset"
-msgstr "Ta bort inställning"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Är du säker på att du vill radera den valda inställningen?"
@@ -23572,11 +25934,13 @@ msgid "The number of printer extruders and the printer selected for calibration
msgstr "Antalet extrudrar på skrivaren och den skrivare som valts för kalibrering stämmer inte överens."
# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "Nozzeldiametern på extrudern %s är 0,2 mm, vilket inte stöder automatisk kalibrering av flödesdynamik."
# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -23594,6 +25958,13 @@ msgstr ""
"Klicka på Synkronisera-knappen ovan och starta om kalibreringen."
# AI Translated
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Nozzelinformationen för skrivaren %s har inte angetts. Konfigurera den innan du fortsätter med kalibreringen."
+
+# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -23675,6 +26046,11 @@ msgstr "Hitta Creality K-seriens skrivare"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Klicka på Skanna för att leta efter K-seriens skrivare i ditt nätverk."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Modell"
+
# AI Translated
msgid "Scan"
msgstr "Skanna"
@@ -23697,8 +26073,10 @@ msgstr "Inga skrivare i K-serien hittades. Kontrollera att skrivaren är på sam
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "Hittade %zu Creality-skrivare. Välj en och klicka på Använd vald."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "Hittade %zu Creality-skrivare. Välj den och klicka på Använd vald."
+msgstr[1] "Hittade %zu Creality-skrivare. Välj en och klicka på Använd vald."
# AI Translated
msgid "Active"
@@ -23817,8 +26195,12 @@ msgid "Failed to launch a new instance."
msgstr "Det gick inte att starta en ny instans."
# AI Translated
-msgid "log(s)"
-msgstr "logg(ar)"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d logg (%.2f %s)"
+msgstr[1] "%d loggar (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -23873,17 +26255,37 @@ msgid "Authorizing..."
msgstr "Auktoriserar..."
# AI Translated
-msgid "Error. Can't get API token for authorization"
-msgstr "Fel. Det går inte att hämta api-token för auktorisering"
+msgid "Maximum login retries exceeded"
+msgstr "Det maximala antalet inloggningsförsök har överskridits"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "HTTP-fel: %1%"
# AI Translated
msgid "Could not parse server response."
msgstr "Det gick inte att tolka serverns svar."
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "Fel. Det går inte att hämta api-token för auktorisering"
+
# AI Translated
msgid "Error saving session to file"
msgstr "Fel när sessionen skulle sparas till fil"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "Anslutningen till 3DPrinterOS-molnet fungerar korrekt."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Inloggad som användare: %1%"
+
# AI Translated
msgid "Error session check"
msgstr "Fel vid sessionskontroll"
@@ -23923,6 +26325,42 @@ msgstr "Fel lösenord"
msgid "Could not get resources to create a new connection"
msgstr "Det gick inte att hämta resurser för att skapa en ny anslutning"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "Anslutningen till UltiMaker fungerar korrekt."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Det gick inte att ansluta till UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Fel vid skapande av autentiseringsuppgifter! Se loggen för detaljer."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "FEL: Antingen ID eller KEY är tomt. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Användarnamn: %1% Lösenord: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Autentiseringsuppgifterna väntar på godkännande. Godkänn åtkomsten via dialogrutan på skrivarens skärm."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Ogiltiga autentiseringsuppgifter"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Fel: Inga autentiseringsuppgifter hittades!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Uppladdning inte aktiverad på FlashAir kort."
@@ -24054,6 +26492,14 @@ msgstr ""
"Meddelandets huvuddel: \"%1%\"\n"
"Felmeddelande: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "Anslutningen till ESP3D fungerar korrekt."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Kunde inte ansluta till ESP3D"
+
# AI Translated
msgid "No AMS"
msgstr "Inget AMS"
@@ -24147,6 +26593,11 @@ msgstr "Det maximala antalet skrivare som kan väljas är %d"
msgid "No task"
msgstr "Ingen uppgift"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Visa"
+
# AI Translated
msgid "Edit Printers"
msgstr "Redigera skrivare"
@@ -24197,6 +26648,11 @@ msgstr "Utskrift misslyckades"
msgid "Printing Pause"
msgstr "Utskrift pausad"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Förbereder"
+
msgid "Pending"
msgstr "Väntande"
@@ -24234,10 +26690,6 @@ msgstr "Aktivera smart filamenttilldelning: Tilldela ett filament till flera noz
msgid "File Saving"
msgstr "Filsparande"
-# AI Translated
-msgid "Don't remind me again"
-msgstr "Påminn mig inte igen"
-
# AI Translated
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Inga fler popup-fönster visas. Du kan öppna det igen i 'Inställningar'"
@@ -24270,17 +26722,25 @@ msgstr "Tilldela filament manuellt till vänster eller höger nozzel"
msgid "Global settings"
msgstr "Globala inställningar"
-msgid "Video tutorial"
-msgstr "Videohandledning"
-
# AI Translated
msgid "(Sync with printer)"
msgstr "(Synka med skrivaren)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Fel: extrudern %s har ingen tillgänglig %s-nozzel, det aktuella grupperingsresultatet är ogiltigt."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Fel: Den vänstra extrudern har ingen tillgänglig nozzel av typen Standard, det aktuella grupperingsresultatet är ogiltigt."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Fel: Den vänstra extrudern har ingen tillgänglig nozzel av typen Högt flöde, det aktuella grupperingsresultatet är ogiltigt."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Fel: Den högra extrudern har ingen tillgänglig nozzel av typen Standard, det aktuella grupperingsresultatet är ogiltigt."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Fel: Den högra extrudern har ingen tillgänglig nozzel av typen Högt flöde, det aktuella grupperingsresultatet är ogiltigt."
# AI Translated
msgid "We will slice according to this grouping method:"
@@ -24331,10 +26791,6 @@ msgstr "Det gick inte att ansluta till SimplyPrint"
msgid "Internal error"
msgstr "Internt fel"
-# AI Translated
-msgid "Unknown error"
-msgstr "Okänt fel"
-
# AI Translated
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "SimplyPrint-kontot är inte länkat. Gå till anslutningsalternativen för att konfigurera det."
@@ -24343,6 +26799,16 @@ msgstr "SimplyPrint-kontot är inte länkat. Gå till anslutningsalternativen f
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge returnerade ett ogiltigt JSON-svar."
+# AI Translated
+msgid "Request failed"
+msgstr "Begäran misslyckades"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Flashforge lokalt API-fel %1%: %2%"
+
# AI Translated
msgid "No Flashforge printers were discovered on the local network."
msgstr "Inga Flashforge-skrivare hittades på det lokala nätverket."
@@ -24537,8 +27003,11 @@ msgid "Set the brim type of this object to \"painted\""
msgstr "Sätt objektets brim-typ till \"målad\""
# AI Translated
-msgid "invalid brim ears"
-msgstr "ogiltiga brim-öron"
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d ogiltigt brim-öra"
+msgstr[1] "%d ogiltiga brim-öron"
msgid "Brim Ears"
msgstr "Brätte Öron"
@@ -24572,6 +27041,7 @@ msgid "Failed to create the temporary folder."
msgstr "Det gick inte att skapa den tillfälliga mappen."
# AI Translated
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d valda"
@@ -24598,8 +27068,10 @@ msgstr "Utskriftsjobbet stoppas. Vill du fortsätta?"
# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Hoppar över %d objekt."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "Hoppar över %d objekt."
+msgstr[1] "Hoppar över %d objekt."
# AI Translated
msgid "This action cannot be undone. Continue?"
@@ -24785,6 +27257,42 @@ msgstr "Om detta är aktiverat sparas värdena ovan som standard för framtida S
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Exportera förinställningar"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Visa i mapp"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Ta bort paket"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Avprenumerera på paket"
+
+# AI Translated
+msgid "Update available"
+msgstr "Uppdatering tillgänglig"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Obehörigt paket"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Öppna det här paketet i webbläsaren"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "Prenumererad"
+
+# AI Translated
+msgid "Local"
+msgstr "Lokal"
+
# AI Translated
msgid "Bundle folder does not exist."
msgstr "Paketmappen finns inte."
@@ -24829,6 +27337,14 @@ msgstr "Avprenumerera på paket"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Exportera till OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Exportera till mapp"
+
# AI Translated
msgid "Save preset bundle"
msgstr "Spara förinställningspaket"
@@ -24930,6 +27446,11 @@ msgstr "AMS torrhetsstyrning"
msgid "Filament Drying Settings"
msgstr "Inställningar för filamenttorkning"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "h"
+
# AI Translated
msgid "Stopping"
msgstr "Stoppar"
@@ -25109,6 +27630,11 @@ msgstr "Startar: Kontrollerar luftintaget"
msgid "Starting: Checking air vent"
msgstr "Startar: Kontrollerar luftutsläppet"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Det gick inte att skapa mappen %1%"
+
# AI Translated
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Filamentet kanske inte är kompatibelt med de aktuella maskininställningarna. Generiska filamentförinställningar används."
@@ -25129,6 +27655,105 @@ msgstr "Filamentet kanske inte är kompatibelt med de aktuella maskininställnin
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Filamentmodellen är okänd. En slumpmässig filamentförinställning används."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Okänd konfigurationsfil: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Ogiltig konfigurationsfil: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "plats %1% -> plats %2%: blandat filament"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "definition av blandat filament: gränsen för filamentplatser är nådd"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "gränsen för filamentplatser är nådd"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "skrivarens filamentgräns är %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "plats %1% -> plats %2%: ej tilldelat blandat filament (skrivarens filamentgräns är %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "plats %1%: ej tilldelat blandat filament (skrivarens filamentgräns är %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "plats %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "plats %1%: definitionen av blandat filament kunde inte importeras"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "kräver minst två komponenter"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "komponenter refererar till saknade platser"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "definition av blandat filament: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "plats %1%: definitionen av blandat filament kunde inte importeras (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "plats %1%: %2% -> %3% (ersättning)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Det gick inte att läsa in konfigurationsfilen %1%\n"
+"Rensa gärna mappen %2% först"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Konfigurationsversionen %2% för leverantören %1% är ogiltig\n"
+"Rensa gärna mappen %3% först"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Det gick inte att läsa in konfigurationsfilen %1%: %2%\n"
+"Rensa gärna mappen %3% först"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Dölj referensplan och axlar"
@@ -25442,6 +28067,11 @@ msgstr "Ingen ytkropp att förtjocka — skapa en ytoperation först"
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Referens / Kurva (plan / axel / koord.system / helix / projicera)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Plan"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Referensplan (förskjutet / lutat / mittplan / tangent / två kanter / sammanfallande)"
@@ -25508,6 +28138,11 @@ msgstr "Flytta och/eller rotera en befintlig kropp"
msgid "Transform needs a body — add or import one first"
msgstr "Transformera kräver en kropp — lägg till eller importera en först"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Spegelvänd"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Spegla en kropp i ett plan"
@@ -25601,6 +28236,11 @@ msgstr "(ingen)"
msgid "Hole / thread"
msgstr "Hål / gänga"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Hål"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Borra ett hål, centrerat på en vald yta eller placerat på ett plan"
@@ -25645,6 +28285,11 @@ msgstr "Klicka på 2 punkter eller en linje / cirkel / båge för att placera et
msgid "Line / polyline"
msgstr "Linje / polylinje"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Linje"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Klicka på start, sedan slut — ange sedan exakt längd"
@@ -25781,6 +28426,10 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Klicka på styrpunkter; dubbelklicka, högerklicka eller tryck på Enter för att avsluta"
+# AI Translated
+msgid "Point"
+msgstr "Punkt"
+
# AI Translated
msgid "Click to place a point"
msgstr "Klicka för att placera en punkt"
@@ -25899,16 +28548,17 @@ msgstr "Välj element, dra vinkelhandtaget, klicka på antalet; klicka på tom p
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Klicka på mittpunkten och sedan ett hörn — %d sidor, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Klicka på mittpunkten och sedan ett hörn — %d sida, omskriven"
+msgstr[1] "Klicka på mittpunkten och sedan ett hörn — %d sidor, omskriven"
# AI Translated
-msgid "circumscribed"
-msgstr "omskriven"
-
-# AI Translated
-msgid "inscribed"
-msgstr "inskriven"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Klicka på mittpunkten och sedan ett hörn — %d sida, inskriven"
+msgstr[1] "Klicka på mittpunkten och sedan ett hörn — %d sidor, inskriven"
# AI Translated
msgid "Polygon"
@@ -26247,6 +28897,11 @@ msgstr "På yta"
msgid "Thread plane"
msgstr "Gängplan"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Standard"
+
# AI Translated
msgid "Pitch"
msgstr "Stigning"
@@ -26434,6 +29089,10 @@ msgstr "Välj en solid yta för att öppna den, ange sedan väggtjockleken."
msgid "(pick a side face)"
msgstr "(välj en sidoyta)"
+# AI Translated
+msgid "Face"
+msgstr "Yta"
+
# AI Translated
msgid "Draft"
msgstr "Släppvinkel"
@@ -26812,8 +29471,10 @@ msgstr "Skissen uppdaterad"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Skiss skapad (%zu styrande mått) — välj den och högerklicka sedan för att extrudera"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Skiss skapad (%zu styrande mått) — välj den och högerklicka sedan för att extrudera"
+msgstr[1] "Skiss skapad (%zu styrande mått) — välj den och högerklicka sedan för att extrudera"
# AI Translated
#, c-format, boost-format
@@ -26950,8 +29611,10 @@ msgstr "Redigerar: Skiss %d · N = titta vinkelrätt mot planet · Bekr
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — %zu trianglar"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — %zu triangel"
+msgstr[1] "OK — %zu trianglar"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -27037,10 +29700,18 @@ msgstr "Meshen innehåller inga trianglar"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Den här meshen har %d triangel. Varje triangel blir en B-rep-yta före sammanslagning av koplanära ytor, så importen kan ta lång tid och ge en kropp som är långsam att redigera. Det är oftast bättre att decimera meshen först.\n"
+"\n"
+"Vill du importera ändå?"
+msgstr[1] ""
"Den här meshen har %d trianglar. Varje triangel blir en B-rep-yta före sammanslagning av koplanära ytor, så importen kan ta lång tid och ge en kropp som är långsam att redigera. Det är oftast bättre att decimera meshen först.\n"
"\n"
"Vill du importera ändå?"
@@ -27069,8 +29740,8 @@ msgstr "Mesh-importen misslyckades: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Importerad solid — %d trianglar → %d ytor, volym %.2f mm³. Välj en yta eller kant och sedan Avrundning / Skär / Skal för att ändra"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Importerad solid — trianglar: %d → ytor: %d, volym %.2f mm³. Välj en yta eller kant och sedan Avrundning / Skär / Skal för att ändra"
# AI Translated
#, c-format, boost-format
@@ -27087,8 +29758,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s lades till i skissen — Bekräfta för att spara"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — dra för att placera/ändra storlek, sedan Bekräfta"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — dra för att placera/ändra storlek, sedan Bekräfta"
# AI Translated
msgid "Insert canceled"
@@ -27295,9 +29968,12 @@ msgid "a geometry operation failed"
msgstr "en geometrioperation misslyckades"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d valda"
+msgid_plural " · %d picked"
+msgstr[0] " · %d vald"
+msgstr[1] " · %d valda"
# AI Translated
#, c-format, boost-format
@@ -27313,7 +29989,9 @@ msgstr "Välj — klicka på ett element för att välja det · dra i en ändp
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d valda · välj nu ett villkor (Horisontell, Parallell, Tangerande, Lika…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d vald · välj nu ett villkor (Horisontell, Parallell, Tangerande, Lika…)"
+msgstr[1] "%d valda · välj nu ett villkor (Horisontell, Parallell, Tangerande, Lika…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -27574,7 +30252,9 @@ msgstr "Spegelvänd — axeln är angiven · klicka nu på elementen att spegl
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Spegelvänd — axeln är angiven · %d att spegla · klicka på ett annat för att lägga till eller ta bort det · Enter tillämpar"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Spegelvänd — axeln är angiven · %d att spegla · klicka på ett annat för att lägga till eller ta bort det · Enter tillämpar"
+msgstr[1] "Spegelvänd — axeln är angiven · %d att spegla · klicka på ett annat för att lägga till eller ta bort det · Enter tillämpar"
# AI Translated
msgid "Move — click the entities to move"
@@ -27697,8 +30377,10 @@ msgstr "Skisspunkt"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d skisselement"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d skisselement"
+msgstr[1] "%d skisselement"
# AI Translated
msgid "select something first"
@@ -28234,8 +30916,10 @@ msgid "Applied edit"
msgstr "Ändring tillämpad"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — skriv ett värde, tryck på Enter (eller Bekräfta)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — skriv ett värde, tryck på Enter (eller Bekräfta)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -28307,10 +30991,23 @@ msgstr "Överför till platta — skicka soliden till Förbered"
msgid "Nothing to commit — add a feature first"
msgstr "Inget att överföra — lägg till en operation först"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Designkropp %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Alla kroppar är dolda — visa en innan du överför"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Designmontering"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Designkropp"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -28377,8 +31074,10 @@ msgstr "Ogiltigt: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Förhandsvisning — %zu trianglar"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Förhandsvisning — %zu triangel"
+msgstr[1] "Förhandsvisning — %zu trianglar"
# AI Translated
#, c-format, boost-format
@@ -28480,8 +31179,10 @@ msgstr "Det måttet kan inte uppfyllas — skissen är överdefinierad"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "%1% villkor kan inte verka på den här geometrin (en ellips eller splinekurva, eller en cirkel med storleken noll) och ignoreras"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% villkor kan inte verka på den här geometrin (en ellips eller splinekurva, eller en cirkel med storleken noll) och ignoreras"
+msgstr[1] "%1% villkor kan inte verka på den här geometrin (en ellips eller splinekurva, eller en cirkel med storleken noll) och ignoreras"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -28539,8 +31240,10 @@ msgstr "Fasning: avståndet sträcker sig förbi ett av benen, eller så möts i
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "%1% villkor som avrundningen/fasningen gjorde ogiltiga togs bort"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "%1% villkor som avrundningen/fasningen gjorde ogiltigt togs bort"
+msgstr[1] "%1% villkor som avrundningen/fasningen gjorde ogiltiga togs bort"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -28560,8 +31263,10 @@ msgstr "Antalet kopior måste vara ett heltal, 2 eller fler"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "%1% villkor upphävdes av transformationen"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "%1% villkor upphävdes av transformationen"
+msgstr[1] "%1% villkor upphävdes av transformationen"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -28712,11 +31417,6 @@ msgstr "Förtjocka yta"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Förtjocka yta kräver en ytkropp — skapa först en med ett ytverktyg"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Hål"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -28801,11 +31501,6 @@ msgstr "Cirkulärt mönster"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Upprepa kroppen runt en axel — ange antal och vinkel"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Spegelvänd"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -28842,11 +31537,6 @@ msgstr "Rikta in kräver en kropp — lägg till eller importera en först"
msgid "Align the body to a picked face or plane"
msgstr "Rikta in kroppen mot en vald yta eller ett valt plan"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Plan"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -28952,11 +31642,6 @@ msgstr "Ta bort kropp"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Ta bort hela kroppen — tar bort operationen som den skapades från"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Linje"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -29271,214 +31956,6 @@ msgstr "Det här teckensnittet har ingen kontur för den här texten"
msgid "Size: %.1f × %.1f mm"
msgstr "Storlek: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Primitiv"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Tom mesh genererades"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Låda"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Förval:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Bredd (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Djup (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Höjd (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "Nedre R"
-
-# AI Translated
-msgid "Top R"
-msgstr "Övre R"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "Stor R"
-
-# AI Translated
-msgid "Minor R"
-msgstr "Liten R"
-
-# AI Translated
-msgid "All edges"
-msgstr "Alla kanter"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Övre kanter"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Nedre kanter"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Sidokanter"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Meshupplösning"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Lägg till form"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Ingen yttre profil"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Det gick inte att skapa den yttre ytan"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Det gick inte att skapa en yta med hål"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Rotationen misslyckades"
-
-# AI Translated
-msgid "Profile"
-msgstr "Profil"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Starta ny profil (för hål)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segment"
-
-# AI Translated
-msgid "Sides"
-msgstr "Sidor"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Klicka i vyn för att rita"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Fäst mot rutnät"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Rutnätssteg"
-
-# AI Translated
-msgid "Outer"
-msgstr "Yttre"
-
-# AI Translated
-msgid "closed"
-msgstr "sluten"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% punkter %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (Topp)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (Front)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (Sida)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Rotationsvinkel"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "Ange 0 för extrudering, >0 för rotation"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Ficka (skär)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu sluten profil"
-msgstr[1] "%zu slutna profiler"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Rita en sluten profil för att aktivera"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Rensa alla"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Tomt resultat"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Extrudera: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Rotera: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Inget objekt valt"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Det gick inte att skapa ytan"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Det gick inte att skapa ytan med hål"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Verktygets mesh är tom"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Ficka tillagd (negativ volym)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Ficka: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -29603,6 +32080,10 @@ msgstr "Gizmo montera"
msgid "Gizmo brim ears"
msgstr "Gizmo brätte öron"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Gizmo målning med texturförskjutning"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Vertikal reglage - Flytta aktivt tryck Upp"
@@ -29840,6 +32321,12 @@ msgstr "kräver en cylindrisk yta i båda ändar — kopplingen %1% sitter på e
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "kräver en cylindrisk yta i båda ändar — kopplingen %1% sitter på en krökt yta"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (basplan saknas)"
+
# AI Translated
msgid "two points are coincident"
msgstr "de två punkterna sammanfaller"
@@ -29868,10 +32355,31 @@ msgstr "planen är parallella (ingen skärning)"
msgid "zero-length direction"
msgstr "riktning med längden noll"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "en operation arbetar på kroppen %1%, som inte finns vid den punkten i historiken"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "\"%1%\" arbetar på en kropp som skapats av en operation som har tagits bort eller dolts"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "\"%1%\" arbetar på en kropp som inte finns vid den punkten i historiken"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "operationen används av en senare operation"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "\"%1%\" använder \"%2%\" och kan därför inte komma före den"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "skisselementen bildar inte en sluten slinga"
@@ -29882,9 +32390,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Öppen vid (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...och %1% öppna ände(r) till"
+msgid "Open ends not shown: %1%"
+msgstr "Öppna ändar som inte visas: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "rotera: axellinjen finns inte längre i skissen — välj axeln igen"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "rotera: axellinjen har ingen längd"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -30032,6 +32549,30 @@ msgstr "det gick inte att skapa hålets kantkedja"
msgid "hole cut failed"
msgstr "urskärningen av hålet misslyckades"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "gänga: diametern måste vara minst 1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "gänga: stigningen måste vara större än 0,1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "gänga: djupet måste ligga mellan 0 och 0,7 x stigningen"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "gänga: djupet är för stort för den här diametern"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "gänga: längden måste vara mer än en halv stigning"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "gänga: för många varv (längd / stigning måste vara under 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "invändig gänga kräver en kropp"
@@ -30092,6 +32633,22 @@ msgstr "ta bort yta misslyckades"
msgid "delete_face produced no geometry"
msgstr "ta bort yta gav ingen geometri"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "boolesk: ingen målkropp"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "boolesk: ingen verktygskropp — välj en andra kropp"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "boolesk: målet och verktyget är samma kropp"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "boolesk: en kropp saknar geometri"
+
# AI Translated
msgid "boolean operation failed"
msgstr "den booleska operationen misslyckades"
@@ -30419,6 +32976,10 @@ msgstr "Modellbilder"
msgid "Auxiliaries"
msgstr "Hjälpfiler"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Bandrensningstorn"
+
# AI Translated
msgid "Project Filament List"
msgstr "Projektets filamentlista"
@@ -30453,8 +33014,18 @@ msgstr "Minst två filament av samma materialtyp krävs för uppdelning"
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "Materiallistan stöder högst %1% färger. Efter uppdelningen av %2% skulle antalet material överstiga %1%. Ta bort oanvända filament på huvudskärmen innan du delar upp."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Materiallistan stöder högst %1% färg. Efter uppdelningen av materiallistan skulle antalet material överstiga %1%. Ta bort oanvända filament på huvudskärmen innan du delar upp."
+msgstr[1] "Materiallistan stöder högst %1% färger. Efter uppdelningen av materiallistan skulle antalet material överstiga %1%. Ta bort oanvända filament på huvudskärmen innan du delar upp."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Materiallistan stöder högst %1% färg. Efter uppdelningen av %2% skulle antalet material överstiga %1%. Ta bort oanvända filament på huvudskärmen innan du delar upp."
+msgstr[1] "Materiallistan stöder högst %1% färger. Efter uppdelningen av %2% skulle antalet material överstiga %1%. Ta bort oanvända filament på huvudskärmen innan du delar upp."
# AI Translated
msgid "Cyan"
@@ -30484,6 +33055,13 @@ msgstr "Grön"
msgid "Blue"
msgstr "Blå"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -30491,7 +33069,1235 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "Den aktuella filamentlistan innehåller inte %s. Ett projektfilament som det blandade filamentet kräver skapas automatiskt efter uppdelningen."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "Den aktuella filamentlistan innehåller inte %s. Ett projektfilament som det blandade filamentet kräver skapas automatiskt efter uppdelningen."
+msgstr[1] "Den aktuella filamentlistan innehåller inte %s. Projektfilament som det blandade filamentet kräver skapas automatiskt efter uppdelningen."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Opacitet"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -30587,10 +34393,6 @@ msgstr "Mina inställningar"
msgid "Custom Printer Setup"
msgstr "Konfiguration av anpassad skrivare"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Anpassad skrivare"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Definiera en anpassad skrivarprofil"
@@ -30858,6 +34660,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Baka"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Skriv ett exakt värde i ett reglage"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Redigeringsikonen i reglagets högra ände"
+
# AI Translated
msgid "Texture displacement"
msgstr "Texturförskjutning"
@@ -30994,6 +34804,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Ta bort textur"
+# AI Translated
+msgid "Adjust image"
+msgstr "Justera bild"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Ljusstyrka"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Kontrast"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Skärpa"
+
+# AI Translated
+msgid "Blur"
+msgstr "Oskärpa"
+
+# AI Translated
+msgid "Hue"
+msgstr "Nyans"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Framhäver bildens finaste detaljer. Tillämpas efter Oskärpa, så de två kan användas tillsammans: sudda bort prickarna och skärp sedan kanterna som finns kvar."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Gör själva bilden suddig. Lagrets eget reglage Utjämning mjukar upp reliefen utan att ändra bilden och är det första du bör ta till."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Den här texturen är i gråskala, så det finns ingen nyans att förskjuta."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Modellen uppdateras när du släpper reglaget. Spara som kopia skriver den justerade bilden till ditt texturbibliotek och låter det här lagret använda den."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Spara som kopia"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Ta bort texturlager för texturförskjutning"
@@ -31130,6 +34984,15 @@ msgstr "Spara varje fångat steg som en OBJ-fil, så att de kan öppnas sida vid
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Det målade området kunde inte föras över till den ombyggda meshen, så inget ändrades. Växla till Pro-läget och bygg om meshen innan du målar."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Intervall: %1% till %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Skriv ett värde i stället för att dra. Ctrl+klick på reglaget gör samma sak."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -31236,8 +35099,8 @@ msgid "Click a triangle to paint it"
msgstr "Klicka på en triangel för att måla den"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Kräver att det aktiva lagret är mappat med Veckla ut (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Endast för ett texturlager som mappats med Veckla ut (LSCM) - ställ in det aktiva lagrets Mappning på Veckla ut för att använda den här vyn."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -31252,16 +35115,16 @@ msgid "Checker"
msgstr "Schackmönster"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Schackmönster - ett testrutnät i stället för texturen. Där rutorna förblir kvadratiska är texturen oförvrängd; där de sträcks ut blir även den det"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Schackmönster - ett testrutnät i stället för texturen. Där rutorna förblir kvadratiska är texturen oförvrängd; där de sträcks ut blir även den det. Öppnar UV-redigeraren om den är stängd"
# AI Translated
msgid "Distortion"
msgstr "Förvrängning"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Förvrängning - värmekarta från blått till rött över utsträckningen i UV-utvecklingen"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Förvrängning - värmekarta från blått till rött över utsträckningen i UV-utvecklingen. Öppnar UV-redigeraren om den är stängd"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -31287,6 +35150,10 @@ msgstr "Välj en annan bild för det här lagret. Målningen, djupet och upprepn
msgid "not painted"
msgstr "inte målat"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Ljusstyrka, kontrast, skärpa, oskärpa och nyans visas på bilden och på modellen medan du ställer in dem. Spara som kopia skriver resultatet till ditt texturbibliotek och låter det här lagret använda det."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Flytta upp - tillämpas tidigare"
@@ -31307,10 +35174,20 @@ msgstr "Reliefens höjd: hur långt vitt i texturen lyfter ytan, i millimeter. S
msgid "Tile size"
msgstr "Rutstorlek"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Mappas av modellens egen UV-layout, som redan är placeringen - en kopia av texturen täcker den exakt, så det finns ingen rutstorlek att ställa in."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Hur bred en kopia av texturen är på modellen. Mindre värden upprepar mönstret oftare och gör detaljerna finare; med Sida vid sida avstängt är detta storleken på den enda kopian."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Vrider texturen på ytan, i grader - för att rikta in ett mönster mot en kant på modellen."
@@ -31378,28 +35255,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Varvar två filament för att efterlikna färgerna däremellan, så att en handfull filament kan återge ett foto eller en gradient. En bild med enhetliga färger skrivs ut likadant i båda fallen. Av använder ett filament per område."
# AI Translated
-msgid "Mix by"
-msgstr "Blanda efter"
+msgid "Mixed colors"
+msgstr "Blandade färger"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Yta"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Det högsta antalet blandade filament som en inbakning får lägga till. De väljs ur texturens färger, och endast de som inbakningen faktiskt använder skapas."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Lager: de två filamenten växlar mellan utskriftslager, vilket blandas jämnt på stående ytor men försvinner på plana ytor, där ett helt lager är ett enda band.\n"
-"Yta: ett fint schackmönster över ytan, som fungerar i alla vinklar men kan uppfattas som textur snarare än som en blandning.\n"
-"Automatisk: lager på stående ytor; plana ytor får det närmaste enskilda filamentet, eftersom ett schackmönster där syns som ett mönster."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% utskrivbara färger från %2% filament"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "från %1% filament"
+msgstr[1] "från %1% filament"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% utskrivbar färg %2%"
+msgstr[1] "%1% utskrivbara färger %2%"
# AI Translated
msgid "Denoise"
@@ -31450,6 +35333,18 @@ msgstr "Från vy"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Från vy - projicerar rakt på det målade området från där du tittar, som en diaprojektor."
+# AI Translated
+msgid "Model UV"
+msgstr "Modell-UV"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "Modell-UV - använder de texturkoordinater som modellen själv levererades med, så en textur som gjorts för den modellen hamnar exakt där den målades. Ingenting vecklas ut, och rutstorlek gäller inte: modellens egen layout är placeringen."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Den här modellen har inga egna texturkoordinater. Bara en modell som importerats med en UV-kanal - till exempel en texturerad OBJ - kan mappas med dem."
+
# AI Translated
msgid "Open UV editor"
msgstr "Öppna UV-redigeraren"
@@ -31464,8 +35359,10 @@ msgstr "Ännu inte utvecklat"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% öar"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% ö"
+msgstr[1] "%1% öar"
# AI Translated
msgid "Capture current view"
@@ -31495,10 +35392,6 @@ msgstr "Projektionsram"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Öppnar ett fönster som du drar över modellen. Det du kan se genom det är det som får texturen, och dess kant blir projektionens kant."
-# AI Translated
-msgid "Opacity"
-msgstr "Opacitet"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Hur heltäckande ramfönstret ser ut medan du placerar det. Sänk värdet för att se modellen genom det; det påverkar inte resultatet."
@@ -31552,6 +35445,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Lägg till"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Ersätt"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -31571,8 +35469,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Baslagret har inget under sig att kombinera med, så det adderar alltid."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Vad det här lagret gör där det överlappar lagren under. Lägg till och Subtrahera lägger på relief eller skär bort den. Multiplicera och Dividera skalar det som ligger under, vilket gör lagret till en mask över det - där fungerar Djup som en styrka, och 1 mm lämnar vita områden orörda."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Vad det här lagret gör där det överlappar lagren under. Lägg till och Subtrahera lägger på relief eller skär bort den. Ersätt ersätter dem, så att bara det här lagrets relief finns kvar där det är målat. Multiplicera och Dividera skalar det som ligger under, vilket gör lagret till en mask över det - där fungerar Djup som en styrka, och 1 mm lämnar vita områden orörda."
# AI Translated
msgid "Adjust placement"
@@ -31596,8 +35494,10 @@ msgstr "Fler inställningar"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Alla %1% lager används"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Alla %1% lager används"
+msgstr[1] "Alla %1% lager används"
# AI Translated
msgid "Add layer"
@@ -31677,8 +35577,10 @@ msgstr "Triangelbudget: anges med Trianglar nedan."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Förhandsvisning: %1% trianglar"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Förhandsvisning: %1% triangel"
+msgstr[1] "Förhandsvisning: %1% trianglar"
# AI Translated
msgid "Steps"
@@ -31720,6 +35622,12 @@ msgstr "Ombyggnad av mesh"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Triangelstorleken som hela modellen byggs om med, i millimeter. Förskjutning fungerar bäst på en jämn mesh; det är detta som skapar en sådan av en ojämn import."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Behåll skarpa kanter"
@@ -31854,14 +35762,6 @@ msgstr "Kräver cirka %1% trianglar, budget %2% - inbakningen förenklar tillbak
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Hur många tusen trianglar förfiningen får lägga till i modellen. Den triangel som passar sämst delas alltid först, så även en körning som förbrukar allt har använt dem där det syns mest. Höj värdet om reliefen fortfarande ser grov ut."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Stoppar inbakningen. Det som redan hade slutförts finns kvar på modellen och kan ångras."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Stänger verktyget utan att baka in. Din målning, dina lager och dina inställningar stannar kvar på modellen."
-
# AI Translated
msgid "Preparing..."
msgstr "Förbereder..."
@@ -31886,35 +35786,56 @@ msgstr "Gör om de målade höjdkartorna till verklig geometri genom att flytta
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Gör om de målade höjdkartorna till verklig geometri. Meshen byggs först om till en jämn täthet och förfinas där texturen böjer sig, så att detaljerna har hörn att landa på - allt i ett steg."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Stoppar inbakningen. Det som redan hade slutförts finns kvar på modellen och kan ångras."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Stänger verktyget utan att baka in. Din målning, dina lager och dina inställningar stannar kvar på modellen."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Modell: %1% trianglar - inbakningen förfinar till upplösningen ovan, upp till sin budget"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Modell: %1% triangel - inbakningen förfinar till upplösningen ovan, upp till sin budget"
+msgstr[1] "Modell: %1% trianglar - inbakningen förfinar till upplösningen ovan, upp till sin budget"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Inbakningen flyttar befintliga hörn - modellen förblir på %1% triangel"
+msgstr[1] "Inbakningen flyttar befintliga hörn - modellen förblir på %1% trianglar"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Inbakningen flyttar befintliga hörn - modellen förblir på %1% trianglar"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Inbakat resultat upp till ~%1% k triangel"
+msgstr[1] "Inbakat resultat upp till ~%1% k trianglar"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Inbakat resultat upp till ~%1% k trianglar"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% lager inte målade, hoppades över"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% lager inte målat, hoppades över"
+msgstr[1] "%1% lager inte målade, hoppades över"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% saknar målning, hoppades över"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% saknar målning, hoppades över"
+msgstr[1] "%1% saknar målning, hoppades över"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -31931,6 +35852,10 @@ msgstr "Redigering av texturförskjutning"
msgid "Choose SLA archive:"
msgstr "Välj SLA arkiv:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "SL1 / SL1S-arkivfiler"
+
# AI Translated
msgid "Import file"
msgstr "Importera fil"
@@ -32095,6 +36020,34 @@ msgstr "Filamentinsticksmoduler"
msgid "Printer plugins"
msgstr "Skrivarinsticksmoduler"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Den här förinställningen använder inga förmågor från insticksmoduler"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Förmågor som används av den här förinställningen"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Konfiguration av förmåga (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Konfiguration av insticksmodul"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Förkasta den här förinställningens åsidosättning och använd den globala konfigurationen igen"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Återställ standardvärden"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "Ogiltig JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "Konfigurationen är inte giltig JSON. Dina ändringar sparades inte."
@@ -32114,10 +36067,6 @@ msgstr ""
"\n"
"Detta förkastar förinställningens åsidosättning och använder den globala konfigurationen."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Återställ standardvärden"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Använder den globala konfigurationen. Spara förinställningen för att behålla den."
@@ -32143,10 +36092,6 @@ msgstr "Avprenumerera"
msgid "Overwrite Plugin"
msgstr "Skriv över insticksmodul"
-# AI Translated
-msgid "Show in folder"
-msgstr "Visa i mapp"
-
# AI Translated
msgid "Reinstall"
msgstr "Installera om"
@@ -32155,6 +36100,10 @@ msgstr "Installera om"
msgid "Delete cache and reload"
msgstr "Rensa cache och läs in igen"
+# AI Translated
+msgid "No description."
+msgstr "Ingen beskrivning."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Välj ett insticksmodulpaket i .py- eller .whl-format."
@@ -32187,6 +36136,293 @@ msgstr "Installerar insticksmodul"
msgid "Installed \"%s\"."
msgstr "\"%s\" har installerats."
+# AI Translated
+msgid "Search plugins"
+msgstr "Sök insticksmoduler"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Rensa sökning"
+
+# AI Translated
+msgid "Match case"
+msgstr "Matcha skiftläge"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Matcha hela ord"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Fler installationsalternativ för insticksmoduler"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Installera insticksmodul"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Installera lokal insticksmodul"
+
+# AI Translated
+msgid "Activate"
+msgstr "Aktivera"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Sortera efter namn"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Sortera efter version"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Insticksmodulsversion"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Sortera efter källa"
+
+# AI Translated
+msgid "Source"
+msgstr "Källa"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Sortera efter status"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Status"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Dra för att ändra storlek; dubbelklicka för att återställa"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Ändra storlek på listan över insticksmoduler"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Detaljer om insticksmodul"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Information om insticksmodul"
+
+# AI Translated
+msgid "Description"
+msgstr "Beskrivning"
+
+# AI Translated
+msgid "Config"
+msgstr "Konfiguration"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Ändringslogg"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Diagnostik"
+
+# AI Translated
+msgid "Types"
+msgstr "Typer"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Installerad version"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Senaste version"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Uppdatera till den senaste versionen"
+
+# AI Translated
+msgid "No description available"
+msgstr "Ingen beskrivning tillgänglig"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Välj en insticksmodul för att konfigurera dess förmågor"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Konfigurerbara förmågor"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Förkasta de sparade inställningarna för den här förmågan och återställ insticksmodulens standardvärden"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Insticksmodulens ändringslogg"
+
+# AI Translated
+msgid "Date"
+msgstr "Datum"
+
+# AI Translated
+msgid "Changes"
+msgstr "Ändringar"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Ingen ändringslogg tillgänglig"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Inga problem upptäcktes"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Inga insticksmoduler hittades"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Inga insticksmoduler matchar \"%s\""
+
+# AI Translated
+# Needs human review: Source badge on a plugin row in the Plugins dialog (the user's own plugin, next to Subscribed/Orphaned/Local); check that 'Egen' reads right as a badge.
+msgid "Mine"
+msgstr "Egen"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Prenumererad"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Föräldralös"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Lokal"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Vissa förmågor hos insticksmodulen är aktiverade"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Fäll ihop förmågorna för %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Expandera förmågorna för %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Fäll ihop förmågor"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Expandera förmågor"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Öppna den här insticksmodulen i webbläsaren"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Förmågor: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Förmågor"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Kör \"%s\""
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Aktivera %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Ej behörig för uppdateringar"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Läser in insticksmodulen…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Den här insticksmodulen tillhandahåller inga förmågor"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Aktivera den här insticksmodulen för att konfigurera dess förmågor"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Visa på OrcaCloud här "
+
+# AI Translated
+msgid "Activated"
+msgstr "Aktiverad"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Körningsfel"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Inaktiv"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Den här insticksmodulen är aktiv och redo att användas."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Den här insticksmodulen läses fortfarande in."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Den här insticksmodulen är blockerad tills dess fel har åtgärdats."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Den här insticksmodulen är inläst men en förmåga rapporterade ett fel."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Den här insticksmodulen är inaktiv. Aktivera den för att installera eller läsa in den."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Välj en insticksmodul för att visa dess status och detaljer."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Föräldralös: Du prenumererar inte längre på den här insticksmodulen, eller så är den inte längre tillgänglig på OrcaCloud. Den lokala kopian förblir installerad och kan fortfarande användas."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "En nyare version av insticksmodulen finns tillgänglig."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Molnuppdateringar är inte tillgängliga eftersom den här insticksmodulen inte är behörig för uppdateringar."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -32403,6 +36639,71 @@ msgstr "Det gick inte att läsa in insticksmodulen igen."
msgid "Reloaded \"%s\"."
msgstr "\"%s\" har lästs in igen."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Skrivaranslutning"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Konfigurera skrivaranslutningen för att visa enheten."
+
+# AI Translated
+msgid "No model information"
+msgstr "Ingen modellinformation"
+
+# AI Translated
+msgid "Edit Project Info"
+msgstr "Redigera projektinformation"
+
+# AI Translated
+msgid "Model Information"
+msgstr "Modellinformation"
+
+# AI Translated
+msgid "Accessories"
+msgstr "Tillbehör"
+
+# AI Translated
+msgid "Profile Information"
+msgstr "Profilinformation"
+
+# AI Translated
+msgid "Model name"
+msgstr "Modellnamn"
+
+# AI Translated
+msgid "Created by"
+msgstr "Skapad av"
+
+# AI Translated
+msgid "Remixed by"
+msgstr "Remixad av"
+
+# AI Translated
+msgid "Shared by"
+msgstr "Delad av"
+
+# AI Translated
+msgid "Model description"
+msgstr "Modellbeskrivning"
+
+# AI Translated
+# Needs human review: BOM (bill of materials) file section on the project's Model Information page; check whether 'Stycklista' or the untranslated 'BOM' reads better there.
+msgid "BOM"
+msgstr "Stycklista"
+
+# AI Translated
+msgid "Profile name"
+msgstr "Profilnamn"
+
+# AI Translated
+msgid "Profile Author"
+msgstr "Profilförfattare"
+
+# AI Translated
+msgid "Profile description"
+msgstr "Profilbeskrivning"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Inställningar för rensningsläge"
@@ -32427,6 +36728,19 @@ msgstr "Minskar spillet från priming och skriver ut snabbare. Kan orsaka lätt
msgid "Terminal"
msgstr "Terminal"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... eller uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Insticksmodulens terminal är redo."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Processen avslutades med kod: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Ett kommando körs redan."
@@ -32473,8 +36787,10 @@ msgstr "Nya blandade filament"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Projektet stöder upp till %d filament. Extra filament kommer att förkastas."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Projektet stöder upp till %d filament. Extra filament kommer att förkastas."
+msgstr[1] "Projektet stöder upp till %d filament. Extra filament kommer att förkastas."
# AI Translated
msgid "Import Model"
@@ -32561,8 +36877,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Beräkningen misslyckades. Justera parametrarna och försök igen."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "Meshen har icke-mångfaldig geometri eller öppna gränser. Du kan importera den som den är eller reparera den med Windows 3D-reparationstjänst innan du importerar."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "Meshen har icke-mångfaldig geometri eller öppna gränser. Du kan importera den som den är eller reparera den innan du importerar."
# AI Translated
msgid "Mesh repair"
@@ -32576,14 +36892,6 @@ msgstr "Importera utan reparation"
msgid "Repair and import"
msgstr "Reparera och importera"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Observera att meshen har icke-mångfaldig geometri eller öppna gränser."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Problem med mesh"
-
# AI Translated
msgid "The selected image is empty."
msgstr "Den valda bilden är tom."
@@ -32592,6 +36900,14 @@ msgstr "Den valda bilden är tom."
msgid "Failed to prepare the texture for use."
msgstr "Det gick inte att förbereda texturen för användning."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Det gick inte att skapa mappen för importerade texturer."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Det gick inte att spara den importerade texturen."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Endast dina egna importerade texturer kan tas bort."
@@ -32600,18 +36916,10 @@ msgstr "Endast dina egna importerade texturer kan tas bort."
msgid "Could not delete the texture file."
msgstr "Det gick inte att radera texturfilen."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Det gick inte att skapa mappen för importerade texturer."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Det gick inte att läsa in den valda bilden."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Det gick inte att spara den importerade texturen."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Det gick inte att läsa texturfilen."
@@ -32655,8 +36963,10 @@ msgstr "Välj Veckla ut som mappning för ett texturlager för att redigera dess
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d hörn valda | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d hörn valt | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort"
+msgstr[1] "%d hörn valda | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -32664,8 +36974,10 @@ msgstr "Hörnläge: dra ett hörn för att ändra formen | Skift/Ctrl-klick =
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d kanter valda | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d kant vald | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort"
+msgstr[1] "%d kanter valda | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -32673,8 +36985,10 @@ msgstr "Kantläge: dra en kant på en ö för att ändra formen | Skift/Ctrl-k
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d öar valda | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort, R/S = rotera/skala den primära"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d ö vald | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort, R/S = rotera/skala den primära"
+msgstr[1] "%d öar valda | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort, R/S = rotera/skala den primära"
# AI Translated
#, c-format, boost-format
@@ -32693,6 +37007,10 @@ msgstr " | fästning PÅ"
msgid "Change texture - choose another one from the texture library"
msgstr "Byt textur - välj en annan från texturbiblioteket"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Det aktiva texturlagrets rutstorlek: hur stor del av modellen en upprepning av texturen täcker. Arbetsytan mäts i rutor, så en rutnätscell är en upprepning. Ändra den med Rutstorlek i texturlagrets inställningar."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Höjdkarta - visa lagrets textur under öarna"
@@ -32726,16 +37044,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Lägg ut UV-utvecklingen som ett sammanhängande nät: bitar som delar en kant vecklas ut bredvid varandra (en kub blir ett sammanhängande nät i stället för sex lösa kvadrater). De förblir separata öar, så du kan fortfarande flytta vilken som helst av dem för hand efteråt."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Ö - flytta, rotera och skala hela öar"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Ö - arbeta med hela öar. Klicka på en för att välja den, dra sedan för att flytta den, högerdra för att rotera den, eller tryck R för att rotera och S för att skala med musen (klicka eller tryck Enter för att bekräfta, Esc för att avbryta)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Hörn - dra hörn för att ändra formen; Skift/Ctrl för flerval"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Hörn - dra hörn för att ändra formen på en ö för hand; Skift lägger till i markeringen, Ctrl växlar ett hörn in i eller ut ur den."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Kant - dra kanter för att ändra formen; Skift/Ctrl för flerval"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Kant - dra kanter för att ändra formen på en ö för hand; Skift lägger till i markeringen, Ctrl växlar en kant in i eller ut ur den."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -32774,8 +37092,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Fäst - fäst öar mot varandra när du drar en mot en annan"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Visa alla öar (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Visa alla öar så att var och en ryms i vyn (Home eller F).\n"
+"På andra ställen på arbetsytan: scrolla för att zooma kring markören, och dra med mittknappen - eller dra i tomt utrymme - för att panorera."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Vad som är markerat, och de exakta värdena för förflyttningen, rotationen eller skalningen medan du drar."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -32786,6 +37112,10 @@ msgstr "Inget lager mappat med Veckla ut"
msgid "%.1f mm tile"
msgstr "%.1f mm ruta"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Panelen följer det aktiva texturlagret, och det lagret måste mappas med Veckla ut (LSCM). Lägg till ett lager och ställ in dess Mappning på Veckla ut."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Inaktuell - målningen, sömmarna eller sömvinkeln har ändrats sedan den här utvecklingen gjordes. Tryck för att veckla ut igen."
@@ -32794,19 +37124,73 @@ msgstr "Inaktuell - målningen, sömmarna eller sömvinkeln har ändrats sedan d
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Plana ut det målade området till UV-öar. Det beräknas bara när du trycker här, inte vid varje ändring - så måla, ändra sömvinkeln eller markera sömmar först, och tryck sedan på Veckla ut."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Slå på Markera sömmar först - Bana är ett snabbare sätt att markera dem."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Inga textursömmar är markerade på det här lagret."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Inga öar har formats om för hand, så det finns inget att förkasta."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d öar, %s ytor"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d ö"
+msgstr[1] "%d öar"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s yta"
+msgstr[1] "%s ytor"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Hur det målade området blev efter utvecklingen: antalet separata bitar det delades upp i (vid textursömmarna och vid kanter skarpare än sömvinkeln), och hur många trianglar de innehåller totalt."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Tryck på Veckla ut först - det finns inga öar att arbeta med ännu."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Klicka först på en ö på arbetsytan, i läget Ö."
+
+# AI Translated
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "PUB"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Inte inloggad"
+
+# AI Translated
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Insticksmodulen Bambu Network hittades inte. Klicka här för att installera den."
+
+# AI Translated
+msgid "Create new project"
+msgstr "Skapa nytt projekt"
+
+# AI Translated
+msgid "Recently opened"
+msgstr "Senast öppnade"
+
+# AI Translated
+msgid "Open Containing Folder"
+msgstr "Öppna mappen som innehåller filen"
# AI Translated
msgid "Forward"
msgstr "Framåt"
-# AI Translated
-msgid "Tools"
-msgstr "Verktyg"
-
# AI Translated
msgid "View Source"
msgstr "Visa källkod"
@@ -32878,6 +37262,75 @@ msgstr "Ladda %1% till %2%"
msgid "Load %s"
msgstr "Ladda %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Skrivaragenten '%1%' kunde inte aktiveras: agent-ID '%2%' är redan registrerat av förmågan '%3%' från insticksmodulen '%4%'."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Skrivaragenten '%1%' kunde inte aktiveras: agent-ID '%2%' är redan registrerat av '%3%'."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Filen har laddats upp"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Laddar upp G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Startar utskrift..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Utskriften har startat"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Laddar upp..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Nätverksbibliotekets version har inte angetts"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Nätverksbiblioteket hittades inte"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Det gick inte att läsa in nätverksbiblioteket"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Nätverksbiblioteket kunde inte läsas in"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "En äldre insticksmodulserie. Funktioner som kräver stöd från en nyare insticksmodul, till exempel ögonblicksbilder av utskriftsfel i dialogrutan för enhetsfel, är inte tillgängliga."
+
+# AI Translated
+msgid "unknown name"
+msgstr "okänt namn"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"Insticksmodulen \"%s\" begär läsåtkomst till:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Behörigheter för insticksmodul"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -32892,37 +37345,61 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
-"Insticksmodulen \"%s\" begär att få läsa följande fil(er):\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"Insticksmodulen \"%s\" begär att få läsa följande fil:\n"
+"%s"
+msgstr[1] ""
+"Insticksmodulen \"%s\" begär att få läsa följande filer:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
-"Insticksmodulen \"%s\" begär att få läsa/skriva följande fil(er):\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"Insticksmodulen \"%s\" begär att få läsa/skriva följande fil:\n"
+"%s"
+msgstr[1] ""
+"Insticksmodulen \"%s\" begär att få läsa/skriva följande filer:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
-"Insticksmodulen \"%s\" begär att få skapa följande fil(er):\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"Insticksmodulen \"%s\" begär att få skapa följande fil:\n"
+"%s"
+msgstr[1] ""
+"Insticksmodulen \"%s\" begär att få skapa följande filer:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
-"Insticksmodulen \"%s\" begär att få radera följande fil(er):\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"Insticksmodulen \"%s\" begär att få radera följande fil:\n"
+"%s"
+msgstr[1] ""
+"Insticksmodulen \"%s\" begär att få radera följande filer:\n"
"%s"
# AI Translated
@@ -32946,10 +37423,30 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"Insticksmodulen \"%s\" begär att få köra följande kommando:\n"
+"%s"
+msgstr[1] ""
+"Insticksmodulen \"%s\" begär att få köra följande kommandon:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "Insticksmodulen \"%s\" begär behörighet att skapa en tråd."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"Insticksmodulen \"%s\" begär att få köra följande kommando(n):\n"
+"Insticksmodulen \"%s\" begär att ersätta det program som körs med:\n"
"%s"
# AI Translated
@@ -32961,6 +37458,46 @@ msgstr "Insticksmodulen \"%s\" begär behörighet för Python-granskningshändel
msgid "Plugin permission request"
msgstr "Behörighetsbegäran från insticksmodul"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "Förinställningen lagrar ogiltig JSON för konfigurationen av insticksmodulens förmågor."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "Förinställningens konfiguration av insticksmodulens förmågor är inte en array och kan inte redigeras."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Skrivaranslutning"
+
+# AI Translated
+msgid "Pages"
+msgstr "Sidor"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Analys"
+
+# AI Translated
+msgid "Importer"
+msgstr "Importerare"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Exporterare"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Visualisering"
+
+# AI Translated
+msgid "Script"
+msgstr "Skript"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Beredningspipeline"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "Insticksmodulens konfigurationsgränssnitt var tomt. Standardredigeraren visas."
@@ -32983,8 +37520,346 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Konfigurationen kunde inte skrivas till disken. Inget ändrades."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Installationen av insticksmodulen misslyckades"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Installationen av insticksmodulen misslyckades: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: den installerade insticksmodulen hittades inte i katalogen."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "Molninsticksmodulens nyckel saknar UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Det gick inte att prenumerera på molninsticksmodulen, se loggarna för mer information."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Endast molninsticksmoduler kan avprenumereras."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Det gick inte att avprenumerera på insticksmodulen, se loggarna för mer information."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Det gick inte att hämta nedladdnings-URL:en för insticksmodulen (resultat %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Du har inte behörighet att ladda ner den här molninsticksmodulen."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Inget insticksmodulpaket finns tillgängligt för det här operativsystemet."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "Den valda insticksmodulsversionen hittades inte."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "Insticksmodulsversion %1% hittades inte."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Molninsticksmodulen hittades inte."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Nedladdningen av molninsticksmodulen hittades inte: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Nedladdningen av molninsticksmodulen hittades inte."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Ingen nedladdnings-URL finns tillgänglig för den här insticksmodulen. Kontrollera loggarna efter fel."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Det gick inte att ladda ner insticksmodulen: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Nedladdningen av insticksmodulen misslyckades med HTTP-status %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Nedladdningen av insticksmodulen returnerade tomma data."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Det gick inte att skapa en tillfällig fil för nedladdningen av insticksmodulen."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Det gick inte att skriva insticksmodulens data till den tillfälliga filen."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Det gick inte att fastställa insticksmodulens mapp: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Det gick inte att radera insticksmodulens mapp %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Insticksmodulens mapp finns inte: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "Insticksmodulens mapp innehåller flera .py-filer: %1% och %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "Insticksmodulens mapp innehåller flera .whl-filer: %1% och %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "Insticksmodulens mapp innehåller både .py- och .whl-startfiler"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "Insticksmodulens mapp innehåller ingen .py- eller .whl-startfil"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Fel i beredningspipelinens insticksmodul '%1%': %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Insticksmodulpaketet måste vara en .py- eller .whl-fil, fick: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Det gick inte att extrahera .whl-beroendet %1% för insticksmodulen: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Det gick inte att lägga till .whl-beroendet i sys.path: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Python-tolken är inte initierad: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Insticksmodulens manifest är ogiltigt: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Det gick inte att installera insticksmodulens beroenden: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Det gick inte att läsa in modulen för insticksmodulen: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Registreringen av insticksmodulen misslyckades: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Modulen för insticksmodulen registrerade inga förmågor"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Insticksmodulen deklarerar förmågan '%1%' flera gånger för typen %2%"
+
+# AI Translated
+# Needs human review: 'Materialization' = the plugin's declared capabilities being instantiated; check the term reads right in the plugin error log.
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Materialiseringen av insticksmodulens förmåga misslyckades: %1%"
+
+# AI Translated
+# Needs human review: 'Materialization' = the plugin's declared capabilities being instantiated; check the term reads right in the plugin error log.
+msgid "Plugin capability materialization failed"
+msgstr "Materialiseringen av insticksmodulens förmåga misslyckades"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "on_load för insticksmodulen misslyckades: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "on_load för insticksmodulen misslyckades"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Insticksmodulpaketet är inte en fil: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "UUID för molninsticksmodulen är inte en giltig identifierare: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Det gick inte att skapa insticksmodulens mapp %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Det gick inte att säkerhetskopiera den befintliga insticksmodulen %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Det gick inte att kopiera insticksmodulens fil till %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Det gick inte att skriva insticksmodulens installationsstatus: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Insticksmodulpaketet är redan inläst: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Förmågekollision för typen %1% och namnet '%2%'"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "En dubblerad insticksmodulsnyckel hittades: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Inläsningen av insticksmodulen pågår fortfarande"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Insticksmodulen är ogiltig: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Insticksmodulen hittades inte: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Oväntat fel vid inläsning av insticksmodulen: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Oväntat fel vid inläsning av insticksmodulen"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Insticksmodulens manifest hittades inte: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Det gick inte att hämta insticksmoduler från molnet. Se loggarna för detaljer."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Logga in på OrcaCloud för att installera den här insticksmodulen."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "Den prenumererade molninsticksmodulen returnerades inte av OrcaCloud."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Det gick inte att ladda ner molninsticksmodulen."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Det gick inte att installera molninsticksmodulen."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Endast molninsticksmoduler kan uppdateras."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Ingen uppdatering finns tillgänglig för den här insticksmodulen."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Vägrar radera en insticksmodul utanför de kända mapparna för insticksmoduler."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Vägrar uppdatera en insticksmodul utanför de kända mapparna för insticksmoduler."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Det går inte att behålla insticksmodulen lokalt: den lokala insticksmodulsnyckeln finns redan: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Det gick inte att uppdatera insticksmodulens installationsstatus: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Du kan inte avprenumerera på dina egna insticksmoduler."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Endast molninsticksmoduler kan raderas och avprenumereras."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Du kan inte avprenumerera på dina egna insticksmoduler. Använd Radera för att ta bort de lokala filerna."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Begäran om läsbehörighet till filsystemet för insticksmodulen nekades"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -33018,6 +37893,10 @@ msgstr "sammanfogningen av den dubbelsidiga extruderingen misslyckades"
msgid "imported regions produced no extrudable geometry"
msgstr "de importerade områdena gav ingen geometri som kan extruderas"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "profilen korsar rotationsaxeln — den måste ligga på ena sidan av den"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Det gick inte att rotera"
@@ -33054,6 +37933,10 @@ msgstr "Det gick inte att skapa fickans yta"
msgid "Pocket cut failed"
msgstr "Urskärningen av fickan misslyckades"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "profilen korsar sig själv eller viker tillbaka på sig själv, så den avgränsar inte ett enda område"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "skissen har ingen sluten slinga"
@@ -33086,10 +37969,26 @@ msgstr "mesh_to_brep: meshen har inga trianglar"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: alla trianglar avvisades som degenererade (prova en mindre tolerans)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "avrundningsradien måste vara större än 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "inga kanter att avrunda i den gruppen"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "avrundningsradien är för stor för den här geometrin"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "fasningsavståndet måste vara större än 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "inga kanter att fasa i den gruppen"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "fasningsavståndet är för stort för den här geometrin"
@@ -33102,6 +38001,153 @@ msgstr "apply_fillet: OCCT-avrundningen misslyckades"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: OCCT-fasningen misslyckades"
+# AI Translated
+msgid "empty component list"
+msgstr "tom komponentlista"
+
+# AI Translated
+msgid "empty component index"
+msgstr "tomt komponentindex"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "komponentindex måste vara >= 1 (fick %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "ogiltigt komponentindex \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "minst 2 komponenter krävs (fick %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "dubblerat komponentindex %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "tomt värde för andel"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "andelen måste vara positiv (fick %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "ogiltig andel \"%1%\""
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "antalet andelar måste stämma med antalet komponenter: förväntade %1%, fick %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "förväntade två kommaseparerade flyttal, t.ex. \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "start- och slutandelar måste ligga i (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "arraystorleken %1% stämmer inte med antalet filamentplatser %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "måste anges när parametrar för blandat filament anges"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "plats %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "plats %1%: komponent %2% ligger utanför intervallet (högsta index för fysiskt filament är %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "plats %1%: kan inte referera till sig själv som komponent"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "plats %1%: komponent %2% refererar till en plats med blandat filament"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "plats %1%: gradient kräver exakt 2 komponenter"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "plats %1%: ogiltig kurva (minst 2 giltiga kontrollpunkter krävs)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Det gick inte att läsa in konfigurationsfilen \"%1%\": %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Inte en G-code-fil som genererats av %1%."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Konfigurationstaggen \"%1%\" hittades inte"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Misstänkt få konfigurationsvärden extraherades från %1%: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Det gick inte att läsa in step-filen.\n"
+"Filen kan inte öppnas för läsning.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "import av svg misslyckades: kunde inte öppna svg."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "import av svg misslyckades: kunde inte tolka den importerade svg-datan."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Anpassad G-code rapporterar negativt z_retracted."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Anpassad G-code rapporterar negativt z_restart_extra."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Kopieringen av mappen %1% till %2% misslyckades: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Autentiseringen är klar"
@@ -33290,7 +38336,7 @@ msgid ""
"Did you know that OrcaSlicer supports Auxiliary part cooling fan?"
msgstr ""
"Extra fläkt\n"
-"Visste du att OrcaSlicer stöder en extra del kylningsfläkt?"
+"Visste du att OrcaSlicer stöder en extra delkylningsfläkt?"
# AI Translated
#: resources/data/hints.ini: [hint:Air filtration]
@@ -33298,8 +38344,8 @@ msgid ""
"Air filtration/Exhaust Fan\n"
"Did you know that OrcaSlicer can support Air filtration/Exhaust Fan?"
msgstr ""
-"Luftfiltrering/utsugs fläkt\n"
-"Visste du att OrcaSlicer kan stödja luftfiltrering/utsugs fläkt?"
+"Luftfiltrering/utsugsfläkt\n"
+"Visste du att OrcaSlicer kan stödja luftfiltrering/utsugsfläkt?"
# AI Translated
#: resources/data/hints.ini: [hint:G-code window]
@@ -33471,14 +38517,15 @@ msgstr ""
"Dela upp dina utskrifter i byggytor\n"
"Visste du att du kan dela upp en modell med många delar i enskilda byggytor som är färdiga att skrivas ut? Detta förenklar processen att hålla reda på alla delar."
+# AI Translated
#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer
#: Height]
msgid ""
"Speed up your print with Adaptive Layer Height\n"
"Did you know that you can print a model even faster by using the Adaptive Layer Height option? Check it out!"
msgstr ""
-"Snabba upp utskriften med Adaptiv Lager Höjd\n"
-"Visste du att du kan skriva ut en modell ännu snabbare med alternativet Adaptiv Lager Höjd? Kolla in det!"
+"Snabba upp utskriften med Adaptiv Lagerhöjd\n"
+"Visste du att du kan skriva ut en modell ännu snabbare med alternativet Adaptiv Lagerhöjd? Kolla in det!"
#: resources/data/hints.ini: [hint:Support painting]
msgid ""
@@ -33562,6 +38609,1158 @@ msgstr ""
"Undvik vridning\n"
"Visste du att när du skriver ut material som är benägna att vrida, såsom ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten för vridning?"
+# AI Translated
+#~ msgid "Please choose the filament color"
+#~ msgstr "Välj filamentfärg"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Linjebredd för bridgen. Om värdet anges i % beräknas det utifrån nozzeldiametern.\n"
+#~ "Rekommenderas att användas med högre bridge-densitet eller bridge-flödesförhållande.\n"
+#~ "\n"
+#~ "Maxvärdet är 100 % eller nozzeldiametern.\n"
+#~ "Om det sätts till 0 motsvarar linjebredden bredden på inre solid ifyllnad."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Aktivera det här alternativet för att sakta ner utskriften i områden där perimetrar kan ha böjt sig uppåt.\n"
+#~ "Till exempel tillämpas ytterligare nedsaktning vid utskrift av överhäng i skarpa hörn, som fören på en Benchy, vilket minskar uppböjning som annars förvärras över flera lager.\n"
+#~ "\n"
+#~ "Det rekommenderas i allmänhet att ha det här alternativet påslaget, om inte skrivarens kylning är tillräckligt kraftfull eller utskriftshastigheten tillräckligt låg för att perimetrarna inte ska böja sig. \n"
+#~ "Om du skriver ut med hög hastighet på ytterperimetern kan den här parametern ge väggartefakter vid nedsaktningen, eftersom den potentiellt stora variationen i utskriftshastighet gör att extrudern inte hinner med den begärda flödesändringen.\n"
+#~ "Den bakomliggande orsaken till dessa artefakter är sannolikt att PA-inställningen är något fel, särskilt i kombination med lång PA-utjämningstid.\n"
+#~ "\n"
+#~ "Rekommendationer när du aktiverar det här alternativet:\n"
+#~ "1. Minska Pressure Advance-utjämningstiden till 0,015–0,02 så att extrudern reagerar snabbt på hastighetsändringarna.\n"
+#~ "2. Öka minimihastigheterna för utskrift för att begränsa nedsaktningens omfattning och minska variationen mellan snabba och långsamma sträckor.\n"
+#~ "3. Om artefakter fortfarande syns, aktivera Extrusion Rate Smoothing (ERS) för att jämna ut flödesövergångarna ytterligare.\n"
+#~ "\n"
+#~ "Obs! När det här alternativet är aktiverat behandlas överhängsperimetrar som överhäng, vilket innebär att överhängshastigheten tillämpas även om den överhängande perimetern är en del av en bridge.\n"
+#~ "Till exempel, när perimetrarna hänger över till 100 % utan någon vägg som stöder dem underifrån, tillämpas hastigheten för 100 % överhäng."
+
+# AI Translated
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Hastighet för de externt synliga bridge-extruderingarna.\n"
+#~ "\n"
+#~ "Om Sakta ner för uppböjda perimetrar är avaktiverat eller Klassiskt överhängsläge är aktiverat är detta dessutom utskriftshastigheten för överhängsväggar som har stöd på mindre än 13 %, oavsett om de ingår i en bridge eller ett överhäng."
+
+# AI Translated
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Den här separata inställningen påverkar hastigheten för perimetrar med radie <= small_perimeter_threshold (oftast hål). Om den anges i procent (till exempel 80 %) beräknas den utifrån inställningen för ytterväggshastighet ovan. Sätt till noll för automatiskt."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Samma som \"Små perimetrar\", men för support. Den här separata inställningen påverkar supporthastigheten för områden <= `small_support_perimeter_threshold`. Om den anges i procent (till exempel 80 %) beräknas den utifrån inställningen för hastighet för support eller supportens kontaktyta ovan. Sätt till noll för automatiskt."
+
+# AI Translated
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Utskriftssekvens för de inre och yttre väggarna.\n"
+#~ "\n"
+#~ "Använd Inre/Yttre för bästa överhäng. Det beror på att de överhängande väggarna kan fästa mot en intilliggande perimeter under utskriften. Alternativet ger dock något sämre ytkvalitet, eftersom ytterperimetern deformeras när den trycks mot innerperimetern.\n"
+#~ "\n"
+#~ "Använd Inre/Yttre/Inre för bästa yttre ytfinish och måttnoggrannhet, eftersom ytterväggen skrivs ut utan att störas av en innerperimeter. Överhängsprestandan blir dock sämre eftersom det inte finns någon innerperimeter att skriva ytterväggen mot. Alternativet kräver minst 3 väggar för att vara effektivt, eftersom det först skriver ut de inre väggarna från den 3:e perimetern och utåt, sedan ytterperimetern och slutligen den första innerperimetern. Detta alternativ rekommenderas framför Yttre/Inre i de flesta fall.\n"
+#~ "\n"
+#~ "Använd Yttre/Inre för samma fördelar med ytterväggskvalitet och måttnoggrannhet som Inre/Yttre/Inre. Z-sömmarna blir dock mindre konsekventa, eftersom den första extruderingen på ett nytt lager börjar på en synlig yta."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Hastigheten för det första lagret förutom för solida ifyllnads sektioner"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Hastigheten för fasta ifyllnadsdelar av det första lagret"
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Detta gör att ifyllnads ytan förstoras något så att den överlappar väggarna för bättre bindning. Procentvärdet är relativt linjebredden för sparsam ifyllnad. Ställ in detta värde på ~10-15 % för att minimera risken för överextrudering och materialansamling som ger ojämna toppytor."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "Området med övre solid ifyllnad förstoras något så att det överlappar väggen för bättre bindning och för att minimera synliga nålhål där den övre ifyllnaden möter väggarna. Ett värde på 25–30 % är en bra utgångspunkt för att minimera nålhål. Procentvärdet är relativt linjebredden för sparsam ifyllnad."
+
+# AI Translated
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Sammanflätningsdjup för ett segmenterat område. Det ignoreras om \"mmu_segmented_region_max_width\" är noll eller om \"mmu_segmented_region_interlocking_depth\" är större än \"mmu_segmented_region_max_width\". Noll avaktiverar funktionen."
+
+# AI Translated
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Minska höjden på perimetrar vid ovansidor så att de matchar modellens kanthöjd.\n"
+#~ "Påverkar perimetrar med en lutning mindre än den här vinkeln (grader).\n"
+#~ "Ett rimligt värde är 35. Sätt till 0 för att avaktivera."
+
+# AI Translated
+#~ msgid "Role base wipe speed"
+#~ msgstr "Avtorkningshastighet efter extruderingstyp"
+
+# AI Translated
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Ett dragskydd är användbart för att skydda en ABS- eller ASA-utskrift från att slå sig och lossna från byggplattan på grund av luftdrag. Det behövs oftast bara med öppna skrivare, det vill säga utan kåpa.\n"
+#~ "\n"
+#~ "Aktiverat = skirten är lika hög som det högsta utskrivna objektet. Annars används 'Skirt-höjd'.\n"
+#~ "Obs! Med dragskyddet aktivt skrivs skirten ut på skirt-avstånd från objektet. Om brim är aktiverat kan den därför skära in i det. Öka värdet för skirt-avstånd för att undvika detta.\n"
+
+# AI Translated
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Den maximala utskriftshastigheten vid rensning i prime tornet och vid utskrift av tornets glesa lager. Vid rensning används den lägsta av hastigheten för sparsam ifyllnad och den hastighet som beräknas från filamentets max volymetriska hastighet, om någon av dem är lägre.\n"
+#~ "\n"
+#~ "Vid utskrift av de glesa lagren används den lägsta av innerperimeterns hastighet och den hastighet som beräknas från filamentets max volymetriska hastighet, om någon av dem är lägre.\n"
+#~ "\n"
+#~ "Om du ökar hastigheten kan tornets stabilitet påverkas, liksom kraften med vilken nozzeln kolliderar med eventuella klumpar som bildats på prime tornet.\n"
+#~ "\n"
+#~ "Innan du ökar parametern över standardvärdet 90 mm/s bör du kontrollera att din skrivare klarar bridging tillförlitligt vid de högre hastigheterna och att dropp vid verktygsbyten är väl kontrollerat.\n"
+#~ "\n"
+#~ "För prime tornets ytterperimetrar används innerperimeterns hastighet oavsett den här inställningen."
+
+# AI Translated
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Yttervägg för prime tornet.\n"
+#~ "1. Rektangel: Standardväggtypen, en rektangel med fast bredd och höjd.\n"
+#~ "2. Kon: En kon med en rundning nedtill som hjälper till att stabilisera prime tornet.\n"
+#~ "3. Ribba: Lägger till fyra ribbor på tornets vägg för ökad stabilitet."
+
+# AI Translated
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Extra flöde som används för rensningslinjerna på prime tornet. Det gör rensningslinjerna tjockare eller smalare än de normalt skulle vara. Avståndet justeras automatiskt."
+
+# AI Translated
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Justera det här värdet för att förhindra att korta, oslutna väggar skrivs ut, vilket kan öka utskriftstiden. Högre värden tar bort fler och längre väggar.\n"
+#~ "\n"
+#~ "OBS! Undersidor och ovansidor påverkas inte av värdet, för att undvika synliga gap på modellens utsida. Justera 'Tröskel för en vägg' i de avancerade inställningarna nedan för att ändra känsligheten för vad som räknas som en ovansida. 'Tröskel för en vägg' visas bara om den här inställningen är satt över standardvärdet 0,5, eller om ovansidor med en vägg är aktiverat."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Dela upp i %1% del"
+#~ msgstr[1] "Dela upp i %1% delar"
+
+#~ msgid "Repair failed"
+#~ msgstr "Reparation misslyckades."
+
+#~ msgid "Repair canceled"
+#~ msgstr "Reparation avbruten"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Vad det här lagret gör där det överlappar lagren under. Lägg till och Subtrahera lägger på relief eller skär bort den. Multiplicera och Dividera skalar det som ligger under, vilket gör lagret till en mask över det - där fungerar Djup som en styrka, och 1 mm lämnar vita områden orörda."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "Meshen har icke-mångfaldig geometri eller öppna gränser. Du kan importera den som den är eller reparera den med Windows 3D-reparationstjänst innan du importerar."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Observera att meshen har icke-mångfaldig geometri eller öppna gränser."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Problem med mesh"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Reparationen misslyckades: meshen är fortfarande öppen efter hålfyllning."
+
+# AI Translated
+# Needs human review: English says 'non-boolean operators' but means operands; translated as 'operander'. Check the source wording.
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Kan inte tillämpa logisk operation på icke-booleska operander."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Läser"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Filamentåtgången överstiger det maximala antalet som målningsverktyget stöder, bara det första %1% filamentet kommeratt vara tillgängligt i färgläggnings verktyget."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Snabbkommando "
+
+# AI Translated
+#~ msgid "Build Volume"
+#~ msgstr "Byggvolym"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Objekten (%1%) har dubblerade kopplingar. Vissa kopplingar kan saknas i beredningsresultatet.\n"
+#~ "Rapportera gärna till OrcaSlicer-teamet i vilket scenario detta problem uppstod.\n"
+#~ "Tack."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d trianglar"
+
+# AI Translated
+#~ msgid " (Moving)"
+#~ msgstr " (Flyttas)"
+
+# AI Translated
+#~ msgid " (Fixed)"
+#~ msgstr " (Fast)"
+
+# AI Translated
+#~ msgid "Filament "
+#~ msgstr "Filament "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "hotend"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Placerar "
+
+#~ msgid "Orienting"
+#~ msgstr "Placerar"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Nollställ alla axlar (tryck "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") för att lokalisera verktygshuvudets position. Detta förhindrar att enheten rör sig utanför den utskrivbara gränsen och orsakar slitage på utrustningen."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Ökar med %1% g filament och %2% byten jämfört med optimal gruppering."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Ökar med %1% g filament men sparar %2% byten jämfört med optimal gruppering."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Sparar %1% g filament men ökar med %2% byten jämfört med optimal gruppering."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Sparar %1% g filament och %2% byten jämfört med en skrivare med en nozzel."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Sparar %1% g filament men ökar med %2% byten jämfört med en skrivare med en nozzel."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Ökar med %1% g filament men sparar %2% byten jämfört med en skrivare med en nozzel."
+
+# AI Translated
+#~ msgid "number keys"
+#~ msgstr "sifferknappar"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Filamenten %s är placerade i %s, men den genererade G-code-banan överskrider det utskrivbara området för %s."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Filamenten %s är placerade i %s, men den genererade G-code-banan överskrider den utskrivbara höjden för %s."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Filamenten %s kan inte skrivas ut direkt på den här plattans yta."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "avslutas innan en ny modell skapas. Vill du fortsätta?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "I Moln Berednings Kön finns det %s uppgifter framför dig."
+
+#~ msgid " upload failed"
+#~ msgstr " uppladdning misslyckades"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " uppladdning av konfiguration misslyckades\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Ingen motsvarande lagrings plats\n"
+
+# AI Translated
+#~ msgid " cannot be opened\n"
+#~ msgstr " kan inte öppnas\n"
+
+# AI Translated
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Din kommentar kunde inte laddas upp av följande skäl:\n"
+#~ "\n"
+#~ " felkod: "
+
+#~ msgid "error message: "
+#~ msgstr "felmeddelande: "
+
+# AI Translated
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Vill du gå vidare till webbsidan för att ge ett betyg?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (processförinställning: %1%)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "Nozzeln %s kan inte skriva ut %s."
+
+# AI Translated
+#~ msgid " nozzle"
+#~ msgstr " nozzel"
+
+# AI Translated
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Det rekommenderas inte att skriva ut följande filament med %1%: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " platta %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Ta bort alla %1% blandade filament?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Vill du byta ut den"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Konflikt i byggplattans temperatur: T%d (%s) ställer in byggplattan på %d°C — T%d (%s) kräver %d°C. Det primära verktyget styr byggplattan; sekundära verktyg skriver ut vid den temperatur det ställer in."
+
+# AI Translated
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Inga accelerationer angavs för kalibreringen. Standardvärdet för acceleration används "
+
+# AI Translated
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Inga hastigheter angavs för kalibreringen. Standardvärdet för optimal hastighet används "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Det finns inget temperaturtorn för bandskrivare för intervallet %1% till %2% °C. Använd ett intervall som tornmodellerna täcker, till exempel 230 till 190."
+
+#~ msgid "The selected file"
+#~ msgstr "Den valda filen"
+
+# AI Translated
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "Innehåller ingen giltig G-code."
+
+# AI Translated
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "med OrcaSlicer så att Orca kan öppna modeller från"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Kostar %d g filament och %d byten mer än optimal gruppering."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Parametrar med den här ikonen kan ställas in per nozzel."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Hittade reserverade nyckelord"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d Filament inställning och %d Process inställning är kopplade till denna printer. Dessa inställningar raderas om printern raderas."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Följande förinställningar ärver denna förinställning."
+#~ msgstr[1] "Följande förinställning ärver denna förinställning."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% Förinställning"
+
+# AI Translated
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Är du säker på att du vill %1% den valda förinställningen?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Dela upp i %1% delar"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Laddar ner nya leverantörsprofiler: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Det gick inte att ladda ner leverantörsprofiler: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "I det här Span-läget skriver bara %1% ut färger, men filament %2% är inte kopplat till något verktyg. Använd filament som är kopplade till %1%, eller växla den här plattan till läget Primär."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "I det här Span-läget skriver bara %1% ut färger, men filament %2% är kopplat till T%3%. Använd filament som är kopplade till %1%, eller växla den här plattan till läget Primär."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " är för nära undantagsområdet, det kan förekomma kollisioner vid utskrift."
+
+# AI Translated
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " ligger för nära området för klumpdetektering, det kan uppstå kollisioner vid utskrift."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Prime Torn"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr "är för nära andra och kollisioner kan orsakas.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " är för nära uteslutningsområdet, och kollisioner kommer att orsakas.\n"
+
+# AI Translated
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " ligger för nära området för klumpdetektering, vilket kommer att orsaka kollisioner.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " är delvis utanför det utskrivbara området och kan inte skrivas ut.\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "inget konfigurerat verktyg"
+
+# AI Translated
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "Lägg till slut-G-code när hela utskriften avslutas."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Max X hastighet"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Max Y hastighet"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Max Z hastighet"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Max E hastighet"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Python-insticksmoduler som anropas vid varje steg i beredningspipelinen för att läsa och ändra mellanliggande beredningsdata, inklusive ett avslutande efterbearbetningssteg för G-code. Forskning/experimentellt."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "När detta är aktiverat genererar beredningsprogrammet G-code med den primära zonens innehåll centrerat kring byggplattans origo (0,0). Skrivarens fasta programvara ansvarar för att placera kopior/speglingar på varje fysisk zonposition. Aktivera endast på skrivare vars fasta programvara tillämpar egna zonförskjutningar i läget Kopia/Spegel (t.ex. dupliceringsläget för IDEX i RepRapFirmware). Har ingen effekt i läget Primär."
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Åsidosättning per platta som mappar fysiska huvuden till filamentplatser (1-baserade). Tomt innebär att standardvärdena för pem-inversion används."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Axeln som meshen roteras kring före beredning. Detta är bandskrivarens lutning: en isometrisk (förvrängningsfri) rotation som även styr renderingen av byggplattan och tyngdkraftslutningen för support, och som G-code-baktransformationen inverterar före skjuvningen/skalningen och ommappningen till maskinkoordinatsystemet. X är den typiska portallutningen (bandet rör sig längs Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Expertinställning: ange lutningsvinkeln för maskinkoordinatsystemet (G-code-skjuvning/skalning) oberoende av rotationsvinkeln före beredning. När detta är inaktiverat härleds transformationen till maskinkoordinatsystemet från bandets lutningsvinkel, så att en enda vinkel styr båda stegen. Aktivera endast för att kompensera för en maskin vars fysiska portallutning skiljer sig från beredningsrotationen."
+
+# AI Translated
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "Den största avvikelse som tillåts när upplösningen minskas för inställningen 'Maximal väggupplösning'. Om du ökar den blir utskriften mindre exakt, men G-code:n blir mindre. 'Maximal väggavvikelse' begränsar 'Maximal väggupplösning', så om de två står i konflikt har 'Maximal väggavvikelse' företräde."
+
+#~ msgid " not in range "
+#~ msgstr " inte inom intervallet "
+
+#~ msgid "floating regions"
+#~ msgstr "flytande regioner"
+
+#~ msgid "floating cantilever"
+#~ msgstr "flytande konsol"
+
+#~ msgid "large overhangs"
+#~ msgstr "stora överhäng"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Det verkar som om objektet %s har %s. Vänligen orientera om objektet eller aktivera supportgenerering."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Inga lager upptäcktes. Du kanske vill reparera din(a) STL-fil(er) eller kontrollera deras storlek eller tjocklek och försöka igen.\n"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Den här maskintypen kan bara lagra %d historiska resultat per nozzel. Det här resultatet kommer inte att sparas."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Den här maskintypen kan bara lagra %d historiska resultat per nozzel."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Överhäng"
+
+# AI Translated
+#~ msgid "Start / End"
+#~ msgstr "Start/slut"
+
+# AI Translated
+#~ msgid "Damp"
+#~ msgstr "Dämpning"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "Hittade %d IFS-platser på skrivaren."
+
+#~ msgid "selected"
+#~ msgstr "vald"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Följande förinställningar ärver denna förinställning."
+#~ msgstr[1] "Följande förinställning ärver denna förinställning."
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "Hittade %zu Creality-skrivare. Välj en och klicka på Använd vald."
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "logg(ar)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Fel: extrudern %s har ingen tillgänglig %s-nozzel, det aktuella grupperingsresultatet är ogiltigt."
+
+# AI Translated
+#~ msgid "invalid brim ears"
+#~ msgstr "ogiltiga brim-öron"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Hoppar över %d objekt."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Öppna mappen i filhanteraren"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Klicka på mittpunkten och sedan ett hörn — %d sidor, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "omskriven"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "inskriven"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Skiss skapad (%zu styrande mått) — välj den och högerklicka sedan för att extrudera"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — %zu trianglar"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Den här meshen har %d trianglar. Varje triangel blir en B-rep-yta före sammanslagning av koplanära ytor, så importen kan ta lång tid och ge en kropp som är långsam att redigera. Det är oftast bättre att decimera meshen först.\n"
+#~ "\n"
+#~ "Vill du importera ändå?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Importerad solid — %d trianglar → %d ytor, volym %.2f mm³. Välj en yta eller kant och sedan Avrundning / Skär / Skal för att ändra"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — dra för att placera/ändra storlek, sedan Bekräfta"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d skisselement"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — skriv ett värde, tryck på Enter (eller Bekräfta)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Förhandsvisning — %zu trianglar"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "%1% villkor kan inte verka på den här geometrin (en ellips eller splinekurva, eller en cirkel med storleken noll) och ignoreras"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "%1% villkor som avrundningen/fasningen gjorde ogiltiga togs bort"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "%1% villkor upphävdes av transformationen"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...och %1% öppna ände(r) till"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "Materiallistan stöder högst %1% färger. Efter uppdelningen av %2% skulle antalet material överstiga %1%. Ta bort oanvända filament på huvudskärmen innan du delar upp."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% utskrivbara färger från %2% filament"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% öar"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Alla %1% lager används"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Förhandsvisning: %1% trianglar"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Modell: %1% trianglar - inbakningen förfinar till upplösningen ovan, upp till sin budget"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Inbakningen flyttar befintliga hörn - modellen förblir på %1% trianglar"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Inbakat resultat upp till ~%1% k trianglar"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% lager inte målade, hoppades över"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Projektet stöder upp till %d filament. Extra filament kommer att förkastas."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d hörn valda | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d kanter valda | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d öar valda | dra = flytta tillsammans, Skift/Ctrl-klick = lägg till/ta bort, R/S = rotera/skala den primära"
+
+# AI Translated
+# Needs human review: UV editor header tooltip. The English names a 'Tiling' setting that no texture-layer control is labelled; the size control is 'Tile size' (Rutstorlek) and the checkbox is 'Tile' (Sida vid sida). Align the last sentence with whichever control is meant.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Det aktiva lagrets rutstorlek: hur stor del av modellen en upprepning av texturen täcker. Arbetsytan mäts i rutor, så en rutnätscell är en upprepning. Ändra den med Upprepning i lagrets inställningar."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d öar, %s ytor"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Insticksmodulen \"%s\" begär att få läsa följande fil(er):\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Insticksmodulen \"%s\" begär att få läsa/skriva följande fil(er):\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Insticksmodulen \"%s\" begär att få skapa följande fil(er):\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Insticksmodulen \"%s\" begär att få radera följande fil(er):\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Insticksmodulen \"%s\" begär att få köra följande kommando(n):\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Installationen av insticksmodulen misslyckades"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Microsoft WebView2 Runtime kunde inte installeras.\n"
+#~ "Vissa funktioner, bland annat installationsguiden, kan visas tomma tills den är installerad.\n"
+#~ "Installera den manuellt från https://developer.microsoft.com/microsoft-edge/webview2/ och starta om Orca Slicer."
+
+# AI Translated
+#~ msgid "Why this grouping"
+#~ msgstr "Varför denna gruppering"
+
+# AI Translated
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "Programmet stöder inte att olika nozzeldiametrar används i samma utskrift. Om vänster och höger nozzel skiljer sig åt kan vi bara fortsätta med utskrift med ett huvud. Bekräfta vilken nozzel du vill använda för det här projektet."
+
+# AI Translated
+#~ msgid "Switch diameter"
+#~ msgstr "Byt diameter"
+
+# AI Translated
+#~ msgid "BambuStudio Project"
+#~ msgstr "BambuStudio-projekt"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "3MF-filen skapades av BambuStudio (version %s), som är nyare än den kompatibla versionen %s. Okända inställningar hittades:"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "3MF-filen skapades av BambuStudio (version %s), som är nyare än den kompatibla versionen %s. Vissa inställningar kanske inte är helt kompatibla."
+
+# AI Translated
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "3MF-filen skapades av BambuStudio. Vissa inställningar kan skilja sig från OrcaSlicer."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Det går inte att ångra eller göra om medan en åtgärd pågår. Stoppa den först."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Centrerar varje dels inre ifyllnad på sig själv, som om den bereddes ensam, i stället för på hela sammansättningen. Delar som rör vid eller överlappar varandra behandlas som en kropp och delar mittpunkt; separata delar (eller distinkta 3D-objekt) får var sin.\n"
+#~ "Användbart när en sammansättning grupperar flera objekt som var och ett ska behålla en konsekvent, självcentrerad ifyllnad.\n"
+#~ "Påverkar linje- och rutnätsmönster samt ifyllnader med rotationsmall.\n"
+#~ "Mönster som är låsta till globala koordinater (Gyroid, Bikaka, TPMS, ...) påverkas inte."
+
+# AI Translated
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Det aktuella lagrets index. Ettbaserat (alltså är första lagret nummer 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Videohandledning"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Primitiv"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Tom mesh genererades"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Låda"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Förval:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Bredd (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Djup (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Höjd (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "Nedre R"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "Övre R"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "Stor R"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "Liten R"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Alla kanter"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Övre kanter"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Nedre kanter"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Sidokanter"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Meshupplösning"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Lägg till form"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Ingen yttre profil"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Det gick inte att skapa den yttre ytan"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Det gick inte att skapa en yta med hål"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Rotationen misslyckades"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Profil"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Starta ny profil (för hål)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segment"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Sidor"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Klicka i vyn för att rita"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Fäst mot rutnät"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Rutnätssteg"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Yttre"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "sluten"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% punkter %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (Topp)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (Front)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (Sida)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Rotationsvinkel"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "Ange 0 för extrudering, >0 för rotation"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Ficka (skär)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu sluten profil"
+#~ msgstr[1] "%zu slutna profiler"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Rita en sluten profil för att aktivera"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Tomt resultat"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Extrudera: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Rotera: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Inget objekt valt"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Det gick inte att skapa ytan"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Det gick inte att skapa ytan med hål"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Verktygets mesh är tom"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Ficka tillagd (negativ volym)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Ficka: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Kräver att det aktiva lagret är mappat med Veckla ut (LSCM)."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Schackmönster - ett testrutnät i stället för texturen. Där rutorna förblir kvadratiska är texturen oförvrängd; där de sträcks ut blir även den det"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Förvrängning - värmekarta från blått till rött över utsträckningen i UV-utvecklingen"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Blanda efter"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Yta"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Lager: de två filamenten växlar mellan utskriftslager, vilket blandas jämnt på stående ytor men försvinner på plana ytor, där ett helt lager är ett enda band.\n"
+#~ "Yta: ett fint schackmönster över ytan, som fungerar i alla vinklar men kan uppfattas som textur snarare än som en blandning.\n"
+#~ "Automatisk: lager på stående ytor; plana ytor får det närmaste enskilda filamentet, eftersom ett schackmönster där syns som ett mönster."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Ö - flytta, rotera och skala hela öar"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Hörn - dra hörn för att ändra formen; Skift/Ctrl för flerval"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Kant - dra kanter för att ändra formen; Skift/Ctrl för flerval"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Visa alla öar (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Experimentellt) Använd skrivaragenter i stället för utskriftsvärdar"
@@ -33595,16 +39794,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Klicka på en yta eller ett referensplan och välj sedan ett ritverktyg"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -33661,10 +39850,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Vertikalt avstånd"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Linjär"
-
#~ msgid "Face recognition"
#~ msgstr "Ansiktsigenkänning"
@@ -35252,9 +41437,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "val av delar"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction mode.\n"
#~ "\n"
diff --git a/localization/i18n/th/OrcaSlicer_th.po b/localization/i18n/th/OrcaSlicer_th.po
index 7631bd1f50..c0b34bc848 100644
--- a/localization/i18n/th/OrcaSlicer_th.po
+++ b/localization/i18n/th/OrcaSlicer_th.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2026-06-19 13:40+0700\n"
"Last-Translator: Icezaza\n"
"Language-Team: Thai\n"
@@ -410,8 +410,10 @@ msgid "Please wait"
msgstr "โปรดรอสักครู่"
# AI Translated
-msgid "Reading"
-msgstr "กำลังอ่าน"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "แร็คฮอตเอนด์แบบเหนี่ยวนำ: กำลังอ่าน %d/%d"
# AI Translated
msgid "Running..."
@@ -573,9 +575,11 @@ msgstr "Gizmo-Place บนหน้า"
msgid "Lay on Face"
msgstr "วางบนหน้า"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "จำนวนเส้นพลาสติกเกินจำนวนสูงสุดที่เครื่องมือพ่นสีรองรับ เฉพาะเส้นพลาสติก %1% แรกเท่านั้นที่จะสามารถใช้ได้ในเครื่องมือวาดภาพ"
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "จำนวนเส้นพลาสติกเกินจำนวนสูงสุดที่เครื่องมือระบายสีรองรับ เครื่องมือระบายสีจะใช้ได้เฉพาะเส้นพลาสติก %1% รายการแรกเท่านั้น"
msgid "Color Painting"
msgstr "ระบายสี"
@@ -627,8 +631,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "ปุ่มลัด"
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "ปุ่มลัด %d"
msgid "Triangle"
msgstr "สามเหลี่ยม"
@@ -721,6 +727,9 @@ msgstr "มม."
msgid "Part selection"
msgstr "การเลือกชิ้นส่วน"
+msgid "Select multiple objects"
+msgstr "เลือกหลายวัตถุ"
+
msgid "Fixed step drag"
msgstr "แก้ไขการลากขั้นตอน"
@@ -783,10 +792,80 @@ msgstr "ชิ้นส่วน"
msgid "Relative"
msgstr "สัมพัทธ์"
+msgid "Selection"
+msgstr "การเลือก"
+
+# AI Translated
+msgid "Plate"
+msgstr "เพลต"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "ระบบพิกัดที่ใช้สำหรับการแปลงรูป"
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "จัดชิดซ้าย"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "จัดกึ่งกลางซ้าย-ขวา"
+
+# AI Translated
+msgid "Align right"
+msgstr "จัดชิดขวา"
+
+# AI Translated
+msgid "Align front"
+msgstr "จัดชิดด้านหน้า"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "จัดกึ่งกลางหน้า-หลัง"
+
+# AI Translated
+msgid "Align back"
+msgstr "จัดชิดด้านหลัง"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "จัดชิดด้านล่าง"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "จัดกึ่งกลางบน-ล่าง"
+
+# AI Translated
+msgid "Align top"
+msgstr "จัดชิดด้านบน"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "กระจายในแนวซ้าย-ขวา"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "กระจายในแนวหน้า-หลัง"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "กระจายในแนวบน-ล่าง"
+
+msgid "Drop"
+msgstr "วางลงฐานพิมพ์"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "สัมบูรณ์"
@@ -889,9 +968,6 @@ msgstr "มุมร่อง"
msgid "Cut position"
msgstr "ตำแหน่งตัด"
-msgid "Build Volume"
-msgstr "ปริมาตรการพิมพ์ (Build Volume)"
-
msgid "Multiple"
msgstr "หลายรายการ"
@@ -1063,10 +1139,14 @@ msgstr "ตัวเชื่อม"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
"วัตถุ (%1%) มีคอนเนกเตอร์ซ้ำกัน คอนเนกเตอร์บางส่วนอาจหายไปในผลลัพธ์การสไลซ์\n"
"โปรดรายงานให้ทีม OrcaSlicer ทราบว่าปัญหานี้เกิดขึ้นในสถานการณ์ใด\n"
"ขอบคุณ"
@@ -1132,9 +1212,11 @@ msgstr "ต่ำ"
msgid "Extra low"
msgstr "ต่ำมาก"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d รูปสามเหลี่ยม"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% รูปสามเหลี่ยม"
msgid "Show wireframe"
msgstr "แสดงโครงลวด"
@@ -1145,6 +1227,17 @@ msgstr "ใช้ไม่ได้เมื่อประมวลผลกา
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "การดำเนินการยกเลิกแล้ว กรุณารอสักครู่."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "ยกเลิกการลดความซับซ้อนของโมเดลแล้ว"
+
+msgid "Wiki Guide"
+msgstr "คู่มือวิกิ"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "วิดีโอแนะนำ"
+
msgid "Enforce seam"
msgstr "บังคับรอยตะเข็บ"
@@ -1195,6 +1288,14 @@ msgstr "ตำแหน่งบนพื้นผิว"
msgid "Emboss"
msgstr "ลายนูน"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "ไม่มีฟอนต์ที่ใช้งานอยู่ในสไตล์ โปรดเลือกฟอนต์ที่ถูกต้อง"
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "โหลด WxFont ไม่ถูกต้อง"
+
msgid "NORMAL"
msgstr "ปกติ"
@@ -1845,11 +1946,25 @@ msgstr "เส้นผ่านศูนย์กลาง"
msgid "Length"
msgstr "ความยาว"
-msgid "Selection"
-msgstr "การเลือก"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "ผิวหน้า 1 (คงที่)"
-msgid " (Moving)"
-msgstr "(ขนย้าย)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "ผิวหน้า 2 (เคลื่อนที่)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "จุด 1 (คงที่)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "จุด 2 (เคลื่อนที่)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "การเลือก 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1865,14 +1980,9 @@ msgstr ""
"เลือก 2 จุดหรือวงกลมบนวัตถุและ \n"
" ระบุระยะห่างระหว่างพวกเขา"
-msgid "Face"
-msgstr "หน้า"
-
-msgid " (Fixed)"
-msgstr "(ที่ตายตัว)"
-
-msgid "Point"
-msgstr "จุด"
+# AI Translated
+msgid "Selection 2"
+msgstr "การเลือก 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1952,13 +2062,14 @@ msgstr "คำเตือน: โปรดเลือกคุณสมบั
msgid "Warning: please select Point's or Circle's feature."
msgstr "คำเตือน: โปรดเลือกคุณลักษณะของจุดหรือวงกลม"
+# AI Translated
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"and only parts can be lifted."
msgstr ""
"แนะนำให้ประกอบวัตถุก่อน,\n"
-"เนื่องจากวัตถุถูกจำกัดอยู่บนฐานรองพิมพ์ \n"
+"เนื่องจากวัตถุถูกจำกัดอยู่บนฐานพิมพ์ \n"
"และยกได้เฉพาะชิ้นส่วนเท่านั้น"
msgid "Face and face assembly"
@@ -1970,6 +2081,18 @@ msgstr "เข้าสู่กิซโมการประกอบ"
msgid "Leaving Assembly gizmo"
msgstr "ออกจากกิซโมการประกอบ"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2147,14 +2270,15 @@ msgid "WebView2 Runtime"
msgstr "รันไทม์ WebView2"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"ไม่สามารถติดตั้ง Microsoft WebView2 Runtime ได้\n"
-"ฟีเจอร์บางอย่าง รวมถึงตัวช่วยตั้งค่า อาจแสดงเป็นหน้าว่างจนกว่าจะติดตั้ง\n"
-"โปรดติดตั้งด้วยตนเองจาก https://developer.microsoft.com/microsoft-edge/webview2/ แล้วรีสตาร์ท Orca Slicer"
+"คุณสมบัติบางอย่าง รวมถึงวิซาร์ดการตั้งค่า อาจแสดงเป็นหน้าว่างจนกว่าจะติดตั้ง\n"
+"โปรดติดตั้งด้วยตนเองจาก %1% แล้วรีสตาร์ท Orca Slicer"
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2387,6 +2511,66 @@ msgstr "ข้อจำกัดปลั๊กอินเครือข่า
msgid "Privacy Policy Update"
msgstr "การปรับปรุงนโยบายความเป็นส่วนตัว"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "พรีเซ็ตเส้นพลาสติกทั้งหมดของคุณใช้งานได้บนเครื่องพิมพ์ที่พรีเซ็ตนั้นถูกสร้างมาเพื่อใช้งานด้วย"
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "ย้ายพรีเซ็ตเส้นพลาสติก"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 ปรับโครงสร้างพรีเซ็ตเส้นพลาสติกของระบบหลายรายการ เพื่อแก้ไขโปรไฟล์ที่ไม่ถูกต้องและเตรียมพร้อมสำหรับฟีเจอร์ในอนาคต ส่งผลให้พรีเซ็ตด้านล่างไม่แสดงบนเครื่องพิมพ์บางรุ่นที่พรีเซ็ตนั้นถูกสร้างมาเพื่อใช้งานด้วยอีกต่อไป ขออภัยในความไม่สะดวก นี่เป็นการแก้ไขเพียงครั้งเดียว\n"
+"\n"
+"ต้องการเพิ่มเครื่องพิมพ์เหล่านั้นกลับเข้าไปในพรีเซ็ตของคุณตอนนี้หรือไม่ พรีเซ็ตของคุณจะถูกสำรองไว้ก่อน คุณยังทำภายหลังได้จาก ช่วยเหลือ > ย้ายพรีเซ็ตเส้นพลาสติก"
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (อิงจาก %2%)"
+
+msgid "Don't remind me again"
+msgstr "ไม่ต้องเตือนฉันอีก"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "ไม่สามารถสำรองพรีเซ็ตของคุณได้ จึงไม่ได้ย้ายพรีเซ็ตเหล่านั้น"
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "ไม่สามารถล็อกโฟลเดอร์พรีเซ็ตของผู้ใช้ได้ จึงไม่ได้ย้ายสิ่งใดเลย อาจมีอินสแตนซ์อื่นของ OrcaSlicer กำลังบันทึกพรีเซ็ตอยู่ โปรดลองอีกครั้งในภายหลังจาก ช่วยเหลือ > ย้ายพรีเซ็ตเส้นพลาสติก"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"ไม่สามารถย้ายพรีเซ็ตเส้นพลาสติกของคุณได้ บันทึกข้อมูลสำรองของพรีเซ็ตไว้ที่:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"ย้ายพรีเซ็ตเส้นพลาสติกของคุณแล้ว โปรดเลือกพรีเซ็ตเหล่านั้นอีกครั้งในรายการเส้นพลาสติกที่คุณเคยใช้\n"
+"\n"
+"บันทึกข้อมูลสำรองของพรีเซ็ตไว้ที่:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "ไม่สามารถย้ายพรีเซ็ตเหล่านี้ได้:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "โปรไฟล์ Orca Cloud ของคุณ (รหัสผู้ใช้: \"%s\")"
@@ -2408,8 +2592,9 @@ msgstr ""
"คุณต้องการย้ายไปยังโปรไฟล์ OrcaCloud ของคุณหรือไม่?\n"
"การดำเนินการนี้จะคัดลอกค่าที่ตั้งล่วงหน้าของคุณเพื่อให้สามารถใช้งานได้ภายใต้บัญชีใหม่ของคุณ"
+# AI Translated
msgid "Migrate User Presets"
-msgstr "ย้ายค่าที่ตั้งไว้ของผู้ใช้"
+msgstr "ย้ายพรีเซ็ตของผู้ใช้"
#, c-format, boost-format
msgid ""
@@ -2507,6 +2692,9 @@ msgstr "รีเฟรชปลั๊กอินแล้ว"
msgid "Failed to refresh plugins: %s"
msgstr "ไม่สามารถรีเฟรชปลั๊กอินได้: %s"
+msgid "Unknown error"
+msgstr "ข้อผิดพลาดไม่ทราบสาเหตุ"
+
# AI Translated
msgid "Select plugin package"
msgstr "เลือกแพ็กเกจปลั๊กอิน"
@@ -2583,20 +2771,24 @@ msgstr "ความเร็ว"
msgid "Strength"
msgstr "ความแข็งแรง"
+# AI Translated
msgid "Top solid layers"
-msgstr "ชั้นทึบด้านบน"
+msgstr "เลเยอร์ทึบด้านบน"
+# AI Translated
msgid "Top minimum shell thickness"
-msgstr "ความหนาเปลือกด้านบนขั้นต่ำ"
+msgstr "ความหนาผนังด้านบนขั้นต่ำ"
msgid "Top Surface Density"
msgstr "ความหนาแน่นพื้นผิวด้านบน"
+# AI Translated
msgid "Bottom solid layers"
-msgstr "ชั้นทึบด้านล่าง"
+msgstr "เลเยอร์ทึบด้านล่าง"
+# AI Translated
msgid "Bottom minimum shell thickness"
-msgstr "ความหนาเปลือกด้านล่างขั้นต่ำ"
+msgstr "ความหนาผนังด้านล่างขั้นต่ำ"
msgid "Bottom Surface Density"
msgstr "ความหนาแน่นพื้นผิวด้านล่าง"
@@ -2604,8 +2796,9 @@ msgstr "ความหนาแน่นพื้นผิวด้านล่
msgid "Ironing"
msgstr "รีดผิว"
+# AI Translated
msgid "Fuzzy skin"
-msgstr "ผิวฟัซซี (Fuzzy Skin)"
+msgstr "ผิวฟัซซี"
msgid "Extruders"
msgstr "ชุดดันเส้น"
@@ -3032,6 +3225,22 @@ msgstr "โหลดใหม่ทั้งหมด"
msgid "Reload all from disk"
msgstr "โหลดใหม่ทั้งหมดจากดิสก์"
+# AI Translated
+msgid "Fix All"
+msgstr "ซ่อมทั้งหมด"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "ซ่อมโมเดลทั้งหมดบนเพลตปัจจุบัน"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "ซ่อมทุกเพลต"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "ซ่อมโมเดลทั้งหมดบนทุกเพลต"
+
msgid "Auto Rotate"
msgstr "หมุนอัตโนมัติ"
@@ -3083,8 +3292,13 @@ msgstr "(สีที่หายไป)"
msgid "Center"
msgstr "กึ่งกลาง"
-msgid "Drop"
-msgstr "วางลงฐานพิมพ์"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "จัดแนว/กระจาย"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "จัดแนวและกระจายวัตถุ"
msgid "Edit Process Settings"
msgstr "แก้ไขการตั้งค่ากระบวนการ"
@@ -3104,8 +3318,9 @@ msgstr "เปลี่ยนเส้นพลาสติก"
msgid "Set Filament for selected items"
msgstr "ตั้งค่า เส้นพลาสติก สำหรับรายการที่เลือก"
+# AI Translated
msgid "Automatically snaps the selected object to the build plate."
-msgstr "ยึดวัตถุที่เลือกเข้ากับฐานรองพิมพ์โดยอัตโนมัติ"
+msgstr "ยึดวัตถุที่เลือกเข้ากับฐานพิมพ์โดยอัตโนมัติ"
msgid "Unlock"
msgstr "ปลดล็อค"
@@ -3317,8 +3532,9 @@ msgstr "การตั้งค่าวัตถุที่จะแก้ไ
msgid "Part Settings to Modify"
msgstr "การตั้งค่าชิ้นส่วนที่จะแก้ไข"
+# AI Translated
msgid "Layer Range Settings to Modify"
-msgstr "การตั้งค่าช่วงชั้นที่จะแก้ไข"
+msgstr "การตั้งค่าช่วงเลเยอร์ที่จะแก้ไข"
msgid "Part manipulation"
msgstr "การจัดการชิ้นส่วน"
@@ -3375,6 +3591,12 @@ msgid "Failed to repair the following model object"
msgid_plural "Failed to repair the following model objects"
msgstr[0] "ล้มเหลวในการซ่อมแซมวัตถุโมเดลต่อไปนี้"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "วัตถุโมเดล %1$d ชิ้นไม่ต้องซ่อม"
+
msgid "Repairing was canceled"
msgstr "การซ่อมแซมถูกยกเลิก"
@@ -3447,9 +3669,6 @@ msgstr "ไม่มี ขอบยึดชิ้นงาน"
msgid "Outer wall speed"
msgstr "ความเร็วผนังด้านนอก"
-msgid "Plate"
-msgstr "ฐานพิมพ์"
-
msgid "Brim"
msgstr "ขอบยึดชิ้นงาน (Brim)"
@@ -3514,8 +3733,9 @@ msgstr "ป้อน G-code ที่กำหนดเองที่ใช้
msgid "Jump to layer"
msgstr "ข้ามไปที่เลเยอร์"
+# AI Translated
msgid "Please enter the layer number."
-msgstr "กรุณากรอกหมายเลขชั้น"
+msgstr "กรุณากรอกหมายเลขเลเยอร์"
msgid "Add Pause"
msgstr "เพิ่มการหยุดชั่วคราว"
@@ -3536,11 +3756,9 @@ msgstr "เพิ่มเทมเพลตที่กำหนดเอง"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "แทรก G-code ที่กำหนดเองของเทมเพลตที่จุดเริ่มต้นของเลเยอร์นี้"
-msgid "Filament "
-msgstr "เส้นพลาสติก "
-
+# AI Translated
msgid "Change filament at the beginning of this layer."
-msgstr "เปลี่ยนเส้นพลาสติกที่จุดเริ่มต้นของชั้นนี้"
+msgstr "เปลี่ยนเส้นพลาสติกที่จุดเริ่มต้นของเลเยอร์นี้"
msgid "Delete Pause"
msgstr "ลบการหยุดชั่วคราว"
@@ -3629,8 +3847,10 @@ msgstr "เปลี่ยนยังไงก็ได้"
msgid "Off"
msgstr "ปิด"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
-msgstr "กรอง"
+msgstr "ตัวกรอง"
msgid "Enabling filtration redirects the right fan to filter gas, which may reduce cooling performance."
msgstr "การเปิดใช้งานการกรองจะเปลี่ยนเส้นทางพัดลมที่เหมาะสมไปกรองก๊าซ ซึ่งอาจลดประสิทธิภาพการทำความเย็น"
@@ -3743,12 +3963,19 @@ msgid "Check filament location"
msgstr "ตรวจสอบตำแหน่งของเส้นพลาสติก"
# AI Translated
-msgid "Switch"
-msgstr "สลับ"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "หยุดชั่วคราว"
# AI Translated
-msgid "hotend"
-msgstr "ฮอตเอนด์"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "สลับชุดดันเส้น"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "สลับฮอตเอนด์"
# AI Translated
msgid "Wait for AMS cooling"
@@ -3930,8 +4157,10 @@ msgid "Arranging"
msgstr "การจัด"
# AI Translated
-msgid "Arranging "
-msgstr "กำลังจัด "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "กำลังจัดเรียง %1%"
msgid "Arranging canceled."
msgstr "ยกเลิกการจัดเตรียมแล้ว"
@@ -3970,8 +4199,11 @@ msgstr ""
msgid "Orienting..."
msgstr "กำลังปรับทิศทาง..."
-msgid "Orienting"
-msgstr "การวางแนว"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "กำลังปรับทิศทาง %1%"
msgid "Orienting canceled."
msgstr "ยกเลิกการปฐมนิเทศแล้ว"
@@ -3979,6 +4211,12 @@ msgstr "ยกเลิกการปฐมนิเทศแล้ว"
msgid "Filling"
msgstr "กำลังเติม"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "กำลังเติม %1%"
+
msgid "Bed filling canceled."
msgstr "การเติมฐานพิมพ์ถูกยกเลิก"
@@ -3994,6 +4232,34 @@ msgstr "การค้นหาการวางแนวถูกยกเล
msgid "Orientation found."
msgstr "พบการวางแนว"
+# AI Translated
+msgid "Best surface quality"
+msgstr "คุณภาพพื้นผิวดีที่สุด"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "ปรับการหมุนของวัตถุให้ได้คุณภาพพื้นผิวดีที่สุด"
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "ลดความลาดชันของส่วนยื่น"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"ปรับการหมุนของวัตถุให้มีส่วนยื่นที่ต้องใช้โครงสร้างส่วนรองรับน้อยที่สุด\n"
+"โปรดทราบว่าหากไม่ได้ตั้งค่าความสูงยกวัตถุ วิธีนี้จะพยายามหาพื้นผิวที่ดีที่สุดของวัตถุเพื่อให้สัมผัสกับฐานพิมพ์"
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "ความสูง Z ต่ำที่สุด"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "หมุนโมเดลให้มีความสูง Z ต่ำที่สุดเพื่อให้พิมพ์เร็วขึ้น"
+
msgid "Logging in"
msgstr "เข้าสู่ระบบ"
@@ -4161,14 +4427,16 @@ msgstr "ไม่มีพื้นผิวที่ถูกต้องสำ
msgid "An unexpected error occurred"
msgstr "เกิดข้อผิดพลาดที่ไม่คาดคิด"
+# AI Translated
msgid "Thermal Preconditioning for first layer optimization"
-msgstr "การปรับสภาพล่วงหน้าด้วยความร้อนเพื่อการเพิ่มประสิทธิภาพชั้นแรก"
+msgstr "การปรับสภาพล่วงหน้าด้วยความร้อนเพื่อการเพิ่มประสิทธิภาพเลเยอร์แรก"
msgid "Remaining time: Calculating..."
msgstr "เวลาที่เหลืออยู่: กำลังคำนวณ..."
+# AI Translated
msgid "The heated bed's thermal preconditioning helps optimize the first layer print quality. Printing will start once preconditioning is complete."
-msgstr "การปรับสภาพความร้อนล่วงหน้าของฐานพิมพ์อุ่นช่วยปรับคุณภาพการพิมพ์ชั้นแรกให้เหมาะสมที่สุด การพิมพ์จะเริ่มขึ้นเมื่อการปรับสภาพเบื้องต้นเสร็จสิ้น"
+msgstr "การปรับสภาพความร้อนล่วงหน้าของฐานพิมพ์อุ่นช่วยปรับคุณภาพการพิมพ์เลเยอร์แรกให้เหมาะสมที่สุด การพิมพ์จะเริ่มขึ้นเมื่อการปรับสภาพเบื้องต้นเสร็จสิ้น"
#, c-format, boost-format
msgid "Remaining time: %dmin%ds"
@@ -4280,7 +4548,17 @@ msgstr "โปรเจกต์ล่าสุด"
# AI Translated
msgid "Go to Plate"
-msgstr "ไปที่ฐานพิมพ์"
+msgstr "ไปที่เพลต"
+
+msgid "Device"
+msgstr "อุปกรณ์"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "อุปกรณ์ (เว็บ)"
+
+msgid "Multi-device"
+msgstr "หลายอุปกรณ์"
msgid "AMS Materials Setting"
msgstr "การตั้งค่าวัสดุ AMS"
@@ -4308,9 +4586,6 @@ msgstr "ค่าอินพุตควรมากกว่า %1% และ
msgid "Factors of Flow Dynamics Calibration"
msgstr "ปัจจัยของการสอบเทียบโฟลว์ไดนามิกส์"
-msgid "Wiki Guide"
-msgstr "คู่มือวิกิ"
-
msgid "PA Profile"
msgstr "โปรไฟล์ PA"
@@ -4340,6 +4615,14 @@ msgstr "โปรดป้อนค่าที่ถูกต้อง (K อ
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "โปรดป้อนค่าที่ถูกต้อง (K ใน %.1f~%.1f, N ใน %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "เส้นพลาสติกโปรด"
+
+# AI Translated
+msgid "All filaments"
+msgstr "เส้นพลาสติกทั้งหมด"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4657,11 +4940,11 @@ msgstr "ติดตั้งปลั๊กอินเครือข่าย
msgid "Restart Required"
msgstr "ต้องเริ่มใหม่"
-msgid "Please home all axes (click "
-msgstr "กรุณากลับบ้านทุกแกน (คลิก"
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") เพื่อค้นหาตำแหน่งของหัวเครื่องมือ เพื่อป้องกันไม่ให้อุปกรณ์เคลื่อนที่เกินขอบเขตที่สามารถพิมพ์ได้ และทำให้อุปกรณ์สึกหรอ"
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "โปรดโฮมทุกแกน (คลิก %1%) เพื่อระบุตำแหน่งของหัวพิมพ์ ซึ่งป้องกันไม่ให้อุปกรณ์เคลื่อนที่เกินขอบเขตที่พิมพ์ได้และทำให้อุปกรณ์สึกหรอ"
msgid "Go Home"
msgstr "กลับจุดอ้างอิง"
@@ -4676,6 +4959,10 @@ msgstr "เกิดข้อผิดพลาดร้ายแรง: \"%1%\"
msgid "Please save your project and restart the application."
msgstr "โปรดบันทึกโปรเจกต์และเริ่มโปรแกรมใหม่"
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "ข้อยกเว้น C++ ที่ไม่ทราบสาเหตุ"
+
msgid "Processing G-Code from previous file…"
msgstr "กำลังประมวลผล G-code จากไฟล์ก่อนหน้า..."
@@ -4897,11 +5184,20 @@ msgstr "ปรับเป็นค่าขีดจำกัด (%g mm) โด
msgid "Adjust"
msgstr "ปรับ"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"ฐานรองชิ้นงานและแนวป้องกันลม (Draft Shield) ใช้ไม่ได้กับเครื่องพิมพ์สายพาน\n"
+"จึงถูกปิดใช้งานแล้ว"
+
+# AI Translated
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
msgstr ""
-"ความสูงของชั้นเล็กเกินไป\n"
+"ความสูงเลเยอร์เล็กเกินไป\n"
"รีเซ็ตเป็น 0.2"
msgid ""
@@ -4938,16 +5234,18 @@ msgstr ""
"\n"
"ค่าจะถูกรีเซ็ตเป็น 0"
+# AI Translated
msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All."
-msgstr "ผนังเสริมสำรองทำงานได้ไม่ดีเมื่อตั้งค่าความหนาของเปลือกแนวตั้งเป็นทั้งหมด"
+msgstr "ผนังเสริมสำรองทำงานได้ไม่ดีเมื่อตั้งค่าความหนาของผนังแนวตั้งเป็นทั้งหมด"
+# AI Translated
msgid ""
"Change these settings automatically?\n"
"Yes - Change ensure vertical shell thickness to Moderate and enable alternate extra wall\n"
"No - Don't use alternate extra wall"
msgstr ""
"เปลี่ยนการตั้งค่าเหล่านี้โดยอัตโนมัติหรือไม่\n"
-"ใช่ - เปลี่ยนให้แน่ใจว่าความหนาของเปลือกแนวตั้งเป็นปานกลาง และเปิดใช้งานผนังเสริมสำรอง\n"
+"ใช่ - เปลี่ยนให้แน่ใจว่าความหนาของผนังแนวตั้งเป็นปานกลาง และเปิดใช้งานผนังเสริมสำรอง\n"
"ไม่ - ห้ามใช้ผนังเสริมสำรอง"
msgid ""
@@ -4972,6 +5270,7 @@ msgstr ""
"ใช่ - เก็บ Prime Tower ไว้\n"
"ไม่ - คงความสูงของเลเยอร์แบบปรับได้"
+# AI Translated
msgid ""
"Prime tower does not work when Independent Support Layer Height is on.\n"
"Which do you want to keep?\n"
@@ -4981,7 +5280,7 @@ msgstr ""
"Prime Tower ไม่ทำงานเมื่อเปิดความสูงของเลเยอร์รองรับอิสระ\n"
"คุณต้องการเก็บอันไหน?\n"
"ใช่ - เก็บ Prime Tower ไว้\n"
-"ไม่ - รักษาความสูงของชั้นรองรับที่เป็นอิสระ"
+"ไม่ - รักษาความสูงของเลเยอร์รองรับที่เป็นอิสระ"
msgid ""
"seam_slope_start_height needs to be smaller than layer_height.\n"
@@ -4998,9 +5297,11 @@ msgstr ""
"ความลึกของล็อคควรน้อยกว่าความลึกของผิวหนัง\n"
"รีเซ็ตเป็น 50% ของความลึกของผิว"
+# AI Translated
msgid "Both [Extrusion] and [Combined] modes of Fuzzy Skin require the Arachne Wall Generator to be enabled."
-msgstr "ทั้งโหมด [อัดขึ้นรูป] และ [รวม] ของ Fuzzy Skin จำเป็นต้องเปิดใช้งาน Arachne Wall Generator"
+msgstr "ทั้งโหมด [อัดขึ้นรูป] และ [รวม] ของผิวฟัซซี จำเป็นต้องเปิดใช้งาน Arachne Wall Generator"
+# AI Translated
msgid ""
"Change these settings automatically?\n"
"Yes - Enable Arachne Wall Generator\n"
@@ -5008,7 +5309,7 @@ msgid ""
msgstr ""
"เปลี่ยนการตั้งค่าเหล่านี้โดยอัตโนมัติหรือไม่\n"
"ใช่ - เปิดใช้งาน Arachne Wall Generator\n"
-"ไม่ - ปิดการใช้งาน Arachne Wall Generator และตั้งค่าโหมด [Displacement] ของ Fuzzy Skin"
+"ไม่ - ปิดการใช้งาน Arachne Wall Generator และตั้งค่าโหมด [Displacement] ของผิวฟัซซี"
# AI Translated
msgid "Brim ear radius"
@@ -5017,8 +5318,9 @@ msgstr "รัศมีของหูขอบยึดชิ้นงาน"
msgid "Brim width"
msgstr "ความกว้าง ขอบยึดชิ้นงาน"
+# AI Translated
msgid "Spiral mode only works when wall loops is 1, support is disabled, clumping detection by probing is disabled, top shell layers is 0, sparse infill density is 0 and timelapse type is traditional."
-msgstr "โหมดเกลียวจะทำงานเฉพาะเมื่อลูปติดผนังเป็น 1, ปิดใช้งานส่วนรองรับ, การตรวจจับการจับตัวเป็นก้อนโดยการตรวจวัดถูกปิดใช้งาน, ชั้นเปลือกด้านบนเป็น 0, ความหนาแน่นของไส้ในแบบกระจายเป็น 0 และประเภทไทม์แลปส์เป็นแบบดั้งเดิม"
+msgstr "โหมดเกลียวจะทำงานเฉพาะเมื่อลูปติดผนังเป็น 1, ปิดใช้งานส่วนรองรับ, การตรวจจับการจับตัวเป็นก้อนโดยการตรวจวัดถูกปิดใช้งาน, เลเยอร์ผนังด้านบนเป็น 0, ความหนาแน่นของไส้ในแบบกระจายเป็น 0 และประเภทไทม์แลปส์เป็นแบบดั้งเดิม"
msgid " But machines with I3 structure will not generate timelapse videos."
msgstr "แต่เครื่องที่มีโครงสร้าง I3 จะไม่สร้างวิดีโอแบบไทม์แลปส์"
@@ -5065,11 +5367,13 @@ msgstr "การปรับเทียบการไหลแบบไดน
msgid "Scanning bed surface"
msgstr "การสแกนพื้นผิวฐานพิมพ์"
+# AI Translated
msgid "Inspecting first layer"
-msgstr "การตรวจสอบชั้นแรก"
+msgstr "การตรวจสอบเลเยอร์แรก"
+# AI Translated
msgid "Identifying build plate type"
-msgstr "การระบุประเภทของแผ่นประกอบ"
+msgstr "การระบุประเภทของฐานพิมพ์"
msgid "Calibrating Micro Lidar"
msgstr "การปรับเทียบไมโครไลดาร์"
@@ -5137,8 +5441,9 @@ msgstr "หยุดชั่วคราว (หัวฉีดจับกั
msgid "Pause (cutter error)"
msgstr "หยุดชั่วคราว (ข้อผิดพลาดของเครื่องตัด)"
+# AI Translated
msgid "Pause (first layer error)"
-msgstr "หยุดชั่วคราว (ข้อผิดพลาดชั้นแรก)"
+msgstr "หยุดชั่วคราว (ข้อผิดพลาดเลเยอร์แรก)"
msgid "Pause (nozzle clog)"
msgstr "หยุดชั่วคราว (หัวฉีดอุดตัน)"
@@ -5439,8 +5744,9 @@ msgstr "การตั้งค่าเครื่องพิมพ์"
msgid "parameter name"
msgstr "ชื่อพารามิเตอร์"
+# AI Translated
msgid "layers"
-msgstr "ชั้น"
+msgstr "เลเยอร์"
msgid "Empty string"
msgstr "สตริงว่าง"
@@ -5733,9 +6039,6 @@ msgstr "สไลซ์ใหม่โดยอัตโนมัติตาม
msgid "Filament Grouping"
msgstr "การจัดกลุ่มเส้นพลาสติก"
-msgid "Why this grouping"
-msgstr "ทำไมถึงจัดกลุ่มแบบนี้."
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "กรุณาวางฟิลาเมนต์บนเครื่องพิมพ์ตามผลการจัดกลุ่ม"
@@ -5745,29 +6048,41 @@ msgstr "เคล็ดลับ:"
msgid "Current grouping of slice result is not optimal."
msgstr "การจัดกลุ่มผลการสไลซ์ปัจจุบันยังไม่เหมาะสม"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "เพิ่ม %1%g เส้นพลาสติกและ %2% การเปลี่ยนแปลงเมื่อเปรียบเทียบกับการจัดกลุ่มที่เหมาะสมที่สุด"
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "เพิ่มเส้นพลาสติก %1%g และเปลี่ยน %2% ครั้ง เมื่อเปรียบเทียบกับการจัดกลุ่มที่เหมาะสมที่สุด"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "เพิ่มเส้นพลาสติก %1%g และบันทึกการเปลี่ยนแปลง %2% เมื่อเปรียบเทียบกับการจัดกลุ่มที่เหมาะสมที่สุด"
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "เพิ่มเส้นพลาสติก %1%g และลดการเปลี่ยน %2% ครั้ง เมื่อเปรียบเทียบกับการจัดกลุ่มที่เหมาะสมที่สุด"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "ประหยัดเส้นพลาสติก %1%g และเพิ่มการเปลี่ยนแปลง %2% เมื่อเปรียบเทียบกับการจัดกลุ่มที่เหมาะสมที่สุด"
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "ประหยัดเส้นพลาสติก %1%g และเพิ่มการเปลี่ยน %2% ครั้ง เมื่อเปรียบเทียบกับการจัดกลุ่มที่เหมาะสมที่สุด"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "บันทึก %1%g เส้นพลาสติกและ %2% การเปลี่ยนแปลง เมื่อเปรียบเทียบกับเครื่องพิมพ์ที่มีหัวฉีดเดียว"
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "ประหยัดเส้นพลาสติก %1%g และลดการเปลี่ยน %2% ครั้ง เมื่อเปรียบเทียบกับเครื่องพิมพ์ที่มีหัวฉีดเดียว"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "ประหยัดเส้นพลาสติก %1%g และเพิ่มการเปลี่ยนแปลง %2% เมื่อเทียบกับเครื่องพิมพ์ที่มีหัวฉีดเพียงอันเดียว"
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "ประหยัดเส้นพลาสติก %1%g และเพิ่มการเปลี่ยน %2% ครั้ง เมื่อเปรียบเทียบกับเครื่องพิมพ์ที่มีหัวฉีดเดียว"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "เพิ่มเส้นพลาสติก %1%g และประหยัดการเปลี่ยนแปลง %2% เมื่อเปรียบเทียบกับเครื่องพิมพ์ที่มีหัวฉีดเพียงอันเดียว"
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "เพิ่มเส้นพลาสติก %1%g และลดการเปลี่ยน %2% ครั้ง เมื่อเปรียบเทียบกับเครื่องพิมพ์ที่มีหัวฉีดเดียว"
msgid "Set to Optimal"
msgstr "ตั้งค่าให้เหมาะสมที่สุด"
@@ -5924,11 +6239,60 @@ msgstr "เพิ่ม/ลดพื้นที่แก้ไข"
msgid "Sequence"
msgstr "ลำดับ"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "จุดศูนย์กลางมวลของเพลต"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "จุดศูนย์กลางมวลของชิ้นส่วน"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "จุดศูนย์กลางมวลของส่วนรองรับ"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "จุดศูนย์กลางมวลของชุดประกอบ"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "จุดศูนย์กลางมวลของวัตถุ"
+
+# AI Translated
+msgid "Finished print"
+msgstr "งานพิมพ์ที่เสร็จสมบูรณ์"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "พิมพ์ถึงเลเยอร์ %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "น้ำหนัก"
+
+msgid "Volume"
+msgstr "ปริมาณ"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "ตำแหน่งจุดศูนย์กลางในกล่องขอบเขต"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "ขนาดกล่องขอบเขต"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "โมเมนต์ความเฉื่อย"
+
msgid "Object selection"
msgstr "การเลือกวัตถุ"
-msgid "number keys"
-msgstr "ปุ่มตัวเลข"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "ปุ่มตัวเลข 1~16"
msgid "Number keys can quickly change the color of objects"
msgstr "ปุ่มตัวเลขสามารถเปลี่ยนสีของวัตถุได้อย่างรวดเร็ว"
@@ -6137,9 +6501,20 @@ msgstr "แกน"
msgid "Gridlines"
msgstr "เส้นกริด"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "ป้ายชื่อ"
+# AI Translated
+msgid "Center of mass"
+msgstr "จุดศูนย์กลางมวล"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "แสดง G-code ดิบ (เฉพาะสายพาน)"
+
# AI Translated
msgid "Move section plane"
msgstr "ย้ายระนาบภาคตัด"
@@ -6189,7 +6564,7 @@ msgid "Size:"
msgstr "ขนาด:"
# AI Translated
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "พบความขัดแย้งของเส้นทาง G-code ที่เลเยอร์ %d, Z = %.2lfmm โปรดแยกวัตถุที่ขัดแย้งกันให้ไกลออกไป (%s <-> %s)"
@@ -6209,21 +6584,17 @@ msgstr "ไม่รองรับการพิมพ์เส้นพลา
msgid "Tool %d"
msgstr "เครื่องมือ %d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "เส้นพลาสติก %s ถูกวางไว้ใน %s แต่เส้นทาง G-code ที่สร้างขึ้นเกินช่วงที่สามารถพิมพ์ได้ของ %s"
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "เส้นพลาสติก %s ถูกวางไว้ใน %s แต่เส้นทาง G-code ที่สร้างขึ้นเกินช่วงที่สามารถพิมพ์ได้ของ %s"
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "เส้นพลาสติก %s ถูกวางไว้ใน %s แต่เส้นทาง G-code ที่สร้างขึ้นเกินช่วงที่สามารถพิมพ์ได้ของ %s"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "เส้นพลาสติก %s ถูกวางไว้ใน %s แต่เส้นทาง G-code ที่สร้างขึ้นเกินความสูงที่สามารถพิมพ์ได้ของ %s"
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "เส้นพลาสติก %s ถูกวางไว้ใน %s แต่เส้นทาง G-code ที่สร้างขึ้นเกินความสูงที่สามารถพิมพ์ได้ของ %s"
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "เส้นพลาสติก %s ถูกวางไว้ใน %s แต่เส้นทาง G-code ที่สร้างขึ้นเกินความสูงที่สามารถพิมพ์ได้ของ %s"
msgid "Open wiki for more information."
msgstr "เปิดวิกิเพื่อดูข้อมูลเพิ่มเติม"
@@ -6231,9 +6602,11 @@ msgstr "เปิดวิกิเพื่อดูข้อมูลเพิ
msgid "Only the object being edited is visible."
msgstr "มองเห็นได้เฉพาะวัตถุที่กำลังแก้ไขเท่านั้น"
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "ไม่สามารถพิมพ์เส้นพลาสติก %s ลงบนพื้นผิวของเพลตนี้ได้โดยตรง"
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "ไม่สามารถพิมพ์เส้นพลาสติก %s ลงบนพื้นผิวของเพลตนี้ได้โดยตรง"
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "ตรวจพบเส้นพลาสติก PLA และ PETG ในส่วนผสม ปรับพารามิเตอร์ตาม Wiki เพื่อรับรองคุณภาพการพิมพ์"
@@ -6357,27 +6730,20 @@ msgstr "เตรียมพิมพ์"
msgid "Preview"
msgstr "พรีวิว"
-msgid "Device"
-msgstr "อุปกรณ์"
-
-msgid "Multi-device"
-msgstr "หลายอุปกรณ์"
-
msgid "Project"
msgstr "โปรเจกต์"
-# AI Translated
-msgid "Device (Web)"
-msgstr "อุปกรณ์ (เว็บ)"
-
msgid "Yes"
msgstr "ใช่"
msgid "No"
msgstr "ไม่"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "จะถูกปิดก่อนที่จะสร้างโมเดลใหม่ คุณต้องการดำเนินการต่อหรือไม่?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s จะถูกปิดก่อนที่จะสร้างโมเดลใหม่ คุณต้องการดำเนินการต่อหรือไม่?"
msgid "Print all"
msgstr "พิมพ์ทั้งหมด"
@@ -6422,6 +6788,10 @@ msgstr "วิซาร์ดการตั้งค่า"
msgid "Show Configuration Folder"
msgstr "แสดงโฟลเดอร์การกำหนดค่า"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "นำพรีเซ็ตเส้นพลาสติกกลับมายังเครื่องพิมพ์ที่พรีเซ็ตนั้นถูกสร้างมาเพื่อใช้งานด้วย หลังจากถูกนำออกเพราะการอัปเดตโปรไฟล์"
+
msgid "Troubleshoot Center"
msgstr "ศูนย์แก้ปัญหา"
@@ -6563,7 +6933,7 @@ msgstr "ส่งออก G-code"
# AI Translated
msgid "Export current plate as G-code"
-msgstr "ส่งออกแผ่นปัจจุบันเป็น G-code"
+msgstr "ส่งออกเพลตปัจจุบันเป็น G-code"
msgid "Export toolpaths as OBJ"
msgstr "ส่งออกเส้นทางเครื่องมือเป็น OBJ"
@@ -6661,6 +7031,14 @@ msgstr "แสดงเส้นกริด"
msgid "Show Gridlines on plate"
msgstr "แสดงเส้นตารางบนจาน"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "แสดงหัวพิมพ์ IDEX/IQEX"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "แสดงภาพหัวพิมพ์ IDEX/IQEX รอบหัวฉีดที่ใช้งานอยู่แต่ละหัวในการแสดงตัวอย่าง G-code"
+
msgid "Reset Window Layout"
msgstr "รีเซ็ตเค้าโครงหน้าต่าง"
@@ -7259,8 +7637,9 @@ msgstr "อะไหล่ข้าม"
msgid "Stop"
msgstr "หยุด"
+# AI Translated
msgid "Layer: N/A"
-msgstr "ชั้น: N/A"
+msgstr "เลเยอร์: N/A"
msgid "Click to view thermal preconditioning explanation"
msgstr "คลิกเพื่อดูคำอธิบายการปรับสภาพล่วงหน้าทางความร้อน"
@@ -7288,6 +7667,8 @@ msgstr "ประเมิน"
msgid "Calculating..."
msgstr "กำลังคำนวณ..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "กล้อง"
@@ -7369,9 +7750,11 @@ msgstr "กำลังดาวน์โหลด..."
msgid "Cloud Slicing..."
msgstr "คลาวด์สไลซ์..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "ใน Cloud Slicing Queue มี %s งานรออยู่ข้างหน้า"
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "ใน Cloud Slicing Queue มี %d งานรออยู่ข้างหน้า"
#, c-format, boost-format
msgid "Layer: %s"
@@ -7402,6 +7785,11 @@ msgstr "ซึ่งจะมีผลเฉพาะระหว่างกา
msgid "Silent"
msgstr "เงียบ"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "มาตรฐาน"
+
msgid "Sport"
msgstr "สปอร์ต"
@@ -7458,17 +7846,29 @@ msgstr "อัพโหลดรูปภาพ"
msgid "Number of images successfully uploaded"
msgstr "จำนวนภาพที่อัพโหลดสำเร็จ"
-msgid " upload failed"
-msgstr "การอัปโหลดล้มเหลว"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "อัปโหลด %s ล้มเหลว"
-msgid " upload config prase failed\n"
-msgstr "การอัปโหลดการกำหนดค่าล้มเหลว\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "แยกวิเคราะห์การกำหนดค่าอัปโหลดของ %s ล้มเหลว"
-msgid " No corresponding storage bucket\n"
-msgstr "ไม่มีที่เก็บข้อมูลที่เกี่ยวข้อง\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: ไม่มีที่เก็บข้อมูลที่เกี่ยวข้อง"
-msgid " cannot be opened\n"
-msgstr "ไม่สามารถเปิดได้\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "ไม่สามารถเปิด %s ได้"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7484,25 +7884,22 @@ msgstr "การอัปโหลดล้มเหลว\n"
msgid "Obtaining instance_id failed\n"
msgstr "การรับ instance_id ล้มเหลว\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"ไม่สามารถอัปโหลดผลลัพธ์ความคิดเห็นของคุณเนื่องจากสาเหตุดังต่อไปนี้:\n"
-"\n"
-" รหัสข้อผิดพลาด:"
-
-msgid "error message: "
-msgstr "ข้อความแสดงข้อผิดพลาด:"
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"ไม่สามารถอัปโหลดผลการแสดงความคิดเห็นของคุณได้ด้วยเหตุผลต่อไปนี้:\n"
"\n"
-"คุณต้องการเปลี่ยนเส้นทางไปยังหน้าเว็บเพื่อให้คะแนนหรือไม่"
+" รหัสข้อผิดพลาด: %d\n"
+" ข้อความข้อผิดพลาด: %s\n"
+"\n"
+"คุณต้องการไปยังหน้าเว็บเพื่อให้คะแนนหรือไม่?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "รูปภาพบางรูปของคุณล้มเหลวในการอัปโหลด คุณต้องการเปลี่ยนเส้นทางไปยังหน้าเว็บเพื่อให้คะแนนหรือไม่"
@@ -7625,7 +8022,7 @@ msgstr "โปรดดู Wiki ก่อนใช้งาน ->"
# AI Translated
msgid "Plates are a filament (FFF) feature."
-msgstr "ฐานพิมพ์เป็นคุณสมบัติสำหรับการพิมพ์ด้วยเส้นพลาสติก (FFF)"
+msgstr "เพลตเป็นคุณสมบัติสำหรับการพิมพ์ด้วยเส้นพลาสติก (FFF)"
# AI Translated
msgid "Open the 3D view first."
@@ -7797,7 +8194,7 @@ msgstr "แยกเป็นชิ้นส่วน"
# AI Translated
msgid "Center Selected on Plate"
-msgstr "จัดสิ่งที่เลือกไว้กึ่งกลางฐานพิมพ์"
+msgstr "จัดสิ่งที่เลือกไว้กึ่งกลางเพลต"
# AI Translated
msgid "Drop to Bed"
@@ -7825,35 +8222,35 @@ msgstr "ปรับทิศทางอัตโนมัติ"
# AI Translated
msgid "Add Plate"
-msgstr "เพิ่มฐานพิมพ์"
+msgstr "เพิ่มเพลต"
# AI Translated
msgid "Cannot add another plate (maximum reached)."
-msgstr "ไม่สามารถเพิ่มฐานพิมพ์ได้อีก (ถึงจำนวนสูงสุดแล้ว)"
+msgstr "ไม่สามารถเพิ่มเพลตได้อีก (ถึงจำนวนสูงสุดแล้ว)"
# AI Translated
msgid "Duplicate Plate"
-msgstr "ทำซ้ำฐานพิมพ์"
+msgstr "ทำซ้ำเพลต"
# AI Translated
msgid "Cannot duplicate a plate (maximum reached)."
-msgstr "ไม่สามารถทำซ้ำฐานพิมพ์ได้ (ถึงจำนวนสูงสุดแล้ว)"
+msgstr "ไม่สามารถทำซ้ำเพลตได้ (ถึงจำนวนสูงสุดแล้ว)"
# AI Translated
msgid "Cannot delete the only plate."
-msgstr "ไม่สามารถลบฐานพิมพ์ที่มีเพียงแผ่นเดียวได้"
+msgstr "ไม่สามารถลบเพลตที่มีเพียงแผ่นเดียวได้"
# AI Translated
msgid "Rename Plate"
-msgstr "เปลี่ยนชื่อฐานพิมพ์"
+msgstr "เปลี่ยนชื่อเพลต"
# AI Translated
msgid "Toggle Plate Lock"
-msgstr "สลับการล็อกฐานพิมพ์"
+msgstr "สลับการล็อกเพลต"
# AI Translated
msgid "No plates available."
-msgstr "ไม่มีฐานพิมพ์"
+msgstr "ไม่มีเพลต"
# AI Translated
msgid "Synchronize Filament List from AMS"
@@ -8136,17 +8533,20 @@ msgstr "เมื่อเปิดใช้งาน เครื่องพ
msgid "Confirm Enable Print Status Snapshot"
msgstr "ยืนยันการเปิดใช้ภาพรวมสถานะการพิมพ์"
+# AI Translated
msgid "Enable detection of build plate position"
-msgstr "เปิดใช้งานการตรวจจับตำแหน่งฐานรองแท่นพิมพ์"
+msgstr "เปิดใช้งานการตรวจจับตำแหน่งฐานพิมพ์"
+# AI Translated
msgid "The localization tag of the build plate will be detected, and printing will be paused if the tag is not in predefined range."
-msgstr "ตรวจพบแท็กระบุตำแหน่งของเพลต และการพิมพ์จะหยุดชั่วคราวหากแท็กไม่อยู่ในช่วงที่กำหนดไว้ล่วงหน้า"
+msgstr "ตรวจพบแท็กระบุตำแหน่งของฐานพิมพ์ และการพิมพ์จะหยุดชั่วคราวหากแท็กไม่อยู่ในช่วงที่กำหนดไว้ล่วงหน้า"
msgid "Build Plate Detection"
msgstr "ตรวจจับฐานพิมพ์"
+# AI Translated
msgid "Identifies the type and position of the build plate on the heatbed. Pausing printing if a mismatch is detected."
-msgstr "ระบุประเภทและตำแหน่งของแผ่นฐานรองพิมพ์บนฐานพิมพ์ทำความร้อน หยุดการพิมพ์ชั่วคราวหากตรวจพบความไม่ตรงกัน"
+msgstr "ระบุประเภทและตำแหน่งของแผ่นฐานพิมพ์บนฐานพิมพ์ทำความร้อน หยุดการพิมพ์ชั่วคราวหากตรวจพบความไม่ตรงกัน"
# AI Translated
msgid "Purifies the chamber air as the print finishes, based on the selected mode."
@@ -8201,8 +8601,9 @@ msgstr "ตรวจสอบว่าหัวฉีดจับกันเป
msgid "Detects air printing caused by nozzle clogging or filament grinding."
msgstr "ตรวจจับการพิมพ์ทางอากาศที่เกิดจากการอุดตันของหัวฉีดหรือการบดเส้นพลาสติก"
+# AI Translated
msgid "First Layer Inspection"
-msgstr "การตรวจสอบชั้นแรก"
+msgstr "การตรวจสอบเลเยอร์แรก"
msgid "Auto-recover from step loss"
msgstr "กู้คืนอัตโนมัติจากการสูญเสียขั้นตอน"
@@ -8334,6 +8735,108 @@ msgstr "ดูการตั้งค่าของวัตถุทั้ง
msgid "Material settings"
msgstr "การตั้งค่าวัสดุ"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "แต่ละโหมดระบุหัวพิมพ์ที่เข้าร่วมและบทบาทของแต่ละหัว คลิกปุ่มเครื่องมือเพื่อสลับบทบาทไปทีละแบบ — วางเมาส์เหนือสีด้านล่างเพื่อดูว่าแต่ละบทบาททำอะไร"
+
+# AI Translated
+msgid "Add Mode"
+msgstr "เพิ่มโหมด"
+
+# AI Translated
+msgid "Tools"
+msgstr "เครื่องมือ"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "ชื่อที่ใช้แสดงโหมดนี้ในตัวเลือกโหมด IDEX/IQEX ของเพลต จำเป็นต้องระบุ — โหมดที่ไม่มีชื่อจะเลือกไม่ได้"
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "หัวพิมพ์ใดบ้างที่เข้าร่วมในโหมดนี้และแต่ละหัวมีบทบาทอะไร คลิกที่ช่องเพื่อสลับบทบาท"
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code ที่รันเมื่อเริ่มพิมพ์เพื่อให้เครื่องพิมพ์เข้าสู่โหมดนี้ (เช่น การเรียก SET_PRINT_MODE ของ Klipper) สไลเซอร์สร้างเฉพาะเส้นทางของเครื่องมือหลัก (Primary) เท่านั้น ส่วนเครื่องมืออื่นเฟิร์มแวร์เป็นผู้ควบคุม"
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "ไม่ได้ใช้งาน"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "หลัก"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "สำเนา"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "กระจกเงา"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "ควบคุมทุกเส้นทางที่สไลซ์ เป็นเครื่องมือ 0 เสมอ — ใช้ ตำแหน่งเครื่องมือ 0 ด้านบนเพื่อเลือกว่าเครื่องมือนี้อยู่ที่มุมใดของฐานพิมพ์ ไม่สามารถย้ายออกจากตารางได้"
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "ทำงานตามเครื่องมือหลัก (Primary) ในระดับเฟิร์มแวร์ โดยพิมพ์เส้นทางเดียวกันที่เลื่อนไปอยู่ในโซนของตัวเอง"
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "ทำงานตามเครื่องมือหลัก (Primary) ในระดับเฟิร์มแวร์ โดยพิมพ์เส้นทางเดียวกันแบบสะท้อนข้ามเส้นแบ่งระหว่างสองโซน"
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "กำหนดเครื่องมือบนแกนทรีของเครื่องมือหลัก (Primary) ให้เป็นคู่สำหรับพิมพ์หลายสี จำเป็นสำหรับการพิมพ์หลายสีในโหมดแกนทรีคู่"
+
+# AI Translated
+msgid "Primary"
+msgstr "หลัก"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "ชื่อโหมด (จำเป็น)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "ชื่อของโหมดขนานนี้ตามที่แสดงในตัวเลือกโหมด IDEX/IQEX ของเพลต โปรเจกต์จัดเก็บโหมดตามชื่อ ดังนั้นการเปลี่ยนชื่อโหมดที่เพลตใช้อยู่จะทำให้เพลตเหล่านั้นกลับไปใช้โหมดหลัก (Primary) เว้นว่างไม่ได้ — ชื่อที่ว่างจะถูกแทนที่ด้วยชื่อที่สร้างขึ้นอัตโนมัติ"
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code ที่ส่งออกครั้งเดียวเมื่อเริ่มงานพิมพ์ที่ใช้โหมดนี้ ก่อน G-code เริ่มต้นของเครื่อง ส่วนนี้ใช้ตั้งเครื่องพิมพ์ให้เข้าสู่โหมดเฟิร์มแวร์ที่ตรงกัน — เช่น การเรียก SET_PRINT_MODE ของ Klipper หรือ M567 ของ RepRapFirmware — เนื่องจากสไลเซอร์สร้างเฉพาะเส้นทางของเครื่องมือหลัก (Primary) และเฟิร์มแวร์เป็นผู้ควบคุมเครื่องมือสำเนา (Copy) / กระจกเงา (Mirror) รองรับตัวยึดตำแหน่ง ใช้ปุ่มแก้ไขเพื่อเรียกดู เว้นว่างไว้หากโหมดนี้ไม่ต้องตั้งค่าเฟิร์มแวร์"
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "แก้ไข G-code / เรียกดูตัวยึดตำแหน่ง"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "ลบโหมด"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "ทิ้งการแก้ไขโหมดนี้ในเซสชันปัจจุบัน (กลับไปใช้ค่าที่บันทึกไว้)"
+
msgid "Remove current plate (if not last one)"
msgstr "ลบแผ่นปัจจุบัน (ถ้าไม่ใช่แผ่นสุดท้าย)"
@@ -8358,12 +8861,33 @@ msgstr "แก้ไขชื่อป้ายทะเบียนปัจจ
msgid "Move plate to the front"
msgstr "ย้ายจานไปด้านหน้า"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "โหมด IDEX/IQEX: %1% (พรีเซ็ตกระบวนการ: %2%) (คลิกซ้ายเพื่อสลับ คลิกขวาเพื่อเปิดเมนู)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "โหมด IDEX/IQEX: %1% (คลิกซ้ายเพื่อสลับ คลิกขวาเพื่อเปิดเมนู)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "คำเตือน: เพลตนี้ใช้โหมดขนาน IDEX/IQEX กับวัตถุหลายวัสดุ โปรดดำเนินการด้วยความระมัดระวัง — ตรวจสอบว่า G-code ของคุณรองรับการใช้งานร่วมกันนี้อย่างถูกต้อง"
+
msgid "Customize current plate"
msgstr "ปรับแต่งแผ่นปัจจุบัน"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "หัวฉีด %s ไม่สามารถพิมพ์ %s ได้"
+msgid "The left nozzle cannot print %s."
+msgstr "หัวฉีดซ้ายไม่สามารถพิมพ์ %s ได้"
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "หัวฉีดขวาไม่สามารถพิมพ์ %s ได้"
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8373,12 +8897,17 @@ msgstr "การพิมพ์เส้นพลาสติกสีผสม
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "ไม่แนะนำให้ผสม %1% กับ %2% ในการพิมพ์\n"
-msgid " nozzle"
-msgstr "หัวฉีด"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "ไม่แนะนำให้พิมพ์เส้นพลาสติกต่อไปนี้ด้วย %1%: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "หัวฉีด %1%mm %2%"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "ไม่แนะนำให้พิมพ์เส้นพลาสติกต่อไปนี้ด้วย %1%: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "ไม่แนะนำให้ใช้หัวฉีดและเส้นพลาสติกผสมกันดังต่อไปนี้:\n"
@@ -8387,9 +8916,11 @@ msgstr "ไม่แนะนำให้ใช้หัวฉีดและเ
msgid "%1% with %2%\n"
msgstr "%1% กับ %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr "จาน %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "กำลังสไลซ์เพลต %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "ชื่อไม่ถูกต้อง ไม่อนุญาตให้ใช้อักขระต่อไปนี้:"
@@ -8424,12 +8955,6 @@ msgstr "AMS(1 ช่อง)"
msgid "Not installed"
msgstr "ไม่ได้ติดตั้ง"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "ซอฟต์แวร์ไม่รองรับการใช้หัวฉีดที่มีเส้นผ่านศูนย์กลางต่างกันในการพิมพ์ครั้งเดียว หากหัวฉีดด้านซ้ายและขวาไม่สอดคล้องกัน เราสามารถดำเนินการพิมพ์แบบหัวเดียวเท่านั้น โปรดยืนยันว่าคุณต้องการใช้หัวฉีดใดสำหรับโปรเจ็กต์นี้"
-
-msgid "Switch diameter"
-msgstr "สลับเส้นผ่านศูนย์กลาง"
-
msgid "Configuration incompatible"
msgstr "การกำหนดค่าเข้ากันไม่ได้"
@@ -8511,6 +9036,10 @@ msgstr "เส้นพลาสติกผสม"
msgid "Remove last mixed filament"
msgstr "ลบเส้นพลาสติกผสมล่าสุด"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "ลบเส้นพลาสติกผสมทั้งหมด"
+
# AI Translated
msgid "Add mixed filament"
msgstr "เพิ่มเส้นพลาสติกผสม"
@@ -8533,6 +9062,12 @@ msgstr "เส้นพลาสติกผสมมีการอ้างอ
msgid "Edit / Delete / Merge"
msgstr "แก้ไข / ลบ / รวม"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "ลบเส้นพลาสติกผสมทั้งหมด %1% รายการหรือไม่?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "เส้นพลาสติกผสมปลายทางใช้เส้นพลาสติกจริงนี้เป็นส่วนประกอบ การรวมจะลบเส้นพลาสติกจริงนี้และอาจทำให้เส้นพลาสติกผสมใช้ไม่ได้ ดำเนินการต่อหรือไม่?"
@@ -8607,9 +9142,6 @@ msgstr "กำลังโหลดไฟล์: %s"
msgid "Load 3MF"
msgstr "โหลด 3MF"
-msgid "BambuStudio Project"
-msgstr "โครงการแบมบูสตูดิโอ"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "OrcaSlicer ไม่รองรับ 3MF โดยจะโหลดข้อมูลเรขาคณิตเท่านั้น"
@@ -8639,17 +9171,6 @@ msgstr "คุณควรอัพเกรดซอฟต์แวร์ขอ
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "ไฟล์ 3MF เวอร์ชัน %s ใหม่กว่าเวอร์ชัน %s ของ %s เราขอแนะนำให้อัปเกรดซอฟต์แวร์ของคุณ"
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "3MF ถูกสร้างขึ้นโดย BambuStudio (เวอร์ชัน %s) ซึ่งใหม่กว่าเวอร์ชัน %s ที่เข้ากันได้ พบการตั้งค่าที่ไม่รู้จัก:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "3MF ถูกสร้างขึ้นโดย BambuStudio (เวอร์ชัน %s) ซึ่งใหม่กว่าเวอร์ชัน %s ที่เข้ากันได้ การตั้งค่าบางอย่างอาจเข้ากันไม่ได้อย่างสมบูรณ์"
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "3MF ถูกสร้างขึ้นโดย BambuStudio การตั้งค่าบางอย่างอาจแตกต่างจาก OrcaSlicer"
-
msgid "Invalid values found in the 3MF:"
msgstr "พบค่าที่ไม่ถูกต้องใน 3MF:"
@@ -8818,6 +9339,14 @@ msgstr "ปิดการใช้งานการวางอัตโนม
msgid "Object with floating parts was detected"
msgstr "ตรวจพบวัตถุที่มีชิ้นส่วนลอยอยู่"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "ไม่สามารถสไลซ์ได้: มีวัตถุทับซ้อนพื้นที่ที่สงวนไว้สำหรับการพิมพ์แบบขนาน IDEX/IQEX (โซนรอง หรือแถบระยะเว้นของแคร่ภายในโซนหลัก)"
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "ไม่สามารถสไลซ์ได้: Prime Tower ทับซ้อนพื้นที่ที่สงวนไว้สำหรับการพิมพ์แบบขนาน IDEX/IQEX (โซนรอง หรือแถบระยะเว้นของแคร่ภายในโซนหลัก)"
+
msgid "Another export job is running."
msgstr "งานส่งออกอื่นกำลังทำงานอยู่"
@@ -8871,8 +9400,9 @@ msgstr "ปริมาณที่ถูกแทนที่"
msgid "Please select a file"
msgstr "โปรดเลือกไฟล์"
-msgid "Do you want to replace it"
-msgstr "คุณต้องการเปลี่ยนมัน"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "คุณต้องการแทนที่หรือไม่?"
msgid "Message"
msgstr "ข้อความ"
@@ -8902,6 +9432,50 @@ msgstr "ข้อมูลไม่ถูกต้อง"
msgid "Slicing Canceled"
msgstr "ยกเลิกการสไลซ์แล้ว"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "อุณหภูมิฐานพิมพ์ขัดแย้งกัน: T%d (%s) ตั้งฐานพิมพ์ไว้ที่ %d℃ — T%d (%s) ต้องการ %d℃ เครื่องมือหลักเป็นผู้ควบคุมฐานพิมพ์ เครื่องมือรองจะพิมพ์ที่อุณหภูมิใดก็ตามที่เครื่องมือหลักตั้งไว้"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "ประเภทเส้นพลาสติกไม่ตรงกัน: T%d ใช้ %s และ T%d ใช้ %s วัสดุเหล่านี้มีข้อกำหนดที่เข้ากันไม่ได้และไม่ได้ออกแบบมาให้พิมพ์ร่วมกัน"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"เพลต %d เปิดใช้โหมดขนาน IDEX/IQEX อยู่ และมีข้อควรระวังดังต่อไปนี้:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "สไลซ์ต่อหรือไม่?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "คำเตือนโหมดขนาน IDEX/IQEX"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "ไม่ต้องแสดงคำเตือนเหล่านี้อีก"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "เพลต %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"ตรวจพบข้อควรระวังของโหมดขนาน IDEX/IQEX ดังต่อไปนี้:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "สลับปลั๊กอินเครือข่ายสำเร็จแล้ว"
@@ -8934,8 +9508,8 @@ msgid "Sync now"
msgstr "ซิงค์เลย"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "ไม่สามารถเลิกทำหรือทำซ้ำได้ขณะที่มีการดำเนินการอยู่ โปรดหยุดการดำเนินการก่อน"
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "ไม่สามารถเลิกทำหรือทำซ้ำได้ขณะที่มีการดำเนินการอยู่ หยุดการดำเนินการ หรือรอให้เสร็จแล้วลองอีกครั้ง"
# AI Translated
msgid ""
@@ -8947,7 +9521,7 @@ msgstr ""
# AI Translated
msgid "Plate bed types reset"
-msgstr "รีเซ็ตประเภทฐานพิมพ์แล้ว"
+msgstr "รีเซ็ตประเภทฐานพิมพ์ของเพลตแล้ว"
# AI Translated
msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only."
@@ -9006,6 +9580,15 @@ msgstr "ดาวน์โหลดล้มเหลว มีข้อยก
msgid "Project downloaded %d%%"
msgstr "ดาวน์โหลดโครงการแล้ว %d%%"
+# AI Translated
+# Needs human review: Quotes the existing 'PA Line' label (สายพีเอ), which does not use the glossary Line (เส้น); if that label is corrected to e.g. เส้นพีเอ, update this sentence too.
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"การทดสอบ สายพีเอ และ รูปแบบ PA ยังไม่เปิดใช้งานบนเครื่องพิมพ์สายพาน\n"
+"โปรดใช้วิธี พีเอ ทาวเวอร์ แทน"
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "การทดสอบ Pressure Advance"
@@ -9013,11 +9596,15 @@ msgstr "การทดสอบ Pressure Advance"
msgid "INFO:"
msgstr "ข้อมูล:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "ไม่มีการเร่งความเร็วสำหรับการสอบเทียบ ใช้ค่าความเร่งเริ่มต้น"
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "ไม่มีค่าความเร่งสำหรับการสอบเทียบ ใช้ค่าความเร่งเริ่มต้น %1%mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "ไม่มีความเร็วสำหรับการสอบเทียบ ใช้ความเร็วที่เหมาะสมตามค่าเริ่มต้น"
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "ไม่มีความเร็วสำหรับการสอบเทียบ ใช้ความเร็วที่เหมาะสมตามค่าเริ่มต้น %1%mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9032,6 +9619,15 @@ msgstr "ปรับเทียบอัตราการไหล Orca YOLO"
msgid "Flowrate Test - Pass%d"
msgstr "การทดสอบอัตราการไหล - รอบ %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "ไม่มีทาวเวอร์อุณหภูมิสำหรับสายพานในช่วง %1% ถึง %2%℃ ใช้ช่วงที่โมเดลทาวเวอร์ครอบคลุม เช่น 230 ถึง 190"
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "ทาวเวอร์อุณหภูมิ"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "การทดสอบอุณหภูมิหัวฉีด"
@@ -9055,12 +9651,16 @@ msgstr "การทดสอบการเข้าโค้ง"
msgid "Import SLA archive"
msgstr "นำเข้าเอกสาร SLA"
-msgid "The selected file"
-msgstr "ไฟล์ที่เลือก"
-
# AI Translated
-msgid "Does not contain valid G-code."
-msgstr "ไม่มี G-code ที่ถูกต้อง"
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"ไฟล์ที่เลือก:\n"
+"%1%\n"
+"ไม่มี G-code ที่ถูกต้อง"
msgid "An Error has occurred while loading the G-code file."
msgstr "เกิดข้อผิดพลาดขณะโหลดไฟล์ G-code"
@@ -9184,8 +9784,9 @@ msgstr "โฮสต์ Flashforge ไม่พร้อมใช้งาน"
msgid "Unable to log in to the Flashforge printer."
msgstr "ไม่สามารถเข้าสู่ระบบเครื่องพิมพ์ Flashforge ได้"
+# AI Translated
msgid "Is the printer ready? Is the print sheet in place, empty and clean?"
-msgstr "เครื่องพิมพ์พร้อมหรือยัง? แผ่นพิมพ์อยู่ในตำแหน่ง ว่างเปล่า และสะอาดหรือไม่"
+msgstr "เครื่องพิมพ์พร้อมหรือยัง? แผ่นฐานพิมพ์อยู่ในตำแหน่ง ว่างเปล่า และสะอาดหรือไม่"
msgid "Upload and Print"
msgstr "อัปโหลดและพิมพ์"
@@ -9323,9 +9924,10 @@ msgstr "สามเหลี่ยม: %1%\n"
msgid "Use \"Fix Model\" to repair the mesh."
msgstr "ใช้ \"Fix Model\" เพื่อซ่อมแซมตาข่าย"
+# AI Translated
#, c-format, boost-format
msgid "Plate %d: %s is not suggested for use printing filament %s (%s). If you still want to do this print job, please set this filament's bed temperature to a number that is not zero."
-msgstr "เพลต %d: ไม่แนะนำให้ใช้ %s กับเส้นพลาสติก %s (%s) หากยังต้องการพิมพ์งานนี้ โปรดตั้งอุณหภูมิฐานของเส้นพลาสติกให้ไม่เป็นศูนย์"
+msgstr "เพลต %d: ไม่แนะนำให้ใช้ %s กับเส้นพลาสติก %s (%s) หากยังต้องการพิมพ์งานนี้ โปรดตั้งอุณหภูมิฐานพิมพ์ของเส้นพลาสติกให้ไม่เป็นศูนย์"
msgid "Currently, the object configuration form cannot be used with a multiple-extruder printer."
msgstr "ในปัจจุบัน แบบฟอร์มการกำหนดค่าออบเจ็กต์ไม่สามารถใช้กับเครื่องพิมพ์ที่มีชุดดันเส้นหลายเครื่องได้"
@@ -9333,6 +9935,27 @@ msgstr "ในปัจจุบัน แบบฟอร์มการกำ
msgid "Not available"
msgstr "ไม่พร้อมใช้งาน"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (ไม่มีเพลต)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — ไม่มีเส้นพลาสติกที่ส่งมายังหัวนี้\n"
+"เพิ่มชุดดันเส้นในแท็บเครื่องเพื่อให้หัวพิมพ์นี้มีช่องเส้นพลาสติก"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> เส้นพลาสติก %2%"
+
msgid "isometric"
msgstr "มีมิติเท่ากัน"
@@ -9372,6 +9995,8 @@ msgstr "ยุโรป"
msgid "North America"
msgstr "อเมริกาเหนือ"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "อื่นๆ"
@@ -9390,6 +10015,7 @@ msgstr "ระยะเวลาการสำรองข้อมูลเป
msgid "Bed Temperature Difference Warning"
msgstr "คำเตือนความแตกต่างของอุณหภูมิฐานพิมพ์"
+# AI Translated
msgid ""
"Using filaments with significantly different temperatures may cause:\n"
"• Extruder clogging\n"
@@ -9401,7 +10027,7 @@ msgstr ""
"การใช้เส้นพลาสติกที่มีอุณหภูมิแตกต่างกันอย่างมากอาจทำให้:\n"
"• การอุดตันของชุดดันเส้น\n"
"• หัวฉีดเสียหาย\n"
-"• ปัญหาการยึดเกาะของชั้น\n"
+"• ปัญหาการยึดเกาะของเลเยอร์\n"
"\n"
"เปิดใช้งานฟีเจอร์นี้ต่อไปหรือไม่"
@@ -9446,11 +10072,17 @@ msgstr "โหลดปลั๊กอินเครือข่ายซ้ำ
msgid "Reload Failed"
msgstr "โหลดใหม่ล้มเหลว"
-msgid "Associate"
-msgstr "เชื่อมโยง"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "เชื่อมโยง %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "ด้วย OrcaSlicer เพื่อให้ Orca สามารถเปิดโมเดลได้"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "เชื่อมโยง %s:// กับ OrcaSlicer เพื่อให้ Orca เปิดโมเดลจาก %s ได้"
msgid "Current Association: "
msgstr "สมาคมปัจจุบัน:"
@@ -9748,7 +10380,10 @@ msgstr "จดจำการดำเนินการพิมพ์ล่า
# AI Translated
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
-msgstr "หากเปิดใช้งาน OrcaSlicer จะจดจำตัวเลือกล่าสุดที่เลือกในเมนูดรอปดาวน์ของปุ่มพิมพ์ (เช่น พิมพ์, ส่งออกไฟล์ฐานพิมพ์ที่สไลซ์แล้ว, ส่งออกไฟล์ G-code) และใช้เป็นค่าเริ่มต้นเมื่อเปิดโปรแกรมครั้งถัดไป"
+msgstr "หากเปิดใช้งาน OrcaSlicer จะจดจำตัวเลือกล่าสุดที่เลือกในเมนูดรอปดาวน์ของปุ่มพิมพ์ (เช่น พิมพ์, ส่งออกไฟล์เพลตที่สไลซ์แล้ว, ส่งออกไฟล์ G-code) และใช้เป็นค่าเริ่มต้นเมื่อเปิดโปรแกรมครั้งถัดไป"
+
+msgid "Camera"
+msgstr "กล้อง"
msgid "Touchpad"
msgstr "ทัชแพด"
@@ -10177,6 +10812,9 @@ msgstr "เวอร์ชันปลั๊กอินเครือข่า
msgid "Select the network plug-in version to use"
msgstr "เลือกเวอร์ชันปลั๊กอินเครือข่ายที่จะใช้"
+msgid "Associate"
+msgstr "เชื่อมโยง"
+
msgid "Associate files to OrcaSlicer"
msgstr "เชื่อมโยงไฟล์กับ OrcaSlicer"
@@ -10225,6 +10863,12 @@ msgstr "แสดงค่าที่ตั้งไว้ล่วงหน้
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "แสดงค่าที่ตั้งไว้ล่วงหน้าที่ไม่เข้ากันหรือไม่รองรับในรายการเลือกเครื่องพิมพ์และเส้นพลาสติก ไม่สามารถเลือกค่าที่ตั้งไว้ล่วงหน้าเหล่านี้ได้"
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "ฟีเจอร์ทดลอง"
@@ -10413,8 +11057,9 @@ msgstr "สิ้นสุด"
msgid "Customize"
msgstr "ปรับแต่ง"
+# AI Translated
msgid "Other layer filament sequence"
-msgstr "ลำดับเส้นพลาสติกชั้นอื่นๆ"
+msgstr "ลำดับเส้นพลาสติกเลเยอร์อื่นๆ"
msgid "Please input layer value (>= 2)."
msgstr "กรุณาป้อนค่าเลเยอร์ (>= 2)"
@@ -10449,8 +11094,9 @@ msgstr "ปิดใช้"
msgid "Spiral vase"
msgstr "แจกันเกลียว"
+# AI Translated
msgid "First layer filament sequence"
-msgstr "ลำดับเส้นพลาสติกชั้นแรก"
+msgstr "ลำดับเส้นพลาสติกเลเยอร์แรก"
# AI Translated
msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect."
@@ -10511,10 +11157,6 @@ msgstr "เผยแพร่ 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "เลือกการตั้งค่าที่จะเผยแพร่ในไฟล์ 3MF"
-# AI Translated
-msgid "Video Guide"
-msgstr "วิดีโอแนะนำ"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "เส้นพลาสติกผสม - จะได้รับการเผยแพร่ทั้งชุดเมื่อเลือก \"เปิดใช้\" ด้านบน"
@@ -10679,6 +11321,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "แบบง่าย"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s จาก %s"
+
# AI Translated
msgid "Search actions"
msgstr "ค้นหาคำสั่ง"
@@ -10796,6 +11444,10 @@ msgstr "แสดงรายละเอียด"
msgid "Hide details"
msgstr "ซ่อนรายละเอียด"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "WebView ไม่พร้อมใช้งาน"
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -10830,8 +11482,9 @@ msgstr "ไม่ต้องถามอีกสำหรับคำสั่
msgid "Task canceled"
msgstr "ยกเลิกงานแล้ว"
+# AI Translated
msgid "Bambu Cool Plate"
-msgstr "แบมบูคูลเพลท"
+msgstr "จานเย็นแบมบู"
msgid "PLA Plate"
msgstr "แผ่นเพลท PLA"
@@ -10848,8 +11501,10 @@ msgstr "แผ่นอุณหภูมิสูง"
msgid "Bambu Textured PEI Plate"
msgstr "แผ่น PEI ที่มีพื้นผิว Bambu"
+# AI Translated
+# Needs human review: Bambu plate type name: Cool Plate follows the glossary (จานเย็น); check the word order and whether SuperTack should stay in Latin script.
msgid "Bambu Cool Plate SuperTack"
-msgstr "แบมบู คูลเพลท ซุปเปอร์แทค"
+msgstr "จานเย็นแบมบู ซุปเปอร์แทค"
msgid "Send print job"
msgstr "ส่งงานพิมพ์"
@@ -11079,9 +11734,11 @@ msgstr "ส่งล้มเหลว"
msgid "The name length exceeds the limit."
msgstr "ชื่อมีความยาวเกินขีดจำกัด"
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "ราคา %dg เส้นพลาสติกและ %d เปลี่ยนแปลงมากกว่าการจัดกลุ่มที่เหมาะสมที่สุด"
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "ใช้เส้นพลาสติกเพิ่ม %dg และเปลี่ยนเพิ่ม %d ครั้ง เมื่อเทียบกับการจัดกลุ่มที่เหมาะสมที่สุด"
# AI Translated
msgid "Right-Ext"
@@ -11171,6 +11828,10 @@ msgstr "เส้นพลาสติกบางส่วนอาจสลั
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "มีเส้นพลาสติกที่มีแนวโน้มเกิดเส้นใยในไฟล์นี้ เพื่อคุณภาพงานพิมพ์ที่ดีที่สุด เราแนะนำให้สลับการตรวจจับการจับตัวของหัวฉีดเป็นโหมด Auto"
+# AI Translated
+msgid "Switch"
+msgstr "สลับ"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "หากตั้ง 'Dynamic Flow Calibration' เป็น Auto/On ระบบจะใช้ค่าปรับเทียบด้วยตนเองหรือค่าเริ่มต้นและข้ามขั้นตอนการปรับเทียบการไหล คุณสามารถปรับเทียบการไหลด้วยตนเองสำหรับเส้นพลาสติก TPU ในหน้า 'Calibration'"
@@ -11209,8 +11870,9 @@ msgstr "แผ่นความร้อนสูงเรียบ"
msgid "Textured PEI Plate"
msgstr "แผ่น PEI ที่มีพื้นผิว"
+# AI Translated
msgid "Cool Plate (SuperTack)"
-msgstr "คูลเพลท (ซุปเปอร์แทค)"
+msgstr "จานเย็น (ซุปเปอร์แทค)"
msgid "Click here if you can't connect to the printer"
msgstr "คลิกที่นี่ หากคุณไม่สามารถเชื่อมต่อกับเครื่องพิมพ์ได้"
@@ -11479,6 +12141,10 @@ msgstr "ไม่รองรับการซิงโครไนซ์ปร
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "ซิงโครไนซ์การแก้ไขพารามิเตอร์ไปยังพารามิเตอร์ที่สอดคล้องกันของชุดดันเส้นอีกตัวหนึ่ง"
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "พารามิเตอร์ที่มีไอคอนนี้สามารถกำหนดค่าแยกตามหัวฉีดได้"
+
msgid "Click to reset all settings to the last saved preset."
msgstr "คลิกเพื่อรีเซ็ตการตั้งค่าทั้งหมดเป็นค่าที่ตั้งไว้ล่วงหน้าที่บันทึกไว้ล่าสุด"
@@ -11503,14 +12169,14 @@ msgstr "การเปิดใช้งานทั้งความสูง
# AI Translated
msgid "Smooth timelapse needs a prime tower on every layer, which is not compatible with \"No sparse layers\". \"No sparse layers\" has been turned off."
-msgstr "ไทม์แลปส์แบบราบรื่นต้องมี Prime Tower ในทุกเลเยอร์ ซึ่งใช้ร่วมกับ \"ไม่มีชั้นกระจัดกระจาย\" ไม่ได้ จึงปิด \"ไม่มีชั้นกระจัดกระจาย\" แล้ว"
+msgstr "ไทม์แลปส์แบบราบรื่นต้องมี Prime Tower ในทุกเลเยอร์ ซึ่งใช้ร่วมกับ \"ไม่มีเลเยอร์กระจัดกระจาย\" ไม่ได้ จึงปิด \"ไม่มีเลเยอร์กระจัดกระจาย\" แล้ว"
msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without prime tower. Do you want to enable the prime tower?"
msgstr "จำเป็นต้องใช้ Prime Tower สำหรับโหมดไทม์แลปส์แบบราบรื่น หากไม่มี Prime Tower อาจเกิดตำหนิบนโมเดลได้ ต้องการเปิดใช้ Prime Tower หรือไม่?"
# AI Translated
msgid "\"No sparse layers\" is not compatible with smooth timelapse, which needs a prime tower on every layer. Timelapse has been switched to traditional mode."
-msgstr "\"ไม่มีชั้นกระจัดกระจาย\" ใช้ร่วมกับไทม์แลปส์แบบราบรื่นไม่ได้ เพราะไทม์แลปส์แบบราบรื่นต้องมี Prime Tower ในทุกเลเยอร์ ไทม์แลปส์จึงถูกสลับเป็นโหมดแบบดั้งเดิม"
+msgstr "\"ไม่มีเลเยอร์กระจัดกระจาย\" ใช้ร่วมกับไทม์แลปส์แบบราบรื่นไม่ได้ เพราะไทม์แลปส์แบบราบรื่นต้องมี Prime Tower ในทุกเลเยอร์ ไทม์แลปส์จึงถูกสลับเป็นโหมดแบบดั้งเดิม"
msgid "Still print by object?"
msgstr "ยังคงพิมพ์ตามวัตถุใช่ไหม"
@@ -11562,12 +12228,13 @@ msgstr "คุณลักษณะการทดลอง: การดึง
msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications. Please use with the latest printer firmware."
msgstr "คุณลักษณะการทดลอง: การดึงกลับและตัดเส้นพลาสติกออกในระยะห่างที่มากขึ้นระหว่างการเปลี่ยนเส้นพลาสติกเพื่อลดการไล่เส้น แม้ว่าจะสามารถลดการไล่เส้นได้อย่างเห็นได้ชัด แต่ก็อาจเพิ่มความเสี่ยงของการอุดตันของหัวฉีดหรือภาวะแทรกซ้อนในการพิมพ์อื่นๆ อีกด้วย กรุณาใช้กับเฟิร์มแวร์เครื่องพิมพ์ล่าสุด"
+# AI Translated
msgid ""
"When recording timelapse without toolhead, it is recommended to add a \"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
"เมื่อบันทึกไทม์แลปส์โดยไม่มีหัวเครื่องมือ แนะนำให้เพิ่ม \"Timelapse Wipe Tower\" \n"
-"โดยคลิกขวาที่ตำแหน่งว่างของแผ่นงานแล้วเลือก \"Add Primitive\"->\"Timelapse Wipe Tower\""
+"โดยคลิกขวาที่ตำแหน่งว่างของฐานพิมพ์แล้วเลือก \"Add Primitive\"->\"Timelapse Wipe Tower\""
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
msgstr "สำเนาของค่าที่ตั้งล่วงหน้าของระบบปัจจุบันจะถูกสร้างขึ้น ซึ่งจะแยกออกจากค่าที่ตั้งล่วงหน้าของระบบ"
@@ -11662,14 +12329,17 @@ msgstr "การพิมพ์สะพาน"
msgid "Walls"
msgstr "ผนัง"
+# AI Translated
msgid "Top/bottom shells"
-msgstr "เปลือกบน/ล่าง"
+msgstr "ผนังบน/ล่าง"
+# AI Translated
msgid "First layer speed"
-msgstr "ความเร็วชั้นแรก"
+msgstr "ความเร็วเลเยอร์แรก"
+# AI Translated
msgid "Other layers speed"
-msgstr "ความเร็วชั้นอื่นๆ"
+msgstr "ความเร็วเลเยอร์อื่นๆ"
msgid "Overhang speed"
msgstr "ความเร็วส่วนยื่น"
@@ -11710,6 +12380,9 @@ msgstr "เส้นพลาสติกสำหรับคุณสมบั
msgid "Ooze prevention"
msgstr "การป้องกันน้ำซึม"
+msgid "Others"
+msgstr "อื่นๆ"
+
msgid "Special mode"
msgstr "โหมดพิเศษ"
@@ -11748,8 +12421,11 @@ msgstr[0] ""
"บรรทัดถัดไป %s มีคีย์เวิร์ดที่สงวนไว้\n"
"กรุณาลบออก มิฉะนั้นการแสดงผล G-code และการประมาณเวลาพิมพ์จะทำงานผิดพลาด"
-msgid "Reserved keywords found"
-msgstr "พบคีย์เวิร์ดที่สงวนไว้"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "พบคีย์เวิร์ดที่สงวนไว้ใน %1%"
msgid "Setting Overrides"
msgstr "การตั้งค่าการแทนที่"
@@ -11766,8 +12442,9 @@ msgstr "อุณหภูมิหัวฉีดที่แนะนำ"
msgid "Recommended nozzle temperature range of this filament. 0 means not set"
msgstr "ช่วงอุณหภูมิหัวฉีดที่แนะนำของเส้นพลาสติกนี้ 0 หมายถึงไม่มีการตั้งค่า"
+# AI Translated
msgid "Flow ratio and Pressure Advance"
-msgstr "อัตราการไหลและ Pressure Advance"
+msgstr "อัตราส่วนการไหลและ Pressure Advance"
msgid "Print chamber temperature"
msgstr "อุณหภูมิห้องพิมพ์"
@@ -11793,23 +12470,29 @@ msgstr "อุณหภูมิพิมพ์"
msgid "Nozzle temperature when printing"
msgstr "อุณหภูมิหัวฉีดเมื่อพิมพ์"
+# AI Translated
msgid "Bed temperature when the Cool Plate SuperTack is installed. A value of 0 means the filament does not support printing on the Cool Plate SuperTack."
-msgstr "อุณหภูมิฐานพิมพ์เมื่อติดตั้ง Cool Plate SuperTack ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Cool Plate SuperTack"
+msgstr "อุณหภูมิฐานพิมพ์เมื่อติดตั้งจานเย็น ซุปเปอร์แทค ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนจานเย็น ซุปเปอร์แทค"
msgid "Cool Plate"
msgstr "จานเย็น"
+# AI Translated
msgid "This is the bed temperature when the Cool Plate is installed. A value of 0 means the filament does not support printing on the Cool Plate."
-msgstr "อุณหภูมิฐานพิมพ์เมื่อติดตั้ง Cool Plate ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Cool Plate"
+msgstr "อุณหภูมิฐานพิมพ์เมื่อติดตั้งจานเย็น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนจานเย็น"
+# AI Translated
+# Needs human review: Textured Cool Plate has no glossary row; built from Cool Plate (จานเย็น) and the Textured PEI Plate pattern (ที่มีพื้นผิว). Check it reads right as a plate type.
msgid "Textured Cool Plate"
-msgstr "เท็กซ์เจอร์ คูลเพลท"
+msgstr "จานเย็นที่มีพื้นผิว"
+# AI Translated
msgid "This is the bed temperature when the Textured Cool Plate is installed. A value of 0 means the filament does not support printing on the Textured Cool Plate."
-msgstr "อุณหภูมิฐานพิมพ์เมื่อติดตั้ง Textured Cool Plate ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Textured Cool Plate"
+msgstr "อุณหภูมิฐานพิมพ์เมื่อติดตั้งจานเย็นที่มีพื้นผิว ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนจานเย็นที่มีพื้นผิว"
+# AI Translated
msgid "This is the bed temperature when the engineering plate is installed. A value of 0 means the filament does not support printing on the Engineering Plate."
-msgstr "อุณหภูมิฐานพิมพ์เมื่อติดตั้ง Engineering Plate ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Engineering Plate"
+msgstr "อุณหภูมิฐานพิมพ์เมื่อติดตั้งแผ่นวิศวกรรม ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนแผ่นวิศวกรรม"
msgid "Smooth PEI Plate / High Temp Plate"
msgstr "แผ่น PEI เรียบ / แผ่นอุณหภูมิสูง"
@@ -11817,14 +12500,16 @@ msgstr "แผ่น PEI เรียบ / แผ่นอุณหภูมิ
msgid "This is the bed temperature when the Smooth PEI Plate/High Temperature Plate is installed. A value of 0 means the filament does not support printing on the Smooth PEI Plate/High Temp Plate."
msgstr "อุณหภูมิฐานพิมพ์เมื่อติดตั้งแผ่น Smooth PEI/แผ่นอุณหภูมิสูง ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนแผ่น PEI แบบเรียบ/แผ่นอุณหภูมิสูง"
+# AI Translated
msgid "This is the bed temperature when the Textured PEI Plate is installed. A value of 0 means the filament does not support printing on the Textured PEI Plate."
-msgstr "อุณหภูมิฐานพิมพ์เมื่อติดตั้งเพลต PEI แบบมีพื้นผิว ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนเพลต PEI ที่มีพื้นผิว"
+msgstr "อุณหภูมิฐานพิมพ์เมื่อติดตั้งแผ่น PEI ที่มีพื้นผิว ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนแผ่น PEI ที่มีพื้นผิว"
msgid "Volumetric speed limitation"
msgstr "การจำกัดความเร็วตามปริมาตร"
+# AI Translated
msgid "Cooling for specific layer"
-msgstr "ระบายความร้อนเฉพาะชั้น"
+msgstr "ระบายความร้อนเฉพาะเลเยอร์"
msgid "Part cooling fan"
msgstr "พัดลมระบายความร้อนบางส่วน"
@@ -11889,7 +12574,16 @@ msgstr "พื้นที่ที่สามารถพิมพ์ได้
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "เลือกการใช้งานตัวแทนเครือข่ายสำหรับการสื่อสารของเครื่องพิมพ์ ตัวแทนที่มีอยู่จะได้รับการลงทะเบียนเมื่อเริ่มต้น"
+# AI Translated
+msgid "Belt printer"
+msgstr "เครื่องพิมพ์สายพาน"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "การแปลงระบบพิกัดเครื่อง"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "ค่าที่ระบุสำหรับพารามิเตอร์ %1% ไม่ถูกต้อง: %2%"
@@ -12005,9 +12699,29 @@ msgstr "เส้นผ่านศูนย์กลางหัวฉีด"
msgid "Wipe tower"
msgstr "Wipe Tower"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "หอไล่เส้นบนสายพาน"
+
msgid "Single extruder multi-material parameters"
msgstr "พารามิเตอร์วัสดุหลายชุดดันเส้นเดี่ยว"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "การกำหนดค่า IDEX/IQEX"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "คำเตือนก่อนสไลซ์"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "แสดงกล่องโต้ตอบคำเตือนก่อนสไลซ์หากตรวจพบข้อควรระวังของโหมดขนาน IDEX/IQEX (อุณหภูมิฐานพิมพ์ขัดแย้งกัน ประเภทเส้นพลาสติกไม่ตรงกัน ความขัดแย้งของหลายวัสดุ) ปิดได้จากกล่องโต้ตอบนั้นเอง เปิดใช้งานอีกครั้งได้ที่นี่หากปิดไปโดยไม่ได้ตั้งใจ"
+
+# AI Translated
+msgid "Modes"
+msgstr "โหมด"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "นี่คือเครื่องพิมพ์หลายวัสดุที่ใช้ชุดดันเส้นเดี่ยว โดยเส้นผ่านศูนย์กลางของชุดดันเส้นทั้งหมดจะถูกตั้งค่าเป็นค่าใหม่ คุณต้องการดำเนินการต่อหรือไม่?"
@@ -12017,6 +12731,22 @@ msgstr "การจำกัดความสูงของเลเยอร
msgid "Z-Hop"
msgstr "ยกแกน Z"
+# AI Translated
+msgid "Front-left"
+msgstr "ด้านหน้าซ้าย"
+
+# AI Translated
+msgid "Front-right"
+msgstr "ด้านหน้าขวา"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "ด้านหลังซ้าย"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "ด้านหลังขวา"
+
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
"\n"
@@ -12038,21 +12768,34 @@ msgstr "ใช้ค่าที่แก้ไข"
msgid "Detached"
msgstr "เดี่ยว"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% และ %2% ถูกแนบกับเครื่องพิมพ์นี้ พรีเซ็ตเหล่านั้นจะถูกลบหากลบเครื่องพิมพ์"
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d เส้นพลาสติก Preset และ %d Process Preset ถูกแนบไปกับเครื่องพิมพ์นี้ ค่าที่ตั้งล่วงหน้าเหล่านั้นจะถูกลบหากเครื่องพิมพ์ถูกลบ"
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "พรีเซ็ตเส้นพลาสติก %d รายการ"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "พรีเซ็ตกระบวนการ %d รายการ"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "ค่าที่ตั้งล่วงหน้าที่สืบทอดมาจากค่าที่ตั้งล่วงหน้าอื่นไม่สามารถลบได้!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
msgstr[0] "พรีเซ็ตต่อไปนี้สืบทอดจากพรีเซ็ตนี้"
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% ที่ตั้งไว้ล่วงหน้า"
+msgid "Delete Preset"
+msgstr "ลบพรีเซ็ต"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -12065,9 +12808,9 @@ msgstr ""
"คุณแน่ใจหรือไม่ว่าต้องการลบค่าที่ตั้งล่วงหน้าที่เลือกไว้\n"
"หากค่าที่ตั้งไว้ล่วงหน้าสอดคล้องกับเส้นพลาสติกที่ใช้งานอยู่ในเครื่องพิมพ์ของคุณ โปรดรีเซ็ตข้อมูลเส้นพลาสติกสำหรับช่องนั้น"
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "คุณแน่ใจหรือไม่ว่าต้องการ %1% ค่าที่ตั้งไว้ล่วงหน้าที่เลือก?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "คุณแน่ใจหรือไม่ว่าต้องการลบพรีเซ็ตที่เลือก?"
msgid "Select printers"
msgstr "เลือกเครื่องพิมพ์"
@@ -12075,18 +12818,20 @@ msgstr "เลือกเครื่องพิมพ์"
msgid "Select profiles"
msgstr "โปรไฟล์เลือก"
+# AI Translated
#, c-format, boost-format
msgid ""
" - %s:\n"
" %s first layer %d %s, other layers %d %s\n"
" %s max delta %d %s, current delta %d %s\n"
msgstr ""
-"- %s:\n"
-" %s ชั้นแรก %d %s, ชั้นอื่นๆ %d %s\n"
+" - %s:\n"
+" %s เลเยอร์แรก %d %s, เลเยอร์อื่นๆ %d %s\n"
" %s เดลต้าสูงสุด %d %s เดลต้าปัจจุบัน %d %s\n"
+# AI Translated
msgid "Some first-layer and other-layer temperature pairs exceed safety limits.\n"
-msgstr "คู่อุณหภูมิชั้นหนึ่งและชั้นอื่นๆ บางคู่เกินขีดจำกัดความปลอดภัย\n"
+msgstr "คู่อุณหภูมิเลเยอร์แรกและเลเยอร์อื่นๆ บางคู่เกินขีดจำกัดความปลอดภัย\n"
msgid ""
"\n"
@@ -12120,9 +12865,34 @@ msgid "Don't warn again for this preset"
msgstr "ไม่ต้องเตือนอีกสำหรับค่าที่กำหนดล่วงหน้านี้"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
# AI Translated
msgid "No modifications need to be copied."
@@ -12325,6 +13095,12 @@ msgstr "ไม่มีพรีเซ็ตหนึ่งในนั้นอ
msgid "Compared presets has different printer technology"
msgstr "พรีเซ็ตที่เปรียบเทียบมีเทคโนโลยีเครื่องพิมพ์ที่แตกต่างกัน"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" เทียบกับ \"%2%\""
+
msgid "Add File"
msgstr "เพิ่มไฟล์"
@@ -12350,6 +13126,22 @@ msgstr "รายการวัสดุ"
msgid "Assembly Guide"
msgstr "คู่มือการประกอบ"
+# AI Translated
+msgid "Image files"
+msgstr "ไฟล์รูปภาพ"
+
+# AI Translated
+msgid "TXT files"
+msgstr "ไฟล์ TXT"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "ไฟล์ EXCEL"
+
+# AI Translated
+msgid "PDF files"
+msgstr "ไฟล์ PDF"
+
msgid "Author"
msgstr "ผู้เขียน"
@@ -12413,9 +13205,10 @@ msgstr "หลังจากทำแผนที่แล้ว"
msgid "After overwriting"
msgstr "หลังจากเขียนทับแล้ว"
+# AI Translated
msgctxt "Sync_AMS"
msgid "Plate"
-msgstr "ฐานพิมพ์"
+msgstr "เพลต"
msgid "The connected printer does not match the currently selected printer. Please change the selected printer."
msgstr "เครื่องพิมพ์ที่เชื่อมต่อไม่ตรงกับเครื่องพิมพ์ที่เลือกในปัจจุบัน กรุณาเปลี่ยนเครื่องพิมพ์ที่เลือก"
@@ -12549,9 +13342,6 @@ msgstr "มิลลิวินาที"
msgid "Total ramming"
msgstr "การอัดกระแทกเส้นทั้งหมด"
-msgid "Volume"
-msgstr "ปริมาณ"
-
msgid "Ramming line"
msgstr "เส้นราม"
@@ -12578,8 +13368,10 @@ msgstr "ตัวคูณ"
msgid "Flushing volumes for filament change"
msgstr "ปริมาณการไล่เส้นชิ่งสำหรับการเปลี่ยนเส้นพลาสติก"
-msgid "Please choose the filament color"
-msgstr "กรุณาเลือกสีเส้นพลาสติก"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "จาก/ไปยัง"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "ตัวแทนระบบคลาวด์ไม่พร้อมใช้งาน โปรดรีสตาร์ท OrcaSlicer แล้วลองอีกครั้ง"
@@ -12600,6 +13392,155 @@ msgstr "การเข้าสู่ระบบล้มเหลว โป
msgid "parse json failed"
msgstr "แยกวิเคราะห์ json ไม่สำเร็จ"
+# AI Translated
+msgid "Loading…"
+msgstr "กำลังโหลด…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "กำหนดเอง"
+
+# AI Translated
+msgid "Welcome to Orca Slicer"
+msgstr "ยินดีต้อนรับสู่ Orca Slicer"
+
+# AI Translated
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer จะได้รับการตั้งค่าในไม่กี่ขั้นตอน เริ่มกันเลย!"
+
+# AI Translated
+msgid "Get Started"
+msgstr "เริ่มต้นใช้งาน"
+
+# AI Translated
+msgid "Please select your login region"
+msgstr "โปรดเลือกภูมิภาคสำหรับเข้าสู่ระบบ"
+
+msgid "Finish"
+msgstr "เสร็จ"
+
+# AI Translated
+msgid "Printer Selection"
+msgstr "เลือกเครื่องพิมพ์"
+
+# AI Translated
+msgid "Vendors"
+msgstr "ผู้ขาย"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "เครื่องพิมพ์แบบกำหนดเอง"
+
+msgid "Create"
+msgstr "สร้าง"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "ตรวจหาเครื่องพิมพ์ใหม่"
+
+# AI Translated
+msgid "At least one printer must be selected."
+msgstr "ต้องเลือกเครื่องพิมพ์อย่างน้อยหนึ่งเครื่อง"
+
+# AI Translated
+msgid "New printers found"
+msgstr "พบเครื่องพิมพ์ใหม่"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "ติดตั้งผู้ขายเครื่องพิมพ์ใหม่แล้ว: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "พบผู้ขายเครื่องพิมพ์ใหม่ แต่การติดตั้งถูกยกเลิก"
+
+# AI Translated
+msgid "No new printers found."
+msgstr "ไม่พบเครื่องพิมพ์ใหม่"
+
+# AI Translated
+msgid "Filament Selection"
+msgstr "เลือกเส้นพลาสติก"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "เส้นพลาสติกของระบบ"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "เส้นพลาสติกที่กำหนดเอง"
+
+# AI Translated
+msgid "Create New"
+msgstr "สร้างใหม่"
+
+msgid "Filament type"
+msgstr "ชนิดเส้นพลาสติก"
+
+msgid "Vendor"
+msgstr "ผู้ขาย"
+
+# AI Translated
+msgid "No items"
+msgstr "ไม่มีรายการ"
+
+# AI Translated
+msgid "Filter items"
+msgstr "กรองรายการ"
+
+# AI Translated
+msgid "Checked"
+msgstr "ที่เลือกไว้"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "ที่ไม่ได้เลือก"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "เลือกที่กรองไว้"
+
+# AI Translated
+msgid "Clear all"
+msgstr "ล้างทั้งหมด"
+
+# AI Translated
+msgid "At least one filament must be selected."
+msgstr "ต้องเลือกเส้นพลาสติกอย่างน้อยหนึ่งรายการ"
+
+# AI Translated
+msgid "Do you want to use the default filament?"
+msgstr "คุณต้องการใช้เส้นพลาสติกเริ่มต้นหรือไม่?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "ตัวเลือกนี้จะปิดการใช้งานฟีเจอร์คลาวด์ทั้งหมด รวมถึงการซิงก์โปรไฟล์ Orca Cloud ผู้ใช้ที่ต้องการทำงานแบบออฟไลน์ทั้งหมดสามารถเปิดตัวเลือกนี้ได้"
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "หมายเหตุ: เมื่อเปิดโหมดซ่อนตัว โปรไฟล์ผู้ใช้ของคุณจะไม่ถูกสำรองไปยัง Orca Cloud"
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "เปิดใช้งานโหมดซ่อนตัว"
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "ปลั๊กอินที่เป็นกรรมสิทธิ์"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "ผู้ขายเครื่องพิมพ์บางรายต้องใช้ปลั๊กอินที่เป็นกรรมสิทธิ์ในการสื่อสารกับเครื่องพิมพ์ของตน โปรดเลือกปลั๊กอินที่ตรงกันหากคุณใช้เครื่องพิมพ์ดังกล่าว"
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "โปรดทราบว่าปลั๊กอินเหล่านี้ไม่ได้พัฒนาหรือดูแลโดย OrcaSlicer ควรใช้ตามดุลยพินิจและความเสี่ยงของคุณเอง"
+
+# AI Translated
+msgid "Install Bambu Network plug-in"
+msgstr "ติดตั้งปลั๊กอินเครือข่าย Bambu"
+
msgid "[Action Required] "
msgstr "[ต้องดำเนินการ]"
@@ -12668,9 +13609,6 @@ msgstr "ใช้ได้ขณะที่มุมมอง 3 มิติใ
msgid "Select a part"
msgstr "เลือกส่วนหนึ่ง"
-msgid "Select multiple objects"
-msgstr "เลือกหลายวัตถุ"
-
msgid "Select objects by rectangle"
msgstr "เลือกวัตถุตามสี่เหลี่ยม"
@@ -13000,26 +13938,19 @@ msgstr "เวอร์ชันเฟิร์มแวร์ผิดปกต
msgid "Extension Board"
msgstr "คณะกรรมการขยาย"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "แบ่งออกเป็น %1% ส่วน"
-
msgid "Repair finished"
msgstr "ซ่อมเสร็จแล้ว"
-msgid "Repair failed"
-msgstr "ซ่อมล้มเหลว"
-
-msgid "Repair canceled"
-msgstr "ยกเลิกการซ่อมแล้ว"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "การคัดลอกไฟล์ %1% ถึง %2% ล้มเหลว: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "กำลังดาวน์โหลดโปรไฟล์ผู้ขายใหม่: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "กำลังดาวน์โหลดโปรไฟล์ผู้ขายใหม่: %1%..."
# AI Translated
#, boost-format
@@ -13027,8 +13958,11 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "แพคเกจการกำหนดค่า: %1% อัปเดตเป็น %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "ดาวน์โหลดโปรไฟล์ผู้ขายล้มเหลว: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "ดาวน์โหลดโปรไฟล์ผู้ขายล้มเหลว: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "โปรดตรวจสอบการเปลี่ยนแปลงที่ยังไม่ได้บันทึกก่อนอัปเดตการกำหนดค่า"
@@ -13036,12 +13970,18 @@ msgstr "โปรดตรวจสอบการเปลี่ยนแปล
msgid "Open G-code file:"
msgstr "เปิดไฟล์ G-code:"
-msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
-msgstr "วัตถุหนึ่งมีชั้นแรกว่างเปล่าและไม่สามารถพิมพ์ได้ กรุณาตัดด้านล่างหรือเปิดใช้งานส่วนรองรับ"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "สร้าง Wipe Tower ล้มเหลว อาจเป็นเพราะเลเยอร์แรกว่างเปล่า"
+# AI Translated
+msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
+msgstr "วัตถุหนึ่งมีเลเยอร์แรกว่างเปล่าและไม่สามารถพิมพ์ได้ กรุณาตัดด้านล่างหรือเปิดใช้งานส่วนรองรับ"
+
+# AI Translated
#, boost-format
msgid "The object has empty layers between %1% and %2% and can’t be printed."
-msgstr "วัตถุมีชั้นว่างระหว่าง %1% ถึง %2% จึงไม่สามารถพิมพ์ได้"
+msgstr "วัตถุมีเลเยอร์ว่างระหว่าง %1% ถึง %2% จึงไม่สามารถพิมพ์ได้"
#, boost-format
msgid "Object: %1%"
@@ -13056,9 +13996,61 @@ msgstr "กระบวนการเปลี่ยนประเภทกา
msgid "Filament change extrusion role G-code"
msgstr "เส้นพลาสติกเปลี่ยนประเภทการพิมพ์ G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"ส่งออก G-code ไปยัง %1% ล้มเหลว\n"
+"ไม่สามารถเปิดไฟล์เพื่อเขียนได้"
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "ไม่มีโฟลเดอร์ %1%"
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"ส่งออก G-code ไปยัง %1% ล้มเหลว\n"
+"ดิสก์เต็มหรือไม่?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"เปลี่ยนชื่อไฟล์ G-code เอาต์พุตจาก %1% เป็น %2% ไม่สำเร็จ\n"
+"ข้อผิดพลาด: %3%\n"
+"%1% ถูกล็อคอยู่หรือไม่?"
+
msgid "No object can be printed. It may be too small."
msgstr "ไม่สามารถพิมพ์วัตถุได้ อาจจะเล็กเกินไป"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "โหมด IDEX/IQEX \"%1%\" ไม่มีเครื่องมือที่กำหนดไว้บนเครื่องพิมพ์ที่เลือก จึงพิมพ์ในโหมดหลัก (Primary) แทน กำหนดเครื่องมือของโหมดนี้ใน การตั้งค่าเครื่องพิมพ์ หรือเลือกโหมดอื่นจากปุ่ม IDEX/IQEX ของเพลต"
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "เพลตนี้ตั้งไว้เป็นโหมด IDEX/IQEX \"%1%\" ซึ่งเครื่องพิมพ์ที่เลือกไม่ได้กำหนดไว้ จึงพิมพ์ในโหมดหลัก (Primary) แทน เลือกโหมดจากปุ่ม IDEX/IQEX ของเพลต หรือกู้คืนโหมดนี้ใน การตั้งค่าเครื่องพิมพ์"
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "ค่าภาพขนาดย่อไม่ถูกต้อง:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "งานพิมพ์ของคุณอยู่ใกล้กับบริเวณรองพื้นมาก ตรวจสอบให้แน่ใจว่าไม่มีการชนกัน"
@@ -13102,6 +14094,10 @@ msgstr "ข้อผิดพลาดในการจัดกลุ่ม: %
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "ข้อผิดพลาดในการจัดกลุ่ม: %1% ไม่สามารถวางในหัวฉีดขวาได้"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "ไม่พบหัวฉีดที่ใช้ได้ โปรดตรวจสอบจำนวนหัวฉีด"
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "เกิดข้อผิดพลาดในการจัดกลุ่มในโหมดแมนนวล โปรดตรวจสอบจำนวนหัวฉีดหรือจัดกลุ่มใหม่"
@@ -13121,6 +14117,18 @@ msgstr "มีจุดตัดกับเส้นรอบวงหลาย
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "เส้นรอบวงอยู่ภายในตัวปรับแต่งทั้งหมด จึงไม่ได้ใช้ตัวปรับแต่งกับเส้นรอบวงนั้น (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "ตัวปรับแต่ง %1% \"%2%\" ของ \"%3%\" ครอบคลุมเส้นรอบวงทั้งเส้น"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "ตัวปรับแต่ง %1% \"%2%\" ของ \"%3%\" (ทั้งหมด %4% รายการ) ครอบคลุมเส้นรอบวงทั้งเส้น"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13135,9 +14143,47 @@ msgstr "ตัวปรับแต่ง \"%1%\" ของ \"%2%\" (ทั้
msgid "Seam placement may differ from expected."
msgstr "ตำแหน่งรอยตะเข็บอาจแตกต่างจากที่คาดไว้"
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "สะพานภายใน"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() ให้ค่าระยะห่างเป็นลบ คุณตั้งค่าความกว้างของการอัดขึ้นรูปบางค่าเล็กเกินไปหรือไม่?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() ให้ค่าการไหลเป็นลบ คุณตั้งค่าความกว้างของการอัดขึ้นรูปบางค่าเล็กเกินไปหรือไม่?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "ไม่สามารถคำนวณความกว้างของเส้น %1% ไม่สามารถรับค่า \"%2%\""
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "การเว้นวรรคที่ให้กับ Flow::with_spacing() ไม่ถูกต้อง โปรดตรวจสอบความสูงของเลเยอร์และความกว้างของการอัดขึ้นรูป"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "ไฟล์ 3mf ที่เลือกถูกบันทึกด้วย %1% เวอร์ชันที่ใหม่กว่าและเข้ากันไม่ได้"
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "3MF ที่เลือกมีวัตถุที่ระบายส่วนรองรับ FDM ด้วย PrusaSlicer เวอร์ชันที่ใหม่กว่า จึงเข้ากันไม่ได้"
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "3MF ที่เลือกมีวัตถุที่ระบายรอยตะเข็บด้วย PrusaSlicer เวอร์ชันที่ใหม่กว่า จึงเข้ากันไม่ได้"
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "3MF ที่เลือกมีวัตถุที่ระบายสีหลายวัสดุด้วย PrusaSlicer เวอร์ชันที่ใหม่กว่า จึงเข้ากันไม่ได้"
+
msgid "undefined error"
msgstr "ข้อผิดพลาดที่ไม่ได้กำหนด"
@@ -13231,6 +14277,56 @@ msgstr "การตรวจสอบล้มเหลว"
msgid "write callback failed"
msgstr "การเขียนการโทรกลับล้มเหลว"
+# AI Translated
+msgid "unknown error"
+msgstr "ข้อผิดพลาดไม่ทราบสาเหตุ"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "การพิมพ์หลายสีในโหมดขนาน IDEX/IQEX ต้องให้เส้นพลาสติกแต่ละเส้นมีชุดดันเส้นจริงเป็นของตัวเอง มีเส้นพลาสติกที่ใช้งานอยู่ตั้งแต่สองเส้นขึ้นไปถูกส่งไปยังหัวจริงเดียวกันผ่านแผนผังชุดดันเส้นจริงของเครื่องพิมพ์ (ชุดรวมเส้น MMU/AFC) ซึ่งแกนทรีที่ทำงานตามไม่สามารถทำตามได้"
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "โหมด IDEX/IQEX ที่ใช้งานอยู่ไม่ได้กำหนดเครื่องมือหลัก จึงไม่สามารถจัดลำดับการพิมพ์หลายสีได้ เปิดตัวแก้ไขโหมด IDEX/IQEX ในการตั้งค่าเครื่องพิมพ์ แล้วกำหนดบทบาทหลัก (Primary) ให้กับเครื่องมือหนึ่งตัว"
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "การพิมพ์หลายสีในโหมดนี้ไม่ใช่สถานการณ์การพิมพ์แบบขนาน — เครื่องมือที่ใช้งานอยู่ทั้งหมดอยู่บนแกนทรีเดียว จึงไม่มีแกนทรีที่สองที่จะทำสำเนาหรือสะท้อนแบบกระจกเงาไปยัง สลับเพลตเป็นโหมดหลัก (Primary) เพื่อพิมพ์หลายสีบนแกนทรีเดียว หรือกำหนดโหมด IDEX/IQEX ที่มีเครื่องมือบนแกนทรีที่สอง"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "การพิมพ์หลายสีในโหมดขนาน IDEX/IQEX ต้องมีเครื่องมือ Span บนแกนทรีของเครื่องมือหลัก — หากไม่มี โหมดนี้จะไม่ได้ระบุคู่พิมพ์หลายสีภายในแกนทรีเดียวกัน ให้ลดงานพิมพ์เหลือเส้นพลาสติกเดียว สลับไปใช้โหมดหลัก (Primary) หรือเปิดตัวแก้ไขโหมด IDEX/IQEX ในการตั้งค่าเครื่องพิมพ์ แล้วกำหนดเครื่องมือบนแกนทรีของเครื่องมือหลักเป็น Span"
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "ในโหมด Span นี้ สีจะถูกพิมพ์โดย %1% เท่านั้น แต่เส้นพลาสติก %2% ไม่ได้ส่งไปยังเครื่องมือใดเลย ใช้เส้นพลาสติกที่ส่งไปยัง %1% หรือสลับเพลตนี้เป็นโหมดหลัก (Primary)"
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "ในโหมด Span นี้ สีจะถูกพิมพ์โดย %1% เท่านั้น แต่เส้นพลาสติก %2% ถูกส่งไปยัง T%3% ใช้เส้นพลาสติกที่ส่งไปยัง %1% หรือสลับเพลตนี้เป็นโหมดหลัก (Primary)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"ไม่สามารถโหลดพรีเซ็ตที่เลือก: %1%\n"
+"\tสาเหตุ: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"โหลดไฟล์พรีเซ็ตล้มเหลว: %1%\n"
+"\tสาเหตุ: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% อยู่ใกล้พื้นที่แยกมากเกินไป อาจเกิดการชนกันเมื่อพิมพ์"
@@ -13245,29 +14341,36 @@ msgstr "%1% สูงเกินไป และจะเกิดการช
# AI Translated
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
-msgstr "ตำแหน่งสัมพัทธ์ของโมเดลกับ Prime Tower ไม่เป็นไปตามข้อกำหนดของฟังก์ชัน \"ไม่มีชั้นกระจัดกระจาย\" โปรดปรับตำแหน่งสัมพัทธ์ของทั้งสอง ลดความสูงของโมเดล หรือปิด \"ไม่มีชั้นกระจัดกระจาย\""
-
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr "อยู่ใกล้พื้นที่แยกมากเกินไป อาจเกิดการชนกันเมื่อพิมพ์"
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr "อยู่ใกล้พื้นที่การตรวจจับการจับตัวกันมากเกินไป อาจเกิดการชนกันเมื่อพิมพ์"
-
-msgid "Prime Tower"
-msgstr "Prime Tower"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr "อยู่ใกล้ผู้อื่นมากเกินไปและอาจเกิดการชนได้\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr "อยู่ใกล้เขตหวงห้ามมากเกินไปจะเกิดการชนกัน\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr "อยู่ใกล้พื้นที่การตรวจจับการจับตัวกันมากเกินไป และจะเกิดการชนกัน\n"
+msgstr "ตำแหน่งสัมพัทธ์ของโมเดลกับ Prime Tower ไม่เป็นไปตามข้อกำหนดของฟังก์ชัน \"ไม่มีเลเยอร์กระจัดกระจาย\" โปรดปรับตำแหน่งสัมพัทธ์ของทั้งสอง ลดความสูงของโมเดล หรือปิด \"ไม่มีเลเยอร์กระจัดกระจาย\""
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr "อยู่นอกพื้นที่การพิมพ์บางส่วน จึงไม่สามารถพิมพ์ได้\n"
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% อยู่ใกล้พื้นที่การตรวจจับการจับตัวกันมากเกินไป อาจเกิดการชนกันเมื่อพิมพ์"
+
+# AI Translated
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "Prime Tower อยู่ใกล้วัตถุอื่นมากเกินไป และอาจเกิดการชนกันได้\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "Prime Tower อยู่ใกล้พื้นที่ยกเว้นมากเกินไป และจะเกิดการชนกัน\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "Prime Tower อยู่ใกล้พื้นที่การตรวจจับการจับตัวกันมากเกินไป และจะเกิดการชนกัน\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "Prime Tower อยู่ใกล้พื้นที่ยกเว้นมากเกินไป อาจเกิดการชนกันเมื่อพิมพ์"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "Prime Tower อยู่ใกล้พื้นที่การตรวจจับการจับตัวกันมากเกินไป อาจเกิดการชนกันเมื่อพิมพ์"
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "Prime Tower อยู่นอกพื้นที่การพิมพ์บางส่วน จึงไม่สามารถพิมพ์ได้\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "อุณหภูมิหัวฉีดที่เลือกเข้ากันไม่ได้ อุณหภูมิหัวฉีดของเส้นพลาสติกแต่ละเส้นต้องอยู่ในช่วงอุณหภูมิหัวฉีดที่แนะนำของเส้นพลาสติกอื่นๆ มิฉะนั้นอาจเกิดการอุดตันของหัวฉีดหรือเครื่องพิมพ์เสียหายได้"
@@ -13281,6 +14384,58 @@ msgstr "หากคุณยังต้องการพิมพ์ คุ
msgid "No extrusions under current settings."
msgstr "ไม่มีการอัดขึ้นรูปภายใต้การตั้งค่าปัจจุบัน"
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "โหมดขนาน IDEX/IQEX ไม่รองรับเส้นพลาสติกผสม สลับเพลตนี้เป็นโหมดหลัก (Primary)"
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "โหมด IDEX/IQEX \"%1%\" พิมพ์ด้วย T%2% แต่เส้นพลาสติกของเพลตนี้ไม่ได้อยู่บนเครื่องมือที่กำหนดค่าไว้เลย กำหนดเส้นพลาสติกที่โหลดอยู่บน T%2% หรือสลับเพลตนี้เป็นโหมดหลัก (Primary)"
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "โหมด IDEX/IQEX \"%1%\" พิมพ์ด้วย T%2% แต่เส้นพลาสติกของเพลตนี้อยู่บน %3% กำหนดเส้นพลาสติกที่โหลดอยู่บน T%2% หรือสลับเพลตนี้เป็นโหมดหลัก (Primary)"
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "ฐานรองชิ้นงานใช้ร่วมกับโหมดเครื่องพิมพ์สายพานไม่ได้"
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "แนวป้องกันลม (Draft Shield) ใช้ร่วมกับโหมดเครื่องพิมพ์สายพานไม่ได้"
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "ขอบยึดชิ้นงานใช้ร่วมกับโหมดแจกันเกลียวบนเครื่องพิมพ์สายพานไม่ได้ ปิดใช้งานอย่างใดอย่างหนึ่ง"
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "สายพานชันเกินไปสำหรับขอบยึดชิ้นงาน จึงจะไม่สร้างขอบยึดชิ้นงาน"
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "ขอบยึดชิ้นงานจะสร้างขึ้นเฉพาะเมื่อสายพานเอียงเท่านั้น ตั้งค่ามุมเอียงสายพาน หรือลบการตั้งค่าขอบยึดชิ้นงาน"
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "เครื่องพิมพ์สายพานรองรับเฉพาะขอบยึดชิ้นงานด้านนอกและด้านใน ขอบยึดชิ้นงานแบบ อัตโนมัติ, หูหนู และ ทาสี จะพิมพ์เป็น ขอบยึดชิ้นงานด้านนอกเท่านั้น โดยใช้ ความกว้าง ขอบยึดชิ้นงาน"
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "ช่องว่าง ขอบยึดชิ้นงาน กับชิ้นงาน จะแยกขอบยึดชิ้นงานด้านนำออกจากขอบนำของวัตถุ ซึ่งเป็นขอบที่ขอบยึดชิ้นงานนี้มีไว้ยึด ตั้งช่องว่างเป็น 0 เมื่อใช้ ความยาวขอบยึดชิ้นงานด้านนำ"
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "ความยาวขอบยึดชิ้นงานด้านนำ จะยื่นออกไปข้างหน้าของแต่ละวัตถุตามแนวสายพาน และ จัดเรียง จะไม่เว้นพื้นที่ส่วนนั้นไว้ เว้นระยะระหว่างวัตถุไว้ด้วย"
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "ขอบยึดชิ้นงานแบบ \"เฉพาะขอบนำ\" ใช้กับเครื่องพิมพ์สายพาน บนเครื่องพิมพ์นี้จะพิมพ์เป็นขอบยึดชิ้นงานด้านนอกตามปกติ"
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "มีการใช้เส้นพลาสติกผสมแบบเกรเดียนต์ แต่ 'ซับเลเยอร์สีผสม' ถูกปิดใช้งาน เกรเดียนต์จะไม่ถูกพิมพ์"
@@ -13291,6 +14446,18 @@ msgstr "ไม่รองรับโหมดไทม์แลปส์แบ
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "ไม่รองรับการตรวจจับการจับกันเป็นก้อนเมื่อเปิดใช้งานลำดับ \"ตามวัตถุ\""
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "จะไม่สร้างหอไล่เส้นบนสายพานในลำดับการพิมพ์ \"ตามวัตถุ\" การเปลี่ยนเส้นพลาสติกจะไม่มีการไล่เส้น"
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "เปิดใช้งานหอไล่เส้นบนสายพานอยู่ แต่โปรเจกต์ไม่มีวัตถุหอไล่เส้น การเปลี่ยนเส้นพลาสติกจะไม่มีการไล่เส้น เปิดโปรเจกต์ในแอปพลิเคชันเพื่อสร้างหอ"
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "โปรเจกต์มีหอไล่เส้นบนสายพานที่ระบบจัดการอยู่หลายหอ โหลดเพลตใหม่ หรือปิดแล้วเปิดหอไล่เส้นบนสายพานอีกครั้งเพื่อสร้างใหม่"
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "การเปิดใช้งานทั้งความสูง Z ที่แม่นยำและ Prime Tower อาจทำให้เกิดข้อผิดพลาดในการแบ่งส่วน"
@@ -13307,10 +14474,6 @@ msgstr "โหมดแจกันเกลียวจะไม่ทำงา
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "แม้ว่าวัตถุ %1% จะพอดีกับปริมาตรการพิมพ์ แต่วัตถุนั้นเกินความสูงของปริมาตรการพิมพ์สูงสุดเนื่องจากการชดเชยการหดตัวของวัสดุ"
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "วัตถุ %1% เกินความสูงของปริมาตรการพิมพ์สูงสุด"
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "แม้ว่าวัตถุ %1% จะพอดีกับปริมาตรการพิมพ์ แต่วัตถุนั้นเกินความสูงของปริมาตรการพิมพ์สูงสุด"
@@ -13318,6 +14481,10 @@ msgstr "แม้ว่าวัตถุ %1% จะพอดีกับปร
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "คุณอาจต้องการลดขนาดแบบจำลองของคุณหรือเปลี่ยนการตั้งค่าการพิมพ์ปัจจุบันแล้วลองอีกครั้ง"
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "วัตถุ %1% เกินความสูงของปริมาตรการพิมพ์สูงสุด"
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "ไม่รองรับความสูงของเลเยอร์ที่แปรผันได้ด้วยการรองรับแบบออร์แกนิก"
@@ -13340,23 +14507,28 @@ msgstr "ขณะนี้ Prime Tower รองรับเฉพาะชน
msgid "A prime tower is not supported in “By object” print."
msgstr "ไม่รองรับ Prime Tower ในการพิมพ์ \"ตามวัตถุ\""
+# AI Translated
msgid "A prime tower is not supported when adaptive layer height is on. It requires that all objects have the same layer height."
-msgstr "ไม่รองรับ Prime Tower เมื่อเปิดความสูงของเลเยอร์แบบปรับได้ กำหนดให้วัตถุทั้งหมดมีความสูงของชั้นเท่ากัน"
+msgstr "ไม่รองรับ Prime Tower เมื่อเปิดความสูงของเลเยอร์แบบปรับได้ กำหนดให้วัตถุทั้งหมดมีความสูงเลเยอร์เท่ากัน"
+# AI Translated
msgid "A prime tower requires any “support gap” to be a multiple of layer height."
-msgstr "Prime Tower ต้องการให้ “support gap” เป็นจำนวนเท่าของความสูงชั้น"
+msgstr "Prime Tower ต้องการให้ “support gap” เป็นจำนวนเท่าของความสูงเลเยอร์"
+# AI Translated
msgid "A prime tower requires that all objects have the same layer height."
-msgstr "Prime Tower ต้องการให้วัตถุทั้งหมดมีความสูงชั้นเท่ากัน"
+msgstr "Prime Tower ต้องการให้วัตถุทั้งหมดมีความสูงเลเยอร์เท่ากัน"
+# AI Translated
msgid "A prime tower requires that all objects are printed over the same number of raft layers."
-msgstr "Prime Tower ต้องการให้วัตถุทั้งหมดพิมพ์บนจำนวนชั้น raft เท่ากัน"
+msgstr "Prime Tower ต้องการให้วัตถุทั้งหมดพิมพ์บนจำนวนเลเยอร์ฐานรองชิ้นงานเท่ากัน"
msgid "The prime tower is only supported for multiple objects if they are printed with the same support_top_z_distance."
msgstr "Prime Tower รองรับวัตถุหลายชิ้นเท่านั้นหากพิมพ์ด้วย support_top_z_distance เท่ากัน"
+# AI Translated
msgid "A prime tower requires that all objects are sliced with the same layer height."
-msgstr "Prime Tower ต้องการให้วัตถุทั้งหมดถูกสไลซ์ด้วยความสูงชั้นเท่ากัน"
+msgstr "Prime Tower ต้องการให้วัตถุทั้งหมดถูกสไลซ์ด้วยความสูงเลเยอร์เท่ากัน"
msgid "The prime tower is only supported if all objects have the same variable layer height."
msgstr "Prime Tower ได้รับส่วนรองรับก็ต่อเมื่อวัตถุทั้งหมดมีความสูงของเลเยอร์ที่แปรผันเท่ากัน"
@@ -13373,8 +14545,9 @@ msgstr "ความกว้างของเส้นใหญ่เกิน
msgid "Printing with multiple extruders of differing nozzle diameters. If support is to be printed with the current filament (support_filament == 0 or support_interface_filament == 0), all nozzles have to be of the same diameter."
msgstr "การพิมพ์ด้วยชุดดันเส้นหลายเครื่องที่มีเส้นผ่านศูนย์กลางหัวฉีดต่างกัน หากจะพิมพ์ส่วนรองรับด้วยฟิลาเมนต์ปัจจุบัน (support_filament == 0 หรือ support_interface_filament == 0) หัวฉีดทั้งหมดจะต้องมีเส้นผ่านศูนย์กลางเท่ากัน"
+# AI Translated
msgid "A prime tower requires that support has the same layer height as the object."
-msgstr "Prime Tower ต้องการให้ส่วนรองรับมีความสูงชั้นเท่ากับวัตถุ"
+msgstr "Prime Tower ต้องการให้ส่วนรองรับมีความสูงเลเยอร์เท่ากับวัตถุ"
msgid "For Organic supports, two walls are supported only with the Hollow/Default base pattern."
msgstr "สำหรับการรองรับแบบออร์แกนิก ผนังทั้งสองได้รับการรองรับด้วยรูปแบบฐานกลวง/ค่าเริ่มต้นเท่านั้น"
@@ -13397,8 +14570,9 @@ msgstr "รูปแบบฐานกลวงไม่รองรับปร
msgid "Support enforcers are used but support is not enabled. Please enable support."
msgstr "มีการใช้กำหนดส่วนรองรับ แต่ไม่ได้เปิดใช้งานส่วนรองรับ กรุณาเปิดใช้งานส่วนรองรับ"
+# AI Translated
msgid "Layer height cannot exceed nozzle diameter."
-msgstr "ความสูงของชั้นต้องไม่เกินเส้นผ่านศูนย์กลางหัวฉีด"
+msgstr "ความสูงเลเยอร์ต้องไม่เกินเส้นผ่านศูนย์กลางหัวฉีด"
msgid "Bridge line width must not exceed nozzle diameter"
msgstr "ความกว้างเส้นสะพานต้องไม่เกินเส้นผ่านศูนย์กลางหัวฉีด"
@@ -13409,8 +14583,9 @@ msgstr "พบ \"G92 E0\" ใน before_layer_change_gcode แต่ G หรื
msgid "\"G92 E0\" was found in layer_change_gcode, but the G or E are not uppercase. Please change them to the exact uppercase \"G92 E0\"."
msgstr "พบ \"G92 E0\" ใน layer_change_gcode แต่ G หรือ E ไม่ได้เป็นตัวพิมพ์ใหญ่ กรุณาเปลี่ยนให้ตรงกับ \"G92 E0\" ตัวพิมพ์ใหญ่ทุกตัว"
+# AI Translated
msgid "Relative extruder addressing requires resetting the extruder position at each layer to prevent loss of floating point accuracy. Add \"G92 E0\" to layer_gcode."
-msgstr "การระบุตำแหน่งชุดดันเส้นแบบสัมพันธ์จำเป็นต้องรีเซ็ตตำแหน่งชุดดันเส้นในแต่ละชั้น เพื่อป้องกันการสูญเสียความแม่นยำของจุดลอยตัว เพิ่ม \"G92 E0\" ลงใน layer_gcode"
+msgstr "การระบุตำแหน่งชุดดันเส้นแบบสัมพันธ์จำเป็นต้องรีเซ็ตตำแหน่งชุดดันเส้นในแต่ละเลเยอร์ เพื่อป้องกันการสูญเสียความแม่นยำของจุดลอยตัว เพิ่ม \"G92 E0\" ลงใน layer_gcode"
msgid "\"G92 E0\" was found in before_layer_change_gcode, which is incompatible with absolute extruder addressing."
msgstr "พบ \"G92 E0\" ใน before_layer_change_gcode ซึ่งไม่เข้ากันกับการกำหนดที่อยู่ชุดดันเส้นแบบสัมบูรณ์"
@@ -13452,12 +14627,13 @@ msgstr ""
"Orca จะจำกัดความเร็วการเร่งความเร็วโดยอัตโนมัติเพื่อให้แน่ใจว่าจะไม่เกินความสามารถของเครื่องพิมพ์\n"
"คุณสามารถปรับค่า machine_max_acceleration_extruding ในการกำหนดค่าเครื่องพิมพ์ของคุณเพื่อให้ได้ความเร็วที่สูงขึ้น"
+# AI Translated
msgid ""
"The travel acceleration setting exceeds the printer's maximum travel acceleration (machine_max_acceleration_travel).\n"
"Orca will automatically cap the travel acceleration speed to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the machine_max_acceleration_travel value in your printer's configuration to get higher speeds."
msgstr ""
-"การตั้งค่าการเร่งความเร็วในการเดินทางเกินความเร็วการเคลื่อนที่สูงสุดของเครื่องพิมพ์ (machine_max_acceleration_travel)\n"
+"การตั้งค่าการเร่งความเร็วในการเดินหัวเปล่าเกินความเร็วการเคลื่อนที่สูงสุดของเครื่องพิมพ์ (machine_max_acceleration_travel)\n"
"Orca จะจำกัดความเร็วในการเร่งความเร็วโดยอัตโนมัติเพื่อให้แน่ใจว่าจะไม่เกินความสามารถของเครื่องพิมพ์\n"
"คุณสามารถปรับค่า machine_max_acceleration_travel ในการกำหนดค่าเครื่องพิมพ์ของคุณเพื่อให้ได้ความเร็วที่สูงขึ้น"
@@ -13471,6 +14647,10 @@ msgstr "โมเดล Adaptive Pressure Advance สำหรับชุดด
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "การหดตัวของเส้นพลาสติกจะไม่ถูกนำมาใช้เนื่องจากการหดตัวของเส้นพลาสติกสำหรับเส้นพลาสติกที่ใช้ไม่ตรงกัน"
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "งานพิมพ์ว่างเปล่า ไม่สามารถพิมพ์โมเดลได้ด้วยการตั้งค่าการพิมพ์ปัจจุบัน"
+
msgid "Generating skirt & brim"
msgstr "กำลังสร้าง เส้นล้อมชิ้นงาน และ ขอบยึดชิ้นงาน"
@@ -13490,6 +14670,17 @@ msgstr "กำลังส่งออก G-code"
msgid "Generating G-code"
msgstr "กำลังสร้าง G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "ประมวลผลไฟล์ G-code %1% จากไฟล์ 3MF ก่อนหน้าไม่สำเร็จ"
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "หอไล่เส้นบนสายพานรับปริมาตรไล่เส้นทั้งหมดไม่ไหว: ไล่เส้นไม่ได้รวม %1% mm³ (เลเยอร์ที่มากที่สุด: %2% mm³ ที่ความสูง %3%) งานพิมพ์อาจมีสีเลอะปนกัน เพิ่มความกว้างของหอไล่เส้นบนสายพาน หรือลดปริมาตรไล่เส้น"
+
msgid "Processing of the filename_format template failed."
msgstr "การประมวลผลเทมเพลต filename_format ล้มเหลว"
@@ -13514,11 +14705,13 @@ msgstr "จำนวนหัวพิมพ์แบบขนาน"
msgid "Set the number of parallel printheads for machines like OrangeStorm Giga printer."
msgstr "ตั้งจำนวนหัวพิมพ์แบบขนานสำหรับเครื่องเช่นเครื่องพิมพ์ OrangeStorm Giga"
+# AI Translated
msgid "Parallel printheads bed exclude areas"
-msgstr "พื้นที่ยกเว้นบนเพลตตามจำนวนหัวพิมพ์แบบขนาน"
+msgstr "พื้นที่ยกเว้นบนฐานพิมพ์ตามจำนวนหัวพิมพ์แบบขนาน"
+# AI Translated
msgid "Ordered list of bed exclude areas by parallel printhead count. Item 1 applies to one printhead, item 2 to two printheads, and so on. Leave an item empty for no excluded area."
-msgstr "รายการพื้นที่ยกเว้นบนเพลตตามจำนวนหัวพิมพ์แบบขนาน รายการที่ 1 ใช้กับหัวพิมพ์ 1 หัว รายการที่ 2 ใช้กับ 2 หัว และต่อไปเรื่อยๆ ปล่อยรายการว่างหากไม่ต้องการพื้นที่ยกเว้น"
+msgstr "รายการพื้นที่ยกเว้นบนฐานพิมพ์ตามจำนวนหัวพิมพ์แบบขนาน รายการที่ 1 ใช้กับหัวพิมพ์ 1 หัว รายการที่ 2 ใช้กับ 2 หัว และต่อไปเรื่อยๆ ปล่อยรายการว่างหากไม่ต้องการพื้นที่ยกเว้น"
msgid "Excluded bed area"
msgstr "พื้นที่ฐานพิมพ์ที่ยกเว้น"
@@ -13535,29 +14728,35 @@ msgstr "ฐานพิมพ์รุ่นสั่งทำพิเศษ"
msgid "Elephant foot compensation"
msgstr "การชดเชยอาการฐานบาน"
+# AI Translated
msgid "This shrinks the first layer on the build plate to compensate for elephant foot effect."
-msgstr "ย่อชั้นแรกบนฐานรองพิมพ์เพื่อชดเชยผลกระทบจากรอยอาการฐานบาน"
+msgstr "ย่อเลเยอร์แรกบนฐานพิมพ์เพื่อชดเชยผลกระทบจากรอยอาการฐานบาน"
+# AI Translated
msgid "Elephant foot compensation layers"
-msgstr "ชั้นชดเชยอาการฐานบาน"
+msgstr "เลเยอร์ชดเชยอาการฐานบาน"
+# AI Translated
msgid "The number of layers on which the elephant foot compensation will be active. The first layer will be shrunk by the elephant foot compensation value, then the next layers will be linearly shrunk less, up to the layer indicated by this value."
-msgstr "จำนวนชั้นที่การชดเชยอาการฐานบานจะทำงาน ชั้นแรกจะหดตามค่าการชดเชยอาการฐานบาน จากนั้นชั้นถัดไปจะหดเป็นเส้นตรงน้อยลง จนถึงชั้นที่ระบุด้วยค่านี้"
+msgstr "จำนวนเลเยอร์ที่การชดเชยอาการฐานบานจะทำงาน เลเยอร์แรกจะหดตามค่าการชดเชยอาการฐานบาน จากนั้นเลเยอร์ถัดไปจะหดเป็นเส้นตรงน้อยลง จนถึงเลเยอร์ที่ระบุด้วยค่านี้"
+# AI Translated
msgid "Elephant foot layers density"
-msgstr "ความหนาแน่นของชั้นอาการฐานบาน"
+msgstr "ความหนาแน่นของเลเยอร์อาการฐานบาน"
+# AI Translated
msgid ""
"Density of internal solid infill for Elephant foot layers compensation.\n"
"The initial value for the second layer is set.\n"
"Subsequent layers become linearly denser by the height specified in elefant_foot_compensation_layers."
msgstr ""
-"ความหนาแน่นของวัสดุไส้ในแบบทึบภายในสำหรับการชดเชยชั้นอาการฐานบาน\n"
+"ความหนาแน่นของวัสดุไส้ในแบบทึบภายในสำหรับการชดเชยเลเยอร์อาการฐานบาน\n"
"มีการตั้งค่าเริ่มต้นสำหรับเลเยอร์ที่สอง\n"
"เลเยอร์ต่อมาจะมีความหนาแน่นเชิงเส้นมากขึ้นตามความสูงที่ระบุใน elefant_foot_compensation_layers"
+# AI Translated
msgid "This is the height for each layer. Smaller layer heights give greater accuracy but longer printing time."
-msgstr "ความสูงของการตัดแต่ละชั้น ความสูงของชั้นที่เล็กลงหมายถึงความแม่นยำและเวลาในการพิมพ์ที่มากขึ้น"
+msgstr "ความสูงของการตัดแต่ละเลเยอร์ ความสูงเลเยอร์ที่เล็กลงหมายถึงความแม่นยำและเวลาในการพิมพ์ที่มากขึ้น"
msgid "Printable height"
msgstr "ความสูงที่สามารถพิมพ์ได้"
@@ -13659,62 +14858,79 @@ msgstr "การกำหนดค่าสำหรับความสาม
msgid "Avoid crossing walls"
msgstr "หลีกเลี่ยงการข้ามผนัง"
+# AI Translated
msgid "This detours to avoid traveling across walls, which may cause blobs on the surface."
-msgstr "ทางอ้อมเพื่อหลีกเลี่ยงการเดินทางข้ามผนัง ซึ่งอาจทำให้เกิดหยดบนพื้นผิว"
+msgstr "ทางอ้อมเพื่อหลีกเลี่ยงการเดินหัวเปล่าข้ามผนัง ซึ่งอาจทำให้เกิดหยดบนพื้นผิว"
msgid "Avoid crossing walls - Max detour length"
msgstr "หลีกเลี่ยงการข้ามผนัง - ความยาวทางเบี่ยงสูงสุด"
+# AI Translated
msgid "Maximum detour distance for avoiding crossing wall: The printer won't detour if the detour distance is larger than this value. Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path. A value of 0 will disable this."
-msgstr "ระยะทางเบี่ยงสูงสุดเพื่อหลีกเลี่ยงการข้ามผนัง เครื่องพิมพ์จะไม่อ้อมหากระยะทางเบี่ยงมากกว่าค่านี้ ความยาวทางเบี่ยงสามารถระบุเป็นค่าสัมบูรณ์หรือเป็นเปอร์เซ็นต์ (เช่น 50%) ของเส้นทางเดินทางโดยตรง ค่า 0 จะปิดการใช้งานตัวเลือกนี้"
+msgstr "ระยะทางเบี่ยงสูงสุดเพื่อหลีกเลี่ยงการข้ามผนัง เครื่องพิมพ์จะไม่อ้อมหากระยะทางเบี่ยงมากกว่าค่านี้ ความยาวทางเบี่ยงสามารถระบุเป็นค่าสัมบูรณ์หรือเป็นเปอร์เซ็นต์ (เช่น 50%) ของเส้นทางเดินหัวเปล่าโดยตรง ค่า 0 จะปิดการใช้งานตัวเลือกนี้"
msgid "mm or %"
msgstr "มม. หรือ %"
+# AI Translated
msgid "Other layers"
-msgstr "ชั้นอื่นๆ"
+msgstr "เลเยอร์อื่นๆ"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack."
-msgstr "อุณหภูมิฐานพิมพ์สำหรับชั้นต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Cool Plate SuperTack"
+msgstr "อุณหภูมิฐานพิมพ์สำหรับเลเยอร์ต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนจานเย็น ซุปเปอร์แทค"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate."
-msgstr "อุณหภูมิฐานพิมพ์สำหรับชั้นต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Cool Plate"
+msgstr "อุณหภูมิฐานพิมพ์สำหรับเลเยอร์ต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนจานเย็น"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate."
-msgstr "อุณหภูมิฐานพิมพ์สำหรับชั้นต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Textured Cool Plate"
+msgstr "อุณหภูมิฐานพิมพ์สำหรับเลเยอร์ต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนจานเย็นที่มีพื้นผิว"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate."
-msgstr "อุณหภูมิฐานพิมพ์สำหรับชั้นต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Engineering Plate"
+msgstr "อุณหภูมิฐานพิมพ์สำหรับเลเยอร์ต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนแผ่นวิศวกรรม"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate."
-msgstr "อุณหภูมิฐานพิมพ์สำหรับชั้นต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนแผ่นอุณหภูมิสูง"
+msgstr "อุณหภูมิฐานพิมพ์สำหรับเลเยอร์ต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนแผ่นอุณหภูมิสูง"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate."
-msgstr "อุณหภูมิฐานพิมพ์สำหรับชั้นต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนเพลต PEI ที่มีพื้นผิว"
+msgstr "อุณหภูมิฐานพิมพ์สำหรับเลเยอร์ต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนแผ่น PEI ที่มีพื้นผิว"
+# AI Translated
msgid "First layer"
-msgstr "ชั้นแรก"
+msgstr "เลเยอร์แรก"
+# AI Translated
msgid "First layer bed temperature"
-msgstr "อุณหภูมิฐานพิมพ์ชั้นแรก"
+msgstr "อุณหภูมิฐานพิมพ์เลเยอร์แรก"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Cool Plate SuperTack."
-msgstr "อุณหภูมิฐานพิมพ์ชั้นแรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Cool Plate SuperTack"
+msgstr "อุณหภูมิฐานพิมพ์เลเยอร์แรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนจานเย็น ซุปเปอร์แทค"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Cool Plate."
-msgstr "อุณหภูมิฐานพิมพ์ชั้นแรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Cool Plate"
+msgstr "อุณหภูมิฐานพิมพ์เลเยอร์แรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนจานเย็น"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Textured Cool Plate."
-msgstr "อุณหภูมิฐานพิมพ์ชั้นแรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Textured Cool Plate"
+msgstr "อุณหภูมิฐานพิมพ์เลเยอร์แรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนจานเย็นที่มีพื้นผิว"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Engineering Plate."
-msgstr "อุณหภูมิฐานพิมพ์ชั้นแรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Engineering Plate"
+msgstr "อุณหภูมิฐานพิมพ์เลเยอร์แรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนแผ่นวิศวกรรม"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the High Temp Plate."
-msgstr "อุณหภูมิฐานพิมพ์ชั้นแรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนแผ่นอุณหภูมิสูง"
+msgstr "อุณหภูมิฐานพิมพ์เลเยอร์แรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนแผ่นอุณหภูมิสูง"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Textured PEI Plate."
-msgstr "อุณหภูมิฐานพิมพ์ชั้นแรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนเพลต PEI ที่มีพื้นผิว"
+msgstr "อุณหภูมิฐานพิมพ์เลเยอร์แรก ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บนแผ่น PEI ที่มีพื้นผิว"
msgid "Plate types supported by the printer"
msgstr "ประเภทฐานพิมพ์ที่เครื่องพิมพ์รองรับ"
@@ -13725,8 +14941,9 @@ msgstr "ประเภทฐานพิมพ์เริ่มต้น"
msgid "Default bed type for the printer (supports both numeric and string format)."
msgstr "ประเภทฐานฐานพิมพ์เริ่มต้นสำหรับเครื่องพิมพ์ (รองรับทั้งรูปแบบตัวเลขและสตริง)"
+# AI Translated
msgid "First layer print sequence"
-msgstr "ลำดับการพิมพ์ชั้นแรก"
+msgstr "ลำดับการพิมพ์เลเยอร์แรก"
msgid "Other layers print sequence"
msgstr "ลำดับการพิมพ์เลเยอร์อื่นๆ"
@@ -13734,8 +14951,9 @@ msgstr "ลำดับการพิมพ์เลเยอร์อื่น
msgid "The number of other layers print sequence"
msgstr "จำนวนลำดับการพิมพ์อื่นๆ"
+# AI Translated
msgid "Other layers filament sequence"
-msgstr "ลำดับเส้นพลาสติกชั้นอื่นๆ"
+msgstr "ลำดับเส้นพลาสติกเลเยอร์อื่นๆ"
msgid "This G-code is inserted at every layer change before the Z lift."
msgstr "G-code นี้จะถูกแทรกทุกครั้งที่เปลี่ยนเลเยอร์ก่อนการยก Z"
@@ -13743,14 +14961,16 @@ msgstr "G-code นี้จะถูกแทรกทุกครั้งท
msgid "Bottom shell layers"
msgstr "เลเยอร์ผนังด้านล่าง"
+# AI Translated
msgid "This is the number of solid layers of bottom shell, including the bottom surface layer. When the thickness calculated by this value is thinner than bottom shell thickness, the bottom shell layers will be increased."
-msgstr "นี่คือจำนวนชั้นทึบของเปลือกด้านล่าง รวมถึงชั้นล่างของพื้นผิวด้วย เมื่อความหนาที่คำนวณโดยค่านี้บางกว่าความหนาของเปลือกด้านล่าง ชั้นเปลือกด้านล่างจะเพิ่มขึ้น"
+msgstr "นี่คือจำนวนเลเยอร์ทึบของผนังด้านล่าง รวมถึงเลเยอร์ล่างของพื้นผิวด้วย เมื่อความหนาที่คำนวณโดยค่านี้บางกว่าความหนาของผนังด้านล่าง เลเยอร์ผนังด้านล่างจะเพิ่มขึ้น"
msgid "Bottom shell thickness"
msgstr "ความหนาผนังด้านล่าง"
+# AI Translated
msgid "The number of bottom solid layers is increased when slicing if the thickness calculated by bottom shell layers is thinner than this value. This can avoid having too thin a shell when layer height is small. 0 means that this setting is disabled and the thickness of the bottom shell is determined simply by the number of bottom shell layers."
-msgstr "จำนวนชั้นทึบด้านล่างจะเพิ่มขึ้นเมื่อสไลซ์หากความหนาที่คำนวณโดยชั้นเปลือกด้านล่างบางกว่าค่านี้ วิธีนี้สามารถหลีกเลี่ยงไม่ให้เปลือกบางเกินไปเมื่อชั้นมีความสูงน้อย 0 หมายความว่าการตั้งค่านี้ถูกปิดใช้งาน และความหนาของเปลือกด้านล่างจะถูกกำหนดโดยชั้นเปลือกด้านล่างอย่างแน่นอน"
+msgstr "จำนวนเลเยอร์ทึบด้านล่างจะเพิ่มขึ้นเมื่อสไลซ์หากความหนาที่คำนวณโดยเลเยอร์ผนังด้านล่างบางกว่าค่านี้ วิธีนี้สามารถหลีกเลี่ยงไม่ให้ผนังบางเกินไปเมื่อความสูงเลเยอร์น้อย 0 หมายความว่าการตั้งค่านี้ถูกปิดใช้งาน และความหนาของผนังด้านล่างจะถูกกำหนดโดยเลเยอร์ผนังด้านล่างอย่างแน่นอน"
msgid "Apply gap fill"
msgstr "ใช้การเติมช่องว่าง"
@@ -13872,6 +15092,7 @@ msgstr "เมื่อเปิดใช้งาน ค่ามุมสะ
msgid "External bridge density"
msgstr "ความหนาแน่นของสะพานภายนอก"
+# AI Translated
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge extrusions to sag, 100% may not be sufficient.\n"
@@ -13892,12 +15113,13 @@ msgstr ""
" - ข้อเสีย: อาจเกิดการดันเส้นเกิน ซึ่งลดคุณภาพผิวด้านล่างและด้านบน และเพิ่มความเสี่ยงการบิดเบี้ยว\n"
"\n"
"- ความหนาแน่นต่ำกว่า 100% (ต่ำสุด 10%):\n"
-" - ข้อดี: ชั้นแรกอาจเป็นเส้นแบบเส้นใย พิมพ์เร็วขึ้นและระบายความร้อนดีขึ้นเพราะมีพื้นที่ให้อากาศหมุนเวียนรอบเส้นสะพาน\n"
+" - ข้อดี: เลเยอร์แรกอาจเป็นเส้นแบบเส้นใย พิมพ์เร็วขึ้นและระบายความร้อนดีขึ้นเพราะมีพื้นที่ให้อากาศหมุนเวียนรอบเส้นสะพาน\n"
" - ข้อเสีย: อาจย้อยตัวและผิวไม่เรียบ"
msgid "Internal bridge density"
msgstr "ความหนาแน่นสะพานภายใน"
+# AI Translated
msgid ""
"Controls the density (spacing) of internal bridge lines.\n"
"Internal bridges act as intermediate support between sparse infill and top solid infill and can strongly affect top surface quality.\n"
@@ -13916,18 +15138,19 @@ msgstr ""
"สะพานด้านในทำหน้าที่เป็นส่วนรองรับชั่วคราวระหว่างไส้ในแบบโปร่งกับไส้ในแบบทึบด้านบน และส่งผลต่อคุณภาพผิวด้านบนอย่างมาก\n"
"\n"
"- ความหนาแน่นมากกว่า 100% (แนะนำสูงสุด 125%):\n"
-" - ข้อดี: เพิ่มความแข็งแรงของสะพานด้านในและการรองรับใต้ชั้นบน ลดการย้อยตัวและปรับปรุงผิวด้านบน\n"
+" - ข้อดี: เพิ่มความแข็งแรงของสะพานด้านในและการรองรับใต้เลเยอร์บน ลดการย้อยตัวและปรับปรุงผิวด้านบน\n"
" - ข้อเสีย: ใช้วัสดุและเวลาพิมพ์มากขึ้น ความหนาแน่นเกินไปอาจทำให้ดันเส้นเกินและเกิดความเครียดภายใน\n"
"\n"
"- ความหนาแน่นต่ำกว่า 100% (ต่ำสุด 10%):\n"
" - ข้อดี: ลดการโป่งของผิวด้านบนและระบายความร้อนดีขึ้น (อากาศไหลผ่านสะพานได้มากขึ้น) และอาจพิมพ์เร็วขึ้น\n"
" - ข้อเสีย: ลดการรองรับภายใน เพิ่มความเสี่ยงการย้อยตัวและข้อบกพร่องบนผิวด้านบน\n"
"\n"
-"ตัวเลือกนี้ทำงานได้ดีเป็นพิเศษเมื่อใช้ร่วมกับตัวเลือกสะพานด้านในชั้นที่สองเหนือไส้ใน เพื่อปรับปรุงการพิมพ์สะพานก่อนอัดไส้ในแบบทึบ"
+"ตัวเลือกนี้ทำงานได้ดีเป็นพิเศษเมื่อใช้ร่วมกับตัวเลือกสะพานด้านในเลเยอร์ที่สองเหนือไส้ใน เพื่อปรับปรุงการพิมพ์สะพานก่อนอัดไส้ในแบบทึบ"
msgid "Bridge flow ratio"
msgstr "อัตราส่วนการไหลสะพาน"
+# AI Translated
msgid ""
"This value governs the thickness of the external (visible) bridge layer.\n"
"Values above 1.0: Increase the amount of material while maintaining line spacing. This can improve line contact and strength.\n"
@@ -13935,28 +15158,30 @@ msgid ""
"\n"
"The actual bridge flow used is calculated by multiplying this value with the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
-"ค่านี้กำหนดความหนาของชั้นสะพานด้านนอก (ที่มองเห็นได้)\n"
+"ค่านี้กำหนดความหนาของเลเยอร์สะพานด้านนอก (ที่มองเห็นได้)\n"
"ค่ามากกว่า 1.0: เพิ่มปริมาณวัสดุโดยคงระยะห่างเส้น ช่วยเพิ่มการสัมผัสและความแข็งแรงของเส้น\n"
"ค่าน้อยกว่า 1.0: ลดปริมาณวัสดุโดยปรับระยะห่างเส้นเพื่อคงการสัมผัส ช่วยลดการย้อยตัว\n"
"\n"
-"อัตราการไหลของสะพานจริงคำนวณจากค่านี้คูณอัตราการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"อัตราส่วนการไหลของสะพานจริงคำนวณจากค่านี้คูณอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
+# AI Translated
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
"ความกว้างเส้นของสะพาน หากระบุเป็น % จะคำนวณจากเส้นผ่านศูนย์กลางหัวฉีด\n"
-"แนะนำให้ใช้ร่วมกับความหนาแน่นสะพานหรืออัตราการไหลสะพานที่สูงขึ้น\n"
+"แนะนำให้ใช้ร่วมกับความหนาแน่นสะพานหรืออัตราส่วนการไหลสะพานที่สูงขึ้น\n"
"\n"
"ค่าสูงสุดคือ 100% หรือเส้นผ่านศูนย์กลางหัวฉีด\n"
-"หากตั้งเป็น 0 ความกว้างเส้นจะเท่ากับความกว้างไส้ในแบบทึบภายใน"
+"หากตั้งเป็น 0 ความกว้างเส้นจะเท่ากับความกว้างไส้ในแบบทึบ หรือเท่ากับเส้นผ่านศูนย์กลางหัวฉีดสำหรับสะพานหนา"
msgid "Internal bridge flow ratio"
msgstr "อัตราส่วนการไหลสะพานภายใน"
+# AI Translated
msgid ""
"This value governs the thickness of the internal bridge layer. This is the first layer over sparse infill so increasing it may increase strength and upper layer quality.\n"
"Values above 1.0: Increase the amount of material while maintaining line spacing. This can improve line contact and strength.\n"
@@ -13964,15 +15189,16 @@ msgid ""
"\n"
"The actual bridge flow used is calculated by multiplying this value with the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
-"ค่านี้กำหนดความหนาของชั้นสะพานด้านใน ซึ่งเป็นชั้นแรกเหนือไส้ในแบบโปร่ง การเพิ่มค่าอาจเพิ่มความแข็งแรงและคุณภาพชั้นบน\n"
+"ค่านี้กำหนดความหนาของเลเยอร์สะพานด้านใน ซึ่งเป็นเลเยอร์แรกเหนือไส้ในแบบโปร่ง การเพิ่มค่าอาจเพิ่มความแข็งแรงและคุณภาพเลเยอร์บน\n"
"ค่ามากกว่า 1.0: เพิ่มปริมาณวัสดุโดยคงระยะห่างเส้น ช่วยเพิ่มการสัมผัสและความแข็งแรงของเส้น\n"
"ค่าน้อยกว่า 1.0: ลดปริมาณวัสดุโดยปรับระยะห่างเส้นเพื่อคงการสัมผัส ช่วยลดการย้อยตัว\n"
"\n"
-"อัตราการไหลของสะพานจริงคำนวณจากค่านี้คูณอัตราการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"อัตราส่วนการไหลของสะพานจริงคำนวณจากค่านี้คูณอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
msgid "Top surface flow ratio"
msgstr "อัตราส่วนการไหลผิวด้านบน"
+# AI Translated
msgid ""
"This factor affects the amount of material for top solid infill. You can decrease it slightly to have smooth surface finish.\n"
"\n"
@@ -13980,11 +15206,12 @@ msgid ""
msgstr ""
"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุสำหรับไส้ในของแข็งด้านบน คุณสามารถลดลงเล็กน้อยเพื่อให้พื้นผิวเรียบ\n"
"\n"
-"การไหลของพื้นผิวด้านบนจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"การไหลของพื้นผิวด้านบนจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
msgid "Bottom surface flow ratio"
msgstr "อัตราส่วนการไหลผิวด้านล่าง"
+# AI Translated
msgid ""
"This factor affects the amount of material for bottom solid infill.\n"
"\n"
@@ -13992,7 +15219,7 @@ msgid ""
msgstr ""
"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุสำหรับไส้ในของแข็งด้านล่าง\n"
"\n"
-"การไหล ไส้ใน ของแข็งด้านล่างจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"การไหล ไส้ใน ของแข็งด้านล่างจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
msgid "Set other flow ratios"
msgstr "ตั้งค่าอัตราส่วนการไหลอื่นๆ"
@@ -14000,21 +15227,24 @@ msgstr "ตั้งค่าอัตราส่วนการไหลอื
msgid "Change flow ratios for other extrusion path types."
msgstr "เปลี่ยนอัตราส่วนการไหลสำหรับเส้นทางการอัดขึ้นรูปประเภทอื่นๆ"
+# AI Translated
msgid "First layer flow ratio"
-msgstr "อัตราการไหลของชั้นแรก"
+msgstr "อัตราส่วนการไหลของเลเยอร์แรก"
+# AI Translated
msgid ""
"This factor affects the amount of material on the first layer for the extrusion path roles listed in this section.\n"
"\n"
"For the first layer, the actual flow ratio for each path role (does not affect brims and skirts) will be multiplied by this value."
msgstr ""
-"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุในชั้นแรกสำหรับประเภทการพิมพ์ที่แสดงอยู่ในส่วนนี้\n"
+"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุในเลเยอร์แรกสำหรับประเภทการพิมพ์ที่แสดงอยู่ในส่วนนี้\n"
"\n"
-"สำหรับชั้นแรก อัตราการไหลตามจริงสำหรับแต่ละประเภทการพิมพ์ (ไม่ส่งผลต่อขอบยึดชิ้นงานและเส้นล้อมชิ้นงาน) จะถูกคูณด้วยค่านี้"
+"สำหรับเลเยอร์แรก อัตราส่วนการไหลตามจริงสำหรับแต่ละประเภทการพิมพ์ (ไม่ส่งผลต่อขอบยึดชิ้นงานและเส้นล้อมชิ้นงาน) จะถูกคูณด้วยค่านี้"
msgid "Outer wall flow ratio"
msgstr "อัตราส่วนการไหลของผนังด้านนอก"
+# AI Translated
msgid ""
"This factor affects the amount of material for outer walls.\n"
"\n"
@@ -14022,11 +15252,12 @@ msgid ""
msgstr ""
"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุสำหรับผนังด้านนอก\n"
"\n"
-"การไหลของผนังด้านนอกจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"การไหลของผนังด้านนอกจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
msgid "Inner wall flow ratio"
msgstr "อัตราส่วนการไหลของผนังด้านใน"
+# AI Translated
msgid ""
"This factor affects the amount of material for inner walls.\n"
"\n"
@@ -14034,11 +15265,12 @@ msgid ""
msgstr ""
"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุสำหรับผนังด้านใน\n"
"\n"
-"การไหลของผนังด้านในจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"การไหลของผนังด้านในจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
msgid "Overhang flow ratio"
msgstr "อัตราส่วนการไหลของส่วนยื่น"
+# AI Translated
msgid ""
"This factor affects the amount of material for overhangs.\n"
"\n"
@@ -14046,11 +15278,12 @@ msgid ""
msgstr ""
"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุสำหรับยื่น\n"
"\n"
-"การไหลยื่นออกมาจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"การไหลยื่นออกมาจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
msgid "Sparse infill flow ratio"
msgstr "อัตราส่วนการไหลไส้ในแบบโปร่ง"
+# AI Translated
msgid ""
"This factor affects the amount of material for sparse infill.\n"
"\n"
@@ -14058,11 +15291,12 @@ msgid ""
msgstr ""
"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุสำหรับไส้ในแบบโปร่ง\n"
"\n"
-"การไหล ไส้ใน แบบเบาบางจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"การไหล ไส้ใน แบบเบาบางจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
msgid "Internal solid infill flow ratio"
msgstr "อัตราส่วนการไหลไส้ในแบบทึบ"
+# AI Translated
msgid ""
"This factor affects the amount of material for internal solid infill.\n"
"\n"
@@ -14070,11 +15304,12 @@ msgid ""
msgstr ""
"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุสำหรับไส้ในของแข็งภายใน\n"
"\n"
-"การไหล ไส้ใน ของแข็งภายในจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"การไหล ไส้ใน ของแข็งภายในจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
msgid "Gap fill flow ratio"
msgstr "อัตราส่วนการไหลเติมช่องว่าง"
+# AI Translated
msgid ""
"This factor affects the amount of material for filling the gaps.\n"
"\n"
@@ -14082,11 +15317,12 @@ msgid ""
msgstr ""
"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุในการเติมช่องว่าง\n"
"\n"
-"อัตราการเติมช่องว่างจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"อัตราการเติมช่องว่างจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
msgid "Support flow ratio"
msgstr "อัตราส่วนการไหลส่วนรองรับ"
+# AI Translated
msgid ""
"This factor affects the amount of material for support.\n"
"\n"
@@ -14094,11 +15330,12 @@ msgid ""
msgstr ""
"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุที่รองรับ\n"
"\n"
-"กระแสรองรับจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"กระแสรองรับจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
msgid "Support interface flow ratio"
msgstr "อัตราส่วนการไหลผิวสัมผัสส่วนรองรับ"
+# AI Translated
msgid ""
"This factor affects the amount of material for the support interface.\n"
"\n"
@@ -14106,13 +15343,14 @@ msgid ""
msgstr ""
"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุสำหรับอินเทอร์เฟซส่วนรองรับ\n"
"\n"
-"โฟลว์อินเทอร์เฟซส่วนรองรับจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ"
+"โฟลว์อินเทอร์เฟซส่วนรองรับจริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ"
msgid "Precise wall"
msgstr "ผนังที่แม่นยำ"
+# AI Translated
msgid "Improve shell precision by adjusting outer wall spacing. This also improves layer consistency. NOTE: This option will be ignored for outer-inner or inner-outer-inner wall sequences."
-msgstr "ปรับปรุงความแม่นยำของเปลือกโดยการปรับระยะห่างผนังด้านนอก นอกจากนี้ยังช่วยปรับปรุงความสม่ำเสมอของชั้นอีกด้วย หมายเหตุ: ตัวเลือกนี้จะถูกละเว้นสำหรับลำดับผนังด้านนอก-ด้านใน หรือด้านใน-ด้านนอก-ด้านใน"
+msgstr "ปรับปรุงความแม่นยำของผนังโดยการปรับระยะห่างผนังด้านนอก นอกจากนี้ยังช่วยปรับปรุงความสม่ำเสมอของเลเยอร์อีกด้วย หมายเหตุ: ตัวเลือกนี้จะถูกละเว้นสำหรับลำดับผนังด้านนอก-ด้านใน หรือด้านใน-ด้านนอก-ด้านใน"
msgid "Only one wall on top surfaces"
msgstr "มีเพียงผนังเดียวบนพื้นผิวด้านบน"
@@ -14123,19 +15361,22 @@ msgstr "ใช้ผนังเพียงด้านเดียวบนพ
msgid "One wall threshold"
msgstr "เกณฑ์ผนังด้านหนึ่ง"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"If a top surface has to be printed and it's partially covered by another layer, it won't be considered at a top layer where its width is below this value. This can be useful to not let the 'one perimeter on top' trigger on surface that should be covered only by perimeters. This value can be a mm or a % of the perimeter extrusion width.\n"
"Warning: If enabled, artifacts can be created if you have some thin features on the next layer, like letters. Set this setting to 0 to remove these artifacts."
msgstr ""
-"หากต้องพิมพ์พื้นผิวด้านบนและปิดบางส่วนด้วยชั้นอื่น จะไม่ได้รับการพิจารณาที่ชั้นบนสุดซึ่งมีความกว้างต่ำกว่าค่านี้ วิธีนี้จะเป็นประโยชน์ในการไม่ปล่อยให้ 'เส้นรอบวงด้านบนหนึ่งเส้น' ทริกเกอร์บนพื้นผิวที่ควรครอบคลุมเฉพาะเส้นรอบวงเท่านั้น ค่านี้อาจเป็นหน่วย มม. หรือ % ของความกว้างของการอัดขึ้นรูปเส้นรอบวง\n"
+"หากต้องพิมพ์พื้นผิวด้านบนและปิดบางส่วนด้วยเลเยอร์อื่น จะไม่ได้รับการพิจารณาที่เลเยอร์บนสุดซึ่งมีความกว้างต่ำกว่าค่านี้ วิธีนี้จะเป็นประโยชน์ในการไม่ปล่อยให้ 'เส้นรอบวงด้านบนหนึ่งเส้น' ทริกเกอร์บนพื้นผิวที่ควรครอบคลุมเฉพาะเส้นรอบวงเท่านั้น ค่านี้อาจเป็นหน่วย มม. หรือ % ของความกว้างของการอัดขึ้นรูปเส้นรอบวง\n"
"คำเตือน: หากเปิดใช้งาน สามารถสร้างสิ่งประดิษฐ์ได้หากคุณมีคุณสมบัติบางๆ ในเลเยอร์ถัดไป เช่น ตัวอักษร ตั้งค่านี้เป็น 0 เพื่อลบสิ่งประดิษฐ์เหล่านี้"
+# AI Translated
msgid "Only one wall on first layer"
-msgstr "มีเพียงผนังเดียวในชั้นแรก"
+msgstr "มีเพียงผนังเดียวในเลเยอร์แรก"
+# AI Translated
msgid "Use only one wall on first layer, to give more space to the bottom infill pattern."
-msgstr "ใช้ผนังเพียงชั้นเดียวในชั้นแรก เพื่อให้มีพื้นที่ด้านล่างมากขึ้น"
+msgstr "ใช้ผนังเพียงชั้นเดียวในเลเยอร์แรก เพื่อให้มีพื้นที่ด้านล่างมากขึ้น"
msgid "Extra perimeters on overhangs"
msgstr "เส้นรอบวงเพิ่มเติมบนส่วนยื่น"
@@ -14149,12 +15390,13 @@ msgstr "กลับด้านหน้าเลขคู่"
msgid "Overhang reversal"
msgstr "การกลับด้านส่วนยื่นออกมา"
+# AI Translated
msgid ""
"Extrude perimeters that have a part over an overhang in the reverse direction on even layers. This alternating pattern can drastically improve steep overhangs.\n"
"\n"
"This setting can also help reduce part warping due to the reduction of stresses in the part walls."
msgstr ""
-"รีดเส้นรอบวงที่มีส่วนยื่นออกมาในทิศทางย้อนกลับบนชั้นคู่ รูปแบบการสลับนี้สามารถปรับปรุงระยะยื่นที่สูงชันได้อย่างมาก\n"
+"รีดเส้นรอบวงที่มีส่วนยื่นออกมาในทิศทางย้อนกลับบนเลเยอร์คู่ รูปแบบการสลับนี้สามารถปรับปรุงระยะยื่นที่สูงชันได้อย่างมาก\n"
"\n"
"การตั้งค่านี้ยังช่วยลดการบิดงอของชิ้นส่วนเนื่องจากการลดความเค้นในผนังชิ้นส่วนอีกด้วย"
@@ -14177,6 +15419,7 @@ msgstr ""
msgid "Bridge counterbore holes"
msgstr "สะพานหลุมเจาะ"
+# AI Translated
msgid ""
"This option creates bridges for counterbore holes, allowing them to be printed without support. Available modes include:\n"
"1. None: No bridge is created\n"
@@ -14186,13 +15429,14 @@ msgstr ""
"ตัวเลือกนี้จะสร้างสะพานเชื่อมสำหรับรูเจาะเคาน์เตอร์ ทำให้สามารถพิมพ์ได้โดยไม่ต้องมีส่วนรองรับ โหมดที่ใช้ได้ ได้แก่ :\n"
"1. ไม่มี: ไม่มีการสร้างสะพาน\n"
"2. เชื่อมโยงบางส่วน: เฉพาะส่วนหนึ่งของพื้นที่ที่ไม่ได้รับส่วนรองรับเท่านั้นที่จะถูกเชื่อมโยง\n"
-"3. Sacrificial Layer: ชั้นสะพานบูชายัญเต็มรูปแบบจะถูกสร้างขึ้น"
+"3. Sacrificial Layer: เลเยอร์สะพานบูชายัญเต็มรูปแบบจะถูกสร้างขึ้น"
msgid "Partially bridged"
msgstr "มีสะพานเชื่อมบางส่วน"
+# AI Translated
msgid "Sacrificial layer"
-msgstr "ชั้นบูชายัญ"
+msgstr "เลเยอร์บูชายัญ"
msgid "Reverse threshold"
msgstr "เกณฑ์การกลับด้าน"
@@ -14219,6 +15463,7 @@ msgstr "เปิดตัวเลือกนี้เพื่อลดคว
msgid "Slow down for curled perimeters"
msgstr "ชะลอความเร็วลงสำหรับขอบเขตที่โค้งงอ"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
@@ -14234,34 +15479,35 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"เปิดใช้งานตัวเลือกนี้เพื่อชะลอการพิมพ์ในพื้นที่ที่เส้นรอบวงอาจงอขึ้น\n"
-"ตัวอย่างเช่น จะชะลอเพิ่มเติมเมื่อพิมพ์ส่วนยื่นที่มุมแหลม เช่นด้านหน้าของตัวเรือ Benchy ช่วยลดการงอที่สะสมข้ามหลายชั้น\n"
+"ตัวอย่างเช่น จะชะลอเพิ่มเติมเมื่อพิมพ์ส่วนยื่นที่มุมแหลม เช่นด้านหน้าของตัวเรือ Benchy ช่วยลดการงอที่สะสมข้ามหลายเลเยอร์\n"
"\n"
"โดยทั่วไปแนะนำให้เปิดใช้งาน เว้นแต่ระบบระบายความร้อนของเครื่องพิมพ์แรงพอ หรือความเร็วพิมพ์ช้าพอที่เส้นรอบวงจะไม่งอ\n"
-"หากพิมพ์ด้วยความเร็วเส้นรอบวงด้านนอกสูง พารามิเตอร์นี้อาจทำให้เกิดข้อบกพร่องบนผนังเมื่อชะลอ เนื่องจากความแตกต่างของความเร็วพิมพ์ที่อาจมาก ทำให้ชุดดันเส้นตอบสนองการเปลี่ยนอัตราการไหลไม่ทัน\n"
-"สาเหตุหลักของข้อบกพร่องเหล่านี้มักมาจากการปรับ PA คลาดเคลื่อนเล็กน้อย โดยเฉพาะเมื่อใช้ร่วมกับ PA smooth time ที่สูง\n"
+"หากพิมพ์ด้วยความเร็วเส้นรอบวงด้านนอกสูง พารามิเตอร์นี้อาจทำให้เกิดสิ่งแปลกปลอมบนผนังเมื่อชะลอ เนื่องจากความแตกต่างของความเร็วพิมพ์ที่อาจมาก ทำให้ชุดดันเส้นตอบสนองการเปลี่ยนอัตราการไหลไม่ทัน\n"
+"สาเหตุหลักของสิ่งแปลกปลอมเหล่านี้มักมาจากการปรับ PA คลาดเคลื่อนเล็กน้อย โดยเฉพาะเมื่อใช้ร่วมกับ PA smooth time ที่สูง\n"
"\n"
"คำแนะนำเมื่อเปิดใช้งานตัวเลือกนี้:\n"
"1. ลด Pressure Advance smooth time เป็น 0.015 - 0.02 เพื่อให้ชุดดันเส้นตอบสนองการเปลี่ยนความเร็วได้เร็วขึ้น\n"
"2. เพิ่มความเร็วพิมพ์ขั้นต่ำเพื่อจำกัดขนาดการชะลอและลดความแตกต่างระหว่างช่วงเร็วและช้า\n"
-"3. หากยังมีข้อบกพร่อง ให้เปิดใช้งาน Extrusion Rate Smoothing (ERS) เพื่อปรับการเปลี่ยนอัตราการไหลให้เรียบขึ้น\n"
+"3. หากยังมีสิ่งแปลกปลอม ให้เปิดใช้งานอัตราการอัดรีดให้เรียบ (ERS) เพื่อปรับการเปลี่ยนอัตราการไหลให้เรียบขึ้น\n"
"\n"
"หมายเหตุ: เมื่อเปิดใช้งานตัวเลือกนี้ เส้นรอบวงส่วนยื่นจะถูกจัดเป็นส่วนยื่น หมายความว่าจะใช้ความเร็วส่วนยื่นแม้เส้นรอบวงนั้นเป็นส่วนหนึ่งของสะพาน\n"
-"ตัวอย่างเช่น เมื่อเส้นรอบวงยื่น 100% โดยไม่มีผนังรองรับจากด้านล่าง จะใช้ความเร็วส่วนยื่น 100%"
+"ตัวอย่างเช่น เมื่อเส้นรอบวงยื่น 100% โดยไม่มีผนังรองรับจากด้านล่าง จะใช้ความเร็วส่วนยื่น 75% โดยจำกัดด้วยความเร็วสะพาน"
msgid "mm/s or %"
msgstr "มิลลิเมตร/วินาที หรือ %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"ความเร็วของการอัดขึ้นรูปสะพานที่มองเห็นได้จากภายนอก\n"
"\n"
-"นอกจากนี้ หากปิดใช้งานการชะลอความเร็วสำหรับขอบม้วนงอหรือเปิดใช้งานโหมดระยะยื่นแบบคลาสสิก มันจะเป็นความเร็วในการพิมพ์ของผนังส่วนยื่นที่รองรับน้อยกว่า 13% ไม่ว่าจะเป็นส่วนหนึ่งของสะพานหรือส่วนยื่นก็ตาม"
+"นอกจากนี้ หากปิดใช้งาน \"ชะลอความเร็วลงสำหรับขอบเขตที่โค้งงอ\" จะเป็นความเร็วในการพิมพ์ของผนังส่วนยื่นที่รองรับน้อยกว่า 13% ไม่ว่าจะเป็นส่วนหนึ่งของสะพานหรือส่วนยื่นก็ตาม"
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "ความเร็วของสะพานภายใน หากค่าแสดงเป็นเปอร์เซ็นต์ ค่าดังกล่าวจะถูกคำนวณตาม bridge_speed ค่าเริ่มต้นคือ 150%"
@@ -14269,12 +15515,56 @@ msgstr "ความเร็วของสะพานภายใน หา
msgid "This is the distance from the model to the outermost brim line."
msgstr "ระยะห่างจากแบบจำลองถึงเส้นขอบยึดชิ้นงานด้านนอกสุด"
+# AI Translated
+msgid "Leading brim length"
+msgstr "ความยาวขอบยึดชิ้นงานด้านนำ"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"เฉพาะเครื่องพิมพ์สายพานเท่านั้น ขยายขอบยึดชิ้นงานไปข้างหน้าวัตถุตามแนวสายพาน บนทุกขอบที่หันลงทางลาดของพื้นที่สัมผัส — ทั้งจุดที่วัตถุสัมผัสสายพานครั้งแรก และเกาะใดๆ ที่ลงสัมผัสภายหลัง แผ่นรองนี้จะถูกวางลงบนสายพานก่อนที่วัตถุจะมาถึง เพื่อให้ขอบนำมีสิ่งที่ยึดติดอยู่แล้วให้เกาะ\n"
+"\n"
+"วัดบนพื้นผิวสายพาน และบวกเพิ่มจาก ความกว้าง ขอบยึดชิ้นงาน: ขอบยึดชิ้นงานจะยื่นไปข้างหน้าวัตถุเป็นระยะ ช่องว่าง ขอบยึดชิ้นงาน กับชิ้นงาน + ความยาวขอบยึดชิ้นงานด้านนำ + ความกว้าง ขอบยึดชิ้นงาน ตั้ง ช่องว่าง ขอบยึดชิ้นงาน กับชิ้นงาน เป็น 0 มิฉะนั้นแผ่นรองจะไม่สัมผัสวัตถุที่ต้องการยึด\n"
+"\n"
+"บนสายพานที่เอียง แต่ละเลเยอร์จะวางขอบยึดชิ้นงานหนึ่งแถบ ดังนั้นความหนาของแผ่นขอบยึดชิ้นงานที่ได้จึงขึ้นอยู่กับการไหล ไม่ใช่ความสูงเลเยอร์ ใช้ อัตราส่วนการไหล ขอบยึดชิ้นงาน เพื่อปรับ\n"
+"\n"
+"ตั้งค่าเป็น 0 เพื่อปิดใช้งาน"
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "ความกว้างขอบยึดชิ้นงานเพิ่มเติม"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"เฉพาะเครื่องพิมพ์สายพานเท่านั้น ขยายขอบยึดชิ้นงานไปด้านข้าง ขวางสายพาน โดยไม่ขยายไปข้างหน้าหรือข้างหลังวัตถุเพิ่ม ใช้เมื่อชิ้นส่วนต้องการการยึดเกาะตามความยาวมากกว่าที่ ความกว้าง ขอบยึดชิ้นงาน เพียงอย่างเดียวให้ได้\n"
+"\n"
+"วัดบนพื้นผิวสายพาน และบวกเพิ่มจาก ความกว้าง ขอบยึดชิ้นงาน: ขอบยึดชิ้นงานจะยื่นออกไปแต่ละด้านของวัตถุเป็นระยะ ช่องว่าง ขอบยึดชิ้นงาน กับชิ้นงาน + ความกว้าง ขอบยึดชิ้นงาน + ความกว้างขอบยึดชิ้นงานเพิ่มเติม หากต้องการขยายขอบยึดชิ้นงานไปข้างหน้าวัตถุแทน ให้ใช้ ความยาวขอบยึดชิ้นงานด้านนำ\n"
+"\n"
+"ตั้งค่าเป็น 0 เพื่อปิดใช้งาน"
+
msgid "Brim type"
msgstr "ชนิด ขอบยึดชิ้นงาน"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "วิธีนี้จะควบคุมการสร้างขอบยึดชิ้นงานที่ด้านนอกและ/หรือด้านในของรุ่น อัตโนมัติหมายถึงความกว้างของขอบยึดชิ้นงานได้รับการวิเคราะห์และคำนวณโดยอัตโนมัติ"
+# AI Translated
+msgid "Leading edge only"
+msgstr "เฉพาะขอบนำ"
+
msgid "Brim-object gap"
msgstr "ช่องว่าง ขอบยึดชิ้นงาน กับชิ้นงาน"
@@ -14284,6 +15574,7 @@ msgstr "ช่องว่างระหว่างเส้นขอบยึ
msgid "Brim flow ratio"
msgstr "อัตราส่วนการไหล ขอบยึดชิ้นงาน"
+# AI Translated
msgid ""
"This factor affects the amount of material for brims.\n"
"\n"
@@ -14293,23 +15584,24 @@ msgid ""
msgstr ""
"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุสำหรับขอบยึดชิ้นงาน\n"
"\n"
-"การไหลของขอบยึดชิ้นงานที่แท้จริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราการไหลของวัตถุ\n"
+"การไหลของขอบยึดชิ้นงานที่แท้จริงที่ใช้คำนวณโดยการคูณค่านี้ด้วยอัตราส่วนการไหลของเส้นพลาสติก และหากตั้งค่าไว้ อัตราส่วนการไหลของวัตถุ\n"
"\n"
-"หมายเหตุ: ค่าผลลัพธ์จะไม่ได้รับผลกระทบจากอัตราส่วนการไหลของชั้นแรก"
+"หมายเหตุ: ค่าผลลัพธ์จะไม่ได้รับผลกระทบจากอัตราส่วนการไหลของเลเยอร์แรก"
msgid "Brim follows compensated outline"
msgstr "Brim ตามแนวที่ชดเชยแล้ว"
+# AI Translated
msgid ""
"When enabled, the brim is aligned with the first-layer perimeter geometry after Elephant Foot Compensation is applied.\n"
"This option is intended for cases where Elephant Foot Compensation significantly alters the first-layer footprint.\n"
"\n"
"If your current setup already works well, enabling it may be unnecessary and can cause the brim to fuse with upper layers."
msgstr ""
-"เมื่อเปิดใช้งาน ขอบยึดชิ้นงานจะจัดแนวกับรูปทรงเส้นรอบวงชั้นแรกหลังจากใช้การชดเชยอาการฐานบาน\n"
-"ตัวเลือกนี้มีไว้สำหรับกรณีที่การชดเชยอาการฐานบานเปลี่ยนแปลงรอยเท้าชั้นแรกอย่างมีนัยสำคัญ\n"
+"เมื่อเปิดใช้งาน ขอบยึดชิ้นงานจะจัดแนวกับรูปทรงเส้นรอบวงเลเยอร์แรกหลังจากใช้การชดเชยอาการฐานบาน\n"
+"ตัวเลือกนี้มีไว้สำหรับกรณีที่การชดเชยอาการฐานบานเปลี่ยนแปลงรอยเท้าเลเยอร์แรกอย่างมีนัยสำคัญ\n"
"\n"
-"หากการตั้งค่าปัจจุบันของคุณทำงานได้ดีอยู่แล้ว การเปิดใช้งานอาจไม่จำเป็นและอาจทำให้ขอบยึดชิ้นงานหลอมรวมกับชั้นบนได้"
+"หากการตั้งค่าปัจจุบันของคุณทำงานได้ดีอยู่แล้ว การเปิดใช้งานอาจไม่จำเป็นและอาจทำให้ขอบยึดชิ้นงานหลอมรวมกับเลเยอร์บนได้"
msgid "Combine brims"
msgstr "รวมขอบยึดชิ้นงาน"
@@ -14365,17 +15657,20 @@ msgstr "นิพจน์บูลีนที่ใช้ค่าการก
msgid "A Boolean expression using the configuration values of an active print profile. If this expression evaluates to true, this profile is considered compatible with the active print profile."
msgstr "นิพจน์บูลีนที่ใช้ค่าการกำหนดค่าของโปรไฟล์การพิมพ์ที่ใช้งานอยู่ หากนิพจน์นี้ประเมินว่าเป็นจริง โปรไฟล์นี้จะถือว่าเข้ากันได้กับโปรไฟล์การพิมพ์ที่ใช้งานอยู่"
+# AI Translated
msgid "This determines the print sequence, allowing you to print layer-by-layer or object-by-object."
-msgstr "ลำดับการพิมพ์ ทีละชั้น หรือวัตถุต่อวัตถุ"
+msgstr "ลำดับการพิมพ์ ทีละเลเยอร์ หรือวัตถุต่อวัตถุ"
+# AI Translated
msgid "By layer"
-msgstr "ตามชั้น"
+msgstr "ตามเลเยอร์"
msgid "By object"
msgstr "ตามวัตถุ"
+# AI Translated
msgid "Intra-layer order"
-msgstr "คำสั่งภายในชั้น"
+msgstr "คำสั่งภายในเลเยอร์"
# AI Translated
msgid ""
@@ -14420,18 +15715,21 @@ msgstr "การพิมพ์ปกติ"
msgid "This is the default acceleration for both normal printing and travel after the first layer."
msgstr "การเร่งความเร็วเริ่มต้นของทั้งการพิมพ์และการเคลื่อนที่ตามปกติ ยกเว้นเลเยอร์เริ่มต้น"
+# AI Translated
msgid "Acceleration of travel moves."
-msgstr "การเร่งความเร็วของการเดินทาง"
+msgstr "การเร่งความเร็วของการเดินหัวเปล่า"
+# AI Translated
msgid "First layer travel"
-msgstr "การเดินทางชั้นแรก"
+msgstr "การเดินหัวเปล่าเลเยอร์แรก"
+# AI Translated
msgid ""
"Travel acceleration of first layer.\n"
"The percentage value is relative to Travel Acceleration."
msgstr ""
-"ความเร่งการเคลื่อนที่ของชั้นแรก\n"
-"ค่าเปอร์เซ็นต์สัมพันธ์กับการเร่งความเร็วในการเดินทาง"
+"ความเร่งการเคลื่อนที่ของเลเยอร์แรก\n"
+"ค่าเปอร์เซ็นต์สัมพันธ์กับการเร่งความเร็วในการเดินหัวเปล่า"
msgid "mm/s² or %"
msgstr "มม./วินาที² หรือ %"
@@ -14476,8 +15774,9 @@ msgstr "ความเร็วของพัดลมดูดอากาศ
msgid "No cooling for the first"
msgstr "ไม่มีการระบายความร้อนในช่วงแรก"
+# AI Translated
msgid "Turn off all cooling fans for the first few layers. This can be used to improve build plate adhesion."
-msgstr "ปิดพัดลมระบายความร้อนทั้งหมดในช่วงสองสามชั้นแรก สามารถใช้เพื่อปรับปรุงการยึดเกาะของแผ่นรองพื้น"
+msgstr "ปิดพัดลมระบายความร้อนทั้งหมดในช่วงสองสามเลเยอร์แรก สามารถใช้เพื่อปรับปรุงการยึดเกาะของฐานพิมพ์"
msgid "Don't support bridges"
msgstr "ไม่สร้างส่วนรองรับสำหรับสะพาน"
@@ -14512,6 +15811,7 @@ msgstr ""
msgid "Extra bridge layers (beta)"
msgstr "เลเยอร์บริดจ์พิเศษ (เบต้า)"
+# AI Translated
msgid ""
"This option enables the generation of an extra bridge layer over internal and/or external bridges.\n"
"\n"
@@ -14525,17 +15825,17 @@ msgid ""
"3. Internal bridge only - generates second bridge layers for internal bridges over sparse infill only. Please note that the internal bridges count towards the top shell layer count of your model. The second internal bridge layer will be extruded as close to perpendicular to the first as possible. If multiple regions in the same island, with varying bridge angles are present, the last region of that island will be selected as the angle reference\n"
"4. Apply to all - generates second bridge layers for both internal and external-facing bridges\n"
msgstr ""
-"ตัวเลือกนี้ช่วยให้สร้างชั้นสะพานพิเศษเหนือสะพานภายในและ/หรือภายนอกได้\n"
+"ตัวเลือกนี้ช่วยให้สร้างเลเยอร์สะพานพิเศษเหนือสะพานภายในและ/หรือภายนอกได้\n"
"\n"
-"ชั้นสะพานพิเศษช่วยปรับปรุงรูปลักษณ์และความน่าเชื่อถือของสะพาน เพราะไส้ในแบบทึบได้รับการรองรับดีขึ้น มีประโยชน์อย่างยิ่งกับเครื่องพิมพ์ความเร็วสูงที่ความเร็วสะพานและไส้ในแบบทึบต่างกันมาก ชั้นสะพานพิเศษช่วยลดการโป่งของผิวด้านบน รวมถึงลดการแยกตัวของชั้นสะพานภายนอกจากเส้นรอบวงโดยรอบ\n"
+"เลเยอร์สะพานพิเศษช่วยปรับปรุงรูปลักษณ์และความน่าเชื่อถือของสะพาน เพราะไส้ในแบบทึบได้รับการรองรับดีขึ้น มีประโยชน์อย่างยิ่งกับเครื่องพิมพ์ความเร็วสูงที่ความเร็วสะพานและไส้ในแบบทึบต่างกันมาก เลเยอร์สะพานพิเศษช่วยลดการโป่งของผิวด้านบน รวมถึงลดการแยกตัวของเลเยอร์สะพานภายนอกจากเส้นรอบวงโดยรอบ\n"
"\n"
"โดยทั่วไปขอแนะนำให้ตั้งค่านี้เป็น 'สะพานภายนอกเท่านั้น' เป็นอย่างน้อย เว้นแต่จะพบปัญหาเฉพาะกับโมเดลที่แบ่งส่วน\n"
"\n"
"ตัวเลือก:\n"
-"1. ปิดใช้งาน - ไม่สร้างชั้นสะพานที่สอง นี่เป็นค่าเริ่มต้นและตั้งค่าไว้เพื่อความเข้ากันได้\n"
-"2. สะพานภายนอกเท่านั้น - สร้างชั้นสะพานที่สองสำหรับสะพานที่หันหน้าไปทางภายนอกเท่านั้น โปรดทราบว่าสะพานขนาดเล็กที่สั้นกว่าหรือแคบกว่าจำนวนเส้นรอบวงที่ตั้งไว้จะถูกข้ามไป เนื่องจากจะไม่ได้รับประโยชน์จากชั้นสะพานที่สอง หากสร้างขึ้น ชั้นสะพานที่สองจะถูกอัดรีดขนานกับชั้นสะพานแรกเพื่อเสริมความแข็งแรงของสะพาน\n"
-"3. สะพานภายในเท่านั้น - สร้างชั้นสะพานที่สองสำหรับสะพานภายในเหนือไส้ในแบบโปร่งเท่านั้น โปรดทราบว่าสะพานภายในจะนับรวมกับจำนวนชั้นเปลือกด้านบนของโมเดล ชั้นสะพานภายในที่สองจะถูกอัดรีดให้ใกล้เคียงกับแนวตั้งฉากกับชั้นแรกมากที่สุด หากมีหลายพื้นที่ในเกาะเดียวกันพร้อมมุมสะพานต่างกัน พื้นที่สุดท้ายของเกาะนั้นจะถูกเลือกเป็นมุมอ้างอิง\n"
-"4. นำไปใช้กับทั้งหมด - สร้างชั้นสะพานที่สองสำหรับสะพานที่หันหน้าไปทางภายในและภายนอก\n"
+"1. ปิดใช้งาน - ไม่สร้างเลเยอร์สะพานที่สอง นี่เป็นค่าเริ่มต้นและตั้งค่าไว้เพื่อความเข้ากันได้\n"
+"2. สะพานภายนอกเท่านั้น - สร้างเลเยอร์สะพานที่สองสำหรับสะพานที่หันหน้าไปทางภายนอกเท่านั้น โปรดทราบว่าสะพานขนาดเล็กที่สั้นกว่าหรือแคบกว่าจำนวนเส้นรอบวงที่ตั้งไว้จะถูกข้ามไป เนื่องจากจะไม่ได้รับประโยชน์จากเลเยอร์สะพานที่สอง หากสร้างขึ้น เลเยอร์สะพานที่สองจะถูกอัดรีดขนานกับเลเยอร์สะพานแรกเพื่อเสริมความแข็งแรงของสะพาน\n"
+"3. สะพานภายในเท่านั้น - สร้างเลเยอร์สะพานที่สองสำหรับสะพานภายในเหนือไส้ในแบบโปร่งเท่านั้น โปรดทราบว่าสะพานภายในจะนับรวมกับจำนวนเลเยอร์ผนังด้านบนของโมเดล เลเยอร์สะพานภายในที่สองจะถูกอัดรีดให้ใกล้เคียงกับแนวตั้งฉากกับเลเยอร์แรกมากที่สุด หากมีหลายพื้นที่ในเกาะเดียวกันพร้อมมุมสะพานต่างกัน พื้นที่สุดท้ายของเกาะนั้นจะถูกเลือกเป็นมุมอ้างอิง\n"
+"4. นำไปใช้กับทั้งหมด - สร้างเลเยอร์สะพานที่สองสำหรับสะพานที่หันหน้าไปทางภายในและภายนอก\n"
msgid "External bridge only"
msgstr "สะพานภายนอกเท่านั้น"
@@ -14566,6 +15866,9 @@ msgstr ""
"2. การกรองแบบจำกัด - สร้างสะพานภายในบนพื้นผิวที่ลาดเอียงอย่างมาก ในขณะที่หลีกเลี่ยงสะพานที่ไม่จำเป็น วิธีนี้ใช้ได้ผลดีกับโมเดลที่ยากที่สุด\n"
"3. ไม่มีการกรอง - สร้างสะพานภายในบนทุกส่วนยื่นภายในที่อาจเกิดขึ้น ตัวเลือกนี้มีประโยชน์สำหรับโมเดลพื้นผิวด้านบนที่เอียงมาก อย่างไรก็ตาม ในกรณีส่วนใหญ่ มันจะสร้างบริดจ์ที่ไม่จำเป็นมากเกินไป"
+msgid "Filter"
+msgstr "กรอง"
+
msgid "Limited filtering"
msgstr "การกรองที่จำกัด"
@@ -14581,7 +15884,8 @@ msgstr "ความยาวสูงสุดของสะพานที่
msgid "End G-code"
msgstr "จบ G-code"
-msgid "Add end G-Code when finishing the entire print."
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
msgstr "สิ้นสุด G-code เมื่อพิมพ์เสร็จทั้งหมด"
msgid "Between Object G-code"
@@ -14594,9 +15898,11 @@ msgstr "แทรก G-code ระหว่างวัตถุ พาราม
msgid "Add end G-code when finishing the printing of this filament."
msgstr "สิ้นสุด G-code เมื่อเสร็จสิ้นการพิมพ์เส้นพลาสติกนี้"
+# AI Translated
msgid "Ensure vertical shell thickness"
-msgstr "ตรวจสอบความหนาของเปลือกแนวตั้ง"
+msgstr "ตรวจสอบความหนาของผนังแนวตั้ง"
+# AI Translated
msgid ""
"Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)\n"
"None: No solid infill will be added anywhere. Caution: Use this option carefully if your model has sloped surfaces\n"
@@ -14605,7 +15911,7 @@ msgid ""
"All: Add solid infill for all suitable sloping surfaces\n"
"Default value is All."
msgstr ""
-"เพิ่มไส้ในแบบทึบใกล้พื้นผิวลาดเอียงเพื่อรับประกันความหนาเปลือกในแนวตั้ง (ชั้นทึบบน + ล่าง)\n"
+"เพิ่มไส้ในแบบทึบใกล้พื้นผิวลาดเอียงเพื่อรับประกันความหนาผนังในแนวตั้ง (เลเยอร์ทึบบน + ล่าง)\n"
"ไม่มี: จะไม่เพิ่มไส้ในแบบทึบในส่วนใดเลย ข้อควรระวัง: ใช้ตัวเลือกนี้อย่างระมัดระวังหากโมเดลมีพื้นผิวลาดเอียง\n"
"เฉพาะจุดวิกฤต: หลีกเลี่ยงการเพิ่มไส้ในแบบทึบสำหรับผนัง\n"
"ปานกลาง: เพิ่มไส้ในแบบทึบเฉพาะพื้นผิวที่ลาดเอียงมาก\n"
@@ -14655,8 +15961,9 @@ msgstr "เกลียวแปดเหลี่ยม"
msgid "Top surface density"
msgstr "ความหนาแน่นผิวด้านบน"
+# AI Translated
msgid "Density of top surface layer. A value of 100% creates a fully solid, smooth top layer. Reducing this value results in a textured top surface, according to the chosen top surface pattern. A value of 0% will result in only the walls on the top layer being created. Intended for aesthetic or functional purposes, not to fix issues such as over-extrusion."
-msgstr "ความหนาแน่นของชั้นผิวด้านบน ค่า 100% จะสร้างชั้นบนสุดที่เรียบและแข็งเต็มที่ การลดค่านี้ส่งผลให้พื้นผิวด้านบนมีพื้นผิวตามรูปแบบพื้นผิวด้านบนที่เลือก ค่า 0% จะส่งผลให้มีการสร้างเฉพาะผนังชั้นบนสุดเท่านั้น มีวัตถุประสงค์เพื่อความสวยงามหรือการใช้งาน ไม่ใช่เพื่อแก้ไขปัญหา เช่น การอัดขึ้นรูปมากเกินไป"
+msgstr "ความหนาแน่นของเลเยอร์ผิวด้านบน ค่า 100% จะสร้างเลเยอร์บนสุดที่เรียบและแข็งเต็มที่ การลดค่านี้ส่งผลให้พื้นผิวด้านบนมีพื้นผิวตามรูปแบบพื้นผิวด้านบนที่เลือก ค่า 0% จะส่งผลให้มีการสร้างเฉพาะผนังเลเยอร์บนสุดเท่านั้น มีวัตถุประสงค์เพื่อความสวยงามหรือการใช้งาน ไม่ใช่เพื่อแก้ไขปัญหา เช่น การอัดขึ้นรูปมากเกินไป"
# AI Translated
msgid "Top surface expansion"
@@ -14721,11 +16028,12 @@ msgstr "รูปแบบเส้นของไส้ในพื้นผิ
msgid "Bottom surface density"
msgstr "ความหนาแน่นผิวด้านล่าง"
+# AI Translated
msgid ""
"Density of the bottom surface layer. Intended for aesthetic or functional purposes, not to fix issues such as over-extrusion.\n"
"WARNING: Lowering this value may negatively affect bed adhesion."
msgstr ""
-"ความหนาแน่นของชั้นผิวด้านล่าง มีวัตถุประสงค์เพื่อความสวยงามหรือการใช้งาน ไม่ใช่เพื่อแก้ไขปัญหา เช่น การอัดขึ้นรูปมากเกินไป\n"
+"ความหนาแน่นของเลเยอร์ผิวด้านล่าง มีวัตถุประสงค์เพื่อความสวยงามหรือการใช้งาน ไม่ใช่เพื่อแก้ไขปัญหา เช่น การอัดขึ้นรูปมากเกินไป\n"
"คำเตือน: การลดค่านี้อาจส่งผลเสียต่อการยึดเกาะของฐานพิมพ์"
# AI Translated
@@ -14771,8 +16079,9 @@ msgstr "ความเร็วของผนังด้านนอกซึ
msgid "Small perimeters"
msgstr "เส้นรอบวงเล็ก"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "การตั้งค่าแยกนี้จะส่งผลต่อความเร็วของเส้นรอบวงที่มีรัศมี <= small_perimeter_threshold (โดยปกติคือรู) หากแสดงเป็นเปอร์เซ็นต์ (เช่น 80%) ระบบจะคำนวณตามการตั้งค่าความเร็วผนังด้านนอกด้านบน ตั้งค่าเป็นศูนย์สำหรับรถยนต์"
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "การตั้งค่าแยกนี้จะส่งผลต่อความเร็วของเส้นรอบวงที่มีรัศมี <= small_perimeter_threshold (โดยปกติคือรู) หากแสดงเป็นเปอร์เซ็นต์ (เช่น 80%) ระบบจะคำนวณตามการตั้งค่าความเร็วผนังด้านนอกข้างต้น"
msgid "Small perimeters threshold"
msgstr "เกณฑ์ขอบเขตขนาดเล็ก"
@@ -14785,8 +16094,8 @@ msgid "Small support perimeters"
msgstr "เส้นรอบรูปส่วนรองรับขนาดเล็ก"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "เช่นเดียวกับ \"Small perimeters\" แต่สำหรับส่วนรองรับ การตั้งค่าแยกนี้จะส่งผลต่อความเร็วของส่วนรองรับสำหรับพื้นที่ <= `small_support_perimeter_threshold` หากแสดงเป็นเปอร์เซ็นต์ (เช่น 80%) จะคำนวณจากการตั้งค่าความเร็วส่วนรองรับหรืออินเทอร์เฟซส่วนรองรับด้านบน ตั้งเป็นศูนย์เพื่อใช้อัตโนมัติ"
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "เช่นเดียวกับ \"เส้นรอบวงเล็ก\" แต่สำหรับส่วนรองรับ การตั้งค่าแยกนี้จะส่งผลต่อความเร็วของส่วนรองรับสำหรับพื้นที่ <= `small_support_perimeter_threshold` หากแสดงเป็นเปอร์เซ็นต์ (เช่น 80%) จะคำนวณจากการตั้งค่าความเร็วส่วนรองรับหรือผิวสัมผัสส่วนรองรับข้างต้น"
# AI Translated
msgid "Small support perimeters threshold"
@@ -14799,22 +16108,23 @@ msgstr "ตั้งค่าเกณฑ์สำหรับความยา
msgid "Walls printing order"
msgstr "สั่งพิมพ์ผนัง"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
"ลำดับการพิมพ์ของผนังภายใน (ด้านใน) และภายนอก (ด้านนอก)\n"
"\n"
-"ใช้ด้านใน/ด้านนอกเพื่อให้ได้ระยะยื่นที่ดีที่สุด เนื่องจากผนังที่ยื่นออกมาสามารถยึดติดกับปริมณฑลใกล้เคียงขณะพิมพ์ได้ อย่างไรก็ตาม ตัวเลือกนี้ส่งผลให้คุณภาพพื้นผิวลดลงเล็กน้อย เนื่องจากเส้นรอบวงภายนอกเสียรูปเนื่องจากการถูกแบนไปยังเส้นรอบวงภายใน\n"
+"ใช้ ภายใน/ภายนอก เพื่อให้ได้ส่วนยื่นที่ดีที่สุด เนื่องจากผนังที่ยื่นออกมาสามารถยึดติดกับเส้นรอบวงที่อยู่ติดกันขณะพิมพ์ได้ อย่างไรก็ตาม ตัวเลือกนี้ทำให้คุณภาพพื้นผิวลดลงเล็กน้อย เนื่องจากเส้นรอบวงภายนอกเสียรูปจากการถูกกดทับเข้ากับเส้นรอบวงภายใน\n"
"\n"
-"ใช้ด้านใน/ด้านนอก/ด้านในเพื่อให้ได้พื้นผิวภายนอกที่ดีที่สุดและความแม่นยำของขนาด เนื่องจากผนังภายนอกถูกพิมพ์โดยไม่ถูกรบกวนจากขอบเขตภายใน อย่างไรก็ตาม ประสิทธิภาพส่วนยื่นจะลดลงเนื่องจากไม่มีขอบเขตภายในให้พิมพ์ติดกับผนังภายนอก ตัวเลือกนี้ต้องใช้ผนังอย่างน้อย 3 แผ่นจึงจะมีประสิทธิภาพ เนื่องจากจะพิมพ์ผนังภายในจากปริมณฑลที่ 3 เป็นต้นไป จากนั้นจึงพิมพ์ปริมณฑลภายนอก และสุดท้ายคือปริมณฑลภายในแรก แนะนำให้ใช้ตัวเลือกนี้กับตัวเลือกด้านนอก/ด้านในในกรณีส่วนใหญ่\n"
+"ใช้ ภายใน/ภายนอก/ภายใน เพื่อให้ได้พื้นผิวภายนอกที่ดีที่สุดและความแม่นยำของขนาด เนื่องจากผนังภายนอกถูกพิมพ์โดยไม่ถูกรบกวนจากเส้นรอบวงภายใน อย่างไรก็ตาม ประสิทธิภาพของส่วนยื่นจะลดลงเนื่องจากไม่มีเส้นรอบวงภายในให้พิมพ์ผนังภายนอกยึดติด ตัวเลือกนี้ต้องใช้ผนังอย่างน้อย 3 รอบจึงจะได้ผล เนื่องจากจะพิมพ์ผนังภายในตั้งแต่เส้นรอบวงที่ 3 เป็นต้นไปก่อน จากนั้นจึงพิมพ์เส้นรอบวงภายนอก และสุดท้ายคือเส้นรอบวงภายในเส้นแรก ในกรณีส่วนใหญ่แนะนำให้ใช้ตัวเลือกนี้แทน ด้านนอก/ด้านใน\n"
"\n"
-"ใช้ด้านนอก/ด้านในเพื่อคุณภาพผนังภายนอกที่เหมือนกันและประโยชน์ด้านความแม่นยำของมิติของตัวเลือกด้านใน/ด้านนอก/ด้านใน อย่างไรก็ตาม รอยตะเข็บ Z จะดูสม่ำเสมอน้อยลงเนื่องจากการอัดขึ้นรูปชั้นใหม่ครั้งแรกเริ่มต้นบนพื้นผิวที่มองเห็นได้"
+"ใช้ ด้านนอก/ด้านใน เพื่อให้ได้คุณภาพผนังภายนอกและความแม่นยำของขนาดเท่ากับ ภายใน/ภายนอก/ภายใน อย่างไรก็ตาม รอยตะเข็บ Z จะดูสม่ำเสมอน้อยลง เนื่องจากการอัดขึ้นรูปครั้งแรกของเลเยอร์ใหม่เริ่มต้นบนพื้นผิวที่มองเห็นได้"
msgid "Inner/Outer"
msgstr "ภายใน/ภายนอก"
@@ -14840,6 +16150,7 @@ msgstr ""
msgid "Wall loop direction"
msgstr "ทิศทางของวงผนัง"
+# AI Translated
msgid ""
"The direction which the contour wall loops are extruded when looking down from the top.\n"
"Holes are printed in the opposite direction to the contour to maintain alignment with layers whose contour polygons are incomplete and change direction, also partially forming the contour of a hole.\n"
@@ -14847,7 +16158,7 @@ msgid ""
"This option will be disabled if spiral vase mode is enabled."
msgstr ""
"ทิศทางที่ลูปผนังรูปร่างถูกอัดออกมาเมื่อมองลงมาจากด้านบน\n"
-"รูจะถูกพิมพ์ในทิศทางตรงกันข้ามกับเส้นขอบเพื่อรักษาแนวเดียวกับชั้นที่มีรูปหลายเหลี่ยมเส้นขอบไม่สมบูรณ์และเปลี่ยนทิศทาง รวมถึงสร้างรูปร่างของรูบางส่วนด้วย\n"
+"รูจะถูกพิมพ์ในทิศทางตรงกันข้ามกับเส้นขอบเพื่อรักษาแนวเดียวกับเลเยอร์ที่มีรูปหลายเหลี่ยมเส้นขอบไม่สมบูรณ์และเปลี่ยนทิศทาง รวมถึงสร้างรูปร่างของรูบางส่วนด้วย\n"
"\n"
"ตัวเลือกนี้จะถูกปิดใช้งานหากเปิดใช้งานโหมดแจกันเกลียว"
@@ -14889,14 +16200,16 @@ msgstr "ความสูงของปลายหัวฉีด"
msgid "Bed mesh min"
msgstr "ตาข่ายฐานพิมพ์ขั้นต่ำ"
+# AI Translated
msgid "This option sets the min point for the allowed bed mesh area. Due to the probe's XY offset, most printers are unable to probe the entire bed. To ensure the probe point does not go outside the bed area, the minimum and maximum points of the bed mesh should be set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not exceed these min/max points. This information can usually be obtained from your printer manufacturer. The default setting is (-99999, -99999), which means there are no limits, thus allowing probing across the entire bed."
-msgstr "ตัวเลือกนี้จะตั้งค่าจุดต่ำสุดสำหรับพื้นที่ตาข่ายเบดที่อนุญาต เนื่องจากออฟเซ็ต XY ของโพรบ เครื่องพิมพ์ส่วนใหญ่จึงไม่สามารถตรวจสอบทั้งเบดได้ เพื่อให้แน่ใจว่าจุดโพรบไม่ออกไปนอกบริเวณฐานพิมพ์ ควรตั้งค่าจุดต่ำสุดและสูงสุดของตาข่ายเบดอย่างเหมาะสม OrcaSlicer ช่วยให้มั่นใจได้ว่าค่าของ adaptive_bed_mesh_min/adaptive_bed_mesh_max จะต้องไม่เกินจุดต่ำสุด/สูงสุดเหล่านี้ โดยปกติข้อมูลนี้สามารถรับได้จากผู้ผลิตเครื่องพิมพ์ของคุณ การตั้งค่าเริ่มต้นคือ (-99999, -99999) ซึ่งหมายความว่าไม่มีขีดจำกัด จึงสามารถตรวจวัดทั่วทั้งฐานพิมพ์ได้"
+msgstr "ตัวเลือกนี้จะตั้งค่าจุดต่ำสุดสำหรับพื้นที่ตาข่ายฐานพิมพ์ที่อนุญาต เนื่องจากออฟเซ็ต XY ของโพรบ เครื่องพิมพ์ส่วนใหญ่จึงไม่สามารถตรวจสอบทั้งฐานพิมพ์ได้ เพื่อให้แน่ใจว่าจุดโพรบไม่ออกไปนอกบริเวณฐานพิมพ์ ควรตั้งค่าจุดต่ำสุดและสูงสุดของตาข่ายฐานพิมพ์อย่างเหมาะสม OrcaSlicer ช่วยให้มั่นใจได้ว่าค่าของ adaptive_bed_mesh_min/adaptive_bed_mesh_max จะต้องไม่เกินจุดต่ำสุด/สูงสุดเหล่านี้ โดยปกติข้อมูลนี้สามารถรับได้จากผู้ผลิตเครื่องพิมพ์ของคุณ การตั้งค่าเริ่มต้นคือ (-99999, -99999) ซึ่งหมายความว่าไม่มีขีดจำกัด จึงสามารถตรวจวัดทั่วทั้งฐานพิมพ์ได้"
msgid "Bed mesh max"
msgstr "ตาข่ายฐานพิมพ์สูงสุด"
+# AI Translated
msgid "This option sets the max point for the allowed bed mesh area. Due to the probe's XY offset, most printers are unable to probe the entire bed. To ensure the probe point does not go outside the bed area, the minimum and maximum points of the bed mesh should be set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not exceed these min/max points. This information can usually be obtained from your printer manufacturer. The default setting is (99999, 99999), which means there are no limits, thus allowing probing across the entire bed."
-msgstr "ตัวเลือกนี้จะตั้งค่าจุดสูงสุดสำหรับพื้นที่ตาข่ายฐานพิมพ์ที่อนุญาต เนื่องจากออฟเซ็ต XY ของโพรบ เครื่องพิมพ์ส่วนใหญ่จึงไม่สามารถตรวจสอบทั้งเบดได้ เพื่อให้แน่ใจว่าจุดโพรบไม่ออกไปนอกบริเวณฐานพิมพ์ ควรตั้งค่าจุดต่ำสุดและสูงสุดของตาข่ายเบดอย่างเหมาะสม OrcaSlicer ช่วยให้มั่นใจได้ว่าค่าของ adaptive_bed_mesh_min/adaptive_bed_mesh_max จะต้องไม่เกินจุดต่ำสุด/สูงสุดเหล่านี้ โดยปกติข้อมูลนี้สามารถรับได้จากผู้ผลิตเครื่องพิมพ์ของคุณ การตั้งค่าเริ่มต้นคือ (99999, 99999) ซึ่งหมายความว่าไม่มีขีดจำกัด จึงสามารถตรวจวัดทั่วทั้งฐานพิมพ์ได้"
+msgstr "ตัวเลือกนี้จะตั้งค่าจุดสูงสุดสำหรับพื้นที่ตาข่ายฐานพิมพ์ที่อนุญาต เนื่องจากออฟเซ็ต XY ของโพรบ เครื่องพิมพ์ส่วนใหญ่จึงไม่สามารถตรวจสอบทั้งฐานพิมพ์ได้ เพื่อให้แน่ใจว่าจุดโพรบไม่ออกไปนอกบริเวณฐานพิมพ์ ควรตั้งค่าจุดต่ำสุดและสูงสุดของตาข่ายฐานพิมพ์อย่างเหมาะสม OrcaSlicer ช่วยให้มั่นใจได้ว่าค่าของ adaptive_bed_mesh_min/adaptive_bed_mesh_max จะต้องไม่เกินจุดต่ำสุด/สูงสุดเหล่านี้ โดยปกติข้อมูลนี้สามารถรับได้จากผู้ผลิตเครื่องพิมพ์ของคุณ การตั้งค่าเริ่มต้นคือ (99999, 99999) ซึ่งหมายความว่าไม่มีขีดจำกัด จึงสามารถตรวจวัดทั่วทั้งฐานพิมพ์ได้"
msgid "Probe point distance"
msgstr "ระยะทางจุดโพรบ"
@@ -14907,8 +16220,9 @@ msgstr "ตัวเลือกนี้จะตั้งค่าระยะ
msgid "Mesh margin"
msgstr "ขอบตาข่าย"
+# AI Translated
msgid "This option determines the additional distance by which the adaptive bed mesh area should be expanded in the XY directions."
-msgstr "ตัวเลือกนี้กำหนดระยะเพิ่มเติมที่ควรขยายพื้นที่ตาข่ายเบดแบบปรับได้ในทิศทาง XY"
+msgstr "ตัวเลือกนี้กำหนดระยะเพิ่มเติมที่ควรขยายพื้นที่ตาข่ายฐานพิมพ์ปรับได้ในทิศทาง XY"
msgid "Grab length"
msgstr "ความยาวคว้า"
@@ -14925,6 +16239,7 @@ msgstr "การชดเชยชุดดันเส้น"
msgid "The material may have volumetric change after switching between molten and crystalline states. This setting changes all extrusion flow of this filament in G-code proportionally. The recommended value range is between 0.95 and 1.05. You may be able to tune this value to get a nice flat surface if there is slight overflow or underflow."
msgstr "วัสดุอาจมีการเปลี่ยนแปลงเชิงปริมาตรหลังจากสลับระหว่างสถานะหลอมเหลวและสถานะผลึก การตั้งค่านี้จะเปลี่ยนการไหลอัดรีดทั้งหมดของเส้นพลาสติกนี้ใน G-code ตามสัดส่วน ช่วงค่าที่แนะนำคือระหว่าง 0.95 ถึง 1.05 คุณอาจสามารถปรับค่านี้เพื่อให้ได้พื้นผิวที่เรียบสวยงามได้หากมีน้ำล้นหรืออันเดอร์โฟลว์เล็กน้อย"
+# AI Translated
msgid ""
"The material may have volumetric change after switching between molten and crystalline states. This setting changes all extrusion flow of this filament in G-code proportionally. The recommended value range is between 0.95 and 1.05. You may be able to tune this value to get a nice flat surface if there is slight overflow or underflow.\n"
"\n"
@@ -14932,7 +16247,7 @@ msgid ""
msgstr ""
"วัสดุอาจมีการเปลี่ยนแปลงเชิงปริมาตรหลังจากสลับระหว่างสถานะหลอมเหลวและสถานะผลึก การตั้งค่านี้จะเปลี่ยนการไหลอัดรีดทั้งหมดของเส้นพลาสติกนี้ใน G-code ตามสัดส่วน ช่วงค่าที่แนะนำคือระหว่าง 0.95 ถึง 1.05 คุณอาจสามารถปรับค่านี้เพื่อให้ได้พื้นผิวที่เรียบสวยงามได้หากมีน้ำล้นหรืออันเดอร์โฟลว์เล็กน้อย\n"
"\n"
-"อัตราการไหลของวัตถุขั้นสุดท้ายคือค่านี้คูณด้วยอัตราการไหลของเส้นพลาสติก"
+"อัตราส่วนการไหลของวัตถุขั้นสุดท้ายคือค่านี้คูณด้วยอัตราส่วนการไหลของเส้นพลาสติก"
msgid "Enable pressure advance"
msgstr "เปิดใช้ Pressure Advance"
@@ -15134,8 +16449,9 @@ msgstr "เวลาที่ใช้ในการเปลี่ยนเค
msgid "Bed temperature type"
msgstr "ประเภทอุณหภูมิฐานพิมพ์"
+# AI Translated
msgid "This option determines how the bed temperature is set during slicing: based on the temperature of the first filament or the highest temperature of the printed filaments."
-msgstr "ตัวเลือกนี้จะกำหนดวิธีการตั้งค่าอุณหภูมิฐานในระหว่างการสไลซ์: ขึ้นอยู่กับอุณหภูมิของเส้นพลาสติกเส้นแรกหรืออุณหภูมิสูงสุดของเส้นพลาสติกที่พิมพ์"
+msgstr "ตัวเลือกนี้จะกำหนดวิธีการตั้งค่าอุณหภูมิฐานพิมพ์ในระหว่างการสไลซ์: ขึ้นอยู่กับอุณหภูมิของเส้นพลาสติกเส้นแรกหรืออุณหภูมิสูงสุดของเส้นพลาสติกที่พิมพ์"
msgid "By First filament"
msgstr "โดย เฟิร์ส ฟิลาเมนท์"
@@ -15165,12 +16481,13 @@ msgstr ""
msgid "Adaptive volumetric speed"
msgstr "ความเร็วตามปริมาตรแบบปรับได้"
+# AI Translated
msgid ""
"When enabled, the extrusion flow is limited by the smaller of the fitted value (calculated from line width and layer height) and the user-defined maximum flow. When disabled, only the user-defined maximum flow is applied.\n"
"\n"
"Note: Experimental and incomplete feature imported from BBS. Functional for some profiles that already have the variable saved."
msgstr ""
-"เมื่อเปิดใช้งาน การไหลของการอัดขึ้นรูปจะถูกจำกัดด้วยค่าที่น้อยกว่าของค่าที่ติดตั้ง (คำนวณจากความกว้างของเส้นและความสูงของชั้น) และการไหลสูงสุดที่ผู้ใช้กำหนด เมื่อปิดใช้งาน จะมีการใช้เฉพาะโฟลว์สูงสุดที่ผู้ใช้กำหนดเท่านั้น\n"
+"เมื่อเปิดใช้งาน การไหลของการอัดขึ้นรูปจะถูกจำกัดด้วยค่าที่น้อยกว่าของค่าที่ติดตั้ง (คำนวณจากความกว้างของเส้นและความสูงเลเยอร์) และการไหลสูงสุดที่ผู้ใช้กำหนด เมื่อปิดใช้งาน จะมีการใช้เฉพาะโฟลว์สูงสุดที่ผู้ใช้กำหนดเท่านั้น\n"
"\n"
"หมายเหตุ: คุณลักษณะทดลองและไม่สมบูรณ์นำเข้าจาก BBS ใช้งานได้กับบางโปรไฟล์ที่ได้บันทึกตัวแปรไว้แล้ว"
@@ -15267,23 +16584,28 @@ msgstr "Wipe Tower คูลลิ่ง"
msgid "Temperature drop before entering filament tower"
msgstr "อุณหภูมิลดลงก่อนเข้าหอใย"
+# AI Translated
msgid "Interface layer pre-extrusion distance"
-msgstr "ระยะการอัดรีดชั้นอินเตอร์เฟซ"
+msgstr "ระยะการอัดรีดเลเยอร์อินเทอร์เฟซ"
+# AI Translated
msgid "Pre-extrusion distance for prime tower interface layer (where different materials meet)."
-msgstr "ระยะก่อนการอัดขึ้นรูปสำหรับชั้นอินเทอร์เฟซของ Prime Tower (ที่วัสดุที่แตกต่างกันมาบรรจบกัน)"
+msgstr "ระยะก่อนการอัดขึ้นรูปสำหรับเลเยอร์อินเทอร์เฟซของ Prime Tower (ที่วัสดุที่แตกต่างกันมาบรรจบกัน)"
+# AI Translated
msgid "Interface layer pre-extrusion length"
-msgstr "ความยาวชั้นอินเตอร์เฟซก่อนการอัดขึ้นรูป"
+msgstr "ความยาวเลเยอร์อินเทอร์เฟซก่อนการอัดขึ้นรูป"
+# AI Translated
msgid "Pre-extrusion length for prime tower interface layer (where different materials meet)."
-msgstr "ความยาวก่อนการอัดขึ้นรูปสำหรับชั้นอินเทอร์เฟซของ Prime Tower (ที่วัสดุที่แตกต่างกันมาบรรจบกัน)"
+msgstr "ความยาวก่อนการอัดขึ้นรูปสำหรับเลเยอร์อินเทอร์เฟซของ Prime Tower (ที่วัสดุที่แตกต่างกันมาบรรจบกัน)"
msgid "Tower ironing area"
msgstr "พื้นที่รีดผิวแบบทาวเวอร์"
+# AI Translated
msgid "Ironing area for prime tower interface layer (where different materials meet)."
-msgstr "พื้นที่รีดผิวสำหรับชั้นอินเทอร์เฟซของ Prime Tower (บริเวณที่วัสดุต่างกันมาบรรจบกัน)"
+msgstr "พื้นที่รีดผิวสำหรับเลเยอร์อินเทอร์เฟซของ Prime Tower (บริเวณที่วัสดุต่างกันมาบรรจบกัน)"
msgid "mm²"
msgstr "มม.²"
@@ -15291,14 +16613,16 @@ msgstr "มม.²"
msgid "Interface layer purge length"
msgstr "ความยาวการล้างเลเยอร์อินเทอร์เฟซ"
+# AI Translated
msgid "Purge length for prime tower interface layer (where different materials meet)."
-msgstr "ความยาวในการไล่ล้างสำหรับชั้นอินเทอร์เฟซของ Prime Tower (เมื่อวัสดุต่างกันมาบรรจบกัน)"
+msgstr "ความยาวในการไล่ล้างสำหรับเลเยอร์อินเทอร์เฟซของ Prime Tower (เมื่อวัสดุต่างกันมาบรรจบกัน)"
msgid "Interface layer print temperature"
msgstr "อุณหภูมิการพิมพ์เลเยอร์อินเทอร์เฟซ"
+# AI Translated
msgid "Print temperature for prime tower interface layer (where different materials meet). If set to -1, use max recommended nozzle temperature."
-msgstr "อุณหภูมิการพิมพ์สำหรับชั้นอินเทอร์เฟซของ Prime Tower (เมื่อวัสดุต่างกันมาบรรจบกัน) หากตั้งค่าเป็น -1 ให้ใช้อุณหภูมิหัวฉีดสูงสุดที่แนะนำ"
+msgstr "อุณหภูมิการพิมพ์สำหรับเลเยอร์อินเทอร์เฟซของ Prime Tower (เมื่อวัสดุต่างกันมาบรรจบกัน) หากตั้งค่าเป็น -1 ให้ใช้อุณหภูมิหัวฉีดสูงสุดที่แนะนำ"
msgid "Speed of the last cooling move"
msgstr "ความเร็วของการทำความเย็นครั้งล่าสุด"
@@ -15445,9 +16769,6 @@ msgstr "ราคาเส้นพลาสติก. สำหรับสถ
msgid "money/kg"
msgstr "เงิน/กก."
-msgid "Vendor"
-msgstr "ผู้ขาย"
-
msgid "Vendor of filament. For show only."
msgstr "ผู้จำหน่ายเส้นพลาสติก. สำหรับการแสดงเท่านั้น"
@@ -15509,11 +16830,13 @@ msgstr ""
"จัดทิศทางไส้ใน สะพาน รีดผิว และพื้นผิวด้านบน/ด้านล่างให้เป็นไปตามการวางแนวของโมเดลบนฐานพิมพ์\n"
"เมื่อเปิดใช้งาน ทิศทางเหล่านี้จะหมุนไปพร้อมกับโมเดล เพื่อให้ฟีเจอร์ที่พิมพ์คงการวางแนวที่ตั้งใจไว้เทียบกับชิ้นงาน รักษาความแข็งแรงและลักษณะพื้นผิวที่เหมาะสมที่สุดไม่ว่าจะวางโมเดลอย่างไร"
+# AI Translated
msgid "Insert solid layers"
-msgstr "แทรกชั้นทึบ"
+msgstr "แทรกเลเยอร์ทึบ"
+# AI Translated
msgid "Insert solid infill at specific layers. Use N to insert every Nth layer, N#K to insert K consecutive solid layers every N layers (K is optional, e.g. '5#' equals '5#1'), or a comma-separated list (e.g. 1,7,9) to insert at explicit layers. Layers are 1-based."
-msgstr "แทรก ไส้ใน แบบทึบที่ชั้นเฉพาะ ใช้ N เพื่อแทรกทุกเลเยอร์ N, N#K เพื่อแทรก K เลเยอร์ทึบต่อเนื่องกันทุกๆ เลเยอร์ N (K เป็นทางเลือก เช่น '5#' เท่ากับ '5#1') หรือรายการที่คั่นด้วยเครื่องหมายจุลภาค (เช่น 1,7,9) เพื่อแทรกในเลเยอร์ที่ชัดเจน เลเยอร์เป็นแบบ 1"
+msgstr "แทรก ไส้ใน แบบทึบที่เลเยอร์เฉพาะ ใช้ N เพื่อแทรกทุกเลเยอร์ N, N#K เพื่อแทรก K เลเยอร์ทึบต่อเนื่องกันทุกๆ เลเยอร์ N (K เป็นทางเลือก เช่น '5#' เท่ากับ '5#1') หรือรายการที่คั่นด้วยเครื่องหมายจุลภาค (เช่น 1,7,9) เพื่อแทรกในเลเยอร์ที่ชัดเจน เลเยอร์เป็นแบบ 1"
msgid "Fill Multiline"
msgstr "ไส้ในหลายบรรทัด"
@@ -15521,6 +16844,94 @@ msgstr "ไส้ในหลายบรรทัด"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "การใช้หลายบรรทัดสำหรับรูปแบบ ไส้ใน หากรองรับโดยรูปแบบ ไส้ใน"
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "ความหนาแน่นแบบปรับได้ (ทดลอง)"
+
+# AI Translated
+# Needs human review: 'shells' here are nested density zones of the infill, neither the slicer Shell (ผนัง) nor the Design Shell; rendered เปลือก, matching the Stepped shells option label. 'plates' means plate-shaped parts, not the build plate.
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"ไล่ระดับไส้ในแบบไจรอยด์และ TPMS ภายในวัตถุ: เซลล์จะขยายใหญ่ขึ้นจากผิวของวัตถุเข้าหาจุดศูนย์กลาง ใช้ความหนาแน่นไส้ในแบบโปร่งที่ผิว และใช้ความหนาแน่นภายในที่จุดศูนย์กลาง\n"
+"บิดตามระยะ, ผสมแบบนุ่มนวล และ เปลือกแบบขั้นบันได จะอิงตามระยะห่างถึงพื้นผิวที่ใกล้ที่สุด รวมถึงด้านบนและด้านล่าง โดยใช้ความหนาแน่นภายในที่จุดที่ไกลจากพื้นผิวที่สุด:\n"
+" - บิดตามระยะ: รูปแบบต่อเนื่องเพียงรูปแบบเดียว ซึ่งถูกยืดและเฉือนในบริเวณที่ระยะเปลี่ยนแปลงต่างกันในแต่ละทิศทาง เช่น ในชิ้นงานแบบแผ่นและชิ้นส่วนที่ยาว\n"
+" - ผสมแบบนุ่มนวล: รูปแบบของความหนาแน่นที่อยู่ติดกันผสมเข้าหากัน โดยมีวงเล็กๆ ตรงจุดที่มาบรรจบกัน\n"
+" - เปลือกแบบขั้นบันได: เปลือกของรูปแบบปกติที่ความหนาแน่นต่างกันประมาณ 1.5 เท่า โดยเส้นจะเชื่อมกันตามแนวขอบเปลือก\n"
+" - กลีบ: อิงตามรูปทรง 3 มิติของวัตถุ รวมถึงด้านบนและด้านล่าง ทุกกลีบ ซึ่งคือส่วนที่ต่อกับส่วนที่เหลือด้วยคอที่แคบกว่า จะถูกไล่ระดับเข้าหาจุดศูนย์กลางของตัวเอง\n"
+" - ตั้งฉาก Z, Y หรือ X: อิงตามหน้าตัดของวัตถุที่ตั้งฉากกับแกนนั้น ดังนั้นความหนาแน่นจะไม่เปลี่ยนแปลงตามแกนนั้น"
+
+# AI Translated
+msgid "Distance warp"
+msgstr "บิดตามระยะ"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "ผสมแบบนุ่มนวล"
+
+# AI Translated
+# Needs human review: Adaptive density option: 'shells' are nested infill density zones, not the slicer Shell (ผนัง, walls plus top/bottom); check เปลือก reads right in the dropdown.
+msgid "Stepped shells"
+msgstr "เปลือกแบบขั้นบันได"
+
+# AI Translated
+msgid "Lobes"
+msgstr "กลีบ"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "ตั้งฉาก Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "ตั้งฉาก Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "ตั้งฉาก X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "ความหนาแน่นภายใน"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "ความหนาแน่นของไส้ในแบบปรับได้ที่จุดศูนย์กลางของวัตถุ"
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "การไล่ระดับแบบปรับได้"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"ลักษณะการเปลี่ยนแปลงความหนาแน่นจากผิวไปยังจุดศูนย์กลางของวัตถุ\n"
+"เชิงเส้น: ความหนาแน่นเปลี่ยนแปลงในอัตราคงที่\n"
+"กำลังสอง: ความหนาแน่นจะคงใกล้เคียงกับความหนาแน่นไส้ในแบบโปร่งบริเวณใกล้ผิว และเปลี่ยนเร็วขึ้นเมื่อเข้าใกล้จุดศูนย์กลาง\n"
+"เอกซ์โพเนนเชียล: ความหนาแน่นเปลี่ยนแปลงอย่างรวดเร็วใต้ผิวเล็กน้อย และค่อยๆ คงที่เมื่อเข้าใกล้จุดศูนย์กลาง"
+
+# AI Translated
+msgid "Linear"
+msgstr "เชิงเส้น"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "กำลังสอง"
+
+# AI Translated
+msgid "Exponential"
+msgstr "เอกซ์โพเนนเชียล"
+
msgid "Z-buckling bias optimization (experimental)"
msgstr "การปรับชดเชยการโก่งตัวตามแกน Z ให้เหมาะสม (ทดลอง)"
@@ -15614,8 +17025,9 @@ msgstr "ความเร่งของไส้ในแบบโปร่ง
msgid "Acceleration of internal solid infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration."
msgstr "ความเร่งของไส้ในของแข็งภายใน หากค่าแสดงเป็นเปอร์เซ็นต์ (เช่น 100%) ค่านั้นจะถูกคำนวณตามความเร่งเริ่มต้น"
+# AI Translated
msgid "This is the printing acceleration for the first layer. Using limited acceleration can improve build plate adhesion."
-msgstr "ความเร่งของชั้นแรก การใช้ค่าที่ต่ำกว่าสามารถปรับปรุงการยึดเกาะของเพลตได้"
+msgstr "ความเร่งของเลเยอร์แรก การใช้ค่าที่ต่ำกว่าสามารถปรับปรุงการยึดเกาะของฐานพิมพ์ได้"
msgid "Enable accel_to_decel"
msgstr "เปิดใช้งาน accel_to_decel"
@@ -15648,63 +17060,79 @@ msgstr "กระตุกสำหรับพื้นผิวด้านบ
msgid "Jerk for infill."
msgstr "กระตุกเพื่อไส้ใน"
+# AI Translated
msgid "Jerk for the first layer."
-msgstr "กระตุกสำหรับชั้นแรก"
+msgstr "กระตุกสำหรับเลเยอร์แรก"
+# AI Translated
msgid "Jerk for travel."
-msgstr "กระตุกสำหรับการเดินทาง"
+msgstr "กระตุกสำหรับการเดินหัวเปล่า"
+# AI Translated
msgid ""
"Travel jerk of first layer.\n"
"The percentage value is relative to Travel Jerk."
msgstr ""
-"กระตุกการเดินทางของชั้นแรก\n"
+"กระตุกการเดินหัวเปล่าของเลเยอร์แรก\n"
"ค่าเปอร์เซ็นต์สัมพันธ์กับ Travel Jerk"
+# AI Translated
msgid "Line width of the first layer. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "ความกว้างของเส้นของชั้นแรก หากแสดงเป็น % จะคำนวณตามเส้นผ่านศูนย์กลางของหัวฉีด"
+msgstr "ความกว้างของเส้นของเลเยอร์แรก หากแสดงเป็น % จะคำนวณตามเส้นผ่านศูนย์กลางของหัวฉีด"
+# AI Translated
msgid "First layer height"
-msgstr "ความสูงของชั้นแรก"
+msgstr "ความสูงเลเยอร์แรก"
+# AI Translated
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
-msgstr "ความสูงของชั้นแรก การเพิ่มความหนาของชั้นแรกสามารถช่วยให้ยึดเกาะกับฐานพิมพ์ได้ดีขึ้น"
+msgstr "ความสูงเลเยอร์แรก การเพิ่มความหนาของเลเยอร์แรกสามารถช่วยให้ยึดเกาะกับฐานพิมพ์ได้ดีขึ้น"
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "ความเร็วของชั้นแรก ยกเว้นส่วน ไส้ใน ที่เป็นของแข็ง"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "นี่คือความเร็วสำหรับผนังและขอบยึดชิ้นงานของเลเยอร์แรก"
+# AI Translated
msgid "First layer infill"
-msgstr "ไส้ในชั้นแรก"
+msgstr "ไส้ในเลเยอร์แรก"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "ความเร็วของส่วน ไส้ใน ที่เป็นของแข็งของชั้นแรก"
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "นี่คือความเร็วสำหรับเลเยอร์แรกยกเว้นผนังและขอบยึดชิ้นงาน เช่น ไส้ใน เติมช่องว่าง และส่วนรองรับ"
+# AI Translated
msgid "First layer travel speed"
-msgstr "ความเร็วในการเดินทางชั้นแรก"
+msgstr "ความเร็วในการเดินหัวเปล่าเลเยอร์แรก"
msgid "Travel speed of the first layer."
msgstr "ความเร็วเดินหัวเปล่าของเลเยอร์แรก"
+# AI Translated
msgid "Number of slow layers"
-msgstr "จำนวนชั้นที่พิมพ์ช้าลง"
+msgstr "จำนวนเลเยอร์ที่พิมพ์ช้าลง"
+# AI Translated
msgid "The first few layers are printed slower than normal. The speed is gradually increased in a linear fashion over the specified number of layers."
-msgstr "สองสามชั้นแรกจะพิมพ์ช้ากว่าปกติ ความเร็วจะค่อยๆ เพิ่มขึ้นในลักษณะเชิงเส้นตามจำนวนเลเยอร์ที่ระบุ"
+msgstr "สองสามเลเยอร์แรกจะพิมพ์ช้ากว่าปกติ ความเร็วจะค่อยๆ เพิ่มขึ้นในลักษณะเชิงเส้นตามจำนวนเลเยอร์ที่ระบุ"
+# AI Translated
msgid "First layer nozzle temperature"
-msgstr "อุณหภูมิหัวฉีดชั้นแรก"
+msgstr "อุณหภูมิหัวฉีดเลเยอร์แรก"
+# AI Translated
msgid "Nozzle temperature for printing the first layer with this filament"
-msgstr "อุณหภูมิหัวฉีดสำหรับการพิมพ์ชั้นแรกเมื่อใช้ฟิลาเมนต์นี้"
+msgstr "อุณหภูมิหัวฉีดสำหรับการพิมพ์เลเยอร์แรกเมื่อใช้ฟิลาเมนต์นี้"
+# AI Translated
msgid "Full fan speed at layer"
-msgstr "ความเร็วพัดลมเต็มชั้น"
+msgstr "ความเร็วพัดลมเต็มที่เลเยอร์"
msgid "Fan speed will be ramped up linearly from zero at layer \"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower than \"close_fan_the_first_x_layers\", in which case the fan will be running at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "ความเร็วพัดลมจะเพิ่มขึ้นเชิงเส้นจากศูนย์ที่เลเยอร์ \"close_fan_the_first_x_layers\" ไปจนถึงสูงสุดที่เลเยอร์ \"full_fan_speed_layer\" \"full_fan_speed_layer\" จะถูกละเว้นหากต่ำกว่า \"close_fan_the_first_x_layers\" ซึ่งในกรณีนี้ พัดลมจะทำงานด้วยความเร็วสูงสุดที่อนุญาตที่เลเยอร์ \"close_fan_the_first_x_layers\" + 1"
+# AI Translated
msgid "layer"
-msgstr "ชั้น"
+msgstr "เลเยอร์"
# AI Translated
msgid "First layer fan speed"
@@ -15782,8 +17210,9 @@ msgstr "ความเร็วรีดผิว"
msgid "Filament-specific override for ironing speed. This allows you to customize the print speed of ironing lines for each filament type."
msgstr "การแทนที่เส้นพลาสติกเฉพาะเพื่อความเร็วในการรีดผิว ซึ่งช่วยให้คุณปรับแต่งความเร็วในการพิมพ์ของเส้นรีดผิวสำหรับเส้นพลาสติกแต่ละประเภทได้"
+# AI Translated
msgid "This setting makes the toolhead randomly jitter while printing walls so that the surface has a rough textured look. This setting controls the fuzzy position."
-msgstr "การตั้งค่านี้ทำให้หัวพิมพ์สั่นแบบสุ่มขณะพิมพ์ผนัง เพื่อให้พื้นผิวมีลักษณะหยาบ การตั้งค่านี้ควบคุมตำแหน่งของ fuzzy skin"
+msgstr "การตั้งค่านี้ทำให้หัวพิมพ์สั่นแบบสุ่มขณะพิมพ์ผนัง เพื่อให้พื้นผิวมีลักษณะหยาบ การตั้งค่านี้ควบคุมตำแหน่งของผิวฟัซซี"
msgid "Painted only"
msgstr "ทาสีเท่านั้น"
@@ -15812,15 +17241,18 @@ msgstr "ระยะจุดผิวฟัซซี"
msgid "The average distance between the random points introduced on each line segment."
msgstr "ระยะห่างเฉลี่ยระหว่างจุดสุ่มที่แนะนำในแต่ละส่วนของเส้น"
+# AI Translated
msgid "Apply fuzzy skin to first layer"
-msgstr "ใช้ Fuzzy Skin กับชั้นแรก"
+msgstr "ใช้ผิวฟัซซีกับเลเยอร์แรก"
+# AI Translated
msgid "Whether to apply fuzzy skin on the first layer."
-msgstr "กำหนดว่าจะใช้ Fuzzy Skin กับชั้นแรกหรือไม่"
+msgstr "กำหนดว่าจะใช้ผิวฟัซซีกับเลเยอร์แรกหรือไม่"
msgid "Fuzzy skin generator mode"
msgstr "โหมดสร้างผิวฟัซซี"
+# AI Translated
#, c-format, boost-format
msgid ""
"Fuzzy skin generation mode. Works only with Arachne!\n"
@@ -15835,7 +17267,7 @@ msgstr ""
"การอัดขึ้นรูป: โหมดเมื่อรูปแบบเกิดขึ้นจากปริมาณของพลาสติกที่อัดขึ้นรูป นี่เป็นอัลกอริธึมที่รวดเร็วและตรงไปตรงมา โดยไม่มีการเขย่าหัวฉีดโดยไม่จำเป็นซึ่งให้รูปแบบที่ราบรื่น แต่จะมีประโยชน์มากกว่าสำหรับการสร้างผนังที่หลวมทั่วทั้งบริเวณ\n"
"รวม: โหมดข้อต่อ [การแทนที่] + [การอัดขึ้นรูป] ลักษณะของผนังจะคล้ายกับโหมด [Displacement] แต่ไม่มีรูพรุนระหว่างเส้นรอบวง\n"
"\n"
-"ความสนใจ! โหมด [การอัดขึ้นรูป] และ [รวม] ใช้งานได้เฉพาะพารามิเตอร์ fuzzy_skin_thickness ซึ่งไม่เกินความหนาของลูปที่พิมพ์ ในขณะเดียวกัน ความกว้างของการอัดขึ้นรูปสำหรับชั้นใดชั้นหนึ่งก็ไม่ควรต่ำกว่าระดับที่กำหนดด้วย โดยปกติจะเท่ากับ 15-25%% ของความสูงของชั้น ดังนั้น ความหนาของผิวฟัซซีสูงสุดที่มีความกว้างเส้นรอบวง 0.4 มม. และความสูงของชั้น 0.2 มม. จะเป็น 0.4-(0.2*0.25)=±0.35 มม.! หากคุณป้อนพารามิเตอร์ที่สูงกว่านี้ ข้อผิดพลาด Flow::spacing() จะปรากฏขึ้น และโมเดลจะไม่ถูกแบ่งส่วน คุณสามารถเลือกหมายเลขนี้ได้จนกว่าข้อผิดพลาดนี้จะเกิดขึ้นซ้ำ"
+"ความสนใจ! โหมด [การอัดขึ้นรูป] และ [รวม] ใช้งานได้เฉพาะพารามิเตอร์ fuzzy_skin_thickness ซึ่งไม่เกินความหนาของลูปที่พิมพ์ ในขณะเดียวกัน ความกว้างของการอัดขึ้นรูปสำหรับเลเยอร์ใดเลเยอร์หนึ่งก็ไม่ควรต่ำกว่าระดับที่กำหนดด้วย โดยปกติจะเท่ากับ 15-25%% ของความสูงเลเยอร์ ดังนั้น ความหนาของผิวฟัซซีสูงสุดที่มีความกว้างเส้นรอบวง 0.4 มม. และความสูงเลเยอร์ 0.2 มม. จะเป็น 0.4-(0.2*0.25)=±0.35 มม.! หากคุณป้อนพารามิเตอร์ที่สูงกว่านี้ ข้อผิดพลาด Flow::spacing() จะปรากฏขึ้น และโมเดลจะไม่ถูกแบ่งส่วน คุณสามารถเลือกหมายเลขนี้ได้จนกว่าข้อผิดพลาดนี้จะเกิดขึ้นซ้ำ"
msgid "Displacement"
msgstr "การกระจัด"
@@ -15846,8 +17278,9 @@ msgstr "การอัดขึ้นรูป"
msgid "Combined"
msgstr "รวม"
+# AI Translated
msgid "Fuzzy skin noise type"
-msgstr "ประเภท Noise ของ Fuzzy Skin"
+msgstr "ประเภท Noise ของผิวฟัซซี"
msgid ""
"Noise type to use for fuzzy skin generation:\n"
@@ -15890,20 +17323,23 @@ msgstr "ขนาดลักษณะผิวฟัซซี"
msgid "The base size of the coherent noise features, in mm. Higher values will result in larger features."
msgstr "ขนาดฐานของคุณสมบัติเสียงที่สอดคล้องกัน หน่วยเป็น มม. ค่าที่สูงกว่าจะส่งผลให้มีคุณลักษณะที่ใหญ่ขึ้น"
+# AI Translated
msgid "Fuzzy Skin Noise Octaves"
-msgstr "จำนวน Octave ของ Noise ใน Fuzzy Skin"
+msgstr "จำนวน Octave ของ Noise ในผิวฟัซซี"
msgid "The number of octaves of coherent noise to use. Higher values increase the detail of the noise, but also increase computation time."
msgstr "จำนวนอ็อกเทฟของสัญญาณรบกวนที่สอดคล้องกันที่จะใช้ ค่าที่สูงกว่าจะเพิ่มรายละเอียดของสัญญาณรบกวน แต่ยังเพิ่มเวลาในการคำนวณด้วย"
+# AI Translated
msgid "Fuzzy skin noise persistence"
-msgstr "ค่า Persistence ของ Noise ใน Fuzzy Skin"
+msgstr "ค่า Persistence ของ Noise ในผิวฟัซซี"
msgid "The decay rate for higher octaves of the coherent noise. Lower values will result in smoother noise."
msgstr "อัตราการสลายตัวของอ็อกเทฟที่สูงขึ้นของสัญญาณรบกวนที่สอดคล้องกัน ค่าที่ต่ำกว่าจะส่งผลให้มีสัญญาณรบกวนที่นุ่มนวลขึ้น"
+# AI Translated
msgid "Number of ripples per layer"
-msgstr "จำนวนระลอกคลื่นต่อชั้น"
+msgstr "จำนวนระลอกคลื่นต่อเลเยอร์"
msgid "Controls how many full cycles of ripples will be added per layer."
msgstr "ควบคุมจำนวนระลอกคลื่นเต็มที่จะเพิ่มต่อเลเยอร์"
@@ -15911,6 +17347,7 @@ msgstr "ควบคุมจำนวนระลอกคลื่นเต็
msgid "Ripple offset"
msgstr "ระลอกชดเชย"
+# AI Translated
msgid ""
"Shifts the ripple phase forward along the print path by the specified percentage of a wavelength each layer period.\n"
"- 0% keeps every layer identical.\n"
@@ -15920,7 +17357,7 @@ msgid ""
"The shift is applied once every number of layers set by Layers between ripple offset, so layers within the same group are printed identically."
msgstr ""
"เลื่อนระยะระลอกคลื่นไปข้างหน้าตามเส้นทางการพิมพ์ตามเปอร์เซ็นต์ที่ระบุของความยาวคลื่นในแต่ละช่วงของเลเยอร์\n"
-"- 0% ทำให้ทุกชั้นเหมือนกัน\n"
+"- 0% ทำให้ทุกเลเยอร์เหมือนกัน\n"
"- 50% เลื่อนรูปแบบลงครึ่งหนึ่งของความยาวคลื่น จึงสามารถกลับเฟสได้อย่างมีประสิทธิภาพ\n"
"- 100% เลื่อนรูปแบบตามความยาวคลื่นเต็ม และกลับสู่เฟสเดิม\n"
"\n"
@@ -15943,8 +17380,9 @@ msgstr ""
msgid "Filter out tiny gaps"
msgstr "กรองช่องว่างเล็กๆ ออกไป"
+# AI Translated
msgid "Layers and Perimeters"
-msgstr "ชั้นและปริมณฑล"
+msgstr "เลเยอร์และปริมณฑล"
msgid "Don't print gap fill with a length is smaller than the threshold specified (in mm). This setting applies to top, bottom and solid infill and, if using the classic perimeter generator, to wall gap fill."
msgstr "อย่าพิมพ์การเติมช่องว่างโดยมีความยาวน้อยกว่าเกณฑ์ที่ระบุ (เป็นมม.) การตั้งค่านี้ใช้กับการเติมช่องว่างด้านบน ด้านล่าง และทึบ และหากใช้เครื่องกำเนิดเส้นรอบวงแบบคลาสสิก ก็สามารถทำการเติมช่องว่างที่ผนังได้"
@@ -15976,8 +17414,9 @@ msgstr "เพิ่มหมายเลขบรรทัด"
msgid "Enable this to add line number(Nx) at the beginning of each G-code line."
msgstr "เปิดใช้งานสิ่งนี้เพื่อเพิ่มหมายเลขบรรทัด (Nx) ที่จุดเริ่มต้นของบรรทัด G-code แต่ละบรรทัด"
+# AI Translated
msgid "Scan first layer"
-msgstr "สแกนชั้นแรก"
+msgstr "สแกนเลเยอร์แรก"
msgid "Enable this to allow the camera on the printer to check the quality of the first layer."
msgstr "เปิดใช้งานสิ่งนี้เพื่อให้กล้องบนเครื่องพิมพ์สามารถตรวจสอบคุณภาพของเลเยอร์แรกได้"
@@ -16087,13 +17526,14 @@ msgstr ""
msgid "Minimum non-zero part cooling fan speed"
msgstr "ความเร็วพัดลมระบายความร้อนชิ้นส่วนขั้นต่ำที่ไม่เป็นศูนย์"
+# AI Translated
msgid ""
"Some part-cooling fans cannot start spinning when commanded below a certain PWM duty cycle. When set above 0, any non-zero part-cooling fan command will be raised to at least this percentage so the fan reliably starts. A fan command of 0 (fan off) is always honoured exactly. This clamp is applied after every other fan calculation (first-layer ramp, layer-time interpolation, overhang/bridge/support-interface/ironing overrides), so scaling still operates within the range [this value, 100%].\n"
"If your firmware already disables the fan below a threshold (for example Klipper's [fan] off_below: 0.10 shuts the fan off whenever the commanded duty cycle is below 10%), this option and the firmware threshold should ideally be set to the same value. Matching them (e.g. off_below: 0.10 in Klipper and 10% here) guarantees the slicer never emits a non-zero value that the firmware would silently drop, and the fan never receives a value below the one you know it can actually spool at.\n"
"Set to 0 to deactivate."
msgstr ""
-"พัดลมระบายความร้อนบางส่วนไม่สามารถเริ่มหมุนได้เมื่อได้รับคำสั่งให้ต่ำกว่ารอบการทำงานของ PWM ที่กำหนด เมื่อตั้งค่าสูงกว่า 0 คำสั่งพัดลมระบายความร้อนที่ไม่เป็นศูนย์จะเพิ่มขึ้นเป็นเปอร์เซ็นต์เป็นอย่างน้อย เพื่อให้พัดลมเริ่มทำงานได้อย่างน่าเชื่อถือ คำสั่งพัดลมเป็น 0 (ปิดพัดลม) จะได้รับเกียรติเสมอ แคลมป์นี้จะถูกนำไปใช้หลังจากการคำนวณพัดลมอื่นๆ ทุกครั้ง (การลาดชั้นแรก การแก้ไขเลเยอร์ไทม์ ส่วนยื่น/บริดจ์/ส่วนรองรับ/การแทนที่การรีดผิว) ดังนั้นการปรับขนาดยังคงทำงานภายในช่วง [ค่านี้ 100%]\n"
-"หากเฟิร์มแวร์ของคุณปิดใช้งานพัดลมที่ต่ำกว่าเกณฑ์อยู่แล้ว (เช่น [พัดลม] off_below ของ Klipper: 0.10 จะปิดพัดลมเมื่อใดก็ตามที่รอบการทำงานที่ได้รับคำสั่งต่ำกว่า 10%) ตัวเลือกนี้และเกณฑ์ของเฟิร์มแวร์ควรได้รับการตั้งค่าตามอุดมคติให้เป็นค่าเดียวกัน การจับคู่พวกมัน (เช่น off_below: 0.10 ใน Klipper และ 10% ที่นี่) รับประกันว่าตัวแบ่งส่วนข้อมูลจะไม่ปล่อยค่าที่ไม่ใช่ศูนย์ซึ่งเฟิร์มแวร์จะดรอปอย่างเงียบๆ และพัดลมจะไม่ได้รับค่าที่ต่ำกว่าค่าที่คุณรู้ว่าสามารถสปูลได้จริง\n"
+"พัดลมระบายความร้อนบางส่วนไม่สามารถเริ่มหมุนได้เมื่อได้รับคำสั่งให้ต่ำกว่ารอบการทำงานของ PWM ที่กำหนด เมื่อตั้งค่าสูงกว่า 0 คำสั่งพัดลมระบายความร้อนที่ไม่เป็นศูนย์จะเพิ่มขึ้นเป็นเปอร์เซ็นต์เป็นอย่างน้อย เพื่อให้พัดลมเริ่มทำงานได้อย่างน่าเชื่อถือ คำสั่งพัดลมเป็น 0 (ปิดพัดลม) จะได้รับเกียรติเสมอ แคลมป์นี้จะถูกนำไปใช้หลังจากการคำนวณพัดลมอื่นๆ ทุกครั้ง (การลาดเลเยอร์แรก การแก้ไขเลเยอร์ไทม์ ส่วนยื่น/บริดจ์/ส่วนรองรับ/การแทนที่การรีดผิว) ดังนั้นการปรับขนาดยังคงทำงานภายในช่วง [ค่านี้ 100%]\n"
+"หากเฟิร์มแวร์ของคุณปิดใช้งานพัดลมที่ต่ำกว่าเกณฑ์อยู่แล้ว (เช่น [fan] off_below ของ Klipper: 0.10 จะปิดพัดลมเมื่อใดก็ตามที่รอบการทำงานที่ได้รับคำสั่งต่ำกว่า 10%) ตัวเลือกนี้และเกณฑ์ของเฟิร์มแวร์ควรได้รับการตั้งค่าตามอุดมคติให้เป็นค่าเดียวกัน การจับคู่พวกมัน (เช่น off_below: 0.10 ใน Klipper และ 10% ที่นี่) รับประกันว่าตัวแบ่งส่วนข้อมูลจะไม่ปล่อยค่าที่ไม่ใช่ศูนย์ซึ่งเฟิร์มแวร์จะดรอปอย่างเงียบๆ และพัดลมจะไม่ได้รับค่าที่ต่ำกว่าค่าที่คุณรู้ว่าสามารถสปูลได้จริง\n"
"ตั้งค่าเป็น 0 เพื่อปิดใช้งาน"
msgid "Time cost"
@@ -16142,6 +17582,10 @@ msgstr "ชนิด G-code"
msgid "What kind of G-code the printer is compatible with."
msgstr "เครื่องพิมพ์ G-code ชนิดใดที่เข้ากันได้กับ"
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (รุ่นเก่า)"
+
msgid "Klipper"
msgstr "คลิปเปอร์"
@@ -16186,26 +17630,30 @@ msgstr "เปิดใช้งานสิ่งนี้เพื่อรั
msgid "Infill combination"
msgstr "ไส้ในชุดค่าผสม"
+# AI Translated
msgid "Automatically combine sparse infill of several layers to print together in order to reduce time. Walls are still printed with original layer height."
-msgstr "รวมไส้ในแบบโปร่งของหลายชั้นโดยอัตโนมัติเพื่อพิมพ์เข้าด้วยกันเพื่อลดเวลา ผนังยังคงพิมพ์ด้วยความสูงชั้นเดิม"
+msgstr "รวมไส้ในแบบโปร่งของหลายเลเยอร์โดยอัตโนมัติเพื่อพิมพ์เข้าด้วยกันเพื่อลดเวลา ผนังยังคงพิมพ์ด้วยความสูงเลเยอร์เดิม"
msgid "Infill shift step"
msgstr "ขั้นตอนไส้ในกะ"
+# AI Translated
msgid "This parameter adds a slight displacement to each layer of infill to create a cross texture."
-msgstr "พารามิเตอร์นี้จะเพิ่มการกระจัดเล็กน้อยในแต่ละชั้นของ ไส้ใน เพื่อสร้างพื้นผิวแบบกากบาท"
+msgstr "พารามิเตอร์นี้จะเพิ่มการกระจัดเล็กน้อยในแต่ละเลเยอร์ของ ไส้ใน เพื่อสร้างพื้นผิวแบบกากบาท"
msgid "Sparse infill rotation template"
msgstr "เทมเพลตการหมุน ไส้ใน แบบกระจัดกระจาย"
+# AI Translated
msgid "Rotate the sparse infill direction per layer using a template of angles. Enter comma-separated degrees (e.g., '0,30,60,90'). Angles are applied in order by layer and repeat when the list ends. Advanced syntax is supported: '+5' rotates +5° every layer; '+5#5' rotates +5° every 5 layers. See the Wiki for details. When a template is set, the standard infill direction setting is ignored. Note: some infill patterns (e.g., Gyroid) control rotation themselves; use with care."
-msgstr "หมุนทิศทางไส้ในแบบโปร่งต่อเลเยอร์โดยใช้เทมเพลตมุม ป้อนองศาที่คั่นด้วยเครื่องหมายจุลภาค (เช่น '0,30,60,90') มุมจะถูกนำไปใช้ตามลำดับชั้นและทำซ้ำเมื่อรายการสิ้นสุด รองรับไวยากรณ์ขั้นสูง: '+5' หมุน +5° ทุกเลเยอร์; '+5#5' หมุน +5° ทุกๆ 5 เลเยอร์ ดูวิกิสำหรับรายละเอียด เมื่อตั้งค่าเทมเพลต การตั้งค่าทิศทางไส้ในมาตรฐานจะถูกละเว้น หมายเหตุ: รูปแบบไส้ในบางรูปแบบ (เช่น ไจรอยด์) จะควบคุมการหมุนด้วยตัวเอง ใช้ด้วยความระมัดระวัง"
+msgstr "หมุนทิศทางไส้ในแบบโปร่งต่อเลเยอร์โดยใช้เทมเพลตมุม ป้อนองศาที่คั่นด้วยเครื่องหมายจุลภาค (เช่น '0,30,60,90') มุมจะถูกนำไปใช้ตามลำดับเลเยอร์และทำซ้ำเมื่อรายการสิ้นสุด รองรับไวยากรณ์ขั้นสูง: '+5' หมุน +5° ทุกเลเยอร์; '+5#5' หมุน +5° ทุกๆ 5 เลเยอร์ ดูวิกิสำหรับรายละเอียด เมื่อตั้งค่าเทมเพลต การตั้งค่าทิศทางไส้ในมาตรฐานจะถูกละเว้น หมายเหตุ: รูปแบบไส้ในบางรูปแบบ (เช่น ไจรอยด์) จะควบคุมการหมุนด้วยตัวเอง ใช้ด้วยความระมัดระวัง"
msgid "Solid infill rotation template"
msgstr "เทมเพลตการหมุน ไส้ใน ที่เป็นของแข็ง"
+# AI Translated
msgid "This parameter adds a rotation of solid infill direction to each layer according to the specified template. The template is a comma-separated list of angles in degrees, e.g. '0,90'. The first angle is applied to the first layer, the second angle to the second layer, and so on. If there are more layers than angles, the angles will be repeated. Note that not all solid infill patterns support rotation."
-msgstr "พารามิเตอร์นี้จะเพิ่มการหมุนของทิศทางไส้ในแบบทึบลงในแต่ละชั้นตามเทมเพลตที่ระบุ เทมเพลตคือรายการมุมในหน่วยองศาที่คั่นด้วยเครื่องหมายจุลภาค เช่น '0,90'. มุมแรกใช้กับเลเยอร์แรก มุมที่สองกับเลเยอร์ที่สอง และอื่นๆ หากมีชั้นมากกว่ามุม มุมจะเกิดซ้ำ โปรดทราบว่ารูปแบบไส้ในแบบทึบบางรูปแบบไม่รองรับการหมุน"
+msgstr "พารามิเตอร์นี้จะเพิ่มการหมุนของทิศทางไส้ในแบบทึบลงในแต่ละเลเยอร์ตามเทมเพลตที่ระบุ เทมเพลตคือรายการมุมในหน่วยองศาที่คั่นด้วยเครื่องหมายจุลภาค เช่น '0,90'. มุมแรกใช้กับเลเยอร์แรก มุมที่สองกับเลเยอร์ที่สอง และอื่นๆ หากมีเลเยอร์มากกว่ามุม มุมจะเกิดซ้ำ โปรดทราบว่ารูปแบบไส้ในแบบทึบบางรูปแบบไม่รองรับการหมุน"
msgid "Skeleton infill density"
msgstr "ความหนาแน่นของโครงกระดูก"
@@ -16257,9 +17705,11 @@ msgstr "เติมด้านบนของรูปแบบ"
msgid "Choose this option if you want to completely fill in the tops of the infill pattern"
msgstr "เลือกตัวเลือกนี้หากต้องการเติมด้านบนของรูปแบบไส้ในให้เต็ม"
+# AI Translated
msgid "Infill combination - Max layer height"
-msgstr "ชุดค่าผสม ไส้ใน - ความสูงของชั้นสูงสุด"
+msgstr "ชุดค่าผสม ไส้ใน - ความสูงเลเยอร์สูงสุด"
+# AI Translated
msgid ""
"Maximum layer height for the combined sparse infill.\n"
"\n"
@@ -16269,7 +17719,7 @@ msgid ""
"\n"
"Use either absolute mm values (eg. 0.32mm for a 0.4mm nozzle) or % values (eg 80%). This value must not be larger than the nozzle diameter."
msgstr ""
-"ความสูงสูงสุดของชั้นสำหรับไส้ในแบบกระจายแบบรวม\n"
+"ความสูงเลเยอร์สูงสุดสำหรับไส้ในแบบกระจายแบบรวม\n"
"\n"
"ตั้งค่าเป็น 0 หรือ 100% เพื่อใช้เส้นผ่านศูนย์กลางหัวฉีด (เพื่อลดเวลาการพิมพ์สูงสุด) หรือค่า ~80% เพื่อเพิ่มความแข็งแรงของวัสดุไส้ในแบบโปร่งให้สูงสุด\n"
"\n"
@@ -16280,11 +17730,13 @@ msgstr ""
msgid "Enable clumping detection"
msgstr "เปิดใช้งานการตรวจจับการจับกันเป็นก้อน"
+# AI Translated
msgid "Clumping detection layers"
-msgstr "ชั้นตรวจจับการจับกันเป็นก้อน"
+msgstr "เลเยอร์ตรวจจับการจับกันเป็นก้อน"
+# AI Translated
msgid "Clumping detection layers."
-msgstr "ชั้นตรวจจับการจับกันเป็นก้อน"
+msgstr "เลเยอร์ตรวจจับการจับกันเป็นก้อน"
msgid "Probing exclude area of clumping"
msgstr "การตรวจวัดไม่รวมพื้นที่จับตัวเป็นก้อน"
@@ -16319,12 +17771,13 @@ msgstr "มุมส่วนยื่นสูงสุดสำหรับก
msgid "Prune angle"
msgstr "มุมตัดแต่ง"
+# AI Translated
msgid ""
"Controls how aggressively short or unsupported Lightning branches are pruned.\n"
"This angle is converted internally to a per-layer distance."
msgstr ""
"กำหนดระดับการตัดกิ่ง Lightning ที่สั้นหรือไม่มีส่วนรองรับออก\n"
-"มุมนี้จะถูกแปลงภายในเป็นระยะทางต่อชั้น"
+"มุมนี้จะถูกแปลงภายในเป็นระยะทางต่อเลเยอร์"
msgid "Straightening angle"
msgstr "มุมจัดให้ตรง"
@@ -16374,16 +17827,18 @@ msgstr "ความกว้างของเส้นของไส้ใน
msgid "Infill/wall overlap"
msgstr "ไส้ในซ้อนทับผนัง"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "พื้นที่ไส้ในจะขยายใหญ่ขึ้นเล็กน้อยเพื่อให้ทับซ้อนกับผนังเพื่อการยึดเกาะที่ดีขึ้น ค่าเปอร์เซ็นต์สัมพันธ์กับความกว้างของเส้นของไส้ในแบบกระจัดกระจาย ตั้งค่านี้เป็น ~10-15% เพื่อลดโอกาสเกิดการอัดขึ้นรูปและการสะสมของวัสดุ ส่งผลให้พื้นผิวด้านบนขรุขระ"
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "พื้นที่ไส้ในจะขยายใหญ่ขึ้นเล็กน้อยเพื่อให้ทับซ้อนกับผนังเพื่อการยึดเกาะที่ดีขึ้น ค่าเปอร์เซ็นต์สัมพันธ์กับความกว้างของเส้นของผนังด้านใน ตั้งค่านี้เป็น ~10-15% เพื่อลดโอกาสเกิดการอัดขึ้นรูปเกินและการสะสมของวัสดุ ส่งผลให้พื้นผิวด้านบนขรุขระ"
msgid "Top/Bottom solid infill/wall overlap"
msgstr "ด้านบน/ด้านล่างของช่องทึบ/ผนังทับซ้อนกัน"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "พื้นที่ไส้ในของแข็งด้านบนจะถูกขยายให้ใหญ่ขึ้นเล็กน้อยเพื่อให้ทับซ้อนกับผนังเพื่อการยึดเกาะที่ดีขึ้น และเพื่อลดการเกิดรูเข็มที่ซึ่งอินฟิลด้านบนบรรจบกับผนัง ค่า 25-30% ถือเป็นจุดเริ่มต้นที่ดี โดยช่วยลดการเกิดรูเข็มให้เหลือน้อยที่สุด ค่าเปอร์เซ็นต์สัมพันธ์กับความกว้างของเส้นของไส้ในแบบกระจัดกระจาย"
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "พื้นที่ไส้ในแบบทึบด้านบนจะถูกขยายให้ใหญ่ขึ้นเล็กน้อยเพื่อให้ทับซ้อนกับผนังเพื่อการยึดเกาะที่ดีขึ้น และเพื่อลดการเกิดรูเข็มที่ซึ่งไส้ในด้านบนบรรจบกับผนัง ค่า 25-30% ถือเป็นจุดเริ่มต้นที่ดี โดยช่วยลดการเกิดรูเข็มให้เหลือน้อยที่สุด ค่าเปอร์เซ็นต์สัมพันธ์กับความกว้างของเส้นของผนังด้านใน"
msgid "This is the speed for internal sparse infill."
msgstr "ความเร็วของ ไส้ใน เบาบางภายใน"
@@ -16394,11 +17849,13 @@ msgstr "สืบทอดโปรไฟล์"
msgid "Name of parent profile."
msgstr "ชื่อของโปรไฟล์ผู้ปกครอง"
+# AI Translated
msgid "Interface shells"
-msgstr "เชลล์อินเตอร์เฟส"
+msgstr "ผนังอินเตอร์เฟส"
+# AI Translated
msgid "Force the generation of solid shells between adjacent materials/volumes. Useful for multi-extruder prints with translucent materials or manual soluble support material."
-msgstr "บังคับการสร้างเปลือกแข็งระหว่างวัสดุ/ปริมาตรที่อยู่ติดกัน มีประโยชน์สำหรับการพิมพ์แบบหลายชุดดันเส้นด้วยวัสดุโปร่งแสงหรือวัสดุรองรับที่ละลายน้ำได้ด้วยตนเอง"
+msgstr "บังคับการสร้างผนังแข็งระหว่างวัสดุ/ปริมาตรที่อยู่ติดกัน มีประโยชน์สำหรับการพิมพ์แบบหลายชุดดันเส้นด้วยวัสดุโปร่งแสงหรือวัสดุรองรับที่ละลายน้ำได้ด้วยตนเอง"
msgid "Maximum width of a segmented region"
msgstr "ความกว้างสูงสุดของขอบเขตที่แบ่งส่วน"
@@ -16409,8 +17866,9 @@ msgstr "ความกว้างสูงสุดของขอบเขต
msgid "Interlocking depth of a segmented region"
msgstr "ความลึกที่ประสานกันของภูมิภาคที่แบ่งส่วน"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "ความลึกที่ประสานกันของภูมิภาคที่แบ่งส่วน ระบบจะไม่สนใจหาก \"mmu_segmented_region_max_width\" เป็นศูนย์ หรือหาก \"mmu_segmented_region_interlocking_detail\" ใหญ่กว่า \"mmu_segmented_region_max_width\" ศูนย์ปิดใช้งานคุณลักษณะนี้"
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "ความลึกที่ประสานกันของภูมิภาคที่แบ่งส่วน ในเลเยอร์เว้นเลเยอร์ ภูมิภาคที่แบ่งส่วนจะถูกจำกัดไว้ที่ความลึกนี้ ระบบจะไม่สนใจหากเปิดใช้งาน \"interlocking_beam\" หากตั้งเป็นศูนย์จะปิดใช้งานฟีเจอร์นี้"
msgid "Use beam interlocking"
msgstr "ใช้การประสานลำแสง"
@@ -16430,11 +17888,13 @@ msgstr "ทิศทางที่เชื่อมต่อกัน"
msgid "Orientation of interlock beams."
msgstr "การวางแนวของคานลูกโซ่"
+# AI Translated
msgid "Interlocking beam layers"
-msgstr "ชั้นลำแสงที่เชื่อมต่อกัน"
+msgstr "เลเยอร์ลำแสงที่เชื่อมต่อกัน"
+# AI Translated
msgid "The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects."
-msgstr "ความสูงของคานของโครงสร้างที่เชื่อมต่อกัน วัดเป็นจำนวนชั้น ชั้นที่น้อยลงจะแข็งแกร่งขึ้น แต่มีแนวโน้มที่จะเกิดข้อบกพร่องมากขึ้น"
+msgstr "ความสูงของคานของโครงสร้างที่เชื่อมต่อกัน วัดเป็นจำนวนเลเยอร์ เลเยอร์ที่น้อยลงจะแข็งแกร่งขึ้น แต่มีแนวโน้มที่จะเกิดข้อบกพร่องมากขึ้น"
msgid "Interlocking depth"
msgstr "ความลึกที่ประสานกัน"
@@ -16451,8 +17911,9 @@ msgstr "ระยะห่างจากด้านนอกของแบบ
msgid "Ironing type"
msgstr "ชนิดการรีดผิว"
+# AI Translated
msgid "Ironing uses a small flow to print at the same height of a surface to make flat surfaces smoother. This setting controls which layers are being ironed."
-msgstr "การรีดผิวคือการใช้การไหลเล็กน้อยเพื่อพิมพ์บนพื้นผิวที่มีความสูงเท่ากันอีกครั้งเพื่อให้พื้นผิวเรียบเรียบยิ่งขึ้น การตั้งค่านี้ควบคุมว่าชั้นใดที่จะรีด"
+msgstr "การรีดผิวคือการใช้การไหลเล็กน้อยเพื่อพิมพ์บนพื้นผิวที่มีความสูงเท่ากันอีกครั้งเพื่อให้พื้นผิวเรียบเรียบยิ่งขึ้น การตั้งค่านี้ควบคุมว่าเลเยอร์ใดที่จะรีด"
msgid "No ironing"
msgstr "ไม่รีดผิว"
@@ -16472,8 +17933,9 @@ msgstr "รูปแบบการรีดผิว"
msgid "The pattern that will be used when ironing."
msgstr "รูปแบบที่จะใช้ในการรีด"
+# AI Translated
msgid "This is the amount of material to be extruded during ironing. It is relative to the flow of normal layer height. Too high a value will result in overextrusion on the surface."
-msgstr "ปริมาณวัสดุที่จะพ่นออกมาระหว่างรีดผิว สัมพันธ์กับการไหลของความสูงของชั้นปกติ ค่าที่สูงเกินไปส่งผลให้เกิดการอัดขึ้นรูปมากเกินไปบนพื้นผิว"
+msgstr "ปริมาณวัสดุที่จะพ่นออกมาระหว่างรีดผิว สัมพันธ์กับการไหลของความสูงเลเยอร์ปกติ ค่าที่สูงเกินไปส่งผลให้เกิดการอัดขึ้นรูปมากเกินไปบนพื้นผิว"
msgid "This is the distance between the lines used for ironing."
msgstr "ระยะห่างระหว่างเส้นรีดผิว"
@@ -16511,13 +17973,14 @@ msgstr "เปิดใช้งานคอนทัวร์เลเยอร
msgid "Minimize wall height angle"
msgstr "ลดมุมความสูงของผนังให้เล็กที่สุด"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"ลดความสูงของเส้นรอบวงพื้นผิวด้านบนเพื่อให้ตรงกับความสูงของขอบโมเดล\n"
-"ส่งผลต่อเส้นรอบวงที่มีความชันน้อยกว่ามุมนี้ (องศา)\n"
+"ส่งผลต่อเส้นรอบวงที่มีความชันมากกว่ามุมนี้ (องศา)\n"
"ค่าที่เหมาะสมคือ 35 ตั้งค่าเป็น 0 เพื่อปิดใช้งาน"
msgid "Don't alternate fill direction"
@@ -16529,11 +17992,12 @@ msgstr "ปิดใช้งานการสลับทิศทางไส
msgid "Minimum Z height"
msgstr "ความสูง Z ขั้นต่ำ"
+# AI Translated
msgid ""
"Minimum Z-layer height.\n"
"Also controls the slicing plane."
msgstr ""
-"ความสูงขั้นต่ำของชั้น Z\n"
+"ความสูงขั้นต่ำของเลเยอร์ Z\n"
"ควบคุมระนาบการแบ่งส่วนด้วย"
msgid "This G-code is inserted at every layer change after the Z lift."
@@ -16592,17 +18056,21 @@ msgstr "ความเร็วสูงสุด Z"
msgid "Maximum speed E"
msgstr "ความเร็วสูงสุด E"
-msgid "Maximum X speed"
-msgstr "ความเร็ว X สูงสุด"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "ความเร็วสูงสุดของแกน X"
-msgid "Maximum Y speed"
-msgstr "ความเร็ว Y สูงสุด"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "ความเร็วสูงสุดของแกน Y"
-msgid "Maximum Z speed"
-msgstr "ความเร็ว Z สูงสุด"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "ความเร็วสูงสุดของแกน Z"
-msgid "Maximum E speed"
-msgstr "ความเร็ว E สูงสุด"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "ความเร็วสูงสุดของแกน E"
msgid "Maximum acceleration X"
msgstr "อัตราเร่งสูงสุด X"
@@ -16668,11 +18136,13 @@ msgstr "ความเร็วขั้นต่ำสำหรับการ
msgid "Minimum speed for extruding (M205 S)"
msgstr "ความเร็วขั้นต่ำสำหรับการอัดรีด (M205 S)"
+# AI Translated
msgid "Minimum travel speed"
-msgstr "ความเร็วในการเดินทางขั้นต่ำ"
+msgstr "ความเร็วในการเดินหัวเปล่าขั้นต่ำ"
+# AI Translated
msgid "Minimum travel speed (M205 T)"
-msgstr "ความเร็วในการเดินทางขั้นต่ำ (M205 T)"
+msgstr "ความเร็วในการเดินหัวเปล่าขั้นต่ำ (M205 T)"
# AI Translated
msgid "Maximum force of the Y axis"
@@ -16689,11 +18159,11 @@ msgstr "นิวตัน"
# AI Translated
msgid "Bed mass of the Y axis"
-msgstr "มวลฐานของแกน Y"
+msgstr "มวลฐานพิมพ์ของแกน Y"
# AI Translated
msgid "The machine bed mass load of Y axis"
-msgstr "ภาระมวลฐานของเครื่องบนแกน Y"
+msgstr "ภาระมวลฐานพิมพ์ของเครื่องบนแกน Y"
# AI Translated
msgctxt "gram"
@@ -16720,11 +18190,13 @@ msgstr "ความเร่งสูงสุดสำหรับการถ
msgid "Maximum acceleration for retracting (M204 R)"
msgstr "อัตราเร่งสูงสุดในการถอยกลับ (M204 R)"
+# AI Translated
msgid "Maximum acceleration for travel"
-msgstr "อัตราเร่งสูงสุดสำหรับการเดินทาง"
+msgstr "อัตราเร่งสูงสุดสำหรับการเดินหัวเปล่า"
+# AI Translated
msgid "Maximum acceleration for travel (M204 T), it only applies to Marlin 2."
-msgstr "อัตราเร่งสูงสุดสำหรับการเดินทาง (M204 T) ใช้กับ Marlin 2 เท่านั้น"
+msgstr "อัตราเร่งสูงสุดสำหรับการเดินหัวเปล่า (M204 T) ใช้กับ Marlin 2 เท่านั้น"
msgid "Resonance avoidance"
msgstr "การหลีกเลี่ยงการสั่นพ้อง"
@@ -16849,8 +18321,9 @@ msgstr ""
msgid "The part cooling fan speed may be increased when auto cooling is enabled. This is the maximum speed for the part cooling fan."
msgstr "ความเร็วพัดลมระบายความร้อนบางส่วนอาจเพิ่มขึ้นเมื่อเปิดใช้งานการระบายความร้อนอัตโนมัติ นี่คือความเร็วสูงสุดสำหรับพัดลมระบายความร้อนของชิ้นส่วน"
+# AI Translated
msgid "The highest printable layer height for the extruder. Used to limit the maximum layer height when enable adaptive layer height."
-msgstr "ความสูงของชั้นสูงสุดที่สามารถพิมพ์ได้สำหรับชุดดันเส้น ใช้เพื่อจำกัดความสูงของเลเยอร์สูงสุดเมื่อเปิดใช้งานความสูงของเลเยอร์แบบปรับได้"
+msgstr "ความสูงเลเยอร์สูงสุดที่สามารถพิมพ์ได้สำหรับชุดดันเส้น ใช้เพื่อจำกัดความสูงของเลเยอร์สูงสุดเมื่อเปิดใช้งานความสูงของเลเยอร์แบบปรับได้"
msgid "Extrusion rate smoothing"
msgstr "อัตราการอัดรีดให้เรียบ"
@@ -16917,14 +18390,15 @@ msgid ""
"Speed of auxiliary part cooling fan. Auxiliary fan will run at this speed during printing except the first several layers which is defined by no cooling layers.\n"
"Please enable auxiliary_fan in printer settings to use this feature. G-code command: M106 P2 S(0-255)"
msgstr ""
-"ความเร็วของพัดลมระบายความร้อนชิ้นส่วนเสริม พัดลมเสริมจะทำงานที่ความเร็วนี้ในระหว่างการพิมพ์ ยกเว้นหลายชั้นแรกซึ่งถูกกำหนดโดยไม่มีชั้นระบายความร้อน\n"
+"ความเร็วของพัดลมระบายความร้อนชิ้นส่วนเสริม พัดลมเสริมจะทำงานที่ความเร็วนี้ในระหว่างการพิมพ์ ยกเว้นหลายเลเยอร์แรกซึ่งถูกกำหนดโดยไม่มีเลเยอร์ระบายความร้อน\n"
"โปรดเปิดใช้งาน auxiliary_fan ในการตั้งค่าเครื่องพิมพ์เพื่อใช้คุณสมบัตินี้ คำสั่ง G-code: M106 P2 S(0-255)"
msgid "For the first"
msgstr "สำหรับครั้งแรก"
+# AI Translated
msgid "Set special auxiliary cooling fan for the first certain layers."
-msgstr "ตั้งพัดลมระบายความร้อนเสริมพิเศษสำหรับบางชั้นแรก"
+msgstr "ตั้งพัดลมระบายความร้อนเสริมพิเศษสำหรับบางเลเยอร์แรก"
msgid ""
"Auxiliary fan speed will be ramped up linearly from layer \"For the first\" to maximum at layer \"Full fan speed at layer\".\n"
@@ -16936,8 +18410,9 @@ msgstr ""
msgid "Special auxiliary cooling fan speed, effective only for the first x layers."
msgstr "ความเร็วพัดลมระบายความร้อนเสริมพิเศษ มีผลเฉพาะ x เลเยอร์แรกเท่านั้น"
+# AI Translated
msgid "The lowest printable layer height for the extruder. Used to limit the minimum layer height when enable adaptive layer height."
-msgstr "ความสูงของชั้นต่ำสุดที่สามารถพิมพ์ได้สำหรับชุดดันเส้น ใช้เพื่อจำกัดความสูงของเลเยอร์ขั้นต่ำเมื่อเปิดใช้งานความสูงของเลเยอร์แบบปรับได้"
+msgstr "ความสูงเลเยอร์ต่ำสุดที่สามารถพิมพ์ได้สำหรับชุดดันเส้น ใช้เพื่อจำกัดความสูงของเลเยอร์ขั้นต่ำเมื่อเปิดใช้งานความสูงของเลเยอร์แบบปรับได้"
msgid "Min print speed"
msgstr "ความเร็วในการพิมพ์ขั้นต่ำ"
@@ -17005,8 +18480,9 @@ msgstr "จุดเริ่มต้นและจุดสิ้นสุด
msgid "Reduce infill retraction"
msgstr "ลดการดึงกลับในไส้ใน"
+# AI Translated
msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped."
-msgstr "อย่าถอยกลับเมื่อการเดินทางอยู่ภายในพื้นที่ที่ไส้ในเข้าไปทั้งหมด นั่นหมายความว่าไม่สามารถมองเห็นการรั่วไหลได้ วิธีนี้จะช่วยลดเวลาในการดึงกลับสำหรับโมเดลที่ซับซ้อนและประหยัดเวลาในการพิมพ์ แต่จะทำให้การแบ่งส่วนและการสร้าง G-code ช้าลง โปรดทราบว่า Z-hop จะไม่ดำเนินการในพื้นที่ที่มีการข้ามการถอนกลับ"
+msgstr "อย่าถอยกลับเมื่อการเดินหัวเปล่าอยู่ภายในพื้นที่ที่ไส้ในเข้าไปทั้งหมด นั่นหมายความว่าไม่สามารถมองเห็นการรั่วไหลได้ วิธีนี้จะช่วยลดเวลาในการดึงกลับสำหรับโมเดลที่ซับซ้อนและประหยัดเวลาในการพิมพ์ แต่จะทำให้การแบ่งส่วนและการสร้าง G-code ช้าลง โปรดทราบว่า Z-hop จะไม่ดำเนินการในพื้นที่ที่มีการข้ามการถอนกลับ"
msgid "This option will drop the temperature of the inactive extruders to prevent oozing."
msgstr "ตัวเลือกนี้จะทำให้อุณหภูมิของชุดดันเส้นที่ไม่ใช้งานลดลงเพื่อป้องกันการไหลซึม"
@@ -17056,24 +18532,28 @@ msgstr ""
"โดยจะถูกอัดขึ้นรูปหลังผนังอื่น ๆ ของเกาะเดียวกัน เริ่มจากวงในสุด ไม่ว่าลำดับผนังจะเป็นแบบใด\n"
"รอบที่มีเพียงสะพานของเลเยอร์นี้เท่านั้นที่ยึดไว้ได้จะรอจนกว่าสะพานเหล่านั้นจะถูกพิมพ์ ส่วนรอบที่วิ่งขนานไปกับผนังที่มีส่วนรองรับจะยังคงอยู่ก่อนไส้ใน ซึ่งต้องใช้มันเป็นจุดยึด"
+# AI Translated
msgid "Outer walls"
-msgstr "ผนังชั้นนอก"
+msgstr "ผนังด้านนอก"
+# AI Translated
msgid ""
"Filament to print outer walls.\n"
"\"Default\" uses the active object/part filament."
msgstr ""
-"เส้นพลาสติกสำหรับพิมพ์ผนังชั้นนอก\n"
+"เส้นพลาสติกสำหรับพิมพ์ผนังด้านนอก\n"
"\"ค่าเริ่มต้น\" ใช้เส้นพลาสติกของวัตถุ/ชิ้นส่วนที่ใช้งานอยู่"
+# AI Translated
msgid "Inner walls"
-msgstr "ผนังชั้นใน"
+msgstr "ผนังด้านใน"
+# AI Translated
msgid ""
"Filament to print inner walls.\n"
"\"Default\" uses the active object/part filament."
msgstr ""
-"เส้นพลาสติกสำหรับพิมพ์ผนังชั้นใน\n"
+"เส้นพลาสติกสำหรับพิมพ์ผนังด้านใน\n"
"\"ค่าเริ่มต้น\" ใช้เส้นพลาสติกของวัตถุ/ชิ้นส่วนที่ใช้งานอยู่"
msgid "Line width of inner wall. If expressed as a %, it will be computed over the nozzle diameter."
@@ -17082,12 +18562,14 @@ msgstr "ความกว้างของเส้นของผนังด
msgid "This is the speed for inner walls."
msgstr "ความเร็วของผนังด้านใน"
+# AI Translated
msgid "This is the number of walls per layer."
-msgstr "จำนวนผนังทุกชั้น"
+msgstr "จำนวนผนังทุกเลเยอร์"
msgid "Alternate extra wall"
msgstr "ผนังเสริมสำรอง"
+# AI Translated
msgid ""
"This setting adds an extra wall to every other layer. This way the infill gets wedged vertically between the walls, resulting in stronger prints.\n"
"\n"
@@ -17095,9 +18577,9 @@ msgid ""
"\n"
"Using lightning infill together with this option is not recommended as there is limited infill to anchor the extra perimeters to."
msgstr ""
-"การตั้งค่านี้จะเพิ่มผนังพิเศษแบบชั้นเว้นชั้น วิธีนี้จะทำให้ไส้ในถูกหนีบในแนวตั้งระหว่างผนัง ส่งผลให้งานพิมพ์แข็งแรงขึ้น\n"
+"การตั้งค่านี้จะเพิ่มผนังพิเศษแบบเลเยอร์เว้นเลเยอร์ วิธีนี้จะทำให้ไส้ในถูกหนีบในแนวตั้งระหว่างผนัง ส่งผลให้งานพิมพ์แข็งแรงขึ้น\n"
"\n"
-"เมื่อเปิดใช้งานตัวเลือกนี้ จะต้องปิดใช้งานตัวเลือกตรวจสอบความหนาของเปลือกแนวตั้ง\n"
+"เมื่อเปิดใช้งานตัวเลือกนี้ จะต้องปิดใช้งานตัวเลือกตรวจสอบความหนาของผนังแนวตั้ง\n"
"\n"
"ไม่แนะนำให้ใช้ไส้ในแบบสายฟ้าร่วมกับตัวเลือกนี้ เนื่องจากมีไส้ในจำกัดสำหรับยึดเส้นรอบวงเสริม"
@@ -17119,7 +18601,7 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "ความสามารถของปลั๊กอินที่พรีเซ็ตนี้อ้างอิง จัดเก็บเป็น name;uuid;capability"
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr "ปลั๊กอิน Python ที่เรียกใช้ในแต่ละขั้นตอนของไปป์ไลน์การสไลซ์เพื่ออ่านและแก้ไขข้อมูลการสไลซ์ระหว่างกลาง รวมถึงขั้นตอนหลังประมวลผล G-code สุดท้าย สำหรับการวิจัย/ทดลอง"
msgid "Printer type"
@@ -17146,35 +18628,44 @@ msgstr "ช่องว่าง Z ระหว่างฐานรองชิ
msgid "Raft expansion"
msgstr "การขยาย ฐานรองชิ้นงาน"
+# AI Translated
msgid "This expands all raft layers in XY plane."
-msgstr "ขยายชั้นฐานรองชิ้นงานทั้งหมดในระนาบ XY"
+msgstr "ขยายเลเยอร์ฐานรองชิ้นงานทั้งหมดในระนาบ XY"
+# AI Translated
msgid "First layer density"
-msgstr "ความหนาแน่นของชั้นแรก"
+msgstr "ความหนาแน่นของเลเยอร์แรก"
+# AI Translated
msgid "This is the density of the first raft or support layer."
-msgstr "ความหนาแน่นของฐานรองชิ้นงานแรกหรือชั้นรองรับ"
+msgstr "ความหนาแน่นของฐานรองชิ้นงานแรกหรือเลเยอร์รองรับ"
+# AI Translated
msgid "First layer expansion"
-msgstr "การขยายชั้นแรก"
+msgstr "การขยายเลเยอร์แรก"
+# AI Translated
msgid "This expands the first raft or support layer to improve bed adhesion."
-msgstr "ขยายฐานรองชิ้นงานหรือชั้นรองรับชั้นแรกเพื่อปรับปรุงการยึดเกาะของแผ่นฐานพิมพ์"
+msgstr "ขยายฐานรองชิ้นงานหรือเลเยอร์รองรับเลเยอร์แรกเพื่อปรับปรุงการยึดเกาะของฐานพิมพ์"
+# AI Translated
msgid "Raft layers"
-msgstr "จำนวนชั้น ฐานรองชิ้นงาน"
+msgstr "จำนวนเลเยอร์ ฐานรองชิ้นงาน"
+# AI Translated
msgid "Object will be raised by this number of support layers. Use this function to avoid warping when printing ABS."
-msgstr "วัตถุจะถูกยกขึ้นตามจำนวนชั้นรองรับนี้ ใช้ฟังก์ชันนี้เพื่อหลีกเลี่ยงการบิดงอเมื่อพิมพ์ ABS"
+msgstr "วัตถุจะถูกยกขึ้นตามจำนวนเลเยอร์รองรับนี้ ใช้ฟังก์ชันนี้เพื่อหลีกเลี่ยงการบิดงอเมื่อพิมพ์ ABS"
msgid "The G-code path is generated after simplifying the contour of models to avoid too many points and G-code lines. Smaller values mean higher resolution and more time required to slice."
msgstr "เส้นทาง G-code ถูกสร้างขึ้นหลังจากลดความซับซ้อนของรูปร่างของโมเดล เพื่อหลีกเลี่ยงจุดและเส้น G-code ที่มากเกินไป ค่าที่น้อยลงหมายถึงความละเอียดสูงขึ้นและมีเวลามากขึ้นในการตัด"
+# AI Translated
msgid "Travel distance threshold"
-msgstr "เกณฑ์ระยะทางการเดินทาง"
+msgstr "เกณฑ์ระยะทางการเดินหัวเปล่า"
+# AI Translated
msgid "Only trigger retraction when the travel distance is longer than this threshold."
-msgstr "ทริกเกอร์การถอนกลับเมื่อระยะการเดินทางยาวกว่าเกณฑ์นี้เท่านั้น"
+msgstr "ทริกเกอร์การถอนกลับเมื่อระยะการเดินหัวเปล่ายาวกว่าเกณฑ์นี้เท่านั้น"
msgid "Retract amount before wipe"
msgstr "สัดส่วนการดึงกลับก่อน Wipe"
@@ -17204,8 +18695,9 @@ msgstr "บังคับให้ถอนกลับเมื่อเปล
msgid "Retraction Length"
msgstr "ระยะดึงกลับ"
+# AI Translated
msgid "Some amount of material in extruder is pulled back to avoid ooze during long travel. Set zero to disable retraction."
-msgstr "วัสดุบางส่วนในชุดดันเส้นถูกดึงกลับเพื่อหลีกเลี่ยงไม่ให้ซึ่มในระหว่างการเดินทางระยะไกล ตั้งเป็น 0 เพื่อปิดการดึงกลับ"
+msgstr "วัสดุบางส่วนในชุดดันเส้นถูกดึงกลับเพื่อหลีกเลี่ยงไม่ให้ซึ่มในระหว่างการเดินหัวเปล่าระยะไกล ตั้งเป็น 0 เพื่อปิดการดึงกลับ"
msgid "Long retraction when cut (beta)"
msgstr "การถอยกลับยาวเมื่อตัด (เบต้า)"
@@ -17263,8 +18755,9 @@ msgstr "ความลาดชัน"
msgid "Spiral"
msgstr "เกลียว"
+# AI Translated
msgid "Traveling angle"
-msgstr "มุมการเดินทาง"
+msgstr "มุมการเดินหัวเปล่า"
msgid "Traveling angle for Slope and Spiral Z-hop type. Setting it to 90° results in Normal Lift."
msgstr "มุมการเคลื่อนที่สำหรับประเภท Slope และ Spiral Z-hop การตั้งค่าเป็น 90° จะทำให้ได้ Normal Lift"
@@ -17328,8 +18821,9 @@ msgstr "เครื่องพิมพ์มีฮาร์ดแวร์ต
msgid "Extra length on restart"
msgstr "ความยาวพิเศษเมื่อรีสตาร์ท"
+# AI Translated
msgid "When the retraction is compensated after the travel move, the extruder will push this additional amount of filament. This setting is rarely needed."
-msgstr "เมื่อชดเชยการดึงกลับหลังการเคลื่อนที่เดินทาง ชุดดันเส้นจะดันเส้นพลาสติกเพิ่มเติมในปริมาณนี้ การตั้งค่านี้ไม่ค่อยจำเป็น"
+msgstr "เมื่อชดเชยการดึงกลับหลังการเคลื่อนที่เดินหัวเปล่า ชุดดันเส้นจะดันเส้นพลาสติกเพิ่มเติมในปริมาณนี้ การตั้งค่านี้ไม่ค่อยจำเป็น"
# AI Translated
msgid "Extra length on restart (Toolchange)"
@@ -17485,8 +18979,9 @@ msgstr "รอยต่อ Scarf สำหรับผนังด้านใ
msgid "Use scarf joint for inner walls as well."
msgstr "ใช้รอยต่อ Scarf กับผนังด้านในด้วย"
-msgid "Role base wipe speed"
-msgstr "ความเร็ว Wipe ตามประเภทการพิมพ์"
+# AI Translated
+msgid "Role based wipe speed"
+msgstr "ความเร็วเช็ดหัวฉีดตามประเภทการพิมพ์"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
msgstr "ความเร็ว Wipe จะอิงจากความเร็วของประเภทการพิมพ์ปัจจุบัน เช่น หากการ Wipe เกิดขึ้นทันทีหลังจากพิมพ์ผนังด้านนอก ความเร็วของผนังด้านนอกจะถูกใช้สำหรับการ Wipe"
@@ -17545,8 +19040,9 @@ msgstr ""
msgid "Wipe speed"
msgstr "ความเร็วเช็ดหัวฉีด"
+# AI Translated
msgid "The wipe speed is determined by the speed setting specified in this configuration. If the value is expressed as a percentage (e.g. 80%), it will be calculated based on the travel speed setting above. The default value for this parameter is 80%."
-msgstr "ความเร็วในการเช็ดถูกกำหนดโดยการตั้งค่าความเร็วที่ระบุในการกำหนดค่านี้ หากค่าแสดงเป็นเปอร์เซ็นต์ (เช่น 80%) ระบบจะคำนวณตามการตั้งค่าความเร็วการเดินทางด้านบน ค่าเริ่มต้นสำหรับพารามิเตอร์นี้คือ 80%"
+msgstr "ความเร็วในการเช็ดถูกกำหนดโดยการตั้งค่าความเร็วที่ระบุในการกำหนดค่านี้ หากค่าแสดงเป็นเปอร์เซ็นต์ (เช่น 80%) ระบบจะคำนวณตามการตั้งค่าความเร็วการเดินหัวเปล่าด้านบน ค่าเริ่มต้นสำหรับพารามิเตอร์นี้คือ 80%"
msgid "Skirt distance"
msgstr "ระยะห่างของเส้นล้อมชิ้นงาน"
@@ -17563,28 +19059,30 @@ msgstr "มุมจากศูนย์กลางวัตถุถึงจ
msgid "Skirt height"
msgstr "ความสูงของเส้นล้อมชิ้นงาน"
+# AI Translated
msgid "Number of skirt layers: usually only one"
-msgstr "เส้นล้อมชิ้นงานกี่ชั้น.. โดยปกติจะมีเพียงชั้นเดียวเท่านั้น"
+msgstr "เส้นล้อมชิ้นงานกี่เลเยอร์.. โดยปกติจะมีเพียงเลเยอร์เดียวเท่านั้น"
+# AI Translated
msgid "Single loop after first layer"
-msgstr "วนรอบเดียวหลังจากชั้นแรก"
+msgstr "วนรอบเดียวหลังจากเลเยอร์แรก"
+# AI Translated
msgid "Limits the skirt/draft shield loops to one wall after the first layer. This is useful, on occasion, to conserve filament but may cause the draft shield/skirt to warp / crack."
-msgstr "จำกัดห่วงสเกิร์ต/แนวป้องกันลม (Draft Shield) ไว้ที่ผนังเดียวหลังจากชั้นแรก สิ่งนี้มีประโยชน์ในบางครั้งเพื่อประหยัดเส้นพลาสติก แต่อาจทำให้แนวป้องกันลม/เส้นล้อมชิ้นงานบิดเบี้ยว/แตกร้าวได้"
+msgstr "จำกัดห่วงสเกิร์ต/แนวป้องกันลม (Draft Shield) ไว้ที่ผนังเดียวหลังจากเลเยอร์แรก สิ่งนี้มีประโยชน์ในบางครั้งเพื่อประหยัดเส้นพลาสติก แต่อาจทำให้แนวป้องกันลม/เส้นล้อมชิ้นงานบิดเบี้ยว/แตกร้าวได้"
msgid "Draft shield"
msgstr "แนวป้องกันลม (Draft Shield)"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"แนวป้องกันลม (Draft Shield) มีประโยชน์ในการปกป้องงานพิมพ์ ABS หรือ ASA จากการบิดงอและการหลุดออกจากฐานพิมพ์เนื่องจากกระแสลม โดยทั่วไปจำเป็นต้องใช้กับเครื่องพิมพ์แบบเปิดเฟรมเท่านั้น กล่าวคือ ไม่มีกล่องหุ้ม\n"
"\n"
-"Enabled = เส้นล้อมชิ้นงานสูงเท่ากับวัตถุที่พิมพ์สูงสุด มิฉะนั้น จะใช้ 'ความสูงของเส้นล้อมชิ้นงาน'\n"
-"หมายเหตุ: เมื่อใช้งานแนวป้องกันลม (Draft Shield) เส้นล้อมชิ้นงานจะถูกพิมพ์ที่ระยะห่างจากวัตถุ ดังนั้นหากขอบยึดชิ้นงานยังทำงานอยู่ ขอบยึดชิ้นงานอาจตัดกัน เพื่อหลีกเลี่ยงปัญหานี้ ให้เพิ่มค่าระยะห่างของเส้นล้อมชิ้นงาน\n"
+"เปิดใช้งาน = เส้นล้อมชิ้นงานสูงเท่ากับวัตถุที่พิมพ์สูงสุด มิฉะนั้น จะใช้ 'ความสูงของเส้นล้อมชิ้นงาน'"
msgid "Enabled"
msgstr "เปิดใช้"
@@ -17660,8 +19158,9 @@ msgstr "ความกว้างของเส้นของ ไส้ใ
msgid "This is the speed for internal solid infill, not including the top or bottom surface."
msgstr "ความเร็วของไส้ในของแข็งภายใน ไม่ใช่พื้นผิวด้านบนและด้านล่าง"
+# AI Translated
msgid "This enables spiraling, which smooths out the Z moves of the outer contour and turns a solid model into a single walled print with solid bottom layers. The final generated model has no seam."
-msgstr "Spiralize จะทำให้การเคลื่อนที่ Z ของเส้นขอบด้านนอกเรียบเนียนขึ้น และเปลี่ยนโมเดลทึบให้เป็นภาพพิมพ์ผนังเดี่ยวพร้อมชั้นล่างสุดทึบ โมเดลที่สร้างขึ้นขั้นสุดท้ายไม่มีรอยตะเข็บ"
+msgstr "Spiralize จะทำให้การเคลื่อนที่ Z ของเส้นขอบด้านนอกเรียบเนียนขึ้น และเปลี่ยนโมเดลทึบให้เป็นภาพพิมพ์ผนังเดี่ยวพร้อมเลเยอร์ล่างสุดทึบ โมเดลที่สร้างขึ้นขั้นสุดท้ายไม่มีรอยตะเข็บ"
msgid "Smooth Spiral"
msgstr "เกลียวเรียบ"
@@ -17676,22 +19175,26 @@ msgstr "การปรับให้เรียบสูงสุด XY"
msgid "Maximum distance to move points in XY to try to achieve a smooth spiral. If expressed as a %, it will be computed over nozzle diameter."
msgstr "ระยะทางสูงสุดเพื่อย้ายจุดใน XY เพื่อพยายามให้ได้เกลียวเรียบ หากแสดงเป็น % จะคำนวณตามเส้นผ่านศูนย์กลางของหัวฉีด"
+# AI Translated
msgid "Spiral starting flow ratio"
-msgstr "อัตราการไหลเริ่มต้นของเกลียว"
+msgstr "อัตราส่วนการไหลเริ่มต้นของเกลียว"
+# AI Translated
#, no-c-format, no-boost-format
msgid "Sets the starting flow ratio while transitioning from the last bottom layer to the spiral. Normally the spiral transition scales the flow ratio from 0% to 100% during the first loop which can in some cases lead to under extrusion at the start of the spiral."
-msgstr "ตั้งค่าอัตราส่วนการไหลเริ่มต้นขณะเปลี่ยนจากชั้นล่างสุดสุดท้ายเป็นเกลียว โดยปกติการเปลี่ยนผ่านของเกลียวจะปรับขนาดอัตราส่วนการไหลจาก 0% เป็น 100% ในระหว่างลูปแรก ซึ่งในบางกรณีอาจนำไปสู่การรีดขึ้นรูปที่จุดเริ่มต้นของเกลียว"
+msgstr "ตั้งค่าอัตราส่วนการไหลเริ่มต้นขณะเปลี่ยนจากเลเยอร์ล่างสุดสุดท้ายเป็นเกลียว โดยปกติการเปลี่ยนผ่านของเกลียวจะปรับขนาดอัตราส่วนการไหลจาก 0% เป็น 100% ในระหว่างลูปแรก ซึ่งในบางกรณีอาจนำไปสู่การรีดขึ้นรูปที่จุดเริ่มต้นของเกลียว"
+# AI Translated
msgid "Spiral finishing flow ratio"
-msgstr "อัตราการไหลการตกแต่งเกลียว"
+msgstr "อัตราส่วนการไหลการตกแต่งเกลียว"
#, no-c-format, no-boost-format
msgid "Sets the finishing flow ratio while ending the spiral. Normally the spiral transition scales the flow ratio from 100% to 0% during the last loop which can in some cases lead to under extrusion at the end of the spiral."
msgstr "ตั้งค่าอัตราส่วนการไหลขั้นสุดท้ายขณะสิ้นสุดเกลียว โดยปกติการเปลี่ยนผ่านของเกลียวจะปรับขนาดอัตราส่วนการไหลจาก 100% เป็น 0% ในระหว่างลูปสุดท้าย ซึ่งในบางกรณีอาจนำไปสู่การรีดขึ้นรูปที่ปลายเกลียว"
+# AI Translated
msgid "If smooth or traditional mode is selected, a timelapse video will be generated for each print. After each layer is printed, a snapshot is taken with the chamber camera. All of these snapshots are composed into a timelapse video when printing completes. If smooth mode is selected, the toolhead will move to the excess chute after each layer is printed and then take a snapshot. Since the melt filament may leak from the nozzle during the process of taking a snapshot, a prime tower is required for smooth mode to wipe the nozzle."
-msgstr "หากเลือกโหมดเรียบหรือโหมดดั้งเดิม วิดีโอไทม์แลปส์จะถูกสร้างขึ้นสำหรับการพิมพ์แต่ละครั้ง หลังจากพิมพ์แต่ละชั้นแล้ว กล้องจะถ่ายภาพสแนปช็อตด้วยกล้องแชมเบอร์ สแน็ปช็อตทั้งหมดนี้จะถูกประกอบเป็นวิดีโอไทม์แลปส์เมื่อการพิมพ์เสร็จสิ้น หากเลือกโหมดเรียบ หัวเครื่องมือจะย้ายไปยังรางส่วนเกินหลังจากพิมพ์แต่ละเลเยอร์แล้วจึงถ่ายภาพสแน็ปช็อต เนื่องจากเส้นพลาสติกที่หลอมละลายอาจรั่วไหลออกจากหัวฉีดในระหว่างขั้นตอนการถ่ายภาพ จึงจำเป็นต้องมี Prime Tower เพื่อให้โหมดราบรื่นในการเช็ดหัวฉีด"
+msgstr "หากเลือกโหมดเรียบหรือโหมดดั้งเดิม วิดีโอไทม์แลปส์จะถูกสร้างขึ้นสำหรับการพิมพ์แต่ละครั้ง หลังจากพิมพ์แต่ละเลเยอร์แล้ว กล้องจะถ่ายภาพสแนปช็อตด้วยกล้องแชมเบอร์ สแน็ปช็อตทั้งหมดนี้จะถูกประกอบเป็นวิดีโอไทม์แลปส์เมื่อการพิมพ์เสร็จสิ้น หากเลือกโหมดเรียบ หัวเครื่องมือจะย้ายไปยังรางส่วนเกินหลังจากพิมพ์แต่ละเลเยอร์แล้วจึงถ่ายภาพสแน็ปช็อต เนื่องจากเส้นพลาสติกที่หลอมละลายอาจรั่วไหลออกจากหัวฉีดในระหว่างขั้นตอนการถ่ายภาพ จึงจำเป็นต้องมี Prime Tower เพื่อให้โหมดราบรื่นในการเช็ดหัวฉีด"
msgid "Traditional"
msgstr "แบบดั้งเดิม"
@@ -17748,6 +19251,130 @@ msgstr "ชุดดันเส้นเดี่ยวหลายวัสด
msgid "Use single nozzle to print multi filament."
msgstr "ใช้หัวฉีดเดี่ยวเพื่อพิมพ์เส้นพลาสติกหลายเส้น"
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "เครื่องพิมพ์ IDEX/IQEX"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "เปิดใช้งานการพิมพ์แบบขนานสำหรับเครื่องพิมพ์ที่มีแคร่อิสระหลายตัว (IDEX, IQEX และที่คล้ายกัน)"
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "โซนที่จัดการโดยเฟิร์มแวร์"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "เมื่อเปิดใช้งาน สไลเซอร์จะสร้าง G-code โดยให้เนื้อหาของโซนหลักอยู่กึ่งกลางที่จุดกำเนิดของฐานพิมพ์ (0,0) เฟิร์มแวร์ของเครื่องพิมพ์จะรับผิดชอบการวางสำเนา/ภาพกระจกเงาที่ตำแหน่งของแต่ละโซนจริง เปิดใช้งานเฉพาะกับเครื่องพิมพ์ที่เฟิร์มแวร์ใช้ค่าออฟเซ็ตโซนของตัวเองในโหมดสำเนา/กระจกเงา (เช่น โหมด duplication ของ IDEX ใน RepRapFirmware) ไม่มีผลในโหมดหลัก (Primary)"
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "จำนวนแกนทรี"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "จำนวนแกนทรีแกน Y ที่อิสระต่อกัน 1 สำหรับ IDEX/IQEX แบบรางเดี่ยว 2 สำหรับระบบแกนทรีคู่ (แบ่งฐานพิมพ์เป็นแถว)"
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "เครื่องมือต่อแกนทรี"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "จำนวนหัวพิมพ์อิสระต่อแกนทรีตามแนวแกน X 2 สำหรับแบบ IDEX"
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "ตำแหน่งเครื่องมือ 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "ตำแหน่งจริงบนฐานพิมพ์ที่เครื่องมือ T0 (ดัชนี 0) อยู่ ใช้กำหนดว่าดัชนีเครื่องมือจับคู่กับโซนบนฐานพิมพ์อย่างไร สำหรับระบบแกนทรีเดี่ยว (IDEX) มีผลเฉพาะซ้าย/ขวา สำหรับระบบแกนทรีคู่ (IQEX) เลือกได้ทั้งสี่มุม (ด้านหน้า = Y ต่ำกว่า / ใกล้ผู้ใช้งาน, ด้านหลัง = Y สูงกว่า / ด้านหลังเครื่อง)"
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "ระยะเว้นหัวฉีด X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "ระยะ (มม.) จากหัวฉีดถึงขอบแคร่ด้านที่อาจเกิดการชนในแนว X ใช้คำนวณความกว้างของแถบกันชนที่แต่ละขอบเขต X"
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "ระยะเว้นหัวฉีด Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "ระยะ (มม.) จากหัวฉีดถึงขอบแคร่ด้านที่อาจเกิดการชนในแนว Y ใช้คำนวณความกว้างของแถบกันชนที่แต่ละขอบเขต Y"
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "ระยะเผื่อความปลอดภัย"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "แถบระยะเว้นแบบแนะนำ (มม.) ที่ไม่ขัดขวางการสไลซ์ ซึ่งวาดไว้ภายในโซนหลักที่แต่ละขอบเขตของแคร่ ชิ้นส่วนที่วางอยู่ภายในแถบนี้ยังคงสไลซ์ได้ แถบนี้เป็นเพียงตัวเตือนให้เว้นระยะเพิ่มใกล้ขอบโซน"
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "ธีมการแสดงผล"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "ธีมสีสำหรับการแสดงโซนบนฐานพิมพ์ของ IDEX/IQEX เลือกธีมที่เหมาะกับผู้มีภาวะตาบอดสีหากจำเป็น"
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "ตาบอดสีเขียว / ตาบอดสีแดง (แดง-เขียว)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "ตาบอดสีน้ำเงิน (น้ำเงิน-เหลือง)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "คอนทราสต์สูง"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "โหมดการพิมพ์ IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "ชื่อของโหมดการพิมพ์แบบขนาน IDEX/IQEX ที่ใช้งานอยู่ หรือ \"primary\" สำหรับการพิมพ์ด้วยแคร่เดียว ต้องเปิดใช้งาน เครื่องพิมพ์ IDEX/IQEX ในพรีเซ็ตเครื่องพิมพ์ (เครื่องพิมพ์ → หลากหลายวัสดุ → การกำหนดค่า IDEX/IQEX)"
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "แผนผังเส้นพลาสติกของหัวพิมพ์ IDEX/IQEX"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "ค่าแทนที่ต่อเพลตที่จับคู่หัวจริงกับช่องเส้นพลาสติก (เริ่มนับจาก 1) เว้นว่างหมายถึงแต่ละหัวใช้เส้นพลาสติกเส้นแรกที่แผนผังชุดดันเส้นจริงของเครื่องพิมพ์ส่งมายังหัวนั้น"
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "ชื่อโหมด IDEX/IQEX"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "ชื่อที่แสดงของโหมดการพิมพ์แบบขนาน IDEX/IQEX แต่ละโหมดที่ผู้ใช้กำหนด"
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "เครื่องมือที่ใช้งานในโหมด IDEX/IQEX"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "การกำหนดบทบาทของเครื่องมือสำหรับแต่ละโหมด รูปแบบ: \"idx:P,idx:C,idx:M\" โดย P=Primary (หลัก), C=Copy (สำเนา), M=Mirror (กระจกเงา) (เช่น \"0:P,1:C,2:M,3:M\") จัดการโดยตัวแก้ไขโหมด IDEX/IQEX ในพรีเซ็ตเครื่องพิมพ์"
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-code ของโหมด IDEX/IQEX"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code หรือการเรียกมาโครที่จะแทรกเมื่อเริ่มพิมพ์สำหรับแต่ละโหมด"
+
msgid "Manual Filament Change"
msgstr "การเปลี่ยนเส้นพลาสติกด้วยตนเอง"
@@ -17778,8 +19405,9 @@ msgstr "เปิดใช้งานการอัดกระแทกเส
msgid "Tool change on wipe tower"
msgstr "การเปลี่ยนเครื่องมือบน Wipe Tower"
+# AI Translated
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
-msgstr "บังคับให้หัวเครื่องมือเคลื่อนที่ไปที่ Wipe Tower ก่อนที่จะออกคำสั่งเปลี่ยนเครื่องมือ (Tx) เกี่ยวข้องเฉพาะกับเครื่องพิมพ์ที่มีชุดดันเส้นหลายเครื่อง (หลายหัวเครื่องมือ) ที่ใช้แผ่นเช็ดแบบ Type 2 ตามค่าเริ่มต้น Orca จะข้ามการเดินทางบนเครื่องที่มีหัวเครื่องมือหลายหัวเนื่องจากเฟิร์มแวร์จัดการการสลับหัว ซึ่งอาจส่งผลให้มีการออกคำสั่ง Tx เหนือส่วนที่พิมพ์ เปิดใช้งานตัวเลือกนี้หากคุณต้องการให้ทำการเปลี่ยนแปลงเครื่องมือเหนือ Wipe Tower แทนเสมอ"
+msgstr "บังคับให้หัวเครื่องมือเคลื่อนที่ไปที่ Wipe Tower ก่อนที่จะออกคำสั่งเปลี่ยนเครื่องมือ (Tx) เกี่ยวข้องเฉพาะกับเครื่องพิมพ์ที่มีชุดดันเส้นหลายเครื่อง (หลายหัวเครื่องมือ) ที่ใช้แผ่นเช็ดแบบ Type 2 ตามค่าเริ่มต้น Orca จะข้ามการเดินหัวเปล่าบนเครื่องที่มีหัวเครื่องมือหลายหัวเนื่องจากเฟิร์มแวร์จัดการการสลับหัว ซึ่งอาจส่งผลให้มีการออกคำสั่ง Tx เหนือส่วนที่พิมพ์ เปิดใช้งานตัวเลือกนี้หากคุณต้องการให้ทำการเปลี่ยนแปลงเครื่องมือเหนือ Wipe Tower แทนเสมอ"
# AI Translated
msgid "Wait for temperature on wipe tower"
@@ -17789,8 +19417,9 @@ msgstr "รอให้ถึงอุณหภูมิที่ Wipe Tower"
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
msgstr "รับเครื่องมือใหม่โดยไม่รอให้ถึงอุณหภูมิการพิมพ์ แล้วเคลื่อนที่ไปยัง Wipe Tower และรออุณหภูมิที่นั่นก่อนไล่เส้นทันที เส้นพลาสติกที่ซึมออกมาระหว่างการอุ่นจะตกลงบน Wipe Tower แทนที่จะตกบนโมเดล และการเคลื่อนที่จะเกิดขึ้นพร้อมกับการอุ่น ใช้ได้เฉพาะกับเครื่องพิมพ์แบบหลายชุดดันเส้น (หลายหัวพิมพ์) ที่ใช้ Wipe Tower ชนิดที่ 2 เฟิร์มแวร์หรือแมโครการเปลี่ยนเครื่องมือต้องไม่รออุณหภูมิเอง เมื่อปิดใช้ คำสั่งรออุณหภูมิจะถูกส่งทันทีหลังคำสั่งเปลี่ยนเครื่องมือ"
+# AI Translated
msgid "No sparse layers (beta)"
-msgstr "ไม่มีชั้นกระจัดกระจาย (เบต้า)"
+msgstr "ไม่มีเลเยอร์กระจัดกระจาย (เบต้า)"
# AI Translated
msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower, so the tower ends up below the model and the toolhead has to reach down to it. Layouts where that would collide with an already printed object are rejected. Has no effect with smooth timelapse or clumping detection, which need a tower on every layer."
@@ -17798,7 +19427,7 @@ msgstr "หากเปิดใช้ Wipe Tower จะไม่ถูกพิ
# AI Translated
msgid "Combine sparse layers"
-msgstr "รวมชั้นกระจัดกระจาย"
+msgstr "รวมเลเยอร์กระจัดกระจาย"
# AI Translated
msgid ""
@@ -17812,7 +19441,7 @@ msgstr ""
"\n"
"จะรวมเฉพาะเลเยอร์ที่สมบูรณ์เท่านั้น และไม่เกินความสูงเลเยอร์สูงสุดของหัวฉีดที่พิมพ์ทาวเวอร์ (สามในสี่ของเส้นผ่านศูนย์กลางหัวฉีด หากค่านั้นเป็น 0) ดังนั้นต้องมีเลเยอร์ตั้งแต่สองเลเยอร์ขึ้นไปที่อยู่ภายในขีดจำกัดนั้นก่อนจึงจะมีการเปลี่ยนแปลงใด ๆ: ที่ความสูงเลเยอร์ 0.2 มม. ภายใต้ค่าสูงสุด 0.3 มม. จะไม่มีการรวม ขณะที่ที่ 0.1 มม. สามเลเยอร์จะรวมเป็นหนึ่ง\n"
"\n"
-"ต่างจาก \"ไม่มีชั้นกระจัดกระจาย\" ทาวเวอร์จะยังคงสูงตามโมเดล หัวพิมพ์จึงไม่ต้องลงไปถึงทาวเวอร์ ไม่มีผลเมื่อใช้ \"ไม่มีชั้นกระจัดกระจาย\" ไทม์แลปส์แบบราบรื่น หรือการตรวจจับการจับตัวเป็นก้อน ซึ่งต้องมีทาวเวอร์ในทุกเลเยอร์"
+"ต่างจาก \"ไม่มีเลเยอร์กระจัดกระจาย\" ทาวเวอร์จะยังคงสูงตามโมเดล หัวพิมพ์จึงไม่ต้องลงไปถึงทาวเวอร์ ไม่มีผลเมื่อใช้ \"ไม่มีเลเยอร์กระจัดกระจาย\" ไทม์แลปส์แบบราบรื่น หรือการตรวจจับการจับตัวเป็นก้อน ซึ่งต้องมีทาวเวอร์ในทุกเลเยอร์"
msgid "Prime all printing extruders"
msgstr "ใช้ชุดดันเส้นการพิมพ์ทั้งหมด"
@@ -17854,7 +19483,7 @@ msgstr ""
# AI Translated
msgid "Apply cyclic order to first layer"
-msgstr "ใช้ลำดับแบบวนรอบกับชั้นแรก"
+msgstr "ใช้ลำดับแบบวนรอบกับเลเยอร์แรก"
# AI Translated
msgid ""
@@ -17862,9 +19491,9 @@ msgid ""
"By default this is disabled, because the first layer is instead ordered for the best bed adhesion: filaments that print small, fragile first-layer features are printed last, so the following tool changes and travel moves are less likely to knock those weakly anchored parts loose. This first-layer order also honors a custom first layer filament sequence when one is set. The cyclic order's benefit (extra tool changes give each layer more time to cool) does not apply to the first layer, which is printed slowly and hot for adhesion.\n"
"Enable this only if you need the exact same tool sequence on every layer, including the first, at the cost of that adhesion optimization."
msgstr ""
-"ใช้ลำดับการเปลี่ยนเครื่องมือแบบวนรอบกับชั้นแรกด้วย\n"
-"โดยค่าเริ่มต้นจะปิดอยู่ เพราะชั้นแรกจะถูกจัดลำดับเพื่อการยึดเกาะฐานพิมพ์ที่ดีที่สุดแทน กล่าวคือ เส้นพลาสติกที่พิมพ์รายละเอียดเล็กและเปราะบางของชั้นแรกจะถูกพิมพ์เป็นลำดับสุดท้าย การเปลี่ยนเครื่องมือและการเดินหัวเปล่าที่ตามมาจึงมีโอกาสน้อยลงที่จะกระแทกชิ้นส่วนที่ยึดเกาะไม่แน่นเหล่านั้นให้หลุด ลำดับของชั้นแรกนี้ยังเคารพลำดับเส้นพลาสติกของชั้นแรกที่กำหนดเองด้วย หากมีการตั้งค่าไว้ ข้อดีของลำดับแบบวนรอบ (การเปลี่ยนเครื่องมือที่เพิ่มขึ้นทำให้แต่ละเลเยอร์มีเวลาเย็นตัวมากขึ้น) ไม่ใช้กับชั้นแรก ซึ่งพิมพ์อย่างช้าและร้อนเพื่อการยึดเกาะ\n"
-"เปิดใช้สิ่งนี้เฉพาะเมื่อคุณต้องการลำดับเครื่องมือที่เหมือนกันทุกประการในทุกเลเยอร์รวมถึงชั้นแรก โดยยอมแลกกับการปรับแต่งการยึดเกาะดังกล่าว"
+"ใช้ลำดับการเปลี่ยนเครื่องมือแบบวนรอบกับเลเยอร์แรกด้วย\n"
+"โดยค่าเริ่มต้นจะปิดอยู่ เพราะเลเยอร์แรกจะถูกจัดลำดับเพื่อการยึดเกาะฐานพิมพ์ที่ดีที่สุดแทน กล่าวคือ เส้นพลาสติกที่พิมพ์รายละเอียดเล็กและเปราะบางของเลเยอร์แรกจะถูกพิมพ์เป็นลำดับสุดท้าย การเปลี่ยนเครื่องมือและการเดินหัวเปล่าที่ตามมาจึงมีโอกาสน้อยลงที่จะกระแทกชิ้นส่วนที่ยึดเกาะไม่แน่นเหล่านั้นให้หลุด ลำดับของเลเยอร์แรกนี้ยังเคารพลำดับเส้นพลาสติกของเลเยอร์แรกที่กำหนดเองด้วย หากมีการตั้งค่าไว้ ข้อดีของลำดับแบบวนรอบ (การเปลี่ยนเครื่องมือที่เพิ่มขึ้นทำให้แต่ละเลเยอร์มีเวลาเย็นตัวมากขึ้น) ไม่ใช้กับเลเยอร์แรก ซึ่งพิมพ์อย่างช้าและร้อนเพื่อการยึดเกาะ\n"
+"เปิดใช้สิ่งนี้เฉพาะเมื่อคุณต้องการลำดับเครื่องมือที่เหมือนกันทุกประการในทุกเลเยอร์รวมถึงเลเยอร์แรก โดยยอมแลกกับการปรับแต่งการยึดเกาะดังกล่าว"
msgid "Slice gap closing radius"
msgstr "รัศมีการปิดช่องว่างของ Slice"
@@ -17920,11 +19549,13 @@ msgstr "ส่วนรองรับ/วัตถุ ระยะ XY"
msgid "This controls the XY separation between an object and its support."
msgstr "การแยก XY ระหว่างวัตถุและส่วนรองรับ"
+# AI Translated
msgid "Support/object first layer gap"
-msgstr "ส่วนรองรับ/วัตถุช่องว่างชั้นแรก"
+msgstr "ส่วนรองรับ/วัตถุช่องว่างเลเยอร์แรก"
+# AI Translated
msgid "XY separation between an object and its support at the first layer."
-msgstr "การแยก XY ระหว่างวัตถุและส่วนรองรับที่ชั้นแรก"
+msgstr "การแยก XY ระหว่างวัตถุและส่วนรองรับที่เลเยอร์แรก"
msgid "Pattern angle"
msgstr "มุมรูปแบบ"
@@ -17932,11 +19563,13 @@ msgstr "มุมรูปแบบ"
msgid "Use this setting to rotate the support pattern on the horizontal plane."
msgstr "ใช้การตั้งค่านี้เพื่อหมุนรูปแบบการรองรับบนระนาบแนวนอน"
+# AI Translated
msgid "On build plate only"
-msgstr "บนแผ่นฐานเท่านั้น"
+msgstr "บนฐานพิมพ์เท่านั้น"
+# AI Translated
msgid "This setting only generates supports that begin on the build plate."
-msgstr "อย่าสร้างส่วนรองรับบนพื้นผิวของโมเดล เฉพาะบนฐานรองพิมพ์เท่านั้น"
+msgstr "อย่าสร้างส่วนรองรับบนพื้นผิวของโมเดล เฉพาะบนฐานพิมพ์เท่านั้น"
msgid "Support critical regions only"
msgstr "รองรับภูมิภาคที่สำคัญเท่านั้น"
@@ -17982,8 +19615,9 @@ msgstr "ความกว้างของเส้นรองรับ ห
msgid "Loop pattern interface"
msgstr "รูปแบบการใช้อินเทอร์เฟซแบบวนซ้ำ"
+# AI Translated
msgid "This covers the top contact layer of the supports with loops. It is disabled by default."
-msgstr "ครอบคลุมชั้นสัมผัสด้านบนของส่วนรองรับด้วยลูป ปิดใช้งานตามค่าเริ่มต้น"
+msgstr "ครอบคลุมเลเยอร์สัมผัสด้านบนของส่วนรองรับด้วยลูป ปิดใช้งานตามค่าเริ่มต้น"
msgid "Support/raft interface"
msgstr "ส่วนต่อประสานส่วนรองรับ / ฐานรองชิ้นงาน"
@@ -17996,8 +19630,9 @@ msgstr "เส้นพลาสติกสำหรับพิมพ์ส่
msgid "Top interface layers"
msgstr "เลเยอร์อินเทอร์เฟซบนสุด"
+# AI Translated
msgid "This is the number of top interface layers."
-msgstr "จำนวนชั้นอินเทอร์เฟซด้านบน"
+msgstr "จำนวนเลเยอร์อินเทอร์เฟซด้านบน"
msgid "Bottom interface layers"
msgstr "เลเยอร์อินเทอร์เฟซด้านล่าง"
@@ -18098,8 +19733,9 @@ msgstr "ต้นไม้แข็งแกร่ง"
msgid "Tree Hybrid"
msgstr "ต้นไม้ไฮบริด"
+# AI Translated
msgid "Independent support layer height"
-msgstr "ความสูงของชั้นรองรับอิสระ"
+msgstr "ความสูงของเลเยอร์รองรับอิสระ"
msgid "Support layer uses layer height independent with object layer. This is to support customizing Z-gap and save print time. This option will be invalid when the prime tower is enabled."
msgstr "เลเยอร์ส่วนรองรับใช้ความสูงของเลเยอร์ที่เป็นอิสระจากเลเยอร์วัตถุ เพื่อรองรับการปรับแต่ง Z-gap และประหยัดเวลาในการพิมพ์ ตัวเลือกนี้จะไม่ถูกต้องเมื่อเปิดใช้งาน Prime Tower"
@@ -18120,6 +19756,167 @@ msgstr "การทับซ้อนกันของเกณฑ์"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "หากมุมเกณฑ์เป็นศูนย์ ระบบจะสร้างส่วนรองรับสำหรับส่วนยื่นที่มีการทับซ้อนกันต่ำกว่าเกณฑ์ ยิ่งค่านี้น้อยลง ระยะยื่นที่สามารถพิมพ์โดยไม่ต้องรองรับก็จะยิ่งชันมากขึ้น"
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "การเอียงฐานพิมพ์ X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "มุมเอียงของฐานพิมพ์ตามแกน X ค่าบวกจะเอียงฐานพิมพ์ให้ด้าน +X สูงขึ้น ทำให้แรงโน้มถ่วงเลื่อนไปทาง -X และเพิ่มส่วนยื่นทางด้าน +X ค่าลบจะเอียงให้ด้าน -X สูงขึ้น ตั้งค่าเป็น 0 หากไม่ต้องการเอียงแกน X ในโหมดเครื่องพิมพ์สายพาน ค่านี้จะซิงค์กับมุมของสายพานโดยอัตโนมัติ"
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "การเอียงฐานพิมพ์ Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "มุมเอียงของฐานพิมพ์ตามแกน Y ค่าบวกจะเอียงฐานพิมพ์ให้ด้าน +Y สูงขึ้น ทำให้แรงโน้มถ่วงเลื่อนไปทาง -Y และเพิ่มส่วนยื่นทางด้าน +Y ค่าลบจะเอียงให้ด้าน -Y สูงขึ้น ตั้งค่าเป็น 0 หากไม่ต้องการเอียงแกน Y"
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "เปิดใช้งานการพิมพ์บนสายพาน"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "เปิดใช้งานโหมดเครื่องพิมพ์สายพาน เครื่องพิมพ์สายพานใช้สายพานลำเลียงเป็นพื้นผิวพิมพ์ ซึ่งเอียงเป็นมุม (โดยทั่วไป 45 องศา) สไลเซอร์จะหมุนระนาบการสไลซ์และแปลงพิกัด G-code ให้เหมาะกับพื้นผิวพิมพ์ที่เอียง"
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "แกน Y ไม่จำกัด"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "เปิดใช้งานแกน Y ไม่จำกัดสำหรับเครื่องพิมพ์สายพาน เมื่อเปิดใช้งาน ขีดจำกัดปริมาตรการพิมพ์ (Build volume) ในแกน Y จะถูกยกเลิก ทำให้พิมพ์วัตถุที่มีความยาวเท่าใดก็ได้ตามทิศทางของสายพาน"
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "แกนเอียงสายพาน"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "แกนที่ใช้หมุนเมชก่อนการสไลซ์ นี่คือการเอียงของเครื่องพิมพ์สายพาน: การหมุนแบบไอโซเมตริก (ไม่บิดเบี้ยว) ซึ่งยังใช้กำหนดการแสดงผลฐานพิมพ์และการเอียงแรงโน้มถ่วงของส่วนรองรับ และการแปลงกลับของ G-code จะย้อนการหมุนนี้ก่อนการเฉือน/ปรับสเกลและการแมปแกนของระบบพิกัดเครื่อง X คือการเอียงแกนทรีที่ใช้ทั่วไป (สายพานเคลื่อนที่ตามแนว Y)"
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "มุมเอียงสายพาน"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "มุมเอียงของพื้นผิวสายพาน หน่วยเป็นองศา เครื่องพิมพ์สายพานส่วนใหญ่ใช้ 45° ค่าบวกจะหมุนทวนเข็มนาฬิกาเมื่อมองลงตามแกนเอียงด้านบวก ขนาดของค่านี้ยังเป็นมุมเอียงจริงของสายพานที่ใช้สำหรับการแสดงผลฐานพิมพ์และแรงโน้มถ่วงของส่วนรองรับ"
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "แยกการเอียงของระบบพิกัดเครื่อง"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "การแทนที่สำหรับผู้เชี่ยวชาญ: ตั้งมุมเอียงของระบบพิกัดเครื่อง (การเฉือน/ปรับสเกล G-code) แยกจากมุมหมุนก่อนสไลซ์ เมื่อปิดใช้งาน การแปลงระบบพิกัดเครื่องจะคำนวณจากมุมเอียงสายพาน ดังนั้นมุมเดียวจะควบคุมทั้งสองขั้นตอน เปิดใช้งานเฉพาะเพื่อชดเชยเครื่องที่การเอียงจริงของแกนทรีต่างจากการหมุนสำหรับสไลซ์"
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "มุมเอียงของระบบพิกัดเครื่อง"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "มุมเอียง (องศา) ที่ใช้คำนวณการเฉือน (cot) และสเกล (1/|sin|) ของระบบพิกัดเครื่องที่ใช้กับ G-code ใช้เฉพาะเมื่อเปิดใช้งาน 'แยกการเอียงของระบบพิกัดเครื่อง' มิฉะนั้นจะใช้มุมเอียงสายพาน"
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "X กลับทิศ"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Y กลับทิศ"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Z กลับทิศ"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "การแมปแกน X ของ G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "แกนการสไลซ์ใดที่จับคู่กับแกน X ของเครื่องในเอาต์พุต G-code ใช้หลังการสไลซ์ ระหว่างการสร้าง G-code"
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "การแมปแกน Y ของ G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "แกนการสไลซ์ใดที่จับคู่กับแกน Y ของเครื่องในเอาต์พุต G-code ใช้หลังการสไลซ์ ระหว่างการสร้าง G-code"
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "การแมปแกน Z ของ G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "แกนการสไลซ์ใดที่จับคู่กับแกน Z ของเครื่องในเอาต์พุต G-code ใช้หลังการสไลซ์ ระหว่างการสร้าง G-code"
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "ออฟเซ็ต Z ของพื้นส่วนรองรับ"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "เลื่อนพื้นสายพานที่คำนวณได้ขึ้นหรือลง (มม.) ค่าลบจะลดระดับพื้นลง ทำให้ส่วนรองรับถูกคงไว้มากขึ้น ใช้ค่านี้เพื่อวิเคราะห์ปัญหาของสูตรคำนวณพื้นสายพาน"
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "เปิดใช้งานหอไล่เส้นบนสายพาน"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "ทางเลือกแทน Wipe Tower / Prime Tower สำหรับเครื่องพิมพ์สายพาน เมื่อเปิดใช้งานบนเครื่องพิมพ์สายพาน ปริซึมไล่เส้นจะถูกสร้างขึ้นโดยอัตโนมัติข้างชิ้นส่วนที่พิมพ์ และการไล่เส้นเมื่อเปลี่ยนเส้นพลาสติกจะถูกส่งไปที่ปริซึมนี้ (ไม่สามารถใช้ Wipe Tower แบบดั้งเดิมบนเครื่องพิมพ์สายพานได้ เนื่องจาก G-code ของมันข้ามการแปลงของสายพาน) ใช้ได้เฉพาะบนเครื่องพิมพ์สายพานเท่านั้น"
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "ความกว้างหอไล่เส้นบนสายพาน"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "ความกว้าง (แกน X ของเครื่อง ขวางสายพาน) ของปริซึมไล่เส้นที่สร้างขึ้นโดยอัตโนมัติบนเครื่องพิมพ์สายพานเมื่อเปิดใช้งานหอไล่เส้นบนสายพานและใช้เส้นพลาสติกหลายเส้น การไล่เส้นเมื่อเปลี่ยนเส้นพลาสติกจะถูกส่งไปยังเส้นที่อัดออกของปริซึมนี้แทน Wipe Tower แบบดั้งเดิม ความสูงของปริซึมคำนวณโดยอัตโนมัติจากปริมาณการไล่เส้นต่อเลเยอร์ในกรณีที่มากที่สุด: ปริซึมที่กว้างขึ้นจะเตี้ยลง"
+
msgid "Tree support branch angle"
msgstr "มุมกิ่งกิ่งรองรับต้นไม้"
@@ -18223,6 +20020,7 @@ msgstr ""
"\n"
"ตัวเลือกนี้ขึ้นอยู่กับเฟิร์มแวร์ที่รองรับคำสั่ง M191 และ M141 ไม่ว่าจะผ่านทางมาโครหรือแบบเนทิฟ และโดยปกติจะใช้เมื่อมีการติดตั้งเครื่องทำความร้อนในห้องแบบแอคทีฟ"
+# AI Translated
msgid ""
"For high-temperature materials like ABS, ASA, PC, and PA, a higher chamber temperature can help suppress or reduce warping and potentially lead to higher interlayer bonding strength. However, at the same time, a higher chamber temperature will reduce the efficiency of air filtration for ABS and ASA.\n"
"\n"
@@ -18230,7 +20028,7 @@ msgid ""
"\n"
"If enabled, this parameter also sets a G-code variable named chamber_temperature, which can be used to pass the desired chamber temperature to your print start macro, or a heat soak macro like this: PRINT_START (other variables) CHAMBER_TEMP=[chamber_temperature]. This may be useful if your printer does not support M141/M191 commands, or if you desire to handle heat soaking in the print start macro if no active chamber heater is installed."
msgstr ""
-"สำหรับวัสดุที่มีอุณหภูมิสูง เช่น ABS, ASA, PC และ PA อุณหภูมิห้องที่สูงขึ้นสามารถช่วยลดหรือลดการบิดงอ และอาจนำไปสู่ความแข็งแรงการยึดเกาะระหว่างชั้นที่สูงขึ้น อย่างไรก็ตาม ในเวลาเดียวกัน อุณหภูมิห้องที่สูงขึ้นจะลดประสิทธิภาพการกรองอากาศสำหรับ ABS และ ASA\n"
+"สำหรับวัสดุที่มีอุณหภูมิสูง เช่น ABS, ASA, PC และ PA อุณหภูมิห้องที่สูงขึ้นสามารถช่วยลดหรือลดการบิดงอ และอาจนำไปสู่ความแข็งแรงการยึดเกาะระหว่างเลเยอร์ที่สูงขึ้น อย่างไรก็ตาม ในเวลาเดียวกัน อุณหภูมิห้องที่สูงขึ้นจะลดประสิทธิภาพการกรองอากาศสำหรับ ABS และ ASA\n"
"\n"
"สำหรับ PLA, PETG, TPU, PVA และวัสดุที่มีอุณหภูมิต่ำอื่นๆ ควรปิดใช้งานตัวเลือกนี้ (ตั้งค่าเป็น 0) เนื่องจากอุณหภูมิห้องควรต่ำเพื่อหลีกเลี่ยงการอุดตันของชุดดันเส้นที่เกิดจากวัสดุอ่อนตัวเมื่อความร้อนแตก\n"
"\n"
@@ -18254,8 +20052,9 @@ msgstr ""
msgid "Chamber minimal temperature"
msgstr "อุณหภูมิห้องพิมพ์ต่ำสุด"
+# AI Translated
msgid "Nozzle temperature after the first layer"
-msgstr "อุณหภูมิหัวฉีดสำหรับชั้นหลังจากอันแรก"
+msgstr "อุณหภูมิหัวฉีดสำหรับเลเยอร์หลังจากอันแรก"
msgid "Detect thin walls"
msgstr "ตรวจจับผนังบาง"
@@ -18286,14 +20085,16 @@ msgstr "ความเร็วของไส้ในพื้นผิวด
msgid "Top shell layers"
msgstr "เลเยอร์ผนังด้านบน"
+# AI Translated
msgid "This is the number of solid layers of top shell, including the top surface layer. When the thickness calculated by this value is thinner than the top shell thickness, the top shell layers will be increased"
-msgstr "นี่คือจำนวนชั้นทึบของเปลือกด้านบน รวมถึงชั้นผิวด้านบนด้วย เมื่อความหนาที่คำนวณโดยค่านี้บางกว่าความหนาของเปลือกด้านบน ชั้นเปลือกด้านบนจะเพิ่มขึ้น"
+msgstr "นี่คือจำนวนเลเยอร์ทึบของผนังด้านบน รวมถึงเลเยอร์ผิวด้านบนด้วย เมื่อความหนาที่คำนวณโดยค่านี้บางกว่าความหนาของผนังด้านบน เลเยอร์ผนังด้านบนจะเพิ่มขึ้น"
msgid "Top shell thickness"
msgstr "ความหนาผนังด้านบน"
+# AI Translated
msgid "The number of top solid layers is increased when slicing if the thickness calculated by top shell layers is thinner than this value. This can avoid having too thin a shell when layer height is small. 0 means that this setting is disabled and thickness of top shell is determined simply by the number of top shell layers."
-msgstr "จำนวนชั้นทึบด้านบนจะเพิ่มขึ้นเมื่อสไลซ์หากความหนาที่คำนวณโดยชั้นเปลือกด้านบนบางกว่าค่านี้ วิธีนี้สามารถหลีกเลี่ยงไม่ให้เปลือกบางเกินไปเมื่อชั้นมีความสูงน้อย 0 หมายความว่าการตั้งค่านี้ถูกปิดใช้งาน และความหนาของเปลือกด้านบนถูกกำหนดโดยชั้นเปลือกด้านบนอย่างแน่นอน"
+msgstr "จำนวนเลเยอร์ทึบด้านบนจะเพิ่มขึ้นเมื่อสไลซ์หากความหนาที่คำนวณโดยเลเยอร์ผนังด้านบนบางกว่าค่านี้ วิธีนี้สามารถหลีกเลี่ยงไม่ให้ผนังบางเกินไปเมื่อความสูงเลเยอร์น้อย 0 หมายความว่าการตั้งค่านี้ถูกปิดใช้งาน และความหนาของผนังด้านบนถูกกำหนดโดยเลเยอร์ผนังด้านบนอย่างแน่นอน"
# AI Translated
msgid "Separated infills"
@@ -18303,13 +20104,11 @@ msgstr "ไส้ในแบบแยก"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
"จัดกึ่งกลางไส้ในภายในของแต่ละชิ้นส่วนบนตัวมันเอง เสมือนว่าถูกสไลซ์แยกเดี่ยว แทนที่จะอิงกับชุดประกอบทั้งหมด ชิ้นส่วนที่สัมผัสหรือซ้อนทับกันจะถือเป็นวัตถุเดียวและใช้จุดศูนย์กลางร่วมกัน ส่วนชิ้นส่วนแยก (หรือวัตถุ 3D ที่แยกจากกัน) จะได้จุดศูนย์กลางของตัวเอง\n"
"มีประโยชน์เมื่อชุดประกอบรวมหลายวัตถุที่แต่ละชิ้นควรคงไส้ในที่จัดกึ่งกลางตัวเองอย่างสม่ำเสมอ\n"
-"ส่งผลต่อลวดลายเส้นและตาราง และไส้ในแบบเทมเพลตหมุน\n"
-"ลวดลายที่ล็อกกับพิกัดสากล (Gyroid, Honeycomb, TPMS, ...) จะไม่ได้รับผลกระทบ"
+"ลูกบาศก์แบบปรับได้ และ รองรับคิวบิก จะจัดกึ่งกลางแต่ละชิ้นส่วนบนตัวมันเองเสมอ ส่วนไส้ในแบบฟ้าผ่าจะสร้างขึ้นสำหรับทั้งวัตถุและไม่ได้รับผลกระทบ"
# AI Translated
msgid "Center surface pattern on"
@@ -18345,8 +20144,9 @@ msgstr "ความเร็วที่ใช้ในการเคลื่
msgid "Wipe while retracting"
msgstr "เช็ดขณะดึงกลับ"
+# AI Translated
msgid "This moves the nozzle along the last extrusion path when retracting to clean any leaked material on the nozzle. This can minimize blobs when printing a new part after traveling."
-msgstr "เลื่อนหัวฉีดไปตามเส้นทางการอัดขึ้นรูปสุดท้ายเมื่อถอยกลับเพื่อทำความสะอาดวัสดุที่รั่วไหลบนหัวฉีด วิธีนี้จะช่วยลดรอยหยดเมื่อพิมพ์ชิ้นส่วนใหม่หลังการเดินทาง"
+msgstr "เลื่อนหัวฉีดไปตามเส้นทางการอัดขึ้นรูปสุดท้ายเมื่อถอยกลับเพื่อทำความสะอาดวัสดุที่รั่วไหลบนหัวฉีด วิธีนี้จะช่วยลดรอยหยดเมื่อพิมพ์ชิ้นส่วนใหม่หลังการเดินหัวเปล่า"
msgid "Wipe distance"
msgstr "ระยะเช็ดหัวฉีด"
@@ -18441,26 +20241,27 @@ msgstr "มุมที่ปลายกรวยที่ใช้เพื่
msgid "Maximum wipe tower print speed"
msgstr "ความเร็วการพิมพ์ Wipe Tower สูงสุด"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
-"ความเร็วในการพิมพ์สูงสุดเมื่อทำการล้างข้อมูลใน Wipe Tower และการพิมพ์ Wipe Tower บางเลเยอร์ เมื่อทำการไล่ล้าง หากความเร็วไส้ในแบบโปร่งหรือความเร็วที่คำนวณจากความเร็วปริมาตรสูงสุดของเส้นพลาสติกต่ำกว่า ความเร็วต่ำสุดจะถูกนำมาใช้แทน\n"
+"ความเร็วในการพิมพ์สูงสุดเมื่อไล่เส้นใน Wipe Tower และเมื่อพิมพ์เลเยอร์กระจัดกระจายของ Wipe Tower เมื่อไล่เส้น หากความเร็วไส้ในแบบโปร่งหรือความเร็วที่คำนวณจากความเร็วปริมาตรสูงสุดของเส้นพลาสติกต่ำกว่า ความเร็วต่ำสุดจะถูกนำมาใช้แทน\n"
"\n"
-"เมื่อพิมพ์ชั้นเบาบาง หากความเร็วเส้นรอบวงภายในหรือความเร็วที่คำนวณจากความเร็วปริมาตรสูงสุดของเส้นพลาสติกต่ำกว่า ความเร็วต่ำสุดจะถูกนำมาใช้แทน\n"
+"เมื่อพิมพ์เลเยอร์กระจัดกระจาย หากความเร็วไส้ในแบบโปร่งหรือความเร็วที่คำนวณจากความเร็วปริมาตรสูงสุดของเส้นพลาสติกต่ำกว่า ความเร็วต่ำสุดจะถูกนำมาใช้แทน\n"
"\n"
"การเพิ่มความเร็วนี้อาจส่งผลต่อเสถียรภาพของทาวเวอร์ รวมทั้งเพิ่มแรงที่หัวฉีดชนกับหยดใดๆ ที่อาจก่อตัวบน Wipe Tower\n"
"\n"
-"ก่อนที่จะเพิ่มพารามิเตอร์นี้เกินกว่าค่าเริ่มต้นที่ 90 มม./วินาที ตรวจสอบให้แน่ใจว่าเครื่องพิมพ์ของคุณสามารถเชื่อมต่อที่ความเร็วที่เพิ่มขึ้นได้อย่างน่าเชื่อถือ และจะมีการควบคุมอย่างดีเมื่อเปลี่ยนเครื่องมือ\n"
+"ก่อนที่จะเพิ่มพารามิเตอร์นี้เกินกว่าค่าเริ่มต้นที่ 90 mm/s ตรวจสอบให้แน่ใจว่าเครื่องพิมพ์ของคุณพิมพ์สะพานที่ความเร็วที่เพิ่มขึ้นได้อย่างน่าเชื่อถือ และการป้องกันน้ำซึมขณะเปลี่ยนเครื่องมือทำงานได้ดี\n"
"\n"
-"สำหรับปริมณฑลภายนอกของ Wipe Tower ความเร็วของปริมณฑลภายในจะถูกใช้โดยไม่คำนึงถึงการตั้งค่านี้"
+"สำหรับเส้นรอบวงภายนอกของ Wipe Tower จะใช้ความเร็วเส้นรอบวงภายใน โดยถูกจำกัดด้วยการตั้งค่านี้ด้วย"
msgid "Wall type"
msgstr "ชนิดติดผนัง"
@@ -18468,14 +20269,14 @@ msgstr "ชนิดติดผนัง"
# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"Wipe Tower ชนิดผนังด้านนอก\n"
-"1. สี่เหลี่ยมผืนผ้า: ประเภทผนังเริ่มต้น ซึ่งเป็นสี่เหลี่ยมผืนผ้าที่มีความกว้างและความสูงคงที่\n"
-"2. กรวย: กรวยที่มีมุมมนอยู่ด้านล่างเพื่อช่วยรักษาเสถียรภาพของ Wipe Tower\n"
-"3. ซี่โครง: เพิ่มสี่ซี่โครงเข้ากับผนัง Wipe Tower เพื่อเพิ่มความมั่นคง"
+"1. สี่เหลี่ยมผืนผ้า: สี่เหลี่ยมผืนผ้าที่มีความกว้างและความสูงคงที่\n"
+"2. ทรงกรวย: ทรงกรวยที่ด้านล่างมีการลบมุมมนเพื่อช่วยรักษาเสถียรภาพของ Wipe Tower\n"
+"3. ซี่โครง: ประเภทผนังเริ่มต้น ซึ่งเพิ่มสี่ซี่โครงเข้ากับผนัง Wipe Tower เพื่อเพิ่มความมั่นคง"
msgid "Rectangle"
msgstr "สี่เหลี่ยมผืนผ้า"
@@ -18527,8 +20328,9 @@ msgstr "เปิดใช้งานพฤติกรรมอินเทอ
msgid "Cool down from interface boost during prime tower"
msgstr "การระบายความร้อนที่เลเยอร์อินเทอร์เฟซของ Prime Tower"
+# AI Translated
msgid "When interface-layer temperature boost is active, set the nozzle back to print temperature at the start of the prime tower so it cools down during the tower."
-msgstr "เมื่อเปิดใช้งานการเพิ่มอุณหภูมิของชั้นอินเทอร์เฟซ ให้ตั้งค่าหัวฉีดกลับไปเป็นอุณหภูมิการพิมพ์ที่จุดเริ่มต้นของ Prime Tower เพื่อให้เย็นลงระหว่าง Prime Tower"
+msgstr "เมื่อเปิดใช้งานการเพิ่มอุณหภูมิของเลเยอร์อินเทอร์เฟซ ให้ตั้งค่าหัวฉีดกลับไปเป็นอุณหภูมิการพิมพ์ที่จุดเริ่มต้นของ Prime Tower เพื่อให้เย็นลงระหว่าง Prime Tower"
msgid "Infill gap"
msgstr "การเติมช่องว่าง"
@@ -18545,6 +20347,14 @@ msgstr "การล้างข้อมูลหลังจากเปลี
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "วัตถุนี้จะใช้ในการล้างหัวฉีดหลังจากเปลี่ยนเส้นพลาสติกเพื่อประหยัดเส้นพลาสติกและลดเวลาในการพิมพ์ สีของวัตถุจะผสมกัน มันจะไม่มีผลเว้นแต่จะเปิดใช้งาน Prime Tower"
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "วัตถุหอไล่เส้นบนสายพาน"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "ทำเครื่องหมายปริซึมไล่เส้นบนสายพานที่สร้างขึ้นอัตโนมัติ ระบบจัดการโดยอัตโนมัติ อย่าตั้งค่าด้วยตนเอง"
+
msgid "Maximal bridging distance"
msgstr "ระยะเชื่อมต่อสูงสุด"
@@ -18560,8 +20370,9 @@ msgstr "ระยะห่างของเส้นไล่ล้างบน
msgid "Extra flow for purging"
msgstr "กระแสพิเศษสำหรับการล้าง"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "การไหลพิเศษที่ใช้สำหรับท่อไล่ล้างบน Wipe Tower ซึ่งจะทำให้เส้นการล้างหนาหรือแคบกว่าปกติ ระยะห่างจะถูกปรับโดยอัตโนมัติ"
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "การไหลพิเศษที่ใช้สำหรับเส้นไล่ล้างบน Wipe Tower ซึ่งจะทำให้เส้นไล่ล้างหนากว่าปกติ ระยะห่างจะถูกปรับโดยอัตโนมัติ"
msgid "Idle temperature"
msgstr "อุณหภูมิว่าง"
@@ -18584,11 +20395,12 @@ msgstr "รูปทรงของวัตถุจะขยายหรือ
msgid "Convert holes to polyholes"
msgstr "แปลงรูเป็นโพลีโฮล"
+# AI Translated
msgid ""
"Search for almost-circular holes that span more than one layer and convert the geometry to polyholes. Use the nozzle size and the (biggest) diameter to compute the polyhole.\n"
"See http://hydraraptor.blogspot.com/2011/02/polyholes.html"
msgstr ""
-"ค้นหารูเกือบเป็นวงกลมที่ขยายมากกว่าหนึ่งชั้น และแปลงรูปทรงเป็นโพลีโฮล ใช้ขนาดหัวฉีดและเส้นผ่านศูนย์กลาง (ใหญ่ที่สุด) เพื่อคำนวณรูโพลี\n"
+"ค้นหารูเกือบเป็นวงกลมที่ขยายมากกว่าหนึ่งเลเยอร์ และแปลงรูปทรงเป็นโพลีโฮล ใช้ขนาดหัวฉีดและเส้นผ่านศูนย์กลาง (ใหญ่ที่สุด) เพื่อคำนวณรูโพลี\n"
"ดูhttp://hydraraptor.blogspot.com/2011/02/polyholes.html"
msgid "Polyhole detection margin"
@@ -18607,8 +20419,9 @@ msgstr ""
msgid "Polyhole twist"
msgstr "บิดรูหลายรู"
+# AI Translated
msgid "Rotate the polyhole every layer."
-msgstr "หมุนโพลีโฮลทุกชั้น"
+msgstr "หมุนโพลีโฮลทุกเลเยอร์"
# AI Translated
msgid "Maximum Polyhole edge count"
@@ -18655,8 +20468,9 @@ msgstr "เมื่อเปลี่ยนระหว่างผนังจ
msgid "Wall transitioning filter margin"
msgstr "ขอบตัวกรองการเปลี่ยนผนัง"
+# AI Translated
msgid "Prevent transitioning back and forth between one extra wall and one less. This margin extends the range of extrusion widths which follow to [Minimum wall width - margin, 2 * Minimum wall width + margin]. Increasing this margin reduces the number of transitions, which reduces the number of extrusion starts/stops and travel time. However, large extrusion width variation can lead to under- or overextrusion problems. It's expressed as a percentage over nozzle diameter."
-msgstr "ป้องกันการเปลี่ยนไปมาระหว่างผนังพิเศษหนึ่งอันและน้อยกว่าหนึ่งอัน ขอบนี้จะขยายช่วงความกว้างของการอัดขึ้นรูปซึ่งเป็นไปตาม [ความกว้างของผนังขั้นต่ำ - ขอบ 2 * ความกว้างของผนังขั้นต่ำ + ขอบ] การเพิ่มระยะขอบนี้จะลดจำนวนการเปลี่ยน ซึ่งจะลดจำนวนการเริ่ม/หยุดการอัดขึ้นรูปและเวลาการเดินทาง อย่างไรก็ตาม ความกว้างของการอัดขึ้นรูปที่หลากหลายอาจทำให้เกิดปัญหาการอัดขึ้นรูปน้อยเกินไปหรือมากเกินไปได้ โดยแสดงเป็นเปอร์เซ็นต์ของเส้นผ่านศูนย์กลางของหัวฉีด"
+msgstr "ป้องกันการเปลี่ยนไปมาระหว่างผนังพิเศษหนึ่งอันและน้อยกว่าหนึ่งอัน ขอบนี้จะขยายช่วงความกว้างของการอัดขึ้นรูปซึ่งเป็นไปตาม [ความกว้างของผนังขั้นต่ำ - ขอบ 2 * ความกว้างของผนังขั้นต่ำ + ขอบ] การเพิ่มระยะขอบนี้จะลดจำนวนการเปลี่ยน ซึ่งจะลดจำนวนการเริ่ม/หยุดการอัดขึ้นรูปและเวลาการเดินหัวเปล่า อย่างไรก็ตาม ความกว้างของการอัดขึ้นรูปที่หลากหลายอาจทำให้เกิดปัญหาการอัดขึ้นรูปน้อยเกินไปหรือมากเกินไปได้ โดยแสดงเป็นเปอร์เซ็นต์ของเส้นผ่านศูนย์กลางของหัวฉีด"
msgid "Wall transitioning threshold angle"
msgstr "มุมการเปลี่ยนผ่านของผนัง"
@@ -18679,14 +20493,15 @@ msgstr "ความหนาขั้นต่ำของคุณสมบั
msgid "Minimum wall length"
msgstr "ความยาวผนังขั้นต่ำ"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"ปรับค่านี้เพื่อป้องกันการพิมพ์ผนังที่สั้นและไม่ปิด ซึ่งอาจเพิ่มเวลาในการพิมพ์ ค่าที่สูงกว่าจะลบผนังที่ยาวขึ้นเรื่อยๆ\n"
+"ปรับค่านี้เพื่อป้องกันการพิมพ์ผนังที่สั้นและไม่ปิด ซึ่งอาจเพิ่มเวลาในการพิมพ์ ค่านี้เป็นตัวคูณของความกว้างผนัง ค่าที่สูงขึ้นจะลบผนังได้มากขึ้นและยาวขึ้น\n"
"\n"
-"หมายเหตุ: พื้นผิวด้านล่างและด้านบนจะไม่ได้รับผลกระทบจากค่านี้ เพื่อป้องกันช่องว่างการมองเห็นด้านนอกของแบบจำลอง ปรับ 'เกณฑ์ผนังด้านเดียว' ในการตั้งค่าขั้นสูงด้านล่างเพื่อปรับความไวของสิ่งที่ถือเป็นพื้นผิวด้านบน 'เกณฑ์ผนังด้านเดียว' จะมองเห็นได้ก็ต่อเมื่อการตั้งค่านี้ตั้งไว้สูงกว่าค่าเริ่มต้นที่ 0.5 หรือหากเปิดใช้งานพื้นผิวด้านบนแบบผนังเดียว"
+"หมายเหตุ: พื้นผิวด้านล่างและด้านบนจะไม่ได้รับผลกระทบจากค่านี้ เพื่อป้องกันช่องว่างที่มองเห็นได้ด้านนอกของโมเดล ปรับ 'เกณฑ์ผนังด้านหนึ่ง' ในการตั้งค่า 'ผนังและพื้นผิว' ด้านล่างเพื่อปรับความไวของสิ่งที่ถือเป็นพื้นผิวด้านบน 'เกณฑ์ผนังด้านหนึ่ง' จะแสดงก็ต่อเมื่อการตั้งค่านี้สูงกว่าค่าเริ่มต้นที่ 0.5 หรือเมื่อเปิดใช้งาน 'มีเพียงผนังเดียวบนพื้นผิวด้านบน'"
msgid "Maximum wall resolution"
msgstr "ความละเอียดผนังสูงสุด"
@@ -18697,14 +20512,17 @@ msgstr "ค่านี้กำหนดความยาวส่วนขอ
msgid "Maximum wall deviation"
msgstr "ส่วนเบี่ยงเบนของผนังสูงสุด"
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "ค่าเบี่ยงเบนสูงสุดที่อนุญาตเมื่อลดความละเอียดสำหรับการตั้งค่า 'ความละเอียดสูงสุดของผนัง' หากเพิ่มค่านี้ การพิมพ์จะแม่นยำน้อยลง แต่ G-Code จะน้อยลง 'ค่าเบี่ยงเบนของผนังสูงสุด' จะจำกัด 'ความละเอียดของผนังสูงสุด' ดังนั้นหากทั้งสองข้อขัดแย้งกัน 'ค่าเบี่ยงเบนของผนังสูงสุด' จะมีความสำคัญเหนือกว่า"
+# AI Translated
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "ค่าเบี่ยงเบนสูงสุดที่อนุญาตเมื่อลดความละเอียดสำหรับการตั้งค่า 'ความละเอียดสูงสุดของผนัง' หากเพิ่มค่านี้ การพิมพ์จะแม่นยำน้อยลง แต่ G-code จะเล็กลง 'ค่าเบี่ยงเบนของผนังสูงสุด' จะจำกัด 'ความละเอียดของผนังสูงสุด' ดังนั้นหากทั้งสองข้อขัดแย้งกัน 'ค่าเบี่ยงเบนของผนังสูงสุด' จะมีความสำคัญเหนือกว่า"
+# AI Translated
msgid "First layer minimum wall width"
-msgstr "ความกว้างขั้นต่ำของผนังชั้นแรก"
+msgstr "ความกว้างขั้นต่ำของผนังเลเยอร์แรก"
+# AI Translated
msgid "The minimum wall width that should be used for the first layer is recommended to be set to the same size as the nozzle. This adjustment is expected to enhance adhesion."
-msgstr "แนะนำให้กำหนดความกว้างของผนังขั้นต่ำที่ควรใช้สำหรับชั้นแรกให้เป็นขนาดเดียวกับหัวฉีด การปรับนี้คาดว่าจะช่วยเพิ่มการยึดเกาะ"
+msgstr "แนะนำให้กำหนดความกว้างของผนังขั้นต่ำที่ควรใช้สำหรับเลเยอร์แรกให้เป็นขนาดเดียวกับหัวฉีด การปรับนี้คาดว่าจะช่วยเพิ่มการยึดเกาะ"
msgid "Minimum wall width"
msgstr "ความกว้างของผนังขั้นต่ำ"
@@ -18806,8 +20624,11 @@ msgstr "ความกว้างเส้นสะพานต้องไม
msgid "too large line width "
msgstr "ความกว้างของเส้นใหญ่เกินไป"
-msgid " not in range "
-msgstr "ไม่อยู่ในช่วง"
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% ไม่อยู่ในช่วง [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "ส่งออกโครงการเป็น 3MF"
@@ -18957,6 +20778,14 @@ msgstr "ตัวเลือกตะวันออก"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "ตัวเลือกการวางแนว: 0-ปิดการใช้งาน, 1-เปิดใช้งาน, อื่นๆ-อัตโนมัติ"
+# AI Translated
+msgid "Repair"
+msgstr "ซ่อม"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "ซ่อมเมชของโมเดลเหมือนที่ ซ่อมโมเดล ทำ: ปิดรูและรอยแตก จัดทิศทางให้หันออกด้านนอก และลบการตัดกันเอง"
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "มุมการหมุนรอบแกน Z มีหน่วยเป็นองศา"
@@ -19065,6 +20894,12 @@ msgstr "ไดเร็กทอรีเอาต์พุต"
msgid "This is the output directory for exported files."
msgstr "ไดเร็กทอรีเอาต์พุตสำหรับไฟล์ที่ส่งออก"
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "ระดับการแก้ไขข้อบกพร่อง"
@@ -19163,8 +20998,10 @@ msgstr "Z-hop ปัจจุบัน"
msgid "Contains Z-hop present at the beginning of the custom G-code block."
msgstr "มี Z-hop อยู่ที่จุดเริ่มต้นของบล็อก G-code ที่กำหนดเอง"
+# AI Translated
+# Needs human review: 'travels' is the toolhead's non-printing move made by the custom G-code; check that เดินหัวเปล่า reads right as a verb with the G-code as its subject.
msgid "Position of the extruder at the beginning of the custom G-code block. If the custom G-code travels somewhere else, it should write to this variable so OrcaSlicer knows where it travels from when it gets control back."
-msgstr "ตำแหน่งของชุดดันเส้นที่จุดเริ่มต้นของบล็อก G-code แบบกำหนดเอง หาก G-code แบบกำหนดเองเดินทางไปที่อื่น ควรเขียนลงในตัวแปรนี้เพื่อให้ OrcaSlicer รู้ว่าโค้ดเดินทางจากที่ใดเมื่อได้รับการควบคุมกลับ"
+msgstr "ตำแหน่งของชุดดันเส้นที่จุดเริ่มต้นของบล็อก G-code แบบกำหนดเอง หาก G-code แบบกำหนดเองเดินหัวเปล่าไปที่อื่น ควรเขียนลงในตัวแปรนี้เพื่อให้ OrcaSlicer รู้ว่าโค้ดเดินหัวเปล่าจากที่ใดเมื่อได้รับการควบคุมกลับ"
msgid "Retraction state at the beginning of the custom G-code block. If the custom G-code moves the extruder axis, it should write to this variable so OrcaSlicer de-retracts correctly when it gets control back."
msgstr "สถานะการเพิกถอนที่จุดเริ่มต้นของบล็อก G-code ที่กำหนดเอง หาก G-code แบบกำหนดเองย้ายแกนชุดดันเส้น ควรเขียนลงในตัวแปรนี้เพื่อให้ OrcaSlicer ยกเลิกการดึงกลับอย่างถูกต้องเมื่อได้รับการควบคุมกลับ"
@@ -19229,6 +21066,54 @@ msgstr "มีรองพื้น MM ของชุดดันเส้น
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "มีการใช้บริเวณรองพื้นหลายวัสดุพิเศษในการพิมพ์นี้หรือไม่"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "ชุดดันเส้นเริ่มต้นแบบไม่มีส่วนรองรับ"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "ดัชนีแบบศูนย์ของชุดดันเส้นตัวแรกที่ใช้พิมพ์โดยไม่มีส่วนรองรับ เช่นเดียวกับ initial_no_support_tool"
+
+# AI Translated
+msgid "In head wrap detect zone"
+msgstr "อยู่ในโซนตรวจจับการพันหัวฉีด"
+
+# AI Translated
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "ระบุว่าเลเยอร์แรกทับซ้อนกับโซนตรวจจับการพันหัวฉีดหรือไม่"
+
+# AI Translated
+msgid "Current bed type"
+msgstr "ชนิดฐานพิมพ์ปัจจุบัน"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "ชื่อของชนิดแผ่นฐานพิมพ์ที่เลือกอยู่ในปัจจุบัน (เช่น 'Textured PEI Plate', 'Smooth High Temp Plate')"
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "โหมด IDEX/IQEX ที่ใช้งานอยู่"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "ชื่อโหมดการพิมพ์แบบขนาน IDEX/IQEX ที่ใช้งานอยู่ของเพลตนี้ (เช่น 'primary', 'mirror', 'copy') เป็นสตริงว่างหากไม่ได้เปิดใช้งาน IDEX/IQEX"
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "ดัชนีโหมด IDEX/IQEX ที่ใช้งานอยู่"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "ดัชนีแบบศูนย์ของโหมดการพิมพ์แบบขนาน IDEX/IQEX ที่ใช้งานอยู่ภายใน imex_mode_names"
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code ของโหมด IDEX/IQEX ที่ใช้งานอยู่"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "เทมเพลต G-code ดิบของโหมดการพิมพ์แบบขนาน IDEX/IQEX ที่ใช้งานอยู่ หลังการประเมินตัวยึดตำแหน่ง ตัวแปรส่วนกลางที่กำหนดที่นี่จะส่งต่อไปยัง machine_start_gcode"
+
msgid "Volume per extruder"
msgstr "ปริมาณต่อชุดดันเส้น"
@@ -19259,11 +21144,13 @@ msgstr "น้ำหนักรวม"
msgid "Total weight of the print. Calculated from filament_density value in Filament Settings."
msgstr "น้ำหนักรวมของการพิมพ์ คำนวณจากค่า fil_density ในการตั้งค่าเส้นพลาสติก"
+# AI Translated
msgid "Total layer count"
-msgstr "จำนวนชั้นทั้งหมด"
+msgstr "จำนวนเลเยอร์ทั้งหมด"
+# AI Translated
msgid "Number of layers in the entire print."
-msgstr "จำนวนชั้นในการพิมพ์ทั้งหมด"
+msgstr "จำนวนเลเยอร์ในการพิมพ์ทั้งหมด"
msgid "Print time (normal mode)"
msgstr "เวลาในการพิมพ์ (โหมดปกติ)"
@@ -19374,26 +21261,43 @@ msgstr "ป้อนชื่อไฟล์โดยไม่มีนามส
msgid "Source filename of the first object, without extension."
msgstr "ชื่อไฟล์ต้นฉบับของออบเจ็กต์แรก โดยไม่มีนามสกุล"
+# AI Translated
+msgid "Full input filename"
+msgstr "ชื่อไฟล์อินพุตแบบเต็ม"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "ชื่อไฟล์ต้นฉบับของวัตถุแรก"
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "ชื่อของเพลตที่สไลซ์"
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "เวกเตอร์มีสององค์ประกอบ: พิกัด X และ Y ของจุด ค่าเป็น มม."
msgid "The vector has two elements: X and Y dimension of the bounding box. Values in mm."
msgstr "เวกเตอร์มีสององค์ประกอบ: มิติ X และ Y ของกรอบขอบเขต ค่าเป็น มม."
+# AI Translated
msgid "First layer convex hull"
-msgstr "ชั้นแรกเป็นตัวถังนูน"
+msgstr "เลเยอร์แรกเป็นตัวถังนูน"
+# AI Translated
msgid "Vector of points of the first layer convex hull. Each element has the following format:'[x, y]' (x and y are floating-point numbers in mm)."
-msgstr "เวกเตอร์ของจุดของตัวเรือนูนชั้นแรก แต่ละองค์ประกอบมีรูปแบบดังนี้:'[x, y]' (x และ y เป็นตัวเลขทศนิยมในหน่วย มม.)"
+msgstr "เวกเตอร์ของจุดของตัวเรือนูนเลเยอร์แรก แต่ละองค์ประกอบมีรูปแบบดังนี้:'[x, y]' (x และ y เป็นตัวเลขทศนิยมในหน่วย มม.)"
+# AI Translated
msgid "Bottom-left corner of the first layer bounding box"
-msgstr "มุมล่างซ้ายของกล่องขอบชั้นแรก"
+msgstr "มุมล่างซ้ายของกล่องขอบเลเยอร์แรก"
+# AI Translated
msgid "Top-right corner of the first layer bounding box"
-msgstr "มุมขวาบนของกล่องขอบชั้นแรก"
+msgstr "มุมขวาบนของกล่องขอบเลเยอร์แรก"
+# AI Translated
msgid "Size of the first layer bounding box"
-msgstr "ขนาดของกล่องขอบชั้นแรก"
+msgstr "ขนาดของกล่องขอบเลเยอร์แรก"
msgid "Bottom-left corner of print bed bounding box"
msgstr "มุมซ้ายล่างของกล่องขอบฐานพิมพ์พิมพ์"
@@ -19404,6 +21308,58 @@ msgstr "มุมขวาบนของกล่องขอบฐานพิ
msgid "Size of the print bed bounding box"
msgstr "ขนาดของกล่องขอบฐานพิมพ์พิมพ์"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "กึ่งกลางเลเยอร์แรกโดยไม่มี Wipe Tower"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "ความสูงของเลเยอร์แรก"
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "เวกเตอร์อุณหภูมิฐานพิมพ์ของชุดดันเส้น/เส้นพลาสติกแต่ละรายการ"
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "เวกเตอร์อุณหภูมิฐานพิมพ์เลเยอร์แรกของชุดดันเส้น/เส้นพลาสติกแต่ละรายการ ให้ค่าเดียวกับ first_layer_bed_temperature"
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "อุณหภูมิฐานพิมพ์เลเยอร์แรก (ชุดดันเส้นเริ่มต้น)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "อุณหภูมิฐานพิมพ์เลเยอร์แรกของชุดดันเส้นเริ่มต้น เช่นเดียวกับ bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "เวกเตอร์อุณหภูมิห้องพิมพ์ของชุดดันเส้น/เส้นพลาสติกแต่ละรายการ"
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "เวกเตอร์อุณหภูมิห้องพิมพ์ขั้นต่ำของชุดดันเส้น/เส้นพลาสติกแต่ละรายการ"
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "อุณหภูมิห้องพิมพ์โดยรวม"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "อุณหภูมิห้องพิมพ์โดยรวม ค่านี้คืออุณหภูมิห้องพิมพ์สูงสุดของชุดดันเส้น/เส้นพลาสติกที่ใช้"
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "เวกเตอร์อุณหภูมิฐานพิมพ์เลเยอร์แรกของชุดดันเส้น/เส้นพลาสติกแต่ละรายการ ให้ค่าเดียวกับ bed_temperature_initial_layer"
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "อุณหภูมิเลเยอร์แรก"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "เวกเตอร์อุณหภูมิเลเยอร์แรกของชุดดันเส้น/เส้นพลาสติกแต่ละรายการ"
+
msgid "Timestamp"
msgstr "การประทับเวลา"
@@ -19449,8 +21405,9 @@ msgstr "ชื่อของเครื่องพิมพ์ฟิสิค
msgid "Layer number"
msgstr "หมายเลขเลเยอร์"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "ดัชนีของเลเยอร์ปัจจุบัน แบบอิงเดียว (เช่น เลเยอร์แรกคือหมายเลข 1)"
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "ดัชนีของเลเยอร์ปัจจุบัน เริ่มนับจาก 0 (เช่น เลเยอร์แรกคือหมายเลข 0) ยกเว้นใน G-code เปลี่ยนประเภทการพิมพ์ (Extrusion role) ซึ่งจะเริ่มนับจาก 1"
msgid "Layer Z"
msgstr "เลเยอร์ Z"
@@ -19461,8 +21418,9 @@ msgstr "ความสูงของเลเยอร์ปัจจุบั
msgid "Maximal layer Z"
msgstr "เลเยอร์สูงสุด Z"
+# AI Translated
msgid "Height of the last layer above the print bed."
-msgstr "ความสูงของชั้นสุดท้ายเหนือฐานพิมพ์พิมพ์"
+msgstr "ความสูงของเลเยอร์สุดท้ายเหนือฐานพิมพ์พิมพ์"
msgid "Filament extruder ID"
msgstr "ID ชุดดันเส้นเส้นพลาสติก"
@@ -19470,6 +21428,252 @@ msgstr "ID ชุดดันเส้นเส้นพลาสติก"
msgid "The current extruder ID. The same as current_extruder."
msgstr "รหัสชุดดันเส้นปัจจุบัน เช่นเดียวกับ current_extruder"
+# AI Translated
+msgid "Previous extruder"
+msgstr "ชุดดันเส้นก่อนหน้า"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "ดัชนีของชุดดันเส้นที่กำลังถอนเส้น ดัชนีเริ่มจากศูนย์ (ชุดดันเส้นแรกมีดัชนี 0)"
+
+# AI Translated
+msgid "Next extruder"
+msgstr "ชุดดันเส้นถัดไป"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "ดัชนีของชุดดันเส้นที่กำลังโหลด ดัชนีเริ่มจากศูนย์ (ชุดดันเส้นแรกมีดัชนี 0)"
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "แกน E แบบสัมพัทธ์"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "ระบุว่ากำลังใช้การกำหนดตำแหน่งแบบสัมพัทธ์หรือไม่"
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "จำนวนการเปลี่ยนเครื่องมือ"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "จำนวนการเปลี่ยนเครื่องมือตลอดการพิมพ์"
+
+# AI Translated
+msgid "Old retract length"
+msgstr "ความยาวการดึงกลับเดิม"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "ความยาวการดึงกลับของเส้นพลาสติกก่อนหน้า"
+
+# AI Translated
+msgid "New retract length"
+msgstr "ความยาวการดึงกลับใหม่"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "ความยาวการดึงกลับของเส้นพลาสติกใหม่"
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "ความยาวการดึงกลับเดิมเมื่อเปลี่ยนเครื่องมือ"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "ความยาวการดึงกลับเมื่อเปลี่ยนเครื่องมือของเส้นพลาสติกก่อนหน้า"
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "ความยาวการดึงกลับใหม่เมื่อเปลี่ยนเครื่องมือ"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "ความยาวการดึงกลับเมื่อเปลี่ยนเครื่องมือของเส้นพลาสติกใหม่"
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "อุณหภูมิเส้นพลาสติกเดิม"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "อุณหภูมิของเส้นพลาสติกเดิม"
+
+# AI Translated
+msgid "New filament temp"
+msgstr "อุณหภูมิเส้นพลาสติกใหม่"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "อุณหภูมิของเส้นพลาสติกใหม่"
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X หลังเปลี่ยนเครื่องมือ"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "ตำแหน่ง X หลังเปลี่ยนเครื่องมือ"
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y หลังเปลี่ยนเครื่องมือ"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "ตำแหน่ง Y หลังเปลี่ยนเครื่องมือ"
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z หลังเปลี่ยนเครื่องมือ"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "ตำแหน่ง Z หลังเปลี่ยนเครื่องมือ"
+
+# AI Translated
+msgid "First flush volume"
+msgstr "ปริมาตรไล่เส้นครั้งแรก"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "ปริมาตรไล่เส้นครั้งแรก"
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "ปริมาตรไล่เส้นครั้งที่สอง"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "ปริมาตรไล่เส้นครั้งที่สอง"
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "อัตราป้อน E ของเส้นพลาสติกเดิม"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "อัตราป้อนของชุดดันเส้นสำหรับเส้นพลาสติกเดิม"
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "อัตราป้อน E ของเส้นพลาสติกใหม่"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "อัตราป้อนของชุดดันเส้นสำหรับเส้นพลาสติกใหม่"
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "จุดเดินหัวเปล่า 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "ค่า X ของจุดเดินหัวเปล่า 1"
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "จุดเดินหัวเปล่า 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "ค่า Y ของจุดเดินหัวเปล่า 1"
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "จุดเดินหัวเปล่า 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "ค่า X ของจุดเดินหัวเปล่า 2"
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "จุดเดินหัวเปล่า 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "ค่า Y ของจุดเดินหัวเปล่า 2"
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "จุดเดินหัวเปล่า 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "ค่า X ของจุดเดินหัวเปล่า 3"
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "จุดเดินหัวเปล่า 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "ค่า Y ของจุดเดินหัวเปล่า 3"
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "ความยาวไล่เส้น 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "ความยาวไล่เส้นครั้งแรก"
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "ความยาวไล่เส้น 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "ความยาวไล่เส้นครั้งที่สอง"
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "ความยาวไล่เส้น 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "ความยาวไล่เส้นครั้งที่สาม"
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "ความยาวไล่เส้น 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "ความยาวไล่เส้นครั้งที่สี่"
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "ประเภทการพิมพ์"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"ประเภทการพิมพ์ใหม่ที่จะใช้\n"
+"ค่าที่เป็นไปได้:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "ประเภทการพิมพ์ล่าสุด"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"ประเภทการพิมพ์ที่ใช้ก่อนหน้า\n"
+"ค่าที่เป็นไปได้:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "เกิดข้อผิดพลาดในไฟล์ zip"
@@ -19482,24 +21686,32 @@ msgstr "กำลังสร้างพื้นที่ไส้ใน"
msgid "Generating infill toolpath"
msgstr "กำลังสร้างเส้นทางไส้ใน"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "เลเยอร์ที่ทำรูปร่าง Z แล้ว %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "ตรวจจับระยะยื่นสำหรับการยกอัตโนมัติ"
msgid "Checking support necessity"
msgstr "กำลังตรวจสอบความจำเป็นของส่วนรองรับ"
-msgid "floating regions"
-msgstr "ภูมิภาคลอยน้ำ"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "ดูเหมือนว่าวัตถุ %1% มีบริเวณลอย โปรดปรับทิศทางวัตถุใหม่หรือเปิดใช้งานการสร้างส่วนรองรับ"
-msgid "floating cantilever"
-msgstr "คานเท้าแขนลอย"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "ดูเหมือนว่าวัตถุ %1% มีคานยื่นลอย โปรดปรับทิศทางวัตถุใหม่หรือเปิดใช้งานการสร้างส่วนรองรับ"
-msgid "large overhangs"
-msgstr "ส่วนยื่นขนาดใหญ่"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "ดูเหมือนว่าวัตถุ %s มี %s โปรดปรับทิศทางวัตถุใหม่หรือเปิดใช้งานการสร้างส่วนรองรับ"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "ดูเหมือนว่าวัตถุ %1% มีส่วนยื่นขนาดใหญ่ โปรดปรับทิศทางวัตถุใหม่หรือเปิดใช้งานการสร้างส่วนรองรับ"
msgid "Generating support"
msgstr "กำลังสร้างส่วนรองรับ"
@@ -19510,8 +21722,9 @@ msgstr "กำลังปรับเส้นทางพิมพ์ให้
msgid "Slicing mesh"
msgstr "กำลังสไลซ์เมช"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "ไม่พบเลเยอร์ คุณอาจต้องการซ่อมแซมไฟล์ STL ของคุณ หรือตรวจสอบขนาดหรือความหนาแล้วลองอีกครั้ง\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "ไม่พบเลเยอร์ คุณอาจต้องการซ่อมแซมโมเดลหรือตรวจสอบขนาดหรือความหนาของโมเดลแล้วลองอีกครั้ง\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19530,6 +21743,397 @@ msgstr ""
msgid "Object name"
msgstr "ชื่อออบเจ็กต์"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "ไม่สามารถใช้ตัวดำเนินการเครื่องหมายลบเอกภาคได้"
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "ไม่สามารถแปลงเป็นจำนวนเต็มได้"
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "ไม่สามารถปัดเศษค่าที่ไม่ใช่ตัวเลขได้"
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "ไม่สามารถปัดลงค่าที่ไม่ใช่ตัวเลขได้"
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "ไม่สามารถปัดขึ้นค่าที่ไม่ใช่ตัวเลขได้"
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "ไม่สามารถใช้ตัวดำเนินการ not ได้"
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "ไม่สามารถบวกชนิดข้อมูลที่ไม่ใช่ตัวเลขได้"
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "ไม่สามารถลบชนิดข้อมูลที่ไม่ใช่ตัวเลขได้"
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "ไม่สามารถคูณด้วยชนิดข้อมูลที่ไม่ใช่ตัวเลขได้"
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "ไม่สามารถหารชนิดข้อมูลที่ไม่ใช่ตัวเลขได้"
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "ไม่สามารถหารด้วยชนิดข้อมูลที่ไม่ใช่ตัวเลขได้"
+
+# AI Translated
+msgid "Division by zero"
+msgstr "การหารด้วยศูนย์"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "ไม่ใช่นิพจน์บูลีน"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "ไม่สามารถเปรียบเทียบชนิดข้อมูลเหล่านี้ได้"
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "ไม่ใช่ชนิดข้อมูลตัวเลข"
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: พารามิเตอร์ตัวที่สองต้องเป็นจำนวนเต็ม"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: พารามิเตอร์ตัวที่สามต้องเป็นจำนวนเต็ม"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "ด้านซ้ายของการจับคู่ regex ต้องเป็นสตริง"
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "คอมไพล์ regex ล้มเหลว: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "พารามิเตอร์ตัวแรกของ regex_replace() ต้องเป็นสตริง"
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): พารามิเตอร์ตัวแรก (สตริงที่ใช้จับคู่) ต้องเป็นค่าสตริง"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): รูปแบบต้องเป็นค่าสตริง"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "คอมไพล์ regex ล้มเหลว"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "ไม่สามารถใช้การดำเนินการเชิงตรรกะกับตัวถูกดำเนินการที่ไม่ใช่บูลีนได้"
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "พยายามใช้ดัชนีกับตัวแปรสเกลาร์"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "ดัชนีเวกเตอร์ไม่ถูกต้อง"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "ไม่มีตัวแปรนี้ (ในสาขาที่ไม่ได้ใช้งาน)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "ไม่มีตัวแปรนี้"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "พยายามอ้างอิงตัวแปรแบบ optional ที่ไม่ได้กำหนด (nil)"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "การใช้ดัชนีกับตัวแปรเวกเตอร์ที่ว่างเปล่า"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "พยายามอ้างอิงองค์ประกอบที่ไม่ได้กำหนด (nil) ของเวกเตอร์ของค่า optional"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "ตัวแปรดัชนีต้องเป็นจำนวนเต็ม"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "ดัชนีเวกเตอร์ติดลบ"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "ไม่ใช่ชื่อตัวแปร"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "ไม่ใช่ชื่อตัวแปร (ในสาขาที่ไม่ได้ใช้งาน)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "ตัวแปร FloatOrPercent ไม่สามารถหาค่าตามการอ้างอิง \"ratio_over\" ได้"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "ไม่รองรับชนิดตัวแปรสเกลาร์"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "อ้างอิงตัวแปรเวกเตอร์ในที่ที่คาดหวังสเกลาร์"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "ไม่รองรับชนิดตัวแปรเวกเตอร์"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "ไม่สามารถแก้ไขตัวแปรแบบอ่านอย่างเดียวได้"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "ด้านขวาไม่ใช่นิพจน์ตัวเลข"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "คาดหวังจำนวนองค์ประกอบสำหรับเติมเวกเตอร์"
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "ระบุจำนวนองค์ประกอบเป็นค่าติดลบ"
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "ด้านขวาไม่ใช่นิพจน์บูลีน"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "ไม่รองรับชนิดตัวแปรสเกลาร์เอาต์พุต"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "อ้างอิงตัวแปรเวกเตอร์เอาต์พุตในที่ที่คาดหวังสเกลาร์"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "ดัชนีอยู่นอกช่วง"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "ไม่รองรับชนิดตัวแปรเวกเตอร์เอาต์พุต"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "สัญลักษณ์ถูกกำหนดไว้แล้วในดิกชันนารีระบบแบบอ่านอย่างเดียว"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "สัญลักษณ์ถูกกำหนดไว้แล้วเป็นตัวแปรเอาต์พุตของระบบ"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "ตัวแปรส่วนกลางไม่พร้อมใช้งานในบริบทนี้"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "ชื่อตัวแปรถูกกำหนดไว้แล้วในขอบเขตภายใน"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "ชื่อตัวแปรถูกกำหนดไว้แล้วในขอบเขตส่วนกลาง"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "ไม่สามารถกำหนดค่าสเกลาร์ให้กับตัวแปรเวกเตอร์ได้"
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "ไม่สามารถกำหนดค่าเวกเตอร์ให้กับตัวแปรสเกลาร์ได้"
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "ไม่สามารถสร้างตัวแปรเวกเตอร์จากรายการค่าเริ่มต้นที่ว่างเปล่าได้ เพราะไม่สามารถอนุมานชนิดของตัวแปรได้"
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "ด้านขวาไม่ถูกต้อง: ผสมชนิดตัวเลขและบูลีนกัน"
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "ไม่สามารถกำหนดสเกลาร์ให้กับเวกเตอร์ได้"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "องค์ประกอบบางส่วนของตัวแปรเวกเตอร์ค่า optional ทางด้านขวายังไม่ได้กำหนด (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "ด้านซ้ายเป็นเวกเตอร์ทศนิยม แต่ด้านขวาไม่ใช่"
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "ด้านซ้ายเป็นเวกเตอร์จำนวนเต็ม แต่ด้านขวาไม่ใช่"
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "ด้านซ้ายเป็นเวกเตอร์สตริง แต่ด้านขวาไม่ใช่"
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "ด้านซ้ายเป็นเวกเตอร์บูลีน แต่ด้านขวาไม่ใช่"
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "เวกเตอร์ด้านซ้ายและด้านขวาเข้ากันไม่ได้"
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "ไม่รองรับการทำซ้ำตัวแปรเวกเตอร์ชนิดนี้"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "พารามิเตอร์ของ empty() ไม่ใช่ตัวแปรเวกเตอร์"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "พารามิเตอร์ของ size() ไม่ใช่ตัวแปรเวกเตอร์"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "ไม่อนุญาตให้ใช้ดัชนีที่ไม่ใช่จำนวนเต็มเพื่ออ้างถึงตัวแปรเวกเตอร์"
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "ตัวสร้างเลขสุ่มไม่พร้อมใช้งานในบริบทนี้"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "ข้อผิดพลาดในการแยกวิเคราะห์ที่บรรทัด %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "ข้อผิดพลาดในการแยกวิเคราะห์ที่บรรทัด %1% คาดหวังแท็ก %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "ข้อผิดพลาดในการแยกวิเคราะห์ที่บรรทัด %1% %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "ค่าอินเทอร์โพเลชันต้องเป็นตัวเลข"
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "ค่า X ของจุดในตารางต้องเป็นตัวเลข"
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "ค่า Y ของจุดในตารางต้องเป็นตัวเลข"
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "พิกัด X ของตารางต้องเพิ่มขึ้นเรื่อยๆ"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "ค่าอินเทอร์โพเลชันอยู่นอกช่วงของตาราง"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "ข้อผิดพลาดทางไวยากรณ์ที่ไม่ทราบสาเหตุ"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "ข้อความไม่ถูกต้อง"
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "บล็อกข้อความไม่ถูกต้อง"
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "มาโครไม่ถูกต้อง"
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "ไม่ใช่มาโคร {if}{else}{endif}"
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "ไม่ใช่มาโคร {switch}"
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "คาดหวังรูปแบบการขยายตัวแปรแบบเดิม"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "คาดหวังตัวระบุ"
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "คาดหวังนิพจน์เงื่อนไข"
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "คาดหวังนิพจน์บูลีน"
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "คาดหวังนิพจน์"
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "คาดหวังวงเล็บปีกกาปิดหรือพารามิเตอร์เสริม"
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "คาดหวังรายการรูปแบบสตริง (ข้อความธรรมดาหรือ regex)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "คาดหวังการอ้างอิงตัวแปร"
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "คาดหวังชื่อตัวแปร"
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "คาดหวัง regex"
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "ลำดับ utf8 ไม่ถูกต้อง"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "อนุญาตให้ใช้อักขระที่ไม่ใช่ ASCII7 เฉพาะภายในบล็อกข้อความและสตริงลิเทอรัลเท่านั้น ไม่อนุญาตภายในบล็อกโค้ด"
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "ลำดับเอสเคปไม่ถูกต้อง"
+
msgid "Support: generate contact points"
msgstr "ส่วนรองรับ: สร้างจุดติดต่อ"
@@ -19546,6 +22150,10 @@ msgstr "ไม่สามารถอ่านไฟล์ที่ให้ม
msgid "The file format is incompatible and cannot be parsed."
msgstr "รูปแบบไฟล์ไม่รองรับ จึงไม่สามารถอ่านข้อมูลได้"
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "แปลงแอสเซตเป็น STL ผ่าน ModelIO ไม่สำเร็จ"
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "รูปแบบไฟล์ที่ไม่รู้จัก ไฟล์อินพุตต้องมีนามสกุล .stl, .obj, .amf(.xml)"
@@ -19594,9 +22202,6 @@ msgstr "การปรับเทียบใหม่"
msgid "Calibrate"
msgstr "ปรับเทียบ"
-msgid "Finish"
-msgstr "เสร็จ"
-
msgid "How can I use calibration results?"
msgstr "จะใช้ผลการสอบเทียบได้อย่างไร?"
@@ -19691,9 +22296,11 @@ msgstr ""
"ภายในชุดดันเส้นเดียวกัน ชื่อ(%s) จะต้องไม่ซ้ำกันเมื่อประเภทเส้นพลาสติก เส้นผ่านศูนย์กลางของหัวฉีด และการไหลของหัวฉีดเหมือนกัน\n"
"คุณแน่ใจหรือไม่ว่าต้องการแทนที่ผลลัพธ์ในอดีต"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "ประเภทเครื่องนี้สามารถเก็บผลลัพธ์ประวัติได้เพียง %d รายการต่อหัวฉีด ผลลัพธ์นี้จะไม่ถูกบันทึก"
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "ประเภทเครื่องนี้สามารถเก็บผลลัพธ์ประวัติได้เพียง %d รายการต่อหัวฉีด ผลลัพธ์นี้จะไม่ถูกบันทึก"
msgid "Connecting to printer..."
msgstr "กำลังเชื่อมต่อกับเครื่องพิมพ์..."
@@ -19733,6 +22340,7 @@ msgstr ""
msgid "About this calibration"
msgstr "เกี่ยวกับการสอบเทียบนี้"
+# AI Translated
msgid ""
"Please find the details of Flow Dynamics Calibration from our wiki.\n"
"\n"
@@ -19746,13 +22354,14 @@ msgstr ""
"\n"
"โดยปกติแล้วการปรับเทียบจะไม่จำเป็น เมื่อคุณเริ่มพิมพ์สี/วัสดุเดียว โดยเลือกตัวเลือก \"flow dynamics calibration\" ในเมนูเริ่มการพิมพ์ เครื่องพิมพ์จะปฏิบัติตามวิธีเก่า ปรับเทียบเส้นพลาสติกก่อนพิมพ์ เมื่อคุณเริ่มการพิมพ์หลายสี/วัสดุ เครื่องพิมพ์จะใช้พารามิเตอร์การชดเชยเริ่มต้นสำหรับเส้นพลาสติกในระหว่างการเปลี่ยนเส้นพลาสติกทุกครั้ง ซึ่งจะให้ผลลัพธ์ที่ดีในกรณีส่วนใหญ่\n"
"\n"
-"โปรดทราบว่ามีบางกรณีที่อาจทำให้ผลการสอบเทียบไม่น่าเชื่อถือ เช่น การยึดเกาะบนฐานรองพิมพ์ไม่เพียงพอ การปรับปรุงการยึดเกาะสามารถทำได้โดยการล้างแผ่นฐานรองพิมพ์หรือใช้กาว สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้ โปรดดูที่ Wiki ของเรา\n"
+"โปรดทราบว่ามีบางกรณีที่อาจทำให้ผลการสอบเทียบไม่น่าเชื่อถือ เช่น การยึดเกาะบนฐานพิมพ์ไม่เพียงพอ การปรับปรุงการยึดเกาะสามารถทำได้โดยการล้างแผ่นฐานพิมพ์หรือใช้กาว สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้ โปรดดูที่ Wiki ของเรา\n"
"\n"
"ผลการสอบเทียบมีความแปรปรวนประมาณ 10 เปอร์เซ็นต์ในการทดสอบของเรา ซึ่งอาจทำให้ผลลัพธ์ไม่เหมือนกันทุกครั้งที่สอบเทียบ เรายังคงตรวจสอบสาเหตุที่แท้จริงเพื่อปรับปรุงในอัปเดตใหม่"
msgid "When to use Flow Rate Calibration"
msgstr "เมื่อใดจึงจะใช้การปรับเทียบอัตราการไหล"
+# AI Translated
msgid ""
"After using Flow Dynamics Calibration, there might still be some extrusion issues, such as:\n"
"1. Over-Extrusion: Excess material on your printed object, forming blobs or zits, or the layers seem thicker than expected and not uniform\n"
@@ -19761,8 +22370,8 @@ msgid ""
"4. Weak Structural Integrity: Prints break easily or don't seem as sturdy as they should be"
msgstr ""
"หลังจากใช้ Flow Dynamics Calibration แล้ว อาจยังมีปัญหาการอัดขึ้นรูปอยู่บ้าง เช่น:\n"
-"1. การอัดขึ้นรูปมากเกินไป: วัสดุส่วนเกินบนวัตถุที่พิมพ์ของคุณ ก่อตัวเป็นหยดหรือสิว หรือชั้นต่างๆ ดูหนากว่าที่คาดไว้และไม่สม่ำเสมอ\n"
-"2. Under-Extrusion: ชั้นที่บางมาก ความแข็งแรงในไส้ในที่อ่อนแอ หรือมีช่องว่างในชั้นบนสุดของแบบจำลอง แม้ว่าจะพิมพ์ช้าก็ตาม\n"
+"1. การอัดขึ้นรูปมากเกินไป: วัสดุส่วนเกินบนวัตถุที่พิมพ์ของคุณ ก่อตัวเป็นหยดหรือสิว หรือเลเยอร์ต่างๆ ดูหนากว่าที่คาดไว้และไม่สม่ำเสมอ\n"
+"2. Under-Extrusion: เลเยอร์ที่บางมาก ความแข็งแรงในไส้ในที่อ่อนแอ หรือมีช่องว่างในเลเยอร์บนสุดของแบบจำลอง แม้ว่าจะพิมพ์ช้าก็ตาม\n"
"3. คุณภาพพื้นผิวไม่ดี: พื้นผิวงานพิมพ์ของคุณดูหยาบหรือไม่สม่ำเสมอ\n"
"4. ความสมบูรณ์ของโครงสร้างที่อ่อนแอ: งานพิมพ์แตกหักง่ายหรือดูไม่แข็งแรงเท่าที่ควร"
@@ -19859,8 +22468,9 @@ msgstr "เราพบอัตราส่วนการไหลที่ด
msgid "Flow Ratio"
msgstr "อัตราส่วนการไหล"
+# AI Translated
msgid "Please input a valid value (0.0 < flow ratio < 2.0)"
-msgstr "โปรดป้อนค่าที่ถูกต้อง (0.0 < อัตราการไหล < 2.0)"
+msgstr "โปรดป้อนค่าที่ถูกต้อง (0.0 < อัตราส่วนการไหล < 2.0)"
msgid "Please enter the name of the preset you want to save."
msgstr "กรุณากรอกชื่อพรีเซ็ตที่คุณต้องการบันทึก"
@@ -19880,9 +22490,10 @@ msgstr "ไส้ในค่าเหนือบล็อกด้วยพื
msgid "Skip Calibration2"
msgstr "ข้ามการปรับเทียบ2"
+# AI Translated
#, c-format, boost-format
msgid "flow ratio : %s "
-msgstr "อัตราการไหล : %s"
+msgstr "อัตราส่วนการไหล : %s "
msgid "Please choose a block with smoothest top surface."
msgstr "โปรดเลือกบล็อกที่มีพื้นผิวด้านบนเรียบที่สุด"
@@ -19917,9 +22528,13 @@ msgstr "ประสานข้อมูลหัวฉีดและ AMS"
msgid "Please connect the printer first before synchronizing."
msgstr "โปรดเชื่อมต่อเครื่องพิมพ์ก่อนที่จะซิงโครไนซ์"
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "ข้อมูลหัวฉีดของเครื่องพิมพ์ %s ไม่ได้ถูกตั้งค่า โปรดกำหนดค่าก่อนดำเนินการสอบเทียบต่อ"
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "ยังไม่ได้ตั้งค่าข้อมูลหัวฉีดขวาของเครื่องพิมพ์ โปรดกำหนดค่าก่อนดำเนินการสอบเทียบต่อ"
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "ยังไม่ได้ตั้งค่าข้อมูลหัวฉีดซ้ายของเครื่องพิมพ์ โปรดกำหนดค่าก่อนดำเนินการสอบเทียบต่อ"
msgid "AMS and nozzle information are synced"
msgstr "ข้อมูล AMS และหัวฉีดจะซิงค์กัน"
@@ -19982,6 +22597,11 @@ msgstr "จากความเร็วตามปริมาตร"
msgid "To Volumetric Speed"
msgstr "สู่ความเร็วเชิงปริมาตร"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "ขนาดขั้น"
+
msgid "Are you sure you want to cancel this print?"
msgstr "คุณแน่ใจหรือไม่ว่าต้องการยกเลิกงานพิมพ์นี้"
@@ -20008,9 +22628,11 @@ msgstr "หมายเหตุ: หมายเลขฮอตเอนด์
msgid "Action"
msgstr "การทำงาน"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "ประเภทเครื่องนี้สามารถเก็บผลลัพธ์ประวัติได้เพียง %d รายการต่อหัวฉีด"
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "ประเภทเครื่องนี้สามารถเก็บผลลัพธ์ประวัติได้เพียง %d รายการต่อหัวฉีด"
msgid "Edit Flow Dynamics Calibration"
msgstr "แก้ไขปรับเทียบไดนามิกการไหล"
@@ -20137,12 +22759,13 @@ msgstr ""
"ค่าความเร่งต้องมากกว่าค่าความเร็ว\n"
"โปรดตรวจสอบอินพุต"
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "ยังไม่เปิดใช้งานบนเครื่องพิมพ์สายพาน — ใช้วิธี พีเอ ทาวเวอร์ แทน"
+
msgid "Temperature calibration"
msgstr "การปรับเทียบอุณหภูมิ"
-msgid "Filament type"
-msgstr "ชนิดเส้นพลาสติก"
-
msgid "PLA"
msgstr "PLA"
@@ -20164,6 +22787,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "แบบทดสอบ"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "มาตรฐาน"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "ส่วนยื่น"
+
msgid "Start temp: "
msgstr "อุณหภูมิเริ่มต้น:"
@@ -20289,9 +22925,6 @@ msgstr "เริ่มต้นความยาวการดึงกลั
msgid "End retraction length: "
msgstr "ความยาวการดึงกลับสุดท้าย:"
-msgid "Test model"
-msgstr "แบบทดสอบ"
-
msgid "Ringing Tower"
msgstr "ริงกิ้งทาวเวอร์"
@@ -20321,8 +22954,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "ความถี่ (เริ่ม / สิ้นสุด):"
-msgid "Start / End"
-msgstr "เริ่ม / สิ้นสุด"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X เริ่ม / สิ้นสุด: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y เริ่ม / สิ้นสุด: "
msgid "Frequency settings"
msgstr "การตั้งค่าความถี่"
@@ -20359,8 +22997,14 @@ msgstr "ตรวจสอบความเข้ากันได้ของ
msgid "Frequency: "
msgstr "ความถี่:"
-msgid "Damp"
-msgstr "ชื้น"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "ความถี่ X / Y: "
+
+# AI Translated
+# Needs human review: Short label before a start/end value pair in the input-shaping calibration dialog. Rendered as การหน่วง (damping, as in the existing damping-ratio strings) because the glossary's การทำให้หมาด ๆ for Damping reads as 'moistening'.
+msgid "Damp (Start / End): "
+msgstr "การหน่วง (เริ่ม / สิ้นสุด): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "เฟิร์มแวร์ RepRap ใช้ความถี่เดียวกันสำหรับทั้งสองแกน"
@@ -20484,9 +23128,11 @@ msgstr "ไทม์แลปส์"
msgid "Enable IFS"
msgstr "เปิดใช้ IFS"
+# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "ตรวจพบช่อง IFS %d ช่องบนเครื่องพิมพ์"
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "ตรวจพบช่อง IFS %d ช่องบนเครื่องพิมพ์"
msgid "This printer does not report a material station."
msgstr "เครื่องพิมพ์นี้ไม่รายงานสถานีวัสดุ"
@@ -20558,8 +23204,9 @@ msgstr "การปรับระดับฐานพิมพ์อุ่น
msgid "Textured Build Plate (Side A)"
msgstr "ฐานพิมพ์พื้นผิว (ด้าน A)"
+# AI Translated
msgid "Smooth Build Plate (Side B)"
-msgstr "แผ่นเรียบ (ด้าน B)"
+msgstr "ฐานพิมพ์เรียบ (ด้าน B)"
#, c-format, boost-format
msgid "Printer: %s"
@@ -20604,8 +23251,10 @@ msgstr "ลบออกจาก"
msgid "Subtract with"
msgstr "ลบด้วย"
-msgid "selected"
-msgstr "เลือกแล้ว"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "เลือก 1 รายการ"
msgid "Part 1"
msgstr "ส่วนที่ 1"
@@ -20718,9 +23367,6 @@ msgstr "เช่น พื้นฐาน, เนื้อด้าน, ไห
msgid "Filament Preset"
msgstr "พรีเซ็ตเส้นพลาสติก"
-msgid "Create"
-msgstr "สร้าง"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "ไม่ได้เลือกผู้ขาย โปรดเลือกผู้ขายอีกครั้ง"
@@ -21024,6 +23670,10 @@ msgstr ""
"เครื่องพิมพ์และเส้นพลาสติกและค่าที่ตั้งล่วงหน้ากระบวนการทั้งหมดที่เป็นของเครื่องพิมพ์\n"
"สามารถแบ่งปันกับผู้อื่นได้"
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "รวมพื้นผิวและโมเดลแบบกำหนดเองของฐานพิมพ์"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21075,13 +23725,6 @@ msgstr "หมายเหตุ: หากลบค่าที่กำหน
msgid "Presets inherited by other presets cannot be deleted"
msgstr "ค่าที่ตั้งล่วงหน้าที่สืบทอดมาจากค่าที่ตั้งล่วงหน้าอื่นไม่สามารถลบได้"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "พรีเซ็ตต่อไปนี้สืบทอดจากพรีเซ็ตนี้"
-
-msgid "Delete Preset"
-msgstr "ลบพรีเซ็ต"
-
msgid "Are you sure to delete the selected preset?"
msgstr "คุณแน่ใจหรือไม่ว่าต้องการลบค่าที่ตั้งล่วงหน้าที่เลือกไว้"
@@ -21158,10 +23801,12 @@ msgstr "จุดเริ่มต้น สิ้นสุด หรือข
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "จำนวนชุดดันเส้นของเครื่องพิมพ์และเครื่องพิมพ์ที่เลือกสำหรับการสอบเทียบไม่ตรงกัน"
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "เส้นผ่านศูนย์กลางหัวฉีดของชุดดันเส้น %s คือ 0.2 มม. ซึ่งไม่รองรับการสอบเทียบ Flow Dynamics อัตโนมัติ"
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21177,6 +23822,12 @@ msgstr ""
"เส้นผ่านศูนย์กลางหัวฉีดไม่ตรงกับเส้นผ่านศูนย์กลางหัวฉีดของเครื่องพิมพ์จริง\n"
"โปรดคลิกปุ่มซิงค์ด้านบนแล้วเริ่มการปรับเทียบใหม่"
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "ข้อมูลหัวฉีดของเครื่องพิมพ์ %s ไม่ได้ถูกตั้งค่า โปรดกำหนดค่าก่อนดำเนินการสอบเทียบต่อ"
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21251,6 +23902,12 @@ msgstr "ตรวจหาเครื่องพิมพ์ Creality K-series
msgid "Click Scan to look for K-series printers on your network."
msgstr "คลิก Scan เพื่อค้นหาเครื่องพิมพ์ K-series บนเครือข่ายของคุณ"
+# AI Translated
+# Needs human review: Printer model sense (field/column label for the printer model), so รุ่น instead of the glossary Model (โมเดล), which is the 3D model sense. Check it reads right in the printer selection UI.
+msgctxt "Printer model"
+msgid "Model"
+msgstr "รุ่น"
+
# AI Translated
msgid "Scan"
msgstr "สแกน"
@@ -21273,8 +23930,9 @@ msgstr "ไม่พบเครื่องพิมพ์ K-series ตรว
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "พบเครื่องพิมพ์ Creality %zu เครื่อง เลือกหนึ่งเครื่องแล้วคลิก Use Selected"
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "พบเครื่องพิมพ์ Creality %zu เครื่อง เลือกหนึ่งเครื่องแล้วคลิก \"ใช้รายการที่เลือก\""
# AI Translated
msgid "Active"
@@ -21393,8 +24051,11 @@ msgid "Failed to launch a new instance."
msgstr "ไม่สามารถเปิดอินสแตนซ์ใหม่ได้"
# AI Translated
-msgid "log(s)"
-msgstr "บันทึก"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "ล็อก %d ไฟล์ (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -21441,15 +24102,35 @@ msgstr "ไม่พบประเภทเครื่องพิมพ์
msgid "Authorizing..."
msgstr "กำลังอนุญาต..."
-msgid "Error. Can't get API token for authorization"
-msgstr "ข้อผิดพลาด ไม่สามารถรับโทเคน API สำหรับการอนุญาตได้"
+# AI Translated
+msgid "Maximum login retries exceeded"
+msgstr "เกินจำนวนครั้งสูงสุดในการลองเข้าสู่ระบบ"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "ข้อผิดพลาด HTTP: %1%"
msgid "Could not parse server response."
msgstr "ไม่สามารถแยกวิเคราะห์การตอบกลับจากเซิร์ฟเวอร์ได้"
+msgid "Error. Can't get API token for authorization"
+msgstr "ข้อผิดพลาด ไม่สามารถรับโทเคน API สำหรับการอนุญาตได้"
+
msgid "Error saving session to file"
msgstr "ข้อผิดพลาดในการบันทึกเซสชันลงไฟล์"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "การเชื่อมต่อกับคลาวด์ 3DPrinterOS ทำงานอย่างถูกต้อง"
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "เข้าสู่ระบบในฐานะผู้ใช้: %1%"
+
msgid "Error session check"
msgstr "ข้อผิดพลาดในการตรวจสอบเซสชัน"
@@ -21484,6 +24165,42 @@ msgstr "รหัสผ่านผิด"
msgid "Could not get resources to create a new connection"
msgstr "ไม่สามารถรับทรัพยากรเพื่อสร้างการเชื่อมต่อใหม่"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "การเชื่อมต่อกับ UltiMaker ทำงานอย่างถูกต้อง"
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "ไม่สามารถเชื่อมต่อกับ UltiMaker ได้"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "สร้างข้อมูลรับรองผิดพลาด! ดูรายละเอียดในล็อก"
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "ข้อผิดพลาด: ID หรือ KEY ว่างเปล่า ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "ชื่อผู้ใช้: %1% รหัสผ่าน: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "ข้อมูลรับรองการยืนยันตัวตนกำลังรอการอนุมัติ โปรดอนุมัติการเข้าถึงผ่านกล่องโต้ตอบบนหน้าจอของเครื่องพิมพ์"
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "ข้อมูลรับรองการยืนยันตัวตนไม่ถูกต้อง"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "ข้อผิดพลาด: ไม่พบข้อมูลรับรองการยืนยันตัวตน!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "ไม่ได้เปิดใช้งานการอัปโหลดบนการ์ด FlashAir"
@@ -21601,6 +24318,14 @@ msgstr ""
"เนื้อหาข้อความ: \"%1%\"\n"
"ข้อผิดพลาด: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "การเชื่อมต่อกับ ESP3D ทำงานอย่างถูกต้อง"
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "ไม่สามารถเชื่อมต่อกับ ESP3D ได้"
+
msgid "No AMS"
msgstr "ไม่มี AMS"
@@ -21672,6 +24397,11 @@ msgstr "จำนวนเครื่องพิมพ์สูงสุดท
msgid "No task"
msgstr "ไม่มีงาน"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "ดู"
+
msgid "Edit Printers"
msgstr "แก้ไขเครื่องพิมพ์"
@@ -21713,6 +24443,12 @@ msgstr "การพิมพ์ล้มเหลว"
msgid "Printing Pause"
msgstr "หยุดการพิมพ์ชั่วคราว"
+# AI Translated
+# Needs human review: Printer status label (msgctxt Device status), shown next to Idle/Printing. Check กำลังเตรียม reads right as the printer's preparing state.
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "กำลังเตรียม"
+
msgid "Pending"
msgstr "รอดำเนินการ"
@@ -21745,9 +24481,6 @@ msgstr "เปิดใช้การกำหนดเส้นพลาสต
msgid "File Saving"
msgstr "การบันทึกไฟล์"
-msgid "Don't remind me again"
-msgstr "ไม่ต้องเตือนฉันอีก"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "จะไม่มีป๊อปอัปเพิ่มเติมปรากฏขึ้น คุณสามารถเปิดใหม่ได้ใน 'การตั้งค่า'"
@@ -21772,16 +24505,24 @@ msgstr "กำหนดเส้นพลาสติกให้กับหั
msgid "Global settings"
msgstr "การตั้งค่าส่วนกลาง"
-msgid "Video tutorial"
-msgstr "วิดีโอสอน"
-
msgid "(Sync with printer)"
msgstr "(ซิงค์กับเครื่องพิมพ์)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "ข้อผิดพลาด: ชุดดันเส้น %s ไม่มีหัวฉีด %s ที่ใช้ได้ ผลการจัดกลุ่มปัจจุบันไม่ถูกต้อง"
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "ข้อผิดพลาด: ชุดดันเส้นซ้ายไม่มีหัวฉีดมาตรฐานที่ใช้ได้ ผลการจัดกลุ่มปัจจุบันไม่ถูกต้อง"
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "ข้อผิดพลาด: ชุดดันเส้นซ้ายไม่มีหัวฉีดอัตราไหลสูงที่ใช้ได้ ผลการจัดกลุ่มปัจจุบันไม่ถูกต้อง"
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "ข้อผิดพลาด: ชุดดันเส้นขวาไม่มีหัวฉีดมาตรฐานที่ใช้ได้ ผลการจัดกลุ่มปัจจุบันไม่ถูกต้อง"
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "ข้อผิดพลาด: ชุดดันเส้นขวาไม่มีหัวฉีดอัตราไหลสูงที่ใช้ได้ ผลการจัดกลุ่มปัจจุบันไม่ถูกต้อง"
msgid "We will slice according to this grouping method:"
msgstr "เราจะสไลซ์ตามวิธีการจัดกลุ่มนี้:"
@@ -21824,15 +24565,22 @@ msgstr "ไม่สามารถเชื่อมต่อกับ SimplyPr
msgid "Internal error"
msgstr "ข้อผิดพลาดภายใน"
-msgid "Unknown error"
-msgstr "ข้อผิดพลาดไม่ทราบสาเหตุ"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "บัญชี SimplyPrint ไม่ได้เชื่อมโยง ไปที่ตัวเลือกการเชื่อมต่อเพื่อตั้งค่า"
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge ส่งคืนการตอบกลับ JSON ที่ไม่ถูกต้อง"
+# AI Translated
+msgid "Request failed"
+msgstr "คำขอล้มเหลว"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "ข้อผิดพลาด API ภายในเครือข่ายของ Flashforge %1%: %2%"
+
msgid "No Flashforge printers were discovered on the local network."
msgstr "ไม่พบเครื่องพิมพ์ Flashforge บนเครือข่าย LAN"
@@ -21978,8 +24726,11 @@ msgstr "คำเตือน: ไม่ได้ตั้งค่าประ
msgid "Set the brim type of this object to \"painted\""
msgstr "ตั้งค่าประเภทขอบของวัตถุนี้เป็น \"ทาสี\""
-msgid "invalid brim ears"
-msgstr "หูขอบยึดชิ้นงานไม่ถูกต้อง"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "หูขอบยึดชิ้นงานที่ไม่ถูกต้อง %d รายการ"
msgid "Brim Ears"
msgstr "หูขอบยึดชิ้นงาน (Brim Ears)"
@@ -22005,6 +24756,7 @@ msgstr "โหลดข้อมูลวัตถุที่ข้ามล้
msgid "Failed to create the temporary folder."
msgstr "สร้างโฟลเดอร์ชั่วคราวไม่สำเร็จ"
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d เลือกแล้ว"
@@ -22024,9 +24776,11 @@ msgstr "ข้ามวัตถุทั้งหมด"
msgid "The printing job will be stopped. Continue?"
msgstr "งานพิมพ์จะหยุดลง ดำเนินการต่อ?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "กำลังข้าม %d วัตถุ"
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "กำลังข้ามวัตถุ %d รายการ"
msgid "This action cannot be undone. Continue?"
msgstr "การทำงานนี้ไม่สามารถย้อนกลับได้ ดำเนินการต่อหรือไม่"
@@ -22174,6 +24928,42 @@ msgstr "หากเปิดใช้งาน ค่าด้านบนจ
msgid "PresetBundle"
msgstr "ชุดค่าที่ตั้งไว้ล่วงหน้า"
+# AI Translated
+msgid "Export Presets"
+msgstr "ส่งออกพรีเซ็ต"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "แสดงในโฟลเดอร์"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "ลบชุด"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "ยกเลิกการติดตามชุด"
+
+# AI Translated
+msgid "Update available"
+msgstr "มีอัปเดต"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "ชุดที่ไม่ได้รับอนุญาต"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "เปิดชุดนี้ในเบราว์เซอร์ของคุณ"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "ติดตามแล้ว"
+
+# AI Translated
+msgid "Local"
+msgstr "ในเครื่อง"
+
msgid "Bundle folder does not exist."
msgstr "ไม่มีโฟลเดอร์ชุด"
@@ -22207,6 +24997,14 @@ msgstr "ยกเลิกการติดตามชุด"
msgid "ExportPresetBundle"
msgstr "ส่งออกชุดค่าที่ตั้งไว้ล่วงหน้า"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "ส่งออกไปยัง OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "ส่งออกไปยังโฟลเดอร์"
+
msgid "Save preset bundle"
msgstr "บันทึกชุดค่าที่ตั้งไว้ล่วงหน้า"
@@ -22294,6 +25092,11 @@ msgstr "การควบคุมความแห้งของ AMS"
msgid "Filament Drying Settings"
msgstr "การตั้งค่าการอบแห้งเส้นพลาสติก"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "ชม."
+
# AI Translated
msgid "Stopping"
msgstr "กำลังหยุด"
@@ -22473,6 +25276,11 @@ msgstr "กำลังเริ่ม: กำลังตรวจสอบช
msgid "Starting: Checking air vent"
msgstr "กำลังเริ่ม: กำลังตรวจสอบช่องระบายอากาศ"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "ไม่สามารถสร้างไดเรกทอรี %1% ได้"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "เส้นพลาสติกอาจไม่เข้ากันกับการตั้งค่าเครื่องปัจจุบัน จะใช้การตั้งค่าฟิลาเมนต์ทั่วไป"
@@ -22488,6 +25296,105 @@ msgstr "เส้นพลาสติกอาจไม่เข้ากัน
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "ไม่ทราบแบบจำลองเส้นพลาสติก ระบบจะใช้การตั้งค่าฟิลาเมนต์แบบสุ่ม"
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "ไม่รู้จักไฟล์การกำหนดค่า: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "ไฟล์การกำหนดค่าไม่ถูกต้อง: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "ช่อง %1% -> ช่อง %2%: เส้นพลาสติกผสม"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "คำนิยามเส้นพลาสติกผสม: ถึงขีดจำกัดช่องเส้นพลาสติกแล้ว"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "ถึงขีดจำกัดช่องเส้นพลาสติกแล้ว"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "ขีดจำกัดเส้นพลาสติกของเครื่องพิมพ์คือ %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "ช่อง %1% -> ช่อง %2%: เส้นพลาสติกผสมที่ยังไม่ได้กำหนด (ขีดจำกัดเส้นพลาสติกของเครื่องพิมพ์คือ %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "ช่อง %1%: เส้นพลาสติกผสมที่ยังไม่ได้กำหนด (ขีดจำกัดเส้นพลาสติกของเครื่องพิมพ์คือ %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "ช่อง %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "ช่อง %1%: นำเข้าคำนิยามเส้นพลาสติกผสมไม่ได้"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "ต้องมีส่วนประกอบอย่างน้อยสองรายการ"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "ส่วนประกอบอ้างอิงช่องที่ไม่มีอยู่"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "คำนิยามเส้นพลาสติกผสม: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "ช่อง %1%: นำเข้าคำนิยามเส้นพลาสติกผสมไม่ได้ (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "ช่อง %1%: %2% -> %3% (ทดแทน)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"โหลดไฟล์การกำหนดค่า %1% ไม่สำเร็จ\n"
+"แนะนำให้ล้างไดเรกทอรี %2% ก่อน"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"เวอร์ชันการกำหนดค่าของผู้ขาย %1%: %2% ไม่ถูกต้อง\n"
+"แนะนำให้ล้างไดเรกทอรี %3% ก่อน"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"โหลดไฟล์การกำหนดค่า %1% ไม่สำเร็จ: %2%\n"
+"แนะนำให้ล้างไดเรกทอรี %3% ก่อน"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "ซ่อนระนาบอ้างอิงและแกน"
@@ -22801,6 +25708,11 @@ msgstr "ไม่มีบอดี้พื้นผิวให้เพิ่
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "เรขาคณิตอ้างอิง / เส้นโค้ง (ระนาบ / แกน / ระบบพิกัด / เฮลิกซ์ / ฉาย)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "ระนาบ"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "ระนาบอ้างอิง (ออฟเซ็ต / เอียง / ระนาบกึ่งกลาง / สัมผัส / สองขอบ / ทับกัน)"
@@ -22867,6 +25779,11 @@ msgstr "ย้ายและ/หรือหมุนบอดี้ที่
msgid "Transform needs a body — add or import one first"
msgstr "คำสั่งแปลงรูปต้องใช้บอดี้ — เพิ่มหรือนำเข้าบอดี้ก่อน"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "กลับด้าน"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "สะท้อนบอดี้กับระนาบ"
@@ -22960,6 +25877,11 @@ msgstr "(ไม่มี)"
msgid "Hole / thread"
msgstr "รู / เกลียว"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "รู"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "เจาะรูที่กึ่งกลางผิวหน้าที่เลือก หรือวางบนระนาบ"
@@ -23004,6 +25926,11 @@ msgstr "คลิก 2 จุด หรือเส้น / วงกลม /
msgid "Line / polyline"
msgstr "เส้น / โพลีไลน์"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "เส้น"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "คลิกจุดเริ่มต้น แล้วจุดสิ้นสุด — จากนั้นกำหนดความยาวที่แน่นอน"
@@ -23140,6 +26067,9 @@ msgstr "สไปลน์"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "คลิกจุดควบคุม; ดับเบิลคลิก คลิกขวา หรือกด Enter เพื่อเสร็จสิ้น"
+msgid "Point"
+msgstr "จุด"
+
# AI Translated
msgid "Click to place a point"
msgstr "คลิกเพื่อวางจุด"
@@ -23258,16 +26188,15 @@ msgstr "เลือกเอนทิตี ลากจุดจับมุ
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "คลิกจุดศูนย์กลาง แล้วคลิกจุดยอด — %d ด้าน, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "คลิกจุดศูนย์กลาง แล้วคลิกจุดยอด — %d ด้าน, แบบแนบนอก"
# AI Translated
-msgid "circumscribed"
-msgstr "แบบแนบนอก"
-
-# AI Translated
-msgid "inscribed"
-msgstr "แบบแนบใน"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "คลิกจุดศูนย์กลาง แล้วคลิกจุดยอด — %d ด้าน, แบบแนบใน"
# AI Translated
msgid "Polygon"
@@ -23414,11 +26343,11 @@ msgstr "พลิกภาคตัด — แสดงอีกครึ่ง
# AI Translated
msgid "Choose how Commit to Plate sends the bodies"
-msgstr "เลือกวิธีที่คำสั่ง ส่งไปยังฐานพิมพ์ ใช้ส่งบอดี้"
+msgstr "เลือกวิธีที่คำสั่ง ส่งไปยังเพลต ใช้ส่งบอดี้"
# AI Translated
msgid "Commit to Plate"
-msgstr "ส่งไปยังฐานพิมพ์"
+msgstr "ส่งไปยังเพลต"
# AI Translated
msgid "All bodies become one object with a part per body, keeping their relative positions"
@@ -23426,7 +26355,7 @@ msgstr "บอดี้ทั้งหมดจะรวมเป็นวัต
# AI Translated
msgid "Commit to Plate (as bodies)"
-msgstr "ส่งไปยังฐานพิมพ์ (แยกตามบอดี้)"
+msgstr "ส่งไปยังเพลต (แยกตามบอดี้)"
# AI Translated
msgid "Each body becomes its own object, placed on its own"
@@ -23604,6 +26533,11 @@ msgstr "บนผิวหน้า"
msgid "Thread plane"
msgstr "ระนาบเกลียว"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "มาตรฐาน"
+
# AI Translated
msgid "Pitch"
msgstr "ระยะพิตช์"
@@ -23791,6 +26725,9 @@ msgstr "เลือกผิวหน้าของทรงตันเพื
msgid "(pick a side face)"
msgstr "(เลือกผิวหน้าด้านข้าง)"
+msgid "Face"
+msgstr "หน้า"
+
# AI Translated
msgid "Draft"
msgstr "มุมถอดแบบ"
@@ -24169,8 +27106,9 @@ msgstr "อัปเดตสเก็ตช์แล้ว"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "สร้างสเก็ตช์แล้ว (มิติขับเคลื่อน %zu รายการ) — เลือกสเก็ตช์ แล้วคลิกขวาเพื่อยืดขึ้นรูป"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "สร้างสเก็ตช์แล้ว (มิติขับเคลื่อน %zu รายการ) — เลือกสเก็ตช์ แล้วคลิกขวาเพื่อยืดขึ้นรูป"
# AI Translated
#, c-format, boost-format
@@ -24304,8 +27242,9 @@ msgstr "กำลังแก้ไข: สเก็ตช์ %d · N = ม
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "สำเร็จ — %zu รูปสามเหลี่ยม"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "สำเร็จ — %zu รูปสามเหลี่ยม"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -24390,13 +27329,17 @@ msgstr "เมชไม่มีรูปสามเหลี่ยม"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
"เมชนี้มีรูปสามเหลี่ยม %d รูป รูปสามเหลี่ยมทุกรูปจะกลายเป็นผิวหน้า B-rep ก่อนการรวมผิวหน้าที่อยู่บนระนาบเดียวกัน การนำเข้าจึงอาจใช้เวลานานและได้บอดี้ที่แก้ไขได้ช้า โดยทั่วไปควรลดรายละเอียดของเมชก่อน\n"
"\n"
-"นำเข้าต่อหรือไม่"
+"นำเข้าต่อหรือไม่?"
# AI Translated
msgid "Large mesh"
@@ -24422,8 +27365,8 @@ msgstr "นำเข้าเมชล้มเหลว: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "นำเข้าทรงตันแล้ว — %d รูปสามเหลี่ยม → %d ผิวหน้า, ปริมาตร %.2f มม.³ เลือกผิวหน้าหรือขอบ แล้วใช้ลบมุมมน / ตัด / เปลือก เพื่อแก้ไข"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "นำเข้าทรงตันแล้ว — สามเหลี่ยม: %d → ผิวหน้า: %d, ปริมาตร %.2f มม.³ เลือกผิวหน้าหรือขอบ แล้วใช้ลบมุมมน / ตัด / เปลือก เพื่อแก้ไข"
# AI Translated
#, c-format, boost-format
@@ -24440,8 +27383,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "เพิ่ม %s ลงในสเก็ตช์แล้ว — กดยืนยันเพื่อบันทึก"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — ลากเพื่อวาง/ปรับขนาด แล้วกดยืนยัน"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — ลากเพื่อวาง/ปรับขนาด แล้วกดยืนยัน"
# AI Translated
msgid "Insert canceled"
@@ -24647,9 +27592,11 @@ msgid "a geometry operation failed"
msgstr "การดำเนินการทางเรขาคณิตล้มเหลว"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · เลือกแล้ว %d รายการ"
+msgid_plural " · %d picked"
+msgstr[0] " · เลือกแล้ว %d รายการ"
# AI Translated
#, c-format, boost-format
@@ -24664,7 +27611,8 @@ msgstr "เลือก — คลิกเอนทิตีเพื่อเ
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "เลือกแล้ว %d รายการ · ตอนนี้เลือกเงื่อนไขบังคับ (แนวนอน, ขนาน, สัมผัส, เท่ากัน…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "เลือกแล้ว %d รายการ · ตอนนี้เลือกเงื่อนไขบังคับ (แนวนอน, ขนาน, สัมผัส, เท่ากัน…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -24925,7 +27873,8 @@ msgstr "กลับด้าน — กำหนดแกนแล้ว ·
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "กลับด้าน — กำหนดแกนแล้ว · จะกลับด้าน %d รายการ · คลิกรายการอื่นเพื่อเพิ่มหรือนำออก · Enter เพื่อใช้"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "กลับด้าน — กำหนดแกนแล้ว · จะกลับด้าน %d รายการ · คลิกรายการอื่นเพื่อเพิ่มหรือนำออก · Enter เพื่อใช้"
# AI Translated
msgid "Move — click the entities to move"
@@ -25047,8 +27996,9 @@ msgstr "จุดสเก็ตช์"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "เอนทิตีสเก็ตช์ %d รายการ"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "เอนทิตีสเก็ตช์ %d รายการ"
# AI Translated
msgid "select something first"
@@ -25583,8 +28533,10 @@ msgid "Applied edit"
msgstr "ใช้การแก้ไขแล้ว"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — พิมพ์ค่า แล้วกด Enter (หรือยืนยัน)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — พิมพ์ค่า แล้วกด Enter (หรือยืนยัน)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -25646,20 +28598,33 @@ msgstr "ส่งออก STEP ล้มเหลว: %s"
# AI Translated
msgid "Commit to Plate (as bodies) — send each body to Prepare as its own object"
-msgstr "ส่งไปยังฐานพิมพ์ (แยกตามบอดี้) — ส่งแต่ละบอดี้ไปยังเตรียมพิมพ์เป็นวัตถุแยกกัน"
+msgstr "ส่งไปยังเพลต (แยกตามบอดี้) — ส่งแต่ละบอดี้ไปยังเตรียมพิมพ์เป็นวัตถุแยกกัน"
# AI Translated
msgid "Commit to Plate — send the solid to Prepare"
-msgstr "ส่งไปยังฐานพิมพ์ — ส่งทรงตันไปยังเตรียมพิมพ์"
+msgstr "ส่งไปยังเพลต — ส่งทรงตันไปยังเตรียมพิมพ์"
# AI Translated
msgid "Nothing to commit — add a feature first"
msgstr "ไม่มีสิ่งที่จะส่งไปยังฐานพิมพ์ — เพิ่มฟีเจอร์ก่อน"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "บอดี้ออกแบบ %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "บอดี้ทั้งหมดถูกซ่อนอยู่ — แสดงอย่างน้อยหนึ่งบอดี้ก่อนส่งไปยังฐานพิมพ์"
+# AI Translated
+msgid "Design Assembly"
+msgstr "การประกอบออกแบบ"
+
+# AI Translated
+msgid "Design Body"
+msgstr "บอดี้ออกแบบ"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -25725,8 +28690,9 @@ msgstr "ไม่ถูกต้อง: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "พรีวิว — %zu รูปสามเหลี่ยม"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "พรีวิว — %zu รูปสามเหลี่ยม"
# AI Translated
#, c-format, boost-format
@@ -25826,8 +28792,9 @@ msgstr "ไม่สามารถทำให้มิตินั้นเป
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "เงื่อนไขบังคับ %1% รายการใช้กับเรขาคณิตนี้ไม่ได้ (เส้นโค้งวงรีหรือสไปลน์ หรือวงกลมที่มีขนาดเป็นศูนย์) จึงถูกละเว้น"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "เงื่อนไขบังคับ %1% รายการใช้กับเรขาคณิตนี้ไม่ได้ (เส้นโค้งวงรีหรือสไปลน์ หรือวงกลมที่มีขนาดเป็นศูนย์) จึงถูกละเว้น"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -25885,8 +28852,9 @@ msgstr "ลบมุมเอียง: ระยะเกินความย
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "นำเงื่อนไขบังคับ %1% รายการที่ใช้ไม่ได้แล้วหลังการลบมุมมน/ลบมุมเอียงออกแล้ว"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "นำเงื่อนไขบังคับ %1% รายการที่การลบมุมมน/ลบมุมเอียงทำให้ใช้ไม่ได้ออกแล้ว"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -25906,8 +28874,9 @@ msgstr "จำนวนสำเนาต้องเป็นจำนวนเ
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "การแปลงรูปได้ปลดเงื่อนไขบังคับ %1% รายการ"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "การแปลงรูปได้ปลดเงื่อนไขบังคับ %1% รายการ"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26058,11 +29027,6 @@ msgstr "เพิ่มความหนาพื้นผิว"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "คำสั่งเพิ่มความหนาพื้นผิวต้องใช้บอดี้พื้นผิว — สร้างด้วยเครื่องมือพื้นผิวก่อน"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "รู"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26147,11 +29111,6 @@ msgstr "แพทเทิร์นแบบวงกลม"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "ทำซ้ำบอดี้รอบแกน — กำหนดจำนวนและมุมกวาด"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "กลับด้าน"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26188,11 +29147,6 @@ msgstr "คำสั่งจัดแนวต้องใช้บอดี้
msgid "Align the body to a picked face or plane"
msgstr "จัดแนวบอดี้กับผิวหน้าหรือระนาบที่เลือก"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "ระนาบ"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -26298,11 +29252,6 @@ msgstr "ลบบอดี้"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "ลบบอดี้นี้ทั้งหมด — จะนำฟีเจอร์ที่ใช้สร้างบอดี้นี้ออกด้วย"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "เส้น"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -26617,213 +29566,6 @@ msgstr "แบบอักษรนี้ไม่มีเส้นขอบส
msgid "Size: %.1f × %.1f mm"
msgstr "ขนาด: %.1f × %.1f มม."
-# AI Translated
-msgid "Primitive"
-msgstr "รูปทรงพื้นฐาน"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "สร้างเมชว่างเปล่า"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "กล่อง"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "ขนาดด่วน:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "ความกว้าง (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "ความลึก (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "ความสูง (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "R ล่าง"
-
-# AI Translated
-msgid "Top R"
-msgstr "R บน"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "R หลัก"
-
-# AI Translated
-msgid "Minor R"
-msgstr "R รอง"
-
-# AI Translated
-msgid "All edges"
-msgstr "ขอบทั้งหมด"
-
-# AI Translated
-msgid "Top edges"
-msgstr "ขอบบน"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "ขอบล่าง"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "ขอบด้านข้าง"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "ความละเอียดเมช"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "เพิ่มรูปทรง"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "ไม่มีโปรไฟล์ด้านนอก"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "ไม่สามารถสร้างผิวหน้าด้านนอกได้"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "ไม่สามารถสร้างผิวหน้าที่มีรูได้"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "หมุนขึ้นรูปล้มเหลว"
-
-# AI Translated
-msgid "Profile"
-msgstr "โปรไฟล์"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "เริ่มโปรไฟล์ใหม่ (สำหรับรู)"
-
-# AI Translated
-msgid "Segments"
-msgstr "เซกเมนต์"
-
-# AI Translated
-msgid "Sides"
-msgstr "ด้าน"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "คลิกบนพื้นที่วาดเพื่อวาด"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "สแน็ปกับกริด"
-
-# AI Translated
-msgid "Grid step"
-msgstr "ระยะกริด"
-
-# AI Translated
-msgid "Outer"
-msgstr "ด้านนอก"
-
-# AI Translated
-msgid "closed"
-msgstr "แบบปิด"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% จุด %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (บน)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (ด้านหน้า)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (ด้านข้าง)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "องศาหมุนขึ้นรูป"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "ตั้งเป็น 0 เพื่อยืดขึ้นรูป, >0 เพื่อหมุนขึ้นรูป"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "ช่องเว้า (ตัด)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "โปรไฟล์ปิด %zu รายการ"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "วาดโปรไฟล์ปิดเพื่อเปิดใช้งาน"
-
-# AI Translated
-msgid "Clear all"
-msgstr "ล้างทั้งหมด"
-
-# AI Translated
-msgid "Empty result"
-msgstr "ผลลัพธ์ว่างเปล่า"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "ยืดขึ้นรูป: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "หมุนขึ้นรูป: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "ไม่ได้เลือกวัตถุ"
-
-# AI Translated
-msgid "Face failed"
-msgstr "สร้างผิวหน้าล้มเหลว"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "สร้างผิวหน้าที่มีรูล้มเหลว"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "เมชเครื่องมือว่างเปล่า"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "เพิ่มช่องเว้าแล้ว (วอลลุ่มเชิงลบ)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "ช่องเว้า: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -26945,6 +29687,10 @@ msgstr "กิสโมประกอบ"
msgid "Gizmo brim ears"
msgstr "Gizmo หูขอบยึดชิ้นงาน (Brim Ears)"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "กิสโม่ระบายการกระจัดพื้นผิว"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "แถบเลื่อนแนวตั้ง - เลื่อนนิ้วโป้งที่ใช้งานอยู่ขึ้น"
@@ -26986,7 +29732,7 @@ msgstr "มุมกล้อง - ด้านขวา"
# AI Translated
msgid "Camera view - Current plate"
-msgstr "มุมมองกล้อง - ฐานพิมพ์ปัจจุบัน"
+msgstr "มุมมองกล้อง - เพลตปัจจุบัน"
msgid "Zoom in"
msgstr "ซูมเข้า"
@@ -27180,6 +29926,12 @@ msgstr "ต้องมีผิวหน้าทรงกระบอกทั
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "ต้องมีผิวหน้าทรงกระบอกทั้งสองด้าน — ตัวเชื่อมต่อ %1% อยู่บนผิวหน้าโค้ง"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (ไม่พบระนาบฐาน)"
+
# AI Translated
msgid "two points are coincident"
msgstr "จุดสองจุดทับกัน"
@@ -27208,10 +29960,31 @@ msgstr "ระนาบขนานกัน (ไม่มีเส้นตั
msgid "zero-length direction"
msgstr "ทิศทางมีความยาวเป็นศูนย์"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "ฟีเจอร์หนึ่งทำงานกับบอดี้ %1% ซึ่งยังไม่มีอยู่ ณ จุดนั้นในประวัติ"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "\"%1%\" ทำงานกับบอดี้ที่สร้างโดยฟีเจอร์ที่ถูกลบหรือซ่อนไว้"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "\"%1%\" ทำงานกับบอดี้ที่ยังไม่มีอยู่ ณ จุดนั้นในประวัติ"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "ฟีเจอร์นี้ถูกใช้โดยฟีเจอร์ถัดไป"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "\"%1%\" ใช้ \"%2%\" จึงไม่สามารถอยู่ก่อนหน้าได้"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "เอนทิตีสเก็ตช์ไม่ได้ประกอบเป็นลูปปิด"
@@ -27222,9 +29995,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "เปิดอยู่ที่ (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...และปลายเปิดอีก %1% จุด"
+msgid "Open ends not shown: %1%"
+msgstr "ปลายเปิดที่ไม่ได้แสดง: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "หมุนขึ้นรูป: เส้นแกนไม่อยู่ในสเก็ตช์แล้ว — เลือกแกนอีกครั้ง"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "หมุนขึ้นรูป: เส้นแกนไม่มีความยาว"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -27372,6 +30154,30 @@ msgstr "สร้างไวร์ของรูล้มเหลว"
msgid "hole cut failed"
msgstr "ตัดรูล้มเหลว"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "เกลียว: เส้นผ่านศูนย์กลางต้องมีอย่างน้อย 1 มม."
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "เกลียว: ระยะพิตช์ต้องมากกว่า 0.1 มม."
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "เกลียว: ความลึกต้องอยู่ระหว่าง 0 ถึง 0.7 x ระยะพิตช์"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "เกลียว: ความลึกมากเกินไปสำหรับเส้นผ่านศูนย์กลางนี้"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "เกลียว: ความยาวต้องมากกว่าครึ่งหนึ่งของระยะพิตช์"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "เกลียว: จำนวนรอบมากเกินไป (ความยาว / ระยะพิตช์ ต้องต่ำกว่า 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "เกลียวในต้องใช้บอดี้"
@@ -27432,6 +30238,22 @@ msgstr "ลบผิวหน้าล้มเหลว"
msgid "delete_face produced no geometry"
msgstr "การลบผิวหน้าไม่ได้สร้างรูปทรงเรขาคณิตใด ๆ"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "บูลีน: ไม่มีบอดี้เป้าหมาย"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "บูลีน: ไม่มีบอดี้เครื่องมือ — เลือกบอดี้ที่สอง"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "บูลีน: เป้าหมายและเครื่องมือเป็นบอดี้เดียวกัน"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "บูลีน: บอดี้หนึ่งไม่มีเรขาคณิต"
+
# AI Translated
msgid "boolean operation failed"
msgstr "การดำเนินการบูลีนล้มเหลว"
@@ -27760,6 +30582,10 @@ msgstr "รูปภาพโมเดล"
msgid "Auxiliaries"
msgstr "อุปกรณ์เสริม"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "หอไล่เส้นบนสายพาน"
+
# AI Translated
msgid "Project Filament List"
msgstr "รายการเส้นพลาสติกโครงการ"
@@ -27794,8 +30620,16 @@ msgstr "ต้องมีเส้นพลาสติกที่เป็น
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "รายการวัสดุรองรับได้สูงสุด %1% สี หลังจากแยกสี %2% จำนวนวัสดุจะเกิน %1% โปรดลบเส้นพลาสติกที่ไม่ได้ใช้ในหน้าจอหลักก่อนแยกสี"
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "รายการวัสดุรองรับได้สูงสุด %1% สี หลังจากแยกสีแบบรายการวัสดุ จำนวนวัสดุจะเกิน %1% โปรดลบเส้นพลาสติกที่ไม่ได้ใช้ในหน้าจอหลักก่อนแยกสี"
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "รายการวัสดุรองรับได้สูงสุด %1% สี หลังจากแยกสี %2% จำนวนวัสดุจะเกิน %1% โปรดลบเส้นพลาสติกที่ไม่ได้ใช้ในหน้าจอหลักก่อนแยกสี"
# AI Translated
msgid "Cyan"
@@ -27825,6 +30659,13 @@ msgstr "สีเขียว"
msgid "Blue"
msgstr "สีน้ำเงิน"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -27832,7 +30673,1234 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "รายการเส้นพลาสติกปัจจุบันไม่มี %s เส้นพลาสติกโครงการที่เส้นพลาสติกผสมต้องใช้จะถูกสร้างขึ้นโดยอัตโนมัติหลังจากแยกสี"
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "รายการเส้นพลาสติกปัจจุบันไม่มี %s เส้นพลาสติกโครงการที่เส้นพลาสติกผสมต้องใช้จะถูกสร้างขึ้นโดยอัตโนมัติหลังจากแยกสี"
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "ความทึบแสง"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -27928,10 +31996,6 @@ msgstr "การตั้งค่าของฉัน"
msgid "Custom Printer Setup"
msgstr "ตั้งค่าเครื่องพิมพ์แบบกำหนดเอง"
-# AI Translated
-msgid "Custom Printer"
-msgstr "เครื่องพิมพ์แบบกำหนดเอง"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "กำหนดโปรไฟล์เครื่องพิมพ์แบบกำหนดเอง"
@@ -28199,6 +32263,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "อบ"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "พิมพ์ค่าที่แน่นอนลงในแถบเลื่อน"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "ไอคอนแก้ไขที่ปลายด้านขวาของแถบเลื่อน"
+
# AI Translated
msgid "Texture displacement"
msgstr "การกระจัดพื้นผิว"
@@ -28335,6 +32407,50 @@ msgstr ""
msgid "Remove texture"
msgstr "นำพื้นผิวออก"
+# AI Translated
+msgid "Adjust image"
+msgstr "ปรับภาพ"
+
+# AI Translated
+msgid "Brightness"
+msgstr "ความสว่าง"
+
+# AI Translated
+msgid "Contrast"
+msgstr "ความเปรียบต่าง"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "ความคมชัด"
+
+# AI Translated
+msgid "Blur"
+msgstr "เบลอ"
+
+# AI Translated
+msgid "Hue"
+msgstr "เฉดสี"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "ทำให้รายละเอียดที่ละเอียดที่สุดในภาพเด่นชัดขึ้น ใช้หลังเบลอ จึงใช้ร่วมกันได้: เบลอจุดรบกวนออกก่อน แล้วเพิ่มความคมให้ขอบที่เหลือ"
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "เบลอตัวภาพเอง แถบเลื่อน ปรับให้เรียบ ของเลเยอร์เองจะทำให้ลายนูนนุ่มลงโดยไม่เปลี่ยนภาพ และควรลองใช้แถบนั้นก่อน"
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "พื้นผิวนี้เป็นโทนสีเทา จึงไม่มีเฉดสีให้เปลี่ยน"
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "โมเดลจะอัปเดตเมื่อคุณปล่อยแถบเลื่อน บันทึกเป็นสำเนา จะเขียนภาพที่ปรับแล้วลงในคลังพื้นผิวของคุณ และชี้เลเยอร์นี้ไปที่ภาพนั้น"
+
+# AI Translated
+msgid "Save as copy"
+msgstr "บันทึกเป็นสำเนา"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "นำเลเยอร์การกระจัดพื้นผิวออก"
@@ -28471,6 +32587,15 @@ msgstr "เขียนทุกขั้นตอนที่บันทึก
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "ไม่สามารถถ่ายโอนบริเวณที่ระบายไปยังโมเดลที่รีเมชแล้วได้ จึงไม่มีการเปลี่ยนแปลงใด ๆ สลับไปที่โหมดโปรแล้วรีเมชก่อนระบาย"
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "ช่วง: %1% ถึง %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "พิมพ์ค่าแทนการลาก การกด Ctrl+คลิกบนแถบเลื่อนก็ให้ผลเหมือนกัน"
+
# AI Translated
msgid "Pro"
msgstr "โปร"
@@ -28577,8 +32702,8 @@ msgid "Click a triangle to paint it"
msgstr "คลิกสามเหลี่ยมเพื่อระบาย"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "ต้องให้เลเยอร์ที่ใช้งานอยู่แมปด้วย คลี่ UV (LSCM)"
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "ใช้ได้เฉพาะกับเลเยอร์พื้นผิวที่แมปด้วย คลี่ UV (LSCM) - ตั้ง การแมป ของเลเยอร์ที่ใช้งานอยู่เป็น คลี่ UV เพื่อใช้มุมมองนี้"
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -28593,16 +32718,16 @@ msgid "Checker"
msgstr "ตาหมากรุก"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "ตาหมากรุก - ตารางทดสอบแทนพื้นผิว บริเวณที่ช่องยังเป็นสี่เหลี่ยมจัตุรัส พื้นผิวจะไม่บิดเบี้ยว บริเวณที่ช่องยืด พื้นผิวก็จะยืดเช่นกัน"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "ตาหมากรุก - ตารางทดสอบแทนพื้นผิว บริเวณที่ช่องยังเป็นสี่เหลี่ยมจัตุรัส พื้นผิวจะไม่บิดเบี้ยว บริเวณที่ช่องยืด พื้นผิวก็จะยืดเช่นกัน เปิดตัวแก้ไข UV หากปิดอยู่"
# AI Translated
msgid "Distortion"
msgstr "ความบิดเบี้ยว"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "ความบิดเบี้ยว - แผนที่ความร้อนแสดงการยืดจากสีน้ำเงินถึงสีแดงบนผลการคลี่ UV"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "ความบิดเบี้ยว - แผนที่ความร้อนแสดงการยืดจากสีน้ำเงินถึงสีแดงบนผลการคลี่ UV เปิดตัวแก้ไข UV หากปิดอยู่"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -28628,6 +32753,10 @@ msgstr "เลือกภาพอื่นสำหรับเลเยอร
msgid "not painted"
msgstr "ยังไม่ได้ระบาย"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "ความสว่าง ความเปรียบต่าง ความคมชัด เบลอ และเฉดสี แสดงบนภาพและบนโมเดลขณะที่คุณตั้งค่า บันทึกเป็นสำเนา จะเขียนผลลัพธ์ลงในคลังพื้นผิวของคุณ และชี้เลเยอร์นี้ไปที่ผลลัพธ์นั้น"
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "เลื่อนขึ้น - ใช้ก่อน"
@@ -28648,10 +32777,20 @@ msgstr "ความสูงของลายนูน: ระยะที่
msgid "Tile size"
msgstr "ขนาดไทล์"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "แมปด้วยเลย์เอาต์ UV ของโมเดลเอง ซึ่งเป็นตำแหน่งวางอยู่แล้ว - พื้นผิวหนึ่งชุดครอบคลุมพอดี จึงไม่มีขนาดไทล์ให้ตั้งค่า"
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "ความกว้างของพื้นผิวหนึ่งชุดบนโมเดล ค่าที่เล็กลงจะทำให้ลวดลายซ้ำบ่อยขึ้นและมีรายละเอียดละเอียดขึ้น เมื่อปิด ไทล์ ค่านี้คือขนาดของสำเนาเดียว"
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "หมุนพื้นผิวบนผิวโมเดล หน่วยเป็นองศา - สำหรับจัดแนวลวดลายให้ตรงกับขอบของโมเดล"
@@ -28719,28 +32858,32 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "สลับใช้เส้นพลาสติกสองเส้นเพื่อจำลองสีที่อยู่ระหว่างกัน ทำให้เส้นพลาสติกเพียงไม่กี่สีครอบคลุมภาพถ่ายหรือการไล่ระดับสีได้ ภาพที่เป็นสีเรียบจะพิมพ์ออกมาเหมือนกันไม่ว่าแบบใด เมื่อปิดจะใช้เส้นพลาสติกหนึ่งเส้นต่อหนึ่งบริเวณ"
# AI Translated
-msgid "Mix by"
-msgstr "ผสมตาม"
+msgid "Mixed colors"
+msgstr "สีผสม"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "ผิว"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "จำนวนเส้นพลาสติกผสมสูงสุดที่การอบอาจเพิ่มได้ โดยเลือกจากสีของพื้นผิว และจะสร้างเฉพาะเส้นที่การอบใช้จริงเท่านั้น"
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"เลเยอร์: เส้นพลาสติกทั้งสองสลับกันระหว่างเลเยอร์การพิมพ์ ซึ่งผสมกลมกลืนบนผิวที่ตั้งตรง แต่จะหายไปบนผิวในแนวราบ เพราะทั้งเลเยอร์เป็นแถบสีเดียว\n"
-"ผิว: ลายตาหมากรุกละเอียดทั่วผิว ใช้ได้ทุกมุม แต่อาจดูเป็นลวดลายแทนที่จะเป็นการผสมสี\n"
-"อัตโนมัติ: ใช้เลเยอร์บนผิวที่ตั้งตรง ส่วนผิวในแนวราบจะใช้เส้นพลาสติกเดียวที่ใกล้เคียงกว่า เนื่องจากลายตาหมากรุกบนผิวนั้นจะเห็นเป็นลวดลาย"
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% สีที่พิมพ์ได้จากเส้นพลาสติก %2% เส้น"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "จากเส้นพลาสติก %1% เส้น"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% สีที่พิมพ์ได้ %2%"
# AI Translated
msgid "Denoise"
@@ -28791,6 +32934,18 @@ msgstr "จากมุมมอง"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "จากมุมมอง - ฉายตรงลงบนบริเวณที่ระบายจากตำแหน่งที่คุณกำลังมอง เหมือนเครื่องฉายสไลด์"
+# AI Translated
+msgid "Model UV"
+msgstr "UV ของโมเดล"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "UV ของโมเดล - ใช้พิกัดพื้นผิวที่มาพร้อมกับโมเดลเอง ดังนั้นพื้นผิวที่ทำมาสำหรับโมเดลนั้นจะวางตรงตำแหน่งที่ระบายไว้พอดี ไม่มีการคลี่ และไม่ใช้ ขนาดไทล์: เลย์เอาต์ของโมเดลเองคือตำแหน่งวาง"
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "โมเดลนี้ไม่มีพิกัดพื้นผิวของตัวเอง เฉพาะโมเดลที่นำเข้าพร้อมช่อง UV - เช่น OBJ ที่มีพื้นผิว - เท่านั้นจึงจะแมปด้วยพิกัดเหล่านั้นได้"
+
# AI Translated
msgid "Open UV editor"
msgstr "เปิดตัวแก้ไข UV"
@@ -28805,8 +32960,9 @@ msgstr "ยังไม่ได้คลี่ UV"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% เกาะ"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% เกาะ"
# AI Translated
msgid "Capture current view"
@@ -28836,10 +32992,6 @@ msgstr "กรอบฉาย"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "เปิดหน้าต่างที่คุณลากวางเหนือโมเดลได้ สิ่งที่มองเห็นผ่านหน้าต่างนั้นจะได้รับพื้นผิว และขอบของหน้าต่างจะกลายเป็นขอบของการฉาย"
-# AI Translated
-msgid "Opacity"
-msgstr "ความทึบแสง"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "ความทึบของหน้าต่างกรอบขณะวาง ลดค่าเพื่อมองเห็นโมเดลผ่านกรอบ โดยไม่มีผลต่อผลลัพธ์"
@@ -28893,6 +33045,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "เพิ่ม"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "แทนที่"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -28912,8 +33069,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "เลเยอร์ฐานไม่มีสิ่งใดอยู่ข้างใต้ให้รวมด้วย จึงใช้แบบเพิ่มเสมอ"
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "สิ่งที่เลเยอร์นี้ทำในบริเวณที่ซ้อนทับกับเลเยอร์ด้านล่าง เพิ่ม และ ลบออก จะเพิ่มลายนูนทับหรือแกะลายนูนออก คูณ และ หาร จะปรับสเกลสิ่งที่อยู่ข้างใต้ ซึ่งทำให้เลเยอร์นี้เป็นมาสก์ทับเลเยอร์ด้านล่าง - ในกรณีนั้น ความลึก จะทำหน้าที่เป็นความแรง และ 1 มม. จะไม่เปลี่ยนแปลงบริเวณสีขาว"
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "สิ่งที่เลเยอร์นี้ทำในบริเวณที่ซ้อนทับกับเลเยอร์ด้านล่าง เพิ่ม และ ลบออก จะเพิ่มลายนูนทับหรือแกะลายนูนออก แทนที่ จะแทนที่เลเยอร์เหล่านั้น ทำให้บริเวณที่ระบายเหลือเฉพาะลายนูนของเลเยอร์นี้ คูณ และ หาร จะปรับสเกลสิ่งที่อยู่ข้างใต้ ซึ่งทำให้เลเยอร์นี้เป็นมาสก์ทับเลเยอร์ด้านล่าง - ในกรณีนั้น ความลึก จะทำหน้าที่เป็นความแรง และ 1 มม. จะไม่เปลี่ยนแปลงบริเวณสีขาว"
# AI Translated
msgid "Adjust placement"
@@ -28937,8 +33094,9 @@ msgstr "การตั้งค่าเพิ่มเติม"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "ใช้ครบทั้ง %1% เลเยอร์แล้ว"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "ใช้ครบทั้ง %1% เลเยอร์แล้ว"
# AI Translated
msgid "Add layer"
@@ -29018,8 +33176,9 @@ msgstr "งบประมาณสามเหลี่ยม: ตั้งค
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "พรีวิว: %1% สามเหลี่ยม"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "พรีวิว: %1% รูปสามเหลี่ยม"
# AI Translated
msgid "Steps"
@@ -29061,6 +33220,12 @@ msgstr "การรีเมช"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "ขนาดสามเหลี่ยมที่ใช้สร้างทั้งโมเดลใหม่ หน่วยเป็นมม. การกระจัดทำงานได้ดีที่สุดบนเมชที่สม่ำเสมอ ซึ่งค่านี้จะช่วยสร้างเมชดังกล่าวจากไฟล์นำเข้าที่ไม่สม่ำเสมอ"
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "คงขอบคม"
@@ -29195,14 +33360,6 @@ msgstr "ต้องใช้สามเหลี่ยมประมาณ %1
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "จำนวนสามเหลี่ยม (หน่วยพัน) ที่การเพิ่มความละเอียดเพิ่มให้โมเดลได้ สามเหลี่ยมที่ตรงกับรูปทรงน้อยที่สุดจะถูกแบ่งก่อนเสมอ ดังนั้นแม้จะใช้งบประมาณจนหมด ก็ใช้ไปในจุดที่เห็นผลชัดที่สุด เพิ่มค่าหากลายนูนยังดูหยาบ"
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "หยุดการอบ ส่วนที่เสร็จแล้วจะคงอยู่บนโมเดล และสามารถเลิกทำได้"
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "ปิดเครื่องมือโดยไม่อบ การระบาย เลเยอร์ และการตั้งค่าจะยังคงอยู่กับโมเดล"
-
# AI Translated
msgid "Preparing..."
msgstr "กำลังเตรียม..."
@@ -29227,35 +33384,51 @@ msgstr "เปลี่ยนแผนที่ความสูงที่ร
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "เปลี่ยนแผนที่ความสูงที่ระบายไว้ให้เป็นเรขาคณิตจริง เมชจะถูกรีเมชให้มีความหนาแน่นสม่ำเสมอและเพิ่มความละเอียดในบริเวณที่พื้นผิวมีการเปลี่ยนแปลงก่อน เพื่อให้รายละเอียดมีจุดยอดรองรับ - ทั้งหมดในขั้นตอนเดียว"
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "หยุดการอบ ส่วนที่เสร็จแล้วจะคงอยู่บนโมเดล และสามารถเลิกทำได้"
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "ปิดเครื่องมือโดยไม่อบ การระบาย เลเยอร์ และการตั้งค่าจะยังคงอยู่กับโมเดล"
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% พัน"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "โมเดล: %1% สามเหลี่ยม - การอบจะเพิ่มความละเอียดตามค่าความละเอียดด้านบน ภายในงบประมาณ"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "โมเดล: %1% รูปสามเหลี่ยม - การอบจะเพิ่มความละเอียดตามค่าความละเอียดด้านบน ภายในงบประมาณ"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "การอบเคลื่อนจุดยอดที่มีอยู่ - โมเดลยังคงมี %1% รูปสามเหลี่ยม"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "การอบเคลื่อนจุดยอดที่มีอยู่ - โมเดลยังคงมี %1% สามเหลี่ยม"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "ผลการอบสูงสุด ~%1% พันรูปสามเหลี่ยม"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "ผลการอบสูงสุด ~%1% พันสามเหลี่ยม"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% เลเยอร์ยังไม่ได้ระบาย ข้ามไป"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% เลเยอร์ยังไม่ได้ระบาย ข้ามไป"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% ยังไม่ได้ระบาย ข้ามไป"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% ยังไม่ได้ระบาย ข้ามไป"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29273,6 +33446,10 @@ msgstr "การแก้ไขการกระจัดพื้นผิว
msgid "Choose SLA archive:"
msgstr "เลือกไฟล์เก็บถาวร SLA:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "ไฟล์เก็บถาวร SL1 / SL1S"
+
# AI Translated
msgid "Import file"
msgstr "นำเข้าไฟล์"
@@ -29443,6 +33620,34 @@ msgstr "ปลั๊กอินเส้นพลาสติก"
msgid "Printer plugins"
msgstr "ปลั๊กอินเครื่องพิมพ์"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "พรีเซ็ตนี้ไม่ได้ใช้ความสามารถของปลั๊กอินใดๆ"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "ความสามารถที่พรีเซ็ตนี้ใช้"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "การกำหนดค่าความสามารถ (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "การกำหนดค่าปลั๊กอิน"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "ทิ้งค่าแทนที่ของพรีเซ็ตนี้และกลับไปใช้การกำหนดค่าส่วนกลางอีกครั้ง"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "คืนค่าเริ่มต้น"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "JSON ไม่ถูกต้อง"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "การกำหนดค่าไม่ใช่ JSON ที่ถูกต้อง การเปลี่ยนแปลงของคุณไม่ได้รับการบันทึก"
@@ -29462,10 +33667,6 @@ msgstr ""
"\n"
"การดำเนินการนี้จะทิ้งค่าที่พรีเซ็ตแทนที่ไว้และใช้การกำหนดค่าส่วนกลาง"
-# AI Translated
-msgid "Restore defaults"
-msgstr "คืนค่าเริ่มต้น"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "กำลังใช้การกำหนดค่าส่วนกลาง บันทึกพรีเซ็ตเพื่อเก็บการเปลี่ยนแปลงไว้"
@@ -29491,10 +33692,6 @@ msgstr "ยกเลิกการติดตาม"
msgid "Overwrite Plugin"
msgstr "เขียนทับปลั๊กอิน"
-# AI Translated
-msgid "Show in folder"
-msgstr "แสดงในโฟลเดอร์"
-
# AI Translated
msgid "Reinstall"
msgstr "ติดตั้งใหม่"
@@ -29503,6 +33700,10 @@ msgstr "ติดตั้งใหม่"
msgid "Delete cache and reload"
msgstr "ลบแคชและโหลดใหม่"
+# AI Translated
+msgid "No description."
+msgstr "ไม่มีคำอธิบาย"
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "เลือกแพ็กเกจปลั๊กอิน .py หรือ .whl"
@@ -29535,6 +33736,293 @@ msgstr "กำลังติดตั้งปลั๊กอิน"
msgid "Installed \"%s\"."
msgstr "ติดตั้ง \"%s\" แล้ว"
+# AI Translated
+msgid "Search plugins"
+msgstr "ค้นหาปลั๊กอิน"
+
+# AI Translated
+msgid "Clear search"
+msgstr "ล้างการค้นหา"
+
+# AI Translated
+msgid "Match case"
+msgstr "ตรงตามตัวพิมพ์เล็ก/ใหญ่"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "ตรงทั้งคำ"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "ตัวเลือกการติดตั้งปลั๊กอินเพิ่มเติม"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "ติดตั้งปลั๊กอิน"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "ติดตั้งปลั๊กอินจากเครื่อง"
+
+# AI Translated
+msgid "Activate"
+msgstr "เปิดใช้งาน"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "เรียงตามชื่อ"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "เรียงตามเวอร์ชัน"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "เวอร์ชันปลั๊กอิน"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "เรียงตามแหล่งที่มา"
+
+# AI Translated
+msgid "Source"
+msgstr "แหล่งที่มา"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "เรียงตามสถานะ"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "สถานะ"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "ลากเพื่อปรับขนาด ดับเบิลคลิกเพื่อรีเซ็ต"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "ปรับขนาดรายการปลั๊กอิน"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "รายละเอียดปลั๊กอิน"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "ข้อมูลปลั๊กอิน"
+
+# AI Translated
+msgid "Description"
+msgstr "คำอธิบาย"
+
+# AI Translated
+msgid "Config"
+msgstr "การกำหนดค่า"
+
+# AI Translated
+msgid "Changelog"
+msgstr "บันทึกการเปลี่ยนแปลง"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "การวินิจฉัย"
+
+# AI Translated
+msgid "Types"
+msgstr "ประเภท"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "เวอร์ชันที่ติดตั้ง"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "เวอร์ชันล่าสุด"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "อัปเดตเป็นเวอร์ชันล่าสุด"
+
+# AI Translated
+msgid "No description available"
+msgstr "ไม่มีคำอธิบาย"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "เลือกปลั๊กอินเพื่อกำหนดค่าความสามารถของปลั๊กอิน"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "ความสามารถที่กำหนดค่าได้"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "ทิ้งการตั้งค่าที่บันทึกไว้สำหรับความสามารถนี้และคืนค่าเริ่มต้นของปลั๊กอิน"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "บันทึกการเปลี่ยนแปลงของปลั๊กอิน"
+
+# AI Translated
+msgid "Date"
+msgstr "วันที่"
+
+# AI Translated
+msgid "Changes"
+msgstr "การเปลี่ยนแปลง"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "ไม่มีบันทึกการเปลี่ยนแปลง"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "ไม่พบปัญหา"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "ไม่พบปลั๊กอิน"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "ไม่มีปลั๊กอินที่ตรงกับ \"%s\""
+
+# AI Translated
+msgid "Mine"
+msgstr "ของฉัน"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "ติดตามแล้ว"
+
+# AI Translated
+# Needs human review: Plugin source label for a plugin no longer subscribed or available in OrcaCloud but still installed locally; check ตกค้าง reads right next to ของฉัน / ติดตามแล้ว / ในเครื่อง.
+msgid "Orphaned"
+msgstr "ตกค้าง"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "ในเครื่อง"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "เปิดใช้งานความสามารถของปลั๊กอินบางส่วนอยู่"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "ยุบความสามารถของ %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "ขยายความสามารถของ %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "ยุบความสามารถ"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "ขยายความสามารถ"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "เปิดปลั๊กอินนี้ในเบราว์เซอร์ของคุณ"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "ความสามารถ: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "ความสามารถ"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "เรียกใช้ \"%s\""
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "เปิดใช้งาน %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "ไม่ได้รับอนุญาตให้อัปเดต"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "กำลังโหลดปลั๊กอิน…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "ปลั๊กอินนี้ไม่มีความสามารถให้ใช้"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "เปิดใช้งานปลั๊กอินนี้เพื่อกำหนดค่าความสามารถ"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "ดูบน OrcaCloud ที่นี่ "
+
+# AI Translated
+msgid "Activated"
+msgstr "เปิดใช้งานแล้ว"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "ข้อผิดพลาดขณะทำงาน"
+
+# AI Translated
+msgid "Inactive"
+msgstr "ไม่ได้ใช้งาน"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "ปลั๊กอินนี้เปิดใช้งานอยู่และพร้อมใช้งาน"
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "ปลั๊กอินนี้ยังโหลดอยู่"
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "ปลั๊กอินนี้ถูกบล็อกจนกว่าจะแก้ไขข้อผิดพลาด"
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "ปลั๊กอินนี้โหลดแล้ว แต่ความสามารถหนึ่งรายงานข้อผิดพลาด"
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "ปลั๊กอินนี้ไม่ได้ใช้งาน เปิดใช้งานเพื่อติดตั้งหรือโหลดปลั๊กอิน"
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "เลือกปลั๊กอินเพื่อดูสถานะและรายละเอียด"
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "ตกค้าง: ปลั๊กอินนี้ไม่ได้ติดตามแล้วหรือไม่มีใน OrcaCloud อีกต่อไป สำเนาในเครื่องยังคงติดตั้งอยู่และยังใช้งานได้"
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "มีปลั๊กอินเวอร์ชันใหม่กว่า"
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "ไม่สามารถอัปเดตผ่านคลาวด์ได้ เนื่องจากปลั๊กอินนี้ไม่ได้รับอนุญาตให้อัปเดต"
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -29751,6 +34239,70 @@ msgstr "ไม่สามารถโหลดปลั๊กอินใหม
msgid "Reloaded \"%s\"."
msgstr "โหลด \"%s\" ใหม่แล้ว"
+# AI Translated
+msgid "Printer Connection"
+msgstr "การเชื่อมต่อเครื่องพิมพ์"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "โปรดตั้งค่าการเชื่อมต่อเครื่องพิมพ์เพื่อดูอุปกรณ์"
+
+# AI Translated
+msgid "No model information"
+msgstr "ไม่มีข้อมูลโมเดล"
+
+# AI Translated
+msgid "Edit Project Info"
+msgstr "แก้ไขข้อมูลโปรเจกต์"
+
+# AI Translated
+msgid "Model Information"
+msgstr "ข้อมูลโมเดล"
+
+# AI Translated
+msgid "Accessories"
+msgstr "อุปกรณ์เสริม"
+
+# AI Translated
+msgid "Profile Information"
+msgstr "ข้อมูลโปรไฟล์"
+
+# AI Translated
+msgid "Model name"
+msgstr "ชื่อโมเดล"
+
+# AI Translated
+msgid "Created by"
+msgstr "สร้างโดย"
+
+# AI Translated
+msgid "Remixed by"
+msgstr "รีมิกซ์โดย"
+
+# AI Translated
+msgid "Shared by"
+msgstr "แชร์โดย"
+
+# AI Translated
+msgid "Model description"
+msgstr "คำอธิบายโมเดล"
+
+# AI Translated
+msgid "BOM"
+msgstr "รายการวัสดุ"
+
+# AI Translated
+msgid "Profile name"
+msgstr "ชื่อโปรไฟล์"
+
+# AI Translated
+msgid "Profile Author"
+msgstr "ผู้เขียนโปรไฟล์"
+
+# AI Translated
+msgid "Profile description"
+msgstr "คำอธิบายโปรไฟล์"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "การตั้งค่าโหมดไล่เส้น"
@@ -29775,6 +34327,19 @@ msgstr "ลดเส้นพลาสติกที่เสียจากก
msgid "Terminal"
msgstr "เทอร์มินัล"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... หรือ uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "เทอร์มินัลปลั๊กอินพร้อมใช้งาน"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "โปรเซสสิ้นสุดด้วยรหัส: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "มีคำสั่งกำลังทำงานอยู่แล้ว"
@@ -29821,8 +34386,9 @@ msgstr "เส้นพลาสติกผสมใหม่"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "โครงการรองรับเส้นพลาสติกได้สูงสุด %d เส้น เส้นพลาสติกที่เกินจะถูกทิ้ง"
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "โครงการรองรับเส้นพลาสติกได้สูงสุด %d เส้น เส้นพลาสติกที่เกินจะถูกทิ้ง"
# AI Translated
msgid "Import Model"
@@ -29909,8 +34475,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "การคำนวณล้มเหลว โปรดปรับพารามิเตอร์แล้วลองอีกครั้ง"
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "เมชมีเรขาคณิตแบบ non-manifold หรือขอบเปิด คุณสามารถนำเข้าตามเดิมหรือซ่อมด้วยบริการซ่อมแซม 3D ของ Windows ก่อนนำเข้า"
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "เมชมีเรขาคณิตแบบ non-manifold หรือขอบเปิด คุณสามารถนำเข้าตามเดิมหรือซ่อมก่อนนำเข้า"
# AI Translated
msgid "Mesh repair"
@@ -29924,14 +34490,6 @@ msgstr "นำเข้าโดยไม่ซ่อม"
msgid "Repair and import"
msgstr "ซ่อมแล้วนำเข้า"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "โปรดทราบว่าเมชมีเรขาคณิตแบบ non-manifold หรือขอบเปิด"
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "ปัญหาเมช"
-
# AI Translated
msgid "The selected image is empty."
msgstr "ภาพที่เลือกว่างเปล่า"
@@ -29940,6 +34498,14 @@ msgstr "ภาพที่เลือกว่างเปล่า"
msgid "Failed to prepare the texture for use."
msgstr "ไม่สามารถเตรียมพื้นผิวสำหรับใช้งานได้"
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "ไม่สามารถสร้างโฟลเดอร์สำหรับพื้นผิวที่นำเข้าได้"
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "ไม่สามารถบันทึกพื้นผิวที่นำเข้าได้"
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "นำออกได้เฉพาะพื้นผิวที่คุณนำเข้าเองเท่านั้น"
@@ -29948,18 +34514,10 @@ msgstr "นำออกได้เฉพาะพื้นผิวที่ค
msgid "Could not delete the texture file."
msgstr "ไม่สามารถลบไฟล์พื้นผิวได้"
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "ไม่สามารถสร้างโฟลเดอร์สำหรับพื้นผิวที่นำเข้าได้"
-
# AI Translated
msgid "Could not load the selected image."
msgstr "ไม่สามารถโหลดภาพที่เลือกได้"
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "ไม่สามารถบันทึกพื้นผิวที่นำเข้าได้"
-
# AI Translated
msgid "Could not read the texture file."
msgstr "ไม่สามารถอ่านไฟล์พื้นผิวได้"
@@ -30003,8 +34561,9 @@ msgstr "เลือก คลี่ UV เป็นการแมปของ
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "เลือกจุดยอด %d จุด | ลาก = ย้ายพร้อมกัน, Shift/Ctrl คลิก = เพิ่ม/ลบ"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "เลือกจุดยอด %d จุด | ลาก = ย้ายพร้อมกัน, Shift/Ctrl คลิก = เพิ่ม/ลบ"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30012,8 +34571,9 @@ msgstr "โหมดจุดยอด: ลากจุดยอดเพื่
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "เลือกขอบ %d ขอบ | ลาก = ย้ายพร้อมกัน, Shift/Ctrl คลิก = เพิ่ม/ลบ"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "เลือกขอบ %d ขอบ | ลาก = ย้ายพร้อมกัน, Shift/Ctrl คลิก = เพิ่ม/ลบ"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30021,8 +34581,9 @@ msgstr "โหมดขอบ: ลากขอบเกาะเพื่อป
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "เลือกเกาะ %d เกาะ | ลาก = ย้ายพร้อมกัน, Shift/Ctrl คลิก = เพิ่ม/ลบ, R/S = หมุน/ปรับสเกลเกาะหลัก"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "เลือกเกาะ %d เกาะ | ลาก = ย้ายพร้อมกัน, Shift/Ctrl คลิก = เพิ่ม/ลบ, R/S = หมุน/ปรับสเกลเกาะหลัก"
# AI Translated
#, c-format, boost-format
@@ -30041,6 +34602,10 @@ msgstr " | สแนป เปิด"
msgid "Change texture - choose another one from the texture library"
msgstr "เปลี่ยนพื้นผิว - เลือกพื้นผิวอื่นจากคลังพื้นผิว"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "ขนาดไทล์ของเลเยอร์พื้นผิวที่ใช้งานอยู่: พื้นที่ของโมเดลที่พื้นผิวหนึ่งรอบการทำซ้ำครอบคลุม แคนวาสวัดเป็นหน่วยไทล์ ดังนั้นช่องตารางหนึ่งช่องคือการทำซ้ำหนึ่งรอบ เปลี่ยนค่านี้ได้ด้วยขนาดไทล์ในการตั้งค่าของเลเยอร์"
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "แผนที่ความสูง - แสดงพื้นผิวของเลเยอร์ใต้เกาะ"
@@ -30074,16 +34639,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "จัดวางผลการคลี่ UV เป็นรูปคลี่ที่เชื่อมต่อกัน: ชิ้นที่ใช้ขอบร่วมกันจะถูกคลี่ออกติดกัน (ลูกบาศก์จะกลายเป็นรูปคลี่ที่ต่อกันแทนที่จะเป็นสี่เหลี่ยมหกชิ้นแยกกัน) ชิ้นเหล่านี้ยังคงเป็นเกาะแยกกัน คุณจึงยังย้ายชิ้นใดก็ได้ด้วยตนเองภายหลัง"
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "เกาะ - ย้าย หมุน และปรับสเกลทั้งเกาะ"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "เกาะ - ทำงานกับเกาะ UV ทั้งเกาะ คลิกเกาะเพื่อเลือก จากนั้นลากเพื่อย้าย ลากด้วยปุ่มขวาเพื่อหมุน หรือกด R เพื่อหมุนและ S เพื่อปรับสเกลด้วยเมาส์ (คลิกหรือ Enter เพื่อยืนยัน, Esc เพื่อยกเลิก)"
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "จุดยอด - ลากจุดยอดเพื่อปรับรูปทรง; Shift/Ctrl เพื่อเลือกหลายรายการ"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "จุดยอด - ลากจุดยอดเพื่อปรับรูปทรงของเกาะ UV ด้วยตนเอง Shift เพื่อเพิ่มในส่วนที่เลือก Ctrl เพื่อสลับเพิ่มหรือนำออกจากส่วนที่เลือก"
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "ขอบ - ลากขอบเพื่อปรับรูปทรง; Shift/Ctrl เพื่อเลือกหลายรายการ"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "ขอบ - ลากขอบเพื่อปรับรูปทรงของเกาะ UV ด้วยตนเอง Shift เพื่อเพิ่มในส่วนที่เลือก Ctrl เพื่อสลับเพิ่มหรือนำออกจากส่วนที่เลือก"
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30122,8 +34687,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "สแนป - ให้เกาะติดกันเมื่อลากเกาะหนึ่งชิดอีกเกาะ"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "จัดเกาะทั้งหมดให้พอดีกรอบ (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"จัดเกาะ UV ทั้งหมดให้พอดีกรอบ โดยให้ทุกเกาะอยู่ในมุมมอง (Home หรือ F)\n"
+"ที่ส่วนอื่นของแคนวาส: เลื่อนล้อเมาส์เพื่อซูมรอบเคอร์เซอร์ และลากด้วยปุ่มกลาง - หรือลากในพื้นที่ว่าง - เพื่อแพน"
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "สิ่งที่เลือกอยู่ และค่าที่แน่นอนของการย้าย การหมุน หรือการปรับสเกลขณะที่คุณลาก"
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30134,6 +34707,10 @@ msgstr "ไม่มีเลเยอร์ที่แมปด้วย ค
msgid "%.1f mm tile"
msgstr "ไทล์ %.1f มม."
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "แผงนี้ติดตามเลเยอร์พื้นผิวที่ใช้งานอยู่ และเลเยอร์นั้นต้องแมปด้วย คลี่ UV (LSCM) เพิ่มเลเยอร์แล้วตั้ง การแมป เป็น คลี่ UV"
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "ล้าสมัย - การระบาย เส้นตัด หรือมุมเส้นตัดมีการเปลี่ยนแปลงหลังจากคลี่ UV ครั้งนี้ กดเพื่อคลี่ UV อีกครั้ง"
@@ -30142,19 +34719,72 @@ msgstr "ล้าสมัย - การระบาย เส้นตัด
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "แผ่บริเวณที่ระบายให้แบนเป็นเกาะ UV ระบบจะคำนวณเฉพาะเมื่อคุณกดปุ่มนี้ ไม่ใช่ทุกครั้งที่แก้ไข - ดังนั้นให้ระบาย เปลี่ยนมุมเส้นตัด หรือทำเครื่องหมายเส้นตัดก่อน แล้วจึงกด คลี่ UV"
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "เปิด ทำเครื่องหมายเส้นตัด ก่อน - เส้นทาง เป็นวิธีทำเครื่องหมายเส้นตัด UV ที่เร็วกว่า"
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "ไม่มีเส้นตัด UV ที่ทำเครื่องหมายไว้บนเลเยอร์นี้"
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "ไม่มีเกาะ UV ที่ถูกปรับรูปทรงด้วยตนเอง จึงไม่มีอะไรให้ทิ้ง"
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d เกาะ, %s ผิวหน้า"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d เกาะ"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s ผิวหน้า"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "ผลของบริเวณที่ระบายหลังการคลี่ UV: จำนวนชิ้นที่แยกออกจากกัน (ตัดที่เส้นตัด UV และที่ขอบที่คมกว่ามุมเส้นตัด) และจำนวนสามเหลี่ยมทั้งหมดในชิ้นเหล่านั้น"
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "กด คลี่ UV ก่อน - ยังไม่มีเกาะ UV ให้ทำงาน"
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "คลิกเกาะ UV บนแคนวาสก่อน ในโหมดเกาะ"
+
+# AI Translated
+# Needs human review: Three-letter badge on a recent project that was published. Kept as the English PUB because no Thai abbreviation of about three letters for เผยแพร่ was found; check how it looks on the project card.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "PUB"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "ยังไม่ได้เข้าสู่ระบบ"
+
+# AI Translated
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "ตรวจไม่พบปลั๊กอิน Bambu Network คลิก ที่นี่ เพื่อติดตั้ง"
+
+# AI Translated
+msgid "Create new project"
+msgstr "สร้างโปรเจกต์ใหม่"
+
+# AI Translated
+msgid "Recently opened"
+msgstr "เปิดล่าสุด"
+
+# AI Translated
+msgid "Open Containing Folder"
+msgstr "เปิดโฟลเดอร์ที่เก็บไฟล์"
# AI Translated
msgid "Forward"
msgstr "ไปข้างหน้า"
-# AI Translated
-msgid "Tools"
-msgstr "เครื่องมือ"
-
# AI Translated
msgid "View Source"
msgstr "ดูซอร์ส"
@@ -30226,6 +34856,75 @@ msgstr "โหลด %1% ไปยัง %2%"
msgid "Load %s"
msgstr "โหลด %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "ไม่สามารถเปิดใช้เอเจนต์เครื่องพิมพ์ '%1%' ได้: ID เอเจนต์ '%2%' ถูกลงทะเบียนไว้แล้วโดยความสามารถ '%3%' จากปลั๊กอิน '%4%'"
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "ไม่สามารถเปิดใช้เอเจนต์เครื่องพิมพ์ '%1%' ได้: ID เอเจนต์ '%2%' ถูกลงทะเบียนไว้แล้วโดย '%3%'"
+
+# AI Translated
+msgid "File uploaded"
+msgstr "อัปโหลดไฟล์แล้ว"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "กำลังอัปโหลด G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "กำลังเริ่มพิมพ์..."
+
+# AI Translated
+msgid "Print started"
+msgstr "เริ่มพิมพ์แล้ว"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "กำลังอัปโหลด..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "ไม่ได้ระบุเวอร์ชันไลบรารีเครือข่าย"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "ไม่พบไลบรารีเครือข่าย"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "โหลดไลบรารีเครือข่ายไม่สำเร็จ"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "ไลบรารีเครือข่ายโหลดไม่สำเร็จ"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "ปลั๊กอินซีรีส์รุ่นเก่า คุณสมบัติที่ต้องใช้การรองรับจากปลั๊กอินรุ่นใหม่กว่า เช่น ภาพถ่ายความล้มเหลวของการพิมพ์ในกล่องโต้ตอบข้อผิดพลาดของอุปกรณ์ จะใช้งานไม่ได้"
+
+# AI Translated
+msgid "unknown name"
+msgstr "ไม่ทราบชื่อ"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"ปลั๊กอิน \"%s\" ขอสิทธิ์อ่านระบบไฟล์ที่:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "สิทธิ์ของปลั๊กอิน"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -30240,36 +34939,48 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
"ปลั๊กอิน \"%s\" กำลังขออ่านไฟล์ต่อไปนี้:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
"ปลั๊กอิน \"%s\" กำลังขออ่าน/เขียนไฟล์ต่อไปนี้:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
"ปลั๊กอิน \"%s\" กำลังขอสร้างไฟล์ต่อไปนี้:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
"ปลั๊กอิน \"%s\" กำลังขอลบไฟล์ต่อไปนี้:\n"
"%s"
@@ -30294,10 +35005,27 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"ปลั๊กอิน \"%s\" กำลังขอเรียกใช้คำสั่งต่อไปนี้:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "ปลั๊กอิน \"%s\" กำลังขออนุญาตสร้างเธรด"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"ปลั๊กอิน \"%s\" กำลังขอเรียกใช้คำสั่งต่อไปนี้:\n"
+"ปลั๊กอิน \"%s\" กำลังขอแทนที่แอปพลิเคชันที่กำลังทำงานด้วย:\n"
"%s"
# AI Translated
@@ -30309,6 +35037,46 @@ msgstr "ปลั๊กอิน \"%s\" กำลังขอสิทธิ์
msgid "Plugin permission request"
msgstr "คำขอสิทธิ์ของปลั๊กอิน"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "พรีเซ็ตเก็บ JSON การกำหนดค่าความสามารถของปลั๊กอินที่ไม่ถูกต้อง"
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "การกำหนดค่าความสามารถของปลั๊กอินในพรีเซ็ตไม่ใช่อาร์เรย์ จึงแก้ไขไม่ได้"
+
+# AI Translated
+msgid "Printer connection"
+msgstr "การเชื่อมต่อเครื่องพิมพ์"
+
+# AI Translated
+msgid "Pages"
+msgstr "หน้า"
+
+# AI Translated
+msgid "Analysis"
+msgstr "การวิเคราะห์"
+
+# AI Translated
+msgid "Importer"
+msgstr "ตัวนำเข้า"
+
+# AI Translated
+msgid "Exporter"
+msgstr "ตัวส่งออก"
+
+# AI Translated
+msgid "Visualization"
+msgstr "การแสดงผล"
+
+# AI Translated
+msgid "Script"
+msgstr "สคริปต์"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "ไปป์ไลน์การสไลซ์"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "UI การกำหนดค่าของปลั๊กอินว่างเปล่า กำลังแสดงตัวแก้ไขเริ่มต้น"
@@ -30331,8 +35099,346 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "ไม่สามารถเขียนการกำหนดค่าลงดิสก์ได้ ไม่มีการเปลี่ยนแปลงใด ๆ"
# AI Translated
-msgid "Plugin installation failed"
-msgstr "การติดตั้งปลั๊กอินล้มเหลว"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "การติดตั้งปลั๊กอินล้มเหลว: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: ไม่พบปลั๊กอินที่ติดตั้งในแค็ตตาล็อก"
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "คีย์ปลั๊กอินบนคลาวด์ไม่มี UUID"
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "ติดตามปลั๊กอินบนคลาวด์ไม่สำเร็จ ดูข้อมูลเพิ่มเติมในล็อก"
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "ยกเลิกการติดตามได้เฉพาะปลั๊กอินบนคลาวด์เท่านั้น"
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "ยกเลิกการติดตามปลั๊กอินไม่สำเร็จ ดูข้อมูลเพิ่มเติมในล็อก"
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "ดึง URL ดาวน์โหลดของปลั๊กอินไม่สำเร็จ (ผลลัพธ์ %1%)"
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "คุณไม่ได้รับอนุญาตให้ดาวน์โหลดปลั๊กอินบนคลาวด์นี้"
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "ไม่มีแพ็กเกจปลั๊กอินสำหรับระบบปฏิบัติการนี้"
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "ไม่พบเวอร์ชันปลั๊กอินที่เลือก"
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "ไม่พบปลั๊กอินเวอร์ชัน %1%"
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "ไม่พบปลั๊กอินบนคลาวด์"
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "ไม่พบไฟล์ดาวน์โหลดปลั๊กอินบนคลาวด์: %1%"
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "ไม่พบไฟล์ดาวน์โหลดปลั๊กอินบนคลาวด์"
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "ไม่มี URL ดาวน์โหลดสำหรับปลั๊กอินนี้ โปรดตรวจสอบล็อกเพื่อดูข้อผิดพลาด"
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "ดาวน์โหลดปลั๊กอินไม่สำเร็จ: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "ดาวน์โหลดปลั๊กอินล้มเหลว สถานะ HTTP %1%"
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "การดาวน์โหลดปลั๊กอินส่งคืนข้อมูลว่างเปล่า"
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "สร้างไฟล์ชั่วคราวสำหรับดาวน์โหลดปลั๊กอินไม่สำเร็จ"
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "เขียนข้อมูลปลั๊กอินลงไฟล์ชั่วคราวไม่สำเร็จ"
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "หาโฟลเดอร์ปลั๊กอินไม่สำเร็จ: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "ลบโฟลเดอร์ปลั๊กอิน %1% ไม่สำเร็จ: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "ไม่มีไดเรกทอรีปลั๊กอิน: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "ไดเรกทอรีปลั๊กอินมีไฟล์ .py หลายไฟล์: %1% และ %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "ไดเรกทอรีปลั๊กอินมีไฟล์ .whl หลายไฟล์: %1% และ %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "ไดเรกทอรีปลั๊กอินมีทั้งไฟล์ entry .py และ .whl"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "ไดเรกทอรีปลั๊กอินไม่มีไฟล์ entry .py หรือ .whl"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "ข้อผิดพลาดของปลั๊กอินไปป์ไลน์การสไลซ์ '%1%': %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "แพ็กเกจปลั๊กอินต้องเป็นไฟล์ .py หรือ .whl แต่ได้รับ: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "แตกไฟล์ที่ต้องพึ่งพา .whl ของปลั๊กอิน %1% ไม่สำเร็จ: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "เพิ่มไฟล์ที่ต้องพึ่งพา .whl ลงใน sys.path ไม่สำเร็จ: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "ตัวแปลภาษา Python ยังไม่ได้เริ่มต้น: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "manifest ของปลั๊กอินไม่ถูกต้อง: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "ติดตั้งสิ่งที่ปลั๊กอินต้องพึ่งพาไม่สำเร็จ: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "โหลดโมดูลปลั๊กอินไม่สำเร็จ: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "การลงทะเบียนปลั๊กอินล้มเหลว: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "โมดูลปลั๊กอินไม่ได้ลงทะเบียนความสามารถใดเลย"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "ปลั๊กอินประกาศความสามารถ '%1%' ซ้ำกันสำหรับประเภท %2%"
+
+# AI Translated
+# Needs human review: Developer jargon: 'materialization' means building the concrete capability objects from the stored configuration. Check this wording against how the plugin system describes it.
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "สร้างความสามารถของปลั๊กอินจากการกำหนดค่าไม่สำเร็จ: %1%"
+
+# AI Translated
+# Needs human review: Developer jargon: 'materialization' means building the concrete capability objects from the stored configuration. Check this wording against how the plugin system describes it.
+msgid "Plugin capability materialization failed"
+msgstr "สร้างความสามารถของปลั๊กอินจากการกำหนดค่าไม่สำเร็จ"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "on_load ของปลั๊กอินล้มเหลว: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "on_load ของปลั๊กอินล้มเหลว"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "แพ็กเกจปลั๊กอินไม่ใช่ไฟล์: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "UUID ของปลั๊กอินบนคลาวด์ไม่ใช่ตัวระบุที่ถูกต้อง: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "สร้างไดเรกทอรีปลั๊กอิน %1% ไม่สำเร็จ: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "สำรองปลั๊กอิน %1% ที่มีอยู่ไม่สำเร็จ: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "คัดลอกไฟล์ปลั๊กอินไปยัง %1% ไม่สำเร็จ: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "เขียนสถานะการติดตั้งปลั๊กอินไม่สำเร็จ: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "แพ็กเกจปลั๊กอินถูกโหลดแล้ว: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "ความสามารถขัดแย้งกันสำหรับประเภท %1% และชื่อ '%2%'"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "พบคีย์ปลั๊กอินซ้ำ: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "การโหลดปลั๊กอินยังดำเนินการอยู่"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "ปลั๊กอินไม่ถูกต้อง: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "ไม่พบปลั๊กอิน: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "โหลดปลั๊กอินล้มเหลวโดยไม่คาดคิด: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "โหลดปลั๊กอินล้มเหลวโดยไม่คาดคิด"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "ไม่พบ manifest ของปลั๊กอิน: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "ดึงปลั๊กอินจากคลาวด์ไม่สำเร็จ ดูรายละเอียดในล็อก"
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "เข้าสู่ระบบ OrcaCloud เพื่อติดตั้งปลั๊กอินนี้"
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud ไม่ส่งปลั๊กอินบนคลาวด์ที่ติดตามไว้กลับมา"
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "ดาวน์โหลดปลั๊กอินบนคลาวด์ไม่สำเร็จ"
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "ติดตั้งปลั๊กอินบนคลาวด์ไม่สำเร็จ"
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "อัปเดตได้เฉพาะปลั๊กอินบนคลาวด์เท่านั้น"
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "ไม่มีอัปเดตสำหรับปลั๊กอินนี้"
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "ปฏิเสธการลบปลั๊กอินที่อยู่นอกไดเรกทอรีปลั๊กอินที่รู้จัก"
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "ปฏิเสธการอัปเดตปลั๊กอินที่อยู่นอกไดเรกทอรีปลั๊กอินที่รู้จัก"
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "ไม่สามารถเก็บปลั๊กอินไว้ในเครื่องได้: มีคีย์ปลั๊กอินในเครื่องนี้อยู่แล้ว: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "อัปเดตสถานะการติดตั้งปลั๊กอินไม่สำเร็จ: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "ไม่สามารถยกเลิกการติดตามปลั๊กอินของคุณเองได้"
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "ลบและยกเลิกการติดตามได้เฉพาะปลั๊กอินบนคลาวด์เท่านั้น"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "ไม่สามารถยกเลิกการติดตามปลั๊กอินของคุณเองได้ ใช้ \"ลบ\" เพื่อนำไฟล์ในเครื่องออก"
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "คำขอสิทธิ์อ่านระบบไฟล์ของปลั๊กอินถูกปฏิเสธ"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30366,6 +35472,10 @@ msgstr "หลอมรวมการยืดขึ้นรูปสองท
msgid "imported regions produced no extrudable geometry"
msgstr "พื้นที่ที่นำเข้าไม่ได้สร้างรูปทรงเรขาคณิตที่ยืดขึ้นรูปได้"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "โปรไฟล์ตัดผ่านแกนหมุนขึ้นรูป — ต้องอยู่ด้านใดด้านหนึ่งของแกน"
+
# AI Translated
msgid "Failed to revolve"
msgstr "หมุนขึ้นรูปไม่สำเร็จ"
@@ -30402,6 +35512,10 @@ msgstr "สร้างผิวหน้าช่องเว้าล้มเ
msgid "Pocket cut failed"
msgstr "ตัดช่องเว้าล้มเหลว"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "โปรไฟล์ตัดกันเองหรือพับย้อนกลับ จึงไม่ได้ล้อมรอบเป็นพื้นที่เดียว"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "สเก็ตช์ไม่มีลูปปิด"
@@ -30434,10 +35548,26 @@ msgstr "mesh_to_brep: เมชไม่มีรูปสามเหลี่
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: รูปสามเหลี่ยมทุกรูปถูกปฏิเสธเพราะลดรูป (ลองใช้ค่าความเผื่อที่เล็กลง)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "รัศมีลบมุมมนต้องมากกว่า 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "ไม่มีขอบให้ลบมุมมนในกลุ่มนั้น"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "รัศมีลบมุมมนใหญ่เกินไปสำหรับรูปทรงนี้"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "ระยะลบมุมเอียงต้องมากกว่า 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "ไม่มีขอบให้ลบมุมเอียงในกลุ่มนั้น"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "ระยะลบมุมเอียงมากเกินไปสำหรับรูปทรงนี้"
@@ -30450,6 +35580,153 @@ msgstr "apply_fillet: OCCT ลบมุมมนล้มเหลว"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: OCCT ลบมุมเอียงล้มเหลว"
+# AI Translated
+msgid "empty component list"
+msgstr "รายการส่วนประกอบว่างเปล่า"
+
+# AI Translated
+msgid "empty component index"
+msgstr "ดัชนีส่วนประกอบว่างเปล่า"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "ดัชนีส่วนประกอบต้อง >= 1 (ได้ %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "ดัชนีส่วนประกอบ \"%1%\" ไม่ถูกต้อง"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "ต้องมีส่วนประกอบอย่างน้อย 2 รายการ (ได้ %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "ดัชนีส่วนประกอบ %1% ซ้ำกัน"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "ค่าสัดส่วนว่างเปล่า"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "สัดส่วนต้องเป็นค่าบวก (ได้ %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "สัดส่วน \"%1%\" ไม่ถูกต้อง"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "จำนวนสัดส่วนต้องตรงกับจำนวนส่วนประกอบ: คาดหวัง %1% ได้ %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "คาดหวังเลขทศนิยมสองค่าที่คั่นด้วยจุลภาค เช่น \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "สัดส่วนเริ่มต้นและสิ้นสุดต้องอยู่ใน (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "ขนาดอาร์เรย์ %1% ไม่ตรงกับจำนวนช่องเส้นพลาสติก %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "ต้องตั้งค่าเมื่อระบุพารามิเตอร์เส้นพลาสติกผสม"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "ช่อง %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "ช่อง %1%: ส่วนประกอบ %2% อยู่นอกช่วง (ดัชนีเส้นพลาสติกจริงสูงสุดคือ %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "ช่อง %1%: ไม่สามารถอ้างอิงตัวเองเป็นส่วนประกอบได้"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "ช่อง %1%: ส่วนประกอบ %2% อ้างอิงช่องเส้นพลาสติกผสม"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "ช่อง %1%: เกรเดียนต์ต้องมี 2 ส่วนประกอบพอดี"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "ช่อง %1%: เส้นโค้งไม่ถูกต้อง (ต้องมีจุดควบคุมที่ถูกต้องอย่างน้อย 2 จุด)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "โหลดไฟล์การกำหนดค่า \"%1%\" ไม่สำเร็จ: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "ไม่ใช่ไฟล์ G-code ที่สร้างโดย %1%"
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "ไม่พบแท็กการกำหนดค่า \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "จำนวนค่าการกำหนดค่าที่ดึงจาก %1% น้อยผิดปกติ: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"โหลดไฟล์ STEP ล้มเหลว\n"
+"ไม่สามารถเปิดไฟล์เพื่ออ่านได้\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "นำเข้า SVG ล้มเหลว: ไม่สามารถเปิด SVG ได้"
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "นำเข้า SVG ล้มเหลว: ไม่สามารถแยกวิเคราะห์ข้อมูล SVG ที่นำเข้าได้"
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "G-code แบบกำหนดเองรายงาน z_retracted ติดลบ"
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "G-code แบบกำหนดเองรายงาน z_restart_extra ติดลบ"
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "การคัดลอกไดเรกทอรี %1% ไปยัง %2% ล้มเหลว: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "ยืนยันตัวตนเสร็จสมบูรณ์"
@@ -30595,13 +35872,14 @@ msgstr "เวลาโดยประมาณ:"
msgid "Remaining time:"
msgstr "เวลาที่เหลือ:"
+# AI Translated
#: resources/data/hints.ini: [hint:Precise wall]
msgid ""
"Precise wall\n"
"Did you know that turning on precise wall can improve precision and layer consistency?"
msgstr ""
"ผนังที่แม่นยำ\n"
-"คุณรู้หรือไม่ว่าการเปิดผนังที่แม่นยำสามารถปรับปรุงความแม่นยำและความสม่ำเสมอของชั้นได้"
+"คุณรู้หรือไม่ว่าการเปิดผนังที่แม่นยำสามารถปรับปรุงความแม่นยำและความสม่ำเสมอของเลเยอร์ได้"
#: resources/data/hints.ini: [hint:Sandwich mode]
msgid ""
@@ -30895,6 +36173,1092 @@ msgstr ""
"หลีกเลี่ยงการบิดเบี้ยว\n"
"คุณรู้หรือไม่ว่าเมื่อพิมพ์วัสดุที่มีแนวโน้มที่จะเกิดการบิดเบี้ยว เช่น ABS การเพิ่มอุณหภูมิฐานพิมพ์อย่างเหมาะสมสามารถลดความน่าจะเป็นของการบิดเบี้ยวได้"
+#~ msgid "Please choose the filament color"
+#~ msgstr "กรุณาเลือกสีเส้นพลาสติก"
+
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "ความกว้างเส้นของสะพาน หากระบุเป็น % จะคำนวณจากเส้นผ่านศูนย์กลางหัวฉีด\n"
+#~ "แนะนำให้ใช้ร่วมกับความหนาแน่นสะพานหรืออัตราการไหลสะพานที่สูงขึ้น\n"
+#~ "\n"
+#~ "ค่าสูงสุดคือ 100% หรือเส้นผ่านศูนย์กลางหัวฉีด\n"
+#~ "หากตั้งเป็น 0 ความกว้างเส้นจะเท่ากับความกว้างไส้ในแบบทึบภายใน"
+
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "เปิดใช้งานตัวเลือกนี้เพื่อชะลอการพิมพ์ในพื้นที่ที่เส้นรอบวงอาจงอขึ้น\n"
+#~ "ตัวอย่างเช่น จะชะลอเพิ่มเติมเมื่อพิมพ์ส่วนยื่นที่มุมแหลม เช่นด้านหน้าของตัวเรือ Benchy ช่วยลดการงอที่สะสมข้ามหลายชั้น\n"
+#~ "\n"
+#~ "โดยทั่วไปแนะนำให้เปิดใช้งาน เว้นแต่ระบบระบายความร้อนของเครื่องพิมพ์แรงพอ หรือความเร็วพิมพ์ช้าพอที่เส้นรอบวงจะไม่งอ\n"
+#~ "หากพิมพ์ด้วยความเร็วเส้นรอบวงด้านนอกสูง พารามิเตอร์นี้อาจทำให้เกิดข้อบกพร่องบนผนังเมื่อชะลอ เนื่องจากความแตกต่างของความเร็วพิมพ์ที่อาจมาก ทำให้ชุดดันเส้นตอบสนองการเปลี่ยนอัตราการไหลไม่ทัน\n"
+#~ "สาเหตุหลักของข้อบกพร่องเหล่านี้มักมาจากการปรับ PA คลาดเคลื่อนเล็กน้อย โดยเฉพาะเมื่อใช้ร่วมกับ PA smooth time ที่สูง\n"
+#~ "\n"
+#~ "คำแนะนำเมื่อเปิดใช้งานตัวเลือกนี้:\n"
+#~ "1. ลด Pressure Advance smooth time เป็น 0.015 - 0.02 เพื่อให้ชุดดันเส้นตอบสนองการเปลี่ยนความเร็วได้เร็วขึ้น\n"
+#~ "2. เพิ่มความเร็วพิมพ์ขั้นต่ำเพื่อจำกัดขนาดการชะลอและลดความแตกต่างระหว่างช่วงเร็วและช้า\n"
+#~ "3. หากยังมีข้อบกพร่อง ให้เปิดใช้งาน Extrusion Rate Smoothing (ERS) เพื่อปรับการเปลี่ยนอัตราการไหลให้เรียบขึ้น\n"
+#~ "\n"
+#~ "หมายเหตุ: เมื่อเปิดใช้งานตัวเลือกนี้ เส้นรอบวงส่วนยื่นจะถูกจัดเป็นส่วนยื่น หมายความว่าจะใช้ความเร็วส่วนยื่นแม้เส้นรอบวงนั้นเป็นส่วนหนึ่งของสะพาน\n"
+#~ "ตัวอย่างเช่น เมื่อเส้นรอบวงยื่น 100% โดยไม่มีผนังรองรับจากด้านล่าง จะใช้ความเร็วส่วนยื่น 100%"
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "ความเร็วของการอัดขึ้นรูปสะพานที่มองเห็นได้จากภายนอก\n"
+#~ "\n"
+#~ "นอกจากนี้ หากปิดใช้งานการชะลอความเร็วสำหรับขอบม้วนงอหรือเปิดใช้งานโหมดระยะยื่นแบบคลาสสิก มันจะเป็นความเร็วในการพิมพ์ของผนังส่วนยื่นที่รองรับน้อยกว่า 13% ไม่ว่าจะเป็นส่วนหนึ่งของสะพานหรือส่วนยื่นก็ตาม"
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "การตั้งค่าแยกนี้จะส่งผลต่อความเร็วของเส้นรอบวงที่มีรัศมี <= small_perimeter_threshold (โดยปกติคือรู) หากแสดงเป็นเปอร์เซ็นต์ (เช่น 80%) ระบบจะคำนวณตามการตั้งค่าความเร็วผนังด้านนอกด้านบน ตั้งค่าเป็นศูนย์สำหรับรถยนต์"
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "เช่นเดียวกับ \"Small perimeters\" แต่สำหรับส่วนรองรับ การตั้งค่าแยกนี้จะส่งผลต่อความเร็วของส่วนรองรับสำหรับพื้นที่ <= `small_support_perimeter_threshold` หากแสดงเป็นเปอร์เซ็นต์ (เช่น 80%) จะคำนวณจากการตั้งค่าความเร็วส่วนรองรับหรืออินเทอร์เฟซส่วนรองรับด้านบน ตั้งเป็นศูนย์เพื่อใช้อัตโนมัติ"
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "ลำดับการพิมพ์ของผนังภายใน (ด้านใน) และภายนอก (ด้านนอก)\n"
+#~ "\n"
+#~ "ใช้ด้านใน/ด้านนอกเพื่อให้ได้ระยะยื่นที่ดีที่สุด เนื่องจากผนังที่ยื่นออกมาสามารถยึดติดกับปริมณฑลใกล้เคียงขณะพิมพ์ได้ อย่างไรก็ตาม ตัวเลือกนี้ส่งผลให้คุณภาพพื้นผิวลดลงเล็กน้อย เนื่องจากเส้นรอบวงภายนอกเสียรูปเนื่องจากการถูกแบนไปยังเส้นรอบวงภายใน\n"
+#~ "\n"
+#~ "ใช้ด้านใน/ด้านนอก/ด้านในเพื่อให้ได้พื้นผิวภายนอกที่ดีที่สุดและความแม่นยำของขนาด เนื่องจากผนังภายนอกถูกพิมพ์โดยไม่ถูกรบกวนจากขอบเขตภายใน อย่างไรก็ตาม ประสิทธิภาพส่วนยื่นจะลดลงเนื่องจากไม่มีขอบเขตภายในให้พิมพ์ติดกับผนังภายนอก ตัวเลือกนี้ต้องใช้ผนังอย่างน้อย 3 แผ่นจึงจะมีประสิทธิภาพ เนื่องจากจะพิมพ์ผนังภายในจากปริมณฑลที่ 3 เป็นต้นไป จากนั้นจึงพิมพ์ปริมณฑลภายนอก และสุดท้ายคือปริมณฑลภายในแรก แนะนำให้ใช้ตัวเลือกนี้กับตัวเลือกด้านนอก/ด้านในในกรณีส่วนใหญ่\n"
+#~ "\n"
+#~ "ใช้ด้านนอก/ด้านในเพื่อคุณภาพผนังภายนอกที่เหมือนกันและประโยชน์ด้านความแม่นยำของมิติของตัวเลือกด้านใน/ด้านนอก/ด้านใน อย่างไรก็ตาม รอยตะเข็บ Z จะดูสม่ำเสมอน้อยลงเนื่องจากการอัดขึ้นรูปชั้นใหม่ครั้งแรกเริ่มต้นบนพื้นผิวที่มองเห็นได้"
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "ความเร็วของชั้นแรก ยกเว้นส่วน ไส้ใน ที่เป็นของแข็ง"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "ความเร็วของส่วน ไส้ใน ที่เป็นของแข็งของชั้นแรก"
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "พื้นที่ไส้ในจะขยายใหญ่ขึ้นเล็กน้อยเพื่อให้ทับซ้อนกับผนังเพื่อการยึดเกาะที่ดีขึ้น ค่าเปอร์เซ็นต์สัมพันธ์กับความกว้างของเส้นของไส้ในแบบกระจัดกระจาย ตั้งค่านี้เป็น ~10-15% เพื่อลดโอกาสเกิดการอัดขึ้นรูปและการสะสมของวัสดุ ส่งผลให้พื้นผิวด้านบนขรุขระ"
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "พื้นที่ไส้ในของแข็งด้านบนจะถูกขยายให้ใหญ่ขึ้นเล็กน้อยเพื่อให้ทับซ้อนกับผนังเพื่อการยึดเกาะที่ดีขึ้น และเพื่อลดการเกิดรูเข็มที่ซึ่งอินฟิลด้านบนบรรจบกับผนัง ค่า 25-30% ถือเป็นจุดเริ่มต้นที่ดี โดยช่วยลดการเกิดรูเข็มให้เหลือน้อยที่สุด ค่าเปอร์เซ็นต์สัมพันธ์กับความกว้างของเส้นของไส้ในแบบกระจัดกระจาย"
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "ความลึกที่ประสานกันของภูมิภาคที่แบ่งส่วน ระบบจะไม่สนใจหาก \"mmu_segmented_region_max_width\" เป็นศูนย์ หรือหาก \"mmu_segmented_region_interlocking_detail\" ใหญ่กว่า \"mmu_segmented_region_max_width\" ศูนย์ปิดใช้งานคุณลักษณะนี้"
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "ลดความสูงของเส้นรอบวงพื้นผิวด้านบนเพื่อให้ตรงกับความสูงของขอบโมเดล\n"
+#~ "ส่งผลต่อเส้นรอบวงที่มีความชันน้อยกว่ามุมนี้ (องศา)\n"
+#~ "ค่าที่เหมาะสมคือ 35 ตั้งค่าเป็น 0 เพื่อปิดใช้งาน"
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "ความเร็ว Wipe ตามประเภทการพิมพ์"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "แนวป้องกันลม (Draft Shield) มีประโยชน์ในการปกป้องงานพิมพ์ ABS หรือ ASA จากการบิดงอและการหลุดออกจากฐานพิมพ์เนื่องจากกระแสลม โดยทั่วไปจำเป็นต้องใช้กับเครื่องพิมพ์แบบเปิดเฟรมเท่านั้น กล่าวคือ ไม่มีกล่องหุ้ม\n"
+#~ "\n"
+#~ "Enabled = เส้นล้อมชิ้นงานสูงเท่ากับวัตถุที่พิมพ์สูงสุด มิฉะนั้น จะใช้ 'ความสูงของเส้นล้อมชิ้นงาน'\n"
+#~ "หมายเหตุ: เมื่อใช้งานแนวป้องกันลม (Draft Shield) เส้นล้อมชิ้นงานจะถูกพิมพ์ที่ระยะห่างจากวัตถุ ดังนั้นหากขอบยึดชิ้นงานยังทำงานอยู่ ขอบยึดชิ้นงานอาจตัดกัน เพื่อหลีกเลี่ยงปัญหานี้ ให้เพิ่มค่าระยะห่างของเส้นล้อมชิ้นงาน\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "ความเร็วในการพิมพ์สูงสุดเมื่อทำการล้างข้อมูลใน Wipe Tower และการพิมพ์ Wipe Tower บางเลเยอร์ เมื่อทำการไล่ล้าง หากความเร็วไส้ในแบบโปร่งหรือความเร็วที่คำนวณจากความเร็วปริมาตรสูงสุดของเส้นพลาสติกต่ำกว่า ความเร็วต่ำสุดจะถูกนำมาใช้แทน\n"
+#~ "\n"
+#~ "เมื่อพิมพ์ชั้นเบาบาง หากความเร็วเส้นรอบวงภายในหรือความเร็วที่คำนวณจากความเร็วปริมาตรสูงสุดของเส้นพลาสติกต่ำกว่า ความเร็วต่ำสุดจะถูกนำมาใช้แทน\n"
+#~ "\n"
+#~ "การเพิ่มความเร็วนี้อาจส่งผลต่อเสถียรภาพของทาวเวอร์ รวมทั้งเพิ่มแรงที่หัวฉีดชนกับหยดใดๆ ที่อาจก่อตัวบน Wipe Tower\n"
+#~ "\n"
+#~ "ก่อนที่จะเพิ่มพารามิเตอร์นี้เกินกว่าค่าเริ่มต้นที่ 90 มม./วินาที ตรวจสอบให้แน่ใจว่าเครื่องพิมพ์ของคุณสามารถเชื่อมต่อที่ความเร็วที่เพิ่มขึ้นได้อย่างน่าเชื่อถือ และจะมีการควบคุมอย่างดีเมื่อเปลี่ยนเครื่องมือ\n"
+#~ "\n"
+#~ "สำหรับปริมณฑลภายนอกของ Wipe Tower ความเร็วของปริมณฑลภายในจะถูกใช้โดยไม่คำนึงถึงการตั้งค่านี้"
+
+# AI Translated
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Wipe Tower ชนิดผนังด้านนอก\n"
+#~ "1. สี่เหลี่ยมผืนผ้า: ประเภทผนังเริ่มต้น ซึ่งเป็นสี่เหลี่ยมผืนผ้าที่มีความกว้างและความสูงคงที่\n"
+#~ "2. กรวย: กรวยที่มีมุมมนอยู่ด้านล่างเพื่อช่วยรักษาเสถียรภาพของ Wipe Tower\n"
+#~ "3. ซี่โครง: เพิ่มสี่ซี่โครงเข้ากับผนัง Wipe Tower เพื่อเพิ่มความมั่นคง"
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "การไหลพิเศษที่ใช้สำหรับท่อไล่ล้างบน Wipe Tower ซึ่งจะทำให้เส้นการล้างหนาหรือแคบกว่าปกติ ระยะห่างจะถูกปรับโดยอัตโนมัติ"
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "ปรับค่านี้เพื่อป้องกันการพิมพ์ผนังที่สั้นและไม่ปิด ซึ่งอาจเพิ่มเวลาในการพิมพ์ ค่าที่สูงกว่าจะลบผนังที่ยาวขึ้นเรื่อยๆ\n"
+#~ "\n"
+#~ "หมายเหตุ: พื้นผิวด้านล่างและด้านบนจะไม่ได้รับผลกระทบจากค่านี้ เพื่อป้องกันช่องว่างการมองเห็นด้านนอกของแบบจำลอง ปรับ 'เกณฑ์ผนังด้านเดียว' ในการตั้งค่าขั้นสูงด้านล่างเพื่อปรับความไวของสิ่งที่ถือเป็นพื้นผิวด้านบน 'เกณฑ์ผนังด้านเดียว' จะมองเห็นได้ก็ต่อเมื่อการตั้งค่านี้ตั้งไว้สูงกว่าค่าเริ่มต้นที่ 0.5 หรือหากเปิดใช้งานพื้นผิวด้านบนแบบผนังเดียว"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "แบ่งออกเป็น %1% ชิ้นส่วน"
+
+#~ msgid "Repair failed"
+#~ msgstr "ซ่อมล้มเหลว"
+
+#~ msgid "Repair canceled"
+#~ msgstr "ยกเลิกการซ่อมแล้ว"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "สิ่งที่เลเยอร์นี้ทำในบริเวณที่ซ้อนทับกับเลเยอร์ด้านล่าง เพิ่ม และ ลบออก จะเพิ่มลายนูนทับหรือแกะลายนูนออก คูณ และ หาร จะปรับสเกลสิ่งที่อยู่ข้างใต้ ซึ่งทำให้เลเยอร์นี้เป็นมาสก์ทับเลเยอร์ด้านล่าง - ในกรณีนั้น ความลึก จะทำหน้าที่เป็นความแรง และ 1 มม. จะไม่เปลี่ยนแปลงบริเวณสีขาว"
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "เมชมีเรขาคณิตแบบ non-manifold หรือขอบเปิด คุณสามารถนำเข้าตามเดิมหรือซ่อมด้วยบริการซ่อมแซม 3D ของ Windows ก่อนนำเข้า"
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "โปรดทราบว่าเมชมีเรขาคณิตแบบ non-manifold หรือขอบเปิด"
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "ปัญหาเมช"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "ซ่อมแซมล้มเหลว: เมชยังเปิดอยู่หลังการเติมรู"
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "ไม่สามารถใช้การดำเนินการเชิงตรรกะกับตัวดำเนินการที่ไม่ใช่บูลีนได้"
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "กำลังอ่าน"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "จำนวนเส้นพลาสติกเกินจำนวนสูงสุดที่เครื่องมือพ่นสีรองรับ เฉพาะเส้นพลาสติก %1% แรกเท่านั้นที่จะสามารถใช้ได้ในเครื่องมือวาดภาพ"
+
+#~ msgid "Shortcut Key "
+#~ msgstr "ปุ่มลัด"
+
+#~ msgid "Build Volume"
+#~ msgstr "ปริมาตรการพิมพ์ (Build Volume)"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "วัตถุ (%1%) มีคอนเนกเตอร์ซ้ำกัน คอนเนกเตอร์บางส่วนอาจหายไปในผลลัพธ์การสไลซ์\n"
+#~ "โปรดรายงานให้ทีม OrcaSlicer ทราบว่าปัญหานี้เกิดขึ้นในสถานการณ์ใด\n"
+#~ "ขอบคุณ"
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d รูปสามเหลี่ยม"
+
+#~ msgid " (Moving)"
+#~ msgstr "(ขนย้าย)"
+
+#~ msgid " (Fixed)"
+#~ msgstr "(ที่ตายตัว)"
+
+#~ msgid "Filament "
+#~ msgstr "เส้นพลาสติก "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "ฮอตเอนด์"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "กำลังจัด "
+
+#~ msgid "Orienting"
+#~ msgstr "การวางแนว"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "กรุณากลับบ้านทุกแกน (คลิก"
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") เพื่อค้นหาตำแหน่งของหัวเครื่องมือ เพื่อป้องกันไม่ให้อุปกรณ์เคลื่อนที่เกินขอบเขตที่สามารถพิมพ์ได้ และทำให้อุปกรณ์สึกหรอ"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "เพิ่ม %1%g เส้นพลาสติกและ %2% การเปลี่ยนแปลงเมื่อเปรียบเทียบกับการจัดกลุ่มที่เหมาะสมที่สุด"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "เพิ่มเส้นพลาสติก %1%g และบันทึกการเปลี่ยนแปลง %2% เมื่อเปรียบเทียบกับการจัดกลุ่มที่เหมาะสมที่สุด"
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "ประหยัดเส้นพลาสติก %1%g และเพิ่มการเปลี่ยนแปลง %2% เมื่อเปรียบเทียบกับการจัดกลุ่มที่เหมาะสมที่สุด"
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "บันทึก %1%g เส้นพลาสติกและ %2% การเปลี่ยนแปลง เมื่อเปรียบเทียบกับเครื่องพิมพ์ที่มีหัวฉีดเดียว"
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "ประหยัดเส้นพลาสติก %1%g และเพิ่มการเปลี่ยนแปลง %2% เมื่อเทียบกับเครื่องพิมพ์ที่มีหัวฉีดเพียงอันเดียว"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "เพิ่มเส้นพลาสติก %1%g และประหยัดการเปลี่ยนแปลง %2% เมื่อเปรียบเทียบกับเครื่องพิมพ์ที่มีหัวฉีดเพียงอันเดียว"
+
+#~ msgid "number keys"
+#~ msgstr "ปุ่มตัวเลข"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "เส้นพลาสติก %s ถูกวางไว้ใน %s แต่เส้นทาง G-code ที่สร้างขึ้นเกินช่วงที่สามารถพิมพ์ได้ของ %s"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "เส้นพลาสติก %s ถูกวางไว้ใน %s แต่เส้นทาง G-code ที่สร้างขึ้นเกินความสูงที่สามารถพิมพ์ได้ของ %s"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "ไม่สามารถพิมพ์เส้นพลาสติก %s ลงบนพื้นผิวของเพลตนี้ได้โดยตรง"
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "จะถูกปิดก่อนที่จะสร้างโมเดลใหม่ คุณต้องการดำเนินการต่อหรือไม่?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "ใน Cloud Slicing Queue มี %s งานรออยู่ข้างหน้า"
+
+#~ msgid " upload failed"
+#~ msgstr "การอัปโหลดล้มเหลว"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr "การอัปโหลดการกำหนดค่าล้มเหลว\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr "ไม่มีที่เก็บข้อมูลที่เกี่ยวข้อง\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr "ไม่สามารถเปิดได้\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "ไม่สามารถอัปโหลดผลลัพธ์ความคิดเห็นของคุณเนื่องจากสาเหตุดังต่อไปนี้:\n"
+#~ "\n"
+#~ " รหัสข้อผิดพลาด:"
+
+#~ msgid "error message: "
+#~ msgstr "ข้อความแสดงข้อผิดพลาด:"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "คุณต้องการเปลี่ยนเส้นทางไปยังหน้าเว็บเพื่อให้คะแนนหรือไม่"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (พรีเซ็ตกระบวนการ: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "หัวฉีด %s ไม่สามารถพิมพ์ %s ได้"
+
+#~ msgid " nozzle"
+#~ msgstr "หัวฉีด"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "ไม่แนะนำให้พิมพ์เส้นพลาสติกต่อไปนี้ด้วย %1%: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr "จาน %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "ลบเส้นพลาสติกผสมทั้งหมด %1% รายการหรือไม่?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "คุณต้องการเปลี่ยนมัน"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "อุณหภูมิฐานพิมพ์ขัดแย้งกัน: T%d (%s) ตั้งฐานพิมพ์ไว้ที่ %d°C — T%d (%s) ต้องการ %d°C เครื่องมือหลักเป็นผู้ควบคุมฐานพิมพ์ เครื่องมือรองจะพิมพ์ที่อุณหภูมิใดก็ตามที่เครื่องมือหลักตั้งไว้"
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "ไม่มีการเร่งความเร็วสำหรับการสอบเทียบ ใช้ค่าความเร่งเริ่มต้น"
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "ไม่มีความเร็วสำหรับการสอบเทียบ ใช้ความเร็วที่เหมาะสมตามค่าเริ่มต้น"
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "ไม่มีทาวเวอร์อุณหภูมิสำหรับสายพานในช่วง %1% ถึง %2% °C ใช้ช่วงที่โมเดลทาวเวอร์ครอบคลุม เช่น 230 ถึง 190"
+
+#~ msgid "The selected file"
+#~ msgstr "ไฟล์ที่เลือก"
+
+# AI Translated
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "ไม่มี G-code ที่ถูกต้อง"
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "ด้วย OrcaSlicer เพื่อให้ Orca สามารถเปิดโมเดลได้"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "ราคา %dg เส้นพลาสติกและ %d เปลี่ยนแปลงมากกว่าการจัดกลุ่มที่เหมาะสมที่สุด"
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "พารามิเตอร์ที่มีไอคอนนี้สามารถกำหนดค่าแยกตามหัวฉีดได้"
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "พบคีย์เวิร์ดที่สงวนไว้"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d เส้นพลาสติก Preset และ %d Process Preset ถูกแนบไปกับเครื่องพิมพ์นี้ ค่าที่ตั้งล่วงหน้าเหล่านั้นจะถูกลบหากเครื่องพิมพ์ถูกลบ"
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "พรีเซ็ตต่อไปนี้สืบทอดจากพรีเซ็ตนี้"
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% ที่ตั้งไว้ล่วงหน้า"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "คุณแน่ใจหรือไม่ว่าต้องการ %1% ค่าที่ตั้งไว้ล่วงหน้าที่เลือก?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "แบ่งออกเป็น %1% ส่วน"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "กำลังดาวน์โหลดโปรไฟล์ผู้ขายใหม่: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "ดาวน์โหลดโปรไฟล์ผู้ขายล้มเหลว: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "ในโหมด Span นี้ มีเพียง %1% ที่พิมพ์สี แต่เส้นพลาสติก %2% ไม่ได้ส่งไปยังเครื่องมือใดเลย ใช้เส้นพลาสติกที่ส่งไปยัง %1% หรือสลับเพลตนี้เป็นโหมดหลัก (Primary)"
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "ในโหมด Span นี้ มีเพียง %1% ที่พิมพ์สี แต่เส้นพลาสติก %2% ถูกส่งไปยัง T%3% ใช้เส้นพลาสติกที่ส่งไปยัง %1% หรือสลับเพลตนี้เป็นโหมดหลัก (Primary)"
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr "อยู่ใกล้พื้นที่แยกมากเกินไป อาจเกิดการชนกันเมื่อพิมพ์"
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr "อยู่ใกล้พื้นที่การตรวจจับการจับตัวกันมากเกินไป อาจเกิดการชนกันเมื่อพิมพ์"
+
+#~ msgid "Prime Tower"
+#~ msgstr "Prime Tower"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr "อยู่ใกล้ผู้อื่นมากเกินไปและอาจเกิดการชนได้\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr "อยู่ใกล้เขตหวงห้ามมากเกินไปจะเกิดการชนกัน\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr "อยู่ใกล้พื้นที่การตรวจจับการจับตัวกันมากเกินไป และจะเกิดการชนกัน\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr "อยู่นอกพื้นที่การพิมพ์บางส่วน จึงไม่สามารถพิมพ์ได้\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "ไม่มีเครื่องมือที่กำหนดค่าไว้"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "สิ้นสุด G-code เมื่อพิมพ์เสร็จทั้งหมด"
+
+#~ msgid "Maximum X speed"
+#~ msgstr "ความเร็ว X สูงสุด"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "ความเร็ว Y สูงสุด"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "ความเร็ว Z สูงสุด"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "ความเร็ว E สูงสุด"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "ปลั๊กอิน Python ที่เรียกใช้ในแต่ละขั้นตอนของไปป์ไลน์การสไลซ์เพื่ออ่านและแก้ไขข้อมูลการสไลซ์ระหว่างกลาง รวมถึงขั้นตอนหลังประมวลผล G-code สุดท้าย สำหรับการวิจัย/ทดลอง"
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "เมื่อเปิดใช้งาน สไลเซอร์จะสร้าง G-code โดยให้เนื้อหาของโซนหลักอยู่กึ่งกลางที่จุดกำเนิดของฐานพิมพ์ (0,0) เฟิร์มแวร์ของเครื่องพิมพ์จะรับผิดชอบการวางสำเนา/ภาพกระจกเงาที่ตำแหน่งของแต่ละโซนจริง เปิดใช้งานเฉพาะกับเครื่องพิมพ์ที่เฟิร์มแวร์ใช้ค่าออฟเซ็ตโซนของตัวเองในโหมดสำเนา/กระจกเงา (เช่น โหมด duplication ของ IDEX ใน RepRapFirmware) ไม่มีผลในโหมดหลัก (Primary)"
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "ค่าแทนที่ต่อเพลตที่จับคู่หัวจริงกับช่องเส้นพลาสติก (เริ่มนับจาก 1) เว้นว่างหมายถึงใช้ค่าเริ่มต้นจาก pem-inversion"
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "แกนที่ใช้หมุนเมชก่อนการสไลซ์ นี่คือการเอียงของเครื่องพิมพ์สายพาน: การหมุนแบบไอโซเมตริก (ไม่บิดเบี้ยว) ซึ่งยังใช้กำหนดการแสดงผลฐานพิมพ์และการเอียงแรงโน้มถ่วงของส่วนรองรับ และการแปลงกลับของ G-code จะย้อนการหมุนนี้ก่อนการเฉือน/ปรับสเกลและการแมปแกนของระบบพิกัดเครื่อง X คือการเอียงแกนทรีที่ใช้ทั่วไป (สายพานเคลื่อนที่ตามแนว Y)"
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "การแทนที่สำหรับผู้เชี่ยวชาญ: ตั้งมุมเอียงของระบบพิกัดเครื่อง (การเฉือน/ปรับสเกล G-code) แยกจากมุมหมุนก่อนสไลซ์ เมื่อปิดใช้งาน การแปลงระบบพิกัดเครื่องจะคำนวณจากมุมเอียงสายพาน ดังนั้นมุมเดียวจะควบคุมทั้งสองขั้นตอน เปิดใช้งานเฉพาะเพื่อชดเชยเครื่องที่การเอียงจริงของแกนทรีต่างจากการหมุนสำหรับสไลซ์"
+
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "ค่าเบี่ยงเบนสูงสุดที่อนุญาตเมื่อลดความละเอียดสำหรับการตั้งค่า 'ความละเอียดสูงสุดของผนัง' หากเพิ่มค่านี้ การพิมพ์จะแม่นยำน้อยลง แต่ G-Code จะน้อยลง 'ค่าเบี่ยงเบนของผนังสูงสุด' จะจำกัด 'ความละเอียดของผนังสูงสุด' ดังนั้นหากทั้งสองข้อขัดแย้งกัน 'ค่าเบี่ยงเบนของผนังสูงสุด' จะมีความสำคัญเหนือกว่า"
+
+#~ msgid " not in range "
+#~ msgstr "ไม่อยู่ในช่วง"
+
+#~ msgid "floating regions"
+#~ msgstr "ภูมิภาคลอยน้ำ"
+
+#~ msgid "floating cantilever"
+#~ msgstr "คานเท้าแขนลอย"
+
+#~ msgid "large overhangs"
+#~ msgstr "ส่วนยื่นขนาดใหญ่"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "ดูเหมือนว่าวัตถุ %s มี %s โปรดปรับทิศทางวัตถุใหม่หรือเปิดใช้งานการสร้างส่วนรองรับ"
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "ไม่พบเลเยอร์ คุณอาจต้องการซ่อมแซมไฟล์ STL ของคุณ หรือตรวจสอบขนาดหรือความหนาแล้วลองอีกครั้ง\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "ประเภทเครื่องนี้สามารถเก็บผลลัพธ์ประวัติได้เพียง %d รายการต่อหัวฉีด ผลลัพธ์นี้จะไม่ถูกบันทึก"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "ประเภทเครื่องนี้สามารถเก็บผลลัพธ์ประวัติได้เพียง %d รายการต่อหัวฉีด"
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "ส่วนยื่น"
+
+#~ msgid "Start / End"
+#~ msgstr "เริ่ม / สิ้นสุด"
+
+#~ msgid "Damp"
+#~ msgstr "ชื้น"
+
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "ตรวจพบช่อง IFS %d ช่องบนเครื่องพิมพ์"
+
+#~ msgid "selected"
+#~ msgstr "เลือกแล้ว"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "พรีเซ็ตต่อไปนี้สืบทอดจากพรีเซ็ตนี้"
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "พบเครื่องพิมพ์ Creality %zu เครื่อง เลือกหนึ่งเครื่องแล้วคลิก Use Selected"
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "บันทึก"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "ข้อผิดพลาด: ชุดดันเส้น %s ไม่มีหัวฉีด %s ที่ใช้ได้ ผลการจัดกลุ่มปัจจุบันไม่ถูกต้อง"
+
+#~ msgid "invalid brim ears"
+#~ msgstr "หูขอบยึดชิ้นงานไม่ถูกต้อง"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "กำลังข้าม %d วัตถุ"
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "เปิดโฟลเดอร์ในตัวจัดการไฟล์"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "คลิกจุดศูนย์กลาง แล้วคลิกจุดยอด — %d ด้าน, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "แบบแนบนอก"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "แบบแนบใน"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "สร้างสเก็ตช์แล้ว (มิติขับเคลื่อน %zu รายการ) — เลือกสเก็ตช์ แล้วคลิกขวาเพื่อยืดขึ้นรูป"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "สำเร็จ — %zu รูปสามเหลี่ยม"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "เมชนี้มีรูปสามเหลี่ยม %d รูป รูปสามเหลี่ยมทุกรูปจะกลายเป็นผิวหน้า B-rep ก่อนการรวมผิวหน้าที่อยู่บนระนาบเดียวกัน การนำเข้าจึงอาจใช้เวลานานและได้บอดี้ที่แก้ไขได้ช้า โดยทั่วไปควรลดรายละเอียดของเมชก่อน\n"
+#~ "\n"
+#~ "นำเข้าต่อหรือไม่"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "นำเข้าทรงตันแล้ว — %d รูปสามเหลี่ยม → %d ผิวหน้า, ปริมาตร %.2f มม.³ เลือกผิวหน้าหรือขอบ แล้วใช้ลบมุมมน / ตัด / เปลือก เพื่อแก้ไข"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — ลากเพื่อวาง/ปรับขนาด แล้วกดยืนยัน"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "เอนทิตีสเก็ตช์ %d รายการ"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — พิมพ์ค่า แล้วกด Enter (หรือยืนยัน)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "พรีวิว — %zu รูปสามเหลี่ยม"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "เงื่อนไขบังคับ %1% รายการใช้กับเรขาคณิตนี้ไม่ได้ (เส้นโค้งวงรีหรือสไปลน์ หรือวงกลมที่มีขนาดเป็นศูนย์) จึงถูกละเว้น"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "นำเงื่อนไขบังคับ %1% รายการที่ใช้ไม่ได้แล้วหลังการลบมุมมน/ลบมุมเอียงออกแล้ว"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "การแปลงรูปได้ปลดเงื่อนไขบังคับ %1% รายการ"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...และปลายเปิดอีก %1% จุด"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "รายการวัสดุรองรับได้สูงสุด %1% สี หลังจากแยกสี %2% จำนวนวัสดุจะเกิน %1% โปรดลบเส้นพลาสติกที่ไม่ได้ใช้ในหน้าจอหลักก่อนแยกสี"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% สีที่พิมพ์ได้จากเส้นพลาสติก %2% เส้น"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% เกาะ"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "ใช้ครบทั้ง %1% เลเยอร์แล้ว"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "พรีวิว: %1% สามเหลี่ยม"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "โมเดล: %1% สามเหลี่ยม - การอบจะเพิ่มความละเอียดตามค่าความละเอียดด้านบน ภายในงบประมาณ"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "การอบเคลื่อนจุดยอดที่มีอยู่ - โมเดลยังคงมี %1% สามเหลี่ยม"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "ผลการอบสูงสุด ~%1% พันสามเหลี่ยม"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% เลเยอร์ยังไม่ได้ระบาย ข้ามไป"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "โครงการรองรับเส้นพลาสติกได้สูงสุด %d เส้น เส้นพลาสติกที่เกินจะถูกทิ้ง"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "เลือกจุดยอด %d จุด | ลาก = ย้ายพร้อมกัน, Shift/Ctrl คลิก = เพิ่ม/ลบ"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "เลือกขอบ %d ขอบ | ลาก = ย้ายพร้อมกัน, Shift/Ctrl คลิก = เพิ่ม/ลบ"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "เลือกเกาะ %d เกาะ | ลาก = ย้ายพร้อมกัน, Shift/Ctrl คลิก = เพิ่ม/ลบ, R/S = หมุน/ปรับสเกลเกาะหลัก"
+
+# AI Translated
+# Needs human review: 'Tiling' names a control in the texture layer's settings, but no 'Tiling' label exists (the checkbox is 'Tile' = ไทล์, the field 'Tile size' = ขนาดไทล์); rendered generically as การเรียงไทล์. Check which control it means and quote that label.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "ขนาดไทล์ของเลเยอร์พื้นผิวที่ใช้งานอยู่: พื้นที่ของโมเดลที่พื้นผิวหนึ่งรอบการทำซ้ำครอบคลุม แคนวาสวัดเป็นหน่วยไทล์ ดังนั้นช่องตารางหนึ่งช่องคือการทำซ้ำหนึ่งรอบ เปลี่ยนค่านี้ได้ด้วยการเรียงไทล์ในการตั้งค่าของเลเยอร์"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d เกาะ, %s ผิวหน้า"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "ปลั๊กอิน \"%s\" กำลังขออ่านไฟล์ต่อไปนี้:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "ปลั๊กอิน \"%s\" กำลังขออ่าน/เขียนไฟล์ต่อไปนี้:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "ปลั๊กอิน \"%s\" กำลังขอสร้างไฟล์ต่อไปนี้:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "ปลั๊กอิน \"%s\" กำลังขอลบไฟล์ต่อไปนี้:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "ปลั๊กอิน \"%s\" กำลังขอเรียกใช้คำสั่งต่อไปนี้:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "การติดตั้งปลั๊กอินล้มเหลว"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "ไม่สามารถติดตั้ง Microsoft WebView2 Runtime ได้\n"
+#~ "ฟีเจอร์บางอย่าง รวมถึงตัวช่วยตั้งค่า อาจแสดงเป็นหน้าว่างจนกว่าจะติดตั้ง\n"
+#~ "โปรดติดตั้งด้วยตนเองจาก https://developer.microsoft.com/microsoft-edge/webview2/ แล้วรีสตาร์ท Orca Slicer"
+
+#~ msgid "Why this grouping"
+#~ msgstr "ทำไมถึงจัดกลุ่มแบบนี้."
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "ซอฟต์แวร์ไม่รองรับการใช้หัวฉีดที่มีเส้นผ่านศูนย์กลางต่างกันในการพิมพ์ครั้งเดียว หากหัวฉีดด้านซ้ายและขวาไม่สอดคล้องกัน เราสามารถดำเนินการพิมพ์แบบหัวเดียวเท่านั้น โปรดยืนยันว่าคุณต้องการใช้หัวฉีดใดสำหรับโปรเจ็กต์นี้"
+
+#~ msgid "Switch diameter"
+#~ msgstr "สลับเส้นผ่านศูนย์กลาง"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "โครงการแบมบูสตูดิโอ"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "3MF ถูกสร้างขึ้นโดย BambuStudio (เวอร์ชัน %s) ซึ่งใหม่กว่าเวอร์ชัน %s ที่เข้ากันได้ พบการตั้งค่าที่ไม่รู้จัก:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "3MF ถูกสร้างขึ้นโดย BambuStudio (เวอร์ชัน %s) ซึ่งใหม่กว่าเวอร์ชัน %s ที่เข้ากันได้ การตั้งค่าบางอย่างอาจเข้ากันไม่ได้อย่างสมบูรณ์"
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "3MF ถูกสร้างขึ้นโดย BambuStudio การตั้งค่าบางอย่างอาจแตกต่างจาก OrcaSlicer"
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "ไม่สามารถเลิกทำหรือทำซ้ำได้ขณะที่มีการดำเนินการอยู่ โปรดหยุดการดำเนินการก่อน"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "จัดกึ่งกลางไส้ในภายในของแต่ละชิ้นส่วนบนตัวมันเอง เสมือนว่าถูกสไลซ์แยกเดี่ยว แทนที่จะอิงกับชุดประกอบทั้งหมด ชิ้นส่วนที่สัมผัสหรือซ้อนทับกันจะถือเป็นวัตถุเดียวและใช้จุดศูนย์กลางร่วมกัน ส่วนชิ้นส่วนแยก (หรือวัตถุ 3D ที่แยกจากกัน) จะได้จุดศูนย์กลางของตัวเอง\n"
+#~ "มีประโยชน์เมื่อชุดประกอบรวมหลายวัตถุที่แต่ละชิ้นควรคงไส้ในที่จัดกึ่งกลางตัวเองอย่างสม่ำเสมอ\n"
+#~ "ส่งผลต่อลวดลายเส้นและตาราง และไส้ในแบบเทมเพลตหมุน\n"
+#~ "ลวดลายที่ล็อกกับพิกัดสากล (Gyroid, Honeycomb, TPMS, ...) จะไม่ได้รับผลกระทบ"
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "ดัชนีของเลเยอร์ปัจจุบัน แบบอิงเดียว (เช่น เลเยอร์แรกคือหมายเลข 1)"
+
+#~ msgid "Video tutorial"
+#~ msgstr "วิดีโอสอน"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "รูปทรงพื้นฐาน"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "สร้างเมชว่างเปล่า"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "กล่อง"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "ขนาดด่วน:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "ความกว้าง (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "ความลึก (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "ความสูง (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "R ล่าง"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "R บน"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "R หลัก"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "R รอง"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "ขอบทั้งหมด"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "ขอบบน"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "ขอบล่าง"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "ขอบด้านข้าง"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "ความละเอียดเมช"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "เพิ่มรูปทรง"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "ไม่มีโปรไฟล์ด้านนอก"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "ไม่สามารถสร้างผิวหน้าด้านนอกได้"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "ไม่สามารถสร้างผิวหน้าที่มีรูได้"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "หมุนขึ้นรูปล้มเหลว"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "โปรไฟล์"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "เริ่มโปรไฟล์ใหม่ (สำหรับรู)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "เซกเมนต์"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "ด้าน"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "คลิกบนพื้นที่วาดเพื่อวาด"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "สแน็ปกับกริด"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "ระยะกริด"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "ด้านนอก"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "แบบปิด"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% จุด %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (บน)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (ด้านหน้า)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (ด้านข้าง)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "องศาหมุนขึ้นรูป"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "ตั้งเป็น 0 เพื่อยืดขึ้นรูป, >0 เพื่อหมุนขึ้นรูป"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "ช่องเว้า (ตัด)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "โปรไฟล์ปิด %zu รายการ"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "วาดโปรไฟล์ปิดเพื่อเปิดใช้งาน"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "ผลลัพธ์ว่างเปล่า"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "ยืดขึ้นรูป: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "หมุนขึ้นรูป: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "ไม่ได้เลือกวัตถุ"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "สร้างผิวหน้าล้มเหลว"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "สร้างผิวหน้าที่มีรูล้มเหลว"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "เมชเครื่องมือว่างเปล่า"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "เพิ่มช่องเว้าแล้ว (วอลลุ่มเชิงลบ)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "ช่องเว้า: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "ต้องให้เลเยอร์ที่ใช้งานอยู่แมปด้วย คลี่ UV (LSCM)"
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "ตาหมากรุก - ตารางทดสอบแทนพื้นผิว บริเวณที่ช่องยังเป็นสี่เหลี่ยมจัตุรัส พื้นผิวจะไม่บิดเบี้ยว บริเวณที่ช่องยืด พื้นผิวก็จะยืดเช่นกัน"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "ความบิดเบี้ยว - แผนที่ความร้อนแสดงการยืดจากสีน้ำเงินถึงสีแดงบนผลการคลี่ UV"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "ผสมตาม"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "ผิว"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "เลเยอร์: เส้นพลาสติกทั้งสองสลับกันระหว่างเลเยอร์การพิมพ์ ซึ่งผสมกลมกลืนบนผิวที่ตั้งตรง แต่จะหายไปบนผิวในแนวราบ เพราะทั้งเลเยอร์เป็นแถบสีเดียว\n"
+#~ "ผิว: ลายตาหมากรุกละเอียดทั่วผิว ใช้ได้ทุกมุม แต่อาจดูเป็นลวดลายแทนที่จะเป็นการผสมสี\n"
+#~ "อัตโนมัติ: ใช้เลเยอร์บนผิวที่ตั้งตรง ส่วนผิวในแนวราบจะใช้เส้นพลาสติกเดียวที่ใกล้เคียงกว่า เนื่องจากลายตาหมากรุกบนผิวนั้นจะเห็นเป็นลวดลาย"
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "เกาะ - ย้าย หมุน และปรับสเกลทั้งเกาะ"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "จุดยอด - ลากจุดยอดเพื่อปรับรูปทรง; Shift/Ctrl เพื่อเลือกหลายรายการ"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "ขอบ - ลากขอบเพื่อปรับรูปทรง; Shift/Ctrl เพื่อเลือกหลายรายการ"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "จัดเกาะทั้งหมดให้พอดีกรอบ (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(ทดลอง) ใช้เอเจนต์เครื่องพิมพ์แทนโฮสต์การพิมพ์"
@@ -30928,16 +37292,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "คลิกผิวหน้าหรือระนาบอ้างอิง แล้วเลือกเครื่องมือวาด"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -30994,10 +37348,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "ระยะแนวตั้ง"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "เชิงเส้น"
-
#~ msgid "Face recognition"
#~ msgstr "การจดจำผิวหน้า"
@@ -32418,9 +38768,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "ไม่สามารถคำนวณความกว้างของเส้น %1% ไม่สามารถรับค่า \"%2%\""
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "การเว้นวรรคที่ให้กับ Flow::with_spacing() ไม่ถูกต้อง โปรดตรวจสอบความสูงของเลเยอร์และความกว้างของการอัดขึ้นรูป"
-
#~ msgid "Renders cast shadows on the plate in realistic view."
#~ msgstr "แสดงเงาแบบทอดบนเพลตในมุมมองแบบสมจริง"
@@ -32685,9 +39032,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "การเลือกชิ้นส่วน"
-#~ msgid "°"
-#~ msgstr "°"
-
#, c-format, boost-format
#~ msgid ""
#~ "Failed to connect to OrcaCloud.\n"
diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po
index 44a8586724..ead52e8b7b 100644
--- a/localization/i18n/tr/OrcaSlicer_tr.po
+++ b/localization/i18n/tr/OrcaSlicer_tr.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2026-08-21 23:18+0300\n"
"Last-Translator: GlauTech\n"
"Language-Team: \n"
@@ -382,8 +382,10 @@ msgid "Please wait"
msgstr "Lütfen bekleyin"
# AI Translated
-msgid "Reading"
-msgstr "Okunuyor"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "İndüksiyonlu Hotend Rafı: Okunuyor %d/%d"
# AI Translated
msgid "Running..."
@@ -551,9 +553,12 @@ msgstr "Gizmo-Yüze yerleştir"
msgid "Lay on Face"
msgstr "Yüzüstü yatır"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Filament sayısı, boyama aracının desteklediği maksimum sayıyı aşıyor. Boyama aracında yalnızca ilk %1% filament mevcut olacaktır."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Filament sayısı, boyama aracının desteklediği maksimum sayıyı aşıyor. Boyama aracında yalnızca ilk %1% filament mevcut olacaktır."
+msgstr[1] "Filament sayısı, boyama aracının desteklediği maksimum sayıyı aşıyor. Boyama aracında yalnızca ilk %1% filament mevcut olacaktır."
msgid "Color Painting"
msgstr "Renkli boyama"
@@ -605,8 +610,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Kısayol tuşu "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Kısayol tuşu %d"
msgid "Triangle"
msgstr "Üçgen"
@@ -705,6 +712,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Parça seçimi"
+msgid "Select multiple objects"
+msgstr "Birden fazla nesne seç"
+
msgid "Fixed step drag"
msgstr "Sabit adım sürükleme"
@@ -767,10 +777,79 @@ msgstr "Parça"
msgid "Relative"
msgstr "Göreceli"
+msgid "Selection"
+msgstr "Seçim"
+
+msgid "Plate"
+msgstr "Plaka"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "Dönüştürme işlemlerinde kullanılan koordinat sistemi."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Sola hizala"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Sol-sağ yönünde merkeze hizala"
+
+# AI Translated
+msgid "Align right"
+msgstr "Sağa hizala"
+
+# AI Translated
+msgid "Align front"
+msgstr "Öne hizala"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Ön-arka yönünde merkeze hizala"
+
+# AI Translated
+msgid "Align back"
+msgstr "Arkaya hizala"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Alta hizala"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Üst-alt yönünde merkeze hizala"
+
+# AI Translated
+msgid "Align top"
+msgstr "Üste hizala"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Sol-sağ yönünde dağıt"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Ön-arka yönünde dağıt"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Üst-alt yönünde dağıt"
+
+msgid "Drop"
+msgstr "Düşür"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "Mutlak"
@@ -873,9 +952,6 @@ msgstr "Oluk açısı"
msgid "Cut position"
msgstr "Kesim konumu"
-msgid "Build Volume"
-msgstr "Birim oluştur"
-
msgid "Multiple"
msgstr "Çoklu"
@@ -1051,11 +1127,19 @@ msgstr "Bağlayıcı"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
-"Nesnelerde(%1%) yinelenen bağlantı elemanları var. Dilimleme sonucunda bazı bağlantı elemanları eksik olabilir.\n"
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"Nesnede (%1%) yinelenen bağlantı elemanları var. Dilimleme sonucunda bazı bağlantı elemanları eksik olabilir.\n"
+"Lütfen bu sorunun hangi senaryoda oluştuğunu OrcaSlicer ekibine bildirin.\n"
+"Teşekkürler."
+msgstr[1] ""
+"Nesnelerde (%1%) yinelenen bağlantı elemanları var. Dilimleme sonucunda bazı bağlantı elemanları eksik olabilir.\n"
"Lütfen bu sorunun hangi senaryoda oluştuğunu OrcaSlicer ekibine bildirin.\n"
"Teşekkürler."
@@ -1123,9 +1207,12 @@ msgstr "Düşük"
msgid "Extra low"
msgstr "Ekstra düşük"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d üçgen"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% üçgen"
+msgstr[1] "%1% üçgen"
msgid "Show wireframe"
msgstr "Wireframe göster"
@@ -1136,6 +1223,17 @@ msgstr "Önizleme işlenirken uygulanamaz"
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "İşlem zaten iptal ediliyor. Lütfen birkaç saniye bekleyin."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "Model sadeleştirme iptal edildi"
+
+msgid "Wiki Guide"
+msgstr "Viki Kılavuzu"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Video Kılavuzu"
+
msgid "Enforce seam"
msgstr "Dikişi uygula"
@@ -1187,6 +1285,14 @@ msgstr "Yüzeye konumlandır"
msgid "Emboss"
msgstr "Kabartma"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Stilde etkin yazı tipi yok. Doğru olanı seçin."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont düzgün yüklenmedi."
+
# AI Translated
msgid "NORMAL"
msgstr "NORMAL"
@@ -1273,8 +1379,9 @@ msgstr "Kes"
msgid "Click to change part type into negative volume."
msgstr "Parça tipini negatif hacme değiştirmek için tıklayın."
+# AI Translated
msgid "Modifier"
-msgstr "Değiştir"
+msgstr "Değiştirici"
msgid "Click to change part type into modifier."
msgstr "Parça tipini değiştiriciye değiştirmek için tıklayın."
@@ -1842,11 +1949,25 @@ msgstr "Çap"
msgid "Length"
msgstr "Uzunluk"
-msgid "Selection"
-msgstr "Seçim"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Yüz 1 (Sabit)"
-msgid " (Moving)"
-msgstr " (Hareketli)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Yüz 2 (Hareketli)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Nokta 1 (Sabit)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Nokta 2 (Hareketli)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Seçim 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1863,14 +1984,8 @@ msgstr ""
"aralarındaki mesafeyi belirtin."
# AI Translated
-msgid "Face"
-msgstr "Yüz"
-
-msgid " (Fixed)"
-msgstr " (Sabit)"
-
-msgid "Point"
-msgstr "Nokta"
+msgid "Selection 2"
+msgstr "Seçim 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1974,6 +2089,18 @@ msgstr "Birleştirme gizmosuna giriliyor"
msgid "Leaving Assembly gizmo"
msgstr "Birleştirme gizmosundan çıkılıyor"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2152,14 +2279,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2 Çalışma Zamanı"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Microsoft WebView2 Runtime yüklenemedi.\n"
"Kurulum sihirbazı dahil bazı özellikler, yüklenene kadar boş görünebilir.\n"
-"Lütfen https://developer.microsoft.com/microsoft-edge/webview2/ adresinden elle yükleyin ve Orca Slicer'ı yeniden başlatın."
+"Lütfen %1% adresinden elle yükleyin ve Orca Slicer'ı yeniden başlatın."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2404,6 +2532,66 @@ msgstr "Ağ Eklentisi Kısıtlaması"
msgid "Privacy Policy Update"
msgstr "Gizlilik Politikası Güncellemesi"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Tüm filament ön ayarlarınız, oluşturuldukları yazıcılarda kullanılabilir."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Filament Ön Ayarlarını Taşı"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0, hatalı profilleri düzeltmek ve gelecekteki özelliklere hazırlanmak için birçok sistem filament ön ayarını yeniden yapılandırdı. Bunun sonucunda aşağıdaki ön ayarlar, oluşturuldukları bazı yazıcılarda artık görünmüyor. Verdiğimiz rahatsızlık için özür dileriz; bu tek seferlik bir düzeltmedir.\n"
+"\n"
+"Bu yazıcılar şimdi ön ayarlarınıza geri eklensin mi? Ön ayarlarınızın önce yedeği alınır. Bunu daha sonra Yardım > Filament Ön Ayarlarını Taşı menüsünden de yapabilirsiniz."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (%2% tabanlı)"
+
+msgid "Don't remind me again"
+msgstr "Bana bir daha hatırlatma"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Ön ayarlarınızın yedeği alınamadı, bu yüzden taşınmadı."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Kullanıcı ön ayarları klasörü kilitlenemediği için hiçbir şey taşınmadı. Başka bir OrcaSlicer örneği ön ayarları kaydediyor olabilir; daha sonra Yardım > Filament Ön Ayarlarını Taşı menüsünden tekrar deneyin."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Filament ön ayarlarınız taşınamadı. Ön ayarlarınızın bir yedeği şuraya kaydedildi:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Filament ön ayarlarınız taşındı. Kullandığınız yerlerde bunları filament listesinden yeniden seçin.\n"
+"\n"
+"Ön ayarlarınızın bir yedeği şuraya kaydedildi:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Bu ön ayarlar taşınamadı:"
+
# AI Translated
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
@@ -2535,6 +2723,9 @@ msgstr "Eklentiler yenilendi."
msgid "Failed to refresh plugins: %s"
msgstr "Eklentiler yenilenemedi: %s"
+msgid "Unknown error"
+msgstr "Bilinmeyen hata"
+
# AI Translated
msgid "Select plugin package"
msgstr "Eklenti paketini seçin"
@@ -3063,6 +3254,22 @@ msgstr "Tümünü yeniden yükle"
msgid "Reload all from disk"
msgstr "Hepsini diskten yeniden yükle"
+# AI Translated
+msgid "Fix All"
+msgstr "Tümünü düzelt"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Mevcut plakadaki tüm modelleri düzelt"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Tüm plakaları düzelt"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Tüm plakalardaki tüm modelleri düzelt"
+
msgid "Auto Rotate"
msgstr "Otomatik döndürme"
@@ -3114,8 +3321,14 @@ msgstr "(Renk kaybı)"
msgid "Center"
msgstr "Merkez"
-msgid "Drop"
-msgstr "Düşür"
+# AI Translated
+# Needs human review: This catalog also renders 'Arrange' as 'Hizala' (e.g. 'Arrange all objects' = 'Tüm nesneleri hizala'); check this Align/Distribute submenu stays distinguishable from Arrange.
+msgid "Align/Distribute"
+msgstr "Hizala/Dağıt"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Nesneleri hizala ve dağıt"
msgid "Edit Process Settings"
msgstr "İşlem ayarlarını düzenle"
@@ -3414,6 +3627,13 @@ msgid_plural "Failed to repair the following model objects"
msgstr[0] "Aşağıdaki model nesnesi onarılamadı"
msgstr[1] "Aşağıdaki model nesneleri onarılamadı"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d model nesnesi onarım gerektirmedi."
+msgstr[1] "%1$d model nesnesi onarım gerektirmedi."
+
msgid "Repairing was canceled"
msgstr "Onarım iptal edildi"
@@ -3486,9 +3706,6 @@ msgstr "Kenarsız"
msgid "Outer wall speed"
msgstr "Dış duvar hızı"
-msgid "Plate"
-msgstr "Plaka"
-
msgid "Brim"
msgstr "Kenar"
@@ -3572,10 +3789,6 @@ msgstr "Özel Şablon Ekle"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Bu katmanın başlangıcına şablon özel G-code'u ekleyin."
-# AI Translated
-msgid "Filament "
-msgstr "Filament "
-
msgid "Change filament at the beginning of this layer."
msgstr "Bu katmanın başlangıcında filamenti değiştirin."
@@ -3664,8 +3877,10 @@ msgstr "Yine de Değiştir"
msgid "Off"
msgstr "Kapalı"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
-msgstr "Filtreli"
+msgstr "Filtre"
msgid "Enabling filtration redirects the right fan to filter gas, which may reduce cooling performance."
msgstr "Filtrelemenin etkinleştirilmesi, doğru fanı filtre gazına yönlendirir ve bu da soğutma performansını düşürebilir."
@@ -3779,12 +3994,19 @@ msgid "Check filament location"
msgstr "Filament konumunu kontrol et"
# AI Translated
-msgid "Switch"
-msgstr "Anahtar"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Duraklat"
# AI Translated
-msgid "hotend"
-msgstr "hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Ekstruderi değiştir"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Hotend'i değiştir"
# AI Translated
msgid "Wait for AMS cooling"
@@ -3977,8 +4199,10 @@ msgid "Arranging"
msgstr "Hizalanıyor"
# AI Translated
-msgid "Arranging "
-msgstr "Hizalanıyor "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "%1% hizalanıyor"
msgid "Arranging canceled."
msgstr "Hizalama iptal edildi."
@@ -4017,8 +4241,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Yönlendiriliyor..."
-msgid "Orienting"
-msgstr "Yönlendiriliyor"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "%1% yönlendiriliyor"
msgid "Orienting canceled."
msgstr "Yönlendirme iptal edildi."
@@ -4026,6 +4253,12 @@ msgstr "Yönlendirme iptal edildi."
msgid "Filling"
msgstr "Dolduruluyor"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "%1% dolduruluyor"
+
msgid "Bed filling canceled."
msgstr "Yatak dolumu iptal edildi."
@@ -4041,6 +4274,34 @@ msgstr "Yön araması iptal edildi."
msgid "Orientation found."
msgstr "Yön bulundu."
+# AI Translated
+msgid "Best surface quality"
+msgstr "En iyi yüzey kalitesi"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Nesne dönüşünü en iyi yüzey kalitesi için optimize edin."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Azaltılmış çıkıntı eğimleri"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Nesne dönüşünü, destek yapısı gerektiren çıkıntı miktarı en az olacak şekilde optimize edin.\n"
+"Yükseltme ayarlanmamışsa bu yöntemin, nesnenin yatağa temas edecek en iyi yüzeyini bulmaya çalışacağını unutmayın."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "En düşük Z yüksekliği"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Daha hızlı baskı süresi için modeli en düşük Z yüksekliğine sahip olacak şekilde döndürün."
+
msgid "Logging in"
msgstr "Giriş Yapılıyor"
@@ -4334,6 +4595,16 @@ msgstr "Son Projeler"
msgid "Go to Plate"
msgstr "Plakaya Git"
+msgid "Device"
+msgstr "Cihaz"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Cihaz (Web)"
+
+msgid "Multi-device"
+msgstr "Çoklu cihaz"
+
msgid "AMS Materials Setting"
msgstr "AMS Malzeme Ayarı"
@@ -4360,9 +4631,6 @@ msgstr "Giriş değeri %1%'den büyük ve %2%'den küçük olmalıdır"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Akış Dinamiği Kalibrasyonunun Faktörleri"
-msgid "Wiki Guide"
-msgstr "Viki Kılavuzu"
-
msgid "PA Profile"
msgstr "PA Profili"
@@ -4392,6 +4660,14 @@ msgstr "Lütfen geçerli bir değer girin (K %.1f~%.1f içinde)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Lütfen geçerli bir değer girin (K %.1f~%.1f içinde, N %.1f~%.1f içinde)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Favori filamentler"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Tüm filamentler"
+
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
@@ -4453,7 +4729,7 @@ msgstr "Kaydet"
msgctxt "Navigation"
msgid "Back"
-msgstr "Arka"
+msgstr "Geri"
msgid "Example"
msgstr "Örnek"
@@ -4714,11 +4990,11 @@ msgstr "Ağ eklentisi kuruldu ancak yüklenemedi. Lütfen uygulamayı yeniden ba
msgid "Restart Required"
msgstr "Yeniden Başlatma Gerekli"
-msgid "Please home all axes (click "
-msgstr "Lütfen tüm eksenleri hizalayın (tıklayın) "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") takım kafasının konumunu bulmak için. Bu, cihazın yazdırılabilir sınırın dışına çıkmasını ve ekipmanın aşınmasına neden olmasını önler."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Baskı kafasının konumunu bulmak için lütfen tüm eksenleri home konumuna getirin (%1% düğmesine tıklayın). Bu, cihazın yazdırılabilir sınırın dışına çıkmasını ve ekipmanın aşınmasına neden olmasını önler."
msgid "Go Home"
msgstr "Anasayfaya Git"
@@ -4733,6 +5009,10 @@ msgstr "Ölümcül bir hata oluştu: “%1%”"
msgid "Please save your project and restart the application."
msgstr "Lütfen projeyi kaydedin ve programı yeniden başlatın."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Bilinmeyen C++ istisnası."
+
msgid "Processing G-Code from previous file…"
msgstr "Önceki dosyadan G-code işleniyor…"
@@ -4957,6 +5237,14 @@ msgstr "Otomatik olarak sınır değerine (%g mm) ayarlansın mı?"
msgid "Adjust"
msgstr "Ayarla"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Raft ve rüzgarlık bant yazıcılarda kullanılamaz.\n"
+"Devre dışı bırakıldılar."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5590,8 +5878,9 @@ msgstr "Özet"
msgid "Layer Height"
msgstr "Katman Yüksekliği"
+# AI Translated
msgid "Line Width"
-msgstr "Katman Genişliği"
+msgstr "Çizgi Genişliği"
msgid "Actual Speed"
msgstr "Gerçek Hız"
@@ -5796,9 +6085,6 @@ msgstr "Optimum filament gruplamasına göre otomatik olarak yeniden dilimleyin
msgid "Filament Grouping"
msgstr "Filament Gruplaması"
-msgid "Why this grouping"
-msgstr "Neden bu gruplama"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "Lütfen filamentleri gruplama sonucuna göre yazıcıya yerleştirin."
@@ -5808,29 +6094,47 @@ msgstr "İpuçları:"
msgid "Current grouping of slice result is not optimal."
msgstr "Dilim sonucunun mevcut gruplaması optimal değil."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Optimum gruplamaya kıyasla %1%g filament ve %2% değişimi artırın."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Optimum gruplamaya kıyasla %1%g filament ve %2% değişim artışı."
+msgstr[1] "Optimum gruplamaya kıyasla %1%g filament ve %2% değişim artışı."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Optimum gruplamaya kıyasla %1%g filamenti artırın ve %2% değişiklikten tasarruf edin."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Optimum gruplamaya kıyasla %1%g filament artışı ve %2% değişim tasarrufu."
+msgstr[1] "Optimum gruplamaya kıyasla %1%g filament artışı ve %2% değişim tasarrufu."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Optimum gruplamaya kıyasla %1%g filamentten tasarruf edin ve değişiklikleri %2% artırın."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Optimum gruplamaya kıyasla %1%g filament tasarrufu ve %2% değişim artışı."
+msgstr[1] "Optimum gruplamaya kıyasla %1%g filament tasarrufu ve %2% değişim artışı."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Tek nozullu bir yazıcıya kıyasla %1%g filament ve %2% değişiklikten tasarruf edin."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Tek nozullu yazıcıya kıyasla %1%g filament ve %2% değişim tasarrufu."
+msgstr[1] "Tek nozullu yazıcıya kıyasla %1%g filament ve %2% değişim tasarrufu."
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Tek nozullu yazıcıya kıyasla %1%g filamentten tasarruf edin ve değişiklikleri %2% artırın."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Tek nozullu yazıcıya kıyasla %1%g filament tasarrufu ve %2% değişim artışı."
+msgstr[1] "Tek nozullu yazıcıya kıyasla %1%g filament tasarrufu ve %2% değişim artışı."
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Tek nozullu yazıcıya kıyasla %1%g filamenti artırın ve %2% değişiklikten tasarruf edin."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Tek nozullu yazıcıya kıyasla %1%g filament artışı ve %2% değişim tasarrufu."
+msgstr[1] "Tek nozullu yazıcıya kıyasla %1%g filament artışı ve %2% değişim tasarrufu."
msgid "Set to Optimal"
msgstr "Optimum'a Ayarla"
@@ -5988,12 +6292,61 @@ msgstr "Düzenleme alanını artır/azalt"
msgid "Sequence"
msgstr "Sekans"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Plaka kütle merkezi"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Parça kütle merkezi"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Destek kütle merkezi"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Montaj kütle merkezi"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Nesne kütle merkezi"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Tamamlanmış baskı"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "%1%. katmana kadar basıldı"
+
+# AI Translated
+msgid "Weight"
+msgstr "Ağırlık"
+
+msgid "Volume"
+msgstr "Hacim"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Sınırlayıcı kutu içindeki merkez"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Sınırlayıcı kutu boyutu"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Eylemsizlik momenti"
+
# AI Translated
msgid "Object selection"
msgstr "Nesne seçimi"
-msgid "number keys"
-msgstr "sayı tuşları"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "1~16 sayı tuşları"
msgid "Number keys can quickly change the color of objects"
msgstr "Sayı tuşları nesnelerin rengini hızla değiştirebilir"
@@ -6204,9 +6557,20 @@ msgstr "Eksenler"
msgid "Gridlines"
msgstr "Kılavuz çizgileri"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Etiketler"
+# AI Translated
+msgid "Center of mass"
+msgstr "Kütle merkezi"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Ham G-code'u göster (yalnızca bant)"
+
# AI Translated
msgid "Move section plane"
msgstr "Kesit düzlemini taşı"
@@ -6255,7 +6619,7 @@ msgstr "Hacim:"
msgid "Size:"
msgstr "Boyut:"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "%d katmanında G-code yollarında çakışmalar bulundu, Z = %.2lfmm. Lütfen çakışan nesneleri daha uzağa ayırın (%s <-> %s)."
@@ -6275,21 +6639,19 @@ msgstr "2 veya daha fazla TPU filamentinin yazdırılmasını desteklemez."
msgid "Tool %d"
msgstr "Araç %d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "%s filamenti %s içine yerleştirildi, ancak oluşturulan G-code yolu %s'nin yazdırılabilir aralığını aşıyor."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "%s filamentleri %s içine yerleştirildi, ancak oluşturulan G-code yolu %s'nin yazdırılabilir aralığını aşıyor."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "%s filamenti %s içine yerleştirildi, ancak oluşturulan G-code yolu %s'nin yazdırılabilir aralığını aşıyor."
+msgstr[1] "%s filamentleri %s içine yerleştirildi, ancak oluşturulan G-code yolu %s'nin yazdırılabilir aralığını aşıyor."
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "%s filamenti %s'e yerleştirildi, ancak oluşturulan G-code yolu %s'nin yazdırılabilir yüksekliğini aşıyor."
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "%s filamentleri %s'e yerleştirildi, ancak oluşturulan G-code yolu %s'nin yazdırılabilir yüksekliğini aşıyor."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "%s filamenti %s'e yerleştirildi, ancak oluşturulan G-code yolu %s'nin yazdırılabilir yüksekliğini aşıyor."
+msgstr[1] "%s filamentleri %s'e yerleştirildi, ancak oluşturulan G-code yolu %s'nin yazdırılabilir yüksekliğini aşıyor."
msgid "Open wiki for more information."
msgstr "Daha fazla bilgi için wiki'yi açın."
@@ -6297,9 +6659,12 @@ msgstr "Daha fazla bilgi için wiki'yi açın."
msgid "Only the object being edited is visible."
msgstr "Yalnızca düzenlenen nesne görünür."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "%s filamentleri bu plakanın yüzeyine doğrudan basılamaz."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "%s filamenti bu plakanın yüzeyine doğrudan basılamaz."
+msgstr[1] "%s filamentleri bu plakanın yüzeyine doğrudan basılamaz."
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "Karışımda PLA ve PETG filamentleri tespit edildi. Baskı kalitesini sağlamak için parametreleri Wiki'ye göre ayarlayın."
@@ -6423,27 +6788,20 @@ msgstr "Hazırlık"
msgid "Preview"
msgstr "Ön İzleme"
-msgid "Device"
-msgstr "Cihaz"
-
-msgid "Multi-device"
-msgstr "Çoklu cihaz"
-
msgid "Project"
msgstr "Proje"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Cihaz (Web)"
-
msgid "Yes"
msgstr "Evet"
msgid "No"
msgstr "Hayır"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "yeni bir model oluşturulmadan önce kapatılacaktır. Devam etmek istiyor musun?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "Yeni bir model oluşturulmadan önce %s kapatılacak. Devam etmek istiyor musunuz?"
msgid "Print all"
msgstr "Tümünü yazdır"
@@ -6488,6 +6846,10 @@ msgstr "Kurulum sihirbazı"
msgid "Show Configuration Folder"
msgstr "Yapılandırma klasörünü göster"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Bir profil güncellemesinin oluşturuldukları yazıcılardan kaldırdığı filament ön ayarlarını geri getir"
+
msgid "Troubleshoot Center"
msgstr "Sorun giderme merkezi"
@@ -6726,6 +7088,14 @@ msgstr "Kılavuz çizgilerini göster"
msgid "Show Gridlines on plate"
msgstr "Kılavuz Çizgilerini plaka üzerinde göster"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "IDEX/IQEX Baskı Kafasını Göster"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "G-code önizlemesinde her etkin nozulun çevresinde IDEX/IQEX baskı kafası temsilini gösterir."
+
msgid "Reset Window Layout"
msgstr "Pencere düzenini sıfırla"
@@ -7362,6 +7732,8 @@ msgstr "Derecelendir"
msgid "Calculating..."
msgstr "Hesaplanıyor..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Kamera"
@@ -7444,9 +7816,12 @@ msgstr "İndiriliyor..."
msgid "Cloud Slicing..."
msgstr "Bulut Dilimleme..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "Bulut Dilimleme Sırasında önünüzde %s görev var."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "Bulut Dilimleme Kuyruğunda önünüzde %d görev var."
+msgstr[1] "Bulut Dilimleme Kuyruğunda önünüzde %d görev var."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7477,6 +7852,11 @@ msgstr "Bu yalnızca yazdırma sırasında etkili olur"
msgid "Silent"
msgstr "Sessiz"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Standart"
+
msgid "Sport"
msgstr "Spor"
@@ -7533,17 +7913,29 @@ msgstr "Resim Yükle"
msgid "Number of images successfully uploaded"
msgstr "Başarıyla yüklenen resim sayısı"
-msgid " upload failed"
-msgstr " yükleme başarısız"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "%s yüklemesi başarısız oldu"
-msgid " upload config prase failed\n"
-msgstr " yapılandırma ön yüklemesi başarısız oldu\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "%s yükleme yapılandırması ayrıştırılamadı"
-msgid " No corresponding storage bucket\n"
-msgstr " Uygun depolama alanı yok\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: Uygun depolama alanı yok"
-msgid " cannot be opened\n"
-msgstr " açılamaz\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s açılamıyor"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7561,26 +7953,22 @@ msgstr "Yükleme başarısız\n"
msgid "Obtaining instance_id failed\n"
msgstr "Örnek kimliği (instance_id) alınamadı\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Yorum sonucunuz aşağıdaki bazı nedenlerden dolayı yüklenemiyor. Sebep:\n"
-"\n"
-" hata kodu: "
-
-msgid "error message: "
-msgstr "hata mesajı: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Yorum sonucunuz aşağıdaki nedenlerle yüklenemiyor:\n"
"\n"
+" hata kodu: %d\n"
+" hata mesajı: %s\n"
"\n"
-"Derecelendirme için web sayfasına yönlendirmek ister misiniz?"
+"Değerlendirme için web sayfasına yönlendirmek ister misiniz?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Bazı resimleriniz yüklenemedi. Değerlendirme için web sayfasına yönlendirmek ister misiniz?"
@@ -8421,6 +8809,114 @@ msgstr "Nesnenin tüm ayarları"
msgid "Material settings"
msgstr "Malzeme ayarları"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Her mod, katılan baskı kafalarını ve her birinin üstlendiği rolü belirtir. Rolleri arasında sırayla geçiş yapmak için bir araç düğmesine tıklayın — her rolün ne yaptığını görmek için aşağıdaki bir rengin üzerine gelin."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Mod Ekle"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "Araçlar"; align it once the term is settled.
+msgid "Tools"
+msgstr "Araçlar"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Modun, plakanın IDEX/IQEX mod seçicisinde nasıl adlandırıldığı. Zorunludur — adı olmayan bir mod seçilemez."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Modda hangi baskı kafalarının yer aldığı ve her birinin hangi rolü üstlendiği. Rolleri arasında sırayla geçiş yapmak için bir kutucuğa tıklayın."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "Yazıcıyı bu moda geçirmek için baskı başlangıcında çalıştırılan G-code (örneğin bir Klipper SET_PRINT_MODE çağrısı). Dilimleyici yalnızca Birincil (Primary) aracın yollarını üretir; diğerlerini ürün yazılımı yönetir."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Pasif"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Birincil"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Kopya"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Ayna"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+# Needs human review: "grid" here is the role-tile grid of the IDEX/IQEX Modes editor (Printer Settings), not the Grid pattern, so it is "Izgara" rather than the glossary "Kafes"; check it reads right next to the tiles; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Tüm dilimlenmiş yolları yürütür. Her zaman araç 0'dır — yatağın hangi köşesinde bulunacağını seçmek için yukarıdaki Araç 0 Konumu ayarını kullanın. Izgarada yeri değiştirilemez."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Ürün yazılımı düzeyinde Birincil (Primary) aracı izler; aynı yolları kendi bölgesine kaydırarak basar."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Ürün yazılımı düzeyinde Birincil (Primary) aracı izler; aynı yolları iki bölge arasındaki sınıra göre yansıtarak basar."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Birincil (Primary) aracın portalındaki bir aracı, onun çok renkli baskı ortağı olarak işaretler. Eşleştirilmiş portal modlarında çok renkli baskıya izin vermek için gereklidir."
+
+# AI Translated
+msgid "Primary"
+msgstr "Birincil"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Mod adı (zorunlu)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Bu paralel modun, plakanın IDEX/IQEX mod seçicisinde görünen adı. Projede adıyla saklanır; bu nedenle plakaların zaten kullandığı bir modu yeniden adlandırmak, bu plakaların Birincil moda geri dönmesine neden olur. Boş bırakılamaz — boş bir ad, otomatik oluşturulan bir adla değiştirilir."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "Bu modu kullanan bir baskının başında, Yazıcı Başlangıç G-code'undan önce bir kez yazılan G-code. Yazıcı burada ilgili ürün yazılımı moduna geçirilir — örneğin bir Klipper SET_PRINT_MODE çağrısı veya bir RepRapFirmware M567 komutu — çünkü dilimleyici yalnızca Birincil (Primary) aracın yollarını üretir ve Kopya (Copy) / Ayna (Mirror) araçlarını ürün yazılımı yönetir. Yer tutucular desteklenir; bunlara göz atmak için düzenle düğmesini kullanın. Mod herhangi bir ürün yazılımı kurulumu gerektirmiyorsa boş bırakın."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "G-code'u düzenle / yer tutuculara göz at"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Modu kaldır"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Bu modda oturum içinde yapılan düzenlemeleri at (kayıtlı değere geri dön)"
+
msgid "Remove current plate (if not last one)"
msgstr "Mevcut plakayı kaldırın (eğer sonuncusu değilse)"
@@ -8445,12 +8941,33 @@ msgstr "Mevcut plaka adını düzenle"
msgid "Move plate to the front"
msgstr "Plakayı öne doğru hareket ettirin"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX modu: %1% (işlem ön ayarı: %2%) (sırayla değiştirmek için sol tık, menü için sağ tık)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX modu: %1% (sırayla değiştirmek için sol tık, menü için sağ tık)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Uyarı: bu plaka, çoklu malzemeli nesnelerle paralel bir IDEX/IQEX modu kullanıyor. Dikkatli ilerleyin — G-code'unuzun bu kombinasyonu doğru şekilde işlediğini doğrulayın."
+
msgid "Customize current plate"
msgstr "Mevcut plakayı özelleştir"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "%s püskürtme ucu %s'yi yazdıramıyor."
+msgid "The left nozzle cannot print %s."
+msgstr "Sol nozul %s yazdıramıyor."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "Sağ nozul %s yazdıramıyor."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8460,12 +8977,18 @@ msgstr "Karışık renkli filamenti tek ekstruderli bir yazıcıda basmak sık f
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Yazdırmada %1% ile %2%'nin karıştırılması önerilmez.\n"
-msgid " nozzle"
-msgstr " nozul"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Aşağıdaki filament(ler)in %1%: %2% ile yazdırılması önerilmez.\n"
+msgid "%1%mm %2% nozzle"
+msgstr "%1% mm %2% nozul"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Aşağıdaki filamentin %1% ile yazdırılması önerilmez: %2%\n"
+msgstr[1] "Aşağıdaki filamentlerin %1% ile yazdırılması önerilmez: %2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "Aşağıdaki nozul ve filament kombinasyonlarının kullanılması tavsiye edilmez:\n"
@@ -8474,9 +8997,11 @@ msgstr "Aşağıdaki nozul ve filament kombinasyonlarının kullanılması tavsi
msgid "%1% with %2%\n"
msgstr "%1% ile %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " plaka %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Plaka %1% dilimleniyor: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Geçersiz ad, aşağıdaki karakterlere izin verilmiyor:"
@@ -8511,12 +9036,6 @@ msgstr "AMS(1 yuva)"
msgid "Not installed"
msgstr "Kurulu değil"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "Yazılım, bir baskı için farklı çaptaki püskürtme uçlarının kullanılmasını desteklemez. Eğer sol ve sağ püskürtme uçları tutarsız ise yalnızca tek kafalı baskıya geçebiliriz. Lütfen bu proje için hangi nozulu kullanmak istediğinizi onaylayın."
-
-msgid "Switch diameter"
-msgstr "Anahtar çapı"
-
msgid "Configuration incompatible"
msgstr "Yapılandırma uyumsuz"
@@ -8598,6 +9117,10 @@ msgstr "Karışık Filament"
msgid "Remove last mixed filament"
msgstr "Son karışık filamenti kaldır"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Tüm karışık filamentleri kaldır"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Karışık filament ekle"
@@ -8620,6 +9143,13 @@ msgstr "Karışık filamentin bileşen referansları bozuk"
msgid "Edit / Delete / Merge"
msgstr "Düzenle / Sil / Birleştir"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "%1% karışık filament kaldırılsın mı?"
+msgstr[1] "%1% karışık filamentin tümü kaldırılsın mı?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Hedef karışık filament bu fiziksel filamenti bileşen olarak kullanıyor. Birleştirme bu fiziksel filamenti kaldıracak ve karışık filamenti geçersiz kılabilir. Devam edilsin mi?"
@@ -8694,10 +9224,6 @@ msgstr "Dosya yükleniyor: %s"
msgid "Load 3MF"
msgstr "3MF yükle"
-# AI Translated
-msgid "BambuStudio Project"
-msgstr "BambuStudio Projesi"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "OrcaSlicer, 3MF formatını desteklememektedir. Sadece geometri verilerini yükle."
@@ -8729,20 +9255,6 @@ msgstr "Yazılımınızı yükseltseniz iyi olur.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "3mf'nin %s sürümü, %s'in %s sürümünden daha yeni, Yazılımınızı yükseltmenizi öneririz."
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "3MF, BambuStudio (sürüm %s) ile oluşturulmuş; bu sürüm, uyumlu sürüm %s'ten daha yeni. Tanınmayan ayarlar bulundu:"
-
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "3MF, BambuStudio (sürüm %s) ile oluşturulmuş; bu sürüm, uyumlu sürüm %s'ten daha yeni. Bazı ayarlar tam olarak uyumlu olmayabilir."
-
-# AI Translated
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "3MF, BambuStudio ile oluşturulmuş. Bazı ayarlar OrcaSlicer'dakinden farklı olabilir."
-
msgid "Invalid values found in the 3MF:"
msgstr "3mf'de geçersiz değerler bulundu:"
@@ -8911,6 +9423,15 @@ msgstr "Z konumunu korumak için Otomatik düşürme devre dışı bırakılsın
msgid "Object with floating parts was detected"
msgstr "Havada duran parçalara sahip nesne algılandı"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Dilimlenemiyor: bir nesne, IDEX/IQEX paralel baskısı için ayrılmış bir alanla çakışıyor (ikincil bir bölge veya birincil bölge içindeki bir taşıyıcı boşluk şeridi)."
+
+# AI Translated
+# Needs human review: Prime tower glossary cell is unsettled (Prime Kulesi / Silme kulesi); used Prime Kulesi as the setting label does.
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Dilimlenemiyor: Prime Kulesi, IDEX/IQEX paralel baskısı için ayrılmış bir alanla çakışıyor (ikincil bir bölge veya birincil bölge içindeki bir taşıyıcı boşluk şeridi)."
+
msgid "Another export job is running."
msgstr "Başka bir ihracat işi yürütülüyor."
@@ -8964,8 +9485,9 @@ msgstr "Değiştirilen birimler"
msgid "Please select a file"
msgstr "Dosya seçin"
-msgid "Do you want to replace it"
-msgstr "Değiştirmek istiyor musun"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Değiştirmek istiyor musunuz?"
msgid "Message"
msgstr "Mesaj"
@@ -8995,6 +9517,51 @@ msgstr "Geçersiz veri"
msgid "Slicing Canceled"
msgstr "Dilimleme İptal Edildi"
+# AI Translated
+# Needs human review: 'Tool' (T%d) is rendered 'araç' as in the old translation; the glossary row Tool (printer) is unsettled (Takım / Araç). Check the term once it is settled.
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Yatak sıcaklığı çakışması: T%d (%s) yatağı %d℃ değerine ayarlıyor — T%d (%s) ise %d℃ gerektiriyor. Yatağı birincil araç kontrol eder; ikincil araçlar onun ayarladığı sıcaklıkta basar."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Filament türü uyuşmazlığı: T%d %s, T%d ise %s kullanıyor. Bu malzemelerin gereksinimleri uyumsuzdur ve birlikte basılmak üzere tasarlanmamıştır."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"Plaka %d üzerinde IDEX/IQEX paralel modu etkin ve şu sorunlar var:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Dilimlemeye devam edilsin mi?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "IDEX/IQEX Paralel Mod Uyarısı"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Bu uyarıları bir daha gösterme"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Plaka %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Aşağıdaki IDEX/IQEX paralel mod sorunları tespit edildi:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Ağ eklentisi başarıyla değiştirildi."
@@ -9027,8 +9594,8 @@ msgid "Sync now"
msgstr "Şimdi senkronize et"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Bir işlem sürerken geri alma veya ileri alma yapılamaz. Önce işlemi durdurun."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Bir işlem çalışırken geri alma veya yineleme yapılamaz. İşlemi durdurun ya da bitmesini bekleyip yeniden deneyin."
# AI Translated
msgid ""
@@ -9099,6 +9666,14 @@ msgstr "İndirme başarısız oldu, Dosya boyutu sorunlu."
msgid "Project downloaded %d%%"
msgstr "Proje %d%% indirildi"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"PA Çizgi ve PA Deseni testleri bant yazıcılarda henüz etkin değil.\n"
+"Lütfen bunun yerine PA Kulesi yöntemini kullanın."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Pressure Advance Testi"
@@ -9106,11 +9681,15 @@ msgstr "Pressure Advance Testi"
msgid "INFO:"
msgstr "BİLGİ:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Kalibrasyon için ivme sağlanmadı. Varsayılan ivme değerini kullanın "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Kalibrasyon için ivme sağlanmadı. Varsayılan ivme değeri kullanılıyor: %1% mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Kalibrasyon için hız sağlanmadı. Varsayılan optimum hızı kullanın "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Kalibrasyon için hız sağlanmadı. Varsayılan optimum hız kullanılıyor: %1% mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9125,6 +9704,15 @@ msgstr "Orca YOLO Akış Kalibrasyonu"
msgid "Flowrate Test - Pass%d"
msgstr "Akış Hızı Testi - %d. Geçiş"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "%1% ile %2%℃ aralığı için bant sıcaklık kulesi mevcut değil. Kule modellerinin kapsadığı bir aralık kullanın, örneğin 230 ile 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Sıcaklık kulesi"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Nozul sıcaklığı testi"
@@ -9148,11 +9736,16 @@ msgstr "Viraj testi"
msgid "Import SLA archive"
msgstr "SLA arşivini içe aktar"
-msgid "The selected file"
-msgstr "Seçili dosya"
-
-msgid "Does not contain valid G-code."
-msgstr "Geçerli bir G-code içermiyor."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Seçilen dosya:\n"
+"%1%\n"
+"geçerli G-code içermiyor."
msgid "An Error has occurred while loading the G-code file."
msgstr "G-code dosyası yüklenirken bir hata oluştu."
@@ -9427,6 +10020,27 @@ msgstr "Şu anda nesne yapılandırma formu çoklu ekstruder yazıcıyla kullan
msgid "Not available"
msgstr "Müsait değil"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (plaka yok)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — yönlendirilmiş filament yok\n"
+"Bu kafanın bir filament yuvası olması için Makine sekmesinde bir ekstruder ekleyin."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> Filament %2%"
+
msgid "isometric"
msgstr "izometrik"
@@ -9466,6 +10080,8 @@ msgstr "Avrupa"
msgid "North America"
msgstr "Kuzey Amerika"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "Diğer"
@@ -9540,11 +10156,17 @@ msgstr "Ağ eklentisi yeniden yüklenemedi. Lütfen uygulamayı yeniden başlat
msgid "Reload Failed"
msgstr "Yeniden Yükleme Başarısız"
-msgid "Associate"
-msgstr "Ortak"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "%s:// ile ilişkilendir"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "orca'nın modelleri şuradan açabilmesi için OrcaSlicer ile (ilişkilendir / eşleştir)"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "%s:// bağlantılarını OrcaSlicer ile ilişkilendirin, böylece Orca %s üzerindeki modelleri açabilir"
msgid "Current Association: "
msgstr "Mevcut Bağlantı: "
@@ -9847,6 +10469,9 @@ msgstr "Son yazdırma eylemini hatırla"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Etkinleştirilirse OrcaSlicer, yazdır düğmesinin açılır menüsünde en son seçilen seçeneği (ör. Yazdır, Dilimlenmiş plaka dosyasını dışa aktar, G-code dosyasını dışa aktar) hatırlar ve bir sonraki başlangıçta varsayılan olarak kullanır."
+msgid "Camera"
+msgstr "Kamera"
+
msgid "Touchpad"
msgstr "Dokunmatik yüzey"
@@ -10305,6 +10930,9 @@ msgstr "Ağ eklentisi sürümü"
msgid "Select the network plug-in version to use"
msgstr "Kullanılacak ağ eklentisi sürümünü seçin"
+msgid "Associate"
+msgstr "Ortak"
+
msgid "Associate files to OrcaSlicer"
msgstr "Dosyaları OrcaSlicer ile ilişkilendirin"
@@ -10357,6 +10985,12 @@ msgstr "Desteklenmeyen ön ayarları göster"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Yazıcı ve filament açılır listelerinde uyumsuz/desteklenmeyen ön ayarları gösterir. Bu ön ayarlar seçilemez."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "Deneysel Özellikler"
@@ -10646,10 +11280,6 @@ msgstr "3MF Yayınla..."
msgid "Select which settings to be published in the 3MF file"
msgstr "3MF dosyasında hangi ayarların yayınlanacağını seçin"
-# AI Translated
-msgid "Video Guide"
-msgstr "Video Kılavuzu"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Karışık filament - yukarıdaki \"Aktif et\" seçildiğinde bir bütün olarak yayınlanır"
@@ -10814,6 +11444,13 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Basit"
+# AI Translated
+# Needs human review: Screen-reader label of a Speed Dial action; phrased without a case suffix because the second %s is a variable menu, tab or group name. Check it reads naturally.
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s (kaynak: %s)"
+
# AI Translated
msgid "Search actions"
msgstr "Eylem ara"
@@ -10931,6 +11568,10 @@ msgstr "Ayrıntıları göster"
msgid "Hide details"
msgstr "Ayrıntıları gizle"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Web görünümü kullanılamıyor."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11215,9 +11856,12 @@ msgstr "Gönderim Başarısız"
msgid "The name length exceeds the limit."
msgstr "Ad uzunluğu sınırı aşıyor."
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Maliyet %dg filament ve %d, optimum gruplandırmadan daha fazla değişir."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Optimum gruplamaya göre %dg daha fazla filament ve %d daha fazla değişim gerektirir."
+msgstr[1] "Optimum gruplamaya göre %dg daha fazla filament ve %d daha fazla değişim gerektirir."
# AI Translated
msgid "Right-Ext"
@@ -11307,6 +11951,10 @@ msgstr "Bazı filamentler yazdırma sırasında ekstruderler arasında geçiş y
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "Bu dosyada ip çekmeye eğilimli filament var. En iyi baskı kalitesi için nozul topaklanma algılamasını Otomatik moda almanızı öneririz."
+# AI Translated
+msgid "Switch"
+msgstr "Anahtar"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "'Dinamik Akış Kalibrasyonu' Otomatik/Açık olarak ayarlanmışsa sistem, elle yapılan kalibrasyon değerini veya varsayılan değeri kullanır ve akış kalibrasyonu sürecini atlar. TPU filament için 'Kalibrasyon' sayfasından elle akış kalibrasyonu yapabilirsiniz."
@@ -11623,14 +12271,20 @@ msgstr "Farklı ekstruder tahrikleri veya nozul hacmi tipleri arasında eşitlem
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Parametre değişikliklerini diğer ekstruderin ilgili parametreleriyle eşitleyin."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Bu simgeye sahip parametreler nozul başına yapılandırılabilir."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Tüm ayarları en son kaydedilen ön ayara sıfırlamak için tıklayın."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "Prime Kulesi"; align it once the term is settled.
msgid "Prime tower is required for nozzle changing. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?"
msgstr "Nozul değişimi için Prime Kulesi gereklidir. Prime Kulesi olmadan modelde kusurlar oluşabilir. Prime Kulesi'ni devre dışı bırakmak istediğinizden emin misiniz?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "Prime Tower" and "Prime tower"; align it once the term is settled.
msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without a prime tower. Are you sure you want to disable the prime tower?"
msgstr "Sorunsuz timelapse modu için Prime Tower gereklidir. Prime tower olmayan modelde kusurlar olabilir. Prime tower'ı devre dışı bırakmak istediğinizden emin misiniz?"
@@ -11647,6 +12301,7 @@ msgid "Enabling both precise Z height and the prime tower may cause slicing erro
msgstr "Hem hassas Z yüksekliğini hem de hazırlık kulesini etkinleştirmek dilimleme hatalarına neden olabilir. Yine de hassas Z yüksekliğini etkinleştirmek istiyor musunuz?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime kulesi"; align it once the term is settled.
msgid "Smooth timelapse needs a prime tower on every layer, which is not compatible with \"No sparse layers\". \"No sparse layers\" has been turned off."
msgstr "Pürüzsüz timelapse her katmanda bir prime kulesi gerektirir; bu da \"Seyrek katman yok\" ile bağdaşmaz. \"Seyrek katman yok\" kapatıldı."
@@ -11654,6 +12309,7 @@ msgid "A prime tower is required for smooth timelapse mode. There may be flaws o
msgstr "Sorunsuz hızlandırılmış çekim için Prime Tower gereklidir. Prime tower olmayan modelde kusurlar olabilir. Prime tower'ı etkinleştirmek istiyor musunuz?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime kulesi"; align it once the term is settled.
msgid "\"No sparse layers\" is not compatible with smooth timelapse, which needs a prime tower on every layer. Timelapse has been switched to traditional mode."
msgstr "\"Seyrek katman yok\", her katmanda bir prime kulesi gerektiren pürüzsüz timelapse ile bağdaşmaz. Timelapse geleneksel moda geçirildi."
@@ -11786,8 +12442,9 @@ msgstr "tam profil adı"
msgid "symbolic profile name"
msgstr "sembolik profil adı"
+# AI Translated
msgid "Line width"
-msgstr "Katman Genişliği"
+msgstr "Çizgi Genişliği"
msgid "Precision"
msgstr "Hassasiyet"
@@ -11858,6 +12515,9 @@ msgstr "Filament Kullanım Alanları"
msgid "Ooze prevention"
msgstr "Sızıntı Önleme"
+msgid "Others"
+msgstr "Diğer"
+
msgid "Special mode"
msgstr "Özel Mod"
@@ -11898,8 +12558,11 @@ msgstr[1] ""
"Aşağıdaki satırlar %s ayrılmış anahtar sözcükler içeriyor.\n"
"Lütfen bunları kaldırın, aksi takdirde G-code görselleştirmesini ve yazdırma süresi tahminini geçeceksiniz."
-msgid "Reserved keywords found"
-msgstr "Ayrılmış anahtar kelimeler bulundu"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "%1% içinde ayrılmış anahtar kelimeler bulundu"
msgid "Setting Overrides"
msgstr "Ayarların Üzerine Yaz"
@@ -12044,7 +12707,16 @@ msgstr "Plaka Ayarı"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Yazıcı iletişimi için ağ aracısı uygulamasını seçin. Kullanılabilir aracılar başlangıçta kaydedilir."
+# AI Translated
+msgid "Belt printer"
+msgstr "Bant yazıcı"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Makine koordinat sistemi dönüşümleri"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "%1% parametresi için geçersiz değer sağlandı: %2%"
@@ -12162,9 +12834,29 @@ msgstr "Nozul çapı"
msgid "Wipe tower"
msgstr "Silme kulesi"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Bant yıkama kulesi"
+
msgid "Single extruder multi-material parameters"
msgstr "Tek Ekstruder Çoklu Malzeme Parametreleri"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "IDEX/IQEX Yapılandırması"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Dilimleme öncesi uyarılar"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "IDEX/IQEX paralel mod sorunları tespit edilirse (yatak sıcaklığı çakışmaları, filament türü uyuşmazlıkları, çoklu malzeme çakışmaları) dilimlemeden önce bir uyarı iletişim kutusu gösterir. İletişim kutusunun kendisinden kapatılabilir. Yanlışlıkla kapatıldıysa buradan yeniden etkinleştirin."
+
+# AI Translated
+msgid "Modes"
+msgstr "Modlar"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Bu tek ekstruderli çok malzemeli bir yazıcıdır, tüm ekstruderlerin çapları yeni değere ayarlanacaktır. Devam etmek istiyor musunuz?"
@@ -12174,6 +12866,22 @@ msgstr "Katman Yüksekliği Sınırları"
msgid "Z-Hop"
msgstr "Z Sıçraması"
+# AI Translated
+msgid "Front-left"
+msgstr "Sol ön"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Sağ ön"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Sol arka"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Sağ arka"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -12196,22 +12904,37 @@ msgstr "Değiştirilmiş Değeri Kullan"
msgid "Detached"
msgstr "Söküldü"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% ve %2% bu yazıcıya bağlı. Yazıcı silinirse bu ön ayarlar da silinir."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "%d Filament Ön Ayarı ve %d İşlem Ön Ayarı bu yazıcıya eklenmiştir. Yazıcı silinirse bu ön ayarlar silinir."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d filament ön ayarı"
+msgstr[1] "%d filament ön ayarı"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d işlem ön ayarı"
+msgstr[1] "%d işlem ön ayarı"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Diğer ön ayarlar tarafından devralınan ön ayarlar silinemez!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Aşağıdaki ön ayarlar bu ön ayarı devralır."
-msgstr[1] "Aşağıdaki ön ayar bu ön ayarı devralır."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "Aşağıdaki ön ayar bu ön ayarı devralır."
+msgstr[1] "Aşağıdaki ön ayarlar bu ön ayarı devralır."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% Ön Ayar"
+msgid "Delete Preset"
+msgstr "Ön Ayarı Sil"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -12225,9 +12948,9 @@ msgstr ""
"Seçilen ön ayarı silmek istediğinizden emin misiniz?\n"
"Eğer ön ayar, şu anda yazıcınızda kullanılan bir filamente karşılık geliyorsa, lütfen o slot için filament bilgilerini sıfırlayın."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Seçilen ön ayarı %1% yaptığınızdan emin misiniz?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Seçilen ön ayarı silmek istediğinizden emin misiniz?"
msgid "Select printers"
msgstr "Yazıcıları seçin"
@@ -12288,9 +13011,39 @@ msgid "Don't warn again for this preset"
msgstr "Bu ön ayar için bir daha uyarma"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# Needs human review: Short tag for the Standard nozzle flow type, abbreviating 'Standart Akış'. Check it fits the preset-name tag and that a Turkish abbreviation is wanted rather than the English SF.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SA"
+
+# AI Translated
+# Needs human review: Short tag for the High Flow nozzle flow type, abbreviating 'Yüksek Akış'. Check it fits the preset-name tag and that a Turkish abbreviation is wanted rather than the English HF.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "YA"
+
+# AI Translated
+# Needs human review: Short tag for the TPU High Flow nozzle flow type ('TPU Yüksek Akış'). Same check as for YA.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU YA"
+
+# AI Translated
+# Needs human review: Short tag for the E3D High Flow nozzle flow type ('E3D Yüksek Akış'). Same check as for YA.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D YA"
+
+# AI Translated
+# Needs human review: Short tag for the Extra High Flow nozzle flow type ('Ekstra Yüksek Akış'). Same check as for YA.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "EYA"
# AI Translated
msgid "No modifications need to be copied."
@@ -12497,6 +13250,12 @@ msgstr "Ön ayarlardan biri mevcut değil"
msgid "Compared presets has different printer technology"
msgstr "Karşılaştırılan ön ayarların yazıcı teknolojisi farklı"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" ve \"%2%\" karşılaştırması"
+
msgid "Add File"
msgstr "Dosya Ekle"
@@ -12522,6 +13281,22 @@ msgstr "Malzeme Listesi"
msgid "Assembly Guide"
msgstr "Montaj Kılavuzu"
+# AI Translated
+msgid "Image files"
+msgstr "Görüntü dosyaları"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXT dosyaları"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCEL dosyaları"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDF dosyaları"
+
msgid "Author"
msgstr "Yazar"
@@ -12721,9 +13496,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Toplam çarpma"
-msgid "Volume"
-msgstr "Hacim"
-
msgid "Ramming line"
msgstr "Çarpma hattı"
@@ -12750,8 +13522,11 @@ msgstr "Çarpan"
msgid "Flushing volumes for filament change"
msgstr "Filament değişimi için temizleme hacmi"
-msgid "Please choose the filament color"
-msgstr "Lütfen filament rengini seçin"
+# AI Translated
+# Needs human review: Corner header of the flushing volume table (rows = filament flushed from, columns = filament changed to); check it reads right in the table.
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "kaynak/hedef"
# AI Translated
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -12774,6 +13549,137 @@ msgstr "Giriş başarısız oldu. Lütfen yeniden deneyin."
msgid "parse json failed"
msgstr "json ayrıştırma başarısız oldu"
+msgid "Loading…"
+msgstr "Yükleme devam ediyor…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Özel"
+
+msgid "Welcome to Orca Slicer"
+msgstr "Orca Slicer'a hoş geldiniz"
+
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Dilimleyici birkaç adımda kurulacaktır. Hadi başlayalım!"
+
+msgid "Get Started"
+msgstr "Başla"
+
+msgid "Please select your login region"
+msgstr "Lütfen giriş bölgenizi seçin"
+
+msgid "Finish"
+msgstr "Bitir"
+
+msgid "Printer Selection"
+msgstr "Yazıcı Seçimi"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Satıcılar"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Özel Yazıcı"
+
+msgid "Create"
+msgstr "Oluştur"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Yeni yazıcıları kontrol et"
+
+msgid "At least one printer must be selected."
+msgstr "En az bir yazıcı seçilmelidir."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Yeni yazıcılar bulundu"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Yeni yazıcı satıcıları yüklendi: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Yeni yazıcı satıcıları bulundu ancak yükleme iptal edildi."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Yeni yazıcı bulunamadı."
+
+msgid "Filament Selection"
+msgstr "Filament Seçimi"
+
+msgid "System Filaments"
+msgstr "Sistem Filamentleri"
+
+msgid "Custom Filaments"
+msgstr "Özel Filamentler"
+
+msgid "Create New"
+msgstr "Yeni Oluştur"
+
+msgid "Filament type"
+msgstr "Filament türü"
+
+msgid "Vendor"
+msgstr "Satıcı"
+
+# AI Translated
+msgid "No items"
+msgstr "Öğe yok"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Öğeleri filtrele"
+
+# AI Translated
+msgid "Checked"
+msgstr "Seçili"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Seçili olmayan"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Filtrelenenleri seç"
+
+msgid "Clear all"
+msgstr "Hepsini temizle"
+
+msgid "At least one filament must be selected."
+msgstr "En az bir filament seçilmelidir."
+
+msgid "Do you want to use the default filament?"
+msgstr "Varsayılan filamenti kullanmak ister misiniz ?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Bu, Orca Cloud profil eşitlemesi dahil tüm bulut özelliklerini devre dışı bırakır. Tamamen çevrimdışı çalışmayı tercih eden kullanıcılar bu seçeneği etkinleştirebilir."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Not: Gizli Mod etkinken kullanıcı profilleriniz Orca Cloud'a yedeklenmez."
+
+msgid "Enable Stealth Mode."
+msgstr "Gizli Modu etkinleştirin."
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Özel Eklentiler"
+
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Bazı yazıcı üreticileri, yazıcılarıyla iletişim için özel eklentilere ihtiyaç duyar. Bu tür yazıcılar kullanıyorsanız lütfen ilgili eklentiyi seçin."
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Lütfen bu eklentilerin OrcaSlicer tarafından geliştirilmediğini veya bakımının yapılmadığını unutmayın. Kendi takdirinize ve riskinize göre kullanılmalıdırlar."
+
+msgid "Install Bambu Network plug-in"
+msgstr "Bambu Ağı eklentisini yükleyin"
+
msgid "[Action Required] "
msgstr "[İşlem Gerekli] "
@@ -12842,9 +13748,6 @@ msgstr "Hazırlık sekmesindeki 3D görünüm odaktayken kullanılabilir."
msgid "Select a part"
msgstr "Parça seçin"
-msgid "Select multiple objects"
-msgstr "Birden fazla nesne seç"
-
msgid "Select objects by rectangle"
msgstr "Nesneleri dikdörtgene göre seç"
@@ -13179,27 +14082,20 @@ msgstr "Ürün yazılımı sürümü anormal. Yazdırmadan önce onarım ve gün
msgid "Extension Board"
msgstr "Uzatma Kartı"
-# AI Translated
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "%1% parçaya ayır"
-
msgid "Repair finished"
msgstr "Onarım tamamlandı"
-msgid "Repair failed"
-msgstr "Onarım başarısız oldu"
-
-msgid "Repair canceled"
-msgstr "Onarım iptal edildi"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "%1% dosyasının %2% dosyasına kopyalanması başarısız oldu: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Yeni satıcı profilleri indiriliyor: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Yeni satıcı profili indiriliyor: %1%..."
+msgstr[1] "Yeni satıcı profilleri indiriliyor: %1%..."
# AI Translated
#, boost-format
@@ -13207,8 +14103,12 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Yapılandırma paketi: %1% sürüm %2% olarak güncellendi"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Satıcı profilleri indirilemedi: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Satıcı profili indirilemedi: %1%"
+msgstr[1] "Satıcı profilleri indirilemedi: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Yapılandırma güncellemelerinden önce kaydedilmemiş değişiklikleri kontrol etmeniz gerekir."
@@ -13216,6 +14116,11 @@ msgstr "Yapılandırma güncellemelerinden önce kaydedilmemiş değişiklikleri
msgid "Open G-code file:"
msgstr "G-code dosyasını açın:"
+# AI Translated
+# Needs human review: Glossary row Prime tower / Wipe tower is unsettled; 'silme kulesi' is used for 'Wipe tower' as elsewhere in the catalog.
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Silme kulesi oluşturulamadı, muhtemelen ilk katmanın boş olmasından kaynaklanıyor."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Bir nesnenin ilk katmanı boş ve yazdırılamıyor. Lütfen alt kısmı kesin veya destekleri etkinleştirin."
@@ -13238,9 +14143,62 @@ msgstr "İşlem ekstrüzyon rolü değişim G-code'u"
msgid "Filament change extrusion role G-code"
msgstr "Filament ekstrüzyon rolü değişim G-code'u"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"G-code'un %1% konumuna dışa aktarımı başarısız oldu.\n"
+"Dosya yazmak üzere açılamıyor."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "%1% klasörü mevcut değil."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"G-code'un %1% konumuna dışa aktarımı başarısız oldu.\n"
+"Disk dolu mu?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Çıktı G-code dosyası %1% konumundan %2% konumuna yeniden adlandırılamadı.\n"
+"Hata: %3%\n"
+"%1% kilitli mi?"
+
msgid "No object can be printed. It may be too small."
msgstr "Hiçbir nesne basılamıyor. Nesne çok küçük olabilir."
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "\"%1%\" IDEX/IQEX modunun seçili yazıcıda atanmış aracı yok. Bunun yerine Birincil modda basılıyor. Modun araçlarını Yazıcı Ayarları'nda atayın veya plakanın IDEX/IQEX düğmesinden başka bir mod seçin."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Bu plaka, seçili yazıcının tanımlamadığı \"%1%\" IDEX/IQEX moduna ayarlı. Bunun yerine Birincil modda basılıyor. Plakanın IDEX/IQEX düğmesinden bir mod seçin veya modu Yazıcı Ayarları'nda geri yükleyin."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Geçersiz küçük resim değeri:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Baskınız hazırlama bölgelerine çok yakın. Çarpışma olmadığından emin olun."
@@ -13287,6 +14245,10 @@ msgstr "Gruplama hatası: %1% sol nozula yerleştirilemez"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Gruplama hatası: %1% sağ nozula yerleştirilemez"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Geçerli nozul bulunamadı. Lütfen nozul sayısını kontrol edin."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Elle modda gruplama hatası. Lütfen nozul sayısını denetleyin veya yeniden gruplayın."
@@ -13306,6 +14268,18 @@ msgstr "bir çevreyle birden fazla kesişim var, yalnızca biri kullanıldı (%1
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "bir çevre tamamen bir değiştiricinin içinde, değiştirici ona uygulanmadı (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "\"%3%\" nesnesinin %1% değiştiricisi \"%2%\", bir çevrenin tamamını kapsıyor"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "\"%3%\" nesnesinin %1% değiştiricisi \"%2%\" (toplam %4%), bir çevrenin tamamını kapsıyor"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13320,9 +14294,47 @@ msgstr "\"%2%\" nesnesinin \"%1%\" değiştiricisinin (toplam %3%) dikiş üzeri
msgid "Seam placement may differ from expected."
msgstr "Dikiş yerleşimi beklenenden farklı olabilir."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "İç köprü"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() negatif aralık üretti. Bir ekstrüzyon genişliğini çok mu küçük ayarladınız?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() negatif akış üretti. Bir ekstrüzyon genişliğini çok mu küçük ayarladınız?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "%1% çizgi genişliği hesaplanamadı. \"%2%\" değeri alınamıyor."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Flow::with_spacing()'e sağlanan geçersiz boşluk, kat yüksekliğinizi ve ekstrüzyon genişliğinizi kontrol edin"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Seçilen 3mf dosyası %1% uygulamasının daha yeni bir sürümüyle kaydedilmiş ve uyumlu değil."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Seçilen 3MF, PrusaSlicer'ın daha yeni bir sürümü kullanılarak FDM destekleri boyanmış bir nesne içeriyor ve uyumlu değil."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Seçilen 3MF, PrusaSlicer'ın daha yeni bir sürümü kullanılarak dikişi boyanmış bir nesne içeriyor ve uyumlu değil."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Seçilen 3MF, PrusaSlicer'ın daha yeni bir sürümü kullanılarak çoklu malzeme boyaması yapılmış bir nesne içeriyor ve uyumlu değil."
+
msgid "undefined error"
msgstr "bilinmeyen hata"
@@ -13417,6 +14429,61 @@ msgstr "doğrulama başarısız"
msgid "write callback failed"
msgstr "geri arama yazma başarısız oldu"
+# AI Translated
+msgid "unknown error"
+msgstr "bilinmeyen hata"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "IDEX/IQEX paralel modlarında çok renkli baskılar, her filamentin kendine ayrılmış fiziksel bir ekstruderi olmasını gerektirir. Etkin filamentlerden iki veya daha fazlası, yazıcının fiziksel ekstruder eşlemesi (bir MMU/AFC dağıtıcısı) üzerinden aynı fiziksel kafaya yönlendirilmiş; bağımlı portal bunu izleyemez."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "Etkin IDEX/IQEX modu birincil bir araç tanımlamıyor, bu nedenle çok renkli baskı planlanamıyor. Yazıcı ayarlarındaki IDEX/IQEX Modlar düzenleyicisini açın ve bir araca Birincil (Primary) rolünü atayın."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Bu moddaki çok renkli baskı bir paralel baskı senaryosu değil — tüm etkin araçlar tek bir portal üzerinde, dolayısıyla kopyalanacak veya aynalanacak ikinci bir portal yok. Tek portalda çok renkli baskı için plakayı Birincil moda geçirin veya ikinci bir portaldaki araçları içeren bir IDEX/IQEX modu tanımlayın."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "IDEX/IQEX paralel modlarında çok renkli baskılar, birincil aracın portalında bir Span aracı gerektirir — bu olmadan mod, portal içi bir çok renkli baskı ortağı tanımlamaz. Baskıyı tek bir filamente indirin, Birincil moda geçin ya da yazıcı ayarlarındaki IDEX/IQEX Modlar düzenleyicisini açıp birincil aracın portalındaki bir aracı Span olarak işaretleyin."
+
+# AI Translated
+# Needs human review: 'Tool' is rendered 'araç' as in the old translation; the glossary row Tool (printer) is unsettled (Takım / Araç). %1% is a list such as T0/T1.
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Bu Span modunda renkleri yalnızca %1% basar, ancak filament %2% hiçbir araca yönlendirilmemiş. %1% üzerine yönlendirilmiş filamentleri kullanın veya bu plakayı Birincil moda geçirin."
+
+# AI Translated
+# Needs human review: %1% is a list of tools such as T0/T1 and %3% a tool number; check the phrasing reads right with both substitutions.
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Bu Span modunda renkleri yalnızca %1% basar, ancak filament %2%, T%3% üzerine yönlendirilmiş. %1% üzerine yönlendirilmiş filamentleri kullanın veya bu plakayı Birincil moda geçirin."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Seçilen ön ayar yüklenemiyor: %1%\n"
+"\tNeden: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Ön ayar dosyası yüklenemedi: %1%\n"
+"\tNeden: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1%, hariç tutma alanına çok yakın; yazdırma sırasında çarpışmalar meydana gelebilir."
@@ -13430,30 +14497,44 @@ msgid "%1% is too tall, and collisions will be caused."
msgstr "%1% çok uzun ve çarpışmalara neden olacak."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime kulesi"; align it once the term is settled.
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "Modelin ve prime kulesinin göreli konumu \"Seyrek katman yok\" özelliğinin gereksinimlerini karşılamıyor. Lütfen göreli konumlarını ayarlayın, model yüksekliğini azaltın veya \"Seyrek katman yok\" seçeneğini kapatın."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " Hariç tutma alanına çok yakın olduğundan yazdırma sırasında çarpışmalar meydana gelebilir."
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " topaklanma algılama alanına çok yakın, baskı sırasında çarpışmalar meydana gelebilir."
-
-msgid "Prime Tower"
-msgstr "Başbakan Kulesi"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " başkalarına çok yakın olduğundan çarpışmalara neden olabilir.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " dışlama alanına çok yakın ve çarpışmalara neden olacak.\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " topaklanma algılama alanına çok yakın, çarpışmalar meydana gelecektir.\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1%, topaklanma algılama alanına çok yakın. Yazdırma sırasında çarpışmalar olabilir."
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " yazdırılabilir alanın kısmen dışında ve yazdırılamaz.\n"
+# Needs human review: Glossary row Prime tower / Wipe tower is unsettled; 'Prime Kulesi' is used as in the catalog.
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "Prime Kulesi diğerlerine çok yakın ve çarpışmalara neden olabilir.\n"
+
+# AI Translated
+# Needs human review: Glossary row Prime tower / Wipe tower is unsettled; 'Prime Kulesi' is used as in the catalog.
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "Prime Kulesi hariç tutma alanına çok yakın ve çarpışmalara neden olacak.\n"
+
+# AI Translated
+# Needs human review: Glossary row Prime tower / Wipe tower is unsettled; 'Prime Kulesi' is used as in the catalog.
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "Prime Kulesi topaklanma algılama alanına çok yakın ve çarpışmalara neden olacak.\n"
+
+# AI Translated
+# Needs human review: Glossary row Prime tower / Wipe tower is unsettled; 'Prime Kulesi' is used as in the catalog.
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "Prime Kulesi hariç tutma alanına çok yakın. Yazdırma sırasında çarpışmalar olabilir."
+
+# AI Translated
+# Needs human review: Glossary row Prime tower / Wipe tower is unsettled; 'Prime Kulesi' is used as in the catalog.
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "Prime Kulesi topaklanma algılama alanına çok yakın. Yazdırma sırasında çarpışmalar olabilir."
+
+# AI Translated
+# Needs human review: Glossary row Prime tower / Wipe tower is unsettled; 'Prime Kulesi' is used as in the catalog.
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "Prime Kulesi kısmen yazdırılabilir alanın dışında ve yazdırılamaz.\n"
# AI Translated
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
@@ -13470,6 +14551,60 @@ msgstr "Yine de yazdırmak istiyorsanız Tercihler / Denetim / Dilimleme / Karı
msgid "No extrusions under current settings."
msgstr "Mevcut ayarlarda ekstrüzyon yok."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Karışık filamentler IDEX/IQEX paralel modlarında desteklenmez. Bu plakayı Birincil moda geçirin."
+
+# AI Translated
+# Needs human review: 'Tool' is rendered 'araç'; the glossary row Tool (printer) is unsettled (Takım / Araç).
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "\"%1%\" IDEX/IQEX modu T%2% ile basar, ancak bu plakanın hiçbir filamenti yapılandırılmış bir araçta değil. T%2% üzerine yüklü bir filament atayın veya bu plakayı Birincil moda geçirin."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "\"%1%\" IDEX/IQEX modu T%2% ile basar, ancak bu plakanın filamentlerinin bulunduğu yer: %3%. T%2% üzerine yüklü bir filament atayın veya bu plakayı Birincil moda geçirin."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Raft, bant yazıcı moduyla uyumlu değil."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Rüzgarlık, bant yazıcı moduyla uyumlu değil."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "Kenar, bant yazıcıda spiral vazo moduyla uyumlu değil. Bunlardan birini devre dışı bırakın."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Bant, kenar için çok dik olduğundan kenar oluşturulmayacak."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Kenar yalnızca bant eğik olduğunda oluşturulur. Bir bant eğim açısı ayarlayın veya kenar ayarını kaldırın."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Bant yazıcılar yalnızca dış ve iç kenarı destekler. Otomatik, Fare kulağı ve Boyalı kenar türleri, Kenar genişliği kullanılarak Yalnızca dış kenar olarak basılır."
+
+# AI Translated
+# Needs human review: Brim and edge are both "kenar" in Turkish: the leading brim is rendered "ileri kenar" to keep it apart from the leading edge ("ön kenar", glossary). Check the sentence stays clear.
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "Kenar-nesne boşluğu, ileri kenarı nesnenin ön kenarından, yani sabitlemesi gereken kenardan ayırır. İleri kenar uzunluğu kullanılırken boşluğu 0'a ayarlayın."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "İleri kenar uzunluğu, her nesnenin önünde bant boyunca uzanır ve Hizala bu alanı ayırmaz. Nesneler arasında boşluk bırakın."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "\"Yalnızca ön kenar\" kenar türü bant yazıcılar için geçerlidir. Bu yazıcıda sıradan bir dış kenar olarak basılır."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Gradyanlı bir karışık filament kullanılıyor ancak 'Karışık renk alt katmanı' devre dışı. Gradyan basılmayacak."
@@ -13480,6 +14615,18 @@ msgstr "\"Nesneye göre\" dizisi etkinleştirildiğinde, hızlandırılmış çe
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "\"Nesneye göre\" sırası etkinleştirildiğinde kümelenme tespiti desteklenmez."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "Bant yıkama kulesi \"Nesneye göre\" yazdırma sırasında oluşturulmaz; filament değişimlerinde yıkama yapılmayacak."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "Bant yıkama kulesi etkin ancak projede yıkama kulesi nesnesi yok; filament değişimlerinde yıkama yapılmayacak. Kuleyi oluşturmak için projeyi uygulamada açın."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Proje, yönetilen birden fazla bant yıkama kulesi içeriyor. Kuleyi yeniden oluşturmak için plakayı yeniden yükleyin veya bant yıkama kulesini kapatıp yeniden açın."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Hem hassas Z yüksekliğini hem de hazırlık kulesini etkinleştirmek dilimleme hatalarına neden olabilir."
@@ -13496,10 +14643,6 @@ msgstr "Bir nesne birden fazla malzeme içerdiğinde spiral vazo modu çalışma
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "%1% nesnesinin kendisi yapı hacmine uysa da, malzeme büzülme telafisi nedeniyle maksimum yapı hacmi yüksekliğini aşıyor."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "%1% nesnesi maksimum yapı hacmi yüksekliğini aşıyor."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "%1% nesnesinin kendisi yapı hacmine uysa da, son katmanı maksimum yapı hacmi yüksekliğini aşıyor."
@@ -13507,10 +14650,15 @@ msgstr "%1% nesnesinin kendisi yapı hacmine uysa da, son katmanı maksimum yap
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Modelinizin boyutunu küçültmek veya mevcut yazdırma ayarlarını değiştirip yeniden denemek isteyebilirsiniz."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "%1% nesnesi maksimum yapı hacmi yüksekliğini aşıyor."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Değişken katman yüksekliği Organik desteklerle desteklenmez."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "Silme kulesi"; align it once the term is settled.
msgid "The wipe tower filament cannot be a mixed filament."
msgstr "Silme kulesi filamenti karışık filament olamaz."
@@ -13665,6 +14813,10 @@ msgstr "Bir veya daha fazla ekstruder için Uyarlanabilir Pressure Advance model
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "Filament büzülmesi kullanılmayacaktır çünkü kullanılan filamentlerin filament büzülmesi önemli ölçüde farklılık göstermektedir."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "Baskı boş. Model, geçerli baskı ayarlarıyla yazdırılamıyor."
+
msgid "Generating skirt & brim"
msgstr "Etek ve kenar oluşturma"
@@ -13684,6 +14836,17 @@ msgstr "G-code dışa aktarılıyor"
msgid "Generating G-code"
msgstr "G-code oluşturuluyor"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Önceki 3MF dosyasındaki %1% G-code dosyası işlenemedi."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "Bant yıkama kulesi tüm yıkama hacmini karşılayamıyor: toplam %1% mm³ yıkanamadı (en kötü katman: %3% yüksekliğinde %2% mm³). Baskıda renk sızması görülebilir. Bant yıkama kulesi genişliğini artırın veya yıkama hacimlerini azaltın."
+
# AI Translated
msgid "Processing of the filename_format template failed."
msgstr "filename_format şablonunun işlenmesi başarısız oldu."
@@ -14157,13 +15320,13 @@ msgid ""
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
-"Köprünün çizgi genişliği. Yüzde olarak ifade edilirse nozul çapı üzerinden hesaplanır.\n"
-"Daha yüksek bir Köprü yoğunluğu veya Köprü akış oranı ile birlikte kullanılması önerilir.\n"
+"Köprünün çizgi genişliği. % olarak ifade edilirse nozul çapı üzerinden hesaplanacaktır.\n"
+"Daha yüksek bir Köprü yoğunluğu veya Köprülerde akış oranı ile birlikte kullanılması önerilir.\n"
"\n"
"En büyük değer %100 veya nozul çapıdır.\n"
-"0 olarak ayarlanırsa çizgi genişliği İç katı dolgu genişliğiyle eşleşir."
+"0 olarak ayarlanırsa çizgi genişliği İç katı dolgu genişliğiyle, kalın köprüler için ise nozul çapıyla eşleşir."
msgid "Internal bridge flow ratio"
msgstr "İç köprü akış oranı"
@@ -14448,7 +15611,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Duvarların yukarı doğru kıvrılmış olabileceği bölgelerde yazdırmayı yavaşlatmak için bu seçeneği etkinleştirin.\n"
"Örneğin, Benchy gövdesinin ön kısmı gibi keskin köşelerdeki çıkıntılar yazdırılırken ek yavaşlama uygulanır; bu da birden çok katmanda birikerek artan kıvrılmayı azaltır.\n"
@@ -14460,22 +15623,23 @@ msgstr ""
"Bu seçeneği etkinleştirirken öneriler:\n"
"1. Ekstruderin hız değişimlerine hızlı tepki vermesi için Pressure Advance yumuşatma süresini 0,015 - 0,02 değerine düşürün.\n"
"2. Yavaşlamanın büyüklüğünü sınırlamak ve hızlı ile yavaş bölümler arasındaki farkı azaltmak için minimum baskı hızlarını artırın.\n"
-"3. Bozulmalar hâlâ görünüyorsa, akış geçişlerini daha da yumuşatmak için Ekstrüzyon Hızı Yumuşatma'yı (ERS) etkinleştirin.\n"
+"3. Bozulmalar hâlâ görünüyorsa, akış geçişlerini daha da yumuşatmak için Ekstrüzyon hızını yumuşatmayı (ERS) etkinleştirin.\n"
"\n"
"Not: Bu seçenek etkinleştirildiğinde çıkıntı duvarları çıkıntı gibi ele alınır; yani çıkıntı yapan duvar bir köprünün parçası olsa bile çıkıntı hızı uygulanır.\n"
-"Örneğin duvarlar %100 çıkıntı yapıyorsa ve altlarında onları destekleyen bir duvar yoksa %100 çıkıntı hızı uygulanır."
+"Örneğin duvarlar %100 çıkıntı yapıyorsa ve altlarında onları destekleyen bir duvar yoksa %75 çıkıntı hızı uygulanır ve bu hız köprü hızıyla sınırlanır."
msgid "mm/s or %"
msgstr "mm/s veya %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Dışarıdan görülebilen köprü ekstrüzyonlarının hızı.\n"
"\n"
-"Ayrıca, kıvrılmış çevreler için yavaşlama devre dışı bırakılırsa veya Klasik çıkıntı modu etkinleştirilirse, ister bir köprünün ister bir çıkıntının parçası olsun, %13’ten daha az desteklenen çıkıntılı duvarların yazdırma hızı olacaktır."
+"Ayrıca, “Kıvrılmış dış duvarlarda hızı düşür” devre dışı bırakılırsa, ister bir köprünün ister bir çıkıntının parçası olsun, %13’ten daha az desteklenen çıkıntılı duvarların yazdırma hızı olacaktır."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "İç köprülerin hızı. Değer yüzde olarak ifade edilirse köprü hızına göre hesaplanacaktır. Varsayılan değer %150’dir."
@@ -14483,12 +15647,57 @@ msgstr "İç köprülerin hızı. Değer yüzde olarak ifade edilirse köprü h
msgid "This is the distance from the model to the outermost brim line."
msgstr "Modelden en dış kenar çizgisine kadar olan mesafe."
+# AI Translated
+# Needs human review: Label of the belt-printer leading brim. "Ön kenar" is taken by Leading edge, so the leading brim is "ileri kenar"; check it is understood as the brim laid ahead of the object.
+msgid "Leading brim length"
+msgstr "İleri kenar uzunluğu"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Yalnızca bant yazıcılar. Kenarı, nesnenin temas alanının yokuş aşağı bakan her kenarında, bant boyunca nesnenin ÖNÜNE doğru uzatır - hem nesnenin bantla ilk teması hem de daha sonra banda inen her ada için. Bu önlük, nesne gelmeden önce banda serilir; böylece ön kenarın tutunabileceği, önceden yapışmış bir zemin olur.\n"
+"\n"
+"Bant yüzeyinde ölçülür ve Kenar genişliği'ne eklenir: kenar, nesnenin önünde Kenar-nesne boşluğu + İleri kenar uzunluğu + Kenar genişliği kadar uzanır. Kenar-nesne boşluğu'nu 0'a ayarlayın; aksi halde önlük, sabitlemesi gereken nesneye değmez.\n"
+"\n"
+"Eğik bir bantta her katman kenarın bir şeridini serer; bu nedenle oluşan kenar tabakasının kalınlığını katman yüksekliği değil akış belirler. Bunu ayarlamak için Kenar akış oranı'nı kullanın.\n"
+"\n"
+"Devre dışı bırakmak için 0'a ayarlayın."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Ekstra kenar genişliği"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Yalnızca bant yazıcılar. Kenarı, nesnenin önüne veya arkasına doğru daha fazla uzatmadan, bandın enine doğru YANLARA genişletir. Bir parçanın uzunluğu boyunca tek başına Kenar genişliği'nin sağladığından daha fazla tutunmaya ihtiyacı olduğunda kullanın.\n"
+"\n"
+"Bant yüzeyinde ölçülür ve Kenar genişliği'ne eklenir: kenar, nesnenin her iki yanında Kenar-nesne boşluğu + Kenar genişliği + Ekstra kenar genişliği kadar uzanır. Bunun yerine kenarı nesnenin önüne doğru uzatmak için İleri kenar uzunluğu'nu kullanın.\n"
+"\n"
+"Devre dışı bırakmak için 0'a ayarlayın."
+
msgid "Brim type"
msgstr "Kenar tipi"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Bu, modellerin dış ve/veya iç kısmındaki Kenar oluşumunu kontrol eder. Otomatik, kenar genişliğinin otomatik olarak analiz edilip hesaplandığı anlamına gelir."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Yalnızca ön kenar"
+
msgid "Brim-object gap"
msgstr "Kenar-nesne boşluğu"
@@ -14795,6 +16004,9 @@ msgstr ""
"2. Sınırlı filtreleme - aşırı eğimli yüzeylerde iç köprüler oluştururken gereksiz köprülerden kaçınır. Bu, çoğu zor modelde işe yarar.\n"
"3. Filtreleme yok - her potansiyel dahili çıkıntıda iç köprüler oluşturur. Bu seçenek aşırı eğimli üst yüzey modelleri için kullanışlıdır; ancak çoğu durumda çok fazla gereksiz köprü oluşturur."
+msgid "Filter"
+msgstr "Filtreli"
+
msgid "Limited filtering"
msgstr "Sınırlı filtreli"
@@ -14810,8 +16022,9 @@ msgstr "Desteğe ihtiyaç duymayan maksimum köprü uzunluğu. Tüm köprülerin
msgid "End G-code"
msgstr "Bitiş G-code"
-msgid "Add end G-Code when finishing the entire print."
-msgstr "Tüm yazdırmayı tamamladığında çalışacak olan G-code."
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
+msgstr "Tüm baskı bittiğinde çalışacak G-code."
msgid "Between Object G-code"
msgstr "Nesne Arası G-code"
@@ -15001,8 +16214,9 @@ msgstr "Parçaların dış duvarlarının yazdırma hızı. Daha yüksek kalite
msgid "Small perimeters"
msgstr "Küçük çevre (perimeter)"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Bu ayrı ayar, yarıçapı <= küçük_çevre_eşiği olan çevrelerin (genellikle delikler) hızını etkileyecektir. Yüzde olarak ifade edilirse (örneğin: %80), yukarıdaki dış duvar hızı ayarına göre hesaplanacaktır. Otomatik için sıfıra ayarlayın."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Bu ayrı ayar, yarıçapı <= small_perimeter_threshold olan çevrelerin (genellikle delikler) hızını etkileyecektir. Yüzde olarak ifade edilirse (örneğin: %80), yukarıdaki dış duvar hızı ayarına göre hesaplanacaktır."
msgid "Small perimeters threshold"
msgstr "Küçük çevre (perimeter) eşiği"
@@ -15015,8 +16229,8 @@ msgid "Small support perimeters"
msgstr "Küçük destek çevreleri"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "\"Küçük çevre (perimeter)\" ile aynıdır, ancak destekler için geçerlidir. Bu ayrı ayar, `small_support_perimeter_threshold` değerinden küçük veya ona eşit alanlar için destek hızını etkiler. Yüzde olarak ifade edilirse (örneğin: %80), yukarıdaki destek veya destek arayüzü hızı ayarı üzerinden hesaplanır. Otomatik için sıfır olarak ayarlayın."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "\"Küçük çevre (perimeter)\" ile aynıdır, ancak destekler için geçerlidir. Bu ayrı ayar, `small_support_perimeter_threshold` değerinden küçük veya ona eşit alanlar için destek hızını etkiler. Yüzde olarak ifade edilirse (örneğin: %80), yukarıdaki destek veya destek arayüzü hızı ayarı üzerinden hesaplanır."
# AI Translated
msgid "Small support perimeters threshold"
@@ -15029,20 +16243,21 @@ msgstr "Bu, küçük destek çevresi uzunluğu için eşiği belirler. Varsayıl
msgid "Walls printing order"
msgstr "Duvar baskı sırası"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
-"İç (iç) ve dış (dış) duvarların baskı sırası.\n"
+"İç ve dış duvarların baskı sırası.\n"
"\n"
-"En iyi çıkıntılar için İç/Dış seçeneğini kullanın. Bunun nedeni, sarkan duvarların baskı sırasında komşu çevreye yapışabilmesidir. Ancak bu seçenek, dış çevrenin iç çevreye sıkıştırılarak deforme olması nedeniyle yüzey kalitesinin biraz düşmesine neden olur.\n"
+"En iyi çıkıntılar için İç/Dış seçeneğini kullanın. Bunun nedeni, çıkıntılı duvarların baskı sırasında komşu çevreye yapışabilmesidir. Ancak bu seçenek, dış çevrenin iç çevreye sıkıştırılarak deforme olması nedeniyle yüzey kalitesinin biraz düşmesine neden olur.\n"
"\n"
-"Dış duvar iç çevreden rahatsız edilmeden basıldığından, en iyi dış yüzey kalitesi ve boyutsal doğruluk için İç/Dış/İç seçeneğini kullanın. Ancak, dış duvarın üzerine baskı yapılacak bir iç çevre olmadığından sarkma performansı düşecektir. Bu seçenek, önce 3. çevreden itibaren iç duvarları, ardından dış çevreyi ve son olarak da birinci iç çevreyi yazdırdığından etkili olması için en az 3 duvar gerektirir. Bu seçenek çoğu durumda Dış/İç seçeneğine karşı önerilir.\n"
+"Dış duvar iç çevreden rahatsız edilmeden basıldığından, en iyi dış yüzey kalitesi ve boyutsal doğruluk için İç/Dış/İç seçeneğini kullanın. Ancak, dış duvarın üzerine baskı yapılacak bir iç çevre olmadığından çıkıntı performansı düşecektir. Bu seçenek, önce 3. çevreden itibaren iç duvarları, ardından dış çevreyi ve son olarak da birinci iç çevreyi yazdırdığından etkili olması için en az 3 duvar gerektirir. Bu seçenek çoğu durumda Dış/İç seçeneği yerine önerilir.\n"
"\n"
"İç/Dış/İç seçeneğinin aynı dış duvar kalitesi ve boyutsal doğruluk avantajları için Dış/İç seçeneğini kullanın. Bununla birlikte, yeni bir katmanın ilk ekstrüzyonu görünür bir yüzey üzerinde başladığından Z dikişleri daha az tutarlı görünecektir."
@@ -15182,6 +16397,7 @@ msgid "Enable adaptive pressure advance (beta)"
msgstr "Uyarlanabilir Pressure Advance'ı etkinleştir (beta)"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
#, no-c-format, no-boost-format
msgid ""
"With increasing print speeds (and hence increasing volumetric flow through the nozzle) and increasing accelerations, it has been observed that the effective PA value typically decreases. This means that a single PA value is not always 100% optimal for all features and a compromise value is usually used that does not cause too much bulging on features with lower flow speed and accelerations while also not causing gaps on faster features.\n"
@@ -15501,10 +16717,12 @@ msgid "After a tool change, the exact position of the newly loaded filament insi
msgstr "Bir takım değişiminden sonra, yeni yüklenen filamentin nozul içindeki kesin konumu bilinmeyebilir ve filament basıncı muhtemelen henüz stabil değildir. Yazdırma kafasını bir dolguya veya kurban nesneye boşaltmadan önce Orca Slicer, ardışık dolgu veya kurban nesne ekstrüzyonlarını güvenilir bir şekilde üretmek için her zaman bu miktardaki malzemeyi silme kulesine hazırlayacaktır."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "Silme kulesi"; align it once the term is settled.
msgid "Wipe tower cooling"
msgstr "Silme kulesi soğutması"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "Filament kulesi"; align it once the term is settled.
msgid "Temperature drop before entering filament tower"
msgstr "Filament kulesine girmeden önceki sıcaklık düşüşü"
@@ -15686,9 +16904,6 @@ msgstr "Filament fiyatı. Yalnızca istatistikler için."
msgid "money/kg"
msgstr "ücret/kg"
-msgid "Vendor"
-msgstr "Satıcı"
-
msgid "Vendor of filament. For show only."
msgstr "Filament satıcısı. Yalnızca gösteri için."
@@ -15762,6 +16977,92 @@ msgstr "Çok çizgili dolgu"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Dolgu deseni tarafından destekleniyorsa, dolgu deseni için birden fazla çizgi kullanılması."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Uyarlanabilir yoğunluk (deneysel)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Nesnenin içindeki Jiroid ve TPMS dolgusunu kademelendirir: hücreleri nesnenin yüzeyinden merkezine doğru büyür. Yüzeyde dolgu yoğunluğu, merkezde ise iç yoğunluk kullanılır.\n"
+"Mesafe bükümü, Yumuşak geçiş ve Kademeli kabuklar, üst ve alt dahil en yakın yüzeye olan mesafeyi izler; iç yoğunluk bu yüzeye en uzak noktada kullanılır:\n"
+" - Mesafe bükümü: tek ve kesintisiz bir desen; levhalarda ve uzun parçalarda olduğu gibi mesafenin yönlere göre değiştiği yerlerde gerilir ve çarpılır.\n"
+" - Yumuşak geçiş: komşu yoğunlukların desenleri birbirine karışır; buluştukları yerlerde küçük döngüler oluşur.\n"
+" - Kademeli kabuklar: yoğunlukları yaklaşık 1,5 kat farklı olan normal desen kabukları; çizgileri kabuk sınırları boyunca birleştirilir.\n"
+" - Loblar: üstü ve altı dahil nesnenin 3D şeklini izler. Her lob, yani geri kalanına daha dar bir boyunla bağlanan her parça, kendi merkezine doğru kademelendirilir.\n"
+" - Normal Z, Y veya X: nesnenin o eksene dik kesitlerini izler, böylece yoğunluk bu eksen boyunca değişmez."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Mesafe bükümü"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Yumuşak geçiş"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Kademeli kabuklar"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Loblar"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Normal Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Normal Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Normal X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "İç yoğunluk"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Nesnenin merkezindeki uyarlanabilir dolgunun yoğunluğu."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Uyarlanabilir gradyan"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Yoğunluğun nesnenin yüzeyinden merkezine doğru nasıl değiştiği.\n"
+"Doğrusal: yoğunluk sabit bir hızla değişir.\n"
+"Karesel: yoğunluk yüzeye yakın yerlerde dolgu yoğunluğuna yakın kalır ve merkeze doğru daha hızlı değişir.\n"
+"Üstel: yoğunluk yüzeyin hemen altında hızla değişir ve merkeze doğru sabitlenir."
+
+# AI Translated
+msgid "Linear"
+msgstr "Doğrusal"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Karesel"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Üstel"
+
# AI Translated
msgid "Z-buckling bias optimization (experimental)"
msgstr "Z burkulma eğilimi optimizasyonu (deneysel)"
@@ -15915,14 +17216,16 @@ msgstr "İlk katman yüksekliği"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "İlk katmanın yüksekliği. İlk katman yüksekliğini biraz kalın yapmak, baskı plakasının yapışmasını iyileştirebilir."
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Katı dolgu kısmı dışındaki ilk katmanın hızı."
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "İlk katmanın duvarlarının ve kenarının hızı."
msgid "First layer infill"
msgstr "İlk katman dolgusu"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "İlk katmanın katı dolgu kısmının hızı."
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "İlk katmanın duvarlar ve kenar dışındaki kısımlarının (dolgu, boşluk doldurma ve destek gibi) hızı."
msgid "First layer travel speed"
msgstr "İlk katman seyahat hızı"
@@ -16398,6 +17701,10 @@ msgstr "G-code türü"
msgid "What kind of G-code the printer is compatible with."
msgstr "Yazıcının ne tür bir G-code ile uyumlu olduğu."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (eski)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16637,16 +17944,18 @@ msgstr "İç seyrek dolgunun çizgi genişliği. % olarak ifade edilirse Nozul
msgid "Infill/wall overlap"
msgstr "Dolgu/Duvar örtüşmesi"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Daha iyi yapışma için dolgu alanı duvarla örtüşecek şekilde hafifçe genişletilir. Yüzde değeri seyrek dolgunun çizgi genişliğine göredir. Aşırı ekstrüzyon ve pürüzlü üst yüzeylere neden olan malzeme birikmesi potansiyelini en aza indirmek için bu değeri ~%10-15’e ayarlayın."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Daha iyi yapışma için dolgu alanı duvarla örtüşecek şekilde hafifçe genişletilir. Yüzde değeri iç duvar çizgi genişliğine göredir. Aşırı ekstrüzyon ve pürüzlü üst yüzeylere neden olan malzeme birikmesi potansiyelini en aza indirmek için bu değeri ~%10-15’e ayarlayın."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Üst/Alt katı dolgu/Duvar örtüşmesi"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "Üst katı dolgu alanı, daha iyi yapışma sağlamak ve üst dolgunun duvarlarla buluştuğu yerde küçük deliklerin görünümünü en aza indirmek için duvarla üst üste gelecek şekilde hafifçe genişletilir. %25-30’luk bir değer, iğne deliklerinin görünümünü en aza indiren iyi bir başlangıç noktasıdır. Yüzde değeri seyrek dolgunun çizgi genişliğine göredir."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "Üst katı dolgu alanı, daha iyi yapışma sağlamak ve üst dolgunun duvarlarla buluştuğu yerde küçük deliklerin görünümünü en aza indirmek için duvarla üst üste gelecek şekilde hafifçe genişletilir. %25-30’luk bir değer, iğne deliklerinin görünümünü en aza indiren iyi bir başlangıç noktasıdır. Yüzde değeri iç duvar çizgi genişliğine göredir."
msgid "This is the speed for internal sparse infill."
msgstr "İç seyrek dolgunun hızı."
@@ -16672,8 +17981,9 @@ msgstr "Bölümlere ayrılmış bir bölgenin maksimum genişliği. 0 bu özelli
msgid "Interlocking depth of a segmented region"
msgstr "Bölümlere ayrılmış bir bölgenin birbirine kenetlenen derinliği"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Bölümlere ayrılmış bir bölgenin birbirine kenetlenen derinliği. “mmu_segmented_region_max_width” sıfırsa veya “mmu_segmented_region_interlocking_length”, “mmu_segmented_region_max_width” değerinden büyükse göz ardı edilecektir. Sıfır bu özelliği devre dışı bırakır."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Bölümlere ayrılmış bir bölgenin birbirine kenetlenen derinliği. Her iki katmanda bir, bölümlere ayrılmış bölge bu derinlikle sınırlandırılır. \"interlocking_beam\" etkinse yok sayılır. Sıfır bu özelliği devre dışı bırakır."
msgid "Use beam interlocking"
msgstr "Kiriş kilitlemeyi kullan"
@@ -16782,11 +18092,11 @@ msgstr "Duvar yüksekliğini en aza indirme açısı"
# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Üst yüzey duvarlarının yüksekliğini model kenar yüksekliğine uyacak şekilde azaltır.\n"
-"Eğimi bu açıdan (derece) küçük olan duvarları etkiler.\n"
+"Eğimi bu açıdan (derece) büyük olan duvarları etkiler.\n"
"Makul bir değer 35'tir. Devre dışı bırakmak için 0 olarak ayarlayın."
# AI Translated
@@ -16865,17 +18175,21 @@ msgstr "Maksimum hız Z"
msgid "Maximum speed E"
msgstr "Maksimum hız E"
-msgid "Maximum X speed"
-msgstr "Maksimum X hızı"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "X ekseninin maksimum hızı"
-msgid "Maximum Y speed"
-msgstr "Maksimum Y hızı"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Y ekseninin maksimum hızı"
-msgid "Maximum Z speed"
-msgstr "Maksimum Z hızı"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Z ekseninin maksimum hızı"
-msgid "Maximum E speed"
-msgstr "Maksimum E hızı"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "E ekseninin maksimum hızı"
msgid "Maximum acceleration X"
msgstr "Maksimum hızlanma X"
@@ -17409,7 +18723,7 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Bu ön ayarın başvurduğu eklenti yetenekleri; name;uuid;capability biçiminde saklanır."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr "Ara dilimleme verilerini okumak ve değiştirmek için her dilimleme hattı adımında çağrılan Python eklentileri; son bir G-code son işleme adımı da buna dahildir. Araştırma/deneysel."
msgid "Printer type"
@@ -17516,10 +18830,12 @@ msgid "Retraction distance when extruder change"
msgstr "Ekstruder değiştiğinde geri çekilme mesafesi"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
msgid "Retraction Length (Toolchange)"
msgstr "Geri çekme uzunluğu (Takım değişimi)"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
msgid "When retraction is triggered before changing tool, filament is pulled back by the specified amount (the length is measured on raw filament, before it enters the extruder)."
msgstr "Takım değişiminden önce geri çekme tetiklendiğinde, filament belirtilen miktarda geri çekilir (uzunluk, ekstrudere girmeden önce ham filament üzerinde ölçülür)."
@@ -17627,6 +18943,7 @@ msgid "When the retraction is compensated after the travel move, the extruder wi
msgstr "İlerleme hareketinden sonra geri çekilme telafi edildiğinde, ekstruder bu ek filament miktarını itecektir. Bu ayara nadiren ihtiyaç duyulur."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
msgid "Extra length on restart (Toolchange)"
msgstr "Yeniden başlatma sırasında ekstra uzunluk (Takım değişimi)"
@@ -17780,8 +19097,9 @@ msgstr "İç duvarlar için atkı dikişi"
msgid "Use scarf joint for inner walls as well."
msgstr "İç duvarlarda da atkı dikişi kullan."
-msgid "Role base wipe speed"
-msgstr "Otomatik temizleme hızı"
+# AI Translated
+msgid "Role based wipe speed"
+msgstr "Ekstrüzyon rolüne göre temizleme hızı"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
msgstr "Temizleme hızı mevcut ekstrüzyon rolünün hızına göre belirlenir; bir dış duvar ekstrüzyonunun hemen ardından bir silme eylemi yürütülürse, silme eylemi için dış duvar ekstrüzyonunun hızı kullanılacaktır."
@@ -17870,16 +19188,15 @@ msgstr "Etek/hava akımı kalkanı halkalarını ilk katmandan sonraki bir duvar
msgid "Draft shield"
msgstr "Rüzgarlık"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"Rüzgar taslağı nedeniyle ABS veya ASA baskının eğrilmesine ve baskı yatağından ayrılmasına karşı koruma sağlamak için bir rüzgarlık kullanışlıdır. Genellikle yalnızca açık çerçeveli, yani muhafazasız yazıcılarda gereklidir.\n"
"\n"
-"Etkin = etek, yazdırılan en yüksek nesne kadar uzun. Aksi takdirde ‘Etek yüksekliği’ kullanılır.\n"
-"Not: Rüzgarlık etkinken etek, nesneden etek mesafesinde yazdırılacaktır. Bu nedenle eğer kenarlar aktifse onlarla kesişebilir. Bunu önlemek için etek mesafesi değerini artırın.\n"
+"Etkin = etek, yazdırılan en yüksek nesne kadar uzun. Aksi takdirde ‘Etek yüksekliği’ kullanılır."
msgid "Enabled"
msgstr "Etkin"
@@ -18002,6 +19319,7 @@ msgid "Farthest point timelapse"
msgstr "En uzak noktada timelapse"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "silme kulesi"; align it once the term is settled.
msgid "When enabled, the timelapse snapshot is taken at the farthest point from camera instead of traveling to the wipe tower or excess chute. Only effective in traditional timelapse mode on non-I3 printers."
msgstr "Etkinleştirildiğinde timelapse anlık görüntüsü, silme kulesine veya atık oluğuna gitmek yerine kameradan en uzak noktada alınır. Yalnızca I3 olmayan yazıcılarda geleneksel timelapse modunda etkilidir."
@@ -18046,6 +19364,135 @@ msgstr "Tek ekstruder çoklu malzeme"
msgid "Use single nozzle to print multi filament."
msgstr "Çoklu filament basmak için tek nozul kullan."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "IDEX/IQEX Yazıcı"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Birden fazla bağımsız taşıyıcıya sahip yazıcılar (IDEX, IQEX ve benzerleri) için paralel baskıyı etkinleştirir."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Ürün yazılımı tarafından yönetilen bölgeler"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Etkinleştirildiğinde dilimleyici, birincil bölgenin içeriğini yatak orijininde (0,0) ortalanmış şekilde G-code üretir. Kopyaları/ayna görüntülerini her fiziksel bölge konumuna yerleştirmekten yazıcının ürün yazılımı sorumludur. Yalnızca ürün yazılımı kopya/ayna modunda kendi bölge ofsetlerini uygulayan yazıcılarda etkinleştirin (ör. RepRapFirmware IDEX çoğaltma modu). Birincil modda etkisi yoktur."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Portal Sayısı"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Bağımsız Y ekseni portallarının sayısı. IDEX/tek raylı IQEX için 1. Çift portallı sistemler için 2 (yatağı satırlara böler)."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "Tools per Gantry"
+msgstr "Portal Başına Araç"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "X boyunca portal başına bağımsız baskı kafası sayısı. IDEX tipi için 2."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "Tool 0 Position"
+msgstr "Araç 0 Konumu"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "T0 aracının (indeks 0) yatak üzerindeki fiziksel konumu. Araç indekslerinin yatak bölgelerine nasıl eşleneceğini belirler. Tek portallı kurulumlarda (IDEX) yalnızca sol/sağ önemlidir; çift portallı kurulumlarda (IQEX) dört köşenin tümü seçilebilir (ön = düşük Y / operatöre yakın, arka = yüksek Y / makinenin arkası)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Nozul Boşluğu X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "X yönünde nozul ile taşıyıcının çarpışma tarafındaki kenarı arasındaki mesafe (mm). Her X sınırındaki çarpışma dışlama şeridinin genişliğini hesaplamak için kullanılır."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Nozul Boşluğu Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Y yönünde nozul ile taşıyıcının çarpışma tarafındaki kenarı arasındaki mesafe (mm). Her Y sınırındaki çarpışma dışlama şeridinin genişliğini hesaplamak için kullanılır."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Güvenlik Payı"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Birincil bölge içinde her taşıyıcı sınırında çizilen, engelleyici olmayan, uyarı amaçlı boşluk şeridi (mm). Bu şeridin içine yerleştirilen parçalar yine de dilimlenir; bölge kenarının yakınında ekstra boşluk bırakmak için görsel bir hatırlatmadır."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Görselleştirme Teması"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "IDEX/IQEX yatak bölgesi görselleştirmesi için renk teması. Gerekirse renk körlüğüne uygun bir tema seçin."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Döteranopi / Protanopi (kırmızı-yeşil)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Tritanopi (mavi-sarı)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Yüksek Kontrast"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "IDEX/IQEX Baskı Modu"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Etkin IDEX/IQEX paralel baskı modunun adı veya tek taşıyıcılı baskı için \"primary\". Yazıcı ön ayarında IDEX/IQEX Yazıcı seçeneğinin etkin olmasını gerektirir (Yazıcı → Çoklu Malzeme → IDEX/IQEX Yapılandırması)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "IDEX/IQEX kafa filament eşlemesi"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Fiziksel kafaları filament yuvalarına eşleyen plaka başına geçersiz kılma (1 tabanlı). Boş bırakılırsa her kafa, yazıcının fiziksel ekstruder eşlemesinin kendisine yönlendirdiği ilk filamenti kullanır."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "IDEX/IQEX Mod Adları"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Kullanıcı tanımlı her IDEX/IQEX paralel baskı modu için görünen adlar."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "IDEX/IQEX Modu Etkin Araçları"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Her mod için araç rolü atamaları. Biçim: \"idx:P,idx:C,idx:M\"; burada P=Primary (Birincil), C=Copy (Kopya), M=Mirror (Ayna) (ör. \"0:P,1:C,2:M,3:M\"). Yazıcı ön ayarındaki IDEX/IQEX Modlar düzenleyicisi tarafından yönetilir."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "IDEX/IQEX Modu G-code'ları"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "Her mod için baskı başlangıcında eklenecek G-code veya makro çağrısı."
+
msgid "Manual Filament Change"
msgstr "Manuel filament değişimi"
@@ -18074,18 +19521,22 @@ msgid "Enable filament ramming"
msgstr "Filament sıkıştırmayı etkinleştir"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "Silme kulesi"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
msgid "Tool change on wipe tower"
msgstr "Silme kulesinde takım değişimi"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "silme kulesi"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
msgstr "Takım değişimi komutu (Tx) verilmeden önce baskı kafasını silme kulesine gitmeye zorlar. Yalnızca Tip 2 silme kulesi kullanan çok ekstruderli (çok baskı kafalı) yazıcılar için geçerlidir. Orca, çok baskı kafalı makinelerde bu seyahati varsayılan olarak atlar çünkü kafa değişimini ürün yazılımı yönetir; bu da Tx komutunun yazdırılan parçanın üzerinde verilmesine yol açabilir. Takım değişiminin her zaman silme kulesinin üzerinde verilmesini istiyorsanız bu seçeneği etkinleştirin."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "Silme kulesi"; align it once the term is settled.
msgid "Wait for temperature on wipe tower"
msgstr "Silme kulesinde sıcaklığı bekle"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "silme kulesi"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
msgstr "Yeni takımı baskı sıcaklığına ulaşmasını beklemeden alır, silme kulesine gider ve sıcaklığı orada, yıkamadan hemen önce bekler. Isınma sırasında sızan malzeme modele değil kuleye düşer ve hareket ısınmayla çakışır. Yalnızca 2. tip silme kulesi kullanan çok ekstruderli (çok baskı kafalı) yazıcılar için geçerlidir. Donanım yazılımı veya takım değişimi makrosu sıcaklığı kendisi beklememelidir. Devre dışı bırakıldığında, sıcaklık bekleme komutu takım değişimi komutundan hemen sonra verilir."
@@ -18093,6 +19544,7 @@ msgid "No sparse layers (beta)"
msgstr "Seyrek katman yok (beta)"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "silme kulesi"; align it once the term is settled; Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower, so the tower ends up below the model and the toolhead has to reach down to it. Layouts where that would collide with an already printed object are rejected. Has no effect with smooth timelapse or clumping detection, which need a tower on every layer."
msgstr "Etkinleştirilirse, silme kulesi araç değişimi olmayan katmanlarda yazdırılmaz. Araç değişimi olan katmanlarda ekstruder silme kulesini yazdırmak için aşağı doğru hareket eder; böylece kule modelin altında kalır ve baskı kafasının ona uzanması gerekir. Bunun daha önce yazdırılmış bir nesneyle çarpışmasına yol açacak yerleşimler reddedilir. Her katmanda bir kule gerektiren pürüzsüz timelapse veya nozul birikme algılamayla birlikte etkisi yoktur."
@@ -18101,6 +19553,7 @@ msgid "Combine sparse layers"
msgstr "Seyrek katmanları birleştir"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "prime kulesi"; align it once the term is settled.
msgid ""
"If enabled, consecutive layers on which the prime tower has no filament change are printed as a single thicker tower layer instead of one thin layer each, the same way infill combination merges sparse infill. The merged layer is printed at the top of the run, at the height of everything it covers.\n"
"\n"
@@ -18121,10 +19574,12 @@ msgid "If enabled, all printing extruders will be primed at the front edge of th
msgstr "Etkinleştirilirse, tüm baskı ekstruderleri baskının başlangıcında baskı yatağının ön kenarında temizlenecektir."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
msgid "Toolchange ordering"
msgstr "Takım değişimi sıralaması"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
msgid ""
"Determines the order of tool changes on each layer.\n"
"- Default: Starts with the last used extruder to minimize tool changes.\n"
@@ -18143,6 +19598,7 @@ msgid "Cyclic order"
msgstr "Döngüsel sıra"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
msgid ""
"Custom filament sequence used by the cyclic toolchange ordering, as filament numbers separated by commas (e.g. \"3,2,1,4\").\n"
"Each layer prints its filaments following this sequence; filaments not listed are printed last, in ascending order.\n"
@@ -18157,6 +19613,7 @@ msgid "Apply cyclic order to first layer"
msgstr "Döngüsel sırayı ilk katmana uygula"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "araç"; align it once the term is settled.
msgid ""
"Applies the cyclic toolchange order to the first layer as well.\n"
"By default this is disabled, because the first layer is instead ordered for the best bed adhesion: filaments that print small, fragile first-layer features are printed last, so the following tool changes and travel moves are less likely to knock those weakly anchored parts loose. This first-layer order also honors a custom first layer filament sequence when one is set. The cyclic order's benefit (extra tool changes give each layer more time to cool) does not apply to the first layer, which is printed slowly and hot for adhesion.\n"
@@ -18428,6 +19885,170 @@ msgstr "Eşik çakışması"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Eşik açısı sıfır ise örtüşmesi eşiğin altında olan çıkıntılar için destek oluşturulacaktır. Bu değer ne kadar küçük olursa, desteksiz yazdırılabilecek çıkıntı da o kadar dik olur."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Yatak eğimi X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Yatağın X ekseni boyunca eğim açısı. Pozitif bir değer, yatağı +X tarafı daha yüksek olacak şekilde eğer; bu, yerçekimini -X yönüne kaydırır ve +X tarafındaki çıkıntıları artırır. Negatif bir değer -X tarafını yükseltir. X ekseninde eğim olmaması için 0'a ayarlayın. Bant yazıcı modunda bu değer bant açısıyla otomatik olarak eşitlenir."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Yatak eğimi Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Yatağın Y ekseni boyunca eğim açısı. Pozitif bir değer, yatağı +Y tarafı daha yüksek olacak şekilde eğer; bu, yerçekimini -Y yönüne kaydırır ve +Y tarafındaki çıkıntıları artırır. Negatif bir değer -Y tarafını yükseltir. Y ekseninde eğim olmaması için 0'a ayarlayın."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Bant baskısını etkinleştir"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Bant yazıcı modunu etkinleştirir. Bant yazıcılar, baskı yüzeyi olarak belirli bir açıyla (genellikle 45 derece) eğilmiş bir konveyör bant kullanır. Dilimleyici, eğik baskı yüzeyi için dilimleme düzlemini döndürür ve G-code koordinatlarını dönüştürür."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Sonsuz Y ekseni"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Bant yazıcılar için sonsuz Y eksenini etkinleştirir. Etkinleştirildiğinde Y ekseni baskı hacmi sınırı fiilen kaldırılır ve bant yönü boyunca her uzunlukta nesne basılabilir."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Bant eğim ekseni"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Dilimlemeden önce mesh'in etrafında döndürüldüğü eksen. Bu, bant yazıcının eğimidir: yatak görüntülemesini ve destek yerçekimi eğimini de belirleyen izometrik (bozulmasız) bir dönüş; G-code geri dönüşümü bunu, makine koordinat sistemi kesme/ölçekleme ve yeniden eşleme işlemlerinden önce tersine çevirir. Tipik portal eğimi X'tir (bant Y boyunca ilerler)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Bant eğim açısı"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Bant yüzeyinin derece cinsinden eğim açısı. Çoğu bant yazıcı 45° kullanır. Pozitif değerler, pozitif eğim ekseni boyunca bakıldığında saat yönünün tersine döndürür; büyüklük aynı zamanda yatak görüntülemesi ve destek yerçekimi için kullanılan fiziksel bant eğimidir."
+
+msgid "°"
+msgstr "°/s"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Makine koordinat sistemi eğimini ayır"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Uzman geçersiz kılması: makine koordinat sistemi (G-code kesme/ölçekleme) eğim açısını dilimleme öncesi dönüş açısından bağımsız olarak ayarlar. Devre dışı bırakıldığında makine koordinat sistemi dönüşümü bant eğim açısından türetilir; böylece tek bir açı her iki aşamayı da belirler. Yalnızca fiziksel portal eğimi dilimleme dönüşünden farklı olan bir makineyi telafi etmek için etkinleştirin."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Makine koordinat sistemi eğim açısı"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "G-code'a uygulanan makine koordinat sistemi kesmesini (cot) ve ölçeğini (1/|sin|) türetmek için kullanılan eğim açısı (derece). Yalnızca 'Makine koordinat sistemi eğimini ayır' etkinleştirildiğinde kullanılır; aksi halde bant eğim açısı kullanılır."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+# Needs human review: Rev = reversed axis (max minus position), a different option from -X (negated) in the same G-code remap dropdown; check the two read as distinct.
+msgid "Rev X"
+msgstr "Ters X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Ters Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Ters Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "G-code yeniden eşleme X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "G-code çıktısında hangi dilimleme ekseninin makine X eksenine eşleneceği. Dilimlemeden SONRA, G-code oluşturma sırasında uygulanır."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "G-code yeniden eşleme Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "G-code çıktısında hangi dilimleme ekseninin makine Y eksenine eşleneceği. Dilimlemeden SONRA, G-code oluşturma sırasında uygulanır."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "G-code yeniden eşleme Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "G-code çıktısında hangi dilimleme ekseninin makine Z eksenine eşleneceği. Dilimlemeden SONRA, G-code oluşturma sırasında uygulanır."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Destek Tabanı Z ofseti"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Hesaplanan bant tabanını yukarı veya aşağı kaydırır (mm). Negatif değerler tabanı alçaltır ve daha fazla desteğin korunmasını sağlar. Bant tabanı formülü sorunlarını teşhis etmek için kullanın."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Bant yıkama kulesini etkinleştir"
+
+# AI Translated
+# Needs human review: Prime tower glossary cell is unsettled (Prime Kulesi / Silme kulesi); "wipe/prime tower" rendered once as Prime Kulesi, as the setting label is.
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Prime Kulesi'nin bant yazıcılardaki karşılığı. Bant yazıcıda etkinleştirildiğinde, basılan parçaların yanında otomatik olarak bir yıkama prizması oluşturulur ve filament değişimi yıkaması buraya yönlendirilir (klasik Prime Kulesi bant yazıcılarda kullanılamaz, çünkü onun G-code'u bant dönüşümünü atlar). Yalnızca bant yazıcılarda kullanılabilir."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Bant yıkama kulesi genişliği"
+
+# AI Translated
+# Needs human review: Prime tower glossary cell is unsettled (Prime Kulesi / Silme kulesi); used Prime Kulesi as the setting label does.
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Bant yıkama kulesi etkinken ve birden fazla filament kullanıldığında bant yazıcılarda otomatik olarak oluşturulan yıkama prizmasının genişliği (makine X'i, bandın enine). Filament değişimi yıkaması, klasik bir Prime Kulesi yerine bu prizmanın ekstrüzyonlarına yönlendirilir. Yüksekliği, katman başına en kötü durumdaki yıkama hacminden otomatik olarak hesaplanır: daha geniş bir prizma daha kısa olur."
+
msgid "Tree support branch angle"
msgstr "Ağaç desteği dal açısı"
@@ -18612,13 +20233,11 @@ msgstr "Ayrık dolgular"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"Her parçanın iç dolgusunu, tüm montaja göre değil, sanki tek başına dilimlenmiş gibi kendi üzerinde ortalar. Birbirine değen veya çakışan parçalar tek gövde olarak ele alınır ve ortak bir merkezi paylaşır; ayrı parçaların (veya farklı 3D nesnelerin) her biri kendi merkezine sahip olur.\n"
-"Bir montaj, her biri tutarlı ve kendi merkezine göre hizalanmış dolguyu koruması gereken birkaç nesneyi gruplandırdığında yararlıdır.\n"
-"Çizgi ve ızgara desenlerini ve döndürme şablonlu dolguları etkiler.\n"
-"Genel koordinatlara kilitlenmiş desenler (Jiroid, Bal peteği, TPMS, ...) etkilenmez."
+"Her parçanın iç dolgusunu, tüm montaj yerine, tek başına dilimleniyormuş gibi kendi üzerinde ortalar. Birbirine değen veya çakışan parçalar tek bir gövde olarak ele alınır ve ortak bir merkez kullanır; ayrı parçaların (veya farklı 3D nesnelerin) her biri kendi merkezini alır.\n"
+"Bir montajın, her biri tutarlı ve kendi merkezli bir dolguyu koruması gereken birkaç nesneyi grupladığı durumlarda kullanışlıdır.\n"
+"Uyarlanabilir kübik ve Destek kübik her parçayı daima kendi üzerinde ortalar; Yıldırım dolgusu ise tüm nesne için oluşturulur ve bundan etkilenmez."
# AI Translated
msgid "Center surface pattern on"
@@ -18718,6 +20337,7 @@ msgid "Prime volume mode"
msgstr "Prime hacmi modu"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "silme kulesi"; align it once the term is settled.
msgid "Selects how the wipe-tower prime and flush volumes are computed on multi-extruder printers."
msgstr "Çok ekstruderli yazıcılarda silme kulesi prime ve yıkama hacimlerinin nasıl hesaplanacağını seçer."
@@ -18750,41 +20370,44 @@ msgstr "Silme kulesini stabilize etmek için kullanılan koninin tepe noktasınd
msgid "Maximum wipe tower print speed"
msgstr "Maksimum silme kulesi yazdırma hızı"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "Silme kulesi"; align it once the term is settled.
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
-"Silme kulesinde temizleme yaparken ve silme kulesi seyrek katmanlarını yazdırırken maksimum yazdırma hızı. Temizleme sırasında seyrek dolum hızı veya filamentin maksimum hacimsel hızından hesaplanan hız daha düşükse, bunun yerine en düşük olanı kullanılacaktır.\n"
+"Silme kulesinde temizleme yaparken ve silme kulesi seyrek katmanlarını yazdırırken maksimum yazdırma hızı. Temizleme sırasında seyrek dolgu hızı veya filamentin maksimum hacimsel hızından hesaplanan hız daha düşükse, bunun yerine en düşük olanı kullanılacaktır.\n"
"\n"
-"Seyrek katmanları yazdırırken iç çevre hızı veya filamentin maksimum hacimsel hızından hesaplanan hız daha düşükse bunun yerine en düşük olanı kullanılacaktır.\n"
+"Seyrek katmanları yazdırırken seyrek dolgu hızı veya filamentin maksimum hacimsel hızından hesaplanan hız daha düşükse bunun yerine en düşük olanı kullanılacaktır.\n"
"\n"
"Bu hızın arttırılması kulenin stabilitesini etkileyebileceği gibi, nozulun silme kulesi üzerinde oluşmuş olabilecek damlacıklarla çarpışma kuvvetini de arttırabilir.\n"
"\n"
-"Bu parametreyi varsayılan 90 mm/sn’nin üzerine çıkarmadan önce, yazıcınızın artan hızlarda güvenilir şekilde köprü kurabildiğinden ve takım değişimi iyi kontrol edildiğinde sızıntı yaptığından emin olun.\n"
+"Bu parametreyi varsayılan 90 mm/s değerinin üzerine çıkarmadan önce, yazıcınızın artan hızlarda güvenilir şekilde köprü kurabildiğinden ve takım değişimi sırasındaki sızıntının iyi kontrol edildiğinden emin olun.\n"
"\n"
-"Silme kulesi dış çevreleri için bu ayardan bağımsız olarak iç çevre hızı kullanılır."
+"Silme kulesi dış çevreleri için iç çevre hızı kullanılır; bu hız da bu ayarla sınırlandırılır."
msgid "Wall type"
msgstr "Duvar tipi"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "Silme kulesi"; align it once the term is settled.
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"Silme kulesi dış duvar tipi.\n"
-"1. Dikdörtgen: Varsayılan duvar tipi, sabit genişlik ve yüksekliğe sahip bir dikdörtgendir.\n"
+"1. Dikdörtgen: Sabit genişlik ve yüksekliğe sahip bir dikdörtgen.\n"
"2. Koni: Silme kulesinin sabitlenmesine yardımcı olmak için alt kısmı yuvarlatılmış bir koni.\n"
-"3. Kaburga: Kule duvarına gelişmiş denge için dört kaburga ekler."
+"3. Kaburga: Kule duvarına gelişmiş denge için dört kaburga ekleyen varsayılan duvar tipi."
msgid "Rectangle"
msgstr "Dikdörtgen"
@@ -18853,6 +20476,14 @@ msgstr "Filament değişiminden sonra temizleme, nesnelerin desteğinin içinde
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Bu nesne, filamentten tasarruf etmek ve baskı süresini azaltmak için filament değişiminden sonra nozulu temizlemek için kullanılacaktır. Sonuç olarak nesnelerin renkleri karıştırılacaktır. Prime tower etkinleştirilmediği sürece etkili olmayacaktır."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Bant yıkama kulesi nesnesi"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Otomatik oluşturulan bant yıkama prizmasını işaretler. Otomatik olarak yönetilir; elle ayarlamayın."
+
msgid "Maximal bridging distance"
msgstr "Maksimum köprüleme mesafesi"
@@ -18868,8 +20499,10 @@ msgstr "Silme kulesindeki boşaltma hatlarının aralığı."
msgid "Extra flow for purging"
msgstr "Temizleme için ekstra akış"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Silme kulesindeki temizleme hatları için ekstra akış kullanılır. Bu, temizleme hatlarının normalde olduğundan daha kalın veya daha dar olmasına neden olur. Aralık otomatik olarak ayarlanır."
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "Silme kulesi"; align it once the term is settled.
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Silme kulesindeki temizleme hatları için ekstra akış kullanılır. Bu, temizleme hatlarının normalde olduğundan daha kalın olmasına neden olur. Aralık otomatik olarak ayarlanır."
msgid "Idle temperature"
msgstr "Boşta sıcaklık"
@@ -18987,14 +20620,15 @@ msgstr "Modeldeki ince özelliklerin minimum kalınlığı. Bu değerden daha in
msgid "Minimum wall length"
msgstr "Minimum duvar uzunluğu"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Yazdırma süresini artırabilecek kısa, kapatılmamış duvarların yazdırılmasını önlemek için bu değeri ayarlayın. Daha yüksek değerler daha fazla ve daha uzun duvarları kaldırır.\n"
+"Yazdırma süresini artırabilecek kısa, kapatılmamış duvarların yazdırılmasını önlemek için bu değeri ayarlayın. Değer, duvar genişliğinin bir katıdır. Daha yüksek değerler daha fazla ve daha uzun duvarları kaldırır.\n"
"\n"
-"NOT: Modelin dış kısmında görsel boşluk kalmaması için alt ve üst yüzeyler bu değerden etkilenmeyecektir. Üst yüzey olarak kabul edilen şeyin hassasiyetini ayarlamak için aşağıdaki Gelişmiş ayarlarda 'Tek duvar eşiği'ni ayarlayın. 'Tek duvar eşiği' yalnızca bu ayar varsayılan değer olan 0,5'in üzerine ayarlandığında veya tek duvarlı üst yüzeyler etkinleştirildiğinde görünür."
+"NOT: Modelin dış kısmında görsel boşluk kalmaması için alt ve üst yüzeyler bu değerden etkilenmeyecektir. Üst yüzey olarak kabul edilen şeyin hassasiyetini ayarlamak için aşağıdaki 'Duvarlar ve Yüzeyler' ayarlarında 'Tek duvar eşiği'ni ayarlayın. 'Tek duvar eşiği' yalnızca bu ayar varsayılan değer olan 0,5'in üzerine ayarlandığında veya tek duvarlı üst yüzeyler etkinleştirildiğinde görünür."
# AI Translated
msgid "Maximum wall resolution"
@@ -19009,8 +20643,8 @@ msgid "Maximum wall deviation"
msgstr "Maksimum duvar sapması"
# AI Translated
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "'Maksimum duvar çözünürlüğü' ayarı için çözünürlük düşürülürken izin verilen maksimum sapma. Bunu artırırsanız baskı daha az doğru olur ancak G-Code daha küçük olur. 'Maksimum duvar sapması', 'Maksimum duvar çözünürlüğü'nü sınırlar; dolayısıyla ikisi çakışırsa 'Maksimum duvar sapması' önceliklidir."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "'Maksimum duvar çözünürlüğü' ayarı için çözünürlük düşürülürken izin verilen maksimum sapma. Bunu artırırsanız baskı daha az doğru olur ancak G-code daha küçük olur. 'Maksimum duvar sapması', 'Maksimum duvar çözünürlüğü'nü sınırlar; dolayısıyla ikisi çakışırsa 'Maksimum duvar sapması' önceliklidir."
msgid "First layer minimum wall width"
msgstr "İlk katman minimum duvar genişliği"
@@ -19095,6 +20729,7 @@ msgid "Preheat temperature delta"
msgstr "Ön ısıtma sıcaklık farkı"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
msgid "Temperature delta applied during pre-heating before tool change."
msgstr "Takım değişiminden önce ön ısıtma sırasında uygulanan sıcaklık farkı."
@@ -19117,8 +20752,11 @@ msgstr "Köprü çizgi genişliği nozul çapını aşmamalıdır: "
msgid "too large line width "
msgstr "çok büyük çizgi genişliği "
-msgid " not in range "
-msgstr " aralıkta değil "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% [%2%, %3%] aralığında değil"
msgid "This exports the project as a 3MF file."
msgstr "Projeyi 3MF olarak dışa aktarın."
@@ -19268,6 +20906,14 @@ msgstr "Yönlendirme Seçenekleri"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Yönlendirme seçenekleri: 0-devre dışı bırak, 1-etkinleştir, diğerleri-otomatik"
+# AI Translated
+msgid "Repair"
+msgstr "Onar"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Modellerin mesh'lerini Modeli düzelt komutundaki gibi onarır: delikleri ve çatlakları kapatır, dışa doğru yönlendirir ve kendi kendine kesişmeleri kaldırır."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Z ekseni etrafında derece cinsinden dönüş açısı."
@@ -19376,6 +21022,12 @@ msgstr "Çıkış dizini"
msgid "This is the output directory for exported files."
msgstr "Dışa aktarılan dosyalar için çıkış dizini."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Hata ayıklama düzeyi"
@@ -19543,6 +21195,56 @@ msgstr "Tek ekstruder MM astarına sahiptir"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Bu baskıda ekstra çok malzemeli astarlama bölgeleri kullanılıyor mu?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "İlk desteksiz ekstruder"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Destek olmadan yazdırmada kullanılan ilk ekstruderin sıfır bazlı indeksi. initial_no_support_tool ile aynı."
+
+# AI Translated
+# Needs human review: Placeholder description for 'head wrap detect zone' (zone where wrapping of the nozzle by filament is detected); check the term against the nozzle-wrapping detection strings.
+msgid "In head wrap detect zone"
+msgstr "Kafa sarılma algılama bölgesinde"
+
+# AI Translated
+# Needs human review: 'Head wrap zone' is rendered 'kafa sarılma bölgesi', following the nozzle-wrapping detection strings; check the term.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "İlk katmanın kafa sarılma bölgesiyle çakışıp çakışmadığını belirtir."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Geçerli yatak türü"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Şu anda seçili yatak plakası türünün adı (ör. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "IDEX/IQEX etkin modu"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Bu plaka için etkin IDEX/IQEX paralel baskı modunun adı (ör. 'primary', 'mirror', 'copy'). IDEX/IQEX etkin değilse boş dize."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "IDEX/IQEX etkin mod indeksi"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "imex_mode_names içindeki etkin IDEX/IQEX paralel baskı modunun sıfır bazlı indeksi."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "IDEX/IQEX etkin mod G-code'u"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Etkin IDEX/IQEX paralel baskı modunun ham mod G-code şablonu (yer tutucular değerlendirildikten sonra). Burada tanımlanan genel değişkenler machine_start_gcode içine aktarılır."
+
msgid "Volume per extruder"
msgstr "Ekstruder başına hacim"
@@ -19688,6 +21390,18 @@ msgstr "Uzantı olmadan dosya adını girin"
msgid "Source filename of the first object, without extension."
msgstr "İlk nesnenin kaynak dosya adı, uzantısız."
+# AI Translated
+msgid "Full input filename"
+msgstr "Tam girdi dosya adı"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "İlk nesnenin kaynak dosya adı."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Dilimlenen plakanın adı."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Vektörün iki öğesi vardır: noktanın x ve y koordinatı. Değerler mm cinsindendir."
@@ -19718,6 +21432,59 @@ msgstr "Baskı yatağı sınırlayıcı kutusunun sağ üst köşesi"
msgid "Size of the print bed bounding box"
msgstr "Baskı yatağı sınırlama kutusunun boyutu"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "Silme kulesi"; align it once the term is settled.
+msgid "First layer center without wipe tower"
+msgstr "Silme kulesi olmadan ilk katman merkezi"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "İlk katmanın yüksekliği."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Her ekstruder/filament için yatak sıcaklıkları vektörü."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Her ekstruder/filament için ilk katman yatak sıcaklıkları vektörü. first_layer_bed_temperature ile aynı değeri sağlar."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "İlk katman yatak sıcaklığı (ilk ekstruder)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "İlk ekstruder için ilk katman yatak sıcaklığı. bed_temperature_initial_layer[initial_extruder] ile aynı"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Her ekstruder/filament için bölme sıcaklıkları vektörü."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Her ekstruder/filament için minimum bölme sıcaklıkları vektörü."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Genel bölme sıcaklığı"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Genel bölme sıcaklığı. Bu değer, kullanılan tüm ekstruder/filamentler arasındaki en yüksek bölme sıcaklığıdır."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Her ekstruder/filament için ilk katman yatak sıcaklıkları vektörü. bed_temperature_initial_layer ile aynı değeri sağlar."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "İlk katman sıcaklığı"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Her ekstruder/filament için ilk katman sıcaklıkları vektörü."
+
msgid "Timestamp"
msgstr "Zaman damgası"
@@ -19764,8 +21531,9 @@ msgstr "Dilimleme için kullanılan fiziksel yazıcının adı."
msgid "Layer number"
msgstr "Katman numarası"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Geçerli katmanın dizini. Tek tabanlı (yani ilk katman 1 numaradır)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Geçerli katmanın indeksi. Sıfır tabanlıdır (yani ilk katman 0 numaralıdır); ancak ekstrüzyon rolü değişim G-code'unda bir tabanlıdır."
msgid "Layer Z"
msgstr "Z katmanı"
@@ -19785,6 +21553,264 @@ msgstr "Filament ekstruder kimliği"
msgid "The current extruder ID. The same as current_extruder."
msgstr "Geçerli ekstruder kimliği. Mevcut ekstruder ile aynı."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Önceki ekstruder"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Boşaltılmakta olan ekstruderin indeksi. İndeks sıfır tabanlıdır (ilk ekstruderin indeksi 0'dır)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Sonraki ekstruder"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Yüklenmekte olan ekstruderin indeksi. İndeks sıfır tabanlıdır (ilk ekstruderin indeksi 0'dır)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Göreli E ekseni"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Göreli konumlandırmanın kullanılıp kullanılmadığını belirtir."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "Toolchange count"
+msgstr "Takım değişimi sayısı"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "The number of toolchanges throughout the print."
+msgstr "Baskı boyunca takım değişimi sayısı."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Eski geri çekme uzunluğu"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Önceki filamentin geri çekme uzunluğu."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Yeni geri çekme uzunluğu"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Yeni filamentin geri çekme uzunluğu."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "Old retract length toolchange"
+msgstr "Takım değişiminde eski geri çekme uzunluğu"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Önceki filamentin takım değişimi geri çekme uzunluğu."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "New retract length toolchange"
+msgstr "Takım değişiminde yeni geri çekme uzunluğu"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "The toolchange retraction length of the new filament."
+msgstr "Yeni filamentin takım değişimi geri çekme uzunluğu."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Eski filament sıcaklığı"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "Eski filament sıcaklığı."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Yeni filament sıcaklığı"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "Yeni filament sıcaklığı."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "X after toolchange"
+msgstr "Takım değişiminden sonra X"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "The X pos after toolchange."
+msgstr "Takım değişiminden sonra X konumu."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "Y after toolchange"
+msgstr "Takım değişiminden sonra Y"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "The Y pos after toolchange."
+msgstr "Takım değişiminden sonra Y konumu."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "Z after toolchange"
+msgstr "Takım değişiminden sonra Z"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
+msgid "The Z pos after toolchange."
+msgstr "Takım değişiminden sonra Z konumu."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "İlk yıkama hacmi"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "İlk yıkama hacmi."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "İkinci yıkama hacmi"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "İkinci yıkama hacmi."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Eski filament E besleme hızı"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "Eski filamentin ekstruder besleme hızı."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Yeni filament E besleme hızı"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "Yeni filamentin ekstruder besleme hızı."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Seyahat noktası 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "Seyahat noktası 1 X."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Seyahat noktası 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Seyahat noktası 1 Y."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Seyahat noktası 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "Seyahat noktası 2 X."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Seyahat noktası 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Seyahat noktası 2 Y."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Seyahat noktası 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "Seyahat noktası 3 X."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Seyahat noktası 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Seyahat noktası 3 Y."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Yıkama uzunluğu 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "İlk yıkama uzunluğu."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Yıkama uzunluğu 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "İkinci yıkama uzunluğu."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Yıkama uzunluğu 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "Üçüncü yıkama uzunluğu."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Yıkama uzunluğu 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "Dördüncü yıkama uzunluğu."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Ekstrüzyon rolü"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Kullanılacak yeni ekstrüzyon rolü/türü\n"
+"Olası değerler:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Son ekstrüzyon rolü"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Daha önce kullanılan ekstrüzyon rolü/türü\n"
+"Olası değerler:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Zip arşivinde hata"
@@ -19797,24 +21823,32 @@ msgstr "Dolgu bölgeleri oluşturma"
msgid "Generating infill toolpath"
msgstr "Dolgu takım yolu oluşturma"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z konturlu katman %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Otomatik kaldırma için çıkıntıları tespit edin"
msgid "Checking support necessity"
msgstr "Destek gerekliliğinin kontrol edilmesi"
-msgid "floating regions"
-msgstr "yayılmış bölgeler"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Görünüşe göre %1% nesnesinde havada kalan bölgeler var. Lütfen nesneyi yeniden yönlendirin veya destek oluşturmayı etkinleştirin."
-msgid "floating cantilever"
-msgstr "yüzen konsol"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Görünüşe göre %1% nesnesinde havada kalan bir konsol var. Lütfen nesneyi yeniden yönlendirin veya destek oluşturmayı etkinleştirin."
-msgid "large overhangs"
-msgstr "büyük çıkıntılar"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Görünüşe göre %s nesnesinde %s var. Lütfen nesneyi yeniden yönlendirin veya destek oluşturmayı etkinleştirin."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Görünüşe göre %1% nesnesinde büyük çıkıntılar var. Lütfen nesneyi yeniden yönlendirin veya destek oluşturmayı etkinleştirin."
msgid "Generating support"
msgstr "Destek oluşturma"
@@ -19825,8 +21859,9 @@ msgstr "Takım yolunu optimize etme"
msgid "Slicing mesh"
msgstr "Mesh dilimleme"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Hiçbir katman algılanmadı. STL dosyalarınızı onarmak veya boyutlarını veya kalınlıklarını kontrol edip yeniden denemek isteyebilirsiniz.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Hiçbir katman algılanmadı. Modeli onarmak veya boyutunu ya da kalınlığını kontrol edip yeniden denemek isteyebilirsiniz.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19843,6 +21878,397 @@ msgstr "Bir nesne, XY Boyut Telafisini (XY Size Compensation) etkinleştirmiş,
msgid "Object name"
msgstr "Nesne adı"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Tekli eksi işleci uygulanamıyor."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Tam sayıya dönüştürülemiyor."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Sayısal olmayan bir değer yuvarlanamıyor."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Sayısal olmayan bir değerin tabanı alınamıyor."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Sayısal olmayan bir değerin tavanı alınamıyor."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Değil işleci uygulanamıyor."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Sayısal olmayan türler toplanamıyor."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Sayısal olmayan türler çıkarılamıyor."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Sayısal olmayan bir türle çarpılamıyor."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Sayısal olmayan bir tür bölünemiyor."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Sayısal olmayan bir türe bölünemiyor."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Sıfıra bölme"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Boole ifadesi değil"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Türler karşılaştırılamıyor."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Sayısal bir tür değil."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: ikinci parametre tam sayı olmalıdır"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: üçüncü parametre tam sayı olmalıdır"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Düzenli ifade eşleşmesinin sol tarafı bir dize olmalıdır."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Düzenli ifade derlemesi başarısız oldu: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "regex_replace() ilk parametresi bir dize olmalıdır."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): İlk parametre (eşleştirilecek dize) bir dize değeri olmalıdır"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): Desen bir dize değeri olmalıdır"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Düzenli ifade derlemesi başarısız oldu"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Mantıksal işlem, boole olmayan işlenenlere uygulanamıyor."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Skaler bir değişken indekslenmeye çalışılıyor"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Geçersiz vektör indeksi"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "Değişken mevcut değil (etkin olmayan bir dalda)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "Değişken mevcut değil"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Tanımsız (nil) bir isteğe bağlı değişkene başvurulmaya çalışılıyor"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Boş bir vektör değişkeni indeksleniyor"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "İsteğe bağlı değerler vektörünün tanımsız (nil) bir öğesine başvurulmaya çalışılıyor"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "İndeksleme değişkeni tam sayı olmalıdır"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Negatif vektör indeksi"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Bir değişken adı değil"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Bir değişken adı değil (etkin olmayan bir dalda)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "FloatOrPercent değişkeni \"ratio_over\" bağımlılıklarını çözemedi"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Desteklenmeyen skaler değişken türü"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Skaler beklenirken bir vektör değişkenine başvuruluyor"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Desteklenmeyen vektör değişkeni türü"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Salt okunur bir değişken değiştirilemiyor"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Sağ taraf sayısal bir ifade değil"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Bir vektörü doldurmak için öğe sayısı bekleniyordu."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Negatif sayıda öğe belirtildi."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Sağ taraf bir boole ifadesi değil"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Desteklenmeyen çıktı skaler değişken türü"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Skaler beklenirken bir çıktı vektör değişkenine başvuruluyor"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "İndeks aralık dışında"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Desteklenmeyen çıktı vektör değişkeni türü"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Sembol salt okunur sistem sözlüğünde zaten tanımlı"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Sembol sistem çıktı değişkeni olarak zaten tanımlı"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Genel değişkenler bu bağlamda kullanılamıyor"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Değişken adı yerel kapsamda zaten tanımlı"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Değişken adı genel kapsamda zaten tanımlı"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Bir vektör değişkenine skaler değer atanamıyor."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Bir skaler değişkene vektör değeri atanamıyor."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Türü çıkarsanamadığından boş bir başlatıcı listesinden vektör değişkeni oluşturulamıyor."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Sağ taraf geçerli değil: Sayısal ve boole türleri karıştırılıyor."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Bir vektöre skaler atanamıyor"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "İsteğe bağlı değerlerden oluşan sağ taraf vektör değişkeninin bazı öğeleri tanımsız (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Sol taraf bir kayan noktalı vektör, sağ taraf ise değil."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Sol taraf bir tam sayı vektörü, sağ taraf ise değil."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Sol taraf bir dize vektörü, sağ taraf ise değil."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Sol taraf bir boole vektörü, sağ taraf ise değil."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Sol taraf / sağ taraf vektörleri uyumlu değil."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Bu türdeki vektör değişkenini çoğaltma desteklenmiyor"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "empty() parametresi bir vektör değişkeni değil"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "size() parametresi bir vektör değişkeni değil"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Bir vektör değişkenine erişmek için tam sayı olmayan indeks kullanılamaz."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Rastgele sayı üreteci bu bağlamda kullanılamıyor."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "%1%. satırda ayrıştırma hatası: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "%1%. satırda ayrıştırma hatası. %2% etiketi bekleniyordu"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "%1%. satırda ayrıştırma hatası. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "İnterpolasyon değeri bir sayı olmalıdır."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "Bir tablo noktasının X değeri bir sayı olmalıdır."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "Bir tablo noktasının Y değeri bir sayı olmalıdır."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Tablonun X koordinatları artan sırada olmalıdır"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "İnterpolasyon değeri tablo aralığının dışında"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Bilinmeyen sözdizimi hatası"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Geçersiz metin."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Geçersiz metin bloğu."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Geçersiz makro."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "{if}{else}{endif} makrosu değil."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "{switch} makrosu değil."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Eski bir değişken genişletme biçimi bekleniyordu"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Bir tanımlayıcı bekleniyordu."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Koşullu bir ifade bekleniyordu."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Bir boole ifadesi bekleniyordu."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Bir ifade bekleniyordu."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Kapanış süslü parantezi veya isteğe bağlı bir parametre bekleniyordu."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Dize desenlerinin bir listesi bekleniyordu (basit metin veya düzenli ifade)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Bir değişken başvurusu bekleniyordu."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Bir değişken adı bekleniyordu."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Bir düzenli ifade bekleniyordu."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Geçersiz utf8 dizisi"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "ASCII7 olmayan karakterlere yalnızca metin bloklarında ve dize sabitlerinde izin verilir, kod bloklarında verilmez."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Geçersiz kaçış dizisi"
+
msgid "Support: generate contact points"
msgstr "Destek: iletişim noktaları oluştur"
@@ -19859,6 +22285,10 @@ msgstr "Seçilen dosya boş olduğundan okunamıyor."
msgid "The file format is incompatible and cannot be parsed."
msgstr "Dosya biçimi uyumsuz olduğundan ayrıştırılamıyor."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Varlık, ModelIO aracılığıyla STL'ye dönüştürülemedi."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Bilinmeyen dosya formatı. Giriş dosyası .stl, .obj, .amf(.xml) uzantılı olmalıdır."
@@ -19907,9 +22337,6 @@ msgstr "Yeniden kalibrasyon"
msgid "Calibrate"
msgstr "Kalibre et"
-msgid "Finish"
-msgstr "Bitir"
-
msgid "How can I use calibration results?"
msgstr "Kalibrasyon sonucu nasıl kullanılır?"
@@ -20004,9 +22431,12 @@ msgstr ""
"Aynı ekstruder içinde filament tipi, nozul çapı ve nozul akışı aynı olduğunda adın(%s) benzersiz olması gerekir.\n"
"Geçmiş sonucu geçersiz kılmak istediğinizden emin misiniz?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Bu makine türü püskürtme ucu başına yalnızca %d geçmiş sonucunu tutabilir. Bu sonuç kaydedilmeyecek."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Bu makine türü nozul başına yalnızca %d geçmiş sonuç tutabilir. Bu sonuç kaydedilmeyecek."
+msgstr[1] "Bu makine türü nozul başına yalnızca %d geçmiş sonuç tutabilir. Bu sonuç kaydedilmeyecek."
msgid "Connecting to printer..."
msgstr "Yazıcıya bağlanılıyor..."
@@ -20231,9 +22661,13 @@ msgstr "Nozul ve AMS bilgilerini senkronize edin"
msgid "Please connect the printer first before synchronizing."
msgstr "Lütfen senkronizasyondan önce yazıcıyı bağlayın."
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "Yazıcı %s püskürtme ucu bilgisi ayarlanmadı. Kalibrasyona devam etmeden önce lütfen yapılandırın."
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Yazıcının sağ nozul bilgileri ayarlanmadı. Kalibrasyona devam etmeden önce lütfen yapılandırın."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Yazıcının sol nozul bilgileri ayarlanmadı. Kalibrasyona devam etmeden önce lütfen yapılandırın."
msgid "AMS and nozzle information are synced"
msgstr "AMS ve püskürtme ucu bilgileri senkronize edilir"
@@ -20297,6 +22731,11 @@ msgstr "Hacimsel Hızdan"
msgid "To Volumetric Speed"
msgstr "Hacimsel Hıza"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Adım"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Bu yazdırmayı iptal etmek istediğinizden emin misiniz?"
@@ -20323,9 +22762,12 @@ msgstr "Not: %s üzerindeki hotend numarası tutucuya bağlıdır. Hotend yeni b
msgid "Action"
msgstr "İşlem"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Bu makine türü püskürtme ucu başına yalnızca %d geçmiş sonucunu tutabilir."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Bu makine türü nozul başına yalnızca %d geçmiş sonuç tutabilir."
+msgstr[1] "Bu makine türü nozul başına yalnızca %d geçmiş sonuç tutabilir."
msgid "Edit Flow Dynamics Calibration"
msgstr "Akış Dinamiği Kalibrasyonunu Düzenle"
@@ -20453,12 +22895,13 @@ msgstr ""
"Hızlanma değerleri hız değerlerinden büyük olmalıdır.\n"
"Lütfen girişleri doğrulayın."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Bant yazıcılarda henüz etkin değil — bunun yerine PA Kulesi yöntemini kullanın."
+
msgid "Temperature calibration"
msgstr "Sıcaklık kalibrasyonu"
-msgid "Filament type"
-msgstr "Filament türü"
-
msgid "PLA"
msgstr "PLA"
@@ -20480,6 +22923,20 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+# AI Translated
+msgid "Test model"
+msgstr "Test modeli"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Standart"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Çıkıntı"
+
msgid "Start temp: "
msgstr "Başlangıç sıcaklığı: "
@@ -20605,10 +23062,6 @@ msgstr "Geri çekme uzunluğu başlangıcı: "
msgid "End retraction length: "
msgstr "Geri çekme uzunluğu bitişi: "
-# AI Translated
-msgid "Test model"
-msgstr "Test modeli"
-
msgid "Ringing Tower"
msgstr "Titreşim Test Kulesi"
@@ -20638,8 +23091,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Frekans (Başlangıç / Bitiş): "
-msgid "Start / End"
-msgstr "Başlangıç / Bitiş"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X Başlangıç / Bitiş: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y Başlangıç / Bitiş: "
msgid "Frequency settings"
msgstr "Frekans ayarları"
@@ -20678,8 +23136,12 @@ msgid "Frequency: "
msgstr "Frekans: "
# AI Translated
-msgid "Damp"
-msgstr "Sönümleme"
+msgid "Frequency X / Y: "
+msgstr "Frekans X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Sönümleme (Başlangıç / Bitiş): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "RepRap ürün yazılımı her iki eksen için de aynı frekansı kullanır."
@@ -20815,8 +23277,10 @@ msgstr "IFS'yi etkinleştir"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "Yazıcıda %d IFS yuvası algılandı."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "Yazıcıda %d IFS yuvası algılandı."
+msgstr[1] "Yazıcıda %d IFS yuvası algılandı."
# AI Translated
msgid "This printer does not report a material station."
@@ -20835,6 +23299,7 @@ msgid "Slice the plate first to get project material information."
msgstr "Proje malzeme bilgilerini almak için önce plakayı dilimleyin."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Tool (printer)": this entry uses "takım"; align it once the term is settled.
msgid "This plate uses multiple materials. Enable IFS and assign each tool to a printer slot."
msgstr "Bu plaka birden çok malzeme kullanıyor. IFS'yi etkinleştirin ve her takımı bir yazıcı yuvasına atayın."
@@ -20947,8 +23412,10 @@ msgstr "Şundan çıkar"
msgid "Subtract with"
msgstr "Şununla çıkar"
-msgid "selected"
-msgstr "seçildi"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 seçildi"
msgid "Part 1"
msgstr "Bölüm 1"
@@ -21061,9 +23528,6 @@ msgstr "Örneğin. Basic, Mat, İpek, Mermer"
msgid "Filament Preset"
msgstr "Filament Ön Ayarı"
-msgid "Create"
-msgstr "Oluştur"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "Satıcı seçilmedi, lütfen satıcıyı yeniden seçin."
@@ -21373,6 +23837,10 @@ msgstr ""
"Yazıcı ve yazıcıya ait tüm filament ve işlem ön ayarları.\n"
"Başkalarıyla paylaşılabilir."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Özel yatak dokusunu ve modelini dahil et"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21424,14 +23892,6 @@ msgstr "Not: Bu filamentin altındaki tek ön ayar silinirse, diyalogdan çıkı
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Diğer ön ayarlar tarafından devralınan ön ayarlar silinemez"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Aşağıdaki ön ayarlar bu ön ayarı devralır."
-msgstr[1] "Aşağıdaki ön ayar bu ön ayarı devralır."
-
-msgid "Delete Preset"
-msgstr "Ön Ayarı Sil"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Seçilen ön ayarı sildiğinizden emin misiniz?"
@@ -21508,10 +23968,12 @@ msgstr "Başlangıç, bitiş veya adım geçerli bir değer değildir."
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "Yazıcı ekstrüderlerinin sayısı ve kalibrasyon için seçilen yazıcı eşleşmiyor."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "%s ekstruderin nozul çapı 0,2 mm'dir ve bu, otomatik Akış Dinamiği kalibrasyonunu desteklemez."
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21527,6 +23989,12 @@ msgstr ""
"Püskürtme ucu çapı, gerçek yazıcı püskürtme ucu çapıyla eşleşmiyor.\n"
"Lütfen yukarıdaki Senkronizasyon düğmesine tıklayın ve kalibrasyonu yeniden başlatın."
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Yazıcı %s püskürtme ucu bilgisi ayarlanmadı. Kalibrasyona devam etmeden önce lütfen yapılandırın."
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21604,6 +24072,11 @@ msgstr "Creality K serisi yazıcı algıla"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Ağınızdaki K serisi yazıcıları aramak için Tara'ya tıklayın."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Model"
+
# AI Translated
msgid "Scan"
msgstr "Tara"
@@ -21626,8 +24099,10 @@ msgstr "K serisi yazıcı bulunamadı. Yazıcının aynı ağda olduğundan ve W
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "%zu Creality yazıcısı bulundu. Birini seçip Seçileni Kullan'a tıklayın."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "%zu Creality yazıcısı bulundu. Seçip Seçileni Kullan'a tıklayın."
+msgstr[1] "%zu Creality yazıcısı bulundu. Birini seçip Seçileni Kullan'a tıklayın."
# AI Translated
msgid "Active"
@@ -21744,8 +24219,12 @@ msgid "Failed to launch a new instance."
msgstr "Yeni bir örnek başlatılamadı."
# AI Translated
-msgid "log(s)"
-msgstr "günlük"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d günlük (%.2f %s)"
+msgstr[1] "%d günlük (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -21800,17 +24279,37 @@ msgid "Authorizing..."
msgstr "Yetkilendiriliyor..."
# AI Translated
-msgid "Error. Can't get API token for authorization"
-msgstr "Hata. Yetkilendirme için api belirteci alınamıyor"
+msgid "Maximum login retries exceeded"
+msgstr "Maksimum oturum açma denemesi aşıldı"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "HTTP hatası: %1%"
# AI Translated
msgid "Could not parse server response."
msgstr "Sunucu yanıtı ayrıştırılamadı."
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "Hata. Yetkilendirme için api belirteci alınamıyor"
+
# AI Translated
msgid "Error saving session to file"
msgstr "Oturum dosyaya kaydedilirken hata oluştu"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "3DPrinterOS bulutuna bağlantı düzgün çalışıyor."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Kullanıcı olarak oturum açıldı: %1%"
+
# AI Translated
msgid "Error session check"
msgstr "Oturum denetimi hatası"
@@ -21848,6 +24347,42 @@ msgstr "Yanlış parola"
msgid "Could not get resources to create a new connection"
msgstr "Yeni bir bağlantı oluşturmak için kaynaklar alınamadı"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "UltiMaker bağlantısı düzgün çalışıyor."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "UltiMaker'a bağlanılamadı"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Kimlik bilgileri oluşturulurken hata oluştu! Ayrıntılar için günlüğe bakın."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "HATA: ID veya KEY boş. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Kullanıcı adı: %1% Şifre: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Kimlik doğrulama bilgileri onay bekliyor. Lütfen erişimi yazıcının ekranındaki iletişim kutusundan onaylayın."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Geçersiz kimlik doğrulama bilgileri"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Hata: Kimlik doğrulama bilgileri bulunamadı!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "FlashAir kartında yükleme etkin değil."
@@ -21965,6 +24500,14 @@ msgstr ""
"Mesaj gövdesi: \"%1%\"\n"
"Hata: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "ESP3D'ye bağlantı düzgün çalışıyor."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "ESP3D'ye bağlanılamadı"
+
msgid "No AMS"
msgstr "AMS Yok"
@@ -22036,6 +24579,11 @@ msgstr "Seçilebilecek maksimum yazıcı sayısı %d'dır"
msgid "No task"
msgstr "Görev yok"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Görüntüle"
+
msgid "Edit Printers"
msgstr "Yazıcıları Düzenle"
@@ -22077,6 +24625,11 @@ msgstr "Yazdırma Başarısız"
msgid "Printing Pause"
msgstr "Yazdırma Duraklatıldı"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Hazırlanıyor"
+
msgid "Pending"
msgstr "Askıda"
@@ -22109,9 +24662,6 @@ msgstr "Akıllı filament atamasını etkinleştir: Tasarrufu en üst düzeye ç
msgid "File Saving"
msgstr "Dosya Kaydetme"
-msgid "Don't remind me again"
-msgstr "Bana bir daha hatırlatma"
-
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Başka bir açılır pencere görünmeyecek. 'Tercihler'de yeniden açabilirsiniz"
@@ -22136,16 +24686,24 @@ msgstr "Filamenti manuel olarak sol veya sağ nozule atayın"
msgid "Global settings"
msgstr "Genel ayarlar"
-msgid "Video tutorial"
-msgstr "Öğretici Video"
-
msgid "(Sync with printer)"
msgstr "(Yazıcıyla senkronize edin)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Hata: %s ekstruderde kullanılabilir %s nozul yok, geçerli gruplama sonucu geçersiz."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Hata: Sol ekstruderde kullanılabilir Standart nozul yok, geçerli gruplama sonucu geçersiz."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Hata: Sol ekstruderde kullanılabilir Yüksek Akış nozulu yok, geçerli gruplama sonucu geçersiz."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Hata: Sağ ekstruderde kullanılabilir Standart nozul yok, geçerli gruplama sonucu geçersiz."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Hata: Sağ ekstruderde kullanılabilir Yüksek Akış nozulu yok, geçerli gruplama sonucu geçersiz."
msgid "We will slice according to this grouping method:"
msgstr "Bu gruplandırma yöntemine göre dilimleyeceğiz:"
@@ -22188,9 +24746,6 @@ msgstr "SimplyPrint'e bağlanılamadı"
msgid "Internal error"
msgstr "İç hata"
-msgid "Unknown error"
-msgstr "Bilinmeyen hata"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "SimplyPrint hesabı bağlı değil. Ayarlamak için Bağlantı seçeneklerine gidin."
@@ -22198,6 +24753,16 @@ msgstr "SimplyPrint hesabı bağlı değil. Ayarlamak için Bağlantı seçenekl
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge geçersiz bir JSON yanıtı döndürdü."
+# AI Translated
+msgid "Request failed"
+msgstr "İstek başarısız oldu"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Flashforge yerel API hatası %1%: %2%"
+
# AI Translated
msgid "No Flashforge printers were discovered on the local network."
msgstr "Yerel ağda Flashforge yazıcısı bulunamadı."
@@ -22382,8 +24947,11 @@ msgid "Set the brim type of this object to \"painted\""
msgstr "Bu nesnenin kenar türünü \"boyalı\" olarak ayarlayın"
# AI Translated
-msgid "invalid brim ears"
-msgstr "geçersiz kenar kulakları"
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d geçersiz kenar kulağı"
+msgstr[1] "%d geçersiz kenar kulağı"
msgid "Brim Ears"
msgstr "Kenar kulakları"
@@ -22412,6 +24980,7 @@ msgstr "Nesne bilgilerinin atlanması yüklenemedi. Lütfen tekrar deneyin."
msgid "Failed to create the temporary folder."
msgstr "Geçici klasör oluşturulamadı."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d Seçildi"
@@ -22431,9 +25000,12 @@ msgstr "Tüm nesneleri atlamak."
msgid "The printing job will be stopped. Continue?"
msgstr "Yazdırma işi durdurulacaktır. Devam etmek?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "%d nesne atlanıyor."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "%d nesne atlanıyor."
+msgstr[1] "%d nesne atlanıyor."
msgid "This action cannot be undone. Continue?"
msgstr "Bu eylem geri alınamaz. Devam etmek?"
@@ -22582,6 +25154,42 @@ msgstr "Etkinleştirildiğinde yukarıdaki değerler, gelecekteki STEP içe akta
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Ön Ayarları Dışa Aktar"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Klasörde göster"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Paketi sil"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Paket aboneliğinden çık"
+
+# AI Translated
+msgid "Update available"
+msgstr "Güncelleme mevcut"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Yetkisiz paket"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Bu paketi tarayıcınızda aç"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "Abone olunan"
+
+# AI Translated
+msgid "Local"
+msgstr "Yerel"
+
# AI Translated
msgid "Bundle folder does not exist."
msgstr "Paket klasörü mevcut değil."
@@ -22626,6 +25234,14 @@ msgstr "Paket Aboneliğinden Çık"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "OrcaCloud'a dışa aktar"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Klasöre dışa aktar"
+
# AI Translated
msgid "Save preset bundle"
msgstr "Ön ayar paketini kaydet"
@@ -22727,6 +25343,11 @@ msgstr "AMS Kuruluk Denetimi"
msgid "Filament Drying Settings"
msgstr "Filament Kurutma Ayarları"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "sa"
+
# AI Translated
msgid "Stopping"
msgstr "Durduruluyor"
@@ -22906,6 +25527,11 @@ msgstr "Başlatılıyor: Hava girişi denetleniyor"
msgid "Starting: Checking air vent"
msgstr "Başlatılıyor: Hava çıkışı denetleniyor"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "%1% dizini oluşturulamıyor"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Filament mevcut makine ayarlarıyla uyumlu olmayabilir. Genel filament ön ayarları kullanılacaktır."
@@ -22921,6 +25547,106 @@ msgstr "Filament mevcut makine ayarlarıyla uyumlu olmayabilir. Rastgele bir fil
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Filament modeli bilinmiyor. Rastgele bir filament ön ayarı kullanılacaktır."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Bilinmeyen yapılandırma dosyası: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Geçersiz yapılandırma dosyası: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "yuva %1% -> yuva %2%: karışık filament"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "karışık filament tanımı: filament yuvası sınırına ulaşıldı"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "filament yuvası sınırına ulaşıldı"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "yazıcının filament sınırı %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "yuva %1% -> yuva %2%: atanmamış karışık filament (yazıcının filament sınırı %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "yuva %1%: atanmamış karışık filament (yazıcının filament sınırı %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "yuva %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "yuva %1%: karışık filament tanımı içe aktarılamadı"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "en az iki bileşen gerekir"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "bileşenler eksik yuvalara başvuruyor"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "karışık filament tanımı: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "yuva %1%: karışık filament tanımı içe aktarılamadı (%2%)"
+
+# AI Translated
+# Needs human review: '(substitute)' marks a slot whose filament was replaced; check 'ikame' reads right next to the slot mapping in the import report.
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "yuva %1%: %2% -> %3% (ikame)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"%1% yapılandırma dosyası yüklenemedi\n"
+"Önce %2% dizininin temizlenmesi önerilir"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"%1% satıcısının yapılandırma sürümü geçersiz: %2%\n"
+"Önce %3% dizininin temizlenmesi önerilir"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"%1% yapılandırma dosyası yüklenemedi: %2%\n"
+"Önce %3% dizininin temizlenmesi önerilir"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Referans düzlemlerini ve eksenlerini gizle"
@@ -23234,6 +25960,11 @@ msgstr "Kalınlaştırılacak yüzey gövdesi yok — önce bir yüzey unsuru ol
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Referans / Eğri (düzlem / eksen / koord. sist. / helis / izdüşüm)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Düzlem"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Referans düzlemi (ofset / eğik / orta düzlem / teğet / iki kenar / çakışık)"
@@ -23300,6 +26031,11 @@ msgstr "Mevcut bir gövdeyi taşıyın ve/veya döndürün"
msgid "Transform needs a body — add or import one first"
msgstr "Dönüştürme için bir gövde gerekir — önce bir tane ekleyin veya içe aktarın"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Aynala"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Bir gövdeyi bir düzleme göre aynalayın"
@@ -23393,6 +26129,11 @@ msgstr "(yok)"
msgid "Hole / thread"
msgstr "Delik / diş"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Delik"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Seçilen bir yüzde ortalanmış veya bir düzleme yerleştirilmiş bir delik açın"
@@ -23437,6 +26178,11 @@ msgstr "Ölçü yerleştirmek için 2 noktaya veya bir çizgiye / daireye / yaya
msgid "Line / polyline"
msgstr "Çizgi / çoklu çizgi"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Çizgi"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Başlangıca, ardından bitişe tıklayın — sonra tam uzunluğu ayarlayın"
@@ -23573,6 +26319,9 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Kontrol noktalarına tıklayın; bitirmek için çift tıklayın, sağ tıklayın veya Enter'a basın"
+msgid "Point"
+msgstr "Nokta"
+
# AI Translated
msgid "Click to place a point"
msgstr "Nokta yerleştirmek için tıklayın"
@@ -23690,17 +26439,20 @@ msgid "Pick entities, drag the sweep handle, click the count; click empty to app
msgstr "Öğeleri seçin, açı tutamacını sürükleyin, sayıya tıklayın; uygulamak için boş alana tıklayın"
# AI Translated
+# Needs human review: 'circumscribed' is rendered 'çevrel' and 'inscribed' 'içine çizilmiş' (polygon around / inside the circle); check the geometry wording in the sketch polygon tool.
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Merkeze, ardından bir köşe noktasına tıklayın — %d kenar, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Merkeze, ardından bir köşe noktasına tıklayın — %d kenar, çevrel"
+msgstr[1] "Merkeze, ardından bir köşe noktasına tıklayın — %d kenar, çevrel"
# AI Translated
-msgid "circumscribed"
-msgstr "dıştan çizilmiş"
-
-# AI Translated
-msgid "inscribed"
-msgstr "içten çizilmiş"
+# Needs human review: 'inscribed' is rendered 'içine çizilmiş' and 'circumscribed' 'çevrel'; check the geometry wording in the sketch polygon tool.
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Merkeze, ardından bir köşe noktasına tıklayın — %d kenar, içine çizilmiş"
+msgstr[1] "Merkeze, ardından bir köşe noktasına tıklayın — %d kenar, içine çizilmiş"
# AI Translated
msgid "Polygon"
@@ -24038,6 +26790,11 @@ msgstr "Yüz üzerinde"
msgid "Thread plane"
msgstr "Diş düzlemi"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Standart"
+
# AI Translated
msgid "Pitch"
msgstr "Adım"
@@ -24225,6 +26982,10 @@ msgstr "Açmak için bir katı yüz seçin, ardından duvar kalınlığını aya
msgid "(pick a side face)"
msgstr "(bir yan yüz seçin)"
+# AI Translated
+msgid "Face"
+msgstr "Yüz"
+
# AI Translated
msgid "Draft"
msgstr "Koniklik"
@@ -24603,8 +27364,10 @@ msgstr "Eskiz güncellendi"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Eskiz oluşturuldu (%zu sürücü ölçü) — seçin, ardından Ekstrüzyon için sağ tıklayın"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Eskiz oluşturuldu (%zu sürücü ölçü) — seçin, ardından Ekstrüzyon için sağ tıklayın"
+msgstr[1] "Eskiz oluşturuldu (%zu sürücü ölçü) — seçin, ardından Ekstrüzyon için sağ tıklayın"
# AI Translated
#, c-format, boost-format
@@ -24741,8 +27504,10 @@ msgstr "Düzenleniyor: Eskiz %d · N = düzleme dik bak · Araç çubuğ
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "Tamam — %zu üçgen"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "Tamam — %zu üçgen"
+msgstr[1] "Tamam — %zu üçgen"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -24828,10 +27593,18 @@ msgstr "Mesh hiç üçgen içermiyor"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Bu mesh %d üçgen içeriyor. Eş düzlemli birleştirmeden önce her üçgen bir B-rep yüzüne dönüşür; bu nedenle içe aktarma uzun sürebilir ve düzenlemesi yavaş bir gövde bırakabilir. Genellikle önce mesh'i sadeleştirmek daha iyidir.\n"
+"\n"
+"Yine de içe aktarılsın mı?"
+msgstr[1] ""
"Bu mesh %d üçgen içeriyor. Eş düzlemli birleştirmeden önce her üçgen bir B-rep yüzüne dönüşür; bu nedenle içe aktarma uzun sürebilir ve düzenlemesi yavaş bir gövde bırakabilir. Genellikle önce mesh'i sadeleştirmek daha iyidir.\n"
"\n"
"Yine de içe aktarılsın mı?"
@@ -24860,8 +27633,8 @@ msgstr "Mesh içe aktarma başarısız oldu: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Katı içe aktarıldı — %d üçgen → %d yüz, hacim %.2f mm³. Değiştirmek için bir yüz veya kenar seçin, ardından Yuvarlatma / Kes / Kabuklama kullanın"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Katı içe aktarıldı — üçgenler: %d → yüzler: %d, hacim %.2f mm³. Değiştirmek için bir yüz veya kenar seçin, ardından Yuvarlatma / Kes / Kabuklama kullanın"
# AI Translated
#, c-format, boost-format
@@ -24878,8 +27651,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s eskize eklendi — kaydetmek için Onayla'ya basın"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — yerleştirmek/boyutlandırmak için sürükleyin, ardından Onayla'ya basın"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — yerleştirmek/boyutlandırmak için sürükleyin, ardından Onayla'ya basın"
# AI Translated
msgid "Insert canceled"
@@ -25086,9 +27861,12 @@ msgid "a geometry operation failed"
msgstr "bir geometri işlemi başarısız oldu"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · %d seçildi"
+msgid_plural " · %d picked"
+msgstr[0] " · %d seçildi"
+msgstr[1] " · %d seçildi"
# AI Translated
#, c-format, boost-format
@@ -25104,7 +27882,9 @@ msgstr "Seç — seçmek için bir öğeye tıklayın · taşımak için bir u
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "%d seçildi · şimdi bir kısıtlama seçin (Yatay, Paralel, Teğet, Eşit…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d seçildi · şimdi bir kısıtlama seçin (Yatay, Paralel, Teğet, Eşit…)"
+msgstr[1] "%d seçildi · şimdi bir kısıtlama seçin (Yatay, Paralel, Teğet, Eşit…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -25365,7 +28145,9 @@ msgstr "Aynala — eksen belirlendi · şimdi aynalanacak öğelere tıklayın
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Aynala — eksen belirlendi · aynalanacak: %d · eklemek veya kaldırmak için başka bir öğeye tıklayın · Enter uygular"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Aynala — eksen belirlendi · aynalanacak: %d · eklemek veya kaldırmak için başka bir öğeye tıklayın · Enter uygular"
+msgstr[1] "Aynala — eksen belirlendi · aynalanacak: %d · eklemek veya kaldırmak için başka bir öğeye tıklayın · Enter uygular"
# AI Translated
msgid "Move — click the entities to move"
@@ -25488,8 +28270,10 @@ msgstr "Eskiz noktası"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d eskiz öğesi"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d eskiz öğesi"
+msgstr[1] "%d eskiz öğesi"
# AI Translated
msgid "select something first"
@@ -26025,8 +28809,10 @@ msgid "Applied edit"
msgstr "Düzenleme uygulandı"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — bir değer yazın, Enter'a basın (veya Onayla)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — bir değer yazın, Enter'a basın (veya Onayla)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -26098,10 +28884,23 @@ msgstr "Plakaya Aktar — katıyı Hazırlık'a gönder"
msgid "Nothing to commit — add a feature first"
msgstr "Aktarılacak bir şey yok — önce bir unsur ekleyin"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Tasarım Gövdesi %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Tüm gövdeler gizli — aktarmadan önce birini gösterin"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Tasarım Montajı"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Tasarım Gövdesi"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -26168,8 +28967,10 @@ msgstr "Geçersiz: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Ön izleme — %zu üçgen"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Ön izleme — %zu üçgen"
+msgstr[1] "Ön izleme — %zu üçgen"
# AI Translated
#, c-format, boost-format
@@ -26271,8 +29072,10 @@ msgstr "Bu ölçü sağlanamıyor — eskiz aşırı kısıtlı"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "%1% kısıtlama bu geometriye uygulanamıyor (elips veya spline eğrisi ya da sıfır boyutlu daire) ve yok sayılıyor"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% kısıtlama bu geometriye uygulanamıyor (elips veya spline eğrisi ya da sıfır boyutlu daire) ve yok sayılıyor"
+msgstr[1] "%1% kısıtlama bu geometriye uygulanamıyor (elips veya spline eğrisi ya da sıfır boyutlu daire) ve yok sayılıyor"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -26330,8 +29133,10 @@ msgstr "Pah: mesafe kollardan birinin ucunu aşıyor veya iki çizgi bir köşed
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "Yuvarlatma/pah nedeniyle geçersiz hâle gelen %1% kısıtlama kaldırıldı"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "Yuvarlatma/pah nedeniyle geçersiz hâle gelen %1% kısıtlama kaldırıldı"
+msgstr[1] "Yuvarlatma/pah nedeniyle geçersiz hâle gelen %1% kısıtlama kaldırıldı"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -26351,8 +29156,10 @@ msgstr "Kopya sayısı 2 veya daha büyük bir tam sayı olmalıdır"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "%1% kısıtlama dönüştürme nedeniyle serbest bırakıldı"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "%1% kısıtlama dönüştürme nedeniyle serbest bırakıldı"
+msgstr[1] "%1% kısıtlama dönüştürme nedeniyle serbest bırakıldı"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26503,11 +29310,6 @@ msgstr "Yüzeyi Kalınlaştır"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Yüzey kalınlaştırma için bir yüzey gövdesi gerekir — önce bir Yüzey aracıyla bir tane oluşturun"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Delik"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26592,11 +29394,6 @@ msgstr "Dairesel çoğaltma"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Gövdeyi bir eksen etrafında tekrarlayın — sayıyı ve açıyı ayarlayın"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Aynala"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26633,11 +29430,6 @@ msgstr "Hizalama için bir gövde gerekir — önce bir tane ekleyin veya içe a
msgid "Align the body to a picked face or plane"
msgstr "Gövdeyi seçilen bir yüze veya düzleme hizalayın"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Düzlem"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -26743,11 +29535,6 @@ msgstr "Gövdeyi Sil"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Bu gövdenin tamamını silin — oluşturulduğu unsuru kaldırır"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Çizgi"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -27062,214 +29849,6 @@ msgstr "Bu yazı tipinde bu metin için dış hat yok"
msgid "Size: %.1f × %.1f mm"
msgstr "Boyut: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Şekil"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Boş mesh oluşturuldu"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Kutu"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Hızlı:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Genişlik (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Derinlik (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Yükseklik (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "Alt R"
-
-# AI Translated
-msgid "Top R"
-msgstr "Üst R"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "Büyük R"
-
-# AI Translated
-msgid "Minor R"
-msgstr "Küçük R"
-
-# AI Translated
-msgid "All edges"
-msgstr "Tüm kenarlar"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Üst kenarlar"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Alt kenarlar"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Yan kenarlar"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Mesh çözünürlüğü"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Şekil ekle"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Dış profil yok"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Dış yüz oluşturulamadı"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Delikli yüz oluşturulamadı"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Döndürme başarısız oldu"
-
-# AI Translated
-msgid "Profile"
-msgstr "Profil"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Yeni profil başlat (delikler için)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Segmentler"
-
-# AI Translated
-msgid "Sides"
-msgstr "Kenar sayısı"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Çizmek için tuvale tıklayın"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Izgaraya yasla"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Izgara adımı"
-
-# AI Translated
-msgid "Outer"
-msgstr "Dış"
-
-# AI Translated
-msgid "closed"
-msgstr "kapalı"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% nokta %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (Üst)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (Ön)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (Yan)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Döndürme açısı"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "Ekstrüzyon için 0, döndürme için >0 girin"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Cep (kes)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu kapalı profil"
-msgstr[1] "%zu kapalı profil"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Etkinleştirmek için kapalı bir profil çizin"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Tümünü temizle"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Boş sonuç"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Ekstrüzyon: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Döndürme: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Nesne seçilmedi"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Yüz oluşturulamadı"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Delikli yüz oluşturulamadı"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Araç mesh'i boş"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Cep eklendi (negatif hacim)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Cep: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -27392,6 +29971,10 @@ msgstr "Gizmo birleştir"
msgid "Gizmo brim ears"
msgstr "Gizmo lenarlık kulakları"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Gizmo doku yer değiştirme boyama"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Dikey kaydırıcı - Etkin başparmağı yukarı hareket ettir"
@@ -27626,6 +30209,12 @@ msgstr "her iki uçta silindirik bir yüz gerekir — %1% bağlayıcısı düz b
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "her iki uçta silindirik bir yüz gerekir — %1% bağlayıcısı eğri bir yüzde"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (temel düzlem eksik)"
+
# AI Translated
msgid "two points are coincident"
msgstr "iki nokta çakışık"
@@ -27654,10 +30243,31 @@ msgstr "düzlemler paralel (kesişim yok)"
msgid "zero-length direction"
msgstr "sıfır uzunluklu yön"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "bir unsur, geçmişin o noktasında mevcut olmayan %1% gövdesi üzerinde çalışıyor"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "\"%1%\", silinmiş veya gizlenmiş bir unsurun oluşturduğu bir gövde üzerinde çalışıyor"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "\"%1%\", geçmişin o noktasında mevcut olmayan bir gövde üzerinde çalışıyor"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "unsur, sonraki bir unsur tarafından kullanılıyor"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "\"%1%\", \"%2%\" öğesini kullandığından onun önüne gelemez"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "eskiz öğeleri kapalı bir döngü oluşturmuyor"
@@ -27668,9 +30278,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Açık uç: (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...ve %1% açık uç daha"
+msgid "Open ends not shown: %1%"
+msgstr "Gösterilmeyen açık uçlar: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "döndürme: eksen çizgisi artık eskizde değil — ekseni yeniden seçin"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "döndürme: eksen çizgisinin uzunluğu yok"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -27818,6 +30437,30 @@ msgstr "delik konturu oluşturulamadı"
msgid "hole cut failed"
msgstr "delik kesimi başarısız oldu"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "diş: çap en az 1 mm olmalıdır"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "diş: hatve 0,1 mm'den büyük olmalıdır"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "diş: derinlik 0 ile 0,7 x hatve arasında olmalıdır"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "diş: derinlik bu çap için çok büyük"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "diş: uzunluk yarım hatveden büyük olmalıdır"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "diş: çok fazla tur (uzunluk / hatve 400'ün altında kalmalıdır)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "iç diş için bir gövde gerekir"
@@ -27878,6 +30521,24 @@ msgstr "delete_face başarısız oldu"
msgid "delete_face produced no geometry"
msgstr "delete_face geometri üretmedi"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "boole: hedef gövde yok"
+
+# AI Translated
+# Needs human review: 'tool body' (the cutter body of a Design-tab boolean) is rendered 'araç gövdesi'; the glossary row Tool (printer) is unsettled. Check the wording against the boolean tool UI.
+msgid "boolean: no tool body — pick a second body"
+msgstr "boole: araç gövdesi yok — ikinci bir gövde seçin"
+
+# AI Translated
+# Needs human review: 'tool' here is the Design-tab boolean tool body, rendered 'araç'; the glossary row Tool (printer) is unsettled. Check the wording against the boolean tool UI.
+msgid "boolean: the target and the tool are the same body"
+msgstr "boole: hedef ve araç aynı gövde"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "boole: bir gövdenin geometrisi yok"
+
# AI Translated
msgid "boolean operation failed"
msgstr "boole işlemi başarısız oldu"
@@ -28208,6 +30869,10 @@ msgstr "Model Resimleri"
msgid "Auxiliaries"
msgstr "Yardımcılar"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Bant Yıkama Kulesi"
+
# AI Translated
msgid "Project Filament List"
msgstr "Proje Filament Listesi"
@@ -28242,8 +30907,18 @@ msgstr "Ayrıştırma için aynı malzeme türünden en az iki filament gereklid
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "Malzeme listesi en fazla %1% rengi destekler. %2% ayrıştırmasından sonra malzeme sayısı %1% sınırını aşacaktır. Lütfen ayrıştırmadan önce ana ekrandaki kullanılmayan filamentleri silin."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Malzeme listesi en fazla %1% renk destekler. Malzeme Listesi ayrıştırmasından sonra malzeme sayısı %1% sınırını aşacaktır. Lütfen ayrıştırmadan önce ana ekrandaki kullanılmayan filamentleri silin."
+msgstr[1] "Malzeme listesi en fazla %1% renk destekler. Malzeme Listesi ayrıştırmasından sonra malzeme sayısı %1% sınırını aşacaktır. Lütfen ayrıştırmadan önce ana ekrandaki kullanılmayan filamentleri silin."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Malzeme listesi en fazla %1% renk destekler. %2% ayrıştırmasından sonra malzeme sayısı %1% sınırını aşacaktır. Lütfen ayrıştırmadan önce ana ekrandaki kullanılmayan filamentleri silin."
+msgstr[1] "Malzeme listesi en fazla %1% renk destekler. %2% ayrıştırmasından sonra malzeme sayısı %1% sınırını aşacaktır. Lütfen ayrıştırmadan önce ana ekrandaki kullanılmayan filamentleri silin."
# AI Translated
msgid "Cyan"
@@ -28273,6 +30948,13 @@ msgstr "Yeşil"
msgid "Blue"
msgstr "Mavi"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -28280,7 +30962,1235 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "Mevcut filament listesi %s içermiyor. Karışık filamentin gerektirdiği bir proje filamenti, ayrıştırmadan sonra otomatik olarak oluşturulacak."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "Mevcut filament listesi %s içermiyor. Karışık filamentin gerektirdiği bir proje filamenti, ayrıştırmadan sonra otomatik olarak oluşturulacak."
+msgstr[1] "Mevcut filament listesi %s içermiyor. Karışık filamentin gerektirdiği proje filamentleri, ayrıştırmadan sonra otomatik olarak oluşturulacak."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Opaklık"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -28376,10 +32286,6 @@ msgstr "Ayarlarım"
msgid "Custom Printer Setup"
msgstr "Özel Yazıcı Kurulumu"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Özel Yazıcı"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Özel bir yazıcı profili tanımlayın"
@@ -28648,6 +32554,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Pişir"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Kaydırıcıya kesin bir değer yaz"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Kaydırıcının sağ ucundaki düzenleme simgesi"
+
# AI Translated
msgid "Texture displacement"
msgstr "Doku yer değiştirme"
@@ -28784,6 +32698,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Dokuyu kaldır"
+# AI Translated
+msgid "Adjust image"
+msgstr "Görüntüyü ayarla"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Parlaklık"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Kontrast"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Keskinlik"
+
+# AI Translated
+msgid "Blur"
+msgstr "Bulanıklık"
+
+# AI Translated
+msgid "Hue"
+msgstr "Renk tonu"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Görüntüdeki en ince ayrıntıyı öne çıkarır. Bulanıklık'tan sonra uygulanır, bu yüzden ikisi birlikte kullanılabilir: önce benekleri bulanıklaştırarak giderin, ardından kalan kenarları keskinleştirin."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Görüntünün kendisini bulanıklaştırır. Katmanın kendi Pürüzsüzleştirme kaydırıcısı, görüntüyü değiştirmeden kabartmayı yumuşatır ve ilk başvurulması gereken ayardır."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Bu doku gri tonlamalı olduğundan kaydırılacak bir renk tonu yok."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Model, bir kaydırıcıyı bıraktığınızda güncellenir. Kopya olarak kaydet, ayarlanan görüntüyü doku kütüphanenize yazar ve bu katmanı ona yönlendirir."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Kopya olarak kaydet"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Doku yer değiştirme katmanını kaldır"
@@ -28920,6 +32878,15 @@ msgstr "Yakalanan her aşamayı bir OBJ dosyası olarak dışa yazar; böylece b
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Boyalı alan, mesh'i yeniden oluşturulan modele aktarılamadı; bu nedenle hiçbir şey değiştirilmedi. Pro moduna geçin ve boyamadan önce mesh'i yeniden oluşturun."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Aralık: %1% - %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Sürüklemek yerine bir değer yazın. Kaydırıcıya Ctrl+tıklamak da aynı işi yapar."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -29026,8 +32993,8 @@ msgid "Click a triangle to paint it"
msgstr "Boyamak için bir üçgene tıklayın"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Etkin katmanın Açınım (LSCM) ile haritalanmış olmasını gerektirir."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Yalnızca Açınım (LSCM) ile haritalanmış bir katman için - bu görünümü kullanmak için etkin katmanın Haritalama ayarını Açınım olarak belirleyin."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -29042,16 +33009,16 @@ msgid "Checker"
msgstr "Dama"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Dama - doku yerine bir test ızgarası. Karelerin kare kaldığı yerlerde doku bozulmamıştır; karelerin gerildiği yerlerde doku da gerilecektir"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Dama - doku yerine bir test ızgarası. Karelerin kare kaldığı yerlerde doku bozulmamıştır; karelerin gerildiği yerlerde doku da gerilecektir. Kapalıysa UV düzenleyiciyi açar"
# AI Translated
msgid "Distortion"
msgstr "Bozulma"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Bozulma - açınım üzerinde maviden kırmızıya gerilme ısı haritası"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Bozulma - açınım üzerinde maviden kırmızıya gerilme ısı haritası. Kapalıysa UV düzenleyiciyi açar"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -29077,6 +33044,10 @@ msgstr "Bu katman için farklı bir görüntü seçin. Boya, derinlik ve döşem
msgid "not painted"
msgstr "boyanmadı"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Parlaklık, kontrast, keskinlik, bulanıklık ve renk tonu, siz ayarladıkça görüntüde ve modelde gösterilir. Kopya olarak kaydet, sonucu doku kütüphanenize yazar ve bu katmanı ona yönlendirir."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Yukarı taşı - daha önce uygulanır"
@@ -29097,10 +33068,20 @@ msgstr "Kabartmanın yüksekliği: dokudaki beyazın yüzeyi milimetre cinsinden
msgid "Tile size"
msgstr "Döşeme boyutu"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Modelin kendi UV düzeniyle haritalanır; bu düzen zaten yerleşimin kendisidir - dokunun tek bir kopyası onu tam olarak kaplar, bu nedenle ayarlanacak bir döşeme boyutu yoktur."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Dokunun bir kopyasının model üzerindeki genişliği. Küçük değerler deseni daha sık tekrarlar ve ayrıntısını inceltir; Döşeme kapalıyken bu, tek kopyanın boyutudur."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Dokuyu yüzey üzerinde derece cinsinden döndürür - bir deseni modelin bir kenarıyla hizalamak için."
@@ -29168,28 +33149,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Aradaki renkleri taklit etmek için iki filamenti dönüşümlü kullanır; böylece birkaç filament bir fotoğrafı veya bir gradyanı karşılayabilir. Düz renklerden oluşan bir görüntü her iki durumda da aynı yazdırılır. Kapalıyken her alan için tek filament kullanılır."
# AI Translated
-msgid "Mix by"
-msgstr "Karıştırma yöntemi"
+msgid "Mixed colors"
+msgstr "Karışık renkler"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Yüzey"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Bir pişirmenin ekleyebileceği en fazla karışık filament sayısı. Bunlar dokunun renklerinden seçilir ve yalnızca pişirmenin gerçekten kullandıkları oluşturulur."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Katmanlar: iki filament baskı katmanları arasında dönüşümlü kullanılır; bu, dik yüzeylerde yumuşak bir karışım verir ancak tüm katmanın tek bir şerit olduğu düz bakan yüzeylerde kaybolur.\n"
-"Yüzey: yüzey boyunca ince bir dama deseni; her açıda çalışır ancak karışım yerine doku gibi algılanabilir.\n"
-"Otomatik: dik yüzlerde katmanlar; düz bakan yüzler en yakın tek filamenti alır, çünkü orada dama deseni bir desen olarak görünür."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%2% filamentten %1% yazdırılabilir renk"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "%1% filamentten"
+msgstr[1] "%1% filamentten"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%2% %1% yazdırılabilir renk"
+msgstr[1] "%2% %1% yazdırılabilir renk"
# AI Translated
msgid "Denoise"
@@ -29240,6 +33227,18 @@ msgstr "Görünümden"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Görünümden - bir slayt projektörü gibi, baktığınız yerden doğrudan boyalı alana yansıtır."
+# AI Translated
+msgid "Model UV"
+msgstr "Model UV"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "Model UV - modelin kendisiyle birlikte gelen doku koordinatlarını kullanır; böylece o model için yapılmış bir doku boyandığı yere tam olarak oturur. Açınım yapılmaz ve Döşeme boyutu geçerli değildir: modelin kendi düzeni yerleşimin kendisidir."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Bu modelin kendine ait doku koordinatları yok. Yalnızca UV kanalıyla içe aktarılan bir model - örneğin dokulu bir OBJ - bunlarla haritalanabilir."
+
# AI Translated
msgid "Open UV editor"
msgstr "UV düzenleyiciyi aç"
@@ -29254,8 +33253,10 @@ msgstr "Henüz açınımı çıkarılmadı"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% ada"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% UV adası"
+msgstr[1] "%1% UV adası"
# AI Translated
msgid "Capture current view"
@@ -29285,10 +33286,6 @@ msgstr "Projeksiyon çerçevesi"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Model üzerine sürükleyeceğiniz bir pencere açar. İçinden ne görüyorsanız doku ona uygulanır ve pencerenin sınırı projeksiyonun kenarı olur."
-# AI Translated
-msgid "Opacity"
-msgstr "Opaklık"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Çerçeve penceresinin siz yerleştirirken ne kadar opak göründüğü. Modeli içinden görmek için azaltın; sonucu etkilemez."
@@ -29342,6 +33339,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Ekle"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Üzerine yaz"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -29361,8 +33363,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Taban katmanın altında birleşeceği bir şey olmadığından her zaman ekler."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Bu katmanın alttakilerle örtüştüğü yerde ne yaptığı. Ekle ve Çıkar kabartmayı üst üste ekler veya oyar. Çarp ve Böl alttakini ölçekler; bu da bu katmanı onun üzerinde bir maskeye dönüştürür - bu durumda Derinlik bir şiddet gibi davranır ve 1 mm beyaz alanlara dokunmaz."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Bu katmanın alttakilerle örtüştüğü yerde ne yaptığı. Ekle ve Çıkar kabartmayı üst üste ekler veya oyar. Üzerine yaz bunların yerini alır; böylece boyandığı yerde yalnızca bu katmanın kabartması kalır. Çarp ve Böl alttakini ölçekler; bu da bu katmanı onun üzerinde bir maskeye dönüştürür - bu durumda Derinlik bir şiddet gibi davranır ve 1 mm beyaz alanlara dokunmaz."
# AI Translated
msgid "Adjust placement"
@@ -29386,8 +33388,10 @@ msgstr "Daha fazla ayar"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "%1% katmanın tümü kullanıldı"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "%1% katmanın tümü kullanıldı"
+msgstr[1] "%1% katmanın tümü kullanıldı"
# AI Translated
msgid "Add layer"
@@ -29467,8 +33471,10 @@ msgstr "Üçgen bütçesi: aşağıdaki Üçgenler ile ayarlanır."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Ön izleme: %1% üçgen"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Ön izleme: %1% üçgen"
+msgstr[1] "Ön izleme: %1% üçgen"
# AI Translated
msgid "Steps"
@@ -29510,6 +33516,12 @@ msgstr "Yeniden mesh oluşturma"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Tüm modelin yeniden oluşturulacağı üçgen boyutu (milimetre). Yer değiştirme en iyi düzgün bir mesh üzerinde çalışır; düzensiz bir içe aktarmadan düzgün mesh bu şekilde elde edilir."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Keskin kenarları koru"
@@ -29644,14 +33656,6 @@ msgstr "Yaklaşık %1% üçgen gerekiyor, bütçe %2% - pişirme mesh'i yeniden
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Sıklaştırmanın modele kaç bin üçgen ekleyebileceği. En kötü uyan üçgen her zaman önce bölünür; böylece bütçenin tamamını harcayan bir çalışma bile onu en çok fark edilen yerlere harcamış olur. Kabartma hâlâ kaba görünüyorsa artırın."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Pişirmeyi durdurur. O ana kadar tamamlanan her şey modelde kalır ve geri alınabilir."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Aracı pişirmeden kapatır. Boyanız, katmanlarınız ve ayarlarınız modelde kalır."
-
# AI Translated
msgid "Preparing..."
msgstr "Hazırlanıyor..."
@@ -29676,35 +33680,56 @@ msgstr "Boyanmış yükseklik haritalarını, var olan tepe noktalarını hareke
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Boyanmış yükseklik haritalarını gerçek geometriye dönüştürür. Mesh önce düzgün bir yoğunlukta yeniden oluşturulur ve dokunun büküldüğü yerlerde sıklaştırılır; böylece ayrıntının oturacağı tepe noktaları olur - hepsi tek adımda."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Pişirmeyi durdurur. O ana kadar tamamlanan her şey modelde kalır ve geri alınabilir."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Aracı pişirmeden kapatır. Boyanız, katmanlarınız ve ayarlarınız modelde kalır."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Model: %1% üçgen - pişirme, bütçesi elverdiğince yukarıdaki çözünürlüğe kadar sıklaştırır"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Model: %1% üçgen - pişirme, bütçesi elverdiğince yukarıdaki çözünürlüğe kadar sıklaştırır"
+msgstr[1] "Model: %1% üçgen - pişirme, bütçesi elverdiğince yukarıdaki çözünürlüğe kadar sıklaştırır"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Pişirme mevcut tepe noktalarını hareket ettirir - model %1% üçgende kalır"
+msgstr[1] "Pişirme mevcut tepe noktalarını hareket ettirir - model %1% üçgende kalır"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Pişirme mevcut tepe noktalarını hareket ettirir - model %1% üçgende kalır"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Pişirme sonucu en fazla ~%1% k üçgen"
+msgstr[1] "Pişirme sonucu en fazla ~%1% k üçgen"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Pişirme sonucu en fazla ~%1% k üçgen"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% katman boyanmadı, atlandı"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% katman boyanmadı, atlandı"
+msgstr[1] "%1% katman boyanmadı, atlandı"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% boyanmadı, atlandı"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% boyanmadı, atlandı"
+msgstr[1] "%1% boyanmadı, atlandı"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29722,6 +33747,10 @@ msgstr "Doku yer değiştirme düzenleme"
msgid "Choose SLA archive:"
msgstr "SLA arşivini seçin:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "SL1 / SL1S arşiv dosyaları"
+
# AI Translated
msgid "Import file"
msgstr "Dosya içe aktar"
@@ -29892,6 +33921,34 @@ msgstr "Filament eklentileri"
msgid "Printer plugins"
msgstr "Yazıcı eklentileri"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Bu ön ayar hiçbir eklenti yeteneği kullanmıyor"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Bu ön ayarın kullandığı yetenekler"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Yetenek yapılandırması (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Eklenti yapılandırması"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Bu ön ayarın geçersiz kılmasını at ve yeniden genel yapılandırmayı kullan"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Varsayılanları geri yükle"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "Geçersiz JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "Yapılandırma geçerli bir JSON değil. Değişiklikleriniz kaydedilmedi."
@@ -29911,10 +33968,6 @@ msgstr ""
"\n"
"Bu, ön ayarın geçersiz kılmasını siler ve genel yapılandırmayı kullanır."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Varsayılanları geri yükle"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Genel yapılandırma kullanılıyor. Kalıcı hale getirmek için ön ayarı kaydedin."
@@ -29940,10 +33993,6 @@ msgstr "Abonelikten çık"
msgid "Overwrite Plugin"
msgstr "Eklentinin Üzerine Yaz"
-# AI Translated
-msgid "Show in folder"
-msgstr "Klasörde göster"
-
# AI Translated
msgid "Reinstall"
msgstr "Yeniden kur"
@@ -29952,6 +34001,10 @@ msgstr "Yeniden kur"
msgid "Delete cache and reload"
msgstr "Önbelleği sil ve yeniden yükle"
+# AI Translated
+msgid "No description."
+msgstr "Açıklama yok."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Bir .py veya .whl eklenti paketi seçin."
@@ -29984,6 +34037,293 @@ msgstr "Eklenti yükleniyor"
msgid "Installed \"%s\"."
msgstr "\"%s\" yüklendi."
+# AI Translated
+msgid "Search plugins"
+msgstr "Eklentilerde ara"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Aramayı temizle"
+
+# AI Translated
+msgid "Match case"
+msgstr "Büyük/küçük harf eşleştir"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Tam sözcük eşleştir"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Diğer eklenti yükleme seçenekleri"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Eklenti yükle"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Yerel eklenti yükle"
+
+# AI Translated
+msgid "Activate"
+msgstr "Etkinleştir"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Ada göre sırala"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Sürüme göre sırala"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Eklenti Sürümü"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Kaynağa göre sırala"
+
+# AI Translated
+msgid "Source"
+msgstr "Kaynak"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Duruma göre sırala"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Durum"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Yeniden boyutlandırmak için sürükleyin; sıfırlamak için çift tıklayın"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Eklenti listesini yeniden boyutlandır"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Eklenti ayrıntıları"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Eklenti Bilgisi"
+
+# AI Translated
+msgid "Description"
+msgstr "Açıklama"
+
+# AI Translated
+msgid "Config"
+msgstr "Yapılandırma"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Değişiklik Günlüğü"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Tanılama"
+
+# AI Translated
+msgid "Types"
+msgstr "Türler"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Yüklü Sürüm"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "En Son Sürüm"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "En son sürüme güncelle"
+
+# AI Translated
+msgid "No description available"
+msgstr "Açıklama yok"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Yeteneklerini yapılandırmak için bir eklenti seçin"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Yapılandırılabilir yetenekler"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Bu yetenek için kaydedilen ayarları at ve eklentinin varsayılanlarını geri yükle"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Eklenti değişiklik günlüğü"
+
+# AI Translated
+msgid "Date"
+msgstr "Tarih"
+
+# AI Translated
+msgid "Changes"
+msgstr "Değişiklikler"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Değişiklik günlüğü yok"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Sorun tespit edilmedi"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Eklenti bulunamadı"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "\"%s\" ile eşleşen eklenti yok"
+
+# AI Translated
+# Needs human review: Source badge in the Plugins dialog for plugins the user owns on OrcaCloud (next to Subscribed, Orphaned, Local); check "Benim" reads right as a short pill.
+msgid "Mine"
+msgstr "Benim"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Abone olunan"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Sahipsiz"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Yerel"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Bazı eklenti yetenekleri etkin"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "%s yeteneklerini daralt"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "%s yeteneklerini genişlet"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Yetenekleri daralt"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Yetenekleri genişlet"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Bu eklentiyi tarayıcınızda aç"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Yetenekler: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Yetenekler"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "\"%s\" öğesini çalıştır"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "%s öğesini etkinleştir"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Güncellemeler için yetkisiz"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Eklenti yükleniyor…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Bu eklenti hiçbir yetenek sunmuyor"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Yeteneklerini yapılandırmak için bu eklentiyi etkinleştirin"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "OrcaCloud'da buradan görüntüleyin"
+
+# AI Translated
+msgid "Activated"
+msgstr "Etkinleştirildi"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Çalışma zamanı hatası"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Etkin değil"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Bu eklenti etkin ve kullanıma hazır."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Bu eklenti hâlâ yükleniyor."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Bu eklenti, hatası düzeltilene kadar engellendi."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Bu eklenti yüklendi ancak bir yetenek hata bildirdi."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Bu eklenti etkin değil. Kurmak veya yüklemek için etkinleştirin."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Durumunu ve ayrıntılarını görüntülemek için bir eklenti seçin."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Sahipsiz: Bu eklentiye artık abone olunmuyor veya eklenti artık OrcaCloud'da mevcut değil. Yerel kopya yüklü kalır ve kullanılmaya devam edilebilir."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Daha yeni bir eklenti sürümü mevcut."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Bu eklenti güncellemeler için yetkisiz olduğundan bulut güncellemeleri kullanılamıyor."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -30200,6 +34540,56 @@ msgstr "Eklenti yeniden yüklenemedi."
msgid "Reloaded \"%s\"."
msgstr "\"%s\" yeniden yüklendi."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Yazıcı Bağlantısı"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Cihazı görüntülemek için lütfen yazıcı bağlantınızı kurun."
+
+msgid "No model information"
+msgstr "Model bilgisi yok"
+
+msgid "Edit Project Info"
+msgstr "Proje Bilgilerini Düzenle"
+
+msgid "Model Information"
+msgstr "Model Bilgileri"
+
+msgid "Accessories"
+msgstr "Aksesuarlar"
+
+msgid "Profile Information"
+msgstr "Profil Bilgisi"
+
+msgid "Model name"
+msgstr "Model adı"
+
+msgid "Created by"
+msgstr "Oluşturan"
+
+msgid "Remixed by"
+msgstr "Değiştiren"
+
+msgid "Shared by"
+msgstr "Paylaşan"
+
+msgid "Model description"
+msgstr "Model açıklaması"
+
+msgid "BOM"
+msgstr "Malzeme Listesi"
+
+msgid "Profile name"
+msgstr "Profil ismi"
+
+msgid "Profile Author"
+msgstr "Profil Yazarı"
+
+msgid "Profile description"
+msgstr "Profil açıklaması"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Yıkama Modu Ayarları"
@@ -30224,6 +34614,19 @@ msgstr "Prime atığını azaltır ve daha hızlı yazdırır. Hafif renk karı
msgid "Terminal"
msgstr "Terminal"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... veya uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Eklenti terminali hazır."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "İşlem şu kodla sonlandı: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Zaten çalışan bir komut var."
@@ -30270,8 +34673,10 @@ msgstr "Yeni Karışık Filamentler"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Proje en fazla %d filamenti destekler. Fazla filamentler atılacak."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Proje en fazla %d filamenti destekler. Fazla filamentler atılacak."
+msgstr[1] "Proje en fazla %d filamenti destekler. Fazla filamentler atılacak."
# AI Translated
msgid "Import Model"
@@ -30358,8 +34763,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Hesaplama başarısız oldu. Lütfen parametreleri ayarlayıp yeniden deneyin."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "Mesh'te manifold olmayan geometri veya açık sınırlar var. Olduğu gibi içe aktarabilir ya da içe aktarmadan önce Windows 3D onarım hizmetiyle onarabilirsiniz."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "Mesh'te manifold olmayan geometri veya açık sınırlar var. Olduğu gibi içe aktarabilir ya da içe aktarmadan önce onarabilirsiniz."
# AI Translated
msgid "Mesh repair"
@@ -30373,14 +34778,6 @@ msgstr "Onarmadan içe aktar"
msgid "Repair and import"
msgstr "Onar ve içe aktar"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Lütfen mesh'te manifold olmayan geometri veya açık sınırlar olduğunu unutmayın."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Mesh sorunu"
-
# AI Translated
msgid "The selected image is empty."
msgstr "Seçilen görüntü boş."
@@ -30389,6 +34786,14 @@ msgstr "Seçilen görüntü boş."
msgid "Failed to prepare the texture for use."
msgstr "Doku kullanıma hazırlanamadı."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "İçe aktarılan dokular için klasör oluşturulamadı."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "İçe aktarılan doku kaydedilemedi."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Yalnızca kendi içe aktardığınız dokular kaldırılabilir."
@@ -30397,18 +34802,10 @@ msgstr "Yalnızca kendi içe aktardığınız dokular kaldırılabilir."
msgid "Could not delete the texture file."
msgstr "Doku dosyası silinemedi."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "İçe aktarılan dokular için klasör oluşturulamadı."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Seçilen görüntü yüklenemedi."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "İçe aktarılan doku kaydedilemedi."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Doku dosyası okunamadı."
@@ -30452,8 +34849,10 @@ msgstr "UV'lerini burada düzenlemek için bir doku katmanının haritalaması o
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d tepe noktası seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d tepe noktası seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır"
+msgstr[1] "%d tepe noktası seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30461,8 +34860,10 @@ msgstr "Tepe noktası modu: yeniden şekillendirmek için bir tepe noktasını s
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "%d kenar seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "%d kenar seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır"
+msgstr[1] "%d kenar seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30470,8 +34871,10 @@ msgstr "Kenar modu: yeniden şekillendirmek için bir ada kenarını sürükleyi
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "%d ada seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır, R/S = birincil adayı döndür/ölçekle"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "%d UV adası seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır, R/S = birincil UV adasını döndür/ölçekle"
+msgstr[1] "%d UV adası seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır, R/S = birincil UV adasını döndür/ölçekle"
# AI Translated
#, c-format, boost-format
@@ -30490,6 +34893,10 @@ msgstr " | yaslama AÇIK"
msgid "Change texture - choose another one from the texture library"
msgstr "Dokuyu değiştir - doku kütüphanesinden başka bir doku seçin"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Etkin katmanın döşeme boyutu: dokunun bir tekrarının modelin ne kadarını kapladığı. Tuval döşemelerle ölçülür; bu nedenle bir ızgara hücresi bir tekrara karşılık gelir. Bunu katmanın ayarlarındaki Döşeme boyutu ile değiştirin."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Yükseklik haritası - katmanın dokusunu adaların altında gösterir"
@@ -30523,16 +34930,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Açınımı bağlı bir ağ olarak yerleştirir: kenar paylaşan parçalar yan yana açılır (bir küp altı ayrı kare yerine birleşik bir açınım olur). Ayrı adalar olarak kalırlar; böylece daha sonra herhangi birini yine elle taşıyabilirsiniz."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Ada - adaların tamamını taşı, döndür ve ölçekle"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Ada - adaların tamamı üzerinde çalışın. Seçmek için birine tıklayın, ardından taşımak için sürükleyin, döndürmek için sağ tuşla sürükleyin ya da fareyle döndürmek için R'ye, ölçeklemek için S'ye basın (onaylamak için tıklayın veya Enter'a basın, iptal etmek için Esc'ye basın)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Tepe noktası - yeniden şekillendirmek için tepe noktalarını sürükleyin; çoklu seçim için Shift/Ctrl"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Tepe noktası - bir adayı elle yeniden şekillendirmek için tepe noktalarını sürükleyin; Shift seçime ekler, Ctrl bir tepe noktasını seçime ekler veya seçimden çıkarır."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Kenar - yeniden şekillendirmek için kenarları sürükleyin; çoklu seçim için Shift/Ctrl"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Kenar - bir adayı elle yeniden şekillendirmek için kenarları sürükleyin; Shift seçime ekler, Ctrl bir kenarı seçime ekler veya seçimden çıkarır."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30571,8 +34978,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Yasla - bir adayı diğerine doğru sürüklerken adaları birbirine yapıştırır"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Tüm adaları çerçevele (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Tüm adaları çerçevele; hepsini görünüme sığdırır (Home veya F).\n"
+"Tuvalin başka bir yerinde: imlecin etrafında yakınlaştırmak için fare tekerleğini çevirin; görünümü kaydırmak için orta tuşla sürükleyin - veya boş alanı sürükleyin."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Neyin seçili olduğu ve sürüklerken taşıma, döndürme veya ölçeklemenin kesin değerleri."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30583,6 +34998,10 @@ msgstr "Açınım ile haritalanmış katman yok"
msgid "%.1f mm tile"
msgstr "%.1f mm karo"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Panel etkin doku katmanını izler ve bu katmanın Açınım (LSCM) ile haritalanmış olması gerekir. Bir katman ekleyin ve Haritalama ayarını Açınım olarak belirleyin."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Güncel değil - bu açınım oluşturulduktan sonra boya, kesim çizgileri veya kesim açısı değişti. Açınımı yeniden çıkarmak için basın."
@@ -30591,19 +35010,70 @@ msgstr "Güncel değil - bu açınım oluşturulduktan sonra boya, kesim çizgil
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Boyalı alanı UV adalarına düzleştirir. Her düzenlemede değil, yalnızca buna bastığınızda hesaplanır - bu yüzden önce boyayın, kesim açısını değiştirin veya kesim çizgilerini işaretleyin, ardından Açınım'a basın."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Önce Kesim çizgisi işaretle aracını açın - Yol, bunları işaretlemenin daha hızlı bir yoludur."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Bu katmanda işaretli kesim çizgisi yok."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Hiçbir ada elle yeniden şekillendirilmedi, bu nedenle atılacak bir şey yok."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d ada, %s yüz"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d UV adası"
+msgstr[1] "%d UV adası"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s yüz"
+msgstr[1] "%s yüz"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Boyalı alanın açınımdan nasıl çıktığı: kesildiği ayrı parçaların sayısı (kesim çizgilerinde ve kesim açısından daha keskin kenarlarda) ve bu parçaların toplamda kaç üçgen içerdiği."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Önce Açınım'a basın - henüz üzerinde çalışılacak ada yok."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Önce Ada modunda tuval üzerindeki bir adaya tıklayın."
+
+# AI Translated
+# Needs human review: Short badge (about three letters) on a recent project that was published; 'YAY' abbreviates 'yayınlandı'. Check it fits the badge and reads clearly.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "YAY"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Oturum açılmadı"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Bambu Ağı eklentisi algılanmadı. Yüklemek için burayı tıklayın."
+
+msgid "Create new project"
+msgstr "Yeni proje oluştur"
+
+msgid "Recently opened"
+msgstr "Yakın zamanda açıldı"
+
+msgid "Open Containing Folder"
+msgstr "Dosyayı içeren klasörü açınız"
# AI Translated
msgid "Forward"
msgstr "İleri"
-# AI Translated
-msgid "Tools"
-msgstr "Araçlar"
-
# AI Translated
msgid "View Source"
msgstr "Kaynağı Görüntüle"
@@ -30675,6 +35145,75 @@ msgstr "%1% şuraya yükle: %2%"
msgid "Load %s"
msgstr "%s yükle"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Yazıcı aracısı '%1%' etkinleştirilemedi: '%2%' aracı kimliği, '%4%' eklentisinin '%3%' yeteneği tarafından zaten kayıtlı."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Yazıcı aracısı '%1%' etkinleştirilemedi: '%2%' aracı kimliği zaten '%3%' tarafından kayıtlı."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Dosya yüklendi"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "G-code yükleniyor..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Baskı başlatılıyor..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Baskı başlatıldı"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Yükleniyor..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Ağ kitaplığı sürümü belirtilmedi"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Ağ kitaplığı bulunamadı"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Ağ kitaplığı yüklenemedi"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Ağ kitaplığı yüklenirken hata oluştu"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Eski bir eklenti serisi. Cihaz hata iletişim kutusundaki baskı hatası anlık görüntüleri gibi daha yeni eklenti desteği gerektiren özellikler kullanılamıyor."
+
+# AI Translated
+msgid "unknown name"
+msgstr "bilinmeyen ad"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"\"%s\" eklentisi dosya sistemine okuma erişimi istiyor:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Eklenti izinleri"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -30689,36 +35228,60 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"\"%s\" eklentisi aşağıdaki dosyayı okumak istiyor:\n"
+"%s"
+msgstr[1] ""
"\"%s\" eklentisi aşağıdaki dosyaları okumak istiyor:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"\"%s\" eklentisi aşağıdaki dosyayı okumak/yazmak istiyor:\n"
+"%s"
+msgstr[1] ""
"\"%s\" eklentisi aşağıdaki dosyaları okumak/yazmak istiyor:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"\"%s\" eklentisi aşağıdaki dosyayı oluşturmak istiyor:\n"
+"%s"
+msgstr[1] ""
"\"%s\" eklentisi aşağıdaki dosyaları oluşturmak istiyor:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"\"%s\" eklentisi aşağıdaki dosyayı silmek istiyor:\n"
+"%s"
+msgstr[1] ""
"\"%s\" eklentisi aşağıdaki dosyaları silmek istiyor:\n"
"%s"
@@ -30743,10 +35306,30 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"\"%s\" eklentisi aşağıdaki komutu çalıştırmak istiyor:\n"
+"%s"
+msgstr[1] ""
+"\"%s\" eklentisi aşağıdaki komutları çalıştırmak istiyor:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "\"%s\" eklentisi bir iş parçacığı oluşturmak için izin istiyor."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"\"%s\" eklentisi aşağıdaki komutları çalıştırmak istiyor:\n"
+"\"%s\" eklentisi çalışan uygulamayı şununla değiştirmek istiyor:\n"
"%s"
# AI Translated
@@ -30758,6 +35341,46 @@ msgstr "\"%s\" eklentisi \"%s\" Python denetim olayı için izin istiyor."
msgid "Plugin permission request"
msgstr "Eklenti izin isteği"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "Ön ayar geçersiz eklenti yeteneği yapılandırma JSON'u içeriyor."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "Ön ayarın eklenti yeteneği yapılandırması bir dizi değil ve düzenlenemiyor."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Yazıcı bağlantısı"
+
+# AI Translated
+msgid "Pages"
+msgstr "Sayfalar"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Analiz"
+
+# AI Translated
+msgid "Importer"
+msgstr "İçe aktarıcı"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Dışa aktarıcı"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Görselleştirme"
+
+# AI Translated
+msgid "Script"
+msgstr "Betik"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Dilimleme Hattı"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "Eklentinin yapılandırma arayüzü boştu. Varsayılan düzenleyici gösteriliyor."
@@ -30780,8 +35403,346 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Yapılandırma diske yazılamadı. Hiçbir şey değiştirilmedi."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Eklenti yüklemesi başarısız oldu"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Eklenti yüklemesi başarısız oldu: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: yüklü eklenti katalogda bulunamadı."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "Bulut eklentisi anahtarında UUID eksik."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Bulut eklentisine abone olunamadı, daha fazla bilgi için günlüklere bakın."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Yalnızca bulut eklentilerinin aboneliği kaldırılabilir."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Eklentinin aboneliği kaldırılamadı, daha fazla bilgi için günlüklere bakın."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Eklenti indirme URL'si alınamadı (sonuç %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Bu bulut eklentisini indirme yetkiniz yok."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Bu işletim sistemi için kullanılabilir eklenti paketi yok."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "Seçilen eklenti sürümü bulunamadı."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "Eklenti sürümü %1% bulunamadı."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Bulut eklentisi bulunamadı."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Bulut eklentisi indirmesi bulunamadı: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Bulut eklentisi indirmesi bulunamadı."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Bu eklenti için kullanılabilir bir indirme URL'si yok. Lütfen hatalar için günlükleri kontrol edin."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Eklenti indirilemedi: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Eklenti indirmesi %1% HTTP durumuyla başarısız oldu."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Eklenti indirmesi boş veri döndürdü."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Eklenti indirmesi için geçici dosya oluşturulamadı."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Eklenti verileri geçici dosyaya yazılamadı."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Eklenti klasörü çözümlenemedi: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "%1% eklenti klasörü silinemedi: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Eklenti dizini mevcut değil: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "Eklenti dizini birden fazla .py dosyası içeriyor: %1% ve %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "Eklenti dizini birden fazla .whl dosyası içeriyor: %1% ve %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "Eklenti dizini hem .py hem de .whl giriş dosyaları içeriyor"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "Eklenti dizini bir .py veya .whl giriş dosyası içermiyor"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Dilimleme hattı eklentisi '%1%' hatası: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Eklenti paketi bir .py veya .whl dosyası olmalıdır, alınan: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Eklenti .whl bağımlılığı %1% çıkarılamadı: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr ".whl bağımlılığı sys.path'e eklenemedi: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Python yorumlayıcısı başlatılmadı: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Eklenti manifest dosyası geçersiz: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Eklenti bağımlılıkları yüklenemedi: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Eklenti modülü yüklenemedi: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Eklenti kaydı başarısız oldu: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Eklenti modülü hiçbir yetenek kaydetmedi"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Eklenti, %2% türü için yinelenen '%1%' yeteneğini bildiriyor"
+
+# AI Translated
+# Needs human review: 'materialization' (turning a declared capability into a live instance) is rendered 'oluşturulamadı'; check the wording with the plugin developers.
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Eklenti yeteneği oluşturulamadı: %1%"
+
+# AI Translated
+# Needs human review: 'materialization' (turning a declared capability into a live instance) is rendered 'oluşturulamadı'; check the wording with the plugin developers.
+msgid "Plugin capability materialization failed"
+msgstr "Eklenti yeteneği oluşturulamadı"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Eklenti on_load başarısız oldu: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Eklenti on_load başarısız oldu"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Eklenti paketi bir dosya değil: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "Bulut eklentisi UUID'si geçerli bir tanımlayıcı değil: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "%1% eklenti dizini oluşturulamadı: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Mevcut %1% eklentisi yedeklenemedi: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Eklenti dosyası %1% konumuna kopyalanamadı: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Eklenti yükleme durumu yazılamadı: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Eklenti paketi zaten yüklü: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "%1% türü ve '%2%' adı için yetenek çakışması"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Yinelenen eklenti anahtarı bulundu: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Eklenti yüklemesi hâlâ devam ediyor"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Eklenti geçersiz: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Eklenti bulunamadı: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Beklenmeyen eklenti yükleme hatası: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Beklenmeyen eklenti yükleme hatası"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Eklenti manifest dosyası bulunamadı: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Eklentiler buluttan alınamadı. Ayrıntılar için günlüklere bakın."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Bu eklentiyi yüklemek için OrcaCloud'da oturum açın."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "Abone olunan bulut eklentisi OrcaCloud tarafından döndürülmedi."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Bulut eklentisi indirilemedi."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Bulut eklentisi yüklenemedi."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Yalnızca bulut eklentileri güncellenebilir."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Bu eklenti için güncelleme yok."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Bilinen eklenti dizinlerinin dışındaki bir eklenti silinmeyecek."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Bilinen eklenti dizinlerinin dışındaki bir eklenti güncellenmeyecek."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Eklenti yerel olarak tutulamıyor: yerel eklenti anahtarı zaten mevcut: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Eklenti yükleme durumu güncellenemedi: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Kendi eklentilerinizin aboneliği kaldırılamaz."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Yalnızca bulut eklentileri silinebilir ve abonelikten çıkarılabilir."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Kendi eklentilerinizin aboneliği kaldırılamaz. Yerel dosyaları kaldırmak için Sil'i kullanın."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Eklenti dosya sistemi okuma izni isteği reddedildi"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30815,6 +35776,10 @@ msgstr "iki yönlü ekstrüzyon birleştirmesi başarısız oldu"
msgid "imported regions produced no extrudable geometry"
msgstr "içe aktarılan bölgeler ekstrüde edilebilir geometri üretmedi"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "profil döndürme eksenini kesiyor — eksenin bir tarafında kalmalıdır"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Döndürme başarısız oldu"
@@ -30851,6 +35816,10 @@ msgstr "Cep yüzü oluşturulamadı"
msgid "Pocket cut failed"
msgstr "Cep kesimi başarısız oldu"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "profil kendisiyle kesişiyor veya kendi üzerine geri katlanıyor, bu yüzden tek bir bölgeyi sınırlamıyor"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "eskizde kapalı döngü yok"
@@ -30883,10 +35852,26 @@ msgstr "mesh_to_brep: mesh'te üçgen yok"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: tüm üçgenler dejenere olarak reddedildi (daha küçük bir tolerans deneyin)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "yuvarlatma yarıçapı 0'dan büyük olmalıdır"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "o grupta yuvarlatılacak kenar yok"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "yuvarlatma yarıçapı bu geometri için çok büyük"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "pah mesafesi 0'dan büyük olmalıdır"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "o grupta pahlanacak kenar yok"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "pah mesafesi bu geometri için çok büyük"
@@ -30899,6 +35884,153 @@ msgstr "apply_fillet: OCCT yuvarlatması başarısız oldu"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: OCCT pahı başarısız oldu"
+# AI Translated
+msgid "empty component list"
+msgstr "boş bileşen listesi"
+
+# AI Translated
+msgid "empty component index"
+msgstr "boş bileşen indeksi"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "bileşen indeksi >= 1 olmalıdır (alınan: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "geçersiz bileşen indeksi \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "en az 2 bileşen gerekli (alınan: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "yinelenen bileşen indeksi %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "boş oran değeri"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "oran pozitif olmalıdır (alınan: %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "geçersiz oran \"%1%\""
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "oran sayısı bileşen sayısıyla eşleşmelidir: beklenen %1%, alınan %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "virgülle ayrılmış iki kayan noktalı sayı bekleniyordu, ör. \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "başlangıç ve bitiş oranları (0, 1) aralığında olmalıdır"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "dizi boyutu %1%, filament yuvası sayısı %2% ile eşleşmiyor"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "karışık filament parametreleri belirtildiğinde ayarlanmalıdır"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "yuva %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "yuva %1%: bileşen %2% aralık dışında (en yüksek fiziksel filament indeksi %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "yuva %1%: kendisine bileşen olarak başvuramaz"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "yuva %1%: bileşen %2% bir karışık filament yuvasına başvuruyor"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "yuva %1%: gradyan tam olarak 2 bileşen gerektirir"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "yuva %1%: geçersiz eğri (en az 2 geçerli kontrol noktası gerekli)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "\"%1%\" yapılandırma dosyası yüklenemedi: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "%1% tarafından oluşturulmuş bir G-code dosyası değil."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "\"%1%\" yapılandırma etiketi bulunamadı"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "%1% dosyasından çıkarılan yapılandırma değerlerinin sayısı şüpheli derecede düşük: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"STEP dosyası yüklenemedi.\n"
+"Dosya okuma için açılamıyor.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "SVG içe aktarma başarısız oldu: SVG açılamadı."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "SVG içe aktarma başarısız oldu: içe aktarılan SVG verileri ayrıştırılamadı."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Özel G-code negatif z_retracted bildiriyor."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Özel G-code negatif z_restart_extra bildiriyor."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "%1% dizininin %2% dizinine kopyalanması başarısız oldu: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Kimlik doğrulama tamamlandı"
@@ -31346,6 +36478,1111 @@ msgstr ""
"Eğilmeyi önleyin\n"
"ABS gibi bükülmeye yatkın malzemelere baskı yaparken, ısıtma yatağı sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını azaltabileceğini biliyor muydunuz?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Lütfen filament rengini seçin"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Köprünün çizgi genişliği. Yüzde olarak ifade edilirse nozul çapı üzerinden hesaplanır.\n"
+#~ "Daha yüksek bir Köprü yoğunluğu veya Köprü akış oranı ile birlikte kullanılması önerilir.\n"
+#~ "\n"
+#~ "En büyük değer %100 veya nozul çapıdır.\n"
+#~ "0 olarak ayarlanırsa çizgi genişliği İç katı dolgu genişliğiyle eşleşir."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Duvarların yukarı doğru kıvrılmış olabileceği bölgelerde yazdırmayı yavaşlatmak için bu seçeneği etkinleştirin.\n"
+#~ "Örneğin, Benchy gövdesinin ön kısmı gibi keskin köşelerdeki çıkıntılar yazdırılırken ek yavaşlama uygulanır; bu da birden çok katmanda birikerek artan kıvrılmayı azaltır.\n"
+#~ "\n"
+#~ "Yazıcınızın soğutması yeterince güçlü değilse veya baskı hızı duvar kıvrılması oluşmayacak kadar düşük değilse bu seçeneğin açık olması genellikle önerilir. \n"
+#~ "Yüksek bir dış duvar hızıyla yazdırılıyorsa, baskı hızlarındaki olası büyük değişkenlik ekstruderin istenen akış değişimine yetişememesine yol açacağından bu parametre yavaşlama sırasında duvarda bozulmalara neden olabilir.\n"
+#~ "Bu bozulmaların asıl nedeni büyük olasılıkla PA ayarının biraz kaymış olmasıdır, özellikle de yüksek bir PA yumuşatma süresiyle birleştiğinde.\n"
+#~ "\n"
+#~ "Bu seçeneği etkinleştirirken öneriler:\n"
+#~ "1. Ekstruderin hız değişimlerine hızlı tepki vermesi için Pressure Advance yumuşatma süresini 0,015 - 0,02 değerine düşürün.\n"
+#~ "2. Yavaşlamanın büyüklüğünü sınırlamak ve hızlı ile yavaş bölümler arasındaki farkı azaltmak için minimum baskı hızlarını artırın.\n"
+#~ "3. Bozulmalar hâlâ görünüyorsa, akış geçişlerini daha da yumuşatmak için Ekstrüzyon Hızı Yumuşatma'yı (ERS) etkinleştirin.\n"
+#~ "\n"
+#~ "Not: Bu seçenek etkinleştirildiğinde çıkıntı duvarları çıkıntı gibi ele alınır; yani çıkıntı yapan duvar bir köprünün parçası olsa bile çıkıntı hızı uygulanır.\n"
+#~ "Örneğin duvarlar %100 çıkıntı yapıyorsa ve altlarında onları destekleyen bir duvar yoksa %100 çıkıntı hızı uygulanır."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Dışarıdan görülebilen köprü ekstrüzyonlarının hızı.\n"
+#~ "\n"
+#~ "Ayrıca, kıvrılmış çevreler için yavaşlama devre dışı bırakılırsa veya Klasik çıkıntı modu etkinleştirilirse, ister bir köprünün ister bir çıkıntının parçası olsun, %13’ten daha az desteklenen çıkıntılı duvarların yazdırma hızı olacaktır."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Bu ayrı ayar, yarıçapı <= küçük_çevre_eşiği olan çevrelerin (genellikle delikler) hızını etkileyecektir. Yüzde olarak ifade edilirse (örneğin: %80), yukarıdaki dış duvar hızı ayarına göre hesaplanacaktır. Otomatik için sıfıra ayarlayın."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "\"Küçük çevre (perimeter)\" ile aynıdır, ancak destekler için geçerlidir. Bu ayrı ayar, `small_support_perimeter_threshold` değerinden küçük veya ona eşit alanlar için destek hızını etkiler. Yüzde olarak ifade edilirse (örneğin: %80), yukarıdaki destek veya destek arayüzü hızı ayarı üzerinden hesaplanır. Otomatik için sıfır olarak ayarlayın."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "İç (iç) ve dış (dış) duvarların baskı sırası.\n"
+#~ "\n"
+#~ "En iyi çıkıntılar için İç/Dış seçeneğini kullanın. Bunun nedeni, sarkan duvarların baskı sırasında komşu çevreye yapışabilmesidir. Ancak bu seçenek, dış çevrenin iç çevreye sıkıştırılarak deforme olması nedeniyle yüzey kalitesinin biraz düşmesine neden olur.\n"
+#~ "\n"
+#~ "Dış duvar iç çevreden rahatsız edilmeden basıldığından, en iyi dış yüzey kalitesi ve boyutsal doğruluk için İç/Dış/İç seçeneğini kullanın. Ancak, dış duvarın üzerine baskı yapılacak bir iç çevre olmadığından sarkma performansı düşecektir. Bu seçenek, önce 3. çevreden itibaren iç duvarları, ardından dış çevreyi ve son olarak da birinci iç çevreyi yazdırdığından etkili olması için en az 3 duvar gerektirir. Bu seçenek çoğu durumda Dış/İç seçeneğine karşı önerilir.\n"
+#~ "\n"
+#~ "İç/Dış/İç seçeneğinin aynı dış duvar kalitesi ve boyutsal doğruluk avantajları için Dış/İç seçeneğini kullanın. Bununla birlikte, yeni bir katmanın ilk ekstrüzyonu görünür bir yüzey üzerinde başladığından Z dikişleri daha az tutarlı görünecektir."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Katı dolgu kısmı dışındaki ilk katmanın hızı."
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "İlk katmanın katı dolgu kısmının hızı."
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Daha iyi yapışma için dolgu alanı duvarla örtüşecek şekilde hafifçe genişletilir. Yüzde değeri seyrek dolgunun çizgi genişliğine göredir. Aşırı ekstrüzyon ve pürüzlü üst yüzeylere neden olan malzeme birikmesi potansiyelini en aza indirmek için bu değeri ~%10-15’e ayarlayın."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "Üst katı dolgu alanı, daha iyi yapışma sağlamak ve üst dolgunun duvarlarla buluştuğu yerde küçük deliklerin görünümünü en aza indirmek için duvarla üst üste gelecek şekilde hafifçe genişletilir. %25-30’luk bir değer, iğne deliklerinin görünümünü en aza indiren iyi bir başlangıç noktasıdır. Yüzde değeri seyrek dolgunun çizgi genişliğine göredir."
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Bölümlere ayrılmış bir bölgenin birbirine kenetlenen derinliği. “mmu_segmented_region_max_width” sıfırsa veya “mmu_segmented_region_interlocking_length”, “mmu_segmented_region_max_width” değerinden büyükse göz ardı edilecektir. Sıfır bu özelliği devre dışı bırakır."
+
+# AI Translated
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Üst yüzey duvarlarının yüksekliğini model kenar yüksekliğine uyacak şekilde azaltır.\n"
+#~ "Eğimi bu açıdan (derece) küçük olan duvarları etkiler.\n"
+#~ "Makul bir değer 35'tir. Devre dışı bırakmak için 0 olarak ayarlayın."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Otomatik temizleme hızı"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Rüzgar taslağı nedeniyle ABS veya ASA baskının eğrilmesine ve baskı yatağından ayrılmasına karşı koruma sağlamak için bir rüzgarlık kullanışlıdır. Genellikle yalnızca açık çerçeveli, yani muhafazasız yazıcılarda gereklidir.\n"
+#~ "\n"
+#~ "Etkin = etek, yazdırılan en yüksek nesne kadar uzun. Aksi takdirde ‘Etek yüksekliği’ kullanılır.\n"
+#~ "Not: Rüzgarlık etkinken etek, nesneden etek mesafesinde yazdırılacaktır. Bu nedenle eğer kenarlar aktifse onlarla kesişebilir. Bunu önlemek için etek mesafesi değerini artırın.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Silme kulesinde temizleme yaparken ve silme kulesi seyrek katmanlarını yazdırırken maksimum yazdırma hızı. Temizleme sırasında seyrek dolum hızı veya filamentin maksimum hacimsel hızından hesaplanan hız daha düşükse, bunun yerine en düşük olanı kullanılacaktır.\n"
+#~ "\n"
+#~ "Seyrek katmanları yazdırırken iç çevre hızı veya filamentin maksimum hacimsel hızından hesaplanan hız daha düşükse bunun yerine en düşük olanı kullanılacaktır.\n"
+#~ "\n"
+#~ "Bu hızın arttırılması kulenin stabilitesini etkileyebileceği gibi, nozulun silme kulesi üzerinde oluşmuş olabilecek damlacıklarla çarpışma kuvvetini de arttırabilir.\n"
+#~ "\n"
+#~ "Bu parametreyi varsayılan 90 mm/sn’nin üzerine çıkarmadan önce, yazıcınızın artan hızlarda güvenilir şekilde köprü kurabildiğinden ve takım değişimi iyi kontrol edildiğinde sızıntı yaptığından emin olun.\n"
+#~ "\n"
+#~ "Silme kulesi dış çevreleri için bu ayardan bağımsız olarak iç çevre hızı kullanılır."
+
+# AI Translated
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Silme kulesi dış duvar tipi.\n"
+#~ "1. Dikdörtgen: Varsayılan duvar tipi, sabit genişlik ve yüksekliğe sahip bir dikdörtgendir.\n"
+#~ "2. Koni: Silme kulesinin sabitlenmesine yardımcı olmak için alt kısmı yuvarlatılmış bir koni.\n"
+#~ "3. Kaburga: Kule duvarına gelişmiş denge için dört kaburga ekler."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Silme kulesindeki temizleme hatları için ekstra akış kullanılır. Bu, temizleme hatlarının normalde olduğundan daha kalın veya daha dar olmasına neden olur. Aralık otomatik olarak ayarlanır."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Yazdırma süresini artırabilecek kısa, kapatılmamış duvarların yazdırılmasını önlemek için bu değeri ayarlayın. Daha yüksek değerler daha fazla ve daha uzun duvarları kaldırır.\n"
+#~ "\n"
+#~ "NOT: Modelin dış kısmında görsel boşluk kalmaması için alt ve üst yüzeyler bu değerden etkilenmeyecektir. Üst yüzey olarak kabul edilen şeyin hassasiyetini ayarlamak için aşağıdaki Gelişmiş ayarlarda 'Tek duvar eşiği'ni ayarlayın. 'Tek duvar eşiği' yalnızca bu ayar varsayılan değer olan 0,5'in üzerine ayarlandığında veya tek duvarlı üst yüzeyler etkinleştirildiğinde görünür."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "%1% parçaya ayır"
+#~ msgstr[1] "%1% parçaya ayır"
+
+#~ msgid "Repair failed"
+#~ msgstr "Onarım başarısız oldu"
+
+#~ msgid "Repair canceled"
+#~ msgstr "Onarım iptal edildi"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Bu katmanın alttakilerle örtüştüğü yerde ne yaptığı. Ekle ve Çıkar kabartmayı üst üste ekler veya oyar. Çarp ve Böl alttakini ölçekler; bu da bu katmanı onun üzerinde bir maskeye dönüştürür - bu durumda Derinlik bir şiddet gibi davranır ve 1 mm beyaz alanlara dokunmaz."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "Mesh'te manifold olmayan geometri veya açık sınırlar var. Olduğu gibi içe aktarabilir ya da içe aktarmadan önce Windows 3D onarım hizmetiyle onarabilirsiniz."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Lütfen mesh'te manifold olmayan geometri veya açık sınırlar olduğunu unutmayın."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Mesh sorunu"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Onarım başarısız oldu: delik doldurmadan sonra mesh hâlâ açık."
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Mantıksal işlem, boole olmayan işleçlere uygulanamıyor."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Okunuyor"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Filament sayısı, boyama aracının desteklediği maksimum sayıyı aşıyor. Boyama aracında yalnızca ilk %1% filament mevcut olacaktır."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Kısayol tuşu "
+
+# AI Translated
+#~ msgid "Build Volume"
+#~ msgstr "Yapı hacmi"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Nesnelerde(%1%) yinelenen bağlantı elemanları var. Dilimleme sonucunda bazı bağlantı elemanları eksik olabilir.\n"
+#~ "Lütfen bu sorunun hangi senaryoda oluştuğunu OrcaSlicer ekibine bildirin.\n"
+#~ "Teşekkürler."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d üçgen"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Hareketli)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Sabit)"
+
+# AI Translated
+#~ msgid "Filament "
+#~ msgstr "Filament "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "hotend"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Hizalanıyor "
+
+#~ msgid "Orienting"
+#~ msgstr "Yönlendiriliyor"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Lütfen tüm eksenleri hizalayın (tıklayın) "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") takım kafasının konumunu bulmak için. Bu, cihazın yazdırılabilir sınırın dışına çıkmasını ve ekipmanın aşınmasına neden olmasını önler."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Optimum gruplamaya kıyasla %1%g filament ve %2% değişimi artırın."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Optimum gruplamaya kıyasla %1%g filamenti artırın ve %2% değişiklikten tasarruf edin."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Optimum gruplamaya kıyasla %1%g filamentten tasarruf edin ve değişiklikleri %2% artırın."
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Tek nozullu bir yazıcıya kıyasla %1%g filament ve %2% değişiklikten tasarruf edin."
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Tek nozullu yazıcıya kıyasla %1%g filamentten tasarruf edin ve değişiklikleri %2% artırın."
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Tek nozullu yazıcıya kıyasla %1%g filamenti artırın ve %2% değişiklikten tasarruf edin."
+
+#~ msgid "number keys"
+#~ msgstr "sayı tuşları"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "%s filamentleri %s içine yerleştirildi, ancak oluşturulan G-code yolu %s'nin yazdırılabilir aralığını aşıyor."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "%s filamentleri %s'e yerleştirildi, ancak oluşturulan G-code yolu %s'nin yazdırılabilir yüksekliğini aşıyor."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "%s filamentleri bu plakanın yüzeyine doğrudan basılamaz."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "yeni bir model oluşturulmadan önce kapatılacaktır. Devam etmek istiyor musun?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "Bulut Dilimleme Sırasında önünüzde %s görev var."
+
+#~ msgid " upload failed"
+#~ msgstr " yükleme başarısız"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " yapılandırma ön yüklemesi başarısız oldu\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Uygun depolama alanı yok\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " açılamaz\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Yorum sonucunuz aşağıdaki bazı nedenlerden dolayı yüklenemiyor. Sebep:\n"
+#~ "\n"
+#~ " hata kodu: "
+
+#~ msgid "error message: "
+#~ msgstr "hata mesajı: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Derecelendirme için web sayfasına yönlendirmek ister misiniz?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (işlem ön ayarı: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "%s püskürtme ucu %s'yi yazdıramıyor."
+
+#~ msgid " nozzle"
+#~ msgstr " nozul"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Aşağıdaki filament(ler)in %1%: %2% ile yazdırılması önerilmez.\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " plaka %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "%1% karışık filamentin tümü kaldırılsın mı?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Değiştirmek istiyor musun"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Yatak sıcaklığı çakışması: T%d (%s) yatağı %d°C'ye ayarlıyor — T%d (%s) ise %d°C gerektiriyor. Yatağı birincil araç kontrol eder; ikincil araçlar onun ayarladığı sıcaklıkta basar."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Kalibrasyon için ivme sağlanmadı. Varsayılan ivme değerini kullanın "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Kalibrasyon için hız sağlanmadı. Varsayılan optimum hızı kullanın "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "%1% ile %2% °C aralığı için bant sıcaklık kulesi mevcut değil. Kule modellerinin kapsadığı bir aralık kullanın, örneğin 230 ile 190."
+
+#~ msgid "The selected file"
+#~ msgstr "Seçili dosya"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "Geçerli bir G-code içermiyor."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "orca'nın modelleri şuradan açabilmesi için OrcaSlicer ile (ilişkilendir / eşleştir)"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Maliyet %dg filament ve %d, optimum gruplandırmadan daha fazla değişir."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Bu simgeye sahip parametreler nozul başına yapılandırılabilir."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Ayrılmış anahtar kelimeler bulundu"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "%d Filament Ön Ayarı ve %d İşlem Ön Ayarı bu yazıcıya eklenmiştir. Yazıcı silinirse bu ön ayarlar silinir."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Aşağıdaki ön ayarlar bu ön ayarı devralır."
+#~ msgstr[1] "Aşağıdaki ön ayar bu ön ayarı devralır."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% Ön Ayar"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Seçilen ön ayarı %1% yaptığınızdan emin misiniz?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "%1% parçaya ayır"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Yeni satıcı profilleri indiriliyor: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Satıcı profilleri indirilemedi: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Bu Span modunda renkleri yalnızca %1% basar, ancak filament %2% hiçbir araca yönlendirilmemiş. %1% aracına yönlendirilmiş filamentleri kullanın veya bu plakayı Birincil moda geçirin."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Bu Span modunda renkleri yalnızca %1% basar, ancak filament %2%, T%3% aracına yönlendirilmiş. %1% aracına yönlendirilmiş filamentleri kullanın veya bu plakayı Birincil moda geçirin."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " Hariç tutma alanına çok yakın olduğundan yazdırma sırasında çarpışmalar meydana gelebilir."
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " topaklanma algılama alanına çok yakın, baskı sırasında çarpışmalar meydana gelebilir."
+
+# AI Translated
+#~ msgid "Prime Tower"
+#~ msgstr "Prime Kulesi"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " başkalarına çok yakın olduğundan çarpışmalara neden olabilir.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " dışlama alanına çok yakın ve çarpışmalara neden olacak.\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " topaklanma algılama alanına çok yakın, çarpışmalar meydana gelecektir.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " yazdırılabilir alanın kısmen dışında ve yazdırılamaz.\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "yapılandırılmış araç yok"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "Tüm yazdırmayı tamamladığında çalışacak olan G-code."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Maksimum X hızı"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Maksimum Y hızı"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Maksimum Z hızı"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Maksimum E hızı"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Ara dilimleme verilerini okumak ve değiştirmek için her dilimleme hattı adımında çağrılan Python eklentileri; son bir G-code son işleme adımı da buna dahildir. Araştırma/deneysel."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Etkinleştirildiğinde dilimleyici, birincil bölgenin içeriğini yatak orijininde (0,0) ortalanmış şekilde G-code üretir. Kopyaları/ayna görüntülerini her fiziksel bölge konumuna yerleştirmekten yazıcının ürün yazılımı sorumludur. Yalnızca ürün yazılımı kopya/ayna modunda kendi bölge ofsetlerini uygulayan yazıcılarda etkinleştirin (ör. RepRapFirmware IDEX çoğaltma modu). Birincil modda etkisi yoktur."
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Fiziksel kafaları filament yuvalarına eşleyen plaka başına geçersiz kılma (1 tabanlı). Boş bırakılırsa pem-inversion varsayılanları kullanılır."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Dilimlemeden önce mesh'in etrafında döndürüldüğü eksen. Bu, bant yazıcının eğimidir: yatak görüntülemesini ve destek yerçekimi eğimini de belirleyen izometrik (bozulmasız) bir dönüş; G-code geri dönüşümü bunu, makine koordinat sistemi kesme/ölçekleme ve yeniden eşleme işlemlerinden önce tersine çevirir. Tipik portal eğimi X'tir (bant Y boyunca ilerler)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Uzman geçersiz kılması: makine koordinat sistemi (G-code kesme/ölçekleme) eğim açısını dilimleme öncesi dönüş açısından bağımsız olarak ayarlar. Devre dışı bırakıldığında makine koordinat sistemi dönüşümü bant eğim açısından türetilir; böylece tek bir açı her iki aşamayı da belirler. Yalnızca fiziksel portal eğimi dilimleme dönüşünden farklı olan bir makineyi telafi etmek için etkinleştirin."
+
+# AI Translated
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "'Maksimum duvar çözünürlüğü' ayarı için çözünürlük düşürülürken izin verilen maksimum sapma. Bunu artırırsanız baskı daha az doğru olur ancak G-Code daha küçük olur. 'Maksimum duvar sapması', 'Maksimum duvar çözünürlüğü'nü sınırlar; dolayısıyla ikisi çakışırsa 'Maksimum duvar sapması' önceliklidir."
+
+#~ msgid " not in range "
+#~ msgstr " aralıkta değil "
+
+#~ msgid "floating regions"
+#~ msgstr "yayılmış bölgeler"
+
+#~ msgid "floating cantilever"
+#~ msgstr "yüzen konsol"
+
+#~ msgid "large overhangs"
+#~ msgstr "büyük çıkıntılar"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Görünüşe göre %s nesnesinde %s var. Lütfen nesneyi yeniden yönlendirin veya destek oluşturmayı etkinleştirin."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Hiçbir katman algılanmadı. STL dosyalarınızı onarmak veya boyutlarını veya kalınlıklarını kontrol edip yeniden denemek isteyebilirsiniz.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Bu makine türü püskürtme ucu başına yalnızca %d geçmiş sonucunu tutabilir. Bu sonuç kaydedilmeyecek."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Bu makine türü püskürtme ucu başına yalnızca %d geçmiş sonucunu tutabilir."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Çıkıntı"
+
+#~ msgid "Start / End"
+#~ msgstr "Başlangıç / Bitiş"
+
+# AI Translated
+#~ msgid "Damp"
+#~ msgstr "Sönümleme"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "Yazıcıda %d IFS yuvası algılandı."
+
+#~ msgid "selected"
+#~ msgstr "seçildi"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Aşağıdaki ön ayarlar bu ön ayarı devralır."
+#~ msgstr[1] "Aşağıdaki ön ayar bu ön ayarı devralır."
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "%zu Creality yazıcısı bulundu. Birini seçip Seçileni Kullan'a tıklayın."
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "günlük"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Hata: %s ekstruderde kullanılabilir %s nozul yok, geçerli gruplama sonucu geçersiz."
+
+# AI Translated
+#~ msgid "invalid brim ears"
+#~ msgstr "geçersiz kenar kulakları"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "%d nesne atlanıyor."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Klasörü dosya gezgininde aç"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Merkeze, ardından bir köşe noktasına tıklayın — %d kenar, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "dıştan çizilmiş"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "içten çizilmiş"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Eskiz oluşturuldu (%zu sürücü ölçü) — seçin, ardından Ekstrüzyon için sağ tıklayın"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "Tamam — %zu üçgen"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Bu mesh %d üçgen içeriyor. Eş düzlemli birleştirmeden önce her üçgen bir B-rep yüzüne dönüşür; bu nedenle içe aktarma uzun sürebilir ve düzenlemesi yavaş bir gövde bırakabilir. Genellikle önce mesh'i sadeleştirmek daha iyidir.\n"
+#~ "\n"
+#~ "Yine de içe aktarılsın mı?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Katı içe aktarıldı — %d üçgen → %d yüz, hacim %.2f mm³. Değiştirmek için bir yüz veya kenar seçin, ardından Yuvarlatma / Kes / Kabuklama kullanın"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — yerleştirmek/boyutlandırmak için sürükleyin, ardından Onayla'ya basın"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d eskiz öğesi"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — bir değer yazın, Enter'a basın (veya Onayla)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Ön izleme — %zu üçgen"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "%1% kısıtlama bu geometriye uygulanamıyor (elips veya spline eğrisi ya da sıfır boyutlu daire) ve yok sayılıyor"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "Yuvarlatma/pah nedeniyle geçersiz hâle gelen %1% kısıtlama kaldırıldı"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "%1% kısıtlama dönüştürme nedeniyle serbest bırakıldı"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...ve %1% açık uç daha"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "Malzeme listesi en fazla %1% rengi destekler. %2% ayrıştırmasından sonra malzeme sayısı %1% sınırını aşacaktır. Lütfen ayrıştırmadan önce ana ekrandaki kullanılmayan filamentleri silin."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%2% filamentten %1% yazdırılabilir renk"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% ada"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "%1% katmanın tümü kullanıldı"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Ön izleme: %1% üçgen"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Model: %1% üçgen - pişirme, bütçesi elverdiğince yukarıdaki çözünürlüğe kadar sıklaştırır"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Pişirme mevcut tepe noktalarını hareket ettirir - model %1% üçgende kalır"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Pişirme sonucu en fazla ~%1% k üçgen"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% katman boyanmadı, atlandı"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Proje en fazla %d filamenti destekler. Fazla filamentler atılacak."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d tepe noktası seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "%d kenar seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "%d ada seçildi | sürükle = birlikte taşı, Shift/Ctrl tıklama = ekle/kaldır, R/S = birincil adayı döndür/ölçekle"
+
+# AI Translated
+# Needs human review: The English names a "Tiling" setting, but the layer settings only have "Tile" (Döşeme) and "Tile size" (Döşeme boyutu); rendered as the tiling options. Check against the texture-displacement layer card.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Etkin katmanın döşeme boyutu: dokunun bir tekrarının modelin ne kadarını kapladığı. Tuval döşemelerle ölçülür; bu nedenle bir ızgara hücresi bir tekrara karşılık gelir. Bunu katmanın ayarlarındaki döşeme seçeneklerinden değiştirin."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d ada, %s yüz"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "\"%s\" eklentisi aşağıdaki dosyaları okumak istiyor:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "\"%s\" eklentisi aşağıdaki dosyaları okumak/yazmak istiyor:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "\"%s\" eklentisi aşağıdaki dosyaları oluşturmak istiyor:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "\"%s\" eklentisi aşağıdaki dosyaları silmek istiyor:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "\"%s\" eklentisi aşağıdaki komutları çalıştırmak istiyor:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Eklenti yüklemesi başarısız oldu"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Microsoft WebView2 Runtime yüklenemedi.\n"
+#~ "Kurulum sihirbazı dahil bazı özellikler, yüklenene kadar boş görünebilir.\n"
+#~ "Lütfen https://developer.microsoft.com/microsoft-edge/webview2/ adresinden elle yükleyin ve Orca Slicer'ı yeniden başlatın."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Neden bu gruplama"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "Yazılım, bir baskı için farklı çaptaki püskürtme uçlarının kullanılmasını desteklemez. Eğer sol ve sağ püskürtme uçları tutarsız ise yalnızca tek kafalı baskıya geçebiliriz. Lütfen bu proje için hangi nozulu kullanmak istediğinizi onaylayın."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Anahtar çapı"
+
+# AI Translated
+#~ msgid "BambuStudio Project"
+#~ msgstr "BambuStudio Projesi"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "3MF, BambuStudio (sürüm %s) ile oluşturulmuş; bu sürüm, uyumlu sürüm %s'ten daha yeni. Tanınmayan ayarlar bulundu:"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "3MF, BambuStudio (sürüm %s) ile oluşturulmuş; bu sürüm, uyumlu sürüm %s'ten daha yeni. Bazı ayarlar tam olarak uyumlu olmayabilir."
+
+# AI Translated
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "3MF, BambuStudio ile oluşturulmuş. Bazı ayarlar OrcaSlicer'dakinden farklı olabilir."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Bir işlem sürerken geri alma veya ileri alma yapılamaz. Önce işlemi durdurun."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Her parçanın iç dolgusunu, tüm montaja göre değil, sanki tek başına dilimlenmiş gibi kendi üzerinde ortalar. Birbirine değen veya çakışan parçalar tek gövde olarak ele alınır ve ortak bir merkezi paylaşır; ayrı parçaların (veya farklı 3D nesnelerin) her biri kendi merkezine sahip olur.\n"
+#~ "Bir montaj, her biri tutarlı ve kendi merkezine göre hizalanmış dolguyu koruması gereken birkaç nesneyi gruplandırdığında yararlıdır.\n"
+#~ "Çizgi ve ızgara desenlerini ve döndürme şablonlu dolguları etkiler.\n"
+#~ "Genel koordinatlara kilitlenmiş desenler (Jiroid, Bal peteği, TPMS, ...) etkilenmez."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Geçerli katmanın dizini. Tek tabanlı (yani ilk katman 1 numaradır)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Öğretici Video"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Şekil"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Boş mesh oluşturuldu"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Kutu"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Hızlı:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Genişlik (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Derinlik (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Yükseklik (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "Alt R"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "Üst R"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "Büyük R"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "Küçük R"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Tüm kenarlar"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Üst kenarlar"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Alt kenarlar"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Yan kenarlar"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Mesh çözünürlüğü"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Şekil ekle"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Dış profil yok"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Dış yüz oluşturulamadı"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Delikli yüz oluşturulamadı"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Döndürme başarısız oldu"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Profil"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Yeni profil başlat (delikler için)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Segmentler"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Kenar sayısı"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Çizmek için tuvale tıklayın"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Izgaraya yasla"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Izgara adımı"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Dış"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "kapalı"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% nokta %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (Üst)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (Ön)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (Yan)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Döndürme açısı"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "Ekstrüzyon için 0, döndürme için >0 girin"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Cep (kes)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu kapalı profil"
+#~ msgstr[1] "%zu kapalı profil"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Etkinleştirmek için kapalı bir profil çizin"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Boş sonuç"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Ekstrüzyon: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Döndürme: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Nesne seçilmedi"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Yüz oluşturulamadı"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Delikli yüz oluşturulamadı"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Araç mesh'i boş"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Cep eklendi (negatif hacim)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Cep: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Etkin katmanın Açınım (LSCM) ile haritalanmış olmasını gerektirir."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Dama - doku yerine bir test ızgarası. Karelerin kare kaldığı yerlerde doku bozulmamıştır; karelerin gerildiği yerlerde doku da gerilecektir"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Bozulma - açınım üzerinde maviden kırmızıya gerilme ısı haritası"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Karıştırma yöntemi"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Yüzey"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Katmanlar: iki filament baskı katmanları arasında dönüşümlü kullanılır; bu, dik yüzeylerde yumuşak bir karışım verir ancak tüm katmanın tek bir şerit olduğu düz bakan yüzeylerde kaybolur.\n"
+#~ "Yüzey: yüzey boyunca ince bir dama deseni; her açıda çalışır ancak karışım yerine doku gibi algılanabilir.\n"
+#~ "Otomatik: dik yüzlerde katmanlar; düz bakan yüzler en yakın tek filamenti alır, çünkü orada dama deseni bir desen olarak görünür."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Ada - adaların tamamını taşı, döndür ve ölçekle"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Tepe noktası - yeniden şekillendirmek için tepe noktalarını sürükleyin; çoklu seçim için Shift/Ctrl"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Kenar - yeniden şekillendirmek için kenarları sürükleyin; çoklu seçim için Shift/Ctrl"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Tüm adaları çerçevele (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Deneysel) Baskı sunucuları yerine yazıcı aracılarını kullan"
@@ -31379,16 +37616,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Bir yüze veya referans düzlemine tıklayın, ardından bir çizim aracı seçin"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -31445,10 +37672,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Dikey mesafe"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Doğrusal"
-
#~ msgid "Face recognition"
#~ msgstr "Yüz tanıma"
@@ -32866,9 +39089,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "%1% çizgi genişliği hesaplanamadı. \"%2%\" değeri alınamıyor "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Flow::with_spacing()'e sağlanan geçersiz boşluk, kat yüksekliğinizi ve ekstrüzyon genişliğinizi kontrol edin"
-
#~ msgid "Continue to sync filaments"
#~ msgstr "Filamentleri senkronize etmeye devam edin"
@@ -33032,9 +39252,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "parça seçimi"
-#~ msgid "°"
-#~ msgstr "°/s"
-
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction mode.\n"
#~ "\n"
diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po
index b688a2a88c..00bdf873b3 100644
--- a/localization/i18n/uk/OrcaSlicer_uk.po
+++ b/localization/i18n/uk/OrcaSlicer_uk.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: orcaslicerua\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2026-07-17 16:25+0300\n"
"Last-Translator: Andrij Mizyk \n"
"Language-Team: Ukrainian\n"
@@ -391,8 +391,10 @@ msgid "Please wait"
msgstr "Будь ласка, зачекайте"
# AI Translated
-msgid "Reading"
-msgstr "Зчитування"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Індукційна стійка хотендів: зчитування %d/%d"
msgid "Running..."
msgstr "Запуск..."
@@ -546,9 +548,14 @@ msgstr "Gizmo - Покласти на грань"
msgid "Lay on Face"
msgstr "Покласти на грань"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Кількість філаменту перевищує максимальну кількість, яку підтримує інструмент малювання. Лише перші %1% філаменту будуть доступні в інструменті малювання."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Кількість філаментів перевищує максимум, який підтримує інструмент малювання. В інструменті малювання буде доступний лише перший %1% філамент."
+msgstr[1] "Кількість філаментів перевищує максимум, який підтримує інструмент малювання. В інструменті малювання будуть доступні лише перші %1% філаменти."
+msgstr[2] "Кількість філаментів перевищує максимум, який підтримує інструмент малювання. В інструменті малювання будуть доступні лише перші %1% філаментів."
+msgstr[3] "Кількість філаментів перевищує максимум, який підтримує інструмент малювання. В інструменті малювання будуть доступні лише перші %1% філаменту."
msgid "Color Painting"
msgstr "Фарбування"
@@ -600,8 +607,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Комбінація клавіш "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Комбінація клавіш %d"
msgid "Triangle"
msgstr "Трикутник"
@@ -693,6 +702,9 @@ msgstr "мм"
msgid "Part selection"
msgstr "Вибір частини"
+msgid "Select multiple objects"
+msgstr "Вибрати кілька обʼєктів"
+
msgid "Fixed step drag"
msgstr "Фіксоване перетягування кроками"
@@ -754,9 +766,79 @@ msgstr "Частина"
msgid "Relative"
msgstr "Відносно"
+msgid "Selection"
+msgstr "Вибір"
+
+msgid "Plate"
+msgstr "Пластина"
+
+msgid "Distribute"
+msgstr ""
+
msgid "Coordinate system used for transform actions."
msgstr "Система координат для дій перетворення."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Вирівняти за лівим краєм"
+
+# AI Translated
+# Needs human review: Align/Distribute menu (object right-click): left-right/front-back/top-bottom are rendered as за шириною/глибиною/висотою (the menu appends X/Y/Z); check it reads as aligning the objects' centers along that axis.
+msgid "Align left-right center"
+msgstr "Вирівняти центри за шириною"
+
+# AI Translated
+msgid "Align right"
+msgstr "Вирівняти за правим краєм"
+
+# AI Translated
+msgid "Align front"
+msgstr "Вирівняти за переднім краєм"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Вирівняти центри за глибиною"
+
+# AI Translated
+msgid "Align back"
+msgstr "Вирівняти за заднім краєм"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Вирівняти за нижнім краєм"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Вирівняти центри за висотою"
+
+# AI Translated
+msgid "Align top"
+msgstr "Вирівняти за верхнім краєм"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Розподілити за шириною"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Розподілити за глибиною"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Розподілити за висотою"
+
+msgid "Drop"
+msgstr "Кинути"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
msgid "Absolute"
msgstr "Абсолютно"
@@ -858,9 +940,6 @@ msgstr "Кут жолоба"
msgid "Cut position"
msgstr "Положення зрізу"
-msgid "Build Volume"
-msgstr "Робочий обʼєм"
-
msgid "Multiple"
msgstr "Кілька"
@@ -1034,15 +1113,32 @@ msgstr "Площина зрізу з пазом невірна"
msgid "Connector"
msgstr "Зʼєднання"
+# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
-"Обʼєкти(%1%) мають дубльовані зʼєднання. Деякі зʼєднання можуть бути упущені в результаті нарізання.\n"
-"Будь ласка, повідомте команду OrcaSlicer за якого сценарію це сталося.\n"
-"Дякую."
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"Обʼєкт (%1%) має дубльовані зʼєднання. Деякі зʼєднання можуть бути відсутні в результаті нарізання.\n"
+"Будь ласка, повідомте команду OrcaSlicer, за якого сценарію це сталося.\n"
+"Дякуємо."
+msgstr[1] ""
+"Обʼєкти (%1%) мають дубльовані зʼєднання. Деякі зʼєднання можуть бути відсутні в результаті нарізання.\n"
+"Будь ласка, повідомте команду OrcaSlicer, за якого сценарію це сталося.\n"
+"Дякуємо."
+msgstr[2] ""
+"Обʼєкти (%1%) мають дубльовані зʼєднання. Деякі зʼєднання можуть бути відсутні в результаті нарізання.\n"
+"Будь ласка, повідомте команду OrcaSlicer, за якого сценарію це сталося.\n"
+"Дякуємо."
+msgstr[3] ""
+"Обʼєкти (%1%) мають дубльовані зʼєднання. Деякі зʼєднання можуть бути відсутні в результаті нарізання.\n"
+"Будь ласка, повідомте команду OrcaSlicer, за якого сценарію це сталося.\n"
+"Дякуємо."
msgid "Cut by Plane"
msgstr "Вирізати площиною"
@@ -1106,9 +1202,14 @@ msgstr "Низький"
msgid "Extra low"
msgstr "Наднизький"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d трикутники"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% трикутник"
+msgstr[1] "%1% трикутники"
+msgstr[2] "%1% трикутників"
+msgstr[3] "%1% трикутника"
msgid "Show wireframe"
msgstr "Показати каркас"
@@ -1119,6 +1220,17 @@ msgstr "Не можна застосовувати під час поперед
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Операція вже скасовується. Зачекайте кілька секунд."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "Спрощення моделі скасовано"
+
+msgid "Wiki Guide"
+msgstr "Вікі-підручник"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Відеопосібник"
+
msgid "Enforce seam"
msgstr "Примусовий шов"
@@ -1169,6 +1281,14 @@ msgstr "Росташування на поверхні"
msgid "Emboss"
msgstr "Рельєфне тиснення"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "У стилі немає активного шрифту. Виберіть правильний."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont завантажено неправильно."
+
msgid "NORMAL"
msgstr "ЗВИЧАЙНИЙ"
@@ -1819,11 +1939,25 @@ msgstr "Діаметр"
msgid "Length"
msgstr "Довжина"
-msgid "Selection"
-msgstr "Вибір"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Грань 1 (нерухома)"
-msgid " (Moving)"
-msgstr " (Переміщення)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Грань 2 (рухома)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Точка 1 (нерухома)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Точка 2 (рухома)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Вибір 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1839,14 +1973,9 @@ msgstr ""
"Виберіть 2 точки або кола на об’єктах та \n"
" вкажіть відстань між ними."
-msgid "Face"
-msgstr "Грань"
-
-msgid " (Fixed)"
-msgstr " (Фіксований)"
-
-msgid "Point"
-msgstr "Точка"
+# AI Translated
+msgid "Selection 2"
+msgstr "Вибір 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1944,6 +2073,18 @@ msgstr "Вхід у gizmo-збирання"
msgid "Leaving Assembly gizmo"
msgstr "Вихід з gizmo-збирання"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2119,14 +2260,15 @@ msgid "WebView2 Runtime"
msgstr "Виконання WebView2"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Не вдалося встановити Microsoft WebView2 Runtime.\n"
"Деякі функції, зокрема майстер налаштування, можуть відображатися порожніми, доки його не буде встановлено.\n"
-"Встановіть його вручну зі сторінки https://developer.microsoft.com/microsoft-edge/webview2/ і перезапустіть Orca Slicer."
+"Встановіть його вручну зі сторінки %1% і перезапустіть Orca Slicer."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2356,6 +2498,66 @@ msgstr "Розширення мережевого плагіну"
msgid "Privacy Policy Update"
msgstr "Оновлення політики конфіденційності"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Усі ваші пресети філаменту доступні на принтерах, для яких вони були створені."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Переміщення пресетів філаменту"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 змінив структуру багатьох системних пресетів філаменту, щоб виправити некоректні профілі та підготуватися до майбутніх функцій. Через це наведені нижче пресети більше не відображаються на деяких принтерах, для яких вони були створені. Вибачте за незручності: це одноразове виправлення.\n"
+"\n"
+"Додати ці принтери назад до ваших пресетів зараз? Спочатку буде створено резервну копію ваших пресетів. Це також можна зробити пізніше через Допомога > Переміщення пресетів філаменту."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (на основі %2%)"
+
+msgid "Don't remind me again"
+msgstr "Не нагадувати мені більше"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Не вдалося створити резервну копію ваших пресетів, тому їх не було переміщено."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Не вдалося заблокувати теку пресетів користувача, тому нічого не було переміщено. Можливо, інший екземпляр OrcaSlicer зберігає пресети; спробуйте ще раз пізніше через Допомога > Переміщення пресетів філаменту."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Не вдалося перемістити ваші пресети філаменту. Резервну копію ваших пресетів збережено в:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Ваші пресети філаменту переміщено. Виберіть їх знову у списку філаментів там, де ви їх використовували.\n"
+"\n"
+"Резервну копію ваших пресетів збережено в:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Не вдалося перемістити ці пресети:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "ваш профіль Orca Cloud (ІД користувача: \"%s\")"
@@ -2473,6 +2675,9 @@ msgstr "Плагіни оновлено."
msgid "Failed to refresh plugins: %s"
msgstr "Не вдалося оновити плагіни: %s"
+msgid "Unknown error"
+msgstr "Невідома помилка"
+
# AI Translated
msgid "Select plugin package"
msgstr "Виберіть пакет плагіна"
@@ -2997,6 +3202,22 @@ msgstr "Перезавантажити все"
msgid "Reload all from disk"
msgstr "Перезавантажити все з диска"
+# AI Translated
+msgid "Fix All"
+msgstr "Виправити все"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Виправити всі моделі на поточній пластині"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Виправити всі пластини"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Виправити всі моделі на всіх пластинах"
+
msgid "Auto Rotate"
msgstr "Авто-поворот"
@@ -3048,8 +3269,13 @@ msgstr "(Втрачений колір)"
msgid "Center"
msgstr "Центр"
-msgid "Drop"
-msgstr "Кинути"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Вирівняти/Розподілити"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Вирівняти та розподілити обʼєкти"
msgid "Edit Process Settings"
msgstr "Змінити налаштування процесу"
@@ -3341,6 +3567,15 @@ msgstr[1] "Не вдалося відремонтувати такі части
msgstr[2] "Не вдалося відремонтувати таких частин моделі"
msgstr[3] "Не вдалося відремонтувати такі частини моделі"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d обʼєкт моделі не потребував виправлення."
+msgstr[1] "%1$d обʼєкти моделі не потребували виправлення."
+msgstr[2] "%1$d обʼєктів моделі не потребувало виправлення."
+msgstr[3] "%1$d обʼєкта моделі не потребувало виправлення."
+
msgid "Repairing was canceled"
msgstr "Ремонт було скасовано"
@@ -3413,9 +3648,6 @@ msgstr "Без кайми"
msgid "Outer wall speed"
msgstr "Швидкість зовнішньої стінки"
-msgid "Plate"
-msgstr "Пластина"
-
msgid "Brim"
msgstr "Кайма"
@@ -3498,9 +3730,6 @@ msgstr "Додати власний шаблон"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Вставте власний G-code шаблону на початку цього шару."
-msgid "Filament "
-msgstr "Філамент "
-
msgid "Change filament at the beginning of this layer."
msgstr "Замінити філамент на початку цього шару."
@@ -3590,6 +3819,8 @@ msgstr "Змінити все одно"
msgid "Off"
msgstr "Вимк."
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "Фільтр"
@@ -3710,11 +3941,20 @@ msgstr "Підтвердити витіснення"
msgid "Check filament location"
msgstr "Перевірити розташування філаменту"
-msgid "Switch"
-msgstr "Перемкнутий"
+# AI Translated
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Призупинити"
-msgid "hotend"
-msgstr "хотенд"
+# AI Translated
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Перемикання екструдера"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Перемикання хотенда"
msgid "Wait for AMS cooling"
msgstr "Зачекати на охолодження AMS"
@@ -3887,8 +4127,10 @@ msgid "Arranging"
msgstr "Організація"
# AI Translated
-msgid "Arranging "
-msgstr "Впорядкування "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Впорядкування %1%"
msgid "Arranging canceled."
msgstr "Організацію скасовано."
@@ -3927,8 +4169,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Орієнтування..."
-msgid "Orienting"
-msgstr "Орієнтація"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Орієнтування %1%"
msgid "Orienting canceled."
msgstr "Орієнтування скасоване."
@@ -3936,6 +4181,12 @@ msgstr "Орієнтування скасоване."
msgid "Filling"
msgstr "Заповнення"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Заповнення %1%"
+
msgid "Bed filling canceled."
msgstr "Заповнення ліжка скасоване."
@@ -3951,6 +4202,34 @@ msgstr "Пошук орієнтації скасовано."
msgid "Orientation found."
msgstr "Орієнтація знайдена."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Найкраща якість поверхні"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Оптимізувати обертання обʼєкта для найкращої якості поверхні."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Зменшені нахили нависань"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Оптимізувати обертання обʼєкта, щоб мінімізувати кількість нависань, які потребують підтримок.\n"
+"Зауважте, що якщо висоту підйому не задано, цей метод спробує знайти найкращу поверхню обʼєкта для контакту зі столом."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Найменша висота по Z"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Повернути модель так, щоб висота по Z була найменшою, для швидшого друку."
+
msgid "Logging in"
msgstr "Вхід до системи"
@@ -4248,6 +4527,16 @@ msgstr "Останні проєкти"
msgid "Go to Plate"
msgstr "Перейти до пластини"
+msgid "Device"
+msgstr "Пристрій"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Пристрій (Веб)"
+
+msgid "Multi-device"
+msgstr "Багато пристроїв"
+
msgid "AMS Materials Setting"
msgstr "Налаштування матеріалів AMS"
@@ -4274,9 +4563,6 @@ msgstr "Вхідне значення має бути більше %1% і мен
msgid "Factors of Flow Dynamics Calibration"
msgstr "Фактори Калібрування динамічного потоку"
-msgid "Wiki Guide"
-msgstr "Вікі-підручник"
-
msgid "PA Profile"
msgstr "Профіль PA"
@@ -4306,6 +4592,14 @@ msgstr "Будь ласка введіть коректне значення (K
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Будь ласка введіть коректне значення (K в %.1f~%.1f, N в %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Обрані філаменти"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Усі філаменти"
+
# AI Translated
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
@@ -4368,7 +4662,7 @@ msgstr "Зберегти"
msgctxt "Navigation"
msgid "Back"
-msgstr "Ззаду"
+msgstr "Назад"
msgid "Example"
msgstr "Приклад"
@@ -4646,11 +4940,11 @@ msgstr "Мережевий плагін встановлено, але не вд
msgid "Restart Required"
msgstr "Потрібен перезапуск"
-msgid "Please home all axes (click "
-msgstr "Поверніть всі осі у вихідне положення (натисніть "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") для визначення положення друкованої голови. Це передбачає переміщення за межі області друку та розмір обладнання."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Виконайте паркування всіх осей (натисніть %1%), щоб визначити положення головки. Це запобігає виходу пристрою за межі області друку та зносу обладнання."
msgid "Go Home"
msgstr "На головну"
@@ -4666,6 +4960,10 @@ msgstr "Відбулася фатальна помилка: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Збережіть проект і перезапустіть програму."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Невідомий виняток C++."
+
msgid "Processing G-Code from previous file…"
msgstr "Обробка G-code з попереднього файлу..."
@@ -4889,6 +5187,14 @@ msgstr "Автоматично налаштувати до межі (%g мм)?"
msgid "Adjust"
msgstr "Налаштувати"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Підкладка та захисний екран недоступні на стрічкових принтерах.\n"
+"Їх було вимкнено."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -5743,9 +6049,6 @@ msgstr "Автоматично повторно нарізати відпові
msgid "Filament Grouping"
msgstr "Групування філаменту"
-msgid "Why this grouping"
-msgstr "Чому це згруповано"
-
# AI Translated
msgid "Please place filaments on the printer based on grouping result."
msgstr "Розмістіть філаменти на принтері відповідно до результату групування."
@@ -5758,33 +6061,57 @@ msgstr "Поточне групування результату нарізан
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Збільшує витрату філаменту на %1%г та кількість змін на %2% порівняно з оптимальним групуванням."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Збільшує витрату філаменту на %1%г і додає %2% зміну порівняно з оптимальним групуванням."
+msgstr[1] "Збільшує витрату філаменту на %1%г і додає %2% зміни порівняно з оптимальним групуванням."
+msgstr[2] "Збільшує витрату філаменту на %1%г і додає %2% змін порівняно з оптимальним групуванням."
+msgstr[3] "Збільшує витрату філаменту на %1%г і додає %2% зміни порівняно з оптимальним групуванням."
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Збільшує витрату філаменту на %1%г та економить %2% змін порівняно з оптимальним групуванням."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Збільшує витрату філаменту на %1%г, але економить %2% зміну порівняно з оптимальним групуванням."
+msgstr[1] "Збільшує витрату філаменту на %1%г, але економить %2% зміни порівняно з оптимальним групуванням."
+msgstr[2] "Збільшує витрату філаменту на %1%г, але економить %2% змін порівняно з оптимальним групуванням."
+msgstr[3] "Збільшує витрату філаменту на %1%г, але економить %2% зміни порівняно з оптимальним групуванням."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Економить %1%г філаменту та збільшує кількість змін на %2% порівняно з оптимальним групуванням."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Економить %1%г філаменту, але додає %2% зміну порівняно з оптимальним групуванням."
+msgstr[1] "Економить %1%г філаменту, але додає %2% зміни порівняно з оптимальним групуванням."
+msgstr[2] "Економить %1%г філаменту, але додає %2% змін порівняно з оптимальним групуванням."
+msgstr[3] "Економить %1%г філаменту, але додає %2% зміни порівняно з оптимальним групуванням."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Економить %1%г філаменту та %2% змін порівняно з принтером з одним соплом."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Економить %1%г філаменту та %2% зміну порівняно з принтером з одним соплом."
+msgstr[1] "Економить %1%г філаменту та %2% зміни порівняно з принтером з одним соплом."
+msgstr[2] "Економить %1%г філаменту та %2% змін порівняно з принтером з одним соплом."
+msgstr[3] "Економить %1%г філаменту та %2% зміни порівняно з принтером з одним соплом."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Економить %1%г філаменту та збільшує кількість змін на %2% порівняно з принтером з одним соплом."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Економить %1%г філаменту, але додає %2% зміну порівняно з принтером з одним соплом."
+msgstr[1] "Економить %1%г філаменту, але додає %2% зміни порівняно з принтером з одним соплом."
+msgstr[2] "Економить %1%г філаменту, але додає %2% змін порівняно з принтером з одним соплом."
+msgstr[3] "Економить %1%г філаменту, але додає %2% зміни порівняно з принтером з одним соплом."
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Збільшує витрату філаменту на %1%г та економить %2% змін порівняно з принтером з одним соплом."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Збільшує витрату філаменту на %1%г, але економить %2% зміну порівняно з принтером з одним соплом."
+msgstr[1] "Збільшує витрату філаменту на %1%г, але економить %2% зміни порівняно з принтером з одним соплом."
+msgstr[2] "Збільшує витрату філаменту на %1%г, але економить %2% змін порівняно з принтером з одним соплом."
+msgstr[3] "Збільшує витрату філаменту на %1%г, але економить %2% зміни порівняно з принтером з одним соплом."
msgid "Set to Optimal"
msgstr "Встановити до оптимального"
@@ -5942,11 +6269,60 @@ msgstr "Збільшення/зменшення області редагува
msgid "Sequence"
msgstr "Послідовність"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Центр мас пластини"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Центр мас частини"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Центр мас підтримок"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Центр мас збірки"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Центр мас обʼєкта"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Завершений друк"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Надруковано до шару %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Вага"
+
+msgid "Volume"
+msgstr "Обʼєм"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Центр в обмежувальній рамці"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Розмір обмежувальної рамки"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Момент інерції"
+
msgid "Object selection"
msgstr "Вибір обʼєкта"
-msgid "number keys"
-msgstr "клавіші з числами"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "Цифрові клавіші 1~16"
msgid "Number keys can quickly change the color of objects"
msgstr "Клавіші з числами можуть швидко змінювати колір обʼєктів"
@@ -6156,9 +6532,20 @@ msgstr "Осі"
msgid "Gridlines"
msgstr "Лінії сітки"
+msgid "Focus mode"
+msgstr ""
+
msgid "Labels"
msgstr "Підписи"
+# AI Translated
+msgid "Center of mass"
+msgstr "Центр мас"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Показати необроблений G-code (лише стрічкові принтери)"
+
# AI Translated
msgid "Move section plane"
msgstr "Перемістити площину розрізу"
@@ -6209,7 +6596,7 @@ msgid "Size:"
msgstr "Розмір:"
# AI Translated
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Виявлено конфлікти шляхів G-code на шарі %d, Z = %.2lf мм. Будь ласка, рознесіть конфліктуючі обʼєкти далі один від одного (%s <-> %s)."
@@ -6232,22 +6619,20 @@ msgstr "Інструмент %d"
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Філамент %s розміщено в %s, але згенерований шлях G-code виходить за межі області друку %s."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Філаменти %s розміщено в %s, але згенерований шлях G-code виходить за межі області друку %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "Філамент %s розміщено в %s, але згенерований шлях G-code виходить за межі області друку %s."
+msgstr[1] "Філаменти %s розміщено в %s, але згенерований шлях G-code виходить за межі області друку %s."
+msgstr[2] "Філаменти %s розміщено в %s, але згенерований шлях G-code виходить за межі області друку %s."
+msgstr[3] "Філаменти %s розміщено в %s, але згенерований шлях G-code виходить за межі області друку %s."
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Філамент %s розміщено в %s, але згенерований шлях G-code перевищує друковану висоту %s."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Філаменти %s розміщено в %s, але згенерований шлях G-code перевищує друковану висоту %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "Філамент %s розміщено в %s, але згенерований шлях G-code перевищує друковану висоту %s."
+msgstr[1] "Філаменти %s розміщено в %s, але згенерований шлях G-code перевищує друковану висоту %s."
+msgstr[2] "Філаменти %s розміщено в %s, але згенерований шлях G-code перевищує друковану висоту %s."
+msgstr[3] "Філаменти %s розміщено в %s, але згенерований шлях G-code перевищує друковану висоту %s."
msgid "Open wiki for more information."
msgstr "Відкрити вікі для детальнішої інформації."
@@ -6255,9 +6640,14 @@ msgstr "Відкрити вікі для детальнішої інформац
msgid "Only the object being edited is visible."
msgstr "Відображається лише редагований обʼєкт."
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Філаменти %s не можуть бути надруковані безпосередньо на поверхні пластини."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "Філамент %s не може бути надрукований безпосередньо на поверхні цієї пластини."
+msgstr[1] "Філаменти %s не можуть бути надруковані безпосередньо на поверхні цієї пластини."
+msgstr[2] "Філаменти %s не можуть бути надруковані безпосередньо на поверхні цієї пластини."
+msgstr[3] "Філаменти %s не можуть бути надруковані безпосередньо на поверхні цієї пластини."
# AI Translated
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
@@ -6387,27 +6777,20 @@ msgstr "Підготовка"
msgid "Preview"
msgstr "Перегляд"
-msgid "Device"
-msgstr "Пристрій"
-
-msgid "Multi-device"
-msgstr "Багато пристроїв"
-
msgid "Project"
msgstr "Проєкт"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Пристрій (Веб)"
-
msgid "Yes"
msgstr "Так"
msgid "No"
msgstr "Ні"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "буде закрито перед створенням нової моделі. Ви хочете продовжити?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s буде закрито перед створенням нової моделі. Ви хочете продовжити?"
msgid "Print all"
msgstr "Друкувати все"
@@ -6452,6 +6835,10 @@ msgstr "Майстер налаштувань"
msgid "Show Configuration Folder"
msgstr "Показати папку конфігурації"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Повернути пресети філаменту, які оновлення профілів прибрало з принтерів, для яких вони були створені"
+
msgid "Troubleshoot Center"
msgstr "Центр вирішення проблем"
@@ -6690,6 +7077,14 @@ msgstr "Показати лінії сітки"
msgid "Show Gridlines on plate"
msgstr "Показати лінії сітки на пластині"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Показати головку IDEX/IQEX"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Показувати зображення головки IDEX/IQEX навколо кожного активного сопла в перегляді G-code."
+
msgid "Reset Window Layout"
msgstr "Скинути розташування вікон"
@@ -7330,6 +7725,8 @@ msgstr "Оцінити"
msgid "Calculating..."
msgstr "Розрахунок..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Камера"
@@ -7410,9 +7807,14 @@ msgstr "Завантаження..."
msgid "Cloud Slicing..."
msgstr "Поділ хмари..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "У черзі Cloud Slicing Queue попереду %s завдань."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "У черзі Cloud Slicing Queue перед вами %d завдання."
+msgstr[1] "У черзі Cloud Slicing Queue перед вами %d завдання."
+msgstr[2] "У черзі Cloud Slicing Queue перед вами %d завдань."
+msgstr[3] "У черзі Cloud Slicing Queue перед вами %d завдання."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7445,6 +7847,11 @@ msgstr "Це діє лише під час друку"
msgid "Silent"
msgstr "Тихий"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Стандартний"
+
msgid "Sport"
msgstr "Спортивний"
@@ -7500,17 +7907,29 @@ msgstr "Завантажити фотографії"
msgid "Number of images successfully uploaded"
msgstr "Кількість успішно завантажених зображень"
-msgid " upload failed"
-msgstr " Помилка завантаження"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Не вдалося вивантажити %s"
-msgid " upload config prase failed\n"
-msgstr " Помилка при спробі завантажити конфігураційний файл\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Не вдалося розібрати конфігурацію вивантаження %s"
-msgid " No corresponding storage bucket\n"
-msgstr " Відсутній відповідний сховищний контейнер\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: відсутній відповідний контейнер сховища"
-msgid " cannot be opened\n"
-msgstr " Не може бути відкрито\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "Не вдається відкрити %s"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7528,26 +7947,22 @@ msgstr "Помилка завантаження\n"
msgid "Obtaining instance_id failed\n"
msgstr "помилка отримання instance_id\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Ваш коментар не може бути завантажений з якихось причин. Ось деталі помилки:\n"
-"\n"
-" код помилки: "
-
-msgid "error message: "
-msgstr "текст помилки: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Не вдалося вивантажити ваш відгук з таких причин:\n"
"\n"
+" код помилки: %d\n"
+" повідомлення про помилку: %s\n"
"\n"
-"Чи бажаєте ви перейти на веб-сторінку для оцінки?"
+"Перейти на вебсторінку, щоб поставити оцінку?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Деякі з ваших зображень не вдалося завантажити. Бажаєте перейти на веб-сторінку для оцінки?"
@@ -8408,6 +8823,108 @@ msgstr "Переглянути всі налаштування обʼєкта"
msgid "Material settings"
msgstr "Налаштування матеріалу"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Кожен режим визначає, які головки беруть у ньому участь і яку роль виконує кожна з них. Натисніть кнопку інструмента, щоб змінити його роль по колу, — наведіть курсор на колір нижче, щоб побачити, що робить кожна роль."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Додати режим"
+
+# AI Translated
+msgid "Tools"
+msgstr "Інструменти"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Назва режиму в перемикачі режимів IDEX/IQEX пластини. Обовʼязкове поле — режим без назви неможливо вибрати."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Які головки беруть участь у режимі та яку роль виконує кожна з них. Натисніть плитку, щоб змінити її роль по колу."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code, що виконується на початку друку, щоб перевести принтер у цей режим (наприклад, виклик SET_PRINT_MODE у Klipper). Слайсер генерує лише траєкторії основного інструмента (Primary); рештою керує прошивка."
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Неактивний"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Основний"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Копія"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Дзеркало"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Виконує всі нарізані траєкторії. Завжди інструмент 0 — щоб вибрати, який кут столу він займає, використайте «Положення інструмента 0» вище. Його не можна перемістити із сітки."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Повторює рухи основного інструмента (Primary) на рівні прошивки, друкуючи ті самі траєкторії зі зміщенням у власну зону."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Повторює рухи основного інструмента (Primary) на рівні прошивки, друкуючи ті самі траєкторії, віддзеркалені відносно межі між двома зонами."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Позначає інструмент на порталі основного інструмента (Primary) як його партнера для багатокольорового друку. Потрібно, щоб дозволити багатокольоровий друк у режимах зі спареними порталами."
+
+# AI Translated
+msgid "Primary"
+msgstr "Основний"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Назва режиму (обовʼязково)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Назва цього паралельного режиму, як вона відображається в перемикачі режимів IDEX/IQEX пластини. Режим зберігається в проєкті за назвою, тому після перейменування режиму, який уже використовують пластини, вони повертаються до режиму «Основний». Не може бути порожньою — порожню назву буде замінено згенерованою."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code, що виводиться один раз на початку друку в цьому режимі, перед стартовим G-code. Тут принтер переводиться у відповідний режим прошивки — наприклад, викликом SET_PRINT_MODE у Klipper або M567 у RepRapFirmware, — оскільки слайсер генерує лише траєкторії основного інструмента (Primary), а інструментами копії (Copy) і дзеркала (Mirror) керує прошивка. Підтримуються заповнювачі; щоб переглянути їх, скористайтеся кнопкою редагування. Залиште порожнім, якщо режим не потребує налаштування прошивки."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Редагувати G-code / переглянути заповнювачі"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Вилучити режим"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Скасувати зміни цього режиму в поточному сеансі (повернути збережене значення)"
+
msgid "Remove current plate (if not last one)"
msgstr "Вилучити поточну пластину (якщо вона не остання)"
@@ -8432,12 +8949,33 @@ msgstr "Змінити назву поточної пластини"
msgid "Move plate to the front"
msgstr "Перемістити пластину на перед"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "Режим IDEX/IQEX: %1% (пресет процесу: %2%) (ліва кнопка миші — перемкнути, права — меню)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "Режим IDEX/IQEX: %1% (ліва кнопка миші — перемкнути, права — меню)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Попередження: ця пластина використовує паралельний режим IDEX/IQEX з багатоматеріальними обʼєктами. Дійте обережно — переконайтеся, що ваш G-code правильно обробляє таке поєднання."
+
msgid "Customize current plate"
msgstr "Пристосувати поточну пластину"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "Сопло %s не може друкувати %s."
+msgid "The left nozzle cannot print %s."
+msgstr "Ліве сопло не може друкувати %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "Праве сопло не може друкувати %s."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8447,12 +8985,20 @@ msgstr "Друк філаменту змішаного кольору на пр
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Змішування %1% з %2% в друці не рекомендується.\n"
-msgid " nozzle"
-msgstr " сопло"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Не рекомендується друкувати наступні філаменти з %1%: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "Сопло %1% мм (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Не рекомендується друкувати такий філамент з %1%: %2%\n"
+msgstr[1] "Не рекомендується друкувати такі філаменти з %1%: %2%\n"
+msgstr[2] "Не рекомендується друкувати такі філаменти з %1%: %2%\n"
+msgstr[3] "Не рекомендується друкувати такі філаменти з %1%: %2%\n"
# AI Translated
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
@@ -8462,9 +9008,11 @@ msgstr "Не рекомендується використовувати так
msgid "%1% with %2%\n"
msgstr "%1% з %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " пластина %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Нарізання пластини %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Неприпустима назва, такі символи не дозволені:"
@@ -8499,13 +9047,6 @@ msgstr "AMS(1 слот)"
msgid "Not installed"
msgstr "Не встановлено"
-# AI Translated
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "Програма не підтримує використання сопел різного діаметра в одному друці. Якщо ліве та праве сопла відрізняються, ми можемо продовжити лише друк однією головкою. Підтвердьте, яке сопло ви хочете використати для цього проєкту."
-
-msgid "Switch diameter"
-msgstr "Змінити діаметр"
-
msgid "Configuration incompatible"
msgstr "Несумісність конфігурації"
@@ -8588,6 +9129,10 @@ msgstr "Змішаний філамент"
msgid "Remove last mixed filament"
msgstr "Вилучити останній змішаний філамент"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Вилучити всі змішані філаменти"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Додати змішаний філамент"
@@ -8610,6 +9155,15 @@ msgstr "У змішаного філаменту пошкоджені посил
msgid "Edit / Delete / Merge"
msgstr "Редагувати / Видалити / Обʼєднати"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Вилучити %1% змішаний філамент?"
+msgstr[1] "Вилучити всі %1% змішані філаменти?"
+msgstr[2] "Вилучити всі %1% змішаних філаментів?"
+msgstr[3] "Вилучити всі %1% змішаного філаменту?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Цільовий змішаний філамент використовує цей фізичний філамент як компонент. Обʼєднання вилучить цей фізичний філамент і може зробити змішаний філамент недійсним. Продовжити?"
@@ -8675,6 +9229,7 @@ msgid "Enabling traditional timelapse photography may cause surface imperfection
msgstr "Включення традиційної фотографії таймлапсу може призвести до дефектів на поверхні. Рекомендується перейти в режим згладжування."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Smooth mode for timelapse is enabled, but the prime tower is off, which may cause print defects. Please enable the prime tower, re-slice and print again."
msgstr "Увімкнено плавний режим таймлапсу, але підготовчу вежу вимкнено, що може спричинити дефекти друку. Увімкніть підготовчу вежу, повторно наріжте та надрукуйте ще раз."
@@ -8691,9 +9246,6 @@ msgstr "Завантаження файлу: %s"
msgid "Load 3MF"
msgstr "Завантажити 3MF"
-msgid "BambuStudio Project"
-msgstr "Проєкт BambuStudio"
-
# AI Translated
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "Цей 3MF не підтримується OrcaSlicer, завантажуються лише дані геометрії."
@@ -8731,20 +9283,6 @@ msgstr "Вам краще оновити програмне забезпечен
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "Версія файлу 3MF %s новіша, ніж версія %s %s, радимо оновити програмне забезпечення."
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "Файл 3MF створено в BambuStudio (версія %s), новішій за сумісну версію %s. Знайдено нерозпізнані налаштування:"
-
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "Файл 3MF створено в BambuStudio (версія %s), новішій за сумісну версію %s. Деякі налаштування можуть бути не повністю сумісними."
-
-# AI Translated
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "Файл 3MF створено в BambuStudio. Деякі налаштування можуть відрізнятися від OrcaSlicer."
-
msgid "Invalid values found in the 3MF:"
msgstr "У 3MF знайдено неприпустимі значення:"
@@ -8916,6 +9454,15 @@ msgstr "Вимкнути авто-кидання, щоб зберегти роз
msgid "Object with floating parts was detected"
msgstr "Виявлено обʼєкт з плаваючими частинами"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Неможливо нарізати: обʼєкт перекриває область, зарезервовану для паралельного друку IDEX/IQEX (вторинну зону або смугу зазору каретки всередині основної зони)."
+
+# AI Translated
+# Needs human review: Glossary cell for Prime tower is unsettled (⚠); used the catalog's existing 'підготовча вежа'.
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Неможливо нарізати: підготовча вежа перекриває область, зарезервовану для паралельного друку IDEX/IQEX (вторинну зону або смугу зазору каретки всередині основної зони)."
+
msgid "Another export job is running."
msgstr "Виконується інше завдання експорту."
@@ -8968,8 +9515,9 @@ msgstr "Замінені обʼєми"
msgid "Please select a file"
msgstr "Будь ласка, виберіть файл"
-msgid "Do you want to replace it"
-msgstr "Ви хочете замінити його"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Ви хочете замінити його?"
msgid "Message"
msgstr "Повідомлення"
@@ -8998,6 +9546,50 @@ msgstr "Неправильні дані"
msgid "Slicing Canceled"
msgstr "Нарізка скасована"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Конфлікт температури столу: T%d (%s) встановлює для столу %d℃ — T%d (%s) потребує %d℃. Столом керує основний інструмент; вторинні інструменти друкують за температурою, яку він встановлює."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Невідповідність типів філаменту: T%d використовує %s, а T%d — %s. Ці матеріали мають несумісні вимоги й не призначені для спільного друку."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"На пластині %d активний паралельний режим IDEX/IQEX з такими зауваженнями:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Продовжити нарізку?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Попередження паралельного режиму IDEX/IQEX"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Більше не показувати ці попередження"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Пластина %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Виявлено такі зауваження щодо паралельного режиму IDEX/IQEX:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "Мережевий плагін змінено успішно."
@@ -9032,8 +9624,8 @@ msgid "Sync now"
msgstr "Синхронізувати зараз"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Неможливо скасувати чи повторити дію, поки виконується операція. Спершу зупиніть її."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Неможливо скасувати чи повторити дію, поки виконується операція. Зупиніть операцію або дочекайтеся її завершення й повторіть спробу."
# AI Translated
msgid ""
@@ -9105,6 +9697,14 @@ msgstr "Завантаження не вдалося через виняток
msgid "Project downloaded %d%%"
msgstr "Проект завантажено %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"Тести «PA лінія» та «PA Патерн» поки що недоступні на стрічкових принтерах.\n"
+"Використовуйте натомість метод «Вежа PA»."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Тест Pressure Advance"
@@ -9113,11 +9713,14 @@ msgid "INFO:"
msgstr "ІНФО:"
# AI Translated
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Для калібрування не вказано прискорень. Використовується типове значення прискорення "
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Для калібрування не вказано прискорень. Використовується типове значення прискорення %1% мм/с²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Не вказано швидкості для калібрування. Використовувати типову оптимальну швидкість "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Для калібрування не вказано швидкостей. Використовується типова оптимальна швидкість %1% мм/с"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9132,6 +9735,15 @@ msgstr "Калібрування потоку Orca YOLO"
msgid "Flowrate Test - Pass%d"
msgstr "Тест потоку - Прохід %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Для діапазону від %1% до %2%℃ немає температурної вежі для стрічкових принтерів. Використайте діапазон, який охоплюють моделі веж, наприклад від 230 до 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Температурна вежа"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Тест температури сопла"
@@ -9157,12 +9769,16 @@ msgstr "Тест проходження кутів"
msgid "Import SLA archive"
msgstr "Імпорт SLА-архіву"
-msgid "The selected file"
-msgstr "Вибраний файл"
-
# AI Translated
-msgid "Does not contain valid G-code."
-msgstr "Не містить дійсного G-code."
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"Вибраний файл:\n"
+"%1%\n"
+"не містить коректного G-code."
msgid "An Error has occurred while loading the G-code file."
msgstr "Помилка під час завантаження файлу G-code"
@@ -9441,6 +10057,27 @@ msgstr "Наразі форму конфігурації обʼєкта не м
msgid "Not available"
msgstr "Недоступно"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (немає пластини)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — філамент не призначено\n"
+"Додайте екструдер на вкладці «Машина», щоб ця головка мала слот для філаменту."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> філамент %2%"
+
msgid "isometric"
msgstr "ізометрично"
@@ -9480,6 +10117,8 @@ msgstr "Європа"
msgid "North America"
msgstr "Північна Америка"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "Інші"
@@ -9557,11 +10196,17 @@ msgstr "Не вдалося перезавантажити мережевий п
msgid "Reload Failed"
msgstr "Не вдалося перезавантажити"
-msgid "Associate"
-msgstr "Ассоціювати"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Асоціювати %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "з OrcaSlicer так що Orca могла відкривати моделі з"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Асоціювати %s:// з OrcaSlicer, щоб Orca могла відкривати моделі з %s"
msgid "Current Association: "
msgstr "Поточна асоціація: "
@@ -9644,8 +10289,9 @@ msgstr "Поведінка завантаження"
msgid "Should printer/filament/process settings be loaded when opening a 3MF file?"
msgstr "Чи повинні бути завантажені налаштування принтера/філаменту/процесу при відкритті файлу .3mf?"
+# AI Translated
msgid "Auto backup"
-msgstr "Автобекап"
+msgstr "Автоматичне резервне копіювання"
msgid "Backup your project periodically to help with restoring from an occasional crash."
msgstr "Періодично робіть резервну копію вашого проекту для відновлення після випадкового збою."
@@ -9871,6 +10517,9 @@ msgstr "Запамʼятовувати останню дію друку"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Якщо увімкнено, OrcaSlicer запамʼятовуватиме останній вибраний варіант у випадному списку кнопки друку (наприклад, «Друк», «Експортувати файл нарізки пластини», «Експорт файлу G-code») і використовуватиме його як типовий під час наступного запуску."
+msgid "Camera"
+msgstr "Камера"
+
msgid "Touchpad"
msgstr "Тачпад"
@@ -10313,6 +10962,9 @@ msgstr "Версія мережевого плагіна"
msgid "Select the network plug-in version to use"
msgstr "Вибрати версію мережевого плагіна для використання"
+msgid "Associate"
+msgstr "Ассоціювати"
+
msgid "Associate files to OrcaSlicer"
msgstr "Асоціювати файли з OrcaSlicer"
@@ -10364,6 +11016,12 @@ msgstr "Показати непідтримувані пресети"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Показати несумісні/непідтримувані пресети у випадаючому списку принтера і філаменту. Ці пресети не можна вибрати."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Experimental Features"
msgstr "Експериментальні функції"
@@ -10649,10 +11307,6 @@ msgstr "Публікувати 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Виберіть, які налаштування буде опубліковано у файлі 3MF"
-# AI Translated
-msgid "Video Guide"
-msgstr "Відеопосібник"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Змішаний філамент — публікується цілком, коли вище вибрано «Увімкнути»"
@@ -10818,6 +11472,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Простий"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s із %s"
+
# AI Translated
msgid "Search actions"
msgstr "Пошук дій"
@@ -10935,6 +11595,10 @@ msgstr "Показати подробиці"
msgid "Hide details"
msgstr "Сховати подробиці"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Вебперегляд недоступний."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11234,8 +11898,12 @@ msgstr "Довжина імені перевищує обмеження."
# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Витрачає на %dг філаменту та на %d змін більше, ніж оптимальне групування."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Витрачає на %dг філаменту та на %d зміну більше, ніж оптимальне групування."
+msgstr[1] "Витрачає на %dг філаменту та на %d зміни більше, ніж оптимальне групування."
+msgstr[2] "Витрачає на %dг філаменту та на %d змін більше, ніж оптимальне групування."
+msgstr[3] "Витрачає на %dг філаменту та на %d зміни більше, ніж оптимальне групування."
# AI Translated
msgid "Right-Ext"
@@ -11325,6 +11993,9 @@ msgstr "Деякі філаменти можуть перемикатися мі
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "У цьому файлі є філамент, схильний до утворення павутиння. Для найкращої якості друку рекомендуємо перемкнути виявлення налипання на сопло в автоматичний режим."
+msgid "Switch"
+msgstr "Перемкнутий"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Якщо для «Калібрування динамічного потоку» встановлено Авто/Увімк., система використає значення ручного калібрування або типове значення й пропустить процес калібрування потоку. Ви можете виконати ручне калібрування потоку для філаменту TPU на сторінці «Калібрування»."
@@ -11649,10 +12320,15 @@ msgstr "Синхронізація різних приводів екструд
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Синхронізувати зміну параметрів з відповідними параметрами іншого екструдера."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Параметри з цим значком можна налаштовувати для кожного сопла окремо."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Натисніть, щоб скинути всі налаштування до останнього збереженого пресету."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Prime tower is required for nozzle changing. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?"
msgstr "Для зміни сопла потрібна підготовча вежа. Без підготовчої вежі на моделі можуть зʼявитися дефекти. Ви впевнені, що хочете вимкнути підготовчу вежу?"
@@ -11660,30 +12336,37 @@ msgid "A prime tower is required for smooth timelapse mode. There may be flaws o
msgstr "Для плавного таймлапсу потребується Підготовча вежа. Без Підготовчої вежі на моделі можуть виникати дефекти. Ви впевнені, що хочете вимкнути Підготовчу вежу?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?"
msgstr "Для виявлення налипання потрібна підготовча вежа. Без підготовчої вежі на моделі можуть зʼявитися дефекти. Ви впевнені, що хочете вимкнути підготовчу вежу?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable?"
msgstr "Одночасне увімкнення точної висоти Z та підготовчої вежі може спричинити помилки нарізки. Ви все одно хочете увімкнути?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Do you still want to enable clumping detection?"
msgstr "Для виявлення налипання потрібна підготовча вежа. Без підготовчої вежі на моделі можуть зʼявитися дефекти. Ви все одно хочете увімкнути виявлення налипання?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable precise Z height?"
msgstr "Одночасне увімкнення точної висоти Z та підготовчої вежі може спричинити помилки нарізки. Ви все одно хочете увімкнути точну висоту Z?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Smooth timelapse needs a prime tower on every layer, which is not compatible with \"No sparse layers\". \"No sparse layers\" has been turned off."
msgstr "Плавний таймлапс потребує підготовчої вежі на кожному шарі, що несумісно з параметром «Без розріджених шарів». Параметр «Без розріджених шарів» вимкнено."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without prime tower. Do you want to enable the prime tower?"
msgstr "Для плавного таймлапсу потрібна підготовча вежа. Без підготовчої вежі на моделі можуть виникати дефекти. Ви хочете увімкнути підготовчу вежу?"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "\"No sparse layers\" is not compatible with smooth timelapse, which needs a prime tower on every layer. Timelapse has been switched to traditional mode."
msgstr "Параметр «Без розріджених шарів» несумісний із плавним таймлапсом, який потребує підготовчої вежі на кожному шарі. Таймлапс перемкнено в традиційний режим."
@@ -11889,6 +12572,9 @@ msgstr "Філамент для ознак"
msgid "Ooze prevention"
msgstr "Запобігання просочування"
+msgid "Others"
+msgstr "Інші"
+
msgid "Special mode"
msgstr "Спеціальний режим"
@@ -11936,8 +12622,11 @@ msgstr[3] ""
"Наступні рядки %s містять зарезервовані ключові слова.\n"
"Видаліть їх або виконайте візуалізацію G-code та оцінку часу друку."
-msgid "Reserved keywords found"
-msgstr "Знайдено зарезервовані ключові слова"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Знайдено зарезервовані ключові слова в %1%"
msgid "Setting Overrides"
msgstr "Налаштування перевизначень"
@@ -12087,7 +12776,16 @@ msgstr "Місце для друку"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Виберіть реалізацію мережевого агента для звʼязку з принтером. Доступні агенти реєструються під час запуску."
+# AI Translated
+msgid "Belt printer"
+msgstr "Стрічковий принтер"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Перетворення машинної системи координат"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Надано некоректне значення для параметру %1%: %2%"
@@ -12205,9 +12903,29 @@ msgstr "Діаметр сопла"
msgid "Wipe tower"
msgstr "Вежа протирання"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Вежа очищення на стрічці"
+
msgid "Single extruder multi-material parameters"
msgstr "Параметри екструдеру в багато-екструдерному принтері"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "Конфігурація IDEX/IQEX"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Попередження перед нарізкою"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Показувати діалогове вікно з попередженням перед нарізкою, якщо виявлено проблеми паралельного режиму IDEX/IQEX (конфлікти температури столу, невідповідність типів філаменту, конфлікти кількох матеріалів). Його можна вимкнути в самому діалоговому вікні. Увімкніть тут знову, якщо вимкнули випадково."
+
+# AI Translated
+msgid "Modes"
+msgstr "Режими"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Це принтер з підтримкою декількох матеріалів одним екструдером, діаметри всіх екструдерів буде замінено новим значенням. Хочете продовжити?"
@@ -12217,6 +12935,22 @@ msgstr "Обмеження висоти шару"
msgid "Z-Hop"
msgstr "Стрибок-Z"
+# AI Translated
+msgid "Front-left"
+msgstr "Спереду ліворуч"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Спереду праворуч"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Ззаду ліворуч"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Ззаду праворуч"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -12240,25 +12974,43 @@ msgstr "Використати змінене значення"
msgid "Detached"
msgstr "Окремий"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "До цього принтера прикріплено %1% і %2%. Ці пресети буде видалено, якщо видалити принтер."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "За цим принтером прикріплено %d пресетів філаменту та %d пресетів процесу. Ці пресети будуть видалені, якщо принтер буде видалено."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d пресет філаменту"
+msgstr[1] "%d пресети філаменту"
+msgstr[2] "%d пресетів філаменту"
+msgstr[3] "%d пресету філаменту"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d пресет процесу"
+msgstr[1] "%d пресети процесу"
+msgstr[2] "%d пресетів процесу"
+msgstr[3] "%d пресету процесу"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Пресети, які успадковуються іншими пресетами, не можуть бути видалені!"
# AI Translated
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Профіль вказаний нижче, успадковується від поточного профілю."
-msgstr[1] "Профілі вказані нижче, успадковуються від поточного профілю."
-msgstr[2] "Профілі вказані нижче, успадковуються від поточного профілю."
-msgstr[3] "Профілі вказані нижче, успадковуються від поточного профілю."
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "Наведений нижче пресет успадковує цей пресет."
+msgstr[1] "Наведені нижче пресети успадковують цей пресет."
+msgstr[2] "Наведені нижче пресети успадковують цей пресет."
+msgstr[3] "Наведені нижче пресети успадковують цей пресет."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% пресет"
+msgid "Delete Preset"
+msgstr "Видалити пресет"
# AI Translated
msgid "The following preset will be deleted too:"
@@ -12275,9 +13027,9 @@ msgstr ""
"Ви впевнені, що хочете видалити вибраний пресет?\n"
"Якщо пресет відповідає філаменту, який в даний момент використовується на вашому принтері, будь ласка, скиньте інформацію про філамент для цього слоту."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Ви впевнені, що %1% вибраної установки?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Ви впевнені, що хочете видалити вибраний пресет?"
msgid "Select printers"
msgstr "Вибрати принтери"
@@ -12335,9 +13087,40 @@ msgstr "Продовжити"
msgid "Don't warn again for this preset"
msgstr "Більше не попереджати для цього пресету"
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# AI Translated
+# Needs human review: Short tag for the Standard nozzle flow type; kept as the English abbreviation (as on the printer). Check whether a localized abbreviation is preferred.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Short tag for the High Flow nozzle type; kept as the English abbreviation (as on the printer). Check whether a localized abbreviation is preferred.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Short tag for the TPU High Flow nozzle type; kept as the English abbreviation. Check whether a localized abbreviation is preferred.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Short tag for the E3D High Flow nozzle type; kept as the English abbreviation. Check whether a localized abbreviation is preferred.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short tag for the Extra High Flow nozzle type; kept as the English abbreviation. Check whether a localized abbreviation is preferred.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
msgid "No modifications need to be copied."
msgstr "Немає змін для копіювання."
@@ -12540,6 +13323,12 @@ msgstr "Один з пресетів не існує"
msgid "Compared presets has different printer technology"
msgstr "Порівнювані пресети мають різні технології принтера"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "«%1%» проти «%2%»"
+
msgid "Add File"
msgstr "Додати файл"
@@ -12565,6 +13354,22 @@ msgstr "Відомість матеріалів"
msgid "Assembly Guide"
msgstr "Посібник зі збирання"
+# AI Translated
+msgid "Image files"
+msgstr "Файли зображень"
+
+# AI Translated
+msgid "TXT files"
+msgstr "Файли TXT"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "Файли EXCEL"
+
+# AI Translated
+msgid "PDF files"
+msgstr "Файли PDF"
+
msgid "Author"
msgstr "Автор"
@@ -12780,9 +13585,6 @@ msgstr "мс"
msgid "Total ramming"
msgstr "Загальний раммінг"
-msgid "Volume"
-msgstr "Обʼєм"
-
# AI Translated
msgid "Ramming line"
msgstr "Лінія раммінгу"
@@ -12811,8 +13613,11 @@ msgstr "Множина"
msgid "Flushing volumes for filament change"
msgstr "Обʼєми промивки для зміни філаменту"
-msgid "Please choose the filament color"
-msgstr "Будь ласка, виберіть колір філаменту"
+# AI Translated
+# Needs human review: Corner header of the flushing volume table (rows: filament flushed from, columns: filament changed to). Check it reads right in the table and fits the cell.
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "з/на"
# AI Translated
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -12833,6 +13638,155 @@ msgstr "Не вдалося ввійти. Спробуйте ще раз."
msgid "parse json failed"
msgstr "не вдалося зчитати json"
+# AI Translated
+msgid "Loading…"
+msgstr "Завантаження…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Власні"
+
+# AI Translated
+msgid "Welcome to Orca Slicer"
+msgstr "Ласкаво просимо до Orca Slicer"
+
+# AI Translated
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer буде налаштовано за кілька кроків. Почнімо!"
+
+# AI Translated
+msgid "Get Started"
+msgstr "Почати"
+
+# AI Translated
+msgid "Please select your login region"
+msgstr "Виберіть регіон входу"
+
+msgid "Finish"
+msgstr "Завершити"
+
+# AI Translated
+msgid "Printer Selection"
+msgstr "Вибір принтера"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Виробники"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Власний принтер"
+
+msgid "Create"
+msgstr "Створити"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Перевірити наявність нових принтерів"
+
+# AI Translated
+msgid "At least one printer must be selected."
+msgstr "Потрібно вибрати принаймні один принтер."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Знайдено нові принтери"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Встановлено нових виробників принтерів: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Знайдено нових виробників принтерів, але встановлення скасовано."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Нових принтерів не знайдено."
+
+# AI Translated
+msgid "Filament Selection"
+msgstr "Вибір філаменту"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "Системні філаменти"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "Власні філаменти"
+
+# AI Translated
+msgid "Create New"
+msgstr "Створити новий"
+
+msgid "Filament type"
+msgstr "Тип філаменту"
+
+msgid "Vendor"
+msgstr "Виробник"
+
+# AI Translated
+msgid "No items"
+msgstr "Немає елементів"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Фільтрувати елементи"
+
+# AI Translated
+msgid "Checked"
+msgstr "Позначені"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Непозначені"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Вибрати відфільтроване"
+
+# AI Translated
+msgid "Clear all"
+msgstr "Очистити все"
+
+# AI Translated
+msgid "At least one filament must be selected."
+msgstr "Потрібно вибрати принаймні один філамент."
+
+# AI Translated
+msgid "Do you want to use the default filament?"
+msgstr "Бажаєте використати філамент за замовчуванням?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Це вимикає всі хмарні функції, зокрема синхронізацію профілів Orca Cloud. Користувачі, які надають перевагу повністю автономній роботі, можуть увімкнути цю опцію."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Примітка: коли увімкнено прихований режим, ваші профілі користувача не резервуватимуться в Orca Cloud."
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "Увімкнути прихований режим."
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Пропрієтарні плагіни"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Деякі виробники принтерів потребують пропрієтарних плагінів для звʼязку зі своїми принтерами. Виберіть відповідний плагін, якщо користуєтеся такими принтерами."
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Зверніть увагу, що ці плагіни не розробляються й не підтримуються OrcaSlicer. Використовуйте їх на власний розсуд і ризик."
+
+# AI Translated
+msgid "Install Bambu Network plug-in"
+msgstr "Встановити мережевий плагін Bambu"
+
msgid "[Action Required] "
msgstr "[Необхідна дія] "
@@ -12901,9 +13855,6 @@ msgstr "Доступно, коли фокус на 3D-вигляді вклад
msgid "Select a part"
msgstr "Виберіть частину"
-msgid "Select multiple objects"
-msgstr "Вибрати кілька обʼєктів"
-
msgid "Select objects by rectangle"
msgstr "Виділити обʼєкти прямокутником"
@@ -13236,26 +14187,22 @@ msgstr "Версія прошивки незвичайна. Потрібно в
msgid "Extension Board"
msgstr "Плата розширення"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Розділити на %1% частин"
-
msgid "Repair finished"
msgstr "Ремонт завершено"
-msgid "Repair failed"
-msgstr "Ремонт не вдалося."
-
-msgid "Repair canceled"
-msgstr "Ремонт скасовано"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Копіювання %1% у %2% не вдалося: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Завантаження нових профілів виробників: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Завантаження нового профілю виробника: %1%..."
+msgstr[1] "Завантаження нових профілів виробників: %1%..."
+msgstr[2] "Завантаження нових профілів виробників: %1%..."
+msgstr[3] "Завантаження нових профілів виробників: %1%..."
# AI Translated
#, boost-format
@@ -13263,8 +14210,14 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Пакет конфігурації: %1% оновлено до %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Не вдалося завантажити профілі виробників: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Не вдалося завантажити профіль виробника: %1%"
+msgstr[1] "Не вдалося завантажити профілі виробників: %1%"
+msgstr[2] "Не вдалося завантажити профілі виробників: %1%"
+msgstr[3] "Не вдалося завантажити профілі виробників: %1%"
# AI Translated
msgid "Please check any unsaved changes before updating the configuration."
@@ -13273,6 +14226,11 @@ msgstr "Будь ласка, перевірте незбережені змін
msgid "Open G-code file:"
msgstr "Відкрити файл G-code:"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Не вдалося створити вежу протирання, можливо, через порожній перший шар."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Один об'єкт має порожній початковий шар і не може бути надрукований. Будь ласка, обріжте нижню частину або увімкніть підтримки."
@@ -13295,9 +14253,61 @@ msgstr "G-code ролі екструзіх зміни процесу"
msgid "Filament change extrusion role G-code"
msgstr "G-code ролі екструзіх зміни філаменту"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"Не вдалося експортувати G-code до %1%.\n"
+"Не вдається відкрити файл для запису."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "Теки %1% не існує."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"Не вдалося експортувати G-code до %1%.\n"
+"Чи не заповнений диск?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Не вдалося перейменувати вихідний файл G-code з %1% на %2%.\n"
+"Помилка: %3%\n"
+"Чи не заблоковано %1%?"
+
msgid "No object can be printed. It may be too small."
msgstr "Жодний обʼєкт не може бути надрукований. Можливо, занадто маленький"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "Режиму IDEX/IQEX «%1%» не призначено жодного інструмента на вибраному принтері. Натомість друк виконуватиметься в режимі «Основний». Призначте інструменти режиму в налаштуваннях принтера або виберіть інший режим кнопкою IDEX/IQEX на пластині."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Для цієї пластини встановлено режим IDEX/IQEX «%1%», який не визначено для вибраного принтера. Натомість друк виконуватиметься в режимі «Основний». Виберіть режим кнопкою IDEX/IQEX на пластині або відновіть режим у налаштуваннях принтера."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Недійсне значення мініатюр:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Ваша модель для друку розташована дуже близький до основних областей. Переконайтесь, що немає зіткнення."
@@ -13344,6 +14354,10 @@ msgstr "Помилка групування: %1% не можна розміст
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Помилка групування: %1% не можна розмістити в правому соплі"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Не знайдено дійсного сопла. Перевірте кількість сопел."
+
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Помилка групування в ручному режимі. Перевірте кількість сопел або перегрупуйте."
@@ -13362,6 +14376,18 @@ msgstr "кілька перетинів із периметром, викори
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "периметр повністю всередині модифікатора, модифікатор до нього не застосовано (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "Модифікатор «%2%» (%1%) обʼєкта «%3%» охоплює весь периметр"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "Модифікатор «%2%» (%1%) обʼєкта «%3%» (усього %4%) охоплює весь периметр"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13376,9 +14402,47 @@ msgstr "модифікатор \"%1%\" обʼєкта \"%2%\" (усього %3%)
msgid "Seam placement may differ from expected."
msgstr "Розташування шва може відрізнятися від очікуваного."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Внутрішній міст"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() повернула відʼємний інтервал. Чи не встановлено надто малу ширину екструзії?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() повернула відʼємний потік. Чи не встановлено надто малу ширину екструзії?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Не вдалося обчислити ширину лінії %1%. Неможливо отримати значення \"%2%\"."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Неправильний інтервал, переданий до Flow::with_spacing(), перевірте висоту шару та ширину екструзії"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "Вибраний файл 3mf збережено в новішій версії %1%, і він несумісний."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Вибраний 3MF містить обʼєкт із намальованими підтримками FDM, створений у новішій версії PrusaSlicer, і є несумісним."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Вибраний 3MF містить обʼєкт із намальованим швом, створений у новішій версії PrusaSlicer, і є несумісним."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "Вибраний 3MF містить обʼєкт із мультиматеріальним малюванням, створений у новішій версії PrusaSlicer, і є несумісним."
+
msgid "undefined error"
msgstr "невизначена помилка"
@@ -13473,6 +14537,56 @@ msgstr "валідація не пройшла"
msgid "write callback failed"
msgstr "збій зворотного виклику запису"
+# AI Translated
+msgid "unknown error"
+msgstr "невідома помилка"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Багатокольоровий друк у паралельних режимах IDEX/IQEX потребує, щоб кожен філамент мав власний фізичний екструдер. Два або більше активних філаменти спрямовано на ту саму фізичну головку через карту фізичних екструдерів принтера (колектор MMU/AFC), чого ведений портал не може відтворити."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "Активний режим IDEX/IQEX не визначає основного інструмента, тому багатокольоровий друк неможливо запланувати. Відкрийте редактор режимів IDEX/IQEX у налаштуваннях принтера й призначте одному інструменту роль «Основний» (Primary)."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "Багатокольоровий друк у цьому режимі не є сценарієм паралельного друку — усі активні інструменти розташовані на одному порталі, тож немає другого порталу, на який виконувалося б копіювання чи віддзеркалення. Перемкніть пластину в режим «Основний» для багатокольорового друку на одному порталі або визначте режим IDEX/IQEX з інструментами на другому порталі."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Багатокольоровий друк у паралельних режимах IDEX/IQEX потребує інструмента Span на порталі основного інструмента — без нього режим не визначає партнера для багатокольорового друку в межах порталу. Скоротіть друк до одного філаменту, перейдіть у режим «Основний» або відкрийте редактор режимів IDEX/IQEX у налаштуваннях принтера й позначте інструмент на порталі основного інструмента як Span."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "У цьому режимі Span кольоровий друк можливий лише на %1%, але філамент %2% не спрямовано на жоден інструмент. Використовуйте філаменти, спрямовані на %1%, або перемкніть цю пластину в режим «Основний»."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "У цьому режимі Span кольоровий друк можливий лише на %1%, але філамент %2% спрямовано на T%3%. Використовуйте філаменти, спрямовані на %1%, або перемкніть цю пластину в режим «Основний»."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Не вдалося завантажити вибраний пресет: %1%\n"
+"\tПричина: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Не вдалося завантажити файл пресета: %1%\n"
+"\tПричина: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% знаходиться надто близько до забороненої зони, можливі зіткнення при друку."
@@ -13486,32 +14600,44 @@ msgid "%1% is too tall, and collisions will be caused."
msgstr "%1% занадто високий, і можуть виникнути зіткнення."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "Взаємне розташування моделі та підготовчої вежі не відповідає вимогам функції «Без розріджених шарів». Змініть їхнє взаємне розташування, зменште висоту моделі або вимкніть параметр «Без розріджених шарів»."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " знаходиться надто близько до зони відчуження, при друку можуть виникати колізії."
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% розташовано занадто близько до зони виявлення налипання, під час друку можливі зіткнення."
# AI Translated
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " розташовано занадто близько до зони виявлення налипання, під час друку можливі зіткнення."
-
-msgid "Prime Tower"
-msgstr "Підготовча вежа"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " залишається близько до інших, що може призвести до зіткнення.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " знаходиться надто близько до зони відчуження, що призведе до зіткнень.\n"
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "Підготовча вежа розташована надто близько до інших обʼєктів, що може призвести до зіткнень.\n"
# AI Translated
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " розташовано занадто близько до зони виявлення налипання, і це спричинить зіткнення.\n"
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "Підготовча вежа розташована надто близько до забороненої зони, що призведе до зіткнень.\n"
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " частково знаходиться за межами області друку, і його неможливо надрукувати.\n"
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "Підготовча вежа розташована надто близько до зони виявлення налипання, що призведе до зіткнень.\n"
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "Підготовча вежа розташована надто близько до забороненої зони, під час друку можливі зіткнення."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "Підготовча вежа розташована надто близько до зони виявлення налипання, під час друку можливі зіткнення."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "Підготовча вежа частково виходить за межі області друку, тому її неможливо надрукувати.\n"
# AI Translated
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
@@ -13528,6 +14654,58 @@ msgstr "Якщо ви все одно хочете друкувати, може
msgid "No extrusions under current settings."
msgstr "Немає екструзій під час поточних налаштувань."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Змішані філаменти не підтримуються в паралельних режимах IDEX/IQEX. Перемкніть цю пластину в режим «Основний»."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Режим IDEX/IQEX «%1%» друкує інструментом T%2%, але жоден філамент цієї пластини не призначено на налаштований інструмент. Призначте філамент, завантажений у T%2%, або перемкніть цю пластину в режим «Основний»."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Режим IDEX/IQEX «%1%» друкує інструментом T%2%, але філаменти цієї пластини призначено на %3%. Призначте філамент, завантажений у T%2%, або перемкніть цю пластину в режим «Основний»."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Підкладка несумісна з режимом стрічкового принтера."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Захисний екран несумісний з режимом стрічкового принтера."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "Кайма несумісна з режимом спіральної вази на стрічковому принтері. Вимкніть одне з двох."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Нахил стрічки надто крутий для кайми, тому кайму не буде створено."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Кайма створюється лише тоді, коли стрічка нахилена. Задайте кут нахилу стрічки або приберіть налаштування кайми."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Стрічкові принтери підтримують лише зовнішню та внутрішню кайму. Типи «Авто», «Мишаче вушко» та «Мальована» друкуються як «Тільки зовні» з використанням параметра «Ширина кайми»."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "«Зазор між каймою та обʼєктом» відокремлює передню кайму від переднього краю обʼєкта, який вона має закріплювати. Установіть зазор 0, якщо використовуєте «Довжину передньої кайми»."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "«Довжина передньої кайми» подовжує кайму перед кожним обʼєктом уздовж стрічки, а «Впорядкувати» не резервує це місце. Залишайте простір між обʼєктами."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "Кайма «Тільки передній край» застосовується до стрічкових принтерів. На цьому принтері вона друкується як звичайна зовнішня кайма."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Використовується змішаний філамент із градієнтом, але параметр «Підшар змішаного кольору» вимкнено. Градієнт не буде надруковано."
@@ -13540,10 +14718,24 @@ msgid "Clumping detection is not supported when \"by object\" sequence is enable
msgstr "Виявлення налипання не підтримується, коли увімкнено послідовність «по обʼєктах»."
# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "Вежа очищення на стрічці не створюється в послідовності друку «По обʼєктах»; під час зміни філаменту очищення не виконуватиметься."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "Вежу очищення на стрічці увімкнено, але в проєкті немає обʼєкта вежі очищення; під час зміни філаменту очищення не виконуватиметься. Відкрийте проєкт у застосунку, щоб створити вежу."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Проєкт містить кілька керованих веж очищення на стрічці. Перезавантажте пластину або вимкніть і знову увімкніть вежу очищення на стрічці, щоб створити її заново."
+
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Одночасне увімкнення точної висоти Z та підготовчої вежі може спричинити помилки нарізки."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "A prime tower is required for clumping detection; otherwise, there may be flaws on the model."
msgstr "Для виявлення налипання потрібна підготовча вежа; інакше на моделі можуть зʼявитися дефекти."
@@ -13558,10 +14750,6 @@ msgstr "Режим спіральної вази не працює, якщо о
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Обʼєкт %1% влазить в робочий обʼєм, але він перевищує максимальну висоту робочого обʼєму із-за компенсації усадки матеріалу."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "Обʼєкт %1% перевищує максимальну висоту обʼєму друку."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Хоча сам обʼєкт %1% вписується в обʼєм збірки, його останній шар перевищує максимальну висоту обʼєму друку."
@@ -13569,10 +14757,15 @@ msgstr "Хоча сам обʼєкт %1% вписується в обʼєм зб
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Можливо, ви захочете зменшити розмір моделі або змінити поточні налаштування друку і спробувати ще раз."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "Обʼєкт %1% перевищує максимальну висоту обʼєму друку."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Змінна висота шару не підтримується з Органічними підтримками."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
msgid "The wipe tower filament cannot be a mixed filament."
msgstr "Філамент вежі протирання не може бути змішаним філаментом."
@@ -13595,8 +14788,9 @@ msgid "A prime tower is not supported when adaptive layer height is on. It requi
msgstr "Підготовча вежа не підтримується при включеній адаптивній висоті шару. Для цього потрібно, щоб усі обʼєкти мали однакову висоту шару."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "A prime tower requires any “support gap” to be a multiple of layer height."
-msgstr "Підготовча вежа вимагає, щоб «опорний зазор» був кратним висоті шару"
+msgstr "Підготовча вежа вимагає, щоб «опорний зазор» був кратним висоті шару."
msgid "A prime tower requires that all objects have the same layer height."
msgstr "Підготовча вежа вимагає, щоб усі обʼєкти мали однакову висоту шару"
@@ -13605,10 +14799,12 @@ msgid "A prime tower requires that all objects are printed over the same number
msgstr "Підготовча вежа вимагає, щоб усі обʼєкти друкувалися на однаковій кількості шарів підкладки"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "The prime tower is only supported for multiple objects if they are printed with the same support_top_z_distance."
msgstr "Підготовча вежа підтримується для кількох обʼєктів, лише якщо вони друкуються з однаковим support_top_z_distance."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "A prime tower requires that all objects are sliced with the same layer height."
msgstr "Підготовча вежа вимагає, щоб усі обʼєкти були нарізані з однаковою висотою шару."
@@ -13737,6 +14933,10 @@ msgstr "Модель адаптивного Pressure Advance для одного
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "Усадку філаменту не буде застосовано, оскільки усадка використаних філаментів не збігається."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "Друк порожній. Модель неможливо надрукувати з поточними налаштуваннями друку."
+
msgid "Generating skirt & brim"
msgstr "Генерація спідниці та кайми"
@@ -13756,6 +14956,17 @@ msgstr "Експорт G-code"
msgid "Generating G-code"
msgstr "Генерація G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Не вдалося обробити файл G-code %1% із попереднього файлу 3MF."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "Вежа очищення на стрічці не може прийняти весь обʼєм очищення: загалом не вдалося очистити %1% мм³ (найгірший шар: %2% мм³ на висоті %3%). На відбитку може бути змішування кольорів. Збільште ширину вежі очищення на стрічці або зменшіть обʼєми промивки."
+
msgid "Processing of the filename_format template failed."
msgstr "Не вдалося обробити шаблон filename_format."
@@ -14236,13 +15447,13 @@ msgid ""
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
"Ширина лінії моста. Якщо задано у %, вона обчислюється відносно діаметра сопла.\n"
-"Рекомендується використовувати з вищою щільністю моста або вищим коефіцієнтом потоку моста.\n"
+"Рекомендується використовувати з вищими значеннями «Щільність зовнішніх мостів» або «Коефіцієнт потоку мостів».\n"
"\n"
"Максимальне значення — 100% або діаметр сопла.\n"
-"Якщо встановлено 0, ширина лінії відповідатиме ширині внутрішнього суцільного заповнення."
+"Якщо встановлено 0, ширина лінії відповідатиме ширині внутрішнього суцільного заповнення, а для товстих мостів — діаметру сопла."
msgid "Internal bridge flow ratio"
msgstr "Коефіцієнт потоку внутрішніх мостів"
@@ -14548,7 +15759,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Увімкніть цю опцію, щоб уповільнювати друк у зонах, де периметри могли загнутися вгору.\n"
"Наприклад, додаткове уповільнення застосовуватиметься під час друку нависань на гострих кутах, як-от ніс корпусу Benchy, зменшуючи загинання, що накопичується протягом кількох шарів.\n"
@@ -14560,22 +15771,23 @@ msgstr ""
"Рекомендації при увімкненні цієї опції:\n"
"1. Зменште час згладжування Pressure Advance до 0.015 - 0.02, щоб екструдер швидко реагував на зміни швидкості.\n"
"2. Збільште мінімальні швидкості друку, щоб обмежити величину уповільнення та зменшити різницю між швидкими й повільними ділянками.\n"
-"3. Якщо артефакти все ще зʼявляються, увімкніть згладжування швидкості екструзії (ERS), щоб додатково згладити переходи потоку.\n"
+"3. Якщо артефакти все ще зʼявляються, увімкніть «Вирівнювання швидкості екструзії» (ERS), щоб додатково згладити переходи потоку.\n"
"\n"
"Примітка: коли цю опцію увімкнено, периметри нависань обробляються як нависання, тобто швидкість нависання застосовується навіть тоді, коли нависаючий периметр є частиною моста.\n"
-"Наприклад, коли периметри нависають на 100% і під ними немає стінки-опори, буде застосовано швидкість для 100% нависання."
+"Наприклад, коли периметри нависають на 100% і під ними немає стінки-опори, буде застосовано швидкість нависання 75%, обмежену швидкістю моста."
msgid "mm/s or %"
msgstr "мм/с або %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Швидкість екструзії мостів, які видно ззовні.\n"
"\n"
-"Крім того, якщо параметр 'Уповільнення для закручених периметрів' вимкнено або увімкнено 'Класичний режим нависань', ця швидкість буде використовуватися для друку стінок з нависанням, які підтримуються менш ніж на 13%, незалежно від того, чи є вони частиною мосту або звичайного нависання."
+"Крім того, якщо параметр «Уповільнення для нависаючих периметрів» вимкнено, ця швидкість буде використовуватися для друку стінок з нависанням, які підтримуються менш ніж на 13%, незалежно від того, чи є вони частиною мосту або звичайного нависання."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Швидкість внутрішніх мостів. Якщо значення вказано у відсотках, воно буде розраховане на основі bridge_speed. Значення за замовчуванням: 150%."
@@ -14583,12 +15795,56 @@ msgstr "Швидкість внутрішніх мостів. Якщо знач
msgid "This is the distance from the model to the outermost brim line."
msgstr "Відстань від моделі до останньої зовнішньої лінії кайми"
+# AI Translated
+msgid "Leading brim length"
+msgstr "Довжина передньої кайми"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Лише для стрічкових принтерів. Подовжує кайму ПОПЕРЕДУ обʼєкта вздовж стрічки на кожному краї його області контакту, оберненому вниз за схилом, — як у місці першого контакту обʼєкта зі стрічкою, так і для будь-якого острівця, що опускається на неї пізніше. Цей фартух укладається на стрічку раніше, ніж до неї дійде обʼєкт, тож передній край має за що триматися.\n"
+"\n"
+"Вимірюється на поверхні стрічки й додається до ширини кайми: кайма сягає «Зазор між каймою та обʼєктом» + «Довжина передньої кайми» + «Ширина кайми» попереду обʼєкта. Установіть «Зазор між каймою та обʼєктом» на 0, інакше фартух не торкнеться обʼєкта, який має закріплювати.\n"
+"\n"
+"На нахиленій стрічці кожен шар укладає одну смугу кайми, тому товщина утвореного полотна кайми визначається потоком, а не висотою шару. Для її налаштування використовуйте «Коефіцієнт потоку кайми».\n"
+"\n"
+"Встановіть 0, щоб вимкнути."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Додаткова ширина кайми"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Лише для стрічкових принтерів. Розширює кайму В БОКИ, поперек стрічки, не подовжуючи її попереду чи позаду обʼєкта. Використовуйте, коли обʼєкту потрібне сильніше зчеплення по всій довжині, ніж дає сама «Ширина кайми».\n"
+"\n"
+"Вимірюється на поверхні стрічки й додається до ширини кайми: кайма сягає «Зазор між каймою та обʼєктом» + «Ширина кайми» + «Додаткова ширина кайми» з кожного боку обʼєкта. Щоб натомість подовжити кайму попереду обʼєкта, використовуйте «Довжина передньої кайми».\n"
+"\n"
+"Встановіть 0, щоб вимкнути."
+
msgid "Brim type"
msgstr "Тип кайми"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Керує генерацією кайми на зовнішніх та/або внутрішніх сторонах моделей. Авто означає, що ширина кайми аналізується та визначається автоматично."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Тільки передній край"
+
msgid "Brim-object gap"
msgstr "Зазор між каймою та обʼєктом"
@@ -14891,6 +16147,9 @@ msgstr ""
"2. Обмежена фільтрація - створює внутрішні мости на сильно нахилених поверхнях, уникаючи зайвих мостів. Це добре підходить для складних моделей.\n"
"3. Без фільтрації - створює внутрішні мости на кожному потенційному внутрішньому нависанні. Цей параметр корисний для моделей із сильно нахиленою верхньою поверхнею, однак у більшості випадків створює занадто багато зайвих мостів."
+msgid "Filter"
+msgstr "Фільтр"
+
msgid "Limited filtering"
msgstr "Обмежене фільтрування"
@@ -14906,8 +16165,9 @@ msgstr "Макс. довжина мостів, які не потребують
msgid "End G-code"
msgstr "Завершальний G-code"
-msgid "Add end G-Code when finishing the entire print."
-msgstr "Завершальний G-code, коли закінчити весь друк"
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
+msgstr "Додати завершальний G-code після завершення всього друку."
msgid "Between Object G-code"
msgstr "Між G-code об’єктів"
@@ -15095,8 +16355,9 @@ msgstr "Швидкість друку зовнішніх стінок детал
msgid "Small perimeters"
msgstr "Маленькі периметри"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Це окреме налаштування впливає на швидкість периметрів, що мають радіус < = small_perimeter_threshold (зазвичай отворів). Якщо він виражений у відсотках(наприклад, 80%), то він розраховуватиметься на зазначеній вище швидкостіЗовнішній периметр. Встановіть нульове значення для автоматичного налаштування."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Це окреме налаштування впливає на швидкість периметрів, що мають радіус <= small_perimeter_threshold (зазвичай отворів). Якщо задано у відсотках (наприклад, 80%), воно обчислюється відносно наведеного вище налаштування швидкості зовнішньої стінки."
msgid "Small perimeters threshold"
msgstr "Поріг малих периметрів"
@@ -15109,8 +16370,8 @@ msgid "Small support perimeters"
msgstr "Малі периметри підтримок"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Те саме, що й «Малі периметри», але для підтримок. Це окреме налаштування впливає на швидкість підтримок для областей <= `small_support_perimeter_threshold`. Якщо задано у відсотках (наприклад, 80%), воно обчислюється відносно наведеного вище налаштування швидкості підтримок або інтерфейсу підтримок. Встановіть нуль для автоматичного значення."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Те саме, що й «Маленькі периметри», але для підтримок. Це окреме налаштування впливає на швидкість підтримок для областей <= `small_support_perimeter_threshold`. Якщо задано у відсотках (наприклад, 80%), воно обчислюється відносно наведеного вище налаштування швидкості підтримок або інтерфейсу підтримок."
# AI Translated
msgid "Small support perimeters threshold"
@@ -15123,22 +16384,23 @@ msgstr "Задає поріг довжини малого периметра п
msgid "Walls printing order"
msgstr "Послідовність друку стінок"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
-"Послідовність друку внутрішніх (inner) та зовнішніх (outer) стін.\n"
+"Послідовність друку внутрішніх і зовнішніх стінок.\n"
"\n"
-"Використовуйте внутрішню/зовнішню для найкращих виступів. Це повʼязано з тим, що стіни, які виступають, можуть прилипати до сусіднього периметра під час друку. Однак цей параметр призводить до деякого зниження якості поверхні, оскільки зовнішній периметр деформується, притискаючись до внутрішнього.\n"
+"Використовуйте «Внутрішня/Зовнішня» для найкращих нависань. Це тому, що нависаючі стінки під час друку можуть зчіплюватися із сусіднім периметром. Однак цей варіант трохи погіршує якість поверхні, оскільки зовнішній периметр деформується, будучи притиснутим до внутрішнього.\n"
"\n"
-"Використовуйте Внутрішній/Зовнішній/Внутрішній для найкращої якості зовнішньої поверхні та точності розмірів, оскільки зовнішня стіна друкується без порушень від внутрішнього периметра. Однак, продуктивність на виході зменшиться, оскільки немає внутрішнього периметра, до якого можна було б притискати зовнішню стіну. Для ефективної роботи цієї опції потрібно щонайменше 3 стіни, оскільки спочатку друкуються внутрішні стіни, починаючи з 3-го периметра, потім зовнішній периметр і, нарешті, перший внутрішній периметр. У більшості випадків цей параметр рекомендується використовувати замість параметра Зовнішній/Внутрішній.\n"
+"Використовуйте «Внутрішня/Зовнішня/Внутрішня» для найкращої обробки зовнішньої поверхні та точності розмірів, оскільки зовнішня стінка друкується без впливу внутрішнього периметра. Однак якість нависань погіршиться, бо немає внутрішнього периметра, до якого можна друкувати зовнішню стінку. Для ефективності цей варіант потребує щонайменше 3 стінок: спочатку друкуються внутрішні стінки, починаючи з 3-го периметра, потім зовнішній периметр і, нарешті, перший внутрішній периметр. У більшості випадків цей варіант рекомендується замість «Зовнішня/Внутрішня».\n"
"\n"
-"Використовуйте опцію Зовнішня/Внутрішня для отримання такої ж якості зовнішньої стіни і точності розмірів, як і в опції Внутрішня/Зовнішня/Внутрішня. Однак шви по Z будуть виглядати менш рівномірними, оскільки перша екструзія нового шару починається на видимій поверхні "
+"Використовуйте «Зовнішня/Внутрішня», щоб отримати таку саму якість зовнішньої стінки та точність розмірів, як і у варіанта «Внутрішня/Зовнішня/Внутрішня». Однак Z-шви виглядатимуть менш однорідно, оскільки перше видавлювання нового шару починається на видимій поверхні."
msgid "Inner/Outer"
msgstr "Внутрішня/Зовнішня"
@@ -15611,6 +16873,7 @@ msgid "After a tool change, the exact position of the newly loaded filament insi
msgstr "Після заміни інструменту точне положення новонавантаженої нитки напруженнявсередині сопла може бути невідомо, і тиск нитки розжарення, ймовірно, ще неє стабільним. Перед продуванням друкувальної головки в наповнювач або обʼєкт Orca Slicer, що витрачається, завжди буде дозувати цю кількість матеріалу в вежу для протирання, щоб забезпечити надійне послідовне заповненняабо видавлювання обʼєкта, що витрачається."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
msgid "Wipe tower cooling"
msgstr "Охолодження вежі протирання"
@@ -15623,6 +16886,7 @@ msgid "Interface layer pre-extrusion distance"
msgstr "Відстань попередньої екструзії інтерфейсного шару"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Pre-extrusion distance for prime tower interface layer (where different materials meet)."
msgstr "Відстань попередньої екструзії для інтерфейсного шару підготовчої вежі (де зустрічаються різні матеріали)."
@@ -15631,6 +16895,7 @@ msgid "Interface layer pre-extrusion length"
msgstr "Довжина попередньої екструзії інтерфейсного шару"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Pre-extrusion length for prime tower interface layer (where different materials meet)."
msgstr "Довжина попередньої екструзії для інтерфейсного шару підготовчої вежі (де зустрічаються різні матеріали)."
@@ -15639,6 +16904,7 @@ msgid "Tower ironing area"
msgstr "Область розгладжування вежі"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Ironing area for prime tower interface layer (where different materials meet)."
msgstr "Область розгладжування для інтерфейсного шару підготовчої вежі (де зустрічаються різні матеріали)."
@@ -15650,6 +16916,7 @@ msgid "Interface layer purge length"
msgstr "Довжина очищення інтерфейсного шару"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Purge length for prime tower interface layer (where different materials meet)."
msgstr "Довжина очищення для інтерфейсного шару підготовчої вежі (де зустрічаються різні матеріали)."
@@ -15658,6 +16925,7 @@ msgid "Interface layer print temperature"
msgstr "Температура друку інтерфейсного шару"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Print temperature for prime tower interface layer (where different materials meet). If set to -1, use max recommended nozzle temperature."
msgstr "Температура друку для інтерфейсного шару підготовчої вежі (де зустрічаються різні матеріали). Якщо встановлено -1, використовується максимальна рекомендована температура сопла."
@@ -15807,9 +17075,6 @@ msgstr "Ціна філаменту. Тільки для статистики"
msgid "money/kg"
msgstr "грн/кг"
-msgid "Vendor"
-msgstr "Виробник"
-
msgid "Vendor of filament. For show only."
msgstr "Виробник філаменту. Для показу, тільки для відображення"
@@ -15884,6 +17149,94 @@ msgstr "Багатолінійне заповнення"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Використання кількох ліній для шаблону заповнення, якщо шаблон це підтримує."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Адаптивна щільність (експериментально)"
+
+# AI Translated
+# Needs human review: Option names (Деформація за відстанню, Плавне змішування, Ступінчасті оболонки, Частки, Нормаль) are new; check they read well in the Adaptive density dropdown.
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Поступово змінює щільність заповнення «Гіроїд» і TPMS усередині обʼєкта: його комірки збільшуються від поверхні обʼєкта до центру. Біля поверхні використовується щільність часткового заповнення, а в центрі — внутрішня щільність.\n"
+"«Деформація за відстанню», «Плавне змішування» та «Ступінчасті оболонки» враховують відстань до найближчої поверхні, зокрема верхньої та нижньої, а внутрішня щільність припадає на найвіддаленішу від неї точку:\n"
+" - Деформація за відстанню: один безперервний шаблон, розтягнутий і зсунутий там, де відстань змінюється по-різному в різних напрямках, як у пластинах і довгих частинах.\n"
+" - Плавне змішування: шаблони сусідніх щільностей плавно переходять один в одний, з невеликими петлями в місцях стику.\n"
+" - Ступінчасті оболонки: оболонки звичайного шаблону зі щільностями, що відрізняються приблизно в 1,5 раза, а їхні лінії зʼєднано вздовж меж оболонок.\n"
+" - Частки: враховує 3D-форму обʼєкта, зокрема його верхню й нижню частини. Кожна частка — частина, зʼєднана з рештою вужчою шийкою, — має власний градієнт до свого центру.\n"
+" - Нормаль Z, Y або X: враховує перерізи обʼєкта, перпендикулярні до цієї осі, тож уздовж неї щільність не змінюється."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Деформація за відстанню"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Плавне змішування"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Ступінчасті оболонки"
+
+# AI Translated
+# Needs human review: Adaptive density option: shape lobes joined by a narrow neck; check 'Частки' reads right in the dropdown.
+msgid "Lobes"
+msgstr "Частки"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Нормаль Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Нормаль Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Нормаль X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Внутрішня щільність"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Щільність адаптивного заповнення в центрі обʼєкта."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Адаптивний градієнт"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Як змінюється щільність від поверхні до центру обʼєкта.\n"
+"Лінійний: щільність змінюється з постійною швидкістю.\n"
+"Квадратичний: біля поверхні щільність залишається близькою до щільності часткового заповнення й швидше змінюється ближче до центру.\n"
+"Експоненційний: щільність швидко змінюється одразу під поверхнею й вирівнюється ближче до центру."
+
+# AI Translated
+msgid "Linear"
+msgstr "Лінійний"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Квадратичний"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Експоненційний"
+
# AI Translated
msgid "Z-buckling bias optimization (experimental)"
msgstr "Оптимізація зміщення проти Z-вигинання (експериментально)"
@@ -15925,8 +17278,9 @@ msgstr "Кубічний"
msgid "Adaptive Cubic"
msgstr "Адаптивний кубічний"
+# AI Translated
msgid "Quarter Cubic"
-msgstr "Четверть Куба"
+msgstr "Чверть куба"
msgid "Support Cubic"
msgstr "Підтримуючий кубічний"
@@ -16041,14 +17395,16 @@ msgstr "Висота першого шару"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Висота першого шару. Невелике збільшення висоти першого шару може покращити прилипання до робочої пластини"
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Швидкість першого шару, за винятком зони суцільного заповнення"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Швидкість периметрів і кайми першого шару."
msgid "First layer infill"
msgstr "Заповнення першого шару"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Швидкість зони суцільного заповнення першого шару"
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Швидкість першого шару, за винятком периметрів і кайми, як-от заповнення, заповнення прогалин і підтримки."
msgid "First layer travel speed"
msgstr "Швидкість переміщення першого шару"
@@ -16531,6 +17887,10 @@ msgstr "Тип G-code"
msgid "What kind of G-code the printer is compatible with."
msgstr "З яким G-code сумісний принтер."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (застарілий)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -16797,16 +18157,18 @@ msgstr "Ширина лінії внутрішнього розрідженог
msgid "Infill/wall overlap"
msgstr "Накладання заповнення/стінки"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Область заповнення дещо збільшена, щоб перекривати стіну для кращого зчеплення. Значення у відсотках відносно ширини лінії розрідженого заповнення. Встановіть це значення на рівні ~10-15%, щоб мінімізувати можливість надмірного видавлювання та накопичення матеріалу, що призводить до шорсткості верхньої поверхні."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Область заповнення дещо збільшена, щоб перекривати стіну для кращого зчеплення. Значення у відсотках відносно ширини лінії внутрішньої стінки. Встановіть це значення на рівні ~10-15%, щоб мінімізувати можливість надмірного видавлювання та накопичення матеріалу, що призводить до шорсткості верхньої поверхні."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Накладання суцільного заповнення на стінки зверху та знизу"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "Площа верхнього суцільного заповнення злегка збільшується, щоб накладатися на стінку для кращого зчеплення та зменшення прогалин у місцях прилягання верхнього заповнення до стінок. Значення 25-30% є хорошим початком для мінімізації таких прогалин. Значення у відсотках відносно ширини лінії часткового заповнення"
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "Площа верхнього суцільного заповнення злегка збільшується, щоб накладатися на стінку для кращого зчеплення та зменшення прогалин у місцях прилягання верхнього заповнення до стінок. Значення 25-30% є хорошим початком для мінімізації таких прогалин. Значення у відсотках відносно ширини лінії внутрішньої стінки."
msgid "This is the speed for internal sparse infill."
msgstr "Швидкість внутрішнього часткового заповнення"
@@ -16832,11 +18194,9 @@ msgstr "Максимальна ширина сегментованої обла
msgid "Interlocking depth of a segmented region"
msgstr "Глибина взаємного взаємодії сегментованої області"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr ""
-"Глибина зчеплення сегментованої області. Буде ігноруватися, якщо \"mmu_segmented_region_max_width\" дорівнює нулю або якщо \"mmu_segmented_region_interlocking_depth\" більший за \"mmu_segmented_region_max_width\".\n"
-"\n"
-"Нульове значення вимикає цю функцію."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Глибина зчеплення сегментованої області. На кожному другому шарі сегментована область обмежується цією глибиною. Ігнорується, якщо ввімкнено \"interlocking_beam\". Нульове значення вимикає цю функцію."
msgid "Use beam interlocking"
msgstr "Використовувати зчеплення балками"
@@ -16957,11 +18317,11 @@ msgstr "Кут мінімізації висоти стінки"
# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Зменшує висоту периметрів верхньої поверхні відповідно до висоти краю моделі.\n"
-"Впливає на периметри з нахилом, меншим за цей кут (у градусах).\n"
+"Впливає на периметри з нахилом, більшим за цей кут (у градусах).\n"
"Розумне значення — 35. Встановіть 0, щоб вимкнути."
# AI Translated
@@ -17044,17 +18404,21 @@ msgstr "Максимальна швидкість Z"
msgid "Maximum speed E"
msgstr "Максимальна швидкість E"
-msgid "Maximum X speed"
-msgstr "Максимальна швидкість X"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Максимальна швидкість осі X"
-msgid "Maximum Y speed"
-msgstr "Максимальна швидкість Y"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Максимальна швидкість осі Y"
-msgid "Maximum Z speed"
-msgstr "Максимальна швидкість Z"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Максимальна швидкість осі Z"
-msgid "Maximum E speed"
-msgstr "Максимальна швидкість E"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Максимальна швидкість осі E"
msgid "Maximum acceleration X"
msgstr "Максимальне прискорення X"
@@ -17593,7 +18957,7 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Можливості плагінів, на які посилається цей пресет, зберігаються як name;uuid;capability."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr "Плагіни Python, що викликаються на кожному кроці конвеєра нарізки для читання та зміни проміжних даних нарізки, включно з фінальним кроком постобробки G-code. Дослідницьке/експериментальне."
msgid "Printer type"
@@ -17963,7 +19327,8 @@ msgstr "З’єднання з шарфом для внутрішніх стін
msgid "Use scarf joint for inner walls as well."
msgstr "Використовувати з’єднання з шарфом також для внутрішніх стін."
-msgid "Role base wipe speed"
+# AI Translated
+msgid "Role based wipe speed"
msgstr "Швидкість протирання залежно від типу"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -18055,16 +19420,15 @@ msgstr "Обмежує петлі спідниці/захисного екран
msgid "Draft shield"
msgstr "Захисний екран"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
-"Захисний екран буде корисним для захисту друку ABS або ASA від викривлення та відлипання від столу в наслідок протягу повітря. Зазвичай він потрібен для відкритих принтерів, які не мають закритої камери.\n"
+"Захисний екран буде корисним для захисту друку ABS або ASA від викривлення та відлипання від столу внаслідок протягу повітря. Зазвичай він потрібен для відкритих принтерів, які не мають закритої камери.\n"
"\n"
-"Увімкнено = Спідниця буде тої ж висоти що і найвищий обʼєкт друку. Інакше буде застосовано параметр \"Висота спідниці\"\n"
-"До уваги: При увімкненому захисному екрані, спідниця буде надрукована на відстані від обʼєкту. Тому, якщо увімкнена кайма, вони можуть перетинатися. Щоб запобігти цьому, збільшіть значення відстані спідниці.\n"
+"Увімкнено = спідниця буде такої ж висоти, як і найвищий обʼєкт друку. Інакше буде застосовано параметр «Висота спідниці»."
msgid "Enabled"
msgstr "Увімкнуто"
@@ -18177,6 +19541,7 @@ msgid "Sets the finishing flow ratio while ending the spiral. Normally the spira
msgstr "Задає кінцевий коефіцієнт потоку при завершенні спіралі. Зазвичай спіральний перехід плавно знижує коефіцієнт потоку від 100% до 0% під час проходу останнього контуру, що може призвести до недостатньої подачі філаменту у кінці спіралі."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "If smooth or traditional mode is selected, a timelapse video will be generated for each print. After each layer is printed, a snapshot is taken with the chamber camera. All of these snapshots are composed into a timelapse video when printing completes. If smooth mode is selected, the toolhead will move to the excess chute after each layer is printed and then take a snapshot. Since the melt filament may leak from the nozzle during the process of taking a snapshot, a prime tower is required for smooth mode to wipe the nozzle."
msgstr "Якщо вибрано плавний або традиційний режим, для кожного друку буде згенеровано таймлапс-відео. Після друку кожного шару камерою термокамери робиться знімок. Усі ці знімки поєднуються в таймлапс-відео після завершення друку. Якщо вибрано плавний режим, після друку кожного шару головка переміщається до лотка для відходів і лише потім робиться знімок. Оскільки під час зйомки з сопла може витікати розплавлений філамент, для плавного режиму потрібна підготовча вежа для очищення сопла."
@@ -18237,6 +19602,130 @@ msgstr "Мульти-матеріальний (ММ) друк з одним ек
msgid "Use single nozzle to print multi filament."
msgstr "Використовувати одне сопло для друку декількома філаментами"
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "Принтер IDEX/IQEX"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Увімкнути паралельний друк для принтерів із кількома незалежними каретками (IDEX, IQEX тощо)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Зони, керовані прошивкою"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Якщо увімкнено, слайсер генерує G-code із вмістом основної зони, відцентрованим відносно початку координат столу (0,0). За розміщення копій і дзеркальних відображень у кожній фізичній зоні відповідає прошивка принтера. Вмикайте лише на принтерах, прошивка яких сама застосовує зміщення зон у режимі копії чи дзеркала (наприклад, режим дублювання IDEX у RepRapFirmware). Не діє в режимі «Основний»."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Кількість порталів"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Кількість незалежних порталів по осі Y. 1 для IDEX/однорейкових IQEX. 2 для систем із двома порталами (ділить стіл на ряди)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Інструментів на портал"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Кількість незалежних головок на одному порталі вздовж X. 2 для систем типу IDEX."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Положення інструмента 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Фізичне положення на столі, де розташований інструмент T0 (індекс 0). Визначає, як індекси інструментів відповідають зонам столу. Для систем з одним порталом (IDEX) має значення лише лівий чи правий бік; для систем із двома порталами (IQEX) можна вибрати будь-який із чотирьох кутів (спереду = менший Y / ближче до оператора, ззаду = більший Y / задня частина машини)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Зазор сопла X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Відстань (мм) від сопла до краю каретки з боку можливого зіткнення по X. Використовується для обчислення ширини смуги виключення зіткнень на кожній межі X."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Зазор сопла Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Відстань (мм) від сопла до краю каретки з боку можливого зіткнення по Y. Використовується для обчислення ширини смуги виключення зіткнень на кожній межі Y."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Запас безпеки"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Рекомендаційна смуга зазору (мм), яка не блокує нарізку й відображається всередині основної зони на кожній межі каретки. Обʼєкти, розміщені в цій смузі, однаково буде нарізано; це лише візуальне нагадування залишати додатковий зазор біля краю зони."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Тема візуалізації"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Колірна тема для візуалізації зон столу IDEX/IQEX. За потреби виберіть тему, зручну для людей з порушеннями кольорового зору."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Дейтеранопія / Протанопія (червоний-зелений)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Тританопія (синій-жовтий)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Висока контрастність"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "Режим друку IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Назва активного паралельного режиму друку IDEX/IQEX або \"primary\" для друку однією кареткою. Потребує ввімкненого параметра «Принтер IDEX/IQEX» у пресеті принтера (Принтер → Мультиматеріал → Конфігурація IDEX/IQEX)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "Карта філаментів головок IDEX/IQEX"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Перевизначення для пластини, що зіставляє фізичні головки зі слотами філаменту (нумерація з 1). Порожнє значення означає, що кожна головка використовує перший філамент, на який її спрямовує карта фізичних екструдерів принтера."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "Назви режимів IDEX/IQEX"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Відображувані назви для кожного користувацького паралельного режиму друку IDEX/IQEX."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Активні інструменти режимів IDEX/IQEX"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Призначення ролей інструментів для кожного режиму. Формат: \"idx:P,idx:C,idx:M\", де P=Primary (основний), C=Copy (копія), M=Mirror (дзеркало) (наприклад, \"0:P,1:C,2:M,3:M\"). Керується редактором режимів IDEX/IQEX у пресеті принтера."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-code режимів IDEX/IQEX"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code або виклик макросу, що вставляється на початку друку для кожного режиму."
+
msgid "Manual Filament Change"
msgstr "Ручна заміна філаменту"
@@ -18244,10 +19733,12 @@ msgid "Enable this option to omit the custom Change filament G-code only at the
msgstr "Увімкніть цей параметр, щоб пропустити користувацький G-code зміни нитки лише на початку друку. Команда зміни інструмента (наприклад, T0) буде пропущена протягом усього друку. Це корисно для ручного друку на декількох матеріалах, де ми використовуємо M600/PAUSE для запуску ручної заміни нитки."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
msgid "Wipe tower type"
msgstr "Тип вежі протирання"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
msgid "Choose the wipe tower implementation for multi-material prints. Type 1 is recommended for Bambu and Qidi printers with a filament cutter. Type 2 offers better compatibility with multi-tool and MMU printers and provide overall better compatibility."
msgstr "Виберіть реалізацію вежі протирання для багатоматеріального друку. Тип 1 рекомендовано для принтерів Bambu та Qidi з відрізним механізмом філаменту. Тип 2 забезпечує кращу сумісність з багатоінструментальними та MMU-принтерами і загалом кращу сумісність."
@@ -18267,18 +19758,22 @@ msgid "Enable filament ramming"
msgstr "Увімкнути накат нитки"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
msgid "Tool change on wipe tower"
msgstr "Зміна інструмента на вежі протирання"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
msgstr "Примусово переміщати головку до вежі протирання перед видачею команди зміни інструмента (Tx). Стосується лише багатоекструдерних (багатоінструментальних) принтерів з вежею протирання типу 2. Типово Orca пропускає це переміщення на багатоінструментальних машинах, оскільки заміну головки виконує прошивка, через що команда Tx може бути видана над надрукованою деталлю. Увімкніть цю опцію, якщо хочете, щоб зміна інструмента завжди відбувалася над вежею протирання."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
msgid "Wait for temperature on wipe tower"
msgstr "Очікувати температуру на вежі протирання"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
msgstr "Бере новий інструмент, не чекаючи, доки він досягне температури друку, переміщується до вежі протирання й чекає на температуру там, безпосередньо перед промивкою. Матеріал, що витікає під час нагрівання, потрапляє на вежу, а не на модель, а переміщення збігається з нагріванням. Актуально лише для принтерів із кількома екструдерами (кількома головками), які використовують вежу протирання типу 2. Прошивка або макрос зміни інструменту не повинні самі чекати на температуру. Коли вимкнено, команда очікування температури видається одразу після команди зміни інструменту."
@@ -18286,6 +19781,7 @@ msgid "No sparse layers (beta)"
msgstr "Без розріджених шарів (бета)"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower, so the tower ends up below the model and the toolhead has to reach down to it. Layouts where that would collide with an already printed object are rejected. Has no effect with smooth timelapse or clumping detection, which need a tower on every layer."
msgstr "Якщо увімкнено, вежу протирання не буде надруковано на шарах без змін інструменту. На шарах зі зміною інструменту екструдер опуститься вниз, щоб надрукувати вежу протирання, тож вежа опиняється нижче моделі, і головці доводиться тягнутися до неї вниз. Компонування, за яких це призвело б до зіткнення з уже надрукованим обʼєктом, відхиляються. Не діє за плавного таймлапсу чи виявлення налипань на соплі, яким потрібна вежа на кожному шарі."
@@ -18294,6 +19790,7 @@ msgid "Combine sparse layers"
msgstr "Обʼєднувати розріджені шари"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid ""
"If enabled, consecutive layers on which the prime tower has no filament change are printed as a single thicker tower layer instead of one thin layer each, the same way infill combination merges sparse infill. The merged layer is printed at the top of the run, at the height of everything it covers.\n"
"\n"
@@ -18628,6 +20125,170 @@ msgstr "Поріг накладання"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Якщо пороговий кут дорівнює нулю, підтримка буде генеруватися для нависань, перекриття яких знаходиться нижче порогу. Чим менше це значення, тим крутіше нависання можна надрукувати без підтримки."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Нахил столу X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Кут нахилу столу вздовж осі X. Додатне значення нахиляє стіл так, що сторона +X стає вищою, зміщуючи напрямок сили тяжіння до -X і збільшуючи нависання на стороні +X. Відʼємне значення піднімає сторону -X. Встановіть 0, щоб не нахиляти по осі X. У режимі стрічкового принтера автоматично синхронізується з кутом нахилу стрічки."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Нахил столу Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Кут нахилу столу вздовж осі Y. Додатне значення нахиляє стіл так, що сторона +Y стає вищою, зміщуючи напрямок сили тяжіння до -Y і збільшуючи нависання на стороні +Y. Відʼємне значення піднімає сторону -Y. Встановіть 0, щоб не нахиляти по осі Y."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Увімкнути стрічковий друк"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Увімкнути режим стрічкового принтера. Стрічкові принтери використовують як поверхню друку конвеєрну стрічку, нахилену під кутом (зазвичай 45 градусів). Слайсер повертає площину нарізки та перетворює координати G-code для нахиленої поверхні друку."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Нескінченна вісь Y"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Увімкнути нескінченну вісь Y для стрічкових принтерів. Якщо увімкнено, обмеження робочого обʼєму по осі Y фактично знімається, що дає змогу друкувати обʼєкти будь-якої довжини вздовж напрямку стрічки."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Вісь нахилу стрічки"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Вісь, навколо якої сітку повертають перед нарізкою. Це нахил стрічкового принтера: ізометричне (без спотворень) обертання, яке також визначає відображення столу й нахил сили тяжіння для підтримок і яке зворотне перетворення G-code скасовує перед зсувом/масштабуванням і перепризначенням осей у машинній системі координат. X — типовий нахил порталу (стрічка рухається вздовж Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Кут нахилу стрічки"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Кут нахилу поверхні стрічки в градусах. Більшість стрічкових принтерів використовує 45°. Додатні значення повертають проти годинникової стрілки, якщо дивитися вздовж додатного напрямку осі нахилу; абсолютне значення також є фізичним нахилом стрічки, що використовується для відображення столу й напрямку сили тяжіння для підтримок."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Відокремити нахил машинної системи координат"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Експертне перевизначення: задає кут нахилу машинної системи координат (зсув/масштаб G-code) незалежно від кута повороту перед нарізкою. Якщо вимкнено, перетворення машинної системи координат обчислюється з кута нахилу стрічки, тож один кут керує обома етапами. Вмикайте лише для компенсації машини, фізичний нахил порталу якої відрізняється від повороту під час нарізки."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Кут нахилу машинної системи координат"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Кут нахилу (у градусах), з якого обчислюються зсув (cot) і масштаб (1/|sin|) машинної системи координат, що застосовуються до G-code. Використовується лише тоді, коли ввімкнено «Відокремити нахил машинної системи координат»; інакше використовується кут нахилу стрічки."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+# Needs human review: Remap option meaning reversed axis (max - pos); check the short label fits the dropdown.
+msgid "Rev X"
+msgstr "Обернена X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Обернена Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Обернена Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "Перепризначення осі X у G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Яка вісь нарізки відповідає осі X машини у вихідному G-code. Застосовується ПІСЛЯ нарізки, під час генерації G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "Перепризначення осі Y у G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Яка вісь нарізки відповідає осі Y машини у вихідному G-code. Застосовується ПІСЛЯ нарізки, під час генерації G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "Перепризначення осі Z у G-code"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Яка вісь нарізки відповідає осі Z машини у вихідному G-code. Застосовується ПІСЛЯ нарізки, під час генерації G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Зміщення Z підлоги підтримок"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Зміщує обчислену підлогу стрічки вгору або вниз (мм). Відʼємні значення опускають підлогу, завдяки чому зберігається більше підтримок. Використовуйте для діагностики проблем формули підлоги стрічки."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Увімкнути вежу очищення на стрічці"
+
+# AI Translated
+# Needs human review: Glossary cell for Prime tower / Wipe tower is unsettled (⚠); 'wipe/prime tower' rendered with the catalog's 'підготовча вежа' only.
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Заміна підготовчої вежі для стрічкових принтерів. Якщо ввімкнено на стрічковому принтері, поруч із друкованими частинами автоматично створюється призма очищення, і очищення під час зміни філаменту виконується в неї (класичну підготовчу вежу не можна використовувати на стрічкових принтерах, бо її G-code оминає перетворення стрічки). Доступно лише на стрічкових принтерах."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Ширина вежі очищення на стрічці"
+
+# AI Translated
+# Needs human review: Glossary cell for Prime tower / Wipe tower is unsettled (⚠); 'wipe tower' rendered with the catalog's 'підготовча вежа'.
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Ширина (машинна вісь X, поперек стрічки) призми очищення, яка автоматично створюється на стрічкових принтерах, коли ввімкнено вежу очищення на стрічці та використовується кілька філаментів. Очищення під час зміни філаменту виконується в екструзії цієї призми замість класичної підготовчої вежі. Її висота обчислюється автоматично з найбільшого обʼєму очищення на шар: ширша призма буде нижчою."
+
msgid "Tree support branch angle"
msgstr "Кут гілки опори дерева"
@@ -18820,13 +20481,11 @@ msgstr "Роздільні заповнення"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"Центрує внутрішнє заповнення кожної частини на ній самій, ніби її нарізали окремо, а не на всій збірці. Частини, що торкаються або перекриваються, вважаються одним тілом і мають спільний центр; окремі частини (або різні 3D-обʼєкти) отримують власний.\n"
-"Корисно, коли збірка групує кілька обʼєктів, кожен з яких має зберігати узгоджене, самоцентроване заповнення.\n"
-"Впливає на лінійні та сіткові шаблони, а також на заповнення з шаблонами обертання.\n"
-"Шаблони, привʼязані до глобальних координат (Гіроїд, Медові стільники, TPMS, ...), не змінюються."
+"Центрує внутрішнє заповнення кожної частини відносно неї самої, ніби її нарізали окремо, а не відносно всієї збірки. Частини, що торкаються або перекриваються, вважаються одним тілом і мають спільний центр; окремі частини (або різні 3D-обʼєкти) отримують власний.\n"
+"Корисно, коли збірка обʼєднує кілька обʼєктів, кожен з яких має зберігати узгоджене заповнення з центром у ньому самому.\n"
+"«Адаптивний кубічний» і «Підтримуючий кубічний» завжди центрують кожну частину відносно неї самої, а заповнення «Блискавка» створюється для всього обʼєкта, тож цей параметр на нього не впливає."
# AI Translated
msgid "Center surface pattern on"
@@ -18889,6 +20548,7 @@ msgid "Enable mixed color sublayer splitting. When enabled, layers containing mi
msgstr "Вмикає розбиття на підшари змішаного кольору. Коли увімкнено, шари, що містять філаменти змішаного кольору, розбиваються на підшари для отримання ефекту змішування кольорів."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects."
msgstr "Вежа протирання може використовуватися для очищення залишків на соплі та стабілізації тиску в камері всередині сопла, щоб уникнути дефектів зовнішнього вигляду під час друку обʼєктів."
@@ -18941,6 +20601,7 @@ msgid "Wipe tower rotation angle with respect to X axis."
msgstr "Кут повороту вежі протирання за віссю Х."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Brim width of prime tower, negative number means auto calculated width based on the height of prime tower."
msgstr "Ширина кайми підготовчої вежі; відʼємне число означає автоматично обчислену ширину на основі висоти підготовчої вежі."
@@ -18953,41 +20614,44 @@ msgstr "Кут на вершині конуса, який використову
msgid "Maximum wipe tower print speed"
msgstr "Максимальна швидкість друку вежі протирання"
+# AI Translated
+# Needs human review: Glossary cell for Prime tower / Wipe tower is unsettled (two renderings); used 'вежа протирання' as in the existing labels (Wipe tower, Wipe tower parameters). Check it against the final term.
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
-"Максимальна швидкість друку під час продування у башті витирання та друку розріджених шарів у башті витирання. Якщо під час продування швидкість розрідженого заповнення або розрахована швидкість на основі максимальної обʼємної швидкості нитки нижча, замість неї використовуватиметься найнижча швидкість.\n"
+"Максимальна швидкість друку під час очищення на вежі протирання та друку розріджених шарів вежі протирання. Якщо під час очищення швидкість часткового заповнення або розрахована швидкість на основі максимальної обʼємної швидкості філаменту нижча, замість неї використовуватиметься найнижча швидкість.\n"
"\n"
-"Під час друку розріджених шарів, якщо швидкість по внутрішньому периметру або розрахована швидкість на основі максимальної обʼємної швидкості нитки нижча, буде використовуватися найнижча швидкість.\n"
+"Під час друку розріджених шарів, якщо швидкість часткового заповнення або розрахована швидкість на основі максимальної обʼємної швидкості філаменту нижча, буде використовуватися найнижча швидкість.\n"
"\n"
-"Збільшення цієї швидкості може вплинути на стабільність башти, а також збільшити силу, з якою сопло стикається з будь-якими згустками, що можуть утворитися на башті витирання.\n"
+"Збільшення цієї швидкості може вплинути на стабільність вежі, а також збільшити силу, з якою сопло стикається з будь-якими згустками, що могли утворитися на вежі протирання.\n"
"\n"
-"Перш ніж збільшувати цей параметр понад значення за замовчуванням 90 мм/с, переконайтеся, що принтер може надійно працювати на підвищених швидкостях і що витікання під час заміни інструменту добре контролюється.\n"
+"Перш ніж збільшувати цей параметр понад значення за замовчуванням 90 мм/с, переконайтеся, що принтер може надійно друкувати мости на підвищених швидкостях і що просочування під час заміни інструмента добре контролюється.\n"
"\n"
-"Для зовнішніх периметрів вежі витирання використовується швидкість внутрішнього периметра незалежно від цього параметра."
+"Для зовнішніх периметрів вежі протирання використовується швидкість внутрішнього периметра, яка також обмежується цим параметром."
msgid "Wall type"
msgstr "Тип стіни"
# AI Translated
+# Needs human review: Glossary cell for Prime tower / Wipe tower is unsettled (two renderings); used 'вежа протирання' as in the existing labels (Wipe tower, Wipe tower parameters). Check it against the final term.
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"Тип зовнішньої стінки вежі протирання.\n"
-"1. Прямокутник: типовий тип стінки, прямокутник з фіксованою шириною та висотою.\n"
+"1. Прямокутник: прямокутник з фіксованою шириною та висотою.\n"
"2. Конус: конус із заокругленням унизу, що допомагає стабілізувати вежу протирання.\n"
-"3. Ребро: додає до стінки вежі чотири ребра для більшої стійкості."
+"3. Ребро: типовий тип стінки, що додає до стінки вежі чотири ребра для більшої стійкості."
msgid "Rectangle"
msgstr "Прямокутник"
@@ -19006,6 +20670,7 @@ msgid "Rib width"
msgstr "Ширина ребра"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Rib width is always less than half the prime tower side length."
msgstr "Ширина ребра завжди менша за половину довжини сторони підготовчої вежі."
@@ -19014,6 +20679,7 @@ msgid "Fillet wall"
msgstr "Заокруглена стінка"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "The wall of prime tower will fillet."
msgstr "Стінка підготовчої вежі матиме заокруглення."
@@ -19030,6 +20696,7 @@ msgid "Skip points"
msgstr "Пропустити точки"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "The wall of prime tower will skip the start points of wipe path."
msgstr "Стінка підготовчої вежі пропускатиме початкові точки шляху протирання."
@@ -19037,14 +20704,17 @@ msgid "Enable tower interface features"
msgstr "Дозволити можливості інтерфейсу вежі"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Enable optimized prime tower interface behavior when different materials meet."
msgstr "Увімкнути оптимізовану поведінку інтерфейсу підготовчої вежі, коли зустрічаються різні матеріали."
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "Cool down from interface boost during prime tower"
msgstr "Охолодження після підвищення для інтерфейсу під час підготовчої вежі"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "підготовча вежа"; align it once the term is settled.
msgid "When interface-layer temperature boost is active, set the nozzle back to print temperature at the start of the prime tower so it cools down during the tower."
msgstr "Коли активне підвищення температури для інтерфейсного шару, повернути соплу температуру друку на початку підготовчої вежі, щоб воно охолоджувалося під час друку вежі."
@@ -19065,6 +20735,14 @@ msgstr "Очищення після зміни філаменту буде ви
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Цей обʼєкт буде використаний для очищення сопла після зміни філаменту для економії філаменту та зменшення часу друку. В результаті кольори обʼєктів будуть змішані. Ця опція не набуде чинності, поки не включена підготовча вежа."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Обʼєкт вежі очищення на стрічці"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Позначає автоматично створену призму очищення на стрічці. Керується автоматично; не встановлюйте вручну."
+
msgid "Maximal bridging distance"
msgstr "Максимальна мостова відстань"
@@ -19080,8 +20758,10 @@ msgstr "Відстань між лініями очищення на вежі п
msgid "Extra flow for purging"
msgstr "Додатковий потік для очищення"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Додатковий потік для ліній очистки на вежі протирання. Це робить лінії очистки товщими або вужчими, ніж зазвичай. Відстань між лініями налаштовується автоматично."
+# AI Translated
+# Needs human review: Glossary cell for Prime tower / Wipe tower is unsettled (two renderings); used 'вежа протирання' as in the existing labels (Wipe tower, Wipe tower parameters). Check it against the final term.
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Додатковий потік для ліній очищення на вежі протирання. Це робить лінії очищення товщими, ніж зазвичай. Відстань між лініями налаштовується автоматично."
msgid "Idle temperature"
msgstr "Температура очікування"
@@ -19203,11 +20883,15 @@ msgstr "Мінімальна товщина тонких елементів. Е
msgid "Minimum wall length"
msgstr "Мінімальна довжина стінок"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
-msgstr "Налаштуйте це значення, щоб запобігти друкуванню коротких незакритих стін, що може збільшити час друку. Вищі значення видаляють більше і довші стіни."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+msgstr ""
+"Налаштуйте це значення, щоб запобігти друкуванню коротких незакритих стін, що може збільшити час друку. Значення задається як множник ширини стінки. Вищі значення видаляють більше і довші стіни.\n"
+"\n"
+"ПРИМІТКА: нижні та верхні поверхні не зазнають впливу цього значення, щоб уникнути видимих прогалин зовні моделі. Налаштуйте «Поріг в одну стіну» в налаштуваннях «Стінки та поверхні» нижче, щоб змінити чутливість визначення верхньої поверхні. «Поріг в одну стіну» видимий лише тоді, коли це налаштування вище за типове значення 0.5 або коли ввімкнено «Тільки одна стінка на верхніх поверхнях»."
# AI Translated
msgid "Maximum wall resolution"
@@ -19222,7 +20906,7 @@ msgid "Maximum wall deviation"
msgstr "Максимальне відхилення стінки"
# AI Translated
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
msgstr "Максимальне відхилення, дозволене при зниженні роздільності для налаштування «Максимальна роздільність стінки». Якщо його збільшити, друк буде менш точним, але G-code — меншим. «Максимальне відхилення стінки» обмежує «Максимальну роздільність стінки», тож у разі конфлікту пріоритет має «Максимальне відхилення стінки»."
msgid "First layer minimum wall width"
@@ -19327,8 +21011,11 @@ msgstr "Ширина лінії моста не повинна перевищу
msgid "too large line width "
msgstr "надто велика ширина лінії "
-msgid " not in range "
-msgstr " не в зоні "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% поза діапазоном [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Експортувати проєкт як 3MF."
@@ -19479,6 +21166,14 @@ msgstr "Параметри орієнтації"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Орієнтація: 0 - вимкнено, 1 - увімкнено, інші - автоматично"
+# AI Translated
+msgid "Repair"
+msgstr "Виправити"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Виправляє сітки моделей так само, як «Виправити модель»: закриває отвори й тріщини, орієнтує їх назовні та усуває самоперетини."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Кут обертання навколо осі Z у градусах."
@@ -19595,6 +21290,12 @@ msgstr "Вихідний каталог"
msgid "This is the output directory for exported files."
msgstr "Цільова папка для експортованих файлів."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Рівень налагодження"
@@ -19763,6 +21464,54 @@ msgstr "Є перед-заряджання одиночного багато-к
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Чи використовуються в цій печатці додаткові області перед-зарядки для декількох матеріалів?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Початковий екструдер без підтримок"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Нульовий індекс першого екструдера, що використовується для друку без підтримок. Те саме, що й initial_no_support_tool."
+
+# AI Translated
+msgid "In head wrap detect zone"
+msgstr "У зоні виявлення обгортання головки"
+
+# AI Translated
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Показує, чи перший шар перекривається із зоною обгортання головки."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Поточний тип столу"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Назва поточного вибраного типу пластини столу (наприклад, 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Активний режим IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Назва активного режиму паралельного друку IDEX/IQEX для цієї пластини (наприклад, 'primary', 'mirror', 'copy'). Порожній рядок, якщо IDEX/IQEX не ввімкнено."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Індекс активного режиму IDEX/IQEX"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Нульовий індекс активного режиму паралельного друку IDEX/IQEX у imex_mode_names."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code активного режиму IDEX/IQEX"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Необроблений шаблон G-code активного режиму паралельного друку IDEX/IQEX після обчислення заповнювачів. Глобальні змінні, визначені тут, потрапляють у machine_start_gcode."
+
msgid "Volume per extruder"
msgstr "Обʼєм на один екструдер"
@@ -19822,6 +21571,7 @@ msgid "Total wipe tower cost"
msgstr "Загальна вартість 'Вежі Очищення'"
# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
msgid "Total cost of the material wasted on the wipe tower. Calculated from filament_cost value in Filament Settings."
msgstr "Загальна вартість матеріалу, витраченого на вежу протирання. Обчислюється зі значення filament_cost у налаштуваннях філаменту."
@@ -19912,6 +21662,18 @@ msgstr "Введіть назву файлу без розширення"
msgid "Source filename of the first object, without extension."
msgstr "Назва вихідного файлу першого обʼєкта не має розширення."
+# AI Translated
+msgid "Full input filename"
+msgstr "Повна назва вхідного файлу"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Назва вихідного файлу першого обʼєкта."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Назва нарізаної пластини."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Вектор має два елементи: X і Y координати точки. Значення в мм."
@@ -19942,6 +21704,59 @@ msgstr "Верхній правий кут обмежувальної рамки
msgid "Size of the print bed bounding box"
msgstr "Розмір обмежувальної рамки для друку"
+# AI Translated
+# Needs human review: Unsettled glossary term (⚠) "Prime tower / Wipe tower": this entry uses "вежа протирання"; align it once the term is settled.
+msgid "First layer center without wipe tower"
+msgstr "Центр першого шару без вежі протирання"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Висота першого шару."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Вектор температур столу для кожного екструдера/філаменту."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Вектор температур столу першого шару для кожного екструдера/філаменту. Дає те саме значення, що й first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Температура столу першого шару (початковий екструдер)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Температура столу першого шару для початкового екструдера. Те саме, що й bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Вектор температур у камері для кожного екструдера/філаменту."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Вектор мінімальних температур у камері для кожного екструдера/філаменту."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Загальна температура в камері"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Загальна температура в камері. Це максимальна температура в камері серед усіх використаних екструдерів/філаментів."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Вектор температур столу першого шару для кожного екструдера/філаменту. Дає те саме значення, що й bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Температура першого шару"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Вектор температур першого шару для кожного екструдера/філаменту."
+
msgid "Timestamp"
msgstr "Мітка часу"
@@ -19987,8 +21802,9 @@ msgstr "Назва фізичного принтера, який викорис
msgid "Layer number"
msgstr "Номер шару"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Індекс поточного шару. На одній основі (тобто перший шар номер 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Індекс поточного шару. Нумерація з нуля (тобто перший шар має номер 0), окрім G-code зміни ролі екструзії, де нумерація починається з одиниці."
msgid "Layer Z"
msgstr "Шар Z"
@@ -20008,6 +21824,252 @@ msgstr "ID номер екструдера філаменту"
msgid "The current extruder ID. The same as current_extruder."
msgstr "Поточний ідентифікатор екструдера. Те саме, що й current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Попередній екструдер"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Індекс екструдера, який вивантажується. Індекс відраховується від нуля (перший екструдер має індекс 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Наступний екструдер"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Індекс екструдера, який завантажується. Індекс відраховується від нуля (перший екструдер має індекс 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Відносна вісь E"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Показує, чи використовується відносне позиціювання."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Кількість змін інструмента"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "Кількість змін інструмента протягом друку."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Стара довжина втягування"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Довжина втягування попереднього філаменту."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Нова довжина втягування"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Довжина втягування нового філаменту."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Стара довжина втягування під час зміни інструмента"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Довжина втягування попереднього філаменту під час зміни інструмента."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Нова довжина втягування під час зміни інструмента"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "Довжина втягування нового філаменту під час зміни інструмента."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Температура старого філаменту"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "Температура старого філаменту."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Температура нового філаменту"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "Температура нового філаменту."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X після зміни інструмента"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "Позиція X після зміни інструмента."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y після зміни інструмента"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "Позиція Y після зміни інструмента."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z після зміни інструмента"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "Позиція Z після зміни інструмента."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Перший обʼєм промивки"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Перший обʼєм промивки."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Другий обʼєм промивки"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Другий обʼєм промивки."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Швидкість подачі E старого філаменту"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "Швидкість подачі екструдера для старого філаменту."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Швидкість подачі E нового філаменту"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "Швидкість подачі екструдера для нового філаменту."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "Точка переміщення 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "Точка переміщення 1 X."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Точка переміщення 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Точка переміщення 1 Y."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "Точка переміщення 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "Точка переміщення 2 X."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Точка переміщення 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Точка переміщення 2 Y."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "Точка переміщення 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "Точка переміщення 3 X."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Точка переміщення 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Точка переміщення 3 Y."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Довжина промивки 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "Перша довжина промивки."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Довжина промивки 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "Друга довжина промивки."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Довжина промивки 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "Третя довжина промивки."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Довжина промивки 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "Четверта довжина промивки."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Роль екструзії"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Нова роль/тип екструзії, які буде використано\n"
+"Можливі значення:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Остання роль екструзії"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Роль/тип екструзії, використані раніше\n"
+"Можливі значення:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Помилка у zip архіві"
@@ -20020,24 +22082,32 @@ msgstr "Створення областей заповнення"
msgid "Generating infill toolpath"
msgstr "Створення траєкторії заповнення"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z-контурування шару %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Виявлення виступів для автоматичного підйому"
msgid "Checking support necessity"
msgstr "Перевірка необхідності підтримки"
-msgid "floating regions"
-msgstr "області, що плавають"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Схоже, обʼєкт %1% має плаваючі ділянки. Змініть орієнтацію обʼєкта або увімкніть створення підтримок."
-msgid "floating cantilever"
-msgstr "плаваюча консоль"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Схоже, обʼєкт %1% має плаваючу консоль. Змініть орієнтацію обʼєкта або увімкніть створення підтримок."
-msgid "large overhangs"
-msgstr "великі звіси"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Схоже, обʼєкт %s має %s. Змініть орієнтацію обʼєкта або увімкніть Створення підтримки."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Схоже, обʼєкт %1% має великі нависання. Змініть орієнтацію обʼєкта або увімкніть створення підтримок."
msgid "Generating support"
msgstr "Генерація підтримки"
@@ -20048,8 +22118,9 @@ msgstr "Оптимізація траєкторії інструменту"
msgid "Slicing mesh"
msgstr "Нарізка сітки"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Шари не виявлені. Можливо, потрібно відновити файли STL або перевірити їх розмір або товщину і повторити спробу.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Шарів не виявлено. Можливо, варто виправити модель або перевірити її розмір чи товщину і повторити спробу.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -20068,6 +22139,397 @@ msgstr ""
msgid "Object name"
msgstr "Назва обʼєкту"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Не вдається застосувати оператор унарного мінуса."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Не вдається перетворити на ціле число."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Не вдається округлити нечислове значення."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Не вдається округлити вниз нечислове значення."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Не вдається округлити вгору нечислове значення."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Не вдається застосувати оператор not."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Не вдається додавати нечислові типи."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Не вдається віднімати нечислові типи."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Не вдається множити на нечисловий тип."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Не вдається ділити нечисловий тип."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Не вдається ділити на нечисловий тип."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Ділення на нуль"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Не логічний вираз"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Не вдається порівняти ці типи."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Не числовий тип."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: другий параметр має бути цілим числом"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: третій параметр має бути цілим числом"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Лівий операнд порівняння з регулярним виразом має бути рядком."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Не вдалося скомпілювати регулярний вираз: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "Перший параметр regex_replace() має бути рядком."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): перший параметр (рядок, з яким виконується порівняння) має бути рядковим значенням"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): шаблон має бути рядковим значенням"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Не вдалося скомпілювати регулярний вираз"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Не вдається застосувати логічну операцію до нелогічних операндів."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Спроба індексувати скалярну змінну"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Недійсний індекс вектора"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "Змінної не існує (в неактивній гілці)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "Змінної не існує"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Спроба звернутися до невизначеної (nil) необовʼязкової змінної"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Індексування порожньої векторної змінної"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Спроба звернутися до невизначеного (nil) елемента вектора необовʼязкових значень"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "Індексна змінна має бути цілим числом"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Відʼємний індекс вектора"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Не є назвою змінної"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Не є назвою змінної (в неактивній гілці)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "Змінній FloatOrPercent не вдалося визначити залежності \"ratio_over\""
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Непідтримуваний тип скалярної змінної"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Звернення до векторної змінної, коли очікується скаляр"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Непідтримуваний тип векторної змінної"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Не вдається змінити змінну лише для читання"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Правий операнд не є числовим виразом"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Очікувалася кількість елементів для заповнення вектора."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Вказано відʼємну кількість елементів."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Правий операнд не є логічним виразом"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Непідтримуваний тип вихідної скалярної змінної"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Звернення до вихідної векторної змінної, коли очікується скаляр"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Індекс поза діапазоном"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Непідтримуваний тип вихідної векторної змінної"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Символ уже визначено в системному словнику лише для читання"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Символ уже визначено як системну вихідну змінну"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Глобальні змінні недоступні в цьому контексті"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Назву змінної вже визначено в локальній області видимості"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Назву змінної вже визначено в глобальній області видимості"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Не вдається присвоїти скалярне значення векторній змінній."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Не вдається присвоїти векторне значення скалярній змінній."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Не вдається створити векторну змінну з порожнього списку ініціалізації, оскільки її тип неможливо визначити."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Правий операнд недійсний: змішування числових і логічних типів."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Не вдається присвоїти скаляр вектору"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Деякі елементи правого операнда — векторної змінної необовʼязкових значень — не визначені (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Лівий операнд — вектор float, а правий — ні."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Лівий операнд — вектор int, а правий — ні."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Лівий операнд — вектор рядків, а правий — ні."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Лівий операнд — вектор bool, а правий — ні."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Вектори лівого та правого операндів несумісні."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Дублювання цього типу векторної змінної не підтримується"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "Параметр empty() не є векторною змінною"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "Параметр size() не є векторною змінною"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Нецілочисельний індекс не можна використовувати для звернення до векторної змінної."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Генератор випадкових чисел недоступний у цьому контексті."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Помилка розбору в рядку %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Помилка розбору в рядку %1%. Очікується тег %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Помилка розбору в рядку %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "Значення інтерполяції має бути числом."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "Значення X точки таблиці має бути числом."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "Значення Y точки таблиці має бути числом."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Координати X таблиці мають зростати"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "Значення інтерполяції виходить за межі діапазону таблиці"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Невідома синтаксична помилка"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Недійсний текст."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Недійсний текстовий блок."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Недійсний макрос."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Не макрос {if}{else}{endif}."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Не макрос {switch}."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Очікується застарілий формат розгортання змінної"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Очікується ідентифікатор."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Очікується умовний вираз."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Очікується логічний вираз."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Очікується вираз."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Очікується закривальна фігурна дужка або необовʼязковий параметр."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Очікується список рядкових шаблонів (простий текст або регулярний вираз)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Очікується посилання на змінну."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Очікується назва змінної."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Очікується регулярний вираз."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Недійсна послідовність utf8"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Символи, що не належать до ASCII7, дозволені лише всередині текстових блоків і рядкових літералів, але не всередині блоків коду."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Недійсна escape-послідовність"
+
msgid "Support: generate contact points"
msgstr "Підтримка: створення точок контакту"
@@ -20085,6 +22547,10 @@ msgstr "Наданий файл не вдалося прочитати, оскі
msgid "The file format is incompatible and cannot be parsed."
msgstr "Формат файлу несумісний, і його не вдається прочитати."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Не вдалося перетворити ресурс на STL через ModelIO."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Невідомий формат файлу: вхідний файл повинен мати розширення .stl, .obj або .amf (.xml)."
@@ -20133,9 +22599,6 @@ msgstr "Перекалібрування"
msgid "Calibrate"
msgstr "Калібрувати"
-msgid "Finish"
-msgstr "Завершити"
-
msgid "How can I use calibration results?"
msgstr "Як використовувати результат калібрування?"
@@ -20233,9 +22696,14 @@ msgstr ""
"У межах одного екструдера назва(%s) має бути унікальною, коли тип філаменту, діаметр сопла та потік сопла однакові.\n"
"Ви впевнені, що хочете перезаписати попередній результат?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Цей тип машини може зберігати лише %d результатів історії на сопло. Цей результат не буде збережений."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Цей тип машини може зберігати лише %d результат історії на сопло. Цей результат не буде збережено."
+msgstr[1] "Цей тип машини може зберігати лише %d результати історії на сопло. Цей результат не буде збережено."
+msgstr[2] "Цей тип машини може зберігати лише %d результатів історії на сопло. Цей результат не буде збережено."
+msgstr[3] "Цей тип машини може зберігати лише %d результату історії на сопло. Цей результат не буде збережено."
msgid "Connecting to printer..."
msgstr "Підключення до принтера…"
@@ -20460,9 +22928,12 @@ msgid "Please connect the printer first before synchronizing."
msgstr "Будь ласка, підʼєднайтеся до принтера перед синхронізацією."
# AI Translated
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "Інформацію про сопло принтера %s не задано. Налаштуйте її, перш ніж продовжувати калібрування."
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Інформацію про праве сопло принтера не задано. Налаштуйте її, перш ніж продовжувати калібрування."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Інформацію про ліве сопло принтера не задано. Налаштуйте її, перш ніж продовжувати калібрування."
msgid "AMS and nozzle information are synced"
msgstr "Інформацію про сопло і AMS синхронізовано"
@@ -20528,6 +22999,11 @@ msgstr "З обʼємною швидкістю"
msgid "To Volumetric Speed"
msgstr "До обʼємної швидкості"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Крок"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Ви впевнені, що хочете скасувати цей друк?"
@@ -20553,9 +23029,14 @@ msgstr "Примітка: Номер хотенда на %s прив’язан
msgid "Action"
msgstr "Дія"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Цей тип машини може зберігати лише %d результатів історії на сопло."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Цей тип машини може зберігати лише %d результат історії на сопло."
+msgstr[1] "Цей тип машини може зберігати лише %d результати історії на сопло."
+msgstr[2] "Цей тип машини може зберігати лише %d результатів історії на сопло."
+msgstr[3] "Цей тип машини може зберігати лише %d результату історії на сопло."
msgid "Edit Flow Dynamics Calibration"
msgstr "Змінити калібрування динаміки потоку"
@@ -20625,8 +23106,9 @@ msgstr ""
"Коли увімкнено масштабування (рекомендовано), розмір моделі динамічно підлаштовується під діаметр вашого поточного сопла та відповідну висоту шару, завдяки чому тест є точним і легко читається.\n"
"Вимикайте масштабування, лише якщо хочете надрукувати еталонну модель точно в первісному вигляді."
+# AI Translated
msgid "PA Calibration"
-msgstr "Калібрування ВТ (РА)"
+msgstr "Калібрування ВТ (PA)"
msgid "Extruder type"
msgstr "Тип екструдера"
@@ -20634,11 +23116,13 @@ msgstr "Тип екструдера"
msgid "DDE"
msgstr "Директ"
+# AI Translated
msgid "PA Tower"
-msgstr "РА Вежа"
+msgstr "Вежа PA"
+# AI Translated
msgid "PA Line"
-msgstr "РА лінія"
+msgstr "PA лінія"
msgid "PA Pattern"
msgstr "PA Патерн"
@@ -20646,8 +23130,9 @@ msgstr "PA Патерн"
msgid "Start PA: "
msgstr "Початкове ВТ (PA): "
+# AI Translated
msgid "End PA: "
-msgstr "Кінцеве ВТ (РА): "
+msgstr "Кінцеве ВТ (PA): "
msgid "PA step: "
msgstr "Крок ВТ (PA): "
@@ -20690,12 +23175,13 @@ msgstr ""
"Значення прискорення мають бути більшими за значення швидкості.\n"
"Перевірте введені дані."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Поки що недоступно на стрічкових принтерах — використовуйте натомість метод «Вежа PA»."
+
msgid "Temperature calibration"
msgstr "Калібрування температури"
-msgid "Filament type"
-msgstr "Тип філаменту"
-
msgid "PLA"
msgstr "PLA"
@@ -20717,6 +23203,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Тестова модель"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Стандартна"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Нависання"
+
msgid "Start temp: "
msgstr "Початкова температура: "
@@ -20842,9 +23341,6 @@ msgstr "Початкова довжина ретракту: "
msgid "End retraction length: "
msgstr "Кінцева довжина ретракту: "
-msgid "Test model"
-msgstr "Тестова модель"
-
# AI Translated
msgid "Ringing Tower"
msgstr "Вежа резонансу (Ringing Tower)"
@@ -20878,8 +23374,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Частота (Початок / Кінець): "
-msgid "Start / End"
-msgstr "Початок / Кінець"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X початок / кінець: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y початок / кінець: "
msgid "Frequency settings"
msgstr "Налаштування частоти"
@@ -20923,8 +23424,12 @@ msgid "Frequency: "
msgstr "Частота: "
# AI Translated
-msgid "Damp"
-msgstr "Демпфування"
+msgid "Frequency X / Y: "
+msgstr "Частота X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Демпфування (початок / кінець): "
# AI Translated
msgid "RepRap firmware uses the same frequency for both axes."
@@ -21063,8 +23568,12 @@ msgstr "Дозволити IFS"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "На принтері виявлено %d слотів IFS."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "На принтері виявлено %d слот IFS."
+msgstr[1] "На принтері виявлено %d слоти IFS."
+msgstr[2] "На принтері виявлено %d слотів IFS."
+msgstr[3] "На принтері виявлено %d слота IFS."
# AI Translated
msgid "This printer does not report a material station."
@@ -21189,8 +23698,10 @@ msgstr "Ціль"
msgid "Subtract with"
msgstr "Відʼємник"
-msgid "selected"
-msgstr "вибрані"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 вибрано"
msgid "Part 1"
msgstr "Частина 1"
@@ -21303,9 +23814,6 @@ msgstr "наприклад, Basic, Matte, Silk, Marble"
msgid "Filament Preset"
msgstr "Набір параметрів філаменту"
-msgid "Create"
-msgstr "Створити"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "Виробник не вибраний. Будь ласка, перевиберіть виробника."
@@ -21615,6 +24123,10 @@ msgstr ""
"Принтер і всі нитки та налаштування процесу, які належать принтеру.\n"
"Ними можна ділитись з іншими."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Включити власну текстуру та модель столу"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -21668,17 +24180,6 @@ msgstr "Примітка: Якщо єдиний пресет під цим фі
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Пресети, що успадковуються іншими пресетами, не можуть бути видалені"
-# AI Translated
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Профіль вказаний нижче, успадковується від поточного профілю."
-msgstr[1] "Профілі вказані нижче, успадковуються від поточного профілю."
-msgstr[2] "Профілі вказані нижче, успадковуються від поточного профілю."
-msgstr[3] "Профілі вказані нижче, успадковуються від поточного профілю."
-
-msgid "Delete Preset"
-msgstr "Видалити пресет"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Ви впевнені, що хочете видалити вибраний пресет?"
@@ -21758,11 +24259,13 @@ msgid "The number of printer extruders and the printer selected for calibration
msgstr "Кількість екструдерів не підходить для принтера, що було обрано для калібрування."
# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "Діаметр сопла екструдера %s становить 0.2 мм, що не підтримує автоматичне калібрування динаміки потоку."
# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -21780,6 +24283,13 @@ msgstr ""
"Натисніть кнопку синхронізації вище та перезапустіть калібрування."
# AI Translated
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Інформацію про сопло принтера %s не задано. Налаштуйте її, перш ніж продовжувати калібрування."
+
+# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21853,6 +24363,11 @@ msgstr "Виявити принтер Creality K-серії"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Клацніть Сканувати, щоб переглянути принтери K-серії у вашій мережі."
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Модель"
+
# AI Translated
msgid "Scan"
msgstr "Сканувати"
@@ -21870,9 +24385,14 @@ msgstr "(невідома K-серія)"
msgid "No K-series printers found. Make sure the printer is on the same network and not blocked by Wi-Fi client isolation, then click Scan again."
msgstr "Принтерів K-серії не знайдено. Переконайтеся що принтер в одній мережі і не заблокований клієнтським ізолюванням Wi-Fi, потім ще раз клацніть Сканувати."
+# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "Знайдено %zu принетр(ів) Creality. Виберіть один і натисніть Використати вибране."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "Знайдено %zu принтер Creality. Виберіть його та натисніть «Використати вибране»."
+msgstr[1] "Знайдено %zu принтери Creality. Виберіть один і натисніть «Використати вибране»."
+msgstr[2] "Знайдено %zu принтерів Creality. Виберіть один і натисніть «Використати вибране»."
+msgstr[3] "Знайдено %zu принтера Creality. Виберіть один і натисніть «Використати вибране»."
msgid "Active"
msgstr "Активний"
@@ -21965,8 +24485,15 @@ msgstr "Не вдалося визначити виконуваний шлях."
msgid "Failed to launch a new instance."
msgstr "Не вдалося запустити новий екземпляр."
-msgid "log(s)"
-msgstr "лог(и)"
+# AI Translated
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d журнал (%.2f %s)"
+msgstr[1] "%d журнали (%.2f %s)"
+msgstr[2] "%d журналів (%.2f %s)"
+msgstr[3] "%d журналу (%.2f %s)"
msgid "Choose where to save the exported JSON file"
msgstr "Оберіть де зберегти експортований файл JSON"
@@ -22009,15 +24536,35 @@ msgstr "Тип принтера не знайдено, будь ласка ви
msgid "Authorizing..."
msgstr "Авторизування..."
-msgid "Error. Can't get API token for authorization"
-msgstr "Помилка. Не вдалося отримати api-токен для авторизування"
+# AI Translated
+msgid "Maximum login retries exceeded"
+msgstr "Перевищено максимальну кількість спроб входу"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "Помилка HTTP: %1%"
msgid "Could not parse server response."
msgstr "Не можливо розпізнати відповідь сервера."
+msgid "Error. Can't get API token for authorization"
+msgstr "Помилка. Не вдалося отримати api-токен для авторизування"
+
msgid "Error saving session to file"
msgstr "Помилка зберігання сеансу у файл"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "Підключення до хмари 3DPrinterOS працює правильно."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Вхід виконано як користувач: %1%"
+
msgid "Error session check"
msgstr "Помилка перевірки сеансу"
@@ -22052,6 +24599,42 @@ msgstr "Неправильний пароль"
msgid "Could not get resources to create a new connection"
msgstr "Не вдалося отримати ресурси для створення нового з’єднання"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "Підключення до UltiMaker працює правильно."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Не вдалося підключитися до UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Помилка створення облікових даних! Подробиці дивіться в журналі."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "ПОМИЛКА: ID або KEY порожній. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Імʼя користувача: %1% Пароль: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Облікові дані автентифікації очікують на підтвердження. Підтвердьте доступ у діалоговому вікні на екрані принтера."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Недійсні облікові дані автентифікації"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Помилка: облікові дані автентифікації не знайдено!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Завантаження не активовано на картці FlashAir."
@@ -22166,6 +24749,14 @@ msgstr ""
"Тіло повідомлення: “%1%”\n"
"Помилка: “%2%”"
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "Підключення до ESP3D працює коректно."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Не вдалося підключитися до ESP3D"
+
msgid "No AMS"
msgstr "Немає AMS"
@@ -22237,6 +24828,11 @@ msgstr "Максимальна кількість принтерів, які м
msgid "No task"
msgstr "Немає завдань"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Переглянути"
+
msgid "Edit Printers"
msgstr "Змінити принтери"
@@ -22278,6 +24874,11 @@ msgstr "Не вдалося надрукувати"
msgid "Printing Pause"
msgstr "Друк призупинено"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Підготовка"
+
msgid "Pending"
msgstr "Очікує"
@@ -22309,9 +24910,6 @@ msgstr "Дозволити розумне призначення філамен
msgid "File Saving"
msgstr "Збереження файлу"
-msgid "Don't remind me again"
-msgstr "Не нагадувати мені більше"
-
# AI Translated
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Більше не зʼявлятиметься спливне вікно. Ви можете знову відкрити його в «Параметрах»"
@@ -22339,15 +24937,24 @@ msgstr "Вручну призначити філамент для лівого
msgid "Global settings"
msgstr "Глобальні налаштування"
-msgid "Video tutorial"
-msgstr "Відео-урок"
-
msgid "(Sync with printer)"
msgstr "(Синхронізувати з принтером)"
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Помилка: Екструдер %s не має доступного сопла %s, поточний результат групування неправильний."
+# AI Translated
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Помилка: лівий екструдер не має доступного стандартного сопла, поточний результат групування неправильний."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Помилка: лівий екструдер не має доступного сопла з високим потоком, поточний результат групування неправильний."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Помилка: правий екструдер не має доступного стандартного сопла, поточний результат групування неправильний."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Помилка: правий екструдер не має доступного сопла з високим потоком, поточний результат групування неправильний."
msgid "We will slice according to this grouping method:"
msgstr "Ми будемо нарізати згідно цього методу групування:"
@@ -22387,15 +24994,22 @@ msgstr "Не вдалося підключитися до SimplyPrint"
msgid "Internal error"
msgstr "Внутрішня помилка"
-msgid "Unknown error"
-msgstr "Невідома помилка"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "Обліковий запис SimplyPrint не пов’язано. Щоб налаштувати його, перейдіть до параметрів підключення."
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge повернув неправильну відповідь JSON."
+# AI Translated
+msgid "Request failed"
+msgstr "Запит не вдався"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Помилка локального API Flashforge %1%: %2%"
+
msgid "No Flashforge printers were discovered on the local network."
msgstr "Не виявлено принтерів Flashforge в локальній мережі."
@@ -22547,8 +25161,15 @@ msgstr "Попередження: Тип краєчка не встановле
msgid "Set the brim type of this object to \"painted\""
msgstr "Встановити тип краєчка для цього обʼєкту на \"намальований\""
-msgid "invalid brim ears"
-msgstr "неправильні краєчки"
+# AI Translated
+# Needs human review: No catalog term for "brim ear"; rendered as "вушко каймі" after "Mouse ear" (Мишаче вушко). Check the term where the count of invalid brim ears is shown.
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d недійсне вушко каймі"
+msgstr[1] "%d недійсні вушка каймі"
+msgstr[2] "%d недійсних вушок каймі"
+msgstr[3] "%d недійсного вушка каймі"
msgid "Brim Ears"
msgstr "Краєчки"
@@ -22574,6 +25195,7 @@ msgstr "Не вдалося завантажити інформацію про
msgid "Failed to create the temporary folder."
msgstr "Не вдалося створити тимчасову теку."
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d виділено"
@@ -22593,9 +25215,14 @@ msgstr "Пропускання всіх обʼєктів."
msgid "The printing job will be stopped. Continue?"
msgstr "Друк буде зупинено. Продовжити?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Пропускання %d обʼєктів."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "Пропускання %d обʼєкта."
+msgstr[1] "Пропускання %d обʼєктів."
+msgstr[2] "Пропускання %d обʼєктів."
+msgstr[3] "Пропускання %d обʼєкта."
msgid "This action cannot be undone. Continue?"
msgstr "Дію не можливо завершити. Продовжити?"
@@ -22742,6 +25369,42 @@ msgstr "Якщо дозволено, значення вище зберігат
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Експортувати пресети"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Показати в теці"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Видалити набір"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Відписатися від набору"
+
+# AI Translated
+msgid "Update available"
+msgstr "Доступне оновлення"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Неавторизований набір"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Відкрити цей набір у браузері"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "За підпискою"
+
+# AI Translated
+msgid "Local"
+msgstr "Локальний"
+
msgid "Bundle folder does not exist."
msgstr "Тека набору не існує."
@@ -22775,6 +25438,14 @@ msgstr "Відписатися від набору"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Експортувати в OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Експортувати в теку"
+
msgid "Save preset bundle"
msgstr "Зберегти набір пресету"
@@ -22870,6 +25541,11 @@ msgstr "Керування сушінням AMS"
msgid "Filament Drying Settings"
msgstr "Налаштування сушіння філаменту"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "год"
+
# AI Translated
msgid "Stopping"
msgstr "Зупинення"
@@ -23049,6 +25725,11 @@ msgstr "Запуск: перевірка впуску повітря"
msgid "Starting: Checking air vent"
msgstr "Запуск: перевірка вентиляційного отвору"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Не вдалося створити теку %1%"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Цей філамент може бути несумісним з поточними налаштуваннями машини. Будуть використані пресети Generic філамента"
@@ -23064,6 +25745,105 @@ msgstr "Цей філамент може бути несумісним з пот
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Модель філамента невідома. Буде використаний випадковий пресет філамента"
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "Невідомий файл конфігурації: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "Недійсний файл конфігурації: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "слот %1% -> слот %2%: змішаний філамент"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "визначення змішаного філаменту: досягнуто ліміту слотів філаменту"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "досягнуто ліміту слотів філаменту"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "ліміт філаментів принтера — %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "слот %1% -> слот %2%: непризначений змішаний філамент (ліміт філаментів принтера — %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "слот %1%: непризначений змішаний філамент (ліміт філаментів принтера — %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "слот %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "слот %1%: не вдалося імпортувати визначення змішаного філаменту"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "потрібно щонайменше два компоненти"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "компоненти посилаються на відсутні слоти"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "визначення змішаного філаменту: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "слот %1%: не вдалося імпортувати визначення змішаного філаменту (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "слот %1%: %2% -> %3% (заміна)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Не вдалося завантажити файл конфігурації %1%\n"
+"Рекомендуємо спочатку очистити теку %2%"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Недійсна версія конфігурації виробника %1%: %2%\n"
+"Рекомендуємо спочатку очистити теку %3%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Не вдалося завантажити файл конфігурації %1%: %2%\n"
+"Рекомендуємо спочатку очистити теку %3%"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Приховати опорні площини та осі"
@@ -23377,6 +26157,11 @@ msgstr "Немає поверхневого тіла для потовщення
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Опорна геометрія / крива (площина / вісь / система координат / спіраль / проєкція)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Площина"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Опорна площина (зміщення / нахил / серединна площина / дотична / два ребра / збіжна)"
@@ -23443,6 +26228,11 @@ msgstr "Перемістити та/або повернути наявне ті
msgid "Transform needs a body — add or import one first"
msgstr "Для перетворення потрібне тіло — спершу додайте або імпортуйте його"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Дзеркально"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Дзеркально відобразити тіло відносно площини"
@@ -23536,6 +26326,11 @@ msgstr "(немає)"
msgid "Hole / thread"
msgstr "Отвір / різьба"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Отвір"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Просвердлити отвір по центру вибраної грані або розмістити його на площині"
@@ -23580,6 +26375,11 @@ msgstr "Клацніть 2 точки або лінію / коло / дугу,
msgid "Line / polyline"
msgstr "Лінія / ламана"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Лінія"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Клацніть початок, потім кінець — потім задайте точну довжину"
@@ -23716,6 +26516,9 @@ msgstr "Сплайн"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Клацайте контрольні точки; подвійне клацання, клацання правою кнопкою або Enter — завершити"
+msgid "Point"
+msgstr "Точка"
+
# AI Translated
msgid "Click to place a point"
msgstr "Клацніть, щоб розмістити точку"
@@ -23833,17 +26636,24 @@ msgid "Pick entities, drag the sweep handle, click the count; click empty to app
msgstr "Виберіть обʼєкти, перетягніть маркер кута охоплення, клацніть кількість; клацніть на порожньому місці, щоб застосувати"
# AI Translated
+# Needs human review: Polygon tool status; "circumscribed" qualifies the polygon (описаний багатокутник). Check the dangling adjective reads right in the status bar.
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Клацніть центр, потім вершину — сторін: %d, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Клацніть центр, потім вершину — %d сторона, описаний"
+msgstr[1] "Клацніть центр, потім вершину — %d сторони, описаний"
+msgstr[2] "Клацніть центр, потім вершину — %d сторін, описаний"
+msgstr[3] "Клацніть центр, потім вершину — %d сторони, описаний"
# AI Translated
-msgid "circumscribed"
-msgstr "описаний"
-
-# AI Translated
-msgid "inscribed"
-msgstr "вписаний"
+# Needs human review: Polygon tool status; "inscribed" qualifies the polygon (вписаний багатокутник). Check the dangling adjective reads right in the status bar.
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Клацніть центр, потім вершину — %d сторона, вписаний"
+msgstr[1] "Клацніть центр, потім вершину — %d сторони, вписаний"
+msgstr[2] "Клацніть центр, потім вершину — %d сторін, вписаний"
+msgstr[3] "Клацніть центр, потім вершину — %d сторони, вписаний"
# AI Translated
msgid "Polygon"
@@ -24183,6 +26993,11 @@ msgstr "На грані"
msgid "Thread plane"
msgstr "Площина різьби"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Стандарт"
+
# AI Translated
msgid "Pitch"
msgstr "Крок"
@@ -24370,6 +27185,9 @@ msgstr "Виберіть грань твердого тіла, щоб відкр
msgid "(pick a side face)"
msgstr "(виберіть бічну грань)"
+msgid "Face"
+msgstr "Грань"
+
# AI Translated
msgid "Draft"
msgstr "Ухил"
@@ -24748,8 +27566,12 @@ msgstr "Ескіз оновлено"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Ескіз створено (керівних розмірів: %zu) — виберіть його, потім клацніть правою кнопкою для видавлювання"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Ескіз створено (%zu керівний розмір) — виберіть його, потім клацніть правою кнопкою для видавлювання"
+msgstr[1] "Ескіз створено (%zu керівні розміри) — виберіть його, потім клацніть правою кнопкою для видавлювання"
+msgstr[2] "Ескіз створено (%zu керівних розмірів) — виберіть його, потім клацніть правою кнопкою для видавлювання"
+msgstr[3] "Ескіз створено (%zu керівного розміру) — виберіть його, потім клацніть правою кнопкою для видавлювання"
# AI Translated
#, c-format, boost-format
@@ -24892,8 +27714,12 @@ msgstr "Редагування: Ескіз %d · N — погляд перп
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "ОК — трикутників: %zu"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "ОК — %zu трикутник"
+msgstr[1] "ОК — %zu трикутники"
+msgstr[2] "ОК — %zu трикутників"
+msgstr[3] "ОК — %zu трикутника"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -24981,10 +27807,26 @@ msgstr "Сітка не містить трикутників"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
+"Кількість трикутників у цій сітці: %d. Кожен трикутник стає гранню B-rep перед обʼєднанням компланарних граней, тому імпорт може тривати довго, а отримане тіло буде повільним у редагуванні. Зазвичай краще спершу спростити сітку.\n"
+"\n"
+"Все одно імпортувати?"
+msgstr[1] ""
+"Кількість трикутників у цій сітці: %d. Кожен трикутник стає гранню B-rep перед обʼєднанням компланарних граней, тому імпорт може тривати довго, а отримане тіло буде повільним у редагуванні. Зазвичай краще спершу спростити сітку.\n"
+"\n"
+"Все одно імпортувати?"
+msgstr[2] ""
+"Кількість трикутників у цій сітці: %d. Кожен трикутник стає гранню B-rep перед обʼєднанням компланарних граней, тому імпорт може тривати довго, а отримане тіло буде повільним у редагуванні. Зазвичай краще спершу спростити сітку.\n"
+"\n"
+"Все одно імпортувати?"
+msgstr[3] ""
"Кількість трикутників у цій сітці: %d. Кожен трикутник стає гранню B-rep перед обʼєднанням компланарних граней, тому імпорт може тривати довго, а отримане тіло буде повільним у редагуванні. Зазвичай краще спершу спростити сітку.\n"
"\n"
"Все одно імпортувати?"
@@ -25013,7 +27855,7 @@ msgstr "Не вдалося імпортувати сітку: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
msgstr "Імпортовано тверде тіло — трикутників: %d → граней: %d, обʼєм %.2f мм³. Виберіть грань або ребро, потім «Заокруглення» / «Розріз» / «Оболонка» для зміни"
# AI Translated
@@ -25031,8 +27873,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "%s додано до ескізу — підтвердьте, щоб зафіксувати"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — перетягніть, щоб розмістити/змінити розмір, потім підтвердьте"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — перетягніть, щоб розмістити/змінити розмір, потім підтвердьте"
# AI Translated
msgid "Insert canceled"
@@ -25241,9 +28085,14 @@ msgid "a geometry operation failed"
msgstr "помилка геометричної операції"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · вибрано: %d"
+msgid_plural " · %d picked"
+msgstr[0] " · %d вибраний"
+msgstr[1] " · %d вибрані"
+msgstr[2] " · %d вибраних"
+msgstr[3] " · %d вибраного"
# AI Translated
#, c-format, boost-format
@@ -25261,7 +28110,11 @@ msgstr "Вибір — клацніть обʼєкт, щоб вибрати йо
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "Вибрано: %d · тепер виберіть обмеження (Горизонтальний, Паралельний, Дотичний, Рівний…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "%d вибраний · тепер виберіть обмеження (Горизонтальний, Паралельний, Дотичний, Рівний…)"
+msgstr[1] "%d вибрані · тепер виберіть обмеження (Горизонтальний, Паралельний, Дотичний, Рівний…)"
+msgstr[2] "%d вибраних · тепер виберіть обмеження (Горизонтальний, Паралельний, Дотичний, Рівний…)"
+msgstr[3] "%d вибраного · тепер виберіть обмеження (Горизонтальний, Паралельний, Дотичний, Рівний…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -25522,7 +28375,11 @@ msgstr "Дзеркально — вісь задано · тепер клац
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Дзеркально — вісь задано · для відображення: %d · клацніть інший, щоб додати або вилучити його · Enter застосовує"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Дзеркально — вісь задано · %d обʼєкт для відображення · клацніть інший, щоб додати або вилучити його · Enter застосовує"
+msgstr[1] "Дзеркально — вісь задано · %d обʼєкти для відображення · клацніть інший, щоб додати або вилучити його · Enter застосовує"
+msgstr[2] "Дзеркально — вісь задано · %d обʼєктів для відображення · клацніть інший, щоб додати або вилучити його · Enter застосовує"
+msgstr[3] "Дзеркально — вісь задано · %d обʼєкта для відображення · клацніть інший, щоб додати або вилучити його · Enter застосовує"
# AI Translated
msgid "Move — click the entities to move"
@@ -25647,8 +28504,12 @@ msgstr "Точка ескізу"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "Обʼєктів ескізу: %d"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d обʼєкт ескізу"
+msgstr[1] "%d обʼєкти ескізу"
+msgstr[2] "%d обʼєктів ескізу"
+msgstr[3] "%d обʼєкта ескізу"
# AI Translated
msgid "select something first"
@@ -26186,8 +29047,10 @@ msgid "Applied edit"
msgstr "Зміну застосовано"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — введіть значення, натисніть Enter (або «Підтвердити»)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — введіть значення, натисніть Enter (або «Підтвердити»)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -26259,10 +29122,23 @@ msgstr "Передати на пластину — надіслати тіло
msgid "Nothing to commit — add a feature first"
msgstr "Нічого передавати — спершу додайте елемент"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Тіло конструювання %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Усі тіла приховано — покажіть хоча б одне перед передаванням"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Збірка конструювання"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Тіло конструювання"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -26331,8 +29207,12 @@ msgstr "Недопустимо: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Попередній перегляд — трикутників: %zu"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Попередній перегляд — %zu трикутник"
+msgstr[1] "Попередній перегляд — %zu трикутники"
+msgstr[2] "Попередній перегляд — %zu трикутників"
+msgstr[3] "Попередній перегляд — %zu трикутника"
# AI Translated
#, c-format, boost-format
@@ -26438,8 +29318,12 @@ msgstr "Цього розміру неможливо дотриматися —
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "Обмеження, які не можуть діяти на цю геометрію (еліпс, сплайн або коло нульового розміру), ігноруються: %1%"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% обмеження не може діяти на цю геометрію (еліпс або крива сплайна, або коло нульового розміру) і ігнорується"
+msgstr[1] "%1% обмеження не можуть діяти на цю геометрію (еліпс або крива сплайна, або коло нульового розміру) і ігноруються"
+msgstr[2] "%1% обмежень не можуть діяти на цю геометрію (еліпс або крива сплайна, або коло нульового розміру) і ігноруються"
+msgstr[3] "%1% обмеження не можуть діяти на цю геометрію (еліпс або крива сплайна, або коло нульового розміру) і ігноруються"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -26497,8 +29381,12 @@ msgstr "Фаска: відстань перевищує довжину одні
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "Видалено обмежень, які стали недійсними через заокруглення/фаску: %1%"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "%1% обмеження, яке стало недійсним через заокруглення/фаску, видалено"
+msgstr[1] "%1% обмеження, які стали недійсними через заокруглення/фаску, видалено"
+msgstr[2] "%1% обмежень, які стали недійсними через заокруглення/фаску, видалено"
+msgstr[3] "%1% обмеження, які стали недійсними через заокруглення/фаску, видалено"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -26518,8 +29406,12 @@ msgstr "Кількість копій має бути цілим числом,
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "Знято обмежень під час перетворення: %1%"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "%1% обмеження знято під час перетворення"
+msgstr[1] "%1% обмеження знято під час перетворення"
+msgstr[2] "%1% обмежень знято під час перетворення"
+msgstr[3] "%1% обмеження знято під час перетворення"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -26670,11 +29562,6 @@ msgstr "Потовщення поверхні"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Для потовщення поверхні потрібне поверхневе тіло — спершу створіть його інструментом із групи «Поверхня»"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Отвір"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -26759,11 +29646,6 @@ msgstr "Круговий масив"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Повторити тіло навколо осі — задайте кількість і кут охоплення"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Дзеркально"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -26800,11 +29682,6 @@ msgstr "Для вирівнювання потрібне тіло — сперш
msgid "Align the body to a picked face or plane"
msgstr "Вирівняти тіло за вибраною гранню або площиною"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Площина"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -26910,11 +29787,6 @@ msgstr "Видалити тіло"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Видалити все тіло — вилучає елемент, з якого його створено"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Лінія"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -27229,216 +30101,6 @@ msgstr "У цьому шрифті немає контурів символів
msgid "Size: %.1f × %.1f mm"
msgstr "Розмір: %.1f × %.1f мм"
-# AI Translated
-msgid "Primitive"
-msgstr "Примітив"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Згенеровано порожню сітку"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Паралелепіпед"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Швидкий вибір:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Ширина (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Глибина (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Висота (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "Нижній R"
-
-# AI Translated
-msgid "Top R"
-msgstr "Верхній R"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "Великий R"
-
-# AI Translated
-msgid "Minor R"
-msgstr "Малий R"
-
-# AI Translated
-msgid "All edges"
-msgstr "Усі ребра"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Верхні ребра"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Нижні ребра"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Бічні ребра"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Роздільна здатність сітки"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Додати форму"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Немає зовнішнього профілю"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Не вдалося створити зовнішню грань"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Не вдалося побудувати грань з отворами"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Не вдалося виконати обертання"
-
-# AI Translated
-msgid "Profile"
-msgstr "Профіль"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Почати новий профіль (для отворів)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Сегменти"
-
-# AI Translated
-msgid "Sides"
-msgstr "Сторони"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Клацніть на полотні, щоб малювати"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Привʼязка до сітки"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Крок сітки"
-
-# AI Translated
-msgid "Outer"
-msgstr "Зовнішній"
-
-# AI Translated
-msgid "closed"
-msgstr "замкнений"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2% (точок: %3%) %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (Верх)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (Перед)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (Бік)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Обертання, °"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "0 — видавлювання, >0 — обертання"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Кишеня (вирізання)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu замкнений профіль"
-msgstr[1] "%zu замкнені профілі"
-msgstr[2] "%zu замкнених профілів"
-msgstr[3] "%zu замкненого профілю"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Намалюйте замкнений профіль, щоб увімкнути"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Очистити все"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Порожній результат"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Видавлювання: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Обертання: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Не вибрано обʼєкт"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Не вдалося створити грань"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Не вдалося створити грань з отворами"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Сітка інструмента порожня"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Кишеню додано (відʼємний обʼєм)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Кишеня: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -27561,6 +30223,10 @@ msgstr "Зібрати Gizmo"
msgid "Gizmo brim ears"
msgstr "Краєчки Gizmo"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Gizmo малювання текстурного зміщення"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Вертикальний повзунок - рух активного великого пальця вгору"
@@ -27795,6 +30461,12 @@ msgstr "потрібна циліндрична грань з обох бокі
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "потрібна циліндрична грань з обох боків — зʼєднувач %1% розташований на криволінійній грані"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (базова площина відсутня)"
+
# AI Translated
msgid "two points are coincident"
msgstr "дві точки збігаються"
@@ -27823,10 +30495,31 @@ msgstr "площини паралельні (немає перетину)"
msgid "zero-length direction"
msgstr "напрямок нульової довжини"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "елемент працює над тілом %1%, якого немає на цьому етапі історії"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "«%1%» працює над тілом, створеним елементом, який видалено або приховано"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "«%1%» працює над тілом, якого немає на цьому етапі історії"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "елемент використовується наступним елементом"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "«%1%» використовує «%2%», тому не може стояти перед ним"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "обʼєкти ескізу не утворюють замкнений контур"
@@ -27837,9 +30530,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Відкритий кінець у (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...і ще відкритих кінців: %1%"
+msgid "Open ends not shown: %1%"
+msgstr "Не показано відкритих кінців: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "обертання: лінії осі більше немає в ескізі — виберіть вісь знову"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "обертання: лінія осі не має довжини"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -27987,6 +30689,30 @@ msgstr "не вдалося побудувати контур отвору"
msgid "hole cut failed"
msgstr "не вдалося вирізати отвір"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "різьба: діаметр має бути не менше 1 мм"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "різьба: крок має бути більшим за 0.1 мм"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "різьба: глибина має бути від 0 до 0.7 x кроку"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "різьба: глибина завелика для цього діаметра"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "різьба: довжина має бути більшою за половину кроку"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "різьба: забагато витків (довжина / крок має бути менше 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "для внутрішньої різьби потрібне тіло"
@@ -28047,6 +30773,22 @@ msgstr "не вдалося видалити грань"
msgid "delete_face produced no geometry"
msgstr "видалення грані не створило геометрії"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "булева операція: немає цільового тіла"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "булева операція: немає тіла-інструмента — виберіть друге тіло"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "булева операція: ціль та інструмент — те саме тіло"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "булева операція: тіло не має геометрії"
+
# AI Translated
msgid "boolean operation failed"
msgstr "не вдалося виконати булеву операцію"
@@ -28374,6 +31116,10 @@ msgstr "Зображення моделі"
msgid "Auxiliaries"
msgstr "Допоміжні файли"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Вежа очищення на стрічці"
+
# AI Translated
msgid "Project Filament List"
msgstr "Список філаментів проєкту"
@@ -28408,8 +31154,22 @@ msgstr "Для розкладання потрібно щонайменше дв
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "Список матеріалів підтримує не більше %1% кольорів. Після розкладання %2% кількість матеріалів перевищить %1%. Перед розкладанням видаліть невикористані філаменти на головному екрані."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Список матеріалів підтримує не більше %1% кольору. Після розкладання списку матеріалів кількість матеріалів перевищить %1%. Перед розкладанням видаліть невикористані філаменти на головному екрані."
+msgstr[1] "Список матеріалів підтримує не більше %1% кольорів. Після розкладання списку матеріалів кількість матеріалів перевищить %1%. Перед розкладанням видаліть невикористані філаменти на головному екрані."
+msgstr[2] "Список матеріалів підтримує не більше %1% кольорів. Після розкладання списку матеріалів кількість матеріалів перевищить %1%. Перед розкладанням видаліть невикористані філаменти на головному екрані."
+msgstr[3] "Список матеріалів підтримує не більше %1% кольору. Після розкладання списку матеріалів кількість матеріалів перевищить %1%. Перед розкладанням видаліть невикористані філаменти на головному екрані."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Список матеріалів підтримує не більше %1% кольору. Після розкладання %2% кількість матеріалів перевищить %1%. Перед розкладанням видаліть невикористані філаменти на головному екрані."
+msgstr[1] "Список матеріалів підтримує не більше %1% кольорів. Після розкладання %2% кількість матеріалів перевищить %1%. Перед розкладанням видаліть невикористані філаменти на головному екрані."
+msgstr[2] "Список матеріалів підтримує не більше %1% кольорів. Після розкладання %2% кількість матеріалів перевищить %1%. Перед розкладанням видаліть невикористані філаменти на головному екрані."
+msgstr[3] "Список матеріалів підтримує не більше %1% кольору. Після розкладання %2% кількість матеріалів перевищить %1%. Перед розкладанням видаліть невикористані філаменти на головному екрані."
# AI Translated
msgid "Cyan"
@@ -28439,6 +31199,13 @@ msgstr "Зелений"
msgid "Blue"
msgstr "Синій"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -28446,7 +31213,1237 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "Поточний список філаментів не містить %s. Філамент проєкту, потрібний для змішаного філаменту, буде створено автоматично після розкладання."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "Поточний список філаментів не містить %s. Філамент проєкту, потрібний для змішаного філаменту, буде створено автоматично після розкладання."
+msgstr[1] "Поточний список філаментів не містить %s. Філаменти проєкту, потрібні для змішаного філаменту, буде створено автоматично після розкладання."
+msgstr[2] "Поточний список філаментів не містить %s. Філаменти проєкту, потрібні для змішаного філаменту, буде створено автоматично після розкладання."
+msgstr[3] "Поточний список філаментів не містить %s. Філаменти проєкту, потрібні для змішаного філаменту, буде створено автоматично після розкладання."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Непрозорість"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -28542,10 +32539,6 @@ msgstr "Мої налаштування"
msgid "Custom Printer Setup"
msgstr "Налаштування власного принтера"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Власний принтер"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Створіть профіль власного принтера"
@@ -28815,6 +32808,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Запікати"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Ввести точне значення в повзунок"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Значок редагування на правому кінці повзунка"
+
# AI Translated
msgid "Texture displacement"
msgstr "Текстурне зміщення"
@@ -28951,6 +32952,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Вилучити текстуру"
+# AI Translated
+msgid "Adjust image"
+msgstr "Налаштувати зображення"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Яскравість"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Контрастність"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Різкість"
+
+# AI Translated
+msgid "Blur"
+msgstr "Розмиття"
+
+# AI Translated
+msgid "Hue"
+msgstr "Колірний тон"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Виявляє найдрібніші деталі зображення. Застосовується після «Розмиття», тож їх можна використовувати разом: спершу розмийте дрібний шум, потім підвищте різкість країв, що залишилися."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Розмиває саме зображення. Повзунок «Згладжування» самого шару помʼякшує рельєф, не змінюючи зображення, і саме його варто спробувати першим."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Ця текстура у відтінках сірого, тож у неї немає колірного тону, який можна змінити."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Модель оновлюється, коли ви відпускаєте повзунок. «Зберегти як копію» записує налаштоване зображення до вашої бібліотеки текстур і спрямовує цей шар на нього."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Зберегти як копію"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Вилучити шар текстурного зміщення"
@@ -29087,6 +33132,15 @@ msgstr "Записати кожен захоплений етап як файл
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Не вдалося перенести намальовану область на модель із перебудованою сіткою, тому нічого не змінено. Перейдіть у режим Pro і перебудуйте сітку перед малюванням."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Діапазон: від %1% до %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Введіть значення замість перетягування. Ctrl+клацання на повзунку робить те саме."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -29193,8 +33247,8 @@ msgid "Click a triangle to paint it"
msgstr "Клацніть трикутник, щоб замалювати його"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Потрібен активний шар із проєкцією «Розгортка (LSCM)»."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Лише для шару з накладанням «Розгортка (LSCM)» - щоб використати цей вигляд, встановіть для «Накладання текстури» активного шару значення «Розгортка»."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -29209,16 +33263,16 @@ msgid "Checker"
msgstr "Шахівниця"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Шахівниця - тестова сітка замість текстури. Там, де квадрати лишаються квадратними, текстура не спотворена; де вони розтягуються, розтягнеться й вона"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Шахівниця - тестова сітка замість текстури. Там, де квадрати лишаються квадратними, текстура не спотворена; де вони розтягуються, розтягнеться й вона. Відкриває UV-редактор, якщо він закритий"
# AI Translated
msgid "Distortion"
msgstr "Спотворення"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Спотворення - теплова карта розтягнення від синього до червоного поверх розгортки"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Спотворення - теплова карта розтягнення від синього до червоного поверх розгортки. Відкриває UV-редактор, якщо він закритий"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -29244,6 +33298,10 @@ msgstr "Виберіть інше зображення для цього шар
msgid "not painted"
msgstr "не намальовано"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Яскравість, контрастність, різкість, розмиття та колірний тон показуються на зображенні й на моделі в міру налаштування. «Зберегти як копію» записує результат до вашої бібліотеки текстур і спрямовує цей шар на нього."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Перемістити вгору - застосовується раніше"
@@ -29264,10 +33322,20 @@ msgstr "Висота рельєфу: наскільки білий колір т
msgid "Tile size"
msgstr "Розмір плитки"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Накладається за власною UV-розкладкою моделі, яка вже і є розміщенням - одна копія текстури покриває її точно, тож розмір плитки задавати не потрібно."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Ширина однієї копії текстури на моделі. Менше значення частіше повторює візерунок і робить його деталі дрібнішими; якщо «Плитка» вимкнена, це розмір єдиної копії."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Повертає текстуру на поверхні, у градусах - щоб вирівняти візерунок із краєм моделі."
@@ -29335,28 +33403,38 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Чергує два філаменти, щоб імітувати проміжні кольори, тож кількома філаментами можна відтворити фото або градієнт. Зображення з однотонними кольорами в обох випадках друкується однаково. Якщо вимкнено, на кожну область використовується один філамент."
# AI Translated
-msgid "Mix by"
-msgstr "Змішувати за"
+msgid "Mixed colors"
+msgstr "Змішані кольори"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Поверхня"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Найбільша кількість змішаних філаментів, яку може додати запікання. Їх вибирають із кольорів текстури, і створюються лише ті, що справді використовуються під час запікання."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Шари: два філаменти чергуються між шарами друку, що дає плавне змішування на вертикальних поверхнях, але зникає на пласких, де цілий шар — одна смуга.\n"
-"Поверхня: дрібна шахова сітка по поверхні, яка працює під будь-яким кутом, але може сприйматися як текстура, а не як змішування.\n"
-"Автоматично: шари на вертикальних гранях; пласкі грані отримують найближчий окремий філамент, оскільки шахова сітка на них видна як візерунок."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "Кольорів для друку: %1% (філаментів: %2%)"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "з %1% філаменту"
+msgstr[1] "з %1% філаментів"
+msgstr[2] "з %1% філаментів"
+msgstr[3] "з %1% філаменту"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% колір для друку %2%"
+msgstr[1] "%1% кольори для друку %2%"
+msgstr[2] "%1% кольорів для друку %2%"
+msgstr[3] "%1% кольору для друку %2%"
# AI Translated
msgid "Denoise"
@@ -29407,6 +33485,18 @@ msgstr "З поточного виду"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "З поточного виду - проєктує прямо на намальовану область з того місця, звідки ви дивитеся, як діапроєктор."
+# AI Translated
+msgid "Model UV"
+msgstr "UV моделі"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "UV моделі - використовує текстурні координати, з якими постачається сама модель, тож текстура, створена для цієї моделі, лягає точно туди, де була намальована. Нічого не розгортається, а «Розмір плитки» не застосовується: власна розкладка моделі і є розміщенням."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "У цієї моделі немає власних текстурних координат. Накласти за ними можна лише модель, імпортовану з UV-каналом - наприклад, OBJ з текстурою."
+
# AI Translated
msgid "Open UV editor"
msgstr "Відкрити UV-редактор"
@@ -29421,8 +33511,12 @@ msgstr "Ще не розгорнуто"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "Островів: %1%"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% острів"
+msgstr[1] "%1% острови"
+msgstr[2] "%1% островів"
+msgstr[3] "%1% острова"
# AI Translated
msgid "Capture current view"
@@ -29452,10 +33546,6 @@ msgstr "Рамка проєкції"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Відкриває вікно, яке ви перетягуєте над моделлю. Усе, що видно крізь нього, отримує текстуру, а його межа стає краєм проєкції."
-# AI Translated
-msgid "Opacity"
-msgstr "Непрозорість"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Наскільки щільним виглядає вікно рамки, поки ви його розміщуєте. Зменште, щоб бачити модель крізь нього; на результат не впливає."
@@ -29509,6 +33599,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Додати"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Замінити"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -29528,8 +33623,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Під базовим шаром немає нічого, з чим його можна поєднати, тому він завжди додає."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Що робить цей шар там, де він перекриває нижні. «Додати» та «Відняти» нарощують рельєф або вирізають його. «Помножити» та «Розділити» масштабують те, що під ним, і цей шар стає маскою над ним - тоді «Глибина» діє як сила, а 1 мм залишає білі ділянки незмінними."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Що робить цей шар там, де він перекриває нижні. «Додати» та «Відняти» нарощують рельєф або вирізають його. «Замінити» замінює їх, тож там, де його намальовано, лишається лише рельєф цього шару. «Помножити» та «Розділити» масштабують те, що під ним, і цей шар стає маскою над ним - тоді «Глибина» діє як сила, а 1 мм залишає білі ділянки незмінними."
# AI Translated
msgid "Adjust placement"
@@ -29553,8 +33648,12 @@ msgstr "Більше налаштувань"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Використано всі шари (%1%)"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Використано всі %1% шар текстури"
+msgstr[1] "Використано всі %1% шари текстури"
+msgstr[2] "Використано всі %1% шарів текстури"
+msgstr[3] "Використано всі %1% шару текстури"
# AI Translated
msgid "Add layer"
@@ -29634,8 +33733,12 @@ msgstr "Бюджет трикутників: задається параметр
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Попередній перегляд — трикутників: %1%"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Попередній перегляд: %1% трикутник"
+msgstr[1] "Попередній перегляд: %1% трикутники"
+msgstr[2] "Попередній перегляд: %1% трикутників"
+msgstr[3] "Попередній перегляд: %1% трикутника"
# AI Translated
msgid "Steps"
@@ -29677,6 +33780,12 @@ msgstr "Перебудова сітки"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Розмір трикутника, з яким перебудовується вся модель, у міліметрах. Зміщення найкраще працює на рівномірній сітці; саме цей параметр робить її з нерівномірної імпортованої."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Зберігати гострі ребра"
@@ -29811,14 +33920,6 @@ msgstr "Потрібно близько %1% трикутників, бюджет
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Скільки тисяч трикутників уточнення може додати до моделі. Першим завжди ділиться трикутник, який найгірше відповідає формі, тож навіть якщо витратити весь бюджет, його буде витрачено там, де це найпомітніше. Збільште, якщо рельєф і далі виглядає грубим."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Зупиняє запікання. Усе, що вже було завершено, лишається на моделі, і це можна скасувати."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Закриває інструмент без запікання. Ваше малювання, шари та налаштування залишаються з моделлю."
-
# AI Translated
msgid "Preparing..."
msgstr "Підготовка..."
@@ -29843,35 +33944,66 @@ msgstr "Перетворити намальовані карти висот на
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Перетворити намальовані карти висот на реальну геометрію. Спершу сітка перебудовується до рівномірної щільності та уточнюється там, де текстура вигинається, щоб деталям було на які вершини лягти - усе за один крок."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Зупиняє запікання. Усе, що вже було завершено, лишається на моделі, і це можна скасувати."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Закриває інструмент без запікання. Ваше малювання, шари та налаштування залишаються з моделлю."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% тис."
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Трикутників у моделі: %1% - запікання уточнює сітку до роздільної здатності, заданої вище, у межах свого бюджету"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Модель: %1% трикутник - запікання уточнює сітку до роздільної здатності, заданої вище, у межах свого бюджету"
+msgstr[1] "Модель: %1% трикутники - запікання уточнює сітку до роздільної здатності, заданої вище, у межах свого бюджету"
+msgstr[2] "Модель: %1% трикутників - запікання уточнює сітку до роздільної здатності, заданої вище, у межах свого бюджету"
+msgstr[3] "Модель: %1% трикутника - запікання уточнює сітку до роздільної здатності, заданої вище, у межах свого бюджету"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Запікання зсуває наявні вершини - у моделі залишається %1% трикутник"
+msgstr[1] "Запікання зсуває наявні вершини - у моделі залишаються %1% трикутники"
+msgstr[2] "Запікання зсуває наявні вершини - у моделі залишається %1% трикутників"
+msgstr[3] "Запікання зсуває наявні вершини - у моделі залишається %1% трикутника"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Запікання зсуває наявні вершини - кількість трикутників у моделі не зміниться: %1%"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Результат запікання — до ~%1% тис. трикутників"
+msgstr[1] "Результат запікання — до ~%1% тис. трикутників"
+msgstr[2] "Результат запікання — до ~%1% тис. трикутників"
+msgstr[3] "Результат запікання — до ~%1% тис. трикутників"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Результат запікання — до ~%1% тис. трикутників"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "Пропущено ненамальованих шарів: %1%"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "Пропущено %1% ненамальований шар"
+msgstr[1] "Пропущено %1% ненамальовані шари"
+msgstr[2] "Пропущено %1% ненамальованих шарів"
+msgstr[3] "Пропущено %1% ненамальованого шару"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1%: не намальовано, пропущено"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1%: не намальовано, пропущено"
+msgstr[1] "%1%: не намальовані, пропущені"
+msgstr[2] "%1%: не намальовані, пропущені"
+msgstr[3] "%1%: не намальовані, пропущені"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29889,6 +34021,10 @@ msgstr "Редагування текстурного зміщення"
msgid "Choose SLA archive:"
msgstr "Виберіть архів SLA:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "Архівні файли SL1 / SL1S"
+
# AI Translated
msgid "Import file"
msgstr "Імпортувати файл"
@@ -30059,6 +34195,34 @@ msgstr "Плагіни філаменту"
msgid "Printer plugins"
msgstr "Плагіни принтера"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Цей пресет не використовує жодних можливостей плагінів"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Можливості, які використовує цей пресет"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Конфігурація можливості (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Конфігурація плагіна"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Скасувати перевизначення цього пресету й знову використовувати глобальну конфігурацію"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Відновити типові"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "Недійсний JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "Конфігурація не є коректним JSON. Ваші зміни не збережено."
@@ -30078,10 +34242,6 @@ msgstr ""
"\n"
"Це відкине перевизначення в пресеті й застосує глобальну конфігурацію."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Відновити типові"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Використовується глобальна конфігурація. Збережіть пресет, щоб зміни залишилися."
@@ -30107,10 +34267,6 @@ msgstr "Відписатися"
msgid "Overwrite Plugin"
msgstr "Перезаписати плагін"
-# AI Translated
-msgid "Show in folder"
-msgstr "Показати в теці"
-
# AI Translated
msgid "Reinstall"
msgstr "Перевстановити"
@@ -30119,6 +34275,10 @@ msgstr "Перевстановити"
msgid "Delete cache and reload"
msgstr "Видалити кеш і перезавантажити"
+# AI Translated
+msgid "No description."
+msgstr "Немає опису."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Виберіть пакет плагіна .py або .whl."
@@ -30151,6 +34311,293 @@ msgstr "Встановлення плагіна"
msgid "Installed \"%s\"."
msgstr "Встановлено «%s»."
+# AI Translated
+msgid "Search plugins"
+msgstr "Пошук плагінів"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Очистити пошук"
+
+# AI Translated
+msgid "Match case"
+msgstr "Враховувати регістр"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Лише ціле слово"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Інші варіанти встановлення плагінів"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Встановити плагін"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Встановити локальний плагін"
+
+# AI Translated
+msgid "Activate"
+msgstr "Активувати"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Сортувати за назвою"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Сортувати за версією"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Версія плагіна"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Сортувати за джерелом"
+
+# AI Translated
+msgid "Source"
+msgstr "Джерело"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Сортувати за статусом"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Статус"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Перетягніть, щоб змінити розмір; двічі клацніть, щоб скинути"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Змінити розмір списку плагінів"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Відомості про плагін"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Інформація про плагін"
+
+# AI Translated
+msgid "Description"
+msgstr "Опис"
+
+# AI Translated
+msgid "Config"
+msgstr "Конфігурація"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Журнал змін"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Діагностика"
+
+# AI Translated
+msgid "Types"
+msgstr "Типи"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Встановлена версія"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Остання версія"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Оновити до останньої версії"
+
+# AI Translated
+msgid "No description available"
+msgstr "Опис відсутній"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Виберіть плагін, щоб налаштувати його можливості"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Налаштовувані можливості"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Скасувати збережені налаштування цієї можливості й відновити типові значення плагіна"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Журнал змін плагіна"
+
+# AI Translated
+msgid "Date"
+msgstr "Дата"
+
+# AI Translated
+msgid "Changes"
+msgstr "Зміни"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Журнал змін відсутній"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Проблем не виявлено"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Плагінів не знайдено"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Немає плагінів, що відповідають «%s»"
+
+# AI Translated
+msgid "Mine"
+msgstr "Мій"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "За підпискою"
+
+# AI Translated
+# Needs human review: Plugin source value (no longer subscribed or available in OrcaCloud); check 'Осиротілий' reads naturally in the Source column.
+msgid "Orphaned"
+msgstr "Осиротілий"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Локальний"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Увімкнено деякі можливості плагіна"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Згорнути можливості %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Розгорнути можливості %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Згорнути можливості"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Розгорнути можливості"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Відкрити цей плагін у браузері"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Можливості: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Можливості"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Запустити «%s»"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Увімкнути %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Немає дозволу на оновлення"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Завантаження плагіна…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Цей плагін не надає жодних можливостей"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Активуйте цей плагін, щоб налаштувати його можливості"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Переглянути в OrcaCloud тут "
+
+# AI Translated
+msgid "Activated"
+msgstr "Активовано"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Помилка виконання"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Неактивний"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Цей плагін активний і готовий до використання."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Цей плагін ще завантажується."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Цей плагін заблоковано, доки його помилку не буде виправлено."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Цей плагін завантажено, але одна з його можливостей повідомила про помилку."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Цей плагін неактивний. Активуйте його, щоб установити або завантажити."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Виберіть плагін, щоб переглянути його статус і відомості."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Осиротілий: підписка на цей плагін більше не діє або він більше не доступний в OrcaCloud. Локальна копія залишається встановленою, і нею можна користуватися далі."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Доступна новіша версія плагіна."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Оновлення з хмари недоступні, оскільки для цього плагіна немає дозволу на оновлення."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -30367,6 +34814,72 @@ msgstr "Не вдалося перезавантажити плагін."
msgid "Reloaded \"%s\"."
msgstr "Перезавантажено «%s»."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Підключення принтера"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Налаштуйте підключення принтера, щоб переглянути пристрій."
+
+# AI Translated
+msgid "No model information"
+msgstr "Немає інформації про модель"
+
+# AI Translated
+msgid "Edit Project Info"
+msgstr "Редагувати інформацію про проєкт"
+
+# AI Translated
+msgid "Model Information"
+msgstr "Інформація про модель"
+
+# AI Translated
+# Needs human review: Project page section that holds BOM, Assembly Guide and Other files; check 'Додаткові матеріали' fits that section header.
+msgid "Accessories"
+msgstr "Додаткові матеріали"
+
+# AI Translated
+msgid "Profile Information"
+msgstr "Інформація про профіль"
+
+# AI Translated
+msgid "Model name"
+msgstr "Назва моделі"
+
+# AI Translated
+msgid "Created by"
+msgstr "Автор"
+
+# AI Translated
+msgid "Remixed by"
+msgstr "Автор реміксу"
+
+# AI Translated
+# Needs human review: Project page label shown before a user name (with Created by / Remixed by); check it reads right next to the name.
+msgid "Shared by"
+msgstr "Поширено користувачем"
+
+# AI Translated
+msgid "Model description"
+msgstr "Опис моделі"
+
+# AI Translated
+msgid "BOM"
+msgstr "Відомість матеріалів"
+
+# AI Translated
+msgid "Profile name"
+msgstr "Назва профілю"
+
+# AI Translated
+msgid "Profile Author"
+msgstr "Автор профілю"
+
+# AI Translated
+msgid "Profile description"
+msgstr "Опис профілю"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Налаштування режиму очищення"
@@ -30391,6 +34904,19 @@ msgstr "Зменшує відходи підготовки та пришвидш
msgid "Terminal"
msgstr "Термінал"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... або uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Термінал плагіна готовий."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Процес завершився з кодом: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Команда вже виконується."
@@ -30437,8 +34963,12 @@ msgstr "Нові змішані філаменти"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Проєкт підтримує до %d філаментів. Зайві філаменти буде відкинуто."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Проєкт підтримує до %d філаменту. Зайві філаменти буде відкинуто."
+msgstr[1] "Проєкт підтримує до %d філаментів. Зайві філаменти буде відкинуто."
+msgstr[2] "Проєкт підтримує до %d філаментів. Зайві філаменти буде відкинуто."
+msgstr[3] "Проєкт підтримує до %d філаменту. Зайві філаменти буде відкинуто."
# AI Translated
msgid "Import Model"
@@ -30525,8 +35055,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Обчислення не вдалося. Змініть параметри та повторіть спробу."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "Сітка має неманіфолдну геометрію або відкриті межі. Ви можете імпортувати її як є або перед імпортом виправити її за допомогою служби 3D-виправлення Windows."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "Сітка має неманіфолдну геометрію або відкриті межі. Ви можете імпортувати її як є або виправити її перед імпортом."
# AI Translated
msgid "Mesh repair"
@@ -30540,14 +35070,6 @@ msgstr "Імпортувати без виправлення"
msgid "Repair and import"
msgstr "Виправити й імпортувати"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Зверніть увагу, що сітка має неманіфолдну геометрію або відкриті межі."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Проблема із сіткою"
-
# AI Translated
msgid "The selected image is empty."
msgstr "Вибране зображення порожнє."
@@ -30556,6 +35078,14 @@ msgstr "Вибране зображення порожнє."
msgid "Failed to prepare the texture for use."
msgstr "Не вдалося підготувати текстуру до використання."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Не вдалося створити теку для імпортованих текстур."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Не вдалося зберегти імпортовану текстуру."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Вилучати можна лише власні імпортовані текстури."
@@ -30564,18 +35094,10 @@ msgstr "Вилучати можна лише власні імпортовані
msgid "Could not delete the texture file."
msgstr "Не вдалося видалити файл текстури."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Не вдалося створити теку для імпортованих текстур."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Не вдалося завантажити вибране зображення."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Не вдалося зберегти імпортовану текстуру."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Не вдалося прочитати файл текстури."
@@ -30619,8 +35141,12 @@ msgstr "Виберіть «Розгортка» як проєкцію шару
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Вибрано вершин: %d | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Вибрано %d вершину | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
+msgstr[1] "Вибрано %d вершини | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
+msgstr[2] "Вибрано %d вершин | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
+msgstr[3] "Вибрано %d вершини | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30628,8 +35154,12 @@ msgstr "Режим вершин: перетягніть вершину, щоб
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Вибрано ребер: %d | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Вибрано %d ребро | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
+msgstr[1] "Вибрано %d ребра | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
+msgstr[2] "Вибрано %d ребер | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
+msgstr[3] "Вибрано %d ребра | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -30637,8 +35167,12 @@ msgstr "Режим ребер: перетягніть ребро острова,
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "Вибрано островів: %d | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити, R/S = обертати/масштабувати основний"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "Вибрано %d острів | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити, R/S = обертати/масштабувати основний"
+msgstr[1] "Вибрано %d острови | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити, R/S = обертати/масштабувати основний"
+msgstr[2] "Вибрано %d островів | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити, R/S = обертати/масштабувати основний"
+msgstr[3] "Вибрано %d острова | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити, R/S = обертати/масштабувати основний"
# AI Translated
#, c-format, boost-format
@@ -30657,6 +35191,10 @@ msgstr " | привʼязку УВІМКНЕНО"
msgid "Change texture - choose another one from the texture library"
msgstr "Змінити текстуру - вибрати іншу з бібліотеки текстур"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Розмір плитки активного шару текстури: яку частину моделі покриває одне повторення текстури. Полотно вимірюється в плитках, тож одна клітинка сітки — це одне повторення. Змініть його через «Розмір плитки» в налаштуваннях шару."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Карта висот - показати текстуру шару під островами"
@@ -30690,16 +35228,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Розкладати розгортку звʼязно: частини зі спільним ребром розгортаються поруч (куб стає суцільною розгорткою, а не шістьма окремими квадратами). Вони лишаються окремими островами, тож згодом будь-який із них можна перемістити вручну."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Острів - переміщення, обертання й масштабування цілих островів"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Острів - робота з цілими островами. Клацніть острів, щоб вибрати його, потім перетягуйте, щоб перемістити, перетягуйте правою кнопкою, щоб повернути, або натисніть R для обертання чи S для масштабування мишею (клацання або Enter — підтвердити, Esc — скасувати)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Вершина - перетягуйте вершини, щоб змінити форму; Shift/Ctrl для множинного вибору"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Вершина - перетягуйте вершини, щоб вручну змінити форму острова; Shift додає до виділення, Ctrl додає вершину до виділення або вилучає з нього."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Ребро - перетягуйте ребра, щоб змінити форму; Shift/Ctrl для множинного вибору"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Ребро - перетягуйте ребра, щоб вручну змінити форму острова; Shift додає до виділення, Ctrl додає ребро до виділення або вилучає з нього."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -30738,8 +35276,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Привʼязка - зліплювати острови, коли один перетягується впритул до іншого"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Вмістити всі острови в кадр (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Показати всі острови, умістивши кожен із них у вигляд (Home або F).\n"
+"В іншому місці полотна: прокручуйте, щоб масштабувати навколо курсора, і перетягуйте середньою кнопкою - або перетягуйте порожнє місце, - щоб панорамувати."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Що вибрано, а також точні значення переміщення, обертання чи масштабування під час перетягування."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30750,6 +35296,10 @@ msgstr "Немає шару з проєкцією «Розгортка»"
msgid "%.1f mm tile"
msgstr "плитка %.1f мм"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Панель відповідає активному шару текстури, і цей шар має використовувати накладання «Розгортка (LSCM)». Додайте шар і встановіть для його «Накладання текстури» значення «Розгортка»."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Застаріло - малювання, шви або кут шва змінилися після створення цієї розгортки. Натисніть, щоб розгорнути знову."
@@ -30758,19 +35308,77 @@ msgstr "Застаріло - малювання, шви або кут шва з
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Розпрямити намальовану область в UV-острови. Обчислюється лише після натискання цієї кнопки, а не при кожній зміні - тож спочатку малюйте, змініть кут шва або позначте шви, а потім натисніть «Розгорнути»."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Спочатку увімкніть «Позначити шви» - «Шлях» дає змогу позначати їх швидше."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "На цьому шарі не позначено жодного шва розгортки."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Форму жодного острова не змінено вручну, тож скасовувати нічого."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "Островів: %d, граней: %s"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d острів"
+msgstr[1] "%d острови"
+msgstr[2] "%d островів"
+msgstr[3] "%d острова"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s грань"
+msgstr[1] "%s грані"
+msgstr[2] "%s граней"
+msgstr[3] "%s грані"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Результат розгортки намальованої області: кількість окремих частин, на які її розрізано (по швах і по ребрах, гостріших за кут шва), і загальна кількість трикутників у них."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Спочатку натисніть «Розгорнути» - островів для роботи ще немає."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Спочатку клацніть острів на полотні в режимі «Острів»."
+
+# AI Translated
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "ПУБ"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Вхід не виконано"
+
+# AI Translated
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Мережевий плагін Bambu не виявлено. Натисніть тут , щоб установити його."
+
+# AI Translated
+msgid "Create new project"
+msgstr "Створити новий проєкт"
+
+# AI Translated
+msgid "Recently opened"
+msgstr "Нещодавно відкриті"
+
+# AI Translated
+msgid "Open Containing Folder"
+msgstr "Відкрити теку з файлом"
# AI Translated
msgid "Forward"
msgstr "Уперед"
-# AI Translated
-msgid "Tools"
-msgstr "Інструменти"
-
# AI Translated
msgid "View Source"
msgstr "Переглянути код"
@@ -30842,6 +35450,75 @@ msgstr "Завантажити %1% у %2%"
msgid "Load %s"
msgstr "Завантажити %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Не вдалося увімкнути агента принтера '%1%': ID агента '%2%' уже зареєстровано можливістю '%3%' із плагіна '%4%'."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Не вдалося увімкнути агента принтера '%1%': ID агента '%2%' уже зареєстровано в '%3%'."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Файл вивантажено"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Вивантаження G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Запуск друку..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Друк розпочато"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Вивантаження..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Версію мережевої бібліотеки не вказано"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Мережеву бібліотеку не знайдено"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Не вдалося завантажити мережеву бібліотеку"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Мережева бібліотека не завантажилася"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Старіша серія плагінів. Функції, яким потрібна підтримка новішого плагіна, наприклад знімки збою друку в діалоговому вікні помилки пристрою, недоступні."
+
+# AI Translated
+msgid "unknown name"
+msgstr "невідома назва"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"Плагін «%s» запитує доступ на читання файлової системи до:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Дозволи плагіна"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -30856,36 +35533,84 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"Плагін «%s» запитує дозвіл на читання такого файлу:\n"
+"%s"
+msgstr[1] ""
+"Плагін «%s» запитує дозвіл на читання таких файлів:\n"
+"%s"
+msgstr[2] ""
+"Плагін «%s» запитує дозвіл на читання таких файлів:\n"
+"%s"
+msgstr[3] ""
"Плагін «%s» запитує дозвіл на читання таких файлів:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"Плагін «%s» запитує дозвіл на читання/запис такого файлу:\n"
+"%s"
+msgstr[1] ""
+"Плагін «%s» запитує дозвіл на читання/запис таких файлів:\n"
+"%s"
+msgstr[2] ""
+"Плагін «%s» запитує дозвіл на читання/запис таких файлів:\n"
+"%s"
+msgstr[3] ""
"Плагін «%s» запитує дозвіл на читання/запис таких файлів:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"Плагін «%s» запитує дозвіл на створення такого файлу:\n"
+"%s"
+msgstr[1] ""
+"Плагін «%s» запитує дозвіл на створення таких файлів:\n"
+"%s"
+msgstr[2] ""
+"Плагін «%s» запитує дозвіл на створення таких файлів:\n"
+"%s"
+msgstr[3] ""
"Плагін «%s» запитує дозвіл на створення таких файлів:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"Плагін «%s» запитує дозвіл на видалення такого файлу:\n"
+"%s"
+msgstr[1] ""
+"Плагін «%s» запитує дозвіл на видалення таких файлів:\n"
+"%s"
+msgstr[2] ""
+"Плагін «%s» запитує дозвіл на видалення таких файлів:\n"
+"%s"
+msgstr[3] ""
"Плагін «%s» запитує дозвіл на видалення таких файлів:\n"
"%s"
@@ -30910,10 +35635,36 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"Плагін «%s» запитує дозвіл на виконання такої команди:\n"
+"%s"
+msgstr[1] ""
+"Плагін «%s» запитує дозвіл на виконання таких команд:\n"
+"%s"
+msgstr[2] ""
+"Плагін «%s» запитує дозвіл на виконання таких команд:\n"
+"%s"
+msgstr[3] ""
+"Плагін «%s» запитує дозвіл на виконання таких команд:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "Плагін «%s» запитує дозвіл на створення потоку."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"Плагін «%s» запитує дозвіл на виконання таких команд:\n"
+"Плагін «%s» запитує заміну запущеного застосунку на:\n"
"%s"
# AI Translated
@@ -30925,6 +35676,46 @@ msgstr "Плагін «%s» запитує дозвіл на подію ауди
msgid "Plugin permission request"
msgstr "Запит дозволу плагіна"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "Пресет містить недійсний JSON конфігурації можливостей плагіна."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "Конфігурація можливостей плагіна в пресеті не є масивом і не може бути відредагована."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Підключення принтера"
+
+# AI Translated
+msgid "Pages"
+msgstr "Сторінки"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Аналіз"
+
+# AI Translated
+msgid "Importer"
+msgstr "Імпорт"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Експорт"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Візуалізація"
+
+# AI Translated
+msgid "Script"
+msgstr "Скрипт"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Конвеєр нарізки"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "Інтерфейс конфігурації плагіна порожній. Показано типовий редактор."
@@ -30947,8 +35738,346 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Не вдалося записати конфігурацію на диск. Нічого не змінено."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Не вдалося встановити плагін"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Не вдалося встановити плагін: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: встановлений плагін не знайдено в каталозі."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "У ключі хмарного плагіна відсутній UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Не вдалося підписатися на хмарний плагін, докладніше дивіться в журналах."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Скасувати підписку можна лише на хмарні плагіни."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Не вдалося скасувати підписку на плагін, докладніше дивіться в журналах."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Не вдалося отримати URL завантаження плагіна (результат %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "У вас немає прав на завантаження цього хмарного плагіна."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Для цієї операційної системи немає пакета плагіна."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "Вибрану версію плагіна не знайдено."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "Версію плагіна %1% не знайдено."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Хмарний плагін не знайдено."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Завантаження хмарного плагіна не знайдено: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Завантаження хмарного плагіна не знайдено."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Для цього плагіна немає URL завантаження. Перевірте журнали на наявність помилок."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Не вдалося завантажити плагін: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Завантаження плагіна завершилося помилкою зі статусом HTTP %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Завантаження плагіна повернуло порожні дані."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Не вдалося створити тимчасовий файл для завантаження плагіна."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Не вдалося записати дані плагіна в тимчасовий файл."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Не вдалося визначити теку плагіна: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Не вдалося видалити теку плагіна %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Каталог плагіна не існує: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "Каталог плагіна містить кілька файлів .py: %1% і %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "Каталог плагіна містить кілька файлів .whl: %1% і %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "Каталог плагіна містить одночасно вхідні файли .py і .whl"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "Каталог плагіна не містить вхідного файлу .py або .whl"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Помилка плагіна конвеєра нарізки '%1%': %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Пакет плагіна має бути файлом .py або .whl, отримано: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Не вдалося розпакувати залежність .whl плагіна %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Не вдалося додати залежність .whl до sys.path: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Інтерпретатор Python не ініціалізовано: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Маніфест плагіна недійсний: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Не вдалося встановити залежності плагіна: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Не вдалося завантажити модуль плагіна: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Не вдалося зареєструвати плагін: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Модуль плагіна не зареєстрував жодної можливості"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Плагін оголошує дубльовану можливість '%1%' для типу %2%"
+
+# AI Translated
+# Needs human review: "Capability materialization" is internal jargon (turning a plugin's declared capabilities into live objects); rendered as "створити можливості". Check it reads right in the plugin error.
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Не вдалося створити можливості плагіна: %1%"
+
+# AI Translated
+# Needs human review: "Capability materialization" is internal jargon (turning a plugin's declared capabilities into live objects); rendered as "створити можливості". Check it reads right in the plugin error.
+msgid "Plugin capability materialization failed"
+msgstr "Не вдалося створити можливості плагіна"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "Помилка on_load плагіна: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "Помилка on_load плагіна"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Пакет плагіна не є файлом: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "UUID хмарного плагіна не є дійсним ідентифікатором: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Не вдалося створити каталог плагіна %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Не вдалося створити резервну копію наявного плагіна %1%: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Не вдалося скопіювати файл плагіна до %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Не вдалося записати стан установлення плагіна: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Пакет плагіна вже завантажено: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Колізія можливостей для типу %1% та назви '%2%'"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Виявлено дубльований ключ плагіна: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Завантаження плагіна ще триває"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Плагін недійсний: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Плагін не знайдено: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Неочікуваний збій завантаження плагіна: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Неочікуваний збій завантаження плагіна"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Маніфест плагіна не знайдено: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Не вдалося отримати плагіни з хмари. Подробиці дивіться в журналах."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Увійдіть в OrcaCloud, щоб установити цей плагін."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud не повернув плагін, на який оформлено підписку."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Не вдалося завантажити хмарний плагін."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Не вдалося встановити хмарний плагін."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Оновлювати можна лише хмарні плагіни."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Для цього плагіна немає оновлень."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Відмовлено у видаленні плагіна поза відомими каталогами плагінів."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Відмовлено в оновленні плагіна поза відомими каталогами плагінів."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Не вдається залишити плагін локальним: локальний ключ плагіна вже існує: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Не вдалося оновити стан установлення плагіна: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Не можна скасувати підписку на власні плагіни."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Видаляти й скасовувати підписку можна лише для хмарних плагінів."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Не можна скасувати підписку на власні плагіни. Скористайтеся «Видалити», щоб вилучити локальні файли."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Запит плагіна на дозвіл читання файлової системи відхилено"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30982,6 +36111,10 @@ msgstr "не вдалося виконати злиття двостороннь
msgid "imported regions produced no extrudable geometry"
msgstr "імпортовані області не дали геометрії, придатної для видавлювання"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "профіль перетинає вісь обертання — він має лежати по один бік від неї"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Не вдалося виконати обертання"
@@ -31018,6 +36151,10 @@ msgstr "Не вдалося створити грань кишені"
msgid "Pocket cut failed"
msgstr "Не вдалося вирізати кишеню"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "профіль перетинає сам себе або накладається сам на себе, тому не обмежує єдину область"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "ескіз не має замкненого контуру"
@@ -31050,10 +36187,26 @@ msgstr "mesh_to_brep: сітка не має трикутників"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: усі трикутники відхилено як вироджені (спробуйте менший допуск)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "радіус заокруглення має бути більшим за 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "у цій групі немає ребер для заокруглення"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "радіус заокруглення завеликий для цієї геометрії"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "відстань фаски має бути більшою за 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "у цій групі немає ребер для фаски"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "відстань фаски завелика для цієї геометрії"
@@ -31066,6 +36219,153 @@ msgstr "apply_fillet: не вдалося виконати заокруглен
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: не вдалося виконати фаску OCCT"
+# AI Translated
+msgid "empty component list"
+msgstr "порожній список компонентів"
+
+# AI Translated
+msgid "empty component index"
+msgstr "порожній індекс компонента"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "індекс компонента має бути >= 1 (отримано %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "недійсний індекс компонента \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "потрібно щонайменше 2 компоненти (отримано %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "дубльований індекс компонента %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "порожнє значення частки"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "частка має бути додатною (отримано %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "недійсна частка \"%1%\""
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "кількість часток має збігатися з кількістю компонентів: очікувалося %1%, отримано %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "очікувалося два дійсних числа через кому, наприклад \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "початкова та кінцева частки мають бути в інтервалі (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "розмір масиву %1% не збігається з кількістю слотів філаменту %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "має бути задано, коли вказано параметри змішаного філаменту"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "слот %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "слот %1%: компонент %2% поза діапазоном (максимальний індекс фізичного філаменту — %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "слот %1%: не може посилатися на себе як на компонент"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "слот %1%: компонент %2% посилається на слот змішаного філаменту"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "слот %1%: градієнт потребує рівно 2 компонентів"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "слот %1%: недійсна крива (потрібно щонайменше 2 дійсні контрольні точки)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Не вдалося завантажити файл конфігурації \"%1%\": %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Це не файл G-code, створений %1%."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Тег конфігурації \"%1%\" не знайдено"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Підозріло мала кількість значень конфігурації, витягнутих із %1%: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Не вдалося завантажити файл step.\n"
+"Не вдається відкрити файл для читання.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "помилка імпорту svg: не вдалося відкрити svg."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "помилка імпорту svg: не вдалося розібрати імпортовані дані svg."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "Користувацький G-code повідомляє відʼємне значення z_retracted."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "Користувацький G-code повідомляє відʼємне значення z_restart_extra."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Копіювання теки %1% у %2% не вдалося: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Автентифікацію завершено"
@@ -31516,6 +36816,1124 @@ msgstr ""
"Уникнення деформації\n"
"Чи знаєте ви, що при друку матеріалами, схильними до деформації, такими як ABS, відповідне підвищення температури столу може зменшити ймовірність деформації?"
+#~ msgid "Please choose the filament color"
+#~ msgstr "Будь ласка, виберіть колір філаменту"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Ширина лінії моста. Якщо задано у %, вона обчислюється відносно діаметра сопла.\n"
+#~ "Рекомендується використовувати з вищою щільністю моста або вищим коефіцієнтом потоку моста.\n"
+#~ "\n"
+#~ "Максимальне значення — 100% або діаметр сопла.\n"
+#~ "Якщо встановлено 0, ширина лінії відповідатиме ширині внутрішнього суцільного заповнення."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Увімкніть цю опцію, щоб уповільнювати друк у зонах, де периметри могли загнутися вгору.\n"
+#~ "Наприклад, додаткове уповільнення застосовуватиметься під час друку нависань на гострих кутах, як-от ніс корпусу Benchy, зменшуючи загинання, що накопичується протягом кількох шарів.\n"
+#~ "\n"
+#~ "Загалом рекомендується тримати цю опцію увімкненою, якщо тільки охолодження вашого принтера не є достатньо потужним або швидкість друку достатньо низькою, щоб загинання периметрів не виникало. \n"
+#~ "Під час друку з високою швидкістю зовнішнього периметра цей параметр може спричинити артефакти на стінках під час уповільнення через потенційно велику різницю швидкостей друку, коли екструдер не встигає за потрібною зміною потоку.\n"
+#~ "Корінна причина цих артефактів — найімовірніше, дещо неточне налаштування PA, особливо в поєднанні з великим часом згладжування PA.\n"
+#~ "\n"
+#~ "Рекомендації при увімкненні цієї опції:\n"
+#~ "1. Зменште час згладжування Pressure Advance до 0.015 - 0.02, щоб екструдер швидко реагував на зміни швидкості.\n"
+#~ "2. Збільште мінімальні швидкості друку, щоб обмежити величину уповільнення та зменшити різницю між швидкими й повільними ділянками.\n"
+#~ "3. Якщо артефакти все ще зʼявляються, увімкніть згладжування швидкості екструзії (ERS), щоб додатково згладити переходи потоку.\n"
+#~ "\n"
+#~ "Примітка: коли цю опцію увімкнено, периметри нависань обробляються як нависання, тобто швидкість нависання застосовується навіть тоді, коли нависаючий периметр є частиною моста.\n"
+#~ "Наприклад, коли периметри нависають на 100% і під ними немає стінки-опори, буде застосовано швидкість для 100% нависання."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Швидкість екструзії мостів, які видно ззовні.\n"
+#~ "\n"
+#~ "Крім того, якщо параметр 'Уповільнення для закручених периметрів' вимкнено або увімкнено 'Класичний режим нависань', ця швидкість буде використовуватися для друку стінок з нависанням, які підтримуються менш ніж на 13%, незалежно від того, чи є вони частиною мосту або звичайного нависання."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Це окреме налаштування впливає на швидкість периметрів, що мають радіус < = small_perimeter_threshold (зазвичай отворів). Якщо він виражений у відсотках(наприклад, 80%), то він розраховуватиметься на зазначеній вище швидкостіЗовнішній периметр. Встановіть нульове значення для автоматичного налаштування."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Те саме, що й «Малі периметри», але для підтримок. Це окреме налаштування впливає на швидкість підтримок для областей <= `small_support_perimeter_threshold`. Якщо задано у відсотках (наприклад, 80%), воно обчислюється відносно наведеного вище налаштування швидкості підтримок або інтерфейсу підтримок. Встановіть нуль для автоматичного значення."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Послідовність друку внутрішніх (inner) та зовнішніх (outer) стін.\n"
+#~ "\n"
+#~ "Використовуйте внутрішню/зовнішню для найкращих виступів. Це повʼязано з тим, що стіни, які виступають, можуть прилипати до сусіднього периметра під час друку. Однак цей параметр призводить до деякого зниження якості поверхні, оскільки зовнішній периметр деформується, притискаючись до внутрішнього.\n"
+#~ "\n"
+#~ "Використовуйте Внутрішній/Зовнішній/Внутрішній для найкращої якості зовнішньої поверхні та точності розмірів, оскільки зовнішня стіна друкується без порушень від внутрішнього периметра. Однак, продуктивність на виході зменшиться, оскільки немає внутрішнього периметра, до якого можна було б притискати зовнішню стіну. Для ефективної роботи цієї опції потрібно щонайменше 3 стіни, оскільки спочатку друкуються внутрішні стіни, починаючи з 3-го периметра, потім зовнішній периметр і, нарешті, перший внутрішній периметр. У більшості випадків цей параметр рекомендується використовувати замість параметра Зовнішній/Внутрішній.\n"
+#~ "\n"
+#~ "Використовуйте опцію Зовнішня/Внутрішня для отримання такої ж якості зовнішньої стіни і точності розмірів, як і в опції Внутрішня/Зовнішня/Внутрішня. Однак шви по Z будуть виглядати менш рівномірними, оскільки перша екструзія нового шару починається на видимій поверхні "
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Швидкість першого шару, за винятком зони суцільного заповнення"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Швидкість зони суцільного заповнення першого шару"
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Область заповнення дещо збільшена, щоб перекривати стіну для кращого зчеплення. Значення у відсотках відносно ширини лінії розрідженого заповнення. Встановіть це значення на рівні ~10-15%, щоб мінімізувати можливість надмірного видавлювання та накопичення матеріалу, що призводить до шорсткості верхньої поверхні."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "Площа верхнього суцільного заповнення злегка збільшується, щоб накладатися на стінку для кращого зчеплення та зменшення прогалин у місцях прилягання верхнього заповнення до стінок. Значення 25-30% є хорошим початком для мінімізації таких прогалин. Значення у відсотках відносно ширини лінії часткового заповнення"
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr ""
+#~ "Глибина зчеплення сегментованої області. Буде ігноруватися, якщо \"mmu_segmented_region_max_width\" дорівнює нулю або якщо \"mmu_segmented_region_interlocking_depth\" більший за \"mmu_segmented_region_max_width\".\n"
+#~ "\n"
+#~ "Нульове значення вимикає цю функцію."
+
+# AI Translated
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Зменшує висоту периметрів верхньої поверхні відповідно до висоти краю моделі.\n"
+#~ "Впливає на периметри з нахилом, меншим за цей кут (у градусах).\n"
+#~ "Розумне значення — 35. Встановіть 0, щоб вимкнути."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Швидкість протирання залежно від типу"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Захисний екран буде корисним для захисту друку ABS або ASA від викривлення та відлипання від столу в наслідок протягу повітря. Зазвичай він потрібен для відкритих принтерів, які не мають закритої камери.\n"
+#~ "\n"
+#~ "Увімкнено = Спідниця буде тої ж висоти що і найвищий обʼєкт друку. Інакше буде застосовано параметр \"Висота спідниці\"\n"
+#~ "До уваги: При увімкненому захисному екрані, спідниця буде надрукована на відстані від обʼєкту. Тому, якщо увімкнена кайма, вони можуть перетинатися. Щоб запобігти цьому, збільшіть значення відстані спідниці.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Максимальна швидкість друку під час продування у башті витирання та друку розріджених шарів у башті витирання. Якщо під час продування швидкість розрідженого заповнення або розрахована швидкість на основі максимальної обʼємної швидкості нитки нижча, замість неї використовуватиметься найнижча швидкість.\n"
+#~ "\n"
+#~ "Під час друку розріджених шарів, якщо швидкість по внутрішньому периметру або розрахована швидкість на основі максимальної обʼємної швидкості нитки нижча, буде використовуватися найнижча швидкість.\n"
+#~ "\n"
+#~ "Збільшення цієї швидкості може вплинути на стабільність башти, а також збільшити силу, з якою сопло стикається з будь-якими згустками, що можуть утворитися на башті витирання.\n"
+#~ "\n"
+#~ "Перш ніж збільшувати цей параметр понад значення за замовчуванням 90 мм/с, переконайтеся, що принтер може надійно працювати на підвищених швидкостях і що витікання під час заміни інструменту добре контролюється.\n"
+#~ "\n"
+#~ "Для зовнішніх периметрів вежі витирання використовується швидкість внутрішнього периметра незалежно від цього параметра."
+
+# AI Translated
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Тип зовнішньої стінки вежі протирання.\n"
+#~ "1. Прямокутник: типовий тип стінки, прямокутник з фіксованою шириною та висотою.\n"
+#~ "2. Конус: конус із заокругленням унизу, що допомагає стабілізувати вежу протирання.\n"
+#~ "3. Ребро: додає до стінки вежі чотири ребра для більшої стійкості."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Додатковий потік для ліній очистки на вежі протирання. Це робить лінії очистки товщими або вужчими, ніж зазвичай. Відстань між лініями налаштовується автоматично."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr "Налаштуйте це значення, щоб запобігти друкуванню коротких незакритих стін, що може збільшити час друку. Вищі значення видаляють більше і довші стіни."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Розділити на %1% частину"
+#~ msgstr[1] "Розділити на %1% частини"
+#~ msgstr[2] "Розділити на %1% частин"
+#~ msgstr[3] "Розділити на %1% частини"
+
+#~ msgid "Repair failed"
+#~ msgstr "Ремонт не вдалося."
+
+#~ msgid "Repair canceled"
+#~ msgstr "Ремонт скасовано"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Що робить цей шар там, де він перекриває нижні. «Додати» та «Відняти» нарощують рельєф або вирізають його. «Помножити» та «Розділити» масштабують те, що під ним, і цей шар стає маскою над ним - тоді «Глибина» діє як сила, а 1 мм залишає білі ділянки незмінними."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "Сітка має неманіфолдну геометрію або відкриті межі. Ви можете імпортувати її як є або перед імпортом виправити її за допомогою служби 3D-виправлення Windows."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Зверніть увагу, що сітка має неманіфолдну геометрію або відкриті межі."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Проблема із сіткою"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Не вдалося виправити: сітка залишається відкритою після заповнення отворів."
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Не вдається застосувати логічну операцію до нелогічних операндів."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Зчитування"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Кількість філаменту перевищує максимальну кількість, яку підтримує інструмент малювання. Лише перші %1% філаменту будуть доступні в інструменті малювання."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Комбінація клавіш "
+
+#~ msgid "Build Volume"
+#~ msgstr "Робочий обʼєм"
+
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Обʼєкти(%1%) мають дубльовані зʼєднання. Деякі зʼєднання можуть бути упущені в результаті нарізання.\n"
+#~ "Будь ласка, повідомте команду OrcaSlicer за якого сценарію це сталося.\n"
+#~ "Дякую."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d трикутники"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Переміщення)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Фіксований)"
+
+#~ msgid "Filament "
+#~ msgstr "Філамент "
+
+#~ msgid "hotend"
+#~ msgstr "хотенд"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Впорядкування "
+
+#~ msgid "Orienting"
+#~ msgstr "Орієнтація"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Поверніть всі осі у вихідне положення (натисніть "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") для визначення положення друкованої голови. Це передбачає переміщення за межі області друку та розмір обладнання."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Збільшує витрату філаменту на %1%г та кількість змін на %2% порівняно з оптимальним групуванням."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Збільшує витрату філаменту на %1%г та економить %2% змін порівняно з оптимальним групуванням."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Економить %1%г філаменту та збільшує кількість змін на %2% порівняно з оптимальним групуванням."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Економить %1%г філаменту та %2% змін порівняно з принтером з одним соплом."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Економить %1%г філаменту та збільшує кількість змін на %2% порівняно з принтером з одним соплом."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Збільшує витрату філаменту на %1%г та економить %2% змін порівняно з принтером з одним соплом."
+
+#~ msgid "number keys"
+#~ msgstr "клавіші з числами"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Філаменти %s розміщено в %s, але згенерований шлях G-code виходить за межі області друку %s."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Філаменти %s розміщено в %s, але згенерований шлях G-code перевищує друковану висоту %s."
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Філаменти %s не можуть бути надруковані безпосередньо на поверхні пластини."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "буде закрито перед створенням нової моделі. Ви хочете продовжити?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "У черзі Cloud Slicing Queue попереду %s завдань."
+
+#~ msgid " upload failed"
+#~ msgstr " Помилка завантаження"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " Помилка при спробі завантажити конфігураційний файл\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Відсутній відповідний сховищний контейнер\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " Не може бути відкрито\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Ваш коментар не може бути завантажений з якихось причин. Ось деталі помилки:\n"
+#~ "\n"
+#~ " код помилки: "
+
+#~ msgid "error message: "
+#~ msgstr "текст помилки: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Чи бажаєте ви перейти на веб-сторінку для оцінки?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (пресет процесу: %1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "Сопло %s не може друкувати %s."
+
+#~ msgid " nozzle"
+#~ msgstr " сопло"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Не рекомендується друкувати наступні філаменти з %1%: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " пластина %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Вилучити всі змішані філаменти (%1%)?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Ви хочете замінити його"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Конфлікт температури столу: T%d (%s) встановлює для столу %d°C — T%d (%s) потребує %d°C. Столом керує основний інструмент; вторинні інструменти друкують за температурою, яку він встановлює."
+
+# AI Translated
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Для калібрування не вказано прискорень. Використовується типове значення прискорення "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Не вказано швидкості для калібрування. Використовувати типову оптимальну швидкість "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Для діапазону від %1% до %2% °C немає температурної вежі для стрічкових принтерів. Використайте діапазон, який охоплюють моделі веж, наприклад від 230 до 190."
+
+#~ msgid "The selected file"
+#~ msgstr "Вибраний файл"
+
+# AI Translated
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "Не містить дійсного G-code."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "з OrcaSlicer так що Orca могла відкривати моделі з"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Витрачає на %dг філаменту та на %d змін більше, ніж оптимальне групування."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Параметри з цим значком можна налаштовувати для кожного сопла окремо."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Знайдено зарезервовані ключові слова"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "За цим принтером прикріплено %d пресетів філаменту та %d пресетів процесу. Ці пресети будуть видалені, якщо принтер буде видалено."
+
+# AI Translated
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Профіль вказаний нижче, успадковується від поточного профілю."
+#~ msgstr[1] "Профілі вказані нижче, успадковуються від поточного профілю."
+#~ msgstr[2] "Профілі вказані нижче, успадковуються від поточного профілю."
+#~ msgstr[3] "Профілі вказані нижче, успадковуються від поточного профілю."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% пресет"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Ви впевнені, що %1% вибраної установки?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Розділити на %1% частин"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Завантаження нових профілів виробників: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Не вдалося завантажити профілі виробників: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "У цьому режимі Span кольоровий друк можливий лише на %1%, але філамент %2% не спрямовано на жоден інструмент. Використовуйте філаменти, спрямовані на %1%, або перемкніть цю пластину в режим «Основний»."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "У цьому режимі Span кольоровий друк можливий лише на %1%, але філамент %2% спрямовано на T%3%. Використовуйте філаменти, спрямовані на %1%, або перемкніть цю пластину в режим «Основний»."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " знаходиться надто близько до зони відчуження, при друку можуть виникати колізії."
+
+# AI Translated
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " розташовано занадто близько до зони виявлення налипання, під час друку можливі зіткнення."
+
+#~ msgid "Prime Tower"
+#~ msgstr "Підготовча вежа"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " залишається близько до інших, що може призвести до зіткнення.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " знаходиться надто близько до зони відчуження, що призведе до зіткнень.\n"
+
+# AI Translated
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " розташовано занадто близько до зони виявлення налипання, і це спричинить зіткнення.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " частково знаходиться за межами області друку, і його неможливо надрукувати.\n"
+
+# AI Translated
+# Needs human review: Substituted as %3% into 'this plate's filaments are on %3%' (translated 'призначено на %3%'); check the full sentence reads right.
+#~ msgid "no configured tool"
+#~ msgstr "інструмент, якого немає в налаштуваннях"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "Завершальний G-code, коли закінчити весь друк"
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Максимальна швидкість X"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Максимальна швидкість Y"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Максимальна швидкість Z"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Максимальна швидкість E"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "Плагіни Python, що викликаються на кожному кроці конвеєра нарізки для читання та зміни проміжних даних нарізки, включно з фінальним кроком постобробки G-code. Дослідницьке/експериментальне."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Якщо увімкнено, слайсер генерує G-code із вмістом основної зони, відцентрованим відносно початку координат столу (0,0). За розміщення копій і дзеркальних відображень у кожній фізичній зоні відповідає прошивка принтера. Вмикайте лише на принтерах, прошивка яких сама застосовує зміщення зон у режимі копії чи дзеркала (наприклад, режим дублювання IDEX у RepRapFirmware). Не діє в режимі «Основний»."
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Перевизначення для пластини, що зіставляє фізичні головки зі слотами філаменту (нумерація з 1). Порожнє значення означає типові значення з інверсії pem."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Вісь, навколо якої сітку повертають перед нарізкою. Це нахил стрічкового принтера: ізометричне (без спотворень) обертання, яке також визначає відображення столу й нахил сили тяжіння для підтримок і яке зворотне перетворення G-code скасовує перед зсувом/масштабуванням і перепризначенням осей у машинній системі координат. X — типовий нахил порталу (стрічка рухається вздовж Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Експертне перевизначення: задає кут нахилу машинної системи координат (зсув/масштаб G-code) незалежно від кута повороту перед нарізкою. Якщо вимкнено, перетворення машинної системи координат обчислюється з кута нахилу стрічки, тож один кут керує обома етапами. Вмикайте лише для компенсації машини, фізичний нахил порталу якої відрізняється від повороту під час нарізки."
+
+# AI Translated
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "Максимальне відхилення, дозволене при зниженні роздільності для налаштування «Максимальна роздільність стінки». Якщо його збільшити, друк буде менш точним, але G-code — меншим. «Максимальне відхилення стінки» обмежує «Максимальну роздільність стінки», тож у разі конфлікту пріоритет має «Максимальне відхилення стінки»."
+
+#~ msgid " not in range "
+#~ msgstr " не в зоні "
+
+#~ msgid "floating regions"
+#~ msgstr "області, що плавають"
+
+#~ msgid "floating cantilever"
+#~ msgstr "плаваюча консоль"
+
+#~ msgid "large overhangs"
+#~ msgstr "великі звіси"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Схоже, обʼєкт %s має %s. Змініть орієнтацію обʼєкта або увімкніть Створення підтримки."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Шари не виявлені. Можливо, потрібно відновити файли STL або перевірити їх розмір або товщину і повторити спробу.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Цей тип машини може зберігати лише %d результатів історії на сопло. Цей результат не буде збережений."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Цей тип машини може зберігати лише %d результатів історії на сопло."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Нависання"
+
+#~ msgid "Start / End"
+#~ msgstr "Початок / Кінець"
+
+# AI Translated
+#~ msgid "Damp"
+#~ msgstr "Демпфування"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "На принтері виявлено %d слотів IFS."
+
+#~ msgid "selected"
+#~ msgstr "вибрані"
+
+# AI Translated
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Профіль вказаний нижче, успадковується від поточного профілю."
+#~ msgstr[1] "Профілі вказані нижче, успадковуються від поточного профілю."
+#~ msgstr[2] "Профілі вказані нижче, успадковуються від поточного профілю."
+#~ msgstr[3] "Профілі вказані нижче, успадковуються від поточного профілю."
+
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "Знайдено %zu принетр(ів) Creality. Виберіть один і натисніть Використати вибране."
+
+#~ msgid "log(s)"
+#~ msgstr "лог(и)"
+
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Помилка: Екструдер %s не має доступного сопла %s, поточний результат групування неправильний."
+
+#~ msgid "invalid brim ears"
+#~ msgstr "неправильні краєчки"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Пропускання %d обʼєктів."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Відкрити теку в провіднику"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Клацніть центр, потім вершину — сторін: %d, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "описаний"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "вписаний"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Ескіз створено (керівних розмірів: %zu) — виберіть його, потім клацніть правою кнопкою для видавлювання"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "ОК — трикутників: %zu"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Кількість трикутників у цій сітці: %d. Кожен трикутник стає гранню B-rep перед обʼєднанням компланарних граней, тому імпорт може тривати довго, а отримане тіло буде повільним у редагуванні. Зазвичай краще спершу спростити сітку.\n"
+#~ "\n"
+#~ "Все одно імпортувати?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Імпортовано тверде тіло — трикутників: %d → граней: %d, обʼєм %.2f мм³. Виберіть грань або ребро, потім «Заокруглення» / «Розріз» / «Оболонка» для зміни"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — перетягніть, щоб розмістити/змінити розмір, потім підтвердьте"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "Обʼєктів ескізу: %d"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — введіть значення, натисніть Enter (або «Підтвердити»)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Попередній перегляд — трикутників: %zu"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "Обмеження, які не можуть діяти на цю геометрію (еліпс, сплайн або коло нульового розміру), ігноруються: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "Видалено обмежень, які стали недійсними через заокруглення/фаску: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "Знято обмежень під час перетворення: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...і ще відкритих кінців: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "Список матеріалів підтримує не більше %1% кольорів. Після розкладання %2% кількість матеріалів перевищить %1%. Перед розкладанням видаліть невикористані філаменти на головному екрані."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "Кольорів для друку: %1% (філаментів: %2%)"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "Островів: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Використано всі шари (%1%)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Попередній перегляд — трикутників: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Трикутників у моделі: %1% - запікання уточнює сітку до роздільної здатності, заданої вище, у межах свого бюджету"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Запікання зсуває наявні вершини - кількість трикутників у моделі не зміниться: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Результат запікання — до ~%1% тис. трикутників"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "Пропущено ненамальованих шарів: %1%"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Проєкт підтримує до %d філаментів. Зайві філаменти буде відкинуто."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Вибрано вершин: %d | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Вибрано ребер: %d | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "Вибрано островів: %d | перетягування = рух разом, Shift/Ctrl+клацання = додати/вилучити, R/S = обертати/масштабувати основний"
+
+# AI Translated
+# Needs human review: The English names a 'Tiling' control that does not exist; rendered as the 'Плитка' (Tile) section. Check against the layer settings in the texture displacement gizmo.
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Розмір плитки активного шару текстури: яку частину моделі покриває одне повторення текстури. Полотно вимірюється в плитках, тож одна клітинка сітки — це одне повторення. Змініть його в розділі «Плитка» налаштувань шару."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "Островів: %d, граней: %s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Плагін «%s» запитує дозвіл на читання таких файлів:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Плагін «%s» запитує дозвіл на читання/запис таких файлів:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Плагін «%s» запитує дозвіл на створення таких файлів:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Плагін «%s» запитує дозвіл на видалення таких файлів:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Плагін «%s» запитує дозвіл на виконання таких команд:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Не вдалося встановити плагін"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Не вдалося встановити Microsoft WebView2 Runtime.\n"
+#~ "Деякі функції, зокрема майстер налаштування, можуть відображатися порожніми, доки його не буде встановлено.\n"
+#~ "Встановіть його вручну зі сторінки https://developer.microsoft.com/microsoft-edge/webview2/ і перезапустіть Orca Slicer."
+
+#~ msgid "Why this grouping"
+#~ msgstr "Чому це згруповано"
+
+# AI Translated
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "Програма не підтримує використання сопел різного діаметра в одному друці. Якщо ліве та праве сопла відрізняються, ми можемо продовжити лише друк однією головкою. Підтвердьте, яке сопло ви хочете використати для цього проєкту."
+
+#~ msgid "Switch diameter"
+#~ msgstr "Змінити діаметр"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "Проєкт BambuStudio"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "Файл 3MF створено в BambuStudio (версія %s), новішій за сумісну версію %s. Знайдено нерозпізнані налаштування:"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "Файл 3MF створено в BambuStudio (версія %s), новішій за сумісну версію %s. Деякі налаштування можуть бути не повністю сумісними."
+
+# AI Translated
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "Файл 3MF створено в BambuStudio. Деякі налаштування можуть відрізнятися від OrcaSlicer."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Неможливо скасувати чи повторити дію, поки виконується операція. Спершу зупиніть її."
+
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Центрує внутрішнє заповнення кожної частини на ній самій, ніби її нарізали окремо, а не на всій збірці. Частини, що торкаються або перекриваються, вважаються одним тілом і мають спільний центр; окремі частини (або різні 3D-обʼєкти) отримують власний.\n"
+#~ "Корисно, коли збірка групує кілька обʼєктів, кожен з яких має зберігати узгоджене, самоцентроване заповнення.\n"
+#~ "Впливає на лінійні та сіткові шаблони, а також на заповнення з шаблонами обертання.\n"
+#~ "Шаблони, привʼязані до глобальних координат (Гіроїд, Медові стільники, TPMS, ...), не змінюються."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Індекс поточного шару. На одній основі (тобто перший шар номер 1)."
+
+#~ msgid "Video tutorial"
+#~ msgstr "Відео-урок"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Примітив"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Згенеровано порожню сітку"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Паралелепіпед"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Швидкий вибір:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Ширина (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Глибина (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Висота (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "Нижній R"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "Верхній R"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "Великий R"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "Малий R"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Усі ребра"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Верхні ребра"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Нижні ребра"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Бічні ребра"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Роздільна здатність сітки"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Додати форму"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Немає зовнішнього профілю"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Не вдалося створити зовнішню грань"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Не вдалося побудувати грань з отворами"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Не вдалося виконати обертання"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Профіль"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Почати новий профіль (для отворів)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Сегменти"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Сторони"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Клацніть на полотні, щоб малювати"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Привʼязка до сітки"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Крок сітки"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Зовнішній"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "замкнений"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2% (точок: %3%) %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (Верх)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (Перед)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (Бік)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Обертання, °"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "0 — видавлювання, >0 — обертання"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Кишеня (вирізання)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu замкнений профіль"
+#~ msgstr[1] "%zu замкнені профілі"
+#~ msgstr[2] "%zu замкнених профілів"
+#~ msgstr[3] "%zu замкненого профілю"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Намалюйте замкнений профіль, щоб увімкнути"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Порожній результат"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Видавлювання: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Обертання: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Не вибрано обʼєкт"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Не вдалося створити грань"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Не вдалося створити грань з отворами"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Сітка інструмента порожня"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Кишеню додано (відʼємний обʼєм)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Кишеня: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Потрібен активний шар із проєкцією «Розгортка (LSCM)»."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Шахівниця - тестова сітка замість текстури. Там, де квадрати лишаються квадратними, текстура не спотворена; де вони розтягуються, розтягнеться й вона"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Спотворення - теплова карта розтягнення від синього до червоного поверх розгортки"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Змішувати за"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Поверхня"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Шари: два філаменти чергуються між шарами друку, що дає плавне змішування на вертикальних поверхнях, але зникає на пласких, де цілий шар — одна смуга.\n"
+#~ "Поверхня: дрібна шахова сітка по поверхні, яка працює під будь-яким кутом, але може сприйматися як текстура, а не як змішування.\n"
+#~ "Автоматично: шари на вертикальних гранях; пласкі грані отримують найближчий окремий філамент, оскільки шахова сітка на них видна як візерунок."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Острів - переміщення, обертання й масштабування цілих островів"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Вершина - перетягуйте вершини, щоб змінити форму; Shift/Ctrl для множинного вибору"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Ребро - перетягуйте ребра, щоб змінити форму; Shift/Ctrl для множинного вибору"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Вмістити всі острови в кадр (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Експериментально) Використовувати агентів принтера замість хостів друку"
@@ -31549,16 +37967,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Клацніть грань або опорну площину, потім виберіть інструмент малювання"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -31615,10 +38023,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Вертикальна відстань"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Лінійний"
-
#~ msgid "Face recognition"
#~ msgstr "Розпізнавання обличчя"
@@ -33049,9 +39453,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Не вдалося обчислити ширину лінії %1%. Неможливо отримати значення \"%2%\" "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Неправильний інтервал, переданий до Flow::with_spacing(), перевірте висоту шару та ширину екструзії"
-
#~ msgctxt "Sync_Nozzle_AMS"
#~ msgid "Cancel"
#~ msgstr "Скасувати"
@@ -33183,9 +39584,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "вибір частини"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction mode.\n"
#~ "\n"
diff --git a/localization/i18n/vi/OrcaSlicer_vi.po b/localization/i18n/vi/OrcaSlicer_vi.po
index 561b7dc2b6..348289eec2 100644
--- a/localization/i18n/vi/OrcaSlicer_vi.po
+++ b/localization/i18n/vi/OrcaSlicer_vi.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2025-10-02 17:43+0700\n"
"Last-Translator: \n"
"Language-Team: hainguyen.ts13@gmail.com\n"
@@ -427,8 +427,10 @@ msgid "Please wait"
msgstr "Vui lòng đợi"
# AI Translated
-msgid "Reading"
-msgstr "Đang đọc"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "Giá hotend cảm ứng từ: Đang đọc %d/%d"
# AI Translated
msgid "Running..."
@@ -596,9 +598,11 @@ msgstr "Gizmo - Đặt lên mặt"
msgid "Lay on Face"
msgstr "Đặt lên mặt"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "Số lượng filament vượt quá số tối đa mà công cụ vẽ hỗ trợ. Chỉ %1% filament đầu tiên sẽ khả dụng trong công cụ vẽ."
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "Số lượng filament vượt quá số tối đa mà công cụ vẽ hỗ trợ. Chỉ %1% filament đầu tiên sẽ khả dụng trong công cụ vẽ."
msgid "Color Painting"
msgstr "Vẽ màu"
@@ -650,8 +654,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "Phím tắt "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "Phím tắt %d"
msgid "Triangle"
msgstr "Tam giác"
@@ -756,6 +762,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "Chọn phần"
+msgid "Select multiple objects"
+msgstr "Chọn nhiều đối tượng"
+
msgid "Fixed step drag"
msgstr "Kéo bước cố định"
@@ -820,10 +829,81 @@ msgstr "Phần"
msgid "Relative"
msgstr "Tương đối"
+msgid "Selection"
+msgstr "Lựa chọn"
+
+# AI Translated
+msgid "Plate"
+msgstr "Plate"
+
+msgid "Distribute"
+msgstr ""
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "Hệ tọa độ dùng cho các thao tác biến đổi."
+msgid "Reference for alignment"
+msgstr ""
+
+msgid "Select at least 3 parts or objects"
+msgstr ""
+
+# AI Translated
+msgid "Align left"
+msgstr "Căn trái"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "Căn giữa trái-phải"
+
+# AI Translated
+msgid "Align right"
+msgstr "Căn phải"
+
+# AI Translated
+msgid "Align front"
+msgstr "Căn trước"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "Căn giữa trước-sau"
+
+# AI Translated
+# Needs human review: Align/Distribute menu (object right-click), Y axis: check 'Căn trước'/'Căn sau' read as aligning the front/back edges, not 'align first/later'.
+msgid "Align back"
+msgstr "Căn sau"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "Căn dưới"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "Căn giữa trên-dưới"
+
+# AI Translated
+msgid "Align top"
+msgstr "Căn trên"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "Phân bố trái-phải"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "Phân bố trước-sau"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "Phân bố trên-dưới"
+
+msgid "Drop"
+msgstr "Thả xuống"
+
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr ""
+
# AI Translated
msgid "Absolute"
msgstr "Tuyệt đối"
@@ -926,9 +1006,6 @@ msgstr "Góc rãnh"
msgid "Cut position"
msgstr "Vị trí cắt"
-msgid "Build Volume"
-msgstr "Thể tích in"
-
msgid "Multiple"
msgstr "Nhiều"
@@ -1104,11 +1181,15 @@ msgstr "Khớp nối"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
-"Các vật thể(%1%) có khớp nối trùng lặp. Một số khớp nối có thể bị thiếu trong kết quả slice.\n"
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"Vật thể (%1%) có khớp nối trùng lặp. Một số khớp nối có thể bị thiếu trong kết quả slice.\n"
"Vui lòng báo cho nhóm OrcaSlicer biết vấn đề này xảy ra trong tình huống nào.\n"
"Cảm ơn bạn."
@@ -1176,9 +1257,11 @@ msgstr "Thấp"
msgid "Extra low"
msgstr "Rất thấp"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d tam giác"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% tam giác"
msgid "Show wireframe"
msgstr "Hiện khung dây"
@@ -1189,6 +1272,18 @@ msgstr "Không thể áp dụng khi đang xử lý xem trước."
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "Thao tác đang hủy. Vui lòng chờ vài giây."
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "Đã hủy đơn giản hóa mô hình"
+
+# AI Translated
+msgid "Wiki Guide"
+msgstr "Hướng dẫn Wiki"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "Video hướng dẫn"
+
msgid "Enforce seam"
msgstr "Bắt buộc seam"
@@ -1241,6 +1336,14 @@ msgstr "Vị trí trên bề mặt"
msgid "Emboss"
msgstr "Emboss"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "Kiểu không có font đang dùng. Hãy chọn font phù hợp."
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont chưa được tải đúng cách."
+
# AI Translated
msgid "NORMAL"
msgstr "THƯỜNG"
@@ -1900,11 +2003,25 @@ msgstr "Đường kính"
msgid "Length"
msgstr "Độ dài"
-msgid "Selection"
-msgstr "Lựa chọn"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "Mặt 1 (Cố định)"
-msgid " (Moving)"
-msgstr " (Đang di chuyển)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "Mặt 2 (Đang di chuyển)"
+
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "Điểm 1 (Cố định)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "Điểm 2 (Đang di chuyển)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "Lựa chọn 1"
msgid ""
"Select 2 faces on objects and \n"
@@ -1920,14 +2037,9 @@ msgstr ""
"Chọn 2 điểm hoặc đường tròn trên vật thể và \n"
" chỉ định khoảng cách giữa chúng."
-msgid "Face"
-msgstr "Mặt"
-
-msgid " (Fixed)"
-msgstr " (Cố định)"
-
-msgid "Point"
-msgstr "Điểm"
+# AI Translated
+msgid "Selection 2"
+msgstr "Lựa chọn 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -2035,6 +2147,18 @@ msgstr "Đang vào gizmo Lắp ráp"
msgid "Leaving Assembly gizmo"
msgstr "Đang rời gizmo Lắp ráp"
+msgid "Parts of a cut object cannot be moved"
+msgstr ""
+
+msgid "Aligning to the plate is available in X and Y only"
+msgstr ""
+
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr ""
+
+msgid "All selected objects must be on the same plate"
+msgstr ""
+
msgid "Shift+"
msgstr "Shift+"
@@ -2231,14 +2355,15 @@ msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"Không thể cài đặt Microsoft WebView2 Runtime.\n"
"Một số tính năng, bao gồm trình hướng dẫn thiết lập, có thể hiển thị trống cho đến khi nó được cài đặt.\n"
-"Vui lòng cài đặt thủ công từ https://developer.microsoft.com/microsoft-edge/webview2/ rồi khởi động lại Orca Slicer."
+"Vui lòng cài đặt thủ công từ %1% rồi khởi động lại Orca Slicer."
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
@@ -2487,6 +2612,67 @@ msgstr "Hạn chế Plug-in mạng"
msgid "Privacy Policy Update"
msgstr "Cập nhật chính sách bảo mật"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "Tất cả cài đặt sẵn filament của bạn đều có thể dùng trên các máy in mà chúng được tạo ra."
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "Di chuyển cài đặt sẵn filament"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 đã tái cấu trúc nhiều cài đặt sẵn filament hệ thống để sửa các hồ sơ không chính xác và chuẩn bị cho các tính năng trong tương lai. Do đó, các cài đặt sẵn bên dưới không còn hiển thị trên một số máy in mà chúng được tạo ra. Rất tiếc vì sự bất tiện này; đây là bản sửa lỗi một lần duy nhất.\n"
+"\n"
+"Thêm lại các máy in đó vào cài đặt sẵn của bạn ngay bây giờ? Cài đặt sẵn của bạn sẽ được sao lưu trước. Bạn cũng có thể thực hiện việc này sau từ Trợ giúp > Di chuyển cài đặt sẵn filament."
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1% (dựa trên %2%)"
+
+# AI Translated
+msgid "Don't remind me again"
+msgstr "Đừng nhắc tôi nữa"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "Không thể sao lưu cài đặt sẵn của bạn nên chúng chưa được di chuyển."
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "Không thể khóa thư mục cài đặt sẵn người dùng nên chưa có gì được di chuyển. Có thể một phiên bản OrcaSlicer khác đang lưu cài đặt sẵn; hãy thử lại sau từ Trợ giúp > Di chuyển cài đặt sẵn filament."
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Không thể di chuyển cài đặt sẵn filament của bạn. Bản sao lưu cài đặt sẵn của bạn đã được lưu tại:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"Cài đặt sẵn filament của bạn đã được di chuyển. Hãy chọn lại chúng trong danh sách filament nơi bạn đã dùng chúng.\n"
+"\n"
+"Bản sao lưu cài đặt sẵn của bạn đã được lưu tại:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "Không thể di chuyển các cài đặt sẵn này:"
+
# AI Translated
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
@@ -2618,6 +2804,9 @@ msgstr "Đã làm mới plugin."
msgid "Failed to refresh plugins: %s"
msgstr "Không thể làm mới plugin: %s"
+msgid "Unknown error"
+msgstr "Lỗi không xác định"
+
# AI Translated
msgid "Select plugin package"
msgstr "Chọn gói plugin"
@@ -3172,6 +3361,22 @@ msgstr "Tải lại tất cả"
msgid "Reload all from disk"
msgstr "tải lại tất cả từ ổ đĩa"
+# AI Translated
+msgid "Fix All"
+msgstr "Sửa tất cả"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "Sửa tất cả mô hình trên plate hiện tại"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "Sửa tất cả plate"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "Sửa tất cả mô hình trên mọi plate"
+
msgid "Auto Rotate"
msgstr "Tự động xoay"
@@ -3233,8 +3438,13 @@ msgstr "(Mất màu)"
msgid "Center"
msgstr "Căn giữa"
-msgid "Drop"
-msgstr "Thả xuống"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "Căn chỉnh/Phân bố"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "Căn chỉnh và phân bố vật thể"
msgid "Edit Process Settings"
msgstr "Chỉnh sửa cài đặt process"
@@ -3530,6 +3740,12 @@ msgid "Failed to repair the following model object"
msgid_plural "Failed to repair the following model objects"
msgstr[0] "Không thể sửa vật thể model sau"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d vật thể mô hình không cần sửa."
+
msgid "Repairing was canceled"
msgstr "Đã hủy sửa chữa"
@@ -3604,10 +3820,6 @@ msgstr "Không brim"
msgid "Outer wall speed"
msgstr "Tốc độ wall ngoài"
-# AI Translated
-msgid "Plate"
-msgstr "Plate"
-
# AI Translated
msgid "Brim"
msgstr "Brim"
@@ -3693,10 +3905,6 @@ msgstr "Thêm mẫu tùy chỉnh"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "Chèn mẫu G-code tùy chỉnh ở đầu lớp này."
-# AI Translated
-msgid "Filament "
-msgstr "Filament "
-
msgid "Change filament at the beginning of this layer."
msgstr "Đổi filament ở đầu lớp này."
@@ -3788,8 +3996,10 @@ msgstr "Vẫn thay đổi"
msgid "Off"
msgstr "Tắt"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
-msgstr "Lọc"
+msgstr "Bộ lọc"
# AI Translated
msgid "Enabling filtration redirects the right fan to filter gas, which may reduce cooling performance."
@@ -3921,12 +4131,19 @@ msgid "Check filament location"
msgstr "Kiểm tra vị trí filament"
# AI Translated
-msgid "Switch"
-msgstr "Chuyển"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "Tạm dừng"
# AI Translated
-msgid "hotend"
-msgstr "hotend"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "Chuyển extruder"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "Chuyển hotend"
# AI Translated
msgid "Wait for AMS cooling"
@@ -4122,8 +4339,10 @@ msgid "Arranging"
msgstr "Đang sắp xếp"
# AI Translated
-msgid "Arranging "
-msgstr "Đang sắp xếp "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "Đang sắp xếp %1%"
msgid "Arranging canceled."
msgstr "Hủy sắp xếp."
@@ -4163,8 +4382,11 @@ msgstr ""
msgid "Orienting..."
msgstr "Đang xoay..."
-msgid "Orienting"
-msgstr "Đang xoay"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "Đang xoay %1%"
msgid "Orienting canceled."
msgstr "Hủy xoay."
@@ -4172,6 +4394,12 @@ msgstr "Hủy xoay."
msgid "Filling"
msgstr "Đang lấp đầy"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "Đang lấp đầy %1%"
+
# AI Translated
msgid "Bed filling canceled."
msgstr "Hủy lấp đầy bàn in."
@@ -4189,6 +4417,34 @@ msgstr "Hủy tìm định hướng."
msgid "Orientation found."
msgstr "Đã tìm thấy định hướng."
+# AI Translated
+msgid "Best surface quality"
+msgstr "Chất lượng bề mặt tốt nhất"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "Tối ưu hướng xoay của vật thể để có chất lượng bề mặt tốt nhất."
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "Giảm độ dốc phần nhô"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"Tối ưu hướng xoay của vật thể để có ít phần nhô cần cấu trúc support nhất.\n"
+"Lưu ý rằng nếu không đặt độ nâng, phương pháp này sẽ cố tìm mặt tốt nhất của vật thể để đặt chạm bàn in."
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "Chiều cao Z thấp nhất"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "Xoay mô hình để có chiều cao Z thấp nhất, giúp thời gian in nhanh hơn."
+
msgid "Logging in"
msgstr "Đang đăng nhập"
@@ -4506,6 +4762,16 @@ msgstr "Dự án gần đây"
msgid "Go to Plate"
msgstr "Đi tới plate"
+msgid "Device"
+msgstr "Thiết bị"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "Thiết bị (Web)"
+
+msgid "Multi-device"
+msgstr "Nhiều thiết bị"
+
msgid "AMS Materials Setting"
msgstr "Cài đặt vật liệu AMS"
@@ -4532,10 +4798,6 @@ msgstr "Giá trị nhập vào phải lớn hơn %1% và nhỏ hơn %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "Các hệ số của hiệu chỉnh flow động"
-# AI Translated
-msgid "Wiki Guide"
-msgstr "Hướng dẫn Wiki"
-
# AI Translated
msgid "PA Profile"
msgstr "Hồ sơ PA"
@@ -4566,6 +4828,14 @@ msgstr "Vui lòng nhập giá trị hợp lệ (K trong %.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "Vui lòng nhập giá trị hợp lệ (K trong %.1f~%.1f, N trong %.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "Filament yêu thích"
+
+# AI Translated
+msgid "All filaments"
+msgstr "Tất cả filament"
+
# AI Translated
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
@@ -4631,7 +4901,7 @@ msgstr "Lưu"
msgctxt "Navigation"
msgid "Back"
-msgstr "Sau"
+msgstr "Quay lại"
msgid "Example"
msgstr "Ví dụ"
@@ -4911,11 +5181,11 @@ msgstr "Plug-in mạng đã được cài đặt nhưng không thể tải. Vui
msgid "Restart Required"
msgstr "Cần khởi động lại"
-msgid "Please home all axes (click "
-msgstr "Vui lòng về gốc tất cả các trục (nhấn "
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ") để xác định vị trí của đầu công cụ. Điều này ngăn thiết bị di chuyển vượt quá ranh giới có thể in và gây hao mòn thiết bị."
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "Vui lòng đưa tất cả các trục về gốc (nhấn %1%) để xác định vị trí của đầu công cụ. Điều này ngăn thiết bị di chuyển vượt quá ranh giới có thể in và gây hao mòn thiết bị."
msgid "Go Home"
msgstr "Về gốc"
@@ -4930,6 +5200,10 @@ msgstr "Xảy ra lỗi nghiêm trọng: \"%1%\""
msgid "Please save your project and restart the application."
msgstr "Vui lòng lưu dự án và khởi động lại chương trình."
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "Ngoại lệ C++ không xác định."
+
msgid "Processing G-Code from previous file…"
msgstr "Đang xử lý G-code từ file trước..."
@@ -5159,6 +5433,14 @@ msgstr "Tự động điều chỉnh về giới hạn (%g mm)?"
msgid "Adjust"
msgstr "Điều chỉnh"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"Bè và tấm chắn gió không khả dụng trên máy in băng chuyền.\n"
+"Chúng đã bị tắt."
+
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
@@ -6073,10 +6355,6 @@ msgstr "Tự động slice lại theo cách nhóm filament tối ưu; kết qu
msgid "Filament Grouping"
msgstr "Nhóm filament"
-# AI Translated
-msgid "Why this grouping"
-msgstr "Vì sao lại nhóm như vậy"
-
# AI Translated
msgid "Please place filaments on the printer based on grouping result."
msgstr "Vui lòng đặt filament lên máy in theo kết quả nhóm."
@@ -6090,33 +6368,39 @@ msgstr "Cách nhóm hiện tại của kết quả slice chưa tối ưu."
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "Tăng %1%g filament và %2% lần đổi so với cách nhóm tối ưu."
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "Tăng %1%g filament và %2% lần đổi so với cách nhóm tối ưu."
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "Tăng %1%g filament và giảm %2% lần đổi so với cách nhóm tối ưu."
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "Tăng %1%g filament và giảm %2% lần đổi so với cách nhóm tối ưu."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "Tiết kiệm %1%g filament và tăng %2% lần đổi so với cách nhóm tối ưu."
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "Tiết kiệm %1%g filament và tăng %2% lần đổi so với cách nhóm tối ưu."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "Tiết kiệm %1%g filament và %2% lần đổi so với máy in một đầu phun."
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "Tiết kiệm %1%g filament và %2% lần đổi so với máy in một đầu phun."
# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "Tiết kiệm %1%g filament và tăng %2% lần đổi so với máy in một đầu phun."
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "Tiết kiệm %1%g filament và tăng %2% lần đổi so với máy in một đầu phun."
# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "Tăng %1%g filament và giảm %2% lần đổi so với máy in một đầu phun."
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "Tăng %1%g filament và giảm %2% lần đổi so với máy in một đầu phun."
# AI Translated
msgid "Set to Optimal"
@@ -6280,12 +6564,61 @@ msgstr "Tăng/giảm vùng chỉnh sửa"
msgid "Sequence"
msgstr "Trình tự"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "Trọng tâm của plate"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "Trọng tâm của phần"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "Trọng tâm của support"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "Trọng tâm của cụm lắp ráp"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "Trọng tâm của vật thể"
+
+# AI Translated
+msgid "Finished print"
+msgstr "Bản in hoàn chỉnh"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "Đã in đến lớp %1%"
+
+# AI Translated
+msgid "Weight"
+msgstr "Trọng lượng"
+
+msgid "Volume"
+msgstr "Thể tích"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "Tâm trong hộp giới hạn"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "Kích thước hộp giới hạn"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "Mô-men quán tính"
+
# AI Translated
msgid "Object selection"
msgstr "Chọn vật thể"
-msgid "number keys"
-msgstr "phím số"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "Phím số 1~16"
msgid "Number keys can quickly change the color of objects"
msgstr "phím số có thể nhanh chóng đổi màu của vật thể"
@@ -6510,10 +6843,21 @@ msgstr "Trục tọa độ"
msgid "Gridlines"
msgstr "Đường lưới"
+msgid "Focus mode"
+msgstr ""
+
# AI Translated
msgid "Labels"
msgstr "Nhãn"
+# AI Translated
+msgid "Center of mass"
+msgstr "Trọng tâm"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "Hiển thị G-code thô (chỉ băng chuyền)"
+
# AI Translated
msgid "Move section plane"
msgstr "Di chuyển mặt phẳng cắt"
@@ -6562,7 +6906,7 @@ msgstr "Thể tích:"
msgid "Size:"
msgstr "Kích thước:"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "Đã tìm thấy xung đột đường đi G-code tại lớp %d, Z = %.2lfmm. Vui lòng tách các vật thể xung đột ra xa hơn (%s <-> %s)."
@@ -6587,22 +6931,14 @@ msgstr "Công cụ %d"
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Filament %s được đặt trong %s, nhưng đường đi G-code được tạo ra vượt quá phạm vi in được của %s."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "Các filament %s được đặt trong %s, nhưng đường đi G-code được tạo ra vượt quá phạm vi in được của %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "Filament %s được đặt trong %s, nhưng đường đi G-code được tạo ra vượt quá phạm vi in được của %s."
# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Filament %s được đặt trong %s, nhưng đường đi G-code được tạo ra vượt quá chiều cao in được của %s."
-
-# AI Translated
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "Các filament %s được đặt trong %s, nhưng đường đi G-code được tạo ra vượt quá chiều cao in được của %s."
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "Filament %s được đặt trong %s, nhưng đường đi G-code được tạo ra vượt quá chiều cao in được của %s."
# AI Translated
msgid "Open wiki for more information."
@@ -6613,8 +6949,9 @@ msgstr "Chỉ vật thể đang được chỉnh sửa là hiển thị."
# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "Các filament %s không thể in trực tiếp lên bề mặt của plate này."
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "Filament %s không thể in trực tiếp lên bề mặt của plate này."
# AI Translated
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
@@ -6748,27 +7085,20 @@ msgstr "Chuẩn bị"
msgid "Preview"
msgstr "Xem trước"
-msgid "Device"
-msgstr "Thiết bị"
-
-msgid "Multi-device"
-msgstr "Nhiều thiết bị"
-
msgid "Project"
msgstr "Dự án"
-# AI Translated
-msgid "Device (Web)"
-msgstr "Thiết bị (Web)"
-
msgid "Yes"
msgstr "Có"
msgid "No"
msgstr "Không"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "sẽ bị đóng trước khi tạo model mới. Bạn có muốn tiếp tục?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s sẽ bị đóng trước khi tạo mô hình mới. Bạn có muốn tiếp tục?"
msgid "Print all"
msgstr "In tất cả"
@@ -6814,6 +7144,10 @@ msgstr "Trình hướng dẫn thiết lập"
msgid "Show Configuration Folder"
msgstr "Hiện thư mục cấu hình"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "Khôi phục các cài đặt sẵn filament đã bị bản cập nhật hồ sơ gỡ khỏi các máy in mà chúng được tạo ra"
+
# AI Translated
msgid "Troubleshoot Center"
msgstr "Trung tâm khắc phục sự cố"
@@ -7057,6 +7391,14 @@ msgstr "Hiện đường lưới"
msgid "Show Gridlines on plate"
msgstr "Hiện đường lưới trên plate"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "Hiển thị đầu công cụ IDEX/IQEX"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "Hiển thị hình đầu công cụ IDEX/IQEX quanh mỗi đầu phun đang hoạt động trong bản xem trước G-code."
+
msgid "Reset Window Layout"
msgstr "Đặt lại bố cục cửa sổ"
@@ -7722,6 +8064,7 @@ msgid "Calculating..."
msgstr "Đang tính..."
# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "Camera"
@@ -7811,9 +8154,11 @@ msgstr "Đang tải xuống..."
msgid "Cloud Slicing..."
msgstr "Đang slice trên Cloud..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "Trong hàng đợi Slice trên Cloud, có %s tác vụ phía trước."
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "Trong hàng đợi Slice trên Cloud, có %d tác vụ phía trước."
#, c-format, boost-format
msgid "Layer: %s"
@@ -7846,6 +8191,11 @@ msgstr "Chỉ có hiệu lực trong khi in"
msgid "Silent"
msgstr "Im lặng"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "Tiêu chuẩn"
+
msgid "Sport"
msgstr "Thể thao"
@@ -7906,17 +8256,29 @@ msgstr "Tải ảnh lên"
msgid "Number of images successfully uploaded"
msgstr "Số lượng ảnh được tải lên thành công"
-msgid " upload failed"
-msgstr " tải lên thất bại"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "Tải lên %s thất bại"
-msgid " upload config prase failed\n"
-msgstr " phân tích cấu hình tải lên thất bại\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "Phân tích cấu hình tải lên %s thất bại"
-msgid " No corresponding storage bucket\n"
-msgstr " Không có bucket lưu trữ tương ứng\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s: Không có bucket lưu trữ tương ứng"
-msgid " cannot be opened\n"
-msgstr " không thể mở\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "Không thể mở %s"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7934,26 +8296,22 @@ msgstr "Tải lên thất bại\n"
msgid "Obtaining instance_id failed\n"
msgstr "lấy instance_id thất bại\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"Kết quả bình luận của bạn không thể tải lên do các lý do sau:\n"
-"\n"
-" mã lỗi: "
-
-msgid "error message: "
-msgstr "thông báo lỗi: "
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"Không thể tải lên kết quả bình luận của bạn do các lý do sau:\n"
"\n"
+" mã lỗi: %d\n"
+" thông báo lỗi: %s\n"
"\n"
-"Bạn có muốn chuyển hướng đến trang web để đánh giá?"
+"Bạn có muốn chuyển đến trang web để đánh giá không?"
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
msgstr "Một số ảnh của bạn không thể tải lên. Bạn có muốn chuyển hướng đến trang web để đánh giá?"
@@ -8820,6 +9178,109 @@ msgstr "Xem tất cả cài đặt của đối tượng"
msgid "Material settings"
msgstr "Cài đặt vật liệu"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "Mỗi chế độ chỉ định các đầu công cụ tham gia và vai trò của từng đầu. Nhấn vào nút công cụ để chuyển vòng vai trò của nó — di chuột lên một màu bên dưới để xem chức năng của từng vai trò."
+
+# AI Translated
+msgid "Add Mode"
+msgstr "Thêm chế độ"
+
+# AI Translated
+msgid "Tools"
+msgstr "Công cụ"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "Tên hiển thị của chế độ trong bộ chọn chế độ IDEX/IQEX của plate. Bắt buộc — không thể chọn một chế độ không có tên."
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "Các đầu công cụ tham gia chế độ và vai trò của từng đầu. Nhấn vào một ô để chuyển vòng vai trò của nó."
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "G-code chạy khi bắt đầu in để đưa máy in vào chế độ này (ví dụ một lệnh gọi SET_PRINT_MODE của Klipper). Phần mềm slice chỉ xuất đường chạy của công cụ Chính (Primary); firmware điều khiển các công cụ còn lại."
+
+# AI Translated
+# Needs human review: Short IDEX/IQEX role tile label for a toolhead taking no part in the mode; check the width and that it reads as inactive (the generic Inactive entry uses 'Chưa kích hoạt').
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "Không dùng"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "Chính"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "Sao chép"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "Gương"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "Điều khiển mọi đường chạy đã slice. Luôn là công cụ 0 — dùng Vị trí công cụ 0 ở trên để chọn góc bàn in mà nó chiếm. Không thể di chuyển nó khỏi lưới."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "Đi theo công cụ Chính (Primary) ở cấp firmware, in cùng các đường chạy nhưng dịch sang vùng riêng của nó."
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "Đi theo công cụ Chính (Primary) ở cấp firmware, in cùng các đường chạy nhưng đối xứng qua ranh giới giữa hai vùng."
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "Đánh dấu một công cụ trên giàn trục của công cụ Chính (Primary) làm cộng sự in nhiều màu của nó. Bắt buộc để cho phép in nhiều màu trong các chế độ giàn trục ghép cặp."
+
+# AI Translated
+msgid "Primary"
+msgstr "Chính"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "Tên chế độ (bắt buộc)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "Tên của chế độ song song này, như hiển thị trong bộ chọn chế độ IDEX/IQEX của plate. Được lưu trong dự án theo tên, nên đổi tên một chế độ mà các plate đang dùng sẽ khiến chúng quay về chế độ Chính. Không được để trống — tên trống sẽ được thay bằng một tên tự tạo."
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "G-code được xuất một lần khi bắt đầu bản in dùng chế độ này, trước G-code bắt đầu máy. Đây là nơi đưa máy in vào chế độ firmware tương ứng — ví dụ một lệnh gọi SET_PRINT_MODE của Klipper hoặc M567 của RepRapFirmware — vì phần mềm slice chỉ xuất đường chạy của công cụ Chính (Primary) và firmware điều khiển các công cụ Sao chép (Copy) / Gương (Mirror). Hỗ trợ trình giữ chỗ; dùng nút chỉnh sửa để duyệt chúng. Để trống nếu chế độ không cần thiết lập firmware."
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "Chỉnh sửa G-code / duyệt trình giữ chỗ"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "Xóa chế độ"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "Hủy các chỉnh sửa trong phiên cho chế độ này (trở về giá trị đã lưu)"
+
msgid "Remove current plate (if not last one)"
msgstr "Xóa bản hiện tại (nếu không phải bản cuối)"
@@ -8845,13 +9306,33 @@ msgstr "Chỉnh sửa tên bản hiện tại"
msgid "Move plate to the front"
msgstr "Di chuyển bản ra phía trước"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "Chế độ IDEX/IQEX: %1% (cài đặt sẵn quy trình: %2%) (nhấn chuột trái để chuyển vòng, nhấn chuột phải để mở menu)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "Chế độ IDEX/IQEX: %1% (nhấn chuột trái để chuyển vòng, nhấn chuột phải để mở menu)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "Cảnh báo: plate này dùng chế độ IDEX/IQEX song song với các vật thể đa vật liệu. Hãy thận trọng — kiểm tra rằng G-code của bạn xử lý đúng tổ hợp này."
+
msgid "Customize current plate"
msgstr "Tùy chỉnh bản hiện tại"
# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "Đầu phun %s không thể in %s."
+msgid "The left nozzle cannot print %s."
+msgstr "Đầu phun trái không thể in %s."
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "Đầu phun phải không thể in %s."
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8863,13 +9344,16 @@ msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "Không nên dùng lẫn %1% với %2% khi in.\n"
# AI Translated
-msgid " nozzle"
-msgstr " đầu phun"
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
+#, boost-format
+msgid "%1%mm %2% nozzle"
+msgstr "Đầu phun %1%mm %2%"
# AI Translated
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "Không nên in (các) filament sau bằng %1%: %2%\n"
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "Không nên in filament sau bằng %1%: %2%\n"
# AI Translated
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
@@ -8880,9 +9364,11 @@ msgstr "Không nên dùng các tổ hợp đầu phun và filament sau:\n"
msgid "%1% with %2%\n"
msgstr "%1% với %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr " bản %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "Đang slice plate %1%: %2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "Tên không hợp lệ, các ký tự sau không được phép:"
@@ -8921,14 +9407,6 @@ msgstr "AMS(1 khe)"
msgid "Not installed"
msgstr "Chưa lắp"
-# AI Translated
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "Phần mềm không hỗ trợ dùng các đầu phun có đường kính khác nhau trong một lần in. Nếu đầu phun trái và phải không giống nhau, chúng tôi chỉ có thể tiến hành in bằng một đầu. Vui lòng xác nhận bạn muốn dùng đầu phun nào cho dự án này."
-
-# AI Translated
-msgid "Switch diameter"
-msgstr "Chuyển đường kính"
-
msgid "Configuration incompatible"
msgstr "Cấu hình không tương thích"
@@ -9016,6 +9494,10 @@ msgstr "Filament pha trộn"
msgid "Remove last mixed filament"
msgstr "Xóa filament pha trộn cuối cùng"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "Xóa tất cả filament pha trộn"
+
# AI Translated
msgid "Add mixed filament"
msgstr "Thêm filament pha trộn"
@@ -9038,6 +9520,12 @@ msgstr "Filament pha trộn có tham chiếu thành phần bị lỗi"
msgid "Edit / Delete / Merge"
msgstr "Chỉnh sửa / Xóa / Gộp"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "Xóa %1% filament pha trộn?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "Filament pha trộn đích sử dụng filament vật lý này làm thành phần. Việc gộp sẽ xóa filament vật lý này và có thể làm filament pha trộn không còn hợp lệ. Tiếp tục?"
@@ -9117,10 +9605,6 @@ msgstr "Đang tải file: %s"
msgid "Load 3MF"
msgstr "Tải 3MF"
-# AI Translated
-msgid "BambuStudio Project"
-msgstr "Dự án BambuStudio"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "File 3MF không được hỗ trợ bởi OrcaSlicer, chỉ tải dữ liệu hình học."
@@ -9153,20 +9637,6 @@ msgstr "Bạn nên nâng cấp phần mềm của mình.\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "Phiên bản 3MF %s mới hơn phiên bản %s của %s, khuyến nghị nâng cấp phần mềm của bạn."
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "File 3MF được tạo bởi BambuStudio (phiên bản %s), mới hơn phiên bản tương thích %s. Đã tìm thấy các cài đặt không nhận dạng được:"
-
-# AI Translated
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "File 3MF được tạo bởi BambuStudio (phiên bản %s), mới hơn phiên bản tương thích %s. Một số cài đặt có thể không hoàn toàn tương thích."
-
-# AI Translated
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "File 3MF được tạo bởi BambuStudio. Một số cài đặt có thể khác với OrcaSlicer."
-
msgid "Invalid values found in the 3MF:"
msgstr "Tìm thấy giá trị không hợp lệ trong file 3MF:"
@@ -9340,6 +9810,14 @@ msgstr "Tắt Tự động thả để giữ nguyên vị trí Z?\n"
msgid "Object with floating parts was detected"
msgstr "Đã phát hiện vật thể có phần lơ lửng"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Không thể slice: một vật thể chồng lên khu vực dành riêng cho in song song IDEX/IQEX (một vùng phụ, hoặc một dải khoảng hở của xe trượt bên trong vùng chính)."
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "Không thể slice: prime tower chồng lên khu vực dành riêng cho in song song IDEX/IQEX (một vùng phụ, hoặc một dải khoảng hở của xe trượt bên trong vùng chính)."
+
msgid "Another export job is running."
msgstr "Một tác vụ xuất khác đang chạy."
@@ -9401,8 +9879,9 @@ msgstr "Các khối đã thay thế"
msgid "Please select a file"
msgstr "Vui lòng chọn một file"
-msgid "Do you want to replace it"
-msgstr "Bạn có muốn thay thế nó"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "Bạn có muốn thay thế nó không?"
msgid "Message"
msgstr "Tin nhắn"
@@ -9432,6 +9911,50 @@ msgstr "Dữ liệu không hợp lệ"
msgid "Slicing Canceled"
msgstr "Đã hủy slice"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "Xung đột nhiệt độ bàn in: T%d (%s) đặt bàn in ở %d℃ — T%d (%s) yêu cầu %d℃. Công cụ chính điều khiển bàn in; các công cụ phụ in ở nhiệt độ mà nó đặt, dù là bao nhiêu."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "Loại filament không khớp: T%d dùng %s và T%d dùng %s. Các vật liệu này có yêu cầu không tương thích và không được thiết kế để in cùng nhau."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"Plate %d đang bật chế độ song song IDEX/IQEX với các vấn đề sau:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "Tiếp tục slice?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "Cảnh báo chế độ song song IDEX/IQEX"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "Không hiển thị lại các cảnh báo này"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "Plate %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"Đã phát hiện các vấn đề sau của chế độ song song IDEX/IQEX:\n"
+"\n"
+
# AI Translated
msgid "Network plug-in switched successfully."
msgstr "Đã chuyển plug-in mạng thành công."
@@ -9469,8 +9992,8 @@ msgid "Sync now"
msgstr "Đồng bộ ngay"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "Không thể hoàn tác hoặc làm lại khi một thao tác đang chạy. Hãy dừng nó trước."
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "Không thể hoàn tác hoặc làm lại khi đang có thao tác chạy. Hãy dừng thao tác, hoặc đợi nó hoàn tất rồi thử lại."
# AI Translated
msgid ""
@@ -9541,6 +10064,14 @@ msgstr "Tải xuống thất bại, kích thước file bất thường."
msgid "Project downloaded %d%%"
msgstr "Dự án đã tải xuống %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"Các bài kiểm tra Đường PA và Mẫu PA chưa được bật trên máy in băng chuyền.\n"
+"Vui lòng dùng phương pháp Tháp PA thay thế."
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Kiểm tra Pressure Advance"
@@ -9548,11 +10079,15 @@ msgstr "Kiểm tra Pressure Advance"
msgid "INFO:"
msgstr "THÔNG TIN:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "Không có gia tốc được cung cấp để hiệu chỉnh. Sử dụng giá trị gia tốc mặc định "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "Không có gia tốc được cung cấp để hiệu chỉnh. Sử dụng giá trị gia tốc mặc định %1%mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "Không có tốc độ được cung cấp để hiệu chỉnh. Sử dụng tốc độ tối ưu mặc định "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "Không có tốc độ được cung cấp để hiệu chỉnh. Sử dụng tốc độ tối ưu mặc định %1%mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -9567,6 +10102,15 @@ msgstr "Hiệu chỉnh lưu lượng Orca YOLO"
msgid "Flowrate Test - Pass%d"
msgstr "Kiểm tra lưu lượng - Lượt %d"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "Không có tháp nhiệt độ băng chuyền nào cho khoảng %1% đến %2%℃. Hãy dùng khoảng mà các mô hình tháp hỗ trợ, ví dụ 230 đến 190."
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "Tháp nhiệt độ"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "Kiểm tra nhiệt độ đầu phun"
@@ -9591,11 +10135,16 @@ msgstr "Kiểm tra vào cua"
msgid "Import SLA archive"
msgstr "Nhập lưu trữ SLA"
-msgid "The selected file"
-msgstr "File đã chọn"
-
-msgid "Does not contain valid G-code."
-msgstr "không chứa G-code hợp lệ."
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"File đã chọn:\n"
+"%1%\n"
+"không chứa G-code hợp lệ."
msgid "An Error has occurred while loading the G-code file."
msgstr "Lỗi xảy ra khi tải file G-code"
@@ -9881,6 +10430,27 @@ msgstr "Hiện tại, biểu mẫu cấu hình vật thể không dùng được
msgid "Not available"
msgstr "Không khả dụng"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (không có plate)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1% — chưa dẫn filament nào\n"
+"Hãy thêm một extruder trong tab Máy để đầu này có khe filament."
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> filament %2%"
+
# AI Translated
msgid "isometric"
msgstr "isometric"
@@ -9926,6 +10496,8 @@ msgstr "Châu Âu"
msgid "North America"
msgstr "Bắc Mỹ"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "Khác"
@@ -10011,11 +10583,17 @@ msgstr "Tải lại plug-in mạng thất bại. Vui lòng khởi động lại
msgid "Reload Failed"
msgstr "Tải lại thất bại"
-msgid "Associate"
-msgstr "Liên kết"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "Liên kết %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "với OrcaSlicer để Orca có thể mở model từ"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "Liên kết %s:// với OrcaSlicer để Orca có thể mở mô hình từ %s"
msgid "Current Association: "
msgstr "Liên kết hiện tại: "
@@ -10348,6 +10926,10 @@ msgstr "Ghi nhớ thao tác in gần nhất"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "Nếu bật, OrcaSlicer sẽ ghi nhớ tùy chọn được chọn gần nhất trong danh sách thả xuống của nút in (ví dụ: In, Xuất file plate đã slice, Xuất file G-code) và dùng nó làm mặc định ở lần khởi động tiếp theo."
+# AI Translated
+msgid "Camera"
+msgstr "Camera"
+
msgid "Touchpad"
msgstr "Bàn di chuột cảm ứng"
@@ -10820,6 +11402,9 @@ msgstr "Phiên bản plug-in mạng"
msgid "Select the network plug-in version to use"
msgstr "Chọn phiên bản plug-in mạng sẽ dùng"
+msgid "Associate"
+msgstr "Liên kết"
+
msgid "Associate files to OrcaSlicer"
msgstr "Liên kết file với OrcaSlicer"
@@ -10875,6 +11460,12 @@ msgstr "Hiện cài đặt sẵn không được hỗ trợ"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "Hiện các cài đặt sẵn không tương thích/không được hỗ trợ trong danh sách thả xuống máy in và filament. Không thể chọn các cài đặt sẵn này."
+msgid "Export statistics with G-code"
+msgstr ""
+
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
# AI Translated
msgid "Experimental Features"
msgstr "Tính năng thử nghiệm"
@@ -11172,10 +11763,6 @@ msgstr "Xuất bản 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "Chọn những cài đặt sẽ được xuất bản trong tệp 3MF"
-# AI Translated
-msgid "Video Guide"
-msgstr "Video hướng dẫn"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
msgstr "Filament pha trộn - được xuất bản trọn bộ khi chọn \"Bật\" ở trên"
@@ -11341,6 +11928,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "Đơn giản"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s từ %s"
+
# AI Translated
msgid "Search actions"
msgstr "Tìm kiếm thao tác"
@@ -11459,6 +12052,10 @@ msgstr "Hiện chi tiết"
msgid "Hide details"
msgstr "Ẩn chi tiết"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "Web view không khả dụng."
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -11760,8 +12357,9 @@ msgstr "Độ dài tên vượt quá giới hạn."
# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "Tốn thêm %dg filament và %d lần đổi so với cách nhóm tối ưu."
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "Tốn thêm %dg filament và %d lần đổi so với cách nhóm tối ưu."
# AI Translated
msgid "Right-Ext"
@@ -11858,6 +12456,10 @@ msgstr "Một số filament có thể chuyển qua lại giữa các extruder tr
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
msgstr "Trong file này có filament dễ tạo sợi tơ. Để có chất lượng in tốt nhất, chúng tôi khuyên bạn chuyển phát hiện vón cục đầu phun sang chế độ Tự động."
+# AI Translated
+msgid "Switch"
+msgstr "Chuyển"
+
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
msgstr "Nếu 'Hiệu chỉnh flow động' được đặt là Tự động/Bật, hệ thống sẽ dùng giá trị hiệu chỉnh thủ công hoặc giá trị mặc định và bỏ qua quá trình hiệu chỉnh lưu lượng. Bạn có thể tự hiệu chỉnh lưu lượng cho filament TPU trên trang 'Hiệu chỉnh'."
@@ -12198,6 +12800,10 @@ msgstr "Không hỗ trợ đồng bộ giữa các loại truyền động extru
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "Đồng bộ thay đổi tham số sang tham số tương ứng của extruder còn lại."
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "Các thông số có biểu tượng này có thể được cấu hình riêng cho từng đầu phun."
+
msgid "Click to reset all settings to the last saved preset."
msgstr "Nhấp để đặt lại tất cả cài đặt về preset đã lưu cuối cùng."
@@ -12434,6 +13040,9 @@ msgstr "Filament cho tính năng"
msgid "Ooze prevention"
msgstr "Ngăn chảy nhựa"
+msgid "Others"
+msgstr "Khác"
+
msgid "Special mode"
msgstr "Chế độ đặc biệt"
@@ -12471,8 +13080,11 @@ msgstr[0] ""
"Dòng sau %s chứa từ khóa dành riêng.\n"
"Vui lòng xóa chúng, nếu không sẽ ảnh hưởng đến hình ảnh hóa G-code và ước tính thời gian in."
-msgid "Reserved keywords found"
-msgstr "Tìm thấy từ khóa dành riêng"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "Tìm thấy từ khóa dành riêng trong %1%"
msgid "Setting Overrides"
msgstr "Ghi đè cài đặt"
@@ -12616,7 +13228,16 @@ msgstr "Không gian in"
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
msgstr "Chọn cách triển khai tác nhân mạng cho việc giao tiếp với máy in. Các tác nhân khả dụng được đăng ký khi khởi động."
+# AI Translated
+msgid "Belt printer"
+msgstr "Máy in băng chuyền"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "Phép biến đổi hệ tọa độ máy"
+
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "Giá trị không hợp lệ được cung cấp cho tham số %1%: %2%"
@@ -12736,9 +13357,29 @@ msgstr "Đường kính đầu phun"
msgid "Wipe tower"
msgstr "Wipe tower"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "Tháp xả băng chuyền"
+
msgid "Single extruder multi-material parameters"
msgstr "Tham số đa vật liệu extruder đơn"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "Cấu hình IDEX/IQEX"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "Cảnh báo trước khi slice"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "Hiển thị hộp thoại cảnh báo trước khi slice nếu phát hiện vấn đề của chế độ song song IDEX/IQEX (xung đột nhiệt độ bàn in, loại filament không khớp, xung đột đa vật liệu). Có thể tắt ngay từ hộp thoại. Bật lại ở đây nếu lỡ tắt."
+
+# AI Translated
+msgid "Modes"
+msgstr "Chế độ"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "Đây là máy in đa vật liệu extruder đơn, đường kính của tất cả extruder sẽ được đặt thành giá trị mới. Bạn có muốn tiếp tục?"
@@ -12748,6 +13389,22 @@ msgstr "Giới hạn chiều cao lớp"
msgid "Z-Hop"
msgstr "Z-Hop"
+# AI Translated
+msgid "Front-left"
+msgstr "Trước-trái"
+
+# AI Translated
+msgid "Front-right"
+msgstr "Trước-phải"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "Sau-trái"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "Sau-phải"
+
# AI Translated
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -12772,21 +13429,34 @@ msgstr "Dùng giá trị đã sửa"
msgid "Detached"
msgstr "Đã tách"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "%1% và %2% được đính kèm với máy in này. Các cài đặt sẵn đó sẽ bị xóa nếu máy in bị xóa."
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "Preset filament %d và preset quy trình %d được đính kèm với máy in này. Các preset đó sẽ bị xóa nếu máy in bị xóa."
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d cài đặt sẵn filament"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d cài đặt sẵn quy trình"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "Preset được kế thừa bởi preset khác không thể bị xóa!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Các preset sau kế thừa preset này."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
+msgstr[0] "Cài đặt sẵn sau kế thừa cài đặt sẵn này."
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "Preset %1%"
+msgid "Delete Preset"
+msgstr "Xóa cài đặt sẵn"
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
@@ -12799,9 +13469,9 @@ msgstr ""
"Bạn có chắc chắn xóa cài đặt sẵn đã chọn không?\n"
"Nếu cài đặt sẵn tương ứng với filament hiện đang được sử dụng trên máy in của bạn, vui lòng đặt lại thông tin filament cho vị trí đó."
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "Bạn có chắc chắn %1% preset đã chọn?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "Bạn có chắc chắn muốn xóa cài đặt sẵn đã chọn không?"
msgid "Select printers"
msgstr "Chọn máy in"
@@ -12862,9 +13532,39 @@ msgid "Don't warn again for this preset"
msgstr "Không cảnh báo lại cho cài đặt sẵn này"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# Needs human review: Short tag for the Standard nozzle flow type; kept as the English initialism, check whether a localized abbreviation is preferred (Standard is 'Tiêu chuẩn').
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "SF"
+
+# AI Translated
+# Needs human review: Short tag for the High Flow nozzle flow type; kept as the English initialism, check whether a localized abbreviation is preferred (High Flow is 'Lưu lượng cao').
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "HF"
+
+# AI Translated
+# Needs human review: Short tag for the TPU High Flow nozzle flow type; kept as the English initialism, check whether a localized abbreviation is preferred.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU HF"
+
+# AI Translated
+# Needs human review: Short tag for the E3D High Flow nozzle flow type; kept as the English initialism, check whether a localized abbreviation is preferred.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D HF"
+
+# AI Translated
+# Needs human review: Short tag for the Extra High Flow nozzle flow type; kept as the English initialism, check whether a localized abbreviation is preferred.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "XHF"
# AI Translated
msgid "No modifications need to be copied."
@@ -13073,6 +13773,12 @@ msgstr "Một trong các cài đặt sẵn không tồn tại"
msgid "Compared presets has different printer technology"
msgstr "Các cài đặt sẵn được so sánh có công nghệ máy in khác nhau"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "\"%1%\" so với \"%2%\""
+
msgid "Add File"
msgstr "Thêm file"
@@ -13098,6 +13804,22 @@ msgstr "Danh sách vật liệu"
msgid "Assembly Guide"
msgstr "Hướng dẫn lắp ráp"
+# AI Translated
+msgid "Image files"
+msgstr "File hình ảnh"
+
+# AI Translated
+msgid "TXT files"
+msgstr "File TXT"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "File EXCEL"
+
+# AI Translated
+msgid "PDF files"
+msgstr "File PDF"
+
msgid "Author"
msgstr "Tác giả"
@@ -13331,9 +14053,6 @@ msgstr "ms"
msgid "Total ramming"
msgstr "Tổng ramming"
-msgid "Volume"
-msgstr "Thể tích"
-
msgid "Ramming line"
msgstr "Đường ramming"
@@ -13362,8 +14081,9 @@ msgid "Flushing volumes for filament change"
msgstr "Khối lượng xả khi thay filament"
# AI Translated
-msgid "Please choose the filament color"
-msgstr "Vui lòng chọn màu filament"
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "từ/đến"
# AI Translated
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
@@ -13386,6 +14106,155 @@ msgstr "Đăng nhập thất bại. Vui lòng thử lại."
msgid "parse json failed"
msgstr "phân tích json thất bại"
+# AI Translated
+msgid "Loading…"
+msgstr "Đang tải…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "Tùy chỉnh"
+
+# AI Translated
+msgid "Welcome to Orca Slicer"
+msgstr "Chào mừng đến với Orca Slicer"
+
+# AI Translated
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer sẽ được thiết lập qua vài bước. Hãy bắt đầu nào!"
+
+# AI Translated
+msgid "Get Started"
+msgstr "Bắt đầu"
+
+# AI Translated
+msgid "Please select your login region"
+msgstr "Vui lòng chọn khu vực đăng nhập của bạn"
+
+msgid "Finish"
+msgstr "Hoàn thành"
+
+# AI Translated
+msgid "Printer Selection"
+msgstr "Chọn máy in"
+
+# AI Translated
+msgid "Vendors"
+msgstr "Nhà cung cấp"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "Máy in tùy chỉnh"
+
+msgid "Create"
+msgstr "Tạo"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "Kiểm tra máy in mới"
+
+# AI Translated
+msgid "At least one printer must be selected."
+msgstr "Phải chọn ít nhất một máy in."
+
+# AI Translated
+msgid "New printers found"
+msgstr "Đã tìm thấy máy in mới"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "Đã cài đặt nhà cung cấp máy in mới: %s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "Đã tìm thấy nhà cung cấp máy in mới, nhưng việc cài đặt đã bị hủy."
+
+# AI Translated
+msgid "No new printers found."
+msgstr "Không tìm thấy máy in mới."
+
+# AI Translated
+msgid "Filament Selection"
+msgstr "Chọn filament"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "Filament hệ thống"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "Filament tùy chỉnh"
+
+# AI Translated
+msgid "Create New"
+msgstr "Tạo mới"
+
+msgid "Filament type"
+msgstr "Loại filament"
+
+msgid "Vendor"
+msgstr "Nhà cung cấp"
+
+# AI Translated
+msgid "No items"
+msgstr "Không có mục nào"
+
+# AI Translated
+msgid "Filter items"
+msgstr "Lọc mục"
+
+# AI Translated
+msgid "Checked"
+msgstr "Đã chọn"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "Chưa chọn"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "Chọn mục đã lọc"
+
+# AI Translated
+msgid "Clear all"
+msgstr "Xóa tất cả"
+
+# AI Translated
+msgid "At least one filament must be selected."
+msgstr "Phải chọn ít nhất một filament."
+
+# AI Translated
+msgid "Do you want to use the default filament?"
+msgstr "Bạn có muốn dùng filament mặc định không?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "Tùy chọn này tắt toàn bộ tính năng cloud, bao gồm cả đồng bộ hồ sơ Orca Cloud. Người dùng muốn làm việc hoàn toàn ngoại tuyến có thể bật tùy chọn này."
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "Lưu ý: Khi Chế độ ẩn danh được bật, hồ sơ người dùng của bạn sẽ không được sao lưu lên Orca Cloud."
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "Bật Chế độ ẩn danh."
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "Plugin độc quyền"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "Một số nhà cung cấp máy in yêu cầu plugin độc quyền để giao tiếp với máy in của họ. Vui lòng chọn plugin tương ứng nếu bạn dùng những máy in như vậy."
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "Xin lưu ý rằng các plugin này không do OrcaSlicer phát triển hay duy trì. Bạn tự cân nhắc và tự chịu rủi ro khi sử dụng chúng."
+
+# AI Translated
+msgid "Install Bambu Network plug-in"
+msgstr "Cài đặt plug-in mạng Bambu"
+
# AI Translated
msgid "[Action Required] "
msgstr "[Cần thao tác] "
@@ -13458,9 +14327,6 @@ msgstr "Khả dụng khi chế độ xem 3D trên tab Chuẩn bị đang có ti
msgid "Select a part"
msgstr "Chọn một phần"
-msgid "Select multiple objects"
-msgstr "Chọn nhiều đối tượng"
-
msgid "Select objects by rectangle"
msgstr "Chọn đối tượng bằng hình chữ nhật"
@@ -13807,27 +14673,19 @@ msgstr "Phiên bản firmware bất thường. Cần sửa chữa và cập nh
msgid "Extension Board"
msgstr "Bo mạch mở rộng"
-# AI Translated
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "Tách thành %1% phần"
-
msgid "Repair finished"
msgstr "Sửa chữa hoàn tất"
-msgid "Repair failed"
-msgstr "Sửa chữa thất bại."
-
-msgid "Repair canceled"
-msgstr "Sửa chữa đã hủy"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "Sao chép file %1% sang %2% thất bại: %3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "Đang tải xuống hồ sơ nhà cung cấp mới: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "Đang tải xuống hồ sơ nhà cung cấp mới: %1%..."
# AI Translated
#, boost-format
@@ -13835,8 +14693,11 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "Gói cấu hình: %1% đã cập nhật lên %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "Tải xuống hồ sơ nhà cung cấp thất bại: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "Tải xuống hồ sơ nhà cung cấp thất bại: %1%"
msgid "Please check any unsaved changes before updating the configuration."
msgstr "Cần kiểm tra các thay đổi chưa lưu trước khi cập nhật cấu hình."
@@ -13844,6 +14705,10 @@ msgstr "Cần kiểm tra các thay đổi chưa lưu trước khi cập nhật c
msgid "Open G-code file:"
msgstr "Mở file G-code:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "Tạo wipe tower thất bại, có thể do lớp đầu tiên trống."
+
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
msgstr "Một đối tượng có lớp đầu tiên trống và không thể in. Vui lòng cắt phần dưới hoặc bật support."
@@ -13866,9 +14731,61 @@ msgstr "G-code đổi vai trò đùn (process)"
msgid "Filament change extrusion role G-code"
msgstr "G-code đổi vai trò đùn (filament)"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"Xuất G-code ra %1% thất bại.\n"
+"Không thể mở file để ghi."
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "Thư mục %1% không tồn tại."
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"Xuất G-code ra %1% thất bại.\n"
+"Ổ đĩa có bị đầy không?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"Không thể đổi tên file G-code đầu ra từ %1% thành %2%.\n"
+"Lỗi: %3%\n"
+"%1% có đang bị khóa không?"
+
msgid "No object can be printed. It may be too small."
msgstr "Không có đối tượng nào có thể in. Có thể quá nhỏ"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "Chế độ IDEX/IQEX \"%1%\" không có công cụ nào được gán trên máy in đã chọn. Thay vào đó sẽ in ở chế độ Chính. Hãy gán công cụ cho chế độ trong Cài đặt máy in, hoặc chọn chế độ khác từ nút IDEX/IQEX của plate."
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "Plate này được đặt ở chế độ IDEX/IQEX \"%1%\", nhưng máy in đã chọn không định nghĩa chế độ này. Thay vào đó sẽ in ở chế độ Chính. Hãy chọn một chế độ từ nút IDEX/IQEX của plate, hoặc khôi phục chế độ trong Cài đặt máy in."
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "Giá trị hình thu nhỏ không hợp lệ:"
+
msgid "Your print is very close to the priming regions. Make sure there is no collision."
msgstr "Bản in của bạn rất gần vùng priming. Hãy chắc chắn rằng không có va chạm."
@@ -13916,6 +14833,10 @@ msgstr "Lỗi nhóm: %1% không thể đặt vào đầu phun trái"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "Lỗi nhóm: %1% không thể đặt vào đầu phun phải"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "Không tìm thấy đầu phun hợp lệ. Vui lòng kiểm tra số lượng đầu phun."
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "Lỗi nhóm ở chế độ thủ công. Vui lòng kiểm tra số lượng đầu phun hoặc nhóm lại."
@@ -13935,6 +14856,18 @@ msgstr "nhiều giao điểm với một chu vi, chỉ một giao điểm đư
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "một chu vi nằm hoàn toàn bên trong modifier, modifier không được áp dụng cho nó (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "Modifier %1% \"%2%\" của \"%3%\" bao phủ toàn bộ một chu vi"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "Modifier %1% \"%2%\" của \"%3%\" (tổng cộng %4%) bao phủ toàn bộ một chu vi"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -13949,9 +14882,47 @@ msgstr "modifier \"%1%\" của \"%2%\" (tổng cộng %3%) không có tác dụn
msgid "Seam placement may differ from expected."
msgstr "Vị trí đường nối có thể khác với dự kiến."
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr ""
+
msgid "Internal Bridge"
msgstr "Cầu bên trong"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() tạo ra khoảng cách âm. Bạn có đặt độ rộng đùn nào đó quá nhỏ không?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() tạo ra lưu lượng âm. Bạn có đặt độ rộng đùn nào đó quá nhỏ không?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "Không thể tính độ rộng đường của %1%. Không thể lấy giá trị của \"%2%\"."
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "Khoảng cách không hợp lệ được cung cấp cho Flow::with_spacing(), kiểm tra chiều cao lớp và độ rộng đùn của bạn"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "File 3mf đã chọn được lưu bằng phiên bản %1% mới hơn và không tương thích."
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "File 3MF đã chọn chứa vật thể có support FDM được vẽ bằng phiên bản PrusaSlicer mới hơn và không tương thích."
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "File 3MF đã chọn chứa vật thể có đường nối được vẽ bằng phiên bản PrusaSlicer mới hơn và không tương thích."
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "File 3MF đã chọn chứa vật thể đa vật liệu được vẽ bằng phiên bản PrusaSlicer mới hơn và không tương thích."
+
msgid "undefined error"
msgstr "lỗi không xác định"
@@ -14046,6 +15017,56 @@ msgstr "xác thực thất bại"
msgid "write callback failed"
msgstr "gọi lại ghi thất bại"
+# AI Translated
+msgid "unknown error"
+msgstr "lỗi không xác định"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "Bản in nhiều màu trong các chế độ song song IDEX/IQEX yêu cầu mỗi filament có extruder vật lý riêng. Hai hoặc nhiều filament đang dùng được định tuyến đến cùng một đầu vật lý thông qua bản đồ extruder vật lý của máy in (một bộ chia MMU/AFC), điều mà giàn trục đi theo không thể làm theo."
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "Chế độ IDEX/IQEX đang dùng không định nghĩa công cụ chính, nên không thể sắp xếp in nhiều màu. Hãy mở trình chỉnh sửa Chế độ IDEX/IQEX trong cài đặt máy in và gán vai trò Chính (Primary) cho một công cụ."
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "In nhiều màu ở chế độ này không phải là in song song — tất cả công cụ đang dùng đều nằm trên một giàn trục, nên không có giàn trục thứ hai nào để sao chép hoặc đối xứng sang. Hãy chuyển plate sang chế độ Chính để in nhiều màu trên một giàn trục, hoặc định nghĩa một chế độ IDEX/IQEX có các công cụ trên giàn trục thứ hai."
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "Bản in nhiều màu trong các chế độ song song IDEX/IQEX yêu cầu một công cụ Span trên giàn trục của công cụ chính — nếu không có, chế độ này không khai báo cộng sự in nhiều màu trong cùng giàn trục. Hãy giảm bản in xuống một filament, chuyển sang chế độ Chính, hoặc mở trình chỉnh sửa Chế độ IDEX/IQEX trong cài đặt máy in và đánh dấu một công cụ trên giàn trục của công cụ chính là Span."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Trong chế độ Span này, màu chỉ được in bởi %1%, nhưng filament %2% không được định tuyến đến công cụ nào. Hãy dùng các filament được định tuyến đến %1%, hoặc chuyển plate này sang chế độ Chính."
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "Trong chế độ Span này, màu chỉ được in bởi %1%, nhưng filament %2% được định tuyến đến T%3%. Hãy dùng các filament được định tuyến đến %1%, hoặc chuyển plate này sang chế độ Chính."
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Không thể tải cài đặt sẵn đã chọn: %1%\n"
+"\tLý do: %2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"Tải file cài đặt sẵn thất bại: %1%\n"
+"\tLý do: %2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% quá gần vùng loại trừ, có thể có va chạm khi in."
@@ -14062,30 +15083,34 @@ msgstr "%1% quá cao, và sẽ gây va chạm."
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "Vị trí tương đối giữa mô hình và prime tower không đáp ứng yêu cầu của tính năng \"Không có lớp thưa\". Vui lòng điều chỉnh vị trí tương đối của chúng, hạ chiều cao mô hình, hoặc tắt \"Không có lớp thưa\"."
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr " quá gần vùng loại trừ, có thể có va chạm khi in."
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% ở quá gần vùng phát hiện vón cục. Có thể xảy ra va chạm khi in."
# AI Translated
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr " ở quá gần vùng phát hiện vón cục, có thể xảy ra va chạm khi in."
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "Prime tower quá gần các vật thể khác, và có thể gây va chạm.\n"
# AI Translated
-msgid "Prime Tower"
-msgstr "Prime Tower"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr " quá gần các đối tượng khác, và có thể gây va chạm.\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr " quá gần vùng loại trừ, và sẽ gây va chạm.\n"
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "Prime tower quá gần vùng loại trừ, và sẽ gây va chạm.\n"
# AI Translated
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr " ở quá gần vùng phát hiện vón cục, và sẽ gây ra va chạm.\n"
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "Prime tower ở quá gần vùng phát hiện vón cục, và sẽ gây ra va chạm.\n"
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr " nằm một phần ngoài vùng in được, và không thể in.\n"
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "Prime tower quá gần vùng loại trừ, có thể có va chạm khi in."
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "Prime tower ở quá gần vùng phát hiện vón cục, có thể xảy ra va chạm khi in."
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "Prime tower nằm một phần ngoài vùng in được, và không thể in.\n"
# AI Translated
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
@@ -14102,6 +15127,58 @@ msgstr "Nếu bạn vẫn muốn in, bạn có thể bật tùy chọn trong Tù
msgid "No extrusions under current settings."
msgstr "Không có đùn dưới cài đặt hiện tại."
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "Filament pha trộn không được hỗ trợ trong các chế độ song song IDEX/IQEX. Hãy chuyển plate này sang chế độ Chính."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Chế độ IDEX/IQEX \"%1%\" in bằng T%2%, nhưng không filament nào của plate này nằm trên công cụ đã cấu hình. Hãy gán một filament được nạp trên T%2%, hoặc chuyển plate này sang chế độ Chính."
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "Chế độ IDEX/IQEX \"%1%\" in bằng T%2%, nhưng các filament của plate này nằm trên %3%. Hãy gán một filament được nạp trên T%2%, hoặc chuyển plate này sang chế độ Chính."
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "Bè không tương thích với chế độ máy in băng chuyền."
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "Tấm chắn gió không tương thích với chế độ máy in băng chuyền."
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "Brim không tương thích với chế độ bình xoắn ốc trên máy in băng chuyền. Hãy tắt một trong hai."
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "Băng chuyền quá dốc để tạo brim, nên sẽ không có brim nào được tạo."
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "Brim chỉ được tạo khi băng chuyền nghiêng. Hãy đặt góc nghiêng băng chuyền, hoặc bỏ cài đặt brim."
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "Máy in băng chuyền chỉ hỗ trợ brim ngoài và brim trong. Các loại brim \"Tự động\", \"Tai chuột\" và \"Đã vẽ\" được in như \"Chỉ brim ngoài\", dùng \"Độ rộng brim\"."
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "Khoảng cách brim-đối tượng tách brim phía trước khỏi cạnh trước của vật thể, chính là cạnh mà brim cần neo giữ. Hãy đặt khoảng cách này bằng 0 khi dùng chiều dài brim phía trước."
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "Chiều dài brim phía trước kéo dài brim ra phía trước mỗi vật thể dọc theo băng chuyền, và Sắp xếp không chừa khoảng trống đó. Hãy chừa khoảng cách giữa các vật thể."
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "Brim \"Chỉ cạnh trước\" áp dụng cho máy in băng chuyền. Trên máy in này, nó được in như brim ngoài thông thường."
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "Đang dùng filament pha trộn có gradient, nhưng 'Lớp con màu pha trộn' đã bị tắt. Gradient sẽ không được in."
@@ -14113,6 +15190,18 @@ msgstr "Chế độ mượt của timelapse không được hỗ trợ khi trìn
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
msgstr "Không hỗ trợ phát hiện vón cục khi trình tự \"theo vật thể\" được bật."
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "Tháp xả băng chuyền không được tạo ở trình tự in \"Theo đối tượng\"; các lần đổi filament sẽ không được xả."
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "Tháp xả băng chuyền đã được bật nhưng dự án không có vật thể tháp xả; các lần đổi filament sẽ không được xả. Hãy mở dự án trong ứng dụng để tạo tháp."
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "Dự án chứa nhiều tháp xả băng chuyền được quản lý. Hãy tải lại plate hoặc tắt rồi bật lại tháp xả băng chuyền để tạo lại nó."
+
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
msgstr "Bật cả chiều cao Z chính xác và tháp mồi có thể gây ra lỗi cắt lớp."
@@ -14130,10 +15219,6 @@ msgstr "Chế độ bình xoắn ốc không hoạt động khi đối tượng
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "Mặc dù đối tượng %1% vừa với thể tích xây dựng, nó vượt quá chiều cao thể tích xây dựng tối đa do bù co ngót vật liệu."
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "Đối tượng %1% vượt quá chiều cao thể tích xây dựng tối đa."
-
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
msgstr "Mặc dù đối tượng %1% vừa với thể tích xây dựng, lớp cuối cùng của nó vượt quá chiều cao thể tích xây dựng tối đa."
@@ -14141,6 +15226,10 @@ msgstr "Mặc dù đối tượng %1% vừa với thể tích xây dựng, lớp
msgid "You might want to reduce the size of your model or change current print settings and retry."
msgstr "Bạn có thể muốn giảm kích thước model của mình hoặc thay đổi cài đặt in hiện tại và thử lại."
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "Đối tượng %1% vượt quá chiều cao thể tích xây dựng tối đa."
+
msgid "Variable layer height is not supported with Organic supports."
msgstr "Chiều cao lớp thay đổi không được hỗ trợ với support hữu cơ."
@@ -14301,6 +15390,10 @@ msgstr "Mô hình Adaptive Pressure Advance của một hoặc nhiều extruder
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
msgstr "Co ngót filament sẽ không được sử dụng vì co ngót filament của các filament đã dùng khác nhau đáng kể."
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "Bản in trống. Mô hình không thể in với cài đặt in hiện tại."
+
msgid "Generating skirt & brim"
msgstr "Đang tạo viền & brim"
@@ -14320,6 +15413,17 @@ msgstr "Đang xuất G-code"
msgid "Generating G-code"
msgstr "Đang tạo G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "Không thể xử lý file G-code %1% từ file 3MF trước đó."
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "Tháp xả băng chuyền không thể hấp thụ toàn bộ thể tích xả: tổng cộng %1% mm³ không thể được xả (lớp tệ nhất: %2% mm³ tại độ cao %3%). Bản in có thể bị lẫn màu. Hãy tăng độ rộng tháp xả băng chuyền, hoặc giảm thể tích xả."
+
msgid "Processing of the filename_format template failed."
msgstr "Không thể xử lý mẫu filename_format."
@@ -14801,13 +15905,13 @@ msgid ""
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
-"Độ rộng đường của Cầu. Nếu biểu diễn dưới dạng %, nó sẽ được tính theo đường kính đầu phun.\n"
-"Nên dùng kèm với mật độ Cầu hoặc tỷ lệ lưu lượng Cầu cao hơn.\n"
+"Độ rộng đường của cầu. Nếu biểu diễn dưới dạng %, nó sẽ được tính theo đường kính đầu phun.\n"
+"Nên dùng kèm với mật độ cầu hoặc tỷ lệ lưu lượng cầu cao hơn.\n"
"\n"
-"Giá trị tối đa là 100% hoặc đường kính đầu phun.\n"
-"Nếu đặt là 0, độ rộng đường sẽ bằng độ rộng Infill đặc bên trong."
+"Giá trị tối đa là 100%, hoặc đường kính đầu phun.\n"
+"Nếu đặt là 0, độ rộng đường sẽ bằng độ rộng Infill đặc bên trong, hoặc bằng đường kính đầu phun đối với cầu dày."
msgid "Internal bridge flow ratio"
msgstr "Tỷ lệ lưu lượng cầu bên trong"
@@ -15112,7 +16216,7 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"Bật tùy chọn này để giảm tốc độ in ở những vùng mà chu vi có thể đã bị cong vênh lên trên.\n"
"Ví dụ, sẽ áp dụng thêm mức giảm tốc khi in phần nhô ở các góc nhọn như mũi thân tàu Benchy, giúp giảm hiện tượng cong vênh vốn tích tụ qua nhiều lớp.\n"
@@ -15124,22 +16228,23 @@ msgstr ""
"Khuyến nghị khi bật tùy chọn này:\n"
"1. Giảm thời gian làm mượt Pressure Advance xuống 0.015 - 0.02 để extruder phản ứng nhanh với thay đổi tốc độ.\n"
"2. Tăng tốc độ in tối thiểu để hạn chế mức độ giảm tốc và giảm chênh lệch giữa các đoạn nhanh và chậm.\n"
-"3. Nếu vẫn xuất hiện khuyết điểm, hãy bật Extrusion Rate Smoothing (ERS) để làm mượt thêm các chuyển tiếp lưu lượng.\n"
+"3. Nếu vẫn xuất hiện khuyết điểm, hãy bật Làm mịn tốc độ đùn (ERS) để làm mịn thêm các chuyển tiếp lưu lượng.\n"
"\n"
"Lưu ý: Khi tùy chọn này được bật, chu vi phần nhô được xử lý như phần nhô, nghĩa là tốc độ phần nhô sẽ được áp dụng ngay cả khi chu vi nhô đó là một phần của cầu.\n"
-"Ví dụ, khi các chu vi nhô 100%, không có thành nào đỡ bên dưới, tốc độ phần nhô 100% sẽ được áp dụng."
+"Ví dụ, khi các chu vi nhô 100%, không có thành nào đỡ bên dưới, tốc độ phần nhô 75% sẽ được áp dụng, bị giới hạn bởi tốc độ cầu."
msgid "mm/s or %"
msgstr "mm/s hoặc %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"Tốc độ của các đùn cầu nhìn thấy từ bên ngoài.\n"
"\n"
-"Ngoài ra, nếu Giảm tốc cho chu vi cong bị tắt hoặc chế độ phần nhô cổ điển được bật, nó sẽ là tốc độ in của thành nhô được hỗ trợ dưới 13%, cho dù chúng là một phần của cầu hay phần nhô."
+"Ngoài ra, nếu Giảm tốc cho chu vi cong bị tắt, nó sẽ là tốc độ in của thành nhô được hỗ trợ dưới 13%, cho dù chúng là một phần của cầu hay phần nhô."
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "Tốc độ của cầu bên trong. Nếu giá trị được biểu thị dưới dạng phần trăm, nó sẽ được tính dựa trên bridge_speed. Giá trị mặc định là 150%."
@@ -15147,12 +16252,56 @@ msgstr "Tốc độ của cầu bên trong. Nếu giá trị được biểu th
msgid "This is the distance from the model to the outermost brim line."
msgstr "Khoảng cách từ model đến đường brim ngoài cùng."
+# AI Translated
+msgid "Leading brim length"
+msgstr "Chiều dài brim phía trước"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Chỉ dành cho máy in băng chuyền. Kéo dài brim RA PHÍA TRƯỚC vật thể dọc theo băng chuyền, trên mọi cạnh hướng xuống dốc của vùng tiếp xúc - cả lần tiếp xúc đầu tiên của vật thể với băng chuyền lẫn mọi vùng tách rời chạm xuống sau đó. Phần đệm này được đặt lên băng chuyền trước khi vật thể đến đó, nên cạnh trước đã có sẵn một phần dính chặt để bám vào.\n"
+"\n"
+"Đo trên bề mặt băng chuyền và cộng thêm vào Độ rộng brim: brim vươn ra phía trước vật thể một khoảng Khoảng cách brim-đối tượng + Chiều dài brim phía trước + Độ rộng brim. Hãy đặt Khoảng cách brim-đối tượng bằng 0, nếu không phần đệm sẽ không chạm vào vật thể mà nó cần neo giữ.\n"
+"\n"
+"Trên băng chuyền nghiêng, mỗi lớp đặt một dải của brim, nên độ dày của tấm brim tạo thành được quyết định bởi lưu lượng chứ không phải chiều cao lớp. Dùng Tỷ lệ lưu lượng brim để tinh chỉnh.\n"
+"\n"
+"Đặt 0 để tắt."
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "Độ rộng brim bổ sung"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"Chỉ dành cho máy in băng chuyền. Mở rộng brim SANG HAI BÊN, ngang qua băng chuyền, mà không kéo dài thêm về phía trước hay phía sau vật thể. Dùng khi một phần cần bám chắc hơn dọc theo chiều dài của nó so với mức mà riêng Độ rộng brim mang lại.\n"
+"\n"
+"Đo trên bề mặt băng chuyền và cộng thêm vào Độ rộng brim: brim vươn ra mỗi bên vật thể một khoảng Khoảng cách brim-đối tượng + Độ rộng brim + Độ rộng brim bổ sung. Để kéo dài brim ra phía trước vật thể, hãy dùng Chiều dài brim phía trước.\n"
+"\n"
+"Đặt 0 để tắt."
+
msgid "Brim type"
msgstr "Loại brim"
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
msgstr "Điều này điều khiển việc tạo brim ở bên ngoài và/hoặc bên trong của model. Tự động có nghĩa là độ rộng brim được phân tích và tính tự động."
+# AI Translated
+msgid "Leading edge only"
+msgstr "Chỉ cạnh trước"
+
msgid "Brim-object gap"
msgstr "Khoảng cách brim-đối tượng"
@@ -15456,6 +16605,9 @@ msgstr ""
"2. Lọc giới hạn - tạo cầu bên trong trên bề mặt nghiêng mạnh trong khi tránh cầu không cần thiết. Điều này hoạt động tốt cho hầu hết model khó\n"
"3. Không lọc - tạo cầu bên trong trên mọi phần nhô bên trong tiềm năng. Tùy chọn này hữu ích cho model bề mặt trên nghiêng mạnh; tuy nhiên, trong hầu hết trường hợp, nó tạo quá nhiều cầu không cần thiết."
+msgid "Filter"
+msgstr "Lọc"
+
msgid "Limited filtering"
msgstr "Lọc giới hạn"
@@ -15471,7 +16623,8 @@ msgstr "Độ dài tối đa của cầu không cần support. Đặt thành 0 n
msgid "End G-code"
msgstr "G-code kết thúc"
-msgid "Add end G-Code when finishing the entire print."
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
msgstr "G-code kết thúc khi hoàn thành toàn bộ bản in."
msgid "Between Object G-code"
@@ -15660,8 +16813,9 @@ msgstr "Tốc độ của thành ngoài là ngoài cùng và nhìn thấy đư
msgid "Small perimeters"
msgstr "Chu vi nhỏ"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "Cài đặt riêng biệt này sẽ ảnh hưởng đến tốc độ của chu vi có bán kính <= small_perimeter_threshold (thường là lỗ). Nếu được biểu thị dưới dạng phần trăm (ví dụ: 80%) nó sẽ được tính trên cài đặt tốc độ thành ngoài ở trên. Đặt thành không để tự động."
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "Cài đặt riêng biệt này sẽ ảnh hưởng đến tốc độ của chu vi có bán kính <= small_perimeter_threshold (thường là lỗ). Nếu được biểu thị dưới dạng phần trăm (ví dụ: 80%) nó sẽ được tính trên cài đặt tốc độ thành ngoài ở trên."
msgid "Small perimeters threshold"
msgstr "Ngưỡng chu vi nhỏ"
@@ -15674,8 +16828,8 @@ msgid "Small support perimeters"
msgstr "Chu vi support nhỏ"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "Giống như \"Chu vi nhỏ\", nhưng dành cho support. Cài đặt riêng này sẽ ảnh hưởng đến tốc độ support cho các vùng <= `small_support_perimeter_threshold`. Nếu biểu diễn dưới dạng phần trăm (ví dụ: 80%), nó sẽ được tính theo cài đặt tốc độ support hoặc giao diện support ở trên. Đặt bằng không để tự động."
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "Giống như \"Chu vi nhỏ\", nhưng dành cho support. Cài đặt riêng này sẽ ảnh hưởng đến tốc độ support cho các vùng <= `small_support_perimeter_threshold`. Nếu biểu diễn dưới dạng phần trăm (ví dụ: 80%), nó sẽ được tính theo cài đặt tốc độ support hoặc giao diện support ở trên."
# AI Translated
msgid "Small support perimeters threshold"
@@ -15688,12 +16842,13 @@ msgstr "Đặt ngưỡng cho độ dài chu vi support nhỏ. Ngưỡng mặc đ
msgid "Walls printing order"
msgstr "Thứ tự in thành"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
@@ -16378,9 +17533,6 @@ msgstr "Giá filament. Chỉ cho thống kê."
msgid "money/kg"
msgstr "tiền/kg"
-msgid "Vendor"
-msgstr "Nhà cung cấp"
-
msgid "Vendor of filament. For show only."
msgstr "Nhà cung cấp filament. Chỉ để hiển thị."
@@ -16454,6 +17606,92 @@ msgstr "Lấp nhiều đường"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "Sử dụng nhiều đường cho mẫu infill, nếu được hỗ trợ bởi mẫu infill."
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "Mật độ thích ứng (thử nghiệm)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"Phân cấp infill Gyroid và TPMS bên trong vật thể: các ô của nó lớn dần từ bề mặt vật thể vào tâm. Mật độ infill thưa được dùng ở bề mặt và mật độ bên trong được dùng ở tâm.\n"
+"Biến dạng theo khoảng cách, Hòa trộn mượt và Lớp vỏ bậc thang dựa theo khoảng cách đến bề mặt gần nhất, kể cả mặt trên và mặt dưới, với mật độ bên trong tại điểm xa bề mặt nhất:\n"
+" - Biến dạng theo khoảng cách: một mẫu liên tục, bị kéo giãn và xô lệch ở nơi khoảng cách thay đổi theo các hướng, như trong các tấm phẳng và các phần dài.\n"
+" - Hòa trộn mượt: các mẫu của những mật độ lân cận được hòa trộn vào nhau, với các vòng nhỏ ở chỗ chúng gặp nhau.\n"
+" - Lớp vỏ bậc thang: các lớp vỏ của mẫu thông thường với mật độ chênh nhau khoảng 1,5 lần, các đường của chúng được nối dọc theo ranh giới lớp vỏ.\n"
+" - Thùy: theo hình dạng 3D của vật thể, kể cả mặt trên và mặt dưới. Mỗi thùy, tức một phần nối với phần còn lại qua một cổ hẹp hơn, được phân cấp về phía tâm riêng của nó.\n"
+" - Pháp tuyến Z, Y hoặc X: theo các mặt cắt của vật thể vuông góc với trục đó, nên mật độ không thay đổi dọc theo trục này."
+
+# AI Translated
+msgid "Distance warp"
+msgstr "Biến dạng theo khoảng cách"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "Hòa trộn mượt"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "Lớp vỏ bậc thang"
+
+# AI Translated
+msgid "Lobes"
+msgstr "Thùy"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "Pháp tuyến Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "Pháp tuyến Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "Pháp tuyến X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "Mật độ bên trong"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "Mật độ của infill thích ứng tại tâm vật thể."
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "Gradient thích ứng"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"Cách mật độ thay đổi từ bề mặt vào tâm vật thể.\n"
+"Tuyến tính: mật độ thay đổi với tốc độ không đổi.\n"
+"Bậc hai: mật độ giữ gần với mật độ infill thưa ở gần bề mặt và thay đổi nhanh hơn khi vào gần tâm.\n"
+"Hàm mũ: mật độ thay đổi nhanh ngay dưới bề mặt và chững lại khi vào gần tâm."
+
+# AI Translated
+msgid "Linear"
+msgstr "Tuyến tính"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "Bậc hai"
+
+# AI Translated
+msgid "Exponential"
+msgstr "Hàm mũ"
+
# AI Translated
msgid "Z-buckling bias optimization (experimental)"
msgstr "Tối ưu thiên lệch chống oằn theo Z (thử nghiệm)"
@@ -16609,14 +17847,16 @@ msgstr "Chiều cao lớp đầu tiên"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "Chiều cao của lớp đầu tiên. Làm cho chiều cao lớp đầu tiên dày một chút có thể cải thiện độ bám dính bàn in."
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "Tốc độ của lớp đầu tiên ngoại trừ phần infill đặc."
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "Tốc độ của thành và brim của lớp đầu tiên."
msgid "First layer infill"
msgstr "Infill lớp đầu tiên"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "Tốc độ của phần infill đặc của lớp đầu tiên."
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "Tốc độ của lớp đầu tiên ngoại trừ thành và brim, chẳng hạn như infill, lấp khe và support."
msgid "First layer travel speed"
msgstr "Tốc độ di chuyển lớp đầu tiên"
@@ -17097,6 +18337,10 @@ msgstr "Kiểu G-code"
msgid "What kind of G-code the printer is compatible with."
msgstr "Loại G-code mà máy in tương thích."
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin (cũ)"
+
msgid "Klipper"
msgstr "Klipper"
@@ -17341,16 +18585,18 @@ msgstr "Độ rộng đường của infill thưa bên trong. Nếu được bi
msgid "Infill/wall overlap"
msgstr "Chồng lấp infill/Thành"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "Vùng infill được mở rộng một chút để chồng lấp với thành để liên kết tốt hơn. Giá trị phần trăm tương đối với độ rộng đường của infill thưa. Đặt giá trị này thành ~10-15% để giảm thiểu đùn dư tiềm ẩn và tích tụ vật liệu dẫn đến bề mặt trên thô."
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "Vùng infill được mở rộng một chút để chồng lấp với thành để liên kết tốt hơn. Giá trị phần trăm tương đối với độ rộng đường của thành trong. Đặt giá trị này thành ~10-15% để giảm thiểu đùn dư tiềm ẩn và tích tụ vật liệu dẫn đến bề mặt trên thô."
msgid "Top/Bottom solid infill/wall overlap"
msgstr "Chồng lấp infill đặc/thành trên/dưới"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "Vùng infill đặc trên được mở rộng một chút để chồng lấp với thành để liên kết tốt hơn và giảm thiểu sự xuất hiện của lỗ kim nơi infill trên gặp thành. Giá trị 25-30% là điểm khởi đầu tốt, giảm thiểu sự xuất hiện của lỗ kim. Giá trị phần trăm tương đối với độ rộng đường của infill thưa."
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "Vùng infill đặc trên được mở rộng một chút để chồng lấp với thành để liên kết tốt hơn và giảm thiểu sự xuất hiện của lỗ kim nơi infill trên gặp thành. Giá trị 25-30% là điểm khởi đầu tốt, giảm thiểu sự xuất hiện của lỗ kim. Giá trị phần trăm tương đối với độ rộng đường của thành trong."
msgid "This is the speed for internal sparse infill."
msgstr "Tốc độ của infill thưa bên trong."
@@ -17377,8 +18623,9 @@ msgstr "Độ rộng tối đa của vùng phân đoạn. Giá trị 0 vô hiệ
msgid "Interlocking depth of a segmented region"
msgstr "Độ sâu lồng ghép của vùng phân đoạn"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "Độ sâu lồng ghép của vùng phân đoạn. Nó sẽ bị bỏ qua nếu \"mmu_segmented_region_max_width\" là không hoặc nếu \"mmu_segmented_region_interlocking_depth\" lớn hơn \"mmu_segmented_region_max_width\". Không vô hiệu hóa tính năng này."
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "Độ sâu lồng ghép của vùng phân đoạn. Ở mỗi lớp xen kẽ, vùng phân đoạn bị giới hạn trong độ sâu này. Nó sẽ bị bỏ qua nếu \"interlocking_beam\" được bật. Giá trị bằng không sẽ vô hiệu hóa tính năng này."
msgid "Use beam interlocking"
msgstr "Sử dụng lồng ghép dầm"
@@ -17491,11 +18738,11 @@ msgstr "Góc giảm thiểu chiều cao thành"
# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"Giảm chiều cao của chu vi bề mặt trên cho khớp với chiều cao mép của mô hình.\n"
-"Ảnh hưởng đến các chu vi có độ dốc nhỏ hơn góc này (độ).\n"
+"Ảnh hưởng đến các chu vi có độ dốc lớn hơn góc này (độ).\n"
"Giá trị hợp lý là 35. Đặt 0 để tắt."
# AI Translated
@@ -17575,17 +18822,21 @@ msgstr "Tốc độ tối đa Z"
msgid "Maximum speed E"
msgstr "Tốc độ tối đa E"
-msgid "Maximum X speed"
-msgstr "Tốc độ X tối đa"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "Tốc độ tối đa của trục X"
-msgid "Maximum Y speed"
-msgstr "Tốc độ Y tối đa"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Tốc độ tối đa của trục Y"
-msgid "Maximum Z speed"
-msgstr "Tốc độ Z tối đa"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Tốc độ tối đa của trục Z"
-msgid "Maximum E speed"
-msgstr "Tốc độ E tối đa"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "Tốc độ tối đa của trục E"
msgid "Maximum acceleration X"
msgstr "Gia tốc tối đa X"
@@ -18122,8 +19373,8 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "Các khả năng plugin được cài đặt sẵn này tham chiếu, lưu dưới dạng name;uuid;capability."
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
-msgstr "(Các) plugin Python được gọi ở mỗi bước của quy trình slice để đọc và sửa đổi dữ liệu slice trung gian, bao gồm một bước hậu xử lý G-code cuối cùng. Mang tính nghiên cứu/thử nghiệm."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgstr "Các plugin Python được gọi ở mỗi bước của quy trình slice để đọc và sửa đổi dữ liệu slice trung gian, bao gồm một bước hậu xử lý G-code cuối cùng. Mang tính nghiên cứu/thử nghiệm."
msgid "Printer type"
msgstr "Loại máy in"
@@ -18494,7 +19745,8 @@ msgstr "Khớp vát cho thành trong"
msgid "Use scarf joint for inner walls as well."
msgstr "Sử dụng khớp vát cho thành trong cũng vậy."
-msgid "Role base wipe speed"
+# AI Translated
+msgid "Role based wipe speed"
msgstr "Tốc độ lau dựa trên vai trò"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
@@ -18584,16 +19836,15 @@ msgstr "Giới hạn các vòng viền/tấm chắn gió thành một thành sau
msgid "Draft shield"
msgstr "Tấm chắn gió"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
"Tấm chắn gió hữu ích để bảo vệ bản in ABS hoặc ASA khỏi cong vênh và tách khỏi bàn in do gió lùa. Nó thường chỉ cần với máy in khung mở, tức là không có vỏ bọc.\n"
"\n"
-"Đã bật = viền cao bằng đối tượng được in cao nhất. Ngược lại 'Chiều cao viền' được sử dụng.\n"
-"Lưu ý: Với tấm chắn gió hoạt động, viền sẽ được in ở khoảng cách viền từ đối tượng. Do đó, nếu vành đang hoạt động nó có thể giao với chúng. Để tránh điều này, hãy tăng giá trị khoảng cách viền.\n"
+"Đã bật = viền cao bằng đối tượng được in cao nhất. Ngược lại 'Chiều cao viền' được sử dụng."
msgid "Enabled"
msgstr "Đã bật"
@@ -18761,6 +20012,130 @@ msgstr "Extruder đơn đa vật liệu"
msgid "Use single nozzle to print multi filament."
msgstr "Sử dụng đầu phun đơn để in nhiều filament."
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "Máy in IDEX/IQEX"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "Bật in song song cho các máy in có nhiều xe trượt độc lập (IDEX, IQEX và tương tự)."
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "Vùng do firmware quản lý"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "Khi bật, phần mềm slice xuất G-code với nội dung của vùng chính được căn giữa tại gốc tọa độ bàn in (0,0). Firmware máy in chịu trách nhiệm đặt các bản sao/bản đối xứng tại vị trí vật lý của từng vùng. Chỉ bật trên máy in có firmware tự áp dụng độ lệch vùng ở chế độ Sao chép (Copy)/Gương (Mirror) (ví dụ chế độ nhân bản IDEX của RepRapFirmware). Không có tác dụng ở chế độ Chính."
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "Số giàn trục"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "Số giàn trục độc lập theo trục Y. 1 cho IDEX/IQEX một ray. 2 cho hệ thống hai giàn trục (chia bàn in thành các hàng)."
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "Số công cụ mỗi giàn trục"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "Số đầu công cụ độc lập trên mỗi giàn trục theo trục X. 2 cho kiểu IDEX."
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "Vị trí công cụ 0"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "Vị trí vật lý trên bàn in nơi đặt công cụ T0 (chỉ số 0). Xác định cách các chỉ số công cụ ánh xạ đến các vùng trên bàn in. Với thiết lập một giàn trục (IDEX), chỉ trái/phải có ý nghĩa; với thiết lập hai giàn trục (IQEX), có thể chọn cả bốn góc (trước = Y thấp hơn / gần người vận hành, sau = Y cao hơn / phía sau máy)."
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "Khoảng hở đầu phun X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "Khoảng cách (mm) từ đầu phun đến mép xe trượt ở phía va chạm theo trục X. Dùng để tính độ rộng của dải loại trừ va chạm tại mỗi ranh giới X."
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "Khoảng hở đầu phun Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Khoảng cách (mm) từ đầu phun đến mép xe trượt ở phía va chạm theo trục Y. Dùng để tính độ rộng của dải loại trừ va chạm tại mỗi ranh giới Y."
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "Lề an toàn"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "Dải khoảng hở khuyến nghị (mm), không chặn, được vẽ bên trong vùng chính tại mỗi ranh giới xe trượt. Các phần đặt trong dải này vẫn được slice; dải chỉ là lời nhắc trực quan để chừa thêm khoảng hở gần mép vùng."
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "Chủ đề hiển thị"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "Bảng màu cho việc hiển thị vùng bàn in IDEX/IQEX. Chọn chủ đề thân thiện với người mù màu nếu cần."
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "Mù màu lục / Mù màu đỏ (đỏ-lục)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "Mù màu lam (lam-vàng)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "Độ tương phản cao"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "Chế độ in IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "Tên của chế độ in song song IDEX/IQEX đang dùng, hoặc \"primary\" khi in bằng một xe trượt. Yêu cầu bật Máy in IDEX/IQEX trong cài đặt sẵn máy in (Máy in → Đa vật liệu → Cấu hình IDEX/IQEX)."
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "Bản đồ filament theo đầu IDEX/IQEX"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "Ghi đè theo từng plate, ánh xạ các đầu vật lý đến khe filament (đánh số từ 1). Để trống nghĩa là mỗi đầu dùng filament đầu tiên mà bản đồ extruder vật lý của máy in định tuyến đến nó."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "Tên chế độ IDEX/IQEX"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "Tên hiển thị cho từng chế độ in song song IDEX/IQEX do người dùng định nghĩa."
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "Công cụ hoạt động của chế độ IDEX/IQEX"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "Phân vai trò công cụ cho từng chế độ. Định dạng: \"idx:P,idx:C,idx:M\" trong đó P=Primary (Chính), C=Copy (Sao chép), M=Mirror (Gương) (ví dụ \"0:P,1:C,2:M,3:M\"). Được quản lý bởi trình chỉnh sửa Chế độ IDEX/IQEX trong cài đặt sẵn máy in."
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "G-code của chế độ IDEX/IQEX"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "G-code hoặc lệnh gọi macro để chèn vào khi bắt đầu in cho từng chế độ."
+
msgid "Manual Filament Change"
msgstr "Thay filament thủ công"
@@ -19147,6 +20522,167 @@ msgstr "Chồng lấp ngưỡng"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "Nếu góc ngưỡng là không, support sẽ được tạo cho phần nhô có chồng lấp dưới ngưỡng. Giá trị này càng nhỏ, phần nhô càng dốc có thể được in mà không cần support."
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "Độ nghiêng bàn in X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "Góc nghiêng của bàn in theo trục X. Giá trị dương làm nghiêng bàn in sao cho phía +X cao hơn, dịch trọng lực về phía -X và làm tăng phần nhô ở phía +X. Giá trị âm làm phía -X cao hơn. Đặt 0 để không nghiêng theo trục X. Ở chế độ máy in băng chuyền, giá trị này được tự động đồng bộ với góc băng chuyền."
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "Độ nghiêng bàn in Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "Góc nghiêng của bàn in theo trục Y. Giá trị dương làm nghiêng bàn in sao cho phía +Y cao hơn, dịch trọng lực về phía -Y và làm tăng phần nhô ở phía +Y. Giá trị âm làm phía -Y cao hơn. Đặt 0 để không nghiêng theo trục Y."
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "Bật in băng chuyền"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "Bật chế độ máy in băng chuyền. Máy in băng chuyền dùng băng tải làm bề mặt in, nghiêng một góc (thường là 45 độ). Phần mềm slice sẽ xoay mặt phẳng slice và biến đổi tọa độ G-code cho bề mặt in nghiêng."
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "Trục Y vô hạn"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "Bật trục Y vô hạn cho máy in băng chuyền. Khi bật, giới hạn thể tích in theo trục Y gần như được loại bỏ, cho phép in vật thể có chiều dài bất kỳ dọc theo hướng băng chuyền."
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "Trục nghiêng băng chuyền"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "Trục mà lưới được xoay quanh trước khi slice. Đây là độ nghiêng của máy in băng chuyền: một phép xoay đẳng cự (không biến dạng), đồng thời điều khiển việc hiển thị bàn in và độ nghiêng trọng lực cho support, và được phép biến đổi ngược G-code đảo lại trước bước trượt/co giãn và ánh xạ lại của hệ tọa độ máy. X là độ nghiêng giàn trục thông thường (băng chuyền chạy dọc theo Y)."
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "Góc nghiêng băng chuyền"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "Góc nghiêng của bề mặt băng chuyền, tính bằng độ. Hầu hết máy in băng chuyền dùng 45°. Giá trị dương xoay ngược chiều kim đồng hồ khi nhìn dọc theo chiều dương của trục nghiêng; độ lớn cũng là độ nghiêng vật lý của băng chuyền dùng cho việc hiển thị bàn in và trọng lực của support."
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "Tách riêng độ nghiêng hệ tọa độ máy"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "Ghi đè cho chuyên gia: đặt góc nghiêng hệ tọa độ máy (trượt/co giãn G-code) độc lập với góc xoay trước khi slice. Khi tắt, phép biến đổi hệ tọa độ máy được suy ra từ góc nghiêng băng chuyền, nên một góc duy nhất điều khiển cả hai bước. Chỉ bật để bù cho máy có độ nghiêng giàn trục vật lý khác với góc xoay khi slice."
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "Góc nghiêng hệ tọa độ máy"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "Góc nghiêng (độ) dùng để suy ra hệ số trượt (cot) và co giãn (1/|sin|) của hệ tọa độ máy áp dụng cho G-code. Chỉ dùng khi bật 'Tách riêng độ nghiêng hệ tọa độ máy'; nếu không thì dùng góc nghiêng băng chuyền."
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "Đảo X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "Đảo Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "Đảo Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "Ánh xạ lại G-code X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Trục slice nào ánh xạ tới trục X của máy trong G-code xuất ra. Được áp dụng SAU khi slice, trong lúc tạo G-code."
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "Ánh xạ lại G-code Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Trục slice nào ánh xạ tới trục Y của máy trong G-code xuất ra. Được áp dụng SAU khi slice, trong lúc tạo G-code."
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "Ánh xạ lại G-code Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "Trục slice nào ánh xạ tới trục Z của máy trong G-code xuất ra. Được áp dụng SAU khi slice, trong lúc tạo G-code."
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "Độ lệch Z của sàn support"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "Dịch sàn băng chuyền đã tính lên hoặc xuống (mm). Giá trị âm hạ thấp sàn, cho phép giữ lại nhiều support hơn. Dùng để chẩn đoán lỗi của công thức sàn băng chuyền."
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "Bật tháp xả băng chuyền"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "Thay thế wipe tower/prime tower cho máy in băng chuyền. Khi bật trên máy in băng chuyền, một lăng trụ xả được tự động tạo cạnh các phần được in và việc xả khi đổi filament được chuyển vào đó (wipe tower truyền thống không thể dùng trên máy in băng chuyền vì G-code của nó bỏ qua phép biến đổi băng chuyền). Chỉ khả dụng trên máy in băng chuyền."
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "Độ rộng tháp xả băng chuyền"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "Độ rộng (theo trục X của máy, ngang qua băng chuyền) của lăng trụ xả được tự động tạo trên máy in băng chuyền khi bật tháp xả băng chuyền và dùng nhiều filament. Việc xả khi đổi filament được chuyển vào các đường đùn của lăng trụ này thay vì wipe tower truyền thống. Chiều cao của nó được tính tự động từ thể tích xả lớn nhất trên mỗi lớp: lăng trụ càng rộng thì càng thấp."
+
msgid "Tree support branch angle"
msgstr "Góc nhánh support cây"
@@ -19330,13 +20866,11 @@ msgstr "Infill tách biệt"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"Căn giữa infill bên trong của từng phần theo chính nó, như thể nó được slice riêng, thay vì theo toàn bộ cụm lắp ráp. Các phần chạm hoặc chồng lên nhau được coi là một khối và dùng chung một tâm; các phần rời nhau (hoặc các vật thể 3D riêng biệt) thì mỗi phần có tâm riêng.\n"
-"Hữu ích khi một cụm lắp ráp gộp nhiều vật thể mà mỗi vật thể cần giữ infill nhất quán, tự căn giữa.\n"
-"Ảnh hưởng đến các mẫu đường và lưới cùng các infill dùng mẫu xoay.\n"
-"Các mẫu bị khóa theo tọa độ toàn cục (Gyroid, Tổ ong, TPMS, ...) không bị ảnh hưởng."
+"Căn giữa infill bên trong của mỗi phần theo chính nó, như thể nó được slice riêng, thay vì theo toàn bộ cụm lắp ráp. Các phần chạm hoặc chồng lên nhau được coi là một khối và dùng chung một tâm; các phần tách rời (hoặc các vật thể 3D riêng biệt) mỗi cái có tâm riêng.\n"
+"Hữu ích khi một cụm lắp ráp gồm nhiều vật thể mà mỗi vật thể cần giữ infill nhất quán, căn giữa theo chính nó.\n"
+"Khối lập phương thích ứng và Support khối luôn căn giữa mỗi phần theo chính nó, còn infill Tia chớp được tạo cho toàn bộ vật thể và không bị ảnh hưởng."
# AI Translated
msgid "Center surface pattern on"
@@ -19471,40 +21005,42 @@ msgstr "Góc ở đỉnh của nón được sử dụng để ổn định wipe
msgid "Maximum wipe tower print speed"
msgstr "Tốc độ in wipe tower tối đa"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
"Tốc độ in tối đa khi xả trong wipe tower và in các lớp thưa của wipe tower. Khi xả, nếu tốc độ infill thưa hoặc tốc độ được tính từ tốc độ thể tích tối đa của filament thấp hơn, tốc độ thấp nhất sẽ được sử dụng thay thế.\n"
"\n"
-"Khi in các lớp thưa, nếu tốc độ chu vi bên trong hoặc tốc độ được tính từ tốc độ thể tích tối đa của filament thấp hơn, tốc độ thấp nhất sẽ được sử dụng thay thế.\n"
+"Khi in các lớp thưa, nếu tốc độ infill thưa hoặc tốc độ được tính từ tốc độ thể tích tối đa của filament thấp hơn, tốc độ thấp nhất sẽ được sử dụng thay thế.\n"
"\n"
"Tăng tốc độ này có thể ảnh hưởng đến độ ổn định của tower cũng như tăng lực mà đầu phun va chạm với bất kỳ cục nhỏ nào có thể đã hình thành trên wipe tower.\n"
"\n"
-"Trước khi tăng tham số này vượt quá mặc định 90 mm/s, hãy đảm bảo máy in của bạn có thể nối cầu đáng tin cậy ở tốc độ tăng và chảy nhựa khi thay công cụ được kiểm soát tốt.\n"
+"Trước khi tăng tham số này vượt quá mặc định 90 mm/s, hãy đảm bảo máy in của bạn có thể bắc cầu đáng tin cậy ở tốc độ tăng và việc ngăn chảy nhựa khi thay công cụ được kiểm soát tốt.\n"
"\n"
-"Đối với chu vi bên ngoài wipe tower, tốc độ chu vi bên trong được sử dụng bất kể cài đặt này."
+"Đối với chu vi bên ngoài wipe tower, tốc độ chu vi bên trong được sử dụng, đồng thời cũng bị giới hạn bởi cài đặt này."
msgid "Wall type"
msgstr "Loại thành"
+# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"Loại thành ngoài wipe tower.\n"
-"1. Hình chữ nhật: Loại thành mặc định, hình chữ nhật có độ rộng và chiều cao cố định.\n"
-"2. Nón: Một nón có bo tròn ở dưới để giúp ổn định wipe tower.\n"
-"3. Gân: Thêm bốn gân vào thành tower để tăng cường độ ổn định."
+"1. Hình chữ nhật: Hình chữ nhật có độ rộng và chiều cao cố định.\n"
+"2. Hình nón: Một hình nón có bo tròn ở dưới để giúp ổn định wipe tower.\n"
+"3. Gân: Loại thành mặc định, thêm bốn gân vào thành tower để tăng cường độ ổn định."
msgid "Rectangle"
msgstr "Hình chữ nhật"
@@ -19582,6 +21118,14 @@ msgstr "Xả sau khi thay filament sẽ được thực hiện bên trong suppor
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
msgstr "Đối tượng này sẽ được sử dụng để xả đầu phun sau khi thay filament để tiết kiệm filament và giảm thời gian in. Màu sắc của các đối tượng sẽ được trộn lẫn. Nó sẽ không có hiệu lực trừ khi prime tower được bật."
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "Vật thể tháp xả băng chuyền"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "Đánh dấu lăng trụ xả băng chuyền được tạo tự động. Được quản lý tự động; không đặt thủ công."
+
msgid "Maximal bridging distance"
msgstr "Khoảng cách nối cầu tối đa"
@@ -19597,8 +21141,9 @@ msgstr "Khoảng cách của các đường xả trên wipe tower."
msgid "Extra flow for purging"
msgstr "Lưu lượng bổ sung để xả"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "Lưu lượng bổ sung được sử dụng cho các đường xả trên wipe tower. Điều này làm cho các đường xả dày hơn hoặc hẹp hơn so với bình thường. Khoảng cách được điều chỉnh tự động."
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "Lưu lượng bổ sung được sử dụng cho các đường xả trên wipe tower. Điều này làm cho các đường xả dày hơn so với bình thường. Khoảng cách được điều chỉnh tự động."
msgid "Idle temperature"
msgstr "Nhiệt độ chờ"
@@ -19716,14 +21261,15 @@ msgstr "Độ dày tối thiểu của tính năng mỏng. Tính năng model m
msgid "Minimum wall length"
msgstr "Độ dài thành tối thiểu"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"Điều chỉnh giá trị này để ngăn thành ngắn, không đóng được in, có thể tăng thời gian in. Giá trị cao hơn loại bỏ nhiều thành và dài hơn.\n"
+"Điều chỉnh giá trị này để ngăn in các thành ngắn, không khép kín, vì chúng có thể làm tăng thời gian in. Giá trị này là bội số của độ rộng thành. Giá trị cao hơn loại bỏ nhiều thành hơn và dài hơn.\n"
"\n"
-"LƯU Ý: Bề mặt dưới và trên sẽ không bị ảnh hưởng bởi giá trị này để ngăn khe nhìn thấy ở bên ngoài model. Điều chỉnh 'Ngưỡng một thành' trong cài đặt Nâng cao bên dưới để điều chỉnh độ nhạy của những gì được coi là bề mặt trên. 'Ngưỡng một thành' chỉ hiển thị nếu cài đặt này được đặt trên giá trị mặc định 0.5, hoặc nếu bề mặt trên thành đơn được bật."
+"LƯU Ý: Bề mặt dưới và trên sẽ không bị ảnh hưởng bởi giá trị này để ngăn khe hở nhìn thấy ở bên ngoài mô hình. Điều chỉnh 'Ngưỡng một thành' trong cài đặt 'Thành và bề mặt' bên dưới để điều chỉnh độ nhạy của những gì được coi là bề mặt trên. 'Ngưỡng một thành' chỉ hiển thị nếu cài đặt này được đặt trên giá trị mặc định 0.5, hoặc nếu bề mặt trên thành đơn được bật."
# AI Translated
msgid "Maximum wall resolution"
@@ -19738,8 +21284,8 @@ msgid "Maximum wall deviation"
msgstr "Độ lệch thành tối đa"
# AI Translated
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "Độ lệch tối đa cho phép khi giảm độ phân giải cho cài đặt 'Độ phân giải thành tối đa'. Nếu bạn tăng giá trị này, bản in sẽ kém chính xác hơn nhưng G-Code sẽ nhỏ hơn. 'Độ lệch thành tối đa' giới hạn 'Độ phân giải thành tối đa', nên nếu hai giá trị xung đột, 'Độ lệch thành tối đa' được ưu tiên."
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "Độ lệch tối đa cho phép khi giảm độ phân giải cho cài đặt 'Độ phân giải thành tối đa'. Nếu bạn tăng giá trị này, bản in sẽ kém chính xác hơn nhưng G-code sẽ nhỏ hơn. 'Độ lệch thành tối đa' giới hạn 'Độ phân giải thành tối đa', nên nếu hai giá trị xung đột, 'Độ lệch thành tối đa' được ưu tiên."
msgid "First layer minimum wall width"
msgstr "Độ rộng thành tối thiểu lớp đầu tiên"
@@ -19848,8 +21394,11 @@ msgstr "Độ rộng đường cầu không được vượt quá đường kín
msgid "too large line width "
msgstr "độ rộng đường quá lớn "
-msgid " not in range "
-msgstr " không trong phạm vi "
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% nằm ngoài khoảng [%2%, %3%]"
msgid "This exports the project as a 3MF file."
msgstr "Xuất dự án dưới dạng 3MF."
@@ -19999,6 +21548,14 @@ msgstr "Tùy chọn định hướng"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "Tùy chọn định hướng: 0-tắt, 1-bật, khác-tự động"
+# AI Translated
+msgid "Repair"
+msgstr "Sửa"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "Sửa lưới của các mô hình như Sửa model: bịt kín lỗ hổng và vết nứt, định hướng mặt ra ngoài và loại bỏ các chỗ tự giao cắt."
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "Góc xoay xung quanh trục Z tính bằng độ."
@@ -20107,6 +21664,12 @@ msgstr "Thư mục đầu ra"
msgid "This is the output directory for exported files."
msgstr "Thư mục đầu ra cho các file được xuất."
+msgid "Export statistics"
+msgstr ""
+
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr ""
+
msgid "Debug level"
msgstr "Mức gỡ lỗi"
@@ -20273,6 +21836,56 @@ msgstr "Có nạp MM extruder đơn"
msgid "Are the extra multi-material priming regions used in this print?"
msgstr "Các vùng nạp đa vật liệu bổ sung có được sử dụng trong bản in này không?"
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "Extruder đầu tiên không có support"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "Chỉ số dựa trên không của extruder đầu tiên được dùng để in không có support. Giống như initial_no_support_tool."
+
+# AI Translated
+# Needs human review: Placeholder label; 'head wrap' is a Bambu term (filament wrapping the printhead) left in English, check whether a Vietnamese term exists.
+msgid "In head wrap detect zone"
+msgstr "Trong vùng phát hiện head wrap"
+
+# AI Translated
+# Needs human review: 'head wrap' (filament wrapping the printhead) left in English; check for a Vietnamese term.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "Cho biết lớp đầu tiên có chồng lên vùng head wrap hay không."
+
+# AI Translated
+msgid "Current bed type"
+msgstr "Loại bàn in hiện tại"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "Tên của loại bàn in đang được chọn (ví dụ 'Textured PEI Plate', 'Smooth High Temp Plate')."
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "Chế độ hoạt động IDEX/IQEX"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "Tên của chế độ in song song IDEX/IQEX đang hoạt động cho plate này (ví dụ 'primary', 'mirror', 'copy'). Chuỗi rỗng nếu IDEX/IQEX không được bật."
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "Chỉ số chế độ hoạt động IDEX/IQEX"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "Chỉ số dựa trên không của chế độ in song song IDEX/IQEX đang hoạt động trong imex_mode_names."
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "G-code của chế độ hoạt động IDEX/IQEX"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "Mẫu G-code thô của chế độ in song song IDEX/IQEX đang hoạt động, sau khi đánh giá trình giữ chỗ. Các biến toàn cục được định nghĩa ở đây được truyền vào machine_start_gcode."
+
msgid "Volume per extruder"
msgstr "Khối lượng trên mỗi extruder"
@@ -20433,6 +22046,18 @@ msgstr "Tên file đầu vào không có phần mở rộng"
msgid "Source filename of the first object, without extension."
msgstr "Tên file nguồn của đối tượng đầu tiên, không có phần mở rộng."
+# AI Translated
+msgid "Full input filename"
+msgstr "Tên file đầu vào đầy đủ"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "Tên file nguồn của vật thể đầu tiên."
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "Tên của plate được slice."
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "Vector có hai phần tử: tọa độ x và y của điểm. Giá trị tính bằng mm."
@@ -20463,6 +22088,58 @@ msgstr "Góc trên-phải của hộp giới hạn bàn in"
msgid "Size of the print bed bounding box"
msgstr "Kích thước của hộp giới hạn bàn in"
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "Tâm lớp đầu tiên không có wipe tower"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "Chiều cao của lớp đầu tiên."
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "Vector nhiệt độ bàn in cho từng extruder/filament."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "Vector nhiệt độ bàn in lớp đầu tiên cho từng extruder/filament. Cho cùng giá trị với first_layer_bed_temperature."
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "Nhiệt độ bàn in lớp đầu tiên (extruder đầu tiên)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "Nhiệt độ bàn in lớp đầu tiên cho extruder đầu tiên. Giống như bed_temperature_initial_layer[initial_extruder]"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "Vector nhiệt độ buồng cho từng extruder/filament."
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "Vector nhiệt độ buồng tối thiểu cho từng extruder/filament."
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "Nhiệt độ buồng tổng thể"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "Nhiệt độ buồng tổng thể. Giá trị này là nhiệt độ buồng tối đa của bất kỳ extruder/filament nào được dùng."
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "Vector nhiệt độ bàn in lớp đầu tiên cho từng extruder/filament. Cho cùng giá trị với bed_temperature_initial_layer."
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "Nhiệt độ lớp đầu tiên"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "Vector nhiệt độ lớp đầu tiên cho từng extruder/filament."
+
msgid "Timestamp"
msgstr "Dấu thời gian"
@@ -20508,8 +22185,9 @@ msgstr "Tên của máy in vật lý được sử dụng để slice."
msgid "Layer number"
msgstr "Số lớp"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "Chỉ số của lớp hiện tại. Dựa trên một (tức là lớp đầu tiên là số 1)."
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "Chỉ số của lớp hiện tại. Bắt đầu từ 0 (tức lớp đầu tiên là số 0), ngoại trừ trong G-code đổi vai trò đùn, nơi chỉ số bắt đầu từ 1."
msgid "Layer Z"
msgstr "Lớp Z"
@@ -20529,6 +22207,252 @@ msgstr "ID extruder filament"
msgid "The current extruder ID. The same as current_extruder."
msgstr "ID extruder hiện tại. Giống như current_extruder."
+# AI Translated
+msgid "Previous extruder"
+msgstr "Extruder trước"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "Chỉ số của extruder đang được tháo. Chỉ số dựa trên không (extruder đầu tiên có chỉ số 0)."
+
+# AI Translated
+msgid "Next extruder"
+msgstr "Extruder kế tiếp"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "Chỉ số của extruder đang được nạp. Chỉ số dựa trên không (extruder đầu tiên có chỉ số 0)."
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "Trục E tương đối"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "Cho biết có đang dùng định vị tương đối hay không."
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "Số lần đổi công cụ"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "Số lần đổi công cụ trong suốt bản in."
+
+# AI Translated
+msgid "Old retract length"
+msgstr "Độ dài rút cũ"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "Độ dài rút của filament trước."
+
+# AI Translated
+msgid "New retract length"
+msgstr "Độ dài rút mới"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "Độ dài rút của filament mới."
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "Độ dài rút cũ khi đổi công cụ"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "Độ dài rút khi đổi công cụ của filament trước."
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "Độ dài rút mới khi đổi công cụ"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "Độ dài rút khi đổi công cụ của filament mới."
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "Nhiệt độ filament cũ"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "Nhiệt độ của filament cũ."
+
+# AI Translated
+msgid "New filament temp"
+msgstr "Nhiệt độ filament mới"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "Nhiệt độ của filament mới."
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "X sau khi đổi công cụ"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "Vị trí X sau khi đổi công cụ."
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "Y sau khi đổi công cụ"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "Vị trí Y sau khi đổi công cụ."
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "Z sau khi đổi công cụ"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "Vị trí Z sau khi đổi công cụ."
+
+# AI Translated
+msgid "First flush volume"
+msgstr "Thể tích xả đầu tiên"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "Thể tích xả đầu tiên."
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "Thể tích xả thứ hai"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "Thể tích xả thứ hai."
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "Tốc độ cấp E của filament cũ"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "Tốc độ cấp của extruder cho filament cũ."
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "Tốc độ cấp E của filament mới"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "Tốc độ cấp của extruder cho filament mới."
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "X của điểm di chuyển 1"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "Tọa độ X của điểm di chuyển 1."
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "Y của điểm di chuyển 1"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "Tọa độ Y của điểm di chuyển 1."
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "X của điểm di chuyển 2"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "Tọa độ X của điểm di chuyển 2."
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "Y của điểm di chuyển 2"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "Tọa độ Y của điểm di chuyển 2."
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "X của điểm di chuyển 3"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "Tọa độ X của điểm di chuyển 3."
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "Y của điểm di chuyển 3"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "Tọa độ Y của điểm di chuyển 3."
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "Độ dài xả 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "Độ dài xả đầu tiên."
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "Độ dài xả 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "Độ dài xả thứ hai."
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "Độ dài xả 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "Độ dài xả thứ ba."
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "Độ dài xả 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "Độ dài xả thứ tư."
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "Vai trò đùn"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Vai trò/loại đùn mới sắp được dùng\n"
+"Giá trị có thể có:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "Vai trò đùn cuối cùng"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"Vai trò/loại đùn đã dùng trước đó\n"
+"Giá trị có thể có:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "Lỗi trong file nén zip"
@@ -20541,24 +22465,32 @@ msgstr "Đang tạo vùng infill"
msgid "Generating infill toolpath"
msgstr "Đang tạo đường dẫn công cụ infill"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Lớp Z được xử lý đường bao %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "Phát hiện phần nhô để tự động nâng"
msgid "Checking support necessity"
msgstr "Đang kiểm tra cần thiết support"
-msgid "floating regions"
-msgstr "vùng nổi"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "Có vẻ vật thể %1% có các vùng lơ lửng. Vui lòng định hướng lại vật thể hoặc bật tạo support."
-msgid "floating cantilever"
-msgstr "công xôn nổi"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "Có vẻ vật thể %1% có phần công xôn lơ lửng. Vui lòng định hướng lại vật thể hoặc bật tạo support."
-msgid "large overhangs"
-msgstr "phần nhô lớn"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "Có vẻ đối tượng %s có %s. Vui lòng định hướng lại đối tượng hoặc bật tạo support."
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "Có vẻ vật thể %1% có phần nhô lớn. Vui lòng định hướng lại vật thể hoặc bật tạo support."
msgid "Generating support"
msgstr "Đang tạo support"
@@ -20569,8 +22501,9 @@ msgstr "Đang tối ưu hóa đường dẫn công cụ"
msgid "Slicing mesh"
msgstr "Đang slice mesh"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "Không phát hiện lớp nào. Bạn có thể muốn sửa chữa file STL của mình hoặc kiểm tra kích thước hoặc độ dày của chúng và thử lại.\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "Không phát hiện lớp nào. Bạn có thể cần sửa chữa mô hình hoặc kiểm tra kích thước hoặc độ dày của nó rồi thử lại.\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -20589,6 +22522,398 @@ msgstr ""
msgid "Object name"
msgstr "Tên đối tượng"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "Không thể áp dụng toán tử dấu trừ một ngôi."
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "Không thể chuyển đổi sang số nguyên."
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "Không thể làm tròn một giá trị không phải số."
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "Không thể làm tròn xuống một giá trị không phải số."
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "Không thể làm tròn lên một giá trị không phải số."
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "Không thể áp dụng toán tử not."
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "Không thể cộng các kiểu không phải số."
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "Không thể trừ các kiểu không phải số."
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "Không thể nhân với kiểu không phải số."
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "Không thể chia một kiểu không phải số."
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "Không thể chia cho một kiểu không phải số."
+
+# AI Translated
+msgid "Division by zero"
+msgstr "Chia cho không"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "Không phải biểu thức boolean"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "Không thể so sánh các kiểu này."
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "Không phải kiểu số."
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits: tham số thứ hai phải là số nguyên"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits: tham số thứ ba phải là số nguyên"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "Vế trái của phép so khớp biểu thức chính quy phải là một chuỗi."
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "Biên dịch biểu thức chính quy thất bại: %1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "Tham số đầu tiên của regex_replace() phải là một chuỗi."
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of(): Tham số đầu tiên (chuỗi để so khớp) phải là một giá trị chuỗi"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of(): Mẫu phải là một giá trị chuỗi"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "Biên dịch biểu thức chính quy thất bại"
+
+# AI Translated
+# Needs human review: Source says 'operators' but means operands (the values operated on); translated as 'toán hạng'.
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "Không thể áp dụng phép toán logic cho các toán hạng không phải boolean."
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "Đang cố lập chỉ mục một biến vô hướng"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "Chỉ số vector không hợp lệ"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "Biến không tồn tại (trong nhánh không hoạt động)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "Biến không tồn tại"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "Đang cố tham chiếu một biến tùy chọn chưa được định nghĩa (nil)"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "Lập chỉ mục một biến vector rỗng"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "Đang cố tham chiếu một phần tử chưa được định nghĩa (nil) của vector giá trị tùy chọn"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "Biến dùng để lập chỉ mục phải là số nguyên"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "Chỉ số vector âm"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "Không phải tên biến"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "Không phải tên biến (trong nhánh không hoạt động)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "Biến FloatOrPercent không giải quyết được các phụ thuộc \"ratio_over\""
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "Kiểu biến vô hướng không được hỗ trợ"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "Tham chiếu một biến vector trong khi cần biến vô hướng"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "Kiểu biến vector không được hỗ trợ"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "Không thể sửa đổi biến chỉ đọc"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "Vế phải không phải biểu thức số"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "Cần số phần tử để điền vào vector."
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "Số phần tử được chỉ định là số âm."
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "Vế phải không phải biểu thức boolean"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "Kiểu biến vô hướng đầu ra không được hỗ trợ"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "Tham chiếu một biến vector đầu ra trong khi cần biến vô hướng"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "Chỉ số nằm ngoài phạm vi"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "Kiểu biến vector đầu ra không được hỗ trợ"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "Ký hiệu đã được định nghĩa trong từ điển hệ thống chỉ đọc"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "Ký hiệu đã được định nghĩa là biến đầu ra của hệ thống"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "Biến toàn cục không khả dụng trong ngữ cảnh này"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "Tên biến đã được định nghĩa trong phạm vi cục bộ"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "Tên biến đã được định nghĩa trong phạm vi toàn cục"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "Không thể gán giá trị vô hướng cho biến vector."
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "Không thể gán giá trị vector cho biến vô hướng."
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "Không thể tạo biến vector từ danh sách khởi tạo rỗng, vì không thể suy ra kiểu của nó."
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "Vế phải không hợp lệ: Trộn lẫn kiểu số và kiểu boolean."
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "Không thể gán giá trị vô hướng cho vector"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "Một số phần tử của biến vector giá trị tùy chọn ở vế phải chưa được định nghĩa (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "Vế trái là vector số thực, trong khi vế phải thì không."
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "Vế trái là vector số nguyên, trong khi vế phải thì không."
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "Vế trái là vector chuỗi, trong khi vế phải thì không."
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "Vế trái là vector boolean, trong khi vế phải thì không."
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "Các vector vế trái / vế phải không tương thích."
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "Không hỗ trợ nhân đôi loại biến vector này"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "Tham số của empty() không phải biến vector"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "Tham số của size() không phải biến vector"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "Không cho phép dùng chỉ số không phải số nguyên để truy cập biến vector."
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "Bộ tạo số ngẫu nhiên không khả dụng trong ngữ cảnh này."
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "Lỗi phân tích cú pháp tại dòng %1%: %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "Lỗi phân tích cú pháp tại dòng %1%. Cần thẻ %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "Lỗi phân tích cú pháp tại dòng %1%. %2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "Giá trị nội suy phải là một số."
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "Giá trị X của một điểm trong bảng phải là một số."
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "Giá trị Y của một điểm trong bảng phải là một số."
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "Tọa độ X của bảng phải tăng dần"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "Giá trị nội suy nằm ngoài phạm vi của bảng"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "Lỗi cú pháp không xác định"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "Văn bản không hợp lệ."
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "Khối văn bản không hợp lệ."
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "Macro không hợp lệ."
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "Không phải macro {if}{else}{endif}."
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "Không phải macro {switch}."
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "Cần định dạng khai triển biến kiểu cũ"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "Cần một định danh."
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "Cần một biểu thức điều kiện."
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "Cần một biểu thức boolean."
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "Cần một biểu thức."
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "Cần dấu ngoặc nhọn đóng hoặc một tham số tùy chọn."
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "Cần một danh sách mẫu chuỗi (văn bản đơn giản hoặc biểu thức chính quy)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "Cần một tham chiếu biến."
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "Cần một tên biến."
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "Cần một biểu thức chính quy."
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "Chuỗi utf8 không hợp lệ"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "Ký tự không thuộc ASCII7 chỉ được phép trong khối văn bản và chuỗi ký tự, không được dùng trong khối mã."
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "Chuỗi thoát không hợp lệ"
+
msgid "Support: generate contact points"
msgstr "Support: tạo điểm tiếp xúc"
@@ -20606,6 +22931,10 @@ msgstr "File được cung cấp không thể đọc được vì nó trống"
msgid "The file format is incompatible and cannot be parsed."
msgstr "Định dạng tệp không tương thích nên không thể phân tích."
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "Không thể chuyển đổi tài nguyên sang STL qua ModelIO."
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "Định dạng file không xác định. File đầu vào phải có phần mở rộng .stl, .obj, .amf(.xml)."
@@ -20654,9 +22983,6 @@ msgstr "Hiệu chỉnh lại"
msgid "Calibrate"
msgstr "Hiệu chỉnh"
-msgid "Finish"
-msgstr "Hoàn thành"
-
msgid "How can I use calibration results?"
msgstr "Cách sử dụng kết quả hiệu chỉnh?"
@@ -20754,9 +23080,11 @@ msgstr ""
"Trong cùng một extruder, tên(%s) phải là duy nhất khi loại filament, đường kính đầu phun và lưu lượng đầu phun giống nhau.\n"
"Bạn có chắc muốn ghi đè kết quả lịch sử không?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "Loại máy này chỉ có thể giữ %d kết quả lịch sử trên mỗi đầu phun. Kết quả này sẽ không được lưu."
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "Loại máy này chỉ có thể giữ %d kết quả lịch sử trên mỗi đầu phun. Kết quả này sẽ không được lưu."
msgid "Connecting to printer..."
msgstr "Đang kết nối với máy in..."
@@ -20983,9 +23311,12 @@ msgid "Please connect the printer first before synchronizing."
msgstr "Vui lòng kết nối máy in trước khi đồng bộ."
# AI Translated
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "Thông tin đầu phun của máy in %s chưa được đặt. Vui lòng cấu hình trước khi tiến hành hiệu chỉnh."
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Thông tin đầu phun phải của máy in chưa được đặt. Vui lòng cấu hình trước khi tiến hành hiệu chỉnh."
+
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Thông tin đầu phun trái của máy in chưa được đặt. Vui lòng cấu hình trước khi tiến hành hiệu chỉnh."
# AI Translated
msgid "AMS and nozzle information are synced"
@@ -21053,6 +23384,11 @@ msgstr "Từ tốc độ thể tích"
msgid "To Volumetric Speed"
msgstr "Đến tốc độ thể tích"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "Bước"
+
msgid "Are you sure you want to cancel this print?"
msgstr "Bạn có chắc chắn muốn hủy lần in này?"
@@ -21079,9 +23415,11 @@ msgstr "Lưu ý: Số hiệu hotend trên %s gắn với giá đỡ. Khi hotend
msgid "Action"
msgstr "Hành động"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "Loại máy này chỉ có thể giữ %d kết quả lịch sử trên mỗi đầu phun."
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "Loại máy này chỉ có thể giữ %d kết quả lịch sử trên mỗi đầu phun."
msgid "Edit Flow Dynamics Calibration"
msgstr "Chỉnh sửa hiệu chỉnh động lực lưu lượng"
@@ -21212,12 +23550,13 @@ msgstr ""
"Giá trị gia tốc phải lớn hơn giá trị tốc độ.\n"
"Vui lòng kiểm tra lại dữ liệu nhập."
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "Chưa được bật trên máy in băng chuyền — hãy dùng phương pháp Tháp PA thay thế."
+
msgid "Temperature calibration"
msgstr "Hiệu chỉnh nhiệt độ"
-msgid "Filament type"
-msgstr "Loại filament"
-
msgid "PLA"
msgstr "PLA"
@@ -21239,6 +23578,19 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "Model kiểm tra"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "Tiêu chuẩn"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "Phần nhô"
+
msgid "Start temp: "
msgstr "Nhiệt độ bắt đầu: "
@@ -21365,9 +23717,6 @@ msgstr "Độ dài rút bắt đầu: "
msgid "End retraction length: "
msgstr "Độ dài rút kết thúc: "
-msgid "Test model"
-msgstr "Model kiểm tra"
-
msgid "Ringing Tower"
msgstr "Tháp rung"
@@ -21402,8 +23751,13 @@ msgstr ""
msgid "Frequency (Start / End): "
msgstr "Tần số (Bắt đầu / Kết thúc): "
-msgid "Start / End"
-msgstr "Bắt đầu / Kết thúc"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X Bắt đầu / Kết thúc: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y Bắt đầu / Kết thúc: "
msgid "Frequency settings"
msgstr "Cài đặt tần số"
@@ -21444,8 +23798,13 @@ msgstr "Kiểm tra tính tương thích của firmware."
msgid "Frequency: "
msgstr "Tần số: "
-msgid "Damp"
-msgstr "Giảm chấn"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "Tần số X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "Giảm chấn (Bắt đầu / Kết thúc): "
# AI Translated
msgid "RepRap firmware uses the same frequency for both axes."
@@ -21591,8 +23950,9 @@ msgstr "Bật IFS"
# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "Đã phát hiện %d khe IFS trên máy in."
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "Đã phát hiện %d khe IFS trên máy in."
# AI Translated
msgid "This printer does not report a material station."
@@ -21722,8 +24082,10 @@ msgstr "Trừ từ"
msgid "Subtract with"
msgstr "Trừ với"
-msgid "selected"
-msgstr "đã chọn"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "1 đã chọn"
msgid "Part 1"
msgstr "Phần 1"
@@ -21837,9 +24199,6 @@ msgstr "ví dụ Cơ bản, Mờ, Lụa, Đá cẩm thạch"
msgid "Filament Preset"
msgstr "Cài đặt sẵn filament"
-msgid "Create"
-msgstr "Tạo"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "Nhà cung cấp không được chọn, vui lòng chọn lại nhà cung cấp."
@@ -22154,6 +24513,10 @@ msgstr ""
"Máy in và tất cả các loại sợi in 3D cùng các cài đặt quy trình đi kèm với máy in.\n"
"Có thể chia sẻ với người khác."
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "Bao gồm kết cấu và mô hình bàn in tùy chỉnh"
+
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
@@ -22205,13 +24568,6 @@ msgstr "Lưu ý: Nếu cài đặt sẵn duy nhất dưới filament này bị x
msgid "Presets inherited by other presets cannot be deleted"
msgstr "Cài đặt sẵn được kế thừa bởi cài đặt sẵn khác không thể bị xóa"
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "Các cài đặt sẵn sau kế thừa cài đặt sẵn này."
-
-msgid "Delete Preset"
-msgstr "Xóa cài đặt sẵn"
-
msgid "Are you sure to delete the selected preset?"
msgstr "Bạn có chắc chắn xóa cài đặt sẵn đã chọn không?"
@@ -22293,11 +24649,13 @@ msgid "The number of printer extruders and the printer selected for calibration
msgstr "Số lượng extruder của máy in và máy in được chọn để hiệu chỉnh không khớp nhau."
# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
msgstr "Đường kính đầu phun của extruder %s là 0.2mm nên không hỗ trợ hiệu chỉnh Flow Dynamics tự động."
# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -22315,6 +24673,13 @@ msgstr ""
"Vui lòng nhấn nút Đồng bộ ở trên và khởi động lại quá trình hiệu chỉnh."
# AI Translated
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "Thông tin đầu phun của máy in %s chưa được đặt. Vui lòng cấu hình trước khi tiến hành hiệu chỉnh."
+
+# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -22392,6 +24757,12 @@ msgstr "Phát hiện máy in Creality dòng K"
msgid "Click Scan to look for K-series printers on your network."
msgstr "Nhấn Quét để tìm các máy in dòng K trên mạng của bạn."
+# AI Translated
+# Needs human review: Printer model column label; the existing 'Printer model' entry uses 'Model máy in', check this short form fits.
+msgctxt "Printer model"
+msgid "Model"
+msgstr "Kiểu máy"
+
# AI Translated
msgid "Scan"
msgstr "Quét"
@@ -22414,8 +24785,9 @@ msgstr "Không tìm thấy máy in dòng K nào. Hãy đảm bảo máy in ở c
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "Đã tìm thấy %zu máy in Creality. Hãy chọn một máy rồi nhấn Dùng máy đã chọn."
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "Đã tìm thấy %zu máy in Creality. Hãy chọn máy đó rồi nhấn Dùng máy đã chọn."
# AI Translated
msgid "Active"
@@ -22534,8 +24906,11 @@ msgid "Failed to launch a new instance."
msgstr "Khởi chạy instance mới thất bại."
# AI Translated
-msgid "log(s)"
-msgstr "nhật ký"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d nhật ký (%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -22590,17 +24965,37 @@ msgid "Authorizing..."
msgstr "Đang xác thực..."
# AI Translated
-msgid "Error. Can't get API token for authorization"
-msgstr "Lỗi. Không lấy được token api để xác thực"
+msgid "Maximum login retries exceeded"
+msgstr "Đã vượt quá số lần thử đăng nhập tối đa"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "Lỗi HTTP: %1%"
# AI Translated
msgid "Could not parse server response."
msgstr "Không phân tích được phản hồi từ máy chủ."
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "Lỗi. Không lấy được token api để xác thực"
+
# AI Translated
msgid "Error saving session to file"
msgstr "Lỗi khi lưu phiên vào file"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "Kết nối với cloud 3DPrinterOS hoạt động chính xác."
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "Đã đăng nhập với tư cách người dùng: %1%"
+
# AI Translated
msgid "Error session check"
msgstr "Lỗi khi kiểm tra phiên"
@@ -22637,6 +25032,42 @@ msgstr "Mật khẩu sai"
msgid "Could not get resources to create a new connection"
msgstr "Không thể lấy tài nguyên để tạo kết nối mới"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "Kết nối với UltiMaker hoạt động chính xác."
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "Không thể kết nối với UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "Lỗi khi tạo thông tin xác thực! Xem nhật ký để biết chi tiết."
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "LỖI: ID hoặc KEY bị trống. ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "Tên người dùng: %1% Mật khẩu: %2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "Thông tin xác thực đang chờ phê duyệt. Vui lòng phê duyệt quyền truy cập qua hộp thoại trên màn hình của máy in."
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "Thông tin xác thực không hợp lệ"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "Lỗi: Không tìm thấy thông tin xác thực!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "Tải lên không được bật trên thẻ FlashAir."
@@ -22754,6 +25185,14 @@ msgstr ""
"Nội dung thông báo: \"%1%\"\n"
"Lỗi: \"%2%\""
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "Kết nối với ESP3D hoạt động chính xác."
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "Không thể kết nối với ESP3D"
+
msgid "No AMS"
msgstr "Không có AMS"
@@ -22825,6 +25264,11 @@ msgstr "Số lượng máy in tối đa có thể chọn là %d"
msgid "No task"
msgstr "Không có tác vụ"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "Xem"
+
msgid "Edit Printers"
msgstr "Chỉnh sửa máy in"
@@ -22866,6 +25310,11 @@ msgstr "In thất bại"
msgid "Printing Pause"
msgstr "Tạm dừng in"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "Đang chuẩn bị"
+
msgid "Pending"
msgstr "Đang chờ"
@@ -22898,10 +25347,6 @@ msgstr "Bật gán filament thông minh: Gán một filament cho nhiều đầu
msgid "File Saving"
msgstr "Lưu tệp"
-# AI Translated
-msgid "Don't remind me again"
-msgstr "Đừng nhắc tôi nữa"
-
# AI Translated
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
msgstr "Sẽ không có cửa sổ bật lên nào nữa. Bạn có thể mở lại trong 'Tùy chọn'"
@@ -22934,18 +25379,25 @@ msgstr "Gán filament thủ công cho đầu phun trái hoặc phải"
msgid "Global settings"
msgstr "Cài đặt toàn cục"
-# AI Translated
-msgid "Video tutorial"
-msgstr "Video hướng dẫn"
-
# AI Translated
msgid "(Sync with printer)"
msgstr "(Đồng bộ với máy in)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "Lỗi: extruder %s không có đầu phun %s khả dụng, kết quả nhóm hiện tại không hợp lệ."
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Lỗi: extruder trái không có đầu phun Tiêu chuẩn khả dụng, kết quả nhóm hiện tại không hợp lệ."
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Lỗi: extruder trái không có đầu phun Lưu lượng cao khả dụng, kết quả nhóm hiện tại không hợp lệ."
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "Lỗi: extruder phải không có đầu phun Tiêu chuẩn khả dụng, kết quả nhóm hiện tại không hợp lệ."
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "Lỗi: extruder phải không có đầu phun Lưu lượng cao khả dụng, kết quả nhóm hiện tại không hợp lệ."
# AI Translated
msgid "We will slice according to this grouping method:"
@@ -22991,9 +25443,6 @@ msgstr "Không thể kết nối với SimplyPrint"
msgid "Internal error"
msgstr "Lỗi nội bộ"
-msgid "Unknown error"
-msgstr "Lỗi không xác định"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "Tài khoản SimplyPrint chưa được liên kết. Đến tùy chọn Kết nối để thiết lập."
@@ -23001,6 +25450,16 @@ msgstr "Tài khoản SimplyPrint chưa được liên kết. Đến tùy chọn
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge trả về phản hồi JSON không hợp lệ."
+# AI Translated
+msgid "Request failed"
+msgstr "Yêu cầu thất bại"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Lỗi API cục bộ của Flashforge %1%: %2%"
+
# AI Translated
msgid "No Flashforge printers were discovered on the local network."
msgstr "Không phát hiện máy in Flashforge nào trên mạng cục bộ."
@@ -23184,8 +25643,11 @@ msgstr "Cảnh báo: Loại vành không được đặt thành \"được vẽ\
msgid "Set the brim type of this object to \"painted\""
msgstr "Đặt loại vành của đối tượng này thành \"được vẽ\""
-msgid "invalid brim ears"
-msgstr " tai vành không hợp lệ"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d tai brim không hợp lệ"
msgid "Brim Ears"
msgstr "Tai vành"
@@ -23218,6 +25680,7 @@ msgid "Failed to create the temporary folder."
msgstr "Tạo thư mục tạm thất bại."
# AI Translated
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d đã chọn"
@@ -23244,8 +25707,9 @@ msgstr "Tác vụ in sẽ bị dừng lại. Tiếp tục?"
# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "Đang bỏ qua %d vật thể."
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "Đang bỏ qua %d vật thể."
# AI Translated
msgid "This action cannot be undone. Continue?"
@@ -23432,6 +25896,42 @@ msgstr "Nếu bật, các giá trị ở trên sẽ được lưu làm mặc đ
msgid "PresetBundle"
msgstr "PresetBundle"
+# AI Translated
+msgid "Export Presets"
+msgstr "Xuất cài đặt sẵn"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "Hiện trong thư mục"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "Xóa gói"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "Hủy đăng ký gói"
+
+# AI Translated
+msgid "Update available"
+msgstr "Có bản cập nhật"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "Gói chưa được cấp phép"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "Mở gói này trong trình duyệt"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "Đã đăng ký"
+
+# AI Translated
+msgid "Local"
+msgstr "Cục bộ"
+
# AI Translated
msgid "Bundle folder does not exist."
msgstr "Thư mục gói không tồn tại."
@@ -23476,6 +25976,14 @@ msgstr "Hủy đăng ký gói"
msgid "ExportPresetBundle"
msgstr "ExportPresetBundle"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "Xuất lên OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "Xuất ra thư mục"
+
# AI Translated
msgid "Save preset bundle"
msgstr "Lưu gói cài đặt sẵn"
@@ -23577,6 +26085,11 @@ msgstr "Kiểm soát độ khô AMS"
msgid "Filament Drying Settings"
msgstr "Cài đặt sấy filament"
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "h"
+
# AI Translated
msgid "Stopping"
msgstr "Đang dừng"
@@ -23756,6 +26269,11 @@ msgstr "Đang bắt đầu: Kiểm tra cửa hút khí"
msgid "Starting: Checking air vent"
msgstr "Đang bắt đầu: Kiểm tra cửa thoát khí"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "Không thể tạo thư mục %1%"
+
# AI Translated
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "Filament có thể không tương thích với cài đặt máy hiện tại. Cài đặt sẵn filament chung sẽ được dùng."
@@ -23776,6 +26294,105 @@ msgstr "Filament có thể không tương thích với cài đặt máy hiện t
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "Không rõ mẫu filament. Một cài đặt sẵn filament ngẫu nhiên sẽ được dùng."
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "File cấu hình không xác định: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "File cấu hình không hợp lệ: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "khe %1% -> khe %2%: filament pha trộn"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "định nghĩa filament pha trộn: đã đạt giới hạn khe filament"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "đã đạt giới hạn khe filament"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "giới hạn filament của máy in là %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "khe %1% -> khe %2%: filament pha trộn chưa được gán (giới hạn filament của máy in là %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "khe %1%: filament pha trộn chưa được gán (giới hạn filament của máy in là %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "khe %1%: %2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "khe %1%: không thể nhập định nghĩa filament pha trộn"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "cần ít nhất hai thành phần"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "các thành phần tham chiếu đến khe bị thiếu"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "định nghĩa filament pha trộn: %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "khe %1%: không thể nhập định nghĩa filament pha trộn (%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "khe %1%: %2% -> %3% (thay thế)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"Tải file cấu hình %1% thất bại\n"
+"Đề xuất dọn dẹp thư mục %2% trước"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Phiên bản cấu hình của nhà cung cấp %1%: %2% không hợp lệ\n"
+"Đề xuất dọn dẹp thư mục %3% trước"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"Tải file cấu hình %1% thất bại: %2%\n"
+"Đề xuất dọn dẹp thư mục %3% trước"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "Ẩn các mặt phẳng tham chiếu và trục"
@@ -24089,6 +26706,11 @@ msgstr "Không có khối bề mặt để làm dày — hãy tạo một đặc
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "Chuẩn / Đường cong (mặt phẳng / trục / hệ tọa độ / đường xoắn ốc / chiếu)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "Mặt phẳng"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "Mặt phẳng tham chiếu (dời song song / nghiêng / mặt giữa / tiếp tuyến / hai cạnh / trùng)"
@@ -24155,6 +26777,11 @@ msgstr "Di chuyển và/hoặc xoay một khối hiện có"
msgid "Transform needs a body — add or import one first"
msgstr "Biến đổi cần một khối — hãy thêm hoặc nhập một khối trước"
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "Lấy đối xứng"
+
# AI Translated
msgid "Reflect a body about a plane"
msgstr "Lấy đối xứng một khối qua một mặt phẳng"
@@ -24248,6 +26875,11 @@ msgstr "(không có)"
msgid "Hole / thread"
msgstr "Lỗ / ren"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "Lỗ"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "Khoan một lỗ, căn tâm trên một mặt đã chọn hoặc đặt trên một mặt phẳng"
@@ -24292,6 +26924,11 @@ msgstr "Nhấn 2 điểm hoặc một đường thẳng / đường tròn / cung
msgid "Line / polyline"
msgstr "Đường thẳng / đa tuyến"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "Đường thẳng"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
msgstr "Nhấn điểm đầu, rồi điểm cuối — sau đó đặt độ dài chính xác"
@@ -24428,6 +27065,9 @@ msgstr "Spline"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "Nhấn các điểm điều khiển; nhấp đúp, nhấn chuột phải hoặc nhấn Enter để kết thúc"
+msgid "Point"
+msgstr "Điểm"
+
# AI Translated
msgid "Click to place a point"
msgstr "Nhấn để đặt một điểm"
@@ -24546,16 +27186,15 @@ msgstr "Chọn các thực thể, kéo tay nắm góc quét, nhấn vào số l
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "Nhấn tâm rồi một đỉnh — %d cạnh, %s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "Nhấn tâm rồi một đỉnh — %d cạnh, ngoại tiếp"
# AI Translated
-msgid "circumscribed"
-msgstr "ngoại tiếp"
-
-# AI Translated
-msgid "inscribed"
-msgstr "nội tiếp"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "Nhấn tâm rồi một đỉnh — %d cạnh, nội tiếp"
# AI Translated
msgid "Polygon"
@@ -24892,6 +27531,11 @@ msgstr "Trên mặt"
msgid "Thread plane"
msgstr "Mặt phẳng ren"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "Tiêu chuẩn"
+
# AI Translated
msgid "Pitch"
msgstr "Bước ren"
@@ -25079,6 +27723,9 @@ msgstr "Chọn một mặt của khối đặc để mở, rồi đặt độ d
msgid "(pick a side face)"
msgstr "(chọn một mặt bên)"
+msgid "Face"
+msgstr "Mặt"
+
# AI Translated
msgid "Draft"
msgstr "Thoát khuôn"
@@ -25457,8 +28104,9 @@ msgstr "Đã cập nhật phác thảo"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "Đã tạo phác thảo (%zu kích thước điều khiển) — chọn nó, rồi nhấn chuột phải để Đùn"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "Đã tạo phác thảo (%zu kích thước điều khiển) — chọn nó, rồi nhấn chuột phải để Đùn"
# AI Translated
#, c-format, boost-format
@@ -25592,8 +28240,9 @@ msgstr "Đang chỉnh sửa: Phác thảo %d · N = nhìn vuông góc với
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "OK — %zu tam giác"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "OK — %zu tam giác"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
@@ -25678,10 +28327,14 @@ msgstr "Lưới không chứa tam giác nào"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
"Lưới này có %d tam giác. Mỗi tam giác sẽ trở thành một mặt B-rep trước khi gộp các mặt đồng phẳng, nên việc nhập có thể mất nhiều thời gian và tạo ra một khối chỉnh sửa chậm. Thường tốt hơn là giảm số tam giác của lưới trước.\n"
"\n"
"Vẫn nhập?"
@@ -25710,8 +28363,8 @@ msgstr "Nhập lưới thất bại: %s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "Đã nhập khối đặc — %d tam giác → %d mặt, thể tích %.2f mm³. Chọn một mặt hoặc cạnh, rồi dùng Bo tròn / Cắt / Vỏ mỏng để chỉnh sửa"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "Đã nhập khối đặc — tam giác: %d → mặt: %d, thể tích %.2f mm³. Chọn một mặt hoặc cạnh, rồi dùng Bo tròn / Cắt / Vỏ mỏng để chỉnh sửa"
# AI Translated
#, c-format, boost-format
@@ -25728,8 +28381,10 @@ msgid "%s added to the sketch — Confirm to commit it"
msgstr "Đã thêm %s vào phác thảo — Xác nhận để áp dụng"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — kéo để đặt vị trí/kích thước, rồi Xác nhận"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s — kéo để đặt vị trí/kích thước, rồi Xác nhận"
# AI Translated
msgid "Insert canceled"
@@ -25935,9 +28590,11 @@ msgid "a geometry operation failed"
msgstr "một thao tác hình học đã thất bại"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · đã chọn %d"
+msgid_plural " · %d picked"
+msgstr[0] " · đã chọn %d"
# AI Translated
#, c-format, boost-format
@@ -25952,7 +28609,8 @@ msgstr "Chọn — nhấn một thực thể để chọn · kéo một điể
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "Đã chọn %d · giờ hãy chọn một ràng buộc (Ngang, Song song, Tiếp tuyến, Bằng nhau…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "Đã chọn %d · giờ hãy chọn một ràng buộc (Ngang, Song song, Tiếp tuyến, Bằng nhau…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
@@ -26213,7 +28871,8 @@ msgstr "Lấy đối xứng — đã đặt trục · giờ hãy nhấn các t
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "Lấy đối xứng — đã đặt trục · %d thực thể cần lấy đối xứng · nhấn thực thể khác để thêm hoặc bỏ · Enter để áp dụng"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "Lấy đối xứng — đã đặt trục · %d thực thể cần lấy đối xứng · nhấn thực thể khác để thêm hoặc bỏ · Enter để áp dụng"
# AI Translated
msgid "Move — click the entities to move"
@@ -26335,8 +28994,9 @@ msgstr "Điểm phác thảo"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d thực thể phác thảo"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d thực thể phác thảo"
# AI Translated
msgid "select something first"
@@ -26871,8 +29531,10 @@ msgid "Applied edit"
msgstr "Đã áp dụng chỉnh sửa"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — nhập một giá trị, nhấn Enter (hoặc Xác nhận)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s — nhập một giá trị, nhấn Enter (hoặc Xác nhận)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -26944,10 +29606,23 @@ msgstr "Đưa lên plate — gửi khối đặc sang Chuẩn bị"
msgid "Nothing to commit — add a feature first"
msgstr "Không có gì để đưa lên plate — hãy thêm một đặc trưng trước"
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "Khối thiết kế %d"
+
# AI Translated
msgid "All bodies hidden — show one before committing"
msgstr "Tất cả khối đều đang ẩn — hãy hiện một khối trước khi đưa lên plate"
+# AI Translated
+msgid "Design Assembly"
+msgstr "Lắp ráp thiết kế"
+
+# AI Translated
+msgid "Design Body"
+msgstr "Khối thiết kế"
+
# AI Translated
#, c-format
msgid "%zu edge"
@@ -27013,8 +29688,9 @@ msgstr "Không hợp lệ: %s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "Xem trước — %zu tam giác"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "Xem trước — %zu tam giác"
# AI Translated
#, c-format, boost-format
@@ -27114,8 +29790,9 @@ msgstr "Không thể thỏa mãn kích thước đó — phác thảo bị thừ
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "%1% ràng buộc không thể tác động lên hình học này (đường cong elip hoặc spline, hoặc đường tròn có kích thước bằng không) và bị bỏ qua"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% ràng buộc không thể tác động lên hình học này (đường cong elip hoặc spline, hoặc đường tròn có kích thước bằng không) và bị bỏ qua"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -27173,8 +29850,9 @@ msgstr "Vát cạnh: khoảng cách vượt quá độ dài một cạnh của g
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "Đã xóa %1% ràng buộc bị bo tròn/vát cạnh làm mất hiệu lực"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "Đã xóa %1% ràng buộc bị bo tròn/vát cạnh làm mất hiệu lực"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
@@ -27194,8 +29872,9 @@ msgstr "Số bản sao phải là số nguyên từ 2 trở lên"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "Phép biến đổi đã gỡ bỏ %1% ràng buộc"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "Phép biến đổi đã gỡ bỏ %1% ràng buộc"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
@@ -27346,11 +30025,6 @@ msgstr "Làm dày bề mặt"
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
msgstr "Làm dày bề mặt cần một khối bề mặt — hãy tạo một khối bằng công cụ Bề mặt trước"
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "Lỗ"
-
# AI Translated
msgctxt "Design"
msgid "Thread"
@@ -27435,11 +30109,6 @@ msgstr "Mảng tròn"
msgid "Repeat the body around an axis — set the count and sweep"
msgstr "Lặp lại khối quanh một trục — đặt số lượng và góc quét"
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "Lấy đối xứng"
-
# AI Translated
msgctxt "Design"
msgid "Pattern on Curve"
@@ -27476,11 +30145,6 @@ msgstr "Căn chỉnh cần một khối — hãy thêm hoặc nhập một khố
msgid "Align the body to a picked face or plane"
msgstr "Căn khối theo một mặt hoặc mặt phẳng đã chọn"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "Mặt phẳng"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -27586,11 +30250,6 @@ msgstr "Xóa khối"
msgid "Delete this whole body — removes the feature it was made from"
msgstr "Xóa toàn bộ khối này — xóa cả đặc trưng tạo ra nó"
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "Đường thẳng"
-
# AI Translated
msgctxt "Design"
msgid "Polyline"
@@ -27905,213 +30564,6 @@ msgstr "Font này không có đường viền cho chữ này"
msgid "Size: %.1f × %.1f mm"
msgstr "Kích thước: %.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "Hình nguyên thủy"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "Đã tạo lưới rỗng"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "Hộp"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "Nhanh:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "Độ rộng (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "Độ sâu (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "Chiều cao (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "R đáy"
-
-# AI Translated
-msgid "Top R"
-msgstr "R đỉnh"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "R lớn"
-
-# AI Translated
-msgid "Minor R"
-msgstr "R nhỏ"
-
-# AI Translated
-msgid "All edges"
-msgstr "Tất cả cạnh"
-
-# AI Translated
-msgid "Top edges"
-msgstr "Cạnh trên"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "Cạnh dưới"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "Cạnh bên"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "Độ phân giải lưới"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "Thêm hình"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "Không có biên dạng ngoài"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "Không thể tạo mặt ngoài"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "Không thể tạo mặt có lỗ"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "Tròn xoay thất bại"
-
-# AI Translated
-msgid "Profile"
-msgstr "Biên dạng"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "Bắt đầu biên dạng mới (cho lỗ)"
-
-# AI Translated
-msgid "Segments"
-msgstr "Số đoạn"
-
-# AI Translated
-msgid "Sides"
-msgstr "Số cạnh"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "Nhấn vào khung vẽ để vẽ"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "Bám theo lưới"
-
-# AI Translated
-msgid "Grid step"
-msgstr "Bước lưới"
-
-# AI Translated
-msgid "Outer"
-msgstr "Ngoài"
-
-# AI Translated
-msgid "closed"
-msgstr "khép kín"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%: %3% điểm %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY (Trên)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ (Trước)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ (Bên)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "Góc tròn xoay"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "Đặt 0 để đùn, >0 để tạo khối tròn xoay"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "Khoét hốc (cắt)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu biên dạng khép kín"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "Vẽ một biên dạng khép kín để bật"
-
-# AI Translated
-msgid "Clear all"
-msgstr "Xóa tất cả"
-
-# AI Translated
-msgid "Empty result"
-msgstr "Kết quả rỗng"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "Đùn: %1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "Tròn xoay: %1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "Chưa chọn vật thể nào"
-
-# AI Translated
-msgid "Face failed"
-msgstr "Tạo mặt thất bại"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "Tạo mặt có lỗ thất bại"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "Lưới công cụ rỗng"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "Đã thêm hốc (thể tích âm)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "Khoét hốc: %1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -28235,6 +30687,10 @@ msgstr "Gizmo lắp ráp"
msgid "Gizmo brim ears"
msgstr "Gizmo tai viền"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "Gizmo vẽ dịch chuyển kết cấu"
+
msgid "Vertical slider - Move active thumb Up"
msgstr "Thanh trượt dọc - Di chuyển nút hoạt động lên"
@@ -28469,6 +30925,12 @@ msgstr "cần một mặt trụ ở cả hai đầu — đầu nối %1% nằm t
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
msgstr "cần một mặt trụ ở cả hai đầu — đầu nối %1% nằm trên mặt cong"
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1% (thiếu mặt phẳng gốc)"
+
# AI Translated
msgid "two points are coincident"
msgstr "hai điểm trùng nhau"
@@ -28497,10 +30959,31 @@ msgstr "các mặt phẳng song song (không có giao tuyến)"
msgid "zero-length direction"
msgstr "hướng có độ dài bằng không"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "một đặc trưng tác động lên khối %1%, vốn không tồn tại tại thời điểm đó trong lịch sử"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "\"%1%\" tác động lên một khối do một đặc trưng đã bị xóa hoặc ẩn tạo ra"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "\"%1%\" tác động lên một khối không tồn tại tại thời điểm đó trong lịch sử"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "đặc trưng đang được một đặc trưng phía sau sử dụng"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "\"%1%\" dùng \"%2%\", nên không thể đứng trước nó"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "các thực thể phác thảo không tạo thành vòng khép kín"
@@ -28511,9 +30994,18 @@ msgid "Open at (%.3f, %.3f)"
msgstr "Hở tại (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...và thêm %1% đầu hở khác"
+msgid "Open ends not shown: %1%"
+msgstr "Các đầu hở không hiển thị: %1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "tròn xoay: đường trục không còn trong phác thảo — hãy chọn lại trục"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "tròn xoay: đường trục không có độ dài"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
@@ -28661,6 +31153,30 @@ msgstr "tạo đường bao lỗ thất bại"
msgid "hole cut failed"
msgstr "cắt lỗ thất bại"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "ren: đường kính phải ít nhất 1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "ren: bước ren phải lớn hơn 0.1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "ren: độ sâu phải nằm giữa 0 và 0.7 x bước ren"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "ren: độ sâu quá lớn so với đường kính này"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "ren: chiều dài phải lớn hơn nửa bước ren"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "ren: quá nhiều vòng (chiều dài / bước ren phải dưới 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "ren trong cần một khối"
@@ -28721,6 +31237,22 @@ msgstr "xóa mặt thất bại"
msgid "delete_face produced no geometry"
msgstr "xóa mặt không tạo ra hình học nào"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "boolean: không có khối đích"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "boolean: không có khối công cụ — hãy chọn khối thứ hai"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "boolean: khối đích và khối công cụ là cùng một khối"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "boolean: có một khối không có hình học"
+
# AI Translated
msgid "boolean operation failed"
msgstr "thao tác Boolean thất bại"
@@ -29049,6 +31581,10 @@ msgstr "Ảnh mô hình"
msgid "Auxiliaries"
msgstr "Phụ trợ"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "Tháp xả băng chuyền"
+
# AI Translated
msgid "Project Filament List"
msgstr "Danh sách filament của dự án"
@@ -29083,8 +31619,16 @@ msgstr "Cần ít nhất hai filament cùng loại vật liệu để phân tác
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "Danh sách vật liệu hỗ trợ tối đa %1% màu. Sau khi phân tách %2%, số vật liệu sẽ vượt quá %1%. Vui lòng xóa các filament không dùng trên màn hình chính trước khi phân tách."
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Danh sách vật liệu hỗ trợ tối đa %1% màu. Sau khi phân tách Danh sách vật liệu, số vật liệu sẽ vượt quá %1%. Vui lòng xóa các filament không dùng trên màn hình chính trước khi phân tách."
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "Danh sách vật liệu hỗ trợ tối đa %1% màu. Sau khi phân tách %2%, số vật liệu sẽ vượt quá %1%. Vui lòng xóa các filament không dùng trên màn hình chính trước khi phân tách."
# AI Translated
msgid "Cyan"
@@ -29114,6 +31658,13 @@ msgstr "Xanh lá"
msgid "Blue"
msgstr "Xanh dương"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr ", "
@@ -29121,7 +31672,1234 @@ msgstr ", "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "Danh sách filament hiện tại không chứa %s. Một filament dự án mà filament pha trộn cần sẽ được tạo tự động sau khi phân tách."
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "Danh sách filament hiện tại không chứa %s. Một filament dự án mà filament pha trộn cần sẽ được tạo tự động sau khi phân tách."
+
+msgid "Color Picker"
+msgstr ""
+
+msgid "Basic Colors"
+msgstr ""
+
+msgid "Orca Palette"
+msgstr ""
+
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr ""
+
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr ""
+
+msgid "Solid"
+msgstr ""
+
+msgid "Gradient"
+msgstr ""
+
+msgid "Gradient start"
+msgstr ""
+
+msgid "Gradient end"
+msgstr ""
+
+msgid "Gradient color"
+msgstr ""
+
+msgid "Add color"
+msgstr ""
+
+msgid "Remove color"
+msgstr ""
+
+msgid "Saturation"
+msgstr ""
+
+msgid "Original color"
+msgstr ""
+
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr ""
+
+msgid "Palettes"
+msgstr ""
+
+msgid "Search colors"
+msgstr ""
+
+msgid "Filter colors"
+msgstr ""
+
+msgid "No matching colors"
+msgstr ""
+
+msgid "Hex color"
+msgstr ""
+
+# AI Translated
+msgid "Opacity"
+msgstr "Độ đục"
+
+msgid "Opacity percent"
+msgstr ""
+
+msgid "Save color"
+msgstr ""
+
+msgid "Enter a complete hexadecimal color"
+msgstr ""
+
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr ""
+
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr ""
+
+msgid "Crimson"
+msgstr ""
+
+msgid "Orange red"
+msgstr ""
+
+msgid "Tomato"
+msgstr ""
+
+msgid "Orange"
+msgstr ""
+
+msgid "Dark orange"
+msgstr ""
+
+msgid "Gold"
+msgstr ""
+
+msgid "Burly wood"
+msgstr ""
+
+msgid "Bisque"
+msgstr ""
+
+msgid "Misty rose"
+msgstr ""
+
+msgid "Light yellow"
+msgstr ""
+
+msgid "Lemon chiffon"
+msgstr ""
+
+msgid "Beige"
+msgstr ""
+
+msgid "Light golden rod yellow"
+msgstr ""
+
+msgid "Pale golden rod"
+msgstr ""
+
+msgid "Khaki"
+msgstr ""
+
+msgid "Dark khaki"
+msgstr ""
+
+msgid "Peach puff"
+msgstr ""
+
+msgid "Moccasin"
+msgstr ""
+
+msgid "Papaya whip"
+msgstr ""
+
+msgid "Blanched almond"
+msgstr ""
+
+msgid "Antique white"
+msgstr ""
+
+msgid "Navajo white"
+msgstr ""
+
+msgid "Wheat"
+msgstr ""
+
+msgid "Golden rod"
+msgstr ""
+
+msgid "Chocolate"
+msgstr ""
+
+msgid "Peru"
+msgstr ""
+
+msgid "Fire brick"
+msgstr ""
+
+msgid "Sienna"
+msgstr ""
+
+msgid "Saddle brown"
+msgstr ""
+
+msgid "Brown"
+msgstr ""
+
+msgid "Rosy brown"
+msgstr ""
+
+msgid "Salmon"
+msgstr ""
+
+msgid "Light salmon"
+msgstr ""
+
+msgid "Dark salmon"
+msgstr ""
+
+msgid "Sandy brown"
+msgstr ""
+
+msgid "Coral"
+msgstr ""
+
+msgid "Light coral"
+msgstr ""
+
+msgid "Indian red"
+msgstr ""
+
+msgid "Dark red"
+msgstr ""
+
+msgid "Maroon"
+msgstr ""
+
+msgid "Green yellow"
+msgstr ""
+
+msgid "Yellow green"
+msgstr ""
+
+msgid "Chartreuse"
+msgstr ""
+
+msgid "Lawn green"
+msgstr ""
+
+msgid "Lime green"
+msgstr ""
+
+msgid "Spring green"
+msgstr ""
+
+msgid "Medium spring green"
+msgstr ""
+
+msgid "Lime"
+msgstr ""
+
+msgid "Forest green"
+msgstr ""
+
+msgid "Dark green"
+msgstr ""
+
+msgid "Olive drab"
+msgstr ""
+
+msgid "Olive"
+msgstr ""
+
+msgid "Dark olive green"
+msgstr ""
+
+msgid "Pale green"
+msgstr ""
+
+msgid "Light green"
+msgstr ""
+
+msgid "Medium sea green"
+msgstr ""
+
+msgid "Sea green"
+msgstr ""
+
+msgid "Dark sea green"
+msgstr ""
+
+msgid "Cadet blue"
+msgstr ""
+
+msgid "Medium aqua marine"
+msgstr ""
+
+msgid "Turquoise"
+msgstr ""
+
+msgid "Medium turquoise"
+msgstr ""
+
+msgid "Dark turquoise"
+msgstr ""
+
+msgid "Pale turquoise"
+msgstr ""
+
+msgid "Aqua"
+msgstr ""
+
+msgid "Light cyan"
+msgstr ""
+
+msgid "Mint cream"
+msgstr ""
+
+msgid "Honey dew"
+msgstr ""
+
+msgid "Aquamarine"
+msgstr ""
+
+msgid "Light sea green"
+msgstr ""
+
+msgid "Dark cyan"
+msgstr ""
+
+msgid "Teal"
+msgstr ""
+
+msgid "Dark slate gray"
+msgstr ""
+
+msgid "Light slate gray"
+msgstr ""
+
+msgid "Slate gray"
+msgstr ""
+
+msgid "Deep sky blue"
+msgstr ""
+
+msgid "Dodger Blue"
+msgstr ""
+
+msgid "Sky blue"
+msgstr ""
+
+msgid "Light sky blue"
+msgstr ""
+
+msgid "Light blue"
+msgstr ""
+
+msgid "Powder blue"
+msgstr ""
+
+msgid "Light steel blue"
+msgstr ""
+
+msgid "Steel blue"
+msgstr ""
+
+msgid "Cornflower blue"
+msgstr ""
+
+msgid "Royal blue"
+msgstr ""
+
+msgid "Medium blue"
+msgstr ""
+
+msgid "Midnight blue"
+msgstr ""
+
+msgid "Dark blue"
+msgstr ""
+
+msgid "Navy"
+msgstr ""
+
+msgid "Slate blue"
+msgstr ""
+
+msgid "Dark slate blue"
+msgstr ""
+
+msgid "Medium slate blue"
+msgstr ""
+
+msgid "Blue violet"
+msgstr ""
+
+msgid "Indigo"
+msgstr ""
+
+msgid "Dark violet"
+msgstr ""
+
+msgid "Dark orchid"
+msgstr ""
+
+msgid "Medium orchid"
+msgstr ""
+
+msgid "Orchid"
+msgstr ""
+
+msgid "Violet"
+msgstr ""
+
+msgid "Medium purple"
+msgstr ""
+
+msgid "Purple"
+msgstr ""
+
+msgid "Rebecca purple"
+msgstr ""
+
+msgid "Medium violet red"
+msgstr ""
+
+msgid "PaleV violet red"
+msgstr ""
+
+msgid "Deep pink"
+msgstr ""
+
+msgid "Hot pink"
+msgstr ""
+
+msgid "Light pink"
+msgstr ""
+
+msgid "Pink"
+msgstr ""
+
+msgid "Plum"
+msgstr ""
+
+msgid "Thistle"
+msgstr ""
+
+msgid "Fuchsia"
+msgstr ""
+
+msgid "Dark magenta"
+msgstr ""
+
+msgid "Linen"
+msgstr ""
+
+msgid "Old lace"
+msgstr ""
+
+msgid "Sea shell"
+msgstr ""
+
+msgid "Ivory"
+msgstr ""
+
+msgid "Floral white"
+msgstr ""
+
+msgid "Lavender blush"
+msgstr ""
+
+msgid "Ghost white"
+msgstr ""
+
+msgid "Alice blue"
+msgstr ""
+
+msgid "Lavender"
+msgstr ""
+
+msgid "White smoke"
+msgstr ""
+
+msgid "Gainsboro"
+msgstr ""
+
+msgid "Black"
+msgstr ""
+
+msgid "Coral fire"
+msgstr ""
+
+msgid "Sea anemone"
+msgstr ""
+
+msgid "Deep abyss"
+msgstr ""
+
+msgid "Lobster red"
+msgstr ""
+
+msgid "Sandy clay"
+msgstr ""
+
+msgid "Driftwood"
+msgstr ""
+
+msgid "Sea buckthorn"
+msgstr ""
+
+msgid "Sunset reef"
+msgstr ""
+
+msgid "Tiger coral"
+msgstr ""
+
+msgid "Pink coral"
+msgstr ""
+
+msgid "Seashell glow"
+msgstr ""
+
+msgid "Sand"
+msgstr ""
+
+msgid "Golden kelp"
+msgstr ""
+
+msgid "Sunlit dune"
+msgstr ""
+
+msgid "Amber nautilus"
+msgstr ""
+
+msgid "Sea lemon"
+msgstr ""
+
+msgid "Pale starfish"
+msgstr ""
+
+msgid "Spring tide"
+msgstr ""
+
+msgid "Lime algae"
+msgstr ""
+
+msgid "Sea grass"
+msgstr ""
+
+msgid "Neon plankton"
+msgstr ""
+
+msgid "Kelp forest"
+msgstr ""
+
+msgid "Emerald wave"
+msgstr ""
+
+msgid "Whale shadow"
+msgstr ""
+
+msgid "Sea turtle"
+msgstr ""
+
+msgid "Lagoon"
+msgstr ""
+
+msgid "Tropical current"
+msgstr ""
+
+msgid "Midnight trench"
+msgstr ""
+
+msgid "Dark kelp"
+msgstr ""
+
+msgid "Crystal surf"
+msgstr ""
+
+msgid "Turquoise bay"
+msgstr ""
+
+msgid "Sky over reef"
+msgstr ""
+
+msgid "Shallow sky"
+msgstr ""
+
+msgid "Electric bel"
+msgstr ""
+
+msgid "Dolphin"
+msgstr ""
+
+msgid "Ocean depths"
+msgstr ""
+
+msgid "Whale"
+msgstr ""
+
+msgid "Indigo abyss"
+msgstr ""
+
+msgid "Sea urchin"
+msgstr ""
+
+msgid "Lavender coral"
+msgstr ""
+
+msgid "Violet tide"
+msgstr ""
+
+msgid "Deep sea orchid"
+msgstr ""
+
+msgid "Neon jelly"
+msgstr ""
+
+msgid "Fuchsia coral"
+msgstr ""
+
+msgid "Pink jellyfish"
+msgstr ""
+
+msgid "Foam"
+msgstr ""
+
+msgid "Seashell white"
+msgstr ""
+
+msgid "Pebble gray"
+msgstr ""
+
+msgid "Storm cloud"
+msgstr ""
+
+msgid "Ink black"
+msgstr ""
+
+msgid "Green beige"
+msgstr ""
+
+msgid "Sand yellow"
+msgstr ""
+
+msgid "Signal yellow"
+msgstr ""
+
+msgid "Golden yellow"
+msgstr ""
+
+msgid "Honey yellow"
+msgstr ""
+
+msgid "Maize yellow"
+msgstr ""
+
+msgid "Dalmatian yellow"
+msgstr ""
+
+msgid "Brown beige"
+msgstr ""
+
+msgid "Lemon yellow"
+msgstr ""
+
+msgid "Oyster white"
+msgstr ""
+
+msgid "Light ivory"
+msgstr ""
+
+msgid "Zinc yellow"
+msgstr ""
+
+msgid "Grey beige"
+msgstr ""
+
+msgid "Olive yellow"
+msgstr ""
+
+msgid "Rape yellow"
+msgstr ""
+
+msgid "Traffic yellow"
+msgstr ""
+
+msgid "Ochre yellow"
+msgstr ""
+
+msgid "Traffic orange yellow"
+msgstr ""
+
+msgid "Curry"
+msgstr ""
+
+msgid "Melon yellow"
+msgstr ""
+
+msgid "Broom yellow"
+msgstr ""
+
+msgid "Dahlia yellow"
+msgstr ""
+
+msgid "Pastel yellow"
+msgstr ""
+
+msgid "Pearl beige"
+msgstr ""
+
+msgid "Pearl gold"
+msgstr ""
+
+msgid "Sun yellow"
+msgstr ""
+
+msgid "Yellow orange"
+msgstr ""
+
+msgid "Deep orange"
+msgstr ""
+
+msgid "Vermilion"
+msgstr ""
+
+msgid "Pearl orange"
+msgstr ""
+
+msgid "Pure orange"
+msgstr ""
+
+msgid "Luminous orange"
+msgstr ""
+
+msgid "Luminous bright orange"
+msgstr ""
+
+msgid "Bright red orange"
+msgstr ""
+
+msgid "Traffic orange"
+msgstr ""
+
+msgid "Signal orange"
+msgstr ""
+
+msgid "Salmon orange"
+msgstr ""
+
+msgid "Pearl pink"
+msgstr ""
+
+msgid "Copper orange"
+msgstr ""
+
+msgid "Signal brown"
+msgstr ""
+
+msgid "Fir orange"
+msgstr ""
+
+msgid "Signal red"
+msgstr ""
+
+msgid "Luminous red"
+msgstr ""
+
+msgid "Carmine red"
+msgstr ""
+
+msgid "Pearl carmine red"
+msgstr ""
+
+msgid "Pure red"
+msgstr ""
+
+msgid "Luminous deep red"
+msgstr ""
+
+msgid "Currant red"
+msgstr ""
+
+msgid "Pearl ruby red"
+msgstr ""
+
+msgid "Fire red"
+msgstr ""
+
+msgid "Ruby red"
+msgstr ""
+
+msgid "Purple red"
+msgstr ""
+
+msgid "Wine red"
+msgstr ""
+
+msgid "Black red"
+msgstr ""
+
+msgid "Oxide red"
+msgstr ""
+
+msgid "Brown red"
+msgstr ""
+
+msgid "Pine red"
+msgstr ""
+
+msgid "Tomato red"
+msgstr ""
+
+msgid "Antique pink"
+msgstr ""
+
+msgid "Coral red"
+msgstr ""
+
+msgid "Rose"
+msgstr ""
+
+msgid "Strawberry red"
+msgstr ""
+
+msgid "Traffic red"
+msgstr ""
+
+msgid "Salmon pink"
+msgstr ""
+
+msgid "Luminous rose"
+msgstr ""
+
+msgid "Luminous bright red"
+msgstr ""
+
+msgid "Raspberry red"
+msgstr ""
+
+msgid "Orient red"
+msgstr ""
+
+msgid "Pearl ruby"
+msgstr ""
+
+msgid "Red purple"
+msgstr ""
+
+msgid "Red violet"
+msgstr ""
+
+msgid "Heather violet"
+msgstr ""
+
+msgid "Bordeaux violet"
+msgstr ""
+
+msgid "Mahogany"
+msgstr ""
+
+msgid "Grey purple"
+msgstr ""
+
+msgid "Signal violet"
+msgstr ""
+
+msgid "Fir green"
+msgstr ""
+
+msgid "Sabine grey"
+msgstr ""
+
+msgid "Pearl violet"
+msgstr ""
+
+msgid "Pearl blackberry"
+msgstr ""
+
+msgid "Green blue"
+msgstr ""
+
+msgid "Ultramarine blue"
+msgstr ""
+
+msgid "Sapphire blue"
+msgstr ""
+
+msgid "Black blue"
+msgstr ""
+
+msgid "Signal blue"
+msgstr ""
+
+msgid "Brilliant blue"
+msgstr ""
+
+msgid "Grey blue"
+msgstr ""
+
+msgid "Azure blue"
+msgstr ""
+
+msgid "Gentian blue"
+msgstr ""
+
+msgid "Cobalt blue"
+msgstr ""
+
+msgid "Pigeon blue"
+msgstr ""
+
+msgid "Traffic blue"
+msgstr ""
+
+msgid "Turquoise blue"
+msgstr ""
+
+msgid "Capsanthin violet"
+msgstr ""
+
+msgid "Ocean blue"
+msgstr ""
+
+msgid "Water blue"
+msgstr ""
+
+msgid "Night blue"
+msgstr ""
+
+msgid "Distant blue"
+msgstr ""
+
+msgid "Pastel blue"
+msgstr ""
+
+msgid "Pearl gentian blue"
+msgstr ""
+
+msgid "Pearl midnight blue"
+msgstr ""
+
+msgid "Patina green"
+msgstr ""
+
+msgid "Emerald green"
+msgstr ""
+
+msgid "Leaf green"
+msgstr ""
+
+msgid "Olive green"
+msgstr ""
+
+msgid "Blue green"
+msgstr ""
+
+msgid "Moss green"
+msgstr ""
+
+msgid "Grey olive"
+msgstr ""
+
+msgid "Pine green"
+msgstr ""
+
+msgid "Pine brown"
+msgstr ""
+
+msgid "Grass green"
+msgstr ""
+
+msgid "Reseda green"
+msgstr ""
+
+msgid "Brown green"
+msgstr ""
+
+msgid "Reed green"
+msgstr ""
+
+msgid "Black green"
+msgstr ""
+
+msgid "Turquoise green"
+msgstr ""
+
+msgid "May green"
+msgstr ""
+
+msgid "Chrome oxide green"
+msgstr ""
+
+msgid "Traffic green"
+msgstr ""
+
+msgid "Fern green"
+msgstr ""
+
+msgid "Opal green"
+msgstr ""
+
+msgid "Mint green"
+msgstr ""
+
+msgid "Bronze green"
+msgstr ""
+
+msgid "Pearl green"
+msgstr ""
+
+msgid "Sax turquoise"
+msgstr ""
+
+msgid "Pearl turquoise"
+msgstr ""
+
+msgid "Pearl jade"
+msgstr ""
+
+msgid "Pure green"
+msgstr ""
+
+msgid "Luminous green"
+msgstr ""
+
+msgid "Squirrel grey"
+msgstr ""
+
+msgid "Silver grey"
+msgstr ""
+
+msgid "Olivestone"
+msgstr ""
+
+msgid "Moss grey"
+msgstr ""
+
+msgid "Signal grey"
+msgstr ""
+
+msgid "Mouse grey"
+msgstr ""
+
+msgid "Beige grey"
+msgstr ""
+
+msgid "Khaki grey"
+msgstr ""
+
+msgid "Green grey"
+msgstr ""
+
+msgid "Tarpaulin grey"
+msgstr ""
+
+msgid "Iron grey"
+msgstr ""
+
+msgid "Basalt grey"
+msgstr ""
+
+msgid "Brown grey"
+msgstr ""
+
+msgid "Slate grey"
+msgstr ""
+
+msgid "Anthracite grey"
+msgstr ""
+
+msgid "Light grey"
+msgstr ""
+
+msgid "Umber grey"
+msgstr ""
+
+msgid "Concrete grey"
+msgstr ""
+
+msgid "Graphite grey"
+msgstr ""
+
+msgid "Granite grey"
+msgstr ""
+
+msgid "Stone grey"
+msgstr ""
+
+msgid "Pebble grey"
+msgstr ""
+
+msgid "Cement grey"
+msgstr ""
+
+msgid "Yellow grey"
+msgstr ""
+
+msgid "Platinum grey"
+msgstr ""
+
+msgid "Dusty grey"
+msgstr ""
+
+msgid "Agate grey"
+msgstr ""
+
+msgid "Quartz grey"
+msgstr ""
+
+msgid "Window grey"
+msgstr ""
+
+msgid "Traffic grey A"
+msgstr ""
+
+msgid "Traffic grey B"
+msgstr ""
+
+msgid "Silk grey"
+msgstr ""
+
+msgid "Telegrey 1"
+msgstr ""
+
+msgid "Telegrey 2"
+msgstr ""
+
+msgid "Telegrey 4"
+msgstr ""
+
+msgid "Pearl mouse grey"
+msgstr ""
+
+msgid "Green brown"
+msgstr ""
+
+msgid "Ochre brown"
+msgstr ""
+
+msgid "Clay brown"
+msgstr ""
+
+msgid "Copper brown"
+msgstr ""
+
+msgid "Chocolate brown"
+msgstr ""
+
+msgid "Olive brown"
+msgstr ""
+
+msgid "Nut brown"
+msgstr ""
+
+msgid "Red brown"
+msgstr ""
+
+msgid "Sepia brown"
+msgstr ""
+
+msgid "Chestnut brown"
+msgstr ""
+
+msgid "Mahogany brown"
+msgstr ""
+
+msgid "Grey brown"
+msgstr ""
+
+msgid "Pearl copper"
+msgstr ""
+
+msgid "Beige brown"
+msgstr ""
+
+msgid "Pearl mocha brown"
+msgstr ""
+
+msgid "Earth brown"
+msgstr ""
+
+msgid "Pearl brown"
+msgstr ""
+
+msgid "Cream"
+msgstr ""
+
+msgid "Grey white"
+msgstr ""
+
+msgid "Signal white"
+msgstr ""
+
+msgid "Signal black"
+msgstr ""
+
+msgid "Jet black"
+msgstr ""
+
+msgid "White aluminium"
+msgstr ""
+
+msgid "Grey aluminium"
+msgstr ""
+
+msgid "Pure white"
+msgstr ""
+
+msgid "Graphite black"
+msgstr ""
+
+msgid "Traffic white"
+msgstr ""
+
+msgid "Traffic black"
+msgstr ""
+
+msgid "Papyrus white"
+msgstr ""
+
+msgid "Pearl light grey"
+msgstr ""
+
+msgid "Metal: Silver"
+msgstr ""
+
+msgid "Metal: Brass"
+msgstr ""
+
+msgid "Metal: Gold"
+msgstr ""
+
+msgid "Metal: Copper"
+msgstr ""
+
+msgid "Metal: Bronze"
+msgstr ""
+
+msgid "Nature: Pearl"
+msgstr ""
+
+msgid "Nature: Rainbow"
+msgstr ""
+
+msgid "Nature: Clear Sky"
+msgstr ""
+
+msgid "Nature: Sunset"
+msgstr ""
+
+msgid "Wood: Dark"
+msgstr ""
+
+msgid "Wood: Medium"
+msgstr ""
+
+msgid "Wood: Light"
+msgstr ""
# AI Translated
msgid "Alternate nozzles:"
@@ -29217,10 +32995,6 @@ msgstr "Cài đặt của tôi"
msgid "Custom Printer Setup"
msgstr "Thiết lập máy in tùy chỉnh"
-# AI Translated
-msgid "Custom Printer"
-msgstr "Máy in tùy chỉnh"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "Định nghĩa hồ sơ máy in tùy chỉnh"
@@ -29488,6 +33262,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "Nướng"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "Nhập giá trị chính xác vào thanh trượt"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "Biểu tượng chỉnh sửa ở đầu phải thanh trượt"
+
# AI Translated
msgid "Texture displacement"
msgstr "Dịch chuyển kết cấu"
@@ -29624,6 +33406,50 @@ msgstr ""
msgid "Remove texture"
msgstr "Xóa kết cấu"
+# AI Translated
+msgid "Adjust image"
+msgstr "Điều chỉnh ảnh"
+
+# AI Translated
+msgid "Brightness"
+msgstr "Độ sáng"
+
+# AI Translated
+msgid "Contrast"
+msgstr "Độ tương phản"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "Độ sắc nét"
+
+# AI Translated
+msgid "Blur"
+msgstr "Làm mờ"
+
+# AI Translated
+msgid "Hue"
+msgstr "Sắc độ"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "Làm nổi bật các chi tiết nhỏ nhất trong ảnh. Được áp dụng sau Làm mờ, nên có thể dùng cả hai cùng nhau: làm mờ bớt nhiễu hạt, rồi làm sắc nét các cạnh còn lại."
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "Làm mờ chính bức ảnh. Thanh trượt Làm mượt riêng của lớp kết cấu làm mềm phần nổi mà không thay đổi ảnh, và nên thử thanh đó trước."
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "Kết cấu này là thang độ xám, nên không có sắc độ nào để thay đổi."
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "Mô hình được cập nhật khi bạn thả thanh trượt. Lưu thành bản sao ghi ảnh đã điều chỉnh vào thư viện kết cấu của bạn và trỏ lớp kết cấu này tới đó."
+
+# AI Translated
+msgid "Save as copy"
+msgstr "Lưu thành bản sao"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "Xóa lớp dịch chuyển kết cấu"
@@ -29760,6 +33586,15 @@ msgstr "Ghi từng giai đoạn đã ghi lại thành một file OBJ để có t
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "Không thể chuyển vùng đã vẽ sang mô hình đã tạo lại lưới, nên không có gì thay đổi. Hãy chuyển sang chế độ Pro và tạo lại lưới trước khi vẽ."
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "Phạm vi: %1% đến %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "Nhập giá trị thay vì kéo. Ctrl+nhấn vào thanh trượt cũng có tác dụng tương tự."
+
# AI Translated
msgid "Pro"
msgstr "Pro"
@@ -29866,8 +33701,8 @@ msgid "Click a triangle to paint it"
msgstr "Nhấn vào một tam giác để vẽ nó"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "Cần lớp kết cấu đang hoạt động được ánh xạ bằng Trải phẳng (LSCM)."
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "Chỉ dành cho lớp kết cấu được ánh xạ bằng Trải phẳng (LSCM) - đặt Ánh xạ của lớp kết cấu đang hoạt động thành Trải phẳng để dùng chế độ xem này."
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
@@ -29882,16 +33717,16 @@ msgid "Checker"
msgstr "Ô bàn cờ"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "Ô bàn cờ - một lưới kiểm tra thay cho kết cấu. Nơi các ô vẫn vuông thì kết cấu không bị méo; nơi chúng bị kéo giãn thì kết cấu cũng vậy"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "Ô bàn cờ - một lưới kiểm tra thay cho kết cấu. Nơi các ô vẫn vuông thì kết cấu không bị méo; nơi chúng bị kéo giãn thì kết cấu cũng vậy. Mở trình chỉnh sửa UV nếu nó đang đóng"
# AI Translated
msgid "Distortion"
msgstr "Độ méo"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "Độ méo - bản đồ nhiệt độ kéo giãn từ xanh đến đỏ trên phần trải phẳng"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "Độ méo - bản đồ nhiệt thể hiện mức kéo giãn, từ xanh lam đến đỏ, trên phần trải phẳng. Mở trình chỉnh sửa UV nếu nó đang đóng"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
@@ -29917,6 +33752,10 @@ msgstr "Chọn một ảnh khác cho lớp này. Phần vẽ, độ sâu và cá
msgid "not painted"
msgstr "chưa vẽ"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "Độ sáng, độ tương phản, độ sắc nét, làm mờ và sắc độ, hiển thị trên ảnh và trên mô hình khi bạn thiết lập. Lưu thành bản sao ghi kết quả vào thư viện kết cấu của bạn và trỏ lớp kết cấu này tới đó."
+
# AI Translated
msgid "Move up - applied earlier"
msgstr "Di chuyển lên - áp dụng sớm hơn"
@@ -29937,10 +33776,20 @@ msgstr "Chiều cao của phần nổi: màu trắng trong kết cấu nâng b
msgid "Tile size"
msgstr "Kích thước ô"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "Được ánh xạ theo bố cục UV riêng của mô hình, vốn đã là vị trí đặt sẵn - một bản sao của kết cấu phủ vừa khít, nên không có kích thước ô để thiết lập."
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "Chiều rộng của một bản kết cấu trên mô hình. Nhỏ hơn thì mẫu lặp lại nhiều hơn và chi tiết mịn hơn; khi tắt Xếp ô, đây là kích thước của bản duy nhất."
+msgid "Larger"
+msgstr ""
+
+msgid "Smaller"
+msgstr ""
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
msgstr "Xoay kết cấu trên bề mặt, tính bằng độ - để căn mẫu theo một cạnh của mô hình."
@@ -30008,28 +33857,32 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "Đan xen hai filament để mô phỏng các màu trung gian, nhờ đó chỉ vài filament cũng có thể thể hiện một bức ảnh hoặc dải chuyển màu. Ảnh có màu phẳng sẽ in ra giống nhau dù bật hay tắt. Tắt thì mỗi vùng dùng một filament."
# AI Translated
-msgid "Mix by"
-msgstr "Trộn theo"
+msgid "Mixed colors"
+msgstr "Màu pha trộn"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "Bề mặt"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "Số filament pha trộn tối đa mà một lần nướng có thể thêm. Chúng được chọn từ các màu của kết cấu, và chỉ những filament mà lần nướng thực sự dùng mới được tạo."
-# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+msgid "Few"
+msgstr ""
+
+msgid "Many"
msgstr ""
-"Lớp: hai filament luân phiên giữa các lớp in, hòa trộn mượt trên các bề mặt thẳng đứng nhưng biến mất trên các bề mặt nằm ngang, nơi cả một lớp chỉ là một dải màu.\n"
-"Bề mặt: một bàn cờ mịn trên bề mặt, hoạt động ở mọi góc nhưng có thể trông như kết cấu hơn là sự hòa trộn.\n"
-"Tự động: dùng lớp trên các mặt thẳng đứng; các mặt nằm ngang lấy filament đơn gần nhất, vì bàn cờ ở đó sẽ lộ ra thành hoa văn."
# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% màu có thể in từ %2% filament"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "từ %1% filament"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% màu có thể in %2%"
# AI Translated
msgid "Denoise"
@@ -30080,6 +33933,18 @@ msgstr "Từ góc nhìn"
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
msgstr "Từ góc nhìn - chiếu thẳng lên vùng đã vẽ từ vị trí bạn đang nhìn, như một máy chiếu slide."
+# AI Translated
+msgid "Model UV"
+msgstr "UV của mô hình"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "UV của mô hình - dùng tọa độ kết cấu đi kèm với chính mô hình, nên kết cấu được tạo cho mô hình đó sẽ nằm đúng chỗ đã được vẽ. Không có gì được trải phẳng, và Kích thước ô không áp dụng: bố cục riêng của mô hình chính là vị trí đặt."
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "Mô hình này không có tọa độ kết cấu riêng. Chỉ mô hình được nhập kèm kênh UV - chẳng hạn một OBJ có kết cấu - mới có thể được ánh xạ theo chúng."
+
# AI Translated
msgid "Open UV editor"
msgstr "Mở trình chỉnh sửa UV"
@@ -30094,8 +33959,9 @@ msgstr "Chưa trải phẳng"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% mảnh"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% mảnh"
# AI Translated
msgid "Capture current view"
@@ -30125,10 +33991,6 @@ msgstr "Khung chiếu"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "Mở một khung cửa sổ để bạn kéo lên trên mô hình. Những gì bạn nhìn thấy qua khung sẽ nhận kết cấu, và viền khung trở thành mép của vùng chiếu."
-# AI Translated
-msgid "Opacity"
-msgstr "Độ đục"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "Mức độ đặc của khung cửa sổ khi bạn đặt nó. Giảm xuống để nhìn thấy mô hình qua khung; không ảnh hưởng đến kết quả."
@@ -30182,6 +34044,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "Thêm"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "Ghi đè"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -30201,8 +34068,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "Lớp nền không có gì bên dưới để kết hợp, nên luôn ở chế độ Thêm."
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "Tác động của lớp này tại nơi nó chồng lên các lớp bên dưới. Thêm và Trừ đắp thêm hoặc khoét bớt phần nổi. Nhân và Chia co giãn những gì nằm bên dưới, biến lớp này thành một mặt nạ phủ lên đó - khi ấy Độ sâu đóng vai trò như cường độ, và 1 mm giữ nguyên các vùng trắng."
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "Tác động của lớp này tại nơi nó chồng lên các lớp bên dưới. Thêm và Trừ đắp thêm hoặc khoét bớt phần nổi. Ghi đè thay thế chúng, nên chỗ được vẽ chỉ còn phần nổi của lớp này. Nhân và Chia co giãn những gì nằm bên dưới, biến lớp này thành một mặt nạ phủ lên đó - khi ấy Độ sâu đóng vai trò như cường độ, và 1 mm giữ nguyên các vùng trắng."
# AI Translated
msgid "Adjust placement"
@@ -30226,8 +34093,9 @@ msgstr "Nhiều cài đặt hơn"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "Đã dùng hết %1% lớp"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "Đã dùng hết %1% lớp"
# AI Translated
msgid "Add layer"
@@ -30307,8 +34175,9 @@ msgstr "Hạn mức tam giác: đặt bằng Tam giác, bên dưới."
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "Xem trước: %1% tam giác"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "Xem trước: %1% tam giác"
# AI Translated
msgid "Steps"
@@ -30350,6 +34219,12 @@ msgstr "Tạo lại lưới"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "Kích thước tam giác dùng để dựng lại toàn bộ mô hình, tính bằng milimét. Dịch chuyển hoạt động tốt nhất trên lưới đều; đây là cách tạo lưới đều từ một mô hình nhập vào không đều."
+msgid "Before"
+msgstr ""
+
+msgid "After"
+msgstr ""
+
# AI Translated
msgid "Keep sharp edges"
msgstr "Giữ cạnh sắc"
@@ -30484,14 +34359,6 @@ msgstr "Cần khoảng %1% tam giác, hạn mức %2% - quá trình nướng s
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "Số nghìn tam giác mà quá trình tinh chỉnh được phép thêm vào mô hình. Tam giác khớp kém nhất luôn được chia trước, nên kể cả khi dùng hết hạn mức thì cũng đã dùng ở nơi dễ thấy nhất. Tăng nếu phần nổi vẫn trông thô."
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "Dừng quá trình nướng. Những gì đã hoàn tất vẫn được giữ trên mô hình và có thể hoàn tác."
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "Đóng công cụ mà không nướng. Phần vẽ, các lớp kết cấu và cài đặt vẫn được lưu cùng mô hình."
-
# AI Translated
msgid "Preparing..."
msgstr "Đang chuẩn bị..."
@@ -30516,35 +34383,51 @@ msgstr "Biến các bản đồ độ cao đã vẽ thành hình học thực b
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
msgstr "Biến các bản đồ độ cao đã vẽ thành hình học thực. Trước tiên lưới được tạo lại với mật độ đều và được tinh chỉnh ở nơi kết cấu uốn cong, để chi tiết có đỉnh mà bám vào - tất cả trong một bước."
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "Dừng quá trình nướng. Những gì đã hoàn tất vẫn được giữ trên mô hình và có thể hoàn tác."
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "Đóng công cụ mà không nướng. Phần vẽ, các lớp kết cấu và cài đặt vẫn được lưu cùng mô hình."
+
# AI Translated
#, boost-format
msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "Mô hình: %1% tam giác - quá trình nướng tinh chỉnh đến độ phân giải ở trên, trong giới hạn hạn mức"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "Mô hình: %1% tam giác - quá trình nướng tinh chỉnh đến độ phân giải ở trên, trong giới hạn hạn mức"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "Nướng di chuyển các đỉnh sẵn có - mô hình giữ nguyên %1% tam giác"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "Nướng di chuyển các đỉnh sẵn có - mô hình giữ nguyên %1% tam giác"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "Kết quả nướng tối đa ~%1% k tam giác"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "Kết quả nướng tối đa ~%1% k tam giác"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% lớp chưa vẽ, đã bỏ qua"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% lớp chưa vẽ, đã bỏ qua"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% chưa vẽ, đã bỏ qua"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% chưa vẽ, đã bỏ qua"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -30562,6 +34445,10 @@ msgstr "Chỉnh sửa dịch chuyển kết cấu"
msgid "Choose SLA archive:"
msgstr "Chọn file lưu trữ SLA:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "File lưu trữ SL1 / SL1S"
+
# AI Translated
msgid "Import file"
msgstr "Nhập file"
@@ -30732,6 +34619,34 @@ msgstr "Plugin filament"
msgid "Printer plugins"
msgstr "Plugin máy in"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "Cài đặt sẵn này không dùng khả năng nào của plugin"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "Các khả năng được cài đặt sẵn này sử dụng"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "Cấu hình khả năng (JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "Cấu hình plugin"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "Hủy ghi đè của cài đặt sẵn này và dùng lại cấu hình chung"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "Khôi phục mặc định"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "JSON không hợp lệ"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "Cấu hình không phải là JSON hợp lệ. Các thay đổi của bạn chưa được lưu."
@@ -30751,10 +34666,6 @@ msgstr ""
"\n"
"Thao tác này sẽ hủy phần ghi đè của cài đặt sẵn và dùng cấu hình chung."
-# AI Translated
-msgid "Restore defaults"
-msgstr "Khôi phục mặc định"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "Đang dùng cấu hình chung. Hãy lưu cài đặt sẵn để giữ lại thay đổi."
@@ -30780,10 +34691,6 @@ msgstr "Hủy đăng ký"
msgid "Overwrite Plugin"
msgstr "Ghi đè plugin"
-# AI Translated
-msgid "Show in folder"
-msgstr "Hiện trong thư mục"
-
# AI Translated
msgid "Reinstall"
msgstr "Cài đặt lại"
@@ -30792,6 +34699,10 @@ msgstr "Cài đặt lại"
msgid "Delete cache and reload"
msgstr "Xóa bộ nhớ đệm và tải lại"
+# AI Translated
+msgid "No description."
+msgstr "Không có mô tả."
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "Chọn một gói plugin .py hoặc .whl."
@@ -30824,6 +34735,292 @@ msgstr "Đang cài đặt plugin"
msgid "Installed \"%s\"."
msgstr "Đã cài đặt \"%s\"."
+# AI Translated
+msgid "Search plugins"
+msgstr "Tìm kiếm plugin"
+
+# AI Translated
+msgid "Clear search"
+msgstr "Xóa tìm kiếm"
+
+# AI Translated
+msgid "Match case"
+msgstr "Phân biệt chữ hoa/thường"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "Khớp toàn bộ từ"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "Thêm tùy chọn cài đặt plugin"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "Cài đặt plugin"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "Cài đặt plugin cục bộ"
+
+# AI Translated
+msgid "Activate"
+msgstr "Kích hoạt"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "Sắp xếp theo tên"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "Sắp xếp theo phiên bản"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "Phiên bản plugin"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "Sắp xếp theo nguồn"
+
+# AI Translated
+msgid "Source"
+msgstr "Nguồn"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "Sắp xếp theo trạng thái"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "Trạng thái"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "Kéo để đổi kích thước; nhấp đúp để đặt lại"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "Đổi kích thước danh sách plugin"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "Chi tiết plugin"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "Thông tin plugin"
+
+# AI Translated
+msgid "Description"
+msgstr "Mô tả"
+
+# AI Translated
+msgid "Config"
+msgstr "Cấu hình"
+
+# AI Translated
+msgid "Changelog"
+msgstr "Nhật ký thay đổi"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "Chẩn đoán"
+
+# AI Translated
+msgid "Types"
+msgstr "Loại"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "Phiên bản đã cài"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "Phiên bản mới nhất"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "Cập nhật lên phiên bản mới nhất"
+
+# AI Translated
+msgid "No description available"
+msgstr "Không có mô tả"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "Chọn một plugin để cấu hình các khả năng của nó"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "Các khả năng có thể cấu hình"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "Hủy các cài đặt đã lưu cho khả năng này và khôi phục giá trị mặc định của plugin"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "Nhật ký thay đổi của plugin"
+
+# AI Translated
+msgid "Date"
+msgstr "Ngày"
+
+# AI Translated
+msgid "Changes"
+msgstr "Thay đổi"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "Không có nhật ký thay đổi"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "Không phát hiện vấn đề nào"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "Không tìm thấy plugin nào"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "Không có plugin nào khớp với \"%s\""
+
+# AI Translated
+msgid "Mine"
+msgstr "Của tôi"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "Đã đăng ký"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "Mồ côi"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "Cục bộ"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "Một số khả năng của plugin đang được bật"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "Thu gọn các khả năng của %s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "Mở rộng các khả năng của %s"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "Thu gọn các khả năng"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "Mở rộng các khả năng"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "Mở plugin này trong trình duyệt"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "Khả năng: %s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "Khả năng"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "Chạy \"%s\""
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "Bật %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "Không được cấp phép cập nhật"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "Đang tải plugin…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "Plugin này không cung cấp khả năng nào"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "Kích hoạt plugin này để cấu hình các khả năng của nó"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "Xem trên OrcaCloud tại đây "
+
+# AI Translated
+msgid "Activated"
+msgstr "Đã kích hoạt"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "Lỗi khi chạy"
+
+# AI Translated
+msgid "Inactive"
+msgstr "Chưa kích hoạt"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "Plugin này đang hoạt động và sẵn sàng để sử dụng."
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "Plugin này vẫn đang tải."
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "Plugin này bị chặn cho đến khi lỗi của nó được khắc phục."
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "Plugin này đã được tải nhưng một khả năng đã báo lỗi."
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "Plugin này chưa được kích hoạt. Hãy kích hoạt để cài đặt hoặc tải nó."
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "Chọn một plugin để xem trạng thái và chi tiết của nó."
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "Mồ côi: Plugin này không còn được đăng ký hoặc không còn khả dụng trên OrcaCloud. Bản cục bộ vẫn được cài đặt và vẫn có thể sử dụng."
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "Đã có phiên bản plugin mới hơn."
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "Không thể cập nhật từ cloud vì plugin này không được cấp phép cập nhật."
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -31040,6 +35237,70 @@ msgstr "Tải lại plugin thất bại."
msgid "Reloaded \"%s\"."
msgstr "Đã tải lại \"%s\"."
+# AI Translated
+msgid "Printer Connection"
+msgstr "Kết nối máy in"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "Vui lòng thiết lập kết nối máy in để xem thiết bị."
+
+# AI Translated
+msgid "No model information"
+msgstr "Không có thông tin mô hình"
+
+# AI Translated
+msgid "Edit Project Info"
+msgstr "Chỉnh sửa thông tin dự án"
+
+# AI Translated
+msgid "Model Information"
+msgstr "Thông tin mô hình"
+
+# AI Translated
+msgid "Accessories"
+msgstr "Phụ kiện"
+
+# AI Translated
+msgid "Profile Information"
+msgstr "Thông tin hồ sơ"
+
+# AI Translated
+msgid "Model name"
+msgstr "Tên mô hình"
+
+# AI Translated
+msgid "Created by"
+msgstr "Tạo bởi"
+
+# AI Translated
+msgid "Remixed by"
+msgstr "Phối lại bởi"
+
+# AI Translated
+msgid "Shared by"
+msgstr "Chia sẻ bởi"
+
+# AI Translated
+msgid "Model description"
+msgstr "Mô tả mô hình"
+
+# AI Translated
+msgid "BOM"
+msgstr "Danh sách vật liệu"
+
+# AI Translated
+msgid "Profile name"
+msgstr "Tên hồ sơ"
+
+# AI Translated
+msgid "Profile Author"
+msgstr "Tác giả hồ sơ"
+
+# AI Translated
+msgid "Profile description"
+msgstr "Mô tả hồ sơ"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "Cài đặt chế độ xả"
@@ -31064,6 +35325,19 @@ msgstr "Giảm lượng nhựa xả bỏ và in nhanh hơn. Có thể gây lẫn
msgid "Terminal"
msgstr "Terminal"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... hoặc uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "Terminal plugin đã sẵn sàng."
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "Tiến trình đã thoát với mã: %s"
+
# AI Translated
msgid "A command is already running."
msgstr "Một lệnh khác đang chạy."
@@ -31110,8 +35384,9 @@ msgstr "Filament pha trộn mới"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "Dự án hỗ trợ tối đa %d filament. Các filament thừa sẽ bị loại bỏ."
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "Dự án hỗ trợ tối đa %d filament. Các filament thừa sẽ bị loại bỏ."
# AI Translated
msgid "Import Model"
@@ -31198,8 +35473,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "Tính toán thất bại. Vui lòng điều chỉnh tham số và thử lại."
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "Lưới có hình học non-manifold hoặc biên hở. Bạn có thể nhập nguyên trạng hoặc sửa bằng dịch vụ sửa chữa 3D của Windows trước khi nhập."
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "Lưới có hình học non-manifold hoặc biên hở. Bạn có thể nhập nguyên trạng hoặc sửa trước khi nhập."
# AI Translated
msgid "Mesh repair"
@@ -31213,14 +35488,6 @@ msgstr "Nhập mà không sửa"
msgid "Repair and import"
msgstr "Sửa và nhập"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "Lưu ý rằng lưới có hình học non-manifold hoặc biên hở."
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "Vấn đề về lưới"
-
# AI Translated
msgid "The selected image is empty."
msgstr "Ảnh đã chọn trống."
@@ -31229,6 +35496,14 @@ msgstr "Ảnh đã chọn trống."
msgid "Failed to prepare the texture for use."
msgstr "Không thể chuẩn bị kết cấu để sử dụng."
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "Không thể tạo thư mục cho các kết cấu đã nhập."
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "Lưu kết cấu đã nhập thất bại."
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "Chỉ có thể xóa các kết cấu do bạn tự nhập."
@@ -31237,18 +35512,10 @@ msgstr "Chỉ có thể xóa các kết cấu do bạn tự nhập."
msgid "Could not delete the texture file."
msgstr "Không thể xóa file kết cấu."
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "Không thể tạo thư mục cho các kết cấu đã nhập."
-
# AI Translated
msgid "Could not load the selected image."
msgstr "Không thể tải ảnh đã chọn."
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "Lưu kết cấu đã nhập thất bại."
-
# AI Translated
msgid "Could not read the texture file."
msgstr "Không thể đọc file kết cấu."
@@ -31292,8 +35559,9 @@ msgstr "Chọn Trải phẳng làm phương pháp ánh xạ của một lớp k
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Đã chọn %d đỉnh | kéo = di chuyển cùng nhau, Shift/Ctrl + nhấn = thêm/bớt"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Đã chọn %d đỉnh | kéo = di chuyển cùng nhau, Shift/Ctrl + nhấn = thêm/bớt"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -31301,8 +35569,9 @@ msgstr "Chế độ đỉnh: kéo một đỉnh để định hình lại | Sh
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "Đã chọn %d cạnh | kéo = di chuyển cùng nhau, Shift/Ctrl + nhấn = thêm/bớt"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "Đã chọn %d cạnh | kéo = di chuyển cùng nhau, Shift/Ctrl + nhấn = thêm/bớt"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -31310,8 +35579,9 @@ msgstr "Chế độ cạnh: kéo một cạnh của mảnh để định hình l
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "Đã chọn %d mảnh | kéo = di chuyển cùng nhau, Shift/Ctrl + nhấn = thêm/bớt, R/S = xoay/co giãn mảnh chính"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "Đã chọn %d mảnh | kéo = di chuyển cùng nhau, Shift/Ctrl + nhấn = thêm/bớt, R/S = xoay/co giãn mảnh chính"
# AI Translated
#, c-format, boost-format
@@ -31330,6 +35600,10 @@ msgstr " | bắt dính BẬT"
msgid "Change texture - choose another one from the texture library"
msgstr "Đổi kết cấu - chọn kết cấu khác từ thư viện kết cấu"
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "Kích thước ô của lớp kết cấu đang hoạt động: phạm vi trên mô hình mà một lần lặp kết cấu bao phủ. Khung vẽ được đo bằng ô, nên một ô lưới là một lần lặp. Thay đổi nó bằng Kích thước ô trong cài đặt của lớp kết cấu."
+
# AI Translated
msgid "Height map - show the layer's texture under the islands"
msgstr "Bản đồ độ cao - hiển thị kết cấu của lớp bên dưới các mảnh"
@@ -31363,16 +35637,16 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "Bố trí phần trải phẳng thành một hình khai triển liền: các mảnh chung cạnh được trải cạnh nhau (một khối lập phương trở thành một hình khai triển liền thay vì sáu hình vuông rời). Chúng vẫn là các mảnh riêng, nên sau đó bạn vẫn có thể tự di chuyển bất kỳ mảnh nào."
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "Mảnh - di chuyển, xoay và co giãn toàn bộ mảnh"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "Mảnh - thao tác trên toàn bộ mảnh. Nhấn vào một mảnh để chọn, rồi kéo để di chuyển, kéo chuột phải để xoay, hoặc nhấn R để xoay và S để co giãn bằng chuột (nhấn chuột hoặc Enter để xác nhận, Esc để hủy)."
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "Đỉnh - kéo đỉnh để định hình lại; Shift/Ctrl để chọn nhiều"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Đỉnh - kéo các đỉnh để định hình lại một mảnh bằng tay; Shift thêm vào vùng chọn, Ctrl bật/tắt chọn từng đỉnh."
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "Cạnh - kéo cạnh để định hình lại; Shift/Ctrl để chọn nhiều"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "Cạnh - kéo các cạnh để định hình lại một mảnh bằng tay; Shift thêm vào vùng chọn, Ctrl bật/tắt chọn từng cạnh."
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
@@ -31411,8 +35685,16 @@ msgid "Snap - stick islands together when dragging one against another"
msgstr "Bắt dính - gắn các mảnh vào nhau khi kéo một mảnh sát vào mảnh khác"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "Vừa khung tất cả mảnh (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"Đưa tất cả các mảnh vào khung nhìn, hiển thị vừa đủ từng mảnh (Home hoặc F).\n"
+"Ở nơi khác trên khung vẽ: cuộn để thu phóng quanh con trỏ, và kéo chuột giữa - hoặc kéo vùng trống - để di chuyển khung nhìn."
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "Những gì đang được chọn, và số liệu chính xác của thao tác di chuyển, xoay hoặc co giãn khi bạn kéo."
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -31423,6 +35705,10 @@ msgstr "Không có lớp nào được ánh xạ bằng Trải phẳng"
msgid "%.1f mm tile"
msgstr "ô %.1f mm"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "Khung này theo lớp kết cấu đang hoạt động, và lớp đó phải được ánh xạ bằng Trải phẳng (LSCM). Hãy thêm một lớp kết cấu và đặt Ánh xạ của nó thành Trải phẳng."
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
msgstr "Đã lỗi thời - phần vẽ, các đường cắt hoặc góc đường cắt đã thay đổi kể từ lần trải phẳng này. Nhấn để trải phẳng lại."
@@ -31431,19 +35717,72 @@ msgstr "Đã lỗi thời - phần vẽ, các đường cắt hoặc góc đư
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
msgstr "Làm phẳng vùng đã vẽ thành các mảnh UV. Việc này chỉ được tính khi bạn nhấn nút này, không phải sau mỗi lần chỉnh sửa - vì vậy hãy vẽ, đổi góc đường cắt hoặc đánh dấu đường cắt trước, rồi nhấn Trải phẳng."
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "Hãy bật Đánh dấu đường cắt trước - Đường đi là cách đánh dấu chúng nhanh hơn."
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "Không có đường cắt UV nào được đánh dấu trên lớp kết cấu này."
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "Chưa có mảnh nào được định hình lại bằng tay, nên không có gì để hủy."
+
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d mảnh, %s mặt"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d mảnh"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s mặt"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "Kết quả trải phẳng vùng đã vẽ: số mảnh riêng biệt mà nó được cắt thành (tại các đường cắt và tại các cạnh sắc hơn góc đường cắt), và tổng số tam giác mà chúng chứa."
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "Hãy nhấn Trải phẳng trước - hiện chưa có mảnh nào để thao tác."
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "Hãy nhấn vào một mảnh trên khung vẽ trước, ở chế độ Mảnh."
+
+# AI Translated
+# Needs human review: Short badge for a published project (PUB); 'XB' abbreviates 'Xuất bản' (Publish), check it reads right and fits the badge.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "XB"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "Chưa đăng nhập"
+
+# AI Translated
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "Không phát hiện plug-in mạng Bambu. Nhấn vào đây để cài đặt."
+
+# AI Translated
+msgid "Create new project"
+msgstr "Tạo dự án mới"
+
+# AI Translated
+msgid "Recently opened"
+msgstr "Mở gần đây"
+
+# AI Translated
+msgid "Open Containing Folder"
+msgstr "Mở thư mục chứa"
# AI Translated
msgid "Forward"
msgstr "Tiến"
-# AI Translated
-msgid "Tools"
-msgstr "Công cụ"
-
# AI Translated
msgid "View Source"
msgstr "Xem mã nguồn"
@@ -31515,6 +35854,75 @@ msgstr "Nạp %1% vào %2%"
msgid "Load %s"
msgstr "Nạp %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "Không thể bật tác nhân máy in '%1%': ID tác nhân '%2%' đã được đăng ký bởi khả năng '%3%' của plugin '%4%'."
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "Không thể bật tác nhân máy in '%1%': ID tác nhân '%2%' đã được đăng ký bởi '%3%'."
+
+# AI Translated
+msgid "File uploaded"
+msgstr "Đã tải file lên"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "Đang tải G-code lên..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "Đang bắt đầu in..."
+
+# AI Translated
+msgid "Print started"
+msgstr "Đã bắt đầu in"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "Đang tải lên..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "Chưa chỉ định phiên bản thư viện mạng"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "Không tìm thấy thư viện mạng"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "Tải thư viện mạng thất bại"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "Thư viện mạng không tải được"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "Một dòng plug-in cũ hơn. Các tính năng cần plug-in mới hơn hỗ trợ, chẳng hạn ảnh chụp lỗi in trong hộp thoại lỗi thiết bị, không khả dụng."
+
+# AI Translated
+msgid "unknown name"
+msgstr "tên không xác định"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"Plugin \"%s\" yêu cầu quyền đọc hệ thống file tại:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "Quyền của plugin"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -31529,37 +35937,49 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
-"Plugin \"%s\" đang yêu cầu đọc (các) file sau:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin \"%s\" đang yêu cầu đọc file sau:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
-"Plugin \"%s\" đang yêu cầu đọc/ghi (các) file sau:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin \"%s\" đang yêu cầu đọc/ghi file sau:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
-"Plugin \"%s\" đang yêu cầu tạo (các) file sau:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin \"%s\" đang yêu cầu tạo file sau:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
-"Plugin \"%s\" đang yêu cầu xóa (các) file sau:\n"
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
+"Plugin \"%s\" đang yêu cầu xóa file sau:\n"
"%s"
# AI Translated
@@ -31583,10 +36003,27 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"Plugin \"%s\" đang yêu cầu chạy lệnh sau:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "Plugin \"%s\" đang yêu cầu quyền tạo một luồng."
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"Plugin \"%s\" đang yêu cầu chạy (các) lệnh sau:\n"
+"Plugin \"%s\" đang yêu cầu thay thế ứng dụng đang chạy bằng:\n"
"%s"
# AI Translated
@@ -31598,6 +36035,46 @@ msgstr "Plugin \"%s\" đang yêu cầu quyền cho sự kiện audit Python \"%s
msgid "Plugin permission request"
msgstr "Yêu cầu quyền của plugin"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "Cài đặt sẵn lưu cấu hình khả năng plugin JSON không hợp lệ."
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "Cấu hình khả năng plugin của cài đặt sẵn không phải là mảng và không thể chỉnh sửa."
+
+# AI Translated
+msgid "Printer connection"
+msgstr "Kết nối máy in"
+
+# AI Translated
+msgid "Pages"
+msgstr "Trang"
+
+# AI Translated
+msgid "Analysis"
+msgstr "Phân tích"
+
+# AI Translated
+msgid "Importer"
+msgstr "Trình nhập"
+
+# AI Translated
+msgid "Exporter"
+msgstr "Trình xuất"
+
+# AI Translated
+msgid "Visualization"
+msgstr "Trực quan hóa"
+
+# AI Translated
+msgid "Script"
+msgstr "Script"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "Quy trình slice"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "Giao diện cấu hình của plugin trống. Đang hiển thị trình chỉnh sửa mặc định."
@@ -31620,8 +36097,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "Không thể ghi cấu hình vào ổ đĩa. Không có gì thay đổi."
# AI Translated
-msgid "Plugin installation failed"
-msgstr "Cài đặt plugin thất bại"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "Cài đặt plugin thất bại: %1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%: không tìm thấy plugin đã cài đặt trong danh mục."
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "Khóa plugin đám mây thiếu UUID."
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "Đăng ký plugin đám mây thất bại, xem nhật ký để biết thêm thông tin."
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "Chỉ có thể hủy đăng ký các plugin đám mây."
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "Hủy đăng ký plugin thất bại, xem nhật ký để biết thêm thông tin."
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "Không lấy được URL tải xuống plugin (kết quả %1%)."
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "Bạn không có quyền tải xuống plugin đám mây này."
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "Không có gói plugin nào cho hệ điều hành này."
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "Không tìm thấy phiên bản plugin đã chọn."
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "Không tìm thấy phiên bản plugin %1%."
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "Không tìm thấy plugin đám mây."
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "Không tìm thấy bản tải xuống plugin đám mây: %1%."
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "Không tìm thấy bản tải xuống plugin đám mây."
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "Không có URL tải xuống cho plugin này. Vui lòng kiểm tra nhật ký để tìm lỗi."
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "Tải xuống plugin thất bại: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "Tải xuống plugin thất bại với trạng thái HTTP %1%."
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "Tải xuống plugin trả về dữ liệu rỗng."
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "Không thể tạo file tạm cho việc tải xuống plugin."
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "Không thể ghi dữ liệu plugin vào file tạm."
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "Không thể xác định thư mục plugin: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "Xóa thư mục plugin %1% thất bại: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "Thư mục plugin không tồn tại: %1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "Thư mục plugin chứa nhiều file .py: %1% và %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "Thư mục plugin chứa nhiều file .whl: %1% và %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "Thư mục plugin chứa cả file đầu vào .py và .whl"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "Thư mục plugin không chứa file đầu vào .py hoặc .whl"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "Lỗi plugin quy trình slice '%1%': %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "Gói plugin phải là file .py hoặc .whl, nhận được: %1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "Không thể giải nén phụ thuộc .whl của plugin %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "Không thể thêm phụ thuộc .whl vào sys.path: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Trình thông dịch Python chưa được khởi tạo: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "Tệp kê khai (manifest) của plugin không hợp lệ: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "Cài đặt các phụ thuộc của plugin thất bại: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "Tải module plugin thất bại: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "Đăng ký plugin thất bại: %1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "Module plugin không đăng ký khả năng nào"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "Plugin khai báo khả năng '%1%' trùng lặp cho loại %2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "Hiện thực hóa khả năng của plugin thất bại: %1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "Hiện thực hóa khả năng của plugin thất bại"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "on_load của plugin thất bại: %1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "on_load của plugin thất bại"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "Gói plugin không phải là file: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "UUID của plugin đám mây không phải định danh hợp lệ: %1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "Tạo thư mục plugin %1% thất bại: %2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "Sao lưu plugin hiện có %1% thất bại: %2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "Sao chép file plugin vào %1% thất bại: %2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "Ghi trạng thái cài đặt plugin thất bại: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "Gói plugin đã được tải: %1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "Xung đột khả năng cho loại %1% và tên '%2%'"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "Phát hiện khóa plugin trùng lặp: %1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "Việc tải plugin vẫn đang diễn ra"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "Plugin không hợp lệ: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "Không tìm thấy plugin: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "Lỗi tải plugin không mong đợi: %1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "Lỗi tải plugin không mong đợi"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "Không tìm thấy tệp kê khai (manifest) của plugin: %1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "Không lấy được plugin từ đám mây. Xem nhật ký để biết chi tiết."
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "Đăng nhập OrcaCloud để cài đặt plugin này."
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud không trả về plugin đám mây đã đăng ký."
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "Tải xuống plugin đám mây thất bại."
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "Cài đặt plugin đám mây thất bại."
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "Chỉ có thể cập nhật các plugin đám mây."
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "Không có bản cập nhật nào cho plugin này."
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "Từ chối xóa plugin nằm ngoài các thư mục plugin đã biết."
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "Từ chối cập nhật plugin nằm ngoài các thư mục plugin đã biết."
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "Không thể giữ plugin ở dạng cục bộ: khóa plugin cục bộ đã tồn tại: %1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "Cập nhật trạng thái cài đặt plugin thất bại: %1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "Không thể hủy đăng ký plugin của chính bạn."
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "Chỉ có thể xóa và hủy đăng ký các plugin đám mây."
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "Không thể hủy đăng ký plugin của chính bạn. Dùng Xóa để gỡ các file cục bộ."
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "Yêu cầu quyền đọc hệ thống file của plugin bị từ chối"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -31655,6 +36468,10 @@ msgstr "hợp nhất khi đùn hai phía thất bại"
msgid "imported regions produced no extrudable geometry"
msgstr "các vùng được nhập không tạo ra hình học nào có thể đùn"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "biên dạng cắt qua trục tròn xoay — nó phải nằm về một phía của trục"
+
# AI Translated
msgid "Failed to revolve"
msgstr "Tạo khối tròn xoay thất bại"
@@ -31691,6 +36508,10 @@ msgstr "Tạo mặt khoét hốc thất bại"
msgid "Pocket cut failed"
msgstr "Cắt khoét hốc thất bại"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "biên dạng tự cắt hoặc gấp ngược lại chính nó, nên không bao quanh một vùng duy nhất"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "phác thảo không có vòng khép kín"
@@ -31723,10 +36544,26 @@ msgstr "mesh_to_brep: lưới không có tam giác nào"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep: mọi tam giác đều bị loại do suy biến (hãy thử dung sai nhỏ hơn)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "bán kính bo tròn phải lớn hơn 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "không có cạnh nào để bo tròn trong nhóm đó"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "bán kính bo tròn quá lớn đối với hình học này"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "khoảng cách vát cạnh phải lớn hơn 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "không có cạnh nào để vát cạnh trong nhóm đó"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "khoảng cách vát cạnh quá lớn đối với hình học này"
@@ -31739,6 +36576,153 @@ msgstr "apply_fillet: OCCT bo tròn thất bại"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer: OCCT vát cạnh thất bại"
+# AI Translated
+msgid "empty component list"
+msgstr "danh sách thành phần rỗng"
+
+# AI Translated
+msgid "empty component index"
+msgstr "chỉ số thành phần rỗng"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "chỉ số thành phần phải >= 1 (nhận được %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "chỉ số thành phần \"%1%\" không hợp lệ"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "cần ít nhất 2 thành phần (nhận được %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "chỉ số thành phần %1% bị trùng lặp"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "giá trị tỷ lệ rỗng"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "tỷ lệ phải dương (nhận được %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "tỷ lệ \"%1%\" không hợp lệ"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "số tỷ lệ phải khớp với số thành phần: mong đợi %1%, nhận được %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "cần hai số thực cách nhau bằng dấu phẩy, ví dụ \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "tỷ lệ bắt đầu và kết thúc phải nằm trong khoảng (0, 1)"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "kích thước mảng %1% không khớp với số khe filament %2%"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "phải được đặt khi chỉ định tham số filament pha trộn"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "khe %1%: %2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "khe %1%: thành phần %2% nằm ngoài phạm vi (chỉ số filament vật lý tối đa là %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "khe %1%: không thể tự tham chiếu chính nó làm thành phần"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "khe %1%: thành phần %2% tham chiếu đến một khe filament pha trộn"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "khe %1%: gradient yêu cầu đúng 2 thành phần"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "khe %1%: đường cong không hợp lệ (cần ít nhất 2 điểm điều khiển hợp lệ)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "Tải file cấu hình \"%1%\" thất bại: %2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "Không phải file gcode do %1% tạo ra."
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "Không tìm thấy thẻ cấu hình \"%1%\""
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "Số lượng giá trị cấu hình trích xuất từ %1% thấp một cách đáng ngờ: %2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"Tải file step thất bại.\n"
+"Không thể mở file để đọc.\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "nhập svg thất bại: không thể mở svg."
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "nhập svg thất bại: không thể phân tích dữ liệu svg đã nhập."
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "G-code tùy chỉnh báo z_retracted âm."
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "G-code tùy chỉnh báo z_restart_extra âm."
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "Sao chép thư mục %1% sang %2% thất bại: %3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "Xác thực hoàn tất"
@@ -32185,6 +37169,1126 @@ msgstr ""
"Tránh cong vênh\n"
"Bạn có biết rằng khi in vật liệu dễ cong vênh như ABS, tăng nhiệt độ bàn nóng một cách thích hợp có thể giảm xác suất cong vênh không?"
+# AI Translated
+#~ msgid "Please choose the filament color"
+#~ msgstr "Vui lòng chọn màu filament"
+
+# AI Translated
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "Độ rộng đường của Cầu. Nếu biểu diễn dưới dạng %, nó sẽ được tính theo đường kính đầu phun.\n"
+#~ "Nên dùng kèm với mật độ Cầu hoặc tỷ lệ lưu lượng Cầu cao hơn.\n"
+#~ "\n"
+#~ "Giá trị tối đa là 100% hoặc đường kính đầu phun.\n"
+#~ "Nếu đặt là 0, độ rộng đường sẽ bằng độ rộng Infill đặc bên trong."
+
+# AI Translated
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "Bật tùy chọn này để giảm tốc độ in ở những vùng mà chu vi có thể đã bị cong vênh lên trên.\n"
+#~ "Ví dụ, sẽ áp dụng thêm mức giảm tốc khi in phần nhô ở các góc nhọn như mũi thân tàu Benchy, giúp giảm hiện tượng cong vênh vốn tích tụ qua nhiều lớp.\n"
+#~ "\n"
+#~ "Thông thường nên bật tùy chọn này, trừ khi hệ thống làm mát của máy in đủ mạnh hoặc tốc độ in đủ chậm để chu vi không bị cong vênh. \n"
+#~ "Nếu in với tốc độ chu vi ngoài cao, tham số này có thể tạo ra khuyết điểm trên thành khi giảm tốc, do biên độ dao động tốc độ in lớn khiến extruder không theo kịp thay đổi lưu lượng được yêu cầu.\n"
+#~ "Nguyên nhân gốc của những khuyết điểm này nhiều khả năng là do PA chưa được tinh chỉnh chuẩn, đặc biệt khi kết hợp với thời gian làm mượt PA lớn.\n"
+#~ "\n"
+#~ "Khuyến nghị khi bật tùy chọn này:\n"
+#~ "1. Giảm thời gian làm mượt Pressure Advance xuống 0.015 - 0.02 để extruder phản ứng nhanh với thay đổi tốc độ.\n"
+#~ "2. Tăng tốc độ in tối thiểu để hạn chế mức độ giảm tốc và giảm chênh lệch giữa các đoạn nhanh và chậm.\n"
+#~ "3. Nếu vẫn xuất hiện khuyết điểm, hãy bật Extrusion Rate Smoothing (ERS) để làm mượt thêm các chuyển tiếp lưu lượng.\n"
+#~ "\n"
+#~ "Lưu ý: Khi tùy chọn này được bật, chu vi phần nhô được xử lý như phần nhô, nghĩa là tốc độ phần nhô sẽ được áp dụng ngay cả khi chu vi nhô đó là một phần của cầu.\n"
+#~ "Ví dụ, khi các chu vi nhô 100%, không có thành nào đỡ bên dưới, tốc độ phần nhô 100% sẽ được áp dụng."
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "Tốc độ của các đùn cầu nhìn thấy từ bên ngoài.\n"
+#~ "\n"
+#~ "Ngoài ra, nếu Giảm tốc cho chu vi cong bị tắt hoặc chế độ phần nhô cổ điển được bật, nó sẽ là tốc độ in của thành nhô được hỗ trợ dưới 13%, cho dù chúng là một phần của cầu hay phần nhô."
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "Cài đặt riêng biệt này sẽ ảnh hưởng đến tốc độ của chu vi có bán kính <= small_perimeter_threshold (thường là lỗ). Nếu được biểu thị dưới dạng phần trăm (ví dụ: 80%) nó sẽ được tính trên cài đặt tốc độ thành ngoài ở trên. Đặt thành không để tự động."
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "Giống như \"Chu vi nhỏ\", nhưng dành cho support. Cài đặt riêng này sẽ ảnh hưởng đến tốc độ support cho các vùng <= `small_support_perimeter_threshold`. Nếu biểu diễn dưới dạng phần trăm (ví dụ: 80%), nó sẽ được tính theo cài đặt tốc độ support hoặc giao diện support ở trên. Đặt bằng không để tự động."
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "Trình tự in của thành bên trong (trong) và bên ngoài (ngoài).\n"
+#~ "\n"
+#~ "Sử dụng Trong/Ngoài cho phần nhô tốt nhất. Điều này là do thành nhô có thể bám dính vào chu vi lân cận trong khi in. Tuy nhiên, tùy chọn này dẫn đến chất lượng bề mặt giảm một chút vì chu vi bên ngoài bị biến dạng do bị ép vào chu vi bên trong.\n"
+#~ "\n"
+#~ "Sử dụng Trong/Ngoài/Trong để có bề mặt ngoài hoàn thiện tốt nhất và độ chính xác kích thước vì thành ngoài được in không bị xáo trộn từ chu vi bên trong. Tuy nhiên, hiệu suất phần nhô sẽ giảm vì không có chu vi bên trong để in thành ngoài tựa vào. Tùy chọn này yêu cầu tối thiểu 3 thành để có hiệu quả vì nó in các thành bên trong từ chu vi thứ 3 trở đi trước, sau đó là chu vi bên ngoài và cuối cùng là chu vi bên trong đầu tiên. Tùy chọn này được khuyến nghị thay cho tùy chọn Ngoài/Trong trong hầu hết các trường hợp.\n"
+#~ "\n"
+#~ "Sử dụng Ngoài/Trong để có cùng chất lượng thành ngoài và độ chính xác kích thước như tùy chọn Trong/Ngoài/Trong. Tuy nhiên, các đường nối Z sẽ xuất hiện kém nhất quán hơn vì đùn đầu tiên của lớp mới bắt đầu trên bề mặt nhìn thấy."
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "Tốc độ của lớp đầu tiên ngoại trừ phần infill đặc."
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "Tốc độ của phần infill đặc của lớp đầu tiên."
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "Vùng infill được mở rộng một chút để chồng lấp với thành để liên kết tốt hơn. Giá trị phần trăm tương đối với độ rộng đường của infill thưa. Đặt giá trị này thành ~10-15% để giảm thiểu đùn dư tiềm ẩn và tích tụ vật liệu dẫn đến bề mặt trên thô."
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "Vùng infill đặc trên được mở rộng một chút để chồng lấp với thành để liên kết tốt hơn và giảm thiểu sự xuất hiện của lỗ kim nơi infill trên gặp thành. Giá trị 25-30% là điểm khởi đầu tốt, giảm thiểu sự xuất hiện của lỗ kim. Giá trị phần trăm tương đối với độ rộng đường của infill thưa."
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "Độ sâu lồng ghép của vùng phân đoạn. Nó sẽ bị bỏ qua nếu \"mmu_segmented_region_max_width\" là không hoặc nếu \"mmu_segmented_region_interlocking_depth\" lớn hơn \"mmu_segmented_region_max_width\". Không vô hiệu hóa tính năng này."
+
+# AI Translated
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "Giảm chiều cao của chu vi bề mặt trên cho khớp với chiều cao mép của mô hình.\n"
+#~ "Ảnh hưởng đến các chu vi có độ dốc nhỏ hơn góc này (độ).\n"
+#~ "Giá trị hợp lý là 35. Đặt 0 để tắt."
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "Tốc độ lau dựa trên vai trò"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "Tấm chắn gió hữu ích để bảo vệ bản in ABS hoặc ASA khỏi cong vênh và tách khỏi bàn in do gió lùa. Nó thường chỉ cần với máy in khung mở, tức là không có vỏ bọc.\n"
+#~ "\n"
+#~ "Đã bật = viền cao bằng đối tượng được in cao nhất. Ngược lại 'Chiều cao viền' được sử dụng.\n"
+#~ "Lưu ý: Với tấm chắn gió hoạt động, viền sẽ được in ở khoảng cách viền từ đối tượng. Do đó, nếu vành đang hoạt động nó có thể giao với chúng. Để tránh điều này, hãy tăng giá trị khoảng cách viền.\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "Tốc độ in tối đa khi xả trong wipe tower và in các lớp thưa của wipe tower. Khi xả, nếu tốc độ infill thưa hoặc tốc độ được tính từ tốc độ thể tích tối đa của filament thấp hơn, tốc độ thấp nhất sẽ được sử dụng thay thế.\n"
+#~ "\n"
+#~ "Khi in các lớp thưa, nếu tốc độ chu vi bên trong hoặc tốc độ được tính từ tốc độ thể tích tối đa của filament thấp hơn, tốc độ thấp nhất sẽ được sử dụng thay thế.\n"
+#~ "\n"
+#~ "Tăng tốc độ này có thể ảnh hưởng đến độ ổn định của tower cũng như tăng lực mà đầu phun va chạm với bất kỳ cục nhỏ nào có thể đã hình thành trên wipe tower.\n"
+#~ "\n"
+#~ "Trước khi tăng tham số này vượt quá mặc định 90 mm/s, hãy đảm bảo máy in của bạn có thể nối cầu đáng tin cậy ở tốc độ tăng và chảy nhựa khi thay công cụ được kiểm soát tốt.\n"
+#~ "\n"
+#~ "Đối với chu vi bên ngoài wipe tower, tốc độ chu vi bên trong được sử dụng bất kể cài đặt này."
+
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "Loại thành ngoài wipe tower.\n"
+#~ "1. Hình chữ nhật: Loại thành mặc định, hình chữ nhật có độ rộng và chiều cao cố định.\n"
+#~ "2. Nón: Một nón có bo tròn ở dưới để giúp ổn định wipe tower.\n"
+#~ "3. Gân: Thêm bốn gân vào thành tower để tăng cường độ ổn định."
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "Lưu lượng bổ sung được sử dụng cho các đường xả trên wipe tower. Điều này làm cho các đường xả dày hơn hoặc hẹp hơn so với bình thường. Khoảng cách được điều chỉnh tự động."
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "Điều chỉnh giá trị này để ngăn thành ngắn, không đóng được in, có thể tăng thời gian in. Giá trị cao hơn loại bỏ nhiều thành và dài hơn.\n"
+#~ "\n"
+#~ "LƯU Ý: Bề mặt dưới và trên sẽ không bị ảnh hưởng bởi giá trị này để ngăn khe nhìn thấy ở bên ngoài model. Điều chỉnh 'Ngưỡng một thành' trong cài đặt Nâng cao bên dưới để điều chỉnh độ nhạy của những gì được coi là bề mặt trên. 'Ngưỡng một thành' chỉ hiển thị nếu cài đặt này được đặt trên giá trị mặc định 0.5, hoặc nếu bề mặt trên thành đơn được bật."
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "Tách thành %1% phần"
+
+#~ msgid "Repair failed"
+#~ msgstr "Sửa chữa thất bại."
+
+#~ msgid "Repair canceled"
+#~ msgstr "Sửa chữa đã hủy"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "Tác động của lớp này tại nơi nó chồng lên các lớp bên dưới. Thêm và Trừ đắp thêm hoặc khoét bớt phần nổi. Nhân và Chia co giãn những gì nằm bên dưới, biến lớp này thành một mặt nạ phủ lên đó - khi ấy Độ sâu đóng vai trò như cường độ, và 1 mm giữ nguyên các vùng trắng."
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "Lưới có hình học non-manifold hoặc biên hở. Bạn có thể nhập nguyên trạng hoặc sửa bằng dịch vụ sửa chữa 3D của Windows trước khi nhập."
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "Lưu ý rằng lưới có hình học non-manifold hoặc biên hở."
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "Vấn đề về lưới"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "Sửa chữa thất bại: lưới vẫn hở sau khi lấp lỗ."
+
+# AI Translated
+# Needs human review: Source says 'operators' but means operands (the values operated on); translated as 'toán hạng'.
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "Không thể áp dụng phép toán logic cho các toán hạng không phải boolean."
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "Đang đọc"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "Số lượng filament vượt quá số tối đa mà công cụ vẽ hỗ trợ. Chỉ %1% filament đầu tiên sẽ khả dụng trong công cụ vẽ."
+
+#~ msgid "Shortcut Key "
+#~ msgstr "Phím tắt "
+
+#~ msgid "Build Volume"
+#~ msgstr "Thể tích in"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "Các vật thể(%1%) có khớp nối trùng lặp. Một số khớp nối có thể bị thiếu trong kết quả slice.\n"
+#~ "Vui lòng báo cho nhóm OrcaSlicer biết vấn đề này xảy ra trong tình huống nào.\n"
+#~ "Cảm ơn bạn."
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d tam giác"
+
+#~ msgid " (Moving)"
+#~ msgstr " (Đang di chuyển)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (Cố định)"
+
+# AI Translated
+#~ msgid "Filament "
+#~ msgstr "Filament "
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "hotend"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "Đang sắp xếp "
+
+#~ msgid "Orienting"
+#~ msgstr "Đang xoay"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "Vui lòng về gốc tất cả các trục (nhấn "
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ") để xác định vị trí của đầu công cụ. Điều này ngăn thiết bị di chuyển vượt quá ranh giới có thể in và gây hao mòn thiết bị."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "Tăng %1%g filament và %2% lần đổi so với cách nhóm tối ưu."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "Tăng %1%g filament và giảm %2% lần đổi so với cách nhóm tối ưu."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "Tiết kiệm %1%g filament và tăng %2% lần đổi so với cách nhóm tối ưu."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "Tiết kiệm %1%g filament và %2% lần đổi so với máy in một đầu phun."
+
+# AI Translated
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "Tiết kiệm %1%g filament và tăng %2% lần đổi so với máy in một đầu phun."
+
+# AI Translated
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "Tăng %1%g filament và giảm %2% lần đổi so với máy in một đầu phun."
+
+#~ msgid "number keys"
+#~ msgstr "phím số"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "Các filament %s được đặt trong %s, nhưng đường đi G-code được tạo ra vượt quá phạm vi in được của %s."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "Các filament %s được đặt trong %s, nhưng đường đi G-code được tạo ra vượt quá chiều cao in được của %s."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "Các filament %s không thể in trực tiếp lên bề mặt của plate này."
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "sẽ bị đóng trước khi tạo model mới. Bạn có muốn tiếp tục?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "Trong hàng đợi Slice trên Cloud, có %s tác vụ phía trước."
+
+#~ msgid " upload failed"
+#~ msgstr " tải lên thất bại"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " phân tích cấu hình tải lên thất bại\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " Không có bucket lưu trữ tương ứng\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " không thể mở\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "Kết quả bình luận của bạn không thể tải lên do các lý do sau:\n"
+#~ "\n"
+#~ " mã lỗi: "
+
+#~ msgid "error message: "
+#~ msgstr "thông báo lỗi: "
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "Bạn có muốn chuyển hướng đến trang web để đánh giá?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (cài đặt sẵn quy trình: %1%)"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "Đầu phun %s không thể in %s."
+
+# AI Translated
+#~ msgid " nozzle"
+#~ msgstr " đầu phun"
+
+# AI Translated
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "Không nên in (các) filament sau bằng %1%: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr " bản %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "Xóa tất cả %1% filament pha trộn?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "Bạn có muốn thay thế nó"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "Xung đột nhiệt độ bàn in: T%d (%s) đặt bàn in ở %d°C — T%d (%s) yêu cầu %d°C. Công cụ chính điều khiển bàn in; các công cụ phụ in ở nhiệt độ mà nó đặt, dù là bao nhiêu."
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "Không có gia tốc được cung cấp để hiệu chỉnh. Sử dụng giá trị gia tốc mặc định "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "Không có tốc độ được cung cấp để hiệu chỉnh. Sử dụng tốc độ tối ưu mặc định "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "Không có tháp nhiệt độ băng chuyền nào cho khoảng %1% đến %2% °C. Hãy dùng khoảng mà các mô hình tháp hỗ trợ, ví dụ 230 đến 190."
+
+#~ msgid "The selected file"
+#~ msgstr "File đã chọn"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "không chứa G-code hợp lệ."
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "với OrcaSlicer để Orca có thể mở model từ"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "Tốn thêm %dg filament và %d lần đổi so với cách nhóm tối ưu."
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "Các thông số có biểu tượng này có thể được cấu hình riêng cho từng đầu phun."
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "Tìm thấy từ khóa dành riêng"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "Preset filament %d và preset quy trình %d được đính kèm với máy in này. Các preset đó sẽ bị xóa nếu máy in bị xóa."
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Các preset sau kế thừa preset này."
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "Preset %1%"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "Bạn có chắc chắn %1% preset đã chọn?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "Tách thành %1% phần"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "Đang tải xuống hồ sơ nhà cung cấp mới: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "Tải xuống hồ sơ nhà cung cấp thất bại: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Trong chế độ Span này chỉ %1% in màu, nhưng filament %2% không được định tuyến đến công cụ nào. Hãy dùng các filament được định tuyến đến %1%, hoặc chuyển plate này sang chế độ Chính."
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "Trong chế độ Span này chỉ %1% in màu, nhưng filament %2% được định tuyến đến T%3%. Hãy dùng các filament được định tuyến đến %1%, hoặc chuyển plate này sang chế độ Chính."
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr " quá gần vùng loại trừ, có thể có va chạm khi in."
+
+# AI Translated
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr " ở quá gần vùng phát hiện vón cục, có thể xảy ra va chạm khi in."
+
+# AI Translated
+#~ msgid "Prime Tower"
+#~ msgstr "Prime Tower"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr " quá gần các đối tượng khác, và có thể gây va chạm.\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr " quá gần vùng loại trừ, và sẽ gây va chạm.\n"
+
+# AI Translated
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr " ở quá gần vùng phát hiện vón cục, và sẽ gây ra va chạm.\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr " nằm một phần ngoài vùng in được, và không thể in.\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "không có công cụ nào được cấu hình"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "G-code kết thúc khi hoàn thành toàn bộ bản in."
+
+#~ msgid "Maximum X speed"
+#~ msgstr "Tốc độ X tối đa"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Tốc độ Y tối đa"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Tốc độ Z tối đa"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "Tốc độ E tối đa"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "(Các) plugin Python được gọi ở mỗi bước của quy trình slice để đọc và sửa đổi dữ liệu slice trung gian, bao gồm một bước hậu xử lý G-code cuối cùng. Mang tính nghiên cứu/thử nghiệm."
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "Khi bật, phần mềm slice xuất G-code với nội dung của vùng chính được căn giữa tại gốc tọa độ bàn in (0,0). Firmware máy in chịu trách nhiệm đặt các bản sao/bản đối xứng tại vị trí vật lý của từng vùng. Chỉ bật trên máy in có firmware tự áp dụng độ lệch vùng ở chế độ Sao chép (Copy)/Gương (Mirror) (ví dụ chế độ nhân bản IDEX của RepRapFirmware). Không có tác dụng ở chế độ Chính."
+
+# AI Translated
+# Needs human review: "pem-inversion" is developer jargon (physical extruder map inversion) kept in English; check it reads acceptably in this Printer/plate setting tooltip.
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "Ghi đè theo từng plate, ánh xạ các đầu vật lý đến khe filament (đánh số từ 1). Để trống nghĩa là dùng giá trị mặc định pem-inversion."
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "Trục mà lưới được xoay quanh trước khi slice. Đây là độ nghiêng của máy in băng chuyền: một phép xoay đẳng cự (không biến dạng), đồng thời điều khiển việc hiển thị bàn in và độ nghiêng trọng lực cho support, và được phép biến đổi ngược G-code đảo lại trước bước trượt/co giãn và ánh xạ lại của hệ tọa độ máy. X là độ nghiêng giàn trục thông thường (băng chuyền chạy dọc theo Y)."
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "Ghi đè cho chuyên gia: đặt góc nghiêng hệ tọa độ máy (trượt/co giãn G-code) độc lập với góc xoay trước khi slice. Khi tắt, phép biến đổi hệ tọa độ máy được suy ra từ góc nghiêng băng chuyền, nên một góc duy nhất điều khiển cả hai bước. Chỉ bật để bù cho máy có độ nghiêng giàn trục vật lý khác với góc xoay khi slice."
+
+# AI Translated
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "Độ lệch tối đa cho phép khi giảm độ phân giải cho cài đặt 'Độ phân giải thành tối đa'. Nếu bạn tăng giá trị này, bản in sẽ kém chính xác hơn nhưng G-Code sẽ nhỏ hơn. 'Độ lệch thành tối đa' giới hạn 'Độ phân giải thành tối đa', nên nếu hai giá trị xung đột, 'Độ lệch thành tối đa' được ưu tiên."
+
+#~ msgid " not in range "
+#~ msgstr " không trong phạm vi "
+
+#~ msgid "floating regions"
+#~ msgstr "vùng nổi"
+
+#~ msgid "floating cantilever"
+#~ msgstr "công xôn nổi"
+
+#~ msgid "large overhangs"
+#~ msgstr "phần nhô lớn"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "Có vẻ đối tượng %s có %s. Vui lòng định hướng lại đối tượng hoặc bật tạo support."
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "Không phát hiện lớp nào. Bạn có thể muốn sửa chữa file STL của mình hoặc kiểm tra kích thước hoặc độ dày của chúng và thử lại.\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "Loại máy này chỉ có thể giữ %d kết quả lịch sử trên mỗi đầu phun. Kết quả này sẽ không được lưu."
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "Loại máy này chỉ có thể giữ %d kết quả lịch sử trên mỗi đầu phun."
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "Phần nhô"
+
+#~ msgid "Start / End"
+#~ msgstr "Bắt đầu / Kết thúc"
+
+#~ msgid "Damp"
+#~ msgstr "Giảm chấn"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "Đã phát hiện %d khe IFS trên máy in."
+
+#~ msgid "selected"
+#~ msgstr "đã chọn"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "Các cài đặt sẵn sau kế thừa cài đặt sẵn này."
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "Đã tìm thấy %zu máy in Creality. Hãy chọn một máy rồi nhấn Dùng máy đã chọn."
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "nhật ký"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "Lỗi: extruder %s không có đầu phun %s khả dụng, kết quả nhóm hiện tại không hợp lệ."
+
+#~ msgid "invalid brim ears"
+#~ msgstr " tai vành không hợp lệ"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "Đang bỏ qua %d vật thể."
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "Mở thư mục trong trình quản lý file"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "Nhấn tâm rồi một đỉnh — %d cạnh, %s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "ngoại tiếp"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "nội tiếp"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "Đã tạo phác thảo (%zu kích thước điều khiển) — chọn nó, rồi nhấn chuột phải để Đùn"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "OK — %zu tam giác"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "Lưới này có %d tam giác. Mỗi tam giác sẽ trở thành một mặt B-rep trước khi gộp các mặt đồng phẳng, nên việc nhập có thể mất nhiều thời gian và tạo ra một khối chỉnh sửa chậm. Thường tốt hơn là giảm số tam giác của lưới trước.\n"
+#~ "\n"
+#~ "Vẫn nhập?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "Đã nhập khối đặc — %d tam giác → %d mặt, thể tích %.2f mm³. Chọn một mặt hoặc cạnh, rồi dùng Bo tròn / Cắt / Vỏ mỏng để chỉnh sửa"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — kéo để đặt vị trí/kích thước, rồi Xác nhận"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d thực thể phác thảo"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — nhập một giá trị, nhấn Enter (hoặc Xác nhận)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "Xem trước — %zu tam giác"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "%1% ràng buộc không thể tác động lên hình học này (đường cong elip hoặc spline, hoặc đường tròn có kích thước bằng không) và bị bỏ qua"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "Đã xóa %1% ràng buộc bị bo tròn/vát cạnh làm mất hiệu lực"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "Phép biến đổi đã gỡ bỏ %1% ràng buộc"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...và thêm %1% đầu hở khác"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "Danh sách vật liệu hỗ trợ tối đa %1% màu. Sau khi phân tách %2%, số vật liệu sẽ vượt quá %1%. Vui lòng xóa các filament không dùng trên màn hình chính trước khi phân tách."
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% màu có thể in từ %2% filament"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% mảnh"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "Đã dùng hết %1% lớp"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "Xem trước: %1% tam giác"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "Mô hình: %1% tam giác - quá trình nướng tinh chỉnh đến độ phân giải ở trên, trong giới hạn hạn mức"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "Nướng di chuyển các đỉnh sẵn có - mô hình giữ nguyên %1% tam giác"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "Kết quả nướng tối đa ~%1% k tam giác"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% lớp chưa vẽ, đã bỏ qua"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "Dự án hỗ trợ tối đa %d filament. Các filament thừa sẽ bị loại bỏ."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Đã chọn %d đỉnh | kéo = di chuyển cùng nhau, Shift/Ctrl + nhấn = thêm/bớt"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "Đã chọn %d cạnh | kéo = di chuyển cùng nhau, Shift/Ctrl + nhấn = thêm/bớt"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "Đã chọn %d mảnh | kéo = di chuyển cùng nhau, Shift/Ctrl + nhấn = thêm/bớt, R/S = xoay/co giãn mảnh chính"
+
+# AI Translated
+# Needs human review: The English names a "Tiling" setting, but the layer settings only have "Tile" (Xếp ô) and "Tile size" (Kích thước ô); check which control is meant and quote its label (UV editor header tooltip).
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "Kích thước ô của lớp kết cấu đang hoạt động: phạm vi trên mô hình mà một lần lặp kết cấu bao phủ. Khung vẽ được đo bằng ô, nên một ô lưới là một lần lặp. Thay đổi nó bằng Xếp ô trong cài đặt của lớp kết cấu."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d mảnh, %s mặt"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin \"%s\" đang yêu cầu đọc (các) file sau:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin \"%s\" đang yêu cầu đọc/ghi (các) file sau:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin \"%s\" đang yêu cầu tạo (các) file sau:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin \"%s\" đang yêu cầu xóa (các) file sau:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "Plugin \"%s\" đang yêu cầu chạy (các) lệnh sau:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "Cài đặt plugin thất bại"
+
+# AI Translated
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "Không thể cài đặt Microsoft WebView2 Runtime.\n"
+#~ "Một số tính năng, bao gồm trình hướng dẫn thiết lập, có thể hiển thị trống cho đến khi nó được cài đặt.\n"
+#~ "Vui lòng cài đặt thủ công từ https://developer.microsoft.com/microsoft-edge/webview2/ rồi khởi động lại Orca Slicer."
+
+# AI Translated
+#~ msgid "Why this grouping"
+#~ msgstr "Vì sao lại nhóm như vậy"
+
+# AI Translated
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "Phần mềm không hỗ trợ dùng các đầu phun có đường kính khác nhau trong một lần in. Nếu đầu phun trái và phải không giống nhau, chúng tôi chỉ có thể tiến hành in bằng một đầu. Vui lòng xác nhận bạn muốn dùng đầu phun nào cho dự án này."
+
+# AI Translated
+#~ msgid "Switch diameter"
+#~ msgstr "Chuyển đường kính"
+
+# AI Translated
+#~ msgid "BambuStudio Project"
+#~ msgstr "Dự án BambuStudio"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "File 3MF được tạo bởi BambuStudio (phiên bản %s), mới hơn phiên bản tương thích %s. Đã tìm thấy các cài đặt không nhận dạng được:"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "File 3MF được tạo bởi BambuStudio (phiên bản %s), mới hơn phiên bản tương thích %s. Một số cài đặt có thể không hoàn toàn tương thích."
+
+# AI Translated
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "File 3MF được tạo bởi BambuStudio. Một số cài đặt có thể khác với OrcaSlicer."
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "Không thể hoàn tác hoặc làm lại khi một thao tác đang chạy. Hãy dừng nó trước."
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "Căn giữa infill bên trong của từng phần theo chính nó, như thể nó được slice riêng, thay vì theo toàn bộ cụm lắp ráp. Các phần chạm hoặc chồng lên nhau được coi là một khối và dùng chung một tâm; các phần rời nhau (hoặc các vật thể 3D riêng biệt) thì mỗi phần có tâm riêng.\n"
+#~ "Hữu ích khi một cụm lắp ráp gộp nhiều vật thể mà mỗi vật thể cần giữ infill nhất quán, tự căn giữa.\n"
+#~ "Ảnh hưởng đến các mẫu đường và lưới cùng các infill dùng mẫu xoay.\n"
+#~ "Các mẫu bị khóa theo tọa độ toàn cục (Gyroid, Tổ ong, TPMS, ...) không bị ảnh hưởng."
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "Chỉ số của lớp hiện tại. Dựa trên một (tức là lớp đầu tiên là số 1)."
+
+# AI Translated
+#~ msgid "Video tutorial"
+#~ msgstr "Video hướng dẫn"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "Hình nguyên thủy"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "Đã tạo lưới rỗng"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "Hộp"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "Nhanh:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "Độ rộng (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "Độ sâu (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "Chiều cao (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "R đáy"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "R đỉnh"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "R lớn"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "R nhỏ"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "Tất cả cạnh"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "Cạnh trên"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "Cạnh dưới"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "Cạnh bên"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "Độ phân giải lưới"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "Thêm hình"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "Không có biên dạng ngoài"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "Không thể tạo mặt ngoài"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "Không thể tạo mặt có lỗ"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "Tròn xoay thất bại"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "Biên dạng"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "Bắt đầu biên dạng mới (cho lỗ)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "Số đoạn"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "Số cạnh"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "Nhấn vào khung vẽ để vẽ"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "Bám theo lưới"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "Bước lưới"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "Ngoài"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "khép kín"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%: %3% điểm %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY (Trên)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ (Trước)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ (Bên)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "Góc tròn xoay"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "Đặt 0 để đùn, >0 để tạo khối tròn xoay"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "Khoét hốc (cắt)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu biên dạng khép kín"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "Vẽ một biên dạng khép kín để bật"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "Kết quả rỗng"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "Đùn: %1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "Tròn xoay: %1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "Chưa chọn vật thể nào"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "Tạo mặt thất bại"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "Tạo mặt có lỗ thất bại"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "Lưới công cụ rỗng"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "Đã thêm hốc (thể tích âm)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "Khoét hốc: %1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "Cần lớp kết cấu đang hoạt động được ánh xạ bằng Trải phẳng (LSCM)."
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "Ô bàn cờ - một lưới kiểm tra thay cho kết cấu. Nơi các ô vẫn vuông thì kết cấu không bị méo; nơi chúng bị kéo giãn thì kết cấu cũng vậy"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "Độ méo - bản đồ nhiệt độ kéo giãn từ xanh đến đỏ trên phần trải phẳng"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "Trộn theo"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "Bề mặt"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "Lớp: hai filament luân phiên giữa các lớp in, hòa trộn mượt trên các bề mặt thẳng đứng nhưng biến mất trên các bề mặt nằm ngang, nơi cả một lớp chỉ là một dải màu.\n"
+#~ "Bề mặt: một bàn cờ mịn trên bề mặt, hoạt động ở mọi góc nhưng có thể trông như kết cấu hơn là sự hòa trộn.\n"
+#~ "Tự động: dùng lớp trên các mặt thẳng đứng; các mặt nằm ngang lấy filament đơn gần nhất, vì bàn cờ ở đó sẽ lộ ra thành hoa văn."
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "Mảnh - di chuyển, xoay và co giãn toàn bộ mảnh"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Đỉnh - kéo đỉnh để định hình lại; Shift/Ctrl để chọn nhiều"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "Cạnh - kéo cạnh để định hình lại; Shift/Ctrl để chọn nhiều"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "Vừa khung tất cả mảnh (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(Thử nghiệm) Dùng tác nhân máy in thay cho máy chủ in"
@@ -32218,16 +38322,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "Nhấn một mặt hoặc một mặt phẳng tham chiếu, rồi chọn một công cụ vẽ"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -32284,10 +38378,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "Khoảng cách dọc"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "Tuyến tính"
-
#~ msgid "Face recognition"
#~ msgstr "Nhận dạng mặt"
@@ -33724,9 +39814,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "Không thể tính độ rộng đường của %1%. Không thể lấy giá trị của \"%2%\" "
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "Khoảng cách không hợp lệ được cung cấp cho Flow::with_spacing(), kiểm tra chiều cao lớp và độ rộng đùn của bạn"
-
#~ msgctxt "Sync_Nozzle_AMS"
#~ msgid "Cancel"
#~ msgstr "Hủy"
@@ -33861,9 +39948,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "chọn phần"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction mode.\n"
#~ "\n"
diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po
index e5c067013f..2b00f52e4b 100644
--- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po
+++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Slic3rPE\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2026-06-11 12:37-0300\n"
"Last-Translator: Handle \n"
"Language-Team: \n"
@@ -159,23 +159,29 @@ msgstr "AMS 不支持 TPU 耗材。"
msgid "AMS does not support 'Bambu Lab PET-CF'."
msgstr "AMS不支持Bambu Lab PET-CF耗材。"
+# AI Translated
msgid "The current filament doesn't support the E3D high-flow nozzle and can't be used."
-msgstr "当前的耗材不支持 E3D 高流量喷嘴,因此无法使用。"
+msgstr "当前的耗材丝不支持 E3D 高流量喷嘴,因此无法使用。"
+# AI Translated
msgid "The current filament doesn't support the TPU high-flow nozzle and can't be used."
-msgstr "当前的耗材不支持 TPU 高流量喷嘴,因此无法使用。"
+msgstr "当前的耗材丝不支持 TPU 高流量喷嘴,因此无法使用。"
+# AI Translated
msgid "Auto dynamic flow calibration is not supported for TPU filament."
-msgstr "自动流量校准不支持 TPU 耗材"
+msgstr "TPU 耗材丝不支持自动动态流量校准。"
+# AI Translated
msgid "Bambu TPU 85A is not supported for printing with 0.4 mm Standard or High Flow nozzles."
-msgstr "Bambu TPU 85A 不支持使用 0.4 毫米标准或高流动性喷嘴进行打印。"
+msgstr "Bambu TPU 85A 不支持使用 0.4 毫米标准或高流量喷嘴进行打印。"
+# AI Translated
msgid "How to feed TPU filament."
-msgstr "如何装入 TPU 耗材。"
+msgstr "如何装入 TPU 耗材丝。"
+# AI Translated
msgid "How to feed TPU filament on X2D."
-msgstr "如何为 X2D 装载 TPU 耗材。"
+msgstr "如何为 X2D 装载 TPU 耗材丝。"
msgid "Please cold pull before printing TPU to avoid clogging. You may use cold pull maintenance on the printer."
msgstr "打印TPU前请先执行冷拉以避免堵塞。您可以使用打印机上的冷拉维护功能。"
@@ -186,8 +192,9 @@ msgstr "受潮的PVA会软化,并且可能粘在AMS内,请在使用前注意
msgid "Damp PVA is flexible and may get stuck in extruder. Dry it before use."
msgstr "受潮的PVA会软化,并且可能粘在挤出机内,请在使用前注意烘干"
+# AI Translated
msgid "The rough surface of PLA Glow can accelerate wear on the AMS system, particularly on the internal components of the AMS Lite."
-msgstr "泛光PLA的粗糙表面可能会加速AMS的磨损,尤其是AMS Lite的内部组件。"
+msgstr "PLA Glow 的粗糙表面可能会加速 AMS 的磨损,尤其是 AMS Lite 的内部组件。"
msgid "PLA Glow may wear the AMS first stage feeder. Use an external spool instead."
msgstr "PLA Glow 可能导致 AMS 一级进料器过度磨损,建议改用外置料盘。"
@@ -208,37 +215,45 @@ msgstr "默认参数可能影响打印质量,请根据需要进行调整,以
msgid "%s has a risk of nozzle clogging when using 0.4mm high-flow nozzles. Use with caution."
msgstr "%s 在使用 0.4 mm 高流量喷嘴时存在堵头风险,谨慎使用。"
+# AI Translated
#, c-format, boost-format
msgid "%s filaments are hard and brittle and could break in AMS, and there is also a risk of nozzle clogging when using 0.4mm high-flow nozzles. Use with caution."
-msgstr "%s 耗材质地较硬且较脆,在 AMS 中使用时可能发生断裂,使用 0.4 mm 高流量喷嘴时还存在堵头风险,谨慎使用。"
+msgstr "%s 耗材丝质地较硬且较脆,在 AMS 中使用时可能发生断裂,使用 0.4 mm 高流量喷嘴时还存在堵头风险,谨慎使用。"
#, c-format, boost-format
msgid "%s has a risk of nozzle clogging when using 0.4, 0.6, 0.8mm high-flow nozzles. Use with caution."
msgstr "%s 在使用 0.4 / 0.6 / 0.8 mm 高流量喷嘴时存在堵头风险,谨慎使用。"
+# AI Translated
+# Needs human review: English source is itself a fragment; confirm the intended sentence
#, c-format, boost-format
msgid "%s may fail to load or unload due to the Filament Track Switch. If you wish to continue."
-msgstr "%s 可能因耗材变轨器而无法装入或退料。如果要继续。"
+msgstr "%s 可能因耗材变轨器而无法进料或退料。如仍要继续,请谨慎使用。"
+# AI Translated
#, c-format, boost-format
msgid "%s is not supported by %s extruder."
-msgstr "%s 不被 %s 挤出机支持。"
+msgstr "%s 无法用于%s挤出机。"
+# AI Translated
#, c-format, boost-format
msgid "There may be critical print quality issues when printing '%s' with %s Bowden extruder. Use with caution!"
-msgstr "'%s' 在 %s 远程挤出机上打印时,可能会出现严重的打印质量问题。谨慎使用!"
+msgstr "'%s' 在%s远程挤出机上打印时,可能会出现严重的打印质量问题。谨慎使用!"
+# AI Translated
#, c-format, boost-format
msgid "There may be critical print quality issues when printing '%s' with %s extruder. Use with caution!"
-msgstr "'%s' 在 %s 挤出机上打印时,可能会出现严重的打印质量问题。谨慎使用!"
+msgstr "'%s' 在%s挤出机上打印时,可能会出现严重的打印质量问题。谨慎使用!"
+# AI Translated
#, c-format, boost-format
msgid "There may be print quality issues when printing '%s' with %s Bowden extruder. Use with caution."
-msgstr "'%s' 在 %s 远程挤出机上打印时,可能会出现打印质量问题。谨慎使用。"
+msgstr "'%s' 在%s远程挤出机上打印时,可能会出现打印质量问题。谨慎使用。"
+# AI Translated
#, c-format, boost-format
msgid "There may be print quality issues when printing '%s' with %s extruder. Use with caution."
-msgstr "'%s' 在 %s 挤出机上打印时,可能会出现打印质量问题。谨慎使用。"
+msgstr "'%s' 在%s挤出机上打印时,可能会出现打印质量问题。谨慎使用。"
msgid "High Flow"
msgstr "高流量"
@@ -253,8 +268,9 @@ msgstr "TPU 高流量"
msgid "E3D High Flow"
msgstr "E3D 高流量"
+# AI Translated
msgid "Unknown"
-msgstr "未定义"
+msgstr "未知"
msgid "Hardened Steel"
msgstr "硬化钢"
@@ -265,8 +281,9 @@ msgstr "不锈钢"
msgid "Tungsten Carbide"
msgstr "碳化钨"
+# AI Translated
msgid "The toolhead and hotend rack may move. Please keep your hands away from the chamber."
-msgstr "工具头和热端架可能会运动,请勿将手伸入机箱。"
+msgstr "工具头和热端架可能会运动,请勿将手伸入腔体内。"
msgid "Warning"
msgstr "警告"
@@ -283,8 +300,9 @@ msgstr "重新读取全部"
msgid "Reading the hotends, please wait."
msgstr "正在读取热端信息,请稍候。"
+# AI Translated
msgid "During the hotend upgrade, the toolhead will move. Don't reach into the chamber."
-msgstr "在热端升级过程中,工具头会移动。请勿将手伸入机箱内。"
+msgstr "在热端升级过程中,工具头会移动。请勿将手伸入腔体内。"
msgid "Update"
msgstr "更新"
@@ -349,8 +367,11 @@ msgstr "读取中 "
msgid "Please wait"
msgstr "请稍候"
-msgid "Reading"
-msgstr "读取中"
+# AI Translated
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "感应热端架:正在读取 %d/%d"
msgid "Running..."
msgstr "运行中..."
@@ -385,9 +406,10 @@ msgstr "序列号"
msgid "Version"
msgstr "版本"
+# AI Translated
#, c-format, boost-format
msgid "Used Time: %s"
-msgstr "使用时间: %s"
+msgstr "使用时间:%s"
msgid "Dynamic nozzles are allocated on the current plate. Picking hotend is not supported."
msgstr "当前盘存在动态分配喷嘴,不支持修改。"
@@ -428,8 +450,9 @@ msgstr "画刷尺寸"
msgid "Smart fill angle"
msgstr "智能填充角度"
+# AI Translated
msgid "Gap area"
-msgstr "间隙面积"
+msgstr "缝隙面积"
msgid "Left mouse button"
msgstr "鼠标左键"
@@ -449,14 +472,16 @@ msgstr "擦除"
msgid "Mouse wheel"
msgstr "鼠标滚轮"
+# AI Translated
msgid "Auto support threshold angle: "
-msgstr "自动支撑角度阈值:"
+msgstr "自动支撑角度阈值: "
msgid "Circle"
msgstr "圆"
+# AI Translated
msgid "Sphere"
-msgstr "球"
+msgstr "球体"
msgid "Fill"
msgstr "填充"
@@ -474,8 +499,9 @@ msgstr "水平"
msgid "Allows painting only on facets selected by: \"%1%\""
msgstr "绘制仅对由%1%选中的面片生效"
+# AI Translated
msgid "Highlight faces according to overhang angle."
-msgstr "根据当前设置的悬垂角度来高亮片面。"
+msgstr "根据当前设置的悬垂角度高亮显示面片。"
msgid "No auto support"
msgstr "无自动支撑"
@@ -501,9 +527,11 @@ msgstr "选择底面"
msgid "Lay on Face"
msgstr "选择底面"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "耗材丝数量超过涂色工具支持的最大值,仅前%1%个耗材丝可在涂色工具中使用。"
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "耗材丝数量超过涂色工具支持的最大值,仅前 %1% 个耗材丝可在涂色工具中使用。"
msgid "Color Painting"
msgstr "涂色"
@@ -532,8 +560,9 @@ msgstr "画刷"
msgid "Smart fill"
msgstr "智能填充"
+# AI Translated
msgid "Bucket fill"
-msgstr "批量填充"
+msgstr "油漆桶填充"
msgid "Height range"
msgstr "高度范围"
@@ -555,8 +584,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "快捷键 "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "快捷键 %d"
msgid "Triangle"
msgstr "三角形"
@@ -567,21 +598,25 @@ msgstr "高度范围"
msgid "Remove painted color"
msgstr "移除已绘制的颜色"
+# AI Translated
#, boost-format
msgid "Painted using: Filament %1%"
-msgstr "绘制使用:耗材丝%1%"
+msgstr "使用耗材丝 %1% 绘制"
msgid "To:"
msgstr "到:"
+# AI Translated
msgid "Entering color painting"
-msgstr "进入颜色绘制"
+msgstr "进入涂色"
+# AI Translated
msgid "Leaving color painting"
-msgstr "离开颜色绘制"
+msgstr "离开涂色"
+# AI Translated
msgid "Color painting editing"
-msgstr "颜色绘制编辑"
+msgstr "涂色编辑"
msgid "Paint-on fuzzy skin"
msgstr "手绘绒毛表面"
@@ -616,14 +651,16 @@ msgstr "移动"
msgid "Please select at least one object."
msgstr "请至少选中一个对象。"
+# AI Translated
msgid "Gizmo-Move"
-msgstr "Gizmo-移动"
+msgstr "移动"
msgid "Rotate"
msgstr "旋转"
+# AI Translated
msgid "Gizmo-Rotate"
-msgstr "Gizmo-旋转"
+msgstr "旋转"
msgid "Optimize orientation"
msgstr "优化朝向"
@@ -632,8 +669,9 @@ msgctxt "Verb"
msgid "Scale"
msgstr "缩放"
+# AI Translated
msgid "Gizmo-Scale"
-msgstr "缩放工具"
+msgstr "缩放"
msgid "Error: Please close all toolbar menus first"
msgstr "错误:请先关闭所有工具栏菜单"
@@ -648,6 +686,9 @@ msgstr "mm"
msgid "Part selection"
msgstr "零件选择"
+msgid "Select multiple objects"
+msgstr "选择多个对象"
+
msgid "Fixed step drag"
msgstr "固定拖动步长"
@@ -709,9 +750,84 @@ msgstr "零件"
msgid "Relative"
msgstr "相对"
+msgid "Selection"
+msgstr "选中"
+
+msgid "Plate"
+msgstr "盘"
+
+# AI Translated
+msgid "Distribute"
+msgstr "分布"
+
msgid "Coordinate system used for transform actions."
msgstr "用于变换操作的坐标系"
+# AI Translated
+msgid "Reference for alignment"
+msgstr "对齐基准"
+
+# AI Translated
+msgid "Select at least 3 parts or objects"
+msgstr "请至少选择 3 个零件或对象"
+
+# AI Translated
+msgid "Align left"
+msgstr "左对齐"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "左右居中对齐"
+
+# AI Translated
+msgid "Align right"
+msgstr "右对齐"
+
+# AI Translated
+msgid "Align front"
+msgstr "前对齐"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "前后居中对齐"
+
+# AI Translated
+msgid "Align back"
+msgstr "后对齐"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "底对齐"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "上下居中对齐"
+
+# AI Translated
+msgid "Align top"
+msgstr "顶对齐"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "左右均匀分布"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "前后均匀分布"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "上下均匀分布"
+
+# AI Translated
+# Needs human review: Check 落板 reads right on the Move gizmo button and the object-list menu item; 落到热床 is the longer alternative.
+msgid "Drop"
+msgstr "落板"
+
+# AI Translated
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr "沿 Z 轴移动所选项,使其最低点接触热床。"
+
msgid "Absolute"
msgstr "绝对"
@@ -750,14 +866,18 @@ msgstr "插销"
msgid "Dowel"
msgstr "销钉"
+# AI Translated
+# Needs human review: Inherited from BambuStudio (按扣); confirm 卡扣 reads right next to 插销/销钉 in the Cut tool connector types.
msgid "Snap"
-msgstr "按扣"
+msgstr "卡扣"
+# AI Translated
msgid "Prism"
-msgstr "棱角"
+msgstr "棱柱"
+# AI Translated
msgid "Frustum"
-msgstr "锥体"
+msgstr "锥台"
msgid "Square"
msgstr "正方形"
@@ -813,9 +933,6 @@ msgstr "凹槽角"
msgid "Cut position"
msgstr "切割位置"
-msgid "Build Volume"
-msgstr "打印体积"
-
msgid "Multiple"
msgstr "多个"
@@ -828,24 +945,27 @@ msgstr "间隙"
msgid "Spacing"
msgstr "间距"
+# AI Translated
msgid ""
"Click to flip the cut plane\n"
"Drag to move the cut plane"
msgstr ""
-"单击以翻转剖切面\n"
-"拖动以移动剖切面"
+"单击以翻转切割平面\n"
+"拖动以移动切割平面"
+# AI Translated
msgid ""
"Click to flip the cut plane\n"
"Drag to move the cut plane\n"
"Right-click a part to assign it to the other side"
msgstr ""
-"单击以翻转剖切面\n"
-"拖动以移动剖切面\n"
-"在零件上单击鼠标右键以将其指定给另一侧"
+"单击以翻转切割平面\n"
+"拖动以移动切割平面\n"
+"右键单击零件可将其分配到另一侧"
+# AI Translated
msgid "Move cut plane"
-msgstr "移动剖切面"
+msgstr "移动切割平面"
msgid "Mode"
msgstr "模式"
@@ -862,8 +982,9 @@ msgstr "拖拽"
msgid "Move cut line"
msgstr "移动切割线"
+# AI Translated
msgid "Draw cut line"
-msgstr "绘制切线"
+msgstr "绘制切割线"
msgid "Add connector"
msgstr "添加连接件"
@@ -888,8 +1009,9 @@ msgctxt "Cut tool"
msgid "Cut"
msgstr "切割"
+# AI Translated
msgid "Rotate cut plane"
-msgstr "旋转剖切面"
+msgstr "旋转切割平面"
msgid "Remove connectors"
msgstr "删除所有连接件"
@@ -909,8 +1031,9 @@ msgstr "与半径相关的间隔比例"
msgid "Confirm connectors"
msgstr "确认"
+# AI Translated
msgid "Flip cut plane"
-msgstr "翻转剖切面"
+msgstr "翻转切割平面"
msgid "Groove change"
msgstr "槽变化"
@@ -946,8 +1069,9 @@ msgstr "切割后"
msgid "Cut to parts"
msgstr "切割为零件"
+# AI Translated
msgid "Reset cutting plane and remove connectors"
-msgstr "重置切割平面并移除连接器"
+msgstr "重置切割平面并移除连接件"
# AI Translated
msgid "Reset Cut"
@@ -975,11 +1099,13 @@ msgstr "存在连接件相互重叠"
msgid "Select at least one object to keep after cutting."
msgstr "切割后至少选择一个要保留的对象。"
+# AI Translated
msgid "Cut plane is placed out of object"
-msgstr "剖切面放置在对象之外"
+msgstr "切割平面位于对象之外"
+# AI Translated
msgid "Cut plane with groove is invalid"
-msgstr "槽所在的切割平面无效"
+msgstr "带槽的切割平面无效"
msgid "Connector"
msgstr "连接件"
@@ -987,11 +1113,15 @@ msgstr "连接件"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
-"物体(%1%)存在重复的连接件。切片结果中可能会缺少部分连接件。\n"
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
+"对象 (%1%) 存在重复的连接件。切片结果中可能会缺少部分连接件。\n"
"请向 OrcaSlicer 团队报告此问题出现的场景。\n"
"谢谢。"
@@ -1007,8 +1137,9 @@ msgstr "修复模型对象"
msgid "Cut by line"
msgstr "按线切割"
+# AI Translated
msgid "Delete connector"
-msgstr "删除连接器"
+msgstr "删除连接件"
msgid "Entering Cut gizmo"
msgstr "进入切割小工具"
@@ -1056,9 +1187,11 @@ msgstr "低"
msgid "Extra low"
msgstr "非常低"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d 个三角形"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% 个三角形"
msgid "Show wireframe"
msgstr "显示线框"
@@ -1069,26 +1202,43 @@ msgstr "处理预览的过程中无法应用。"
msgid "Operation already cancelling. Please wait a few seconds."
msgstr "操作已在取消中,请等待片刻。"
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "模型简化已取消"
+
+msgid "Wiki Guide"
+msgstr "维基指南"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "视频指南"
+
+# AI Translated
msgid "Enforce seam"
-msgstr "添加Z缝"
+msgstr "强制接缝"
+# AI Translated
msgid "Block seam"
-msgstr "屏蔽Z缝"
+msgstr "屏蔽接缝"
+# AI Translated
msgid "Seam painting"
-msgstr "Z缝绘制"
+msgstr "接缝绘制"
msgid "Remove selection"
msgstr "移除绘制"
+# AI Translated
msgid "Entering seam painting"
-msgstr "进入Z缝绘制"
+msgstr "进入接缝绘制"
+# AI Translated
msgid "Leaving Seam painting"
-msgstr "退出Z缝绘制"
+msgstr "退出接缝绘制"
+# AI Translated
msgid "Paint-on seam editing"
-msgstr "编辑手绘填缝"
+msgstr "手绘接缝编辑"
#. TRN - Title in Undo/Redo stack after rotate with text around emboss axe
msgid "Text rotate"
@@ -1119,6 +1269,14 @@ msgstr "放置于表面"
msgid "Emboss"
msgstr "浮雕"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "样式中没有活动字体。请选择正确的字体。"
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont 未正确加载。"
+
msgid "NORMAL"
msgstr "常规"
@@ -1152,8 +1310,9 @@ msgstr "无法使用所选字体书写文本。请尝试选择其他字体。"
msgid "Embossed text cannot contain only white spaces."
msgstr "浮雕文本不能只包含空格。"
+# AI Translated
msgid "Text contains character glyph (represented by '?') unknown by font."
-msgstr "文本包含字体未知的字符字形(用“?”表示)。"
+msgstr "文本中包含该字体不支持的字符(以 '?' 表示)。"
msgid "Text input doesn't show font skew."
msgstr "文本输入不显示字体倾斜。"
@@ -1164,11 +1323,13 @@ msgstr "文本输入不显示字体加粗。"
msgid "Text input doesn't show gap between lines."
msgstr "文本输入不显示行之间的间隙。"
+# AI Translated
msgid "Too tall, diminished font height inside text input."
-msgstr "太高,文本输入中的字体高度减小。"
+msgstr "字体过高,已在文本输入框中缩小显示。"
+# AI Translated
msgid "Too small, enlarged font height inside text input."
-msgstr "文字输入里面的字体高度太小,放大了。"
+msgstr "字体过小,已在文本输入框中放大显示。"
msgid "Text doesn't show current horizontal alignment."
msgstr "文本不显示当前水平对齐方式"
@@ -1188,15 +1349,19 @@ msgstr "操作"
msgid "Join"
msgstr "合并"
+# AI Translated
msgid "Click to change text into object part."
-msgstr "单击可将文本更改为对象部分。"
+msgstr "单击可将文本更改为零件。"
+# AI Translated
msgid "You can't change a type of the last solid part of the object."
-msgstr "不能更改对象的最后一个实体部分的类型。"
+msgstr "无法更改对象中最后一个实体零件的类型。"
+# AI Translated
+# Needs human review: Check 切除 reads right next to 合并 and 修改器 on the Emboss/SVG operation buttons.
msgctxt "EmbossOperation"
msgid "Cut"
-msgstr "切割"
+msgstr "切除"
msgid "Click to change part type into negative volume."
msgstr "单击可将零件类型更改为负体积。"
@@ -1271,9 +1436,10 @@ msgstr "您确定要永久删除“%1%”样式吗?"
msgid "Delete \"%1%\" style."
msgstr "删除“%1%”样式。"
+# AI Translated
#, boost-format
msgid "Can't delete \"%1%\". It is last style."
-msgstr "无法删除“%1%”。这是最后一种风格。"
+msgstr "无法删除“%1%”,这是最后一个样式。"
#, boost-format
msgid "Can't delete temporary style \"%1%\"."
@@ -1287,6 +1453,7 @@ msgstr "已修改样式“%1%”"
msgid "Current style is \"%1%\""
msgstr "当前样式为“%1%”"
+# AI Translated
#, boost-format
msgid ""
"Changing style to \"%1%\" will discard current style modification.\n"
@@ -1294,6 +1461,7 @@ msgid ""
"Would you like to continue anyway?"
msgstr ""
"将样式更改为“%1%”将放弃当前的样式修改。\n"
+"\n"
"是否仍要继续?"
msgid "Not valid style."
@@ -1389,20 +1557,23 @@ msgstr "撤销粗细调整"
msgid "Tiny / Wide glyphs"
msgstr "细小/粗大的字形"
+# AI Translated
msgid "Undo letter's skew"
-msgstr "撤消字母的斜体效果"
+msgstr "撤销字母的斜体效果"
msgid "Italic strength ratio"
msgstr "倾斜强度比"
+# AI Translated
msgid "Undo translation"
-msgstr "撤消翻译"
+msgstr "撤销平移"
msgid "Distance of the center of the text to the model surface."
msgstr "文字中心到模型曲面的距离。"
+# AI Translated
msgid "Undo rotation"
-msgstr "撤消旋转"
+msgstr "撤销旋转"
msgid "Rotate text Clockwise."
msgstr "顺时针旋转文本。"
@@ -1416,22 +1587,27 @@ msgstr "沿对象曲面移动文本时,锁定文本的旋转。"
msgid "Select from True Type Collection."
msgstr "从True Type集合中选择。"
+# AI Translated
msgid "Set text to face camera"
-msgstr "文字面向摄像头"
+msgstr "文字朝向相机"
+# AI Translated
msgid "Orient the text towards the camera."
-msgstr "选择文字使其面向摄像头"
+msgstr "使文字朝向相机。"
#, boost-format
msgid "Font \"%1%\" can't be used. Please select another."
msgstr "字体\"%1%\"无法使用,请选择其他字体"
+# AI Translated
#, boost-format
msgid "Can't load exactly same font (\"%1%\"). Application selected a similar one (\"%2%\"). You have to specify font for enable edit text."
-msgstr "不能加载完全相同的字体(\"%1%\")。应用程序选择了一种类似的字体(\"%2%\")。你必须为启用编辑文本指定字体。"
+msgstr "无法加载完全相同的字体(\"%1%\"),已改用相似的字体(\"%2%\")。要编辑文本,必须指定字体。"
+# AI Translated
+# Needs human review: Check 无字符 reads right after a font name in the emboss font list, where it marks a font that cannot render the text.
msgid "No symbol"
-msgstr "无符号"
+msgstr "无字符"
msgid "Loading"
msgstr "载入中"
@@ -1496,11 +1672,12 @@ msgstr "距表面"
msgid "Keep up"
msgstr "保持向上"
+# AI Translated
#. TRN - Input label. Be short as possible.
#. Some Font file contain multiple fonts inside and
#. this is numerical selector of font inside font collections
msgid "Collection"
-msgstr "收集"
+msgstr "字体集"
#. TRN - Title in Undo/Redo stack after rotate with SVG around emboss axe
msgid "SVG rotate"
@@ -1539,34 +1716,39 @@ msgstr "线性渐变"
msgid "Radial gradient"
msgstr "径向渐变"
+# AI Translated
msgid "Open filled path"
-msgstr "打开填充路径"
+msgstr "填充路径未闭合"
msgid "Undefined stroke type"
msgstr "未定义的描边类型"
+# AI Translated
msgid "Path can't be healed from self-intersection and multiple points."
-msgstr "路径无法从自相交和多点中修复"
+msgstr "无法修复路径中的自相交和重复点。"
msgid "Final shape contains self-intersection or multiple points with same coordinate."
msgstr "最终形状包含自相交或相同坐标的多点"
+# AI Translated
#, boost-format
msgid "Shape is marked as invisible (%1%)."
-msgstr "形状已被标记为不可见 (%1%)."
+msgstr "形状已被标记为不可见 (%1%)。"
+# AI Translated
#. TRN: The first placeholder is shape identifier, the second is text describing the problem.
#, boost-format
msgid "Fill of shape (%1%) contains unsupported: %2%."
-msgstr "形状填充(%1%)包含不受支持的:%2%。"
+msgstr "形状(%1%)的填充包含不受支持的内容:%2%。"
#, boost-format
msgid "Stroke of shape (%1%) is too thin (minimal width is %2% mm)."
msgstr "形状 (%1%) 的描边太细了(不小于 %2% mm)。"
+# AI Translated
#, boost-format
msgid "Stroke of shape (%1%) contains unsupported: %2%."
-msgstr "形状笔划(%1%)包含不受支持的:%2%。"
+msgstr "形状(%1%)的描边包含不受支持的内容:%2%。"
# AI Translated
msgid "Not valid state please report reproduction steps on github"
@@ -1584,8 +1766,9 @@ msgstr "浮雕形状中缺少 SVG 文件"
msgid "Missing data of svg file"
msgstr "缺少 SVG 文件数据"
+# AI Translated
msgid "Face the camera"
-msgstr "面向摄像机"
+msgstr "朝向相机"
#. TRN - Preview of filename after clear local filepath.
msgid "Unknown filename"
@@ -1598,8 +1781,9 @@ msgstr "SVG文件路径:\"%1%\""
msgid "Reload SVG file from disk."
msgstr "从磁盘重新加载SVG文件。"
+# AI Translated
msgid "Change file"
-msgstr "改变文件"
+msgstr "更换文件"
msgid "Change to another SVG file."
msgstr "更改为另一个 SVG 文件。"
@@ -1618,9 +1802,10 @@ msgstr ""
msgid "Bake"
msgstr "烘焙"
+# AI Translated
#. TRN: Tooltip for the menu item.
msgid "Bake into model as uneditable part"
-msgstr "将模型烘焙为不可编辑的部分"
+msgstr "烘焙到模型中,成为不可编辑的零件"
msgid "Save as"
msgstr "另存为"
@@ -1678,8 +1863,9 @@ msgstr "SVG 形状"
msgid "Mirror"
msgstr "镜像"
+# AI Translated
msgid "Choose SVG file for emboss:"
-msgstr "选择SVG文件进行浮雕操作:"
+msgstr "选择SVG文件进行浮雕操作:"
#, boost-format
msgid "File does NOT exist (%1%)."
@@ -1743,8 +1929,9 @@ msgctxt "Keyboard Shortcut"
msgid "Esc"
msgstr "Esc"
+# AI Translated
msgid "Cancel a feature until exit"
-msgstr "取消一个特征直到退出"
+msgstr "逐个取消已选特征,直至退出"
msgid "Measure"
msgstr "测量"
@@ -1752,8 +1939,9 @@ msgstr "测量"
msgid "Please confirm explosion ratio = 1, and please select at least one object."
msgstr "请确保爆炸比例为1,且至少选择一个对象"
+# AI Translated
msgid "Edit to scale"
-msgstr "编辑比例"
+msgstr "编辑数值以缩放"
msgctxt "Verb"
msgid "Scale all"
@@ -1768,39 +1956,53 @@ msgstr "直径"
msgid "Length"
msgstr "长度"
-msgid "Selection"
-msgstr "选中"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "面 1(固定)"
-msgid " (Moving)"
-msgstr "(活动的)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "面 2(移动)"
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "点 1(固定)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "点 2(移动)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "选中项 1"
+
+# AI Translated
msgid ""
"Select 2 faces on objects and \n"
" make objects assemble together."
msgstr ""
-"在两个物体上选择两个面 \n"
-"并将物体组合在一起。"
+"在两个对象上选择两个面 \n"
+"并将对象组合在一起。"
+# AI Translated
msgid ""
"Select 2 points or circles on objects and \n"
" specify distance between them."
msgstr ""
-"在两个物体上选择两个点或圆 \n"
+"在两个对象上选择两个点或圆 \n"
"并指定它们之间的距离。"
-msgid "Face"
-msgstr "面"
-
-msgid " (Fixed)"
-msgstr "(固定的)"
-
-msgid "Point"
-msgstr "点"
+# AI Translated
+msgid "Selection 2"
+msgstr "选中项 2"
+# AI Translated
msgid ""
"Feature 1 has been reset, \n"
"feature 2 has been feature 1"
-msgstr "特征1已经被重置,特征2变成特征1"
+msgstr ""
+"特征1已被重置,\n"
+"特征2已变为特征1"
msgid "Copy to clipboard"
msgstr "复制到剪贴板"
@@ -1832,8 +2034,9 @@ msgstr "特征1"
msgid "Reverse rotation"
msgstr "反转方向"
+# AI Translated
msgid "Rotate around center:"
-msgstr "绕中心旋转:"
+msgstr "绕中心旋转:"
msgid "Parallel distance:"
msgstr "平行距离:"
@@ -1850,7 +2053,7 @@ msgstr "离开测量小工具"
# AI Translated
msgctxt "Assembly tool"
msgid "Assemble"
-msgstr "组合"
+msgstr "装配"
msgid "Please confirm explosion ratio = 1 and select at least two volumes."
msgstr "请确认爆炸比例 = 1 并选择至少两个部件。"
@@ -1864,22 +2067,26 @@ msgstr "(移动中)"
msgid "Point and point assembly"
msgstr "点对点装配"
+# AI Translated
msgid "Warning: please select two different meshes."
-msgstr "警告:请选择两个不同的网格。"
+msgstr "警告:请选择两个不同的网格。"
+# AI Translated
msgid "Warning: please select Plane's feature."
-msgstr "警告:请选择面特征。"
+msgstr "警告:请选择面特征。"
+# AI Translated
msgid "Warning: please select Point's or Circle's feature."
-msgstr "警告:请选择点或圆特征。"
+msgstr "警告:请选择点或圆特征。"
+# AI Translated
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"and only parts can be lifted."
msgstr ""
"建议先组合对象,\n"
-"因为对象被固定在打印床上,\n"
+"因为对象被固定在热床上,\n"
"只有零件可以被抬起。"
msgid "Face and face assembly"
@@ -1891,6 +2098,22 @@ msgstr "进入装配小工具"
msgid "Leaving Assembly gizmo"
msgstr "离开装配小工具"
+# AI Translated
+msgid "Parts of a cut object cannot be moved"
+msgstr "切割对象的零件无法移动"
+
+# AI Translated
+msgid "Aligning to the plate is available in X and Y only"
+msgstr "对齐到盘仅适用于 X 和 Y 方向"
+
+# AI Translated
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr "要沿 Z 轴移动所选对象,请先关闭其“自动落板”"
+
+# AI Translated
+msgid "All selected objects must be on the same plate"
+msgstr "所有选中的对象必须位于同一个盘上"
+
msgid "Shift+"
msgstr "Shift+"
@@ -1910,8 +2133,9 @@ msgstr "未定义"
msgid "%1% was replaced with %2%"
msgstr "%1%已被%2%替换"
+# AI Translated
msgid "The configuration may be generated by a newer version of OrcaSlicer."
-msgstr "此配置可能由新版本的逆戟鲸切片器生成"
+msgstr "此配置可能由新版本的 OrcaSlicer 生成。"
msgid "Some values have been replaced. Please check them:"
msgstr "部分数值已被替换,请检查:"
@@ -2055,41 +2279,48 @@ msgstr "访问码不正确"
msgid "Connect %s failed! [SN:%s, code=%s]"
msgstr "连接 %s 失败。[SN:%s, code=%s]"
+# AI Translated
msgid ""
"Orca Slicer requires the Microsoft WebView2 Runtime to operate certain features.\n"
"Click Yes to install it now."
msgstr ""
"Orca Slicer 依赖 Microsoft WebView2 运行时以运行部分功能。\n"
-"请点击 Yes 进行安装。"
+"请点击“是”立即安装。"
msgid "WebView2 Runtime"
msgstr "WebView2 运行库"
+# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"无法安装 Microsoft WebView2 运行库。\n"
-"在安装之前,包括设置向导在内的部分功能可能显示为空白。\n"
-"请从 https://developer.microsoft.com/microsoft-edge/webview2/ 手动安装,然后重启 Orca Slicer。"
+"安装完成前,设置向导等部分功能可能显示为空白。\n"
+"请从 %1% 手动安装,然后重启 Orca Slicer。"
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "资源路径不存在或不是目录:%s"
+# AI Translated
#, c-format, boost-format
msgid ""
"%s\n"
"Do you want to continue?"
-msgstr "%s 是否继续?"
+msgstr ""
+"%s\n"
+"是否继续?"
msgid "Remember my choice"
msgstr "记住我的选择"
+# AI Translated
#, c-format, boost-format
msgid "Click to download new version in default browser: %s"
-msgstr "在默认浏览器中点击下载最新版本: %s"
+msgstr "点击以在默认浏览器中下载新版本:%s"
msgid "OrcaSlicer needs an update"
msgstr "OrcaSlicer 需要更新"
@@ -2114,8 +2345,9 @@ msgstr "插件 %s 已不再可用。"
msgid "Plugin %s access is unauthorized."
msgstr "插件 %s 的访问未获授权。"
+# AI Translated
msgid "Loading printer & filament profiles"
-msgstr "正在加载打印机和耗材配置文件"
+msgstr "正在加载打印机和耗材丝配置文件"
msgid "Creating main window"
msgstr "正在创建主窗口"
@@ -2147,11 +2379,13 @@ msgstr "加载模式视图"
msgid "Choose one file (3MF):"
msgstr "选择一个文件(3MF):"
+# AI Translated
msgid "Choose one or more files (3MF/STEP/STL/SVG/OBJ/AMF/USD*/ABC/PLY):"
-msgstr "选择一个或多个文件(3MF/STEP/STL/SVG/OBJ/AMF/USD*/ABC/PLY):"
+msgstr "选择一个或多个文件(3MF/STEP/STL/SVG/OBJ/AMF/USD*/ABC/PLY):"
+# AI Translated
msgid "Choose one or more files (3MF/STEP/STL/SVG/OBJ/AMF):"
-msgstr "选择一个或多个文件(3mf/step/STL/svg/obj/amf):"
+msgstr "选择一个或多个文件(3MF/STEP/STL/SVG/OBJ/AMF):"
msgid "Choose ZIP file"
msgstr "选择ZIP文件"
@@ -2172,23 +2406,28 @@ msgstr "您可以将修改后的预设保留给新项目、放弃修改,或将
msgid "User logged out"
msgstr "用户登出"
+# AI Translated
msgid "You are currently in Stealth Mode. To log into the Cloud, you need to disable Stealth Mode first."
-msgstr "您当前处于局域网模式。要登录云端,需要先禁用局域网模式。"
+msgstr "您当前处于隐身模式。要登录云端,需要先禁用隐身模式。"
+# AI Translated
msgid "Stealth Mode"
-msgstr "局域网模式"
+msgstr "隐身模式"
+# AI Translated
msgid "Quit Stealth Mode"
-msgstr "退出局域网模式"
+msgstr "退出隐身模式"
+# AI Translated
msgid "new or open project file is not allowed during the slicing process!"
-msgstr "在切片过程不允许新建或打开项目文件!"
+msgstr "切片过程中不允许新建或打开项目文件!"
msgid "Open Project"
msgstr "打开项目"
+# AI Translated
msgid "The version of Orca Slicer is too low and needs to be updated to the latest version before it can be used normally."
-msgstr "此逆戟鲸切片器的版本过低,需更新至最新版本方可正常使用"
+msgstr "Orca Slicer 版本过低,需更新至最新版本方可正常使用。"
msgid "Cloud sync conflict:"
msgstr "云同步冲突:"
@@ -2197,12 +2436,13 @@ msgstr "云同步冲突:"
msgid "Cloud sync conflict for preset \"%s\":"
msgstr "预设 \"%s\" 云同步冲突:"
+# AI Translated
msgid ""
"This preset has a newer version in OrcaCloud.\n"
"Pull downloads the cloud copy. Force push overwrites it with your local preset."
msgstr ""
"该预设在 OrcaCloud 中有更新版本。\n"
-"拉取会下载云端副本。强制推送会用您的本地预设覆盖该副本"
+"拉取会下载云端副本。强制推送会用您的本地预设覆盖该副本。"
msgid ""
"A preset with this name already exists in OrcaCloud.\n"
@@ -2232,13 +2472,14 @@ msgstr ""
"强制推送将用您本地的预设更改覆盖云端副本。\n"
"是否继续?"
+# AI Translated
#, c-format, boost-format
msgid ""
"Force push will overwrite the cloud copy of preset \"%s\" with your local changes.\n"
"Do you want to continue?"
msgstr ""
"强制推送将用您的本地更改覆盖预设 \"%s\" 的云端副本。\n"
-"你希望继续吗?"
+"是否继续?"
msgid "Resolve cloud sync conflict"
msgstr "解决云同步冲突"
@@ -2293,6 +2534,66 @@ msgstr "网络插件限制"
msgid "Privacy Policy Update"
msgstr "隐私协议更新"
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "您所有的耗材丝预设都可在其对应的打印机上使用。"
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "迁移耗材丝预设"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 重构了许多系统耗材丝预设,以修复不正确的配置文件并为未来功能做准备。因此,下列预设在其原本适用的部分打印机上不再显示。给您带来不便,我们深表歉意;这是一次性修复。\n"
+"\n"
+"是否现在将这些打印机重新添加到您的预设中?操作前会先备份您的预设。您也可以稍后通过 帮助 > 迁移耗材丝预设 执行此操作。"
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1%(基于 %2%)"
+
+msgid "Don't remind me again"
+msgstr "不再提醒"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "无法备份您的预设,因此未进行迁移。"
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "无法锁定用户预设文件夹,因此未迁移任何内容。可能有另一个 OrcaSlicer 实例正在保存预设;请稍后通过 帮助 > 迁移耗材丝预设 重试。"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"无法迁移您的耗材丝预设。预设的备份已保存到:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"您的耗材丝预设已迁移。请在原来使用它们的耗材丝列表中重新选择。\n"
+"\n"
+"预设的备份已保存到:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "无法迁移这些预设:"
+
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
msgstr "您的 Orca Cloud 配置文件(用户 ID:“%s”)"
@@ -2407,6 +2708,9 @@ msgstr "插件已刷新。"
msgid "Failed to refresh plugins: %s"
msgstr "刷新插件失败:%s"
+msgid "Unknown error"
+msgstr "未知错误"
+
# AI Translated
msgid "Select plugin package"
msgstr "选择插件包"
@@ -2424,8 +2728,9 @@ msgstr "正在为应用程序切换语言"
msgid "The uploads are still ongoing"
msgstr "上传任务依然在继续"
+# AI Translated
msgid "Stop them and continue anyway?"
-msgstr "停止它们并且继续?"
+msgstr "是否停止这些上传并继续?"
msgid "Ongoing uploads"
msgstr "正在进行的上传"
@@ -2454,8 +2759,9 @@ msgstr "打开"
msgid "Rename"
msgstr "重命名"
+# AI Translated
msgid "Orca Slicer GUI initialization failed"
-msgstr "逆戟鲸切片器图形界面初始化失败"
+msgstr "Orca Slicer 图形界面初始化失败"
#, boost-format
msgid "Fatal error, exception: %1%"
@@ -2482,8 +2788,9 @@ msgstr "速度"
msgid "Strength"
msgstr "强度"
+# AI Translated
msgid "Top solid layers"
-msgstr "顶部壳体层数"
+msgstr "顶部外壳层数"
msgid "Top minimum shell thickness"
msgstr "顶部外壳最小厚度"
@@ -2512,14 +2819,16 @@ msgstr "挤出机"
msgid "Extrusion width"
msgstr "挤出宽度"
+# AI Translated
msgid "Wipe options"
-msgstr "擦除选项"
+msgstr "擦拭选项"
msgid "Bed adhesion"
msgstr "热床粘接"
+# AI Translated
msgid "Add Part"
-msgstr "添加部件"
+msgstr "添加零件"
msgid "Add Negative Part"
msgstr "添加负零件"
@@ -2546,8 +2855,9 @@ msgstr "添加负文本"
msgid "Add text modifier"
msgstr "添加文本修改器"
+# AI Translated
msgid "Add SVG part"
-msgstr "添加svg零件"
+msgstr "添加SVG零件"
msgid "Add negative SVG"
msgstr "添加负零件SVG"
@@ -2586,14 +2896,16 @@ msgstr "立方体"
msgid "Cylinder"
msgstr "圆柱体"
+# AI Translated
msgid "Cone"
-msgstr "锥体"
+msgstr "圆锥体"
msgid "Disc"
msgstr "圆盘"
+# AI Translated
msgid "Torus"
-msgstr "环面"
+msgstr "圆环体"
msgid "Orca Cube"
msgstr "Orca方块"
@@ -2604,11 +2916,14 @@ msgstr "OrcaSliced 复合模型"
msgid "Orca Badge"
msgstr "Orca 徽章"
+# AI Translated
msgid "Orca Tolerance Test"
-msgstr "Orca误差测试"
+msgstr "Orca公差测试"
+# AI Translated
+# Needs human review: Check whether 3DBenchy alone is clear, or 3DBenchy 小船 reads better.
msgid "3DBenchy"
-msgstr "小船"
+msgstr "3DBenchy"
msgid "Cali Cat"
msgstr "卡利猫"
@@ -2625,15 +2940,13 @@ msgstr "斯坦福兔子"
msgid "Orca String Hell"
msgstr "Orca拉丝地狱"
+# AI Translated
msgid ""
"This model features text embossment on the top surface. For optimal results, it is advisable to set the 'One Wall Threshold (min_width_top_surface)' to 0 for the 'Only One Wall on Top Surfaces' to work best.\n"
"Yes - Change these settings automatically\n"
"No - Do not change these settings for me"
msgstr ""
-"该模型顶面具有文字浮雕。\n"
-"为了获得最佳效果,我们推荐您将“单层墙阈值”设置为 0 以使“仅首层单层墙”效果最佳。\n"
-"\n"
-"自动调整这些设置?\n"
+"该模型顶面带有文字浮雕。为获得最佳效果,建议将“单层墙阈值(min_width_top_surface)”设为 0,使“顶面单层墙”发挥最佳效果。\n"
"是 - 自动调整这些设置\n"
"否 - 不用为我调整这些设置"
@@ -2658,8 +2971,9 @@ msgstr "负零件"
msgid "Support Blocker"
msgstr "支撑屏蔽器"
+# AI Translated
msgid "Support Enforcer"
-msgstr "支撑添加器"
+msgstr "支撑生成器"
# AI Translated
msgid "Precise Seam"
@@ -2674,11 +2988,13 @@ msgstr "设置为独立对象"
msgid "Set as Individual Objects"
msgstr "设置为独立对象"
+# AI Translated
msgid "Fill bed with copies"
-msgstr "铺满打印板"
+msgstr "用副本铺满热床"
+# AI Translated
msgid "Fill the remaining area of bed with copies of the selected object"
-msgstr "用选定对象的副本填充床的剩余区域"
+msgstr "用所选对象的副本填满热床的剩余区域"
msgid "Printable"
msgstr "可打印的"
@@ -2686,8 +3002,9 @@ msgstr "可打印的"
msgid "Auto Drop"
msgstr "自动落板"
+# AI Translated
msgid "Automatically drops the selected object to the build plate."
-msgstr "自动将选中的对象落到打印板上"
+msgstr "自动将选中的对象落到热床上。"
msgid "Fix Model"
msgstr "修复模型"
@@ -2701,8 +3018,9 @@ msgstr "导出为多个STL"
msgid "Export as one DRC"
msgstr "作为一个 DRC 导出"
+# AI Translated
msgid "Export as DRCs"
-msgstr "导出为 DRC"
+msgstr "导出为多个 DRC"
msgid "Reload from disk"
msgstr "从磁盘重新加载"
@@ -2731,18 +3049,21 @@ msgstr "设置所选项的耗材丝"
msgid "Default"
msgstr "默认"
+# AI Translated
#, c-format, boost-format
msgid "Filament %d"
-msgstr "耗材 %d"
+msgstr "耗材丝 %d"
msgid "current"
msgstr "当前"
+# AI Translated
msgid "Scale to build volume"
-msgstr "缩放到构建空间大小"
+msgstr "缩放到构建体积"
+# AI Translated
msgid "Scale an object to fit the build volume"
-msgstr "缩放对象以适应构建空间大小"
+msgstr "缩放对象以适应构建体积"
msgid "Flush Options"
msgstr "换料冲刷选项"
@@ -2872,8 +3193,9 @@ msgstr "拆分到对象"
msgid "Split the selected object into multiple objects"
msgstr "拆分所选对象为多个对象"
+# AI Translated
msgid "To Parts"
-msgstr "到零件"
+msgstr "拆分到零件"
msgid "Split the selected object into multiple parts"
msgstr "拆分所选对象为多个零件"
@@ -2900,8 +3222,9 @@ msgstr "与其合并"
msgid "Decompose Color"
msgstr "分解颜色"
+# AI Translated
msgid "Delete this filament"
-msgstr "移除此耗材"
+msgstr "移除此耗材丝"
msgid "Select All"
msgstr "全选"
@@ -2909,11 +3232,13 @@ msgstr "全选"
msgid "Select all objects on the current plate"
msgstr "全选当前盘对象"
+# AI Translated
msgid "Select All Plates"
-msgstr "全选所有打印板"
+msgstr "全选所有盘"
+# AI Translated
msgid "Select all objects on all plates"
-msgstr "选择所有打印板上的所有对象"
+msgstr "选择所有盘上的所有对象"
msgid "Delete All"
msgstr "删除所有"
@@ -2933,6 +3258,22 @@ msgstr "重新加载全部"
msgid "Reload all from disk"
msgstr "从磁盘重新加载全部"
+# AI Translated
+msgid "Fix All"
+msgstr "全部修复"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "修复当前盘上的所有模型"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "修复所有盘"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "修复所有盘上的所有模型"
+
msgid "Auto Rotate"
msgstr "自动朝向"
@@ -2948,26 +3289,31 @@ msgstr "删除所选盘"
msgid "Add instance"
msgstr "增加实例"
+# AI Translated
msgid "Add one more instance of the selected object"
-msgstr "为选中物体增加一个实例"
+msgstr "为选中对象增加一个实例"
msgid "Remove instance"
msgstr "移除实例"
+# AI Translated
msgid "Remove one instance of the selected object"
-msgstr "为选中物体移除一个实例"
+msgstr "为选中对象移除一个实例"
msgid "Set number of instances"
msgstr "设置实例数量"
+# AI Translated
msgid "Change the number of instances of the selected object"
-msgstr "更改选中物体的实例数量"
+msgstr "更改选中对象的实例数量"
+# AI Translated
msgid "Fill bed with instances"
-msgstr "用实例铺满打印板"
+msgstr "用实例铺满热床"
+# AI Translated
msgid "Fill the remaining area of bed with instances of the selected object"
-msgstr "用选中物体的实例填充打印板"
+msgstr "用所选对象的实例填满热床的剩余区域"
msgid "Clone"
msgstr "克隆"
@@ -2984,8 +3330,13 @@ msgstr "(丢失的颜色)"
msgid "Center"
msgstr "居中"
-msgid "Drop"
-msgstr "下降"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "对齐/分布"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "对齐和分布对象"
msgid "Edit Process Settings"
msgstr "编辑工艺参数"
@@ -3005,8 +3356,9 @@ msgstr "更换耗材丝"
msgid "Set Filament for selected items"
msgstr "设置所选项的耗材丝"
+# AI Translated
msgid "Automatically snaps the selected object to the build plate."
-msgstr "自动将选中的对象吸附到打印板上"
+msgstr "自动将选中的对象吸附到热床上。"
msgid "Unlock"
msgstr "解锁"
@@ -3028,18 +3380,20 @@ msgid "%1$d error repaired"
msgid_plural "%1$d errors repaired"
msgstr[0] "%1$d个错误已修复"
+# AI Translated
#, c-format, boost-format
msgid "Error: %1$d non-manifold edge."
msgid_plural "Error: %1$d non-manifold edges."
-msgstr[0] "错误: %1$d 存在非流形边."
+msgstr[0] "错误:%1$d 条非流形边。"
msgid "Remaining errors"
msgstr "剩余错误"
+# AI Translated
#, c-format, boost-format
msgid "%1$d non-manifold edge"
msgid_plural "%1$d non-manifold edges"
-msgstr[0] "%1$d 存在非流形边"
+msgstr[0] "%1$d 条非流形边"
msgid "Click the icon to repair model object"
msgstr "点击图标修复模型对象"
@@ -3059,8 +3413,9 @@ msgstr "点击此图标可切换这个对象的可打印属性"
msgid "Click the icon to edit support painting of the object"
msgstr "点击此图标可编辑这个对象的支撑绘制"
+# AI Translated
msgid "Click the icon to edit color painting for the object"
-msgstr "点击此图标可编辑这个对象的颜色绘制"
+msgstr "点击此图标可编辑这个对象的涂色"
msgid "Click the icon to shift this object to the bed"
msgstr "点击这个图标可将对象移动到热床上"
@@ -3076,7 +3431,7 @@ msgstr "粘贴设置"
# AI Translated
msgid "Shift objects to bed"
-msgstr "将物体下移至热床"
+msgstr "将对象下移至热床"
msgid "Object order changed"
msgstr "对象顺序已更改"
@@ -3191,11 +3546,13 @@ msgstr "添加层"
msgid "Cut Connectors information"
msgstr "切割连接件信息"
+# AI Translated
msgid "Object manipulation"
-msgstr "操作对象"
+msgstr "对象操作"
+# AI Translated
msgid "Group manipulation"
-msgstr "操作组"
+msgstr "组操作"
msgid "Object Settings to Modify"
msgstr "要修改的对象设置"
@@ -3203,8 +3560,9 @@ msgstr "要修改的对象设置"
msgid "Part Settings to Modify"
msgstr "要修改的零件设置"
+# AI Translated
msgid "Layer Range Settings to Modify"
-msgstr "要修改的图层范围设置"
+msgstr "要修改的层范围设置"
msgid "Part manipulation"
msgstr "零件操作"
@@ -3259,6 +3617,12 @@ msgid "Failed to repair the following model object"
msgid_plural "Failed to repair the following model objects"
msgstr[0] "以下模型对象修复失败"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d个模型对象无需修复。"
+
msgid "Repairing was canceled"
msgstr "修复被取消"
@@ -3270,8 +3634,9 @@ msgstr "\"%s\" 在此次细分后将超过 100 万个面,这可能会增加切
msgid "\"%s\" part's mesh contains errors. Please repair it first."
msgstr "\"%s\" 零件的网格包含错误,请先修复。"
+# AI Translated
msgid "Change Filaments"
-msgstr "更改耗材"
+msgstr "更改耗材丝"
msgid "Additional process preset"
msgstr "附加工艺预设"
@@ -3330,9 +3695,6 @@ msgstr "无brim"
msgid "Outer wall speed"
msgstr "外墙速度"
-msgid "Plate"
-msgstr "盘"
-
msgid "Brim"
msgstr "Brim"
@@ -3376,8 +3738,9 @@ msgstr "模板"
msgid "Custom"
msgstr "自定义"
+# AI Translated
msgid "Pause:"
-msgstr "暂停"
+msgstr "暂停:"
msgid "Custom Template:"
msgstr "自定义模板:"
@@ -3394,8 +3757,9 @@ msgstr "输入当前层上使用的自定义G-code:"
msgid "Jump to layer"
msgstr "跳转到层"
+# AI Translated
msgid "Please enter the layer number."
-msgstr "请输入层数"
+msgstr "请输入层号。"
msgid "Add Pause"
msgstr "添加暂停打印"
@@ -3415,9 +3779,6 @@ msgstr "添加自定义模板"
msgid "Insert template custom G-code at the beginning of this layer."
msgstr "在该层的起始位置插入模板自定义G-code。"
-msgid "Filament "
-msgstr "耗材丝"
-
msgid "Change filament at the beginning of this layer."
msgstr "在该层的起始位置更换耗材丝。"
@@ -3472,8 +3833,9 @@ msgstr "无法连接打印机"
msgid "Connection to printer failed"
msgstr "连接打印机失败"
+# AI Translated
msgid "Please check the network connection of the printer and Orca."
-msgstr "请检查打印机和工作室的网络连接"
+msgstr "请检查打印机和 OrcaSlicer 的网络连接。"
msgid "Connecting..."
msgstr "连接中..."
@@ -3490,8 +3852,9 @@ msgstr "退料"
msgid "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically load or unload filament."
msgstr "选择一个AMS槽位,然后点击“进料”或“退料”按钮以自动进退料。"
+# AI Translated
msgid "Filament type is unknown which is required to perform this action. Please set target filament's informations."
-msgstr "因耗材类型未知,所以需要执行此操作。请指定目标耗材的信息。"
+msgstr "执行此操作需要耗材丝类型,但当前类型未知。请设置目标耗材丝的信息。"
msgid "AMS has not been initialized. Please initialize it before use."
msgstr "AMS 尚未初始化。请在使用前进行初始化。"
@@ -3505,6 +3868,8 @@ msgstr "继续更改"
msgid "Off"
msgstr "关"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
msgstr "过滤"
@@ -3532,11 +3897,13 @@ msgstr "全速冷却"
msgid "Init"
msgstr "初始化"
+# AI Translated
msgid "Chamber"
-msgstr "打印舱"
+msgstr "腔体"
+# AI Translated
msgid "Innerloop"
-msgstr "内环"
+msgstr "内循环"
msgid "Top"
msgstr "顶部"
@@ -3544,11 +3911,13 @@ msgstr "顶部"
msgid "The fan controls the temperature during printing to improve print quality. The system automatically adjusts the fan's switch and speed according to different printing materials."
msgstr "风扇会在打印过程中控制温度以提升质量。此系统会根据各类耗材自动调整风扇开关和速度。"
+# AI Translated
msgid "Cooling mode is suitable for printing PLA/PETG/TPU materials and filters the chamber air."
-msgstr "冷却模式适合打印PLA、PETG、TPU等材料,同时过滤舱内空气。"
+msgstr "冷却模式适合打印PLA、PETG、TPU等材料,同时过滤腔体内空气。"
+# AI Translated
msgid "Heating mode is suitable for printing ABS/ASA/PC/PA materials and circulates filters the chamber air."
-msgstr "加热模式适合打印ABS、ASA、PC、PA等材料,同时循环和过滤舱内空气。"
+msgstr "加热模式适合打印ABS、ASA、PC、PA等材料,同时循环和过滤腔体内空气。"
msgid "Strong cooling mode is suitable for printing PLA/TPU materials. In this mode, the printouts will be fully cooled."
msgstr "强冷模式适合打印PLA、TPU等材料,此模式会尽可能完全冷却打印件。"
@@ -3556,13 +3925,15 @@ msgstr "强冷模式适合打印PLA、TPU等材料,此模式会尽可能完全
msgid "Cooling mode is suitable for printing PLA/PETG/TPU materials."
msgstr "冷却模式适合打印PLA、PETG、TPU等材料。"
+# AI Translated
msgctxt "air_duct"
msgid "Right(Aux)"
-msgstr "右侧(辅助)"
+msgstr "右(辅助)"
+# AI Translated
msgctxt "air_duct"
msgid "Right(Filter)"
-msgstr "右侧(过滤器)"
+msgstr "右(过滤)"
msgctxt "air_duct"
msgid "Left(Aux)"
@@ -3573,8 +3944,9 @@ msgctxt "Hotend Heat Breaker Fan"
msgid "Hotend"
msgstr "热端"
+# AI Translated
msgid "Parts"
-msgstr "打印件"
+msgstr "部件"
msgid "Aux"
msgstr "辅助"
@@ -3618,23 +3990,35 @@ msgstr "确认挤出"
msgid "Check filament location"
msgstr "检查耗材丝位置"
-msgid "Switch"
-msgstr "切换"
+# AI Translated
+msgctxt "Verb"
+msgid "Pause"
+msgstr "暂停"
-msgid "hotend"
-msgstr "热端"
+# AI Translated
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "切换挤出机"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "切换热端"
msgid "Wait for AMS cooling"
msgstr "等待 AMS 冷却"
+# AI Translated
msgid "Switch current filament at Filament Track Switch"
-msgstr "切换变轨器的当前耗材"
+msgstr "切换变轨器的当前耗材丝"
+# AI Translated
msgid "Pull back current filament at Filament Track Switch"
-msgstr "退回变轨器的当前耗材"
+msgstr "退回变轨器的当前耗材丝"
+# AI Translated
msgid "Switch track at Filament Track Switch"
-msgstr "变轨器开关切换"
+msgstr "变轨器切换轨道"
# AI Translated
#. TRN AMS unit number, then slot number
@@ -3757,20 +4141,24 @@ msgstr "未知"
msgid "Done."
msgstr "完成"
+# AI Translated
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
msgstr ""
"所有选中的对象都处于被锁定的盘上,\n"
-"无法对这些对象做自动摆盘。"
+"无法对这些对象做自动摆放。"
msgid "No arrangeable objects are selected."
msgstr "没有可摆盘的对象被选中。"
+# AI Translated
msgid ""
"This plate is locked.\n"
"Cannot auto-arrange on this plate."
-msgstr "该盘处于锁定状态,无法对其进行自动摆盘。"
+msgstr ""
+"该盘已锁定。\n"
+"无法在此盘上自动摆放。"
msgid "Arranging..."
msgstr "自动摆放中..."
@@ -3784,8 +4172,10 @@ msgid "Arranging"
msgstr "自动摆放"
# AI Translated
-msgid "Arranging "
-msgstr "自动摆放 "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "自动摆放 %1%"
msgid "Arranging canceled."
msgstr "已取消自动摆放。"
@@ -3799,12 +4189,13 @@ msgstr "已完成自动摆放。"
msgid "Arrange failed. Found some exceptions when processing object geometries."
msgstr "自动摆放失败,处理对象几何数据时遇到异常。"
+# AI Translated
#, c-format, boost-format
msgid ""
"Arrangement ignored the following objects which can't fit into a single bed:\n"
"%s"
msgstr ""
-"自动摆放会忽略以下无法放入单盘的零件:\n"
+"自动摆放忽略了以下无法放入单个热床的对象:\n"
"%s"
msgid ""
@@ -3824,8 +4215,11 @@ msgstr ""
msgid "Orienting..."
msgstr "自动朝向中..."
-msgid "Orienting"
-msgstr "自动朝向中..."
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "自动朝向 %1%"
msgid "Orienting canceled."
msgstr "自动朝向已取消。"
@@ -3833,6 +4227,12 @@ msgstr "自动朝向已取消。"
msgid "Filling"
msgstr "正在填充"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "正在填充 %1%"
+
msgid "Bed filling canceled."
msgstr "填充热床已取消。"
@@ -3848,6 +4248,34 @@ msgstr "方向搜索已取消。"
msgid "Orientation found."
msgstr "找到方向。"
+# AI Translated
+msgid "Best surface quality"
+msgstr "最佳表面质量"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "优化对象旋转以获得最佳表面质量。"
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "减少悬垂斜面"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"优化对象旋转,使需要支撑结构的悬垂最少。\n"
+"注意:如果未设置抬高,此方法会尝试找到对象最适合接触热床的表面。"
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "最低 Z 高度"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "旋转模型使 Z 高度最低,以缩短打印时间。"
+
msgid "Logging in"
msgstr "登录中"
@@ -4015,14 +4443,16 @@ msgstr "没有有效的表面用于文字投影。"
msgid "An unexpected error occurred"
msgstr "发生了意外错误"
+# AI Translated
msgid "Thermal Preconditioning for first layer optimization"
-msgstr "用于第一层优化的热预处理"
+msgstr "用于首层优化的热预处理"
msgid "Remaining time: Calculating..."
msgstr "剩余时间:正在计算..."
+# AI Translated
msgid "The heated bed's thermal preconditioning helps optimize the first layer print quality. Printing will start once preconditioning is complete."
-msgstr "加热床的热预处理有助于优化第一层打印质量。预处理完成后,打印将开始。"
+msgstr "热床的热预处理有助于优化首层打印质量。预处理完成后将开始打印。"
#, c-format, boost-format
msgid "Remaining time: %dmin%ds"
@@ -4043,8 +4473,9 @@ msgstr "导入完成。"
msgid "The imported SLA archive did not contain any presets. The current SLA presets were used as fallback."
msgstr "导入的SLA存档不包含任何预设。当前的SLA预设被用作备用选项。"
+# AI Translated
msgid "You cannot load an SLA project with a multi-part object on the bed"
-msgstr "您不能加载一个在床上有多个部件的SLA项目"
+msgstr "热床上有多零件对象时,无法加载 SLA 项目"
msgid "Please check your object list before preset changing."
msgstr "请在预设更改之前检查对象列表。"
@@ -4080,11 +4511,13 @@ msgstr "版权"
msgid "License"
msgstr "许可证"
+# AI Translated
msgid "Orca Slicer is licensed under "
-msgstr "Orca Slicer(逆戟鲸切片器)是在"
+msgstr "Orca Slicer 的授权许可证为 "
+# AI Translated
msgid "GNU Affero General Public License, version 3"
-msgstr "第3版 GNU Affero 通用公共许可证下授权的"
+msgstr "GNU Affero 通用公共许可证第 3 版"
msgid "Orca Slicer is based on PrusaSlicer and BambuStudio"
msgstr "Orca Slicer 基于 PrusaSlicer 以及 BambuStudio 开发"
@@ -4137,16 +4570,29 @@ msgstr "最近的项目"
msgid "Go to Plate"
msgstr "转到盘"
+msgid "Device"
+msgstr "设备"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "设备(网页)"
+
+msgid "Multi-device"
+msgstr "多设备"
+
msgid "AMS Materials Setting"
msgstr "AMS 材料设置"
msgid "Close"
msgstr "关闭"
+# AI Translated
msgid ""
"Nozzle\n"
"Temperature"
-msgstr "挤出头温度"
+msgstr ""
+"喷嘴\n"
+"温度"
msgid "max"
msgstr "最大"
@@ -4154,16 +4600,14 @@ msgstr "最大"
msgid "min"
msgstr "最小"
+# AI Translated
#, boost-format
msgid "The input value should be greater than %1% and less than %2%"
-msgstr "输入的范围应当在 %1% 和 %2% 之间"
+msgstr "输入值应大于 %1% 且小于 %2%"
msgid "Factors of Flow Dynamics Calibration"
msgstr "动态流量校准系数"
-msgid "Wiki Guide"
-msgstr "维基指南"
-
msgid "PA Profile"
msgstr "PA 配置文件"
@@ -4193,10 +4637,21 @@ msgstr "请输入有效的数值(K的范围为%.1f~%.1f)"
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
msgstr "请输入有效的数值(K的范围为%.1f~%.1f,N的范围为%.1f~%.1f)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "收藏的耗材丝"
+
+# AI Translated
+msgid "All filaments"
+msgstr "所有耗材丝"
+
+# AI Translated
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
-msgstr "喷嘴流量未设置,请在编辑耗材设置前设置喷嘴流量。“设备 -> 打印件”"
+msgstr ""
+"喷嘴流量未设置,请在编辑耗材丝设置前设置喷嘴流量。\n"
+"“设备 -> 打印机零件”"
msgid "AMS"
msgstr "AMS"
@@ -4249,9 +4704,10 @@ msgstr "校准完成。如下图中的示例,请在您的热床上找到最均
msgid "Save"
msgstr "保存"
+# AI Translated
msgctxt "Navigation"
msgid "Back"
-msgstr "背面"
+msgstr "返回"
msgid "Example"
msgstr "示例"
@@ -4273,43 +4729,48 @@ msgstr "步骤"
msgid "Unmapped"
msgstr "未映射"
+# AI Translated
msgid ""
"Upper half area: Original\n"
"Lower half area: The filament from original project will be used when unmapped.\n"
"And you can click it to modify"
msgstr ""
"上半部分区域:原始\n"
-"下半部分区域:未映射时将使用原始项目中的耗材。\n"
+"下半部分区域:未映射时将使用原始项目中的耗材丝。\n"
"并且可以点击修改"
+# AI Translated
msgid ""
"Upper half area: Original\n"
"Lower half area: Filament in AMS\n"
"And you can click it to modify"
msgstr ""
"上半部分区域:原始\n"
-"下半部分区域:AMS 中的耗材\n"
+"下半部分区域:AMS 中的耗材丝\n"
"并且可以点击修改"
+# AI Translated
msgid ""
"Upper half area: Original\n"
"Lower half area: Filament in AMS\n"
"And you cannot click it to modify"
msgstr ""
"上半部分区域:原始\n"
-"下半部分区域:AMS 中的耗材\n"
+"下半部分区域:AMS 中的耗材丝\n"
"并且不能点击修改"
+# AI Translated
msgid "AMS Slots"
-msgstr "AMS舱内材料"
+msgstr "AMS 槽位"
+# AI Translated
msgid "Please select from the following filaments"
-msgstr "请从以下耗材中选择"
+msgstr "请从以下耗材丝中选择"
# AI Translated
#, c-format, boost-format
msgid "Select filament that installed to the %s"
-msgstr "选择已安装到 %s 的耗材"
+msgstr "选择已安装到 %s 的耗材丝"
msgid "Left AMS"
msgstr "左侧AMS"
@@ -4317,8 +4778,9 @@ msgstr "左侧AMS"
msgid "External"
msgstr "外部"
+# AI Translated
msgid "Reset current filament mapping"
-msgstr "重置当前耗材映射"
+msgstr "重置当前耗材丝映射"
msgid "Right AMS"
msgstr "右侧AMS"
@@ -4330,12 +4792,12 @@ msgstr "使用当前喷嘴打印可能会产生额外 %0.2f 克废料。"
# AI Translated
#, c-format, boost-format
msgid "Tips: the filament type(%s) does not match with the filament type(%s) in the slicing file. If you want to use this slot, you can install %s instead of %s and change slot information on the 'Device' page."
-msgstr "提示:耗材类型(%s)与切片文件中的耗材类型(%s)不匹配。如果您想使用此槽位,可以安装 %s 代替 %s,并在“设备”页面上更改槽位信息。"
+msgstr "提示:耗材丝类型(%s)与切片文件中的耗材丝类型(%s)不匹配。如果您想使用此槽位,可以安装 %s 代替 %s,并在“设备”页面上更改槽位信息。"
# AI Translated
#, c-format, boost-format
msgid "Cannot select: the filament type(%s) does not match with the filament type(%s) in the slicing file. If you want to use this slot, you can install %s instead of %s and change slot information on the 'Device' page."
-msgstr "无法选择:耗材类型(%s)与切片文件中的耗材类型(%s)不匹配。如果您想使用此槽位,可以安装 %s 代替 %s,并在“设备”页面上更改槽位信息。"
+msgstr "无法选择:耗材丝类型(%s)与切片文件中的耗材丝类型(%s)不匹配。如果您想使用此槽位,可以安装 %s 代替 %s,并在“设备”页面上更改槽位信息。"
# AI Translated
#, c-format, boost-format
@@ -4344,7 +4806,7 @@ msgstr "无法选择:该槽位为空或未定义。如果您想使用此槽位
# AI Translated
msgid "Cannot select: No filament loaded in current slot."
-msgstr "无法选择:当前槽位未装载耗材。"
+msgstr "无法选择:当前槽位未装载耗材丝。"
msgid "Enable AMS"
msgstr "启用AMS"
@@ -4355,11 +4817,13 @@ msgstr "采用AMS里的材料打印"
msgid "Disable AMS"
msgstr "不启用AMS"
+# AI Translated
msgid "Print with filament on external spool"
-msgstr "使用机箱背后挂载的材料打印"
+msgstr "使用外置料盘上的耗材丝打印"
+# AI Translated
msgid "Please change the desiccant when it is too wet. The indicator may not represent accurately in following cases: when the lid is open or the desiccant pack is changed. It takes a few hours to absorb the moisture, and low temperatures also slow down the process."
-msgstr "当干燥剂过于潮湿时,请及时更换。以下几种情况下,指示器可能无法准确反映情况:盖子打开或干燥剂包被替换时。干燥剂需要数小时吸收潮气,低温也会延缓该过程。"
+msgstr "当干燥剂过于潮湿时,请及时更换。以下几种情况下,指示器可能无法准确反映情况:盖子打开或干燥剂包被替换时。干燥剂需要数小时吸收潮气,低温也会延缓该过程。"
msgid "Configure which AMS slot should be used for a filament used in the print job."
msgstr "配置当前打印任务应使用哪个AMS槽位"
@@ -4376,8 +4840,9 @@ msgstr "点击以手动选择AMS槽位"
msgid "Do not Enable AMS"
msgstr "不启用AMS"
+# AI Translated
msgid "Print using filament on external spool."
-msgstr "使用安装在机箱背面的材料进行打印"
+msgstr "使用外置料盘上的耗材丝进行打印。"
msgid "Print with filament in AMS"
msgstr "采用AMS里的材料打印"
@@ -4395,25 +4860,31 @@ msgstr "右"
msgid "When the current material run out, the printer will continue to print in the following order."
msgstr "当前材料耗尽时,打印机将按照以下顺序继续打印。"
+# AI Translated
msgid "Identical filament: same brand, type and color."
-msgstr "相同耗材:同品牌、同型号、同色。"
+msgstr "相同耗材丝:同品牌、同类型、同颜色。"
msgid "Group"
msgstr "组"
+# AI Translated
msgid "When the current material runs out, the printer would use identical filament to continue printing."
-msgstr "若当前耗材用尽,打印机将选用相同耗材继续打印。"
+msgstr "若当前耗材丝用尽,打印机将选用相同耗材丝继续打印。"
msgid "The printer does not currently support auto refill."
msgstr "打印机当前不支持自动补给耗材。"
+# AI Translated
msgid "AMS filament backup is not enabled; please enable it in the AMS settings."
-msgstr "AMS耗材备份未启用,请在AMS设置中启用。"
+msgstr "AMS耗材丝备份未启用,请在AMS设置中启用。"
+# AI Translated
msgid ""
"When the current filament runs out, the printer will use identical filament to continue printing.\n"
"*Identical filament: same brand, type and color."
-msgstr "当前材料耗尽时,打印机将按照以下顺序继续打印。相同耗材:同品牌、同型号、同色。"
+msgstr ""
+"当前耗材丝耗尽时,打印机将使用相同的耗材丝继续打印。\n"
+"*相同耗材丝:同品牌、同类型、同颜色。"
msgid "DRY"
msgstr "干燥"
@@ -4439,8 +4910,9 @@ msgstr "在插入一卷新料时,AMS将不会自动读取料卷信息,预留
msgid "Update on startup"
msgstr "开机时检测"
+# AI Translated
msgid "The AMS will automatically read the information of inserted filament on start-up. It will take about 1 minute. The reading process will rotate the filament spools."
-msgstr "每次开机时,AMS将会自动读取其所插入的耗材信息(读取过程会转料卷)。需要花时大约1分钟。"
+msgstr "每次开机时,AMS 将自动读取已插入耗材丝的信息,耗时约 1 分钟。读取过程中料卷会转动。"
msgid "The AMS will not automatically read information from inserted filament during startup and will continue to use the information recorded before the last shutdown."
msgstr "AMS不会在启动时自动读取耗材丝信息。它会使用上次关机前记录的信息。"
@@ -4454,20 +4926,24 @@ msgstr "AMS 将尝试估计 Bambu Lab 耗材丝的剩余容量。"
msgid "AMS filament backup"
msgstr "AMS材料备份"
+# AI Translated
msgid "AMS will continue to another spool with matching filament properties automatically when current filament runs out."
-msgstr "AMS料材丝耗尽后将自动切换到属性完全相同的耗材丝"
+msgstr "当前耗材丝耗尽时,AMS 将自动切换到属性相同的另一卷耗材丝。"
msgid "Air Printing Detection"
msgstr "空打检测"
+# AI Translated
msgid "Detects clogging and filament grinding, halting printing immediately to conserve time and filament."
-msgstr "检测到堵塞和耗材丝碾磨,立即停止打印以节约时间和耗材丝"
+msgstr "检测堵塞和耗材丝研磨,并立即停止打印,以节省时间和耗材丝。"
+# AI Translated
msgid "AMS Type"
-msgstr "AMS 型"
+msgstr "AMS 类型"
+# AI Translated
msgid "Switching"
-msgstr "交换"
+msgstr "切换中"
msgid "The printer is busy and cannot switch AMS type."
msgstr "打印机正忙,无法切换 AMS 类型。"
@@ -4475,11 +4951,13 @@ msgstr "打印机正忙,无法切换 AMS 类型。"
msgid "Please unload all filament before switching."
msgstr "切换前请退下所有耗材丝。"
+# AI Translated
msgid "AMS type switching needs firmware update, taking about 30s. Switch now?"
-msgstr "AMS 类型切换需要固件更新,大约需要 30s。现在切换?"
+msgstr "切换 AMS 类型需要更新固件,耗时约 30 秒。是否立即切换?"
+# AI Translated
msgid "Arrange AMS Order"
-msgstr "安排 AMS 订单"
+msgstr "调整 AMS 顺序"
msgid "AMS ID will be reset. If you want a specific ID sequence, disconnect all AMS before resetting and connect them in the desired order after resetting."
msgstr "AMS ID 将被重置。如果您需要特定的 ID 序列,请在重置前断开所有 AMS,并在重置后按所需顺序连接它们。"
@@ -4490,8 +4968,9 @@ msgstr "文件"
msgid "Calibration"
msgstr "校准"
+# AI Translated
msgid "Failed to download the plug-in. Please check your firewall settings and VPN software and retry."
-msgstr "插件下载失败。请检查您的防火墙设置和vpn软件,检查后重试。"
+msgstr "插件下载失败。请检查您的防火墙设置和 VPN 软件,然后重试。"
msgid "Failed to install the plug-in. The plug-in file may be in use. Please restart OrcaSlicer and try again. Also check whether it is blocked or has been deleted by anti-virus software."
msgstr "插件安装失败。插件文件可能正在使用中。请重新启动 OrcaSlicer 后重试。同时检查是否被杀毒软件阻止或删除。"
@@ -4505,11 +4984,11 @@ msgstr "网络插件已安装但无法加载。请重新启动应用程序。"
msgid "Restart Required"
msgstr "需要重新启动"
-msgid "Please home all axes (click "
-msgstr "请先执行回原点(点击"
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ")操作以定位当前工具头位置,以防止轴移动时超出边界造成设备磨损"
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "请先对所有轴执行回原点(点击 %1%)以定位工具头位置,防止设备移动超出可打印范围而造成设备磨损。"
msgid "Go Home"
msgstr "回原点"
@@ -4524,6 +5003,10 @@ msgstr "发生致命错误:\"%1%\""
msgid "Please save your project and restart the application."
msgstr "请保存项目并重启程序。"
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "未知的 C++ 异常。"
+
# AI Translated
msgid "Processing G-Code from previous file…"
msgstr "正在处理之前文件的 G-code…"
@@ -4602,6 +5085,7 @@ msgstr "G-code 文件导出到 %1%"
msgid "Unknown error with G-code export"
msgstr "导出G-code文件发生未知错误。"
+# AI Translated
#, boost-format
msgid ""
"Failed to save G-code file.\n"
@@ -4610,15 +5094,16 @@ msgid ""
msgstr ""
"无法保存G-code文件。\n"
"错误信息:%1%。\n"
-"源文件 %2%."
+"源文件:%2%。"
# AI Translated
msgid "Copying of the temporary G-code to the output G-code failed."
msgstr "将临时 G-code 复制到输出 G-code 失败"
+# AI Translated
#, boost-format
msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue"
-msgstr "计划上传到 `%1%`。请参阅窗口-> 打印主机上传队列"
+msgstr "计划上传到 `%1%`。请参阅“窗口 -> 打印主机上传队列”"
msgid "Origin"
msgstr "原点"
@@ -4635,8 +5120,9 @@ msgstr "热床直径。假定原点 (0,0) 位于中心。"
msgid "Rectangular"
msgstr "矩形"
+# AI Translated
msgid "Circular"
-msgstr "圆"
+msgstr "圆形"
msgid "Load shape from STL..."
msgstr "从STL文件加载形状..."
@@ -4659,8 +5145,9 @@ msgstr "选择热床形状的 STL 文件:"
msgid "Invalid file format."
msgstr "无效的文件格式。"
+# AI Translated
msgid "Error: invalid model"
-msgstr "错误!无效模型"
+msgstr "错误:无效模型"
msgid "The selected file contains no geometry."
msgstr "所选文件不包含任何几何数据。"
@@ -4671,8 +5158,9 @@ msgstr "所选文件包含多个未连接的区域。不支持这种类型。"
msgid "Choose a file to import bed texture from (PNG/SVG):"
msgstr "选择 (PNG/SVG) 文件作为热床纹理:"
+# AI Translated
msgid "Choose an STL file to import bed model from:"
-msgstr "选择 STL 文件来导入床模型:"
+msgstr "选择要导入热床模型的 STL 文件:"
msgid "Bed Shape"
msgstr "热床形状"
@@ -4691,18 +5179,20 @@ msgstr "推荐最低温度不能大于推荐最高温度。\n"
msgid "Please check.\n"
msgstr "请检查。\n"
+# AI Translated
msgid ""
"The nozzle may become clogged when the temperature is out of the recommended range.\n"
"Please make sure whether to use this temperature to print.\n"
"\n"
msgstr ""
-"当温度超过建议的范围时,喷嘴可能会堵塞。\n"
-"请确认是否使用该温度打印\n"
+"当温度超出建议范围时,喷嘴可能会堵塞。\n"
+"请确认是否使用该温度打印。\n"
"\n"
+# AI Translated
#, c-format, boost-format
msgid "The recommended nozzle temperature for this filament type is [%d, %d] degrees Celsius."
-msgstr "该耗材的推荐喷嘴温度是[%d, %d]摄氏度"
+msgstr "该耗材丝的推荐喷嘴温度是[%d, %d]摄氏度。"
msgid "Adaptive Pressure Advance model validation failed:\n"
msgstr "自适应 Pressure Advance 模型验证失败:\n"
@@ -4722,14 +5212,15 @@ msgstr ""
"熨烫线距过小\n"
"已重置为 0.1"
+# AI Translated
#, c-format, boost-format
msgid "Current chamber temperature is higher than the material's safe temperature; this may result in material softening and nozzle clogs. The maximum safe temperature for the material is %d"
-msgstr "当前腔体温度高于材料的安全温度,这可能导致材料软化和堵塞。该材料的最高安全温度为 %d。"
+msgstr "当前腔体温度高于材料的安全温度,这可能导致材料软化和喷嘴堵塞。该材料的最高安全温度为 %d。"
# AI Translated
#, c-format, boost-format
msgid "The minimal chamber temperature (%d℃) is higher than the target chamber temperature (%d℃). The minimal value is the threshold at which printing starts while the chamber keeps heating toward the target, so it should not exceed it. It will be clamped to the target."
-msgstr "最低机箱温度(%d℃)高于目标机箱温度(%d℃)。最低值是开始打印的阈值,此时机箱会持续朝目标温度加热,因此它不应超过目标值。该值将被限制到目标值。"
+msgstr "最低腔体温度(%d℃)高于目标腔体温度(%d℃)。最低值是开始打印的阈值,此时腔体会持续朝目标温度加热,因此它不应超过目标值。该值将被限制到目标值。"
# AI Translated
#, c-format, boost-format
@@ -4748,6 +5239,14 @@ msgstr "是否自动调整到限制值(%g mm)?"
msgid "Adjust"
msgstr "调整"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"传送带打印机不支持筏层和风挡。\n"
+"已自动禁用。"
+
# AI Translated
msgid ""
"Layer height too small\n"
@@ -4790,8 +5289,9 @@ msgstr ""
"\n"
"这个数值将被重置为0。"
+# AI Translated
msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All."
-msgstr "“交替添加额外”与“确保垂直外壳厚度”的”全部“选项不兼容。"
+msgstr "当“确保垂直外壳厚度”设为“所有”时,“交替添加额外内墙”效果不佳。"
msgid ""
"Change these settings automatically?\n"
@@ -4802,16 +5302,17 @@ msgstr ""
"是 - 自动调整确保垂直外壳厚度为“适量”,并开启交替添加额外内墙\n"
"否 - 不使用交替添加额外内墙"
+# AI Translated
msgid ""
"Prime tower does not work when Adaptive Layer Height or Independent Support Layer Height is on.\n"
"Which do you want to keep?\n"
"YES - Keep Prime Tower\n"
"NO - Keep Adaptive Layer Height and Independent Support Layer Height"
msgstr ""
-"擦拭塔不支持和自适应层高或支撑独立层高。同时开启\n"
+"擦拭塔不支持与自适应层高或支撑独立层高同时开启。\n"
"如何选择?\n"
-"是 - 选择开启擦拭塔\n"
-"否 - 选择保留自适应层高或支撑独立层高"
+"是 - 保留擦拭塔\n"
+"否 - 保留自适应层高和支撑独立层高"
msgid ""
"Prime tower does not work when Adaptive Layer Height is on.\n"
@@ -4842,16 +5343,18 @@ msgstr ""
"seam_slope_start_height需要小于layer_height。\n"
"重置为0。"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Lock depth should be smaller than skin depth.\n"
"Reset to 50% of skin depth."
msgstr ""
-"锁定深度应小于表皮深度。\n"
-"重置为表皮深度的50%。"
+"填充锁定深度应小于表皮填充深度。\n"
+"已重置为表皮填充深度的50%。"
+# AI Translated
msgid "Both [Extrusion] and [Combined] modes of Fuzzy Skin require the Arachne Wall Generator to be enabled."
-msgstr "绒毛表面的[挤出]和[组合]模式都需要启用Arachne墙生成器。"
+msgstr "绒毛表面的[挤出]和[合并]模式都需要启用Arachne墙生成器。"
msgid ""
"Change these settings automatically?\n"
@@ -4864,25 +5367,28 @@ msgstr ""
# AI Translated
msgid "Brim ear radius"
-msgstr "圆盘半径"
+msgstr "耳状 Brim半径"
msgid "Brim width"
msgstr "Brim宽度"
+# AI Translated
msgid "Spiral mode only works when wall loops is 1, support is disabled, clumping detection by probing is disabled, top shell layers is 0, sparse infill density is 0 and timelapse type is traditional."
-msgstr "螺旋模式仅在壁环为 1、支撑被禁用、探测结块检测被禁用、顶部壳层为 0、稀疏填充密度为 0 且延时类型为传统时才起作用。"
+msgstr "旋转花瓶模式仅在墙层数为 1、支撑已禁用、结块检测已禁用、顶部外壳层数为 0、稀疏填充密度为 0 且延时摄影为传统模式时才起作用。"
+# AI Translated
msgid " But machines with I3 structure will not generate timelapse videos."
-msgstr "但是使用I3结构的机器将不会生成延时视频。"
+msgstr " 但 I3 结构的机器不会生成延时摄影视频。"
+# AI Translated
msgid ""
"Change these settings automatically?\n"
"Yes - Change these settings and enable spiral/vase mode automatically\n"
"No - Cancel enabling spiral mode"
msgstr ""
"自动调整这些设置?\n"
-"是 - 自动调整这些设置并开启旋转模式\n"
-"否 - 暂不使用旋转模式"
+"是 - 自动调整这些设置并开启旋转花瓶模式\n"
+"否 - 取消开启旋转花瓶模式"
msgid "N/A"
msgstr "不适用"
@@ -4923,8 +5429,10 @@ msgstr "扫描首层"
msgid "Identifying build plate type"
msgstr "识别打印板类型"
+# AI Translated
+# Needs human review: BambuStudio uses 激光雷达; confirm keeping Micro Lidar in English
msgid "Calibrating Micro Lidar"
-msgstr "校准轮廓仪外参"
+msgstr "校准 Micro Lidar"
msgid "Homing toolhead"
msgstr "工具头回到起始点"
@@ -4941,11 +5449,14 @@ msgstr "已被用户暂停"
msgid "Pause (front cover fall off)"
msgstr "暂停(前盖脱落)"
+# AI Translated
+# Needs human review: BambuStudio uses 激光雷达; confirm keeping Micro Lidar in English
msgid "Calibrating the micro lidar"
-msgstr "轮廓仪激光校准"
+msgstr "校准 Micro Lidar"
+# AI Translated
msgid "Calibrating flow ratio"
-msgstr "校准流量比"
+msgstr "校准流量比例"
msgid "Pause (nozzle temperature malfunction)"
msgstr "暂停(喷嘴温度故障)"
@@ -4971,11 +5482,13 @@ msgstr "暂停(AMS 离线)"
msgid "Pause (low speed of the heatbreak fan)"
msgstr "暂停(散热风扇低速)"
+# AI Translated
msgid "Pause (chamber temperature control problem)"
-msgstr "暂停(腔室温度控制问题)"
+msgstr "暂停(腔体温度控制问题)"
+# AI Translated
msgid "Cooling chamber"
-msgstr "冷却仓温"
+msgstr "腔体降温中"
msgid "Pause (G-code inserted by user)"
msgstr "暂停(用户插入的 G-code)"
@@ -4983,14 +5496,16 @@ msgstr "暂停(用户插入的 G-code)"
msgid "Motor noise showoff"
msgstr "电机噪音校准结果展示"
+# AI Translated
msgid "Pause (nozzle clumping)"
-msgstr "暂停(喷嘴结块)"
+msgstr "暂停(裹头)"
msgid "Pause (cutter error)"
msgstr "暂停(切刀错误)"
+# AI Translated
msgid "Pause (first layer error)"
-msgstr "暂停(第一层错误)"
+msgstr "暂停(首层错误)"
msgid "Pause (nozzle clog)"
msgstr "暂停(喷嘴堵塞)"
@@ -5007,8 +5522,9 @@ msgstr "测量运动精度"
msgid "Nozzle offset calibration"
msgstr "喷嘴偏移校准"
+# AI Translated
msgid "High temperature auto bed leveling"
-msgstr "高温自动床身调平"
+msgstr "高温自动热床调平"
msgid "Auto Check: Quick Release Lever"
msgstr "自动检查:快速释放杆"
@@ -5022,20 +5538,25 @@ msgstr "激光校准"
msgid "Auto Check: Platform"
msgstr "自动检查:平台"
+# AI Translated
msgid "Confirming BirdsEye Camera location"
-msgstr "确认 BirdsEye 相机位置"
+msgstr "确认俯视摄像头位置"
+# AI Translated
msgid "Calibrating BirdsEye Camera"
-msgstr "校准鸟眼相机"
+msgstr "校准俯视摄像头"
+# AI Translated
msgid "Auto bed leveling -phase 1"
-msgstr "自动床调平 - 第 1 阶段"
+msgstr "自动热床调平 - 第 1 阶段"
+# AI Translated
msgid "Auto bed leveling -phase 2"
-msgstr "自动床调平 - 第 2 阶段"
+msgstr "自动热床调平 - 第 2 阶段"
+# AI Translated
msgid "Heating chamber"
-msgstr "加热室"
+msgstr "腔体加热中"
msgid "Cooling heatbed"
msgstr "冷却热床"
@@ -5046,8 +5567,9 @@ msgstr "打印校准线"
msgid "Auto Check: Material"
msgstr "自动检查:材料"
+# AI Translated
msgid "Live View Camera Calibration"
-msgstr "实时取景相机校准"
+msgstr "实况摄像头校准"
msgid "Waiting for heatbed to reach target temperature"
msgstr "等待热床达到目标温度"
@@ -5058,11 +5580,14 @@ msgstr "自动检查:材料位置"
msgid "Cutting Module Offset Calibration"
msgstr "切割模块偏移校准"
+# AI Translated
+# Needs human review: BambuStudio has 曲面测量中; check what the printer measures
msgid "Measuring Surface"
-msgstr "测量面"
+msgstr "测量表面"
+# AI Translated
msgid "Calibrating the detection position of nozzle clumping"
-msgstr "校准喷嘴结块检测位置"
+msgstr "校准裹头检测位置"
msgid "Update successful."
msgstr "更新成功。"
@@ -5082,31 +5607,37 @@ msgstr "该打印机不支持延时摄影。"
msgid "Timelapse is not supported while the storage does not exist."
msgstr "当存储不存在时,不支持延时摄影。"
+# AI Translated
msgid "Timelapse is not supported while the storage is unavailable."
-msgstr "当存储不可用时,不支持延时拍摄。"
+msgstr "当存储不可用时,不支持延时摄影。"
+# AI Translated
msgid "Timelapse is not supported while the storage is readonly."
-msgstr "当存储为只读时,不支持延时拍摄。"
+msgstr "当存储为只读时,不支持延时摄影。"
msgid "To ensure your safety, certain processing tasks (such as laser) can only be resumed on printer."
msgstr "为了确保您的安全,某些处理任务(例如激光)只能在打印机上恢复。"
+# AI Translated
#, c-format, boost-format
msgid "The chamber temperature is too high, which may cause the filament to soften. Please wait until the chamber temperature drops below %d℃. You may open the front door or enable fans to cool down."
-msgstr "腔室温度过高,可能会导致耗材丝软化。请等待箱内温度降至%d℃以下。您可以打开前门或让风扇冷却。"
+msgstr "腔体温度过高,可能会导致耗材丝软化。请等待腔体温度降至%d℃以下。您可以打开前门或开启风扇降温。"
#, c-format, boost-format
msgid "AMS temperature is too high, which may cause the filament to soften. Please wait until the AMS temperature drops below %d℃."
msgstr "AMS 温度过高,可能会导致耗材丝软化。请等待 AMS 温度降至 %d℃ 以下。"
+# AI Translated
msgid "The current chamber temperature or the target chamber temperature exceeds 45℃. In order to avoid extruder clogging, low temperature filament(PLA/PETG/TPU) is not allowed to be loaded."
-msgstr "当前室温度或目标室温度超过 45℃。为避免挤出机堵塞,不允许装入低温丝(PLA/PETG/TPU)。"
+msgstr "当前腔体温度或目标腔体温度超过 45℃。为避免挤出机堵塞,不允许装入低温耗材丝(PLA/PETG/TPU)。"
+# AI Translated
msgid "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder. In order to avoid extruder clogging, it is not allowed to set the chamber temperature."
-msgstr "将低温丝(PLA/PETG/TPU)装入挤出机中。为了避免挤出机堵塞,不允许设定腔室温度。"
+msgstr "挤出机中已装入低温耗材丝(PLA/PETG/TPU)。为了避免挤出机堵塞,不允许设定腔体温度。"
+# AI Translated
msgid "When you set the chamber temperature below 40℃, the chamber temperature control will not be activated, and the target chamber temperature will automatically be set to 0℃."
-msgstr "当您将仓温设置在40℃以下时,仓温控制将不会激活。目标仓温将自动设置为0℃。"
+msgstr "当您将腔体温度设置在40℃以下时,腔体温度控制将不会激活,目标腔体温度将自动设置为0℃。"
msgid "Failed to start print job"
msgstr "发起打印任务失败"
@@ -5142,11 +5673,13 @@ msgstr "网络不可用"
msgid "Resume Printing"
msgstr "继续打印"
+# AI Translated
msgid "Resume (defects acceptable)"
-msgstr "恢复(可接受缺陷)"
+msgstr "继续(可接受缺陷)"
+# AI Translated
msgid "Resume (problem solved)"
-msgstr "恢复(问题已解决)"
+msgstr "继续(问题已解决)"
msgid "Stop Printing"
msgstr "停止打印"
@@ -5154,8 +5687,9 @@ msgstr "停止打印"
msgid "Check Assistant"
msgstr "前往机器助手"
+# AI Translated
msgid "Filament Extruded, Continue"
-msgstr "耗材已挤出,继续"
+msgstr "耗材丝已挤出,继续"
msgid "Not Extruded Yet, Retry"
msgstr "耗材未挤出,重试"
@@ -5163,8 +5697,9 @@ msgstr "耗材未挤出,重试"
msgid "Finished, Continue"
msgstr "已完成,继续"
+# AI Translated
msgid "Filament Loaded, Resume"
-msgstr "耗材已加载,继续"
+msgstr "耗材丝已加载,继续"
msgid "View Liveview"
msgstr "查看LiveView"
@@ -5179,11 +5714,13 @@ msgstr "重新检查"
msgid "Ignore. Don't Remind Next Time"
msgstr "忽略。下次不再提醒"
+# AI Translated
msgid "Ignore this and Resume"
-msgstr "忽略此并继续"
+msgstr "忽略此问题,继续"
+# AI Translated
msgid "Problem Solved and Resume"
-msgstr "问题解决并继续"
+msgstr "问题已解决,继续"
msgid "Got it, Turn off the Fire Alarm."
msgstr "明白了,关掉火警警报器。"
@@ -5191,8 +5728,9 @@ msgstr "明白了,关掉火警警报器。"
msgid "Retry (problem solved)"
msgstr "重试(问题已解决)"
+# AI Translated
msgid "Stop Drying"
-msgstr "停止干燥"
+msgstr "停止烘干"
msgid "Proceed"
msgstr "继续"
@@ -5310,9 +5848,10 @@ msgstr "值 %s 越界,是否继续?"
msgid "Parameter validation"
msgstr "参数验证"
+# AI Translated
#, c-format, boost-format
msgid "Value %s is out of range. The valid range is from %d to %d."
-msgstr "值 %s 超出了范围,有效的范围是从 %d 到 %d 。"
+msgstr "值 %s 超出范围,有效范围为 %d 到 %d。"
#, c-format, boost-format
msgid "Is it %s%% or %s %s?"
@@ -5325,11 +5864,13 @@ msgstr "%"
msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\""
msgstr "输入格式无效。应为以下格式的维度向量:“%1%”"
+# AI Translated
msgid "Input value is out of range"
-msgstr "输入值超出范围外"
+msgstr "输入值超出范围"
+# AI Translated
msgid "Some extension in the input is invalid"
-msgstr "输入中的某些扩展无效"
+msgstr "输入中的某些扩展名无效"
msgid "This parameter expects a valid template."
msgstr "此参数需要有效的模板"
@@ -5375,8 +5916,9 @@ msgstr "配置 (%d)"
msgid "Pick"
msgstr "选择"
+# AI Translated
msgid "Summary"
-msgstr "概括"
+msgstr "概览"
msgid "Layer Height"
msgstr "层高"
@@ -5415,8 +5957,9 @@ msgstr "层时间(对数)"
msgid "Pressure Advance"
msgstr "Pressure Advance"
+# AI Translated
msgid "Noop"
-msgstr "努普"
+msgstr "空操作"
msgid "Retract"
msgstr "回抽"
@@ -5430,8 +5973,9 @@ msgstr "接缝"
msgid "Tool Change"
msgstr "换料"
+# AI Translated
msgid "Color Change"
-msgstr "颜色变化"
+msgstr "颜色更换"
msgid "Pause Print"
msgstr "暂停打印"
@@ -5442,8 +5986,9 @@ msgstr "空驶"
msgid "Wipe"
msgstr "擦拭"
+# AI Translated
msgid "Extrude"
-msgstr "拉伸"
+msgstr "挤出"
msgid "Inner wall"
msgstr "内墙"
@@ -5466,8 +6011,9 @@ msgstr "顶面"
msgid "Bridge"
msgstr "桥接"
+# AI Translated
msgid "Gap infill"
-msgstr "填缝"
+msgstr "缝隙填充"
msgid "Skirt"
msgstr "裙边"
@@ -5481,8 +6027,9 @@ msgstr "擦拭塔"
msgid "Bottom surface"
msgstr "底面"
+# AI Translated
msgid "Internal bridge"
-msgstr "内桥"
+msgstr "内部桥接"
msgid "Support transition"
msgstr "支撑转换层"
@@ -5490,47 +6037,60 @@ msgstr "支撑转换层"
msgid "Mixed"
msgstr "混合"
+# AI Translated
msgid "Height: "
-msgstr "层高: "
+msgstr "层高: "
+# AI Translated
msgid "Width: "
-msgstr "线宽: "
+msgstr "线宽: "
+# AI Translated
msgid "Flow: "
-msgstr "挤出流量: "
+msgstr "挤出流量: "
+# AI Translated
msgid "Fan: "
-msgstr "风扇速度: "
+msgstr "风扇速度: "
+# AI Translated
msgid "Temperature: "
-msgstr "温度: "
+msgstr "温度: "
+# AI Translated
msgid "Layer Time: "
-msgstr "层时间: "
+msgstr "层时间: "
+# AI Translated
msgid "Tool: "
-msgstr "工具:"
+msgstr "工具头: "
+# AI Translated
msgid "Color: "
-msgstr "颜色:"
+msgstr "颜色: "
+# AI Translated
msgid "Acceleration: "
-msgstr "加速度:"
+msgstr "加速度: "
+# AI Translated
msgid "Jerk: "
-msgstr "抖动:"
+msgstr "抖动: "
+# AI Translated
msgid "PA: "
-msgstr "PA:"
+msgstr "PA: "
+# AI Translated
msgid "mm/s"
-msgstr "毫米/秒"
+msgstr "mm/s"
msgid "mm/s²"
msgstr "mm/s²"
+# AI Translated
msgid "mm³/s"
-msgstr "毫米立方/秒"
+msgstr "mm³/s"
msgid "Flow rate"
msgstr "流量"
@@ -5541,8 +6101,9 @@ msgstr "风扇速度"
msgid "Time"
msgstr "时间"
+# AI Translated
msgid "Speed: "
-msgstr "速度: "
+msgstr "速度: "
msgid "Actual speed profile"
msgstr "实际速度曲线"
@@ -5564,8 +6125,9 @@ msgstr "显示"
msgid "Flushed"
msgstr "冲刷"
+# AI Translated
msgid "Tower"
-msgstr "擦料塔"
+msgstr "擦拭塔"
msgid "Total"
msgstr "总计"
@@ -5585,11 +6147,9 @@ msgstr "根据最佳耗材丝分组自动重新切片,切片后显示分组结
msgid "Filament Grouping"
msgstr "耗材丝分组"
-msgid "Why this grouping"
-msgstr "为什么这样分组"
-
+# AI Translated
msgid "Please place filaments on the printer based on grouping result."
-msgstr "请根据分组结果将耗材放置在打印机上。"
+msgstr "请根据分组结果将耗材丝放置在打印机上。"
msgid "Tips:"
msgstr "提示:"
@@ -5597,35 +6157,48 @@ msgstr "提示:"
msgid "Current grouping of slice result is not optimal."
msgstr "当前切片结果的分组不是最佳的。"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "与最佳分组相比,增加 %1%g 耗材丝和 %2% 变化。"
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "与最佳分组相比,增加 %1%g 耗材丝和 %2% 次换料。"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "与最佳分组相比,增加 %1%g 耗材丝并节省 %2% 变化。"
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "与最佳分组相比,增加 %1%g 耗材丝,节省 %2% 次换料。"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "与最佳分组相比,节省 %1%g 耗材丝并增加 %2% 变化。"
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "与最佳分组相比,节省 %1%g 耗材丝,增加 %2% 次换料。"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "与具有一个喷嘴的打印机相比,可节省 %1%g 耗材和 %2% 变化。"
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "与具有一个喷嘴的打印机相比,节省 %1%g 耗材丝和 %2% 次换料。"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "与具有一个喷嘴的打印机相比,节省 %1%g 耗材并增加 %2% 变化。"
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "与具有一个喷嘴的打印机相比,节省 %1%g 耗材丝,增加 %2% 次换料。"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "与具有一个喷嘴的打印机相比,增加 %1%g 耗材并节省 %2% 变化。"
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "与具有一个喷嘴的打印机相比,增加 %1%g 耗材丝,节省 %2% 次换料。"
msgid "Set to Optimal"
msgstr "设置为最佳"
+# AI Translated
msgid "Regroup filament"
-msgstr "重新组合耗材丝"
+msgstr "重新分组耗材丝"
# AI Translated
#, boost-format
@@ -5642,8 +6215,9 @@ msgstr "高于 %1% mm"
msgid "from %1% to %2% mm"
msgstr "从 %1% mm 到 %2% mm"
+# AI Translated
msgid "Usage"
-msgstr "用法"
+msgstr "用量"
msgid "Layer height (mm)"
msgstr "层高(mm)"
@@ -5669,17 +6243,20 @@ msgstr "风扇速度(%)"
msgid "Temperature (℃)"
msgstr "温度(℃)"
+# AI Translated
msgid "Volumetric flow rate (mm³/s)"
-msgstr "体积流量速度(mm³/s)"
+msgstr "体积流量(mm³/s)"
msgid "Actual volumetric flow rate (mm³/s)"
msgstr "实际体积流量(mm³/s)"
+# AI Translated
msgid "Seams"
-msgstr "缝"
+msgstr "接缝"
+# AI Translated
msgid "Filament changes"
-msgstr "材料切换"
+msgstr "耗材丝更换"
msgid "Options"
msgstr "选项"
@@ -5690,8 +6267,9 @@ msgstr "成本"
msgid "Filament change times"
msgstr "换料次数"
+# AI Translated
msgid "Tool changes"
-msgstr "工具更换"
+msgstr "工具头更换"
msgid "Color change"
msgstr "颜色更换"
@@ -5703,8 +6281,9 @@ msgstr "打印"
msgid "Time Estimation"
msgstr "时间预估"
+# AI Translated
msgid "Normal mode"
-msgstr "普通模式"
+msgstr "正常模式"
msgid "Total Filament"
msgstr "总耗材丝"
@@ -5718,25 +6297,29 @@ msgstr "准备时间"
msgid "Model printing time"
msgstr "模型打印时间"
+# AI Translated
+# Needs human review: Confirm 静音模式 matches the printer-settings label for silent mode.
msgid "Show stealth mode"
-msgstr "显示隐身模式"
+msgstr "显示静音模式"
msgid "Show normal mode"
msgstr "显示正常模式"
+# AI Translated
msgid ""
"An object is placed in the left/right nozzle-only area or exceeds the printable height of the left nozzle.\n"
"Please ensure the filaments used by this object are not arranged to other nozzles."
msgstr ""
-"物体被放置在左/右喷嘴专用区域内或超出左喷嘴的可打印高度。\n"
-"请确保该物体使用的耗材丝没有排列到其他喷嘴上。"
+"对象被放置在左/右喷嘴专用区域内或超出左喷嘴的可打印高度。\n"
+"请确保该对象使用的耗材丝没有排列到其他喷嘴上。"
+# AI Translated
msgid ""
"An object is laid over the boundary of plate or exceeds the height limit.\n"
"Please solve the problem by moving it totally on or off the plate, and confirming that the height is within the build volume."
msgstr ""
-"有对象被放置在打印板的边界上或超过高度限制。\n"
-"请通过将其完全移动到打印板内或打印板外,并确认高度在构建空间以内来解决问题。"
+"有对象跨越了盘的边界或超出高度限制。\n"
+"请将其完全移入或移出盘,并确认高度在构建体积以内。"
msgid "Variable layer height"
msgstr "可变层高"
@@ -5776,20 +6359,71 @@ msgstr "增加/减小编辑区域"
msgid "Sequence"
msgstr "顺序"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "整盘质心"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "零件质心"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "支撑质心"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "装配体质心"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "对象质心"
+
+# AI Translated
+msgid "Finished print"
+msgstr "完整打印件"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "已打印至第 %1% 层"
+
+# AI Translated
+msgid "Weight"
+msgstr "重量"
+
+msgid "Volume"
+msgstr "体积"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "在边界框中的位置"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "边界框尺寸"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "转动惯量"
+
msgid "Object selection"
msgstr "对象选择"
-msgid "number keys"
-msgstr "数字键"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "1~16 数字键"
msgid "Number keys can quickly change the color of objects"
msgstr "数字键可以快速更改对象颜色"
+# AI Translated
msgid "Following objects are laid over the boundary of plate or exceeds the height limit:\n"
-msgstr "下列物体超出板的边界或超过高度限制:\n"
+msgstr "下列对象超出盘的边界或超过高度限制:\n"
+# AI Translated
msgid "Please solve the problem by moving it totally on or off the plate, and confirming that the height is within the build volume.\n"
-msgstr "请通过将其完全移至板上或移离板来解决问题,并确认高度在构建体积内。\n"
+msgstr "请将其完全移入或移出盘,并确认高度在构建体积内。\n"
#, c-format, boost-format
msgid "The position or size of some models exceeds the %s's printable range."
@@ -5799,8 +6433,9 @@ msgstr "某些模型的位置或尺寸超出了%s 的可打印范围。"
msgid "The position or size of the model %s exceeds the %s's printable range."
msgstr "模型 %s 的位置或尺寸超出了 %s 的可打印范围。"
+# AI Translated
msgid " Please check and adjust the part's position or size to fit the printable range:\n"
-msgstr "请检查并调整零件的位置或尺寸以适合可打印范围:\n"
+msgstr " 请检查并调整零件的位置或尺寸以适合可打印范围:\n"
#, boost-format
msgid "Left nozzle: X:%1%-%2%, Y:%3%-%4%, Z:%5%-%6%\n"
@@ -5810,11 +6445,13 @@ msgstr "左喷嘴:X:%1%-%2%,Y:%3%-%4%,Z:%5%-%6%\n"
msgid "Right nozzle: X:%1%-%2%, Y:%3%-%4%, Z:%5%-%6%"
msgstr "右喷嘴:X:%1%-%2%,Y:%3%-%4%,Z:%5%-%6%"
+# AI Translated
msgid "Tool move"
-msgstr "工具 移动"
+msgstr "工具移动"
+# AI Translated
msgid "Tool Rotate"
-msgstr "工具 旋转"
+msgstr "旋转"
msgid "Move object"
msgstr "移动对象"
@@ -5825,8 +6462,9 @@ msgstr "自动朝向选项"
msgid "Enable rotation"
msgstr "开启旋转"
+# AI Translated
msgid "Optimize support interface area"
-msgstr "优化接触面面积"
+msgstr "优化支撑面面积"
# src/slic3r/GUI/GLCanvas3D.cpp:4767
msgid "Orient"
@@ -5866,31 +6504,34 @@ msgstr "X"
# AI Translated
msgctxt "Camera View"
msgid "Front"
-msgstr "前面"
+msgstr "前视"
+# AI Translated
msgctxt "Camera View"
msgid "Back"
-msgstr "背面"
+msgstr "后视"
# AI Translated
#. TRN To be shown in the main menu View->Top
msgctxt "Camera View"
msgid "Top"
-msgstr "顶部"
+msgstr "俯视"
# AI Translated
#. TRN To be shown in the main menu View->Bottom
msgctxt "Camera View"
msgid "Bottom"
-msgstr "底部"
+msgstr "仰视"
+# AI Translated
msgctxt "Camera View"
msgid "Left"
-msgstr "左"
+msgstr "左视"
+# AI Translated
msgctxt "Camera View"
msgid "Right"
-msgstr "右"
+msgstr "右视"
msgid "Add plate"
msgstr "添加新盘"
@@ -5901,17 +6542,21 @@ msgstr "拆分为对象"
msgid "Add"
msgstr "添加"
+# AI Translated
msgid "Auto orient all/selected objects"
-msgstr "自动定位所有/选定的对象"
+msgstr "自动调整所有/所选对象的朝向"
+# AI Translated
msgid "Auto orient all objects on current plate"
-msgstr "自动调整当前盘上的所有对象"
+msgstr "自动调整当前盘上所有对象的朝向"
+# AI Translated
msgid "Arrange all objects"
-msgstr "全局整理"
+msgstr "自动摆放所有对象"
+# AI Translated
msgid "Arrange objects on selected plates"
-msgstr "单盘整理"
+msgstr "自动摆放所选盘上的对象"
msgid "Assembly View"
msgstr "装配体视图"
@@ -5928,8 +6573,9 @@ msgstr "切片所有盘"
msgid "Failed"
msgstr "失败"
+# AI Translated
msgid "All Plates"
-msgstr "所有打印板"
+msgstr "所有盘"
msgid "Stats"
msgstr "统计"
@@ -5952,8 +6598,9 @@ msgstr "画布工具栏"
msgid "Section view"
msgstr "剖面视图"
+# AI Translated
msgid "Fit camera to scene or selected object."
-msgstr "让相机适合场景或选定的对象。"
+msgstr "缩放视图以完整显示场景或所选对象。"
msgid "3D Navigator"
msgstr "3D 导航器"
@@ -5988,9 +6635,21 @@ msgstr "坐标轴"
msgid "Gridlines"
msgstr "网格线"
+# AI Translated
+msgid "Focus mode"
+msgstr "专注模式"
+
msgid "Labels"
msgstr "标签"
+# AI Translated
+msgid "Center of mass"
+msgstr "质心"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "显示原始 G-code(仅限传送带打印机)"
+
# AI Translated
msgid "Move section plane"
msgstr "移动剖切面"
@@ -6018,8 +6677,9 @@ msgstr "设置视角"
msgid "Paint Toolbar"
msgstr "上色工具条"
+# AI Translated
msgid "Assembly Control"
-msgstr "拼装视图控制"
+msgstr "装配体视图控制"
msgid "Explosion Ratio"
msgstr "爆炸比例"
@@ -6039,7 +6699,7 @@ msgstr "体积:"
msgid "Size:"
msgstr "尺寸:"
-#, c-format, boost-format
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
msgstr "发现G-code路径在层%d,高度为%.2lf mm处有冲突。请将有冲突的对象分离得更远(%s <-> %s)。"
@@ -6049,65 +6709,74 @@ msgstr "检测到有对象放在盘的边界上。"
msgid "A G-code path goes beyond the max print height."
msgstr "检测出超出打印高度的G-code路径。"
+# AI Translated
msgid "A G-code path goes beyond plate boundaries."
-msgstr "检测超出热床边界的G-code路径。"
+msgstr "检测到超出热床边界的G-code路径。"
+# AI Translated
msgid "Not support printing 2 or more TPU filaments."
-msgstr "不支持打印 2 根或更多 TPU 丝。"
+msgstr "不支持打印 2 种或以上 TPU 耗材丝。"
+# AI Translated
#, c-format, boost-format
msgid "Tool %d"
-msgstr "工具%d"
+msgstr "工具头%d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印范围。"
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印范围。"
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印范围。"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印高度。"
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印高度。"
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印高度。"
+# AI Translated
msgid "Open wiki for more information."
-msgstr "打开维基百科了解更多信息。"
+msgstr "打开 Wiki 了解更多信息。"
msgid "Only the object being edited is visible."
msgstr "只有正在编辑的对象是可见的。"
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "耗材 %s 不能直接打印在该板的表面上。"
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "耗材丝 %s 不能直接打印在该盘的表面上。"
+# AI Translated
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
-msgstr "混合物中检测到 PLA 和 PETG 耗材。根据 Wiki 调整参数以保证打印质量。"
+msgstr "检测到同时使用了 PLA 和 PETG 耗材丝。请根据 Wiki 调整参数以保证打印质量。"
+# AI Translated
msgid "The prime tower extends beyond the plate boundary."
-msgstr "主塔延伸到板块边界之外。"
+msgstr "擦拭塔超出了盘的边界。"
+# AI Translated
msgid "Partial flushing volume set to 0. Multi-color printing may cause color mixing in models. Please readjust flushing settings."
-msgstr "部分冲洗量设置为 0。多色打印可能会导致模型混色。请重新调整冲水设置。"
+msgstr "部分冲刷量设置为 0。多色打印可能会导致模型混色。请重新调整冲刷设置。"
msgid "Click Wiki for help."
msgstr "单击 Wiki 获取帮助。"
+# AI Translated
msgid "Click here to regroup"
-msgstr "单击此处重新组合"
+msgstr "单击此处重新分组"
+# AI Translated
msgid "Flushing Volume"
-msgstr "冲水量"
+msgstr "冲刷体积"
msgid "Calibration step selection"
msgstr "校准步骤选择"
+# AI Translated
+# Needs human review: BambuStudio uses 激光雷达; confirm keeping Micro Lidar in English
msgid "Micro lidar calibration"
-msgstr "微激光雷达校准"
+msgstr "Micro Lidar 校准"
msgid "Bed leveling"
msgstr "热床调平"
@@ -6115,8 +6784,9 @@ msgstr "热床调平"
msgid "High-temperature Heatbed Calibration"
msgstr "高温热床校准"
+# AI Translated
msgid "Nozzle clumping detection Calibration"
-msgstr "喷嘴结块检测校准"
+msgstr "裹头检测校准"
msgid "Calibration program"
msgstr "校准程序"
@@ -6164,19 +6834,21 @@ msgstr "连接打印机(局域网)"
msgid "Please input the printer access code:"
msgstr "请输入打印机访问码:"
+# AI Translated
msgid ""
"You can find it in \"Settings > Network > Access code\"\n"
"on the printer, as shown in the figure:"
msgstr ""
-"您可以在“设置 > 网络 > 访问代码”中找到它\n"
-"在打印机上,如图:"
+"您可以在打印机的“设置 > 网络 > 访问码”中找到它,\n"
+"如下图所示:"
+# AI Translated
msgid ""
"You can find it in \"Setting > Setting > LAN only > Access Code\"\n"
"on the printer, as shown in the figure:"
msgstr ""
-"您可以在“设置 > 设置 > 仅 LAN > 访问代码”中找到它\n"
-"在打印机上,如图:"
+"您可以在打印机的“设置 > 设置 > 仅局域网 > 访问码”中找到它,\n"
+"如下图所示:"
msgid "Invalid input"
msgstr "非法输入"
@@ -6206,27 +6878,20 @@ msgstr "准备"
msgid "Preview"
msgstr "预览"
-msgid "Device"
-msgstr "设备"
-
-msgid "Multi-device"
-msgstr "多设备"
-
msgid "Project"
msgstr "项目"
-# AI Translated
-msgid "Device (Web)"
-msgstr "设备(网页)"
-
msgid "Yes"
msgstr "是"
msgid "No"
msgstr "否"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "将会被关闭以创建新模型,是否继续?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s 将在创建新模型前关闭,是否继续?"
msgid "Print all"
msgstr "打印所有盘"
@@ -6271,6 +6936,10 @@ msgstr "配置向导"
msgid "Show Configuration Folder"
msgstr "打开配置文件夹"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "恢复因配置文件更新而从其原本适用的打印机上移除的耗材丝预设"
+
msgid "Troubleshoot Center"
msgstr "故障排查中心"
@@ -6304,11 +6973,13 @@ msgstr "下载模型"
msgid "Default View"
msgstr "默认视图"
+# AI Translated
msgid "Top View"
-msgstr "顶部视图"
+msgstr "俯视图"
+# AI Translated
msgid "Bottom View"
-msgstr "底部视图"
+msgstr "仰视图"
msgid "Front View"
msgstr "前视图"
@@ -6316,7 +6987,7 @@ msgstr "前视图"
# AI Translated
msgctxt "Camera View"
msgid "Rear"
-msgstr "背面"
+msgstr "后视"
msgid "Rear View"
msgstr "后视图"
@@ -6467,11 +7138,13 @@ msgstr "克隆所选项"
msgid "Clone copies of selections"
msgstr "克隆多份所选项"
+# AI Translated
msgid "Duplicate Current Plate"
-msgstr "复制当前打印板"
+msgstr "复制当前盘"
+# AI Translated
msgid "Duplicate the current plate"
-msgstr "复制当前打印板"
+msgstr "复制当前盘"
msgid "Selects all objects"
msgstr "选中所有对象"
@@ -6479,29 +7152,34 @@ msgstr "选中所有对象"
msgid "Deselects all objects"
msgstr "取消所有选中"
+# AI Translated
msgid "Use Perspective View"
-msgstr "使用透视视角"
+msgstr "使用透视视图"
+# AI Translated
msgid "Use Orthogonal View"
-msgstr "使用正交视角"
+msgstr "使用正交视图"
msgid "Auto Perspective"
msgstr "自动透视"
+# AI Translated
msgid "Automatically switch between orthographic and perspective when changing from top/bottom/side views."
-msgstr "当从顶部/底部/侧视图更改时,自动在正交和透视之间切换。"
+msgstr "从俯视图、仰视图或侧视图切换时,自动在正交和透视之间切换。"
msgid "Show &G-code Window"
msgstr "显示G-code窗口"
+# AI Translated
msgid "Show G-code window in Preview scene."
-msgstr "显示G-code窗口"
+msgstr "在预览场景中显示G-code窗口。"
msgid "Show 3D Navigator"
msgstr "显示3D导航器"
+# AI Translated
msgid "Show 3D navigator in Prepare and Preview scene."
-msgstr "显示3D导航器"
+msgstr "在“准备”和“预览”场景中显示3D导航器。"
msgid "Show Gridlines"
msgstr "显示网格线"
@@ -6509,6 +7187,14 @@ msgstr "显示网格线"
msgid "Show Gridlines on plate"
msgstr "在盘上显示网格线"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "显示 IDEX/IQEX 工具头"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "在 G-code 预览中显示每个使用中喷嘴周围的 IDEX/IQEX 工具头示意模型。"
+
msgid "Reset Window Layout"
msgstr "重置窗口布局"
@@ -6527,11 +7213,13 @@ msgstr "显示悬垂高亮"
msgid "Show object overhang highlight in 3D scene."
msgstr "在3D场景中显示悬垂高亮"
+# AI Translated
msgid "Show Selected Outline (beta)"
-msgstr "显示选中轮廓(测试版)"
+msgstr "显示选中轮廓线(试验)"
+# AI Translated
msgid "Show outline around selected object in 3D scene."
-msgstr "在3D场景中显示选中对象的轮廓"
+msgstr "在3D场景中显示选中对象的轮廓线。"
msgid "Preferences"
msgstr "偏好设置"
@@ -6579,8 +7267,9 @@ msgstr "Pressure Advance"
msgid "Flow ratio"
msgstr "流量比例"
+# AI Translated
msgid "Flow Rate Calibration"
-msgstr "流量校准"
+msgstr "流量比例校准"
msgid "Retraction"
msgstr "回抽"
@@ -6615,17 +7304,21 @@ msgstr "打开G-code 文件"
msgid "Re&load from Disk"
msgstr "从磁盘重新加载"
+# AI Translated
+# Needs human review: English source says 'plater'; confirm the wording once the source is fixed.
msgid "Reload the plater from disk"
-msgstr "从磁盘重新加载平台"
+msgstr "从磁盘重新加载G-code文件"
msgid "Export &Toolpaths as OBJ"
msgstr "将工具路径导出为OBJ格式"
+# AI Translated
msgid "Open &Slicer"
-msgstr "打开 Studio"
+msgstr "打开切片软件"
+# AI Translated
msgid "Open Slicer"
-msgstr "打开 Studio"
+msgstr "打开切片软件"
msgid "&Quit"
msgstr "退出"
@@ -6702,6 +7395,7 @@ msgstr "文件丢失"
msgid "The project is no longer available."
msgstr "此项目不可用。"
+# AI Translated
msgid ""
"Do you want to synchronize your personal data from Orca Cloud?\n"
"It contains the following information:\n"
@@ -6712,14 +7406,15 @@ msgstr ""
"是否要从 Orca Cloud 同步您的个人数据?\n"
"它包含以下信息:\n"
"1. 工艺预设\n"
-"2. 耗材预设\n"
+"2. 耗材丝预设\n"
"3. 打印机预设"
msgid "Synchronization"
msgstr "同步"
+# AI Translated
msgid "The device cannot handle more conversations. Please retry later."
-msgstr "设备无法处理更多的对话。请稍后重试。"
+msgstr "设备无法处理更多会话。请稍后重试。"
msgid "Player is malfunctioning. Please reinstall the system player."
msgstr "播放器异常,请重新安装系统播放器。"
@@ -6773,22 +7468,26 @@ msgstr "打印机已注销,无法连接。"
msgid "LAN Connection Failed (Failed to start liveview)"
msgstr "局域网连接失败(无法启动直播)"
+# AI Translated
msgid ""
"Virtual Camera Tools is required for this task!\n"
"Do you want to install them?"
-msgstr "该功能需要“虚拟摄像头工具包”,是否下载并安装该工具包?"
+msgstr ""
+"该功能需要“虚拟摄像头工具包”!\n"
+"是否下载并安装该工具包?"
msgid "Downloading Virtual Camera Tools"
msgstr "正在下载“虚拟摄像头工具包”"
+# AI Translated
msgid ""
"Another virtual camera is running.\n"
"Orca Slicer supports only a single virtual camera.\n"
"Do you want to stop this virtual camera?"
msgstr ""
-"您想停止此虚拟摄像头吗?另一个虚拟摄像头正在工作。\n"
-"Orca Slicer 同时只能支持一个虚拟摄像头。\n"
-"是否停止前一个虚拟摄像头?"
+"另一个虚拟摄像头正在运行。\n"
+"Orca Slicer 仅支持一个虚拟摄像头。\n"
+"是否停止该虚拟摄像头?"
#, c-format, boost-format
msgid "Virtual camera initialize failed (%s)!"
@@ -6800,8 +7499,9 @@ msgstr "网络不可访问"
msgid "Information"
msgstr "信息"
+# AI Translated
msgid "Loading..."
-msgstr "正在加载视频……"
+msgstr "正在加载……"
msgid "Year"
msgstr "年"
@@ -6880,9 +7580,10 @@ msgstr[0] "您将从打印机中删除%u个文件。确定要继续吗?"
msgid "Delete files"
msgstr "删除文件"
+# AI Translated
#, c-format, boost-format
msgid "Do you want to delete the file '%s' from printer?"
-msgstr "你确定要从打印机中删除文件'%s'吗?"
+msgstr "您确定要从打印机中删除文件'%s'吗?"
msgid "Delete file"
msgstr "删除文件"
@@ -6930,8 +7631,9 @@ msgstr "下载中 %d%%..."
msgid "Air Condition"
msgstr "空调"
+# AI Translated
msgid "Reconnecting the printer, the operation cannot be completed immediately, please try again later."
-msgstr "重新连接打印机,该操作无法立即完成,请稍后再试。"
+msgstr "正在重新连接打印机,该操作无法立即完成,请稍后再试。"
msgid "Timeout, please try again."
msgstr "超时,请重试。"
@@ -6995,8 +7697,9 @@ msgstr "死区:"
msgid "Options:"
msgstr "选项:"
+# AI Translated
msgid "Zoom"
-msgstr "视角缩放"
+msgstr "缩放"
msgid "Translation/Zoom"
msgstr "平移/缩放"
@@ -7016,14 +7719,17 @@ msgstr "反转Y轴"
msgid "Invert Z axis"
msgstr "反转Z轴"
+# AI Translated
msgid "Invert Yaw axis"
-msgstr "反转垂直轴,偏航轴"
+msgstr "反转偏航轴"
+# AI Translated
msgid "Invert Pitch axis"
-msgstr "反转横轴,俯仰轴"
+msgstr "反转俯仰轴"
+# AI Translated
msgid "Invert Roll axis"
-msgstr "反转纵轴,横滚轴"
+msgstr "反转横滚轴"
msgid "(LAN)"
msgstr "(局域网)"
@@ -7085,12 +7791,14 @@ msgstr "通过Pin码绑定"
msgid "Bind with Access Code"
msgstr "使用访问码绑定"
+# AI Translated
msgctxt "Quit_Switching"
msgid "Quit"
-msgstr "辞职"
+msgstr "退出"
+# AI Translated
msgid "Switching..."
-msgstr "交换..."
+msgstr "切换中..."
msgid "Switching failed"
msgstr "切换失败"
@@ -7098,8 +7806,9 @@ msgstr "切换失败"
msgid "Printing progress"
msgstr "打印进度"
+# AI Translated
msgid "Parts Skip"
-msgstr "零件跳过"
+msgstr "跳过零件"
msgid "Stop"
msgstr "停止"
@@ -7121,8 +7830,9 @@ msgstr ""
"您已经完成了商城模型的打印,\n"
"但是评分信息的同步失败了。"
+# AI Translated
msgid "How do you like this printing file?"
-msgstr "你觉得这个打印文件怎么样?"
+msgstr "您觉得这个打印文件怎么样?"
msgid "(The model has already been rated. Your rating will overwrite the previous rating.)"
msgstr "(该模型已进行评分。您的评分将覆盖之前的评分。)"
@@ -7134,14 +7844,17 @@ msgstr "评分"
msgid "Calculating..."
msgstr "正在计算..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
-msgstr "摄像机"
+msgstr "摄像头"
msgid "Storage"
msgstr "存储"
+# AI Translated
msgid "Camera Setting"
-msgstr "相机设置"
+msgstr "摄像头设置"
msgid "Control"
msgstr "控制"
@@ -7185,25 +7898,28 @@ msgstr "您确定要停止打印吗?"
msgid "The printer is busy with another print job."
msgstr "打印机正在执行其他打印任务"
+# AI Translated
msgid "When printing is paused, filament loading and unloading are only supported for external slots."
-msgstr "打印暂停时,仅外部插槽支持耗材装载和卸载。"
+msgstr "打印暂停时,仅外置槽位支持进料和退料。"
msgid "Current extruder is busy changing filament."
msgstr "当前挤出机正忙于更换耗材丝。"
# AI Translated
msgid "\"Load\" or \"Unload\" is not supported for external spool while using Filament Track Switch."
-msgstr "在使用 Filament Track Switch 时,外部料盘不支持“装载”或“卸载”。"
+msgstr "使用耗材变轨器时,外置料盘不支持“进料”或“退料”。"
# AI Translated
msgid "The Filament Track Switch has not been setup. Please setup on printer."
-msgstr "Filament Track Switch 尚未设置。请在打印机上进行设置。"
+msgstr "耗材变轨器尚未设置。请在打印机上进行设置。"
+# AI Translated
msgid "Current slot has already been loaded."
-msgstr "当前插槽已被加载。"
+msgstr "当前槽位已进料。"
+# AI Translated
msgid "The selected slot is empty."
-msgstr "所选插槽为空。"
+msgstr "所选槽位为空。"
msgid "Printer 2D mode does not support 3D calibration"
msgstr "打印机 2D 模式不支持 3D 校准"
@@ -7214,9 +7930,11 @@ msgstr "下载中..."
msgid "Cloud Slicing..."
msgstr "云切片中..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "前面还有%s个任务在云端切片队列中"
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "云端切片队列中,您前面还有 %d 个任务。"
#, c-format, boost-format
msgid "Layer: %s"
@@ -7229,17 +7947,20 @@ msgstr "层: %d/%d"
msgid "Please heat the nozzle to above 170℃ before loading or unloading filament."
msgstr "请在进料或退料前把喷嘴升温到170℃以上。"
+# AI Translated
msgid "Chamber temperature cannot be changed in cooling mode while printing."
-msgstr "打印时在冷却模式下无法更改腔室温度。"
+msgstr "打印时在冷却模式下无法更改腔体温度。"
+# AI Translated
msgid "If the chamber temperature exceeds 40℃, the system will automatically switch to heating mode. Please confirm whether to switch."
-msgstr "如果箱内温度超过 40℃,系统将自动切换至加热模式。请确认是否切换。"
+msgstr "如果腔体温度超过 40℃,系统将自动切换至加热模式。请确认是否切换。"
msgid "Please select an AMS slot before calibration"
msgstr "请先选择一个AMS槽位后进行校准"
+# AI Translated
msgid "Cannot read filament info: the filament is loaded to the tool head. Please unload the filament and try again."
-msgstr "无法读取耗材丝信息:耗材丝已经加载到工具头,请退出耗材丝后再重试。"
+msgstr "无法读取耗材丝信息:耗材丝已经加载到工具头,请先退料再重试。"
msgid "This only takes effect during printing"
msgstr "仅在打印过程中生效"
@@ -7247,14 +7968,20 @@ msgstr "仅在打印过程中生效"
msgid "Silent"
msgstr "静音"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "标准"
+
msgid "Sport"
msgstr "运动"
msgid "Ludicrous"
msgstr "狂暴"
+# AI Translated
msgid "Turning off the lights during the task will cause the failure of AI monitoring, like spaghetti detection. Please choose carefully."
-msgstr "任务过程中关灯会导致 AI 监控失败,就像炒面检测一样。请谨慎选择。"
+msgstr "任务过程中关灯会导致炒面检测等 AI 监控失效。请谨慎选择。"
msgid "Keep it On"
msgstr "保持开启状态"
@@ -7300,25 +8027,41 @@ msgstr "获取oss配置失败。"
msgid "Upload Pictures"
msgstr "上传图片"
+# AI Translated
msgid "Number of images successfully uploaded"
-msgstr "图像上传成功"
+msgstr "成功上传的图像数量"
-msgid " upload failed"
-msgstr "上传失败"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "%s 上传失败"
-msgid " upload config prase failed\n"
-msgstr "上传配置解析失败\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "%s 上传配置解析失败"
-msgid " No corresponding storage bucket\n"
-msgstr "没有相应的存储桶\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s:没有相应的存储桶"
-msgid " cannot be opened\n"
-msgstr "无法打开\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "无法打开 %s"
+# AI Translated
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
"\n"
-msgstr "在上传图像的过程中出现以下问题。你想忽略它们吗?\n"
+msgstr ""
+"上传图像的过程中出现以下问题。是否忽略这些问题?\n"
+"\n"
msgid "Synchronizing the printing results. Please retry a few seconds later."
msgstr "正在同步打印结果。请稍后重试。"
@@ -7329,29 +8072,26 @@ msgstr "上传失败\n"
msgid "Obtaining instance_id failed\n"
msgstr "获取instance_id失败\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"由于某些原因,您的评论结果无法上传。如下所示:\n"
-"\n"
-"错误代码:"
-
-msgid "error message: "
-msgstr "错误消息:"
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"由于以下原因,您的评价结果无法上传:\n"
"\n"
+" 错误代码:%d\n"
+" 错误信息:%s\n"
"\n"
-"您是否想要重定向到评分网页?"
+"是否跳转到网页进行评分?"
+# AI Translated
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
-msgstr "您的一些图像上传失败。您是否想要重定向到评分网页?"
+msgstr "部分图像上传失败。是否跳转到网页进行评分?"
msgid "You can select up to 16 images."
msgstr "您最多可以选择16张图像。"
@@ -7366,15 +8106,16 @@ msgstr ""
msgid "click to add machine"
msgstr "点击添加打印机"
+# AI Translated
msgid "Status"
-msgstr "设备状态"
+msgstr "状态"
msgctxt "Firmware"
msgid "Update"
msgstr "更新"
msgid "Assistant(HMS)"
-msgstr "助理(HMS)"
+msgstr "助手(HMS)"
#, c-format, boost-format
msgid "Network plug-in v%s"
@@ -7390,8 +8131,9 @@ msgstr "不再显示"
msgid "Go to"
msgstr "前往"
+# AI Translated
msgid "Later"
-msgstr "之后"
+msgstr "稍后"
#, c-format, boost-format
msgid "%s error"
@@ -7438,11 +8180,13 @@ msgstr "3MF 文件版本比当前 OrcaSlicer 版本更新。"
msgid "Updating your OrcaSlicer could enable all functionality in the 3MF file."
msgstr "更新您的 OrcaSlicer 以启用 3MF 文件中的所有功能。"
+# AI Translated
msgid "Current Version: "
-msgstr "当前版本:"
+msgstr "当前版本: "
+# AI Translated
msgid "Latest Version: "
-msgstr "最新版本:"
+msgstr "最新版本: "
msgctxt "Software"
msgid "Update"
@@ -7463,8 +8207,9 @@ msgstr "如果服务器处于故障状态,您可以暂时使用离线打印或
msgid "How to use LAN only mode"
msgstr "如何使用仅局域网模式"
+# AI Translated
msgid "Don't show this dialog again"
-msgstr "不再显示此对话框?"
+msgstr "不再显示此对话框"
msgid "Please refer to Wiki before use->"
msgstr "使用前请参考 Wiki->"
@@ -7554,8 +8299,9 @@ msgstr "最大体积流量校准"
msgid "Pressure Advance Calibration"
msgstr "Pressure Advance 校准"
+# AI Translated
msgid "Flow Ratio Calibration"
-msgstr "流量比校准"
+msgstr "流量比例校准"
# AI Translated
msgid "Retraction Calibration"
@@ -7579,35 +8325,35 @@ msgstr "VFA 校准"
# AI Translated
msgid "View: Top"
-msgstr "视图:顶部"
+msgstr "视图:俯视图"
# AI Translated
msgid "View: Bottom"
-msgstr "视图:底部"
+msgstr "视图:仰视图"
# AI Translated
msgid "View: Front"
-msgstr "视图:前面"
+msgstr "视图:前视图"
# AI Translated
msgid "View: Rear"
-msgstr "视图:背面"
+msgstr "视图:后视图"
# AI Translated
msgid "View: Left"
-msgstr "视图:左"
+msgstr "视图:左视图"
# AI Translated
msgid "View: Right"
-msgstr "视图:右"
+msgstr "视图:右视图"
# AI Translated
msgid "View: Isometric"
-msgstr "视图:等距"
+msgstr "视图:等轴测视图"
# AI Translated
msgid "View: Default"
-msgstr "视图:默认"
+msgstr "视图:默认视图"
# AI Translated
msgid "Fit Bed to View"
@@ -7649,7 +8395,7 @@ msgstr "落到热床"
# AI Translated
msgid "Scale to Fit Print Volume"
-msgstr "缩放以适应构建空间"
+msgstr "缩放以适应构建体积"
# AI Translated
msgid "Increase Instances"
@@ -7810,20 +8556,23 @@ msgstr "安全移除硬件。"
msgid "Ejecting."
msgstr "正在弹出。"
+# AI Translated
#, c-format, boost-format
msgid "%1$d Object has custom supports."
msgid_plural "%1$d Objects have custom supports."
-msgstr[0] "%1$d 模型有自定义支撑。"
+msgstr[0] "%1$d 个对象有自定义支撑。"
+# AI Translated
#, c-format, boost-format
msgid "%1$d Object has color painting."
msgid_plural "%1$d Objects have color painting."
-msgstr[0] "%1$d对象有涂色。"
+msgstr[0] "%1$d 个对象有涂色。"
+# AI Translated
#, c-format, boost-format
msgid "%1$d object was loaded as a part of cut object."
msgid_plural "%1$d objects were loaded as parts of cut object."
-msgstr[0] "%1$d对象加载为一个切割对象的子部件"
+msgstr[0] "%1$d 个对象已作为切割对象的零件加载。"
#, c-format, boost-format
msgid "%1$d object was loaded with fuzzy skin painting."
@@ -7856,8 +8605,9 @@ msgstr "错误:"
msgid "Warning:"
msgstr "警告:"
+# AI Translated
msgid "Exported successfully"
-msgstr "导出成功."
+msgstr "导出成功"
msgid "Model file downloaded."
msgstr "已下载模型文件。"
@@ -7877,17 +8627,20 @@ msgstr "浏览共享配置文件"
msgid "Serious warning:"
msgstr "严重警告:"
+# AI Translated
msgid " (Repair)"
-msgstr "(修复)"
+msgstr " (修复)"
+# AI Translated
msgid " Click here to install it."
-msgstr "点击此处安装"
+msgstr " 点击此处安装。"
msgid "WARNING:"
msgstr "警告:"
+# AI Translated
msgid "Your model needs support! Please enable support material."
-msgstr "你的模型需要支撑才能打印。请开启材料支撑选项。"
+msgstr "您的模型需要支撑!请启用支撑。"
msgid "G-code path overlap"
msgstr "G-code路径重叠"
@@ -7926,14 +8679,18 @@ msgstr "请升级您的显卡驱动。"
msgid "Unsupported OpenGL version"
msgstr "不支持的OpenGL版本"
+# AI Translated
#, c-format, boost-format
msgid ""
"Unable to load shaders:\n"
"%s"
-msgstr "无法加载Shader: %s"
+msgstr ""
+"无法加载着色器:\n"
+"%s"
+# AI Translated
msgid "Error loading shaders"
-msgstr "加载shader程序时发生错误"
+msgstr "加载着色器时出错"
msgctxt "Layers"
msgid "Top"
@@ -7945,11 +8702,11 @@ msgstr "底部"
# AI Translated
msgid "This setting does not specify a plugin capability type."
-msgstr "此设置未指定插件能力类型。"
+msgstr "此设置未指定插件功能类型。"
# AI Translated
msgid "This setting specifies an unrecognized plugin capability type: "
-msgstr "此设置指定了无法识别的插件能力类型: "
+msgstr "此设置指定了无法识别的插件功能类型: "
msgid "Plugin Selection"
msgstr "插件选择"
@@ -7964,10 +8721,11 @@ msgstr ""
# AI Translated
msgid "There is stringing-prone filament in the current print job. Enabling nozzle clumping detection now may degrade print quality. Are you sure you want to enable it?"
-msgstr "当前打印任务中存在易拉丝的耗材。此时启用喷嘴结块检测可能会降低打印质量。您确定要启用吗?"
+msgstr "当前打印任务中存在易拉丝的耗材丝。此时启用裹头检测可能会降低打印质量。您确定要启用吗?"
+# AI Translated
msgid "Enable Nozzle Clumping Detection"
-msgstr "裹头检测"
+msgstr "启用裹头检测"
msgid "When enabled, the printer will automatically capture photos of printed parts and upload them to the cloud. Would you like to enable this option?"
msgstr "启用此功能后,打印机将自动拍摄打印件的照片并将其上传至云端。是否要启用此选项?"
@@ -7984,8 +8742,9 @@ msgstr "检测打印板的定位标记,如果标记不在预定义范围内时
msgid "Build Plate Detection"
msgstr "打印板检测"
+# AI Translated
msgid "Identifies the type and position of the build plate on the heatbed. Pausing printing if a mismatch is detected."
-msgstr "识别打印平台板在热床上的类型和位置。如果检测到不匹配,则暂停打印。"
+msgstr "识别热床上打印板的类型和位置。如果检测到不匹配,则暂停打印。"
msgid "Purifies the chamber air as the print finishes, based on the selected mode."
msgstr "每次打印结束时,根据所选方式净化打印机的腔体空气。"
@@ -7993,14 +8752,17 @@ msgstr "每次打印结束时,根据所选方式净化打印机的腔体空气
msgid "Purifies the chamber air through internal circulation as each print finishes."
msgstr "每次打印结束时,通过内循环净化打印机的腔体空气。"
+# AI Translated
msgid "Automatically match the corresponding switch strategy for leak-prone filaments (disable blob detection) and regular filaments (enable blob detection)."
-msgstr "对易拉丝耗材(关闭裹头检测)与常规耗材(开启裹头检测)自动匹配相应的开关策略。"
+msgstr "对易拉丝耗材丝(关闭裹头检测)与常规耗材丝(开启裹头检测)自动匹配相应的开关策略。"
+# AI Translated
msgid "Detect whether the nozzle is wrapped by filament or other foreign matter."
-msgstr "检测喷嘴是否被耗材或其他异物包裹住。"
+msgstr "检测喷嘴是否被耗材丝或其他异物包裹住。"
+# AI Translated
msgid "After disabling, nozzle wrapping cannot be detected, which may lead to print failure or nozzle damage."
-msgstr "关闭后无法发现喷嘴包裹,可能导致打印失败或喷嘴损坏。"
+msgstr "关闭后无法发现喷嘴包裹,可能导致打印失败或喷嘴损坏。"
msgid "AI Detections"
msgstr "人工智能检测"
@@ -8020,17 +8782,21 @@ msgstr "炒面检测"
msgid "Detect spaghetti failures (scattered lose filament)."
msgstr "检测炒面故障(散落松脱的耗材丝)。"
+# AI Translated
+# Needs human review: Check the label length; BambuStudio shortens it to 堆料检测.
msgid "Purge Chute Pile-Up Detection"
-msgstr "清理溜槽堆积检测"
+msgstr "冲刷废料槽堆积检测"
+# AI Translated
msgid "Monitor if the waste is piled up in the purge chute."
-msgstr "监控废物是否堆积在清理溜槽中。"
+msgstr "监控冲刷废料是否堆积在废料槽中。"
msgid "Nozzle Clumping Detection"
msgstr "裹头检测"
+# AI Translated
msgid "Check if the nozzle is clumping by filaments or other foreign objects."
-msgstr "检查喷嘴是否被耗材或其他异物堵塞。"
+msgstr "检查喷嘴是否被耗材丝或其他异物包裹。"
msgid "Detects air printing caused by nozzle clogging or filament grinding."
msgstr "检测由于喷嘴堵塞或耗材丝研磨造成的空打。"
@@ -8080,8 +8846,9 @@ msgstr "打印件位移检测"
msgid "Monitors the printed part during printing and alerts immediately if it shifts or collapses."
msgstr "检测打印中的打印件状态,若发生移动或倒塌则立即提醒。"
+# AI Translated
msgid "Checks if the nozzle is clumping by filament or other foreign objects."
-msgstr "检查喷嘴是否被耗材或其他异物堵塞。"
+msgstr "检查喷嘴是否被耗材丝或其他异物包裹。"
msgid "On"
msgstr "开"
@@ -8109,9 +8876,10 @@ msgctxt "Nozzle Diameter"
msgid "Diameter"
msgstr "直径"
+# AI Translated
msgctxt "Nozzle Flow"
msgid "Flow"
-msgstr "流动"
+msgstr "流量"
msgid "Please change the nozzle settings on the printer."
msgstr "请更改打印机上的喷嘴设置。"
@@ -8131,8 +8899,9 @@ msgstr "没有适用于此打印机的 wiki 链接。"
msgid "Unavailable while heating maintenance function is on."
msgstr "加热维护功能开启时不可用。"
+# AI Translated
msgid "Idle Heating Protection"
-msgstr "怠速加热保护"
+msgstr "空闲加热保护"
msgid "Stops heating automatically after 5 mins of idle to ensure safety."
msgstr "闲置 5 分钟后自动停止加热,确保安全。"
@@ -8155,14 +8924,118 @@ msgstr "查看所有对象的配置"
msgid "Material settings"
msgstr "材料设置"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "每个模式都规定了哪些工具头参与以及各自的角色。单击工具头按钮可循环切换角色;将鼠标悬停在下方颜色上可查看各角色的作用。"
+
+# AI Translated
+msgid "Add Mode"
+msgstr "添加模式"
+
+# AI Translated
+msgid "Tools"
+msgstr "工具"
+
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "该模式在盘的 IDEX/IQEX 模式选择器中显示的名称。必填,未命名的模式无法选择。"
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "参与该模式的工具头及其各自的角色。单击方块可循环切换角色。"
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "打印开始时运行的 G-code,用于将打印机切换到此模式(例如调用 Klipper 的 SET_PRINT_MODE)。切片软件只生成主工具头的路径,其余工具头由固件控制。"
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "未激活"
+
+# AI Translated
+# Needs human review: IDEX/IQEX role tile label: glossary renders Primary as the single character 主; check it reads right as a standalone tile in the Modes editor.
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "主"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "复制"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "镜像"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "打印全部切片路径。始终为工具头 0,可通过上方的“工具头 0 位置”选择它位于热床的哪个角。它无法从网格中移除。"
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "由固件控制跟随主工具头,在自己的区域内偏移打印相同的路径。"
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "由固件控制跟随主工具头,沿两个区域之间的分界线镜像打印相同的路径。"
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "把主工具头所在龙门上的一个工具头标记为它的多色搭档。在龙门配对模式下多色打印时必须设置此项。"
+
+# AI Translated
+msgid "Primary"
+msgstr "主模式"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "模式名称(必填)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "此并行模式在盘的 IDEX/IQEX 模式选择器中显示的名称。项目按名称记录所用的模式,因此重命名已被盘使用的模式后,这些盘会回退到主模式。不能为空,留空时会自动生成名称。"
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "使用此模式的打印开始时输出一次的 G-code,位于打印机起始G-code 之前。打印机在此切换到对应的固件模式(例如调用 Klipper 的 SET_PRINT_MODE 或 RepRapFirmware 的 M567),因为切片软件只生成主工具头的路径,复制(Copy)/镜像(Mirror)工具头由固件控制。支持占位符,可通过编辑按钮浏览。如果该模式无需固件设置,请留空。"
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "编辑 G-code / 浏览占位符"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "删除此模式"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "放弃对此模式所做的未保存修改(恢复为已保存的值)"
+
msgid "Remove current plate (if not last one)"
msgstr "移除当前盘(如果不是最后一个)"
+# AI Translated
msgid "Auto orient objects on current plate"
-msgstr "在当前盘上自动调整零件的朝向"
+msgstr "自动调整当前盘上对象的朝向"
+# AI Translated
msgid "Arrange objects on current plate"
-msgstr "在当前盘上排列零件"
+msgstr "自动摆放当前盘上的对象"
msgid "Unlock current plate"
msgstr "解锁当前盘"
@@ -8179,12 +9052,33 @@ msgstr "编辑当前盘名"
msgid "Move plate to the front"
msgstr "将当前盘移到最前面"
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX 模式:%1%(工艺预设:%2%)(左键单击循环切换,右键单击打开菜单)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX 模式:%1%(左键单击循环切换,右键单击打开菜单)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "警告:此盘包含多材料对象,同时使用了 IDEX/IQEX 并行模式。请谨慎操作,并确认您的 G-code 能正确处理这种组合。"
+
msgid "Customize current plate"
msgstr "自定义当前盘"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "%s 喷嘴无法打印 %s。"
+msgid "The left nozzle cannot print %s."
+msgstr "左喷嘴无法打印 %s。"
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "右喷嘴无法打印 %s。"
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8194,12 +9088,17 @@ msgstr "在单挤出机打印机上打印混色耗材丝需要频繁换料和冲
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "不建议在打印时将 %1% 与 %2% 混合。\n"
-msgid " nozzle"
-msgstr "喷嘴"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "不建议使用 %1% 打印以下耗材: %2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "%1% mm %2% 喷嘴"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "不建议使用 %1% 打印以下耗材丝:%2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "不建议使用以下喷嘴和耗材丝组合:\n"
@@ -8208,15 +9107,18 @@ msgstr "不建议使用以下喷嘴和耗材丝组合:\n"
msgid "%1% with %2%\n"
msgstr "%1% 与 %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr "盘%1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "正在切片盘 %1%:%2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "无效名称,不允许使用以下字符:"
+# AI Translated
msgid "Sliced Info"
-msgstr "切片你信息"
+msgstr "切片信息"
msgid "Used Filament (m)"
msgstr "耗材丝消耗长度 (m)"
@@ -8245,18 +9147,12 @@ msgstr "AMS(1 槽)"
msgid "Not installed"
msgstr "未安装"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "该软件不支持在一次打印中使用不同直径的喷嘴。如果左右喷嘴不一致,就只能进行单头打印。请确认您想在该项目中使用哪种喷嘴。"
-
-msgid "Switch diameter"
-msgstr "开关直径"
-
msgid "Configuration incompatible"
msgstr "配置不兼容"
# AI Translated
msgid "Filament switcher detected. All AMS filaments are now available for both extruders. The slicer will auto-assign for optimal printing."
-msgstr "检测到耗材切换器。现在所有 AMS 耗材均可供两个挤出机使用。切片器将自动分配以获得最佳打印效果。"
+msgstr "检测到耗材切换器。现在所有 AMS 耗材丝均可供两个挤出机使用。切片器将自动分配以获得最佳打印效果。"
# AI Translated
msgid "A filament switcher is detected but not calibrated and thus currently unavailable. Please calibrate it on the printer and synchronize before use."
@@ -8287,8 +9183,9 @@ msgstr "连接"
msgid "Synchronize nozzle information and the number of AMS"
msgstr "同步喷嘴信息和 AMS 数量"
+# AI Translated
msgid "Click to edit preset"
-msgstr "点击编辑配置"
+msgstr "点击编辑预设"
# AI Translated
#. TRN Sidebar label of the printer variant (nozzle) selector; picking one switches the printer preset.
@@ -8308,17 +9205,21 @@ msgstr "冲刷模式"
msgid "Flushing volumes"
msgstr "冲刷体积"
+# AI Translated
msgid "Add one filament"
-msgstr "增加一个材料"
+msgstr "增加一个耗材丝"
+# AI Translated
msgid "Remove last filament"
-msgstr "删除最后一个材料"
+msgstr "删除最后一个耗材丝"
+# AI Translated
msgid "Synchronize filament list from AMS"
-msgstr "从AMS同步材料列表"
+msgstr "从AMS同步耗材丝列表"
+# AI Translated
msgid "Set filaments to use"
-msgstr "配置可选择的材料"
+msgstr "配置可选择的耗材丝"
# AI Translated
msgid "Add Mixed Filament"
@@ -8332,6 +9233,10 @@ msgstr "混合耗材丝"
msgid "Remove last mixed filament"
msgstr "移除最后一个混合耗材丝"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "移除所有混合耗材丝"
+
# AI Translated
msgid "Add mixed filament"
msgstr "添加混合耗材丝"
@@ -8354,6 +9259,12 @@ msgstr "混合耗材丝的组分引用已失效"
msgid "Edit / Delete / Merge"
msgstr "编辑 / 删除 / 合并"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "是否移除全部 %1% 个混合耗材丝?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
msgstr "目标混合耗材丝将此物理耗材丝用作组分。合并将移除此物理耗材丝,并可能使该混合耗材丝失效。是否继续?"
@@ -8362,11 +9273,13 @@ msgstr "目标混合耗材丝将此物理耗材丝用作组分。合并将移除
msgid "After completing your operation, %s project will be closed and create a new project."
msgstr "完成操作后,%s 项目将关闭并创建一个新项目。"
+# AI Translated
msgid "There are no compatible filaments, and sync is not performed."
-msgstr "没有如任何兼容的材料,同步操作未执行。"
+msgstr "没有任何兼容的耗材丝,未执行同步。"
+# AI Translated
msgid "Sync filaments with AMS"
-msgstr "同步到 AMS 的材料列表"
+msgstr "与 AMS 同步耗材丝"
msgid ""
"There are some unknown or incompatible filaments mapped to generic preset.\n"
@@ -8389,9 +9302,10 @@ msgstr "是否保存修改到“%1%”?"
msgid "UV Editor"
msgstr "UV 编辑器"
+# AI Translated
#, c-format, boost-format
msgid "Successfully unmounted. The device %s (%s) can now be safely removed from the computer."
-msgstr "卸载成功。设备%s(%s)现在可能安全地从电脑移除。"
+msgstr "卸载成功。现在可以安全地从电脑移除设备 %s(%s)。"
#, c-format, boost-format
msgid "Ejecting of device %s (%s) has failed."
@@ -8403,23 +9317,27 @@ msgstr "检测到有未保存的项目,是否恢复此项目?"
msgid "Restore"
msgstr "恢复"
+# AI Translated
msgid "The current heatbed temperature is relatively high. The nozzle may clog when printing this filament in a closed environment. Please open the front door and/or remove the upper glass."
-msgstr "当前热床温度相对较高。在封闭式外壳中打印这种丝可能会导致喷嘴堵塞。请打开前门和/或取下上部玻璃。"
+msgstr "当前热床温度相对较高。在封闭环境中打印此耗材丝可能会导致喷嘴堵塞。请打开前门和/或取下上部玻璃。"
+# AI Translated
msgid "The nozzle hardness required by the filament is higher than the default nozzle hardness of the printer. Please replace the hardened nozzle or filament, otherwise, the nozzle will be worn down or damaged."
-msgstr "打印丝所要求的喷嘴硬度高于打印机默认的喷嘴硬度。请更换硬化的喷嘴或打印丝,否则喷嘴可能被磨损或损坏。"
+msgstr "该耗材丝所要求的喷嘴硬度高于打印机默认的喷嘴硬度。请更换为硬化喷嘴或更换耗材丝,否则喷嘴可能会磨损或损坏。"
msgid "Enabling traditional timelapse photography may cause surface imperfections. It is recommended to change to smooth mode."
msgstr "启用传统的延时摄影可能会导致表面瑕疵。建议更改为平滑模式。"
+# AI Translated
msgid "Smooth mode for timelapse is enabled, but the prime tower is off, which may cause print defects. Please enable the prime tower, re-slice and print again."
-msgstr "延时拍摄的平滑模式已启用,但底墨塔已关闭,这可能会导致打印缺陷。请启用主塔,重新切片并再次打印。"
+msgstr "延时摄影的平滑模式已启用,但擦拭塔已关闭,这可能会导致打印缺陷。请启用擦拭塔,重新切片后再打印。"
msgid "Expand sidebar"
msgstr "展开侧边栏"
+# AI Translated
msgid "Collapse sidebar"
-msgstr "折叠边栏"
+msgstr "折叠侧边栏"
#, c-format, boost-format
msgid "Loading file: %s"
@@ -8428,9 +9346,6 @@ msgstr "加载文件:%s"
msgid "Load 3MF"
msgstr "加载 3MF"
-msgid "BambuStudio Project"
-msgstr "BambuStudio 项目"
-
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
msgstr "该 3MF 不受 OrcaSlicer 支持,仅加载几何数据。"
@@ -8443,8 +9358,9 @@ msgstr "该 3MF 文件由较旧的版本生成,仅加载几何数据。"
msgid "The 3MF file was generated by BambuStudio, loading geometry data only."
msgstr "该 3MF 文件由 BambuStudio 生成,仅加载几何数据。"
+# AI Translated
msgid "This project was created with an OrcaSlicer 2.3.1-alpha and uses infill rotation template settings that may not work properly with your current infill pattern. This could result in weak support or print quality issues."
-msgstr "该项目由 OrcaSlicer 2.3.1-alpha 创建,并使用了填充旋转模板设置,这些设置可能无法与您当前的填充模式正常配合,可能导致支撑不足或打印质量问题。"
+msgstr "该项目由 OrcaSlicer 2.3.1-alpha 创建,并使用了填充旋转模板设置,这些设置可能无法与您当前的填充图案正常配合,可能导致支撑不足或打印质量问题。"
msgid "Would you like OrcaSlicer to automatically fix this by clearing the rotation template settings?"
msgstr "您是否希望 OrcaSlicer 清除旋转模板设置以自动修复此问题?"
@@ -8460,37 +9376,31 @@ msgstr "建议升级您的软件版本。\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "该 3MF 文件版本 %s 比 %s 的版本 %s 新,建议升级您的软件。"
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "该 3MF 由 BambuStudio(版本 %s)创建,其版本高于兼容版本 %s。发现无法识别的设置:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "该 3MF 由 BambuStudio(版本 %s)创建,其版本高于兼容版本 %s。部分设置可能无法完全兼容。"
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "该 3MF 由 BambuStudio 创建。部分设置可能与 OrcaSlicer 不同。"
-
msgid "Invalid values found in the 3MF:"
msgstr "在3mf文件中发现无效值:"
msgid "Please correct them in the Param tabs"
msgstr "请在参数页更正它们"
+# AI Translated
msgid "The 3MF has the following modified G-code in filament or printer presets:"
-msgstr "该3mf文件中的材料或者打印机预设包含以下修改过的G-codes:"
+msgstr "该 3MF 文件的耗材丝或打印机预设中包含以下修改过的 G-code:"
+# AI Translated
msgid "Please confirm that all modified G-code is safe to prevent any damage to the machine!"
-msgstr "请确认这些修改过的G-codes是否安全,以防止对机器造成任何损坏!"
+msgstr "请确认所有修改过的 G-code 都是安全的,以免对机器造成任何损坏!"
+# AI Translated
msgid "Modified G-code"
-msgstr "修改过的G-codes"
+msgstr "修改过的 G-code"
+# AI Translated
msgid "The 3MF has the following customized filament or printer presets:"
-msgstr "该3MF文件包含以下自定义的材料或打印机预设:"
+msgstr "该 3MF 文件包含以下自定义的耗材丝或打印机预设:"
+# AI Translated
msgid "Please confirm that the G-code within these presets is safe to prevent any damage to the machine!"
-msgstr "请确认这些预设中的G-codes是否安全,以防止对机器造成任何损坏!"
+msgstr "请确认这些预设中的 G-code 是安全的,以免对机器造成任何损坏!"
msgid "Customized Preset"
msgstr "自定义的预设"
@@ -8523,13 +9433,14 @@ msgstr "体积为零的对象已被移除"
msgid "The volume of the object is zero"
msgstr "对象的体积为零"
+# AI Translated
#, c-format, boost-format
msgid ""
"The object from file %s is too small, and may be in meters or inches.\n"
"Do you want to scale to millimeters?"
msgstr ""
-"文件 %s 中对象的尺寸过小,似乎是以米(m)或者英寸(inch)为单位定义的。\n"
-"OrcaSlicer的内部单位为毫米(mm)。是否要转换成毫米(mm)?"
+"文件 %s 中对象的尺寸过小,可能是以米或英寸为单位。\n"
+"是否将其缩放为毫米?"
msgid "Object too small"
msgstr "对象尺寸过小"
@@ -8544,8 +9455,9 @@ msgstr ""
"是否将该文件加载为一个由多个零件组成的对象,\n"
"而非多个独立的对象?"
+# AI Translated
msgid "Multi-part object detected"
-msgstr "检测到多部分对象"
+msgstr "检测到多零件对象"
# AI Translated
msgid "Matching textures to filaments"
@@ -8564,9 +9476,10 @@ msgstr "检测到多零件对象"
msgid "Auto-Drop"
msgstr "自动落板"
+# AI Translated
#, c-format, boost-format
msgid "Connected printer is %s. It must match the project preset for printing.\n"
-msgstr "连接的打印机是 %s。它必须与打印预设的项目相匹配。\n"
+msgstr "连接的打印机是 %s。打印前它必须与项目预设相匹配。\n"
msgid "Do you want to sync the printer information and automatically switch the preset?"
msgstr "您想要同步打印机信息并自动切换预设吗?"
@@ -8578,8 +9491,9 @@ msgstr "此项目包含一个在“设计”标签页中创建的模型,且不
msgid "The file does not contain any geometry data."
msgstr "此文件不包含任何几何数据。"
+# AI Translated
msgid "Your object appears to be too large, do you want to scale it down to fit the print bed automatically?"
-msgstr "对象看起来太大,希望将对象自动缩小以适应热床吗?"
+msgstr "对象似乎过大,是否自动缩小以适应热床?"
msgid "Object too large"
msgstr "对象太大"
@@ -8587,8 +9501,9 @@ msgstr "对象太大"
msgid "Export STL file:"
msgstr "导出 STL 文件:"
+# AI Translated
msgid "Export Draco file:"
-msgstr "导出德拉科文件:"
+msgstr "导出 Draco 文件:"
msgid "Export AMF file:"
msgstr "导出AMF文件:"
@@ -8599,13 +9514,14 @@ msgstr "文件另存为:"
msgid "Export OBJ file:"
msgstr "导出OBJ文件:"
+# AI Translated
#, c-format, boost-format
msgid ""
"The file %s already exists.\n"
"Do you want to replace it?"
msgstr ""
-"文件 %s 已经存在\n"
-"您是否要替换它?"
+"文件 %s 已存在。\n"
+"是否替换?"
msgid "Confirm Save As"
msgstr "确认另存为"
@@ -8629,8 +9545,9 @@ msgstr "删除对象"
msgid "Reset Project"
msgstr "重置项目"
+# AI Translated
msgid "The selected object couldn't be split."
-msgstr "选中的模型不可分裂。"
+msgstr "无法拆分所选对象。"
msgid "Disable Auto-Drop to preserve Z positioning?\n"
msgstr "禁用自动落板以保留 Z 轴定位?\n"
@@ -8638,6 +9555,14 @@ msgstr "禁用自动落板以保留 Z 轴定位?\n"
msgid "Object with floating parts was detected"
msgstr "检测到含有悬空零件的对象"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "无法切片:有对象与 IDEX/IQEX 并行打印的预留区域(副区域或主区域内的滑车避让带)重叠。"
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "无法切片:擦拭塔与 IDEX/IQEX 并行打印的预留区域(副区域或主区域内的滑车避让带)重叠。"
+
msgid "Another export job is running."
msgstr "有其他导出任务正在进行中。"
@@ -8659,8 +9584,9 @@ msgstr "未选择替换文件"
msgid "Replace with 3D file"
msgstr "替换为 3D 文件"
+# AI Translated
msgid "Select folder to replace from"
-msgstr "选择要替换的文件夹"
+msgstr "选择用于替换的文件夹"
msgid "Directory for the replace wasn't selected"
msgstr "未选择替换目录"
@@ -8684,14 +9610,17 @@ msgstr "✖ 跳过%s:替换失败。\n"
msgid "✔ Replaced %s.\n"
msgstr "✔ 替换了 %s。\n"
+# AI Translated
+# Needs human review: Glossary gives 体积 for a mesh volume; 已替换的零件 would read more naturally if the glossary is revised.
msgid "Replaced volumes"
-msgstr "替换的卷"
+msgstr "已替换的体积"
msgid "Please select a file"
msgstr "请选择一个文件"
-msgid "Do you want to replace it"
-msgstr "您想要替换它吗"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "您想要替换它吗?"
msgid "Message"
msgstr "消息"
@@ -8720,6 +9649,50 @@ msgstr "无效数据"
msgid "Slicing Canceled"
msgstr "切片已取消"
+# AI Translated
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "热床温度冲突:T%d(%s)将热床设为 %d℃,而 T%d(%s)需要 %d℃。热床温度由主工具头决定,副工具头只能沿用该温度。"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "耗材丝类型不匹配:T%d 使用 %s,而 T%d 使用 %s。这些材料的打印条件互不兼容,不宜一起打印。"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"盘 %d 启用了 IDEX/IQEX 并行模式,存在以下问题:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "是否继续切片?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "IDEX/IQEX 并行模式警告"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "不再显示这些警告"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "盘 %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"检测到以下 IDEX/IQEX 并行模式问题:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "网络插件切换成功。"
@@ -8739,21 +9712,22 @@ msgstr ""
"仅预览模式:\n"
"被加载的文件仅包含G-Code,不支持进入准备页面"
+# AI Translated
msgid ""
"The nozzle type and AMS quantity information has not been synced from the connected printer.\n"
"After syncing, software can optimize printing time and filament usage when slicing.\n"
"Would you like to sync now?"
msgstr ""
"喷嘴类型和 AMS 数量信息尚未与连接的打印机同步。\n"
-"同步后,软件可以优化切片时的打印时间和耗材使用情况。\n"
+"同步后,软件可以优化切片时的打印时间和耗材丝使用情况。\n"
"您想现在同步吗?"
msgid "Sync now"
msgstr "立即同步"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "操作正在进行时无法撤销或重做。请先停止该操作。"
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "有操作正在进行,无法撤销或重做。请停止该操作,或等其完成后再试。"
# AI Translated
msgid ""
@@ -8783,8 +9757,9 @@ msgstr "正在更新 3D 视图..."
msgid "Texture colors applied."
msgstr "纹理颜色已应用。"
+# AI Translated
msgid "You can keep the modified presets for the new project or discard them"
-msgstr "您可以保留修改的预设到新项目中或者忽略这些修改"
+msgstr "您可以将修改后的预设保留给新项目,或放弃这些修改"
msgid "Creating a new project"
msgstr "创建新项目"
@@ -8825,6 +9800,14 @@ msgstr "下载失败,文件大小异常。"
msgid "Project downloaded %d%%"
msgstr "项目已下载%d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"传送带打印机暂不支持“划线模式”和“V形模式”PA 测试。\n"
+"请改用“PA塔”方法。"
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Pressure Advance 测试"
@@ -8832,11 +9815,15 @@ msgstr "Pressure Advance 测试"
msgid "INFO:"
msgstr "信息:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "未提供校准加速度。使用默认加速度值"
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "未提供校准加速度。使用默认加速度值 %1% mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "未提供校准速度。使用默认最佳速度"
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "未提供校准速度。使用默认最佳速度 %1% mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
@@ -8851,12 +9838,22 @@ msgstr "Orca YOLO 流量校准"
msgid "Flowrate Test - Pass%d"
msgstr "流量测试 - 第 %d 轮"
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "没有适用于 %1% 至 %2%℃ 的传送带温度塔。请使用温度塔模型支持的温度范围,例如 230 至 190。"
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "温度塔"
+
# AI Translated
msgid "Nozzle temperature test"
msgstr "喷嘴温度测试"
+# AI Translated
msgid "Max volumetric speed test"
-msgstr "最大体积流量速度测试"
+msgstr "最大体积流量测试"
msgid "VFA test"
msgstr "VFA振纹测试"
@@ -8874,11 +9871,16 @@ msgstr "转角测试"
msgid "Import SLA archive"
msgstr "导入 SLA 存档"
-msgid "The selected file"
-msgstr "已选择的文件"
-
-msgid "Does not contain valid G-code."
-msgstr "不包含有效的G-code文件。"
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"所选文件:\n"
+"%1%\n"
+"不包含有效的 G-code。"
msgid "An Error has occurred while loading the G-code file."
msgstr "加载G-code文件时遇到错误"
@@ -8918,8 +9920,9 @@ msgstr "正在加载G-code文件"
msgid "G-code files and models cannot be loaded together!"
msgstr "G-code文件不能和模型一起加载"
+# AI Translated
msgid "Unable to add models in preview mode"
-msgstr "在预览模式不允许添加模型"
+msgstr "预览模式下无法添加模型"
msgid "All objects will be removed, continue?"
msgstr "即将删除所有对象,是否继续?"
@@ -8992,8 +9995,9 @@ msgstr "原因:零件\"%1%\"有自相交。"
msgid "Reason: \"%1%\" and another part have no intersection."
msgstr "原因:零件\"%1%\"与另一个零件没有交集。"
+# AI Translated
msgid "Unable to perform boolean operation on model meshes. Only positive parts will be exported."
-msgstr "无法对模型网格执行布尔运算。只有正面部分将被导出。"
+msgstr "无法对模型网格执行布尔运算。只会导出正体积部分。"
msgid "Flashforge host is not available."
msgstr "Flashforge 主机不可用。"
@@ -9001,8 +10005,9 @@ msgstr "Flashforge 主机不可用。"
msgid "Unable to log in to the Flashforge printer."
msgstr "无法登录到 Flashforge 打印机。"
+# AI Translated
msgid "Is the printer ready? Is the print sheet in place, empty and clean?"
-msgstr "打印机是否就绪?打印平台是否在正确的位置、有没有异物、是否干净?"
+msgstr "打印机是否就绪?打印板是否已放置到位、无异物且干净?"
msgid "Upload and Print"
msgstr "上传并打印"
@@ -9010,12 +10015,13 @@ msgstr "上传并打印"
msgid "Abnormal print file data. Please slice again"
msgstr "打印文件数据异常,请重新切片"
+# AI Translated
msgid ""
"Print By Object: \n"
"We suggest using auto-arrange to avoid collisions when printing."
msgstr ""
"逐件打印:\n"
-"建议使用自动摆盘避免打印时发生碰撞。"
+"建议使用自动摆放避免打印时发生碰撞。"
# AI Translated
msgid "Send G-code"
@@ -9024,8 +10030,9 @@ msgstr "发送 G-code"
msgid "Send to printer"
msgstr "发送到打印机"
+# AI Translated
msgid "Custom supports and color painting were removed before repairing."
-msgstr "自定义的支撑和涂色在模型修复之前将被清除。"
+msgstr "修复前已清除自定义支撑和涂色。"
msgid "Optimize Rotation"
msgstr "优化旋转"
@@ -9042,11 +10049,13 @@ msgstr "OrcaSlicer 无法连接到 %s。请检查打印机是否已开机并连
msgid "The currently connected printer on the device page is not %s. Please switch to %s before syncing."
msgstr "设备页面当前连接的打印机不是%s。同步前请切换到 %s。"
+# AI Translated
msgid "There are no filaments on the printer. Please load the filaments on the printer first."
-msgstr "打印机上没有耗材。请先将耗材装入打印机。"
+msgstr "打印机上没有耗材丝。请先将耗材丝装入打印机。"
+# AI Translated
msgid "The filaments on the printer are all unknown types. Please go to the printer screen or software device page to set the filament type."
-msgstr "打印机上的耗材都是未知类型。请进入打印机屏幕或软件设备页面设置耗材类型。"
+msgstr "打印机上的耗材丝都是未知类型。请进入打印机屏幕或软件设备页面设置耗材丝类型。"
msgid "Device Page"
msgstr "设备页面"
@@ -9080,7 +10089,7 @@ msgstr "立即激活"
# AI Translated
msgid "The installed plugin does not provide the required capability — it may be outdated:"
-msgstr "已安装的插件未提供所需的功能 — 它可能已过时:"
+msgstr "已安装的插件未提供所需的功能,可能已过时:"
# AI Translated
msgid "Preparing to install plugins..."
@@ -9092,7 +10101,7 @@ msgstr "正在安装插件"
# AI Translated
msgid "Cancelling — finishing the current plugin..."
-msgstr "正在取消 — 正在完成当前插件……"
+msgstr "正在取消,将先完成当前插件……"
# AI Translated
#, boost-format
@@ -9102,13 +10111,15 @@ msgstr "正在安装 %1%……"
msgid "Plate Settings"
msgstr "盘参数设置"
+# AI Translated
#, boost-format
msgid "Number of currently selected parts: %1%\n"
-msgstr "当前选择的零件数量: %1%\n"
+msgstr "当前选择的零件数量:%1%\n"
+# AI Translated
#, boost-format
msgid "Number of currently selected objects: %1%\n"
-msgstr "当前选择的对象数量: %1%\n"
+msgstr "当前选择的对象数量:%1%\n"
#, boost-format
msgid "Part name: %1%\n"
@@ -9141,9 +10152,10 @@ msgstr "三角形:%1%\n"
msgid "Use \"Fix Model\" to repair the mesh."
msgstr "使用“修复模型”来修复网格。"
+# AI Translated
#, c-format, boost-format
msgid "Plate %d: %s is not suggested for use printing filament %s (%s). If you still want to do this print job, please set this filament's bed temperature to a number that is not zero."
-msgstr "热床 %d:%s不建议被用于打印%s(%s)材料。如果你依然想打印,请设置耗材对应的热床温度为非零值。"
+msgstr "盘 %d:不建议使用 %s 打印 %s(%s)耗材丝。如果您仍想执行此打印任务,请将该耗材丝的热床温度设置为非零值。"
msgid "Currently, the object configuration form cannot be used with a multiple-extruder printer."
msgstr "目前,对象配置表单不能与多挤出机打印机一起使用。"
@@ -9151,23 +10163,51 @@ msgstr "目前,对象配置表单不能与多挤出机打印机一起使用。
msgid "Not available"
msgstr "无法使用"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (无盘)"
+
+# AI Translated
+# Needs human review: Ghost tooltip in the IDEX/IQEX plate mode editor; check the Machine tab is named 打印机 in the app and that 'head' reads right as 工具头.
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1%:未分配耗材丝\n"
+"请在“打印机”选项卡中添加挤出机,使该工具头拥有耗材丝槽位。"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> 耗材丝 %2%"
+
+# AI Translated
msgid "isometric"
-msgstr "等距"
+msgstr "等轴测"
+# AI Translated
msgid "top_front"
-msgstr "顶面"
+msgstr "前上方"
+# AI Translated
msgid "top"
-msgstr "顶部"
+msgstr "俯视"
+# AI Translated
msgid "bottom"
-msgstr "底部"
+msgstr "仰视"
+# AI Translated
msgid "front"
-msgstr "正面"
+msgstr "前视"
+# AI Translated
msgid "rear"
-msgstr "后部"
+msgstr "后视"
msgid "Switching languages requires the application to restart.\n"
msgstr "切换语言需要重启应用程序。\n"
@@ -9190,8 +10230,10 @@ msgstr "欧洲"
msgid "North America"
msgstr "北美"
+# AI Translated
+msgctxt "Region"
msgid "Others"
-msgstr "其他"
+msgstr "其他地区"
msgid "Changing the region will log you out of your account.\n"
msgstr "修改区域会自动登出您的账号。\n"
@@ -9202,12 +10244,15 @@ msgstr "区域选择"
msgid "sec"
msgstr "秒"
+# AI Translated
msgid "The period of backup in seconds."
-msgstr "备份的周期"
+msgstr "备份间隔(秒)。"
+# AI Translated
msgid "Bed Temperature Difference Warning"
-msgstr "热床温度不同警告"
+msgstr "热床温差警告"
+# AI Translated
msgid ""
"Using filaments with significantly different temperatures may cause:\n"
"• Extruder clogging\n"
@@ -9216,10 +10261,12 @@ msgid ""
"\n"
"Continue with enabling this feature?"
msgstr ""
-"使用温度显着不同的耗材丝可能会导致:\n"
+"使用温度差异显著的耗材丝可能会导致:\n"
"• 挤出机堵塞\n"
"• 喷嘴损坏\n"
-"• 层间附着力问题 继续启用此功能吗?"
+"• 层间附着力问题\n"
+"\n"
+"是否继续启用此功能?"
msgid "Browse"
msgstr "浏览"
@@ -9230,6 +10277,7 @@ msgstr "选择下载项目的文件夹"
msgid "Choose Download Directory"
msgstr "选择下载文件夹"
+# AI Translated
#, c-format, boost-format
msgid ""
"You've selected network plug-in version %s.\n"
@@ -9237,7 +10285,12 @@ msgid ""
"Would you like to download and install this version now?\n"
"\n"
"Note: The application may need to restart after installation."
-msgstr "您已选择网络插件版本 %s。 您想立即下载并安装此版本吗? 注意:安装后应用程序可能需要重新启动。"
+msgstr ""
+"您已选择网络插件版本 %s。\n"
+"\n"
+"是否立即下载并安装此版本?\n"
+"\n"
+"注意:安装后可能需要重新启动应用程序。"
msgid "Download Network Plug-in"
msgstr "下载网络插件"
@@ -9257,20 +10310,28 @@ msgstr "无法重新加载网络插件。请重新启动应用程序。"
msgid "Reload Failed"
msgstr "重新加载失败"
-msgid "Associate"
-msgstr "相关的"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "关联 %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "与OrcaSlicer一起使用,以便Orca可以从...打开模型"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "将 %s:// 与 OrcaSlicer 关联,以便 Orca 能够打开来自 %s 的模型"
+# AI Translated
msgid "Current Association: "
-msgstr "当前相关项"
+msgstr "当前关联: "
msgid "Current Instance"
msgstr "当前实例"
+# AI Translated
msgid "Current Instance Path: "
-msgstr "当前实例路径"
+msgstr "当前实例路径: "
msgid "General"
msgstr "常规"
@@ -9329,26 +10390,31 @@ msgstr "下载项目的目标文件夹"
msgid "Load All"
msgstr "加载全部"
+# AI Translated
msgid "Ask When Relevant"
-msgstr "当相关时查询"
+msgstr "必要时询问"
+# AI Translated
msgid "Always Ask"
-msgstr "总是提问"
+msgstr "始终询问"
msgid "Load Geometry Only"
msgstr "仅加载几何形状"
+# AI Translated
msgid "Load behavior"
-msgstr "加载 交互项"
+msgstr "加载行为"
+# AI Translated
msgid "Should printer/filament/process settings be loaded when opening a 3MF file?"
-msgstr "printter/filament/process 设置项文件能否以 .3mf后缀方式打开"
+msgstr "打开 3MF 文件时,是否加载其中的打印机/耗材丝/工艺设置?"
msgid "Auto backup"
msgstr "自动备份"
+# AI Translated
msgid "Backup your project periodically to help with restoring from an occasional crash."
-msgstr "定期备份你的项目,以便从偶尔的崩溃中恢复过来。"
+msgstr "定期备份您的项目,以便在偶发崩溃后恢复。"
msgid "Maximum recent files"
msgstr "最大最近使用文件数"
@@ -9356,11 +10422,13 @@ msgstr "最大最近使用文件数"
msgid "Maximum count of recent files"
msgstr "最近使用文件的最大数量"
+# AI Translated
msgid "Add STL/STEP files to recent files list"
-msgstr "添加模型文件 STL/STEP 到最近文件列表"
+msgstr "将 STL/STEP 文件添加到最近文件列表"
+# AI Translated
msgid "Don't warn when loading 3MF with modified G-code"
-msgstr "加载具有修改的 G-Code 的 3MF 时不会出现警告"
+msgstr "加载含有已修改 G-code 的 3MF 时不发出警告"
msgid "Show options when importing STEP file"
msgstr "显示STEP网格参数设置对话框"
@@ -9402,7 +10470,7 @@ msgstr ""
# AI Translated
msgid "STEP importing: Split into multiple objects"
-msgstr "STEP 导入:拆分为多个物体"
+msgstr "STEP 导入:拆分为多个对象"
# AI Translated
msgid ""
@@ -9410,7 +10478,7 @@ msgid ""
"Used as the default in the import dialog, or directly when the import dialog is disabled.\n"
"Default: disabled."
msgstr ""
-"如果启用,导入的 STEP 文件中的复合(compound)和复合实体(compsolid)形状将被拆分为多个物体。\n"
+"如果启用,导入的 STEP 文件中的复合(compound)和复合实体(compsolid)形状将被拆分为多个对象。\n"
"用作导入对话框中的默认值,或在禁用导入对话框时直接使用。\n"
"默认值:禁用。"
@@ -9443,11 +10511,13 @@ msgstr "预设"
msgid "Remember printer configuration"
msgstr "记住打印机选项"
+# AI Translated
msgid "If enabled, Orca will remember and switch filament/process configuration for each printer automatically."
-msgstr "如果启用,Orca会自动记录并切换您不同打印机之间的耗材配置与打印参数。"
+msgstr "如果启用,Orca会自动记录并切换您不同打印机之间的耗材丝配置与打印参数。"
+# AI Translated
msgid "Group user filament presets"
-msgstr "组用户耗材丝预设"
+msgstr "对用户耗材丝预设分组"
msgid "Group user filament presets based on selection"
msgstr "根据选择对用户耗材丝预设进行分组"
@@ -9458,14 +10528,16 @@ msgstr "按类型"
msgid "By vendor"
msgstr "按供应商"
+# AI Translated
msgid "Optimize filaments area height for..."
-msgstr "为以下数量优化耗材区域高度..."
+msgstr "为以下数量优化耗材丝区域高度..."
msgid "filaments"
msgstr "耗材丝"
+# AI Translated
msgid "Optimizes filament area maximum height by chosen filament count."
-msgstr "根据选定的耗材丝数量优化耗材区域最大高度"
+msgstr "根据选定的耗材丝数量优化耗材丝区域最大高度。"
msgid "Show shared profiles notification"
msgstr "显示共享配置文件通知"
@@ -9529,14 +10601,17 @@ msgstr "作为固定标签显示的插件页数量,其余页面将折叠到最
msgid "Behavior"
msgstr "行为"
+# AI Translated
msgid "Auto flush after changing..."
-msgstr "更换后自动冲洗..."
+msgstr "更改后自动冲刷..."
+# AI Translated
msgid "Auto calculate flushing volumes when selected values changed"
-msgstr "当选定值更改时自动计算冲洗量"
+msgstr "选定值更改时自动计算冲刷体积"
+# AI Translated
msgid "Auto arrange plate after cloning"
-msgstr "克隆后自动排列打印板"
+msgstr "克隆后自动摆放盘"
msgid "Auto slice after changes"
msgstr "更改后自动切片"
@@ -9544,8 +10619,9 @@ msgstr "更改后自动切片"
msgid "If enabled, OrcaSlicer will re-slice automatically whenever slicing-related settings change."
msgstr "如果启用,OrcaSlicer 将在切片相关设置发生更改时自动重新切片。"
+# AI Translated
msgid "Delay in seconds before auto slicing starts, allowing multiple edits to be grouped. Use 0 to slice immediately."
-msgstr "自动切片开始前延迟几秒,允许对多个编辑进行分组。使用 0 立即切片。"
+msgstr "自动切片开始前的延迟时间(秒),可将多次修改合并后再切片。设为 0 则立即切片。"
msgid "Remove mixed temperature restriction"
msgstr "解除混合温度限制"
@@ -9561,32 +10637,41 @@ msgstr "记住上次的打印操作"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "启用后,OrcaSlicer 将记住打印按钮下拉菜单中上次选择的选项(例如打印、导出单盘切片文件、导出 G-code 文件),并在下次启动时将其作为默认选项。"
+# AI Translated
+msgid "Camera"
+msgstr "相机"
+
msgid "Touchpad"
msgstr "触控板"
msgid "Camera style"
msgstr "视角控制模式"
+# AI Translated
msgid ""
"Select camera navigation style.\n"
"Default: LMB+move for rotation, RMB/MMB+move for panning.\n"
"Touchpad: Alt+move for rotation, Shift+move for panning."
msgstr ""
-"触摸板:Alt+移动进行旋转,Shift+移动进行平移选择摄像机的导航模式。\n"
-"默认:鼠标左键+拖动 旋转,鼠标右键+拖动 平移;\n"
-"触控板:Alt+拖动 旋转,Shift+拖动 平移。"
+"选择视角控制模式。\n"
+"默认:鼠标左键拖动旋转,鼠标右键/中键拖动平移。\n"
+"触控板:Alt+移动旋转,Shift+移动平移。"
+# AI Translated
msgid "Orbit speed multiplier"
-msgstr "轨道速度倍数"
+msgstr "环绕速度倍率"
+# AI Translated
msgid "Multiplies the orbit speed for finer or coarser camera movement."
-msgstr "乘以轨道速度以获得更精细或更粗略的相机移动"
+msgstr "调整相机环绕的速度倍率,数值越小转动越精细,越大转动越快。"
+# AI Translated
msgid "Zoom to mouse position"
-msgstr "放大到鼠标位置"
+msgstr "以鼠标位置为中心缩放"
+# AI Translated
msgid "Zoom in towards the mouse pointer's position in the 3D view, rather than the 2D window center."
-msgstr "在3D视角放大到鼠标位置,而不是2D窗口的中心。"
+msgstr "在 3D 视图中以鼠标指针位置为中心缩放,而不是以窗口中心缩放。"
msgid "Use free camera"
msgstr "使用自由视角"
@@ -9661,8 +10746,9 @@ msgstr "清除我对未保存的项目的选择。"
msgid "Unsaved presets"
msgstr "未保存的预设"
+# AI Translated
msgid "Clear my choice on the unsaved presets."
-msgstr "清除我对未保存的预置的选择。"
+msgstr "清除我对未保存的预设的选择。"
msgid "Synchronizing printer preset"
msgstr "同步打印机预设"
@@ -9684,7 +10770,7 @@ msgid ""
msgstr ""
"为模型应用平滑法线。\n"
"\n"
-"需要手动重新加载场景才能生效(在 3D 视图中右键单击 → “全部重新加载”)。"
+"需要手动重新加载场景才能生效(在 3D 视图中右键单击 → “重新加载全部”)。"
msgid "Phong shading"
msgstr "Phong 着色"
@@ -9915,15 +11001,17 @@ msgstr ""
msgid "Login region"
msgstr "登录区域"
+# AI Translated
msgid "Stealth mode"
-msgstr "局域网模式"
+msgstr "隐身模式"
+# AI Translated
msgid ""
"This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option.\n"
"Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
msgstr ""
"这将禁用所有云功能,包括 Orca Cloud 配置文件同步。希望完全离线工作的用户可以启用此选项。\n"
-"注意:启用局域网模式后,您的用户配置文件将不会备份到 Orca Cloud。"
+"注意:启用隐身模式后,您的用户配置文件将不会备份到 Orca Cloud。"
msgid "Hide login side panel"
msgstr "隐藏登录侧边栏"
@@ -9952,8 +11040,9 @@ msgstr "更新和同步"
msgid "Check for stable updates only"
msgstr "仅检测正式版的更新"
+# AI Translated
msgid "Auto sync user presets (Printer/Filament/Process)"
-msgstr "同步用户预设(打印机/耗材丝/工艺)"
+msgstr "自动同步用户预设(打印机/耗材丝/工艺)"
msgid "Filament sync mode"
msgstr "耗材丝同步模式"
@@ -9970,11 +11059,13 @@ msgstr "仅颜色"
msgid "Update built-in presets automatically."
msgstr "自动更新系统预设"
+# AI Translated
msgid "Use encrypted file for token storage"
-msgstr "使用加密文件进行令牌存储"
+msgstr "使用加密文件存储令牌"
+# AI Translated
msgid "Store authentication tokens in an encrypted file instead of the system keychain. (Requires restart)"
-msgstr "将身份验证令牌存储在加密文件中,而不是系统钥匙串中。 (需要重启)"
+msgstr "将身份验证令牌存储在加密文件中,而不是系统钥匙串中。(需要重启)"
msgid "Bambu network plug-in"
msgstr "Bambu网络插件"
@@ -9988,8 +11079,13 @@ msgstr "网络插件版本"
msgid "Select the network plug-in version to use"
msgstr "选择要使用的网络插件版本"
+# AI Translated
+msgid "Associate"
+msgstr "文件关联"
+
+# AI Translated
msgid "Associate files to OrcaSlicer"
-msgstr "逆戟鲸切片器文件关联"
+msgstr "将文件关联到 OrcaSlicer"
msgid "File associations for the Microsoft Store version are managed by Windows Settings."
msgstr "Microsoft Store 版本的文件关联由 Windows 设置管理。"
@@ -10033,8 +11129,17 @@ msgstr "跳过AMS黑名单检查"
msgid "Show unsupported presets"
msgstr "显示不受支持的预设"
+# AI Translated
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
-msgstr "在打印机和耗材下拉列表中显示不兼容/不受支持的预设。这些预设无法被选择。"
+msgstr "在打印机和耗材丝下拉列表中显示不兼容/不受支持的预设。这些预设无法被选择。"
+
+# AI Translated
+msgid "Export statistics with G-code"
+msgstr "随 G-code 导出统计信息"
+
+# AI Translated
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr "启用后,导出 G-code 文件时还会在其旁边以 JSON 格式写入统计信息(.statistics.json),导出的切片 3MF 文件内也会包含这些统计信息:打印时间、耗材丝和各走线类型的总量,以及按层和按对象的相应统计。"
# AI Translated
msgid "Experimental Features"
@@ -10066,12 +11171,13 @@ msgstr ""
msgid "Allow Abnormal Storage"
msgstr "允许异常存储"
+# AI Translated
msgid ""
"This allows the use of Storage that is marked as abnormal by the Printer.\n"
"Use at your own risk, can cause issues!"
msgstr ""
-"这允许使用被打印机标记为异常的存储。\n"
-"使用您自己承担风险,可能会导致问题!"
+"允许使用被打印机标记为异常的存储。\n"
+"使用风险自负,可能会导致问题!"
msgid "Log Level"
msgstr "日志级别"
@@ -10100,8 +11206,9 @@ msgstr "同步设置"
msgid "User sync"
msgstr "用户同步"
+# AI Translated
msgid "Preset sync"
-msgstr "配置同步"
+msgstr "预设同步"
msgid "Preferences sync"
msgstr "首选项同步"
@@ -10136,17 +11243,21 @@ msgstr "保存"
msgid "Save debug settings"
msgstr "保存调试设置"
+# AI Translated
msgid "Debug settings have been saved successfully!"
-msgstr "DEBUG模式生效!"
+msgstr "调试设置已成功保存!"
+# AI Translated
msgid "Cloud environment switched; please login again!"
-msgstr "切换云环境,请重新登录!"
+msgstr "云环境已切换,请重新登录!"
+# AI Translated
msgid "System presets"
-msgstr "系统配置"
+msgstr "系统预设"
+# AI Translated
msgid "User presets"
-msgstr "用户配置"
+msgstr "用户预设"
msgid "Incompatible presets"
msgstr "不兼容的预设"
@@ -10156,22 +11267,27 @@ msgstr "我的打印机"
# AI Translated
msgid "AMS filaments"
-msgstr "AMS 耗材"
+msgstr "AMS 耗材丝"
+# AI Translated
msgid "Left filaments"
-msgstr "左耗材"
+msgstr "左耗材丝"
+# AI Translated
msgid "AMS filament"
-msgstr "AMS 打印丝"
+msgstr "AMS 耗材丝"
+# AI Translated
msgid "Right filaments"
-msgstr "右耗材"
+msgstr "右耗材丝"
+# AI Translated
msgid "Click to select filament color"
-msgstr "点击设置材料颜色"
+msgstr "点击选择耗材丝颜色"
+# AI Translated
msgid "Add/Remove presets"
-msgstr "添加/删除配置"
+msgstr "添加/删除预设"
msgid "Edit preset"
msgstr "编辑预设"
@@ -10197,8 +11313,9 @@ msgstr "不支持的预设"
msgid "Unsupported"
msgstr "不支持"
+# AI Translated
msgid "Add/Remove filament"
-msgstr "添加/删除材料"
+msgstr "添加/删除耗材丝"
msgid "Add/Remove materials"
msgstr "添加/删除材料"
@@ -10209,8 +11326,9 @@ msgstr "选择/移除打印机(系统预设)"
msgid "Create printer"
msgstr "创建打印机"
+# AI Translated
msgid "Incompatible"
-msgstr "不兼容的预设"
+msgstr "不兼容"
msgid "The selected preset is null!"
msgstr "选择的预设为空!"
@@ -10223,8 +11341,9 @@ msgstr "结束"
msgid "Customize"
msgstr "自定义"
+# AI Translated
msgid "Other layer filament sequence"
-msgstr "其它层耗材打印顺序"
+msgstr "其它层耗材丝打印顺序"
msgid "Please input layer value (>= 2)."
msgstr "请输入层号(>=2)。"
@@ -10235,8 +11354,9 @@ msgstr "到"
msgid "Plate name"
msgstr "盘名称"
+# AI Translated
msgid "Same as Global Plate Type"
-msgstr "跟随全局打印板类型"
+msgstr "跟随全局热床类型"
msgid "Bed type"
msgstr "热床类型"
@@ -10259,8 +11379,9 @@ msgstr "禁用"
msgid "Spiral vase"
msgstr "旋转花瓶"
+# AI Translated
msgid "First layer filament sequence"
-msgstr "首层耗材打印顺序"
+msgstr "首层耗材丝打印顺序"
# AI Translated
msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect."
@@ -10321,17 +11442,13 @@ msgstr "发布 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "选择要在 3MF 文件中发布的设置"
-# AI Translated
-msgid "Video Guide"
-msgstr "视频指南"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
-msgstr "混合耗材丝 - 在上方选择“开启”后将整体发布"
+msgstr "混合耗材丝:在上方选择“开启”后将整体发布"
# AI Translated
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
-msgstr "发布此混合耗材丝,并开启 + 完整发布其组成耗材丝"
+msgstr "发布此混合耗材丝,并对其组成耗材丝勾选“开启”和“完整发布”"
# AI Translated
msgid "Publish this filament slot in the 3MF file"
@@ -10342,8 +11459,9 @@ msgid "Full Publish"
msgstr "完整发布"
# AI Translated
+# Needs human review: Confirm that Full Publish embeds the complete filament preset (all settings).
msgid "Embed the entire filament of this slot in the 3MF file"
-msgstr "将此槽位的整条耗材丝内嵌到 3MF 文件中"
+msgstr "将此槽位的完整耗材丝预设嵌入 3MF 文件"
# AI Translated
msgid "Filter non-selected"
@@ -10409,21 +11527,25 @@ msgctxt "PresetName"
msgid "Copy"
msgstr "拷贝"
+# AI Translated
#, boost-format
msgid "Printer \"%1%\" is selected with preset \"%2%\""
-msgstr "选中打印机“%1%”和预设“%2%”"
+msgstr "打印机“%1%”已选用预设“%2%”"
+# AI Translated
#, boost-format
msgid "Please choose an action with \"%1%\" preset after saving."
-msgstr "请选择保存后对%1%预设的操作。"
+msgstr "请选择保存后对“%1%”预设执行的操作。"
+# AI Translated
#, boost-format
msgid "For \"%1%\", change \"%2%\" to \"%3%\" "
-msgstr "为“%1%,”把“%2%”更换为“%3%” "
+msgstr "对于“%1%”,将“%2%”更改为“%3%” "
+# AI Translated
#, boost-format
msgid "For \"%1%\", add \"%2%\" as a new preset"
-msgstr "为“%1%”,添加“%2%”为一个新预设"
+msgstr "对于“%1%”,将“%2%”添加为新预设"
#, boost-format
msgid "Simply switch to \"%1%\""
@@ -10489,6 +11611,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "简单"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s(来自 %s)"
+
# AI Translated
msgid "Search actions"
msgstr "搜索操作"
@@ -10606,6 +11734,10 @@ msgstr "显示详情"
msgid "Hide details"
msgstr "隐藏详情"
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "网页视图不可用。"
+
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?"
@@ -10640,35 +11772,45 @@ msgstr "不再针对此操作询问"
msgid "Task canceled"
msgstr "任务已取消"
+# AI Translated
msgid "Bambu Cool Plate"
-msgstr "低温打印板"
+msgstr "低温打印热床"
+# AI Translated
msgid "PLA Plate"
-msgstr "PLA打印板"
+msgstr "PLA热床"
+# AI Translated
msgid "Bambu Engineering Plate"
-msgstr "工程材料打印板"
+msgstr "工程材料热床"
+# AI Translated
msgid "Bambu Smooth PEI Plate"
-msgstr "光面PEI打印板"
+msgstr "光滑PEI热床"
+# AI Translated
msgid "High temperature Plate"
-msgstr "高温打印板"
+msgstr "高温打印热床"
+# AI Translated
msgid "Bambu Textured PEI Plate"
-msgstr "纹理PEI打印板"
+msgstr "纹理PEI热床"
+# AI Translated
msgid "Bambu Cool Plate SuperTack"
-msgstr "Bambu 冷板 SuperTack"
+msgstr "低温打印热床(超强粘附)"
+# AI Translated
msgid "Send print job"
-msgstr "发送打印作业"
+msgstr "发送打印任务"
+# AI Translated
msgid "Not satisfied with the grouping of filaments? Regroup and slice ->"
-msgstr "对耗材丝的分组不满意?重组并切片 ->"
+msgstr "对耗材丝的分组不满意?重新分组并切片 ->"
+# AI Translated
msgid "Manually change external spool during printing for multi-color printing"
-msgstr "在打印过程中手动更换外部线轴以进行多色打印"
+msgstr "在打印过程中手动更换外置料盘以进行多色打印"
msgid "Multi-color with external"
msgstr "多色外置"
@@ -10682,15 +11824,17 @@ msgstr "为保证打印质量,打印过程中会适当降低烘干温度。"
msgid "Select timelapse storage location"
msgstr "选择延时摄影存储位置"
+# AI Translated
msgid "Auto Bed Leveling"
-msgstr "自动床调平"
+msgstr "自动热床调平"
+# AI Translated
msgid ""
"This checks the flatness of heatbed. Leveling makes extruded height uniform.\n"
"*Automatic mode: Run a leveling check(about 10 seconds). Skip if surface is fine."
msgstr ""
-"这检查了热床的平整度。调平使挤压高度均匀。\n"
-"*自动模式:运行调平检查(约 10 秒)。如果表面良好则跳过。"
+"检测热床的平整度。调平可使挤出高度均匀。\n"
+"*自动模式:先进行调平检测(约 10 秒)。若表面平整则跳过。"
msgid "Flow Dynamics Calibration"
msgstr "动态流量校准"
@@ -10705,19 +11849,21 @@ msgstr ""
msgid "Nozzle Offset Calibration"
msgstr "喷嘴偏移校准"
+# AI Translated
msgid ""
"Calibrate nozzle offsets to enhance print quality.\n"
"*Automatic mode: Check for calibration before printing. Skip if unnecessary."
msgstr ""
"校准喷嘴偏移以提高打印质量。\n"
-"*自动模式:打印前检查校准情况。如果不需要,请跳过。"
+"*自动模式:打印前检查是否需要校准,无需校准则跳过。"
+# AI Translated
msgid "Shared PA Profile"
-msgstr "共享 PA 预设"
+msgstr "共享 PA 配置文件"
# AI Translated
msgid "Nozzles and filaments of the same type share the same PA profile."
-msgstr "相同类型的喷嘴和耗材共用同一个 PA 配置。"
+msgstr "相同类型的喷嘴和耗材丝共用同一个 PA 配置文件。"
msgid "Send complete"
msgstr "发送完成"
@@ -10785,8 +11931,9 @@ msgstr "所选打印机 (%s) 的型号未知,因此无法验证与打印文件
msgid "When spiral vase mode is enabled, machines with I3 structure will not generate timelapse videos."
msgstr "当启用旋转花瓶模式时,I3结构的机器将不会生成延时摄影。"
+# AI Translated
msgid "The current printer does not support timelapse in Traditional Mode when printing By-Object."
-msgstr "当前打印机在按对象打印时不支持传统模式下的延时拍摄。"
+msgstr "当前打印机在逐件打印时不支持传统模式延时摄影。"
# AI Translated
msgid "I have checked the installed nozzle and want to print anyway."
@@ -10804,8 +11951,9 @@ msgstr "外部料轴的耗材丝类型设置与切片文件中的耗材丝类型
msgid "The printer type selected when generating G-code is not consistent with the currently selected printer. It is recommended that you use the same printer type for slicing."
msgstr "生成G-code时选择的打印机类型与当前选择的打印机不一致。建议您使用相同的打印机类型进行切片。"
+# AI Translated
msgid "There are some unknown filaments in the AMS mappings. Please check whether they are the required filaments. If they are okay, click \"Confirm\" to start printing."
-msgstr "AMS映射中存在一些未知的耗材。请检查它们是否符合预期。如果符合,按“确定”以开始打印任务。"
+msgstr "AMS映射中存在一些未知的耗材丝。请检查它们是否符合预期。如果符合,按“确定”以开始打印任务。"
msgid "Please check the following:"
msgstr "请检查以下内容:"
@@ -10816,8 +11964,9 @@ msgstr "请修复上述错误,否则打印无法继续。"
msgid "Please click the confirm button if you still want to proceed with printing."
msgstr "如果您仍然想继续打印,请单击“确定”按钮。"
+# AI Translated
msgid "This checks the flatness of heatbed. Leveling makes extruded height uniform."
-msgstr "这检查了热床的平整度。调平使挤压高度均匀。"
+msgstr "检测热床的平整度。调平可使挤出高度均匀。"
msgid "This process determines the dynamic flow values to improve overall print quality."
msgstr "该过程确定动态流量值以提高整体打印质量。"
@@ -10867,9 +12016,11 @@ msgstr "发送失败"
msgid "The name length exceeds the limit."
msgstr "名称长度超过限制。"
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "成本 %dg 耗材和 %d 的变化超过最佳分组。"
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "比最佳分组多耗费 %dg 耗材丝,多 %d 次换料。"
# AI Translated
msgid "Right-Ext"
@@ -10882,9 +12033,10 @@ msgstr "左侧外置"
msgid "nozzle"
msgstr "喷嘴"
+# AI Translated
#, c-format, boost-format
msgid "Refreshing information of hotends(%d/%d)."
-msgstr "正在刷新喷嘴信息(%d/%d)。"
+msgstr "正在刷新热端信息(%d/%d)。"
msgid "There are not enough available hotends currently."
msgstr "目前可用的热端数量不足。"
@@ -10895,8 +12047,9 @@ msgstr "请先进行热端挂架初始化后重试。"
msgid "Please refresh the nozzle information and try again."
msgstr "请刷新喷嘴信息后重试。"
+# AI Translated
msgid "Please re-slice to avoid filament waste."
-msgstr "请重新切片以避免耗材浪费。"
+msgstr "请重新切片以避免耗材丝浪费。"
msgid "The reported hotend information may be unreliable."
msgstr "报告的热端信息可能不可靠。"
@@ -10915,8 +12068,9 @@ msgstr "工具头和热端挂架已满,请卸下至少一个热端后再打印
msgid "The nozzle flow setting of %s(%s) doesn't match with the slicing file(%s). Please make sure the nozzle installed matches with settings in printer, then set the corresponding printer preset while slicing."
msgstr "%s(%s)的喷嘴流量设置与切片文件(%s)不匹配。请确保安装的喷嘴与打印机中的设置相符,然后在切片时设置相应的打印机预设。"
+# AI Translated
msgid "Tips: If you changed your nozzle of your printer lately, please go to 'Device -> Printer parts' to change your nozzle setting."
-msgstr "提示:如果您最近更换了打印机喷嘴,请进入“设备 -> 打印机部件”更改喷嘴设置。"
+msgstr "提示:如果您最近更换了打印机喷嘴,请进入“设备 -> 打印机零件”更改喷嘴设置。"
#, c-format, boost-format
msgid "The %s diameter(%.1fmm) of current printer doesn't match with the slicing file (%.1fmm). Please make sure the nozzle installed matches with settings in printer, then set the corresponding printer preset when slicing."
@@ -10944,15 +12098,18 @@ msgstr "当前材料(%s)的硬度超过了 %s(%s)的硬度。这可能会导致
# AI Translated
msgid "Some filaments may switch between extruders during printing. Manual K-value calibration cannot be applied throughout the entire print, which may affect print quality. Enabling Flow Dynamics Calibration is recommended."
-msgstr "部分耗材在打印过程中可能会在挤出机之间切换。手动 K 值校准无法应用于整个打印过程,这可能会影响打印质量。建议启用动态流量校准。"
+msgstr "部分耗材丝在打印过程中可能会在挤出机之间切换。手动 K 值校准无法应用于整个打印过程,这可能会影响打印质量。建议启用动态流量校准。"
# AI Translated
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
-msgstr "此文件中存在易拉丝的耗材。为获得最佳打印质量,我们建议将喷嘴结块检测切换为自动模式。"
+msgstr "此文件中存在易拉丝的耗材丝。为获得最佳打印质量,我们建议将裹头检测切换为自动模式。"
+
+msgid "Switch"
+msgstr "切换"
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
-msgstr "如果“动态流量校准”设置为自动/开启,系统将使用手动校准值或默认值,并跳过流量校准过程。您可以在“校准”页面上对 TPU 耗材执行手动流量校准。"
+msgstr "如果“动态流量校准”设置为自动/开启,系统将使用手动校准值或默认值,并跳过流量校准过程。您可以在“校准”页面上对 TPU 耗材丝执行手动流量校准。"
#, c-format, boost-format
msgid "[ %s ] requires printing in a high-temperature environment. Please close the door."
@@ -10976,8 +12133,9 @@ msgstr "无法自动匹配合适的耗材丝。请点击手动匹配。"
msgid "Install toolhead enhanced cooling fan to prevent filament softening."
msgstr "安装工具头增强型冷却风扇以防止耗材丝软化。"
+# AI Translated
msgid "Smooth Cool Plate"
-msgstr "光滑的低温打印床"
+msgstr "光滑低温打印热床"
msgid "Engineering Plate"
msgstr "工程材料热床"
@@ -10988,8 +12146,9 @@ msgstr "光滑高温打印热床"
msgid "Textured PEI Plate"
msgstr "纹理PEI热床"
+# AI Translated
msgid "Cool Plate (SuperTack)"
-msgstr "低温打印板(超强粘附)"
+msgstr "低温打印热床(超强粘附)"
msgid "Click here if you can't connect to the printer"
msgstr "如果无法连接到打印机,请单击此处"
@@ -11033,8 +12192,9 @@ msgstr "通过 LAN 打印之前需要插入存储设备。"
msgid "Storage is in abnormal state or is in read-only mode."
msgstr "存储处于异常状态或处于只读模式。"
+# AI Translated
msgid "Storage needs to be inserted before printing."
-msgstr "打印前需要插入存储。"
+msgstr "打印前需要插入存储设备。"
msgid "Cannot send the print job to a printer whose firmware must be updated."
msgstr "需要更新打印机固件后,才能将打印任务发送到打印机"
@@ -11042,8 +12202,9 @@ msgstr "需要更新打印机固件后,才能将打印任务发送到打印机
msgid "Cannot send a print job for an empty plate."
msgstr "无法为空盘发送打印任务"
+# AI Translated
msgid "Storage needs to be inserted to record timelapse."
-msgstr "需要插入存储来记录延时摄影。"
+msgstr "录制延时摄影需要先插入存储设备。"
# AI Translated
msgid "The selected printer model could not be identified, so compatibility with the print file configuration cannot be verified. Please verify the printer preset before sending."
@@ -11052,8 +12213,9 @@ msgstr "无法识别所选打印机的型号,因此无法验证与打印文件
msgid "You have selected both external and AMS filaments for an extruder. You will need to manually switch the external filament during printing."
msgstr "您已为挤出机选择了外部耗材丝和 AMS 耗材丝。您需要在打印过程中手动切换外部耗材丝。"
+# AI Translated
msgid "TPU 90A/TPU 85A is too soft and does not support automatic Flow Dynamics calibration."
-msgstr "TPU 90A/TPU 85A 太软,不支持自动流动动力学校准。"
+msgstr "TPU 90A/TPU 85A 太软,不支持自动动态流量校准。"
msgid "Set dynamic flow calibration to 'OFF' to enable custom dynamic flow value."
msgstr "将动态流量校准设置为“关闭”以启用自定义动态流量值。"
@@ -11066,8 +12228,9 @@ msgstr "此打印机类型不支持打印所有盘"
msgid "The current firmware supports a maximum of %s materials. You can either reduce the number of materials to %s or fewer on the Preparation Page, or try updating the firmware. If you are still restricted after the update, please wait for subsequent firmware support."
msgstr "当前固件最多支持 %s 种材料。您可以在准备页面上将材料数量减少到 %s 种或更少,或尝试更新固件。如果更新后仍受限制,请等待后续固件支持。"
+# AI Translated
msgid "The type of external filament is unknown or does not match with the filament type in the slicing file. Please make sure you have installed the correct filament in the external spool."
-msgstr "外部耗材的类型未知,或与切片文件中的耗材类型不匹配。请确认您已在外部料盘中安装了正确的耗材。"
+msgstr "外部耗材丝的类型未知,或与切片文件中的耗材丝类型不匹配。请确认您已在外部料盘中安装了正确的耗材丝。"
# AI Translated
msgid "TPU 90A/TPU 85A are too soft. It is recommended to perform manual flow calibration on the 'Calibration' page. If 'Dynamic Flow Calibration' is set to auto/on, the system will use the previous calibration value and skip the flow calibration process."
@@ -11075,7 +12238,7 @@ msgstr "TPU 90A/TPU 85A 过软。建议在“校准”页面上执行手动流
# AI Translated
msgid "The filament in the AMS may be insufficient for this print. Please refill or replace it."
-msgstr "AMS 中的耗材可能不足以完成此次打印。请补充或更换耗材。"
+msgstr "AMS 中的耗材丝可能不足以完成此次打印。请补充或更换耗材丝。"
msgid "Current firmware does not support file transfer to internal storage."
msgstr "当前固件不支持文件传输到内部存储器。"
@@ -11107,8 +12270,9 @@ msgstr "设备升级中,无法发送打印任务"
msgid "The selected printer is incompatible with the chosen printer presets."
msgstr "所选打印机与选择的打印机预设不兼容。"
+# AI Translated
msgid "Storage needs to be inserted before send to printer."
-msgstr "在发送到打印机之前需要插入存储。"
+msgstr "发送到打印机前需要插入存储设备。"
msgid "The printer is required to be on the same LAN as Orca Slicer."
msgstr "打印机需要与Orca Slicer在同一个局域网内。"
@@ -11129,8 +12293,9 @@ msgstr "文件上传超时。请检查固件版本是否支持此操作或验证
msgid "Sending failed, please try again!"
msgstr "发送失败,请重试!"
+# AI Translated
msgid "Slice complete"
-msgstr "切片完成."
+msgstr "切片完成"
msgid "View all Daily tips"
msgstr "查看所有每日贴士"
@@ -11153,19 +12318,24 @@ msgstr "从服务器获取票据超时"
msgid "Failed to post ticket to server"
msgstr "无法将票据发布到服务器"
+# AI Translated
msgid "Failed to parse login report reason"
-msgstr "无法分析登录报告原因"
+msgstr "无法解析登录报告原因"
msgid "Receive login report timeout"
msgstr "接收登录报告超时"
+# AI Translated
msgid "Unknown Failure"
-msgstr "发生错误"
+msgstr "未知错误"
+# AI Translated
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
-msgstr "请在打印机屏幕上的“帐户”页面中找到Pin码,然后在下面输入Pin码。"
+msgstr ""
+"请在打印机屏幕上的“帐户”页面中找到Pin码,\n"
+"然后在下面输入Pin码。"
msgid "Can't find Pin Code?"
msgstr "无法找到Pin码?"
@@ -11173,8 +12343,9 @@ msgstr "无法找到Pin码?"
msgid "Pin Code"
msgstr "Pin码"
+# AI Translated
msgid "Binding..."
-msgstr "绑定..."
+msgstr "正在绑定..."
msgid "Please confirm on the printer screen"
msgstr "请在打印机屏幕上确认。"
@@ -11185,8 +12356,9 @@ msgstr "登录失败,请检查Pin码。"
msgid "Log in printer"
msgstr "登录打印机"
+# AI Translated
msgid "Would you like to log in to this printer with the current account?"
-msgstr "你想使用当前账号登录这台打印机吗?"
+msgstr "是否使用当前账号登录这台打印机?"
msgid "Check the reason"
msgstr "查看原因"
@@ -11225,14 +12397,16 @@ msgstr "登录成功。"
msgid "Log out printer"
msgstr "登出打印机"
+# AI Translated
msgid "Would you like to log out the printer?"
-msgstr "你想登出打印机吗?"
+msgstr "是否登出打印机?"
msgid "Please log in first."
msgstr "请先登录。"
+# AI Translated
msgid "There was a problem connecting to the printer. Please try again."
-msgstr "连接打印机时发生错误。 请重试。"
+msgstr "连接打印机时发生错误。请重试。"
msgid "Failed to log out."
msgstr "登出失败。"
@@ -11256,54 +12430,68 @@ msgstr "不支持同步不同的挤出机传动方式或喷嘴内腔体积类型
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "将参数的修改同步到另一个挤出机的相应参数。"
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "带有此图标的参数可以按喷嘴分别设置。"
+
msgid "Click to reset all settings to the last saved preset."
msgstr "点击以将所有设置还原到最后一次保存的版本。"
+# AI Translated
msgid "Prime tower is required for nozzle changing. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?"
-msgstr "切换喷嘴需要擦料塔,否则打印件上可能会有瑕疵。您确定要关闭擦料塔吗?"
+msgstr "切换喷嘴需要擦拭塔,否则打印件上可能会有瑕疵。您确定要关闭擦拭塔吗?"
+# AI Translated
msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without a prime tower. Are you sure you want to disable the prime tower?"
-msgstr "平滑模式的延时摄影需要擦料塔,否则打印件上可能会有瑕疵。您确定要关闭擦料塔吗?"
+msgstr "平滑模式的延时摄影需要擦拭塔,否则打印件上可能会有瑕疵。您确定要关闭擦拭塔吗?"
+# AI Translated
msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?"
-msgstr "结块检测需要一个主塔。没有主塔的模型可能存在缺陷。您确定要禁用主塔吗?"
+msgstr "结块检测需要擦拭塔,否则打印件上可能会有瑕疵。您确定要关闭擦拭塔吗?"
+# AI Translated
msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable?"
-msgstr "同时启用精确Z高度和擦拭塔可能会导致切片错误。您仍然要启用吗?"
+msgstr "同时启用精准 Z 高度和擦拭塔可能会导致切片错误。您仍然要启用吗?"
+# AI Translated
msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Do you still want to enable clumping detection?"
-msgstr "结块检测需要 Prime 塔。没有主塔的模型可能存在缺陷。您仍要启用结块检测吗?"
+msgstr "结块检测需要擦拭塔,否则打印件上可能会有瑕疵。您仍要启用结块检测吗?"
+# AI Translated
msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable precise Z height?"
-msgstr "同时启用精确Z高度和擦拭塔可能会导致切片错误。您仍然要启用精确Z高度吗?"
+msgstr "同时启用精准 Z 高度和擦拭塔可能会导致切片错误。您仍然要启用精准 Z 高度吗?"
# AI Translated
msgid "Smooth timelapse needs a prime tower on every layer, which is not compatible with \"No sparse layers\". \"No sparse layers\" has been turned off."
msgstr "平滑模式的延时摄影需要每层都有擦拭塔,因此与“无稀疏层”不兼容。“无稀疏层”已关闭。"
+# AI Translated
msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without prime tower. Do you want to enable the prime tower?"
-msgstr "平滑模式的延时摄影需要擦料塔,否则打印件上可能会有瑕疵。您想打开擦料塔吗?"
+msgstr "平滑模式的延时摄影需要擦拭塔,否则打印件上可能会有瑕疵。是否开启擦拭塔?"
# AI Translated
msgid "\"No sparse layers\" is not compatible with smooth timelapse, which needs a prime tower on every layer. Timelapse has been switched to traditional mode."
msgstr "“无稀疏层”与平滑模式的延时摄影不兼容,后者需要每层都有擦拭塔。延时摄影已切换为传统模式。"
+# AI Translated
msgid "Still print by object?"
-msgstr "仍然按对象打印吗?"
+msgstr "仍要逐件打印吗?"
+# AI Translated
msgid ""
"Non-soluble support materials are not recommended for support base.\n"
"Are you sure to use them for support base?\n"
msgstr ""
-"不建议使用非溶性支撑材料作为支撑基底。\n"
-"您确定使用它们作为支持基础吗?\n"
+"不建议使用非可溶支撑材料作为支撑主体。\n"
+"您确定要将其用于支撑主体吗?\n"
+# AI Translated
msgid ""
"When using support material for the support interface, we recommend the following settings:\n"
"0 top Z distance, 0 interface spacing, interlaced rectilinear pattern and disable independent support layer height."
msgstr ""
-"当使用支撑材料作为支撑接触面时,我们推荐以下设置:\n"
-"0顶部Z距离,0接触面间距,交错线性图案并禁用支撑独立层高"
+"当支撑面使用支撑材料时,我们推荐以下设置:\n"
+"顶部Z距离为0、顶部支撑面线距为0、交叠的直线图案,并禁用支撑独立层高。"
msgid ""
"Change these settings automatically?\n"
@@ -11314,14 +12502,15 @@ msgstr ""
"是 - 自动调整这些设置\n"
"否 - 不用为我调整这些设置"
+# AI Translated
msgid ""
"When using soluble material for the support interface, we recommend the following settings:\n"
"0 top Z distance, 0 interface spacing, interlaced rectilinear pattern, disable independent support layer height\n"
"and use soluble materials for both support interface and support base."
msgstr ""
-"当支撑界面使用可溶材料时,我们建议进行以下设置:\n"
-"0 顶部 Z 距离、0 接口间距、交错直线图案、禁用独立支撑层高度\n"
-"支撑界面和支撑底座均采用可溶性材料。"
+"当支撑面使用可溶材料时,我们推荐以下设置:\n"
+"顶部Z距离为0、顶部支撑面线距为0、交叠的直线图案、禁用支撑独立层高,\n"
+"并且支撑面和支撑主体均使用可溶材料。"
msgid "Enabling this option will modify the model's shape. If your print requires precise dimensions or is part of an assembly, it's important to double-check whether this change in geometry impacts the functionality of your print."
msgstr "启用此选项将改变模型的形状。如果您的打印件需要精确的尺寸或是装配体的一部分,请务必仔细检查这种形状的变化是否影响了最终功能。"
@@ -11329,8 +12518,9 @@ msgstr "启用此选项将改变模型的形状。如果您的打印件需要精
msgid "Are you sure you want to enable this option?"
msgstr "您确定要启用此选项吗?"
+# AI Translated
msgid "Infill patterns are typically designed to handle rotation automatically to ensure proper printing and achieve their intended effects (e.g., Gyroid, Cubic). Rotating the current sparse infill pattern may lead to insufficient support. Please proceed with caution and thoroughly check for any potential printing issues. Are you sure you want to enable this option?"
-msgstr "填充图案通常设计为自动处理旋转,以确保正确打印并实现其预期效果(例如,Gyroid、Cubic)。旋转当前的稀疏填充图案可能会导致支撑不足。请谨慎操作并彻底检查是否存在任何潜在的打印问题。您确定要启用此选项吗?"
+msgstr "填充图案通常设计为自动处理旋转,以确保正确打印并实现其预期效果(例如螺旋体、立方体)。旋转当前的稀疏填充图案可能会导致支撑不足。请谨慎操作并彻底检查是否存在任何潜在的打印问题。您确定要启用此选项吗?"
msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications."
msgstr "实验性选项。在更换耗材丝时,将耗材丝回抽一段距离后再切断以最小化冲刷。虽然这可以显著减少冲刷,但也可能增加喷嘴堵塞或其他打印问题的风险。"
@@ -11338,12 +12528,14 @@ msgstr "实验性选项。在更换耗材丝时,将耗材丝回抽一段距离
msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications. Please use with the latest printer firmware."
msgstr "实验性选项。在更换耗材丝时,将耗材丝回抽一段距离后再切断以最小化冲刷。虽然这可以显著减少冲刷,但也可能增加喷嘴堵塞或其他打印问题的风险。请配合打印机最新固件使用。"
+# AI Translated
+# Needs human review: The menu item named here does not exist (see source notes).
msgid ""
"When recording timelapse without toolhead, it is recommended to add a \"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
-"在录制无工具头延时摄影视频时,建议添加“延时摄影擦料塔”\n"
-"右键单击打印板的空白位置,选择“添加标准模型”->“延时摄影擦料塔”。"
+"在录制无工具头延时摄影视频时,建议添加“延时摄影擦拭塔”:\n"
+"右键单击热床空白处,选择“添加标准模型”->“延时摄影擦拭塔”。"
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
msgstr "将创建当前系统预设的副本,该副本将与系统预设分离。"
@@ -11351,15 +12543,17 @@ msgstr "将创建当前系统预设的副本,该副本将与系统预设分离
msgid "The current custom preset will be detached from the parent system preset."
msgstr "当前自定义预设将与父系统预设分离。"
+# AI Translated
msgid "Modifications to the current profile will be saved."
-msgstr "将保存对当前配置文件的修改。"
+msgstr "将保存对当前预设的修改。"
+# AI Translated
msgid ""
"This action is not revertible.\n"
"Do you want to proceed?"
msgstr ""
-"此操作不可恢复。\n"
-"你想继续吗?"
+"此操作不可撤销。\n"
+"是否继续?"
msgid "Detach preset"
msgstr "分离预设"
@@ -11379,8 +12573,9 @@ msgstr "当前预设继承自"
msgid "It can't be deleted or modified."
msgstr "无法删除或修改它。"
+# AI Translated
msgid "Any modifications should be saved as a new preset inherited from this one."
-msgstr "任何修改都应保存为从此修改继承的新预设。"
+msgstr "任何修改都应保存为继承自此预设的新预设。"
msgid "To do that please specify a new name for the preset."
msgstr "为此,请为预设指定新名称。"
@@ -11399,23 +12594,29 @@ msgstr "版本"
msgid "printer model"
msgstr "打印机型号"
+# AI Translated
msgid "default print profile"
-msgstr "默认打印配置文件"
+msgstr "默认工艺预设"
+# AI Translated
msgid "default filament profile"
-msgstr "默认耗材丝配置"
+msgstr "默认耗材丝预设"
+# AI Translated
msgid "default SLA material profile"
-msgstr "默认 SLA 材料配置文件"
+msgstr "默认 SLA 材料预设"
+# AI Translated
msgid "default SLA print profile"
-msgstr "默认 SLA 打印配置文件"
+msgstr "默认 SLA 打印预设"
+# AI Translated
msgid "full profile name"
-msgstr "配置全称"
+msgstr "预设全称"
+# AI Translated
msgid "symbolic profile name"
-msgstr "配置名昵称"
+msgstr "预设别名"
msgid "Line width"
msgstr "线宽"
@@ -11429,8 +12630,9 @@ msgstr "Z 层抗锯齿"
msgid "Wall generator"
msgstr "墙生成器"
+# AI Translated
msgid "Walls and surfaces"
-msgstr "墙壁和表面"
+msgstr "墙和表面"
msgid "Bridging"
msgstr "搭桥"
@@ -11450,8 +12652,9 @@ msgstr "其他层速度"
msgid "Overhang speed"
msgstr "悬垂速度"
+# AI Translated
msgid "This is the speed for various overhang degrees. Overhang degrees are expressed as a percentage of line width. 0 speed means no slowing down for the overhang degree range and wall speed is used"
-msgstr "不同悬垂程度的打印速度。悬垂程度使用相对于线宽的百分表示。速度为0代表这个悬垂程度范围内不降速,直接使用墙的速度"
+msgstr "不同悬垂程度的打印速度。悬垂程度以线宽的百分比表示。速度为0代表这个悬垂程度范围内不降速,直接使用墙的速度"
msgid "Set speed for external and internal bridges"
msgstr "设置外部和内部桥接的速度"
@@ -11468,8 +12671,9 @@ msgstr "抖动(XY轴)"
msgid "Raft"
msgstr "筏层"
+# AI Translated
msgid "Filament for Supports"
-msgstr "支撑耗材"
+msgstr "支撑耗材丝"
msgid "Support ironing"
msgstr "支撑熨烫"
@@ -11477,14 +12681,20 @@ msgstr "支撑熨烫"
msgid "Tree supports"
msgstr "树状支撑"
+# AI Translated
msgid "Multimaterial"
-msgstr "材料"
+msgstr "多材料"
+# AI Translated
msgid "Filament for Features"
-msgstr "特征用耗材"
+msgstr "特征用耗材丝"
+# AI Translated
msgid "Ooze prevention"
-msgstr "Ooze 预防"
+msgstr "防渗料"
+
+msgid "Others"
+msgstr "其他"
msgid "Special mode"
msgstr "特殊模式"
@@ -11523,8 +12733,11 @@ msgstr[0] ""
"以下行%s包含保留关键字。\n"
"请将其移除,否则将影响G-code可视化和打印时间估算。"
-msgid "Reserved keywords found"
-msgstr "检测到保留的关键字"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "在 %1% 中检测到保留的关键字"
msgid "Setting Overrides"
msgstr "参数覆盖"
@@ -11541,18 +12754,21 @@ msgstr "建议喷嘴温度"
msgid "Recommended nozzle temperature range of this filament. 0 means not set"
msgstr "该材料的建议喷嘴温度范围。0表示未设置"
+# AI Translated
msgid "Flow ratio and Pressure Advance"
-msgstr "流量和 Pressure Advance"
+msgstr "流量比例和 Pressure Advance"
+# AI Translated
msgid "Print chamber temperature"
-msgstr "打印仓温度"
+msgstr "打印腔体温度"
+# AI Translated
msgid "Chamber temperature"
-msgstr "机箱温度"
+msgstr "腔体温度"
# AI Translated
msgid "Target chamber temperature, and the minimal chamber temperature at which printing should start"
-msgstr "目标机箱温度,以及开始打印时的最低机箱温度"
+msgstr "目标腔体温度,以及开始打印时的最低腔体温度"
# AI Translated
msgid "Target"
@@ -11568,8 +12784,9 @@ msgstr "打印温度"
msgid "Nozzle temperature when printing"
msgstr "打印时的喷嘴温度"
+# AI Translated
msgid "Bed temperature when the Cool Plate SuperTack is installed. A value of 0 means the filament does not support printing on the Cool Plate SuperTack."
-msgstr "安装低温打印板(超强粘附)时的热床温度。0值表示该材料不支持在低温打印板(超强粘附)上打印。"
+msgstr "安装低温打印热床(超强粘附)时的热床温度。0值表示这个耗材丝不支持低温打印热床(超强粘附)。"
msgid "Cool Plate"
msgstr "低温打印热床"
@@ -11577,8 +12794,9 @@ msgstr "低温打印热床"
msgid "This is the bed temperature when the Cool Plate is installed. A value of 0 means the filament does not support printing on the Cool Plate."
msgstr "安装低温打印热床时的热床温度。0值表示这个耗材丝不支持低温打印热床"
+# AI Translated
msgid "Textured Cool Plate"
-msgstr "纹理的低温打印床"
+msgstr "纹理低温打印热床"
msgid "This is the bed temperature when the Textured Cool Plate is installed. A value of 0 means the filament does not support printing on the Textured Cool Plate."
msgstr "安装纹理低温打印热床时的热床温度。0值表示这个耗材丝不支持纹理低温打印热床"
@@ -11586,11 +12804,13 @@ msgstr "安装纹理低温打印热床时的热床温度。0值表示这个耗
msgid "This is the bed temperature when the engineering plate is installed. A value of 0 means the filament does not support printing on the Engineering Plate."
msgstr "安装工程材料热床时的热床温度。0值表示这个耗材丝不支持工程材料热床"
+# AI Translated
msgid "Smooth PEI Plate / High Temp Plate"
-msgstr "光滑PEI板/高温板"
+msgstr "光滑PEI热床/高温打印热床"
+# AI Translated
msgid "This is the bed temperature when the Smooth PEI Plate/High Temperature Plate is installed. A value of 0 means the filament does not support printing on the Smooth PEI Plate/High Temp Plate."
-msgstr "使用光滑PEI热床或高温打印热床时的床温。值0表示耗材不支持在光滑PEI热床或高温打印热床上打印"
+msgstr "安装光滑PEI热床/高温打印热床时的热床温度。0值表示这个耗材丝不支持光滑PEI热床/高温打印热床。"
msgid "This is the bed temperature when the Textured PEI Plate is installed. A value of 0 means the filament does not support printing on the Textured PEI Plate."
msgstr "安装纹理PEI热床时的热床温度。0值表示这个耗材丝不支持纹理PEI热床"
@@ -11626,8 +12846,9 @@ msgstr "排气风扇"
msgid "During print"
msgstr "打印中"
+# AI Translated
msgid "Complete print"
-msgstr "完成打印"
+msgstr "打印完成后"
msgid "Filament start G-code"
msgstr "耗材丝起始G-code"
@@ -11638,8 +12859,9 @@ msgstr "耗材丝结束G-code"
msgid "Wipe tower parameters"
msgstr "擦拭塔参数"
+# AI Translated
msgid "Multi Filament"
-msgstr "复丝"
+msgstr "多耗材丝"
msgid "Tool change parameters with single extruder MM printers"
msgstr "单挤出机多材料打印机的换色参数"
@@ -11656,16 +12878,27 @@ msgstr "依赖"
msgid "Compatible printers"
msgstr "兼容打印机"
+# AI Translated
msgid "Compatible process profiles"
-msgstr "兼容的切片配置"
+msgstr "兼容的工艺预设"
msgid "Printable space"
msgstr "可打印区域"
+# AI Translated
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
-msgstr "为打印机通信选择网络代理。可用的代理将在启动时列出。"
+msgstr "为打印机通信选择网络代理实现。可用的代理在启动时注册。"
+
+# AI Translated
+msgid "Belt printer"
+msgstr "传送带打印机"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "机器坐标系变换"
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "参数%1%提供了无效值:%2%"
@@ -11757,20 +12990,22 @@ msgstr "加速度限制"
msgid "Jerk limitation"
msgstr "抖动限制"
+# AI Translated
msgid "Single extruder multi-material setup"
-msgstr "设置单挤出机多材料"
+msgstr "单挤出机多材料设置"
msgid "Number of extruders of the printer."
msgstr "打印机的挤出机数。"
+# AI Translated
msgid ""
"Single Extruder Multi Material is selected,\n"
"and all extruders must have the same diameter.\n"
"Do you want to change the diameter for all extruders to first extruder nozzle diameter value?"
msgstr ""
-"选择单挤出机多材料,\n"
-"和所有挤出机必须具有相同的直径。\n"
-"是否要将所有挤出机的直径更改为第一挤出机喷嘴直径值?"
+"已选择单挤出机多材料,\n"
+"所有挤出机必须具有相同的直径。\n"
+"是否将所有挤出机的直径更改为第一个挤出机的喷嘴直径?"
msgid "Nozzle diameter"
msgstr "喷嘴直径"
@@ -11778,9 +13013,29 @@ msgstr "喷嘴直径"
msgid "Wipe tower"
msgstr "擦拭塔"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "传送带冲刷塔"
+
msgid "Single extruder multi-material parameters"
msgstr "单挤出机多材料参数"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "IDEX/IQEX 配置"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "切片前警告"
+
+# AI Translated
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "检测到 IDEX/IQEX 并行模式问题(热床温度冲突、耗材丝类型不匹配、多材料冲突)时,在切片前显示警告对话框。可在对话框中选择不再显示;若误关,可在此处重新启用。"
+
+# AI Translated
+msgid "Modes"
+msgstr "模式"
+
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
msgstr "这是一台单挤出机多材料打印机,所有挤出机的直径都将被设置为新值。您想继续吗?"
@@ -11790,6 +13045,22 @@ msgstr "层高限制"
msgid "Z-Hop"
msgstr "Z轴抬升"
+# AI Translated
+msgid "Front-left"
+msgstr "左前"
+
+# AI Translated
+msgid "Front-right"
+msgstr "右前"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "左后"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "右后"
+
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
"\n"
@@ -11802,8 +13073,9 @@ msgstr ""
msgid "Firmware Retraction"
msgstr "固件回抽"
+# AI Translated
msgid "Switching to a printer with different extruder types or numbers will discard or reset changes to extruder or multi-nozzle-related parameters."
-msgstr "切换到具有不同挤出机类型或编号的打印机将放弃或重置对挤出机或多喷嘴相关参数的更改。"
+msgstr "切换到挤出机类型或数量不同的打印机,将放弃或重置对挤出机或多喷嘴相关参数的修改。"
msgid "Use Modified Value"
msgstr "使用修改值"
@@ -11811,42 +13083,58 @@ msgstr "使用修改值"
msgid "Detached"
msgstr "分离的"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "该打印机下已关联 %1% 与 %2%。如删除该打印机,这些预设将一并删除。"
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "该打印机下已关联 %d 个材料预设与 %d 个工艺预设。如删除该打印机,材料与工艺预设将一并删除。"
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d 个耗材丝预设"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d 个工艺预设"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "不能删除被其他预设继承的预设!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
msgstr[0] "以下预设继承此预设。"
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% 预设"
+msgid "Delete Preset"
+msgstr "删除预设"
+# AI Translated
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
-msgstr[0] "下列预设将被一起删除。"
+msgstr[0] "以下预设也将被删除:"
+# AI Translated
msgid ""
"Are you sure to delete the selected preset?\n"
"If the preset corresponds to a filament currently in use on your printer, please reset the filament information for that slot."
msgstr ""
-"确定要删除所选预设吗?\n"
-"如果预设对应当前在您的打印机上使用的材料,请重新设置该槽位的材料信息。"
+"您确定要删除所选预设吗?\n"
+"如果该预设对应打印机上当前正在使用的耗材丝,请重新设置该槽位的耗材丝信息。"
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "确定要%1%所选预设吗?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "确定要删除所选预设吗?"
msgid "Select printers"
msgstr "选择打印机"
+# AI Translated
msgid "Select profiles"
-msgstr "选择配置文件"
+msgstr "选择预设"
#, c-format, boost-format
msgid ""
@@ -11894,9 +13182,39 @@ msgid "Don't warn again for this preset"
msgstr "不再为此预设警告"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s: %s"
+# Needs human review: Narrow nozzle flow type switch tag in the Printer/Filament tab; abbreviation of 标准流量, check it fits and reads right.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "标准"
+
+# AI Translated
+# Needs human review: Narrow nozzle flow type switch tag; abbreviation of 高流量, check it fits and reads right.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "高流"
+
+# AI Translated
+# Needs human review: Narrow nozzle flow type switch tag; abbreviation of TPU 高流量, check it fits and reads right.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU 高流"
+
+# AI Translated
+# Needs human review: Narrow nozzle flow type switch tag; abbreviation of E3D 高流量, check it fits and reads right.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D 高流"
+
+# AI Translated
+# Needs human review: Narrow nozzle flow type switch tag; abbreviation of 超高流量, check it fits and reads right.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "超高流"
# AI Translated
msgid "No modifications need to be copied."
@@ -11928,8 +13246,9 @@ msgstr "工艺设置"
msgid "unsaved changes"
msgstr "未保存的更改"
+# AI Translated
msgid "Transfer or discard changes"
-msgstr "放弃或保留更改"
+msgstr "迁移或放弃更改"
msgid "Old Value"
msgstr "旧值"
@@ -11946,8 +13265,9 @@ msgstr "不保存"
msgid "Discard"
msgstr "放弃"
+# AI Translated
msgid "the new profile"
-msgstr "新的配置文件"
+msgstr "新预设"
#, boost-format
msgid ""
@@ -11961,6 +13281,7 @@ msgstr ""
"并放弃在\n"
"“%2%”中所做的任何更改。"
+# AI Translated
#, boost-format
msgid ""
"All \"New Value\" settings modified in\n"
@@ -11970,7 +13291,7 @@ msgid ""
msgstr ""
"在\n"
"“%1%”中修改的所有“新值”设置\n"
-"将被转移到\n"
+"将被迁移到\n"
"“%2%”。"
#, boost-format
@@ -12001,25 +13322,28 @@ msgstr "保持所选项。"
msgid "Transfer the selected options to the newly selected preset."
msgstr "将所选项迁移到新的预设中。"
+# AI Translated
#, boost-format
msgid ""
"Save the selected options to preset \n"
"\"%1%\"."
msgstr ""
-"保存所选选项到预设 \n"
-"\"%1%\"."
+"将所选选项保存到预设 \n"
+"“%1%”。"
+# AI Translated
#, boost-format
msgid ""
"Transfer the selected options to the newly selected preset \n"
"\"%1%\"."
msgstr ""
-"将选择的选项转移到新选择的预设 \n"
-"\"%1%\"."
+"将所选选项迁移到新选择的预设 \n"
+"“%1%”。"
+# AI Translated
#, boost-format
msgid "Preset \"%1%\" contains the following unsaved changes:"
-msgstr "预设 \"%1%\" 包含以下未保存的修改:"
+msgstr "预设“%1%”包含以下未保存的修改:"
#, boost-format
msgid "Preset \"%1%\" is not compatible with the new printer profile and it contains the following unsaved changes:"
@@ -12040,28 +13364,31 @@ msgstr ""
"\n"
"您可以保存或丢弃已经修改的预设值。"
+# AI Translated
msgid ""
"\n"
"You can save or discard the preset values you have modified, or choose to transfer the values you have modified to the new preset."
msgstr ""
"\n"
-"您可以保存或放弃已修改的预设值,或选择将已修改的值传输到新预设。"
+"您可以保存或放弃已修改的预设值,或选择将已修改的值迁移到新预设。"
msgid "You have previously modified your settings."
msgstr "您已经修改了预设参数。"
+# AI Translated
msgid ""
"\n"
"You can discard the preset values you have modified, or choose to transfer the modified values to the new project"
msgstr ""
"\n"
-"您可以放弃已修改的预设值,或者将修改后的值转移到新项目"
+"您可以放弃已修改的预设值,或者将修改后的值迁移到新项目"
msgid "Extruder count"
msgstr "挤出机数量"
+# AI Translated
msgid "Capabilities"
-msgstr "能力"
+msgstr "功能"
msgid "Show all presets (including incompatible)"
msgstr "显示所有预设(包括不兼容的)"
@@ -12075,21 +13402,25 @@ msgstr "左侧预设值"
msgid "Right Preset Value"
msgstr "右侧预设值"
+# AI Translated
msgid "You can only transfer to current active profile because it has been modified."
-msgstr "只能传输到当前活动的配置文件,因为它已被修改。"
+msgstr "只能迁移到当前使用的预设,因为它已被修改。"
+# AI Translated
msgid ""
"Transfer the selected options from left preset to the right.\n"
"Note: New modified presets will be selected in settings tabs after close this dialog."
msgstr ""
-"将选定的选项从左边的预设转移到右边。\n"
-"注意:关闭此对话框后,新修改的预置将在设置标签中被选中。"
+"将所选选项从左侧预设迁移到右侧。\n"
+"注意:关闭此对话框后,设置标签页中将选中新修改的预设。"
+# AI Translated
msgid "Transfer values from left to right"
-msgstr "从左到右的转移值"
+msgstr "从左向右迁移数值"
+# AI Translated
msgid "If enabled, this dialog can be used for transfer selected values from left to right preset."
-msgstr "如果启用,此对话框可用于将选定的值从左侧预设传输到右侧预设。"
+msgstr "启用后,可使用此对话框将所选值从左侧预设迁移到右侧预设。"
# AI Translated
msgid "One of the presets does not exist"
@@ -12099,6 +13430,12 @@ msgstr "其中一个预设不存在"
msgid "Compared presets has different printer technology"
msgstr "所比较的预设具有不同的打印机技术"
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "“%1%” 对比 “%2%”"
+
msgid "Add File"
msgstr "添加文件"
@@ -12124,6 +13461,22 @@ msgstr "物料清单"
msgid "Assembly Guide"
msgstr "组装指南"
+# AI Translated
+msgid "Image files"
+msgstr "图像文件"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXT 文件"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCEL 文件"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDF 文件"
+
msgid "Author"
msgstr "作者"
@@ -12143,19 +13496,21 @@ msgstr "发现新版本"
msgid "Configuration update"
msgstr "配置更新"
+# AI Translated
msgid "A new configuration package is available. Do you want to install it?"
-msgstr "新的配置包可用,您需要安装吗?"
+msgstr "有新的配置包可用。是否安装?"
msgid "the configuration package is incompatible with the current application."
msgstr "配置包和当前的应用程序不兼容。"
+# AI Translated
#, c-format, boost-format
msgid ""
"The configuration package is incompatible with the current application.\n"
"%s will update the configuration package to allow the application to start."
msgstr ""
"配置包和当前的应用程序不兼容。\n"
-"%s会更新配置包,否则无法正常启动"
+"%s 将更新配置包,以便应用程序能够启动。"
#, c-format, boost-format
msgid "Exit %s"
@@ -12181,21 +13536,24 @@ msgctxt "Sync_AMS"
msgid "Original"
msgstr "原来的"
+# AI Translated
msgid "After mapping"
-msgstr "测绘后"
+msgstr "映射后"
msgid "After overwriting"
msgstr "覆盖后"
+# AI Translated
msgctxt "Sync_AMS"
msgid "Plate"
-msgstr "盘子"
+msgstr "盘"
msgid "The connected printer does not match the currently selected printer. Please change the selected printer."
msgstr "连接的打印机与当前选择的打印机不匹配。请更改所选打印机。"
+# AI Translated
msgid "Mapping"
-msgstr "测绘"
+msgstr "映射"
msgid "Overwriting"
msgstr "覆盖"
@@ -12209,11 +13567,12 @@ msgstr "(推荐耗材丝)"
msgid "Advanced Options"
msgstr "高级选项"
+# AI Translated
msgid ""
"Check heatbed flatness. Leveling makes extruded height uniform.\n"
"*Automatic mode: Level first (about 10 seconds). Skip if surface is fine."
msgstr ""
-"检查热床平整度。调平使挤压高度均匀。\n"
+"检查热床平整度。调平使挤出高度均匀。\n"
"*自动模式:首先调平(约 10 秒)。如果表面良好则跳过。"
msgid ""
@@ -12229,11 +13588,13 @@ msgstr "使用AMS"
msgid "Tip"
msgstr "提示"
+# AI Translated
msgid "Only synchronize filament type and color, not including AMS slot information."
-msgstr "仅同步耗材丝类型和颜色,不包括 AMS 插槽信息。"
+msgstr "仅同步耗材丝类型和颜色,不包括 AMS 槽位信息。"
+# AI Translated
msgid "Replace the project filaments list sequentially based on printer filaments. And unused printer filaments will be automatically added to the end of the list."
-msgstr "根据打印机耗材顺序替换项目耗材列表。未使用的打印机耗材将自动添加到列表末尾。"
+msgstr "根据打印机耗材丝顺序替换项目耗材丝列表。未使用的打印机耗材丝将自动添加到列表末尾。"
msgid "Add unused AMS filaments to filaments list."
msgstr "将未使用的 AMS 耗材丝添加到耗材丝列表中。"
@@ -12241,11 +13602,13 @@ msgstr "将未使用的 AMS 耗材丝添加到耗材丝列表中。"
msgid "Automatically merge the same colors in the model after mapping."
msgstr "映射后自动合并模型中的相同颜色。"
+# AI Translated
msgid "After being synced, this action cannot be undone."
-msgstr "同步后,此操作无法撤消。"
+msgstr "同步后,此操作无法撤销。"
+# AI Translated
msgid "After being synced, the project's filament presets and colors will be replaced with the mapped filament types and colors. This action cannot be undone."
-msgstr "同步后,项目的耗材丝预设和颜色将替换为映射的耗材丝类型和颜色。此操作无法撤消。"
+msgstr "同步后,项目的耗材丝预设和颜色将替换为映射的耗材丝类型和颜色。此操作无法撤销。"
msgid "Are you sure to synchronize the filaments?"
msgstr "您确定要同步耗材丝吗?"
@@ -12259,8 +13622,9 @@ msgstr "同步耗材丝信息"
msgid "Add unused filaments to filaments list."
msgstr "将未使用的耗材丝添加到耗材丝列表中。"
+# AI Translated
msgid "Only synchronize filament type and color, not including slot information."
-msgstr "仅同步耗材丝类型和颜色,不包括插槽信息。"
+msgstr "仅同步耗材丝类型和颜色,不包括槽位信息。"
msgid "Ext spool"
msgstr "外置耗材盘"
@@ -12278,8 +13642,9 @@ msgstr "所选打印机(%s)与切片软件中选择的打印机配置文件
msgid "Timelapse is not supported because Print sequence is set to \"By object\"."
msgstr "切片参数中开启了逐件打印,无法支持延时摄影。"
+# AI Translated
msgid "You selected external and AMS filament at the same time in an extruder, you will need manually change external filament."
-msgstr "您在挤出机中同时选择了外部耗材和 AMS 耗材,您将需要手动更换外部耗材。"
+msgstr "您在挤出机中同时选择了外部耗材丝和 AMS 耗材丝,您将需要手动更换外部耗材丝。"
msgid "Successfully synchronized nozzle information."
msgstr "成功同步喷嘴信息。"
@@ -12289,13 +13654,14 @@ msgstr "已成功同步喷嘴和 AMS 编号信息。"
# AI Translated
msgid "Do you want to continue to sync filaments?"
-msgstr "是否继续同步耗材?"
+msgstr "是否继续同步耗材丝?"
msgid "Successfully synchronized filament color from printer."
msgstr "已成功同步打印机的耗材丝颜色。"
+# AI Translated
msgid "Successfully synchronized color and type of filament from printer."
-msgstr "成功同步打印机耗材的颜色和类型。"
+msgstr "成功同步打印机耗材丝的颜色和类型。"
msgctxt "FinishSyncAms"
msgid "OK"
@@ -12304,15 +13670,15 @@ msgstr "好的"
msgid "Ramming customization"
msgstr "自定义尖端成型"
+# AI Translated
msgid ""
"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n"
"\n"
"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc."
msgstr ""
-"尖端成型是指在单挤出机多材料打印机中换色之前的快速抽插。\n"
-"其目的是使卸载耗材的末端正确成形,这样就不会妨碍新耗材的插入,并使之可以重新插入。\n"
-"这个阶段很重要,不同的材料可能需要不同的挤出速度才能获得良好的形状。因此,尖端成型过程中的挤压率是需要可调节的。\n"
-"这是一个专家级别的设置,不正确的调节可能会导致堵塞、挤出机齿轮刨料等。"
+"尖端成型是指单挤出机多材料打印机在换料前进行的快速挤出,其目的是使退出的耗材丝末端形成合适的形状,既不妨碍新耗材丝的插入,自身之后也能重新插入。这一阶段很重要,不同材料可能需要不同的挤出速度才能获得良好的形状,因此尖端成型过程中的挤出速率可以调节。\n"
+"\n"
+"这是专家级设置,调整不当很可能导致堵塞、挤出机齿轮磨损耗材丝等问题。"
#, boost-format
msgid "For constant flow rate, hold %1% while dragging."
@@ -12321,17 +13687,17 @@ msgstr "为保持恒定流量,拖动时按住%1%"
msgid "ms"
msgstr "ms"
+# AI Translated
msgid "Total ramming"
-msgstr "总冲刷量"
-
-msgid "Volume"
-msgstr "体积"
+msgstr "尖端成型总计"
+# AI Translated
msgid "Ramming line"
-msgstr "预冲刷线"
+msgstr "尖端成型线条"
+# AI Translated
msgid "Orca would re-calculate your flushing volumes everytime the filaments color changed or filaments changed. You could disable the auto-calculate in Orca Slicer > Preferences"
-msgstr "每次耗材颜色发生变化或耗材发生变化时,Orca 都会重新计算您的冲洗量。您可以在 Orca Slicer > 首选项中禁用自动计算"
+msgstr "每次耗材丝颜色或耗材丝发生变化时,Orca 都会重新计算冲刷量。您可以在 Orca Slicer > 偏好设置 中禁用自动计算"
msgid "Flushing volume (mm³) for each filament pair."
msgstr "在两个耗材丝间切换所需的冲刷量(mm³)"
@@ -12353,8 +13719,10 @@ msgstr "乘数"
msgid "Flushing volumes for filament change"
msgstr "耗材丝更换时的冲刷体积"
-msgid "Please choose the filament color"
-msgstr "请选择耗材丝颜色"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "从/到"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "云代理不可用。请重启 OrcaSlicer 后重试。"
@@ -12375,6 +13743,142 @@ msgstr "登录失败。请重试。"
msgid "parse json failed"
msgstr "解析 json 失败"
+msgid "Loading…"
+msgstr "正在加载……"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "自定义"
+
+msgid "Welcome to Orca Slicer"
+msgstr "欢迎使用 Orca Slicer"
+
+# AI Translated
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer 将通过几个步骤完成设置。让我们开始吧!"
+
+msgid "Get Started"
+msgstr "开始"
+
+msgid "Please select your login region"
+msgstr "请选择登录区域"
+
+msgid "Finish"
+msgstr "完成"
+
+msgid "Printer Selection"
+msgstr "选择打印机"
+
+# AI Translated
+msgid "Vendors"
+msgstr "供应商"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "自定义打印机"
+
+msgid "Create"
+msgstr "创建"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "检查新打印机"
+
+msgid "At least one printer must be selected."
+msgstr "至少需要选择一款打印机。"
+
+# AI Translated
+msgid "New printers found"
+msgstr "发现新打印机"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "已安装新的打印机供应商:%s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "发现了新的打印机供应商,但安装已取消。"
+
+# AI Translated
+msgid "No new printers found."
+msgstr "未发现新打印机。"
+
+msgid "Filament Selection"
+msgstr "选择耗材丝"
+
+msgid "System Filaments"
+msgstr "系统耗材丝"
+
+msgid "Custom Filaments"
+msgstr "自建耗材丝"
+
+msgid "Create New"
+msgstr "新建"
+
+# AI Translated
+msgid "Filament type"
+msgstr "耗材丝类型"
+
+msgid "Vendor"
+msgstr "供应商"
+
+# AI Translated
+msgid "No items"
+msgstr "无项目"
+
+# AI Translated
+msgid "Filter items"
+msgstr "筛选项目"
+
+# AI Translated
+msgid "Checked"
+msgstr "已勾选"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "未勾选"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "选择筛选项"
+
+msgid "Clear all"
+msgstr "清空"
+
+msgid "At least one filament must be selected."
+msgstr "至少要选择一款耗材丝。"
+
+# AI Translated
+msgid "Do you want to use the default filament?"
+msgstr "是否使用默认耗材丝?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "这将禁用所有云功能,包括 Orca Cloud 配置文件同步。希望完全离线工作的用户可以启用此选项。"
+
+# AI Translated
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "注意:启用隐身模式后,您的用户配置文件将不会备份到 Orca Cloud。"
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "启用隐身模式。"
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "专有插件"
+
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "一些打印机供应商需要安装他们的专有插件才能与打印机通信。如果您使用这类打印机,请选择相应的插件。"
+
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "注意:这些插件不是由 OrcaSlicer 开发或维护的。使用它们需自担风险。"
+
+msgid "Install Bambu Network plug-in"
+msgstr "安装 Bambu 网络插件"
+
msgid "[Action Required] "
msgstr "[需要操作] "
@@ -12395,11 +13899,13 @@ msgstr "参数配置包在之前的配置向导中发生了变更"
msgid "Configuration package changed"
msgstr "参数配置包发生变更"
+# AI Translated
msgid "Pan View"
-msgstr "移动视角"
+msgstr "平移视图"
+# AI Translated
msgid "Rotate View"
-msgstr "旋转视角"
+msgstr "旋转视图"
# AI Translated
#, c-format, boost-format
@@ -12443,11 +13949,9 @@ msgstr "在“准备”标签页的 3D 视图获得焦点时可用。"
msgid "Select a part"
msgstr "选择单个零件"
-msgid "Select multiple objects"
-msgstr "选择多个对象"
-
+# AI Translated
msgid "Select objects by rectangle"
-msgstr "框选多个零件"
+msgstr "框选对象"
msgid "Keyboard 1-9: set filament for object/part"
msgstr "按键1-9:设置对象/零件的耗材丝"
@@ -12466,8 +13970,9 @@ msgstr "鼠标中键"
msgid "Right mouse"
msgstr "鼠标右键"
+# AI Translated
msgid "Zoom View"
-msgstr "缩放视角"
+msgstr "缩放视图"
# AI Translated
msgid "Painting"
@@ -12475,13 +13980,14 @@ msgstr "绘制"
# AI Translated
msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting."
-msgstr "在绘制小工具打开时可用:支撑、接缝、绒毛表面或颜色绘制。"
+msgstr "在绘制小工具打开时可用:支撑、接缝、绒毛表面或涂色。"
msgid "Move: press to snap by 1mm"
msgstr "移动:以1mm为步进移动"
+# AI Translated
msgid "Support/Color Painting: adjust pen radius"
-msgstr "支撑/颜色绘制:调节画笔半径"
+msgstr "支撑/涂色:调节画笔半径"
msgid "Objects list"
msgstr "对象列表"
@@ -12498,8 +14004,9 @@ msgctxt "Keyboard Shortcut"
msgid "Space"
msgstr "Space"
+# AI Translated
msgid "Select the object/part and press space to change the name"
-msgstr "选中对象、零件,按空格可修改名称"
+msgstr "选中对象、零件,按 Space 键可修改名称"
msgid "Mouse click"
msgstr "鼠标点击"
@@ -12589,9 +14096,10 @@ msgstr "点击“确定”立即更新网络插件。如果某个文件正在使
msgid "A new Network plug-in is available. Do you want to install it?"
msgstr "有新的网络插件可用。是否要安装?"
+# AI Translated
#, c-format, boost-format
msgid "A new Network plug-in (%s) is available. Do you want to install it?"
-msgstr "新的网络插件(%s) 可用,您是否需要安装它?"
+msgstr "有新的网络插件(%s)可用。是否要安装?"
msgid "New version of Orca Slicer"
msgstr "新版本的Orca Slicer"
@@ -12615,8 +14123,9 @@ msgstr "有新版本可用:%s。请从 Microsoft Store 更新 OrcaSlicer。"
msgid "Confirm and Update Nozzle"
msgstr "确认并更新喷嘴"
+# AI Translated
msgid "Connect the printer using IP and access code"
-msgstr "使用IP和访问代码连接打印"
+msgstr "使用IP和访问码连接打印机"
msgid "Try the following methods to update the connection parameters and reconnect to the printer."
msgstr "请尝试以下方法更新连接参数并重新连接打印机。"
@@ -12624,11 +14133,13 @@ msgstr "请尝试以下方法更新连接参数并重新连接打印机。"
msgid "1. Please confirm Orca Slicer and your printer are in the same LAN."
msgstr "1. 请确认 Orca Slicer 和您的打印机位于同一局域网内。"
+# AI Translated
msgid "2. If the IP and Access Code below are different from the actual values on your printer, please correct them."
-msgstr "2. 如果下面的 IP 和访问代码与您打印机上的实际值不同,请更正它们。"
+msgstr "2. 如果下面的 IP 和访问码与您打印机上的实际值不同,请更正它们。"
+# AI Translated
msgid "3. Please obtain the device SN from the printer side; it is usually found in the device information on the printer screen."
-msgstr "3、请从打印机端获取设备 SN;它通常可以在打印机屏幕上的设备信息中找到。"
+msgstr "3. 请从打印机端获取设备 SN;它通常可以在打印机屏幕上的设备信息中找到。"
msgid "IP"
msgstr "IP地址"
@@ -12652,14 +14163,16 @@ msgstr "HTTPS CA文件是可选的。只有在使用自签名证书进行HTTPS
msgid "This system uses HTTPS certificates from the system Certificate Store or Keychain. To use a custom CA file, import it there."
msgstr "此系统使用来自系统证书存储或钥匙串的 HTTPS 证书。要使用自定义 CA 文件,请将其导入其中。"
+# AI Translated
msgid "Printer model"
-msgstr "打印机模型"
+msgstr "打印机型号"
msgid "Printer name"
msgstr "打印机名称"
+# AI Translated
msgid "Where to find your printer's IP and Access Code?"
-msgstr "在哪里可以找到打印机的IP和访问码?"
+msgstr "在哪里可以找到打印机的IP和访问码?"
# AI Translated
msgid "How to trouble shooting"
@@ -12671,8 +14184,9 @@ msgstr "连接"
msgid "Manual Setup"
msgstr "手动设置"
+# AI Translated
msgid "IP and Access Code Verified! You may close the window"
-msgstr "IP 和访问代码已验证!您可以关闭窗口"
+msgstr "IP 和访问码已验证!您可以关闭窗口"
msgid "connecting..."
msgstr "连接中..."
@@ -12686,8 +14200,9 @@ msgstr "发布登录请求失败"
msgid "The printer has already been bound."
msgstr "打印机已绑定。"
+# AI Translated
msgid "The printer mode is incorrect, please switch to LAN Only."
-msgstr "打印机模式不正确,请切换到仅局域网。"
+msgstr "打印机模式不正确,请切换到仅局域网模式。"
msgid "Connecting to printer... The dialog will close later"
msgstr "连接打印机中… 对话框稍后将自动关闭。"
@@ -12739,7 +14254,7 @@ msgstr "自动灭火系统"
# AI Translated
msgid "Filament Track Switch"
-msgstr "Filament Track Switch"
+msgstr "耗材变轨器"
msgid "Beta"
msgstr "测试版"
@@ -12765,36 +14280,30 @@ msgstr "热端&挂架"
msgid "Are you sure you want to update? This will take about 10 minutes. Do not turn off the power while the printer is updating."
msgstr "确定要更新吗?更新需要大约10分钟,在此期间请勿关闭电源。"
+# AI Translated
msgid "An important update was detected and needs to be run before printing can continue. Do you want to update now? You can also update later from 'Update firmware'."
-msgstr "检测到重要更新,需要升级后才可进行打印。你想现在就开始升级吗?你也可以稍后点击‘升级固件’完成升级。"
+msgstr "检测到重要更新,需要升级后才可进行打印。是否立即升级?您也可以稍后点击“更新固件”完成升级。"
# AI Translated
msgid "The firmware version is abnormal. Repairing and updating are required before printing. Do you want to update now? You can also update later on the printer or update next time you start Orca Slicer."
-msgstr "当前固件版本异常,需要进行修复升级,否则无法继续打印。你想现在就开始升级吗?你也可以稍后在打印机上升级,或者下一次启动 Orca Slicer 时再升级。"
+msgstr "当前固件版本异常,需要进行修复升级,否则无法继续打印。是否立即升级?您也可以稍后在打印机上升级,或者下一次启动 Orca Slicer 时再升级。"
msgid "Extension Board"
msgstr "扩展板"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "拆分为 %1% 个零件"
-
msgid "Repair finished"
msgstr "修复已完成"
-msgid "Repair failed"
-msgstr "修复失败"
-
-msgid "Repair canceled"
-msgstr "修复被取消"
-
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
msgstr "从%1%拷贝文件到%2%失败:%3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "正在下载新的供应商配置: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "正在下载新的供应商配置:%1%..."
# AI Translated
#, boost-format
@@ -12802,17 +14311,26 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "配置包:%1% 已更新到 %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "下载供应商配置失败: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "下载供应商配置失败:%1%"
+# AI Translated
msgid "Please check any unsaved changes before updating the configuration."
-msgstr "需要在配置更新之前检查没有保存的参数修改。"
+msgstr "更新配置前,请检查所有未保存的更改。"
msgid "Open G-code file:"
msgstr "打开G-code文件:"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "擦拭塔生成失败,可能是首层为空。"
+
+# AI Translated
msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
-msgstr "模型出现空层无法打印。请切掉底部或打开支撑。"
+msgstr "有对象的首层为空,无法打印。请切掉底部或开启支撑。"
#, boost-format
msgid "The object has empty layers between %1% and %2% and can’t be printed."
@@ -12828,14 +14346,68 @@ msgstr "部分模型在这些高度可能过薄,或者模型存在面片错误
msgid "Process change extrusion role G-code"
msgstr "工艺挤出类型更换 G-code"
+# AI Translated
msgid "Filament change extrusion role G-code"
-msgstr "耗材挤出类型更换 G-code"
+msgstr "耗材丝挤出类型更换 G-code"
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"导出 G-code 到 %1% 失败。\n"
+"无法打开文件进行写入。"
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "文件夹 %1% 不存在。"
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"导出 G-code 到 %1% 失败。\n"
+"磁盘是否已满?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"无法将输出的 G-code 文件从 %1% 重命名为 %2%。\n"
+"错误:%3%\n"
+"%1% 是否被占用?"
msgid "No object can be printed. It may be too small."
msgstr "没有可打印的对象。可能是因为尺寸过小。"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "所选打印机上的 IDEX/IQEX 模式“%1%”没有分配工具头,将改用主模式打印。请在打印机设置中为该模式分配工具头,或通过盘上的 IDEX/IQEX 按钮选择其他模式。"
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "此盘设置为 IDEX/IQEX 模式“%1%”,但所选打印机未定义该模式,将改用主模式打印。请通过盘上的 IDEX/IQEX 按钮选择模式,或在打印机设置中恢复该模式。"
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "缩略图值无效:"
+
+# AI Translated
msgid "Your print is very close to the priming regions. Make sure there is no collision."
-msgstr "你的指纹非常接近启动区域。确保没有碰撞。"
+msgstr "您的打印件非常靠近预挤出区域,请确保不会发生碰撞。"
msgid ""
"Failed to generate G-code for invalid custom G-code.\n"
@@ -12851,8 +14423,9 @@ msgstr "请检查自定义G-code,或者使用默认的。"
msgid "Generating G-code: layer %1%"
msgstr "正在生成G-code:层%1%"
+# AI Translated
msgid "Flush volumes matrix do not match to the correct size!"
-msgstr "冲洗量矩阵与正确的尺寸不匹配!"
+msgstr "冲刷量矩阵的尺寸不正确!"
msgid "set_accel_and_jerk() is only supported by Klipper"
msgstr "set_accel_and_jerk() 仅受 Klipper 支持"
@@ -12877,6 +14450,10 @@ msgstr "分组错误:%1% 无法放入左喷嘴"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "分组错误:%1% 无法放入右喷嘴"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "未找到有效的喷嘴。请检查喷嘴数量。"
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "手动模式下分组错误。请检查喷嘴数量或重新分组。"
@@ -12896,6 +14473,18 @@ msgstr "与墙存在多个交点,仅使用了其中一个 (%1%)"
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
msgstr "某条墙完全位于修改器内部,修改器未应用于它 (%1%)"
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "“%3%”的%1%修改器“%2%”覆盖了整条墙"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "“%3%”的%1%修改器“%2%”(共 %4% 个)覆盖了整条墙"
+
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
@@ -12910,8 +14499,48 @@ msgstr "“%2%”的修改器“%1%”(共 %3% 个)对接缝没有影响(
msgid "Seam placement may differ from expected."
msgstr "接缝位置可能与预期不同。"
+# AI Translated
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr "无法将 G-code 统计信息写入 %1%。"
+
+# AI Translated
msgid "Internal Bridge"
-msgstr "内部搭桥"
+msgstr "内部桥接"
+
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() 产生了负间距。是否将某个挤出宽度设置得过小?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() 产生了负流量。是否将某个挤出宽度设置得过小?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "计算 %1% 的线宽失败。无法获取“%2%”的值。"
+
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "提供给 Flow::with_spacing() 的间距无效,请检查层高和挤出宽度"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "所选 3mf 文件由更新版本的 %1% 保存,与当前版本不兼容。"
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "所选 3MF 包含使用较新版本 PrusaSlicer 绘制了 FDM 支撑的对象,不兼容。"
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "所选 3MF 包含使用较新版本 PrusaSlicer 绘制了接缝的对象,不兼容。"
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "所选 3MF 包含使用较新版本 PrusaSlicer 绘制了多材料的对象,不兼容。"
msgid "undefined error"
msgstr "未定义错误"
@@ -12979,8 +14608,9 @@ msgstr "文件关闭失败"
msgid "file seek failed"
msgstr "文件随机访问失败"
+# AI Translated
msgid "file stat failed"
-msgstr "文件统计信息失败"
+msgstr "获取文件信息失败"
msgid "invalid parameter"
msgstr "无效参数"
@@ -13006,6 +14636,57 @@ msgstr "验证失败"
msgid "write callback failed"
msgstr "写入回调失败"
+# AI Translated
+msgid "unknown error"
+msgstr "未知错误"
+
+# AI Translated
+# Needs human review: MMU/AFC manifold → 合流器: confirm the term Chinese users use for a multi-input filament merger (合料器?).
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "IDEX/IQEX 并行模式下进行多色打印时,每种耗材丝都必须有专用的物理挤出机。当前有两种或以上使用中的耗材丝经由打印机的物理挤出机映射(MMU/AFC 合流器)送入同一个物理工具头,从动龙门无法跟随这种切换。"
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "当前 IDEX/IQEX 模式没有定义主工具头,因此无法安排多色打印。请打开打印机设置中的 IDEX/IQEX 模式编辑器,为某个工具头分配主工具头(Primary)角色。"
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "此模式下的多色打印不属于并行打印:所有使用中的工具头都在同一个龙门上,没有第二个龙门可供复制或镜像。若要在单个龙门上多色打印,请将此盘切换为主模式;或定义一个包含第二个龙门上工具头的 IDEX/IQEX 模式。"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "IDEX/IQEX 并行模式下进行多色打印时,主工具头所在的龙门上必须有一个 Span 工具头,否则该模式没有指定同一龙门内的多色搭档。请改为只使用一种耗材丝,或切换到主模式,或打开打印机设置中的 IDEX/IQEX 模式编辑器,将主工具头所在龙门上的一个工具头标记为 Span。"
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "在此 Span 模式下,只有 %1% 参与多色打印,但耗材丝 %2% 未分配给任何工具头。请使用分配给 %1% 的耗材丝,或将此盘切换为主模式。"
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "在此 Span 模式下,只有 %1% 参与多色打印,但耗材丝 %2% 分配给了 T%3%。请使用分配给 %1% 的耗材丝,或将此盘切换为主模式。"
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"无法加载所选预设:%1%\n"
+"\t原因:%2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"加载预设文件失败:%1%\n"
+"\t原因:%2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1%离屏蔽区域太近,可能会发生碰撞。"
@@ -13022,40 +14703,101 @@ msgstr "%1%太高,会发生碰撞。"
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "模型与擦拭塔的相对位置不满足“无稀疏层”功能的要求。请调整两者的相对位置、降低模型高度,或关闭“无稀疏层”。"
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr "离不可打印区域太近,打印时可能会发生碰撞。"
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr "距离结块检测区域太近,打印时可能会发生碰撞。"
-
-msgid "Prime Tower"
-msgstr "擦拭塔"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr "离其它对象太近,可能会发生碰撞。\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr "离不可打印区域太近,会发生碰撞。\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr "距离聚集检测区域太近,会引起碰撞。\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% 距离结块检测区域太近,打印时可能会发生碰撞。"
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr "有部分超出可打印区域,无法打印。\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "擦拭塔离其他对象太近,可能会发生碰撞。\n"
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "擦拭塔离屏蔽区域太近,会发生碰撞。\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "擦拭塔距离结块检测区域太近,会发生碰撞。\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "擦拭塔离屏蔽区域太近,打印时可能会发生碰撞。"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "擦拭塔距离结块检测区域太近,打印时可能会发生碰撞。"
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "擦拭塔有部分超出可打印区域,无法打印。\n"
+
+# AI Translated
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
-msgstr "所选的喷嘴温度不兼容。每种耗材的喷嘴温度都必须落在其他耗材的推荐喷嘴温度范围内。否则可能会发生喷嘴堵塞或打印机损坏。"
+msgstr "所选的喷嘴温度不兼容。每种耗材丝的喷嘴温度都必须落在其他耗材丝的推荐喷嘴温度范围内。否则可能会发生喷嘴堵塞或打印机损坏。"
msgid "Invalid recommended nozzle temperature range. The lower bound must be lower than the upper bound."
msgstr "推荐喷嘴温度范围无效。下限必须低于上限。"
+# AI Translated
msgid "If you still want to print, you can enable the option in Preferences / Control / Slicing / Remove mixed temperature restriction."
-msgstr "如果您仍要打印,可以在 偏好设置 / 控制 / 切片 / 移除混合温度限制 中启用该选项。"
+msgstr "如果您仍要打印,可以在 偏好设置 / 控制 / 切片 / 解除混合温度限制 中启用该选项。"
msgid "No extrusions under current settings."
msgstr "根据当前设置,不会生成任何打印。"
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "IDEX/IQEX 并行模式不支持混合耗材丝。请将此盘切换为主模式。"
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX 模式“%1%”使用 T%2% 打印,但此盘的耗材丝都不在已配置的工具头上。请改用装在 T%2% 上的耗材丝,或将此盘切换为主模式。"
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX 模式“%1%”使用 T%2% 打印,但此盘的耗材丝在 %3% 上。请改用装在 T%2% 上的耗材丝,或将此盘切换为主模式。"
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "筏层与传送带打印机模式不兼容。"
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "风挡与传送带打印机模式不兼容。"
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "在传送带打印机上,Brim 与旋转花瓶模式不兼容。请禁用其中之一。"
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "传送带倾角过大,不适合使用 Brim,将不会生成 Brim。"
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "仅当传送带倾斜时才会生成 Brim。请设置传送带倾斜角度,或移除 Brim 设置。"
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "传送带打印机仅支持外侧和内侧 Brim。“自动”“圆盘”和“绘制”类型的 Brim 将按“仅外侧”打印,宽度取“Brim宽度”。"
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "“Brim与模型的间隙”会让前缘 Brim 与对象的前缘分离,而前缘 Brim 正是用来固定这条边的。使用“前缘 Brim 长度”时,请将该间隙设为 0。"
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "“前缘 Brim 长度”会使 Brim 沿传送带向每个对象前方延伸,而“自动摆放”不会为此预留空间。请在对象之间留出足够的间距。"
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "“仅前缘”Brim 仅适用于传送带打印机,在此打印机上将按普通外侧 Brim 打印。"
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "使用了渐变混合耗材丝,但“混色子层”已关闭。渐变将不会被打印。"
@@ -13063,14 +14805,29 @@ msgstr "使用了渐变混合耗材丝,但“混色子层”已关闭。渐变
msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled."
msgstr "平滑模式的延时摄影不支持在逐件打印模式下使用。"
+# AI Translated
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
-msgstr "启用“按对象”序列时,不支持结块检测。"
+msgstr "打印顺序为“逐件”时,不支持结块检测。"
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "“逐件”打印顺序下不会生成传送带冲刷塔,换料时将不会冲刷。"
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "已启用传送带冲刷塔,但项目中没有冲刷塔对象,换料时将不会冲刷。请在应用程序中打开该项目以生成冲刷塔。"
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "项目中包含多个自动管理的传送带冲刷塔。请重新加载此盘,或将传送带冲刷塔关闭后再开启,以重新生成。"
+
+# AI Translated
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
-msgstr "同时启用精确Z高度和擦拭塔可能会导致切片错误。"
+msgstr "同时启用精准 Z 高度和擦拭塔可能会导致切片错误。"
+# AI Translated
msgid "A prime tower is required for clumping detection; otherwise, there may be flaws on the model."
-msgstr "结块检测需要 Prime 塔;否则,模型可能存在缺陷。"
+msgstr "结块检测需要擦拭塔,否则模型可能存在缺陷。"
msgid "Please select \"By object\" print sequence to print multiple objects in spiral vase mode."
msgstr "请选择逐件打印以支持在旋转花瓶模式下打印多个对象。"
@@ -13082,32 +14839,38 @@ msgstr "不支持在包含多个材料的打印中使用旋转花瓶模式。"
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
msgstr "虽然对象 %1% 本身适合构建体积,但由于材料收缩补偿,它超出了最大构建体积高度。"
+# AI Translated
+#, boost-format
+msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
+msgstr "虽然对象 %1% 本身未超出构建体积,但其最后一层超过了最大构建体积高度。"
+
+# AI Translated
+msgid "You might want to reduce the size of your model or change current print settings and retry."
+msgstr "您可以缩小模型尺寸或更改当前打印设置,然后重试。"
+
#, boost-format
msgid "The object %1% exceeds the maximum build volume height."
msgstr "对象 %1% 超过了最大构建体积高度"
-#, boost-format
-msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
-msgstr "对象 %1% 自身虽然构建体积合适,但最后一层却超过了最大构建体积高度"
-
-msgid "You might want to reduce the size of your model or change current print settings and retry."
-msgstr "或许您想要缩小模型的尺寸,或者更改当前打印设置,然后重试"
-
+# AI Translated
msgid "Variable layer height is not supported with Organic supports."
-msgstr "Organic支撑不支持可变层高。"
+msgstr "有机树支撑不支持可变层高。"
# AI Translated
msgid "The wipe tower filament cannot be a mixed filament."
msgstr "擦拭塔耗材丝不能是混合耗材丝。"
+# AI Translated
msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution."
-msgstr "当启用擦拭塔时,不同的喷嘴直径和不同的耗材丝直径可能无法很好地工作。这是非常实验性的,所以请谨慎操作。"
+msgstr "启用擦拭塔时,不同的喷嘴直径和不同的耗材丝直径可能无法很好地配合。该功能仍处于实验阶段,请谨慎使用。"
+# AI Translated
msgid "The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1)."
-msgstr "当前仅支持使用相对挤出器寻址(use_relative_e_distances=1)的情况下使用擦拭塔。"
+msgstr "擦拭塔目前仅支持相对挤出机寻址(use_relative_e_distances=1)。"
+# AI Translated
msgid "Ooze prevention is only supported with the wipe tower when 'single_extruder_multi_material' is off."
-msgstr "只有当'single_extruder_multi_material'关闭时,擦拭塔才支持防渗。"
+msgstr "仅当 'single_extruder_multi_material' 关闭时,“防渗料”才支持与擦拭塔一起使用。"
msgid "The prime tower is currently only supported for the Marlin, RepRap/Sprinter, RepRapFirmware and Repetier G-code flavors."
msgstr "擦拭塔目前仅支持Marlin、RepRap/Sprinter、RepRapFirmware和Repetier G-code风格。"
@@ -13118,8 +14881,9 @@ msgstr "擦拭塔不支持在逐件打印模式下使用。"
msgid "A prime tower is not supported when adaptive layer height is on. It requires that all objects have the same layer height."
msgstr "不支持在可变层高开启时使用擦拭塔。它要求所有对象拥有相同的层高。"
+# AI Translated
msgid "A prime tower requires any “support gap” to be a multiple of layer height."
-msgstr "擦拭塔要求”支撑间隙“为层高的整数倍。"
+msgstr "擦拭塔要求“支撑间隙”为层高的整数倍。"
msgid "A prime tower requires that all objects have the same layer height."
msgstr "擦拭塔要求各个对象拥有同样的层高。"
@@ -13127,14 +14891,16 @@ msgstr "擦拭塔要求各个对象拥有同样的层高。"
msgid "A prime tower requires that all objects are printed over the same number of raft layers."
msgstr "擦拭塔要求各个对象使用同样的筏层数量。"
+# AI Translated
msgid "The prime tower is only supported for multiple objects if they are printed with the same support_top_z_distance."
-msgstr "仅当多个对象使用相同的 support_top_z_distance 打印时,才支持主塔。"
+msgstr "仅当多个对象使用相同的 support_top_z_distance 打印时,才支持擦拭塔。"
msgid "A prime tower requires that all objects are sliced with the same layer height."
msgstr "擦拭塔要求各个对象拥有同样的层高。"
+# AI Translated
msgid "The prime tower is only supported if all objects have the same variable layer height."
-msgstr "各个对象的层高存在差异,无法启用擦料塔"
+msgstr "仅当所有对象的可变层高相同时,才支持擦拭塔。"
msgid "One or more object were assigned an extruder that the printer does not have."
msgstr "为一个或多个对象分配了打印机没有的挤出机。"
@@ -13145,32 +14911,39 @@ msgstr "线宽太小"
msgid "Line width too large"
msgstr "线宽太大"
+# AI Translated
msgid "Printing with multiple extruders of differing nozzle diameters. If support is to be printed with the current filament (support_filament == 0 or support_interface_filament == 0), all nozzles have to be of the same diameter."
-msgstr "使用不同喷嘴直径的多个挤出机进行打印。如果要使用当前耗材打印支撑(support_filament == 0 或 support_interface_filament == 0),则所有喷嘴必须具有相同的直径。"
+msgstr "使用不同喷嘴直径的多个挤出机进行打印。如果要使用当前耗材丝打印支撑(support_filament == 0 或 support_interface_filament == 0),则所有喷嘴必须具有相同的直径。"
msgid "A prime tower requires that support has the same layer height as the object."
msgstr "擦拭塔要求支撑和对象采用同样的层高。"
+# AI Translated
msgid "For Organic supports, two walls are supported only with the Hollow/Default base pattern."
-msgstr "对于有机支撑,仅在空心/默认主体图案下支持双墙。"
+msgstr "对于有机树支撑,仅在空心/默认主体图案下支持双墙。"
msgid "The Lightning base pattern is not supported by this support type; Rectilinear will be used instead."
msgstr "此支撑类型不支持闪电主体图案;将改用直线图案。"
+# AI Translated
msgid "Organic support tree tip diameter must not be smaller than support material extrusion width."
-msgstr "Organic支撑树尖端直径不得小于支撑材料挤出宽度。"
+msgstr "有机树支撑的树尖端直径不得小于支撑材料挤出宽度。"
+# AI Translated
msgid "Organic support branch diameter must not be smaller than 2x support material extrusion width."
-msgstr "Organic支撑分支的直径不得小于支撑材料挤出宽度的2倍。"
+msgstr "有机树支撑的分支直径不得小于支撑材料挤出宽度的2倍。"
+# AI Translated
msgid "Organic support branch diameter must not be smaller than support tree tip diameter."
-msgstr "Organic支撑分支的直径不得小于支撑树尖端的直径。"
+msgstr "有机树支撑的分支直径不得小于支撑树尖端的直径。"
+# AI Translated
msgid "The Hollow base pattern is not supported by this support type; Rectilinear will be used instead."
-msgstr "此支撑类型不支持空心底座图案;将改用直线填充。"
+msgstr "此支撑类型不支持空心主体图案;将改用直线图案。"
+# AI Translated
msgid "Support enforcers are used but support is not enabled. Please enable support."
-msgstr "使用了支撑添加器但没有打开支撑。请打开支撑。"
+msgstr "使用了支撑生成器但没有打开支撑。请打开支撑。"
msgid "Layer height cannot exceed nozzle diameter."
msgstr "层高不能超过喷嘴直径"
@@ -13184,8 +14957,9 @@ msgstr "在 before_layer_change_gcode 中发现了 \"G92 E0\",但其中的 G
msgid "\"G92 E0\" was found in layer_change_gcode, but the G or E are not uppercase. Please change them to the exact uppercase \"G92 E0\"."
msgstr "在 layer_change_gcode 中发现了 \"G92 E0\",但其中的 G 或 E 不是大写。请将它们改为完全大写的 \"G92 E0\"。"
+# AI Translated
msgid "Relative extruder addressing requires resetting the extruder position at each layer to prevent loss of floating point accuracy. Add \"G92 E0\" to layer_gcode."
-msgstr "相对挤出机寻址要求在每层重置挤出机位置,以防止浮点精度损失。将 \"G92E0\" 添加到图层代码中。"
+msgstr "相对挤出机寻址要求在每层重置挤出机位置,以防止浮点精度损失。请将 \"G92 E0\" 添加到 layer_gcode 中。"
msgid "\"G92 E0\" was found in before_layer_change_gcode, which is incompatible with absolute extruder addressing."
msgstr "在 before_layer_change_gcode 中发现了 \"G92 E0\",这与绝对挤出机寻址不兼容。"
@@ -13193,9 +14967,10 @@ msgstr "在 before_layer_change_gcode 中发现了 \"G92 E0\",这与绝对挤
msgid "\"G92 E0\" was found in layer_change_gcode, which is incompatible with absolute extruder addressing."
msgstr "在 layer_change_gcode 中发现了 \"G92 E0\",这与绝对挤出机寻址不兼容。"
+# AI Translated
#, c-format, boost-format
msgid "Plate %d: %s does not support filament %s"
-msgstr "盘 %d: %s 不支持耗材丝 %s"
+msgstr "盘 %d:%s 不支持耗材丝 %s"
msgid "Setting the jerk speed too low could lead to artifacts on curved surfaces"
msgstr "将抖动(jerk)速度设置得太低可能会导致打印曲面时出现瑕疵"
@@ -13209,13 +14984,14 @@ msgstr ""
"Orca将自动限制抖动速度,以确保不超过打印机的速度限制。\n"
"您可以调整打印机配置中的最大抖动速度设置,以获得更高的速度。"
+# AI Translated
msgid ""
"Junction deviation setting exceeds the printer's maximum value (machine_max_junction_deviation).\n"
"Orca will automatically cap the junction deviation to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the machine_max_junction_deviation value in your printer's configuration to get higher limits."
msgstr ""
-"连接偏差设置超出打印机的最大值 (machine_max_junction_deviation)。\n"
-"Orca 将自动限制连接偏差,以确保其不会超出打印机的能力。\n"
+"结点偏差设置超出打印机的最大值 (machine_max_junction_deviation)。\n"
+"Orca 将自动限制结点偏差,以确保其不会超出打印机的能力。\n"
"您可以调整打印机配置中的 machine_max_junction_deviation 值以获得更高的限制。"
msgid ""
@@ -13236,26 +15012,33 @@ msgstr ""
"Orca将自动限制加速度,以确保不超过打印机的速度限制。\n"
"您可以调整打印机配置中的machine_max_acceleration_travel值,以获得更高的速度。"
+# AI Translated
msgid "The precise wall option will be ignored for outer-inner or inner-outer-inner wall sequences."
-msgstr "当壁序列为外内或内外内时,精确墙壁选项将被忽略。"
+msgstr "当“墙顺序”为“外墙/内墙”或“内墙/外墙/内墙”时,“精准外墙尺寸”选项将被忽略。"
msgid "The Adaptive Pressure Advance model for one or more extruders may contain invalid values."
msgstr "一个或多个挤出机的自适应 Pressure Advance 模型可能包含无效值。"
+# AI Translated
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
-msgstr "不会使用耗材收缩率,因为所用耗材的耗材收缩率不匹配。"
+msgstr "所用耗材丝的收缩率不一致,因此不会使用耗材丝收缩率。"
+
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "打印内容为空。当前打印设置下无法打印该模型。"
msgid "Generating skirt & brim"
msgstr "正在生成裙边和brim"
+# AI Translated
msgid ""
"Per-object skirts cannot fit between the objects in By object print sequence.\n"
"\n"
"Move the objects farther apart, reduce brim/skirt size, switch Skirt type to Combined, or switch Print sequence to By layer."
msgstr ""
-"在“逐件”打印顺序下,物体之间无法容纳逐物体裙边。\n"
+"在“逐件”打印顺序下,对象之间无法容纳按对象生成的裙边。\n"
"\n"
-"请增大物体之间的距离、减小 brim/裙边尺寸、将裙边类型切换为“组合”,或将打印顺序切换为“逐层”。"
+"请增大对象之间的距离、减小 brim/裙边尺寸、将裙边类型切换为“合并”,或将打印顺序切换为“逐层”。"
msgid "Exporting G-code"
msgstr "正在导出G-code"
@@ -13263,6 +15046,17 @@ msgstr "正在导出G-code"
msgid "Generating G-code"
msgstr "正在生成G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "处理来自上一个 3MF 文件的 G-code 文件 %1% 失败。"
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "传送带冲刷塔无法容纳全部冲刷体积:共有 %1% mm³ 无法冲刷(最差层:高度 %3% 处的 %2% mm³)。打印可能出现混色。请增大传送带冲刷塔的宽度,或减小冲刷体积。"
+
msgid "Processing of the filename_format template failed."
msgstr "处理文件名格式模板失败。"
@@ -13275,29 +15069,36 @@ msgstr "可打印区域"
msgid "Extruder printable area"
msgstr "挤出机可打印区域"
+# AI Translated
msgid "Support parallel printheads"
-msgstr "支持并联打印头"
+msgstr "支持并联工具头"
+# AI Translated
msgid "Enable printer settings for machines that can use multiple printheads in parallel."
-msgstr "为可并联使用多个打印头的机器启用打印机设置。"
+msgstr "为可并联使用多个工具头的机器启用打印机设置。"
+# AI Translated
msgid "Parallel printheads count"
-msgstr "并联打印头数量"
+msgstr "并联工具头数量"
+# AI Translated
msgid "Set the number of parallel printheads for machines like OrangeStorm Giga printer."
-msgstr "设置并联打印头的数量,适用于 OrangeStorm Giga 等打印机。"
+msgstr "设置并联工具头的数量,适用于 OrangeStorm Giga 等打印机。"
+# AI Translated
msgid "Parallel printheads bed exclude areas"
-msgstr "并联打印头的热床排除区域"
+msgstr "并联工具头的热床排除区域"
+# AI Translated
msgid "Ordered list of bed exclude areas by parallel printhead count. Item 1 applies to one printhead, item 2 to two printheads, and so on. Leave an item empty for no excluded area."
-msgstr "按并联打印头数量排列的热床排除区域有序列表。第 1 项适用于一个打印头,第 2 项适用于两个打印头,依此类推。将某项留空表示无排除区域。"
+msgstr "按并联工具头数量排列的热床排除区域有序列表。第 1 项适用于一个工具头,第 2 项适用于两个工具头,依此类推。将某项留空表示无排除区域。"
msgid "Excluded bed area"
msgstr "不可打印区域"
+# AI Translated
msgid "Unprintable area in XY plane. For example, X1 Series printers use the front left corner to cut filament during filament change. The area is expressed as polygon by points in following format: \"XxY, XxY, ...\""
-msgstr "XY平面上的不可打印区域。例如,X1系列打印机在换料过程中,会使用左前角区域来切断耗材丝。这个多边形区域由以下格式的点表示:“XxY,XxY,…”"
+msgstr "XY平面上的不可打印区域。例如,X1系列打印机在换料过程中,会使用左前角区域来切断耗材丝。这个多边形区域由以下格式的点表示:\"XxY, XxY, ...\""
msgid "Bed custom texture"
msgstr "自定义热床纹理"
@@ -13308,14 +15109,16 @@ msgstr "自定义热床模型"
msgid "Elephant foot compensation"
msgstr "象脚补偿"
+# AI Translated
msgid "This shrinks the first layer on the build plate to compensate for elephant foot effect."
-msgstr "将首层收缩用于补偿象脚效应"
+msgstr "收缩热床上的首层,以补偿象脚效应。"
msgid "Elephant foot compensation layers"
msgstr "象脚补偿层数"
+# AI Translated
msgid "The number of layers on which the elephant foot compensation will be active. The first layer will be shrunk by the elephant foot compensation value, then the next layers will be linearly shrunk less, up to the layer indicated by this value."
-msgstr "象脚补偿将处于活动状态的层数。第一层将按象脚补偿值缩小,然后接下来的层将线性缩小,直到该值指示的层。"
+msgstr "象脚补偿生效的层数。首层按象脚补偿值收缩,之后各层的收缩量线性递减,直到此值指定的层。"
msgid "Elephant foot layers density"
msgstr "象脚补偿层密度"
@@ -13353,11 +15156,13 @@ msgstr "导入模型时自动旋转到指定的朝向"
msgid "Printer preset names"
msgstr "打印机预设名"
+# AI Translated
msgid "Use 3rd-party print host"
-msgstr "启用第三方网络连接"
+msgstr "使用第三方打印主机"
+# AI Translated
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
-msgstr "允许通过第三方网络连接控制BambuLab的打印机"
+msgstr "允许通过第三方打印主机控制 Bambu Lab 打印机。"
msgid "Use 3MF instead of G-code"
msgstr "使用 3MF 代替 G-code"
@@ -13368,23 +15173,27 @@ msgstr "如果打印机接受 3MF 文件作为打印任务,请启用此选项
msgid "Printer Agent"
msgstr "打印机代理"
+# AI Translated
msgid "Select the network agent implementation for printer communication."
-msgstr "选择打印机通信的网络代理实施。"
+msgstr "选择用于打印机通信的网络代理实现。"
msgid "Hostname, IP or URL"
msgstr "主机名,IP或者URL"
+# AI Translated
msgid "Orca Slicer can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance. Print host behind HAProxy with basic auth enabled can be accessed by putting the user name and password into the URL in the following format: https://username:password@your-octopi-address/"
-msgstr "Orca Slicer可以将G-code文件上传到打印机主机。此字段应包含打印机主机实例的主机名、IP地址或URL。启用基本身份验证的Print host可以通过将用户名和密码放入以下格式的URL中来访问:https://username:password@your-octopi-address/"
+msgstr "Orca Slicer可以将G-code文件上传到打印机主机。此字段应包含打印机主机实例的主机名、IP地址或URL。对于位于 HAProxy 之后并启用了基本身份验证的打印主机,可按以下格式将用户名和密码写入URL来访问:https://username:password@your-octopi-address/"
msgid "Device UI"
msgstr "设备用户界面"
+# AI Translated
msgid "Specify the URL of your device user interface if it's not same as print_host."
-msgstr "如果打印机的设备用户界面的URL不同,请在此指定。"
+msgstr "如果设备用户界面的URL与 print_host 不同,请在此指定。"
+# AI Translated
msgid "API Key / Password"
-msgstr "API秘钥/密码"
+msgstr "API密钥/密码"
msgid "Orca Slicer can upload G-code files to a printer host. This field should contain the API Key or the password required for authentication."
msgstr "Orca Slicer可以将G-code文件上传到打印机主机。此字段应包含用于身份验证的API密钥或密码。"
@@ -13419,15 +15228,16 @@ msgstr "与物理打印机相关的预设名称"
msgid "Authorization Type"
msgstr "授权类型"
+# AI Translated
msgid "API key"
-msgstr "API秘钥"
+msgstr "API密钥"
msgid "HTTP digest"
msgstr "HTTP摘要"
# AI Translated
msgid "Configuration for the plugin capabilities this preset uses, overriding the global Capabilities configuration. Stored as a raw JSON array and edited through the dialog behind the button, never typed in directly."
-msgstr "此预设使用的插件功能的配置,会覆盖全局功能(Capabilities)配置。以原始 JSON 数组形式存储,并通过按钮后面的对话框进行编辑,切勿直接输入。"
+msgstr "此预设使用的插件功能的配置,会覆盖全局功能(Capabilities)配置。以原始 JSON 数组形式存储,通过按钮打开的对话框编辑,请勿直接输入。"
msgid "Avoid crossing walls"
msgstr "避免跨越外墙"
@@ -13447,8 +15257,9 @@ msgstr "mm 或 %"
msgid "Other layers"
msgstr "其它层"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack."
-msgstr "除首层外的其他层的热床温度。0值表示该耗材丝不支持在Cool Plate SuperTack上打印。"
+msgstr "除首层外的其他层的热床温度。0值表示该耗材丝不支持在低温打印热床(超强粘附)上打印。"
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate."
msgstr "非首层热床温度。0值表示这个耗材丝不支持低温打印热床"
@@ -13468,11 +15279,13 @@ msgstr "非首层热床温度。0值表示这个耗材丝不支持纹理PEI热
msgid "First layer"
msgstr "首层"
+# AI Translated
msgid "First layer bed temperature"
-msgstr "首层床温"
+msgstr "首层热床温度"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Cool Plate SuperTack."
-msgstr "初始层的床温。值 0 表示耗材不支持在 Cool Plate SuperTack 上打印。"
+msgstr "首层热床温度。0值表示这个耗材丝不支持在低温打印热床(超强粘附)上打印。"
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Cool Plate."
msgstr "首层热床温度。0值表示这个耗材丝不支持低温打印热床"
@@ -13498,8 +15311,9 @@ msgstr "默认热床类型"
msgid "Default bed type for the printer (supports both numeric and string format)."
msgstr "打印机的默认热床类型(支持数字和字符串格式)。"
+# AI Translated
msgid "First layer print sequence"
-msgstr "第一层打印顺序"
+msgstr "首层打印顺序"
msgid "Other layers print sequence"
msgstr "其他层打印顺序"
@@ -13507,27 +15321,34 @@ msgstr "其他层打印顺序"
msgid "The number of other layers print sequence"
msgstr "其他层的打印顺序数量"
+# AI Translated
msgid "Other layers filament sequence"
-msgstr "其他层的耗材打印顺序"
+msgstr "其他层的耗材丝打印顺序"
msgid "This G-code is inserted at every layer change before the Z lift."
msgstr "在每次换层抬升z高度之前插入这段G-code"
+# AI Translated
msgid "Bottom shell layers"
-msgstr "底部壳体层数"
+msgstr "底部外壳层数"
+# AI Translated
msgid "This is the number of solid layers of bottom shell, including the bottom surface layer. When the thickness calculated by this value is thinner than bottom shell thickness, the bottom shell layers will be increased."
-msgstr "底部壳体实心层层数,包括底面。当由该层数计算的厚度小于底部壳体厚度,切片时会增加底部壳体的层数"
+msgstr "底部外壳实心层层数,包括底面。当由该层数计算的厚度小于底部外壳厚度,切片时会增加底部外壳的层数。"
+# AI Translated
msgid "Bottom shell thickness"
-msgstr "底部壳体厚度"
+msgstr "底部外壳厚度"
+# AI Translated
msgid "The number of bottom solid layers is increased when slicing if the thickness calculated by bottom shell layers is thinner than this value. This can avoid having too thin a shell when layer height is small. 0 means that this setting is disabled and the thickness of the bottom shell is determined simply by the number of bottom shell layers."
-msgstr "如果由底部壳体层数算出的厚度小于这个数值,那么切片时将自动增加底部壳体层数。这能够避免当层高很小时,底部壳体过薄。0表示关闭这个设置,同时底部壳体的厚度完全由底部壳体层数决定"
+msgstr "如果由底部外壳层数算出的厚度小于这个数值,那么切片时将自动增加底部外壳层数。这能够避免当层高很小时,底部外壳过薄。0表示关闭这个设置,同时底部外壳的厚度完全由底部外壳层数决定。"
+# AI Translated
msgid "Apply gap fill"
-msgstr "启用间隙填充"
+msgstr "启用缝隙填充"
+# AI Translated
msgid ""
"Enables gap fill for the selected solid surfaces. The minimum gap length that will be filled can be controlled from the filter out tiny gaps option below.\n"
"\n"
@@ -13542,16 +15363,25 @@ msgid ""
"\n"
"However this is not advised, as gap fill between perimeters is contributing to the model's strength. For models where excessive gap fill is generated between perimeters, a better option would be to switch to the arachne wall generator and use this option to control whether the cosmetic top and bottom surface gap fill is generated."
msgstr ""
-"为选定的实体曲面启用间隙填充。可以通过下面的过滤掉微小间隙选项来控制要填充的最小间隙长度。 选项:\n"
-"1. 无处不在:对顶部、底部和内部固体表面进行间隙填充,以获得最大强度\n"
-"2. 顶部和底部表面:仅对顶部和底部表面应用间隙填充,平衡打印速度,减少固体填充中过度挤出的可能性,并确保顶部和底部表面没有针孔间隙\n"
-"3. 无处:禁用所有实体填充区域的间隙填充 请注意,如果使用经典的周长生成器,如果全宽线无法容纳在周长之间,则也可能在周长之间生成间隙填充。周边间隙填充不受此设置控制。 如果您希望删除所有间隙填充(包括生成的经典周长),请将过滤掉微小间隙的值设置为一个较大的数字,例如 999999。 然而,不建议这样做,因为周边之间的间隙填充有助于提高模型的强度。对于在周边之间生成过多间隙填充的模型,更好的选择是切换到蜘蛛壁生成器并使用此选项来控制是否生成装饰性顶部和底部表面间隙填充。"
+"为选定的实心表面启用缝隙填充。可通过下方的“忽略微小间隙”选项控制要填充的最小间隙长度。\n"
+"\n"
+"选项:\n"
+"1. 所有地方:对顶面、底面和内部实心表面进行缝隙填充,以获得最大强度\n"
+"2. 顶面和底面:仅对顶面和底面进行缝隙填充,兼顾打印速度,减少实心填充中可能出现的过挤出,并确保顶面和底面没有针孔间隙\n"
+"3. 不填充:禁用所有实心填充区域的缝隙填充\n"
+"\n"
+"请注意,如果使用经典墙生成器,当墙之间放不下一条全宽线时,也可能在墙之间生成缝隙填充。这种墙间缝隙填充不受此设置控制。\n"
+"\n"
+"如果您希望去除所有缝隙填充(包括经典墙生成器生成的),请将“忽略微小间隙”设为一个很大的数值,例如 999999。\n"
+"\n"
+"但不建议这样做,因为墙之间的缝隙填充有助于提高模型强度。对于在墙之间生成过多缝隙填充的模型,更好的做法是切换到 Arachne 墙生成器,并用此选项控制是否生成顶面和底面的装饰性缝隙填充。"
msgid "Everywhere"
msgstr "所有地方"
+# AI Translated
msgid "Top and bottom surfaces"
-msgstr "仅顶层和底层"
+msgstr "顶面和底面"
msgid "Nowhere"
msgstr "不填充"
@@ -13565,21 +15395,23 @@ msgstr "启用此选项以允许单独针对悬垂、内部桥接和外部桥接
msgid "Overhangs and external bridges fan speed"
msgstr "悬垂和外部桥接风扇速度"
+# AI Translated
msgid ""
"Use this part cooling fan speed when printing bridges or overhang walls with an overhang threshold that exceeds the value set in the 'Overhangs cooling threshold' parameter above. Increasing the cooling specifically for overhangs and bridges can improve the overall print quality of these features.\n"
"\n"
"Please note, this fan speed is clamped on the lower end by the minimum fan speed threshold set above. It is also adjusted upwards up to the maximum fan speed threshold when the minimum layer time threshold is not met."
msgstr ""
-"当打印桥接结构或悬垂墙时,如果悬垂程度超过上述“悬垂冷却阈值”所设定的值,则使用此部件冷却风扇速度。专门针对悬垂和桥接加大冷却力度,有助于提升这些特征整体的打印质量。\n"
+"当打印桥接结构或悬垂墙时,如果悬垂程度超过上述“悬垂冷却激活阈值”所设定的值,则使用此部件冷却风扇速度。专门针对悬垂和桥接加大冷却力度,有助于提升这些特征整体的打印质量。\n"
"\n"
"请注意,此风扇速度的下限受前面设置的最小风扇速度阈值限制;当打印层时间未达到最小层时间阈值时,会相应上调至最大风扇速度阈值。"
msgid "Overhang cooling activation threshold"
msgstr "悬垂冷却激活阈值"
+# AI Translated
#, no-c-format, no-boost-format
msgid "When the overhang exceeds this specified threshold, force the cooling fan to run at the 'Overhang Fan Speed' set below. This threshold is expressed as a percentage, indicating the portion of each line's width that is unsupported by the layer beneath it. Setting this value to 0% forces the cooling fan to run for all outer walls, regardless of the overhang degree."
-msgstr "当悬垂超过此指定阈值时,强制部件冷却风扇按照下方设置的“悬垂风扇速度”运转。该阈值以百分比表示,指示每条走线宽度中未被下层支撑的部分。将此值设置为0%即使在任何悬垂条件下也会使风扇运转于所有外壁。"
+msgstr "当悬垂超过此阈值时,强制部件冷却风扇以下方设置的“悬垂和外部桥接风扇速度”运转。该阈值以百分比表示,指每条线宽度中未被下层支撑的比例。设为0%时,无论悬垂程度如何,所有外墙都会强制开启冷却风扇。"
msgid "External bridge infill direction"
msgstr "外部桥接填充方向"
@@ -13637,6 +15469,7 @@ msgstr "启用后,桥接角度值将被加到自动计算出的桥接方向上
msgid "External bridge density"
msgstr "外部桥接密度"
+# AI Translated
msgid ""
"Controls the density (spacing) of external bridge lines.\n"
"Theoretically, 100% means a solid bridge, but due to the tendency of bridge extrusions to sag, 100% may not be sufficient.\n"
@@ -13649,7 +15482,7 @@ msgid ""
" - Pros: Can create a string-like first layer. Faster and with better cooling because there is more space for air to circulate around the extruded bridge.\n"
" - Cons: May lead to sagging and poorer surface finish."
msgstr ""
-"控制外部桥接线的密度(间距)。默认值为 100%。\n"
+"控制外部桥接线的密度(间距)。\n"
"理论上 100% 意味着实心桥接,但由于桥接挤出物容易下垂,100% 可能并不足够。\n"
"\n"
"- 高于 100% 的密度(推荐最大 125%):\n"
@@ -13691,9 +15524,11 @@ msgstr ""
"\n"
"此选项与“在填充上方增加第二层内部桥接”选项结合使用时效果尤佳,可在挤出实心填充之前进一步改善桥接。"
+# AI Translated
msgid "Bridge flow ratio"
-msgstr "桥接流量"
+msgstr "桥接流量比例"
+# AI Translated
msgid ""
"This value governs the thickness of the external (visible) bridge layer.\n"
"Values above 1.0: Increase the amount of material while maintaining line spacing. This can improve line contact and strength.\n"
@@ -13705,24 +15540,27 @@ msgstr ""
"大于 1.0 的值:在保持线间距的同时增加材料用量。这可以改善线之间的接触和强度。\n"
"小于 1.0 的值:在调整线间距以保持接触的同时减少材料用量。这可以改善下垂。\n"
"\n"
-"实际使用的桥接流量是将此值乘以耗材流量比,以及(如已设置)对象的流量比计算得出的。"
+"实际使用的桥接流量是将此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例计算得出的。"
+# AI Translated
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
-"桥接线的线宽。如果以百分比表示,将根据喷嘴直径计算。\n"
-"建议与较高的桥接密度或桥接流量比配合使用。\n"
+"桥接线的线宽。如果以%表示,将根据喷嘴直径计算。\n"
+"建议与较高的桥接密度或桥接流量比例配合使用。\n"
"\n"
"最大值为 100% 或喷嘴直径。\n"
-"如果设置为 0,线宽将与内部实心填充宽度一致。"
+"如果设置为 0,线宽将与内部实心填充宽度一致,厚桥则与喷嘴直径一致。"
+# AI Translated
msgid "Internal bridge flow ratio"
-msgstr "内部搭桥流量比例"
+msgstr "内部桥接流量比例"
+# AI Translated
msgid ""
"This value governs the thickness of the internal bridge layer. This is the first layer over sparse infill so increasing it may increase strength and upper layer quality.\n"
"Values above 1.0: Increase the amount of material while maintaining line spacing. This can improve line contact and strength.\n"
@@ -13734,147 +15572,209 @@ msgstr ""
"大于 1.0 的值:在保持线间距的同时增加材料用量。这可以改善线之间的接触和强度。\n"
"小于 1.0 的值:在调整线间距以保持接触的同时减少材料用量。这可以改善下垂。\n"
"\n"
-"实际使用的桥接流量是将此值乘以耗材流量比,以及(如已设置)对象的流量比计算得出的。"
+"实际使用的桥接流量是将此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例计算得出的。"
+# AI Translated
msgid "Top surface flow ratio"
-msgstr "顶部表面流量比例"
+msgstr "顶面流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for top solid infill. You can decrease it slightly to have smooth surface finish.\n"
"\n"
"The actual top surface flow used is calculated by multiplying this value with the filament flow ratio, and if set, the object's flow ratio."
-msgstr "该因素影响顶部固体填充的材料量。您可以稍微减少它以获得光滑的表面光洁度。 实际使用的顶面流量是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算的。"
+msgstr ""
+"此系数影响顶部实心填充的材料用量。您可以略微减小此值,以获得光滑的表面。\n"
+"\n"
+"实际使用的顶面流量为此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例。"
+# AI Translated
msgid "Bottom surface flow ratio"
-msgstr "底部表面流量比例"
+msgstr "底面流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for bottom solid infill.\n"
"\n"
"The actual bottom solid infill flow used is calculated by multiplying this value with the filament flow ratio, and if set, the object's flow ratio."
-msgstr "该因素影响底部固体填充的材料量。 实际使用的底部固体填充流量是通过将该值乘以细丝流量比以及对象的流量比(如果已设置)来计算的。"
+msgstr ""
+"此系数影响底部实心填充的材料用量。\n"
+"\n"
+"实际使用的底部实心填充流量为此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例。"
+# AI Translated
msgid "Set other flow ratios"
-msgstr "设置其他流量比"
+msgstr "设置其他流量比例"
+# AI Translated
msgid "Change flow ratios for other extrusion path types."
-msgstr "更改其他挤出路径类型的流量比。"
+msgstr "更改其他挤出路径类型的流量比例。"
+# AI Translated
msgid "First layer flow ratio"
-msgstr "第一层流量比"
+msgstr "首层流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material on the first layer for the extrusion path roles listed in this section.\n"
"\n"
"For the first layer, the actual flow ratio for each path role (does not affect brims and skirts) will be multiplied by this value."
-msgstr "此因素会影响本节中列出的挤出路径角色的第一层上的材料量。 对于第一层,每个路径角色的实际流量比(不影响Brim和裙边)将乘以该值。"
+msgstr ""
+"此系数影响首层上本节所列各挤出类型的材料用量。\n"
+"\n"
+"在首层,各挤出类型的实际流量比例(不影响 Brim 和裙边)都会再乘以此值。"
+# AI Translated
msgid "Outer wall flow ratio"
-msgstr "外壁流量比"
+msgstr "外墙流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for outer walls.\n"
"\n"
"The actual outer wall flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "该因素影响外墙材料的用量。 实际使用的外壁流量是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算的。"
+msgstr ""
+"此系数影响外墙的材料用量。\n"
+"\n"
+"实际使用的外墙流量为此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例。"
+# AI Translated
msgid "Inner wall flow ratio"
-msgstr "内壁流量比"
+msgstr "内墙流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for inner walls.\n"
"\n"
"The actual inner wall flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "该因素影响内壁材料的用量。 实际使用的内壁流量是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算的。"
+msgstr ""
+"此系数影响内墙的材料用量。\n"
+"\n"
+"实际使用的内墙流量为此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例。"
+# AI Translated
msgid "Overhang flow ratio"
-msgstr "悬垂流量比"
+msgstr "悬垂流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for overhangs.\n"
"\n"
"The actual overhang flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "该因素影响悬垂材料的数量。 实际使用的悬垂流量是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算的。"
+msgstr ""
+"此系数影响悬垂的材料用量。\n"
+"\n"
+"实际使用的悬垂流量为此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例。"
+# AI Translated
msgid "Sparse infill flow ratio"
-msgstr "稀疏填充流量比"
+msgstr "稀疏填充流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for sparse infill.\n"
"\n"
"The actual sparse infill flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "该因素影响稀疏填充的材料量。 实际使用的稀疏填充流量是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算的。"
+msgstr ""
+"此系数影响稀疏填充的材料用量。\n"
+"\n"
+"实际使用的稀疏填充流量为此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例。"
+# AI Translated
msgid "Internal solid infill flow ratio"
-msgstr "内部固体填充流动比"
+msgstr "内部实心填充流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for internal solid infill.\n"
"\n"
"The actual internal solid infill flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "该因素影响内部固体填充材料的数量。 实际使用的内部固体填充流量是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算的。"
+msgstr ""
+"此系数影响内部实心填充的材料用量。\n"
+"\n"
+"实际使用的内部实心填充流量为此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例。"
+# AI Translated
msgid "Gap fill flow ratio"
-msgstr "间隙填充流量比"
+msgstr "缝隙填充流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for filling the gaps.\n"
"\n"
"The actual gap filling flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "该因素影响填充间隙的材料量。 实际使用的间隙填充流量是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算的。"
+msgstr ""
+"此系数影响缝隙填充的材料用量。\n"
+"\n"
+"实际使用的缝隙填充流量为此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例。"
+# AI Translated
msgid "Support flow ratio"
-msgstr "支撑流量比"
+msgstr "支撑流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for support.\n"
"\n"
"The actual support flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "该因素影响支撑材料的数量。 实际使用的支撑流量是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算的。"
+msgstr ""
+"此系数影响支撑的材料用量。\n"
+"\n"
+"实际使用的支撑流量为此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例。"
msgid "Support interface flow ratio"
msgstr "支撑面流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for the support interface.\n"
"\n"
"The actual support interface flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "该因素影响支撑界面的材料量。 实际使用的支撑界面流量是通过将该值乘以耗材流量比以及对象的流量比(如果已设置)来计算的。"
+msgstr ""
+"此系数影响支撑面的材料用量。\n"
+"\n"
+"实际使用的支撑面流量为此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例。"
msgid "Precise wall"
msgstr "精准外墙尺寸"
+# AI Translated
msgid "Improve shell precision by adjusting outer wall spacing. This also improves layer consistency. NOTE: This option will be ignored for outer-inner or inner-outer-inner wall sequences."
-msgstr "通过调整墙壁间距来提高外墙精度,同时改善层间一致性。注意:当壁序列为外内或内外内时,此选项将被忽略。"
+msgstr "通过调整外墙间距来提高外壳精度,同时改善层间一致性。注意:当墙顺序为“外墙/内墙”或“内墙/外墙/内墙”时,此选项将被忽略。"
msgid "Only one wall on top surfaces"
msgstr "顶面单层墙"
+# AI Translated
msgid "Use only one wall on flat top surfaces, to give more space to the top infill pattern."
-msgstr "顶面只使用单层墙,从而更多的空间能够使用顶部填充图案"
+msgstr "平坦顶面只使用一层墙,为顶面填充图案留出更多空间。"
msgid "One wall threshold"
msgstr "单层墙阈值"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"If a top surface has to be printed and it's partially covered by another layer, it won't be considered at a top layer where its width is below this value. This can be useful to not let the 'one perimeter on top' trigger on surface that should be covered only by perimeters. This value can be a mm or a % of the perimeter extrusion width.\n"
"Warning: If enabled, artifacts can be created if you have some thin features on the next layer, like letters. Set this setting to 0 to remove these artifacts."
msgstr ""
-"如果顶面需要打印,但是它的一部分被其它层覆盖,那么当它的宽度小于这个值时,它不会被认为是顶层。这个设置可以用于避免在狭窄顶面上触发“顶面单层墙”。这个值可以是毫米或线宽的百分比。\n"
-"警告:如果启用,可能会在下一层上产生一些薄的特征,比如字母。将此设置设置为0可以消除这些伪影。"
+"如果需要打印顶面,而它有一部分被另一层覆盖,那么宽度小于此值的部分不会被视为顶层。这样可以避免“顶面单层墙”在本应只由墙覆盖的表面上触发。此值可以是毫米,或墙线宽的百分比(%)。\n"
+"警告:启用后,如果下一层有细小特征(如字母),可能会产生瑕疵。将此值设为0可消除这些瑕疵。"
msgid "Only one wall on first layer"
msgstr "首层仅单层墙"
+# AI Translated
msgid "Use only one wall on first layer, to give more space to the bottom infill pattern."
-msgstr "首层只使用单层墙,从而更多的空间能够使用底部填充图案"
+msgstr "首层只使用一层墙,为底面填充图案留出更多空间。"
+# AI Translated
msgid "Extra perimeters on overhangs"
-msgstr "悬垂上的额外周长"
+msgstr "悬垂处额外墙"
+# AI Translated
msgid "Create additional perimeter paths over steep overhangs and areas where bridges cannot be anchored."
-msgstr "在陡峭的悬垂和无法固定桥接的区域上创建额外的周长路径。"
+msgstr "在陡峭的悬垂和无法锚固桥接的区域上生成额外的墙路径。"
msgid "Reverse on even"
msgstr "反转偶数层悬垂方向"
@@ -13882,18 +15782,21 @@ msgstr "反转偶数层悬垂方向"
msgid "Overhang reversal"
msgstr "悬垂反转"
+# AI Translated
msgid ""
"Extrude perimeters that have a part over an overhang in the reverse direction on even layers. This alternating pattern can drastically improve steep overhangs.\n"
"\n"
"This setting can also help reduce part warping due to the reduction of stresses in the part walls."
msgstr ""
-"在偶数层上,将悬垂部分的走线反转。这种交替的走线模式可以大大改善陡峭的悬垂。\n"
+"在偶数层上,以相反方向挤出有部分位于悬垂上方的墙。这种交替模式可以大幅改善陡峭的悬垂。\n"
"\n"
-"这个设置也可以帮助减少零件变形,因为零件墙壁的应力减少了。"
+"此设置还能降低零件墙中的应力,从而有助于减少零件翘曲。"
+# AI Translated
msgid "Reverse only internal perimeters"
-msgstr "仅反转内部墙壁"
+msgstr "仅反转内墙"
+# AI Translated
msgid ""
"Apply the reverse perimeters logic only on internal perimeters.\n"
"\n"
@@ -13901,15 +15804,16 @@ msgid ""
"\n"
"For this setting to be the most effective, it is recommended to set the Reverse Threshold to 0 so that all internal walls print in alternating directions on even layers irrespective of their overhang degree."
msgstr ""
-"仅在内墙上应用反转墙壁逻辑。\n"
+"仅在内墙上应用反转墙逻辑。\n"
"\n"
-"这个设置大大减少了零件的应力,因为它们现在是交替方向分布的。这应该减少零件变形,同时保持外墙的质量。这个功能对于易变形的材料非常有用,比如ABS/ASA,也对于弹性耗材,比如TPU和丝光PLA。它还可以帮助减少支撑上的悬垂区域的变形。\n"
+"此设置可大幅降低零件应力,因为应力被分散到交替的方向上。这应能减少零件翘曲,同时保持外墙质量。此功能对易翘曲的材料(如ABS/ASA)以及弹性耗材丝(如TPU和丝光PLA)非常有用,还有助于减少支撑上方悬空区域的翘曲。\n"
"\n"
-"为了使这个设置最有效,建议将反转阈值设置为0,这样所有的内墙都会在偶数层交替打印。"
+"为使此设置发挥最大效果,建议将“反转阈值”设为0,这样无论悬垂程度如何,所有内墙都会在偶数层上以交替方向打印。"
msgid "Bridge counterbore holes"
msgstr "沉孔搭桥"
+# AI Translated
msgid ""
"This option creates bridges for counterbore holes, allowing them to be printed without support. Available modes include:\n"
"1. None: No bridge is created\n"
@@ -13917,9 +15821,9 @@ msgid ""
"3. Sacrificial Layer: A full sacrificial bridge layer is created"
msgstr ""
"此选项为沉孔创建搭桥,使其可以在无支撑的情况下打印。可用的模式包括:\n"
-"1. 无:不创建搭桥。\n"
-"2. 部分搭桥:仅部分不支撑的区域将被搭桥。\n"
-"3. 牺牲层:创建一个完整的牺牲层。"
+"1. 无:不创建搭桥\n"
+"2. 部分搭桥:仅对部分无支撑区域搭桥\n"
+"3. 牺牲层:创建一个完整的牺牲搭桥层"
msgid "Partially bridged"
msgstr "部分搭桥"
@@ -13933,25 +15837,28 @@ msgstr "反转阈值"
msgid "Overhang reversal threshold"
msgstr "悬垂反转阈值"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Number of mm the overhang need to be for the reversal to be considered useful. Can be a % of the perimeter width.\n"
"Value 0 enables reversal on every even layers regardless.\n"
"When Detect overhang wall is not enabled, this option is ignored and reversal happens on every even layers regardless."
msgstr ""
-"判定悬垂反转需要的值(毫米),可以是线宽的百分比。\n"
-"值0表示在每个偶数层上都启用反转。\n"
-"当未启用检测悬垂时,此选项将被忽略,反转将在每个偶数层上发生。"
+"悬垂需要达到多少毫米,反转才被视为有用。可以是墙线宽的百分比(%)。\n"
+"值为0时,每个偶数层都会反转。\n"
+"未启用“识别悬垂外墙”时,此选项将被忽略,每个偶数层都会反转。"
msgid "Slow down for overhangs"
msgstr "悬垂降速"
+# AI Translated
msgid "Enable this option to slow down when printing overhangs. The speeds for different overhang percentages are set below."
-msgstr "启用此选项将降低不同悬垂程度的走线的打印速度"
+msgstr "启用此选项可在打印悬垂时降低速度。不同悬垂百分比的速度在下方设置。"
msgid "Slow down for curled perimeters"
msgstr "翘边降速"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
@@ -13967,34 +15874,35 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
-"启用此选项可在墙壁可能向上翘曲的区域降低打印速度。\n"
+"启用此选项可在墙可能向上翘曲的区域降低打印速度。\n"
"例如,在打印诸如 Benchy 船头这类尖角处的悬垂时,会施加额外的减速,从而减少在多层中逐渐累积的翘曲。\n"
"\n"
-"通常建议开启此选项,除非您的打印机冷却足够强劲,或打印速度足够慢,以至于不会发生墙壁翘曲。\n"
+"通常建议开启此选项,除非您的打印机冷却足够强劲,或打印速度足够慢,以至于不会发生墙翘曲。 \n"
"如果以较高的外墙速度打印,此参数在减速时可能会引入墙面瑕疵,因为打印速度的差异可能过大,导致挤出机无法跟上所需的流量变化。\n"
"这些瑕疵的根本原因很可能是 Pressure Advance (PA) 调校略有偏差,尤其是在搭配较长的 PA 平滑时间时。\n"
"\n"
"启用此选项时的建议:\n"
"1. 将 Pressure Advance 的平滑时间降低到 0.015 - 0.02,使挤出机能够快速响应速度变化。\n"
"2. 提高最低打印速度,以限制减速的幅度并减小快慢段之间的差异。\n"
-"3. 如果仍出现瑕疵,启用挤出速率平滑 (ERS) 以进一步平滑流量过渡。\n"
+"3. 如果仍出现瑕疵,启用平滑挤出率 (ERS) 以进一步平滑流量过渡。\n"
"\n"
-"注意:启用此选项后,悬垂墙壁会被当作悬垂处理,这意味着即使悬垂墙壁是桥接的一部分,也会应用悬垂速度。\n"
-"例如,当墙壁 100% 悬垂、下方没有墙壁支撑时,将应用 100% 悬垂速度。"
+"注意:启用此选项后,悬垂墙会被当作悬垂处理,这意味着即使悬垂墙是桥接的一部分,也会应用悬垂速度。\n"
+"例如,当墙 100% 悬垂、下方没有墙支撑时,将应用 75% 的悬垂速度,并受桥接速度限制。"
msgid "mm/s or %"
msgstr "mm/s 或 %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
"外部可见桥接挤出的速度。\n"
"\n"
-"此外,如果禁用翘曲周长减速或启用经典悬垂模式,它将是支撑少于13%的悬垂墙的打印速度,无论它们是桥接还是悬垂的一部分。"
+"此外,如果禁用翘边降速,它将是支撑少于13%的悬垂墙的打印速度,无论它们是桥接还是悬垂的一部分。"
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
msgstr "内部桥接的速度。如果该值以百分比表示,将基于桥接速度计算。默认值为150%。"
@@ -14002,11 +15910,56 @@ msgstr "内部桥接的速度。如果该值以百分比表示,将基于桥接
msgid "This is the distance from the model to the outermost brim line."
msgstr "从模型到最外圈brim走线的距离"
+# AI Translated
+msgid "Leading brim length"
+msgstr "前缘 Brim 长度"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"仅适用于传送带打印机。将 Brim 沿传送带向对象前方延伸,覆盖其接触区域中每一条朝下坡方向的边,包括对象首次接触传送带的位置,以及之后才落到传送带上的岛屿。这条前置 Brim 带会先于对象铺在传送带上,使前缘有已经粘牢的部分可以依附。\n"
+"\n"
+"在传送带表面上测量,并在“Brim宽度”的基础上叠加:Brim 在对象前方延伸的距离为“Brim与模型的间隙”+“前缘 Brim 长度”+“Brim宽度”。请将“Brim与模型的间隙”设为 0,否则这条前置 Brim 带将接触不到它要固定的对象。\n"
+"\n"
+"在倾斜的传送带上,每层铺设一条 Brim,因此最终 Brim 片的厚度由流量而非层高决定,可通过“Brim流量比例”调节。\n"
+"\n"
+"设置为 0 以禁用。"
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "额外 Brim 宽度"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"仅适用于传送带打印机。沿横跨传送带的方向将 Brim 向两侧加宽,而不会使其在对象前方或后方进一步延伸。当零件沿长度方向需要比单靠“Brim宽度”更强的附着力时使用。\n"
+"\n"
+"在传送带表面上测量,并在“Brim宽度”的基础上叠加:Brim 在对象两侧延伸的距离为“Brim与模型的间隙”+“Brim宽度”+“额外 Brim 宽度”。若要让 Brim 向对象前方延伸,请改用“前缘 Brim 长度”。\n"
+"\n"
+"设置为 0 以禁用。"
+
msgid "Brim type"
msgstr "Brim类型"
+# AI Translated
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
-msgstr "该参数控制在模型的外侧和/或内侧生成brim。自动是指自动分析和计算边框的宽度。"
+msgstr "该参数控制在模型的外侧和/或内侧生成 Brim。“自动”表示自动分析并计算 Brim 宽度。"
+
+# AI Translated
+msgid "Leading edge only"
+msgstr "仅前缘"
msgid "Brim-object gap"
msgstr "Brim与模型的间隙"
@@ -14014,9 +15967,11 @@ msgstr "Brim与模型的间隙"
msgid "This creates a gap between the innermost brim line and the object and can make the brim easier to remove."
msgstr "在brim和模型之间设置间隙,能够让brim更容易剥离"
+# AI Translated
msgid "Brim flow ratio"
-msgstr "Brim流量比"
+msgstr "Brim流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for brims.\n"
"\n"
@@ -14026,9 +15981,9 @@ msgid ""
msgstr ""
"此系数影响Brim的材料用量。\n"
"\n"
-"实际使用的Brim流量是将此值乘以耗材流量比,以及(如已设置)对象的流量比计算得出的。\n"
+"实际使用的Brim流量是将此值乘以耗材丝流量比例,以及(如已设置)对象的流量比例计算得出的。\n"
"\n"
-"注意:所得的值不会受首层流量比的影响。"
+"注意:所得的值不会受首层流量比例的影响。"
msgid "Brim follows compensated outline"
msgstr "Brim遵循补偿轮廓"
@@ -14040,8 +15995,8 @@ msgid ""
"\n"
"If your current setup already works well, enabling it may be unnecessary and can cause the brim to fuse with upper layers."
msgstr ""
-"启用后,Brim 将与应用象脚补偿之后的第一层轮廓几何对齐。\n"
-"此选项适用于象脚补偿会明显改变第一层轮廓的情况。\n"
+"启用后,Brim 将与应用象脚补偿之后的首层轮廓几何对齐。\n"
+"此选项适用于象脚补偿会明显改变首层轮廓的情况。\n"
"\n"
"如果您当前的设置已经运行良好,则可能没有必要启用它,因为它可能导致 Brim 与上层融合。"
@@ -14051,26 +16006,31 @@ msgstr "合并Brim"
msgid "Combine multiple brims into one when they are close to each other. This can improve brim adhesion."
msgstr "当多个Brim彼此靠近时,将它们合并为一个。这可以改善Brim附着力。"
+# AI Translated
msgid "Brim ears"
-msgstr "圆盘"
+msgstr "耳状 Brim"
+# AI Translated
msgid "Only draw brim over the sharp edges of the model."
-msgstr "仅在模型尖锐Brim启用brim。"
+msgstr "仅在模型的尖锐边缘处生成 Brim。"
+# AI Translated
msgid "Brim ear max angle"
-msgstr "圆盘最大角度"
+msgstr "耳状 Brim最大角度"
+# AI Translated
msgid ""
"Maximum angle to let a brim ear appear.\n"
"If set to 0, no brim will be created.\n"
"If set to ~180, brim will be created on everything but straight sections."
msgstr ""
-"让圆盘出现的最大角度。\n"
-"如果设置为0,则不会创建圆盘。\n"
-"如果设置为约180,除直线部分外,其他部分都会创建圆盘。"
+"让耳状 Brim出现的最大角度。\n"
+"如果设置为0,则不会创建耳状 Brim。\n"
+"如果设置为约180,除直线部分外,其他部分都会创建耳状 Brim。"
+# AI Translated
msgid "Brim ear detection radius"
-msgstr "圆盘检测半径"
+msgstr "耳状 Brim检测半径"
msgid ""
"The geometry will be decimated before detecting sharp angles. This parameter indicates the minimum length of the deviation for the decimation.\n"
@@ -14081,7 +16041,7 @@ msgstr ""
# AI Translated
msgid "Brim ears outer only"
-msgstr "仅外轮廓生成圆盘"
+msgstr "仅外轮廓生成耳状 Brim"
# AI Translated
msgid "Generate mouse ears only on the outer contour of the model, excluding holes and enclosed sections."
@@ -14093,11 +16053,13 @@ msgstr "向上兼容的机器"
msgid "Condition"
msgstr "条件"
+# AI Translated
msgid "A Boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
-msgstr "使用活动打印机配置文件的配置值的布尔表达式。如果此表达式计算为 true,则此配置文件将被视为与活动打印机配置文件兼容。"
+msgstr "使用活动打印机配置文件的配置值的布尔表达式。如果此表达式计算为 true,则此配置文件将被视为与活动打印机配置文件兼容。"
+# AI Translated
msgid "A Boolean expression using the configuration values of an active print profile. If this expression evaluates to true, this profile is considered compatible with the active print profile."
-msgstr "使用活动打印配置文件的配置值的布尔表达式。如果此表达式计算为 true,则此配置文件将被视为与活动打印配置文件兼容。"
+msgstr "使用活动打印配置文件的配置值的布尔表达式。如果此表达式计算为 true,则此配置文件将被视为与活动打印配置文件兼容。"
msgid "This determines the print sequence, allowing you to print layer-by-layer or object-by-object."
msgstr "打印顺序,逐层打印或者逐件打印"
@@ -14129,7 +16091,7 @@ msgstr ""
"全部比较(最短路径):评估所有策略并采用最短的一种。对象实例的顺序在整个打印任务中只确定一次,而各个岛的排序则逐层确定,因此不同层可能采用不同的策略。切片速度略慢。\n"
"蛇形:逐行往复的蛇形遍历,并通过 2-opt 进行优化。非常适合由大量小零件组成的规则阵列。\n"
"\n"
-"当同一层中使用多种耗材丝或工具时,优先减少换料次数:对象会先按耗材丝分组,本设置仅决定每个耗材丝分组内实例的顺序,因此整体顺序看起来可能不是整个热床上的最短路径。"
+"当同一层中使用多种耗材丝或工具头时,优先减少换料次数:对象会先按耗材丝分组,本设置仅决定每个耗材丝分组内实例的顺序,因此整体顺序看起来可能不是整个热床上的最短路径。"
msgid "As object list"
msgstr "按对象列表中的顺序"
@@ -14142,8 +16104,9 @@ msgstr "全部比较(最短路径)"
msgid "Snake"
msgstr "蛇形"
+# AI Translated
msgid "Slow printing down for better layer cooling"
-msgstr "降低打印速度 以得到更好的冷却"
+msgstr "降低打印速度以获得更好的层冷却"
msgid "Enable this option to slow printing speed down to ensure that the final layer time is not shorter than the layer time threshold in \"Max fan speed threshold\", so that the layer can be cooled for a longer time. This can improve the quality for small details."
msgstr "勾选这个选项,将降低打印速度,使得最终的层打印时间不小于\"最大风扇速度阈值\"里的层时间阈值,从而使得该层获得更久的冷却。这能够改善尖顶和小细节的冷却效果"
@@ -14173,17 +16136,20 @@ msgstr "mm/s² 或 %"
msgid "Acceleration of bridges. If the value is expressed as a percentage (e.g. 50%), it will be calculated based on the outer wall acceleration."
msgstr "桥接加速度。如果该值以百分比(例如50%)表示,则将根据外墙加速度进行计算。"
+# AI Translated
msgid "Default filament profile"
-msgstr "默认耗材配置"
+msgstr "默认耗材丝配置"
+# AI Translated
msgid "Default filament profile when switching to this machine profile."
-msgstr "该机器配置的默认耗材配置"
+msgstr "切换到此打印机预设时默认使用的耗材丝预设。"
msgid "Default process profile"
msgstr "默认切片配置"
+# AI Translated
msgid "Default process profile when switching to this machine profile."
-msgstr "该机器的默认切片配置"
+msgstr "切换到此打印机预设时默认使用的工艺预设。"
msgid "Activate air filtration"
msgstr "启用空气过滤/排气"
@@ -14206,8 +16172,9 @@ msgstr "打印过程中排气风扇的速度。此速度将覆盖耗材丝自定
msgid "Speed of exhaust fan after printing completes."
msgstr "打印完成后排气风扇的速度"
+# AI Translated
msgid "No cooling for the first"
-msgstr "关闭冷却对前"
+msgstr "关闭冷却的前"
msgid "Turn off all cooling fans for the first few layers. This can be used to improve build plate adhesion."
msgstr "对开始的一些层关闭所有的部件冷却风扇。通常关闭首层冷却用来获得更好的热床粘接"
@@ -14218,8 +16185,9 @@ msgstr "不支撑桥接"
msgid "This disables supporting bridges, which decreases the amount of support required. Bridges can usually be printed directly without support over a reasonable distance."
msgstr "不对整个桥接面进行支撑,否则支撑体会很大。不是很长的桥接通常可以无支撑直接打印。"
+# AI Translated
msgid "Thick external bridges"
-msgstr "外部搭桥用厚桥"
+msgstr "外部桥接加厚"
msgid ""
"If enabled, bridge extrusion uses a line height equal to the nozzle diameter.\n"
@@ -14230,8 +16198,9 @@ msgstr ""
"这会增加桥接的强度和可靠性,允许更长的跨度,但可能使外观变差。\n"
"如果禁用,桥接可能看起来更好,但通常只在较短的跨度上才可靠。"
+# AI Translated
msgid "Thick internal bridges"
-msgstr "内部搭桥用厚桥"
+msgstr "内部桥接加厚"
msgid ""
"If enabled, internal bridge extrusion uses a line height equal to the nozzle diameter.\n"
@@ -14242,9 +16211,11 @@ msgstr ""
"这会在稀疏填充上方打印时增加内部桥接的强度和可靠性,但可能使外观变差。\n"
"如果禁用,内部桥接可能看起来更好,但在稀疏填充上方的可靠性可能较低。"
+# AI Translated
msgid "Extra bridge layers (beta)"
-msgstr "额外桥层(测试版)"
+msgstr "额外桥接层(试验)"
+# AI Translated
msgid ""
"This option enables the generation of an extra bridge layer over internal and/or external bridges.\n"
"\n"
@@ -14260,13 +16231,13 @@ msgid ""
msgstr ""
"此选项启用在内部和/或外部桥接上生成额外桥接层。\n"
"\n"
-"额外桥接层有助于改善桥接的外观和可靠性,因为实心填充得到了更好的支撑。这对于快速打印机特别有用,因为桥接和实心填充的速度差异很大。额外的桥接层可以减少顶面的枕化效应,同时减少外部桥接层与其周围周长的分离。\n"
+"额外桥接层有助于改善桥接的外观和可靠性,因为实心填充得到了更好的支撑。这对于快速打印机特别有用,因为桥接和实心填充的速度差异很大。额外的桥接层可以减少顶面的枕化效应,同时减少外部桥接层与其周围墙的分离。\n"
"\n"
"通常建议将此设置为至少'仅外部桥接',除非发现切片模型存在特定问题。\n"
"\n"
"选项:\n"
"1. 禁用 - 不生成第二桥接层。这是默认设置,出于兼容性目的而设置\n"
-"2. 仅外部桥接 - 仅为面向外部的桥接生成第二桥接层。请注意,比设置的周长数更短或更窄的小桥接将被跳过,因为它们不会从第二桥接层中受益。如果生成,第二桥接层将与第一桥接层平行挤出,以增强桥接强度\n"
+"2. 仅外部桥接 - 仅为面向外部的桥接生成第二桥接层。请注意,比设置的墙层数更短或更窄的小桥接将被跳过,因为它们不会从第二桥接层中受益。如果生成,第二桥接层将与第一桥接层平行挤出,以增强桥接强度\n"
"3. 仅内部桥接 - 仅为稀疏填充上的内部桥接生成第二桥接层。请注意,内部桥接计入模型的顶部外壳层数。第二内部桥接层将尽可能垂直于第一层挤出。如果在同一岛屿中存在多个具有不同桥接角度的区域,则该岛屿的最后一个区域将被选为角度参考\n"
"4. 全部应用 - 为内部和面向外部的桥接生成第二桥接层\n"
@@ -14299,37 +16270,47 @@ msgstr ""
"2. 有限过滤 - 在严重倾斜的表面上创建内部桥接,同时避免不必要的桥接。这对大多数困难的模型效果良好\n"
"3. 不过滤 - 在每个潜在的内部悬垂上创建内部桥接。此选项对严重倾斜的顶面模型有用;但是,在大多数情况下,它会创建太多不必要的桥接"
-msgid "Limited filtering"
-msgstr "有限保留"
+msgid "Filter"
+msgstr "过滤"
+# AI Translated
+msgid "Limited filtering"
+msgstr "有限过滤"
+
+# AI Translated
msgid "No filtering"
-msgstr "保留全部"
+msgstr "不过滤"
msgid "Max bridge length"
msgstr "最大桥接长度"
+# AI Translated
msgid "This is the maximum length of bridges that don't need support. Set it to 0 if you want all bridges to be supported, and set it to a very large value if you don't want any bridges to be supported."
-msgstr "不需要支撑的桥接的最大长度。如果希望支持所有桥接,请将其设置为0;如果不希望支持任何桥接,请将其设置为非常大的值。"
+msgstr "不需要支撑的桥接的最大长度。如果希望所有桥接都有支撑,请将其设置为0;如果不希望任何桥接有支撑,请将其设置为非常大的值。"
msgid "End G-code"
msgstr "结尾G-code"
-msgid "Add end G-Code when finishing the entire print."
-msgstr "所有打印结束时的结尾G-code"
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
+msgstr "完成整个打印时添加的结尾 G-code。"
# AI Translated
msgid "Between Object G-code"
msgstr "对象之间G-code"
+# AI Translated
msgid "Insert G-code between objects. This parameter will only come into effect when you print your models object by object."
-msgstr "在对象之间插入 G-code。此参数仅在逐个打印模型物体时生效。"
+msgstr "在对象之间插入 G-code。此参数仅在逐个打印对象时生效。"
+# AI Translated
msgid "Add end G-code when finishing the printing of this filament."
-msgstr "结束使用该耗材打印时的结尾G-code"
+msgstr "结束使用该耗材丝打印时的结尾G-code"
msgid "Ensure vertical shell thickness"
msgstr "确保垂直外壳厚度"
+# AI Translated
msgid ""
"Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)\n"
"None: No solid infill will be added anywhere. Caution: Use this option carefully if your model has sloped surfaces\n"
@@ -14340,7 +16321,7 @@ msgid ""
msgstr ""
"在倾斜表面附近添加实心填充,以保证垂直外壳的厚度(顶部+底部实心层)\n"
"无:任何地方都不会添加实心填充。注意:如果您的模型有倾斜表面,请谨慎使用此选项\n"
-"仅关键区域:避免为墙壁添加实心填充\n"
+"仅关键区域:避免为墙添加实心填充\n"
"适量:仅为严重倾斜的表面添加实心填充\n"
"全部:为所有适当的倾斜表面添加实心填充\n"
"默认值为全部。"
@@ -14388,11 +16369,9 @@ msgstr "八角螺旋"
msgid "Top surface density"
msgstr "顶面密度"
+# AI Translated
msgid "Density of top surface layer. A value of 100% creates a fully solid, smooth top layer. Reducing this value results in a textured top surface, according to the chosen top surface pattern. A value of 0% will result in only the walls on the top layer being created. Intended for aesthetic or functional purposes, not to fix issues such as over-extrusion."
-msgstr ""
-"顶层表面的密度。\n"
-"100% 的值会创建一个完全实心、平滑的顶面。降低此值会根据所选的顶面图案生成有纹理的顶面。0% 的值将只生成顶层的墙。\n"
-"此选项仅为美观或功能性目的,而不是为了解决过量挤出等问题。"
+msgstr "顶面层的密度。100% 会生成完全实心、平滑的顶层。降低此值会根据所选的顶面图案生成带纹理的顶面。0% 时顶层只生成墙。此选项用于美观或功能目的,而非用于解决过挤出等问题。"
# AI Translated
msgid "Top surface expansion"
@@ -14457,13 +16436,13 @@ msgstr "除了桥接外的底面填充的走线图案"
msgid "Bottom surface density"
msgstr "底面密度"
+# AI Translated
msgid ""
"Density of the bottom surface layer. Intended for aesthetic or functional purposes, not to fix issues such as over-extrusion.\n"
"WARNING: Lowering this value may negatively affect bed adhesion."
msgstr ""
-"底层表面的密度\n"
-"此功能是为了美观或功能性目的,而是为了解决过量挤出等问题。\n"
-"警告:降低此值会对热床粘接力产生负面影响。"
+"底面层的密度。此选项用于美观或功能目的,而非用于解决过挤出等问题。\n"
+"警告:降低此值可能会对热床粘接产生负面影响。"
# AI Translated
msgid "Top surface fill order"
@@ -14475,7 +16454,7 @@ msgid ""
"Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n"
"Default uses shortest-path ordering, which may run in either direction."
msgstr ""
-"使用以中心为起点的图案(同心、螺旋内缩、阿基米德和弦、八角螺旋)时,顶面的填充方向。\n"
+"使用以中心为基准的图案(同心、螺旋内缩、阿基米德和弦、八角螺旋)时,顶面的填充方向。\n"
"向外从表面中心开始,多余的材料会被推向边缘,在那里最不显眼。向内从边缘开始,以中心处的紧密曲线结束。\n"
"默认使用最短路径排序,方向可能是两者中的任意一种。"
@@ -14489,27 +16468,31 @@ msgid ""
"Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n"
"Default uses shortest-path ordering, which may run in either direction."
msgstr ""
-"使用以中心为起点的图案(同心、螺旋内缩、阿基米德和弦、八角螺旋)时,底面的填充方向。\n"
+"使用以中心为基准的图案(同心、螺旋内缩、阿基米德和弦、八角螺旋)时,底面的填充方向。\n"
"向内让每个表面从较宽的外侧曲线开始,可改善首层在热床上的粘接,尤其当中心处的紧密曲线不易粘牢时。向外从中心开始,将多余的材料推向边缘。\n"
"默认使用最短路径排序,方向可能是两者中的任意一种。"
msgid "Internal solid infill pattern"
msgstr "内部实心填充图案"
+# AI Translated
msgid "Line pattern of internal solid infill. if the detect narrow internal solid infill be enabled, the concentric pattern will be used for the small area."
-msgstr "内部实心填充的线型图案。如果启用了检测狭窄的内部实心填充,将使用同心圆图案来填充小区域。"
+msgstr "内部实心填充的线型图案。如果启用了“识别狭窄的内部实心填充”,小区域将使用同心图案填充。"
+# AI Translated
msgid "Line width of outer wall. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "外墙的线宽。如果以%表示,它将基于喷嘴直径来计算"
+msgstr "外墙的线宽。如果以%表示,将根据喷嘴直径计算。"
+# AI Translated
msgid "This is the printing speed for the outer walls of parts. These are generally printed slower than inner walls for higher quality."
-msgstr "外墙的打印速度。它通常使用比内壁速度慢的速度,以获得更好的质量。"
+msgstr "外墙的打印速度。它通常使用比内墙速度慢的速度,以获得更好的质量。"
msgid "Small perimeters"
msgstr "微小部位"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "此设置将影响半径小于等于small_perimeter_threshold(通常是孔洞)的围墙的速度。如果以百分比表示(例如:80%),则将根据上面的外壁速度设置进行计算。设置为零时为自动。"
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "此设置将影响半径小于等于 small_perimeter_threshold 的墙(通常是孔洞)的速度。如果以百分比表示(例如:80%),则将根据上面的外墙速度设置进行计算。"
msgid "Small perimeters threshold"
msgstr "微小部位周长阈值"
@@ -14522,8 +16505,8 @@ msgid "Small support perimeters"
msgstr "支撑微小部位"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "与“微小部位”相同,但用于支撑。此单独设置将影响面积 <= `small_support_perimeter_threshold` 的支撑速度。如果以百分比表示(例如:80%),将基于上方的支撑或支撑接触面速度设置进行计算。设为零表示自动。"
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "与“微小部位”相同,但用于支撑。此单独设置将影响面积 <= `small_support_perimeter_threshold` 的支撑速度。如果以百分比表示(例如:80%),将基于上方的支撑或支撑面速度设置进行计算。"
# AI Translated
msgid "Small support perimeters threshold"
@@ -14536,22 +16519,23 @@ msgstr "此项设置支撑微小部位周长的阈值。默认阈值为 0mm。"
msgid "Walls printing order"
msgstr "墙顺序"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
"内墙和外墙的打印顺序。\n"
"\n"
-"使用内墙/外墙以获得最佳悬垂效果。这是因为在打印时,悬垂的墙可以粘附到相邻的围墙上。但是,这个选项会导致外墙的表面质量稍微降低,因为外墙被内墙挤压。\n"
+"使用内墙/外墙以获得最佳悬垂效果。这是因为在打印时,悬垂的墙可以粘附到相邻的墙上。但是,这个选项会导致外墙的表面质量稍微降低,因为外墙被内墙挤压。\n"
"\n"
-"使用内墙/外墙/内墙以获得最佳的外部表面质量和尺寸精度,因为外墙不会受内墙的影响但是,悬垂性能会降低,因为没有内墙来支撑打印外墙。此选项要求至少3层墙壁才能生效,因为它首先从第3个墙壁开始打印内墙,然后是外墙,最后是第一个内墙。在大多数情况下,此选项建议使用而不是外/内选项。\n"
+"使用内墙/外墙/内墙以获得最佳的外部表面质量和尺寸精度,因为外墙不会受内墙的影响。但是,悬垂性能会降低,因为没有内墙来支撑打印外墙。此选项要求至少3层墙才能生效,因为它首先从第3个墙开始打印内墙,然后是外墙,最后是第一个内墙。在大多数情况下,建议使用此选项而不是外墙/内墙选项。\n"
"\n"
-"使用外/内以获得与内/外/内选项相同的外部墙质量和尺寸精度优势。但是,由于新层的第一次挤出是在可见表面上开始的,因此z缝隙看起来不那么一致。"
+"使用外墙/内墙以获得与内墙/外墙/内墙选项相同的外墙质量和尺寸精度优势。但是,由于新层的第一次挤出是在可见表面上开始的,因此 Z 接缝看起来不那么一致。"
msgid "Inner/Outer"
msgstr "内墙/外墙"
@@ -14565,18 +16549,21 @@ msgstr "内墙/外墙/内墙"
msgid "Print infill first"
msgstr "首先打印填充"
+# AI Translated
msgid ""
"Order of wall/infill. When the tickbox is unchecked the walls are printed first, which works best in most cases.\n"
"\n"
"Printing infill first may help with extreme overhangs as the walls have the neighbouring infill to adhere to. However, the infill will slightly push out the printed walls where it is attached to them, resulting in a worse external surface finish. It can also cause the infill to shine through the external surfaces of the part."
msgstr ""
-"墙/填充的顺序。当未启用时,首先打印墙壁,这在大多数情况下都是最好的。\n"
+"墙/填充的顺序。当未启用时,首先打印墙,这在大多数情况下都是最好的。\n"
"\n"
-"首先打印填充可能有助于极端悬垂,因为墙壁有相邻的填充物可以粘附。但是,填充物会在附着在墙壁上的地方轻微地挤出打印的墙壁,导致外部表面质量更差。它还会导致填充物透过零件的外部表面。"
+"首先打印填充可能有助于极端悬垂,因为墙有相邻的填充物可以粘附。但是,填充物会在附着在墙上的地方轻微地挤出打印的墙,导致外部表面质量更差。它还会导致填充物透过零件的外部表面。"
+# AI Translated
msgid "Wall loop direction"
-msgstr "围墙打印方向"
+msgstr "墙打印方向"
+# AI Translated
msgid ""
"The direction which the contour wall loops are extruded when looking down from the top.\n"
"Holes are printed in the opposite direction to the contour to maintain alignment with layers whose contour polygons are incomplete and change direction, also partially forming the contour of a hole.\n"
@@ -14586,7 +16573,7 @@ msgstr ""
"从上往下看时,轮廓墙环的挤出方向。\n"
"孔洞以与轮廓相反的方向打印,以便与那些轮廓多边形不完整、会改变方向(同时也部分构成孔洞轮廓)的层保持对齐。\n"
"\n"
-"如果启用了螺旋花瓶模式,此选项将被禁用。"
+"如果启用了旋转花瓶模式,此选项将被禁用。"
msgid "Counter clockwise"
msgstr "逆时针"
@@ -14596,17 +16583,18 @@ msgstr "顺时针"
# AI Translated
msgid "Distance to rod"
-msgstr "到杆的距离"
+msgstr "到横杆的距离"
# AI Translated
msgid "Horizontal distance of the nozzle tip to the rod's farther edge. Used for collision avoidance in by-object printing."
-msgstr "喷嘴尖端到杆较远一侧边缘的水平距离。用于逐件打印时的避障。"
+msgstr "喷嘴尖端到横杆较远一侧边缘的水平距离。用于逐件打印时的避障。"
msgid "Height to rod"
msgstr "到横杆高度"
+# AI Translated
msgid "Distance from the nozzle tip to the lower rod. Used for collision avoidance in by-object printing."
-msgstr "喷嘴尖端到下方滑杆的距离。用于在逐件打印中避免碰撞。"
+msgstr "喷嘴尖端到下方横杆的距离。用于在逐件打印中避免碰撞。"
msgid "Height to lid"
msgstr "到顶盖高度"
@@ -14626,14 +16614,16 @@ msgstr "喷嘴尖端的高度。"
msgid "Bed mesh min"
msgstr "网床最小点"
+# AI Translated
msgid "This option sets the min point for the allowed bed mesh area. Due to the probe's XY offset, most printers are unable to probe the entire bed. To ensure the probe point does not go outside the bed area, the minimum and maximum points of the bed mesh should be set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not exceed these min/max points. This information can usually be obtained from your printer manufacturer. The default setting is (-99999, -99999), which means there are no limits, thus allowing probing across the entire bed."
-msgstr "此选项设置了允许的网床探测区域的最小点。由于探针的XY偏移,大多数打印机无法探测整个打印床。为了确保探针不会超出床的范围,应适当设置网床的最小和最大点。逆戟鲸切片确保adaptive_bed_mesh_min/adaptive_bed_mesh_max值不超过这些最小/最大点。这些信息通常可以从您的打印机制造商那里获得。默认设置为(-99999, -99999),这意味着没有限制,因此允许在整个床上进行探测。"
+msgstr "此选项设置允许的网床区域的最小点。由于探针存在XY偏移,大多数打印机无法探测整个热床。为确保探测点不超出热床范围,应适当设置网床的最小点和最大点。OrcaSlicer 会确保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出这些最小/最大点。此信息通常可从打印机制造商处获得。默认设置为 (-99999, -99999),表示没有限制,允许探测整个热床。"
msgid "Bed mesh max"
msgstr "网床最大点"
+# AI Translated
msgid "This option sets the max point for the allowed bed mesh area. Due to the probe's XY offset, most printers are unable to probe the entire bed. To ensure the probe point does not go outside the bed area, the minimum and maximum points of the bed mesh should be set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not exceed these min/max points. This information can usually be obtained from your printer manufacturer. The default setting is (99999, 99999), which means there are no limits, thus allowing probing across the entire bed."
-msgstr "此选项设置了允许的网床探测区域的最大点。由于探针的XY偏移,大多数打印机无法探测整个打印床。为了确保探针不会超出床的范围,应适当设置网床的最小和最大点。逆戟鲸切片确保adaptive_bed_mesh_min/adaptive_bed_mesh_max值不超过这些最小/最大点。这些信息通常可以从您的打印机制造商那里获得。默认设置为(99999, 99999),这意味着没有限制,因此允许在整个床上进行探测。"
+msgstr "此选项设置允许的网床区域的最大点。由于探针存在XY偏移,大多数打印机无法探测整个热床。为确保探测点不超出热床范围,应适当设置网床的最小点和最大点。OrcaSlicer 会确保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出这些最小/最大点。此信息通常可从打印机制造商处获得。默认设置为 (99999, 99999),表示没有限制,允许探测整个热床。"
msgid "Probe point distance"
msgstr "网格点间距离"
@@ -14663,14 +16653,15 @@ msgstr "挤出机偏移"
msgid "The material may have volumetric change after switching between molten and crystalline states. This setting changes all extrusion flow of this filament in G-code proportionally. The recommended value range is between 0.95 and 1.05. You may be able to tune this value to get a nice flat surface if there is slight overflow or underflow."
msgstr "材料经过融化后凝固可能会产生体积差异。这个设置会等比例改变 G-code 中该耗材丝所有挤出走线的挤出量。推荐的范围为0.95到1.05。发现大平层模型的顶面有轻微的缺料或多料时,或许可以尝试微调这个参数。"
+# AI Translated
msgid ""
"The material may have volumetric change after switching between molten and crystalline states. This setting changes all extrusion flow of this filament in G-code proportionally. The recommended value range is between 0.95 and 1.05. You may be able to tune this value to get a nice flat surface if there is slight overflow or underflow.\n"
"\n"
"The final object flow ratio is this value multiplied by the filament flow ratio."
msgstr ""
-"材料在熔融和结晶状态之间切换后可能会发生体积变化。此设置会等比例改变此耗材在G-code中的所有挤出流量。推荐值范围在0.95到1.05之间。如果存在轻微的溢出或欠流,您可以调整此值以获得平整的表面。\n"
+"材料在熔融和结晶状态之间转变后可能会发生体积变化。此设置会等比例改变此耗材丝在G-code中的所有挤出流量。推荐值范围在0.95到1.05之间。如果存在轻微的过挤出或欠挤出,您可以调整此值以获得平整的表面。\n"
"\n"
-"最终的对象流量比率是此值乘以耗材流量比率。"
+"最终的对象流量比例是此值乘以耗材丝流量比例。"
msgid "Enable pressure advance"
msgstr "启用 Pressure Advance"
@@ -14685,6 +16676,7 @@ msgstr "Pressure Advance(Klipper),即 Marlin 中的 Linear Advance 系数
msgid "Enable adaptive pressure advance (beta)"
msgstr "启用自适应 Pressure Advance(试验)"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"With increasing print speeds (and hence increasing volumetric flow through the nozzle) and increasing accelerations, it has been observed that the effective PA value typically decreases. This means that a single PA value is not always 100% optimal for all features and a compromise value is usually used that does not cause too much bulging on features with lower flow speed and accelerations while also not causing gaps on faster features.\n"
@@ -14693,11 +16685,18 @@ msgid ""
"\n"
"When enabled, the pressure advance value above is overridden. However, a reasonable default value above is strongly recommended to act as a fallback and for when tool changing.\n"
"\n"
-msgstr "With increasing print speeds (and hence increasing volumetric flow through the nozzle) and increasing accelerations, it has been observed that the effective PA value typically decreases.这意味着单个 PA 值并不总是对所有特征都是 100% 最佳的,并且通常使用折衷值,该折衷值不会在具有较低流速和加速度的特征上造成过多的凸出,同时也不会在较快的特征上造成间隙。 此功能旨在通过根据打印时的体积流速和加速度对打印机挤出系统的响应进行建模来解决此限制。在内部,它生成一个拟合模型,可以推断出任何给定体积流速和加速度所需的 Pressure Advance,然后根据当前的打印条件将其发送到打印机。 启用后,上面的 Pressure Advance 值将被覆盖。然而,强烈建议使用上述合理的默认值作为后备以及更换工具时的选择。\n"
+msgstr ""
+"据观察,随着打印速度(以及由此带来的喷嘴体积流量)和加速度的提高,有效的 PA 值通常会降低。这意味着单一的 PA 值并非对所有特征都是 100% 最优的,通常只能使用一个折中值,既不会在流速和加速度较低的特征上造成过多凸起,也不会在较快的特征上造成间隙。\n"
+"\n"
+"此功能旨在解决这一限制:根据打印时的体积流速和加速度,对打印机挤出系统的响应进行建模。它会在内部生成一个拟合模型,可以推算出任意体积流速和加速度下所需的 Pressure Advance,然后根据当前打印条件发送给打印机。\n"
+"\n"
+"启用后,上方的 Pressure Advance 值将被覆盖。但仍强烈建议在上方设置一个合理的默认值,作为后备值,并在切换工具头时使用。\n"
+"\n"
msgid "Adaptive pressure advance measurements (beta)"
msgstr "自适应 Pressure Advance 参数(试验)"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Add sets of pressure advance (PA) values, the volumetric flow speeds and accelerations they were measured at, separated by a comma. One set of values per line. For example\n"
@@ -14711,18 +16710,20 @@ msgid ""
"2. Take note of the optimal PA value for each volumetric flow speed and acceleration. You can find the flow number by selecting flow from the color scheme drop down and move the horizontal slider over the PA pattern lines. The number should be visible at the bottom of the page. The ideal PA value should be decreasing the higher the volumetric flow is. If it is not, confirm that your extruder is functioning correctly. The slower and with less acceleration you print, the larger the range of acceptable PA values. If no difference is visible, use the PA value from the faster test\n"
"3. Enter the triplets of PA values, Flow and Accelerations in the text box here and save your filament profile."
msgstr ""
-"添加 Pressure Advance (PA) 值组、测量时的体积流速和加速度,并用逗号分隔。每行一组值。例如\n"
+"添加 Pressure Advance (PA) 值组,以及测量这些值时的体积流速和加速度,用逗号分隔。每行一组值。例如\n"
"0.04,3.96,3000\n"
"0.033,3.96,10000\n"
"0.029,7.91,3000\n"
-"0.026,7.91,10000 如何校准:\n"
-"1. 每个加速度值至少以 3 个速度运行 Pressure Advance 测试。建议至少针对外部周边的速度、内部周边的速度以及配置文件中的最快特征打印速度(通常是稀疏或实心填充)运行测试。然后以相同的速度运行它们,以获得最慢和最快的打印加速度,并且不超过 Klipper 输入整形器给出的建议最大加速度\n"
-"2. 记下每个体积流速和加速度的最佳 PA 值。您可以通过从配色方案下拉列表中选择流量并将水平滑块移动到 PA 图案线上来找到流量编号。该数字应该在页面底部可见。理想的 PA 值应该随着体积流量的增加而减小。如果不是,请确认您的挤出机运行正常。打印速度越慢且加速度越小,可接受的 PA 值范围就越大。如果没有明显差异,请使用更快测试中的 PA 值\n"
-"3. 在此处的文本框中输入 PA 值、流量和加速度的三元组并保存耗材丝配置文件"
+"0.026,7.91,10000\n"
+"\n"
+"如何校准:\n"
+"1. 对每个加速度值,至少以 3 个速度运行 Pressure Advance 测试。建议至少测试外墙速度、内墙速度以及配置文件中最快的特征打印速度(通常是稀疏填充或实心填充)。然后以最慢和最快的打印加速度对相同的速度运行测试,加速度不要超过 Klipper 输入整形给出的建议最大加速度\n"
+"2. 记下每个体积流速和加速度下的最佳 PA 值。在配色方案下拉列表中选择流量,然后将水平滑块移到 PA 图案线上,即可找到流量数值。该数值会显示在页面底部。理想的 PA 值应随体积流量的增加而减小。如果不是这样,请确认挤出机工作正常。打印速度越慢、加速度越小,可接受的 PA 值范围就越大。如果看不出差异,请使用较快测试中的 PA 值\n"
+"3. 在此处的文本框中输入 PA 值、流量和加速度的三元组,并保存耗材丝配置文件。"
# AI Translated
msgid "Enable adaptive pressure advance within features (beta)"
-msgstr "在特征内启用自适应 Pressure Advance (beta)"
+msgstr "在特征内启用自适应 Pressure Advance(试验)"
# AI Translated
msgid ""
@@ -14754,8 +16755,9 @@ msgstr ""
"\n"
"打印桥接时较低的 PA 值有助于减少桥接之后紧接着出现的轻微欠挤出现象。这是由于在空中打印时喷嘴内压力下降所致,较低的 PA 有助于抵消这种情况。"
+# AI Translated
msgid "Default line width if other line widths are set to 0. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "当线宽设置为0时走线的默认线宽。如果以%表示,它将基于喷嘴直径来计算。"
+msgstr "当其他线宽设置为0时使用的默认线宽。如果以%表示,将根据喷嘴直径计算。"
msgid "Keep fan always on"
msgstr "保持风扇常开"
@@ -14766,6 +16768,7 @@ msgstr "如果勾选这个选项,部件冷却风扇将永远不会停止,并
msgid "Don't slow down outer walls"
msgstr "不减速外墙"
+# AI Translated
msgid ""
"If enabled, this setting will ensure external perimeters are not slowed down to meet the minimum layer time. This is particularly helpful in the below scenarios:\n"
"1. To avoid changes in shine when printing glossy filaments\n"
@@ -14773,9 +16776,9 @@ msgid ""
"3. To avoid printing at speeds which cause VFAs (fine artifacts) on the external walls"
msgstr ""
"如果启用,此设置将确保外墙不会为了满足最小层时间而减速。这在以下情况下特别有帮助:\n"
-"1. 避免在打印光滑耗材时改变光泽\n"
-"2. 避免改变外墙速度,可能会产生轻微的墙壁伪影,看起来像z条纹\n"
-"3. 避免以会在外墙上产生VFAs(细微伪影)的速度打印"
+"1. 打印高光泽耗材丝时避免光泽变化\n"
+"2. 避免外墙速度变化而产生看起来像 Z 纹的轻微墙面瑕疵\n"
+"3. 避免以会在外墙上产生 VFA(细微瑕疵)的速度打印"
msgid "Layer time"
msgstr "层时间"
@@ -14791,18 +16794,21 @@ msgstr "s"
msgid "Default color"
msgstr "默认颜色"
+# AI Translated
msgid ""
"Default filament color.\n"
"Right click to reset value to system default."
msgstr ""
-"默认耗材颜色。\n"
+"默认耗材丝颜色。\n"
"右键单击以将值重置为系统默认值。"
+# AI Translated
msgid "Filament notes"
-msgstr "耗材注释"
+msgstr "耗材丝注释"
+# AI Translated
msgid "You can put your notes regarding the filament here."
-msgstr "你可以把关于耗材的注释放在这里。"
+msgstr "您可以把关于耗材丝的注释放在这里。"
msgid "Required nozzle HRC"
msgstr "喷嘴硬度要求"
@@ -14810,37 +16816,44 @@ msgstr "喷嘴硬度要求"
msgid "Minimum HRC of nozzle required to print the filament. A value of 0 means no checking of the nozzle's HRC."
msgstr "打印此材料的所需的最小喷嘴硬度。零值表示不检查喷嘴硬度。"
+# AI Translated
msgid "Filament map to extruder"
-msgstr "耗材映射到挤出机"
+msgstr "耗材丝映射到挤出机"
+# AI Translated
msgid "Filament map to extruder."
-msgstr "耗材映射到挤出机。"
+msgstr "耗材丝映射到挤出机。"
+# AI Translated
msgid "Auto For Flush"
-msgstr "自动冲洗"
+msgstr "自动(节省冲刷)"
msgid "Auto For Match"
msgstr "自动匹配"
# AI Translated
msgid "Nozzle Manual"
-msgstr "喷嘴手册"
+msgstr "按喷嘴手动"
+# AI Translated
msgid "Flush temperature"
-msgstr "冲洗温度"
+msgstr "冲刷温度"
+# AI Translated
msgid "Temperature when flushing filament. 0 indicates the upper bound of the recommended nozzle temperature range."
-msgstr "冲洗耗材丝时的温度。 0 表示推荐喷嘴温度范围的上限。"
+msgstr "冲刷耗材丝时的温度。0 表示推荐喷嘴温度范围的上限。"
# AI Translated
msgid "Flush temperature used in fast purge mode."
msgstr "快速冲刷模式下使用的冲刷温度。"
+# AI Translated
msgid "Flush volumetric speed"
-msgstr "冲洗体积流量"
+msgstr "冲刷体积流量"
+# AI Translated
msgid "Volumetric speed when flushing filament. 0 indicates the max volumetric speed."
-msgstr "冲洗耗材丝时的体积流量。 0 表示最大体积流量。"
+msgstr "冲刷耗材丝时的体积流量。0 表示最大体积流量。"
msgid "This setting is the volume of filament that can be melted and extruded per second. Printing speed is limited by max volumetric speed, in case of too high and unreasonable speed setting. This value cannot be zero."
msgstr "这个设置表示在1秒内能够融化和挤出的耗材丝体积。打印速度会受到最大体积流量的限制,防止设置过高和不合理的速度。不允许设置为0。"
@@ -14848,40 +16861,34 @@ msgstr "这个设置表示在1秒内能够融化和挤出的耗材丝体积。
msgid "Filament load time"
msgstr "装载耗材丝的时间"
+# AI Translated
msgid "Time to load new filament when switch filament. It's usually applicable for single-extruder multi-material machines. For tool changers or multi-tool machines, it's typically 0. For statistics only."
-msgstr ""
-"换料时,装载新耗材过程的耗时。\n"
-"通常适用于单挤出机且多材料机器。对于有工具头切换器或多工具头打印机机器,此值通常为 0。\n"
-"仅用于统计。"
+msgstr "换料时装载新耗材丝所需的时间。通常适用于单挤出机多材料打印机。对于工具头切换打印机或多工具头打印机,此值通常为 0。仅用于统计。"
msgid "Filament unload time"
msgstr "卸载耗材丝的时间"
+# AI Translated
msgid "Time to unload old filament when switch filament. It's usually applicable for single-extruder multi-material machines. For tool changers or multi-tool machines, it's typically 0. For statistics only."
-msgstr ""
-"换料时,卸载旧耗材过程的耗时。\n"
-"通常适用于单挤出机且多材料机器。对于有工具头切换器或多工具头打印机机器,此值通常为 0。\n"
-"仅用于统计。"
+msgstr "换料时卸载旧耗材丝所需的时间。通常适用于单挤出机多材料打印机。对于工具头切换打印机或多工具头打印机,此值通常为 0。仅用于统计。"
msgid "Tool change time"
msgstr "换工具头所需时间"
+# AI Translated
msgid "Time taken to switch tools. It's usually applicable for tool changers or multi-tool machines. For single-extruder multi-material machines, it's typically 0. For statistics only."
-msgstr ""
-"更换工具头过程的耗时。\n"
-"通常适用于有工具头切换器或多工具头的打印机。对于单挤出机的多材料机器,此值通常为 0。\n"
-"仅用于统计。"
+msgstr "切换工具头所需的时间。通常适用于工具头切换打印机或多工具头打印机。对于单挤出机多材料打印机,此值通常为 0。仅用于统计。"
msgid "Bed temperature type"
msgstr "热床温度类型"
+# AI Translated
msgid "This option determines how the bed temperature is set during slicing: based on the temperature of the first filament or the highest temperature of the printed filaments."
-msgstr ""
-"此选项用以设置切片时的热床温度确定方式。\n"
-"可选择“根据初始打印耗材”或“根据最高打印温度”。"
+msgstr "此选项决定切片时如何设置热床温度:根据首个耗材丝的温度,或根据所打印耗材丝中的最高温度。"
+# AI Translated
msgid "By First filament"
-msgstr "根据初始打印耗材"
+msgstr "根据初始打印耗材丝"
msgid "By Highest Temp"
msgstr "根据最高打印温度"
@@ -14892,6 +16899,7 @@ msgstr "耗材丝直径被用于计算G-code文件中的挤出量。因此很重
msgid "Pellet flow coefficient"
msgstr "颗粒流动系数"
+# AI Translated
msgid ""
"Pellet flow coefficient is empirically derived and allows for volume calculation for pellet printers.\n"
"\n"
@@ -14899,8 +16907,11 @@ msgid ""
"\n"
"filament_diameter = sqrt( (4 * pellet_flow_coefficient) / PI )"
msgstr ""
-"颗粒流动系数是基于经验得出的数据,可用于为颗粒耗材打印机开展体积计算。\n"
-"在软件内部计算时,它其实会被转换为“耗材丝直径”,其他体积的计算保持不变:耗材丝直径 = 开平方( (4 * 颗粒流动系数) / 圆周率 )"
+"颗粒流动系数是根据经验得出的,可用于颗粒打印机的体积计算。\n"
+"\n"
+"在内部,它会被转换为 filament_diameter。其他所有体积计算保持不变。\n"
+"\n"
+"filament_diameter = sqrt( (4 * pellet_flow_coefficient) / PI )"
msgid "Adaptive volumetric speed"
msgstr "自适应体积流量"
@@ -14920,35 +16931,36 @@ msgstr "最大体积流量多项式系数"
msgid "Shrinkage (XY)"
msgstr "收缩率(XY)"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Enter the shrinkage percentage that the filament will get after cooling (94% if you measure 94mm instead of 100mm). The part will be scaled in XY to compensate. For multi-material prints, ensure filament shrinkage matches across all used filaments\n"
"Be sure to allow enough space between objects, as this compensation is done after the checks."
msgstr ""
-"冷却后耗材会收缩的百分比(如果测量的长度是94mm而不是100mm,则为是收缩率为94%)\n"
-"补偿将按比例缩放xy轴该补偿仅考虑墙壁所使用的耗材\n"
-"请确保物体之间有足够的间距,因为补偿是在边界检查之后进行"
+"输入耗材丝冷却后的收缩百分比(如果测得 94mm 而不是 100mm,则为 94%)。零件将在 XY 方向上缩放以进行补偿。对于多材料打印,请确保所有使用的耗材丝的收缩率一致。\n"
+"请确保对象之间留有足够的间距,因为此补偿在检查之后进行。"
msgid "Shrinkage (Z)"
msgstr "收缩率(Z)"
+# AI Translated
#, no-c-format, no-boost-format
msgid "Enter the shrinkage percentage that the filament will get after cooling (94% if you measure 94mm instead of 100mm). The part will be scaled in Z to compensate."
-msgstr ""
-"冷却后耗材会收缩的百分比(如果测量的长度是94mm而不是100mm,则为是收缩率为94%)\n"
-"补偿将按比例缩放Z轴"
+msgstr "输入耗材丝冷却后的收缩百分比(如果测得 94mm 而不是 100mm,则为 94%)。零件将在 Z 方向上缩放以进行补偿。"
msgid "Adhesiveness Category"
msgstr "粘性分类"
+# AI Translated
msgid "Filament category."
-msgstr "耗材分类"
+msgstr "耗材丝分类。"
msgid "Loading speed"
msgstr "装载速度"
+# AI Translated
msgid "Speed used for loading the filament on the wipe tower."
-msgstr "用于擦拭塔加载耗材的速度。"
+msgstr "用于擦拭塔加载耗材丝的速度。"
msgid "Loading speed at the start"
msgstr "加载初始速度"
@@ -14959,14 +16971,16 @@ msgstr "最开始加载阶段的速度"
msgid "Unloading speed"
msgstr "卸载速度"
+# AI Translated
msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)."
-msgstr "用于擦拭塔卸载耗材的速度(不影响尖端成型之后初始部分的速度)。"
+msgstr "用于擦拭塔卸载耗材丝的速度(不影响尖端成型之后初始部分的速度)。"
msgid "Unloading speed at the start"
msgstr "卸载初始速度"
+# AI Translated
msgid "Speed used for unloading the tip of the filament immediately after ramming."
-msgstr "耗材尖端成型后立即卸载的速度"
+msgstr "耗材丝尖端成型后立即卸载的速度。"
msgid "Delay after unloading"
msgstr "卸载后延迟"
@@ -14977,20 +16991,25 @@ msgstr "耗材丝卸载后等待的时间。有助于柔性材料(收缩到原
msgid "Number of cooling moves"
msgstr "冷却移动次数"
+# AI Translated
msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves."
-msgstr "耗材丝通过在喉管中来回移动来冷却。指定所需的移动次数。"
+msgstr "耗材丝通过在冷却管中来回移动来冷却。指定所需的移动次数。"
+# AI Translated
msgid "Stamping loading speed"
-msgstr "尖端成型加载速度"
+msgstr "压印加载速度"
+# AI Translated
msgid "Speed used for stamping."
-msgstr "用于尖端成型的速度"
+msgstr "用于压印的速度。"
+# AI Translated
msgid "Stamping distance measured from the center of the cooling tube"
-msgstr "从冷却管中心测量的尖端成型距离"
+msgstr "从冷却管中心测量的压印距离"
+# AI Translated
msgid "If set to non-zero value, filament is moved toward the nozzle between the individual cooling moves (\"stamping\"). This option configures how long this movement should be before the filament is retracted again."
-msgstr "如果设置为非零值,则在各个冷却移动之间耗材会向喷嘴方向移动(“印模”)。该选项用于配置耗材在重新回抽前应移动多长时间。"
+msgstr "如果设置为非零值,则在各个冷却移动之间耗材丝会向喷嘴方向移动(“压印”)。该选项用于配置耗材丝在重新回抽前应移动多长距离。"
msgid "Speed of the first cooling move"
msgstr "第一次冷却移动的速度"
@@ -14998,17 +17017,21 @@ msgstr "第一次冷却移动的速度"
msgid "Cooling moves are gradually accelerating beginning at this speed."
msgstr "从这个速度开始冷却移动逐渐加速"
+# AI Translated
msgid "Minimal purge on wipe tower"
-msgstr "擦拭塔上的最小清理量"
+msgstr "擦拭塔上的最小冲刷量"
+# AI Translated
msgid "After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial object, Orca Slicer will always prime this amount of material into the wipe tower to produce successive infill or sacrificial object extrusions reliably."
-msgstr "换色后,新加载的耗材在喷嘴内的确切位置可能未知,耗材压力可能还不稳定。在冲刷打印头到填充或作为挤出废料之前,Orca Slicer将始终将这些的耗材丝冲刷到擦拭塔中以产生连续的填充或稳定的挤出废料。"
+msgstr "换色后,新装载的耗材丝在喷嘴内的确切位置可能未知,耗材丝压力也可能尚未稳定。在将工具头冲刷到填充或牺牲对象之前,Orca Slicer 总会先将此数量的材料预挤出到擦拭塔中,以便后续可靠地挤出填充或牺牲对象。"
+# AI Translated
msgid "Wipe tower cooling"
-msgstr "擦料塔冷却"
+msgstr "擦拭塔冷却"
+# AI Translated
msgid "Temperature drop before entering filament tower"
-msgstr "进入擦料塔前的降温量"
+msgstr "进入擦拭塔前的降温量"
msgid "Interface layer pre-extrusion distance"
msgstr "接触层预挤出距离"
@@ -15055,23 +17078,28 @@ msgstr "尖端成型参数"
msgid "This string is edited by RammingDialog and contains ramming specific parameters."
msgstr "此内容由尖端成型窗口编辑,包含尖端成型的特定参数。"
+# AI Translated
msgid "Enable ramming for multi-tool setups"
-msgstr "启用多色尖端成型设置"
+msgstr "为多工具头设备启用尖端成型"
+# AI Translated
msgid "Perform ramming when using multi-tool printer (i.e. when the 'Single Extruder Multimaterial' in Printer Settings is unchecked). When checked, a small amount of filament is rapidly extruded on the wipe tower just before the tool change. This option is only used when the wipe tower is enabled."
-msgstr "多色打印机执行尖端成型时(即,当打印机设置中的单挤出机多材料未选中时)。选中时,在换色之前,会迅速挤出少量耗材丝到擦拭塔上。此选项仅在启用擦拭塔时使用。"
+msgstr "使用多工具头打印机时执行尖端成型(即打印机设置中的“单挤出机多材料”未勾选时)。勾选后,会在换料之前,在擦拭塔上快速挤出少量耗材丝。此选项仅在启用擦拭塔时使用。"
+# AI Translated
msgid "Multi-tool ramming volume"
-msgstr "多色尖端成型体积"
+msgstr "多工具头尖端成型体积"
msgid "The volume to be rammed before the tool change."
msgstr "换色前尖端成型的体积"
+# AI Translated
msgid "Multi-tool ramming flow"
-msgstr "多色尖端成型流量"
+msgstr "多工具头尖端成型流量"
+# AI Translated
msgid "Flow used for ramming the filament before the tool change."
-msgstr "换色前耗材尖端成型的流量"
+msgstr "换色前耗材丝尖端成型的流量。"
msgid "Density"
msgstr "密度"
@@ -15091,17 +17119,20 @@ msgstr "可溶性材料"
msgid "Soluble material is commonly used to print supports and support interfaces."
msgstr "可溶性材料通常用于打印支撑和支撑面"
+# AI Translated
msgid "Filament ramming length"
-msgstr "耗材冲击长度"
+msgstr "耗材丝尖端成型长度"
+# AI Translated
msgid "When changing the extruder, it is recommended to extrude a certain length of filament from the original extruder. This helps minimize nozzle oozing."
-msgstr "在切换挤出机时,使原先挤出机额外挤出一段耗材,有助耗材末端抽出完整,并减少待命时的喷嘴渗料。"
+msgstr "在切换挤出机时,使原先挤出机额外挤出一段耗材丝,有助耗材丝末端抽出完整,并减少待命时的喷嘴渗料。"
msgid "Support material"
msgstr "支撑材料"
+# AI Translated
msgid "Support material is commonly used to print supports and support interfaces."
-msgstr "支撑材料通常用于打印支撑体和支撑接触面"
+msgstr "支撑材料通常用于打印支撑和支撑面。"
# AI Translated
msgid "Is mixed filament"
@@ -15159,19 +17190,21 @@ msgstr "混合耗材丝逐零件渐变"
msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range."
msgstr "启用渐变模式时,对组合体中的每个零件分别应用渐变,而不是将整个组合体视为一个 Z 范围。"
+# AI Translated
msgid "Filament printable"
-msgstr "可打印耗材"
+msgstr "可打印耗材丝"
+# AI Translated
msgid "The filament is printable in extruder."
-msgstr "此耗材可通过挤出机打印"
+msgstr "此耗材丝可通过挤出机打印。"
# AI Translated
msgid "Filament-extruder compatibility"
-msgstr "耗材-挤出机兼容性"
+msgstr "耗材丝-挤出机兼容性"
# AI Translated
msgid "A single 32-bit int encoding the compatibility level of a filament across all extruders (up to 10). Every 3 bits represent one extruder (bits [3*i, 3*i+2] for extruder i). 0: printable, 1: error, 2: critical warning, 3: warning, 4-7: reserved."
-msgstr "一个 32 位整数,用于编码某种耗材在所有挤出机(最多 10 个)上的兼容性级别。每 3 位表示一个挤出机(挤出机 i 对应位 [3*i, 3*i+2])。0:可打印,1:错误,2:严重警告,3:警告,4-7:保留。"
+msgstr "一个 32 位整数,用于编码某种耗材丝在所有挤出机(最多 10 个)上的兼容性级别。每 3 位表示一个挤出机(挤出机 i 对应位 [3*i, 3*i+2])。0:可打印,1:错误,2:严重警告,3:警告,4-7:保留。"
msgid "Softening temperature"
msgstr "软化温度"
@@ -15189,11 +17222,9 @@ msgstr "耗材丝的价格。只用于统计信息。"
msgid "money/kg"
msgstr "金额/kg"
-msgid "Vendor"
-msgstr "供应商"
-
+# AI Translated
msgid "Vendor of filament. For show only."
-msgstr "打印耗材的供应商。仅用于展示。"
+msgstr "打印耗材丝的供应商。仅用于展示。"
msgid "(Undefined)"
msgstr "(未定义)"
@@ -15265,12 +17296,99 @@ msgstr "填充多线"
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
msgstr "如果填充图案支持,使用多线进行填充。"
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "自适应密度(实验性)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"让对象内部的螺旋体和 TPMS 填充密度渐变:填充单元从对象表面向中心逐渐变大。表面处使用稀疏填充密度,中心处使用内部密度。\n"
+"距离扭曲、平滑混合和阶梯壳层按到最近表面(包括顶部和底部)的距离渐变,离表面最远处使用内部密度:\n"
+" - 距离扭曲:单一连续的图案,在距离随方向变化不一的地方(如板状和长条形零件)被拉伸和剪切。\n"
+" - 平滑混合:相邻密度的图案相互融合,交界处会出现小环。\n"
+" - 阶梯壳层:由常规图案组成的多层壳,相邻壳层中较高的密度约为较低密度的 1.5 倍,各层线条沿壳层边界相连。\n"
+" - 分瓣:跟随对象的三维形状(包括顶部和底部)。每个瓣(通过较窄的颈部与其余部分相连的部分)都朝其自身中心渐变。\n"
+" - 垂直于 Z、Y 或 X:跟随对象垂直于该轴的截面,因此密度沿该轴不变。"
+
+# AI Translated
+msgid "Distance warp"
+msgstr "距离扭曲"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "平滑混合"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "阶梯壳层"
+
+# AI Translated
+msgid "Lobes"
+msgstr "分瓣"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "垂直于 Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "垂直于 Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "垂直于 X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "内部密度"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "对象中心处的自适应填充密度。"
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "自适应渐变"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"密度从对象表面到中心的变化方式。\n"
+"线性:密度均匀变化。\n"
+"二次:表面附近的密度接近稀疏填充密度,越靠近中心变化越快。\n"
+"指数:密度在表面以下迅速变化,越靠近中心越趋于平稳。"
+
+# AI Translated
+msgid "Linear"
+msgstr "线性"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "二次"
+
+# AI Translated
+msgid "Exponential"
+msgstr "指数"
+
msgid "Z-buckling bias optimization (experimental)"
msgstr "Z 轴屈曲偏置优化(实验性)"
+# AI Translated
#, no-c-format, no-boost-format
msgid "Tightens the gyroid wave along the Z (vertical) axis at low infill density to shorten the effective vertical column length and improve Z-axis compression buckling resistance. Filament use is preserved. No effect at ~30% sparse infill density and above. Only applies when Sparse infill pattern is set to Gyroid."
-msgstr "在低填充密度下沿 Z(垂直)轴收紧螺旋(Gyroid)波形,以缩短有效的垂直柱长,提升 Z 轴抗压屈曲能力。耗材用量保持不变。在约 30% 及以上的稀疏填充密度下无效果。仅当稀疏填充图案设置为 Gyroid 时适用。"
+msgstr "在低填充密度下沿 Z(垂直)轴收紧螺旋体波形,以缩短有效的垂直柱长,提升 Z 轴抗压屈曲能力。耗材丝用量保持不变。在约 30% 及以上的稀疏填充密度下无效果。仅当“稀疏填充图案”设置为“螺旋体”时适用。"
msgid "Sparse infill pattern"
msgstr "稀疏填充图案"
@@ -15320,8 +17438,9 @@ msgstr "3D 蜂窝"
msgid "Lateral Honeycomb"
msgstr "侧向蜂窝"
+# AI Translated
msgid "Lateral Lattice"
-msgstr "侧向向晶格"
+msgstr "侧向晶格"
msgid "Cross Hatch"
msgstr "交叉层叠"
@@ -15349,8 +17468,9 @@ msgstr "顶面填充的加速度。使用较低值可能会改善顶面质量"
msgid "Acceleration of outer wall: using a lower value can improve quality."
msgstr "外墙加速度。使用较小的值可以提高质量。"
+# AI Translated
msgid "Acceleration of inner walls."
-msgstr "内圈墙加速度,使用较低值可以改善质量。"
+msgstr "内墙加速度。"
msgid "Acceleration of sparse infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration."
msgstr "稀疏填充的加速度。如果该值表示为百分比(例如100%),则将根据默认加速度进行计算。"
@@ -15358,27 +17478,32 @@ msgstr "稀疏填充的加速度。如果该值表示为百分比(例如100%
msgid "Acceleration of internal solid infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration."
msgstr "内部实心填充的加速度。如果该值以百分比表示(例如100%),则将根据默认加速度进行计算。"
+# AI Translated
msgid "This is the printing acceleration for the first layer. Using limited acceleration can improve build plate adhesion."
-msgstr "首层加速度。使用较低值可以改善和打印板的粘接。"
+msgstr "首层的打印加速度。限制加速度可以改善与热床的粘接。"
+# AI Translated
msgid "Enable accel_to_decel"
-msgstr "启用制动速度"
+msgstr "启用 accel_to_decel"
msgid "Klipper's max_accel_to_decel will be adjusted automatically."
msgstr "Klipper的max_accel_to_decel将被自动调整"
+# AI Translated
msgid "accel_to_decel"
-msgstr "制动速度"
+msgstr "accel_to_decel"
+# AI Translated
#, c-format, boost-format
msgid "Klipper's max_accel_to_decel will be adjusted to this %% of acceleration."
-msgstr "Klipper固件的max_accel_to_decel将被调整为该加速度的百分比。"
+msgstr "Klipper 的 max_accel_to_decel 将被调整为加速度的此 %%。"
msgid "Default jerk."
msgstr "默认抖动"
+# AI Translated
msgid "Marlin Firmware Junction Deviation (replaces the traditional XY Jerk setting)."
-msgstr "Marlin 固件连接偏差(取代传统的 XY Jerk 设置)。"
+msgstr "Marlin 固件结点偏差(取代传统的 XY 抖动设置)。"
msgid "Jerk of outer walls."
msgstr "外墙抖动值"
@@ -15405,8 +17530,9 @@ msgstr ""
"首层的空驶抖动。\n"
"百分比值相对于空驶抖动。"
+# AI Translated
msgid "Line width of the first layer. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "首层的线宽。若以百分比表示(例如120%),它将基于喷嘴直径来计算。"
+msgstr "首层的线宽。如果以%表示,将根据喷嘴直径计算。"
msgid "First layer height"
msgstr "首层层高"
@@ -15415,14 +17541,16 @@ msgstr "首层层高"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "首层层高。适当加厚首层层高,将有助于增加与热床之间的粘接力。"
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "首层除实心填充之外的其他部分的打印速度"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "首层的墙和 Brim 的打印速度。"
msgid "First layer infill"
msgstr "首层填充"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "首层实心填充的打印速度"
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "首层中除墙和 Brim 以外部分的打印速度,例如填充、缝隙填充和支撑。"
msgid "First layer travel speed"
msgstr "首层空驶速度"
@@ -15433,24 +17561,24 @@ msgstr "首层空驶速度"
msgid "Number of slow layers"
msgstr "慢速层数量"
+# AI Translated
msgid "The first few layers are printed slower than normal. The speed is gradually increased in a linear fashion over the specified number of layers."
-msgstr ""
-"减慢前几层的打印速度。\n"
-"打印速度会在这个范围内以线性方式逐层加至满速。"
+msgstr "前几层的打印速度比正常速度慢。速度会在指定的层数内以线性方式逐渐提高。"
+# AI Translated
msgid "First layer nozzle temperature"
-msgstr "首层打印温度"
+msgstr "首层喷嘴温度"
+# AI Translated
msgid "Nozzle temperature for printing the first layer with this filament"
-msgstr "使用此耗材时的首层打印温度。"
+msgstr "使用此耗材丝时的首层打印温度。"
msgid "Full fan speed at layer"
msgstr "满速风扇在"
+# AI Translated
msgid "Fan speed will be ramped up linearly from zero at layer \"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower than \"close_fan_the_first_x_layers\", in which case the fan will be running at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
-msgstr ""
-"风扇速度将从“禁用第一层”的零转速,线性上升到“全风扇速度层”的最大转速。\n"
-"如果低于“禁用风扇第一层”,则“全风扇速度第一层”将被忽略,在这种情况下,风扇将在“禁用风扇第一层”的后续一层以最大允许速度运行。"
+msgstr "风扇速度将从第 \"close_fan_the_first_x_layers\" 层的零转速线性提升到第 \"full_fan_speed_layer\" 层的最大转速。如果 \"full_fan_speed_layer\" 低于 \"close_fan_the_first_x_layers\",则忽略 \"full_fan_speed_layer\",此时风扇将在第 \"close_fan_the_first_x_layers\" + 1 层以允许的最大速度运行。"
msgid "layer"
msgstr "层"
@@ -15469,72 +17597,83 @@ msgid ""
msgstr ""
"为首层设置一个确切的风扇转速,覆盖所有其他冷却设置。有助于保护 3D 打印的工具头部件(例如 Voron 风格的 ABS/ASA 风道)免受热床影响。少量气流可以冷却风道,而不必使用在某些情况下可能损害首层附着的全速冷却。\n"
"从第二层开始,恢复正常冷却。\n"
-"如果同时设置了“在指定层达到全速风扇”,风扇会在首层从此值平滑爬升,到指定层时达到您的目标值。\n"
-"仅当“前几层不冷却”为 0 时可用。\n"
+"如果同时设置了“满速风扇在”,风扇会在首层从此值平滑爬升,到指定层时达到您的目标值。\n"
+"仅当“关闭冷却的前”为 0 时可用。\n"
"设为 -1 以禁用。"
+# AI Translated
msgid "Support interface fan speed"
-msgstr "支撐接触面风扇"
+msgstr "支撑面风扇速度"
+# AI Translated
msgid ""
"This part cooling fan speed is applied when printing support interfaces. Setting this parameter to a higher than regular speed reduces the layer binding strength between supports and the supported part, making them easier to separate.\n"
"Set to -1 to disable it.\n"
"This setting is overridden by disable_fan_first_layers."
msgstr ""
-"在打印支撑接触面时使用的风扇转速。若设为高于平常的速度,有助降低支撑与打印件之间的层粘结强度,使其更易分离。\n"
+"在打印支撑面时使用的部件冷却风扇转速。若设为高于平常的速度,有助降低支撑与打印件之间的层粘结强度,使其更易分离。\n"
"设置为 -1 以停用此功能。\n"
"该设置会被 disable_fan_first_layers 选项覆盖。"
msgid "Internal bridges fan speed"
msgstr "内部桥接风扇速度"
+# AI Translated
msgid ""
"The part cooling fan speed used for all internal bridges. Set to -1 to use the overhang fan speed settings instead.\n"
"\n"
"Reducing the internal bridges fan speed, compared to your regular fan speed, can help reduce part warping due to excessive cooling applied over a large surface for a prolonged period of time."
msgstr ""
-"用于所有内部桥接的部件冷却风扇转速。设置为 -1 时,将采用悬垂时风扇转速设置。\n"
-"与常规转速相比,若降低内部桥接风扇转速,有助缓解长时间大面积施加过度冷却而引起的零件变形。"
+"用于所有内部桥接的部件冷却风扇转速。设置为 -1 时,将采用悬垂风扇转速设置。\n"
+"\n"
+"与常规转速相比,降低内部桥接风扇转速有助于减少因长时间对大面积施加过度冷却而导致的零件翘曲。"
msgid "Ironing fan speed"
msgstr "熨烫时风扇速度"
+# AI Translated
msgid ""
"This part cooling fan speed is applied when ironing. Setting this parameter to a lower than regular speed reduces possible nozzle clogging due to the low volumetric flow rate, making the interface smoother.\n"
"Set to -1 to disable it."
msgstr ""
-"熨烫时的部件风扇转速。\n"
-"设为低于平常的转速,将有助缓解长时间低流量打印的堵头问题。设置为 -1 以停用此功能。"
+"熨烫时使用的部件冷却风扇转速。将此参数设为低于常规的转速,可减少因体积流量较低而可能导致的喷嘴堵塞,使表面更平滑。\n"
+"设置为 -1 以停用此功能。"
msgid "Ironing flow"
msgstr "熨烫流量"
+# AI Translated
msgid "Filament-specific override for ironing flow. This allows you to customize the ironing flow for each filament type. Too high value results in overextrusion on the surface."
-msgstr "针对熨烫流程的耗材特定覆盖。这使您可以为每种耗材类型定制熨烫流程。值太高会导致表面过度挤压。"
+msgstr "针对熨烫流量的耗材丝专用覆盖设置。可为每种耗材丝类型自定义熨烫流量。值过高会导致表面过挤出。"
msgid "Ironing line spacing"
msgstr "熨烫间距"
+# AI Translated
msgid "Filament-specific override for ironing line spacing. This allows you to customize the spacing between ironing lines for each filament type."
-msgstr "针对熨烫线间距的耗材特定覆盖。这使您可以自定义每种耗材类型的熨烫线之间的间距。"
+msgstr "针对熨烫线间距的耗材丝特定覆盖。这使您可以自定义每种耗材丝类型的熨烫线之间的间距。"
msgid "Ironing inset"
msgstr "熨烫内缩"
+# AI Translated
msgid "Filament-specific override for ironing inset. This allows you to customize the distance to keep from the edges when ironing for each filament type."
-msgstr "用于熨烫插入的耗材丝特定覆盖。这使您可以自定义熨烫每种耗材丝类型时与边缘保持的距离。"
+msgstr "针对熨烫内缩的耗材丝专用覆盖设置。可为每种耗材丝类型自定义熨烫时与边缘保持的距离。"
msgid "Ironing speed"
msgstr "熨烫速度"
+# AI Translated
msgid "Filament-specific override for ironing speed. This allows you to customize the print speed of ironing lines for each filament type."
-msgstr "特定于耗材的熨烫速度优先。这允许您自定义每种耗材丝类型的熨烫线的打印速度。"
+msgstr "针对熨烫速度的耗材丝专用覆盖设置。可为每种耗材丝类型自定义熨烫线的打印速度。"
+# AI Translated
msgid "This setting makes the toolhead randomly jitter while printing walls so that the surface has a rough textured look. This setting controls the fuzzy position."
-msgstr "打印外墙时随机抖动,使外表面产生绒效果。这个设置决定适用的位置。"
+msgstr "打印墙时让工具头随机抖动,使表面呈现粗糙的纹理外观。此设置控制绒毛表面的位置。"
+# AI Translated
msgid "Painted only"
-msgstr "仅涂漆"
+msgstr "仅手绘区域"
msgid "Contour"
msgstr "轮廓"
@@ -15551,8 +17690,9 @@ msgstr "所有墙"
msgid "Fuzzy skin thickness"
msgstr "绒毛表面厚度"
+# AI Translated
msgid "The width of jittering: it’s recommended to keep this lower than the outer wall line width."
-msgstr "产生绒毛的抖动的宽度。建议小于外圈墙的线宽。"
+msgstr "产生绒毛的抖动的宽度。建议小于外墙的线宽。"
msgid "Fuzzy skin point distance"
msgstr "绒毛表面点间距"
@@ -15563,12 +17703,14 @@ msgstr "产生绒毛表面时,插入的随机点之间的平均距离"
msgid "Apply fuzzy skin to first layer"
msgstr "绒毛表面应用至首层"
+# AI Translated
msgid "Whether to apply fuzzy skin on the first layer."
-msgstr "是否在第一层应用绒毛效果"
+msgstr "是否在首层应用绒毛表面。"
msgid "Fuzzy skin generator mode"
msgstr "绒毛表面生成器模式"
+# AI Translated
#, c-format, boost-format
msgid ""
"Fuzzy skin generation mode. Works only with Arachne!\n"
@@ -15578,10 +17720,12 @@ msgid ""
"\n"
"Attention! The [Extrusion] and [Combined] modes works only the fuzzy_skin_thickness parameter not more than the thickness of printed loop. At the same time, the width of the extrusion for a particular layer should also not be below a certain level. It is usually equal 15-25%% of a layer height. Therefore, the maximum fuzzy skin thickness with a perimeter width of 0.4 mm and a layer height of 0.2 mm will be 0.4-(0.2*0.25)=±0.35mm! If you enter a higher parameter than this, the error Flow::spacing() will displayed, and the model will not be sliced. You can choose this number until this error is repeated."
msgstr ""
-"模糊皮肤生成模式。仅适用于Arachne!\n"
-"位移:经典模式,通过将喷嘴从原始路径向侧面移动来形成图案。\n"
-"挤出:通过挤出塑料量而形成图案的模式。这是一种快速而直接的算法,没有不必要的喷嘴抖动,可以产生平滑的图案。但它对于在整个阵列中形成松散的墙壁更有用。\n"
-"组合:联合模式【位移】+【挤压】。墙壁的外观与 [位移] 模式类似,但周边之间不留孔隙。注意![挤出] 和 [组合] 模式仅适用于 fuzzy_skin_thickness 参数不大于打印环厚度的情况。同时,特定层的挤出宽度也不应低于一定水平。它通常等于层高的 15-25%%。因此,周宽为 0.4 mm、层高为 0.2 mm 时,最大绒毛表面厚度为 0.4-(0.2*0.25)=±0.35 mm!如果输入参数高于此值,将显示 Flow::spacing() 错误,且模型不会被切片。您可以调整该数值,直到不再重复出现该错误。"
+"绒毛表面生成模式。仅适用于 Arachne!\n"
+"位移:经典模式,通过让喷嘴偏离原始路径向侧面移动来形成图案。\n"
+"挤出:通过挤出塑料的量来形成图案。这是一种快速、直接的算法,没有多余的喷嘴抖动,可产生平滑的图案。但它更适合用于在整组墙中形成疏松的墙。\n"
+"合并:[位移] + [挤出] 的联合模式。墙的外观与 [位移] 模式相似,但墙之间不会留下孔隙。\n"
+"\n"
+"注意![挤出] 和 [合并] 模式仅在 fuzzy_skin_thickness 参数不大于所打印环的厚度时有效。同时,特定层的挤出宽度也不应低于一定水平,通常为层高的 15-25%%。因此,在墙线宽为 0.4 mm、层高为 0.2 mm 时,最大绒毛表面厚度为 0.4-(0.2*0.25)=±0.35mm!如果输入的参数高于此值,将显示 Flow::spacing() 错误,模型将无法切片。您可以调整此数值,直到不再出现该错误。"
msgid "Displacement"
msgstr "位移"
@@ -15592,9 +17736,11 @@ msgstr "挤出"
msgid "Combined"
msgstr "合并"
+# AI Translated
msgid "Fuzzy skin noise type"
-msgstr "绒毛噪波类型"
+msgstr "绒毛表面噪波类型"
+# AI Translated
msgid ""
"Noise type to use for fuzzy skin generation:\n"
"Classic: Classic uniform random noise.\n"
@@ -15604,13 +17750,13 @@ msgid ""
"Voronoi: Divides the surface into voronoi cells, and displaces each one by a random amount. Creates a patchwork texture.\n"
"Ripple: Uniform ripple pattern that ripples left and right of the original path. Repeating pattern, woven appearance."
msgstr ""
-"用于生成绒毛表面的噪声类型:\n"
-"Classic:经典的均匀随机噪声。\n"
-"Perlin:柏林噪声,可产生更一致的纹理。\n"
-"Billow:类似柏林噪声,但更成团块状。\n"
-"Ridged Multifractal:具有尖锐、锯齿状特征的脊状噪声。可生成大理石般的纹理。\n"
-"Voronoi:将表面划分为 Voronoi 单元,并将每个单元随机位移一定量。可生成拼接状纹理。\n"
-"Ripple:在原始路径左右起伏的均匀波纹图案。重复图案,呈编织外观。"
+"用于生成绒毛表面的噪波类型:\n"
+"经典:经典的均匀随机噪波。\n"
+"柏林噪波:可产生更一致的纹理。\n"
+"云状噪波:类似柏林噪波,但更成团块状。\n"
+"脊状多重分形:具有尖锐、锯齿状特征的脊状噪波,可生成大理石般的纹理。\n"
+"维诺图:将表面划分为维诺单元,并将每个单元随机位移一定量,可生成拼接状纹理。\n"
+"波纹:在原始路径左右起伏的均匀波纹图案。图案重复,呈编织外观。"
msgid "Classic"
msgstr "经典"
@@ -15636,17 +17782,20 @@ msgstr "绒毛表面特征尺寸"
msgid "The base size of the coherent noise features, in mm. Higher values will result in larger features."
msgstr "相干噪波特征的基础尺寸(单位:毫米)。较高的数值会产生更大的特征。"
+# AI Translated
msgid "Fuzzy Skin Noise Octaves"
-msgstr "绒毛噪波倍频"
+msgstr "绒毛表面噪波倍频"
msgid "The number of octaves of coherent noise to use. Higher values increase the detail of the noise, but also increase computation time."
msgstr "使用的相干噪波倍频数。较高的数值会增加噪波细节,但也会增加计算时间。"
+# AI Translated
msgid "Fuzzy skin noise persistence"
-msgstr "绒毛噪波持续性"
+msgstr "绒毛表面噪波持续性"
+# AI Translated
msgid "The decay rate for higher octaves of the coherent noise. Lower values will result in smoother noise."
-msgstr "相干噪波高倍频的衰减速率。较低的数值会产生更平滑的噪声。"
+msgstr "相干噪波高倍频的衰减速率。较低的数值会产生更平滑的噪波。"
msgid "Number of ripples per layer"
msgstr "每层的波纹数量"
@@ -15692,11 +17841,13 @@ msgstr "忽略微小间隙"
msgid "Layers and Perimeters"
msgstr "层和墙"
+# AI Translated
msgid "Don't print gap fill with a length is smaller than the threshold specified (in mm). This setting applies to top, bottom and solid infill and, if using the classic perimeter generator, to wall gap fill."
-msgstr "不要打印长度小于指定阈值(以毫米为单位)的间隙填充。此设置适用于顶部、底部和实体填充,如果使用经典周长生成器,则适用于墙壁间隙填充。"
+msgstr "不打印长度小于指定阈值(单位为毫米)的缝隙填充。此设置适用于顶部、底部和实心填充;如果使用经典墙生成器,也适用于墙间缝隙填充。"
+# AI Translated
msgid "This is the speed for gap infill. Gaps usually have irregular line width and should be printed more slowly."
-msgstr "填缝的速度。缝隙通常有不一致的线宽,应改用较慢速度打印。"
+msgstr "缝隙填充的速度。缝隙通常线宽不一致,应以较慢速度打印。"
msgid "Precise Z height"
msgstr "精准 Z 高度"
@@ -15707,14 +17858,15 @@ msgstr "开启这个设置,对象在切片后将得到精准的 Z 高度。此
msgid "Arc fitting"
msgstr "圆弧拟合"
+# AI Translated
msgid ""
"Enable this to get a G-code file which has G2 and G3 moves. The fitting tolerance is same as the resolution.\n"
"\n"
"Note: For Klipper machines, this option is recommended to be disabled. Klipper does not benefit from arc commands as these are split again into line segments by the firmware. This results in a reduction in surface quality as line segments are converted to arcs by the slicer and then back to line segments by the firmware."
msgstr ""
-"启用后,导出的 G-code 将包含 G2 和 G3 指令。圆弧拟合的公差将与精度相同。\n"
-"请注意:对于使用Klipper固件的打印机,建议禁用此选项。Klipper固件不会从圆弧拟合中受益,因为此命令会被固件再次分割为线段。\n"
-"在切片软件将线段转换为圆弧后,若再被固件转换为线段,将导致打印件表面质量下降。"
+"启用后,导出的 G-code 将包含 G2 和 G3 指令。圆弧拟合的公差与分辨率相同。\n"
+"\n"
+"请注意:对于使用 Klipper 固件的打印机,建议禁用此选项。Klipper 不会从圆弧指令中受益,因为固件会再次将其分割为线段。切片软件将线段转换为圆弧后,固件又将其转换回线段,会导致表面质量下降。"
msgid "Add line number"
msgstr "标注行号"
@@ -15783,11 +17935,13 @@ msgstr "Delta(三角)"
msgid "Best object position"
msgstr "最佳对象位置"
+# AI Translated
msgid "Best auto arranging position in range [0,1] w.r.t. bed shape."
-msgstr "最佳自动排列位置在[0,1]范围内,相对于打印床形状。"
+msgstr "自动摆放的最佳位置,取值范围为 [0,1],相对于热床形状。"
+# AI Translated
msgid "Enable this option if machine has auxiliary part cooling fan. G-code command: M106 P2 S(0-255)."
-msgstr "如果打印机有辅助风扇,可以开启此选项。G-code指令:M106 P2 S(0-255)"
+msgstr "如果打印机有辅助部件冷却风扇,可以开启此选项。G-code指令:M106 P2 S(0-255)。"
# AI Translated
msgid "Fan direction"
@@ -15801,14 +17955,16 @@ msgstr "打印机的冷却风扇方向"
msgid "Both"
msgstr "两者"
+# AI Translated
msgid ""
"Start the fan this number of seconds earlier than its target start time (you can use fractional seconds). It assumes infinite acceleration for this time estimation, and will only take into account G1 and G0 moves (arc fitting is unsupported).\n"
"It won't move fan commands from custom G-code (they act as a sort of 'barrier').\n"
"It won't move fan commands into the start G-code if the 'only custom start G-code' is activated.\n"
"Use 0 to deactivate."
msgstr ""
-"提前一定秒数启动风扇(可使用小数),且不考虑加速度,仅考虑 G1 和 G0 移动命令(不支持弧线拟合)。\n"
-"此功能不会移动自定义命令中的G-code,而是以屏蔽方式工作,就算启用了“仅自定义启动 G-code”,它也不会将风扇命令移动至启动G-code中。\n"
+"提前此秒数启动风扇(可使用小数)。此时间估算假定加速度无限大,且仅考虑 G1 和 G0 移动(不支持圆弧拟合)。\n"
+"它不会移动自定义 G-code 中的风扇命令(这些命令相当于一道“屏障”)。\n"
+"如果启用了“仅自定义起始 G-code”,它不会将风扇命令移动到起始 G-code 中。\n"
"设为 0 以禁用。"
msgid "Only overhangs"
@@ -15817,8 +17973,9 @@ msgstr "仅悬垂"
msgid "Will only take into account the delay for the cooling of overhangs."
msgstr "仅对悬垂有效"
+# AI Translated
msgid "Fan kick-start time"
-msgstr "风扇"
+msgstr "风扇全速启动时间"
msgid ""
"Emit a max fan speed command for this amount of seconds before reducing to target speed to kick-start the cooling fan.\n"
@@ -15847,16 +18004,21 @@ msgstr "耗时"
msgid "The printer cost per hour."
msgstr "打印机每小时运行成本"
+# AI Translated
msgid "money/h"
-msgstr "钱/时"
+msgstr "金额/h"
+# AI Translated
msgid "Support controlling chamber temperature"
-msgstr "支持仓温控制"
+msgstr "支持腔体温度控制"
+# AI Translated
msgid ""
"This option is enabled if machine support controlling chamber temperature\n"
"G-code command: M141 S(0-255)"
-msgstr "此选项会开启打印机的打印室温度控制(若有的话)。G-code命令:M141 S(0-255)"
+msgstr ""
+"如果打印机支持控制腔体温度,请启用此选项\n"
+"G-code命令:M141 S(0-255)"
msgid "Support air filtration"
msgstr "支持空气过滤"
@@ -15871,14 +18033,20 @@ msgstr ""
msgid "Use cooling filter"
msgstr "开启冷却过滤"
+# AI Translated
msgid "Enable this if printer support cooling filter"
-msgstr "开启该功能后,当腔温过高时,会自动关闭过滤以提高冷却效果"
+msgstr "如果打印机支持冷却过滤,请启用此选项"
msgid "G-code flavor"
msgstr "G-code风格"
+# AI Translated
msgid "What kind of G-code the printer is compatible with."
-msgstr "打印机兼容的G-code风格'"
+msgstr "打印机兼容的G-code风格。"
+
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin(旧版)"
msgid "Klipper"
msgstr "Klipper固件"
@@ -15897,17 +18065,20 @@ msgstr "颗粒改装打印机"
msgid "Enable this option if your printer uses pellets instead of filaments."
msgstr "如果您的打印机使用颗粒而不是耗材丝,请启用此选项"
+# AI Translated
msgid "Support multi bed types"
-msgstr "支持多种打印床类型"
+msgstr "支持多种热床类型"
+# AI Translated
msgid "Enable this option if you want to use multiple bed types."
-msgstr "如果要使用多种打印床类型,请启用此选项"
+msgstr "如果要使用多种热床类型,请启用此选项。"
msgid "Label objects"
msgstr "标注模型"
+# AI Translated
msgid "Enable this to add comments into the G-code labeling print moves with what object they belong to, which is useful for the Octoprint CancelObject plug-in. This setting is NOT compatible with Single Extruder Multi Material setup and Wipe into Object / Wipe into Infill."
-msgstr "启用此选项,将在G-code中添加注释,标记打印移动属于哪个对象,这对Octoprint CancelObject插件非常有用。此设置与单挤出机多材料设置和擦拭到对象/擦拭到填充不兼容。"
+msgstr "启用此选项,将在G-code中添加注释,标记打印移动属于哪个对象,这对Octoprint CancelObject插件非常有用。此设置与“单挤出机多材料”设置以及“冲刷到这个对象”/“冲刷到对象的填充”不兼容。"
msgid "Exclude objects"
msgstr "对象排除"
@@ -15936,14 +18107,16 @@ msgstr "此参数为每层填充添加轻微的位移以创建十字纹理。"
msgid "Sparse infill rotation template"
msgstr "稀疏填充旋转模板"
+# AI Translated
msgid "Rotate the sparse infill direction per layer using a template of angles. Enter comma-separated degrees (e.g., '0,30,60,90'). Angles are applied in order by layer and repeat when the list ends. Advanced syntax is supported: '+5' rotates +5° every layer; '+5#5' rotates +5° every 5 layers. See the Wiki for details. When a template is set, the standard infill direction setting is ignored. Note: some infill patterns (e.g., Gyroid) control rotation themselves; use with care."
-msgstr "使用角度模板旋转每层的稀疏填充方向。输入以逗号分隔的度数(例如“0,30,60,90”)。角度按层顺序应用,并在列表结束时重复。支持高级语法:“+5”每层旋转+5°; ‘+5#5’每 5 层旋转+5°。详细信息请参阅维基百科。设置模板后,将忽略标准填充方向设置。注意:一些填充图案(例如 Gyroid)本身控制旋转;小心使用。"
+msgstr "使用角度模板逐层旋转稀疏填充方向。输入以逗号分隔的角度(例如 '0,30,60,90')。角度按层依次应用,列表结束后重复。支持高级语法:'+5' 表示每层旋转 +5°;'+5#5' 表示每 5 层旋转 +5°。详情请参阅 Wiki。设置模板后,将忽略标准的填充方向设置。注意:某些填充图案(例如螺旋体)会自行控制旋转,请谨慎使用。"
msgid "Solid infill rotation template"
msgstr "实心填充旋转模板"
+# AI Translated
msgid "This parameter adds a rotation of solid infill direction to each layer according to the specified template. The template is a comma-separated list of angles in degrees, e.g. '0,90'. The first angle is applied to the first layer, the second angle to the second layer, and so on. If there are more layers than angles, the angles will be repeated. Note that not all solid infill patterns support rotation."
-msgstr "该参数根据指定的模板为每个图层添加实体填充方向的旋转。该模板是一个以逗号分隔的角度列表,以度为单位,例如'0,90'。第一个角度应用于第一层,第二个角度应用于第二层,依此类推。如果层数多于角度,则角度将重复。请注意,并非所有实心填充图案都支持旋转。"
+msgstr "该参数根据指定的模板为每层添加实心填充方向的旋转。该模板是一个以逗号分隔的角度列表,以度为单位,例如'0,90'。第一个角度应用于第一层,第二个角度应用于第二层,依此类推。如果层数多于角度,则角度将重复。请注意,并非所有实心填充图案都支持旋转。"
msgid "Skeleton infill density"
msgstr "骨架填充密度"
@@ -15951,29 +18124,36 @@ msgstr "骨架填充密度"
msgid "The remaining part of the model contour after removing a certain depth from the surface is called the skeleton. This parameter is used to adjust the density of this section. When two regions have the same sparse infill settings but different skeleton densities, their skeleton areas will develop overlapping sections. Default is as same as infill density."
msgstr "模型轮廓从表面去除一定深度后剩余的部分称为骨架。该参数用于调整该部分的密度。当两个区域具有相同的稀疏填充设置但不同的骨架密度时,它们的骨架区域将产生重叠部分。默认值与填充密度相同。"
+# AI Translated
msgid "Skin infill density"
-msgstr "外壳填充密度"
+msgstr "表皮填充密度"
+# AI Translated
msgid "The portion of the model's outer surface within a certain depth range is called the skin. This parameter is used to adjust the density of this section. When two regions have the same sparse infill settings but different skin densities, this area will not be split into two separate regions. Default is as same as infill density."
-msgstr "模型外表面在一定深度范围内的部分称为蒙皮。该参数用于调整该部分的密度。当两个区域具有相同的稀疏填充设置但不同的蒙皮密度时,该区域不会被分割为两个单独的区域。默认值与填充密度相同。"
+msgstr "模型外表面在一定深度范围内的部分称为表皮。该参数用于调整该部分的密度。当两个区域具有相同的稀疏填充设置但不同的表皮密度时,该区域不会被分割为两个单独的区域。默认值与填充密度相同。"
+# AI Translated
msgid "Skin infill depth"
-msgstr "外壳填充深度"
+msgstr "表皮填充深度"
+# AI Translated
msgid "The parameter sets the depth of skin."
-msgstr "该参数设置外壳深度"
+msgstr "该参数设置表皮深度。"
msgid "Infill lock depth"
msgstr "填充锁定深度"
+# AI Translated
msgid "The parameter sets the overlapping depth between the interior and skin."
-msgstr "该参数设置内部与外壳之间的重叠深度"
+msgstr "该参数设置内部与表皮之间的重叠深度。"
+# AI Translated
msgid "Skin line width"
-msgstr "外壳线宽"
+msgstr "表皮线宽"
+# AI Translated
msgid "Adjust the line width of the selected skin paths."
-msgstr "调整选中外壳路径的线宽"
+msgstr "调整选中表皮路径的线宽。"
msgid "Skeleton line width"
msgstr "骨架线宽"
@@ -15995,9 +18175,11 @@ msgstr "填满图案顶部"
msgid "Choose this option if you want to completely fill in the tops of the infill pattern"
msgstr "如果希望将填充图案的顶部完全填满,请选择此选项"
+# AI Translated
msgid "Infill combination - Max layer height"
-msgstr "填充组合 - 最大层高"
+msgstr "合并填充 - 最大层高"
+# AI Translated
msgid ""
"Maximum layer height for the combined sparse infill.\n"
"\n"
@@ -16007,22 +18189,24 @@ msgid ""
"\n"
"Use either absolute mm values (eg. 0.32mm for a 0.4mm nozzle) or % values (eg 80%). This value must not be larger than the nozzle diameter."
msgstr ""
-"组合稀疏填充的最大层高。\n"
+"合并稀疏填充的最大层高。\n"
"\n"
"设置为 0 或 100% 使用喷嘴直径(以最大程度减少打印时间),或设置为约 80% 以最大化稀疏填充强度。\n"
"\n"
-"填充组合的层数是通过将此值除以层高并向下取整得出的。\n"
+"合并填充的层数是通过将此值除以层高并向下取整得出的。\n"
"\n"
-"可以使用绝对 mm 值(例如 0.4mm 喷嘴使用 0.32mm)或百分比值(例如 80%)。此值不得大于喷嘴直径。"
+"可以使用绝对 mm 值(例如 0.4mm 喷嘴使用 0.32mm)或 % 值(例如 80%)。此值不得大于喷嘴直径。"
msgid "Enable clumping detection"
msgstr "启用结块检测"
+# AI Translated
msgid "Clumping detection layers"
-msgstr "结块监测层数"
+msgstr "结块检测层数"
+# AI Translated
msgid "Clumping detection layers."
-msgstr "结块监测层数"
+msgstr "结块检测层数。"
msgid "Probing exclude area of clumping"
msgstr "结块检测排除区域"
@@ -16033,14 +18217,16 @@ msgstr "结块检测排除区域"
msgid "Lateral lattice angle 1"
msgstr "侧向晶格角度1"
+# AI Translated
msgid "The angle of the first set of Lateral lattice elements in the Z direction. Zero is vertical."
-msgstr "第一组二维晶格单元在Z方向的角度。零表示垂直。"
+msgstr "第一组侧向晶格单元在Z方向的角度。零表示垂直。"
msgid "Lateral lattice angle 2"
msgstr "侧向晶格角度2"
+# AI Translated
msgid "The angle of the second set of Lateral lattice elements in the Z direction. Zero is vertical."
-msgstr "第二组二维晶格单元在Z方向的角度。零表示垂直。"
+msgstr "第二组侧向晶格单元在Z方向的角度。零表示垂直。"
msgid "Infill overhang angle"
msgstr "填充悬垂角度"
@@ -16073,13 +18259,17 @@ msgstr "用于简化闪电分支的最大拉直角度。"
msgid "Sparse infill anchor length"
msgstr "稀疏填充锚线长度"
+# AI Translated
msgid ""
"Connect an infill line to an internal perimeter with a short segment of an additional perimeter. If expressed as percentage (example: 15%) it is calculated over infill extrusion width. Orca Slicer tries to connect two close infill lines to a short perimeter segment. If no such perimeter segment shorter than infill_anchor_max is found, the infill line is connected to a perimeter segment at just one side and the length of the perimeter segment taken is limited to this parameter, but no longer than anchor_length_max.\n"
"Set this parameter to zero to disable anchoring perimeters connected to a single infill line."
-msgstr "用附加周长的一小段将填充线连接到内部周长。如果以百分比(例如:15%)表示,则计算填充拉伸宽度。OrcaSlicer 试图将两条紧密的填充线连接到一个短的周长段。如果找不到短于“填充”和“锚点”最大值的周长线段,则填充线仅在一侧连接到周长线段,并且所取周长线段的长度仅限于此参数,但不超过“锚点长度”最大值。将此参数设置为零,以禁用连接到单个填充线的锚点周长。"
+msgstr ""
+"用一小段附加的墙将填充线连接到内墙。如果以百分比表示(例如:15%),则根据填充线宽计算。Orca Slicer 会尝试用一小段墙将两条相邻的填充线连接起来。如果找不到短于 infill_anchor_max 的墙段,则填充线只在一侧连接到墙段,所取墙段的长度限制为此参数,但不超过 anchor_length_max。\n"
+"将此参数设为零,即可禁用连接到单条填充线的锚定墙。"
+# AI Translated
msgid "0 (no open anchors)"
-msgstr "0 (无锚线)"
+msgstr "0(无开放锚线)"
msgid "1000 (unlimited)"
msgstr "1000(无限制)"
@@ -16087,37 +18277,45 @@ msgstr "1000(无限制)"
msgid "Maximum length of the infill anchor"
msgstr "填充锚线的最大长度"
+# AI Translated
msgid ""
"Connect an infill line to an internal perimeter with a short segment of an additional perimeter. If expressed as percentage (example: 15%) it is calculated over infill extrusion width. Orca Slicer tries to connect two close infill lines to a short perimeter segment. If no such perimeter segment shorter than this parameter is found, the infill line is connected to a perimeter segment at just one side and the length of the perimeter segment taken is limited to infill_anchor, but no longer than this parameter.\n"
"If set to 0, the old algorithm for infill connection will be used, it should create the same result as with 1000 & 0."
-msgstr "用附加周长的一小段将填充线连接到内部周长。如果以百分比(例如:15%)表示,则计算填充拉伸宽度。OrcaSlicer 试图将两条紧密的填充线连接到一个短的周长段。如果找不到比此参数短的周长线段,则填充线仅在一侧连接到周长线段,并且所采用的周长线段的长度仅限于 infl_anchor,但不超过此参数。将此参数设置为零以禁用锚点。"
+msgstr ""
+"用一小段附加的墙将填充线连接到内墙。如果以百分比表示(例如:15%),则根据填充线宽计算。Orca Slicer 会尝试用一小段墙将两条相邻的填充线连接起来。如果找不到短于此参数的墙段,则填充线只在一侧连接到墙段,所取墙段的长度限制为 infill_anchor,但不超过此参数。\n"
+"如果设为 0,将使用旧的填充连接算法,其结果应与设为 1000 和 0 时相同。"
msgid "0 (Simple connect)"
msgstr "0(简单连接)"
+# AI Translated
msgid ""
"Filament to print internal sparse infill.\n"
"\"Default\" uses the active object/part filament."
msgstr ""
-"用于打印内部稀疏填充的耗材。\n"
-"“默认”使用当前对象/零件的耗材。"
+"用于打印内部稀疏填充的耗材丝。\n"
+"“默认”使用当前对象/零件的耗材丝。"
+# AI Translated
msgid "Line width of internal sparse infill. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "内部稀疏填充的线宽。如果以%表示,它将基于喷嘴直径来计算。"
+msgstr "内部稀疏填充的线宽。如果以%表示,将根据喷嘴直径计算。"
+# AI Translated
msgid "Infill/wall overlap"
-msgstr "填充/墙 重叠"
+msgstr "填充/墙重叠"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "填充区域略微扩大以与墙壁重叠,以获得更好的粘合。百分比值相对于稀疏填充的线宽。将此值设置为约10-15%,以最小化潜在的过挤出和材料积累,从而导致顶部表面粗糙。"
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "此设置使填充区域略微扩大,与墙重叠以获得更好的粘合。百分比值相对于内墙线宽。建议将此值设为约10-15%,以尽量减少可能出现的过挤出和材料堆积,避免顶面粗糙。"
msgid "Top/Bottom solid infill/wall overlap"
msgstr "顶/底部实心填充/墙重叠率"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "顶部实心填充区域略微扩大,以便与墙壁重叠,以获得更好的粘合,并减少顶部填充与墙壁相接处的小孔出现。25-30%的值是一个很好的起点,可以减少小孔的出现。百分比值相对于稀疏填充的线宽"
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "顶部实心填充区域略微扩大,以便与墙重叠,以获得更好的粘合,并减少顶部填充与墙相接处的小孔出现。25-30%的值是一个很好的起点,可以减少小孔的出现。百分比值相对于内墙线宽。"
msgid "This is the speed for internal sparse infill."
msgstr "内部稀疏填充的打印速度"
@@ -16140,17 +18338,20 @@ msgstr "分段区域的最大宽度"
msgid "Maximum width of a segmented region. A value of 0 disables this feature."
msgstr "分段区域的最大宽度。将其设置为零会禁用此功能。"
+# AI Translated
msgid "Interlocking depth of a segmented region"
-msgstr "分割区域的交错深度"
+msgstr "分段区域的互锁深度"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "分割区域的交错深度。如果\"mmu_segmented_region_max_width\"为零或\"mmu_segmented_region_interlocking_depth\"大于\"mmu_segmented_region_max_width\",则将被忽略。零将禁用此功能。"
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "分段区域的互锁深度。每隔一层,分段区域将被限制在此深度内。如果启用了 \"interlocking_beam\",则将被忽略。零将禁用此功能。"
msgid "Use beam interlocking"
msgstr "启用互锁梁"
+# AI Translated
msgid "Generate interlocking beam structure at the locations where different filaments touch. This improves the adhesion between filaments, especially models printed in different materials."
-msgstr "在不同耗材接触的位置生成互锁梁结构。这改善了耗材之间的粘合性,特别是使用不同材料打印的模型。"
+msgstr "在不同耗材丝接触的位置生成互锁梁结构。这改善了耗材丝之间的粘合性,特别是使用不同材料打印的模型。"
msgid "Interlocking beam width"
msgstr "互锁梁宽度"
@@ -16173,8 +18374,9 @@ msgstr "互锁结构梁的高度,以层数为单位。较少的层更强,但
msgid "Interlocking depth"
msgstr "互锁深度"
+# AI Translated
msgid "The distance from the boundary between filaments to generate interlocking structure, measured in cells. Too few cells will result in poor adhesion."
-msgstr "从耗材边界生成互锁结构的距离,以单元格为单位。太少的单元格将导致粘合不良。"
+msgstr "从耗材丝边界生成互锁结构的距离,以单元格为单位。太少的单元格将导致粘合不良。"
msgid "Interlocking boundary avoidance"
msgstr "互锁与边界的留白量"
@@ -16185,14 +18387,16 @@ msgstr "模型边框与互锁结构的距离,以单元格为单位。"
msgid "Ironing type"
msgstr "熨烫类型"
+# AI Translated
msgid "Ironing uses a small flow to print at the same height of a surface to make flat surfaces smoother. This setting controls which layers are being ironed."
-msgstr "熨烫指的是使用小流量在表面的同高度打印,进而是的平面更加光滑。这个设置用于设置哪些层进行熨烫。"
+msgstr "熨烫指的是使用小流量在表面的同高度打印,进而使得平面更加光滑。这个设置用于设置哪些层进行熨烫。"
msgid "No ironing"
msgstr "不熨烫"
+# AI Translated
msgid "All top surfaces"
-msgstr "顶面"
+msgstr "所有顶面"
msgid "Topmost surface only"
msgstr "最顶面"
@@ -16246,13 +18450,14 @@ msgstr "启用 Z 层轮廓(也称 Z 层抗锯齿)。"
msgid "Minimize wall height angle"
msgstr "最小化墙高角度"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
-"降低顶面墙壁的高度,使其与模型边缘高度相匹配。\n"
-"影响坡度小于此角度(度)的墙壁。\n"
+"降低顶面墙的高度,使其与模型边缘高度相匹配。\n"
+"影响坡度大于此角度(度)的墙。\n"
"合理的取值为 35。设置为 0 以禁用。"
msgid "Don't alternate fill direction"
@@ -16327,17 +18532,21 @@ msgstr "Z最大速度"
msgid "Maximum speed E"
msgstr "E最大速度"
-msgid "Maximum X speed"
-msgstr "X最大速度"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "X 轴最大速度"
-msgid "Maximum Y speed"
-msgstr "Y最大速度"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Y 轴最大速度"
-msgid "Maximum Z speed"
-msgstr "Z最大速度"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Z 轴最大速度"
-msgid "Maximum E speed"
-msgstr "E最大速度"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "E 轴最大速度"
msgid "Maximum acceleration X"
msgstr "X最大加速度"
@@ -16390,12 +18599,13 @@ msgstr "E轴最大抖动"
msgid "Maximum Junction Deviation"
msgstr "最大结点偏差"
+# AI Translated
msgid ""
"Maximum junction deviation (M205 J, only apply if JD > 0 for Marlin Firmware\n"
"If your Marlin 2 printer uses Classic Jerk set this value to 0.)"
msgstr ""
-"最大连接偏差(M205 J,仅当 JD > 0 对于 Marlin 固件时适用\n"
-"如果您的 Marlin 2 打印机使用 Classic Jerk,请将此值设置为 0。)"
+"最大结点偏差(M205 J,仅在 JD > 0 时适用于 Marlin 固件\n"
+"如果您的 Marlin 2 打印机使用经典抖动(Classic Jerk),请将此值设为 0。)"
msgid "Minimum speed for extruding"
msgstr "最小挤出速度"
@@ -16464,12 +18674,13 @@ msgstr "最大空驶加速度(M204 T),仅适用于Marlin 2"
msgid "Resonance avoidance"
msgstr "共振规避"
+# AI Translated
msgid ""
"By reducing the speed of the outer wall to avoid the resonance zone of the printer, ringing on the surface of the model are avoided.\n"
"Please turn this option off when testing ringing."
msgstr ""
-"通过降低外壁的速度以避开打印机的共振区,可以避免模型表面产生振稳。\n"
-"在测试振稳时,请关闭此选项。"
+"通过降低外墙速度以避开打印机的共振区,可以避免模型表面产生振纹。\n"
+"在测试振纹时,请关闭此选项。"
msgid "Min"
msgstr "最小"
@@ -16483,8 +18694,9 @@ msgstr "最大"
msgid "Maximum speed of resonance avoidance."
msgstr "共振规避的最大速度。"
+# AI Translated
msgid "Emit input shaping"
-msgstr "输出输入整形"
+msgstr "写入输入整形参数"
msgid ""
"Override firmware input shaping settings.\n"
@@ -16590,6 +18802,7 @@ msgstr "挤出机的最高可打印层高度。用于限制启用自适应层高
msgid "Extrusion rate smoothing"
msgstr "平滑挤出率"
+# AI Translated
msgid ""
"This parameter smooths out sudden extrusion rate changes that happen when the printer transitions from printing a high flow (high speed/larger width) extrusion to a lower flow (lower speed/smaller width) extrusion and vice versa.\n"
"\n"
@@ -16605,18 +18818,19 @@ msgid ""
"\n"
"Note: this parameter disables arc fitting."
msgstr ""
-"此参数是打印机从打印高流量挤出(高速/较大宽度)向低流量挤出(低速/较小宽度)时用于突然变化挤出速率的平滑,反之亦然。\n"
-"它定义了挤出体积流量(mm³/s)随时间变化的最大速率。更高的值意味着允许更高的挤出速率变化,从而产生更快速的过渡。\n"
+"此参数用于平滑打印机从高流量(高速/较大线宽)挤出切换到低流量(低速/较小线宽)挤出时(反之亦然)出现的挤出速率突变。\n"
+"\n"
+"它定义了挤出体积流量(mm³/s)随时间变化的最大速率。值越高,允许的挤出速率变化越大,速度过渡也就越快。\n"
"\n"
"值为0将禁用该功能。\n"
"\n"
-"对于高速、高流量的近程挤出机(如Bambu或Voron)通常不需要该值。但是,在特征速度变化很大的某些情况下,它可以提供一些边际收益。例如,当由于悬垂而出现严重的减速时。在这些情况下,建议使用一个大的值大约300-350 mm³/s²的,因为这刚好允许足够的平滑,以帮助 Pressure Advance 实现更平滑的流量过渡。\n"
+"对于高速、高流量的近程挤出机打印机(如 Bambu Lab 或 Voron),通常不需要此值。但在特征速度变化很大的某些情况下(例如因悬垂而大幅减速时),它可以带来一些边际收益。在这些情况下,建议使用约 300-350 mm³/s² 的较高值,这样恰好能提供足够的平滑,帮助 Pressure Advance 实现更平滑的流量过渡。\n"
"\n"
-"对于没有 Pressure Advance 的较慢打印机,该值应该设置得非常低。对于近程挤出机来说10-15 mm³/s²是一个很好值的起点,而对于远程挤出机来说是5-10 mm³/s²。\n"
+"对于没有 Pressure Advance 的较慢打印机,该值应设置得低得多。对于近程挤出机,10-15 mm³/s² 是一个很好的起点;对于远程挤出机,则为 5-10 mm³/s²。\n"
"\n"
-"这个功能在Prusa切片机中被称为压力均衡器。\n"
+"此功能在 PrusaSlicer 中称为 Pressure Equalizer(压力均衡器)。\n"
"\n"
-"注意:此参数禁用圆弧拟合。"
+"注意:此参数会禁用圆弧拟合。"
msgid "mm³/s²"
msgstr "mm³/s²"
@@ -16624,29 +18838,37 @@ msgstr "mm³/s²"
msgid "Smoothing segment length"
msgstr "平滑段长度"
+# AI Translated
msgid ""
"A lower value results in smoother extrusion rate transitions. However, this results in a significantly larger G-code file and more instructions for the printer to process.\n"
"\n"
"Default value of 3 works well for most cases. If your printer is stuttering, increase this value to reduce the number of adjustments made.\n"
"\n"
"Allowed values: 0.5-5"
-msgstr "值越低,挤出速率过渡越平滑。然而,这会导致 G-code 文件变得更大,并且打印机需要处理更多指令。 默认值 3 适用于大多数情况。如果您的打印机出现卡顿,请增加该值以减少调整次数。 允许值:0.5-5"
+msgstr ""
+"值越低,挤出速率过渡越平滑。但这会使 G-code 文件明显变大,打印机也需要处理更多指令。\n"
+"\n"
+"默认值 3 适用于大多数情况。如果打印机出现卡顿,请增大该值以减少调整次数。\n"
+"\n"
+"允许值:0.5-5"
msgid "Apply only on external features"
msgstr "仅应用于外部特征"
+# AI Translated
msgid "Applies extrusion rate smoothing only on external perimeters and overhangs. This can help reduce artefacts due to sharp speed transitions on externally visible overhangs without impacting the print speed of features that will not be visible to the user."
-msgstr "仅对外周和悬伸应用挤出速率平滑。这有助于减少由于外部可见突出部分上的急剧速度过渡而导致的伪影,而不会影响用户不可见的特征的打印速度。"
+msgstr "仅对外墙和悬垂应用挤出速率平滑。这有助于减少外部可见悬垂上因速度急剧变化而产生的瑕疵,同时不影响用户看不到的特征的打印速度。"
msgid "Minimum speed for part cooling fan."
msgstr "部件冷却风扇的最小转速"
+# AI Translated
msgid ""
"Speed of auxiliary part cooling fan. Auxiliary fan will run at this speed during printing except the first several layers which is defined by no cooling layers.\n"
"Please enable auxiliary_fan in printer settings to use this feature. G-code command: M106 P2 S(0-255)"
msgstr ""
"辅助部件冷却风扇的转速。辅助部件冷却风扇将一直运行在该速度,除了设置的无需冷却的前若干层\n"
-"请在打印机设置中启用辅助风扇以使用此功能。G-code指令:M106 P2 S(0-255)"
+"请在打印机设置中启用“辅助部件冷却风扇”以使用此功能。G-code指令:M106 P2 S(0-255)"
msgid "For the first"
msgstr "在最初的"
@@ -16679,8 +18901,9 @@ msgstr "喷嘴直径"
msgid "Configuration notes"
msgstr "配置注释"
+# AI Translated
msgid "You can put here your personal notes. This text will be added to the G-code header comments."
-msgstr "你可以把你的个人注释放在这里。该文本将添加到G-code首部注释中。"
+msgstr "您可以把您的个人注释放在这里。该文本将添加到G-code首部注释中。"
msgid "Host Type"
msgstr "主机类型"
@@ -16697,32 +18920,39 @@ msgstr "从切刀位置到喷嘴尖端的内腔体积"
msgid "Cooling tube position"
msgstr "喉管位置"
+# AI Translated
msgid "Distance of the center-point of the cooling tube from the extruder tip."
-msgstr "喉管的中心点与挤出机齿尖的距离。"
+msgstr "喉管中心点与喷嘴尖端的距离。"
msgid "Cooling tube length"
msgstr "喉管长度"
+# AI Translated
msgid "Length of the cooling tube to limit space for cooling moves inside it."
-msgstr "喉管的长度,用于限制冷却内部移动的空间。"
+msgstr "喉管的长度,用于限制在其内部进行冷却移动的空间。"
+# AI Translated
msgid "High extruder current on filament swap"
-msgstr "更换耗材挤出机大电流"
+msgstr "更换耗材丝挤出机大电流"
+# AI Translated
msgid "It may be beneficial to increase the extruder motor current during the filament exchange sequence to allow for rapid ramming feed rates and to overcome resistance when loading a filament with an ugly shaped tip."
-msgstr "可能有益于换耗材过程中增加挤出机电流,克服加载耗材时的阻力以加快尖端成型进料速率从而避免产生难看形状的尖端。"
+msgstr "在耗材丝更换过程中提高挤出机电机电流可能有益,这样可以实现快速的尖端成型进料速率,并在装载尖端形状不佳的耗材丝时克服阻力。"
+# AI Translated
msgid "Filament parking position"
-msgstr "耗材停靠位置"
+msgstr "耗材丝停靠位置"
+# AI Translated
msgid "Distance of the extruder tip from the position where the filament is parked when unloaded. This should match the value in printer firmware."
-msgstr "卸载时,挤出机齿尖与耗材停放位置的距离。这应该与打印机固件中的值相匹配。"
+msgstr "卸载时,耗材丝停放位置与喷嘴尖端的距离。该值应与打印机固件中的值一致。"
msgid "Extra loading distance"
msgstr "额外加载距离"
+# AI Translated
msgid "When set to zero, the distance the filament is moved from parking position during load is exactly the same as it was moved back during unload. When positive, it is loaded further, if negative, the loading move is shorter than unloading."
-msgstr "当设置为零时,耗材的加载移动与卸载移动的距离相同。如果为正,加载比卸载长。如果为负,加载比卸载短。"
+msgstr "当设置为零时,耗材丝的加载移动与卸载移动的距离相同。如果为正,加载比卸载长。如果为负,加载比卸载短。"
msgid "Start end points"
msgstr "起始终止点"
@@ -16733,11 +18963,13 @@ msgstr "从切割区域到垃圾桶的起始和结束点。"
msgid "Reduce infill retraction"
msgstr "减小填充回抽"
+# AI Translated
msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped."
-msgstr "当空驶完全在填充区域内时不触发回抽。这意味着即使漏料也是不可见的。对于复杂模型,该设置能够减少回抽次数以及打印时长,但是会造成G-code生成变慢"
+msgstr "当空驶完全在填充区域内时不触发回抽。这意味着即使渗料也看不到。对于复杂模型,该设置能够减少回抽次数以及打印时长,但是会造成切片和G-code生成变慢。请注意,在跳过回抽的区域也不会执行Z抬升。"
+# AI Translated
msgid "This option will drop the temperature of the inactive extruders to prevent oozing."
-msgstr "此选项将降低非活动挤出机的温度,以防止渗出。"
+msgstr "此选项将降低非活动挤出机的温度,以防止渗料。"
msgid "Filename format"
msgstr "文件名格式"
@@ -16748,8 +18980,9 @@ msgstr "用户可以自定义导出项目文件的名称。"
msgid "Make overhangs printable"
msgstr "悬垂可打印化"
+# AI Translated
msgid "Modify the geometry to print overhangs without support material."
-msgstr "修改几何形状使得悬垂部分无需支撑材料或者搭桥打印。"
+msgstr "修改几何形状,使悬垂部分无需支撑材料即可打印。"
msgid "Make overhangs printable - Maximum angle"
msgstr "悬垂可打印化的最大角度"
@@ -16757,14 +18990,16 @@ msgstr "悬垂可打印化的最大角度"
msgid "Maximum angle of overhangs to allow after making more steep overhangs printable.90° will not change the model at all and allow any overhang, while 0 will replace all overhangs with conical material."
msgstr "在使悬垂可打印化后,允许的悬垂最大角度。90°将完全不改变模型并允许任何悬垂,而0°将用圆锥形材料替换所有悬垂部分。"
+# AI Translated
msgid "Make overhangs printable - Hole area"
-msgstr "最大孔洞面积"
+msgstr "悬垂可打印化的孔洞面积"
msgid "Maximum area of a hole in the base of the model before it's filled by conical material. A value of 0 will fill all the holes in the model base."
msgstr "模型底部的孔洞在被圆锥形材料填充前所允许的最大面积。值为0将填充模型底部的所有孔洞。"
+# AI Translated
msgid "Detect overhang walls"
-msgstr "识别悬垂外墙"
+msgstr "识别悬垂墙"
#, c-format, boost-format
msgid "This detects the overhang percentage relative to line width and uses a different speed to print. For 100%% overhang, bridging speed is used."
@@ -16787,28 +19022,32 @@ msgstr ""
msgid "Outer walls"
msgstr "外墙"
+# AI Translated
msgid ""
"Filament to print outer walls.\n"
"\"Default\" uses the active object/part filament."
msgstr ""
-"用于打印外墙的耗材。\n"
-"“默认”使用当前对象/零件的耗材。"
+"用于打印外墙的耗材丝。\n"
+"“默认”使用当前对象/零件的耗材丝。"
msgid "Inner walls"
msgstr "内墙"
+# AI Translated
msgid ""
"Filament to print inner walls.\n"
"\"Default\" uses the active object/part filament."
msgstr ""
-"用于打印内墙的耗材。\n"
-"“默认”使用当前对象/零件的耗材。"
+"用于打印内墙的耗材丝。\n"
+"“默认”使用当前对象/零件的耗材丝。"
+# AI Translated
msgid "Line width of inner wall. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "内墙的线宽。如果以%表示,它将基于喷嘴直径来计算。"
+msgstr "内墙的线宽。如果以%表示,将根据喷嘴直径计算。"
+# AI Translated
msgid "This is the speed for inner walls."
-msgstr "内圈墙打印速度"
+msgstr "内墙的打印速度。"
# AI Translated
msgid "This is the number of walls per layer."
@@ -16817,6 +19056,7 @@ msgstr "每一层的墙层数"
msgid "Alternate extra wall"
msgstr "交替添加额外内墙"
+# AI Translated
msgid ""
"This setting adds an extra wall to every other layer. This way the infill gets wedged vertically between the walls, resulting in stronger prints.\n"
"\n"
@@ -16824,20 +19064,22 @@ msgid ""
"\n"
"Using lightning infill together with this option is not recommended as there is limited infill to anchor the extra perimeters to."
msgstr ""
-"此设置在每隔一层添加一层额外的内墙。这样,填充物就会垂直地夹在墙壁之间,从而产生更牢固的打印件。\n"
+"此设置在每隔一层添加一层额外的墙。这样,填充就会垂直地夹在墙之间,从而使打印件更牢固。\n"
"\n"
-"启用此选项时,需要禁用确保垂直壳厚度选项。\n"
+"启用此选项时,需要禁用“确保垂直外壳厚度”选项。\n"
"\n"
-"不建议将闪电填充与此选项一起使用,因为填充物有限,无法将额外的壁厚固定在填充物上。"
+"不建议将闪电填充与此选项一起使用,因为可供额外的墙锚定的填充有限。"
+# AI Translated
msgid "If you want to process the output G-code through custom scripts, just list their absolute paths here. Separate multiple scripts with a semicolon. Scripts will be passed the absolute path to the G-code file as the first argument, and they can access the Orca Slicer config settings by reading environment variables."
-msgstr "如果您希望使用自定义脚本来处理输出的 G-code,只需要在此列出这些脚本的绝对路径,使用分号来分割多个脚本。脚本执行的第一个参数将会被设置为 G-code 文件的绝对路径,并支持脚本通过全局变量来读取 Orca Slicer 的设置。"
+msgstr "如果您希望使用自定义脚本来处理输出的 G-code,只需要在此列出这些脚本的绝对路径,使用分号来分割多个脚本。脚本执行的第一个参数将会被设置为 G-code 文件的绝对路径,并支持脚本通过环境变量来读取 Orca Slicer 的设置。"
msgid "Change extrusion role G-code (process)"
msgstr "挤出类型更换 G-code(工艺)"
+# AI Translated
msgid "This G-code is inserted when the extrusion role is changed. It runs after the machine and filament extrusion role G-code."
-msgstr "当挤出类型发生变化时插入此 G-code。它在机器和耗材的挤出类型更换 G-code 之后运行。"
+msgstr "当挤出类型发生变化时插入此 G-code。它在机器和耗材丝的挤出类型更换 G-code 之后运行。"
# AI Translated
msgid "Plugins Used"
@@ -16848,7 +19090,7 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "此预设引用的插件功能,以 name;uuid;capability 形式存储。"
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr "在每个切片流水线步骤中调用的 Python 插件,用于读取和修改中间切片数据,包括最终的 G-code 后处理步骤。研究/实验性。"
msgid "Printer type"
@@ -16860,8 +19102,9 @@ msgstr "打印机类型"
msgid "Printer notes"
msgstr "打印机注释"
+# AI Translated
msgid "You can put your notes regarding the printer here."
-msgstr "你可以把你关于打印机的注释放在这里。"
+msgstr "您可以在此填写关于打印机的注释。"
msgid "Printer variant"
msgstr "打印机变种"
@@ -16881,20 +19124,23 @@ msgstr "在XY平面扩展所有筏层"
msgid "First layer density"
msgstr "首层密度"
+# AI Translated
msgid "This is the density of the first raft or support layer."
-msgstr "筏和支撑的首层密度"
+msgstr "筏层或支撑首层的密度。"
msgid "First layer expansion"
msgstr "首层扩展"
+# AI Translated
msgid "This expands the first raft or support layer to improve bed adhesion."
-msgstr "扩展筏和支撑的首层可以改善和热床的粘接。"
+msgstr "扩展筏层或支撑的首层,以改善与热床的粘接。"
msgid "Raft layers"
msgstr "筏层"
+# AI Translated
msgid "Object will be raised by this number of support layers. Use this function to avoid warping when printing ABS."
-msgstr "模型会在相应层数的支撑上抬高进行打印。使用该功能通常用于打印ABS时翘曲。"
+msgstr "模型会在相应层数的支撑上抬高进行打印。使用此功能可避免打印ABS时翘曲。"
msgid "The G-code path is generated after simplifying the contour of models to avoid too many points and G-code lines. Smaller values mean higher resolution and more time required to slice."
msgstr "为了避免G-code文件中过密集的点和走线,G-code走线通常是在简化模型的外轮廓之后生成。越小的数值代表更高的分辨率,同时需要更长的切片时间。"
@@ -16933,11 +19179,13 @@ msgstr "强制在换层时回抽。"
msgid "Retraction Length"
msgstr "回抽长度"
+# AI Translated
msgid "Some amount of material in extruder is pulled back to avoid ooze during long travel. Set zero to disable retraction."
-msgstr "挤出机中的一些材料被拉回,以避免在长行程期间渗出。设置为零以禁用回缩。"
+msgstr "挤出机中的部分材料会被抽回,以避免长距离空驶时渗料。设为0以禁用回抽。"
+# AI Translated
msgid "Long retraction when cut (beta)"
-msgstr "切料时回抽(实验)"
+msgstr "切料时长回抽(试验)"
msgid "Experimental feature: Retracting and cutting off the filament at a longer distance during changes to minimize purge. While this reduces flush significantly, it may also raise the risk of nozzle clogs or other printing problems."
msgstr "实验性选项。在更换耗材丝时,将耗材丝回抽一段距离后再切断以最小化冲刷。虽然这大大减少了冲刷,但也可能增加喷嘴堵塞或其他打印问题的风险。"
@@ -16948,11 +19196,13 @@ msgstr "切料回抽距离"
msgid "Experimental feature: Retraction length before cutting off during filament change."
msgstr "实验性选项:在更换耗材丝时,切断前的回抽长度"
+# AI Translated
msgid "Long retraction when extruder change"
-msgstr "更换挤出机时长回缩"
+msgstr "更换挤出机时长回抽"
+# AI Translated
msgid "Retraction distance when extruder change"
-msgstr "更换挤出机时的回缩距离"
+msgstr "更换挤出机时的回抽距离"
# AI Translated
msgid "Retraction Length (Toolchange)"
@@ -16971,14 +19221,16 @@ msgstr "回抽完成之后,喷嘴轻微抬升,和打印件之间产生一定
msgid "Z-hop lower boundary"
msgstr "Z抬升下边界"
+# AI Translated
msgid "Z-hop will only come into effect when Z is above this value and is below the parameter: \"Z-hop upper boundary\"."
-msgstr "只有当Z高于此值且低于参数(Z抬升上边界)时,Z抬升才会生效"
+msgstr "只有当Z高于此值且低于参数“Z抬升上边界”时,Z抬升才会生效。"
msgid "Z-hop upper boundary"
msgstr "Z抬升上边界"
+# AI Translated
msgid "If this value is positive, Z-hop will only come into effect when Z is above the parameter: \"Z-hop lower boundary\" and is below this value."
-msgstr "如果该值为正,则Z抬升仅在Z高于参数(Z抬升下边界)且低于该值时才会生效"
+msgstr "如果该值为正,则Z抬升仅在Z高于参数“Z抬升下边界”且低于该值时才会生效。"
msgid "Z-hop type"
msgstr "Z抬升类型"
@@ -16995,8 +19247,9 @@ msgstr "螺旋"
msgid "Traveling angle"
msgstr "空驶抬高角度"
+# AI Translated
msgid "Traveling angle for Slope and Spiral Z-hop type. Setting it to 90° results in Normal Lift."
-msgstr "斜坡和螺旋 Z 跳类型的行进角度。将其设置为 90° 会产生正常升力。"
+msgstr "“梯形”和“螺旋”Z抬升类型的空驶抬高角度。设为90°时即为普通抬升。"
msgid "Only lift Z above"
msgstr "仅在高度以上抬Z"
@@ -17025,11 +19278,13 @@ msgstr "仅顶面"
msgid "Bottom Only"
msgstr "仅底面"
+# AI Translated
msgid "Top and Bottom"
-msgstr "顶面和地面"
+msgstr "顶面和底面"
+# AI Translated
msgid "Direct Drive"
-msgstr "直驱(近程)"
+msgstr "近程挤出机"
msgid "Bowden"
msgstr "远程挤出机"
@@ -17041,11 +19296,13 @@ msgstr "混合"
msgid "Extra High Flow"
msgstr "超高流量"
+# AI Translated
msgid "Enable filament dynamic map"
-msgstr "启用耗材动态映射"
+msgstr "启用耗材丝动态映射"
+# AI Translated
msgid "Enable dynamic filament mapping during print."
-msgstr "在打印期间启用动态耗材映射。"
+msgstr "在打印期间启用动态耗材丝映射。"
msgid "Has filament switcher"
msgstr "具有耗材切换器"
@@ -17069,16 +19326,17 @@ msgstr "当换色后回抽被补偿时,挤出机将推入额外数量的耗材
msgid "Retraction speed"
msgstr "回抽速度"
+# AI Translated
msgid "Speed for retracting filament from the nozzle."
-msgstr "从喷嘴回抽耗材的速度"
+msgstr "从喷嘴回抽耗材丝的速度。"
+# AI Translated
msgid "Deretraction speed"
-msgstr "重新装填速度"
+msgstr "装填回抽速度"
+# AI Translated
msgid "Speed for reloading filament into the nozzle. Zero means same speed of retraction."
-msgstr ""
-"向喷嘴重新装填耗材的速度。\n"
-"设为 0 则使用与回抽相同的速度。"
+msgstr "向喷嘴重新装填耗材丝的速度。设为 0 则使用与回抽相同的速度。"
# AI Translated
msgid "Deretraction speed (extruder change)"
@@ -17086,7 +19344,7 @@ msgstr "装填回抽速度(更换挤出机)"
# AI Translated
msgid "Speed for reloading filament into the nozzle when switching extruder."
-msgstr "切换挤出机时将耗材重新装填到喷嘴的速度。"
+msgstr "切换挤出机时将耗材丝重新装填到喷嘴的速度。"
msgid "Use firmware retraction"
msgstr "使用固件回抽"
@@ -17133,12 +19391,13 @@ msgstr "此选项会根据内墙深度使接缝向后移动,形成锯齿形模
msgid "Seam gap"
msgstr "接缝间隔"
+# AI Translated
msgid ""
"In order to reduce the visibility of the seam in a closed loop extrusion, the loop is interrupted and shortened by a specified amount.\n"
"This amount can be specified in millimeters or as a percentage of the current extruder diameter. The default value for this parameter is 10%."
msgstr ""
-"为了减少环形中接缝的可见性,环会被打断并按指定数量缩短。数值可用毫米指定,也可以使用当前挤出机直径的百分比来指定。\n"
-"默认值为 10%"
+"为了降低闭环挤出中接缝的可见性,环会被打断并缩短指定的长度。\n"
+"该长度可以用毫米或当前挤出机直径的百分比指定。此参数的默认值为10%。"
msgid "Scarf joint seam (beta)"
msgstr "斜拼接缝(试验)"
@@ -17149,25 +19408,28 @@ msgstr "使用斜拼接缝来最小化接缝的可见性并增加接缝的强度
msgid "Conditional scarf joint"
msgstr "选择性应用斜拼接缝"
+# AI Translated
msgid "Apply scarf joints only to smooth perimeters where traditional seams do not conceal the seams at sharp corners effectively."
-msgstr "当墙壁没有合适的锐角以至于传统接缝无法有效隐藏的时候使用斜拼接缝。"
+msgstr "当墙没有合适的锐角以至于传统接缝无法有效隐藏的时候使用斜拼接缝。"
msgid "Conditional angle threshold"
msgstr "角度阈值"
+# AI Translated
msgid ""
"This option sets the threshold angle for applying a conditional scarf joint seam.\n"
"If the maximum angle within the perimeter loop exceeds this value (indicating the absence of sharp corners), a scarf joint seam will be used. The default value is 155°."
msgstr ""
"此选项设置判断是否应用斜拼接缝的角度阈值。\n"
-"如果围墙环内的最大角度超过了这个值(表示没有足够锐的角),则使用斜拼接缝接缝。默认值为155°。"
+"如果墙环内的最大角度超过此值(表示没有锐角),则使用斜拼接缝。默认值为155°。"
msgid "Conditional overhang threshold"
msgstr "悬垂阈值"
+# AI Translated
#, no-c-format, no-boost-format
msgid "This option determines the overhang threshold for the application of scarf joint seams. If the unsupported portion of the perimeter is less than this threshold, scarf joint seams will be applied. The default threshold is set at 40% of the external wall's width. Due to performance considerations, the degree of overhang is estimated."
-msgstr "此选项设置斜拼接缝应用的悬垂阈值。如果围墙的未支撑部分小于此阈值,则应用斜拼接缝接缝。默认阈值设置为外墙宽度的40%。由于性能考虑,悬垂程度是粗略估算。"
+msgstr "此选项设置斜拼接缝应用的悬垂阈值。如果墙的未支撑部分小于此阈值,则应用斜拼接缝。默认阈值设置为外墙宽度的40%。由于性能考虑,悬垂程度是粗略估算。"
msgid "Scarf joint speed"
msgstr "斜拼接缝速度"
@@ -17175,8 +19437,9 @@ msgstr "斜拼接缝速度"
msgid "This option sets the printing speed for scarf joints. It is recommended to print scarf joints at a slow speed (less than 100 mm/s). It's also advisable to enable 'Extrusion rate smoothing' if the set speed varies significantly from the speed of the outer or inner walls. If the speed specified here is higher than the speed of the outer or inner walls, the printer will default to the slower of the two speeds. When specified as a percentage (e.g., 80%), the speed is calculated based on the respective outer or inner wall speed. The default value is set to 100%."
msgstr "这个选项设置斜拼接缝的打印速度。建议以较慢的速度(小于100mm/s)打印斜拼接缝。如果设置的速度与外墙或内墙的速度相差较大,建议启用“平滑挤出率”。如果此处指定的速度高于外墙或内墙的速度,则打印机将默认使用两者中较慢的速度。当以百分比(例如80%)指定时,速度将基于外墙或内墙的速度进行计算。默认值为100%。"
+# AI Translated
msgid "Scarf joint flow ratio"
-msgstr "斜拼接缝流量"
+msgstr "斜拼接缝流量比例"
msgid "This factor affects the amount of material for scarf joints."
msgstr "这个参数影响斜拼接缝的材料用量。"
@@ -17191,8 +19454,9 @@ msgstr ""
"斜拼接缝的起始高度。\n"
"这个数值可以用毫米或者当前层高的百分比表示。默认值为0。"
+# AI Translated
msgid "Scarf around entire wall"
-msgstr "围绕整个围墙"
+msgstr "斜拼接缝覆盖整圈墙"
msgid "The scarf extends to the entire length of the wall."
msgstr "将斜拼接缝延伸到整个围墙"
@@ -17209,14 +19473,16 @@ msgstr "斜拼段数"
msgid "Minimum number of segments of each scarf."
msgstr "斜拼接缝所需的最少段数"
+# AI Translated
msgid "Scarf joint for inner walls"
-msgstr "应用斜拼于内墙"
+msgstr "内墙斜拼接缝"
msgid "Use scarf joint for inner walls as well."
msgstr "同时应用斜拼接缝于内墙"
-msgid "Role base wipe speed"
-msgstr "自动擦拭速度"
+# AI Translated
+msgid "Role based wipe speed"
+msgstr "基于挤出类型的擦拭速度"
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
msgstr "擦拭速度由当前挤出类型的速度决定。例如,如果擦拭动作紧随外墙,擦拭速度将使用外墙的速度。"
@@ -17260,29 +19526,33 @@ msgstr ""
"\n"
"例如,50% 会将路径偏移外墙宽度的一半。实际偏移量同时受实际外墙宽度和到相邻墙的可用间距限制,因此超过 100% 的值或等效的绝对距离不会产生额外效果。设为 0 可禁用偏移。"
+# AI Translated
msgid "Wipe before external loop"
-msgstr "额外的外墙打印前擦拭"
+msgstr "外墙前擦拭"
+# AI Translated
msgid ""
"To minimize visibility of potential overextrusion at the start of an external perimeter when printing with Outer/Inner or Inner/Outer/Inner wall print order, the de-retraction is performed slightly on the inside from the start of the external perimeter. That way any potential over extrusion is hidden from the outside surface.\n"
"\n"
"This is useful when printing with Outer/Inner or Inner/Outer/Inner wall print order as in these modes it is more likely an external perimeter is printed immediately after a de-retraction move."
msgstr ""
-"为了最大限度地减少在使用外/内或内/外/内墙打印顺序时,外墙起始处的潜在过挤出,在外墙起始处外略微向内执行回填。这样,任何潜在的过挤都会隐藏在外表面之下。\n"
+"使用外墙/内墙或内墙/外墙/内墙打印顺序时,为了尽量减少外墙起点处可能出现的过挤出,装填回抽会在外墙起点稍靠内侧的位置执行。这样,任何可能的过挤出都会隐藏在外表面之下。\n"
"\n"
-"当使用外/内或内/外/内墙打印顺序时,这是有用的,因为在这些模式中,外墙可能会在回填移动之后立即打印。"
+"使用外墙/内墙或内墙/外墙/内墙打印顺序时,此选项很有用,因为在这些模式下,外墙更有可能在装填回抽移动后立即打印。"
msgid "Wipe speed"
msgstr "擦拭速度"
+# AI Translated
msgid "The wipe speed is determined by the speed setting specified in this configuration. If the value is expressed as a percentage (e.g. 80%), it will be calculated based on the travel speed setting above. The default value for this parameter is 80%."
-msgstr "擦拭速度是根据此配置中指定的速度设置确定的。如果该值以百分比形式表示(例如80%),则将根据上方的移动速度设置进行计算。该参数的默认值为80%。"
+msgstr "擦拭速度是根据此配置中指定的速度设置确定的。如果该值以百分比形式表示(例如80%),则将根据上方的空驶速度设置进行计算。该参数的默认值为80%。"
msgid "Skirt distance"
msgstr "裙边距离"
+# AI Translated
msgid "This is the distance from the skirt to the brim or the object."
-msgstr "从裙边到模型或者brim的距离"
+msgstr "从裙边到模型或者Brim的距离。"
msgid "Skirt start point"
msgstr "裙边起始点"
@@ -17299,22 +19569,22 @@ msgstr "裙边有多少层。通常只有一层"
msgid "Single loop after first layer"
msgstr "首层后单圈"
+# AI Translated
msgid "Limits the skirt/draft shield loops to one wall after the first layer. This is useful, on occasion, to conserve filament but may cause the draft shield/skirt to warp / crack."
-msgstr "在首层之后,将环形裙边或隔风罩限制为单层墙。这在某些情况下有助于节省耗材,但可能导致隔风罩或裙边翘曲或开裂。"
+msgstr "在首层之后,将裙边或风挡限制为单圈墙。这在某些情况下有助于节省耗材丝,但可能导致风挡或裙边翘曲或开裂。"
msgid "Draft shield"
msgstr "风挡"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
-"风挡对于保护ABS或ASA打印件免受风力的影响,防止翘曲和从打印床上脱落是非常有用的。通常只有在没有封箱的开放式打印机上才需要。\n"
+"风挡对于保护ABS或ASA打印件免受风力的影响,防止翘曲和从热床上脱落是非常有用的。通常只有在没有封箱的开放式打印机上才需要。\n"
"\n"
-"启用 = 裙边的高度与最高的打印对象一样高。否则的话会使用'裙边高度'。\n"
-"注意:启用风挡后,裙边将会在距离模型'裙边距离'的地方打印。因此,如果brim启用,可能会与其相交。为了避免这种情况,增加裙边距离值。\n"
+"启用 = 裙边的高度与最高的打印对象一样高。否则的话会使用'裙边高度'。"
msgid "Enabled"
msgstr "启用"
@@ -17343,16 +19613,17 @@ msgstr "裙边速度,单位为mm/s。0表示使用默认的层挤出速度。"
msgid "Skirt minimum extrusion length"
msgstr "裙边最小挤出长度"
+# AI Translated
msgid ""
"Minimum filament extrusion length in mm when printing the skirt. Zero means this feature is disabled.\n"
"\n"
"Using a non-zero value is useful if the printer is set up to print without a prime line.\n"
"Final number of loops is not taking into account while arranging or validating objects distance. Increase loop number in such case."
msgstr ""
-"打印裙边时的最小耗材挤出长度,单位为毫米。0表示禁用此功能。\n"
+"打印裙边时的最小耗材丝挤出长度,单位为毫米。0表示禁用此功能。\n"
"\n"
"如果打印机设置为不打印起始擦嘴线,建议使用非零值。\n"
-"在排列或验证物体距离时,最终的圈数不会被纳入计算。在这种情况下请增加圈数。"
+"在排列或验证对象距离时,最终的圈数不会被纳入计算。在这种情况下请增加圈数。"
# AI Translated
msgid "The printing speed in exported G-code will be slowed down when the estimated layer time is shorter than this value in order to get better cooling for these layers."
@@ -17364,32 +19635,37 @@ msgstr "稀疏填充最小阈值"
msgid "Sparse infill areas which are smaller than this threshold value are replaced by internal solid infill."
msgstr "小于这个阈值的稀疏填充区域将会被内部实心填充替代。"
+# AI Translated
msgid ""
"Filament to print internal solid infill.\n"
"\"Default\" uses the active object/part filament."
msgstr ""
-"用于打印内部实心填充的耗材。\n"
-"“默认”使用当前对象/零件的耗材。"
+"用于打印内部实心填充的耗材丝。\n"
+"“默认”使用当前对象/零件的耗材丝。"
+# AI Translated
msgid ""
"Filament to print top surface.\n"
"\"Default\" uses the active object/part filament."
msgstr ""
-"用于打印顶面的耗材。\n"
-"“默认”使用当前对象/零件的耗材。"
+"用于打印顶面的耗材丝。\n"
+"“默认”使用当前对象/零件的耗材丝。"
+# AI Translated
msgid ""
"Filament to print bottom surface.\n"
"\"Default\" uses the active object/part filament."
msgstr ""
-"用于打印底面的耗材。\n"
-"“默认”使用当前对象/零件的耗材。"
+"用于打印底面的耗材丝。\n"
+"“默认”使用当前对象/零件的耗材丝。"
+# AI Translated
msgid "Line width of internal solid infill. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "内部实心填充的线宽。如果以%表示,它将基于喷嘴直径来计算。"
+msgstr "内部实心填充的线宽。如果以%表示,将根据喷嘴直径计算。"
+# AI Translated
msgid "This is the speed for internal solid infill, not including the top or bottom surface."
-msgstr "内部实心填充的速度,不是顶面和底面。"
+msgstr "内部实心填充的速度,不包括顶面和底面。"
msgid "This enables spiraling, which smooths out the Z moves of the outer contour and turns a solid model into a single walled print with solid bottom layers. The final generated model has no seam."
msgstr "沿着对象的外轮廓螺旋上升,将实体模型转变为只有底面实心层和侧面单层墙壁的打印。最后生成的打印件没有接缝。"
@@ -17397,32 +19673,39 @@ msgstr "沿着对象的外轮廓螺旋上升,将实体模型转变为只有底
msgid "Smooth Spiral"
msgstr "光滑螺旋模式"
+# AI Translated
msgid "Smooth Spiral smooths out X and Y moves as well, resulting in no visible seam at all, even in the XY directions on walls that are not vertical."
-msgstr "光滑螺旋模式平滑X和Y轴移动,从而在所有方向上都没有可见的接缝,即使在不垂直的墙壁上也是如此。"
+msgstr "光滑螺旋模式平滑X和Y轴移动,从而在所有方向上都没有可见的接缝,即使在不垂直的墙上也是如此。"
msgid "Max XY Smoothing"
msgstr "最大XY平滑阈值"
+# AI Translated
#, no-c-format, no-boost-format
msgid "Maximum distance to move points in XY to try to achieve a smooth spiral. If expressed as a %, it will be computed over nozzle diameter."
-msgstr "在XY平面上移动点的最大距离,以尝试实现平滑的螺旋。如果以%表示,它将基于喷嘴直径来计算。"
+msgstr "在XY平面上移动点的最大距离,以尝试实现平滑的螺旋。如果以%表示,将根据喷嘴直径计算。"
+# AI Translated
msgid "Spiral starting flow ratio"
-msgstr "螺旋开始流量比"
+msgstr "螺旋开始流量比例"
+# AI Translated
#, no-c-format, no-boost-format
msgid "Sets the starting flow ratio while transitioning from the last bottom layer to the spiral. Normally the spiral transition scales the flow ratio from 0% to 100% during the first loop which can in some cases lead to under extrusion at the start of the spiral."
-msgstr "设置从最后一个底层过渡到螺旋时的起始流量比。通常,螺旋过渡在第一个循环期间将流量比从 0% 调整到 100%,这在某些情况下可能导致螺旋开始时挤出不足。"
+msgstr "设置从最后一个底层过渡到螺旋时的起始流量比例。通常,螺旋过渡在第一圈将流量比例从 0% 调整到 100%,这在某些情况下可能导致螺旋开始时挤出不足。"
+# AI Translated
msgid "Spiral finishing flow ratio"
-msgstr "螺旋结束流量比"
+msgstr "螺旋结束流量比例"
+# AI Translated
#, no-c-format, no-boost-format
msgid "Sets the finishing flow ratio while ending the spiral. Normally the spiral transition scales the flow ratio from 100% to 0% during the last loop which can in some cases lead to under extrusion at the end of the spiral."
-msgstr "设置结束螺旋时的精加工流量比。通常,螺旋过渡在最后一个循环期间将流量比从 100% 缩放到 0%,这在某些情况下可能会导致螺旋末端挤出不足。"
+msgstr "设置螺旋结束时的结束流量比例。通常,螺旋过渡在最后一圈将流量比例从 100% 缩放到 0%,这在某些情况下可能会导致螺旋末端挤出不足。"
+# AI Translated
msgid "If smooth or traditional mode is selected, a timelapse video will be generated for each print. After each layer is printed, a snapshot is taken with the chamber camera. All of these snapshots are composed into a timelapse video when printing completes. If smooth mode is selected, the toolhead will move to the excess chute after each layer is printed and then take a snapshot. Since the melt filament may leak from the nozzle during the process of taking a snapshot, a prime tower is required for smooth mode to wipe the nozzle."
-msgstr "如果启用平滑模式或者传统模式,将在每次打印时生成延时摄影视频。打印完每层后,将用内置相机拍摄快照。打印完成后,所有这些快照会组合成一个延时视频。如果启用平滑模式,打印完每层后,工具头将移动到吐料槽,然后拍摄快照。由于平滑模式在拍摄快照的过程中熔丝可能会从喷嘴中泄漏,因此需要使用擦拭塔进行喷嘴擦拭。"
+msgstr "如果启用平滑模式或者传统模式,将在每次打印时生成延时摄影视频。打印完每层后,将用内置摄像头拍摄快照。打印完成后,所有这些快照会组合成一个延时视频。如果启用平滑模式,打印完每层后,工具头将移动到吐料槽,然后拍摄快照。由于平滑模式在拍摄快照的过程中熔丝可能会从喷嘴中泄漏,因此需要使用擦拭塔进行喷嘴擦拭。"
msgid "Traditional"
msgstr "传统模式"
@@ -17436,14 +19719,16 @@ msgstr "最远点延时摄影"
# AI Translated
msgid "When enabled, the timelapse snapshot is taken at the farthest point from camera instead of traveling to the wipe tower or excess chute. Only effective in traditional timelapse mode on non-I3 printers."
-msgstr "启用后,延时摄影快照会在距离相机最远的点拍摄,而不是移动到擦拭塔或废料滑道。仅在非 I3 打印机的传统延时摄影模式下有效。"
+msgstr "启用后,延时摄影快照会在距离摄像头最远的点拍摄,而不是移动到擦拭塔或吐料槽。仅在非 I3 打印机的传统延时摄影模式下有效。"
+# AI Translated
msgid "Temperature variation"
-msgstr "软化温度"
+msgstr "温度变化"
+# AI Translated
#. TRN PrintSettings : "Ooze prevention" > "Temperature variation"
msgid "Temperature difference to be applied when an extruder is not active. The value is not used when 'idle_temperature' in filament settings is set to non-zero value."
-msgstr "挤出机未启动时施加的温差。当耗材丝设置中的“idle_Temperature”设置为非零值时,不使用该值。"
+msgstr "挤出机处于非活动状态时应用的温差。当耗材丝设置中的“idle_temperature”设置为非零值时,不使用该值。"
msgid "∆℃"
msgstr "∆℃"
@@ -17451,11 +19736,13 @@ msgstr "∆℃"
msgid "Preheat time"
msgstr "预热时间"
+# AI Translated
msgid "To reduce the waiting time after tool change, Orca can preheat the next tool while the current tool is still in use. This setting specifies the time in seconds to preheat the next tool. Orca will insert a M104 command to preheat the tool in advance."
-msgstr "为了减少换刀后的等待时间,Orca 可以在当前刀具仍在使用时预热下一个刀具。此设置指定预热下一个工具的时间(以秒为单位)。 Orca 会插入 M104 指令提前预热刀具。"
+msgstr "为了减少换工具头后的等待时间,Orca 可以在当前工具头仍在使用时预热下一个工具头。此设置指定提前预热下一个工具头的时间(以秒为单位)。Orca 会插入 M104 指令提前预热工具头。"
+# AI Translated
msgid "Preheat steps"
-msgstr "预热步骤"
+msgstr "预热步数"
msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1."
msgstr "插入多个预热命令(例如 M104.1)。仅适用于 Prusa XL。对于其他打印机,请将其设置为 1。"
@@ -17476,20 +19763,148 @@ msgstr "开始使用这个耗材丝打印的起始G-code"
msgid "Single Extruder Multi Material"
msgstr "单挤出机多材料"
+# AI Translated
msgid "Use single nozzle to print multi filament."
-msgstr "使用单喷嘴打印多耗材"
+msgstr "使用单喷嘴打印多耗材丝。"
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "IDEX/IQEX 打印机"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "为具有多个独立滑车的打印机(IDEX、IQEX 等)启用并行打印。"
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "固件管理区域"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "启用后,切片软件输出的 G-code 会以热床原点 (0,0) 为中心放置主区域的内容,由打印机固件负责把复制件/镜像件放到各个物理区域。仅当打印机固件在复制/镜像模式下会自行应用区域偏移时才启用(例如 RepRapFirmware 的 IDEX 复制模式)。主模式下无效。"
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "龙门数量"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "独立 Y 轴龙门的数量。IDEX/单导轨 IQEX 为 1,双龙门系统为 2(将热床分成多排)。"
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "每个龙门的工具头数"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "每个龙门上沿 X 方向独立运动的工具头数量。IDEX 类机型为 2。"
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "工具头 0 位置"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "工具头 T0(索引 0)在热床上的物理位置,决定工具头索引与热床区域的对应关系。单龙门配置(IDEX)只区分左右;双龙门配置(IQEX)可选择全部四个角(前 = Y 值较小 / 靠近操作者,后 = Y 值较大 / 机器后部)。"
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "喷嘴避让距离 X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "X 方向上喷嘴到滑车碰撞侧边缘的距离(mm),用于计算每条 X 边界处防碰撞屏蔽带的宽度。"
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "喷嘴避让距离 Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Y 方向上喷嘴到滑车碰撞侧边缘的距离(mm),用于计算每条 Y 边界处防碰撞屏蔽带的宽度。"
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "安全边距"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "在主区域内每条滑车边界处显示的提示性避让带宽度(mm),不会阻止切片。放在此带内的零件仍可正常切片,它仅用于提醒您在区域边缘附近多留间隙。"
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "可视化主题"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "IDEX/IQEX 热床区域显示的配色主题。如有需要,可选择色盲友好主题。"
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "绿色盲 / 红色盲(红绿色盲)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "蓝色盲(蓝黄色盲)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "高对比度"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "IDEX/IQEX 打印模式"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "当前 IDEX/IQEX 并行打印模式的名称;单滑车打印时为 \"primary\"。需在打印机预设中启用“IDEX/IQEX 打印机”(打印机 → 材料 → IDEX/IQEX 配置)。"
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "IDEX/IQEX 工具头耗材丝映射"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "按盘单独设置物理工具头到耗材丝槽位的映射(从 1 开始编号)。留空则每个工具头使用打印机物理挤出机映射分配给它的第一个耗材丝。"
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "IDEX/IQEX 模式名称"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "每个用户定义的 IDEX/IQEX 并行打印模式的显示名称。"
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "IDEX/IQEX 模式启用的工具头"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "每个模式中各工具头的角色分配。格式为 \"idx:P,idx:C,idx:M\",例如 \"0:P,1:C,2:M,3:M\",其中 P=主工具头(Primary),C=复制(Copy),M=镜像(Mirror)。由打印机预设中的 IDEX/IQEX 模式编辑器管理。"
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "IDEX/IQEX 模式 G-code"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "每个模式在打印开始时插入的 G-code 或宏调用。"
+
+# AI Translated
msgid "Manual Filament Change"
-msgstr "手动更换丝材"
+msgstr "手动更换耗材丝"
+# AI Translated
msgid "Enable this option to omit the custom Change filament G-code only at the beginning of the print. The tool change command (e.g., T0) will be skipped throughout the entire print. This is useful for manual multi-material printing, where we use M600/PAUSE to trigger the manual filament change action."
-msgstr "启用该选项可以在打印开始时省略自定义更换耗材丝的 G-code。整个打印过程中的工具头指令(如 T0)将会被跳过。这对于手动多材料打印十分有用,其将会使用 M600/PAUSE 指令来使您可以进行手动对耗材丝进行更换。"
+msgstr "启用此选项后,仅在打印开始时省略自定义“耗材丝更换G-code”。换工具头指令(如 T0)将在整个打印过程中被跳过。这对手动多材料打印很有用,此时使用 M600/PAUSE 指令触发手动更换耗材丝。"
msgid "Wipe tower type"
msgstr "擦拭塔类型"
+# AI Translated
msgid "Choose the wipe tower implementation for multi-material prints. Type 1 is recommended for Bambu and Qidi printers with a filament cutter. Type 2 offers better compatibility with multi-tool and MMU printers and provide overall better compatibility."
-msgstr "选择多材料打印的擦拭塔实现方式。类型 1 推荐用于带有耗材切刀的 Bambu 和 Qidi 打印机。类型 2 提供与多工具头和 MMU 打印机更好的兼容性,并提供更好的整体兼容性。"
+msgstr "选择多材料打印的擦拭塔实现方式。类型 1 推荐用于带有耗材丝切刀的 Bambu 和 Qidi 打印机。类型 2 提供与多工具头和 MMU 打印机更好的兼容性,并提供更好的整体兼容性。"
msgid "Type 1"
msgstr "类型 1"
@@ -17503,14 +19918,17 @@ msgstr "冲刷进擦拭塔"
msgid "Purge remaining filament into prime tower."
msgstr "冲刷剩余的耗材丝进入擦拭塔"
+# AI Translated
msgid "Enable filament ramming"
-msgstr "启用耗材尖端成型"
+msgstr "启用耗材丝尖端成型"
+# AI Translated
msgid "Tool change on wipe tower"
-msgstr "在擦拭塔上换头"
+msgstr "在擦拭塔上换工具头"
+# AI Translated
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
-msgstr "在发出换头命令 (Tx) 之前,强制打印头先移动到擦拭塔。仅与使用第 2 类擦拭塔的多挤出机(多打印头)打印机相关。默认情况下,Orca 会在多打印头机器上跳过此移动,因为固件会处理换头,这可能导致 Tx 命令在打印件上方发出。如果您希望换头命令始终在擦拭塔上方发出,请启用此选项。"
+msgstr "在发出换工具头命令(Tx)之前,强制工具头先空驶到擦拭塔。仅适用于使用类型 2 擦拭塔的多挤出机(多工具头)打印机。默认情况下,Orca 会在多工具头机器上跳过此空驶,因为固件会处理工具头切换,这可能导致 Tx 命令在打印件上方发出。如果您希望换工具头命令始终在擦拭塔上方发出,请启用此选项。"
# AI Translated
msgid "Wait for temperature on wipe tower"
@@ -17520,8 +19938,9 @@ msgstr "在擦拭塔上等待温度"
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
msgstr "拾取新工具头后不等待其达到打印温度,直接移动到擦拭塔,并在冲刷前于擦拭塔上等待温度。升温过程中渗出的耗材丝会落在擦拭塔上而不是模型上,且移动时间与加热过程重叠。仅适用于使用 2 型擦拭塔的多挤出机(多工具头)打印机。固件或换工具头宏本身不得等待温度。禁用时,等待温度的指令将在换工具头命令之后立即发出。"
+# AI Translated
msgid "No sparse layers (beta)"
-msgstr "无稀疏层 (实验功能)"
+msgstr "无稀疏层(试验)"
# AI Translated
msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower, so the tower ends up below the model and the toolhead has to reach down to it. Layouts where that would collide with an already printed object are rejected. Has no effect with smooth timelapse or clumping detection, which need a tower on every layer."
@@ -17595,19 +20014,21 @@ msgid ""
msgstr ""
"将循环换料顺序同样应用于首层。\n"
"默认关闭,因为首层改为按最佳热床粘接排序:打印首层细小脆弱特征的耗材丝会最后打印,这样后续的换料和空驶就不易将这些附着薄弱的部分蹭掉。若设置了自定义首层耗材丝序列,该首层顺序也会遵循它。循环顺序的好处(额外的换料让每层有更多冷却时间)并不适用于首层,因为首层为了粘接会以慢速高温打印。\n"
-"仅当你需要包括首层在内的每一层都使用完全相同的换料顺序时才启用此项,代价是失去上述粘接优化。"
+"仅当您需要包括首层在内的每一层都使用完全相同的换料顺序时才启用此项,代价是失去上述粘接优化。"
msgid "Slice gap closing radius"
msgstr "切片间隙闭合半径"
+# AI Translated
msgid "Cracks smaller than 2x gap closing radius are being filled during the triangle mesh slicing. The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low."
-msgstr "在三角形网格切片过程中,小于2倍间隙闭合半径的裂纹将被填充。间隙闭合操作可能会降低最终打印分辨率,因此建议降值保持在合理的较低水平"
+msgstr "在三角形网格切片过程中,小于2倍间隙闭合半径的裂纹将被填充。间隙闭合操作可能会降低最终打印分辨率,因此建议将该值保持在合理的较低水平。"
msgid "Slicing Mode"
msgstr "切片模式"
+# AI Translated
msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model."
-msgstr "对3DLabPrint的飞机模型使用 \"奇偶\"。使用 \"闭孔 \"来关闭模型上的所有孔。"
+msgstr "对3DLabPrint的飞机模型使用“奇偶”。使用“闭孔”来关闭模型上的所有孔。"
msgid "Regular"
msgstr "常规"
@@ -17621,8 +20042,9 @@ msgstr "闭孔"
msgid "Z offset"
msgstr "Z偏移"
+# AI Translated
msgid "This value will be added (or subtracted) from all the Z coordinates in the output G-code. It is used to compensate for bad Z endstop position: for example, if your endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to -0.3 (or fix your endstop)."
-msgstr "此值将从输出 G-Code 中的所有 Z 坐标中添加(或减去)。它用于补偿损坏的 Z 端限位器置:例如,如果限位器零实际离开喷嘴 0.3mm 远离打印板(打印床),将其设置为 -0.3(或调整限位器)。"
+msgstr "此值将加到(或减去)输出 G-Code 中的所有 Z 坐标上。它用于补偿不准确的 Z 限位开关位置:例如,如果限位开关归零时喷嘴实际距离热床 0.3mm,则将此值设为 -0.3(或调整限位开关)。"
msgid "Enable support"
msgstr "开启支撑"
@@ -17630,8 +20052,9 @@ msgstr "开启支撑"
msgid "This enables support generation."
msgstr "开启支撑生成。"
+# AI Translated
msgid "Normal (auto) and Tree (auto) are used to generate support automatically. If Normal (manual) or Tree (manual) is selected, only support enforcers are generated."
-msgstr "普通(自动)和树状(自动)用于自动生成支撑。如果选择普通(手动)或树状(手动),则仅在支撑强制面上生成支撑。"
+msgstr "普通(自动)和树状(自动)用于自动生成支撑。如果选择普通(手动)或树状(手动),则仅生成支撑生成器指定的支撑。"
msgid "Normal (auto)"
msgstr "普通(自动)"
@@ -17645,17 +20068,20 @@ msgstr "普通(手动)"
msgid "Tree (manual)"
msgstr "树状(手动)"
+# AI Translated
msgid "Support/object XY distance"
-msgstr "支撑/模型xy间距"
+msgstr "支撑/模型XY间距"
msgid "This controls the XY separation between an object and its support."
msgstr "模型和支撑之间XY分离距离"
+# AI Translated
msgid "Support/object first layer gap"
-msgstr "支撑/对象首层间距"
+msgstr "支撑/模型首层间距"
+# AI Translated
msgid "XY separation between an object and its support at the first layer."
-msgstr "物体与其首层支撑之间的 XY 间隔。"
+msgstr "对象与其首层支撑之间的 XY 间隔。"
# AI Translated
msgid "Pattern angle"
@@ -17664,8 +20090,9 @@ msgstr "图案角度"
msgid "Use this setting to rotate the support pattern on the horizontal plane."
msgstr "设置支撑图案在水平面的旋转角度。"
+# AI Translated
msgid "On build plate only"
-msgstr "仅在打印板生成"
+msgstr "仅在热床上生成"
msgid "This setting only generates supports that begin on the build plate."
msgstr "不在模型表面上生成支撑,只在热床上生成。"
@@ -17691,75 +20118,92 @@ msgstr "支撑顶部与模型之间的Z间隙。"
msgid "Bottom Z distance"
msgstr "底部Z距离"
+# AI Translated
msgid "Z gap between the object and the support bottom. If Support Top Z Distance is 0 and the bottom has interface layers, this value is ignored and the support is printed in direct contact with the object (no gap)."
-msgstr "模型与支撑底部之间的Z间隙。如果支撑顶部Z距离为0且底部有界面层,则忽略该值,支撑与模型直接接触打印(无间隙)。"
+msgstr "模型与支撑底部之间的Z间隙。如果支撑顶部Z距离为0且底部有支撑面层,则忽略该值,支撑与模型直接接触打印(无间隙)。"
msgid "Support/raft base"
msgstr "支撑/筏层主体"
+# AI Translated
msgid ""
"Filament to print support base and raft.\n"
"\"Default\" means no specific filament for support and current filament is used."
msgstr ""
-"用于打印支撑基底和筏层的耗材。\n"
-"“默认”表示不为支撑指定特定耗材,使用当前耗材。"
+"用于打印支撑基底和筏层的耗材丝。\n"
+"“默认”表示不为支撑指定特定耗材丝,使用当前耗材丝。"
+# AI Translated
msgid "Avoid interface filament for base"
-msgstr "界面材料不用于主体"
+msgstr "主体避免使用支撑面耗材丝"
+# AI Translated
msgid "Avoid using support interface filament to print support base if possible."
-msgstr "避免使用支撑界面材料打印支撑主体。"
+msgstr "尽可能避免使用支撑面耗材丝打印支撑主体。"
+# AI Translated
msgid "Line width of support. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "支撑的线宽。如果以%表示,它将基于喷嘴直径来计算。"
+msgstr "支撑的线宽。如果以%表示,将根据喷嘴直径计算。"
+# AI Translated
msgid "Loop pattern interface"
-msgstr "接触面采用圈形走线。"
+msgstr "支撑面采用圈形图案"
+# AI Translated
msgid "This covers the top contact layer of the supports with loops. It is disabled by default."
-msgstr "使用圈形走线覆盖顶部接触面。默认关闭。"
+msgstr "使用圈形走线覆盖支撑的顶部支撑面。默认关闭。"
+# AI Translated
+# Needs human review: Check the label reads naturally next to 支撑/筏层主体.
msgid "Support/raft interface"
-msgstr "支撑/筏层界面"
+msgstr "支撑/筏层支撑面"
+# AI Translated
msgid ""
"Filament to print support interface.\n"
"\"Default\" means no specific filament for support interface and current filament is used."
msgstr ""
-"用于打印支撑面的耗材。\n"
-"“默认”表示不为支撑面指定特定耗材,使用当前耗材。"
+"用于打印支撑面的耗材丝。\n"
+"“默认”表示不为支撑面指定特定耗材丝,使用当前耗材丝。"
+# AI Translated
msgid "Top interface layers"
-msgstr "顶部接触面层数"
+msgstr "顶部支撑面层数"
# AI Translated
msgid "This is the number of top interface layers."
-msgstr "顶部接触层的层数"
+msgstr "顶部支撑面的层数。"
+# AI Translated
msgid "Bottom interface layers"
-msgstr "底部接触面层数"
+msgstr "底部支撑面层数"
+# AI Translated
msgid "Number of bottom interface layers."
-msgstr "底部界面层的数量"
+msgstr "底部支撑面的层数。"
msgid "Same as top"
msgstr "和顶部相同"
+# AI Translated
msgid "Top interface spacing"
-msgstr "顶部接触面线距"
+msgstr "顶部支撑面线距"
+# AI Translated
msgid ""
"Spacing of interface lines. Zero means solid interface.\n"
"Force using solid interface when support ironing is enabled."
msgstr ""
-"顶部接触面走线的线距。0 表示实心接触面。\n"
-"若启用了支撑熨烫,则此选项将强制使用实心接触面设置。"
+"顶部支撑面走线的线距。0 表示实心支撑面。\n"
+"若启用了支撑熨烫,则此选项将强制使用实心支撑面设置。"
+# AI Translated
msgid "Bottom interface spacing"
-msgstr "底部接触面线距"
+msgstr "底部支撑面线距"
+# AI Translated
msgid "This is the spacing of bottom interface lines. 0 means solid interface."
-msgstr "底部接触面走线的线距。0 表示实心接触面。"
+msgstr "底部支撑面走线的线距。0 表示实心支撑面。"
msgid "This is the speed for support interfaces."
msgstr "支撑面速度"
@@ -17767,6 +20211,7 @@ msgstr "支撑面速度"
msgid "Base pattern"
msgstr "支撑主体图案"
+# AI Translated
msgid ""
"Line pattern of support.\n"
"\n"
@@ -17778,7 +20223,7 @@ msgstr ""
"\n"
"树状支撑的默认选项为空心,即无主体图案。其他支撑类型的默认选项为直线图案。\n"
"\n"
-"注意:对于有机支撑,仅在空心/默认主体图案下支持双墙。闪电主体图案仅树状精简/坚固/混合支撑支持。对于其他支撑类型,将改用直线图案替代闪电图案。"
+"注意:对于有机支撑,仅在空心/默认主体图案下支持双墙。闪电主体图案仅苗条树/粗壮树/混合树支撑支持。对于其他支撑类型,将改用直线图案替代闪电图案。"
msgid "Rectilinear grid"
msgstr "直线网格"
@@ -17789,8 +20234,9 @@ msgstr "空心"
msgid "Interface pattern"
msgstr "支撑面图案"
+# AI Translated
msgid "This is the line pattern for support interfaces. The default pattern for non-soluble support interfaces is Rectilinear while the default pattern for soluble support interfaces is Concentric."
-msgstr "支撑接触面的走线图案。非可溶支撑接触面的默认图案为直线,可溶支撑接触面的默认图案为同心。"
+msgstr "支撑面的走线图案。非可溶支撑面的默认图案为直线,可溶支撑面的默认图案为同心。"
msgid "Rectilinear Interlaced"
msgstr "交叠的直线"
@@ -17810,12 +20256,13 @@ msgstr "在水平方向对普通支撑进行拓展(+)或收缩(-)"
msgid "This is the speed for support."
msgstr "支撑打印速度"
+# AI Translated
msgid ""
"Style and shape of the support. For normal support, projecting the supports into a regular grid will create more stable supports (default), while snug support towers will save material and reduce object scarring.\n"
"For tree support, slim and organic style will merge branches more aggressively and save a lot of material (default organic), while hybrid style will create similar structure to normal support under large flat overhangs."
msgstr ""
-"支撑物的样式和形状。对于普通支撑,将支撑投射到一个规则的网格中,将创建更稳定的支撑(默认),而紧贴的支撑塔将节省材料并减少物体的瑕疵。\n"
-"对于树形支撑,苗条树将更激进地合并树枝,并节省大量的材料;粗壮树会产生更大更强壮的支撑结构,但用料更多;而混合树是苗条树和普通支撑的结合,它会在大的平面悬垂下创建与正常支撑类似的结构(默认)。"
+"支撑的样式和形状。对于普通支撑,将支撑投射到规则的网格中会生成更稳定的支撑(默认),而紧贴的支撑塔会节省材料并减少模型表面的瑕疵。\n"
+"对于树状支撑,苗条树和有机树样式会更激进地合并树枝并节省大量材料(默认有机树),而混合树样式会在大的平面悬垂下生成与普通支撑类似的结构。"
msgid "Default (Grid/Organic)"
msgstr "默认 (网格/有机)"
@@ -17838,8 +20285,9 @@ msgstr "混合树"
msgid "Independent support layer height"
msgstr "支撑独立层高"
+# AI Translated
msgid "Support layer uses layer height independent with object layer. This is to support customizing Z-gap and save print time. This option will be invalid when the prime tower is enabled."
-msgstr "支撑层使用与对象层独立的层高。这是为了支持自定义z-gap并且节省打印时间。当擦料塔被启用时,这个选项将无效。"
+msgstr "支撑层使用与模型层独立的层高。这是为了支持自定义Z间隙并节省打印时间。启用擦拭塔时,此选项无效。"
msgid "Threshold angle"
msgstr "阈值角度"
@@ -17857,18 +20305,175 @@ msgstr "阈值支撑比例"
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
msgstr "如果阈值角为零,将会为重叠度低于阈值的悬垂部分生成支撑。若该值越小,则可打印而无需支撑的悬垂角度就越陡。"
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "热床倾斜 X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "热床沿 X 轴的倾斜角度。正值使热床 +X 侧抬高,重力偏向 -X,+X 侧的悬垂增多;负值使 -X 侧抬高。设为 0 表示 X 方向不倾斜。在传送带打印机模式下,此值会自动与传送带角度同步。"
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "热床倾斜 Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "热床沿 Y 轴的倾斜角度。正值使热床 +Y 侧抬高,重力偏向 -Y,+Y 侧的悬垂增多;负值使 -Y 侧抬高。设为 0 表示 Y 方向不倾斜。"
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "启用传送带打印"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "启用传送带打印机模式。传送带打印机以倾斜一定角度(通常为 45 度)的传送带作为打印表面。切片软件会旋转切片平面,并针对倾斜的打印表面变换 G-code 坐标。"
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "无限 Y 轴"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "为传送带打印机启用无限 Y 轴。启用后,Y 轴方向的打印尺寸限制实际上被取消,可沿传送带方向打印任意长度的对象。"
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "传送带倾斜轴"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "切片前模型网格的旋转轴。这一旋转即传送带打印机的倾斜:它是保距(无畸变)旋转,同时用于热床渲染和支撑的重力倾斜;生成 G-code 时,逆变换会先还原这一旋转,再进行机器坐标系剪切/缩放和重映射。X 是典型的龙门倾斜轴(传送带沿 Y 方向移动)。"
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "传送带倾斜角度"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "传送带表面的倾斜角度,单位为度。大多数传送带打印机为 45°。从倾斜轴正端朝原点看,正值为逆时针旋转;其绝对值同时也是热床渲染和支撑重力所用的实际传送带倾角。"
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "解耦机器坐标系倾角"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "专家选项:单独设置机器坐标系(G-code 剪切/缩放)的倾斜角度,与切片前的旋转角度互不影响。禁用时,机器坐标系变换由传送带倾斜角度推导,两个阶段使用同一个角度。仅当机器实际的龙门倾角与切片旋转角度不一致时,才需启用此项进行补偿。"
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "机器坐标系倾斜角度"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "用于推导应用于 G-code 的机器坐标系剪切(cot)和缩放(1/|sin|)的倾斜角度(度)。仅在启用“解耦机器坐标系倾角”时使用,否则使用传送带倾斜角度。"
+
+msgid "+X"
+msgstr "+X"
+
+msgid "+Y"
+msgstr "+Y"
+
+msgid "+Z"
+msgstr "+Z"
+
+msgid "-X"
+msgstr "-X"
+
+msgid "-Y"
+msgstr "-Y"
+
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "反转 X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "反转 Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "反转 Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "G-code 重映射 X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "指定在 G-code 输出中映射到机器 X 轴的切片坐标轴。在切片之后、生成 G-code 时应用。"
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "G-code 重映射 Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "指定在 G-code 输出中映射到机器 Y 轴的切片坐标轴。在切片之后、生成 G-code 时应用。"
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "G-code 重映射 Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "指定在 G-code 输出中映射到机器 Z 轴的切片坐标轴。在切片之后、生成 G-code 时应用。"
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "支撑底面 Z 偏移"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "将计算出的传送带底面上移或下移(mm)。负值会降低底面,从而保留更多支撑。可用于诊断传送带底面公式的问题。"
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "启用传送带冲刷塔"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "传送带打印机上擦拭塔的替代方案。在传送带打印机上启用后,会在打印零件旁自动生成一个冲刷棱柱,换料冲刷将在其中进行(传统擦拭塔的 G-code 会绕过传送带坐标变换,因此无法用于传送带打印机)。仅适用于传送带打印机。"
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "传送带冲刷塔宽度"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "冲刷棱柱的宽度(机器 X 方向,即横跨传送带的方向)。在传送带打印机上启用传送带冲刷塔并使用多种耗材丝时,会自动生成该棱柱,换料冲刷会改为挤出到棱柱中,而不是传统擦拭塔。棱柱高度根据每层最大冲刷体积自动计算:棱柱越宽,高度越低。"
+
msgid "Tree support branch angle"
msgstr "树状支撑分支角度"
+# AI Translated
msgid "This setting determines the maximum overhang angle that the branches of tree support are allowed to make. If the angle is increased, the branches can be printed more horizontally, allowing them to reach farther."
-msgstr "此设置确定了允许树状支撑的最大悬垂角度。如果角度增加,可以更水平地打印分支,使它们可以到达更远的地方。"
+msgstr "此设置确定了树状支撑分支所允许的最大悬垂角度。如果角度增加,分支可以更水平地打印,从而延伸得更远。"
msgid "Preferred Branch Angle"
msgstr "首选分支角度"
+# AI Translated
#. TRN PrintSettings: "Organic supports" > "Preferred Branch Angle"
msgid "The preferred angle of the branches, when they do not have to avoid the model. Use a lower angle to make them more vertical and more stable. Use a higher angle for branches to merge faster."
-msgstr "分支的首选角度,每当它们不必避开模型之时。使用小的角度使之更垂直、更稳定。使用大的角度使之更快地合并。"
+msgstr "分支在无需避开模型时的首选角度。使用较小的角度可使分支更垂直、更稳定;使用较大的角度可使分支更快地合并。"
msgid "Tree support branch distance"
msgstr "树状支撑分支距离"
@@ -17879,28 +20484,34 @@ msgstr "此设置确定了树状支撑的相邻节点之间的距离。"
msgid "Branch Density"
msgstr "分支密度"
+# AI Translated
#. TRN PrintSettings: "Organic supports" > "Branch Density"
msgid "Adjusts the density of the support structure used to generate the tips of the branches. A higher value results in better overhangs but the supports are harder to remove, thus it is recommended to enable top support interfaces instead of a high branch density value if dense interfaces are needed."
-msgstr "用于调整分支尖端所生成的支撑结构的密度。值越大悬垂越好,但更难拆支撑,因此,如果需要密集的接触面,建议启用顶部接触面相关参数,而不是较高的分支密度。"
+msgstr "用于调整分支尖端所生成的支撑结构的密度。值越大悬垂越好,但更难拆支撑,因此,如果需要致密的支撑面,建议启用顶部支撑面,而不是较高的分支密度。"
+# AI Translated
msgid "Auto brim width"
-msgstr "自动裙边宽度"
+msgstr "自动Brim宽度"
+# AI Translated
msgid "Enabling this option means the width of the brim for tree support will be automatically calculated."
-msgstr "启用此选项意味着树状支撑的裙边宽度将自动计算自动计算"
+msgstr "启用此选项意味着树状支撑的Brim宽度将自动计算。"
+# AI Translated
msgid "Tree support brim width"
-msgstr "树状支撑裙边宽度"
+msgstr "树状支撑Brim宽度"
+# AI Translated
msgid "Distance from tree branch to the outermost brim line."
-msgstr "从树状支撑分支到最外层裙边线的距离"
+msgstr "从树状支撑分支到最外层Brim线的距离。"
msgid "Tip Diameter"
msgstr "尖端直径"
+# AI Translated
#. TRN PrintSettings: "Organic supports" > "Tip Diameter"
msgid "Branch tip diameter for organic supports."
-msgstr "Organic支撑分支的尖端直径"
+msgstr "有机支撑分支的尖端直径。"
msgid "Tree support branch diameter"
msgstr "树状支撑分支直径"
@@ -17912,12 +20523,14 @@ msgstr "此设置确定了树状支撑节点的初始直径。"
msgid "Branch Diameter Angle"
msgstr "分支直径的角度"
+# AI Translated
#. TRN PrintSettings: "Organic supports" > "Branch Diameter Angle"
msgid "The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A bit of an angle can increase stability of the organic support."
-msgstr "分支直径的角度,随着分支向底部逐渐变厚。如果角度为0,分支将在其长度上拥有均匀的厚度。一点角度可以增加organic的稳定性。"
+msgstr "分支直径的角度,随着分支向底部逐渐变厚。如果角度为0,分支将在其长度上拥有均匀的厚度。一点角度可以增加有机支撑的稳定性。"
+# AI Translated
msgid "Support wall loops"
-msgstr "支撑外墙层数"
+msgstr "支撑墙层数"
msgid "This setting specifies the count of support walls in the range of [0,2]. 0 means auto."
msgstr "此设置指定[0,2]范围内的支撑墙层数。0表示自动。"
@@ -17928,13 +20541,13 @@ msgstr "树状支撑生成填充"
msgid "This setting specifies whether to add infill inside large hollows of tree support."
msgstr "这个设置决定是否为树状支撑内部的空腔生成填充。"
+# AI Translated
msgid "Ironing Support Interface"
-msgstr "支撑界面熨烫"
+msgstr "支撑面熨烫"
+# AI Translated
msgid "Ironing is using small flow to print on same height of support interface again to make it more smooth. This setting controls whether support interface being ironed. When enabled, support interface will be extruded as solid too."
-msgstr ""
-"此设置控制是否对支撑面进行熨烫。熨烫是使用小流量再次在支撑面的相同高度上打印,使其更加平滑。\n"
-"启用时,支撑面也会被挤出为实心。"
+msgstr "此设置控制是否对支撑面进行熨烫。熨烫是使用小流量再次在支撑面的相同高度上打印,使其更加平滑。启用时,支撑面也会被挤出为实心。"
msgid "Support Ironing Pattern"
msgstr "支撑熨烫图案"
@@ -17942,10 +20555,9 @@ msgstr "支撑熨烫图案"
msgid "Support Ironing flow"
msgstr "支撑熨烫流量"
+# AI Translated
msgid "The amount of material to extrude during ironing. Relative to flow of normal support interface layer height. Too high value results in overextrusion on the surface."
-msgstr ""
-"在熨烫过程中需要挤出的材料流量。此设置与普通支撑面层流量设置之间相关。\n"
-"值过高会导致表面过量挤出。"
+msgstr "熨烫时挤出的材料量,相对于正常支撑面层高对应的流量。值过高会导致表面过挤出。"
msgid "Support Ironing line spacing"
msgstr "支撑熨烫线间距"
@@ -17953,20 +20565,31 @@ msgstr "支撑熨烫线间距"
msgid "Activate temperature control"
msgstr "激活温度控制"
+# AI Translated
msgid ""
"Enable this option for automated chamber temperature control. This option activates the emitting of an M191 command before the \"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In addition, it emits an M141 command at the end of the print to turn off the chamber heater, if present.\n"
"\n"
"This option relies on the firmware supporting the M191 and M141 commands either via macros or natively and is usually used when an active chamber heater is installed."
-msgstr "启用此选项可实现自动室温度控制。该选项激活在“machine_start_gcode”之前发出 M191 命令 它设置腔室温度并等待达到该温度。此外,它还会在打印结束时发出 M141 命令以关闭腔室加热器(如果有)。 此选项依赖于通过宏或本机支持 M191 和 M141 命令的固件,通常在安装主动室加热器时使用。"
+msgstr ""
+"启用此选项可实现自动腔体温度控制。该选项会在“machine_start_gcode”之前发出 M191 命令,\n"
+"用于设置腔体温度并等待其达到该温度。此外,它还会在打印结束时发出 M141 命令以关闭腔体加热器(如果有)。\n"
+"\n"
+"此选项依赖固件通过宏或原生方式支持 M191 和 M141 命令,通常在安装了主动腔体加热器时使用。"
+# AI Translated
msgid ""
"For high-temperature materials like ABS, ASA, PC, and PA, a higher chamber temperature can help suppress or reduce warping and potentially lead to higher interlayer bonding strength. However, at the same time, a higher chamber temperature will reduce the efficiency of air filtration for ABS and ASA.\n"
"\n"
"For PLA, PETG, TPU, PVA, and other low-temperature materials, this option should be disabled (set to 0) as the chamber temperature should be low to avoid extruder clogging caused by material softening at the heat break.\n"
"\n"
"If enabled, this parameter also sets a G-code variable named chamber_temperature, which can be used to pass the desired chamber temperature to your print start macro, or a heat soak macro like this: PRINT_START (other variables) CHAMBER_TEMP=[chamber_temperature]. This may be useful if your printer does not support M141/M191 commands, or if you desire to handle heat soaking in the print start macro if no active chamber heater is installed."
-msgstr "对于 ABS、ASA、PC 和 PA 等高温材料,较高的腔室温度有助于抑制或减少翘曲,并有可能提高层间粘合强度。但同时,较高的腔室温度会降低 ABS 和 ASA 的空气过滤效率。 对于 PLA、PETG、TPU、PVA 等低温材料,应禁用此选项(设置为 0),因为腔室温度应较低,以避免热断时材料软化导致挤出机堵塞。 如果启用,此参数还会设置一个名为 chamber_temple 的 G-code 变量,该变量可用于将所需的腔室温度传递给打印启动宏,或热浸宏,如下所示:PRINT_START(其他变量)CHAMBER_TEMP=[chamber_Temperature]。如果您的打印机不支持 M141/M191 命令,或者如果您希望在未安装活动室加热器的情况下在打印启动宏中处理热浸,则这可能很有用。"
+msgstr ""
+"对于 ABS、ASA、PC 和 PA 等高温材料,较高的腔体温度有助于抑制或减少翘曲,并有可能提高层间粘合强度。但同时,较高的腔体温度会降低 ABS 和 ASA 的空气过滤效率。\n"
+"\n"
+"对于 PLA、PETG、TPU、PVA 等低温材料,应禁用此选项(设置为 0),因为腔体温度应较低,以避免材料在喉管处软化导致挤出机堵塞。\n"
+"\n"
+"如果启用,此参数还会设置一个名为 chamber_temperature 的 G-code 变量,可用于将所需的腔体温度传递给打印起始宏或热浸泡宏,例如:PRINT_START (其他变量) CHAMBER_TEMP=[chamber_temperature]。如果您的打印机不支持 M141/M191 命令,或者在未安装主动腔体加热器时希望在打印起始宏中处理热浸泡,这可能会很有用。"
# AI Translated
msgid ""
@@ -17976,15 +20599,15 @@ msgid ""
"\n"
"Unlike the \"Target\" chamber temperature, this option does not emit any M141/M191 commands; it only exposes the value to your custom G-code. It should not exceed the \"Target\" chamber temperature."
msgstr ""
-"这是打印应当开始时的机箱温度,此时机箱会继续朝“目标”机箱温度加热。例如,将目标设为 60、最低设为 50,即可在机箱达到 50℃ 时开始打印,而无需等待达到完整的 60℃。\n"
+"这是打印应当开始时的腔体温度,此时腔体会继续朝“目标”腔体温度加热。例如,将目标设为 60、最低设为 50,即可在腔体达到 50℃ 时开始打印,而无需等待达到完整的 60℃。\n"
"\n"
"它会设置一个名为 chamber_minimal_temperature 的 G-code 变量,可以传递给您的打印起始宏或热浸泡宏,例如:PRINT_START (其他变量) CHAMBER_MIN_TEMP=[chamber_minimal_temperature]。\n"
"\n"
-"与“目标”机箱温度不同,此选项不会发出任何 M141/M191 命令;它只会将该值暴露给您的自定义 G-code。它不应超过“目标”机箱温度。"
+"与“目标”腔体温度不同,此选项不会发出任何 M141/M191 命令;它只会将该值暴露给您的自定义 G-code。它不应超过“目标”腔体温度。"
# AI Translated
msgid "Chamber minimal temperature"
-msgstr "最低机箱温度"
+msgstr "最低腔体温度"
msgid "Nozzle temperature after the first layer"
msgstr "除首层外的其它层的喷嘴温度"
@@ -17992,8 +20615,9 @@ msgstr "除首层外的其它层的喷嘴温度"
msgid "Detect thin walls"
msgstr "检查薄壁"
+# AI Translated
msgid "This detects thin walls which can’t contain two lines and uses a single line to print. It may not print as well because it’s not a closed loop."
-msgstr "检查无法容纳两条走线的薄壁。使用单条走线打印。可能会打地不是很好,因为走线不再闭合。"
+msgstr "检查无法容纳两条走线的薄壁,并使用单条走线打印。由于走线不再闭合,打印效果可能不太好。"
msgid "This G-code is inserted when filament is changed, including T commands to trigger tool change."
msgstr "换料时插入的G-code,包括T命令。"
@@ -18001,29 +20625,36 @@ msgstr "换料时插入的G-code,包括T命令。"
msgid "This G-code is inserted when the extrusion role is changed."
msgstr "当挤出类型改变时会插入此G-code"
+# AI Translated
msgid "Change extrusion role G-code (filament)"
-msgstr "挤出类型更换 G-code(耗材)"
+msgstr "挤出类型更换 G-code(耗材丝)"
+# AI Translated
msgid "This G-code is inserted when the extrusion role is changed for the active filament."
-msgstr "当当前耗材的挤出类型发生变化时插入此 G-code。"
+msgstr "当当前耗材丝的挤出类型发生变化时插入此 G-code。"
+# AI Translated
msgid "Line width for top surfaces. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "顶面的线宽。如果以 % 表示,它将基于喷嘴直径来计算。"
+msgstr "顶面的线宽。如果以%表示,将根据喷嘴直径计算。"
msgid "This is the speed for solid top surface infill."
msgstr "顶面实心填充的速度"
+# AI Translated
msgid "Top shell layers"
-msgstr "顶部壳体层数"
+msgstr "顶部外壳层数"
+# AI Translated
msgid "This is the number of solid layers of top shell, including the top surface layer. When the thickness calculated by this value is thinner than the top shell thickness, the top shell layers will be increased"
-msgstr "顶部壳体实心层层数,包括顶面。当由该层数计算的厚度小于顶部壳体厚度,切片时会增加顶部壳体的层数"
+msgstr "顶部外壳实心层层数,包括顶面。当由该层数计算的厚度小于顶部外壳厚度,切片时会增加顶部外壳的层数"
+# AI Translated
msgid "Top shell thickness"
-msgstr "顶部壳体厚度"
+msgstr "顶部外壳厚度"
+# AI Translated
msgid "The number of top solid layers is increased when slicing if the thickness calculated by top shell layers is thinner than this value. This can avoid having too thin a shell when layer height is small. 0 means that this setting is disabled and thickness of top shell is determined simply by the number of top shell layers."
-msgstr "如果由顶部壳体层数算出的厚度小于这个数值,那么切片时将自动增加顶部壳体层数。这能够避免当层高很小时,顶部壳体过薄。0 表示关闭这个设置,同时顶部壳体的厚度完全由顶部壳体层数决定"
+msgstr "如果由顶部外壳层数算出的厚度小于这个数值,那么切片时将自动增加顶部外壳层数。这能够避免当层高很小时,顶部外壳过薄。0 表示关闭这个设置,同时顶部外壳的厚度完全由顶部外壳层数决定。"
# AI Translated
msgid "Separated infills"
@@ -18033,13 +20664,11 @@ msgstr "分离式填充"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"将每个零件的内部填充以其自身为中心,就好像它是单独切片的一样,而不是以整个装配体为中心。相互接触或重叠的零件被视为一个整体并共享一个中心;分离的零件(或不同的 3D 物体)各自拥有自己的中心。\n"
-"当一个装配体将多个物体分为一组、而每个物体都应保持一致的自我居中填充时,此选项很有用。\n"
-"会影响直线和网格图案以及旋转模板填充。\n"
-"锁定到全局坐标的图案(螺旋体、蜂窝、TPMS 等)不受影响。"
+"使每个零件的内部填充以零件自身为中心,如同单独切片一样,而不是以整个装配体为中心。相互接触或重叠的零件视为一个整体,共用一个中心;彼此分离的零件(或不同的 3D 对象)各有各的中心。\n"
+"适用于装配体中组合了多个对象、且每个对象都需要各自居中的一致填充的情况。\n"
+"自适应立方体和支撑立方体始终以各零件自身为中心;闪电填充针对整个对象生成,不受此选项影响。"
# AI Translated
msgid "Center surface pattern on"
@@ -18055,7 +20684,7 @@ msgstr ""
"选择居中的顶/底面图案(阿基米德和弦、八角螺旋)的居中点放置位置。\n"
" - 每个表面:将图案居中于每个单独的表面区域,因此每个岛屿各自对称。\n"
" - 每个模型:将图案居中于每个相连的实体。相互接触或重叠的零件共享一个中心;与其余部分分离的零件各自拥有自己的中心。\n"
-" - 每个装配体:为整个物体或装配体使用单一的共享中心。"
+" - 每个装配体:为整个对象或装配体使用单一的共享中心。"
# AI Translated
msgid "Each Surface"
@@ -18081,6 +20710,7 @@ msgstr "当回抽时,让喷嘴沿着前面的走线方向继续移动,清除
msgid "Wipe distance"
msgstr "擦拭距离"
+# AI Translated
msgid ""
"Describe how long the nozzle will move along the last path when retracting.\n"
"\n"
@@ -18090,7 +20720,7 @@ msgid ""
msgstr ""
"喷嘴在回抽时将沿着最后路径移动的距离\n"
"\n"
-"根据擦拭操作的距离以及挤出机/耗材丝回抽的速度和长度,可能需要执行额外的回抽动作以收回剩余的丝材。\n"
+"根据擦拭操作的距离以及挤出机/耗材丝回抽的速度和长度,可能需要执行额外的回抽动作以收回剩余的耗材丝。\n"
"\n"
"在下方的擦拭前回抽量设置中输入一个数值,将在擦拭动作之前执行任何超出部分的回抽,否则超出部分的回抽将在擦拭之后执行。"
@@ -18102,8 +20732,9 @@ msgstr "混色子层"
msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects."
msgstr "启用混色子层拆分。启用后,含有混色耗材丝的层将被拆分为子层,以实现混色效果。"
+# AI Translated
msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects."
-msgstr "擦拭塔可以用来清理喷嘴上的残留料和让喷嘴内部的腔压达到稳定状态,以避免打印物体时出现外观瑕疵。"
+msgstr "擦拭塔可以用来清理喷嘴上的残留料和让喷嘴内部的腔压达到稳定状态,以避免打印对象时出现外观瑕疵。"
msgid "Internal ribs"
msgstr "内部加强筋"
@@ -18122,17 +20753,19 @@ msgstr "实际冲刷量等于冲刷量乘数乘以表格单元中的冲刷量"
# AI Translated
msgid "Flush multiplier (Fast mode)"
-msgstr "冲刷倍数(快速模式)"
+msgstr "冲刷量乘数(快速模式)"
# AI Translated
msgid "The flush multiplier used in fast purge mode."
-msgstr "快速冲刷模式下使用的冲刷倍数。"
+msgstr "快速冲刷模式下使用的冲刷量乘数。"
+# AI Translated
msgid "Prime volume"
-msgstr "清理量"
+msgstr "预挤出体积"
+# AI Translated
msgid "This is the volume of material to prime the extruder with on the tower."
-msgstr "擦拭塔上的清理量"
+msgstr "在擦拭塔上用于预挤出的材料体积。"
# AI Translated
msgid "Prime volume mode"
@@ -18171,46 +20804,49 @@ msgstr "塔锥体顶角的角度,用于稳定擦拭塔。角度越大,底座
msgid "Maximum wipe tower print speed"
msgstr "擦拭塔最大打印速度"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
-"擦拭塔冲刷和稀疏层的最大打印速度。当冲刷时,如果稀疏填充速度或从耗材最大体积速度计算出的速度较低,则使用最低速度。\n"
+"擦拭塔冲刷和稀疏层的最大打印速度。当冲刷时,如果稀疏填充速度或从耗材丝最大体积流量计算出的速度较低,则使用最低速度。\n"
"\n"
-"当打印稀疏层时,如果内墙速度或从耗材最大体积流量计算出的速度较低,则使用最低速度。\n"
+"当打印稀疏层时,如果稀疏填充速度或从耗材丝最大体积流量计算出的速度较低,则使用最低速度。\n"
"\n"
"增加此速度可能会影响塔的稳定性,同时增加喷嘴与擦拭塔上可能形成的任何斑点碰撞的力。\n"
"\n"
-"在将此参数增加到默认值90mm/sec之外之前,请确保您的打印机可以可靠地在增加的速度下桥接,并且换料时的滴漏得到了很好的控制。\n"
+"在将此参数增加到默认值 90 mm/s 之外之前,请确保您的打印机可以可靠地在增加的速度下桥接,并且换料时的 Ooze 预防做得很好。\n"
"\n"
-"对于擦拭塔外墙,无论此设置如何,都使用内墙速度。"
+"对于擦拭塔外墙,使用内墙速度,同时也受此设置限制。"
msgid "Wall type"
msgstr "墙类型"
+# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"擦拭塔外墙类型。\n"
-"1. 矩形:默认墙类型,具有固定宽度和高度的矩形。\n"
-"2. 圆锥:底部有圆角的圆锥,有助于稳定擦拭塔。\n"
-"3. 加强筋:在塔壁上增加四个加强筋以提高稳定性。"
+"1. 矩形:具有固定宽度和高度的矩形。\n"
+"2. 圆锥体:底部有圆角的圆锥,有助于稳定擦拭塔。\n"
+"3. 加强筋:默认墙类型,在塔壁上增加四条加强筋以提高稳定性。"
msgid "Rectangle"
msgstr "矩形"
+# AI Translated
msgid "Rib"
-msgstr "肋条"
+msgstr "加强筋"
msgid "Extra rib length"
msgstr "额外加强筋长度"
@@ -18221,30 +20857,35 @@ msgstr "正值可以增加加强筋墙的尺寸,负值可以减小尺寸。但
msgid "Rib width"
msgstr "加强筋宽度"
+# AI Translated
msgid "Rib width is always less than half the prime tower side length."
-msgstr "肋宽度始终小于主塔边长的一半。"
+msgstr "加强筋宽度始终小于擦拭塔边长的一半。"
msgid "Fillet wall"
msgstr "墙加圆角"
# AI Translated
msgid "The wall of prime tower will fillet."
-msgstr "擦拭塔的墙壁将做圆角处理。"
+msgstr "擦拭塔的墙将做圆角处理。"
+# AI Translated
msgid "The extruder to use when printing perimeter of the wipe tower. Set to 0 to use the one that is available (non-soluble would be preferred)."
-msgstr "打印擦拭塔周长时使用的挤出机。设置为0将使用唯一的挤出机(尽量使用不可溶的材料)。"
+msgstr "打印擦拭塔外墙时使用的挤出机。设置为0将使用可用的挤出机(优先使用非可溶材料)。"
+# AI Translated
msgid "Purging volumes - load/unload volumes"
-msgstr "清理量 - 加载/卸载量"
+msgstr "冲刷体积 - 加载/卸载体积"
+# AI Translated
msgid "This vector saves required volumes to change from/to each tool used on the wipe tower. These values are used to simplify creation of the full purging volumes below."
-msgstr "此矢量可保存所需的体积,用于更改每个擦拭塔上工具所使用的from/to体积 。这些值用于简化完全冲刷体积的创建。"
+msgstr "此向量保存了在擦拭塔上切换到/离开每个工具头所需的体积。这些值用于简化下方完整冲刷体积的创建。"
msgid "Skip points"
msgstr "跳过点"
+# AI Translated
msgid "The wall of prime tower will skip the start points of wipe path."
-msgstr "Prime 塔的墙壁将跳过擦拭路径的起点。"
+msgstr "擦拭塔的墙将跳过擦拭路径的起点。"
msgid "Enable tower interface features"
msgstr "启用擦拭塔接触层功能"
@@ -18252,32 +20893,48 @@ msgstr "启用擦拭塔接触层功能"
msgid "Enable optimized prime tower interface behavior when different materials meet."
msgstr "启用优化后的擦拭塔接触层行为,用于不同耗材丝相遇时。"
+# AI Translated
msgid "Cool down from interface boost during prime tower"
-msgstr "擦拭塔期间从接触层加速状态冷却"
+msgstr "打印擦拭塔时从接触层升温状态降温"
msgid "When interface-layer temperature boost is active, set the nozzle back to print temperature at the start of the prime tower so it cools down during the tower."
msgstr "当接触层温度提升处于活动状态时,在擦拭塔开始时将喷嘴温度恢复到打印温度,以便在打印塔期间降温。"
+# AI Translated
msgid "Infill gap"
-msgstr "填补空白"
+msgstr "填充间隙"
+# AI Translated
msgid "Infill gap."
-msgstr "填补空白。"
+msgstr "填充间隙。"
+# AI Translated
msgid "Purging after filament change will be done inside objects' infills. This may lower the amount of waste and decrease the print time. If the walls are printed with transparent filament, the mixed color infill will be visible. It will not take effect unless the prime tower is enabled."
-msgstr "换料后的过渡料会被用来打印对象的填充。这样可以减少材料浪费和缩短打印时间,但是如果对象的内外墙是采用透明材料打印的,则可以从模型外观上看到内部的混色过渡料。该功能只有在启用料塔的时候才生效。"
+msgstr "换料后的过渡料会被用来打印对象的填充。这样可以减少材料浪费和缩短打印时间,但是如果对象的内外墙是采用透明材料打印的,则可以从模型外观上看到内部的混色过渡料。该功能只有在启用擦拭塔的时候才生效。"
+# AI Translated
msgid "Purging after filament change will be done inside objects' support. This may lower the amount of waste and decrease the print time. It will not take effect unless a prime tower is enabled."
-msgstr "换料后的过渡料会被用来打印对象的支撑。这样可以减少材料浪费以及缩短打印时间。该功能只有在启用料塔的时候才生效。"
+msgstr "换料后的过渡料会被用来打印对象的支撑。这样可以减少材料浪费以及缩短打印时间。该功能只有在启用擦拭塔的时候才生效。"
+# AI Translated
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
-msgstr "换料后的过渡料会被用来打印这个对象。这样可以减少材料浪费和缩短打印时间,但是这个对象的外观会是混色的。该功能只有在启用料塔的时候才生效。"
+msgstr "换料后的过渡料会被用来打印这个对象。这样可以减少材料浪费和缩短打印时间,但是这个对象的外观会是混色的。该功能只有在启用擦拭塔的时候才生效。"
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "传送带冲刷塔对象"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "标记自动生成的传送带冲刷棱柱。由程序自动管理,请勿手动设置。"
+
+# AI Translated
msgid "Maximal bridging distance"
-msgstr "最大桥接距离"
+msgstr "最大搭桥距离"
+# AI Translated
msgid "Maximal distance between supports on sparse infill sections."
-msgstr "稀疏填充剖面上支撑之间的最大距离。"
+msgstr "稀疏填充区域中支撑点之间的最大距离。"
msgid "Wipe tower purge lines spacing"
msgstr "擦拭塔冲刷线间距"
@@ -18288,29 +20945,34 @@ msgstr "擦拭塔上冲刷线的间距"
msgid "Extra flow for purging"
msgstr "额外冲刷量"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "用于擦拭塔冲刷线的额外流量。这使冲刷线比正常情况下更厚或更窄。间距会自动调整。"
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "用于擦拭塔冲刷线的额外流量。这使冲刷线比正常情况下更厚。间距会自动调整。"
msgid "Idle temperature"
msgstr "待机温度"
+# AI Translated
msgid "Nozzle temperature when the tool is currently not used in multi-tool setups. This is only used when 'Ooze prevention' is active in Print Settings. Set to 0 to disable."
-msgstr "在多工具设置中,当前未使用的工具的喷嘴温度。这仅在打印设置中启用'防滴漏'时使用。设置为0以禁用。"
+msgstr "多工具头设备中当前未使用的工具头的喷嘴温度。仅在打印设置中启用'防渗料'时使用。设为0以禁用。"
msgid "X-Y hole compensation"
msgstr "X-Y 孔洞尺寸补偿"
+# AI Translated
msgid "Holes in objects will expand or contract in the XY plane by the set value. Positive values make holes bigger and negative values make holes smaller. This function is used to adjust sizes slightly when objects have assembly issues."
-msgstr "物体中的孔洞将在XY平面内根据配置值进行扩展或收缩。正值使孔洞变大,负值使孔洞变小。此功能用于在物体出现装配问题时微调尺寸。"
+msgstr "对象中的孔洞将在XY平面内根据配置值进行扩展或收缩。正值使孔洞变大,负值使孔洞变小。此功能用于在对象出现装配问题时微调尺寸。"
msgid "X-Y contour compensation"
msgstr "X-Y 外轮廓尺寸补偿"
+# AI Translated
msgid "Contours of objects will expand or contract in the XY plane by the set value. Positive values make contours bigger and negative values make contours smaller. This function is used to adjust sizes slightly when objects have assembly issues."
-msgstr "物体的外轮廓将在XY平面内根据配置值进行扩展或收缩。正值使轮廓变大,负值使轮廓变小。此功能用于在物体出现装配问题时微调尺寸。"
+msgstr "对象的外轮廓将在XY平面内根据配置值进行扩展或收缩。正值使轮廓变大,负值使轮廓变小。此功能用于在对象出现装配问题时微调尺寸。"
+# AI Translated
msgid "Convert holes to polyholes"
-msgstr "将圆孔转换为多边型孔"
+msgstr "将圆孔转换为多边形孔"
msgid ""
"Search for almost-circular holes that span more than one layer and convert the geometry to polyholes. Use the nozzle size and the (biggest) diameter to compute the polyhole.\n"
@@ -18319,9 +20981,11 @@ msgstr ""
"搜索跨越多层的近似圆形孔,并将几何形状转换为多边形孔。使用喷嘴尺寸和(最大)直径来计算多边形孔。\n"
"参见http://hydraraptor.blogspot.com/2011/02/polyholes.html"
+# AI Translated
msgid "Polyhole detection margin"
-msgstr "多边型孔检测边缘"
+msgstr "多边形孔检测余量"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Maximum defection of a point to the estimated radius of the circle.\n"
@@ -18329,12 +20993,12 @@ msgid ""
"In mm or in % of the radius."
msgstr ""
"点到圆半径的最大偏差。\n"
-"由于圆柱体通常被导出为大小不同的三角形,因此点可能不在圆周上。\n"
-"此设置允许您有一些余地来扩大检测范围。\n"
-"以毫米或半径的百分比表示。"
+"由于圆柱体通常被导出为大小不同的三角形,因此点可能不在圆周上。此设置允许您有一些余地来扩大检测范围。\n"
+"以毫米或半径的百分比(%)表示。"
+# AI Translated
msgid "Polyhole twist"
-msgstr "扭曲多边型孔"
+msgstr "多边形孔扭转"
msgid "Rotate the polyhole every layer."
msgstr "按层旋转多边形孔。"
@@ -18360,8 +21024,9 @@ msgstr "将被存储到.gcode和.sl1/.sl1s文件中的图片尺寸,格式如
msgid "Format of G-code thumbnails"
msgstr "G-code缩略图的格式"
+# AI Translated
msgid "Format of G-code thumbnails: PNG for best quality, JPG for smallest size, QOI for low memory firmware."
-msgstr "G-Code 缩略图格式: PNG 质量最佳,JPG 尺寸最小,QOI 用于低内存固件"
+msgstr "G-Code 缩略图格式:PNG 质量最佳,JPG 尺寸最小,QOI 用于低内存固件。"
msgid "Use relative E distances"
msgstr "使用相对E距离"
@@ -18369,8 +21034,9 @@ msgstr "使用相对E距离"
msgid "Relative extrusion is recommended when using \"label_objects\" option. Some extruders work better with this option unchecked (absolute extrusion mode). Wipe tower is only compatible with relative mode. It is recommended on most printers. Default is checked."
msgstr "相对挤出建议在使用\"label_objects\"选项时使用。某些挤出机在未选中此选项(绝对挤出模式)时工作得更好。擦拭塔仅与相对模式兼容。建议在大多数打印机上使用。默认为选中状态。"
+# AI Translated
msgid "The classic wall generator produces walls with constant extrusion width and for very thin areas, gap-fill is used. The Arachne engine produces walls with variable extrusion width."
-msgstr "经典墙生成器产生的墙走线具有一致的挤出宽度,对狭窄区域使用填缝。Arachne引擎则产生变线宽的墙走线"
+msgstr "经典墙生成器产生的墙走线具有一致的挤出宽度,对狭窄区域使用缝隙填充。Arachne引擎则产生变线宽的墙走线。"
msgid "Arachne"
msgstr "Arachne"
@@ -18402,23 +21068,22 @@ msgstr "从中心开始计算的墙层数,线宽变化需要分布在这些墙
msgid "Minimum feature size"
msgstr "最小特征尺寸"
+# AI Translated
msgid "Minimum thickness of thin features. Model features that are thinner than this value will not be printed, while features thicker than than this value will be widened to the minimum wall width. It's expressed as a percentage over nozzle diameter."
-msgstr ""
-"薄特征的最小厚度。\n"
-"比此值更薄的模型特征将不会被打印,而比此值更厚的特征将被加宽到最小墙宽。\n"
-"本设置以喷嘴直径的百分比表示。"
+msgstr "薄特征的最小厚度。比此值更薄的模型特征将不会被打印,而比此值更厚的特征将被加宽到最小墙宽。本设置以喷嘴直径的百分比表示。"
msgid "Minimum wall length"
msgstr "最短墙长度"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
msgstr ""
-"调整这个值以略过短的、未闭合的墙,因为这些墙可能会增加打印耗时。设置较高的值将移除更多和更长的墙。\n"
+"调整这个值以略过短的、未闭合的墙,因为这些墙可能会增加打印耗时。该值是墙宽的倍数。设置较高的值将移除更多和更长的墙。\n"
"\n"
-"请注意:底面和顶面将不受此值的影响,原因是防止模型外部出现可见缝隙。调整下方高级设置中的 “单层墙阈值” 来调整判断顶面的灵敏度。只有当此设置高于默认值的0.5、或启用了单层顶面时,“单层墙阈值”才会显示。"
+"请注意:底面和顶面将不受此值的影响,原因是防止模型外部出现可见缝隙。调整下方“墙和表面”设置中的“单层墙阈值”来调整判断顶面的灵敏度。只有当此设置高于默认值的0.5、或启用了单层顶面时,“单层墙阈值”才会显示。"
msgid "Maximum wall resolution"
msgstr "最大墙体分辨率"
@@ -18429,7 +21094,8 @@ msgstr "此值决定墙体线段的最小长度(毫米)。此值设置得越
msgid "Maximum wall deviation"
msgstr "最大墙体偏差"
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+# AI Translated
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
msgstr "在为“最大墙体分辨率”设置降低分辨率时所允许的最大偏差。如果增大此值,打印精度会降低,但 G-code 会更小。“最大墙体偏差”会限制“最大墙体分辨率”,因此当两者冲突时,以“最大墙体偏差”为准。"
msgid "First layer minimum wall width"
@@ -18438,11 +21104,13 @@ msgstr "首层最小墙宽度"
msgid "The minimum wall width that should be used for the first layer is recommended to be set to the same size as the nozzle. This adjustment is expected to enhance adhesion."
msgstr "应用于首层的最小墙宽度,建议设置与喷嘴尺寸相同。此调整有助于增强附着力。"
+# AI Translated
msgid "Minimum wall width"
-msgstr "最窄墙宽度"
+msgstr "最小墙宽度"
+# AI Translated
msgid "Width of the wall that will replace thin features (according to the Minimum feature size) of the model. If the Minimum wall width is thinner than the thickness of the feature, the wall will become as thick as the feature itself. It's expressed as a percentage over nozzle diameter."
-msgstr "用于替换模型上的细小特征(根据最小特征尺寸决定)的墙线宽。如果最小墙宽度小于最小特征宽度,则墙将变得和特征本身一样厚。本设置以喷嘴直径的百分比表示。"
+msgstr "用于替换模型上的细小特征(根据最小特征尺寸决定)的墙线宽。如果最小墙宽度小于特征本身的厚度,则墙将变得和特征本身一样厚。本设置以喷嘴直径的百分比表示。"
msgid "Hotend change time"
msgstr "热端更换时间"
@@ -18453,32 +21121,39 @@ msgstr "热端更换时间。"
msgid "Hotend change"
msgstr "热端更换"
+# AI Translated
msgid "When changing the hotend, it is recommended to extrude a certain length of filament from the original nozzle. This helps minimize nozzle oozing."
-msgstr "更换热端时,建议从原热端中挤出一定长度的耗材丝。这有助于最大限度地减少喷嘴漏料。"
+msgstr "更换热端时,建议从原热端中挤出一定长度的耗材丝。这有助于最大限度地减少喷嘴渗料。"
msgid "Extruder change"
msgstr "挤出机更换"
+# AI Translated
msgid "To prevent oozing, the nozzle will perform a reverse travel movement for a certain period after the ramming is complete. The setting define the travel time."
-msgstr "为了防止溢料,预冲刷完成后,喷嘴会进行一段时间的反向空驶。该设置用于定义空驶时间。"
+msgstr "为了防止渗料,预冲刷完成后,喷嘴会进行一段时间的反向空驶。该设置用于定义空驶时间。"
+# AI Translated
msgid "To prevent oozing, the nozzle temperature will be cooled during ramming. Therefore, the ramming time must be greater than the cooldown time. 0 means disabled."
-msgstr "为了防止溢料,预冲刷时会降低喷嘴温度。因此,预冲刷时间必须大于冷却时间。0 表示禁用。"
+msgstr "为了防止渗料,预冲刷时会降低喷嘴温度。因此,预冲刷时间必须大于冷却时间。0 表示禁用。"
+# AI Translated
msgid "The maximum volumetric speed for ramming before extruder change, where -1 means using the maximum volumetric speed."
-msgstr "换出挤出机前的最大预冲刷体积速度,-1 表示使用最大体积速度。"
+msgstr "换出挤出机前的最大预冲刷体积流量,-1 表示使用最大体积流量。"
+# AI Translated
msgid "To prevent oozing, the nozzle temperature will be cooled during ramming. Note: only a cooldown command and fan activation are triggered, reaching the target temperature is not guaranteed. 0 means disabled."
-msgstr "为防止溢料,预冲刷过程中喷嘴温度会降低。注意:仅触发冷却指令并启动风扇,不保证达到目标温度。0 表示禁用。"
+msgstr "为防止渗料,预冲刷过程中喷嘴温度会降低。注意:仅触发冷却指令并启动风扇,不保证达到目标温度。0 表示禁用。"
+# AI Translated
msgid "The maximum volumetric speed for ramming before a hotend change, where -1 means using the maximum volumetric speed."
-msgstr "热端更换前的最大预冲刷体积速度,其中 -1 表示使用最大体积速度。"
+msgstr "热端更换前的最大预冲刷体积流量,其中 -1 表示使用最大体积流量。"
msgid "length when change hotend"
msgstr "换热端时回抽量"
+# AI Translated
msgid "When this retraction value is modified, it will be used as the amount of filament retracted inside the hotend before changing hotends."
-msgstr "当修改此回抽数值时,将用于热端内在更换热端前回抽的耗材量。"
+msgstr "当修改此回抽数值时,将用于热端内在更换热端前回抽的耗材丝量。"
# AI Translated
msgid "Support fast purge mode"
@@ -18490,14 +21165,15 @@ msgstr "此打印机是否支持带有优化温度和倍数的快速冲刷模式
# AI Translated
msgid "Filament change"
-msgstr "更换耗材"
+msgstr "更换耗材丝"
# AI Translated
msgid "The volume of material required to prime the extruder on the tower, excluding a hotend change."
msgstr "在塔上预挤出挤出机所需的材料体积,不包括更换热端。"
+# AI Translated
msgid "The volume of material required to prime the extruder for a hotend change on the tower."
-msgstr "换热端所需的擦料塔上的清理量。"
+msgstr "在擦拭塔上为更换热端预挤出挤出机所需的材料体积。"
# AI Translated
msgid "Preheat temperature delta"
@@ -18516,17 +21192,23 @@ msgstr "此选项用于自动识别内部实心填充中的狭窄区域。开启
msgid "invalid value "
msgstr "无效值 "
+# AI Translated
msgid "Invalid value when spiral vase mode is enabled: "
-msgstr "在旋转花瓶模式时存在无效的值:"
+msgstr "在旋转花瓶模式时存在无效的值: "
+# AI Translated
msgid "Bridge line width must not exceed nozzle diameter: "
-msgstr "桥接线宽不得超过喷嘴直径:"
+msgstr "桥接线宽不得超过喷嘴直径: "
+# AI Translated
msgid "too large line width "
-msgstr "线宽过大"
+msgstr "线宽过大 "
-msgid " not in range "
-msgstr " 不在合理范围内"
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% 不在范围 [%2%, %3%] 内"
msgid "This exports the project as a 3MF file."
msgstr "导出项目为 3MF。"
@@ -18552,8 +21234,9 @@ msgstr "导出多个STL"
msgid "Export the objects as multiple STLs to directory."
msgstr "将对象导出为多个STL到目录。"
+# AI Translated
msgid "Slice the plates: 0-all plates, i-plate i, others-invalid"
-msgstr "对打印板切片:0-所有板,i-第i个板,其他-无效"
+msgstr "对盘切片:0-所有盘,i-第i个盘,其他-无效"
msgid "This shows command help."
msgstr "显示命令行帮助。"
@@ -18564,11 +21247,14 @@ msgstr "同步最新设置"
msgid "Update the config values of 3MF to latest."
msgstr "将3mf的配置值更新为最新值。"
+# AI Translated
msgid "Load default filaments"
-msgstr "加载默认耗材"
+msgstr "加载默认耗材丝"
+# AI Translated
+# Needs human review: CLI option --load-defaultfila; check "those not loaded" means the unloaded filament slots.
msgid "Load first filament as default for those not loaded."
-msgstr "加载第一个耗材为默认材料"
+msgstr "未加载耗材丝的位置使用第一个耗材丝作为默认耗材丝。"
msgid "Minimum save"
msgstr "最小保存"
@@ -18576,17 +21262,20 @@ msgstr "最小保存"
msgid "Export 3MF with minimum size."
msgstr "以最小尺寸导出3mf。"
+# AI Translated
msgid "mtcpp"
-msgstr "材料温度补偿"
+msgstr "每盘最大三角形数"
msgid "max triangle count per plate for slicing"
msgstr "切片时每个盘的最大三角形数。"
+# AI Translated
msgid "mstpp"
-msgstr "材料温度暂停"
+msgstr "每盘最大切片时间"
+# AI Translated
msgid "max slicing time per plate in seconds"
-msgstr "每板的最大切片耗时(秒)。"
+msgstr "每盘的最大切片耗时(秒)"
msgid "No check"
msgstr "不进行检查"
@@ -18620,7 +21309,7 @@ msgstr "检查网格(JSON 输出到 stdout)"
# AI Translated
msgid "Print a JSON summary of each loaded object to stdout, then exit: its bounding boxes and the convex hull faces it can be laid on, with their normals, areas and centers. These are the faces the --ground-* options choose from. Machine-readable alternative to --info."
-msgstr "将每个已加载对象的 JSON 摘要输出到 stdout,然后退出:包括其包围盒,以及可供放置的凸包面及其法线、面积和中心。--ground-* 选项正是从这些面中选择。--info 的机器可读替代方案。"
+msgstr "将每个已加载对象的 JSON 摘要输出到 stdout,然后退出:包括其边界框,以及可供放置的凸包面及其法线、面积和中心。--ground-* 选项正是从这些面中选择。--info 的机器可读替代方案。"
# AI Translated
msgid "Inspect paint (JSON to stdout)"
@@ -18628,7 +21317,7 @@ msgstr "检查绘制(JSON 输出到 stdout)"
# AI Translated
msgid "Print a structured JSON summary of every painted layer (supports, seam, MMU color, fuzzy-skin) already stored on the loaded model — per-state facet count, surface area, and mesh-local bounding box — then exit. Machine-readable alternative to opening the paint gizmos in the GUI."
-msgstr "输出已加载模型上已保存的每个绘制图层(支撑、接缝、MMU 颜色、绒毛表面)的结构化 JSON 摘要 — 每种状态的面片数量、表面积和网格局部包围盒 — 然后退出。在图形界面中打开绘制工具的机器可读替代方案。"
+msgstr "输出已加载模型上已保存的每个绘制图层(支撑、接缝、MMU 颜色、绒毛表面)的结构化 JSON 摘要(每种状态的面片数量、表面积和网格局部边界框),然后退出。在图形界面中打开绘制小工具的机器可读替代方案。"
msgid "Export Settings"
msgstr "导出配置"
@@ -18676,6 +21365,14 @@ msgstr "朝向选项"
msgid "Orient options: 0-disable, 1-enable, others-auto"
msgstr "朝向选项:0-禁用,1-启用,其他-自动"
+# AI Translated
+msgid "Repair"
+msgstr "修复"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "像“修复模型”一样修复模型的网格:封闭孔洞和裂缝,使其朝向外侧,并消除自相交。"
+
msgid "Rotation angle around the Z axis in degrees."
msgstr "绕 Z 轴的旋转角度(以度为单位)。"
@@ -18693,7 +21390,7 @@ msgstr "绕 Y 轴的旋转角度(以度为单位)"
# AI Translated
msgid "Ground largest face"
-msgstr "以最大面着床"
+msgstr "以最大面贴合热床"
# AI Translated
msgid "Lay each object on the largest face of its convex hull and drop it onto the bed. Of equally large faces, the one already facing down is kept. Objects without a face large enough to rest on are left as they are. Transforms run in command-line order, so rotations given before this option are respected. --orient 1 runs after all transforms and replaces the orientation."
@@ -18701,7 +21398,7 @@ msgstr "将每个对象以其凸包的最大面放置,并落到热床上。若
# AI Translated
msgid "Ground face by normal"
-msgstr "按法线以指定面着床"
+msgstr "按法线选择面贴合热床"
# AI Translated
msgid "Lay each object on the convex hull face whose outward normal is closest to the direction NX,NY,NZ and drop it onto the bed. The direction is in object coordinates, which include the rotations given before this option and match the plate axes unless the input file rotates the object. For example, 1,0,0 stands the object on its +X side. --orient 1 runs after all transforms and replaces the orientation."
@@ -18709,7 +21406,7 @@ msgstr "将每个对象以其凸包中外法线最接近方向 NX,NY,NZ 的面
# AI Translated
msgid "Ground face at point"
-msgstr "以指定点所在面着床"
+msgstr "以指定点所在的面贴合热床"
# AI Translated
msgid "Lay each object on the convex hull face that contains the point X,Y,Z and drop it onto the bed. The point is in object coordinates, which include the rotations given before this option; --inspect-mesh reports face centers in them. Objects without such a face are left as they are, and the run fails if no object has one. --orient 1 runs after all transforms and replaces the orientation."
@@ -18724,11 +21421,13 @@ msgstr "加载通用设置"
msgid "Load process/machine settings from the specified file."
msgstr "从指定文件加载工艺/打印机设置"
+# AI Translated
msgid "Load Filament Settings"
-msgstr "加载耗材设置"
+msgstr "加载耗材丝设置"
+# AI Translated
msgid "Load filament settings from the specified file list."
-msgstr "从指定文件加载耗材设置"
+msgstr "从指定文件加载耗材丝设置。"
msgid "Skip Objects"
msgstr "跳过对象"
@@ -18736,11 +21435,13 @@ msgstr "跳过对象"
msgid "Skip some objects in this print."
msgstr "打印过程中跳过一些对象"
+# AI Translated
msgid "Clone Objects"
-msgstr "复制对象"
+msgstr "克隆对象"
+# AI Translated
msgid "Clone objects in the load list."
-msgstr "复制加载列表中的对象。"
+msgstr "克隆加载列表中的对象。"
msgid "Load uptodate process/machine settings when using uptodate"
msgstr "更新同步时加载最新工艺/机器设置"
@@ -18749,11 +21450,13 @@ msgstr "更新同步时加载最新工艺/机器设置"
msgid "load up-to-date process/machine settings from the specified file when using up-to-date"
msgstr "在使用 up-to-date 时,从指定的文件中加载最新的工艺/机器设置。"
+# AI Translated
msgid "Load uptodate filament settings when using uptodate"
-msgstr "更新同步时加载最新耗材设置"
+msgstr "更新同步时加载最新耗材丝设置"
+# AI Translated
msgid "Load uptodate filament settings from the specified file when using uptodate."
-msgstr "在使用 同步最新设置 时,从指定文件加载最新的耗材设置。"
+msgstr "在使用“同步最新设置”时,从指定文件加载最新的耗材丝设置。"
msgid "Downward machines check"
msgstr "向下兼容机器检查"
@@ -18785,6 +21488,14 @@ msgstr "输出路径"
msgid "This is the output directory for exported files."
msgstr "导出文件的输出路径。"
+# AI Translated
+msgid "Export statistics"
+msgstr "导出统计信息"
+
+# AI Translated
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr "以 JSON 格式写入每个已切片盘的统计信息:在输出目录中其 G-code 旁写入 plate_N.statistics.json,并写入 --export-3mf 导出的 3MF 内。内容包括打印时间、耗材丝和各走线类型的总量,以及按层和按对象的相应统计。"
+
msgid "Debug level"
msgstr "调试等级"
@@ -18809,17 +21520,21 @@ msgstr "加载自定义 G-code"
msgid "Load custom G-code from json."
msgstr "从 json 文件加载自定义 G-code"
+# AI Translated
msgid "Load filament IDs"
-msgstr "加载耗材ID"
+msgstr "加载耗材丝ID"
+# AI Translated
msgid "Load filament IDs for each object."
-msgstr "为每个对象加载耗材ID。"
+msgstr "为每个对象加载耗材丝ID。"
+# AI Translated
msgid "Allow multiple colors on one plate"
-msgstr "允许在一个打印板上使用多种颜色"
+msgstr "允许在一个盘上使用多种颜色"
+# AI Translated
msgid "If enabled, Arrange will allow multiple colors on one plate."
-msgstr "如果启用,自动排列将允许在一个打印板上使用多种颜色"
+msgstr "如果启用,自动摆放将允许在一个盘上使用多种颜色。"
msgid "Allow rotation when arranging"
msgstr "排列时允许旋转"
@@ -18844,8 +21559,9 @@ msgstr "如果启用,排列将在放置对象时,避开挤出校准区域。
msgid "Skip modified G-code in 3MF"
msgstr "跳过 3MF 中修改过的 G-code"
+# AI Translated
msgid "Skip the modified G-code in 3MF from printer or filament presets."
-msgstr "跳过 3MF 中来自打印机或耗材预设中修改过的 G-code。"
+msgstr "跳过 3MF 中来自打印机或耗材丝预设中修改过的 G-code。"
msgid "MakerLab name"
msgstr "MakerLab 名称"
@@ -18886,14 +21602,17 @@ msgstr "包含自定义 G-code 块开头的Z轴抬升。"
msgid "Position of the extruder at the beginning of the custom G-code block. If the custom G-code travels somewhere else, it should write to this variable so OrcaSlicer knows where it travels from when it gets control back."
msgstr "自定义 G-code 块开始时挤出机的位置。如果自定义 G-code 移动到了其他方位,应将该方位写入此变量,以便 OrcaSlicer 在重新取得控制时知道其起始位置。"
+# AI Translated
msgid "Retraction state at the beginning of the custom G-code block. If the custom G-code moves the extruder axis, it should write to this variable so OrcaSlicer de-retracts correctly when it gets control back."
-msgstr "自定义 G-code 块开始时的回抽状态。如果自定义 G-code 移动了挤出轴,应将该轴状态写入此变量,以便 OrcaSlicer 在重新取得控制时能够正确重装填"
+msgstr "自定义 G-code 块开始时的回抽状态。如果自定义 G-code 移动了挤出轴,应将该轴状态写入此变量,以便 OrcaSlicer 在重新取得控制时能够正确执行装填回抽。"
+# AI Translated
msgid "Extra de-retraction"
-msgstr "额外重装填"
+msgstr "额外装填回抽"
+# AI Translated
msgid "Currently planned extra extruder priming after de-retraction."
-msgstr "在当前挤出头在装填后,进行额外的预挤出。"
+msgstr "当前计划在装填回抽之后进行的额外挤出机预挤出量。"
msgid "Absolute E position"
msgstr "绝对 E 位置"
@@ -18922,11 +21641,13 @@ msgstr "打印中是否生成擦拭塔。"
msgid "Initial extruder"
msgstr "初始挤出机"
+# AI Translated
msgid "Zero-based index of the first extruder used in the print. Same as initial_tool."
-msgstr "打印中使用的第一个挤出机的从零开始的索引。与初始工具相同。"
+msgstr "打印中使用的第一个挤出机的从零开始的索引。与 initial_tool 相同。"
+# AI Translated
msgid "Initial tool"
-msgstr "初始工具"
+msgstr "初始工具头"
msgid "Zero-based index of the first extruder used in the print. Same as initial_extruder."
msgstr "打印中使用的第一个挤出机的从零开始的索引。与 initial_extruder 相同。"
@@ -18946,17 +21667,69 @@ msgstr "挤出机总数,无论当前打印中是否使用它们。"
msgid "Has single extruder MM priming"
msgstr "单挤出机多材料预挤出"
+# AI Translated
msgid "Are the extra multi-material priming regions used in this print?"
-msgstr "此打印中是否使用额外的多材料预注区域?"
+msgstr "此打印中是否使用额外的多材料预挤出区域?"
+
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "初始无支撑挤出机"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "不含支撑打印时使用的第一个挤出机的从零开始的索引。与 initial_no_support_tool 相同。"
+
+# AI Translated
+# Needs human review: 'Head wrap' here appears to mean filament wrapping around the nozzle (see the wrapping detection options); check the term is right for the placeholder name in_head_wrap_detect_zone.
+msgid "In head wrap detect zone"
+msgstr "位于包裹检测区域内"
+
+# AI Translated
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "指示首层是否与包裹检测区域重叠。"
+
+# AI Translated
+msgid "Current bed type"
+msgstr "当前热床类型"
+
+# AI Translated
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "当前所选热床类型的名称(例如 'Textured PEI Plate'、'Smooth High Temp Plate')。"
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "IDEX/IQEX 当前模式"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "此盘当前启用的 IDEX/IQEX 并行打印模式名称(例如 'primary'、'mirror'、'copy')。未启用 IDEX/IQEX 时为空字符串。"
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "IDEX/IQEX 当前模式索引"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "当前 IDEX/IQEX 并行打印模式在 imex_mode_names 中的从零开始的索引。"
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "IDEX/IQEX 当前模式 G-code"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "当前 IDEX/IQEX 并行打印模式的原始模式 G-code 模板(占位符求值之后)。在此定义的全局变量会传入 machine_start_gcode。"
msgid "Volume per extruder"
msgstr "各挤出机的体积"
+# AI Translated
msgid "Total filament volume extruded per extruder during the entire print."
-msgstr "整个打印过程中每个挤出机挤出的总耗材体积"
+msgstr "整个打印过程中每个挤出机挤出的总耗材丝体积。"
+# AI Translated
msgid "Total tool changes"
-msgstr "总工具更换次数"
+msgstr "总工具头更换次数"
msgid "Number of tool changes during the print."
msgstr "打印期间的工具头更换次数。"
@@ -18964,20 +21737,23 @@ msgstr "打印期间的工具头更换次数。"
msgid "Total volume"
msgstr "总体积"
+# AI Translated
msgid "Total volume of filament used during the entire print."
-msgstr "整个打印过程中使用的耗材总体积。"
+msgstr "整个打印过程中使用的耗材丝总体积。"
msgid "Weight per extruder"
msgstr "各挤出机的重量"
+# AI Translated
msgid "Weight per extruder extruded during the entire print. Calculated from filament_density value in Filament Settings."
-msgstr "整个打印过程中各个挤出机所挤出的重量。根据耗材设置中的耗材密度值计算。"
+msgstr "整个打印过程中各个挤出机所挤出的重量。根据耗材丝设置中的 filament_density 值计算。"
msgid "Total weight"
msgstr "总重量"
+# AI Translated
msgid "Total weight of the print. Calculated from filament_density value in Filament Settings."
-msgstr "打印件的总重量。根据耗材设置中的耗材密度值计算。"
+msgstr "打印件的总重量。根据耗材丝设置中的 filament_density 值计算。"
msgid "Total layer count"
msgstr "总层数"
@@ -18988,11 +21764,13 @@ msgstr "整个打印中的层数量。"
msgid "Print time (normal mode)"
msgstr "打印耗时(正常模式)"
+# AI Translated
msgid "Estimated print time when printed in normal mode (i.e. not in silent mode). Same as print_time."
-msgstr "在普通模式(即非静音模式)下打印时的预计打印耗时。与“打印耗时”类似。"
+msgstr "在正常模式(即非静音模式)下打印时的预计打印耗时。与 print_time 相同。"
+# AI Translated
msgid "Estimated print time when printed in normal mode (i.e. not in silent mode). Same as normal_print_time."
-msgstr "在正常模式(即非静音模式)下打印时的预计打印耗时。与“普通打印耗时”类似。"
+msgstr "在正常模式(即非静音模式)下打印时的预计打印耗时。与 normal_print_time 相同。"
msgid "Print time (silent mode)"
msgstr "打印耗时(静音模式)"
@@ -19000,26 +21778,31 @@ msgstr "打印耗时(静音模式)"
msgid "Estimated print time when printed in silent mode."
msgstr "在静音模式下打印时的预计打印耗时。"
+# AI Translated
msgid "Total cost of all material used in the print. Calculated from filament_cost value in Filament Settings."
-msgstr "打印中使用的所有耗材的总成本。根据耗材设置中的 filament_cost 值计算。"
+msgstr "打印中使用的所有耗材丝的总成本。根据耗材丝设置中的 filament_cost 值计算。"
msgid "Total wipe tower cost"
msgstr "擦拭塔总成本"
+# AI Translated
msgid "Total cost of the material wasted on the wipe tower. Calculated from filament_cost value in Filament Settings."
-msgstr "擦拭塔上浪费的材料的总成本。根据耗材设置中的 filament_cost 值计算。"
+msgstr "擦拭塔上浪费的材料的总成本。根据耗材丝设置中的 filament_cost 值计算。"
msgid "Wipe tower volume"
msgstr "擦拭塔体积"
+# AI Translated
msgid "Total filament volume extruded on the wipe tower."
-msgstr "擦拭塔上已挤出耗材的总体积。"
+msgstr "擦拭塔上已挤出耗材丝的总体积。"
+# AI Translated
msgid "Used filament"
-msgstr "已用耗材"
+msgstr "已用耗材丝"
+# AI Translated
msgid "Total length of filament used in the print."
-msgstr "打印中使用的耗材的总长度。"
+msgstr "打印中使用的耗材丝的总长度。"
# AI Translated
msgid "Print time (total seconds)"
@@ -19060,8 +21843,9 @@ msgstr "打印耗时(秒数部分)"
msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing."
msgstr "预计打印耗时的秒数部分(正常模式)。在后处理时将替换为实际值。"
+# AI Translated
msgid "Filament length (meters)"
-msgstr "耗材长度(米)"
+msgstr "耗材丝长度(米)"
msgid "Total filament length used in meters. Replaced with actual value during post-processing."
msgstr "使用的耗材丝总长度(以米为单位)。在后处理期间替换为实际值。"
@@ -19094,6 +21878,18 @@ msgstr "输入文件名(无扩展名)"
msgid "Source filename of the first object, without extension."
msgstr "第一个对象的源文件名,无扩展名。"
+# AI Translated
+msgid "Full input filename"
+msgstr "完整输入文件名"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "第一个对象的源文件名。"
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "所切片盘的名称。"
+
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "该向量有两个元素:点的 X 坐标和 Y 坐标。值以毫米为单位。"
@@ -19103,17 +21899,21 @@ msgstr "该向量有两个元素:边界框的 X 和 Y 维度。值以毫米为
msgid "First layer convex hull"
msgstr "首层凸包"
+# AI Translated
msgid "Vector of points of the first layer convex hull. Each element has the following format:'[x, y]' (x and y are floating-point numbers in mm)."
-msgstr "第一层凸包的点向量。每个元素的格式如下:'[x, y]'(x 和 y 是以 mm 为单位的浮点数)。"
+msgstr "首层凸包的点向量。每个元素的格式如下:'[x, y]'(x 和 y 是以 mm 为单位的浮点数)。"
+# AI Translated
msgid "Bottom-left corner of the first layer bounding box"
-msgstr "第一层边界框的左下角"
+msgstr "首层边界框的左下角"
+# AI Translated
msgid "Top-right corner of the first layer bounding box"
-msgstr "第一层边界框的右上角"
+msgstr "首层边界框的右上角"
+# AI Translated
msgid "Size of the first layer bounding box"
-msgstr "第一层边界框"
+msgstr "首层边界框尺寸"
msgid "Bottom-left corner of print bed bounding box"
msgstr "热床边界框的左下角"
@@ -19121,8 +21921,61 @@ msgstr "热床边界框的左下角"
msgid "Top-right corner of print bed bounding box"
msgstr "热床边界框的右上角"
+# AI Translated
msgid "Size of the print bed bounding box"
-msgstr "热床边界框"
+msgstr "热床边界框尺寸"
+
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "无擦拭塔时的首层中心"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "首层高度。"
+
+# AI Translated
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "每个挤出机/耗材丝的热床温度向量。"
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "每个挤出机/耗材丝的首层热床温度向量。与 first_layer_bed_temperature 的值相同。"
+
+# AI Translated
+msgid "First layer bed temperature (initial extruder)"
+msgstr "首层热床温度(初始挤出机)"
+
+# AI Translated
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "初始挤出机的首层热床温度。与 bed_temperature_initial_layer[initial_extruder] 相同"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "每个挤出机/耗材丝的腔体温度向量。"
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "每个挤出机/耗材丝的最低腔体温度向量。"
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "整体腔体温度"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "整体腔体温度。该值为所用挤出机/耗材丝中的最高腔体温度。"
+
+# AI Translated
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "每个挤出机/耗材丝的首层热床温度向量。与 bed_temperature_initial_layer 的值相同。"
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "首层温度"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "每个挤出机/耗材丝的首层温度向量。"
msgid "Timestamp"
msgstr "时间戳"
@@ -19148,11 +22001,13 @@ msgstr "打印预设名称"
msgid "Name of the print preset used for slicing."
msgstr "用于切片的打印预设的名称。"
+# AI Translated
msgid "Filament preset name"
-msgstr "耗材预设名称"
+msgstr "耗材丝预设名称"
+# AI Translated
msgid "Names of the filament presets used for slicing. The variable is a vector containing one name for each extruder."
-msgstr "用于切片的耗材预设的名称。该变量是一个向量,包含每个挤出机的名称。"
+msgstr "用于切片的耗材丝预设的名称。该变量是一个向量,包含每个挤出机的名称。"
msgid "Printer preset name"
msgstr "打印机预设名称"
@@ -19160,36 +22015,288 @@ msgstr "打印机预设名称"
msgid "Name of the printer preset used for slicing."
msgstr "用于切片的打印机预设的名称。"
+# AI Translated
msgid "Physical printer name"
-msgstr "实际打印件名称"
+msgstr "物理打印机名称"
+# AI Translated
msgid "Name of the physical printer used for slicing."
-msgstr "用于切片的,实际的打印机的名字。"
+msgstr "用于切片的物理打印机的名称。"
msgid "Layer number"
msgstr "层编号"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "当前层编号。从 1 开始编号(即第一层编号为 1)。"
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "当前层的索引。从 0 开始(即首层为 0),但在挤出类型更换 G-code 中从 1 开始。"
msgid "Layer Z"
msgstr "层的 Z 坐标"
+# AI Translated
msgid "Height of the current layer above the print bed, measured to the top of the layer."
-msgstr "打印床上方当前层的高度,测量到层的顶部。"
+msgstr "当前层在热床上方的高度,测量到该层的顶部。"
msgid "Maximal layer Z"
msgstr "最顶层 Z 坐标"
+# AI Translated
msgid "Height of the last layer above the print bed."
-msgstr "最顶层相对打印板高度"
+msgstr "最后一层在热床上方的高度。"
+# AI Translated
msgid "Filament extruder ID"
-msgstr "耗材挤出机ID"
+msgstr "耗材丝挤出机ID"
msgid "The current extruder ID. The same as current_extruder."
msgstr "当前挤出机ID,与current_extruder相同"
+# AI Translated
+msgid "Previous extruder"
+msgstr "上一个挤出机"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "正在卸载的挤出机的索引。索引从零开始(第一个挤出机的索引为 0)。"
+
+# AI Translated
+msgid "Next extruder"
+msgstr "下一个挤出机"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "正在装载的挤出机的索引。索引从零开始(第一个挤出机的索引为 0)。"
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "相对 E 轴"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "指示是否使用相对定位。"
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "换工具头次数"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "整个打印过程中的换工具头次数。"
+
+# AI Translated
+msgid "Old retract length"
+msgstr "旧回抽长度"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "上一个耗材丝的回抽长度。"
+
+# AI Translated
+msgid "New retract length"
+msgstr "新回抽长度"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "新耗材丝的回抽长度。"
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "旧回抽长度(换工具头)"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "上一个耗材丝的换工具头回抽长度。"
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "新回抽长度(换工具头)"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "新耗材丝的换工具头回抽长度。"
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "旧耗材丝温度"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "旧耗材丝的温度。"
+
+# AI Translated
+msgid "New filament temp"
+msgstr "新耗材丝温度"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "新耗材丝的温度。"
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "换工具头后的 X"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "换工具头后的 X 位置。"
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "换工具头后的 Y"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "换工具头后的 Y 位置。"
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "换工具头后的 Z"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "换工具头后的 Z 位置。"
+
+# AI Translated
+msgid "First flush volume"
+msgstr "第一次冲刷体积"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "第一次冲刷体积。"
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "第二次冲刷体积"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "第二次冲刷体积。"
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "旧耗材丝 E 进给速率"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "旧耗材丝的挤出机进给速率。"
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "新耗材丝 E 进给速率"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "新耗材丝的挤出机进给速率。"
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "空驶点 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "空驶点 1 的 X 坐标。"
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "空驶点 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "空驶点 1 的 Y 坐标。"
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "空驶点 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "空驶点 2 的 X 坐标。"
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "空驶点 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "空驶点 2 的 Y 坐标。"
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "空驶点 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "空驶点 3 的 X 坐标。"
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "空驶点 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "空驶点 3 的 Y 坐标。"
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "冲刷长度 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "第一次冲刷长度。"
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "冲刷长度 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "第二次冲刷长度。"
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "冲刷长度 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "第三次冲刷长度。"
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "冲刷长度 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "第四次冲刷长度。"
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "挤出类型"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"即将使用的新挤出类型\n"
+"可能的值:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "上一个挤出类型"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"上一次使用的挤出类型\n"
+"可能的值:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "zip文件中存在错误"
@@ -19202,24 +22309,32 @@ msgstr "正在生成填充区域"
msgid "Generating infill toolpath"
msgstr "正在生成填充路径"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z 层抗锯齿:层 %d/%d (%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "为自动抬升检测悬垂区域"
msgid "Checking support necessity"
msgstr "正在检查支撑必要性"
-msgid "floating regions"
-msgstr "悬空区域"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "对象 %1% 似乎存在悬空区域。请重新调整对象方向,或启用支撑生成。"
-msgid "floating cantilever"
-msgstr "悬空悬臂"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "对象 %1% 似乎存在悬空悬臂。请重新调整对象方向,或启用支撑生成。"
-msgid "large overhangs"
-msgstr "大面积悬垂"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "%s 对象可能有 %s。请重新调整对象方向,或启用支持生成。"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "对象 %1% 似乎存在较大的悬垂。请重新调整对象方向,或启用支撑生成。"
msgid "Generating support"
msgstr "正在生成支撑"
@@ -19230,8 +22345,9 @@ msgstr "正在优化工具头路径"
msgid "Slicing mesh"
msgstr "正在对网格切片"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "没有检测到层。您可能需要修复STL文件,或检查模型尺寸、厚度等,之后再重试。\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "没有检测到层。您可能需要修复模型,或检查其尺寸、厚度等,之后再重试。\n"
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
@@ -19240,16 +22356,409 @@ msgstr ""
"此对象的 XY 尺寸补偿不会生效,因为对象包含了涂色操作。\n"
"XY 尺寸补偿不能与涂色功能结合使用。"
+# AI Translated
msgid ""
"An object has enabled XY Size compensation which will not be used because it is also fuzzy skin painted.\n"
"XY Size compensation cannot be combined with fuzzy skin painting."
msgstr ""
-"此对象已启用 XY 尺寸补偿,但不会使用该补偿,因为对象包含了绒毛皮肤绘制。\n"
-"XY 尺寸补偿不能与绒毛皮肤绘制结合使用。"
+"此对象已启用 XY 尺寸补偿,但不会使用该补偿,因为对象包含了绒毛表面绘制。\n"
+"XY 尺寸补偿不能与绒毛表面绘制结合使用。"
msgid "Object name"
msgstr "对象名称"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "无法应用一元负号运算符。"
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "无法转换为整数。"
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "无法对非数值进行四舍五入。"
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "无法对非数值向下取整。"
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "无法对非数值向上取整。"
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "无法应用非运算符。"
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "无法对非数值类型执行加法。"
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "无法对非数值类型执行减法。"
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "无法与非数值类型相乘。"
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "无法对非数值类型执行除法。"
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "无法除以非数值类型。"
+
+# AI Translated
+msgid "Division by zero"
+msgstr "除以零"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "不是布尔表达式"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "无法比较这些类型。"
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "不是数值类型。"
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits:第二个参数必须为整数"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits:第三个参数必须为整数"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "正则匹配的左侧必须是字符串。"
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "正则表达式编译失败:%1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "regex_replace() 的第一个参数必须是字符串。"
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of():第一个参数(要匹配的字符串)必须是字符串值"
+
+# AI Translated
+# Needs human review: Here 'Pattern' is a regex pattern, not the infill/surface Pattern (图案); check 模式 reads right.
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of():模式必须是字符串值"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "正则表达式编译失败"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "无法对非布尔操作数应用逻辑运算。"
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "试图对标量变量进行索引"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "无效的向量索引"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "变量不存在(位于未激活的分支中)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "变量不存在"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "试图引用未定义 (nil) 的可选变量"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "对空向量变量进行索引"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "试图引用可选值向量中未定义 (nil) 的元素"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "索引变量必须是整数"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "向量索引为负"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "不是变量名"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "不是变量名(位于未激活的分支中)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "FloatOrPercent 变量无法解析“ratio_over”依赖项"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "不支持的标量变量类型"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "需要标量时引用了向量变量"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "不支持的向量变量类型"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "无法修改只读变量"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "右侧不是数值表达式"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "需要用于填充向量的元素数量。"
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "指定的元素数量为负。"
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "右侧不是布尔表达式"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "不支持的输出标量变量类型"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "需要标量时引用了输出向量变量"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "索引超出范围"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "不支持的输出向量变量类型"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "符号已在只读系统字典中定义"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "符号已被定义为系统输出变量"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "此上下文中不可使用全局变量"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "变量名已在局部作用域中定义"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "变量名已在全局作用域中定义"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "无法将标量值赋给向量变量。"
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "无法将向量值赋给标量变量。"
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "无法由空的初始化列表创建向量变量,因为无法推断其类型。"
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "右侧无效:混用了数值和布尔类型。"
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "无法将标量赋给向量"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "右侧可选值向量变量的部分元素未定义 (nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "左侧是浮点向量,而右侧不是。"
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "左侧是整数向量,而右侧不是。"
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "左侧是字符串向量,而右侧不是。"
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "左侧是布尔向量,而右侧不是。"
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "左侧/右侧向量不兼容。"
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "不支持复制此类型的向量变量"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "empty() 的参数不是向量变量"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "size() 的参数不是向量变量"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "不允许使用非整数索引来访问向量变量。"
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "此上下文中无法使用随机数生成器。"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "第 %1% 行解析错误:%2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "第 %1% 行解析错误。应为标签 %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "第 %1% 行解析错误。%2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "插值必须是数字。"
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "表格点的 X 值必须是数字。"
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "表格点的 Y 值必须是数字。"
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "表格的 X 坐标必须递增"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "插值超出表格范围"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "未知语法错误"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "无效的文本。"
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "无效的文本块。"
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "无效的宏。"
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "不是 {if}{else}{endif} 宏。"
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "不是 {switch} 宏。"
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "应为旧式变量展开格式"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "应为标识符。"
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "应为条件表达式。"
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "应为布尔表达式。"
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "应为表达式。"
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "应为右花括号或可选参数。"
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "应为字符串模式列表(纯文本或正则表达式)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "应为变量引用。"
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "应为变量名。"
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "应为正则表达式。"
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "无效的 utf8 序列"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "非 ASCII7 字符只允许出现在文本块和字符串字面量中,不允许出现在代码块中。"
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "无效的转义序列"
+
msgid "Support: generate contact points"
msgstr "支撑:正在生成接触点"
@@ -19266,6 +22775,10 @@ msgstr "无法读取提供的文件,因为该文件内容为空。"
msgid "The file format is incompatible and cannot be parsed."
msgstr "文件格式不兼容,无法解析。"
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "通过 ModelIO 将资源转换为 STL 失败。"
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "未知的文件格式。输入文件的扩展名必须为 .stl、.obj 或 .amf(.xml)。"
@@ -19273,8 +22786,9 @@ msgstr "未知的文件格式。输入文件的扩展名必须为 .stl、.obj
msgid "Unknown file format: input file must have .3mf or .zip.amf extension."
msgstr "未知的文件格式。输入文件的扩展名必须为 .3mf 或 .zip.amf。"
+# AI Translated
msgid "load_obj: failed to parse"
-msgstr "加载对象:无法分析"
+msgstr "load_obj:解析失败"
msgid "load mtl in obj: failed to parse"
msgstr "在obj中加载mtl:解析失败"
@@ -19297,8 +22811,9 @@ msgstr "管理结果"
msgid "Manual Calibration"
msgstr "手动校准"
+# AI Translated
msgid "Result can be read by human eyes."
-msgstr "结果可藉由人眼观察。"
+msgstr "结果可通过肉眼判读。"
msgid "Auto-Calibration"
msgstr "自动校准"
@@ -19306,8 +22821,9 @@ msgstr "自动校准"
msgid "We would use Lidar to read the calibration result"
msgstr "我们将使用激光雷达来读取校准结果。"
+# AI Translated
msgid "Prev"
-msgstr "上一个"
+msgstr "上一步"
msgid "Recalibration"
msgstr "重新校准"
@@ -19315,14 +22831,12 @@ msgstr "重新校准"
msgid "Calibrate"
msgstr "校准"
-msgid "Finish"
-msgstr "完成"
-
msgid "How can I use calibration results?"
msgstr "如何使用校准结果?"
+# AI Translated
msgid "You could change the Flow Dynamics Calibration Factor in material editing"
-msgstr "您可以在编辑材料时修改流量动态校准因子。"
+msgstr "您可以在编辑材料时修改动态流量校准因子"
msgid ""
"The current firmware version of the printer does not support calibration.\n"
@@ -19340,6 +22854,7 @@ msgstr "动态流量"
msgid "Max Volumetric Speed"
msgstr "最大体积流量"
+# AI Translated
#, c-format, boost-format
msgid ""
"Please input valid values:\n"
@@ -19352,7 +22867,7 @@ msgstr ""
"起始值:>= %.1f\n"
"结束值:<= %.1f\n"
"结束值:> 起始值\n"
-"步进长度:>= %.3f)"
+"步进长度:>= %.3f"
msgid "The name cannot be empty."
msgstr "名称不能为空。"
@@ -19383,8 +22898,9 @@ msgstr "无打印机连接!"
msgid "Printer is not connected yet."
msgstr "打印机尚未连接。"
+# AI Translated
msgid "Please select filament to calibrate."
-msgstr "请选择要校准的耗材。"
+msgstr "请选择要校准的耗材丝。"
msgid "The input value size must be 3."
msgstr "输入值大小必须为3。"
@@ -19405,17 +22921,20 @@ msgstr "仅保存一个同名结果:%s。您确定要覆盖其他结果吗?"
msgid "There is already a previous calibration result with the same name: %s. Only one result with a name is saved. Are you sure you want to overwrite the previous result?"
msgstr "已经存在一个同名的历史校准结果:%s。相同名称的结果只会保存一个。您确定要覆盖历史结果吗?"
+# AI Translated
#, c-format, boost-format
msgid ""
"Within the same extruder, the name(%s) must be unique when the filament type, nozzle diameter, and nozzle flow are the same.\n"
"Are you sure you want to override the historical result?"
msgstr ""
-"在同一挤出机内,耗材类型、喷嘴直径和喷嘴流量相同时,名称(%s)必须是唯一的。\n"
+"在同一挤出机内,耗材丝类型、喷嘴直径和喷嘴流量相同时,名称(%s)必须是唯一的。\n"
"您确定要覆盖历史结果吗?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "该机型的每个喷嘴最多只能保存 %d 个历史结果, 该结果将不会被保存"
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "该机型的每个喷嘴最多只能保存 %d 个历史结果,该结果将不会被保存。"
msgid "Connecting to printer..."
msgstr "正在连接到打印机..."
@@ -19429,8 +22948,9 @@ msgstr "动态流量校准的结果已保存至打印机。"
msgid "Internal Error"
msgstr "内部错误"
+# AI Translated
msgid "Please select at least one filament for calibration"
-msgstr "请至少选择一种耗材进行校准。"
+msgstr "请至少选择一种耗材丝进行校准。"
msgid "Flow rate calibration result has been saved to preset."
msgstr "流量比例校准结果已保存到预设"
@@ -19441,20 +22961,22 @@ msgstr "最大体积流量校准结果已保存到预设值"
msgid "When do you need Flow Dynamics Calibration"
msgstr "在什么情况下需要进行动态流量校准"
+# AI Translated
msgid ""
"We now have added the auto-calibration for different filaments, which is fully automated and the result will be saved into the printer for future use. You only need to do the calibration in the following limited cases:\n"
"1. If you introduce a new filament of different brands/models or the filament is damp;\n"
"2. If the nozzle is worn out or replaced with a new one;\n"
"3. If the max volumetric speed or print temperature is changed in the filament setting."
msgstr ""
-"我们现在添加了针对不同耗材的自动校准。这是完全自动化的,结果将保存到打印机中以供将来使用。您仅需在下列的有限情况下才需要进行校准:\n"
-"1. 如果更换不同品牌/型号的新耗材,或耗材受潮;\n"
+"我们现在添加了针对不同耗材丝的自动校准。这是完全自动化的,结果将保存到打印机中以供将来使用。您仅需在下列的有限情况下才需要进行校准:\n"
+"1. 如果更换不同品牌/型号的新耗材丝,或耗材丝受潮;\n"
"2. 喷嘴磨损或更换了新喷嘴;\n"
-"3. 在耗材设置中更改了最大体积流量或打印温度。"
+"3. 在耗材丝设置中更改了最大体积流量或打印温度。"
msgid "About this calibration"
msgstr "关于此校准"
+# AI Translated
msgid ""
"Please find the details of Flow Dynamics Calibration from our wiki.\n"
"\n"
@@ -19466,15 +22988,17 @@ msgid ""
msgstr ""
"请从我们的wiki中找到动态流量校准的详细信息。\n"
"\n"
-"通常情况下,校准是不必要的。当您开始单色/单耗材打印,并在打印开始菜单中勾选了“动态流量校准”选项时,打印机将按照旧的方式在打印前校准耗材;当您开始多色/多耗材打印时,打印机将在每次换耗材时使用默认的补偿参数,这在大多数情况下会产生良好的效果。\n"
+"通常情况下,校准是不必要的。当您开始单色/单材料打印,并在打印开始菜单中勾选了“动态流量校准”选项时,打印机将按照旧的方式在打印前校准耗材丝;当您开始多色/多材料打印时,打印机将在每次换耗材丝时使用默认的补偿参数,这在大多数情况下会产生良好的效果。\n"
"\n"
-"有些情况可能导致校准结果不可靠,例如打印板的附着力不足。清洗构建或者使用胶水可以增强打印板的附着力。您可以在我们的wiki上找到更多相关信息。\n"
+"有些情况可能导致校准结果不可靠,例如打印板的附着力不足。清洗打印板或者使用胶水可以增强打印板的附着力。您可以在我们的wiki上找到更多相关信息。\n"
"\n"
-"在我们的测试中,校准结果有约 10 % 的波动,这可能导致每次校准的结果略有不同。我们仍在调查根本原因,并通过新的更新进行改进。"
+"在我们的测试中,校准结果有约百分之十的波动,这可能导致每次校准的结果略有不同。我们仍在调查根本原因,并通过新的更新进行改进。"
+# AI Translated
msgid "When to use Flow Rate Calibration"
-msgstr "何时使用流量校准"
+msgstr "何时使用流量比例校准"
+# AI Translated
msgid ""
"After using Flow Dynamics Calibration, there might still be some extrusion issues, such as:\n"
"1. Over-Extrusion: Excess material on your printed object, forming blobs or zits, or the layers seem thicker than expected and not uniform\n"
@@ -19482,20 +23006,21 @@ msgid ""
"3. Poor Surface Quality: The surface of your prints seems rough or uneven\n"
"4. Weak Structural Integrity: Prints break easily or don't seem as sturdy as they should be"
msgstr ""
-"使用流量动态校准后,仍可能出现一些挤出问题,例如:\n"
+"使用动态流量校准后,仍可能出现一些挤出问题,例如:\n"
"1. 过度挤出:打印件上的材料过多,形成凸起或小球;或每层外观比预期要厚、不均匀。\n"
-"2. 挤出不足:每层非常薄,填充强度不足;或在缓慢打印时,打印件顶层有缺陷。\n"
+"2. 挤出不足:每层非常薄,填充强度不足;或即使低速打印,打印件顶层仍有缝隙。\n"
"3. 表面质量差:打印件表面外观粗糙或不均匀。\n"
"4. 结构强度差:打印件容易断裂;或没有其预期的稳固性。"
+# AI Translated
msgid "In addition, Flow Rate Calibration is crucial for foaming materials like LW-PLA used in RC planes. These materials expand greatly when heated, and calibration provides a useful reference flow rate."
-msgstr "此外,对于航模用途的轻质发泡PLA(LW-PLA)等类似的发泡材料,流量校准非常重要。因为这些材料在加热时会大幅膨胀,而校准则能提供有用的流量率参考。"
+msgstr "此外,对于航模用途的轻质发泡PLA(LW-PLA)等类似的发泡材料,流量比例校准非常重要。因为这些材料在加热时会大幅膨胀,而校准则能提供有用的流量比例参考。"
+# AI Translated
msgid "Flow Rate Calibration measures the ratio of expected to actual extrusion volumes. The default setting works well in Bambu Lab printers and official filaments as they were pre-calibrated and fine-tuned. For a regular filament, you usually won't need to perform a Flow Rate Calibration unless you still see the listed defects after you have done other calibrations. For more details, please check out the wiki article."
-msgstr ""
-"流量校准的原理是,测量实际挤出量,并将其与预期挤出量进行比较,得到两者比率。\n"
-"默认设置在Bambu Lab的打印机和官方耗材上表现良好,因为它们已经过预先校准和微调。对于普通的耗材,通常不需要执行流量校准,除非您在完成其他校准后仍然发现上述缺陷。如需更多详细信息,请查阅wiki文章。"
+msgstr "流量比例校准的原理是,测量实际挤出量,并将其与预期挤出量进行比较,得到两者比率。默认设置在Bambu Lab的打印机和官方耗材丝上表现良好,因为它们已经过预先校准和微调。对于普通的耗材丝,通常不需要执行流量比例校准,除非您在完成其他校准后仍然发现上述缺陷。如需更多详细信息,请查阅wiki文章。"
+# AI Translated
msgid ""
"Auto Flow Rate Calibration utilizes Bambu Lab's Micro-Lidar technology, directly measuring the calibration patterns. However, please be advised that the efficacy and accuracy of this method may be compromised with specific types of materials. Particularly, filaments that are transparent or semi-transparent, have sparkles, or have a highly-reflective finish may not be suitable for this calibration and can produce less-than-desirable results.\n"
"\n"
@@ -19503,11 +23028,11 @@ msgid ""
"\n"
"Caution: Flow Rate Calibration is an advanced process, to be attempted only by those who fully understand its purpose and implications. Incorrect usage can lead to sub-par prints or printer damage. Please make sure to carefully read and understand the process before doing it."
msgstr ""
-"自动流量校准采用Bambu Lab的微型激光雷达技术,用以直接测量校准图案。然而,请注意,这种方法的效率和准确性可能会受到特殊耗材材质的影响。特别是具有透明、半透明、闪光粉、高反射率等特征的耗材可能不适合此校准,并有可能产生不理想的结果。\n"
+"自动流量比例校准采用Bambu Lab的Micro-Lidar技术,用以直接测量校准图案。然而,请注意,这种方法的有效性和准确性可能会受到特殊耗材丝材质的影响。特别是具有透明、半透明、闪光粉、高反射率等特征的耗材丝可能不适合此校准,并有可能产生不理想的结果。\n"
"\n"
-"校准结果可能会因次数或耗材变化而有所不同。我们仍在通过固件更新不断提高此项校准的准确性和兼容性。\n"
+"校准结果可能会因次数或耗材丝变化而有所不同。我们仍在通过固件更新不断提高此项校准的准确性和兼容性。\n"
"\n"
-"注意:流量校准是一项高级操作过程,只有完全理解其目的和影响的用户方可尝试。不正确使用可能导致打印质量不佳,甚至损坏挤出机等设备。请确保在执行前仔细阅读和理解相关过程。"
+"注意:流量比例校准是一项高级操作过程,只有完全理解其目的和影响的用户方可尝试。不正确使用可能导致打印质量不佳,甚至损坏打印机。请确保在执行前仔细阅读和理解相关过程。"
msgid "When you need Max Volumetric Speed Calibration"
msgstr "当您需要最大体积流量校准时"
@@ -19521,13 +23046,14 @@ msgstr "使用以下选项打印时,建议进行最大体积流量校准:"
msgid "material with significant thermal shrinkage/expansion, such as..."
msgstr "具有显著热收缩/膨胀的材料,例如..."
+# AI Translated
msgid "materials with inaccurate filament diameter"
-msgstr "直径不准确的耗材"
+msgstr "直径不准确的耗材丝"
# AI Translated
#, boost-format
msgid "%1% Flow Rate Calibrated"
-msgstr "%1% 流量已校准"
+msgstr "%1% 流量比例已校准"
# AI Translated
#, boost-format
@@ -19539,8 +23065,9 @@ msgstr "%1% 温度已校准"
msgid "%1% Max Vol Speed Calibrated"
msgstr "%1% 最大体积流量已校准"
+# AI Translated
msgid "We found the best Flow Dynamics Calibration Factor"
-msgstr "我们找到了最佳的流量动态校准因子。"
+msgstr "我们找到了最佳的动态流量校准因子"
msgid "Part of the calibration failed! You may clean the plate and retry. The failed test result would be dropped."
msgstr "有部分校准失败!您可以清理打印板后重试。失败的测试结果将被丢弃。"
@@ -19560,8 +23087,9 @@ msgstr "喷嘴 ID"
msgid "Standard Flow"
msgstr "标准流量"
+# AI Translated
msgid "Please find the best line on your plate"
-msgstr "请在您的打印板上找到最佳线条"
+msgstr "请在热床上找到最佳线条"
msgid "Please find the corner with the perfect degree of extrusion"
msgstr "请找到具有完美挤出度的转角"
@@ -19569,20 +23097,24 @@ msgstr "请找到具有完美挤出度的转角"
msgid "Input Value"
msgstr "输入值"
+# AI Translated
msgid "Save to Filament Preset"
-msgstr "保存到耗材预设"
+msgstr "保存到耗材丝预设"
msgid "Record Factor"
msgstr "记录系数"
+# AI Translated
msgid "We found the best flow ratio for you"
-msgstr "我们为您找到了最佳流量比"
+msgstr "我们为您找到了最佳流量比例"
+# AI Translated
msgid "Flow Ratio"
-msgstr "流量比"
+msgstr "流量比例"
+# AI Translated
msgid "Please input a valid value (0.0 < flow ratio < 2.0)"
-msgstr "请输入一个有效值(0.0 < 流量比 < 2.0)"
+msgstr "请输入一个有效值(0.0 < 流量比例 < 2.0)"
msgid "Please enter the name of the preset you want to save."
msgstr "请输入要保存的预设的名称。"
@@ -19593,18 +23125,21 @@ msgstr "校准 1"
msgid "Calibration2"
msgstr "校准 2"
+# AI Translated
msgid "Please find the best object on your plate"
-msgstr "请在打印板上找到最佳对象"
+msgstr "请在热床上找到最佳对象"
+# AI Translated
msgid "Fill in the value above the block with smoothest top surface"
-msgstr "填入最光滑的顶面的数值"
+msgstr "填入顶面最光滑的方块上方标注的数值"
msgid "Skip Calibration2"
msgstr "略过校准 2"
+# AI Translated
#, c-format, boost-format
msgid "flow ratio : %s "
-msgstr "流量比:%s "
+msgstr "流量比例:%s "
msgid "Please choose a block with smoothest top surface."
msgstr "请选择顶部表面最光滑的块。"
@@ -19618,8 +23153,9 @@ msgstr "校准类型"
msgid "Complete Calibration"
msgstr "完整校准"
+# AI Translated
msgid "Fine Calibration based on flow ratio"
-msgstr "基于流量比的精细校准"
+msgstr "基于流量比例的精细校准"
msgid "Title"
msgstr "标题"
@@ -19639,12 +23175,17 @@ msgstr "同步喷嘴和 AMS 信息"
msgid "Please connect the printer first before synchronizing."
msgstr "请先连接打印机,然后再同步。"
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "%s 打印机的喷嘴信息尚未设置。请在进行校准之前对其进行配置。"
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "尚未设置打印机右喷嘴信息。请在进行校准之前对其进行配置。"
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "尚未设置打印机左喷嘴信息。请在进行校准之前对其进行配置。"
+
+# AI Translated
msgid "AMS and nozzle information are synced"
-msgstr "AMS 和喷嘴信息同步"
+msgstr "AMS 和喷嘴信息已同步"
msgid "Nozzle Flow"
msgstr "喷嘴流量"
@@ -19652,17 +23193,19 @@ msgstr "喷嘴流量"
msgid "Filament position"
msgstr "耗材丝位置"
+# AI Translated
msgid "Filament For Calibration"
-msgstr "校准用耗材"
+msgstr "校准用耗材丝"
+# AI Translated
msgid ""
"Tips for calibration material:\n"
"- Materials that can share same hot bed temperature\n"
"- Different filament brand and family (Brand = Bambu, Family = Basic, Matte)"
msgstr ""
-"关于耗材校准的提示:\n"
-"- 可以共用热床温度的耗材\n"
-"- 不同品牌和系列的耗材(品牌 = Bambu, 系列 = Basic、Matte)"
+"关于耗材丝校准的提示:\n"
+"- 可以共用热床温度的耗材丝\n"
+"- 不同品牌和系列的耗材丝(品牌 = Bambu, 系列 = Basic、Matte)"
msgid "Pattern"
msgstr "图案"
@@ -19674,11 +23217,13 @@ msgstr "方法"
msgid "%s is not compatible with %s"
msgstr "%s 与 %s 不兼容"
+# AI Translated
msgid "TPU is not supported for Flow Dynamics Auto-Calibration."
-msgstr "不支持TPU进行流量动态自动校准。"
+msgstr "不支持TPU进行动态流量自动校准。"
+# AI Translated
msgid "Selected nozzle temperatures are incompatible. For multi-material printing, each filament's nozzle temperature must be within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
-msgstr "所选的喷嘴温度不兼容。在多材料打印中,每种耗材的喷嘴温度都必须落在其他耗材的推荐喷嘴温度范围内。否则可能会发生喷嘴堵塞或打印机损坏。"
+msgstr "所选的喷嘴温度不兼容。在多材料打印中,每种耗材丝的喷嘴温度都必须落在其他耗材丝的推荐喷嘴温度范围内。否则可能会发生喷嘴堵塞或打印机损坏。"
msgid "Sync AMS and nozzle information"
msgstr "同步 AMS 和喷嘴信息"
@@ -19704,8 +23249,14 @@ msgstr "从体积流量"
msgid "To Volumetric Speed"
msgstr "至体积流量"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "步长"
+
+# AI Translated
msgid "Are you sure you want to cancel this print?"
-msgstr "你确定要取消这次打印吗?"
+msgstr "您确定要取消这次打印吗?"
msgid "Flow Dynamics Calibration Result"
msgstr "动态流量校准结果"
@@ -19719,8 +23270,9 @@ msgstr "无历史结果"
msgid "Success to get history result"
msgstr "成功获取历史结果"
+# AI Translated
msgid "Refreshing the previous Flow Dynamics Calibration records"
-msgstr "刷新历史流量动态校准记录"
+msgstr "正在刷新历史动态流量校准记录"
#, c-format, boost-format
msgid "Note: The hotend number on the %s is tied to the holder. When the hotend is moved to a new holder, its number will update automatically."
@@ -19729,22 +23281,26 @@ msgstr "注意:%s上的热端编号与刀架绑定。当热端移动至新刀
msgid "Action"
msgstr "操作"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "该机型每个喷嘴最多只能保存%d个历史结果"
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "该机型的每个喷嘴最多只能保存 %d 个历史结果。"
msgid "Edit Flow Dynamics Calibration"
msgstr "编辑动态流量校准"
+# AI Translated
#, c-format, boost-format
msgid "Within the same extruder, the name '%s' must be unique when the filament type, nozzle diameter, and nozzle flow are identical. Please choose a different name."
-msgstr "在同一台挤出机中,当耗材类型、喷嘴直径和喷嘴流量相同时,名称“%s”必须是唯一的。请选择不同的名称。"
+msgstr "在同一台挤出机中,当耗材丝类型、喷嘴直径和喷嘴流量相同时,名称“%s”必须是唯一的。请选择不同的名称。"
msgid "New Flow Dynamic Calibration"
msgstr "新建动态流量校准"
+# AI Translated
msgid "The filament must be selected."
-msgstr "请选择耗材"
+msgstr "请选择耗材丝。"
msgid "The extruder must be selected."
msgstr "必须选择挤出机。"
@@ -19776,13 +23332,14 @@ msgstr "完成"
msgid "Multiple resolved IP addresses"
msgstr "解析出了多个IP地址"
+# AI Translated
#, boost-format
msgid ""
"There are several IP addresses resolving to hostname %1%.\n"
"Please select one that should be used."
msgstr ""
-"主机名 %1% 指向了多个IP地址\n"
-"请在其中选择一个正在使用的地址。"
+"主机名 %1% 指向了多个IP地址。\n"
+"请选择要使用的地址。"
# AI Translated
msgid "Auto-scale for nozzle"
@@ -19805,8 +23362,9 @@ msgstr "PA 校准"
msgid "Extruder type"
msgstr "挤出机类型"
+# AI Translated
msgid "DDE"
-msgstr "直驱/近程挤出机"
+msgstr "近程挤出机"
msgid "PA Tower"
msgstr "PA塔"
@@ -19817,14 +23375,17 @@ msgstr "划线模式"
msgid "PA Pattern"
msgstr "V形模式"
+# AI Translated
msgid "Start PA: "
-msgstr "起始值"
+msgstr "起始PA值: "
+# AI Translated
msgid "End PA: "
-msgstr "结束值"
+msgstr "结束PA值: "
+# AI Translated
msgid "PA step: "
-msgstr "步进长度"
+msgstr "PA步长: "
msgid "Accelerations: "
msgstr "加速度: "
@@ -19835,12 +23396,15 @@ msgstr "速度: "
msgid "Print numbers"
msgstr "打印数字"
+# AI Translated
msgid "Comma-separated list of printing accelerations"
-msgstr "以逗号分隔的 加速度 列表"
+msgstr "以逗号分隔的加速度列表"
+# AI Translated
msgid "Comma-separated list of printing speeds"
-msgstr "以逗号分隔的 速度 列表"
+msgstr "以逗号分隔的速度列表"
+# AI Translated
msgid ""
"Please input valid values:\n"
"Start PA: >= 0.0\n"
@@ -19848,21 +23412,25 @@ msgid ""
"PA step: >= 0.001"
msgstr ""
"请输入有效值:\n"
-"起始PA值: >= 0.0\n"
-"结束PA值: > 起始PA值\n"
-"PA值步进长度:>= 0.001)"
+"起始PA值:>= 0.0\n"
+"结束PA值:> 起始PA值\n"
+"PA步长:>= 0.001"
+# AI Translated
msgid ""
"Acceleration values must be greater than speed values.\n"
"Please verify the inputs."
-msgstr "加速度值必须大于速度值,请验证输入。"
+msgstr ""
+"加速度值必须大于速度值。\n"
+"请检查输入。"
+
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "传送带打印机暂不支持此功能,请改用“PA塔”方法。"
msgid "Temperature calibration"
msgstr "温度校准"
-msgid "Filament type"
-msgstr "耗材类型"
-
msgid "PLA"
msgstr "PLA"
@@ -19884,14 +23452,30 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "测试模型"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "标准"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "悬垂"
+
+# AI Translated
msgid "Start temp: "
-msgstr "起始温度: "
+msgstr "起始温度: "
+# AI Translated
msgid "End temp: "
-msgstr "结束温度"
+msgstr "结束温度: "
+# AI Translated
msgid "Temp step: "
-msgstr "温度步长"
+msgstr "温度步长: "
# AI Translated
#. TRN %s is the temperature unit
@@ -19899,6 +23483,7 @@ msgstr "温度步长"
msgid "Supported range: 170%s - 500%s"
msgstr "支持范围:170%s - 500%s"
+# AI Translated
msgid ""
"Please input valid values:\n"
"Start temp: <= 500\n"
@@ -19907,15 +23492,18 @@ msgid ""
msgstr ""
"请输入有效值:\n"
"起始温度:<= 500\n"
-"结束温度: >= 155\n"
-"开始温度 >= 结束温度 + 5"
+"结束温度:>= 155\n"
+"起始温度 >= 结束温度 + 5"
+# AI Translated
msgid "Start volumetric speed: "
-msgstr "起始流量"
+msgstr "起始体积流量: "
+# AI Translated
msgid "End volumetric speed: "
-msgstr "结束流量"
+msgstr "结束体积流量: "
+# AI Translated
msgid ""
"Please input valid values:\n"
"start > 0\n"
@@ -19925,13 +23513,15 @@ msgstr ""
"请输入有效值:\n"
"起始 > 0\n"
"步进长度 >= 0\n"
-"结束 > 起始 + 步进长度)"
+"结束 > 起始 + 步进长度"
+# AI Translated
msgid "Start speed: "
-msgstr "起始速度"
+msgstr "起始速度: "
+# AI Translated
msgid "End speed: "
-msgstr "结束速度"
+msgstr "结束速度: "
# AI Translated
msgid "Auto-adjust to max volumetric speed"
@@ -19941,6 +23531,7 @@ msgstr "自动调整以适应最大体积流量"
msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead."
msgstr "如果结束速度会超过耗材丝的最大体积流量,则自动降低层高(保持标准数值并处于机器限制范围内)以达到该速度。如果连最小层高也不够,则改为降低结束速度。"
+# AI Translated
msgid ""
"Please input valid values:\n"
"start > 10\n"
@@ -19950,7 +23541,7 @@ msgstr ""
"请输入有效值:\n"
"开始 > 10\n"
"步进长度 >= 0\n"
-"结束 > 开始 + 步进长度)"
+"结束 > 开始 + 步进长度"
# AI Translated
#, c-format, boost-format
@@ -19961,7 +23552,7 @@ msgid ""
"%s"
msgstr ""
"结束速度(%.0f mm/s)超过了耗材丝的最大体积流量(%.1f mm³/s),在当前线宽和层高下,外墙被限制在约 %.0f mm/s。\n"
-" 超过该值的速度会被钳制,因此塔的上部区块不会以请求的速度打印。\n"
+" 超过该值的速度会被限制,因此塔的上部区块无法达到设定的速度。\n"
"\n"
"%s"
@@ -20003,14 +23594,13 @@ msgstr "启用“自动调整”可自动解决该问题,或者仍要继续?
msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?"
msgstr "启用“根据喷嘴自动缩放”和“自动调整”可自动解决该问题,或者仍要继续?"
+# AI Translated
msgid "Start retraction length: "
-msgstr "起始回抽长度"
+msgstr "起始回抽长度: "
+# AI Translated
msgid "End retraction length: "
-msgstr "结束回抽长度"
-
-msgid "Test model"
-msgstr "测试模型"
+msgstr "结束回抽长度: "
msgid "Ringing Tower"
msgstr "振纹塔"
@@ -20038,11 +23628,17 @@ msgstr ""
"RepRap 固件版本 => 3.4.0\n"
"请查阅您的固件文档了解支持的整形器类型。"
+# AI Translated
msgid "Frequency (Start / End): "
-msgstr "频率(开始/结束):"
+msgstr "频率(开始/结束): "
-msgid "Start / End"
-msgstr "开始 / 结束"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X 开始 / 结束: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y 开始 / 结束: "
msgid "Frequency settings"
msgstr "频率设置"
@@ -20076,11 +23672,17 @@ msgstr "输入整形的阻尼测试"
msgid "Check firmware compatibility."
msgstr "检查固件兼容性。"
+# AI Translated
msgid "Frequency: "
-msgstr "频率:"
+msgstr "频率: "
-msgid "Damp"
-msgstr "阻尼"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "频率 X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "阻尼(开始 / 结束): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "RepRap 固件将对两个轴使用相同的频率。"
@@ -20101,11 +23703,13 @@ msgstr "请输入有效的阻尼系数 (0 <= 阻尼开始 < 阻尼结束 <= 1)"
msgid "SCV-V2"
msgstr "SCV-V2"
+# AI Translated
msgid "Start: "
-msgstr "开始:"
+msgstr "开始: "
+# AI Translated
msgid "End: "
-msgstr "结尾:"
+msgstr "结束: "
msgid "Cornering settings"
msgstr "转角设置"
@@ -20113,19 +23717,21 @@ msgstr "转角设置"
msgid "Note: Lower values = sharper corners but slower speeds."
msgstr "注意:值越低 = 转角越尖锐,但速度越慢。"
+# AI Translated
msgid ""
"Marlin 2 Junction Deviation detected:\n"
"To test Classic Jerk, set 'Maximum Junction Deviation' in Motion ability to 0."
msgstr ""
-"Marlin 2 检测到连接偏差:\n"
-"要测试经典加加速度,请将运动能力中的“最大连接偏差”设置为 0。"
+"检测到 Marlin 2 结点偏差:\n"
+"要测试经典抖动(Classic Jerk),请将“移动能力”中的“最大结点偏差”设置为 0。"
+# AI Translated
msgid ""
"Marlin 2 Classic Jerk detected:\n"
"To test Junction Deviation, set 'Maximum Junction Deviation' in Motion ability to a value > 0."
msgstr ""
-"Marlin 2 Classic Jerk 检测到:\n"
-"要测试连接偏差,请将运动能力中的“最大连接偏差”设置为 > 0 的值。"
+"检测到 Marlin 2 经典抖动(Classic Jerk):\n"
+"要测试结点偏差,请将“移动能力”中的“最大结点偏差”设置为大于 0 的值。"
msgid ""
"RepRap detected: Jerk in mm/s.\n"
@@ -20188,9 +23794,10 @@ msgstr "上传到存储器"
msgid "Switch to Device tab after upload."
msgstr "上传后跳转到设备页。"
+# AI Translated
#, c-format, boost-format
msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?"
-msgstr "上传的文件名不是 \"%s\" 结尾,是否继续?"
+msgstr "上传的文件名不以 \"%s\" 结尾,是否继续?"
msgid "Upload"
msgstr "上传"
@@ -20204,9 +23811,11 @@ msgstr "延时摄影"
msgid "Enable IFS"
msgstr "启用 IFS"
+# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "在打印机上检测到 %d 个 IFS 槽位。"
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "在打印机上检测到 %d 个 IFS 槽位。"
msgid "This printer does not report a material station."
msgstr "此打印机未报告材料站。"
@@ -20238,8 +23847,9 @@ msgstr "打印主机上传队列"
msgid "ID"
msgstr "ID"
+# AI Translated
msgid "Progress"
-msgstr "进程"
+msgstr "进度"
msgid "Host"
msgstr "主机"
@@ -20266,11 +23876,13 @@ msgstr "正在上传"
msgid "Canceling"
msgstr "正在取消"
+# AI Translated
msgid "Error uploading to print host"
-msgstr "上传到打印机时错误"
+msgstr "上传到打印主机时出错"
+# AI Translated
msgid "The selected bed type does not match the file. Please confirm before starting the print."
-msgstr "所选床类型与文件不匹配。开始打印前请确认。"
+msgstr "所选热床类型与文件不匹配。开始打印前请确认。"
msgid "Heated Bed Leveling"
msgstr "热床调平"
@@ -20288,8 +23900,9 @@ msgstr "打印机:%s"
msgid "Calibrate before printing"
msgstr "打印前校准"
+# AI Translated
msgid "Filament Mapping:"
-msgstr "耗材映射:"
+msgstr "耗材丝映射:"
# AI Translated
#. TRN External spool slot, followed by its filament type
@@ -20297,11 +23910,13 @@ msgstr "耗材映射:"
msgid "Ext - %s"
msgstr "外置 - %s"
+# AI Translated
msgid "Unable to perform boolean operation on selected parts"
-msgstr "无法对所选部件执行布尔运算"
+msgstr "无法对所选零件执行布尔运算"
+# AI Translated
msgid "Mesh Boolean"
-msgstr "布尔运算"
+msgstr "网格布尔运算"
msgid "Union"
msgstr "并集"
@@ -20324,8 +23939,10 @@ msgstr "从中减去"
msgid "Subtract with"
msgstr "与之相减"
-msgid "selected"
-msgstr "已选中"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "已选 1 个"
msgid "Part 1"
msgstr "零件 1"
@@ -20339,29 +23956,36 @@ msgstr "删除输入"
msgid "Network Test"
msgstr "网络测试"
+# AI Translated
msgid "Start Test Multi-Thread"
-msgstr "多线程测试开始"
+msgstr "开始多线程测试"
+# AI Translated
msgid "Start Test Single-Thread"
-msgstr "单线程测试开始"
+msgstr "开始单线程测试"
+# AI Translated
msgid "Export Log"
-msgstr "输出日志"
+msgstr "导出日志"
+# AI Translated
msgid "OrcaSlicer Version:"
-msgstr "逆戟鲸切片器版本:"
+msgstr "OrcaSlicer 版本:"
msgid "System Version:"
msgstr "系统版本:"
+# AI Translated
msgid "DNS Server:"
-msgstr "DNS服务:"
+msgstr "DNS 服务器:"
+# AI Translated
msgid "Test OrcaSlicer (GitHub)"
-msgstr "测试OrcaSlicer(逆戟鲸)项目的 GitHub 网站"
+msgstr "测试 OrcaSlicer(GitHub)"
+# AI Translated
msgid "Test OrcaSlicer (GitHub):"
-msgstr "测试OrcaSlicer(逆戟鲸)项目的 GitHub 网站"
+msgstr "测试 OrcaSlicer(GitHub):"
msgid "Test bing.com"
msgstr "测试 Bing.com"
@@ -20393,26 +24017,32 @@ msgstr "测试 %s 失败"
msgid "test %s ok"
msgstr "测试 %s 成功"
+# AI Translated
msgid "Select filament preset"
-msgstr "选择耗材预设"
+msgstr "选择耗材丝预设"
+# AI Translated
msgid "Create Filament"
-msgstr "创建耗材"
+msgstr "创建耗材丝"
+# AI Translated
msgid "Create Based on Current Filament"
-msgstr "基于当前耗材创建"
+msgstr "基于当前耗材丝创建"
+# AI Translated
msgid "Copy Current Filament Preset "
-msgstr "复制当前耗材预设"
+msgstr "复制当前耗材丝预设 "
msgid "Basic Information"
msgstr "基本信息"
+# AI Translated
msgid "Add Filament Preset under this filament"
-msgstr "添加该耗材的耗材预设"
+msgstr "在此耗材丝下添加耗材丝预设"
+# AI Translated
msgid "We could create the filament presets for your following printer:"
-msgstr "我们可以为您的以下打印机创建耗材预设:"
+msgstr "我们可以为您的以下打印机创建耗材丝预设:"
msgid "Select Vendor"
msgstr "选择供应商"
@@ -20426,8 +24056,9 @@ msgstr "未找到我想要的供应商"
msgid "Select Type"
msgstr "选择类型"
+# AI Translated
msgid "Select Filament Preset"
-msgstr "选择耗材预设"
+msgstr "选择耗材丝预设"
msgid "Serial"
msgstr "系列"
@@ -20435,11 +24066,9 @@ msgstr "系列"
msgid "e.g. Basic, Matte, Silk, Marble"
msgstr "例如:Basic, Matte, Silk, Marble"
+# AI Translated
msgid "Filament Preset"
-msgstr "耗材预设"
-
-msgid "Create"
-msgstr "创建"
+msgstr "耗材丝预设"
msgid "Vendor is not selected; please reselect vendor."
msgstr "未选择供应商,请重新选择供应商。"
@@ -20447,18 +24076,21 @@ msgstr "未选择供应商,请重新选择供应商。"
msgid "Custom vendor missing; please input custom vendor."
msgstr "未输入自定义供应商,请输入自定义供应商。"
+# AI Translated
msgid "\"Bambu\" or \"Generic\" cannot be used as a Vendor for custom filaments."
-msgstr "“Bambu”或“Generic”名称不能用于自定义耗材供应商"
+msgstr "“Bambu”或“Generic”名称不能用于自定义耗材丝供应商。"
+# AI Translated
msgid "Filament type is not selected, please reselect type."
-msgstr "未选择耗材类型,请重新选择。"
+msgstr "未选择耗材丝类型,请重新选择。"
+# AI Translated
msgid "Filament serial missing; please input serial."
-msgstr "未输入耗材系列,请输入耗材系列。"
+msgstr "未输入耗材丝系列,请输入耗材丝系列。"
# AI Translated
msgid "There may be disallowed characters in the vendor or serial input of the filament. Please delete and re-enter."
-msgstr "耗材的供应商或系列输入中可能包含不允许的字符。请删除后重新输入。"
+msgstr "耗材丝的供应商或系列输入中可能包含不允许的字符。请删除后重新输入。"
msgid "All inputs in the custom vendor or serial are spaces. Please re-enter."
msgstr "检测到自定义供应商或系列中的所有输入都是空格。请重新输入。"
@@ -20469,30 +24101,33 @@ msgstr "自定义供应商不能是数字。请重新输入。"
msgid "You have not selected a printer or preset yet. Please select at least one."
msgstr "您还没有选择打印机或预设。请至少选择一个。"
+# AI Translated
#, c-format, boost-format
msgid ""
"The Filament name %s you created already exists.\n"
"If you continue, the preset created will be displayed with its full name. Do you want to continue?"
msgstr ""
-"您创建的耗材名称 %s 有重名。\n"
+"您创建的耗材丝名称 %s 有重名。\n"
"如果您继续创建,您创建的预设将以全名显示。您想继续吗?"
msgid "Some existing presets have failed to be created, as follows:\n"
msgstr "以下一些现有预设未能成功创建:\n"
+# AI Translated
msgid ""
"\n"
"Do you want to rewrite it?"
msgstr ""
"\n"
-"你想重写预设吗"
+"是否覆盖?"
+# AI Translated
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you selected\".\n"
"To add preset for more printers, please go to printer selection"
msgstr ""
-"我们将会把预设重命名为“供应商类型名 @ 您选择的打印机”\n"
-"如果您希望为更多打印机添加预设,请前往打印机选择页面"
+"我们会将预设重命名为“供应商 类型 系列 @您选择的打印机”。\n"
+"如需为更多打印机添加预设,请前往打印机选择页面"
msgid "Create Printer/Nozzle"
msgstr "创建打印机/喷嘴"
@@ -20512,8 +24147,9 @@ msgstr "基于当前打印机创建"
msgid "Import Preset"
msgstr "导入预设"
+# AI Translated
msgid "Create Type"
-msgstr "创建类型"
+msgstr "创建方式"
msgid "The model was not found; please reselect vendor."
msgstr "该型号未找到,请重新选择供应商。"
@@ -20527,8 +24163,9 @@ msgstr "选择型号"
msgid "Input Custom Model"
msgstr "输入自定义型号"
+# AI Translated
msgid "Can't find my printer model"
-msgstr "未找到我的打印机模型"
+msgstr "未找到我的打印机型号"
msgid "Input Custom Nozzle Diameter"
msgstr "输入自定义喷嘴直径"
@@ -20536,8 +24173,9 @@ msgstr "输入自定义喷嘴直径"
msgid "Can't find my nozzle diameter"
msgstr "未找到我的喷嘴直径"
+# AI Translated
msgid "Printable Space"
-msgstr "可打印形状"
+msgstr "可打印区域"
msgid "Hot Bed STL"
msgstr "热床STL模型"
@@ -20570,8 +24208,9 @@ msgstr "打印机预设未找到,请重新选择。"
msgid "Printer Preset"
msgstr "打印机预设"
+# AI Translated
msgid "Filament Preset Template"
-msgstr "耗材预设模板"
+msgstr "耗材丝预设模板"
msgid "Process Preset Template"
msgstr "工艺预设模板"
@@ -20591,18 +24230,20 @@ msgid ""
"\tCancel: Do not create a preset; return to the creation interface."
msgstr ""
"已有一个预设与您创建的打印机预设同名,您想要覆盖它吗?\n"
-"\t是:覆盖同名的打印机预设,具有相同预设名称的耗材和工艺预设将被重新创建,\n"
-"没有相同预设名称的耗材和工艺预设将被保留。\n"
+"\t是:覆盖同名的打印机预设,具有相同预设名称的耗材丝和工艺预设将被重新创建,\n"
+"没有相同预设名称的耗材丝和工艺预设将被保留。\n"
"\t取消:不创建预设,返回到创建界面。"
+# AI Translated
msgid "You need to select at least one filament preset."
-msgstr "您需要至少选择一个材料预设。"
+msgstr "您需要至少选择一个耗材丝预设。"
msgid "You need to select at least one process preset."
msgstr "您需要至少选择一个工艺预设。"
+# AI Translated
msgid "Create filament presets failed. As follows:\n"
-msgstr "创建耗材预设失败。如下:\n"
+msgstr "创建耗材丝预设失败。如下:\n"
msgid "Create process presets failed. As follows:\n"
msgstr "创建工艺预设失败。如下:\n"
@@ -20622,8 +24263,9 @@ msgstr "检测到自定义供应商或型号中可能有转义字符。请删除
msgid "All inputs in the custom printer vendor or model are spaces. Please re-enter."
msgstr "检测到自定义供应商或型号的所有输入都是空格。请重新输入。"
+# AI Translated
msgid "Please check bed printable shape and origin input."
-msgstr "请检查 可打印区域 和 原点 的输入。"
+msgstr "请检查“可打印区域”和“原点”的输入。"
msgid "You have not yet selected the printer to replace the nozzle for; please choose a printer."
msgstr "您尚未选择要更换喷嘴的打印机,请进行选择。"
@@ -20631,11 +24273,15 @@ msgstr "您尚未选择要更换喷嘴的打印机,请进行选择。"
msgid "The entered nozzle diameter is invalid, please re-enter:\n"
msgstr "输入的喷嘴直径无效,请重新输入:\n"
+# AI Translated
msgid ""
"The system preset does not allow creation. \n"
"Please re-enter the printer model or nozzle diameter."
-msgstr "不允许创建系统级预设。请重新输入打印机型号或喷嘴直径。"
+msgstr ""
+"不允许创建系统级预设。\n"
+"请重新输入打印机型号或喷嘴直径。"
+# AI Translated
msgid ""
"\n"
"\n"
@@ -20643,7 +24289,7 @@ msgid ""
msgstr ""
"\n"
"\n"
-"此打印机可用的喷嘴配置文件:"
+"此打印机可用的喷嘴预设:"
msgid ""
"\n"
@@ -20657,8 +24303,9 @@ msgstr ""
msgid "Printer Created Successfully"
msgstr "创建打印机成功"
+# AI Translated
msgid "Filament Created Successfully"
-msgstr "创建耗材成功"
+msgstr "创建耗材丝成功"
msgid "Printer Created"
msgstr "打印机已创建"
@@ -20666,16 +24313,19 @@ msgstr "打印机已创建"
msgid "Please go to printer settings to edit your presets"
msgstr "请前往 打印机设置 编辑您的预设"
+# AI Translated
msgid "Filament Created"
-msgstr "耗材已创建"
+msgstr "耗材丝已创建"
+# AI Translated
msgid ""
"Please go to filament settings to edit your presets if you need to.\n"
"Please note that nozzle temperature, hot bed temperature, and maximum volumetric speed each have a significant impact on printing quality. Please set them carefully."
msgstr ""
-"如果需要,请转到耗材设置以编辑您的预设。\n"
+"如果需要,请转到耗材丝设置以编辑您的预设。\n"
"请注意:喷嘴温度、热床温度和最大体积流量对打印质量有重大影响,请谨慎设置。"
+# AI Translated
msgid ""
"\n"
"\n"
@@ -20684,7 +24334,7 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Orca 检测到您未启用用户预设同步,这可能导致您在设备页面上无法正确设置耗材。\n"
+"Orca 检测到您未启用用户预设同步,这可能导致您在设备页面上无法正确设置耗材丝。\n"
"点击 “同步用户预设” 以启用同步功能。"
msgid "Printer Setting"
@@ -20693,14 +24343,16 @@ msgstr "打印机设置"
msgid "Printer config bundle(.orca_printer)"
msgstr "打印机预设包(.orca_printer)"
+# AI Translated
msgid "Filament bundle(.orca_filament)"
-msgstr "耗材预设包(.orca_filament)"
+msgstr "耗材丝预设包(.orca_filament)"
msgid "Printer presets(.zip)"
msgstr "打印机预设(.zip)"
+# AI Translated
msgid "Filament presets(.zip)"
-msgstr "耗材预设(.zip)"
+msgstr "耗材丝预设(.zip)"
msgid "Process presets(.zip)"
msgstr "工艺预设(.zip)"
@@ -20741,69 +24393,83 @@ msgstr ""
"可能已被另一个程序打开。\n"
"请关闭它并重试。"
+# AI Translated
msgid ""
"Printer and all the filament and process presets that belongs to the printer.\n"
"Can be shared with others."
msgstr ""
-"打印机和属于打印机的所有的耗材和工艺预设。\n"
+"打印机和属于打印机的所有的耗材丝和工艺预设。\n"
"可与他人分享。"
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "包含自定义热床纹理和模型"
+
+# AI Translated
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
msgstr ""
-"用户的耗材预设集。\n"
+"用户的耗材丝预设集。\n"
"可与他人分享。"
+# AI Translated
msgid "Only display printers with changes to printer, filament, and process presets are displayed."
-msgstr "仅显示对打印机、耗材和工艺预设有改动的打印机名称。"
+msgstr "仅显示对打印机、耗材丝和工艺预设有改动的打印机名称。"
+# AI Translated
msgid "Only display the filament names with changes to filament presets."
-msgstr "仅显示对耗材预设有改动的耗材名称。"
+msgstr "仅显示对耗材丝预设有改动的耗材丝名称。"
msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive."
msgstr "只显示带有用户打印机预设的打印机名称,并且您选择的每个预设都将导出为一个 ZIP 文件。"
+# AI Translated
msgid ""
"Only the filament names with user filament presets will be displayed, \n"
"and all user filament presets in each filament name you select will be exported as a ZIP archive."
-msgstr "只显示带有用户耗材预设的耗材名称,您选择的每个耗材名称中的所有用户耗材预设都将导出为一个 ZIP 文件。"
+msgstr ""
+"只显示带有用户耗材丝预设的耗材丝名称,\n"
+"您选择的每个耗材丝名称下的所有用户耗材丝预设都将导出为一个 ZIP 文件。"
+# AI Translated
msgid ""
"Only printer names with changed process presets will be displayed, \n"
"and all user process presets in each printer name you select will be exported as a ZIP archive."
-msgstr "只显示带有更改的工艺预设的打印机名称,您选择的每个打印机名称中的所有用户工艺预设都将导出为一个 ZIP 文件。"
+msgstr ""
+"只显示工艺预设有改动的打印机名称,\n"
+"您选择的每个打印机名称下的所有用户工艺预设都将导出为一个 ZIP 文件。"
+# AI Translated
msgid "Please select at least one printer or filament."
-msgstr "请至少选择一种打印机或耗材。"
+msgstr "请至少选择一种打印机或耗材丝。"
+# AI Translated
msgid "Please select a preset type you want to export"
-msgstr "请选择想导出的类型"
+msgstr "请选择要导出的预设类型"
msgid "Failed to create temporary folder, please try Export Configs again."
msgstr "创建临时文件夹失败,请尝试重新导出配置文件。"
+# AI Translated
msgid "Edit Filament"
-msgstr "编辑耗材"
+msgstr "编辑耗材丝"
+# AI Translated
msgid "Filament presets under this filament"
-msgstr "此耗材下的所有耗材预设"
+msgstr "此耗材丝下的所有耗材丝预设"
+# AI Translated
msgid "Note: If the only preset under this filament is deleted, the filament will be deleted after exiting the dialog."
-msgstr "注意:如果在该耗材下仅有的预设被删除,在关闭对话框后,该耗材将被删除。"
+msgstr "注意:如果在该耗材丝下仅有的预设被删除,在关闭对话框后,该耗材丝将被删除。"
+# AI Translated
msgid "Presets inherited by other presets cannot be deleted"
-msgstr "附属于其他预设的预设不能被删除。"
-
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "以下预设继承此预设。"
-
-msgid "Delete Preset"
-msgstr "删除预设"
+msgstr "被其他预设继承的预设不能删除"
+# AI Translated
msgid "Are you sure to delete the selected preset?"
-msgstr "你确定要删除所选预设?"
+msgstr "您确定要删除所选预设吗?"
msgid "Delete preset"
msgstr "删除预设"
@@ -20811,15 +24477,17 @@ msgstr "删除预设"
msgid "+ Add Preset"
msgstr "+ 添加预设"
+# AI Translated
msgid ""
"All the filament presets belong to this filament would be deleted.\n"
"If you are using this filament on your printer, please reset the filament information for that slot."
msgstr ""
-"删除此耗材时,其附属的耗材预设也会一并删除。\n"
-"如果该耗材正在您的打印机上使用,请重新设置该槽位的耗材信息。"
+"删除此耗材丝时,其附属的耗材丝预设也会一并删除。\n"
+"如果该耗材丝正在您的打印机上使用,请重新设置该槽位的耗材丝信息。"
+# AI Translated
msgid "Delete filament"
-msgstr "删除耗材"
+msgstr "删除耗材丝"
msgid "Add Preset"
msgstr "添加预设"
@@ -20827,14 +24495,17 @@ msgstr "添加预设"
msgid "Add preset for new printer"
msgstr "为新打印机添加预设"
+# AI Translated
msgid "Copy preset from filament"
-msgstr "从材料中复制预设"
+msgstr "从耗材丝复制预设"
+# AI Translated
msgid "The filament choice not find filament preset, please reselect it"
-msgstr "您选择的耗材未找到耗材预设,请重新选择。"
+msgstr "您选择的耗材丝未找到耗材丝预设,请重新选择。"
+# AI Translated
msgid "[Delete Required]"
-msgstr "[删除请求]"
+msgstr "[需要删除]"
msgid "Edit Preset"
msgstr "编辑预设"
@@ -20878,10 +24549,13 @@ msgstr "起始、结束或者步长输入值无效。"
msgid "The number of printer extruders and the printer selected for calibration does not match."
msgstr "挤出机数量与所选择进行校准的打印机不匹配。"
+# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
-msgstr "%s 挤出机的喷嘴直径为 0.2 mm,不支持自动流体动力学校准。"
+msgstr "%s 挤出机的喷嘴直径为 0.2 mm,不支持自动动态流量校准。"
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
@@ -20897,6 +24571,13 @@ msgstr ""
"喷嘴直径与实际打印机喷嘴直径不匹配。\n"
"请单击上面的同步按钮并重新启动校准。"
+# AI Translated
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "尚未设置打印机%s喷嘴信息。请在进行校准之前对其进行配置。"
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -20905,8 +24586,9 @@ msgstr ""
"%s 挤出机当前选择的喷嘴类型与实际打印机喷嘴类型不匹配。\n"
"请单击上面的同步按钮并重新启动校准。"
+# AI Translated
msgid "Unable to calibrate: maybe because the set calibration value range is too large, or the step is too small"
-msgstr "无法校准:可能是校准值范围过大,或者是补偿过小"
+msgstr "无法校准:可能是校准值范围过大,或者是步长过小"
msgid "Physical Printer"
msgstr "物理打印机"
@@ -20944,18 +24626,21 @@ msgstr "API 密钥已创建。"
msgid "Are you sure to log out?"
msgstr "您确定要登出吗?"
+# AI Translated
msgid "View print host webui in Device tab"
-msgstr "在 设备 标签页中查看打印机主机的网页界面"
+msgstr "在“设备”标签页中查看打印主机的网页界面"
msgid "Replace the BambuLab's device tab with print host webui"
msgstr "使用打印机主机的网页界面替换 BambuLab 设备页面"
+# AI Translated
#, c-format, boost-format
msgid "On this system, %s uses HTTPS certificates from the system Certificate Store or Keychain."
-msgstr "在此系统上,%s 使用来自系统的证书存储或密钥链的HTTPS证书。"
+msgstr "在此系统上,%s 使用来自系统的证书存储或钥匙串的HTTPS证书。"
+# AI Translated
msgid "To use a custom CA file, please import your CA file into Certificate Store / Keychain."
-msgstr "要使用自定义 CA 证书,请将您的 CA 证书导入到 证书存储/密钥链 中。"
+msgstr "要使用自定义 CA 证书,请将您的 CA 证书导入到“证书存储/钥匙串”中。"
msgid "Login/Test"
msgstr "登录/测试"
@@ -20971,6 +24656,11 @@ msgstr "检测 Creality K 系列打印机"
msgid "Click Scan to look for K-series printers on your network."
msgstr "点击“扫描”以在您的网络中查找 K 系列打印机。"
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "型号"
+
# AI Translated
msgid "Scan"
msgstr "扫描"
@@ -20993,8 +24683,9 @@ msgstr "未找到 K 系列打印机。请确保打印机连接在同一网络中
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "找到 %zu 台 Creality 打印机。请选择一台并点击“使用所选”。"
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "找到 %zu 台 Creality 打印机。请选择一台并点击“使用所选”。"
# AI Translated
msgid "Active"
@@ -21006,7 +24697,7 @@ msgstr "打印机"
# AI Translated
msgid "Processes"
-msgstr "进程"
+msgstr "工艺"
# AI Translated
msgid "Show/Hide system information"
@@ -21113,8 +24804,11 @@ msgid "Failed to launch a new instance."
msgstr "启动新实例失败。"
# AI Translated
-msgid "log(s)"
-msgstr "日志"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d 个日志(%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -21161,24 +24855,45 @@ msgstr "未找到打印机类型,请手动选择。"
msgid "Authorizing..."
msgstr "正在授权..."
-msgid "Error. Can't get API token for authorization"
-msgstr "错误。无法获取用于授权的 API 令牌"
+# AI Translated
+msgid "Maximum login retries exceeded"
+msgstr "已超过最大登录重试次数"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "HTTP 错误:%1%"
msgid "Could not parse server response."
msgstr "无法解析服务器响应。"
+msgid "Error. Can't get API token for authorization"
+msgstr "错误。无法获取用于授权的 API 令牌"
+
msgid "Error saving session to file"
msgstr "保存会话到文件时出错"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "与 3DPrinterOS 云的连接正常。"
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "已登录用户:%1%"
+
msgid "Error session check"
msgstr "会话检查出错"
msgid "Error during file upload"
msgstr "文件上传过程中出错"
+# AI Translated
#, c-format, boost-format
msgid "Mismatched type of print host: %s"
-msgstr "%s 打印机的主机类型不匹配"
+msgstr "打印主机类型不匹配:%s"
msgid "Connection to AstroBox is working correctly."
msgstr "与 AstroBox 的连接正常。"
@@ -21204,6 +24919,42 @@ msgstr "密码错误。"
msgid "Could not get resources to create a new connection"
msgstr "无法获取资源以创建新连接。"
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "与 UltiMaker 的连接正常。"
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "无法连接到 UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "生成凭据时出错!详情请查看日志。"
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "错误:ID 或 KEY 为空。ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "用户名:%1% 密码:%2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "认证凭据正在等待批准。请在打印机屏幕上的对话框中批准访问。"
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "认证凭据无效"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "错误:未找到认证凭据!"
+
msgid "Upload not enabled on FlashAir card."
msgstr "FlashAir 卡未启用上传。"
@@ -21281,8 +25032,9 @@ msgstr "上传失败。未能在 %1% 找到合适的存储器。"
msgid "Connection to Prusa Connect is working correctly."
msgstr "与 Prusa Connect 的连接正常。"
+# AI Translated
msgid "Could not connect to Prusa Connect"
-msgstr "无法连接到 Prusa connect"
+msgstr "无法连接到 Prusa Connect"
msgid "Connection to Repetier is working correctly."
msgstr "与 Repetier 的连接正常。"
@@ -21301,6 +25053,7 @@ msgstr ""
"HTTP状态:%1%\n"
"消息:\"%2%\""
+# AI Translated
#, boost-format
msgid ""
"Parsing of host response failed.\n"
@@ -21308,16 +25061,27 @@ msgid ""
"Error: \"%2%\""
msgstr ""
"无法解析主机响应。\n"
-"错误消息:\"%1%\" 错误:\"%2%\""
+"消息正文:\"%1%\"\n"
+"错误:\"%2%\""
+# AI Translated
#, boost-format
msgid ""
"Enumeration of host printers failed.\n"
"Message body: \"%1%\"\n"
"Error: \"%2%\""
msgstr ""
-"无法枚举打印机主机。\n"
-"错误消息:\"%1%\" 错误:\"%2%\""
+"无法枚举主机上的打印机。\n"
+"消息正文:\"%1%\"\n"
+"错误:\"%2%\""
+
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "与 ESP3D 的连接正常。"
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "无法连接到 ESP3D"
msgid "No AMS"
msgstr "没有AMS"
@@ -21355,11 +25119,13 @@ msgstr "动态流量校准"
msgid "Send Options"
msgstr "发送选项"
+# AI Translated
msgid "Send to"
-msgstr "发送至"
+msgstr "同时发送至"
+# AI Translated
msgid "printers at the same time. (It depends on how many devices can undergo heating at the same time.)"
-msgstr "打印机在同一时间。(这取决于有多少设备可以接受同时加热。)"
+msgstr "台打印机。(取决于可以同时加热的设备数量。)"
msgid "Wait"
msgstr "等待"
@@ -21390,6 +25156,11 @@ msgstr "可以选择的打印机数量最多为 %d。"
msgid "No task"
msgstr "没有任务"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "查看"
+
msgid "Edit Printers"
msgstr "编辑打印机"
@@ -21431,6 +25202,11 @@ msgstr "打印失败"
msgid "Printing Pause"
msgstr "打印暂停"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "准备中"
+
msgid "Pending"
msgstr "等待中"
@@ -21457,20 +25233,19 @@ msgstr "移除"
# AI Translated
msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings"
-msgstr "启用智能耗材分配:将一种耗材分配给多个喷嘴以最大化节省"
+msgstr "启用智能耗材丝分配:将一种耗材丝分配给多个喷嘴以最大化节省"
# AI Translated
msgid "File Saving"
msgstr "文件保存"
-msgid "Don't remind me again"
-msgstr "不再提醒"
-
+# AI Translated
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
-msgstr "将不再弹出任何窗口。您可以在 “首选项” 中重新打开它"
+msgstr "将不再弹出任何窗口。您可以在“首选项”中重新打开它"
+# AI Translated
msgid "Filament-Saving Mode"
-msgstr "耗材节省模式"
+msgstr "耗材丝节省模式"
msgid "Convenience Mode"
msgstr "便捷模式"
@@ -21478,34 +25253,46 @@ msgstr "便捷模式"
msgid "Custom Mode"
msgstr "自定义模式"
+# AI Translated
msgid "Generates filament grouping for the left and right nozzles based on the most filament-saving principles to minimize waste."
-msgstr "根据最节省耗材的原则为左右喷嘴生成耗材分组,以最大程度地减少浪费。"
+msgstr "根据最节省耗材丝的原则为左右喷嘴生成耗材丝分组,以最大程度地减少浪费。"
+# AI Translated
msgid "Generates filament grouping for the left and right nozzles based on the printer's actual filament status, reducing the need for manual filament adjustment."
-msgstr "根据打印机实际耗材状态生成左右喷嘴耗材分组,减少手动耗材调整的需要。"
+msgstr "根据打印机实际耗材丝状态生成左右喷嘴耗材丝分组,减少手动耗材丝调整的需要。"
+# AI Translated
msgid "Manually assign filament to the left or right nozzle"
-msgstr "手动将耗材分配到左侧或右侧喷嘴"
+msgstr "手动将耗材丝分配到左侧或右侧喷嘴"
msgid "Global settings"
msgstr "全局设置"
-msgid "Video tutorial"
-msgstr "视频指南"
-
msgid "(Sync with printer)"
msgstr "(与打印机同步)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "错误:%s 挤出机没有可用的 %s 喷嘴,当前分组结果无效。"
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "错误:左挤出机没有可用的标准喷嘴,当前分组结果无效。"
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "错误:左挤出机没有可用的高流量喷嘴,当前分组结果无效。"
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "错误:右挤出机没有可用的标准喷嘴,当前分组结果无效。"
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "错误:右挤出机没有可用的高流量喷嘴,当前分组结果无效。"
msgid "We will slice according to this grouping method:"
msgstr "我们将按照这种分组方法进行切片:"
+# AI Translated
msgid "Tip: You can drag the filaments to reassign them to different nozzles."
-msgstr "提示:您可以拖动耗材以将它们重新分配到不同的喷嘴。"
+msgstr "提示:您可以拖动耗材丝以将它们重新分配到不同的喷嘴。"
# AI Translated
msgid "Please adjust your grouping or click "
@@ -21524,8 +25311,9 @@ msgstr "设置物理喷嘴数量……"
msgid "(Std: %d, HF: %d)"
msgstr "(标准:%d,高流量:%d)"
+# AI Translated
msgid "The filament grouping method for current plate is determined by the dropdown option at the slicing plate button."
-msgstr "当前盘的耗材分组方法由切片盘按钮上的下拉选项确定。"
+msgstr "当前盘的耗材丝分组方法由切片盘按钮上的下拉选项确定。"
msgid "Connected to Obico successfully!"
msgstr "已成功连接到Obico"
@@ -21542,15 +25330,22 @@ msgstr "无法连接到SimplyPrint"
msgid "Internal error"
msgstr "内部错误"
-msgid "Unknown error"
-msgstr "未知错误"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "尚未连接到SimplyPrint账户,前往连接选项来进行配置。"
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge 返回了无效的 JSON 响应。"
+# AI Translated
+msgid "Request failed"
+msgstr "请求失败"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Flashforge 本地 API 错误 %1%:%2%"
+
msgid "No Flashforge printers were discovered on the local network."
msgstr "在本地网络中未发现任何 Flashforge 打印机。"
@@ -21684,32 +25479,41 @@ msgstr "已选择"
msgid "Auto-generate"
msgstr "自动生成"
+# AI Translated
msgid "Generate brim ears using Max angle and Detection radius"
-msgstr "使用最大角度和检测半径生成圆盘"
+msgstr "使用“最大角度”和“检测半径”生成耳状 Brim"
msgid "Add or Select"
msgstr "添加或选择"
+# AI Translated
msgid "Warning: The brim type is not set to \"painted\", the brim ears will not take effect!"
-msgstr "警告:Brim类型未设置为绘制模式,耳状Brim将不会生效!"
+msgstr "警告:Brim类型未设置为绘制模式,耳状 Brim将不会生效!"
+# AI Translated
msgid "Set the brim type of this object to \"painted\""
-msgstr "将此对象的边缘类型设置为\"绘制\""
+msgstr "将此对象的Brim类型设置为\"绘制\""
-msgid "invalid brim ears"
-msgstr "无效的圆盘"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d 个无效的耳状 Brim"
+# AI Translated
msgid "Brim Ears"
-msgstr "耳状帽檐"
+msgstr "耳状 Brim"
msgid "Please select single object."
msgstr "请选中单个对象。"
+# AI Translated
msgid "Entering Brim Ears"
-msgstr "进入耳状帽檐"
+msgstr "进入耳状 Brim"
+# AI Translated
msgid "Leaving Brim Ears"
-msgstr "离开耳状帽檐"
+msgstr "离开耳状 Brim"
msgid "Zoom Out"
msgstr "缩小"
@@ -21723,6 +25527,7 @@ msgstr "加载跳过对象信息失败。请再试一次。"
msgid "Failed to create the temporary folder."
msgstr "创建临时文件夹失败。"
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d 已选择"
@@ -21730,8 +25535,9 @@ msgstr "/%d 已选择"
msgid "Nothing selected"
msgstr "未选择任何内容"
+# AI Translated
msgid "Over 64 objects in single plate"
-msgstr "单盘超过 64 个物品"
+msgstr "单个盘上的对象超过 64 个"
msgid "The current print job cannot be skipped"
msgstr "无法跳过当前打印作业"
@@ -21742,12 +25548,15 @@ msgstr "跳过所有对象。"
msgid "The printing job will be stopped. Continue?"
msgstr "打印作业将停止。继续?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "跳过 %d 对象。"
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "跳过 %d 个对象。"
+# AI Translated
msgid "This action cannot be undone. Continue?"
-msgstr "此操作无法撤消。继续?"
+msgstr "此操作无法撤销。继续?"
msgid "Skipping objects."
msgstr "跳过对象。"
@@ -21764,8 +25573,9 @@ msgstr "模型高度"
msgid "Ratio"
msgstr "比例"
+# AI Translated
msgid "Select Filament"
-msgstr "选择耗材"
+msgstr "选择耗材丝"
msgid "Null Color"
msgstr "空颜色"
@@ -21773,8 +25583,9 @@ msgstr "空颜色"
msgid "Multiple Color"
msgstr "多种颜色"
+# AI Translated
msgid "Official Filament"
-msgstr "官方耗材"
+msgstr "官方耗材丝"
msgid "More Colors"
msgstr "更多颜色"
@@ -21845,8 +25656,9 @@ msgstr "立即重启"
msgid "Restart Later"
msgstr "稍后重启"
+# AI Translated
msgid "NO RAMMING AT ALL"
-msgstr "完全不挤压"
+msgstr "完全不进行尖端成型"
msgid "s"
msgstr "s"
@@ -21892,6 +25704,42 @@ msgstr "如果启用,上述值将被存储为将来 STEP 导入所用的默认
msgid "PresetBundle"
msgstr "预设包"
+# AI Translated
+msgid "Export Presets"
+msgstr "导出预设"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "在文件夹中显示"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "删除预设包"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "取消订阅预设包"
+
+# AI Translated
+msgid "Update available"
+msgstr "有可用更新"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "未授权的预设包"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "在浏览器中打开此预设包"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "已订阅"
+
+# AI Translated
+msgid "Local"
+msgstr "本地"
+
msgid "Bundle folder does not exist."
msgstr "预设包文件夹不存在。"
@@ -21925,6 +25773,14 @@ msgstr "取消订阅预设包"
msgid "ExportPresetBundle"
msgstr "导出预设包"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "导出到 OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "导出到文件夹"
+
msgid "Save preset bundle"
msgstr "保存预设包"
@@ -21932,23 +25788,28 @@ msgstr "保存预设包"
msgid "Orca Preset Bundle (*.orca_bundle)|*.orca_bundle"
msgstr "Orca 预设包 (*.orca_bundle)|*.orca_bundle"
+# AI Translated
msgid "Performing desktop integration failed - boost::filesystem::canonical did not return appimage path."
-msgstr "执行桌面集成失败 - boost::filesystem::canonical 未返回 AppImage 路径。"
+msgstr "执行桌面集成失败:boost::filesystem::canonical 未返回 AppImage 路径。"
+# AI Translated
msgid "Performing desktop integration failed - Could not find executable."
-msgstr "执行桌面集成失败 - 无法找到可执行文件。"
+msgstr "执行桌面集成失败:无法找到可执行文件。"
msgid "Performing desktop integration failed because the application directory was not found."
msgstr "执行桌面集成失败,因为未找到应用程序目录。"
+# AI Translated
msgid "Performing desktop integration failed - could not create Gcodeviewer desktop file. OrcaSlicer desktop file was probably created successfully."
-msgstr "执行桌面集成失败 - 无法创建 Gcodeviewer 桌面文件。OrcaSlicer 桌面文件可能已成功创建。"
+msgstr "执行桌面集成失败:无法创建 Gcodeviewer 桌面文件。OrcaSlicer 桌面文件可能已成功创建。"
+# AI Translated
msgid "Performing downloader desktop integration failed - boost::filesystem::canonical did not return appimage path."
-msgstr "执行下载器桌面集成失败 - boost::filesystem::canonical 未返回 AppImage 路径。"
+msgstr "执行下载器桌面集成失败:boost::filesystem::canonical 未返回 AppImage 路径。"
+# AI Translated
msgid "Performing downloader desktop integration failed - Could not find executable."
-msgstr "执行下载器桌面集成失败 - 无法找到可执行文件。"
+msgstr "执行下载器桌面集成失败:无法找到可执行文件。"
msgid "Performing downloader desktop integration failed because the application directory was not found."
msgstr "执行下载器桌面集成失败,因为未找到应用程序目录。"
@@ -22010,7 +25871,12 @@ msgstr "AMS 干燥控制"
# AI Translated
msgid "Filament Drying Settings"
-msgstr "耗材干燥设置"
+msgstr "耗材丝干燥设置"
+
+# AI Translated
+msgctxt "Hours unit"
+msgid "H"
+msgstr "小时"
# AI Translated
msgid "Stopping"
@@ -22030,11 +25896,11 @@ msgstr "请查看助手进行故障排查"
# AI Translated
msgid "Please remove and store the filament (as shown)."
-msgstr "请取出并妥善存放耗材(如图所示)。"
+msgstr "请取出并妥善存放耗材丝(如图所示)。"
# AI Translated
msgid "The AMS can rotate the filament which is properly stored, providing better drying results."
-msgstr "AMS 可以旋转妥善存放的耗材,从而提供更好的干燥效果。"
+msgstr "AMS 可以旋转妥善存放的耗材丝,从而提供更好的干燥效果。"
# AI Translated
msgid "Rotate spool when drying"
@@ -22065,7 +25931,7 @@ msgstr "%s 的最低干燥温度为 %d℃。"
# AI Translated
msgid "This filament may not be completely dried."
-msgstr "此耗材可能未完全干燥。"
+msgstr "此耗材丝可能未完全干燥。"
# AI Translated
msgid "This AMS is currently printing. To ensure print quality, the drying temperature cannot exceed the recommended drying temperature."
@@ -22073,7 +25939,7 @@ msgstr "此 AMS 当前正在打印。为确保打印质量,干燥温度不能
# AI Translated
msgid "The temperature shall not exceed the filament's heat distortion temperature"
-msgstr "温度不应超过耗材的热变形温度"
+msgstr "温度不应超过耗材丝的热变形温度"
# AI Translated
msgid "Minimum time value cannot be less than 1."
@@ -22097,15 +25963,15 @@ msgstr "AMS 忙碌中"
# AI Translated
msgid " AMS is calibrating | reading RFID | loading/unloading material, please wait."
-msgstr " AMS 正在校准 | 读取 RFID | 装载/卸载材料,请稍候。"
+msgstr " AMS 正在校准 | 读取 RFID | 进料/退料,请稍候。"
# AI Translated
msgid "Filament in AMS outlet"
-msgstr "AMS 出口处有耗材"
+msgstr "AMS 出口处有耗材丝"
# AI Translated
msgid " The high drying temperature may cause AMS blockage, please unload first."
-msgstr " 较高的干燥温度可能导致 AMS 堵塞,请先卸载。"
+msgstr " 较高的干燥温度可能导致 AMS 堵塞,请先退料。"
# AI Translated
msgid "Initiating AMS drying"
@@ -22133,7 +25999,7 @@ msgstr " 请接通电源,然后再使用干燥功能。"
# AI Translated
msgid " The high drying temperature may cause AMS blockage. Please unload the filament manually before proceeding."
-msgstr " 较高的干燥温度可能导致 AMS 堵塞。请在继续前手动卸载耗材。"
+msgstr " 较高的干燥温度可能导致 AMS 堵塞。请在继续前手动退料。"
# AI Translated
msgid "System is busy"
@@ -22145,27 +26011,27 @@ msgstr " 正在启动其他干燥进程,请稍候几秒……"
# AI Translated
msgid "For better drying results, remove the filament and allow it to rotate."
-msgstr "为获得更好的干燥效果,请取出耗材并让其旋转。"
+msgstr "为获得更好的干燥效果,请取出耗材丝并让其旋转。"
# AI Translated
msgid "The AMS will automatically rotate the stored filament slots to enhance the drying performance."
-msgstr "AMS 将自动旋转已存放的耗材槽位以增强干燥效果。"
+msgstr "AMS 将自动旋转已存放的耗材丝槽位以增强干燥效果。"
# AI Translated
msgid "Alternatively, you can dry the filament without removing it."
-msgstr "或者,您也可以不取出耗材直接进行干燥。"
+msgstr "或者,您也可以不取出耗材丝直接进行干燥。"
# AI Translated
msgid "Unknown filaments will be treated as PLA."
-msgstr "未知耗材将按 PLA 处理。"
+msgstr "未知耗材丝将按 PLA 处理。"
# AI Translated
msgid "Please store the filament marked with an exclamation mark."
-msgstr "请存放标有感叹号的耗材。"
+msgstr "请存放标有感叹号的耗材丝。"
# AI Translated
msgid "Filament left in the feeder during drying may soften because the drying temperature exceeds the softening point of materials like PLA and TPU."
-msgstr "干燥期间留在送料器中的耗材可能会软化,因为干燥温度超过了 PLA 和 TPU 等材料的软化点。"
+msgstr "干燥期间留在送料器中的耗材丝可能会软化,因为干燥温度超过了 PLA 和 TPU 等材料的软化点。"
# AI Translated
msgid "Starting: Checking adapter connection"
@@ -22173,7 +26039,7 @@ msgstr "开始:检查适配器连接"
# AI Translated
msgid "Starting: Checking filament status"
-msgstr "开始:检查耗材状态"
+msgstr "开始:检查耗材丝状态"
# AI Translated
msgid "Starting: Checking drying presets"
@@ -22181,7 +26047,7 @@ msgstr "开始:检查干燥预设"
# AI Translated
msgid "Starting: Checking filament location"
-msgstr "开始:检查耗材位置"
+msgstr "开始:检查耗材丝位置"
# AI Translated
msgid "Starting: Checking air intake"
@@ -22191,20 +26057,129 @@ msgstr "开始:检查进气口"
msgid "Starting: Checking air vent"
msgstr "开始:检查排气口"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "无法创建目录 %1%"
+
+# AI Translated
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
-msgstr "此耗材可能于当前设备设置不兼容,将使用通用耗材预设。"
+msgstr "此耗材丝可能与当前设备设置不兼容,将使用通用耗材丝预设。"
+# AI Translated
msgid "The filament model is unknown. Still using the previous filament preset."
-msgstr "此耗材型号未知,将使用先前的耗材预设。"
+msgstr "此耗材丝型号未知,将使用先前的耗材丝预设。"
+# AI Translated
msgid "The filament model is unknown. Generic filament presets will be used."
-msgstr "此耗材型号未知,将使用通用耗材预设。"
+msgstr "此耗材丝型号未知,将使用通用耗材丝预设。"
+# AI Translated
msgid "The filament may not be compatible with the current machine settings. A random filament preset will be used."
-msgstr "此耗材可能与当前设备设置不兼容,将使用随机耗材预设。"
+msgstr "此耗材丝可能与当前设备设置不兼容,将使用随机耗材丝预设。"
+# AI Translated
msgid "The filament model is unknown. A random filament preset will be used."
-msgstr "此耗材可能于当前设备设置不兼容,将使用随机耗材预设。"
+msgstr "此耗材丝型号未知,将使用随机耗材丝预设。"
+
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "未知的配置文件:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "无效的配置文件:%1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "槽位 %1% -> 槽位 %2%:混合耗材丝"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "混合耗材丝定义:已达到耗材丝槽位上限"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "已达到耗材丝槽位上限"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "打印机的耗材丝数量上限为 %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "槽位 %1% -> 槽位 %2%:未分配的混合耗材丝(打印机的耗材丝数量上限为 %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "槽位 %1%:未分配的混合耗材丝(打印机的耗材丝数量上限为 %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "槽位 %1%:%2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "槽位 %1%:无法导入混合耗材丝定义"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "至少需要两个组分"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "组分引用了不存在的槽位"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "混合耗材丝定义:%1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "槽位 %1%:无法导入混合耗材丝定义(%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "槽位 %1%:%2% -> %3%(替代)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"加载配置文件 %1% 失败\n"
+"建议先清理目录 %2%"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"供应商 %1% 的配置版本:%2% 无效\n"
+"建议先清理目录 %3%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"加载配置文件 %1% 失败:%2%\n"
+"建议先清理目录 %3%"
# AI Translated
msgid "Hide reference planes and axes"
@@ -22224,7 +26199,7 @@ msgstr "显示打印机热床及其网格"
# AI Translated
msgid "Click a reference plane or a flat face to sketch on it — Esc cancels"
-msgstr "单击基准面或平面以在其上绘制草图 — 按 Esc 取消"
+msgstr "单击基准面或平面以在其上绘制草图,按 Esc 取消"
# AI Translated
msgid "Construction"
@@ -22237,71 +26212,71 @@ msgstr "%s · 平面:%s"
# AI Translated
msgid "Line — click start, then end"
-msgstr "直线 — 单击起点,然后单击终点"
+msgstr "直线:单击起点,然后单击终点"
# AI Translated
msgid "Rectangle — click two opposite corners"
-msgstr "矩形 — 单击两个对角"
+msgstr "矩形:单击两个对角"
# AI Translated
msgid "Circle — click center, then radius"
-msgstr "圆 — 单击圆心,然后单击确定半径"
+msgstr "圆:单击圆心,然后单击确定半径"
# AI Translated
msgid "Arc — click start, end, then a point"
-msgstr "圆弧 — 依次单击起点、终点,然后单击一个点"
+msgstr "圆弧:依次单击起点、终点,然后单击一个点"
# AI Translated
msgid "Slot — two centerline ends, then the width"
-msgstr "槽口 — 中心线两端,然后是宽度"
+msgstr "槽口:中心线两端,然后是宽度"
# AI Translated
msgid "Ellipse — center, major end, minor point"
-msgstr "椭圆 — 中心、长轴端点、短轴上的点"
+msgstr "椭圆:中心、长轴端点、短轴上的点"
# AI Translated
msgid "Spline — click control points"
-msgstr "样条曲线 — 单击控制点"
+msgstr "样条曲线:单击控制点"
# AI Translated
msgid "Point — click to place"
-msgstr "点 — 单击放置"
+msgstr "点:单击放置"
# AI Translated
msgid "Dimension — click 2 points or an entity"
-msgstr "尺寸 — 单击 2 个点或一个图元"
+msgstr "尺寸:单击 2 个点或一个图元"
# AI Translated
msgid "Trim — click a segment to trim it"
-msgstr "修剪 — 单击要修剪的线段"
+msgstr "修剪:单击要修剪的线段"
# AI Translated
msgid "Extend — click a line/arc to extend it"
-msgstr "延伸 — 单击要延伸的直线/圆弧"
+msgstr "延伸:单击要延伸的直线/圆弧"
# AI Translated
msgid "Offset — pick an entity, drag the distance"
-msgstr "偏移 — 选取一个图元,拖动设置距离"
+msgstr "偏移:选取一个图元,拖动设置距离"
# AI Translated
msgid "Mirror — pick axis, then entities"
-msgstr "镜像 — 选取镜像轴,然后选取图元"
+msgstr "镜像:选取镜像轴,然后选取图元"
# AI Translated
msgid "Fillet — pick two lines, set the radius"
-msgstr "圆角 — 选取两条直线,设置半径"
+msgstr "圆角:选取两条直线,设置半径"
# AI Translated
msgid "Chamfer — pick two lines, set the distance"
-msgstr "倒角 — 选取两条直线,设置距离"
+msgstr "倒角:选取两条直线,设置距离"
# AI Translated
msgid "Polygon — click center, then a vertex"
-msgstr "多边形 — 单击中心,然后单击一个顶点"
+msgstr "多边形:单击中心,然后单击一个顶点"
# AI Translated
msgid "Nothing here has a value to type — pick a line, an arc, a circle, or two entities"
-msgstr "此处没有可输入的值 — 请选取一条直线、一段圆弧、一个圆或两个图元"
+msgstr "此处没有可输入的值,请选取一条直线、一段圆弧、一个圆或两个图元"
# AI Translated
msgid "Normal to the sketch plane"
@@ -22410,7 +26385,7 @@ msgstr "将实体面偏移为薄板(新实体)"
# AI Translated
msgid "Thicken needs a solid body — add or import one first"
-msgstr "加厚需要一个实体 — 请先添加或导入实体"
+msgstr "加厚需要一个实体,请先添加或导入实体"
# AI Translated
#, c-format
@@ -22428,7 +26403,7 @@ msgstr "从开放的草图线生成薄壁,并与实体融合"
# AI Translated
msgid "Rib needs a solid body — add or import one first"
-msgstr "肋条需要一个实体 — 请先添加或导入实体"
+msgstr "肋条需要一个实体,请先添加或导入实体"
# AI Translated
msgid "Create a sketch with an open line first"
@@ -22445,7 +26420,7 @@ msgstr "请先创建要阵列的实体"
# AI Translated
msgid "Pattern — needs a solid body to replicate"
-msgstr "阵列 — 需要一个可复制的实体"
+msgstr "阵列:需要一个可复制的实体"
# AI Translated
msgid "Surface (extrude / revolve / loft / fill / offset / thicken)"
@@ -22501,7 +26476,7 @@ msgstr "按带符号的距离偏移曲面实体的壳体"
# AI Translated
msgid "No sheet body to offset — create a surface feature first"
-msgstr "没有可偏移的曲面实体 — 请先创建曲面特征"
+msgstr "没有可偏移的曲面实体,请先创建曲面特征"
# AI Translated
msgid "Thicken Surface"
@@ -22513,12 +26488,17 @@ msgstr "将曲面实体加厚为实体"
# AI Translated
msgid "No sheet body to thicken — create a surface feature first"
-msgstr "没有可加厚的曲面实体 — 请先创建曲面特征"
+msgstr "没有可加厚的曲面实体,请先创建曲面特征"
# AI Translated
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "基准 / 曲线(平面 / 轴 / 坐标系 / 螺旋线 / 投影)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "平面"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "基准面(偏移 / 倾斜 / 中间平面 / 相切 / 两条边 / 重合)"
@@ -22545,7 +26525,7 @@ msgstr "螺旋线"
# AI Translated
msgid "Helical curve (spring path) — use as a sweep path for coils / springs / augers"
-msgstr "螺旋曲线(弹簧路径) — 用作线圈 / 弹簧 / 螺旋钻的扫掠路径"
+msgstr "螺旋曲线(弹簧路径):用作线圈 / 弹簧 / 螺旋钻的扫掠路径"
# AI Translated
msgctxt "Design"
@@ -22558,7 +26538,7 @@ msgstr "将实体边线投影到平面上,作为草图图元"
# AI Translated
msgid "Project needs a body — add or import one first"
-msgstr "投影需要一个实体 — 请先添加或导入实体"
+msgstr "投影需要一个实体,请先添加或导入实体"
# AI Translated
#, c-format, boost-format
@@ -22583,7 +26563,12 @@ msgstr "移动和/或旋转现有实体"
# AI Translated
msgid "Transform needs a body — add or import one first"
-msgstr "变换需要一个实体 — 请先添加或导入实体"
+msgstr "变换需要一个实体,请先添加或导入实体"
+
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "镜像"
# AI Translated
msgid "Reflect a body about a plane"
@@ -22591,7 +26576,7 @@ msgstr "相对于平面镜像实体"
# AI Translated
msgid "Mirror needs a body — add or import one first"
-msgstr "镜像需要一个实体 — 请先添加或导入实体"
+msgstr "镜像需要一个实体,请先添加或导入实体"
# AI Translated
msgid "Mate"
@@ -22607,7 +26592,7 @@ msgstr "布尔(组合实体)"
# AI Translated
msgid "Boolean — needs two solid bodies to combine"
-msgstr "布尔 — 需要两个实体进行组合"
+msgstr "布尔:需要两个实体进行组合"
# AI Translated
msgid "Cut (split a body with a plane)"
@@ -22619,15 +26604,15 @@ msgstr "请先创建要切割的实体"
# AI Translated
msgid "Cut — needs a solid body to slice"
-msgstr "切割 — 需要一个可切割的实体"
+msgstr "切割:需要一个可切割的实体"
# AI Translated
msgid "Color — set the selected body's display color"
-msgstr "颜色 — 设置所选实体的显示颜色"
+msgstr "颜色:设置所选实体的显示颜色"
# AI Translated
msgid "Select a feature, or a body, first — then rename it"
-msgstr "请先选择一个特征或实体 — 然后重命名"
+msgstr "请先选择一个特征或实体,然后重命名"
# AI Translated
msgid "Fillet / chamfer / draft / shell / delete face"
@@ -22668,7 +26653,7 @@ msgstr "从实体中移除面并修复实体"
# AI Translated
msgid "Delete Face needs a body — add or import one first"
-msgstr "删除面需要一个实体 — 请先添加或导入实体"
+msgstr "删除面需要一个实体,请先添加或导入实体"
# AI Translated
msgid "(none)"
@@ -22678,6 +26663,11 @@ msgstr "(无)"
msgid "Hole / thread"
msgstr "孔 / 螺纹"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "孔"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "钻孔,以选取的面为中心或放置在平面上"
@@ -22722,9 +26712,14 @@ msgstr "单击 2 个点或一条直线 / 圆 / 圆弧以放置尺寸"
msgid "Line / polyline"
msgstr "直线 / 多段线"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "直线"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
-msgstr "单击起点,然后单击终点 — 再设置精确长度"
+msgstr "单击起点,然后单击终点,再设置精确长度"
# AI Translated
msgid "Polyline"
@@ -22858,21 +26853,24 @@ msgstr "样条曲线"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "单击控制点;双击、右键单击或按 Enter 完成"
+msgid "Point"
+msgstr "点"
+
# AI Translated
msgid "Click to place a point"
msgstr "单击放置点"
# AI Translated
msgid "Select — click to select; Shift to add"
-msgstr "选择 — 单击选择;按住 Shift 添加"
+msgstr "选择:单击选择;按住 Shift 添加"
# AI Translated
msgid "Text — emboss text as a profile"
-msgstr "文字 — 将文字生成为轮廓"
+msgstr "文字:将文字生成为轮廓"
# AI Translated
msgid "SVG — import an outline as a profile"
-msgstr "SVG — 导入轮廓线作为草图轮廓"
+msgstr "SVG:导入轮廓线作为草图轮廓"
# AI Translated
msgid "Fillet / chamfer"
@@ -22924,7 +26922,7 @@ msgstr "单击直线或圆弧,将其延伸到最近的图元;按 Esc 退出"
# AI Translated
msgid "Constrain — add geometric/dimensional relations"
-msgstr "约束 — 添加几何/尺寸关系"
+msgstr "约束:添加几何/尺寸关系"
# AI Translated
msgid "Move / rotate / scale"
@@ -22976,16 +26974,15 @@ msgstr "选取图元,拖动总角度控制柄,单击数量值;单击空白
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "单击中心,然后单击一个顶点 — %d 条边,%s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "单击中心,然后单击一个顶点(%d 条边,外接)"
# AI Translated
-msgid "circumscribed"
-msgstr "外切"
-
-# AI Translated
-msgid "inscribed"
-msgstr "内接"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "单击中心,然后单击一个顶点(%d 条边,内接)"
# AI Translated
msgid "Polygon"
@@ -23100,7 +27097,7 @@ msgstr "竖直距离"
# AI Translated
msgid "New Design — clear the feature tree"
-msgstr "新建设计 — 清空特征树"
+msgstr "新建设计:清空特征树"
# AI Translated
msgid "Import STEP (editable B-rep solid)"
@@ -23120,15 +27117,15 @@ msgstr "新建草图"
# AI Translated
msgid "Place on Face (F) — lay the picked face on the bed"
-msgstr "选择底面 (F) — 将选取的面放置在热床上"
+msgstr "选择底面 (F):将选取的面放置在热床上"
# AI Translated
msgid "Section View — hide part of the model to see inside. PageUp/PageDown move the plane; Delete removes it."
-msgstr "剖面视图 — 隐藏模型的一部分以查看内部。PageUp/PageDown 移动剖切面;Delete 将其移除。"
+msgstr "剖面视图:隐藏模型的一部分以查看内部。PageUp/PageDown 移动剖切面;Delete 将其移除。"
# AI Translated
msgid "Flip Section — show the opposite half"
-msgstr "翻转剖面 — 显示另一半"
+msgstr "翻转剖面:显示另一半"
# AI Translated
msgid "Choose how Commit to Plate sends the bodies"
@@ -23218,8 +27215,9 @@ msgstr "成形到面"
msgid "Up to vertex"
msgstr "成形到顶点"
+# AI Translated
msgid "End"
-msgstr "结束"
+msgstr "终止条件"
# AI Translated
msgid "2nd dist"
@@ -23257,7 +27255,7 @@ msgstr "反转方向"
# AI Translated
msgid "(no edge picked — group below)"
-msgstr "(未选取边 — 使用下方的分组)"
+msgstr "(未选取边,使用下方的分组)"
msgid "Bottom"
msgstr "底部"
@@ -23312,7 +27310,7 @@ msgstr "贯穿"
# AI Translated
msgid "(none — uses Hole plane)"
-msgstr "(无 — 使用孔平面)"
+msgstr "(无,使用孔平面)"
# AI Translated
msgid "On face"
@@ -23322,6 +27320,11 @@ msgstr "在面上"
msgid "Thread plane"
msgstr "螺纹平面"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "标准"
+
# AI Translated
msgid "Pitch"
msgstr "螺距"
@@ -23332,7 +27335,7 @@ msgstr "螺纹深度"
# AI Translated
msgid "(none — uses Thread plane)"
-msgstr "(无 — 使用螺纹平面)"
+msgstr "(无,使用螺纹平面)"
# AI Translated
msgid "Plane X"
@@ -23374,7 +27377,7 @@ msgstr "布尔"
# AI Translated
msgid "Subtract"
-msgstr "相减"
+msgstr "减去"
# AI Translated
msgid "Target (kept)"
@@ -23495,7 +27498,7 @@ msgstr "将曲面实体加厚为实体。“翻转”可反转方向。"
# AI Translated
msgid "(all faces — closed hollow)"
-msgstr "(所有面 — 封闭中空)"
+msgstr "(所有面,封闭空心)"
# AI Translated
msgid "Open face"
@@ -23509,6 +27512,9 @@ msgstr "选取一个实体面作为开口,然后设置壁厚。"
msgid "(pick a side face)"
msgstr "(选取一个侧面)"
+msgid "Face"
+msgstr "面"
+
# AI Translated
msgid "Draft"
msgstr "拔模"
@@ -23571,7 +27577,7 @@ msgstr "(选取一个实体面)"
# AI Translated
msgid "Pick a solid face and offset it into a new thin body. Not for sheet bodies — use Thicken Surface for those."
-msgstr "选取一个实体面并将其偏移为新的薄实体。不适用于曲面实体 — 曲面实体请使用“加厚曲面”。"
+msgstr "选取一个实体面并将其偏移为新的薄实体。不适用于曲面实体,曲面实体请使用“加厚曲面”。"
# AI Translated
msgid "Target body"
@@ -23704,7 +27710,7 @@ msgstr "(全部)"
# AI Translated
msgid "Restrict picking to one body — the others go see-through and stop catching clicks"
-msgstr "将选取限制在一个实体上 — 其他实体变为透明且不再响应单击"
+msgstr "将选取限制在一个实体上,其他实体变为透明且不再响应单击"
# AI Translated
msgid "Edge (sets in-plane direction)"
@@ -23712,7 +27718,7 @@ msgstr "边(设置平面内方向)"
# AI Translated
msgid "Without an edge the frame takes X from the face's first edge — pick one to choose it yourself"
-msgstr "如未选取边,坐标系将以该面的第一条边作为 X 方向 — 选取一条边可自行指定"
+msgstr "如未选取边,坐标系将以该面的第一条边作为 X 方向;选取一条边可自行指定"
# AI Translated
msgid "X direction X"
@@ -23728,23 +27734,23 @@ msgstr "X 方向 Z"
# AI Translated
msgid "Fastened — 6 DOF locked, B driven onto A exactly"
-msgstr "紧固 — 锁定全部 6 个自由度,B 精确贴合到 A"
+msgstr "紧固:锁定全部 6 个自由度,B 精确贴合到 A"
# AI Translated
msgid "Planar — z aligned, offset distance; free in-plane slide"
-msgstr "平面 — z 轴对齐,偏移距离;可在平面内自由滑动"
+msgstr "平面:z 轴对齐,偏移距离;可在平面内自由滑动"
# AI Translated
msgid "Revolute — axes collinear; free rotation about z"
-msgstr "旋转 — 轴共线;可绕 z 轴自由旋转"
+msgstr "旋转:轴共线;可绕 z 轴自由旋转"
# AI Translated
msgid "Slider — orientation locked; free axial slide"
-msgstr "滑块 — 方向锁定;可沿轴向自由滑动"
+msgstr "滑块:方向锁定;可沿轴向自由滑动"
# AI Translated
msgid "Cylindrical — axes collinear; free spin + axial slide"
-msgstr "圆柱 — 轴共线;可自由旋转并沿轴向滑动"
+msgstr "圆柱:轴共线;可自由旋转并沿轴向滑动"
# AI Translated
msgid "Kind"
@@ -23814,7 +27820,7 @@ msgstr "%s。单击眼睛图标可压缩此配合。"
# AI Translated
#, c-format, boost-format
msgid "%s selected — F2 or right-click renames it, double-click edits it"
-msgstr "已选择 %s — 按 F2 或右键单击可重命名,双击可编辑"
+msgstr "已选择 %s,按 F2 或右键单击可重命名,双击可编辑"
# AI Translated
msgid "Rename\tF2"
@@ -23842,7 +27848,7 @@ msgstr "缩放到所选内容"
# AI Translated
msgid "Check interference — find overlapping bodies"
-msgstr "干涉检查 — 查找重叠的实体"
+msgstr "干涉检查:查找重叠的实体"
# AI Translated
msgid "Bodies"
@@ -23850,12 +27856,12 @@ msgstr "实体"
# AI Translated
msgid "Boolean — join, subtract or intersect with another body"
-msgstr "布尔 — 与另一个实体合并、相减或相交"
+msgstr "布尔:与另一个实体合并、减去或相交"
# AI Translated
#, c-format, boost-format
msgid "Body %d selected — right-click for what applies to it"
-msgstr "已选择实体 %d — 右键单击查看适用的操作"
+msgstr "已选择实体 %d,右键单击查看适用的操作"
# AI Translated
msgid "Variables"
@@ -23875,11 +27881,11 @@ msgstr "删除变量"
# AI Translated
msgid "Sketch created — select it, then right-click to Extrude"
-msgstr "草图已创建 — 选择它,然后右键单击进行拉伸"
+msgstr "草图已创建,请选择它,然后右键单击进行拉伸"
# AI Translated
msgid "Sketch empty — nothing committed"
-msgstr "草图为空 — 未提交任何内容"
+msgstr "草图为空,未提交任何内容"
# AI Translated
msgid "Sketch updated"
@@ -23887,8 +27893,9 @@ msgstr "草图已更新"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "草图已创建(%zu 个驱动尺寸) — 选择它,然后右键单击进行拉伸"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "草图已创建(%zu 个驱动尺寸),请选择它,然后右键单击进行拉伸"
# AI Translated
#, c-format, boost-format
@@ -23905,84 +27912,84 @@ msgstr "无法解析要拉伸的草图"
# AI Translated
msgid "Face selected — set the depth and Confirm"
-msgstr "已选择面 — 设置深度并单击“确定”"
+msgstr "已选择面,设置深度并单击“确定”"
# AI Translated
msgid "Region selected — right-click to Extrude, or double-click to edit"
-msgstr "已选择区域 — 右键单击进行拉伸,或双击进行编辑"
+msgstr "已选择区域,右键单击进行拉伸,或双击进行编辑"
# AI Translated
msgid "Sketch selected — right-click to Extrude, or double-click to edit"
-msgstr "已选择草图 — 右键单击进行拉伸,或双击进行编辑"
+msgstr "已选择草图,右键单击进行拉伸,或双击进行编辑"
# AI Translated
msgid "That face is not flat — click a flat face or a reference plane"
-msgstr "该面不是平面 — 请单击平面或基准面"
+msgstr "该面不是平面,请单击平面或基准面"
# AI Translated
#, c-format, boost-format
msgid "Body %d: vertex selected — click again for the whole body"
-msgstr "实体 %d:已选择顶点 — 再次单击选择整个实体"
+msgstr "实体 %d:已选择顶点,再次单击选择整个实体"
# AI Translated
msgid "Vertex selected — click again for the whole body"
-msgstr "已选择顶点 — 再次单击选择整个实体"
+msgstr "已选择顶点,再次单击选择整个实体"
# AI Translated
#, c-format, boost-format
msgid "Body %d selected (whole body) — right-click for what applies to it"
-msgstr "已选中实体 %d(整个实体) — 右键单击查看适用的操作"
+msgstr "已选中实体 %d(整个实体),右键单击查看适用的操作"
# AI Translated
msgid "Whole body selected — right-click for what applies to it"
-msgstr "已选中整个实体 — 右键单击查看适用的操作"
+msgstr "已选中整个实体,右键单击查看适用的操作"
# AI Translated
#, c-format, boost-format
msgid "Body %d: face %d selected — right-click to push/pull it, or click again for the whole body"
-msgstr "实体 %d:已选择面 %d — 右键单击可推/拉该面,或再次单击选择整个实体"
+msgstr "实体 %d:已选择面 %d,右键单击可推/拉该面,或再次单击选择整个实体"
# AI Translated
#, c-format, boost-format
msgid "Face %d selected — right-click to push/pull it, or click again for the whole body"
-msgstr "已选择面 %d — 右键单击可推/拉该面,或再次单击选择整个实体"
+msgstr "已选择面 %d,右键单击可推/拉该面,或再次单击选择整个实体"
# AI Translated
#, c-format
msgid "Body %d: %zu edge selected — Shift+click adds or removes one, Fillet/Chamfer dresses them all"
msgid_plural "Body %d: %zu edges selected — Shift+click adds or removes one, Fillet/Chamfer dresses them all"
-msgstr[0] "实体 %d:已选择 %zu 条边 — 按住 Shift 单击可添加或移除一条边,圆角/倒角会修饰所有选中的边"
+msgstr[0] "实体 %d:已选择 %zu 条边,按住 Shift 单击可添加或移除一条边,圆角/倒角会修饰所有选中的边"
# AI Translated
#, c-format
msgid "%zu edge selected — Shift+click adds or removes one, Fillet/Chamfer dresses them all"
msgid_plural "%zu edges selected — Shift+click adds or removes one, Fillet/Chamfer dresses them all"
-msgstr[0] "已选择 %zu 条边 — 按住 Shift 单击可添加或移除一条边,圆角/倒角会修饰所有选中的边"
+msgstr[0] "已选择 %zu 条边,按住 Shift 单击可添加或移除一条边,圆角/倒角会修饰所有选中的边"
# AI Translated
#, c-format, boost-format
msgid "Body %d: edge %d selected — Shift+click to add edges, or click again for the whole body"
-msgstr "实体 %d:已选择边 %d — 按住 Shift 单击可添加更多边,或再次单击选择整个实体"
+msgstr "实体 %d:已选择边 %d,按住 Shift 单击可添加更多边,或再次单击选择整个实体"
# AI Translated
#, c-format, boost-format
msgid "Edge %d selected — Shift+click to add edges, or click again for the whole body"
-msgstr "已选择边 %d — 按住 Shift 单击可添加更多边,或再次单击选择整个实体"
+msgstr "已选择边 %d,按住 Shift 单击可添加更多边,或再次单击选择整个实体"
# AI Translated
#, c-format, boost-format
msgid "%s plane selected — right-click to sketch on it, or click an object to select it"
-msgstr "已选择 %s 平面 — 右键单击可在其上绘制草图,或单击对象以选择它"
+msgstr "已选择 %s 平面,右键单击可在其上绘制草图,或单击对象以选择它"
# AI Translated
#, c-format, boost-format
msgid "Body %d placed at (%.1f, %.1f, %.1f) mm — drag arrows to move, rings to rotate"
-msgstr "实体 %d 已放置于 (%.1f, %.1f, %.1f) mm — 拖动箭头移动,拖动圆环旋转"
+msgstr "实体 %d 已放置于 (%.1f, %.1f, %.1f) mm,拖动箭头移动,拖动圆环旋转"
# AI Translated
#, c-format, boost-format
msgid "Placed at (%.1f, %.1f, %.1f) mm — drag arrows to move, rings to rotate"
-msgstr "已放置于 (%.1f, %.1f, %.1f) mm — 拖动箭头移动,拖动圆环旋转"
+msgstr "已放置于 (%.1f, %.1f, %.1f) mm,拖动箭头移动,拖动圆环旋转"
# AI Translated
msgid "Tool exited"
@@ -23990,7 +27997,7 @@ msgstr "已退出工具"
# AI Translated
msgid "Sketch kept — Confirm to commit it, Cancel to discard"
-msgstr "草图已保留 — 单击“确定”提交,单击“取消”放弃"
+msgstr "草图已保留,单击“确定”提交,单击“取消”放弃"
# AI Translated
msgid "Select something to delete"
@@ -24022,16 +28029,17 @@ msgstr "正在编辑:草图 %d · N = 正视于平面 · 在工具栏
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "完成 — %zu 个三角形"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "完成:%zu 个三角形"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
-msgstr "编辑文字 — 按 Enter 应用,按 Esc 保持原样"
+msgstr "编辑文字:按 Enter 应用,按 Esc 保持原样"
# AI Translated
msgid "Type the text — it appears in the view as you type; Enter inserts, Esc cancels"
-msgstr "输入文字 — 输入时会实时显示在视图中;按 Enter 插入,按 Esc 取消"
+msgstr "输入文字:输入时会实时显示在视图中;按 Enter 插入,按 Esc 取消"
# AI Translated
msgid "Text unchanged"
@@ -24078,7 +28086,7 @@ msgstr "正在重建模型…"
#, c-format, boost-format
msgid "Imported %d solid — pick a face or edge, then Fillet / Cut / Shell to modify"
msgid_plural "Imported %d solids — pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr[0] "已导入 %d 个实体 — 选取一个面或边,然后使用圆角 / 切割 / 抽壳进行修改"
+msgstr[0] "已导入 %d 个实体,选取一个面或边,然后使用圆角 / 切割 / 抽壳进行修改"
# AI Translated
msgid "Import mesh"
@@ -24108,10 +28116,14 @@ msgstr "网格不包含任何三角形"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
"此网格包含 %d 个三角形。在合并共面之前,每个三角形都会成为一个 B-rep 面,因此导入可能需要很长时间,且生成的实体编辑起来会很慢。通常最好先简化网格。\n"
"\n"
"仍要导入吗?"
@@ -24140,8 +28152,8 @@ msgstr "网格导入失败:%s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "已导入实体 — %d 个三角形 → %d 个面,体积 %.2f mm³。选取一个面或边,然后使用圆角 / 切割 / 抽壳进行修改"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "已导入实体,三角形:%d → 面:%d,体积 %.2f mm³。选取一个面或边,然后使用圆角 / 切割 / 抽壳进行修改"
# AI Translated
#, c-format, boost-format
@@ -24155,11 +28167,13 @@ msgstr "未找到可导入的几何体"
# AI Translated
#, c-format, boost-format
msgid "%s added to the sketch — Confirm to commit it"
-msgstr "%s 已添加到草图 — 单击“确定”提交"
+msgstr "%s 已添加到草图,单击“确定”提交"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — 拖动以放置/调整大小,然后单击“确定”"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s:拖动以放置/调整大小,然后单击“确定”"
# AI Translated
msgid "Insert canceled"
@@ -24167,12 +28181,12 @@ msgstr "已取消插入"
# AI Translated
msgid "Drag a corner to scale, the center to move — Enter or ✓ when done, Esc to discard"
-msgstr "拖动角点缩放,拖动中心移动 — 完成后按 Enter 或 ✓,按 Esc 放弃"
+msgstr "拖动角点缩放,拖动中心移动,完成后按 Enter 或 ✓,按 Esc 放弃"
# AI Translated
#, c-format, boost-format
msgid "Sketch added (plane: %s) — select it, then right-click to Extrude"
-msgstr "已添加草图(平面:%s) — 选择它,然后右键单击进行拉伸"
+msgstr "已添加草图(平面:%s),请选择它,然后右键单击进行拉伸"
# AI Translated
#, c-format, boost-format
@@ -24195,7 +28209,7 @@ msgstr "螺纹标准:%s (螺距 %.3g mm)"
# AI Translated
msgid "Thread needs a solid body — add or import one first"
-msgstr "螺纹需要一个实体 — 请先添加或导入实体"
+msgstr "螺纹需要一个实体,请先添加或导入实体"
# AI Translated
msgid "Pick a sketch profile to revolve first"
@@ -24203,7 +28217,7 @@ msgstr "请先选取要旋转的草图轮廓"
# AI Translated
msgid "Revolve needs a solid body — add or import one first"
-msgstr "旋转需要一个实体 — 请先添加或导入实体"
+msgstr "旋转需要一个实体,请先添加或导入实体"
# AI Translated
msgid "Pick a profile sketch to sweep first"
@@ -24215,7 +28229,7 @@ msgstr "请选取用于扫掠的路径草图"
# AI Translated
msgid "Sweep needs a solid body — add or import one first"
-msgstr "扫掠需要一个实体 — 请先添加或导入实体"
+msgstr "扫掠需要一个实体,请先添加或导入实体"
# AI Translated
msgid "Check at least two profile sketches to loft"
@@ -24223,7 +28237,7 @@ msgstr "请至少勾选两个轮廓草图以进行放样"
# AI Translated
msgid "Loft needs a solid body — add or import one first"
-msgstr "放样需要一个实体 — 请先添加或导入实体"
+msgstr "放样需要一个实体,请先添加或导入实体"
# AI Translated
msgid "Pick a sketch profile to extrude first"
@@ -24251,7 +28265,7 @@ msgstr "请先添加至少一个要删除的面"
# AI Translated
msgid "Mate needs two coordinate systems — create them first"
-msgstr "配合需要两个坐标系 — 请先创建它们"
+msgstr "配合需要两个坐标系,请先创建它们"
# AI Translated
msgid "Mate: A and B must be different coordinate systems"
@@ -24296,7 +28310,7 @@ msgstr "无法测量此实体"
# AI Translated
#, c-format, boost-format
msgid "%s: sheet body, area %.2f mm², no volume — thicken it to get one"
-msgstr "%s:曲面实体,表面积 %.2f mm²,无体积 — 加厚后即可获得体积"
+msgstr "%s:曲面实体,表面积 %.2f mm²,无体积,加厚后即可获得体积"
# AI Translated
#, c-format, boost-format
@@ -24305,15 +28319,15 @@ msgstr "%s:体积 %.2f mm³,表面积 %.2f mm²"
# AI Translated
msgid "Pattern needs a solid body — add or import one first"
-msgstr "阵列需要一个实体 — 请先添加或导入实体"
+msgstr "阵列需要一个实体,请先添加或导入实体"
# AI Translated
msgid "Boolean needs two bodies — add or import a second one"
-msgstr "布尔需要两个实体 — 请添加或导入第二个实体"
+msgstr "布尔需要两个实体,请添加或导入第二个实体"
# AI Translated
msgid "Cut needs a solid body — add or import one first"
-msgstr "切割需要一个实体 — 请先添加或导入实体"
+msgstr "切割需要一个实体,请先添加或导入实体"
# AI Translated
#, c-format, boost-format
@@ -24365,9 +28379,11 @@ msgid "a geometry operation failed"
msgstr "几何运算失败"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · 已选取 %d 个"
+msgid_plural " · %d picked"
+msgstr[0] " · 已选取 %d 个"
# AI Translated
#, c-format, boost-format
@@ -24377,313 +28393,315 @@ msgstr[0] "已选择 %d 个 · 按 Del 删除 · 按住 Shift 单击可添
# AI Translated
msgid "Select — click an entity to pick it · drag an endpoint or center to move it · Shift-click adds · Del removes"
-msgstr "选择 — 单击图元进行选取 · 拖动端点或中心可移动 · 按住 Shift 单击可添加 · 按 Del 删除"
+msgstr "选择:单击图元进行选取 · 拖动端点或中心可移动 · 按住 Shift 单击可添加 · 按 Del 删除"
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "已选取 %d 个 · 现在选择一个约束(水平、平行、相切、相等…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "已选取 %d 个 · 现在选择一个约束(水平、平行、相切、相等…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
-msgstr "约束 — 单击一个或两个图元,然后选择约束"
+msgstr "约束:单击一个或两个图元,然后选择约束"
# AI Translated
msgid "Dimension — click an entity, or the first of two points"
-msgstr "尺寸 — 单击一个图元,或两个点中的第一个点"
+msgstr "尺寸:单击一个图元,或两个点中的第一个点"
# AI Translated
msgid "Dimension — click the second point"
-msgstr "尺寸 — 单击第二个点"
+msgstr "尺寸:单击第二个点"
# AI Translated
msgid "Line — click the start point"
-msgstr "直线 — 单击起点"
+msgstr "直线:单击起点"
# AI Translated
msgid "Line — click the end point; its length and angle can then be typed"
-msgstr "直线 — 单击终点;之后可输入其长度和角度"
+msgstr "直线:单击终点;之后可输入其长度和角度"
# AI Translated
msgid "Polyline — click the first point"
-msgstr "多段线 — 单击第一个点"
+msgstr "多段线:单击第一个点"
# AI Translated
msgid "Polyline — click the next point · click the start point to close it · right-click, double-click or Enter ends the chain"
-msgstr "多段线 — 单击下一个点 · 单击起点以闭合 · 右键单击、双击或按 Enter 结束连线"
+msgstr "多段线:单击下一个点 · 单击起点以闭合 · 右键单击、双击或按 Enter 结束连线"
# AI Translated
msgid "Rectangle — click one corner"
-msgstr "矩形 — 单击一个角点"
+msgstr "矩形:单击一个角点"
# AI Translated
msgid "Rectangle — click the opposite corner"
-msgstr "矩形 — 单击对角点"
+msgstr "矩形:单击对角点"
# AI Translated
msgid "Center rectangle — click the center"
-msgstr "中心矩形 — 单击中心"
+msgstr "中心矩形:单击中心"
# AI Translated
msgid "Center rectangle — click a corner"
-msgstr "中心矩形 — 单击一个角点"
+msgstr "中心矩形:单击一个角点"
# AI Translated
msgid "Oblique rectangle — click the start of the base edge"
-msgstr "斜矩形 — 单击底边的起点"
+msgstr "斜矩形:单击底边的起点"
# AI Translated
msgid "Oblique rectangle — click the end of the base edge (this sets the angle)"
-msgstr "斜矩形 — 单击底边的终点(以此设置角度)"
+msgstr "斜矩形:单击底边的终点(以此设置角度)"
# AI Translated
msgid "Oblique rectangle — click to set the width"
-msgstr "斜矩形 — 单击以设置宽度"
+msgstr "斜矩形:单击以设置宽度"
# AI Translated
msgid "Rounded rectangle — click one corner"
-msgstr "圆角矩形 — 单击一个角点"
+msgstr "圆角矩形:单击一个角点"
# AI Translated
msgid "Rounded rectangle — click the opposite corner"
-msgstr "圆角矩形 — 单击对角点"
+msgstr "圆角矩形:单击对角点"
# AI Translated
msgid "Rounded rectangle — click to set the corner radius"
-msgstr "圆角矩形 — 单击以设置圆角半径"
+msgstr "圆角矩形:单击以设置圆角半径"
# AI Translated
msgid "Circle — click the center"
-msgstr "圆 — 单击圆心"
+msgstr "圆:单击圆心"
# AI Translated
msgid "Circle — click to set the radius; it can then be typed"
-msgstr "圆 — 单击以设置半径;之后可输入半径值"
+msgstr "圆:单击以设置半径;之后可输入半径值"
# AI Translated
msgid "Circle (2 points) — click one end of the diameter"
-msgstr "圆(两点) — 单击直径的一个端点"
+msgstr "圆(两点):单击直径的一个端点"
# AI Translated
msgid "Circle (2 points) — click the other end of the diameter"
-msgstr "圆(两点) — 单击直径的另一个端点"
+msgstr "圆(两点):单击直径的另一个端点"
# AI Translated
msgid "Circle (3 points) — click the first point on the circle"
-msgstr "圆(三点) — 单击圆上的第一个点"
+msgstr "圆(三点):单击圆上的第一个点"
# AI Translated
msgid "Circle (3 points) — click the second point"
-msgstr "圆(三点) — 单击第二个点"
+msgstr "圆(三点):单击第二个点"
# AI Translated
msgid "Circle (3 points) — click the third point"
-msgstr "圆(三点) — 单击第三个点"
+msgstr "圆(三点):单击第三个点"
# AI Translated
msgid "Arc — click the start point"
-msgstr "圆弧 — 单击起点"
+msgstr "圆弧:单击起点"
# AI Translated
msgid "Arc — click the end point"
-msgstr "圆弧 — 单击终点"
+msgstr "圆弧:单击终点"
# AI Translated
msgid "Arc — click a point the arc passes through"
-msgstr "圆弧 — 单击圆弧经过的一个点"
+msgstr "圆弧:单击圆弧经过的一个点"
# AI Translated
msgid "Tangent arc — click the endpoint it leaves from"
-msgstr "切线弧 — 单击其起始端点"
+msgstr "切线弧:单击其起始端点"
# AI Translated
msgid "Tangent arc — click its far end"
-msgstr "切线弧 — 单击其另一端"
+msgstr "切线弧:单击其另一端"
# AI Translated
msgid "Center arc — click the center"
-msgstr "中心点圆弧 — 单击圆心"
+msgstr "中心点圆弧:单击圆心"
# AI Translated
msgid "Center arc — click the start point (this sets the radius)"
-msgstr "中心点圆弧 — 单击起点(以此设置半径)"
+msgstr "中心点圆弧:单击起点(以此设置半径)"
# AI Translated
msgid "Center arc — click the end point"
-msgstr "中心点圆弧 — 单击终点"
+msgstr "中心点圆弧:单击终点"
# AI Translated
msgid "Slot — click one end of the centerline"
-msgstr "槽口 — 单击中心线的一端"
+msgstr "槽口:单击中心线的一端"
# AI Translated
msgid "Slot — click the other end of the centerline"
-msgstr "槽口 — 单击中心线的另一端"
+msgstr "槽口:单击中心线的另一端"
# AI Translated
msgid "Slot — click to set the width"
-msgstr "槽口 — 单击以设置宽度"
+msgstr "槽口:单击以设置宽度"
# AI Translated
msgid "Arc slot — click the center the slot curves about"
-msgstr "圆弧槽口 — 单击槽口弯曲所绕的中心"
+msgstr "圆弧槽口:单击槽口弯曲所绕的中心"
# AI Translated
msgid "Arc slot — click the start of the centerline (this sets the radius)"
-msgstr "圆弧槽口 — 单击中心线的起点(以此设置半径)"
+msgstr "圆弧槽口:单击中心线的起点(以此设置半径)"
# AI Translated
msgid "Arc slot — click the end of the centerline"
-msgstr "圆弧槽口 — 单击中心线的终点"
+msgstr "圆弧槽口:单击中心线的终点"
# AI Translated
msgid "Arc slot — click to set the width"
-msgstr "圆弧槽口 — 单击以设置宽度"
+msgstr "圆弧槽口:单击以设置宽度"
# AI Translated
msgid "Polygon — click the center"
-msgstr "多边形 — 单击中心"
+msgstr "多边形:单击中心"
# AI Translated
msgid "Polygon — click a vertex (this sets size and orientation)"
-msgstr "多边形 — 单击一个顶点(以此设置大小和方向)"
+msgstr "多边形:单击一个顶点(以此设置大小和方向)"
# AI Translated
msgid "Ellipse — click the center"
-msgstr "椭圆 — 单击中心"
+msgstr "椭圆:单击中心"
# AI Translated
msgid "Ellipse — click the end of the major axis"
-msgstr "椭圆 — 单击长轴的端点"
+msgstr "椭圆:单击长轴的端点"
# AI Translated
msgid "Ellipse — click a point on the minor axis"
-msgstr "椭圆 — 单击短轴上的一个点"
+msgstr "椭圆:单击短轴上的一个点"
# AI Translated
msgid "Elliptical arc — click the center"
-msgstr "椭圆弧 — 单击中心"
+msgstr "椭圆弧:单击中心"
# AI Translated
msgid "Elliptical arc — click the end of the major axis"
-msgstr "椭圆弧 — 单击长轴的端点"
+msgstr "椭圆弧:单击长轴的端点"
# AI Translated
msgid "Elliptical arc — click a point on the minor axis"
-msgstr "椭圆弧 — 单击短轴上的一个点"
+msgstr "椭圆弧:单击短轴上的一个点"
# AI Translated
msgid "Elliptical arc — click where the arc starts"
-msgstr "椭圆弧 — 单击圆弧的起始位置"
+msgstr "椭圆弧:单击圆弧的起始位置"
# AI Translated
msgid "Elliptical arc — click where the arc ends"
-msgstr "椭圆弧 — 单击圆弧的结束位置"
+msgstr "椭圆弧:单击圆弧的结束位置"
# AI Translated
msgid "Spline — click the first control point"
-msgstr "样条曲线 — 单击第一个控制点"
+msgstr "样条曲线:单击第一个控制点"
# AI Translated
msgid "Spline — click the next control point · right-click, double-click or Enter finishes the curve"
-msgstr "样条曲线 — 单击下一个控制点 · 右键单击、双击或按 Enter 完成曲线"
+msgstr "样条曲线:单击下一个控制点 · 右键单击、双击或按 Enter 完成曲线"
# AI Translated
msgid "Point — click to place one; the tool stays armed for more"
-msgstr "点 — 单击放置一个点;工具保持激活,可继续放置"
+msgstr "点:单击放置一个点;工具保持激活,可继续放置"
# AI Translated
msgid "Trim — click a segment where it crosses another entity · Esc to exit"
-msgstr "修剪 — 单击与其他图元相交的线段 · 按 Esc 退出"
+msgstr "修剪:单击与其他图元相交的线段 · 按 Esc 退出"
# AI Translated
msgid "Extend — click a line or arc to grow it out to the nearest entity · Esc to exit"
-msgstr "延伸 — 单击直线或圆弧,将其延长到最近的图元 · 按 Esc 退出"
+msgstr "延伸:单击直线或圆弧,将其延长到最近的图元 · 按 Esc 退出"
# AI Translated
msgid "Fillet — click the first of two lines that meet"
-msgstr "圆角 — 单击两条相交直线中的第一条"
+msgstr "圆角:单击两条相交直线中的第一条"
# AI Translated
msgid "Fillet — click the second line"
-msgstr "圆角 — 单击第二条直线"
+msgstr "圆角:单击第二条直线"
# AI Translated
msgid "Fillet — drag the arrow, or click the number to type the radius · Enter applies · Esc cancels"
-msgstr "圆角 — 拖动箭头,或单击数值输入半径 · 按 Enter 应用 · 按 Esc 取消"
+msgstr "圆角:拖动箭头,或单击数值输入半径 · 按 Enter 应用 · 按 Esc 取消"
# AI Translated
msgid "Chamfer — click the first of two lines that meet"
-msgstr "倒角 — 单击两条相交直线中的第一条"
+msgstr "倒角:单击两条相交直线中的第一条"
# AI Translated
msgid "Chamfer — click the second line"
-msgstr "倒角 — 单击第二条直线"
+msgstr "倒角:单击第二条直线"
# AI Translated
msgid "Chamfer — drag the arrow, or click the number to type the setback · Enter applies · Esc cancels"
-msgstr "倒角 — 拖动箭头,或单击数值输入倒角距离 · 按 Enter 应用 · 按 Esc 取消"
+msgstr "倒角:拖动箭头,或单击数值输入倒角距离 · 按 Enter 应用 · 按 Esc 取消"
# AI Translated
msgid "Offset — click a curve; its whole outline is offset"
-msgstr "偏移 — 单击一条曲线;将偏移其整个轮廓"
+msgstr "偏移:单击一条曲线;将偏移其整个轮廓"
# AI Translated
msgid "Offset — drag the arrow to either side, or click the number to type the distance · Enter applies · Esc cancels"
-msgstr "偏移 — 向任意一侧拖动箭头,或单击数值输入距离 · 按 Enter 应用 · 按 Esc 取消"
+msgstr "偏移:向任意一侧拖动箭头,或单击数值输入距离 · 按 Enter 应用 · 按 Esc 取消"
# AI Translated
msgid "Mirror — first click the LINE to mirror about (a construction line works)"
-msgstr "镜像 — 先单击作为镜像轴的直线(可使用构造线)"
+msgstr "镜像:先单击作为镜像轴的直线(可使用构造线)"
# AI Translated
msgid "Mirror — axis set · now click the entities to mirror · Esc cancels"
-msgstr "镜像 — 已设置镜像轴 · 现在单击要镜像的图元 · 按 Esc 取消"
+msgstr "镜像:已设置镜像轴 · 现在单击要镜像的图元 · 按 Esc 取消"
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "镜像 — 已设置镜像轴 · 待镜像 %d 个 · 单击其他图元可添加或移除 · 按 Enter 应用"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "镜像:已设置镜像轴 · 待镜像 %d 个 · 单击其他图元可添加或移除 · 按 Enter 应用"
# AI Translated
msgid "Move — click the entities to move"
-msgstr "移动 — 单击要移动的图元"
+msgstr "移动:单击要移动的图元"
# AI Translated
msgid "Move — drag the handle, or click the number to type the distance · Enter applies"
-msgstr "移动 — 拖动控制柄,或单击数值输入距离 · 按 Enter 应用"
+msgstr "移动:拖动控制柄,或单击数值输入距离 · 按 Enter 应用"
# AI Translated
msgid "Rotate — click the entities to rotate"
-msgstr "旋转 — 单击要旋转的图元"
+msgstr "旋转:单击要旋转的图元"
# AI Translated
msgid "Rotate — drag the handle, or click the number to type the angle · Enter applies"
-msgstr "旋转 — 拖动控制柄,或单击数值输入角度 · 按 Enter 应用"
+msgstr "旋转:拖动控制柄,或单击数值输入角度 · 按 Enter 应用"
# AI Translated
msgid "Scale — click the entities to scale"
-msgstr "缩放 — 单击要缩放的图元"
+msgstr "缩放:单击要缩放的图元"
# AI Translated
msgid "Scale — drag the handle, or click the number to type the factor · Enter applies"
-msgstr "缩放 — 拖动控制柄,或单击数值输入比例因子 · 按 Enter 应用"
+msgstr "缩放:拖动控制柄,或单击数值输入比例因子 · 按 Enter 应用"
# AI Translated
msgid "Array — click the entities to repeat"
-msgstr "阵列 — 单击要阵列的图元"
+msgstr "阵列:单击要阵列的图元"
# AI Translated
msgid "Array — drag the handle to set the step, click the count to type it · Enter applies"
-msgstr "阵列 — 拖动控制柄设置间距,单击数量值进行输入 · 按 Enter 应用"
+msgstr "阵列:拖动控制柄设置间距,单击数量值进行输入 · 按 Enter 应用"
# AI Translated
msgid "Polar array — click the entities to repeat"
-msgstr "圆周阵列 — 单击要阵列的图元"
+msgstr "圆周阵列:单击要阵列的图元"
# AI Translated
msgid "Polar array — drag the handle to set the sweep, click the count to type it · Enter applies"
-msgstr "圆周阵列 — 拖动控制柄设置总角度,单击数量值进行输入 · 按 Enter 应用"
+msgstr "圆周阵列:拖动控制柄设置总角度,单击数量值进行输入 · 按 Enter 应用"
# AI Translated
msgid "Drag a corner to scale, the center to move · Enter or ✓ when done, Esc to discard"
@@ -24700,12 +28718,12 @@ msgstr " · 单击约束标记可将其移除"
# AI Translated
#, c-format, boost-format
msgid "%s — solid body"
-msgstr "%s — 实体"
+msgstr "%s(实体)"
# AI Translated
#, c-format, boost-format
msgid "%s — surface body"
-msgstr "%s — 曲面实体"
+msgstr "%s(曲面实体)"
# AI Translated
#, c-format, boost-format
@@ -24749,7 +28767,7 @@ msgstr "草图轮廓"
# AI Translated
msgid "Sketch — nothing selected"
-msgstr "草图 — 未选择任何内容"
+msgstr "草图:未选择任何内容"
# AI Translated
msgid "Sketch line"
@@ -24765,8 +28783,9 @@ msgstr "草图点"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d 个草图图元"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d 个草图图元"
# AI Translated
msgid "select something first"
@@ -24803,27 +28822,27 @@ msgstr "在视口中单击一条实体边"
# AI Translated
msgid "An angled plane needs an edge to tilt about — pick Edge A"
-msgstr "倾斜平面需要一条作为旋转轴的边 — 请选取边 A"
+msgstr "倾斜平面需要一条作为旋转轴的边,请选取边 A"
# AI Translated
msgid "A midplane needs two faces — pick Face A and Face B"
-msgstr "中间平面需要两个面 — 请选取面 A 和面 B"
+msgstr "中间平面需要两个面,请选取面 A 和面 B"
# AI Translated
msgid "Face A and Face B are the same face — a midplane needs two different faces"
-msgstr "面 A 和面 B 是同一个面 — 中间平面需要两个不同的面"
+msgstr "面 A 和面 B 是同一个面,中间平面需要两个不同的面"
# AI Translated
msgid "A tangent plane needs a cylindrical face — pick Face A"
-msgstr "相切平面需要一个圆柱面 — 请选取面 A"
+msgstr "相切平面需要一个圆柱面,请选取面 A"
# AI Translated
msgid "This plane needs two edges — pick Edge A and Edge B"
-msgstr "此平面需要两条边 — 请选取边 A 和边 B"
+msgstr "此平面需要两条边,请选取边 A 和边 B"
# AI Translated
msgid "Plane added — pick it as a sketch plane"
-msgstr "已添加平面 — 可将其选作草图平面"
+msgstr "已添加平面,可将其选作草图平面"
# AI Translated
msgid "Axis added"
@@ -24835,27 +28854,27 @@ msgstr "已添加坐标系"
# AI Translated
msgid "Shell needs a solid body — add or import one first"
-msgstr "抽壳需要一个实体 — 请先添加或导入实体"
+msgstr "抽壳需要一个实体,请先添加或导入实体"
# AI Translated
msgid "Draft needs a solid body — add or import one first"
-msgstr "拔模需要一个实体 — 请先添加或导入实体"
+msgstr "拔模需要一个实体,请先添加或导入实体"
# AI Translated
msgid "Draft needs a picked face — click a side face first"
-msgstr "拔模需要选取一个面 — 请先单击一个侧面"
+msgstr "拔模需要选取一个面,请先单击一个侧面"
# AI Translated
msgid ""
"Nothing yet — import a STEP or a mesh from the toolbar,\n"
"or press Sketch and click a reference plane to start a sketch."
msgstr ""
-"尚无内容 — 从工具栏导入 STEP 或网格,\n"
+"尚无内容:从工具栏导入 STEP 或网格,\n"
"或单击“草图”,然后单击一个基准面以开始绘制草图。"
# AI Translated
msgid "No solid yet — select a sketch and right-click it to Extrude."
-msgstr "尚无实体 — 选择一个草图并右键单击它进行拉伸。"
+msgstr "尚无实体,请选择一个草图并右键单击它进行拉伸。"
# AI Translated
msgid "Could not restore the CAD model from this project"
@@ -24869,11 +28888,11 @@ msgstr "无法恢复 CAD 模型:%s"
# AI Translated
#, c-format
msgid "Body %zu — %s"
-msgstr "实体 %zu — %s"
+msgstr "实体 %zu:%s"
# AI Translated
msgid "Section view on — hides half the model to see inside; PageUp / PageDown move the plane, Flip shows the other half"
-msgstr "剖面视图已开启 — 隐藏模型的一半以查看内部;PageUp / PageDown 移动剖切面,“翻转”显示另一半"
+msgstr "剖面视图已开启:隐藏模型的一半以查看内部;PageUp / PageDown 移动剖切面,“翻转”显示另一半"
# AI Translated
msgid "Section view off"
@@ -24881,11 +28900,11 @@ msgstr "剖面视图已关闭"
# AI Translated
msgid "Section view — showing the upper half"
-msgstr "剖面视图 — 正在显示上半部分"
+msgstr "剖面视图:正在显示上半部分"
# AI Translated
msgid "Section view — showing the lower half"
-msgstr "剖面视图 — 正在显示下半部分"
+msgstr "剖面视图:正在显示下半部分"
# AI Translated
msgid "Finding the feature's faces…"
@@ -24893,7 +28912,7 @@ msgstr "正在查找特征的面…"
# AI Translated
msgid "The model is being rebuilt — zoom again when it finishes"
-msgstr "模型正在重建 — 完成后请再次缩放"
+msgstr "模型正在重建,完成后请再次缩放"
# AI Translated
#, c-format, boost-format
@@ -24902,7 +28921,7 @@ msgstr "%s 当前没有可供缩放的可见内容"
# AI Translated
msgid "That body has no display mesh yet — recompute first"
-msgstr "该实体尚无显示网格 — 请先重新计算"
+msgstr "该实体尚无显示网格,请先重新计算"
# AI Translated
msgid "Select something to zoom to"
@@ -24914,15 +28933,15 @@ msgstr "请先完成或取消当前打开的内容"
# AI Translated
msgid "Select a body first — click it in the viewport or the Bodies list"
-msgstr "请先选择一个实体 — 在视口或实体列表中单击它"
+msgstr "请先选择一个实体:在视口或实体列表中单击它"
# AI Translated
msgid "Drag the arrows to move, the rings to rotate — then Confirm (Esc cancels)"
-msgstr "拖动箭头移动,拖动圆环旋转 — 然后单击“确定”(按 Esc 取消)"
+msgstr "拖动箭头移动,拖动圆环旋转,然后单击“确定”(按 Esc 取消)"
# AI Translated
msgid "Drag the arrows to move, the rings to rotate — the numbers follow"
-msgstr "拖动箭头移动,拖动圆环旋转 — 数值会随之更新"
+msgstr "拖动箭头移动,拖动圆环旋转,数值会随之更新"
# AI Translated
msgid "Select a body first"
@@ -24939,7 +28958,7 @@ msgstr "单击实体上的一个面,然后按 F"
# AI Translated
msgid "Placed on face — body laid flat on the bed"
-msgstr "已放置在面上 — 实体已平放在热床上"
+msgstr "已放置在面上,实体已平放在热床上"
# AI Translated
#, c-format, boost-format
@@ -24956,7 +28975,7 @@ msgstr "新建设计"
# AI Translated
msgid "This body has no feature to delete — use New Design to start over"
-msgstr "此实体没有可删除的特征 — 请使用“新建设计”重新开始"
+msgstr "此实体没有可删除的特征,请使用“新建设计”重新开始"
# AI Translated
#, c-format, boost-format
@@ -24966,7 +28985,7 @@ msgstr "特征 %d"
# AI Translated
#, c-format, boost-format
msgid "Deleted %s, the feature this body was made from — Ctrl+Z restores it"
-msgstr "已删除 %s(即创建此实体的特征) — 按 Ctrl+Z 可恢复"
+msgstr "已删除 %s(即创建此实体的特征),按 Ctrl+Z 可恢复"
# AI Translated
msgid "Select the FEATURE that created this body (or use New Design)"
@@ -25088,13 +29107,13 @@ msgstr "约束被拒绝(过约束)"
# AI Translated
msgid "Applied constraint · its badge is on the sketch — click the badge to remove it"
-msgstr "已应用约束 · 其标记显示在草图上 — 单击标记可将其移除"
+msgstr "已应用约束 · 其标记显示在草图上,单击标记可将其移除"
# AI Translated
#, c-format, boost-format
msgid "%s — %d selected. Press Esc for the Select tool, click one line, then Shift- or Ctrl-click the other."
msgid_plural "%s — %d selected. Press Esc for the Select tool, click one line, then Shift- or Ctrl-click the other."
-msgstr[0] "%s — 已选择 %d 个。按 Esc 切换到选择工具,单击一条直线,然后按住 Shift 或 Ctrl 单击另一条。"
+msgstr[0] "%s,已选择 %d 个。按 Esc 切换到选择工具,单击一条直线,然后按住 Shift 或 Ctrl 单击另一条。"
# AI Translated
msgid "Applied constraint"
@@ -25301,8 +29320,10 @@ msgid "Applied edit"
msgstr "已应用编辑"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — 输入数值,按 Enter(或单击“确定”)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s:输入数值,按 Enter(或单击“确定”)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -25331,11 +29352,11 @@ msgstr "位于已存储的面上"
# AI Translated
msgid "Editing sketch — drag a handle or double-click a dimension to edit it"
-msgstr "正在编辑草图 — 拖动控制柄或双击尺寸进行编辑"
+msgstr "正在编辑草图:拖动控制柄或双击尺寸进行编辑"
# AI Translated
msgid "An imported solid has no parameters — use Transform to move or rotate it"
-msgstr "导入的实体没有参数 — 请使用“变换”来移动或旋转它"
+msgstr "导入的实体没有参数,请使用“变换”来移动或旋转它"
# AI Translated
msgid "This feature type can't be edited yet"
@@ -25343,7 +29364,7 @@ msgstr "暂不支持编辑此类特征"
# AI Translated
msgid "Nothing to export — add a feature first"
-msgstr "没有可导出的内容 — 请先添加特征"
+msgstr "没有可导出的内容,请先添加特征"
# AI Translated
msgid "Export STEP"
@@ -25364,19 +29385,32 @@ msgstr "STEP 导出失败:%s"
# AI Translated
msgid "Commit to Plate (as bodies) — send each body to Prepare as its own object"
-msgstr "提交到盘(按实体) — 将每个实体作为独立对象发送到“准备”"
+msgstr "提交到盘(按实体):将每个实体作为独立对象发送到“准备”"
# AI Translated
msgid "Commit to Plate — send the solid to Prepare"
-msgstr "提交到盘 — 将实体发送到“准备”"
+msgstr "提交到盘:将实体发送到“准备”"
# AI Translated
msgid "Nothing to commit — add a feature first"
-msgstr "没有可提交的内容 — 请先添加特征"
+msgstr "没有可提交的内容,请先添加特征"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "设计实体 %d"
# AI Translated
msgid "All bodies hidden — show one before committing"
-msgstr "所有实体均已隐藏 — 请在提交前显示至少一个实体"
+msgstr "所有实体均已隐藏,请在提交前显示至少一个实体"
+
+# AI Translated
+msgid "Design Assembly"
+msgstr "设计组合体"
+
+# AI Translated
+msgid "Design Body"
+msgstr "设计实体"
# AI Translated
#, c-format
@@ -25397,7 +29431,7 @@ msgstr "直线 E%d"
# AI Translated
#, c-format, boost-format
msgid "Sketch plane: %s — pick a tool"
-msgstr "草图平面:%s — 请选取工具"
+msgstr "草图平面:%s,请选取工具"
# AI Translated
#, c-format, boost-format
@@ -25443,13 +29477,14 @@ msgstr "无效:%s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "预览 — %zu 个三角形"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "预览:%zu 个三角形"
# AI Translated
#, c-format, boost-format
msgid "Body %d — moved (%.1f, %.1f, %.1f) mm, rotated %.1f°"
-msgstr "实体 %d — 已移动 (%.1f, %.1f, %.1f) mm,已旋转 %.1f°"
+msgstr "实体 %d:已移动 (%.1f, %.1f, %.1f) mm,已旋转 %.1f°"
# AI Translated
msgid "Profile: "
@@ -25540,12 +29575,13 @@ msgstr "数值不能为负(零表示重合)"
# AI Translated
msgid "That dimension cannot be satisfied — the sketch is over-constrained"
-msgstr "无法满足该尺寸 — 草图过约束"
+msgstr "无法满足该尺寸,草图过约束"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "%1% 个约束无法作用于此几何图形(椭圆或样条曲线,或大小为零的圆),已被忽略"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% 个约束无法作用于此几何图形(椭圆或样条曲线,或大小为零的圆),已被忽略"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -25578,16 +29614,16 @@ msgstr "圆角半径必须小于短边长度的一半"
# AI Translated
msgid "The slot is too wide for its radius — the width must be less than twice the radius"
-msgstr "槽口相对于其半径过宽 — 宽度必须小于半径的两倍"
+msgstr "槽口相对于其半径过宽,宽度必须小于半径的两倍"
# AI Translated
#, boost-format
msgid "%1% cannot be satisfied — the sketch is over-constrained"
-msgstr "无法满足%1% — 草图过约束"
+msgstr "无法满足%1%,草图过约束"
# AI Translated
msgid "Those two lines do not meet at a corner — pick two lines that do"
-msgstr "这两条直线未在角点相交 — 请选取两条在角点相交的直线"
+msgstr "这两条直线未在角点相交,请选取两条在角点相交的直线"
# AI Translated
msgid "The size must be greater than zero"
@@ -25603,12 +29639,13 @@ msgstr "倒角:距离超出了其中一条边的长度,或两条直线未在
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "已移除 %1% 个因圆角/倒角而失效的约束"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "已移除 %1% 个因圆角/倒角而失效的约束"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
-msgstr "偏移:椭圆或样条曲线无法生成同类型的平行曲线 — 请选取直线、圆弧或圆"
+msgstr "偏移:椭圆或样条曲线无法生成同类型的平行曲线,请选取直线、圆弧或圆"
# AI Translated
msgid "The scale factor must be greater than zero"
@@ -25624,12 +29661,13 @@ msgstr "副本数必须是大于或等于 2 的整数"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "变换解除了 %1% 个约束"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "变换解除了 %1% 个约束"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
-msgstr "阵列副本未受约束 — 求解器拒绝了所有绑定约束"
+msgstr "阵列副本未受约束:求解器拒绝了所有绑定约束"
# AI Translated
msgid "right-click or double-click to finish, click start to close"
@@ -25649,7 +29687,7 @@ msgstr "按 Enter 或 ✓ 应用,按 Esc 放弃"
# AI Translated
msgid "No dimension for that entity yet — click a line, a circle, an arc, or two points"
-msgstr "尚不支持为该图元标注尺寸 — 请单击直线、圆、圆弧或两个点"
+msgstr "尚不支持为该图元标注尺寸,请单击直线、圆、圆弧或两个点"
# AI Translated
msgid "Click a second point, or a line to measure the distance to"
@@ -25719,16 +29757,16 @@ msgstr "加厚"
# AI Translated
msgctxt "Design"
msgid "Join"
-msgstr "并集"
+msgstr "合并"
# AI Translated
msgid "Fuse the tool body into the target — one solid, no seam"
-msgstr "将工具实体融合到目标实体中 — 合为一个实体,没有接缝"
+msgstr "将工具实体融合到目标实体中,合为一个无接缝的实体"
# AI Translated
msgctxt "Design"
msgid "Subtract"
-msgstr "差集"
+msgstr "减去"
# AI Translated
msgid "Cut the tool body out of the target"
@@ -25737,7 +29775,7 @@ msgstr "从目标实体中减去工具实体"
# AI Translated
msgctxt "Design"
msgid "Intersect"
-msgstr "交集"
+msgstr "相交"
# AI Translated
msgid "Keep only where the two bodies overlap"
@@ -25774,12 +29812,7 @@ msgstr "加厚曲面"
# AI Translated
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
-msgstr "加厚曲面需要一个曲面实体 — 请先使用曲面工具创建"
-
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "孔"
+msgstr "加厚曲面需要一个曲面实体,请先使用曲面工具创建"
# AI Translated
msgctxt "Design"
@@ -25788,7 +29821,7 @@ msgstr "螺纹"
# AI Translated
msgid "Trim the body with a plane — drag the offset arrow; keep one half or both"
-msgstr "用平面切割实体 — 拖动偏移箭头;可保留其中一半或两半"
+msgstr "用平面切割实体,拖动偏移箭头;可保留其中一半或两半"
# AI Translated
msgctxt "Design"
@@ -25797,7 +29830,7 @@ msgstr "分割"
# AI Translated
msgid "Split needs a solid body — add or import one first"
-msgstr "分割需要一个实体 — 请先添加或导入实体"
+msgstr "分割需要一个实体,请先添加或导入实体"
# AI Translated
msgid "Split the body along a picked face into two solids"
@@ -25845,7 +29878,7 @@ msgstr "偏移曲面"
# AI Translated
msgid "Surface Offset needs a surface body — make one with a Surface tool first"
-msgstr "偏移曲面需要一个曲面实体 — 请先使用曲面工具创建"
+msgstr "偏移曲面需要一个曲面实体,请先使用曲面工具创建"
# AI Translated
msgctxt "Design"
@@ -25854,7 +29887,7 @@ msgstr "线性阵列"
# AI Translated
msgid "Repeat the body along a direction — drag the spacing, set the count"
-msgstr "沿某一方向重复实体 — 拖动设置间距,并设置数量"
+msgstr "沿某一方向重复实体:拖动设置间距,并设置数量"
# AI Translated
msgctxt "Design"
@@ -25863,12 +29896,7 @@ msgstr "圆周阵列"
# AI Translated
msgid "Repeat the body around an axis — set the count and sweep"
-msgstr "绕轴重复实体 — 设置数量和总角度"
-
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "镜像"
+msgstr "绕轴重复实体:设置数量和总角度"
# AI Translated
msgctxt "Design"
@@ -25900,17 +29928,12 @@ msgstr "对齐到"
# AI Translated
msgid "Align needs a body — add or import one first"
-msgstr "对齐需要一个实体 — 请先添加或导入实体"
+msgstr "对齐需要一个实体,请先添加或导入实体"
# AI Translated
msgid "Align the body to a picked face or plane"
msgstr "将实体对齐到选取的面或平面"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "平面"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -25951,7 +29974,7 @@ msgstr "干涉"
# AI Translated
msgid "Check whether two bodies overlap — reports, changes nothing"
-msgstr "检查两个实体是否重叠 — 仅报告,不做任何更改"
+msgstr "检查两个实体是否重叠(仅报告,不做任何更改)"
# AI Translated
msgctxt "Design"
@@ -26014,12 +30037,7 @@ msgstr "删除实体"
# AI Translated
msgid "Delete this whole body — removes the feature it was made from"
-msgstr "删除整个实体 — 将移除创建它的特征"
-
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "直线"
+msgstr "删除整个实体,并移除创建它的特征"
# AI Translated
msgctxt "Design"
@@ -26112,7 +30130,7 @@ msgstr "三角形"
# AI Translated
msgid "Triangle — click center, then a vertex"
-msgstr "三角形 — 单击中心,然后单击一个顶点"
+msgstr "三角形:单击中心,然后单击一个顶点"
# AI Translated
msgctxt "Design"
@@ -26121,7 +30139,7 @@ msgstr "正方形"
# AI Translated
msgid "Square — click center, then a vertex"
-msgstr "正方形 — 单击中心,然后单击一个顶点"
+msgstr "正方形:单击中心,然后单击一个顶点"
# AI Translated
msgctxt "Design"
@@ -26130,7 +30148,7 @@ msgstr "五边形"
# AI Translated
msgid "Pentagon — click center, then a vertex"
-msgstr "五边形 — 单击中心,然后单击一个顶点"
+msgstr "五边形:单击中心,然后单击一个顶点"
# AI Translated
msgctxt "Design"
@@ -26139,7 +30157,7 @@ msgstr "六边形"
# AI Translated
msgid "Hexagon — click center, then a vertex"
-msgstr "六边形 — 单击中心,然后单击一个顶点"
+msgstr "六边形:单击中心,然后单击一个顶点"
# AI Translated
msgctxt "Design"
@@ -26148,7 +30166,7 @@ msgstr "八边形"
# AI Translated
msgid "Octagon — click center, then a vertex"
-msgstr "八边形 — 单击中心,然后单击一个顶点"
+msgstr "八边形:单击中心,然后单击一个顶点"
# AI Translated
msgctxt "Design"
@@ -26157,7 +30175,7 @@ msgstr "十二边形"
# AI Translated
msgid "Dodecagon — click center, then a vertex"
-msgstr "十二边形 — 单击中心,然后单击一个顶点"
+msgstr "十二边形:单击中心,然后单击一个顶点"
# AI Translated
msgctxt "Design"
@@ -26259,7 +30277,7 @@ msgstr "选择一个草图以添加约束"
# AI Translated
msgid "Add dimensions and relations (coincident, tangent, parallel...) to the selected sketch"
-msgstr "为所选草图添加尺寸和几何关系(重合、相切、平行...)"
+msgstr "为所选草图添加尺寸和几何关系(重合、相切、平行等)"
# AI Translated
msgctxt "Design"
@@ -26320,7 +30338,7 @@ msgstr "斜体"
# AI Translated
msgid "This font cannot be used for text — pick another one"
-msgstr "此字体无法用于文字 — 请选择其他字体"
+msgstr "此字体无法用于文字,请选择其他字体"
# AI Translated
msgid "Type the text to see its size"
@@ -26335,213 +30353,6 @@ msgstr "此字体中没有该文字的字形轮廓"
msgid "Size: %.1f × %.1f mm"
msgstr "大小:%.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "标准模型"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "生成了空网格"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "长方体"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "快速:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "宽度 (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "深度 (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "高度 (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "底面半径"
-
-# AI Translated
-msgid "Top R"
-msgstr "顶面半径"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "大半径"
-
-# AI Translated
-msgid "Minor R"
-msgstr "小半径"
-
-# AI Translated
-msgid "All edges"
-msgstr "所有边"
-
-# AI Translated
-msgid "Top edges"
-msgstr "顶部边"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "底部边"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "侧边"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "网格精度"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "添加形状"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "没有外轮廓"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "无法生成外轮廓面"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "无法生成带孔的面"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "旋转失败"
-
-# AI Translated
-msgid "Profile"
-msgstr "轮廓"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "开始新轮廓(用于孔)"
-
-# AI Translated
-msgid "Segments"
-msgstr "段数"
-
-# AI Translated
-msgid "Sides"
-msgstr "边数"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "单击画布进行绘制"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "吸附到网格"
-
-# AI Translated
-msgid "Grid step"
-msgstr "网格间距"
-
-# AI Translated
-msgid "Outer"
-msgstr "外轮廓"
-
-# AI Translated
-msgid "closed"
-msgstr "已闭合"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%:%3% 个点 %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY(顶部)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ(前面)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ(侧面)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "旋转角度"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "设为 0 则拉伸,大于 0 则旋转"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "凹槽(切除)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu 个闭合轮廓"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "绘制一个闭合轮廓以启用"
-
-# AI Translated
-msgid "Clear all"
-msgstr "全部清除"
-
-# AI Translated
-msgid "Empty result"
-msgstr "结果为空"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "拉伸:%1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "旋转:%1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "未选择对象"
-
-# AI Translated
-msgid "Face failed"
-msgstr "生成面失败"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "生成带孔的面失败"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "工具网格为空"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "已添加凹槽(负体积)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "凹槽:%1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -26593,8 +30404,9 @@ msgstr "从STL/STEP/3MF/OBJ/AMF文件中导入几何数据"
msgid "Select all objects"
msgstr "选择所有对象"
+# AI Translated
msgid "Paste from clipboard"
-msgstr "从剪切板粘贴"
+msgstr "从剪贴板粘贴"
msgid "Toggle printable for object/part"
msgstr "切换对象/零件的可打印状态"
@@ -26627,15 +30439,17 @@ msgstr "将所选项顺时针旋转 45 度"
msgid "Gizmo move"
msgstr "移动小工具"
+# AI Translated
msgid "Gizmo rotate"
-msgstr "旋转物件"
+msgstr "旋转小工具"
# AI Translated
msgid "Gizmo scale"
msgstr "缩放小工具"
+# AI Translated
msgid "Gizmo place face on bed"
-msgstr "选择底面"
+msgstr "选择底面小工具"
# AI Translated
msgid "Gizmo cut"
@@ -26643,17 +30457,19 @@ msgstr "切割小工具"
# AI Translated
msgid "Gizmo mesh boolean"
-msgstr "网格布尔操作小工具"
+msgstr "网格布尔运算小工具"
# AI Translated
msgid "Gizmo FDM paint-on supports"
msgstr "FDM 手绘支撑小工具"
+# AI Translated
msgid "Gizmo FDM paint-on seam"
-msgstr "FDM涂装接缝"
+msgstr "FDM 手绘接缝小工具"
+# AI Translated
msgid "Gizmo FDM paint-on fuzzy skin"
-msgstr "Gizmo FDM手绘绒毛表面"
+msgstr "手绘绒毛表面小工具"
# AI Translated
msgid "Gizmo multi-material painting"
@@ -26669,11 +30485,15 @@ msgstr "测量小工具"
# AI Translated
msgid "Gizmo assemble"
-msgstr "组合小工具"
+msgstr "装配小工具"
# AI Translated
msgid "Gizmo brim ears"
-msgstr "耳状帽檐小工具"
+msgstr "耳状 Brim 小工具"
+
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "纹理置换绘制小工具"
msgid "Vertical slider - Move active thumb Up"
msgstr "垂直滑动条 - 向上移动一层"
@@ -26687,36 +30507,45 @@ msgstr "水平滑动条 - 向左移动一步"
msgid "Horizontal slider - Move active thumb Right"
msgstr "水平滑动条 - 向右移动一步"
+# AI Translated
msgid "Horizontal slider - Move to start position"
-msgstr "水平滑块 - 移动到起始位置"
+msgstr "水平滑动条 - 移动到起始位置"
+# AI Translated
msgid "Horizontal slider - Move to last position"
-msgstr "水平滑块 - 移动到末尾位置"
+msgstr "水平滑动条 - 移动到末尾位置"
+# AI Translated
msgid "Camera view - Default"
-msgstr "摄像机视角 - 默认"
+msgstr "视图 - 默认视图"
+# AI Translated
msgid "Camera view - Top"
-msgstr "摄像机视角 - 顶部"
+msgstr "视图 - 俯视图"
+# AI Translated
msgid "Camera view - Bottom"
-msgstr "摄像机视角 - 底部"
+msgstr "视图 - 仰视图"
+# AI Translated
msgid "Camera view - Front"
-msgstr "摄像机视角 - 正面"
+msgstr "视图 - 前视图"
+# AI Translated
msgid "Camera view - Behind"
-msgstr "摄像机视角 - 后面"
+msgstr "视图 - 后视图"
+# AI Translated
msgid "Camera Angle - Left side"
-msgstr "摄像机视角 - 左面"
+msgstr "视图 - 左视图"
+# AI Translated
msgid "Camera Angle - Right side"
-msgstr "摄像机视角 - 右面"
+msgstr "视图 - 右视图"
# AI Translated
msgid "Camera view - Current plate"
-msgstr "相机视图 - 当前盘"
+msgstr "视图 - 当前盘"
msgid "Zoom in"
msgstr "放大"
@@ -26737,8 +30566,9 @@ msgstr "开启/关闭G-code窗口"
msgid "On/Off one layer mode of the vertical slider"
msgstr "开启/关闭垂直滑动条的单层模式"
+# AI Translated
msgid "Switch between Prepare/Preview"
-msgstr "准备/预览之间的切换"
+msgstr "在“准备”和“预览”之间切换"
msgid "Collapse/Expand the sidebar"
msgstr "收起/展开 侧边栏"
@@ -26876,7 +30706,7 @@ msgstr "配合需要两个不同的连接器"
# AI Translated
msgid "connector B is not attached to a body — a mate moves B's body"
-msgstr "连接器 B 未附着到实体 — 配合会移动 B 所在的实体"
+msgstr "连接器 B 未附着到实体,而配合需要移动 B 所在的实体"
# AI Translated
msgid "connector B's body no longer exists"
@@ -26884,30 +30714,36 @@ msgstr "连接器 B 所在的实体已不存在"
# AI Translated
msgid "needs a flat face at both ends — both connectors are on curved faces"
-msgstr "两端都需要平面 — 两个连接器都位于曲面上"
+msgstr "两端都需要平面,但两个连接器都位于曲面上"
# AI Translated
#, boost-format
msgid "needs a flat face at both ends — connector %1% is on a curved face"
-msgstr "两端都需要平面 — 连接器 %1% 位于曲面上"
+msgstr "两端都需要平面,但连接器 %1% 位于曲面上"
# AI Translated
msgid "needs a cylindrical face at both ends — both connectors are on flat faces"
-msgstr "两端都需要圆柱面 — 两个连接器都位于平面上"
+msgstr "两端都需要圆柱面,但两个连接器都位于平面上"
# AI Translated
msgid "needs a cylindrical face at both ends — both connectors are on non-cylindrical faces"
-msgstr "两端都需要圆柱面 — 两个连接器都位于非圆柱面上"
+msgstr "两端都需要圆柱面,但两个连接器都位于非圆柱面上"
# AI Translated
#, boost-format
msgid "needs a cylindrical face at both ends — connector %1% is on a flat face"
-msgstr "两端都需要圆柱面 — 连接器 %1% 位于平面上"
+msgstr "两端都需要圆柱面,但连接器 %1% 位于平面上"
# AI Translated
#, boost-format
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
-msgstr "两端都需要圆柱面 — 连接器 %1% 位于曲面上"
+msgstr "两端都需要圆柱面,但连接器 %1% 位于曲面上"
+
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1%(缺少基准面)"
# AI Translated
msgid "two points are coincident"
@@ -26927,7 +30763,7 @@ msgstr "未找到边"
# AI Translated
msgid "plane ref not found"
-msgstr "未找到参考平面"
+msgstr "未找到基准面"
# AI Translated
msgid "planes are parallel (no intersection)"
@@ -26937,10 +30773,31 @@ msgstr "平面相互平行(无交线)"
msgid "zero-length direction"
msgstr "方向长度为零"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "某个特征作用于实体 %1%,而该实体在历史中的此处并不存在"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "“%1%”作用于由已删除或已隐藏的特征所创建的实体"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "“%1%”作用于在历史中的此处并不存在的实体"
+
# AI Translated
msgid "feature is used by a later feature"
msgstr "该特征被后续特征引用"
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "“%1%”使用了“%2%”,因此不能排在它之前"
+
# AI Translated
msgid "sketch entities do not form a closed loop"
msgstr "草图图元未构成闭合环"
@@ -26951,13 +30808,22 @@ msgid "Open at (%.3f, %.3f)"
msgstr "开放端点位于 (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...以及另外 %1% 个开放端点"
+msgid "Open ends not shown: %1%"
+msgstr "未显示的开放端点:%1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "旋转:轴线已不在草图中,请重新选取轴"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "旋转:轴线没有长度"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
-msgstr "草图包含图元,但未构成单一闭合轮廓 — 暂不支持将闭合图元(圆/椭圆)与其他图元组合,或使用多个闭合图元"
+msgstr "草图包含图元,但未构成单一闭合轮廓;暂不支持将闭合图元(圆/椭圆)与其他图元组合,或使用多个闭合图元"
# AI Translated
msgid "sketch profile wire failed"
@@ -27101,6 +30967,30 @@ msgstr "孔轮廓线生成失败"
msgid "hole cut failed"
msgstr "孔切除失败"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "螺纹:直径至少为 1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "螺纹:螺距必须大于 0.1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "螺纹:牙深必须在 0 到 0.7 倍螺距之间"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "螺纹:牙深相对此直径过大"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "螺纹:长度必须大于半个螺距"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "螺纹:圈数过多(长度 / 螺距 必须小于 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "内螺纹需要一个实体"
@@ -27161,6 +31051,22 @@ msgstr "删除面失败"
msgid "delete_face produced no geometry"
msgstr "删除面未生成任何几何体"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "布尔:没有目标实体"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "布尔:没有工具实体,请选取第二个实体"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "布尔:目标与工具是同一个实体"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "布尔:有实体没有几何体"
+
# AI Translated
msgid "boolean operation failed"
msgstr "布尔运算失败"
@@ -27334,7 +31240,7 @@ msgstr "此配合将实体 %1% 相对于其自身定位"
# AI Translated
#, boost-format
msgid "Mate chain is circular: Body %1% depends on Body %2%, which leads back to Body %1% — the result depends on feature order"
-msgstr "配合链存在循环:实体 %1% 依赖于实体 %2%,而后者又回到实体 %1% — 结果取决于特征顺序"
+msgstr "配合链存在循环:实体 %1% 依赖于实体 %2%,而后者又回到实体 %1%,因此结果取决于特征顺序"
# AI Translated
#, boost-format
@@ -27351,15 +31257,15 @@ msgstr "该特征需要一个实体"
# AI Translated
msgid "hole removed no material — the tool does not intersect the target body (coordinates are in the sketch plane's frame, not world)"
-msgstr "孔未去除任何材料 — 工具未与目标实体相交(坐标位于草图平面的坐标系中,而非世界坐标系)"
+msgstr "孔未去除任何材料:工具未与目标实体相交(坐标位于草图平面的坐标系中,而非世界坐标系)"
# AI Translated
msgid "thread removed no material — the tool does not intersect the target body (coordinates are in the sketch plane's frame, not world)"
-msgstr "螺纹未去除任何材料 — 工具未与目标实体相交(坐标位于草图平面的坐标系中,而非世界坐标系)"
+msgstr "螺纹未去除任何材料:工具未与目标实体相交(坐标位于草图平面的坐标系中,而非世界坐标系)"
# AI Translated
msgid "cut removed no material — the tool does not intersect the target body (coordinates are in the sketch plane's frame, not world)"
-msgstr "切割未去除任何材料 — 工具未与目标实体相交(坐标位于草图平面的坐标系中,而非世界坐标系)"
+msgstr "切割未去除任何材料:工具未与目标实体相交(坐标位于草图平面的坐标系中,而非世界坐标系)"
# AI Translated
msgid "OCCT operation failed"
@@ -27477,8 +31383,9 @@ msgstr "了解耗材丝匹配规则。"
msgid "External spools are not supported since Filament Track Switch has been installed. If you want to use an external spool, please uninstall it."
msgstr "由于已安装耗材变轨器,不支持使用外置料盘。如需使用外置料盘,请将其卸载。"
+# AI Translated
msgid "Select Filament && Hotends"
-msgstr "选择材料预设和喷嘴"
+msgstr "选择耗材丝和热端"
# AI Translated
msgid "Model Pictures"
@@ -27488,6 +31395,10 @@ msgstr "模型图片"
msgid "Auxiliaries"
msgstr "附件"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "传送带冲刷塔"
+
# AI Translated
msgid "Project Filament List"
msgstr "项目耗材丝列表"
@@ -27522,8 +31433,16 @@ msgstr "分解至少需要两种相同材料类型的耗材丝"
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "材料列表最多支持 %1% 种颜色。进行 %2% 分解后,材料数量将超过 %1%。请先在主界面删除未使用的耗材丝,再进行分解。"
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "材料列表最多支持 %1% 种颜色。进行材料列表分解后,材料数量将超过 %1%。请先在主界面删除未使用的耗材丝,再进行分解。"
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "材料列表最多支持 %1% 种颜色。进行 %2% 分解后,材料数量将超过 %1%。请先在主界面删除未使用的耗材丝,再进行分解。"
# AI Translated
msgid "Cyan"
@@ -27553,6 +31472,13 @@ msgstr "绿色"
msgid "Blue"
msgstr "蓝色"
+# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
# AI Translated
msgid ", "
msgstr "、 "
@@ -27560,7 +31486,1642 @@ msgstr "、 "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "当前耗材丝列表中不包含 %s。分解后将自动创建混合耗材丝所需的项目耗材丝。"
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "当前耗材丝列表中不包含 %s。分解后将自动创建混合耗材丝所需的项目耗材丝。"
+
+# AI Translated
+msgid "Color Picker"
+msgstr "颜色选择器"
+
+# AI Translated
+msgid "Basic Colors"
+msgstr "基本颜色"
+
+# AI Translated
+msgid "Orca Palette"
+msgstr "Orca 调色板"
+
+# AI Translated
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr "RAL 经典色"
+
+# AI Translated
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr "渐变预设"
+
+# AI Translated
+msgid "Solid"
+msgstr "纯色"
+
+# AI Translated
+msgid "Gradient"
+msgstr "渐变"
+
+# AI Translated
+msgid "Gradient start"
+msgstr "渐变起点"
+
+# AI Translated
+msgid "Gradient end"
+msgstr "渐变终点"
+
+# AI Translated
+msgid "Gradient color"
+msgstr "渐变色"
+
+# AI Translated
+msgid "Add color"
+msgstr "添加颜色"
+
+# AI Translated
+msgid "Remove color"
+msgstr "移除颜色"
+
+# AI Translated
+msgid "Saturation"
+msgstr "饱和度"
+
+# AI Translated
+msgid "Original color"
+msgstr "原始颜色"
+
+# AI Translated
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr "保存当前颜色"
+
+# AI Translated
+msgid "Palettes"
+msgstr "调色板"
+
+# AI Translated
+msgid "Search colors"
+msgstr "搜索颜色"
+
+# AI Translated
+msgid "Filter colors"
+msgstr "筛选颜色"
+
+# AI Translated
+msgid "No matching colors"
+msgstr "没有匹配的颜色"
+
+# AI Translated
+msgid "Hex color"
+msgstr "十六进制颜色"
+
+# AI Translated
+msgid "Opacity"
+msgstr "不透明度"
+
+# AI Translated
+msgid "Opacity percent"
+msgstr "不透明度百分比"
+
+# AI Translated
+msgid "Save color"
+msgstr "保存颜色"
+
+# AI Translated
+msgid "Enter a complete hexadecimal color"
+msgstr "请输入完整的十六进制颜色值"
+
+# AI Translated
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr "当前的多色选择会一直保留,直到您选择其他颜色。"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr "最多支持 %d 种颜色。"
+
+# AI Translated
+msgid "Crimson"
+msgstr "猩红色"
+
+# AI Translated
+msgid "Orange red"
+msgstr "橙红色"
+
+# AI Translated
+msgid "Tomato"
+msgstr "番茄色"
+
+# AI Translated
+msgid "Orange"
+msgstr "橙色"
+
+# AI Translated
+msgid "Dark orange"
+msgstr "暗橙色"
+
+# AI Translated
+msgid "Gold"
+msgstr "金色"
+
+# AI Translated
+msgid "Burly wood"
+msgstr "硬木色"
+
+# AI Translated
+msgid "Bisque"
+msgstr "陶坯黄"
+
+# AI Translated
+msgid "Misty rose"
+msgstr "薄雾玫瑰色"
+
+# AI Translated
+msgid "Light yellow"
+msgstr "浅黄色"
+
+# AI Translated
+msgid "Lemon chiffon"
+msgstr "柠檬绸色"
+
+# AI Translated
+msgid "Beige"
+msgstr "米色"
+
+# AI Translated
+msgid "Light golden rod yellow"
+msgstr "浅金菊黄"
+
+# AI Translated
+msgid "Pale golden rod"
+msgstr "灰金菊黄"
+
+# AI Translated
+msgid "Khaki"
+msgstr "卡其色"
+
+# AI Translated
+msgid "Dark khaki"
+msgstr "深卡其色"
+
+# AI Translated
+msgid "Peach puff"
+msgstr "桃肉色"
+
+# AI Translated
+msgid "Moccasin"
+msgstr "鹿皮色"
+
+# AI Translated
+msgid "Papaya whip"
+msgstr "番木瓜色"
+
+# AI Translated
+msgid "Blanched almond"
+msgstr "杏仁白"
+
+# AI Translated
+msgid "Antique white"
+msgstr "古董白"
+
+# AI Translated
+msgid "Navajo white"
+msgstr "纳瓦白"
+
+# AI Translated
+msgid "Wheat"
+msgstr "小麦色"
+
+# AI Translated
+msgid "Golden rod"
+msgstr "金菊黄"
+
+# AI Translated
+msgid "Chocolate"
+msgstr "巧克力色"
+
+# AI Translated
+msgid "Peru"
+msgstr "秘鲁色"
+
+# AI Translated
+msgid "Fire brick"
+msgstr "耐火砖红"
+
+# AI Translated
+msgid "Sienna"
+msgstr "赭色"
+
+# AI Translated
+msgid "Saddle brown"
+msgstr "马鞍棕"
+
+# AI Translated
+msgid "Brown"
+msgstr "棕色"
+
+# AI Translated
+msgid "Rosy brown"
+msgstr "玫瑰棕"
+
+# AI Translated
+msgid "Salmon"
+msgstr "鲑红色"
+
+# AI Translated
+msgid "Light salmon"
+msgstr "浅鲑红"
+
+# AI Translated
+msgid "Dark salmon"
+msgstr "深鲑红"
+
+# AI Translated
+msgid "Sandy brown"
+msgstr "沙棕色"
+
+# AI Translated
+msgid "Coral"
+msgstr "珊瑚色"
+
+# AI Translated
+msgid "Light coral"
+msgstr "浅珊瑚色"
+
+# AI Translated
+msgid "Indian red"
+msgstr "印度红"
+
+# AI Translated
+msgid "Dark red"
+msgstr "深红色"
+
+# AI Translated
+msgid "Maroon"
+msgstr "栗色"
+
+# AI Translated
+msgid "Green yellow"
+msgstr "绿黄色"
+
+# AI Translated
+msgid "Yellow green"
+msgstr "黄绿色"
+
+# AI Translated
+msgid "Chartreuse"
+msgstr "查特酒绿"
+
+# AI Translated
+msgid "Lawn green"
+msgstr "草坪绿"
+
+# AI Translated
+msgid "Lime green"
+msgstr "青柠绿"
+
+# AI Translated
+msgid "Spring green"
+msgstr "春绿色"
+
+# AI Translated
+msgid "Medium spring green"
+msgstr "中春绿色"
+
+# AI Translated
+msgid "Lime"
+msgstr "青柠色"
+
+# AI Translated
+msgid "Forest green"
+msgstr "森林绿"
+
+# AI Translated
+msgid "Dark green"
+msgstr "深绿色"
+
+# AI Translated
+msgid "Olive drab"
+msgstr "橄榄褐"
+
+# AI Translated
+msgid "Olive"
+msgstr "橄榄色"
+
+# AI Translated
+msgid "Dark olive green"
+msgstr "深橄榄绿"
+
+# AI Translated
+msgid "Pale green"
+msgstr "淡绿色"
+
+# AI Translated
+msgid "Light green"
+msgstr "浅绿色"
+
+# AI Translated
+msgid "Medium sea green"
+msgstr "中海绿"
+
+# AI Translated
+msgid "Sea green"
+msgstr "海绿色"
+
+# AI Translated
+msgid "Dark sea green"
+msgstr "深海绿"
+
+# AI Translated
+msgid "Cadet blue"
+msgstr "军校蓝"
+
+# AI Translated
+msgid "Medium aqua marine"
+msgstr "中碧绿色"
+
+# AI Translated
+msgid "Turquoise"
+msgstr "绿松石色"
+
+# AI Translated
+msgid "Medium turquoise"
+msgstr "中绿松石色"
+
+# AI Translated
+msgid "Dark turquoise"
+msgstr "深绿松石色"
+
+# AI Translated
+msgid "Pale turquoise"
+msgstr "浅绿松石色"
+
+# AI Translated
+msgid "Aqua"
+msgstr "水绿色"
+
+# AI Translated
+msgid "Light cyan"
+msgstr "浅青色"
+
+# AI Translated
+msgid "Mint cream"
+msgstr "薄荷奶油色"
+
+# AI Translated
+msgid "Honey dew"
+msgstr "蜜瓜色"
+
+# AI Translated
+msgid "Aquamarine"
+msgstr "碧绿色"
+
+# AI Translated
+msgid "Light sea green"
+msgstr "浅海绿"
+
+# AI Translated
+msgid "Dark cyan"
+msgstr "深青色"
+
+# AI Translated
+msgid "Teal"
+msgstr "水鸭色"
+
+# AI Translated
+msgid "Dark slate gray"
+msgstr "深石板灰"
+
+# AI Translated
+msgid "Light slate gray"
+msgstr "浅石板灰"
+
+# AI Translated
+msgid "Slate gray"
+msgstr "石板灰"
+
+# AI Translated
+msgid "Deep sky blue"
+msgstr "深天蓝"
+
+# AI Translated
+msgid "Dodger Blue"
+msgstr "道奇蓝"
+
+# AI Translated
+msgid "Sky blue"
+msgstr "天蓝色"
+
+# AI Translated
+msgid "Light sky blue"
+msgstr "浅天蓝"
+
+# AI Translated
+msgid "Light blue"
+msgstr "浅蓝色"
+
+# AI Translated
+msgid "Powder blue"
+msgstr "粉蓝色"
+
+# AI Translated
+msgid "Light steel blue"
+msgstr "浅钢蓝"
+
+# AI Translated
+msgid "Steel blue"
+msgstr "钢蓝色"
+
+# AI Translated
+msgid "Cornflower blue"
+msgstr "矢车菊蓝"
+
+# AI Translated
+msgid "Royal blue"
+msgstr "宝蓝色"
+
+# AI Translated
+msgid "Medium blue"
+msgstr "中蓝色"
+
+# AI Translated
+msgid "Midnight blue"
+msgstr "午夜蓝"
+
+# AI Translated
+msgid "Dark blue"
+msgstr "深蓝色"
+
+# AI Translated
+msgid "Navy"
+msgstr "海军蓝"
+
+# AI Translated
+msgid "Slate blue"
+msgstr "石板蓝"
+
+# AI Translated
+msgid "Dark slate blue"
+msgstr "深石板蓝"
+
+# AI Translated
+msgid "Medium slate blue"
+msgstr "中石板蓝"
+
+# AI Translated
+msgid "Blue violet"
+msgstr "蓝紫色"
+
+# AI Translated
+msgid "Indigo"
+msgstr "靛青色"
+
+# AI Translated
+msgid "Dark violet"
+msgstr "深紫罗兰色"
+
+# AI Translated
+msgid "Dark orchid"
+msgstr "深兰花紫"
+
+# AI Translated
+msgid "Medium orchid"
+msgstr "中兰花紫"
+
+# AI Translated
+msgid "Orchid"
+msgstr "兰花紫"
+
+# AI Translated
+msgid "Violet"
+msgstr "紫罗兰色"
+
+# AI Translated
+msgid "Medium purple"
+msgstr "中紫色"
+
+# AI Translated
+msgid "Purple"
+msgstr "紫色"
+
+# AI Translated
+msgid "Rebecca purple"
+msgstr "丽贝卡紫"
+
+# AI Translated
+msgid "Medium violet red"
+msgstr "中紫罗兰红"
+
+# AI Translated
+msgid "PaleV violet red"
+msgstr "浅紫罗兰红"
+
+# AI Translated
+msgid "Deep pink"
+msgstr "深粉色"
+
+# AI Translated
+msgid "Hot pink"
+msgstr "艳粉色"
+
+# AI Translated
+msgid "Light pink"
+msgstr "浅粉色"
+
+# AI Translated
+msgid "Pink"
+msgstr "粉色"
+
+# AI Translated
+msgid "Plum"
+msgstr "梅红色"
+
+# AI Translated
+msgid "Thistle"
+msgstr "蓟色"
+
+# AI Translated
+msgid "Fuchsia"
+msgstr "洋红色"
+
+# AI Translated
+msgid "Dark magenta"
+msgstr "深品红"
+
+# AI Translated
+msgid "Linen"
+msgstr "亚麻色"
+
+# AI Translated
+msgid "Old lace"
+msgstr "旧蕾丝色"
+
+# AI Translated
+msgid "Sea shell"
+msgstr "海贝色"
+
+# AI Translated
+msgid "Ivory"
+msgstr "象牙色"
+
+# AI Translated
+msgid "Floral white"
+msgstr "花白色"
+
+# AI Translated
+msgid "Lavender blush"
+msgstr "薰衣草紫红"
+
+# AI Translated
+msgid "Ghost white"
+msgstr "幽灵白"
+
+# AI Translated
+msgid "Alice blue"
+msgstr "爱丽丝蓝"
+
+# AI Translated
+msgid "Lavender"
+msgstr "薰衣草紫"
+
+# AI Translated
+msgid "White smoke"
+msgstr "白烟色"
+
+# AI Translated
+msgid "Gainsboro"
+msgstr "庚斯博罗灰"
+
+# AI Translated
+msgid "Black"
+msgstr "黑色"
+
+# AI Translated
+msgid "Coral fire"
+msgstr "珊瑚火红"
+
+# AI Translated
+msgid "Sea anemone"
+msgstr "海葵"
+
+# AI Translated
+msgid "Deep abyss"
+msgstr "深渊"
+
+# AI Translated
+msgid "Lobster red"
+msgstr "龙虾红"
+
+# AI Translated
+msgid "Sandy clay"
+msgstr "沙黏土"
+
+# AI Translated
+msgid "Driftwood"
+msgstr "浮木"
+
+# AI Translated
+msgid "Sea buckthorn"
+msgstr "沙棘"
+
+# AI Translated
+msgid "Sunset reef"
+msgstr "日落礁"
+
+# AI Translated
+msgid "Tiger coral"
+msgstr "虎纹珊瑚"
+
+# AI Translated
+msgid "Pink coral"
+msgstr "粉珊瑚"
+
+# AI Translated
+msgid "Seashell glow"
+msgstr "贝壳微光"
+
+# AI Translated
+msgid "Sand"
+msgstr "沙色"
+
+# AI Translated
+msgid "Golden kelp"
+msgstr "金色海藻"
+
+# AI Translated
+msgid "Sunlit dune"
+msgstr "阳光沙丘"
+
+# AI Translated
+msgid "Amber nautilus"
+msgstr "琥珀鹦鹉螺"
+
+# AI Translated
+msgid "Sea lemon"
+msgstr "海柠檬"
+
+# AI Translated
+msgid "Pale starfish"
+msgstr "浅色海星"
+
+# AI Translated
+msgid "Spring tide"
+msgstr "春潮"
+
+# AI Translated
+msgid "Lime algae"
+msgstr "青柠藻"
+
+# AI Translated
+msgid "Sea grass"
+msgstr "海草"
+
+# AI Translated
+msgid "Neon plankton"
+msgstr "霓虹浮游生物"
+
+# AI Translated
+msgid "Kelp forest"
+msgstr "海藻森林"
+
+# AI Translated
+msgid "Emerald wave"
+msgstr "翡翠浪"
+
+# AI Translated
+msgid "Whale shadow"
+msgstr "鲸影"
+
+# AI Translated
+msgid "Sea turtle"
+msgstr "海龟"
+
+# AI Translated
+msgid "Lagoon"
+msgstr "泻湖"
+
+# AI Translated
+msgid "Tropical current"
+msgstr "热带洋流"
+
+# AI Translated
+msgid "Midnight trench"
+msgstr "午夜海沟"
+
+# AI Translated
+msgid "Dark kelp"
+msgstr "暗海藻"
+
+# AI Translated
+msgid "Crystal surf"
+msgstr "水晶浪花"
+
+# AI Translated
+msgid "Turquoise bay"
+msgstr "绿松石湾"
+
+# AI Translated
+msgid "Sky over reef"
+msgstr "礁上天空"
+
+# AI Translated
+msgid "Shallow sky"
+msgstr "浅空"
+
+# AI Translated
+# Needs human review: The English “Electric bel” looks like a typo (Electric blue? Electric eel?); the color is #1E90FF, so 电光蓝 was chosen. Recheck once the source name is fixed.
+msgid "Electric bel"
+msgstr "电光蓝"
+
+# AI Translated
+msgid "Dolphin"
+msgstr "海豚"
+
+# AI Translated
+msgid "Ocean depths"
+msgstr "深海"
+
+# AI Translated
+msgid "Whale"
+msgstr "鲸"
+
+# AI Translated
+msgid "Indigo abyss"
+msgstr "靛蓝深渊"
+
+# AI Translated
+msgid "Sea urchin"
+msgstr "海胆"
+
+# AI Translated
+msgid "Lavender coral"
+msgstr "薰衣草珊瑚"
+
+# AI Translated
+msgid "Violet tide"
+msgstr "紫潮"
+
+# AI Translated
+msgid "Deep sea orchid"
+msgstr "深海兰花"
+
+# AI Translated
+msgid "Neon jelly"
+msgstr "霓虹水母"
+
+# AI Translated
+msgid "Fuchsia coral"
+msgstr "洋红珊瑚"
+
+# AI Translated
+msgid "Pink jellyfish"
+msgstr "粉色水母"
+
+# AI Translated
+msgid "Foam"
+msgstr "海沫"
+
+# AI Translated
+msgid "Seashell white"
+msgstr "贝壳白"
+
+# AI Translated
+msgid "Pebble gray"
+msgstr "卵石灰"
+
+# AI Translated
+msgid "Storm cloud"
+msgstr "风暴云"
+
+# AI Translated
+msgid "Ink black"
+msgstr "墨黑"
+
+# AI Translated
+msgid "Green beige"
+msgstr "绿米色"
+
+# AI Translated
+msgid "Sand yellow"
+msgstr "沙黄色"
+
+# AI Translated
+msgid "Signal yellow"
+msgstr "信号黄"
+
+# AI Translated
+msgid "Golden yellow"
+msgstr "金黄色"
+
+# AI Translated
+msgid "Honey yellow"
+msgstr "蜂蜜黄"
+
+# AI Translated
+msgid "Maize yellow"
+msgstr "玉米黄"
+
+# AI Translated
+# Needs human review: RAL 1007 is “Daffodil yellow” (水仙黄); the English name in the palette looks wrong. Recheck once the source name is fixed.
+msgid "Dalmatian yellow"
+msgstr "达尔马提亚黄"
+
+# AI Translated
+msgid "Brown beige"
+msgstr "棕米色"
+
+# AI Translated
+msgid "Lemon yellow"
+msgstr "柠檬黄"
+
+# AI Translated
+msgid "Oyster white"
+msgstr "牡蛎白"
+
+# AI Translated
+msgid "Light ivory"
+msgstr "浅象牙色"
+
+# AI Translated
+msgid "Zinc yellow"
+msgstr "锌黄"
+
+# AI Translated
+msgid "Grey beige"
+msgstr "灰米色"
+
+# AI Translated
+msgid "Olive yellow"
+msgstr "橄榄黄"
+
+# AI Translated
+msgid "Rape yellow"
+msgstr "油菜黄"
+
+# AI Translated
+msgid "Traffic yellow"
+msgstr "交通黄"
+
+# AI Translated
+msgid "Ochre yellow"
+msgstr "赭黄"
+
+# AI Translated
+msgid "Traffic orange yellow"
+msgstr "交通橙黄"
+
+# AI Translated
+msgid "Curry"
+msgstr "咖喱色"
+
+# AI Translated
+msgid "Melon yellow"
+msgstr "瓜黄"
+
+# AI Translated
+msgid "Broom yellow"
+msgstr "金雀花黄"
+
+# AI Translated
+msgid "Dahlia yellow"
+msgstr "大丽花黄"
+
+# AI Translated
+msgid "Pastel yellow"
+msgstr "粉彩黄"
+
+# AI Translated
+msgid "Pearl beige"
+msgstr "珍珠米色"
+
+# AI Translated
+msgid "Pearl gold"
+msgstr "珍珠金"
+
+# AI Translated
+msgid "Sun yellow"
+msgstr "阳光黄"
+
+# AI Translated
+msgid "Yellow orange"
+msgstr "黄橙色"
+
+# AI Translated
+msgid "Deep orange"
+msgstr "深橙色"
+
+# AI Translated
+msgid "Vermilion"
+msgstr "朱红色"
+
+# AI Translated
+msgid "Pearl orange"
+msgstr "珍珠橙"
+
+# AI Translated
+msgid "Pure orange"
+msgstr "纯橙色"
+
+# AI Translated
+msgid "Luminous orange"
+msgstr "荧光橙"
+
+# AI Translated
+msgid "Luminous bright orange"
+msgstr "荧光亮橙"
+
+# AI Translated
+msgid "Bright red orange"
+msgstr "亮红橙"
+
+# AI Translated
+msgid "Traffic orange"
+msgstr "交通橙"
+
+# AI Translated
+msgid "Signal orange"
+msgstr "信号橙"
+
+# AI Translated
+msgid "Salmon orange"
+msgstr "鲑鱼橙"
+
+# AI Translated
+msgid "Pearl pink"
+msgstr "珍珠粉"
+
+# AI Translated
+msgid "Copper orange"
+msgstr "铜橙色"
+
+# AI Translated
+msgid "Signal brown"
+msgstr "信号棕"
+
+# AI Translated
+msgid "Fir orange"
+msgstr "冷杉橙"
+
+# AI Translated
+msgid "Signal red"
+msgstr "信号红"
+
+# AI Translated
+msgid "Luminous red"
+msgstr "荧光红"
+
+# AI Translated
+msgid "Carmine red"
+msgstr "胭脂红"
+
+# AI Translated
+msgid "Pearl carmine red"
+msgstr "珍珠胭脂红"
+
+# AI Translated
+msgid "Pure red"
+msgstr "纯红色"
+
+# AI Translated
+msgid "Luminous deep red"
+msgstr "荧光深红"
+
+# AI Translated
+msgid "Currant red"
+msgstr "醋栗红"
+
+# AI Translated
+msgid "Pearl ruby red"
+msgstr "珍珠宝石红"
+
+# AI Translated
+msgid "Fire red"
+msgstr "火焰红"
+
+# AI Translated
+msgid "Ruby red"
+msgstr "宝石红"
+
+# AI Translated
+msgid "Purple red"
+msgstr "紫红色"
+
+# AI Translated
+msgid "Wine red"
+msgstr "酒红色"
+
+# AI Translated
+msgid "Black red"
+msgstr "黑红色"
+
+# AI Translated
+msgid "Oxide red"
+msgstr "氧化红"
+
+# AI Translated
+msgid "Brown red"
+msgstr "棕红色"
+
+# AI Translated
+msgid "Pine red"
+msgstr "松木红"
+
+# AI Translated
+msgid "Tomato red"
+msgstr "番茄红"
+
+# AI Translated
+msgid "Antique pink"
+msgstr "古典粉"
+
+# AI Translated
+msgid "Coral red"
+msgstr "珊瑚红"
+
+# AI Translated
+msgid "Rose"
+msgstr "玫瑰红"
+
+# AI Translated
+msgid "Strawberry red"
+msgstr "草莓红"
+
+# AI Translated
+msgid "Traffic red"
+msgstr "交通红"
+
+# AI Translated
+msgid "Salmon pink"
+msgstr "鲑鱼粉"
+
+# AI Translated
+msgid "Luminous rose"
+msgstr "荧光玫瑰红"
+
+# AI Translated
+msgid "Luminous bright red"
+msgstr "荧光亮红"
+
+# AI Translated
+msgid "Raspberry red"
+msgstr "覆盆子红"
+
+# AI Translated
+msgid "Orient red"
+msgstr "东方红"
+
+# AI Translated
+msgid "Pearl ruby"
+msgstr "珍珠红宝石"
+
+# AI Translated
+msgid "Red purple"
+msgstr "红紫色"
+
+# AI Translated
+msgid "Red violet"
+msgstr "红紫罗兰色"
+
+# AI Translated
+msgid "Heather violet"
+msgstr "石楠紫"
+
+# AI Translated
+msgid "Bordeaux violet"
+msgstr "波尔多紫"
+
+# AI Translated
+msgid "Mahogany"
+msgstr "桃花心木色"
+
+# AI Translated
+msgid "Grey purple"
+msgstr "灰紫色"
+
+# AI Translated
+msgid "Signal violet"
+msgstr "信号紫"
+
+# AI Translated
+msgid "Fir green"
+msgstr "冷杉绿"
+
+# AI Translated
+msgid "Sabine grey"
+msgstr "萨宾灰"
+
+# AI Translated
+msgid "Pearl violet"
+msgstr "珍珠紫"
+
+# AI Translated
+msgid "Pearl blackberry"
+msgstr "珍珠黑莓色"
+
+# AI Translated
+msgid "Green blue"
+msgstr "绿蓝色"
+
+# AI Translated
+msgid "Ultramarine blue"
+msgstr "群青蓝"
+
+# AI Translated
+msgid "Sapphire blue"
+msgstr "蓝宝石蓝"
+
+# AI Translated
+msgid "Black blue"
+msgstr "黑蓝色"
+
+# AI Translated
+msgid "Signal blue"
+msgstr "信号蓝"
+
+# AI Translated
+msgid "Brilliant blue"
+msgstr "艳蓝色"
+
+# AI Translated
+msgid "Grey blue"
+msgstr "灰蓝色"
+
+# AI Translated
+msgid "Azure blue"
+msgstr "蔚蓝色"
+
+# AI Translated
+msgid "Gentian blue"
+msgstr "龙胆蓝"
+
+# AI Translated
+msgid "Cobalt blue"
+msgstr "钴蓝"
+
+# AI Translated
+msgid "Pigeon blue"
+msgstr "鸽蓝"
+
+# AI Translated
+msgid "Traffic blue"
+msgstr "交通蓝"
+
+# AI Translated
+msgid "Turquoise blue"
+msgstr "绿松石蓝"
+
+# AI Translated
+msgid "Capsanthin violet"
+msgstr "辣椒红素紫"
+
+# AI Translated
+msgid "Ocean blue"
+msgstr "海洋蓝"
+
+# AI Translated
+msgid "Water blue"
+msgstr "水蓝色"
+
+# AI Translated
+msgid "Night blue"
+msgstr "夜蓝色"
+
+# AI Translated
+msgid "Distant blue"
+msgstr "远蓝色"
+
+# AI Translated
+msgid "Pastel blue"
+msgstr "粉彩蓝"
+
+# AI Translated
+msgid "Pearl gentian blue"
+msgstr "珍珠龙胆蓝"
+
+# AI Translated
+msgid "Pearl midnight blue"
+msgstr "珍珠午夜蓝"
+
+# AI Translated
+msgid "Patina green"
+msgstr "铜绿色"
+
+# AI Translated
+msgid "Emerald green"
+msgstr "翡翠绿"
+
+# AI Translated
+msgid "Leaf green"
+msgstr "叶绿色"
+
+# AI Translated
+msgid "Olive green"
+msgstr "橄榄绿"
+
+# AI Translated
+msgid "Blue green"
+msgstr "蓝绿色"
+
+# AI Translated
+msgid "Moss green"
+msgstr "苔藓绿"
+
+# AI Translated
+msgid "Grey olive"
+msgstr "灰橄榄绿"
+
+# AI Translated
+msgid "Pine green"
+msgstr "松绿色"
+
+# AI Translated
+msgid "Pine brown"
+msgstr "松棕色"
+
+# AI Translated
+msgid "Grass green"
+msgstr "草绿色"
+
+# AI Translated
+msgid "Reseda green"
+msgstr "木犀草绿"
+
+# AI Translated
+msgid "Brown green"
+msgstr "棕绿色"
+
+# AI Translated
+msgid "Reed green"
+msgstr "芦苇绿"
+
+# AI Translated
+msgid "Black green"
+msgstr "黑绿色"
+
+# AI Translated
+msgid "Turquoise green"
+msgstr "绿松石绿"
+
+# AI Translated
+msgid "May green"
+msgstr "五月绿"
+
+# AI Translated
+msgid "Chrome oxide green"
+msgstr "氧化铬绿"
+
+# AI Translated
+msgid "Traffic green"
+msgstr "交通绿"
+
+# AI Translated
+msgid "Fern green"
+msgstr "蕨绿色"
+
+# AI Translated
+msgid "Opal green"
+msgstr "蛋白石绿"
+
+# AI Translated
+msgid "Mint green"
+msgstr "薄荷绿"
+
+# AI Translated
+msgid "Bronze green"
+msgstr "青铜绿"
+
+# AI Translated
+msgid "Pearl green"
+msgstr "珍珠绿"
+
+# AI Translated
+msgid "Sax turquoise"
+msgstr "萨克森绿松石色"
+
+# AI Translated
+msgid "Pearl turquoise"
+msgstr "珍珠绿松石色"
+
+# AI Translated
+msgid "Pearl jade"
+msgstr "珍珠玉绿"
+
+# AI Translated
+msgid "Pure green"
+msgstr "纯绿色"
+
+# AI Translated
+msgid "Luminous green"
+msgstr "荧光绿"
+
+# AI Translated
+msgid "Squirrel grey"
+msgstr "松鼠灰"
+
+# AI Translated
+msgid "Silver grey"
+msgstr "银灰色"
+
+# AI Translated
+msgid "Olivestone"
+msgstr "橄榄石色"
+
+# AI Translated
+msgid "Moss grey"
+msgstr "苔藓灰"
+
+# AI Translated
+msgid "Signal grey"
+msgstr "信号灰"
+
+# AI Translated
+msgid "Mouse grey"
+msgstr "鼠灰色"
+
+# AI Translated
+msgid "Beige grey"
+msgstr "米灰色"
+
+# AI Translated
+msgid "Khaki grey"
+msgstr "卡其灰"
+
+# AI Translated
+msgid "Green grey"
+msgstr "绿灰色"
+
+# AI Translated
+msgid "Tarpaulin grey"
+msgstr "篷布灰"
+
+# AI Translated
+msgid "Iron grey"
+msgstr "铁灰色"
+
+# AI Translated
+msgid "Basalt grey"
+msgstr "玄武岩灰"
+
+# AI Translated
+msgid "Brown grey"
+msgstr "棕灰色"
+
+# AI Translated
+msgid "Slate grey"
+msgstr "石板灰"
+
+# AI Translated
+msgid "Anthracite grey"
+msgstr "无烟煤灰"
+
+# AI Translated
+msgid "Light grey"
+msgstr "浅灰色"
+
+# AI Translated
+msgid "Umber grey"
+msgstr "棕土灰"
+
+# AI Translated
+msgid "Concrete grey"
+msgstr "混凝土灰"
+
+# AI Translated
+msgid "Graphite grey"
+msgstr "石墨灰"
+
+# AI Translated
+msgid "Granite grey"
+msgstr "花岗岩灰"
+
+# AI Translated
+msgid "Stone grey"
+msgstr "岩石灰"
+
+# AI Translated
+msgid "Pebble grey"
+msgstr "卵石灰"
+
+# AI Translated
+msgid "Cement grey"
+msgstr "水泥灰"
+
+# AI Translated
+msgid "Yellow grey"
+msgstr "黄灰色"
+
+# AI Translated
+msgid "Platinum grey"
+msgstr "铂灰色"
+
+# AI Translated
+msgid "Dusty grey"
+msgstr "尘灰色"
+
+# AI Translated
+msgid "Agate grey"
+msgstr "玛瑙灰"
+
+# AI Translated
+msgid "Quartz grey"
+msgstr "石英灰"
+
+# AI Translated
+msgid "Window grey"
+msgstr "窗灰色"
+
+# AI Translated
+msgid "Traffic grey A"
+msgstr "交通灰 A"
+
+# AI Translated
+msgid "Traffic grey B"
+msgstr "交通灰 B"
+
+# AI Translated
+msgid "Silk grey"
+msgstr "丝绸灰"
+
+# AI Translated
+msgid "Telegrey 1"
+msgstr "电信灰 1"
+
+# AI Translated
+msgid "Telegrey 2"
+msgstr "电信灰 2"
+
+# AI Translated
+msgid "Telegrey 4"
+msgstr "电信灰 4"
+
+# AI Translated
+msgid "Pearl mouse grey"
+msgstr "珍珠鼠灰"
+
+# AI Translated
+msgid "Green brown"
+msgstr "绿棕色"
+
+# AI Translated
+msgid "Ochre brown"
+msgstr "赭棕色"
+
+# AI Translated
+msgid "Clay brown"
+msgstr "黏土棕"
+
+# AI Translated
+msgid "Copper brown"
+msgstr "铜棕色"
+
+# AI Translated
+msgid "Chocolate brown"
+msgstr "巧克力棕"
+
+# AI Translated
+msgid "Olive brown"
+msgstr "橄榄棕"
+
+# AI Translated
+msgid "Nut brown"
+msgstr "坚果棕"
+
+# AI Translated
+msgid "Red brown"
+msgstr "红棕色"
+
+# AI Translated
+msgid "Sepia brown"
+msgstr "乌贼墨棕"
+
+# AI Translated
+msgid "Chestnut brown"
+msgstr "栗棕色"
+
+# AI Translated
+msgid "Mahogany brown"
+msgstr "桃花心木棕"
+
+# AI Translated
+msgid "Grey brown"
+msgstr "灰棕色"
+
+# AI Translated
+msgid "Pearl copper"
+msgstr "珍珠铜色"
+
+# AI Translated
+msgid "Beige brown"
+msgstr "米棕色"
+
+# AI Translated
+msgid "Pearl mocha brown"
+msgstr "珍珠摩卡棕"
+
+# AI Translated
+msgid "Earth brown"
+msgstr "土棕色"
+
+# AI Translated
+msgid "Pearl brown"
+msgstr "珍珠棕"
+
+# AI Translated
+msgid "Cream"
+msgstr "奶油色"
+
+# AI Translated
+msgid "Grey white"
+msgstr "灰白色"
+
+# AI Translated
+msgid "Signal white"
+msgstr "信号白"
+
+# AI Translated
+msgid "Signal black"
+msgstr "信号黑"
+
+# AI Translated
+msgid "Jet black"
+msgstr "乌黑色"
+
+# AI Translated
+msgid "White aluminium"
+msgstr "白铝色"
+
+# AI Translated
+msgid "Grey aluminium"
+msgstr "灰铝色"
+
+# AI Translated
+msgid "Pure white"
+msgstr "纯白色"
+
+# AI Translated
+msgid "Graphite black"
+msgstr "石墨黑"
+
+# AI Translated
+msgid "Traffic white"
+msgstr "交通白"
+
+# AI Translated
+msgid "Traffic black"
+msgstr "交通黑"
+
+# AI Translated
+msgid "Papyrus white"
+msgstr "莎草纸白"
+
+# AI Translated
+msgid "Pearl light grey"
+msgstr "珍珠浅灰"
+
+# AI Translated
+msgid "Metal: Silver"
+msgstr "金属:银色"
+
+# AI Translated
+msgid "Metal: Brass"
+msgstr "金属:黄铜"
+
+# AI Translated
+msgid "Metal: Gold"
+msgstr "金属:金色"
+
+# AI Translated
+msgid "Metal: Copper"
+msgstr "金属:铜色"
+
+# AI Translated
+msgid "Metal: Bronze"
+msgstr "金属:青铜"
+
+# AI Translated
+msgid "Nature: Pearl"
+msgstr "自然:珍珠"
+
+# AI Translated
+msgid "Nature: Rainbow"
+msgstr "自然:彩虹"
+
+# AI Translated
+msgid "Nature: Clear Sky"
+msgstr "自然:晴空"
+
+# AI Translated
+msgid "Nature: Sunset"
+msgstr "自然:日落"
+
+# AI Translated
+msgid "Wood: Dark"
+msgstr "木纹:深色"
+
+# AI Translated
+msgid "Wood: Medium"
+msgstr "木纹:中色"
+
+# AI Translated
+msgid "Wood: Light"
+msgstr "木纹:浅色"
# AI Translated
msgid "Alternate nozzles:"
@@ -27591,7 +33152,7 @@ msgstr "您好,欢迎使用 %s!此%s将帮助您完成初始配置,只需
# AI Translated
msgid "Remove user profiles (a snapshot will be taken beforehand)"
-msgstr "删除用户配置文件(删除前会先创建快照)"
+msgstr "删除用户预设(删除前会先创建快照)"
# AI Translated
msgid "Perform desktop integration (Sets this binary to be searchable by the system)."
@@ -27612,7 +33173,7 @@ msgstr "供应商:"
# AI Translated
msgid "Profile:"
-msgstr "配置文件:"
+msgstr "预设:"
# AI Translated
msgid "(All)"
@@ -27656,17 +33217,13 @@ msgstr "我的设置"
msgid "Custom Printer Setup"
msgstr "自定义打印机设置"
-# AI Translated
-msgid "Custom Printer"
-msgstr "自定义打印机"
-
# AI Translated
msgid "Define a custom printer profile"
-msgstr "定义自定义打印机配置文件"
+msgstr "定义自定义打印机预设"
# AI Translated
msgid "Custom profile name:"
-msgstr "自定义配置文件名称:"
+msgstr "自定义预设名称:"
# AI Translated
msgid "Firmware Type"
@@ -27767,12 +33324,12 @@ msgstr "SLA 技术打印机"
# AI Translated
#, boost-format
msgid "The following printer profiles have no default filament: %1%Please select one manually."
-msgstr "以下打印机配置文件没有默认耗材丝:%1%请手动选择一个。"
+msgstr "以下打印机型号没有默认耗材丝:%1%请手动选择一个。"
# AI Translated
#, boost-format
msgid "The following printer profiles have no default material: %1%Please select one manually."
-msgstr "以下打印机配置文件没有默认材料:%1%请手动选择一个。"
+msgstr "以下打印机型号没有默认材料:%1%请手动选择一个。"
# AI Translated
msgid "The following FFF printer models have no filament selected:"
@@ -27829,7 +33386,7 @@ msgstr "下一步>"
# AI Translated
msgid "Filament Profiles Selection"
-msgstr "耗材丝配置文件选择"
+msgstr "耗材丝预设选择"
# AI Translated
msgid "Configuration Assistant"
@@ -27874,7 +33431,7 @@ msgstr "需要调整位置"
# AI Translated
msgctxt "FilamentTrack"
msgid "OK"
-msgstr "确定"
+msgstr "摆放正确"
# AI Translated
msgid "Unused"
@@ -27927,6 +33484,14 @@ msgctxt "Texture Displacement"
msgid "Bake"
msgstr "烘焙"
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "在滑块中输入精确数值"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "滑块右端的编辑图标"
+
# AI Translated
msgid "Texture displacement"
msgstr "纹理置换"
@@ -27954,7 +33519,7 @@ msgstr "图层 %1%"
# AI Translated
msgid "Average island scale"
-msgstr "平均岛缩放"
+msgstr "平均 UV 岛缩放"
# AI Translated
msgid "Select an island in the UV editor first."
@@ -27962,7 +33527,7 @@ msgstr "请先在 UV 编辑器中选择一个岛。"
# AI Translated
msgid "Cut texture island"
-msgstr "切开纹理岛"
+msgstr "切开纹理 UV 岛"
# AI Translated
msgid "This island has no neighbour it shares an edge with."
@@ -27970,11 +33535,11 @@ msgstr "此岛没有与之共享边的相邻岛。"
# AI Translated
msgid "Join texture island"
-msgstr "拼接纹理岛"
+msgstr "拼接纹理 UV 岛"
# AI Translated
msgid "Unjoin texture island"
-msgstr "取消拼接纹理岛"
+msgstr "取消拼接纹理 UV 岛"
# AI Translated
msgid "Clear texture seams"
@@ -27990,7 +33555,7 @@ msgstr "应用纹理投影框"
# AI Translated
msgid "Move texture island"
-msgstr "移动纹理岛"
+msgstr "移动纹理 UV 岛"
# AI Translated
msgid "Edit texture UV"
@@ -28046,7 +33611,7 @@ msgstr "导入您自己的图像作为高度图。图像会被转换为切片软
# AI Translated
msgid "PNG, JPG or BMP - converted to a height map on import. Hover one of yours to remove it."
-msgstr "PNG、JPG 或 BMP - 导入时转换为高度图。将鼠标悬停在您自己的纹理上即可将其移除。"
+msgstr "PNG、JPG 或 BMP:导入时转换为高度图。将鼠标悬停在您自己的纹理上即可将其移除。"
# AI Translated
#, c-format, boost-format
@@ -28063,6 +33628,50 @@ msgstr ""
msgid "Remove texture"
msgstr "移除纹理"
+# AI Translated
+msgid "Adjust image"
+msgstr "调整图像"
+
+# AI Translated
+msgid "Brightness"
+msgstr "亮度"
+
+# AI Translated
+msgid "Contrast"
+msgstr "对比度"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "锐度"
+
+# AI Translated
+msgid "Blur"
+msgstr "模糊"
+
+# AI Translated
+msgid "Hue"
+msgstr "色相"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "突出图像中最精细的细节。在“模糊”之后应用,因此两者可配合使用:先模糊掉斑点,再锐化剩余的边缘。"
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "模糊图像本身。图层自带的“平滑”滑块可在不改变图像的情况下柔化起伏,应优先使用。"
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "此纹理为灰度图,没有可偏移的色相。"
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "松开滑块时模型才会更新。“另存为副本”会将调整后的图像写入您的纹理库,并让此图层使用该图像。"
+
+# AI Translated
+msgid "Save as copy"
+msgstr "另存为副本"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "移除纹理置换图层"
@@ -28085,7 +33694,7 @@ msgstr "细分模型以进行纹理置换"
# AI Translated
msgid "Paint the area you want to subdivide first - adaptive subdivision only refines where you have painted."
-msgstr "请先绘制要细分的区域 - 自适应细分只会细化您绘制过的区域。"
+msgstr "请先绘制要细分的区域,自适应细分只会细化您绘制过的区域。"
# AI Translated
msgid "Adaptive subdivide for texture displacement"
@@ -28093,15 +33702,15 @@ msgstr "自适应细分以进行纹理置换"
# AI Translated
msgid "Nothing to subdivide - the painted area already meets the target edge length and detail tolerance, or the triangle budget is already used up."
-msgstr "无需细分 - 绘制区域已满足目标边长和细节容差,或三角形预算已用完。"
+msgstr "无需细分:绘制区域已满足目标边长和细节容差,或三角形预算已用完。"
# AI Translated
msgid "Paint the area you want to smooth first - smoothing only touches the painted part of the model."
-msgstr "请先绘制要平滑的区域 - 平滑只作用于模型上已绘制的部分。"
+msgstr "请先绘制要平滑的区域,平滑只作用于模型上已绘制的部分。"
# AI Translated
msgid "Nothing to smooth - the painted area is only one triangle deep, so with \"Ignore outer ring\" on there are no interior vertices to relax."
-msgstr "无需平滑 - 绘制区域只有一个三角形的深度,因此开启“忽略外圈”时没有可松弛的内部顶点。"
+msgstr "无需平滑:绘制区域只有一个三角形的深度,因此开启“忽略外圈”时没有可松弛的内部顶点。"
# AI Translated
msgid "Smooth texture displacement"
@@ -28141,7 +33750,7 @@ msgstr "捕获阶段"
# AI Translated
msgid "Run the same bake the Bake button runs, keeping the mesh after every stage, and step through them here. Nothing is committed to the model - this is for finding which stage a bad result came from."
-msgstr "执行与“烘焙”按钮相同的烘焙,保留每个阶段之后的网格,并可在此逐一查看。不会向模型提交任何内容 - 用于找出不良结果来自哪个阶段。"
+msgstr "执行与“烘焙”按钮相同的烘焙,保留每个阶段之后的网格,并可在此逐一查看。不会向模型提交任何内容,仅用于找出不良结果来自哪个阶段。"
# AI Translated
msgid "Check topology"
@@ -28199,17 +33808,26 @@ msgstr "将每个已捕获的阶段写出为 OBJ 文件,以便在网格查看
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "绘制区域无法转移到重新网格化后的模型上,因此未作任何更改。请切换到专业模式,并在绘制前进行重新网格化。"
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "范围:%1% 至 %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "输入数值,而不是拖动。按住 Ctrl 单击滑块效果相同。"
+
# AI Translated
msgid "Pro"
msgstr "专业"
# AI Translated
msgid "Standard - pick a texture, paint where it goes, press Bake. Everything the mesh needs is done for you in that one step."
-msgstr "标准 - 选择纹理,在需要的位置绘制,然后按“烘焙”。网格所需的所有处理都会在这一步中自动完成。"
+msgstr "标准:选择纹理,在需要的位置绘制,然后按“烘焙”。网格所需的所有处理都会在这一步中自动完成。"
# AI Translated
msgid "Pro - the mesh preparation is yours to run: Remesh, Subdivide and Bake as separate steps, with every setting on show. For when Standard's result is not what you wanted and you know why."
-msgstr "专业 - 网格准备由您自行执行:重新网格化、细分和烘焙为独立的步骤,所有设置均会显示。适用于标准模式的结果不符合预期、且您清楚原因的情况。"
+msgstr "专业:网格准备由您自行执行,重新网格化、细分和烘焙为独立的步骤,所有设置均会显示。适用于标准模式的结果不符合预期、且您清楚原因的情况。"
# AI Translated
msgid "Dock panel"
@@ -28234,19 +33852,19 @@ msgstr "添加图层以进行绘制"
# AI Translated
msgid "Paint - add the active layer where you click or drag. The right button erases, and so does holding Shift."
-msgstr "绘制 - 在单击或拖动处添加当前图层。右键可擦除,按住 Shift 也可擦除。"
+msgstr "绘制:在单击或拖动处添加当前图层。右键可擦除,按住 Shift 也可擦除。"
# AI Translated
msgid "Erase - remove the active layer where you click or drag. The right button paints."
-msgstr "擦除 - 在单击或拖动处移除当前图层。右键可绘制。"
+msgstr "擦除:在单击或拖动处移除当前图层。右键可绘制。"
# AI Translated
msgid "Brush - paint over the surface by dragging"
-msgstr "画刷 - 拖动以在表面上绘制"
+msgstr "画刷:拖动以在表面上绘制"
# AI Translated
msgid "Face - click individual triangles"
-msgstr "面 - 单击单个三角形"
+msgstr "面:单击单个三角形"
# AI Translated
msgid "Connected area"
@@ -28254,7 +33872,7 @@ msgstr "连通区域"
# AI Translated
msgid "Connected area - flood-fill the region reachable without crossing an edge sharper than the angle threshold"
-msgstr "连通区域 - 填充无需跨越比角度阈值更锐利的边即可到达的区域"
+msgstr "连通区域:填充无需跨越比角度阈值更锐利的边即可到达的区域"
# AI Translated
msgid "Wait for the bake to finish."
@@ -28274,7 +33892,7 @@ msgstr "选择整个模型"
# AI Translated
msgid "Select whole model - paint every face of the model with the active layer"
-msgstr "选择整个模型 - 用当前图层绘制模型的每个面"
+msgstr "选择整个模型:用当前图层绘制模型的每个面"
# AI Translated
msgid "Erase whole model"
@@ -28282,7 +33900,7 @@ msgstr "擦除整个模型"
# AI Translated
msgid "Erase whole model - clear the active layer's paint from every face"
-msgstr "擦除整个模型 - 清除当前图层在每个面上的绘制"
+msgstr "擦除整个模型:清除当前图层在每个面上的绘制"
# AI Translated
msgid "Reset texture displacement selection"
@@ -28290,55 +33908,55 @@ msgstr "重置纹理置换选择"
# AI Translated
msgid "Circle - paints everything under the brush as seen from the camera"
-msgstr "圆 - 绘制从相机视角看画刷下的所有内容"
+msgstr "圆:绘制从相机视角看画刷下的所有内容"
# AI Translated
msgid "Sphere - paints only within a ball around the point under the cursor"
-msgstr "球 - 仅在光标所指点周围的球体内绘制"
+msgstr "球:仅在光标所指点周围的球体内绘制"
# AI Translated
msgid "Angle threshold - the fill stops at edges sharper than this"
-msgstr "角度阈值 - 填充会在比此角度更锐利的边处停止"
+msgstr "角度阈值:填充会在比此角度更锐利的边处停止"
# AI Translated
msgid "Click a triangle to paint it"
msgstr "单击三角形以进行绘制"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "需要当前图层使用“展开 (LSCM)”映射。"
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "仅适用于映射为“展开 (LSCM)”的图层,将当前图层的映射设为“展开”即可使用此视图。"
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
-msgstr "常规 - 真实几何体,与烘焙结果完全一致。更新较慢"
+msgstr "常规:真实几何体,与烘焙结果完全一致。更新较慢"
# AI Translated
msgid "Fast - the relief is only shaded on, not built, and only for the layer you are editing. Updates instantly while you paint"
-msgstr "快速 - 起伏仅通过着色显示而未实际构建,且仅针对正在编辑的图层。绘制时即时更新"
+msgstr "快速:起伏仅通过着色显示而未实际构建,且仅针对正在编辑的图层。绘制时即时更新"
# AI Translated
msgid "Checker"
msgstr "棋盘格"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "棋盘格 - 用测试网格代替纹理。方格保持正方形的地方纹理没有变形;方格被拉伸的地方,纹理也会被拉伸"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "棋盘格:用测试网格代替纹理显示。方格保持方正处,纹理无变形;方格被拉伸处,纹理也会被拉伸。若 UV 编辑器未打开,将自动打开"
# AI Translated
msgid "Distortion"
msgstr "畸变"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "畸变 - 在展开上叠加由蓝到红的拉伸热力图"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "畸变:在展开图上叠加由蓝到红的拉伸热力图。若 UV 编辑器未打开,将自动打开"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
-msgstr "线框 - 叠加显示网格边;与上方的视图无关"
+msgstr "线框:叠加显示网格边;与上方的视图无关"
# AI Translated
msgid "Rebuilds the preview as soon as anything changes. Turn it off on a heavy model if painting or dragging a slider starts to stutter - the preview then waits until you let go."
-msgstr "任何内容更改后立即重建预览。如果在较大的模型上绘制或拖动滑块时开始卡顿,请将其关闭 - 预览将等到您松开后再更新。"
+msgstr "任何内容更改后立即重建预览。如果在较大的模型上绘制或拖动滑块时开始卡顿,请将其关闭,预览将等到您松开后再更新。"
# AI Translated
msgid "Texture layers"
@@ -28356,13 +33974,17 @@ msgstr "为此图层选择另一张图像。绘制、深度和平铺保持不变
msgid "not painted"
msgstr "未绘制"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "亮度、对比度、锐度、模糊和色相,设置时会同步显示在图像和模型上。“另存为副本”会将结果写入您的纹理库,并让此图层使用该结果。"
+
# AI Translated
msgid "Move up - applied earlier"
-msgstr "上移 - 更早应用"
+msgstr "上移:更早应用"
# AI Translated
msgid "Move down - applied later"
-msgstr "下移 - 更晚应用"
+msgstr "下移:更晚应用"
# AI Translated
msgid "Remove this layer"
@@ -28376,13 +33998,25 @@ msgstr "起伏的高度:纹理中的白色将表面抬起多少,单位为毫
msgid "Tile size"
msgstr "平铺尺寸"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "按模型自身的 UV 布局映射,该布局本身就是放置方式:纹理的一个副本即可精确覆盖,因此无需设置平铺尺寸。"
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "纹理的一个副本在模型上的宽度。数值越小,图案重复越频繁、细节越精细;关闭“平铺”时,这是单个副本的尺寸。"
+# AI Translated
+msgid "Larger"
+msgstr "较大"
+
+# AI Translated
+msgid "Smaller"
+msgstr "较小"
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
-msgstr "旋转表面上的纹理,单位为度 - 用于将图案与模型的某条边对齐。"
+msgstr "旋转表面上的纹理,单位为度,用于将图案与模型的某条边对齐。"
# AI Translated
msgid "Midlevel"
@@ -28394,7 +34028,7 @@ msgid ""
"\n"
"What cuts in has to fit: inside a sharp corner or through a thin wall, a deep cut can pass through the other side."
msgstr ""
-"哪种灰度保持在表面当前的位置。设为 0 时,纹理只向外推出;设为 0.5 时,中灰色保持不动,较暗的灰色向内切入,较亮的灰色仍向外推出 - 同一张图像既能浮雕又能雕刻。\n"
+"哪种灰度保持在表面当前的位置。设为 0 时,纹理只向外推出;设为 0.5 时,中灰色保持不动,较暗的灰色向内切入,较亮的灰色仍向外推出,因此同一张图像既能浮雕又能雕刻。\n"
"\n"
"向内切入的部分必须有足够空间:在尖锐的内角处或薄壁上,较深的切入可能会穿透到另一侧。"
@@ -28447,28 +34081,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "交替使用两种耗材丝来模拟它们之间的颜色,从而用少量耗材丝呈现照片或渐变。纯色图像无论是否开启,打印效果都相同。关闭时每个区域只使用一种耗材丝。"
# AI Translated
-msgid "Mix by"
-msgstr "混合方式"
+msgid "Mixed colors"
+msgstr "混色数量"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "表面"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "烘焙时最多可添加的混合耗材丝数量。混合耗材丝从纹理颜色中选取,且只会创建烘焙实际用到的那些。"
# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
-msgstr ""
-"层:两种耗材丝在打印层之间交替,在竖直表面上过渡平滑,但在朝上或朝下的平坦表面上会失效,因为那里整层只是一条色带。\n"
-"表面:在表面上形成细密的棋盘格,适用于任何角度,但看起来可能更像纹理而非混色。\n"
-"自动:竖直面按层混合;平坦面采用较接近的单一耗材丝,因为棋盘格在那里会显现为图案。"
+msgid "Few"
+msgstr "较少"
# AI Translated
+msgid "Many"
+msgstr "较多"
+
+# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% 种可打印颜色,来自 %2% 种耗材丝"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "来自 %1% 种耗材丝"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% 种可打印颜色,%2%"
# AI Translated
msgid "Denoise"
@@ -28489,11 +34129,11 @@ msgstr "三平面(混合)"
# AI Translated
msgid "Triplanar - projects the texture from all three axes at once and blends between them, so a patch wrapping around a sharp edge has no seam."
-msgstr "三平面 - 同时从三个轴向投影纹理并在它们之间混合,因此环绕尖锐边的区域不会出现接痕。"
+msgstr "三平面:同时从三个轴向投影纹理并在它们之间混合,因此环绕尖锐边的区域不会出现接痕。"
# AI Translated
msgid "Cylindrical - wraps the texture around the painted area's own center, for round shapes."
-msgstr "柱面 - 以绘制区域自身的中心为轴环绕纹理,适用于圆形物体。"
+msgstr "柱面:以绘制区域自身的中心为轴环绕纹理,适用于圆形物体。"
# AI Translated
msgid "Spherical"
@@ -28501,7 +34141,7 @@ msgstr "球面"
# AI Translated
msgid "Spherical - wraps the texture around the painted area's own center in both directions."
-msgstr "球面 - 以绘制区域自身的中心在两个方向上环绕纹理。"
+msgstr "球面:以绘制区域自身的中心在两个方向上环绕纹理。"
# AI Translated
msgid "Unwrap (LSCM)"
@@ -28509,7 +34149,7 @@ msgstr "展开 (LSCM)"
# AI Translated
msgid "Unwrap - flattens the painted area and maps the texture onto it with as little stretching as possible. The area is cut into pieces at its sharp edges first (see Seam angle), so each piece can lie flat on its own."
-msgstr "展开 - 将绘制区域展平,并以尽可能小的拉伸将纹理映射到其上。该区域会先在其尖锐边处切成若干块(参见“切缝角度”),使每一块都能单独展平。"
+msgstr "展开:将绘制区域展平,并以尽可能小的拉伸将纹理映射到其上。该区域会先在其尖锐边处切成若干块(参见“切缝角度”),使每一块都能单独展平。"
# AI Translated
msgid "From view"
@@ -28517,7 +34157,19 @@ msgstr "从视图"
# AI Translated
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
-msgstr "从视图 - 从您当前观察的方向直接投影到绘制区域上,就像幻灯机一样。"
+msgstr "从视图:从您当前观察的方向直接投影到绘制区域上,就像幻灯机一样。"
+
+# AI Translated
+msgid "Model UV"
+msgstr "模型 UV"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "模型 UV:使用模型自带的纹理坐标,因此为该模型制作的纹理会精确落在其绘制的位置。不会进行展开,“平铺尺寸”也不适用,因为模型自身的布局就是放置方式。"
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "此模型没有自带纹理坐标。只有导入时带有 UV 通道的模型(例如带纹理的 OBJ)才能按其进行映射。"
# AI Translated
msgid "Open UV editor"
@@ -28533,8 +34185,9 @@ msgstr "尚未展开"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% 个岛"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% 个 UV 岛"
# AI Translated
msgid "Capture current view"
@@ -28542,7 +34195,7 @@ msgstr "捕获当前视图"
# AI Translated
msgid "Nothing is visible from this angle - turn the model to face the part you want to project onto."
-msgstr "从此角度看不到任何内容 - 请旋转模型,使要投影的部分朝向您。"
+msgstr "从此角度看不到任何内容,请旋转模型,使要投影的部分朝向您。"
# AI Translated
msgid "Projects the texture onto the painted area from where you are looking now, like a slide projector. Faces turned away from you stretch, so line the view up with the surface you care about first."
@@ -28554,7 +34207,7 @@ msgstr "仅投影到可见面"
# AI Translated
msgid "Paints only the faces you can actually see right now - facing you and not hidden behind anything - and projects onto those. Replaces what the layer had painted."
-msgstr "仅绘制您此刻真正能看到的面 - 朝向您且未被任何物体遮挡 - 并投影到这些面上。会替换该图层原有的绘制。"
+msgstr "仅绘制您此刻真正能看到的面(朝向您且未被任何物体遮挡),并投影到这些面上。会替换该图层原有的绘制。"
# AI Translated
msgid "Projection frame"
@@ -28564,10 +34217,6 @@ msgstr "投影框"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "打开一个可在模型上拖动的窗口。透过它能看到的部分会获得纹理,其边框即为投影的边缘。"
-# AI Translated
-msgid "Opacity"
-msgstr "不透明度"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "放置时投影框窗口的不透明程度。调低可透过它看到模型;不影响结果。"
@@ -28578,7 +34227,7 @@ msgstr "应用投影框"
# AI Translated
msgid "Nothing of the model is inside the frame - move it over the part you want to project onto."
-msgstr "框内没有模型的任何部分 - 请将其移到要投影的部分上。"
+msgstr "框内没有模型的任何部分,请将其移到要投影的部分上。"
# AI Translated
msgid "The frame could not be applied. Make sure it overlaps the 3D view."
@@ -28610,7 +34259,7 @@ msgstr "镜像重复"
# AI Translated
msgid "Mirrored repeat - every other tile is flipped, so edges meet seamlessly"
-msgstr "镜像重复 - 每隔一块翻转一次,使边缘无缝衔接"
+msgstr "镜像重复:每隔一块翻转一次,使边缘无缝衔接"
# AI Translated
msgid "Blend"
@@ -28621,6 +34270,11 @@ msgctxt "Texture Displacement"
msgid "Add"
msgstr "添加"
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "覆盖"
+
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
@@ -28640,8 +34294,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "基础图层下方没有可与之组合的内容,因此始终使用“添加”。"
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "此图层与下方图层重叠处的作用方式。“添加”和“相减”会堆叠或削减起伏。“相乘”和“相除”会缩放下方的内容,使此图层成为其上的遮罩 - 此时“深度”相当于强度,1 mm 时白色区域保持不变。"
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "此图层与下方图层重叠处的作用方式。“添加”和“相减”会堆叠或削减起伏。“覆盖”会取代下方图层,因此在绘制处只保留此图层的起伏。“相乘”和“相除”会缩放下方的内容,使此图层成为其上的遮罩,此时“深度”相当于强度,1 mm 时白色区域保持不变。"
# AI Translated
msgid "Adjust placement"
@@ -28649,7 +34303,7 @@ msgstr "调整位置"
# AI Translated
msgid "Adjust placement - drag the handle on the model to move the texture"
-msgstr "调整位置 - 拖动模型上的控制柄以移动纹理"
+msgstr "调整位置:拖动模型上的控制柄以移动纹理"
# AI Translated
msgid "Paint something with this layer first."
@@ -28665,8 +34319,9 @@ msgstr "更多设置"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "已使用全部 %1% 个图层"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "已使用全部 %1% 个图层"
# AI Translated
msgid "Add layer"
@@ -28690,7 +34345,7 @@ msgstr "跟随纹理细节"
# AI Translated
msgid "Spends the triangles where the texture actually bends - packed along ridges and edges, sparse over flat ground - instead of spreading them evenly. The same detail for fewer triangles on most textures."
-msgstr "将三角形用在纹理实际发生弯折的地方 - 沿脊线和边缘密集分布,在平坦处稀疏分布 - 而不是均匀分布。对大多数纹理而言,可用更少的三角形获得相同的细节。"
+msgstr "将三角形用在纹理实际发生弯折的地方(沿脊线和边缘密集分布,在平坦处稀疏分布),而不是均匀分布。对大多数纹理而言,可用更少的三角形获得相同的细节。"
# AI Translated
msgid "Max edge"
@@ -28738,7 +34393,7 @@ msgstr "颜色细节"
# AI Translated
msgid "Triangle size where two colors meet. Each triangle prints in one filament, so a color edge can only be as sharp as the triangles along it - and nothing else refines there, since the surface is flat across a change of color. 0 turns it off."
-msgstr "两种颜色交界处的三角形尺寸。每个三角形只用一种耗材丝打印,因此颜色边界的锐利程度取决于沿边界的三角形 - 而由于颜色变化处的表面是平坦的,那里不会有其他细化。0 表示关闭。"
+msgstr "两种颜色交界处的三角形尺寸。每个三角形只用一种耗材丝打印,因此颜色边界的锐利程度取决于沿边界的三角形;而由于颜色变化处的表面是平坦的,那里不会有其他细化。0 表示关闭。"
# AI Translated
msgid "Triangle budget: set with Triangles, below."
@@ -28746,8 +34401,9 @@ msgstr "三角形预算:在下方的“三角形”中设置。"
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "预览:%1% 个三角形"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "预览:%1% 个三角形"
# AI Translated
msgid "Steps"
@@ -28755,7 +34411,7 @@ msgstr "次数"
# AI Translated
msgid "Splits every triangle of the model into four, this many times over. Each step quadruples the count - 3 turns 100 k triangles into 6.4 M - so prefer refining only the painted area unless you need the whole model finer."
-msgstr "将模型的每个三角形拆分为四个,重复此次数。每一次都会使数量变为四倍 - 3 次会把 10 万个三角形变成 640 万个 - 因此除非需要整个模型都更精细,否则请优先只细化绘制区域。"
+msgstr "将模型的每个三角形拆分为四个,重复此次数。每一次都会使数量变为四倍(3 次会把 10 万个三角形变成 640 万个),因此除非需要整个模型都更精细,否则请优先只细化绘制区域。"
# AI Translated
msgid "Hide preview"
@@ -28789,13 +34445,21 @@ msgstr "重新网格化"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "重建整个模型所用的三角形尺寸,单位为毫米。置换在均匀的网格上效果最好;这一步能把不均匀的导入模型变为均匀网格。"
+# AI Translated
+msgid "Before"
+msgstr "处理前"
+
+# AI Translated
+msgid "After"
+msgstr "处理后"
+
# AI Translated
msgid "Keep sharp edges"
msgstr "保留锐边"
# AI Translated
msgid "Holds hard edges and open borders in place while the rest is remeshed. Without it the remesher slides vertices along the surface and rounds every crisp edge off - a cube comes back with wobbly edges."
-msgstr "在重新网格化其余部分时,保持硬边和开放边界不动。否则重新网格化会让顶点沿表面滑动,把每条锐利的边都磨圆 - 立方体会变得边缘歪歪扭扭。"
+msgstr "在重新网格化其余部分时,保持硬边和开放边界不动。否则重新网格化会让顶点沿表面滑动,把每条锐利的边都磨圆,立方体会变得边缘歪歪扭扭。"
# AI Translated
msgid "How sharp a fold has to be, in degrees, before the remesher treats it as an edge worth keeping. Lower protects more of the model's shape; higher rebuilds more of it evenly."
@@ -28807,7 +34471,7 @@ msgstr "重新网格化"
# AI Translated
msgid "Rebuilds the whole model with triangles close to this edge length - splitting the big ones and merging the small ones - so displacement has an even density to work with. Replaces the geometry; your paint is carried onto the new triangles spatially, so it survives (already-baked relief is kept too)."
-msgstr "以接近此边长的三角形重建整个模型 - 拆分大的三角形、合并小的三角形 - 使置换有均匀的密度可用。会替换几何体;您的绘制会按空间位置转移到新三角形上,因此会被保留(已烘焙的起伏也会保留)。"
+msgstr "以接近此边长的三角形重建整个模型(拆分大的三角形、合并小的三角形),使置换有均匀的密度可用。会替换几何体;您的绘制会按空间位置转移到新三角形上,因此会被保留(已烘焙的起伏也会保留)。"
# AI Translated
msgid "Displace up to the border"
@@ -28856,7 +34520,7 @@ msgstr "立即平滑已烘焙的网格"
# AI Translated
msgid "Applies the smoothing above to the model itself, right now, within the painted area. For relief that is already baked in - anything not yet baked is smoothed by Bake."
-msgstr "立即将上述平滑应用于模型本身的绘制区域内。用于已烘焙的起伏 - 尚未烘焙的部分会在烘焙时平滑。"
+msgstr "立即将上述平滑应用于模型本身的绘制区域内。用于已烘焙的起伏;尚未烘焙的部分会在烘焙时平滑。"
# AI Translated
msgid "Experimental: classic bake pipeline"
@@ -28894,11 +34558,11 @@ msgstr "清理狭长三角形"
# AI Translated
msgid "Collapse the thin triangles refinement inherits from the model's own tessellation, before displacement samples them. A sliver's three corners land on three unrelated parts of the texture, which is what makes the relief look jagged."
-msgstr "在置换对纹理进行采样之前,合并细化过程从模型自身的三角剖分中继承下来的细长三角形。狭长三角形的三个角会落在纹理中三个互不相关的位置,这正是起伏看起来呈锯齿状的原因。"
+msgstr "在置换对纹理进行采样之前,合并细化过程从模型自身的三角剖分中继承下来的狭长三角形。狭长三角形的三个角会落在纹理中三个互不相关的位置,这正是起伏看起来呈锯齿状的原因。"
# AI Translated
msgid "On: the resolution follows the size of the model and the budget is left at its default. Untick to set both yourself - worth doing for a texture much finer or much coarser than the part it sits on."
-msgstr "开启:分辨率随模型尺寸确定,预算保持默认值。取消勾选可自行设置两者 - 当纹理比其所在零件精细或粗糙得多时,值得这样做。"
+msgstr "开启:分辨率随模型尺寸确定,预算保持默认值。取消勾选可自行设置两者;当纹理比其所在零件精细或粗糙得多时,值得这样做。"
# AI Translated
#, c-format, boost-format
@@ -28912,25 +34576,17 @@ msgstr "根据模型尺寸选择:%1$.2f mm 三角形,预算 %2% k。取消
# AI Translated
msgid "How fine the mesh is made under the paint, in millimetres. It has to be smaller than the detail you want out of the texture - a 0.5 mm groove needs triangles well under 0.5 mm. Smaller costs triangles fast: halving it needs four times as many, and once they no longer fit the budget the bake simplifies back down and the detail goes with it."
-msgstr "绘制区域下网格的精细程度,单位为毫米。它必须小于您希望从纹理中得到的细节 - 0.5 mm 的凹槽需要远小于 0.5 mm 的三角形。数值越小,三角形消耗增长越快:减半需要四倍的数量,一旦超出预算,烘焙就会重新简化,细节也随之丢失。"
+msgstr "绘制区域下网格的精细程度,单位为毫米。它必须小于您希望从纹理中得到的细节(0.5 mm 的凹槽需要远小于 0.5 mm 的三角形)。数值越小,三角形消耗增长越快:减半需要四倍的数量,一旦超出预算,烘焙就会重新简化,细节也随之丢失。"
# AI Translated
#, boost-format
msgid "Needs about %1% triangles, budget %2% - the bake will simplify back down and lose detail."
-msgstr "需要约 %1% 个三角形,预算为 %2% - 烘焙将重新简化并丢失细节。"
+msgstr "需要约 %1% 个三角形,预算为 %2%,烘焙将重新简化并丢失细节。"
# AI Translated
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "细化过程最多可向模型添加多少千个三角形。最不贴合的三角形总是优先拆分,因此即使用完全部预算,也是用在最明显的地方。如果起伏看起来仍然粗糙,请调高此值。"
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "停止烘焙。已完成的部分会保留在模型上,并且可以撤销。"
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "不烘焙并关闭工具。您的绘制、图层和设置都会保留在模型中。"
-
# AI Translated
msgid "Preparing..."
msgstr "正在准备..."
@@ -28941,7 +34597,7 @@ msgstr "正在烘焙..."
# AI Translated
msgid "Nothing is painted yet. The UV editor's seam tool is on, so strokes on the model mark seams instead of painting - turn it off in the pane to paint."
-msgstr "尚未进行任何绘制。UV 编辑器的切缝工具已开启,因此在模型上的笔画会标记切缝而不是绘制 - 请在面板中将其关闭后再绘制。"
+msgstr "尚未进行任何绘制。UV 编辑器的切缝工具已开启,因此在模型上的笔画会标记切缝而不是绘制,请在面板中将其关闭后再绘制。"
# AI Translated
msgid "Nothing is painted yet."
@@ -28953,7 +34609,15 @@ msgstr "通过移动现有的顶点,将绘制的高度图转换为真实的几
# AI Translated
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
-msgstr "将绘制的高度图转换为真实的几何体。网格会先被重新网格化为均匀密度,并在纹理弯折处进行细化,使细节有顶点可落 - 一步完成。"
+msgstr "将绘制的高度图转换为真实的几何体。网格会先被重新网格化为均匀密度,并在纹理弯折处进行细化,使细节有顶点可落,全部一步完成。"
+
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "停止烘焙。已完成的部分会保留在模型上,并且可以撤销。"
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "不烘焙并关闭工具。您的绘制、图层和设置都会保留在模型中。"
# AI Translated
#, boost-format
@@ -28961,29 +34625,37 @@ msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "模型:%1% 个三角形 - 烘焙会细化到上方的分辨率,直至达到预算"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "模型:%1% 个三角形,烘焙会细化到上方的分辨率,直至达到预算"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "烘焙会移动现有顶点,模型保持 %1% 个三角形"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "烘焙会移动现有顶点 - 模型保持 %1% 个三角形"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "烘焙结果最多约 %1% k 个三角形"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "烘焙结果最多约 %1% k 个三角形"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% 个图层未绘制,已跳过"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% 个图层未绘制,已跳过"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% 未绘制,已跳过"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% 未绘制,已跳过"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29001,6 +34673,10 @@ msgstr "纹理置换编辑"
msgid "Choose SLA archive:"
msgstr "选择 SLA 存档文件:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "SL1 / SL1S 归档文件"
+
# AI Translated
msgid "Import file"
msgstr "导入文件"
@@ -29171,6 +34847,34 @@ msgstr "耗材丝插件"
msgid "Printer plugins"
msgstr "打印机插件"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "此预设未使用任何插件功能"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "此预设使用的功能"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "功能配置(JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "插件配置"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "放弃此预设的覆盖配置,重新使用全局配置"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "恢复默认"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "无效的 JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "配置不是有效的 JSON。您的更改未保存。"
@@ -29190,10 +34894,6 @@ msgstr ""
"\n"
"这将放弃该预设的覆盖设置,并使用全局配置。"
-# AI Translated
-msgid "Restore defaults"
-msgstr "恢复默认"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "正在使用全局配置。请保存预设以使其持久生效。"
@@ -29219,10 +34919,6 @@ msgstr "取消订阅"
msgid "Overwrite Plugin"
msgstr "覆盖插件"
-# AI Translated
-msgid "Show in folder"
-msgstr "在文件夹中显示"
-
# AI Translated
msgid "Reinstall"
msgstr "重新安装"
@@ -29231,6 +34927,10 @@ msgstr "重新安装"
msgid "Delete cache and reload"
msgstr "删除缓存并重新加载"
+# AI Translated
+msgid "No description."
+msgstr "无描述。"
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "请选择 .py 或 .whl 插件包。"
@@ -29263,6 +34963,292 @@ msgstr "正在安装插件"
msgid "Installed \"%s\"."
msgstr "已安装“%s”。"
+# AI Translated
+msgid "Search plugins"
+msgstr "搜索插件"
+
+# AI Translated
+msgid "Clear search"
+msgstr "清除搜索"
+
+# AI Translated
+msgid "Match case"
+msgstr "区分大小写"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "全字匹配"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "更多插件安装选项"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "安装插件"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "安装本地插件"
+
+# AI Translated
+msgid "Activate"
+msgstr "激活"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "按名称排序"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "按版本排序"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "插件版本"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "按来源排序"
+
+# AI Translated
+msgid "Source"
+msgstr "来源"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "按状态排序"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "状态"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "拖动以调整大小;双击以重置"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "调整插件列表大小"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "插件详情"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "插件信息"
+
+# AI Translated
+msgid "Description"
+msgstr "描述"
+
+# AI Translated
+msgid "Config"
+msgstr "配置"
+
+# AI Translated
+msgid "Changelog"
+msgstr "更新日志"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "诊断"
+
+# AI Translated
+msgid "Types"
+msgstr "类型"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "已安装版本"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "最新版本"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "更新到最新版本"
+
+# AI Translated
+msgid "No description available"
+msgstr "暂无描述"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "选择一个插件以配置其功能"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "可配置的功能"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "放弃为此功能保存的设置,恢复插件的默认配置"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "插件更新日志"
+
+# AI Translated
+msgid "Date"
+msgstr "日期"
+
+# AI Translated
+msgid "Changes"
+msgstr "更新内容"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "暂无更新日志"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "未检测到问题"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "未找到插件"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "没有与“%s”匹配的插件"
+
+# AI Translated
+msgid "Mine"
+msgstr "我的"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "已订阅"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "孤立"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "本地"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "已启用部分插件功能"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "收起 %s 的功能"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "展开 %s 的功能"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "收起功能"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "展开功能"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "在浏览器中打开此插件"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "功能:%s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "功能"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "运行“%s”"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "启用 %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "未获更新授权"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "正在加载插件…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "此插件未提供任何功能"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "激活此插件后即可配置其功能"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "点击此处 前往 OrcaCloud 查看"
+
+# AI Translated
+msgid "Activated"
+msgstr "已激活"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "运行时错误"
+
+# AI Translated
+msgid "Inactive"
+msgstr "未激活"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "此插件已激活,可以使用。"
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "此插件仍在加载中。"
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "此插件存在错误,修复之前无法使用。"
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "此插件已加载,但有功能报告了错误。"
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "此插件未激活。激活后即可安装或加载。"
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "选择一个插件以查看其状态和详细信息。"
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "孤立:此插件已不再订阅,或已无法在 OrcaCloud 中获取。本地副本仍保持安装,可以继续使用。"
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "插件有新版本可用。"
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "此插件未获更新授权,无法获取云端更新。"
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
@@ -29479,6 +35465,56 @@ msgstr "重新加载插件失败。"
msgid "Reloaded \"%s\"."
msgstr "已重新加载“%s”。"
+# AI Translated
+msgid "Printer Connection"
+msgstr "打印机连接"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "请先设置打印机连接以查看设备。"
+
+msgid "No model information"
+msgstr "该模型没有相关信息"
+
+msgid "Edit Project Info"
+msgstr "编辑项目信息"
+
+msgid "Model Information"
+msgstr "模型信息"
+
+msgid "Accessories"
+msgstr "附件"
+
+msgid "Profile Information"
+msgstr "配置信息"
+
+msgid "Model name"
+msgstr "模型名称"
+
+msgid "Created by"
+msgstr "创作"
+
+msgid "Remixed by"
+msgstr "修改"
+
+msgid "Shared by"
+msgstr "分享"
+
+msgid "Model description"
+msgstr "模型介绍"
+
+msgid "BOM"
+msgstr "物料清单"
+
+msgid "Profile name"
+msgstr "配置名称"
+
+msgid "Profile Author"
+msgstr "配置作者"
+
+msgid "Profile description"
+msgstr "配置介绍"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "冲刷模式设置"
@@ -29503,6 +35539,19 @@ msgstr "减少冲刷浪费并加快打印。可能导致轻微混色或细小的
msgid "Terminal"
msgstr "终端"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... 或 uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "插件终端已就绪。"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "进程已退出,退出代码:%s"
+
# AI Translated
msgid "A command is already running."
msgstr "已有命令正在运行。"
@@ -29549,8 +35598,9 @@ msgstr "新混合耗材丝"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "项目最多支持 %d 种耗材丝。多余的耗材丝将被丢弃。"
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "项目最多支持 %d 种耗材丝。多余的耗材丝将被丢弃。"
# AI Translated
msgid "Import Model"
@@ -29586,7 +35636,7 @@ msgstr "仅自动确定最佳颜色数量,并重新计算耗材丝映射"
# AI Translated
msgid "Convert texture to painting using the specified color count and smooth level"
-msgstr "使用指定的颜色数量和平滑等级将纹理转换为颜色绘制"
+msgstr "使用指定的颜色数量和平滑等级将纹理转换为涂色"
# AI Translated
msgid "Reminder: parameters changed, click Apply to take effect"
@@ -29637,8 +35687,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "计算失败。请调整参数后重试。"
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "网格存在非流形几何体或开放边界。您可以按原样导入,或在导入前使用 Windows 3D 修复服务进行修复。"
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "网格存在非流形几何体或开放边界。您可以按原样导入,或在导入前进行修复。"
# AI Translated
msgid "Mesh repair"
@@ -29652,21 +35702,21 @@ msgstr "不修复直接导入"
msgid "Repair and import"
msgstr "修复并导入"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "请注意,该网格存在非流形几何体或开放边界。"
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "网格问题"
-
# AI Translated
msgid "The selected image is empty."
msgstr "所选图像为空。"
# AI Translated
msgid "Failed to prepare the texture for use."
-msgstr "准备纹理以供使用失败。"
+msgstr "纹理准备失败,无法使用。"
+
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "无法创建用于存放导入纹理的文件夹。"
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "保存导入的纹理失败。"
# AI Translated
msgid "Only your own imported textures can be removed."
@@ -29676,25 +35726,17 @@ msgstr "只能移除您自己导入的纹理。"
msgid "Could not delete the texture file."
msgstr "无法删除纹理文件。"
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "无法创建用于存放导入纹理的文件夹。"
-
# AI Translated
msgid "Could not load the selected image."
msgstr "无法加载所选图像。"
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "保存导入的纹理失败。"
-
# AI Translated
msgid "Could not read the texture file."
msgstr "无法读取纹理文件。"
# AI Translated
msgid "Projection frame - drag over the model, then Apply"
-msgstr "投影框 - 拖动到模型上,然后单击“应用”"
+msgstr "投影框:拖动到模型上,然后单击“应用”"
# AI Translated
msgid "Moving island | release to drop, Esc to cancel"
@@ -29731,8 +35773,9 @@ msgstr "将纹理图层的映射方式选为“展开”,即可在此编辑其
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "已选择 %d 个顶点 | 拖动 = 一起移动,Shift/Ctrl 单击 = 添加/移除"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "已选择 %d 个顶点 | 拖动 = 一起移动,Shift/Ctrl 单击 = 添加/移除"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29740,8 +35783,9 @@ msgstr "顶点模式:拖动顶点以调整形状 | Shift/Ctrl 单击 = 多
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "已选择 %d 条边 | 拖动 = 一起移动,Shift/Ctrl 单击 = 添加/移除"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "已选择 %d 条边 | 拖动 = 一起移动,Shift/Ctrl 单击 = 添加/移除"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29749,8 +35793,9 @@ msgstr "边模式:拖动岛的边以调整形状 | Shift/Ctrl 单击 = 多
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "已选择 %d 个岛 | 拖动 = 一起移动,Shift/Ctrl 单击 = 添加/移除,R/S = 旋转/缩放主岛"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "已选择 %d 个 UV 岛 | 拖动 = 一起移动,Shift/Ctrl 单击 = 添加/移除,R/S = 旋转/缩放主岛"
# AI Translated
#, c-format, boost-format
@@ -29767,19 +35812,23 @@ msgstr " | 吸附已开启"
# AI Translated
msgid "Change texture - choose another one from the texture library"
-msgstr "更换纹理 - 从纹理库中选择另一个纹理"
+msgstr "更换纹理:从纹理库中选择另一个纹理"
+
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "当前图层的平铺尺寸,即纹理每重复一次在模型上覆盖的范围。画布以平铺为单位,一个网格单元即一次重复。可在图层设置的“平铺尺寸”中修改。"
# AI Translated
msgid "Height map - show the layer's texture under the islands"
-msgstr "高度图 - 在岛下方显示图层的纹理"
+msgstr "高度图:在岛下方显示图层的纹理"
# AI Translated
msgid "Checker - a test grid; squares stay square where the unwrap does not stretch"
-msgstr "棋盘格 - 测试网格;展开没有拉伸的地方,方格保持正方形"
+msgstr "棋盘格:测试网格;展开没有拉伸的地方,方格保持正方形"
# AI Translated
msgid "Distortion - color each island by how much the unwrap stretches it"
-msgstr "畸变 - 按展开对每个岛的拉伸程度为其着色"
+msgstr "畸变:按展开对每个岛的拉伸程度为其着色"
# AI Translated
msgid "Unwrap"
@@ -29795,63 +35844,71 @@ msgstr "比此角度更锐利的边会被切开,其两侧的部分分别展平
# AI Translated
msgid "Connect islands"
-msgstr "连接岛"
+msgstr "连接 UV 岛"
# AI Translated
msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfolded next to each other (a cube becomes a joined net rather than six loose squares). They stay separate islands, so you can still move any of them by hand afterwards."
msgstr "将展开布局为相连的展开图:共享边的块会相邻展开(立方体会变成相连的展开图,而不是六个分散的正方形)。它们仍是独立的岛,因此之后仍可手动移动其中任何一个。"
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "岛 - 移动、旋转和缩放整个岛"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "岛:以整个 UV 岛为单位操作。单击选中一个岛,然后拖动可移动,右键拖动可旋转,也可按 R 或 S 后用鼠标旋转或缩放(单击或按 Enter 确认,按 Esc 取消)。"
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "顶点 - 拖动顶点以调整形状;按住 Shift/Ctrl 可多选"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "顶点:拖动顶点,手动调整 UV 岛的形状;按住 Shift 可加选,按住 Ctrl 可切换单个顶点的选中状态。"
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "边 - 拖动边以调整形状;按住 Shift/Ctrl 可多选"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "边:拖动边,手动调整 UV 岛的形状;按住 Shift 可加选,按住 Ctrl 可切换单条边的选中状态。"
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
-msgstr "标记切缝 - 单击模型上的边,沿其切开展开。光标下的边以黄色高亮;单击可将其标记为红色,再次单击红色边可取消标记。开启此功能时会暂停绘制。"
+msgstr "标记切缝:单击模型上的边,沿其切开展开。光标下的边以黄色高亮;单击可将其标记为红色,再次单击红色边可取消标记。开启此功能时会暂停绘制。"
# AI Translated
msgid "Path - instead of clicking every edge, click a start point and then an end point: the whole shortest path between them is seamed at once. Available while marking seams."
-msgstr "路径 - 无需逐条单击边,只需单击起点和终点:两点之间的整条最短路径会一次性标记为切缝。在标记切缝时可用。"
+msgstr "路径:无需逐条单击边,只需单击起点和终点,两点之间的整条最短路径就会一次性标记为切缝。在标记切缝时可用。"
# AI Translated
msgid "Clear seams - remove every seam marked on this layer"
-msgstr "清除切缝 - 移除此图层上标记的所有切缝"
+msgstr "清除切缝:移除此图层上标记的所有切缝"
# AI Translated
msgid "Average scale - give every island the same texel density"
-msgstr "平均缩放 - 使每个岛具有相同的纹素密度"
+msgstr "平均缩放:使每个岛具有相同的纹素密度"
# AI Translated
msgid "Cut - split the selected island across its long axis"
-msgstr "切开 - 沿所选岛的长轴将其拆分"
+msgstr "切开:沿所选岛的长轴将其拆分"
# AI Translated
msgid "Join - unfold the selected island onto its nearest neighbour along their shared edge"
-msgstr "拼接 - 沿共享边将所选岛展开到其最近的相邻岛上"
+msgstr "拼接:沿共享边将所选岛展开到其最近的相邻岛上"
# AI Translated
msgid "Unjoin - send the selected island back to its own packed position"
-msgstr "取消拼接 - 将所选岛送回其自身的排布位置"
+msgstr "取消拼接:将所选岛送回其自身的排布位置"
# AI Translated
msgid "Clear UV edits - discard all manual vertex/edge moves and return the unwrap to its automatic shape"
-msgstr "清除 UV 编辑 - 放弃所有手动的顶点/边移动,使展开恢复为自动生成的形状"
+msgstr "清除 UV 编辑:放弃所有手动的顶点/边移动,使展开恢复为自动生成的形状"
# AI Translated
msgid "Snap - stick islands together when dragging one against another"
-msgstr "吸附 - 将一个岛拖向另一个岛时使它们贴合在一起"
+msgstr "吸附:将一个岛拖向另一个岛时使它们贴合在一起"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "框显所有岛 (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"全部适配视图,使所有 UV 岛都显示在视图内(Home 或 F)。\n"
+"在画布其他位置:滚动滚轮以光标为中心缩放;按住中键拖动或拖动空白处可平移。"
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "当前选中的内容,以及拖动时移动、旋转或缩放的精确数值。"
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -29862,27 +35919,80 @@ msgstr "没有使用“展开”映射的图层"
msgid "%.1f mm tile"
msgstr "%.1f mm 平铺"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "此面板对应当前纹理图层,该图层的映射必须为“展开 (LSCM)”。请添加一个图层,并将其映射设为“展开”。"
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
-msgstr "已过期 - 自生成此展开以来,绘制、切缝或切缝角度已更改。按下以重新展开。"
+msgstr "已过期:自生成此展开以来,绘制、切缝或切缝角度已更改。按下以重新展开。"
# AI Translated
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
-msgstr "将绘制区域展平为 UV 岛。仅在您按下此按钮时才会计算,而不是每次编辑都计算 - 因此请先绘制、更改切缝角度或标记切缝,然后再按“展开”。"
+msgstr "将绘制区域展平为 UV 岛。仅在您按下此按钮时才会计算,而不是每次编辑都计算。因此请先绘制、更改切缝角度或标记切缝,然后再按“展开”。"
+
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "请先开启“标记切缝”;使用“路径”可以更快地标记切缝。"
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "此图层上未标记任何切缝。"
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "尚未手动调整任何 UV 岛的形状,没有可放弃的修改。"
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d 个岛,%s 个面"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d 个 UV 岛"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s 个面"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "绘制区域的展开结果:切分出的独立块数(在切缝处及比切缝角度更尖锐的边处切开),以及这些块包含的三角形总数。"
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "请先单击“展开”,目前还没有可操作的 UV 岛。"
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "请先在岛模式下单击画布上的一个 UV 岛。"
+
+# AI Translated
+# Needs human review: Short badge on a recent project (published 3MF); source asks for about three letters, check 已发布 fits the badge.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "已发布"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "未登录"
+
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "没有发现 Bambu 网络插件,请下载 并安装。"
+
+msgid "Create new project"
+msgstr "创建一个新项目"
+
+msgid "Recently opened"
+msgstr "近期打开文件"
+
+msgid "Open Containing Folder"
+msgstr "打开所在的文件夹"
# AI Translated
msgid "Forward"
msgstr "前进"
-# AI Translated
-msgid "Tools"
-msgstr "工具"
-
# AI Translated
msgid "View Source"
msgstr "查看源代码"
@@ -29954,6 +36064,75 @@ msgstr "将 %1% 装载到%2%"
msgid "Load %s"
msgstr "装载 %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "无法启用打印机代理“%1%”:代理 ID“%2%”已被插件“%4%”的功能“%3%”注册。"
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "无法启用打印机代理“%1%”:代理 ID“%2%”已被“%3%”注册。"
+
+# AI Translated
+msgid "File uploaded"
+msgstr "文件已上传"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "正在上传 G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "正在启动打印..."
+
+# AI Translated
+msgid "Print started"
+msgstr "打印已开始"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "正在上传..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "未指定网络库版本"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "未找到网络库"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "加载网络库失败"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "网络库加载失败"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "旧版插件系列。需要较新插件支持的功能(例如设备错误对话框中的打印失败快照)不可用。"
+
+# AI Translated
+msgid "unknown name"
+msgstr "未知名称"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"插件“%s”请求读取文件系统中的以下位置:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "插件权限"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -29968,36 +36147,48 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
"插件“%s”正在请求读取以下文件:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
"插件“%s”正在请求读写以下文件:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
"插件“%s”正在请求创建以下文件:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
"插件“%s”正在请求删除以下文件:\n"
"%s"
@@ -30022,10 +36213,27 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"插件“%s”正在请求运行以下命令:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "插件“%s”正在请求创建线程的权限。"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"插件“%s”正在请求运行以下命令:\n"
+"插件“%s”正在请求将正在运行的应用程序替换为:\n"
"%s"
# AI Translated
@@ -30037,6 +36245,46 @@ msgstr "插件“%s”正在请求 Python 审计事件“%s”的权限。"
msgid "Plugin permission request"
msgstr "插件权限请求"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "该预设存储的插件功能配置 JSON 无效。"
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "该预设的插件功能配置不是数组,无法编辑。"
+
+# AI Translated
+msgid "Printer connection"
+msgstr "打印机连接"
+
+# AI Translated
+msgid "Pages"
+msgstr "页面"
+
+# AI Translated
+msgid "Analysis"
+msgstr "分析"
+
+# AI Translated
+msgid "Importer"
+msgstr "导入器"
+
+# AI Translated
+msgid "Exporter"
+msgstr "导出器"
+
+# AI Translated
+msgid "Visualization"
+msgstr "可视化"
+
+# AI Translated
+msgid "Script"
+msgstr "脚本"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "切片流水线"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "插件的配置界面为空。正在显示默认编辑器。"
@@ -30059,8 +36307,345 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "无法将配置写入磁盘。未作任何更改。"
# AI Translated
-msgid "Plugin installation failed"
-msgstr "插件安装失败"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "插件安装失败:%1%"
+
+# AI Translated
+# Needs human review: Confirm "catalog" means the plugin manager's registry, not a folder.
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%:在插件列表中未找到已安装的插件。"
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "云端插件标识缺少 UUID。"
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "订阅云端插件失败,详情请查看日志。"
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "只能取消订阅云端插件。"
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "取消订阅插件失败,详情请查看日志。"
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "获取插件下载地址失败(结果 %1%)。"
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "您无权下载此云端插件。"
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "没有适用于此操作系统的插件包。"
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "未找到所选的插件版本。"
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "未找到插件版本 %1%。"
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "未找到云端插件。"
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "未找到云端插件下载:%1%。"
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "未找到云端插件下载。"
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "此插件没有可用的下载地址。请查看日志了解错误信息。"
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "下载插件失败:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "插件下载失败,HTTP 状态码 %1%。"
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "插件下载返回了空数据。"
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "无法为插件下载创建临时文件。"
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "无法将插件数据写入临时文件。"
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "无法解析插件文件夹:%1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "删除插件文件夹 %1% 失败:%2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "插件目录不存在:%1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "插件目录包含多个 .py 文件:%1% 和 %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "插件目录包含多个 .whl 文件:%1% 和 %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "插件目录同时包含 .py 和 .whl 入口文件"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "插件目录不包含 .py 或 .whl 入口文件"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "切片流水线插件“%1%”出错:%2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "插件包必须是 .py 或 .whl 文件,实际为:%1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "提取插件 .whl 依赖项 %1% 失败:%2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "无法将 .whl 依赖项添加到 sys.path:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Python 解释器未初始化:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "插件清单无效:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "安装插件依赖项失败:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "加载插件模块失败:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "插件注册失败:%1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "插件模块未注册任何功能"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "插件为类型 %2% 声明了重复的功能“%1%”"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "插件功能实例化失败:%1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "插件功能实例化失败"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "插件 on_load 失败:%1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "插件 on_load 失败"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "插件包不是文件:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "云端插件 UUID 不是有效的标识符:%1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "创建插件目录 %1% 失败:%2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "备份现有插件 %1% 失败:%2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "复制插件文件到 %1% 失败:%2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "写入插件安装状态失败:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "插件包已加载:%1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "类型 %1% 与名称“%2%”的功能冲突"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "发现重复的插件标识:%1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "插件仍在加载中"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "插件无效:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "未找到插件:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "插件加载出现意外失败:%1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "插件加载出现意外失败"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "未找到插件清单:%1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "从云端获取插件失败。详情请查看日志。"
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "请登录 OrcaCloud 以安装此插件。"
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud 未返回已订阅的云端插件。"
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "下载云端插件失败。"
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "安装云端插件失败。"
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "只能更新云端插件。"
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "此插件没有可用更新。"
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "拒绝删除已知插件目录之外的插件。"
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "拒绝更新已知插件目录之外的插件。"
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "无法保留为本地插件:本地插件标识已存在:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "更新插件安装状态失败:%1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "无法取消订阅您自己的插件。"
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "只能删除并取消订阅云端插件。"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "无法取消订阅您自己的插件。请使用“删除”来移除本地文件。"
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "插件文件系统读取权限请求被拒绝"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30094,6 +36679,10 @@ msgstr "两侧拉伸融合失败"
msgid "imported regions produced no extrudable geometry"
msgstr "导入的区域未生成可拉伸的几何体"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "轮廓跨越了旋转轴,必须位于轴的一侧"
+
# AI Translated
msgid "Failed to revolve"
msgstr "旋转失败"
@@ -30130,6 +36719,10 @@ msgstr "凹槽面生成失败"
msgid "Pocket cut failed"
msgstr "凹槽切除失败"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "轮廓自相交或折返,因此无法围成单一区域"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "草图中没有闭合环"
@@ -30162,10 +36755,26 @@ msgstr "mesh_to_brep:网格中没有三角形"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep:所有三角形均因退化而被剔除(请尝试更小的容差)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "圆角半径必须大于 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "该组中没有可倒圆角的边"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "圆角半径对于此几何体过大"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "倒角距离必须大于 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "该组中没有可倒角的边"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "倒角距离对于此几何体过大"
@@ -30178,6 +36787,153 @@ msgstr "apply_fillet:OCCT 圆角失败"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer:OCCT 倒角失败"
+# AI Translated
+msgid "empty component list"
+msgstr "组分列表为空"
+
+# AI Translated
+msgid "empty component index"
+msgstr "组分索引为空"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "组分索引必须 >= 1(当前为 %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "无效的组分索引“%1%”"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "至少需要 2 个组分(当前为 %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "重复的组分索引 %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "比例值为空"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "比例必须为正数(当前为 %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "无效的比例“%1%”"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "比例数量必须与组分数量一致:应为 %1%,当前为 %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "应为两个以逗号分隔的浮点数,例如“0.10,0.90”"
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "起始和结束比例必须在 (0, 1) 范围内"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "数组大小 %1% 与耗材丝槽位数量 %2% 不一致"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "指定混合耗材丝参数时必须设置"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "槽位 %1%:%2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "槽位 %1%:组分 %2% 超出范围(物理耗材丝索引上限为 %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "槽位 %1%:不能将自身引用为组分"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "槽位 %1%:组分 %2% 引用了混合耗材丝槽位"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "槽位 %1%:渐变需要恰好 2 个组分"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "槽位 %1%:曲线无效(至少需要 2 个有效控制点)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "加载配置文件“%1%”失败:%2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "不是由 %1% 生成的 G-code 文件。"
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "未找到配置标签“%1%”"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "从 %1% 提取的配置值数量异常偏少:%2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"加载 STEP 文件失败。\n"
+"无法打开文件进行读取。\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "导入 SVG 失败:无法打开 SVG。"
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "导入 SVG 失败:无法解析导入的 SVG 数据。"
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "自定义 G-code 报告 z_retracted 为负。"
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "自定义 G-code 报告 z_restart_extra 为负。"
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "复制目录 %1% 到 %2% 失败:%3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "身份验证完成"
@@ -30339,21 +37095,23 @@ msgstr ""
"三明治模式\n"
"您知道吗?如果您的模型没有非常陡峭的悬垂,您可以使用三明治模式(内-外-内)来提高精度和层一致性。"
+# AI Translated
#: resources/data/hints.ini: [hint:Chamber temperature]
msgid ""
"Chamber temperature\n"
"Did you know that OrcaSlicer supports chamber temperature?"
msgstr ""
-"仓温\n"
-"您知道吗?OrcaSlicer支持仓温。"
+"腔体温度\n"
+"您知道吗?OrcaSlicer支持腔体温度。"
+# AI Translated
#: resources/data/hints.ini: [hint:Calibration]
msgid ""
"Calibration\n"
"Did you know that calibrating your printer can do wonders? Check out our beloved calibration solution in OrcaSlicer."
msgstr ""
"校准\n"
-"您知道吗?校准您的打印机可以带来奇迹?在OrcaSlicer中查看我们的备受欢迎的校准解决方案。"
+"您知道吗?校准打印机能带来意想不到的效果!快来试试OrcaSlicer中广受好评的校准功能。"
#: resources/data/hints.ini: [hint:Auxiliary fan]
msgid ""
@@ -30363,21 +37121,23 @@ msgstr ""
"辅助风扇\n"
"您知道吗?OrcaSlicer支持辅助部件冷却风扇。"
+# AI Translated
#: resources/data/hints.ini: [hint:Air filtration]
msgid ""
"Air filtration/Exhaust Fan\n"
"Did you know that OrcaSlicer can support Air filtration/Exhaust Fan?"
msgstr ""
-"空气过滤/排气扇\n"
-"您知道吗?OrcaSlicer可以支持空气过滤/排气扇。"
+"空气过滤/排气风扇\n"
+"您知道吗?OrcaSlicer可以支持空气过滤/排气风扇。"
+# AI Translated
#: resources/data/hints.ini: [hint:G-code window]
msgid ""
"G-code window\n"
"You can turn on/off the G-code window by pressing the C key."
msgstr ""
-"G-code预览\n"
-"您可以通过按下C 键打开/关闭G-code预览窗口。"
+"G-code窗口\n"
+"您可以通过按下C 键打开/关闭G-code窗口。"
#: resources/data/hints.ini: [hint:Switch workspaces]
msgid ""
@@ -30427,13 +37187,14 @@ msgstr ""
"延时摄影\n"
"您知道吗?您可以每次打印时生成一段延时摄影。"
+# AI Translated
#: resources/data/hints.ini: [hint:Auto-Arrange]
msgid ""
"Auto-Arrange\n"
"Did you know that you can auto-arrange all the objects in your project?"
msgstr ""
-"自动摆盘\n"
-"您知道吗?您可以自动排列项目中的所有对象。"
+"自动摆放\n"
+"您知道吗?您可以自动摆放项目中的所有对象。"
#: resources/data/hints.ini: [hint:Auto-Orient]
msgid ""
@@ -30443,29 +37204,32 @@ msgstr ""
"自动朝向\n"
"您知道吗,您只需单击鼠标,即可将对象旋转到适合的打印方向。"
+# AI Translated
#: resources/data/hints.ini: [hint:Lay on Face]
msgid ""
"Lay on Face\n"
"Did you know that you can quickly orient a model so that one of its faces sits on the print bed? Select the \"Place on face\" function or press the F key."
msgstr ""
-"放置在面部\n"
-"您知道吗,您可以快速指定模型的底面,使其位于打印床上。选择“放置在面部”功能或按F 键。"
+"选择底面\n"
+"您知道吗?您可以快速调整模型朝向,让它的某个面贴合热床。使用“选择底面”功能或按F 键。"
+# AI Translated
#: resources/data/hints.ini: [hint:Object List]
msgid ""
"Object List\n"
"Did you know that you can view all objects/parts in a list and change settings for each object/part?"
msgstr ""
"对象列表\n"
-"您知道对象列表吗?您可以在其中的查看所有对象/部件,并更改每个对象/部件的设置。"
+"您知道吗?您可以在列表中查看所有对象/零件,并更改每个对象/零件的设置。"
+# AI Translated
#: resources/data/hints.ini: [hint:Search Functionality]
msgid ""
"Search Functionality\n"
"Did you know that you use the Search tool to quickly find a specific Orca Slicer setting?"
msgstr ""
"搜索功能\n"
-"您知道吗?您可以使用搜索工具快速查找特定的逆戟鲸设置。"
+"您知道吗?您可以使用搜索工具快速查找Orca Slicer的特定设置。"
#: resources/data/hints.ini: [hint:Simplify Model]
msgid ""
@@ -30475,13 +37239,14 @@ msgstr ""
"简化模型\n"
"您知道吗?您可以使用简化三角面片功能减少网格中的三角形数量。右键单击模型,然后选择简化模型。"
+# AI Translated
#: resources/data/hints.ini: [hint:Slicing Parameter Table]
msgid ""
"Slicing Parameter Table\n"
"Did you know that you can view all objects/parts on a table and change settings for each object/part?"
msgstr ""
"参数表格\n"
-"您知道吗?您可以参数表格上的所有对象/部件,并更改每个对象/部件的设置。"
+"您知道吗?您可以在参数表格中查看所有对象/零件,并更改每个对象/零件的设置。"
#: resources/data/hints.ini: [hint:Split to Objects/Parts]
msgid ""
@@ -30491,14 +37256,16 @@ msgstr ""
"分割成对象/零件\n"
"您知道吗,您可以把一个大对象分割成多个小对象/零件以便着色或打印。"
+# AI Translated
#: resources/data/hints.ini: [hint:Subtract a Part]
msgid ""
"Subtract a Part\n"
"Did you know that you can subtract one mesh from another using the Negative part modifier? That way you can, for example, create easily resizable holes directly in Orca Slicer."
msgstr ""
-"减去一个部分\n"
-"您知道吗,您可以使用负零件修改器从一个网格中减去另一个网格。这样,您就可以直接在逆戟鲸中创建易于调整大小的孔。"
+"减去零件\n"
+"您知道吗,您可以使用负零件修改器从一个网格中减去另一个网格。这样,您就可以直接在Orca Slicer中创建易于调整大小的孔。"
+# AI Translated
#: resources/data/hints.ini: [hint:STEP]
msgid ""
"STEP\n"
@@ -30507,23 +37274,25 @@ msgid ""
msgstr ""
"STEP文件\n"
"您知道吗,通过切片STEP文件而不是STL文件可以提高打印质量。\n"
-"逆戟鲸支持切片STEP文件,提供比低分辨率STL更平滑的结果。试试看!"
+"Orca Slicer支持切片STEP文件,提供比低分辨率STL更平滑的结果。试试看!"
+# AI Translated
#: resources/data/hints.ini: [hint:Z seam location]
msgid ""
"Z seam location\n"
"Did you know that you can customize the location of the Z seam, and even paint it on your print, to have it in a less visible location? This improves the overall look of your model. Check it out!"
msgstr ""
"Z接缝位置\n"
-"您知道吗,您可以自定义Z接缝的位置,甚至可以将其绘制在打印上,使其位于不太可见的位置。这样可以改善模型的整体外观。试试看!"
+"您知道吗,您可以自定义Z接缝的位置,甚至可以直接在模型上绘制接缝,使其位于不太明显的位置。这样可以改善模型的整体外观。试试看!"
+# AI Translated
#: resources/data/hints.ini: [hint:Fine-tuning for flow rate]
msgid ""
"Fine-tuning for flow rate\n"
"Did you know that flow rate can be fine-tuned for even better-looking prints? Depending on the material, you can improve the overall finish of the printed model by doing some fine-tuning."
msgstr ""
"流量微调\n"
-"你知道吗,您可以微调流量,以获得更好看的打印效果。根据材料的不同,可以通过进行一些微调来提高打印模型的整体光洁度。"
+"您知道吗,您可以微调流量,以获得更好看的打印效果。根据材料的不同,可以通过一些微调来提高打印模型的整体光洁度。"
#: resources/data/hints.ini: [hint:Split your prints into plates]
msgid ""
@@ -30533,38 +37302,42 @@ msgstr ""
"分盘打印\n"
"您知道吗,您可以把一个有很多零件的模型安排到多个独立的分盘,然后打印出来,这将简化对所有零件的管理。"
+# AI Translated
#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer
#: Height]
msgid ""
"Speed up your print with Adaptive Layer Height\n"
"Did you know that you can print a model even faster by using the Adaptive Layer Height option? Check it out!"
msgstr ""
-"自适应层高度加速打印\n"
-"您知道吗,您可以使用“自适应层高度”选项可以更快地打印模型。试试看!"
+"使用自适应层高加速打印\n"
+"您知道吗,您可以使用“自适应层高”选项更快地打印模型。试试看!"
+# AI Translated
#: resources/data/hints.ini: [hint:Support painting]
msgid ""
"Support painting\n"
"Did you know that you can paint the location of your supports? This feature makes it easy to place the support material only on the sections of the model that actually need it."
msgstr ""
"绘制支撑\n"
-"您知道吗,您可以手动绘制添加/屏蔽支撑的位置,此功能使仅将支撑材料放置在实际需要的模型截面上变得容易。"
+"您知道吗,您可以手动绘制添加/屏蔽支撑的位置。此功能可以让您轻松地只在模型真正需要的部位放置支撑材料。"
+# AI Translated
#: resources/data/hints.ini: [hint:Different types of supports]
msgid ""
"Different types of supports\n"
"Did you know that you can choose from multiple types of supports? Tree supports work great for organic models while saving filament and improving print speed. Check them out!"
msgstr ""
"支撑类型\n"
-"您知道吗,有多种可选的支撑类型,树状支撑非常适合人物/动物模型,同时可以节耗材并提高打印速度。试试看!"
+"您知道吗,有多种可选的支撑类型,树状支撑非常适合人物/动物模型,同时可以节省耗材丝并提高打印速度。试试看!"
+# AI Translated
#: resources/data/hints.ini: [hint:Printing Silk Filament]
msgid ""
"Printing Silk Filament\n"
"Did you know that Silk filament needs special consideration to print successfully? A higher temperature and lower speed are always recommended for the best results."
msgstr ""
-"打印丝绸耗材\n"
-"你知道吗,丝绸耗材需要特别考虑才能成功打印。为了获得最佳效果,通常建议使用较高的温度和较低的速度。"
+"打印丝绸耗材丝\n"
+"您知道吗,丝绸耗材丝需要特别注意才能打印成功。为了获得最佳效果,通常建议使用较高的温度和较低的速度。"
#: resources/data/hints.ini: [hint:Brim for better adhesion]
msgid ""
@@ -30582,30 +37355,34 @@ msgstr ""
"为多个对象设置参数\n"
"您知道吗,可以同时为所有选定对象设置切片参数。"
+# AI Translated
#: resources/data/hints.ini: [hint:Stack objects]
msgid ""
"Stack objects\n"
"Did you know that you can stack objects as a whole one?"
msgstr ""
-"组合物体\n"
-"你知道吗?你可以把多个对象组合为一个整体。"
+"组合对象\n"
+"您知道吗?您可以把多个对象组合为一个整体。"
+# AI Translated
#: resources/data/hints.ini: [hint:Flush into support/objects/infill]
msgid ""
"Flush into support/objects/infill\n"
"Did you know that you can reduce wasted filament by flushing it into support/objects/infill during filament changes?"
msgstr ""
"冲刷到支撑/对象/填充中\n"
-"你知道吗?你可以在换料时将它们冲入支撑/对象/填充,以节省浪费的料丝。"
+"您知道吗?您可以在换料时将耗材丝冲刷到支撑/对象/填充中,以减少耗材丝浪费。"
+# AI Translated
#: resources/data/hints.ini: [hint:Improve strength]
msgid ""
"Improve strength\n"
"Did you know that you can use more wall loops and higher sparse infill density to improve the strength of the model?"
msgstr ""
"提高强度\n"
-"你知道吗?你可以使用更多的墙层数和更高的疏散填充密度来提高模型的强度。"
+"您知道吗?您可以使用更多的墙层数和更高的稀疏填充密度来提高模型的强度。"
+# AI Translated
#: resources/data/hints.ini: [hint:When do you need to print with the printer
#: door opened]
msgid ""
@@ -30613,7 +37390,7 @@ msgid ""
"Did you know that opening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature? There is more info about this in the Wiki."
msgstr ""
"什么时候需要打开打印机门进行打印?\n"
-"您知道吗,在较高封闭仓温度下打印较低温度的耗材时,打开打印机门可以减少挤出机/热端堵塞的概率。更多信息请参阅Wiki。"
+"您知道吗,在较高腔体温度下打印较低温度的耗材丝时,打开打印机门可以减少挤出机/热端堵塞的概率。更多信息请参阅Wiki。"
#: resources/data/hints.ini: [hint:Avoid warping]
msgid ""
@@ -30623,6 +37400,1087 @@ msgstr ""
"避免翘曲\n"
"您知道吗?打印ABS这类易翘曲材料时,适当提高热床温度可以降低翘曲的概率。"
+#~ msgid "Please choose the filament color"
+#~ msgstr "请选择耗材丝颜色"
+
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "桥接线的线宽。如果以百分比表示,将根据喷嘴直径计算。\n"
+#~ "建议与较高的桥接密度或桥接流量比配合使用。\n"
+#~ "\n"
+#~ "最大值为 100% 或喷嘴直径。\n"
+#~ "如果设置为 0,线宽将与内部实心填充宽度一致。"
+
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "启用此选项可在墙壁可能向上翘曲的区域降低打印速度。\n"
+#~ "例如,在打印诸如 Benchy 船头这类尖角处的悬垂时,会施加额外的减速,从而减少在多层中逐渐累积的翘曲。\n"
+#~ "\n"
+#~ "通常建议开启此选项,除非您的打印机冷却足够强劲,或打印速度足够慢,以至于不会发生墙壁翘曲。\n"
+#~ "如果以较高的外墙速度打印,此参数在减速时可能会引入墙面瑕疵,因为打印速度的差异可能过大,导致挤出机无法跟上所需的流量变化。\n"
+#~ "这些瑕疵的根本原因很可能是 Pressure Advance (PA) 调校略有偏差,尤其是在搭配较长的 PA 平滑时间时。\n"
+#~ "\n"
+#~ "启用此选项时的建议:\n"
+#~ "1. 将 Pressure Advance 的平滑时间降低到 0.015 - 0.02,使挤出机能够快速响应速度变化。\n"
+#~ "2. 提高最低打印速度,以限制减速的幅度并减小快慢段之间的差异。\n"
+#~ "3. 如果仍出现瑕疵,启用挤出速率平滑 (ERS) 以进一步平滑流量过渡。\n"
+#~ "\n"
+#~ "注意:启用此选项后,悬垂墙壁会被当作悬垂处理,这意味着即使悬垂墙壁是桥接的一部分,也会应用悬垂速度。\n"
+#~ "例如,当墙壁 100% 悬垂、下方没有墙壁支撑时,将应用 100% 悬垂速度。"
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "外部可见桥接挤出的速度。\n"
+#~ "\n"
+#~ "此外,如果禁用翘曲周长减速或启用经典悬垂模式,它将是支撑少于13%的悬垂墙的打印速度,无论它们是桥接还是悬垂的一部分。"
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "此设置将影响半径小于等于small_perimeter_threshold(通常是孔洞)的围墙的速度。如果以百分比表示(例如:80%),则将根据上面的外壁速度设置进行计算。设置为零时为自动。"
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "与“微小部位”相同,但用于支撑。此单独设置将影响面积 <= `small_support_perimeter_threshold` 的支撑速度。如果以百分比表示(例如:80%),将基于上方的支撑或支撑接触面速度设置进行计算。设为零表示自动。"
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "内墙和外墙的打印顺序。\n"
+#~ "\n"
+#~ "使用内墙/外墙以获得最佳悬垂效果。这是因为在打印时,悬垂的墙可以粘附到相邻的围墙上。但是,这个选项会导致外墙的表面质量稍微降低,因为外墙被内墙挤压。\n"
+#~ "\n"
+#~ "使用内墙/外墙/内墙以获得最佳的外部表面质量和尺寸精度,因为外墙不会受内墙的影响但是,悬垂性能会降低,因为没有内墙来支撑打印外墙。此选项要求至少3层墙壁才能生效,因为它首先从第3个墙壁开始打印内墙,然后是外墙,最后是第一个内墙。在大多数情况下,此选项建议使用而不是外/内选项。\n"
+#~ "\n"
+#~ "使用外/内以获得与内/外/内选项相同的外部墙质量和尺寸精度优势。但是,由于新层的第一次挤出是在可见表面上开始的,因此z缝隙看起来不那么一致。"
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "首层除实心填充之外的其他部分的打印速度"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "首层实心填充的打印速度"
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "填充区域略微扩大以与墙壁重叠,以获得更好的粘合。百分比值相对于稀疏填充的线宽。将此值设置为约10-15%,以最小化潜在的过挤出和材料积累,从而导致顶部表面粗糙。"
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "顶部实心填充区域略微扩大,以便与墙壁重叠,以获得更好的粘合,并减少顶部填充与墙壁相接处的小孔出现。25-30%的值是一个很好的起点,可以减少小孔的出现。百分比值相对于稀疏填充的线宽"
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "分割区域的交错深度。如果\"mmu_segmented_region_max_width\"为零或\"mmu_segmented_region_interlocking_depth\"大于\"mmu_segmented_region_max_width\",则将被忽略。零将禁用此功能。"
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "降低顶面墙壁的高度,使其与模型边缘高度相匹配。\n"
+#~ "影响坡度小于此角度(度)的墙壁。\n"
+#~ "合理的取值为 35。设置为 0 以禁用。"
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "自动擦拭速度"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "风挡对于保护ABS或ASA打印件免受风力的影响,防止翘曲和从打印床上脱落是非常有用的。通常只有在没有封箱的开放式打印机上才需要。\n"
+#~ "\n"
+#~ "启用 = 裙边的高度与最高的打印对象一样高。否则的话会使用'裙边高度'。\n"
+#~ "注意:启用风挡后,裙边将会在距离模型'裙边距离'的地方打印。因此,如果brim启用,可能会与其相交。为了避免这种情况,增加裙边距离值。\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "擦拭塔冲刷和稀疏层的最大打印速度。当冲刷时,如果稀疏填充速度或从耗材最大体积速度计算出的速度较低,则使用最低速度。\n"
+#~ "\n"
+#~ "当打印稀疏层时,如果内墙速度或从耗材最大体积流量计算出的速度较低,则使用最低速度。\n"
+#~ "\n"
+#~ "增加此速度可能会影响塔的稳定性,同时增加喷嘴与擦拭塔上可能形成的任何斑点碰撞的力。\n"
+#~ "\n"
+#~ "在将此参数增加到默认值90mm/sec之外之前,请确保您的打印机可以可靠地在增加的速度下桥接,并且换料时的滴漏得到了很好的控制。\n"
+#~ "\n"
+#~ "对于擦拭塔外墙,无论此设置如何,都使用内墙速度。"
+
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "擦拭塔外墙类型。\n"
+#~ "1. 矩形:默认墙类型,具有固定宽度和高度的矩形。\n"
+#~ "2. 圆锥:底部有圆角的圆锥,有助于稳定擦拭塔。\n"
+#~ "3. 加强筋:在塔壁上增加四个加强筋以提高稳定性。"
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "用于擦拭塔冲刷线的额外流量。这使冲刷线比正常情况下更厚或更窄。间距会自动调整。"
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr ""
+#~ "调整这个值以略过短的、未闭合的墙,因为这些墙可能会增加打印耗时。设置较高的值将移除更多和更长的墙。\n"
+#~ "\n"
+#~ "请注意:底面和顶面将不受此值的影响,原因是防止模型外部出现可见缝隙。调整下方高级设置中的 “单层墙阈值” 来调整判断顶面的灵敏度。只有当此设置高于默认值的0.5、或启用了单层顶面时,“单层墙阈值”才会显示。"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "拆分为 %1% 个零件"
+
+#~ msgid "Repair failed"
+#~ msgstr "修复失败"
+
+#~ msgid "Repair canceled"
+#~ msgstr "修复被取消"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "此图层与下方图层重叠处的作用方式。“添加”和“相减”会堆叠或削减起伏。“相乘”和“相除”会缩放下方的内容,使此图层成为其上的遮罩 - 此时“深度”相当于强度,1 mm 时白色区域保持不变。"
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "网格存在非流形几何体或开放边界。您可以按原样导入,或在导入前使用 Windows 3D 修复服务进行修复。"
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "请注意,该网格存在非流形几何体或开放边界。"
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "网格问题"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "修复失败:填补孔洞后网格仍未封闭。"
+
+# AI Translated
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "无法对非布尔操作数应用逻辑运算。"
+
+#~ msgid "Reading"
+#~ msgstr "读取中"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "耗材丝数量超过涂色工具支持的最大值,仅前%1%个耗材丝可在涂色工具中使用。"
+
+#~ msgid "Shortcut Key "
+#~ msgstr "快捷键 "
+
+#~ msgid "Build Volume"
+#~ msgstr "打印体积"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "物体(%1%)存在重复的连接件。切片结果中可能会缺少部分连接件。\n"
+#~ "请向 OrcaSlicer 团队报告此问题出现的场景。\n"
+#~ "谢谢。"
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d 个三角形"
+
+#~ msgid " (Moving)"
+#~ msgstr "(活动的)"
+
+#~ msgid " (Fixed)"
+#~ msgstr "(固定的)"
+
+#~ msgid "Filament "
+#~ msgstr "耗材丝"
+
+#~ msgid "hotend"
+#~ msgstr "热端"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "自动摆放 "
+
+#~ msgid "Orienting"
+#~ msgstr "自动朝向中..."
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "请先执行回原点(点击"
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ")操作以定位当前工具头位置,以防止轴移动时超出边界造成设备磨损"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "与最佳分组相比,增加 %1%g 耗材丝和 %2% 变化。"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "与最佳分组相比,增加 %1%g 耗材丝并节省 %2% 变化。"
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "与最佳分组相比,节省 %1%g 耗材丝并增加 %2% 变化。"
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "与具有一个喷嘴的打印机相比,可节省 %1%g 耗材和 %2% 变化。"
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "与具有一个喷嘴的打印机相比,节省 %1%g 耗材并增加 %2% 变化。"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "与具有一个喷嘴的打印机相比,增加 %1%g 耗材并节省 %2% 变化。"
+
+#~ msgid "number keys"
+#~ msgstr "数字键"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印范围。"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "耗材丝 %s 放置在 %s 中,但生成的 G-code 路径超出了 %s 的可打印高度。"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "耗材 %s 不能直接打印在该板的表面上。"
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "将会被关闭以创建新模型,是否继续?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "前面还有%s个任务在云端切片队列中"
+
+#~ msgid " upload failed"
+#~ msgstr "上传失败"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr "上传配置解析失败\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr "没有相应的存储桶\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr "无法打开\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "由于某些原因,您的评论结果无法上传。如下所示:\n"
+#~ "\n"
+#~ "错误代码:"
+
+#~ msgid "error message: "
+#~ msgstr "错误消息:"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "您是否想要重定向到评分网页?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (工艺预设:%1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "%s 喷嘴无法打印 %s。"
+
+#~ msgid " nozzle"
+#~ msgstr "喷嘴"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "不建议使用 %1% 打印以下耗材: %2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr "盘%1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "是否移除全部 %1% 个混合耗材丝?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "您想要替换它吗"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "热床温度冲突:T%d(%s)将热床设为 %d°C,而 T%d(%s)需要 %d°C。热床温度由主工具头决定,副工具头只能沿用该温度。"
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "未提供校准加速度。使用默认加速度值"
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "未提供校准速度。使用默认最佳速度"
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "没有适用于 %1% 至 %2% °C 的传送带温度塔。请使用温度塔模型支持的温度范围,例如 230 至 190。"
+
+#~ msgid "The selected file"
+#~ msgstr "已选择的文件"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "不包含有效的G-code文件。"
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "与OrcaSlicer一起使用,以便Orca可以从...打开模型"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "成本 %dg 耗材和 %d 的变化超过最佳分组。"
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "带有此图标的参数可以按喷嘴分别设置。"
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "检测到保留的关键字"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "该打印机下已关联 %d 个材料预设与 %d 个工艺预设。如删除该打印机,材料与工艺预设将一并删除。"
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "以下预设继承此预设。"
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% 预设"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "确定要%1%所选预设吗?"
+
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "拆分为 %1% 个零件"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "正在下载新的供应商配置: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "下载供应商配置失败: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "在此 Span 模式下,只有 %1% 参与多色打印,但耗材丝 %2% 未分配给任何工具头。请使用分配给 %1% 的耗材丝,或将此盘切换为主模式。"
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "在此 Span 模式下,只有 %1% 参与多色打印,但耗材丝 %2% 分配给了 T%3%。请使用分配给 %1% 的耗材丝,或将此盘切换为主模式。"
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr "离不可打印区域太近,打印时可能会发生碰撞。"
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr "距离结块检测区域太近,打印时可能会发生碰撞。"
+
+#~ msgid "Prime Tower"
+#~ msgstr "擦拭塔"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr "离其它对象太近,可能会发生碰撞。\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr "离不可打印区域太近,会发生碰撞。\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr "距离聚集检测区域太近,会引起碰撞。\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr "有部分超出可打印区域,无法打印。\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "未配置的工具头"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "所有打印结束时的结尾G-code"
+
+#~ msgid "Maximum X speed"
+#~ msgstr "X最大速度"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Y最大速度"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Z最大速度"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "E最大速度"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "在每个切片流水线步骤中调用的 Python 插件,用于读取和修改中间切片数据,包括最终的 G-code 后处理步骤。研究/实验性。"
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "启用后,切片软件输出的 G-code 会以热床原点 (0,0) 为中心放置主区域的内容,由打印机固件负责把复制件/镜像件放到各个物理区域。仅当打印机固件在复制/镜像模式下会自行应用区域偏移时才启用(例如 RepRapFirmware 的 IDEX 复制模式)。主模式下无效。"
+
+# AI Translated
+# Needs human review: "pem-inversion defaults": confirm pem is the physical extruder map and that the default is its inverse.
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "按盘单独设置物理工具头到耗材丝槽位的映射(从 1 开始编号),覆盖默认映射。留空则使用由物理挤出机映射(pem)反推的默认值。"
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "切片前模型网格的旋转轴。这一旋转即传送带打印机的倾斜:它是保距(无畸变)旋转,同时用于热床渲染和支撑的重力倾斜;生成 G-code 时,逆变换会先还原这一旋转,再进行机器坐标系剪切/缩放和重映射。X 是典型的龙门倾斜轴(传送带沿 Y 方向移动)。"
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "专家选项:单独设置机器坐标系(G-code 剪切/缩放)的倾斜角度,与切片前的旋转角度互不影响。禁用时,机器坐标系变换由传送带倾斜角度推导,两个阶段使用同一个角度。仅当机器实际的龙门倾角与切片旋转角度不一致时,才需启用此项进行补偿。"
+
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "在为“最大墙体分辨率”设置降低分辨率时所允许的最大偏差。如果增大此值,打印精度会降低,但 G-code 会更小。“最大墙体偏差”会限制“最大墙体分辨率”,因此当两者冲突时,以“最大墙体偏差”为准。"
+
+#~ msgid " not in range "
+#~ msgstr " 不在合理范围内"
+
+#~ msgid "floating regions"
+#~ msgstr "悬空区域"
+
+#~ msgid "floating cantilever"
+#~ msgstr "悬空悬臂"
+
+#~ msgid "large overhangs"
+#~ msgstr "大面积悬垂"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "%s 对象可能有 %s。请重新调整对象方向,或启用支持生成。"
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "没有检测到层。您可能需要修复STL文件,或检查模型尺寸、厚度等,之后再重试。\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "该机型的每个喷嘴最多只能保存 %d 个历史结果, 该结果将不会被保存"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "该机型每个喷嘴最多只能保存%d个历史结果"
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "悬垂"
+
+#~ msgid "Start / End"
+#~ msgstr "开始 / 结束"
+
+#~ msgid "Damp"
+#~ msgstr "阻尼"
+
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "在打印机上检测到 %d 个 IFS 槽位。"
+
+#~ msgid "selected"
+#~ msgstr "已选中"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "以下预设继承此预设。"
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "找到 %zu 台 Creality 打印机。请选择一台并点击“使用所选”。"
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "日志"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "错误:%s 挤出机没有可用的 %s 喷嘴,当前分组结果无效。"
+
+#~ msgid "invalid brim ears"
+#~ msgstr "无效的圆盘"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "跳过 %d 对象。"
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "打开所在文件夹"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "单击中心,然后单击一个顶点 — %d 条边,%s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "外切"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "内接"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "草图已创建(%zu 个驱动尺寸) — 选择它,然后右键单击进行拉伸"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "完成 — %zu 个三角形"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "此网格包含 %d 个三角形。在合并共面之前,每个三角形都会成为一个 B-rep 面,因此导入可能需要很长时间,且生成的实体编辑起来会很慢。通常最好先简化网格。\n"
+#~ "\n"
+#~ "仍要导入吗?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "已导入实体 — %d 个三角形 → %d 个面,体积 %.2f mm³。选取一个面或边,然后使用圆角 / 切割 / 抽壳进行修改"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — 拖动以放置/调整大小,然后单击“确定”"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d 个草图图元"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — 输入数值,按 Enter(或单击“确定”)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "预览 — %zu 个三角形"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "%1% 个约束无法作用于此几何图形(椭圆或样条曲线,或大小为零的圆),已被忽略"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "已移除 %1% 个因圆角/倒角而失效的约束"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "变换解除了 %1% 个约束"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...以及另外 %1% 个开放端点"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "材料列表最多支持 %1% 种颜色。进行 %2% 分解后,材料数量将超过 %1%。请先在主界面删除未使用的耗材丝,再进行分解。"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% 种可打印颜色,来自 %2% 种耗材丝"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% 个岛"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "已使用全部 %1% 个图层"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "预览:%1% 个三角形"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "模型:%1% 个三角形 - 烘焙会细化到上方的分辨率,直至达到预算"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "烘焙会移动现有顶点 - 模型保持 %1% 个三角形"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "烘焙结果最多约 %1% k 个三角形"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% 个图层未绘制,已跳过"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "项目最多支持 %d 种耗材丝。多余的耗材丝将被丢弃。"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "已选择 %d 个顶点 | 拖动 = 一起移动,Shift/Ctrl 单击 = 添加/移除"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "已选择 %d 条边 | 拖动 = 一起移动,Shift/Ctrl 单击 = 添加/移除"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "已选择 %d 个岛 | 拖动 = 一起移动,Shift/Ctrl 单击 = 添加/移除,R/S = 旋转/缩放主岛"
+
+# AI Translated
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "当前图层的平铺尺寸,即纹理每重复一次在模型上覆盖的范围。画布以平铺为单位,一个网格单元即一次重复。可在图层的平铺设置中修改。"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d 个岛,%s 个面"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "插件“%s”正在请求读取以下文件:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "插件“%s”正在请求读写以下文件:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "插件“%s”正在请求创建以下文件:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "插件“%s”正在请求删除以下文件:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "插件“%s”正在请求运行以下命令:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "插件安装失败"
+
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "无法安装 Microsoft WebView2 运行库。\n"
+#~ "在安装之前,包括设置向导在内的部分功能可能显示为空白。\n"
+#~ "请从 https://developer.microsoft.com/microsoft-edge/webview2/ 手动安装,然后重启 Orca Slicer。"
+
+#~ msgid "Why this grouping"
+#~ msgstr "为什么这样分组"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "该软件不支持在一次打印中使用不同直径的喷嘴。如果左右喷嘴不一致,就只能进行单头打印。请确认您想在该项目中使用哪种喷嘴。"
+
+#~ msgid "Switch diameter"
+#~ msgstr "开关直径"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "BambuStudio 项目"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "该 3MF 由 BambuStudio(版本 %s)创建,其版本高于兼容版本 %s。发现无法识别的设置:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "该 3MF 由 BambuStudio(版本 %s)创建,其版本高于兼容版本 %s。部分设置可能无法完全兼容。"
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "该 3MF 由 BambuStudio 创建。部分设置可能与 OrcaSlicer 不同。"
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "操作正在进行时无法撤销或重做。请先停止该操作。"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s: %s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "将每个零件的内部填充以其自身为中心,就好像它是单独切片的一样,而不是以整个装配体为中心。相互接触或重叠的零件被视为一个整体并共享一个中心;分离的零件(或不同的 3D 物体)各自拥有自己的中心。\n"
+#~ "当一个装配体将多个物体分为一组、而每个物体都应保持一致的自我居中填充时,此选项很有用。\n"
+#~ "会影响直线和网格图案以及旋转模板填充。\n"
+#~ "锁定到全局坐标的图案(螺旋体、蜂窝、TPMS 等)不受影响。"
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "当前层编号。从 1 开始编号(即第一层编号为 1)。"
+
+#~ msgid "Video tutorial"
+#~ msgstr "视频指南"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "标准模型"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "生成了空网格"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "长方体"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "快速:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "宽度 (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "深度 (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "高度 (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "底面半径"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "顶面半径"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "大半径"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "小半径"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "所有边"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "顶部边"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "底部边"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "侧边"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "网格精度"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "添加形状"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "没有外轮廓"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "无法生成外轮廓面"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "无法生成带孔的面"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "旋转失败"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "轮廓"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "开始新轮廓(用于孔)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "段数"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "边数"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "单击画布进行绘制"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "吸附到网格"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "网格间距"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "外轮廓"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "已闭合"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%:%3% 个点 %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY(顶部)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ(前面)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ(侧面)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "旋转角度"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "设为 0 则拉伸,大于 0 则旋转"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "凹槽(切除)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu 个闭合轮廓"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "绘制一个闭合轮廓以启用"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "结果为空"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "拉伸:%1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "旋转:%1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "未选择对象"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "生成面失败"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "生成带孔的面失败"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "工具网格为空"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "已添加凹槽(负体积)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "凹槽:%1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "需要当前图层使用“展开 (LSCM)”映射。"
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "棋盘格 - 用测试网格代替纹理。方格保持正方形的地方纹理没有变形;方格被拉伸的地方,纹理也会被拉伸"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "畸变 - 在展开上叠加由蓝到红的拉伸热力图"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "混合方式"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "表面"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "层:两种耗材丝在打印层之间交替,在竖直表面上过渡平滑,但在朝上或朝下的平坦表面上会失效,因为那里整层只是一条色带。\n"
+#~ "表面:在表面上形成细密的棋盘格,适用于任何角度,但看起来可能更像纹理而非混色。\n"
+#~ "自动:竖直面按层混合;平坦面采用较接近的单一耗材丝,因为棋盘格在那里会显现为图案。"
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "岛 - 移动、旋转和缩放整个岛"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "顶点 - 拖动顶点以调整形状;按住 Shift/Ctrl 可多选"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "边 - 拖动边以调整形状;按住 Shift/Ctrl 可多选"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "框显所有岛 (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(实验性)使用打印机代理替代打印主机"
@@ -30656,16 +38514,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "单击一个面或基准面,然后选取绘图工具"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -30722,10 +38570,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "竖直距离"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "线性"
-
#~ msgid "Face recognition"
#~ msgstr "外观面检测"
@@ -32148,9 +39992,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "计算 %1%的线宽失败。无法获得 \"%2%\" 的值"
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "提供给 Flow::with_spacing() 的间距无效,请检查层高和挤出宽度"
-
#~ msgid "Renders cast shadows on the plate in realistic view."
#~ msgstr "在写实渲染中渲染投射到打印板上的阴影。"
@@ -32410,9 +40251,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "零件选择"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "Controls the density (spacing) of external bridge lines. Default is 100%.\n"
#~ "Theoretically, 100% means a solid bridge, but due to the tendency of bridge extrusions to sag, 100% may not be sufficient.\n"
diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po
index f47b5900ee..69c1fc755e 100644
--- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po
+++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-10-06 15:16-0300\n"
+"POT-Creation-Date: 2026-10-15 17:40+0800\n"
"PO-Revision-Date: 2025-11-28 13:48-0600\n"
"Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n"
"Language-Team: \n"
@@ -175,11 +175,13 @@ msgstr "左"
msgid "right"
msgstr "右"
+# AI Translated
msgid "Left"
-msgstr "左面"
+msgstr "左"
+# AI Translated
msgid "Right"
-msgstr "右面"
+msgstr "右"
msgid "extruder"
msgstr "擠出機"
@@ -200,7 +202,7 @@ msgstr "目前的線材不支援 TPU 高流量噴嘴,因此無法使用。"
# AI Translated
msgid "Auto dynamic flow calibration is not supported for TPU filament."
-msgstr "自動動態流量校準不支援 TPU 線材。"
+msgstr "自動動態流量校正不支援 TPU 線材。"
# AI Translated
msgid "Bambu TPU 85A is not supported for printing with 0.4 mm Standard or High Flow nozzles."
@@ -259,49 +261,54 @@ msgid "%s has a risk of nozzle clogging when using 0.4, 0.6, 0.8mm high-flow noz
msgstr "%s 在使用 0.4、0.6、0.8mm 高流量噴嘴時有噴嘴阻塞的風險,請謹慎使用。"
# AI Translated
+# Needs human review: The English second sentence is incomplete ('If you wish to continue.'); the translation mirrors it. Recheck once the source is fixed. Filament Track Switch = 線材路徑切換器 (BambuStudio zh_TW name).
#, c-format, boost-format
msgid "%s may fail to load or unload due to the Filament Track Switch. If you wish to continue."
-msgstr "%s 可能因 Filament Track Switch 而無法裝入或退出。若您希望繼續。"
+msgstr "%s 可能因線材路徑切換器而無法進料或退料。若您仍要繼續。"
+# AI Translated
#, c-format, boost-format
msgid "%s is not supported by %s extruder."
-msgstr "%s 不受 %s 擠出機支援。"
+msgstr "%s 無法用於 %s 擠出機。"
# AI Translated
#, c-format, boost-format
msgid "There may be critical print quality issues when printing '%s' with %s Bowden extruder. Use with caution!"
-msgstr "以 %s 遠程擠出機列印「%s」時可能出現嚴重的列印品質問題。請謹慎使用!"
+msgstr "列印「%s」時使用 %s 遠程擠出機,可能會出現嚴重的列印品質問題。請謹慎使用!"
# AI Translated
#, c-format, boost-format
msgid "There may be critical print quality issues when printing '%s' with %s extruder. Use with caution!"
-msgstr "以 %s 擠出機列印「%s」時可能出現嚴重的列印品質問題。請謹慎使用!"
+msgstr "列印「%s」時使用 %s 擠出機,可能會出現嚴重的列印品質問題。請謹慎使用!"
# AI Translated
#, c-format, boost-format
msgid "There may be print quality issues when printing '%s' with %s Bowden extruder. Use with caution."
-msgstr "以 %s 遠程擠出機列印「%s」時可能出現列印品質問題。請謹慎使用。"
+msgstr "列印「%s」時使用 %s 遠程擠出機,可能會出現列印品質問題。請謹慎使用。"
# AI Translated
#, c-format, boost-format
msgid "There may be print quality issues when printing '%s' with %s extruder. Use with caution."
-msgstr "以 %s 擠出機列印「%s」時可能出現列印品質問題。請謹慎使用。"
+msgstr "列印「%s」時使用 %s 擠出機,可能會出現列印品質問題。請謹慎使用。"
msgid "High Flow"
msgstr "高流量"
+# AI Translated
msgid "Standard"
-msgstr "標準模式(100%)"
+msgstr "標準"
+# AI Translated
msgid "TPU High Flow"
-msgstr "TPU高流量"
+msgstr "TPU 高流量"
# AI Translated
msgid "E3D High Flow"
msgstr "E3D 高流量"
+# AI Translated
msgid "Unknown"
-msgstr "未定義"
+msgstr "未知"
msgid "Hardened Steel"
msgstr "硬化鋼"
@@ -312,8 +319,9 @@ msgstr "不鏽鋼"
msgid "Tungsten Carbide"
msgstr "碳化鎢"
+# AI Translated
msgid "The toolhead and hotend rack may move. Please keep your hands away from the chamber."
-msgstr "工具頭和熱端架可能會運動,請勿將手伸入機箱。"
+msgstr "工具頭和熱端掛架可能會運動,請勿將手伸入腔體。"
msgid "Warning"
msgstr "警告"
@@ -330,8 +338,9 @@ msgstr "重新讀取全部"
msgid "Reading the hotends, please wait."
msgstr "正在讀取熱端資訊,請稍候。"
+# AI Translated
msgid "During the hotend upgrade, the toolhead will move. Don't reach into the chamber."
-msgstr "在熱端升級過程中,工具頭會移動。請勿將手伸入機箱內。"
+msgstr "在熱端升級過程中,工具頭會移動。請勿將手伸入腔體內。"
# AI Translated
msgid "Update"
@@ -367,11 +376,13 @@ msgstr "版本:"
msgid "Latest version"
msgstr "最新版本"
+# AI Translated
msgid "Row A"
-msgstr "A排"
+msgstr "A 排"
+# AI Translated
msgid "Row B"
-msgstr "B排"
+msgstr "B 排"
msgid "Toolhead"
msgstr "工具頭"
@@ -398,8 +409,10 @@ msgid "Please wait"
msgstr "請稍候"
# AI Translated
-msgid "Reading"
-msgstr "讀取中"
+#. TRN %d/%d is the hotend being read and the number of hotends to read.
+#, c-format, boost-format
+msgid "Induction Hotend Rack: Reading %d/%d"
+msgstr "感應熱端架:讀取中 %d/%d"
msgid "Running..."
msgstr "執行中..."
@@ -407,8 +420,9 @@ msgstr "執行中..."
msgid "Raised"
msgstr "已升起"
+# AI Translated
msgid "The hotend is in an abnormal state and currently unavailable. Please go to 'Device -> Upgrade' to upgrade firmware."
-msgstr "熱端狀態異常,目前不可用。請前往“裝置 -> 升級”升級韌體。"
+msgstr "熱端狀態異常,目前不可用。請前往「裝置 -> 升級」升級韌體。"
msgid "Abnormal Hotend"
msgstr "熱端異常"
@@ -434,12 +448,14 @@ msgstr "序號"
msgid "Version"
msgstr "版本"
+# AI Translated
#, c-format, boost-format
msgid "Used Time: %s"
-msgstr "使用時間: %s"
+msgstr "使用時間:%s"
+# AI Translated
msgid "Dynamic nozzles are allocated on the current plate. Picking hotend is not supported."
-msgstr "目前盤存在動態配置噴嘴,不支援修改。"
+msgstr "目前列印板已分配動態噴嘴,不支援選擇熱端。"
msgid "Hotend Rack"
msgstr "熱端掛架"
@@ -450,8 +466,9 @@ msgstr "工具頭"
msgid "Nozzle information needs to be read"
msgstr "需要讀取噴嘴資訊"
+# AI Translated
msgid "Support Painting"
-msgstr "支撐筆刷"
+msgstr "支撐繪製"
msgid "Apply"
msgstr "套用"
@@ -498,8 +515,9 @@ msgstr "擦除"
msgid "Mouse wheel"
msgstr "滑鼠滾輪"
+# AI Translated
msgid "Auto support threshold angle: "
-msgstr "自動支撐角度臨界值:"
+msgstr "自動支撐角度臨界值: "
msgid "Circle"
msgstr "圓形"
@@ -519,9 +537,10 @@ msgstr "垂直"
msgid "Horizontal"
msgstr "水平"
+# AI Translated
#, boost-format
msgid "Allows painting only on facets selected by: \"%1%\""
-msgstr "僅允許在由以下條件選擇的平面上進行繪製:「%1%」"
+msgstr "僅允許在以下條件選取的面片上繪製:「%1%」"
msgid "Highlight faces according to overhang angle."
msgstr "根據懸空角度突顯出表面。"
@@ -535,27 +554,34 @@ msgstr "完成"
msgid "Support generated"
msgstr "已產生支撐"
+# AI Translated
msgid "Entering Paint-on supports"
-msgstr "進入支撐筆刷模式"
+msgstr "進入支撐繪製模式"
+# AI Translated
msgid "Leaving Paint-on supports"
-msgstr "退出支撐筆刷模式"
+msgstr "退出支撐繪製模式"
+# AI Translated
msgid "Paint-on supports editing"
-msgstr "支撐筆刷編輯"
+msgstr "支撐繪製編輯"
+# AI Translated
msgid "Gizmo-Place on Face"
-msgstr "Gizmo-放置在臉上"
+msgstr "選擇底面工具"
msgid "Lay on Face"
msgstr "選擇底面"
+# AI Translated
#, boost-format
-msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
-msgstr "線材數量超過上色工具支援的最大值,僅前 %1% 個線材可在上色工具中使用。"
+msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filament will be available in painting tool."
+msgid_plural "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+msgstr[0] "線材數量超過繪製工具支援的上限,繪製工具中僅能使用前 %1% 個線材。"
+# AI Translated
msgid "Color Painting"
-msgstr "上色"
+msgstr "顏色繪製"
msgid "Brush shape"
msgstr "筆刷形狀"
@@ -581,8 +607,9 @@ msgstr "筆刷"
msgid "Smart fill"
msgstr "智慧填充"
+# AI Translated
msgid "Bucket fill"
-msgstr "批次填充"
+msgstr "油漆桶填充"
msgid "Height range"
msgstr "高度範圍"
@@ -604,8 +631,10 @@ msgctxt "Keyboard Shortcut"
msgid "Enter"
msgstr "Enter"
-msgid "Shortcut Key "
-msgstr "快速鍵 "
+# AI Translated
+#, c-format, boost-format
+msgid "Shortcut Key %d"
+msgstr "快速鍵 %d"
msgid "Triangle"
msgstr "三角形"
@@ -616,9 +645,10 @@ msgstr "高度範圍"
msgid "Remove painted color"
msgstr "移除已繪製的顏色"
+# AI Translated
#, boost-format
msgid "Painted using: Filament %1%"
-msgstr "上色:線材 %1%"
+msgstr "繪製使用:線材 %1%"
msgid "To:"
msgstr "到:"
@@ -632,8 +662,9 @@ msgstr "退出顏色繪製模式"
msgid "Color painting editing"
msgstr "顏色繪製編輯"
+# AI Translated
msgid "Paint-on fuzzy skin"
-msgstr "塗刷絨毛表面效果"
+msgstr "絨毛表面繪製"
msgid "Add fuzzy skin"
msgstr "新增絨毛表面"
@@ -650,29 +681,34 @@ msgstr "警告:絨毛表面功能已停用,繪製的絨毛表面效果將不
msgid "Enable painted fuzzy skin for this object"
msgstr "為此物件啟用繪製的絨毛表面"
+# AI Translated
msgid "Entering Paint-on fuzzy skin"
-msgstr "進入絨毛表面筆刷模式"
+msgstr "進入絨毛表面繪製模式"
msgid "Leaving Paint-on fuzzy skin"
msgstr "退出絨毛表面繪製模式"
+# AI Translated
msgid "Paint-on fuzzy skin editing"
-msgstr "絨毛表面筆刷編輯"
+msgstr "絨毛表面繪製編輯"
msgid "Move"
msgstr "移動"
+# AI Translated
msgid "Please select at least one object."
-msgstr "請選擇至少一個物件。"
+msgstr "請至少選取一個物件。"
+# AI Translated
msgid "Gizmo-Move"
-msgstr "Gizmo-移動"
+msgstr "移動工具"
msgid "Rotate"
msgstr "旋轉"
+# AI Translated
msgid "Gizmo-Rotate"
-msgstr "Gizmo-旋轉"
+msgstr "旋轉工具"
msgid "Optimize orientation"
msgstr "最佳化方向"
@@ -681,8 +717,9 @@ msgctxt "Verb"
msgid "Scale"
msgstr "縮放"
+# AI Translated
msgid "Gizmo-Scale"
-msgstr "Gizmo 比例"
+msgstr "縮放工具"
msgid "Error: Please close all toolbar menus first"
msgstr "錯誤:請先關閉所有工具列選單"
@@ -695,8 +732,13 @@ msgstr "″"
msgid "mm"
msgstr "mm"
+# AI Translated
msgid "Part selection"
-msgstr "選擇零件"
+msgstr "選取零件"
+
+# AI Translated
+msgid "Select multiple objects"
+msgstr "選取多個物件"
msgid "Fixed step drag"
msgstr "以固定間距拖曳"
@@ -760,10 +802,84 @@ msgstr "零件"
msgid "Relative"
msgstr "相對"
+msgid "Selection"
+msgstr "所選項目"
+
+msgid "Plate"
+msgstr "列印板"
+
+# AI Translated
+msgid "Distribute"
+msgstr "分布"
+
# AI Translated
msgid "Coordinate system used for transform actions."
msgstr "用於變換操作的座標系。"
+# AI Translated
+msgid "Reference for alignment"
+msgstr "對齊基準"
+
+# AI Translated
+msgid "Select at least 3 parts or objects"
+msgstr "至少需選取 3 個零件或物件"
+
+# AI Translated
+msgid "Align left"
+msgstr "靠左對齊"
+
+# AI Translated
+msgid "Align left-right center"
+msgstr "左右置中對齊"
+
+# AI Translated
+msgid "Align right"
+msgstr "靠右對齊"
+
+# AI Translated
+msgid "Align front"
+msgstr "靠前對齊"
+
+# AI Translated
+msgid "Align front-back center"
+msgstr "前後置中對齊"
+
+# AI Translated
+msgid "Align back"
+msgstr "靠後對齊"
+
+# AI Translated
+msgid "Align bottom"
+msgstr "靠下對齊"
+
+# AI Translated
+msgid "Align top-bottom center"
+msgstr "上下置中對齊"
+
+# AI Translated
+msgid "Align top"
+msgstr "靠上對齊"
+
+# AI Translated
+msgid "Distribute left-right"
+msgstr "左右平均分布"
+
+# AI Translated
+msgid "Distribute front-back"
+msgstr "前後平均分布"
+
+# AI Translated
+msgid "Distribute top-bottom"
+msgstr "上下平均分布"
+
+# AI Translated
+msgid "Drop"
+msgstr "落板"
+
+# AI Translated
+msgid "Move the selection along Z so that its lowest point touches the bed."
+msgstr "沿 Z 軸移動所選項目,使其最低點接觸列印板。"
+
# AI Translated
msgid "Absolute"
msgstr "絕對"
@@ -771,8 +887,9 @@ msgstr "絕對"
msgid "Reset current rotation to the value when open the rotation tool."
msgstr "重設旋轉角度為開啟旋轉工具時的狀態。"
+# AI Translated
msgid "Reset current rotation to real zeros."
-msgstr "將旋轉角度歸零"
+msgstr "將目前的旋轉角度歸零。"
msgctxt "Noun"
msgid "Scale"
@@ -806,11 +923,13 @@ msgstr "銷釘"
msgid "Snap"
msgstr "卡扣"
+# AI Translated
msgid "Prism"
-msgstr "錐體"
+msgstr "稜柱"
+# AI Translated
msgid "Frustum"
-msgstr "截頭圓錐"
+msgstr "錐台"
msgid "Square"
msgstr "正方形"
@@ -821,11 +940,14 @@ msgstr "六邊形"
msgid "Keep orientation"
msgstr "保持方向"
+# AI Translated
+# Needs human review: Checkbox beside 保留 / 翻轉 in the Cut gizmo after-cut row and an orientation option; check it reads right for "place the part on its cut face"
msgid "Place on cut"
-msgstr "切割面貼其於列印底板"
+msgstr "切割面朝下"
+# AI Translated
msgid "Flip upside down"
-msgstr "倒轉"
+msgstr "上下翻轉"
msgid "Connectors"
msgstr "連接件"
@@ -866,9 +988,6 @@ msgstr "凹槽角"
msgid "Cut position"
msgstr "切割位置"
-msgid "Build Volume"
-msgstr "列印體積"
-
msgid "Multiple"
msgstr "多個"
@@ -888,14 +1007,15 @@ msgstr ""
"點選翻轉切割面\n"
"拖曳移動切割面"
+# AI Translated
msgid ""
"Click to flip the cut plane\n"
"Drag to move the cut plane\n"
"Right-click a part to assign it to the other side"
msgstr ""
-"點選翻轉切割平面\n"
-"拖曳移動切割平面\n"
-"右鍵點選部件以將其分配到對側"
+"點選以翻轉切割平面\n"
+"拖曳以移動切割平面\n"
+"右鍵點選零件可將它指派到另一側"
msgid "Move cut plane"
msgstr "移動切割面"
@@ -909,8 +1029,9 @@ msgstr "變更切割模式"
msgid "Tolerance"
msgstr "公差"
+# AI Translated
msgid "Drag"
-msgstr "拖拉"
+msgstr "拖曳"
msgid "Move cut line"
msgstr "移動切割線"
@@ -927,14 +1048,17 @@ msgstr "刪除連接件"
msgid "Move connector"
msgstr "移動連接件"
+# AI Translated
msgid "Add connector to selection"
-msgstr "選擇連接件"
+msgstr "將連接件加入選取"
+# AI Translated
msgid "Remove connector from selection"
-msgstr "取消選擇連接件"
+msgstr "從選取中移除連接件"
+# AI Translated
msgid "Select all connectors"
-msgstr "選擇所有連接件"
+msgstr "選取所有連接件"
# AI Translated
msgctxt "Cut tool"
@@ -953,11 +1077,13 @@ msgstr "凸起"
msgid "Bulge proportion related to radius"
msgstr "與半徑相關的凸起比例"
+# AI Translated
msgid "Space"
-msgstr "空格鍵"
+msgstr "間隔"
+# AI Translated
msgid "Space proportion related to radius"
-msgstr "與半徑相關的空間佔比"
+msgstr "與半徑相關的間隔比例"
msgid "Confirm connectors"
msgstr "確認"
@@ -968,9 +1094,10 @@ msgstr "翻轉切割面"
msgid "Groove change"
msgstr "凹槽調整"
+# AI Translated
#. TRN: This is an entry in the Undo/Redo stack. The whole line will be 'Edited: (name of whatever was edited)'.
msgid "Edited"
-msgstr "編輯"
+msgstr "已編輯"
msgid "Reset cutting plane"
msgstr "重設切割面"
@@ -1017,16 +1144,18 @@ msgid "%1$d connector is out of cut contour"
msgid_plural "%1$d connectors are out of cut contour"
msgstr[0] "有 %1$d 個連接件超出切割範圍"
+# AI Translated
#, c-format, boost-format
msgid "%1$d connector is out of object"
msgid_plural "%1$d connectors are out of object"
-msgstr[0] "有 %1$d 個連接件不在物體範圍內"
+msgstr[0] "有 %1$d 個連接件超出物件範圍"
msgid "Some connectors are overlapped"
msgstr "存在連接件相互重疊"
+# AI Translated
msgid "Select at least one object to keep after cutting."
-msgstr "切割後保留至少一個物件。"
+msgstr "至少選取一個切割後要保留的物件。"
msgid "Cut plane is placed out of object"
msgstr "切割面在物件外"
@@ -1040,19 +1169,25 @@ msgstr "連接件"
# AI Translated
#, boost-format
msgid ""
-"Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Object (%1%) has duplicated connectors. Some connectors may be missing in slicing result.\n"
"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
"Thank you."
-msgstr ""
+msgid_plural ""
+"Objects (%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+"Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+"Thank you."
+msgstr[0] ""
"物件(%1%)有重複的連接件。切片結果中可能缺少部分連接件。\n"
"請向 OrcaSlicer 團隊回報此問題發生的情境。\n"
"謝謝。"
+# AI Translated
msgid "Cut by Plane"
-msgstr "用平面分割"
+msgstr "用平面切割"
+# AI Translated
msgid "Non-manifold edges be caused by cut tool: do you want to fix now?"
-msgstr "切科後產生非流形邊,是否要修復?"
+msgstr "切割工具產生了非流形邊,要立即修復嗎?"
msgid "Repairing model object"
msgstr "修復模型物件"
@@ -1063,11 +1198,13 @@ msgstr "用線切割"
msgid "Delete connector"
msgstr "刪除連接件"
+# AI Translated
msgid "Entering Cut gizmo"
-msgstr "進入切割工具模式"
+msgstr "進入切割工具"
+# AI Translated
msgid "Leaving Cut gizmo"
-msgstr "退出切割模式"
+msgstr "退出切割工具"
msgid "Cut gizmo editing"
msgstr "切割工具編輯"
@@ -1081,9 +1218,10 @@ msgstr "細節等級"
msgid "Decimate ratio"
msgstr "簡化率"
+# AI Translated
#, boost-format
msgid "Processing model '%1%' with more than 1M triangles could be slow. It is highly recommended to simplify the model."
-msgstr "處理超過具有 1M 個三角形的模型 '%1%' 可能會很慢。強烈建議簡化模型。"
+msgstr "處理三角形超過 1M 個的模型「%1%」可能會很慢。強烈建議簡化模型。"
msgid "Simplify model"
msgstr "簡化模型"
@@ -1109,39 +1247,60 @@ msgstr "低"
msgid "Extra low"
msgstr "非常低"
-#, c-format, boost-format
-msgid "%d triangles"
-msgstr "%d 個三角形"
+# AI Translated
+#, boost-format
+msgid "%1% triangle"
+msgid_plural "%1% triangles"
+msgstr[0] "%1% 個三角形"
msgid "Show wireframe"
msgstr "顯示線框"
+# AI Translated
msgid "Unable to apply when processing preview"
-msgstr "處理預覽的過程中無法套用。"
+msgstr "處理預覽時無法套用"
+# AI Translated
msgid "Operation already cancelling. Please wait a few seconds."
-msgstr "操作已在取消中,請稍後。"
+msgstr "操作正在取消中,請稍候幾秒。"
+# AI Translated
+msgid "Model simplification has been canceled"
+msgstr "模型簡化已取消"
+
+msgid "Wiki Guide"
+msgstr "Wiki 指南"
+
+# AI Translated
+msgid "Video Guide"
+msgstr "影片教學"
+
+# AI Translated
msgid "Enforce seam"
-msgstr "新增 Z 縫產生區"
+msgstr "新增接縫區"
+# AI Translated
msgid "Block seam"
-msgstr "不產生 Z 縫區"
+msgstr "不產生接縫區"
+# AI Translated
msgid "Seam painting"
-msgstr "Z 縫筆刷"
+msgstr "接縫繪製"
msgid "Remove selection"
msgstr "移除繪製"
+# AI Translated
msgid "Entering seam painting"
-msgstr "進入 Z 縫繪製模式"
+msgstr "進入接縫繪製模式"
+# AI Translated
msgid "Leaving Seam painting"
-msgstr "退出 Z 縫繪製模式"
+msgstr "退出接縫繪製模式"
+# AI Translated
msgid "Paint-on seam editing"
-msgstr "Z 縫筆刷編輯"
+msgstr "接縫繪製編輯"
#. TRN - Title in Undo/Redo stack after rotate with text around emboss axe
msgid "Text rotate"
@@ -1172,6 +1331,14 @@ msgstr "放置於表面"
msgid "Emboss"
msgstr "浮雕"
+# AI Translated
+msgid "No active font in style. Select correct one."
+msgstr "樣式中沒有可用的字型,請選擇正確的字型。"
+
+# AI Translated
+msgid "WxFont is not loaded properly."
+msgstr "WxFont 未正確載入。"
+
msgid "NORMAL"
msgstr "正常"
@@ -1208,26 +1375,31 @@ msgstr "浮雕文字不能僅包含空白字元。"
msgid "Text contains character glyph (represented by '?') unknown by font."
msgstr "文字包含字型無法識別的字形(以 '?' 表示)。"
+# AI Translated
msgid "Text input doesn't show font skew."
-msgstr "文字輸入未呈現字體的傾斜效果。"
+msgstr "文字輸入未呈現字型的傾斜效果。"
+# AI Translated
msgid "Text input doesn't show font boldness."
-msgstr "文字輸入呈現示字體的粗體效果。"
+msgstr "文字輸入未呈現字型的粗體效果。"
msgid "Text input doesn't show gap between lines."
msgstr "文字輸入未呈現行距效果。"
+# AI Translated
msgid "Too tall, diminished font height inside text input."
-msgstr "過高,已縮小文字輸入框內的字體高度。"
+msgstr "過高,已縮小文字輸入框內的字型高度。"
+# AI Translated
msgid "Too small, enlarged font height inside text input."
-msgstr "太小,已增大文字輸入框內的字體高度。"
+msgstr "太小,已增大文字輸入框內的字型高度。"
msgid "Text doesn't show current horizontal alignment."
msgstr "文字未呈現目前的水平對齊狀態。"
+# AI Translated
msgid "Revert font changes."
-msgstr "還原字體設定變更。"
+msgstr "還原字型變更。"
#, boost-format
msgid "Font \"%1%\" can't be selected."
@@ -1241,15 +1413,18 @@ msgstr "操作"
msgid "Join"
msgstr "合併"
+# AI Translated
msgid "Click to change text into object part."
-msgstr "點選將文字轉換為物件部分。"
+msgstr "點選以將文字轉換為零件。"
+# AI Translated
msgid "You can't change a type of the last solid part of the object."
-msgstr "您無法變更模型最後一個實體部分的類型。"
+msgstr "無法變更物件最後一個實體零件的類型。"
+# AI Translated
msgctxt "EmbossOperation"
msgid "Cut"
-msgstr "切割"
+msgstr "切除"
msgid "Click to change part type into negative volume."
msgstr "點選將零件類型變更為負體積。"
@@ -1263,15 +1438,17 @@ msgstr "點選將零件類型變更為修改器。"
msgid "Change Text Type"
msgstr "更改文字類型"
+# AI Translated
#, boost-format
msgid "Rename style (%1%) for embossing text"
-msgstr "重新命名浮雕文字樣式 (%1%)"
+msgstr "重新命名浮雕文字樣式(%1%)"
msgid "Name can't be empty."
msgstr "名稱不可空白。"
+# AI Translated
msgid "Name has to be unique."
-msgstr "名稱必須是獨特的。"
+msgstr "名稱不可重複。"
msgid "OK"
msgstr "確認"
@@ -1301,8 +1478,9 @@ msgstr "新樣式名稱"
msgid "Save as new style"
msgstr "儲存為新的樣式"
+# AI Translated
msgid "Only valid font can be added to style."
-msgstr "只有有效字體才能加入樣式。"
+msgstr "只有有效字型才能加入樣式。"
msgid "Add style to my list."
msgstr "把樣式加入我的列表。"
@@ -1316,9 +1494,10 @@ msgstr "刪除樣式"
msgid "Can't remove the last existing style."
msgstr "無法刪除僅存的樣式。"
+# AI Translated
#, boost-format
msgid "Are you sure you want to permanently remove the \"%1%\" style?"
-msgstr "您確認要永久移除「%1%」樣式嗎?"
+msgstr "確定要永久移除「%1%」樣式嗎?"
#, boost-format
msgid "Delete \"%1%\" style."
@@ -1385,11 +1564,13 @@ msgstr ""
msgid "Revert using of model surface."
msgstr "還原模型表面的應用設定。"
+# AI Translated
msgid "Revert Transformation per glyph."
-msgstr "重設每個字形的變更設定。"
+msgstr "還原每個字形的變換設定。"
+# AI Translated
msgid "Set global orientation for whole text."
-msgstr "設定整段文字的全域座標。"
+msgstr "為整段文字設定統一方向。"
msgid "Set position and orientation per glyph."
msgstr "設定每個字形的位置和方向。"
@@ -1418,8 +1599,9 @@ msgctxt "Alignment"
msgid "Bottom"
msgstr "底部"
+# AI Translated
msgid "Revert alignment."
-msgstr "還原對。"
+msgstr "還原對齊。"
#. TRN EmbossGizmo: font units
msgid "points"
@@ -1431,20 +1613,24 @@ msgstr "還原字元間距"
msgid "Distance between characters"
msgstr "字元間距"
+# AI Translated
msgid "Revert gap between lines"
-msgstr "還原線間距"
+msgstr "還原行間距"
+# AI Translated
msgid "Distance between lines"
-msgstr "線間距"
+msgstr "行間距"
msgid "Undo boldness"
msgstr "還原粗體"
+# AI Translated
msgid "Tiny / Wide glyphs"
-msgstr "細小 / 寬大字形」"
+msgstr "細小 / 寬大字形"
+# AI Translated
msgid "Undo letter's skew"
-msgstr "還原文字變形"
+msgstr "還原文字傾斜"
msgid "Italic strength ratio"
msgstr "斜體效果的強度比例"
@@ -1461,28 +1647,34 @@ msgstr "還原旋轉"
msgid "Rotate text Clockwise."
msgstr "文字順時針旋轉。"
+# AI Translated
msgid "Unlock the text's rotation when moving text along the object's surface."
-msgstr "在沿物體表面移動文字時解鎖文字旋轉。"
+msgstr "沿物件表面移動文字時,解除鎖定文字旋轉。"
+# AI Translated
msgid "Lock the text's rotation when moving text along the object's surface."
-msgstr "將文字旋轉鎖定,並沿物體表面移動文字。"
+msgstr "沿物件表面移動文字時,鎖定文字旋轉。"
+# AI Translated
msgid "Select from True Type Collection."
-msgstr "從 True Type 中選擇。"
+msgstr "從 True Type 字型集中選擇。"
+# AI Translated
msgid "Set text to face camera"
-msgstr "將文字面對相機"
+msgstr "使文字面向相機"
msgid "Orient the text towards the camera."
msgstr "將文字朝向相機定向。"
+# AI Translated
#, boost-format
msgid "Font \"%1%\" can't be used. Please select another."
-msgstr "字型 「%1%」 無法使用,請選擇其他字型。"
+msgstr "字型「%1%」無法使用,請選擇其他字型。"
+# AI Translated
#, boost-format
msgid "Can't load exactly same font (\"%1%\"). Application selected a similar one (\"%2%\"). You have to specify font for enable edit text."
-msgstr "無法載入完全相同的字體「%1%」。已自動選擇相似的字體「%2%」。若要啟用文字編輯,請指定字體。"
+msgstr "無法載入完全相同的字型「%1%」。已自動選擇相似的字型「%2%」。若要啟用文字編輯,請指定字型。"
msgid "No symbol"
msgstr "沒有任何字元"
@@ -1503,11 +1695,12 @@ msgstr "字型"
msgid "Height"
msgstr "高度"
+# AI Translated
#. TRN - Input label. Be short as possible
#. Copy surface of model on surface of the embossed text
#. TRN - Input label. Be short as possible
msgid "Use surface"
-msgstr "用面"
+msgstr "使用表面"
#. TRN - Input label. Be short as possible
#. Option to change projection on curved surface
@@ -1537,24 +1730,26 @@ msgstr "粗細"
msgid "Skew ratio"
msgstr "傾斜比率"
+# AI Translated
#. TRN - Input label. Be short as possible
#. Distance from model surface to be able
#. move text as part fully into not flat surface
#. move text as modifier fully out of not flat surface
#. TRN - Input label. Be short as possible
msgid "From surface"
-msgstr "從面"
+msgstr "距表面"
#. TRN - Input label. Be short as possible
#. Keep vector from bottom to top of text aligned with printer Y axis
msgid "Keep up"
msgstr "保持向上"
+# AI Translated
#. TRN - Input label. Be short as possible.
#. Some Font file contain multiple fonts inside and
#. this is numerical selector of font inside font collections
msgid "Collection"
-msgstr "字集"
+msgstr "字型集"
#. TRN - Title in Undo/Redo stack after rotate with SVG around emboss axe
msgid "SVG rotate"
@@ -1576,13 +1771,15 @@ msgstr "SVG 操作"
msgid "SVG"
msgstr "SVG"
+# AI Translated
#, boost-format
msgid "Opacity (%1%)"
-msgstr "不透明度 (%1%)"
+msgstr "不透明度(%1%)"
+# AI Translated
#, boost-format
msgid "Color gradient (%1%)"
-msgstr "顏色漸層 (%1%)"
+msgstr "顏色漸層(%1%)"
msgid "Undefined fill type"
msgstr "未定義的填充類型"
@@ -1593,34 +1790,40 @@ msgstr "線性漸層"
msgid "Radial gradient"
msgstr "徑向漸層"
+# AI Translated
msgid "Open filled path"
-msgstr "打開填充路徑"
+msgstr "填充路徑未封閉"
msgid "Undefined stroke type"
msgstr "未定義的筆劃類型"
+# AI Translated
msgid "Path can't be healed from self-intersection and multiple points."
-msgstr "無法修復具有自交錯和多點的路徑。"
+msgstr "無法修復路徑的自相交與重複點。"
msgid "Final shape contains self-intersection or multiple points with same coordinate."
msgstr "最終形狀包含自相交或多個具有相同座標的點。"
+# AI Translated
#, boost-format
msgid "Shape is marked as invisible (%1%)."
-msgstr "形狀被標記為隱形 (%1%)。"
+msgstr "形狀已標記為不可見(%1%)。"
+# AI Translated
#. TRN: The first placeholder is shape identifier, the second is text describing the problem.
#, boost-format
msgid "Fill of shape (%1%) contains unsupported: %2%."
-msgstr "形狀 (%1%) 的填充包含不支援的內容:%2%。"
+msgstr "形狀(%1%)的填充包含不支援的內容:%2%。"
+# AI Translated
#, boost-format
msgid "Stroke of shape (%1%) is too thin (minimal width is %2% mm)."
-msgstr "形狀 (%1%) 的筆劃過細(最小寬度為 %2% 毫米)"
+msgstr "形狀(%1%)的筆劃過細(最小寬度為 %2% mm)。"
+# AI Translated
#, boost-format
msgid "Stroke of shape (%1%) contains unsupported: %2%."
-msgstr "形狀 (%1%) 的筆劃包含不支援的內容:%2%。"
+msgstr "形狀(%1%)的筆劃包含不支援的內容:%2%。"
# AI Translated
msgid "Not valid state please report reproduction steps on github"
@@ -1668,13 +1871,15 @@ msgstr ""
"不要將本地路徑儲存到 3MF 檔案中。\n"
"同時停用「從硬碟重新載入」選項。"
+# AI Translated
#. TRN: An menu option to convert the SVG into an unmodifiable model part.
msgid "Bake"
-msgstr "固化"
+msgstr "烘焙"
+# AI Translated
#. TRN: Tooltip for the menu item.
msgid "Bake into model as uneditable part"
-msgstr "固化至模型中作為不可編輯部分"
+msgstr "烘焙至模型中,成為不可編輯的零件"
msgid "Save as"
msgstr "儲存為"
@@ -1688,16 +1893,19 @@ msgstr "儲存為 SVG 檔案。"
msgid "Size in emboss direction."
msgstr "浮雕方向的尺寸。"
+# AI Translated
#. TRN: The placeholder contains a number.
#, boost-format
msgid "Scale also changes amount of curve samples (%1%)"
-msgstr "縮放同時會改變曲線取樣數量(%1%)。"
+msgstr "縮放同時會改變曲線取樣數量(%1%)"
+# AI Translated
msgid "Width of SVG."
-msgstr "SVG 寬。"
+msgstr "SVG 的寬度。"
+# AI Translated
msgid "Height of SVG."
-msgstr "SVG 高。"
+msgstr "SVG 的高度。"
msgid "Lock/unlock the aspect ratio of the SVG."
msgstr "鎖定/解鎖 SVG 的長寬比。"
@@ -1739,17 +1947,20 @@ msgstr "選擇用於浮雕的 SVG 檔案:"
msgid "File does NOT exist (%1%)."
msgstr "檔案不存在(%1%)。"
+# AI Translated
#, boost-format
msgid "Filename has to end with \".svg\" but you selected %1%"
-msgstr "副檔名必須為「.svg」 ,但選擇的是 %1%"
+msgstr "副檔名必須為 \".svg\",但您選擇的是 %1%"
+# AI Translated
#, boost-format
msgid "Nano SVG parser can't load from file (%1%)."
-msgstr "Nano SVG 解析器無法載入檔案 (%1%)。"
+msgstr "Nano SVG 解析器無法載入檔案(%1%)。"
+# AI Translated
#, boost-format
msgid "SVG file does NOT contain a single path to be embossed (%1%)."
-msgstr "SVG 檔案無要浮雕的路徑 (%1%)。"
+msgstr "SVG 檔案中沒有任何可浮雕的路徑(%1%)。"
msgid "No feature"
msgstr "沒有特徵"
@@ -1781,8 +1992,9 @@ msgstr "圓中心"
msgid "Select"
msgstr "選擇"
+# AI Translated
msgid "Select point"
-msgstr "選點"
+msgstr "選取點"
# AI Translated
msgctxt "Keyboard Shortcut"
@@ -1797,17 +2009,20 @@ msgctxt "Keyboard Shortcut"
msgid "Esc"
msgstr "Esc"
+# AI Translated
msgid "Cancel a feature until exit"
-msgstr "在退出前取消功能"
+msgstr "逐一取消已選特徵,直到退出"
msgid "Measure"
msgstr "測量"
+# AI Translated
msgid "Please confirm explosion ratio = 1, and please select at least one object."
-msgstr "請確認爆炸比例設為 1,並至少選擇一個物件"
+msgstr "請確認爆炸比例為 1,並至少選取一個物件。"
+# AI Translated
msgid "Edit to scale"
-msgstr "編輯比例"
+msgstr "編輯數值以縮放"
msgctxt "Verb"
msgid "Scale all"
@@ -1822,30 +2037,45 @@ msgstr "直徑"
msgid "Length"
msgstr "長度"
-msgid "Selection"
-msgstr "所選項目"
+# AI Translated
+msgid "Face 1 (Fixed)"
+msgstr "面 1(固定)"
-msgid " (Moving)"
-msgstr " (移動)"
+# AI Translated
+msgid "Face 2 (Moving)"
+msgstr "面 2(移動)"
+# AI Translated
+msgid "Point 1 (Fixed)"
+msgstr "點 1(固定)"
+
+# AI Translated
+msgid "Point 2 (Moving)"
+msgstr "點 2(移動)"
+
+# AI Translated
+msgid "Selection 1"
+msgstr "所選項目 1"
+
+# AI Translated
msgid ""
"Select 2 faces on objects and \n"
" make objects assemble together."
-msgstr "選擇物件上的兩個面,使物件組裝在一起。"
+msgstr ""
+"選取物件上的 2 個面,\n"
+"使物件組裝在一起。"
+# AI Translated
msgid ""
"Select 2 points or circles on objects and \n"
" specify distance between them."
-msgstr "選擇物件上的兩個點或圓,指定它們之間的距離。"
+msgstr ""
+"選取物件上的 2 個點或圓,\n"
+"並指定兩者之間的距離。"
-msgid "Face"
-msgstr "面"
-
-msgid " (Fixed)"
-msgstr " (固定)"
-
-msgid "Point"
-msgstr "點"
+# AI Translated
+msgid "Selection 2"
+msgstr "所選項目 2"
msgid ""
"Feature 1 has been reset, \n"
@@ -1860,14 +2090,16 @@ msgstr "複製到剪貼簿"
msgid "Angle"
msgstr "角度"
+# AI Translated
msgid "Perpendicular distance"
-msgstr "垂直方向"
+msgstr "垂直距離"
msgid "Distance"
msgstr "距離"
+# AI Translated
msgid "Direct distance"
-msgstr "直接距離"
+msgstr "直線距離"
msgid "Distance XYZ"
msgstr "XYZ 距離"
@@ -1893,55 +2125,83 @@ msgstr "平行距離:"
msgid "Flip by Face 2"
msgstr "透過面 2 翻轉"
+# AI Translated
msgid "Entering Measure gizmo"
-msgstr "進入測量工具模式"
+msgstr "進入測量工具"
+# AI Translated
msgid "Leaving Measure gizmo"
-msgstr "退出測量工具模式"
+msgstr "退出測量工具"
# AI Translated
msgctxt "Assembly tool"
msgid "Assemble"
msgstr "組裝"
+# AI Translated
msgid "Please confirm explosion ratio = 1 and select at least two volumes."
-msgstr "請確認爆炸比例 = 1 並選擇至少兩個零件。"
+msgstr "請確認爆炸比例 = 1,並至少選取兩個零件。"
+# AI Translated
msgid "Please select at least two volumes."
-msgstr "請選擇至少兩個零件。"
+msgstr "請至少選取兩個零件。"
msgid "(Moving)"
msgstr "(移動中)"
+# AI Translated
msgid "Point and point assembly"
-msgstr "點對點裝配"
+msgstr "點對點組裝"
+# AI Translated
msgid "Warning: please select two different meshes."
-msgstr "警告:請選擇兩個不同的網格。"
+msgstr "警告:請選取兩個不同的網格。"
+# AI Translated
msgid "Warning: please select Plane's feature."
-msgstr "警告:請選擇平面的特徵。"
+msgstr "警告:請選取平面特徵。"
+# AI Translated
msgid "Warning: please select Point's or Circle's feature."
-msgstr "警告:請選擇點或圓的特徵。"
+msgstr "警告:請選取點或圓特徵。"
+# AI Translated
msgid ""
"It is recommended to assemble objects first,\n"
"because they are restricted to the bed \n"
"and only parts can be lifted."
msgstr ""
-"建議先組合物件,\n"
-"因為它們被固定在列印板上,\n"
-"只有零件可以被抬起。"
+"建議先組裝物件,\n"
+"因為物件會限制在列印板上,\n"
+"只有零件可以抬起。"
+# AI Translated
msgid "Face and face assembly"
-msgstr "面對面裝配"
+msgstr "面對面組裝"
+# AI Translated
msgid "Entering Assembly gizmo"
-msgstr "進入組合體工具模式"
+msgstr "進入組裝工具"
+# AI Translated
msgid "Leaving Assembly gizmo"
-msgstr "退出組合體模式"
+msgstr "退出組裝工具"
+
+# AI Translated
+msgid "Parts of a cut object cannot be moved"
+msgstr "已切割物件的零件無法移動"
+
+# AI Translated
+msgid "Aligning to the plate is available in X and Y only"
+msgstr "對齊至列印板僅適用於 X 和 Y 方向"
+
+# AI Translated
+msgid "Turn off Auto-Drop for the selected objects to move them in Z"
+msgstr "若要沿 Z 軸移動所選物件,請先關閉其「自動落板」"
+
+# AI Translated
+msgid "All selected objects must be on the same plate"
+msgstr "所有選取的物件必須位於同一個列印板上"
msgid "Shift+"
msgstr "Shift+"
@@ -1962,8 +2222,9 @@ msgstr "未定義"
msgid "%1% was replaced with %2%"
msgstr "%1% 已被 %2% 替換"
+# AI Translated
msgid "The configuration may be generated by a newer version of OrcaSlicer."
-msgstr "此設定可能是新版本的 Orca Slicer 所產生。"
+msgstr "此設定可能由新版本的 OrcaSlicer 產生。"
msgid "Some values have been replaced. Please check them:"
msgstr "部分數值已被更換,請檢查:"
@@ -1980,9 +2241,10 @@ msgstr "列印裝置"
msgid "The configuration package was loaded, but some values were not recognized."
msgstr "設定檔已被載入,但部分數值無法識別。"
+# AI Translated
#, boost-format
msgid "The configuration file “%1%” was loaded, but some values were not recognized."
-msgstr "設定檔「%1%」 已被載入,但部分數值無法識別。"
+msgstr "設定檔「%1%」已載入,但部分數值無法識別。"
# AI Translated
#, c-format, boost-format
@@ -2050,25 +2312,29 @@ msgstr "Masked SLA 檔案"
msgid "Draco files"
msgstr "Draco 檔案"
+# AI Translated
msgid "OrcaSlicer will terminate because of running out of memory. It may be a bug. It will be appreciated if you report the issue to our team."
-msgstr "系統記憶體耗盡,Orca Slicer 即將停止並且結束。這可能是個錯誤,希望您可以回報此問題,我們非常感激。"
+msgstr "OrcaSlicer 將因記憶體不足而結束。這可能是程式錯誤,若您能向我們的團隊回報此問題,我們將不勝感激。"
msgid "Fatal error"
msgstr "致命錯誤"
+# AI Translated
msgid "OrcaSlicer will terminate because of a localization error. It will be appreciated if you report the specific scenario this issue happened."
-msgstr "遇到語系本地化錯誤,Orca Slicer 即將停止並且結束。希望您可以回報發生此問題的具體狀況,我們非常感激。"
+msgstr "OrcaSlicer 將因本地化錯誤而結束。若您能回報發生此問題的具體情境,我們將不勝感激。"
msgid "Critical error"
msgstr "嚴重錯誤"
+# AI Translated
#, boost-format
msgid "OrcaSlicer got an unhandled exception: %1%"
-msgstr "Orca Slicer 遭遇到一個未處理的例外:%1%"
+msgstr "OrcaSlicer 發生未處理的例外狀況:%1%"
msgid "Untitled"
msgstr "未命名"
+# AI Translated
msgid ""
"Since version 2.4.0, OrcaSlicer syncs user profiles through Orca Cloud instead of Bambu Cloud.\n"
"\n"
@@ -2078,7 +2344,7 @@ msgid ""
msgstr ""
"自 2.4.0 版本起,OrcaSlicer 透過 Orca Cloud(而非 Bambu Cloud)同步使用者設定檔。\n"
"\n"
-"若要移轉您現有的設定檔,請登入 Orca Cloud,設定檔將會自動轉移。若要進一步了解 OrcaSlicer 如何儲存與同步您的設定檔,或手動移轉您的預設,請參閱我們的 wiki。\n"
+"若要遷移您現有的設定檔,請登入 Orca Cloud,設定檔將會自動轉移。若要進一步了解 OrcaSlicer 如何儲存與同步您的設定檔,或手動遷移您的預設,請參閱我們的 wiki。\n"
"\n"
"若您先前並未使用 Bambu Cloud 同步設定檔,則此變更不會影響您,您可以放心忽略此訊息。"
@@ -2103,45 +2369,53 @@ msgstr "登入資訊已過期。請重新登入。"
msgid "Incorrect password"
msgstr "密碼不正確"
+# AI Translated
#, c-format, boost-format
msgid "Connect %s failed! [SN:%s, code=%s]"
-msgstr "連線 %s 失敗。[SN:%s, code=%s]"
+msgstr "無法連線至 %s![SN:%s, code=%s]"
+# AI Translated
msgid ""
"Orca Slicer requires the Microsoft WebView2 Runtime to operate certain features.\n"
"Click Yes to install it now."
-msgstr "Orca Slicer 需要 Microsoft WebView2 Runtime 才能操作某些功能,請點選 Yes 進行安裝。"
+msgstr ""
+"Orca Slicer 需要 Microsoft WebView2 Runtime 才能使用部分功能。\n"
+"按一下「是」立即安裝。"
msgid "WebView2 Runtime"
msgstr "WebView2 Runtime"
+# AI Translated
+#, boost-format
msgid ""
"The Microsoft WebView2 Runtime could not be installed.\n"
"Some features, including the setup wizard, may appear blank until it is installed.\n"
-"Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+"Please install it manually from %1% and restart Orca Slicer."
msgstr ""
"無法安裝 Microsoft WebView2 Runtime。\n"
-"在安裝完成前,包括設定精靈在內的部分功能可能顯示為空白。\n"
-"請從 https://developer.microsoft.com/microsoft-edge/webview2/ 手動安裝,然後重新啟動 Orca Slicer。"
+"在安裝完成之前,部分功能(包括設定精靈)可能會顯示空白。\n"
+"請從 %1% 手動安裝,然後重新啟動 Orca Slicer。"
#, c-format, boost-format
msgid "Resources path does not exist or is not a directory: %s"
msgstr "資源路徑不存在或並非目錄:%s"
+# AI Translated
#, c-format, boost-format
msgid ""
"%s\n"
"Do you want to continue?"
msgstr ""
"%s\n"
-"是否繼續?"
+"要繼續嗎?"
msgid "Remember my choice"
msgstr "記住我的選擇"
+# AI Translated
#, c-format, boost-format
msgid "Click to download new version in default browser: %s"
-msgstr "在預設瀏覽器中開啟頁面下載最新版本: %s"
+msgstr "按一下以在預設瀏覽器中下載新版本:%s"
msgid "OrcaSlicer needs an update"
msgstr "OrcaSlicer 需要更新"
@@ -2178,6 +2452,7 @@ msgstr "正在載入目前的預設"
msgid "Showing main window"
msgstr "顯示主視窗"
+# AI Translated
msgid ""
"The OrcaSlicer configuration file may be corrupted and cannot be parsed.\n"
"OrcaSlicer has attempted to recreate the configuration file.\n"
@@ -2185,7 +2460,7 @@ msgid ""
msgstr ""
"OrcaSlicer 的設定檔可能已損壞,無法解析。\n"
"OrcaSlicer 已嘗試重新建立設定檔。\n"
-"請注意,應用程式設定將會丟失,但列印裝置設定不會受到影響。"
+"請注意,應用程式設定將會遺失,但列印裝置設定檔不會受到影響。"
msgid "Rebuild"
msgstr "重新建構"
@@ -2196,14 +2471,17 @@ msgstr "載入目前預設"
msgid "Loading a mode view"
msgstr "載入模式視圖"
+# AI Translated
msgid "Choose one file (3MF):"
-msgstr "選擇一個檔案(3MF)"
+msgstr "選擇一個檔案(3MF):"
+# AI Translated
msgid "Choose one or more files (3MF/STEP/STL/SVG/OBJ/AMF/USD*/ABC/PLY):"
-msgstr "選擇一個或多個檔案(3MF/STEP/STL/SVG/OBJ/AMF/USD*/ABC/PLY):"
+msgstr "選擇一個或多個檔案(3MF/STEP/STL/SVG/OBJ/AMF/USD*/ABC/PLY):"
+# AI Translated
msgid "Choose one or more files (3MF/STEP/STL/SVG/OBJ/AMF):"
-msgstr "選擇一個或多個檔案(3MF/STEP/STL/SVG/OBJ/AMF):"
+msgstr "選擇一個或多個檔案(3MF/STEP/STL/SVG/OBJ/AMF):"
msgid "Choose ZIP file"
msgstr "選擇 ZIP 檔"
@@ -2211,8 +2489,9 @@ msgstr "選擇 ZIP 檔"
msgid "Choose one file (GCODE/3MF):"
msgstr "選擇一個檔案(GCODE/3MF):"
+# AI Translated
msgid "Ext"
-msgstr "擠出機"
+msgstr "外部"
msgid "Some presets are modified."
msgstr "部分預設已被修改。"
@@ -2239,8 +2518,9 @@ msgstr "在執行切片過程中不允許新增或開啟專案!"
msgid "Open Project"
msgstr "開啟專案"
+# AI Translated
msgid "The version of Orca Slicer is too low and needs to be updated to the latest version before it can be used normally."
-msgstr "Orca Slicer 版本過舊,需要更新到最新版本才能正常使用"
+msgstr "Orca Slicer 版本過舊,需要更新至最新版本才能正常使用。"
# AI Translated
msgid "Cloud sync conflict:"
@@ -2353,8 +2633,69 @@ msgstr ""
msgid "Network Plug-in Restriction"
msgstr "網路外掛程式限制"
+# AI Translated
msgid "Privacy Policy Update"
-msgstr "隱私協定更新"
+msgstr "隱私政策更新"
+
+# AI Translated
+msgid "All your filament presets are available on the printers they were made for."
+msgstr "您所有的線材預設都可在其對應的列印裝置上使用。"
+
+# AI Translated
+msgid "Migrate Filament Presets"
+msgstr "遷移線材預設"
+
+# AI Translated
+msgid ""
+"OrcaSlicer 2.5.0 restructured many system filament presets to fix incorrect profiles and prepare for future features. As a result, the presets below no longer show on some printers they were made for. Sorry for the trouble; this is a one-time fix.\n"
+"\n"
+"Add those printers back to your presets now? Your presets are backed up first. You can also do this later from Help > Migrate Filament Presets."
+msgstr ""
+"OrcaSlicer 2.5.0 重構了許多系統線材預設,以修正不正確的設定檔,並為未來功能做準備。因此,下列預設不再顯示於部分原本適用的列印裝置上。造成不便,敬請見諒;這是一次性修正。\n"
+"\n"
+"現在要將這些列印裝置加回您的預設嗎?操作前會先備份您的預設。您也可以稍後從「說明 > 遷移線材預設」執行此操作。"
+
+# AI Translated
+#, boost-format
+msgid "%1% (based on %2%)"
+msgstr "%1%(基於 %2%)"
+
+msgid "Don't remind me again"
+msgstr "不要再提醒我"
+
+# AI Translated
+msgid "Your presets could not be backed up, so they were not migrated."
+msgstr "無法備份您的預設,因此未進行遷移。"
+
+# AI Translated
+msgid "The user presets folder could not be locked, so nothing was migrated. Another OrcaSlicer instance may be saving presets; try again later from Help > Migrate Filament Presets."
+msgstr "無法鎖定使用者預設資料夾,因此未遷移任何內容。可能有另一個 OrcaSlicer 實例正在儲存預設;請稍後從「說明 > 遷移線材預設」再試一次。"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets could not be migrated. A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"無法遷移您的線材預設。預設的備份已儲存到:\n"
+"%1%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Your filament presets were migrated. Select them again in the filament list where you used them.\n"
+"\n"
+"A backup of your presets was saved to:\n"
+"%1%"
+msgstr ""
+"您的線材預設已遷移。請在原本使用它們的線材清單中重新選擇。\n"
+"\n"
+"預設的備份已儲存到:\n"
+"%1%"
+
+# AI Translated
+msgid "These presets could not be migrated:"
+msgstr "無法遷移這些預設:"
#, c-format, boost-format
msgid "your Orca Cloud profile (user ID: \"%s\")"
@@ -2367,6 +2708,7 @@ msgstr "您的預設設定檔"
msgid "a user profile (folder: \"%s\")"
msgstr "使用者設定檔(資料夾:\"%s\")"
+# AI Translated
#, c-format, boost-format
msgid ""
"Existing user presets were found in %s.\n"
@@ -2374,18 +2716,19 @@ msgid ""
"This will copy your presets so they are available under your new account."
msgstr ""
"在 %s 中找到現有的使用者預設。\n"
-"您要將它們移轉到您的 OrcaCloud 設定檔嗎?\n"
-"這將複製您的預設,使其可在您的新帳戶下使用。"
+"您要將它們遷移到您的 OrcaCloud 設定檔嗎?\n"
+"這會複製您的預設,讓您在新帳號下也能使用。"
msgid "Migrate User Presets"
msgstr "遷移使用者預設"
+# AI Translated
#, c-format, boost-format
msgid ""
"Failed to migrate user presets:\n"
"%s"
msgstr ""
-"遷移使用者預設失敗:\n"
+"無法遷移使用者預設:\n"
"%s"
msgid "The number of user presets cached in the cloud has exceeded the upper limit, newly created user presets can only be used locally."
@@ -2420,7 +2763,7 @@ msgstr "正在載入使用者預設"
# AI Translated
msgid "There is an update available. Open the preset bundle dialog to update it."
-msgstr "有可用的更新。請開啟預設組合對話框進行更新。"
+msgstr "有可用的更新。請開啟設定檔組對話框進行更新。"
#, c-format, boost-format
msgid "%s has been removed."
@@ -2429,7 +2772,7 @@ msgstr "%s 已移除。"
# AI Translated
#, c-format, boost-format
msgid "Switching Orca Slicer to language %s failed."
-msgstr "將 Orca Slicer 切換至語言 %s 失敗。"
+msgstr "無法將 Orca Slicer 切換為 %s 語言。"
# AI Translated
msgid ""
@@ -2437,7 +2780,7 @@ msgid ""
"You may need to reconfigure the missing locales, likely by running the \"locale-gen\" and \"dpkg-reconfigure locales\" commands.\n"
msgstr ""
"\n"
-"您可能需要重新設定缺少的地區設定,通常是執行「locale-gen」和「dpkg-reconfigure locales」命令。\n"
+"您可能需要重新設定缺少的地區設定,通常是執行 \"locale-gen\" 和 \"dpkg-reconfigure locales\" 命令。\n"
# AI Translated
msgid "Application will close."
@@ -2445,7 +2788,7 @@ msgstr "應用程式將會關閉。"
# AI Translated
msgid "Orca Slicer - Switching language failed"
-msgstr "Orca Slicer - 切換語言失敗"
+msgstr "Orca Slicer:無法切換語言"
msgid "*"
msgstr "*"
@@ -2474,7 +2817,10 @@ msgstr "已重新整理外掛。"
# AI Translated
#, c-format, boost-format
msgid "Failed to refresh plugins: %s"
-msgstr "重新整理外掛失敗:%s"
+msgstr "無法重新整理外掛:%s"
+
+msgid "Unknown error"
+msgstr "未知錯誤"
# AI Translated
msgid "Select plugin package"
@@ -2491,11 +2837,13 @@ msgstr "外掛終端機"
msgid "Changing application language"
msgstr "正在為應用程式切換語言"
+# AI Translated
msgid "The uploads are still ongoing"
-msgstr "正在上傳任務中"
+msgstr "仍有上傳正在進行"
+# AI Translated
msgid "Stop them and continue anyway?"
-msgstr "停止並且繼續?"
+msgstr "要停止這些上傳並繼續嗎?"
msgid "Ongoing uploads"
msgstr "正在進行的上傳"
@@ -2527,9 +2875,10 @@ msgstr "重新命名"
msgid "Orca Slicer GUI initialization failed"
msgstr "Orca Slicer 圖形介面初始化失敗"
+# AI Translated
#, boost-format
msgid "Fatal error, exception: %1%"
-msgstr "致命錯誤,遭遇到異常:%1%"
+msgstr "致命錯誤,發生例外狀況:%1%"
msgid "Quality"
msgstr "品質"
@@ -2543,14 +2892,16 @@ msgstr "填充"
msgid "Support"
msgstr "支撐"
+# AI Translated
msgid "Flush options"
-msgstr "換料沖刷選項"
+msgstr "清理選項"
msgid "Speed"
msgstr "速度"
+# AI Translated
msgid "Strength"
-msgstr "結構"
+msgstr "強度"
msgid "Top solid layers"
msgstr "頂部外殼層數"
@@ -2558,17 +2909,20 @@ msgstr "頂部外殼層數"
msgid "Top minimum shell thickness"
msgstr "頂部外殼最小厚度"
+# AI Translated
msgid "Top Surface Density"
-msgstr "頂部表面密度"
+msgstr "頂面密度"
+# AI Translated
msgid "Bottom solid layers"
-msgstr "底部實心層"
+msgstr "底部外殼層數"
msgid "Bottom minimum shell thickness"
msgstr "底部外殼最小厚度"
+# AI Translated
msgid "Bottom Surface Density"
-msgstr "底部表面密度"
+msgstr "底面密度"
msgid "Ironing"
msgstr "熨燙"
@@ -2582,8 +2936,9 @@ msgstr "擠出機"
msgid "Extrusion width"
msgstr "擠出寬度"
+# AI Translated
msgid "Wipe options"
-msgstr "擦除選項"
+msgstr "擦拭選項"
msgid "Bed adhesion"
msgstr "熱床黏接"
@@ -2597,8 +2952,9 @@ msgstr "新增負零件"
msgid "Add Modifier"
msgstr "新增修改器"
+# AI Translated
msgid "Add Support Blocker"
-msgstr "新增支撐遮蔽"
+msgstr "新增支撐遮蔽器"
msgid "Add Support Enforcer"
msgstr "新增支撐產生器"
@@ -2607,23 +2963,29 @@ msgstr "新增支撐產生器"
msgid "Add Precise Seam"
msgstr "新增精準接縫"
+# AI Translated
msgid "Add text"
-msgstr "加文字"
+msgstr "新增文字"
+# AI Translated
msgid "Add negative text"
-msgstr "加負文字"
+msgstr "新增負文字"
+# AI Translated
msgid "Add text modifier"
-msgstr "加文字修改器"
+msgstr "新增文字修改器"
+# AI Translated
msgid "Add SVG part"
-msgstr "加SVG物件"
+msgstr "新增 SVG 零件"
+# AI Translated
msgid "Add negative SVG"
-msgstr "加負SVG"
+msgstr "新增負 SVG"
+# AI Translated
msgid "Add SVG modifier"
-msgstr "加SVG修改器"
+msgstr "新增 SVG 修改器"
msgid "Select settings"
msgstr "選擇設定"
@@ -2662,8 +3024,9 @@ msgstr "錐體"
msgid "Disc"
msgstr "圓盤"
+# AI Translated
msgid "Torus"
-msgstr "環面"
+msgstr "圓環體"
msgid "Orca Cube"
msgstr "Orca 立方體"
@@ -2675,11 +3038,13 @@ msgstr "OrcaSliced 複合模型"
msgid "Orca Badge"
msgstr "Orca 徽章"
+# AI Translated
msgid "Orca Tolerance Test"
-msgstr "Orca 誤差測試"
+msgstr "Orca 公差測試"
+# AI Translated
msgid "3DBenchy"
-msgstr "測試小船"
+msgstr "3DBenchy"
msgid "Cali Cat"
msgstr "校正貓"
@@ -2696,16 +3061,15 @@ msgstr "史丹福兔子"
msgid "Orca String Hell"
msgstr "Orca 拉絲測試"
+# AI Translated
msgid ""
"This model features text embossment on the top surface. For optimal results, it is advisable to set the 'One Wall Threshold (min_width_top_surface)' to 0 for the 'Only One Wall on Top Surfaces' to work best.\n"
"Yes - Change these settings automatically\n"
"No - Do not change these settings for me"
msgstr ""
-"這個模型在頂部表面具有文字浮雕效果。為了達到最佳效果,建議將「One Wall Threshold(min_width_top_surface)」設為 0,以便「僅在頂部表面用一層牆壁」能夠最佳運作。\n"
-"是 - 自動更改這些設定\n"
-"否 - 不為我更改這些設定這個模型在頂部表面具有文字浮雕效果。為了達到最佳效果,建議將「One Wall Threshold(min_width_top_surface)」設為 0,以便「僅在頂部表面用一層牆壁」能夠最佳運作。\n"
-"是 - 自動更改這些設定\n"
-"否 - 不為我更改這些設定"
+"這個模型的頂面有文字浮雕。為了達到最佳效果,建議將「單層牆臨界值(min_width_top_surface)」設為 0,讓「頂面單層牆」發揮最佳效果。\n"
+"是:自動更改這些設定\n"
+"否:不要幫我更改這些設定"
msgid "Suggestion"
msgstr "建議"
@@ -2725,18 +3089,21 @@ msgstr "更改類型"
msgid "Negative Part"
msgstr "負零件"
+# AI Translated
msgid "Support Blocker"
-msgstr "支撐去除器"
+msgstr "支撐遮蔽器"
+# AI Translated
msgid "Support Enforcer"
-msgstr "支撐添加器"
+msgstr "支撐產生器"
# AI Translated
msgid "Precise Seam"
msgstr "精準接縫"
+# AI Translated
msgid "Change part type"
-msgstr "更換零件型別"
+msgstr "更改零件類型"
msgid "Set as An Individual Object"
msgstr "設定為獨立物件"
@@ -2744,20 +3111,24 @@ msgstr "設定為獨立物件"
msgid "Set as Individual Objects"
msgstr "設定為獨立物件"
+# AI Translated
msgid "Fill bed with copies"
-msgstr "填滿列印底板"
+msgstr "用副本填滿列印板"
+# AI Translated
msgid "Fill the remaining area of bed with copies of the selected object"
-msgstr "複製選取物件來填滿列印底板的空白區域"
+msgstr "用所選物件的副本填滿列印板的剩餘區域"
+# AI Translated
msgid "Printable"
-msgstr "要列印的"
+msgstr "可列印"
msgid "Auto Drop"
msgstr "自動落板"
+# AI Translated
msgid "Automatically drops the selected object to the build plate."
-msgstr "自動將選取的物件放置到列印板上"
+msgstr "自動將選取的物件放置到列印板上。"
msgid "Fix Model"
msgstr "修復模型"
@@ -2765,14 +3136,16 @@ msgstr "修復模型"
msgid "Export as one STL"
msgstr "匯出為單一 STL"
+# AI Translated
msgid "Export as STLs"
-msgstr "匯出為 STLs"
+msgstr "匯出為多個 STL"
msgid "Export as one DRC"
msgstr "匯出為單一 DRC"
+# AI Translated
msgid "Export as DRCs"
-msgstr "匯出為 DRCs"
+msgstr "匯出為多個 DRC"
msgid "Reload from disk"
msgstr "從硬碟重新載入"
@@ -2814,17 +3187,21 @@ msgstr "縮放到列印空間範圍大小"
msgid "Scale an object to fit the build volume"
msgstr "縮放物件以適應列印空間範圍大小"
+# AI Translated
msgid "Flush Options"
-msgstr "換料沖刷選項"
+msgstr "清理選項"
+# AI Translated
msgid "Flush into objects' infill"
-msgstr "將換料的廢料使用在物件的填充"
+msgstr "清理至物件的填充"
+# AI Translated
msgid "Flush into this object"
-msgstr "將換料的廢料使用在這個物件"
+msgstr "清理至此物件"
+# AI Translated
msgid "Flush into objects' support"
-msgstr "將換料的廢料使用在物件的支撐"
+msgstr "清理至物件的支撐"
msgid "Edit in Parameter Table"
msgstr "在參數表格中編輯"
@@ -2841,17 +3218,21 @@ msgstr "從公尺轉換"
msgid "Restore to Meter"
msgstr "還原到公尺"
+# AI Translated
msgid "Assemble"
-msgstr "組合"
+msgstr "組裝"
+# AI Translated
msgid "Assemble the selected objects into an object with multiple parts"
-msgstr "組合所選物件為一個多零件物件"
+msgstr "將所選物件組裝為一個多零件物件"
+# AI Translated
msgid "Assemble the selected objects into an object with single part"
-msgstr "組合所選物件為一個單零件物件"
+msgstr "將所選物件組裝為一個單零件物件"
+# AI Translated
msgid "Mesh boolean"
-msgstr "網格布林操作"
+msgstr "網格布林運算"
msgid "Mesh boolean operations including union and subtraction"
msgstr "包括併集和差集的網格布林運算"
@@ -2942,8 +3323,9 @@ msgstr "拆分到物件"
msgid "Split the selected object into multiple objects"
msgstr "拆分所選物件為多個物件"
+# AI Translated
msgid "To Parts"
-msgstr "到零件"
+msgstr "拆分到零件"
msgid "Split the selected object into multiple parts"
msgstr "拆分所選物件為多個零件"
@@ -2957,8 +3339,9 @@ msgstr "拆分所選物件"
msgid "Auto orientation"
msgstr "自動定向"
+# AI Translated
msgid "Auto orient the object to improve print quality"
-msgstr "自動調整物件轉向以提高列印品質。"
+msgstr "自動定向物件以提高列印品質"
msgid "Edit"
msgstr "編輯"
@@ -2982,8 +3365,9 @@ msgstr "全選此列印板上所有物件"
msgid "Select All Plates"
msgstr "全選所有列印板"
+# AI Translated
msgid "Select all objects on all plates"
-msgstr "選擇所有列印板上的所有物件"
+msgstr "選取所有列印板上的所有物件"
msgid "Delete All"
msgstr "刪除所有"
@@ -2994,8 +3378,9 @@ msgstr "刪除此列印板上所有物件"
msgid "Arrange"
msgstr "自動擺放"
+# AI Translated
msgid "Arrange current plate"
-msgstr "自動擺放此列印版"
+msgstr "自動擺放目前列印板"
msgid "Reload All"
msgstr "重新載入所有物件"
@@ -3003,6 +3388,22 @@ msgstr "重新載入所有物件"
msgid "Reload all from disk"
msgstr "從硬碟重新載入所有物件"
+# AI Translated
+msgid "Fix All"
+msgstr "全部修復"
+
+# AI Translated
+msgid "Fix all models on the current plate"
+msgstr "修復此列印板上的所有模型"
+
+# AI Translated
+msgid "Fix All Plates"
+msgstr "修復所有列印板"
+
+# AI Translated
+msgid "Fix all models on all plates"
+msgstr "修復所有列印板上的所有模型"
+
msgid "Auto Rotate"
msgstr "自動旋轉方向"
@@ -3051,11 +3452,17 @@ msgstr "細分網格"
msgid "(Lost color)"
msgstr "(失去顏色)"
+# AI Translated
msgid "Center"
-msgstr "居中"
+msgstr "置中"
-msgid "Drop"
-msgstr "下降"
+# AI Translated
+msgid "Align/Distribute"
+msgstr "對齊/分布"
+
+# AI Translated
+msgid "Align and distribute objects"
+msgstr "對齊及分布物件"
msgid "Edit Process Settings"
msgstr "編輯列印參數"
@@ -3075,8 +3482,9 @@ msgstr "更換線材"
msgid "Set Filament for selected items"
msgstr "為所選項目設定使用的線材"
+# AI Translated
msgid "Automatically snaps the selected object to the build plate."
-msgstr "自動將選取的物件貼齊至列印板"
+msgstr "自動將選取的物件貼齊至列印板。"
msgid "Unlock"
msgstr "解鎖"
@@ -3084,38 +3492,43 @@ msgstr "解鎖"
msgid "Lock"
msgstr "鎖定"
+# AI Translated
msgid "Edit Plate Name"
-msgstr "編輯列印板名"
+msgstr "編輯列印板名稱"
msgid "Name"
msgstr "名稱"
+# AI Translated
msgid "Fila."
-msgstr "線材。"
+msgstr "線材"
#, c-format, boost-format
msgid "%1$d error repaired"
msgid_plural "%1$d errors repaired"
msgstr[0] "%1$d 個錯誤已修復"
+# AI Translated
#, c-format, boost-format
msgid "Error: %1$d non-manifold edge."
msgid_plural "Error: %1$d non-manifold edges."
-msgstr[0] "%1$d 個非流形邊緣。"
+msgstr[0] "錯誤:%1$d 個非流形邊。"
msgid "Remaining errors"
msgstr "剩餘錯誤"
+# AI Translated
#, c-format, boost-format
msgid "%1$d non-manifold edge"
msgid_plural "%1$d non-manifold edges"
-msgstr[0] "%1$d 個非流形邊緣"
+msgstr[0] "%1$d 個非流形邊"
msgid "Click the icon to repair model object"
msgstr "點選圖示來修復模型"
+# AI Translated
msgid "Right click the icon to drop the object settings"
-msgstr "滑鼠右鍵點選此圖示以放棄物件的列印設定"
+msgstr "滑鼠右鍵點選此圖示以捨棄物件的列印設定"
msgid "Click the icon to reset all settings of the object"
msgstr "滑鼠左鍵點選此圖示可重設物件的所有列印設定"
@@ -3123,8 +3536,9 @@ msgstr "滑鼠左鍵點選此圖示可重設物件的所有列印設定"
msgid "Right click the icon to drop the object printable property"
msgstr "滑鼠右鍵點選此圖示以捨棄物件的可列印屬性"
+# AI Translated
msgid "Click the icon to toggle printable properties of the object"
-msgstr "滑鼠左點選此圖示可切換這個物件的可列印屬性"
+msgstr "滑鼠左鍵點選此圖示可切換這個物件的可列印屬性"
msgid "Click the icon to edit support painting of the object"
msgstr "滑鼠左鍵點選此圖示可編輯這個物件的支撐繪製"
@@ -3209,8 +3623,9 @@ msgstr "切換到各個物件設定模式以編輯修改器的設定參數。"
msgid "Switch to per-object setting mode to edit process settings of selected objects."
msgstr "切換到物件設定模式編輯所選物件的列印參數。"
+# AI Translated
msgid "Remove paint-on fuzzy skin"
-msgstr "移除塗刷的絨毛效果"
+msgstr "移除繪製的絨毛表面"
# AI Translated
msgid "Delete Settings"
@@ -3219,17 +3634,21 @@ msgstr "刪除設定"
msgid "Remove height range"
msgstr "移除高度範圍"
+# AI Translated
msgid "Delete connector from object which is a part of cut"
-msgstr "刪除的連接件屬於切割物件的一部分"
+msgstr "從切割物件刪除連接件"
+# AI Translated
msgid "Delete solid part from object which is a part of cut"
-msgstr "刪除的實體屬於切割物件的一部分"
+msgstr "從切割物件刪除實體零件"
+# AI Translated
msgid "Delete negative volume from object which is a part of cut"
-msgstr "刪除的負體積屬於切割物件的一部分"
+msgstr "從切割物件刪除負體積"
+# AI Translated
msgid "To save cut correspondence you can delete all connectors from all related objects."
-msgstr "為保證切割關係,您可以將所有關聯物件的連接件一起刪除。"
+msgstr "若要保留切割對應關係,您可以刪除所有相關物件的所有連接件。"
# AI Translated
msgid ""
@@ -3238,10 +3657,10 @@ msgid ""
"\n"
"To manipulate with solid parts or negative volumes you have to invalidate cut information first."
msgstr ""
-"此操作將打破切割對應關係。\n"
-"模型一致性可能無法再保證。\n"
+"此操作將破壞切割對應關係。\n"
+"之後將無法保證模型一致性。\n"
"\n"
-"如果要操作子零件或者負體積,需要先解除切割關係。"
+"若要操作實體零件或負體積,必須先解除切割關係。"
msgid "Delete all connectors"
msgstr "刪除所有連接件"
@@ -3253,14 +3672,16 @@ msgstr "不允許刪除物件的最後一個實體零件。"
msgid "Delete part"
msgstr "刪除零件"
+# AI Translated
msgid "The target object contains only one part and can not be split."
-msgstr "目標物件只有一個部件,無法進行拆分。"
+msgstr "目標物件只有一個零件,無法拆分。"
msgid "Split to parts"
msgstr "拆分為零件"
+# AI Translated
msgid "Assembly"
-msgstr "組合體"
+msgstr "組合件"
# AI Translated
msgid "Merge parts to an object"
@@ -3289,8 +3710,9 @@ msgstr "要修改的物件設定"
msgid "Part Settings to Modify"
msgstr "要修改的零件設定"
+# AI Translated
msgid "Layer Range Settings to Modify"
-msgstr "要修改的圖層範圍設定"
+msgstr "要修改的層範圍設定"
msgid "Part manipulation"
msgstr "零件操作"
@@ -3311,14 +3733,17 @@ msgstr "刪除選取項目"
msgid "Layer"
msgstr "層"
+# AI Translated
msgid "Selection conflicts"
-msgstr "選擇衝突"
+msgstr "選取衝突"
+# AI Translated
msgid "If the first selected item is an object, the second should also be an object."
-msgstr "如果第一個選擇的是物件,那麼第二個選擇的也必須是物件。"
+msgstr "如果第一個選取的是物件,第二個選取的也必須是物件。"
+# AI Translated
msgid "If the first selected item is a part, the second should be a part in the same object."
-msgstr "如果第一個選擇的是零件,那麼第二個選擇的也必須是同一個物件中的零件。"
+msgstr "如果第一個選取的是零件,第二個選取的也必須是同一個物件中的零件。"
msgid "The type of the last solid object part cannot be changed."
msgstr "不允許修改物件中最後一個實體零件的類型。"
@@ -3331,7 +3756,7 @@ msgstr "選擇零件類型"
# AI Translated
msgid "Instances to Separated Objects"
-msgstr "實例分割為物件"
+msgstr "將實例拆分為獨立物件"
msgid "Enter new name"
msgstr "輸入新名稱"
@@ -3339,16 +3764,24 @@ msgstr "輸入新名稱"
msgid "Renaming"
msgstr "重新命名"
+# AI Translated
msgid "The following model object has been repaired"
msgid_plural "The following model objects have been repaired"
-msgstr[0] "以下模型物件已被修復"
+msgstr[0] "以下模型物件已修復"
msgid "Failed to repair the following model object"
msgid_plural "Failed to repair the following model objects"
msgstr[0] "以下模型物件修復失敗"
+# AI Translated
+#, c-format, boost-format
+msgid "%1$d model object needed no repair."
+msgid_plural "%1$d model objects needed no repair."
+msgstr[0] "%1$d 個模型物件無需修復。"
+
+# AI Translated
msgid "Repairing was canceled"
-msgstr "修復被取消"
+msgstr "已取消修復"
#, c-format, boost-format
msgid "\"%s\" will exceed 1 million faces after this subdivision, which may increase slicing time. Do you want to continue?"
@@ -3377,11 +3810,13 @@ msgstr "新增高度範圍"
msgid "Invalid numeric."
msgstr "數值錯誤。"
+# AI Translated
msgid "One cell can only be copied to one or more cells in the same column."
-msgstr "一個單元格僅能被複製到同一列的一個或多個單元格"
+msgstr "一個儲存格只能複製到同一欄中的一個或多個儲存格。"
+# AI Translated
msgid "Copying multiple cells is not supported."
-msgstr "不支援多個單元格的複製"
+msgstr "不支援複製多個儲存格。"
msgid "Outside"
msgstr "列印板外"
@@ -3401,8 +3836,10 @@ msgstr "自動"
msgid "Mouse ear"
msgstr "圓盤"
+# AI Translated
+# Needs human review: Brim type option shared by the object table and the brim_type setting (PrintConfig.cpp:2068): check 繪製 reads right as a brim type (painted brim ears).
msgid "Painted"
-msgstr "上色"
+msgstr "繪製"
msgid "Outer brim only"
msgstr "僅外側"
@@ -3419,11 +3856,9 @@ msgstr "無 Brim"
msgid "Outer wall speed"
msgstr "外牆速度"
-msgid "Plate"
-msgstr "列印板"
-
+# AI Translated
msgid "Brim"
-msgstr "邊緣"
+msgstr "Brim"
msgid "Object/Part Settings"
msgstr "物件/零件設定"
@@ -3448,12 +3883,13 @@ msgstr "詳情"
msgid "Open Preferences"
msgstr "開啟偏好設定"
+# AI Translated
msgid "Open next tip"
-msgstr "開啟下一條提示。"
+msgstr "開啟下一條提示"
# AI Translated
msgid "Open documentation in web browser"
-msgstr "在網頁瀏覽器中開啟說明文件。"
+msgstr "在網頁瀏覽器中開啟說明文件"
msgid "Color"
msgstr "顏色"
@@ -3485,32 +3921,34 @@ msgstr "輸入當層使用的自訂 G-code:"
msgid "Jump to layer"
msgstr "跳至層"
+# AI Translated
msgid "Please enter the layer number."
-msgstr "請輸入層數"
+msgstr "請輸入層號。"
msgid "Add Pause"
msgstr "新增暫停列印"
+# AI Translated
msgid "Insert a pause command at the beginning of this layer."
-msgstr "在該層的初始位置插入暫停。"
+msgstr "在此層的開頭插入暫停指令。"
msgid "Add Custom G-code"
msgstr "新增自訂 G-code"
+# AI Translated
msgid "Insert custom G-code at the beginning of this layer."
-msgstr "在該層的初始位置插入自訂 G-code。"
+msgstr "在此層的開頭插入自訂 G-code。"
msgid "Add Custom Template"
msgstr "新增自訂範本"
+# AI Translated
msgid "Insert template custom G-code at the beginning of this layer."
-msgstr "在該層的初始位置插入範本自訂 G-code。"
-
-msgid "Filament "
-msgstr "線材"
+msgstr "在此層的開頭插入範本自訂 G-code。"
+# AI Translated
msgid "Change filament at the beginning of this layer."
-msgstr "在該層的初始位置更換線材。"
+msgstr "在此層的開頭更換線材。"
msgid "Delete Pause"
msgstr "刪除暫停列印"
@@ -3524,8 +3962,9 @@ msgstr "編輯自訂 G-code"
msgid "Delete Custom G-code"
msgstr "刪除自訂 G-code"
+# AI Translated
msgid "Delete Filament Change"
-msgstr "刪除線材更換"
+msgstr "刪除換料"
msgid "No printer"
msgstr "無列印裝置"
@@ -3533,8 +3972,9 @@ msgstr "無列印裝置"
msgid "..."
msgstr "..."
+# AI Translated
msgid "Failed to connect to the server"
-msgstr "無法連線伺服器"
+msgstr "無法連線至伺服器"
msgid "Check the status of current system services"
msgstr "請檢查目前系統服務狀態"
@@ -3551,35 +3991,42 @@ msgstr "描述"
msgid "info"
msgstr "資訊"
+# AI Translated
msgid "Failed to connect to cloud service"
-msgstr "無法連線到雲端服務"
+msgstr "無法連線至雲端服務"
msgid "Please click on the hyperlink above to view the cloud service status"
msgstr "請點選上方的超連結以檢視雲端服務狀態"
+# AI Translated
msgid "Failed to connect to the printer"
-msgstr "無法連線列印裝置"
+msgstr "無法連線至列印裝置"
+# AI Translated
msgid "Connection to printer failed"
-msgstr "連線列印裝置失敗"
+msgstr "無法連線至列印裝置"
+# AI Translated
msgid "Please check the network connection of the printer and Orca."
-msgstr "請檢查列印裝置與 Orca Slicer 的網路連線。"
+msgstr "請檢查列印裝置與 Orca 的網路連線。"
msgid "Connecting..."
msgstr "連線中..."
+# AI Translated
msgid "Auto Refill"
-msgstr "自動補充"
+msgstr "自動補料"
+# AI Translated
msgid "Load"
-msgstr "匯入"
+msgstr "進料"
msgid "Unload"
msgstr "退料"
+# AI Translated
msgid "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically load or unload filament."
-msgstr "選擇一個 AMS 槽,然後按下『上料』或『退料』按鈕來自動載入或卸載線材。"
+msgstr "選擇一個 AMS 槽位,然後按下「進料」或「退料」按鈕,即可自動進料或退料。"
msgid "Filament type is unknown which is required to perform this action. Please set target filament's informations."
msgstr "線材類型未知,無法執行此操作。請設定目標線材的資訊。"
@@ -3597,8 +4044,10 @@ msgstr "仍然更改"
msgid "Off"
msgstr "關閉"
+# AI Translated
+msgctxt "air_duct"
msgid "Filter"
-msgstr "篩選"
+msgstr "過濾"
msgid "Enabling filtration redirects the right fan to filter gas, which may reduce cooling performance."
msgstr "啟用過濾功能會將右側風扇用於過濾氣體,這可能會降低冷卻效能。"
@@ -3624,8 +4073,9 @@ msgstr "全冷卻"
msgid "Init"
msgstr "初始化"
+# AI Translated
msgid "Chamber"
-msgstr "倉室"
+msgstr "腔體"
msgid "Innerloop"
msgstr "內循環"
@@ -3636,11 +4086,13 @@ msgstr "頂部"
msgid "The fan controls the temperature during printing to improve print quality. The system automatically adjusts the fan's switch and speed according to different printing materials."
msgstr "風扇在列印過程中控制溫度以提高列印品質。系統會根據不同的列印線材自動調整風扇的開關和速度。"
+# AI Translated
msgid "Cooling mode is suitable for printing PLA/PETG/TPU materials and filters the chamber air."
-msgstr "冷卻模式適用於列印 PLA/PETG/TPU 線材,並過濾倉室空氣。"
+msgstr "冷卻模式適用於列印 PLA/PETG/TPU 線材,並過濾腔體空氣。"
+# AI Translated
msgid "Heating mode is suitable for printing ABS/ASA/PC/PA materials and circulates filters the chamber air."
-msgstr "加熱模式適用於列印 ABS/ASA/PC/PA 線材,並循環過濾倉室空氣。"
+msgstr "加熱模式適用於列印 ABS/ASA/PC/PA 線材,並循環過濾腔體空氣。"
msgid "Strong cooling mode is suitable for printing PLA/TPU materials. In this mode, the printouts will be fully cooled."
msgstr "強冷卻模式適用於列印 PLA/TPU 線材。在此模式下,列印成品將完全冷卻。"
@@ -3671,8 +4123,9 @@ msgstr "零件"
msgid "Aux"
msgstr "輔助"
+# AI Translated
msgid "Nozzle1"
-msgstr "噴嘴1"
+msgstr "噴嘴 1"
msgid "MC Board"
msgstr "主控板"
@@ -3692,17 +4145,20 @@ msgstr "加熱噴嘴"
msgid "Cut filament"
msgstr "切斷線材"
+# AI Translated
msgid "Pull back the current filament"
-msgstr "抽回線材"
+msgstr "抽回目前的線材"
+# AI Translated
msgid "Push new filament into extruder"
-msgstr "送出新的線材到擠出機"
+msgstr "將新線材送入擠出機"
msgid "Grab new filament"
msgstr "咬入線材"
+# AI Translated
msgid "Purge old filament"
-msgstr "清除舊線材"
+msgstr "清理舊線材"
msgid "Confirm extruded"
msgstr "確認擠出"
@@ -3711,12 +4167,19 @@ msgid "Check filament location"
msgstr "檢查線材位置"
# AI Translated
-msgid "Switch"
-msgstr "切換"
+msgctxt "Verb"
+msgid "Pause"
+msgstr "暫停"
# AI Translated
-msgid "hotend"
-msgstr "熱端"
+#. TRN Filament change step: the printer switches to the other extruder.
+msgid "Switch extruder"
+msgstr "切換擠出機"
+
+# AI Translated
+#. TRN Filament change step: the printer switches to another hotend.
+msgid "Switch hotend"
+msgstr "切換熱端"
# AI Translated
msgid "Wait for AMS cooling"
@@ -3724,21 +4187,21 @@ msgstr "等待 AMS 冷卻"
# AI Translated
msgid "Switch current filament at Filament Track Switch"
-msgstr "在 Filament Track Switch 切換目前線材"
+msgstr "在線材路徑切換器切換目前線材"
# AI Translated
msgid "Pull back current filament at Filament Track Switch"
-msgstr "在 Filament Track Switch 退回目前線材"
+msgstr "在線材路徑切換器退回目前線材"
# AI Translated
msgid "Switch track at Filament Track Switch"
-msgstr "在 Filament Track Switch 切換軌道"
+msgstr "在線材路徑切換器切換軌道"
# AI Translated
#. TRN AMS unit number, then slot number
#, c-format, boost-format
msgid "AMS-%d-%d Slot"
-msgstr "AMS-%d-%d 料槽"
+msgstr "AMS-%d-%d 槽位"
# AI Translated
#, c-format, boost-format
@@ -3759,8 +4222,9 @@ msgstr "所有"
msgid "No selected items..."
msgstr "未選取任何項目..."
+# AI Translated
msgid "All items selected..."
-msgstr "已選取所有項目……"
+msgstr "已選取所有項目..."
msgid "No matching items..."
msgstr "沒有符合的項目..."
@@ -3805,9 +4269,10 @@ msgstr "請設定噴嘴數量"
msgid "Error: Can not set both nozzle count to zero."
msgstr "錯誤:無法將兩個噴嘴數量都設定為零。"
+# AI Translated
#, c-format, boost-format
msgid "Error: Nozzle count can not exceed %d."
-msgstr "錯誤:噴嘴數量不可以超過%d。"
+msgstr "錯誤:噴嘴數量不可超過 %d。"
msgid "Confirm"
msgstr "確認"
@@ -3840,11 +4305,13 @@ msgstr "偵測到未知噴嘴。請重新整理以更新資訊(未重新整理
msgid "Unknown nozzle detected. Refresh to update (unrefreshed nozzles will be skipped in slicing)."
msgstr "偵測到未知噴嘴。請重新整理以更新資訊(未重新整理的噴嘴將在切片時被排除)。"
+# AI Translated
msgid "Please confirm whether the required nozzle diameter and flow rate match the currently displayed values."
-msgstr "請核對噴嘴直徑和流量是否與顯示值一致。"
+msgstr "請確認所需的噴嘴直徑與流量是否與目前顯示的數值相符。"
+# AI Translated
msgid "Your printer has different nozzles installed. Please select a nozzle for this print."
-msgstr "您的印表機安裝了不同的噴嘴。請選擇一個噴嘴進行本次列印。"
+msgstr "您的列印裝置安裝了不同的噴嘴。請為本次列印選擇一個噴嘴。"
msgid "Ignore"
msgstr "忽略"
@@ -3857,21 +4324,25 @@ msgstr "未知"
msgid "Done."
msgstr "完成。"
+# AI Translated
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-arrange these objects."
msgstr ""
-"所有選取的物件都處於被鎖定的列印板上,\n"
-"無法對這些物件進行自動排列。選定的物件都位於鎖定的列印板上,\n"
-"無法對其進行自動排列。"
+"所有選取的物件都位於已鎖定的列印板上。\n"
+"無法自動擺放這些物件。"
+# AI Translated
msgid "No arrangeable objects are selected."
-msgstr "未選擇欲排列的物件象。"
+msgstr "未選取可擺放的物件。"
+# AI Translated
msgid ""
"This plate is locked.\n"
"Cannot auto-arrange on this plate."
-msgstr "該列印板處於鎖定狀態,無法執行自動排列。"
+msgstr ""
+"此列印板已鎖定。\n"
+"無法在此列印板上自動擺放。"
msgid "Arranging..."
msgstr "自動擺放中..."
@@ -3885,8 +4356,10 @@ msgid "Arranging"
msgstr "自動擺放"
# AI Translated
-msgid "Arranging "
-msgstr "自動擺放 "
+#. TRN Progress status. %1% is the name of the object being arranged.
+#, boost-format
+msgid "Arranging %1%"
+msgstr "自動擺放 %1%"
msgid "Arranging canceled."
msgstr "已取消自動擺放。"
@@ -3897,8 +4370,9 @@ msgstr "已完成自動擺放,但是有未被擺到列印板內的物件,可
msgid "Arranging done."
msgstr "已完成自動擺放。"
+# AI Translated
msgid "Arrange failed. Found some exceptions when processing object geometries."
-msgstr "自動擺放失敗,處理物件位置時遇到異常。"
+msgstr "自動擺放失敗。處理物件幾何資料時發生例外狀況。"
#, c-format, boost-format
msgid ""
@@ -3908,47 +4382,93 @@ msgstr ""
"自動擺放忽略了以下無法放入單一列印板的物件:\n"
"%s"
+# AI Translated
msgid ""
"All the selected objects are on a locked plate.\n"
"Cannot auto-orient these objects."
msgstr ""
-"所有選取的物件都處於被鎖定的列印板上,\n"
-"無法對這些物件做自動轉向。"
+"所有選取的物件都位於已鎖定的列印板上。\n"
+"無法自動定向這些物件。"
+# AI Translated
msgid ""
"This plate is locked.\n"
"Cannot auto-orient on this plate."
msgstr ""
-"該列印板處於鎖定狀態,\n"
-"無法對其進行自動轉向。"
+"此列印板已鎖定。\n"
+"無法在此列印板上自動定向。"
+# AI Translated
msgid "Orienting..."
-msgstr "自動旋轉方向..."
+msgstr "正在自動定向..."
-msgid "Orienting"
-msgstr "自動旋轉方向"
+# AI Translated
+#. TRN Progress status. %1% is the name of the object being oriented.
+#, boost-format
+msgid "Orienting %1%"
+msgstr "正在自動定向 %1%"
+# AI Translated
msgid "Orienting canceled."
-msgstr "自動轉向已取消。"
+msgstr "已取消自動定向。"
+# AI Translated
msgid "Filling"
-msgstr "填充中"
+msgstr "正在填滿"
+# AI Translated
+#. TRN Progress status of Fill bed. %1% is the name of the object being copied.
+#, boost-format
+msgid "Filling %1%"
+msgstr "正在以 %1% 填滿列印板"
+
+# AI Translated
msgid "Bed filling canceled."
-msgstr "填充列印板已取消。"
+msgstr "已取消填滿列印板。"
+# AI Translated
msgid "Bed filling done."
-msgstr "填充列印板已完成。"
+msgstr "已完成填滿列印板。"
+# AI Translated
msgid "Searching for optimal orientation"
-msgstr "查詢最佳方向"
+msgstr "正在搜尋最佳方向"
+# AI Translated
msgid "Orientation search canceled."
-msgstr "定向搜尋已取消."
+msgstr "已取消方向搜尋。"
msgid "Orientation found."
msgstr "找到方向。"
+# AI Translated
+msgid "Best surface quality"
+msgstr "最佳表面品質"
+
+# AI Translated
+msgid "Optimize object rotation for best surface quality."
+msgstr "最佳化物件旋轉方向,以獲得最佳表面品質。"
+
+# AI Translated
+msgid "Reduced overhang slopes"
+msgstr "減少懸空斜面"
+
+# AI Translated
+msgid ""
+"Optimize object rotation to have minimum amount of overhangs needing support structures.\n"
+"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set."
+msgstr ""
+"最佳化物件旋轉方向,使需要支撐結構的懸空部分降到最少。\n"
+"注意:若未設定抬高高度,此方法會嘗試尋找物件最適合接觸列印板的表面。"
+
+# AI Translated
+msgid "Lowest Z height"
+msgstr "最低 Z 高度"
+
+# AI Translated
+msgid "Rotate the model to have the lowest z height for faster print time."
+msgstr "旋轉模型以取得最低 Z 高度,加快列印速度。"
+
msgid "Logging in"
msgstr "登入中"
@@ -3964,11 +4484,13 @@ msgstr "列印檔案資料異常,請重新切片。"
msgid "Task canceled."
msgstr "任務已取消。"
+# AI Translated
msgid "Upload task timed out. Please check the network status and try again."
-msgstr "上傳任務逾時,請排查網路狀態後重試。"
+msgstr "上傳任務逾時,請檢查網路狀態後重試。"
+# AI Translated
msgid "Cloud service connection failed. Please try again."
-msgstr "雲端服務連線失敗,請重試。"
+msgstr "無法連線至雲端服務,請重試。"
msgid "Print file not found; please slice again."
msgstr "未找到列印檔案,請重新切片。"
@@ -3979,11 +4501,13 @@ msgstr "列印檔案超過最大允許大小(1GB),請簡化模型後重新
msgid "Failed to send the print job. Please try again."
msgstr "無法傳送列印作業,請重試。"
+# AI Translated
msgid "Failed to upload file to ftp. Please try again."
-msgstr "上傳檔案至 FTP 失敗,請重試。"
+msgstr "無法將檔案上傳至 FTP,請重試。"
+# AI Translated
msgid "Check the current status of the Bambu Lab server by clicking on the link above."
-msgstr "點選上方的連結檢查 Bambu 伺服器的即時狀態。"
+msgstr "按一下上方的連結,檢查 Bambu Lab 伺服器目前的狀態。"
msgid "The size of the print file is too large. Please adjust the file size and try again."
msgstr "列印檔案過大,請調整檔案大小後重試。"
@@ -3994,17 +4518,20 @@ msgstr "未找到列印檔案,請重新切片後再傳送列印。"
msgid "Failed to upload print file via FTP. Please check the network status and try again."
msgstr "無法將列印檔案上傳至 FTP。請檢查網路狀態並重試。"
+# AI Translated
msgid "Sending print job over LAN"
-msgstr "正在透過區域網路傳送列印作業"
+msgstr "正在透過 LAN 傳送列印作業"
msgid "Sending print job through cloud service"
msgstr "正在透過雲端服務傳送列印作業"
+# AI Translated
msgid "Print task sending times out."
-msgstr "連線逾時。"
+msgstr "傳送列印任務逾時。"
+# AI Translated
msgid "Service Unavailable"
-msgstr "暫停服務"
+msgstr "服務無法使用"
msgid "Unknown Error."
msgstr "未知錯誤。"
@@ -4012,23 +4539,27 @@ msgstr "未知錯誤。"
msgid "Sending print configuration"
msgstr "正在傳送列印設定"
+# AI Translated
#, c-format, boost-format
msgid "Successfully sent. Will automatically jump to the device page in %ss"
-msgstr "已傳送完成,即將自動跳至裝置頁面(%s秒)"
+msgstr "已成功傳送,將於 %s 秒後自動跳至裝置頁面"
+# AI Translated
#, c-format, boost-format
msgid "Successfully sent. Will automatically jump to the next page in %ss"
-msgstr "已成功傳送。將自動跳至 %ss 中的下一頁"
+msgstr "已成功傳送,將於 %s 秒後自動跳至下一頁"
#, c-format, boost-format
msgid "Access code:%s IP address:%s"
msgstr "存取代碼:%s IP 位址:%s"
+# AI Translated
msgid "A Storage needs to be inserted before printing via LAN."
-msgstr "透過區域網路列印前需要插入儲存空間。"
+msgstr "透過 LAN 列印前需要插入儲存空間。"
+# AI Translated
msgid "Sending print job over LAN, but the Storage in the printer is abnormal and print-issues may be caused by this."
-msgstr "正在透過區域網路傳送列印作業,但列印裝置中的儲存空間異常,可能會導致列印問題。"
+msgstr "正在透過 LAN 傳送列印作業,但列印裝置中的儲存空間異常,可能會導致列印問題。"
msgid "The Storage in the printer is abnormal. Please replace it with a normal Storage before sending print job to printer."
msgstr "列印裝置中的儲存空間異常。請在傳送列印作業前更換為正常的儲存空間。"
@@ -4039,21 +4570,24 @@ msgstr "列印裝置中的儲存空間為唯讀。請在傳送列印作業前更
msgid "Encountered an unknown error with the Storage status. Please try again."
msgstr "儲存空間狀態出現未知錯誤。請重試。"
+# AI Translated
msgid "Sending G-code file over LAN"
-msgstr "透過區域網路傳送 G-code 檔案"
+msgstr "正在透過 LAN 傳送 G-code 檔案"
msgid "Sending G-code file to SD card"
msgstr "傳送 G-code 檔案到 SD 記憶卡"
+# AI Translated
#, c-format, boost-format
msgid "Successfully sent. Close current page in %s s"
-msgstr "傳送成功。即將關閉目前頁面(%s秒)"
+msgstr "傳送成功。將於 %s 秒後關閉目前頁面"
msgid "Storage needs to be inserted before sending to printer."
msgstr "傳送到列印裝置前需要插入儲存空間。"
+# AI Translated
msgid "Sending G-code file over LAN, but the Storage in the printer is abnormal and print-issues may be caused by this."
-msgstr "正在透過區域網路傳送 G-code 檔案,但列印裝置中的儲存空間異常,可能會導致列印問題。"
+msgstr "正在透過 LAN 傳送 G-code 檔案,但列印裝置中的儲存空間異常,可能會導致列印問題。"
msgid "The Storage in the printer is abnormal. Please replace it with a normal Storage before sending to printer."
msgstr "列印裝置中的儲存空間異常。請在傳送到列印裝置前更換為正常的儲存空間。"
@@ -4125,9 +4659,10 @@ msgstr "剩餘時間:計算中..."
msgid "The heated bed's thermal preconditioning helps optimize the first layer print quality. Printing will start once preconditioning is complete."
msgstr "熱床的熱預調節有助於最佳化首層列印品質。預調節完成後即開始列印。"
+# AI Translated
#, c-format, boost-format
msgid "Remaining time: %dmin%ds"
-msgstr "剩餘時間:%d分%d秒"
+msgstr "剩餘時間:%d 分 %d 秒"
msgid "Importing SLA archive"
msgstr "匯入 SLA 存檔"
@@ -4145,8 +4680,9 @@ msgstr "匯入完成。"
msgid "The imported SLA archive did not contain any presets. The current SLA presets were used as fallback."
msgstr "匯入的 SLA 存檔不包含任何預設。目前的 SLA 預設被用作備用選項。"
+# AI Translated
msgid "You cannot load an SLA project with a multi-part object on the bed"
-msgstr "您無法在列印板上載入包含多部分物件的 SLA 項目"
+msgstr "列印板上有多零件物件時,無法載入 SLA 專案"
msgid "Please check your object list before preset changing."
msgstr "請在更改預設之前檢查您的物件清單。"
@@ -4163,8 +4699,9 @@ msgstr "下載失敗"
msgid "Canceled"
msgstr "已取消"
+# AI Translated
msgid "Installed successfully"
-msgstr "安裝成功。"
+msgstr "安裝成功"
msgid "Installing"
msgstr "安裝中"
@@ -4179,11 +4716,13 @@ msgstr "授權資訊"
msgid "Copyright"
msgstr "版權"
+# AI Translated
msgid "License"
-msgstr "憑證"
+msgstr "授權"
+# AI Translated
msgid "Orca Slicer is licensed under "
-msgstr "Orca Slicer 授權於"
+msgstr "Orca Slicer 採用的授權條款為 "
msgid "GNU Affero General Public License, version 3"
msgstr "GNU Affero 通用公共授權條款,版本 3"
@@ -4239,18 +4778,28 @@ msgstr "最近的專案"
msgid "Go to Plate"
msgstr "前往列印板"
+msgid "Device"
+msgstr "裝置"
+
+# AI Translated
+msgid "Device (Web)"
+msgstr "裝置(網頁)"
+
+msgid "Multi-device"
+msgstr "多臺裝置"
+
msgid "AMS Materials Setting"
msgstr "AMS 線材設定"
msgid "Close"
msgstr "關閉"
+# AI Translated
msgid ""
"Nozzle\n"
"Temperature"
msgstr ""
"噴嘴\n"
-"溫度噴嘴\n"
"溫度"
msgid "max"
@@ -4263,11 +4812,9 @@ msgstr "最小"
msgid "The input value should be greater than %1% and less than %2%"
msgstr "輸入的範圍在 %1% 和 %2% 之間"
+# AI Translated
msgid "Factors of Flow Dynamics Calibration"
-msgstr "動態流量係數校正"
-
-msgid "Wiki Guide"
-msgstr "Wiki 指南"
+msgstr "動態流量校正係數"
msgid "PA Profile"
msgstr "PA 設定檔"
@@ -4284,26 +4831,38 @@ msgstr "不支援在列印時修改 AMS 槽位資訊"
msgid "Setting Virtual slot information while printing is not supported"
msgstr "不支援在列印時設定虛擬槽位資訊"
+# AI Translated
msgid "Are you sure you want to clear the filament information?"
-msgstr "您確認要清除線材資訊嗎?"
+msgstr "您確定要清除線材資訊嗎?"
msgid "You need to select the material type and color first."
msgstr "您需要先選擇線材類型和顏色。"
+# AI Translated
#, c-format, boost-format
msgid "Please input a valid value (K in %.1f~%.1f)"
-msgstr "請輸入有效的數值 (K於 %.1f~%.1f 之間)"
+msgstr "請輸入有效的數值(K 於 %.1f~%.1f 之間)"
+# AI Translated
#, c-format, boost-format
msgid "Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"
-msgstr "請輸入有效的數值 (K於 %.1f~%.1f 之間,N於 %.1f~%.1f 之間)"
+msgstr "請輸入有效的數值(K 於 %.1f~%.1f 之間,N 於 %.1f~%.1f 之間)"
+# AI Translated
+msgid "Favorite filaments"
+msgstr "我的最愛線材"
+
+# AI Translated
+msgid "All filaments"
+msgstr "所有線材"
+
+# AI Translated
msgid ""
"The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n"
"'Device -> Print parts'"
msgstr ""
"噴嘴流量未設定。請在編輯線材前設定噴嘴流量。\n"
-"『裝置 -> 列印零件』"
+"「裝置 -> 列印零件」"
msgid "AMS"
msgstr "AMS"
@@ -4317,14 +4876,16 @@ msgstr "自訂顏色"
msgid "Dynamic flow calibration"
msgstr "動態流量校正"
+# AI Translated
msgid "The nozzle temp and max volumetric speed will affect the calibration results. Please fill in the same values as the actual printing. They can be auto-filled by selecting a filament preset."
-msgstr "噴嘴溫度和最大體積速度會影響到校正結果,請填寫與實際列印相同的數值。可透過選擇已有的材料預設來自動填寫。噴嘴溫度和最大體積速度會影響到校正結果,請填寫與實際列印相同的數值。可透過選擇已有的材料預設來自動填寫。"
+msgstr "噴嘴溫度和最大體積流量會影響校正結果,請填寫與實際列印相同的數值。可透過選擇線材預設來自動填寫。"
msgid "Nozzle Diameter"
msgstr "噴嘴直徑"
+# AI Translated
msgid "Plate Type"
-msgstr "熱床類型"
+msgstr "列印板類型"
msgid "Nozzle temperature"
msgstr "噴嘴溫度"
@@ -4338,8 +4899,9 @@ msgstr "最大體積流量"
msgid "℃"
msgstr "℃"
+# AI Translated
msgid "Bed temperature"
-msgstr "床溫"
+msgstr "熱床溫度"
msgid "mm³"
msgstr "mm³"
@@ -4350,15 +4912,17 @@ msgstr "開始"
msgid "Next"
msgstr "下一步"
+# AI Translated
msgid "Calibration completed. Please find the most uniform extrusion line on your hot bed like the picture below, and fill the value on its left side into the factor K input box."
-msgstr "校正完成。如下圖中的範例,請在您的熱床上找到最均勻完整的擠出線,並將其左側的數值填入係數 K 欄位。校正完成。如下圖中的範例,請在您的熱床上找到最均勻完整的擠出線,並將其左側的數值填入係數 K 欄位。"
+msgstr "校正完成。請依照下圖範例,在您的熱床上找到最均勻的擠出線,並將其左側的數值填入係數 K 欄位。"
msgid "Save"
msgstr "儲存"
+# AI Translated
msgctxt "Navigation"
msgid "Back"
-msgstr "背面"
+msgstr "返回"
msgid "Example"
msgstr "範例"
@@ -4407,8 +4971,9 @@ msgstr ""
"下半部區域:AMS 中的線材\n"
"您無法點選以修改"
+# AI Translated
msgid "AMS Slots"
-msgstr "AMS 槽內線材"
+msgstr "AMS 槽位"
msgid "Please select from the following filaments"
msgstr "請從以下線材中選擇"
@@ -4437,21 +5002,21 @@ msgstr "使用目前噴嘴列印可能會產生額外 %0.2f 克廢料。"
# AI Translated
#, c-format, boost-format
msgid "Tips: the filament type(%s) does not match with the filament type(%s) in the slicing file. If you want to use this slot, you can install %s instead of %s and change slot information on the 'Device' page."
-msgstr "提示:線材類型(%s)與切片檔案中的線材類型(%s)不符。若您想使用此料槽,可改為安裝 %s 而非 %s,並在「裝置」頁面變更料槽資訊。"
+msgstr "提示:線材類型(%s)與切片檔案中的線材類型(%s)不符。若您想使用此槽位,可改為安裝 %s 而非 %s,並在「裝置」頁面變更槽位資訊。"
# AI Translated
#, c-format, boost-format
msgid "Cannot select: the filament type(%s) does not match with the filament type(%s) in the slicing file. If you want to use this slot, you can install %s instead of %s and change slot information on the 'Device' page."
-msgstr "無法選擇:線材類型(%s)與切片檔案中的線材類型(%s)不符。若您想使用此料槽,可改為安裝 %s 而非 %s,並在「裝置」頁面變更料槽資訊。"
+msgstr "無法選擇:線材類型(%s)與切片檔案中的線材類型(%s)不符。若您想使用此槽位,可改為安裝 %s 而非 %s,並在「裝置」頁面變更槽位資訊。"
# AI Translated
#, c-format, boost-format
msgid "Cannot select: the slot is empty or undefined. If you want to use this slot, you can install %s and change slot information on the 'Device' page."
-msgstr "無法選擇:料槽為空或未定義。若您想使用此料槽,可安裝 %s 並在「裝置」頁面變更料槽資訊。"
+msgstr "無法選擇:槽位為空或未定義。若您想使用此槽位,可安裝 %s 並在「裝置」頁面變更槽位資訊。"
# AI Translated
msgid "Cannot select: No filament loaded in current slot."
-msgstr "無法選擇:目前料槽未裝入線材。"
+msgstr "無法選擇:目前槽位未裝入線材。"
msgid "Enable AMS"
msgstr "使用 AMS"
@@ -4462,15 +5027,17 @@ msgstr "使用 AMS 裡的線材列印"
msgid "Disable AMS"
msgstr "停用 AMS"
+# AI Translated
msgid "Print with filament on external spool"
-msgstr "使用機箱背後掛載的線材列印"
+msgstr "使用外部料盤上的線材列印"
# AI Translated
msgid "Please change the desiccant when it is too wet. The indicator may not represent accurately in following cases: when the lid is open or the desiccant pack is changed. It takes a few hours to absorb the moisture, and low temperatures also slow down the process."
msgstr "當乾燥劑過濕時,請更換乾燥劑。在以下情況下,指示器可能無法準確顯示:當蓋子打開或更換乾燥劑包時。吸收濕氣需要數小時,低溫會進一步減緩此過程。"
+# AI Translated
msgid "Configure which AMS slot should be used for a filament used in the print job."
-msgstr "設定列印作業中所使用的線材應使用哪個 AMS 槽"
+msgstr "設定列印作業中的各線材應使用哪個 AMS 槽位。"
msgid "Filament used in this print job"
msgstr "目前列印作業中使用的線材"
@@ -4484,8 +5051,9 @@ msgstr "滑鼠左鍵點選以手動選擇 AMS 槽位"
msgid "Do not Enable AMS"
msgstr "不使用 AMS"
+# AI Translated
msgid "Print using filament on external spool."
-msgstr "使用安裝在機箱背面的線材進行列印"
+msgstr "使用外部料盤上的線材列印。"
msgid "Print with filament in AMS"
msgstr "使用 AMS 裡的線材列印"
@@ -4515,8 +5083,9 @@ msgstr "當目前線材用完時,列印裝置將使用相同的線材繼續列
msgid "The printer does not currently support auto refill."
msgstr "此列印裝置目前不支援自動補料功能。"
+# AI Translated
msgid "AMS filament backup is not enabled; please enable it in the AMS settings."
-msgstr "AMS 線材備份功能尚未啟用,請在 AMS 設定中開啟。"
+msgstr "AMS 備用線材功能尚未啟用,請在 AMS 設定中啟用。"
msgid ""
"When the current filament runs out, the printer will use identical filament to continue printing.\n"
@@ -4544,8 +5113,9 @@ msgstr "當插入新的 Bambu Lab 官方線材的時候,AMS 會自動讀取線
msgid "Note: if a new filament is inserted during printing, the AMS will not automatically read any information until printing is completed."
msgstr "備註:若在列印過程中插入新的線材,AMS 會等到列印完成才會讀取線材資訊。"
+# AI Translated
msgid "When inserting a new filament, the AMS will not automatically read its information, leaving it blank for you to enter manually."
-msgstr "在插入一卷新線材時,AMS 將不會自動讀取線材資訊,預留一個空的線材資訊等待您手動輸入。在插入一卷新線材時,AMS 將不會自動讀取線材資訊,預留一個空的線材資訊等待您手動輸入。"
+msgstr "插入新的線材時,AMS 不會自動讀取線材資訊,而是保留空白供您手動輸入。"
msgid "Update on startup"
msgstr "開機時偵測"
@@ -4566,14 +5136,17 @@ msgstr "AMS 將嘗試估算 Bambu Lab 線材的剩餘量。"
msgid "AMS filament backup"
msgstr "AMS 備用線材"
+# AI Translated
msgid "AMS will continue to another spool with matching filament properties automatically when current filament runs out."
-msgstr "AMS 線材耗盡後將自動切換到屬性完全相同的線材"
+msgstr "目前線材用完時,AMS 會自動接續使用另一卷屬性相符的線材。"
+# AI Translated
msgid "Air Printing Detection"
-msgstr "偵測到憑空列印"
+msgstr "空印偵測"
+# AI Translated
msgid "Detects clogging and filament grinding, halting printing immediately to conserve time and filament."
-msgstr "偵測到卡料,已暫停列印來節省時間與線材。"
+msgstr "偵測噴嘴堵塞與線材磨損,並立即停止列印,以節省時間與線材。"
msgid "AMS Type"
msgstr "AMS 類型"
@@ -4587,14 +5160,16 @@ msgstr "列印裝置忙碌中,無法切換 AMS 類型。"
msgid "Please unload all filament before switching."
msgstr "請在切換前退出所有線材。"
+# AI Translated
msgid "AMS type switching needs firmware update, taking about 30s. Switch now?"
-msgstr "AMS 類型切換需要韌體更新,大約需要 30 秒。現在切換?"
+msgstr "切換 AMS 類型需要更新韌體,約需 30 秒。要立即切換嗎?"
msgid "Arrange AMS Order"
msgstr "排列 AMS 順序"
+# AI Translated
msgid "AMS ID will be reset. If you want a specific ID sequence, disconnect all AMS before resetting and connect them in the desired order after resetting."
-msgstr "AMS ID 將被重設。如果您需要特定的 ID 順序,請在重設前中斷連線所有 AMS,並在重設後按所需順序連線它們。"
+msgstr "AMS ID 將會重設。若需要特定的 ID 順序,請在重設前中斷所有 AMS 的連線,並在重設後依所需順序重新連接。"
msgid "File"
msgstr "檔案"
@@ -4602,11 +5177,13 @@ msgstr "檔案"
msgid "Calibration"
msgstr "校正"
+# AI Translated
msgid "Failed to download the plug-in. Please check your firewall settings and VPN software and retry."
-msgstr "外掛程式下載失敗。請檢查您的防火牆設定和 VPN 軟體,檢查後重試。"
+msgstr "無法下載外掛程式。請檢查您的防火牆設定與 VPN 軟體,然後重試。"
+# AI Translated
msgid "Failed to install the plug-in. The plug-in file may be in use. Please restart OrcaSlicer and try again. Also check whether it is blocked or has been deleted by anti-virus software."
-msgstr "外掛程式安裝失敗。外掛程式檔案可能正在使用中。請重新啟動 OrcaSlicer 並重試。同時檢查是否被防毒軟體封鎖或刪除。"
+msgstr "無法安裝外掛程式。外掛程式檔案可能正在使用中。請重新啟動 OrcaSlicer 並重試。同時請檢查是否遭防毒軟體封鎖或刪除。"
msgid "Click here to see more info"
msgstr "點選這裡檢視更多資訊"
@@ -4617,17 +5194,18 @@ msgstr "網路外掛程式已安裝但無法載入。請重新啟動應用程式
msgid "Restart Required"
msgstr "需要重新啟動"
-msgid "Please home all axes (click "
-msgstr "請先執行回原點(點選"
-
-msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
-msgstr ")來定位工具頭的位置,這可防止裝置移動超出可列印範圍,並避免裝置磨損。"
+# AI Translated
+#. TRN %1% marks where the Home button icon is drawn; keep it in the translation.
+#, boost-format
+msgid "Please home all axes (click %1%) to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+msgstr "請先將所有軸回原點(點選 %1%)以定位工具頭的位置。這可避免裝置移動超出可列印範圍而造成機件磨損。"
msgid "Go Home"
msgstr "回原點"
+# AI Translated
msgid "An error occurred. The system may have run out of memory, or a bug may have occurred."
-msgstr "發生錯誤。可能系統記憶體不足或者程式存在錯誤"
+msgstr "發生錯誤。可能是系統記憶體不足,或程式發生錯誤。"
#, boost-format
msgid "A fatal error occurred: \"%1%\""
@@ -4636,9 +5214,13 @@ msgstr "發生了致命錯誤:「%1%」"
msgid "Please save your project and restart the application."
msgstr "請儲存專案並重新啟動程式。"
+# AI Translated
+msgid "Unknown C++ exception."
+msgstr "未知的 C++ 例外。"
+
# AI Translated
msgid "Processing G-Code from previous file…"
-msgstr "正在處理之前檔案的 G-Code…"
+msgstr "正在處理先前檔案的 G-code…"
msgid "Slicing complete"
msgstr "切片完成"
@@ -4673,13 +5255,13 @@ msgstr "完成執行後處理腳本"
msgid "Unknown error occurred during exporting G-code."
msgstr "匯出 G-code 期間發生未知錯誤。"
+# AI Translated
#, boost-format
msgid ""
"Copying of the temporary G-code to the output G-code failed. Maybe the SD card is write locked?\n"
"Error message: %1%"
msgstr ""
-"將臨時的 G-code 複製到輸出的 G-code 失敗 ,也許 SD 卡寫入被鎖定?\n"
-"錯誤訊息:%1%將臨時的 G-code 複製到輸出的 G-code 失敗 ,也許 SD 卡寫入被鎖定?\n"
+"無法將暫存 G-code 複製到輸出 G-code。SD 卡是否已防寫?\n"
"錯誤訊息:%1%"
# AI Translated
@@ -4688,32 +5270,38 @@ msgid ""
"Copying of the temporary G-code to the output G-code failed.\n"
"Error message: %1%"
msgstr ""
-"將暫存 G-code 複製到輸出 G-code 失敗。\n"
+"無法將暫存 G-code 複製到輸出 G-code。\n"
"錯誤訊息:%1%"
+# AI Translated
#, boost-format
msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp."
-msgstr "將臨時 G-code 複製到輸出 G-code 時失敗。目標裝置可能存在問題,請嘗試再次匯出或使用不同的裝置。損壞的 G-code 已輸出為 %1%.tmp。將臨時 G-code 複製到輸出 G-code 時失敗。目標裝置可能存在問題,請嘗試再次匯出或使用不同的裝置。損壞的 G-code 已輸出為 %1%.tmp。"
+msgstr "無法將暫存 G-code 複製到輸出 G-code。目標裝置可能有問題,請再次匯出或改用其他裝置。損壞的輸出 G-code 位於 %1%.tmp。"
+# AI Translated
#, boost-format
msgid "Renaming of the G-code after copying to the selected destination folder has failed. Current path is %1%.tmp. Please try exporting again."
-msgstr "複製到選取之目標檔案夾的 G-code 重新命名失敗。目前路徑為 %1%.tmp。請再試看看匯出。複製到選取之目標檔案夾的 G-code 重新命名失敗。目前路徑為 %1%.tmp。請再試看看匯出。"
+msgstr "G-code 複製到選取的目標資料夾後無法重新命名。目前路徑為 %1%.tmp。請再次嘗試匯出。"
+# AI Translated
#, boost-format
msgid "Copying of the temporary G-code has finished but the original code at %1% couldn't be opened during copy check. The output G-code is at %2%.tmp."
-msgstr "臨時 G-code 的複製已完成,但原始 G-code 因 %1% 在複製檢查期間無法開啟。輸出 G-code 為%2%.tmp。臨時 G-code 的複製已完成,但原始 G-code 因 %1% 在複製檢查期間無法打開。輸出 G-code 為%2%.tmp。"
+msgstr "暫存 G-code 已複製完成,但在複製檢查時無法開啟位於 %1% 的原始 G-code。輸出的 G-code 位於 %2%.tmp。"
+# AI Translated
#, boost-format
msgid "Copying of the temporary G-code has finished but the exported code couldn't be opened during copy check. The output G-code is at %1%.tmp."
-msgstr "臨時 G-code 的複製已完成,但匯出的 G-code 無法在複製檢查過程中開啟。輸出 G-code 為 %1%.tmp。臨時 G-code 的複製已完成,但匯出的 G-code 無法在複製檢查過程中開啟。輸出 G-code 為 %1%.tmp。"
+msgstr "暫存 G-code 已複製完成,但在複製檢查時無法開啟匯出的 G-code。輸出的 G-code 位於 %1%.tmp。"
#, boost-format
msgid "G-code file exported to %1%"
msgstr "G-code 檔案已匯出為 %1%"
+# AI Translated
msgid "Unknown error with G-code export"
-msgstr "匯出 G-code 檔案發生未知錯誤。"
+msgstr "匯出 G-code 時發生未知錯誤"
+# AI Translated
#, boost-format
msgid ""
"Failed to save G-code file.\n"
@@ -4721,17 +5309,17 @@ msgid ""
"Source file %2%."
msgstr ""
"無法儲存 G-code 檔案。\n"
-"錯誤資訊:%1%。\n"
-"原始檔 %2%。無法儲存 G-code 檔案。\n"
-"錯誤資訊:%1%。\n"
-"原始檔 %2%。"
+"錯誤訊息:%1%。\n"
+"來源檔案 %2%。"
+# AI Translated
msgid "Copying of the temporary G-code to the output G-code failed."
-msgstr "將臨時 G-Code 複製到輸出 G-Code 失敗"
+msgstr "無法將暫存 G-code 複製到輸出 G-code。"
+# AI Translated
#, boost-format
msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue"
-msgstr "計畫上傳到 `%1%`。請參閱視窗-> 列印裝置上傳佇列"
+msgstr "已排程上傳至 `%1%`。請參閱「視窗 -> 列印主機上傳佇列」"
msgid "Origin"
msgstr "原點"
@@ -4748,8 +5336,9 @@ msgstr "列印平臺的直徑,假設原點 (0,0) 位於中央位置。"
msgid "Rectangular"
msgstr "矩形"
+# AI Translated
msgid "Circular"
-msgstr "圓"
+msgstr "圓形"
msgid "Load shape from STL..."
msgstr "從 STL 檔案載入形狀..."
@@ -4772,8 +5361,9 @@ msgstr "選擇熱床形狀的 STL 檔案:"
msgid "Invalid file format."
msgstr "無效的檔案格式。"
+# AI Translated
msgid "Error: invalid model"
-msgstr "錯誤!無效模型"
+msgstr "錯誤:無效的模型"
msgid "The selected file contains no geometry."
msgstr "所選檔案不包含任何幾何資料。"
@@ -4790,16 +5380,19 @@ msgstr "選擇 STL 檔案來匯入熱床模型:"
msgid "Bed Shape"
msgstr "熱床形狀"
+# AI Translated
#, c-format, boost-format
msgid "A minimum temperature above %d℃ is recommended for %s.\n"
-msgstr "建議最低溫度高於 %d℃ 的 %s。\n"
+msgstr "建議最低溫度高於 %d℃(適用於 %s)。\n"
+# AI Translated
#, c-format, boost-format
msgid "A maximum temperature below %d℃ is recommended for %s.\n"
-msgstr "建議最高溫度低於 %d℃ 的 %s。\n"
+msgstr "建議最高溫度低於 %d℃(適用於 %s)。\n"
+# AI Translated
msgid "The recommended minimum temperature cannot be higher than the recommended maximum temperature.\n"
-msgstr "推薦的最小溫度不能高於推薦的最大溫度。\n"
+msgstr "建議最低溫度不能高於建議最高溫度。\n"
msgid "Please check.\n"
msgstr "請檢查。\n"
@@ -4814,9 +5407,10 @@ msgstr ""
"請確認是否使用該溫度列印。\n"
"\n"
+# AI Translated
#, c-format, boost-format
msgid "The recommended nozzle temperature for this filament type is [%d, %d] degrees Celsius."
-msgstr "該線材的推薦噴嘴溫度是攝氏 [%d, %d] 度"
+msgstr "該線材的建議噴嘴溫度為攝氏 [%d, %d] 度。"
msgid "Adaptive Pressure Advance model validation failed:\n"
msgstr "適應性 Pressure Advance 模型驗證失敗:\n"
@@ -4826,25 +5420,26 @@ msgid ""
"Too small max volumetric speed.\n"
"Value was reset to 0.5"
msgstr ""
-"最大體積流量設定過小\n"
-"重設為 0.5"
+"最大體積流量設定過小。\n"
+"已重設為 0.5"
# AI Translated
msgid ""
"Ironing spacing too small\n"
"It has been reset to 0.1"
msgstr ""
-"熨燙線距過小。\n"
-"將重設為 0.1"
+"熨燙線距過小\n"
+"已重設為 0.1"
+# AI Translated
#, c-format, boost-format
msgid "Current chamber temperature is higher than the material's safe temperature; this may result in material softening and nozzle clogs. The maximum safe temperature for the material is %d"
-msgstr "目前列印裝置內部溫度高於線材的安全溫度,可能會導致線材軟化和堵塞。線材的最高安全溫度為:%d"
+msgstr "目前腔體溫度高於線材的安全溫度,可能導致線材軟化及噴嘴堵塞。線材的最高安全溫度為 %d"
# AI Translated
#, c-format, boost-format
msgid "The minimal chamber temperature (%d℃) is higher than the target chamber temperature (%d℃). The minimal value is the threshold at which printing starts while the chamber keeps heating toward the target, so it should not exceed it. It will be clamped to the target."
-msgstr "最低倉室溫度(%d℃)高於目標倉室溫度(%d℃)。最低值是列印開始的門檻,此時倉室會持續朝目標溫度加熱,因此不應超過目標值。系統會將其限制在目標值。"
+msgstr "最低腔體溫度(%d℃)高於目標腔體溫度(%d℃)。最低值是列印開始的門檻,此時腔體會持續朝目標溫度加熱,因此不應超過目標值。系統會將其限制在目標值。"
# AI Translated
#, c-format, boost-format
@@ -4853,7 +5448,7 @@ msgstr "層高過小,將設定為最小值(%g mm)。"
# AI Translated
msgid "Layer height is outside the limits set in Printer Settings -> Extruder -> Layer height limits, this may cause printing quality issues."
-msgstr "層高超出了印表裝置設定 -> 擠出機 -> 層高限制中設定的範圍,這可能會導致列印品質問題。"
+msgstr "層高超出「列印裝置設定 -> 擠出機 -> 層高限制」中設定的範圍,可能導致列印品質問題。"
# AI Translated
#, c-format, boost-format
@@ -4863,21 +5458,31 @@ msgstr "是否自動調整至限制值(%g mm)?"
msgid "Adjust"
msgstr "調整"
+# AI Translated
+msgid ""
+"Raft and draft shield are not available on belt printers.\n"
+"They have been disabled."
+msgstr ""
+"輸送帶列印裝置不支援筏層和防風罩。\n"
+"已將其停用。"
+
+# AI Translated
msgid ""
"Layer height too small\n"
"It has been reset to 0.2"
msgstr ""
-"層高過小。\n"
-"將重設為 0.2"
+"層高過小\n"
+"已重設為 0.2"
+# AI Translated
msgid ""
"Zero initial layer height is invalid.\n"
"\n"
"The first layer height will be reset to 0.2."
msgstr ""
-"首層層高為無效的 0 值。\n"
+"首層層高不可為 0。\n"
"\n"
-"首層層高將被重設為 0.2。"
+"首層層高將重設為 0.2。"
# AI Translated
msgid ""
@@ -4905,68 +5510,62 @@ msgstr ""
"\n"
"該值將會重設為 0。"
+# AI Translated
msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All."
-msgstr "當確保垂直外殼厚度設為『全部』時,交錯額外牆壁效果不佳。"
+msgstr "當「確保垂直外殼厚度」設為「所有」時,「交錯額外牆壁」效果不佳。"
+# AI Translated
msgid ""
"Change these settings automatically?\n"
"Yes - Change ensure vertical shell thickness to Moderate and enable alternate extra wall\n"
"No - Don't use alternate extra wall"
msgstr ""
-"是否自動更改這些設定?\n"
-"是 - 將確保垂直外殼厚度設為中等並啟用交錯額外牆壁\n"
-"否 - 不使用交錯額外牆壁是否自動更改這些設定?\n"
-"是 - 將確保垂直外殼厚度設為中等並啟用交錯額外牆壁\n"
-"否 - 不使用交錯額外牆壁"
+"是否自動變更這些設定?\n"
+"是:將「確保垂直外殼厚度」設為「適度」並啟用「交錯額外牆壁」\n"
+"否:不使用「交錯額外牆壁」"
+# AI Translated
msgid ""
"Prime tower does not work when Adaptive Layer Height or Independent Support Layer Height is on.\n"
"Which do you want to keep?\n"
"YES - Keep Prime Tower\n"
"NO - Keep Adaptive Layer Height and Independent Support Layer Height"
msgstr ""
-"換料塔不支援和適應性層高或獨立支撐層高。同時開啟\n"
-"如何選擇?\n"
-"是 - 選擇開啟換料塔\n"
-"否 - 選擇保留適應性層高或獨立支撐層高換料塔不支援和適應性層高或獨立支撐層高。同時開啟\n"
-"如何選擇?\n"
-"是 - 選擇開啟換料塔\n"
-"否 - 選擇保留適應性層高或獨立支撐層高"
+"開啟適應性層高或獨立支撐層高時,換料塔無法運作。\n"
+"要保留哪一項?\n"
+"是:保留換料塔\n"
+"否:保留適應性層高和獨立支撐層高"
+# AI Translated
msgid ""
"Prime tower does not work when Adaptive Layer Height is on.\n"
"Which do you want to keep?\n"
"YES - Keep Prime Tower\n"
"NO - Keep Adaptive Layer Height"
msgstr ""
-"換料塔不支援和適應性層高同時開啟。\n"
-"如何選擇?\n"
-"是 - 選擇開啟換料塔\n"
-"否 - 選擇保留適應性層高換料塔不支援和適應性層高同時開啟。\n"
-"如何選擇?\n"
-"是 - 選擇開啟換料塔\n"
-"否 - 選擇保留適應性層高"
+"開啟適應性層高時,換料塔無法運作。\n"
+"要保留哪一項?\n"
+"是:保留換料塔\n"
+"否:保留適應性層高"
+# AI Translated
msgid ""
"Prime tower does not work when Independent Support Layer Height is on.\n"
"Which do you want to keep?\n"
"YES - Keep Prime Tower\n"
"NO - Keep Independent Support Layer Height"
msgstr ""
-"換料塔不支援和獨立支撐層高同時開啟。\n"
-"如何選擇?\n"
-"是 - 選擇開啟換料塔\n"
-"否 - 選擇保留獨立支撐層高換料塔不支援和獨立支撐層高同時開啟。\n"
-"如何選擇?\n"
-"是 - 選擇開啟換料塔\n"
-"否 - 選擇保留獨立支撐層高"
+"開啟獨立支撐層高時,換料塔無法運作。\n"
+"要保留哪一項?\n"
+"是:保留換料塔\n"
+"否:保留獨立支撐層高"
+# AI Translated
msgid ""
"seam_slope_start_height needs to be smaller than layer_height.\n"
"Reset to 0."
msgstr ""
"seam_slope_start_height 必須小於 layer_height。\n"
-"重設為 0。seam_slope_start_height 必須小於 layer_height。\n"
"重設為 0。"
#, no-c-format, no-boost-format
@@ -4977,17 +5576,19 @@ msgstr ""
"鎖定深度應小於表皮深度。\n"
"重設為表皮深度的 50%。"
+# AI Translated
msgid "Both [Extrusion] and [Combined] modes of Fuzzy Skin require the Arachne Wall Generator to be enabled."
-msgstr "Fuzzy Skin 的 [擠出] 與 [結合] 模式需搭配啟用 Arachne Wall 產生器。"
+msgstr "絨毛表面的 [擠出] 與 [合併] 模式都需要啟用 Arachne 牆產生器。"
+# AI Translated
msgid ""
"Change these settings automatically?\n"
"Yes - Enable Arachne Wall Generator\n"
"No - Disable Arachne Wall Generator and set [Displacement] mode of the Fuzzy Skin"
msgstr ""
-"要自動調整這些設定嗎?\n"
-"是 - 啟用 Arachne Wall 產生器\n"
-"否 - 停用 Arachne Wall 產生器,並將 Fuzzy Skin 設定為 [位移] 模式"
+"要自動變更這些設定嗎?\n"
+"是:啟用 Arachne 牆產生器\n"
+"否:停用 Arachne 牆產生器,並將絨毛表面設為 [位移] 模式"
# AI Translated
msgid "Brim ear radius"
@@ -4996,20 +5597,23 @@ msgstr "耳狀 Brim 半徑"
msgid "Brim width"
msgstr "Brim 寬度"
+# AI Translated
msgid "Spiral mode only works when wall loops is 1, support is disabled, clumping detection by probing is disabled, top shell layers is 0, sparse infill density is 0 and timelapse type is traditional."
-msgstr "花瓶模式僅適用於牆體圈數為 1、停用支撐、停用偵測堵塞、頂部外殼層數為 0、稀疏填充密度為 0,且延時攝影類型為傳統模式時。"
+msgstr "螺旋花瓶模式僅在牆層數為 1、停用支撐、停用探測式結塊偵測、頂部外殼層數為 0、稀疏填充密度為 0,且縮時攝影類型為傳統模式時才有效。"
+# AI Translated
msgid " But machines with I3 structure will not generate timelapse videos."
-msgstr " 但採用 I3 結構的列印裝置無法產生延時影片。"
+msgstr " 但採用 I3 結構的列印裝置不會產生縮時攝影影片。"
+# AI Translated
msgid ""
"Change these settings automatically?\n"
"Yes - Change these settings and enable spiral/vase mode automatically\n"
"No - Cancel enabling spiral mode"
msgstr ""
-"自動調整這些設定?\n"
-"是 - 自動調整這些設定並啟用花瓶模式\n"
-"否 - 不使用花瓶模式"
+"是否自動變更這些設定?\n"
+"是:自動變更這些設定並啟用螺旋花瓶模式\n"
+"否:取消啟用螺旋花瓶模式"
msgid "N/A"
msgstr "不適用"
@@ -5050,8 +5654,9 @@ msgstr "檢查首層"
msgid "Identifying build plate type"
msgstr "識別列印板類型"
+# AI Translated
msgid "Calibrating Micro Lidar"
-msgstr "校正微型雷射雷達"
+msgstr "校正 Micro Lidar"
msgid "Homing toolhead"
msgstr "工具頭回到起始點"
@@ -5068,11 +5673,13 @@ msgstr "由使用者暫停"
msgid "Pause (front cover fall off)"
msgstr "暫停(前蓋脫落)"
+# AI Translated
msgid "Calibrating the micro lidar"
-msgstr "校正微型雷射雷達"
+msgstr "校正 Micro Lidar"
+# AI Translated
msgid "Calibrating flow ratio"
-msgstr "校正流量比"
+msgstr "校正流量比例"
msgid "Pause (nozzle temperature malfunction)"
msgstr "暫停(噴嘴溫度故障)"
@@ -5089,8 +5696,9 @@ msgstr "暫停(失步)"
msgid "Filament loading"
msgstr "進料中"
+# AI Translated
msgid "Motor noise cancellation"
-msgstr "電機噪音消除"
+msgstr "馬達噪音消除"
msgid "Pause (AMS offline)"
msgstr "暫停(AMS 離線)"
@@ -5098,20 +5706,24 @@ msgstr "暫停(AMS 離線)"
msgid "Pause (low speed of the heatbreak fan)"
msgstr "暫停(熱斷風扇低速)"
+# AI Translated
msgid "Pause (chamber temperature control problem)"
-msgstr "暫停(列印裝置內部溫度控制問題)"
+msgstr "暫停(腔體溫度控制問題)"
+# AI Translated
msgid "Cooling chamber"
-msgstr "列印裝置內部溫度冷卻中"
+msgstr "腔體冷卻中"
msgid "Pause (G-code inserted by user)"
msgstr "暫停(使用者插入 G-code)"
+# AI Translated
msgid "Motor noise showoff"
-msgstr "電機噪音"
+msgstr "馬達噪音展示"
+# AI Translated
msgid "Pause (nozzle clumping)"
-msgstr "暫停(噴嘴堵塞)"
+msgstr "暫停(噴嘴結塊)"
msgid "Pause (cutter error)"
msgstr "暫停(切刀錯誤)"
@@ -5155,14 +5767,17 @@ msgstr "確認鳥瞰攝影機位置"
msgid "Calibrating BirdsEye Camera"
msgstr "校正鳥瞰攝影機"
+# AI Translated
msgid "Auto bed leveling -phase 1"
-msgstr "自動熱床調平 - 第一階段"
+msgstr "自動熱床調平:第一階段"
+# AI Translated
msgid "Auto bed leveling -phase 2"
-msgstr "自動熱床調平 - 第二階段"
+msgstr "自動熱床調平:第二階段"
+# AI Translated
msgid "Heating chamber"
-msgstr "加熱列印裝置內部"
+msgstr "腔體加熱中"
msgid "Cooling heatbed"
msgstr "冷卻熱床"
@@ -5188,8 +5803,9 @@ msgstr "切割模組偏移校正"
msgid "Measuring Surface"
msgstr "測量表面"
+# AI Translated
msgid "Calibrating the detection position of nozzle clumping"
-msgstr "校正噴嘴堵塞偵測位置"
+msgstr "校正噴嘴結塊偵測位置"
msgid "Update successful."
msgstr "更新成功。"
@@ -5218,22 +5834,26 @@ msgstr "儲存空間為唯讀時不支援縮時攝影。"
msgid "To ensure your safety, certain processing tasks (such as laser) can only be resumed on printer."
msgstr "為確保您的安全,某些處理作業(例如雷射)只能在列印裝置上恢復。"
+# AI Translated
#, c-format, boost-format
msgid "The chamber temperature is too high, which may cause the filament to soften. Please wait until the chamber temperature drops below %d℃. You may open the front door or enable fans to cool down."
-msgstr "列印裝置內部溫度過高,可能導致線材軟化。請等待列印裝置內部溫度降至 %d℃ 以下。您可以打開前門或啟用風扇來加速冷卻。"
+msgstr "腔體溫度過高,可能導致線材軟化。請等待腔體溫度降至 %d℃ 以下。您可以打開前門或啟用風扇來加速冷卻。"
#, c-format, boost-format
msgid "AMS temperature is too high, which may cause the filament to soften. Please wait until the AMS temperature drops below %d℃."
msgstr "AMS 溫度過高,可能導致線材軟化。請等待 AMS 溫度降至 %d℃ 以下。"
+# AI Translated
msgid "The current chamber temperature or the target chamber temperature exceeds 45℃. In order to avoid extruder clogging, low temperature filament(PLA/PETG/TPU) is not allowed to be loaded."
-msgstr "目前列印裝置內部溫度或目標列印裝置內部溫度超過 45℃。為避免擠出機堵塞,不允許裝入低溫線材(PLA/PETG/TPU)。"
+msgstr "目前腔體溫度或目標腔體溫度超過 45℃。為避免擠出機堵塞,不允許裝入低溫線材(PLA/PETG/TPU)。"
+# AI Translated
msgid "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder. In order to avoid extruder clogging, it is not allowed to set the chamber temperature."
-msgstr "擠出機內已裝入低溫線材(PLA/PETG/TPU)。為避免擠出機堵塞,不允許設定列印裝置內部溫度。"
+msgstr "擠出機內已裝入低溫線材(PLA/PETG/TPU)。為避免擠出機堵塞,不允許設定腔體溫度。"
+# AI Translated
msgid "When you set the chamber temperature below 40℃, the chamber temperature control will not be activated, and the target chamber temperature will automatically be set to 0℃."
-msgstr "當機箱溫度設定低於 40℃時,機箱溫度控制將不會啟動,並且目標機箱溫度將自動設為 0℃。"
+msgstr "當腔體溫度設定低於 40℃時,腔體溫度控制將不會啟動,並且目標腔體溫度將自動設為 0℃。"
msgid "Failed to start print job"
msgstr "無法啟動列印作業"
@@ -5244,12 +5864,13 @@ msgstr "校正不支援目前選擇的噴嘴直徑"
msgid "Current flowrate cali param is invalid"
msgstr "目前流量校正參數無效"
+# AI Translated
msgid "Selected diameter and machine diameter do not match"
-msgstr "所選噴嘴直徑與裝置不匹配"
+msgstr "所選直徑與列印裝置的直徑不符"
# AI Translated
msgid "Failed to generate calibration G-code"
-msgstr "產生校正 G-code 失敗"
+msgstr "無法產生校正 G-code"
msgid "Calibration error"
msgstr "校正錯誤"
@@ -5293,8 +5914,9 @@ msgstr "完成,繼續"
msgid "Filament Loaded, Resume"
msgstr "進料完成,繼續"
+# AI Translated
msgid "View Liveview"
-msgstr "預覽 Liveview"
+msgstr "檢視 Liveview"
msgid "No Reminder Next Time"
msgstr "下次不再提醒"
@@ -5312,8 +5934,9 @@ msgstr "忽略並繼續"
msgid "Problem Solved and Resume"
msgstr "問題已解決並繼續"
+# AI Translated
msgid "Got it, Turn off the Fire Alarm."
-msgstr "知道了,關閉火警警報"
+msgstr "知道了,關閉火警警報。"
msgid "Retry (problem solved)"
msgstr "重試(問題已解決)"
@@ -5347,7 +5970,7 @@ msgstr "未知錯誤。"
# AI Translated
msgid "Loading ..."
-msgstr "載入中…"
+msgstr "載入中..."
msgid "default"
msgstr "預設"
@@ -5369,8 +5992,9 @@ msgstr "搜尋 G-code 占位符"
msgid "Add selected placeholder to G-code"
msgstr "將選取的占位符加入 G-code"
+# AI Translated
msgid "Select placeholder"
-msgstr "占位符"
+msgstr "選擇占位符"
msgid "[Global] Slicing State"
msgstr "[全域]切片狀態"
@@ -5462,8 +6086,9 @@ msgstr "輸入值超出範圍"
msgid "Some extension in the input is invalid"
msgstr "輸入的副檔名無效"
+# AI Translated
msgid "This parameter expects a valid template."
-msgstr "此參數必須對應一個有效的範本"
+msgstr "此參數需要有效的範本。"
msgid "Invalid pattern. Use N, N#K, or a comma-separated list with optional #K per entry. Examples: 5, 5#2, 1,7,9, 5,9#2,18."
msgstr "無效的格式。請使用 N、N#K 或逗號分隔的清單,每個項目可選擇性加上 #K。範例:5、5#2、1,7,9、5,9#2,18。"
@@ -5596,8 +6221,9 @@ msgstr "頂面"
msgid "Bridge"
msgstr "橋接"
+# AI Translated
msgid "Gap infill"
-msgstr "填縫"
+msgstr "縫隙填充"
msgid "Skirt"
msgstr "Skirt"
@@ -5620,38 +6246,49 @@ msgstr "支撐轉換層"
msgid "Mixed"
msgstr "混合"
+# AI Translated
msgid "Height: "
-msgstr "層高:"
+msgstr "層高: "
+# AI Translated
msgid "Width: "
-msgstr "線寬:"
+msgstr "線寬: "
+# AI Translated
msgid "Flow: "
-msgstr "擠出流量:"
+msgstr "流量: "
+# AI Translated
msgid "Fan: "
-msgstr "風扇速度:"
+msgstr "風扇速度: "
+# AI Translated
msgid "Temperature: "
-msgstr "溫度:"
+msgstr "溫度: "
+# AI Translated
msgid "Layer Time: "
-msgstr "層時間:"
+msgstr "層時間: "
+# AI Translated
msgid "Tool: "
-msgstr "工具:"
+msgstr "工具: "
+# AI Translated
msgid "Color: "
-msgstr "顏色:"
+msgstr "顏色: "
+# AI Translated
msgid "Acceleration: "
-msgstr "加速度:"
+msgstr "加速度: "
+# AI Translated
msgid "Jerk: "
-msgstr "急衝速度:"
+msgstr "急衝速度: "
+# AI Translated
msgid "PA: "
-msgstr "PA:"
+msgstr "PA: "
msgid "mm/s"
msgstr "mm/s"
@@ -5671,11 +6308,13 @@ msgstr "風扇速度"
msgid "Time"
msgstr "時間"
+# AI Translated
msgid "Speed: "
-msgstr "速度:"
+msgstr "速度: "
+# AI Translated
msgid "Actual speed profile"
-msgstr "實際速度設定檔"
+msgstr "實際速度曲線"
# AI Translated
msgid "Automatic"
@@ -5691,8 +6330,10 @@ msgstr "所有列印板統計資料"
msgid "Display"
msgstr "顯示"
+# AI Translated
+# Needs human review: Column header in the Preview legend filament table (Model / Support / Flushed / Tower / Total, GCodeViewer.cpp:3670): check that 清理 reads as the amount of filament purged.
msgid "Flushed"
-msgstr "廢料"
+msgstr "清理"
msgid "Tower"
msgstr "塔"
@@ -5715,9 +6356,6 @@ msgstr "根據最佳線材分組自動重新切片,切片後將顯示分組結
msgid "Filament Grouping"
msgstr "線材分組"
-msgid "Why this grouping"
-msgstr "為何這樣分組"
-
msgid "Please place filaments on the printer based on grouping result."
msgstr "請根據分組結果在列印裝置上放置線材。"
@@ -5727,29 +6365,41 @@ msgstr "提示:"
msgid "Current grouping of slice result is not optimal."
msgstr "目前切片結果的分組不是最佳的。"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
-msgstr "相比最佳分組,增加 %1%g 線材和 %2% 次更換。"
+msgid "Increase %1%g filament and %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and %2% changes compared to optimal grouping."
+msgstr[0] "與最佳分組相比,增加 %1%g 線材和 %2% 次換料。"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
-msgstr "與最佳分組相比,增加 %1%g 線材並減少 %2% 換料次數。"
+msgid "Increase %1%g filament and save %2% change compared to optimal grouping."
+msgid_plural "Increase %1%g filament and save %2% changes compared to optimal grouping."
+msgstr[0] "與最佳分組相比,增加 %1%g 線材但減少 %2% 次換料。"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
-msgstr "與最佳分組相比,節省 %1%g 線材但增加 %2% 換料次數。"
+msgid "Save %1%g filament and increase %2% change compared to optimal grouping."
+msgid_plural "Save %1%g filament and increase %2% changes compared to optimal grouping."
+msgstr[0] "與最佳分組相比,節省 %1%g 線材但增加 %2% 次換料。"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
-msgstr "與單噴嘴列印裝置相比,節省 %1%g 線材並減少 %2% 換料次數。"
+msgid "Save %1%g filament and %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+msgstr[0] "與單噴嘴列印裝置相比,節省 %1%g 線材並減少 %2% 次換料。"
+# AI Translated
#, boost-format
-msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
-msgstr "與單噴嘴列印裝置相比,節省 %1%g 線材但增加 %2% 換料次數。"
+msgid "Save %1%g filament and increase %2% change compared to a printer with one nozzle."
+msgid_plural "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+msgstr[0] "與單噴嘴列印裝置相比,節省 %1%g 線材但增加 %2% 次換料。"
+# AI Translated
#, boost-format
-msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
-msgstr "與單噴嘴列印裝置相比,增加 %1%g 線材但減少 %2% 換料次數。"
+msgid "Increase %1%g filament and save %2% change compared to a printer with one nozzle."
+msgid_plural "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+msgstr[0] "與單噴嘴列印裝置相比,增加 %1%g 線材但減少 %2% 次換料。"
msgid "Set to Optimal"
msgstr "設為最佳"
@@ -5787,11 +6437,13 @@ msgstr "速度(mm/s)"
msgid "Actual Speed (mm/s)"
msgstr "實際速度(mm/s)"
+# AI Translated
msgid "Acceleration (mm/s²)"
-msgstr "加速度 (mm/s²)"
+msgstr "加速度(mm/s²)"
+# AI Translated
msgid "Jerk (mm/s)"
-msgstr "急衝速度 (mm/s)"
+msgstr "急衝速度(mm/s)"
msgid "Fan speed (%)"
msgstr "風扇速度(%)"
@@ -5805,11 +6457,13 @@ msgstr "體積流量(mm³/s)"
msgid "Actual volumetric flow rate (mm³/s)"
msgstr "實際體積流量(mm³/s)"
+# AI Translated
msgid "Seams"
-msgstr "縫"
+msgstr "接縫"
+# AI Translated
msgid "Filament changes"
-msgstr "線材切換"
+msgstr "換料"
msgid "Options"
msgstr "選項"
@@ -5817,14 +6471,17 @@ msgstr "選項"
msgid "Cost"
msgstr "成本"
+# AI Translated
msgid "Filament change times"
-msgstr "更換線材次數"
+msgstr "換料次數"
+# AI Translated
msgid "Tool changes"
-msgstr "取代工具"
+msgstr "換工具次數"
+# AI Translated
msgid "Color change"
-msgstr "顏色更換"
+msgstr "換色"
msgctxt "Noun"
msgid "Print"
@@ -5861,12 +6518,13 @@ msgstr ""
"偵測到物件放置在左/右噴嘴專用區域,或超出左噴嘴的可列印高度。\n"
"請確保此物件使用的線材未分配給其他噴嘴。"
+# AI Translated
msgid ""
"An object is laid over the boundary of plate or exceeds the height limit.\n"
"Please solve the problem by moving it totally on or off the plate, and confirming that the height is within the build volume."
msgstr ""
"偵測到物件放置在列印板邊界上或超出高度限制。\n"
-"請將物件完全移到列印板內或移出列印板,並確認高度在列印範圍內。"
+"請將物件完全移到列印板內或移出列印板,並確認高度在列印空間內。"
msgid "Variable layer height"
msgstr "可變層高"
@@ -5874,8 +6532,9 @@ msgstr "可變層高"
msgid "Adaptive"
msgstr "適應性"
+# AI Translated
msgid "Quality / Speed"
-msgstr "細節/速度"
+msgstr "品質/速度"
# AI Translated
msgctxt "Mesh action"
@@ -5894,8 +6553,9 @@ msgstr "減小層高"
msgid "Remove detail"
msgstr "增大層高"
+# AI Translated
msgid "Reset to base"
-msgstr "設定到基礎層高"
+msgstr "重設為基礎層高"
msgid "Smoothing"
msgstr "平滑"
@@ -5906,11 +6566,60 @@ msgstr "增加/減小編輯區域"
msgid "Sequence"
msgstr "順序"
+# AI Translated
+msgid "Plate center of mass"
+msgstr "列印板質心"
+
+# AI Translated
+msgid "Part center of mass"
+msgstr "零件質心"
+
+# AI Translated
+msgid "Support center of mass"
+msgstr "支撐質心"
+
+# AI Translated
+msgid "Assembly center of mass"
+msgstr "組合件質心"
+
+# AI Translated
+msgid "Object center of mass"
+msgstr "物件質心"
+
+# AI Translated
+msgid "Finished print"
+msgstr "完整列印件"
+
+# AI Translated
+#, boost-format
+msgid "Printed up to layer %1%"
+msgstr "已列印至第 %1% 層"
+
+# AI Translated
+msgid "Weight"
+msgstr "重量"
+
+msgid "Volume"
+msgstr "體積"
+
+# AI Translated
+msgid "Center in bounding box"
+msgstr "在邊界框中的位置"
+
+# AI Translated
+msgid "Bounding box size"
+msgstr "邊界框尺寸"
+
+# AI Translated
+msgid "Moment of inertia"
+msgstr "轉動慣量"
+
msgid "Object selection"
msgstr "物件選取"
-msgid "number keys"
-msgstr "數字鍵"
+# AI Translated
+msgid "1~16 number keys"
+msgstr "1~16 數字鍵"
msgid "Number keys can quickly change the color of objects"
msgstr "數字鍵可快速更改物件顏色"
@@ -5918,8 +6627,9 @@ msgstr "數字鍵可快速更改物件顏色"
msgid "Following objects are laid over the boundary of plate or exceeds the height limit:\n"
msgstr "以下物件放置在列印板邊界上或超出高度限制:\n"
+# AI Translated
msgid "Please solve the problem by moving it totally on or off the plate, and confirming that the height is within the build volume.\n"
-msgstr "請將物件完全移到列印板內或移出列印板,並確認高度在列印範圍內。\n"
+msgstr "請將物件完全移到列印板內或移出列印板,並確認高度在列印空間內。\n"
#, c-format, boost-format
msgid "The position or size of some models exceeds the %s's printable range."
@@ -5940,11 +6650,13 @@ msgstr "左噴嘴:X:%1%-%2%、Y:%3%-%4%、Z:%5%-%6%\n"
msgid "Right nozzle: X:%1%-%2%, Y:%3%-%4%, Z:%5%-%6%"
msgstr "右噴嘴:X:%1%-%2%、Y:%3%-%4%、Z:%5%-%6%"
+# AI Translated
msgid "Tool move"
-msgstr "工具 移動"
+msgstr "工具移動"
+# AI Translated
msgid "Tool Rotate"
-msgstr "工具 旋轉"
+msgstr "工具旋轉"
msgid "Move object"
msgstr "移動物件"
@@ -5955,12 +6667,14 @@ msgstr "自動定向選項"
msgid "Enable rotation"
msgstr "啟用旋轉"
+# AI Translated
msgid "Optimize support interface area"
-msgstr "最佳化接觸面面積"
+msgstr "最佳化支撐面面積"
# src/slic3r/GUI/GLCanvas3D.cpp:4767
+# AI Translated
msgid "Orient"
-msgstr "調整定向"
+msgstr "定向"
msgid "Arrange options"
msgstr "自動擺放選項"
@@ -5996,31 +6710,34 @@ msgstr "X"
# AI Translated
msgctxt "Camera View"
msgid "Front"
-msgstr "前面"
+msgstr "前視"
+# AI Translated
msgctxt "Camera View"
msgid "Back"
-msgstr "背面"
+msgstr "後視"
# AI Translated
#. TRN To be shown in the main menu View->Top
msgctxt "Camera View"
msgid "Top"
-msgstr "頂部"
+msgstr "上視"
# AI Translated
#. TRN To be shown in the main menu View->Bottom
msgctxt "Camera View"
msgid "Bottom"
-msgstr "底部"
+msgstr "下視"
+# AI Translated
msgctxt "Camera View"
msgid "Left"
-msgstr "左"
+msgstr "左視"
+# AI Translated
msgctxt "Camera View"
msgid "Right"
-msgstr "右"
+msgstr "右視"
msgid "Add plate"
msgstr "新增列印板"
@@ -6031,23 +6748,29 @@ msgstr "拆分為物件"
msgid "Add"
msgstr "新增"
+# AI Translated
msgid "Auto orient all/selected objects"
-msgstr "自動旋轉所有/選取物件的方向"
+msgstr "自動定向所有/選取的物件"
+# AI Translated
msgid "Auto orient all objects on current plate"
-msgstr "自動旋轉目前板上所有物件的方向"
+msgstr "自動定向目前列印板上的所有物件"
+# AI Translated
msgid "Arrange all objects"
-msgstr "全域整理"
+msgstr "自動擺放所有物件"
+# AI Translated
msgid "Arrange objects on selected plates"
-msgstr "在選定的列印板上排列物件"
+msgstr "自動擺放所選列印板上的物件"
+# AI Translated
msgid "Assembly View"
-msgstr "組裝視角"
+msgstr "組合件視圖"
+# AI Translated
msgid "Select Plate"
-msgstr "選擇列印板"
+msgstr "選取列印板"
msgid "Slicing"
msgstr "正在切片中"
@@ -6070,8 +6793,9 @@ msgstr "切片"
msgid "Review"
msgstr "檢視"
+# AI Translated
msgid "Assembly Return"
-msgstr "退出組裝視角"
+msgstr "退出組合件視圖"
msgid "Return"
msgstr "返回"
@@ -6082,8 +6806,9 @@ msgstr "畫布工具列"
msgid "Section view"
msgstr "剖面圖"
+# AI Translated
msgid "Fit camera to scene or selected object."
-msgstr "將攝影機對齊場景或選取的物件"
+msgstr "調整相機以完整顯示場景或選取的物件。"
msgid "3D Navigator"
msgstr "3D 導覽器"
@@ -6106,8 +6831,9 @@ msgstr "線框"
msgid "X-Ray"
msgstr "X 光"
+# AI Translated
msgid "Realistic View"
-msgstr "擬真檢視"
+msgstr "擬真視圖"
msgid "Perspective"
msgstr "透視"
@@ -6118,9 +6844,21 @@ msgstr "座標軸"
msgid "Gridlines"
msgstr "網格線"
+# AI Translated
+msgid "Focus mode"
+msgstr "專注模式"
+
msgid "Labels"
msgstr "標籤"
+# AI Translated
+msgid "Center of mass"
+msgstr "質心"
+
+# AI Translated
+msgid "Show raw G-code (belt only)"
+msgstr "顯示原始 G-code(僅限輸送帶列印裝置)"
+
# AI Translated
msgid "Move section plane"
msgstr "移動剖切面"
@@ -6143,25 +6881,29 @@ msgstr "在圖示上按滑鼠中鍵"
# AI Translated
msgid "Set viewing angle"
-msgstr "設定檢視角度"
+msgstr "設定視角"
+# AI Translated
msgid "Paint Toolbar"
-msgstr "上色工具列"
+msgstr "繪製工具列"
+# AI Translated
msgid "Assembly Control"
-msgstr "拼裝視角控制"
+msgstr "組合件控制"
msgid "Explosion Ratio"
msgstr "爆炸比例"
+# AI Translated
msgid "Selection Mode"
-msgstr "選擇模式"
+msgstr "選取模式"
msgid "Total Volume:"
msgstr "總體積:"
+# AI Translated
msgid "Assembly Info"
-msgstr "裝配體資訊"
+msgstr "組合件資訊"
msgid "Volume:"
msgstr "體積:"
@@ -6169,9 +6911,10 @@ msgstr "體積:"
msgid "Size:"
msgstr "尺寸:"
-#, c-format, boost-format
+# AI Translated
+#, boost-format
msgid "Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s)."
-msgstr "發現 G-code 路徑在 %d 層,Z = %.2lf mm 處的衝突。請將有衝突的物件分離得更遠(%s <-> %s)。"
+msgstr "在第 %d 層(Z = %.2lf mm)發現 G-code 路徑衝突。請將有衝突的物件分開得更遠(%s <-> %s)。"
msgid "An object is laid over the plate boundaries."
msgstr "偵測到有物件放在列印板的邊界上。"
@@ -6179,8 +6922,9 @@ msgstr "偵測到有物件放在列印板的邊界上。"
msgid "A G-code path goes beyond the max print height."
msgstr "偵測到超出列印高度的 G-code 路徑。"
+# AI Translated
msgid "A G-code path goes beyond plate boundaries."
-msgstr "偵測到超出熱床邊界的 G-code 路徑。"
+msgstr "偵測到超出列印板邊界的 G-code 路徑。"
msgid "Not support printing 2 or more TPU filaments."
msgstr "不支援列印 2 種或更多 TPU 線材。"
@@ -6189,21 +6933,17 @@ msgstr "不支援列印 2 種或更多 TPU 線材。"
msgid "Tool %d"
msgstr "工具 %d"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "線材 %s 放置在 %s,但產生的 G-code 路徑超出 %s 的可列印範圍。"
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
-msgstr "線材 %s 放置在 %s,但產生的 G-code 路徑超出 %s 的可列印範圍。"
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+msgstr[0] "線材 %s 放置在 %s,但產生的 G-code 路徑超出 %s 的可列印範圍。"
+# AI Translated
#, c-format, boost-format
msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "線材 %s 放置在 %s,但產生的 G-code 路徑超出 %s 的可列印高度。"
-
-#, c-format, boost-format
-msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
-msgstr "線材 %s 放置在 %s,但產生的 G-code 路徑超出 %s 的可列印高度。"
+msgid_plural "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+msgstr[0] "線材 %s 放置在 %s,但產生的 G-code 路徑超出 %s 的可列印高度。"
msgid "Open wiki for more information."
msgstr "開啟 wiki 檢視更多資訊。"
@@ -6211,9 +6951,11 @@ msgstr "開啟 wiki 檢視更多資訊。"
msgid "Only the object being edited is visible."
msgstr "只有正在編輯的物件是可見的。"
+# AI Translated
#, c-format, boost-format
-msgid "Filaments %s cannot be printed directly on the surface of this plate."
-msgstr "線材 %s 不能直接列印在此列印板表面。"
+msgid "Filament %s cannot be printed directly on the surface of this plate."
+msgid_plural "Filaments %s cannot be printed directly on the surface of this plate."
+msgstr[0] "線材 %s 不能直接列印在此列印板表面。"
msgid "PLA and PETG filaments detected in the mixture. Adjust parameters according to the Wiki to ensure print quality."
msgstr "偵測到混合使用 PLA 和 PETG 線材。請根據 Wiki 調整參數以確保列印品質。"
@@ -6221,23 +6963,27 @@ msgstr "偵測到混合使用 PLA 和 PETG 線材。請根據 Wiki 調整參數
msgid "The prime tower extends beyond the plate boundary."
msgstr "換料塔超出列印板邊界。"
+# AI Translated
msgid "Partial flushing volume set to 0. Multi-color printing may cause color mixing in models. Please readjust flushing settings."
-msgstr "部分沖洗體積設為 0。多色列印可能導致模型出現混色。請重新調整沖洗設定。"
+msgstr "部分清理體積設為 0。多色列印可能導致模型出現混色。請重新調整清理設定。"
+# AI Translated
msgid "Click Wiki for help."
-msgstr "點選 Wiki 尋求幫助。"
+msgstr "點選 Wiki 取得說明。"
msgid "Click here to regroup"
msgstr "點選此處重新分組"
+# AI Translated
msgid "Flushing Volume"
-msgstr "沖洗量"
+msgstr "清理體積"
msgid "Calibration step selection"
msgstr "校正步驟選擇"
+# AI Translated
msgid "Micro lidar calibration"
-msgstr "微型雷射雷達校正"
+msgstr "Micro Lidar 校正"
msgid "Bed leveling"
msgstr "熱床調平"
@@ -6245,19 +6991,20 @@ msgstr "熱床調平"
msgid "High-temperature Heatbed Calibration"
msgstr "高溫熱床校正"
+# AI Translated
msgid "Nozzle clumping detection Calibration"
-msgstr "噴嘴堵塞偵測校正"
+msgstr "噴嘴結塊偵測校正"
msgid "Calibration program"
msgstr "校正程式"
+# AI Translated
msgid ""
"The calibration program detects the status of your device automatically to minimize deviation.\n"
"It keeps the device performing optimally."
msgstr ""
-"校正程式會自動偵測您的裝置狀態以減少偏差。\n"
-"這可保持裝置最佳效能。校正程式會自動偵測裝置狀態以最小化偏差。\n"
-"它確保裝置保持最佳效能。"
+"校正程式會自動偵測您的裝置狀態,將偏差降至最低。\n"
+"讓裝置保持最佳效能。"
msgid "Calibration Flow"
msgstr "校正流程"
@@ -6289,8 +7036,9 @@ msgstr "解析度"
msgid "Show \"Live Video\" guide page."
msgstr "顯示「直播影片」引導。"
+# AI Translated
msgid "Connect Printer (LAN)"
-msgstr "連線列印裝置(區域網路)"
+msgstr "連線列印裝置(LAN)"
msgid "Please input the printer access code:"
msgstr "請輸入列印裝置存取代碼:"
@@ -6302,15 +7050,18 @@ msgstr ""
"您可以在列印裝置的「設定 > 網路 > 存取代碼」中找到,\n"
"如圖所示:"
+# AI Translated
+# Needs human review: Quotes the printer's own screen menu (Setting > Setting > LAN only > Access Code, ConnectPrinter.cpp:134); confirm the labels the printer shows in Traditional Chinese.
msgid ""
"You can find it in \"Setting > Setting > LAN only > Access Code\"\n"
"on the printer, as shown in the figure:"
msgstr ""
-"您可以在列印裝置的「設定 > 設定 > 僅區域網路 > 存取代碼」中找到,\n"
+"您可以在列印裝置的「設定 > 設定 > 僅 LAN > 存取代碼」中找到,\n"
"如圖所示:"
+# AI Translated
msgid "Invalid input"
-msgstr "輸入無效。"
+msgstr "輸入無效"
msgid "New Window"
msgstr "新視窗"
@@ -6337,27 +7088,20 @@ msgstr "準備"
msgid "Preview"
msgstr "預覽"
-msgid "Device"
-msgstr "裝置"
-
-msgid "Multi-device"
-msgstr "多臺裝置"
-
msgid "Project"
msgstr "專案"
-# AI Translated
-msgid "Device (Web)"
-msgstr "裝置(網頁)"
-
msgid "Yes"
msgstr "是"
msgid "No"
msgstr "否"
-msgid "will be closed before creating a new model. Do you want to continue?"
-msgstr "將會被關閉以建立新模型,是否繼續?"
+# AI Translated
+#. TRN %s is a file name.
+#, c-format, boost-format
+msgid "%s will be closed before creating a new model. Do you want to continue?"
+msgstr "%s 將在建立新模型前關閉,是否繼續?"
msgid "Print all"
msgstr "列印所有列印板"
@@ -6402,6 +7146,10 @@ msgstr "設定精靈"
msgid "Show Configuration Folder"
msgstr "開啟設定檔的資料夾"
+# AI Translated
+msgid "Bring back filament presets that a profile update removed from printers they were made for"
+msgstr "找回因設定檔更新而從原本適用的列印裝置上移除的線材預設"
+
msgid "Troubleshoot Center"
msgstr "疑難排解中心"
@@ -6435,11 +7183,13 @@ msgstr "下載模型"
msgid "Default View"
msgstr "預設視圖"
+# AI Translated
msgid "Top View"
-msgstr "頂部視圖"
+msgstr "上視圖"
+# AI Translated
msgid "Bottom View"
-msgstr "底部視圖"
+msgstr "下視圖"
msgid "Front View"
msgstr "前視圖"
@@ -6447,7 +7197,7 @@ msgstr "前視圖"
# AI Translated
msgctxt "Camera View"
msgid "Rear"
-msgstr "背面"
+msgstr "後視"
msgid "Rear View"
msgstr "後視圖"
@@ -6499,11 +7249,13 @@ msgstr "匯入 3MF/STL/STEP/SVG/OBJ/AMF"
msgid "Load a model"
msgstr "載入模型"
+# AI Translated
msgid "Import ZIP Archive"
-msgstr "匯入壓縮檔"
+msgstr "匯入 ZIP 壓縮檔"
+# AI Translated
msgid "Load models contained within a ZIP archive"
-msgstr "載入壓縮檔中的模型"
+msgstr "載入 ZIP 壓縮檔中的模型"
msgid "Import Configs"
msgstr "匯入設定檔"
@@ -6517,20 +7269,23 @@ msgstr "匯入"
msgid "Export all objects as one STL"
msgstr "將所有物件匯出為一個 STL 檔案"
+# AI Translated
msgid "Export all objects as STLs"
-msgstr "將所有物件匯出為 STL 檔案"
+msgstr "將所有物件匯出為多個 STL 檔案"
msgid "Export all objects as one DRC"
msgstr "將所有物件匯出為一個 DRC"
+# AI Translated
msgid "Export all objects as DRCs"
-msgstr "將所有物件匯出為 DRC"
+msgstr "將所有物件匯出為多個 DRC"
msgid "Export Generic 3MF"
msgstr "匯出通用 3MF"
+# AI Translated
msgid "Export 3MF file without using some 3mf-extensions"
-msgstr "匯出不含 3MF 擴充的 3MF 檔案"
+msgstr "匯出不使用部分 3MF 擴充功能的 3MF 檔案"
msgid "Export current sliced file"
msgstr "匯出目前已切片的檔案"
@@ -6565,8 +7320,9 @@ msgstr "復原"
msgid "Redo"
msgstr "重做"
+# AI Translated
msgid "Cut"
-msgstr "切割"
+msgstr "剪下"
msgid "Cut selection to clipboard"
msgstr "剪下所選項目到剪貼簿"
@@ -6598,8 +7354,9 @@ msgstr "複製所選項目"
msgid "Clone copies of selections"
msgstr "複製多份所選項目"
+# AI Translated
msgid "Duplicate Current Plate"
-msgstr "複製列印板"
+msgstr "複製目前列印板"
msgid "Duplicate the current plate"
msgstr "複製目前列印板"
@@ -6607,32 +7364,40 @@ msgstr "複製目前列印板"
msgid "Selects all objects"
msgstr "選取所有物件"
+# AI Translated
msgid "Deselects all objects"
-msgstr "取消所有選取物件"
+msgstr "取消選取所有物件"
+# AI Translated
msgid "Use Perspective View"
-msgstr "使用透視視角"
+msgstr "使用透視視圖"
+# AI Translated
msgid "Use Orthogonal View"
-msgstr "使用正交視角"
+msgstr "使用正交視圖"
+# AI Translated
msgid "Auto Perspective"
-msgstr "自動視角調整"
+msgstr "自動透視"
+# AI Translated
msgid "Automatically switch between orthographic and perspective when changing from top/bottom/side views."
-msgstr "在切換至上、下或側視圖時,會自動在正投影和透視視圖之間切換"
+msgstr "在切換至上、下或側視圖時,自動在正交和透視視圖之間切換。"
+# AI Translated
msgid "Show &G-code Window"
-msgstr "顯示 G-code"
+msgstr "顯示 G-code 視窗"
+# AI Translated
msgid "Show G-code window in Preview scene."
-msgstr "在預覽分頁中顯示 G-code 視窗"
+msgstr "在預覽分頁中顯示 G-code 視窗。"
msgid "Show 3D Navigator"
msgstr "顯示 3D 導覽器"
+# AI Translated
msgid "Show 3D navigator in Prepare and Preview scene."
-msgstr "在準備與預覽分頁中顯示 3D 導覽器"
+msgstr "在準備與預覽分頁中顯示 3D 導覽器。"
msgid "Show Gridlines"
msgstr "顯示網格線"
@@ -6640,29 +7405,41 @@ msgstr "顯示網格線"
msgid "Show Gridlines on plate"
msgstr "顯示列印板上的網格線"
+# AI Translated
+msgid "Show IDEX/IQEX Toolhead"
+msgstr "顯示 IDEX/IQEX 工具頭"
+
+# AI Translated
+msgid "Show the IDEX/IQEX toolhead representation around each active nozzle in the G-code preview."
+msgstr "在 G-code 預覽中,於每個作用中的噴嘴周圍顯示 IDEX/IQEX 工具頭示意圖。"
+
msgid "Reset Window Layout"
msgstr "重設視窗配置"
msgid "Reset to default window layout"
msgstr "還原預設視窗配置"
+# AI Translated
msgid "Show &Labels"
-msgstr "顯示名稱"
+msgstr "顯示標籤"
+# AI Translated
msgid "Show object labels in 3D scene."
-msgstr "在 3D 場景中顯示物件名稱"
+msgstr "在 3D 場景中顯示物件標籤。"
msgid "Show &Overhang"
msgstr "凸顯懸空"
+# AI Translated
msgid "Show object overhang highlight in 3D scene."
-msgstr "在 3D 場景中凸顯懸空"
+msgstr "在 3D 場景中凸顯物件的懸空。"
msgid "Show Selected Outline (beta)"
msgstr "顯示選取輪廓(實驗性)"
+# AI Translated
msgid "Show outline around selected object in 3D scene."
-msgstr "在 3D 場景中顯示選定物件的輪廓"
+msgstr "在 3D 場景中顯示選取物件的輪廓。"
msgid "Preferences"
msgstr "偏好設定"
@@ -6672,8 +7449,9 @@ msgctxt "Menu"
msgid "Edit"
msgstr "編輯"
+# AI Translated
msgid "View"
-msgstr "視角"
+msgstr "檢視"
# AI Translated
msgid "Open Speed Dial"
@@ -6694,8 +7472,9 @@ msgstr "您必須登入才能從雲端同步預設。"
msgid "Syncing presets from cloud…"
msgstr "正在從雲端同步預設…"
+# AI Translated
msgid "Help"
-msgstr "幫助"
+msgstr "說明"
msgid "Temperature Calibration"
msgstr "溫度校正"
@@ -6721,14 +7500,17 @@ msgstr "轉角控制"
msgid "Cornering calibration"
msgstr "轉角校正"
+# AI Translated
msgid "Input Shaping Frequency"
-msgstr "輸入震動抑制頻率"
+msgstr "輸入整形頻率"
+# AI Translated
msgid "Input Shaping Damping/zeta factor"
-msgstr "輸入震動抑制的阻尼因子(ζ 值)"
+msgstr "輸入整形阻尼/zeta 係數"
+# AI Translated
msgid "Input Shaping"
-msgstr "輸入震動補償"
+msgstr "輸入整形"
msgid "VFA"
msgstr "VFA"
@@ -6751,11 +7533,13 @@ msgstr "從硬碟重新載入"
msgid "Export &Toolpaths as OBJ"
msgstr "將工具路徑匯出為 OBJ 格式"
+# AI Translated
msgid "Open &Slicer"
-msgstr "開啟 Studio"
+msgstr "開啟切片軟體"
+# AI Translated
msgid "Open Slicer"
-msgstr "開啟 Studio"
+msgstr "開啟切片軟體"
msgid "&Quit"
msgstr "離開"
@@ -6767,11 +7551,13 @@ msgstr "離開 %s"
msgid "&File"
msgstr "檔案"
+# AI Translated
msgid "&View"
-msgstr "視角"
+msgstr "檢視"
+# AI Translated
msgid "&Help"
-msgstr "幫助"
+msgstr "說明"
#, c-format, boost-format
msgid "A file exists with the same name: %s. Do you want to overwrite it?"
@@ -6790,16 +7576,18 @@ msgstr "覆蓋設定檔"
msgid "Yes to All"
msgstr "全部覆蓋"
+# AI Translated
msgid "No to All"
-msgstr "全部放棄"
+msgstr "全部不覆蓋"
msgid "Choose a directory"
msgstr "選擇目錄"
+# AI Translated
#, c-format, boost-format
msgid "There is %d config exported. (Only non-system configs)"
msgid_plural "There are %d configs exported. (Only non-system configs)"
-msgstr[0] "共匯出 %d 組預設檔(僅包含目前使用的非系統的預設檔)"
+msgstr[0] "共匯出 %d 個設定檔(僅限非系統設定檔)"
msgid "Export Result"
msgstr "匯出結果"
@@ -6811,10 +7599,11 @@ msgstr "選擇要載入的設定檔:"
msgid "Config files (*.json;*.zip;*.orca_printer;*.orca_bundle;*.orca_filament)|*.json;*.zip;*.orca_printer;*.orca_bundle;*.orca_filament"
msgstr "設定檔 (*.json;*.zip;*.orca_printer;*.orca_bundle;*.orca_filament)|*.json;*.zip;*.orca_printer;*.orca_bundle;*.orca_filament"
+# AI Translated
#, c-format, boost-format
msgid "There is %d config imported. (Only non-system and compatible configs)"
msgid_plural "There are %d configs imported. (Only non-system and compatible configs)"
-msgstr[0] "共匯入 %d 組預設檔(僅包含非系統且與目前配置相容的預設檔)"
+msgstr[0] "共匯入 %d 個設定檔(僅限非系統且相容的設定檔)"
msgid ""
"\n"
@@ -6829,8 +7618,9 @@ msgstr "匯入結果"
msgid "File is missing"
msgstr "檔案遺失"
+# AI Translated
msgid "The project is no longer available."
-msgstr "此項目不可用。"
+msgstr "此專案已無法使用。"
msgid ""
"Do you want to synchronize your personal data from Orca Cloud?\n"
@@ -6848,14 +7638,16 @@ msgstr ""
msgid "Synchronization"
msgstr "同步"
+# AI Translated
msgid "The device cannot handle more conversations. Please retry later."
-msgstr "該裝置無法處理更多對話。請稍後再試。"
+msgstr "裝置無法處理更多連線。請稍後再試。"
msgid "Player is malfunctioning. Please reinstall the system player."
msgstr "播放器故障。請重新安裝系統播放器。"
+# AI Translated
msgid "The player is not loaded; please click the \"play\" button to retry."
-msgstr "播放器未載入,請點選『播放』按鈕重試。"
+msgstr "播放器未載入,請按一下「播放」按鈕重試。"
msgid "The player is not loaded because the GStreamer GTK video sink is missing or failed to initialize."
msgstr "由於 GStreamer GTK 視訊接收器遺失或初始化失敗,因此未載入播放器。"
@@ -6870,8 +7662,9 @@ msgstr "登入 OrcaCloud 以檢視攝影機畫面。"
msgid "Initializing..."
msgstr "正在初始化..."
+# AI Translated
msgid "Playing..."
-msgstr "正在播放中……"
+msgstr "正在播放..."
msgid "The printer is currently busy downloading. Please try again after it finishes."
msgstr "列印裝置目前正忙於下載。請待下載完成後再試一次。"
@@ -6900,30 +7693,31 @@ msgstr "請檢查網路並重試。如果問題持續,您可以重新啟動或
msgid "The printer has been logged out and cannot connect."
msgstr "列印裝置已登出,無法連線。"
+# AI Translated
msgid "LAN Connection Failed (Failed to start liveview)"
-msgstr "區域網路連線失敗(無法啟動 Liveview)"
+msgstr "LAN 連線失敗(無法啟動 Liveview)"
+# AI Translated
msgid ""
"Virtual Camera Tools is required for this task!\n"
"Do you want to install them?"
msgstr ""
-"此作業需要虛擬相機工具!\n"
-"是否要安裝它們?執行此功能需要「虛擬攝影機工具包」!\n"
-"您要安裝它們嗎?"
+"此作業需要「虛擬攝影機工具包」!\n"
+"要安裝嗎?"
+# AI Translated
msgid "Downloading Virtual Camera Tools"
-msgstr "正在下載虛擬攝影機工具包..."
+msgstr "正在下載虛擬攝影機工具包"
+# AI Translated
msgid ""
"Another virtual camera is running.\n"
"Orca Slicer supports only a single virtual camera.\n"
"Do you want to stop this virtual camera?"
msgstr ""
-"另一個虛擬相機正在執行。\n"
-"Orca Slicer 只支援單一虛擬相機。\n"
-"是否要停止此虛擬相機?另一個虛擬攝影機正在工作。\n"
-"Orca Slicer 同時只能支援一個虛擬攝影機。\n"
-"是否停止前一個虛擬攝影機?"
+"另一個虛擬攝影機正在執行。\n"
+"Orca Slicer 只支援一個虛擬攝影機。\n"
+"要停止此虛擬攝影機嗎?"
#, c-format, boost-format
msgid "Virtual camera initialize failed (%s)!"
@@ -6935,8 +7729,9 @@ msgstr "網路不可存取"
msgid "Information"
msgstr "資訊"
+# AI Translated
msgid "Loading..."
-msgstr "正在載入影片……"
+msgstr "載入中..."
msgid "Year"
msgstr "年"
@@ -7001,23 +7796,26 @@ msgstr "載入失敗"
msgid "Browsing file in storage is not supported in current firmware. Please update the printer firmware."
msgstr "目前韌體不支援瀏覽儲存空間中的檔案。請更新列印裝置韌體。"
+# AI Translated
msgid "LAN Connection Failed (Failed to view sdcard)"
-msgstr "LAN 連線失敗(無法檢視 SD 卡)。"
+msgstr "LAN 連線失敗(無法檢視 SD 卡)"
msgid "Browsing file in storage is not supported in LAN Only Mode."
msgstr "僅 LAN 模式不支援瀏覽儲存空間中的檔案。"
+# AI Translated
#, c-format, boost-format
msgid "You are going to delete %u file from printer. Are you sure to continue?"
msgid_plural "You are going to delete %u files from printer. Are you sure to continue?"
-msgstr[0] "將從列印裝置中刪除 %u 個檔案。確認要繼續嗎?"
+msgstr[0] "將從列印裝置中刪除 %u 個檔案。確定要繼續嗎?"
msgid "Delete files"
msgstr "刪除檔案"
+# AI Translated
#, c-format, boost-format
msgid "Do you want to delete the file '%s' from printer?"
-msgstr "確認要從列印裝置中刪除檔案 '%s' 嗎?"
+msgstr "確定要從列印裝置中刪除檔案「%s」嗎?"
msgid "Delete file"
msgstr "刪除檔案"
@@ -7028,15 +7826,18 @@ msgstr "正在取得模型資訊..."
msgid "Failed to fetch model information from printer."
msgstr "無法從列印裝置取得模型資訊。"
+# AI Translated
msgid "Failed to parse model information."
-msgstr "解析模型資訊失敗。"
+msgstr "無法解析模型資訊。"
+# AI Translated
msgid "The .gcode.3mf file contains no G-code data. Please slice it with Orca Slicer and export a new .gcode.3mf file."
-msgstr ".gcode.3mf 檔案不包含 G-code 資料。請使用 OrcaSlicer 切片並匯出新的 .gcode.3mf 檔案。.gcode.3mf 檔案中不包含 G-code 資料。請使用 Orca Slicer 進行切片並匯出新的 .gcode.3mf 檔案。"
+msgstr ".gcode.3mf 檔案不包含 G-code 資料。請使用 Orca Slicer 切片並匯出新的 .gcode.3mf 檔案。"
+# AI Translated
#, c-format, boost-format
msgid "File '%s' was lost! Please download it again."
-msgstr "檔案 %s 遺失,請重新下載。"
+msgstr "檔案「%s」已遺失!請重新下載。"
#, c-format, boost-format
msgid ""
@@ -7065,8 +7866,9 @@ msgstr "下載中 %d%%..."
msgid "Air Condition"
msgstr "空調"
+# AI Translated
msgid "Reconnecting the printer, the operation cannot be completed immediately, please try again later."
-msgstr "重新連線列印裝置,操作無法立即完成,請稍後再試。"
+msgstr "正在重新連線列印裝置,此操作無法立即完成,請稍後再試。"
msgid "Timeout, please try again."
msgstr "逾時,請重試。"
@@ -7124,8 +7926,9 @@ msgstr "無法讀取檔案,請重試。"
msgid "Speed:"
msgstr "速度:"
+# AI Translated
msgid "Deadzone:"
-msgstr "盲點區:"
+msgstr "死區:"
msgid "Options:"
msgstr "選項:"
@@ -7160,8 +7963,9 @@ msgstr "反轉俯仰軸(橫軸)"
msgid "Invert Roll axis"
msgstr "反轉橫滾軸(縱軸)"
+# AI Translated
msgid "(LAN)"
-msgstr "(區域網路)"
+msgstr "(LAN)"
msgid "Search"
msgstr "搜尋"
@@ -7172,8 +7976,9 @@ msgstr "我的裝置"
msgid "Other Device"
msgstr "其他裝置"
+# AI Translated
msgid "Online"
-msgstr "在線"
+msgstr "線上"
msgid "Input access code"
msgstr "輸入存取代碼"
@@ -7214,8 +8019,9 @@ msgstr "名稱不允許以空格結尾。"
msgid "The name is not allowed to exceed 32 characters."
msgstr "名稱不允許超過 32 個字元。"
+# AI Translated
msgid "Bind with Pin Code"
-msgstr "Pin碼綁定"
+msgstr "透過 Pin 碼綁定"
msgid "Bind with Access Code"
msgstr "透過存取代碼綁定"
@@ -7233,17 +8039,20 @@ msgstr "切換失敗"
msgid "Printing progress"
msgstr "列印進度"
+# AI Translated
msgid "Parts Skip"
-msgstr "零件跳過"
+msgstr "跳過零件"
msgid "Stop"
msgstr "停止"
+# AI Translated
msgid "Layer: N/A"
-msgstr "層: N/A"
+msgstr "層:N/A"
+# AI Translated
msgid "Click to view thermal preconditioning explanation"
-msgstr "點選檢視熱預處理說明"
+msgstr "點選檢視熱預調節說明"
msgid "Clear"
msgstr "清除"
@@ -7253,8 +8062,8 @@ msgid ""
"You have completed printing the mall model, \n"
"but synchronizing rating information has failed."
msgstr ""
-"已經完成了 MakeWorld 模型的列印,\n"
-"但評論資料同步失敗。"
+"您已完成商城模型的列印,\n"
+"但評分資訊同步失敗。"
msgid "How do you like this printing file?"
msgstr "您覺得這個列印檔案怎麼樣?"
@@ -7262,13 +8071,16 @@ msgstr "您覺得這個列印檔案怎麼樣?"
msgid "(The model has already been rated. Your rating will overwrite the previous rating.)"
msgstr "(此模型已被評價。您的評價將覆蓋先前的評價。)"
+# AI Translated
msgid "Rate"
-msgstr "速率"
+msgstr "評分"
# AI Translated
msgid "Calculating..."
msgstr "計算中..."
+# AI Translated
+msgctxt "Printer camera"
msgid "Camera"
msgstr "攝影機"
@@ -7314,11 +8126,13 @@ msgstr "儲存狀態異常"
msgid "Cancel print"
msgstr "取消列印"
+# AI Translated
msgid "Are you sure you want to stop this print?"
-msgstr "確認要停止此列印嗎?"
+msgstr "確定要停止此列印嗎?"
+# AI Translated
msgid "The printer is busy with another print job."
-msgstr "列印裝置正在執行其他列印作業"
+msgstr "列印裝置正在執行其他列印作業。"
msgid "When printing is paused, filament loading and unloading are only supported for external slots."
msgstr "列印暫停時,只支援外部槽位的線材進退料。"
@@ -7328,11 +8142,11 @@ msgstr "擠出機正在進行換料操作。"
# AI Translated
msgid "\"Load\" or \"Unload\" is not supported for external spool while using Filament Track Switch."
-msgstr "使用 Filament Track Switch 時,外部料盤不支援「裝入」或「退出」。"
+msgstr "使用線材路徑切換器時,外部料盤不支援「進料」或「退料」。"
# AI Translated
msgid "The Filament Track Switch has not been setup. Please setup on printer."
-msgstr "Filament Track Switch 尚未設定。請在印表機上進行設定。"
+msgstr "線材路徑切換器尚未設定。請在列印裝置上進行設定。"
msgid "Current slot has already been loaded."
msgstr "目前槽位已載入線材。"
@@ -7349,26 +8163,32 @@ msgstr "下載中..."
msgid "Cloud Slicing..."
msgstr "雲端切片中..."
+# AI Translated
#, c-format, boost-format
-msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
-msgstr "雲端切片佇列中,前面還有 %s 個檔案。"
+msgid "In Cloud Slicing Queue, there is %d task ahead of you."
+msgid_plural "In Cloud Slicing Queue, there are %d tasks ahead of you."
+msgstr[0] "雲端切片佇列中,前面還有 %d 個任務。"
+# AI Translated
#, c-format, boost-format
msgid "Layer: %s"
-msgstr "%s 層"
+msgstr "層:%s"
+# AI Translated
#, c-format, boost-format
msgid "Layer: %d/%d"
-msgstr "%d/%d 層"
+msgstr "層:%d/%d"
msgid "Please heat the nozzle to above 170℃ before loading or unloading filament."
msgstr "請在進料或退料之前將噴嘴加熱至 170℃ 以上。"
+# AI Translated
msgid "Chamber temperature cannot be changed in cooling mode while printing."
-msgstr "列印時無法在冷卻模式下變更列印裝置內部溫度。"
+msgstr "列印時無法在冷卻模式下變更腔體溫度。"
+# AI Translated
msgid "If the chamber temperature exceeds 40℃, the system will automatically switch to heating mode. Please confirm whether to switch."
-msgstr "如果列印裝置內部溫度超過 40℃,系統將自動切換到加熱模式。請確認是否切換。"
+msgstr "如果腔體溫度超過 40℃,系統將自動切換到加熱模式。請確認是否切換。"
msgid "Please select an AMS slot before calibration"
msgstr "請先選擇一個 AMS 槽位後進行校正"
@@ -7379,14 +8199,22 @@ msgstr "無法讀取線材資訊:線材已經載入到工具頭,請退出線
msgid "This only takes effect during printing"
msgstr "僅在列印過程中生效"
+# AI Translated
msgid "Silent"
-msgstr "靜音模式(50%)"
+msgstr "靜音"
+# AI Translated
+msgctxt "Mode"
+msgid "Standard"
+msgstr "標準"
+
+# AI Translated
msgid "Sport"
-msgstr "運動模式(125%)"
+msgstr "運動"
+# AI Translated
msgid "Ludicrous"
-msgstr "狂暴模式(150%)"
+msgstr "狂暴"
msgid "Turning off the lights during the task will cause the failure of AI monitoring, like spaghetti detection. Please choose carefully."
msgstr "在任務期間關閉燈光將導致 AI 監控失效,例如拉絲偵測。請謹慎選擇。"
@@ -7406,8 +8234,9 @@ msgstr "評價列印設定檔"
msgid "Comment"
msgstr "評論"
+# AI Translated
msgid "Rate this print"
-msgstr "評價這個印刷品"
+msgstr "為這次列印評分"
msgid "Add Photo"
msgstr "新增照片"
@@ -7429,8 +8258,9 @@ msgstr "送出"
msgid "Please click on the star first."
msgstr "請先點選星星數量。"
+# AI Translated
msgid "Get oss config failed."
-msgstr "取得 oss 設定失敗。"
+msgstr "無法取得 oss 設定。"
msgid "Upload Pictures"
msgstr "上傳圖片"
@@ -7438,17 +8268,29 @@ msgstr "上傳圖片"
msgid "Number of images successfully uploaded"
msgstr "成功上傳的圖片數量"
-msgid " upload failed"
-msgstr " 上傳失敗"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload failed"
+msgstr "%s 上傳失敗"
-msgid " upload config prase failed\n"
-msgstr " 上傳設定檔失敗\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s upload config parse failed"
+msgstr "%s 上傳設定檔解析失敗"
-msgid " No corresponding storage bucket\n"
-msgstr " 沒有對應的儲存區\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s: No corresponding storage bucket"
+msgstr "%s:沒有對應的儲存區"
-msgid " cannot be opened\n"
-msgstr " 無法開啟\n"
+# AI Translated
+#. TRN %s is the path of an image file.
+#, c-format, boost-format
+msgid "%s cannot be opened"
+msgstr "%s 無法開啟"
msgid ""
"The following issues occurred during the process of uploading images. Do you want to ignore them?\n"
@@ -7466,29 +8308,26 @@ msgstr "上傳失敗\n"
msgid "Obtaining instance_id failed\n"
msgstr "取得 instance_id 失敗\n"
+# AI Translated
+#, c-format, boost-format
msgid ""
"Your comment result cannot be uploaded due to the following reasons:\n"
"\n"
-" error code: "
-msgstr ""
-"由於某些原因,您的評論結果無法上傳。如下:\n"
-"\n"
-" 錯誤代碼: "
-
-msgid "error message: "
-msgstr "錯誤訊息:"
-
-msgid ""
-"\n"
+" error code: %d\n"
+" error message: %s\n"
"\n"
"Would you like to redirect to the webpage to give a rating?"
msgstr ""
+"由於以下原因,您的評論結果無法上傳:\n"
"\n"
+" 錯誤代碼:%d\n"
+" 錯誤訊息:%s\n"
"\n"
-"您想要跳轉到網頁給予評分嗎?"
+"要前往網頁進行評價嗎?"
+# AI Translated
msgid "Some of your images failed to upload. Would you like to redirect to the webpage to give a rating?"
-msgstr "您的部分圖片上傳失敗。 要重定導向評價網頁嗎?"
+msgstr "您的部分圖片上傳失敗。要前往網頁進行評價嗎?"
msgid "You can select up to 16 images."
msgstr "您最多可以選擇 16 張圖片。"
@@ -7500,11 +8339,13 @@ msgstr ""
"若要給予正面評價(4 或 5 星),\n"
"必須至少有一個此列印設定檔的成功列印記錄。"
+# AI Translated
msgid "click to add machine"
-msgstr "點選新增印表機"
+msgstr "點選新增列印裝置"
+# AI Translated
msgid "Status"
-msgstr "裝置狀態"
+msgstr "狀態"
msgctxt "Firmware"
msgid "Update"
@@ -7517,9 +8358,10 @@ msgstr "助手(HMS)"
msgid "Network plug-in v%s"
msgstr "網路外掛程式 v%s"
+# AI Translated
#, c-format, boost-format
msgid "Network plug-in v%s (%s)"
-msgstr "網路外掛程式 v%s (%s)"
+msgstr "網路外掛程式 v%s(%s)"
msgid "Don't show again"
msgstr "不再顯示"
@@ -7563,8 +8405,9 @@ msgstr "較新的 3MF 版本"
msgid "The 3MF file version is in Beta and it is newer than the current OrcaSlicer version."
msgstr "該 3MF 檔案版本為測試版,且較目前的 OrcaSlicer 版本更新。"
+# AI Translated
msgid "If you would like to try Orca Slicer Beta, you may click to"
-msgstr "如果您想嘗試 Orca Slicer 測試版,可以點選以下載到"
+msgstr "如果您想試用 Orca Slicer 測試版,可以點選"
msgid "Download Beta Version"
msgstr "下載測試版"
@@ -7575,11 +8418,13 @@ msgstr "該 3MF 檔案版本較目前的 OrcaSlicer 版本更新。"
msgid "Updating your OrcaSlicer could enable all functionality in the 3MF file."
msgstr "更新 OrcaSlicer 即可啟用 3MF 檔案中的所有功能。"
+# AI Translated
msgid "Current Version: "
-msgstr "目前版本:"
+msgstr "目前版本: "
+# AI Translated
msgid "Latest Version: "
-msgstr "最新版本:"
+msgstr "最新版本: "
msgctxt "Software"
msgid "Update"
@@ -7594,14 +8439,17 @@ msgstr "伺服器異常"
msgid "The server is unable to respond. Please click the link below to check the server status."
msgstr "伺服器沒有回應,請點選下方連結檢查伺服器狀態。"
+# AI Translated
msgid "If the server is in a fault state, you can temporarily use offline printing or local network printing."
-msgstr "若伺服器發生故障,可以暫時改用離線列印或本地網路列印。"
+msgstr "若伺服器發生故障,您可以暫時改用離線列印或區域網路列印。"
+# AI Translated
msgid "How to use LAN only mode"
-msgstr "如何啟用 LAN 模式"
+msgstr "如何使用僅 LAN 模式"
+# AI Translated
msgid "Don't show this dialog again"
-msgstr "不要再顯示此提示"
+msgstr "不再顯示此對話框"
msgid "Please refer to Wiki before use->"
msgstr "使用前請參考 Wiki ->"
@@ -7616,7 +8464,7 @@ msgstr "請先開啟 3D 視圖。"
# AI Translated
msgid "Select an object first."
-msgstr "請先選擇一個物件。"
+msgstr "請先選取一個物件。"
# AI Translated
msgid "Slice and Preview"
@@ -7772,7 +8620,7 @@ msgstr "沿 Z 軸鏡像"
# AI Translated
msgid "Split to Objects"
-msgstr "分割為物件"
+msgstr "拆分為物件"
# AI Translated
msgid "Split to Parts"
@@ -7856,7 +8704,7 @@ msgstr "請登入以同步預設。"
# AI Translated
msgid "Export All Objects as STLs"
-msgstr "將所有物件匯出為 STL 檔案"
+msgstr "將所有物件匯出為多個 STL 檔案"
# AI Translated
msgid "Export All Objects as DRC (one file)"
@@ -7864,7 +8712,7 @@ msgstr "將所有物件匯出為 DRC(單一檔案)"
# AI Translated
msgid "Export All Objects as DRCs"
-msgstr "將所有物件匯出為 DRC 檔案"
+msgstr "將所有物件匯出為多個 DRC 檔案"
# AI Translated
msgid "Export Toolpaths as OBJ"
@@ -7915,8 +8763,9 @@ msgstr "整合成功。"
msgid "Integration failed."
msgstr "整合失敗。"
+# AI Translated
msgid "Undo integration was successful."
-msgstr "整合取消成功。"
+msgstr "已成功復原整合。"
msgid "New network plug-in available."
msgstr "網路外掛程式有可用的更新。"
@@ -7927,17 +8776,21 @@ msgstr "詳細"
msgid "New printer config available."
msgstr "有新的列印裝置設定可用。"
+# AI Translated
msgid "Undo integration failed."
-msgstr "整合取消失敗。"
+msgstr "復原整合失敗。"
+# AI Translated
msgid "Exporting"
-msgstr "正在匯出。"
+msgstr "正在匯出"
+# AI Translated
msgid "An update is available!"
-msgstr "發現新的軟體版本。"
+msgstr "有可用的更新!"
+# AI Translated
msgid "Go to download page"
-msgstr "前往下載網站。"
+msgstr "前往下載頁面"
msgid "Open Folder."
msgstr "開啟資料夾。"
@@ -7949,25 +8802,29 @@ msgstr "安全移除硬體。"
msgid "Ejecting."
msgstr "正在彈出。"
+# AI Translated
#, c-format, boost-format
msgid "%1$d Object has custom supports."
msgid_plural "%1$d Objects have custom supports."
-msgstr[0] "%1$d 物件有自訂支撐。"
+msgstr[0] "%1$d 個物件有自訂支撐。"
+# AI Translated
#, c-format, boost-format
msgid "%1$d Object has color painting."
msgid_plural "%1$d Objects have color painting."
-msgstr[0] "%1$d 物件有上色。"
+msgstr[0] "%1$d 個物件有顏色繪製。"
+# AI Translated
#, c-format, boost-format
msgid "%1$d object was loaded as a part of cut object."
msgid_plural "%1$d objects were loaded as parts of cut object."
-msgstr[0] "%1$d 物件載入為一個切割物件的子零件。"
+msgstr[0] "%1$d 個物件已作為切割物件的零件載入。"
+# AI Translated
#, c-format, boost-format
msgid "%1$d object was loaded with fuzzy skin painting."
msgid_plural "%1$d objects were loaded with fuzzy skin painting."
-msgstr[0] "%1$d 物件載入時具有模糊表皮繪製。"
+msgstr[0] "%1$d 個物件載入時帶有絨毛表面繪製。"
msgid "ERROR"
msgstr "錯誤"
@@ -7978,7 +8835,7 @@ msgstr "已完成"
# AI Translated
#, c-format, boost-format
msgid "%d%% - %.2f of %.2fMB uploaded"
-msgstr "%d%% - 已上傳 %.2f / %.2fMB"
+msgstr "%d%%,已上傳 %.2f / %.2f MB"
msgid "CANCELED"
msgstr "已取消"
@@ -7995,8 +8852,9 @@ msgstr "錯誤:"
msgid "Warning:"
msgstr "警告:"
+# AI Translated
msgid "Exported successfully"
-msgstr "匯出成功。"
+msgstr "匯出成功"
msgid "Model file downloaded."
msgstr "模型檔案已下載。"
@@ -8010,23 +8868,27 @@ msgstr "強制推送"
msgid "Shared profiles may be available for this printer."
msgstr "此列印裝置可能有可用的共用設定檔。"
+# AI Translated
msgid "Browse shared profiles"
-msgstr "瀏覽共享設定檔"
+msgstr "瀏覽共用設定檔"
msgid "Serious warning:"
msgstr "嚴重警告:"
+# AI Translated
msgid " (Repair)"
-msgstr "(修復)"
+msgstr " (修復)"
+# AI Translated
msgid " Click here to install it."
-msgstr "點選此處安裝。"
+msgstr " 點選此處安裝。"
msgid "WARNING:"
msgstr "警告:"
+# AI Translated
msgid "Your model needs support! Please enable support material."
-msgstr "您的模型需要支撐才能列印。請啟用支撐選項。"
+msgstr "您的模型需要支撐!請啟用支撐。"
msgid "G-code path overlap"
msgstr "G-code 路徑重疊"
@@ -8065,16 +8927,18 @@ msgstr "請升級您的顯示卡驅動程式。"
msgid "Unsupported OpenGL version"
msgstr "不支援的 OpenGL 版本"
+# AI Translated
#, c-format, boost-format
msgid ""
"Unable to load shaders:\n"
"%s"
msgstr ""
-"無法載入 Shader:\n"
+"無法載入著色器:\n"
"%s"
+# AI Translated
msgid "Error loading shaders"
-msgstr "載入 shader 程式時發生錯誤"
+msgstr "載入著色器時發生錯誤"
msgctxt "Layers"
msgid "Top"
@@ -8086,11 +8950,11 @@ msgstr "底部"
# AI Translated
msgid "This setting does not specify a plugin capability type."
-msgstr "此設定未指定外掛能力類型。"
+msgstr "此設定未指定外掛功能類型。"
# AI Translated
msgid "This setting specifies an unrecognized plugin capability type: "
-msgstr "此設定指定了無法識別的外掛能力類型: "
+msgstr "此設定指定了無法識別的外掛功能類型: "
# AI Translated
msgid "Plugin Selection"
@@ -8106,15 +8970,15 @@ msgstr ""
# AI Translated
msgid "There is stringing-prone filament in the current print job. Enabling nozzle clumping detection now may degrade print quality. Are you sure you want to enable it?"
-msgstr "目前的列印工作中含有易牽絲的線材。此時啟用噴嘴裹料偵測可能會降低列印品質。您確定要啟用嗎?"
+msgstr "目前的列印作業中含有易牽絲的線材。此時啟用噴嘴結塊偵測可能會降低列印品質。您確定要啟用嗎?"
# AI Translated
msgid "Enable Nozzle Clumping Detection"
-msgstr "啟用噴嘴裹料偵測"
+msgstr "啟用噴嘴結塊偵測"
# AI Translated
msgid "When enabled, the printer will automatically capture photos of printed parts and upload them to the cloud. Would you like to enable this option?"
-msgstr "啟用後,印表機會自動拍攝列印件的照片並上傳至雲端。您要啟用此選項嗎?"
+msgstr "啟用後,列印裝置會自動拍攝列印件的照片並上傳至雲端。您要啟用此選項嗎?"
# AI Translated
msgid "Confirm Enable Print Status Snapshot"
@@ -8134,15 +8998,15 @@ msgstr "識別熱床上列印板的類型和位置。如果偵測到不符時暫
# AI Translated
msgid "Purifies the chamber air as the print finishes, based on the selected mode."
-msgstr "於列印結束時,依所選模式淨化倉室空氣。"
+msgstr "於列印結束時,依所選模式淨化腔體空氣。"
# AI Translated
msgid "Purifies the chamber air through internal circulation as each print finishes."
-msgstr "於每次列印結束時,透過內循環淨化倉室空氣。"
+msgstr "於每次列印結束時,透過內循環淨化腔體空氣。"
# AI Translated
msgid "Automatically match the corresponding switch strategy for leak-prone filaments (disable blob detection) and regular filaments (enable blob detection)."
-msgstr "為易漏料線材(停用裹料偵測)與一般線材(啟用裹料偵測)自動套用對應的切換策略。"
+msgstr "為易漏料線材(停用結塊偵測)與一般線材(啟用結塊偵測)自動套用對應的開關策略。"
# AI Translated
msgid "Detect whether the nozzle is wrapped by filament or other foreign matter."
@@ -8155,8 +9019,9 @@ msgstr "停用後將無法偵測噴嘴包覆,可能導致列印失敗或噴嘴
msgid "AI Detections"
msgstr "AI 偵測"
+# AI Translated
msgid "Printer will send assistant message or pause printing if any of the following problem is detected."
-msgstr "列印裝置將傳送助手訊息或暫停列印,如果偵測到以下任何問題。"
+msgstr "若偵測到以下任何問題,列印裝置將傳送助手訊息或暫停列印。"
msgid "Enable AI monitoring of printing"
msgstr "啟用列印過程的 AI 智慧監控"
@@ -8167,8 +9032,9 @@ msgstr "暫停靈敏度:"
msgid "Spaghetti Detection"
msgstr "拉絲偵測"
+# AI Translated
msgid "Detect spaghetti failures (scattered lose filament)."
-msgstr "偵測拉絲故障(散落鬆脫的耗材絲)。"
+msgstr "偵測拉絲故障(散落鬆脫的線材)。"
msgid "Purge Chute Pile-Up Detection"
msgstr "廢料槽堆積偵測"
@@ -8176,11 +9042,13 @@ msgstr "廢料槽堆積偵測"
msgid "Monitor if the waste is piled up in the purge chute."
msgstr "監控廢料是否在廢料槽中堆積。"
+# AI Translated
msgid "Nozzle Clumping Detection"
-msgstr "噴嘴堵塞偵測"
+msgstr "噴嘴結塊偵測"
+# AI Translated
msgid "Check if the nozzle is clumping by filaments or other foreign objects."
-msgstr "檢查噴嘴是否因線材或其他異物而堵塞。"
+msgstr "檢查噴嘴上是否有線材或其他異物結塊。"
msgid "Detects air printing caused by nozzle clogging or filament grinding."
msgstr "偵測由噴嘴堵塞或線材磨損導致的空印。"
@@ -8188,8 +9056,9 @@ msgstr "偵測由噴嘴堵塞或線材磨損導致的空印。"
msgid "First Layer Inspection"
msgstr "首層檢查"
+# AI Translated
msgid "Auto-recover from step loss"
-msgstr "自動從丟步中恢復"
+msgstr "自動從失步中恢復"
msgid "Store Sent Files on External Storage"
msgstr "將傳送的檔案儲存到外部儲存空間"
@@ -8204,8 +9073,9 @@ msgstr "允許提示音效"
msgid "Filament Tangle Detection"
msgstr "線材打結偵測"
+# AI Translated
msgid "Check if the nozzle is clumping by filament or other foreign objects."
-msgstr "檢查噴嘴是否因線材或其他異物而堵塞。"
+msgstr "檢查噴嘴上是否有線材或其他異物結塊。"
# AI Translated
msgid "Purify Air at Print End"
@@ -8241,7 +9111,7 @@ msgstr "於列印過程中監控列印件,若發生位移或倒塌會立即提
# AI Translated
msgid "Checks if the nozzle is clumping by filament or other foreign objects."
-msgstr "檢查噴嘴是否被線材或其他異物纏裹。"
+msgstr "檢查噴嘴上是否有線材或其他異物結塊。"
msgid "On"
msgstr "開啟"
@@ -8309,8 +9179,9 @@ msgstr "物件"
msgid "Cycle settings visibility"
msgstr "循環切換設定可見性"
+# AI Translated
msgid "Compare presets"
-msgstr "比較設定"
+msgstr "比較預設"
msgid "View all object's settings"
msgstr "檢視所有物件的設定"
@@ -8318,14 +9189,118 @@ msgstr "檢視所有物件的設定"
msgid "Material settings"
msgstr "材料設定"
+# AI Translated
+msgid "Each mode names the tool heads that take part and the role each one plays. Click a tool button to cycle its role — hover a color below for what each role does."
+msgstr "每個模式會指定參與的工具頭及各自扮演的角色。點選工具頭按鈕可循環切換其角色;將滑鼠停留在下方的顏色上可查看各角色的作用。"
+
+# AI Translated
+msgid "Add Mode"
+msgstr "新增模式"
+
+# AI Translated
+msgid "Tools"
+msgstr "工具"
+
+# AI Translated
+msgid "G-code"
+msgstr "G-code"
+
+# AI Translated
+msgid "How the mode is labeled in the plate's IDEX/IQEX mode selector. Required — a mode with no name cannot be selected."
+msgstr "此模式在列印板的 IDEX/IQEX 模式選擇器中顯示的名稱。必填,未命名的模式無法被選取。"
+
+# AI Translated
+msgid "Which tool heads take part in the mode and what role each one plays. Click a tile to cycle its role."
+msgstr "參與此模式的工具頭及各自扮演的角色。點選方塊可循環切換其角色。"
+
+# AI Translated
+msgid "G-code run at print start to put the printer into this mode (for example a Klipper SET_PRINT_MODE call). The slicer only emits the Primary tool's paths; the firmware drives the others."
+msgstr "列印開始時執行的 G-code,用於將列印裝置切換至此模式(例如呼叫 Klipper 的 SET_PRINT_MODE)。切片軟體只會產生主(Primary)工具頭的路徑,其餘工具頭由韌體驅動。"
+
+# AI Translated
+#. TRN IDEX/IQEX role of a tool head that takes no part in the mode.
+msgctxt "IDEX/IQEX role"
+msgid "Inactive"
+msgstr "未啟用"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head the slicer generates paths for.
+msgctxt "IDEX/IQEX role"
+msgid "Primary"
+msgstr "主"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a copy of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Copy"
+msgstr "複製"
+
+# AI Translated
+#. TRN IDEX/IQEX role: the tool head prints a mirror image of the Primary's paths.
+msgctxt "IDEX/IQEX role"
+msgid "Mirror"
+msgstr "鏡像"
+
+# AI Translated
+#. TRN IDEX/IQEX role: multicolor partner of the Primary on the same gantry.
+msgctxt "IDEX/IQEX role"
+msgid "Span"
+msgstr "Span"
+
+# AI Translated
+msgid "Drives every sliced path. Always tool 0 — use Tool 0 Position above to choose which corner of the bed it occupies. It cannot be moved from the grid."
+msgstr "驅動所有切片路徑。固定為工具頭 0,可使用上方的「工具頭 0 位置」選擇它位於列印板的哪個角落。它無法從網格中移走。"
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths offset into its own zone."
+msgstr "由韌體控制跟隨主(Primary)工具頭,在自己的區域內以偏移方式列印相同的路徑。"
+
+# AI Translated
+msgid "Follows the Primary at the firmware level, printing the same paths reflected across the boundary between the two zones."
+msgstr "由韌體控制跟隨主(Primary)工具頭,沿兩個區域之間的分界線鏡像列印相同的路徑。"
+
+# AI Translated
+msgid "Marks a tool on the Primary's gantry as its multicolor partner. Required to allow multi-color printing in paired-gantry modes."
+msgstr "將主(Primary)工具頭所在龍門上的一個工具頭標記為其多色搭檔。在成對龍門模式下進行多色列印時必須設定。"
+
+# AI Translated
+msgid "Primary"
+msgstr "主模式"
+
+# AI Translated
+msgid "Mode name (required)"
+msgstr "模式名稱(必填)"
+
+# AI Translated
+msgid "Name of this parallel mode, as it appears in the plate's IDEX/IQEX mode selector. Stored in the project by name, so renaming a mode that plates already use makes them fall back to Primary. Cannot be empty — a blank name is replaced with a generated one."
+msgstr "此並行模式在列印板的 IDEX/IQEX 模式選擇器中顯示的名稱。專案以名稱記錄所用的模式,因此重新命名已被列印板使用的模式,會使這些列印板回退至主模式。不可為空,空白名稱會被替換為自動產生的名稱。"
+
+# AI Translated
+msgid "G-code emitted once at the start of a print that uses this mode, before the machine start G-code. This is where the printer is put into the matching firmware mode — for example a Klipper SET_PRINT_MODE call or a RepRapFirmware M567 — since the slicer only emits the Primary tool's paths and the firmware drives the Copy / Mirror tools. Placeholders are supported; use the edit button to browse them. Leave empty if the mode needs no firmware setup."
+msgstr "在使用此模式的列印開始時輸出一次的 G-code,位於列印裝置起始 G-code 之前。列印裝置會在此切換至對應的韌體模式(例如呼叫 Klipper 的 SET_PRINT_MODE 或 RepRapFirmware 的 M567),因為切片軟體只會產生主(Primary)工具頭的路徑,複製(Copy)/鏡像(Mirror)工具頭則由韌體驅動。支援占位符,可使用編輯按鈕瀏覽。若此模式不需要韌體設定,請留空。"
+
+# AI Translated
+msgid "Edit G-code / browse placeholders"
+msgstr "編輯 G-code / 瀏覽占位符"
+
+# AI Translated
+msgid "Remove mode"
+msgstr "移除模式"
+
+# AI Translated
+msgid "Discard in-session edits to this mode (snap back to saved value)"
+msgstr "捨棄本次工作階段對此模式所做的編輯(恢復為已儲存的值)"
+
msgid "Remove current plate (if not last one)"
msgstr "刪除目前列印板(如果不是最後一個)"
+# AI Translated
msgid "Auto orient objects on current plate"
-msgstr "自動轉向列印板上物件"
+msgstr "自動定向目前列印板上的物件"
+# AI Translated
msgid "Arrange objects on current plate"
-msgstr "自動擺放列印板上物件"
+msgstr "自動擺放目前列印板上的物件"
msgid "Unlock current plate"
msgstr "解鎖列印板"
@@ -8339,15 +9314,37 @@ msgstr "線材分組"
msgid "Edit current plate name"
msgstr "編輯列印板名稱"
+# AI Translated
msgid "Move plate to the front"
-msgstr "更改列印板順序至前"
+msgstr "將列印板移到最前面"
+
+# AI Translated
+#. TRN Plate icon tooltip. %1% is the plate's IDEX/IQEX mode, %2% the mode its process preset sets.
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (process preset: %2%) (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX 模式:%1%(列印參數預設:%2%)(左鍵點選可循環切換,右鍵點選開啟選單)"
+
+# AI Translated
+#, boost-format
+msgid "IDEX/IQEX mode: %1% (left-click to cycle, right-click for menu)"
+msgstr "IDEX/IQEX 模式:%1%(左鍵點選可循環切換,右鍵點選開啟選單)"
+
+# AI Translated
+msgid "Warning: this plate uses a parallel IDEX/IQEX mode with multi-material objects. Proceed with caution — verify your G-code handles this combination correctly."
+msgstr "警告:此列印板在 IDEX/IQEX 並行模式下使用了多線材物件。請謹慎操作,並確認您的 G-code 能正確處理此組合。"
msgid "Customize current plate"
msgstr "自訂列印板參數"
+# AI Translated
#, c-format, boost-format
-msgid "The %s nozzle can not print %s."
-msgstr "%s 噴嘴無法列印 %s。"
+msgid "The left nozzle cannot print %s."
+msgstr "左噴嘴無法列印 %s。"
+
+# AI Translated
+#, c-format, boost-format
+msgid "The right nozzle cannot print %s."
+msgstr "右噴嘴無法列印 %s。"
# AI Translated
msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging."
@@ -8357,12 +9354,17 @@ msgstr "在單擠出機列印裝置上列印混色線材需要頻繁換料與清
msgid "Mixing %1% with %2% in printing is not recommended.\n"
msgstr "不建議在列印時混用 %1% 和 %2%。\n"
-msgid " nozzle"
-msgstr " 噴嘴"
-
+# AI Translated
+#. TRN %1% is the nozzle diameter, %2% the nozzle volume type, for example "Standard" or "High Flow".
#, boost-format
-msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
-msgstr "不建議使用 %1% 列印以下線材:%2%\n"
+msgid "%1%mm %2% nozzle"
+msgstr "%1% mm %2% 噴嘴"
+
+# AI Translated
+#, boost-format
+msgid "It is not recommended to print the following filament with %1%: %2%\n"
+msgid_plural "It is not recommended to print the following filaments with %1%: %2%\n"
+msgstr[0] "不建議使用 %1% 列印以下線材:%2%\n"
msgid "It is not recommended to use the following nozzle and filament combinations:\n"
msgstr "不建議使用以下噴嘴和線材組合:\n"
@@ -8371,9 +9373,11 @@ msgstr "不建議使用以下噴嘴和線材組合:\n"
msgid "%1% with %2%\n"
msgstr "%1% 與 %2%\n"
+# AI Translated
+#. TRN Slicing progress. %1% is the plate number, %2% the current slicing step.
#, boost-format
-msgid " plate %1%:"
-msgstr "列印板 %1%:"
+msgid "Slicing plate %1%: %2%"
+msgstr "正在切片列印板 %1%:%2%"
msgid "Invalid name, the following characters are not allowed:"
msgstr "無效名稱,不允許使用以下字元:"
@@ -8408,12 +9412,6 @@ msgstr "AMS(1 槽位)"
msgid "Not installed"
msgstr "未安裝"
-msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
-msgstr "軟體不支援在一次列印中使用不同直徑的噴嘴。如果左右噴嘴不一致,只能進行單頭列印。請確認您要在此專案中使用哪個噴嘴。"
-
-msgid "Switch diameter"
-msgstr "切換直徑"
-
msgid "Configuration incompatible"
msgstr "設定檔不相容"
@@ -8423,7 +9421,7 @@ msgstr "偵測到線材切換器。所有 AMS 線材現在皆可供兩個擠出
# AI Translated
msgid "A filament switcher is detected but not calibrated and thus currently unavailable. Please calibrate it on the printer and synchronize before use."
-msgstr "偵測到線材切換器,但尚未校準,因此目前無法使用。請在印表機上校準並同步後再使用。"
+msgstr "偵測到線材切換器,但尚未校正,因此目前無法使用。請在列印裝置上校正並同步後再使用。"
msgid "Tips"
msgstr "提示"
@@ -8450,8 +9448,9 @@ msgstr "連線"
msgid "Synchronize nozzle information and the number of AMS"
msgstr "同步噴嘴資訊和 AMS 數量"
+# AI Translated
msgid "Click to edit preset"
-msgstr "點選編輯預設檔設定"
+msgstr "按一下以編輯預設"
# AI Translated
#. TRN Sidebar label of the printer variant (nozzle) selector; picking one switches the printer preset.
@@ -8468,8 +9467,9 @@ msgstr "專案線材"
msgid "Purge mode"
msgstr "清理模式"
+# AI Translated
msgid "Flushing volumes"
-msgstr "廢料體積"
+msgstr "清理體積"
msgid "Add one filament"
msgstr "增加一個線材"
@@ -8495,6 +9495,10 @@ msgstr "混合線材"
msgid "Remove last mixed filament"
msgstr "移除最後一個混合線材"
+# AI Translated
+msgid "Remove all mixed filaments"
+msgstr "移除所有混合線材"
+
# AI Translated
msgid "Add mixed filament"
msgstr "新增混合線材"
@@ -8517,9 +9521,15 @@ msgstr "混合線材的成分參照已失效"
msgid "Edit / Delete / Merge"
msgstr "編輯 / 刪除 / 合併"
+# AI Translated
+#, boost-format
+msgid "Remove %1% mixed filament?"
+msgid_plural "Remove all %1% mixed filaments?"
+msgstr[0] "要移除 %1% 個混合線材嗎?"
+
# AI Translated
msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?"
-msgstr "目標混合線材使用此實體線材作為成分。合併將移除此實體線材,並可能使該混合線材失效。是否繼續?"
+msgstr "目標混合線材使用此實體線材作為成分。合併將移除此實體線材,並可能使該混合線材失效。要繼續嗎?"
#, c-format, boost-format
msgid "After completing your operation, %s project will be closed and create a new project."
@@ -8528,8 +9538,9 @@ msgstr "完成操作後,%s 專案將關閉並建立新專案。"
msgid "There are no compatible filaments, and sync is not performed."
msgstr "沒有任何相容的線材,同步操作未執行。"
+# AI Translated
msgid "Sync filaments with AMS"
-msgstr "同步到 AMS 的線材清單"
+msgstr "與 AMS 同步線材"
msgid ""
"There are some unknown or incompatible filaments mapped to generic preset.\n"
@@ -8544,24 +9555,28 @@ msgstr "僅從列印裝置同步了線材顏色資訊。"
msgid "Filament type and color information have been synchronized, but slot information is not included."
msgstr "線材類型和顏色資訊已同步,但不包括槽位資訊。"
+# AI Translated
#, boost-format
msgid "Do you want to save changes to \"%1%\"?"
-msgstr "是否儲存變更到「%1%」?"
+msgstr "要儲存對「%1%」的變更嗎?"
# AI Translated
msgid "UV Editor"
msgstr "UV 編輯器"
+# AI Translated
#, c-format, boost-format
msgid "Successfully unmounted. The device %s (%s) can now be safely removed from the computer."
-msgstr "卸載成功。裝置 %s(%s) 現在可以安全移除。"
+msgstr "已成功卸除。現在可以從電腦安全移除裝置 %s(%s)。"
+# AI Translated
#, c-format, boost-format
msgid "Ejecting of device %s (%s) has failed."
-msgstr "彈出裝置 %s(%s)失敗。"
+msgstr "無法彈出裝置 %s(%s)。"
+# AI Translated
msgid "Previously unsaved items have been detected. Do you want to restore them?"
-msgstr "偵測到有未儲存的專案,是否還原此專案?"
+msgstr "偵測到先前未儲存的項目,要還原嗎?"
msgid "Restore"
msgstr "還原"
@@ -8591,11 +9606,9 @@ msgstr "載入檔案:%s"
msgid "Load 3MF"
msgstr "載入 3MF"
-msgid "BambuStudio Project"
-msgstr "BambuStudio 專案"
-
+# AI Translated
msgid "The 3MF is not supported by OrcaSlicer, loading geometry data only."
-msgstr "該 3MF 不被 OrcaSlicer 支援,僅載入幾何資料。"
+msgstr "OrcaSlicer 不支援此 3MF,僅載入幾何資料。"
msgid "The 3MF file was generated by an old OrcaSlicer version, loading geometry data only."
msgstr "該 3MF 檔案是由舊版 OrcaSlicer 產生的,僅載入幾何資料。"
@@ -8606,11 +9619,13 @@ msgstr "此 3MF 檔案由較舊版本產生,僅載入幾何資料。"
msgid "The 3MF file was generated by BambuStudio, loading geometry data only."
msgstr "此 3MF 檔案由 BambuStudio 產生,僅載入幾何資料。"
+# AI Translated
msgid "This project was created with an OrcaSlicer 2.3.1-alpha and uses infill rotation template settings that may not work properly with your current infill pattern. This could result in weak support or print quality issues."
-msgstr "此專案是使用 OrcaSlicer 2.3.1-alpha 建立的,並使用了填充旋轉範本設定,這些設定可能無法與您目前的填充樣式正常運作。這可能會導致支撐薄弱或列印品質問題。"
+msgstr "此專案是使用 OrcaSlicer 2.3.1-alpha 建立的,並使用了填充旋轉範本設定,這些設定可能無法與您目前的填充圖案正常搭配。這可能會導致支撐薄弱或列印品質問題。"
+# AI Translated
msgid "Would you like OrcaSlicer to automatically fix this by clearing the rotation template settings?"
-msgstr "您是否希望 OrcaSlicer 透過清除旋轉範本設定來自動修正此問題?"
+msgstr "要讓 OrcaSlicer 清除旋轉範本設定,以自動修正此問題嗎?"
#, c-format, boost-format
msgid "The 3MF file version %s is newer than %s's version %s, found the following unrecognized keys:"
@@ -8623,17 +9638,6 @@ msgstr "建議升級您的軟體版本。\n"
msgid "The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."
msgstr "該 3MF 檔案版本 %s 比 %s 的版本 %s 新,建議升級您的軟體。"
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
-msgstr "此 3MF 由 BambuStudio(版本 %s)建立,其版本比相容版本 %s 更新。發現無法辨識的設定:"
-
-#, c-format, boost-format
-msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
-msgstr "此 3MF 由 BambuStudio(版本 %s)建立,該版本新於相容版本 %s。部分設定可能無法完全相容。"
-
-msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
-msgstr "此 3MF 由 BambuStudio 建立。部分設定可能與 OrcaSlicer 不同。"
-
msgid "Invalid values found in the 3MF:"
msgstr "在 3MF 檔案中發現無效值:"
@@ -8679,9 +9683,10 @@ msgstr "由於文字編碼不受支援,可能會出現亂碼字元!"
msgid "Remember my choice."
msgstr "記住我的選擇。"
+# AI Translated
#, boost-format
msgid "Failed loading file \"%1%\". An invalid configuration was found."
-msgstr "載入檔案「%1%」失敗。發現無效設定值。"
+msgstr "無法載入檔案「%1%」。發現無效的設定。"
msgid "Objects with zero volume removed"
msgstr "體積為零的物件已被移除"
@@ -8689,13 +9694,14 @@ msgstr "體積為零的物件已被移除"
msgid "The volume of the object is zero"
msgstr "物件的體積為零"
+# AI Translated
#, c-format, boost-format
msgid ""
"The object from file %s is too small, and may be in meters or inches.\n"
"Do you want to scale to millimeters?"
msgstr ""
-"檔案 %s 中的物件太小,可能以公尺(M)或英吋(Inches)為單位。\n"
-"是否要轉換成毫米(mm)?"
+"檔案 %s 中的物件太小,單位可能是公尺或英吋。\n"
+"要縮放為毫米嗎?"
msgid "Object too small"
msgstr "物件尺寸過小"
@@ -8707,11 +9713,12 @@ msgid ""
"the file be loaded as a single object with multiple parts?"
msgstr ""
"該檔案包含多個位於不同高度的物件。\n"
-"是否將檔案載入為一個由多個零件組合而成的物件,\n"
-"而非多個單獨的物件?"
+"要將檔案載入為一個由多個零件組成的物件,\n"
+"而非多個單獨的物件嗎?"
+# AI Translated
msgid "Multi-part object detected"
-msgstr "偵測到多部分物件"
+msgstr "偵測到多零件物件"
# AI Translated
msgid "Matching textures to filaments"
@@ -8721,8 +9728,9 @@ msgstr "正在將紋理對應到線材"
msgid "Texture Import Warning"
msgstr "紋理匯入警告"
+# AI Translated
msgid "Load these files as a single object with multiple parts?\n"
-msgstr "將這些檔案載入為一個多零件物件?\n"
+msgstr "要將這些檔案載入為一個多零件物件嗎?\n"
msgid "An object with multiple parts was detected"
msgstr "偵測到多零件物件"
@@ -8734,8 +9742,9 @@ msgstr "自動落板"
msgid "Connected printer is %s. It must match the project preset for printing.\n"
msgstr "連線的列印裝置是 %s。列印時必須與專案預設相符。\n"
+# AI Translated
msgid "Do you want to sync the printer information and automatically switch the preset?"
-msgstr "您是否要同步列印裝置資訊並自動切換預設?"
+msgstr "要同步列印裝置資訊並自動切換預設嗎?"
# AI Translated
msgid "This project contains a model made in the Design tab and no other geometry. Enable \"CAD feature (experimental)\" in Preferences and restart to see and edit it; it is kept when the project is saved."
@@ -8744,8 +9753,9 @@ msgstr "此專案包含一個在「設計」分頁中建立的模型,且沒有
msgid "The file does not contain any geometry data."
msgstr "此檔案不包含任何幾何資料。"
+# AI Translated
msgid "Your object appears to be too large, do you want to scale it down to fit the print bed automatically?"
-msgstr "物件看起來太大,希望將物件自動縮小以適應列印板嗎?"
+msgstr "物件似乎太大,要自動縮小以符合列印板嗎?"
msgid "Object too large"
msgstr "物件太大"
@@ -8759,19 +9769,21 @@ msgstr "匯出 Draco 檔案:"
msgid "Export AMF file:"
msgstr "匯出 AMF 檔案:"
+# AI Translated
msgid "Save file as"
-msgstr "檔案另存為:"
+msgstr "檔案另存為"
msgid "Export OBJ file:"
msgstr "匯出 OBJ 檔案:"
+# AI Translated
#, c-format, boost-format
msgid ""
"The file %s already exists.\n"
"Do you want to replace it?"
msgstr ""
-"檔案 %s 已存在\n"
-"是否要覆蓋它?"
+"檔案 %s 已存在。\n"
+"要取代它嗎?"
msgid "Confirm Save As"
msgstr "確認另存為"
@@ -8796,15 +9808,25 @@ msgstr "刪除物件"
msgid "Reset Project"
msgstr "重設專案"
+# AI Translated
msgid "The selected object couldn't be split."
-msgstr "選取的模型不可分割。"
+msgstr "無法分割選取的物件。"
+# AI Translated
msgid "Disable Auto-Drop to preserve Z positioning?\n"
-msgstr "停用自動落板以保留 Z 定位?\n"
+msgstr "要停用自動落板以保留 Z 定位嗎?\n"
msgid "Object with floating parts was detected"
msgstr "偵測到含有懸空零件的物件"
+# AI Translated
+msgid "Cannot slice: an object overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "無法切片:有物件與 IDEX/IQEX 並行列印的保留區域重疊(次要區域,或主區域內的滑車避讓帶)。"
+
+# AI Translated
+msgid "Cannot slice: the prime tower overlaps an area reserved for IDEX/IQEX parallel printing (a secondary zone, or a carriage clearance strip inside the primary zone)."
+msgstr "無法切片:換料塔與 IDEX/IQEX 並行列印的保留區域重疊(次要區域,或主區域內的滑車避讓帶)。"
+
msgid "Another export job is running."
msgstr "有其他匯出任務正在進行中。"
@@ -8827,8 +9849,9 @@ msgstr "未選擇替換檔案"
msgid "Replace with 3D file"
msgstr "以 3D 檔案取代"
+# AI Translated
msgid "Select folder to replace from"
-msgstr "選擇要替換的資料夾"
+msgstr "選擇用於替換的來源資料夾"
msgid "Directory for the replace wasn't selected"
msgstr "未選擇替換的目錄"
@@ -8858,8 +9881,9 @@ msgstr "已替換體積"
msgid "Please select a file"
msgstr "請選擇一個檔案"
-msgid "Do you want to replace it"
-msgstr "確認要更換它嗎"
+# AI Translated
+msgid "Do you want to replace it?"
+msgstr "要取代它嗎?"
msgid "Message"
msgstr "訊息"
@@ -8889,6 +9913,51 @@ msgstr "無效資料"
msgid "Slicing Canceled"
msgstr "切片已取消"
+# AI Translated
+# Needs human review: Uses 熱床 (as in the existing 熱床溫度 label) instead of the glossary's 列印板 for 'bed'; confirm which the bed-temperature sense should use.
+#, c-format, boost-format
+msgid "Bed temperature conflict: T%d (%s) sets the bed to %d℃ — T%d (%s) requires %d℃. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+msgstr "熱床溫度衝突:T%d(%s)將熱床設為 %d℃,而 T%d(%s)需要 %d℃。熱床由主工具控制,次要工具只能沿用其設定的溫度。"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Filament type mismatch: T%d uses %s and T%d uses %s. These materials have incompatible requirements and are not designed to print together."
+msgstr "線材類型不符:T%d 使用 %s,而 T%d 使用 %s。這些材料的列印需求互不相容,並非設計用於一起列印。"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plate %d has IDEX/IQEX parallel mode active with the following concerns:\n"
+"\n"
+msgstr ""
+"列印板 %d 已啟用 IDEX/IQEX 並行模式,並存在以下疑慮:\n"
+"\n"
+
+# AI Translated
+msgid "Continue slicing?"
+msgstr "要繼續切片嗎?"
+
+# AI Translated
+msgid "IDEX/IQEX Parallel Mode Warning"
+msgstr "IDEX/IQEX 並行模式警告"
+
+# AI Translated
+msgid "Don't show these warnings again"
+msgstr "不再顯示這些警告"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plate %d:\n"
+msgstr "列印板 %d:\n"
+
+# AI Translated
+msgid ""
+"The following IDEX/IQEX parallel mode concerns were detected:\n"
+"\n"
+msgstr ""
+"偵測到以下 IDEX/IQEX 並行模式疑慮:\n"
+"\n"
+
msgid "Network plug-in switched successfully."
msgstr "網路外掛程式切換成功。"
@@ -8898,16 +9967,19 @@ msgstr "成功"
msgid "Failed to load network plug-in. Please restart the application."
msgstr "無法載入網路外掛程式。請重新啟動應用程式。"
+# AI Translated
msgid "The network plug-in was not detected. Network related features are unavailable."
-msgstr "未偵測到網路外掛程式。網路相關功能不可用。"
+msgstr "未偵測到網路外掛程式。網路相關功能無法使用。"
+# AI Translated
msgid ""
"Preview only mode:\n"
"The loaded file contains G-code only, cannot enter the Prepare page."
msgstr ""
"僅預覽模式:\n"
-"被載入的檔案僅包含 G-Code,不支援進入準備頁面"
+"載入的檔案僅包含 G-code,無法進入準備頁面。"
+# AI Translated
msgid ""
"The nozzle type and AMS quantity information has not been synced from the connected printer.\n"
"After syncing, software can optimize printing time and filament usage when slicing.\n"
@@ -8915,14 +9987,14 @@ msgid ""
msgstr ""
"尚未從連線的列印裝置同步噴嘴類型和 AMS 數量資訊。\n"
"同步後,軟體可在切片時最佳化列印時間和線材使用量。\n"
-"是否要立即同步?"
+"要立即同步嗎?"
msgid "Sync now"
msgstr "立即同步"
# AI Translated
-msgid "Cannot undo or redo while an operation is running. Stop it first."
-msgstr "操作執行期間無法復原或重做。請先停止該操作。"
+msgid "Cannot undo or redo while an operation is running. Stop the operation, or wait for it to finish and then retry."
+msgstr "有操作正在執行時,無法復原或重做。請停止該操作,或等待其完成後再試一次。"
# AI Translated
msgid ""
@@ -8946,14 +10018,15 @@ msgstr "正在套用紋理顏色..."
# AI Translated
msgid "Updating 3D view..."
-msgstr "正在更新 3D 檢視..."
+msgstr "正在更新 3D 視圖..."
# AI Translated
msgid "Texture colors applied."
msgstr "紋理顏色已套用。"
+# AI Translated
msgid "You can keep the modified presets for the new project or discard them"
-msgstr "您可以將修改後的預設檔保留到新專案中或者忽略這些修改"
+msgstr "您可以將修改後的預設保留到新專案中,或捨棄這些修改"
msgid "Creating a new project"
msgstr "建立新專案"
@@ -8966,8 +10039,8 @@ msgid ""
"Failed to save the project.\n"
"Please check whether the folder exists online or if other programs have the project file open."
msgstr ""
-"儲存專案失敗。\n"
-"請檢查該資料夾是否存在,以及是否有其他程式開啟了該專案檔案。"
+"無法儲存專案。\n"
+"請檢查該資料夾是否在線上可用,以及是否有其他程式開啟了該專案檔案。"
msgid "Save project"
msgstr "儲存專案"
@@ -8981,8 +10054,9 @@ msgstr "正在準備 3MF 檔案..."
msgid "Download failed; unknown file format."
msgstr "下載失敗,未知的檔案格式。"
+# AI Translated
msgid "Importing to Orca Slicer failed. Please download the file and manually import it."
-msgstr "匯入 Orca Slicer 失敗。 請下載該檔案並手動匯入。"
+msgstr "無法匯入至 Orca Slicer。請下載該檔案並手動匯入。"
msgid "Downloading project..."
msgstr "專案下載中..."
@@ -8994,6 +10068,14 @@ msgstr "下載失敗,檔案大小異常。"
msgid "Project downloaded %d%%"
msgstr "專案已下載 %d%%"
+# AI Translated
+msgid ""
+"PA Line and PA Pattern tests are not enabled yet on belt printers.\n"
+"Please use the PA Tower method instead."
+msgstr ""
+"輸送帶列印裝置尚未支援「劃線模式」與「V 形模式」測試。\n"
+"請改用「PA 塔」方法。"
+
# AI Translated
msgid "Pressure Advance Test"
msgstr "Pressure Advance 測試"
@@ -9001,15 +10083,19 @@ msgstr "Pressure Advance 測試"
msgid "INFO:"
msgstr "資訊:"
-msgid "No accelerations provided for calibration. Use default acceleration value "
-msgstr "未提供校正所需的加速度,將使用預設加速度值 "
+# AI Translated
+#, boost-format
+msgid "No accelerations provided for calibration. Use default acceleration value %1%mm/s²"
+msgstr "未提供校正所需的加速度,將使用預設加速度值 %1%mm/s²"
-msgid "No speeds provided for calibration. Use default optimal speed "
-msgstr "未提供校正所需的速度,將使用預設最佳速度 "
+# AI Translated
+#, boost-format
+msgid "No speeds provided for calibration. Use default optimal speed %1%mm/s"
+msgstr "未提供校正所需的速度,將使用預設最佳速度 %1%mm/s"
# AI Translated
msgid "Orca YOLO Flow Calibration - Perfectionist version"
-msgstr "Orca YOLO 流量校正 - 完美主義者版本"
+msgstr "Orca YOLO 流量校正(完美主義者版本)"
# AI Translated
msgid "Orca YOLO Flow Calibration"
@@ -9018,7 +10104,16 @@ msgstr "Orca YOLO 流量校正"
# AI Translated
#, c-format, boost-format
msgid "Flowrate Test - Pass%d"
-msgstr "流量測試 - 第 %d 遍"
+msgstr "流量測試(第 %d 輪)"
+
+# AI Translated
+#, boost-format
+msgid "No belt temperature tower is available for the range %1% to %2%℃. Use a range the tower models cover, for example 230 to 190."
+msgstr "沒有適用於 %1% 至 %2%℃ 範圍的輸送帶溫度塔。請使用溫度塔模型涵蓋的範圍,例如 230 至 190。"
+
+# AI Translated
+msgid "Temperature tower"
+msgstr "溫度塔"
# AI Translated
msgid "Nozzle temperature test"
@@ -9037,37 +10132,47 @@ msgstr "輸入整形頻率測試"
msgid "Input shaping Damping test"
msgstr "輸入整形阻尼測試"
+# AI Translated
msgid "Cornering test"
-msgstr "轉彎測試"
+msgstr "轉角測試"
msgid "Import SLA archive"
msgstr "匯入 SLA 存檔"
-msgid "The selected file"
-msgstr "已選擇的檔案"
-
-msgid "Does not contain valid G-code."
-msgstr "不包含有效的 G-code 檔案。"
+# AI Translated
+#, boost-format
+msgid ""
+"The selected file:\n"
+"%1%\n"
+"does not contain valid G-code."
+msgstr ""
+"所選檔案:\n"
+"%1%\n"
+"不包含有效的 G-code。"
+# AI Translated
msgid "An Error has occurred while loading the G-code file."
-msgstr "載入 G-code 檔案時遇到錯誤"
+msgstr "載入 G-code 檔案時發生錯誤。"
+# AI Translated
#. TRN %1% is archive path
#, boost-format
msgid "Loading of a ZIP archive on path %1% has failed."
-msgstr "載入路徑 %1% 的 ZIP 檔案失敗。"
+msgstr "無法載入路徑 %1% 的 ZIP 封存檔。"
#. TRN: First argument = path to file, second argument = error description
#, boost-format
msgid "Failed to unzip file to %1%: %2%"
msgstr "無法將檔案解壓縮到 %1%:%2%"
+# AI Translated
#, boost-format
msgid "Failed to find unzipped file at %1%. Unzipping of file has failed."
-msgstr "無法找到解壓縮的檔案 %1%。解壓縮檔案失敗。"
+msgstr "在 %1% 找不到解壓縮後的檔案。無法解壓縮檔案。"
+# AI Translated
msgid "Drop project file"
-msgstr "刪除專案"
+msgstr "拖放專案檔案"
msgid "Please select an action"
msgstr "請選擇處理方式"
@@ -9075,8 +10180,9 @@ msgstr "請選擇處理方式"
msgid "Open as project"
msgstr "作為專案開啟"
+# AI Translated
msgid "Import geometry only"
-msgstr "僅匯入模型資料"
+msgstr "僅匯入幾何資料"
msgid "Only one G-code file can be opened at a time."
msgstr "只能同時開啟一個 G-code 檔案。"
@@ -9087,14 +10193,17 @@ msgstr "正在載入 G-code 檔案"
msgid "G-code files and models cannot be loaded together!"
msgstr "G-code 檔案不能和模型一起載入!"
+# AI Translated
msgid "Unable to add models in preview mode"
-msgstr "在預覽模式不允許增加模型!"
+msgstr "無法在預覽模式中新增模型"
+# AI Translated
msgid "All objects will be removed, continue?"
-msgstr "即將刪除所有物件,是否繼續?"
+msgstr "即將移除所有物件,要繼續嗎?"
+# AI Translated
msgid "The current project has unsaved changes. Would you like to save before continuing?"
-msgstr "目前專案包含未儲存的修改,是否先儲存?"
+msgstr "目前專案有未儲存的變更。要先儲存再繼續嗎?"
msgid "Number of copies:"
msgstr "複製數量:"
@@ -9130,7 +10239,7 @@ msgid ""
"Failed to export the published 3MF file.\n"
"Please check whether the folder exists online or if other programs have the file open."
msgstr ""
-"匯出已發布的 3MF 檔案失敗。\n"
+"無法匯出已發布的 3MF 檔案。\n"
"請檢查該資料夾是否在線上可用,或檔案是否被其他程式開啟。"
msgid "Publish"
@@ -9145,24 +10254,28 @@ msgstr "噴嘴類型尚未設定。請檢查。"
msgid "Unable to perform boolean operation on model meshes. Only positive parts will be kept. You may fix the meshes and try again."
msgstr "無法對模型網格執行布林運算。只有正向部分會被保留。您可以修正網格後再試一次。"
+# AI Translated
#, boost-format
msgid "Reason: part \"%1%\" is empty."
-msgstr "原因:零件「%1%”」無物件。"
+msgstr "原因:零件「%1%」是空的。"
+# AI Translated
#, boost-format
msgid "Reason: part \"%1%\" does not bound a volume."
-msgstr "原因:零件「%1%」無體積。"
+msgstr "原因:零件「%1%」未構成封閉體積。"
+# AI Translated
#, boost-format
msgid "Reason: part \"%1%\" has self intersection."
-msgstr "原因:零件「%1%」"
+msgstr "原因:零件「%1%」有自我相交。"
#, boost-format
msgid "Reason: \"%1%\" and another part have no intersection."
msgstr "原因:「%1%」與另一個零件沒有交集。"
+# AI Translated
msgid "Unable to perform boolean operation on model meshes. Only positive parts will be exported."
-msgstr "無法對模型網格執行布林運算。只有正面部分將被匯出。"
+msgstr "無法對模型網格執行布林運算。僅會匯出正向部分。"
msgid "Flashforge host is not available."
msgstr "Flashforge 主機無法使用。"
@@ -9192,8 +10305,9 @@ msgstr "傳送 G-code"
msgid "Send to printer"
msgstr "傳送到列印裝置"
+# AI Translated
msgid "Custom supports and color painting were removed before repairing."
-msgstr "自訂的支撐和上色在模型修復之前被清除了。"
+msgstr "修復前已移除自訂支撐與顏色繪製。"
msgid "Optimize Rotation"
msgstr "最佳化旋轉"
@@ -9202,9 +10316,10 @@ msgstr "最佳化旋轉"
msgid "Printer not connected. Please go to the device page to connect %s before syncing."
msgstr "列印裝置未連線。請在同步前前往裝置頁面連線 %s。"
+# AI Translated
#, c-format, boost-format
msgid "OrcaSlicer can't connect to %s. Please check if the printer is powered on and connected to the network."
-msgstr "OrcaSlicer 無法連線到 %s。請檢查列印裝置是否已開機並連線到網路。"
+msgstr "OrcaSlicer 無法連線至 %s。請檢查列印裝置是否已開機並連線至網路。"
#, c-format, boost-format
msgid "The currently connected printer on the device page is not %s. Please switch to %s before syncing."
@@ -9248,11 +10363,11 @@ msgstr "立即啟用"
# AI Translated
msgid "The installed plugin does not provide the required capability — it may be outdated:"
-msgstr "已安裝的外掛未提供所需的功能 — 可能已過時:"
+msgstr "已安裝的外掛未提供所需的功能,可能已過時:"
# AI Translated
msgid "Preparing to install plugins..."
-msgstr "正在準備安裝外掛…"
+msgstr "正在準備安裝外掛..."
# AI Translated
msgid "Installing plugins"
@@ -9260,47 +10375,55 @@ msgstr "正在安裝外掛"
# AI Translated
msgid "Cancelling — finishing the current plugin..."
-msgstr "正在取消 — 完成目前的外掛…"
+msgstr "正在取消,將先完成目前的外掛..."
# AI Translated
#, boost-format
msgid "Installing %1%..."
-msgstr "正在安裝 %1%…"
+msgstr "正在安裝 %1%..."
msgid "Plate Settings"
msgstr "列印板參數設定"
+# AI Translated
#, boost-format
msgid "Number of currently selected parts: %1%\n"
-msgstr "目前選擇的零件數量:%1%\n"
+msgstr "目前選取的零件數量:%1%\n"
+# AI Translated
#, boost-format
msgid "Number of currently selected objects: %1%\n"
-msgstr "目前選擇的物件數量:%1%\n"
+msgstr "目前選取的物件數量:%1%\n"
+# AI Translated
#, boost-format
msgid "Part name: %1%\n"
-msgstr "零件名字:%1%\n"
+msgstr "零件名稱:%1%\n"
+# AI Translated
#, boost-format
msgid "Object name: %1%\n"
-msgstr "物件名字:%1%\n"
+msgstr "物件名稱:%1%\n"
+# AI Translated
#, boost-format
msgid "Size: %1% x %2% x %3% in\n"
-msgstr "大小:%1% x %2% x %3% 英寸\n"
+msgstr "大小:%1% x %2% x %3% in\n"
+# AI Translated
#, boost-format
msgid "Size: %1% x %2% x %3% mm\n"
-msgstr "大小: %1% x %2% x %3% mm\n"
+msgstr "大小:%1% x %2% x %3% mm\n"
+# AI Translated
#, boost-format
msgid "Volume: %1% in³\n"
-msgstr "體積: %1% 英寸³\n"
+msgstr "體積:%1% in³\n"
+# AI Translated
#, boost-format
msgid "Volume: %1% mm³\n"
-msgstr "體積: %1% mm³\n"
+msgstr "體積:%1% mm³\n"
#, boost-format
msgid "Triangles: %1%\n"
@@ -9319,6 +10442,27 @@ msgstr "目前,物件設定表單無法與多擠出機列印裝置一起使用
msgid "Not available"
msgstr "無法使用"
+# AI Translated
+#, boost-format
+msgid "T%1% -> (no plate)"
+msgstr "T%1% -> (無列印板)"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head.
+#, boost-format
+msgid ""
+"T%1% — no filament routed\n"
+"Add an extruder in the Machine tab so this head has a filament slot."
+msgstr ""
+"T%1%:未配置線材\n"
+"請在「列印裝置」分頁新增擠出機,讓此工具頭有線材槽位。"
+
+# AI Translated
+#. TRN IDEX/IQEX ghost tooltip. %1% is the number of the physical print head, %2% the filament it prints.
+#, boost-format
+msgid "T%1% -> filament %2%"
+msgstr "T%1% -> 線材 %2%"
+
msgid "isometric"
msgstr "等角"
@@ -9337,11 +10481,13 @@ msgstr "前"
msgid "rear"
msgstr "後"
+# AI Translated
msgid "Switching languages requires the application to restart.\n"
-msgstr "切換語言要求重啟應用程式。\n"
+msgstr "切換語言需要重新啟動應用程式。\n"
+# AI Translated
msgid "Do you want to continue?"
-msgstr "是否繼續?"
+msgstr "要繼續嗎?"
msgid "Language selection"
msgstr "語言選擇"
@@ -9358,6 +10504,8 @@ msgstr "歐洲"
msgid "North America"
msgstr "北美"
+# AI Translated
+msgctxt "Region"
msgid "Others"
msgstr "其他"
@@ -9370,12 +10518,14 @@ msgstr "區域選擇"
msgid "sec"
msgstr "秒"
+# AI Translated
msgid "The period of backup in seconds."
-msgstr "備份的週期。"
+msgstr "備份的間隔時間(秒)。"
msgid "Bed Temperature Difference Warning"
msgstr "熱床溫度差異警告"
+# AI Translated
msgid ""
"Using filaments with significantly different temperatures may cause:\n"
"• Extruder clogging\n"
@@ -9389,7 +10539,7 @@ msgstr ""
"• 噴嘴損壞\n"
"• 層間附著問題\n"
"\n"
-"是否要繼續啟用此功能?"
+"要繼續啟用此功能嗎?"
msgid "Browse"
msgstr "瀏覽"
@@ -9400,6 +10550,7 @@ msgstr "選擇下載項目的目標資料夾"
msgid "Choose Download Directory"
msgstr "選擇下載資料夾"
+# AI Translated
#, c-format, boost-format
msgid ""
"You've selected network plug-in version %s.\n"
@@ -9410,7 +10561,7 @@ msgid ""
msgstr ""
"您已選擇網路外掛程式版本 %s。\n"
"\n"
-"您想立即下載並安裝此版本嗎?\n"
+"要立即下載並安裝此版本嗎?\n"
"\n"
"注意:安裝後應用程式可能需要重新啟動。"
@@ -9432,20 +10583,28 @@ msgstr "無法重新載入網路外掛程式。請重新啟動應用程式。"
msgid "Reload Failed"
msgstr "重新載入失敗"
-msgid "Associate"
-msgstr "關聯"
+# AI Translated
+#. TRN %s is a URL scheme, for example "prusaslicer".
+#, c-format, boost-format
+msgid "Associate %s://"
+msgstr "關聯 %s://"
-msgid "with OrcaSlicer so that Orca can open models from"
-msgstr "與 OrcaSlicer 關聯,以便 Orca 可以從中開啟模型"
+# AI Translated
+#. TRN The first %s is a URL scheme, for example "prusaslicer"; the second is a website name.
+#, c-format, boost-format
+msgid "Associate %s:// with OrcaSlicer so that Orca can open models from %s"
+msgstr "將 %s:// 與 OrcaSlicer 關聯,讓 Orca 能開啟來自 %s 的模型"
+# AI Translated
msgid "Current Association: "
-msgstr "目前關聯:"
+msgstr "目前關聯: "
msgid "Current Instance"
msgstr "目前實例"
+# AI Translated
msgid "Current Instance Path: "
-msgstr "目前實例路徑:"
+msgstr "目前實例路徑: "
msgid "General"
msgstr "一般"
@@ -9468,32 +10627,39 @@ msgstr "首頁"
msgid "Default page"
msgstr "預設頁面"
+# AI Translated
msgid "Set the page opened on startup."
-msgstr "設定為啟動頁面。"
+msgstr "設定啟動時開啟的頁面。"
msgid "Enable dark Mode"
msgstr "啟用深色模式"
+# AI Translated
msgid "Allow only one OrcaSlicer instance"
-msgstr "僅允許一個 OrcaSlicer 程式"
+msgstr "僅允許執行一個 OrcaSlicer 實例"
+# AI Translated
msgid "On OSX there is always only one instance of app running by default. However it is allowed to run multiple instances of same app from the command line. In such case this settings will allow only one instance."
-msgstr "在 OSX 上,預設情況下總是只有一個應用程式實例在執行。但是卻允許從命令視窗執行同一應用程式的多個實例。當您設定了這個設定後將只允許一個實例執行。"
+msgstr "在 OSX 上,預設只會執行一個應用程式實例,但可以從命令列執行同一應用程式的多個實例。啟用此設定後,將只允許執行一個實例。"
+# AI Translated
msgid "If this is enabled, when starting OrcaSlicer and another instance of the same OrcaSlicer is already running, that instance will be reactivated instead."
-msgstr "啟用後,嘗試開起 OrcaSlicer 時若有另一個 OrcaSlicer 程式已在執行時,已在執行的程式會被重新啟動。"
+msgstr "啟用後,若啟動 OrcaSlicer 時已有另一個 OrcaSlicer 實例在執行,將改為切換到該實例。"
+# AI Translated
msgid "Show splash screen"
-msgstr "顯示啟動動畫"
+msgstr "顯示啟動畫面"
+# AI Translated
msgid "Show the splash screen during startup."
-msgstr "啟動時顯示啟動動畫。"
+msgstr "啟動時顯示啟動畫面。"
msgid "Use window buttons on left side"
msgstr "將視窗按鈕置於左側"
+# AI Translated
msgid "(Requires restart)"
-msgstr "(需要重啟程式)"
+msgstr "(需要重新啟動)"
msgid "Downloads folder"
msgstr "下載資料夾"
@@ -9516,14 +10682,16 @@ msgstr "僅載入幾何資料"
msgid "Load behavior"
msgstr "載入方式"
+# AI Translated
msgid "Should printer/filament/process settings be loaded when opening a 3MF file?"
-msgstr "開啟 .3mf 檔案時,是否需要載入列印裝置、線材和參數設定?"
+msgstr "開啟 3MF 檔案時,是否要載入其中的列印裝置、線材和列印參數設定?"
msgid "Auto backup"
msgstr "自動備份"
+# AI Translated
msgid "Backup your project periodically to help with restoring from an occasional crash."
-msgstr "定期備份專案,以便從未預期的錯誤中還原。"
+msgstr "定期備份專案,以便在偶發當機後還原。"
msgid "Maximum recent files"
msgstr "最近開啟的檔案上限"
@@ -9537,11 +10705,13 @@ msgstr "在最近開啟的檔案中加入 STL/STEP 檔案"
msgid "Don't warn when loading 3MF with modified G-code"
msgstr "載入包含修改過 G-code 的 3MF 時不顯示警告"
+# AI Translated
msgid "Show options when importing STEP file"
-msgstr "顯示 STEP 網格參數設定視窗。"
+msgstr "匯入 STEP 檔案時顯示選項"
+# AI Translated
msgid "If enabled, a parameter settings dialog will appear during STEP file import."
-msgstr "啟用後,匯入 STEP 檔案時會顯示參數設定視窗。"
+msgstr "啟用後,匯入 STEP 檔案時會顯示參數設定對話框。"
# AI Translated
msgid "STEP importing: linear deflection"
@@ -9610,16 +10780,18 @@ msgstr "在專案中儲存完整的來源檔案路徑"
# AI Translated
msgid "If enabled, saved projects store the absolute path to imported source files (STEP/STL/...), so \"Reload from disk\" still works when the source file is kept in a different folder than the project. If disabled, only the filename is stored, which keeps projects portable and avoids embedding absolute paths."
-msgstr "若啟用,儲存的專案會記錄匯入來源檔案(STEP/STL/…)的絕對路徑,如此當來源檔案存放於與專案不同的資料夾時,「從磁碟重新載入」仍可運作。若停用,則僅儲存檔名,使專案便於攜帶並避免嵌入絕對路徑。"
+msgstr "若啟用,儲存的專案會記錄匯入來源檔案(STEP/STL/...)的絕對路徑,如此當來源檔案存放於與專案不同的資料夾時,「從硬碟重新載入」仍可運作。若停用,則僅儲存檔名,使專案便於攜帶並避免嵌入絕對路徑。"
msgid "Preset"
msgstr "預設"
+# AI Translated
msgid "Remember printer configuration"
-msgstr "記住機臺設定"
+msgstr "記住列印裝置設定"
+# AI Translated
msgid "If enabled, Orca will remember and switch filament/process configuration for each printer automatically."
-msgstr "啟用後,Orca 會記住且自動切換各機臺線材與列印設定。"
+msgstr "啟用後,Orca 會為每台列印裝置自動記住並切換線材與列印參數設定。"
msgid "Group user filament presets"
msgstr "將使用者線材預設分組"
@@ -9639,14 +10811,16 @@ msgstr "最佳化線材區域高度..."
msgid "filaments"
msgstr "線材"
+# AI Translated
msgid "Optimizes filament area maximum height by chosen filament count."
-msgstr "根據選擇的線材數量最佳化線材區域最大高度"
+msgstr "根據選擇的線材數量,最佳化線材區域的最大高度。"
msgid "Show shared profiles notification"
msgstr "顯示共用設定檔通知"
+# AI Translated
msgid "Show a notification with a link to browse shared profiles when the selected printer is changed."
-msgstr "變更所選列印裝置時,顯示一則含有瀏覽共享設定檔連結的通知。"
+msgstr "變更所選列印裝置時,顯示一則含有瀏覽共用設定檔連結的通知。"
msgid "Features"
msgstr "功能"
@@ -9654,8 +10828,9 @@ msgstr "功能"
msgid "Multi device management"
msgstr "多臺裝置管理"
+# AI Translated
msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices."
-msgstr "啟用時可以同時傳送到並管理多個機臺。"
+msgstr "啟用此選項後,您可以同時傳送任務至多個裝置並管理多個裝置。"
# AI Translated
msgid "Open the Speed Dial from the keyboard"
@@ -9704,14 +10879,17 @@ msgstr "以固定分頁顯示的外掛頁面數量,其餘頁面會收合至最
msgid "Behavior"
msgstr "行為"
+# AI Translated
msgid "Auto flush after changing..."
-msgstr "變更後自動清除..."
+msgstr "變更後自動清理..."
+# AI Translated
msgid "Auto calculate flushing volumes when selected values changed"
-msgstr "當選擇的值變更時自動計算清除體積"
+msgstr "選取的值變更時,自動計算清理體積"
+# AI Translated
msgid "Auto arrange plate after cloning"
-msgstr "複製後自動排列列印板"
+msgstr "複製後自動擺放列印板"
msgid "Auto slice after changes"
msgstr "變更後自動切片"
@@ -9719,8 +10897,9 @@ msgstr "變更後自動切片"
msgid "If enabled, OrcaSlicer will re-slice automatically whenever slicing-related settings change."
msgstr "啟用後,OrcaSlicer 將在切片相關設定變更時自動重新切片。"
+# AI Translated
msgid "Delay in seconds before auto slicing starts, allowing multiple edits to be grouped. Use 0 to slice immediately."
-msgstr "自動切片開始前的延遲秒數,允許將多個編輯分組。使用 0 立即切片。"
+msgstr "自動切片開始前的延遲秒數,讓多次編輯可合併後再切片。設為 0 則立即切片。"
msgid "Remove mixed temperature restriction"
msgstr "移除混合溫度限制"
@@ -9736,6 +10915,10 @@ msgstr "記住上次的列印操作"
msgid "If enabled, OrcaSlicer will remember the last selected option in the print button's dropdown (e.g. Print, Export plate sliced file, Export G-code file) and use it as the default on next startup."
msgstr "啟用後,OrcaSlicer 會記住列印按鈕下拉選單中上次選擇的選項(例如列印、匯出單一列印板切片檔案、匯出 G-code 檔案),並在下次啟動時作為預設值。"
+# AI Translated
+msgid "Camera"
+msgstr "相機"
+
msgid "Touchpad"
msgstr "觸控板"
@@ -9754,8 +10937,9 @@ msgstr ""
msgid "Orbit speed multiplier"
msgstr "視角旋轉速度倍率"
+# AI Translated
msgid "Multiplies the orbit speed for finer or coarser camera movement."
-msgstr "調整視角速度,使鏡頭移動更細緻或更快速。"
+msgstr "以倍率調整環繞速度,讓相機移動更精細或更粗略。"
msgid "Zoom to mouse position"
msgstr "放大到滑鼠位置"
@@ -9763,17 +10947,20 @@ msgstr "放大到滑鼠位置"
msgid "Zoom in towards the mouse pointer's position in the 3D view, rather than the 2D window center."
msgstr "在 3D 視圖中以滑鼠指標的位置為中心放大,而非以 2D 視窗中心放大。"
+# AI Translated
msgid "Use free camera"
-msgstr "使用自由鏡頭"
+msgstr "使用自由相機"
+# AI Translated
msgid "If enabled, use free camera. If not enabled, use constrained camera."
-msgstr "如果啟用,則使用自由鏡頭。若未啟用,則使用受限鏡頭。"
+msgstr "如果啟用,則使用自由相機。若未啟用,則使用受限相機。"
msgid "Reverse mouse zoom"
msgstr "反轉滑鼠滾輪縮放方向"
+# AI Translated
msgid "If enabled, reverses the direction of zoom with mouse wheel."
-msgstr "啟用後,改變滑鼠滾輪縮放方向。"
+msgstr "啟用後,反轉滑鼠滾輪的縮放方向。"
# AI Translated
msgid "Draw mate connectors as a face"
@@ -9859,13 +11046,14 @@ msgid ""
msgstr ""
"對模型套用平滑法線。\n"
"\n"
-"需要手動重新載入場景才會生效(在 3D 檢視上按滑鼠右鍵 → 「重新載入全部」)。"
+"需要手動重新載入場景才會生效(在 3D 視圖上按滑鼠右鍵 → 「重新載入全部」)。"
msgid "Phong shading"
msgstr "Phong 著色"
+# AI Translated
msgid "Uses Phong shading inside realistic view."
-msgstr "在擬真檢視中使用 Phong 著色。"
+msgstr "在擬真視圖中使用 Phong 著色。"
# AI Translated
msgid "Enable in Preview"
@@ -9876,14 +11064,15 @@ msgid ""
"Also applies realistic view to the Preview canvas, not just Prepare.\n"
"Preview draws the full toolpath geometry, so shadows and SSAO cost considerably more there than on a plain model."
msgstr ""
-"擬真檢視也會套用於預覽畫布,而不僅限於準備。\n"
+"擬真視圖也會套用於預覽畫布,而不僅限於準備。\n"
"預覽會繪製完整的工具路徑幾何,因此陰影與 SSAO 在預覽中的效能消耗遠高於一般模型。"
msgid "SSAO ambient occlusion"
msgstr "SSAO 環境光遮蔽"
+# AI Translated
msgid "Applies SSAO in realistic view."
-msgstr "在寫實渲染中套用 SSAO。"
+msgstr "在擬真視圖中套用 SSAO。"
# AI Translated
#. TRN Realistic-view shadow mode: the light stays fixed in the scene.
@@ -9904,9 +11093,9 @@ msgid ""
"Static: the light stays fixed in the world, so the shadows are only recomputed when the scene changes.\n"
"Orbit: the light turns with the camera, recomputing the shadows every frame the camera moves."
msgstr ""
-"在擬真檢視中,於列印板、其他物件以及每個物件自身上渲染投射陰影。\n"
+"在擬真視圖中,於列印板、其他物件以及每個物件自身上渲染投射陰影。\n"
"靜態:光源固定於場景中,因此只有在場景變更時才會重新計算陰影。\n"
-"環繞:光源隨攝影機轉動,攝影機移動時每一影格都會重新計算陰影。"
+"環繞:光源隨相機轉動,相機移動時每一影格都會重新計算陰影。"
msgid "Anti-aliasing"
msgstr "抗鋸齒"
@@ -9952,8 +11141,9 @@ msgstr "FPS"
msgid "FPS cap"
msgstr "FPS 上限"
+# AI Translated
msgid "(0 = unlimited)"
-msgstr "(0 = 無限制)"
+msgstr "(0 = 無限制)"
msgid ""
"Limits viewport frame rate to reduce GPU load and power usage.\n"
@@ -10043,7 +11233,7 @@ msgstr "執行"
# AI Translated
msgid "Replaces the current project with the OrcaSliced Combo, then measures the frame rate and render timings while the camera turns around it in Prepare and Preview, and while the layer slider moves through the sliced layers."
-msgstr "以 OrcaSliced Combo 取代目前專案,接著在攝影機於準備與預覽中環繞模型轉動時,以及層滑桿在已切片的各層間移動時,測量影格率與渲染時間。"
+msgstr "以 OrcaSliced Combo 取代目前專案,接著在相機於準備與預覽中環繞模型轉動時,以及層滑桿在已切片的各層間移動時,測量影格率與渲染時間。"
# AI Translated
msgid "G-code Preview"
@@ -10090,8 +11280,9 @@ msgstr ""
msgid "Login region"
msgstr "登入區域"
+# AI Translated
msgid "Stealth mode"
-msgstr "區域網路模式"
+msgstr "無痕模式"
msgid ""
"This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option.\n"
@@ -10127,8 +11318,9 @@ msgstr "更新與同步"
msgid "Check for stable updates only"
msgstr "僅檢查穩定版更新"
+# AI Translated
msgid "Auto sync user presets (Printer/Filament/Process)"
-msgstr "自動同步使用者預設(列印裝置/線材/列印品質參數)"
+msgstr "自動同步使用者預設(列印裝置/線材/列印參數)"
msgid "Filament sync mode"
msgstr "線材同步模式"
@@ -10163,8 +11355,12 @@ msgstr "網路外掛程式版本"
msgid "Select the network plug-in version to use"
msgstr "選擇要使用的網路外掛程式版本"
+msgid "Associate"
+msgstr "關聯"
+
+# AI Translated
msgid "Associate files to OrcaSlicer"
-msgstr "Orca Slicer 檔案關聯"
+msgstr "將檔案關聯到 OrcaSlicer"
msgid "File associations for the Microsoft Store version are managed by Windows Settings."
msgstr "Microsoft Store 版本的檔案關聯由 Windows 設定管理。"
@@ -10211,6 +11407,15 @@ msgstr "顯示不支援的預設"
msgid "Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."
msgstr "在列印裝置和線材下拉選單中顯示不相容/不支援的預設。這些預設無法選取。"
+# AI Translated
+msgid "Export statistics with G-code"
+msgstr "隨 G-code 匯出統計資料"
+
+# AI Translated
+# Needs human review: 'feature totals' rendered as 各走線類型的總量 after the G-code preview's 「走線類型」 (Line Type) view; confirm in Preferences > Developer that this matches what the JSON holds
+msgid "If enabled, exporting a G-code file also writes its statistics as JSON next to it, as .statistics.json, and an exported sliced 3MF file holds them inside: print time, filament and feature totals, and the same per layer and per object."
+msgstr "啟用後,匯出 G-code 檔案時也會在檔案旁以 JSON 格式寫入其統計資料(.statistics.json),匯出的切片 3MF 檔案內也會包含這些資料:列印時間、線材與各走線類型的總量,以及每層與每個物件的相同統計。"
+
# AI Translated
msgid "Experimental Features"
msgstr "實驗性功能"
@@ -10219,12 +11424,13 @@ msgstr "實驗性功能"
msgid "Keep painted feature after mesh change"
msgstr "網格變更後保留繪製的特徵"
+# AI Translated
msgid ""
"Attempt to keep painted features (color/seam/support/fuzzy etc.) after changing the object mesh (such as cut/reload from disk/simplify/fix etc.)\n"
"Highly experimental! Slow and may create artifact."
msgstr ""
-"嘗試在變更物件網格(例如切割/從磁碟重新載入/簡化/修復等)後,保留已繪製的特徵(顏色/Z 縫/支撐/絨毛等)。\n"
-"高度實驗性!速度緩慢且可能產生瑕疵。"
+"嘗試在變更物件網格(例如切割/從硬碟重新載入/簡化/修復等)後,保留已繪製的特徵(顏色/接縫/支撐/絨毛表面等)。\n"
+"高度實驗性!速度緩慢且可能產生缺陷。"
# AI Translated
msgid "Use printer agents instead of print hosts"
@@ -10263,8 +11469,9 @@ msgstr "警告"
msgid "debug"
msgstr "除錯"
+# AI Translated
msgid "trace"
-msgstr "跟蹤"
+msgstr "追蹤"
msgid "Debug"
msgstr "除錯"
@@ -10275,17 +11482,20 @@ msgstr "同步設定"
msgid "User sync"
msgstr "使用者同步"
+# AI Translated
msgid "Preset sync"
-msgstr "預設檔同步"
+msgstr "預設同步"
msgid "Preferences sync"
msgstr "偏好設定同步"
+# AI Translated
msgid "Enable SSL(MQTT)"
-msgstr "啟用SSL(MQTT)"
+msgstr "啟用 SSL(MQTT)"
+# AI Translated
msgid "Enable SSL(FTP)"
-msgstr "啟用SSL(FTP)"
+msgstr "啟用 SSL(FTP)"
msgid "Internal developer mode"
msgstr "內部開發者模式"
@@ -10311,11 +11521,13 @@ msgstr "儲存"
msgid "Save debug settings"
msgstr "儲存除錯設定"
+# AI Translated
msgid "Debug settings have been saved successfully!"
-msgstr "除錯模式生效!"
+msgstr "除錯設定已成功儲存!"
+# AI Translated
msgid "Cloud environment switched; please login again!"
-msgstr "切換雲端環境,請重新登入!"
+msgstr "已切換雲端環境,請重新登入!"
msgid "System presets"
msgstr "系統預設"
@@ -10345,8 +11557,9 @@ msgstr "右側線材"
msgid "Click to select filament color"
msgstr "點選設定線材顏色"
+# AI Translated
msgid "Add/Remove presets"
-msgstr "新增/刪除 預設"
+msgstr "新增/刪除預設"
msgid "Edit preset"
msgstr "編輯預設"
@@ -10358,8 +11571,9 @@ msgstr "更改擠出機顏色"
msgid "Unspecified"
msgstr "未指定"
+# AI Translated
msgid "Project-inside presets"
-msgstr "項目預設"
+msgstr "專案內預設"
msgid "Bundle presets"
msgstr "設定檔組預設"
@@ -10379,14 +11593,16 @@ msgstr "新增/刪除線材"
msgid "Add/Remove materials"
msgstr "新增/刪除材料"
+# AI Translated
msgid "Select/Remove printers (system presets)"
-msgstr "選擇/移除列印裝置(系統預設)"
+msgstr "選擇/移除列印裝置(系統預設)"
msgid "Create printer"
msgstr "建立列印裝置"
+# AI Translated
msgid "Incompatible"
-msgstr "不相容的預設"
+msgstr "不相容"
msgid "The selected preset is null!"
msgstr "選擇的預設為空!"
@@ -10402,8 +11618,9 @@ msgstr "自訂"
msgid "Other layer filament sequence"
msgstr "其他層的線材列印順序"
+# AI Translated
msgid "Please input layer value (>= 2)."
-msgstr "請輸入層數值(>= 2)"
+msgstr "請輸入層數值(>= 2)。"
msgid "to"
msgstr "到"
@@ -10411,8 +11628,9 @@ msgstr "到"
msgid "Plate name"
msgstr "列印板名稱"
+# AI Translated
msgid "Same as Global Plate Type"
-msgstr "跟隨全域列印板設定"
+msgstr "跟隨全域列印板類型"
msgid "Bed type"
msgstr "列印板類型"
@@ -10497,17 +11715,13 @@ msgstr "發布 3MF..."
msgid "Select which settings to be published in the 3MF file"
msgstr "選擇要在 3MF 檔案中發布的設定"
-# AI Translated
-msgid "Video Guide"
-msgstr "影片教學"
-
# AI Translated
msgid "Mixed filament - published as a whole when \"Enable\" above is selected"
-msgstr "混合線材 - 在上方選擇「啟用」後將整體發布"
+msgstr "混合線材:在上方選擇「啟用」後將整體發布"
# AI Translated
msgid "Publish this mixed filament and enable + Full Publish its component filaments"
-msgstr "發布此混合線材,並啟用 + 完整發布其組成線材"
+msgstr "發布此混合線材,並將其組成線材設為「啟用」及「完整發布」"
# AI Translated
msgid "Publish this filament slot in the 3MF file"
@@ -10518,8 +11732,9 @@ msgid "Full Publish"
msgstr "完整發布"
# AI Translated
+# Needs human review: Full Publish tooltip (PublishSettingsDialog.cpp:1251): confirm 'entire filament' means the slot's full filament settings
msgid "Embed the entire filament of this slot in the 3MF file"
-msgstr "將此槽位的整條線材內嵌到 3MF 檔案中"
+msgstr "將此槽位線材的完整設定內嵌到 3MF 檔案中"
# AI Translated
msgid "Filter non-selected"
@@ -10532,12 +11747,13 @@ msgstr "另存 %s 為"
msgid "User Preset"
msgstr "使用者預設"
+# AI Translated
msgid "Preset Inside Project"
-msgstr "項目預設"
+msgstr "專案內預設"
# AI Translated
msgid "Copies all inherited values from the parent into this preset and removes the parent relationship. Presets compatible only with the parent may become unsupported."
-msgstr "將父配置繼承的所有數值複製到目前的配置,並解除繼承關係。僅與父配置相容的配置可能會變成不受支援。"
+msgstr "將從父預設繼承的所有數值複製到此預設,並解除繼承關係。僅與父預設相容的預設可能會變為不受支援。"
msgid "Detach from parent"
msgstr "從父預設分離"
@@ -10548,21 +11764,22 @@ msgstr "不保留父預設另存"
# AI Translated
msgid "Unique preset"
-msgstr "獨立配置"
+msgstr "獨立預設"
# AI Translated
msgid "Parent preset"
-msgstr "父配置"
+msgstr "父預設"
# AI Translated
msgid "This preset does not inherit from another preset."
-msgstr "此配置未繼承自其他配置。"
+msgstr "此預設未繼承自其他預設。"
msgid "Name is unavailable."
msgstr "名稱不可用。"
+# AI Translated
msgid "Overwriting a system profile is not allowed."
-msgstr "不允許覆蓋系統預設"
+msgstr "不允許覆蓋系統預設。"
#, boost-format
msgid "Preset \"%1%\" already exists."
@@ -10585,21 +11802,24 @@ msgctxt "PresetName"
msgid "Copy"
msgstr "複製"
+# AI Translated
#, boost-format
msgid "Printer \"%1%\" is selected with preset \"%2%\""
-msgstr "選取的列印裝置「%1%」和預設「%2%」"
+msgstr "列印裝置「%1%」已選用預設「%2%」"
#, boost-format
msgid "Please choose an action with \"%1%\" preset after saving."
msgstr "請選擇儲存後對「%1%」預設的操作。"
+# AI Translated
#, boost-format
msgid "For \"%1%\", change \"%2%\" to \"%3%\" "
-msgstr "為「%1%」,把「%2%」更換為「%3%」"
+msgstr "對於「%1%」,將「%2%」變更為「%3%」 "
+# AI Translated
#, boost-format
msgid "For \"%1%\", add \"%2%\" as a new preset"
-msgstr "為「%1%」,增加「%2%」為一個新預設"
+msgstr "對於「%1%」,將「%2%」新增為新預設"
#, boost-format
msgid "Simply switch to \"%1%\""
@@ -10615,7 +11835,7 @@ msgstr "無法載入效能測試模型。"
# AI Translated
msgid "Slicing failed, so only Prepare was measured."
-msgstr "切片失敗,因此只測量了準備。"
+msgstr "切片失敗,因此只測量了「準備」。"
# AI Translated
msgid "The benchmark stopped because the 3D view was hidden."
@@ -10623,15 +11843,15 @@ msgstr "由於 3D 視圖被隱藏,效能測試已停止。"
# AI Translated
msgid "Turning the camera in Prepare"
-msgstr "在準備中轉動攝影機"
+msgstr "在「準備」中轉動相機"
# AI Translated
msgid "Turning the camera in Preview"
-msgstr "在預覽中轉動攝影機"
+msgstr "在「預覽」中轉動相機"
# AI Translated
msgid "Moving through the layers in Preview"
-msgstr "在預覽中逐層移動"
+msgstr "在「預覽」中逐層移動"
# AI Translated
msgid "Copy the results to the clipboard"
@@ -10639,7 +11859,7 @@ msgstr "將結果複製到剪貼簿"
# AI Translated
msgid "The benchmark replaces the current project with the OrcaSliced Combo and slices it. It turns the camera around the model in Prepare and in Preview, then moves the layer slider through the sliced layers, timing every frame, and shows the results."
-msgstr "效能測試會以 OrcaSliced Combo 取代目前專案並進行切片。它會在準備與預覽中讓攝影機環繞模型轉動,接著讓層滑桿逐一移過已切片的各層,計時每一個影格,並顯示結果。"
+msgstr "效能測試會以 OrcaSliced Combo 取代目前專案並進行切片。它會在「準備」與「預覽」中讓相機環繞模型轉動,接著讓層滑桿逐一移過已切片的各層,計時每一個影格,並顯示結果。"
# AI Translated
msgid "It uses the current graphics settings and usually takes less than a minute. The main window stays locked until it finishes."
@@ -10665,6 +11885,12 @@ msgctxt "Settings Mode"
msgid "Simple"
msgstr "簡易"
+# AI Translated
+#. TRN Screen-reader label of a Speed Dial action: the first %s is the action name, the second where it comes from (a menu, tab or settings group). Keep the two %s in this order.
+#, c-format, boost-format
+msgid "%s from %s"
+msgstr "%s,來自 %s"
+
# AI Translated
msgid "Search actions"
msgstr "搜尋操作"
@@ -10780,7 +12006,11 @@ msgstr "顯示詳細資訊"
# AI Translated
msgid "Hide details"
-msgstr "隱藏詳細資料"
+msgstr "隱藏詳細資訊"
+
+# AI Translated
+msgid "Web view is unavailable."
+msgstr "網頁檢視不可用。"
# AI Translated
#, c-format, boost-format
@@ -10794,7 +12024,7 @@ msgstr "開發者設定"
# AI Translated
#, c-format, boost-format
msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?"
-msgstr "「%s」是%s設定。要從%s模式切換到%s模式以進行編輯嗎?"
+msgstr "「%s」是 %s 設定。要從 %s 模式切換到 %s 模式以便編輯嗎?"
# AI Translated
msgid "Switch settings mode"
@@ -10816,14 +12046,16 @@ msgstr "此操作不再詢問"
msgid "Task canceled"
msgstr "任務已取消"
+# AI Translated
msgid "Bambu Cool Plate"
-msgstr "低溫列印版"
+msgstr "Bambu 低溫列印板"
msgid "PLA Plate"
msgstr "PLA 列印板"
+# AI Translated
msgid "Bambu Engineering Plate"
-msgstr "Bambu 工程列印熱板"
+msgstr "Bambu 工程列印板"
msgid "Bambu Smooth PEI Plate"
msgstr "Bambu 平滑 PEI 列印板"
@@ -10834,8 +12066,9 @@ msgstr "高溫列印板"
msgid "Bambu Textured PEI Plate"
msgstr "Bambu 紋理 PEI 列印板"
+# AI Translated
msgid "Bambu Cool Plate SuperTack"
-msgstr "Bambu 低溫列印板超強黏性版"
+msgstr "Bambu 增穩低溫列印板"
msgid "Send print job"
msgstr "傳送列印作業"
@@ -10912,43 +12145,43 @@ msgstr "額外資訊"
# AI Translated
msgid "The Filament Track Switch installed on the printer does not match the slicing file. Please re-slice to avoid print quality issues."
-msgstr "印表機上安裝的 Filament Track Switch 與切片檔案不符。請重新切片以避免列印品質問題。"
+msgstr "列印裝置上安裝的線材路徑切換器與切片檔案不符。請重新切片以避免列印品質問題。"
# AI Translated
msgid "This print requires a Filament Track Switch. Please install it first."
-msgstr "此列印需要 Filament Track Switch。請先安裝它。"
+msgstr "此列印需要線材路徑切換器。請先安裝。"
# AI Translated
msgid "The Filament Track Switch has not been setup. Please setup it first."
-msgstr "Filament Track Switch 尚未設定。請先進行設定。"
+msgstr "線材路徑切換器尚未設定。請先進行設定。"
# AI Translated
#, c-format, boost-format
msgid "Failed to send nozzle auto-mapping request to printer { code: %d }. Please try to refresh the printer information. If it still does not recover, you can try to rebind the printer and check the network connection."
-msgstr "向印表機傳送噴嘴自動對應請求失敗 { code: %d }。請嘗試重新整理印表機資訊。若仍未恢復,可嘗試重新綁定印表機並檢查網路連線。"
+msgstr "無法向列印裝置傳送噴嘴自動映射請求 { code: %d }。請嘗試重新整理列印裝置資訊。若仍未恢復,可嘗試重新綁定列印裝置並檢查網路連線。"
# AI Translated
msgid "The printer is calculating nozzle mapping."
-msgstr "印表機正在計算噴嘴對應。"
+msgstr "列印裝置正在計算噴嘴映射。"
# AI Translated
msgid "Please wait a moment..."
-msgstr "請稍候片刻…"
+msgstr "請稍候片刻..."
# AI Translated
#, c-format, boost-format
msgid "Failed to receive nozzle auto-mapping table from printer { msg: %s }. Please refresh the printer information."
-msgstr "未能從印表機接收噴嘴自動對應表 { msg: %s }。請重新整理印表機資訊。"
+msgstr "無法從列印裝置接收噴嘴自動映射表 { msg: %s }。請重新整理列印裝置資訊。"
# AI Translated
#, c-format, boost-format
msgid "The printer failed to build the nozzle auto-mapping table { code: %d }. Please refresh nozzle information."
-msgstr "印表機未能建立噴嘴自動對應表 { code: %d }。請重新整理噴嘴資訊。"
+msgstr "列印裝置無法建立噴嘴自動映射表 { code: %d }。請重新整理噴嘴資訊。"
# AI Translated
#, c-format, boost-format
msgid "The current nozzle mapping may produce an extra %0.2f g of waste."
-msgstr "目前的噴嘴對應可能會產生額外 %0.2f g 的廢料。"
+msgstr "目前的噴嘴映射可能會產生額外 %0.2f g 的廢料。"
# AI Translated
#, c-format, boost-format
@@ -10971,8 +12204,9 @@ msgstr "選擇的列印裝置(%s)與列印檔案設定檔(%s)不相容
msgid "The selected printer (%s) has an unknown model, so compatibility with the print file configuration (%s) cannot be verified. Please verify the printer preset before sending."
msgstr "所選列印裝置(%s)的型號不明,因此無法驗證與列印檔案設定(%s)的相容性。傳送前請確認列印裝置預設。"
+# AI Translated
msgid "When spiral vase mode is enabled, machines with I3 structure will not generate timelapse videos."
-msgstr "當啟用螺旋花瓶模式時,龍門結構的裝置不會產生縮時攝影影片。"
+msgstr "啟用螺旋花瓶模式時,I3 結構的列印裝置不會產生縮時攝影影片。"
msgid "The current printer does not support timelapse in Traditional Mode when printing By-Object."
msgstr "目前的列印裝置在使用逐件列印時不支援傳統模式的縮時攝影。"
@@ -10993,8 +12227,9 @@ msgstr "外部料盤的線材類型設定與切片檔案中的線材不同。"
msgid "The printer type selected when generating G-code is not consistent with the currently selected printer. It is recommended that you use the same printer type for slicing."
msgstr "產生 G-code 時選擇的列印裝置類型與目前選擇的列印裝置不一致。建議您使用相同的列印裝置類型進行切片。"
+# AI Translated
msgid "There are some unknown filaments in the AMS mappings. Please check whether they are the required filaments. If they are okay, click \"Confirm\" to start printing."
-msgstr "AMS 設定中存在一些未知的線材。請檢查是否符合所需的線材。如果符合,按『確定』以開始列印作業。"
+msgstr "AMS 映射中有一些未知的線材。請檢查是否為所需的線材。如果沒問題,請按一下「確認」開始列印。"
msgid "Please check the following:"
msgstr "請檢查以下內容:"
@@ -11002,8 +12237,9 @@ msgstr "請檢查以下內容:"
msgid "Please fix the error above, otherwise printing cannot continue."
msgstr "請排除上述錯誤,否則無法繼續列印。"
+# AI Translated
msgid "Please click the confirm button if you still want to proceed with printing."
-msgstr "如果您仍然想繼續列印,請滑鼠左鍵點選『確定』按鈕。"
+msgstr "如果您仍要繼續列印,請按一下「確認」按鈕。"
msgid "This checks the flatness of heatbed. Leveling makes extruded height uniform."
msgstr "這會檢查熱床的平整度。調平可使擠出高度一致。"
@@ -11065,9 +12301,11 @@ msgstr "傳送失敗"
msgid "The name length exceeds the limit."
msgstr "名稱長度超過限制。"
+# AI Translated
#, c-format, boost-format
-msgid "Cost %dg filament and %d changes more than optimal grouping."
-msgstr "比最佳分組多消耗 %dg 線材和 %d 次切換。"
+msgid "Cost %dg filament and %d change more than optimal grouping."
+msgid_plural "Cost %dg filament and %d changes more than optimal grouping."
+msgstr[0] "比最佳分組多消耗 %dg 線材和 %d 次換料。"
# AI Translated
msgid "Right-Ext"
@@ -11108,11 +12346,11 @@ msgstr "回報的熱端資訊可能不可靠。"
# AI Translated
#, c-format, boost-format
msgid "The printer has no nozzle matching the slicing file (%s)."
-msgstr "印表機沒有與切片檔案相符的噴嘴(%s)。"
+msgstr "列印裝置沒有與切片檔案相符的噴嘴(%s)。"
# AI Translated
msgid "Please install a matching nozzle in the hotend rack, or set the corresponding printer preset while slicing."
-msgstr "請在熱端掛架上安裝相符的噴嘴,或在切片時設定對應的印表機預設。"
+msgstr "請在熱端掛架上安裝相符的噴嘴,或在切片時設定對應的列印裝置預設。"
# AI Translated
msgid "The toolhead and hotend rack are full. Please remove at least one hotend before printing."
@@ -11122,8 +12360,9 @@ msgstr "工具頭與熱端掛架已滿。請於列印前至少移除一個熱端
msgid "The nozzle flow setting of %s(%s) doesn't match with the slicing file(%s). Please make sure the nozzle installed matches with settings in printer, then set the corresponding printer preset while slicing."
msgstr "%s 的噴嘴流量設定(%s)與切片檔案(%s)不符。請確保已安裝的噴嘴與列印裝置中的設定相符,然後在切片時設定相應的列印裝置預設。"
+# AI Translated
msgid "Tips: If you changed your nozzle of your printer lately, please go to 'Device -> Printer parts' to change your nozzle setting."
-msgstr "提示:如果您最近更換了列印裝置的噴嘴,請前往『裝置 -> 列印裝置零件』變更您的噴嘴設定。"
+msgstr "提示:如果您最近更換了列印裝置的噴嘴,請前往「裝置 -> 列印裝置零件」變更您的噴嘴設定。"
#, c-format, boost-format
msgid "The %s diameter(%.1fmm) of current printer doesn't match with the slicing file (%.1fmm). Please make sure the nozzle installed matches with settings in printer, then set the corresponding printer preset when slicing."
@@ -11151,15 +12390,19 @@ msgstr "目前材料(%s)的硬度超過 %s(%s)的硬度。這可能造
# AI Translated
msgid "Some filaments may switch between extruders during printing. Manual K-value calibration cannot be applied throughout the entire print, which may affect print quality. Enabling Flow Dynamics Calibration is recommended."
-msgstr "部分線材在列印過程中可能會在擠出機之間切換。手動 K 值校準無法套用於整個列印過程,這可能影響列印品質。建議啟用動態流量校準。"
+msgstr "部分線材在列印過程中可能會在擠出機之間切換。手動 K 值校正無法套用於整個列印過程,這可能影響列印品質。建議啟用動態流量校正。"
# AI Translated
msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode."
-msgstr "此檔案中含有易牽絲的線材。為獲得最佳列印品質,建議將噴嘴裹料偵測切換為自動模式。"
+msgstr "此檔案中含有易牽絲的線材。為獲得最佳列印品質,建議將噴嘴結塊偵測切換為自動模式。"
+
+# AI Translated
+msgid "Switch"
+msgstr "切換"
# AI Translated
msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page."
-msgstr "若「動態流量校準」設為自動/開啟,系統會使用手動校準值或預設值,並略過流量校準流程。您可以在「校準」頁面對 TPU 線材執行手動流量校準。"
+msgstr "若「動態流量校正」設為自動/開啟,系統會使用手動校正值或預設值,並略過流量校正流程。您可以在「校正」頁面對 TPU 線材執行手動流量校正。"
#, c-format, boost-format
msgid "[ %s ] requires printing in a high-temperature environment. Please close the door."
@@ -11169,9 +12412,10 @@ msgstr "[ %s ] 需要在高溫環境中列印。請關閉機門。"
msgid "[ %s ] requires printing in a high-temperature environment."
msgstr "[ %s ] 需要在高溫環境中列印。"
+# AI Translated
#, c-format, boost-format
msgid "The filament on %s may soften. Please unload."
-msgstr "%s 上的線材可能會軟化。請卸載。"
+msgstr "%s 上的線材可能會軟化。請退料。"
#, c-format, boost-format
msgid "The filament on %s is unknown and may soften. Please set filament."
@@ -11180,11 +12424,13 @@ msgstr "%s 上的線材未知且可能會軟化。請設定線材。"
msgid "Unable to automatically match to suitable filament. Please click to manually match."
msgstr "無法自動匹配至合適的線材。請點選以手動匹配。"
+# AI Translated
msgid "Install toolhead enhanced cooling fan to prevent filament softening."
-msgstr "安裝噴頭增強冷卻風扇以防止線材軟化。"
+msgstr "安裝工具頭增強冷卻風扇以防止線材軟化。"
+# AI Translated
msgid "Smooth Cool Plate"
-msgstr "低溫平滑列印板"
+msgstr "平滑低溫列印板"
msgid "Engineering Plate"
msgstr "工程列印板"
@@ -11195,32 +12441,39 @@ msgstr "高溫平滑列印板"
msgid "Textured PEI Plate"
msgstr "紋理 PEI 列印板"
+# AI Translated
msgid "Cool Plate (SuperTack)"
-msgstr "低溫增穩列印板"
+msgstr "增穩低溫列印板"
+# AI Translated
msgid "Click here if you can't connect to the printer"
-msgstr "如果無法連線到列印裝置,請按一下此處"
+msgstr "如果無法連線至列印裝置,請按一下此處"
+# AI Translated
msgid "No login account, only printers in LAN mode are displayed."
-msgstr "未登入帳號,僅顯示區域網路模式的列印裝置"
+msgstr "未登入帳號,僅顯示 LAN 模式的列印裝置。"
msgid "Connecting to server..."
msgstr "正在連線伺服器..."
+# AI Translated
msgid "Synchronizing device information..."
-msgstr "正在同步裝置資訊"
+msgstr "正在同步裝置資訊..."
+# AI Translated
msgid "Synchronizing device information timed out."
-msgstr "同步裝置資訊逾時"
+msgstr "同步裝置資訊逾時。"
msgid "Cannot send a print job when the printer is not at FDM mode."
msgstr "列印裝置不在 FDM 模式時無法傳送列印作業。"
+# AI Translated
msgid "Cannot send a print job while the printer is updating firmware."
-msgstr "裝置升級中,無法傳送列印作業"
+msgstr "列印裝置正在更新韌體,無法傳送列印作業。"
+# AI Translated
msgid "The printer is executing instructions. Please restart printing after it ends."
-msgstr "列印裝置正在執行指令,請在指令結束後重新開始列印"
+msgstr "列印裝置正在執行指令,請在指令結束後重新開始列印。"
msgid "AMS is setting up. Please try again later."
msgstr "AMS 正在設定中。請稍後再試。"
@@ -11234,23 +12487,27 @@ msgstr "請勿將外部料盤與 AMS 混合使用。"
msgid "Invalid nozzle information, please refresh or manually set nozzle information."
msgstr "噴嘴資訊無效,請重新整理或手動設定噴嘴資訊。"
+# AI Translated
msgid "Storage needs to be inserted before printing via LAN."
-msgstr "透過區域網路列印前需要插入儲存空間。"
+msgstr "透過 LAN 列印前需要插入儲存裝置。"
msgid "Storage is in abnormal state or is in read-only mode."
msgstr "儲存空間處於異常狀態或為唯讀模式。"
+# AI Translated
msgid "Storage needs to be inserted before printing."
-msgstr "列印前需要插入儲存空間。"
+msgstr "列印前需要插入儲存裝置。"
msgid "Cannot send the print job to a printer whose firmware must be updated."
msgstr "列印裝置需要更新韌體才能接收列印作業。"
+# AI Translated
msgid "Cannot send a print job for an empty plate."
-msgstr "無法傳送空的列印板"
+msgstr "無法傳送空列印板的列印作業。"
+# AI Translated
msgid "Storage needs to be inserted to record timelapse."
-msgstr "需要插入儲存空間以錄製縮時攝影。"
+msgstr "需要插入儲存裝置才能錄製縮時攝影。"
# AI Translated
msgid "The selected printer model could not be identified, so compatibility with the print file configuration cannot be verified. Please verify the printer preset before sending."
@@ -11262,11 +12519,13 @@ msgstr "您為一個擠出機同時選擇了外部料盤和 AMS 線材。列印
msgid "TPU 90A/TPU 85A is too soft and does not support automatic Flow Dynamics calibration."
msgstr "TPU 90A/TPU 85A 太軟,不支援自動動態流量校正。"
+# AI Translated
msgid "Set dynamic flow calibration to 'OFF' to enable custom dynamic flow value."
-msgstr "將動態流量校正設定為“停用”以啟用自訂動態流量值。"
+msgstr "將動態流量校正設為「關閉」,以啟用自訂動態流量值。"
+# AI Translated
msgid "This printer does not support printing all plates."
-msgstr "此列印裝置類型不支援列印所有列印板"
+msgstr "此列印裝置不支援列印所有列印板。"
# AI Translated
#, c-format, boost-format
@@ -11278,7 +12537,7 @@ msgstr "外部線材的類型未知,或與切片檔案中的線材類型不符
# AI Translated
msgid "TPU 90A/TPU 85A are too soft. It is recommended to perform manual flow calibration on the 'Calibration' page. If 'Dynamic Flow Calibration' is set to auto/on, the system will use the previous calibration value and skip the flow calibration process."
-msgstr "TPU 90A/TPU 85A 太軟。建議在「校準」頁面執行手動流量校準。若「動態流量校準」設為自動/開啟,系統會使用先前的校準值並略過流量校準流程。"
+msgstr "TPU 90A/TPU 85A 太軟。建議在「校正」頁面執行手動流量校正。若「動態流量校正」設為自動/開啟,系統會使用先前的校正值並略過流量校正流程。"
# AI Translated
msgid "The filament in the AMS may be insufficient for this print. Please refill or replace it."
@@ -11311,14 +12570,17 @@ msgstr "連線失敗。點選圖示以重試"
msgid "Cannot send print tasks when an update is in progress"
msgstr "裝置升級中,無法傳送列印作業"
+# AI Translated
msgid "The selected printer is incompatible with the chosen printer presets."
-msgstr "所選列印裝置與選擇的列印裝置預設檔不相容。"
+msgstr "所選列印裝置與選擇的列印裝置預設不相容。"
+# AI Translated
msgid "Storage needs to be inserted before send to printer."
-msgstr "傳送至列印裝置前需要插入儲存空間。"
+msgstr "傳送至列印裝置前需要插入儲存裝置。"
+# AI Translated
msgid "The printer is required to be on the same LAN as Orca Slicer."
-msgstr "列印裝置需要與 Orca Slicer 在同一個區域網路內。"
+msgstr "列印裝置需要與 Orca Slicer 位於同一個 LAN。"
msgid "The printer does not support sending to printer storage."
msgstr "列印裝置不支援傳送至列印裝置儲存空間。"
@@ -11336,20 +12598,24 @@ msgstr "檔案上傳逾時。請檢查韌體版本是否支援此操作,或確
msgid "Sending failed, please try again!"
msgstr "傳送失敗,請重試!"
+# AI Translated
msgid "Slice complete"
-msgstr "切片完成。"
+msgstr "切片完成"
msgid "View all Daily tips"
msgstr "顯示所有每日提示"
+# AI Translated
msgid "Failed to create socket"
-msgstr "建立網路端點連線失敗"
+msgstr "無法建立通訊端"
+# AI Translated
msgid "Failed to connect socket"
-msgstr "無法連線網路端點"
+msgstr "無法連線通訊端"
+# AI Translated
msgid "Failed to publish login request"
-msgstr "請求登陸失敗"
+msgstr "無法發佈登入請求"
msgid "Timeout getting ticket from device"
msgstr "從裝置取得票證逾時"
@@ -11357,8 +12623,9 @@ msgstr "從裝置取得票證逾時"
msgid "Timeout getting ticket from server"
msgstr "從伺服器取得票證逾時"
+# AI Translated
msgid "Failed to post ticket to server"
-msgstr "將票證提交到伺服器失敗"
+msgstr "無法將票證提交至伺服器"
msgid "Failed to parse login report reason"
msgstr "無法解析登入回覆"
@@ -11369,33 +12636,40 @@ msgstr "接收登入回覆逾時"
msgid "Unknown Failure"
msgstr "未知錯誤"
+# AI Translated
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
-"請在印表裝置螢幕上的帳戶頁面找到 PIN 碼,\n"
-"並在下面輸入 PIN 碼。"
+"請在列印裝置螢幕上的帳戶頁面找到 Pin 碼,\n"
+"並在下方輸入 Pin 碼。"
+# AI Translated
msgid "Can't find Pin Code?"
-msgstr "找不到Pin?"
+msgstr "找不到 Pin 碼?"
+# AI Translated
msgid "Pin Code"
-msgstr "Pin"
+msgstr "Pin 碼"
+# AI Translated
msgid "Binding..."
-msgstr "綁定..."
+msgstr "正在綁定..."
+# AI Translated
msgid "Please confirm on the printer screen"
-msgstr "請到列印裝置上按確認"
+msgstr "請在列印裝置螢幕上確認"
+# AI Translated
msgid "Log in failed. Please check the Pin Code."
-msgstr "登入失敗。請檢查 Pin碼。"
+msgstr "登入失敗。請檢查 Pin 碼。"
msgid "Log in printer"
msgstr "登入列印裝置"
+# AI Translated
msgid "Would you like to log in to this printer with the current account?"
-msgstr "您想使用目前帳號登入這台列印裝置嗎?"
+msgstr "您要使用目前帳號登入這台列印裝置嗎?"
msgid "Check the reason"
msgstr "檢視原因"
@@ -11412,8 +12686,9 @@ msgstr "感謝您購買 Bambu Lab 裝置。在使用 Bambu Lab 裝置之前,
msgid "and"
msgstr "與"
+# AI Translated
msgid "Privacy Policy"
-msgstr "隱私協定"
+msgstr "隱私政策"
msgid "We ask for your help to improve everyone's printer"
msgstr "我們請求您的幫助來改善大家的列印裝置"
@@ -11434,14 +12709,16 @@ msgstr "登入成功。"
msgid "Log out printer"
msgstr "登出列印裝置"
+# AI Translated
msgid "Would you like to log out the printer?"
-msgstr "您想登出列印裝置嗎?"
+msgstr "您要登出列印裝置嗎?"
msgid "Please log in first."
msgstr "請先登入。"
+# AI Translated
msgid "There was a problem connecting to the printer. Please try again."
-msgstr "連線列印裝置時發生錯誤。 重新連線。"
+msgstr "連線列印裝置時發生問題。請再試一次。"
msgid "Failed to log out."
msgstr "登出失敗。"
@@ -11465,40 +12742,52 @@ msgstr "不支援同步不同的擠出機驅動或噴嘴內腔體積類型。"
msgid "Synchronize the modification of parameters to the corresponding parameters of another extruder."
msgstr "將參數的修改同步到另一個擠出機的對應參數。"
+# AI Translated
+msgid "Parameters with this icon can be configured per nozzle."
+msgstr "帶有此圖示的參數可依噴嘴分別設定。"
+
msgid "Click to reset all settings to the last saved preset."
msgstr "點選以將所有設定還原到最後一次儲存的版本。"
+# AI Translated
msgid "Prime tower is required for nozzle changing. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?"
-msgstr "切換噴嘴需要擦料塔,否則列印件上可能會有瑕疵。您確定要關閉擦料塔嗎?"
+msgstr "切換噴嘴需要換料塔,否則列印物件上可能會有瑕疵。您確定要停用換料塔嗎?"
+# AI Translated
msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without a prime tower. Are you sure you want to disable the prime tower?"
-msgstr "平滑模式的縮時錄影需要換料塔,否則列印物件上可能會有瑕疵。您是否要關閉換料塔?"
+msgstr "平滑模式的縮時攝影需要換料塔,否則列印物件上可能會有瑕疵。您確定要停用換料塔嗎?"
+# AI Translated
msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?"
-msgstr "堵塞偵測需要換料塔。若沒有換料塔,列印物件上可能會有瑕疵。您確定要停用換料塔嗎?"
+msgstr "結塊偵測需要換料塔。若沒有換料塔,列印物件上可能會有瑕疵。您確定要停用換料塔嗎?"
+# AI Translated
msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable?"
-msgstr "同時啟用精確 Z 高度和擦拭塔可能會導致切片錯誤。您仍然要啟用嗎?"
+msgstr "同時啟用精確 Z 高度和換料塔可能會導致切片錯誤。您仍然要啟用嗎?"
+# AI Translated
msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Do you still want to enable clumping detection?"
-msgstr "堵塞偵測需要換料塔。若沒有換料塔,列印物件上可能會有瑕疵。您是否仍要啟用堵塞偵測?"
+msgstr "結塊偵測需要換料塔。若沒有換料塔,列印物件上可能會有瑕疵。您是否仍要啟用結塊偵測?"
+# AI Translated
msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable precise Z height?"
-msgstr "同時啟用精確 Z 高度和擦拭塔可能會導致切片錯誤。您仍然要啟用精確 Z 高度嗎?"
+msgstr "同時啟用精確 Z 高度和換料塔可能會導致切片錯誤。您仍然要啟用精確 Z 高度嗎?"
# AI Translated
msgid "Smooth timelapse needs a prime tower on every layer, which is not compatible with \"No sparse layers\". \"No sparse layers\" has been turned off."
msgstr "平滑模式的縮時攝影需要每層都有換料塔,因此與「取消稀疏層」不相容。「取消稀疏層」已關閉。"
+# AI Translated
msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without prime tower. Do you want to enable the prime tower?"
-msgstr "平滑模式的縮時錄影需要換料塔,否則列印物件上可能會有瑕疵。您是否要啟用換料塔?"
+msgstr "平滑模式的縮時攝影需要換料塔,否則列印物件上可能會有瑕疵。您是否要啟用換料塔?"
# AI Translated
msgid "\"No sparse layers\" is not compatible with smooth timelapse, which needs a prime tower on every layer. Timelapse has been switched to traditional mode."
msgstr "「取消稀疏層」與平滑模式的縮時攝影不相容,後者需要每層都有換料塔。縮時攝影已切換為傳統模式。"
+# AI Translated
msgid "Still print by object?"
-msgstr "持續逐件列印?"
+msgstr "仍要逐件列印嗎?"
msgid ""
"Non-soluble support materials are not recommended for support base.\n"
@@ -11507,58 +12796,69 @@ msgstr ""
"不建議使用不可溶線材作為支撐底座。\n"
"您確定要使用它們作為支撐底座嗎?\n"
+# AI Translated
msgid ""
"When using support material for the support interface, we recommend the following settings:\n"
"0 top Z distance, 0 interface spacing, interlaced rectilinear pattern and disable independent support layer height."
msgstr ""
-"當使用支撐材質作為支撐介面時,我們建議使用以下設定:\n"
-"頂部 Z 距離為 0、接觸面間距為 0、交錯直線填充模式,並停用獨立支撐層高。"
+"支撐面使用支撐材料時,建議使用以下設定:\n"
+"頂部 Z 間距為 0、頂部支撐面間距為 0、交錯直線圖案,並停用獨立支撐層高。"
+# AI Translated
msgid ""
"Change these settings automatically?\n"
"Yes - Change these settings automatically.\n"
"No - Do not change these settings for me."
msgstr ""
-"自動調整這些設定?\n"
-"是 - 自動調整這些設定\n"
-"否 - 不用為我調整這些設定"
+"是否自動變更這些設定?\n"
+"是:自動變更這些設定。\n"
+"否:不要變更這些設定。"
+# AI Translated
msgid ""
"When using soluble material for the support interface, we recommend the following settings:\n"
"0 top Z distance, 0 interface spacing, interlaced rectilinear pattern, disable independent support layer height\n"
"and use soluble materials for both support interface and support base."
msgstr ""
-"當使用可溶線材作為支撐介面時,我們建議使用以下設定:\n"
-"頂部 Z 距離為 0、介面間距為 0、交錯直線填充模式、停用獨立支撐層高\n"
-"並在支撐介面和支撐底座均使用可溶線材。"
+"支撐面使用可溶線材時,建議使用以下設定:\n"
+"頂部 Z 間距為 0、頂部支撐面間距為 0、交錯直線圖案、停用獨立支撐層高,\n"
+"並在支撐面和支撐主體都使用可溶線材。"
+# AI Translated
msgid "Enabling this option will modify the model's shape. If your print requires precise dimensions or is part of an assembly, it's important to double-check whether this change in geometry impacts the functionality of your print."
-msgstr "啟用此選項將會改變模型形狀。如果您的列印需要精準的尺寸或屬於組裝件的一部分,請務必再次確認此幾何形狀的更改是否會影響您的列印。"
+msgstr "啟用此選項將會改變模型形狀。如果您的列印需要精準的尺寸或屬於組合件的一部分,請務必再次確認此幾何形狀的更改是否會影響您的列印。"
+# AI Translated
msgid "Are you sure you want to enable this option?"
-msgstr "您確認要啟用此選項嗎?"
+msgstr "您確定要啟用此選項嗎?"
+# AI Translated
msgid "Infill patterns are typically designed to handle rotation automatically to ensure proper printing and achieve their intended effects (e.g., Gyroid, Cubic). Rotating the current sparse infill pattern may lead to insufficient support. Please proceed with caution and thoroughly check for any potential printing issues. Are you sure you want to enable this option?"
-msgstr "填充模式通常設計為自動處理旋轉,以確保正確列印並實現其預期效果(例如:Gyroid、Cubic)。旋轉目前的稀疏填充模式可能會導致支撐不足。請謹慎操作,並仔細檢查任何潛在的列印問題。您確定要啟用此選項嗎?"
+msgstr "填充圖案通常設計為自動處理旋轉,以確保正確列印並達到預期效果(例如螺旋體、立方體)。旋轉目前的稀疏填充圖案可能會導致支撐不足。請謹慎操作,並仔細檢查任何潛在的列印問題。您確定要啟用此選項嗎?"
+# AI Translated
msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications."
-msgstr "實驗性功能:在換線過程中以更大的距離收回並切斷線材,以減少沖洗量。儘管這可以顯著減少沖洗,但也可能增加噴嘴堵塞或其他列印問題的風險。"
+msgstr "實驗性功能:換料時以較長的距離回抽並切斷線材,以減少清理量。雖然這能顯著減少清理量,但也可能增加噴嘴堵塞或其他列印問題的風險。"
+# AI Translated
msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications. Please use with the latest printer firmware."
-msgstr "實驗性功能:在換線過程中以更大的距離收回並切斷線材,以減少沖洗量。儘管這可以顯著減少沖洗,但也可能增加噴嘴堵塞或其他列印問題的風險。請搭配最新的列印裝置韌體使用。"
+msgstr "實驗性功能:換料時以較長的距離回抽並切斷線材,以減少清理量。雖然這能顯著減少清理量,但也可能增加噴嘴堵塞或其他列印問題的風險。請搭配最新的列印裝置韌體使用。"
+# AI Translated
msgid ""
"When recording timelapse without toolhead, it is recommended to add a \"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add Primitive\"->\"Timelapse Wipe Tower\"."
msgstr ""
-"在錄製無工具頭縮時錄影影片時,建議新增一個「縮時錄影換料塔」\n"
-"可以透過右鍵點選建構板的空白位置,選擇『新增標準模型』->『縮時錄影換料塔』來進行新增。"
+"錄製無工具頭的縮時攝影時,建議新增「縮時攝影換料塔」:\n"
+"在列印板的空白位置按一下右鍵,選擇「新增標準模型」->「縮時攝影換料塔」。"
+# AI Translated
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
-msgstr "將建立目前系統配置的副本,且該副本將與系統配置分離不相關聯。"
+msgstr "將建立目前系統預設的副本,此副本將與系統預設分離。"
+# AI Translated
msgid "The current custom preset will be detached from the parent system preset."
-msgstr "目前的自訂配置將與父系統配置分離不相關聯。"
+msgstr "目前的自訂預設將與父系統預設分離。"
msgid "Modifications to the current profile will be saved."
msgstr "目前設定檔的修改將會儲存下來。"
@@ -11570,29 +12870,39 @@ msgstr ""
"此操作無法還原。\n"
"您確定要繼續嗎?"
+# AI Translated
msgid "Detach preset"
-msgstr "解除預設"
+msgstr "分離預設"
+# AI Translated
+# Needs human review: Preset info box (Tab.cpp:2698): 'default preset' rendered 預設的預設 since preset = 預設; check it reads acceptably
msgid "This is a default preset."
-msgstr "預設配置。"
+msgstr "這是預設的預設。"
+# AI Translated
msgid "This is a system preset."
-msgstr "這是系統預設配置。"
+msgstr "這是系統預設。"
+# AI Translated
+# Needs human review: Preset info box (Tab.cpp:2702): 'default preset' rendered 預設的預設 since preset = 預設; check it reads acceptably
msgid "Current preset is inherited from the default preset."
-msgstr "目前的配置繼承自預設配置。"
+msgstr "目前的預設繼承自預設的預設。"
+# AI Translated
msgid "Current preset is inherited from"
-msgstr "目前的配置繼承自"
+msgstr "目前的預設繼承自"
+# AI Translated
msgid "It can't be deleted or modified."
-msgstr "它無法被刪除或修改。"
+msgstr "無法刪除或修改。"
+# AI Translated
msgid "Any modifications should be saved as a new preset inherited from this one."
-msgstr "若要進行任何修改,請另存新檔一個新的預設配置,並繼承自此預設配置。"
+msgstr "任何修改都應另存為繼承自此預設的新預設。"
+# AI Translated
msgid "To do that please specify a new name for the preset."
-msgstr "為此,請為新的預設配置指定一個名稱。"
+msgstr "為此,請為預設指定新名稱。"
msgid "Additional information:"
msgstr "其他資訊:"
@@ -11659,8 +12969,9 @@ msgstr "其他層速度"
msgid "Overhang speed"
msgstr "懸空列印速度"
+# AI Translated
msgid "This is the speed for various overhang degrees. Overhang degrees are expressed as a percentage of line width. 0 speed means no slowing down for the overhang degree range and wall speed is used"
-msgstr "此設定是為不同懸空角度指定的速度。懸空角度以線寬的百分比表示。若速度設定為 0,表示該懸空角度範圍內不會減速,將使用牆面速度"
+msgstr "這是不同懸空程度的速度。懸空程度以線寬的百分比表示。速度為 0 表示該懸空程度範圍內不減速,直接使用牆的速度"
msgid "Set speed for external and internal bridges"
msgstr "設定外部和內部橋接的速度"
@@ -11671,8 +12982,9 @@ msgstr "空駛速度"
msgid "Junction Deviation"
msgstr "轉折偏移值"
+# AI Translated
msgid "Jerk(XY)"
-msgstr "抖動(XY軸)"
+msgstr "急衝速度(XY)"
msgid "Raft"
msgstr "筏層"
@@ -11680,8 +12992,9 @@ msgstr "筏層"
msgid "Filament for Supports"
msgstr "支撐線材"
+# AI Translated
msgid "Support ironing"
-msgstr "支撐熨平"
+msgstr "支撐熨燙"
msgid "Tree supports"
msgstr "樹狀支撐"
@@ -11692,8 +13005,12 @@ msgstr "多線材"
msgid "Filament for Features"
msgstr "用於特徵的線材"
+# AI Translated
msgid "Ooze prevention"
-msgstr "防止漏料"
+msgstr "防漏料"
+
+msgid "Others"
+msgstr "其他"
msgid "Special mode"
msgstr "特殊模式"
@@ -11701,8 +13018,9 @@ msgstr "特殊模式"
msgid "G-code output"
msgstr "G-code 輸出"
+# AI Translated
msgid "Change extrusion role G-code"
-msgstr "變更擠出機任務的 G-code"
+msgstr "變更擠出類型的 G-code"
msgid "Post-processing Scripts"
msgstr "後處理腳本"
@@ -11732,8 +13050,11 @@ msgstr[0] ""
"以下行 %s 包含保留關鍵字。\n"
"請將其移除,否則將影響 G-code 的視覺化和列印時間估算。"
-msgid "Reserved keywords found"
-msgstr "偵測到保留的關鍵字"
+# AI Translated
+#. TRN %1% is the name of the custom G-code setting, e.g. "Machine start G-code".
+#, boost-format
+msgid "Reserved keywords found in %1%"
+msgstr "在 %1% 中偵測到保留的關鍵字"
msgid "Setting Overrides"
msgstr "參數覆蓋"
@@ -11750,18 +13071,21 @@ msgstr "建議噴嘴溫度"
msgid "Recommended nozzle temperature range of this filament. 0 means not set"
msgstr "該線材的建議噴嘴溫度範圍。0 表示未設定"
+# AI Translated
msgid "Flow ratio and Pressure Advance"
-msgstr "流量比與 Pressure Advance"
+msgstr "流量比例與 Pressure Advance"
+# AI Translated
msgid "Print chamber temperature"
-msgstr "列印裝置內部溫度"
+msgstr "腔體溫度"
+# AI Translated
msgid "Chamber temperature"
-msgstr "列印裝置內部溫度"
+msgstr "腔體溫度"
# AI Translated
msgid "Target chamber temperature, and the minimal chamber temperature at which printing should start"
-msgstr "目標倉室溫度,以及列印應開始時的最低倉室溫度"
+msgstr "目標腔體溫度,以及列印應開始時的最低腔體溫度"
# AI Translated
msgid "Target"
@@ -11777,35 +13101,43 @@ msgstr "列印溫度"
msgid "Nozzle temperature when printing"
msgstr "列印時的噴嘴溫度"
+# AI Translated
msgid "Bed temperature when the Cool Plate SuperTack is installed. A value of 0 means the filament does not support printing on the Cool Plate SuperTack."
-msgstr "使用低溫增穩列印板時,熱床設定溫度。其值為 0 ,表示該線材不適用於低溫增穩列印板"
+msgstr "安裝增穩低溫列印板時的熱床溫度。值為 0 表示該線材不支援在增穩低溫列印板上列印。"
msgid "Cool Plate"
msgstr "低溫列印板"
+# AI Translated
msgid "This is the bed temperature when the Cool Plate is installed. A value of 0 means the filament does not support printing on the Cool Plate."
-msgstr "使用低溫列印板時,熱床設定溫度其值為 0 ,表示該線材不適用於低溫列印板"
+msgstr "安裝低溫列印板時的熱床溫度。值為 0 表示該線材不支援在低溫列印板上列印。"
+# AI Translated
msgid "Textured Cool Plate"
-msgstr "低溫紋理列印板"
+msgstr "紋理低溫列印板"
+# AI Translated
msgid "This is the bed temperature when the Textured Cool Plate is installed. A value of 0 means the filament does not support printing on the Textured Cool Plate."
-msgstr "使用紋理低溫列印板時,熱床設定溫度其值為 0 ,表示該線材不適用於低溫紋理列印板"
+msgstr "安裝紋理低溫列印板時的熱床溫度。值為 0 表示該線材不支援在紋理低溫列印板上列印。"
+# AI Translated
msgid "This is the bed temperature when the engineering plate is installed. A value of 0 means the filament does not support printing on the Engineering Plate."
-msgstr "使用工程列印板時,熱床設定溫度其值為 0 ,表示該線材不適用於工程列印板"
+msgstr "安裝工程列印板時的熱床溫度。值為 0 表示該線材不支援在工程列印板上列印。"
msgid "Smooth PEI Plate / High Temp Plate"
msgstr "平滑 PEI 列印板 / 高溫列印板"
+# AI Translated
msgid "This is the bed temperature when the Smooth PEI Plate/High Temperature Plate is installed. A value of 0 means the filament does not support printing on the Smooth PEI Plate/High Temp Plate."
-msgstr "使用平滑 PEI 列印板 / 高溫列印板時,熱床設定溫度其值為 0 ,表示該線材不適用於平滑 PEI 列印板 / 高溫列印板"
+msgstr "安裝平滑 PEI 列印板/高溫列印板時的熱床溫度。值為 0 表示該線材不支援在平滑 PEI 列印板/高溫列印板上列印。"
+# AI Translated
msgid "This is the bed temperature when the Textured PEI Plate is installed. A value of 0 means the filament does not support printing on the Textured PEI Plate."
-msgstr "使用紋理 PEI 列印板時,熱床設定溫度其值為 0 ,表示該線材不適用於紋理 PEI 列印板"
+msgstr "安裝紋理 PEI 列印板時的熱床溫度。值為 0 表示該線材不支援在紋理 PEI 列印板上列印。"
+# AI Translated
msgid "Volumetric speed limitation"
-msgstr "體積流量速度限制"
+msgstr "體積流量限制"
msgid "Cooling for specific layer"
msgstr "特定層冷卻"
@@ -11818,16 +13150,18 @@ msgstr "最小風扇速度臨界值"
# AI Translated
msgid "The part cooling fan will run at the minimum fan speed when the estimated layer time is longer than the threshold value. When the layer time is shorter than the threshold, the fan speed will be interpolated between the minimum and maximum fan speed according to layer printing time."
-msgstr "當預計的層列印時間長於臨界值時,物件冷卻風扇將以最小風扇轉速運轉。當層時間短於臨界值時,風扇轉速將根據該層列印時間在最小和最大風扇轉速之間自動調整"
+msgstr "當預估的層列印時間長於臨界值時,物件冷卻風扇將以最小風扇轉速運轉。當層時間短於臨界值時,風扇轉速將根據層列印時間在最小與最大風扇轉速之間內插。"
msgid "Max fan speed threshold"
msgstr "最大風扇速度臨界值"
+# AI Translated
msgid "The part cooling fan will run at maximum speed when the estimated layer time is shorter than the threshold value."
-msgstr "當預計的層列印時間比設定值要小時,物件冷卻風扇轉速將達到最大值"
+msgstr "當預估的層列印時間短於臨界值時,物件冷卻風扇將以最大轉速運轉。"
+# AI Translated
msgid "Auxiliary part cooling fan"
-msgstr "輔助冷卻風扇"
+msgstr "輔助物件冷卻風扇"
msgid "Exhaust fan"
msgstr "排風扇"
@@ -11850,14 +13184,16 @@ msgstr "換料塔參數"
msgid "Multi Filament"
msgstr "多線材"
+# AI Translated
msgid "Tool change parameters with single extruder MM printers"
-msgstr "適用於單擠出機多材料列印裝置的工具切換參數"
+msgstr "單擠出機多線材列印裝置的換工具參數"
msgid "Set"
msgstr "設定"
+# AI Translated
msgid "Tool change parameters with multi extruder MM printers"
-msgstr "適用於多擠出機多材料列印裝置的工具切換參數"
+msgstr "多擠出機多線材列印裝置的換工具參數"
msgid "Dependencies"
msgstr "相依項目"
@@ -11865,22 +13201,34 @@ msgstr "相依項目"
msgid "Compatible printers"
msgstr "相容的列印裝置"
+# AI Translated
msgid "Compatible process profiles"
-msgstr "相容的切片設定"
+msgstr "相容的列印參數設定檔"
msgid "Printable space"
msgstr "可列印區域"
+# AI Translated
msgid "Select the network agent implementation for printer communication. Available agents are registered at startup."
-msgstr "選擇列印裝置通訊的網路代理實施。可用代理在啟動時註冊。"
+msgstr "選擇用於列印裝置通訊的網路代理程式實作。可用的代理程式會在啟動時註冊。"
+
+# AI Translated
+msgid "Belt printer"
+msgstr "輸送帶列印裝置"
+
+# AI Translated
+msgid "Machine frame transforms"
+msgstr "機器座標系變換"
#. TRN: The first argument is the parameter's name; the second argument is its value.
+#. TRN %1% is a parameter name, %2% its value.
#, boost-format
msgid "Invalid value provided for parameter %1%: %2%"
msgstr "參數 %1% 的值無效:%2%"
+# AI Translated
msgid "G-code flavor is switched"
-msgstr "G-code 格式已切換"
+msgstr "G-code 風格已切換"
msgid "Cooling Fan"
msgstr "冷卻風扇"
@@ -11909,8 +13257,9 @@ msgstr "列印裝置起始 G-code"
msgid "Machine end G-code"
msgstr "列印裝置結束 G-code"
+# AI Translated
msgid "Printing by object G-code"
-msgstr "按物件列印的 G-code"
+msgstr "逐件列印 G-code"
msgid "Before layer change G-code"
msgstr "換層前 G-code"
@@ -11918,11 +13267,13 @@ msgstr "換層前 G-code"
msgid "Layer change G-code"
msgstr "換層 G-code"
+# AI Translated
msgid "Timelapse G-code"
-msgstr "縮時錄影 G-code"
+msgstr "縮時攝影 G-code"
+# AI Translated
msgid "Clumping Detection G-code"
-msgstr "堵塞偵測 G-code"
+msgstr "結塊偵測 G-code"
msgid "Change filament G-code"
msgstr "線材更換 G-code"
@@ -11963,8 +13314,9 @@ msgstr "速度限制"
msgid "Acceleration limitation"
msgstr "加速度限制"
+# AI Translated
msgid "Jerk limitation"
-msgstr "抖動限制"
+msgstr "急衝速度限制"
msgid "Single extruder multi-material setup"
msgstr "單擠出機多線材設定"
@@ -11972,14 +13324,15 @@ msgstr "單擠出機多線材設定"
msgid "Number of extruders of the printer."
msgstr "列印裝置擠出機數量。"
+# AI Translated
msgid ""
"Single Extruder Multi Material is selected,\n"
"and all extruders must have the same diameter.\n"
"Do you want to change the diameter for all extruders to first extruder nozzle diameter value?"
msgstr ""
-"已選擇單噴頭多材料模式,\n"
-"所有噴頭的直徑必須相同。\n"
-"您是否要將所有噴頭的直徑更改為第一噴頭的噴嘴直徑值?"
+"已選擇「單擠出機多線材」,\n"
+"且所有擠出機的直徑必須相同。\n"
+"是否要將所有擠出機的直徑變更為第一個擠出機的噴嘴直徑?"
msgid "Nozzle diameter"
msgstr "噴嘴直徑"
@@ -11987,17 +13340,56 @@ msgstr "噴嘴直徑"
msgid "Wipe tower"
msgstr "換料塔"
+# AI Translated
+msgid "Belt purge tower"
+msgstr "輸送帶清理塔"
+
msgid "Single extruder multi-material parameters"
msgstr "單擠出機多線材參數"
+# AI Translated
+msgid "IDEX/IQEX Configuration"
+msgstr "IDEX/IQEX 設定"
+
+# AI Translated
+msgid "Pre-slice warnings"
+msgstr "切片前警告"
+
+# AI Translated
+# Needs human review: Uses 熱床 (as in the existing 'Bed Temperature' label 熱床溫度) instead of the glossary's 列印板 for Bed; confirm this is preferred in temperature contexts.
+msgid "Show a warning dialog before slicing if IDEX/IQEX parallel mode concerns are detected (bed temperature conflicts, filament type mismatches, multi-material conflicts). Can be suppressed from the dialog itself. Re-enable here if suppressed accidentally."
+msgstr "偵測到 IDEX/IQEX 並行模式疑慮(熱床溫度衝突、線材類型不符、多線材衝突)時,在切片前顯示警告對話框。可在對話框中選擇不再顯示;若不小心關閉,可在此處重新啟用。"
+
+# AI Translated
+msgid "Modes"
+msgstr "模式"
+
+# AI Translated
msgid "This is a single extruder multi-material printer, diameters of all extruders will be set to the new value. Do you want to proceed?"
-msgstr "這是一台單噴頭多材料列印機,所有噴頭的直徑將被設定為新的值。您要繼續嗎?"
+msgstr "這是單擠出機多線材列印裝置,所有擠出機的直徑都將設為新值。您要繼續嗎?"
msgid "Layer height limits"
msgstr "層高限制"
+# AI Translated
msgid "Z-Hop"
-msgstr "Z 軸抬升"
+msgstr "Z 抬升"
+
+# AI Translated
+msgid "Front-left"
+msgstr "左前"
+
+# AI Translated
+msgid "Front-right"
+msgstr "右前"
+
+# AI Translated
+msgid "Rear-left"
+msgstr "左後"
+
+# AI Translated
+msgid "Rear-right"
+msgstr "右後"
msgid ""
"The Retract before wipe option could be only 100% when using the Firmware Retraction mode.\n"
@@ -12020,25 +13412,40 @@ msgstr "使用修改的值"
msgid "Detached"
msgstr "分離的"
+# AI Translated
+#. TRN %1% is "N filament preset(s)", %2% is "N process preset(s)".
+#, boost-format
+msgid "%1% and %2% are attached to this printer. Those presets would be deleted if the printer is deleted."
+msgstr "此列印裝置含有 %1% 和 %2%。若刪除此列印裝置,這些預設將被刪除。"
+
+# AI Translated
#, c-format, boost-format
-msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
-msgstr "此列印裝置含有 %d 線材預設和 %d 列印參數預設。若刪除此列印裝置,這些預設將被刪除。"
+msgid "%d filament preset"
+msgid_plural "%d filament presets"
+msgstr[0] "%d 個線材預設"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%d process preset"
+msgid_plural "%d process presets"
+msgstr[0] "%d 個列印參數預設"
msgid "Presets inherited by other presets cannot be deleted!"
msgstr "被其他預設繼承的預設無法刪除!"
-msgid "The following presets inherit this preset."
-msgid_plural "The following preset inherits this preset."
+# AI Translated
+msgid "The following preset inherits this preset."
+msgid_plural "The following presets inherit this preset."
msgstr[0] "以下預設繼承了此預設。"
-#. TRN Remove/Delete
-#, boost-format
-msgid "%1% Preset"
-msgstr "%1% 預設"
+# AI Translated
+msgid "Delete Preset"
+msgstr "刪除預設"
+# AI Translated
msgid "The following preset will be deleted too:"
msgid_plural "The following presets will be deleted too:"
-msgstr[0] "以下預設將一起被刪除。"
+msgstr[0] "以下預設也將被刪除:"
msgid ""
"Are you sure to delete the selected preset?\n"
@@ -12047,9 +13454,9 @@ msgstr ""
"您確定要刪除所選預設嗎?\n"
"如果該預設對應的是列印裝置目前使用的線材,請重設該槽位的線材資訊。"
-#, boost-format
-msgid "Are you sure you want to %1% the selected preset?"
-msgstr "確認要 %1% 所選預設嗎?"
+# AI Translated
+msgid "Are you sure you want to delete the selected preset?"
+msgstr "確定要刪除所選預設嗎?"
msgid "Select printers"
msgstr "選擇列印裝置"
@@ -12103,9 +13510,39 @@ msgid "Don't warn again for this preset"
msgstr "不再為此預設顯示警告"
# AI Translated
-#, c-format, boost-format
-msgid "%s: %s"
-msgstr "%s:%s"
+# Needs human review: Short badge for the Standard nozzle flow type; check the Chinese name fits the badge width.
+#. TRN Short tag for the Standard nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "SF"
+msgstr "標準"
+
+# AI Translated
+# Needs human review: Short badge for the High Flow nozzle flow type; check the Chinese name fits the badge width.
+#. TRN Short tag for the High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "HF"
+msgstr "高流量"
+
+# AI Translated
+# Needs human review: Short badge for the TPU High Flow nozzle flow type; check the Chinese name fits the badge width.
+#. TRN Short tag for the TPU High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "TPU HF"
+msgstr "TPU 高流量"
+
+# AI Translated
+# Needs human review: Short badge for the E3D High Flow nozzle flow type; check the Chinese name fits the badge width.
+#. TRN Short tag for the E3D High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "E3D HF"
+msgstr "E3D 高流量"
+
+# AI Translated
+# Needs human review: Short badge for the Extra High Flow nozzle flow type; check the Chinese name fits the badge width.
+#. TRN Short tag for the Extra High Flow nozzle flow type.
+msgctxt "Nozzle flow type"
+msgid "XHF"
+msgstr "超高流量"
# AI Translated
msgid "No modifications need to be copied."
@@ -12137,8 +13574,9 @@ msgstr "列印參數設定"
msgid "unsaved changes"
msgstr "未儲存的更改"
+# AI Translated
msgid "Transfer or discard changes"
-msgstr "放棄或保留更改"
+msgstr "遷移或放棄變更"
msgid "Old Value"
msgstr "舊值"
@@ -12170,6 +13608,7 @@ msgstr ""
"捨棄在\n"
"「%2%」中所做的任何變更。"
+# AI Translated
#, boost-format
msgid ""
"All \"New Value\" settings modified in\n"
@@ -12178,9 +13617,9 @@ msgid ""
"\"%2%\"."
msgstr ""
"在\n"
-"\"%1%\"\n"
-"中修改的所有「新數值」設定,將會轉移到\n"
-"\"%2%\"。"
+"「%1%」\n"
+"中修改的所有「新值」設定都將遷移至\n"
+"「%2%」。"
#, boost-format
msgid ""
@@ -12195,11 +13634,13 @@ msgstr ""
msgid "Click the right mouse button to display the full text."
msgstr "點選滑鼠右鍵顯示全文。"
+# AI Translated
msgid "No changes will be saved."
-msgstr "所有的修改都不會被儲存"
+msgstr "所有修改都不會儲存。"
+# AI Translated
msgid "All changes will be discarded."
-msgstr "所有的修改都將被丟棄。"
+msgstr "所有修改都將捨棄。"
msgid "Save the selected options."
msgstr "儲存所選項目。"
@@ -12242,35 +13683,40 @@ msgstr "預設「%1%」與新的列印參數設定檔不相容,並包含以下
msgid "You have changed some settings of preset \"%1%\"."
msgstr "已更改預設「%1%」的一些設定。"
+# AI Translated
msgid ""
"\n"
"You can save or discard the preset values you have modified."
msgstr ""
"\n"
-"您可以儲存或放棄已修改的預設值。"
+"您可以儲存或放棄您在預設中修改的數值。"
+# AI Translated
msgid ""
"\n"
"You can save or discard the preset values you have modified, or choose to transfer the values you have modified to the new preset."
msgstr ""
"\n"
-"您可以儲存或放棄已修改的預設值,或選擇將修改的數值轉移到新的預設值。"
+"您可以儲存或放棄您在預設中修改的數值,或選擇將修改的數值遷移到新預設。"
+# AI Translated
msgid "You have previously modified your settings."
-msgstr "您之前已經對設定進行了修改。"
+msgstr "您先前已修改過設定。"
+# AI Translated
msgid ""
"\n"
"You can discard the preset values you have modified, or choose to transfer the modified values to the new project"
msgstr ""
"\n"
-"您可以放棄已修改的預設值,或選擇將修改的數值轉移到新專案中"
+"您可以放棄您在預設中修改的數值,或選擇將修改的數值遷移到新專案"
msgid "Extruder count"
msgstr "擠出機數量"
+# AI Translated
msgid "Capabilities"
-msgstr "能力"
+msgstr "功能"
msgid "Show all presets (including incompatible)"
msgstr "顯示所有預設(包括不相容的)"
@@ -12287,18 +13733,20 @@ msgstr "右側預設值"
msgid "You can only transfer to current active profile because it has been modified."
msgstr "因為目前的設定檔已被修改,您只能轉移到目前啟用的設定檔。"
+# AI Translated
msgid ""
"Transfer the selected options from left preset to the right.\n"
"Note: New modified presets will be selected in settings tabs after close this dialog."
msgstr ""
-"所選的選項從左側預設移至右側。\n"
-"注意:關閉此對話方塊後,修改後的預設將在設定頁面中自動選取。"
+"將所選選項從左側預設遷移至右側。\n"
+"注意:關閉此對話框後,設定分頁中將選取修改後的新預設。"
msgid "Transfer values from left to right"
msgstr "將數值從左邊轉移到右邊"
+# AI Translated
msgid "If enabled, this dialog can be used for transfer selected values from left to right preset."
-msgstr "如果啟用,則此視窗可用於將選定的數值從左邊轉移到右邊的預設值。"
+msgstr "啟用後,可使用此對話框將所選數值從左側預設遷移至右側預設。"
# AI Translated
msgid "One of the presets does not exist"
@@ -12306,7 +13754,13 @@ msgstr "其中一個預設不存在"
# AI Translated
msgid "Compared presets has different printer technology"
-msgstr "比較的預設具有不同的印表機技術"
+msgstr "比較的預設具有不同的列印裝置技術"
+
+# AI Translated
+#. TRN Header of a preset comparison: the two preset names.
+#, boost-format
+msgid "\"%1%\" vs \"%2%\""
+msgstr "「%1%」與「%2%」對比"
msgid "Add File"
msgstr "新增檔案"
@@ -12317,9 +13771,10 @@ msgstr "設定為封面"
msgid "Cover"
msgstr "封面"
+# AI Translated
#, boost-format
msgid "The name \"%1%\" already exists."
-msgstr "「%1%」已經存在。"
+msgstr "名稱「%1%」已經存在。"
msgid "Basic Info"
msgstr "基本資訊"
@@ -12333,11 +13788,28 @@ msgstr "材料清單"
msgid "Assembly Guide"
msgstr "組裝說明"
+# AI Translated
+msgid "Image files"
+msgstr "圖片檔案"
+
+# AI Translated
+msgid "TXT files"
+msgstr "TXT 檔案"
+
+# AI Translated
+msgid "EXCEL files"
+msgstr "EXCEL 檔案"
+
+# AI Translated
+msgid "PDF files"
+msgstr "PDF 檔案"
+
msgid "Author"
msgstr "作者"
+# AI Translated
msgid "Model Name"
-msgstr "模型名字"
+msgstr "模型名稱"
msgid "Description:"
msgstr "描述:"
@@ -12352,19 +13824,21 @@ msgstr "發現新版本"
msgid "Configuration update"
msgstr "設定檔更新"
+# AI Translated
msgid "A new configuration package is available. Do you want to install it?"
-msgstr "有新的設定檔可用,是否要安裝?"
+msgstr "有新的設定檔可用。要安裝嗎?"
msgid "the configuration package is incompatible with the current application."
msgstr "設定檔和目前的應用程式不相容。"
+# AI Translated
#, c-format, boost-format
msgid ""
"The configuration package is incompatible with the current application.\n"
"%s will update the configuration package to allow the application to start."
msgstr ""
"設定檔與目前的應用程式不相容。\n"
-"%s 將更新設定檔,否則應用程式將無法啟動"
+"%s 將更新設定檔,讓應用程式能夠啟動。"
#, c-format, boost-format
msgid "Exit %s"
@@ -12432,8 +13906,9 @@ msgstr ""
"校正噴嘴偏移以提升列印品質。\n"
"*自動模式:列印前檢查校正;若無必要則跳過。"
+# AI Translated
msgid "Use AMS"
-msgstr "使用AMS"
+msgstr "使用 AMS"
msgid "Tip"
msgstr "提示"
@@ -12456,8 +13931,9 @@ msgstr "同步後,此操作無法復原。"
msgid "After being synced, the project's filament presets and colors will be replaced with the mapped filament types and colors. This action cannot be undone."
msgstr "同步後,專案的線材預設和顏色將被替換為映射的線材類型和顏色。此操作無法復原。"
+# AI Translated
msgid "Are you sure to synchronize the filaments?"
-msgstr "您確認要同步線材嗎?"
+msgstr "您確定要同步線材嗎?"
msgid "Synchronize now"
msgstr "立即同步"
@@ -12471,8 +13947,9 @@ msgstr "將未使用的線材新增至線材清單。"
msgid "Only synchronize filament type and color, not including slot information."
msgstr "僅同步線材類型和顏色,不包含槽位資訊。"
+# AI Translated
msgid "Ext spool"
-msgstr "外部料軸"
+msgstr "外部料盤"
msgid "Please check whether the nozzle type of the device is the same as the preset nozzle type."
msgstr "請檢查裝置的噴嘴類型是否與預設的噴嘴類型相同。"
@@ -12484,8 +13961,9 @@ msgstr "儲存空間不可用或處於唯讀模式。"
msgid "The selected printer (%s) is incompatible with the chosen printer profile in the slicer (%s)."
msgstr "選定的列印裝置(%s)與切片軟體中選擇的列印裝置設定檔(%s)不相容。"
+# AI Translated
msgid "Timelapse is not supported because Print sequence is set to \"By object\"."
-msgstr "「逐件列印」模式下不支援縮時錄影。"
+msgstr "「列印順序」設為「逐件」時不支援縮時攝影。"
msgid "You selected external and AMS filament at the same time in an extruder, you will need manually change external filament."
msgstr "您在擠出機中同時選擇了外部線材和 AMS 線材,您需要手動更換外部線材。"
@@ -12513,15 +13991,15 @@ msgstr "確定"
msgid "Ramming customization"
msgstr "自訂尖端成型"
+# AI Translated
msgid ""
"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n"
"\n"
"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc."
msgstr ""
-"尖端成型是指在單擠出機多線材列印裝置中換色之前的快速抽插。\n"
-"其目的是使退出的線材末端正確成形,這樣就不會妨礙新線材的插入,並可以重新插入。\n"
-"這個階段很重要,不同的線材可能需要不同的擠出速度才能獲得良好的形狀。因此尖端成型過程中的擠壓率是需要可調整的。\n"
-"這是一個進階的設定,不正確的調整可能會導致堵塞、線材磨損等。"
+"尖端成型是指單擠出機多線材列印裝置在換工具前進行的快速擠出,其目的是使退出的線材末端形成適當的形狀,既不妨礙新線材插入,之後自身也能重新插入。這個階段很重要,不同材料可能需要不同的擠出速度才能形成良好的形狀,因此尖端成型過程中的擠出速率可以調整。\n"
+"\n"
+"這是專家級設定,調整不當很可能導致卡料、擠出機齒輪磨損線材等問題。"
#, boost-format
msgid "For constant flow rate, hold %1% while dragging."
@@ -12530,28 +14008,31 @@ msgstr "若要保持固定流速,拖曳時請按住 %1%。"
msgid "ms"
msgstr "毫秒"
+# AI Translated
msgid "Total ramming"
-msgstr "總擠出量"
-
-msgid "Volume"
-msgstr "體積"
+msgstr "尖端成型總量"
+# AI Translated
msgid "Ramming line"
-msgstr "擠出線"
+msgstr "尖端成型線條"
+# AI Translated
msgid "Orca would re-calculate your flushing volumes everytime the filaments color changed or filaments changed. You could disable the auto-calculate in Orca Slicer > Preferences"
-msgstr "每當線材顏色變更或線材變更時,Orca 都會重新計算您的沖洗體積。您可以在 Orca Slicer > 偏好設定中停用自動計算"
+msgstr "每當線材顏色或線材變更時,Orca 都會重新計算清理體積。您可以在「Orca Slicer > 偏好設定」中停用自動計算"
+# AI Translated
msgid "Flushing volume (mm³) for each filament pair."
-msgstr "在兩個線材間切換所需的廢料體積(mm³)"
+msgstr "每組線材之間的清理體積(mm³)。"
+# AI Translated
#, c-format, boost-format
msgid "Suggestion: Flushing Volume in range [%d, %d]"
-msgstr "建議:廢料體積量應設定在[ %d, %d ]範圍內"
+msgstr "建議:清理體積應在 [%d, %d] 範圍內"
+# AI Translated
#, c-format, boost-format
msgid "The multiplier should be in range [%.2f, %.2f]."
-msgstr "倍數的數值範圍是[%.2f, %.2f]"
+msgstr "倍數應在 [%.2f, %.2f] 範圍內。"
msgid "Re-calculate"
msgstr "重新計算"
@@ -12559,11 +14040,14 @@ msgstr "重新計算"
msgid "Multiplier"
msgstr "倍數"
+# AI Translated
msgid "Flushing volumes for filament change"
-msgstr "線材更換時產生的廢料體積"
+msgstr "換料清理體積"
-msgid "Please choose the filament color"
-msgstr "請選擇線材顏色"
+# AI Translated
+#. TRN Corner header of the flushing volume table: rows are the filament flushed from, columns the filament changed to.
+msgid "from/to"
+msgstr "從/至"
msgid "Cloud agent is not available. Please restart OrcaSlicer and try again."
msgstr "雲端代理無法使用。請重新啟動 OrcaSlicer 後再試一次。"
@@ -12584,6 +14068,146 @@ msgstr "登入失敗。請再試一次。"
msgid "parse json failed"
msgstr "解析 json 失敗"
+# AI Translated
+msgid "Loading…"
+msgstr "載入中…"
+
+# AI Translated
+#. TRN Sidebar entry of the printer selection page for the group of custom (user-defined) printers.
+msgctxt "Printer vendor"
+msgid "Custom"
+msgstr "自訂"
+
+msgid "Welcome to Orca Slicer"
+msgstr "歡迎使用 Orca Slicer"
+
+# AI Translated
+msgid "Orca Slicer will be set up in several steps. Let's start!"
+msgstr "Orca Slicer 將透過幾個步驟完成設定。讓我們開始吧!"
+
+msgid "Get Started"
+msgstr "開始"
+
+msgid "Please select your login region"
+msgstr "請選擇登入區域"
+
+msgid "Finish"
+msgstr "完成"
+
+msgid "Printer Selection"
+msgstr "選擇列印裝置"
+
+# AI Translated
+msgid "Vendors"
+msgstr "廠牌"
+
+# AI Translated
+msgid "Custom Printer"
+msgstr "自訂列印裝置"
+
+msgid "Create"
+msgstr "建立"
+
+# AI Translated
+msgid "Check for new printers"
+msgstr "檢查新列印裝置"
+
+msgid "At least one printer must be selected."
+msgstr "至少需要選擇一款列印裝置。"
+
+# AI Translated
+msgid "New printers found"
+msgstr "找到新列印裝置"
+
+# AI Translated
+#, c-format, boost-format
+msgid "New printer vendors installed: %s"
+msgstr "已安裝新的列印裝置廠牌:%s"
+
+# AI Translated
+msgid "New printer vendors were found, but installation was cancelled."
+msgstr "找到新的列印裝置廠牌,但已取消安裝。"
+
+# AI Translated
+msgid "No new printers found."
+msgstr "未找到新列印裝置。"
+
+msgid "Filament Selection"
+msgstr "選擇線材"
+
+# AI Translated
+msgid "System Filaments"
+msgstr "系統線材"
+
+# AI Translated
+msgid "Custom Filaments"
+msgstr "自訂線材"
+
+# AI Translated
+msgid "Create New"
+msgstr "新增"
+
+msgid "Filament type"
+msgstr "線材類型"
+
+msgid "Vendor"
+msgstr "廠牌"
+
+# AI Translated
+msgid "No items"
+msgstr "無項目"
+
+# AI Translated
+msgid "Filter items"
+msgstr "篩選項目"
+
+# AI Translated
+msgid "Checked"
+msgstr "已勾選"
+
+# AI Translated
+msgid "Unchecked"
+msgstr "未勾選"
+
+# AI Translated
+msgid "Select filtered"
+msgstr "選取篩選項"
+
+msgid "Clear all"
+msgstr "清空"
+
+msgid "At least one filament must be selected."
+msgstr "至少要選擇一款線材。"
+
+# AI Translated
+msgid "Do you want to use the default filament?"
+msgstr "您要使用預設線材嗎?"
+
+msgid "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option."
+msgstr "這會停用所有雲端功能,包括 Orca Cloud 設定檔同步。偏好完全離線工作的使用者可以啟用此選項。"
+
+msgid "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud."
+msgstr "注意:啟用無痕模式時,您的使用者設定檔將不會備份到 Orca Cloud。"
+
+# AI Translated
+msgid "Enable Stealth Mode."
+msgstr "啟用無痕模式。"
+
+# AI Translated
+msgid "Proprietary Plugins"
+msgstr "專有外掛"
+
+# AI Translated
+msgid "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers."
+msgstr "部分列印裝置廠牌需要專有外掛才能與其列印裝置通訊。若您使用此類列印裝置,請選擇對應的外掛。"
+
+# AI Translated
+msgid "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk."
+msgstr "請注意,這些外掛並非由 OrcaSlicer 開發或維護。使用時請自行斟酌並自負風險。"
+
+msgid "Install Bambu Network plug-in"
+msgstr "安裝 Bambu 網路外掛"
+
msgid "[Action Required] "
msgstr "[需要操作] "
@@ -12604,11 +14228,13 @@ msgstr "設定檔在之前的設定引導過程中已改變"
msgid "Configuration package changed"
msgstr "設定檔已改變"
+# AI Translated
msgid "Pan View"
-msgstr "移動視角"
+msgstr "平移視圖"
+# AI Translated
msgid "Rotate View"
-msgstr "旋轉視角"
+msgstr "旋轉視圖"
# AI Translated
#, c-format, boost-format
@@ -12649,20 +14275,21 @@ msgstr "切換到下一個主分頁"
msgid "Available while the 3D view on the Prepare tab has focus."
msgstr "當「準備」分頁的 3D 視圖取得焦點時可用。"
+# AI Translated
msgid "Select a part"
-msgstr "選擇單一零件"
-
-msgid "Select multiple objects"
-msgstr "選擇多個物件"
+msgstr "選取零件"
+# AI Translated
msgid "Select objects by rectangle"
-msgstr "框選多個零件"
+msgstr "框選物件"
+# AI Translated
msgid "Keyboard 1-9: set filament for object/part"
-msgstr "按鍵 1~9:設定物件/零件的線材"
+msgstr "按鍵 1-9:設定物件/零件的線材"
+# AI Translated
msgid "Movement step set to 1mm"
-msgstr "沿 X、Y 軸以 1mm 為單位步進移動"
+msgstr "移動步距設為 1 mm"
msgid "Movement in camera space"
msgstr "沿相機視角移動物件"
@@ -12675,16 +14302,17 @@ msgstr "滑鼠中鍵"
msgid "Right mouse"
msgstr "滑鼠右鍵"
+# AI Translated
msgid "Zoom View"
-msgstr "縮放視角"
+msgstr "縮放視圖"
# AI Translated
msgid "Painting"
-msgstr "塗刷"
+msgstr "繪製"
# AI Translated
msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting."
-msgstr "當塗刷工具開啟時可用:支撐、接縫、絨毛表面或顏色塗刷。"
+msgstr "當繪製工具開啟時可用:支撐、接縫、絨毛表面或顏色繪製。"
msgid "Move: press to snap by 1mm"
msgstr "移動:以 1mm 為單位步進移動"
@@ -12707,25 +14335,28 @@ msgctxt "Keyboard Shortcut"
msgid "Space"
msgstr "Space"
+# AI Translated
msgid "Select the object/part and press space to change the name"
-msgstr "選取物件、零件,按空格可修改名稱"
+msgstr "選取物件/零件後按空白鍵可修改名稱"
msgid "Mouse click"
msgstr "滑鼠點選"
+# AI Translated
msgid "Select the object/part and mouse click to change the name"
-msgstr "選取物件或零件,雙擊可修改名稱"
+msgstr "選取物件/零件後按一下滑鼠可修改名稱"
# AI Translated
msgid "Available while the 3D view on the Preview tab has focus."
msgstr "當「預覽」分頁的 3D 視圖取得焦點時可用。"
+# AI Translated
msgid "Move slider 5x faster"
-msgstr "5 倍速移動滑動條"
+msgstr "以 5 倍速移動滑桿"
# AI Translated
msgid "Scroll slider 5x faster"
-msgstr "以 5 倍速捲動滑動條"
+msgstr "以 5 倍速捲動滑桿"
# AI Translated
msgid "Not customizable"
@@ -12798,9 +14429,10 @@ msgstr "按一下「確定」立即更新網路外掛。若有檔案正在使用
msgid "A new Network plug-in is available. Do you want to install it?"
msgstr "有可用的新網路外掛。您要安裝它嗎?"
+# AI Translated
#, c-format, boost-format
msgid "A new Network plug-in (%s) is available. Do you want to install it?"
-msgstr "新版的網路外掛程式(%s)可用,是否要安裝?"
+msgstr "有新的網路外掛程式(%s)可用。要安裝嗎?"
msgid "New version of Orca Slicer"
msgstr "新版本的 Orca Slicer"
@@ -12830,14 +14462,16 @@ msgstr "透過 IP 和存取代碼連線列印裝置"
msgid "Try the following methods to update the connection parameters and reconnect to the printer."
msgstr "請嘗試以下方法更新連線參數並重新連線列印裝置。"
+# AI Translated
msgid "1. Please confirm Orca Slicer and your printer are in the same LAN."
-msgstr "1. 請確認 Orca Slicer 與您的列印裝置在同一區域網路內。"
+msgstr "1. 請確認 Orca Slicer 與您的列印裝置位於同一個 LAN 內。"
msgid "2. If the IP and Access Code below are different from the actual values on your printer, please correct them."
msgstr "2. 若下方的 IP 和存取代碼與列印裝置上的實際值不同,請修正它們。"
+# AI Translated
msgid "3. Please obtain the device SN from the printer side; it is usually found in the device information on the printer screen."
-msgstr "3. 請從列印裝置端獲取裝置序號;通常可在列印裝置螢幕的裝置資訊中找到。"
+msgstr "3. 請從列印裝置端取得裝置序號;通常可在列印裝置螢幕上的裝置資訊中找到。"
msgid "IP"
msgstr "IP"
@@ -12845,17 +14479,20 @@ msgstr "IP"
msgid "Access Code"
msgstr "存取代碼"
+# AI Translated
msgid "HTTPS CA File"
-msgstr "HTTPS CA憑證 檔"
+msgstr "HTTPS CA 憑證檔"
msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*"
msgstr "憑證檔(*.crt, *.pem)|*.crt;*.pem|所有檔案|*.*"
+# AI Translated
msgid "Open CA certificate file"
-msgstr "開啟 CA憑證檔"
+msgstr "開啟 CA 憑證檔"
+# AI Translated
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
-msgstr "HTTPS CA 憑證檔案是可選的。 僅當您使用具有自行簽證的 HTTPS 時才需要它。"
+msgstr "HTTPS CA 憑證檔為選用項目,僅在您透過 HTTPS 使用自我簽署憑證時才需要。"
# AI Translated
msgid "This system uses HTTPS certificates from the system Certificate Store or Keychain. To use a custom CA file, import it there."
@@ -12867,8 +14504,9 @@ msgstr "列印裝置型號"
msgid "Printer name"
msgstr "列印裝置名稱"
+# AI Translated
msgid "Where to find your printer's IP and Access Code?"
-msgstr "在哪裡可以找到列印裝置的 IP 和存取代碼?"
+msgstr "在哪裡可以找到列印裝置的 IP 和存取代碼?"
# AI Translated
msgid "How to trouble shooting"
@@ -12886,20 +14524,24 @@ msgstr "IP 和存取代碼已驗證!可以關閉視窗"
msgid "connecting..."
msgstr "連線中..."
+# AI Translated
msgid "Failed to connect to printer."
-msgstr "無法連線到列印裝置。"
+msgstr "無法連線至列印裝置。"
+# AI Translated
msgid "Failed to publish login request."
-msgstr "登入請求傳送失敗。"
+msgstr "無法發送登入請求。"
msgid "The printer has already been bound."
msgstr "此列印裝置已綁定。"
+# AI Translated
msgid "The printer mode is incorrect, please switch to LAN Only."
-msgstr "列印裝置模式錯誤,請切換為 LAN Only 模式。"
+msgstr "列印裝置模式不正確,請切換為僅 LAN 模式。"
+# AI Translated
msgid "Connecting to printer... The dialog will close later"
-msgstr "正在連線列印裝置… 對話框將在稍後自動關閉"
+msgstr "正在連線至列印裝置...對話框稍後將會關閉"
msgid "Connection failed, please double check IP and Access Code"
msgstr "連線失敗,請再次檢查 IP 和存取代碼"
@@ -12917,8 +14559,9 @@ msgstr "連線失敗!請參考 wiki 頁面。"
msgid "sending failed"
msgstr "傳送失敗"
+# AI Translated
msgid "Failed to send. Click Retry to attempt sending again. If retrying does not work, please check the reason."
-msgstr "傳送失敗。點選重試以再次嘗試傳送。若重試無效,請檢查原因。"
+msgstr "無法傳送。按一下「重試」再次嘗試傳送。若重試無效,請檢查原因。"
msgid "reconnect"
msgstr "重新連線"
@@ -12947,8 +14590,9 @@ msgid "Auto Fire Extinguishing System"
msgstr "自動滅火系統"
# AI Translated
+# Needs human review: Bambu accessory name; 線材路徑切換器 follows BambuStudio zh_TW. Confirm Bambu Lab's Taiwan name (used in about ten device messages).
msgid "Filament Track Switch"
-msgstr "Filament Track Switch"
+msgstr "線材路徑切換器"
msgid "Beta"
msgstr "Beta"
@@ -12968,41 +14612,39 @@ msgstr "更新失敗"
msgid "Update successful"
msgstr "更新成功"
+# AI Translated
msgid "Hotends on Rack"
-msgstr "熱端&掛架"
+msgstr "掛架上的熱端"
+# AI Translated
msgid "Are you sure you want to update? This will take about 10 minutes. Do not turn off the power while the printer is updating."
-msgstr "確認要更新嗎?更新需要大約10分鐘,更新期間請勿關閉電源。"
+msgstr "確定要更新嗎?更新大約需要 10 分鐘,列印裝置更新期間請勿關閉電源。"
+# AI Translated
msgid "An important update was detected and needs to be run before printing can continue. Do you want to update now? You can also update later from 'Update firmware'."
-msgstr "偵測到重要更新,必須執行後才能繼續列印。您要現在更新嗎?或者稍後可在『升級韌體』中完成更新。"
+msgstr "偵測到重要更新,必須執行後才能繼續列印。要立即更新嗎?您也可以稍後在「更新韌體」中更新。"
+# AI Translated
msgid "The firmware version is abnormal. Repairing and updating are required before printing. Do you want to update now? You can also update later on the printer or update next time you start Orca Slicer."
-msgstr "韌體版本異常,必須修復並更新後才能列印。您要現在更新嗎?也可以稍後在列印裝置上更新,或在下次啟動 Orca 時進行更新。"
+msgstr "韌體版本異常,必須修復並更新後才能列印。要立即更新嗎?您也可以稍後在列印裝置上更新,或在下次啟動 Orca Slicer 時更新。"
msgid "Extension Board"
msgstr "擴充板"
-#, boost-format
-msgid "Split into %1% parts"
-msgstr "分割成 %1% 個零件"
-
msgid "Repair finished"
msgstr "修復已完成"
-msgid "Repair failed"
-msgstr "修復失敗"
-
-msgid "Repair canceled"
-msgstr "修復被取消"
-
+# AI Translated
#, boost-format
msgid "Copying of file %1% to %2% failed: %3%"
-msgstr "從 %1% 複製檔案到 %2% 失敗:%3%"
+msgstr "無法將檔案 %1% 複製到 %2%:%3%"
# AI Translated
-msgid "Downloading new vendor profile(s): "
-msgstr "正在下載新的廠牌設定檔: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Downloading new vendor profile: %1%..."
+msgid_plural "Downloading new vendor profiles: %1%..."
+msgstr[0] "正在下載新的廠牌設定檔:%1%..."
# AI Translated
#, boost-format
@@ -13010,40 +14652,108 @@ msgid "Configuration package: %1% updated to %2%"
msgstr "設定檔:%1% 已更新到 %2%"
# AI Translated
-msgid "Failed to download vendor profile(s): "
-msgstr "下載廠牌設定檔失敗: "
+#. TRN %1% is a comma-separated list of vendor names.
+#, boost-format
+msgid "Failed to download vendor profile: %1%"
+msgid_plural "Failed to download vendor profiles: %1%"
+msgstr[0] "無法下載廠牌設定檔:%1%"
+# AI Translated
msgid "Please check any unsaved changes before updating the configuration."
-msgstr "在設定更新之前需要檢查未儲存的設定變更。"
+msgstr "更新設定檔前,請檢查所有未儲存的變更。"
msgid "Open G-code file:"
msgstr "開啟 G-code 檔案:"
-msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
-msgstr "模型出現空層無法列印。請切掉底部或開啟支撐。"
+# AI Translated
+msgid "Wipe tower generation failed, possibly due to empty first layer."
+msgstr "換料塔產生失敗,可能是因為首層為空。"
+# AI Translated
+msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports."
+msgstr "有物件的首層為空,無法列印。請切除底部或啟用支撐。"
+
+# AI Translated
#, boost-format
msgid "The object has empty layers between %1% and %2% and can’t be printed."
-msgstr "模型在 %1% 和 %2% 之間出現空層,無法列印。"
+msgstr "物件在 %1% 和 %2% 之間有空層,無法列印。"
+# AI Translated
#, boost-format
msgid "Object: %1%"
-msgstr "模型:%1%"
+msgstr "物件:%1%"
+# AI Translated
msgid "Parts of the object at these heights may be too thin or the object may have a faulty mesh."
-msgstr "部分模型在這些高度可能過薄,或者模型存在缺陷"
+msgstr "物件在這些高度的部分可能過薄,或物件的網格有缺陷。"
+# AI Translated
msgid "Process change extrusion role G-code"
-msgstr "列印參數擠出模式變更 G-code"
+msgstr "列印參數擠出類型變更 G-code"
+# AI Translated
msgid "Filament change extrusion role G-code"
-msgstr "線材變更擠出模式 G-code"
+msgstr "線材變更擠出類型 G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Cannot open the file for writing."
+msgstr ""
+"G-code 匯出到 %1% 失敗。\n"
+"無法開啟檔案進行寫入。"
+
+# AI Translated
+#. TRN %1% is a folder path.
+#, boost-format
+msgid "The folder %1% does not exist."
+msgstr "資料夾 %1% 不存在。"
+
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid ""
+"G-code export to %1% failed.\n"
+"Is the disk full?"
+msgstr ""
+"G-code 匯出到 %1% 失敗。\n"
+"硬碟是否已滿?"
+
+# AI Translated
+#. TRN %1% is the temporary file path, %2% the output file path, %3% the system error message.
+#, boost-format
+msgid ""
+"Failed to rename the output G-code file from %1% to %2%.\n"
+"Error: %3%\n"
+"Is %1% locked?"
+msgstr ""
+"無法將輸出的 G-code 檔案從 %1% 重新命名為 %2%。\n"
+"錯誤:%3%\n"
+"%1% 是否被鎖定?"
+
+# AI Translated
msgid "No object can be printed. It may be too small."
-msgstr "沒有可列印的物件。可能是因為尺寸過小"
+msgstr "沒有可列印的物件,可能是尺寸過小。"
+# AI Translated
+#, boost-format
+msgid "The IDEX/IQEX mode \"%1%\" has no tools assigned on the selected printer. Printing in Primary mode instead. Assign the mode's tools in Printer Settings, or pick another mode from the plate's IDEX/IQEX button."
+msgstr "IDEX/IQEX 模式「%1%」在所選列印裝置上未指派任何工具頭,將改以主模式列印。請在「列印裝置設定」中指派此模式的工具頭,或從列印板的 IDEX/IQEX 按鈕選擇其他模式。"
+
+# AI Translated
+#, boost-format
+msgid "This plate is set to the IDEX/IQEX mode \"%1%\", which the selected printer does not define. Printing in Primary mode instead. Pick a mode from the plate's IDEX/IQEX button, or restore the mode in Printer Settings."
+msgstr "此列印板設定為 IDEX/IQEX 模式「%1%」,但所選列印裝置未定義此模式,將改以主模式列印。請從列印板的 IDEX/IQEX 按鈕選擇模式,或在「列印裝置設定」中還原此模式。"
+
+# AI Translated
+msgid "Invalid thumbnails value:"
+msgstr "縮圖值無效:"
+
+# AI Translated
msgid "Your print is very close to the priming regions. Make sure there is no collision."
-msgstr "您的列印區域非常接近準備區域,請確認不會發生碰撞。"
+msgstr "您的列印物件非常接近預擠出區域,請確認不會發生碰撞。"
msgid ""
"Failed to generate G-code for invalid custom G-code.\n"
@@ -13059,21 +14769,24 @@ msgstr "請檢查自訂 G-code,或者使用預設的。"
msgid "Generating G-code: layer %1%"
msgstr "正在產生 G-code:第 %1% 層"
+# AI Translated
msgid "Flush volumes matrix do not match to the correct size!"
-msgstr "沖洗體積矩陣與正確尺寸不符!"
+msgstr "清理體積矩陣的尺寸不正確!"
msgid "set_accel_and_jerk() is only supported by Klipper"
msgstr "set_accel_and_jerk() 僅 Klipper 支援"
+# AI Translated
msgid ""
"Input shaping is not supported by Marlin < 2.1.2.\n"
"Check your firmware version and update your G-code flavor to ´Marlin 2´."
msgstr ""
"Marlin < 2.1.2 不支援輸入整形。\n"
-"請檢查您的韌體版本,並將 G-code 風格更新為「Marlin 2」"
+"請檢查您的韌體版本,並將 G-code 風格更新為「Marlin 2」。"
+# AI Translated
msgid "Input shaping is only supported by Klipper, RepRapFirmware and Marlin 2."
-msgstr "輸入整形僅受 Klipper、RepRapFirmware 和 Marlin 2 支援"
+msgstr "僅 Klipper、RepRapFirmware 和 Marlin 2 支援輸入整形。"
# AI Translated
#, boost-format
@@ -13085,6 +14798,10 @@ msgstr "分組錯誤:%1% 無法放入左噴嘴"
msgid "Grouping error: %1% cannot be placed in the right nozzle"
msgstr "分組錯誤:%1% 無法放入右噴嘴"
+# AI Translated
+msgid "No valid nozzle found. Please check nozzle count."
+msgstr "找不到有效的噴嘴,請檢查噴嘴數量。"
+
# AI Translated
msgid "Group error in manual mode. Please check nozzle count or regroup."
msgstr "手動模式下分組錯誤。請檢查噴嘴數量或重新分組。"
@@ -13097,30 +14814,82 @@ msgstr "部分交點處理失敗(%1%)"
# AI Translated
#, boost-format
msgid "multiple intersections with a perimeter, only one was used (%1%)"
-msgstr "與外牆有多個交點,僅使用了其中一個(%1%)"
+msgstr "與牆有多個交點,僅使用了其中一個(%1%)"
# AI Translated
#, boost-format
msgid "a perimeter is fully inside a modifier, the modifier was not applied to it (%1%)"
-msgstr "某道外牆完全位於修改器內部,修改器未套用於其上(%1%)"
+msgstr "某道牆完全位於修改器內部,修改器未套用於其上(%1%)"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" covers an entire perimeter"
+msgstr "「%3%」的%1%修改器「%2%」覆蓋整道牆"
+
+# AI Translated
+#. TRN: %1% is the modifier type "Seam Blocked" as in the menu, %2% the modifier name, %3% the object name, %4% the number of modifiers.
+#, boost-format
+msgid "%1% modifier \"%2%\" of \"%3%\" (%4% in total) covers an entire perimeter"
+msgstr "「%3%」的%1%修改器「%2%」(共 %4% 個)覆蓋整道牆"
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" had no effect on the seam (it might not reach the centerline of the printed perimeter)"
-msgstr "「%2%」的修改器「%1%」對接縫沒有作用(可能未觸及所列印外牆的中心線)"
+msgstr "「%2%」的修改器「%1%」對接縫沒有作用(可能未觸及所列印牆的中心線)"
# AI Translated
#, boost-format
msgid "modifier \"%1%\" of \"%2%\" (%3% in total) had no effect on the seam (it might not reach the centerline of the printed perimeter)"
-msgstr "「%2%」的修改器「%1%」(共 %3% 個)對接縫沒有作用(可能未觸及所列印外牆的中心線)"
+msgstr "「%2%」的修改器「%1%」(共 %3% 個)對接縫沒有作用(可能未觸及所列印牆的中心線)"
# AI Translated
msgid "Seam placement may differ from expected."
msgstr "接縫位置可能與預期不同。"
+# AI Translated
+#, boost-format
+msgid "Failed to write the G-code statistics to %1%."
+msgstr "無法將 G-code 統計資料寫入 %1%。"
+
msgid "Internal Bridge"
msgstr "內部橋接"
+# AI Translated
+msgid "Flow::spacing() produced negative spacing. Did you set some extrusion width too small?"
+msgstr "Flow::spacing() 產生了負間距,是否有擠出寬度設得太小?"
+
+# AI Translated
+msgid "Flow::mm3_per_mm() produced negative flow. Did you set some extrusion width too small?"
+msgstr "Flow::mm3_per_mm() 產生了負流量,是否有擠出寬度設得太小?"
+
+# AI Translated
+#. TRN %1% and %2% are names of settings.
+#, boost-format
+msgid "Failed to calculate line width of %1%. Cannot get value of \"%2%\"."
+msgstr "計算 %1% 的線寬失敗。無法取得「%2%」的值。"
+
+# AI Translated
+msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
+msgstr "提供給 Flow::with_spacing() 的間距無效,請檢查層高和擠出寬度。"
+
+# AI Translated
+#, boost-format
+msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible."
+msgstr "所選的 3mf 檔案是以較新版本的 %1% 儲存的,無法相容。"
+
+# AI Translated
+msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "所選的 3MF 包含以較新版本 PrusaSlicer 繪製 FDM 支撐的物件,無法相容。"
+
+# AI Translated
+msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "所選的 3MF 包含以較新版本 PrusaSlicer 繪製接縫的物件,無法相容。"
+
+# AI Translated
+msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible."
+msgstr "所選的 3MF 包含以較新版本 PrusaSlicer 繪製多材料的物件,無法相容。"
+
msgid "undefined error"
msgstr "未定義的錯誤"
@@ -13139,20 +14908,24 @@ msgstr "不支援的加密方式"
msgid "unsupported feature"
msgstr "不支援的功能"
+# AI Translated
msgid "failed finding central directory"
-msgstr "找不到主目錄"
+msgstr "找不到中央目錄"
+# AI Translated
msgid "not a ZIP archive"
-msgstr "不是一個 zip 壓縮檔"
+msgstr "不是 ZIP 壓縮檔"
msgid "invalid header or corrupted"
msgstr "無效檔案頭或檔案已損壞"
+# AI Translated
msgid "Saving to RAID is not supported."
-msgstr "不支援多硬碟儲存"
+msgstr "不支援儲存至 RAID。"
+# AI Translated
msgid "decompression failed"
-msgstr "解壓縮失敗或存檔已損壞"
+msgstr "解壓縮失敗"
msgid "compression failed"
msgstr "壓縮失敗"
@@ -13163,8 +14936,9 @@ msgstr "意外的解壓縮大小"
msgid "CRC check failed"
msgstr "CRC 檢查失敗"
+# AI Translated
msgid "unsupported central directory size"
-msgstr "不支援的主目錄容量"
+msgstr "不支援的中央目錄大小"
msgid "allocation failed"
msgstr "配置記憶體失敗"
@@ -13187,8 +14961,9 @@ msgstr "檔案關閉失敗"
msgid "file seek failed"
msgstr "檔案隨機存取失敗"
+# AI Translated
msgid "file stat failed"
-msgstr "檔案統計資訊失敗"
+msgstr "無法取得檔案資訊"
msgid "invalid parameter"
msgstr "無效參數"
@@ -13214,6 +14989,56 @@ msgstr "驗證失敗"
msgid "write callback failed"
msgstr "寫入回呼失敗"
+# AI Translated
+msgid "unknown error"
+msgstr "未知錯誤"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require each filament to have its own dedicated physical extruder. Two or more of the active filaments are routed to the same physical head via the printer's physical extruder map (an MMU/AFC manifold), which the slaved gantry cannot follow."
+msgstr "在 IDEX/IQEX 並行模式下進行多色列印時,每種線材都必須有專屬的實體擠出機。目前有兩種以上使用中的線材經由列印裝置的實體擠出機映射(MMU/AFC 匯流器)送入同一個實體工具頭,從動龍門無法跟隨這種情況。"
+
+# AI Translated
+msgid "The active IDEX/IQEX mode does not define a primary tool, so multi-color printing cannot be scheduled. Open the printer settings IDEX/IQEX Modes editor and assign a Primary role to one tool."
+msgstr "目前的 IDEX/IQEX 模式未定義主工具頭,因此無法安排多色列印。請開啟列印裝置設定中的 IDEX/IQEX 模式編輯器,並將主(Primary)角色指派給其中一個工具頭。"
+
+# AI Translated
+msgid "Multi-color in this mode isn't a parallel-print scenario — all of the active tools sit on a single gantry, so there's no second gantry being copied or mirrored to. Switch the plate to Primary mode for multi-color printing on a single gantry, or define an IDEX/IQEX mode that includes tools on a second gantry."
+msgstr "此模式下的多色列印並不屬於並行列印:所有使用中的工具頭都位於同一個龍門上,沒有第二個龍門可供複製或鏡像。若要在單一龍門上進行多色列印,請將列印板切換為主模式;或定義一個包含第二個龍門上工具頭的 IDEX/IQEX 模式。"
+
+# AI Translated
+msgid "Multi-color prints in IDEX/IQEX parallel modes require a Span tool on the primary's gantry — without one, the mode doesn't declare a within-gantry multicolor partner. Either reduce the print to a single filament, switch to Primary mode, or open the printer settings IDEX/IQEX Modes editor and mark a tool on the primary's gantry as Span."
+msgstr "在 IDEX/IQEX 並行模式下進行多色列印時,主工具頭所在的龍門上必須有一個 Span 工具頭;否則此模式未宣告同一龍門內的多色搭檔。請將列印減少為單一線材、切換至主模式,或開啟列印裝置設定中的 IDEX/IQEX 模式編輯器,將主工具頭所在龍門上的一個工具頭標記為 Span。"
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "在此 Span 模式下,只有 %1% 會列印顏色,但線材 %2% 未分配給任何工具。請使用分配給 %1% 的線材,或將此列印板切換為主模式。"
+
+# AI Translated
+#. TRN %1% is a list of tools such as "T0/T1", %2% a filament number, %3% a tool number.
+#, boost-format
+msgid "In this Span mode, colors are printed only by %1%, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+msgstr "在此 Span 模式下,只有 %1% 會列印顏色,但線材 %2% 被分配給 T%3%。請使用分配給 %1% 的線材,或將此列印板切換為主模式。"
+
+# AI Translated
+#, boost-format
+msgid ""
+"The selected preset cannot be loaded: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"無法載入所選預設:%1%\n"
+"\t原因:%2%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading the preset file: %1%\n"
+"\tReason: %2%"
+msgstr ""
+"載入預設檔案失敗:%1%\n"
+"\t原因:%2%"
+
#, boost-format
msgid "%1% is too close to exclusion area. There may be collisions when printing."
msgstr "%1% 離淨空區域太近,可能會發生碰撞。"
@@ -13230,27 +15055,34 @@ msgstr "%1% 太高,會發生碰撞。"
msgid "The relative position of the model and the prime tower does not meet the requirements of the \"No sparse layers\" feature. Please adjust their relative positions, lower the model height, or turn off \"No sparse layers\"."
msgstr "模型與換料塔的相對位置不符合「取消稀疏層」功能的需求。請調整兩者的相對位置、降低模型高度,或關閉「取消稀疏層」。"
-msgid " is too close to exclusion area, there may be collisions when printing."
-msgstr "離淨空區域太近,列印時可能會發生碰撞。"
-
-msgid " is too close to clumping detection area, there may be collisions when printing."
-msgstr "離堵塞偵測區域太近,列印時可能會發生碰撞。"
-
-msgid "Prime Tower"
-msgstr "換料塔"
-
-msgid " is too close to others, and collisions may be caused.\n"
-msgstr "離其它物件太近,可能會發生碰撞。\n"
-
-msgid " is too close to an exclusion area, and collisions will be caused.\n"
-msgstr "離淨空區域太近,會發生碰撞。\n"
-
-msgid " is too close to clumping detection area, and collisions will be caused.\n"
-msgstr "離堵塞偵測區域太近,會發生碰撞。\n"
+# AI Translated
+#, boost-format
+msgid "%1% is too close to the clumping detection area. There may be collisions when printing."
+msgstr "%1% 離結塊偵測區域太近,列印時可能會發生碰撞。"
# AI Translated
-msgid " is partially outside the printable area, and it cannot be printed.\n"
-msgstr "有部分超出可列印區域,無法列印。\n"
+msgid "Prime tower is too close to others, and collisions may be caused.\n"
+msgstr "換料塔離其它物件太近,可能會發生碰撞。\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area, and collisions will be caused.\n"
+msgstr "換料塔離淨空區域太近,會發生碰撞。\n"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area, and collisions will be caused.\n"
+msgstr "換料塔離結塊偵測區域太近,會發生碰撞。\n"
+
+# AI Translated
+msgid "Prime tower is too close to an exclusion area. There may be collisions when printing."
+msgstr "換料塔離淨空區域太近,列印時可能會發生碰撞。"
+
+# AI Translated
+msgid "Prime tower is too close to the clumping detection area. There may be collisions when printing."
+msgstr "換料塔離結塊偵測區域太近,列印時可能會發生碰撞。"
+
+# AI Translated
+msgid "Prime tower is partially outside the printable area, and it cannot be printed.\n"
+msgstr "換料塔有部分超出可列印區域,無法列印。\n"
msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "所選的噴嘴溫度不相容。每種線材的噴嘴溫度都必須落在其他線材的建議噴嘴溫度範圍內。否則可能會發生噴嘴堵塞或列印裝置損壞。"
@@ -13264,88 +15096,174 @@ msgstr "如果您仍想列印,可以在「偏好設定 / 控制 / 切片 / 移
msgid "No extrusions under current settings."
msgstr "根據目前設定,不會進行任何列印。"
+# AI Translated
+msgid "Mixed filaments are not supported in IDEX/IQEX parallel modes. Switch this plate to Primary mode."
+msgstr "IDEX/IQEX 並行模式不支援混合線材。請將此列印板切換為主模式。"
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number.
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but none of this plate's filaments are on a configured tool. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX 模式「%1%」使用 T%2% 列印,但此列印板沒有任何線材位於已設定的工具上。請指派已裝載於 T%2% 的線材,或將此列印板切換為主模式。"
+
+# AI Translated
+#. TRN %1% is the IDEX/IQEX mode name, %2% the tool number, %3% a list of tools such as "T1, T2".
+#, boost-format
+msgid "IDEX/IQEX mode \"%1%\" prints with T%2%, but this plate's filaments are on %3%. Assign a filament loaded on T%2%, or switch this plate to Primary mode."
+msgstr "IDEX/IQEX 模式「%1%」使用 T%2% 列印,但此列印板的線材位於 %3%。請指派已裝載於 T%2% 的線材,或將此列印板切換為主模式。"
+
+# AI Translated
+msgid "Raft is not compatible with belt printer mode."
+msgstr "筏層與輸送帶列印裝置模式不相容。"
+
+# AI Translated
+msgid "Draft shield is not compatible with belt printer mode."
+msgstr "防風罩與輸送帶列印裝置模式不相容。"
+
+# AI Translated
+msgid "Brim is not compatible with spiral vase mode on a belt printer. Disable one of them."
+msgstr "在輸送帶列印裝置上,Brim 與螺旋花瓶模式不相容。請停用其中之一。"
+
+# AI Translated
+msgid "The belt is too steep for a brim, so no brim will be generated."
+msgstr "輸送帶傾斜角度過大,不適合使用 Brim,因此不會產生 Brim。"
+
+# AI Translated
+msgid "A brim is only generated when the belt is tilted. Set a belt tilt angle, or remove the brim setting."
+msgstr "僅在輸送帶傾斜時才會產生 Brim。請設定輸送帶傾斜角度,或移除 Brim 設定。"
+
+# AI Translated
+msgid "Belt printers support outer and inner brim only. Auto, Mouse ear and Painted brim are printed as Outer brim only, using Brim width."
+msgstr "輸送帶列印裝置僅支援外側和內側 Brim。「自動」、「圓盤」和「繪製」Brim 會以「僅外側」方式列印,並使用「Brim 寬度」。"
+
+# AI Translated
+msgid "Brim-object gap separates the leading brim from the object's leading edge, which is the edge it is meant to anchor. Set the gap to 0 when using leading brim length."
+msgstr "「Brim 與物件的間隙」會使前緣 Brim 與物件的前緣分離,而前緣正是前緣 Brim 要固定的邊。使用「前緣 Brim 長度」時,請將間隙設為 0。"
+
+# AI Translated
+msgid "Leading brim length extends ahead of each object along the belt, and Arrange does not reserve that space. Leave room between objects."
+msgstr "「前緣 Brim 長度」會沿輸送帶向每個物件前方延伸,而「自動擺放」不會預留該空間。請在物件之間保留間距。"
+
+# AI Translated
+msgid "\"Leading edge only\" brim applies to belt printers. On this printer it is printed as an ordinary outer brim."
+msgstr "「僅前緣」Brim 僅適用於輸送帶列印裝置。在此列印裝置上,它會以一般的外側 Brim 列印。"
+
# AI Translated
msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed."
msgstr "使用了漸層混合線材,但「混色子層」已停用。漸層將不會列印。"
+# AI Translated
msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled."
-msgstr "逐件列印模式下不支援使用平滑模式的縮時錄影。"
+msgstr "列印順序為「逐件」時,不支援平滑模式的縮時攝影。"
+# AI Translated
msgid "Clumping detection is not supported when \"by object\" sequence is enabled."
-msgstr "啟用“按物件”序列時,不支援結塊偵測。"
+msgstr "列印順序為「逐件」時,不支援結塊偵測。"
+# AI Translated
+msgid "The belt purge tower is not generated in \"By object\" print sequence; filament changes will not be purged."
+msgstr "在「逐件」列印順序下不會產生輸送帶清理塔;線材更換時將不會清理。"
+
+# AI Translated
+msgid "The belt purge tower is enabled but the project has no purge tower object; filament changes will not be purged. Open the project in the application to generate the tower."
+msgstr "已啟用輸送帶清理塔,但專案中沒有清理塔物件;線材更換時將不會清理。請在應用程式中開啟此專案以產生清理塔。"
+
+# AI Translated
+msgid "The project contains multiple managed belt purge towers. Reload the plate or toggle the belt purge tower off and on to regenerate it."
+msgstr "專案中包含多個自動管理的輸送帶清理塔。請重新載入列印板,或將輸送帶清理塔關閉後再開啟,以重新產生。"
+
+# AI Translated
msgid "Enabling both precise Z height and the prime tower may cause slicing errors."
-msgstr "同時啟用精確 Z 高度和擦拭塔可能會導致切片錯誤。"
+msgstr "同時啟用精確 Z 高度和換料塔可能會導致切片錯誤。"
+# AI Translated
msgid "A prime tower is required for clumping detection; otherwise, there may be flaws on the model."
-msgstr "結塊偵測需要 Prime 塔;否則,模型可能存在缺陷。"
+msgstr "結塊偵測需要換料塔,否則模型上可能會有瑕疵。"
+# AI Translated
msgid "Please select \"By object\" print sequence to print multiple objects in spiral vase mode."
-msgstr "請選擇『逐件列印』以支援在螺旋花瓶模式下列印多個物件。"
+msgstr "若要在螺旋花瓶模式下列印多個物件,請選擇「逐件」列印順序。"
+# AI Translated
msgid "Spiral (vase) mode does not work when an object contains more than one material."
-msgstr "不支援在包含多個線材的列印中使用螺旋花瓶模式。"
+msgstr "物件包含多種材料時,螺旋花瓶模式無法運作。"
+# AI Translated
#, boost-format
msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation."
-msgstr "物件 %1% 本身雖然符合建構體積,但由於材料收縮補償,導致其超出了最大建構高度限制。"
-
-#, boost-format
-msgid "The object %1% exceeds the maximum build volume height."
-msgstr "物件 %1% 超出了最大體積高度。"
+msgstr "物件 %1% 本身雖在列印空間內,但由於材料收縮補償,超出了列印空間的最大高度。"
+# AI Translated
#, boost-format
msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height."
-msgstr "物件 %1% 本身雖符合建構體積限制,但其最後一層超出了最大建構高度。"
+msgstr "物件 %1% 本身雖在列印空間內,但其最後一層超出了列印空間的最大高度。"
+# AI Translated
msgid "You might want to reduce the size of your model or change current print settings and retry."
-msgstr "您可能想要減小模型的尺寸或更改目前的列印設定並重試。"
+msgstr "您可以縮小模型尺寸或變更目前的列印設定,然後重試。"
+# AI Translated
+#, boost-format
+msgid "The object %1% exceeds the maximum build volume height."
+msgstr "物件 %1% 超出了列印空間的最大高度。"
+
+# AI Translated
msgid "Variable layer height is not supported with Organic supports."
-msgstr "有機樹支撐不支持可變層高。"
+msgstr "有機樹狀支撐不支援可變層高。"
# AI Translated
msgid "The wipe tower filament cannot be a mixed filament."
msgstr "換料塔線材不能是混合線材。"
+# AI Translated
msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution."
-msgstr "當啟用換料時,不同的噴嘴直徑和線材直徑可能無法正常配合。此功能屬於實驗性階段,請小心使用。"
+msgstr "啟用換料塔時,不同的噴嘴直徑和線材直徑可能無法正常配合。此功能仍屬實驗階段,請謹慎使用。"
+# AI Translated
msgid "The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1)."
-msgstr "換料塔目前僅支援相對擠出機定址 (use_relative_e_distances=1)。"
+msgstr "換料塔目前僅支援相對擠出機定址(use_relative_e_distances=1)。"
+# AI Translated
msgid "Ooze prevention is only supported with the wipe tower when 'single_extruder_multi_material' is off."
-msgstr "『防止漏料』功能僅在 ‘single_extruder_multi_material’ 關閉時,才支援換料塔。"
+msgstr "僅在 'single_extruder_multi_material' 關閉時,「防漏料」才支援搭配換料塔使用。"
+# AI Translated
msgid "The prime tower is currently only supported for the Marlin, RepRap/Sprinter, RepRapFirmware and Repetier G-code flavors."
-msgstr "換料塔功能目前僅支援 Marlin、RepRap/Sprinter、RepRapFirmware 和 Repetier 的 G-code 格式。"
+msgstr "換料塔目前僅支援 Marlin、RepRap/Sprinter、RepRapFirmware 和 Repetier 的 G-code 風格。"
msgid "A prime tower is not supported in “By object” print."
msgstr "逐件列印模式下無法使用換料塔。"
+# AI Translated
msgid "A prime tower is not supported when adaptive layer height is on. It requires that all objects have the same layer height."
-msgstr "可變層高啟用時無法使用換料塔。它要求所有物件擁有相同的層高。"
+msgstr "啟用適應性層高時無法使用換料塔。換料塔要求所有物件具有相同的層高。"
+# AI Translated
msgid "A prime tower requires any “support gap” to be a multiple of layer height."
-msgstr "換料塔要求「支撐間隙」為層高的整數倍數"
+msgstr "換料塔要求「支撐間隙」為層高的整數倍。"
+# AI Translated
msgid "A prime tower requires that all objects have the same layer height."
-msgstr "換料塔要求各個物件擁有同樣的層高"
+msgstr "換料塔要求所有物件具有相同的層高。"
+# AI Translated
msgid "A prime tower requires that all objects are printed over the same number of raft layers."
-msgstr "換料塔要求各個物件使用同樣的筏層數量"
+msgstr "換料塔要求所有物件使用相同數量的筏層。"
+# AI Translated
msgid "The prime tower is only supported for multiple objects if they are printed with the same support_top_z_distance."
-msgstr "只有當多個物件使用相同的支撐頂部 Z 距離 (support_top_z_distance) 列印時,才會支援換料塔"
+msgstr "只有在多個物件使用相同的 support_top_z_distance 列印時,才支援換料塔。"
msgid "A prime tower requires that all objects are sliced with the same layer height."
msgstr "換料塔要求各個物件擁有同樣的層高。"
+# AI Translated
msgid "The prime tower is only supported if all objects have the same variable layer height."
-msgstr "各個物件的層高存在差異,無法啟用換料塔"
+msgstr "只有在所有物件的可變層高都相同時,才支援換料塔。"
+# AI Translated
msgid "One or more object were assigned an extruder that the printer does not have."
-msgstr "一個或多個物件被分配到的印表裝置沒有擠出機"
+msgstr "有一個或多個物件指派到列印裝置沒有的擠出機。"
msgid "Line width too small"
msgstr "線寬太小"
@@ -13359,14 +15277,16 @@ msgstr "使用不同噴嘴直徑的多個擠出機進行列印。如果支撐要
msgid "A prime tower requires that support has the same layer height as the object."
msgstr "換料塔要求支撐和物件採用同樣的層高。"
+# AI Translated
msgid "For Organic supports, two walls are supported only with the Hollow/Default base pattern."
-msgstr "對於有機樹支撐,僅 Hollow/Default 底座圖案支援兩層牆壁。"
+msgstr "對於有機樹狀支撐,僅「空心」/「預設」底座圖案支援兩道牆。"
msgid "The Lightning base pattern is not supported by this support type; Rectilinear will be used instead."
msgstr "此支撐類型不支援閃電底座圖案;將改用直線圖案。"
+# AI Translated
msgid "Organic support tree tip diameter must not be smaller than support material extrusion width."
-msgstr "有機樹支撐尖端直徑不得小於支撐材料擠出寬度。"
+msgstr "有機樹狀支撐尖端直徑不得小於支撐材料擠出寬度。"
msgid "Organic support branch diameter must not be smaller than 2x support material extrusion width."
msgstr "有機樹狀支撐分支直徑不得小於支撐材料擠出寬度的 2 倍。"
@@ -13374,14 +15294,17 @@ msgstr "有機樹狀支撐分支直徑不得小於支撐材料擠出寬度的 2
msgid "Organic support branch diameter must not be smaller than support tree tip diameter."
msgstr "有機樹狀支撐枝直徑不得小於支撐樹梢直徑。"
+# AI Translated
msgid "The Hollow base pattern is not supported by this support type; Rectilinear will be used instead."
-msgstr "此支撐類型不支援空心底座圖案;將改用直線填充。"
+msgstr "此支撐類型不支援空心底座圖案;將改用直線圖案。"
+# AI Translated
msgid "Support enforcers are used but support is not enabled. Please enable support."
-msgstr "使用支撐添加器但沒有開啟支撐。請開啟支撐。"
+msgstr "使用了支撐產生器,但未啟用支撐。請啟用支撐。"
+# AI Translated
msgid "Layer height cannot exceed nozzle diameter."
-msgstr "層高不能超過噴嘴直徑"
+msgstr "層高不能超過噴嘴直徑。"
msgid "Bridge line width must not exceed nozzle diameter"
msgstr "橋接線寬不得超過噴嘴直徑"
@@ -13392,8 +15315,9 @@ msgstr "在 before_layer_change_gcode 中找到 \"G92 E0\",但 G 或 E 不是
msgid "\"G92 E0\" was found in layer_change_gcode, but the G or E are not uppercase. Please change them to the exact uppercase \"G92 E0\"."
msgstr "在 layer_change_gcode 中找到 \"G92 E0\",但 G 或 E 並非大寫。請將其改為完全大寫的 \"G92 E0\"。"
+# AI Translated
msgid "Relative extruder addressing requires resetting the extruder position at each layer to prevent loss of floating point accuracy. Add \"G92 E0\" to layer_gcode."
-msgstr "相對擠出機定址需要重設每層的擠出機位置,以防止浮點精度損失。 將「G92 E0」加入到 layer_gcode。"
+msgstr "相對擠出機定址需要在每層重設擠出機位置,以防止浮點精度損失。請將 \"G92 E0\" 加入 layer_gcode。"
msgid "\"G92 E0\" was found in before_layer_change_gcode, which is incompatible with absolute extruder addressing."
msgstr "在 before_layer_change_gcode 中發現 \"G92 E0\",這與絕對擠出機定址不相容。"
@@ -13401,57 +15325,69 @@ msgstr "在 before_layer_change_gcode 中發現 \"G92 E0\",這與絕對擠出
msgid "\"G92 E0\" was found in layer_change_gcode, which is incompatible with absolute extruder addressing."
msgstr "在 layer_change_gcode 中發現 \"G92 E0\",這與絕對擠出機定址不相容。"
+# AI Translated
#, c-format, boost-format
msgid "Plate %d: %s does not support filament %s"
-msgstr "平台 %d:%s 不支援線材 %s"
+msgstr "列印板 %d:%s 不支援線材 %s"
+# AI Translated
msgid "Setting the jerk speed too low could lead to artifacts on curved surfaces"
-msgstr "抖動速度設定過低可能會在曲面上產生缺陷"
+msgstr "急衝速度設定過低可能會在曲面上產生缺陷"
+# AI Translated
msgid ""
"The jerk setting exceeds the printer's maximum jerk (machine_max_jerk_x/machine_max_jerk_y).\n"
"Orca will automatically cap the jerk speed to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the maximum jerk setting in your printer's configuration to get higher speeds."
msgstr ""
-"抖動設定已超過列印裝置的最大急動值(machine_max_jerk_x/machine_max_jerk_y)。\n"
-"Orca 將自動限制急動速度,以確保不超出列印裝置的性能範圍。\n"
-"如需更高速度,您可以在列印裝置配置中調整最大急動值。"
+"急衝速度設定超過列印裝置的最大急衝速度(machine_max_jerk_x/machine_max_jerk_y)。\n"
+"Orca 將自動限制急衝速度,以確保不超出列印裝置的性能範圍。\n"
+"如需更高速度,您可以在列印裝置設定中調整最大急衝速度。"
+# AI Translated
msgid ""
"Junction deviation setting exceeds the printer's maximum value (machine_max_junction_deviation).\n"
"Orca will automatically cap the junction deviation to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the machine_max_junction_deviation value in your printer's configuration to get higher limits."
msgstr ""
-"轉角偏差設定超出列印裝置的最大值 (machine_max_junction_deviation)。\n"
-"Orca 將自動限制轉角偏差,以確保其不會超出列印裝置的能力。\n"
-"您可以調整列印裝置配置中的 machine_max_junction_deviation 值以獲得更高的限制。"
+"「轉折偏移值」設定超出列印裝置的最大值(machine_max_junction_deviation)。\n"
+"Orca 將自動限制轉折偏移值,以確保不超出列印裝置的能力。\n"
+"您可以在列印裝置設定中調整 machine_max_junction_deviation 值,以獲得更高的上限。"
+# AI Translated
msgid ""
"The acceleration setting exceeds the printer's maximum acceleration (machine_max_acceleration_extruding).\n"
"Orca will automatically cap the acceleration speed to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the machine_max_acceleration_extruding value in your printer's configuration to get higher speeds."
msgstr ""
-"加速度設定已超過列印裝置的最大加速度值 (machine_max_acceleration_travel)。\n"
+"加速度設定超過列印裝置的最大加速度(machine_max_acceleration_extruding)。\n"
"Orca 將自動限制加速度,以確保不超出列印裝置的性能範圍。\n"
-"如需更高速度,您可以在列印裝置配置中調整 machine_max_acceleration_extruding 值。"
+"如需更高速度,您可以在列印裝置設定中調整 machine_max_acceleration_extruding 值。"
+# AI Translated
msgid ""
"The travel acceleration setting exceeds the printer's maximum travel acceleration (machine_max_acceleration_travel).\n"
"Orca will automatically cap the travel acceleration speed to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the machine_max_acceleration_travel value in your printer's configuration to get higher speeds."
msgstr ""
-"移動加速度設定已超過列印裝置的最大移動加速度值(machine_max_acceleration_travel)。\n"
-"Orca 將自動限制移動加速度,以確保不超出列印裝置的性能範圍。\n"
-"如需更高速度,您可以在列印裝置配置中調整 machine_max_acceleration_travel 值。"
+"空駛加速度設定超過列印裝置的最大空駛加速度(machine_max_acceleration_travel)。\n"
+"Orca 將自動限制空駛加速度,以確保不超出列印裝置的性能範圍。\n"
+"如需更高速度,您可以在列印裝置設定中調整 machine_max_acceleration_travel 值。"
+# AI Translated
msgid "The precise wall option will be ignored for outer-inner or inner-outer-inner wall sequences."
-msgstr "當壁序列為外內或內外內時,精確牆壁選項將被忽略。"
+msgstr "當「牆列印順序」為「外牆/內牆」或「內牆/外牆/內牆」時,將忽略「精準外牆尺寸」選項。"
msgid "The Adaptive Pressure Advance model for one or more extruders may contain invalid values."
msgstr "一個或多個擠出機的適應性 Pressure Advance 模型可能包含無效值。"
+# AI Translated
msgid "Filament shrinkage will not be used because filament shrinkage for the used filaments does not match."
-msgstr "線材收縮補償將被停用,因為所使用的線材之間的收縮率差異過大。"
+msgstr "所用線材的收縮率不一致,因此將不使用線材收縮率。"
+
+# AI Translated
+msgid "The print is empty. The model is not printable with current print settings."
+msgstr "列印內容為空。依目前的列印設定,此模型無法列印。"
msgid "Generating skirt & brim"
msgstr "正在產生 Skirt 和 Brim"
@@ -13471,6 +15407,17 @@ msgstr "正在匯出 G-code"
msgid "Generating G-code"
msgstr "正在產生 G-code"
+# AI Translated
+#. TRN %1% is a file path.
+#, boost-format
+msgid "Failed to process the G-code file %1% from the previous 3MF file."
+msgstr "處理先前 3MF 檔案中的 G-code 檔案 %1% 失敗。"
+
+# AI Translated
+#, boost-format
+msgid "The belt purge tower cannot absorb the full purge volume: %1% mm³ in total could not be purged (worst layer: %2% mm³ at height %3%). The print may show color bleeding. Increase the belt purge tower width, or reduce flushing volumes."
+msgstr "輸送帶清理塔無法容納完整的清理量:共有 %1% mm³ 無法清理(最差的層:高度 %3% 處的 %2% mm³)。列印可能出現混色。請增加輸送帶清理塔的寬度,或減少清理量。"
+
msgid "Processing of the filename_format template failed."
msgstr "處理檔案名稱格式範本失敗。"
@@ -13492,20 +15439,23 @@ msgstr "為可並行使用多個列印頭的機器啟用列印裝置設定。"
msgid "Parallel printheads count"
msgstr "並行列印頭數量"
+# AI Translated
msgid "Set the number of parallel printheads for machines like OrangeStorm Giga printer."
-msgstr "設定 OrangeStorm Giga 列印裝置等機器的平行列印頭數量。"
+msgstr "設定 OrangeStorm Giga 等列印裝置的並行列印頭數量。"
msgid "Parallel printheads bed exclude areas"
msgstr "並行列印頭列印板排除區域"
+# AI Translated
msgid "Ordered list of bed exclude areas by parallel printhead count. Item 1 applies to one printhead, item 2 to two printheads, and so on. Leave an item empty for no excluded area."
-msgstr "依平行列印頭數量排序的熱床淨空區域列表。第 1 項適用於一個列印頭,第 2 項適用於兩個列印頭,依此類推。將項目留空表示無淨空區域。"
+msgstr "依並行列印頭數量排序的熱床排除區域列表。第 1 項適用於一個列印頭,第 2 項適用於兩個列印頭,依此類推。項目留空表示沒有排除區域。"
msgid "Excluded bed area"
msgstr "熱床淨空區域"
+# AI Translated
msgid "Unprintable area in XY plane. For example, X1 Series printers use the front left corner to cut filament during filament change. The area is expressed as polygon by points in following format: \"XxY, XxY, ...\""
-msgstr "XY 平面上的不可列印區域。例如,X1系列裝置在換料過程中,會使用左前角區域來切斷線材。這個多邊形區域由以下格式的點表示:「XxY,XxY,…」"
+msgstr "XY 平面上的不可列印區域。例如,X1 系列列印裝置在換料時會使用左前角來切斷線材。此區域以多邊形表示,由下列格式的點組成:\"XxY, XxY, ...\""
msgid "Bed custom texture"
msgstr "自訂列印板紋理"
@@ -13516,14 +15466,16 @@ msgstr "自訂列印板模型"
msgid "Elephant foot compensation"
msgstr "象腳補償"
+# AI Translated
msgid "This shrinks the first layer on the build plate to compensate for elephant foot effect."
-msgstr "將首層收縮用於補償象腳效應"
+msgstr "縮小列印板上的首層,以補償象腳效應。"
msgid "Elephant foot compensation layers"
msgstr "象腳補償層數"
+# AI Translated
msgid "The number of layers on which the elephant foot compensation will be active. The first layer will be shrunk by the elephant foot compensation value, then the next layers will be linearly shrunk less, up to the layer indicated by this value."
-msgstr "象腳補償將處於活動狀態的層數。 第一層將縮小象腳補償值,然後接下來的層將線性縮小,直到該值指示的層。"
+msgstr "象腳補償生效的層數。首層會依象腳補償值縮小,之後各層的縮小量線性遞減,直到此值指定的層為止。"
msgid "Elephant foot layers density"
msgstr "象腳層密度"
@@ -13537,14 +15489,16 @@ msgstr ""
"設定第二層的初始值。\n"
"後續層會依照 elefant_foot_compensation_layers 指定的高度線性增加密度。"
+# AI Translated
msgid "This is the height for each layer. Smaller layer heights give greater accuracy but longer printing time."
-msgstr "每一層的切片高度。越小的層高意味著更高的精度和更長的列印時間"
+msgstr "每一層的切片高度。層高越小,精度越高,但列印時間也越長。"
msgid "Printable height"
msgstr "可列印高度"
+# AI Translated
msgid "This is the maximum printable height which is limited by the height of the build area."
-msgstr "受列印裝置硬體限制的最大可列印高度"
+msgstr "最大可列印高度,受列印區域的高度限制。"
msgid "Extruder printable height"
msgstr "擠出機可列印高度"
@@ -13555,8 +15509,9 @@ msgstr "該擠出機的最大可列印高度受列印裝置機構的限制。"
msgid "Preferred orientation"
msgstr "首選方向"
+# AI Translated
msgid "Automatically orient STL files on the Z axis upon initial import."
-msgstr "匯入 STL 時自動對齊 Z 軸"
+msgstr "首次匯入時,自動依 Z 軸調整 STL 檔案的方向。"
msgid "Printer preset names"
msgstr "列印裝置預設名稱"
@@ -13564,8 +15519,9 @@ msgstr "列印裝置預設名稱"
msgid "Use 3rd-party print host"
msgstr "啟用第三方列印主機"
+# AI Translated
msgid "Allow controlling BambuLab's printer through 3rd party print hosts."
-msgstr "允許使用第三方列印主機控制 BambuLab 列印裝置"
+msgstr "允許透過第三方列印主機控制 BambuLab 列印裝置。"
msgid "Use 3MF instead of G-code"
msgstr "使用 3MF 取代 G-code"
@@ -13579,23 +15535,27 @@ msgstr "列印裝置代理"
msgid "Select the network agent implementation for printer communication."
msgstr "選擇用於列印裝置通訊的網路代理實作。"
+# AI Translated
msgid "Hostname, IP or URL"
-msgstr "主機名,IP 或者 URL"
+msgstr "主機名稱、IP 或 URL"
+# AI Translated
msgid "Orca Slicer can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance. Print host behind HAProxy with basic auth enabled can be accessed by putting the user name and password into the URL in the following format: https://username:password@your-octopi-address/"
-msgstr "Orca Slicer 可以將 G-code 檔案上傳到列印裝置。此欄位應包含列印裝置的主機名、IP 位址或 URL。啟用基本身份驗證的列印裝置可以透過將使用者名稱和密碼放入以下格式的URL中來存取:https://username:password@your-octopi-address/"
+msgstr "Orca Slicer 可以將 G-code 檔案上傳至列印主機。此欄位應填入列印主機實例的主機名稱、IP 位址或 URL。若列印主機位於啟用基本驗證的 HAProxy 之後,可將使用者名稱和密碼以下列格式放入 URL 中來存取:https://username:password@your-octopi-address/"
msgid "Device UI"
msgstr "裝置使用者介面"
+# AI Translated
msgid "Specify the URL of your device user interface if it's not same as print_host."
-msgstr "如果列印裝置的使用者介面 URL 不同,請輸入在此"
+msgstr "若裝置使用者介面的 URL 與 print_host 不同,請在此指定。"
msgid "API Key / Password"
msgstr "API 金鑰 / 密碼"
+# AI Translated
msgid "Orca Slicer can upload G-code files to a printer host. This field should contain the API Key or the password required for authentication."
-msgstr "Orca slicer 可以將 G-code 檔案上傳到列印裝置。此欄位應包含用於身份驗證的 API 金鑰或密碼。"
+msgstr "Orca Slicer 可以將 G-code 檔案上傳至列印主機。此欄位應填入驗證所需的 API 金鑰或密碼。"
msgid "Serial Number"
msgstr "序號"
@@ -13603,11 +15563,13 @@ msgstr "序號"
msgid "Flashforge local API requires the printer serial number."
msgstr "Flashforge 本機 API 需要列印裝置序號。"
+# AI Translated
msgid "Name of the printer."
-msgstr "列印裝置名稱"
+msgstr "列印裝置名稱。"
+# AI Translated
msgid "Custom CA certificate file can be specified for HTTPS OctoPrint connections, in crt/pem format. If left blank, the default OS CA certificate repository is used."
-msgstr "可以為 HTTPS OctoPrint 連線指定自訂 CA憑證 檔案,格式為 crt/pem。如果留空,則使用預設的操作系統 CA憑證 儲存庫。"
+msgstr "可為 HTTPS OctoPrint 連線指定 crt/pem 格式的自訂 CA 憑證檔案。若留空,則使用作業系統預設的 CA 憑證存放區。"
msgid "User"
msgstr "使用者名稱"
@@ -13615,14 +15577,17 @@ msgstr "使用者名稱"
msgid "Password"
msgstr "密碼"
+# AI Translated
msgid "Ignore HTTPS certificate revocation checks"
-msgstr "忽略 HTTPS 憑證吊銷檢查"
+msgstr "忽略 HTTPS 憑證撤銷檢查"
+# AI Translated
msgid "Ignore HTTPS certificate revocation checks in the case of missing or offline distribution points. One may want to enable this option for self signed certificates if connection fails."
-msgstr "在缺少或離線的情況下忽略 HTTPS 憑證吊銷檢查。如果連線失敗,可以啟用此選項來處理自簽名憑證。"
+msgstr "當發佈點遺失或離線時,忽略 HTTPS 憑證撤銷檢查。若連線失敗,使用自我簽署憑證時可考慮啟用此選項。"
+# AI Translated
msgid "Names of presets related to the physical printer."
-msgstr "與實體列印裝置相關的預設名稱"
+msgstr "與實體列印裝置相關的預設名稱。"
msgid "Authorization Type"
msgstr "授權類型"
@@ -13635,19 +15600,22 @@ msgstr "HTTP 摘要"
# AI Translated
msgid "Configuration for the plugin capabilities this preset uses, overriding the global Capabilities configuration. Stored as a raw JSON array and edited through the dialog behind the button, never typed in directly."
-msgstr "此預設所使用外掛功能的設定,會覆寫全域的 Capabilities 設定。以原始 JSON 陣列儲存,並透過按鈕後方的對話框編輯,切勿直接輸入。"
+msgstr "此預設所使用外掛功能的設定,會覆寫全域的「功能」設定。以原始 JSON 陣列儲存,並透過按鈕開啟的對話框編輯,切勿直接輸入。"
msgid "Avoid crossing walls"
msgstr "避免跨越外牆"
+# AI Translated
msgid "This detours to avoid traveling across walls, which may cause blobs on the surface."
-msgstr "空駛時繞過外牆以避免在模型外觀表面產生斑點"
+msgstr "空駛時繞行,避免跨越外牆而在模型表面產生斑點。"
+# AI Translated
msgid "Avoid crossing walls - Max detour length"
-msgstr "避免跨越外牆-最大繞行長度"
+msgstr "避免跨越外牆:最大繞行長度"
+# AI Translated
msgid "Maximum detour distance for avoiding crossing wall: The printer won't detour if the detour distance is larger than this value. Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path. A value of 0 will disable this."
-msgstr "避開穿越牆體時的最大繞行距離。若繞行距離超過此設定值,則不進行繞行。繞行距離可設為絕對值,或直接移動路徑的百分比(如 50%)。設為 0 以停用繞行功能"
+msgstr "避免跨越外牆時的最大繞行距離:若繞行距離大於此值,則不繞行。繞行距離可設為絕對值,或直線空駛路徑長度的百分比(例如 50%)。設為 0 表示停用。"
msgid "mm or %"
msgstr "mm 或 %"
@@ -13655,47 +15623,60 @@ msgstr "mm 或 %"
msgid "Other layers"
msgstr "其它層"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack."
-msgstr "除首層外的其他層的熱床溫度。0值表示該線材不支援在低溫增穩列印板上列印。"
+msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於增穩低溫列印板。"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate."
-msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於低溫列印板"
+msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於低溫列印板。"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate."
-msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於低溫紋理列印板"
+msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於紋理低溫列印板。"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate."
-msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於工程列印板"
+msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於工程列印板。"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate."
-msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於高溫列印板"
+msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於高溫列印板。"
+# AI Translated
msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate."
-msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於紋理 PEI 列印板"
+msgstr "首層之外各層的熱床溫度。值為 0 表示該線材不適用於紋理 PEI 列印板。"
msgid "First layer"
msgstr "首層"
+# AI Translated
msgid "First layer bed temperature"
-msgstr "首層床溫"
+msgstr "首層熱床溫度"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Cool Plate SuperTack."
-msgstr "首層的列印床溫度。值為 0 表示該線材不適用於低溫增穩列印板"
+msgstr "首層的熱床溫度。值為 0 表示該線材不適用於增穩低溫列印板。"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Cool Plate."
-msgstr "首層的列印床溫度。值為 0 表示該線材不適用於低溫列印板"
+msgstr "首層的熱床溫度。值為 0 表示該線材不適用於低溫列印板。"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Textured Cool Plate."
-msgstr "首層的列印床溫度。值為 0 表示該線材不適用於低溫紋理列印板"
+msgstr "首層的熱床溫度。值為 0 表示該線材不適用於紋理低溫列印板。"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Engineering Plate."
-msgstr "首層的列印床溫度。值為 0 表示該線材不適用於工程列印板"
+msgstr "首層的熱床溫度。值為 0 表示該線材不適用於工程列印板。"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the High Temp Plate."
-msgstr "首層的列印床溫度。值為 0 表示該線材不適用於高溫列印板"
+msgstr "首層的熱床溫度。值為 0 表示該線材不適用於高溫列印板。"
+# AI Translated
msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Textured PEI Plate."
-msgstr "首層的列印床溫度。值為 0 表示該線材不適用於紋理 PEI 列印板"
+msgstr "首層的熱床溫度。值為 0 表示該線材不適用於紋理 PEI 列印板。"
msgid "Plate types supported by the printer"
msgstr "列印裝置所支援的列印板類型"
@@ -13718,24 +15699,29 @@ msgstr "其他層列印順序的次數"
msgid "Other layers filament sequence"
msgstr "其他層線材的列印順序"
+# AI Translated
msgid "This G-code is inserted at every layer change before the Z lift."
-msgstr "在每次換層抬升z高度之前插入這段 G-code"
+msgstr "每次換層時,在 Z 抬升之前插入這段 G-code。"
msgid "Bottom shell layers"
msgstr "底部外殼層數"
+# AI Translated
msgid "This is the number of solid layers of bottom shell, including the bottom surface layer. When the thickness calculated by this value is thinner than bottom shell thickness, the bottom shell layers will be increased."
-msgstr "底部外殼實心層層數,包括底面。當由該層數計算的厚度小於底部外殼厚度,切片時會增加底部外殼的層數"
+msgstr "底部外殼的實心層數,包含底面。若依此層數計算出的厚度小於底部外殼厚度,切片時會增加底部外殼層數。"
msgid "Bottom shell thickness"
msgstr "底部外殼厚度"
+# AI Translated
msgid "The number of bottom solid layers is increased when slicing if the thickness calculated by bottom shell layers is thinner than this value. This can avoid having too thin a shell when layer height is small. 0 means that this setting is disabled and the thickness of the bottom shell is determined simply by the number of bottom shell layers."
-msgstr "如果由底部殼體層數算出的厚度小於這個數值,那麼切片時將自動增加底部殼體層數。這能夠避免當層高很小時,底部殼體過薄。0 表示關閉這個設定,同時底部殼體的厚度完全由底部殼體層數決定"
+msgstr "若依底部外殼層數計算出的厚度小於此值,切片時會自動增加底部實心層數。這可避免層高很小時底部外殼過薄。0 表示停用此設定,底部外殼的厚度完全由底部外殼層數決定。"
+# AI Translated
msgid "Apply gap fill"
-msgstr "套用間隙填充"
+msgstr "套用縫隙填充"
+# AI Translated
msgid ""
"Enables gap fill for the selected solid surfaces. The minimum gap length that will be filled can be controlled from the filter out tiny gaps option below.\n"
"\n"
@@ -13750,22 +15736,25 @@ msgid ""
"\n"
"However this is not advised, as gap fill between perimeters is contributing to the model's strength. For models where excessive gap fill is generated between perimeters, a better option would be to switch to the arachne wall generator and use this option to control whether the cosmetic top and bottom surface gap fill is generated."
msgstr ""
-"為選定的實心表面啟用間隙填充。您可以使用下方的『過濾微小間隙』選項來控制填充的最小間隙長度。\n"
+"為選定的實心表面啟用縫隙填充。可透過下方的「忽略微小間隙」選項控制要填充的最小間隙長度。\n"
"\n"
"選項:\n"
-"1. 所有區域:將間隙填充套用於頂部、底部和內部實心表面,以提升結構強度。\n"
-"2. 僅頂部和底部:僅在頂部和底部表面進行間隙填充,平衡列印速度,減少實心填充中的過度擠出,同時確保頂部和底部表面無針孔間隙。\n"
-"3. 不填充:停用所有實心填充區域的間隙填充。\n"
+"1. 全部:對頂面、底面和內部實心表面進行縫隙填充,以獲得最大強度\n"
+"2. 頂面與底面:僅對頂面和底面進行縫隙填充,兼顧列印速度,減少實心填充中可能出現的過度擠出,並確保頂面和底面沒有針孔間隙\n"
+"3. 無:停用所有實心填充區域的縫隙填充\n"
"\n"
-"請注意,若使用『經典』的牆產生器,當外牆之間無法容納完整寬度的線條時,間隙填充仍可能產生。這類外牆間隙填充不受此設定控制。\n"
-"如果希望移除所有間隙填充,包括『經典』的牆產生器間隙填充,可將『過濾微小間隙』設定為較大的數字(如 999999)。\n"
-"然而,不建議這麼做,因為外牆間的間隙填充能增強模型強度。若模型因外牆間隙填充過多而受影響,更好的解決方案是切換到『Arachne』牆產生器,並利用此選項控制是否產生頂部和底部表面的美觀間隙填充"
+"請注意,若使用「經典」牆產生器,當牆之間容納不下一條完整寬度的線時,也可能在牆之間產生縫隙填充。這種牆間縫隙填充不受此設定控制。\n"
+"\n"
+"若希望移除所有縫隙填充(包括「經典」牆產生器產生的),請將「忽略微小間隙」設為很大的數值,例如 999999。\n"
+"\n"
+"但不建議這樣做,因為牆之間的縫隙填充有助於提高模型強度。對於牆之間產生過多縫隙填充的模型,更好的做法是切換到 Arachne 牆產生器,並使用此選項控制是否產生頂面和底面的裝飾性縫隙填充。"
msgid "Everywhere"
msgstr "全部"
+# AI Translated
msgid "Top and bottom surfaces"
-msgstr "頂部與底部"
+msgstr "頂面與底面"
msgid "Nowhere"
msgstr "無"
@@ -13773,27 +15762,32 @@ msgstr "無"
msgid "Force cooling for overhangs and bridges"
msgstr "強制冷卻懸空與橋接結構"
+# AI Translated
msgid "Enable this option to allow adjustment of the part cooling fan speed for specifically for overhangs, internal and external bridges. Setting the fan speed specifically for these features can improve overall print quality and reduce warping."
-msgstr "啟用此選項後,可調整零件冷卻風扇的速度,專門針對懸垂結構、內部和外部橋接區域。適當調整風扇速度能提升列印品質並減少變形問題。"
+msgstr "啟用此選項後,可專門針對懸空、內部橋接與外部橋接調整物件冷卻風扇速度。為這些部位單獨設定風扇速度,可提升整體列印品質並減少翹曲。"
+# AI Translated
msgid "Overhangs and external bridges fan speed"
-msgstr "懸空與外部橋接區域的冷卻風扇速度"
+msgstr "懸空與外部橋接風扇速度"
+# AI Translated
msgid ""
"Use this part cooling fan speed when printing bridges or overhang walls with an overhang threshold that exceeds the value set in the 'Overhangs cooling threshold' parameter above. Increasing the cooling specifically for overhangs and bridges can improve the overall print quality of these features.\n"
"\n"
"Please note, this fan speed is clamped on the lower end by the minimum fan speed threshold set above. It is also adjusted upwards up to the maximum fan speed threshold when the minimum layer time threshold is not met."
msgstr ""
-"當列印橋接結構或懸垂牆,且其懸垂角度超過「懸垂冷卻門檻值」所設定的標準時,將適用此零件冷卻風扇轉速。針對懸垂與橋接部分提高冷卻強度,有助於提升列印品質並減少變形。\n"
+"列印橋接或懸空牆時,若懸空程度超過上方「懸空冷卻觸發臨界值」參數所設定的值,則使用此物件冷卻風扇速度。專門針對懸空與橋接加強冷卻,可提升這些部位的整體列印品質。\n"
"\n"
-"請注意,此風扇轉速的最低值受限於「最小風扇轉速」設定。此外,當層列印時間未達「最小層列印時間」門檻值時,風扇轉速將自動增加,最高可達「最大風扇轉速」設定值。"
+"請注意,此風扇速度的下限受上方設定的「最小風扇速度臨界值」限制;未達到最小層時間臨界值時,也會向上調整,最高可達「最大風扇速度臨界值」。"
+# AI Translated
msgid "Overhang cooling activation threshold"
-msgstr "懸空冷卻觸發門檻值"
+msgstr "懸空冷卻觸發臨界值"
+# AI Translated
#, no-c-format, no-boost-format
msgid "When the overhang exceeds this specified threshold, force the cooling fan to run at the 'Overhang Fan Speed' set below. This threshold is expressed as a percentage, indicating the portion of each line's width that is unsupported by the layer beneath it. Setting this value to 0% forces the cooling fan to run for all outer walls, regardless of the overhang degree."
-msgstr "當懸垂部分超過此指定的門檻值時,強制冷卻風扇以「懸垂風扇速度」設定運行。此門檻值以百分比表示,表示每條線寬中未被下層支撐的部分。將此值設為 0% 時,無論懸垂角度如何,都會強制冷卻風扇在所有外牆上運行"
+msgstr "當懸空超過此臨界值時,強制冷卻風扇以下方設定的「懸空與外部橋接風扇速度」運轉。此臨界值以百分比表示,指每條線寬中未被下層支撐的比例。設為 0% 時,無論懸空程度如何,所有外牆都會強制開啟冷卻風扇。"
msgid "External bridge infill direction"
msgstr "外部橋接結構的填充方向"
@@ -13904,8 +15898,9 @@ msgstr ""
"\n"
"此選項與「在填充上方增加第二層內部橋接」選項搭配使用時效果尤佳,可在擠出實心填充前進一步改善橋接。"
+# AI Translated
msgid "Bridge flow ratio"
-msgstr "橋接流量"
+msgstr "橋接流量比例"
msgid ""
"This value governs the thickness of the external (visible) bridge layer.\n"
@@ -13920,21 +15915,23 @@ msgstr ""
"\n"
"實際使用的橋接流量是將此數值乘以線材流量比例計算得出,若有設定,還會乘以物件的流量比例。"
+# AI Translated
msgid ""
"Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
"Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
"\n"
"The maximum value is 100% or the nozzle diameter.\n"
-"If set to 0, the line width will match the Internal solid infill width."
+"If set to 0, the line width will match the Internal solid infill width, or the nozzle diameter for thick bridges."
msgstr ""
"橋接的線寬。如果以 % 表示,將以噴嘴直徑為基準計算。\n"
"建議搭配較高的橋接密度或橋接流量比例使用。\n"
"\n"
"最大值為 100% 或噴嘴直徑。\n"
-"如果設為 0,線寬將與內部實心填充寬度相同。"
+"如果設為 0,線寬將與內部實心填充寬度相同;增厚橋接則與噴嘴直徑相同。"
+# AI Translated
msgid "Internal bridge flow ratio"
-msgstr "內部橋接流量"
+msgstr "內部橋接流量比例"
msgid ""
"This value governs the thickness of the internal bridge layer. This is the first layer over sparse infill so increasing it may increase strength and upper layer quality.\n"
@@ -13949,20 +15946,23 @@ msgstr ""
"\n"
"實際使用的橋接流量是將此數值乘以線材流量比例計算得出;若有設定物件的流量比例,則會再乘上該值。"
+# AI Translated
msgid "Top surface flow ratio"
-msgstr "頂部表面流量比例"
+msgstr "頂面流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for top solid infill. You can decrease it slightly to have smooth surface finish.\n"
"\n"
"The actual top surface flow used is calculated by multiplying this value with the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
-"此設定值會影響頂部實心填充的材料用量。稍微降低此值可使表面更加平滑。\n"
+"此係數會影響頂部實心填充的材料用量。稍微降低此值可使表面更平滑。\n"
"\n"
-"實際的頂部表面流量是此值乘以線材流量比例計算得出,若已設定物件流量比例,該比例也會被納入計算。"
+"實際使用的頂面流量為此值乘以線材流量比例,若已設定物件的流量比例,也會再乘上該值。"
+# AI Translated
msgid "Bottom surface flow ratio"
-msgstr "底部表面流量比例"
+msgstr "底面流量比例"
msgid ""
"This factor affects the amount of material for bottom solid infill.\n"
@@ -13973,127 +15973,181 @@ msgstr ""
"\n"
"實際的底部實心填充流量是此值乘以線材流量比例計算得出,若已設定物件流量比例,該比例也會被納入計算。"
+# AI Translated
msgid "Set other flow ratios"
-msgstr "設定其他流量比"
+msgstr "設定其他流量比例"
+# AI Translated
msgid "Change flow ratios for other extrusion path types."
-msgstr "變更其他擠出路徑類型的流量比。"
+msgstr "變更其他擠出路徑類型的流量比例。"
+# AI Translated
msgid "First layer flow ratio"
-msgstr "首層流量比"
+msgstr "首層流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material on the first layer for the extrusion path roles listed in this section.\n"
"\n"
"For the first layer, the actual flow ratio for each path role (does not affect brims and skirts) will be multiplied by this value."
-msgstr "此因素會影響本節中列出的擠出路徑角色的第一層上的材料量。 對於第一層,每個路徑角色的實際流量比(不影響邊緣和裙子)將乘以該值。"
+msgstr ""
+"此係數會影響首層上本區所列擠出路徑角色的材料用量。\n"
+"\n"
+"在首層,各路徑角色的實際流量比例(不影響 Brim 與 Skirt)都會再乘以此值。"
+# AI Translated
msgid "Outer wall flow ratio"
-msgstr "外牆流量比"
+msgstr "外牆流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for outer walls.\n"
"\n"
"The actual outer wall flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "該因素影響外牆材料的用量。 實際使用的外壁流量是透過將該值乘以線材流量比以及物件的流量比(如果已設定)來計算的。"
+msgstr ""
+"此係數會影響外牆的材料用量。\n"
+"\n"
+"實際使用的外牆流量為此值乘以線材流量比例,若已設定物件的流量比例,也會再乘上該值。"
+# AI Translated
msgid "Inner wall flow ratio"
-msgstr "內牆流量比"
+msgstr "內牆流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for inner walls.\n"
"\n"
"The actual inner wall flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "該因素影響內壁材料的用量。 實際使用的內壁流量是透過將該值乘以線材流量比以及物件的流量比(如果已設定)來計算的。"
+msgstr ""
+"此係數會影響內牆的材料用量。\n"
+"\n"
+"實際使用的內牆流量為此值乘以線材流量比例,若已設定物件的流量比例,也會再乘上該值。"
+# AI Translated
msgid "Overhang flow ratio"
-msgstr "懸空流量比"
+msgstr "懸空流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for overhangs.\n"
"\n"
"The actual overhang flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "該因素影響懸空材料的數量。 實際使用的懸空流量是透過將該值乘以線材流量比以及物件的流量比(如果已設定)來計算的。"
+msgstr ""
+"此係數會影響懸空的材料用量。\n"
+"\n"
+"實際使用的懸空流量為此值乘以線材流量比例,若已設定物件的流量比例,也會再乘上該值。"
+# AI Translated
msgid "Sparse infill flow ratio"
-msgstr "稀疏填充流量比"
+msgstr "稀疏填充流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for sparse infill.\n"
"\n"
"The actual sparse infill flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "該因素影響稀疏填充的材料量。 實際使用的稀疏填充流量是透過將該值乘以線材流量比以及物件的流量比(如果已設定)來計算的。"
+msgstr ""
+"此係數會影響稀疏填充的材料用量。\n"
+"\n"
+"實際使用的稀疏填充流量為此值乘以線材流量比例,若已設定物件的流量比例,也會再乘上該值。"
+# AI Translated
msgid "Internal solid infill flow ratio"
-msgstr "內部實心填充流量比"
+msgstr "內部實心填充流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for internal solid infill.\n"
"\n"
"The actual internal solid infill flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "該因素影響內部固體填充材料的數量。 實際使用的內部固體填充流量是透過將該值乘以線材流量比以及物件的流量比(如果已設定)來計算的。"
+msgstr ""
+"此係數會影響內部實心填充的材料用量。\n"
+"\n"
+"實際使用的內部實心填充流量為此值乘以線材流量比例,若已設定物件的流量比例,也會再乘上該值。"
+# AI Translated
msgid "Gap fill flow ratio"
-msgstr "縫隙填充流量比"
+msgstr "縫隙填充流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for filling the gaps.\n"
"\n"
"The actual gap filling flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "該因素影響填充間隙的材料量。 實際使用的間隙填充流量是透過將該值乘以線材流量比以及物件的流量比(如果已設定)來計算的。"
+msgstr ""
+"此係數會影響縫隙填充的材料用量。\n"
+"\n"
+"實際使用的縫隙填充流量為此值乘以線材流量比例,若已設定物件的流量比例,也會再乘上該值。"
+# AI Translated
msgid "Support flow ratio"
-msgstr "支撐流量比"
+msgstr "支撐流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for support.\n"
"\n"
"The actual support flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "該因素影響支撐材料的數量。 實際使用的支撐流量是透過將該值乘以線材流量比以及物件的流量比(如果已設定)來計算的。"
+msgstr ""
+"此係數會影響支撐的材料用量。\n"
+"\n"
+"實際使用的支撐流量為此值乘以線材流量比例,若已設定物件的流量比例,也會再乘上該值。"
+# AI Translated
msgid "Support interface flow ratio"
-msgstr "支撐介面流量比"
+msgstr "支撐面流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for the support interface.\n"
"\n"
"The actual support interface flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio."
-msgstr "該因素影響支撐介面的材料量。 實際使用的支撐介面流量是透過將該值乘以線材流量比以及物件的流量比(如果已設定)來計算的。"
+msgstr ""
+"此係數會影響支撐面的材料用量。\n"
+"\n"
+"實際使用的支撐面流量為此值乘以線材流量比例,若已設定物件的流量比例,也會再乘上該值。"
msgid "Precise wall"
msgstr "精準外牆尺寸"
+# AI Translated
msgid "Improve shell precision by adjusting outer wall spacing. This also improves layer consistency. NOTE: This option will be ignored for outer-inner or inner-outer-inner wall sequences."
-msgstr "透過調整牆壁間距來提高外牆精度,同時改善層間一致性。注意:當壁序列為外內或內外內時,此選項將被忽略。"
+msgstr "透過調整外牆間距來提高外殼精度,同時改善層間一致性。注意:當牆順序為「外牆/內牆」或「內牆/外牆/內牆」時,此選項將被忽略。"
msgid "Only one wall on top surfaces"
msgstr "頂面單層牆"
+# AI Translated
msgid "Use only one wall on flat top surfaces, to give more space to the top infill pattern."
-msgstr "頂面只使用單層牆,從而更多的空間能夠使用頂部填充圖案"
+msgstr "平坦頂面只使用一層牆,為頂部填充圖案留出更多空間。"
+# AI Translated
msgid "One wall threshold"
-msgstr "單層牆門檻值"
+msgstr "單層牆臨界值"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"If a top surface has to be printed and it's partially covered by another layer, it won't be considered at a top layer where its width is below this value. This can be useful to not let the 'one perimeter on top' trigger on surface that should be covered only by perimeters. This value can be a mm or a % of the perimeter extrusion width.\n"
"Warning: If enabled, artifacts can be created if you have some thin features on the next layer, like letters. Set this setting to 0 to remove these artifacts."
msgstr ""
-"當需要列印頂部表面,但該表面部分被另一層覆蓋時,如果其寬度小於此設定值,則不會被視為頂層。這有助於避免在需要外牆覆蓋的表面上,產生「單層牆」的情況發生。此值可以設為毫米或外周擠出寬度的百分比。\n"
-"警告:啟用此設定可能會在下一層具有細小特徵(如字母)時產生瑕疵。將此值設為 0 可移除這些瑕疵。"
+"當需要列印頂面,而該表面有一部分被另一層覆蓋時,寬度小於此值的部分不會被視為頂層。這可避免「頂面單層牆」在只應由牆覆蓋的表面上觸發。此值可以是 mm,或牆線寬的百分比(%)。\n"
+"警告:啟用後,若下一層有細小特徵(例如文字),可能會產生缺陷。將此值設為 0 可消除這些缺陷。"
msgid "Only one wall on first layer"
msgstr "首層僅單層牆"
+# AI Translated
msgid "Use only one wall on first layer, to give more space to the bottom infill pattern."
-msgstr "首層只使用單層牆,從而更多的空間能夠使用底部填充圖案"
+msgstr "首層只使用一層牆,為底部填充圖案留出更多空間。"
+# AI Translated
msgid "Extra perimeters on overhangs"
-msgstr "懸挑上的額外周長"
+msgstr "懸空處額外牆"
+# AI Translated
msgid "Create additional perimeter paths over steep overhangs and areas where bridges cannot be anchored."
-msgstr "在陡峭的懸空和無法固定橋接的區域中增加額外的周長路徑。"
+msgstr "在陡峭的懸空處,以及無法錨定橋接的區域,產生額外的牆路徑。"
msgid "Reverse on even"
msgstr "偶數層反向"
@@ -14101,18 +16155,21 @@ msgstr "偶數層反向"
msgid "Overhang reversal"
msgstr "懸空反向"
+# AI Translated
msgid ""
"Extrude perimeters that have a part over an overhang in the reverse direction on even layers. This alternating pattern can drastically improve steep overhangs.\n"
"\n"
"This setting can also help reduce part warping due to the reduction of stresses in the part walls."
msgstr ""
-"在偶數層上,對於有懸空部分的外圍輪廓,採用反向擠出。這種交替模式可以大幅改善陡峭的懸挑。\n"
+"在偶數層上,以反方向擠出部分位於懸空上方的牆。這種交替方式可大幅改善陡峭的懸空。\n"
"\n"
-"此設定還有助於減少因零件牆壁應力降低而導致的變形。"
+"此設定也能降低零件牆內的應力,有助於減少零件翹曲。"
+# AI Translated
msgid "Reverse only internal perimeters"
-msgstr "僅在內圍輪廓反向"
+msgstr "僅反向內牆"
+# AI Translated
msgid ""
"Apply the reverse perimeters logic only on internal perimeters.\n"
"\n"
@@ -14120,11 +16177,11 @@ msgid ""
"\n"
"For this setting to be the most effective, it is recommended to set the Reverse Threshold to 0 so that all internal walls print in alternating directions on even layers irrespective of their overhang degree."
msgstr ""
-"僅在內圍輪廓套用反向邏輯。\n"
+"僅對內牆套用反向邏輯。\n"
"\n"
-"此設定可顯著減少零件應力,因為應力會以交替方向分佈。這有助於減少零件翹曲,同時保持外部牆面的品質。此功能對於易翹曲的材料(例如 ABS/ASA),以及彈性線材(例如 TPU 和絲光 PLA)特別有用。它還可以幫助減少支撐上懸空區域的翹曲。\n"
+"此設定可大幅降低零件應力,因為應力會分散到交替的方向上。這應能減少零件翹曲,同時維持外牆品質。此功能對易翹曲的材料(例如 ABS/ASA),以及彈性線材(例如 TPU 和絲光 PLA)特別有用,也有助於減少支撐上方懸浮區域的翹曲。\n"
"\n"
-"為使此設定達到最佳效果,建議將反向門檻值設為 0,以確保所有內圍牆體在偶數層以交替方向列印,而不受懸垂角度的影響。"
+"為使此設定發揮最大效果,建議將「反向臨界值」設為 0,如此無論懸空程度如何,所有內牆都會在偶數層以交替方向列印。"
msgid "Bridge counterbore holes"
msgstr "橋接沉孔"
@@ -14146,31 +16203,36 @@ msgstr "部分橋接"
msgid "Sacrificial layer"
msgstr "犧牲層"
+# AI Translated
msgid "Reverse threshold"
-msgstr "反轉臨界值"
+msgstr "反向臨界值"
+# AI Translated
msgid "Overhang reversal threshold"
-msgstr "懸空反轉臨界值"
+msgstr "懸空反向臨界值"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Number of mm the overhang need to be for the reversal to be considered useful. Can be a % of the perimeter width.\n"
"Value 0 enables reversal on every even layers regardless.\n"
"When Detect overhang wall is not enabled, this option is ignored and reversal happens on every even layers regardless."
msgstr ""
-"懸空需要達到的 mm,才能使反轉被認為是有用的。該值可以是外牆寬度的百分比。\n"
-"設為 0 時,反轉將在所有偶數層上無條件啟用。\n"
-"如果未啟用『偵測懸空外牆』,此選項將被忽略,並且反轉會無條件發生在所有偶數層上。"
+"懸空需達到多少 mm,反向才被視為有效。可以是牆寬度的百分比(%)。\n"
+"設為 0 時,每個偶數層都會反向。\n"
+"若未啟用「偵測懸空牆」,此選項將被忽略,每個偶數層都會反向。"
msgid "Slow down for overhangs"
msgstr "懸空處降速"
+# AI Translated
msgid "Enable this option to slow down when printing overhangs. The speeds for different overhang percentages are set below."
-msgstr "開啟這個選項將降低不同懸空程度的走線的列印速度"
+msgstr "啟用此選項可在列印懸空時降低速度。不同懸空百分比的速度在下方設定。"
msgid "Slow down for curled perimeters"
msgstr "翹邊處降速"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
@@ -14186,56 +16248,108 @@ msgid ""
"3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
"\n"
"Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
-"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+"For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 75% overhang speed will be applied, limited by the bridge speed."
msgstr ""
"啟用此選項可在牆可能向上捲曲的區域降低列印速度。\n"
"例如,在列印像 Benchy 船體前端這類尖角上的懸空時,會套用額外的減速,以減少在多個層上不斷累積的捲曲。\n"
"\n"
"一般建議開啟此選項,除非您的列印裝置冷卻能力夠強,或列印速度夠慢,使得牆不會發生捲曲。 \n"
-"若以較高的外牆速度列印,此參數在減速時可能會產生牆面瑕疵,這是因為列印速度的差異可能過大,導致擠出機無法跟上所要求的流量變化。\n"
-"這些瑕疵的根本原因很可能是 PA 調校略有偏差,尤其是搭配較高的 PA 平滑時間時。\n"
+"若以較高的外牆速度列印,此參數在減速時可能會產生牆面缺陷,這是因為列印速度的差異可能過大,導致擠出機無法跟上所要求的流量變化。\n"
+"這些缺陷的根本原因很可能是 PA 調校略有偏差,尤其是搭配較高的 PA 平滑時間時。\n"
"\n"
"啟用此選項時的建議:\n"
"1. 將 Pressure Advance 平滑時間降低至 0.015 - 0.02,讓擠出機能快速回應速度變化。\n"
"2. 提高最小列印速度,以限制減速的幅度,並減少快慢區段之間的差異。\n"
-"3. 若仍出現瑕疵,請啟用平滑擠出率 (ERS) 以進一步平滑流量轉換。\n"
+"3. 若仍出現缺陷,請啟用「平滑擠出率」(ERS),以進一步平滑流量轉換。\n"
"\n"
"注意:啟用此選項時,懸空牆會被視為懸空,這表示即使懸空牆屬於橋接的一部分,仍會套用懸空列印速度。\n"
-"例如,當牆 100% 懸空、下方沒有牆支撐時,將會套用 100% 懸空列印速度。"
+"例如,當牆 100% 懸空、下方沒有牆支撐時,將會套用 75% 的懸空列印速度,並受橋接速度限制。"
msgid "mm/s or %"
msgstr "mm/s 或 %"
+# AI Translated
msgid ""
"Speed of the externally visible bridge extrusions.\n"
"\n"
-"In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+"In addition, if Slow down for curled perimeters is disabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
msgstr ""
-"外部可見橋接擠出的列印速度\n"
+"外部可見橋接擠出的列印速度。\n"
"\n"
-"如果停用了『翹邊處降速』或啟用了『經典懸空模式』,則對支撐率低於 13% 的懸空牆(無論是橋接的一部分還是懸空結構)將使用該列印速度。"
+"此外,如果停用了「翹邊處降速」,則對支撐率低於 13% 的懸空牆(無論是橋接的一部分還是懸空結構)將使用該列印速度。"
+# AI Translated
msgid "Speed of internal bridges. If the value is expressed as a percentage, it will be calculated based on the bridge_speed. Default value is 150%."
-msgstr "內部橋接速度。如果該值以百分比表示,將基於 bridge_speed 進行計算。預設值為 150%。"
+msgstr "內部橋接的速度。如果以百分比表示,將以 bridge_speed 為基準計算。預設值為 150%。"
+# AI Translated
msgid "This is the distance from the model to the outermost brim line."
-msgstr "從模型到 Brim 最外圈的距離"
+msgstr "從模型到最外圈 Brim 線的距離。"
+
+# AI Translated
+msgid "Leading brim length"
+msgstr "前緣 Brim 長度"
+
+# AI Translated
+msgid ""
+"Belt printers only. Extends the brim AHEAD of the object along the belt, on every downhill-facing edge of its contact area - both the object's first contact with the belt and any island that lands later. This apron is laid onto the belt before the object reaches it, so the leading edge has something already stuck down to hold on to.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Leading brim length + Brim width ahead of the object. Set Brim-object gap to 0, or the apron will not touch the object it is meant to anchor.\n"
+"\n"
+"On a tilted belt each layer lays one strip of the brim, so the thickness of the resulting brim sheet is set by flow rather than by layer height. Use Brim flow ratio to tune it.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"僅適用於輸送帶列印裝置。沿輸送帶將 Brim 延伸至物件前方,涵蓋其接觸區域中每一個朝下坡方向的邊,包括物件首次接觸輸送帶之處,以及之後才落到輸送帶上的任何島區。這段延伸部分會在物件到達之前先鋪在輸送帶上,讓前緣有已經黏牢的部分可以依附。\n"
+"\n"
+"在輸送帶表面上測量,並疊加在「Brim 寬度」之上:Brim 在物件前方延伸的距離為「Brim 與物件的間隙」+「前緣 Brim 長度」+「Brim 寬度」。請將「Brim 與物件的間隙」設為 0,否則延伸部分將無法接觸到它要固定的物件。\n"
+"\n"
+"在傾斜的輸送帶上,每一層只鋪設一條 Brim,因此所形成的 Brim 薄片厚度由流量決定,而非層高。請使用「Brim 流量比例」進行調整。\n"
+"\n"
+"設為 0 以停用。"
+
+# AI Translated
+msgid "Extra brim width"
+msgstr "額外 Brim 寬度"
+
+# AI Translated
+msgid ""
+"Belt printers only. Widens the brim SIDEWAYS, across the belt, without extending it further ahead of or behind the object. Use it when a part needs more grip along its length than Brim width alone gives.\n"
+"\n"
+"Measured on the belt surface, and added on top of Brim width: the brim reaches Brim-object gap + Brim width + Extra brim width to either side of the object. To extend the brim ahead of the object instead, use Leading brim length.\n"
+"\n"
+"Set to 0 to disable."
+msgstr ""
+"僅適用於輸送帶列印裝置。橫跨輸送帶向兩側加寬 Brim,而不會進一步向物件前方或後方延伸。當零件沿其長度方向需要比單靠「Brim 寬度」更強的附著力時使用。\n"
+"\n"
+"在輸送帶表面上測量,並疊加在「Brim 寬度」之上:Brim 在物件兩側延伸的距離為「Brim 與物件的間隙」+「Brim 寬度」+「額外 Brim 寬度」。若要改為向物件前方延伸 Brim,請使用「前緣 Brim 長度」。\n"
+"\n"
+"設為 0 以停用。"
msgid "Brim type"
msgstr "Brim 類型"
+# AI Translated
msgid "This controls the generation of the brim at outer and/or inner side of models. Auto means the brim width is analyzed and calculated automatically."
-msgstr "該參數控制在模型的外側和/或內側產生 Brim 。自動是指自動分析和計算邊框的寬度。"
+msgstr "此參數控制是否在模型的外側和/或內側產生 Brim。「自動」表示自動分析並計算 Brim 寬度。"
+# AI Translated
+msgid "Leading edge only"
+msgstr "僅前緣"
+
+# AI Translated
msgid "Brim-object gap"
-msgstr "Brim 與模型的間隙"
+msgstr "Brim 與物件的間隙"
+# AI Translated
msgid "This creates a gap between the innermost brim line and the object and can make the brim easier to remove."
-msgstr "在 Brim 和模型之間設定間隙,能夠讓 Brim 更容易拆除"
+msgstr "在最內圈 Brim 線與物件之間留出間隙,讓 Brim 更容易移除。"
+# AI Translated
msgid "Brim flow ratio"
-msgstr "邊緣流量比例"
+msgstr "Brim 流量比例"
+# AI Translated
msgid ""
"This factor affects the amount of material for brims.\n"
"\n"
@@ -14243,14 +16357,15 @@ msgid ""
"\n"
"Note: The resulting value will not be affected by the first-layer flow ratio."
msgstr ""
-"此係數會影響邊緣所使用的材料量。\n"
+"此係數會影響 Brim 所使用的材料量。\n"
"\n"
-"實際使用的邊緣流量是將此值乘以線材流量比例計算而得;若有設定,還會再乘以物件的流量比例。\n"
+"實際使用的 Brim 流量是將此值乘以線材流量比例計算而得;若有設定,還會再乘以物件的流量比例。\n"
"\n"
"注意:計算結果不會受首層流量比例影響。"
+# AI Translated
msgid "Brim follows compensated outline"
-msgstr "邊緣 遵循補償輪廓"
+msgstr "Brim 遵循補償輪廓"
# AI Translated
msgid ""
@@ -14259,22 +16374,25 @@ msgid ""
"\n"
"If your current setup already works well, enabling it may be unnecessary and can cause the brim to fuse with upper layers."
msgstr ""
-"啟用後,邊緣將與套用象腳補償之後的第一層輪廓幾何對齊。\n"
-"此選項適用於象腳補償會明顯改變第一層輪廓的情況。\n"
+"啟用後,Brim 將與套用象腳補償之後的首層牆幾何對齊。\n"
+"此選項適用於象腳補償會明顯改變首層輪廓的情況。\n"
"\n"
-"如果您目前的設定已經運作良好,則不一定需要啟用此選項,因為它可能導致邊緣與上方層黏合在一起。"
+"如果您目前的設定已經運作良好,則可能不需要啟用此選項,而且啟用後可能導致 Brim 與上方各層黏合在一起。"
+# AI Translated
msgid "Combine brims"
-msgstr "合併邊緣"
+msgstr "合併 Brim"
+# AI Translated
msgid "Combine multiple brims into one when they are close to each other. This can improve brim adhesion."
-msgstr "當多個邊緣彼此靠近時,將它們合併為一個。這可以改善邊緣附著力。"
+msgstr "當多個 Brim 彼此靠近時,將它們合併為一個。這可以改善 Brim 附著力。"
msgid "Brim ears"
msgstr "耳狀 Brim"
+# AI Translated
msgid "Only draw brim over the sharp edges of the model."
-msgstr "僅在模型的鋒利邊緣上產生 Brim 。"
+msgstr "僅在模型的尖銳邊緣產生 Brim。"
msgid "Brim ear max angle"
msgstr "耳狀 Brim 最大角度"
@@ -14291,12 +16409,13 @@ msgstr ""
msgid "Brim ear detection radius"
msgstr "耳狀 Brim 偵測半徑"
+# AI Translated
msgid ""
"The geometry will be decimated before detecting sharp angles. This parameter indicates the minimum length of the deviation for the decimation.\n"
"0 to deactivate."
msgstr ""
"在偵測尖銳角度之前,幾何形狀將被簡化。此參數表示簡化的最小偏差長度。\n"
-"設為 0 以停用"
+"設為 0 以停用。"
# AI Translated
msgid "Brim ears outer only"
@@ -14306,8 +16425,9 @@ msgstr "僅外輪廓產生耳狀 Brim"
msgid "Generate mouse ears only on the outer contour of the model, excluding holes and enclosed sections."
msgstr "僅在模型的外輪廓上產生耳狀 Brim,不包含孔洞與封閉區域。"
+# AI Translated
msgid "upward compatible machine"
-msgstr "向上相容的裝置"
+msgstr "向上相容的列印裝置"
msgid "Condition"
msgstr "條件"
@@ -14318,8 +16438,9 @@ msgstr "使用啟用的列印裝置設定值來進行布林運算的表示式。
msgid "A Boolean expression using the configuration values of an active print profile. If this expression evaluates to true, this profile is considered compatible with the active print profile."
msgstr "使用啟用的列印設定檔值來進行布林運算的表示式。如果此表示式的結果為 true,則該設定檔將被視為與目前啟用的列印設定檔相容。"
+# AI Translated
msgid "This determines the print sequence, allowing you to print layer-by-layer or object-by-object."
-msgstr "列印順序,逐層列印或者逐件列印"
+msgstr "決定列印順序,可選擇逐層列印或逐件列印。"
msgid "By layer"
msgstr "逐層"
@@ -14361,20 +16482,24 @@ msgstr "全部比較(最短路徑)"
msgid "Snake"
msgstr "蛇形"
+# AI Translated
msgid "Slow printing down for better layer cooling"
-msgstr "降低列印速度 以得到更好的冷卻"
+msgstr "降低列印速度以改善層冷卻"
+# AI Translated
msgid "Enable this option to slow printing speed down to ensure that the final layer time is not shorter than the layer time threshold in \"Max fan speed threshold\", so that the layer can be cooled for a longer time. This can improve the quality for small details."
-msgstr "啟用此選項可降低列印速度,確保最終層的列印時間不少於「最大風扇速度臨界值」中的層時間設定值,以延長冷卻時間。此功能有助於提升針狀結構和細小細節的冷卻效果"
+msgstr "啟用此選項會降低列印速度,確保最終的層列印時間不少於「最大風扇速度臨界值」中的層時間臨界值,讓該層有更長的冷卻時間。這可提升細小細節的品質。"
msgid "Normal printing"
msgstr "普通列印"
+# AI Translated
msgid "This is the default acceleration for both normal printing and travel after the first layer."
-msgstr "除首層之外的預設的列印和空駛的加速度"
+msgstr "首層之後一般列印與空駛的預設加速度。"
+# AI Translated
msgid "Acceleration of travel moves."
-msgstr "空駛加速度"
+msgstr "空駛的加速度。"
msgid "First layer travel"
msgstr "首層空駛"
@@ -14389,26 +16514,31 @@ msgstr ""
msgid "mm/s² or %"
msgstr "mm/s² 或 %"
+# AI Translated
msgid "Acceleration of bridges. If the value is expressed as a percentage (e.g. 50%), it will be calculated based on the outer wall acceleration."
-msgstr "橋接加速度。 如果該值以百分比表示(例如 50%),則將根據外牆加速度進行計算。"
+msgstr "橋接的加速度。如果以百分比表示(例如 50%),將以外牆加速度為基準計算。"
msgid "Default filament profile"
msgstr "預設線材設定檔"
+# AI Translated
msgid "Default filament profile when switching to this machine profile."
-msgstr "切換列印裝置時自動更換預設線材設定檔"
+msgstr "切換到此列印裝置設定檔時預設使用的線材設定檔。"
+# AI Translated
msgid "Default process profile"
-msgstr "預設切片設定檔"
+msgstr "預設列印參數設定檔"
+# AI Translated
msgid "Default process profile when switching to this machine profile."
-msgstr "切換列印裝置時自動更換預設切片設定檔"
+msgstr "切換到此列印裝置設定檔時預設使用的列印參數設定檔。"
msgid "Activate air filtration"
msgstr "啟用空氣過濾器/排風扇"
+# AI Translated
msgid "Activate for better air filtration. G-code command: M106 P3 S(0-255)"
-msgstr "啟動空氣過濾器/排風扇。 G-code 指令:M106 P3 S(0-255)"
+msgstr "啟用以獲得更好的空氣過濾。G-code 指令:M106 P3 S(0-255)"
msgid "Enable this to override the fan speed set in custom G-code during print."
msgstr "啟用此選項可覆寫列印期間在自訂 G-code 中設定的風扇速度。"
@@ -14416,26 +16546,33 @@ msgstr "啟用此選項可覆寫列印期間在自訂 G-code 中設定的風扇
msgid "On completion"
msgstr "完成時"
+# AI Translated
msgid "Enable this to override the fan speed set in custom G-code after print completion."
-msgstr "啟用此選項可覆蓋列印完成後自訂 G-code 中設定的風扇速度。"
+msgstr "啟用此選項可覆寫列印完成後自訂 G-code 中設定的風扇速度。"
+# AI Translated
msgid "Speed of exhaust fan during printing. This speed will override the speed in filament custom G-code."
-msgstr "列印過程中排風扇的速度。此速度將覆蓋線材自訂 G-code 中的速度"
+msgstr "列印過程中排風扇的速度。此速度將覆寫線材自訂 G-code 中的速度。"
+# AI Translated
msgid "Speed of exhaust fan after printing completes."
-msgstr "列印完成後排風扇的轉速"
+msgstr "列印完成後排風扇的速度。"
+# AI Translated
+# Needs human review: Label is followed by the number field and the sidetext 層 (Filament > Cooling): check it reads 關閉冷卻的前 [N] 層.
msgid "No cooling for the first"
-msgstr "前N層關閉零件風扇"
+msgstr "關閉冷卻的前"
+# AI Translated
msgid "Turn off all cooling fans for the first few layers. This can be used to improve build plate adhesion."
-msgstr "對開始的一些層關閉所有的物件冷卻風扇。通常關閉首層冷卻用來獲得更好的首層黏附"
+msgstr "在最初幾層關閉所有冷卻風扇。可用於改善列印板附著力。"
msgid "Don't support bridges"
msgstr "不支撐橋接"
+# AI Translated
msgid "This disables supporting bridges, which decreases the amount of support required. Bridges can usually be printed directly without support over a reasonable distance."
-msgstr "不對整個橋接面進行支撐,否則支撐體會很大。不是很長的橋接通常可以無支撐直接列印"
+msgstr "不支撐橋接,可減少所需的支撐量。在合理的距離內,橋接通常可以不加支撐直接列印。"
msgid "Thick external bridges"
msgstr "增厚外部橋接"
@@ -14464,6 +16601,7 @@ msgstr ""
msgid "Extra bridge layers (beta)"
msgstr "額外橋接層(Beta 版)"
+# AI Translated
msgid ""
"This option enables the generation of an extra bridge layer over internal and/or external bridges.\n"
"\n"
@@ -14477,16 +16615,17 @@ msgid ""
"3. Internal bridge only - generates second bridge layers for internal bridges over sparse infill only. Please note that the internal bridges count towards the top shell layer count of your model. The second internal bridge layer will be extruded as close to perpendicular to the first as possible. If multiple regions in the same island, with varying bridge angles are present, the last region of that island will be selected as the angle reference\n"
"4. Apply to all - generates second bridge layers for both internal and external-facing bridges\n"
msgstr ""
-"此選項可在內部和/或外部橋接結構上額外產生一層橋接填充。\n"
+"此選項會在內部和/或外部橋接上額外產生一層橋接層。\n"
"\n"
-"額外的橋接層能改善橋接區域的外觀與穩定性,提供更佳的實心填充支撐。這對於高速列印機特別有幫助,因為橋接與實心填充的列印速度可能有顯著差異。額外的橋接層還能減少頂部表面的起皺現象,並降低外部橋接層與周圍輪廓分離的風險。\n"
+"額外的橋接層能讓實心填充獲得更好的支撐,因而改善橋接的外觀與可靠性。這對高速列印裝置特別有用,因為橋接與實心填充的速度差異很大。額外的橋接層可減少頂面的起皺現象,並減少外部橋接層與周圍牆分離的情形。\n"
"\n"
-"一般建議將此選項設定為「僅外部橋接」,除非特定的切片模型需要其他調整。\n"
-"選項說明:\n"
-"1. 停用 - 不啟用第二層橋接層(預設值,確保與其他設定相容)。\n"
-"2.\t僅外部橋接 - 僅對外部橋接區域新增第二層橋接層。請注意,若橋接結構過短或寬度小於設定的輪廓數量,則不會產生額外橋接層,因為這樣的結構不會受益於第二層橋接。如果啟用,第二層橋接層將與第一層平行擠出,以提升橋接的強度。\n"
-"3. 僅內部橋接 - 僅為內部橋接區域(例如稀疏填充上的橋接部分)新增第二層橋接層。請注意,內部橋接層會計入模型的頂部外殼層數。第二層內部橋接層的擠出方向會盡可能接近垂直於第一層,若同一區域內存在多個橋接角度,則該區域的最後一個部分將作為角度參考。\n"
-"4. 套用於所有橋接區域 - 為內部與外部橋接區域都新增第二層橋接層。\n"
+"一般建議至少設為「僅外部橋接」,除非發現切片模型有特定問題。\n"
+"\n"
+"選項:\n"
+"1. 停用:不產生第二橋接層。這是預設值,用於維持相容性\n"
+"2. 僅外部橋接:僅為朝外的橋接產生第二橋接層。請注意,比所設牆層數更短或更窄的小型橋接會被略過,因為它們無法從第二橋接層獲益。若有產生,第二橋接層將與第一橋接層平行擠出,以增強橋接強度\n"
+"3. 僅內部橋接:僅為稀疏填充上方的內部橋接產生第二橋接層。請注意,內部橋接會計入模型的頂部外殼層數。第二內部橋接層會盡可能以接近垂直於第一層的方向擠出。若同一島區中存在多個橋接角度不同的區域,將以該島區的最後一個區域作為角度參考\n"
+"4. 全部套用:為內部與朝外的橋接都產生第二橋接層\n"
msgid "External bridge only"
msgstr "僅外部橋接"
@@ -14494,12 +16633,14 @@ msgstr "僅外部橋接"
msgid "Internal bridge only"
msgstr "僅內部橋接"
+# AI Translated
msgid "Apply to all"
-msgstr "套用於所有橋接區域"
+msgstr "全部套用"
msgid "Filter out small internal bridges"
msgstr "忽略過小的內部橋接"
+# AI Translated
msgid ""
"This option can help reduce pillowing on top surfaces in heavily slanted or curved models.\n"
"By default, small internal bridges are filtered out and the internal solid infill is printed directly over the sparse infill. This works well in most cases, speeding up printing without too much compromise on top surface quality.\n"
@@ -14509,46 +16650,56 @@ msgid ""
"2. Limited filtering - creates internal bridges on heavily slanted surfaces while avoiding unnecessary bridges. This works well for most difficult models\n"
"3. No filtering - creates internal bridges on every potential internal overhang. This option is useful for heavily slanted top surface models; however, in most cases, it creates too many unnecessary bridges."
msgstr ""
-"此選項可幫助降低在高度傾斜或曲面模型上的頂部表面起皺問題。\n"
-"預設情況下,小型內部橋接會被過濾掉,內部實心填充會直接列印在稀疏填充上。這種方式適用於大多數情況,能提升列印速度,同時維持合理的頂部表面品質。\n"
-"然而,在高度傾斜或曲面的模型上,特別是當稀疏填充密度過低時,未受支撐的實心填充可能會翹曲,導致表面起皺。\n"
-"啟用「有限過濾」或「不過濾」模式,將允許在部分未完全支撐的內部實心填充區域上列印內部橋接層。下列選項可調整過濾的敏感度,決定哪些區域需要產生內部橋接。\n"
-"選項說明:\n"
-"1.\t過濾 - 預設選項,能有效過濾小型內部橋接,在大多數情況下效果良好。\n"
-"2. 有限過濾 - 僅在高度傾斜的表面上建立內部橋接,同時避免產生過多無用的橋接結構,適合處理較複雜的模型。\n"
-"3.\t不過濾 - 在所有可能的內部懸垂區域上建立內部橋接,適用於高度傾斜的頂部表面模型,但通常會產生過多不必要的橋接結構。"
+"此選項有助於減少高度傾斜或曲面模型頂面的起皺現象。\n"
+"預設情況下,小型內部橋接會被過濾掉,內部實心填充會直接列印在稀疏填充上。這在大多數情況下效果良好,可加快列印速度,又不會過度犧牲頂面品質。\n"
+"然而,在高度傾斜或曲面的模型中,特別是稀疏填充密度過低時,未受支撐的實心填充可能會翹曲,導致起皺。\n"
+"啟用「有限過濾」或「不過濾」時,會在稍微缺乏支撐的內部實心填充上列印內部橋接層。下列選項控制過濾的敏感度,也就是決定在哪些地方產生內部橋接:\n"
+"1. 過濾:啟用此選項。這是預設行為,在大多數情況下效果良好\n"
+"2. 有限過濾:在高度傾斜的表面上產生內部橋接,同時避免不必要的橋接。對大多數較難處理的模型效果良好\n"
+"3. 不過濾:在每個可能的內部懸空處產生內部橋接。此選項適用於頂面高度傾斜的模型,但在大多數情況下會產生過多不必要的橋接。"
+# AI Translated
+msgid "Filter"
+msgstr "過濾"
+
+# AI Translated
msgid "Limited filtering"
-msgstr "局部篩選"
+msgstr "有限過濾"
+# AI Translated
msgid "No filtering"
-msgstr "不篩選"
+msgstr "不過濾"
msgid "Max bridge length"
msgstr "最大橋接長度"
+# AI Translated
msgid "This is the maximum length of bridges that don't need support. Set it to 0 if you want all bridges to be supported, and set it to a very large value if you don't want any bridges to be supported."
-msgstr "不需要支撐的橋接最大長度。如果希望支援所有橋接,請將其設定為 0;如果不希望支援任何橋接,請將其設定為非常大的值。"
+msgstr "不需要支撐的橋接最大長度。若希望所有橋接都有支撐,請設為 0;若不希望任何橋接有支撐,請設為非常大的值。"
msgid "End G-code"
msgstr "結尾 G-code"
-msgid "Add end G-Code when finishing the entire print."
-msgstr "所有列印結束時的結尾 G-code"
+# AI Translated
+msgid "Add end G-code when finishing the entire print."
+msgstr "整個列印結束時加入的結尾 G-code。"
# AI Translated
msgid "Between Object G-code"
msgstr "物件之間的 G-code"
+# AI Translated
msgid "Insert G-code between objects. This parameter will only come into effect when you print your models object by object."
-msgstr "在物件之間插入 G-code。此參數僅在逐次列印時生效"
+msgstr "在物件之間插入 G-code。此參數僅在逐件列印時生效。"
+# AI Translated
msgid "Add end G-code when finishing the printing of this filament."
-msgstr "使用該線材列印結束時的結尾 G-code"
+msgstr "結束使用此線材列印時加入的結尾 G-code。"
msgid "Ensure vertical shell thickness"
msgstr "確保垂直外殼厚度"
+# AI Translated
msgid ""
"Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)\n"
"None: No solid infill will be added anywhere. Caution: Use this option carefully if your model has sloped surfaces\n"
@@ -14559,10 +16710,10 @@ msgid ""
msgstr ""
"在傾斜面附近新增實心填充,以保證垂直外殼的厚度(頂部+底部實心層)\n"
"無:不在任何地方新增實心填充。注意:如果您的模型有傾斜表面,請謹慎使用此選項\n"
-"僅關鍵部位:避免為牆體新增實心填充\n"
-"適中:僅為大角度傾斜的表面新增實心填充\n"
+"僅關鍵部分:避免為牆新增實心填充\n"
+"適度:僅為大角度傾斜的表面新增實心填充\n"
"全部:為所有適合的傾斜表面新增實心填充\n"
-"預設值為 全部。"
+"預設值為「全部」。"
msgid "Critical Only"
msgstr "僅關鍵部分"
@@ -14573,8 +16724,9 @@ msgstr "適度"
msgid "Top surface pattern"
msgstr "頂面圖案"
+# AI Translated
msgid "This is the line pattern for top surface infill."
-msgstr "頂面填充的走線圖案"
+msgstr "頂面填充的走線圖案。"
msgid "Monotonic"
msgstr "單調"
@@ -14607,8 +16759,9 @@ msgstr "八角螺旋"
msgid "Top surface density"
msgstr "頂面密度"
+# AI Translated
msgid "Density of top surface layer. A value of 100% creates a fully solid, smooth top layer. Reducing this value results in a textured top surface, according to the chosen top surface pattern. A value of 0% will result in only the walls on the top layer being created. Intended for aesthetic or functional purposes, not to fix issues such as over-extrusion."
-msgstr "頂面層的密度。100% 將建立完全實心且平滑的頂層。降低此數值會根據所選的頂面圖案產生紋理表面。0% 則只會建立頂層的牆體。此功能旨在實現美觀或功能需求,而非修正過擠等問題"
+msgstr "頂面層的密度。100% 會產生完全實心且平滑的頂層。降低此數值會依所選的頂面圖案產生帶紋理的頂面。0% 則只會產生頂層的牆。此功能用於美觀或功能目的,而非修正過度擠出等問題。"
# AI Translated
msgid "Top surface expansion"
@@ -14667,18 +16820,20 @@ msgstr "向外"
msgid "Bottom surface pattern"
msgstr "底面圖案"
+# AI Translated
msgid "This is the line pattern of bottom surface infill, not including bridge infill."
-msgstr "除了橋接外的底面填充的走線圖案"
+msgstr "底面填充的走線圖案,不包括橋接填充。"
msgid "Bottom surface density"
msgstr "底面密度"
+# AI Translated
msgid ""
"Density of the bottom surface layer. Intended for aesthetic or functional purposes, not to fix issues such as over-extrusion.\n"
"WARNING: Lowering this value may negatively affect bed adhesion."
msgstr ""
-"底面層的密度。此功能旨在實現美觀或功能需求,而非修正過擠等問題。\n"
-"警告:降低此數值可能會對熱床附著力產生負面影響"
+"底面層的密度。此功能用於美觀或功能目的,而非修正過度擠出等問題。\n"
+"警告:降低此數值可能會對熱床附著力產生負面影響。"
# AI Translated
msgid "Top surface fill order"
@@ -14711,59 +16866,68 @@ msgstr ""
msgid "Internal solid infill pattern"
msgstr "內部實心填充圖案"
+# AI Translated
msgid "Line pattern of internal solid infill. if the detect narrow internal solid infill be enabled, the concentric pattern will be used for the small area."
-msgstr "內部實心填充的線型圖案。如果啟用了偵測狹窄的內部實心填充,將使用同心圓圖案來填充小區域。"
+msgstr "內部實心填充的線型圖案。若啟用「識別狹窄內部實心填充」,小區域將使用同心圖案填充。"
+# AI Translated
msgid "Line width of outer wall. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "外牆的線寬。如果以 % 表示,將以噴嘴直徑為基準來計算。"
+msgstr "外牆的線寬。如果以 % 表示,將以噴嘴直徑為基準計算。"
+# AI Translated
msgid "This is the printing speed for the outer walls of parts. These are generally printed slower than inner walls for higher quality."
-msgstr "外牆的列印速度。它通常比內壁速度慢,以獲得更好的列印品質。"
+msgstr "外牆的列印速度。外牆通常以比內牆慢的速度列印,以獲得更好的品質。"
msgid "Small perimeters"
msgstr "微小部位"
-msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
-msgstr "此獨立設定將影響半徑小於或等於 small_perimeter_threshold 的外牆列印速度(通常指孔洞)。若設定為百分比(如 80%),將基於上述外牆速度進行計算。設定為 0 表示自動調整。"
+# AI Translated
+msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above."
+msgstr "此獨立設定會影響半徑小於或等於 small_perimeter_threshold 的牆(通常是孔洞)的列印速度。如果以百分比表示(例如 80%),將以上方的外牆速度設定為基準計算。"
msgid "Small perimeters threshold"
msgstr "微小部位周長臨界值"
+# AI Translated
msgid "This sets the threshold for small perimeter length. Default threshold is 0mm."
-msgstr "這設定了微小部位周長的臨界值。 預設臨界值是 0mm"
+msgstr "設定微小部位周長的臨界值。預設臨界值為 0mm。"
# AI Translated
msgid "Small support perimeters"
-msgstr "小型支撐周長"
+msgstr "支撐微小部位"
# AI Translated
-msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
-msgstr "與「Small perimeters」相同,但用於支撐。此獨立設定會影響面積 <= `small_support_perimeter_threshold` 的支撐速度。若以百分比表示(例如:80%),則會依上方的支撐或支撐介面速度設定計算。設為零表示自動。"
+msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above."
+msgstr "與「微小部位」相同,但用於支撐。此獨立設定會影響面積 <= `small_support_perimeter_threshold` 的支撐速度。如果以百分比表示(例如:80%),將以上方的支撐或支撐面速度設定為基準計算。"
# AI Translated
msgid "Small support perimeters threshold"
-msgstr "小型支撐周長門檻"
+msgstr "支撐微小部位臨界值"
# AI Translated
msgid "This sets the threshold for small support perimeter length. The default threshold is 0mm."
-msgstr "這會設定小型支撐周長長度的門檻。預設門檻為 0mm。"
+msgstr "設定支撐微小部位周長的臨界值。預設臨界值為 0mm。"
msgid "Walls printing order"
msgstr "牆列印順序"
+# AI Translated
msgid ""
"Print sequence of the internal (inner) and external (outer) walls.\n"
"\n"
"Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
"\n"
-"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+"Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended over the Outer/Inner option in most cases.\n"
"\n"
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
msgstr ""
-"『內牆』與『外牆』牆體的列印順序。\n"
-"使用『內牆/外牆』順序可獲得最佳的懸空效果。這是因為懸空牆體在列印時可以附著到相鄰的牆。然而,此選項會略微降低表面品質,因為外牆被壓到內牆上而變形。\n"
-"使用『內牆/外牆/內牆』順序可獲得最佳的外表面光潔度和尺寸精度,因為外牆的列印不會受到內牆影響。然而,因為外牆缺少內牆的支撐,懸空性能會有所降低。此選項需要至少 3 層牆才能生效,它會先從第 3 層牆開始列印內牆,接著列印外部周邊,最後列印最內層的內牆。在大多數情況下,建議選擇此選項,而不是外牆/內牆的順序設定。\n"
-"採用『外牆/內牆』順序可以達到與『內牆/外牆/內牆』設定相同的外牆表面品質與尺寸精度。然而,Z 軸接縫的均勻性會稍差,因為新層的首次擠出會在可見的表面開始。"
+"內牆與外牆的列印順序。\n"
+"\n"
+"使用「內牆/外牆」可獲得最佳的懸空效果。這是因為懸空牆體在列印時可以附著到相鄰的牆。然而,此選項會略微降低表面品質,因為外牆被壓到內牆上而變形。\n"
+"\n"
+"使用「內牆/外牆/內牆」可獲得最佳的外表面光潔度和尺寸精度,因為外牆的列印不會受到內牆影響。然而,因為外牆缺少內牆的支撐,懸空性能會有所降低。此選項需要至少 3 層牆才能生效,它會先從第 3 層牆開始列印內牆,接著列印外牆,最後列印最內層的內牆。在大多數情況下,建議選擇此選項,而不是「外牆/內牆」。\n"
+"\n"
+"使用「外牆/內牆」可以達到與「內牆/外牆/內牆」相同的外牆表面品質與尺寸精度。然而,Z 軸接縫的均勻性會稍差,因為新層的首次擠出會在可見的表面開始。"
msgid "Inner/Outer"
msgstr "內牆/外牆"
@@ -14777,13 +16941,15 @@ msgstr "內牆/外牆/內牆"
msgid "Print infill first"
msgstr "先列印填充"
+# AI Translated
msgid ""
"Order of wall/infill. When the tickbox is unchecked the walls are printed first, which works best in most cases.\n"
"\n"
"Printing infill first may help with extreme overhangs as the walls have the neighbouring infill to adhere to. However, the infill will slightly push out the printed walls where it is attached to them, resulting in a worse external surface finish. It can also cause the infill to shine through the external surfaces of the part."
msgstr ""
-"牆體與填充的列印順序。當未勾選選框時,牆體會先列印,這在大多數情況下效果最佳。\n"
-"先列印填充可能對極端懸空有幫助,因為牆體可以附著在相鄰的填充上。然而,填充會在接觸牆體處稍微推動牆體,導致外部表面光潔度下降。同時,填充還可能透過零件的外表面顯現出來。"
+"牆與填充的列印順序。未勾選時會先列印牆,這在大多數情況下效果最佳。\n"
+"\n"
+"先列印填充可能有助於改善極端懸空,因為牆可以附著在相鄰的填充上。然而,填充會在與牆接觸處將已列印的牆稍微向外推,導致外表面光潔度變差。填充也可能從零件的外表面透出來。"
msgid "Wall loop direction"
msgstr "牆體列印方向"
@@ -14807,17 +16973,19 @@ msgstr "順時針"
# AI Translated
msgid "Distance to rod"
-msgstr "至桿件的距離"
+msgstr "至橫桿的距離"
# AI Translated
msgid "Horizontal distance of the nozzle tip to the rod's farther edge. Used for collision avoidance in by-object printing."
-msgstr "噴嘴尖端到桿件較遠一側邊緣的水平距離。用於逐件列印時的避障。"
+msgstr "噴嘴尖端到橫桿較遠一側邊緣的水平距離。用於逐件列印時的避障。"
+# AI Translated
msgid "Height to rod"
-msgstr "到橫杆高度"
+msgstr "到橫桿高度"
+# AI Translated
msgid "Distance from the nozzle tip to the lower rod. Used for collision avoidance in by-object printing."
-msgstr "噴嘴尖端到下方滑杆的距離。用於在逐件列印中避免碰撞。"
+msgstr "噴嘴尖端到下方橫桿的距離。用於在逐件列印中避免碰撞。"
msgid "Height to lid"
msgstr "到頂蓋高度"
@@ -14837,14 +17005,16 @@ msgstr "噴嘴尖端的高度。"
msgid "Bed mesh min"
msgstr "熱床網格最小值"
+# AI Translated
msgid "This option sets the min point for the allowed bed mesh area. Due to the probe's XY offset, most printers are unable to probe the entire bed. To ensure the probe point does not go outside the bed area, the minimum and maximum points of the bed mesh should be set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not exceed these min/max points. This information can usually be obtained from your printer manufacturer. The default setting is (-99999, -99999), which means there are no limits, thus allowing probing across the entire bed."
-msgstr "此選項設定允許的熱網格區域的最小值。由於探測器的 XY 偏移,大多數列印裝置無法探測整個熱床。為確保感測範圍不超出熱床區域,應適當設定熱床網格的最小值和最大值。OrcaSlicer 會確保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出這些最小值/最大值。此訊息通常可從裝置製造商處取得。預設設定為 (-99999, -99999),表示無限制,允許探測整個熱床。"
+msgstr "此選項設定允許的熱床網格區域的最小值。由於探測器的 XY 偏移,大多數列印裝置無法探測整個熱床。為確保探測點不超出熱床區域,應適當設定熱床網格的最小值和最大值。OrcaSlicer 會確保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出這些最小值/最大值。此資訊通常可從列印裝置製造商處取得。預設設定為 (-99999, -99999),表示無限制,允許探測整個熱床。"
msgid "Bed mesh max"
msgstr "熱床網格最大值"
+# AI Translated
msgid "This option sets the max point for the allowed bed mesh area. Due to the probe's XY offset, most printers are unable to probe the entire bed. To ensure the probe point does not go outside the bed area, the minimum and maximum points of the bed mesh should be set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not exceed these min/max points. This information can usually be obtained from your printer manufacturer. The default setting is (99999, 99999), which means there are no limits, thus allowing probing across the entire bed."
-msgstr "此選項設定允許的熱網格區域的最大值。由於探測器的 XY 偏移,大多數列印裝置無法探測整個熱床。為確保感測範圍不超出熱床區域,應適當設定熱床網格的最小值和最大值。OrcaSlicer 會確保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出這些最小值/最大值。此訊息通常可從裝置製造商處取得。預設設定為 (-99999, -99999),表示無限制,允許探測整個熱床。"
+msgstr "此選項設定允許的熱床網格區域的最大值。由於探測器的 XY 偏移,大多數列印裝置無法探測整個熱床。為確保探測點不超出熱床區域,應適當設定熱床網格的最小值和最大值。OrcaSlicer 會確保 adaptive_bed_mesh_min/adaptive_bed_mesh_max 的值不超出這些最小值/最大值。此資訊通常可從列印裝置製造商處取得。預設設定為 (99999, 99999),表示無限制,允許探測整個熱床。"
msgid "Probe point distance"
msgstr "探測間距"
@@ -14855,8 +17025,9 @@ msgstr "此選項用於設定 X 和 Y 方向探測點之間的首選距離(網
msgid "Mesh margin"
msgstr "網格邊緣距離"
+# AI Translated
msgid "This option determines the additional distance by which the adaptive bed mesh area should be expanded in the XY directions."
-msgstr "此選項決定適應性床面網格區域在 XY 方向上應該擴展的額外距離。"
+msgstr "此選項決定適應性熱床網格區域在 XY 方向上應擴展的額外距離。"
msgid "Grab length"
msgstr "抓取長度"
@@ -14864,8 +17035,9 @@ msgstr "抓取長度"
msgid "Extruder Color"
msgstr "擠出機顏色"
+# AI Translated
msgid "Only used as a visual help on UI."
-msgstr "作為介面上的輔助"
+msgstr "僅作為介面上的視覺輔助。"
msgid "Extruder offset"
msgstr "擠出機偏移"
@@ -14887,16 +17059,19 @@ msgstr ""
msgid "Enable pressure advance"
msgstr "啟用 Pressure Advance"
+# AI Translated
msgid "Enable pressure advance, auto calibration result will be overwritten once enabled."
-msgstr "啟用 Pressure Advance 功能,啟用後將覆蓋自動校正結果。"
+msgstr "啟用 Pressure Advance,啟用後將覆寫自動校正結果。"
# AI Translated
msgid "Pressure advance (Klipper) AKA Linear advance factor (Marlin)."
msgstr "Pressure Advance(Klipper),即 Marlin 中的 Linear Advance 係數。"
+# AI Translated
msgid "Enable adaptive pressure advance (beta)"
-msgstr "適應性 Pressure Advance 功能(Beta)"
+msgstr "啟用適應性 Pressure Advance(Beta)"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"With increasing print speeds (and hence increasing volumetric flow through the nozzle) and increasing accelerations, it has been observed that the effective PA value typically decreases. This means that a single PA value is not always 100% optimal for all features and a compromise value is usually used that does not cause too much bulging on features with lower flow speed and accelerations while also not causing gaps on faster features.\n"
@@ -14906,15 +17081,18 @@ msgid ""
"When enabled, the pressure advance value above is overridden. However, a reasonable default value above is strongly recommended to act as a fallback and for when tool changing.\n"
"\n"
msgstr ""
-"隨著列印速度的提高(因此噴嘴內的體積流速增加)以及加速度的增加,已觀察到有效的 Pressure Advance(PA)值通常會下降。這意味著單一的 PA 值並不總是對所有特徵都能達到最佳效果,通常會使用一個折衷值,以減少在較低流速和加速度下的特徵出現過多凸起,同時避免在更快的特徵中出現間隙。\n"
+"隨著列印速度提高(因而通過噴嘴的體積流量增加)以及加速度提高,已觀察到有效的 PA 值通常會下降。這表示單一的 PA 值並非對所有特徵都是 100% 最佳,通常只能使用一個折衷值,既不會在流量和加速度較低的特徵上造成過多凸起,也不會在較快的特徵上造成間隙。\n"
"\n"
-"此功能旨在透過建模的方式,讓擠出系統在不同體積流速和加速度下的反應狀態來解決這一限制。內部會產生一個擬合模型,可根據給定的體積流速和加速度推算出所需的 Pressure Advance 值,並根據目前的列印條件將該值傳送到列印裝置。\n"
+"此功能旨在解決這項限制:依列印時的體積流量和加速度,對列印裝置擠出系統的反應進行建模。它會在內部產生一個擬合模型,可推算出任意體積流量和加速度下所需的 Pressure Advance,再依目前的列印條件傳送給列印裝置。\n"
+"\n"
+"啟用後,上方的 Pressure Advance 值將被覆寫。但仍強烈建議在上方設定合理的預設值,作為備用值,並在換工具時使用。\n"
"\n"
-"啟用後,上述的 Pressure Advance 值將被覆蓋。然而,建議設定一個合理的預設值,以作為備用或擠出機更換時的回推值。\n"
+# AI Translated
msgid "Adaptive pressure advance measurements (beta)"
-msgstr "適應性 Pressure Advance 測量功能(Beta)"
+msgstr "適應性 Pressure Advance 測量值(Beta)"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Add sets of pressure advance (PA) values, the volumetric flow speeds and accelerations they were measured at, separated by a comma. One set of values per line. For example\n"
@@ -14928,20 +17106,20 @@ msgid ""
"2. Take note of the optimal PA value for each volumetric flow speed and acceleration. You can find the flow number by selecting flow from the color scheme drop down and move the horizontal slider over the PA pattern lines. The number should be visible at the bottom of the page. The ideal PA value should be decreasing the higher the volumetric flow is. If it is not, confirm that your extruder is functioning correctly. The slower and with less acceleration you print, the larger the range of acceptable PA values. If no difference is visible, use the PA value from the faster test\n"
"3. Enter the triplets of PA values, Flow and Accelerations in the text box here and save your filament profile."
msgstr ""
-"新增 Pressure Advance (PA) 值、體積流速和加速度的資料集,使用逗號分隔。每行一組資料。例如:\n"
+"新增多組 Pressure Advance(PA)值,以及測得這些值時的體積流量和加速度,以逗號分隔。每行一組值。例如:\n"
"0.04,3.96,3000\n"
"0.033,3.96,10000\n"
"0.029,7.91,3000\n"
"0.026,7.91,10000\n"
"\n"
"校正方法:\n"
-"1. 為每個加速度值執行至少 3 個速度的 Pressure Advance 測試。建議至少測試外牆速度、內牆速度和設定檔中最快的特徵列印速度(通常是稀疏或實心填充)。然後對最慢和最快的列印加速度執行相同速度的測試,但不超過 Klipper 輸入整形器建議的最大加速度。\n"
-"2. 記錄每個體積流速和加速度的最佳 Pressure Advance (PA) 值。您可以透過從顏色方案下拉選單中選擇流量,並將水平滑桿移動到 PA 測試線的圖案來找到流量數值。該數值應顯示在頁面底部。理想的 PA 值應隨著體積流速的增加而減小。如果不是,請檢查您的擠出機是否正常工作。當列印速度較慢且加速度較低時,可接受的 PA 值範圍會更大。如果看不出差異,請採用最快測試的 PA 值。\n"
-"3. 將 PA 值、流量和加速度的三組資料輸入到此文字框中,然後儲存您的線材設定檔"
+"1. 針對每個加速度值,至少以 3 種速度執行 Pressure Advance 測試。建議至少測試外牆速度、內牆速度,以及設定檔中最快的特徵列印速度(通常是稀疏或實心填充)。接著以最慢和最快的列印加速度對相同速度執行測試,加速度不要超過 Klipper 輸入整形建議的最大加速度\n"
+"2. 記錄每個體積流量和加速度下的最佳 PA 值。在配色方案下拉選單中選擇流量,然後將水平滑桿移到 PA 圖案線上,即可找到流量數值。該數值會顯示在頁面底部。理想的 PA 值應隨體積流量增加而減小。若非如此,請確認擠出機運作正常。列印速度越慢、加速度越低,可接受的 PA 值範圍就越大。若看不出差異,請使用較快測試的 PA 值\n"
+"3. 在此文字方塊中輸入 PA 值、流量和加速度的三元組,然後儲存您的線材設定檔。"
# AI Translated
msgid "Enable adaptive pressure advance within features (beta)"
-msgstr "在特徵內啟用自適應 Pressure Advance(beta)"
+msgstr "在特徵內啟用適應性 Pressure Advance(Beta)"
# AI Translated
msgid ""
@@ -14951,9 +17129,9 @@ msgid ""
"\n"
"This is an experimental option, as if the PA profile is not set accurately, it will cause uniformity issues."
msgstr ""
-"只要特徵中出現流量變化(例如轉角或懸空處的線寬變化),即啟用自適應 PA。\n"
+"只要特徵中出現流量變化(例如轉角或懸空處的線寬變化),即啟用適應性 PA。\n"
"\n"
-"與 Prusa 印表機不相容,因為它們會暫停以處理 PA 變化,導致延遲與缺陷。\n"
+"與 Prusa 列印裝置不相容,因為它們會暫停以處理 PA 變化,導致延遲與缺陷。\n"
"\n"
"這是一個實驗性選項,因為若 PA 設定檔設定不準確,會造成均勻度問題。"
@@ -14969,38 +17147,42 @@ msgid ""
"A lower PA value when printing bridges helps reduce the appearance of slight under-extrusion immediately after bridges. This is caused by the pressure drop in the nozzle when printing in the air and a lower PA helps counteract this."
msgstr ""
"橋接的靜態 Pressure Advance 值。設為 0 可套用與\n"
-"對等牆體相同的 Pressure Advance(若已啟用則使用自適應設定)。\n"
+"對等牆體相同的 Pressure Advance(若已啟用則使用適應性設定)。\n"
"\n"
"列印橋接時使用較低的 PA 值,有助於減少橋接後立即出現的輕微擠出不足。這是由於在空中列印時噴嘴內壓力下降所造成,較低的 PA 有助於抵消此現象。"
+# AI Translated
msgid "Default line width if other line widths are set to 0. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "當線寬設定為 0 時走線的預設線寬。如果以 % 表示,將以噴嘴直徑為基準來計算。"
+msgstr "當線寬設定為 0 時走線的預設線寬。如果以 % 表示,將以噴嘴直徑為基準計算。"
msgid "Keep fan always on"
msgstr "保持風扇永遠開啟"
+# AI Translated
msgid "Enabling this setting means that part cooling fan will never stop entirely and will instead run at least at minimum speed to reduce the frequency of starting and stopping."
-msgstr "如果勾選這個選項,物件冷卻風扇將不會停止,並且會以最小風扇轉速設定值運轉以減少風扇的頻繁開關"
+msgstr "啟用此設定後,物件冷卻風扇將不會完全停止,而是至少以最小速度運轉,以減少啟動和停止的頻率。"
msgid "Don't slow down outer walls"
msgstr "列印外牆不減速"
+# AI Translated
msgid ""
"If enabled, this setting will ensure external perimeters are not slowed down to meet the minimum layer time. This is particularly helpful in the below scenarios:\n"
"1. To avoid changes in shine when printing glossy filaments\n"
"2. To avoid changes in external wall speed which may create slight wall artifacts that appear like Z banding\n"
"3. To avoid printing at speeds which cause VFAs (fine artifacts) on the external walls"
msgstr ""
-"啟用此設定後,外牆的列印速度將不會為了滿足最短層時間而減慢,這對以下情況特別有用:\n"
-"1. 列印亮面線材時,避免光澤不均的問題。\n"
-"2. 避免因外牆速度變化而產生類似 Z 條紋的瑕疵。\n"
-"3. 防止外牆因列印速度改變而出現 VFAs(細微表面瑕疵)。"
+"啟用此設定後,外牆不會為了滿足最小層時間而減速。這在以下情況特別有用:\n"
+"1. 列印亮面線材時,避免光澤變化\n"
+"2. 避免外牆速度變化而產生類似 Z 條紋的輕微牆面缺陷\n"
+"3. 避免以會在外牆上產生 VFA(細微缺陷)的速度列印"
msgid "Layer time"
msgstr "每一層列印時間"
+# AI Translated
msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time."
-msgstr "當層預估列印時間小於該數值時,物件冷卻風扇將會被開啟。風扇轉速將根據層列印時間在最大和最小風扇轉速之間自動調整"
+msgstr "當層預估列印時間小於此值時,將開啟物件冷卻風扇。風扇速度會依層列印時間,在最小與最大風扇速度之間內插。"
# AI Translated
msgctxt "second"
@@ -15026,8 +17208,9 @@ msgstr "您可以將有關線材的備註存放在這裡。"
msgid "Required nozzle HRC"
msgstr "噴嘴硬度要求"
+# AI Translated
msgid "Minimum HRC of nozzle required to print the filament. A value of 0 means no checking of the nozzle's HRC."
-msgstr "列印此線材的所需的最小噴嘴硬度。零值表示不檢查噴嘴硬度。"
+msgstr "列印此線材所需的最低噴嘴 HRC 硬度。值為 0 表示不檢查噴嘴的 HRC。"
msgid "Filament map to extruder"
msgstr "線材對應擠出機"
@@ -15035,8 +17218,10 @@ msgstr "線材對應擠出機"
msgid "Filament map to extruder."
msgstr "線材對應擠出機。"
+# AI Translated
+# Needs human review: Filament map mode (plate settings / filament grouping): check it reads as automatic mapping optimized to reduce flushing.
msgid "Auto For Flush"
-msgstr "自動清理"
+msgstr "自動(節省清理)"
msgid "Auto For Match"
msgstr "自動匹配"
@@ -15060,26 +17245,31 @@ msgstr "清理體積流量"
msgid "Volumetric speed when flushing filament. 0 indicates the max volumetric speed."
msgstr "清理線材時的體積流量。0 表示最大體積流量。"
+# AI Translated
msgid "This setting is the volume of filament that can be melted and extruded per second. Printing speed is limited by max volumetric speed, in case of too high and unreasonable speed setting. This value cannot be zero."
-msgstr "這個設定表示每秒能夠融化和擠出的線材體積。列印速度會受限於到最大體積速度,防止設定過高和不合理的速度。不允許設定為 0"
+msgstr "此設定表示每秒能夠熔化並擠出的線材體積。列印速度會受最大體積流量限制,以防速度設定過高而不合理。此值不可為 0。"
msgid "Filament load time"
msgstr "進料的時間"
+# AI Translated
msgid "Time to load new filament when switch filament. It's usually applicable for single-extruder multi-material machines. For tool changers or multi-tool machines, it's typically 0. For statistics only."
-msgstr "更換線材時載入新線材的時間,通常適用於單噴頭多材料的列印機。對於具備擠出機切換功能或多擠出機系統的裝置,此值通常設為 0,僅作為統計參考"
+msgstr "換料時載入新線材所需的時間。通常適用於單擠出機多材料列印裝置。對於工具切換式列印裝置或多工具列印裝置,此值通常為 0。僅用於統計。"
msgid "Filament unload time"
msgstr "退料的時間"
+# AI Translated
msgid "Time to unload old filament when switch filament. It's usually applicable for single-extruder multi-material machines. For tool changers or multi-tool machines, it's typically 0. For statistics only."
-msgstr "更換線材時卸載舊線材的時間,通常適用於單噴頭多材料的列印機。於具備擠出機切換功能或多擠出機系統的裝置,此值通常設為 0,僅作為統計參考"
+msgstr "換料時退出舊線材所需的時間。通常適用於單擠出機多材料列印裝置。對於工具切換式列印裝置或多工具列印裝置,此值通常為 0。僅用於統計。"
+# AI Translated
msgid "Tool change time"
-msgstr "擠出機替換時間"
+msgstr "換工具時間"
+# AI Translated
msgid "Time taken to switch tools. It's usually applicable for tool changers or multi-tool machines. For single-extruder multi-material machines, it's typically 0. For statistics only."
-msgstr "切換擠出機所需的時間,通常適用於具備擠出機切換功能或多擠出機系統的裝置。對於單噴頭多材料的列印機,此值一般設為 0,僅作為統計參考"
+msgstr "切換工具所需的時間。通常適用於工具切換式列印裝置或多工具列印裝置。對於單擠出機多材料列印裝置,此值通常為 0。僅用於統計。"
msgid "Bed temperature type"
msgstr "熱床溫度類型"
@@ -15093,12 +17283,14 @@ msgstr "以第一種線材為準"
msgid "By Highest Temp"
msgstr "以最高溫度為準"
+# AI Translated
msgid "Filament diameter is used to calculate extrusion variables in G-code, so it is important that this is accurate and precise."
-msgstr "線材直徑被用於計算 G-code 檔案中的擠出量。因此很重要,應盡可能精確"
+msgstr "線材直徑用於計算 G-code 中的擠出量,因此務必準確精確。"
msgid "Pellet flow coefficient"
msgstr "顆粒材料流量係數"
+# AI Translated
msgid ""
"Pellet flow coefficient is empirically derived and allows for volume calculation for pellet printers.\n"
"\n"
@@ -15106,8 +17298,10 @@ msgid ""
"\n"
"filament_diameter = sqrt( (4 * pellet_flow_coefficient) / PI )"
msgstr ""
-"顆粒流量係數是基於實驗資料得出的,用於計算顆粒列印機的材料體積。\n"
-"在內部系統中,該係數會被轉換為線材直徑,而其它體積計算方式則維持不變。\n"
+"顆粒流量係數是依經驗得出的,可用於顆粒列印裝置的體積計算。\n"
+"\n"
+"在內部,它會被轉換為 filament_diameter。其他所有體積計算維持不變。\n"
+"\n"
"filament_diameter = sqrt( (4 * pellet_flow_coefficient) / PI )"
msgid "Adaptive volumetric speed"
@@ -15128,14 +17322,14 @@ msgstr "最大體積流量多項式係數"
msgid "Shrinkage (XY)"
msgstr "收縮(XY)"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Enter the shrinkage percentage that the filament will get after cooling (94% if you measure 94mm instead of 100mm). The part will be scaled in XY to compensate. For multi-material prints, ensure filament shrinkage matches across all used filaments\n"
"Be sure to allow enough space between objects, as this compensation is done after the checks."
msgstr ""
-"輸入線材冷卻後的收縮率百分比(例如,如果測量結果為 94mm 而非 100mm,則填寫 94%)。\n"
-"零件的 XY 平面將根據此設定進行縮放補償,僅計算用於列印牆的線材量。\n"
-"請確保物件間預留足夠的空間,因為此補償是在完成檢查後才執行的。"
+"輸入線材冷卻後的收縮率百分比(例如測得 94mm 而非 100mm 時,填寫 94%)。零件會在 XY 方向縮放以進行補償。進行多材料列印時,請確保所有使用的線材收縮率一致。\n"
+"請確保物件之間預留足夠的空間,因為此補償是在檢查之後才執行。"
msgid "Shrinkage (Z)"
msgstr "收縮(Z)"
@@ -15153,11 +17347,13 @@ msgstr "線材類別。"
msgid "Loading speed"
msgstr "進料速度"
+# AI Translated
msgid "Speed used for loading the filament on the wipe tower."
-msgstr "將線材擠出到換料塔上的速度。"
+msgstr "在換料塔上進料時使用的速度。"
+# AI Translated
msgid "Loading speed at the start"
-msgstr "啟動時進料速度"
+msgstr "進料初始速度"
msgid "Speed used at the very beginning of loading phase."
msgstr "初始進料階段速度。"
@@ -15165,8 +17361,9 @@ msgstr "初始進料階段速度。"
msgid "Unloading speed"
msgstr "退料速度"
+# AI Translated
msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)."
-msgstr "用於在換料塔上退料速度(不影響尖端成型之後初始部分的速度)。"
+msgstr "在換料塔上退料時使用的速度(不影響尖端成型後緊接著的初始退料階段)。"
msgid "Unloading speed at the start"
msgstr "退料初始速度"
@@ -15177,26 +17374,32 @@ msgstr "線材尖端成型後立即退料的速度。"
msgid "Delay after unloading"
msgstr "退料後延遲"
+# AI Translated
msgid "Time to wait after the filament is unloaded. May help to get reliable tool changes with flexible materials that may need more time to shrink to original dimensions."
-msgstr "退料後等待的時間。有助於使用柔性線材(收縮到原始尺寸需更多的時間)以獲得可靠的换色。"
+msgstr "退料後等待的時間。對於可能需要更多時間才能收縮回原始尺寸的柔性材料,有助於獲得可靠的換工具。"
msgid "Number of cooling moves"
msgstr "冷卻移動次數"
+# AI Translated
msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves."
-msgstr "藉由在喉管中來回移動以冷卻線材。指定移動所需的次數。"
+msgstr "線材會在冷卻管中來回移動以冷卻。請指定所需的移動次數。"
+# AI Translated
msgid "Stamping loading speed"
-msgstr "沖壓機的載入速度"
+msgstr "沖壓進料速度"
+# AI Translated
msgid "Speed used for stamping."
-msgstr "進行沖壓操作時所使用的速度。"
+msgstr "沖壓時使用的速度。"
+# AI Translated
msgid "Stamping distance measured from the center of the cooling tube"
-msgstr "沖壓距離是以冷卻管的中心作為參考點進行測量"
+msgstr "從冷卻管中心測量的沖壓距離"
+# AI Translated
msgid "If set to non-zero value, filament is moved toward the nozzle between the individual cooling moves (\"stamping\"). This option configures how long this movement should be before the filament is retracted again."
-msgstr "當此設定為非零值時,線材會在每次冷卻移動(沖壓)之間向噴嘴推進。該選項用於設定在線材回抽之前的推進持續時間。"
+msgstr "設為非零值時,線材會在各次冷卻移動之間朝噴嘴推進(「沖壓」)。此選項設定在線材再次回抽之前,這段移動的長度。"
msgid "Speed of the first cooling move"
msgstr "第一次冷卻移動的速度"
@@ -15207,14 +17410,17 @@ msgstr "從這個速度開始冷卻移動逐漸加速。"
msgid "Minimal purge on wipe tower"
msgstr "換料塔上的最小清理量"
+# AI Translated
msgid "After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial object, Orca Slicer will always prime this amount of material into the wipe tower to produce successive infill or sacrificial object extrusions reliably."
-msgstr "換色後,新載入的線材在噴嘴內的確切位置可能未知,線材壓力可能還不穩定。在沖刷列印頭到填充或作為擠出廢料之前,將始終將這些的線材沖刷到換料塔中以產生連續的填充或穩定的擠出廢料。"
+msgstr "換工具後,新載入的線材在噴嘴內的確切位置可能未知,線材壓力也可能尚未穩定。在將工具頭清理到填充或犧牲物件之前,Orca Slicer 一定會先將此數量的材料擠入換料塔,以便後續可靠地擠出填充或犧牲物件。"
+# AI Translated
msgid "Wipe tower cooling"
-msgstr "擦料塔冷卻"
+msgstr "換料塔冷卻"
+# AI Translated
msgid "Temperature drop before entering filament tower"
-msgstr "進入擦料塔前的降溫量"
+msgstr "進入換料塔前的降溫量"
msgid "Interface layer pre-extrusion distance"
msgstr "介面層預擠出距離"
@@ -15240,8 +17446,9 @@ msgstr "mm²"
msgid "Interface layer purge length"
msgstr "介面層清理長度"
+# AI Translated
msgid "Purge length for prime tower interface layer (where different materials meet)."
-msgstr "換料塔介面層(不同材料相遇處)的清洗長度。"
+msgstr "換料塔介面層(不同材料相遇處)的清理長度。"
msgid "Interface layer print temperature"
msgstr "介面層列印溫度"
@@ -15258,35 +17465,44 @@ msgstr "冷卻移動向這個速度逐漸加速。"
msgid "Ramming parameters"
msgstr "尖端成型參數"
+# AI Translated
msgid "This string is edited by RammingDialog and contains ramming specific parameters."
-msgstr "此內容由尖端成型欄位編輯,包含尖端成型的特定參數。"
+msgstr "此字串由尖端成型對話框編輯,包含尖端成型的特定參數。"
+# AI Translated
msgid "Enable ramming for multi-tool setups"
-msgstr "使用多色尖端成形設定"
+msgstr "為多工具設定啟用尖端成型"
+# AI Translated
msgid "Perform ramming when using multi-tool printer (i.e. when the 'Single Extruder Multimaterial' in Printer Settings is unchecked). When checked, a small amount of filament is rapidly extruded on the wipe tower just before the tool change. This option is only used when the wipe tower is enabled."
-msgstr "多色列印裝置執行尖端成型時(即,當列印裝置設定中的單擠出機多材料未選取時)。選取時,在換色之前,會迅速擠出少量線材絲到換料塔上。此選項僅在啟用換料塔時使用。"
+msgstr "使用多工具列印裝置時執行尖端成型(即列印裝置設定中的「單擠出機多線材」未勾選時)。勾選後,會在換工具之前於換料塔上快速擠出少量線材。此選項僅在啟用換料塔時使用。"
+# AI Translated
msgid "Multi-tool ramming volume"
-msgstr "多色尖端成型體積"
+msgstr "多工具尖端成型體積"
+# AI Translated
msgid "The volume to be rammed before the tool change."
-msgstr "換色前尖端成型的體積。"
+msgstr "換工具前尖端成型的體積。"
+# AI Translated
msgid "Multi-tool ramming flow"
-msgstr "多色尖端成型流量"
+msgstr "多工具尖端成型流量"
+# AI Translated
msgid "Flow used for ramming the filament before the tool change."
-msgstr "換色前線材尖端成型的流量。"
+msgstr "換工具前線材尖端成型的流量。"
msgid "Density"
msgstr "密度"
+# AI Translated
msgid "Filament density, for statistical purposes only."
-msgstr "線材的密度。只用於統計資訊"
+msgstr "線材的密度,僅用於統計。"
+# AI Translated
msgid "g/cm³"
-msgstr "克/立方厘米"
+msgstr "g/cm³"
msgid "Filament material type"
msgstr "線材的材料類型"
@@ -15294,20 +17510,23 @@ msgstr "線材的材料類型"
msgid "Soluble material"
msgstr "可溶性材料"
+# AI Translated
msgid "Soluble material is commonly used to print supports and support interfaces."
-msgstr "可溶性材料通常用於列印支撐和支撐面"
+msgstr "可溶性材料通常用於列印支撐和支撐面。"
msgid "Filament ramming length"
msgstr "線材尖端成型長度"
+# AI Translated
msgid "When changing the extruder, it is recommended to extrude a certain length of filament from the original extruder. This helps minimize nozzle oozing."
-msgstr "更換擠出機時,建議從原擠出機擠出一定長度的線材。這有助於減少噴嘴溢料。"
+msgstr "更換擠出機時,建議從原擠出機擠出一定長度的線材。這有助於減少噴嘴漏料。"
msgid "Support material"
msgstr "支撐材料"
+# AI Translated
msgid "Support material is commonly used to print supports and support interfaces."
-msgstr "支撐材料通常用於列印支撐體和支撐接觸面"
+msgstr "支撐材料通常用於列印支撐和支撐面。"
# AI Translated
msgid "Is mixed filament"
@@ -15315,7 +17534,7 @@ msgstr "是否為混合線材"
# AI Translated
msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments"
-msgstr "此線材槽是否為由多種實體線材組成的混合線材"
+msgstr "此線材槽位是否為由多種實體線材組成的混合線材"
# AI Translated
msgid "Mixed filament components"
@@ -15363,7 +17582,7 @@ msgstr "混合線材逐零件漸層"
# AI Translated
msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range."
-msgstr "啟用漸層模式時,對組合體中的每個零件分別套用漸層,而不是將整個組合體視為單一 Z 範圍。"
+msgstr "啟用漸層模式時,對組合件中的每個零件分別套用漸層,而不是將整個組合件視為單一 Z 範圍。"
msgid "Filament printable"
msgstr "線材可列印"
@@ -15382,23 +17601,23 @@ msgstr "以單一 32 位元整數編碼一種線材在所有擠出機(最多 1
msgid "Softening temperature"
msgstr "線材軟化溫度"
+# AI Translated
msgid "The material softens at this temperature, so when the bed temperature is equal to or greater than this, it's highly recommended to open the front door and/or remove the upper glass to avoid clogs."
-msgstr "線材在此溫度下容易軟化,因此當熱床床溫等於或高於該溫度時,強烈建議打開前門和/或拆下上部玻璃以避免堵塞。"
+msgstr "線材在此溫度下會軟化,因此當熱床溫度等於或高於此溫度時,強烈建議打開前門和/或拆下上部玻璃,以避免堵塞。"
msgid "Price"
msgstr "價格"
+# AI Translated
msgid "Filament price, for statistical purposes only."
-msgstr "線材的價格。只用於統計資訊"
+msgstr "線材的價格,僅用於統計。"
msgid "money/kg"
msgstr "元/公斤"
-msgid "Vendor"
-msgstr "廠牌"
-
+# AI Translated
msgid "Vendor of filament. For show only."
-msgstr "列印線材的廠牌。僅用於展示"
+msgstr "線材的廠牌,僅供顯示。"
msgid "(Undefined)"
msgstr "(未定義)"
@@ -15406,14 +17625,16 @@ msgstr "(未定義)"
msgid "Sparse infill direction"
msgstr "稀疏填充方向"
+# AI Translated
msgid "This is the angle for sparse infill pattern, which controls the start or main direction of lines."
-msgstr "稀疏填充圖案的角度,決定走線的開始或整體方向"
+msgstr "稀疏填充圖案的角度,決定走線的起始或主要方向。"
msgid "Solid infill direction"
msgstr "實心填充方向"
+# AI Translated
msgid "Angle for solid infill pattern, which controls the start or main direction of line."
-msgstr "實心填充圖案的角度設定,用於決定線條的起始方向或主要列印方向"
+msgstr "實心填充圖案的角度,決定走線的起始或主要方向。"
# AI Translated
msgid "Top layer direction"
@@ -15442,9 +17663,10 @@ msgstr ""
msgid "Sparse infill density"
msgstr "稀疏填充密度"
+# AI Translated
#, no-c-format, no-boost-format
msgid "Density of internal sparse infill, 100% turns all sparse infill into solid infill and internal solid infill pattern will be used."
-msgstr "設定內部稀疏填充的密度,當密度為 100% 時,所有稀疏填充將變為實心填充,並套用內部實心填充的圖案"
+msgstr "內部稀疏填充的密度。100% 會將所有稀疏填充變為實心填充,並使用內部實心填充圖案。"
# AI Translated
msgid "Align directions to model"
@@ -15467,8 +17689,95 @@ msgstr "在特定層插入實心填充。使用 N 表示每 N 層插入一次,
msgid "Fill Multiline"
msgstr "多線填充"
+# AI Translated
msgid "Using multiple lines for the infill pattern, if supported by infill pattern."
-msgstr "為填充圖案使用多條線,如果填充圖案支援。"
+msgstr "若填充圖案支援,則使用多條線列印填充圖案。"
+
+# AI Translated
+msgid "Adaptive density (experimental)"
+msgstr "適應性密度(實驗性)"
+
+# AI Translated
+msgid ""
+"Grades the Gyroid and TPMS infill inside the object: its cells grow from the surface of the object towards its center. The sparse infill density is used at the surface and the interior density at the center.\n"
+"Distance warp, Smooth blend and Stepped shells follow the distance to the nearest surface, including the top and bottom, with the interior density at the point farthest from it:\n"
+" - Distance warp: one continuous pattern, stretched and sheared where the distance changes across directions, as in plates and long parts.\n"
+" - Smooth blend: the patterns of neighbouring densities blended into each other, with small loops where they meet.\n"
+" - Stepped shells: shells of the regular pattern at densities about 1.5 times apart, their lines joined along the shell boundaries.\n"
+" - Lobes: follows the 3D shape of the object, including its top and bottom. Every lobe, a part joined to the rest by a narrower neck, is graded towards its own center.\n"
+" - Normal Z, Y or X: follows the sections of the object normal to that axis, so the density does not change along it."
+msgstr ""
+"對物件內部的螺旋體與 TPMS 填充進行漸變:其單元從物件表面向中心逐漸增大。表面使用稀疏填充密度,中心使用內部密度。\n"
+"「距離扭曲」、「平滑混合」與「階梯外殼」依據到最近表面(包括頂部與底部)的距離,並在離表面最遠處使用內部密度:\n"
+" - 距離扭曲:單一連續圖案,在距離沿不同方向變化之處(例如板狀與細長零件)會被拉伸與剪切。\n"
+" - 平滑混合:相鄰密度的圖案彼此混合,交接處會出現小迴圈。\n"
+" - 階梯外殼:由規則圖案構成的多層外殼,各層密度相差約 1.5 倍,其線條沿外殼邊界相接。\n"
+" - 分瓣:依循物件的 3D 形狀,包括其頂部與底部。每個瓣(以較窄的頸部與其餘部分相連的部分)都會朝其自身的中心漸變。\n"
+" - 垂直於 Z、Y 或 X:依循物件垂直於該軸的截面,因此密度沿該軸不變。"
+
+# AI Translated
+msgid "Distance warp"
+msgstr "距離扭曲"
+
+# AI Translated
+msgid "Smooth blend"
+msgstr "平滑混合"
+
+# AI Translated
+msgid "Stepped shells"
+msgstr "階梯外殼"
+
+# AI Translated
+msgid "Lobes"
+msgstr "分瓣"
+
+# AI Translated
+msgid "Normal Z"
+msgstr "垂直於 Z"
+
+# AI Translated
+msgid "Normal Y"
+msgstr "垂直於 Y"
+
+# AI Translated
+msgid "Normal X"
+msgstr "垂直於 X"
+
+# AI Translated
+msgid "Interior density"
+msgstr "內部密度"
+
+# AI Translated
+msgid "Density of the adaptive infill at the center of the object."
+msgstr "物件中心處的適應性填充密度。"
+
+# AI Translated
+msgid "Adaptive gradient"
+msgstr "適應性漸變"
+
+# AI Translated
+msgid ""
+"How the density changes from the surface to the center of the object.\n"
+"Linear: the density changes at a constant rate.\n"
+"Quadratic: the density stays close to the sparse infill density near the surface and changes faster towards the center.\n"
+"Exponential: the density changes quickly just below the surface and levels off towards the center."
+msgstr ""
+"密度從物件表面到中心的變化方式。\n"
+"線性:密度以固定速率變化。\n"
+"二次:密度在表面附近接近稀疏填充密度,越接近中心變化越快。\n"
+"指數:密度在表面下方迅速變化,越接近中心越趨於平緩。"
+
+# AI Translated
+msgid "Linear"
+msgstr "線性"
+
+# AI Translated
+msgid "Quadratic"
+msgstr "二次"
+
+# AI Translated
+msgid "Exponential"
+msgstr "指數"
msgid "Z-buckling bias optimization (experimental)"
msgstr "Z 軸挫曲偏置最佳化(實驗性)"
@@ -15480,8 +17789,9 @@ msgstr "在低填充密度時,沿 Z(垂直)軸收緊螺旋體波形,以
msgid "Sparse infill pattern"
msgstr "稀疏填充圖案"
+# AI Translated
msgid "This is the line pattern for internal sparse infill."
-msgstr "內部稀疏填充的走線圖案"
+msgstr "內部稀疏填充的走線圖案。"
msgid "Zig Zag"
msgstr "之字形"
@@ -15525,17 +17835,20 @@ msgstr "3D 蜂窩"
msgid "Lateral Honeycomb"
msgstr "側向蜂窩"
+# AI Translated
msgid "Lateral Lattice"
-msgstr "2D 網格結構"
+msgstr "側向晶格"
msgid "Cross Hatch"
msgstr "交叉填充"
+# AI Translated
msgid "TPMS-D"
-msgstr "TPMS-D結構"
+msgstr "TPMS-D 結構"
+# AI Translated
msgid "TPMS-FK"
-msgstr "TPMS-FK結構"
+msgstr "TPMS-FK 結構"
msgid "Gyroid"
msgstr "螺旋體"
@@ -15548,60 +17861,78 @@ msgstr "稀疏填充平滑係數"
msgid "Controls how strongly sparse infill corners are rounded. 0% keeps the original sharp path, while 100% produces the largest possible curves between adjacent infill lines."
msgstr "控制稀疏填充轉角的圓滑程度。0% 保持原有的銳利路徑,100% 則在相鄰填充線之間產生盡可能大的圓弧。"
+# AI Translated
msgid "This is the acceleration of top surface infill. Using a lower value may improve top surface quality."
-msgstr "頂面填充的加速度。使用較低值可能會改善頂面列印品質"
+msgstr "頂面填充的加速度。使用較低的值可能會改善頂面品質。"
+# AI Translated
msgid "Acceleration of outer wall: using a lower value can improve quality."
-msgstr "外牆加速度。使用較小的值可以提高列印品質"
+msgstr "外牆的加速度。使用較低的值可以提高品質。"
+# AI Translated
msgid "Acceleration of inner walls."
-msgstr "內牆加速度,使用較低值可以改善列印品質"
+msgstr "內牆的加速度。"
+# AI Translated
msgid "Acceleration of sparse infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration."
-msgstr "稀疏填充的加速度。如果該值表示為百分比(例如 100%),則將根據預設加速度進行計算。"
+msgstr "稀疏填充的加速度。如果以百分比表示(例如 100%),將以預設加速度為基準計算。"
+# AI Translated
msgid "Acceleration of internal solid infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration."
-msgstr "內部實心填充加速度。 如果該值以百分比表示(例如 100%),則將根據預設加速度進行計算。"
+msgstr "內部實心填充的加速度。如果以百分比表示(例如 100%),將以預設加速度為基準計算。"
+# AI Translated
msgid "This is the printing acceleration for the first layer. Using limited acceleration can improve build plate adhesion."
-msgstr "首層加速度。使用較低值可以改善和列印板的黏附"
+msgstr "首層的列印加速度。限制加速度可以改善列印板附著力。"
+# AI Translated
msgid "Enable accel_to_decel"
-msgstr "啟用煞車速度"
+msgstr "啟用 accel_to_decel"
+# AI Translated
msgid "Klipper's max_accel_to_decel will be adjusted automatically."
-msgstr "Klipper 會依照煞車速度自動調整"
+msgstr "Klipper 的 max_accel_to_decel 將自動調整。"
+# AI Translated
msgid "accel_to_decel"
-msgstr "煞車速度"
+msgstr "accel_to_decel"
+# AI Translated
#, c-format, boost-format
msgid "Klipper's max_accel_to_decel will be adjusted to this %% of acceleration."
-msgstr "Klipper 的最大煞車速度將調整為加速度的 %%"
+msgstr "Klipper 的 max_accel_to_decel 將調整為加速度的此 %%。"
+# AI Translated
msgid "Default jerk."
-msgstr "預設抖動"
+msgstr "預設急衝速度。"
+# AI Translated
msgid "Marlin Firmware Junction Deviation (replaces the traditional XY Jerk setting)."
-msgstr "Marlin 韌體轉角偏差(取代傳統的 XY Jerk 設定)。"
+msgstr "Marlin 韌體轉角偏差(取代傳統的 XY 急衝速度設定)。"
+# AI Translated
msgid "Jerk of outer walls."
-msgstr "外牆抖動值"
+msgstr "外牆的急衝速度。"
+# AI Translated
msgid "Jerk of inner walls."
-msgstr "內牆抖動值"
+msgstr "內牆的急衝速度。"
+# AI Translated
msgid "Jerk for top surface."
-msgstr "頂面抖動值"
+msgstr "頂面的急衝速度。"
+# AI Translated
msgid "Jerk for infill."
-msgstr "填充抖動"
+msgstr "填充的急衝速度。"
+# AI Translated
msgid "Jerk for the first layer."
-msgstr "首層抖動值"
+msgstr "首層的急衝速度。"
+# AI Translated
msgid "Jerk for travel."
-msgstr "空駛抖動值"
+msgstr "空駛的急衝速度。"
msgid ""
"Travel jerk of first layer.\n"
@@ -15610,8 +17941,9 @@ msgstr ""
"首層的空駛急衝速度。\n"
"百分比值相對於空駛急衝速度。"
+# AI Translated
msgid "Line width of the first layer. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "首層的線寬。如果以 % 表示,它將以噴嘴直徑為基準來計算。"
+msgstr "首層的線寬。如果以 % 表示,將以噴嘴直徑為基準計算。"
msgid "First layer height"
msgstr "首層層高"
@@ -15619,45 +17951,52 @@ msgstr "首層層高"
msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion."
msgstr "首層層高。加厚首層層高有助於提高列印板附著力。"
-msgid "This is the speed for the first layer except for solid infill sections."
-msgstr "首層除實心填充之外的其他部分的列印速度"
+# AI Translated
+msgid "This is the speed for the walls and brim of the first layer."
+msgstr "首層的牆和 Brim 的列印速度。"
msgid "First layer infill"
msgstr "首層填充"
-msgid "This is the speed for solid infill parts of the first layer."
-msgstr "首層實心填充的列印速度"
+# AI Translated
+msgid "This is the speed for the first layer except for walls and brim, such as infill, gap fill and support."
+msgstr "首層中除牆和 Brim 以外部分的列印速度,例如填充、縫隙填充和支撐。"
msgid "First layer travel speed"
msgstr "首層空駛速度"
+# AI Translated
msgid "Travel speed of the first layer."
-msgstr "首層空駛速度"
+msgstr "首層的空駛速度。"
msgid "Number of slow layers"
msgstr "慢速層數量"
+# AI Translated
msgid "The first few layers are printed slower than normal. The speed is gradually increased in a linear fashion over the specified number of layers."
-msgstr "減慢前幾層的列印速度。列印速度會逐漸加速到滿速。"
+msgstr "前幾層會以比正常慢的速度列印。速度會在指定的層數內線性逐漸提高。"
+# AI Translated
msgid "First layer nozzle temperature"
-msgstr "首層列印溫度"
+msgstr "首層噴嘴溫度"
+# AI Translated
msgid "Nozzle temperature for printing the first layer with this filament"
-msgstr "列印首層時的噴嘴溫度"
+msgstr "使用此線材列印首層時的噴嘴溫度"
msgid "Full fan speed at layer"
msgstr "滿速風扇在"
+# AI Translated
msgid "Fan speed will be ramped up linearly from zero at layer \"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower than \"close_fan_the_first_x_layers\", in which case the fan will be running at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
-msgstr "風扇速度會從第「close_fan_the_first_x_layers」層開始,從零速以線性方式逐漸增加,直到第「full_fan_speed_layer」層達到最大速度。如果「full_fan_speed_layer」的設定值小於「close_fan_the_first_x_layers」,則「full_fan_speed_layer」會被忽略,此時風扇會在「close_fan_the_first_x_layers + 1」層以允許的最高速度運行。"
+msgstr "風扇速度會從第 \"close_fan_the_first_x_layers\" 層的零速,線性提升到第 \"full_fan_speed_layer\" 層的最大速度。若 \"full_fan_speed_layer\" 低於 \"close_fan_the_first_x_layers\",則會忽略 \"full_fan_speed_layer\",此時風扇會在第 \"close_fan_the_first_x_layers\" + 1 層以允許的最大速度運轉。"
msgid "layer"
msgstr "層"
# AI Translated
msgid "First layer fan speed"
-msgstr "第一層風扇轉速"
+msgstr "首層風扇速度"
# AI Translated
msgid ""
@@ -15667,75 +18006,86 @@ msgid ""
"Only available when \"No cooling for the first\" is 0.\n"
"Set to -1 to disable it."
msgstr ""
-"為第一層設定精確的風扇轉速,並覆寫所有其他冷卻設定。適用於保護 3D 列印的工具頭零件(例如 Voron 風格的 ABS/ASA 導風管)免受熱床影響。少量氣流可冷卻導風管,而不使用可能在某些情況下損害第一層附著的完整冷卻。\n"
-"從第二層開始,恢復正常冷卻。\n"
-"若同時設定了「Full fan speed at layer」,風扇會從第一層的此數值平順地升至所選層達到您的目標。\n"
-"僅在「No cooling for the first」為 0 時可用。\n"
+"為首層設定精確的風扇速度,並覆寫所有其他冷卻設定。適用於保護 3D 列印的工具頭零件(例如 Voron 風格的 ABS/ASA 導風管)免受熱床影響。少量氣流即可冷卻導風管,而不必使用在某些情況下可能損害首層附著的全速冷卻。\n"
+"從第二層開始恢復正常冷卻。\n"
+"若同時設定了「滿速風扇在」,風扇會從首層的此數值平順提升,到所選的層時達到您的目標。\n"
+"僅在「關閉冷卻的前」為 0 時可用。\n"
"設為 -1 可停用。"
+# AI Translated
msgid "Support interface fan speed"
-msgstr "支撐介面風扇速度"
+msgstr "支撐面風扇速度"
+# AI Translated
msgid ""
"This part cooling fan speed is applied when printing support interfaces. Setting this parameter to a higher than regular speed reduces the layer binding strength between supports and the supported part, making them easier to separate.\n"
"Set to -1 to disable it.\n"
"This setting is overridden by disable_fan_first_layers."
msgstr ""
-"此冷卻風扇速度適用於列印支撐介面時。將此值設為高於正常速度,可減少支撐結構與受支撐零件之間的黏結強度,使拆除支撐更容易。\n"
-"若設為 -1,則停用此功能。\n"
+"列印支撐面時使用此物件冷卻風扇速度。將此參數設為高於一般的速度,可降低支撐與受支撐零件之間的層間黏結強度,使其更容易分離。\n"
+"設為 -1 可停用。\n"
"此設定會被 disable_fan_first_layers 覆寫。"
msgid "Internal bridges fan speed"
msgstr "內部橋接風扇轉速"
+# AI Translated
msgid ""
"The part cooling fan speed used for all internal bridges. Set to -1 to use the overhang fan speed settings instead.\n"
"\n"
"Reducing the internal bridges fan speed, compared to your regular fan speed, can help reduce part warping due to excessive cooling applied over a large surface for a prolonged period of time."
msgstr ""
-"此風扇轉速適用於所有內部橋接。若設為 -1,則改用懸垂風扇速度設定。\n"
+"所有內部橋接使用的物件冷卻風扇速度。設為 -1 則改用懸空風扇速度設定。\n"
"\n"
-"適當降低內部橋接的風扇轉速(相較於一般風扇速度),可減少因長時間對大面積區域過度冷卻而導致的零件翹曲。"
+"與一般風扇速度相比,降低內部橋接風扇速度有助於減少因長時間對大面積過度冷卻而導致的零件翹曲。"
msgid "Ironing fan speed"
msgstr "熨燙時風扇速度"
+# AI Translated
msgid ""
"This part cooling fan speed is applied when ironing. Setting this parameter to a lower than regular speed reduces possible nozzle clogging due to the low volumetric flow rate, making the interface smoother.\n"
"Set to -1 to disable it."
msgstr ""
-"熨燙時的部件風扇轉速。\n"
-"設為低於平常的轉速,將有助緩解長時間低流量列印的堵頭問題。設定為 -1 以停用此功能。"
+"熨燙時使用此物件冷卻風扇速度。將此參數設為低於一般的速度,可減少因體積流量偏低而可能造成的噴嘴堵塞,使表面更平滑。\n"
+"設為 -1 可停用。"
msgid "Ironing flow"
msgstr "熨燙流量"
+# AI Translated
msgid "Filament-specific override for ironing flow. This allows you to customize the ironing flow for each filament type. Too high value results in overextrusion on the surface."
-msgstr "針對熨燙流程的線材特定覆蓋。這使您可以為每種線材類型自訂熨燙流程。值太高會導致表面過度擠壓。"
+msgstr "針對熨燙流量的線材專屬覆寫設定,可為每種線材類型自訂熨燙流量。值過高會導致表面過度擠出。"
msgid "Ironing line spacing"
msgstr "熨燙間距"
+# AI Translated
msgid "Filament-specific override for ironing line spacing. This allows you to customize the spacing between ironing lines for each filament type."
-msgstr "針對熨燙線間距的線材特定覆蓋。這使您可以自訂每種線材類型的熨燙線之間的間距。"
+msgstr "針對熨燙線間距的線材專屬覆寫設定,可為每種線材類型自訂熨燙線之間的間距。"
+# AI Translated
msgid "Ironing inset"
-msgstr "燙平內縮距離"
+msgstr "熨燙內縮距離"
+# AI Translated
msgid "Filament-specific override for ironing inset. This allows you to customize the distance to keep from the edges when ironing for each filament type."
-msgstr "用於熨燙插入的線材特定覆蓋。這使您可以自訂熨燙每種線材類型時與邊緣保持的距離。"
+msgstr "針對熨燙內縮的線材專屬覆寫設定,可為每種線材類型自訂熨燙時與邊緣保持的距離。"
msgid "Ironing speed"
msgstr "熨燙速度"
+# AI Translated
msgid "Filament-specific override for ironing speed. This allows you to customize the print speed of ironing lines for each filament type."
-msgstr "特定於線材的熨燙速度優先。這允許您自訂每種線材類型的熨燙線的列印速度。"
+msgstr "針對熨燙速度的線材專屬覆寫設定,可為每種線材類型自訂熨燙線的列印速度。"
+# AI Translated
msgid "This setting makes the toolhead randomly jitter while printing walls so that the surface has a rough textured look. This setting controls the fuzzy position."
-msgstr "列印外牆時隨機抖動,使外表面產生絨毛效果。這個設定決定適用的位置"
+msgstr "列印牆時讓工具頭隨機抖動,使表面呈現粗糙的紋理外觀。此設定控制絨毛表面的位置。"
+# AI Translated
msgid "Painted only"
-msgstr "僅塗漆"
+msgstr "僅繪製區域"
msgid "Contour"
msgstr "輪廓"
@@ -15752,24 +18102,29 @@ msgstr "所有牆"
msgid "Fuzzy skin thickness"
msgstr "絨毛表面厚度"
+# AI Translated
msgid "The width of jittering: it’s recommended to keep this lower than the outer wall line width."
-msgstr "產生絨毛的抖動的寬度。建議小於外圈牆的線寬"
+msgstr "抖動的寬度。建議小於外牆線寬。"
msgid "Fuzzy skin point distance"
msgstr "絨毛表面點間距"
+# AI Translated
msgid "The average distance between the random points introduced on each line segment."
-msgstr "產生絨毛表面時,插入的隨機點之間的平均距離"
+msgstr "在每條線段上插入的隨機點之間的平均距離。"
+# AI Translated
msgid "Apply fuzzy skin to first layer"
-msgstr "在第一層啟用絨毛表面"
+msgstr "首層套用絨毛表面"
+# AI Translated
msgid "Whether to apply fuzzy skin on the first layer."
-msgstr "是否啟用絨毛表面於第一層"
+msgstr "是否在首層套用絨毛表面。"
msgid "Fuzzy skin generator mode"
msgstr "絨毛表面生成器模式"
+# AI Translated
#, c-format, boost-format
msgid ""
"Fuzzy skin generation mode. Works only with Arachne!\n"
@@ -15779,10 +18134,12 @@ msgid ""
"\n"
"Attention! The [Extrusion] and [Combined] modes works only the fuzzy_skin_thickness parameter not more than the thickness of printed loop. At the same time, the width of the extrusion for a particular layer should also not be below a certain level. It is usually equal 15-25%% of a layer height. Therefore, the maximum fuzzy skin thickness with a perimeter width of 0.4 mm and a layer height of 0.2 mm will be 0.4-(0.2*0.25)=±0.35mm! If you enter a higher parameter than this, the error Flow::spacing() will displayed, and the model will not be sliced. You can choose this number until this error is repeated."
msgstr ""
-"模糊皮膚生成模式。僅適用於阿拉克尼!\n"
-"位移:經典模式,透過將噴嘴從原始路徑向側面移動來形成圖案。\n"
-"擠出:透過擠出塑膠量而形成圖案的模式。這是一種快速而直接的演算法,沒有不必要的噴嘴抖動,可以產生平滑的圖案。但它對於在整個陣列中形成鬆散的牆壁更有用。\n"
-"組合:聯合模式【位移】+【擠壓】。牆壁的外觀與 [位移] 模式類似,但周邊之間不留孔隙。注意![擠出] 和 [組合] 模式僅適用於 fuzzy_skin_thickness 參數不大於列印環厚度的情況。同時,特定層的擠出寬度也不應低於一定水平。它通常等於層高的 15-25%%。因此,周寬為 0.4 mm、層高為 0.2 mm 時,最大絨毛表面厚度為 0.4-(0.2*0.25)=±0.35 mm!如果輸入參數高於此值,將顯示 Flow::spacing() 錯誤,且模型不會被切片。您可以調整該數值,直到不再重複出現該錯誤。"
+"絨毛表面生成模式。僅適用於 Arachne!\n"
+"位移:經典模式,透過讓噴嘴偏離原始路徑向側面移動來形成圖案。\n"
+"擠出:以擠出塑膠的量來形成圖案。這是一種快速、直接的演算法,沒有多餘的噴嘴抖動,可產生平滑的圖案。但它更適合用於在整組牆中形成鬆散的牆。\n"
+"合併:[位移] + [擠出] 的聯合模式。牆的外觀與 [位移] 模式相似,但牆之間不會留下孔隙。\n"
+"\n"
+"注意![擠出] 和 [合併] 模式僅在 fuzzy_skin_thickness 參數不大於所列印環的厚度時有效。同時,特定層的擠出寬度也不應低於一定水準,通常為層高的 15-25%%。因此,在牆線寬為 0.4 mm、層高為 0.2 mm 時,最大絨毛表面厚度為 0.4-(0.2*0.25)=±0.35mm!若輸入的參數高於此值,將顯示 Flow::spacing() 錯誤,且模型無法切片。您可以調整此數值,直到不再出現此錯誤。"
msgid "Displacement"
msgstr "位移"
@@ -15793,9 +18150,11 @@ msgstr "擠出"
msgid "Combined"
msgstr "合併"
+# AI Translated
msgid "Fuzzy skin noise type"
-msgstr "模糊表面紋理噪聲類型"
+msgstr "絨毛表面雜訊類型"
+# AI Translated
msgid ""
"Noise type to use for fuzzy skin generation:\n"
"Classic: Classic uniform random noise.\n"
@@ -15805,13 +18164,13 @@ msgid ""
"Voronoi: Divides the surface into voronoi cells, and displaces each one by a random amount. Creates a patchwork texture.\n"
"Ripple: Uniform ripple pattern that ripples left and right of the original path. Repeating pattern, woven appearance."
msgstr ""
-"用於絨毛表面生成的雜訊類型:\n"
-"Classic:經典的均勻隨機雜訊。\n"
-"Perlin:Perlin 雜訊,能產生更一致的紋理。\n"
-"Billow:類似 Perlin 雜訊,但更為團塊狀。\n"
-"Ridged Multifractal:具有銳利、鋸齒狀特徵的脊狀雜訊,可產生大理石般的紋理。\n"
-"Voronoi:將表面分割為 voronoi 單元,並將每個單元隨機位移一定量,可產生拼布般的紋理。\n"
-"Ripple:均勻的漣漪圖案,在原始路徑的左右兩側形成漣漪。重複的圖案,呈現編織般的外觀。"
+"用於產生絨毛表面的雜訊類型:\n"
+"經典:經典的均勻隨機雜訊。\n"
+"柏林:柏林雜訊,能產生更一致的紋理。\n"
+"波狀:類似柏林雜訊,但更為團塊狀。\n"
+"脊狀多重分形:具有銳利、鋸齒狀特徵的脊狀雜訊,可產生大理石般的紋理。\n"
+"沃羅諾伊:將表面分割為沃羅諾伊單元,並將每個單元隨機位移一定量,可產生拼布般的紋理。\n"
+"漣漪:均勻的漣漪圖案,在原始路徑的左右兩側起伏。重複的圖案,呈現編織般的外觀。"
msgid "Classic"
msgstr "經典"
@@ -15831,23 +18190,29 @@ msgstr "沃羅諾伊"
msgid "Ripple"
msgstr "漣漪"
+# AI Translated
msgid "Fuzzy skin feature size"
-msgstr "模糊表面紋理尺寸"
+msgstr "絨毛表面特徵尺寸"
+# AI Translated
msgid "The base size of the coherent noise features, in mm. Higher values will result in larger features."
-msgstr "控制模糊紋理的基礎尺寸(單位:毫米)。數值越大,紋理特徵越明顯、範圍越大。"
+msgstr "相干雜訊特徵的基礎尺寸(單位:mm)。數值越大,特徵越大。"
+# AI Translated
msgid "Fuzzy Skin Noise Octaves"
-msgstr "模糊表面紋理噪聲層級"
+msgstr "絨毛表面雜訊倍頻"
+# AI Translated
msgid "The number of octaves of coherent noise to use. Higher values increase the detail of the noise, but also increase computation time."
-msgstr "設定模糊紋理的噪聲層級數量。較高的值可提升紋理細節,但也會增加運算時間。"
+msgstr "要使用的相干雜訊倍頻數。數值越高,雜訊細節越多,但運算時間也越長。"
+# AI Translated
msgid "Fuzzy skin noise persistence"
-msgstr "模糊表面紋理噪聲強度衰減係數"
+msgstr "絨毛表面雜訊持續度"
+# AI Translated
msgid "The decay rate for higher octaves of the coherent noise. Lower values will result in smoother noise."
-msgstr "控制高層級噪聲細節的衰減率。數值越低,紋理會越平滑。"
+msgstr "相干雜訊高倍頻的衰減率。數值越低,雜訊越平滑。"
msgid "Number of ripples per layer"
msgstr "每層的漣漪數量"
@@ -15893,14 +18258,17 @@ msgstr "忽略微小間隙"
msgid "Layers and Perimeters"
msgstr "層和牆"
+# AI Translated
msgid "Don't print gap fill with a length is smaller than the threshold specified (in mm). This setting applies to top, bottom and solid infill and, if using the classic perimeter generator, to wall gap fill."
-msgstr "若縫隙填充的長度小於設定的門檻值(以 mm 計),則不列印該填充。此設定適用於頂部、底部和實心填充,以及使用經典牆產生器時的牆體縫隙填充。"
+msgstr "若縫隙填充的長度小於設定的臨界值(以 mm 計),則不列印該填充。此設定適用於頂部、底部和實心填充,以及使用經典牆產生器時的牆體縫隙填充。"
+# AI Translated
msgid "This is the speed for gap infill. Gaps usually have irregular line width and should be printed more slowly."
-msgstr "填縫的速度。縫隙通常有不一致的線寬,應改用較慢速度列印"
+msgstr "縫隙填充的速度。縫隙的線寬通常不規則,應以較慢的速度列印。"
+# AI Translated
msgid "Precise Z height"
-msgstr "Z 軸的精確高度"
+msgstr "精確 Z 高度"
msgid "Enable this to get precise Z height of object after slicing. It will get the precise object height by fine-tuning the layer heights of the last few layers. Note that this is an experimental parameter."
msgstr "啟用此選項可以在切片後確保物件的 Z 軸高度更加精確。此功能透過微調最後幾層的層高來達成精確的物件高度。請注意,這是一個實驗性功能。"
@@ -15908,32 +18276,36 @@ msgstr "啟用此選項可以在切片後確保物件的 Z 軸高度更加精確
msgid "Arc fitting"
msgstr "圓弧擬合"
+# AI Translated
msgid ""
"Enable this to get a G-code file which has G2 and G3 moves. The fitting tolerance is same as the resolution.\n"
"\n"
"Note: For Klipper machines, this option is recommended to be disabled. Klipper does not benefit from arc commands as these are split again into line segments by the firmware. This results in a reduction in surface quality as line segments are converted to arcs by the slicer and then back to line segments by the firmware."
msgstr ""
-"啟用此選項可產生包含 G2 和 G3 弧形運動的 G-code 檔案,其擬合公差與解析度一致。 \n"
+"啟用此選項可產生包含 G2 和 G3 弧形運動的 G-code 檔案,其擬合公差與解析度相同。\n"
"\n"
-"注意:對於 Klipper 控制的機器,建議關閉此功能。Klipper 無法有效利用弧形指令,因為韌體會將這些弧形指令重新分割為線段。這可能導致表面品質下降,因為切片器將線段轉換為弧形,然後韌體又將弧形還原為線段。"
+"注意:對於 Klipper 列印裝置,建議停用此選項。Klipper 無法從弧形指令中獲益,因為韌體會將這些指令重新分割為線段。切片軟體先將線段轉換為弧形,韌體又將弧形轉回線段,會導致表面品質下降。"
msgid "Add line number"
msgstr "標註行號"
+# AI Translated
msgid "Enable this to add line number(Nx) at the beginning of each G-code line."
-msgstr "啟用此選項可在每行 G-Code 的開頭新增行號(Nx)"
+msgstr "啟用此選項可在每行 G-code 的開頭加上行號(Nx)。"
msgid "Scan first layer"
msgstr "首層檢查"
+# AI Translated
msgid "Enable this to allow the camera on the printer to check the quality of the first layer."
-msgstr "開啟這個設定將使用列印裝置上的鏡頭用於檢查首層列印品質"
+msgstr "啟用此選項後,列印裝置上的攝影機會檢查首層的列印品質。"
msgid "Power Loss Recovery"
msgstr "斷電還原"
+# AI Translated
msgid "Choose how to control power loss recovery. When set to Printer configuration, the slicer will not emit power loss recovery G-code and will leave the printer's configuration unchanged. Applicable to Bambu Lab or Marlin 2 firmware based printers."
-msgstr "選擇如何控制斷電還原。當設定為列印裝置設定時,切片機不會發出斷電還原 G-code,並且列印裝置的設定保持不變。適用於基於 Bambu Lab 或 Marlin 2 韌體的列印裝置。"
+msgstr "選擇控制斷電還原的方式。設為「列印裝置設定」時,切片軟體不會輸出斷電還原 G-code,並保留列印裝置原有的設定。適用於採用 Bambu Lab 或 Marlin 2 韌體的列印裝置。"
msgid "Printer configuration"
msgstr "列印裝置設定"
@@ -15941,8 +18313,9 @@ msgstr "列印裝置設定"
msgid "Nozzle type"
msgstr "噴嘴類型"
+# AI Translated
msgid "The metallic material of the nozzle: This determines the abrasive resistance of the nozzle and what kind of filament can be printed."
-msgstr "噴嘴的金屬材料。這將決定噴嘴的耐磨性,以及可列印線材的種類"
+msgstr "噴嘴的金屬材料。這決定了噴嘴的耐磨性,以及可以列印哪些線材。"
msgid "Hardened steel"
msgstr "硬化鋼"
@@ -15965,8 +18338,9 @@ msgstr "洛氏硬度"
msgid "Printer structure"
msgstr "列印裝置結構"
+# AI Translated
msgid "The physical arrangement and components of a printing device."
-msgstr "列印裝置的實體佈置和元件"
+msgstr "列印裝置的實體結構與元件。"
msgid "CoreXY"
msgstr "CoreXY"
@@ -15983,11 +18357,13 @@ msgstr "Delta"
msgid "Best object position"
msgstr "最佳物件位置"
+# AI Translated
msgid "Best auto arranging position in range [0,1] w.r.t. bed shape."
-msgstr "針對列印版的形狀,範圍 [0,1] 內的最佳自動擺放位置 。"
+msgstr "自動擺放的最佳位置,範圍為 [0,1],相對於列印板形狀。"
+# AI Translated
msgid "Enable this option if machine has auxiliary part cooling fan. G-code command: M106 P2 S(0-255)."
-msgstr "如果裝置有輔助物件冷卻風扇,請啟用此選項。 G-code 指令:M106 P2 S(0-255)。"
+msgstr "如果列印裝置配有輔助物件冷卻風扇,請啟用此選項。G-code 指令:M106 P2 S(0-255)。"
# AI Translated
msgid "Fan direction"
@@ -15995,95 +18371,107 @@ msgstr "風扇方向"
# AI Translated
msgid "Cooling fan direction of the printer"
-msgstr "印表機冷卻風扇的方向"
+msgstr "列印裝置冷卻風扇的方向"
# AI Translated
msgid "Both"
msgstr "兩者"
+# AI Translated
msgid ""
"Start the fan this number of seconds earlier than its target start time (you can use fractional seconds). It assumes infinite acceleration for this time estimation, and will only take into account G1 and G0 moves (arc fitting is unsupported).\n"
"It won't move fan commands from custom G-code (they act as a sort of 'barrier').\n"
"It won't move fan commands into the start G-code if the 'only custom start G-code' is activated.\n"
"Use 0 to deactivate."
msgstr ""
-"在風扇目標啟動時間前提前設定的秒數啟動風扇(支持小數點)。此功能基於無限加速假設進行時間估算,並僅考慮 G1 和 G0 指令的移動(不支援圓弧擬合)。\n"
-"風扇指令不會從自訂 G-code 中轉移(它們被視為「屏障」)。\n"
-"若啟用『僅使用自訂起始 G-code』,風扇指令將不會移動到起始 G-code 中。\n"
-"將此值設為 0 可停用該功能。"
+"比目標啟動時間提早此秒數啟動風扇(可使用小數)。此時間估算假設加速度無限大,且只計入 G1 和 G0 移動(不支援圓弧擬合)。\n"
+"不會移動自訂 G-code 中的風扇指令(這些指令相當於一道「屏障」)。\n"
+"若已啟用「僅自訂起始 G-code」,不會將風扇指令移入起始 G-code。\n"
+"設為 0 以停用。"
msgid "Only overhangs"
msgstr "僅懸空"
+# AI Translated
msgid "Will only take into account the delay for the cooling of overhangs."
-msgstr "此設定僅針對懸空部分的冷卻延遲進行考量。"
+msgstr "僅針對懸空的冷卻計入此延遲。"
msgid "Fan kick-start time"
msgstr "風扇啟動時間"
+# AI Translated
msgid ""
"Emit a max fan speed command for this amount of seconds before reducing to target speed to kick-start the cooling fan.\n"
"This is useful for fans where a low PWM/power may be insufficient to get the fan started spinning from a stop, or to get the fan up to speed faster.\n"
"Set to 0 to deactivate."
msgstr ""
-"在風扇降速至目標速度之前,先以最大風扇速度運行指定的秒數來啟動冷卻風扇。\n"
-"這對於需要較高功率才能從靜止狀態啟動,或需要更快達到運行速度的風扇非常有幫助。\n"
-"若設定為 0,將停用此功能。\n"
-"譯者補充:風扇啟動時間通常是指風扇從靜止狀態到穩定運轉所需的時間\n"
-"這個設定可以確保風扇在低轉速時順利啟動,避免因功率不足而無法正常運行。"
+"啟動冷卻風扇時,先以最大風扇速度運轉此秒數,再降至目標速度。\n"
+"當低 PWM/功率不足以讓風扇從靜止開始轉動,或想讓風扇更快達到轉速時,此功能很有用。\n"
+"設為 0 以停用。"
msgid "Minimum non-zero part cooling fan speed"
msgstr "最小非零物件冷卻風扇速度"
+# AI Translated
msgid ""
"Some part-cooling fans cannot start spinning when commanded below a certain PWM duty cycle. When set above 0, any non-zero part-cooling fan command will be raised to at least this percentage so the fan reliably starts. A fan command of 0 (fan off) is always honoured exactly. This clamp is applied after every other fan calculation (first-layer ramp, layer-time interpolation, overhang/bridge/support-interface/ironing overrides), so scaling still operates within the range [this value, 100%].\n"
"If your firmware already disables the fan below a threshold (for example Klipper's [fan] off_below: 0.10 shuts the fan off whenever the commanded duty cycle is below 10%), this option and the firmware threshold should ideally be set to the same value. Matching them (e.g. off_below: 0.10 in Klipper and 10% here) guarantees the slicer never emits a non-zero value that the firmware would silently drop, and the fan never receives a value below the one you know it can actually spool at.\n"
"Set to 0 to deactivate."
msgstr ""
"某些物件冷卻風扇在指令值低於特定 PWM 工作週期時無法開始轉動。當設定為大於 0 時,任何非零的物件冷卻風扇指令都會被提高到至少此百分比,以確保風扇能可靠地啟動。風扇指令為 0(關閉風扇)時一律精確遵循。此限制會在所有其他風扇計算(首層漸增、層時間插值、懸空/橋接/支撐面/熨燙覆寫)之後套用,因此縮放仍會在 [此值, 100%] 範圍內運作。\n"
-"如果您的韌體已經在低於某個門檻值時停用風扇(例如 Klipper 的 [fan] off_below: 0.10 會在指令工作週期低於 10% 時關閉風扇),則此選項與韌體門檻值最好設定為相同的值。讓兩者相符(例如 Klipper 中的 off_below: 0.10 與此處的 10%)可確保切片軟體永遠不會發出韌體會默默捨棄的非零值,且風扇永遠不會收到低於您已知它實際能啟動轉動的值。\n"
+"如果您的韌體已經在低於某個臨界值時停用風扇(例如 Klipper 的 [fan] off_below: 0.10 會在指令工作週期低於 10% 時關閉風扇),則此選項與韌體臨界值最好設定為相同的值。讓兩者相符(例如 Klipper 中的 off_below: 0.10 與此處的 10%)可確保切片軟體永遠不會發出韌體會默默捨棄的非零值,且風扇永遠不會收到低於您已知它實際能啟動轉動的值。\n"
"設定為 0 以停用。"
msgid "Time cost"
msgstr "時間成本"
+# AI Translated
msgid "The printer cost per hour."
-msgstr "列印裝置每小時的成本"
+msgstr "列印裝置每小時的成本。"
msgid "money/h"
msgstr "元/小時"
+# AI Translated
msgid "Support controlling chamber temperature"
-msgstr "支援控制列印裝置內部溫度"
+msgstr "支援控制腔體溫度"
+# AI Translated
msgid ""
"This option is enabled if machine support controlling chamber temperature\n"
"G-code command: M141 S(0-255)"
msgstr ""
-"如果支援列印裝置內部溫度控制,則啟用此選項\n"
-"G-code 指令:M141 S(0-255)"
+"若支援控制腔體溫度,請啟用此選項\n"
+"G-code 指令:M141 S(0-255)"
msgid "Support air filtration"
msgstr "支援空氣過濾"
+# AI Translated
msgid ""
"Enable this if printer support air filtration\n"
"G-code command: M106 P3 S(0-255)"
msgstr ""
"如果列印裝置支援空氣過濾,請啟用此選項\n"
-"G-code 指令:M106 P3 S(0-255)"
+"G-code 指令:M106 P3 S(0-255)"
msgid "Use cooling filter"
msgstr "開啟冷卻過濾"
+# AI Translated
msgid "Enable this if printer support cooling filter"
-msgstr "開啟該功能後,當腔溫過高時,會自動關閉過濾以提高冷卻效果"
+msgstr "如果列印裝置支援冷卻過濾,請啟用此選項"
msgid "G-code flavor"
msgstr "G-code 風格"
+# AI Translated
msgid "What kind of G-code the printer is compatible with."
-msgstr "列印裝置相容的 G-code 樣式"
+msgstr "列印裝置相容的 G-code 風格。"
+
+# AI Translated
+msgid "Marlin (legacy)"
+msgstr "Marlin(舊版)"
msgid "Klipper"
msgstr "Klipper"
@@ -16099,20 +18487,24 @@ msgstr "不將 CONFIG_BLOCK(切片軟體設定的鍵值對)寫入 G-code 檔
msgid "Pellet Modded Printer"
msgstr "顆粒改裝列印裝置"
+# AI Translated
msgid "Enable this option if your printer uses pellets instead of filaments."
-msgstr "若您的列印裝置使用塑膠顆粒而非傳統線材,請啟用此選項"
+msgstr "若您的列印裝置使用塑膠顆粒而非線材,請啟用此選項。"
msgid "Support multi bed types"
msgstr "支援多種熱床類型"
+# AI Translated
msgid "Enable this option if you want to use multiple bed types."
-msgstr "若您需要切換使用不同的列印床類型,請啟用此選項"
+msgstr "若要使用多種熱床類型,請啟用此選項。"
msgid "Label objects"
msgstr "標註物件"
+# AI Translated
+# Needs human review: English names Prusa's Wipe into Object / Wipe into Infill; translation quotes Orca's Flush into this object / Flush into objects' infill labels (printconfig3) instead
msgid "Enable this to add comments into the G-code labeling print moves with what object they belong to, which is useful for the Octoprint CancelObject plug-in. This setting is NOT compatible with Single Extruder Multi Material setup and Wipe into Object / Wipe into Infill."
-msgstr "啟用此選項可將註解新增至 G-code 中,標記列印移動及其所屬物件,這對於 Octoprint CancelObject 外掛程式非常有用。此設定與單擠出機多色設定和擦除到物件/擦除到填充不相容。"
+msgstr "啟用此選項會在 G-code 中加入註解,標示每段列印移動所屬的物件,適用於 Octoprint CancelObject 外掛程式。此設定與「單擠出機多線材」設定以及「將換料的廢料使用在這個物件」/「將換料的廢料使用在物件的填充」不相容。"
msgid "Exclude objects"
msgstr "物件排除"
@@ -16124,14 +18516,16 @@ msgstr "啟用此選項以在 G-code 中加入 EXCLUDE OBJECT 指令。"
msgid "Verbose G-code"
msgstr "詳細 G-code"
+# AI Translated
msgid "Enable this to get a commented G-code file, with each line explained by a descriptive text. If you print from SD card, the additional weight of the file could make your firmware slow down."
-msgstr "啟用此選項可取得帶註釋的 G-code,其中每一行均由描述性文字進行解釋。如果您從 SD 卡列印,檔案的額外容量可能會導致韌體速度變慢。"
+msgstr "啟用此選項可產生附有註解的 G-code 檔案,每一行都以描述文字說明。如果您從 SD 卡列印,檔案增加的大小可能會使韌體變慢。"
msgid "Infill combination"
msgstr "合併填充"
+# AI Translated
msgid "Automatically combine sparse infill of several layers to print together in order to reduce time. Walls are still printed with original layer height."
-msgstr "自動將多層稀疏填充合併列印,以縮短列印時間。同時,周邊仍保持原層高列印。"
+msgstr "自動將多層稀疏填充合併列印,以縮短列印時間。牆仍以原始層高列印。"
msgid "Infill shift step"
msgstr "填充偏移步長"
@@ -16142,14 +18536,16 @@ msgstr "此參數為每層填充新增輕微的位移以建立十字紋理。"
msgid "Sparse infill rotation template"
msgstr "稀疏填充旋轉範本"
+# AI Translated
msgid "Rotate the sparse infill direction per layer using a template of angles. Enter comma-separated degrees (e.g., '0,30,60,90'). Angles are applied in order by layer and repeat when the list ends. Advanced syntax is supported: '+5' rotates +5° every layer; '+5#5' rotates +5° every 5 layers. See the Wiki for details. When a template is set, the standard infill direction setting is ignored. Note: some infill patterns (e.g., Gyroid) control rotation themselves; use with care."
-msgstr "使用角度範本旋轉每層的稀疏填充方向。輸入以逗號分隔的度數(例如“0,30,60,90”)。角度按層順序應用,並在列表結束時重複。支援高階語法:“+5”每層旋轉+5°; ‘+5#5’每 5 層旋轉+5°。詳細資訊請參閱維基百科。設定範本後,將忽略標準填充方向設定。注意:一些填充圖案(例如 Gyroid)本身控制旋轉;小心使用。"
+msgstr "依角度範本逐層旋轉稀疏填充方向。請輸入以逗號分隔的角度(例如 '0,30,60,90')。角度依層序套用,清單用完後重複。支援進階語法:'+5' 表示每層旋轉 +5°;'+5#5' 表示每 5 層旋轉 +5°。詳情請參閱 Wiki。設定範本後,標準的填充方向設定將被忽略。注意:部分填充圖案(例如螺旋體)會自行控制旋轉,請謹慎使用。"
msgid "Solid infill rotation template"
msgstr "實心填充旋轉範本"
+# AI Translated
msgid "This parameter adds a rotation of solid infill direction to each layer according to the specified template. The template is a comma-separated list of angles in degrees, e.g. '0,90'. The first angle is applied to the first layer, the second angle to the second layer, and so on. If there are more layers than angles, the angles will be repeated. Note that not all solid infill patterns support rotation."
-msgstr "該參數根據指定的範本為每個圖層新增實體填充方向的旋轉。該範本是一個以逗號分隔的角度列表,以度為單位,例如'0,90'。第一個角度應用於第一層,第二個角度應用於第二層,依此類推。如果層數多於角度,則角度將重複。請注意,並非所有實心填充圖案都支援旋轉。"
+msgstr "此參數依指定的範本,為每一層加上實心填充方向的旋轉。範本是以逗號分隔的角度清單(單位為度),例如 '0,90'。第一個角度套用於第一層,第二個角度套用於第二層,依此類推。如果層數多於角度數,角度會重複使用。請注意,並非所有實心填充圖案都支援旋轉。"
msgid "Skeleton infill density"
msgstr "骨架填充密度"
@@ -16157,41 +18553,51 @@ msgstr "骨架填充密度"
msgid "The remaining part of the model contour after removing a certain depth from the surface is called the skeleton. This parameter is used to adjust the density of this section. When two regions have the same sparse infill settings but different skeleton densities, their skeleton areas will develop overlapping sections. Default is as same as infill density."
msgstr "模型輪廓從表面去除一定深度後剩餘的部分稱為骨架。該參數用於調整該部分的密度。當兩個區域具有相同的稀疏填充設定但不同的骨架密度時,它們的骨架區域將產生重疊部分。預設值與填充密度相同。"
+# AI Translated
msgid "Skin infill density"
-msgstr "外殼填充密度"
+msgstr "表皮填充密度"
+# AI Translated
msgid "The portion of the model's outer surface within a certain depth range is called the skin. This parameter is used to adjust the density of this section. When two regions have the same sparse infill settings but different skin densities, this area will not be split into two separate regions. Default is as same as infill density."
-msgstr "模型外表面在一定深度範圍內的部分稱為蒙皮。該參數用於調整該部分的密度。當兩個區域具有相同的稀疏填充設定但不同的蒙皮密度時,該區域不會被分割為兩個單獨的區域。預設值與填充密度相同。"
+msgstr "模型外表面在一定深度範圍內的部分稱為表皮。此參數用於調整該部分的密度。當兩個區域的稀疏填充設定相同但表皮密度不同時,該區域不會被分割為兩個獨立的區域。預設值與填充密度相同。"
+# AI Translated
msgid "Skin infill depth"
-msgstr "外殼填充深度"
+msgstr "表皮填充深度"
+# AI Translated
msgid "The parameter sets the depth of skin."
-msgstr "該參數設定外殼深度"
+msgstr "此參數設定表皮的深度。"
msgid "Infill lock depth"
msgstr "填充鎖定深度"
+# AI Translated
msgid "The parameter sets the overlapping depth between the interior and skin."
-msgstr "該參數設定內部與外殼之間的重疊深度"
+msgstr "此參數設定內部與表皮之間的重疊深度。"
+# AI Translated
msgid "Skin line width"
-msgstr "外殼線寬"
+msgstr "表皮線寬"
+# AI Translated
msgid "Adjust the line width of the selected skin paths."
-msgstr "調整選取外殼路徑的線寬"
+msgstr "調整所選表皮路徑的線寬。"
msgid "Skeleton line width"
msgstr "骨架線寬"
+# AI Translated
msgid "Adjust the line width of the selected skeleton paths."
-msgstr "調整選取骨架路徑的線寬"
+msgstr "調整所選骨架路徑的線寬。"
+# AI Translated
msgid "Symmetric infill Y axis"
-msgstr "對稱填充Y軸"
+msgstr "對稱填充 Y 軸"
+# AI Translated
msgid "If the model has two parts that are symmetric about the Y axis, and you want these parts to have symmetric textures, please click this option on one of the parts."
-msgstr "若模型有兩個在Y軸上對稱的部分,並且您想對其使用對稱的紋理,就請在對應的模型部分上應用此設定。"
+msgstr "若模型有兩個相對於 Y 軸對稱的零件,且您希望它們的紋理也對稱,請在其中一個零件上勾選此選項。"
# AI Translated
msgid "Fill pattern tops"
@@ -16201,9 +18607,11 @@ msgstr "填滿圖案頂部"
msgid "Choose this option if you want to completely fill in the tops of the infill pattern"
msgstr "若要將填充圖案的頂部完全填滿,請選擇此選項"
+# AI Translated
msgid "Infill combination - Max layer height"
-msgstr "合併填充 - 最大層高"
+msgstr "合併填充最大層高"
+# AI Translated
msgid ""
"Maximum layer height for the combined sparse infill.\n"
"\n"
@@ -16213,38 +18621,47 @@ msgid ""
"\n"
"Use either absolute mm values (eg. 0.32mm for a 0.4mm nozzle) or % values (eg 80%). This value must not be larger than the nozzle diameter."
msgstr ""
-"設定稀疏填充合併列印最大層高。\n"
+"合併稀疏填充的最大層高。\n"
"\n"
-"您可以將其設為 0 或 100% 來使用噴嘴直徑(以最大程度縮短列印時間),或者設定為大約 80% 來增強稀疏填充的強度。結合的層數會根據此值與層高的比值計算,並向下取整到最接近的位數。\n"
+"設為 0 或 100% 會使用噴嘴直徑(最大程度縮短列印時間),設為約 80% 則可使稀疏填充強度最大化。\n"
"\n"
-"可以使用絕對值(例如 0.32mm,對應 0.4mm 的噴嘴)或百分比(例如 80%)。注意,此值不能超過噴嘴的直徑。"
+"合併填充的層數由此值除以層高後向下取整得出。\n"
+"\n"
+"可使用絕對值 mm(例如 0.4 mm 噴嘴使用 0.32 mm)或 % 值(例如 80%)。此值不得大於噴嘴直徑。"
msgid "Enable clumping detection"
msgstr "啟用結塊偵測"
+# AI Translated
msgid "Clumping detection layers"
-msgstr "結塊監測層數"
+msgstr "結塊偵測層數"
+# AI Translated
msgid "Clumping detection layers."
-msgstr "結塊監測層數"
+msgstr "結塊偵測層數。"
msgid "Probing exclude area of clumping"
msgstr "結塊偵測排除區域"
+# AI Translated
msgid "Probing exclude area of clumping."
-msgstr "結塊偵測排除區域"
+msgstr "結塊偵測排除區域。"
+# AI Translated
msgid "Lateral lattice angle 1"
-msgstr "網格結構角度 1"
+msgstr "側向晶格角度 1"
+# AI Translated
msgid "The angle of the first set of Lateral lattice elements in the Z direction. Zero is vertical."
-msgstr "Z 軸方向第一組 2D 網格結構的角度,0° 表示垂直方向。"
+msgstr "Z 軸方向第一組側向晶格的角度,0° 表示垂直方向。"
+# AI Translated
msgid "Lateral lattice angle 2"
-msgstr "網格結構角度 2"
+msgstr "側向晶格角度 2"
+# AI Translated
msgid "The angle of the second set of Lateral lattice elements in the Z direction. Zero is vertical."
-msgstr "Z 軸方向第二組 2D 網格結構的角度,0° 表示垂直方向。"
+msgstr "Z 軸方向第二組側向晶格的角度,0° 表示垂直方向。"
msgid "Infill overhang angle"
msgstr "填充懸空角度"
@@ -16268,8 +18685,9 @@ msgstr ""
"控制短的或無支撐的閃電分支被修剪的積極程度。\n"
"此角度會在內部轉換為每層的距離。"
+# AI Translated
msgid "Straightening angle"
-msgstr "矯直角度"
+msgstr "拉直角度"
msgid "Maximum straightening angle used to simplify Lightning branches."
msgstr "用於簡化閃電分支的最大拉直角度。"
@@ -16277,12 +18695,13 @@ msgstr "用於簡化閃電分支的最大拉直角度。"
msgid "Sparse infill anchor length"
msgstr "稀疏填充錨線長度"
+# AI Translated
msgid ""
"Connect an infill line to an internal perimeter with a short segment of an additional perimeter. If expressed as percentage (example: 15%) it is calculated over infill extrusion width. Orca Slicer tries to connect two close infill lines to a short perimeter segment. If no such perimeter segment shorter than infill_anchor_max is found, the infill line is connected to a perimeter segment at just one side and the length of the perimeter segment taken is limited to this parameter, but no longer than anchor_length_max.\n"
"Set this parameter to zero to disable anchoring perimeters connected to a single infill line."
msgstr ""
-"將填充線透過一小段額外的牆與內牆連接。如果以百分比形式設定(如 15%),此數值是基於填充擠出寬度進行計算。Orca Slicer 會嘗試將兩條靠近的填充線連接到一段較短的牆。如果沒有找到比 infill_anchor_max 更短的牆,則填充線會只連接到一側的牆,且該段的長度受此參數限制,但不會超過 anchor_length_max。 \n"
-"將此參數設為 0 可停用單條填充線與牆的錨接功能。"
+"用一小段額外的牆將填充線連接到內牆。如果以百分比表示(例如 15%),將以填充線寬為基準計算。Orca Slicer 會嘗試用一小段牆連接兩條相鄰的填充線。如果找不到短於 infill_anchor_max 的牆段,填充線只會在一側連接到牆段,所取牆段的長度以此參數為上限,但不超過 anchor_length_max。\n"
+"將此參數設為 0,可停用連接單條填充線的錨定牆。"
msgid "0 (no open anchors)"
msgstr "0(無錨線)"
@@ -16293,10 +18712,13 @@ msgstr "1000(無限制)"
msgid "Maximum length of the infill anchor"
msgstr "填充錨線的最大長度"
+# AI Translated
msgid ""
"Connect an infill line to an internal perimeter with a short segment of an additional perimeter. If expressed as percentage (example: 15%) it is calculated over infill extrusion width. Orca Slicer tries to connect two close infill lines to a short perimeter segment. If no such perimeter segment shorter than this parameter is found, the infill line is connected to a perimeter segment at just one side and the length of the perimeter segment taken is limited to infill_anchor, but no longer than this parameter.\n"
"If set to 0, the old algorithm for infill connection will be used, it should create the same result as with 1000 & 0."
-msgstr "將填充線透過一小段額外的牆與內牆連接。如果以百分比形式設定(如 15%),此數值是基於填充擠出寬度進行計算。Orca Slicer 會嘗試將兩條靠近的填充線連接到一段較短的牆。如果沒有找到短於此參數的牆,則填充線會只連接到單側牆,且該牆的長度受 infill_anchor 限制,但不會超過此參數的設定值。若此參數設定為 0,將啟用舊版填充連接算法,並產生與設定為 1000 和 0 相同的結果。"
+msgstr ""
+"用一小段額外的牆將填充線連接到內牆。如果以百分比表示(例如 15%),將以填充線寬為基準計算。Orca Slicer 會嘗試用一小段牆連接兩條相鄰的填充線。如果找不到短於此參數的牆段,填充線只會在一側連接到牆段,所取牆段的長度以 infill_anchor 為上限,但不超過此參數。\n"
+"若設為 0,將使用舊版填充連接演算法,結果應與設為 1000 和 0 時相同。"
msgid "0 (Simple connect)"
msgstr "0(簡單連接)"
@@ -16308,37 +18730,45 @@ msgstr ""
"用於列印內部稀疏填充的線材。\n"
"「預設」會使用目前作用中的物件/零件線材。"
+# AI Translated
msgid "Line width of internal sparse infill. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "內部稀疏填充的線寬。如果以%表示,它將以噴嘴直徑為基準來計算。"
+msgstr "內部稀疏填充的線寬。如果以 % 表示,將以噴嘴直徑為基準計算。"
+# AI Translated
msgid "Infill/wall overlap"
-msgstr "填充/牆 重疊"
+msgstr "填充/牆重疊"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
-msgstr "為了增強填充與周邊的結合,填充區域會略微擴大,與周邊產生重疊。此百分比值是基於稀疏填充的線寬來計算的。建議將該值設定在 10-15% 左右,以減少過擠出或材料堆積的可能性從而避免列印出粗糙的頂部表面。"
+msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to the inner wall line width. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+msgstr "此設定讓填充區域略微擴大,與牆重疊以增強結合。百分比值相對於內牆線寬。建議設為約 10-15%,以盡量減少可能的過度擠出與材料堆積,避免頂面粗糙。"
+# AI Translated
msgid "Top/Bottom solid infill/wall overlap"
-msgstr "頂部/底部實心填充部分和周邊重疊區域設定"
+msgstr "頂部/底部實心填充/牆重疊"
+# AI Translated
#, no-c-format, no-boost-format
-msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
-msgstr "頂部實心填充的區域會略微擴大,與周邊部分重疊,以增強結合效果並減少填充與周邊接合處出現針孔的可能性。建議從 25-30% 的設定值開始,這通常能有效減少針孔現象。此百分比值是基於稀疏填充的線寬來計算的"
+msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to the inner wall line width."
+msgstr "頂部實心填充區域會略微擴大並與牆重疊,以增強結合,並減少頂部填充與牆交接處出現的針孔。建議從 25-30% 開始,可減少針孔的出現。百分比值相對於內牆線寬。"
+# AI Translated
msgid "This is the speed for internal sparse infill."
-msgstr "內部稀疏填充的列印速度"
+msgstr "內部稀疏填充的速度。"
msgid "Inherits profile"
msgstr "繼承設定檔"
+# AI Translated
msgid "Name of parent profile."
-msgstr "上層設定檔名稱"
+msgstr "上層設定檔名稱。"
msgid "Interface shells"
msgstr "接觸面外殼"
+# AI Translated
msgid "Force the generation of solid shells between adjacent materials/volumes. Useful for multi-extruder prints with translucent materials or manual soluble support material."
-msgstr "強制在相鄰材料/體積之間產生實體殼。 適用於使用半透明材料或手動可溶支撐材料的多擠出機列印"
+msgstr "強制在相鄰的材料/體積之間產生實心外殼。適用於使用半透明材料或手動可溶支撐材料的多擠出機列印。"
msgid "Maximum width of a segmented region"
msgstr "分隔區域的最大寬度"
@@ -16349,16 +18779,16 @@ msgstr "分隔區域的最大寬度。零表示停用此功能。"
msgid "Interlocking depth of a segmented region"
msgstr "分隔區域的互鎖深度"
-msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
-msgstr "設定分隔區域的互鎖深度。如果「mmu_segmented_region_max_width」設定為 0,或者「mmu_segmented_region_interlocking_depth」的值大於「mmu_segmented_region_max_width」,此功能將被忽略。將此值設為 0 可完全關閉該功能。"
+# AI Translated
+msgid "Interlocking depth of a segmented region. On every other layer, the segmented region is limited to this depth. It will be ignored if \"interlocking_beam\" is enabled. Zero disables this feature."
+msgstr "分隔區域的互鎖深度。每隔一層,分隔區域會被限制在此深度內。若啟用 \"interlocking_beam\",此設定將被忽略。設為 0 可停用此功能。"
msgid "Use beam interlocking"
msgstr "使用梁式互鎖"
+# AI Translated
msgid "Generate interlocking beam structure at the locations where different filaments touch. This improves the adhesion between filaments, especially models printed in different materials."
-msgstr ""
-"在不同材料的線材接觸點產生梁式互鎖結構,增強線材之間的附著力,特別適用於不同材料列印的模型。\n"
-"譯者補充:此設定通常用於提升結構穩定性,透過梁式設計讓不同部分更緊密地連接在一起,常見於模組化或多材料列印中。"
+msgstr "在不同線材接觸的位置產生梁式互鎖結構,可增強線材之間的附著力,特別是以不同材料列印的模型。"
msgid "Interlocking beam width"
msgstr "梁式互鎖寬度"
@@ -16381,31 +18811,34 @@ msgstr "梁式互鎖的交錯高度,以層數計算。層數越少,結構越
msgid "Interlocking depth"
msgstr "梁式互鎖深度"
+# AI Translated
msgid "The distance from the boundary between filaments to generate interlocking structure, measured in cells. Too few cells will result in poor adhesion."
-msgstr "互鎖結構與邊界之間的距離,以單元數做計算。若單元數過少,可能會導致附著力不足。"
+msgstr "從線材交界處起算、產生互鎖結構的距離,以單元數計算。單元數過少會導致附著力不佳。"
msgid "Interlocking boundary avoidance"
msgstr "梁式互鎖的邊界避讓"
+# AI Translated
msgid "The distance from the outside of a model where interlocking structures will not be generated, measured in cells."
-msgstr ""
-"設定模型外部距離範圍內不產生互鎖結構,此距離以單元數做計算\n"
-"譯者補充:此設定用於確保互鎖結構不干擾模型的外部區域,特別適用於需要精細外觀或保護特定結構的列印需求。"
+msgstr "模型外側不產生互鎖結構的距離,以單元數計算。"
msgid "Ironing type"
msgstr "熨燙類型"
+# AI Translated
msgid "Ironing uses a small flow to print at the same height of a surface to make flat surfaces smoother. This setting controls which layers are being ironed."
-msgstr "熨燙是指使用小流量在表面相同高度再次列印,以使平面更加光滑。此設定控制哪些層進行熨燙"
+msgstr "熨燙是以小流量在表面相同的高度再列印一次,使平面更加光滑。此設定控制要熨燙哪些層。"
msgid "No ironing"
msgstr "不熨燙"
+# AI Translated
msgid "All top surfaces"
-msgstr "頂面"
+msgstr "所有頂面"
+# AI Translated
msgid "Topmost surface only"
-msgstr "最頂面"
+msgstr "僅最頂面"
msgid "All solid layers"
msgstr "所有實心層"
@@ -16414,20 +18847,25 @@ msgstr "所有實心層"
msgid "Ironing Pattern"
msgstr "熨燙圖案"
+# AI Translated
msgid "The pattern that will be used when ironing."
-msgstr "熨燙時將使用的圖案"
+msgstr "熨燙時將使用的圖案。"
+# AI Translated
msgid "This is the amount of material to be extruded during ironing. It is relative to the flow of normal layer height. Too high a value will result in overextrusion on the surface."
-msgstr "熨燙時相對正常層高流量的材料量。過高的數值將會導致表面材料過擠出"
+msgstr "熨燙時擠出的材料量,相對於正常層高的流量。數值過高會導致表面過度擠出。"
+# AI Translated
msgid "This is the distance between the lines used for ironing."
-msgstr "熨燙走線的間距"
+msgstr "熨燙走線的間距。"
+# AI Translated
msgid "The distance to keep from the edges. A value of 0 sets this to half of the nozzle diameter."
-msgstr "與邊緣保持的距離。設定為 0 時,距離將自動設為噴嘴直徑的一半"
+msgstr "與邊緣保持的距離。設為 0 時為噴嘴直徑的一半。"
+# AI Translated
msgid "This is the print speed for ironing lines."
-msgstr "熨燙的列印速度"
+msgstr "熨燙線的列印速度。"
msgid "Ironing angle offset"
msgstr "熨燙角度偏移"
@@ -16438,8 +18876,9 @@ msgstr "頂面熨燙紋路的偏移角度。"
msgid "Fixed ironing angle"
msgstr "固定角度熨燙"
+# AI Translated
msgid "Use a fixed absolute angle for ironing."
-msgstr "使用一個固定的、絕對的角度進行熨燙。"
+msgstr "以固定的絕對角度熨燙。"
msgid "Ironing expansion"
msgstr "熨燙擴展"
@@ -16456,13 +18895,14 @@ msgstr "啟用 Z 層輪廓處理(又稱 Z 層抗鋸齒)。"
msgid "Minimize wall height angle"
msgstr "最小化牆高角度"
+# AI Translated
msgid ""
"Reduce the height of top-surface perimeters to match the model edge height.\n"
-"Affects perimeters with a slope less than this angle (degrees).\n"
+"Affects perimeters with a slope greater than this angle (degrees).\n"
"A reasonable value is 35. Set to 0 to disable."
msgstr ""
"降低頂面牆的高度,使其與模型邊緣高度相符。\n"
-"影響坡度小於此角度(度)的牆。\n"
+"影響坡度大於此角度(度)的牆。\n"
"合理值為 35。設為 0 可停用。"
msgid "Don't alternate fill direction"
@@ -16481,8 +18921,9 @@ msgstr ""
"最小 Z 層高。\n"
"同時控制切片平面。"
+# AI Translated
msgid "This G-code is inserted at every layer change after the Z lift."
-msgstr "在每次換層抬升Z高度之後插入這段 G-code"
+msgstr "在每次換層、Z 軸抬升之後插入這段 G-code。"
msgid "Clumping detection G-code"
msgstr "結塊偵測 G-code"
@@ -16491,8 +18932,9 @@ msgstr "結塊偵測 G-code"
msgid "Silent Mode"
msgstr "靜音模式"
+# AI Translated
msgid "Whether the machine supports silent mode in which machine uses lower acceleration to print more quietly"
-msgstr "裝置是否支援使用低加速度列印的靜音模式"
+msgstr "列印裝置是否支援靜音模式,即以較低的加速度更安靜地列印"
msgid "Emit limits to G-code"
msgstr "將限制參數輸出至 G-code"
@@ -16500,28 +18942,35 @@ msgstr "將限制參數輸出至 G-code"
msgid "Machine limits"
msgstr "裝置限制"
+# AI Translated
msgid ""
"If enabled, the machine limits will be emitted to G-code file.\n"
"This option will be ignored if the G-code flavor is set to Klipper."
-msgstr "啟用後,裝置的限制參數將被寫入 G-code 檔案中。若 G-code 格式為 Klipper,該選項將無效。"
+msgstr ""
+"啟用後,列印裝置的限制參數會寫入 G-code 檔案。\n"
+"若 G-code 風格設為 Klipper,將忽略此選項。"
+# AI Translated
msgid "This G-code will be used as a code for the pause print. Users can insert pause G-code in the G-code viewer."
-msgstr "這段 G-code 用於暫停列印操作。使用者可以在 G-code 預覽中手動插入暫停指令"
+msgstr "這段 G-code 用於暫停列印。使用者可以在 G-code 檢視器中插入暫停 G-code。"
+# AI Translated
msgid "This G-code will be used as a custom code."
-msgstr "這段 G-code 是訂製化指令"
+msgstr "這段 G-code 將作為自訂指令使用。"
msgid "Small area flow compensation (beta)"
msgstr "小面積流量補償(Beta)"
+# AI Translated
msgid "Enable flow compensation for small infill areas."
-msgstr "啟用小面積填充區域的流量補償功能"
+msgstr "啟用小面積填充區域的流量補償。"
msgid "Flow Compensation Model"
msgstr "流量補償模型"
+# AI Translated
msgid "Flow Compensation Model, used to adjust the flow for small infill areas. The model is expressed as a comma separated pair of values for extrusion length and flow correction factor. Each pair is on a separate line, followed by a semicolon, in the following format: \"1.234, 5.678;\""
-msgstr "流量補償模型,用於調整小填充區域的流量。該模型表示為擠出長度和流量校正因子的逗號分隔值對。每對位於單獨的行上,後跟分號,格式如下:\"1.234, 5.678;\""
+msgstr "流量補償模型,用於調整小填充區域的流量。模型由多組以逗號分隔的數值組成,每組包含擠出長度與流量校正係數。每組各佔一行並以分號結尾,格式如下:\"1.234, 5.678;\""
msgid "Maximum speed X"
msgstr "X 最大速度"
@@ -16535,17 +18984,21 @@ msgstr "Z 最大速度"
msgid "Maximum speed E"
msgstr "E 最大速度"
-msgid "Maximum X speed"
-msgstr "X 最大速度"
+# AI Translated
+msgid "Maximum speed of the X axis"
+msgstr "X 軸最大速度"
-msgid "Maximum Y speed"
-msgstr "Y 最大速度"
+# AI Translated
+msgid "Maximum speed of the Y axis"
+msgstr "Y 軸最大速度"
-msgid "Maximum Z speed"
-msgstr "Z 最大速度"
+# AI Translated
+msgid "Maximum speed of the Z axis"
+msgstr "Z 軸最大速度"
-msgid "Maximum E speed"
-msgstr "E 最大速度"
+# AI Translated
+msgid "Maximum speed of the E axis"
+msgstr "E 軸最大速度"
msgid "Maximum acceleration X"
msgstr "X 最大加速度"
@@ -16571,39 +19024,48 @@ msgstr "Z 軸的最大加速度"
msgid "Maximum acceleration of the E axis"
msgstr "E 軸的最大加速度"
+# AI Translated
msgid "Maximum jerk X"
-msgstr "X 最大抖動"
+msgstr "X 最大急衝速度"
+# AI Translated
msgid "Maximum jerk Y"
-msgstr "Y 最大抖動"
+msgstr "Y 最大急衝速度"
+# AI Translated
msgid "Maximum jerk Z"
-msgstr "Z 最大抖動"
+msgstr "Z 最大急衝速度"
+# AI Translated
msgid "Maximum jerk E"
-msgstr "E 最大抖動"
+msgstr "E 最大急衝速度"
+# AI Translated
msgid "Maximum jerk of the X axis"
-msgstr "X 軸最大抖動"
+msgstr "X 軸最大急衝速度"
+# AI Translated
msgid "Maximum jerk of the Y axis"
-msgstr "Y 軸最大抖動"
+msgstr "Y 軸最大急衝速度"
+# AI Translated
msgid "Maximum jerk of the Z axis"
-msgstr "Z 軸最大抖動"
+msgstr "Z 軸最大急衝速度"
+# AI Translated
msgid "Maximum jerk of the E axis"
-msgstr "E 軸最大抖動"
+msgstr "E 軸最大急衝速度"
msgid "Maximum Junction Deviation"
msgstr "最大轉角偏差"
+# AI Translated
msgid ""
"Maximum junction deviation (M205 J, only apply if JD > 0 for Marlin Firmware\n"
"If your Marlin 2 printer uses Classic Jerk set this value to 0.)"
msgstr ""
-"最大轉角偏差(M205 J,僅當 JD > 0 對於 Marlin 韌體時適用\n"
-"如果您的 Marlin 2 列印裝置使用 Classic Jerk,請將此值設定為 0。)"
+"最大轉角偏差(M205 J,僅在 JD > 0 時適用於 Marlin 韌體\n"
+"如果您的 Marlin 2 列印裝置使用 Classic Jerk,請將此值設為 0。)"
msgid "Minimum speed for extruding"
msgstr "最小擠出速度"
@@ -16666,18 +19128,20 @@ msgstr "回抽最大加速度(M204 R)"
msgid "Maximum acceleration for travel"
msgstr "空駛最大加速度"
+# AI Translated
msgid "Maximum acceleration for travel (M204 T), it only applies to Marlin 2."
-msgstr "最大行駛加速度(M204 T),僅適用於 Marlin 2"
+msgstr "空駛最大加速度(M204 T),僅適用於 Marlin 2。"
msgid "Resonance avoidance"
msgstr "共振規避"
+# AI Translated
msgid ""
"By reducing the speed of the outer wall to avoid the resonance zone of the printer, ringing on the surface of the model are avoided.\n"
"Please turn this option off when testing ringing."
msgstr ""
-"透過降低外壁的速度以避開列印裝置的共振區,可以避免模型表面產生振穩。\n"
-"在測試振穩時,請關閉此選項。"
+"降低外牆速度以避開列印裝置的共振區,可避免模型表面產生振紋。\n"
+"測試振紋時,請關閉此選項。"
msgid "Min"
msgstr "最小"
@@ -16691,8 +19155,9 @@ msgstr "最大"
msgid "Maximum speed of resonance avoidance."
msgstr "共振規避的最大速度。"
+# AI Translated
msgid "Emit input shaping"
-msgstr "輸出輸入整形"
+msgstr "寫入輸入整形"
msgid ""
"Override firmware input shaping settings.\n"
@@ -16746,6 +19211,7 @@ msgstr "3HUMP_EI"
msgid "DAA"
msgstr "DAA"
+# AI Translated
msgid ""
"Resonant frequency for the X axis input shaper.\n"
"Zero will use the firmware frequency.\n"
@@ -16754,12 +19220,13 @@ msgid ""
msgstr ""
"X 軸輸入整形器的共振頻率。\n"
"設為零將使用韌體頻率。\n"
-"若要停用輸入整形,請使用 Disable 類型。\n"
+"若要停用輸入整形,請使用「停用」類型。\n"
"RRF:X 與 Y 值相等。"
msgid "Hz"
msgstr "赫茲"
+# AI Translated
msgid ""
"Resonant frequency for the Y axis input shaper.\n"
"Zero will use the firmware frequency.\n"
@@ -16767,8 +19234,9 @@ msgid ""
msgstr ""
"Y 軸輸入整形器的共振頻率。\n"
"設為零將使用韌體頻率。\n"
-"若要停用輸入整形,請使用 Disable 類型。"
+"若要停用輸入整形,請使用「停用」類型。"
+# AI Translated
msgid ""
"Damping ratio for the X axis input shaper.\n"
"Zero will use the firmware damping ratio.\n"
@@ -16777,9 +19245,10 @@ msgid ""
msgstr ""
"X 軸輸入整形器的阻尼比。\n"
"設為零將使用韌體的阻尼比。\n"
-"若要停用輸入整形,請使用 Disable 類型。\n"
+"若要停用輸入整形,請使用「停用」類型。\n"
"RRF:X 與 Y 數值相等。"
+# AI Translated
msgid ""
"Damping ratio for the Y axis input shaper.\n"
"Zero will use the firmware damping ratio.\n"
@@ -16787,10 +19256,11 @@ msgid ""
msgstr ""
"Y 軸輸入整形器的阻尼比。\n"
"設為零將使用韌體的阻尼比。\n"
-"若要停用輸入整形,請使用 Disable 類型。"
+"若要停用輸入整形,請使用「停用」類型。"
+# AI Translated
msgid "The part cooling fan speed may be increased when auto cooling is enabled. This is the maximum speed for the part cooling fan."
-msgstr "啟用自動冷卻時,可能會提高物件冷卻風扇的轉速。這是物件冷卻風扇的最大速度限制"
+msgstr "啟用自動冷卻時,可能會提高物件冷卻風扇的轉速。這是物件冷卻風扇的最大速度。"
msgid "The highest printable layer height for the extruder. Used to limit the maximum layer height when enable adaptive layer height."
msgstr "擠出機的最高可列印層高度。用於限制啟用適應性層高時的最大層高。"
@@ -16798,6 +19268,7 @@ msgstr "擠出機的最高可列印層高度。用於限制啟用適應性層高
msgid "Extrusion rate smoothing"
msgstr "平滑擠出率"
+# AI Translated
msgid ""
"This parameter smooths out sudden extrusion rate changes that happen when the printer transitions from printing a high flow (high speed/larger width) extrusion to a lower flow (lower speed/smaller width) extrusion and vice versa.\n"
"\n"
@@ -16819,13 +19290,13 @@ msgstr ""
"\n"
"值為 0 時停用此功能。\n"
"\n"
-"對於高速、高流量的直驅列印裝置(如 Bambu Lab 或 Voron),通常不需要此值。但在某些特徵速度差異較大的情況下,它可以提供一些邊際效益。例如,因懸空而大幅減速時。在這些情況下,建議使用約 300-350 mm³/s² 的較高值,因為這能提供足夠的平滑化以輔助 Pressure Advance 實現更平穩的流量過渡。\n"
+"對於高速、高流量且採用近程擠出機的列印裝置(如 Bambu Lab 或 Voron),通常不需要此值。但在某些特徵速度差異較大的情況下,它可以提供一些邊際效益,例如因懸空而大幅減速時。在這些情況下,建議使用約 300-350 mm³/s² 的較高值,因為這能提供恰好足夠的平滑,協助 Pressure Advance 實現更平穩的流量過渡。\n"
"\n"
-"對於沒有 Pressure Advance 的較慢列印裝置,該值應設定得低得多。直驅擠出機建議從 10-15 mm³/s² 開始,遠端擠出機(Bowden)建議從 5-10 mm³/s² 開始。\n"
+"對於沒有 Pressure Advance 的較慢列印裝置,此值應設得低得多。近程擠出機建議從 10-15 mm³/s² 開始,遠程擠出機則從 5-10 mm³/s² 開始。\n"
"\n"
"此功能在 PrusaSlicer 中稱為 Pressure Equalizer。\n"
"\n"
-"注意:此參數會停用弧線擬合。"
+"注意:此參數會停用圓弧擬合。"
msgid "mm³/s²"
msgstr "mm³/s²"
@@ -16849,19 +19320,21 @@ msgstr ""
msgid "Apply only on external features"
msgstr "僅套用於外部結構"
+# AI Translated
msgid "Applies extrusion rate smoothing only on external perimeters and overhangs. This can help reduce artefacts due to sharp speed transitions on externally visible overhangs without impacting the print speed of features that will not be visible to the user."
-msgstr "僅在外部輪廓與懸垂部分套用擠出速率平滑處理。這可減少外部可見區域因速度變化過快而產生的瑕疵,而不影響內部結構的列印速度。"
+msgstr "僅在外牆與懸空套用擠出速率平滑。這有助於減少外部可見懸空上因速度急遽變化而產生的瑕疵,同時不影響使用者看不到的部分的列印速度。"
+# AI Translated
msgid "Minimum speed for part cooling fan."
-msgstr "物件冷卻風扇的最小轉速"
+msgstr "物件冷卻風扇的最小轉速。"
# AI Translated
msgid ""
"Speed of auxiliary part cooling fan. Auxiliary fan will run at this speed during printing except the first several layers which is defined by no cooling layers.\n"
"Please enable auxiliary_fan in printer settings to use this feature. G-code command: M106 P2 S(0-255)"
msgstr ""
-"輔助冷卻風扇的轉速。 列印期間,輔助風扇將以該速度運行,除了設定無須冷卻的前幾層除外\n"
-"請在列印裝置設定中啟用輔助風扇才能使用此功能。 G-code 指令:M106 P2 S(0-255)"
+"輔助物件冷卻風扇的轉速。列印期間輔助風扇會以此速度運轉,但設為不冷卻的前幾層除外。\n"
+"請在列印裝置設定中啟用「輔助物件冷卻風扇」才能使用此功能。G-code 指令:M106 P2 S(0-255)"
msgid "For the first"
msgstr "在最初的"
@@ -16888,21 +19361,23 @@ msgstr "最小列印速度"
msgid "The minimum print speed to which the printer slows down to maintain the minimum layer time defined above when the slowdown for better layer cooling is enabled."
msgstr "當啟用了為改善層冷卻而減速的功能時,這個參數設定列印裝置能減速到的最低列印速度,以確保達到上面設定的最短層時間。"
+# AI Translated
msgid "The diameter of nozzle."
-msgstr "噴嘴直徑"
+msgstr "噴嘴的直徑。"
msgid "Configuration notes"
msgstr "設定備註"
# AI Translated
msgid "You can put here your personal notes. This text will be added to the G-code header comments."
-msgstr "您可以在這裡放置您的個人備註。 該文字將會加入 G-code 標頭註解中。"
+msgstr "您可以在此輸入個人備註。此文字會加入 G-code 標頭註解中。"
msgid "Host Type"
msgstr "主機類型"
+# AI Translated
msgid "Orca Slicer can upload G-code files to a printer host. This field must contain the kind of the host."
-msgstr "Orca Slicer可以將 G-code 檔案上傳到列印裝置。此欄位必須包含裝置類型。"
+msgstr "Orca Slicer 可以將 G-code 檔案上傳到列印裝置主機。此欄位必須包含主機的類型。"
msgid "Nozzle volume"
msgstr "噴嘴內腔體積"
@@ -16913,26 +19388,31 @@ msgstr "噴嘴內從刀具到末端之間的體積"
msgid "Cooling tube position"
msgstr "喉管位置"
+# AI Translated
msgid "Distance of the center-point of the cooling tube from the extruder tip."
-msgstr "喉管的中心點與擠出機齒尖的距離。"
+msgstr "喉管中心點與噴嘴尖端的距離。"
msgid "Cooling tube length"
msgstr "喉管長度"
+# AI Translated
msgid "Length of the cooling tube to limit space for cooling moves inside it."
-msgstr "喉管的長度,用於限制冷卻內部移動的空間。"
+msgstr "喉管的長度,用於限制在喉管內進行冷卻移動的空間。"
+# AI Translated
msgid "High extruder current on filament swap"
-msgstr "更換線材擠出機大電流"
+msgstr "換料時提高擠出機電流"
+# AI Translated
msgid "It may be beneficial to increase the extruder motor current during the filament exchange sequence to allow for rapid ramming feed rates and to overcome resistance when loading a filament with an ugly shaped tip."
-msgstr "可能有益於更換線材過程中增加擠出機電流,克服進料時的阻力以加快尖端成型進料速率而避免產生難看形狀的尖端。"
+msgstr "換料過程中提高擠出機馬達電流可能有益,可允許較快的尖端成型進料速率,並在裝填尖端形狀不良的線材時克服阻力。"
msgid "Filament parking position"
msgstr "線材停放位置"
+# AI Translated
msgid "Distance of the extruder tip from the position where the filament is parked when unloaded. This should match the value in printer firmware."
-msgstr "退料時,擠出機齒尖與線材停放位置的距離。這應該與列印裝置韌體中的值相符合。"
+msgstr "退料時,線材停放位置與噴嘴尖端的距離。此值應與列印裝置韌體中的值一致。"
msgid "Extra loading distance"
msgstr "額外進料距離"
@@ -16943,44 +19423,54 @@ msgstr "當設定為零時,線材的進料移動與退料移動的距離相同
msgid "Start end points"
msgstr "起始終止點"
+# AI Translated
msgid "The start and end points which are from the cutter area to the excess chute."
-msgstr "從切割區域到垃圾桶的起始和結束點。"
+msgstr "從切刀區域到廢料槽的起點和終點。"
msgid "Reduce infill retraction"
msgstr "減小填充回抽"
+# AI Translated
msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped."
-msgstr "當空駛完全在填充區域內時不觸發回抽。這意味著即使漏料也是不可見的。對於複雜模型,該設定能夠減少回抽次數以及列印時長,但是會造成 G-code 產生變慢"
+msgstr "當空駛完全位於填充區域內時不回抽,因為漏料不會被看見。對於複雜模型,這可減少回抽次數並節省列印時間,但會使切片與 G-code 產生變慢。請注意,在略過回抽的區域也不會執行 Z 抬升。"
+# AI Translated
msgid "This option will drop the temperature of the inactive extruders to prevent oozing."
-msgstr "這個選項會降低未使用噴頭的溫度,以防止材料滲出。"
+msgstr "此選項會降低閒置擠出機的溫度,以防止漏料。"
msgid "Filename format"
msgstr "檔案名稱格式"
+# AI Translated
msgid "Users can decide project file names when exporting."
-msgstr "使用者可以自訂匯出項目檔案的名稱"
+msgstr "使用者可以在匯出時自訂專案檔案的名稱。"
+# AI Translated
msgid "Make overhangs printable"
-msgstr "修改懸空成可列印"
+msgstr "使懸空可列印"
+# AI Translated
msgid "Modify the geometry to print overhangs without support material."
-msgstr "修改幾何形狀使得懸空部分無需支撐材料或者橋接列印。"
+msgstr "修改幾何形狀,使懸空無需支撐材料即可列印。"
+# AI Translated
msgid "Make overhangs printable - Maximum angle"
-msgstr "懸空可列印修改的最大角度"
+msgstr "使懸空可列印的最大角度"
+# AI Translated
msgid "Maximum angle of overhangs to allow after making more steep overhangs printable.90° will not change the model at all and allow any overhang, while 0 will replace all overhangs with conical material."
-msgstr "開啟使懸空可列印後,允許的懸空最大角度。 90° 將完全不改變模型並允許任何懸空,而 0° 將用圓錐形材料替換所有懸空部分。"
+msgstr "使較陡的懸空可列印後所允許的最大懸空角度。90° 完全不改變模型並允許任何懸空,0° 則會以圓錐形材料取代所有懸空。"
+# AI Translated
msgid "Make overhangs printable - Hole area"
-msgstr "最大孔洞面積"
+msgstr "使懸空可列印的孔洞面積"
msgid "Maximum area of a hole in the base of the model before it's filled by conical material. A value of 0 will fill all the holes in the model base."
msgstr "模型底部的孔洞在被圓錐形材料填充前所允許的最大面積。值為 0 將填充模型底部的所有孔洞。"
+# AI Translated
msgid "Detect overhang walls"
-msgstr "偵測懸空外牆"
+msgstr "偵測懸空牆"
#, c-format, boost-format
msgid "This detects the overhang percentage relative to line width and uses a different speed to print. For 100%% overhang, bridging speed is used."
@@ -17020,19 +19510,22 @@ msgstr ""
"用於列印內牆的線材。\n"
"「預設」會使用目前作用中的物件/零件線材。"
+# AI Translated
msgid "Line width of inner wall. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "內牆的線寬。如果以 % 表示,它將以噴嘴直徑為基準來計算。"
+msgstr "內牆的線寬。如果以 % 表示,將以噴嘴直徑為基準計算。"
+# AI Translated
msgid "This is the speed for inner walls."
-msgstr "內圈牆列印速度"
+msgstr "內牆的速度。"
# AI Translated
msgid "This is the number of walls per layer."
-msgstr "每一層的牆層數"
+msgstr "每一層的牆層數。"
msgid "Alternate extra wall"
msgstr "交錯額外牆壁"
+# AI Translated
msgid ""
"This setting adds an extra wall to every other layer. This way the infill gets wedged vertically between the walls, resulting in stronger prints.\n"
"\n"
@@ -17040,20 +19533,23 @@ msgid ""
"\n"
"Using lightning infill together with this option is not recommended as there is limited infill to anchor the extra perimeters to."
msgstr ""
-"此設定在每隔一層新增一個額外的牆壁。這樣填充會垂直嵌入牆壁之間,從而增強列印的強度。\n"
+"此設定每隔一層新增一道額外的牆壁。如此一來,填充會在垂直方向上被夾在牆壁之間,使列印件更堅固。\n"
"\n"
-"啟用此選項時,需要停用『確保垂直外殼厚度』選項。\n"
+"啟用此選項時,需要停用「確保垂直外殼厚度」選項。\n"
"\n"
-"不建議將此選項與『閃電填充』一起使用,因為填充有限,無法為額外的外牆提供穩固的支撐。"
+"不建議將此選項與閃電填充一起使用,因為可供額外的牆錨定的填充有限。"
+# AI Translated
msgid "If you want to process the output G-code through custom scripts, just list their absolute paths here. Separate multiple scripts with a semicolon. Scripts will be passed the absolute path to the G-code file as the first argument, and they can access the Orca Slicer config settings by reading environment variables."
-msgstr "如果您想透過自訂腳本處理輸出的 G-code,只需在此處列出它們的絕對路徑即可。用分號分隔多個腳本。腳本將傳遞 G-code 檔案的絕對路徑作為第一個參數,並且它們可以透過讀取環境變數來讀取 Orca Slicer 設定。"
+msgstr "如果您想透過自訂腳本處理輸出的 G-code,只需在此處列出它們的絕對路徑即可。多個腳本請以分號分隔。腳本會收到 G-code 檔案的絕對路徑作為第一個參數,並可透過讀取環境變數來取得 Orca Slicer 的設定。"
+# AI Translated
msgid "Change extrusion role G-code (process)"
-msgstr "變更擠出模式 G-code(列印參數)"
+msgstr "變更擠出類型 G-code(列印參數)"
+# AI Translated
msgid "This G-code is inserted when the extrusion role is changed. It runs after the machine and filament extrusion role G-code."
-msgstr "此 G-code 會在擠出模式變更時插入。它會在機器和線材擠出模式 G-code 之後執行。"
+msgstr "此 G-code 會在擠出類型變更時插入。它會在機器和線材擠出類型 G-code 之後執行。"
# AI Translated
msgid "Plugins Used"
@@ -17064,14 +19560,15 @@ msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capabi
msgstr "此預設所參照的外掛功能,以 name;uuid;capability 儲存。"
# AI Translated
-msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+msgid "Python plugins invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
msgstr "在每個切片管線步驟呼叫的 Python 外掛,用於讀取與修改中介切片資料,包括最終的 G-code 後處理步驟。研究/實驗性質。"
msgid "Printer type"
msgstr "列印裝置類型"
+# AI Translated
msgid "Type of the printer."
-msgstr "列印裝置類型"
+msgstr "列印裝置類型。"
msgid "Printer notes"
msgstr "列印裝置備註"
@@ -17079,53 +19576,63 @@ msgstr "列印裝置備註"
msgid "You can put your notes regarding the printer here."
msgstr "可以將列印裝置的備註填寫在此處。"
+# AI Translated
+# Needs human review: printer_variant label (nozzle-diameter variant of a printer model); check 變體 reads right where it is shown
msgid "Printer variant"
-msgstr "列印裝置型號"
+msgstr "列印裝置變體"
msgid "Raft contact Z distance"
msgstr "筏層 Z 間距"
+# AI Translated
msgid "Z gap between raft and object. If Support Top Z Distance is 0, this value is ignored and the object is printed in direct contact with the raft (no gap)."
-msgstr "筏層與模型之間的Z間隙。若支撐頂部Z距離為0,則忽略此值,模型與筏層直接接觸列印(無間隙)。"
+msgstr "筏層與物件之間的 Z 間隙。若「頂部 Z 間距」為 0,則忽略此值,物件會直接接觸筏層列印(無間隙)。"
msgid "Raft expansion"
msgstr "筏層擴展"
+# AI Translated
msgid "This expands all raft layers in XY plane."
-msgstr "在 XY 平面擴展所有筏層"
+msgstr "在 XY 平面擴展所有筏層。"
msgid "First layer density"
msgstr "首層密度"
+# AI Translated
msgid "This is the density of the first raft or support layer."
-msgstr "筏和支撐的首層密度"
+msgstr "筏層或支撐首層的密度。"
msgid "First layer expansion"
msgstr "首層擴展"
+# AI Translated
msgid "This expands the first raft or support layer to improve bed adhesion."
-msgstr "擴展筏和支撐的首層可以改善和熱床的黏附"
+msgstr "擴展筏層或支撐的首層,以改善與熱床的附著。"
msgid "Raft layers"
msgstr "筏層"
+# AI Translated
msgid "Object will be raised by this number of support layers. Use this function to avoid warping when printing ABS."
-msgstr "模型會在相應層數的支撐上抬高進行列印。使用該功能通常用於列印 ABS 時翹曲"
+msgstr "物件會被抬高此數量的支撐層。列印 ABS 時可使用此功能避免翹曲。"
+# AI Translated
msgid "The G-code path is generated after simplifying the contour of models to avoid too many points and G-code lines. Smaller values mean higher resolution and more time required to slice."
-msgstr "為了避免 G-code 檔案中過密集的點和走線,G-code走線通常是在簡化模型的外輪廓之後產生。越小的數值代表更高的解析度,同時需要更長的切片時間"
+msgstr "G-code 路徑是在簡化模型輪廓後產生,以避免過多的點與 G-code 行。數值越小,解析度越高,切片所需時間也越長。"
msgid "Travel distance threshold"
msgstr "空駛距離臨界值"
+# AI Translated
msgid "Only trigger retraction when the travel distance is longer than this threshold."
-msgstr "只在空駛距離大於該數值時觸發回抽"
+msgstr "只在空駛距離大於此臨界值時觸發回抽。"
msgid "Retract amount before wipe"
msgstr "擦拭前的回抽量"
+# AI Translated
msgid "This is the length of fast retraction before a wipe, relative to retraction length."
-msgstr "擦拭之前的回抽長度,用總回抽長度的百分比表示"
+msgstr "擦拭前快速回抽的長度,相對於回抽長度。"
# AI Translated
msgid "Retract amount after wipe"
@@ -17143,26 +19650,30 @@ msgstr ""
msgid "Retract on layer change"
msgstr "換層時回抽"
+# AI Translated
msgid "This forces a retraction on layer changes."
-msgstr "強制在換層時回抽"
+msgstr "強制在換層時回抽。"
msgid "Retraction Length"
msgstr "回抽長度"
+# AI Translated
msgid "Some amount of material in extruder is pulled back to avoid ooze during long travel. Set zero to disable retraction."
-msgstr "擠出機中的一些材料被拉回,以避免在長行程期間滲出。設定為零以停用回抽。"
+msgstr "將擠出機中的部分材料抽回,以避免長距離空駛時漏料。設為零以停用回抽。"
msgid "Long retraction when cut (beta)"
msgstr "切斷時的長回抽(實驗性功能)"
+# AI Translated
msgid "Experimental feature: Retracting and cutting off the filament at a longer distance during changes to minimize purge. While this reduces flush significantly, it may also raise the risk of nozzle clogs or other printing problems."
-msgstr "實驗性功能。在線材切換時,透過更長距離的回抽和切斷操作來減少沖洗量。雖然這能大幅降低沖洗需求,但可能會提高噴嘴堵塞或其他列印問題的風險。"
+msgstr "實驗性功能:換料時以更長的距離回抽並切斷線材,以盡量減少清理量。雖然這能大幅減少清理,但也可能提高噴嘴堵塞或其他列印問題的風險。"
msgid "Retraction distance when cut"
msgstr "切斷時的回抽距離"
+# AI Translated
msgid "Experimental feature: Retraction length before cutting off during filament change."
-msgstr "實驗性功能。線材切換時切斷前的回抽距離"
+msgstr "實驗性功能:換料時切斷前的回抽長度。"
msgid "Long retraction when extruder change"
msgstr "更換擠出機時長回抽"
@@ -17181,8 +19692,9 @@ msgstr "在換工具之前觸發回抽時,線材會依指定的長度回抽(
msgid "Z-hop height"
msgstr "Z 抬升高度"
+# AI Translated
msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing."
-msgstr "回抽完成之後,噴嘴輕微抬升,和列印物件之間產生一定間隙。這能夠避免空駛時噴嘴和列印物件剮蹭和碰撞。使用螺旋線抬升z能夠減少拉絲"
+msgstr "每次回抽時,噴嘴會稍微抬升,在噴嘴與列印件之間產生間隙,以免空駛時噴嘴撞到列印件。使用螺旋線抬升 Z 可以防止拉絲。"
msgid "Z-hop lower boundary"
msgstr "Z 抬升下邊界"
@@ -17193,14 +19705,16 @@ msgstr "只有當 Z 值高於此設定值且低於「Z 抬升上邊界」參數
msgid "Z-hop upper boundary"
msgstr "Z 抬升上邊界"
+# AI Translated
msgid "If this value is positive, Z-hop will only come into effect when Z is above the parameter: \"Z-hop lower boundary\" and is below this value."
-msgstr "若此值為正,Z 抬升功能僅在 Z 值高於「Z 抬升下邊界」參數且低於此設定值時才會啟用"
+msgstr "若此值為正,Z 抬升功能僅在 Z 值高於「Z 抬升下邊界」參數且低於此設定值時才會啟用。"
msgid "Z-hop type"
msgstr "Z 抬升類型"
+# AI Translated
msgid "Type of Z-hop."
-msgstr "Z軸抬升類型。"
+msgstr "Z 抬升類型。"
msgid "Slope"
msgstr "梯形"
@@ -17208,11 +19722,13 @@ msgstr "梯形"
msgid "Spiral"
msgstr "螺旋"
+# AI Translated
msgid "Traveling angle"
-msgstr "移動角度"
+msgstr "空駛角度"
+# AI Translated
msgid "Traveling angle for Slope and Spiral Z-hop type. Setting it to 90° results in Normal Lift."
-msgstr "適用於坡度和螺旋 Z 抬升類型的移動角度。將其設為 90° 可執行正常抬升"
+msgstr "「梯形」和「螺旋」Z 抬升類型的空駛角度。設為 90° 即為「普通」抬升。"
msgid "Only lift Z above"
msgstr "僅在高度以上抬 Z"
@@ -17220,17 +19736,20 @@ msgstr "僅在高度以上抬 Z"
msgid "If you set this to a positive value, Z lift will only take place above the specified absolute Z."
msgstr "若將此值設定為正數,Z 抬升僅會在超過指定的絕對 Z 值時啟用。"
+# AI Translated
msgid "Only lift Z below"
-msgstr "僅在 Z 值低於指定值時抬升"
+msgstr "僅在高度以下抬 Z"
msgid "If you set this to a positive value, Z lift will only take place below the specified absolute Z."
msgstr "若將此值設定為正數,Z 抬升僅會在低於指定的絕對 Z 值時啟用。"
+# AI Translated
msgid "On surfaces"
-msgstr "僅在表面"
+msgstr "在表面"
+# AI Translated
msgid "Enforce Z-Hop behavior. This setting is impacted by the above settings (Only lift Z above/below)."
-msgstr "強制啟用 Z 抬升行為。此功能受前述設定(僅在 Z 值高於/低於時啟用)的影響。"
+msgstr "強制執行 Z 抬升。此設定會受上方設定(「僅在高度以上抬 Z」/「僅在高度以下抬 Z」)影響。"
msgid "All Surfaces"
msgstr "所有表面"
@@ -17241,11 +19760,13 @@ msgstr "僅在頂面"
msgid "Bottom Only"
msgstr "僅在底面"
+# AI Translated
msgid "Top and Bottom"
-msgstr "頂面和地面"
+msgstr "頂面和底面"
+# AI Translated
msgid "Direct Drive"
-msgstr "直驅(近程)"
+msgstr "近程擠出機"
msgid "Bowden"
msgstr "遠程擠出機"
@@ -17272,29 +19793,32 @@ msgstr "列印裝置具有線材切換硬體(例如 AMS)。"
msgid "Extra length on restart"
msgstr "額外回填長度"
+# AI Translated
msgid "When the retraction is compensated after the travel move, the extruder will push this additional amount of filament. This setting is rarely needed."
-msgstr "每當空駛後回抽被補償時,擠出機將推入額外長度的線材。很少需要此設定。"
+msgstr "空駛後補償回抽時,擠出機會額外推入此長度的線材。很少需要此設定。"
# AI Translated
msgid "Extra length on restart (Toolchange)"
msgstr "額外回填長度(換工具)"
+# AI Translated
msgid "When the retraction is compensated after changing tool, the extruder will push this additional amount of filament."
-msgstr "當換色後回抽被補償時,擠出機將推入額外長度的線材。"
+msgstr "換工具後補償回抽時,擠出機會額外推入此長度的線材。"
msgid "Retraction speed"
msgstr "回抽速度"
+# AI Translated
msgid "Speed for retracting filament from the nozzle."
-msgstr "從噴嘴回抽線材的速度"
+msgstr "從噴嘴回抽線材的速度。"
+# AI Translated
msgid "Deretraction speed"
-msgstr "裝填速度"
+msgstr "裝填回抽速度"
+# AI Translated
msgid "Speed for reloading filament into the nozzle. Zero means same speed of retraction."
-msgstr ""
-"向噴嘴重新裝填線材的速度。\n"
-"設為 0 則使用與回抽相同的速度。"
+msgstr "將線材重新裝填至噴嘴的速度。設為 0 則使用與回抽相同的速度。"
# AI Translated
msgid "Deretraction speed (extruder change)"
@@ -17307,8 +19831,9 @@ msgstr "切換擠出機時將線材重新裝入噴嘴的速度。"
msgid "Use firmware retraction"
msgstr "使用韌體回抽"
+# AI Translated
msgid "This experimental setting uses G10 and G11 commands to have the firmware handle the retraction. This is only supported in recent Marlin."
-msgstr "此實驗性功能使用 G10 和 G11 指令,由韌體負責執行回抽操作。僅支援於最新版本的 Marlin 韌體。"
+msgstr "此實驗性設定使用 G10 和 G11 指令,由韌體處理回抽。僅較新版本的 Marlin 支援此功能。"
msgid "Show auto-calibration marks"
msgstr "顯示雷達校正線"
@@ -17316,14 +19841,16 @@ msgstr "顯示雷達校正線"
msgid "Disable set remaining print time"
msgstr "停用剩餘列印時間設定"
+# AI Translated
msgid "Disable generating of the M73: Set remaining print time in the final G-code."
-msgstr "停用在最終 G-code 中產生 M73 指令以設定剩餘列印時間"
+msgstr "停用在最終 G-code 中產生 M73(設定剩餘列印時間)指令。"
msgid "Seam position"
msgstr "接縫位置"
+# AI Translated
msgid "This is the starting position for each part of the outer wall."
-msgstr "Z縫(外牆銜接)的位置"
+msgstr "外牆每個部分的起始位置。"
msgid "Nearest"
msgstr "最近"
@@ -17343,8 +19870,9 @@ msgstr "隨機"
msgid "Staggered inner seams"
msgstr "交錯的內牆接縫"
+# AI Translated
msgid "This option causes the inner seams to be shifted backwards based on their depth, forming a zigzag pattern."
-msgstr "此選項會根據內牆深度使接縫向後移動,形成鋸齒形模式。"
+msgstr "此選項會依內牆深度將接縫向後移動,形成鋸齒狀的排列。"
msgid "Seam gap"
msgstr "接縫間隔"
@@ -17362,35 +19890,45 @@ msgstr "斜拼接縫(Beta)"
msgid "Use scarf joint to minimize seam visibility and increase seam strength."
msgstr "採用斜拼接縫來減少接縫的可見度並提高接縫的強度。"
+# AI Translated
msgid "Conditional scarf joint"
-msgstr "斜拼接縫條件"
+msgstr "條件式斜拼接縫"
+# AI Translated
msgid "Apply scarf joints only to smooth perimeters where traditional seams do not conceal the seams at sharp corners effectively."
-msgstr "僅在平滑外牆使用斜拼接縫,用於傳統接縫無法在尖角處有效隱藏接縫的情況。"
+msgstr "僅在平滑的牆上套用斜拼接縫,也就是傳統接縫無法藉由尖角有效隱藏接縫之處。"
+# AI Translated
msgid "Conditional angle threshold"
-msgstr "角度門檻值條件"
+msgstr "條件式角度臨界值"
+# AI Translated
msgid ""
"This option sets the threshold angle for applying a conditional scarf joint seam.\n"
"If the maximum angle within the perimeter loop exceeds this value (indicating the absence of sharp corners), a scarf joint seam will be used. The default value is 155°."
-msgstr "此選項設定斜拼接縫的角度門檻值條件。當外牆迴圈內的最大角度超過該設定值(表示不存在尖角)時,將套用斜接縫接縫。預設值為 155°。"
+msgstr ""
+"此選項設定套用條件式斜拼接縫的角度臨界值。\n"
+"若牆迴圈內的最大角度超過此值(表示沒有尖角),將使用斜拼接縫。預設值為 155°。"
+# AI Translated
msgid "Conditional overhang threshold"
-msgstr "懸空門檻值條件"
+msgstr "條件式懸空臨界值"
+# AI Translated
#, no-c-format, no-boost-format
msgid "This option determines the overhang threshold for the application of scarf joint seams. If the unsupported portion of the perimeter is less than this threshold, scarf joint seams will be applied. The default threshold is set at 40% of the external wall's width. Due to performance considerations, the degree of overhang is estimated."
-msgstr "此選項用於設定斜拼接縫的懸空門檻值。當外牆未支撐的部分小於該門檻值時,將套用斜拼接縫。預設門檻值為外層牆寬度的 40%。為了考慮性能,此懸空程度為估算值。"
+msgstr "此選項設定套用斜拼接縫的懸空臨界值。若牆未受支撐的部分小於此臨界值,將套用斜拼接縫。預設臨界值為外牆寬度的 40%。基於效能考量,懸空程度為估算值。"
msgid "Scarf joint speed"
msgstr "斜拼接縫速度"
+# AI Translated
msgid "This option sets the printing speed for scarf joints. It is recommended to print scarf joints at a slow speed (less than 100 mm/s). It's also advisable to enable 'Extrusion rate smoothing' if the set speed varies significantly from the speed of the outer or inner walls. If the speed specified here is higher than the speed of the outer or inner walls, the printer will default to the slower of the two speeds. When specified as a percentage (e.g., 80%), the speed is calculated based on the respective outer or inner wall speed. The default value is set to 100%."
-msgstr "此選項用於設定斜拼接縫的列印速度,建議以較慢的速度進行列印(小於 100 mm/s)。若設定的速度與外牆或內牆速度差異較大,建議啟用『平滑擠出率』功能。若此處設定的速度高於外牆或內牆速度,列印裝置將自動選擇兩者中較慢的速度。當以百分比(如 80%)指定時,該速度將基於外牆或內牆速度進行計算。預設值為 100%。"
+msgstr "此選項設定斜拼接縫的列印速度。建議以較慢的速度(小於 100 mm/s)列印斜拼接縫。若設定的速度與外牆或內牆速度差異較大,也建議啟用「平滑擠出率」。若此處設定的速度高於外牆或內牆速度,列印裝置會採用兩者中較慢的速度。以百分比(例如 80%)指定時,速度將以對應的外牆或內牆速度為基準計算。預設值為 100%。"
+# AI Translated
msgid "Scarf joint flow ratio"
-msgstr "斜拼接縫流量比"
+msgstr "斜拼接縫流量比例"
msgid "This factor affects the amount of material for scarf joints."
msgstr "此參數會影響斜拼接縫的擠出流量。"
@@ -17398,10 +19936,13 @@ msgstr "此參數會影響斜拼接縫的擠出流量。"
msgid "Scarf start height"
msgstr "斜拼接縫起始高度"
+# AI Translated
msgid ""
"Start height of the scarf.\n"
"This amount can be specified in millimeters or as a percentage of the current layer height. The default value for this parameter is 0."
-msgstr "設定斜拼接縫的起始高度。該值可用毫米或目前層高度的百分比表示,預設值為 0。"
+msgstr ""
+"斜拼接縫的起始高度。\n"
+"此值可用毫米或目前層高的百分比表示。此參數的預設值為 0。"
msgid "Scarf around entire wall"
msgstr "環繞整個牆體的斜拼接縫"
@@ -17412,8 +19953,9 @@ msgstr "斜拼接縫覆蓋牆體的整個長度。"
msgid "Scarf length"
msgstr "斜拼接縫長度"
+# AI Translated
msgid "Length of the scarf. Setting this parameter to zero effectively disables the scarf."
-msgstr "斜拼接縫的長度。若將此參數設為 0,將停用斜接功能。"
+msgstr "斜拼接縫的長度。將此參數設為 0 等同停用斜拼接縫。"
msgid "Scarf steps"
msgstr "斜拼接縫段數"
@@ -17421,17 +19963,21 @@ msgstr "斜拼接縫段數"
msgid "Minimum number of segments of each scarf."
msgstr "每個斜拼接縫的最小分段數量。"
+# AI Translated
msgid "Scarf joint for inner walls"
-msgstr "內牆的斜接縫"
+msgstr "內牆斜拼接縫"
+# AI Translated
msgid "Use scarf joint for inner walls as well."
-msgstr "內牆同樣使用斜接縫。"
+msgstr "內牆也使用斜拼接縫。"
-msgid "Role base wipe speed"
-msgstr "自動擦拭速度"
+# AI Translated
+msgid "Role based wipe speed"
+msgstr "依擠出類型的擦拭速度"
+# AI Translated
msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action."
-msgstr "拭的速度由目前擠出任務的速度決定。例如,若擦拭操作緊接著外牆的擠出執行,則將使用外牆擠出的速度進行擦拭。"
+msgstr "擦拭的速度由目前擠出類型的速度決定。例如,若擦拭操作緊接著外牆的擠出執行,則將使用外牆擠出的速度進行擦拭。"
msgid "Wipe on loops"
msgstr "閉環擦拭"
@@ -17468,30 +20014,36 @@ msgid ""
"\n"
"For example, 50% shifts the path by half of the outer-wall width. The effective offset is limited by both the actual outer-wall width and the available spacing to the adjacent wall, so values above 100% or an equivalent absolute distance have no additional effect. Set to 0 to disable the offset."
msgstr ""
-"擦拭路徑偏離外牆輪廓的距離,以公釐或實際外牆擠出寬度的百分比指定。\n"
+"擦拭路徑偏離外牆的距離,以公釐或實際外牆線寬的百分比指定。\n"
"\n"
"例如,50% 會將路徑偏移外牆寬度的一半。實際偏移量同時受實際外牆寬度與到相鄰牆的可用間距限制,因此超過 100% 的值或等效的絕對距離不會產生額外效果。設為 0 可停用偏移。"
msgid "Wipe before external loop"
msgstr "外牆迴圈前的擦拭動作"
+# AI Translated
msgid ""
"To minimize visibility of potential overextrusion at the start of an external perimeter when printing with Outer/Inner or Inner/Outer/Inner wall print order, the de-retraction is performed slightly on the inside from the start of the external perimeter. That way any potential over extrusion is hidden from the outside surface.\n"
"\n"
"This is useful when printing with Outer/Inner or Inner/Outer/Inner wall print order as in these modes it is more likely an external perimeter is printed immediately after a de-retraction move."
-msgstr "為了減少在使用『外牆/內牆』或『內牆/外牆/內牆』牆體列印順序時,外牆開始位置可能出現的過擠出痕跡,回抽復位動作會稍微偏向外牆起始位置的內側執行。這樣可將可能的過擠出隱藏於外牆內部。此功能對於『外牆/內牆』或『內牆/外牆/內牆』牆體列印順序非常有用,因為在這些模式下,外牆往往緊接著回抽復位動作開始列印。"
+msgstr ""
+"使用「外牆/內牆」或「內牆/外牆/內牆」牆列印順序時,為了盡量減少外牆起點處可能出現的過度擠出,裝填回抽會在外牆起點稍微偏內側的位置執行。如此一來,可能的過度擠出就會隱藏起來,不會出現在外表面。\n"
+"\n"
+"使用「外牆/內牆」或「內牆/外牆/內牆」牆列印順序時,此選項很有用,因為在這些模式下,外牆更有可能在裝填回抽移動後立即列印。"
msgid "Wipe speed"
msgstr "擦拭速度"
+# AI Translated
msgid "The wipe speed is determined by the speed setting specified in this configuration. If the value is expressed as a percentage (e.g. 80%), it will be calculated based on the travel speed setting above. The default value for this parameter is 80%."
-msgstr "擦拭速度取決於此配置中設定的速度值。若以百分比表示(例如 80%),則會根據上述的移動速度設定進行計算。該參數的預設值為 80%"
+msgstr "擦拭速度由此處設定的速度決定。如果以百分比表示(例如 80%),將以上方的空駛速度設定為基準計算。此參數的預設值為 80%。"
msgid "Skirt distance"
msgstr "Skirt 距離"
+# AI Translated
msgid "This is the distance from the skirt to the brim or the object."
-msgstr "從 Skirt 到模型或者 Brim 的距離"
+msgstr "Skirt 到 Brim 或物件的距離。"
msgid "Skirt start point"
msgstr "Skirt 起始位置"
@@ -17508,22 +20060,22 @@ msgstr "Skirt 有多少層。通常只有一層"
msgid "Single loop after first layer"
msgstr "首層後單圈"
+# AI Translated
msgid "Limits the skirt/draft shield loops to one wall after the first layer. This is useful, on occasion, to conserve filament but may cause the draft shield/skirt to warp / crack."
-msgstr "在首層之後,將環形裙邊或隔風罩限制為單層牆。這在某些情況下有助於節省線材,但可能導致隔風罩或裙邊翹曲或開裂。"
+msgstr "首層之後,將 Skirt/防風罩的圈數限制為單圈牆。這有時有助於節省線材,但可能導致防風罩/Skirt 翹曲或開裂。"
msgid "Draft shield"
msgstr "防風罩"
+# AI Translated
msgid ""
"A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
"\n"
-"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
-"Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+"Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used."
msgstr ""
-"防風罩可有效保護 ABS 或 ASA 列印物免受氣流影響,避免翹曲或脫離列印床。通常僅在開放式框架的列印裝置(即無外殼)中需要使用。\n"
+"防風罩可有效保護 ABS 或 ASA 列印物免受氣流影響,避免翹曲或脫離列印板。通常僅在開放式框架的列印裝置(即無外殼)中需要使用。\n"
"\n"
-"啟用後,Skirt 的高度將與列印物的最高點相同。若未啟用,則使用『Skirt 高度』的設定值。\n"
-"注意:啟用擋風護盾時,Skirt 會按照設定的 Skirt 距離列印於物體周圍。如果同時啟用了耳狀 Brim,Skirt 可能會與其重疊。為避免此問題,請增加 Skirt 距離的設定值。\n"
+"啟用後,Skirt 的高度將與列印物的最高點相同。若未啟用,則使用「Skirt 高度」的設定值。"
msgid "Enabled"
msgstr "啟用"
@@ -17531,8 +20083,9 @@ msgstr "啟用"
msgid "Skirt type"
msgstr "Skirt 類型"
+# AI Translated
msgid "Combined - single skirt for all objects, Per object - individual object skirt."
-msgstr "合併 - 所有物件共用一個 Skirt;逐件 - 每個物件使用獨立的 Skirt」"
+msgstr "合併:所有物件共用一個 Skirt;逐件:每個物件各自使用獨立的 Skirt。"
msgid "Per object"
msgstr "逐件"
@@ -17540,33 +20093,42 @@ msgstr "逐件"
msgid "Skirt loops"
msgstr "Skirt 圈數"
+# AI Translated
msgid "This is the number of loops for the skirt. 0 means the skirt is disabled."
-msgstr "Skirt 的圈數。0 表示關閉 Skirt"
+msgstr "Skirt 的圈數。0 表示停用 Skirt。"
msgid "Skirt speed"
msgstr "Skirt 速度"
+# AI Translated
msgid "Speed of skirt, in mm/s. Zero means use default layer extrusion speed."
-msgstr "Skirt 速度,單位為 mm/秒。 0 表示使用預設層擠出速度。"
+msgstr "Skirt 速度,單位為 mm/s。0 表示使用預設的層擠出速度。"
msgid "Skirt minimum extrusion length"
msgstr "Skirt 最小擠出長度"
+# AI Translated
msgid ""
"Minimum filament extrusion length in mm when printing the skirt. Zero means this feature is disabled.\n"
"\n"
"Using a non-zero value is useful if the printer is set up to print without a prime line.\n"
"Final number of loops is not taking into account while arranging or validating objects distance. Increase loop number in such case."
-msgstr "列印 Skirt 時的最小擠出線材長度(單位:毫米)。設為 0 表示停用此功能。若列印裝置設定為不使用沖洗線材,建議設定為非零值。注意,排列或驗證物件距離時,最終迴圈數不會被計算進去。如需更多迴圈,請手動增加迴圈數設定。"
+msgstr ""
+"列印 Skirt 時線材的最小擠出長度(單位:mm)。設為 0 表示停用此功能。\n"
+"\n"
+"若列印裝置設定為不列印起始擠出線,使用非零值會很有用。\n"
+"擺放物件或驗證物件距離時,不會考慮最終的圈數。遇到這種情況,請增加圈數。"
+# AI Translated
msgid "The printing speed in exported G-code will be slowed down when the estimated layer time is shorter than this value in order to get better cooling for these layers."
-msgstr "當預估的層列印時間低於該設定值時,匯出的 G-code 中的列印速度會自動減慢,以提升該層的冷卻效果"
+msgstr "當預估的層列印時間低於此設定值時,匯出的 G-code 中的列印速度會自動減慢,以提升該層的冷卻效果。"
msgid "Minimum sparse infill threshold"
msgstr "稀疏填充最小臨界值"
+# AI Translated
msgid "Sparse infill areas which are smaller than this threshold value are replaced by internal solid infill."
-msgstr "小於設定門檻值的稀疏填充區域將替換為內部實心填充"
+msgstr "小於此臨界值的稀疏填充區域會以內部實心填充取代。"
msgid ""
"Filament to print internal solid infill.\n"
@@ -17589,44 +20151,54 @@ msgstr ""
"用於列印底面的線材。\n"
"「預設」會使用目前作用中的物件/零件線材。"
+# AI Translated
msgid "Line width of internal solid infill. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "內部實心填充的列印線寬。若以百分比表示,將根據噴嘴直徑進行計算。"
+msgstr "內部實心填充的線寬。如果以 % 表示,將以噴嘴直徑為基準計算。"
+# AI Translated
msgid "This is the speed for internal solid infill, not including the top or bottom surface."
-msgstr "內部實心填充的列印速度,不適用於頂面和底面"
+msgstr "內部實心填充的速度,不包括頂面和底面。"
+# AI Translated
msgid "This enables spiraling, which smooths out the Z moves of the outer contour and turns a solid model into a single walled print with solid bottom layers. The final generated model has no seam."
-msgstr "平滑螺旋功能可平滑外輪廓的 Z 軸運動,並將實心模型轉換為具有實心底層的單壁列印。產生的最終模型不會有接縫"
+msgstr "啟用螺旋化,平滑外輪廓的 Z 軸移動,並將實心模型轉為具有實心底層的單牆列印。最終產生的模型沒有接縫。"
msgid "Smooth Spiral"
msgstr "平滑螺旋"
+# AI Translated
msgid "Smooth Spiral smooths out X and Y moves as well, resulting in no visible seam at all, even in the XY directions on walls that are not vertical."
-msgstr "平滑螺旋功能同時平滑 X 和 Y 軸的移動,確保即使在非垂直牆面上,X 和 Y 方向也不會出現可見的接縫"
+msgstr "「平滑螺旋」也會平滑 X 和 Y 軸的移動,因此完全不會出現可見接縫,即使在非垂直牆面的 XY 方向上也是如此。"
msgid "Max XY Smoothing"
msgstr "XY 軸最大平滑度"
+# AI Translated
#, no-c-format, no-boost-format
msgid "Maximum distance to move points in XY to try to achieve a smooth spiral. If expressed as a %, it will be computed over nozzle diameter."
-msgstr "在 XY 平面中為實現平滑螺旋所允許移動點的最大距離。若以百分比表示,將根據噴嘴直徑計算"
+msgstr "在 XY 平面上移動點以嘗試達成平滑螺旋的最大距離。如果以 % 表示,將以噴嘴直徑為基準計算。"
+# AI Translated
msgid "Spiral starting flow ratio"
-msgstr "螺旋起始擠出比率"
+msgstr "螺旋起始流量比例"
+# AI Translated
#, no-c-format, no-boost-format
msgid "Sets the starting flow ratio while transitioning from the last bottom layer to the spiral. Normally the spiral transition scales the flow ratio from 0% to 100% during the first loop which can in some cases lead to under extrusion at the start of the spiral."
-msgstr "設定從最後一層底部過渡到螺旋時的起始流量比率。通常,螺旋過渡會在第一圈內將流量比率從 0% 逐步增加到 100%,但在某些情況下,這可能會導致螺旋開始時發生擠出不足的問題。"
+msgstr "設定從最後一層底層過渡到螺旋時的起始流量比例。通常,螺旋過渡會在第一圈內將流量比例從 0% 逐步增加到 100%,在某些情況下可能導致螺旋開始時擠出不足。"
+# AI Translated
msgid "Spiral finishing flow ratio"
-msgstr "螺旋收尾擠出比率"
+msgstr "螺旋收尾流量比例"
+# AI Translated
#, no-c-format, no-boost-format
msgid "Sets the finishing flow ratio while ending the spiral. Normally the spiral transition scales the flow ratio from 100% to 0% during the last loop which can in some cases lead to under extrusion at the end of the spiral."
-msgstr "設定螺旋結束時的最終流量比率。通常,螺旋過渡會在最後一圈內將流量比率從 100% 逐步減少到 0%,但在某些情況下,這可能會導致螺旋結束時發生擠出不足的問題。"
+msgstr "設定螺旋結束時的收尾流量比例。通常,螺旋過渡會在最後一圈內將流量比例從 100% 逐步減少到 0%,在某些情況下可能導致螺旋結束時擠出不足。"
+# AI Translated
msgid "If smooth or traditional mode is selected, a timelapse video will be generated for each print. After each layer is printed, a snapshot is taken with the chamber camera. All of these snapshots are composed into a timelapse video when printing completes. If smooth mode is selected, the toolhead will move to the excess chute after each layer is printed and then take a snapshot. Since the melt filament may leak from the nozzle during the process of taking a snapshot, a prime tower is required for smooth mode to wipe the nozzle."
-msgstr "選擇平滑模式或傳統模式時,列印過程將產生縮時影片。每列印一層,相機會拍攝一張照片。列印完成後,這些照片會被合成為縮時影片。如果選擇了平滑模式,擠出機會在每層列印完成後移動到廢料槽拍攝一張照片。由於在拍攝過程中熔融的線材可能會從噴嘴洩漏,平滑模式需要使用換料塔來清潔噴嘴。"
+msgstr "選擇平滑或傳統模式時,每次列印都會產生縮時影片。每列印完一層,攝影機就會拍攝一張快照。列印完成後,這些快照會合成為縮時影片。若選擇平滑模式,工具頭會在每層列印完成後移動到廢料槽再拍攝快照。由於拍攝快照時熔融的線材可能從噴嘴漏出,平滑模式需要換料塔來擦拭噴嘴。"
msgid "Traditional"
msgstr "傳統模式"
@@ -17640,23 +20212,27 @@ msgstr "最遠點縮時攝影"
# AI Translated
msgid "When enabled, the timelapse snapshot is taken at the farthest point from camera instead of traveling to the wipe tower or excess chute. Only effective in traditional timelapse mode on non-I3 printers."
-msgstr "啟用後,縮時攝影快照會在距離攝影機最遠的點拍攝,而不是移動到換料塔或廢料槽。僅在非 I3 印表機的傳統縮時攝影模式下有效。"
+msgstr "啟用後,縮時攝影快照會在距離攝影機最遠的點拍攝,而不是移動到換料塔或廢料槽。僅在非 I3 列印裝置的傳統縮時攝影模式下有效。"
+# AI Translated
msgid "Temperature variation"
-msgstr "軟化溫度"
+msgstr "溫度變化"
+# AI Translated
#. TRN PrintSettings : "Ooze prevention" > "Temperature variation"
msgid "Temperature difference to be applied when an extruder is not active. The value is not used when 'idle_temperature' in filament settings is set to non-zero value."
-msgstr "設定擠出機閒置時的溫差。若線材設定中的『idle_temperature』設為非零值,該參數將不生效。"
+msgstr "擠出機閒置時套用的溫差。若線材設定中的 'idle_temperature' 設為非零值,則不使用此值。"
+# AI Translated
msgid "∆℃"
-msgstr "℃"
+msgstr "∆℃"
msgid "Preheat time"
msgstr "預熱時間"
+# AI Translated
msgid "To reduce the waiting time after tool change, Orca can preheat the next tool while the current tool is still in use. This setting specifies the time in seconds to preheat the next tool. Orca will insert a M104 command to preheat the tool in advance."
-msgstr "為了縮短工具更換後的等待時間,Orca 可在目前工具使用期間提前預熱下一個工具。此設定用於指定預熱下一個工具的時間(單位:秒)。Orca 將自動插入 M104 指令以提前進行工具預熱。"
+msgstr "為了縮短換工具後的等待時間,Orca 可在目前工具仍在使用時預熱下一個工具。此設定指定提前預熱下一個工具的時間(單位:秒)。Orca 會插入 M104 指令提前預熱工具。"
msgid "Preheat steps"
msgstr "預熱階段"
@@ -17671,8 +20247,9 @@ msgstr "寫在輸出檔案最開頭、位於所有其他內容之前的 G-code
msgid "Start G-code"
msgstr "起始 G-code"
+# AI Translated
msgid "G-code added when starting a print."
-msgstr "整個列印開始前的起始 G-code"
+msgstr "開始列印時加入的 G-code。"
msgid "G-code added when the printer starts using this filament"
msgstr "開始使用這個線材列印的起始 G-code"
@@ -17680,20 +20257,148 @@ msgstr "開始使用這個線材列印的起始 G-code"
msgid "Single Extruder Multi Material"
msgstr "單擠出機多線材"
+# AI Translated
msgid "Use single nozzle to print multi filament."
-msgstr "使用單噴嘴列印多線材"
+msgstr "使用單一噴嘴列印多種線材。"
+
+# AI Translated
+msgid "IDEX/IQEX Printer"
+msgstr "IDEX/IQEX 列印裝置"
+
+# AI Translated
+msgid "Enable parallel printing for printers with multiple independent carriages (IDEX, IQEX, and similar)."
+msgstr "為具有多個獨立滑車的列印裝置(IDEX、IQEX 及類似機型)啟用並行列印。"
+
+# AI Translated
+msgid "Firmware-managed zones"
+msgstr "韌體管理區域"
+
+# AI Translated
+msgid "When enabled, the slicer emits G-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+msgstr "啟用後,切片軟體輸出的 G-code 會將主區域的內容以列印板原點 (0,0) 為中心放置,並由列印裝置韌體負責將複製件/鏡像件放到各個實體區域位置。僅在韌體會於複製/鏡像模式下自行套用區域偏移的列印裝置上啟用(例如 RepRapFirmware 的 IDEX 複製模式)。在主模式下無效。"
+
+# AI Translated
+msgid "Gantry Count"
+msgstr "龍門數量"
+
+# AI Translated
+msgid "Number of independent Y-axis gantries. 1 for IDEX/single-rail IQEX. 2 for dual-gantry systems (divides bed into rows)."
+msgstr "獨立 Y 軸龍門的數量。IDEX/單導軌 IQEX 為 1,雙龍門系統為 2(將列印板分成多排)。"
+
+# AI Translated
+msgid "Tools per Gantry"
+msgstr "每個龍門的工具頭數"
+
+# AI Translated
+msgid "Number of independent toolheads per gantry along X. 2 for IDEX-style."
+msgstr "每個龍門上沿 X 方向獨立運動的工具頭數量。IDEX 類型為 2。"
+
+# AI Translated
+msgid "Tool 0 Position"
+msgstr "工具頭 0 位置"
+
+# AI Translated
+msgid "Physical position on the bed where tool T0 (index 0) is located. Determines how tool indices map to bed zones. For single-gantry setups (IDEX) only left/right matters; for dual-gantry setups (IQEX) all four corners are selectable (front = lower Y / near the operator, rear = higher Y / back of machine)."
+msgstr "工具頭 T0(索引 0)在列印板上的實體位置,決定工具頭索引與列印板區域的對應關係。單龍門配置(IDEX)只區分左右;雙龍門配置(IQEX)可選擇全部四個角落(前 = Y 值較小/靠近操作者,後 = Y 值較大/機器後方)。"
+
+# AI Translated
+msgid "Nozzle Clearance X"
+msgstr "噴嘴避讓距離 X"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in X. Used to calculate the width of the collision exclusion strip at each X boundary."
+msgstr "X 方向上噴嘴到滑車碰撞側邊緣的距離(mm),用於計算每條 X 邊界處防碰撞排除帶的寬度。"
+
+# AI Translated
+msgid "Nozzle Clearance Y"
+msgstr "噴嘴避讓距離 Y"
+
+# AI Translated
+msgid "Distance (mm) from the nozzle to the collision-side carriage edge in Y. Used to calculate the width of the collision exclusion strip at each Y boundary."
+msgstr "Y 方向上噴嘴到滑車碰撞側邊緣的距離(mm),用於計算每條 Y 邊界處防碰撞排除帶的寬度。"
+
+# AI Translated
+msgid "Safety Margin"
+msgstr "安全邊距"
+
+# AI Translated
+msgid "Non-blocking advisory clearance strip (mm) drawn inside the primary zone at each carriage boundary. Parts placed within this strip will still slice; it is a visual reminder to leave extra clearance near the zone edge."
+msgstr "在主區域內每條滑車邊界處繪製的提示性避讓帶(mm),不會阻止切片。放在此帶內的零件仍可切片;它只是提醒您在區域邊緣附近多留一些間隙的視覺提示。"
+
+# AI Translated
+msgid "Visualization Theme"
+msgstr "視覺化主題"
+
+# AI Translated
+msgid "Color theme for IDEX/IQEX bed zone visualization. Choose a colorblind-friendly theme if needed."
+msgstr "IDEX/IQEX 列印板區域視覺化的配色主題。如有需要,可選擇色盲友善主題。"
+
+# AI Translated
+msgid "Deuteranopia / Protanopia (red-green)"
+msgstr "綠色盲 / 紅色盲(紅綠色盲)"
+
+# AI Translated
+msgid "Tritanopia (blue-yellow)"
+msgstr "藍色盲(藍黃色盲)"
+
+# AI Translated
+msgid "High Contrast"
+msgstr "高對比"
+
+# AI Translated
+msgid "IDEX/IQEX Print Mode"
+msgstr "IDEX/IQEX 列印模式"
+
+# AI Translated
+msgid "Name of the active IDEX/IQEX parallel print mode, or \"primary\" for single-carriage printing. Requires IDEX/IQEX Printer enabled in the Printer preset (Printer → Multimaterial → IDEX/IQEX Configuration)."
+msgstr "目前使用的 IDEX/IQEX 並行列印模式名稱,單滑車列印時為 \"primary\"。需要在列印裝置預設中啟用「IDEX/IQEX 列印裝置」(列印裝置 → 多線材 → IDEX/IQEX 設定)。"
+
+# AI Translated
+msgid "IDEX/IQEX head filament map"
+msgstr "IDEX/IQEX 工具頭線材映射"
+
+# AI Translated
+msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means each head uses the first filament that the printer's physical extruder map routes to it."
+msgstr "依列印板覆寫實體工具頭到線材槽位的映射(從 1 開始編號)。留空表示每個工具頭使用列印裝置的實體擠出機映射所分配給它的第一個線材。"
+
+# AI Translated
+msgid "IDEX/IQEX Mode Names"
+msgstr "IDEX/IQEX 模式名稱"
+
+# AI Translated
+msgid "Display names for each user-defined IDEX/IQEX parallel print mode."
+msgstr "每個使用者定義的 IDEX/IQEX 並行列印模式的顯示名稱。"
+
+# AI Translated
+msgid "IDEX/IQEX Mode Active Tools"
+msgstr "IDEX/IQEX 模式作用中工具頭"
+
+# AI Translated
+msgid "Tool role assignments for each mode. Format: \"idx:P,idx:C,idx:M\" where P=Primary, C=Copy, M=Mirror (e.g. \"0:P,1:C,2:M,3:M\"). Managed by the IDEX/IQEX Modes editor in the Printer preset."
+msgstr "每個模式的工具頭角色指派。格式:\"idx:P,idx:C,idx:M\",其中 P=主(Primary)、C=複製(Copy)、M=鏡像(Mirror)(例如 \"0:P,1:C,2:M,3:M\")。由列印裝置預設中的 IDEX/IQEX 模式編輯器管理。"
+
+# AI Translated
+msgid "IDEX/IQEX Mode G-codes"
+msgstr "IDEX/IQEX 模式 G-code"
+
+# AI Translated
+msgid "G-code or macro call to inject at print start for each mode."
+msgstr "每個模式在列印開始時插入的 G-code 或巨集呼叫。"
msgid "Manual Filament Change"
msgstr "手動更換線材"
+# AI Translated
msgid "Enable this option to omit the custom Change filament G-code only at the beginning of the print. The tool change command (e.g., T0) will be skipped throughout the entire print. This is useful for manual multi-material printing, where we use M600/PAUSE to trigger the manual filament change action."
-msgstr "啟用此選項後,自訂的換線 G-code 將僅在列印開始時被省略,整個列印過程中會跳過工具更換指令(例如:T0)。此功能適用於手動多材料列印,允許使用 M600/PAUSE 指令來觸發手動換線操作。"
+msgstr "啟用此選項後,僅在列印開始時省略自訂的「線材更換 G-code」,而換工具指令(例如 T0)會在整個列印過程中略過。這適用於手動多材料列印,此時使用 M600/PAUSE 觸發手動換料。"
+# AI Translated
msgid "Wipe tower type"
-msgstr "擦拭塔類型"
+msgstr "換料塔類型"
+# AI Translated
msgid "Choose the wipe tower implementation for multi-material prints. Type 1 is recommended for Bambu and Qidi printers with a filament cutter. Type 2 offers better compatibility with multi-tool and MMU printers and provide overall better compatibility."
-msgstr "選擇多材料列印的擦拭塔實作方式。類型 1 推薦用於帶有耗材切刀的 Bambu 和 Qidi 印表機。類型 2 提供與多工具頭和 MMU 印表機更好的相容性,並提供更好的整體相容性。"
+msgstr "選擇多材料列印的換料塔實作方式。類型 1 建議用於配有線材切刀的 Bambu 和 Qidi 列印裝置。類型 2 與多工具頭及 MMU 列印裝置的相容性較好,整體相容性也更佳。"
msgid "Type 1"
msgstr "類型 1"
@@ -17701,20 +20406,24 @@ msgstr "類型 1"
msgid "Type 2"
msgstr "類型 2"
+# AI Translated
msgid "Purge in prime tower"
-msgstr "沖刷進換料塔"
+msgstr "在換料塔中清理"
+# AI Translated
msgid "Purge remaining filament into prime tower."
-msgstr "沖刷剩餘的線材進入換料塔"
+msgstr "將剩餘的線材清理至換料塔。"
msgid "Enable filament ramming"
msgstr "啟用線材尖端成型"
+# AI Translated
msgid "Tool change on wipe tower"
-msgstr "在換料塔上換刀"
+msgstr "在換料塔上換工具"
+# AI Translated
msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead."
-msgstr "強制工具頭在發出換刀指令 (Tx) 之前先移動到換料塔。僅適用於使用 Type 2 換料塔的多擠出機(多工具頭)列印裝置。預設情況下,Orca 會在多工具頭機器上略過此空駛,因為韌體會處理工具頭交換,這可能導致 Tx 指令在已列印零件上方發出。若您希望換刀一律改在換料塔上方發出,請啟用此選項。"
+msgstr "強制工具頭在發出換工具指令(Tx)之前先空駛到換料塔。僅適用於使用類型 2 換料塔的多擠出機(多工具頭)列印裝置。預設情況下,Orca 會在多工具頭列印裝置上略過此空駛,因為韌體會處理工具頭交換,這可能導致 Tx 指令在已列印的零件上方發出。若您希望換工具一律改在換料塔上方發出,請啟用此選項。"
# AI Translated
msgid "Wait for temperature on wipe tower"
@@ -17722,7 +20431,7 @@ msgstr "在換料塔上等待溫度"
# AI Translated
msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command."
-msgstr "取用新工具時不等待其達到列印溫度,先移動到換料塔,並在清理前於換料塔上等待溫度。升溫過程中滲出的線材會落在換料塔上而非模型上,且移動時間與加熱過程重疊。僅適用於使用第 2 型換料塔的多擠出機(多工具頭)列印裝置。韌體或換工具巨集本身不得等待溫度。停用時,等待溫度的指令會在換工具命令之後立即發出。"
+msgstr "取用新工具時不等待其達到列印溫度,先空駛到換料塔,並在清理前於換料塔上等待溫度。升溫過程中漏出的線材會落在換料塔上而非模型上,且空駛時間與加熱過程重疊。僅適用於使用類型 2 換料塔的多擠出機(多工具頭)列印裝置。韌體或換工具巨集本身不得等待溫度。停用時,等待溫度的指令會在換工具指令之後立即發出。"
msgid "No sparse layers (beta)"
msgstr "取消稀疏層(Beta)"
@@ -17747,7 +20456,7 @@ msgstr ""
"\n"
"只會合併完整的層,且絕不超過列印換料塔之噴嘴的最大層高(若該值保留為 0,則為噴嘴直徑的四分之三)。因此必須有兩層以上能容納在此上限內才會有任何變化:最大值為 0.3 mm 時,使用 0.2 mm 層高不會合併任何層,而使用 0.1 mm 時則會三層合併為一層。\n"
"\n"
-"與「取消稀疏層」不同,換料塔會持續跟隨模型高度,因此工具頭永遠不需要向下移動到塔上。當使用「取消稀疏層」、平滑縮時攝影或堵塞偵測時,此選項無效,因為這些功能需要每一層都有換料塔。"
+"與「取消稀疏層」不同,換料塔會持續跟隨模型高度,因此工具頭永遠不需要向下移動到塔上。當使用「取消稀疏層」、平滑縮時攝影或結塊偵測時,此選項無效,因為這些功能需要每一層都有換料塔。"
msgid "Prime all printing extruders"
msgstr "所有擠出機畫線"
@@ -17783,7 +20492,7 @@ msgid ""
"Each layer prints its filaments following this sequence; filaments not listed are printed last, in ascending order.\n"
"Leave empty to cycle through the filaments in ascending order."
msgstr ""
-"循環換工具排序所使用的自訂線材序列,以逗號分隔的線材編號表示(例如「3,2,1,4」)。\n"
+"循環換工具排序所使用的自訂線材序列,以逗號分隔的線材編號表示(例如 \"3,2,1,4\")。\n"
"每一層依此序列列印其線材;未列出的線材最後列印,並依遞增順序排列。\n"
"留空則依遞增順序循環使用各線材。"
@@ -17799,7 +20508,7 @@ msgid ""
msgstr ""
"將循環換工具順序同樣套用於首層。\n"
"預設為關閉,因為首層改為依最佳列印板黏著排序:列印首層細小脆弱特徵的線材會最後列印,如此後續的換工具與空駛就不易將這些附著薄弱的部分蹭掉。若已設定自訂首層線材序列,此首層順序也會遵循它。循環順序的好處(額外的換工具讓每層有更多冷卻時間)並不適用於首層,因為首層為了黏著會以慢速高溫列印。\n"
-"僅當你需要包含首層在內的每一層都使用完全相同的換工具順序時才啟用此項,代價是失去上述黏著最佳化。"
+"僅當您需要包含首層在內的每一層都使用完全相同的換工具順序時才啟用此項,代價是失去上述黏著最佳化。"
msgid "Slice gap closing radius"
msgstr "切片間隙閉合半徑"
@@ -17810,8 +20519,9 @@ msgstr "在三角網格切片過程中,寬度小於 2 倍間隙閉合半徑的
msgid "Slicing Mode"
msgstr "切片模式"
+# AI Translated
msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model."
-msgstr "針對 3DLabPrint 飛機模型,請選擇『奇偶』模式。若需閉合模型中的所有孔洞,請啟用『閉合孔洞』選項。"
+msgstr "3DLabPrint 飛機模型請使用「奇偶」。若要閉合模型中的所有孔洞,請使用「閉合孔洞」。"
msgid "Regular"
msgstr "常規"
@@ -17825,8 +20535,9 @@ msgstr "閉合孔洞"
msgid "Z offset"
msgstr "Z 偏移"
+# AI Translated
msgid "This value will be added (or subtracted) from all the Z coordinates in the output G-code. It is used to compensate for bad Z endstop position: for example, if your endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to -0.3 (or fix your endstop)."
-msgstr "此值將被加至(或減去)輸出 G-code 中的所有 Z 坐標,用於補償不準確的 Z 軸限位開關位置。例如,如果限位開關的歸零導致噴嘴實際距離列印床 0.3 毫米,可將此值設為 -0.3(或者調整限位開關位置)。"
+msgstr "此值將加至(或減去)輸出 G-code 中的所有 Z 座標,用於補償不準確的 Z 軸限位開關位置。例如,如果限位開關的歸零導致噴嘴實際距離列印床 0.3 毫米,可將此值設為 -0.3(或者調整限位開關位置)。"
msgid "Enable support"
msgstr "啟用支撐"
@@ -17834,45 +20545,56 @@ msgstr "啟用支撐"
msgid "This enables support generation."
msgstr "啟用支撐產生。"
+# AI Translated
msgid "Normal (auto) and Tree (auto) are used to generate support automatically. If Normal (manual) or Tree (manual) is selected, only support enforcers are generated."
-msgstr "選擇「普通 (自動)」或「樹狀 (自動)」時,系統將自動產生支撐結構。若選擇「普通 (手動)」或「樹狀 (手動)」,則僅會產生手動設定的支撐區域"
+msgstr "選擇「普通(自動)」或「樹狀(自動)」時,會自動產生支撐。若選擇「普通(手動)」或「樹狀(手動)」,則僅產生支撐產生器所指定的支撐。"
+# AI Translated
msgid "Normal (auto)"
-msgstr "普通 (自動)"
+msgstr "普通(自動)"
+# AI Translated
msgid "Tree (auto)"
-msgstr "樹狀 (自動)"
+msgstr "樹狀(自動)"
+# AI Translated
msgid "Normal (manual)"
-msgstr "普通 (手動)"
+msgstr "普通(手動)"
+# AI Translated
msgid "Tree (manual)"
-msgstr "樹狀 (手動)"
+msgstr "樹狀(手動)"
+# AI Translated
msgid "Support/object XY distance"
-msgstr "支撐/模型 XY 間距"
+msgstr "支撐/物件 XY 間距"
+# AI Translated
msgid "This controls the XY separation between an object and its support."
-msgstr "模型和支撐之間 XY 的間距"
+msgstr "物件與支撐之間的 XY 間距。"
+# AI Translated
msgid "Support/object first layer gap"
-msgstr "支撐/物件第一層間隙"
+msgstr "支撐/物件首層間隙"
+# AI Translated
msgid "XY separation between an object and its support at the first layer."
-msgstr "物件與支撐在第一層的 XY 方向間距。"
+msgstr "物件與支撐在首層的 XY 方向間距。"
# AI Translated
msgid "Pattern angle"
msgstr "圖案角度"
+# AI Translated
msgid "Use this setting to rotate the support pattern on the horizontal plane."
-msgstr "設定支撐圖形在水平面的旋轉角度。"
+msgstr "設定支撐圖案在水平面上的旋轉角度。"
msgid "On build plate only"
msgstr "僅在列印板產生"
+# AI Translated
msgid "This setting only generates supports that begin on the build plate."
-msgstr "不在模型表面上產生支撐,只在列印板上產生"
+msgstr "僅產生從列印板開始的支撐。"
msgid "Support critical regions only"
msgstr "僅支撐關鍵區域"
@@ -17883,48 +20605,58 @@ msgstr "僅針對關鍵區域(如尖銳尾部、懸臂等)產生支撐結構
msgid "Ignore small overhangs"
msgstr "忽略微小懸空"
+# AI Translated
msgid "Ignore small overhangs that possibly don't require support."
-msgstr "將幾乎不需要支撐的微小懸空忽略掉。"
+msgstr "忽略可能不需要支撐的微小懸空。"
msgid "Top Z distance"
msgstr "頂部 Z 間距"
+# AI Translated
msgid "Z gap between the support's top and object."
-msgstr "支撐頂部與模型之間的Z間隙。"
+msgstr "支撐頂部與物件之間的 Z 間隙。"
msgid "Bottom Z distance"
msgstr "底部 Z 間距"
+# AI Translated
msgid "Z gap between the object and the support bottom. If Support Top Z Distance is 0 and the bottom has interface layers, this value is ignored and the support is printed in direct contact with the object (no gap)."
-msgstr "模型與支撐底部之間的Z間隙。若支撐頂部Z距離為0且底部有介面層,則忽略此值,支撐與模型直接接觸列印(無間隙)。"
+msgstr "物件與支撐底部之間的 Z 間隙。若支撐的「頂部 Z 間距」為 0 且底部有支撐面層,則忽略此值,支撐會直接接觸物件列印(無間隙)。"
msgid "Support/raft base"
msgstr "支撐/筏層主體"
+# AI Translated
msgid ""
"Filament to print support base and raft.\n"
"\"Default\" means no specific filament for support and current filament is used."
msgstr ""
-"用於列印支撐基座與筏層的線材。\n"
+"用於列印支撐主體與筏層的線材。\n"
"「預設」表示不為支撐指定特定線材,並使用目前的線材。"
+# AI Translated
msgid "Avoid interface filament for base"
-msgstr "避免介面線材用於底座"
+msgstr "主體避免使用支撐面線材"
+# AI Translated
msgid "Avoid using support interface filament to print support base if possible."
-msgstr "如果可能,避免使用支撐介面線材來列印支撐底座。"
+msgstr "盡可能避免使用支撐面線材列印支撐主體。"
+# AI Translated
msgid "Line width of support. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "支撐的線寬。如果以 % 表示,它將以噴嘴直徑為基準來計算。"
+msgstr "支撐的線寬。如果以 % 表示,將以噴嘴直徑為基準計算。"
+# AI Translated
msgid "Loop pattern interface"
-msgstr "接觸面採用圈形走線"
+msgstr "支撐面採用圈形圖案"
+# AI Translated
msgid "This covers the top contact layer of the supports with loops. It is disabled by default."
-msgstr "使用圈形走線覆蓋頂部接觸面。預設關閉。"
+msgstr "使用圈形走線覆蓋支撐的頂部支撐面。預設關閉。"
+# AI Translated
msgid "Support/raft interface"
-msgstr "支撐/筏層介面"
+msgstr "支撐/筏層支撐面"
msgid ""
"Filament to print support interface.\n"
@@ -17933,44 +20665,53 @@ msgstr ""
"用於列印支撐面的線材。\n"
"「預設」表示不為支撐面指定特定線材,並使用目前的線材。"
+# AI Translated
msgid "Top interface layers"
-msgstr "頂部接觸面層數"
+msgstr "頂部支撐面層數"
# AI Translated
msgid "This is the number of top interface layers."
-msgstr "頂部介面層的層數"
+msgstr "頂部支撐面的層數。"
+# AI Translated
msgid "Bottom interface layers"
-msgstr "底部接觸面層數"
+msgstr "底部支撐面層數"
+# AI Translated
msgid "Number of bottom interface layers."
-msgstr "底層介面層數"
+msgstr "底部支撐面的層數。"
msgid "Same as top"
msgstr "與頂部相同"
+# AI Translated
msgid "Top interface spacing"
-msgstr "頂部接觸面間距"
+msgstr "頂部支撐面間距"
+# AI Translated
msgid ""
"Spacing of interface lines. Zero means solid interface.\n"
"Force using solid interface when support ironing is enabled."
msgstr ""
-"頂部接觸面走線的線距。0 表示實心接觸面。\n"
-"若啟用了支撐熨燙,則此選項將強制使用實心接觸面設定。"
+"支撐面走線的線距。0 表示實心支撐面。\n"
+"啟用「支撐面熨燙」時,會強制使用實心支撐面。"
+# AI Translated
msgid "Bottom interface spacing"
-msgstr "底部接觸面間距"
+msgstr "底部支撐面間距"
+# AI Translated
msgid "This is the spacing of bottom interface lines. 0 means solid interface."
-msgstr "底部接觸面走線的線距。0 表示實心接觸面"
+msgstr "底部支撐面走線的線距。0 表示實心支撐面。"
+# AI Translated
msgid "This is the speed for support interfaces."
-msgstr "支撐面速度"
+msgstr "支撐面的速度。"
msgid "Base pattern"
msgstr "支撐主體圖案"
+# AI Translated
msgid ""
"Line pattern of support.\n"
"\n"
@@ -17978,11 +20719,11 @@ msgid ""
"\n"
"NOTE: For Organic supports, the two walls are supported only with the Hollow/Default base pattern. The Lightning base pattern is supported only by Tree Slim/Strong/Hybrid supports. For the other support types, the Rectilinear will be used instead of Lightning."
msgstr ""
-"支撐的線條圖案。\n"
+"支撐的走線圖案。\n"
"\n"
-"樹狀支撐的預設選項是 Hollow,表示不需要底座圖案。對於其他支撐類型,預設選項是直線圖案。\n"
+"樹狀支撐的預設選項為「空心」,即沒有主體圖案。其他支撐類型的預設選項為「直線」圖案。\n"
"\n"
-"注意:對於有機樹支撐,僅 Hollow/Default 底座圖案支援兩層牆壁。閃電底座圖案僅支援樹狀苗條/粗壯/混合支撐。對於其他支撐類型,將改用直線圖案。"
+"注意:有機樹支撐僅在「空心」/「預設」主體圖案下支援雙層牆。只有苗條樹/粗壯樹/混合樹支撐支援「閃電」主體圖案;其他支撐類型會改用「直線」取代「閃電」。"
msgid "Rectilinear grid"
msgstr "直線網格"
@@ -17993,8 +20734,9 @@ msgstr "空心"
msgid "Interface pattern"
msgstr "支撐面圖案"
+# AI Translated
msgid "This is the line pattern for support interfaces. The default pattern for non-soluble support interfaces is Rectilinear while the default pattern for soluble support interfaces is Concentric."
-msgstr "支撐接觸面的走線圖案。非可溶支撐接觸面的預設圖案為直線,可溶支撐接觸面的預設圖案為同心"
+msgstr "支撐面的走線圖案。非可溶支撐面的預設圖案為「直線」,可溶支撐面的預設圖案為「同心」。"
msgid "Rectilinear Interlaced"
msgstr "交錯直線"
@@ -18002,25 +20744,32 @@ msgstr "交錯直線"
msgid "Base pattern spacing"
msgstr "主體圖案線距"
+# AI Translated
msgid "This determines the spacing between support lines."
-msgstr "支撐線距"
+msgstr "支撐走線之間的間距。"
msgid "Normal support expansion"
msgstr "普通支撐延伸"
+# AI Translated
msgid "Expand (+) or shrink (-) the horizontal span of normal support."
-msgstr "在水平方向對普通支撐進行延伸(+)或收縮(-)"
+msgstr "在水平方向延伸(+)或收縮(-)普通支撐的範圍。"
+# AI Translated
msgid "This is the speed for support."
-msgstr "支撐列印速度"
+msgstr "支撐的列印速度。"
+# AI Translated
msgid ""
"Style and shape of the support. For normal support, projecting the supports into a regular grid will create more stable supports (default), while snug support towers will save material and reduce object scarring.\n"
"For tree support, slim and organic style will merge branches more aggressively and save a lot of material (default organic), while hybrid style will create similar structure to normal support under large flat overhangs."
-msgstr "支撐的樣式與形狀設定。普通支撐使用網格(預設設定)可提供更穩定的支撐,而緊貼型支撐可節省材料並減少對物件表面的損傷。樹狀支撐中,『有機樹』會更積極地融合分支,節省大量材料(預設為有機樹);而『混合樹』則會在較大的平坦懸空區域下生成類似於普通支撐的結構。"
+msgstr ""
+"支撐的樣式與形狀。普通支撐將支撐投影到規則網格上,可產生更穩定的支撐(預設);緊貼的支撐塔則能節省材料並減少物件表面的瑕疵。\n"
+"樹狀支撐中,「苗條樹」與「有機樹」樣式會更積極地合併分支並節省大量材料(預設為有機樹);「混合樹」樣式則會在大面積平坦懸空下產生與普通支撐類似的結構。"
+# AI Translated
msgid "Default (Grid/Organic)"
-msgstr "預設 (網格/有機)"
+msgstr "預設(網格/有機)"
msgid "Snug"
msgstr "緊貼"
@@ -18046,18 +20795,182 @@ msgstr "支撐層的層厚設定可獨立於物件層高度,允許自訂 Z 間
msgid "Threshold angle"
msgstr "臨界值角度"
+# AI Translated
msgid ""
"Support will be generated for overhangs whose slope angle is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support.\n"
"Note: If set to 0, normal supports use the Threshold overlap instead, while tree supports fall back to a default value of 30."
msgstr ""
-"將會為傾斜角度低於臨界值的懸垂產生支撐。數值越小,代表可以在不使用支撐的情況下列印更陡峭的懸垂結構。\n"
-"注意:若設為 0,一般支撐會改用門檻值疊加比例,而樹狀支撐則會回退到預設值 30。"
+"會為傾斜角度低於此臨界值的懸空產生支撐。數值越小,不需支撐即可列印的懸空就越陡。\n"
+"注意:若設為 0,普通支撐會改用「重疊臨界值」,樹狀支撐則會改用預設值 30。"
+# AI Translated
msgid "Threshold overlap"
-msgstr "門檻值疊加比例"
+msgstr "重疊臨界值"
+# AI Translated
msgid "If threshold angle is zero, support will be generated for overhangs whose overlap is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support."
-msgstr "當門檻值角度設為 0 時,系統將為重疊比例低於該門檻值的懸垂部分產生支撐。數值越小,代表可以在不使用支撐的情況下列印更陡峭的懸垂結構。"
+msgstr "若「臨界值角度」為 0,會為重疊比例低於此臨界值的懸空產生支撐。數值越小,不需支撐即可列印的懸空就越陡。"
+
+# AI Translated
+msgid "Build plate tilt X"
+msgstr "列印板傾斜 X"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the X axis. A positive value tilts the plate so the +X side is higher, shifting gravity toward -X and increasing overhangs on the +X side. A negative value tilts the -X side higher. Set to 0 for no X-axis tilt. In belt printer mode, this is automatically synced to the belt angle."
+msgstr "列印板沿 X 軸的傾斜角度。正值會使列印板的 +X 側抬高,使重力偏向 -X,並增加 +X 側的懸空。負值則使 -X 側抬高。設為 0 表示 X 軸不傾斜。在輸送帶列印裝置模式下,此值會自動與輸送帶角度同步。"
+
+# AI Translated
+msgid "Build plate tilt Y"
+msgstr "列印板傾斜 Y"
+
+# AI Translated
+msgid "Tilt angle of the build plate along the Y axis. A positive value tilts the plate so the +Y side is higher, shifting gravity toward -Y and increasing overhangs on the +Y side. A negative value tilts the -Y side higher. Set to 0 for no Y-axis tilt."
+msgstr "列印板沿 Y 軸的傾斜角度。正值會使列印板的 +Y 側抬高,使重力偏向 -Y,並增加 +Y 側的懸空。負值則使 -Y 側抬高。設為 0 表示 Y 軸不傾斜。"
+
+# AI Translated
+msgid "Enable belt printing"
+msgstr "啟用輸送帶列印"
+
+# AI Translated
+msgid "Enable belt printer mode. Belt printers use a conveyor belt as the build surface, tilted at an angle (typically 45 degrees). The slicer will rotate the slicing plane and transform G-code coordinates for the tilted build surface."
+msgstr "啟用輸送帶列印裝置模式。輸送帶列印裝置以傾斜某個角度(通常為 45 度)的輸送帶作為列印表面。切片軟體會旋轉切片平面,並針對傾斜的列印表面轉換 G-code 座標。"
+
+# AI Translated
+msgid "Infinite Y axis"
+msgstr "無限 Y 軸"
+
+# AI Translated
+msgid "Enable infinite Y axis for belt printers. When enabled, the Y axis build volume limit is effectively removed, allowing objects of any length to be printed along the belt direction."
+msgstr "為輸送帶列印裝置啟用無限 Y 軸。啟用後,Y 軸的列印空間限制實際上會被取消,可沿輸送帶方向列印任意長度的物件。"
+
+# AI Translated
+msgid "Belt tilt axis"
+msgstr "輸送帶傾斜軸"
+
+# AI Translated
+msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the G-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+msgstr "切片前網格旋轉所繞的軸。這就是輸送帶列印裝置的傾斜:一種等距(無變形)旋轉,同時用於列印板渲染與支撐的重力傾斜;G-code 反向轉換會先還原此旋轉,再進行機器座標系的剪切/縮放與重新映射。X 是典型的龍門傾斜軸(輸送帶沿 Y 方向移動)。"
+
+msgid "X"
+msgstr "X"
+
+msgid "Y"
+msgstr "Y"
+
+# AI Translated
+msgid "Z"
+msgstr "Z"
+
+# AI Translated
+msgid "Belt tilt angle"
+msgstr "輸送帶傾斜角度"
+
+# AI Translated
+msgid "Tilt angle of the belt surface, in degrees. Most belt printers use 45°. Positive values rotate counter-clockwise looking down the positive tilt axis; the magnitude is also the physical belt tilt used for bed rendering and support gravity."
+msgstr "輸送帶表面的傾斜角度,單位為度。大多數輸送帶列印裝置使用 45°。從傾斜軸正端朝原點看去,正值為逆時針旋轉;其絕對值也是用於列印板渲染與支撐重力的實際輸送帶傾角。"
+
+msgid "°"
+msgstr "°"
+
+# AI Translated
+msgid "Decouple machine-frame tilt"
+msgstr "分離機器座標系傾角"
+
+# AI Translated
+msgid "Expert override: set the machine-frame (G-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+msgstr "專家覆寫選項:獨立於切片前的旋轉角度,單獨設定機器座標系(G-code 剪切/縮放)的傾斜角度。停用時,機器座標系變換由輸送帶傾斜角度推導,兩個階段使用同一個角度。僅在機器實際的龍門傾角與切片旋轉角度不同時,才啟用此選項進行補償。"
+
+# AI Translated
+msgid "Machine-frame tilt angle"
+msgstr "機器座標系傾斜角度"
+
+# AI Translated
+msgid "Tilt angle (degrees) used to derive the machine-frame shear (cot) and scale (1/|sin|) applied to G-code. Only used when 'Decouple machine-frame tilt' is enabled; otherwise the belt tilt angle is used."
+msgstr "用於推導套用於 G-code 的機器座標系剪切(cot)與縮放(1/|sin|)的傾斜角度(度)。僅在啟用「分離機器座標系傾角」時使用;否則使用輸送帶傾斜角度。"
+
+# AI Translated
+msgid "+X"
+msgstr "+X"
+
+# AI Translated
+msgid "+Y"
+msgstr "+Y"
+
+# AI Translated
+msgid "+Z"
+msgstr "+Z"
+
+# AI Translated
+msgid "-X"
+msgstr "-X"
+
+# AI Translated
+msgid "-Y"
+msgstr "-Y"
+
+# AI Translated
+msgid "-Z"
+msgstr "-Z"
+
+# AI Translated
+msgid "Rev X"
+msgstr "反轉 X"
+
+# AI Translated
+msgid "Rev Y"
+msgstr "反轉 Y"
+
+# AI Translated
+msgid "Rev Z"
+msgstr "反轉 Z"
+
+# AI Translated
+msgid "G-code remap X"
+msgstr "G-code 重新映射 X"
+
+# AI Translated
+msgid "Which slicing axis maps to machine X in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "指定在 G-code 輸出中對應到機器 X 軸的切片座標軸。在切片之後、產生 G-code 時套用。"
+
+# AI Translated
+msgid "G-code remap Y"
+msgstr "G-code 重新映射 Y"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Y in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "指定在 G-code 輸出中對應到機器 Y 軸的切片座標軸。在切片之後、產生 G-code 時套用。"
+
+# AI Translated
+msgid "G-code remap Z"
+msgstr "G-code 重新映射 Z"
+
+# AI Translated
+msgid "Which slicing axis maps to machine Z in G-code output. Applied AFTER slicing, during G-code generation."
+msgstr "指定在 G-code 輸出中對應到機器 Z 軸的切片座標軸。在切片之後、產生 G-code 時套用。"
+
+# AI Translated
+msgid "Support Floor Z offset"
+msgstr "支撐底面 Z 偏移"
+
+# AI Translated
+msgid "Shifts the computed belt floor up or down (mm). Negative values lower the floor, allowing more supports to survive. Use this to diagnose belt floor formula issues."
+msgstr "將計算出的輸送帶底面向上或向下移動(mm)。負值會降低底面,讓更多支撐得以保留。可用於診斷輸送帶底面公式的問題。"
+
+# AI Translated
+msgid "Enable belt purge tower"
+msgstr "啟用輸送帶清理塔"
+
+# AI Translated
+msgid "Belt-printer replacement for the wipe/prime tower. When enabled on a belt printer, a purge prism is automatically generated next to the printed parts and filament-change purging is routed into it (the classic wipe tower cannot be used on belt printers because its G-code bypasses the belt transform). Only available on belt printers."
+msgstr "輸送帶列印裝置上換料塔的替代方案。在輸送帶列印裝置上啟用後,會在列印零件旁自動產生一個清理稜柱,線材更換時的清理會改在其中進行(傳統換料塔無法用於輸送帶列印裝置,因為其 G-code 會略過輸送帶座標轉換)。僅適用於輸送帶列印裝置。"
+
+# AI Translated
+msgid "Belt purge tower width"
+msgstr "輸送帶清理塔寬度"
+
+# AI Translated
+msgid "Width (machine X, across the belt) of the purge prism that is automatically generated on belt printers when the belt purge tower is enabled and multiple filaments are used. Filament-change purging is routed into this prism's extrusions instead of a classic wipe tower. Its height is computed automatically from the worst-case purge volume per layer: a wider prism results in a shorter one."
+msgstr "清理稜柱的寬度(機器 X 方向,即橫跨輸送帶的方向)。在輸送帶列印裝置上啟用輸送帶清理塔並使用多種線材時,會自動產生此稜柱;線材更換時的清理會改為擠出到此稜柱中,而非傳統的換料塔。其高度會根據每層最大的清理體積自動計算:稜柱越寬,高度越低。"
msgid "Tree support branch angle"
msgstr "樹狀支撐分支角度"
@@ -18075,27 +20988,31 @@ msgstr "當樹狀分支不必避開模型時的偏好角度。使用較低的角
msgid "Tree support branch distance"
msgstr "樹狀支撐分支距離"
+# AI Translated
msgid "This setting determines the distance between neighboring tree support nodes."
-msgstr "此設定確定了樹狀支撐的相鄰節點之間的距離。"
+msgstr "此設定決定樹狀支撐相鄰節點之間的距離。"
msgid "Branch Density"
msgstr "樹狀分支密度"
+# AI Translated
#. TRN PrintSettings: "Organic supports" > "Branch Density"
msgid "Adjusts the density of the support structure used to generate the tips of the branches. A higher value results in better overhangs but the supports are harder to remove, thus it is recommended to enable top support interfaces instead of a high branch density value if dense interfaces are needed."
-msgstr "調整支撐結構中分支末端的密度。較高的密度能提供更好的懸空支撐,但也會使支撐更難移除。如果需要密集的支撐層,建議啟用頂部支撐介面,而非單純提高分支密度設定。"
+msgstr "調整用於產生分支末端的支撐結構密度。數值越高,懸空效果越好,但支撐也越難移除。因此若需要緻密的支撐面,建議啟用頂部支撐面,而不是使用過高的分支密度。"
msgid "Auto brim width"
msgstr "自動 Brim 寬度"
+# AI Translated
msgid "Enabling this option means the width of the brim for tree support will be automatically calculated."
-msgstr "啟用此選項意味著樹狀支撐的 Brim 寬度將自動計算自動計算"
+msgstr "啟用此選項後,樹狀支撐的 Brim 寬度將自動計算。"
msgid "Tree support brim width"
msgstr "樹狀支撐 Brim 寬度"
+# AI Translated
msgid "Distance from tree branch to the outermost brim line."
-msgstr "從樹狀支撐分支到最外層 Brim 線的距離"
+msgstr "從樹狀支撐分支到最外圈 Brim 線的距離。"
msgid "Tip Diameter"
msgstr "末端直徑"
@@ -18107,8 +21024,9 @@ msgstr "有機樹支撐的分支末端直徑。"
msgid "Tree support branch diameter"
msgstr "樹狀支撐分支直徑"
+# AI Translated
msgid "This setting determines the initial diameter of support nodes."
-msgstr "此設定確定了樹狀支撐節點的初始直徑。"
+msgstr "此設定決定樹狀支撐節點的初始直徑。"
#. TRN PrintSettings: #lmFIXME
msgid "Branch Diameter Angle"
@@ -18118,25 +21036,28 @@ msgstr "分支直徑角度"
msgid "The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A bit of an angle can increase stability of the organic support."
msgstr "分支直徑隨高度逐漸變粗的角度。若角度設為 0,分支將在整個長度上保持均勻厚度。稍微調整角度可提升有機樹的穩定性。"
+# AI Translated
msgid "Support wall loops"
-msgstr "支撐牆數"
+msgstr "支撐牆層數"
+# AI Translated
msgid "This setting specifies the count of support walls in the range of [0,2]. 0 means auto."
-msgstr "此設定指定支撐壁的數量,範圍為 [0,2]。0 表示自動調整。"
+msgstr "此設定指定支撐牆的層數,範圍為 [0,2]。0 表示自動。"
msgid "Tree support with infill"
msgstr "樹狀支撐產生填充"
+# AI Translated
msgid "This setting specifies whether to add infill inside large hollows of tree support."
-msgstr "此設定決定是否為樹狀支撐內部的空間產生填充"
+msgstr "此設定決定是否在樹狀支撐內部的大空腔中產生填充。"
+# AI Translated
msgid "Ironing Support Interface"
-msgstr "支撐介面熨燙"
+msgstr "支撐面熨燙"
+# AI Translated
msgid "Ironing is using small flow to print on same height of support interface again to make it more smooth. This setting controls whether support interface being ironed. When enabled, support interface will be extruded as solid too."
-msgstr ""
-"此設定控制是否對支撐面進行熨燙。熨燙是使用小流量再次在支撐面的相同高度上列印,使其更加平滑。\n"
-"啟用時,支撐面也會被擠出為實心。"
+msgstr "熨燙是以小流量在支撐面的相同高度上再列印一次,使表面更平滑。此設定控制是否熨燙支撐面。啟用時,支撐面也會以實心擠出。"
msgid "Support Ironing Pattern"
msgstr "支撐熨燙圖案"
@@ -18144,10 +21065,9 @@ msgstr "支撐熨燙圖案"
msgid "Support Ironing flow"
msgstr "支撐熨燙流量"
+# AI Translated
msgid "The amount of material to extrude during ironing. Relative to flow of normal support interface layer height. Too high value results in overextrusion on the surface."
-msgstr ""
-"在熨燙過程中需要擠出的材料流量。此設定與普通支撐面層流量設定之間相關。\n"
-"值過高會導致表面過量擠出。"
+msgstr "熨燙時擠出的材料量,相對於一般支撐面層高對應的流量。數值過高會導致表面過度擠出。"
msgid "Support Ironing line spacing"
msgstr "支撐熨燙線間距"
@@ -18155,20 +21075,31 @@ msgstr "支撐熨燙線間距"
msgid "Activate temperature control"
msgstr "啟動溫度控制"
+# AI Translated
msgid ""
"Enable this option for automated chamber temperature control. This option activates the emitting of an M191 command before the \"machine_start_gcode\"\n"
" which sets the chamber temperature and waits until it is reached. In addition, it emits an M141 command at the end of the print to turn off the chamber heater, if present.\n"
"\n"
"This option relies on the firmware supporting the M191 and M141 commands either via macros or natively and is usually used when an active chamber heater is installed."
-msgstr "啟用此選項後,將自動控制機箱溫度。此功能會在執行『machine_start_gcode』之前傳送 M191 指令,用於設定機箱溫度並等待達到設定值。此外,在列印結束時會傳送 M141 指令以關閉機箱加熱器(若裝置有加熱器)。此功能需要韌體原生支援或透過宏指令支援 M191 和 M141 指令,通常用於配備主動機箱加熱器的列印裝置。"
+msgstr ""
+"啟用此選項可自動控制腔體溫度。此選項會在 \"machine_start_gcode\" 之前發出 M191 指令,\n"
+"用於設定腔體溫度並等待達到該溫度。此外,若裝有腔體加熱器,還會在列印結束時發出 M141 指令將其關閉。\n"
+"\n"
+"此選項需要韌體以巨集或原生方式支援 M191 和 M141 指令,通常用於裝有主動式腔體加熱器的情況。"
+# AI Translated
msgid ""
"For high-temperature materials like ABS, ASA, PC, and PA, a higher chamber temperature can help suppress or reduce warping and potentially lead to higher interlayer bonding strength. However, at the same time, a higher chamber temperature will reduce the efficiency of air filtration for ABS and ASA.\n"
"\n"
"For PLA, PETG, TPU, PVA, and other low-temperature materials, this option should be disabled (set to 0) as the chamber temperature should be low to avoid extruder clogging caused by material softening at the heat break.\n"
"\n"
"If enabled, this parameter also sets a G-code variable named chamber_temperature, which can be used to pass the desired chamber temperature to your print start macro, or a heat soak macro like this: PRINT_START (other variables) CHAMBER_TEMP=[chamber_temperature]. This may be useful if your printer does not support M141/M191 commands, or if you desire to handle heat soaking in the print start macro if no active chamber heater is installed."
-msgstr "對於 ABS、ASA、PC 和 PA 等高溫材料,較高的機箱溫度能有效抑制或減少翹曲,並可能提升層間結合強度。然而,較高的機箱溫度也會降低 ABS 和 ASA 的空氣過濾效率。對於 PLA、PETG、TPU、PVA 和其他低溫材料,建議將此選項停用(設為 0),因機箱溫度應保持較低,以避免因材料在熱端軟化而導致擠出機堵塞。啟用此選項後,會設定一個名為 chamber_temperature 的 G-code 變數,可用於將所需的機箱溫度傳遞給列印開始宏,或像以下的熱浸泡宏(預熱):PRINT_START (其他變數) CHAMBER_TEMP=[chamber_temperature]。這對於不支援 M141/M191 指令的列印裝置,或者希望在列印開始宏中處理熱浸泡(預熱)但未安裝主動機箱加熱器的情況下非常實用。"
+msgstr ""
+"對於 ABS、ASA、PC 和 PA 等高溫材料,較高的腔體溫度有助於抑制或減少翹曲,並可能提升層間結合強度。但同時,較高的腔體溫度也會降低 ABS 和 ASA 的空氣過濾效率。\n"
+"\n"
+"對於 PLA、PETG、TPU、PVA 等低溫材料,應停用此選項(設為 0),因為腔體溫度應保持較低,以免材料在喉管處軟化而導致擠出機堵塞。\n"
+"\n"
+"啟用時,此參數也會設定一個名為 chamber_temperature 的 G-code 變數,可用於將所需的腔體溫度傳給列印開始巨集或熱浸泡巨集,例如:PRINT_START (其他變數) CHAMBER_TEMP=[chamber_temperature]。若您的列印裝置不支援 M141/M191 指令,或未安裝主動式腔體加熱器而想在列印開始巨集中處理熱浸泡,這會很有用。"
# AI Translated
msgid ""
@@ -18178,42 +21109,51 @@ msgid ""
"\n"
"Unlike the \"Target\" chamber temperature, this option does not emit any M141/M191 commands; it only exposes the value to your custom G-code. It should not exceed the \"Target\" chamber temperature."
msgstr ""
-"這是列印應開始時的倉室溫度,此時倉室會持續朝「Target」倉室溫度加熱。例如,將 Target 設為 60、Minimal 設為 50,倉室達到 50℃ 時即開始列印,無需等到完整的 60℃。\n"
+"這是開始列印時的腔體溫度,此時腔體會持續朝「目標」腔體溫度加熱。例如,將「目標」設為 60、「最低」設為 50,腔體達到 50℃ 時即開始列印,無需等到完整的 60℃。\n"
"\n"
-"它會設定一個名為 chamber_minimal_temperature 的 G-code 變數,可傳遞給您的列印起始巨集或熱浸泡巨集,例如:PRINT_START (other variables) CHAMBER_MIN_TEMP=[chamber_minimal_temperature]。\n"
+"它會設定一個名為 chamber_minimal_temperature 的 G-code 變數,可傳給您的列印開始巨集或熱浸泡巨集,例如:PRINT_START (其他變數) CHAMBER_MIN_TEMP=[chamber_minimal_temperature]。\n"
"\n"
-"與「Target」倉室溫度不同,此選項不會發出任何 M141/M191 命令;它僅將該數值提供給您的自訂 G-code。它不應超過「Target」倉室溫度。"
+"與「目標」腔體溫度不同,此選項不會發出任何 M141/M191 指令,只會將此數值提供給您的自訂 G-code。此值不應超過「目標」腔體溫度。"
# AI Translated
msgid "Chamber minimal temperature"
-msgstr "最低倉室溫度"
+msgstr "最低腔體溫度"
+# AI Translated
msgid "Nozzle temperature after the first layer"
-msgstr "除首層外的其它層的噴嘴溫度"
+msgstr "首層之後的噴嘴溫度"
+# AI Translated
msgid "Detect thin walls"
-msgstr "檢查薄壁"
+msgstr "偵測薄壁"
+# AI Translated
msgid "This detects thin walls which can’t contain two lines and uses a single line to print. It may not print as well because it’s not a closed loop."
-msgstr "檢查無法容納兩條走線的薄壁。使用單條走線列印。可能會打地不是很好,因為走線不再閉合"
+msgstr "偵測無法容納兩條走線的薄壁,並以單條走線列印。由於走線不是封閉迴圈,列印效果可能較差。"
+# AI Translated
msgid "This G-code is inserted when filament is changed, including T commands to trigger tool change."
-msgstr "換料時插入的 G-code,包括 T 命令"
+msgstr "換料時插入的 G-code,包括用於觸發換工具的 T 指令。"
+# AI Translated
msgid "This G-code is inserted when the extrusion role is changed."
-msgstr "此 G-code 會在擠出模式切換時插入"
+msgstr "此 G-code 會在擠出類型切換時插入。"
+# AI Translated
msgid "Change extrusion role G-code (filament)"
-msgstr "變更擠出模式 G-code(線材)"
+msgstr "變更擠出類型 G-code(線材)"
+# AI Translated
msgid "This G-code is inserted when the extrusion role is changed for the active filament."
-msgstr "當作用中線材的擠出模式變更時,會插入此 G-code。"
+msgstr "當作用中線材的擠出類型變更時,會插入此 G-code。"
+# AI Translated
msgid "Line width for top surfaces. If expressed as a %, it will be computed over the nozzle diameter."
-msgstr "頂面的線寬。如果以%表示,它將以噴嘴直徑為基準來計算。"
+msgstr "頂面的線寬。如果以 % 表示,將以噴嘴直徑為基準計算。"
+# AI Translated
msgid "This is the speed for solid top surface infill."
-msgstr "頂面實心填充的速度"
+msgstr "頂面實心填充的速度。"
msgid "Top shell layers"
msgstr "頂部外殼層數"
@@ -18224,8 +21164,9 @@ msgstr "頂部外殼實心層層數,包括頂面。當由該層數計算的厚
msgid "Top shell thickness"
msgstr "頂部外殼厚度"
+# AI Translated
msgid "The number of top solid layers is increased when slicing if the thickness calculated by top shell layers is thinner than this value. This can avoid having too thin a shell when layer height is small. 0 means that this setting is disabled and thickness of top shell is determined simply by the number of top shell layers."
-msgstr "當切片時,如果透過頂部殼層計算的厚度小於設定值,將自動增加頂部實心層的數量,以避免層高較小時頂部殼層過薄。若設為 0,則停用此功能,頂部殼層厚度完全由設定的頂部殼層數決定"
+msgstr "切片時,若由「頂部外殼層數」計算出的厚度小於此值,會自動增加頂部實心層的數量,以免層高較小時頂部外殼過薄。設為 0 表示停用此設定,頂部外殼的厚度僅由頂部外殼層數決定。"
# AI Translated
msgid "Separated infills"
@@ -18235,13 +21176,11 @@ msgstr "分離填充"
msgid ""
"Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
"Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
-"Affects line and grid patterns and rotation-template infills.\n"
-"Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+"Adaptive Cubic and Support Cubic always center each part on itself, and Lightning infill is generated for the whole object and is unaffected."
msgstr ""
-"將每個零件的內部填充以其自身為中心,如同它是單獨切片一樣,而非以整個組件為中心。相互接觸或重疊的零件會被視為一個實體並共用一個中心;分離的零件(或不同的 3D 物件)則各自擁有自己的中心。\n"
-"適用於組件中分組了多個各自應保持一致、以自身為中心之填充的物件時。\n"
-"會影響線形與網格圖樣以及旋轉範本填充。\n"
-"鎖定為全域座標的圖樣(螺旋體、蜂巢、TPMS…)則不受影響。"
+"將每個零件的內部填充以其自身為中心對齊,如同單獨切片一樣,而非以整個組合件為中心。相互接觸或重疊的零件會被視為同一個實體並共用一個中心;分開的零件(或不同的 3D 物件)則各自擁有自己的中心。\n"
+"適用於組合件中包含多個物件、且每個物件都需保持一致且以自身為中心之填充的情況。\n"
+"適應性立方體與支撐立方體一律以每個零件自身為中心,而閃電填充是針對整個物件產生,因此不受影響。"
# AI Translated
msgid "Center surface pattern on"
@@ -18254,10 +21193,10 @@ msgid ""
" - Each Model: centers the pattern on each connected body. Parts that touch or overlap share one center; parts detached from the rest each get their own.\n"
" - Each Assembly: uses a single shared center for the whole object or assembly."
msgstr ""
-"選擇置中的頂/底面圖樣(阿基米德弦線、八角星螺旋)的中心點放置位置。\n"
-" - 每個表面:將圖樣以每個個別表面區域為中心,使每個島狀區域各自對稱。\n"
-" - 每個模型:將圖樣以每個相連實體為中心。相互接觸或重疊的零件共用一個中心;與其餘部分分離的零件則各自擁有自己的中心。\n"
-" - 每個組件:整個物件或組件使用單一共用中心。"
+"選擇置中的頂面/底面圖案(阿基米德和弦、八角螺旋)的中心點位置。\n"
+" - 每個表面:將圖案以每個個別表面區域為中心,使每個島狀區域各自對稱。\n"
+" - 每個模型:將圖案以每個相連實體為中心。相互接觸或重疊的零件共用一個中心;與其餘部分分離的零件則各自擁有自己的中心。\n"
+" - 每個組合件:整個物件或組合件使用單一共用中心。"
# AI Translated
msgid "Each Surface"
@@ -18269,20 +21208,23 @@ msgstr "每個模型"
# AI Translated
msgid "Each Assembly"
-msgstr "每個組件"
+msgstr "每個組合件"
+# AI Translated
msgid "This is the speed at which traveling is done."
-msgstr "空駛的速度。空駛是無擠出量的快速移動"
+msgstr "空駛的速度。"
msgid "Wipe while retracting"
msgstr "回抽時擦拭"
+# AI Translated
msgid "This moves the nozzle along the last extrusion path when retracting to clean any leaked material on the nozzle. This can minimize blobs when printing a new part after traveling."
-msgstr "回抽時讓噴嘴沿著最後的擠出路徑移動,清理噴嘴上的洩漏材料。此功能可減少移動後列印新區域時材料堆積的情況"
+msgstr "回抽時讓噴嘴沿著最後的擠出路徑移動,清除噴嘴上漏出的材料。這可減少空駛後列印新零件時產生的料滴。"
msgid "Wipe distance"
msgstr "擦拭距離"
+# AI Translated
msgid ""
"Describe how long the nozzle will move along the last path when retracting.\n"
"\n"
@@ -18290,11 +21232,11 @@ msgid ""
"\n"
"Setting a value in the retract amount before wipe setting below will perform any excess retraction before the wipe, else it will be performed after."
msgstr ""
-"描述在回抽時噴嘴沿最後路徑移動的距離。\n"
+"回抽時噴嘴沿最後路徑移動的距離。\n"
"\n"
-"根據擦拭操作持續的時間、擠出機/線材回抽設定的速度和距離,可能需要額外的回抽來收回剩餘的線材。\n"
+"視擦拭動作持續的時間,以及擠出機/線材回抽設定的速度和長度而定,可能需要額外的回抽來收回剩餘的線材。\n"
"\n"
-"在以下的『擦拭前的回抽量』設定中設定一個值,將在擦拭之前執行任何額外的回抽操作;否則,將在擦拭之後執行。"
+"若在下方的「擦拭前的回抽量」中設定數值,多出的回抽會在擦拭前執行,否則會在擦拭後執行。"
# AI Translated
msgid "Mixed color sublayer"
@@ -18310,25 +21252,29 @@ msgstr "換料塔的功能是用於清除噴嘴上的殘留物,同時穩定噴
msgid "Internal ribs"
msgstr "內部加強肋"
+# AI Translated
msgid "Enable internal ribs to increase the stability of the prime tower."
-msgstr "啟用內部加強肋以提升換料塔的穩定性"
+msgstr "啟用內部加強肋以提升換料塔的穩定性。"
+# AI Translated
msgid "Purging volumes"
-msgstr "沖刷體積"
+msgstr "清理體積"
+# AI Translated
msgid "Flush multiplier"
-msgstr "沖刷量乘數"
+msgstr "清理量乘數"
+# AI Translated
msgid "The actual flushing volumes is equal to the flush multiplier value multiplied by the flushing volumes in the table."
-msgstr "實際沖刷量等於沖刷量乘數乘以表格單元中的沖刷量。"
+msgstr "實際清理體積等於清理量乘數乘以表格中的清理體積。"
# AI Translated
msgid "Flush multiplier (Fast mode)"
-msgstr "清理倍率(快速模式)"
+msgstr "清理量乘數(快速模式)"
# AI Translated
msgid "The flush multiplier used in fast purge mode."
-msgstr "快速清理模式所使用的清理倍率。"
+msgstr "快速清理模式所使用的清理量乘數。"
msgid "Prime volume"
msgstr "清理量"
@@ -18338,11 +21284,11 @@ msgstr "換料塔上的清理量。"
# AI Translated
msgid "Prime volume mode"
-msgstr "引導體積模式"
+msgstr "清理量模式"
# AI Translated
msgid "Selects how the wipe-tower prime and flush volumes are computed on multi-extruder printers."
-msgstr "選擇多擠出機印表機上換料塔的引導與清理體積的計算方式。"
+msgstr "選擇在多擠出機列印裝置上如何計算換料塔的「清理量」與清理體積。"
# AI Translated
msgid "Saving"
@@ -18352,61 +21298,67 @@ msgstr "節省"
msgid "Fast"
msgstr "快速"
+# AI Translated
msgid "This is the width of prime towers."
-msgstr "換料塔寬度"
+msgstr "換料塔的寬度。"
msgid "Wipe tower rotation angle"
msgstr "換料塔旋轉角度"
+# AI Translated
msgid "Wipe tower rotation angle with respect to X axis."
-msgstr "換料塔相對於 x 軸的旋轉角度。"
+msgstr "換料塔相對於 X 軸的旋轉角度。"
+# AI Translated
msgid "Brim width of prime tower, negative number means auto calculated width based on the height of prime tower."
-msgstr "換料塔的邊緣寬度,負值表示根據換料塔高度自動計算寬度"
+msgstr "換料塔的 Brim 寬度,負值表示根據換料塔高度自動計算寬度。"
msgid "Stabilization cone apex angle"
msgstr "穩定錐形頂角"
+# AI Translated
msgid "Angle at the apex of the cone that is used to stabilize the wipe tower. Larger angle means wider base."
-msgstr "圓錐體頂點處的角度,用於穩定換料塔。 更大的角度意味著更寬的底座。"
+msgstr "用於穩定換料塔的錐體頂角角度。角度越大,底座越寬。"
msgid "Maximum wipe tower print speed"
msgstr "換料塔最快列印速度"
+# AI Translated
msgid ""
"The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
-"When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+"When printing the sparse layers, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
"\n"
"Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
"\n"
"Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
"\n"
-"For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+"For the wipe tower external perimeters the internal perimeter speed is used, also limited by this setting."
msgstr ""
-"在換料塔中沖刷和列印換料塔稀疏層時的最大列印速度。沖刷時,如果稀疏填充速度或根據線材最大體積速度計算出的速度較低,則將使用較低的速度。\n"
+"在換料塔中清理和列印換料塔稀疏層時的最大列印速度。清理時,如果稀疏填充速度或根據線材最大體積流量計算出的速度較低,則將使用較低的速度。\n"
"\n"
-"列印稀疏層時,如果內牆速度或根據線材最大體積速度計算出的速度較低,則將使用較低的速度。\n"
+"列印稀疏層時,如果稀疏填充速度或根據線材最大體積流量計算出的速度較低,則將使用較低的速度。\n"
"\n"
"提高此速度可能會影響換料塔的穩定性,並增加噴嘴與換料塔上凸起物的碰撞力。\n"
"\n"
-"在將此參數提高到預設值 90 mm/s 以上之前,請確保您的列印裝置能夠在更高的速度下可靠地進行橋接,且工具更換時的溢出能被良好控制。\n"
+"在將此參數提高到預設值 90 mm/s 以上之前,請確保您的列印裝置能夠在更高的速度下可靠地進行橋接,且換工具時的防漏料已受到良好控制。\n"
"\n"
-"換料塔外牆始終使用內牆速度,不受此設定影響。"
+"換料塔外牆使用內牆速度,同時也受此設定限制。"
msgid "Wall type"
msgstr "牆體類型"
+# AI Translated
msgid ""
"Wipe tower outer wall type.\n"
-"1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+"1. Rectangle: A rectangle with fixed width and height.\n"
"2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
-"3. Rib: Adds four ribs to the tower wall for enhanced stability."
+"3. Rib: The default wall type, which adds four ribs to the tower wall for enhanced stability."
msgstr ""
"換料塔外牆類型。\n"
-"1. 矩形:預設牆體類型,具有固定寬度和高度的矩形。\n"
-"2. 圓錐:底部帶圓角的圓錐形,有助於穩定換料塔。\n"
-"3. 肋條:為換料塔牆體添加四條肋條以增強穩定性"
+"1. 矩形:具有固定寬度和高度的矩形。\n"
+"2. 錐體:底部帶圓角的圓錐形,有助於穩定換料塔。\n"
+"3. 肋條:預設牆體類型,為換料塔牆體添加四條肋條以增強穩定性。"
msgid "Rectangle"
msgstr "矩形"
@@ -18417,35 +21369,42 @@ msgstr "肋條"
msgid "Extra rib length"
msgstr "額外肋條長度"
+# AI Translated
msgid "Positive values can increase the size of the rib wall, while negative values can reduce the size. However, the size of the rib wall can not be smaller than that determined by the cleaning volume."
-msgstr "正值可增加肋條牆的尺寸,負值則可減小尺寸。但肋條牆的尺寸不能小於由清理量決定的尺寸"
+msgstr "正值可增加肋條牆的尺寸,負值則可減小尺寸。但肋條牆的尺寸不能小於由清理量決定的尺寸。"
msgid "Rib width"
msgstr "肋條寬度"
+# AI Translated
msgid "Rib width is always less than half the prime tower side length."
-msgstr "肋條寬度始終小於換料塔邊長的一半"
+msgstr "肋條寬度始終小於換料塔邊長的一半。"
msgid "Fillet wall"
msgstr "圓角牆體"
+# AI Translated
msgid "The wall of prime tower will fillet."
-msgstr "換料塔的牆體將使用圓角"
+msgstr "換料塔的牆將使用圓角。"
+# AI Translated
msgid "The extruder to use when printing perimeter of the wipe tower. Set to 0 to use the one that is available (non-soluble would be preferred)."
-msgstr "列印換料塔周長時使用的擠出機。設定為 0 將使用唯一的擠出機(盡量使用不可溶的材料)。"
+msgstr "列印換料塔牆時使用的擠出機。設為 0 表示使用可用的擠出機(優先使用非可溶線材)。"
+# AI Translated
msgid "Purging volumes - load/unload volumes"
-msgstr "清理量 - 進料/退料 量"
+msgstr "清理體積:進料/退料體積"
+# AI Translated
msgid "This vector saves required volumes to change from/to each tool used on the wipe tower. These values are used to simplify creation of the full purging volumes below."
-msgstr "此資料記錄了換料塔每次切換所需的體積,並用於簡化後續完整沖洗體積的計算。"
+msgstr "此向量儲存在換料塔上切換到各工具或從各工具切換出所需的體積。這些值用於簡化下方完整清理體積的建立。"
msgid "Skip points"
msgstr "跳過起始點"
+# AI Translated
msgid "The wall of prime tower will skip the start points of wipe path."
-msgstr "換料塔的牆體將跳過擦拭路徑的起始點"
+msgstr "換料塔的牆將跳過擦拭路徑的起始點。"
msgid "Enable tower interface features"
msgstr "啟用換料塔介面功能"
@@ -18453,8 +21412,9 @@ msgstr "啟用換料塔介面功能"
msgid "Enable optimized prime tower interface behavior when different materials meet."
msgstr "當不同材料相遇時,啟用最佳化的換料塔介面行為。"
+# AI Translated
msgid "Cool down from interface boost during prime tower"
-msgstr "換料塔介面加速後冷卻"
+msgstr "介面層升溫後於換料塔降溫"
msgid "When interface-layer temperature boost is active, set the nozzle back to print temperature at the start of the prime tower so it cools down during the tower."
msgstr "當介面層溫度提升啟用時,在換料塔開始時將噴嘴恢復到列印溫度,使其在換料塔期間冷卻。"
@@ -18462,17 +21422,29 @@ msgstr "當介面層溫度提升啟用時,在換料塔開始時將噴嘴恢復
msgid "Infill gap"
msgstr "填充間隙"
+# AI Translated
msgid "Infill gap."
-msgstr "填充間隙"
+msgstr "填充間隙。"
+# AI Translated
msgid "Purging after filament change will be done inside objects' infills. This may lower the amount of waste and decrease the print time. If the walls are printed with transparent filament, the mixed color infill will be visible. It will not take effect unless the prime tower is enabled."
-msgstr "更換線材後的沖洗動作將在物件的填充區域內進行,可減少材料浪費並縮短列印時間。然而,如果牆體使用透明線材,混合色的填充可能會透過牆體被看到。此功能需啟用換料塔後才會生效。"
+msgstr "換料後的清理會在物件的填充內進行。這可減少浪費並縮短列印時間。若牆使用透明線材列印,就會看到混色的填充。此功能需啟用換料塔才會生效。"
+# AI Translated
msgid "Purging after filament change will be done inside objects' support. This may lower the amount of waste and decrease the print time. It will not take effect unless a prime tower is enabled."
-msgstr "更換線材後的沖洗動作將在物件的支撐結構內進行,可減少材料浪費並縮短列印時間。然而,此功能需啟用換料塔後才會生效。"
+msgstr "換料後的清理會在物件的支撐內進行。這可減少浪費並縮短列印時間。此功能需啟用換料塔才會生效。"
+# AI Translated
msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled."
-msgstr "此物件將用於更換線材後進行噴嘴清洗,從而節省線材並縮短列印時間。但物件的顏色會因此被混合。此功能需啟用換料塔後才會生效。"
+msgstr "此物件將用於換料後清理噴嘴,以節省線材並縮短列印時間。物件的顏色因此會混雜。此功能需啟用換料塔才會生效。"
+
+# AI Translated
+msgid "Belt purge tower object"
+msgstr "輸送帶清理塔物件"
+
+# AI Translated
+msgid "Marks the auto-generated belt purge prism. Managed automatically; do not set manually."
+msgstr "標記自動產生的輸送帶清理稜柱。由程式自動管理,請勿手動設定。"
msgid "Maximal bridging distance"
msgstr "最大橋接距離"
@@ -18480,49 +21452,59 @@ msgstr "最大橋接距離"
msgid "Maximal distance between supports on sparse infill sections."
msgstr "稀疏填充截面上的支撐之間的最大距離。"
+# AI Translated
msgid "Wipe tower purge lines spacing"
-msgstr "換料塔線距"
+msgstr "換料塔清理線間距"
+# AI Translated
msgid "Spacing of purge lines on the wipe tower."
-msgstr "換料塔上的線距。"
+msgstr "換料塔上清理線的間距。"
+# AI Translated
msgid "Extra flow for purging"
-msgstr "額外換料流量"
+msgstr "清理額外流量"
-msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
-msgstr "讓換料塔在清理時輸出額外流量。這會使列印線比正常情況更粗或更細。間距會自動調整。"
+# AI Translated
+msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker than they normally would be. The spacing is adjusted automatically."
+msgstr "換料塔上清理線所使用的額外流量。這會使清理線比正常情況更粗。間距會自動調整。"
msgid "Idle temperature"
msgstr "閒置溫度"
+# AI Translated
msgid "Nozzle temperature when the tool is currently not used in multi-tool setups. This is only used when 'Ooze prevention' is active in Print Settings. Set to 0 to disable."
-msgstr "當工具頭在多工具頭設定中未使用時的噴嘴溫度。僅在『列印設定』中啟用『防止漏料』時有效。設定 0 為停用。"
+msgstr "多工具頭設定中,目前未使用的工具頭的噴嘴溫度。僅在列印設定中啟用「防漏料」時使用。設為 0 表示停用。"
msgid "X-Y hole compensation"
msgstr "X-Y 孔洞尺寸補償"
+# AI Translated
msgid "Holes in objects will expand or contract in the XY plane by the set value. Positive values make holes bigger and negative values make holes smaller. This function is used to adjust sizes slightly when objects have assembly issues."
-msgstr "物件中的孔洞將在 XY 平面上依設定值擴大或縮小。正值使孔洞變大,負值使孔洞變小。此功能用於在物件有裝配問題時微調尺寸。"
+msgstr "物件中的孔洞將在 XY 平面上依設定值擴大或縮小。正值使孔洞變大,負值使孔洞變小。此功能用於在物件有組裝問題時微調尺寸。"
msgid "X-Y contour compensation"
msgstr "X-Y 外輪廓尺寸補償"
+# AI Translated
msgid "Contours of objects will expand or contract in the XY plane by the set value. Positive values make contours bigger and negative values make contours smaller. This function is used to adjust sizes slightly when objects have assembly issues."
-msgstr "物件的外輪廓將在 XY 平面上依設定值擴大或縮小。正值使外輪廓變大,負值使外輪廓變小。此功能用於在物件有裝配問題時微調尺寸。"
+msgstr "物件的外輪廓將在 XY 平面上依設定值擴大或縮小。正值使外輪廓變大,負值使外輪廓變小。此功能用於在物件有組裝問題時微調尺寸。"
msgid "Convert holes to polyholes"
msgstr "將圓孔轉換為多邊形孔"
+# AI Translated
msgid ""
"Search for almost-circular holes that span more than one layer and convert the geometry to polyholes. Use the nozzle size and the (biggest) diameter to compute the polyhole.\n"
"See http://hydraraptor.blogspot.com/2011/02/polyholes.html"
msgstr ""
-"尋找橫跨多層的近似圓形孔洞,並將其幾何形狀轉換為多邊形孔。多邊形孔的計算將根據噴嘴尺寸及最大直徑進行。\n"
-"更多的說明請參閱:https://hydraraptor.blogspot.com/2011/02/polyholes.html"
+"尋找橫跨多層的近似圓形孔洞,並將其幾何形狀轉換為多邊形孔。多邊形孔的計算將根據噴嘴尺寸及(最大)直徑進行。\n"
+"請參閱 http://hydraraptor.blogspot.com/2011/02/polyholes.html"
+# AI Translated
msgid "Polyhole detection margin"
-msgstr "偵測多邊形孔邊緣"
+msgstr "多邊形孔偵測容差"
+# AI Translated
#, no-c-format, no-boost-format
msgid ""
"Maximum defection of a point to the estimated radius of the circle.\n"
@@ -18531,7 +21513,7 @@ msgid ""
msgstr ""
"點與圓估算半徑的最大偏差範圍。\n"
"由於圓柱體在匯出時通常由不同大小的三角形組成,點可能不會完全位於圓周上。此設定允許一定的容差,以便擴大偵測範圍。\n"
-"該值可使用毫米或半徑的百分比來表示。"
+"可使用 mm 或半徑的 % 表示。"
msgid "Polyhole twist"
msgstr "扭曲多邊形孔"
@@ -18554,23 +21536,27 @@ msgstr ""
msgid "G-code thumbnails"
msgstr "G-code 縮圖"
+# AI Translated
msgid "Picture sizes to be stored into a .gcode and .sl1 / .sl1s files, in the following format: \"XxY, XxY, ...\""
-msgstr "設定將儲存於 .gcode 和 .sl1 / .sl1s 檔案中,其圖片尺寸,格式為:「XxY, XxY, ...」"
+msgstr "要儲存到 .gcode 與 .sl1 / .sl1s 檔案中的圖片尺寸,格式為:\"XxY, XxY, ...\""
msgid "Format of G-code thumbnails"
msgstr "G-code 縮圖的格式"
+# AI Translated
msgid "Format of G-code thumbnails: PNG for best quality, JPG for smallest size, QOI for low memory firmware."
-msgstr "G-code 縮圖的格式:PNG 品質最佳,JPG 檔案最小,QOI 最低記憶體韌體"
+msgstr "G-code 縮圖的格式:PNG 品質最佳,JPG 檔案最小,QOI 適用於記憶體較小的韌體。"
msgid "Use relative E distances"
msgstr "使用相對 E 距離"
+# AI Translated
msgid "Relative extrusion is recommended when using \"label_objects\" option. Some extruders work better with this option unchecked (absolute extrusion mode). Wipe tower is only compatible with relative mode. It is recommended on most printers. Default is checked."
-msgstr "使用『label_objects』選項時,建議啟用相對擠出模式。一些擠出機在使用絕對擠出模式(取消勾選)時運行效果會更好。換料塔僅支援相對擠出模式,這也是大多數列印裝置的建議模式。預設為啟用相對模式"
+msgstr "使用 \"label_objects\" 選項時,建議使用相對擠出。部分擠出機在取消勾選此選項(絕對擠出模式)時效果較好。換料塔僅相容於相對模式。大多數列印裝置都建議使用此選項。預設為勾選。"
+# AI Translated
msgid "The classic wall generator produces walls with constant extrusion width and for very thin areas, gap-fill is used. The Arachne engine produces walls with variable extrusion width."
-msgstr "經典牆產生器產生的牆走線具有一致的擠出寬度,對狹窄區域使用填縫。Arachne 引擎則產生變線寬的牆走線"
+msgstr "經典牆產生器產生的牆具有固定的擠出寬度,並在非常狹窄的區域使用縫隙填充。Arachne 引擎則產生擠出寬度可變的牆。"
msgid "Arachne"
msgstr "Arachne"
@@ -18578,44 +21564,50 @@ msgstr "Arachne"
msgid "Wall transition length"
msgstr "牆過渡長度"
+# AI Translated
msgid "When transitioning between different numbers of walls as the part becomes thinner, a certain amount of space is allotted to split or join the wall segments. It's expressed as a percentage over nozzle diameter."
-msgstr "當零件變薄需要切換牆體數量時,系統會分配一定空間用於分割或合併牆段。此空間以噴嘴直徑的百分比表示"
+msgstr "當零件變薄需要切換牆體數量時,系統會分配一定空間用於分割或合併牆段。此空間以噴嘴直徑的百分比表示。"
msgid "Wall transitioning filter margin"
msgstr "牆過渡過濾間距"
+# AI Translated
msgid "Prevent transitioning back and forth between one extra wall and one less. This margin extends the range of extrusion widths which follow to [Minimum wall width - margin, 2 * Minimum wall width + margin]. Increasing this margin reduces the number of transitions, which reduces the number of extrusion starts/stops and travel time. However, large extrusion width variation can lead to under- or overextrusion problems. It's expressed as a percentage over nozzle diameter."
-msgstr "防止牆體數量在多出一層與少一層之間頻繁切換。此邊界擴展了可接受的擠出寬度範圍,範圍為 [最小牆寬 - 邊界, 2 倍最小牆寬 + 邊界]。增大邊界可以減少切換次數,從而減少擠出啟停和移動時間。但過大的擠出寬度變化可能引發欠擠或過擠問題。此參數以噴嘴直徑的百分比表示"
+msgstr "防止牆體數量在多出一層與少一層之間頻繁切換。此邊界將擠出寬度的範圍擴展為 [最小牆寬 - 邊界, 2 倍最小牆寬 + 邊界]。增大邊界可以減少切換次數,從而減少擠出啟停和空駛時間。但過大的擠出寬度變化可能引發擠出不足或過度擠出問題。此值以噴嘴直徑的百分比表示。"
msgid "Wall transitioning threshold angle"
msgstr "牆過渡臨界值角度"
+# AI Translated
msgid "When to create transitions between even and odd numbers of walls. A wedge shape with an angle greater than this setting will not have transitions and no walls will be printed in the center to fill the remaining space. Reducing this setting reduces the number and length of these center walls, but may leave gaps or overextrude."
-msgstr "何時在偶數和奇數牆層數之間建立過渡段。角度大於這個臨界值的楔形將不建立過渡段,並且不會在楔形中心列印牆走線以填補剩餘空間。減小這個數值能減少中心牆走線的數量和長度,但可能會導致間隙或者過擠出"
+msgstr "何時在偶數和奇數牆層數之間建立過渡段。角度大於此設定的楔形將不建立過渡段,也不會在楔形中心列印牆走線以填補剩餘空間。減小此設定能減少中心牆走線的數量和長度,但可能會產生間隙或過度擠出。"
msgid "Wall distribution count"
msgstr "牆分布計數"
+# AI Translated
msgid "The number of walls, counted from the center, over which the variation needs to be spread. Lower values mean that the outer walls don't change in width."
-msgstr "從中心開始計算的牆層數,線寬變化需要分布在這些牆走線上。較低的數值意味著外牆寬度更不易被改變"
+msgstr "從中心開始計算的牆層數,線寬變化需要分布在這些牆走線上。數值越低,外牆寬度越不會改變。"
msgid "Minimum feature size"
msgstr "最小特徵尺寸"
+# AI Translated
msgid "Minimum thickness of thin features. Model features that are thinner than this value will not be printed, while features thicker than than this value will be widened to the minimum wall width. It's expressed as a percentage over nozzle diameter."
-msgstr ""
-"薄特徵的最小厚度。\n"
-"比此值更薄的模型特徵將不會被列印,而比此值更厚的特徵將被加寬到最小壁厚。\n"
-"本設定以噴嘴直徑的百分比表示。"
+msgstr "薄特徵的最小厚度。比此值更薄的模型特徵將不會列印,比此值更厚的特徵則會加寬到「牆最小線寬」。此值以噴嘴直徑的百分比表示。"
msgid "Minimum wall length"
msgstr "最短牆長"
+# AI Translated
msgid ""
-"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+"Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. The value is a multiple of the wall width. Higher values remove more and longer walls.\n"
"\n"
-"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
-msgstr "調整此參數以避免列印短小且未封閉的牆體,這可能會延長列印時間。參數值越高,移除的牆體會越多且越長。注意:為避免模型外表面出現視覺裂縫,此設定不會影響頂面和底面。若需調整頂面判定的靈敏度,可修改進階設定中的『單層牆門檻值』。『單層牆門檻值』僅在此設定超過預設值 0.5 或啟用了單層牆頂面功能時可用。"
+"NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the 'Walls and surfaces' settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+msgstr ""
+"調整此參數以避免列印短小且未封閉的牆體,這可能會延長列印時間。此值為牆寬的倍數。參數值越高,移除的牆體會越多且越長。\n"
+"\n"
+"注意:為避免模型外表面出現視覺裂縫,此設定不會影響頂面和底面。若需調整頂面判定的靈敏度,可修改下方「牆與表面」設定中的「單層牆臨界值」。「單層牆臨界值」僅在此設定超過預設值 0.5 或啟用了單層牆頂面功能時可用。"
msgid "Maximum wall resolution"
msgstr "最大牆解析度"
@@ -18626,8 +21618,9 @@ msgstr "此數值決定最小的牆線段長度(以 mm 為單位)。此值
msgid "Maximum wall deviation"
msgstr "最大牆偏差"
-msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
-msgstr "「最大牆解析度」設定在降低解析度時所允許的最大偏差。若增加此值,列印會較不精確,但 G-Code 會更小。「最大牆偏差」會限制「最大牆解析度」,因此若兩者衝突,將以「最大牆偏差」為準。"
+# AI Translated
+msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+msgstr "「最大牆解析度」設定在降低解析度時所允許的最大偏差。若增加此值,列印會較不精確,但 G-code 會更小。「最大牆偏差」會限制「最大牆解析度」,因此若兩者衝突,將以「最大牆偏差」為準。"
msgid "First layer minimum wall width"
msgstr "首層牆最小線寬"
@@ -18638,8 +21631,9 @@ msgstr "套用於首層的牆最小線寬,建議設定與噴嘴尺寸相同。
msgid "Minimum wall width"
msgstr "牆最小線寬"
+# AI Translated
msgid "Width of the wall that will replace thin features (according to the Minimum feature size) of the model. If the Minimum wall width is thinner than the thickness of the feature, the wall will become as thick as the feature itself. It's expressed as a percentage over nozzle diameter."
-msgstr "設定替代模型中細薄特徵(依據最小特徵尺寸)的牆體寬度。若最小牆寬小於特徵厚度,牆體將與特徵的厚度一致。此值以噴嘴直徑的百分比表示"
+msgstr "用於取代模型中細薄特徵(依「最小特徵尺寸」判定)的牆寬。若「牆最小線寬」小於特徵的厚度,牆將與特徵本身一樣厚。此值以噴嘴直徑的百分比表示。"
msgid "Hotend change time"
msgstr "熱端更換時間"
@@ -18650,32 +21644,39 @@ msgstr "熱端更換時間。"
msgid "Hotend change"
msgstr "熱端更換"
+# AI Translated
msgid "When changing the hotend, it is recommended to extrude a certain length of filament from the original nozzle. This helps minimize nozzle oozing."
-msgstr "更換熱端時,建議從原熱端中擠出一定長度的耗材絲。這有助於最大限度地減少噴嘴漏料。"
+msgstr "更換熱端時,建議從原噴嘴擠出一定長度的線材。這有助於盡量減少噴嘴漏料。"
msgid "Extruder change"
msgstr "擠出機更換"
+# AI Translated
msgid "To prevent oozing, the nozzle will perform a reverse travel movement for a certain period after the ramming is complete. The setting define the travel time."
-msgstr "為了防止溢料,預沖刷完成後,噴嘴會進行一段時間的反向空駛。該設定用於定義空駛時間。"
+msgstr "為了防止漏料,尖端成型完成後,噴嘴會進行一段時間的反向空駛。此設定用於定義空駛時間。"
+# AI Translated
msgid "To prevent oozing, the nozzle temperature will be cooled during ramming. Therefore, the ramming time must be greater than the cooldown time. 0 means disabled."
-msgstr "為了防止溢料,預沖刷時會降低噴嘴溫度。因此,預沖刷時間必須大於冷卻時間。0 表示停用。"
+msgstr "為了防止漏料,尖端成型時會降低噴嘴溫度。因此,尖端成型時間必須大於冷卻時間。0 表示停用。"
+# AI Translated
msgid "The maximum volumetric speed for ramming before extruder change, where -1 means using the maximum volumetric speed."
-msgstr "換出擠出機前的最大預沖刷體積速度,-1 表示使用最大體積速度。"
+msgstr "換出擠出機前尖端成型的最大體積流量,-1 表示使用最大體積流量。"
+# AI Translated
msgid "To prevent oozing, the nozzle temperature will be cooled during ramming. Note: only a cooldown command and fan activation are triggered, reaching the target temperature is not guaranteed. 0 means disabled."
-msgstr "為防止溢料,預沖刷過程中噴嘴溫度會降低。注意:僅觸發冷卻指令並啟動風扇,不保證達到目標溫度。0 表示停用。"
+msgstr "為防止漏料,尖端成型過程中會降低噴嘴溫度。注意:僅觸發冷卻指令並啟動風扇,不保證達到目標溫度。0 表示停用。"
+# AI Translated
msgid "The maximum volumetric speed for ramming before a hotend change, where -1 means using the maximum volumetric speed."
-msgstr "熱端更換前的最大預沖刷體積速度,其中 -1 表示使用最大體積速度。"
+msgstr "更換熱端前尖端成型的最大體積流量,-1 表示使用最大體積流量。"
msgid "length when change hotend"
msgstr "換熱端時回抽量"
+# AI Translated
msgid "When this retraction value is modified, it will be used as the amount of filament retracted inside the hotend before changing hotends."
-msgstr "當修改此回抽數值時,將用於熱端內在更換熱端前回抽的耗材量。"
+msgstr "修改此回抽值後,會將其作為更換熱端前在熱端內回抽的線材量。"
# AI Translated
msgid "Support fast purge mode"
@@ -18683,24 +21684,27 @@ msgstr "支援快速清理模式"
# AI Translated
msgid "Whether this printer supports fast purge mode with optimized temperature and multiplier."
-msgstr "此印表機是否支援具備最佳化溫度與倍率的快速清理模式。"
+msgstr "此列印裝置是否支援具備最佳化溫度與乘數的快速清理模式。"
# AI Translated
msgid "Filament change"
-msgstr "更換線材"
+msgstr "換料"
# AI Translated
+# Needs human review: Prime volume is rendered 清理量 in this catalog (as in BambuStudio zh_TW); confirm 'prime the extruder' = 清理 rather than 預擠出 in this setting group.
msgid "The volume of material required to prime the extruder on the tower, excluding a hotend change."
-msgstr "在塔上引導擠出機所需的材料體積,不包括更換熱端。"
+msgstr "在換料塔上清理擠出機所需的材料體積(不含更換熱端)。"
+# AI Translated
msgid "The volume of material required to prime the extruder for a hotend change on the tower."
-msgstr "換熱端所需的擦料塔上的清理量。"
+msgstr "更換熱端時,在換料塔上清理擠出機所需的材料體積。"
msgid "Preheat temperature delta"
msgstr "預熱溫度差"
+# AI Translated
msgid "Temperature delta applied during pre-heating before tool change."
-msgstr "工具切換前預熱期間套用的溫度差。"
+msgstr "換工具前預熱期間套用的溫度差。"
msgid "Detect narrow internal solid infills"
msgstr "識別狹窄內部實心填充"
@@ -18708,20 +21712,27 @@ msgstr "識別狹窄內部實心填充"
msgid "This option will auto-detect narrow internal solid infill areas. If enabled, the concentric pattern will be used for the area to speed up printing. Otherwise, the rectilinear pattern will be used by default."
msgstr "此選項可自動偵測狹窄的內部實心填充區域。啟用後,系統會採用同心圖案以提升列印速度;若未啟用,則預設使用直線圖案進行填充。"
+# AI Translated
msgid "invalid value "
-msgstr "無效值"
+msgstr "無效值 "
+# AI Translated
msgid "Invalid value when spiral vase mode is enabled: "
-msgstr "值於螺旋花瓶模式無效:"
+msgstr "啟用螺旋花瓶模式時的無效值: "
+# AI Translated
msgid "Bridge line width must not exceed nozzle diameter: "
-msgstr "橋接線寬不得超過噴嘴直徑:"
+msgstr "橋接線寬不得超過噴嘴直徑: "
+# AI Translated
msgid "too large line width "
-msgstr "線寬過大"
+msgstr "線寬過大 "
-msgid " not in range "
-msgstr " 不在合理的區間"
+# AI Translated
+#. TRN %1% is the current value, %2% and %3% the lowest and highest allowed values.
+#, boost-format
+msgid "%1% not in range [%2%, %3%]"
+msgstr "%1% 不在範圍 [%2%, %3%] 內"
msgid "This exports the project as a 3MF file."
msgstr "將專案匯出為 3MF 檔案。"
@@ -18729,14 +21740,16 @@ msgstr "將專案匯出為 3MF 檔案。"
msgid "Export slicing data"
msgstr "匯出切片資料"
+# AI Translated
msgid "Export slicing data to a folder"
-msgstr "將列印切片資料匯出至指定資料夾。"
+msgstr "將切片資料匯出至資料夾"
msgid "Load slicing data"
msgstr "載入切片資料"
+# AI Translated
msgid "Load cached slicing data from directory."
-msgstr "從資料夾載入快取的切片資料"
+msgstr "從資料夾載入快取的切片資料。"
msgid "Export the objects as single STL."
msgstr "將所有物件匯出為單一 STL 檔案。"
@@ -18744,11 +21757,13 @@ msgstr "將所有物件匯出為單一 STL 檔案。"
msgid "Export multiple STLs"
msgstr "匯出為多個 STL 檔案"
+# AI Translated
msgid "Export the objects as multiple STLs to directory."
-msgstr "將物件匯出為多個 STL 檔案至指定資料夾"
+msgstr "將物件匯出為多個 STL 檔案至資料夾。"
+# AI Translated
msgid "Slice the plates: 0-all plates, i-plate i, others-invalid"
-msgstr "切片板選項:0 代表所有板,i 代表第 i 塊板,其餘則為無效輸入"
+msgstr "切片列印板:0 為所有列印板,i 為第 i 個列印板,其他值無效"
msgid "This shows command help."
msgstr "顯示指令使用說明。"
@@ -18762,26 +21777,31 @@ msgstr "更新 3MF 設定值至最新版本。"
msgid "Load default filaments"
msgstr "載入預設列印線材"
+# AI Translated
msgid "Load first filament as default for those not loaded."
-msgstr "將第一種線材設為預設,以供未載入的項目使用"
+msgstr "未載入線材的位置使用第一種線材作為預設線材。"
+# AI Translated
msgid "Minimum save"
-msgstr "最低儲存"
+msgstr "最小化儲存"
+# AI Translated
msgid "Export 3MF with minimum size."
-msgstr "匯出最小尺寸的 3mf。"
+msgstr "匯出最小尺寸的 3MF。"
msgid "mtcpp"
msgstr "mtcpp"
+# AI Translated
msgid "max triangle count per plate for slicing"
-msgstr "每片板的最大切片三角形數量。"
+msgstr "切片時每個列印板的最大三角形數量"
msgid "mstpp"
msgstr "mstpp"
+# AI Translated
msgid "max slicing time per plate in seconds"
-msgstr "每片板的最大切片時間(秒)。"
+msgstr "每個列印板的最大切片時間(秒)"
msgid "No check"
msgstr "不檢查"
@@ -18823,7 +21843,7 @@ msgstr "檢查繪製(JSON 輸出至 stdout)"
# AI Translated
msgid "Print a structured JSON summary of every painted layer (supports, seam, MMU color, fuzzy-skin) already stored on the loaded model — per-state facet count, surface area, and mesh-local bounding box — then exit. Machine-readable alternative to opening the paint gizmos in the GUI."
-msgstr "輸出已載入模型上已儲存的每個繪製圖層(支撐、接縫、MMU 顏色、絨毛表面)的結構化 JSON 摘要 — 每種狀態的面片數量、表面積與網格局部邊界框 — 然後結束。在圖形介面中開啟繪製工具的機器可讀替代方案。"
+msgstr "輸出已載入模型上已儲存的每個繪製圖層(支撐、接縫、MMU 顏色、絨毛表面)的結構化 JSON 摘要(每種狀態的面片數量、表面積與網格局部邊界框),然後結束。可作為在圖形介面中開啟繪製工具的機器可讀替代方案。"
msgid "Export Settings"
msgstr "匯出設定"
@@ -18832,44 +21852,63 @@ msgstr "匯出設定"
msgid "This exports settings to a file. Use - to write them to stdout."
msgstr "將設定匯出至檔案。使用 - 可將其寫入 stdout。"
+# AI Translated
msgid "Send progress to pipe"
-msgstr "將進度傳送到 Pipe"
+msgstr "將進度傳送到管道"
+# AI Translated
msgid "Send progress to pipe."
-msgstr "將進度傳送到 Pipe。"
+msgstr "將進度傳送到管道。"
+# AI Translated
msgid "Arrange Options"
-msgstr "佈局選項"
+msgstr "擺放選項"
+# AI Translated
msgid "Arrange options: 0-disable, 1-enable, others-auto"
-msgstr "佈局選項:0 代表停用,1 代表啟用,其他則為自動模式"
+msgstr "擺放選項:0 為停用,1 為啟用,其他值為自動"
msgid "Repetition count"
msgstr "重複次數"
+# AI Translated
msgid "Repetition count of the whole model."
-msgstr "整個模型的重複次數"
+msgstr "整個模型的重複次數。"
+# AI Translated
msgid "Ensure on bed"
-msgstr "確認在列印板上"
+msgstr "確保位於列印板上"
+# AI Translated
msgid "Lift the object above the bed when it is partially below. Disabled by default."
-msgstr "當物件部分位於列印板的下方時,將其提升到列印板的上方。預設情況下停用"
+msgstr "物件有部分位於列印板下方時,將其提升到列印板上方。預設停用。"
+# AI Translated
msgid "Arrange the supplied models in a plate and merge them in a single model in order to perform actions once."
-msgstr "將提供的模型排列在整個載台中,並將它們合併為一個模型,以便同時執行一次操作。"
+msgstr "將提供的模型擺放在一個列印板上,並合併為單一模型,以便一次執行操作。"
msgid "Convert Unit"
msgstr "單位轉換"
+# AI Translated
msgid "Convert the units of model."
-msgstr "變更模型的度量單位"
+msgstr "轉換模型的單位。"
+# AI Translated
msgid "Orient Options"
-msgstr "方向設定"
+msgstr "定向選項"
+# AI Translated
msgid "Orient options: 0-disable, 1-enable, others-auto"
-msgstr "方向設定:0-停用,1-啟用,其它-自動模式"
+msgstr "定向選項:0 為停用,1 為啟用,其他值為自動"
+
+# AI Translated
+msgid "Repair"
+msgstr "修復"
+
+# AI Translated
+msgid "Repair the meshes of the models as Fix Model does: close holes and cracks, orient them outward and remove self-intersections."
+msgstr "像「修復模型」一樣修復模型的網格:封閉孔洞與裂縫、使其朝向外側,並消除自相交。"
msgid "Rotation angle around the Z axis in degrees."
msgstr "繞 Z 軸的旋轉角度(以度為單位)。"
@@ -18877,101 +21916,118 @@ msgstr "繞 Z 軸的旋轉角度(以度為單位)。"
msgid "Rotate around X"
msgstr "繞 X 軸旋轉"
+# AI Translated
msgid "Rotation angle around the X axis in degrees."
-msgstr "繞 X 軸的旋轉角度(以度為單位)"
+msgstr "繞 X 軸的旋轉角度(以度為單位)。"
+# AI Translated
msgid "Rotate around Y"
-msgstr "繞 Y 旋轉"
+msgstr "繞 Y 軸旋轉"
msgid "Rotation angle around the Y axis in degrees."
msgstr "繞 Y 軸的旋轉角度(以度為單位)。"
# AI Translated
+# Needs human review: CLI option label (--ground-largest-face); check the wording reads right in the command-line help.
msgid "Ground largest face"
-msgstr "以最大面著床"
+msgstr "以最大面貼合列印板"
# AI Translated
msgid "Lay each object on the largest face of its convex hull and drop it onto the bed. Of equally large faces, the one already facing down is kept. Objects without a face large enough to rest on are left as they are. Transforms run in command-line order, so rotations given before this option are respected. --orient 1 runs after all transforms and replaces the orientation."
msgstr "將每個物件以其凸包的最大面放置,並落到列印板上。若有多個同樣大的面,則保留已經朝下的那一個。沒有足夠大可供放置的面的物件維持原狀。變換依命令列中的先後順序執行,因此在此選項之前給定的旋轉會被保留。--orient 1 在所有變換之後執行,並會取代定向。"
# AI Translated
+# Needs human review: CLI option label (--ground-face-normal); check the wording reads right in the command-line help.
msgid "Ground face by normal"
-msgstr "依法線以指定面著床"
+msgstr "依法線選面貼合列印板"
# AI Translated
msgid "Lay each object on the convex hull face whose outward normal is closest to the direction NX,NY,NZ and drop it onto the bed. The direction is in object coordinates, which include the rotations given before this option and match the plate axes unless the input file rotates the object. For example, 1,0,0 stands the object on its +X side. --orient 1 runs after all transforms and replaces the orientation."
msgstr "將每個物件以其凸包中外法線最接近方向 NX,NY,NZ 的面放置,並落到列印板上。該方向使用物件座標系,其中包含在此選項之前給定的旋轉;除非輸入檔案旋轉了該物件,否則它與列印板的座標軸一致。例如,1,0,0 會讓物件以 +X 面站立。--orient 1 在所有變換之後執行,並會取代定向。"
# AI Translated
+# Needs human review: CLI option label (--ground-face-point); check the wording reads right in the command-line help.
msgid "Ground face at point"
-msgstr "以指定點所在面著床"
+msgstr "以指定點所在面貼合列印板"
# AI Translated
msgid "Lay each object on the convex hull face that contains the point X,Y,Z and drop it onto the bed. The point is in object coordinates, which include the rotations given before this option; --inspect-mesh reports face centers in them. Objects without such a face are left as they are, and the run fails if no object has one. --orient 1 runs after all transforms and replaces the orientation."
msgstr "將每個物件以其凸包中包含點 X,Y,Z 的面放置,並落到列印板上。該點使用物件座標系,其中包含在此選項之前給定的旋轉;--inspect-mesh 回報的面中心也使用該座標系。沒有此類面的物件維持原狀;若所有物件都沒有此類面,則本次執行失敗。--orient 1 在所有變換之後執行,並會取代定向。"
+# AI Translated
msgid "Scale the model by a float factor."
-msgstr "依浮點數比例縮放模型"
+msgstr "依浮點數倍率縮放模型。"
msgid "Load General Settings"
msgstr "載入一般設定"
+# AI Translated
msgid "Load process/machine settings from the specified file."
-msgstr "從指定檔案載入參數與列印裝置設定"
+msgstr "從指定檔案載入列印參數/列印裝置設定。"
msgid "Load Filament Settings"
msgstr "載入列印線材設定"
+# AI Translated
msgid "Load filament settings from the specified file list."
-msgstr "從指定的檔案清單載入線材設定"
+msgstr "從指定的檔案清單載入線材設定。"
msgid "Skip Objects"
msgstr "略過物件"
+# AI Translated
msgid "Skip some objects in this print."
-msgstr "在本次列印中略過部分物件"
+msgstr "在本次列印中略過部分物件。"
msgid "Clone Objects"
msgstr "複製物件"
+# AI Translated
msgid "Clone objects in the load list."
-msgstr "複製載入清單中的物件"
+msgstr "複製載入清單中的物件。"
msgid "Load uptodate process/machine settings when using uptodate"
msgstr "使用最新版本時載入最新的列印參數與裝置設定"
+# AI Translated
msgid "load up-to-date process/machine settings from the specified file when using up-to-date"
-msgstr "當使用最新版本時,從指定檔案載入最新的參數與列印裝置設定"
+msgstr "當使用最新版本時,從指定檔案載入最新的列印參數與列印裝置設定"
msgid "Load uptodate filament settings when using uptodate"
msgstr "使用最新版本時載入最新的線材設定"
+# AI Translated
msgid "Load uptodate filament settings from the specified file when using uptodate."
-msgstr "當使用最新版本時,從指定檔案載入最新的列印線材設定"
+msgstr "當使用最新版本時,從指定檔案載入最新的線材設定。"
msgid "Downward machines check"
msgstr "向下相容列印裝置檢查"
+# AI Translated
msgid "If enabled, check whether current machine downward compatible with the machines in the list."
-msgstr "若啟用,則檢查目前列印裝置是否與列表中的列印裝置向下相容"
+msgstr "若啟用,則檢查目前列印裝置是否與清單中的列印裝置向下相容。"
msgid "Downward machines settings"
msgstr "向下相容列印裝置設定"
+# AI Translated
msgid "The machine settings list needs to do downward checking."
-msgstr "列印裝置設定清單需執行向下相容性偵測"
+msgstr "需要進行向下相容性檢查的列印裝置設定清單。"
msgid "Load assemble list"
msgstr "載入組裝清單"
+# AI Translated
msgid "Load assemble object list from config file."
-msgstr "從設定檔載入組裝物件清單"
+msgstr "從設定檔載入組裝物件清單。"
+# AI Translated
msgid "Data directory"
-msgstr "檔案目錄"
+msgstr "資料目錄"
+# AI Translated
msgid "Load and store settings at the given directory. This is useful for maintaining different profiles or including configurations from a network storage."
-msgstr "指定目錄用以載入或儲存設定檔。 這對於維護不同的設定檔或包含來自網路儲存的設定檔非常有用。"
+msgstr "在指定目錄載入及儲存設定。這有助於維護不同的設定檔,或納入來自網路儲存空間的設定。"
msgid "Output directory"
msgstr "輸出資料夾"
@@ -18979,6 +22035,14 @@ msgstr "輸出資料夾"
msgid "This is the output directory for exported files."
msgstr "用於存放匯出檔案的目錄。"
+# AI Translated
+msgid "Export statistics"
+msgstr "匯出統計資料"
+
+# AI Translated
+msgid "Write the statistics of each sliced plate as JSON, as plate_N.statistics.json next to its G-code in the output directory and inside the 3MF of --export-3mf: print time, filament and feature totals, and the same per layer and per object."
+msgstr "以 JSON 格式寫入每個已切片列印板的統計資料:寫入輸出目錄中與其 G-code 並列的 plate_N.statistics.json,以及 --export-3mf 匯出的 3MF 內。內容包括列印時間、線材與各走線類型的總量,以及按層和按物件的相同統計。"
+
msgid "Debug level"
msgstr "除錯模式等級"
@@ -18991,35 +22055,43 @@ msgstr "記錄檔"
msgid "Redirects debug logging to file.\n"
msgstr "將除錯記錄重新導向至檔案。\n"
+# AI Translated
msgid "Enable timelapse for print"
-msgstr "啟用列印過程縮時錄影"
+msgstr "為列印啟用縮時攝影"
+# AI Translated
msgid "If enabled, this slicing will be considered using timelapse."
-msgstr "若啟用,此次切片將使用縮時錄影模式"
+msgstr "若啟用,此次切片將視為使用縮時攝影。"
msgid "Load custom G-code"
msgstr "載入自訂 G-code"
+# AI Translated
msgid "Load custom G-code from json."
-msgstr "從 json 載入自訂 G-code"
+msgstr "從 json 載入自訂 G-code。"
msgid "Load filament IDs"
msgstr "載入線材識別碼"
+# AI Translated
msgid "Load filament IDs for each object."
-msgstr "為每個物件載入線材識別碼"
+msgstr "為每個物件載入線材識別碼。"
+# AI Translated
msgid "Allow multiple colors on one plate"
-msgstr "允許同塊板上使用多色列印"
+msgstr "允許在同一列印板上使用多種顏色"
+# AI Translated
msgid "If enabled, Arrange will allow multiple colors on one plate."
-msgstr "若啟用,佈局將允許同一板上使用多色列印"
+msgstr "若啟用,自動擺放將允許在同一列印板上使用多種顏色。"
+# AI Translated
msgid "Allow rotation when arranging"
-msgstr "允許在排列時進行旋轉調整"
+msgstr "擺放時允許旋轉"
+# AI Translated
msgid "If enabled, Arrange will allow rotation when placing objects."
-msgstr "若啟用,物件排列時將允許旋轉調整"
+msgstr "若啟用,自動擺放在放置物件時將允許旋轉。"
# AI Translated
msgid "Align to Y axis when arranging"
@@ -19029,47 +22101,55 @@ msgstr "自動擺放時對齊 Y 軸"
msgid "If enabled, Arrange will turn each object so its long side runs along the Y axis before placing it. When not given, it is on for i3 printers and off for the others, as in the GUI."
msgstr "啟用後,自動擺放會先轉動每個物件,使其長邊沿 Y 軸方向,再進行擺放。未指定時,i3 列印裝置預設開啟,其他列印裝置則關閉,與圖形介面相同。"
+# AI Translated
msgid "Avoid extrusion calibrate region when arranging"
-msgstr "在排列物件時避開擠出校正區域"
+msgstr "擺放時避開擠出校正區域"
+# AI Translated
msgid "If enabled, Arrange will avoid extrusion calibrate region when placing objects."
-msgstr "若啟用,物件排列時將避開擠出校正區域"
+msgstr "若啟用,自動擺放在放置物件時將避開擠出校正區域。"
msgid "Skip modified G-code in 3MF"
msgstr "忽略 3MF 檔案內已修改的 G-code"
+# AI Translated
msgid "Skip the modified G-code in 3MF from printer or filament presets."
-msgstr "忽略 3MF 檔案內來自列印裝置或線材預設的已修改 G-code"
+msgstr "忽略 3MF 檔案內來自列印裝置或線材預設的已修改 G-code。"
msgid "MakerLab name"
msgstr "MakerLab 名稱"
+# AI Translated
msgid "MakerLab name to generate this 3MF."
-msgstr "產生此 3MF 檔案時所使用的 MakerLab 名稱"
+msgstr "產生此 3MF 檔案時所使用的 MakerLab 名稱。"
msgid "MakerLab version"
msgstr "MakerLab 版本"
+# AI Translated
msgid "MakerLab version to generate this 3MF."
-msgstr "產生此 3MF 檔案時所使用的 MakerLab 版本"
+msgstr "產生此 3MF 檔案時所使用的 MakerLab 版本。"
msgid "Metadata name list"
msgstr "中繼資料名稱清單"
+# AI Translated
msgid "Metadata name list added into 3MF."
-msgstr "新增至 3MF 檔案的中繼資料名稱清單"
+msgstr "新增至 3MF 檔案的中繼資料名稱清單。"
msgid "Metadata value list"
msgstr "中繼資料值清單"
+# AI Translated
msgid "Metadata value list added into 3MF."
-msgstr "新增至 3MF 檔案的中繼資料值清單"
+msgstr "新增至 3MF 檔案的中繼資料值清單。"
msgid "Allow 3MF with newer version to be sliced"
msgstr "允許切片較新版本的 3MF"
+# AI Translated
msgid "Allow 3MF with newer version to be sliced."
-msgstr "允許對較新版本的 3MF 進行切片處理"
+msgstr "允許切片較新版本的 3MF。"
msgid "Current Z-hop"
msgstr "目前 Z 抬升高度"
@@ -19080,20 +22160,24 @@ msgstr "包含在自訂 G-code 區塊開頭的 Z 抬升動作。"
msgid "Position of the extruder at the beginning of the custom G-code block. If the custom G-code travels somewhere else, it should write to this variable so OrcaSlicer knows where it travels from when it gets control back."
msgstr "擠出機在自訂 G-code 區塊開頭的位置。如果自訂 G-code 將擠出機移動到其他位置,應將該位置記錄到此變數中,以便 OrcaSlicer 在恢復控制時了解擠出機的移動起點。"
+# AI Translated
msgid "Retraction state at the beginning of the custom G-code block. If the custom G-code moves the extruder axis, it should write to this variable so OrcaSlicer de-retracts correctly when it gets control back."
-msgstr "自訂 G-code 區塊開始時的回抽狀態。如果自訂 G-code 移動了擠出軸,應將該狀態記錄到此變數中,以確保 OrcaSlicer 在恢復控制時能正確執行回抽恢復動作。"
+msgstr "自訂 G-code 區塊開始時的回抽狀態。如果自訂 G-code 移動了擠出軸,應將該狀態記錄到此變數中,以確保 OrcaSlicer 在恢復控制時能正確執行裝填回抽。"
+# AI Translated
msgid "Extra de-retraction"
-msgstr "額外返回抽"
+msgstr "額外裝填回抽"
+# AI Translated
msgid "Currently planned extra extruder priming after de-retraction."
-msgstr "目前計畫的額外擠出機加料,發生於回抽恢復後。"
+msgstr "目前計畫在裝填回抽後額外擠出的量。"
msgid "Absolute E position"
msgstr "絕對擠出值"
+# AI Translated
msgid "Current position of the extruder axis. Only used with absolute extruder addressing."
-msgstr "擠出機軸的目前位置。僅用於絕對擠出值。"
+msgstr "擠出機軸的目前位置。僅在使用絕對擠出模式時使用。"
msgid "Current extruder"
msgstr "目前使用的擠出機"
@@ -19104,8 +22188,9 @@ msgstr "目前使用的擠出機的索引,從 0 開始。"
msgid "Current object index"
msgstr "目前列印物件的索引"
+# AI Translated
msgid "Specific for sequential printing. Zero-based index of currently printed object."
-msgstr "特定於序列列印。目前列印物件的索引,從 0 開始。"
+msgstr "僅用於逐件列印。目前列印物件的索引,從 0 開始。"
msgid "Has wipe tower"
msgstr "有換料塔"
@@ -19125,11 +22210,13 @@ msgstr "初始工具頭"
msgid "Zero-based index of the first extruder used in the print. Same as initial_extruder."
msgstr "列印中使用的第一個擠出機的索引,從 0 開始。與 initial_extruder 相同。"
+# AI Translated
msgid "Is extruder used?"
-msgstr "擠出機是否被使用?"
+msgstr "是否使用擠出機?"
+# AI Translated
msgid "Vector of booleans stating whether a given extruder is used in the print."
-msgstr "包含布林值的向量,用於指示每個擠出機是否在列印過程中被啟用。"
+msgstr "布林值向量,表示指定的擠出機是否用於此次列印。"
msgid "Number of extruders"
msgstr "總擠出機數"
@@ -19137,23 +22224,80 @@ msgstr "總擠出機數"
msgid "Total number of extruders, regardless of whether they are used in the current print."
msgstr "總擠出機數,無論是否用於列印。"
+# AI Translated
msgid "Has single extruder MM priming"
-msgstr "單擠出機多材料預熱"
+msgstr "有單擠出機多材料預擠出"
+# AI Translated
msgid "Are the extra multi-material priming regions used in this print?"
-msgstr "這次列印是否使用了額外的多材料準備區域?"
+msgstr "此次列印是否使用了額外的多材料預擠出區域?"
+
+# AI Translated
+msgid "Initial no support extruder"
+msgstr "初始無支撐擠出機"
+
+# AI Translated
+msgid "Zero-based index of the first extruder used for printing without support. Same as initial_no_support_tool."
+msgstr "列印無支撐部分時使用的第一個擠出機的索引,從 0 開始。與 initial_no_support_tool 相同。"
+
+# AI Translated
+# Needs human review: 'Head wrap detect zone' rendered as nozzle-wrap detection zone, matching the existing 'nozzle wrapped by filament' detection strings; confirm.
+msgid "In head wrap detect zone"
+msgstr "位於噴嘴包覆偵測區域內"
+
+# AI Translated
+# Needs human review: 'Head wrap zone' rendered as nozzle-wrap detection zone, matching the existing nozzle-wrap detection strings; confirm.
+msgid "Indicates if the first layer overlaps with the head wrap zone."
+msgstr "表示首層是否與噴嘴包覆偵測區域重疊。"
+
+# AI Translated
+msgid "Current bed type"
+msgstr "目前列印板類型"
+
+# AI Translated
+# Needs human review: The quoted plate names are literal placeholder values users compare in G-code conditions, so they stay in English; confirm the values are not localized.
+msgid "Name of the currently selected bed plate type (e.g. 'Textured PEI Plate', 'Smooth High Temp Plate')."
+msgstr "目前所選列印板類型的名稱(例如 'Textured PEI Plate'、'Smooth High Temp Plate')。"
+
+# AI Translated
+msgid "IDEX/IQEX active mode"
+msgstr "IDEX/IQEX 使用中模式"
+
+# AI Translated
+# Needs human review: The quoted mode names are literal placeholder values and stay in English.
+msgid "Name of the active IDEX/IQEX parallel print mode for this plate (e.g. 'primary', 'mirror', 'copy'). Empty string if IDEX/IQEX is not enabled."
+msgstr "此列印板使用中的 IDEX/IQEX 並行列印模式名稱(例如 'primary'、'mirror'、'copy')。若未啟用 IDEX/IQEX,則為空字串。"
+
+# AI Translated
+msgid "IDEX/IQEX active mode index"
+msgstr "IDEX/IQEX 使用中模式索引"
+
+# AI Translated
+msgid "Zero-based index of the active IDEX/IQEX parallel print mode within imex_mode_names."
+msgstr "使用中的 IDEX/IQEX 並行列印模式在 imex_mode_names 中的索引,從 0 開始。"
+
+# AI Translated
+msgid "IDEX/IQEX active mode G-code"
+msgstr "IDEX/IQEX 使用中模式 G-code"
+
+# AI Translated
+msgid "The raw mode G-code template for the active IDEX/IQEX parallel print mode, after placeholder evaluation. Globals defined here flow into machine_start_gcode."
+msgstr "使用中的 IDEX/IQEX 並行列印模式的原始模式 G-code 範本(已完成占位符求值)。此處定義的全域變數會傳入 machine_start_gcode。"
msgid "Volume per extruder"
msgstr "各擠出機線材體積"
+# AI Translated
msgid "Total filament volume extruded per extruder during the entire print."
-msgstr "整個列印過程中,每個噴頭擠出的線材總體積。"
+msgstr "整個列印過程中,每個擠出機擠出的線材總體積。"
+# AI Translated
msgid "Total tool changes"
-msgstr "換色次數"
+msgstr "換工具總次數"
+# AI Translated
msgid "Number of tool changes during the print."
-msgstr "列印期間工具頭變更次數。"
+msgstr "列印期間的換工具次數。"
msgid "Total volume"
msgstr "總體積"
@@ -19164,14 +22308,16 @@ msgstr "列印總線材體積。"
msgid "Weight per extruder"
msgstr "各擠出機擠出總重"
+# AI Translated
msgid "Weight per extruder extruded during the entire print. Calculated from filament_density value in Filament Settings."
-msgstr "各擠出機擠出總重,依據線材密度計算。"
+msgstr "整個列印過程中各擠出機擠出的重量。根據線材設定中的 filament_density 值計算。"
msgid "Total weight"
msgstr "總重"
+# AI Translated
msgid "Total weight of the print. Calculated from filament_density value in Filament Settings."
-msgstr "列印總重,依據線材密度計算。"
+msgstr "列印件的總重量。根據線材設定中的 filament_density 值計算。"
msgid "Total layer count"
msgstr "總層數"
@@ -19182,45 +22328,53 @@ msgstr "列印總層數。"
msgid "Print time (normal mode)"
msgstr "列印時間(正常模式)"
+# AI Translated
msgid "Estimated print time when printed in normal mode (i.e. not in silent mode). Same as print_time."
-msgstr "以正常模式(非靜音模式)列印時的預估列印時間。與 print_time 相同"
+msgstr "以正常模式(非靜音模式)列印時的預估列印時間。與 print_time 相同。"
+# AI Translated
msgid "Estimated print time when printed in normal mode (i.e. not in silent mode). Same as normal_print_time."
-msgstr "以正常模式(非靜音模式)列印時的預估列印時間。與 normal_print_time 相同"
+msgstr "以正常模式(非靜音模式)列印時的預估列印時間。與 normal_print_time 相同。"
msgid "Print time (silent mode)"
msgstr "列印時間(靜音模式)"
+# AI Translated
msgid "Estimated print time when printed in silent mode."
-msgstr "以靜音模式列印時的預估列印時間"
+msgstr "以靜音模式列印時的預估列印時間。"
+# AI Translated
msgid "Total cost of all material used in the print. Calculated from filament_cost value in Filament Settings."
-msgstr "列印所用全部材料的總成本。根據線材設定中的 filament_cost 值計算"
+msgstr "列印所用全部材料的總成本。根據線材設定中的 filament_cost 值計算。"
msgid "Total wipe tower cost"
msgstr "換料塔總成本"
+# AI Translated
msgid "Total cost of the material wasted on the wipe tower. Calculated from filament_cost value in Filament Settings."
-msgstr "換料塔上浪費材料的總成本。根據線材設定中的 filament_cost 值計算"
+msgstr "換料塔上浪費材料的總成本。根據線材設定中的 filament_cost 值計算。"
msgid "Wipe tower volume"
msgstr "換料塔體積"
+# AI Translated
msgid "Total filament volume extruded on the wipe tower."
-msgstr "換料塔上擠出的線材總體積"
+msgstr "換料塔上擠出的線材總體積。"
msgid "Used filament"
msgstr "使用的線材"
+# AI Translated
msgid "Total length of filament used in the print."
-msgstr "列印所使用的線材總長度"
+msgstr "列印所使用的線材總長度。"
# AI Translated
msgid "Print time (total seconds)"
msgstr "列印時間(總秒數)"
+# AI Translated
msgid "Total estimated print time in seconds. Replaced with actual value during post-processing."
-msgstr "預估列印總時間(秒)。後處理時將以實際值取代"
+msgstr "預估列印總時間(秒)。後處理時將以實際值取代。"
# AI Translated
msgid "Print time (days component)"
@@ -19257,8 +22411,9 @@ msgstr "預估列印時間的秒數部分(正常模式)。後處理時將以
msgid "Filament length (meters)"
msgstr "線材長度(公尺)"
+# AI Translated
msgid "Total filament length used in meters. Replaced with actual value during post-processing."
-msgstr "使用的線材總長度(公尺)。後處理時將以實際值取代"
+msgstr "使用的線材總長度(公尺)。後處理時將以實際值取代。"
msgid "Number of objects"
msgstr "物件數量"
@@ -19285,8 +22440,21 @@ msgstr ""
msgid "Input filename without extension"
msgstr "輸入檔名(不含副檔名)"
+# AI Translated
msgid "Source filename of the first object, without extension."
-msgstr "第一個物件的原始檔名(不含副檔名)"
+msgstr "第一個物件的原始檔名(不含副檔名)。"
+
+# AI Translated
+msgid "Full input filename"
+msgstr "完整輸入檔名"
+
+# AI Translated
+msgid "Source filename of the first object."
+msgstr "第一個物件的原始檔名。"
+
+# AI Translated
+msgid "Name of the plate sliced."
+msgstr "已切片列印板的名稱。"
msgid "The vector has two elements: X and Y coordinate of the point. Values in mm."
msgstr "此向量包含兩個元素:點的 X 和 Y 座標,單位為 mm。"
@@ -19294,29 +22462,94 @@ msgstr "此向量包含兩個元素:點的 X 和 Y 座標,單位為 mm。"
msgid "The vector has two elements: X and Y dimension of the bounding box. Values in mm."
msgstr "此向量包含兩個元素:邊界框的 X 和 Y 尺寸,單位為 mm。"
+# AI Translated
msgid "First layer convex hull"
-msgstr "第一層凸包"
+msgstr "首層凸包"
+# AI Translated
msgid "Vector of points of the first layer convex hull. Each element has the following format:'[x, y]' (x and y are floating-point numbers in mm)."
-msgstr "第一層凸包的點向量。每個元素格式為:'[x, y]'(x 和 y 是以mm為單位的實數)。"
+msgstr "首層凸包的點向量。每個元素的格式為:'[x, y]'(x 和 y 是以 mm 為單位的浮點數)。"
+# AI Translated
msgid "Bottom-left corner of the first layer bounding box"
-msgstr "第一層邊界左下角"
+msgstr "首層邊界框左下角"
+# AI Translated
msgid "Top-right corner of the first layer bounding box"
-msgstr "第一層邊界右上角"
+msgstr "首層邊界框右上角"
+# AI Translated
msgid "Size of the first layer bounding box"
-msgstr "第一層邊界大小"
+msgstr "首層邊界框大小"
+# AI Translated
msgid "Bottom-left corner of print bed bounding box"
-msgstr "列印平台邊界左下角"
+msgstr "列印平台邊界框左下角"
+# AI Translated
msgid "Top-right corner of print bed bounding box"
-msgstr "列印平台邊界右上角"
+msgstr "列印平台邊界框右上角"
+# AI Translated
msgid "Size of the print bed bounding box"
-msgstr "列印平台邊界大小"
+msgstr "列印平台邊界框大小"
+
+# AI Translated
+msgid "First layer center without wipe tower"
+msgstr "不含換料塔的首層中心"
+
+# AI Translated
+msgid "Height of the first layer."
+msgstr "首層的高度。"
+
+# AI Translated
+# Needs human review: Uses 熱床溫度 (the catalog label for bed temperature) instead of the glossary 列印板; confirm which to use.
+msgid "Vector of bed temperatures for each extruder/filament."
+msgstr "每個擠出機/線材的熱床溫度向量。"
+
+# AI Translated
+# Needs human review: Uses 熱床溫度 (the catalog label for bed temperature) instead of the glossary 列印板; confirm which to use.
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as first_layer_bed_temperature."
+msgstr "每個擠出機/線材的首層熱床溫度向量,與 first_layer_bed_temperature 的值相同。"
+
+# AI Translated
+# Needs human review: Uses 熱床溫度 (the catalog label for bed temperature) instead of the glossary 列印板; confirm which to use.
+msgid "First layer bed temperature (initial extruder)"
+msgstr "首層熱床溫度(初始擠出機)"
+
+# AI Translated
+# Needs human review: Uses 熱床溫度 (the catalog label for bed temperature) instead of the glossary 列印板; confirm which to use.
+msgid "First layer bed temperature for the initial extruder. Same as bed_temperature_initial_layer[initial_extruder]"
+msgstr "初始擠出機的首層熱床溫度,與 bed_temperature_initial_layer[initial_extruder] 相同"
+
+# AI Translated
+msgid "Vector of chamber temperatures for each extruder/filament."
+msgstr "每個擠出機/線材的腔體溫度向量。"
+
+# AI Translated
+msgid "Vector of minimal chamber temperatures for each extruder/filament."
+msgstr "每個擠出機/線材的最低腔體溫度向量。"
+
+# AI Translated
+msgid "Overall chamber temperature"
+msgstr "整體腔體溫度"
+
+# AI Translated
+msgid "Overall chamber temperature. This value is the maximum chamber temperature of any extruder/filament used."
+msgstr "整體腔體溫度。此值為所用各擠出機/線材中最高的腔體溫度。"
+
+# AI Translated
+# Needs human review: Uses 熱床溫度 (the catalog label for bed temperature) instead of the glossary 列印板; confirm which to use.
+msgid "Vector of first layer bed temperatures for each extruder/filament. Provides the same value as bed_temperature_initial_layer."
+msgstr "每個擠出機/線材的首層熱床溫度向量,與 bed_temperature_initial_layer 的值相同。"
+
+# AI Translated
+msgid "First layer temperature"
+msgstr "首層溫度"
+
+# AI Translated
+msgid "Vector of first layer temperatures for each extruder/filament."
+msgstr "每個擠出機/線材的首層溫度向量。"
msgid "Timestamp"
msgstr "時間戳記"
@@ -19354,23 +22587,29 @@ msgstr "列印裝置預設名稱"
msgid "Name of the printer preset used for slicing."
msgstr "用於切片的列印裝置預設名稱。"
+# AI Translated
msgid "Physical printer name"
-msgstr "列印裝置實際名稱"
+msgstr "實體列印裝置名稱"
+# AI Translated
msgid "Name of the physical printer used for slicing."
-msgstr "用於切片的印表裝置名稱。"
+msgstr "用於切片的實體列印裝置名稱。"
+# AI Translated
msgid "Layer number"
-msgstr "層數"
+msgstr "層編號"
-msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
-msgstr "當層數 (第一層為一)"
+# AI Translated
+msgid "Index of the current layer. Zero-based (i.e. first layer is number 0), except in extrusion role change G-code, where it is one-based."
+msgstr "目前層的索引。從 0 開始(即首層為 0),但在變更擠出類型的 G-code 中從 1 開始。"
+# AI Translated
msgid "Layer Z"
-msgstr "層 z 高"
+msgstr "層 Z 高度"
+# AI Translated
msgid "Height of the current layer above the print bed, measured to the top of the layer."
-msgstr "目前這一層距離熱床的高度,從層頂開始計算。"
+msgstr "目前層在熱床上方的高度,量至該層頂部。"
msgid "Maximal layer Z"
msgstr "層的最大 Z 軸高度"
@@ -19384,11 +22623,258 @@ msgstr "線材擠出機識別碼"
msgid "The current extruder ID. The same as current_extruder."
msgstr "目前的擠出機識別碼,與 current_extruder 一致。"
+# AI Translated
+msgid "Previous extruder"
+msgstr "上一個擠出機"
+
+# AI Translated
+msgid "Index of the extruder that is being unloaded. The index is zero based (first extruder has index 0)."
+msgstr "正在退出線材的擠出機索引,從 0 開始(第一個擠出機的索引為 0)。"
+
+# AI Translated
+msgid "Next extruder"
+msgstr "下一個擠出機"
+
+# AI Translated
+msgid "Index of the extruder that is being loaded. The index is zero based (first extruder has index 0)."
+msgstr "正在載入線材的擠出機索引,從 0 開始(第一個擠出機的索引為 0)。"
+
+# AI Translated
+msgid "Relative e-axis"
+msgstr "相對 E 軸"
+
+# AI Translated
+msgid "Indicates if relative positioning is being used."
+msgstr "表示是否使用相對定位。"
+
+# AI Translated
+msgid "Toolchange count"
+msgstr "換工具次數"
+
+# AI Translated
+msgid "The number of toolchanges throughout the print."
+msgstr "整個列印過程中的換工具次數。"
+
+# AI Translated
+msgid "Old retract length"
+msgstr "舊回抽長度"
+
+# AI Translated
+msgid "The retraction length of the previous filament."
+msgstr "前一個線材的回抽長度。"
+
+# AI Translated
+msgid "New retract length"
+msgstr "新回抽長度"
+
+# AI Translated
+msgid "The retraction length of the new filament."
+msgstr "新線材的回抽長度。"
+
+# AI Translated
+msgid "Old retract length toolchange"
+msgstr "舊回抽長度(換工具)"
+
+# AI Translated
+msgid "The toolchange retraction length of the previous filament."
+msgstr "前一個線材的換工具回抽長度。"
+
+# AI Translated
+msgid "New retract length toolchange"
+msgstr "新回抽長度(換工具)"
+
+# AI Translated
+msgid "The toolchange retraction length of the new filament."
+msgstr "新線材的換工具回抽長度。"
+
+# AI Translated
+msgid "Old filament temp"
+msgstr "舊線材溫度"
+
+# AI Translated
+msgid "The old filament temp."
+msgstr "舊線材的溫度。"
+
+# AI Translated
+msgid "New filament temp"
+msgstr "新線材溫度"
+
+# AI Translated
+msgid "The new filament temp."
+msgstr "新線材的溫度。"
+
+# AI Translated
+msgid "X after toolchange"
+msgstr "換工具後的 X"
+
+# AI Translated
+msgid "The X pos after toolchange."
+msgstr "換工具後的 X 位置。"
+
+# AI Translated
+msgid "Y after toolchange"
+msgstr "換工具後的 Y"
+
+# AI Translated
+msgid "The Y pos after toolchange."
+msgstr "換工具後的 Y 位置。"
+
+# AI Translated
+msgid "Z after toolchange"
+msgstr "換工具後的 Z"
+
+# AI Translated
+msgid "The Z pos after toolchange."
+msgstr "換工具後的 Z 位置。"
+
+# AI Translated
+msgid "First flush volume"
+msgstr "第一個清理體積"
+
+# AI Translated
+msgid "The first flush volume."
+msgstr "第一個清理體積。"
+
+# AI Translated
+msgid "Second flush volume"
+msgstr "第二個清理體積"
+
+# AI Translated
+msgid "The second flush volume."
+msgstr "第二個清理體積。"
+
+# AI Translated
+msgid "Old filament e feedrate"
+msgstr "舊線材 E 進給速率"
+
+# AI Translated
+msgid "The old filament extruder feedrate."
+msgstr "舊線材的擠出機進給速率。"
+
+# AI Translated
+msgid "New filament e feedrate"
+msgstr "新線材 E 進給速率"
+
+# AI Translated
+msgid "The new filament extruder feedrate."
+msgstr "新線材的擠出機進給速率。"
+
+# AI Translated
+msgid "Travel point 1 X"
+msgstr "空駛點 1 X"
+
+# AI Translated
+msgid "The travel point 1 X."
+msgstr "空駛點 1 的 X。"
+
+# AI Translated
+msgid "Travel point 1 Y"
+msgstr "空駛點 1 Y"
+
+# AI Translated
+msgid "The travel point 1 Y."
+msgstr "空駛點 1 的 Y。"
+
+# AI Translated
+msgid "Travel point 2 X"
+msgstr "空駛點 2 X"
+
+# AI Translated
+msgid "The travel point 2 X."
+msgstr "空駛點 2 的 X。"
+
+# AI Translated
+msgid "Travel point 2 Y"
+msgstr "空駛點 2 Y"
+
+# AI Translated
+msgid "The travel point 2 Y."
+msgstr "空駛點 2 的 Y。"
+
+# AI Translated
+msgid "Travel point 3 X"
+msgstr "空駛點 3 X"
+
+# AI Translated
+msgid "The travel point 3 X."
+msgstr "空駛點 3 的 X。"
+
+# AI Translated
+msgid "Travel point 3 Y"
+msgstr "空駛點 3 Y"
+
+# AI Translated
+msgid "The travel point 3 Y."
+msgstr "空駛點 3 的 Y。"
+
+# AI Translated
+msgid "Flush Length 1"
+msgstr "清理長度 1"
+
+# AI Translated
+msgid "The first flush length."
+msgstr "第一個清理長度。"
+
+# AI Translated
+msgid "Flush Length 2"
+msgstr "清理長度 2"
+
+# AI Translated
+msgid "The second flush length."
+msgstr "第二個清理長度。"
+
+# AI Translated
+msgid "Flush Length 3"
+msgstr "清理長度 3"
+
+# AI Translated
+msgid "The third flush length."
+msgstr "第三個清理長度。"
+
+# AI Translated
+msgid "Flush Length 4"
+msgstr "清理長度 4"
+
+# AI Translated
+msgid "The fourth flush length."
+msgstr "第四個清理長度。"
+
+# AI Translated
+msgid "Extrusion role"
+msgstr "擠出類型"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The new extrusion role/type that is going to be used\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"即將使用的新擠出類型\n"
+"可能的值:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
+# AI Translated
+msgid "Last extrusion role"
+msgstr "上一個擠出類型"
+
+# AI Translated
+#. TRN The quoted values are G-code identifiers; keep them in English.
+msgid ""
+"The previously used extrusion role/type\n"
+"Possible values:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+msgstr ""
+"先前使用的擠出類型\n"
+"可能的值:\n"
+"[\"Perimeter\", \"ExternalPerimeter\", \"OverhangPerimeter\", \"InternalInfill\", \"SolidInfill\", \"TopSolidInfill\", \"BottomSurface\", \"BridgeInfill\", \"GapFill\", \"Ironing\", \"Skirt\", \"Brim\", \"SupportMaterial\", \"SupportMaterialInterface\", \"SupportTransition\", \"WipeTower\", \"Mixed\"]"
+
msgid "Error in zip archive"
msgstr "zip 檔案中存在錯誤"
+# AI Translated
msgid "Generating walls"
-msgstr "產生內外牆"
+msgstr "正在產生牆"
msgid "Generating infill regions"
msgstr "正在產生填充區域"
@@ -19396,24 +22882,32 @@ msgstr "正在產生填充區域"
msgid "Generating infill toolpath"
msgstr "正在產生填充走線"
+# AI Translated
+#. TRN Slicing status: layers done, total layers, percentage done.
+#, c-format, boost-format
+msgid "Z contoured layer %d/%d (%d%%)"
+msgstr "Z 輪廓處理層 %d/%d(%d%%)"
+
msgid "Detect overhangs for auto-lift"
msgstr "偵測懸空區域為自動抬升做準備"
msgid "Checking support necessity"
msgstr "正在檢查支撐必要性"
-msgid "floating regions"
-msgstr "浮空區域"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has floating regions. Please re-orient the object or enable support generation."
+msgstr "物件 %1% 似乎有浮空區域。請重新調整物件的方向或啟用支撐。"
-msgid "floating cantilever"
-msgstr "浮空懸臂"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has a floating cantilever. Please re-orient the object or enable support generation."
+msgstr "物件 %1% 似乎有浮空懸臂。請重新調整物件的方向或啟用支撐。"
-msgid "large overhangs"
-msgstr "大面積懸空"
-
-#, c-format, boost-format
-msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
-msgstr "物件 %s 似乎有 %s。請重新調整物件的方向或啟用支撐。"
+# AI Translated
+#, boost-format
+msgid "It seems object %1% has large overhangs. Please re-orient the object or enable support generation."
+msgstr "物件 %1% 似乎有大面積懸空。請重新調整物件的方向或啟用支撐。"
msgid "Generating support"
msgstr "正在產生支撐"
@@ -19424,53 +22918,456 @@ msgstr "正在最佳化走線"
msgid "Slicing mesh"
msgstr "正在切片網格"
-msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
-msgstr "未偵測到任何列印層。請檢查您的 STL 檔案是否需要修復,或者確認其尺寸與厚度,然後再重試。\n"
+# AI Translated
+msgid "No layers were detected. You might want to repair the model or check its size or thickness and retry.\n"
+msgstr "未偵測到任何列印層。請修復模型,或檢查其尺寸與厚度後再重試。\n"
+# AI Translated
msgid ""
"An object's XY size compensation will not be used because it is also color-painted.\n"
"XY Size compensation cannot be combined with color-painting."
msgstr ""
-"物件的 XY 尺寸補償不會生效,因為在此物件上做過上色操作。\n"
-"XY 尺寸補償不能與上色功能一起使用。"
+"物件的 XY 尺寸補償不會生效,因為此物件也進行了顏色繪製。\n"
+"XY 尺寸補償不能與顏色繪製同時使用。"
+# AI Translated
msgid ""
"An object has enabled XY Size compensation which will not be used because it is also fuzzy skin painted.\n"
"XY Size compensation cannot be combined with fuzzy skin painting."
msgstr ""
-"物件已啟用 XY 尺寸補償,但不會使用該補償,因為它也是模糊皮膚繪製的。\n"
-"XY 尺寸補償不能與模糊皮膚繪製結合使用。"
+"物件已啟用 XY 尺寸補償,但不會套用,因為它也進行了絨毛表面繪製。\n"
+"XY 尺寸補償不能與絨毛表面繪製同時使用。"
msgid "Object name"
msgstr "物件名稱"
+# AI Translated
+msgid "Cannot apply unary minus operator."
+msgstr "無法套用一元負號運算子。"
+
+# AI Translated
+msgid "Cannot convert to integer."
+msgstr "無法轉換為整數。"
+
+# AI Translated
+msgid "Cannot round a non-numeric value."
+msgstr "無法對非數值進行四捨五入。"
+
+# AI Translated
+msgid "Cannot floor a non-numeric value."
+msgstr "無法對非數值進行無條件捨去。"
+
+# AI Translated
+msgid "Cannot ceil a non-numeric value."
+msgstr "無法對非數值進行無條件進位。"
+
+# AI Translated
+msgid "Cannot apply a not operator."
+msgstr "無法套用 not 運算子。"
+
+# AI Translated
+msgid "Cannot add non-numeric types."
+msgstr "無法對非數值型別進行加法。"
+
+# AI Translated
+msgid "Cannot subtract non-numeric types."
+msgstr "無法對非數值型別進行減法。"
+
+# AI Translated
+msgid "Cannot multiply with non-numeric type."
+msgstr "無法與非數值型別相乘。"
+
+# AI Translated
+msgid "Cannot divide a non-numeric type."
+msgstr "無法將非數值型別作為被除數。"
+
+# AI Translated
+msgid "Cannot divide with a non-numeric type."
+msgstr "無法以非數值型別作為除數。"
+
+# AI Translated
+msgid "Division by zero"
+msgstr "除以零"
+
+# AI Translated
+msgid "Not a boolean expression"
+msgstr "不是布林運算式"
+
+# AI Translated
+msgid "Cannot compare the types."
+msgstr "無法比較這些型別。"
+
+# AI Translated
+msgid "Not a numeric type."
+msgstr "不是數值型別。"
+
+# AI Translated
+msgid "digits: second parameter must be integer"
+msgstr "digits:第二個參數必須是整數"
+
+# AI Translated
+msgid "digits: third parameter must be integer"
+msgstr "digits:第三個參數必須是整數"
+
+# AI Translated
+msgid "Left hand side of a regex match must be a string."
+msgstr "正規表示式比對的左側必須是字串。"
+
+# AI Translated
+#, boost-format
+msgid "Regular expression compilation failed: %1%"
+msgstr "正規表示式編譯失敗:%1%"
+
+# AI Translated
+msgid "regex_replace() first parameter must be a string."
+msgstr "regex_replace() 的第一個參數必須是字串。"
+
+# AI Translated
+msgid "one_of(): First parameter (the string to match against) has to be a string value"
+msgstr "one_of():第一個參數(要比對的字串)必須是字串值"
+
+# AI Translated
+msgid "one_of(): Pattern has to be a string value"
+msgstr "one_of():模式必須是字串值"
+
+# AI Translated
+msgid "Regular expression compilation failed"
+msgstr "正規表示式編譯失敗"
+
+# AI Translated
+msgid "Cannot apply logical operation to non-boolean operands."
+msgstr "無法對非布林運算元套用邏輯運算。"
+
+# AI Translated
+msgid "Trying to index a scalar variable"
+msgstr "嘗試對純量變數進行索引"
+
+# AI Translated
+msgid "Invalid vector index"
+msgstr "無效的向量索引"
+
+# AI Translated
+msgid "Variable does not exist (in an inactive branch)"
+msgstr "變數不存在(位於未啟用的分支中)"
+
+# AI Translated
+msgid "Variable does not exist"
+msgstr "變數不存在"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) optional variable"
+msgstr "嘗試參照未定義(nil)的選用變數"
+
+# AI Translated
+msgid "Indexing an empty vector variable"
+msgstr "對空的向量變數進行索引"
+
+# AI Translated
+msgid "Trying to reference an undefined (nil) element of vector of optional values"
+msgstr "嘗試參照選用值向量中未定義(nil)的元素"
+
+# AI Translated
+msgid "Indexing variable has to be integer"
+msgstr "索引變數必須是整數"
+
+# AI Translated
+msgid "Negative vector index"
+msgstr "向量索引為負值"
+
+# AI Translated
+msgid "Not a variable name"
+msgstr "不是變數名稱"
+
+# AI Translated
+msgid "Not a variable name (in an inactive branch)"
+msgstr "不是變數名稱(位於未啟用的分支中)"
+
+# AI Translated
+msgid "FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies"
+msgstr "FloatOrPercent 變數無法解析「ratio_over」的相依項目"
+
+# AI Translated
+msgid "Unsupported scalar variable type"
+msgstr "不支援的純量變數型別"
+
+# AI Translated
+msgid "Referencing a vector variable when scalar is expected"
+msgstr "預期純量時卻參照了向量變數"
+
+# AI Translated
+msgid "Unsupported vector variable type"
+msgstr "不支援的向量變數型別"
+
+# AI Translated
+msgid "Cannot modify a read-only variable"
+msgstr "無法修改唯讀變數"
+
+# AI Translated
+msgid "Right side is not a numeric expression"
+msgstr "右側不是數值運算式"
+
+# AI Translated
+msgid "Expected number of elements to fill a vector with."
+msgstr "預期應給定用來填充向量的元素數量。"
+
+# AI Translated
+msgid "Negative number of elements specified."
+msgstr "指定的元素數量為負值。"
+
+# AI Translated
+msgid "Right side is not a boolean expression"
+msgstr "右側不是布林運算式"
+
+# AI Translated
+msgid "Unsupported output scalar variable type"
+msgstr "不支援的輸出純量變數型別"
+
+# AI Translated
+msgid "Referencing an output vector variable when scalar is expected"
+msgstr "預期純量時卻參照了輸出向量變數"
+
+# AI Translated
+msgid "Index out of range"
+msgstr "索引超出範圍"
+
+# AI Translated
+msgid "Unsupported output vector variable type"
+msgstr "不支援的輸出向量變數型別"
+
+# AI Translated
+msgid "Symbol is already defined in read-only system dictionary"
+msgstr "符號已在唯讀系統字典中定義"
+
+# AI Translated
+msgid "Symbol is already defined as system output variable"
+msgstr "符號已定義為系統輸出變數"
+
+# AI Translated
+msgid "Global variables are not available in this context"
+msgstr "此情境下無法使用全域變數"
+
+# AI Translated
+msgid "Variable name already defined in local scope"
+msgstr "變數名稱已在區域範圍中定義"
+
+# AI Translated
+msgid "Variable name already defined in global scope"
+msgstr "變數名稱已在全域範圍中定義"
+
+# AI Translated
+msgid "Cannot assign a scalar value to a vector variable."
+msgstr "無法將純量值指派給向量變數。"
+
+# AI Translated
+msgid "Cannot assign a vector value to a scalar variable."
+msgstr "無法將向量值指派給純量變數。"
+
+# AI Translated
+msgid "Cannot create vector variable from an empty initializer list, because its type cannot be deduced."
+msgstr "無法從空的初始化清單建立向量變數,因為無法推斷其型別。"
+
+# AI Translated
+msgid "Right side is not valid: Mixing numeric and boolean types."
+msgstr "右側無效:混用了數值與布林型別。"
+
+# AI Translated
+msgid "Cannot assign scalar to a vector"
+msgstr "無法將純量指派給向量"
+
+# AI Translated
+msgid "Some elements of the right hand side vector variable of optional values are undefined (nil)"
+msgstr "右側選用值向量變數的部分元素未定義(nil)"
+
+# AI Translated
+msgid "Left hand side is a float vector, while the right hand side is not."
+msgstr "左側是浮點數向量,右側卻不是。"
+
+# AI Translated
+msgid "Left hand side is an int vector, while the right hand side is not."
+msgstr "左側是整數向量,右側卻不是。"
+
+# AI Translated
+msgid "Left hand side is a string vector, while the right hand side is not."
+msgstr "左側是字串向量,右側卻不是。"
+
+# AI Translated
+msgid "Left hand side is a bool vector, while the right hand side is not."
+msgstr "左側是布林向量,右側卻不是。"
+
+# AI Translated
+msgid "Left hand side / right hand side vectors are not compatible."
+msgstr "左側/右側向量不相容。"
+
+# AI Translated
+msgid "Duplicating this type of vector variable is not supported"
+msgstr "不支援複製此類型的向量變數"
+
+# AI Translated
+msgid "parameter of empty() is not a vector variable"
+msgstr "empty() 的參數不是向量變數"
+
+# AI Translated
+msgid "parameter of size() is not a vector variable"
+msgstr "size() 的參數不是向量變數"
+
+# AI Translated
+msgid "Non-integer index is not allowed to address a vector variable."
+msgstr "不允許以非整數索引存取向量變數。"
+
+# AI Translated
+msgid "Random number generator not available in this context."
+msgstr "此情境下無法使用亂數產生器。"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%: %2%"
+msgstr "第 %1% 行發生剖析錯誤:%2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the name of a grammar rule.
+#, boost-format
+msgid "Parsing error at line %1%. Expecting tag %2%"
+msgstr "第 %1% 行發生剖析錯誤。預期標籤 %2%"
+
+# AI Translated
+#. TRN Custom G-code error. %1% is the line number, %2% the reason.
+#, boost-format
+msgid "Parsing error at line %1%. %2%"
+msgstr "第 %1% 行發生剖析錯誤。%2%"
+
+# AI Translated
+msgid "Interpolation value must be a number."
+msgstr "內插值必須是數字。"
+
+# AI Translated
+msgid "X value of a table point must be a number."
+msgstr "表格點的 X 值必須是數字。"
+
+# AI Translated
+msgid "Y value of a table point must be a number."
+msgstr "表格點的 Y 值必須是數字。"
+
+# AI Translated
+msgid "X coordinates of the table must be increasing"
+msgstr "表格的 X 座標必須遞增"
+
+# AI Translated
+msgid "Interpolation value is outside the table range"
+msgstr "內插值超出表格範圍"
+
+# AI Translated
+msgid "Unknown syntax error"
+msgstr "未知的語法錯誤"
+
+# AI Translated
+msgid "Invalid text."
+msgstr "無效的文字。"
+
+# AI Translated
+msgid "Invalid text block."
+msgstr "無效的文字區塊。"
+
+# AI Translated
+msgid "Invalid macro."
+msgstr "無效的巨集。"
+
+# AI Translated
+msgid "Not an {if}{else}{endif} macro."
+msgstr "不是 {if}{else}{endif} 巨集。"
+
+# AI Translated
+msgid "Not a {switch} macro."
+msgstr "不是 {switch} 巨集。"
+
+# AI Translated
+msgid "Expecting a legacy variable expansion format"
+msgstr "預期為舊版變數展開格式"
+
+# AI Translated
+msgid "Expecting an identifier."
+msgstr "預期為識別碼。"
+
+# AI Translated
+msgid "Expecting a conditional expression."
+msgstr "預期為條件運算式。"
+
+# AI Translated
+msgid "Expecting a boolean expression."
+msgstr "預期為布林運算式。"
+
+# AI Translated
+msgid "Expecting an expression."
+msgstr "預期為運算式。"
+
+# AI Translated
+msgid "Expecting a closing brace or an optional parameter."
+msgstr "預期為右大括號或選用參數。"
+
+# AI Translated
+msgid "Expecting a list of string patterns (simple text or regexp)"
+msgstr "預期為字串模式清單(純文字或正規表示式)"
+
+# AI Translated
+msgid "Expecting a variable reference."
+msgstr "預期為變數參照。"
+
+# AI Translated
+msgid "Expecting a variable name."
+msgstr "預期為變數名稱。"
+
+# AI Translated
+msgid "Expecting a regular expression."
+msgstr "預期為正規表示式。"
+
+# AI Translated
+msgid "Invalid utf8 sequence"
+msgstr "無效的 utf8 序列"
+
+# AI Translated
+msgid "Non-ASCII7 characters are only allowed inside text blocks and string literals, not inside code blocks."
+msgstr "非 ASCII7 字元僅允許出現在文字區塊和字串常值中,不可出現在程式碼區塊內。"
+
+# AI Translated
+msgid "Invalid escape sequence"
+msgstr "無效的跳脫序列"
+
msgid "Support: generate contact points"
msgstr "支撐:正在產生接觸點"
msgid "Loading of a model file failed."
msgstr "載入模型檔案失敗。"
+# AI Translated
msgid "Meshing of a model file failed or no valid shape."
-msgstr "模型檔案網格化失敗或沒有有效形狀"
+msgstr "模型檔案網格化失敗,或沒有有效形狀。"
+# AI Translated
msgid "The supplied file couldn't be read because it's empty."
-msgstr "無法讀取提供的檔案,因為該檔案為空"
+msgstr "無法讀取提供的檔案,因為檔案是空的。"
# AI Translated
msgid "The file format is incompatible and cannot be parsed."
msgstr "檔案格式不相容,無法解析。"
+# AI Translated
+msgid "Failed to convert asset to STL via ModelIO."
+msgstr "無法透過 ModelIO 將資源轉換為 STL。"
+
msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension."
msgstr "檔案格式未知。輸入的檔案必須是 .stl、.obj 或 .amf(.xml) 格式。"
+# AI Translated
msgid "Unknown file format: input file must have .3mf or .zip.amf extension."
-msgstr "未知的檔案格式。輸入檔案的副檔名必須為 .3mf 或 .zip .amf。"
+msgstr "未知的檔案格式。輸入檔案的副檔名必須為 .3mf 或 .zip.amf。"
+# AI Translated
msgid "load_obj: failed to parse"
-msgstr "載入物件:解析失敗"
+msgstr "load_obj:解析失敗"
+# AI Translated
msgid "load mtl in obj: failed to parse"
-msgstr "載入物件材質:解析失敗"
+msgstr "載入 OBJ 中的 MTL:解析失敗"
msgid "The file contains polygons with more than 4 vertices."
msgstr "該檔案包含超過 4 個頂點的多邊形。"
@@ -19499,8 +23396,9 @@ msgstr "自動校正"
msgid "We would use Lidar to read the calibration result"
msgstr "將使用雷射雷達來讀取校正結果"
+# AI Translated
msgid "Prev"
-msgstr "上一個"
+msgstr "上一步"
msgid "Recalibration"
msgstr "重新校正"
@@ -19508,14 +23406,12 @@ msgstr "重新校正"
msgid "Calibrate"
msgstr "校正"
-msgid "Finish"
-msgstr "完成"
-
msgid "How can I use calibration results?"
msgstr "如何使用校正結果?"
+# AI Translated
msgid "You could change the Flow Dynamics Calibration Factor in material editing"
-msgstr "您可以在線材編輯中更改流量動態校正因子"
+msgstr "您可以在線材編輯中更改動態流量校正係數"
msgid ""
"The current firmware version of the printer does not support calibration.\n"
@@ -19533,6 +23429,7 @@ msgstr "動態流量"
msgid "Max Volumetric Speed"
msgstr "最大體積流量"
+# AI Translated
#, c-format, boost-format
msgid ""
"Please input valid values:\n"
@@ -19545,7 +23442,7 @@ msgstr ""
"起始值:>= %.1f\n"
"終止值:<= %.1f\n"
"終止值:> 起始值\n"
-"步距:>= %.3f)"
+"步距:>= %.3f"
msgid "The name cannot be empty."
msgstr "名稱不能為空。"
@@ -19554,21 +23451,26 @@ msgstr "名稱不能為空。"
msgid "The selected preset: %s was not found."
msgstr "找不到所選的預設:%s。"
+# AI Translated
msgid "The name cannot be the same as the system preset name."
-msgstr "名稱不能與系統預設值名稱相同。"
+msgstr "名稱不能與系統預設名稱相同。"
+# AI Translated
msgid "The name is the same as another existing preset name"
-msgstr "該名稱與另一個現有預設值名稱相同"
+msgstr "該名稱與另一個現有預設名稱相同"
+# AI Translated
msgid "create new preset failed."
-msgstr "新增預設失敗。"
+msgstr "無法建立新預設。"
+# AI Translated
#, c-format, boost-format
msgid "Could not find parameter: %s."
-msgstr "找不到參數:%s"
+msgstr "找不到參數:%s。"
+# AI Translated
msgid "Are you sure to cancel the current calibration and return to the home page?"
-msgstr "您確認要取消目前的校正並返回首頁嗎?"
+msgstr "您確定要取消目前的校正並返回首頁嗎?"
msgid "No Printer Connected!"
msgstr "沒有連線列印裝置!"
@@ -19579,8 +23481,9 @@ msgstr "列印裝置尚未連線。"
msgid "Please select filament to calibrate."
msgstr "請選擇要校正的線材。"
+# AI Translated
msgid "The input value size must be 3."
-msgstr "輸入值必須為 3。"
+msgstr "輸入值的數量必須為 3。"
# AI Translated
msgid ""
@@ -19590,9 +23493,10 @@ msgstr ""
"此機型每個噴嘴最多只能儲存 16 條歷史記錄。您可以刪除現有記錄後再開始校正,或者選擇繼續校正,但無法新增新的校正記錄。\n"
"您確定要繼續校正嗎?"
+# AI Translated
#, c-format, boost-format
msgid "Only one of the results with the same name: %s will be saved. Are you sure you want to override the other results?"
-msgstr "僅儲存一個同名結果:%s。您確認要覆蓋其他結果嗎?"
+msgstr "同名結果只會儲存一個:%s。您確定要覆寫其他結果嗎?"
#, c-format, boost-format
msgid "There is already a previous calibration result with the same name: %s. Only one result with a name is saved. Are you sure you want to overwrite the previous result?"
@@ -19606,9 +23510,11 @@ msgstr ""
"在同一臺擠出機內,當線材類型、噴嘴直徑和噴嘴流量相同時,名稱(%s)必須是唯一的。\n"
"您確定要覆蓋歷史結果嗎?"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
-msgstr "此機型每個噴嘴只能儲存 %d 筆歷史記錄。此結果將不會被儲存。"
+msgid "This machine type can only hold %d historical result per nozzle. This result will not be saved."
+msgid_plural "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+msgstr[0] "此列印裝置型號每個噴嘴僅能儲存 %d 筆歷史結果。此結果將不會被儲存。"
msgid "Connecting to printer..."
msgstr "正在連線列印裝置..."
@@ -19616,8 +23522,9 @@ msgstr "正在連線列印裝置..."
msgid "The failed test result has been dropped."
msgstr "測試失敗的結果已被刪除。"
+# AI Translated
msgid "Flow Dynamics Calibration result has been saved to the printer."
-msgstr "動態流量校正的結果已儲存至列印裝置"
+msgstr "動態流量校正結果已儲存至列印裝置。"
msgid "Internal Error"
msgstr "內部錯誤"
@@ -19625,29 +23532,33 @@ msgstr "內部錯誤"
msgid "Please select at least one filament for calibration"
msgstr "請至少選擇一種線材進行校正"
+# AI Translated
msgid "Flow rate calibration result has been saved to preset."
-msgstr "流量比例校正結果已儲存到預設值"
+msgstr "流量比例校正結果已儲存至預設。"
+# AI Translated
msgid "Max volumetric speed calibration result has been saved to preset."
-msgstr "最大體積流量校正結果已儲存到預設值"
+msgstr "最大體積流量校正結果已儲存至預設。"
msgid "When do you need Flow Dynamics Calibration"
msgstr "在什麼情況下需要進行動態流量校正"
+# AI Translated
msgid ""
"We now have added the auto-calibration for different filaments, which is fully automated and the result will be saved into the printer for future use. You only need to do the calibration in the following limited cases:\n"
"1. If you introduce a new filament of different brands/models or the filament is damp;\n"
"2. If the nozzle is worn out or replaced with a new one;\n"
"3. If the max volumetric speed or print temperature is changed in the filament setting."
msgstr ""
-"我們現在新增了針對不同線材的自動校正,這是完全自動化的,結果將儲存到列印裝置中以供將來使用。僅在以下有限情況下才需要進行校正:\n"
-"1. 如果更換不同品牌/型號的新線材或線材受潮;\n"
-"2、噴嘴是否磨損或更換新噴嘴;\n"
-"3. 如果在線材設定中更改了最大體積流量或列印溫度。"
+"我們已新增針對不同線材的自動校正,過程完全自動化,結果會儲存到列印裝置中供日後使用。您只需在以下少數情況下進行校正:\n"
+"1. 使用不同品牌/型號的新線材,或線材受潮;\n"
+"2. 噴嘴磨損或更換新噴嘴;\n"
+"3. 在線材設定中變更了最大體積流量或列印溫度。"
msgid "About this calibration"
msgstr "關於此校正"
+# AI Translated
msgid ""
"Please find the details of Flow Dynamics Calibration from our wiki.\n"
"\n"
@@ -19657,17 +23568,19 @@ msgid ""
"\n"
"The calibration results have about 10 percent jitter in our test, which may cause the result not exactly the same in each calibration. We are still investigating the root cause to do improvements with new updates."
msgstr ""
-"請參考我們的 Wiki 頁面,了解「流體動力校正」的詳細資訊。\n"
+"請參考我們的 Wiki,了解動態流量校正的詳細資訊。\n"
"\n"
-"通常不需要進行校正。當您啟動單色/單材質列印,並在列印開始選單中勾選『流體動力校正』選項時,列印裝置將按照舊方式,在列印前校正線材。當您啟動多色/多材質列印時,列印裝置將在每次線材切換時使用預設的補償參數,這在大部分情況下都能得到良好的結果。\n"
+"通常不需要進行校正。當您開始單色/單材質列印,並在列印開始選單中勾選「動態流量校正」選項時,列印裝置會沿用舊方式,在列印前校正線材;當您開始多色/多材質列印時,列印裝置會在每次切換線材時使用該線材的預設補償參數,在大多數情況下都能得到良好的結果。\n"
"\n"
-"請注意,有些情況可能會導致校正結果不可靠,例如列印板上的黏著力不足。您可以透過清洗印板板或塗抹膠水來改善黏著力。有關此主題的更多資訊,請參考我們的 Wiki。\n"
+"請注意,有些情況可能會導致校正結果不可靠,例如列印板黏著力不足。清潔列印板或塗抹膠水可以改善黏著力。有關此主題的更多資訊,請參考我們的 Wiki。\n"
"\n"
-"在我們的測試中,校正結果存在約 10% 的誤差,這可能導致每次校正的結果不完全相同。我們仍在調查根本原因,並將在新的更新中進行改進。"
+"在我們的測試中,校正結果約有百分之十的波動,可能導致每次校正的結果不完全相同。我們仍在調查根本原因,並將在新的更新中改進。"
+# AI Translated
msgid "When to use Flow Rate Calibration"
-msgstr "何時使用流量率校正"
+msgstr "何時使用流量比例校正"
+# AI Translated
msgid ""
"After using Flow Dynamics Calibration, there might still be some extrusion issues, such as:\n"
"1. Over-Extrusion: Excess material on your printed object, forming blobs or zits, or the layers seem thicker than expected and not uniform\n"
@@ -19675,18 +23588,21 @@ msgid ""
"3. Poor Surface Quality: The surface of your prints seems rough or uneven\n"
"4. Weak Structural Integrity: Prints break easily or don't seem as sturdy as they should be"
msgstr ""
-"使用流量動態校正後,仍可能出現一些擠出問題,例如:\n"
-"1. 過度擠出:列印物體上有過多的線材,形成凸起或小球,或者層次看起來比預期的厚而且不均勻。\n"
-"2. 不足擠出:層次非常薄,填充強度不足,或者在緩慢列印時模型頂層有缺陷。\n"
-"3. 表面品質差:列印的表面看起來粗糙或不均勻。\n"
-"4. 結構穩固性差:列印物件容易斷裂,或者沒有應有的穩固性。"
+"使用動態流量校正後,仍可能出現一些擠出問題,例如:\n"
+"1. 過度擠出:列印物件上材料過多,形成凸起或小疙瘩,或者每層看起來比預期厚且不均勻\n"
+"2. 擠出不足:即使慢速列印,每層仍非常薄、填充強度不足,或模型頂層出現縫隙\n"
+"3. 表面品質差:列印件表面粗糙或不平整\n"
+"4. 結構強度差:列印件容易斷裂,或不如預期堅固"
+# AI Translated
msgid "In addition, Flow Rate Calibration is crucial for foaming materials like LW-PLA used in RC planes. These materials expand greatly when heated, and calibration provides a useful reference flow rate."
-msgstr "此外,對於像用於遙控飛機的輕質發泡 PLA(LW-PLA)這樣的發泡線材,流量率校正非常重要。這些線材在加熱時會大幅膨脹,而校正提供了有用的流量率參考。"
+msgstr "此外,對於遙控飛機使用的輕質發泡 PLA(LW-PLA)等發泡材料,流量比例校正非常重要。這些材料受熱時會大幅膨脹,而校正可提供有用的流量比例參考值。"
+# AI Translated
msgid "Flow Rate Calibration measures the ratio of expected to actual extrusion volumes. The default setting works well in Bambu Lab printers and official filaments as they were pre-calibrated and fine-tuned. For a regular filament, you usually won't need to perform a Flow Rate Calibration unless you still see the listed defects after you have done other calibrations. For more details, please check out the wiki article."
-msgstr "流量率校正測量預期擠出體積與實際擠出體積之間的比率。預設設定在 Bambu Lab 列印裝置和官方線材上表現良好,因為它們已經進行了預先校正和微調。對於普通的線材,通常情況下,您不需要執行流量率校正,除非在完成其他校正後仍然看到上述列出的缺陷。如需更多詳細資訊,請查閱 wiki 文章。"
+msgstr "流量比例校正測量的是預期擠出體積與實際擠出體積的比率。預設設定在 Bambu Lab 列印裝置和官方線材上表現良好,因為它們已預先校正和微調。對於一般線材,除非在完成其他校正後仍看到上述缺陷,否則通常不需要執行流量比例校正。如需更多詳細資訊,請參閱 wiki 文章。"
+# AI Translated
msgid ""
"Auto Flow Rate Calibration utilizes Bambu Lab's Micro-Lidar technology, directly measuring the calibration patterns. However, please be advised that the efficacy and accuracy of this method may be compromised with specific types of materials. Particularly, filaments that are transparent or semi-transparent, have sparkles, or have a highly-reflective finish may not be suitable for this calibration and can produce less-than-desirable results.\n"
"\n"
@@ -19694,17 +23610,18 @@ msgid ""
"\n"
"Caution: Flow Rate Calibration is an advanced process, to be attempted only by those who fully understand its purpose and implications. Incorrect usage can lead to sub-par prints or printer damage. Please make sure to carefully read and understand the process before doing it."
msgstr ""
-"自動流量率校正採用 Bambu Lab 的雷射雷達技術,直接測量校正圖案。然而,請注意,這種方法的功效和準確性可能會因特定類型的線材而受影響。特別是透明或半透明、帶有閃光顆粒或具有高反射表面的線材可能不適合這種校正,並可能產生不理想的結果。\n"
+"自動流量比例校正採用 Bambu Lab 的 Micro-Lidar 技術,直接測量校正圖案。但請注意,對於特定類型的材料,此方法的效果和準確性可能會受影響。尤其是透明或半透明、含亮片或表面高反光的線材,可能不適合此校正,並可能產生不理想的結果。\n"
"\n"
-"校正結果可能因每次校正或線材的不同而有所不同。我們仍在透過韌體更新不斷提高這種校正的準確性和相容性。\n"
+"每次校正或不同線材的校正結果可能有所不同。我們會持續透過韌體更新提升此校正的準確性和相容性。\n"
"\n"
-"注意:流量率校正是一項先進的技術,只有完全理解其目的和影響的人才應嘗試。錯誤的使用可能導致列印品質不佳或損壞列印裝置。請確保在執行之前仔細閱讀和理解此過程。"
+"注意:流量比例校正是一項進階操作,只有完全了解其目的與影響的使用者才應嘗試。使用不當可能導致列印品質不佳或損壞列印裝置。執行前請務必仔細閱讀並了解整個流程。"
msgid "When you need Max Volumetric Speed Calibration"
msgstr "當您需要最大體積流量校正時"
+# AI Translated
msgid "Over-extrusion or under extrusion"
-msgstr "過度擠壓或擠壓不足"
+msgstr "過度擠出或擠出不足"
msgid "Max Volumetric Speed calibration is recommended when you print with:"
msgstr "使用以下選項列印時,建議進行最大體積流量校正:"
@@ -19718,7 +23635,7 @@ msgstr "線材直徑不準確的線材"
# AI Translated
#, boost-format
msgid "%1% Flow Rate Calibrated"
-msgstr "%1% 流量已校正"
+msgstr "%1% 流量比例已校正"
# AI Translated
#, boost-format
@@ -19730,11 +23647,13 @@ msgstr "%1% 溫度已校正"
msgid "%1% Max Vol Speed Calibrated"
msgstr "%1% 最大體積流量已校正"
+# AI Translated
msgid "We found the best Flow Dynamics Calibration Factor"
-msgstr "我們找到了最佳的流量動態校正因子"
+msgstr "我們找到了最佳的動態流量校正係數"
+# AI Translated
msgid "Part of the calibration failed! You may clean the plate and retry. The failed test result would be dropped."
-msgstr "部分校正失敗!您可以清潔列印板並重試。 失敗的測試結果將不會儲存。"
+msgstr "部分校正失敗!您可以清潔列印板後重試。失敗的測試結果將會捨棄。"
msgid "*We recommend you to add brand, materia, type, and even humidity level in the Name"
msgstr "*我們建議您在名稱中加入品牌、材料、類型,甚至濕度水平"
@@ -19742,8 +23661,9 @@ msgstr "*我們建議您在名稱中加入品牌、材料、類型,甚至濕
msgid "Please enter the name you want to save to printer."
msgstr "請輸入要儲存到列印裝置的名稱。"
+# AI Translated
msgid "The name cannot exceed 40 characters."
-msgstr "名稱不能超過40個字元。"
+msgstr "名稱不能超過 40 個字元。"
msgid "Nozzle ID"
msgstr "噴嘴 ID"
@@ -19754,26 +23674,31 @@ msgstr "標準流量"
msgid "Please find the best line on your plate"
msgstr "請在您的列印板上找到最佳線條"
+# AI Translated
msgid "Please find the corner with the perfect degree of extrusion"
-msgstr "請找到最完美的列印角度"
+msgstr "請找到擠出程度最完美的轉角"
msgid "Input Value"
msgstr "輸入值"
+# AI Translated
msgid "Save to Filament Preset"
-msgstr "儲存到材料預設"
+msgstr "儲存至線材預設"
msgid "Record Factor"
msgstr "記錄係數"
+# AI Translated
msgid "We found the best flow ratio for you"
-msgstr "我們為您找到了最佳流量比"
+msgstr "我們為您找到了最佳流量比例"
+# AI Translated
msgid "Flow Ratio"
-msgstr "流量比"
+msgstr "流量比例"
+# AI Translated
msgid "Please input a valid value (0.0 < flow ratio < 2.0)"
-msgstr "請輸入一個有效值(0.0<流量比<2.0)"
+msgstr "請輸入有效值(0.0 < 流量比例 < 2.0)"
msgid "Please enter the name of the preset you want to save."
msgstr "請輸入要儲存的預設名稱。"
@@ -19787,21 +23712,26 @@ msgstr "校正 2"
msgid "Please find the best object on your plate"
msgstr "請在列印板上選擇最理想的物件"
+# AI Translated
msgid "Fill in the value above the block with smoothest top surface"
-msgstr "用最光滑的頂面填充塊上方的值"
+msgstr "填入頂面最光滑的方塊上方標示的數值"
+# AI Translated
msgid "Skip Calibration2"
-msgstr "跳過校正2"
+msgstr "跳過校正 2"
+# AI Translated
#, c-format, boost-format
msgid "flow ratio : %s "
-msgstr "流量比:%s "
+msgstr "流量比例:%s "
+# AI Translated
msgid "Please choose a block with smoothest top surface."
-msgstr "請選擇頂部表面最光滑的塊。"
+msgstr "請選擇頂面最光滑的方塊。"
+# AI Translated
msgid "Please input a valid value (0 <= Max Volumetric Speed <= 60)"
-msgstr "請輸入一個有效值(0<=最大體積流量<=60)"
+msgstr "請輸入有效值(0 <= 最大體積流量 <= 60)"
msgid "Calibration Type"
msgstr "校正類型"
@@ -19809,8 +23739,9 @@ msgstr "校正類型"
msgid "Complete Calibration"
msgstr "完整校正"
+# AI Translated
msgid "Fine Calibration based on flow ratio"
-msgstr "基於流量比的精細校正"
+msgstr "基於流量比例的精細校正"
msgid "Title"
msgstr "標題"
@@ -19830,12 +23761,17 @@ msgstr "同步噴嘴和 AMS 資訊"
msgid "Please connect the printer first before synchronizing."
msgstr "請先連線列印裝置,然後再同步。"
-#, c-format, boost-format
-msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
-msgstr "列印裝置%s 噴嘴資訊尚未設定。請在進行校正之前對其進行配置。"
+# AI Translated
+msgid "Printer right nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "尚未設定列印裝置右噴嘴資訊。請先完成設定再進行校正。"
+# AI Translated
+msgid "Printer left nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "尚未設定列印裝置左噴嘴資訊。請先完成設定再進行校正。"
+
+# AI Translated
msgid "AMS and nozzle information are synced"
-msgstr "AMS 和噴嘴資訊同步"
+msgstr "AMS 和噴嘴資訊已同步"
msgid "Nozzle Flow"
msgstr "噴嘴流量"
@@ -19846,17 +23782,19 @@ msgstr "線材位置"
msgid "Filament For Calibration"
msgstr "校正用線材"
+# AI Translated
msgid ""
"Tips for calibration material:\n"
"- Materials that can share same hot bed temperature\n"
"- Different filament brand and family (Brand = Bambu, Family = Basic, Matte)"
msgstr ""
"校正線材提示:\n"
-"-可以共享相同熱床溫度的線材\n"
-"-不同的線材品牌和系列(Brand = Bambu, Family = Basic, Matte)"
+"- 可共用相同熱床溫度的線材\n"
+"- 不同的線材品牌和系列(品牌 = Bambu,系列 = Basic、Matte)"
+# AI Translated
msgid "Pattern"
-msgstr "花紋"
+msgstr "圖案"
msgid "Method"
msgstr "方法"
@@ -19865,8 +23803,9 @@ msgstr "方法"
msgid "%s is not compatible with %s"
msgstr "%s 與 %s 不相容"
+# AI Translated
msgid "TPU is not supported for Flow Dynamics Auto-Calibration."
-msgstr "不支援 TPU 進行流量動態自動校正。"
+msgstr "TPU 不支援動態流量自動校正。"
msgid "Selected nozzle temperatures are incompatible. For multi-material printing, each filament's nozzle temperature must be within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur."
msgstr "所選的噴嘴溫度不相容。進行多材料列印時,每種線材的噴嘴溫度都必須在其他線材的建議噴嘴溫度範圍內。否則可能會發生噴嘴堵塞或列印裝置損壞。"
@@ -19895,8 +23834,14 @@ msgstr "從體積流量"
msgid "To Volumetric Speed"
msgstr "至體積流量"
+# AI Translated
+msgctxt "Increment"
+msgid "Step"
+msgstr "步進值"
+
+# AI Translated
msgid "Are you sure you want to cancel this print?"
-msgstr "確認要取消這次列印嗎?"
+msgstr "確定要取消這次列印嗎?"
msgid "Flow Dynamics Calibration Result"
msgstr "動態流量校正結果"
@@ -19910,29 +23855,35 @@ msgstr "無歷史結果"
msgid "Success to get history result"
msgstr "成功取得歷史結果"
+# AI Translated
msgid "Refreshing the previous Flow Dynamics Calibration records"
-msgstr "重整歷史流量動態校正記錄"
+msgstr "正在重新整理先前的動態流量校正記錄"
+# AI Translated
#, c-format, boost-format
msgid "Note: The hotend number on the %s is tied to the holder. When the hotend is moved to a new holder, its number will update automatically."
-msgstr "注意:%s上的熱端編號與刀架繫結。當熱端移動至新刀架時,其編號會自動更新。"
+msgstr "注意:%s 上的熱端編號與刀架繫結。當熱端移動至新刀架時,其編號會自動更新。"
msgid "Action"
msgstr "操作"
+# AI Translated
#, c-format, boost-format
-msgid "This machine type can only hold %d historical results per nozzle."
-msgstr "此裝置型號每個噴嘴僅能儲存 %d 筆歷史結果。"
+msgid "This machine type can only hold %d historical result per nozzle."
+msgid_plural "This machine type can only hold %d historical results per nozzle."
+msgstr[0] "此列印裝置型號每個噴嘴僅能儲存 %d 筆歷史結果。"
msgid "Edit Flow Dynamics Calibration"
msgstr "編輯動態流量校正"
+# AI Translated
#, c-format, boost-format
msgid "Within the same extruder, the name '%s' must be unique when the filament type, nozzle diameter, and nozzle flow are identical. Please choose a different name."
-msgstr "在同一臺擠出機中,當線材類型、噴嘴直徑和噴嘴流量相同時,名稱“%s”必須是唯一的。請選擇不同的名稱。"
+msgstr "在同一臺擠出機中,當線材類型、噴嘴直徑和噴嘴流量相同時,名稱「%s」必須是唯一的。請選擇不同的名稱。"
+# AI Translated
msgid "New Flow Dynamic Calibration"
-msgstr "重新校正動態流量"
+msgstr "新增動態流量校正"
msgid "The filament must be selected."
msgstr "必須選擇線材。"
@@ -20007,30 +23958,39 @@ msgstr "劃線模式"
msgid "PA Pattern"
msgstr "V 形模式"
+# AI Translated
msgid "Start PA: "
-msgstr "起始值:"
+msgstr "起始 PA: "
+# AI Translated
msgid "End PA: "
-msgstr "結束值:"
+msgstr "結束 PA: "
+# AI Translated
msgid "PA step: "
-msgstr "步距:"
+msgstr "PA 步距: "
+# AI Translated
msgid "Accelerations: "
-msgstr "加速度: "
+msgstr "加速度: "
+# AI Translated
msgid "Speeds: "
-msgstr "速度: "
+msgstr "速度: "
+# AI Translated
msgid "Print numbers"
-msgstr "列印號碼"
+msgstr "列印數字"
+# AI Translated
msgid "Comma-separated list of printing accelerations"
-msgstr "列印加速度的逗號分隔清單"
+msgstr "以逗號分隔的列印加速度清單"
+# AI Translated
msgid "Comma-separated list of printing speeds"
-msgstr "列印速度的逗號分隔清單"
+msgstr "以逗號分隔的列印速度清單"
+# AI Translated
msgid ""
"Please input valid values:\n"
"Start PA: >= 0.0\n"
@@ -20039,8 +23999,8 @@ msgid ""
msgstr ""
"請輸入有效值:\n"
"起始 PA:>= 0.0\n"
-"結束 PA:> 起始PA\n"
-"PA 步距:>= 0.001)"
+"結束 PA:> 起始 PA\n"
+"PA 步距:>= 0.001"
msgid ""
"Acceleration values must be greater than speed values.\n"
@@ -20049,12 +24009,13 @@ msgstr ""
"加速度值必須大於速度值。\n"
"請驗證輸入。"
+# AI Translated
+msgid "Not enabled yet on belt printers — use the PA Tower method instead."
+msgstr "輸送帶列印裝置尚未支援此功能,請改用「PA 塔」方法。"
+
msgid "Temperature calibration"
msgstr "溫度校正"
-msgid "Filament type"
-msgstr "線材類型"
-
msgid "PLA"
msgstr "PLA"
@@ -20076,14 +24037,29 @@ msgstr "PA-CF"
msgid "PET-CF"
msgstr "PET-CF"
+msgid "Test model"
+msgstr "測試模型"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Standard"
+msgstr "標準"
+
+# AI Translated
+msgctxt "Test model"
+msgid "Overhang"
+msgstr "懸空"
+
msgid "Start temp: "
msgstr "起始溫度: "
+# AI Translated
msgid "End temp: "
-msgstr "終止溫度:"
+msgstr "結束溫度: "
+# AI Translated
msgid "Temp step: "
-msgstr "溫度步距:"
+msgstr "溫度步距: "
# AI Translated
#. TRN %s is the temperature unit
@@ -20091,6 +24067,7 @@ msgstr "溫度步距:"
msgid "Supported range: 170%s - 500%s"
msgstr "支援範圍:170%s - 500%s"
+# AI Translated
msgid ""
"Please input valid values:\n"
"Start temp: <= 500\n"
@@ -20099,15 +24076,18 @@ msgid ""
msgstr ""
"請輸入有效值:\n"
"起始溫度:<= 500\n"
-"End temp: >= 155\n"
-"開始溫度 >= 結束溫度 + 5"
+"結束溫度:>= 155\n"
+"起始溫度 >= 結束溫度 + 5"
+# AI Translated
msgid "Start volumetric speed: "
-msgstr "起始流量:"
+msgstr "起始體積流量: "
+# AI Translated
msgid "End volumetric speed: "
-msgstr "結束流量:"
+msgstr "結束體積流量: "
+# AI Translated
msgid ""
"Please input valid values:\n"
"start > 0\n"
@@ -20115,15 +24095,17 @@ msgid ""
"end > start + step"
msgstr ""
"請輸入有效值:\n"
-"開始 > 0\n"
+"起始 > 0\n"
"步距 >= 0\n"
-"結束 > 開始 + 步距)"
+"結束 > 起始 + 步距"
+# AI Translated
msgid "Start speed: "
-msgstr "起始速度:"
+msgstr "起始速度: "
+# AI Translated
msgid "End speed: "
-msgstr "結束速度:"
+msgstr "結束速度: "
# AI Translated
msgid "Auto-adjust to max volumetric speed"
@@ -20133,6 +24115,7 @@ msgstr "自動調整以符合最大體積流量"
msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead."
msgstr "如果結束速度會超過線材的最大體積流量,則自動降低層高(維持標準數值並處於機器限制範圍內)以達到該速度。如果連最小層高也不夠,則改為降低結束速度。"
+# AI Translated
msgid ""
"Please input valid values:\n"
"start > 10\n"
@@ -20140,9 +24123,9 @@ msgid ""
"end > start + step"
msgstr ""
"請輸入有效值:\n"
-"開始 > 10\n"
+"起始 > 10\n"
"步距 >= 0\n"
-"結束 > 開始 + 步距)"
+"結束 > 起始 + 步距"
# AI Translated
#, c-format, boost-format
@@ -20166,7 +24149,7 @@ msgid ""
msgstr ""
"結束速度(%.0f mm/s)超過線材的最大體積流量(%.1f mm³/s)(預設層高 %.2f mm 時)。\n"
"\n"
-"層高已降至 %.2f mm(此印表機的設定檔中使用的數值),以便塔能夠達到要求的速度。"
+"層高已降至 %.2f mm(此列印裝置的設定檔中使用的數值),以便塔能夠達到要求的速度。"
# AI Translated
#, c-format, boost-format
@@ -20177,7 +24160,7 @@ msgid ""
"\n"
"Continue?"
msgstr ""
-"即使採用此印表機的設定檔中使用的最小層高(%.2f mm),結束速度(%.0f mm/s)仍超過線材的最大體積流量(%.1f mm³/s)。\n"
+"即使採用此列印裝置的設定檔中使用的最小層高(%.2f mm),結束速度(%.0f mm/s)仍超過線材的最大體積流量(%.1f mm³/s)。\n"
"\n"
"層高將設為 %.2f mm,結束速度將降至 %.0f mm/s。\n"
"\n"
@@ -20195,14 +24178,13 @@ msgstr "啟用「自動調整」可自動解決此問題,或者仍要繼續?
msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?"
msgstr "啟用「依噴嘴自動縮放」和「自動調整」可自動解決此問題,或者仍要繼續?"
+# AI Translated
msgid "Start retraction length: "
-msgstr "起始回抽長度:"
+msgstr "起始回抽長度: "
+# AI Translated
msgid "End retraction length: "
-msgstr "結束回抽長度:"
-
-msgid "Test model"
-msgstr "測試模型"
+msgstr "結束回抽長度: "
msgid "Ringing Tower"
msgstr "振鈴塔"
@@ -20230,11 +24212,17 @@ msgstr ""
"RepRap 韌體版本 => 3.4.0\n"
"請查閱您的韌體文件了解支援的整形器類型。"
+# AI Translated
msgid "Frequency (Start / End): "
-msgstr "頻率(開始/結束):"
+msgstr "頻率(開始/結束): "
-msgid "Start / End"
-msgstr "開始 / 結束"
+# AI Translated
+msgid "X Start / End: "
+msgstr "X 開始 / 結束: "
+
+# AI Translated
+msgid "Y Start / End: "
+msgstr "Y 開始 / 結束: "
msgid "Frequency settings"
msgstr "頻率設定"
@@ -20245,12 +24233,13 @@ msgstr "RepRap 韌體對兩個軸使用相同的頻率範圍。"
msgid "Damp: "
msgstr "阻尼: "
+# AI Translated
msgid ""
"Recommended: Set Damp to 0.\n"
"This will use the printer's default or saved value."
msgstr ""
-"建議:將“阻尼”設定為 0。\n"
-"這將使用列印裝置的預設值或儲存的值。"
+"建議:將「阻尼」設為 0。\n"
+"這將使用列印裝置的預設值或已儲存的值。"
msgid ""
"Please input valid values:\n"
@@ -20268,11 +24257,17 @@ msgstr "輸入整形阻尼測試"
msgid "Check firmware compatibility."
msgstr "檢查韌體相容性。"
+# AI Translated
msgid "Frequency: "
-msgstr "頻率:"
+msgstr "頻率: "
-msgid "Damp"
-msgstr "阻尼"
+# AI Translated
+msgid "Frequency X / Y: "
+msgstr "頻率 X / Y: "
+
+# AI Translated
+msgid "Damp (Start / End): "
+msgstr "阻尼(開始 / 結束): "
msgid "RepRap firmware uses the same frequency for both axes."
msgstr "RepRap 韌體對兩個軸使用相同的頻率。"
@@ -20293,11 +24288,13 @@ msgstr "請輸入有效的阻尼係數 (0 <= DampingStart < DampingEnd <= 1)"
msgid "SCV-V2"
msgstr "SCV-V2"
+# AI Translated
msgid "Start: "
-msgstr "開始:"
+msgstr "開始: "
+# AI Translated
msgid "End: "
-msgstr "結尾:"
+msgstr "結束: "
msgid "Cornering settings"
msgstr "轉彎設定"
@@ -20305,26 +24302,29 @@ msgstr "轉彎設定"
msgid "Note: Lower values = sharper corners but slower speeds."
msgstr "注意:值越低 = 拐角越尖銳,但速度越慢。"
+# AI Translated
msgid ""
"Marlin 2 Junction Deviation detected:\n"
"To test Classic Jerk, set 'Maximum Junction Deviation' in Motion ability to 0."
msgstr ""
"偵測到 Marlin 2 轉角偏差:\n"
-"要測試 Classic Jerk,請將運動能力中的「最大轉角偏差」設定為 0。"
+"若要測試 Classic Jerk,請將「移動能力」中的「最大轉角偏差」設為 0。"
+# AI Translated
msgid ""
"Marlin 2 Classic Jerk detected:\n"
"To test Junction Deviation, set 'Maximum Junction Deviation' in Motion ability to a value > 0."
msgstr ""
"偵測到 Marlin 2 Classic Jerk:\n"
-"要測試轉角偏差,請將運動能力中的「最大轉角偏差」設定為 > 0 的值。"
+"若要測試轉角偏差,請將「移動能力」中的「最大轉角偏差」設為大於 0 的值。"
+# AI Translated
msgid ""
"RepRap detected: Jerk in mm/s.\n"
"OrcaSlicer will convert the values to mm/min when necessary."
msgstr ""
-"偵測到 RepRap:加加速度(以 mm/s 為單位)。\n"
-"OrcaSlicer 會在必要時將值轉換為毫米/分鐘。"
+"偵測到 RepRap:急衝速度以 mm/s 為單位。\n"
+"OrcaSlicer 會在必要時將數值轉換為 mm/min。"
#, c-format, boost-format
msgid ""
@@ -20347,8 +24347,9 @@ msgstr "第 1 遍(粗調)"
msgid "Pass 2 (Fine)"
msgstr "第 2 遍(精細)"
+# AI Translated
msgid "YOLO (Recommended)"
-msgstr "YOLO (建議)"
+msgstr "YOLO(建議)"
msgid "YOLO (Perfectionist)"
msgstr "YOLO(完美主義者)"
@@ -20356,8 +24357,9 @@ msgstr "YOLO(完美主義者)"
msgid "Top Surface Pattern"
msgstr "頂面圖案"
+# AI Translated
msgid "Choose a slot for the selected color"
-msgstr "為選取的顏色選擇一個插槽"
+msgstr "為選取的顏色選擇一個槽位"
msgid "Material in the material station"
msgstr "材料站中的材料"
@@ -20365,24 +24367,28 @@ msgstr "材料站中的材料"
msgid "Only materials of the same type can be selected."
msgstr "只能選取相同類型的材料。"
+# AI Translated
msgid "Send G-code to printer host"
-msgstr "傳送 G-code 到列印裝置"
+msgstr "傳送 G-code 至列印主機"
+# AI Translated
msgid "Upload to Printer Host with the following filename:"
-msgstr "使用下列檔案名稱上傳到列印裝置:"
+msgstr "使用下列檔案名稱上傳至列印主機:"
msgid "Use forward slashes ( / ) as a directory separator if needed."
msgstr "如有需要,請使用正斜線(/)作為目錄分隔符。"
+# AI Translated
msgid "Upload to storage"
-msgstr "上傳到儲存單位"
+msgstr "上傳至儲存空間"
msgid "Switch to Device tab after upload."
msgstr "上傳後切換到裝置分頁。"
+# AI Translated
#, c-format, boost-format
msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?"
-msgstr "上傳的檔名不是「%s」結尾。確認要繼續嗎?"
+msgstr "上傳的檔案名稱結尾不是 \"%s\"。要繼續嗎?"
msgid "Upload"
msgstr "上傳"
@@ -20390,39 +24396,47 @@ msgstr "上傳"
msgid "Leveling before print"
msgstr "列印前調平"
+# AI Translated
msgid "Time-lapse"
-msgstr "縮時錄影"
+msgstr "縮時攝影"
msgid "Enable IFS"
msgstr "啟用 IFS"
+# AI Translated
#, c-format, boost-format
-msgid "Detected %d IFS slots on printer."
-msgstr "在列印裝置上偵測到 %d 個 IFS 插槽。"
+msgid "Detected %d IFS slot on printer."
+msgid_plural "Detected %d IFS slots on printer."
+msgstr[0] "在列印裝置上偵測到 %d 個 IFS 槽位。"
msgid "This printer does not report a material station."
msgstr "此列印裝置未回報材料站。"
+# AI Translated
msgid "Unable to read IFS slots from printer."
-msgstr "無法從列印裝置讀取 IFS 插槽。"
+msgstr "無法從列印裝置讀取 IFS 槽位。"
+# AI Translated
msgid "Loading IFS slots from printer..."
-msgstr "正在從列印裝置載入 IFS 插槽..."
+msgstr "正在從列印裝置載入 IFS 槽位..."
msgid "Slice the plate first to get project material information."
msgstr "請先切片列印板以取得專案材料資訊。"
+# AI Translated
msgid "This plate uses multiple materials. Enable IFS and assign each tool to a printer slot."
-msgstr "此列印板使用多種材料。請啟用 IFS 並將每個工具指派至列印裝置插槽。"
+msgstr "此列印板使用多種材料。請啟用 IFS 並將每個工具指派至列印裝置的槽位。"
+# AI Translated
msgid "Each project material must be assigned to an IFS slot before printing."
-msgstr "列印前,每個專案材料都必須指派到一個 IFS 插槽。"
+msgstr "列印前,每個專案材料都必須指派到一個 IFS 槽位。"
msgid "Each project material must be assigned to a loaded IFS slot before printing."
msgstr "列印前,每個專案材料都必須指派給已載入的 IFS 槽位。"
+# AI Translated
msgid "Each project material must match the material loaded in the selected IFS slot."
-msgstr "每個專案材料都必須與所選 IFS 插槽中載入的材料相符。"
+msgstr "每個專案材料都必須與所選 IFS 槽位中載入的材料相符。"
msgid "Print host upload queue"
msgstr "列印主機上傳佇列"
@@ -20436,15 +24450,17 @@ msgstr "進度"
msgid "Host"
msgstr "主機"
+# AI Translated
msgctxt "OfFile"
msgid "Size"
-msgstr "尺寸"
+msgstr "大小"
msgid "Filename"
msgstr "檔案名稱"
+# AI Translated
msgid "Cancel selected"
-msgstr "取消選取"
+msgstr "取消所選項目"
msgid "Show error message"
msgstr "顯示錯誤資訊"
@@ -20458,8 +24474,9 @@ msgstr "正在上傳"
msgid "Canceling"
msgstr "取消中"
+# AI Translated
msgid "Error uploading to print host"
-msgstr "上傳到列印裝置時發生錯誤"
+msgstr "上傳至列印主機時發生錯誤"
msgid "The selected bed type does not match the file. Please confirm before starting the print."
msgstr "選擇的床面類型與檔案不符,請在開始列印前確認。"
@@ -20467,11 +24484,13 @@ msgstr "選擇的床面類型與檔案不符,請在開始列印前確認。"
msgid "Heated Bed Leveling"
msgstr "熱床調平"
+# AI Translated
msgid "Textured Build Plate (Side A)"
-msgstr "紋理列印板(A面)"
+msgstr "紋理列印板(A 面)"
+# AI Translated
msgid "Smooth Build Plate (Side B)"
-msgstr "平滑列印板(A面)"
+msgstr "平滑列印板(B 面)"
#, c-format, boost-format
msgid "Printer: %s"
@@ -20495,8 +24514,9 @@ msgstr "無法對所選零件執行布林運算"
msgid "Mesh Boolean"
msgstr "布林運算"
+# AI Translated
msgid "Union"
-msgstr "併集"
+msgstr "聯集"
msgid "Difference"
msgstr "差集"
@@ -20516,8 +24536,10 @@ msgstr "從中減去"
msgid "Subtract with"
msgstr "與之相減"
-msgid "selected"
-msgstr "已選取"
+# AI Translated
+#. TRN Mesh Boolean button label once one volume is picked.
+msgid "1 selected"
+msgstr "已選取 1 個"
msgid "Part 1"
msgstr "零件 1"
@@ -20549,14 +24571,17 @@ msgstr "系統版本:"
msgid "DNS Server:"
msgstr "DNS 伺服器:"
+# AI Translated
msgid "Test OrcaSlicer (GitHub)"
-msgstr "測試 OrcaSlicer(GitHub)"
+msgstr "測試 OrcaSlicer(GitHub)"
+# AI Translated
msgid "Test OrcaSlicer (GitHub):"
-msgstr "測試 OrcaSlicer(GitHub):"
+msgstr "測試 OrcaSlicer(GitHub):"
+# AI Translated
msgid "Test bing.com"
-msgstr "測試 Bing.com"
+msgstr "測試 bing.com"
msgid "Test bing.com:"
msgstr "測試 bing.com:"
@@ -20594,8 +24619,9 @@ msgstr "建立線材"
msgid "Create Based on Current Filament"
msgstr "依據目前線材建立"
+# AI Translated
msgid "Copy Current Filament Preset "
-msgstr "複製目前的線材預設"
+msgstr "複製目前的線材預設 "
msgid "Basic Information"
msgstr "基本資訊"
@@ -20621,8 +24647,9 @@ msgstr "選擇類型"
msgid "Select Filament Preset"
msgstr "選擇線材預設"
+# AI Translated
msgid "Serial"
-msgstr "序號"
+msgstr "系列"
msgid "e.g. Basic, Matte, Silk, Marble"
msgstr "例如:基本、霧面、絲光、大理石"
@@ -20630,9 +24657,6 @@ msgstr "例如:基本、霧面、絲光、大理石"
msgid "Filament Preset"
msgstr "線材預設"
-msgid "Create"
-msgstr "建立"
-
msgid "Vendor is not selected; please reselect vendor."
msgstr "廠牌尚未選擇,請重新選擇廠牌。"
@@ -20645,15 +24669,17 @@ msgstr "「Bambu」或「Generic」不能作為自訂線材的廠牌名稱。"
msgid "Filament type is not selected, please reselect type."
msgstr "線材類型尚未選擇,請重新選擇類型。"
+# AI Translated
msgid "Filament serial missing; please input serial."
-msgstr "線材序號尚未輸入,請輸入序號。"
+msgstr "缺少線材系列,請輸入系列。"
# AI Translated
msgid "There may be disallowed characters in the vendor or serial input of the filament. Please delete and re-enter."
-msgstr "線材的廠牌或序號輸入中可能包含不允許的字元,請刪除並重新輸入。"
+msgstr "線材的廠牌或系列輸入中可能包含不允許的字元,請刪除並重新輸入。"
+# AI Translated
msgid "All inputs in the custom vendor or serial are spaces. Please re-enter."
-msgstr "自訂廠牌或序號中的所有輸入都是空白,請重新輸入。"
+msgstr "自訂廠牌或系列的輸入全為空格,請重新輸入。"
msgid "The vendor cannot be a number; please re-enter."
msgstr "廠牌不能為數字,請重新輸入。"
@@ -20669,8 +24695,9 @@ msgstr ""
"所建立的線材名稱 %s 已經存在。\n"
"如果繼續建立,預設將顯示完整的名稱。是否要繼續?"
+# AI Translated
msgid "Some existing presets have failed to be created, as follows:\n"
-msgstr "以下是一些現有的預設無法建立的原因:\n"
+msgstr "部分現有預設建立失敗,如下:\n"
msgid ""
"\n"
@@ -20679,11 +24706,12 @@ msgstr ""
"\n"
"確定要覆寫嗎?"
+# AI Translated
msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you selected\".\n"
"To add preset for more printers, please go to printer selection"
msgstr ""
-"將會將預設名稱重新命名為「廠牌 型號 序號 @選擇的列印裝置」。\n"
+"預設將重新命名為「廠牌 類型 系列 @您選擇的列印裝置」。\n"
"若要為更多列印裝置新增預設,請前往列印裝置選擇頁面"
msgid "Create Printer/Nozzle"
@@ -20704,8 +24732,9 @@ msgstr "依據目前列印裝置建立"
msgid "Import Preset"
msgstr "匯入預設"
+# AI Translated
msgid "Create Type"
-msgstr "建立類型"
+msgstr "建立方式"
msgid "The model was not found; please reselect vendor."
msgstr "找不到該型號,請重新選擇廠牌。"
@@ -20756,20 +24785,25 @@ msgstr "找不到列印裝置型號,請重新選擇。"
msgid "The nozzle diameter was not found; please reselect."
msgstr "找不到噴嘴直徑,請重新選擇。"
+# AI Translated
msgid "The printer preset was not found; please reselect."
-msgstr "未找到列印裝置預設設定,請重新選擇。"
+msgstr "找不到列印裝置預設,請重新選擇。"
+# AI Translated
msgid "Printer Preset"
-msgstr "列印裝置預設設定"
+msgstr "列印裝置預設"
+# AI Translated
msgid "Filament Preset Template"
-msgstr "線材預設設定範本"
+msgstr "線材預設範本"
+# AI Translated
msgid "Process Preset Template"
-msgstr "處理預設設定範本"
+msgstr "列印參數預設範本"
+# AI Translated
msgid "You have not yet chosen which printer preset to create based on. Please choose the vendor and model of the printer"
-msgstr "尚未選擇要基於哪個列印裝置預設設定來建立,請選擇列印裝置的廠牌和型號"
+msgstr "尚未選擇要以哪個列印裝置預設為基礎來建立,請選擇列印裝置的廠牌和型號"
# AI Translated
msgid "You have entered a disallowed character in the printable area section on the first page. Please use only numbers."
@@ -20782,22 +24816,26 @@ msgid ""
"and filament and process presets without the same preset name will be reserved.\n"
"\tCancel: Do not create a preset; return to the creation interface."
msgstr ""
-"建立的列印裝置預設設定已經有相同名稱的預設設定。是否要覆蓋它?\n"
-"\t是:覆蓋相同名稱的列印裝置預設設定,並重新建立名稱相同的線材和處理預設設定,\n"
-"名稱不同的線材和處理預設設定將被保留。\n"
-"\t取消:不建立預設設定,返回建立介面。"
+"您建立的列印裝置預設已有同名的預設。是否要覆蓋?\n"
+"\t是:覆蓋同名的列印裝置預設,並重新建立同名的線材和列印參數預設,\n"
+"名稱不同的線材和列印參數預設將會保留。\n"
+"\t取消:不建立預設,返回建立介面。"
+# AI Translated
msgid "You need to select at least one filament preset."
-msgstr "需要至少選擇一個線材預設設定。"
+msgstr "您需要至少選擇一個線材預設。"
+# AI Translated
msgid "You need to select at least one process preset."
-msgstr "需要至少選擇一個處理預設設定。"
+msgstr "您需要至少選擇一個列印參數預設。"
+# AI Translated
msgid "Create filament presets failed. As follows:\n"
-msgstr "建立線材預設設定失敗,原因如下:\n"
+msgstr "建立線材預設失敗,原因如下:\n"
+# AI Translated
msgid "Create process presets failed. As follows:\n"
-msgstr "建立處理預設設定失敗,原因如下:\n"
+msgstr "建立列印參數預設失敗,原因如下:\n"
msgid "Vendor was not found; please reselect."
msgstr "未找到廠牌,請重新選擇。"
@@ -20823,10 +24861,13 @@ msgstr "尚未選擇要更換噴嘴的列印裝置,請選擇。"
msgid "The entered nozzle diameter is invalid, please re-enter:\n"
msgstr "輸入的噴嘴直徑無效,請重新輸入:\n"
+# AI Translated
msgid ""
"The system preset does not allow creation. \n"
"Please re-enter the printer model or nozzle diameter."
-msgstr "系統預設不允許建立。 請重新輸入列印裝置型號或噴嘴直徑。"
+msgstr ""
+"系統預設不允許建立。\n"
+"請重新輸入列印裝置型號或噴嘴直徑。"
msgid ""
"\n"
@@ -20855,19 +24896,22 @@ msgstr "線材建立成功"
msgid "Printer Created"
msgstr "列印裝置建立完成"
+# AI Translated
msgid "Please go to printer settings to edit your presets"
-msgstr "請前往列印裝置設定編輯您的預設設定"
+msgstr "請前往「列印裝置設定」編輯您的預設"
msgid "Filament Created"
msgstr "線材建立完成"
+# AI Translated
msgid ""
"Please go to filament settings to edit your presets if you need to.\n"
"Please note that nozzle temperature, hot bed temperature, and maximum volumetric speed each have a significant impact on printing quality. Please set them carefully."
msgstr ""
-"如需調整,請至線材設定頁編輯您的預設。\n"
-"請特別注意,噴嘴溫度、熱床溫度及最大體積速度會顯著影響列印品質,建議謹慎設定。"
+"如需調整,請至線材設定編輯您的預設。\n"
+"請特別注意,噴嘴溫度、熱床溫度及最大體積流量會顯著影響列印品質,請謹慎設定。"
+# AI Translated
msgid ""
"\n"
"\n"
@@ -20876,26 +24920,31 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Orca 偵測到您的使用者預設同步功能尚未啟用,這可能導致線材設定在裝置頁面上無法正常使用。\n"
-"請點選『同步使用者預設』以啟用同步功能。"
+"Orca 偵測到您的使用者預設同步功能尚未啟用,這可能導致裝置頁面上的線材設定失敗。\n"
+"請點選「同步使用者預設」以啟用同步功能。"
msgid "Printer Setting"
msgstr "列印裝置設定"
+# AI Translated
msgid "Printer config bundle(.orca_printer)"
-msgstr "列印裝置設定檔 (.orca_printer)"
+msgstr "列印裝置設定檔組 (.orca_printer)"
+# AI Translated
msgid "Filament bundle(.orca_filament)"
-msgstr "線材設定檔 (.orca_filament)"
+msgstr "線材設定檔組 (.orca_filament)"
+# AI Translated
msgid "Printer presets(.zip)"
-msgstr "列印裝置預設設定檔 (.zip)"
+msgstr "列印裝置預設 (.zip)"
+# AI Translated
msgid "Filament presets(.zip)"
-msgstr "線材預設設定檔 (.zip)"
+msgstr "線材預設 (.zip)"
+# AI Translated
msgid "Process presets(.zip)"
-msgstr "處理預設設定檔 (.zip)"
+msgstr "列印參數預設 (.zip)"
msgid "initialize fail"
msgstr "初始化失敗"
@@ -20903,11 +24952,13 @@ msgstr "初始化失敗"
msgid "add file fail"
msgstr "新增檔案失敗"
+# AI Translated
msgid "add bundle structure file fail"
-msgstr "新增捆綁結構檔案失敗"
+msgstr "新增設定檔組結構檔案失敗"
+# AI Translated
msgid "finalize fail"
-msgstr "失敗"
+msgstr "完成寫入失敗"
msgid "open zip written fail"
msgstr "開啟 zip 檔案失敗"
@@ -20933,107 +24984,126 @@ msgstr ""
"可能已被另一個程式開啟。\n"
"請關閉它並重試。"
+# AI Translated
msgid ""
"Printer and all the filament and process presets that belongs to the printer.\n"
"Can be shared with others."
msgstr ""
-"列印裝置及所有屬於該列印裝置的線材和處理預設設定。 \n"
+"列印裝置及屬於該列印裝置的所有線材和列印參數預設。\n"
"可以與他人分享。"
+# AI Translated
+msgid "Include custom bed texture and model"
+msgstr "包含自訂列印板紋理與模型"
+
+# AI Translated
msgid ""
"User's filament preset set.\n"
"Can be shared with others."
msgstr ""
-"使用者的線材預設設定。 \n"
+"使用者的線材預設集。\n"
"可以與他人分享。"
+# AI Translated
msgid "Only display printers with changes to printer, filament, and process presets are displayed."
-msgstr "僅顯示對列印裝置、線材和處理預設設定有變更的列印裝置名稱。"
+msgstr "僅顯示列印裝置、線材和列印參數預設有變更的列印裝置。"
+# AI Translated
msgid "Only display the filament names with changes to filament presets."
-msgstr "僅顯示對線材預設設定有變更的線材名稱。"
+msgstr "僅顯示線材預設有變更的線材名稱。"
+# AI Translated
msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive."
-msgstr "只有具有使用者列印裝置預設設定的列印裝置名稱會顯示,您選擇的每個預設設定將以 zip 檔案格式匯出。"
+msgstr "僅顯示具有使用者列印裝置預設的列印裝置名稱,您選擇的每個預設都將匯出為 ZIP 壓縮檔。"
+# AI Translated
msgid ""
"Only the filament names with user filament presets will be displayed, \n"
"and all user filament presets in each filament name you select will be exported as a ZIP archive."
msgstr ""
-"只有具有使用者線材預設設定的線材名稱會顯示,\n"
-"您選擇的每個線材名稱中的所有使用者線材預設設定將以 zip 檔案格式匯出。"
+"僅顯示具有使用者線材預設的線材名稱,\n"
+"您選擇的每個線材名稱下的所有使用者線材預設都將匯出為 ZIP 壓縮檔。"
+# AI Translated
msgid ""
"Only printer names with changed process presets will be displayed, \n"
"and all user process presets in each printer name you select will be exported as a ZIP archive."
msgstr ""
-"只有具有變更過處理預設設定的列印裝置名稱會顯示,\n"
-"您選擇的每個列印裝置名稱中的所有使用者處理預設設定將以 zip 檔案格式匯出。"
+"僅顯示列印參數預設有變更的列印裝置名稱,\n"
+"您選擇的每個列印裝置名稱下的所有使用者列印參數預設都將匯出為 ZIP 壓縮檔。"
msgid "Please select at least one printer or filament."
msgstr "請至少選擇一個列印裝置或線材。"
+# AI Translated
msgid "Please select a preset type you want to export"
-msgstr "請選擇您要匯出的類型"
+msgstr "請選擇要匯出的預設類型"
+# AI Translated
msgid "Failed to create temporary folder, please try Export Configs again."
-msgstr "建立臨時資料夾失敗,請再次嘗試匯出配置。"
+msgstr "建立暫存資料夾失敗,請重新嘗試匯出設定檔。"
msgid "Edit Filament"
msgstr "編輯線材"
+# AI Translated
msgid "Filament presets under this filament"
-msgstr "此線材下的線材預設設定"
+msgstr "此線材下的線材預設"
+# AI Translated
msgid "Note: If the only preset under this filament is deleted, the filament will be deleted after exiting the dialog."
-msgstr "注意:如果此線材下的唯一預設設定被刪除,退出對話框後該線材將被刪除。"
+msgstr "注意:如果刪除此線材下唯一的預設,關閉對話框後該線材也將被刪除。"
+# AI Translated
msgid "Presets inherited by other presets cannot be deleted"
-msgstr "被其他預設設定繼承的預設設定無法刪除"
-
-msgid "The following presets inherits this preset."
-msgid_plural "The following preset inherits this preset."
-msgstr[0] "以下預設設定繼承了此預設。"
-
-msgid "Delete Preset"
-msgstr "刪除預設設定"
+msgstr "被其他預設繼承的預設無法刪除"
+# AI Translated
msgid "Are you sure to delete the selected preset?"
-msgstr "確認要刪除選定的預設設定嗎?"
+msgstr "您確定要刪除所選預設嗎?"
+# AI Translated
msgid "Delete preset"
-msgstr "刪除預設設定"
+msgstr "刪除預設"
+# AI Translated
msgid "+ Add Preset"
-msgstr "+ 新增預設設定"
+msgstr "+ 新增預設"
+# AI Translated
msgid ""
"All the filament presets belong to this filament would be deleted.\n"
"If you are using this filament on your printer, please reset the filament information for that slot."
msgstr ""
-"所有屬於此線材的預設設定將被刪除。\n"
-"如果您正在列印裝置上使用此線材,請重新設定該插槽的線材資訊。"
+"屬於此線材的所有線材預設都將被刪除。\n"
+"如果您正在列印裝置上使用此線材,請重設該槽位的線材資訊。"
msgid "Delete filament"
msgstr "刪除線材"
+# AI Translated
msgid "Add Preset"
-msgstr "新增預設設定"
+msgstr "新增預設"
+# AI Translated
msgid "Add preset for new printer"
-msgstr "為新列印裝置新增預設設定"
+msgstr "為新列印裝置新增預設"
+# AI Translated
msgid "Copy preset from filament"
-msgstr "從線材複製預設設定"
+msgstr "從線材複製預設"
+# AI Translated
msgid "The filament choice not find filament preset, please reselect it"
-msgstr "未找到該線材的預設設定,請重新選擇"
+msgstr "找不到所選線材的線材預設,請重新選擇"
+# AI Translated
msgid "[Delete Required]"
-msgstr "「需要刪除」"
+msgstr "[需要刪除]"
+# AI Translated
msgid "Edit Preset"
-msgstr "編輯預設設定"
+msgstr "編輯預設"
msgid "For more information, please check out our Wiki"
msgstr "如需更多資訊,請檢視 Wiki"
@@ -21047,12 +25117,13 @@ msgstr "摺疊"
msgid "Daily Tips"
msgstr "每日提示"
+# AI Translated
msgid ""
"The printer nozzle information has not been set.\n"
"Please configure it before proceeding with the calibration."
msgstr ""
"尚未設定列印裝置噴嘴資訊。\n"
-"請在進行校正之前對其進行配置。"
+"請先完成設定再進行校正。"
msgid ""
"The nozzle type does not match the actual printer nozzle type.\n"
@@ -21071,19 +25142,24 @@ msgstr "需要選擇列印裝置"
msgid "The start, end or step is not valid value."
msgstr "開始、結束或步距不是有效值。"
+# AI Translated
msgid "The number of printer extruders and the printer selected for calibration does not match."
-msgstr "列印裝置擠出機的數量與選擇進行校正的列印裝置的數量不匹配。"
+msgstr "列印裝置的擠出機數量與所選的校正列印裝置不符。"
+# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration."
-msgstr "%s 擠出機的噴嘴直徑為 0.2mm,不支援自動流動動力學校正。"
+msgstr "%s 擠出機的噴嘴直徑為 0.2mm,不支援自動動態流量校正。"
+# AI Translated
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n"
"Please click the Sync button above and restart the calibration."
msgstr ""
-"目前選擇的%s 擠出機噴嘴直徑與實際噴嘴直徑不符。\n"
+"目前選擇的 %s 擠出機噴嘴直徑與實際噴嘴直徑不符。\n"
"請點選上面的同步按鈕並重新啟動校正。"
msgid ""
@@ -21093,6 +25169,13 @@ msgstr ""
"噴嘴直徑與實際列印裝置噴嘴直徑不匹配。\n"
"請點選上面的同步按鈕並重新啟動校正。"
+# AI Translated
+#. TRN %s is "left" or "right".
+#, c-format, boost-format
+msgid "Printer %s nozzle information has not been set. Please configure it before proceeding with the calibration."
+msgstr "尚未設定列印裝置 %s 噴嘴資訊。請先完成設定再進行校正。"
+
+#. TRN %s is "left" or "right".
#, c-format, boost-format
msgid ""
"The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n"
@@ -21116,8 +25199,9 @@ msgstr "選取 Flashforge 列印裝置"
msgid "Discovered Printers"
msgstr "已發現的列印裝置"
+# AI Translated
msgid "Could not get a valid Printer Host reference"
-msgstr "無法獲得有效的列印裝置主機參考資料"
+msgstr "無法取得有效的列印主機參照"
msgid "Valid session not detected. Proceed with login to 3DPrinterOS?"
msgstr "未偵測到有效的工作階段。要繼續登入 3DPrinterOS 嗎?"
@@ -21137,14 +25221,17 @@ msgstr "已建立 API 金鑰。請前往實體列印裝置,在螢幕上按下
msgid "API Key created."
msgstr "已建立 API 金鑰。"
+# AI Translated
msgid "Are you sure to log out?"
-msgstr "確認要登出嗎?"
+msgstr "確定要登出嗎?"
+# AI Translated
msgid "View print host webui in Device tab"
-msgstr "在裝置頁籤中檢視列印主機的 Web UI"
+msgstr "在「裝置」分頁中檢視列印主機的 Web UI"
+# AI Translated
msgid "Replace the BambuLab's device tab with print host webui"
-msgstr "將 BambuLab 的裝置頁籤替換為列印主機的 Web UI"
+msgstr "將 BambuLab 的裝置分頁替換為列印主機的 Web UI"
#, c-format, boost-format
msgid "On this system, %s uses HTTPS certificates from the system Certificate Store or Keychain."
@@ -21161,11 +25248,16 @@ msgstr "經由列印主機連線的列印裝置連線失敗。"
# AI Translated
msgid "Detect Creality K-series printer"
-msgstr "偵測 Creality K 系列印表機"
+msgstr "偵測 Creality K 系列列印裝置"
# AI Translated
msgid "Click Scan to look for K-series printers on your network."
-msgstr "按一下「掃描」以在您的網路上尋找 K 系列印表機。"
+msgstr "按一下「掃描」以在您的網路上尋找 K 系列列印裝置。"
+
+# AI Translated
+msgctxt "Printer model"
+msgid "Model"
+msgstr "型號"
# AI Translated
msgid "Scan"
@@ -21177,7 +25269,7 @@ msgstr "使用所選項目"
# AI Translated
msgid "Scanning the LAN for K-series printers... this takes a few seconds."
-msgstr "正在於 LAN 上掃描 K 系列印表機…這需要幾秒鐘。"
+msgstr "正在 LAN 上掃描 K 系列列印裝置...這需要幾秒鐘。"
# AI Translated
msgid "(unknown K-series)"
@@ -21185,12 +25277,13 @@ msgstr "(未知的 K 系列)"
# AI Translated
msgid "No K-series printers found. Make sure the printer is on the same network and not blocked by Wi-Fi client isolation, then click Scan again."
-msgstr "找不到 K 系列印表機。請確認印表機位於相同網路,且未被 Wi-Fi 用戶端隔離所封鎖,然後再次按一下「掃描」。"
+msgstr "找不到 K 系列列印裝置。請確認列印裝置位於相同網路,且未被 Wi-Fi 用戶端隔離所封鎖,然後再次按一下「掃描」。"
# AI Translated
#, c-format
-msgid "Found %zu Creality printer(s). Select one and click Use Selected."
-msgstr "找到 %zu 台 Creality 印表機。請選擇一台並按一下「使用所選項目」。"
+msgid "Found %zu Creality printer. Select it and click Use Selected."
+msgid_plural "Found %zu Creality printers. Select one and click Use Selected."
+msgstr[0] "找到 %zu 台 Creality 列印裝置。請選擇一台並按一下「使用所選項目」。"
# AI Translated
msgid "Active"
@@ -21198,11 +25291,11 @@ msgstr "使用中"
# AI Translated
msgid "Printers"
-msgstr "印表機"
+msgstr "列印裝置"
# AI Translated
msgid "Processes"
-msgstr "製程"
+msgstr "列印參數"
# AI Translated
msgid "Show/Hide system information"
@@ -21290,7 +25383,7 @@ msgstr "目前工作階段沒有專案檔案。套件中將僅包含記錄"
# AI Translated
msgid "Please make sure any instances of OrcaSlicer are not running"
-msgstr "請確認沒有任何 OrcaSlicer 執行個體正在執行"
+msgstr "請確認沒有任何 OrcaSlicer 實例正在執行"
# AI Translated
msgid "System folder cannot be deleted because some files are in use by another application. Please close any applications using these files and try again."
@@ -21298,7 +25391,7 @@ msgstr "由於部分檔案正被其他應用程式使用,因此無法刪除系
# AI Translated
msgid "Failed to delete system folder..."
-msgstr "刪除系統資料夾失敗…"
+msgstr "無法刪除系統資料夾..."
# AI Translated
msgid "Failed to determine executable path."
@@ -21306,11 +25399,14 @@ msgstr "無法判定執行檔路徑。"
# AI Translated
msgid "Failed to launch a new instance."
-msgstr "無法啟動新的執行個體。"
+msgstr "無法啟動新的實例。"
# AI Translated
-msgid "log(s)"
-msgstr "記錄"
+#. TRN Number of log files, then their total size and its unit (KB or MB).
+#, c-format, boost-format
+msgid "%d log (%.2f %s)"
+msgid_plural "%d logs (%.2f %s)"
+msgstr[0] "%d 個記錄檔(%.2f %s)"
# AI Translated
msgid "Choose where to save the exported JSON file"
@@ -21357,15 +25453,36 @@ msgstr "找不到列印裝置類型,請手動選取。"
msgid "Authorizing..."
msgstr "授權中..."
-msgid "Error. Can't get API token for authorization"
-msgstr "錯誤。無法取得用於授權的 API token。"
+# AI Translated
+msgid "Maximum login retries exceeded"
+msgstr "已超過最大登入重試次數"
+
+# AI Translated
+#. TRN %1% is an HTTP status code.
+#, boost-format
+msgid "HTTP error: %1%"
+msgstr "HTTP 錯誤:%1%"
msgid "Could not parse server response."
msgstr "無法解析伺服器回應。"
+# AI Translated
+msgid "Error. Can't get API token for authorization"
+msgstr "錯誤。無法取得用於授權的 API token"
+
msgid "Error saving session to file"
msgstr "將工作階段儲存至檔案時發生錯誤"
+# AI Translated
+msgid "Connection to 3DPrinterOS cloud works correctly."
+msgstr "與 3DPrinterOS 雲端的連線運作正常。"
+
+# AI Translated
+#. TRN %1% is the 3DPrinterOS account (e-mail address).
+#, boost-format
+msgid "Logged in as user: %1%"
+msgstr "已登入,使用者:%1%"
+
msgid "Error session check"
msgstr "工作階段檢查出錯"
@@ -21379,8 +25496,9 @@ msgstr "列印主機類型不符:%s"
msgid "Connection to AstroBox is working correctly."
msgstr "與 AstroBox 的連線工作正常。"
+# AI Translated
msgid "Could not connect to AstroBox"
-msgstr "無法連線到 AstroBox"
+msgstr "無法連線至 AstroBox"
msgid "Note: AstroBox version 1.1.0 or higher is required."
msgstr "注意:AstroBox 版本至少需要 1.1.0。"
@@ -21388,8 +25506,9 @@ msgstr "注意:AstroBox 版本至少需要 1.1.0。"
msgid "Connection to Duet is working correctly."
msgstr "與 Duet 的連線工作正常。"
+# AI Translated
msgid "Could not connect to Duet"
-msgstr "無法連線到 Duet"
+msgstr "無法連線至 Duet"
msgid "Unknown error occurred"
msgstr "發生未知的錯誤"
@@ -21397,17 +25516,56 @@ msgstr "發生未知的錯誤"
msgid "Wrong password"
msgstr "密碼錯誤"
+# AI Translated
msgid "Could not get resources to create a new connection"
-msgstr "無法取得建立新連結的資源"
+msgstr "無法取得建立新連線所需的資源"
+
+# AI Translated
+msgid "Connection to UltiMaker works correctly."
+msgstr "與 UltiMaker 的連線運作正常。"
+
+# AI Translated
+msgid "Could not connect to UltiMaker"
+msgstr "無法連線至 UltiMaker"
+
+# AI Translated
+msgid "Error generating credentials! See the log for details."
+msgstr "產生驗證資訊時發生錯誤!詳情請參閱記錄檔。"
+
+# AI Translated
+#. TRN %1% and %2% are the ID and KEY returned by the printer.
+#, boost-format
+msgid "ERROR: Either ID or KEY is empty. ID=%1% KEY=%2%"
+msgstr "錯誤:ID 或 KEY 為空。ID=%1% KEY=%2%"
+
+# AI Translated
+#. TRN Generated API credentials. %1% is the username, %2% the password.
+#, boost-format
+msgid "Username: %1% Password: %2%"
+msgstr "使用者名稱:%1% 密碼:%2%"
+
+# AI Translated
+msgid "Authentication credentials are waiting for approval. Please approve access via the dialog box on the printer's screen."
+msgstr "驗證資訊正在等待核准,請在列印裝置螢幕上的對話框中核准存取。"
+
+# AI Translated
+msgid "Invalid authentication credentials"
+msgstr "無效的驗證資訊"
+
+# AI Translated
+msgid "Error: No authentication credentials found!"
+msgstr "錯誤:找不到驗證資訊!"
msgid "Upload not enabled on FlashAir card."
msgstr "FlashAir 卡上未啟用上傳。"
+# AI Translated
msgid "Connection to FlashAir is working correctly and upload is enabled."
-msgstr "與 FlashAir 的連線工作正常並啟用上傳。"
+msgstr "與 FlashAir 的連線工作正常,且已啟用上傳。"
+# AI Translated
msgid "Could not connect to FlashAir"
-msgstr "無法連線到 FlashAir"
+msgstr "無法連線至 FlashAir"
msgid "Note: FlashAir with firmware 2.00.02 or newer and activated upload function is required."
msgstr "注意:FlashAir 需要韌體為 2.00.02 或更新版本並啟動上傳功能。"
@@ -21415,8 +25573,9 @@ msgstr "注意:FlashAir 需要韌體為 2.00.02 或更新版本並啟動上傳
msgid "Connection to MKS is working correctly."
msgstr "成功連線到 MKS。"
+# AI Translated
msgid "Could not connect to MKS"
-msgstr "無法連線到 MKS"
+msgstr "無法連線至 MKS"
# AI Translated
msgid "Connection to Moonraker is working correctly."
@@ -21438,8 +25597,9 @@ msgstr "無法解析 Moonraker 伺服器回應:%s"
msgid "Connection to OctoPrint is working correctly."
msgstr "與 OctoPrint 的連線工作正常。"
+# AI Translated
msgid "Could not connect to OctoPrint"
-msgstr "無法連線到 OctoPrint"
+msgstr "無法連線至 OctoPrint"
msgid "Note: OctoPrint version 1.1.0 or higher is required."
msgstr "注意:OctoPrint 版本至少需要 1.1.0。"
@@ -21447,44 +25607,50 @@ msgstr "注意:OctoPrint 版本至少需要 1.1.0。"
msgid "Connection to Prusa SL1 / SL1S is working correctly."
msgstr "與 Prusa SL1 / SL1S 的連線工作正常。"
+# AI Translated
msgid "Could not connect to Prusa SLA"
-msgstr "無法連線到 Prusa SLA"
+msgstr "無法連線至 Prusa SLA"
msgid "Connection to PrusaLink is working correctly."
msgstr "與 PrusaLink 的連線工作正常。"
+# AI Translated
msgid "Could not connect to PrusaLink"
-msgstr "無法連線到 PrusaLink"
+msgstr "無法連線至 PrusaLink"
msgid "Storages found"
msgstr "找到儲存空間"
+# AI Translated
#. TRN %1% = storage path
#, boost-format
msgid "%1% : read only"
-msgstr "%1% : 唯讀"
+msgstr "%1%:唯讀"
#. TRN %1% = storage path
#, boost-format
msgid "%1% : no free space"
msgstr "%1%:沒有可用空間"
+# AI Translated
#. TRN %1% = host
#, boost-format
msgid "Upload has failed. There is no suitable storage found at %1%."
-msgstr "上傳失敗。未找到適當的儲存位置在 %1%。"
+msgstr "上傳失敗。在 %1% 找不到合適的儲存位置。"
msgid "Connection to Prusa Connect is working correctly."
msgstr "成功連線到 Prusa Connect。"
+# AI Translated
msgid "Could not connect to Prusa Connect"
-msgstr "無法連線到 Prusa Connect"
+msgstr "無法連線至 Prusa Connect"
msgid "Connection to Repetier is working correctly."
msgstr "與 Repetier 的連線工作正常。"
+# AI Translated
msgid "Could not connect to Repetier"
-msgstr "無法連線到 Repetier"
+msgstr "無法連線至 Repetier"
msgid "Note: Repetier version 0.90.0 or higher is required."
msgstr "注意:Repetier 版本至少需要 0.90.0。"
@@ -21497,37 +25663,49 @@ msgstr ""
"HTTP 狀態:%1%\n"
"訊息內容:「%2%」"
+# AI Translated
#, boost-format
msgid ""
"Parsing of host response failed.\n"
"Message body: \"%1%\"\n"
"Error: \"%2%\""
msgstr ""
-"主機溝通解析失敗。\n"
-"訊息內容:「%1%」。\n"
-"錯誤碼:「%2%」"
+"無法解析主機回應。\n"
+"訊息內容:「%1%」\n"
+"錯誤:「%2%」"
+# AI Translated
#, boost-format
msgid ""
"Enumeration of host printers failed.\n"
"Message body: \"%1%\"\n"
"Error: \"%2%\""
msgstr ""
-"主機列印裝置例舉失敗。\n"
+"無法列舉主機上的列印裝置。\n"
"訊息內容:「%1%」\n"
-"錯誤碼:「%2%」"
+"錯誤:「%2%」"
+
+# AI Translated
+msgid "Connection to ESP3D is working correctly."
+msgstr "與 ESP3D 的連線工作正常。"
+
+# AI Translated
+msgid "Could not connect to ESP3D"
+msgstr "無法連線至 ESP3D"
msgid "No AMS"
msgstr "無 AMS"
+# AI Translated
msgid "There is no device available to send printing."
-msgstr "沒有可用的機臺可以傳送列印。"
+msgstr "沒有可用的裝置可以傳送列印。"
msgid "The number of printers in use simultaneously cannot be equal to 0."
msgstr "同時使用的列印裝置數量不能為 0。"
+# AI Translated
msgid "Use External Spool"
-msgstr "使用外掛線盤"
+msgstr "使用外部料盤"
msgid "Select Printers"
msgstr "選擇列印裝置"
@@ -21541,8 +25719,9 @@ msgstr "列印裝置狀態"
msgid "AMS Status"
msgstr "AMS 狀態"
+# AI Translated
msgid "Please select the devices you would like to manage here (up to 6 devices)"
-msgstr "請選擇要管理的裝置(最多6台)"
+msgstr "請在此選擇要管理的裝置(最多 6 台)"
msgid "Printing Options"
msgstr "列印選項"
@@ -21553,17 +25732,23 @@ msgstr "動態流量校正"
msgid "Send Options"
msgstr "傳送選項"
+# AI Translated
+# Needs human review: Sentence split around a number field (SendMultiMachinePage.cpp:1454): 'Send to' [N] 'printers at the same time…'. Check the assembled line reads 同時傳送至 N 台列印裝置。
msgid "Send to"
-msgstr "傳送到"
+msgstr "同時傳送至"
+# AI Translated
+# Needs human review: Sentence split around a number field (SendMultiMachinePage.cpp:1454); check the assembled line reads 同時傳送至 N 台列印裝置。
msgid "printers at the same time. (It depends on how many devices can undergo heating at the same time.)"
-msgstr "可同時運行的列印裝置數量。(取決於能同時加熱的裝置數量而定。)"
+msgstr "台列印裝置。(取決於可同時加熱的裝置數量。)"
msgid "Wait"
msgstr "等待"
+# AI Translated
+# Needs human review: Sentence split around a number field (SendMultiMachinePage.cpp:1455): 'Wait' [N] 'minute each batch…'. Check the assembled line reads 等待 N 分鐘後傳送下一批。
msgid "minute each batch. (It depends on how long it takes to complete heating.)"
-msgstr "每批次需要的分鐘數。(具體取決於加熱完成所需的時間。)"
+msgstr "分鐘後傳送下一批。(取決於完成加熱所需的時間。)"
msgid "Task Sending"
msgstr "傳送中"
@@ -21588,6 +25773,11 @@ msgstr "最多可選擇 %d 台"
msgid "No task"
msgstr "無作業"
+# AI Translated
+msgctxt "Verb"
+msgid "View"
+msgstr "檢視"
+
msgid "Edit Printers"
msgstr "編輯列印裝置"
@@ -21608,8 +25798,9 @@ msgstr "狀態"
msgid "Sent Time"
msgstr "傳送時間"
+# AI Translated
msgid "There are no tasks to be sent!"
-msgstr "無檔案可傳!"
+msgstr "沒有要傳送的作業!"
msgid "No historical tasks!"
msgstr "無歷史記錄!"
@@ -21629,6 +25820,11 @@ msgstr "列印失敗"
msgid "Printing Pause"
msgstr "列印暫停"
+# AI Translated
+msgctxt "Device status"
+msgid "Prepare"
+msgstr "準備中"
+
msgid "Pending"
msgstr "待處理"
@@ -21661,11 +25857,9 @@ msgstr "啟用智慧線材指派:將一種線材指派給多個噴嘴以最大
msgid "File Saving"
msgstr "檔案儲存"
-msgid "Don't remind me again"
-msgstr "不要再提醒我"
-
+# AI Translated
msgid "No further pop-up will appear. You can reopen it in 'Preferences'"
-msgstr "不會再出現任何彈出視窗。您可以在“偏好設定”中重新開啟它"
+msgstr "不會再出現任何彈出視窗。您可以在「偏好設定」中重新開啟它"
msgid "Filament-Saving Mode"
msgstr "節省線材模式"
@@ -21685,25 +25879,35 @@ msgstr "根據列印裝置實際線材狀態生成左右噴嘴線材分組,減
msgid "Manually assign filament to the left or right nozzle"
msgstr "手動將線材分配到左側或右側噴嘴"
+# AI Translated
msgid "Global settings"
-msgstr "全域性設定"
-
-msgid "Video tutorial"
-msgstr "影片指南"
+msgstr "全域設定"
msgid "(Sync with printer)"
msgstr "(與列印裝置同步)"
# AI Translated
-#, c-format, boost-format
-msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
-msgstr "錯誤:%s 擠出機沒有可用的 %s 噴嘴,目前的分組結果無效。"
+msgid "Error: Left extruder has no available Standard nozzle, current group result is invalid."
+msgstr "錯誤:左擠出機沒有可用的標準噴嘴,目前的分組結果無效。"
+
+# AI Translated
+msgid "Error: Left extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "錯誤:左擠出機沒有可用的高流量噴嘴,目前的分組結果無效。"
+
+# AI Translated
+msgid "Error: Right extruder has no available Standard nozzle, current group result is invalid."
+msgstr "錯誤:右擠出機沒有可用的標準噴嘴,目前的分組結果無效。"
+
+# AI Translated
+msgid "Error: Right extruder has no available High Flow nozzle, current group result is invalid."
+msgstr "錯誤:右擠出機沒有可用的高流量噴嘴,目前的分組結果無效。"
msgid "We will slice according to this grouping method:"
msgstr "我們將按照這種分組方法進行切片:"
+# AI Translated
msgid "Tip: You can drag the filaments to reassign them to different nozzles."
-msgstr "提示:您可以拖動線材以將它們重新分配到不同的噴嘴。"
+msgstr "提示:您可以拖曳線材,將其重新分配到不同的噴嘴。"
# AI Translated
msgid "Please adjust your grouping or click "
@@ -21715,40 +25919,50 @@ msgstr " 以設定噴嘴數量"
# AI Translated
msgid "Set the physical nozzle count..."
-msgstr "設定實體噴嘴數量…"
+msgstr "設定實體噴嘴數量..."
# AI Translated
#, c-format, boost-format
msgid "(Std: %d, HF: %d)"
msgstr "(標準:%d,高流量:%d)"
+# AI Translated
msgid "The filament grouping method for current plate is determined by the dropdown option at the slicing plate button."
-msgstr "目前板的線材分組方法由切片板按鈕上的下拉選項確定。"
+msgstr "目前列印板的線材分組方式由切片列印板按鈕上的下拉選項決定。"
msgid "Connected to Obico successfully!"
msgstr "成功連線到 Obico!"
+# AI Translated
msgid "Could not connect to Obico"
-msgstr "無法連線到 Obico"
+msgstr "無法連線至 Obico"
msgid "Connected to SimplyPrint successfully!"
msgstr "成功連線到 SimplyPrint!"
+# AI Translated
msgid "Could not connect to SimplyPrint"
-msgstr "無法連線到 SimplyPrint"
+msgstr "無法連線至 SimplyPrint"
msgid "Internal error"
msgstr "內部錯誤"
-msgid "Unknown error"
-msgstr "未知錯誤"
-
msgid "SimplyPrint account not linked. Go to Connect options to set it up."
msgstr "SimplyPrint 帳戶未連結。請前往連線選項進行設定。"
msgid "Flashforge returned an invalid JSON response."
msgstr "Flashforge 回傳了無效的 JSON 回應。"
+# AI Translated
+msgid "Request failed"
+msgstr "請求失敗"
+
+# AI Translated
+#. TRN %1% is the error code returned by the printer, %2% its error message.
+#, boost-format
+msgid "Flashforge local API error %1%: %2%"
+msgstr "Flashforge 本機 API 錯誤 %1%:%2%"
+
msgid "No Flashforge printers were discovered on the local network."
msgstr "在區域網路上未發現任何 Flashforge 列印裝置。"
@@ -21791,8 +26005,9 @@ msgstr "未偵測到 CC2 裝置"
msgid "Connection to ElegooLink is working correctly."
msgstr "與 ElegooLink 的連線運作正常。"
+# AI Translated
msgid "Could not connect to ElegooLink"
-msgstr "無法連線到 ElegooLink"
+msgstr "無法連線至 ElegooLink"
#, boost-format
msgid "Error code: %1%"
@@ -21873,35 +26088,45 @@ msgstr "使用者取消。"
msgid "Max angle"
msgstr "最大角度"
+# AI Translated
msgid "Detection radius"
-msgstr "偵測範圍"
+msgstr "偵測半徑"
msgid "Selected"
msgstr "已選取"
+# AI Translated
msgid "Auto-generate"
-msgstr "自動生成"
+msgstr "自動產生"
+# AI Translated
msgid "Generate brim ears using Max angle and Detection radius"
-msgstr "使用最大角度與偵測半徑產生耳狀 Brim"
+msgstr "使用「最大角度」與「偵測半徑」產生耳狀 Brim"
msgid "Add or Select"
msgstr "新增或選取"
+# AI Translated
msgid "Warning: The brim type is not set to \"painted\", the brim ears will not take effect!"
-msgstr "警告:邊緣類型未設定「上色」,因此邊緣支撐 (Brim) 不會生效!"
+msgstr "警告:Brim 類型未設為「繪製」,耳狀 Brim 將不會生效!"
+# AI Translated
msgid "Set the brim type of this object to \"painted\""
-msgstr "將此物件的邊緣類型設定為\"繪製\""
+msgstr "將此物件的 Brim 類型設為「繪製」"
-msgid "invalid brim ears"
-msgstr "無效的耳狀 Brim"
+# AI Translated
+#, c-format, boost-format
+msgid "%d invalid brim ear"
+msgid_plural "%d invalid brim ears"
+msgstr[0] "%d 個無效的耳狀 Brim"
+# AI Translated
msgid "Brim Ears"
-msgstr "邊緣支撐 (Brim)"
+msgstr "耳狀 Brim"
+# AI Translated
msgid "Please select single object."
-msgstr "請選擇一個物件。"
+msgstr "請選取單一物件。"
msgid "Entering Brim Ears"
msgstr "進入耳狀 Brim 模式"
@@ -21915,12 +26140,14 @@ msgstr "縮小"
msgid "Zoom In"
msgstr "放大"
+# AI Translated
msgid "Load skipping objects information failed. Please try again."
-msgstr "載入跳過物件資訊失敗。請再試一次。"
+msgstr "無法載入跳過物件資訊。請再試一次。"
msgid "Failed to create the temporary folder."
msgstr "無法建立暫存資料夾。"
+#. TRN Shown right after the number of selected objects, which is a separate label: "3/10 Selected". %d is the total number of objects.
#, c-format, boost-format
msgid "/%d Selected"
msgstr "/%d 已選擇"
@@ -21928,8 +26155,9 @@ msgstr "/%d 已選擇"
msgid "Nothing selected"
msgstr "未選擇任何內容"
+# AI Translated
msgid "Over 64 objects in single plate"
-msgstr "單盤超過 64 個物品"
+msgstr "單一列印板上超過 64 個物件"
msgid "The current print job cannot be skipped"
msgstr "無法跳過目前列印作業"
@@ -21937,15 +26165,19 @@ msgstr "無法跳過目前列印作業"
msgid "Skipping all objects."
msgstr "跳過所有物件。"
+# AI Translated
msgid "The printing job will be stopped. Continue?"
-msgstr "列印作業將停止。繼續?"
+msgstr "列印作業將停止。要繼續嗎?"
+# AI Translated
#, c-format, boost-format
-msgid "Skipping %d objects."
-msgstr "跳過 %d 物件。"
+msgid "Skipping %d object."
+msgid_plural "Skipping %d objects."
+msgstr[0] "跳過 %d 個物件。"
+# AI Translated
msgid "This action cannot be undone. Continue?"
-msgstr "此操作無法撤消。繼續?"
+msgstr "此操作無法復原。要繼續嗎?"
msgid "Skipping objects."
msgstr "跳過物件。"
@@ -21977,8 +26209,9 @@ msgstr "官方線材"
msgid "More Colors"
msgstr "更多顏色"
+# AI Translated
msgid "Network Plug-in Update Available"
-msgstr "網路外掛程式更新可用"
+msgstr "有可用的網路外掛程式更新"
msgid "Bambu Network Plug-in Required"
msgstr "需要 Bambu 網路外掛程式"
@@ -21986,8 +26219,9 @@ msgstr "需要 Bambu 網路外掛程式"
msgid "The Bambu Network Plug-in is corrupted or incompatible. Please reinstall it."
msgstr "Bambu 網路外掛程式已損壞或不相容。請重新安裝。"
+# AI Translated
msgid "The Bambu Network Plug-in is required for cloud features, printer discovery, and remote printing."
-msgstr "Bambu 網路外掛程式用於雲端功能、印表機探索和遠端列印。"
+msgstr "使用雲端功能、列印裝置探索和遠端列印需要 Bambu 網路外掛程式。"
#, c-format, boost-format
msgid "Error: %s"
@@ -22043,14 +26277,16 @@ msgstr "立即重新啟動"
msgid "Restart Later"
msgstr "稍後重新啟動"
+# AI Translated
msgid "NO RAMMING AT ALL"
-msgstr "完全不擠壓"
+msgstr "完全不進行尖端成型"
msgid "s"
msgstr "秒"
+# AI Translated
msgid "Volumetric speed"
-msgstr "體積速度"
+msgstr "體積流量"
msgid "Step file import parameters"
msgstr "STEP 檔案匯入參數"
@@ -22090,6 +26326,42 @@ msgstr "若啟用,上述數值會儲存為未來 STEP 匯入所使用的預設
msgid "PresetBundle"
msgstr "設定檔組"
+# AI Translated
+msgid "Export Presets"
+msgstr "匯出預設"
+
+# AI Translated
+msgid "Show in folder"
+msgstr "在資料夾中顯示"
+
+# AI Translated
+msgid "Delete bundle"
+msgstr "刪除設定檔組"
+
+# AI Translated
+msgid "Unsubscribe bundle"
+msgstr "取消訂閱設定檔組"
+
+# AI Translated
+msgid "Update available"
+msgstr "有可用的更新"
+
+# AI Translated
+msgid "Unauthorized bundle"
+msgstr "未授權的設定檔組"
+
+# AI Translated
+msgid "Open this bundle in your browser"
+msgstr "在瀏覽器中開啟此設定檔組"
+
+# AI Translated
+msgid "Subscribed"
+msgstr "已訂閱"
+
+# AI Translated
+msgid "Local"
+msgstr "本機"
+
msgid "Bundle folder does not exist."
msgstr "設定檔組資料夾不存在。"
@@ -22123,6 +26395,14 @@ msgstr "取消訂閱設定檔組"
msgid "ExportPresetBundle"
msgstr "匯出設定檔組"
+# AI Translated
+msgid "Export to OrcaCloud"
+msgstr "匯出至 OrcaCloud"
+
+# AI Translated
+msgid "Export to folder"
+msgstr "匯出至資料夾"
+
msgid "Save preset bundle"
msgstr "儲存設定檔組"
@@ -22130,23 +26410,28 @@ msgstr "儲存設定檔組"
msgid "Orca Preset Bundle (*.orca_bundle)|*.orca_bundle"
msgstr "Orca 設定檔組 (*.orca_bundle)|*.orca_bundle"
+# AI Translated
msgid "Performing desktop integration failed - boost::filesystem::canonical did not return appimage path."
-msgstr "執行桌面整合失敗 - boost::filesystem::canonical 未回傳 appimage 路徑。"
+msgstr "執行桌面整合失敗:boost::filesystem::canonical 未傳回 appimage 路徑。"
+# AI Translated
msgid "Performing desktop integration failed - Could not find executable."
-msgstr "執行桌面整合失敗 - 找不到執行檔。"
+msgstr "執行桌面整合失敗:找不到執行檔。"
msgid "Performing desktop integration failed because the application directory was not found."
msgstr "執行桌面整合失敗,因為找不到應用程式目錄。"
+# AI Translated
msgid "Performing desktop integration failed - could not create Gcodeviewer desktop file. OrcaSlicer desktop file was probably created successfully."
-msgstr "執行桌面整合失敗 - 無法建立 Gcodeviewer 桌面檔案。OrcaSlicer 桌面檔案可能已成功建立。"
+msgstr "執行桌面整合失敗:無法建立 Gcodeviewer 桌面檔案。OrcaSlicer 桌面檔案可能已成功建立。"
+# AI Translated
msgid "Performing downloader desktop integration failed - boost::filesystem::canonical did not return appimage path."
-msgstr "執行下載器桌面整合失敗 - boost::filesystem::canonical 未傳回 appimage 路徑。"
+msgstr "執行下載器桌面整合失敗:boost::filesystem::canonical 未傳回 appimage 路徑。"
+# AI Translated
msgid "Performing downloader desktop integration failed - Could not find executable."
-msgstr "執行下載器桌面整合失敗 - 找不到執行檔。"
+msgstr "執行下載器桌面整合失敗:找不到執行檔。"
msgid "Performing downloader desktop integration failed because the application directory was not found."
msgstr "執行下載器桌面整合失敗,因為找不到應用程式目錄。"
@@ -22186,7 +26471,7 @@ msgstr "無法在 %1% 建立檔案"
# AI Translated
msgid "Failed to write and move."
-msgstr "寫入及移動失敗。"
+msgstr "無法寫入並移動。"
msgid "Archive preview"
msgstr "封存預覽"
@@ -22210,13 +26495,19 @@ msgstr "AMS 乾燥控制"
msgid "Filament Drying Settings"
msgstr "線材烘乾設定"
+# AI Translated
+# Needs human review: Unit label next to the AMS drying-time field (AMSDryControl); check '小時' fits the label width.
+msgctxt "Hours unit"
+msgid "H"
+msgstr "小時"
+
# AI Translated
msgid "Stopping"
msgstr "正在停止"
# AI Translated
msgid "Unable to dry temporarily due to ..."
-msgstr "由於…暫時無法烘乾"
+msgstr "暫時無法烘乾,原因是..."
# AI Translated
msgid "Drying Error"
@@ -22224,7 +26515,7 @@ msgstr "烘乾錯誤"
# AI Translated
msgid "Please check the Assistant for troubleshooting"
-msgstr "請查看小幫手以進行疑難排解"
+msgstr "請查看助手以進行疑難排解"
# AI Translated
msgid "Please remove and store the filament (as shown)."
@@ -22245,11 +26536,11 @@ msgstr "返回"
# AI Translated
msgid "Drying-Heating"
-msgstr "烘乾—加熱"
+msgstr "烘乾:加熱中"
# AI Translated
msgid "Drying-Dehumidifying"
-msgstr "烘乾—除濕"
+msgstr "烘乾:除濕中"
# AI Translated
#, c-format, boost-format
@@ -22295,7 +26586,7 @@ msgstr "AMS 忙碌中"
# AI Translated
msgid " AMS is calibrating | reading RFID | loading/unloading material, please wait."
-msgstr " AMS 正在校準 | 讀取 RFID | 裝載/退出材料,請稍候。"
+msgstr " AMS 正在校正 | 讀取 RFID | 進料/退料,請稍候。"
# AI Translated
msgid "Filament in AMS outlet"
@@ -22323,7 +26614,7 @@ msgstr " 工作期間 AMS 可能正在使用中。"
# AI Translated
msgid " Firmware update in progress, please wait..."
-msgstr " 韌體更新進行中,請稍候…"
+msgstr " 韌體更新進行中,請稍候..."
# AI Translated
msgid " Please plug in the power and then use the drying function."
@@ -22339,7 +26630,7 @@ msgstr "系統忙碌中"
# AI Translated
msgid " Initiating other drying processes, please wait a few seconds..."
-msgstr " 正在啟動其他烘乾程序,請稍候幾秒鐘…"
+msgstr " 正在啟動其他烘乾程序,請稍候幾秒鐘..."
# AI Translated
msgid "For better drying results, remove the filament and allow it to rotate."
@@ -22347,7 +26638,7 @@ msgstr "為獲得更好的烘乾效果,請取出線材並讓其轉動。"
# AI Translated
msgid "The AMS will automatically rotate the stored filament slots to enhance the drying performance."
-msgstr "AMS 會自動轉動已收納的線材槽,以提升烘乾效果。"
+msgstr "AMS 會自動轉動已收納線材的槽位,以提升烘乾效果。"
# AI Translated
msgid "Alternatively, you can dry the filament without removing it."
@@ -22389,6 +26680,11 @@ msgstr "開始:檢查進氣"
msgid "Starting: Checking air vent"
msgstr "開始:檢查排氣口"
+# AI Translated
+#, boost-format
+msgid "Unable to create directory %1%"
+msgstr "無法建立目錄 %1%"
+
msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used."
msgstr "線材可能與目前的列印裝置設定不相容,將使用一般線材預設。"
@@ -22404,6 +26700,105 @@ msgstr "線材可能與目前的列印裝置設定不相容,將使用隨機線
msgid "The filament model is unknown. A random filament preset will be used."
msgstr "線材型號未知,將使用隨機線材預設。"
+# AI Translated
+#, boost-format
+msgid "Unknown configuration file: %1%"
+msgstr "未知的設定檔:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Invalid configuration file: %1%"
+msgstr "無效的設定檔:%1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: mixed filament"
+msgstr "槽位 %1% -> 槽位 %2%:混合線材"
+
+# AI Translated
+msgid "mixed filament definition: filament slot limit reached"
+msgstr "混合線材定義:已達線材槽位數量上限"
+
+# AI Translated
+msgid "filament slot limit reached"
+msgstr "已達線材槽位數量上限"
+
+# AI Translated
+#, boost-format
+msgid "the printer's filament limit is %1%"
+msgstr "列印裝置的線材數量上限為 %1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1% -> slot %2%: unassigned mixed filament (the printer's filament limit is %3%)"
+msgstr "槽位 %1% -> 槽位 %2%:未分配的混合線材(列印裝置的線材數量上限為 %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: unassigned mixed filament (the printer's filament limit is %2%)"
+msgstr "槽位 %1%:未分配的混合線材(列印裝置的線材數量上限為 %2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3%"
+msgstr "槽位 %1%:%2% -> %3%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported"
+msgstr "槽位 %1%:無法匯入混合線材定義"
+
+# AI Translated
+msgid "needs at least two components"
+msgstr "至少需要兩個成分"
+
+# AI Translated
+msgid "components reference missing slots"
+msgstr "成分參照了不存在的槽位"
+
+# AI Translated
+#, boost-format
+msgid "mixed filament definition: %1%"
+msgstr "混合線材定義:%1%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: mixed filament definition could not be imported (%2%)"
+msgstr "槽位 %1%:無法匯入混合線材定義(%2%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: %2% -> %3% (substitute)"
+msgstr "槽位 %1%:%2% -> %3%(替代)"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%\n"
+"Suggest cleaning the directory %2% first"
+msgstr ""
+"載入設定檔 %1% 失敗\n"
+"建議先清理目錄 %2%"
+
+# AI Translated
+#. TRN %1% is the vendor name, %2% the version found in its profile, %3% the profile directory.
+#, boost-format
+msgid ""
+"Vendor %1%'s config version: %2% invalid\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"廠牌 %1% 的設定檔版本 %2% 無效\n"
+"建議先清理目錄 %3%"
+
+# AI Translated
+#, boost-format
+msgid ""
+"Failed loading configuration file %1%: %2%\n"
+"Suggest cleaning the directory %3% first"
+msgstr ""
+"載入設定檔 %1% 失敗:%2%\n"
+"建議先清理目錄 %3%"
+
# AI Translated
msgid "Hide reference planes and axes"
msgstr "隱藏參考平面與軸"
@@ -22422,7 +26817,7 @@ msgstr "顯示列印板及其網格"
# AI Translated
msgid "Click a reference plane or a flat face to sketch on it — Esc cancels"
-msgstr "點選參考平面或平面以在其上繪製草圖 — 按 Esc 取消"
+msgstr "點選參考平面或平坦面以在其上繪製草圖,按 Esc 取消"
# AI Translated
msgid "Construction"
@@ -22435,71 +26830,71 @@ msgstr "%s · 平面:%s"
# AI Translated
msgid "Line — click start, then end"
-msgstr "直線 — 點選起點,再點選終點"
+msgstr "直線:點選起點,再點選終點"
# AI Translated
msgid "Rectangle — click two opposite corners"
-msgstr "矩形 — 點選兩個對角"
+msgstr "矩形:點選兩個對角"
# AI Translated
msgid "Circle — click center, then radius"
-msgstr "圓 — 點選圓心,再點選半徑"
+msgstr "圓:點選圓心,再點選半徑"
# AI Translated
msgid "Arc — click start, end, then a point"
-msgstr "圓弧 — 依序點選起點、終點,再點選一點"
+msgstr "圓弧:依序點選起點、終點,再點選一點"
# AI Translated
msgid "Slot — two centerline ends, then the width"
-msgstr "槽 — 點選中心線兩端,再設定寬度"
+msgstr "槽:點選中心線兩端,再設定寬度"
# AI Translated
msgid "Ellipse — center, major end, minor point"
-msgstr "橢圓 — 中心、長軸端點、短軸上的點"
+msgstr "橢圓:中心、長軸端點、短軸上的點"
# AI Translated
msgid "Spline — click control points"
-msgstr "雲形線 — 點選控制點"
+msgstr "雲形線:點選控制點"
# AI Translated
msgid "Point — click to place"
-msgstr "點 — 點選以放置"
+msgstr "點:點選以放置"
# AI Translated
msgid "Dimension — click 2 points or an entity"
-msgstr "尺寸 — 點選 2 個點或一個圖元"
+msgstr "尺寸:點選 2 個點或一個圖元"
# AI Translated
msgid "Trim — click a segment to trim it"
-msgstr "修剪 — 點選線段以修剪"
+msgstr "修剪:點選要修剪的線段"
# AI Translated
msgid "Extend — click a line/arc to extend it"
-msgstr "延伸 — 點選直線/圓弧以延伸"
+msgstr "延伸:點選要延伸的直線/圓弧"
# AI Translated
msgid "Offset — pick an entity, drag the distance"
-msgstr "偏移 — 選取圖元,拖曳設定距離"
+msgstr "偏移:選取圖元,拖曳設定距離"
# AI Translated
msgid "Mirror — pick axis, then entities"
-msgstr "鏡像 — 選取軸,再選取圖元"
+msgstr "鏡像:選取軸,再選取圖元"
# AI Translated
msgid "Fillet — pick two lines, set the radius"
-msgstr "圓角 — 選取兩條直線,設定半徑"
+msgstr "圓角:選取兩條直線,設定半徑"
# AI Translated
msgid "Chamfer — pick two lines, set the distance"
-msgstr "倒角 — 選取兩條直線,設定距離"
+msgstr "倒角:選取兩條直線,設定距離"
# AI Translated
msgid "Polygon — click center, then a vertex"
-msgstr "多邊形 — 點選中心,再點選一個頂點"
+msgstr "多邊形:點選中心,再點選一個頂點"
# AI Translated
msgid "Nothing here has a value to type — pick a line, an arc, a circle, or two entities"
-msgstr "此處沒有可輸入的數值 — 請選取直線、圓弧、圓或兩個圖元"
+msgstr "此處沒有可輸入的數值,請選取直線、圓弧、圓或兩個圖元"
# AI Translated
msgid "Normal to the sketch plane"
@@ -22608,7 +27003,7 @@ msgstr "將實體面偏移為薄板(新本體)"
# AI Translated
msgid "Thicken needs a solid body — add or import one first"
-msgstr "加厚需要實體本體 — 請先新增或匯入一個"
+msgstr "「加厚」需要實體本體,請先新增或匯入一個"
# AI Translated
#, c-format
@@ -22626,7 +27021,7 @@ msgstr "從開放的草圖線長出薄壁,並與本體融合"
# AI Translated
msgid "Rib needs a solid body — add or import one first"
-msgstr "肋需要實體本體 — 請先新增或匯入一個"
+msgstr "「肋」需要實體本體,請先新增或匯入一個"
# AI Translated
msgid "Create a sketch with an open line first"
@@ -22643,7 +27038,7 @@ msgstr "請先建立要陣列的實體本體"
# AI Translated
msgid "Pattern — needs a solid body to replicate"
-msgstr "陣列 — 需要可複製的實體本體"
+msgstr "陣列:需要可複製的實體本體"
# AI Translated
msgid "Surface (extrude / revolve / loft / fill / offset / thicken)"
@@ -22699,7 +27094,7 @@ msgstr "以帶正負號的距離偏移曲面本體的殼"
# AI Translated
msgid "No sheet body to offset — create a surface feature first"
-msgstr "沒有可偏移的曲面本體 — 請先建立曲面特徵"
+msgstr "沒有可偏移的曲面本體,請先建立曲面特徵"
# AI Translated
msgid "Thicken Surface"
@@ -22711,12 +27106,17 @@ msgstr "將曲面本體加厚為實體"
# AI Translated
msgid "No sheet body to thicken — create a surface feature first"
-msgstr "沒有可加厚的曲面本體 — 請先建立曲面特徵"
+msgstr "沒有可加厚的曲面本體,請先建立曲面特徵"
# AI Translated
msgid "Datum / Curve (plane / axis / coord sys / helix / project)"
msgstr "基準 / 曲線(平面 / 軸 / 座標系 / 螺旋線 / 投影)"
+# AI Translated
+msgctxt "Design"
+msgid "Plane"
+msgstr "平面"
+
# AI Translated
msgid "Reference plane (offset / tilt / midplane / tangent / two edges / coincident)"
msgstr "參考平面(偏移 / 傾斜 / 中間平面 / 相切 / 兩條邊 / 重合)"
@@ -22743,7 +27143,7 @@ msgstr "螺旋線"
# AI Translated
msgid "Helical curve (spring path) — use as a sweep path for coils / springs / augers"
-msgstr "螺旋曲線(彈簧路徑) — 可作為線圈 / 彈簧 / 螺旋鑽的掃掠路徑"
+msgstr "螺旋曲線(彈簧路徑),可作為線圈 / 彈簧 / 螺旋鑽的掃掠路徑"
# AI Translated
msgctxt "Design"
@@ -22756,7 +27156,7 @@ msgstr "將本體的邊投影到平面上作為草圖圖元"
# AI Translated
msgid "Project needs a body — add or import one first"
-msgstr "投影需要本體 — 請先新增或匯入一個"
+msgstr "「投影」需要本體,請先新增或匯入一個"
# AI Translated
#, c-format, boost-format
@@ -22781,7 +27181,12 @@ msgstr "移動和/或旋轉現有本體"
# AI Translated
msgid "Transform needs a body — add or import one first"
-msgstr "變換需要本體 — 請先新增或匯入一個"
+msgstr "「變換」需要本體,請先新增或匯入一個"
+
+# AI Translated
+msgctxt "Design"
+msgid "Mirror"
+msgstr "鏡像"
# AI Translated
msgid "Reflect a body about a plane"
@@ -22789,7 +27194,7 @@ msgstr "以平面為基準鏡像本體"
# AI Translated
msgid "Mirror needs a body — add or import one first"
-msgstr "鏡像需要本體 — 請先新增或匯入一個"
+msgstr "「鏡像」需要本體,請先新增或匯入一個"
# AI Translated
msgid "Mate"
@@ -22805,7 +27210,7 @@ msgstr "布林(合併本體)"
# AI Translated
msgid "Boolean — needs two solid bodies to combine"
-msgstr "布林 — 需要兩個實體本體才能合併"
+msgstr "布林:需要兩個實體本體才能合併"
# AI Translated
msgid "Cut (split a body with a plane)"
@@ -22817,15 +27222,15 @@ msgstr "請先建立要切割的實體本體"
# AI Translated
msgid "Cut — needs a solid body to slice"
-msgstr "切割 — 需要可切割的實體本體"
+msgstr "切割:需要可切割的實體本體"
# AI Translated
msgid "Color — set the selected body's display color"
-msgstr "顏色 — 設定所選本體的顯示顏色"
+msgstr "顏色:設定所選本體的顯示顏色"
# AI Translated
msgid "Select a feature, or a body, first — then rename it"
-msgstr "請先選擇特徵或本體 — 再重新命名"
+msgstr "請先選取特徵或本體,再重新命名"
# AI Translated
msgid "Fillet / chamfer / draft / shell / delete face"
@@ -22854,7 +27259,7 @@ msgstr "薄殼"
# AI Translated
msgid "Hollow the body to a wall thickness, opening a picked face"
-msgstr "將本體挖空至指定壁厚,並開啟選取的面"
+msgstr "將本體挖空至指定壁厚,並使選取的面開口"
# AI Translated
msgid "Delete Face"
@@ -22866,7 +27271,7 @@ msgstr "從本體移除面並修復實體"
# AI Translated
msgid "Delete Face needs a body — add or import one first"
-msgstr "刪除面需要本體 — 請先新增或匯入一個"
+msgstr "「刪除面」需要本體,請先新增或匯入一個"
# AI Translated
msgid "(none)"
@@ -22876,6 +27281,11 @@ msgstr "(無)"
msgid "Hole / thread"
msgstr "孔 / 螺紋"
+# AI Translated
+msgctxt "Design"
+msgid "Hole"
+msgstr "孔"
+
# AI Translated
msgid "Drill a hole, centered on a picked face or placed on a plane"
msgstr "鑽孔,以選取的面為中心或放置於平面上"
@@ -22920,9 +27330,14 @@ msgstr "點選 2 個點或一條直線 / 圓 / 圓弧以標註尺寸"
msgid "Line / polyline"
msgstr "直線 / 聚合線"
+# AI Translated
+msgctxt "Design"
+msgid "Line"
+msgstr "直線"
+
# AI Translated
msgid "Click start, then end — then set the exact length"
-msgstr "點選起點,再點選終點 — 然後設定精確長度"
+msgstr "點選起點,再點選終點,然後設定精確長度"
# AI Translated
msgid "Polyline"
@@ -23056,21 +27471,24 @@ msgstr "雲形線"
msgid "Click control points; double-click, right-click or Enter to finish"
msgstr "點選控制點;按兩下、按右鍵或按 Enter 以完成"
+msgid "Point"
+msgstr "點"
+
# AI Translated
msgid "Click to place a point"
msgstr "點選以放置點"
# AI Translated
msgid "Select — click to select; Shift to add"
-msgstr "選取 — 點選以選取;按住 Shift 加選"
+msgstr "選取:點選以選取;按住 Shift 加選"
# AI Translated
msgid "Text — emboss text as a profile"
-msgstr "文字 — 將文字浮雕為輪廓"
+msgstr "文字:將文字浮雕為輪廓"
# AI Translated
msgid "SVG — import an outline as a profile"
-msgstr "SVG — 匯入外框作為輪廓"
+msgstr "SVG:匯入外框作為輪廓"
# AI Translated
msgid "Fillet / chamfer"
@@ -23122,7 +27540,7 @@ msgstr "點選直線或圓弧,將其延伸至最近的圖元;按 Esc 結束"
# AI Translated
msgid "Constrain — add geometric/dimensional relations"
-msgstr "約束 — 新增幾何/尺寸關係"
+msgstr "約束:新增幾何/尺寸關係"
# AI Translated
msgid "Move / rotate / scale"
@@ -23174,16 +27592,15 @@ msgstr "選取圖元,拖曳角度範圍控點,點選數量;點選空白處
# AI Translated
#, c-format, boost-format
-msgid "Click center then a vertex — %d sides, %s"
-msgstr "點選中心再點選一個頂點 — %d 邊,%s"
+msgid "Click center then a vertex — %d side, circumscribed"
+msgid_plural "Click center then a vertex — %d sides, circumscribed"
+msgstr[0] "點選中心,再點選一個頂點(%d 邊,外切)"
# AI Translated
-msgid "circumscribed"
-msgstr "外切"
-
-# AI Translated
-msgid "inscribed"
-msgstr "內接"
+#, c-format, boost-format
+msgid "Click center then a vertex — %d side, inscribed"
+msgid_plural "Click center then a vertex — %d sides, inscribed"
+msgstr[0] "點選中心,再點選一個頂點(%d 邊,內接)"
# AI Translated
msgid "Polygon"
@@ -23298,7 +27715,7 @@ msgstr "垂直距離"
# AI Translated
msgid "New Design — clear the feature tree"
-msgstr "新設計 — 清除特徵樹"
+msgstr "新設計:清除特徵樹"
# AI Translated
msgid "Import STEP (editable B-rep solid)"
@@ -23318,15 +27735,15 @@ msgstr "建立新草圖"
# AI Translated
msgid "Place on Face (F) — lay the picked face on the bed"
-msgstr "選擇底面 (F) — 將選取的面平放在列印板上"
+msgstr "選擇底面 (F):將選取的面平放在列印板上"
# AI Translated
msgid "Section View — hide part of the model to see inside. PageUp/PageDown move the plane; Delete removes it."
-msgstr "剖面圖 — 隱藏部分模型以查看內部。PageUp/PageDown 移動剖切面;Delete 將其移除。"
+msgstr "剖面圖:隱藏部分模型以檢視內部。按 PageUp/PageDown 移動剖切面,按 Delete 將其移除。"
# AI Translated
msgid "Flip Section — show the opposite half"
-msgstr "翻轉剖面 — 顯示另一半"
+msgstr "翻轉剖面:顯示另一半"
# AI Translated
msgid "Choose how Commit to Plate sends the bodies"
@@ -23416,8 +27833,9 @@ msgstr "至面"
msgid "Up to vertex"
msgstr "至頂點"
+# AI Translated
msgid "End"
-msgstr "結束"
+msgstr "終止條件"
# AI Translated
msgid "2nd dist"
@@ -23455,7 +27873,7 @@ msgstr "反轉方向"
# AI Translated
msgid "(no edge picked — group below)"
-msgstr "(未選取邊 — 使用下方群組)"
+msgstr "(未選取邊,使用下方群組)"
msgid "Bottom"
msgstr "底部"
@@ -23510,7 +27928,7 @@ msgstr "貫穿"
# AI Translated
msgid "(none — uses Hole plane)"
-msgstr "(無 — 使用孔平面)"
+msgstr "(無,使用孔平面)"
# AI Translated
msgid "On face"
@@ -23520,6 +27938,11 @@ msgstr "在面上"
msgid "Thread plane"
msgstr "螺紋平面"
+# AI Translated
+msgctxt "Thread standard"
+msgid "Standard"
+msgstr "標準"
+
# AI Translated
msgid "Pitch"
msgstr "螺距"
@@ -23530,7 +27953,7 @@ msgstr "螺紋深度"
# AI Translated
msgid "(none — uses Thread plane)"
-msgstr "(無 — 使用螺紋平面)"
+msgstr "(無,使用螺紋平面)"
# AI Translated
msgid "Plane X"
@@ -23689,11 +28112,11 @@ msgstr "厚度"
# AI Translated
msgid "Thickens a sheet body into a solid. Flip reverses the direction."
-msgstr "將曲面本體加厚為實體。「翻轉」可反轉方向。"
+msgstr "將曲面本體加厚為實體。「反轉方向」可將方向反轉。"
# AI Translated
msgid "(all faces — closed hollow)"
-msgstr "(所有面 — 封閉中空)"
+msgstr "(所有面,封閉空心)"
# AI Translated
msgid "Open face"
@@ -23707,6 +28130,9 @@ msgstr "選取要開口的實體面,然後設定壁厚。"
msgid "(pick a side face)"
msgstr "(選取側面)"
+msgid "Face"
+msgstr "面"
+
# AI Translated
msgid "Draft"
msgstr "拔模"
@@ -23769,7 +28195,7 @@ msgstr "(選取實體面)"
# AI Translated
msgid "Pick a solid face and offset it into a new thin body. Not for sheet bodies — use Thicken Surface for those."
-msgstr "選取實體面並將其偏移為新的薄本體。不適用於曲面本體 — 曲面本體請使用「加厚曲面」。"
+msgstr "選取實體面並將其偏移為新的薄本體。不適用於曲面本體,曲面本體請使用「加厚曲面」。"
# AI Translated
msgid "Target body"
@@ -23902,7 +28328,7 @@ msgstr "(全部)"
# AI Translated
msgid "Restrict picking to one body — the others go see-through and stop catching clicks"
-msgstr "僅限選取單一本體 — 其他本體會變為透明且不再接收點選"
+msgstr "僅限選取單一本體,其他本體會變為透明且不再接收點選"
# AI Translated
msgid "Edge (sets in-plane direction)"
@@ -23910,7 +28336,7 @@ msgstr "邊(設定平面內方向)"
# AI Translated
msgid "Without an edge the frame takes X from the face's first edge — pick one to choose it yourself"
-msgstr "若未選取邊,座標框架會以面的第一條邊作為 X — 選取一條邊即可自行指定"
+msgstr "若未選取邊,座標框架會以面的第一條邊作為 X,選取一條邊即可自行指定"
# AI Translated
msgid "X direction X"
@@ -23926,23 +28352,23 @@ msgstr "X 方向 Z"
# AI Translated
msgid "Fastened — 6 DOF locked, B driven onto A exactly"
-msgstr "固定 — 鎖定 6 個自由度,B 精確貼合至 A"
+msgstr "固定:鎖定 6 個自由度,B 精確貼合至 A"
# AI Translated
msgid "Planar — z aligned, offset distance; free in-plane slide"
-msgstr "平面 — z 對齊,偏移距離;可在平面內自由滑動"
+msgstr "平面:z 對齊,偏移距離;可在平面內自由滑動"
# AI Translated
msgid "Revolute — axes collinear; free rotation about z"
-msgstr "旋轉 — 軸共線;可繞 z 自由旋轉"
+msgstr "旋轉:軸共線;可繞 z 自由旋轉"
# AI Translated
msgid "Slider — orientation locked; free axial slide"
-msgstr "滑動 — 方向鎖定;可沿軸向自由滑動"
+msgstr "滑動:方向鎖定;可沿軸向自由滑動"
# AI Translated
msgid "Cylindrical — axes collinear; free spin + axial slide"
-msgstr "圓柱 — 軸共線;可自由旋轉 + 軸向滑動"
+msgstr "圓柱:軸共線;可自由旋轉 + 軸向滑動"
# AI Translated
msgid "Kind"
@@ -24012,7 +28438,7 @@ msgstr "%s。點選眼睛圖示可抑制此結合。"
# AI Translated
#, c-format, boost-format
msgid "%s selected — F2 or right-click renames it, double-click edits it"
-msgstr "已選取 %s — 按 F2 或右鍵可重新命名,按兩下可編輯"
+msgstr "已選取 %s,按 F2 或右鍵可重新命名,按兩下可編輯"
# AI Translated
msgid "Rename\tF2"
@@ -24040,7 +28466,7 @@ msgstr "縮放至選取項目"
# AI Translated
msgid "Check interference — find overlapping bodies"
-msgstr "干涉檢查 — 找出重疊的本體"
+msgstr "干涉檢查:找出重疊的本體"
# AI Translated
msgid "Bodies"
@@ -24048,12 +28474,12 @@ msgstr "本體"
# AI Translated
msgid "Boolean — join, subtract or intersect with another body"
-msgstr "布林 — 與另一個本體接合、相減或相交"
+msgstr "布林:與另一個本體接合、相減或相交"
# AI Translated
#, c-format, boost-format
msgid "Body %d selected — right-click for what applies to it"
-msgstr "已選取本體 %d — 按右鍵查看適用的操作"
+msgstr "已選取本體 %d,按右鍵查看適用的操作"
# AI Translated
msgid "Variables"
@@ -24073,11 +28499,11 @@ msgstr "刪除變數"
# AI Translated
msgid "Sketch created — select it, then right-click to Extrude"
-msgstr "已建立草圖 — 選取它,然後按右鍵進行擠出"
+msgstr "已建立草圖,選取草圖後按右鍵即可擠出"
# AI Translated
msgid "Sketch empty — nothing committed"
-msgstr "草圖為空 — 未提交任何內容"
+msgstr "草圖為空,未提交任何內容"
# AI Translated
msgid "Sketch updated"
@@ -24085,8 +28511,9 @@ msgstr "草圖已更新"
# AI Translated
#, c-format
-msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
-msgstr "已建立草圖(%zu 個驅動尺寸) — 選取它,然後按右鍵進行擠出"
+msgid "Sketch created (%zu driving dim) — select it, then right-click to Extrude"
+msgid_plural "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+msgstr[0] "已建立草圖(%zu 個驅動尺寸),選取草圖後按右鍵即可擠出"
# AI Translated
#, c-format, boost-format
@@ -24103,84 +28530,84 @@ msgstr "無法解析要擠出的草圖"
# AI Translated
msgid "Face selected — set the depth and Confirm"
-msgstr "已選取面 — 設定深度後按「確認」"
+msgstr "已選取面,設定深度後按「確認」"
# AI Translated
msgid "Region selected — right-click to Extrude, or double-click to edit"
-msgstr "已選取區域 — 按右鍵進行擠出,或按兩下進行編輯"
+msgstr "已選取區域,按右鍵進行擠出,或按兩下進行編輯"
# AI Translated
msgid "Sketch selected — right-click to Extrude, or double-click to edit"
-msgstr "已選取草圖 — 按右鍵進行擠出,或按兩下進行編輯"
+msgstr "已選取草圖,按右鍵進行擠出,或按兩下進行編輯"
# AI Translated
msgid "That face is not flat — click a flat face or a reference plane"
-msgstr "該面不是平面 — 請點選平面或參考平面"
+msgstr "該面不平坦,請點選平坦面或參考平面"
# AI Translated
#, c-format, boost-format
msgid "Body %d: vertex selected — click again for the whole body"
-msgstr "本體 %d:已選取頂點 — 再次點選可選取整個本體"
+msgstr "本體 %d:已選取頂點,再次點選可選取整個本體"
# AI Translated
msgid "Vertex selected — click again for the whole body"
-msgstr "已選取頂點 — 再次點選可選取整個本體"
+msgstr "已選取頂點,再次點選可選取整個本體"
# AI Translated
#, c-format, boost-format
msgid "Body %d selected (whole body) — right-click for what applies to it"
-msgstr "已選取本體 %d(整個本體) — 按右鍵查看適用的操作"
+msgstr "已選取本體 %d(整個本體),按右鍵查看適用的操作"
# AI Translated
msgid "Whole body selected — right-click for what applies to it"
-msgstr "已選取整個本體 — 按右鍵查看適用的操作"
+msgstr "已選取整個本體,按右鍵查看適用的操作"
# AI Translated
#, c-format, boost-format
msgid "Body %d: face %d selected — right-click to push/pull it, or click again for the whole body"
-msgstr "本體 %d:已選取面 %d — 按右鍵進行推拉,或再次點選以選取整個本體"
+msgstr "本體 %d:已選取面 %d,按右鍵進行推拉,或再次點選以選取整個本體"
# AI Translated
#, c-format, boost-format
msgid "Face %d selected — right-click to push/pull it, or click again for the whole body"
-msgstr "已選取面 %d — 按右鍵進行推拉,或再次點選以選取整個本體"
+msgstr "已選取面 %d,按右鍵進行推拉,或再次點選以選取整個本體"
# AI Translated
#, c-format
msgid "Body %d: %zu edge selected — Shift+click adds or removes one, Fillet/Chamfer dresses them all"
msgid_plural "Body %d: %zu edges selected — Shift+click adds or removes one, Fillet/Chamfer dresses them all"
-msgstr[0] "本體 %d:已選取 %zu 條邊 — 按住 Shift 點選可加入或移除一條邊,圓角/倒角會修飾所有選取的邊"
+msgstr[0] "本體 %d:已選取 %zu 條邊,按住 Shift 點選可加入或移除一條邊,圓角/倒角會修飾所有選取的邊"
# AI Translated
#, c-format
msgid "%zu edge selected — Shift+click adds or removes one, Fillet/Chamfer dresses them all"
msgid_plural "%zu edges selected — Shift+click adds or removes one, Fillet/Chamfer dresses them all"
-msgstr[0] "已選取 %zu 條邊 — 按住 Shift 點選可加入或移除一條邊,圓角/倒角會修飾所有選取的邊"
+msgstr[0] "已選取 %zu 條邊,按住 Shift 點選可加入或移除一條邊,圓角/倒角會修飾所有選取的邊"
# AI Translated
#, c-format, boost-format
msgid "Body %d: edge %d selected — Shift+click to add edges, or click again for the whole body"
-msgstr "本體 %d:已選取邊 %d — 按住 Shift 點選以加入更多邊,或再次點選以選取整個本體"
+msgstr "本體 %d:已選取邊 %d,按住 Shift 點選以加入更多邊,或再次點選以選取整個本體"
# AI Translated
#, c-format, boost-format
msgid "Edge %d selected — Shift+click to add edges, or click again for the whole body"
-msgstr "已選取邊 %d — 按住 Shift 點選以加入更多邊,或再次點選以選取整個本體"
+msgstr "已選取邊 %d,按住 Shift 點選以加入更多邊,或再次點選以選取整個本體"
# AI Translated
#, c-format, boost-format
msgid "%s plane selected — right-click to sketch on it, or click an object to select it"
-msgstr "已選取 %s 平面 — 按右鍵在其上繪製草圖,或點選物件以選取"
+msgstr "已選取 %s 平面,按右鍵可在其上繪製草圖,或點選物件以選取"
# AI Translated
#, c-format, boost-format
msgid "Body %d placed at (%.1f, %.1f, %.1f) mm — drag arrows to move, rings to rotate"
-msgstr "本體 %d 已放置於 (%.1f, %.1f, %.1f) mm — 拖曳箭頭以移動,拖曳圓環以旋轉"
+msgstr "本體 %d 已放置於 (%.1f, %.1f, %.1f) mm,拖曳箭頭以移動,拖曳圓環以旋轉"
# AI Translated
#, c-format, boost-format
msgid "Placed at (%.1f, %.1f, %.1f) mm — drag arrows to move, rings to rotate"
-msgstr "已放置於 (%.1f, %.1f, %.1f) mm — 拖曳箭頭以移動,拖曳圓環以旋轉"
+msgstr "已放置於 (%.1f, %.1f, %.1f) mm,拖曳箭頭以移動,拖曳圓環以旋轉"
# AI Translated
msgid "Tool exited"
@@ -24188,7 +28615,7 @@ msgstr "已退出工具"
# AI Translated
msgid "Sketch kept — Confirm to commit it, Cancel to discard"
-msgstr "已保留草圖 — 按「確認」提交,按「取消」捨棄"
+msgstr "已保留草圖,按「確認」提交,按「取消」捨棄"
# AI Translated
msgid "Select something to delete"
@@ -24220,16 +28647,17 @@ msgstr "編輯中:草圖 %d · N = 正視平面 · 在工具列中按
# AI Translated
#, c-format
-msgid "OK — %zu triangles"
-msgstr "成功 — %zu 個三角形"
+msgid "OK — %zu triangle"
+msgid_plural "OK — %zu triangles"
+msgstr[0] "成功:%zu 個三角形"
# AI Translated
msgid "Edit the text — Enter applies, Esc keeps it as it was"
-msgstr "編輯文字 — 按 Enter 套用,按 Esc 保持原樣"
+msgstr "編輯文字:按 Enter 套用,按 Esc 保持原樣"
# AI Translated
msgid "Type the text — it appears in the view as you type; Enter inserts, Esc cancels"
-msgstr "輸入文字 — 輸入時會即時顯示在視圖中;按 Enter 插入,按 Esc 取消"
+msgstr "輸入文字:輸入時會即時顯示在視圖中;按 Enter 插入,按 Esc 取消"
# AI Translated
msgid "Text unchanged"
@@ -24276,7 +28704,7 @@ msgstr "正在重建模型…"
#, c-format, boost-format
msgid "Imported %d solid — pick a face or edge, then Fillet / Cut / Shell to modify"
msgid_plural "Imported %d solids — pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr[0] "已匯入 %d 個實體 — 選取面或邊,再使用圓角 / 切割 / 薄殼進行修改"
+msgstr[0] "已匯入 %d 個實體,選取面或邊,再使用圓角 / 切割 / 薄殼進行修改"
# AI Translated
msgid "Import mesh"
@@ -24306,10 +28734,14 @@ msgstr "網格不含任何三角形"
# AI Translated
#, c-format, boost-format
msgid ""
+"This mesh has %d triangle. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+"\n"
+"Import anyway?"
+msgid_plural ""
"This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
"\n"
"Import anyway?"
-msgstr ""
+msgstr[0] ""
"此網格有 %d 個三角形。在合併共平面之前,每個三角形都會成為一個 B-rep 面,因此匯入可能需要很長時間,且產生的本體編輯起來會很慢。通常建議先簡化網格。\n"
"\n"
"仍要匯入嗎?"
@@ -24338,8 +28770,8 @@ msgstr "網格匯入失敗:%s"
# AI Translated
#, c-format, boost-format
-msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
-msgstr "已匯入實體 — %d 個三角形 → %d 個面,體積 %.2f mm³。選取面或邊,再使用圓角 / 切割 / 薄殼進行修改"
+msgid "Imported solid — triangles: %d → faces: %d, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+msgstr "已匯入實體:三角形 %d → 面 %d,體積 %.2f mm³。選取面或邊,再使用圓角 / 切割 / 薄殼進行修改"
# AI Translated
#, c-format, boost-format
@@ -24353,11 +28785,13 @@ msgstr "找不到可匯入的幾何"
# AI Translated
#, c-format, boost-format
msgid "%s added to the sketch — Confirm to commit it"
-msgstr "已將 %s 加入草圖 — 按「確認」提交"
+msgstr "已將 %s 加入草圖,按「確認」提交"
# AI Translated
-msgid " — drag to place/size, then Confirm"
-msgstr " — 拖曳以放置/調整大小,然後按「確認」"
+#. TRN Design tab status; %s is the inserted item, such as "Text" or "SVG".
+#, c-format, boost-format
+msgid "%s — drag to place/size, then Confirm"
+msgstr "%s:拖曳以放置/調整大小,然後按「確認」"
# AI Translated
msgid "Insert canceled"
@@ -24365,12 +28799,12 @@ msgstr "已取消插入"
# AI Translated
msgid "Drag a corner to scale, the center to move — Enter or ✓ when done, Esc to discard"
-msgstr "拖曳角點以縮放,拖曳中心以移動 — 完成後按 Enter 或 ✓,按 Esc 捨棄"
+msgstr "拖曳角點以縮放,拖曳中心以移動;完成後按 Enter 或 ✓,按 Esc 捨棄"
# AI Translated
#, c-format, boost-format
msgid "Sketch added (plane: %s) — select it, then right-click to Extrude"
-msgstr "已加入草圖(平面:%s) — 選取它,然後按右鍵進行擠出"
+msgstr "已加入草圖(平面:%s),選取草圖後按右鍵即可擠出"
# AI Translated
#, c-format, boost-format
@@ -24393,7 +28827,7 @@ msgstr "螺紋標準:%s (螺距 %.3g mm)"
# AI Translated
msgid "Thread needs a solid body — add or import one first"
-msgstr "螺紋需要實體本體 — 請先新增或匯入一個"
+msgstr "「螺紋」需要實體本體,請先新增或匯入一個"
# AI Translated
msgid "Pick a sketch profile to revolve first"
@@ -24401,7 +28835,7 @@ msgstr "請先選取要迴轉的草圖輪廓"
# AI Translated
msgid "Revolve needs a solid body — add or import one first"
-msgstr "迴轉需要實體本體 — 請先新增或匯入一個"
+msgstr "「迴轉」需要實體本體,請先新增或匯入一個"
# AI Translated
msgid "Pick a profile sketch to sweep first"
@@ -24413,7 +28847,7 @@ msgstr "請選取掃掠用的路徑草圖"
# AI Translated
msgid "Sweep needs a solid body — add or import one first"
-msgstr "掃掠需要實體本體 — 請先新增或匯入一個"
+msgstr "「掃掠」需要實體本體,請先新增或匯入一個"
# AI Translated
msgid "Check at least two profile sketches to loft"
@@ -24421,7 +28855,7 @@ msgstr "請勾選至少兩個輪廓草圖以進行斷面混成"
# AI Translated
msgid "Loft needs a solid body — add or import one first"
-msgstr "斷面混成需要實體本體 — 請先新增或匯入一個"
+msgstr "「斷面混成」需要實體本體,請先新增或匯入一個"
# AI Translated
msgid "Pick a sketch profile to extrude first"
@@ -24449,7 +28883,7 @@ msgstr "請先加入至少一個要刪除的面"
# AI Translated
msgid "Mate needs two coordinate systems — create them first"
-msgstr "結合需要兩個座標系 — 請先建立"
+msgstr "「結合」需要兩個座標系,請先建立"
# AI Translated
msgid "Mate: A and B must be different coordinate systems"
@@ -24457,7 +28891,7 @@ msgstr "結合:A 與 B 必須是不同的座標系"
# AI Translated
msgid "Mate rejected"
-msgstr "結合被拒絕"
+msgstr "已拒絕結合"
# AI Translated
msgid "Interference needs at least two bodies"
@@ -24494,7 +28928,7 @@ msgstr "無法測量此本體"
# AI Translated
#, c-format, boost-format
msgid "%s: sheet body, area %.2f mm², no volume — thicken it to get one"
-msgstr "%s:曲面本體,表面積 %.2f mm²,無體積 — 加厚後即可得到體積"
+msgstr "%s:曲面本體,表面積 %.2f mm²,無體積,加厚後即可得到體積"
# AI Translated
#, c-format, boost-format
@@ -24503,15 +28937,15 @@ msgstr "%s:體積 %.2f mm³,表面積 %.2f mm²"
# AI Translated
msgid "Pattern needs a solid body — add or import one first"
-msgstr "陣列需要實體本體 — 請先新增或匯入一個"
+msgstr "「陣列」需要實體本體,請先新增或匯入一個"
# AI Translated
msgid "Boolean needs two bodies — add or import a second one"
-msgstr "布林需要兩個本體 — 請新增或匯入第二個"
+msgstr "「布林」需要兩個本體,請新增或匯入第二個"
# AI Translated
msgid "Cut needs a solid body — add or import one first"
-msgstr "切割需要實體本體 — 請先新增或匯入一個"
+msgstr "「切割」需要實體本體,請先新增或匯入一個"
# AI Translated
#, c-format, boost-format
@@ -24563,9 +28997,11 @@ msgid "a geometry operation failed"
msgstr "幾何運算失敗"
# AI Translated
+#. TRN Appended to a sketch tool prompt; %d is the number of picked entities.
#, c-format, boost-format
msgid " · %d picked"
-msgstr " · 已選取 %d 個"
+msgid_plural " · %d picked"
+msgstr[0] " · 已選取 %d 個"
# AI Translated
#, c-format, boost-format
@@ -24575,313 +29011,315 @@ msgstr[0] "已選取 %d 個 · 按 Del 刪除 · 按住 Shift 點選以加
# AI Translated
msgid "Select — click an entity to pick it · drag an endpoint or center to move it · Shift-click adds · Del removes"
-msgstr "選取 — 點選圖元以選取 · 拖曳端點或中心以移動 · 按住 Shift 點選以加選 · 按 Del 刪除"
+msgstr "選取:點選圖元以選取 · 拖曳端點或中心以移動 · 按住 Shift 點選以加選 · 按 Del 刪除"
# AI Translated
#, c-format, boost-format
msgid "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
-msgstr "已選取 %d 個 · 現在請選擇約束(水平、平行、相切、相等…)"
+msgid_plural "%d picked · now choose a constraint (Horizontal, Parallel, Tangent, Equal…)"
+msgstr[0] "已選取 %d 個 · 現在請選擇約束(水平、平行、相切、相等…)"
# AI Translated
msgid "Constrain — click one or two entities, then choose a constraint"
-msgstr "約束 — 點選一或兩個圖元,再選擇約束"
+msgstr "約束:點選一或兩個圖元,再選擇約束"
# AI Translated
msgid "Dimension — click an entity, or the first of two points"
-msgstr "尺寸 — 點選一個圖元,或兩點中的第一點"
+msgstr "尺寸:點選一個圖元,或兩點中的第一點"
# AI Translated
msgid "Dimension — click the second point"
-msgstr "尺寸 — 點選第二點"
+msgstr "尺寸:點選第二點"
# AI Translated
msgid "Line — click the start point"
-msgstr "直線 — 點選起點"
+msgstr "直線:點選起點"
# AI Translated
msgid "Line — click the end point; its length and angle can then be typed"
-msgstr "直線 — 點選終點;之後可輸入其長度與角度"
+msgstr "直線:點選終點;之後可輸入其長度與角度"
# AI Translated
msgid "Polyline — click the first point"
-msgstr "聚合線 — 點選第一點"
+msgstr "聚合線:點選第一點"
# AI Translated
msgid "Polyline — click the next point · click the start point to close it · right-click, double-click or Enter ends the chain"
-msgstr "聚合線 — 點選下一點 · 點選起點以封閉 · 按右鍵、按兩下或按 Enter 結束連續線段"
+msgstr "聚合線:點選下一點 · 點選起點以封閉 · 按右鍵、按兩下或按 Enter 結束連續線段"
# AI Translated
msgid "Rectangle — click one corner"
-msgstr "矩形 — 點選一個角點"
+msgstr "矩形:點選一個角點"
# AI Translated
msgid "Rectangle — click the opposite corner"
-msgstr "矩形 — 點選對角"
+msgstr "矩形:點選對角"
# AI Translated
msgid "Center rectangle — click the center"
-msgstr "中心矩形 — 點選中心"
+msgstr "中心矩形:點選中心"
# AI Translated
msgid "Center rectangle — click a corner"
-msgstr "中心矩形 — 點選一個角點"
+msgstr "中心矩形:點選一個角點"
# AI Translated
msgid "Oblique rectangle — click the start of the base edge"
-msgstr "斜向矩形 — 點選底邊的起點"
+msgstr "斜向矩形:點選底邊的起點"
# AI Translated
msgid "Oblique rectangle — click the end of the base edge (this sets the angle)"
-msgstr "斜向矩形 — 點選底邊的終點(決定角度)"
+msgstr "斜向矩形:點選底邊的終點(決定角度)"
# AI Translated
msgid "Oblique rectangle — click to set the width"
-msgstr "斜向矩形 — 點選以設定寬度"
+msgstr "斜向矩形:點選以設定寬度"
# AI Translated
msgid "Rounded rectangle — click one corner"
-msgstr "圓角矩形 — 點選一個角點"
+msgstr "圓角矩形:點選一個角點"
# AI Translated
msgid "Rounded rectangle — click the opposite corner"
-msgstr "圓角矩形 — 點選對角"
+msgstr "圓角矩形:點選對角"
# AI Translated
msgid "Rounded rectangle — click to set the corner radius"
-msgstr "圓角矩形 — 點選以設定圓角半徑"
+msgstr "圓角矩形:點選以設定圓角半徑"
# AI Translated
msgid "Circle — click the center"
-msgstr "圓 — 點選圓心"
+msgstr "圓:點選圓心"
# AI Translated
msgid "Circle — click to set the radius; it can then be typed"
-msgstr "圓 — 點選以設定半徑;之後可輸入半徑值"
+msgstr "圓:點選以設定半徑;之後可輸入半徑值"
# AI Translated
msgid "Circle (2 points) — click one end of the diameter"
-msgstr "圓(兩點) — 點選直徑的一端"
+msgstr "圓(兩點):點選直徑的一端"
# AI Translated
msgid "Circle (2 points) — click the other end of the diameter"
-msgstr "圓(兩點) — 點選直徑的另一端"
+msgstr "圓(兩點):點選直徑的另一端"
# AI Translated
msgid "Circle (3 points) — click the first point on the circle"
-msgstr "圓(三點) — 點選圓上的第一點"
+msgstr "圓(三點):點選圓上的第一點"
# AI Translated
msgid "Circle (3 points) — click the second point"
-msgstr "圓(三點) — 點選第二點"
+msgstr "圓(三點):點選第二點"
# AI Translated
msgid "Circle (3 points) — click the third point"
-msgstr "圓(三點) — 點選第三點"
+msgstr "圓(三點):點選第三點"
# AI Translated
msgid "Arc — click the start point"
-msgstr "圓弧 — 點選起點"
+msgstr "圓弧:點選起點"
# AI Translated
msgid "Arc — click the end point"
-msgstr "圓弧 — 點選終點"
+msgstr "圓弧:點選終點"
# AI Translated
msgid "Arc — click a point the arc passes through"
-msgstr "圓弧 — 點選圓弧通過的一點"
+msgstr "圓弧:點選圓弧通過的一點"
# AI Translated
msgid "Tangent arc — click the endpoint it leaves from"
-msgstr "相切圓弧 — 點選圓弧起始的端點"
+msgstr "相切圓弧:點選圓弧起始的端點"
# AI Translated
msgid "Tangent arc — click its far end"
-msgstr "相切圓弧 — 點選其另一端"
+msgstr "相切圓弧:點選其另一端"
# AI Translated
msgid "Center arc — click the center"
-msgstr "中心點圓弧 — 點選圓心"
+msgstr "中心點圓弧:點選圓心"
# AI Translated
msgid "Center arc — click the start point (this sets the radius)"
-msgstr "中心點圓弧 — 點選起點(決定半徑)"
+msgstr "中心點圓弧:點選起點(決定半徑)"
# AI Translated
msgid "Center arc — click the end point"
-msgstr "中心點圓弧 — 點選終點"
+msgstr "中心點圓弧:點選終點"
# AI Translated
msgid "Slot — click one end of the centerline"
-msgstr "槽 — 點選中心線的一端"
+msgstr "槽:點選中心線的一端"
# AI Translated
msgid "Slot — click the other end of the centerline"
-msgstr "槽 — 點選中心線的另一端"
+msgstr "槽:點選中心線的另一端"
# AI Translated
msgid "Slot — click to set the width"
-msgstr "槽 — 點選以設定寬度"
+msgstr "槽:點選以設定寬度"
# AI Translated
msgid "Arc slot — click the center the slot curves about"
-msgstr "圓弧槽 — 點選槽彎曲所繞的中心"
+msgstr "圓弧槽:點選槽彎曲所繞的中心"
# AI Translated
msgid "Arc slot — click the start of the centerline (this sets the radius)"
-msgstr "圓弧槽 — 點選中心線的起點(決定半徑)"
+msgstr "圓弧槽:點選中心線的起點(決定半徑)"
# AI Translated
msgid "Arc slot — click the end of the centerline"
-msgstr "圓弧槽 — 點選中心線的終點"
+msgstr "圓弧槽:點選中心線的終點"
# AI Translated
msgid "Arc slot — click to set the width"
-msgstr "圓弧槽 — 點選以設定寬度"
+msgstr "圓弧槽:點選以設定寬度"
# AI Translated
msgid "Polygon — click the center"
-msgstr "多邊形 — 點選中心"
+msgstr "多邊形:點選中心"
# AI Translated
msgid "Polygon — click a vertex (this sets size and orientation)"
-msgstr "多邊形 — 點選一個頂點(決定大小與方向)"
+msgstr "多邊形:點選一個頂點(決定大小與方向)"
# AI Translated
msgid "Ellipse — click the center"
-msgstr "橢圓 — 點選中心"
+msgstr "橢圓:點選中心"
# AI Translated
msgid "Ellipse — click the end of the major axis"
-msgstr "橢圓 — 點選長軸的端點"
+msgstr "橢圓:點選長軸的端點"
# AI Translated
msgid "Ellipse — click a point on the minor axis"
-msgstr "橢圓 — 點選短軸上的一點"
+msgstr "橢圓:點選短軸上的一點"
# AI Translated
msgid "Elliptical arc — click the center"
-msgstr "橢圓弧 — 點選中心"
+msgstr "橢圓弧:點選中心"
# AI Translated
msgid "Elliptical arc — click the end of the major axis"
-msgstr "橢圓弧 — 點選長軸的端點"
+msgstr "橢圓弧:點選長軸的端點"
# AI Translated
msgid "Elliptical arc — click a point on the minor axis"
-msgstr "橢圓弧 — 點選短軸上的一點"
+msgstr "橢圓弧:點選短軸上的一點"
# AI Translated
msgid "Elliptical arc — click where the arc starts"
-msgstr "橢圓弧 — 點選圓弧的起點"
+msgstr "橢圓弧:點選圓弧的起點"
# AI Translated
msgid "Elliptical arc — click where the arc ends"
-msgstr "橢圓弧 — 點選圓弧的終點"
+msgstr "橢圓弧:點選圓弧的終點"
# AI Translated
msgid "Spline — click the first control point"
-msgstr "雲形線 — 點選第一個控制點"
+msgstr "雲形線:點選第一個控制點"
# AI Translated
msgid "Spline — click the next control point · right-click, double-click or Enter finishes the curve"
-msgstr "雲形線 — 點選下一個控制點 · 按右鍵、按兩下或按 Enter 完成曲線"
+msgstr "雲形線:點選下一個控制點 · 按右鍵、按兩下或按 Enter 完成曲線"
# AI Translated
msgid "Point — click to place one; the tool stays armed for more"
-msgstr "點 — 點選以放置一點;工具會保持啟用以繼續放置"
+msgstr "點:點選以放置一點;工具會保持啟用以繼續放置"
# AI Translated
msgid "Trim — click a segment where it crosses another entity · Esc to exit"
-msgstr "修剪 — 點選與其他圖元相交的線段 · 按 Esc 結束"
+msgstr "修剪:點選與其他圖元相交的線段 · 按 Esc 結束"
# AI Translated
msgid "Extend — click a line or arc to grow it out to the nearest entity · Esc to exit"
-msgstr "延伸 — 點選直線或圓弧,將其延伸至最近的圖元 · 按 Esc 結束"
+msgstr "延伸:點選直線或圓弧,將其延伸至最近的圖元 · 按 Esc 結束"
# AI Translated
msgid "Fillet — click the first of two lines that meet"
-msgstr "圓角 — 點選相交兩直線中的第一條"
+msgstr "圓角:點選相交兩直線中的第一條"
# AI Translated
msgid "Fillet — click the second line"
-msgstr "圓角 — 點選第二條直線"
+msgstr "圓角:點選第二條直線"
# AI Translated
msgid "Fillet — drag the arrow, or click the number to type the radius · Enter applies · Esc cancels"
-msgstr "圓角 — 拖曳箭頭,或點選數字以輸入半徑 · 按 Enter 套用 · 按 Esc 取消"
+msgstr "圓角:拖曳箭頭,或點選數字以輸入半徑 · 按 Enter 套用 · 按 Esc 取消"
# AI Translated
msgid "Chamfer — click the first of two lines that meet"
-msgstr "倒角 — 點選相交兩直線中的第一條"
+msgstr "倒角:點選相交兩直線中的第一條"
# AI Translated
msgid "Chamfer — click the second line"
-msgstr "倒角 — 點選第二條直線"
+msgstr "倒角:點選第二條直線"
# AI Translated
msgid "Chamfer — drag the arrow, or click the number to type the setback · Enter applies · Esc cancels"
-msgstr "倒角 — 拖曳箭頭,或點選數字以輸入倒角距離 · 按 Enter 套用 · 按 Esc 取消"
+msgstr "倒角:拖曳箭頭,或點選數字以輸入倒角距離 · 按 Enter 套用 · 按 Esc 取消"
# AI Translated
msgid "Offset — click a curve; its whole outline is offset"
-msgstr "偏移 — 點選一條曲線;其整個輪廓都會偏移"
+msgstr "偏移:點選一條曲線;其整個輪廓都會偏移"
# AI Translated
msgid "Offset — drag the arrow to either side, or click the number to type the distance · Enter applies · Esc cancels"
-msgstr "偏移 — 將箭頭拖曳至任一側,或點選數字以輸入距離 · 按 Enter 套用 · 按 Esc 取消"
+msgstr "偏移:將箭頭拖曳至任一側,或點選數字以輸入距離 · 按 Enter 套用 · 按 Esc 取消"
# AI Translated
msgid "Mirror — first click the LINE to mirror about (a construction line works)"
-msgstr "鏡像 — 先點選作為鏡像軸的「直線」(可使用建構線)"
+msgstr "鏡像:先點選作為鏡像軸的「直線」(可使用建構線)"
# AI Translated
msgid "Mirror — axis set · now click the entities to mirror · Esc cancels"
-msgstr "鏡像 — 已設定軸 · 現在點選要鏡像的圖元 · 按 Esc 取消"
+msgstr "鏡像:已設定軸 · 現在點選要鏡像的圖元 · 按 Esc 取消"
# AI Translated
#, c-format, boost-format
msgid "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
-msgstr "鏡像 — 已設定軸 · %d 個要鏡像 · 點選其他圖元以加入或移除 · 按 Enter 套用"
+msgid_plural "Mirror — axis set · %d to mirror · click another to add or remove it · Enter applies"
+msgstr[0] "鏡像:已設定軸 · %d 個要鏡像 · 點選其他圖元以加入或移除 · 按 Enter 套用"
# AI Translated
msgid "Move — click the entities to move"
-msgstr "移動 — 點選要移動的圖元"
+msgstr "移動:點選要移動的圖元"
# AI Translated
msgid "Move — drag the handle, or click the number to type the distance · Enter applies"
-msgstr "移動 — 拖曳控點,或點選數字以輸入距離 · 按 Enter 套用"
+msgstr "移動:拖曳控點,或點選數字以輸入距離 · 按 Enter 套用"
# AI Translated
msgid "Rotate — click the entities to rotate"
-msgstr "旋轉 — 點選要旋轉的圖元"
+msgstr "旋轉:點選要旋轉的圖元"
# AI Translated
msgid "Rotate — drag the handle, or click the number to type the angle · Enter applies"
-msgstr "旋轉 — 拖曳控點,或點選數字以輸入角度 · 按 Enter 套用"
+msgstr "旋轉:拖曳控點,或點選數字以輸入角度 · 按 Enter 套用"
# AI Translated
msgid "Scale — click the entities to scale"
-msgstr "縮放 — 點選要縮放的圖元"
+msgstr "縮放:點選要縮放的圖元"
# AI Translated
msgid "Scale — drag the handle, or click the number to type the factor · Enter applies"
-msgstr "縮放 — 拖曳控點,或點選數字以輸入比例 · 按 Enter 套用"
+msgstr "縮放:拖曳控點,或點選數字以輸入比例 · 按 Enter 套用"
# AI Translated
msgid "Array — click the entities to repeat"
-msgstr "陣列 — 點選要重複的圖元"
+msgstr "陣列:點選要重複的圖元"
# AI Translated
msgid "Array — drag the handle to set the step, click the count to type it · Enter applies"
-msgstr "陣列 — 拖曳控點以設定間距,點選數量以輸入 · 按 Enter 套用"
+msgstr "陣列:拖曳控點以設定間距,點選數量以輸入 · 按 Enter 套用"
# AI Translated
msgid "Polar array — click the entities to repeat"
-msgstr "環形陣列 — 點選要重複的圖元"
+msgstr "環形陣列:點選要重複的圖元"
# AI Translated
msgid "Polar array — drag the handle to set the sweep, click the count to type it · Enter applies"
-msgstr "環形陣列 — 拖曳控點以設定角度範圍,點選數量以輸入 · 按 Enter 套用"
+msgstr "環形陣列:拖曳控點以設定角度範圍,點選數量以輸入 · 按 Enter 套用"
# AI Translated
msgid "Drag a corner to scale, the center to move · Enter or ✓ when done, Esc to discard"
@@ -24898,12 +29336,12 @@ msgstr " · 點選約束標記即可移除"
# AI Translated
#, c-format, boost-format
msgid "%s — solid body"
-msgstr "%s — 實體本體"
+msgstr "%s(實體本體)"
# AI Translated
#, c-format, boost-format
msgid "%s — surface body"
-msgstr "%s — 曲面本體"
+msgstr "%s(曲面本體)"
# AI Translated
#, c-format, boost-format
@@ -24947,7 +29385,7 @@ msgstr "草圖輪廓"
# AI Translated
msgid "Sketch — nothing selected"
-msgstr "草圖 — 未選擇任何內容"
+msgstr "草圖:未選取任何內容"
# AI Translated
msgid "Sketch line"
@@ -24963,8 +29401,9 @@ msgstr "草圖點"
# AI Translated
#, c-format, boost-format
-msgid "%d sketch entities"
-msgstr "%d 個草圖圖元"
+msgid "%d sketch entity"
+msgid_plural "%d sketch entities"
+msgstr[0] "%d 個草圖圖元"
# AI Translated
msgid "select something first"
@@ -25001,27 +29440,27 @@ msgstr "在視埠中點選實體的「邊」"
# AI Translated
msgid "An angled plane needs an edge to tilt about — pick Edge A"
-msgstr "傾斜平面需要一條作為旋轉軸的邊 — 請選取邊 A"
+msgstr "傾斜平面需要一條作為旋轉軸的邊,請選取邊 A"
# AI Translated
msgid "A midplane needs two faces — pick Face A and Face B"
-msgstr "中間平面需要兩個面 — 請選取面 A 與面 B"
+msgstr "中間平面需要兩個面,請選取面 A 與面 B"
# AI Translated
msgid "Face A and Face B are the same face — a midplane needs two different faces"
-msgstr "面 A 與面 B 是同一個面 — 中間平面需要兩個不同的面"
+msgstr "面 A 與面 B 是同一個面,中間平面需要兩個不同的面"
# AI Translated
msgid "A tangent plane needs a cylindrical face — pick Face A"
-msgstr "相切平面需要一個圓柱面 — 請選取面 A"
+msgstr "相切平面需要一個圓柱面,請選取面 A"
# AI Translated
msgid "This plane needs two edges — pick Edge A and Edge B"
-msgstr "此平面需要兩條邊 — 請選取邊 A 與邊 B"
+msgstr "此平面需要兩條邊,請選取邊 A 與邊 B"
# AI Translated
msgid "Plane added — pick it as a sketch plane"
-msgstr "已新增平面 — 可將其選為草圖平面"
+msgstr "已新增平面,可將其選為草圖平面"
# AI Translated
msgid "Axis added"
@@ -25033,27 +29472,27 @@ msgstr "已新增座標系"
# AI Translated
msgid "Shell needs a solid body — add or import one first"
-msgstr "薄殼需要實體本體 — 請先新增或匯入一個"
+msgstr "「薄殼」需要實體本體,請先新增或匯入一個"
# AI Translated
msgid "Draft needs a solid body — add or import one first"
-msgstr "拔模需要實體本體 — 請先新增或匯入一個"
+msgstr "「拔模」需要實體本體,請先新增或匯入一個"
# AI Translated
msgid "Draft needs a picked face — click a side face first"
-msgstr "拔模需要選取的面 — 請先點選側面"
+msgstr "「拔模」需要選取的面,請先點選側面"
# AI Translated
msgid ""
"Nothing yet — import a STEP or a mesh from the toolbar,\n"
"or press Sketch and click a reference plane to start a sketch."
msgstr ""
-"目前沒有任何內容 — 從工具列匯入 STEP 或網格,\n"
+"目前沒有任何內容,請從工具列匯入 STEP 或網格,\n"
"或按「草圖」後點選參考平面以開始繪製草圖。"
# AI Translated
msgid "No solid yet — select a sketch and right-click it to Extrude."
-msgstr "尚無實體 — 選取草圖後按右鍵進行擠出。"
+msgstr "尚無實體,請選取草圖後按右鍵進行擠出。"
# AI Translated
msgid "Could not restore the CAD model from this project"
@@ -25067,11 +29506,11 @@ msgstr "無法還原 CAD 模型:%s"
# AI Translated
#, c-format
msgid "Body %zu — %s"
-msgstr "本體 %zu — %s"
+msgstr "本體 %zu:%s"
# AI Translated
msgid "Section view on — hides half the model to see inside; PageUp / PageDown move the plane, Flip shows the other half"
-msgstr "剖面圖已開啟 — 隱藏模型的一半以查看內部;PageUp / PageDown 移動剖切面,「翻轉」顯示另一半"
+msgstr "剖面圖已開啟:隱藏模型的一半以檢視內部;按 PageUp / PageDown 移動剖切面,按「翻轉剖面」顯示另一半"
# AI Translated
msgid "Section view off"
@@ -25079,11 +29518,11 @@ msgstr "剖面圖已關閉"
# AI Translated
msgid "Section view — showing the upper half"
-msgstr "剖面圖 — 顯示上半部"
+msgstr "剖面圖:顯示上半部"
# AI Translated
msgid "Section view — showing the lower half"
-msgstr "剖面圖 — 顯示下半部"
+msgstr "剖面圖:顯示下半部"
# AI Translated
msgid "Finding the feature's faces…"
@@ -25091,7 +29530,7 @@ msgstr "正在尋找特徵的面…"
# AI Translated
msgid "The model is being rebuilt — zoom again when it finishes"
-msgstr "模型正在重建 — 完成後請再次縮放"
+msgstr "模型正在重建,完成後請再次縮放"
# AI Translated
#, c-format, boost-format
@@ -25100,7 +29539,7 @@ msgstr "%s 目前沒有可供縮放的可見內容"
# AI Translated
msgid "That body has no display mesh yet — recompute first"
-msgstr "該本體尚無顯示網格 — 請先重新計算"
+msgstr "該本體尚無顯示網格,請先重新計算"
# AI Translated
msgid "Select something to zoom to"
@@ -25112,15 +29551,15 @@ msgstr "請先完成或取消目前開啟的項目"
# AI Translated
msgid "Select a body first — click it in the viewport or the Bodies list"
-msgstr "請先選取本體 — 在視埠或本體清單中點選"
+msgstr "請先選取本體,在視埠或「本體」清單中點選即可"
# AI Translated
msgid "Drag the arrows to move, the rings to rotate — then Confirm (Esc cancels)"
-msgstr "拖曳箭頭以移動,拖曳圓環以旋轉 — 然後按「確認」(Esc 取消)"
+msgstr "拖曳箭頭以移動,拖曳圓環以旋轉,然後按「確認」(按 Esc 取消)"
# AI Translated
msgid "Drag the arrows to move, the rings to rotate — the numbers follow"
-msgstr "拖曳箭頭以移動,拖曳圓環以旋轉 — 數值會隨之更新"
+msgstr "拖曳箭頭以移動,拖曳圓環以旋轉,數值會隨之更新"
# AI Translated
msgid "Select a body first"
@@ -25137,12 +29576,12 @@ msgstr "點選實體上的面,然後按 F"
# AI Translated
msgid "Placed on face — body laid flat on the bed"
-msgstr "已選擇底面 — 本體已平放在列印板上"
+msgstr "已選擇底面,本體已平放在列印板上"
# AI Translated
#, c-format, boost-format
msgid "Edit rejected: %s"
-msgstr "編輯被拒絕:%s"
+msgstr "已拒絕編輯:%s"
# AI Translated
msgid "Erase all features and bodies and start a new design? This cannot be undone."
@@ -25154,7 +29593,7 @@ msgstr "新設計"
# AI Translated
msgid "This body has no feature to delete — use New Design to start over"
-msgstr "此本體沒有可刪除的特徵 — 請使用「新設計」重新開始"
+msgstr "此本體沒有可刪除的特徵,請使用「新設計」重新開始"
# AI Translated
#, c-format, boost-format
@@ -25164,7 +29603,7 @@ msgstr "特徵 %d"
# AI Translated
#, c-format, boost-format
msgid "Deleted %s, the feature this body was made from — Ctrl+Z restores it"
-msgstr "已刪除 %s(即建立此本體的特徵) — 按 Ctrl+Z 可復原"
+msgstr "已刪除 %s(即建立此本體的特徵),按 Ctrl+Z 可復原"
# AI Translated
msgid "Select the FEATURE that created this body (or use New Design)"
@@ -25254,7 +29693,7 @@ msgstr "此約束需要兩個具有可接合點的圖元"
# AI Translated
msgid "This dimension needs two entities with a point to measure between"
-msgstr "此尺寸需要兩個具有可量測點的圖元"
+msgstr "此尺寸需要兩個具有可測量點的圖元"
# AI Translated
msgid "Midpoint needs a point and a line"
@@ -25282,17 +29721,17 @@ msgstr "不支援的約束"
# AI Translated
msgid "Constraint rejected (over-constrained)"
-msgstr "約束被拒絕(過度約束)"
+msgstr "已拒絕約束(過度約束)"
# AI Translated
msgid "Applied constraint · its badge is on the sketch — click the badge to remove it"
-msgstr "已套用約束 · 其標記顯示在草圖上 — 點選標記即可移除"
+msgstr "已套用約束 · 其標記顯示在草圖上,點選標記即可移除"
# AI Translated
#, c-format, boost-format
msgid "%s — %d selected. Press Esc for the Select tool, click one line, then Shift- or Ctrl-click the other."
msgid_plural "%s — %d selected. Press Esc for the Select tool, click one line, then Shift- or Ctrl-click the other."
-msgstr[0] "%s — 已選取 %d 個。按 Esc 切換到選取工具,點選一條直線,再按住 Shift 或 Ctrl 點選另一條。"
+msgstr[0] "%s,目前已選取 %d 個。按 Esc 切換到選取工具,點選一條直線,再按住 Shift 或 Ctrl 點選另一條。"
# AI Translated
msgid "Applied constraint"
@@ -25499,8 +29938,10 @@ msgid "Applied edit"
msgstr "已套用編輯"
# AI Translated
-msgid " — type a value, press Enter (or Confirm)"
-msgstr " — 輸入數值後按 Enter(或「確認」)"
+#. TRN Design tab status; %s is the value being asked for, such as "Fillet radius".
+#, c-format, boost-format
+msgid "%s — type a value, press Enter (or Confirm)"
+msgstr "%s:輸入數值後按 Enter(或「確認」)"
# AI Translated
msgid "Pick a segment in the viewport first"
@@ -25508,11 +29949,11 @@ msgstr "請先在視埠中選取線段"
# AI Translated
msgid "Applied Horizontal"
-msgstr "已套用水平"
+msgstr "已套用「水平」"
# AI Translated
msgid "Applied Vertical"
-msgstr "已套用垂直"
+msgstr "已套用「垂直」"
# AI Translated
msgid "Sketch: "
@@ -25529,11 +29970,11 @@ msgstr "位於已儲存的面上"
# AI Translated
msgid "Editing sketch — drag a handle or double-click a dimension to edit it"
-msgstr "編輯草圖中 — 拖曳控點或按兩下尺寸以編輯"
+msgstr "編輯草圖中:拖曳控點或按兩下尺寸以編輯"
# AI Translated
msgid "An imported solid has no parameters — use Transform to move or rotate it"
-msgstr "匯入的實體沒有參數 — 請使用「變換」來移動或旋轉"
+msgstr "匯入的實體沒有參數,請使用「變換」來移動或旋轉"
# AI Translated
msgid "This feature type can't be edited yet"
@@ -25541,7 +29982,7 @@ msgstr "此特徵類型目前尚無法編輯"
# AI Translated
msgid "Nothing to export — add a feature first"
-msgstr "沒有可匯出的內容 — 請先新增特徵"
+msgstr "沒有可匯出的內容,請先新增特徵"
# AI Translated
msgid "Export STEP"
@@ -25562,19 +30003,32 @@ msgstr "STEP 匯出失敗:%s"
# AI Translated
msgid "Commit to Plate (as bodies) — send each body to Prepare as its own object"
-msgstr "送至列印板(依本體) — 將每個本體作為獨立物件送到「準備」"
+msgstr "送至列印板(依本體):將每個本體作為獨立物件送到「準備」"
# AI Translated
msgid "Commit to Plate — send the solid to Prepare"
-msgstr "送至列印板 — 將實體送到「準備」"
+msgstr "送至列印板:將實體送到「準備」"
# AI Translated
msgid "Nothing to commit — add a feature first"
-msgstr "沒有可提交的內容 — 請先新增特徵"
+msgstr "沒有可送至列印板的內容,請先新增特徵"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Design Body %d"
+msgstr "設計本體 %d"
# AI Translated
msgid "All bodies hidden — show one before committing"
-msgstr "所有本體皆已隱藏 — 提交前請先顯示一個"
+msgstr "所有本體皆已隱藏,送至列印板前請先顯示一個"
+
+# AI Translated
+msgid "Design Assembly"
+msgstr "設計組合件"
+
+# AI Translated
+msgid "Design Body"
+msgstr "設計本體"
# AI Translated
#, c-format
@@ -25595,7 +30049,7 @@ msgstr "直線 E%d"
# AI Translated
#, c-format, boost-format
msgid "Sketch plane: %s — pick a tool"
-msgstr "草圖平面:%s — 請選擇工具"
+msgstr "草圖平面:%s,請選擇工具"
# AI Translated
#, c-format, boost-format
@@ -25641,13 +30095,14 @@ msgstr "無效:%s"
# AI Translated
#, c-format
-msgid "Preview — %zu triangles"
-msgstr "預覽 — %zu 個三角形"
+msgid "Preview — %zu triangle"
+msgid_plural "Preview — %zu triangles"
+msgstr[0] "預覽:%zu 個三角形"
# AI Translated
#, c-format, boost-format
msgid "Body %d — moved (%.1f, %.1f, %.1f) mm, rotated %.1f°"
-msgstr "本體 %d — 已移動 (%.1f, %.1f, %.1f) mm,已旋轉 %.1f°"
+msgstr "本體 %d:已移動 (%.1f, %.1f, %.1f) mm,已旋轉 %.1f°"
# AI Translated
msgid "Profile: "
@@ -25738,12 +30193,13 @@ msgstr "數值不能為負(零表示重合)"
# AI Translated
msgid "That dimension cannot be satisfied — the sketch is over-constrained"
-msgstr "無法滿足該尺寸 — 草圖已過度約束"
+msgstr "無法滿足該尺寸,草圖已過度約束"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
-msgstr "%1% 個約束無法作用於此幾何(橢圓或雲形線,或尺寸為零的圓),已忽略"
+msgid "%1% constraint cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and is ignored"
+msgid_plural "%1% constraints cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+msgstr[0] "%1% 個約束無法作用於此幾何(橢圓或雲形線,或尺寸為零的圓),已忽略"
# AI Translated
msgid "This profile crosses or folds back on itself at the red mark, so it does not bound one region"
@@ -25776,16 +30232,16 @@ msgstr "圓角半徑必須小於短邊長度的一半"
# AI Translated
msgid "The slot is too wide for its radius — the width must be less than twice the radius"
-msgstr "槽相對於其半徑過寬 — 寬度必須小於半徑的兩倍"
+msgstr "槽相對於其半徑過寬,寬度必須小於半徑的兩倍"
# AI Translated
#, boost-format
msgid "%1% cannot be satisfied — the sketch is over-constrained"
-msgstr "無法滿足%1% — 草圖已過度約束"
+msgstr "無法滿足 %1%,草圖已過度約束"
# AI Translated
msgid "Those two lines do not meet at a corner — pick two lines that do"
-msgstr "這兩條直線未相交於角點 — 請選取兩條相交於角點的直線"
+msgstr "這兩條直線未相交於角點,請選取兩條相交於角點的直線"
# AI Translated
msgid "The size must be greater than zero"
@@ -25801,12 +30257,13 @@ msgstr "倒角:距離超出其中一邊的長度,或兩條直線未相交於
# AI Translated
#, boost-format
-msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
-msgstr "已移除 %1% 個因圓角/倒角而失效的約束"
+msgid "%1% constraint the fillet/chamfer invalidated was removed"
+msgid_plural "%1% constraints the fillet/chamfer invalidated were removed"
+msgstr[0] "已移除 %1% 個因圓角/倒角而失效的約束"
# AI Translated
msgid "Offset: an ellipse or a spline has no parallel of its own kind — pick lines, arcs or circles"
-msgstr "偏移:橢圓或雲形線無法產生同類型的平行曲線 — 請選取直線、圓弧或圓"
+msgstr "偏移:橢圓或雲形線無法產生同類型的平行曲線,請選取直線、圓弧或圓"
# AI Translated
msgid "The scale factor must be greater than zero"
@@ -25822,12 +30279,13 @@ msgstr "副本數必須是 2 以上的整數"
# AI Translated
#, boost-format
-msgid "%1% constraint(s) released by the transform"
-msgstr "變換解除了 %1% 個約束"
+msgid "%1% constraint released by the transform"
+msgid_plural "%1% constraints released by the transform"
+msgstr[0] "變換解除了 %1% 個約束"
# AI Translated
msgid "The array copies are unconstrained — the solver refused every binding"
-msgstr "陣列副本未受約束 — 求解器拒絕了所有繫結約束"
+msgstr "陣列副本未受約束,求解器拒絕了所有繫結約束"
# AI Translated
msgid "right-click or double-click to finish, click start to close"
@@ -25847,7 +30305,7 @@ msgstr "按 Enter 或 ✓ 套用,按 Esc 捨棄"
# AI Translated
msgid "No dimension for that entity yet — click a line, a circle, an arc, or two points"
-msgstr "目前尚無法為該圖元標註尺寸 — 請點選直線、圓、圓弧或兩個點"
+msgstr "目前尚無法為該圖元標註尺寸,請點選直線、圓、圓弧或兩個點"
# AI Translated
msgid "Click a second point, or a line to measure the distance to"
@@ -25888,11 +30346,11 @@ msgstr "草圖"
# AI Translated
msgid "Select a flat face or a reference plane to sketch on"
-msgstr "選取要在其上繪製草圖的平面或參考平面"
+msgstr "選取要在其上繪製草圖的平坦面或參考平面"
# AI Translated
msgid "Sketch on the selected flat face or plane, or click one next"
-msgstr "在選取的平面或參考平面上繪製草圖,或隨後點選一個"
+msgstr "在選取的平坦面或參考平面上繪製草圖,或接著點選一個"
# AI Translated
msgctxt "Design"
@@ -25917,16 +30375,16 @@ msgstr "加厚"
# AI Translated
msgctxt "Design"
msgid "Join"
-msgstr "聯集"
+msgstr "接合"
# AI Translated
msgid "Fuse the tool body into the target — one solid, no seam"
-msgstr "將工具本體融合到目標中 — 成為單一實體,沒有接縫"
+msgstr "將工具本體融合到目標中,成為單一實體,沒有接縫"
# AI Translated
msgctxt "Design"
msgid "Subtract"
-msgstr "差集"
+msgstr "減去"
# AI Translated
msgid "Cut the tool body out of the target"
@@ -25972,12 +30430,7 @@ msgstr "加厚曲面"
# AI Translated
msgid "Thicken Surface needs a surface body — make one with a Surface tool first"
-msgstr "加厚曲面需要曲面本體 — 請先使用曲面工具建立"
-
-# AI Translated
-msgctxt "Design"
-msgid "Hole"
-msgstr "孔"
+msgstr "「加厚曲面」需要曲面本體,請先使用曲面工具建立"
# AI Translated
msgctxt "Design"
@@ -25986,7 +30439,7 @@ msgstr "螺紋"
# AI Translated
msgid "Trim the body with a plane — drag the offset arrow; keep one half or both"
-msgstr "以平面修剪本體 — 拖曳偏移箭頭;保留其中一半或兩半"
+msgstr "以平面修剪本體:拖曳偏移箭頭,保留其中一半或兩半"
# AI Translated
msgctxt "Design"
@@ -25995,7 +30448,7 @@ msgstr "分割"
# AI Translated
msgid "Split needs a solid body — add or import one first"
-msgstr "分割需要實體本體 — 請先新增或匯入一個"
+msgstr "「分割」需要實體本體,請先新增或匯入一個"
# AI Translated
msgid "Split the body along a picked face into two solids"
@@ -26043,7 +30496,7 @@ msgstr "曲面偏移"
# AI Translated
msgid "Surface Offset needs a surface body — make one with a Surface tool first"
-msgstr "曲面偏移需要曲面本體 — 請先使用曲面工具建立"
+msgstr "「曲面偏移」需要曲面本體,請先使用曲面工具建立"
# AI Translated
msgctxt "Design"
@@ -26052,7 +30505,7 @@ msgstr "線性陣列"
# AI Translated
msgid "Repeat the body along a direction — drag the spacing, set the count"
-msgstr "沿一個方向重複本體 — 拖曳設定間距,並設定數量"
+msgstr "沿一個方向重複本體:拖曳設定間距,並設定數量"
# AI Translated
msgctxt "Design"
@@ -26061,12 +30514,7 @@ msgstr "環形陣列"
# AI Translated
msgid "Repeat the body around an axis — set the count and sweep"
-msgstr "繞軸重複本體 — 設定數量與角度範圍"
-
-# AI Translated
-msgctxt "Design"
-msgid "Mirror"
-msgstr "鏡像"
+msgstr "繞軸重複本體:設定數量與角度範圍"
# AI Translated
msgctxt "Design"
@@ -26098,17 +30546,12 @@ msgstr "對齊至"
# AI Translated
msgid "Align needs a body — add or import one first"
-msgstr "對齊需要本體 — 請先新增或匯入一個"
+msgstr "「對齊」需要本體,請先新增或匯入一個"
# AI Translated
msgid "Align the body to a picked face or plane"
msgstr "將本體對齊至選取的面或平面"
-# AI Translated
-msgctxt "Design"
-msgid "Plane"
-msgstr "平面"
-
# AI Translated
msgctxt "Design"
msgid "Axis"
@@ -26149,7 +30592,7 @@ msgstr "干涉"
# AI Translated
msgid "Check whether two bodies overlap — reports, changes nothing"
-msgstr "檢查兩個本體是否重疊 — 僅回報結果,不做任何變更"
+msgstr "檢查兩個本體是否重疊,僅回報結果,不做任何變更"
# AI Translated
msgctxt "Design"
@@ -26212,12 +30655,7 @@ msgstr "刪除本體"
# AI Translated
msgid "Delete this whole body — removes the feature it was made from"
-msgstr "刪除整個本體 — 會移除建立它的特徵"
-
-# AI Translated
-msgctxt "Design"
-msgid "Line"
-msgstr "直線"
+msgstr "刪除整個本體,會一併移除建立它的特徵"
# AI Translated
msgctxt "Design"
@@ -26310,7 +30748,7 @@ msgstr "三角形"
# AI Translated
msgid "Triangle — click center, then a vertex"
-msgstr "三角形 — 點選中心,再點選一個頂點"
+msgstr "三角形:點選中心,再點選一個頂點"
# AI Translated
msgctxt "Design"
@@ -26319,7 +30757,7 @@ msgstr "正方形"
# AI Translated
msgid "Square — click center, then a vertex"
-msgstr "正方形 — 點選中心,再點選一個頂點"
+msgstr "正方形:點選中心,再點選一個頂點"
# AI Translated
msgctxt "Design"
@@ -26328,7 +30766,7 @@ msgstr "五邊形"
# AI Translated
msgid "Pentagon — click center, then a vertex"
-msgstr "五邊形 — 點選中心,再點選一個頂點"
+msgstr "五邊形:點選中心,再點選一個頂點"
# AI Translated
msgctxt "Design"
@@ -26337,7 +30775,7 @@ msgstr "六邊形"
# AI Translated
msgid "Hexagon — click center, then a vertex"
-msgstr "六邊形 — 點選中心,再點選一個頂點"
+msgstr "六邊形:點選中心,再點選一個頂點"
# AI Translated
msgctxt "Design"
@@ -26346,7 +30784,7 @@ msgstr "八邊形"
# AI Translated
msgid "Octagon — click center, then a vertex"
-msgstr "八邊形 — 點選中心,再點選一個頂點"
+msgstr "八邊形:點選中心,再點選一個頂點"
# AI Translated
msgctxt "Design"
@@ -26355,7 +30793,7 @@ msgstr "十二邊形"
# AI Translated
msgid "Dodecagon — click center, then a vertex"
-msgstr "十二邊形 — 點選中心,再點選一個頂點"
+msgstr "十二邊形:點選中心,再點選一個頂點"
# AI Translated
msgctxt "Design"
@@ -26364,7 +30802,7 @@ msgstr "內接"
# AI Translated
msgid "Measure the polygon to its corners (inscribed)"
-msgstr "以頂點為準量測多邊形(內接)"
+msgstr "以頂點為準測量多邊形(內接)"
# AI Translated
msgctxt "Design"
@@ -26373,7 +30811,7 @@ msgstr "外切"
# AI Translated
msgid "Measure the polygon to its flats (circumscribed)"
-msgstr "以各邊為準量測多邊形(外切)"
+msgstr "以各邊為準測量多邊形(外切)"
# AI Translated
msgctxt "Design"
@@ -26518,7 +30956,7 @@ msgstr "斜體"
# AI Translated
msgid "This font cannot be used for text — pick another one"
-msgstr "此字型無法用於文字 — 請選擇其他字型"
+msgstr "此字型無法用於文字,請選擇其他字型"
# AI Translated
msgid "Type the text to see its size"
@@ -26533,213 +30971,6 @@ msgstr "此字型中沒有該文字的字形輪廓"
msgid "Size: %.1f × %.1f mm"
msgstr "尺寸:%.1f × %.1f mm"
-# AI Translated
-msgid "Primitive"
-msgstr "標準模型"
-
-# AI Translated
-msgid "Empty mesh generated"
-msgstr "產生了空的網格"
-
-# AI Translated
-#. TRN Default name of an object created from the box primitive shape.
-msgid "Box"
-msgstr "長方體"
-
-# AI Translated
-#. TRN Primitive gizmo: label in front of the preset cube size buttons
-msgid "Quick:"
-msgstr "快速:"
-
-# AI Translated
-msgid "Width (X)"
-msgstr "寬度 (X)"
-
-# AI Translated
-msgid "Depth (Y)"
-msgstr "深度 (Y)"
-
-# AI Translated
-msgid "Height (Z)"
-msgstr "高度 (Z)"
-
-# AI Translated
-#. TRN Primitive gizmo: bottom radius of a cone ("Top R" is the top radius)
-msgid "Bottom R"
-msgstr "底部半徑"
-
-# AI Translated
-msgid "Top R"
-msgstr "頂部半徑"
-
-# AI Translated
-#. TRN Primitive gizmo: major radius of a torus ("Minor R" is the tube radius)
-msgid "Major R"
-msgstr "主半徑"
-
-# AI Translated
-msgid "Minor R"
-msgstr "次半徑"
-
-# AI Translated
-msgid "All edges"
-msgstr "所有邊"
-
-# AI Translated
-msgid "Top edges"
-msgstr "頂部邊"
-
-# AI Translated
-msgid "Bottom edges"
-msgstr "底部邊"
-
-# AI Translated
-msgid "Lateral edges"
-msgstr "側邊"
-
-# AI Translated
-msgid "Mesh resolution"
-msgstr "網格解析度"
-
-# AI Translated
-msgid "Add Shape"
-msgstr "新增形狀"
-
-# AI Translated
-msgid "No outer profile"
-msgstr "沒有外輪廓"
-
-# AI Translated
-msgid "Failed to make outer face"
-msgstr "無法建立外部面"
-
-# AI Translated
-msgid "Failed to build face with holes"
-msgstr "無法建立帶孔的面"
-
-# AI Translated
-msgid "Revolve failed"
-msgstr "迴轉失敗"
-
-# AI Translated
-msgid "Profile"
-msgstr "輪廓"
-
-# AI Translated
-msgid "Start new profile (for holes)"
-msgstr "開始新輪廓(用於孔洞)"
-
-# AI Translated
-msgid "Segments"
-msgstr "段數"
-
-# AI Translated
-msgid "Sides"
-msgstr "邊數"
-
-# AI Translated
-msgid "Click on canvas to draw"
-msgstr "在畫布上點選以繪製"
-
-# AI Translated
-msgid "Snap to grid"
-msgstr "貼齊格線"
-
-# AI Translated
-msgid "Grid step"
-msgstr "格線間距"
-
-# AI Translated
-msgid "Outer"
-msgstr "外輪廓"
-
-# AI Translated
-msgid "closed"
-msgstr "已封閉"
-
-# AI Translated
-#. TRN Sketch gizmo profile list: "Outer" or "Hole", profile number, point count, "closed" or nothing
-#, boost-format
-msgid "%1% %2%: %3% points %4%"
-msgstr "%1% %2%:%3% 個點 %4%"
-
-# AI Translated
-msgid "XY (Top)"
-msgstr "XY(頂部)"
-
-# AI Translated
-msgid "XZ (Front)"
-msgstr "XZ(前面)"
-
-# AI Translated
-msgid "YZ (Side)"
-msgstr "YZ(側面)"
-
-# AI Translated
-msgid "Revolve deg"
-msgstr "迴轉角度"
-
-# AI Translated
-msgid "Set to 0 for extrude, >0 for revolve"
-msgstr "設為 0 表示擠出,大於 0 表示迴轉"
-
-# AI Translated
-msgid "Pocket (cut)"
-msgstr "挖槽(切除)"
-
-# AI Translated
-#, c-format
-msgid "%zu closed profile"
-msgid_plural "%zu closed profiles"
-msgstr[0] "%zu 個封閉輪廓"
-
-# AI Translated
-msgid "Draw a closed profile to enable"
-msgstr "請繪製封閉輪廓以啟用"
-
-# AI Translated
-msgid "Clear all"
-msgstr "全部清除"
-
-# AI Translated
-msgid "Empty result"
-msgstr "結果為空"
-
-# AI Translated
-#, boost-format
-msgid "Extrude: %1%"
-msgstr "擠出:%1%"
-
-# AI Translated
-#, boost-format
-msgid "Revolve: %1%"
-msgstr "迴轉:%1%"
-
-# AI Translated
-msgid "No object selected"
-msgstr "未選取物件"
-
-# AI Translated
-msgid "Face failed"
-msgstr "建立面失敗"
-
-# AI Translated
-msgid "Face with holes failed"
-msgstr "建立帶孔的面失敗"
-
-# AI Translated
-msgid "Tool mesh empty"
-msgstr "工具網格為空"
-
-# AI Translated
-msgid "Pocket added (negative volume)"
-msgstr "已新增挖槽(負體積)"
-
-# AI Translated
-#, boost-format
-msgid "Pocket: %1%"
-msgstr "挖槽:%1%"
-
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Ins"
@@ -26766,30 +30997,32 @@ msgid "PgDn"
msgstr "PgDn"
# AI Translated
+# Needs human review: Arrow-key names shown in shortcut chips (KeyChord.cpp:44-47, Keyboard Shortcuts dialog): arrows ←→↑↓ chosen for compactness, as in zh_CN; check they read clearly next to Shift/Ctrl, or use 左方向鍵/右方向鍵/上方向鍵/下方向鍵.
msgctxt "Keyboard Shortcut"
msgid "Arrow Left"
-msgstr "Arrow Left"
+msgstr "←"
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Arrow Right"
-msgstr "Arrow Right"
+msgstr "→"
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Arrow Up"
-msgstr "Arrow Up"
+msgstr "↑"
# AI Translated
msgctxt "Keyboard Shortcut"
msgid "Arrow Down"
-msgstr "Arrow Down"
+msgstr "↓"
msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files"
msgstr "從 STL/STEP/3MF/OBJ/AMF 檔案中匯入幾何模型"
+# AI Translated
msgid "Select all objects"
-msgstr "選擇所有物件"
+msgstr "選取所有物件"
msgid "Paste from clipboard"
msgstr "從剪貼簿貼上"
@@ -26823,93 +31056,119 @@ msgstr "將所選項目順時針旋轉 45 度"
# AI Translated
msgid "Gizmo move"
-msgstr "Gizmo 移動"
+msgstr "移動工具"
+# AI Translated
msgid "Gizmo rotate"
-msgstr "旋轉物件"
+msgstr "旋轉工具"
# AI Translated
msgid "Gizmo scale"
-msgstr "Gizmo 縮放"
+msgstr "縮放工具"
+# AI Translated
msgid "Gizmo place face on bed"
-msgstr "選擇底面"
+msgstr "選擇底面工具"
+# AI Translated
msgid "Gizmo cut"
-msgstr "切割物件"
+msgstr "切割工具"
# AI Translated
msgid "Gizmo mesh boolean"
-msgstr "Gizmo 網格布林運算"
+msgstr "網格布林運算工具"
# AI Translated
msgid "Gizmo FDM paint-on supports"
-msgstr "Gizmo FDM 塗刷支撐"
+msgstr "FDM 支撐繪製工具"
+# AI Translated
msgid "Gizmo FDM paint-on seam"
-msgstr "FDM 塗裝接縫"
+msgstr "FDM 接縫繪製工具"
+# AI Translated
msgid "Gizmo FDM paint-on fuzzy skin"
-msgstr "Gizmo FDM 塗刷絨毛表面效果"
+msgstr "FDM 絨毛表面繪製工具"
# AI Translated
msgid "Gizmo multi-material painting"
-msgstr "Gizmo 多材料塗刷"
+msgstr "多材料繪製工具"
+# AI Translated
msgid "Gizmo text emboss/engrave"
-msgstr "浮雕/雕刻文字工具"
+msgstr "文字浮雕/雕刻工具"
+# AI Translated
msgid "Gizmo measure"
-msgstr "測量"
+msgstr "測量工具"
+# AI Translated
msgid "Gizmo assemble"
-msgstr "組裝"
+msgstr "組裝工具"
+# AI Translated
msgid "Gizmo brim ears"
-msgstr "擴邊耳工具"
+msgstr "耳狀 Brim 工具"
+# AI Translated
+msgid "Gizmo texture displacement painting"
+msgstr "紋理位移繪製工具"
+
+# AI Translated
msgid "Vertical slider - Move active thumb Up"
-msgstr "垂直滑動條 - 向上移動一層"
+msgstr "垂直滑桿:向上移動一層"
+# AI Translated
msgid "Vertical slider - Move active thumb Down"
-msgstr "垂直滑動條 - 向下移動一層"
+msgstr "垂直滑桿:向下移動一層"
+# AI Translated
msgid "Horizontal slider - Move active thumb Left"
-msgstr "水平滑動條 - 向左移動一步"
+msgstr "水平滑桿:向左移動一步"
+# AI Translated
msgid "Horizontal slider - Move active thumb Right"
-msgstr "水平滑動條 - 向右移動一步"
+msgstr "水平滑桿:向右移動一步"
+# AI Translated
msgid "Horizontal slider - Move to start position"
-msgstr "水平滑動條 - 移動到起始位置"
+msgstr "水平滑桿:移動到起始位置"
+# AI Translated
msgid "Horizontal slider - Move to last position"
-msgstr "水平滑動條 - 移動到最後位置"
+msgstr "水平滑桿:移動到最後位置"
+# AI Translated
msgid "Camera view - Default"
-msgstr "攝影機視角 - 預設"
+msgstr "相機視角:預設"
+# AI Translated
msgid "Camera view - Top"
-msgstr "攝影機視角 - 頂部"
+msgstr "相機視角:上視"
+# AI Translated
msgid "Camera view - Bottom"
-msgstr "攝影機視角 - 底部"
+msgstr "相機視角:下視"
+# AI Translated
msgid "Camera view - Front"
-msgstr "攝影機視角 - 前面"
+msgstr "相機視角:前視"
+# AI Translated
msgid "Camera view - Behind"
-msgstr "攝影機視角 - 後面"
+msgstr "相機視角:後視"
+# AI Translated
msgid "Camera Angle - Left side"
-msgstr "攝影機視角 - 左面"
+msgstr "相機視角:左視"
+# AI Translated
msgid "Camera Angle - Right side"
-msgstr "攝影機視角 - 右面"
+msgstr "相機視角:右視"
# AI Translated
msgid "Camera view - Current plate"
-msgstr "攝影機視角 - 目前列印板"
+msgstr "相機視角:目前列印板"
msgid "Zoom in"
msgstr "放大"
@@ -26927,14 +31186,17 @@ msgstr "顯示/隱藏線框"
msgid "On/Off G-code window"
msgstr "開啟/關閉 G-code 視窗"
+# AI Translated
msgid "On/Off one layer mode of the vertical slider"
-msgstr "開啟/關閉垂直滑動條的單層模式"
+msgstr "開啟/關閉垂直滑桿的單層模式"
+# AI Translated
msgid "Switch between Prepare/Preview"
-msgstr "在準備/預覽模式之中切換"
+msgstr "在「準備」與「預覽」之間切換"
+# AI Translated
msgid "Collapse/Expand the sidebar"
-msgstr "摺疊/展開 側邊欄"
+msgstr "摺疊/展開側邊欄"
# AI Translated
msgid "Reload the device page"
@@ -26961,15 +31223,15 @@ msgstr "擺放"
# AI Translated
msgid "Gizmos"
-msgstr "Gizmo 工具"
+msgstr "工具"
# AI Translated
msgid "Sliders"
-msgstr "滑動條"
+msgstr "滑桿"
# AI Translated
msgid "Painting tools"
-msgstr "塗刷工具"
+msgstr "繪製工具"
# AI Translated
msgid "Application"
@@ -27069,7 +31331,7 @@ msgstr "結合需要兩個不同的連接器"
# AI Translated
msgid "connector B is not attached to a body — a mate moves B's body"
-msgstr "連接器 B 未附著於本體 — 結合會移動 B 所屬的本體"
+msgstr "連接器 B 未附著於本體,結合會移動 B 所屬的本體"
# AI Translated
msgid "connector B's body no longer exists"
@@ -27077,30 +31339,36 @@ msgstr "連接器 B 所屬的本體已不存在"
# AI Translated
msgid "needs a flat face at both ends — both connectors are on curved faces"
-msgstr "兩端都需要平面 — 兩個連接器都位於曲面上"
+msgstr "兩端都需要平面,但兩個連接器都位於曲面上"
# AI Translated
#, boost-format
msgid "needs a flat face at both ends — connector %1% is on a curved face"
-msgstr "兩端都需要平面 — 連接器 %1% 位於曲面上"
+msgstr "兩端都需要平面,但連接器 %1% 位於曲面上"
# AI Translated
msgid "needs a cylindrical face at both ends — both connectors are on flat faces"
-msgstr "兩端都需要圓柱面 — 兩個連接器都位於平面上"
+msgstr "兩端都需要圓柱面,但兩個連接器都位於平面上"
# AI Translated
msgid "needs a cylindrical face at both ends — both connectors are on non-cylindrical faces"
-msgstr "兩端都需要圓柱面 — 兩個連接器都位於非圓柱面上"
+msgstr "兩端都需要圓柱面,但兩個連接器都位於非圓柱面上"
# AI Translated
#, boost-format
msgid "needs a cylindrical face at both ends — connector %1% is on a flat face"
-msgstr "兩端都需要圓柱面 — 連接器 %1% 位於平面上"
+msgstr "兩端都需要圓柱面,但連接器 %1% 位於平面上"
# AI Translated
#, boost-format
msgid "needs a cylindrical face at both ends — connector %1% is on a curved face"
-msgstr "兩端都需要圓柱面 — 連接器 %1% 位於曲面上"
+msgstr "兩端都需要圓柱面,但連接器 %1% 位於曲面上"
+
+# AI Translated
+#. TRN Datum plane entry in the reference plane list. %1% is the plane name.
+#, boost-format
+msgid "%1% (base plane missing)"
+msgstr "%1%(缺少參考面)"
# AI Translated
msgid "two points are coincident"
@@ -27130,9 +31398,30 @@ msgstr "平面互相平行(無交線)"
msgid "zero-length direction"
msgstr "方向長度為零"
+# AI Translated
+#, boost-format
+msgid "a feature works on body %1%, which does not exist at that point in the history"
+msgstr "有特徵作用於本體 %1%,但該本體在歷史記錄的此時間點並不存在"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body made by a feature that was deleted or hidden"
+msgstr "「%1%」作用於由已刪除或已隱藏的特徵所建立的本體"
+
+# AI Translated
+#, boost-format
+msgid "\"%1%\" works on a body that does not exist at that point in the history"
+msgstr "「%1%」作用於一個在歷史記錄的此時間點並不存在的本體"
+
# AI Translated
msgid "feature is used by a later feature"
-msgstr "此特徵被後續特徵使用中"
+msgstr "後續特徵正在使用此特徵"
+
+# AI Translated
+#. TRN Feature reorder error. %1% is the moved feature, %2% the feature it depends on.
+#, boost-format
+msgid "\"%1%\" uses \"%2%\", so it cannot come before it"
+msgstr "「%1%」使用了「%2%」,因此不能排在它前面"
# AI Translated
msgid "sketch entities do not form a closed loop"
@@ -27144,13 +31433,22 @@ msgid "Open at (%.3f, %.3f)"
msgstr "開口位於 (%.3f, %.3f)"
# AI Translated
+#. TRN Follows a list of open sketch ends. %1% is how many more were not listed.
#, boost-format
-msgid "...and %1% more open end(s)"
-msgstr "...以及另外 %1% 個開放端點"
+msgid "Open ends not shown: %1%"
+msgstr "未顯示的開放端點:%1%"
+
+# AI Translated
+msgid "revolve: the axis line is no longer in the sketch — pick the axis again"
+msgstr "迴轉:軸線已不在草圖中,請重新選取軸"
+
+# AI Translated
+msgid "revolve: the axis line has no length"
+msgstr "迴轉:軸線長度為零"
# AI Translated
msgid "sketch has entities but they do not form a single closed wire — a closed entity (circle/ellipse) combined with other entities, or several closed entities, is not supported yet"
-msgstr "草圖有圖元,但未形成單一封閉輪廓線 — 目前尚不支援將封閉圖元(圓/橢圓)與其他圖元組合,或使用多個封閉圖元"
+msgstr "草圖有圖元,但未形成單一封閉輪廓線;目前尚不支援將封閉圖元(圓/橢圓)與其他圖元組合,或使用多個封閉圖元"
# AI Translated
msgid "sketch profile wire failed"
@@ -27294,6 +31592,30 @@ msgstr "建立孔輪廓線失敗"
msgid "hole cut failed"
msgstr "孔切除失敗"
+# AI Translated
+msgid "thread: the diameter must be at least 1 mm"
+msgstr "螺紋:直徑至少須為 1 mm"
+
+# AI Translated
+msgid "thread: the pitch must be more than 0.1 mm"
+msgstr "螺紋:螺距必須大於 0.1 mm"
+
+# AI Translated
+msgid "thread: the depth must be between 0 and 0.7 x the pitch"
+msgstr "螺紋:深度必須介於 0 到螺距的 0.7 倍之間"
+
+# AI Translated
+msgid "thread: the depth is too large for this diameter"
+msgstr "螺紋:深度對此直徑而言過大"
+
+# AI Translated
+msgid "thread: the length must be more than half a pitch"
+msgstr "螺紋:長度必須大於半個螺距"
+
+# AI Translated
+msgid "thread: too many turns (length / pitch must stay under 400)"
+msgstr "螺紋:圈數過多(長度 / 螺距必須小於 400)"
+
# AI Translated
msgid "internal thread needs a body"
msgstr "內螺紋需要本體"
@@ -27354,6 +31676,22 @@ msgstr "刪除面失敗"
msgid "delete_face produced no geometry"
msgstr "刪除面未產生任何幾何"
+# AI Translated
+msgid "boolean: no target body"
+msgstr "布林運算:沒有目標本體"
+
+# AI Translated
+msgid "boolean: no tool body — pick a second body"
+msgstr "布林運算:沒有工具本體,請選取第二個本體"
+
+# AI Translated
+msgid "boolean: the target and the tool are the same body"
+msgstr "布林運算:目標與工具是同一個本體"
+
+# AI Translated
+msgid "boolean: a body has no geometry"
+msgstr "布林運算:有本體沒有幾何"
+
# AI Translated
msgid "boolean operation failed"
msgstr "布林運算失敗"
@@ -27527,7 +31865,7 @@ msgstr "此結合將本體 %1% 定位於其自身"
# AI Translated
#, boost-format
msgid "Mate chain is circular: Body %1% depends on Body %2%, which leads back to Body %1% — the result depends on feature order"
-msgstr "結合鏈形成循環:本體 %1% 依賴本體 %2%,而後者又導回本體 %1% — 結果取決於特徵順序"
+msgstr "結合鏈形成循環:本體 %1% 依賴本體 %2%,而後者又導回本體 %1%;結果取決於特徵順序"
# AI Translated
#, boost-format
@@ -27544,15 +31882,15 @@ msgstr "特徵需要本體"
# AI Translated
msgid "hole removed no material — the tool does not intersect the target body (coordinates are in the sketch plane's frame, not world)"
-msgstr "孔未移除任何材料 — 工具未與目標本體相交(座標位於草圖平面的座標框架中,而非世界座標)"
+msgstr "孔未移除任何材料:工具未與目標本體相交(座標位於草圖平面的座標框架中,而非世界座標)"
# AI Translated
msgid "thread removed no material — the tool does not intersect the target body (coordinates are in the sketch plane's frame, not world)"
-msgstr "螺紋未移除任何材料 — 工具未與目標本體相交(座標位於草圖平面的座標框架中,而非世界座標)"
+msgstr "螺紋未移除任何材料:工具未與目標本體相交(座標位於草圖平面的座標框架中,而非世界座標)"
# AI Translated
msgid "cut removed no material — the tool does not intersect the target body (coordinates are in the sketch plane's frame, not world)"
-msgstr "切割未移除任何材料 — 工具未與目標本體相交(座標位於草圖平面的座標框架中,而非世界座標)"
+msgstr "切割未移除任何材料:工具未與目標本體相交(座標位於草圖平面的座標框架中,而非世界座標)"
# AI Translated
msgid "OCCT operation failed"
@@ -27668,10 +32006,11 @@ msgstr "了解線材匹配規則。"
# AI Translated
msgid "External spools are not supported since Filament Track Switch has been installed. If you want to use an external spool, please uninstall it."
-msgstr "已安裝 Filament Track Switch,因此不支援外部料盤。若要使用外部料盤,請將其解除安裝。"
+msgstr "已安裝線材路徑切換器,因此不支援外部料盤。若要使用外部料盤,請將其解除安裝。"
+# AI Translated
msgid "Select Filament && Hotends"
-msgstr "選擇材料預設和噴頭"
+msgstr "選擇線材和熱端"
# AI Translated
msgid "Model Pictures"
@@ -27681,6 +32020,10 @@ msgstr "模型圖片"
msgid "Auxiliaries"
msgstr "輔助檔案"
+# AI Translated
+msgid "Belt Purge Tower"
+msgstr "輸送帶清理塔"
+
# AI Translated
msgid "Project Filament List"
msgstr "專案線材清單"
@@ -27715,8 +32058,16 @@ msgstr "分解至少需要兩個相同材料類型的線材"
# AI Translated
#, boost-format
-msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
-msgstr "材料清單最多支援 %1% 種顏色。經過 %2% 分解後,材料數量將超過 %1%。請先在主畫面刪除未使用的線材,再進行分解。"
+msgid "The material list supports at most %1% color. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After Material List decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "材料清單最多支援 %1% 種顏色。經過材料清單分解後,材料數量將超過 %1%。請先在主畫面刪除未使用的線材,再進行分解。"
+
+# AI Translated
+#. TRN %2% is the decomposition mode name, "CMYW" or "RYBW"
+#, boost-format
+msgid "The material list supports at most %1% color. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgid_plural "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+msgstr[0] "材料清單最多支援 %1% 種顏色。經過 %2% 分解後,材料數量將超過 %1%。請先在主畫面刪除未使用的線材,再進行分解。"
# AI Translated
msgid "Cyan"
@@ -27747,13 +32098,1659 @@ msgid "Blue"
msgstr "藍色"
# AI Translated
+#. TRN %1% is a color name such as "Cyan", %2% is a filament type such as "PLA Basic"
+#, boost-format
+msgctxt "Color and filament type"
+msgid "%1% %2%"
+msgstr "%1% %2%"
+
+# AI Translated
+# Needs human review: Joins color/filament names in the decomposition message; the msgid trailing space is kept by rule, so the list reads 「…、 …」. Drop the space if the tool allows it
msgid ", "
-msgstr ", "
+msgstr "、 "
# AI Translated
#, c-format, boost-format
msgid "The current filament list does not contain %s. A project filament required by the mixed filament will be created automatically after decomposition."
-msgstr "目前的線材清單不包含 %s。分解後將自動建立混合線材所需的專案線材。"
+msgid_plural "The current filament list does not contain %s. Project filaments required by the mixed filament will be created automatically after decomposition."
+msgstr[0] "目前的線材清單不包含 %s。分解後將自動建立混合線材所需的專案線材。"
+
+# AI Translated
+msgid "Color Picker"
+msgstr "顏色選擇器"
+
+# AI Translated
+msgid "Basic Colors"
+msgstr "基本顏色"
+
+# AI Translated
+msgid "Orca Palette"
+msgstr "Orca 調色盤"
+
+# AI Translated
+#. TRN: Keep the brand name "Orca" unchanged; translate only the palette descriptor.
+msgid "RAL Classic"
+msgstr "RAL 經典色"
+
+# AI Translated
+# Needs human review: Palette dropdown entry for the gradient presets (next to 基本顏色 / Orca 調色盤 / RAL 經典色); 漸層配色 keeps it apart from the Solid/Gradient switch label 漸層. Check it reads right in the dropdown.
+#. TRN: Keep the standard/brand name "RAL" unchanged.
+msgid "Gradients"
+msgstr "漸層配色"
+
+# AI Translated
+msgid "Solid"
+msgstr "純色"
+
+# AI Translated
+msgid "Gradient"
+msgstr "漸層"
+
+# AI Translated
+msgid "Gradient start"
+msgstr "漸層起點"
+
+# AI Translated
+msgid "Gradient end"
+msgstr "漸層終點"
+
+# AI Translated
+msgid "Gradient color"
+msgstr "漸層顏色"
+
+# AI Translated
+msgid "Add color"
+msgstr "新增顏色"
+
+# AI Translated
+msgid "Remove color"
+msgstr "移除顏色"
+
+# AI Translated
+msgid "Saturation"
+msgstr "飽和度"
+
+# AI Translated
+msgid "Original color"
+msgstr "原始顏色"
+
+# AI Translated
+#. TRN: Clicking the current color preview adds it to the saved favorites.
+msgid "Save current color"
+msgstr "儲存目前顏色"
+
+# AI Translated
+msgid "Palettes"
+msgstr "調色盤"
+
+# AI Translated
+msgid "Search colors"
+msgstr "搜尋顏色"
+
+# AI Translated
+msgid "Filter colors"
+msgstr "篩選顏色"
+
+# AI Translated
+msgid "No matching colors"
+msgstr "沒有符合的顏色"
+
+# AI Translated
+msgid "Hex color"
+msgstr "十六進位色碼"
+
+# AI Translated
+msgid "Opacity"
+msgstr "不透明度"
+
+# AI Translated
+msgid "Opacity percent"
+msgstr "不透明度百分比"
+
+# AI Translated
+msgid "Save color"
+msgstr "儲存顏色"
+
+# AI Translated
+msgid "Enter a complete hexadecimal color"
+msgstr "請輸入完整的十六進位色碼"
+
+# AI Translated
+msgid "The current multi-color selection is kept until you choose a different color."
+msgstr "目前的多色選擇會一直保留,直到您選擇其他顏色為止。"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Up to %d colors supported."
+msgstr "最多支援 %d 種顏色。"
+
+# AI Translated
+msgid "Crimson"
+msgstr "猩紅"
+
+# AI Translated
+msgid "Orange red"
+msgstr "橘紅"
+
+# AI Translated
+msgid "Tomato"
+msgstr "番茄色"
+
+# AI Translated
+msgid "Orange"
+msgstr "橘色"
+
+# AI Translated
+msgid "Dark orange"
+msgstr "暗橘"
+
+# AI Translated
+msgid "Gold"
+msgstr "金色"
+
+# AI Translated
+msgid "Burly wood"
+msgstr "原木色"
+
+# AI Translated
+msgid "Bisque"
+msgstr "陶坯黃"
+
+# AI Translated
+msgid "Misty rose"
+msgstr "霧玫瑰色"
+
+# AI Translated
+msgid "Light yellow"
+msgstr "淺黃"
+
+# AI Translated
+msgid "Lemon chiffon"
+msgstr "檸檬雪紡色"
+
+# AI Translated
+msgid "Beige"
+msgstr "米色"
+
+# AI Translated
+msgid "Light golden rod yellow"
+msgstr "淺金菊黃"
+
+# AI Translated
+msgid "Pale golden rod"
+msgstr "淡金菊黃"
+
+# AI Translated
+msgid "Khaki"
+msgstr "卡其色"
+
+# AI Translated
+msgid "Dark khaki"
+msgstr "深卡其色"
+
+# AI Translated
+msgid "Peach puff"
+msgstr "蜜桃色"
+
+# AI Translated
+msgid "Moccasin"
+msgstr "鹿皮色"
+
+# AI Translated
+msgid "Papaya whip"
+msgstr "木瓜奶油色"
+
+# AI Translated
+msgid "Blanched almond"
+msgstr "杏仁白"
+
+# AI Translated
+msgid "Antique white"
+msgstr "古董白"
+
+# AI Translated
+msgid "Navajo white"
+msgstr "納瓦荷白"
+
+# AI Translated
+msgid "Wheat"
+msgstr "小麥色"
+
+# AI Translated
+msgid "Golden rod"
+msgstr "金菊黃"
+
+# AI Translated
+msgid "Chocolate"
+msgstr "巧克力色"
+
+# AI Translated
+msgid "Peru"
+msgstr "秘魯色"
+
+# AI Translated
+msgid "Fire brick"
+msgstr "耐火磚紅"
+
+# AI Translated
+msgid "Sienna"
+msgstr "赭色"
+
+# AI Translated
+msgid "Saddle brown"
+msgstr "馬鞍棕"
+
+# AI Translated
+msgid "Brown"
+msgstr "棕色"
+
+# AI Translated
+msgid "Rosy brown"
+msgstr "玫瑰棕"
+
+# AI Translated
+msgid "Salmon"
+msgstr "鮭魚色"
+
+# AI Translated
+msgid "Light salmon"
+msgstr "淺鮭魚色"
+
+# AI Translated
+msgid "Dark salmon"
+msgstr "深鮭魚色"
+
+# AI Translated
+msgid "Sandy brown"
+msgstr "沙棕"
+
+# AI Translated
+msgid "Coral"
+msgstr "珊瑚色"
+
+# AI Translated
+msgid "Light coral"
+msgstr "淺珊瑚色"
+
+# AI Translated
+msgid "Indian red"
+msgstr "印度紅"
+
+# AI Translated
+msgid "Dark red"
+msgstr "深紅"
+
+# AI Translated
+msgid "Maroon"
+msgstr "栗色"
+
+# AI Translated
+msgid "Green yellow"
+msgstr "綠黃"
+
+# AI Translated
+msgid "Yellow green"
+msgstr "黃綠"
+
+# AI Translated
+msgid "Chartreuse"
+msgstr "查特酒綠"
+
+# AI Translated
+msgid "Lawn green"
+msgstr "草坪綠"
+
+# AI Translated
+msgid "Lime green"
+msgstr "萊姆綠"
+
+# AI Translated
+msgid "Spring green"
+msgstr "春綠"
+
+# AI Translated
+msgid "Medium spring green"
+msgstr "中春綠"
+
+# AI Translated
+msgid "Lime"
+msgstr "萊姆色"
+
+# AI Translated
+msgid "Forest green"
+msgstr "森林綠"
+
+# AI Translated
+msgid "Dark green"
+msgstr "深綠"
+
+# AI Translated
+msgid "Olive drab"
+msgstr "橄欖軍綠"
+
+# AI Translated
+msgid "Olive"
+msgstr "橄欖色"
+
+# AI Translated
+msgid "Dark olive green"
+msgstr "深橄欖綠"
+
+# AI Translated
+msgid "Pale green"
+msgstr "淡綠"
+
+# AI Translated
+msgid "Light green"
+msgstr "淺綠"
+
+# AI Translated
+msgid "Medium sea green"
+msgstr "中海綠"
+
+# AI Translated
+msgid "Sea green"
+msgstr "海綠"
+
+# AI Translated
+msgid "Dark sea green"
+msgstr "深海綠"
+
+# AI Translated
+msgid "Cadet blue"
+msgstr "軍校藍"
+
+# AI Translated
+msgid "Medium aqua marine"
+msgstr "中碧綠"
+
+# AI Translated
+msgid "Turquoise"
+msgstr "綠松石色"
+
+# AI Translated
+msgid "Medium turquoise"
+msgstr "中綠松石色"
+
+# AI Translated
+msgid "Dark turquoise"
+msgstr "深綠松石色"
+
+# AI Translated
+msgid "Pale turquoise"
+msgstr "淡綠松石色"
+
+# AI Translated
+msgid "Aqua"
+msgstr "水綠"
+
+# AI Translated
+msgid "Light cyan"
+msgstr "淺青"
+
+# AI Translated
+msgid "Mint cream"
+msgstr "薄荷奶油色"
+
+# AI Translated
+msgid "Honey dew"
+msgstr "蜜瓜色"
+
+# AI Translated
+msgid "Aquamarine"
+msgstr "碧綠"
+
+# AI Translated
+msgid "Light sea green"
+msgstr "淺海綠"
+
+# AI Translated
+msgid "Dark cyan"
+msgstr "深青"
+
+# AI Translated
+msgid "Teal"
+msgstr "水鴨色"
+
+# AI Translated
+msgid "Dark slate gray"
+msgstr "深石板灰"
+
+# AI Translated
+msgid "Light slate gray"
+msgstr "淺石板灰"
+
+# AI Translated
+msgid "Slate gray"
+msgstr "石板灰"
+
+# AI Translated
+msgid "Deep sky blue"
+msgstr "深天藍"
+
+# AI Translated
+msgid "Dodger Blue"
+msgstr "道奇藍"
+
+# AI Translated
+msgid "Sky blue"
+msgstr "天藍"
+
+# AI Translated
+msgid "Light sky blue"
+msgstr "淺天藍"
+
+# AI Translated
+msgid "Light blue"
+msgstr "淺藍"
+
+# AI Translated
+msgid "Powder blue"
+msgstr "粉藍"
+
+# AI Translated
+msgid "Light steel blue"
+msgstr "淺鋼藍"
+
+# AI Translated
+msgid "Steel blue"
+msgstr "鋼藍"
+
+# AI Translated
+msgid "Cornflower blue"
+msgstr "矢車菊藍"
+
+# AI Translated
+msgid "Royal blue"
+msgstr "寶藍"
+
+# AI Translated
+msgid "Medium blue"
+msgstr "中藍"
+
+# AI Translated
+msgid "Midnight blue"
+msgstr "午夜藍"
+
+# AI Translated
+msgid "Dark blue"
+msgstr "深藍"
+
+# AI Translated
+msgid "Navy"
+msgstr "海軍藍"
+
+# AI Translated
+msgid "Slate blue"
+msgstr "石板藍"
+
+# AI Translated
+msgid "Dark slate blue"
+msgstr "深石板藍"
+
+# AI Translated
+msgid "Medium slate blue"
+msgstr "中石板藍"
+
+# AI Translated
+msgid "Blue violet"
+msgstr "藍紫"
+
+# AI Translated
+msgid "Indigo"
+msgstr "靛藍"
+
+# AI Translated
+msgid "Dark violet"
+msgstr "深紫羅蘭色"
+
+# AI Translated
+msgid "Dark orchid"
+msgstr "深蘭花紫"
+
+# AI Translated
+msgid "Medium orchid"
+msgstr "中蘭花紫"
+
+# AI Translated
+msgid "Orchid"
+msgstr "蘭花紫"
+
+# AI Translated
+msgid "Violet"
+msgstr "紫羅蘭色"
+
+# AI Translated
+msgid "Medium purple"
+msgstr "中紫"
+
+# AI Translated
+msgid "Purple"
+msgstr "紫色"
+
+# AI Translated
+msgid "Rebecca purple"
+msgstr "瑞貝卡紫"
+
+# AI Translated
+msgid "Medium violet red"
+msgstr "中紫羅蘭紅"
+
+# AI Translated
+msgid "PaleV violet red"
+msgstr "淡紫羅蘭紅"
+
+# AI Translated
+msgid "Deep pink"
+msgstr "深粉紅"
+
+# AI Translated
+msgid "Hot pink"
+msgstr "桃紅"
+
+# AI Translated
+msgid "Light pink"
+msgstr "淺粉紅"
+
+# AI Translated
+msgid "Pink"
+msgstr "粉紅色"
+
+# AI Translated
+msgid "Plum"
+msgstr "李子紫"
+
+# AI Translated
+msgid "Thistle"
+msgstr "薊色"
+
+# AI Translated
+msgid "Fuchsia"
+msgstr "品紅色"
+
+# AI Translated
+msgid "Dark magenta"
+msgstr "深洋紅"
+
+# AI Translated
+msgid "Linen"
+msgstr "亞麻色"
+
+# AI Translated
+msgid "Old lace"
+msgstr "舊蕾絲色"
+
+# AI Translated
+msgid "Sea shell"
+msgstr "貝殼色"
+
+# AI Translated
+msgid "Ivory"
+msgstr "象牙白"
+
+# AI Translated
+msgid "Floral white"
+msgstr "花卉白"
+
+# AI Translated
+msgid "Lavender blush"
+msgstr "薰衣草紫紅"
+
+# AI Translated
+msgid "Ghost white"
+msgstr "幽靈白"
+
+# AI Translated
+msgid "Alice blue"
+msgstr "愛麗絲藍"
+
+# AI Translated
+msgid "Lavender"
+msgstr "薰衣草紫"
+
+# AI Translated
+msgid "White smoke"
+msgstr "白煙色"
+
+# AI Translated
+msgid "Gainsboro"
+msgstr "庚斯博羅灰"
+
+# AI Translated
+msgid "Black"
+msgstr "黑色"
+
+# AI Translated
+msgid "Coral fire"
+msgstr "珊瑚烈焰"
+
+# AI Translated
+msgid "Sea anemone"
+msgstr "海葵"
+
+# AI Translated
+msgid "Deep abyss"
+msgstr "深淵"
+
+# AI Translated
+msgid "Lobster red"
+msgstr "龍蝦紅"
+
+# AI Translated
+msgid "Sandy clay"
+msgstr "沙質黏土"
+
+# AI Translated
+msgid "Driftwood"
+msgstr "漂流木"
+
+# AI Translated
+msgid "Sea buckthorn"
+msgstr "沙棘"
+
+# AI Translated
+msgid "Sunset reef"
+msgstr "夕陽礁岩"
+
+# AI Translated
+msgid "Tiger coral"
+msgstr "虎紋珊瑚"
+
+# AI Translated
+msgid "Pink coral"
+msgstr "粉紅珊瑚"
+
+# AI Translated
+msgid "Seashell glow"
+msgstr "貝殼微光"
+
+# AI Translated
+msgid "Sand"
+msgstr "細沙"
+
+# AI Translated
+msgid "Golden kelp"
+msgstr "金黃海藻"
+
+# AI Translated
+msgid "Sunlit dune"
+msgstr "陽光沙丘"
+
+# AI Translated
+msgid "Amber nautilus"
+msgstr "琥珀鸚鵡螺"
+
+# AI Translated
+msgid "Sea lemon"
+msgstr "海檸檬"
+
+# AI Translated
+msgid "Pale starfish"
+msgstr "淡色海星"
+
+# AI Translated
+msgid "Spring tide"
+msgstr "春潮"
+
+# AI Translated
+msgid "Lime algae"
+msgstr "萊姆綠藻"
+
+# AI Translated
+msgid "Sea grass"
+msgstr "海草"
+
+# AI Translated
+msgid "Neon plankton"
+msgstr "霓虹浮游生物"
+
+# AI Translated
+msgid "Kelp forest"
+msgstr "海藻森林"
+
+# AI Translated
+msgid "Emerald wave"
+msgstr "祖母綠浪"
+
+# AI Translated
+msgid "Whale shadow"
+msgstr "鯨影"
+
+# AI Translated
+msgid "Sea turtle"
+msgstr "海龜"
+
+# AI Translated
+msgid "Lagoon"
+msgstr "潟湖"
+
+# AI Translated
+msgid "Tropical current"
+msgstr "熱帶洋流"
+
+# AI Translated
+msgid "Midnight trench"
+msgstr "午夜海溝"
+
+# AI Translated
+msgid "Dark kelp"
+msgstr "深色海藻"
+
+# AI Translated
+msgid "Crystal surf"
+msgstr "水晶浪花"
+
+# AI Translated
+msgid "Turquoise bay"
+msgstr "綠松石灣"
+
+# AI Translated
+msgid "Sky over reef"
+msgstr "礁上天空"
+
+# AI Translated
+msgid "Shallow sky"
+msgstr "淺色天空"
+
+# AI Translated
+# Needs human review: Orca palette: the English is a typo for "Electric blue" (hex #1E90FF); translated as 電光藍. Revisit if the source keeps a different name.
+msgid "Electric bel"
+msgstr "電光藍"
+
+# AI Translated
+msgid "Dolphin"
+msgstr "海豚"
+
+# AI Translated
+msgid "Ocean depths"
+msgstr "深海"
+
+# AI Translated
+msgid "Whale"
+msgstr "鯨魚"
+
+# AI Translated
+msgid "Indigo abyss"
+msgstr "靛藍深淵"
+
+# AI Translated
+msgid "Sea urchin"
+msgstr "海膽"
+
+# AI Translated
+msgid "Lavender coral"
+msgstr "薰衣草珊瑚"
+
+# AI Translated
+msgid "Violet tide"
+msgstr "紫潮"
+
+# AI Translated
+msgid "Deep sea orchid"
+msgstr "深海蘭花"
+
+# AI Translated
+msgid "Neon jelly"
+msgstr "霓虹水母"
+
+# AI Translated
+msgid "Fuchsia coral"
+msgstr "品紅珊瑚"
+
+# AI Translated
+msgid "Pink jellyfish"
+msgstr "粉紅水母"
+
+# AI Translated
+msgid "Foam"
+msgstr "海沫"
+
+# AI Translated
+msgid "Seashell white"
+msgstr "貝殼白"
+
+# AI Translated
+msgid "Pebble gray"
+msgstr "卵石灰"
+
+# AI Translated
+msgid "Storm cloud"
+msgstr "暴風雲"
+
+# AI Translated
+msgid "Ink black"
+msgstr "墨黑"
+
+# AI Translated
+msgid "Green beige"
+msgstr "綠米色"
+
+# AI Translated
+msgid "Sand yellow"
+msgstr "沙黃"
+
+# AI Translated
+msgid "Signal yellow"
+msgstr "訊號黃"
+
+# AI Translated
+msgid "Golden yellow"
+msgstr "金黃"
+
+# AI Translated
+msgid "Honey yellow"
+msgstr "蜂蜜黃"
+
+# AI Translated
+msgid "Maize yellow"
+msgstr "玉米黃"
+
+# AI Translated
+# Needs human review: RAL 1007 in the RAL Classic list: the English name looks wrong (1007 is Daffodil yellow, 水仙黃); translated literally. Revisit once the source name is fixed.
+msgid "Dalmatian yellow"
+msgstr "達爾馬提亞黃"
+
+# AI Translated
+msgid "Brown beige"
+msgstr "棕米色"
+
+# AI Translated
+msgid "Lemon yellow"
+msgstr "檸檬黃"
+
+# AI Translated
+msgid "Oyster white"
+msgstr "牡蠣白"
+
+# AI Translated
+msgid "Light ivory"
+msgstr "淺象牙白"
+
+# AI Translated
+msgid "Zinc yellow"
+msgstr "鋅黃"
+
+# AI Translated
+msgid "Grey beige"
+msgstr "灰米色"
+
+# AI Translated
+msgid "Olive yellow"
+msgstr "橄欖黃"
+
+# AI Translated
+msgid "Rape yellow"
+msgstr "油菜花黃"
+
+# AI Translated
+msgid "Traffic yellow"
+msgstr "交通黃"
+
+# AI Translated
+msgid "Ochre yellow"
+msgstr "赭黃"
+
+# AI Translated
+msgid "Traffic orange yellow"
+msgstr "交通橘黃"
+
+# AI Translated
+msgid "Curry"
+msgstr "咖哩色"
+
+# AI Translated
+msgid "Melon yellow"
+msgstr "甜瓜黃"
+
+# AI Translated
+msgid "Broom yellow"
+msgstr "金雀花黃"
+
+# AI Translated
+msgid "Dahlia yellow"
+msgstr "大理花黃"
+
+# AI Translated
+msgid "Pastel yellow"
+msgstr "粉彩黃"
+
+# AI Translated
+msgid "Pearl beige"
+msgstr "珍珠米色"
+
+# AI Translated
+msgid "Pearl gold"
+msgstr "珍珠金"
+
+# AI Translated
+msgid "Sun yellow"
+msgstr "陽光黃"
+
+# AI Translated
+msgid "Yellow orange"
+msgstr "黃橘"
+
+# AI Translated
+msgid "Deep orange"
+msgstr "深橘"
+
+# AI Translated
+msgid "Vermilion"
+msgstr "朱紅"
+
+# AI Translated
+msgid "Pearl orange"
+msgstr "珍珠橘"
+
+# AI Translated
+msgid "Pure orange"
+msgstr "純橘"
+
+# AI Translated
+msgid "Luminous orange"
+msgstr "螢光橘"
+
+# AI Translated
+msgid "Luminous bright orange"
+msgstr "螢光亮橘"
+
+# AI Translated
+msgid "Bright red orange"
+msgstr "亮紅橘"
+
+# AI Translated
+msgid "Traffic orange"
+msgstr "交通橘"
+
+# AI Translated
+msgid "Signal orange"
+msgstr "訊號橘"
+
+# AI Translated
+msgid "Salmon orange"
+msgstr "鮭魚橘"
+
+# AI Translated
+msgid "Pearl pink"
+msgstr "珍珠粉紅"
+
+# AI Translated
+msgid "Copper orange"
+msgstr "銅橘"
+
+# AI Translated
+msgid "Signal brown"
+msgstr "訊號棕"
+
+# AI Translated
+msgid "Fir orange"
+msgstr "冷杉橘"
+
+# AI Translated
+msgid "Signal red"
+msgstr "訊號紅"
+
+# AI Translated
+msgid "Luminous red"
+msgstr "螢光紅"
+
+# AI Translated
+msgid "Carmine red"
+msgstr "胭脂紅"
+
+# AI Translated
+msgid "Pearl carmine red"
+msgstr "珍珠胭脂紅"
+
+# AI Translated
+msgid "Pure red"
+msgstr "純紅"
+
+# AI Translated
+msgid "Luminous deep red"
+msgstr "螢光深紅"
+
+# AI Translated
+msgid "Currant red"
+msgstr "醋栗紅"
+
+# AI Translated
+msgid "Pearl ruby red"
+msgstr "珍珠寶石紅"
+
+# AI Translated
+msgid "Fire red"
+msgstr "火焰紅"
+
+# AI Translated
+msgid "Ruby red"
+msgstr "寶石紅"
+
+# AI Translated
+msgid "Purple red"
+msgstr "紫紅"
+
+# AI Translated
+msgid "Wine red"
+msgstr "酒紅"
+
+# AI Translated
+msgid "Black red"
+msgstr "黑紅"
+
+# AI Translated
+msgid "Oxide red"
+msgstr "氧化紅"
+
+# AI Translated
+msgid "Brown red"
+msgstr "棕紅"
+
+# AI Translated
+msgid "Pine red"
+msgstr "松木紅"
+
+# AI Translated
+msgid "Tomato red"
+msgstr "番茄紅"
+
+# AI Translated
+msgid "Antique pink"
+msgstr "古董粉紅"
+
+# AI Translated
+msgid "Coral red"
+msgstr "珊瑚紅"
+
+# AI Translated
+msgid "Rose"
+msgstr "玫瑰色"
+
+# AI Translated
+msgid "Strawberry red"
+msgstr "草莓紅"
+
+# AI Translated
+msgid "Traffic red"
+msgstr "交通紅"
+
+# AI Translated
+msgid "Salmon pink"
+msgstr "鮭魚粉紅"
+
+# AI Translated
+msgid "Luminous rose"
+msgstr "螢光玫瑰色"
+
+# AI Translated
+msgid "Luminous bright red"
+msgstr "螢光亮紅"
+
+# AI Translated
+msgid "Raspberry red"
+msgstr "覆盆子紅"
+
+# AI Translated
+# Needs human review: RAL 3031 in the RAL Classic list: the usual Chinese name 東方紅 is avoided for its political-song connotation; check that 東方朱紅 reads right.
+msgid "Orient red"
+msgstr "東方朱紅"
+
+# AI Translated
+msgid "Pearl ruby"
+msgstr "珍珠紅寶石色"
+
+# AI Translated
+msgid "Red purple"
+msgstr "紅紫"
+
+# AI Translated
+msgid "Red violet"
+msgstr "紅紫羅蘭色"
+
+# AI Translated
+msgid "Heather violet"
+msgstr "石楠紫"
+
+# AI Translated
+msgid "Bordeaux violet"
+msgstr "波爾多紫"
+
+# AI Translated
+msgid "Mahogany"
+msgstr "桃花心木色"
+
+# AI Translated
+msgid "Grey purple"
+msgstr "灰紫"
+
+# AI Translated
+msgid "Signal violet"
+msgstr "訊號紫"
+
+# AI Translated
+msgid "Fir green"
+msgstr "冷杉綠"
+
+# AI Translated
+msgid "Sabine grey"
+msgstr "薩賓灰"
+
+# AI Translated
+msgid "Pearl violet"
+msgstr "珍珠紫"
+
+# AI Translated
+msgid "Pearl blackberry"
+msgstr "珍珠黑莓色"
+
+# AI Translated
+msgid "Green blue"
+msgstr "綠藍"
+
+# AI Translated
+msgid "Ultramarine blue"
+msgstr "群青藍"
+
+# AI Translated
+msgid "Sapphire blue"
+msgstr "寶石藍"
+
+# AI Translated
+msgid "Black blue"
+msgstr "黑藍"
+
+# AI Translated
+msgid "Signal blue"
+msgstr "訊號藍"
+
+# AI Translated
+msgid "Brilliant blue"
+msgstr "豔藍"
+
+# AI Translated
+msgid "Grey blue"
+msgstr "灰藍"
+
+# AI Translated
+msgid "Azure blue"
+msgstr "蔚藍"
+
+# AI Translated
+msgid "Gentian blue"
+msgstr "龍膽藍"
+
+# AI Translated
+msgid "Cobalt blue"
+msgstr "鈷藍"
+
+# AI Translated
+msgid "Pigeon blue"
+msgstr "鴿子藍"
+
+# AI Translated
+msgid "Traffic blue"
+msgstr "交通藍"
+
+# AI Translated
+msgid "Turquoise blue"
+msgstr "綠松石藍"
+
+# AI Translated
+# Needs human review: RAL 5019 in the RAL Classic list: the English name is not a RAL Classic name (5019 is Capri blue); translated literally. Revisit once the source name is fixed.
+msgid "Capsanthin violet"
+msgstr "辣椒紅素紫"
+
+# AI Translated
+msgid "Ocean blue"
+msgstr "海洋藍"
+
+# AI Translated
+msgid "Water blue"
+msgstr "水藍"
+
+# AI Translated
+msgid "Night blue"
+msgstr "夜藍"
+
+# AI Translated
+msgid "Distant blue"
+msgstr "遠方藍"
+
+# AI Translated
+msgid "Pastel blue"
+msgstr "粉彩藍"
+
+# AI Translated
+msgid "Pearl gentian blue"
+msgstr "珍珠龍膽藍"
+
+# AI Translated
+msgid "Pearl midnight blue"
+msgstr "珍珠午夜藍"
+
+# AI Translated
+msgid "Patina green"
+msgstr "銅綠"
+
+# AI Translated
+msgid "Emerald green"
+msgstr "祖母綠"
+
+# AI Translated
+msgid "Leaf green"
+msgstr "葉綠"
+
+# AI Translated
+msgid "Olive green"
+msgstr "橄欖綠"
+
+# AI Translated
+msgid "Blue green"
+msgstr "藍綠"
+
+# AI Translated
+msgid "Moss green"
+msgstr "苔蘚綠"
+
+# AI Translated
+msgid "Grey olive"
+msgstr "灰橄欖色"
+
+# AI Translated
+msgid "Pine green"
+msgstr "松綠"
+
+# AI Translated
+msgid "Pine brown"
+msgstr "松木棕"
+
+# AI Translated
+msgid "Grass green"
+msgstr "草綠"
+
+# AI Translated
+msgid "Reseda green"
+msgstr "木犀草綠"
+
+# AI Translated
+msgid "Brown green"
+msgstr "棕綠"
+
+# AI Translated
+msgid "Reed green"
+msgstr "蘆葦綠"
+
+# AI Translated
+msgid "Black green"
+msgstr "黑綠"
+
+# AI Translated
+msgid "Turquoise green"
+msgstr "綠松石綠"
+
+# AI Translated
+msgid "May green"
+msgstr "五月綠"
+
+# AI Translated
+msgid "Chrome oxide green"
+msgstr "氧化鉻綠"
+
+# AI Translated
+msgid "Traffic green"
+msgstr "交通綠"
+
+# AI Translated
+msgid "Fern green"
+msgstr "蕨綠"
+
+# AI Translated
+msgid "Opal green"
+msgstr "蛋白石綠"
+
+# AI Translated
+msgid "Mint green"
+msgstr "薄荷綠"
+
+# AI Translated
+msgid "Bronze green"
+msgstr "青銅綠"
+
+# AI Translated
+msgid "Pearl green"
+msgstr "珍珠綠"
+
+# AI Translated
+msgid "Sax turquoise"
+msgstr "薩克森綠松石色"
+
+# AI Translated
+msgid "Pearl turquoise"
+msgstr "珍珠綠松石色"
+
+# AI Translated
+msgid "Pearl jade"
+msgstr "珍珠翡翠色"
+
+# AI Translated
+msgid "Pure green"
+msgstr "純綠"
+
+# AI Translated
+msgid "Luminous green"
+msgstr "螢光綠"
+
+# AI Translated
+msgid "Squirrel grey"
+msgstr "松鼠灰"
+
+# AI Translated
+msgid "Silver grey"
+msgstr "銀灰"
+
+# AI Translated
+msgid "Olivestone"
+msgstr "橄欖石色"
+
+# AI Translated
+msgid "Moss grey"
+msgstr "苔蘚灰"
+
+# AI Translated
+msgid "Signal grey"
+msgstr "訊號灰"
+
+# AI Translated
+msgid "Mouse grey"
+msgstr "鼠灰"
+
+# AI Translated
+msgid "Beige grey"
+msgstr "米灰"
+
+# AI Translated
+msgid "Khaki grey"
+msgstr "卡其灰"
+
+# AI Translated
+msgid "Green grey"
+msgstr "綠灰"
+
+# AI Translated
+msgid "Tarpaulin grey"
+msgstr "帆布灰"
+
+# AI Translated
+msgid "Iron grey"
+msgstr "鐵灰"
+
+# AI Translated
+msgid "Basalt grey"
+msgstr "玄武岩灰"
+
+# AI Translated
+msgid "Brown grey"
+msgstr "棕灰"
+
+# AI Translated
+msgid "Slate grey"
+msgstr "石板灰"
+
+# AI Translated
+msgid "Anthracite grey"
+msgstr "無煙煤灰"
+
+# AI Translated
+msgid "Light grey"
+msgstr "淺灰"
+
+# AI Translated
+msgid "Umber grey"
+msgstr "棕土灰"
+
+# AI Translated
+msgid "Concrete grey"
+msgstr "混凝土灰"
+
+# AI Translated
+msgid "Graphite grey"
+msgstr "石墨灰"
+
+# AI Translated
+msgid "Granite grey"
+msgstr "花崗岩灰"
+
+# AI Translated
+msgid "Stone grey"
+msgstr "岩石灰"
+
+# AI Translated
+msgid "Pebble grey"
+msgstr "卵石灰"
+
+# AI Translated
+msgid "Cement grey"
+msgstr "水泥灰"
+
+# AI Translated
+msgid "Yellow grey"
+msgstr "黃灰"
+
+# AI Translated
+msgid "Platinum grey"
+msgstr "白金灰"
+
+# AI Translated
+msgid "Dusty grey"
+msgstr "塵灰"
+
+# AI Translated
+msgid "Agate grey"
+msgstr "瑪瑙灰"
+
+# AI Translated
+msgid "Quartz grey"
+msgstr "石英灰"
+
+# AI Translated
+msgid "Window grey"
+msgstr "窗灰"
+
+# AI Translated
+msgid "Traffic grey A"
+msgstr "交通灰 A"
+
+# AI Translated
+msgid "Traffic grey B"
+msgstr "交通灰 B"
+
+# AI Translated
+msgid "Silk grey"
+msgstr "絲綢灰"
+
+# AI Translated
+msgid "Telegrey 1"
+msgstr "電信灰 1"
+
+# AI Translated
+msgid "Telegrey 2"
+msgstr "電信灰 2"
+
+# AI Translated
+msgid "Telegrey 4"
+msgstr "電信灰 4"
+
+# AI Translated
+msgid "Pearl mouse grey"
+msgstr "珍珠鼠灰"
+
+# AI Translated
+msgid "Green brown"
+msgstr "綠棕"
+
+# AI Translated
+msgid "Ochre brown"
+msgstr "赭棕"
+
+# AI Translated
+msgid "Clay brown"
+msgstr "黏土棕"
+
+# AI Translated
+msgid "Copper brown"
+msgstr "銅棕"
+
+# AI Translated
+msgid "Chocolate brown"
+msgstr "巧克力棕"
+
+# AI Translated
+msgid "Olive brown"
+msgstr "橄欖棕"
+
+# AI Translated
+msgid "Nut brown"
+msgstr "堅果棕"
+
+# AI Translated
+msgid "Red brown"
+msgstr "紅棕"
+
+# AI Translated
+msgid "Sepia brown"
+msgstr "烏賊墨棕"
+
+# AI Translated
+msgid "Chestnut brown"
+msgstr "栗棕"
+
+# AI Translated
+msgid "Mahogany brown"
+msgstr "桃花心木棕"
+
+# AI Translated
+msgid "Grey brown"
+msgstr "灰棕"
+
+# AI Translated
+msgid "Pearl copper"
+msgstr "珍珠銅色"
+
+# AI Translated
+msgid "Beige brown"
+msgstr "米棕"
+
+# AI Translated
+msgid "Pearl mocha brown"
+msgstr "珍珠摩卡棕"
+
+# AI Translated
+msgid "Earth brown"
+msgstr "大地棕"
+
+# AI Translated
+msgid "Pearl brown"
+msgstr "珍珠棕"
+
+# AI Translated
+msgid "Cream"
+msgstr "奶油色"
+
+# AI Translated
+msgid "Grey white"
+msgstr "灰白"
+
+# AI Translated
+msgid "Signal white"
+msgstr "訊號白"
+
+# AI Translated
+msgid "Signal black"
+msgstr "訊號黑"
+
+# AI Translated
+msgid "Jet black"
+msgstr "漆黑"
+
+# AI Translated
+msgid "White aluminium"
+msgstr "白鋁色"
+
+# AI Translated
+msgid "Grey aluminium"
+msgstr "灰鋁色"
+
+# AI Translated
+msgid "Pure white"
+msgstr "純白"
+
+# AI Translated
+msgid "Graphite black"
+msgstr "石墨黑"
+
+# AI Translated
+msgid "Traffic white"
+msgstr "交通白"
+
+# AI Translated
+msgid "Traffic black"
+msgstr "交通黑"
+
+# AI Translated
+msgid "Papyrus white"
+msgstr "莎草紙白"
+
+# AI Translated
+msgid "Pearl light grey"
+msgstr "珍珠淺灰"
+
+# AI Translated
+msgid "Metal: Silver"
+msgstr "金屬:銀色"
+
+# AI Translated
+msgid "Metal: Brass"
+msgstr "金屬:黃銅色"
+
+# AI Translated
+msgid "Metal: Gold"
+msgstr "金屬:金色"
+
+# AI Translated
+msgid "Metal: Copper"
+msgstr "金屬:紅銅色"
+
+# AI Translated
+msgid "Metal: Bronze"
+msgstr "金屬:青銅色"
+
+# AI Translated
+msgid "Nature: Pearl"
+msgstr "自然:珍珠"
+
+# AI Translated
+msgid "Nature: Rainbow"
+msgstr "自然:彩虹"
+
+# AI Translated
+msgid "Nature: Clear Sky"
+msgstr "自然:晴空"
+
+# AI Translated
+msgid "Nature: Sunset"
+msgstr "自然:夕陽"
+
+# AI Translated
+msgid "Wood: Dark"
+msgstr "木紋:深色"
+
+# AI Translated
+msgid "Wood: Medium"
+msgstr "木紋:中色"
+
+# AI Translated
+msgid "Wood: Light"
+msgstr "木紋:淺色"
# AI Translated
msgid "Alternate nozzles:"
@@ -27780,7 +33777,7 @@ msgstr "歡迎"
# AI Translated
#, c-format, boost-format
msgid "Hello, welcome to %s! This %s helps you with the initial configuration; just a few settings and you will be ready to print."
-msgstr "您好,歡迎使用 %s!此%s將協助您完成初始設定,只需幾項設定,即可開始列印。"
+msgstr "您好,歡迎使用 %s!此 %s 將協助您完成初始設定,只需幾項設定,即可開始列印。"
# AI Translated
msgid "Remove user profiles (a snapshot will be taken beforehand)"
@@ -27849,10 +33846,6 @@ msgstr "我的設定"
msgid "Custom Printer Setup"
msgstr "自訂列印裝置設定"
-# AI Translated
-msgid "Custom Printer"
-msgstr "自訂列印裝置"
-
# AI Translated
msgid "Define a custom printer profile"
msgstr "定義自訂列印裝置設定檔"
@@ -28067,7 +34060,7 @@ msgstr "需要調整位置"
# AI Translated
msgctxt "FilamentTrack"
msgid "OK"
-msgstr "確定"
+msgstr "位置正確"
# AI Translated
msgid "Unused"
@@ -28118,7 +34111,15 @@ msgstr "備註:"
# AI Translated
msgctxt "Texture Displacement"
msgid "Bake"
-msgstr "固化"
+msgstr "烘焙"
+
+# AI Translated
+msgid "Type an exact value into a slider"
+msgstr "在滑桿中輸入精確數值"
+
+# AI Translated
+msgid "Edit icon at a slider's right end"
+msgstr "滑桿右端的編輯圖示"
# AI Translated
msgid "Texture displacement"
@@ -28235,11 +34236,11 @@ msgstr "我的紋理"
# AI Translated
msgid "Import your own image as a height map. It is converted to the format the slicer bakes from and saved to your personal texture folder, kept separate from the textures shipped with OrcaSlicer."
-msgstr "匯入您自己的影像作為高度圖。影像會轉換為切片軟體固化時所用的格式,並儲存至您的個人紋理資料夾,與 OrcaSlicer 隨附的紋理分開存放。"
+msgstr "匯入您自己的影像作為高度圖。影像會轉換為切片軟體烘焙時所用的格式,並儲存至您的個人紋理資料夾,與 OrcaSlicer 隨附的紋理分開存放。"
# AI Translated
msgid "PNG, JPG or BMP - converted to a height map on import. Hover one of yours to remove it."
-msgstr "PNG、JPG 或 BMP - 匯入時會轉換為高度圖。將游標停留在您自己的紋理上即可將其移除。"
+msgstr "PNG、JPG 或 BMP:匯入時會轉換為高度圖。將游標停留在您自己的紋理上即可移除。"
# AI Translated
#, c-format, boost-format
@@ -28256,6 +34257,50 @@ msgstr ""
msgid "Remove texture"
msgstr "移除紋理"
+# AI Translated
+msgid "Adjust image"
+msgstr "調整影像"
+
+# AI Translated
+msgid "Brightness"
+msgstr "亮度"
+
+# AI Translated
+msgid "Contrast"
+msgstr "對比度"
+
+# AI Translated
+msgid "Sharpness"
+msgstr "銳利度"
+
+# AI Translated
+msgid "Blur"
+msgstr "模糊"
+
+# AI Translated
+msgid "Hue"
+msgstr "色相"
+
+# AI Translated
+msgid "Brings out the finest detail in the image. Applied after Blur, so the two can be used together: blur away the speckle, then sharpen the edges that remain."
+msgstr "凸顯影像中最細微的細節。在「模糊」之後套用,因此兩者可搭配使用:先模糊掉斑點,再銳化剩下的邊緣。"
+
+# AI Translated
+msgid "Blurs the image itself. The layer's own Smoothing slider softens the relief without altering the image, and is the one to reach for first."
+msgstr "模糊影像本身。圖層自身的「平滑」滑桿可在不改變影像的情況下柔化浮雕,應優先使用。"
+
+# AI Translated
+msgid "This texture is grayscale, so it has no hue to shift."
+msgstr "此紋理為灰階,沒有可偏移的色相。"
+
+# AI Translated
+msgid "The model updates when you release a slider. Save as copy writes the adjusted image to your texture library and points this layer at it."
+msgstr "放開滑桿時模型才會更新。「另存為副本」會將調整後的影像寫入您的紋理庫,並讓此圖層改用該影像。"
+
+# AI Translated
+msgid "Save as copy"
+msgstr "另存為副本"
+
# AI Translated
msgid "Remove texture displacement layer"
msgstr "移除紋理位移圖層"
@@ -28278,7 +34323,7 @@ msgstr "為紋理位移細分模型"
# AI Translated
msgid "Paint the area you want to subdivide first - adaptive subdivision only refines where you have painted."
-msgstr "請先繪製要細分的區域 - 適應性細分只會細化您繪製過的地方。"
+msgstr "請先繪製要細分的區域,適應性細分只會細化您繪製過的地方。"
# AI Translated
msgid "Adaptive subdivide for texture displacement"
@@ -28286,15 +34331,15 @@ msgstr "為紋理位移進行適應性細分"
# AI Translated
msgid "Nothing to subdivide - the painted area already meets the target edge length and detail tolerance, or the triangle budget is already used up."
-msgstr "沒有需要細分的部分 - 繪製區域已符合目標邊長與細節容差,或三角形預算已用完。"
+msgstr "沒有需要細分的部分:繪製區域已符合目標邊長與細節容差,或三角形預算已用完。"
# AI Translated
msgid "Paint the area you want to smooth first - smoothing only touches the painted part of the model."
-msgstr "請先繪製要平滑的區域 - 平滑只會影響模型上繪製過的部分。"
+msgstr "請先繪製要平滑的區域,平滑只會影響模型上繪製過的部分。"
# AI Translated
msgid "Nothing to smooth - the painted area is only one triangle deep, so with \"Ignore outer ring\" on there are no interior vertices to relax."
-msgstr "沒有需要平滑的部分 - 繪製區域只有一個三角形的深度,因此開啟「忽略外圈」時,沒有可鬆弛的內部頂點。"
+msgstr "沒有需要平滑的部分:繪製區域只有一個三角形的深度,因此開啟「忽略外圈」時,沒有可鬆弛的內部頂點。"
# AI Translated
msgid "Smooth texture displacement"
@@ -28310,19 +34355,19 @@ msgstr "重新網格化未改變模型。模型可能是非流形(有開放邊
# AI Translated
msgid "Nothing is painted, there is nothing to bake."
-msgstr "尚未繪製任何內容,沒有可固化的部分。"
+msgstr "尚未繪製任何內容,沒有可烘焙的部分。"
# AI Translated
msgid "Bake texture displacement"
-msgstr "固化紋理位移"
+msgstr "烘焙紋理位移"
# AI Translated
msgid "Nothing is painted, so there are no bake stages to capture."
-msgstr "尚未繪製任何內容,因此沒有可擷取的固化階段。"
+msgstr "尚未繪製任何內容,因此沒有可擷取的烘焙階段。"
# AI Translated
msgid "Bake stages (debug)"
-msgstr "固化階段(除錯)"
+msgstr "烘焙階段(除錯)"
# AI Translated
msgid "Capturing..."
@@ -28334,7 +34379,7 @@ msgstr "擷取階段"
# AI Translated
msgid "Run the same bake the Bake button runs, keeping the mesh after every stage, and step through them here. Nothing is committed to the model - this is for finding which stage a bad result came from."
-msgstr "執行與「固化」按鈕相同的固化流程,保留每個階段之後的網格,並在此逐一檢視。不會對模型做任何變更 - 這是用來找出不良結果出自哪個階段。"
+msgstr "執行與「烘焙」按鈕相同的烘焙流程,保留每個階段之後的網格,並在此逐一檢視。模型不會有任何變更;此功能用於找出不良結果出自哪個階段。"
# AI Translated
msgid "Check topology"
@@ -28342,7 +34387,7 @@ msgstr "檢查拓撲"
# AI Translated
msgid "Count open and non-manifold edges after each stage, which is how a stage that tore the mesh is spotted. It scans every edge, so it adds noticeably to the capture on a fine bake."
-msgstr "在每個階段之後計算開放邊與非流形邊的數量,藉此找出撕裂網格的階段。此功能會掃描每一條邊,因此在精細固化時會明顯增加擷取時間。"
+msgstr "在每個階段之後計算開放邊與非流形邊的數量,藉此找出撕裂網格的階段。此功能會掃描每一條邊,因此在精細烘焙時會明顯增加擷取時間。"
# AI Translated
msgid "< Previous"
@@ -28392,17 +34437,26 @@ msgstr "將每個擷取的階段寫出為 OBJ 檔案,以便在網格檢視器
msgid "The painted area could not be carried onto the remeshed model, so nothing was changed. Switch to Pro mode and remesh before painting."
msgstr "無法將繪製區域轉移到重新網格化後的模型,因此未做任何變更。請切換至專業模式,並在繪製前先重新網格化。"
+# AI Translated
+#, boost-format
+msgid "Range: %1% to %2%"
+msgstr "範圍:%1% 至 %2%"
+
+# AI Translated
+msgid "Type a value instead of dragging. Ctrl+click on the slider does the same."
+msgstr "直接輸入數值,而不必拖曳。在滑桿上按 Ctrl+點選也有相同效果。"
+
# AI Translated
msgid "Pro"
msgstr "專業"
# AI Translated
msgid "Standard - pick a texture, paint where it goes, press Bake. Everything the mesh needs is done for you in that one step."
-msgstr "標準 - 選擇紋理、繪製要套用的位置,然後按「固化」。網格所需的一切處理都會在這一步中自動完成。"
+msgstr "標準:選擇紋理、繪製要套用的位置,然後按「烘焙」。網格所需的一切處理都會在這一步中自動完成。"
# AI Translated
msgid "Pro - the mesh preparation is yours to run: Remesh, Subdivide and Bake as separate steps, with every setting on show. For when Standard's result is not what you wanted and you know why."
-msgstr "專業 - 由您自行執行網格準備:重新網格化、細分與固化為各自獨立的步驟,並顯示所有設定。適用於標準模式的結果不如預期,且您知道原因的情況。"
+msgstr "專業:網格準備由您自行執行,重新網格化、細分與烘焙為各自獨立的步驟,並顯示所有設定。適用於標準模式的結果不如預期、且您清楚原因時。"
# AI Translated
msgid "Dock panel"
@@ -28427,19 +34481,19 @@ msgstr "新增圖層以繪製"
# AI Translated
msgid "Paint - add the active layer where you click or drag. The right button erases, and so does holding Shift."
-msgstr "繪製 - 在點選或拖曳處加上目前圖層。按右鍵或按住 Shift 則為擦除。"
+msgstr "繪製:在點選或拖曳處加上目前圖層。按右鍵或按住 Shift 則為擦除。"
# AI Translated
msgid "Erase - remove the active layer where you click or drag. The right button paints."
-msgstr "擦除 - 在點選或拖曳處移除目前圖層。按右鍵則為繪製。"
+msgstr "擦除:在點選或拖曳處移除目前圖層。按右鍵則為繪製。"
# AI Translated
msgid "Brush - paint over the surface by dragging"
-msgstr "筆刷 - 拖曳以在表面上繪製"
+msgstr "筆刷:拖曳以在表面上繪製"
# AI Translated
msgid "Face - click individual triangles"
-msgstr "面 - 點選個別三角形"
+msgstr "面:點選個別三角形"
# AI Translated
msgid "Connected area"
@@ -28447,11 +34501,11 @@ msgstr "相連區域"
# AI Translated
msgid "Connected area - flood-fill the region reachable without crossing an edge sharper than the angle threshold"
-msgstr "相連區域 - 填滿不需跨越比角度門檻更銳利的邊即可到達的區域"
+msgstr "相連區域:填滿不需跨越比角度門檻更銳利的邊即可到達的區域"
# AI Translated
msgid "Wait for the bake to finish."
-msgstr "請等待固化完成。"
+msgstr "請等待烘焙完成。"
# AI Translated
msgid "Add a layer first."
@@ -28467,7 +34521,7 @@ msgstr "選取整個模型"
# AI Translated
msgid "Select whole model - paint every face of the model with the active layer"
-msgstr "選取整個模型 - 以目前圖層繪製模型的每個面"
+msgstr "選取整個模型:以目前圖層繪製模型的每個面"
# AI Translated
msgid "Erase whole model"
@@ -28475,7 +34529,7 @@ msgstr "擦除整個模型"
# AI Translated
msgid "Erase whole model - clear the active layer's paint from every face"
-msgstr "擦除整個模型 - 清除每個面上目前圖層的繪製"
+msgstr "擦除整個模型:清除每個面上目前圖層的繪製"
# AI Translated
msgid "Reset texture displacement selection"
@@ -28483,55 +34537,55 @@ msgstr "重設紋理位移選取"
# AI Translated
msgid "Circle - paints everything under the brush as seen from the camera"
-msgstr "圓形 - 繪製從相機看去位於筆刷下方的所有內容"
+msgstr "圓形:繪製從相機看去位於筆刷下方的所有內容"
# AI Translated
msgid "Sphere - paints only within a ball around the point under the cursor"
-msgstr "球體 - 僅繪製游標下方點周圍球形範圍內的部分"
+msgstr "球體:僅繪製游標下方點周圍球形範圍內的部分"
# AI Translated
msgid "Angle threshold - the fill stops at edges sharper than this"
-msgstr "角度門檻 - 填充會在比此角度更銳利的邊處停止"
+msgstr "角度門檻:填充會在比此角度更銳利的邊處停止"
# AI Translated
msgid "Click a triangle to paint it"
msgstr "點選三角形即可繪製"
# AI Translated
-msgid "Needs the active layer mapped with Unwrap (LSCM)."
-msgstr "需要目前圖層使用「展開 (LSCM)」映射。"
+msgid "Only for a layer mapped with Unwrap (LSCM) - set the active layer's Mapping to Unwrap to use this view."
+msgstr "僅適用於以「展開(LSCM)」映射的圖層,請將目前圖層的「映射」設為「展開」以使用此檢視模式。"
# AI Translated
msgid "Normal - the real geometry, exactly what Bake will produce. Slower to update"
-msgstr "普通 - 真實幾何,與固化產生的結果完全相同。更新較慢"
+msgstr "普通:真實幾何,與烘焙產生的結果完全相同。更新較慢"
# AI Translated
msgid "Fast - the relief is only shaded on, not built, and only for the layer you are editing. Updates instantly while you paint"
-msgstr "快速 - 浮雕僅以著色呈現而非實際建構,且只顯示正在編輯的圖層。繪製時即時更新"
+msgstr "快速:浮雕僅以著色呈現而非實際建構,且只顯示正在編輯的圖層。繪製時即時更新"
# AI Translated
msgid "Checker"
msgstr "棋盤格"
# AI Translated
-msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
-msgstr "棋盤格 - 以測試網格取代紋理。方格維持正方形之處,紋理不會變形;方格被拉伸之處,紋理也會被拉伸"
+msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too. Opens the UV editor if it is closed"
+msgstr "棋盤格:以測試網格取代紋理顯示。方格保持方正之處,紋理沒有變形;方格拉伸之處,紋理也會拉伸。UV 編輯器關閉時會一併開啟"
# AI Translated
msgid "Distortion"
msgstr "變形"
# AI Translated
-msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
-msgstr "變形 - 在展開結果上以藍到紅的熱圖顯示拉伸程度"
+msgid "Distortion - blue-to-red stretch heatmap over the unwrap. Opens the UV editor if it is closed"
+msgstr "變形:在展開結果上疊加由藍到紅的拉伸熱度圖。UV 編輯器關閉時會一併開啟"
# AI Translated
msgid "Wireframe - overlay the mesh edges; independent of the view above"
-msgstr "線框 - 疊加顯示網格邊;與上方的檢視模式無關"
+msgstr "線框:疊加顯示網格邊;與上方的檢視模式無關"
# AI Translated
msgid "Rebuilds the preview as soon as anything changes. Turn it off on a heavy model if painting or dragging a slider starts to stutter - the preview then waits until you let go."
-msgstr "任何變更發生時立即重建預覽。若在大型模型上繪製或拖曳滑桿時開始卡頓,請將其關閉 - 預覽會等到您放開後才更新。"
+msgstr "任何變更發生時立即重建預覽。若在大型模型上繪製或拖曳滑桿時開始卡頓,請關閉此選項,預覽會等到您放開後才更新。"
# AI Translated
msgid "Texture layers"
@@ -28549,13 +34603,17 @@ msgstr "為此圖層選擇其他影像。繪製、深度與平鋪設定都會保
msgid "not painted"
msgstr "未繪製"
+# AI Translated
+msgid "Brightness, contrast, sharpness, blur and hue, shown on the image and on the model as you set them. Save as copy writes the result to your texture library and points this layer at it."
+msgstr "亮度、對比度、銳利度、模糊與色相,設定時會同步顯示在影像與模型上。「另存為副本」會將結果寫入您的紋理庫,並讓此圖層改用該結果。"
+
# AI Translated
msgid "Move up - applied earlier"
-msgstr "上移 - 較早套用"
+msgstr "上移:較早套用"
# AI Translated
msgid "Move down - applied later"
-msgstr "下移 - 較晚套用"
+msgstr "下移:較晚套用"
# AI Translated
msgid "Remove this layer"
@@ -28569,13 +34627,25 @@ msgstr "浮雕的高度:紋理中的白色會將表面抬高多少,單位為
msgid "Tile size"
msgstr "平鋪尺寸"
+# AI Translated
+msgid "Mapped by the model's own UV layout, which is already the placement - one copy of the texture covers it exactly, so there is no tile size to set."
+msgstr "依模型自身的 UV 配置映射,該配置本身就是放置方式;紋理的一個副本即可精確覆蓋,因此無需設定平鋪尺寸。"
+
# AI Translated
msgid "How wide one copy of the texture is on the model. Smaller repeats the pattern more often and makes its detail finer; with Tile off, this is the size of the single copy."
msgstr "紋理的一個副本在模型上的寬度。數值越小,圖案重複越頻繁、細節越精細;關閉「平鋪」時,這就是單一副本的尺寸。"
+# AI Translated
+msgid "Larger"
+msgstr "較大"
+
+# AI Translated
+msgid "Smaller"
+msgstr "較小"
+
# AI Translated
msgid "Turns the texture on the surface, in degrees - for lining a pattern up with an edge of the model."
-msgstr "在表面上旋轉紋理,單位為度 - 用於將圖案與模型的邊對齊。"
+msgstr "在表面上旋轉紋理,單位為度,用於將圖案與模型的邊對齊。"
# AI Translated
msgid "Midlevel"
@@ -28587,7 +34657,7 @@ msgid ""
"\n"
"What cuts in has to fit: inside a sharp corner or through a thin wall, a deep cut can pass through the other side."
msgstr ""
-"哪一種灰階保持在表面原本的位置。設為 0 時,紋理只會向外推;設為 0.5 時,中灰色保持不動,較暗的灰色向內切入,較亮的灰色仍向外推 - 同一張影像既能凸起也能凹刻。\n"
+"哪一種灰階保持在表面原本的位置。設為 0 時,紋理只會向外推;設為 0.5 時,中灰色保持不動,較暗的灰色向內切入,較亮的灰色仍向外推,因此同一張影像既能凸起也能凹刻。\n"
"\n"
"向內切入的部分必須容納得下:在銳利的內角或薄牆中,較深的切入可能會穿透到另一側。"
@@ -28640,28 +34710,34 @@ msgid "Interleaves two filaments to fake the colors in between, so a handful of
msgstr "交錯使用兩種線材來模擬兩者之間的顏色,讓少數幾種線材也能呈現照片或漸層。純色影像無論開關與否,列印結果都相同。關閉時每個區域只使用一種線材。"
# AI Translated
-msgid "Mix by"
-msgstr "混合方式"
+msgid "Mixed colors"
+msgstr "混色數量"
# AI Translated
-msgctxt "Texture Displacement"
-msgid "Surface"
-msgstr "表面"
+msgid "The most mixed filaments a bake may add. They are picked from the texture's colors, and only the ones the bake actually uses are created."
+msgstr "烘焙時最多可新增的混合線材數量。這些混合線材從紋理的顏色中選取,且只會建立烘焙實際用到的那些。"
# AI Translated
-msgid ""
-"Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
-"Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
-"Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
-msgstr ""
-"層:兩種線材在列印層之間交替,在直立表面上混合平順,但在朝上或朝下的平面上會消失,因為整層只是單一色帶。\n"
-"表面:在表面上形成細密的棋盤格,任何角度都適用,但看起來可能像紋理而非混色。\n"
-"自動:直立面採用層交替;平面則採用較接近的單一線材,因為棋盤格在平面上會顯現為圖案。"
+msgid "Few"
+msgstr "較少"
# AI Translated
+msgid "Many"
+msgstr "較多"
+
+# AI Translated
+#. TRN The %2% part of "%1% printable colors %2%"; %1% is the number of filaments.
#, boost-format
-msgid "%1% printable colors from %2% filaments"
-msgstr "%1% 種可列印顏色(來自 %2% 種線材)"
+msgid "from %1% filament"
+msgid_plural "from %1% filaments"
+msgstr[0] "來自 %1% 種線材"
+
+# AI Translated
+#. TRN %1% is the number of printable colors, %2% is "from N filaments".
+#, boost-format
+msgid "%1% printable color %2%"
+msgid_plural "%1% printable colors %2%"
+msgstr[0] "%1% 種可列印顏色(%2%)"
# AI Translated
msgid "Denoise"
@@ -28682,11 +34758,11 @@ msgstr "三平面(混合)"
# AI Translated
msgid "Triplanar - projects the texture from all three axes at once and blends between them, so a patch wrapping around a sharp edge has no seam."
-msgstr "三平面 - 同時從三個軸向投影紋理並在其間混合,因此包覆銳利邊緣的區塊不會出現接痕。"
+msgstr "三平面:同時從三個軸向投影紋理並在其間混合,因此包覆銳利邊緣的區塊不會出現接痕。"
# AI Translated
msgid "Cylindrical - wraps the texture around the painted area's own center, for round shapes."
-msgstr "圓柱 - 繞著繪製區域本身的中心包覆紋理,適用於圓形形狀。"
+msgstr "圓柱:繞著繪製區域本身的中心包覆紋理,適用於圓形形狀。"
# AI Translated
msgid "Spherical"
@@ -28694,15 +34770,15 @@ msgstr "球面"
# AI Translated
msgid "Spherical - wraps the texture around the painted area's own center in both directions."
-msgstr "球面 - 在兩個方向上繞著繪製區域本身的中心包覆紋理。"
+msgstr "球面:在兩個方向上繞著繪製區域本身的中心包覆紋理。"
# AI Translated
msgid "Unwrap (LSCM)"
-msgstr "展開 (LSCM)"
+msgstr "展開(LSCM)"
# AI Translated
msgid "Unwrap - flattens the painted area and maps the texture onto it with as little stretching as possible. The area is cut into pieces at its sharp edges first (see Seam angle), so each piece can lie flat on its own."
-msgstr "展開 - 將繪製區域攤平,並以最小的拉伸將紋理映射到其上。區域會先在銳利的邊處切割成多塊(請參閱「縫合線角度」),讓每一塊都能各自攤平。"
+msgstr "展開:將繪製區域攤平,並以最小的拉伸將紋理映射到其上。區域會先在銳利的邊處切割成多塊(請參閱「縫合線角度」),讓每一塊都能各自攤平。"
# AI Translated
msgid "From view"
@@ -28710,7 +34786,19 @@ msgstr "從視角"
# AI Translated
msgid "From view - projects straight onto the painted area from where you are looking, like a slide projector."
-msgstr "從視角 - 從您目前觀看的位置直接投影到繪製區域上,就像幻燈片投影機一樣。"
+msgstr "從視角:從您目前觀看的位置直接投影到繪製區域上,就像幻燈片投影機一樣。"
+
+# AI Translated
+msgid "Model UV"
+msgstr "模型 UV"
+
+# AI Translated
+msgid "Model UV - uses the texture coordinates the model itself came with, so a texture made for that model lands exactly where it was painted. Nothing is unwrapped, and Tile size does not apply: the model's own layout is the placement."
+msgstr "模型 UV:使用模型自帶的紋理座標,因此為該模型製作的紋理會精確落在其繪製的位置。不會展開,「平鋪尺寸」也不適用,因為模型自身的配置就是放置方式。"
+
+# AI Translated
+msgid "This model carries no texture coordinates of its own. Only a model imported with a UV channel - a textured OBJ, say - can be mapped by them."
+msgstr "此模型沒有自帶的紋理座標。只有匯入時帶有 UV 通道的模型(例如帶紋理的 OBJ)才能依其進行映射。"
# AI Translated
msgid "Open UV editor"
@@ -28726,8 +34814,9 @@ msgstr "尚未展開"
# AI Translated
#, boost-format
-msgid "%1% islands"
-msgstr "%1% 個 UV 島"
+msgid "%1% island"
+msgid_plural "%1% islands"
+msgstr[0] "%1% 個 UV 島"
# AI Translated
msgid "Capture current view"
@@ -28735,7 +34824,7 @@ msgstr "擷取目前視角"
# AI Translated
msgid "Nothing is visible from this angle - turn the model to face the part you want to project onto."
-msgstr "從此角度看不到任何內容 - 請轉動模型,使要投影的部分朝向您。"
+msgstr "從此角度看不到任何內容,請轉動模型,使要投影的部分朝向您。"
# AI Translated
msgid "Projects the texture onto the painted area from where you are looking now, like a slide projector. Faces turned away from you stretch, so line the view up with the surface you care about first."
@@ -28747,7 +34836,7 @@ msgstr "僅投影至可見面"
# AI Translated
msgid "Paints only the faces you can actually see right now - facing you and not hidden behind anything - and projects onto those. Replaces what the layer had painted."
-msgstr "僅繪製您目前實際看得到的面 - 朝向您且未被任何物體遮擋 - 並投影到這些面上。會取代此圖層原本繪製的內容。"
+msgstr "僅繪製您目前實際看得到的面(朝向您且未被任何東西遮擋),並投影到這些面上。會取代此圖層原本繪製的內容。"
# AI Translated
msgid "Projection frame"
@@ -28757,10 +34846,6 @@ msgstr "投影框"
msgid "Opens a window you drag over the model. Whatever you can see through it is what gets the texture, and its border becomes the edge of the projection."
msgstr "開啟一個可拖曳到模型上的視窗。透過它所看到的部分都會套用紋理,其邊框即成為投影的邊緣。"
-# AI Translated
-msgid "Opacity"
-msgstr "不透明度"
-
# AI Translated
msgid "How solid the frame window looks while you place it. Lower to see the model through it; it does not affect the result."
msgstr "放置投影框時視窗的不透明程度。調低可透過它看到模型;不會影響結果。"
@@ -28771,7 +34856,7 @@ msgstr "套用投影框"
# AI Translated
msgid "Nothing of the model is inside the frame - move it over the part you want to project onto."
-msgstr "投影框內沒有模型的任何部分 - 請將它移到要投影的部分上。"
+msgstr "投影框內沒有模型的任何部分,請將投影框移到要投影的部分上。"
# AI Translated
msgid "The frame could not be applied. Make sure it overlaps the 3D view."
@@ -28803,7 +34888,7 @@ msgstr "鏡像重複"
# AI Translated
msgid "Mirrored repeat - every other tile is flipped, so edges meet seamlessly"
-msgstr "鏡像重複 - 每隔一塊翻轉一次,使邊緣無縫銜接"
+msgstr "鏡像重複:每隔一塊翻轉一次,使邊緣無縫銜接"
# AI Translated
msgid "Blend"
@@ -28812,12 +34897,17 @@ msgstr "混合"
# AI Translated
msgctxt "Texture Displacement"
msgid "Add"
-msgstr "新增"
+msgstr "相加"
+
+# AI Translated
+msgctxt "Texture Displacement"
+msgid "Override"
+msgstr "覆蓋"
# AI Translated
msgctxt "Texture Displacement"
msgid "Subtract"
-msgstr "減去"
+msgstr "相減"
# AI Translated
msgctxt "Texture Displacement"
@@ -28833,8 +34923,8 @@ msgid "The base layer has nothing beneath it to combine with, so it always adds.
msgstr "基底圖層下方沒有可結合的內容,因此一律為相加。"
# AI Translated
-msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
-msgstr "此圖層與下方圖層重疊處的作用方式。「新增」與「減去」會疊加浮雕或將其削去。「相乘」與「相除」會縮放下方的內容,使此圖層成為覆蓋其上的遮罩 - 此時「深度」代表強度,設為 1 mm 時白色區域保持不變。"
+msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Override replaces them, so only this layer's relief is left where it is painted. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+msgstr "此圖層在與下方圖層重疊處的作用方式。「相加」與「相減」會疊加浮雕或將其削去。「覆蓋」會取代下方圖層,因此在繪製處只保留此圖層的浮雕。「相乘」與「相除」會縮放下方的內容,使此圖層成為覆蓋其上的遮罩;此時「深度」代表強度,設為 1 mm 時白色區域保持不變。"
# AI Translated
msgid "Adjust placement"
@@ -28842,7 +34932,7 @@ msgstr "調整位置"
# AI Translated
msgid "Adjust placement - drag the handle on the model to move the texture"
-msgstr "調整位置 - 拖曳模型上的控點以移動紋理"
+msgstr "調整位置:拖曳模型上的控點以移動紋理"
# AI Translated
msgid "Paint something with this layer first."
@@ -28858,8 +34948,9 @@ msgstr "更多設定"
# AI Translated
#, boost-format
-msgid "All %1% layers used"
-msgstr "已使用全部 %1% 個圖層"
+msgid "All %1% layer used"
+msgid_plural "All %1% layers used"
+msgstr[0] "已使用全部 %1% 個圖層"
# AI Translated
msgid "Add layer"
@@ -28883,7 +34974,7 @@ msgstr "跟隨紋理細節"
# AI Translated
msgid "Spends the triangles where the texture actually bends - packed along ridges and edges, sparse over flat ground - instead of spreading them evenly. The same detail for fewer triangles on most textures."
-msgstr "將三角形用在紋理實際彎折之處 - 沿著脊線與邊緣密集排列,在平坦處則稀疏 - 而非平均分布。對大多數紋理而言,能以較少的三角形達到相同細節。"
+msgstr "將三角形用在紋理實際彎折之處(沿著脊線與邊緣密集排列,在平坦處則稀疏),而非平均分布。對大多數紋理而言,能以較少的三角形達到相同細節。"
# AI Translated
msgid "Max edge"
@@ -28931,7 +35022,7 @@ msgstr "顏色細節"
# AI Translated
msgid "Triangle size where two colors meet. Each triangle prints in one filament, so a color edge can only be as sharp as the triangles along it - and nothing else refines there, since the surface is flat across a change of color. 0 turns it off."
-msgstr "兩種顏色交界處的三角形尺寸。每個三角形只以一種線材列印,因此顏色邊界的銳利程度取決於沿線的三角形 - 而且由於顏色變化處的表面是平的,那裡不會有其他細化。設為 0 可關閉。"
+msgstr "兩種顏色交界處的三角形尺寸。每個三角形只以一種線材列印,因此顏色邊界的銳利程度取決於沿線的三角形;而且由於顏色變化處的表面是平的,那裡不會有其他細化。設為 0 可關閉。"
# AI Translated
msgid "Triangle budget: set with Triangles, below."
@@ -28939,8 +35030,9 @@ msgstr "三角形預算:由下方的「三角形」設定。"
# AI Translated
#, boost-format
-msgid "Preview: %1% triangles"
-msgstr "預覽:%1% 個三角形"
+msgid "Preview: %1% triangle"
+msgid_plural "Preview: %1% triangles"
+msgstr[0] "預覽:%1% 個三角形"
# AI Translated
msgid "Steps"
@@ -28948,7 +35040,7 @@ msgstr "細分次數"
# AI Translated
msgid "Splits every triangle of the model into four, this many times over. Each step quadruples the count - 3 turns 100 k triangles into 6.4 M - so prefer refining only the painted area unless you need the whole model finer."
-msgstr "將模型的每個三角形分割為四個,並重複此次數。每一次都會使數量變為四倍 - 3 次會將 100 k 個三角形變成 6.4 M 個 - 因此除非需要整個模型都更精細,否則建議只細化繪製區域。"
+msgstr "將模型的每個三角形分割為四個,並重複此次數。每一次都會使數量變為四倍(3 次會將 100 k 個三角形變成 6.4 M 個),因此除非需要整個模型都更精細,否則建議只細化繪製區域。"
# AI Translated
msgid "Hide preview"
@@ -28972,7 +35064,7 @@ msgstr "將繪製區域細化至目標邊長,並將您的繪製轉移到更細
# AI Translated
msgid "Replaces the model's geometry with the subdivided mesh and clears any not-yet-baked paint on it (already-baked relief is unaffected)."
-msgstr "以細分後的網格取代模型幾何,並清除其上尚未固化的繪製(已固化的浮雕不受影響)。"
+msgstr "以細分後的網格取代模型幾何,並清除其上尚未烘焙的繪製(已烘焙的浮雕不受影響)。"
# AI Translated
msgid "Remeshing"
@@ -28982,13 +35074,21 @@ msgstr "重新網格化"
msgid "Triangle size the whole model is rebuilt with, in millimetres. Displacement works best on an even mesh; this is what makes one out of an uneven import."
msgstr "重建整個模型時使用的三角形尺寸,單位為毫米。位移在均勻的網格上效果最佳;這能將不均勻的匯入模型轉為均勻網格。"
+# AI Translated
+msgid "Before"
+msgstr "處理前"
+
+# AI Translated
+msgid "After"
+msgstr "處理後"
+
# AI Translated
msgid "Keep sharp edges"
msgstr "保留銳利邊"
# AI Translated
msgid "Holds hard edges and open borders in place while the rest is remeshed. Without it the remesher slides vertices along the surface and rounds every crisp edge off - a cube comes back with wobbly edges."
-msgstr "在重新網格化其餘部分時,固定硬邊與開放邊界。若未啟用,重新網格化會讓頂點沿表面滑動,使每條銳利的邊都變圓 - 立方體的邊會變得歪扭不平。"
+msgstr "在重新網格化其餘部分時,固定硬邊與開放邊界。若未啟用,重新網格化會讓頂點沿表面滑動,使每條銳利的邊都變圓,立方體的邊會變得歪扭不平。"
# AI Translated
msgid "How sharp a fold has to be, in degrees, before the remesher treats it as an edge worth keeping. Lower protects more of the model's shape; higher rebuilds more of it evenly."
@@ -29000,7 +35100,7 @@ msgstr "重新網格化"
# AI Translated
msgid "Rebuilds the whole model with triangles close to this edge length - splitting the big ones and merging the small ones - so displacement has an even density to work with. Replaces the geometry; your paint is carried onto the new triangles spatially, so it survives (already-baked relief is kept too)."
-msgstr "以接近此邊長的三角形重建整個模型 - 分割大的三角形並合併小的三角形 - 讓位移有均勻的密度可用。會取代幾何;您的繪製會依空間位置轉移到新的三角形上,因此會被保留(已固化的浮雕也會保留)。"
+msgstr "以接近此邊長的三角形重建整個模型(分割大的三角形並合併小的三角形),讓位移有均勻的密度可用。會取代幾何;您的繪製會依空間位置轉移到新的三角形上,因此會保留下來(已烘焙的浮雕也會保留)。"
# AI Translated
msgid "Displace up to the border"
@@ -29045,19 +35145,19 @@ msgstr "將繪製區域的最外圈排除在平滑之外。最外圈在繪製範
# AI Translated
msgid "Smooth baked mesh now"
-msgstr "立即平滑已固化的網格"
+msgstr "立即平滑已烘焙的網格"
# AI Translated
msgid "Applies the smoothing above to the model itself, right now, within the painted area. For relief that is already baked in - anything not yet baked is smoothed by Bake."
-msgstr "立即在繪製區域內將上述平滑套用至模型本身。適用於已固化的浮雕 - 尚未固化的部分會由「固化」進行平滑。"
+msgstr "立即在繪製區域內將上述平滑套用至模型本身。適用於已烘焙的浮雕;尚未烘焙的部分會由「烘焙」平滑。"
# AI Translated
msgid "Experimental: classic bake pipeline"
-msgstr "實驗性:經典固化流程"
+msgstr "實驗性:經典烘焙流程"
# AI Translated
msgid "Bake by moving the vertices the mesh already has, after preparing it (remesh, adaptive subdivision, and a cut along sharp steps in the texture). Keeps the topology, which is what colors need. The default pipeline instead refines, cleans up sliver triangles, displaces and simplifies in one run; nothing needs preparing first, but it does not produce colors yet."
-msgstr "在準備好網格(重新網格化、適應性細分,以及沿紋理中的銳利階差切割)後,藉由移動網格現有的頂點進行固化。會保留拓撲,這是顏色所需要的。預設流程則會一次完成細化、清理狹長三角形、位移與簡化;不需要事先準備,但目前還無法產生顏色。"
+msgstr "在準備好網格(重新網格化、適應性細分,以及沿紋理中的銳利階差切割)後,藉由移動網格現有的頂點進行烘焙。會保留拓撲,這是顏色所需要的。預設流程則會一次完成細化、清理狹長三角形、位移與簡化;不需要事先準備,但目前還無法產生顏色。"
# AI Translated
#. TRN Slider value: %d is the triangle budget in thousands
@@ -29071,7 +35171,7 @@ msgstr "%d k(自動)"
# AI Translated
msgid "How many thousand triangles this bake may spend on the area you painted. Relief already baked into the rest of the model is kept on top of it, so a second bake somewhere else gets the same budget as the first. Raise it if the warning below Resolution says the detail will not fit; 0 keeps every triangle the refinement produced, however many that is."
-msgstr "此次固化在您繪製的區域上可使用多少千個三角形。模型其餘部分已固化的浮雕會額外保留,因此在其他地方進行第二次固化時,可獲得與第一次相同的預算。若「解析度」下方的警告指出細節無法容納,請調高此值;設為 0 會保留細化產生的所有三角形,無論數量多少。"
+msgstr "此次烘焙在您繪製的區域上可使用多少千個三角形。模型其餘部分已烘焙的浮雕會額外保留,因此在其他地方進行第二次烘焙時,可獲得與第一次相同的預算。若「解析度」下方的警告指出細節無法容納,請調高此值;設為 0 會保留細化產生的所有三角形,無論數量多少。"
# AI Translated
msgid "Align mesh to texture edges"
@@ -29091,7 +35191,7 @@ msgstr "在位移取樣之前,先收合細化從模型原有鑲嵌繼承而來
# AI Translated
msgid "On: the resolution follows the size of the model and the budget is left at its default. Untick to set both yourself - worth doing for a texture much finer or much coarser than the part it sits on."
-msgstr "開啟:解析度依模型尺寸決定,預算維持預設值。取消勾選即可自行設定兩者 - 當紋理比其所在的零件精細或粗糙許多時,值得這麼做。"
+msgstr "開啟:解析度依模型尺寸決定,預算維持預設值。取消勾選即可自行設定兩者;當紋理比其所在的零件精細或粗糙許多時,值得這麼做。"
# AI Translated
#, c-format, boost-format
@@ -29105,36 +35205,28 @@ msgstr "依模型尺寸選定:三角形尺寸 %1$.2f mm,預算 %2% k。取
# AI Translated
msgid "How fine the mesh is made under the paint, in millimetres. It has to be smaller than the detail you want out of the texture - a 0.5 mm groove needs triangles well under 0.5 mm. Smaller costs triangles fast: halving it needs four times as many, and once they no longer fit the budget the bake simplifies back down and the detail goes with it."
-msgstr "繪製區域下方網格的精細程度,單位為毫米。必須小於您想從紋理中呈現的細節 - 0.5 mm 的溝槽需要遠小於 0.5 mm 的三角形。數值越小,三角形耗費得越快:減半就需要四倍的數量,一旦超出預算,固化會將網格簡化回去,細節也會隨之流失。"
+msgstr "繪製區域下方網格的精細程度,單位為毫米。必須小於您想從紋理中呈現的細節(0.5 mm 的溝槽需要遠小於 0.5 mm 的三角形)。數值越小,三角形耗費得越快:減半就需要四倍的數量,一旦超出預算,烘焙會將網格簡化回去,細節也會隨之流失。"
# AI Translated
#, boost-format
msgid "Needs about %1% triangles, budget %2% - the bake will simplify back down and lose detail."
-msgstr "需要約 %1% 個三角形,預算為 %2% - 固化將會簡化網格並損失細節。"
+msgstr "需要約 %1% 個三角形,預算為 %2%,烘焙將會簡化網格並損失細節。"
# AI Translated
msgid "How many thousand triangles the refinement may add to the model. The triangle that fits worst is always split first, so even a run that spends the lot has spent it where it shows most. Raise it if the relief still looks coarse."
msgstr "細化可在模型上增加多少千個三角形。最不貼合的三角形一律優先分割,因此即使用完全部預算,也是用在最明顯的地方。若浮雕看起來仍然粗糙,請調高此值。"
-# AI Translated
-msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
-msgstr "停止固化。已完成的部分會保留在模型上,且可以復原。"
-
-# AI Translated
-msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
-msgstr "關閉工具而不進行固化。您的繪製、圖層與設定都會保留在模型上。"
-
# AI Translated
msgid "Preparing..."
msgstr "準備中..."
# AI Translated
msgid "Baking..."
-msgstr "固化中..."
+msgstr "烘焙中..."
# AI Translated
msgid "Nothing is painted yet. The UV editor's seam tool is on, so strokes on the model mark seams instead of painting - turn it off in the pane to paint."
-msgstr "尚未繪製任何內容。UV 編輯器的縫合線工具已開啟,因此在模型上的筆劃會標記縫合線而非繪製 - 請在窗格中將其關閉以進行繪製。"
+msgstr "尚未繪製任何內容。UV 編輯器的縫合線工具已開啟,因此在模型上的筆劃會標記縫合線而非繪製;請在窗格中關閉此工具後再繪製。"
# AI Translated
msgid "Nothing is painted yet."
@@ -29146,7 +35238,15 @@ msgstr "藉由移動現有的頂點,將繪製的高度圖轉換為真實幾何
# AI Translated
msgid "Turn the painted height maps into real geometry. The mesh is remeshed to an even density and refined where the texture bends first, so the detail has vertices to land on - all in one step."
-msgstr "將繪製的高度圖轉換為真實幾何。網格會先重新網格化為均勻密度,並在紋理彎折處細化,讓細節有頂點可以落腳 - 全部一步完成。"
+msgstr "將繪製的高度圖轉換為真實幾何。網格會先重新網格化為均勻密度,並在紋理彎折處細化,讓細節有頂點可以落腳,全部一步完成。"
+
+# AI Translated
+msgid "Stops the bake. Whatever it had already finished stays on the model, and can be undone."
+msgstr "停止烘焙。已完成的部分會保留在模型上,且可以復原。"
+
+# AI Translated
+msgid "Closes the tool without baking. Your paint, layers and settings stay with the model."
+msgstr "關閉工具而不進行烘焙。您的繪製、圖層與設定都會保留在模型上。"
# AI Translated
#, boost-format
@@ -29154,29 +35254,37 @@ msgid "%1% k"
msgstr "%1% k"
# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
#, boost-format
-msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
-msgstr "模型:%1% 個三角形 - 固化會細化至上方的解析度,最多到預算上限"
+msgid "Model: %1% triangle - the bake refines to the resolution above, up to its budget"
+msgid_plural "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+msgstr[0] "模型:%1% 個三角形,烘焙會細化至上方的解析度,最多到預算上限"
+
+# AI Translated
+#. TRN %1% is a triangle count, either exact or rounded to thousands such as "120 k".
+#, boost-format
+msgid "Bake moves existing vertices - the model stays at %1% triangle"
+msgid_plural "Bake moves existing vertices - the model stays at %1% triangles"
+msgstr[0] "烘焙會移動現有頂點,模型維持 %1% 個三角形"
# AI Translated
#, boost-format
-msgid "Bake moves existing vertices - the model stays at %1% triangles"
-msgstr "固化會移動現有頂點 - 模型維持 %1% 個三角形"
+msgid "Bake result up to ~%1% k triangle"
+msgid_plural "Bake result up to ~%1% k triangles"
+msgstr[0] "烘焙結果最多約 %1% k 個三角形"
# AI Translated
#, boost-format
-msgid "Bake result up to ~%1% k triangles"
-msgstr "固化結果最多約 %1% k 個三角形"
-
-# AI Translated
-#, boost-format
-msgid "%1% layers not painted, skipped"
-msgstr "%1% 個圖層未繪製,已略過"
+msgid "%1% layer not painted, skipped"
+msgid_plural "%1% layers not painted, skipped"
+msgstr[0] "%1% 個圖層未繪製,已略過"
# AI Translated
+#. TRN %1% is one layer name, or two names separated by a comma.
#, boost-format
msgid "%1% not painted, skipped"
-msgstr "%1% 未繪製,已略過"
+msgid_plural "%1% not painted, skipped"
+msgstr[0] "%1% 未繪製,已略過"
# AI Translated
msgid "Entering Texture displacement painting"
@@ -29194,6 +35302,10 @@ msgstr "紋理位移編輯"
msgid "Choose SLA archive:"
msgstr "選擇 SLA 存檔:"
+# AI Translated
+msgid "SL1 / SL1S archive files"
+msgstr "SL1 / SL1S 封存檔案"
+
# AI Translated
msgid "Import file"
msgstr "匯入檔案"
@@ -29224,11 +35336,11 @@ msgstr "快速"
# AI Translated
msgid "Baking texture displacement"
-msgstr "正在固化紋理位移"
+msgstr "正在烘焙紋理位移"
# AI Translated
msgid "The bake produced no displacement, so nothing was changed and the paint was kept. Check that the painted layer has a texture and a non-zero depth."
-msgstr "固化未產生任何位移,因此未做任何變更,並保留了繪製。請確認繪製的圖層有紋理且深度不為零。"
+msgstr "烘焙未產生任何位移,因此未做任何變更,並保留了繪製。請確認繪製的圖層有紋理且深度不為零。"
# AI Translated
#, boost-format
@@ -29237,7 +35349,7 @@ msgstr "三角形預算限制了細節:此解析度需要 %1% 個三角形,
# AI Translated
msgid "Capturing bake stages"
-msgstr "正在擷取固化階段"
+msgstr "正在擷取烘焙階段"
# AI Translated
msgid "Preparing mesh for texture displacement"
@@ -29286,7 +35398,7 @@ msgstr "-- 選擇 --"
# AI Translated
#, c-format, boost-format
msgid "Slot %s (%s)"
-msgstr "槽位 %s (%s)"
+msgstr "槽位 %s(%s)"
# AI Translated
#, c-format, boost-format
@@ -29364,6 +35476,34 @@ msgstr "線材外掛"
msgid "Printer plugins"
msgstr "列印裝置外掛"
+# AI Translated
+msgid "This preset does not use any plugin capabilities"
+msgstr "此預設未使用任何外掛功能"
+
+# AI Translated
+msgid "Capabilities used by this preset"
+msgstr "此預設使用的功能"
+
+# AI Translated
+msgid "Capability configuration (JSON)"
+msgstr "功能設定(JSON)"
+
+# AI Translated
+msgid "Plugin configuration"
+msgstr "外掛設定"
+
+# AI Translated
+msgid "Discard this preset's override and use the global configuration again"
+msgstr "捨棄此預設的覆寫值,重新使用全域設定"
+
+# AI Translated
+msgid "Restore defaults"
+msgstr "還原預設值"
+
+# AI Translated
+msgid "Invalid JSON"
+msgstr "無效的 JSON"
+
# AI Translated
msgid "The configuration is not valid JSON. Your changes were not saved."
msgstr "設定不是有效的 JSON。您的變更未儲存。"
@@ -29383,10 +35523,6 @@ msgstr ""
"\n"
"這會捨棄此預設中的覆寫值,並改用全域設定。"
-# AI Translated
-msgid "Restore defaults"
-msgstr "還原預設值"
-
# AI Translated
msgid "Using global configuration. Save the preset to persist it."
msgstr "正在使用全域設定。請儲存預設以保留此設定。"
@@ -29398,7 +35534,7 @@ msgstr "此功能已無法使用。"
# AI Translated
#, boost-format
msgid "The plugin's configuration UI failed to load (%1%). Showing the default editor."
-msgstr "外掛的設定介面載入失敗(%1%)。將顯示預設編輯器。"
+msgstr "無法載入外掛的設定介面(%1%)。將顯示預設編輯器。"
# AI Translated
msgid "Delete Plugin"
@@ -29412,10 +35548,6 @@ msgstr "取消訂閱"
msgid "Overwrite Plugin"
msgstr "覆寫外掛"
-# AI Translated
-msgid "Show in folder"
-msgstr "在資料夾中顯示"
-
# AI Translated
msgid "Reinstall"
msgstr "重新安裝"
@@ -29424,13 +35556,17 @@ msgstr "重新安裝"
msgid "Delete cache and reload"
msgstr "刪除快取並重新載入"
+# AI Translated
+msgid "No description."
+msgstr "沒有描述。"
+
# AI Translated
msgid "Select a .py or .whl plugin package."
msgstr "選擇 .py 或 .whl 外掛套件。"
# AI Translated
msgid "Failed to install plugin package. See the log for details."
-msgstr "外掛套件安裝失敗。詳細資訊請參閱記錄檔。"
+msgstr "無法安裝外掛套件。詳細資訊請參閱記錄檔。"
# AI Translated
#, c-format, boost-format
@@ -29456,10 +35592,296 @@ msgstr "正在安裝外掛"
msgid "Installed \"%s\"."
msgstr "已安裝「%s」。"
+# AI Translated
+msgid "Search plugins"
+msgstr "搜尋外掛"
+
+# AI Translated
+msgid "Clear search"
+msgstr "清除搜尋"
+
+# AI Translated
+msgid "Match case"
+msgstr "大小寫須相符"
+
+# AI Translated
+msgid "Match whole word"
+msgstr "全字拼寫須相符"
+
+# AI Translated
+msgid "More plugin install options"
+msgstr "更多外掛安裝選項"
+
+# AI Translated
+msgid "Install plugin"
+msgstr "安裝外掛"
+
+# AI Translated
+msgid "Install local plugin"
+msgstr "安裝本機外掛"
+
+# AI Translated
+msgid "Activate"
+msgstr "啟用"
+
+# AI Translated
+msgid "Sort by name"
+msgstr "依名稱排序"
+
+# AI Translated
+msgid "Sort by version"
+msgstr "依版本排序"
+
+# AI Translated
+msgid "Plugin Version"
+msgstr "外掛版本"
+
+# AI Translated
+msgid "Sort by source"
+msgstr "依來源排序"
+
+# AI Translated
+msgid "Source"
+msgstr "來源"
+
+# AI Translated
+msgid "Sort by status"
+msgstr "依狀態排序"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Status"
+msgstr "狀態"
+
+# AI Translated
+msgid "Drag to resize; double-click to reset"
+msgstr "拖曳以調整大小;按兩下以重設"
+
+# AI Translated
+msgid "Resize the plugin list"
+msgstr "調整外掛清單大小"
+
+# AI Translated
+msgid "Plugin details"
+msgstr "外掛詳細資訊"
+
+# AI Translated
+msgid "Plugin Info"
+msgstr "外掛資訊"
+
+# AI Translated
+msgid "Description"
+msgstr "描述"
+
+# AI Translated
+msgid "Config"
+msgstr "設定"
+
+# AI Translated
+msgid "Changelog"
+msgstr "變更記錄"
+
+# AI Translated
+msgid "Diagnostics"
+msgstr "診斷"
+
+# AI Translated
+msgid "Types"
+msgstr "類型"
+
+# AI Translated
+msgid "Installed Version"
+msgstr "已安裝版本"
+
+# AI Translated
+msgid "Latest Version"
+msgstr "最新版本"
+
+# AI Translated
+msgid "Update to the latest version"
+msgstr "更新至最新版本"
+
+# AI Translated
+msgid "No description available"
+msgstr "沒有可用的描述"
+
+# AI Translated
+msgid "Select a plugin to configure its capabilities"
+msgstr "選擇一個外掛以設定其功能"
+
+# AI Translated
+msgid "Configurable capabilities"
+msgstr "可設定的功能"
+
+# AI Translated
+msgid "Discard the settings saved for this capability and restore the plugin's defaults"
+msgstr "捨棄為此功能儲存的設定,並還原外掛的預設值"
+
+# AI Translated
+msgid "Plugin changelog"
+msgstr "外掛變更記錄"
+
+# AI Translated
+msgid "Date"
+msgstr "日期"
+
+# AI Translated
+msgid "Changes"
+msgstr "變更內容"
+
+# AI Translated
+msgid "No changelog available"
+msgstr "沒有可用的變更記錄"
+
+# AI Translated
+msgid "No issues detected"
+msgstr "未偵測到問題"
+
+# AI Translated
+msgid "No plugins found"
+msgstr "找不到外掛"
+
+# AI Translated
+#, c-format, boost-format
+msgid "No plugins match \"%s\""
+msgstr "沒有符合「%s」的外掛"
+
+# AI Translated
+msgid "Mine"
+msgstr "我的"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Subscribed"
+msgstr "已訂閱"
+
+# AI Translated
+msgid "Orphaned"
+msgstr "孤立"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Local"
+msgstr "本機"
+
+# AI Translated
+msgid "Some plugin capabilities are enabled"
+msgstr "已啟用部分外掛功能"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Collapse %s capabilities"
+msgstr "摺疊 %s 的功能"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Expand %s capabilities"
+msgstr "展開 %s 的功能"
+
+# AI Translated
+msgid "Collapse capabilities"
+msgstr "摺疊功能"
+
+# AI Translated
+msgid "Expand capabilities"
+msgstr "展開功能"
+
+# AI Translated
+msgid "Open this plugin in your browser"
+msgstr "在瀏覽器中開啟此外掛"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Capabilities: %s"
+msgstr "功能:%s"
+
+# AI Translated
+msgctxt "Plugin"
+msgid "Capabilities"
+msgstr "功能"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Run \"%s\""
+msgstr "執行「%s」"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Enable %s"
+msgstr "啟用 %s"
+
+# AI Translated
+msgid "Unauthorized for updates"
+msgstr "未獲更新授權"
+
+# AI Translated
+msgid "Loading the plugin…"
+msgstr "正在載入外掛…"
+
+# AI Translated
+msgid "This plugin exposes no capabilities"
+msgstr "此外掛未提供任何功能"
+
+# AI Translated
+msgid "Activate this plugin to configure its capabilities"
+msgstr "啟用此外掛以設定其功能"
+
+# AI Translated
+msgid "View on OrcaCloud here "
+msgstr "點此 在 OrcaCloud 上檢視"
+
+# AI Translated
+msgid "Activated"
+msgstr "已啟用"
+
+# AI Translated
+msgid "Runtime error"
+msgstr "執行階段錯誤"
+
+# AI Translated
+msgid "Inactive"
+msgstr "未啟用"
+
+# AI Translated
+msgid "This plugin is active and ready to be used."
+msgstr "此外掛已啟用,可以使用。"
+
+# AI Translated
+msgid "This plugin is still loading."
+msgstr "此外掛仍在載入中。"
+
+# AI Translated
+msgid "This plugin is blocked until its error is fixed."
+msgstr "此外掛已被封鎖,需修正其錯誤後才能使用。"
+
+# AI Translated
+msgid "This plugin is loaded but a capability reported an error."
+msgstr "此外掛已載入,但有功能回報了錯誤。"
+
+# AI Translated
+msgid "This plugin is inactive. Activate it to install or load it."
+msgstr "此外掛未啟用。啟用後即可安裝或載入。"
+
+# AI Translated
+msgid "Select a plugin to view its status and details."
+msgstr "選擇一個外掛以檢視其狀態與詳細資訊。"
+
+# AI Translated
+msgid "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."
+msgstr "孤立:此外掛已不再訂閱,或已無法在 OrcaCloud 中取得。本機副本仍保持安裝,可繼續使用。"
+
+# AI Translated
+msgid "A newer plugin version is available."
+msgstr "有較新的外掛版本可用。"
+
+# AI Translated
+msgid "Cloud updates are unavailable because this plugin is unauthorized for updates."
+msgstr "此外掛未獲更新授權,因此無法取得雲端更新。"
+
# AI Translated
#, c-format, boost-format
msgid "Failed to activate \"%s\"."
-msgstr "啟用「%s」失敗。"
+msgstr "無法啟用「%s」。"
# AI Translated
#, c-format, boost-format
@@ -29489,7 +35911,7 @@ msgstr "正在重新整理外掛資料"
# AI Translated
msgid "Failed to unload plugin."
-msgstr "卸載外掛失敗。"
+msgstr "無法卸除外掛。"
# AI Translated
#, c-format, boost-format
@@ -29525,7 +35947,7 @@ msgstr "正在下載外掛"
# AI Translated
msgid "Plugin download failed."
-msgstr "外掛下載失敗。"
+msgstr "無法下載外掛。"
# AI Translated
msgid "Configuration saved."
@@ -29556,7 +35978,7 @@ msgstr "正在更新外掛"
# AI Translated
msgid "Failed to update plugin."
-msgstr "外掛更新失敗。"
+msgstr "無法更新外掛。"
# AI Translated
#, c-format, boost-format
@@ -29591,7 +36013,7 @@ msgstr ""
# AI Translated
msgid "Failed to delete plugin."
-msgstr "刪除外掛失敗。"
+msgstr "無法刪除外掛。"
# AI Translated
#, c-format, boost-format
@@ -29619,7 +36041,7 @@ msgstr ""
# AI Translated
msgid "Failed to unsubscribe plugin."
-msgstr "取消訂閱外掛失敗。"
+msgstr "無法取消訂閱外掛。"
# AI Translated
#, c-format, boost-format
@@ -29645,11 +36067,11 @@ msgstr "拒絕清除位於本機外掛目錄之外的外掛快取。"
# AI Translated
#, boost-format
msgid "Failed to clear plugin cache: %1%"
-msgstr "清除外掛快取失敗:%1%"
+msgstr "無法清除外掛快取:%1%"
# AI Translated
msgid "Plugin failed to load."
-msgstr "外掛載入失敗。"
+msgstr "無法載入外掛。"
# AI Translated
msgid "Plugin reloaded, but failed to restore the inactive state."
@@ -29665,13 +36087,76 @@ msgstr "未知的外掛重新載入錯誤。"
# AI Translated
msgid "Failed to reload plugin."
-msgstr "重新載入外掛失敗。"
+msgstr "無法重新載入外掛。"
# AI Translated
#, c-format, boost-format
msgid "Reloaded \"%s\"."
msgstr "已重新載入「%s」。"
+# AI Translated
+msgid "Printer Connection"
+msgstr "列印裝置連線"
+
+# AI Translated
+msgid "Please set up your printer connection to view the device."
+msgstr "請先設定列印裝置連線以檢視裝置。"
+
+msgid "No model information"
+msgstr "沒有模型相關資訊"
+
+msgid "Edit Project Info"
+msgstr "編輯專案資訊"
+
+# AI Translated
+msgid "Model Information"
+msgstr "模型資訊"
+
+# AI Translated
+msgid "Accessories"
+msgstr "配件"
+
+# AI Translated
+msgid "Profile Information"
+msgstr "設定檔資訊"
+
+# AI Translated
+msgid "Model name"
+msgstr "模型名稱"
+
+# AI Translated
+msgid "Created by"
+msgstr "創作者"
+
+# AI Translated
+# Needs human review: Project page field label before the name of whoever remixed the model; check 改編者 reads right for a remix credit.
+msgid "Remixed by"
+msgstr "改編者"
+
+# AI Translated
+msgid "Shared by"
+msgstr "分享者"
+
+# AI Translated
+msgid "Model description"
+msgstr "模型描述"
+
+# AI Translated
+msgid "BOM"
+msgstr "材料清單"
+
+# AI Translated
+msgid "Profile name"
+msgstr "設定檔名稱"
+
+# AI Translated
+msgid "Profile Author"
+msgstr "設定檔作者"
+
+# AI Translated
+msgid "Profile description"
+msgstr "設定檔描述"
+
# AI Translated
msgid "Purge Mode Settings"
msgstr "清理模式設定"
@@ -29696,6 +36181,19 @@ msgstr "減少清理廢料並加快列印。可能會造成輕微混色或細小
msgid "Terminal"
msgstr "終端機"
+# AI Translated
+msgid "python ... or uv ..."
+msgstr "python ... 或 uv ..."
+
+# AI Translated
+msgid "Plugin terminal ready."
+msgstr "外掛終端機已就緒。"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Process exited with code: %s"
+msgstr "處理程序已結束,結束代碼:%s"
+
# AI Translated
msgid "A command is already running."
msgstr "已有指令正在執行。"
@@ -29710,7 +36208,7 @@ msgstr "找不到 uv 執行檔。"
# AI Translated
msgid "Only 'python' and 'uv' commands are supported."
-msgstr "僅支援「python」與「uv」指令。"
+msgstr "僅支援 'python' 與 'uv' 指令。"
# AI Translated
msgid "Failed to start process."
@@ -29742,8 +36240,9 @@ msgstr "新的混合線材"
# AI Translated
#, c-format, boost-format
-msgid "The project supports up to %d filaments. Extra filaments will be discarded."
-msgstr "專案最多支援 %d 種線材。多出的線材將被捨棄。"
+msgid "The project supports up to %d filament. Extra filaments will be discarded."
+msgid_plural "The project supports up to %d filaments. Extra filaments will be discarded."
+msgstr[0] "專案最多支援 %d 種線材。多出的線材將被捨棄。"
# AI Translated
msgid "Import Model"
@@ -29779,7 +36278,7 @@ msgstr "僅自動決定最佳顏色數量,並重新計算線材映射"
# AI Translated
msgid "Convert texture to painting using the specified color count and smooth level"
-msgstr "使用指定的顏色數量與平滑等級,將紋理轉換為上色"
+msgstr "使用指定的顏色數量與平滑等級,將紋理轉換為顏色繪製"
# AI Translated
msgid "Reminder: parameters changed, click Apply to take effect"
@@ -29830,8 +36329,8 @@ msgid "Computation failed. Please adjust parameters and retry."
msgstr "計算失敗。請調整參數後重試。"
# AI Translated
-msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
-msgstr "網格包含非流形幾何或開放邊界。您可以直接匯入,或在匯入前使用 Windows 3D 修復服務進行修復。"
+msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it before importing."
+msgstr "網格包含非流形幾何或開放邊界。您可以直接匯入,或在匯入前進行修復。"
# AI Translated
msgid "Mesh repair"
@@ -29845,14 +36344,6 @@ msgstr "不修復直接匯入"
msgid "Repair and import"
msgstr "修復後匯入"
-# AI Translated
-msgid "Please note that the mesh has non-manifold geometry or open boundaries."
-msgstr "請注意,網格包含非流形幾何或開放邊界。"
-
-# AI Translated
-msgid "Mesh issue"
-msgstr "網格問題"
-
# AI Translated
msgid "The selected image is empty."
msgstr "所選影像為空。"
@@ -29861,6 +36352,14 @@ msgstr "所選影像為空。"
msgid "Failed to prepare the texture for use."
msgstr "無法準備紋理以供使用。"
+# AI Translated
+msgid "Could not create the folder for imported textures."
+msgstr "無法建立匯入紋理的資料夾。"
+
+# AI Translated
+msgid "Failed to save the imported texture."
+msgstr "無法儲存匯入的紋理。"
+
# AI Translated
msgid "Only your own imported textures can be removed."
msgstr "只能移除您自行匯入的紋理。"
@@ -29869,25 +36368,17 @@ msgstr "只能移除您自行匯入的紋理。"
msgid "Could not delete the texture file."
msgstr "無法刪除紋理檔案。"
-# AI Translated
-msgid "Could not create the folder for imported textures."
-msgstr "無法建立匯入紋理的資料夾。"
-
# AI Translated
msgid "Could not load the selected image."
msgstr "無法載入所選影像。"
-# AI Translated
-msgid "Failed to save the imported texture."
-msgstr "無法儲存匯入的紋理。"
-
# AI Translated
msgid "Could not read the texture file."
msgstr "無法讀取紋理檔案。"
# AI Translated
msgid "Projection frame - drag over the model, then Apply"
-msgstr "投影框 - 拖曳到模型上,然後按「套用」"
+msgstr "投影框:拖曳到模型上,然後按「套用」"
# AI Translated
msgid "Moving island | release to drop, Esc to cancel"
@@ -29924,8 +36415,9 @@ msgstr "將紋理圖層的映射設為「展開」,即可在此編輯其 UV"
# AI Translated
#, c-format, boost-format
-msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "已選取 %d 個頂點 | 拖曳 = 一起移動,Shift/Ctrl 點選 = 加入/移除"
+msgid "%d vertex selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "已選取 %d 個頂點 | 拖曳 = 一起移動,Shift/Ctrl 點選 = 加入/移除"
# AI Translated
msgid "Vertex mode: drag a vertex to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29933,8 +36425,9 @@ msgstr "頂點模式:拖曳頂點以調整形狀 | Shift/Ctrl 點選 = 多
# AI Translated
#, c-format, boost-format
-msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
-msgstr "已選取 %d 條邊 | 拖曳 = 一起移動,Shift/Ctrl 點選 = 加入/移除"
+msgid "%d edge selected | drag = move together, Shift/Ctrl click = add/remove"
+msgid_plural "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+msgstr[0] "已選取 %d 條邊 | 拖曳 = 一起移動,Shift/Ctrl 點選 = 加入/移除"
# AI Translated
msgid "Edge mode: drag an island edge to reshape | Shift/Ctrl click = multi-select, wheel = zoom, Home = frame"
@@ -29942,8 +36435,9 @@ msgstr "邊模式:拖曳 UV 島的邊以調整形狀 | Shift/Ctrl 點選 =
# AI Translated
#, c-format, boost-format
-msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
-msgstr "已選取 %d 個 UV 島 | 拖曳 = 一起移動,Shift/Ctrl 點選 = 加入/移除,R/S = 旋轉/縮放主要 UV 島"
+msgid "%d island selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgid_plural "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+msgstr[0] "已選取 %d 個 UV 島 | 拖曳 = 一起移動,Shift/Ctrl 點選 = 加入/移除,R/S = 旋轉/縮放主要 UV 島"
# AI Translated
#, c-format, boost-format
@@ -29960,19 +36454,23 @@ msgstr " | 吸附:開啟"
# AI Translated
msgid "Change texture - choose another one from the texture library"
-msgstr "更換紋理 - 從紋理庫中選擇另一個"
+msgstr "更換紋理:從紋理庫中選擇另一個"
+
+# AI Translated
+msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tile size in the layer's settings."
+msgstr "目前圖層的平鋪尺寸:紋理重複一次在模型上涵蓋的範圍。畫布以平鋪為單位,因此一個網格單元即為一次重複。可在圖層設定的「平鋪尺寸」中變更。"
# AI Translated
msgid "Height map - show the layer's texture under the islands"
-msgstr "高度圖 - 在 UV 島下方顯示圖層的紋理"
+msgstr "高度圖:在 UV 島下方顯示圖層的紋理"
# AI Translated
msgid "Checker - a test grid; squares stay square where the unwrap does not stretch"
-msgstr "棋盤格 - 測試網格;在展開未造成拉伸之處,方格會維持正方形"
+msgstr "棋盤格:測試網格;在展開未造成拉伸之處,方格會維持正方形"
# AI Translated
msgid "Distortion - color each island by how much the unwrap stretches it"
-msgstr "變形 - 依展開對每個 UV 島的拉伸程度為其著色"
+msgstr "變形:依展開對每個 UV 島的拉伸程度為其著色"
# AI Translated
msgid "Unwrap"
@@ -29995,56 +36493,64 @@ msgid "Lay the unwrap out as a connected net: pieces that share an edge are unfo
msgstr "將展開結果排列成相連的展開圖:共用邊的區塊會相鄰展開(立方體會變成相連的展開圖,而不是六個分散的正方形)。它們仍是各自獨立的 UV 島,因此之後仍可手動移動任一個。"
# AI Translated
-msgid "Island - move, rotate and scale whole islands"
-msgstr "UV 島 - 移動、旋轉與縮放整個 UV 島"
+msgid "Island - work on whole islands. Click one to select it, then drag to move it, right-drag to rotate it, or press R to rotate and S to scale with the mouse (click or Enter to confirm, Esc to cancel)."
+msgstr "UV 島:以整個 UV 島為單位操作。點選一個 UV 島以選取,然後拖曳可移動、按右鍵拖曳可旋轉,或按 R 旋轉、按 S 以滑鼠縮放(點選或按 Enter 確認,按 Esc 取消)。"
# AI Translated
-msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
-msgstr "頂點 - 拖曳頂點以調整形狀;按 Shift/Ctrl 可多選"
+msgid "Vertex - drag vertices to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "頂點:拖曳頂點以手動調整 UV 島的形狀;按住 Shift 可加入選取,按住 Ctrl 可切換單一頂點是否選取。"
# AI Translated
-msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
-msgstr "邊 - 拖曳邊以調整形狀;按 Shift/Ctrl 可多選"
+msgid "Edge - drag edges to reshape an island by hand; Shift adds to the selection, Ctrl toggles one in or out of it."
+msgstr "邊:拖曳邊以手動調整 UV 島的形狀;按住 Shift 可加入選取,按住 Ctrl 可切換單一邊是否選取。"
# AI Translated
msgid "Mark seams - click edges on the model to cut the unwrap along them. The edge under the cursor is highlighted yellow; click to mark it red, click a red edge again to unmark it. Painting is paused while this is on."
-msgstr "標記縫合線 - 點選模型上的邊,沿著這些邊切開展開結果。游標下方的邊會以黃色醒目提示;點選可將其標記為紅色,再次點選紅色的邊即可取消標記。開啟時會暫停繪製。"
+msgstr "標記縫合線:點選模型上的邊,沿著這些邊切開展開結果。游標下方的邊會以黃色醒目提示;點選可將它標記為紅色,再次點選紅色的邊即可取消標記。開啟時會暫停繪製。"
# AI Translated
msgid "Path - instead of clicking every edge, click a start point and then an end point: the whole shortest path between them is seamed at once. Available while marking seams."
-msgstr "路徑 - 不必逐一點選每條邊,只要點選起點再點選終點:兩點之間的整條最短路徑會一次標記為縫合線。標記縫合線時可用。"
+msgstr "路徑:不必逐一點選每條邊,只要點選起點再點選終點,兩點之間的整條最短路徑就會一次標記為縫合線。標記縫合線時可用。"
# AI Translated
msgid "Clear seams - remove every seam marked on this layer"
-msgstr "清除縫合線 - 移除此圖層上標記的所有縫合線"
+msgstr "清除縫合線:移除此圖層上標記的所有縫合線"
# AI Translated
msgid "Average scale - give every island the same texel density"
-msgstr "平均縮放 - 讓每個 UV 島具有相同的紋素密度"
+msgstr "平均縮放:讓每個 UV 島具有相同的紋素密度"
# AI Translated
msgid "Cut - split the selected island across its long axis"
-msgstr "切割 - 橫向切過長軸,將所選 UV 島一分為二"
+msgstr "切割:橫向切過長軸,將所選 UV 島一分為二"
# AI Translated
msgid "Join - unfold the selected island onto its nearest neighbour along their shared edge"
-msgstr "接合 - 沿共用邊將所選 UV 島展開接到最近的相鄰 UV 島上"
+msgstr "接合:沿共用邊將所選 UV 島展開接到最近的相鄰 UV 島上"
# AI Translated
msgid "Unjoin - send the selected island back to its own packed position"
-msgstr "取消接合 - 將所選 UV 島送回其原本的排列位置"
+msgstr "取消接合:將所選 UV 島送回其原本的排列位置"
# AI Translated
msgid "Clear UV edits - discard all manual vertex/edge moves and return the unwrap to its automatic shape"
-msgstr "清除 UV 編輯 - 捨棄所有手動移動的頂點/邊,並將展開結果恢復為自動產生的形狀"
+msgstr "清除 UV 編輯:捨棄所有手動移動的頂點/邊,並將展開結果恢復為自動產生的形狀"
# AI Translated
msgid "Snap - stick islands together when dragging one against another"
-msgstr "吸附 - 將一個 UV 島拖曳靠近另一個時,使兩者貼合在一起"
+msgstr "吸附:將一個 UV 島拖曳靠近另一個時,使兩者貼合在一起"
# AI Translated
-msgid "Frame all islands (Home)"
-msgstr "置中顯示所有 UV 島 (Home)"
+msgid ""
+"Frame all islands, fitting every one of them in view (Home or F).\n"
+"Elsewhere on the canvas: scroll to zoom around the cursor, and middle-drag - or drag empty space - to pan."
+msgstr ""
+"置中顯示所有 UV 島,讓每一個都納入視圖中(Home 或 F)。\n"
+"在畫布其他位置:捲動滑鼠滾輪可以游標為中心縮放,按中鍵拖曳(或拖曳空白處)可平移。"
+
+# AI Translated
+msgid "What is selected, and the exact figures of the move, rotation or scale while you drag one."
+msgstr "目前選取的內容,以及拖曳時移動、旋轉或縮放的精確數值。"
# AI Translated
msgid "No layer mapped with Unwrap"
@@ -30055,27 +36561,81 @@ msgstr "沒有使用「展開」映射的圖層"
msgid "%.1f mm tile"
msgstr "%.1f mm 平鋪"
+# AI Translated
+msgid "The pane follows the active texture layer, and that layer has to be mapped with Unwrap (LSCM). Add a layer and set its Mapping to Unwrap."
+msgstr "此窗格對應目前的紋理圖層,且該圖層必須以「展開(LSCM)」映射。請新增一個圖層,並將其「映射」設為「展開」。"
+
# AI Translated
msgid "Out of date - the paint, the seams or the seam angle changed since this unwrap was made. Press to unwrap again."
-msgstr "已過期 - 自此次展開後,繪製、縫合線或縫合線角度已變更。按下即可重新展開。"
+msgstr "已過期:自此次展開後,繪製、縫合線或縫合線角度已變更。按下即可重新展開。"
# AI Translated
msgid "Flatten the painted area into UV islands. It is computed only when you press this, not on every edit - so paint, change the seam angle or mark seams first, then press Unwrap."
-msgstr "將繪製區域攤平為 UV 島。只有在按下此按鈕時才會計算,而非每次編輯都計算 - 因此請先繪製、變更縫合線角度或標記縫合線,再按「展開」。"
+msgstr "將繪製區域攤平為 UV 島。只有在按下此按鈕時才會計算,而非每次編輯都計算,因此請先繪製、變更縫合線角度或標記縫合線,再按「展開」。"
+
+# AI Translated
+msgid "Turn Mark seams on first - Path is a quicker way of marking them."
+msgstr "請先開啟「標記縫合線」;「路徑」可更快速地標記縫合線。"
+
+# AI Translated
+msgid "No seams are marked on this layer."
+msgstr "此圖層上未標記任何縫合線。"
+
+# AI Translated
+msgid "No islands have been reshaped by hand, so there is nothing to discard."
+msgstr "沒有任何 UV 島經過手動調整形狀,因此沒有可捨棄的內容。"
# AI Translated
#, c-format, boost-format
-msgid "%d islands, %s faces"
-msgstr "%d 個 UV 島,%s 個面"
+msgid "%d island"
+msgid_plural "%d islands"
+msgstr[0] "%d 個 UV 島"
+
+# AI Translated
+#, c-format, boost-format
+msgid "%s face"
+msgid_plural "%s faces"
+msgstr[0] "%s 個面"
+
+# AI Translated
+msgid "How the painted area came out of the unwrap: the number of separate pieces it was cut into (at the seams and at edges sharper than the seam angle), and how many triangles they hold in total."
+msgstr "繪製區域的展開結果:被切分成的獨立區塊數量(在縫合線處,以及比縫合線角度更銳利的邊處切開),以及這些區塊總共包含的三角形數量。"
+
+# AI Translated
+msgid "Press Unwrap first - there are no islands to work on yet."
+msgstr "請先按「展開」,目前還沒有可操作的 UV 島。"
+
+# AI Translated
+msgid "Click an island on the canvas first, in Island mode."
+msgstr "請先在 UV 島模式下,點選畫布上的一個 UV 島。"
+
+# AI Translated
+# Needs human review: Short badge on a recent project meaning 'published'; check 已發布 fits the badge width.
+#. TRN Short badge on a recent project that was published (a published 3MF). Keep it about three letters long.
+msgid "PUB"
+msgstr "已發布"
+
+# AI Translated
+msgid "Not signed in"
+msgstr "未登入"
+
+# AI Translated
+msgid "Bambu Network plug-in not detected. Click here to install it."
+msgstr "未偵測到 Bambu 網路外掛程式。按一下這裡 即可安裝。"
+
+msgid "Create new project"
+msgstr "建立一個新專案"
+
+msgid "Recently opened"
+msgstr "最近開啟檔案"
+
+msgid "Open Containing Folder"
+msgstr "開啟所在的資料夾"
# AI Translated
msgid "Forward"
msgstr "前進"
-# AI Translated
-msgid "Tools"
-msgstr "工具"
-
# AI Translated
msgid "View Source"
msgstr "檢視原始碼"
@@ -30140,13 +36700,82 @@ msgstr "載入 %s 時發生錯誤"
# AI Translated
#, boost-format
msgid "Load %1% to %2%"
-msgstr "將 %1% 載入至%2%"
+msgstr "將 %1% 載入至 %2%"
# AI Translated
#, c-format, boost-format
msgid "Load %s"
msgstr "載入 %s"
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID, %3% the capability and %4% the plugin already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by capability '%3%' from plugin '%4%'."
+msgstr "無法啟用列印裝置代理程式「%1%」:代理程式 ID「%2%」已由功能「%3%」(來自外掛「%4%」)註冊。"
+
+# AI Translated
+#. TRN %1% is the printer agent name, %2% its ID and %3% the printer agent already using that ID.
+#, boost-format
+msgid "Printer-agent '%1%' could not be enabled: agent ID '%2%' is already registered by '%3%'."
+msgstr "無法啟用列印裝置代理程式「%1%」:代理程式 ID「%2%」已由「%3%」註冊。"
+
+# AI Translated
+msgid "File uploaded"
+msgstr "檔案已上傳"
+
+# AI Translated
+msgid "Uploading G-code..."
+msgstr "正在上傳 G-code..."
+
+# AI Translated
+msgid "Starting print..."
+msgstr "正在開始列印..."
+
+# AI Translated
+msgid "Print started"
+msgstr "列印已開始"
+
+# AI Translated
+msgid "Uploading..."
+msgstr "正在上傳..."
+
+# AI Translated
+msgid "Network library version not specified"
+msgstr "未指定網路程式庫版本"
+
+# AI Translated
+msgid "Network library not found"
+msgstr "找不到網路程式庫"
+
+# AI Translated
+msgid "Failed to load network library"
+msgstr "無法載入網路程式庫"
+
+# AI Translated
+msgid "Network library failed to load"
+msgstr "網路程式庫載入失敗"
+
+# AI Translated
+msgid "An older plug-in series. Features that need newer plug-in support, such as print-failure snapshots in the device error dialog, are unavailable."
+msgstr "較舊的外掛系列。需要較新外掛支援的功能(例如裝置錯誤對話框中的列印失敗快照)無法使用。"
+
+# AI Translated
+msgid "unknown name"
+msgstr "未知的名稱"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" requests filesystem read access to:\n"
+"%s"
+msgstr ""
+"外掛「%s」要求對下列位置的檔案系統進行讀取存取:\n"
+"%s"
+
+# AI Translated
+msgid "Plugin permissions"
+msgstr "外掛權限"
+
# AI Translated
#, c-format, boost-format
msgid ""
@@ -30161,36 +36790,48 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read the following file(s):\n"
+"Plugin \"%s\" is requesting to read the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read the following files:\n"
+"%s"
+msgstr[0] ""
"外掛「%s」正在請求讀取下列檔案:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to read/write the following file(s):\n"
+"Plugin \"%s\" is requesting to read/write the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to read/write the following files:\n"
+"%s"
+msgstr[0] ""
"外掛「%s」正在請求讀寫下列檔案:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to create the following file(s):\n"
+"Plugin \"%s\" is requesting to create the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to create the following files:\n"
+"%s"
+msgstr[0] ""
"外掛「%s」正在請求建立下列檔案:\n"
"%s"
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to delete the following file(s):\n"
+"Plugin \"%s\" is requesting to delete the following file:\n"
"%s"
-msgstr ""
+msgid_plural ""
+"Plugin \"%s\" is requesting to delete the following files:\n"
+"%s"
+msgstr[0] ""
"外掛「%s」正在請求刪除下列檔案:\n"
"%s"
@@ -30215,10 +36856,27 @@ msgstr ""
# AI Translated
#, c-format, boost-format
msgid ""
-"Plugin \"%s\" is requesting to run the following command(s):\n"
+"Plugin \"%s\" is requesting to run the following command:\n"
+"%s"
+msgid_plural ""
+"Plugin \"%s\" is requesting to run the following commands:\n"
+"%s"
+msgstr[0] ""
+"外掛「%s」正在請求執行下列命令:\n"
+"%s"
+
+# AI Translated
+#, c-format, boost-format
+msgid "Plugin \"%s\" is requesting permission to create a thread."
+msgstr "外掛「%s」正在請求建立執行緒的權限。"
+
+# AI Translated
+#, c-format, boost-format
+msgid ""
+"Plugin \"%s\" is requesting to replace the running application with:\n"
"%s"
msgstr ""
-"外掛「%s」正在請求執行下列命令:\n"
+"外掛「%s」正在請求以下列內容取代執行中的應用程式:\n"
"%s"
# AI Translated
@@ -30230,6 +36888,46 @@ msgstr "外掛「%s」正在請求 Python 稽核事件「%s」的權限。"
msgid "Plugin permission request"
msgstr "外掛權限請求"
+# AI Translated
+msgid "The preset stores invalid plugin capability configuration JSON."
+msgstr "此預設儲存了無效的外掛功能設定 JSON。"
+
+# AI Translated
+msgid "The preset's plugin capability configuration is not an array and cannot be edited."
+msgstr "此預設的外掛功能設定不是陣列,無法編輯。"
+
+# AI Translated
+msgid "Printer connection"
+msgstr "列印裝置連線"
+
+# AI Translated
+msgid "Pages"
+msgstr "頁面"
+
+# AI Translated
+msgid "Analysis"
+msgstr "分析"
+
+# AI Translated
+msgid "Importer"
+msgstr "匯入器"
+
+# AI Translated
+msgid "Exporter"
+msgstr "匯出器"
+
+# AI Translated
+msgid "Visualization"
+msgstr "視覺化"
+
+# AI Translated
+msgid "Script"
+msgstr "指令碼"
+
+# AI Translated
+msgid "Slicing Pipeline"
+msgstr "切片管線"
+
# AI Translated
msgid "The plugin's configuration UI was empty. Showing the default editor."
msgstr "外掛的設定介面為空。將顯示預設編輯器。"
@@ -30252,8 +36950,344 @@ msgid "The configuration could not be written to disk. Nothing was changed."
msgstr "無法將設定寫入磁碟。未做任何變更。"
# AI Translated
-msgid "Plugin installation failed"
-msgstr "外掛安裝失敗"
+#, boost-format
+msgid "Plugin installation failed: %1%"
+msgstr "無法安裝外掛:%1%"
+
+# AI Translated
+#. TRN %1% is the plugin's cloud ID.
+#, boost-format
+msgid "%1%: installed plugin was not found in the catalog."
+msgstr "%1%:在目錄中找不到已安裝的外掛。"
+
+# AI Translated
+msgid "Cloud plugin key is missing UUID."
+msgstr "雲端外掛金鑰缺少 UUID。"
+
+# AI Translated
+msgid "Failed to subscribe to cloud plugin, see logs for more info."
+msgstr "無法訂閱雲端外掛,詳情請參閱記錄檔。"
+
+# AI Translated
+msgid "Only cloud plugins can be unsubscribed."
+msgstr "只有雲端外掛可以取消訂閱。"
+
+# AI Translated
+msgid "Failed to unsubscribe plugin, see logs for more info."
+msgstr "無法取消訂閱外掛,詳情請參閱記錄檔。"
+
+# AI Translated
+#. TRN %1% is the numeric result code returned by the cloud service.
+#, boost-format
+msgid "Failed to fetch the plugin download URL (result %1%)."
+msgstr "無法取得外掛下載 URL(結果 %1%)。"
+
+# AI Translated
+msgid "You are not authorized to download this cloud plugin."
+msgstr "您沒有下載此雲端外掛的授權。"
+
+# AI Translated
+msgid "No plugin package is available for this operating system."
+msgstr "沒有適用於此作業系統的外掛套件。"
+
+# AI Translated
+msgid "The selected plugin version was not found."
+msgstr "找不到所選的外掛版本。"
+
+# AI Translated
+#, boost-format
+msgid "Plugin version %1% was not found."
+msgstr "找不到外掛版本 %1%。"
+
+# AI Translated
+msgid "Cloud plugin was not found."
+msgstr "找不到雲端外掛。"
+
+# AI Translated
+#. TRN %1% is the reason reported by the cloud service, in English.
+#, boost-format
+msgid "Cloud plugin download was not found: %1%."
+msgstr "找不到雲端外掛的下載項目:%1%。"
+
+# AI Translated
+msgid "Cloud plugin download was not found."
+msgstr "找不到雲端外掛的下載項目。"
+
+# AI Translated
+msgid "No download URL is available for this plugin. Please check the logs for errors."
+msgstr "此外掛沒有可用的下載 URL,請檢查記錄檔中的錯誤。"
+
+# AI Translated
+#, boost-format
+msgid "Failed to download plugin: %1%"
+msgstr "無法下載外掛:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin download failed with HTTP status %1%."
+msgstr "無法下載外掛,HTTP 狀態碼 %1%。"
+
+# AI Translated
+msgid "Plugin download returned empty data."
+msgstr "外掛下載傳回了空資料。"
+
+# AI Translated
+msgid "Failed to create temporary file for plugin download."
+msgstr "無法為外掛下載建立暫存檔。"
+
+# AI Translated
+msgid "Failed to write plugin data to temporary file."
+msgstr "無法將外掛資料寫入暫存檔。"
+
+# AI Translated
+#, boost-format
+msgid "Failed to resolve plugin folder: %1%"
+msgstr "無法解析外掛資料夾:%1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to delete plugin folder %1%: %2%"
+msgstr "無法刪除外掛資料夾 %1%:%2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin directory does not exist: %1%"
+msgstr "外掛目錄不存在:%1%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .py files: %1% and %2%"
+msgstr "外掛目錄包含多個 .py 檔案:%1% 和 %2%"
+
+# AI Translated
+#. TRN %1% and %2% are file names.
+#, boost-format
+msgid "Plugin directory contains multiple .whl files: %1% and %2%"
+msgstr "外掛目錄包含多個 .whl 檔案:%1% 和 %2%"
+
+# AI Translated
+msgid "Plugin directory contains both .py and .whl entry files"
+msgstr "外掛目錄同時包含 .py 和 .whl 進入點檔案"
+
+# AI Translated
+msgid "Plugin directory does not contain a .py or .whl entry file"
+msgstr "外掛目錄不包含 .py 或 .whl 進入點檔案"
+
+# AI Translated
+#, boost-format
+msgid "Slicing pipeline plugin '%1%' error: %2%"
+msgstr "切片管線外掛「%1%」發生錯誤:%2%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package must be a .py or .whl file, got: %1%"
+msgstr "外掛套件必須是 .py 或 .whl 檔案,實際為:%1%"
+
+# AI Translated
+#. TRN %1% is the dependency file, %2% the error detail.
+#, boost-format
+msgid "Failed to extract plugin .whl dependency %1%: %2%"
+msgstr "無法解壓縮外掛 .whl 相依項目 %1%:%2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to add .whl dependency to sys.path: %1%"
+msgstr "無法將 .whl 相依項目加入 sys.path:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Python interpreter not initialized: %1%"
+msgstr "Python 直譯器尚未初始化:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest is invalid: %1%"
+msgstr "外掛資訊清單無效:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to install plugin dependencies: %1%"
+msgstr "無法安裝外掛相依項目:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to load plugin module: %1%"
+msgstr "無法載入外掛模組:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin registration failed: %1%"
+msgstr "無法註冊外掛:%1%"
+
+# AI Translated
+msgid "Plugin module did not register any capabilities"
+msgstr "外掛模組未註冊任何功能"
+
+# AI Translated
+#. TRN %1% is the capability name, %2% the capability type (e.g. Script).
+#, boost-format
+msgid "Plugin declares duplicate capability '%1%' for type %2%"
+msgstr "外掛為類型 %2% 宣告了重複的功能「%1%」"
+
+# AI Translated
+#, boost-format
+msgid "Plugin capability materialization failed: %1%"
+msgstr "外掛功能實體化失敗:%1%"
+
+# AI Translated
+msgid "Plugin capability materialization failed"
+msgstr "外掛功能實體化失敗"
+
+# AI Translated
+#. TRN on_load is the name of the plugin's startup function; keep it untranslated.
+#, boost-format
+msgid "Plugin on_load failed: %1%"
+msgstr "外掛 on_load 失敗:%1%"
+
+# AI Translated
+msgid "Plugin on_load failed"
+msgstr "外掛 on_load 失敗"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is not a file: %1%"
+msgstr "外掛套件不是檔案:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Cloud plugin UUID is not a valid identifier: %1%"
+msgstr "雲端外掛 UUID 不是有效的識別碼:%1%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to create plugin directory %1%: %2%"
+msgstr "無法建立外掛目錄 %1%:%2%"
+
+# AI Translated
+#. TRN %1% is a folder path, %2% the system error message.
+#, boost-format
+msgid "Failed to back up existing plugin %1%: %2%"
+msgstr "無法備份現有外掛 %1%:%2%"
+
+# AI Translated
+#. TRN %1% is a file path, %2% the system error message.
+#, boost-format
+msgid "Failed to copy plugin file to %1%: %2%"
+msgstr "無法將外掛檔案複製到 %1%:%2%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to write plugin install state: %1%"
+msgstr "無法寫入外掛安裝狀態:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin package is already loaded: %1%"
+msgstr "外掛套件已載入:%1%"
+
+# AI Translated
+#. TRN %1% is the capability type (e.g. Script), %2% the capability name.
+#, boost-format
+msgid "Capability collision for type %1% and name '%2%'"
+msgstr "類型 %1% 與名稱「%2%」的功能發生衝突"
+
+# AI Translated
+#, boost-format
+msgid "Duplicate plugin key discovered: %1%"
+msgstr "發現重複的外掛金鑰:%1%"
+
+# AI Translated
+msgid "Plugin load is still in progress"
+msgstr "外掛仍在載入中"
+
+# AI Translated
+#, boost-format
+msgid "Plugin is invalid: %1%"
+msgstr "外掛無效:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Plugin not found: %1%"
+msgstr "找不到外掛:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Unexpected plugin load failure: %1%"
+msgstr "外掛載入發生未預期的失敗:%1%"
+
+# AI Translated
+msgid "Unexpected plugin load failure"
+msgstr "外掛載入發生未預期的失敗"
+
+# AI Translated
+#, boost-format
+msgid "Plugin manifest not found: %1%"
+msgstr "找不到外掛資訊清單:%1%"
+
+# AI Translated
+msgid "Failed to fetch plugins from the cloud. See logs for details."
+msgstr "無法從雲端擷取外掛,詳情請參閱記錄檔。"
+
+# AI Translated
+msgid "Sign in to OrcaCloud to install this plugin."
+msgstr "請登入 OrcaCloud 以安裝此外掛。"
+
+# AI Translated
+msgid "Subscribed cloud plugin was not returned by OrcaCloud."
+msgstr "OrcaCloud 沒有傳回已訂閱的雲端外掛。"
+
+# AI Translated
+msgid "Failed to download cloud plugin."
+msgstr "無法下載雲端外掛。"
+
+# AI Translated
+msgid "Failed to install cloud plugin."
+msgstr "無法安裝雲端外掛。"
+
+# AI Translated
+msgid "Only cloud plugins can be updated."
+msgstr "只有雲端外掛可以更新。"
+
+# AI Translated
+msgid "No update is available for this plugin."
+msgstr "此外掛沒有可用的更新。"
+
+# AI Translated
+msgid "Refusing to delete a plugin outside the known plugin directories."
+msgstr "拒絕刪除位於已知外掛目錄之外的外掛。"
+
+# AI Translated
+msgid "Refusing to update a plugin outside the known plugin directories."
+msgstr "拒絕更新位於已知外掛目錄之外的外掛。"
+
+# AI Translated
+#, boost-format
+msgid "Cannot keep plugin local: local plugin key already exists: %1%"
+msgstr "無法將外掛保留為本機外掛:本機外掛金鑰已存在:%1%"
+
+# AI Translated
+#, boost-format
+msgid "Failed to update plugin install state: %1%"
+msgstr "無法更新外掛安裝狀態:%1%"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins."
+msgstr "無法取消訂閱您自己的外掛。"
+
+# AI Translated
+msgid "Only cloud plugins can be deleted and unsubscribed."
+msgstr "只有雲端外掛可以刪除與取消訂閱。"
+
+# AI Translated
+msgid "Cannot unsubscribe your own plugins. Use Delete to remove the local files."
+msgstr "無法取消訂閱您自己的外掛。請使用「刪除」來移除本機檔案。"
+
+# AI Translated
+msgid "Plugin filesystem read permission request denied"
+msgstr "外掛的檔案系統讀取權限請求已被拒絕"
# AI Translated
msgid "Profile has fewer than 2 points"
@@ -30287,6 +37321,10 @@ msgstr "雙側擠出融合失敗"
msgid "imported regions produced no extrudable geometry"
msgstr "匯入的區域未產生可擠出的幾何"
+# AI Translated
+msgid "the profile crosses the revolve axis — it must lie on one side of it"
+msgstr "輪廓跨越了迴轉軸,必須位於軸的同一側"
+
# AI Translated
msgid "Failed to revolve"
msgstr "迴轉失敗"
@@ -30323,6 +37361,10 @@ msgstr "建立挖槽面失敗"
msgid "Pocket cut failed"
msgstr "挖槽切除失敗"
+# AI Translated
+msgid "the profile crosses or folds back on itself, so it does not bound one region"
+msgstr "輪廓自我交叉或反折,因此無法圍成單一區域"
+
# AI Translated
msgid "sketch has no closed loop"
msgstr "草圖沒有封閉迴圈"
@@ -30355,10 +37397,26 @@ msgstr "mesh_to_brep:網格沒有三角形"
msgid "mesh_to_brep: every triangle was rejected as degenerate (try a smaller tolerance)"
msgstr "mesh_to_brep:所有三角形皆因退化而被捨棄(請嘗試較小的公差)"
+# AI Translated
+msgid "the fillet radius must be greater than 0"
+msgstr "圓角半徑必須大於 0"
+
+# AI Translated
+msgid "no edges to fillet in that group"
+msgstr "該群組中沒有可套用圓角的邊"
+
# AI Translated
msgid "fillet radius too large for this geometry"
msgstr "圓角半徑對此幾何而言過大"
+# AI Translated
+msgid "the chamfer distance must be greater than 0"
+msgstr "倒角距離必須大於 0"
+
+# AI Translated
+msgid "no edges to chamfer in that group"
+msgstr "該群組中沒有可倒角的邊"
+
# AI Translated
msgid "chamfer distance too large for this geometry"
msgstr "倒角距離對此幾何而言過大"
@@ -30371,6 +37429,153 @@ msgstr "apply_fillet:OCCT 圓角失敗"
msgid "apply_chamfer: OCCT chamfer failed"
msgstr "apply_chamfer:OCCT 倒角失敗"
+# AI Translated
+msgid "empty component list"
+msgstr "成分清單為空"
+
+# AI Translated
+msgid "empty component index"
+msgstr "成分索引為空"
+
+# AI Translated
+#, boost-format
+msgid "component index must be >= 1 (got %1%)"
+msgstr "成分索引必須 >= 1(實際為 %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid component index \"%1%\""
+msgstr "無效的成分索引「%1%」"
+
+# AI Translated
+#, boost-format
+msgid "at least 2 components required (got %1%)"
+msgstr "至少需要 2 個成分(實際為 %1%)"
+
+# AI Translated
+#, boost-format
+msgid "duplicate component index %1%"
+msgstr "重複的成分索引 %1%"
+
+# AI Translated
+msgid "empty ratio value"
+msgstr "比例值為空"
+
+# AI Translated
+#, boost-format
+msgid "ratio must be positive (got %1%)"
+msgstr "比例必須為正數(實際為 %1%)"
+
+# AI Translated
+#, boost-format
+msgid "invalid ratio \"%1%\""
+msgstr "無效的比例「%1%」"
+
+# AI Translated
+#. TRN %1% is the expected number of ratios, %2% the number found.
+#, boost-format
+msgid "the ratio count must match the component count: expected %1%, got %2%"
+msgstr "比例數量必須與成分數量一致:預期 %1%,實際為 %2%"
+
+# AI Translated
+msgid "expected two comma-separated floats, e.g. \"0.10,0.90\""
+msgstr "預期為以逗號分隔的兩個浮點數,例如 \"0.10,0.90\""
+
+# AI Translated
+msgid "start and end ratios must be in (0, 1)"
+msgstr "起始與結束比例必須介於 (0, 1) 之間"
+
+# AI Translated
+#, boost-format
+msgid "array size %1% does not match filament slot count %2%"
+msgstr "陣列大小 %1% 與線材槽位數量 %2% 不符"
+
+# AI Translated
+msgid "must be set when mixed filament parameters are specified"
+msgstr "指定混合線材參數時必須設定"
+
+# AI Translated
+#. TRN Mixed filament validation error. %1% is the filament slot number, %2% the reason.
+#, boost-format
+msgid "slot %1%: %2%"
+msgstr "槽位 %1%:%2%"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% out of range (max physical filament index is %3%)"
+msgstr "槽位 %1%:成分 %2% 超出範圍(實體線材索引上限為 %3%)"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: cannot reference itself as a component"
+msgstr "槽位 %1%:不能將自身作為成分參照"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: component %2% references a mixed filament slot"
+msgstr "槽位 %1%:成分 %2% 參照了混合線材槽位"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: gradient requires exactly 2 components"
+msgstr "槽位 %1%:漸層必須恰好有 2 個成分"
+
+# AI Translated
+#, boost-format
+msgid "slot %1%: invalid curve (need at least 2 valid control points)"
+msgstr "槽位 %1%:無效的曲線(至少需要 2 個有效的控制點)"
+
+# AI Translated
+#, boost-format
+msgid "Failed loading configuration file \"%1%\": %2%"
+msgstr "載入設定檔「%1%」失敗:%2%"
+
+# AI Translated
+#. TRN %1% is the application name.
+#, boost-format
+msgid "Not a gcode file generated by %1%."
+msgstr "不是由 %1% 產生的 G-code 檔案。"
+
+# AI Translated
+#. TRN %1% is a tag in the G-code file that must not be translated.
+#, boost-format
+msgid "Config tag \"%1%\" not found"
+msgstr "找不到設定標籤「%1%」"
+
+# AI Translated
+#, boost-format
+msgid "Suspiciously low number of configuration values extracted from %1%: %2%"
+msgstr "從 %1% 擷取到的設定值數量異常偏少:%2%"
+
+# AI Translated
+msgid ""
+"Load step file failed.\n"
+"Cannot open file for reading.\n"
+msgstr ""
+"載入 STEP 檔案失敗。\n"
+"無法開啟檔案進行讀取。\n"
+
+# AI Translated
+msgid "import svg failed: could not open svg."
+msgstr "匯入 SVG 失敗:無法開啟 SVG。"
+
+# AI Translated
+msgid "import svg failed: could not parse imported svg data."
+msgstr "匯入 SVG 失敗:無法解析匯入的 SVG 資料。"
+
+# AI Translated
+msgid "Custom G-code reports negative z_retracted."
+msgstr "自訂 G-code 回報了負的 z_retracted。"
+
+# AI Translated
+msgid "Custom G-code reports negative z_restart_extra."
+msgstr "自訂 G-code 回報了負的 z_restart_extra。"
+
+# AI Translated
+#, boost-format
+msgid "Copying directory %1% to %2% failed: %3%"
+msgstr "從 %1% 複製目錄到 %2% 失敗:%3%"
+
# AI Translated
msgid "Authentication complete"
msgstr "驗證完成"
@@ -30516,47 +37721,50 @@ msgstr "預估時間:"
msgid "Remaining time:"
msgstr "剩餘時間:"
+# AI Translated
#: resources/data/hints.ini: [hint:Precise wall]
msgid ""
"Precise wall\n"
"Did you know that turning on precise wall can improve precision and layer consistency?"
msgstr ""
-"精確牆壁\n"
-"您知道啟用精確牆壁可以提高精度和層次一致性嗎?"
+"精準外牆尺寸\n"
+"您知道嗎?啟用「精準外牆尺寸」可以提高精度和層一致性。"
+# AI Translated
#: resources/data/hints.ini: [hint:Sandwich mode]
msgid ""
"Sandwich mode\n"
"Did you know that you can use sandwich mode (inner-outer-inner) to improve precision and layer consistency if your model doesn't have very steep overhangs?"
msgstr ""
"三明治模式\n"
-"您知道嗎?如果模型中沒有太陡峭的懸空區域,可以使用三明治模式\n"
-"(內層-外層-內層)來提升精度並增強層的一致性。"
+"您知道嗎?如果模型沒有非常陡峭的懸空,可以使用三明治模式(內-外-內)來提高精度和層一致性。"
+# AI Translated
#: resources/data/hints.ini: [hint:Chamber temperature]
msgid ""
"Chamber temperature\n"
"Did you know that OrcaSlicer supports chamber temperature?"
msgstr ""
-"機箱溫度\n"
-"您知道 OrcaSlicer 支援機箱內溫度控制嗎?"
+"腔體溫度\n"
+"您知道 OrcaSlicer 支援腔體溫度控制嗎?"
+# AI Translated
#: resources/data/hints.ini: [hint:Calibration]
msgid ""
"Calibration\n"
"Did you know that calibrating your printer can do wonders? Check out our beloved calibration solution in OrcaSlicer."
msgstr ""
"校正\n"
-"您知道校正列印裝置可以帶來奇效嗎?快來看看我們在 OrcaSlicer 中的\n"
-"校正解決方案。"
+"您知道校正列印裝置可以帶來奇效嗎?快來看看 OrcaSlicer 中我們廣受喜愛的校正解決方案。"
+# AI Translated
#: resources/data/hints.ini: [hint:Auxiliary fan]
msgid ""
"Auxiliary fan\n"
"Did you know that OrcaSlicer supports Auxiliary part cooling fan?"
msgstr ""
"輔助風扇\n"
-"您知道 OrcaSlicer 支援輔助零件冷卻風扇嗎?"
+"您知道 OrcaSlicer 支援輔助物件冷卻風扇嗎?"
#: resources/data/hints.ini: [hint:Air filtration]
msgid ""
@@ -30582,13 +37790,14 @@ msgstr ""
"切換工作區\n"
"您可以按 Tab 鍵在 準備 和 預覽 工作區之間切換。"
+# AI Translated
#: resources/data/hints.ini: [hint:How to use keyboard shortcuts]
msgid ""
"How to use keyboard shortcuts\n"
"Did you know that Orca Slicer offers a wide range of keyboard shortcuts and 3D scene operations?"
msgstr ""
"如何使用鍵盤快速鍵\n"
-"您知道嗎? Orca Slicer 提供了廣泛的鍵盤快速鍵和 3D 場景操作。"
+"您知道嗎?Orca Slicer 提供了廣泛的鍵盤快速鍵和 3D 場景操作。"
#: resources/data/hints.ini: [hint:Reverse on even]
msgid ""
@@ -30606,22 +37815,23 @@ msgstr ""
"切割工具\n"
"您知道嗎?您可以使用切割工具以任何角度和位置切割模型。"
+# AI Translated
#: resources/data/hints.ini: [hint:Fix Model]
msgid ""
"Fix Model\n"
"Did you know that you can fix a corrupted 3D model to avoid a lot of slicing problems on the Windows system?"
msgstr ""
"修復模型\n"
-"您知道嗎?在 Windows 系統上修復損壞的 3D 模型,\n"
-"可以有效避免許多切片時的問題。"
+"您知道嗎?在 Windows 系統上修復損壞的 3D 模型,可以有效避免許多切片時的問題。"
+# AI Translated
#: resources/data/hints.ini: [hint:Timelapse]
msgid ""
"Timelapse\n"
"Did you know that you can generate a timelapse video during each print?"
msgstr ""
-"縮時錄影\n"
-"您知道嗎?您可以每次列印時產生一段縮時錄影。"
+"縮時攝影\n"
+"您知道嗎?您可以在每次列印時產生縮時攝影影片。"
#: resources/data/hints.ini: [hint:Auto-Arrange]
msgid ""
@@ -30639,23 +37849,23 @@ msgstr ""
"自動定向\n"
"您知道嗎?您只需點選滑鼠,即可將物件旋轉到適合的列印方向。"
+# AI Translated
#: resources/data/hints.ini: [hint:Lay on Face]
msgid ""
"Lay on Face\n"
"Did you know that you can quickly orient a model so that one of its faces sits on the print bed? Select the \"Place on face\" function or press the F key."
msgstr ""
-"指定列印物件底部\n"
-"您知道嗎?您可以快速指定模型的底面,使其位於列印板上。\n"
-"選擇「選擇底面」或按 F 鍵。"
+"選擇底面\n"
+"您知道嗎?您可以快速調整模型方向,讓它的某個面貼合列印板。請使用「選擇底面」功能或按 F 鍵。"
+# AI Translated
#: resources/data/hints.ini: [hint:Object List]
msgid ""
"Object List\n"
"Did you know that you can view all objects/parts in a list and change settings for each object/part?"
msgstr ""
"物件清單\n"
-"您知道嗎?您可以在清單中檢視所有物件/部件,並為每個物件/部件\n"
-"調整設定。"
+"您知道嗎?您可以在清單中檢視所有物件/零件,並為每個物件/零件調整設定。"
#: resources/data/hints.ini: [hint:Search Functionality]
msgid ""
@@ -30665,79 +37875,79 @@ msgstr ""
"搜尋功能\n"
"您知道嗎?使用「搜尋工具」可以快速定位特定的 Orca Slicer 設定。"
+# AI Translated
#: resources/data/hints.ini: [hint:Simplify Model]
msgid ""
"Simplify Model\n"
"Did you know that you can reduce the number of triangles in a mesh using the Simplify mesh feature? Right-click the model and select Simplify model."
msgstr ""
"簡化模型\n"
-"您知道嗎?透過「簡化網格」功能,您可以減少模型中的三角形數量。\n"
-"只需右鍵點選模型,然後選擇「簡化模型」。"
+"您知道嗎?透過「簡化網格」功能,您可以減少網格中的三角形數量。只需右鍵點選模型,然後選擇「簡化模型」。"
+# AI Translated
#: resources/data/hints.ini: [hint:Slicing Parameter Table]
msgid ""
"Slicing Parameter Table\n"
"Did you know that you can view all objects/parts on a table and change settings for each object/part?"
msgstr ""
"參數表格\n"
-"您知道嗎?您可以看參數表格上的所有物件/零件,並更改每個物件/零\n"
-"件的設定。"
+"您知道嗎?您可以在參數表格中檢視所有物件/零件,並更改每個物件/零件的設定。"
+# AI Translated
#: resources/data/hints.ini: [hint:Split to Objects/Parts]
msgid ""
"Split to Objects/Parts\n"
"Did you know that you can split a big object into small ones for easy colorizing or printing?"
msgstr ""
-"分割成物件/零件\n"
-"您知道嗎?您可以把一個大物件分割成多個小物件/零件以便著色或\n"
-"列印。"
+"拆分為物件/零件\n"
+"您知道嗎?您可以把一個大物件拆分成多個小物件/零件,以便著色或列印。"
+# AI Translated
#: resources/data/hints.ini: [hint:Subtract a Part]
msgid ""
"Subtract a Part\n"
"Did you know that you can subtract one mesh from another using the Negative part modifier? That way you can, for example, create easily resizable holes directly in Orca Slicer."
msgstr ""
"減去零件\n"
-"您知道嗎?您可以使用「負零件修飾器」將一個網格從另一個網格中減\n"
-"去。這樣,就能直接在 Orca Slicer 裡輕鬆建立尺寸可調的孔洞。"
+"您知道嗎?您可以使用「負零件」修改器將一個網格從另一個網格中減去。這樣,就能直接在 Orca Slicer 裡輕鬆建立尺寸可調的孔洞。"
+# AI Translated
#: resources/data/hints.ini: [hint:STEP]
msgid ""
"STEP\n"
"Did you know that you can improve your print quality by slicing a STEP file instead of an STL?\n"
"Orca Slicer supports slicing STEP files, providing smoother results than a lower resolution STL. Give it a try!"
msgstr ""
-"STEP檔案\n"
-"您知道嗎?透過切片 STEP 檔案而不是 STL 檔案可以提高列印品質。\n"
-"Orca Slicer 支援切片 STEP 檔案,提供比低解析度 STL 更平滑的結果。\n"
-"試試看!"
+"STEP\n"
+"您知道嗎?切片 STEP 檔案而非 STL 檔案可以提高列印品質。\n"
+"Orca Slicer 支援切片 STEP 檔案,能提供比低解析度 STL 更平滑的結果。試試看!"
+# AI Translated
#: resources/data/hints.ini: [hint:Z seam location]
msgid ""
"Z seam location\n"
"Did you know that you can customize the location of the Z seam, and even paint it on your print, to have it in a less visible location? This improves the overall look of your model. Check it out!"
msgstr ""
-"Z接縫位置\n"
-"您知道嗎?您可以自訂Z接縫的位置,甚至可以將其繪製在列印上,使\n"
-"其位於不太可見的位置。這樣可以改善模型的整體外觀。試試看!"
+"Z 接縫位置\n"
+"您知道嗎?您可以自訂 Z 接縫的位置,甚至直接在模型上繪製接縫,讓它位於較不顯眼的位置。這樣可以改善模型的整體外觀。試試看!"
+# AI Translated
#: resources/data/hints.ini: [hint:Fine-tuning for flow rate]
msgid ""
"Fine-tuning for flow rate\n"
"Did you know that flow rate can be fine-tuned for even better-looking prints? Depending on the material, you can improve the overall finish of the printed model by doing some fine-tuning."
msgstr ""
"流量微調\n"
-"您知道嗎?您可以微調流量,以獲得更好看的列印效果。根據線材的不\n"
-"同,可以透過進行一些微調來提高列印模型的整體光潔度。"
+"您知道嗎?您可以微調流量,以獲得更好看的列印效果。根據線材的不同,可以透過一些微調來提高列印模型的整體光潔度。"
+# AI Translated
#: resources/data/hints.ini: [hint:Split your prints into plates]
msgid ""
"Split your prints into plates\n"
"Did you know that you can split a model that has a lot of parts into individual plates ready to print? This will simplify the process of keeping track of all the parts."
msgstr ""
-"分類列印\n"
-"您知道嗎?您可以把一個有很多零件的模型安排到多個獨立的列印板,\n"
-"然後列印出來,這將簡化對所有零件的管理。"
+"將列印拆分到多個列印板\n"
+"您知道嗎?您可以把一個有很多零件的模型拆分到多個可直接列印的獨立列印板,這將簡化對所有零件的管理。"
# AI Translated
#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer
@@ -30749,14 +37959,14 @@ msgstr ""
"使用適應性層高加速列印\n"
"您知道嗎?使用「適應性層高」選項可以更快地列印模型。試試看!"
+# AI Translated
#: resources/data/hints.ini: [hint:Support painting]
msgid ""
"Support painting\n"
"Did you know that you can paint the location of your supports? This feature makes it easy to place the support material only on the sections of the model that actually need it."
msgstr ""
-"自訂支撐\n"
-"您知道嗎?您可以手動繪製增加/隱藏支撐的位置,此功能使僅將支撐\n"
-"材料放置在實際需要的模型截面上變得容易。"
+"支撐繪製\n"
+"您知道嗎?您可以繪製支撐的位置。此功能讓您輕鬆地只在模型真正需要的部位放置支撐材料。"
# AI Translated
#: resources/data/hints.ini: [hint:Different types of supports]
@@ -30776,14 +37986,14 @@ msgstr ""
"列印絲綢線材\n"
"您知道嗎?絲綢線材需要特別考慮才能成功列印。為了獲得最佳效果,通常建議使用較高的溫度和較低的速度。"
+# AI Translated
#: resources/data/hints.ini: [hint:Brim for better adhesion]
msgid ""
"Brim for better adhesion\n"
"Did you know that when printed models have a small contact interface with the printing surface, it's recommended to use a brim?"
msgstr ""
-"使用 Brim\n"
-"您知道嗎?當模型與熱床表面的接觸面積較小時,建議使用 Brim 以提\n"
-"高列印成功率。"
+"使用 Brim 提升附著力\n"
+"您知道嗎?當模型與列印表面的接觸面積較小時,建議使用 Brim。"
#: resources/data/hints.ini: [hint:Set parameters for multiple objects]
msgid ""
@@ -30793,13 +38003,14 @@ msgstr ""
"為多個物件設定參數\n"
"您知道嗎?您可以同時為所有選取的物件設定切片參數。"
+# AI Translated
#: resources/data/hints.ini: [hint:Stack objects]
msgid ""
"Stack objects\n"
"Did you know that you can stack objects as a whole one?"
msgstr ""
-"組合物體\n"
-"您知道嗎?您可以把多個物件組合為一個整體。"
+"堆疊物件\n"
+"您知道嗎?您可以將多個物件堆疊成一個整體。"
# AI Translated
#: resources/data/hints.ini: [hint:Flush into support/objects/infill]
@@ -30807,18 +38018,19 @@ msgid ""
"Flush into support/objects/infill\n"
"Did you know that you can reduce wasted filament by flushing it into support/objects/infill during filament changes?"
msgstr ""
-"廢料運用到支撐/物件/填充中\n"
-"您知道嗎?您可以在換料時將廢料運用到支撐/物件/填充,以節省浪費的線材。"
+"清理至支撐/物件/填充\n"
+"您知道嗎?您可以在換料時將線材清理至支撐/物件/填充中,以減少線材浪費。"
+# AI Translated
#: resources/data/hints.ini: [hint:Improve strength]
msgid ""
"Improve strength\n"
"Did you know that you can use more wall loops and higher sparse infill density to improve the strength of the model?"
msgstr ""
"提高強度\n"
-"您知道嗎?您可以使用更多的牆層數和更高的疏散填充密度來提高模型\n"
-"強度。"
+"您知道嗎?您可以使用更多的牆層數和更高的稀疏填充密度來提高模型強度。"
+# AI Translated
#: resources/data/hints.ini: [hint:When do you need to print with the printer
#: door opened]
msgid ""
@@ -30826,7 +38038,7 @@ msgid ""
"Did you know that opening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature? There is more info about this in the Wiki."
msgstr ""
"什麼時候需要打開列印裝置門列印?\n"
-"您知道嗎?在列印低溫線材且機箱內溫度較高的情況下,打開列印裝置門可以降低擠出機或熱端堵塞的機率。更多資訊請參閱 Wiki。"
+"您知道嗎?在腔體溫度較高時列印低溫線材,打開列印裝置門可以降低擠出機或熱端堵塞的機率。更多資訊請參閱 Wiki。"
# AI Translated
#: resources/data/hints.ini: [hint:Avoid warping]
@@ -30837,6 +38049,1085 @@ msgstr ""
"避免翹曲\n"
"您知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以降低翹曲的機率。"
+#~ msgid "Please choose the filament color"
+#~ msgstr "請選擇線材顏色"
+
+#~ msgid ""
+#~ "Line width of the Bridge. If expressed as a %, it will be computed over the nozzle diameter.\n"
+#~ "Recommended to use with a higher Bridge density or Bridge flow ratio.\n"
+#~ "\n"
+#~ "The maximum value is 100% or the nozzle diameter.\n"
+#~ "If set to 0, the line width will match the Internal solid infill width."
+#~ msgstr ""
+#~ "橋接的線寬。如果以 % 表示,將以噴嘴直徑為基準計算。\n"
+#~ "建議搭配較高的橋接密度或橋接流量比例使用。\n"
+#~ "\n"
+#~ "最大值為 100% 或噴嘴直徑。\n"
+#~ "如果設為 0,線寬將與內部實心填充寬度相同。"
+
+#, no-c-format, no-boost-format
+#~ msgid ""
+#~ "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n"
+#~ "For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers.\n"
+#~ "\n"
+#~ "It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed is slow enough that perimeter curling does not happen. \n"
+#~ "If printing with a high external perimeter speed, this parameter may introduce wall artifacts when slowing down, due to the potentially large variance in print speeds causing the extruder to be unable to keep up with the requested flow change.\n"
+#~ "Root cause of these artifacts is most likely PA tuning being slightly off, especially when combined with a high PA smooth time.\n"
+#~ "\n"
+#~ "Recommendations when enabling this option:\n"
+#~ "1. Reduce Pressure Advance smooth time to 0.015 - 0.02 so the extruder reacts quickly to the speed changes.\n"
+#~ "2. Increase the minimum print speeds to limit the magnitude of the slowdown and reduce the variance between fast and slow segments.\n"
+#~ "3. If artifacts still appear, enable Extrusion Rate Smoothing (ERS) to further smooth the flow transitions.\n"
+#~ "\n"
+#~ "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n"
+#~ "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied."
+#~ msgstr ""
+#~ "啟用此選項可在牆可能向上捲曲的區域降低列印速度。\n"
+#~ "例如,在列印像 Benchy 船體前端這類尖角上的懸空時,會套用額外的減速,以減少在多個層上不斷累積的捲曲。\n"
+#~ "\n"
+#~ "一般建議開啟此選項,除非您的列印裝置冷卻能力夠強,或列印速度夠慢,使得牆不會發生捲曲。 \n"
+#~ "若以較高的外牆速度列印,此參數在減速時可能會產生牆面瑕疵,這是因為列印速度的差異可能過大,導致擠出機無法跟上所要求的流量變化。\n"
+#~ "這些瑕疵的根本原因很可能是 PA 調校略有偏差,尤其是搭配較高的 PA 平滑時間時。\n"
+#~ "\n"
+#~ "啟用此選項時的建議:\n"
+#~ "1. 將 Pressure Advance 平滑時間降低至 0.015 - 0.02,讓擠出機能快速回應速度變化。\n"
+#~ "2. 提高最小列印速度,以限制減速的幅度,並減少快慢區段之間的差異。\n"
+#~ "3. 若仍出現瑕疵,請啟用平滑擠出率 (ERS) 以進一步平滑流量轉換。\n"
+#~ "\n"
+#~ "注意:啟用此選項時,懸空牆會被視為懸空,這表示即使懸空牆屬於橋接的一部分,仍會套用懸空列印速度。\n"
+#~ "例如,當牆 100% 懸空、下方沒有牆支撐時,將會套用 100% 懸空列印速度。"
+
+#~ msgid ""
+#~ "Speed of the externally visible bridge extrusions.\n"
+#~ "\n"
+#~ "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, it will be the print speed of overhang walls that are supported by less than 13%, whether they are part of a bridge or an overhang."
+#~ msgstr ""
+#~ "外部可見橋接擠出的列印速度\n"
+#~ "\n"
+#~ "如果停用了『翹邊處降速』或啟用了『經典懸空模式』,則對支撐率低於 13% 的懸空牆(無論是橋接的一部分還是懸空結構)將使用該列印速度。"
+
+#~ msgid "This separate setting will affect the speed of perimeters having radius <= small_perimeter_threshold (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the outer wall speed setting above. Set to zero for auto."
+#~ msgstr "此獨立設定將影響半徑小於或等於 small_perimeter_threshold 的外牆列印速度(通常指孔洞)。若設定為百分比(如 80%),將基於上述外牆速度進行計算。設定為 0 表示自動調整。"
+
+# AI Translated
+#~ msgid "Same as \"Small perimeters\", but for supports. This separate setting will affect the speed of support for areas <= `small_support_perimeter_threshold`. If expressed as a percentage (for example: 80%), it will be calculated on the support or support interface speed setting above. Set to zero for auto."
+#~ msgstr "與「Small perimeters」相同,但用於支撐。此獨立設定會影響面積 <= `small_support_perimeter_threshold` 的支撐速度。若以百分比表示(例如:80%),則會依上方的支撐或支撐介面速度設定計算。設為零表示自動。"
+
+#~ msgid ""
+#~ "Print sequence of the internal (inner) and external (outer) walls.\n"
+#~ "\n"
+#~ "Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighbouring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter.\n"
+#~ "\n"
+#~ "Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases.\n"
+#~ "\n"
+#~ "Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface."
+#~ msgstr ""
+#~ "『內牆』與『外牆』牆體的列印順序。\n"
+#~ "使用『內牆/外牆』順序可獲得最佳的懸空效果。這是因為懸空牆體在列印時可以附著到相鄰的牆。然而,此選項會略微降低表面品質,因為外牆被壓到內牆上而變形。\n"
+#~ "使用『內牆/外牆/內牆』順序可獲得最佳的外表面光潔度和尺寸精度,因為外牆的列印不會受到內牆影響。然而,因為外牆缺少內牆的支撐,懸空性能會有所降低。此選項需要至少 3 層牆才能生效,它會先從第 3 層牆開始列印內牆,接著列印外部周邊,最後列印最內層的內牆。在大多數情況下,建議選擇此選項,而不是外牆/內牆的順序設定。\n"
+#~ "採用『外牆/內牆』順序可以達到與『內牆/外牆/內牆』設定相同的外牆表面品質與尺寸精度。然而,Z 軸接縫的均勻性會稍差,因為新層的首次擠出會在可見的表面開始。"
+
+#~ msgid "This is the speed for the first layer except for solid infill sections."
+#~ msgstr "首層除實心填充之外的其他部分的列印速度"
+
+#~ msgid "This is the speed for solid infill parts of the first layer."
+#~ msgstr "首層實心填充的列印速度"
+
+#, no-c-format, no-boost-format
+#~ msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces."
+#~ msgstr "為了增強填充與周邊的結合,填充區域會略微擴大,與周邊產生重疊。此百分比值是基於稀疏填充的線寬來計算的。建議將該值設定在 10-15% 左右,以減少過擠出或材料堆積的可能性從而避免列印出粗糙的頂部表面。"
+
+#, no-c-format, no-boost-format
+#~ msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill."
+#~ msgstr "頂部實心填充的區域會略微擴大,與周邊部分重疊,以增強結合效果並減少填充與周邊接合處出現針孔的可能性。建議從 25-30% 的設定值開始,這通常能有效減少針孔現象。此百分比值是基於稀疏填充的線寬來計算的"
+
+#~ msgid "Interlocking depth of a segmented region. It will be ignored if \"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."
+#~ msgstr "設定分隔區域的互鎖深度。如果「mmu_segmented_region_max_width」設定為 0,或者「mmu_segmented_region_interlocking_depth」的值大於「mmu_segmented_region_max_width」,此功能將被忽略。將此值設為 0 可完全關閉該功能。"
+
+#~ msgid ""
+#~ "Reduce the height of top-surface perimeters to match the model edge height.\n"
+#~ "Affects perimeters with a slope less than this angle (degrees).\n"
+#~ "A reasonable value is 35. Set to 0 to disable."
+#~ msgstr ""
+#~ "降低頂面牆的高度,使其與模型邊緣高度相符。\n"
+#~ "影響坡度小於此角度(度)的牆。\n"
+#~ "合理值為 35。設為 0 可停用。"
+
+#~ msgid "Role base wipe speed"
+#~ msgstr "自動擦拭速度"
+
+#~ msgid ""
+#~ "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n"
+#~ "\n"
+#~ "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n"
+#~ "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n"
+#~ msgstr ""
+#~ "防風罩可有效保護 ABS 或 ASA 列印物免受氣流影響,避免翹曲或脫離列印床。通常僅在開放式框架的列印裝置(即無外殼)中需要使用。\n"
+#~ "\n"
+#~ "啟用後,Skirt 的高度將與列印物的最高點相同。若未啟用,則使用『Skirt 高度』的設定值。\n"
+#~ "注意:啟用擋風護盾時,Skirt 會按照設定的 Skirt 距離列印於物體周圍。如果同時啟用了耳狀 Brim,Skirt 可能會與其重疊。為避免此問題,請增加 Skirt 距離的設定值。\n"
+
+#~ msgid ""
+#~ "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "When printing the sparse layers, if the internal perimeter speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n"
+#~ "\n"
+#~ "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n"
+#~ "\n"
+#~ "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n"
+#~ "\n"
+#~ "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."
+#~ msgstr ""
+#~ "在換料塔中沖刷和列印換料塔稀疏層時的最大列印速度。沖刷時,如果稀疏填充速度或根據線材最大體積速度計算出的速度較低,則將使用較低的速度。\n"
+#~ "\n"
+#~ "列印稀疏層時,如果內牆速度或根據線材最大體積速度計算出的速度較低,則將使用較低的速度。\n"
+#~ "\n"
+#~ "提高此速度可能會影響換料塔的穩定性,並增加噴嘴與換料塔上凸起物的碰撞力。\n"
+#~ "\n"
+#~ "在將此參數提高到預設值 90 mm/s 以上之前,請確保您的列印裝置能夠在更高的速度下可靠地進行橋接,且工具更換時的溢出能被良好控制。\n"
+#~ "\n"
+#~ "換料塔外牆始終使用內牆速度,不受此設定影響。"
+
+#~ msgid ""
+#~ "Wipe tower outer wall type.\n"
+#~ "1. Rectangle: The default wall type, a rectangle with fixed width and height.\n"
+#~ "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n"
+#~ "3. Rib: Adds four ribs to the tower wall for enhanced stability."
+#~ msgstr ""
+#~ "換料塔外牆類型。\n"
+#~ "1. 矩形:預設牆體類型,具有固定寬度和高度的矩形。\n"
+#~ "2. 圓錐:底部帶圓角的圓錐形,有助於穩定換料塔。\n"
+#~ "3. 肋條:為換料塔牆體添加四條肋條以增強穩定性"
+
+#~ msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically."
+#~ msgstr "讓換料塔在清理時輸出額外流量。這會使列印線比正常情況更粗或更細。間距會自動調整。"
+
+#~ msgid ""
+#~ "Adjust this value to prevent short, unclosed walls from being printed, which could increase print time. Higher values remove more and longer walls.\n"
+#~ "\n"
+#~ "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. 'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."
+#~ msgstr "調整此參數以避免列印短小且未封閉的牆體,這可能會延長列印時間。參數值越高,移除的牆體會越多且越長。注意:為避免模型外表面出現視覺裂縫,此設定不會影響頂面和底面。若需調整頂面判定的靈敏度,可修改進階設定中的『單層牆門檻值』。『單層牆門檻值』僅在此設定超過預設值 0.5 或啟用了單層牆頂面功能時可用。"
+
+# AI Translated
+#, boost-format
+#~ msgid "Split into %1% part"
+#~ msgid_plural "Split into %1% parts"
+#~ msgstr[0] "分割成 %1% 個零件"
+
+#~ msgid "Repair failed"
+#~ msgstr "修復失敗"
+
+#~ msgid "Repair canceled"
+#~ msgstr "修復被取消"
+
+# AI Translated
+#~ msgid "What this layer does where it overlaps the ones below. Add and Subtract pile relief on or carve it away. Multiply and Divide scale what is underneath, which turns this layer into a mask over it - there, Depth acts as a strength, and 1 mm leaves white areas untouched."
+#~ msgstr "此圖層與下方圖層重疊處的作用方式。「新增」與「減去」會疊加浮雕或將其削去。「相乘」與「相除」會縮放下方的內容,使此圖層成為覆蓋其上的遮罩 - 此時「深度」代表強度,設為 1 mm 時白色區域保持不變。"
+
+# AI Translated
+#~ msgid "The mesh has non-manifold geometry or open boundaries. You can import it as-is or repair it with Windows 3D repair service before importing."
+#~ msgstr "網格包含非流形幾何或開放邊界。您可以直接匯入,或在匯入前使用 Windows 3D 修復服務進行修復。"
+
+# AI Translated
+#~ msgid "Please note that the mesh has non-manifold geometry or open boundaries."
+#~ msgstr "請注意,網格包含非流形幾何或開放邊界。"
+
+# AI Translated
+#~ msgid "Mesh issue"
+#~ msgstr "網格問題"
+
+# AI Translated
+#~ msgid "Repair failed: mesh still open after hole filling."
+#~ msgstr "修復失敗:補洞後網格仍未封閉。"
+
+# AI Translated
+# Needs human review: English says 'non-boolean operators' but presumably means operands; translated as 運算元 (operands).
+#~ msgid "Cannot apply logical operation to non-boolean operators."
+#~ msgstr "無法對非布林運算元套用邏輯運算。"
+
+# AI Translated
+#~ msgid "Reading"
+#~ msgstr "讀取中"
+
+#, boost-format
+#~ msgid "Filament count exceeds the maximum number that painting tool supports. Only the first %1% filaments will be available in painting tool."
+#~ msgstr "線材數量超過上色工具支援的最大值,僅前 %1% 個線材可在上色工具中使用。"
+
+#~ msgid "Shortcut Key "
+#~ msgstr "快速鍵 "
+
+#~ msgid "Build Volume"
+#~ msgstr "列印體積"
+
+# AI Translated
+#, boost-format
+#~ msgid ""
+#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n"
+#~ "Please report to the OrcaSlicer team in which scenario this issue happened.\n"
+#~ "Thank you."
+#~ msgstr ""
+#~ "物件(%1%)有重複的連接件。切片結果中可能缺少部分連接件。\n"
+#~ "請向 OrcaSlicer 團隊回報此問題發生的情境。\n"
+#~ "謝謝。"
+
+#, c-format, boost-format
+#~ msgid "%d triangles"
+#~ msgstr "%d 個三角形"
+
+#~ msgid " (Moving)"
+#~ msgstr " (移動)"
+
+#~ msgid " (Fixed)"
+#~ msgstr " (固定)"
+
+#~ msgid "Filament "
+#~ msgstr "線材"
+
+# AI Translated
+#~ msgid "hotend"
+#~ msgstr "熱端"
+
+# AI Translated
+#~ msgid "Arranging "
+#~ msgstr "自動擺放 "
+
+#~ msgid "Orienting"
+#~ msgstr "自動旋轉方向"
+
+#~ msgid "Please home all axes (click "
+#~ msgstr "請先執行回原點(點選"
+
+#~ msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear."
+#~ msgstr ")來定位工具頭的位置,這可防止裝置移動超出可列印範圍,並避免裝置磨損。"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and %2% changes compared to optimal grouping."
+#~ msgstr "相比最佳分組,增加 %1%g 線材和 %2% 次更換。"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to optimal grouping."
+#~ msgstr "與最佳分組相比,增加 %1%g 線材並減少 %2% 換料次數。"
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to optimal grouping."
+#~ msgstr "與最佳分組相比,節省 %1%g 線材但增加 %2% 換料次數。"
+
+#, boost-format
+#~ msgid "Save %1%g filament and %2% changes compared to a printer with one nozzle."
+#~ msgstr "與單噴嘴列印裝置相比,節省 %1%g 線材並減少 %2% 換料次數。"
+
+#, boost-format
+#~ msgid "Save %1%g filament and increase %2% changes compared to a printer with one nozzle."
+#~ msgstr "與單噴嘴列印裝置相比,節省 %1%g 線材但增加 %2% 換料次數。"
+
+#, boost-format
+#~ msgid "Increase %1%g filament and save %2% changes compared to a printer with one nozzle."
+#~ msgstr "與單噴嘴列印裝置相比,增加 %1%g 線材但減少 %2% 換料次數。"
+
+#~ msgid "number keys"
+#~ msgstr "數字鍵"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s."
+#~ msgstr "線材 %s 放置在 %s,但產生的 G-code 路徑超出 %s 的可列印範圍。"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s."
+#~ msgstr "線材 %s 放置在 %s,但產生的 G-code 路徑超出 %s 的可列印高度。"
+
+#, c-format, boost-format
+#~ msgid "Filaments %s cannot be printed directly on the surface of this plate."
+#~ msgstr "線材 %s 不能直接列印在此列印板表面。"
+
+#~ msgid "will be closed before creating a new model. Do you want to continue?"
+#~ msgstr "將會被關閉以建立新模型,是否繼續?"
+
+#, c-format, boost-format
+#~ msgid "In Cloud Slicing Queue, there are %s tasks ahead of you."
+#~ msgstr "雲端切片佇列中,前面還有 %s 個檔案。"
+
+#~ msgid " upload failed"
+#~ msgstr " 上傳失敗"
+
+#~ msgid " upload config prase failed\n"
+#~ msgstr " 上傳設定檔失敗\n"
+
+#~ msgid " No corresponding storage bucket\n"
+#~ msgstr " 沒有對應的儲存區\n"
+
+#~ msgid " cannot be opened\n"
+#~ msgstr " 無法開啟\n"
+
+#~ msgid ""
+#~ "Your comment result cannot be uploaded due to the following reasons:\n"
+#~ "\n"
+#~ " error code: "
+#~ msgstr ""
+#~ "由於某些原因,您的評論結果無法上傳。如下:\n"
+#~ "\n"
+#~ " 錯誤代碼: "
+
+#~ msgid "error message: "
+#~ msgstr "錯誤訊息:"
+
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "Would you like to redirect to the webpage to give a rating?"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "您想要跳轉到網頁給予評分嗎?"
+
+# AI Translated
+#, boost-format
+#~ msgid " (process preset: %1%)"
+#~ msgstr " (列印參數預設:%1%)"
+
+#, c-format, boost-format
+#~ msgid "The %s nozzle can not print %s."
+#~ msgstr "%s 噴嘴無法列印 %s。"
+
+#~ msgid " nozzle"
+#~ msgstr " 噴嘴"
+
+#, boost-format
+#~ msgid "It is not recommended to print the following filament(s) with %1%: %2%\n"
+#~ msgstr "不建議使用 %1% 列印以下線材:%2%\n"
+
+#, boost-format
+#~ msgid " plate %1%:"
+#~ msgstr "列印板 %1%:"
+
+# AI Translated
+#, boost-format
+#~ msgid "Remove all %1% mixed filaments?"
+#~ msgstr "要移除全部 %1% 個混合線材嗎?"
+
+#~ msgid "Do you want to replace it"
+#~ msgstr "確認要更換它嗎"
+
+# AI Translated
+# Needs human review: Uses 熱床 (as in the existing 'Bed Temperature' label 熱床溫度) instead of the glossary's 列印板 for Bed; confirm this is preferred in temperature contexts.
+#, c-format, boost-format
+#~ msgid "Bed temperature conflict: T%d (%s) sets the bed to %d°C — T%d (%s) requires %d°C. The primary tool controls the bed; secondary tools print at whatever temperature it sets."
+#~ msgstr "熱床溫度衝突:T%d(%s)將熱床設為 %d°C,而 T%d(%s)需要 %d°C。熱床由主工具頭控制,次要工具頭只能沿用其設定的溫度。"
+
+#~ msgid "No accelerations provided for calibration. Use default acceleration value "
+#~ msgstr "未提供校正所需的加速度,將使用預設加速度值 "
+
+#~ msgid "No speeds provided for calibration. Use default optimal speed "
+#~ msgstr "未提供校正所需的速度,將使用預設最佳速度 "
+
+# AI Translated
+#, boost-format
+#~ msgid "No belt temperature tower is available for the range %1% to %2% °C. Use a range the tower models cover, for example 230 to 190."
+#~ msgstr "沒有適用於 %1% 至 %2% °C 範圍的輸送帶溫度塔。請使用溫度塔模型涵蓋的範圍,例如 230 至 190。"
+
+#~ msgid "The selected file"
+#~ msgstr "已選擇的檔案"
+
+#~ msgid "Does not contain valid G-code."
+#~ msgstr "不包含有效的 G-code 檔案。"
+
+#~ msgid "with OrcaSlicer so that Orca can open models from"
+#~ msgstr "與 OrcaSlicer 關聯,以便 Orca 可以從中開啟模型"
+
+#, c-format, boost-format
+#~ msgid "Cost %dg filament and %d changes more than optimal grouping."
+#~ msgstr "比最佳分組多消耗 %dg 線材和 %d 次切換。"
+
+# AI Translated
+#~ msgid "Parameters with this icon can be configurable per nozzle."
+#~ msgstr "帶有此圖示的參數可依噴嘴分別設定。"
+
+#~ msgid "Reserved keywords found"
+#~ msgstr "偵測到保留的關鍵字"
+
+#, c-format, boost-format
+#~ msgid "%d Filament Preset and %d Process Preset is attached to this printer. Those presets would be deleted if the printer is deleted."
+#~ msgstr "此列印裝置含有 %d 線材預設和 %d 列印參數預設。若刪除此列印裝置,這些預設將被刪除。"
+
+#~ msgid "The following presets inherit this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "以下預設繼承了此預設。"
+
+#, boost-format
+#~ msgid "%1% Preset"
+#~ msgstr "%1% 預設"
+
+#, boost-format
+#~ msgid "Are you sure you want to %1% the selected preset?"
+#~ msgstr "確認要 %1% 所選預設嗎?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s %s"
+#~ msgstr "%s %s"
+
+#, boost-format
+#~ msgid "Split into %1% parts"
+#~ msgstr "分割成 %1% 個零件"
+
+# AI Translated
+#~ msgid "Downloading new vendor profile(s): "
+#~ msgstr "正在下載新的廠牌設定檔: "
+
+# AI Translated
+#~ msgid "Failed to download vendor profile(s): "
+#~ msgstr "下載廠牌設定檔失敗: "
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% isn't routed to any tool. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "在此 Span 模式下只有 %1% 會列印顏色,但線材 %2% 未分配給任何工具頭。請使用分配給 %1% 的線材,或將此列印板切換為主模式。"
+
+# AI Translated
+#, boost-format
+#~ msgid "In this Span mode only %1% print colors, but filament %2% is routed to T%3%. Use filaments routed to %1%, or switch this plate to Primary mode."
+#~ msgstr "在此 Span 模式下只有 %1% 會列印顏色,但線材 %2% 被分配給 T%3%。請使用分配給 %1% 的線材,或將此列印板切換為主模式。"
+
+#~ msgid " is too close to exclusion area, there may be collisions when printing."
+#~ msgstr "離淨空區域太近,列印時可能會發生碰撞。"
+
+#~ msgid " is too close to clumping detection area, there may be collisions when printing."
+#~ msgstr "離堵塞偵測區域太近,列印時可能會發生碰撞。"
+
+#~ msgid "Prime Tower"
+#~ msgstr "換料塔"
+
+#~ msgid " is too close to others, and collisions may be caused.\n"
+#~ msgstr "離其它物件太近,可能會發生碰撞。\n"
+
+#~ msgid " is too close to an exclusion area, and collisions will be caused.\n"
+#~ msgstr "離淨空區域太近,會發生碰撞。\n"
+
+#~ msgid " is too close to clumping detection area, and collisions will be caused.\n"
+#~ msgstr "離堵塞偵測區域太近,會發生碰撞。\n"
+
+# AI Translated
+#~ msgid " is partially outside the printable area, and it cannot be printed.\n"
+#~ msgstr "有部分超出可列印區域,無法列印。\n"
+
+# AI Translated
+#~ msgid "no configured tool"
+#~ msgstr "未設定的工具頭"
+
+#~ msgid "Add end G-Code when finishing the entire print."
+#~ msgstr "所有列印結束時的結尾 G-code"
+
+#~ msgid "Maximum X speed"
+#~ msgstr "X 最大速度"
+
+#~ msgid "Maximum Y speed"
+#~ msgstr "Y 最大速度"
+
+#~ msgid "Maximum Z speed"
+#~ msgstr "Z 最大速度"
+
+#~ msgid "Maximum E speed"
+#~ msgstr "E 最大速度"
+
+# AI Translated
+#~ msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental."
+#~ msgstr "在每個切片管線步驟呼叫的 Python 外掛,用於讀取與修改中介切片資料,包括最終的 G-code 後處理步驟。研究/實驗性質。"
+
+# AI Translated
+#~ msgid "When enabled, the slicer emits g-code with the primary zone's contents centered on bed origin (0,0). The printer firmware is responsible for placing copies/mirrors at each physical zone position. Enable only on printers whose firmware applies its own zone offsets in copy/mirror mode (e.g. RepRapFirmware IDEX duplication mode). Has no effect in Primary mode."
+#~ msgstr "啟用後,切片軟體輸出的 G-code 會將主區域的內容以列印板原點 (0,0) 為中心放置,並由列印裝置韌體負責將複製件/鏡像件放到各個實體區域位置。僅在韌體會於複製/鏡像模式下自行套用區域偏移的列印裝置上啟用(例如 RepRapFirmware 的 IDEX 複製模式)。在主模式下無效。"
+
+# AI Translated
+#~ msgid "Per-plate override mapping physical heads to filament slots (1-based). Empty means use pem-inversion defaults."
+#~ msgstr "依列印板覆寫實體工具頭到線材槽位的映射(從 1 開始編號)。留空表示使用由 pem 反推的預設映射。"
+
+# AI Translated
+#~ msgid "Axis the mesh is rotated about before slicing. This is the belt printer's tilt: an isometric (no distortion) rotation that also drives bed rendering and support gravity tilt, and that the g-code back-transform inverts before the machine-frame shear/scale and remap. X is the typical gantry tilt (belt travels along Y)."
+#~ msgstr "切片前網格旋轉所繞的軸。這就是輸送帶列印裝置的傾斜:一種等距(無變形)旋轉,同時用於列印板渲染與支撐的重力傾斜;G-code 反向轉換會先還原此旋轉,再進行機器座標系的剪切/縮放與重新映射。X 是典型的龍門傾斜軸(輸送帶沿 Y 方向移動)。"
+
+# AI Translated
+#~ msgid "Expert override: set the machine-frame (g-code shear/scale) tilt angle independently of the pre-slice rotation angle. When disabled, the machine-frame transform is derived from the belt tilt angle, so a single angle drives both stages. Enable only to compensate for a machine whose physical gantry tilt differs from the slicing rotation."
+#~ msgstr "專家覆寫選項:獨立於切片前的旋轉角度,單獨設定機器座標系(G-code 剪切/縮放)的傾斜角度。停用時,機器座標系變換由輸送帶傾斜角度推導,兩個階段使用同一個角度。僅在機器實際的龍門傾角與切片旋轉角度不同時,才啟用此選項進行補償。"
+
+#~ msgid "The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', so if the two conflict, 'Maximum wall deviation' takes precedence."
+#~ msgstr "「最大牆解析度」設定在降低解析度時所允許的最大偏差。若增加此值,列印會較不精確,但 G-Code 會更小。「最大牆偏差」會限制「最大牆解析度」,因此若兩者衝突,將以「最大牆偏差」為準。"
+
+#~ msgid " not in range "
+#~ msgstr " 不在合理的區間"
+
+#~ msgid "floating regions"
+#~ msgstr "浮空區域"
+
+#~ msgid "floating cantilever"
+#~ msgstr "浮空懸臂"
+
+#~ msgid "large overhangs"
+#~ msgstr "大面積懸空"
+
+#, c-format, boost-format
+#~ msgid "It seems object %s has %s. Please re-orient the object or enable support generation."
+#~ msgstr "物件 %s 似乎有 %s。請重新調整物件的方向或啟用支撐。"
+
+#~ msgid "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n"
+#~ msgstr "未偵測到任何列印層。請檢查您的 STL 檔案是否需要修復,或者確認其尺寸與厚度,然後再重試。\n"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle. This result will not be saved."
+#~ msgstr "此機型每個噴嘴只能儲存 %d 筆歷史記錄。此結果將不會被儲存。"
+
+#, c-format, boost-format
+#~ msgid "This machine type can only hold %d historical results per nozzle."
+#~ msgstr "此裝置型號每個噴嘴僅能儲存 %d 筆歷史結果。"
+
+# AI Translated
+#~ msgid "Overhang"
+#~ msgstr "懸空"
+
+#~ msgid "Start / End"
+#~ msgstr "開始 / 結束"
+
+#~ msgid "Damp"
+#~ msgstr "阻尼"
+
+#, c-format, boost-format
+#~ msgid "Detected %d IFS slots on printer."
+#~ msgstr "在列印裝置上偵測到 %d 個 IFS 插槽。"
+
+#~ msgid "selected"
+#~ msgstr "已選取"
+
+#~ msgid "The following presets inherits this preset."
+#~ msgid_plural "The following preset inherits this preset."
+#~ msgstr[0] "以下預設設定繼承了此預設。"
+
+# AI Translated
+#, c-format
+#~ msgid "Found %zu Creality printer(s). Select one and click Use Selected."
+#~ msgstr "找到 %zu 台 Creality 印表機。請選擇一台並按一下「使用所選項目」。"
+
+# AI Translated
+#~ msgid "log(s)"
+#~ msgstr "記錄"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Error: %s extruder has no available %s nozzle, current group result is invalid."
+#~ msgstr "錯誤:%s 擠出機沒有可用的 %s 噴嘴,目前的分組結果無效。"
+
+#~ msgid "invalid brim ears"
+#~ msgstr "無效的耳狀 Brim"
+
+#, c-format, boost-format
+#~ msgid "Skipping %d objects."
+#~ msgstr "跳過 %d 物件。"
+
+# AI Translated
+#~ msgid "Open folder in explorer"
+#~ msgstr "在檔案總管中開啟資料夾"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Click center then a vertex — %d sides, %s"
+#~ msgstr "點選中心再點選一個頂點 — %d 邊,%s"
+
+# AI Translated
+#~ msgid "circumscribed"
+#~ msgstr "外切"
+
+# AI Translated
+#~ msgid "inscribed"
+#~ msgstr "內接"
+
+# AI Translated
+#, c-format
+#~ msgid "Sketch created (%zu driving dims) — select it, then right-click to Extrude"
+#~ msgstr "已建立草圖(%zu 個驅動尺寸) — 選取它,然後按右鍵進行擠出"
+
+# AI Translated
+#, c-format
+#~ msgid "OK — %zu triangles"
+#~ msgstr "成功 — %zu 個三角形"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "This mesh has %d triangles. Every triangle becomes a B-rep face before coplanar merging, so importing it may take a long time and leave a body that is slow to edit. Decimating the mesh first is usually better.\n"
+#~ "\n"
+#~ "Import anyway?"
+#~ msgstr ""
+#~ "此網格有 %d 個三角形。在合併共平面之前,每個三角形都會成為一個 B-rep 面,因此匯入可能需要很長時間,且產生的本體編輯起來會很慢。通常建議先簡化網格。\n"
+#~ "\n"
+#~ "仍要匯入嗎?"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "Imported solid — %d triangles → %d faces, volume %.2f mm³. Pick a face or edge, then Fillet / Cut / Shell to modify"
+#~ msgstr "已匯入實體 — %d 個三角形 → %d 個面,體積 %.2f mm³。選取面或邊,再使用圓角 / 切割 / 薄殼進行修改"
+
+# AI Translated
+#~ msgid " — drag to place/size, then Confirm"
+#~ msgstr " — 拖曳以放置/調整大小,然後按「確認」"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d sketch entities"
+#~ msgstr "%d 個草圖圖元"
+
+# AI Translated
+#~ msgid " — type a value, press Enter (or Confirm)"
+#~ msgstr " — 輸入數值後按 Enter(或「確認」)"
+
+# AI Translated
+#, c-format
+#~ msgid "Preview — %zu triangles"
+#~ msgstr "預覽 — %zu 個三角形"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) cannot act on this geometry (an ellipse or spline curve, or a zero-size circle) and are ignored"
+#~ msgstr "%1% 個約束無法作用於此幾何(橢圓或雲形線,或尺寸為零的圓),已忽略"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) the fillet/chamfer invalidated were removed"
+#~ msgstr "已移除 %1% 個因圓角/倒角而失效的約束"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% constraint(s) released by the transform"
+#~ msgstr "變換解除了 %1% 個約束"
+
+# AI Translated
+#, boost-format
+#~ msgid "...and %1% more open end(s)"
+#~ msgstr "...以及另外 %1% 個開放端點"
+
+# AI Translated
+#, boost-format
+#~ msgid "The material list supports at most %1% colors. After %2% decomposition, the material count would exceed %1%. Please delete unused filaments on the main screen before decomposing."
+#~ msgstr "材料清單最多支援 %1% 種顏色。經過 %2% 分解後,材料數量將超過 %1%。請先在主畫面刪除未使用的線材,再進行分解。"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% printable colors from %2% filaments"
+#~ msgstr "%1% 種可列印顏色(來自 %2% 種線材)"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% islands"
+#~ msgstr "%1% 個 UV 島"
+
+# AI Translated
+#, boost-format
+#~ msgid "All %1% layers used"
+#~ msgstr "已使用全部 %1% 個圖層"
+
+# AI Translated
+#, boost-format
+#~ msgid "Preview: %1% triangles"
+#~ msgstr "預覽:%1% 個三角形"
+
+# AI Translated
+#, boost-format
+#~ msgid "Model: %1% triangles - the bake refines to the resolution above, up to its budget"
+#~ msgstr "模型:%1% 個三角形 - 固化會細化至上方的解析度,最多到預算上限"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake moves existing vertices - the model stays at %1% triangles"
+#~ msgstr "固化會移動現有頂點 - 模型維持 %1% 個三角形"
+
+# AI Translated
+#, boost-format
+#~ msgid "Bake result up to ~%1% k triangles"
+#~ msgstr "固化結果最多約 %1% k 個三角形"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% layers not painted, skipped"
+#~ msgstr "%1% 個圖層未繪製,已略過"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "The project supports up to %d filaments. Extra filaments will be discarded."
+#~ msgstr "專案最多支援 %d 種線材。多出的線材將被捨棄。"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d vertices selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "已選取 %d 個頂點 | 拖曳 = 一起移動,Shift/Ctrl 點選 = 加入/移除"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d edges selected | drag = move together, Shift/Ctrl click = add/remove"
+#~ msgstr "已選取 %d 條邊 | 拖曳 = 一起移動,Shift/Ctrl 點選 = 加入/移除"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands selected | drag = move together, Shift/Ctrl click = add/remove, R/S = rotate/scale primary"
+#~ msgstr "已選取 %d 個 UV 島 | 拖曳 = 一起移動,Shift/Ctrl 點選 = 加入/移除,R/S = 旋轉/縮放主要 UV 島"
+
+# AI Translated
+#~ msgid "The active layer's tile size: how much of the model one repeat of the texture covers. The canvas is measured in tiles, so one grid cell is one repeat. Change it with Tiling in the layer's settings."
+#~ msgstr "目前圖層的平鋪尺寸:紋理重複一次在模型上涵蓋的範圍。畫布以平鋪為單位,因此一個網格單元即為一次重複。可在圖層設定的「平鋪」中變更。"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%d islands, %s faces"
+#~ msgstr "%d 個 UV 島,%s 個面"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "外掛「%s」正在請求讀取下列檔案:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to read/write the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "外掛「%s」正在請求讀寫下列檔案:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to create the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "外掛「%s」正在請求建立下列檔案:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to delete the following file(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "外掛「%s」正在請求刪除下列檔案:\n"
+#~ "%s"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid ""
+#~ "Plugin \"%s\" is requesting to run the following command(s):\n"
+#~ "%s"
+#~ msgstr ""
+#~ "外掛「%s」正在請求執行下列命令:\n"
+#~ "%s"
+
+# AI Translated
+#~ msgid "Plugin installation failed"
+#~ msgstr "外掛安裝失敗"
+
+#~ msgid ""
+#~ "The Microsoft WebView2 Runtime could not be installed.\n"
+#~ "Some features, including the setup wizard, may appear blank until it is installed.\n"
+#~ "Please install it manually from https://developer.microsoft.com/microsoft-edge/webview2/ and restart Orca Slicer."
+#~ msgstr ""
+#~ "無法安裝 Microsoft WebView2 Runtime。\n"
+#~ "在安裝完成前,包括設定精靈在內的部分功能可能顯示為空白。\n"
+#~ "請從 https://developer.microsoft.com/microsoft-edge/webview2/ 手動安裝,然後重新啟動 Orca Slicer。"
+
+#~ msgid "Why this grouping"
+#~ msgstr "為何這樣分組"
+
+#~ msgid "The software does not support using different diameter of nozzles for one print. If the left and right nozzles are inconsistent, we can only proceed with single-head printing. Please confirm which nozzle you would like to use for this project."
+#~ msgstr "軟體不支援在一次列印中使用不同直徑的噴嘴。如果左右噴嘴不一致,只能進行單頭列印。請確認您要在此專案中使用哪個噴嘴。"
+
+#~ msgid "Switch diameter"
+#~ msgstr "切換直徑"
+
+#~ msgid "BambuStudio Project"
+#~ msgstr "BambuStudio 專案"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Found unrecognized settings:"
+#~ msgstr "此 3MF 由 BambuStudio(版本 %s)建立,其版本比相容版本 %s 更新。發現無法辨識的設定:"
+
+#, c-format, boost-format
+#~ msgid "The 3MF was created by BambuStudio (version %s), which is newer than the compatible version %s. Some settings may not be fully compatible."
+#~ msgstr "此 3MF 由 BambuStudio(版本 %s)建立,該版本新於相容版本 %s。部分設定可能無法完全相容。"
+
+#~ msgid "The 3MF was created by BambuStudio. Some settings may differ from OrcaSlicer."
+#~ msgstr "此 3MF 由 BambuStudio 建立。部分設定可能與 OrcaSlicer 不同。"
+
+# AI Translated
+#~ msgid "Cannot undo or redo while an operation is running. Stop it first."
+#~ msgstr "操作執行期間無法復原或重做。請先停止該操作。"
+
+# AI Translated
+#, c-format, boost-format
+#~ msgid "%s: %s"
+#~ msgstr "%s:%s"
+
+# AI Translated
+#~ msgid ""
+#~ "Centers the internal infill of each part on itself, as if it were sliced on its own, instead of on the whole assembly. Parts that touch or overlap are treated as one body and share a center; separate parts (or distinct 3D objects) each get their own.\n"
+#~ "Useful when an assembly groups several objects that should each keep a consistent, self-centered infill.\n"
+#~ "Affects line and grid patterns and rotation-template infills.\n"
+#~ "Patterns locked to global coordinates (Gyroid, Honeycomb, TPMS, ...) are unaffected."
+#~ msgstr ""
+#~ "將每個零件的內部填充以其自身為中心,如同它是單獨切片一樣,而非以整個組件為中心。相互接觸或重疊的零件會被視為一個實體並共用一個中心;分離的零件(或不同的 3D 物件)則各自擁有自己的中心。\n"
+#~ "適用於組件中分組了多個各自應保持一致、以自身為中心之填充的物件時。\n"
+#~ "會影響線形與網格圖樣以及旋轉範本填充。\n"
+#~ "鎖定為全域座標的圖樣(螺旋體、蜂巢、TPMS…)則不受影響。"
+
+#~ msgid "Index of the current layer. One-based (i.e. first layer is number 1)."
+#~ msgstr "當層數 (第一層為一)"
+
+#~ msgid "Video tutorial"
+#~ msgstr "影片指南"
+
+# AI Translated
+#~ msgid "Primitive"
+#~ msgstr "標準模型"
+
+# AI Translated
+#~ msgid "Empty mesh generated"
+#~ msgstr "產生了空的網格"
+
+# AI Translated
+#~ msgid "Box"
+#~ msgstr "長方體"
+
+# AI Translated
+#~ msgid "Quick:"
+#~ msgstr "快速:"
+
+# AI Translated
+#~ msgid "Width (X)"
+#~ msgstr "寬度 (X)"
+
+# AI Translated
+#~ msgid "Depth (Y)"
+#~ msgstr "深度 (Y)"
+
+# AI Translated
+#~ msgid "Height (Z)"
+#~ msgstr "高度 (Z)"
+
+# AI Translated
+#~ msgid "Bottom R"
+#~ msgstr "底部半徑"
+
+# AI Translated
+#~ msgid "Top R"
+#~ msgstr "頂部半徑"
+
+# AI Translated
+#~ msgid "Major R"
+#~ msgstr "主半徑"
+
+# AI Translated
+#~ msgid "Minor R"
+#~ msgstr "次半徑"
+
+# AI Translated
+#~ msgid "All edges"
+#~ msgstr "所有邊"
+
+# AI Translated
+#~ msgid "Top edges"
+#~ msgstr "頂部邊"
+
+# AI Translated
+#~ msgid "Bottom edges"
+#~ msgstr "底部邊"
+
+# AI Translated
+#~ msgid "Lateral edges"
+#~ msgstr "側邊"
+
+# AI Translated
+#~ msgid "Mesh resolution"
+#~ msgstr "網格解析度"
+
+# AI Translated
+#~ msgid "Add Shape"
+#~ msgstr "新增形狀"
+
+# AI Translated
+#~ msgid "No outer profile"
+#~ msgstr "沒有外輪廓"
+
+# AI Translated
+#~ msgid "Failed to make outer face"
+#~ msgstr "無法建立外部面"
+
+# AI Translated
+#~ msgid "Failed to build face with holes"
+#~ msgstr "無法建立帶孔的面"
+
+# AI Translated
+#~ msgid "Revolve failed"
+#~ msgstr "迴轉失敗"
+
+# AI Translated
+#~ msgid "Profile"
+#~ msgstr "輪廓"
+
+# AI Translated
+#~ msgid "Start new profile (for holes)"
+#~ msgstr "開始新輪廓(用於孔洞)"
+
+# AI Translated
+#~ msgid "Segments"
+#~ msgstr "段數"
+
+# AI Translated
+#~ msgid "Sides"
+#~ msgstr "邊數"
+
+# AI Translated
+#~ msgid "Click on canvas to draw"
+#~ msgstr "在畫布上點選以繪製"
+
+# AI Translated
+#~ msgid "Snap to grid"
+#~ msgstr "貼齊格線"
+
+# AI Translated
+#~ msgid "Grid step"
+#~ msgstr "格線間距"
+
+# AI Translated
+#~ msgid "Outer"
+#~ msgstr "外輪廓"
+
+# AI Translated
+#~ msgid "closed"
+#~ msgstr "已封閉"
+
+# AI Translated
+#, boost-format
+#~ msgid "%1% %2%: %3% points %4%"
+#~ msgstr "%1% %2%:%3% 個點 %4%"
+
+# AI Translated
+#~ msgid "XY (Top)"
+#~ msgstr "XY(頂部)"
+
+# AI Translated
+#~ msgid "XZ (Front)"
+#~ msgstr "XZ(前面)"
+
+# AI Translated
+#~ msgid "YZ (Side)"
+#~ msgstr "YZ(側面)"
+
+# AI Translated
+#~ msgid "Revolve deg"
+#~ msgstr "迴轉角度"
+
+# AI Translated
+#~ msgid "Set to 0 for extrude, >0 for revolve"
+#~ msgstr "設為 0 表示擠出,大於 0 表示迴轉"
+
+# AI Translated
+#~ msgid "Pocket (cut)"
+#~ msgstr "挖槽(切除)"
+
+# AI Translated
+#, c-format
+#~ msgid "%zu closed profile"
+#~ msgid_plural "%zu closed profiles"
+#~ msgstr[0] "%zu 個封閉輪廓"
+
+# AI Translated
+#~ msgid "Draw a closed profile to enable"
+#~ msgstr "請繪製封閉輪廓以啟用"
+
+# AI Translated
+#~ msgid "Empty result"
+#~ msgstr "結果為空"
+
+# AI Translated
+#, boost-format
+#~ msgid "Extrude: %1%"
+#~ msgstr "擠出:%1%"
+
+# AI Translated
+#, boost-format
+#~ msgid "Revolve: %1%"
+#~ msgstr "迴轉:%1%"
+
+# AI Translated
+#~ msgid "No object selected"
+#~ msgstr "未選取物件"
+
+# AI Translated
+#~ msgid "Face failed"
+#~ msgstr "建立面失敗"
+
+# AI Translated
+#~ msgid "Face with holes failed"
+#~ msgstr "建立帶孔的面失敗"
+
+# AI Translated
+#~ msgid "Tool mesh empty"
+#~ msgstr "工具網格為空"
+
+# AI Translated
+#~ msgid "Pocket added (negative volume)"
+#~ msgstr "已新增挖槽(負體積)"
+
+# AI Translated
+#, boost-format
+#~ msgid "Pocket: %1%"
+#~ msgstr "挖槽:%1%"
+
+# AI Translated
+#~ msgid "Needs the active layer mapped with Unwrap (LSCM)."
+#~ msgstr "需要目前圖層使用「展開 (LSCM)」映射。"
+
+# AI Translated
+#~ msgid "Checker - a test grid instead of the texture. Where the squares stay square the texture is undistorted; where they stretch, it will too"
+#~ msgstr "棋盤格 - 以測試網格取代紋理。方格維持正方形之處,紋理不會變形;方格被拉伸之處,紋理也會被拉伸"
+
+# AI Translated
+#~ msgid "Distortion - blue-to-red stretch heatmap over the unwrap"
+#~ msgstr "變形 - 在展開結果上以藍到紅的熱圖顯示拉伸程度"
+
+# AI Translated
+#~ msgid "Mix by"
+#~ msgstr "混合方式"
+
+# AI Translated
+#~ msgctxt "Texture Displacement"
+#~ msgid "Surface"
+#~ msgstr "表面"
+
+# AI Translated
+#~ msgid ""
+#~ "Layers: the two filaments alternate between print layers, which blends smoothly on upright surfaces but disappears on flat-facing ones, where a whole layer is a single band.\n"
+#~ "Surface: a fine checkerboard across the surface, which works at any angle but can read as texture rather than as a blend.\n"
+#~ "Automatic: layers on upright faces; flat-facing faces take the nearer single filament, since a checkerboard there shows as a pattern."
+#~ msgstr ""
+#~ "層:兩種線材在列印層之間交替,在直立表面上混合平順,但在朝上或朝下的平面上會消失,因為整層只是單一色帶。\n"
+#~ "表面:在表面上形成細密的棋盤格,任何角度都適用,但看起來可能像紋理而非混色。\n"
+#~ "自動:直立面採用層交替;平面則採用較接近的單一線材,因為棋盤格在平面上會顯現為圖案。"
+
+# AI Translated
+#~ msgid "Island - move, rotate and scale whole islands"
+#~ msgstr "UV 島 - 移動、旋轉與縮放整個 UV 島"
+
+# AI Translated
+#~ msgid "Vertex - drag vertices to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "頂點 - 拖曳頂點以調整形狀;按 Shift/Ctrl 可多選"
+
+# AI Translated
+#~ msgid "Edge - drag edges to reshape; Shift/Ctrl to multi-select"
+#~ msgstr "邊 - 拖曳邊以調整形狀;按 Shift/Ctrl 可多選"
+
+# AI Translated
+#~ msgid "Frame all islands (Home)"
+#~ msgstr "置中顯示所有 UV 島 (Home)"
+
# AI Translated
#~ msgid "(Experimental) Use printer agents instead of print hosts"
#~ msgstr "(實驗性)使用列印裝置代理程式取代列印主機"
@@ -30870,16 +39161,6 @@ msgstr ""
#~ msgid "Click a face or a reference plane, then pick a drawing tool"
#~ msgstr "點選一個面或參考平面,再選擇繪圖工具"
-#~ msgid "X"
-#~ msgstr "X"
-
-#~ msgid "Y"
-#~ msgstr "Y"
-
-# AI Translated
-#~ msgid "Z"
-#~ msgstr "Z"
-
# AI Translated
#~ msgid "XY"
#~ msgstr "XY"
@@ -30936,10 +39217,6 @@ msgstr ""
#~ msgid "Vertical distance"
#~ msgstr "垂直距離"
-# AI Translated
-#~ msgid "Linear"
-#~ msgstr "線性"
-
#~ msgid "Face recognition"
#~ msgstr "外觀面偵測"
@@ -32359,9 +40636,6 @@ msgstr ""
#~ msgid "Failed to calculate line width of %1%. Cannot get value of “%2%”."
#~ msgstr "計算 %1% 的線寬失敗。無法獲得「%2%」的值"
-#~ msgid "Invalid spacing supplied to Flow::with_spacing(), check your layer height and extrusion width."
-#~ msgstr "提供給 Flow::with_spacing()的間距無效,請檢查層高和擠出寬度"
-
#~ msgid "Renders cast shadows on the plate in realistic view."
#~ msgstr "在擬真檢視中於列印板上算繪投射陰影。"
@@ -32621,9 +40895,6 @@ msgstr ""
#~ msgid "part selection"
#~ msgstr "零件選擇"
-#~ msgid "°"
-#~ msgstr "°"
-
#~ msgid ""
#~ "The Wipe option is not available when using the Firmware Retraction mode.\n"
#~ "\n"
diff --git a/resources/calib/temperature_tower/belt_temp_provino_unit.stl b/resources/calib/temperature_tower/belt_temp_provino_unit.stl
new file mode 100644
index 0000000000..556cf313d2
Binary files /dev/null and b/resources/calib/temperature_tower/belt_temp_provino_unit.stl differ
diff --git a/resources/calib/temperature_tower/belt_temp_tower_230_190.stl b/resources/calib/temperature_tower/belt_temp_tower_230_190.stl
new file mode 100644
index 0000000000..0496fd1522
Binary files /dev/null and b/resources/calib/temperature_tower/belt_temp_tower_230_190.stl differ
diff --git a/resources/calib/temperature_tower/belt_temp_tower_240_210.stl b/resources/calib/temperature_tower/belt_temp_tower_240_210.stl
new file mode 100644
index 0000000000..31801c1744
Binary files /dev/null and b/resources/calib/temperature_tower/belt_temp_tower_240_210.stl differ
diff --git a/resources/calib/temperature_tower/belt_temp_tower_250_230.stl b/resources/calib/temperature_tower/belt_temp_tower_250_230.stl
new file mode 100644
index 0000000000..b03f057884
Binary files /dev/null and b/resources/calib/temperature_tower/belt_temp_tower_250_230.stl differ
diff --git a/resources/calib/temperature_tower/belt_temp_tower_270_230.stl b/resources/calib/temperature_tower/belt_temp_tower_270_230.stl
new file mode 100644
index 0000000000..7a0bfbd1da
Binary files /dev/null and b/resources/calib/temperature_tower/belt_temp_tower_270_230.stl differ
diff --git a/resources/calib/temperature_tower/belt_temp_tower_280_240.stl b/resources/calib/temperature_tower/belt_temp_tower_280_240.stl
new file mode 100644
index 0000000000..1276d5ce04
Binary files /dev/null and b/resources/calib/temperature_tower/belt_temp_tower_280_240.stl differ
diff --git a/resources/calib/temperature_tower/belt_temp_tower_320_280.stl b/resources/calib/temperature_tower/belt_temp_tower_320_280.stl
new file mode 100644
index 0000000000..957e038067
Binary files /dev/null and b/resources/calib/temperature_tower/belt_temp_tower_320_280.stl differ
diff --git a/resources/calib/temperature_tower/gen_belt_temp_tower.py b/resources/calib/temperature_tower/gen_belt_temp_tower.py
new file mode 100644
index 0000000000..9182647acb
--- /dev/null
+++ b/resources/calib/temperature_tower/gen_belt_temp_tower.py
@@ -0,0 +1,79 @@
+#!/usr/bin/env python3
+"""Belt temperature-tower asset generator (discrete-provini design).
+
+A vertical temperature tower cannot be sliced on a belt printer, so lay a row of
+DISCRETE provini (one per temperature) along the belt (designed Y) with a fixed
+surface gap. Each provino is the chevron+arc unit (belt_temp_provino_unit.stl,
+keel-first); its temperature is ENGRAVED upright into the 50 mm face — a raised
+number would be an unsupported overhang on the belt. The C++ calib_temp belt branch
+(Plater.cpp) injects one M104 per zone 70 layers INTO provino i:
+ print_z[i] = i * PITCH * cos(theta) + 70 * layer_height (theta = 45)
+inside the body, not in the empty inter-provino gap (which has no sliced layers for
+the event to attach to). PITCH below is the shared geometry contract with that code —
+keep them in sync.
+
+Generates one STL per filament temp range used by Temp_Calibration_Dlg.
+"""
+import numpy as np, trimesh, os
+from matplotlib.textpath import TextPath
+from matplotlib.font_manager import FontProperties
+from shapely.geometry import Polygon as ShPoly
+from shapely.ops import unary_union
+
+HERE = os.path.dirname(os.path.abspath(__file__))
+UNIT = os.path.join(HERE, 'belt_temp_provino_unit.stl') # single provino, keel-first
+SURF_GAP = 25.0 # surface-to-surface gap between provini (mm) — user spec
+TEXT_H = 9.0
+TEXT_DEPTH = 0.8 # engraving depth (numbers are CUT into the face, not raised:
+ # a raised number is an unsupported Y-overhang on the belt)
+TEXT_OVERSHOOT = 0.6 # extra height poking out of the face for a clean boolean cut
+
+# Temperature ranges (start, end) per filament family, 5 C step. File name encodes them.
+RANGES = [(230,190),(270,230),(250,230),(280,240),(240,210),(320,280)]
+
+unit = trimesh.load(UNIT)
+dY = unit.bounds[1,1] - unit.bounds[0,1]
+PITCH = dY + SURF_GAP # designed-Y pitch == C++ contract constant
+print(f"unit dY={dY:.2f} PITCH={PITCH:.3f} (C++ contract: print_z[i]=i*{PITCH:.3f}*cos45)")
+
+# 50 mm face normal (0,-1,1)/sqrt2 ; UPRIGHT basis u=+X det(+1) (verified non-mirrored)
+n = np.array([0,-1,1.])/np.sqrt(2)
+u = np.array([1,0,0.]); v = np.array([0,1,1.])/np.sqrt(2)
+R = np.column_stack([u,v,n])
+fn = unit.face_normals; fc = unit.triangles_center; fa = unit.area_faces
+sel = (fn@n) > 0.9
+face_c = (fc[sel]*fa[sel,None]).sum(0)/fa[sel].sum()
+
+def text_mesh(s):
+ tp = TextPath((0,0), s, size=TEXT_H, prop=FontProperties(family='DejaVu Sans'))
+ rings = [ShPoly(p) for p in tp.to_polygons() if len(p)>=3]
+ rings.sort(key=lambda r:r.area, reverse=True)
+ used=[False]*len(rings); parts=[]
+ for i,o in enumerate(rings):
+ if used[i]: continue
+ holes=[]
+ for j in range(i+1,len(rings)):
+ if not used[j] and o.contains(rings[j]): holes.append(rings[j].exterior.coords); used[j]=True
+ parts.append(ShPoly(o.exterior.coords,holes)); used[i]=True
+ poly = unary_union(parts)
+ geoms = list(poly.geoms) if poly.geom_type=='MultiPolygon' else [poly]
+ m = trimesh.util.concatenate([trimesh.creation.extrude_polygon(g,height=TEXT_DEPTH+TEXT_OVERSHOOT) for g in geoms])
+ c = m.bounds.mean(axis=0); m.apply_translation([-c[0],-c[1],0]); return m
+
+for t_start, t_end in RANGES:
+ temps = list(range(t_start, t_end-1, -5))
+ parts=[]
+ for i,T in enumerate(temps):
+ c = unit.copy(); c.apply_translation([0, i*PITCH, 0])
+ t = text_mesh(str(T)); M=np.eye(4); M[:3,:3]=R; t.apply_transform(M)
+ # place the text spanning from TEXT_DEPTH inside the face to TEXT_OVERSHOOT outside,
+ # then CUT it out of the provino (engrave) — no raised material, no Y-overhang.
+ t.apply_translation(face_c - n*TEXT_DEPTH + np.array([0,i*PITCH,0]))
+ c = trimesh.boolean.difference([c, t], engine='manifold')
+ parts.append(c)
+ asset = trimesh.util.concatenate(parts)
+ out = os.path.join(HERE, f"belt_temp_tower_{t_start}_{t_end}.stl")
+ asset.export(out)
+ dims = np.round(asset.bounds[1]-asset.bounds[0],1)
+ wt = all(p.is_watertight for p in parts)
+ print(f" {t_start}->{t_end}: {len(temps)} zones bbox={dims} watertight={wt} -> {os.path.basename(out)}")
diff --git a/resources/images/align_x_center.svg b/resources/images/align_x_center.svg
new file mode 100644
index 0000000000..32012712a9
--- /dev/null
+++ b/resources/images/align_x_center.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_x_center_dark.svg b/resources/images/align_x_center_dark.svg
new file mode 100644
index 0000000000..2ed90436b1
--- /dev/null
+++ b/resources/images/align_x_center_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_x_max.svg b/resources/images/align_x_max.svg
new file mode 100644
index 0000000000..3668d32792
--- /dev/null
+++ b/resources/images/align_x_max.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_x_max_dark.svg b/resources/images/align_x_max_dark.svg
new file mode 100644
index 0000000000..81e2e236b5
--- /dev/null
+++ b/resources/images/align_x_max_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_x_min.svg b/resources/images/align_x_min.svg
new file mode 100644
index 0000000000..b35da87f31
--- /dev/null
+++ b/resources/images/align_x_min.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_x_min_dark.svg b/resources/images/align_x_min_dark.svg
new file mode 100644
index 0000000000..9e32867fad
--- /dev/null
+++ b/resources/images/align_x_min_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_y_center.svg b/resources/images/align_y_center.svg
new file mode 100644
index 0000000000..5bc5e0a2e4
--- /dev/null
+++ b/resources/images/align_y_center.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_y_center_dark.svg b/resources/images/align_y_center_dark.svg
new file mode 100644
index 0000000000..cea517a3a3
--- /dev/null
+++ b/resources/images/align_y_center_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_y_max.svg b/resources/images/align_y_max.svg
new file mode 100644
index 0000000000..9a4bf46b0a
--- /dev/null
+++ b/resources/images/align_y_max.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_y_max_dark.svg b/resources/images/align_y_max_dark.svg
new file mode 100644
index 0000000000..cf91f9dc26
--- /dev/null
+++ b/resources/images/align_y_max_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_y_min.svg b/resources/images/align_y_min.svg
new file mode 100644
index 0000000000..3e6bea962e
--- /dev/null
+++ b/resources/images/align_y_min.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_y_min_dark.svg b/resources/images/align_y_min_dark.svg
new file mode 100644
index 0000000000..800a202aef
--- /dev/null
+++ b/resources/images/align_y_min_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_z_center.svg b/resources/images/align_z_center.svg
new file mode 100644
index 0000000000..5436259956
--- /dev/null
+++ b/resources/images/align_z_center.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_z_center_dark.svg b/resources/images/align_z_center_dark.svg
new file mode 100644
index 0000000000..9bcb13d5e0
--- /dev/null
+++ b/resources/images/align_z_center_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_z_max.svg b/resources/images/align_z_max.svg
new file mode 100644
index 0000000000..8446d3a8ac
--- /dev/null
+++ b/resources/images/align_z_max.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_z_max_dark.svg b/resources/images/align_z_max_dark.svg
new file mode 100644
index 0000000000..518c48f648
--- /dev/null
+++ b/resources/images/align_z_max_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_z_min.svg b/resources/images/align_z_min.svg
new file mode 100644
index 0000000000..1988fb1c27
--- /dev/null
+++ b/resources/images/align_z_min.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/align_z_min_dark.svg b/resources/images/align_z_min_dark.svg
new file mode 100644
index 0000000000..8bfdcc0027
--- /dev/null
+++ b/resources/images/align_z_min_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/delete_all_filaments.svg b/resources/images/delete_all_filaments.svg
new file mode 100644
index 0000000000..e2f3641300
--- /dev/null
+++ b/resources/images/delete_all_filaments.svg
@@ -0,0 +1 @@
+
diff --git a/resources/images/distribute_x.svg b/resources/images/distribute_x.svg
new file mode 100644
index 0000000000..20f505f61f
--- /dev/null
+++ b/resources/images/distribute_x.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/distribute_x_dark.svg b/resources/images/distribute_x_dark.svg
new file mode 100644
index 0000000000..a87cf75a05
--- /dev/null
+++ b/resources/images/distribute_x_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/distribute_y.svg b/resources/images/distribute_y.svg
new file mode 100644
index 0000000000..5ddd1742d0
--- /dev/null
+++ b/resources/images/distribute_y.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/distribute_y_dark.svg b/resources/images/distribute_y_dark.svg
new file mode 100644
index 0000000000..ac72dda332
--- /dev/null
+++ b/resources/images/distribute_y_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/distribute_z.svg b/resources/images/distribute_z.svg
new file mode 100644
index 0000000000..ee29156e21
--- /dev/null
+++ b/resources/images/distribute_z.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/distribute_z_dark.svg b/resources/images/distribute_z_dark.svg
new file mode 100644
index 0000000000..6ba375f364
--- /dev/null
+++ b/resources/images/distribute_z_dark.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/extruder_sync.svg b/resources/images/extruder_sync.svg
index 4e18766368..a8e8c922a6 100644
--- a/resources/images/extruder_sync.svg
+++ b/resources/images/extruder_sync.svg
@@ -1,3 +1 @@
-
-
-
+
\ No newline at end of file
diff --git a/resources/images/multi_extruder.svg b/resources/images/multi_extruder.svg
index 24bb6eed8c..f3774ed1e0 100644
--- a/resources/images/multi_extruder.svg
+++ b/resources/images/multi_extruder.svg
@@ -1,10 +1 @@
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_copy_mode.svg b/resources/images/plate_imex_copy_mode.svg
new file mode 100644
index 0000000000..b938e909a1
--- /dev/null
+++ b/resources/images/plate_imex_copy_mode.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_copy_mode_dark.svg b/resources/images/plate_imex_copy_mode_dark.svg
new file mode 100644
index 0000000000..c87b0e0ffe
--- /dev/null
+++ b/resources/images/plate_imex_copy_mode_dark.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_copy_mode_hover.svg b/resources/images/plate_imex_copy_mode_hover.svg
new file mode 100644
index 0000000000..4238552426
--- /dev/null
+++ b/resources/images/plate_imex_copy_mode_hover.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_copy_mode_hover_dark.svg b/resources/images/plate_imex_copy_mode_hover_dark.svg
new file mode 100644
index 0000000000..4633b747fe
--- /dev/null
+++ b/resources/images/plate_imex_copy_mode_hover_dark.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_custom_mode.svg b/resources/images/plate_imex_custom_mode.svg
new file mode 100644
index 0000000000..99bc534382
--- /dev/null
+++ b/resources/images/plate_imex_custom_mode.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_custom_mode_dark.svg b/resources/images/plate_imex_custom_mode_dark.svg
new file mode 100644
index 0000000000..d31da3bb3a
--- /dev/null
+++ b/resources/images/plate_imex_custom_mode_dark.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_custom_mode_hover.svg b/resources/images/plate_imex_custom_mode_hover.svg
new file mode 100644
index 0000000000..c0cc65a2a4
--- /dev/null
+++ b/resources/images/plate_imex_custom_mode_hover.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_custom_mode_hover_dark.svg b/resources/images/plate_imex_custom_mode_hover_dark.svg
new file mode 100644
index 0000000000..4b5682dbb2
--- /dev/null
+++ b/resources/images/plate_imex_custom_mode_hover_dark.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_mirror_mode.svg b/resources/images/plate_imex_mirror_mode.svg
new file mode 100644
index 0000000000..92f57755b3
--- /dev/null
+++ b/resources/images/plate_imex_mirror_mode.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_mirror_mode_dark.svg b/resources/images/plate_imex_mirror_mode_dark.svg
new file mode 100644
index 0000000000..b0ab1ee257
--- /dev/null
+++ b/resources/images/plate_imex_mirror_mode_dark.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_mirror_mode_hover.svg b/resources/images/plate_imex_mirror_mode_hover.svg
new file mode 100644
index 0000000000..1772d2c7fb
--- /dev/null
+++ b/resources/images/plate_imex_mirror_mode_hover.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_mirror_mode_hover_dark.svg b/resources/images/plate_imex_mirror_mode_hover_dark.svg
new file mode 100644
index 0000000000..d50131ed4b
--- /dev/null
+++ b/resources/images/plate_imex_mirror_mode_hover_dark.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_normal_mode.svg b/resources/images/plate_imex_normal_mode.svg
new file mode 100644
index 0000000000..2d2324236f
--- /dev/null
+++ b/resources/images/plate_imex_normal_mode.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_normal_mode_dark.svg b/resources/images/plate_imex_normal_mode_dark.svg
new file mode 100644
index 0000000000..86d4b2ec0e
--- /dev/null
+++ b/resources/images/plate_imex_normal_mode_dark.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_normal_mode_hover.svg b/resources/images/plate_imex_normal_mode_hover.svg
new file mode 100644
index 0000000000..3cdfb350fa
--- /dev/null
+++ b/resources/images/plate_imex_normal_mode_hover.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/plate_imex_normal_mode_hover_dark.svg b/resources/images/plate_imex_normal_mode_hover_dark.svg
new file mode 100644
index 0000000000..70b26ed81b
--- /dev/null
+++ b/resources/images/plate_imex_normal_mode_hover_dark.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/score_star_outline.svg b/resources/images/score_star_outline.svg
new file mode 100644
index 0000000000..eb52be9e82
--- /dev/null
+++ b/resources/images/score_star_outline.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/resources/images/texture_displacement/adaptive_off.png b/resources/images/texture_displacement/adaptive_off.png
new file mode 100644
index 0000000000..c509ee5871
Binary files /dev/null and b/resources/images/texture_displacement/adaptive_off.png differ
diff --git a/resources/images/texture_displacement/adaptive_on.png b/resources/images/texture_displacement/adaptive_on.png
new file mode 100644
index 0000000000..43f2667457
Binary files /dev/null and b/resources/images/texture_displacement/adaptive_on.png differ
diff --git a/resources/images/texture_displacement/blend_add.png b/resources/images/texture_displacement/blend_add.png
new file mode 100644
index 0000000000..e1d836167e
Binary files /dev/null and b/resources/images/texture_displacement/blend_add.png differ
diff --git a/resources/images/texture_displacement/blend_multiply.png b/resources/images/texture_displacement/blend_multiply.png
new file mode 100644
index 0000000000..eea49dd12b
Binary files /dev/null and b/resources/images/texture_displacement/blend_multiply.png differ
diff --git a/resources/images/texture_displacement/collapse_slivers_off.png b/resources/images/texture_displacement/collapse_slivers_off.png
new file mode 100644
index 0000000000..f76898339a
Binary files /dev/null and b/resources/images/texture_displacement/collapse_slivers_off.png differ
diff --git a/resources/images/texture_displacement/collapse_slivers_on.png b/resources/images/texture_displacement/collapse_slivers_on.png
new file mode 100644
index 0000000000..3b1823c59c
Binary files /dev/null and b/resources/images/texture_displacement/collapse_slivers_on.png differ
diff --git a/resources/images/texture_displacement/cursor_size.gif b/resources/images/texture_displacement/cursor_size.gif
new file mode 100644
index 0000000000..3c6e5a7d92
Binary files /dev/null and b/resources/images/texture_displacement/cursor_size.gif differ
diff --git a/resources/images/texture_displacement/denoise_off.png b/resources/images/texture_displacement/denoise_off.png
new file mode 100644
index 0000000000..4450932491
Binary files /dev/null and b/resources/images/texture_displacement/denoise_off.png differ
diff --git a/resources/images/texture_displacement/denoise_on.png b/resources/images/texture_displacement/denoise_on.png
new file mode 100644
index 0000000000..ff679e058a
Binary files /dev/null and b/resources/images/texture_displacement/denoise_on.png differ
diff --git a/resources/images/texture_displacement/depth.gif b/resources/images/texture_displacement/depth.gif
new file mode 100644
index 0000000000..d7e9dd615e
Binary files /dev/null and b/resources/images/texture_displacement/depth.gif differ
diff --git a/resources/images/texture_displacement/edge_fade_off.png b/resources/images/texture_displacement/edge_fade_off.png
new file mode 100644
index 0000000000..4652e38ba7
Binary files /dev/null and b/resources/images/texture_displacement/edge_fade_off.png differ
diff --git a/resources/images/texture_displacement/edge_fade_on.png b/resources/images/texture_displacement/edge_fade_on.png
new file mode 100644
index 0000000000..2abb2029aa
Binary files /dev/null and b/resources/images/texture_displacement/edge_fade_on.png differ
diff --git a/resources/images/texture_displacement/erase.gif b/resources/images/texture_displacement/erase.gif
new file mode 100644
index 0000000000..ef4a82e7b1
Binary files /dev/null and b/resources/images/texture_displacement/erase.gif differ
diff --git a/resources/images/texture_displacement/erase_all.png b/resources/images/texture_displacement/erase_all.png
new file mode 100644
index 0000000000..5633bdfa0a
Binary files /dev/null and b/resources/images/texture_displacement/erase_all.png differ
diff --git a/resources/images/texture_displacement/geometry_smoothing.gif b/resources/images/texture_displacement/geometry_smoothing.gif
new file mode 100644
index 0000000000..ad55fbc09b
Binary files /dev/null and b/resources/images/texture_displacement/geometry_smoothing.gif differ
diff --git a/resources/images/texture_displacement/invert_off.png b/resources/images/texture_displacement/invert_off.png
new file mode 100644
index 0000000000..65248727de
Binary files /dev/null and b/resources/images/texture_displacement/invert_off.png differ
diff --git a/resources/images/texture_displacement/invert_on.png b/resources/images/texture_displacement/invert_on.png
new file mode 100644
index 0000000000..0944c0e120
Binary files /dev/null and b/resources/images/texture_displacement/invert_on.png differ
diff --git a/resources/images/texture_displacement/map_cube.png b/resources/images/texture_displacement/map_cube.png
new file mode 100644
index 0000000000..cf50adfd7e
Binary files /dev/null and b/resources/images/texture_displacement/map_cube.png differ
diff --git a/resources/images/texture_displacement/map_cylinder.png b/resources/images/texture_displacement/map_cylinder.png
new file mode 100644
index 0000000000..f9c2986fb2
Binary files /dev/null and b/resources/images/texture_displacement/map_cylinder.png differ
diff --git a/resources/images/texture_displacement/map_sphere.png b/resources/images/texture_displacement/map_sphere.png
new file mode 100644
index 0000000000..0a8dcbbc05
Binary files /dev/null and b/resources/images/texture_displacement/map_sphere.png differ
diff --git a/resources/images/texture_displacement/map_unwrap.png b/resources/images/texture_displacement/map_unwrap.png
new file mode 100644
index 0000000000..4caaf6bb83
Binary files /dev/null and b/resources/images/texture_displacement/map_unwrap.png differ
diff --git a/resources/images/texture_displacement/map_view.png b/resources/images/texture_displacement/map_view.png
new file mode 100644
index 0000000000..1f4714689d
Binary files /dev/null and b/resources/images/texture_displacement/map_view.png differ
diff --git a/resources/images/texture_displacement/midlevel.gif b/resources/images/texture_displacement/midlevel.gif
new file mode 100644
index 0000000000..32914d7c9d
Binary files /dev/null and b/resources/images/texture_displacement/midlevel.gif differ
diff --git a/resources/images/texture_displacement/mix_off.png b/resources/images/texture_displacement/mix_off.png
new file mode 100644
index 0000000000..d6445d6314
Binary files /dev/null and b/resources/images/texture_displacement/mix_off.png differ
diff --git a/resources/images/texture_displacement/mix_on.png b/resources/images/texture_displacement/mix_on.png
new file mode 100644
index 0000000000..716f63e0b9
Binary files /dev/null and b/resources/images/texture_displacement/mix_on.png differ
diff --git a/resources/images/texture_displacement/mixed_colors_few.png b/resources/images/texture_displacement/mixed_colors_few.png
new file mode 100644
index 0000000000..389e22f429
Binary files /dev/null and b/resources/images/texture_displacement/mixed_colors_few.png differ
diff --git a/resources/images/texture_displacement/mixed_colors_many.png b/resources/images/texture_displacement/mixed_colors_many.png
new file mode 100644
index 0000000000..90754062ce
Binary files /dev/null and b/resources/images/texture_displacement/mixed_colors_many.png differ
diff --git a/resources/images/texture_displacement/paint.gif b/resources/images/texture_displacement/paint.gif
new file mode 100644
index 0000000000..c7fedc1a3b
Binary files /dev/null and b/resources/images/texture_displacement/paint.gif differ
diff --git a/resources/images/texture_displacement/painted_only_off.png b/resources/images/texture_displacement/painted_only_off.png
new file mode 100644
index 0000000000..ac30fea631
Binary files /dev/null and b/resources/images/texture_displacement/painted_only_off.png differ
diff --git a/resources/images/texture_displacement/painted_only_on.png b/resources/images/texture_displacement/painted_only_on.png
new file mode 100644
index 0000000000..b8c01e1b13
Binary files /dev/null and b/resources/images/texture_displacement/painted_only_on.png differ
diff --git a/resources/images/texture_displacement/preserve_edges_off.png b/resources/images/texture_displacement/preserve_edges_off.png
new file mode 100644
index 0000000000..8eb41e7d8c
Binary files /dev/null and b/resources/images/texture_displacement/preserve_edges_off.png differ
diff --git a/resources/images/texture_displacement/preserve_edges_on.png b/resources/images/texture_displacement/preserve_edges_on.png
new file mode 100644
index 0000000000..a8a8f5b7d6
Binary files /dev/null and b/resources/images/texture_displacement/preserve_edges_on.png differ
diff --git a/resources/images/texture_displacement/remesh_after.png b/resources/images/texture_displacement/remesh_after.png
new file mode 100644
index 0000000000..7b46db61ed
Binary files /dev/null and b/resources/images/texture_displacement/remesh_after.png differ
diff --git a/resources/images/texture_displacement/remesh_before.png b/resources/images/texture_displacement/remesh_before.png
new file mode 100644
index 0000000000..8c6f56c3d9
Binary files /dev/null and b/resources/images/texture_displacement/remesh_before.png differ
diff --git a/resources/images/texture_displacement/rotation.gif b/resources/images/texture_displacement/rotation.gif
new file mode 100644
index 0000000000..c255e5c167
Binary files /dev/null and b/resources/images/texture_displacement/rotation.gif differ
diff --git a/resources/images/texture_displacement/select_all.png b/resources/images/texture_displacement/select_all.png
new file mode 100644
index 0000000000..c727daf7fa
Binary files /dev/null and b/resources/images/texture_displacement/select_all.png differ
diff --git a/resources/images/texture_displacement/smart_fill_angle_high.png b/resources/images/texture_displacement/smart_fill_angle_high.png
new file mode 100644
index 0000000000..584a8468ec
Binary files /dev/null and b/resources/images/texture_displacement/smart_fill_angle_high.png differ
diff --git a/resources/images/texture_displacement/smart_fill_angle_low.png b/resources/images/texture_displacement/smart_fill_angle_low.png
new file mode 100644
index 0000000000..88a6c9612f
Binary files /dev/null and b/resources/images/texture_displacement/smart_fill_angle_low.png differ
diff --git a/resources/images/texture_displacement/smoothing_off.png b/resources/images/texture_displacement/smoothing_off.png
new file mode 100644
index 0000000000..b7f66fd330
Binary files /dev/null and b/resources/images/texture_displacement/smoothing_off.png differ
diff --git a/resources/images/texture_displacement/smoothing_on.png b/resources/images/texture_displacement/smoothing_on.png
new file mode 100644
index 0000000000..18ed9e00fd
Binary files /dev/null and b/resources/images/texture_displacement/smoothing_on.png differ
diff --git a/resources/images/texture_displacement/subdivide.gif b/resources/images/texture_displacement/subdivide.gif
new file mode 100644
index 0000000000..70d8abf47a
Binary files /dev/null and b/resources/images/texture_displacement/subdivide.gif differ
diff --git a/resources/images/texture_displacement/tile_mirror.png b/resources/images/texture_displacement/tile_mirror.png
new file mode 100644
index 0000000000..0da432ff9d
Binary files /dev/null and b/resources/images/texture_displacement/tile_mirror.png differ
diff --git a/resources/images/texture_displacement/tile_off.png b/resources/images/texture_displacement/tile_off.png
new file mode 100644
index 0000000000..399e56dca2
Binary files /dev/null and b/resources/images/texture_displacement/tile_off.png differ
diff --git a/resources/images/texture_displacement/tile_on.png b/resources/images/texture_displacement/tile_on.png
new file mode 100644
index 0000000000..910fa5aa8f
Binary files /dev/null and b/resources/images/texture_displacement/tile_on.png differ
diff --git a/resources/images/texture_displacement/tile_repeat.png b/resources/images/texture_displacement/tile_repeat.png
new file mode 100644
index 0000000000..ca9793897b
Binary files /dev/null and b/resources/images/texture_displacement/tile_repeat.png differ
diff --git a/resources/images/texture_displacement/tile_size_large.png b/resources/images/texture_displacement/tile_size_large.png
new file mode 100644
index 0000000000..4bc2659244
Binary files /dev/null and b/resources/images/texture_displacement/tile_size_large.png differ
diff --git a/resources/images/texture_displacement/tile_size_small.png b/resources/images/texture_displacement/tile_size_small.png
new file mode 100644
index 0000000000..11b5bc84e7
Binary files /dev/null and b/resources/images/texture_displacement/tile_size_small.png differ
diff --git a/resources/images/texture_displacement/tool_face.gif b/resources/images/texture_displacement/tool_face.gif
new file mode 100644
index 0000000000..be616fdd52
Binary files /dev/null and b/resources/images/texture_displacement/tool_face.gif differ
diff --git a/resources/images/texture_displacement/tool_smart_fill.gif b/resources/images/texture_displacement/tool_smart_fill.gif
new file mode 100644
index 0000000000..1dc23ef8c6
Binary files /dev/null and b/resources/images/texture_displacement/tool_smart_fill.gif differ
diff --git a/resources/images/texture_displacement/view_checker.png b/resources/images/texture_displacement/view_checker.png
new file mode 100644
index 0000000000..0198b8581c
Binary files /dev/null and b/resources/images/texture_displacement/view_checker.png differ
diff --git a/resources/images/texture_displacement/view_distortion.png b/resources/images/texture_displacement/view_distortion.png
new file mode 100644
index 0000000000..d8be4b187c
Binary files /dev/null and b/resources/images/texture_displacement/view_distortion.png differ
diff --git a/resources/images/texture_displacement/view_fast.png b/resources/images/texture_displacement/view_fast.png
new file mode 100644
index 0000000000..71ed3d1953
Binary files /dev/null and b/resources/images/texture_displacement/view_fast.png differ
diff --git a/resources/images/texture_displacement/view_wireframe.png b/resources/images/texture_displacement/view_wireframe.png
new file mode 100644
index 0000000000..6585274de9
Binary files /dev/null and b/resources/images/texture_displacement/view_wireframe.png differ
diff --git a/resources/images/texture_displacement_map_model_uv.svg b/resources/images/texture_displacement_map_model_uv.svg
new file mode 100644
index 0000000000..c303d4e0ac
--- /dev/null
+++ b/resources/images/texture_displacement_map_model_uv.svg
@@ -0,0 +1 @@
+
diff --git a/resources/images/toolbar_tooltip.svg b/resources/images/toolbar_tooltip.svg
index 96c5684cb0..d35366d600 100644
--- a/resources/images/toolbar_tooltip.svg
+++ b/resources/images/toolbar_tooltip.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/resources/images/toolbar_tooltip_hover.svg b/resources/images/toolbar_tooltip_hover.svg
deleted file mode 100644
index c8d606829e..0000000000
--- a/resources/images/toolbar_tooltip_hover.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/resources/images/toolbar_video_guide.svg b/resources/images/toolbar_video_guide.svg
new file mode 100644
index 0000000000..b39e485af2
--- /dev/null
+++ b/resources/images/toolbar_video_guide.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/images/toolbar_wiki.svg b/resources/images/toolbar_wiki.svg
new file mode 100644
index 0000000000..b10b1dcb17
--- /dev/null
+++ b/resources/images/toolbar_wiki.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/info/legacy_compatible_printers.json b/resources/info/legacy_compatible_printers.json
new file mode 100644
index 0000000000..3d99065c87
--- /dev/null
+++ b/resources/info/legacy_compatible_printers.json
@@ -0,0 +1,795 @@
+{
+ "presets": {
+ "Anycubic Generic ABS": [
+ "Anycubic Kobra 3 0.4 nozzle"
+ ],
+ "Anycubic Generic TPU": [
+ "Anycubic Kobra 3 0.4 nozzle"
+ ],
+ "Bambu ABS @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu ABS @BBL X1C": [
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu ASA @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu PA6-CF @BBL H2D": [
+ "Bambu Lab H2D 0.6 nozzle",
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu PA6-CF @BBL H2DP": [
+ "Bambu Lab H2D Pro 0.6 nozzle",
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu PA6-CF @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu PA6-CF @BBL P2S": [
+ "Bambu Lab P2S 0.6 nozzle",
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu PA6-CF @BBL X1C": [
+ "Bambu Lab P1P 0.6 nozzle",
+ "Bambu Lab P1P 0.8 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle"
+ ],
+ "Bambu PA6-CF @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu PAHT-CF @BBL H2D": [
+ "Bambu Lab H2D 0.6 nozzle",
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu PAHT-CF @BBL H2DP": [
+ "Bambu Lab H2D Pro 0.6 nozzle",
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu PAHT-CF @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu PAHT-CF @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle",
+ "Bambu Lab P1P 0.8 nozzle"
+ ],
+ "Bambu PAHT-CF @BBL P2S": [
+ "Bambu Lab P2S 0.6 nozzle",
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu PAHT-CF @BBL X1C": [
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle"
+ ],
+ "Bambu PAHT-CF @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu PC @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PETG @0.2 nozzle": [
+ "Qidi Q1 Pro 0.2 nozzle"
+ ],
+ "Bambu PETG Basic @BBL H2D 0.6 nozzle": [
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu PETG Basic @BBL H2DP 0.6 nozzle": [
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu PETG Basic @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu PETG Basic @BBL P2S 0.6 nozzle": [
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu PETG Basic @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu PETG HF @BBL P2S 0.6 nozzle": [
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu PETG HF @BBL X1C": [
+ "Bambu Lab P1P 0.4 nozzle",
+ "Bambu Lab P1S 0.4 nozzle"
+ ],
+ "Bambu PETG HF @BBL X1C 0.8 nozzle": [
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PETG HF @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu PETG Translucent @BBL H2D 0.6 nozzle": [
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu PETG Translucent @BBL H2DP 0.6 nozzle": [
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu PETG Translucent @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu PETG Translucent @BBL P2S 0.6 nozzle": [
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu PETG Translucent @BBL X1C 0.8 nozzle": [
+ "Bambu Lab P1P 0.6 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PETG-CF @BBL H2D 0.6 nozzle": [
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu PETG-CF @BBL H2DP 0.6 nozzle": [
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu PETG-CF @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu PETG-CF @BBL P2S 0.6 nozzle": [
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu PLA Basic @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PLA Basic @BBL X1C": [
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA Basic @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu PLA Dynamic @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PLA Dynamic @BBL X1C": [
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA Galaxy @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PLA Galaxy @BBL X1C": [
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA Glow @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PLA Glow @BBL X1C": [
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA Lite @BBL H2D": [
+ "Bambu Lab H2D 0.6 nozzle"
+ ],
+ "Bambu PLA Lite @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu PLA Lite @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PLA Lite @BBL X1C": [
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA Lite @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu PLA Marble @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle",
+ "Bambu Lab P1P 0.8 nozzle"
+ ],
+ "Bambu PLA Marble @BBL X1C": [
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA Matte @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PLA Matte @BBL X1C": [
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA Matte @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu PLA Metal @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PLA Metal @BBL X1C": [
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA Silk+ @BBL H2D": [
+ "Bambu Lab H2D 0.6 nozzle",
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu PLA Silk+ @BBL H2DP": [
+ "Bambu Lab H2D Pro 0.6 nozzle",
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu PLA Silk+ @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu PLA Silk+ @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PLA Silk+ @BBL X1C": [
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA Silk+ @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu PLA Sparkle @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PLA Sparkle @BBL X1C": [
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA Tough+ @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PLA Tough+ @BBL X1C": [
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA Tough+ @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu PLA Translucent @BBL H2D 0.8 nozzle": [
+ "Bambu Lab H2D 0.6 nozzle"
+ ],
+ "Bambu PLA Translucent @BBL H2DP 0.8 nozzle": [
+ "Bambu Lab H2D Pro 0.6 nozzle"
+ ],
+ "Bambu PLA Translucent @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu PLA Wood @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu PLA Wood @BBL X1C": [
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu PLA-CF @BBL H2D 0.6 nozzle": [
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu PLA-CF @BBL H2DP 0.6 nozzle": [
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu PLA-CF @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu PLA-CF @BBL P2S 0.6 nozzle": [
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu PLA-CF @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu PPA-CF @BBL X1C": [
+ "Bambu Lab P1P 0.6 nozzle",
+ "Bambu Lab P1P 0.8 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab P1S 0.8 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.8 nozzle"
+ ],
+ "Bambu PVA @BBL H2D": [
+ "Bambu Lab H2D 0.6 nozzle",
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu PVA @BBL H2DP": [
+ "Bambu Lab H2D Pro 0.6 nozzle",
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu PVA @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu PVA @BBL P2S": [
+ "Bambu Lab P2S 0.6 nozzle",
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu PVA @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu Support For PLA @BBL H2D": [
+ "Bambu Lab H2D 0.6 nozzle",
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu Support For PLA @BBL H2DP": [
+ "Bambu Lab H2D Pro 0.6 nozzle",
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu Support For PLA @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu Support For PLA @BBL P2S": [
+ "Bambu Lab P2S 0.6 nozzle",
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu Support For PLA @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu Support For PLA/PETG @BBL H2D": [
+ "Bambu Lab H2D 0.6 nozzle",
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu Support For PLA/PETG @BBL H2DP": [
+ "Bambu Lab H2D Pro 0.6 nozzle",
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu Support For PLA/PETG @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu Support For PLA/PETG @BBL P2S": [
+ "Bambu Lab P2S 0.6 nozzle",
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu Support For PLA/PETG @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu Support for ABS @BBL H2D": [
+ "Bambu Lab H2D 0.6 nozzle",
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu Support for ABS @BBL H2DP": [
+ "Bambu Lab H2D Pro 0.6 nozzle",
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu Support for ABS @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu Support for ABS @BBL P2S": [
+ "Bambu Lab P2S 0.6 nozzle",
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu Support for ABS @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu TPU 90A @BBL H2D": [
+ "Bambu Lab H2D 0.6 nozzle",
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu TPU 90A @BBL H2DP": [
+ "Bambu Lab H2D Pro 0.6 nozzle",
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu TPU 95A HF @BBL H2D": [
+ "Bambu Lab H2D 0.4 nozzle",
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu TPU 95A HF @BBL H2DP": [
+ "Bambu Lab H2D Pro 0.4 nozzle",
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu TPU 95A HF @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu TPU 95A HF @BBL P2S": [
+ "Bambu Lab P2S 0.6 nozzle",
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu TPU 95A HF @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Bambu TPU for AMS @BBL H2D": [
+ "Bambu Lab H2D 0.6 nozzle",
+ "Bambu Lab H2D 0.8 nozzle"
+ ],
+ "Bambu TPU for AMS @BBL H2DP": [
+ "Bambu Lab H2D Pro 0.6 nozzle",
+ "Bambu Lab H2D Pro 0.8 nozzle"
+ ],
+ "Bambu TPU for AMS @BBL H2S": [
+ "Bambu Lab H2S 0.6 nozzle",
+ "Bambu Lab H2S 0.8 nozzle"
+ ],
+ "Bambu TPU for AMS @BBL P1P": [
+ "Bambu Lab P1P 0.6 nozzle"
+ ],
+ "Bambu TPU for AMS @BBL P2S": [
+ "Bambu Lab P2S 0.6 nozzle",
+ "Bambu Lab P2S 0.8 nozzle"
+ ],
+ "Bambu TPU for AMS @BBL X1C": [
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 Carbon 0.6 nozzle"
+ ],
+ "Bambu TPU for AMS @BBL X2D": [
+ "Bambu Lab X2D 0.8 nozzle"
+ ],
+ "Blocks Generic ABS": [
+ "BLOCKS RF50 0.4 nozzle",
+ "BLOCKS RF50 0.6 nozzle",
+ "BLOCKS RF50 0.8 nozzle"
+ ],
+ "Blocks Generic ASA": [
+ "BLOCKS RF50 0.4 nozzle",
+ "BLOCKS RF50 0.6 nozzle",
+ "BLOCKS RF50 0.8 nozzle"
+ ],
+ "Blocks Generic ASA-CF": [
+ "BLOCKS RF50 0.4 nozzle",
+ "BLOCKS RF50 0.6 nozzle",
+ "BLOCKS RF50 0.8 nozzle"
+ ],
+ "Blocks Generic PA": [
+ "BLOCKS RF50 0.4 nozzle",
+ "BLOCKS RF50 0.6 nozzle",
+ "BLOCKS RF50 0.8 nozzle"
+ ],
+ "Blocks Generic PA-CF": [
+ "BLOCKS RF50 0.4 nozzle",
+ "BLOCKS RF50 0.6 nozzle",
+ "BLOCKS RF50 0.8 nozzle"
+ ],
+ "Blocks Generic PC": [
+ "BLOCKS RF50 0.4 nozzle",
+ "BLOCKS RF50 0.6 nozzle",
+ "BLOCKS RF50 0.8 nozzle"
+ ],
+ "Blocks Generic PETG": [
+ "BLOCKS RD50 V2 0.4 nozzle",
+ "BLOCKS RD50 V2 0.6 nozzle",
+ "BLOCKS RD50 V2 0.8 nozzle",
+ "BLOCKS RF50 0.4 nozzle",
+ "BLOCKS RF50 0.6 nozzle",
+ "BLOCKS RF50 0.8 nozzle"
+ ],
+ "Blocks Generic PLA": [
+ "BLOCKS RD50 V2 0.4 nozzle",
+ "BLOCKS RD50 V2 0.6 nozzle",
+ "BLOCKS RD50 V2 0.8 nozzle",
+ "BLOCKS RF50 0.4 nozzle",
+ "BLOCKS RF50 0.6 nozzle",
+ "BLOCKS RF50 0.8 nozzle"
+ ],
+ "Blocks Generic PLA-CF": [
+ "BLOCKS RF50 0.4 nozzle",
+ "BLOCKS RF50 0.6 nozzle",
+ "BLOCKS RF50 0.8 nozzle"
+ ],
+ "Blocks Generic PVA": [
+ "BLOCKS RF50 0.4 nozzle",
+ "BLOCKS RF50 0.6 nozzle",
+ "BLOCKS RF50 0.8 nozzle"
+ ],
+ "Blocks Generic TPU": [
+ "BLOCKS RD50 V2 0.4 nozzle",
+ "BLOCKS RD50 V2 0.6 nozzle",
+ "BLOCKS RD50 V2 0.8 nozzle",
+ "BLOCKS RF50 0.4 nozzle",
+ "BLOCKS RF50 0.6 nozzle",
+ "BLOCKS RF50 0.8 nozzle"
+ ],
+ "Creality Generic ABS": [
+ "Creality CR-10 SE 0.2 nozzle",
+ "Creality CR-10 SE 0.4 nozzle",
+ "Creality CR-10 SE 0.6 nozzle",
+ "Creality CR-10 SE 0.8 nozzle",
+ "Creality CR-6 SE 0.2 nozzle",
+ "Creality CR-6 SE 0.4 nozzle",
+ "Creality CR-6 SE 0.6 nozzle",
+ "Creality CR-6 SE 0.8 nozzle",
+ "Creality CR-M4 0.4 nozzle",
+ "Creality Ender-3 V2 0.4 nozzle"
+ ],
+ "Creality Generic ABS @Ender-3V3-all": [
+ "Creality Ender-3 V3 Plus 0.4 nozzle",
+ "Creality Ender-3 V3 Plus 0.6 nozzle"
+ ],
+ "Creality Generic ABS @Hi-all": [
+ "Creality Hi 0.4 nozzle"
+ ],
+ "Creality Generic ABS @K1-all": [
+ "Creality K1 SE 0.4 nozzle",
+ "Creality K1C 0.4 nozzle"
+ ],
+ "Creality Generic ABS @K2-all": [
+ "Creality K2 0.4 nozzle",
+ "Creality K2 Plus 0.4 nozzle",
+ "Creality K2 Plus 0.6 nozzle",
+ "Creality K2 Plus 0.8 nozzle",
+ "Creality K2 Pro 0.4 nozzle"
+ ],
+ "Creality Generic ASA @Ender-3V3-all": [
+ "Creality Ender-3 V3 Plus 0.4 nozzle",
+ "Creality Ender-3 V3 Plus 0.6 nozzle"
+ ],
+ "Creality Generic ASA @K1-all": [
+ "Creality K1 SE 0.4 nozzle",
+ "Creality K1C 0.4 nozzle"
+ ],
+ "Creality Generic ASA @K2-all": [
+ "Creality K2 0.4 nozzle",
+ "Creality K2 Plus 0.4 nozzle",
+ "Creality K2 Pro 0.4 nozzle"
+ ],
+ "Creality Generic PA-CF @Ender-3V3-all": [
+ "Creality Ender-3 V3 Plus 0.4 nozzle",
+ "Creality Ender-3 V3 Plus 0.6 nozzle"
+ ],
+ "Creality Generic PA-CF @K1-all": [
+ "Creality K1C 0.4 nozzle"
+ ],
+ "Creality Generic PA-CF @K2-all": [
+ "Creality K2 Plus 0.4 nozzle",
+ "Creality K2 Plus 0.6 nozzle",
+ "Creality K2 Plus 0.8 nozzle"
+ ],
+ "Creality Generic PC @K1-all": [
+ "Creality K1C 0.4 nozzle"
+ ],
+ "Creality Generic PETG": [
+ "Creality CR-6 SE 0.2 nozzle",
+ "Creality CR-6 SE 0.4 nozzle",
+ "Creality CR-6 SE 0.6 nozzle",
+ "Creality CR-6 SE 0.8 nozzle",
+ "Creality CR-M4 0.4 nozzle"
+ ],
+ "Creality Generic PETG @Ender-3V3-all": [
+ "Creality Ender-3 V3 0.4 nozzle",
+ "Creality Ender-3 V3 0.6 nozzle",
+ "Creality Ender-3 V3 Plus 0.4 nozzle",
+ "Creality Ender-3 V3 Plus 0.6 nozzle",
+ "Creality Ender-3 V3 SE 0.2 nozzle",
+ "Creality Ender-3 V3 SE 0.4 nozzle",
+ "Creality Ender-3 V3 SE 0.6 nozzle",
+ "Creality Ender-3 V3 SE 0.8 nozzle"
+ ],
+ "Creality Generic PETG @Hi-all": [
+ "Creality Hi 0.4 nozzle"
+ ],
+ "Creality Generic PETG @K1-all": [
+ "Creality K1 SE 0.4 nozzle",
+ "Creality K1C 0.4 nozzle"
+ ],
+ "Creality Generic PETG @K2-all": [
+ "Creality K2 0.4 nozzle",
+ "Creality K2 Plus 0.4 nozzle",
+ "Creality K2 Plus 0.6 nozzle",
+ "Creality K2 Plus 0.8 nozzle",
+ "Creality K2 Pro 0.4 nozzle"
+ ],
+ "Creality Generic PLA": [
+ "Creality CR-10 SE 0.2 nozzle",
+ "Creality CR-10 SE 0.4 nozzle",
+ "Creality CR-10 SE 0.6 nozzle",
+ "Creality CR-10 SE 0.8 nozzle",
+ "Creality CR-6 SE 0.2 nozzle",
+ "Creality CR-6 SE 0.4 nozzle",
+ "Creality CR-6 SE 0.6 nozzle",
+ "Creality CR-6 SE 0.8 nozzle",
+ "Creality CR-M4 0.4 nozzle"
+ ],
+ "Creality Generic PLA @Ender-3V3-all": [
+ "Creality Ender-3 V3 0.4 nozzle",
+ "Creality Ender-3 V3 0.6 nozzle",
+ "Creality Ender-3 V3 Plus 0.4 nozzle",
+ "Creality Ender-3 V3 Plus 0.6 nozzle"
+ ],
+ "Creality Generic PLA @K1-all": [
+ "Creality K1 SE 0.4 nozzle",
+ "Creality K1C 0.4 nozzle"
+ ],
+ "Creality Generic PLA @K2-all": [
+ "Creality K2 0.4 nozzle",
+ "Creality K2 Plus 0.4 nozzle",
+ "Creality K2 Plus 0.6 nozzle",
+ "Creality K2 Plus 0.8 nozzle",
+ "Creality K2 Pro 0.4 nozzle"
+ ],
+ "Creality Generic PLA-CF @K1-all": [
+ "Creality K1 SE 0.4 nozzle",
+ "Creality K1C 0.4 nozzle"
+ ],
+ "Creality Generic PLA-CF @K2-all": [
+ "Creality K2 0.4 nozzle",
+ "Creality K2 Plus 0.4 nozzle",
+ "Creality K2 Pro 0.4 nozzle"
+ ],
+ "Creality Generic TPU": [
+ "Creality CR-10 SE 0.2 nozzle",
+ "Creality CR-10 SE 0.4 nozzle",
+ "Creality CR-10 SE 0.6 nozzle",
+ "Creality CR-10 SE 0.8 nozzle"
+ ],
+ "Creality Generic TPU @Ender-3V3-all": [
+ "Creality Ender-3 V3 0.4 nozzle",
+ "Creality Ender-3 V3 0.6 nozzle",
+ "Creality Ender-3 V3 Plus 0.4 nozzle",
+ "Creality Ender-3 V3 Plus 0.6 nozzle",
+ "Creality Ender-3 V3 SE 0.2 nozzle",
+ "Creality Ender-3 V3 SE 0.4 nozzle",
+ "Creality Ender-3 V3 SE 0.6 nozzle",
+ "Creality Ender-3 V3 SE 0.8 nozzle"
+ ],
+ "Creality Generic TPU @K1-all": [
+ "Creality K1 SE 0.4 nozzle",
+ "Creality K1C 0.4 nozzle"
+ ],
+ "Creality Generic TPU @K2-all": [
+ "Creality K2 0.4 nozzle",
+ "Creality K2 Plus 0.4 nozzle",
+ "Creality K2 Pro 0.4 nozzle"
+ ],
+ "Cubicon ABS @base": [
+ "Cubicon xCeler-Plus 0.4 nozzle"
+ ],
+ "Cubicon ABS-A100 @base": [
+ "Cubicon xCeler-Plus 0.4 nozzle"
+ ],
+ "Cubicon ABSk @base": [
+ "Cubicon xCeler-Plus 0.4 nozzle"
+ ],
+ "Cubicon PA-CF @base": [
+ "Cubicon xCeler-Plus 0.4 nozzle"
+ ],
+ "Cubicon PC @base": [
+ "Cubicon xCeler-Plus 0.4 nozzle"
+ ],
+ "Cubicon PETG @base": [
+ "Cubicon xCeler-Plus 0.4 nozzle"
+ ],
+ "Cubicon PLA @base": [
+ "Cubicon xCeler-Plus 0.4 nozzle"
+ ],
+ "Cubicon PLA+ @base": [
+ "Cubicon xCeler-Plus 0.4 nozzle"
+ ],
+ "Cubicon PLAi21 @base": [
+ "Cubicon xCeler-Plus 0.4 nozzle"
+ ],
+ "Flashforge Generic ABS @G3U": [
+ "Flashforge Guider 3 Ultra 0.6 Nozzle"
+ ],
+ "Flashforge Generic ASA @G3U": [
+ "Flashforge Guider 3 Ultra 0.6 Nozzle"
+ ],
+ "Flashforge Generic HIPS": [
+ "Flashforge Guider 3 Ultra 0.6 Nozzle"
+ ],
+ "Flashforge Generic PETG @G3U": [
+ "Flashforge Guider 3 Ultra 0.6 Nozzle",
+ "Flashforge Guider 3 Ultra 0.8 Nozzle"
+ ],
+ "Flashforge Generic PETG-CF @G3U": [
+ "Flashforge Guider 3 Ultra 0.6 Nozzle",
+ "Flashforge Guider 3 Ultra 0.8 Nozzle"
+ ],
+ "Flashforge Generic PLA @G3U": [
+ "Flashforge Guider 3 Ultra 0.6 Nozzle",
+ "Flashforge Guider 3 Ultra 0.8 Nozzle"
+ ],
+ "Flashforge Generic PLA-CF @G3U": [
+ "Flashforge Guider 3 Ultra 0.6 Nozzle",
+ "Flashforge Guider 3 Ultra 0.8 Nozzle"
+ ],
+ "Flashforge HS PLA": [
+ "Flashforge AD5X 0.4 nozzle",
+ "Flashforge AD5X 0.6 nozzle",
+ "Flashforge AD5X 0.8 nozzle"
+ ],
+ "Flashforge PETG-CF": [
+ "Flashforge AD5X 0.4 nozzle",
+ "Flashforge AD5X 0.6 nozzle",
+ "Flashforge AD5X 0.8 nozzle"
+ ],
+ "Flashforge PLA-CF": [
+ "Flashforge AD5X 0.4 nozzle",
+ "Flashforge AD5X 0.6 nozzle",
+ "Flashforge AD5X 0.8 nozzle"
+ ],
+ "Flashforge TPU 95A": [
+ "Flashforge AD5X 0.4 nozzle",
+ "Flashforge AD5X 0.6 nozzle",
+ "Flashforge AD5X 0.8 nozzle"
+ ],
+ "FusRock Generic PAHT-CF": [
+ "Flashforge Guider 3 Ultra 0.6 Nozzle"
+ ],
+ "FusRock Generic PET-CF": [
+ "Flashforge Guider 3 Ultra 0.6 Nozzle"
+ ],
+ "Generic PETG HF @BBL X1C": [
+ "Bambu Lab P1S 0.4 nozzle",
+ "Bambu Lab P1S 0.6 nozzle",
+ "Bambu Lab X1 0.4 nozzle",
+ "Bambu Lab X1 0.6 nozzle",
+ "Bambu Lab X1 0.8 nozzle"
+ ],
+ "Generic PLA @Hi-all": [
+ "Creality Hi 0.4 nozzle",
+ "Creality Hi 0.6 nozzle"
+ ],
+ "HATCHBOX PETG @0.2 nozzle": [
+ "Qidi Q1 Pro 0.2 nozzle"
+ ],
+ "Prusa Generic PA": [
+ "Prusa MINIIS 0.25 nozzle",
+ "Prusa MINIIS 0.4 nozzle",
+ "Prusa MINIIS 0.6 nozzle",
+ "Prusa MINIIS 0.8 nozzle"
+ ],
+ "Prusa Generic PA-CF": [
+ "Prusa MINIIS 0.25 nozzle",
+ "Prusa MINIIS 0.4 nozzle",
+ "Prusa MINIIS 0.6 nozzle",
+ "Prusa MINIIS 0.8 nozzle"
+ ],
+ "Prusa Generic PLA-CF": [
+ "Prusa MINIIS 0.25 nozzle",
+ "Prusa MINIIS 0.4 nozzle",
+ "Prusa MINIIS 0.6 nozzle",
+ "Prusa MINIIS 0.8 nozzle"
+ ],
+ "QIDI PETG Basic @0.2 nozzle": [
+ "Qidi Q1 Pro 0.2 nozzle"
+ ],
+ "QIDI PETG Rapido @0.2 nozzle": [
+ "Qidi Q1 Pro 0.2 nozzle"
+ ],
+ "QIDI PETG Translucent @0.2 nozzle": [
+ "Qidi Q1 Pro 0.2 nozzle"
+ ],
+ "Sovol Zero PETG HS Nozzle": [
+ "Sovol Zero 0.4 nozzle"
+ ],
+ "Sovol Zero PLA Basic HS Nozzle": [
+ "Sovol Zero 0.4 nozzle"
+ ],
+ "Sovol Zero PLA Silk HS Nozzle": [
+ "Sovol Zero 0.4 nozzle"
+ ],
+ "re3D Greengate rPETG": [
+ "re3D GigabotX 2 1.75 nozzle",
+ "re3D GigabotX 2 XLT 1.75 nozzle",
+ "re3D TerabotX 2 1.75 nozzle"
+ ],
+ "re3D PC": [
+ "re3D Gigabot 4 0.8 nozzle",
+ "re3D Gigabot 4 XLT 0.8 nozzle",
+ "re3D Terabot 4 0.8 nozzle"
+ ],
+ "re3D PETG": [
+ "re3D Gigabot 4 0.8 nozzle",
+ "re3D Gigabot 4 XLT 0.8 nozzle",
+ "re3D Terabot 4 0.8 nozzle"
+ ],
+ "re3D PLA": [
+ "re3D Gigabot 4 0.8 nozzle",
+ "re3D Gigabot 4 XLT 0.8 nozzle",
+ "re3D Terabot 4 0.8 nozzle"
+ ],
+ "re3D rPP": [
+ "re3D GigabotX 2 1.75 nozzle",
+ "re3D GigabotX 2 XLT 1.75 nozzle",
+ "re3D TerabotX 2 1.75 nozzle"
+ ]
+ }
+}
diff --git a/resources/profiles/Anker.json b/resources/profiles/Anker.json
index 6ff3e6d959..b6d2ceb80d 100644
--- a/resources/profiles/Anker.json
+++ b/resources/profiles/Anker.json
@@ -1,6 +1,6 @@
{
"name": "Anker",
- "version": "02.04.00.05",
+ "version": "02.04.00.06",
"force_update": "0",
"description": "Anker configurations",
"machine_model_list": [
@@ -304,6 +304,26 @@
"name": "Generic PLA Silk @Anker 0.25 nozzle",
"sub_path": "filament/Generic PLA Silk @Anker 0.25 nozzle.json"
},
+ {
+ "name": "AnkerMake PLA+ Basic @Anker base",
+ "sub_path": "filament/AnkerMake PLA+ Basic @Anker base.json"
+ },
+ {
+ "name": "AnkerMake PLA+ Glitter @Anker base",
+ "sub_path": "filament/AnkerMake PLA+ Glitter @Anker base.json"
+ },
+ {
+ "name": "AnkerMake PLA+ Matte @Anker base",
+ "sub_path": "filament/AnkerMake PLA+ Matte @Anker base.json"
+ },
+ {
+ "name": "AnkerMake PLA+ Metallic @Anker base",
+ "sub_path": "filament/AnkerMake PLA+ Metallic @Anker base.json"
+ },
+ {
+ "name": "AnkerMake PLA+ Silk @Anker base",
+ "sub_path": "filament/AnkerMake PLA+ Silk @Anker base.json"
+ },
{
"name": "Generic PLA+ @Anker",
"sub_path": "filament/Generic PLA+ @Anker.json"
@@ -327,6 +347,26 @@
{
"name": "Generic TPU @Anker",
"sub_path": "filament/Generic TPU @Anker.json"
+ },
+ {
+ "name": "AnkerMake PLA+ Basic @Anker",
+ "sub_path": "filament/AnkerMake PLA+ Basic @Anker.json"
+ },
+ {
+ "name": "AnkerMake PLA+ Glitter @Anker",
+ "sub_path": "filament/AnkerMake PLA+ Glitter @Anker.json"
+ },
+ {
+ "name": "AnkerMake PLA+ Matte @Anker",
+ "sub_path": "filament/AnkerMake PLA+ Matte @Anker.json"
+ },
+ {
+ "name": "AnkerMake PLA+ Metallic @Anker",
+ "sub_path": "filament/AnkerMake PLA+ Metallic @Anker.json"
+ },
+ {
+ "name": "AnkerMake PLA+ Silk @Anker",
+ "sub_path": "filament/AnkerMake PLA+ Silk @Anker.json"
}
],
"machine_list": [
diff --git a/resources/profiles/Anker/filament/AnkerMake PLA+ Basic @Anker base.json b/resources/profiles/Anker/filament/AnkerMake PLA+ Basic @Anker base.json
new file mode 100644
index 0000000000..fea2150ee1
--- /dev/null
+++ b/resources/profiles/Anker/filament/AnkerMake PLA+ Basic @Anker base.json
@@ -0,0 +1,50 @@
+{
+ "type": "filament",
+ "name": "AnkerMake PLA+ Basic @Anker base",
+ "inherits": "Generic PLA+ @Anker base",
+ "from": "system",
+ "filament_id": "OFUuZlQL",
+ "instantiation": "false",
+ "filament_vendor": [
+ "AnkerMake"
+ ],
+ "nozzle_temperature": [
+ "200"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "230"
+ ],
+ "hot_plate_temp": [
+ "65"
+ ],
+ "textured_plate_temp": [
+ "65"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "65"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "65"
+ ],
+ "filament_flow_ratio": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "60"
+ ],
+ "slow_down_layer_time": [
+ "8"
+ ],
+ "slow_down_min_speed": [
+ "30"
+ ],
+ "default_filament_colour": [
+ "#FFFFFF"
+ ],
+ "filament_max_volumetric_speed": [
+ "22"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Anker/filament/AnkerMake PLA+ Basic @Anker.json b/resources/profiles/Anker/filament/AnkerMake PLA+ Basic @Anker.json
new file mode 100644
index 0000000000..24f908cb40
--- /dev/null
+++ b/resources/profiles/Anker/filament/AnkerMake PLA+ Basic @Anker.json
@@ -0,0 +1,16 @@
+{
+ "type": "filament",
+ "name": "AnkerMake PLA+ Basic @Anker",
+ "inherits": "AnkerMake PLA+ Basic @Anker base",
+ "from": "system",
+ "setting_id": "EfM5rmn4w6pMBajC",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Anker M5 0.4 nozzle",
+ "Anker M5 0.6 nozzle",
+ "Anker M5 All-Metal 0.4 nozzle",
+ "Anker M5 All-Metal 0.6 nozzle",
+ "Anker M5C 0.4 nozzle",
+ "Anker M5C 0.6 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Anker/filament/AnkerMake PLA+ Glitter @Anker base.json b/resources/profiles/Anker/filament/AnkerMake PLA+ Glitter @Anker base.json
new file mode 100644
index 0000000000..1429181c80
--- /dev/null
+++ b/resources/profiles/Anker/filament/AnkerMake PLA+ Glitter @Anker base.json
@@ -0,0 +1,50 @@
+{
+ "type": "filament",
+ "name": "AnkerMake PLA+ Glitter @Anker base",
+ "inherits": "Generic PLA+ @Anker base",
+ "from": "system",
+ "filament_id": "OFxCURdg",
+ "instantiation": "false",
+ "filament_vendor": [
+ "AnkerMake"
+ ],
+ "nozzle_temperature": [
+ "200"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "230"
+ ],
+ "hot_plate_temp": [
+ "65"
+ ],
+ "textured_plate_temp": [
+ "65"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "65"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "65"
+ ],
+ "filament_flow_ratio": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "60"
+ ],
+ "slow_down_layer_time": [
+ "6"
+ ],
+ "slow_down_min_speed": [
+ "30"
+ ],
+ "default_filament_colour": [
+ "#00AD66"
+ ],
+ "filament_max_volumetric_speed": [
+ "22"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Anker/filament/AnkerMake PLA+ Glitter @Anker.json b/resources/profiles/Anker/filament/AnkerMake PLA+ Glitter @Anker.json
new file mode 100644
index 0000000000..1950c7db06
--- /dev/null
+++ b/resources/profiles/Anker/filament/AnkerMake PLA+ Glitter @Anker.json
@@ -0,0 +1,16 @@
+{
+ "type": "filament",
+ "name": "AnkerMake PLA+ Glitter @Anker",
+ "inherits": "AnkerMake PLA+ Glitter @Anker base",
+ "from": "system",
+ "setting_id": "blGHp0htgHEj7khE",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Anker M5 0.4 nozzle",
+ "Anker M5 0.6 nozzle",
+ "Anker M5 All-Metal 0.4 nozzle",
+ "Anker M5 All-Metal 0.6 nozzle",
+ "Anker M5C 0.4 nozzle",
+ "Anker M5C 0.6 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Anker/filament/AnkerMake PLA+ Matte @Anker base.json b/resources/profiles/Anker/filament/AnkerMake PLA+ Matte @Anker base.json
new file mode 100644
index 0000000000..eca1721ff3
--- /dev/null
+++ b/resources/profiles/Anker/filament/AnkerMake PLA+ Matte @Anker base.json
@@ -0,0 +1,50 @@
+{
+ "type": "filament",
+ "name": "AnkerMake PLA+ Matte @Anker base",
+ "inherits": "Generic PLA+ @Anker base",
+ "from": "system",
+ "filament_id": "OFKDOyNK",
+ "instantiation": "false",
+ "filament_vendor": [
+ "AnkerMake"
+ ],
+ "nozzle_temperature": [
+ "210"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "230"
+ ],
+ "hot_plate_temp": [
+ "65"
+ ],
+ "textured_plate_temp": [
+ "65"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "65"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "65"
+ ],
+ "filament_flow_ratio": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "60"
+ ],
+ "slow_down_layer_time": [
+ "6"
+ ],
+ "slow_down_min_speed": [
+ "30"
+ ],
+ "default_filament_colour": [
+ "#FFFFFF"
+ ],
+ "filament_max_volumetric_speed": [
+ "22"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Anker/filament/AnkerMake PLA+ Matte @Anker.json b/resources/profiles/Anker/filament/AnkerMake PLA+ Matte @Anker.json
new file mode 100644
index 0000000000..5d5703c93e
--- /dev/null
+++ b/resources/profiles/Anker/filament/AnkerMake PLA+ Matte @Anker.json
@@ -0,0 +1,13 @@
+{
+ "type": "filament",
+ "name": "AnkerMake PLA+ Matte @Anker",
+ "inherits": "AnkerMake PLA+ Matte @Anker base",
+ "from": "system",
+ "setting_id": "tPgwC1eEXyWPOn9S",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Anker M5 0.4 nozzle",
+ "Anker M5 All-Metal 0.4 nozzle",
+ "Anker M5C 0.4 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Anker/filament/AnkerMake PLA+ Metallic @Anker base.json b/resources/profiles/Anker/filament/AnkerMake PLA+ Metallic @Anker base.json
new file mode 100644
index 0000000000..5935081db7
--- /dev/null
+++ b/resources/profiles/Anker/filament/AnkerMake PLA+ Metallic @Anker base.json
@@ -0,0 +1,56 @@
+{
+ "type": "filament",
+ "name": "AnkerMake PLA+ Metallic @Anker base",
+ "inherits": "Generic PLA+ @Anker base",
+ "from": "system",
+ "filament_id": "OFBfbmtb",
+ "instantiation": "false",
+ "filament_vendor": [
+ "AnkerMake"
+ ],
+ "nozzle_temperature": [
+ "200"
+ ],
+ "textured_plate_temp": [
+ "60"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "60"
+ ],
+ "filament_flow_ratio": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "60"
+ ],
+ "slow_down_layer_time": [
+ "6"
+ ],
+ "slow_down_min_speed": [
+ "30"
+ ],
+ "overhang_fan_speed": [
+ "50"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "0"
+ ],
+ "filament_retraction_length": [
+ "1"
+ ],
+ "filament_retraction_speed": [
+ "50"
+ ],
+ "filament_deretraction_speed": [
+ "50"
+ ],
+ "default_filament_colour": [
+ "#ACAC8A"
+ ],
+ "filament_max_volumetric_speed": [
+ "20"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Anker/filament/AnkerMake PLA+ Metallic @Anker.json b/resources/profiles/Anker/filament/AnkerMake PLA+ Metallic @Anker.json
new file mode 100644
index 0000000000..d369f4e41d
--- /dev/null
+++ b/resources/profiles/Anker/filament/AnkerMake PLA+ Metallic @Anker.json
@@ -0,0 +1,13 @@
+{
+ "type": "filament",
+ "name": "AnkerMake PLA+ Metallic @Anker",
+ "inherits": "AnkerMake PLA+ Metallic @Anker base",
+ "from": "system",
+ "setting_id": "jlbAMNNaEacdUASZ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Anker M5 0.4 nozzle",
+ "Anker M5 All-Metal 0.4 nozzle",
+ "Anker M5C 0.4 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Anker/filament/AnkerMake PLA+ Silk @Anker base.json b/resources/profiles/Anker/filament/AnkerMake PLA+ Silk @Anker base.json
new file mode 100644
index 0000000000..20c59e9e7e
--- /dev/null
+++ b/resources/profiles/Anker/filament/AnkerMake PLA+ Silk @Anker base.json
@@ -0,0 +1,62 @@
+{
+ "type": "filament",
+ "name": "AnkerMake PLA+ Silk @Anker base",
+ "inherits": "Generic PLA+ @Anker base",
+ "from": "system",
+ "filament_id": "OFkxTGQc",
+ "instantiation": "false",
+ "filament_vendor": [
+ "AnkerMake"
+ ],
+ "nozzle_temperature": [
+ "210"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "230"
+ ],
+ "hot_plate_temp": [
+ "65"
+ ],
+ "textured_plate_temp": [
+ "65"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "65"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "65"
+ ],
+ "filament_flow_ratio": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "60"
+ ],
+ "slow_down_layer_time": [
+ "2"
+ ],
+ "slow_down_min_speed": [
+ "20"
+ ],
+ "filament_retraction_length": [
+ "0.5"
+ ],
+ "filament_retraction_speed": [
+ "20"
+ ],
+ "filament_wipe": [
+ "0"
+ ],
+ "default_filament_colour": [
+ "#99ADA3"
+ ],
+ "filament_deretraction_speed": [
+ "20"
+ ],
+ "filament_max_volumetric_speed": [
+ "13"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Anker/filament/AnkerMake PLA+ Silk @Anker.json b/resources/profiles/Anker/filament/AnkerMake PLA+ Silk @Anker.json
new file mode 100644
index 0000000000..e8379081b7
--- /dev/null
+++ b/resources/profiles/Anker/filament/AnkerMake PLA+ Silk @Anker.json
@@ -0,0 +1,15 @@
+{
+ "type": "filament",
+ "name": "AnkerMake PLA+ Silk @Anker",
+ "inherits": "AnkerMake PLA+ Silk @Anker base",
+ "from": "system",
+ "setting_id": "eVM9Ckwjl5vEvEKN",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Anker M5 0.4 nozzle",
+ "Anker M5 All-Metal 0.4 nozzle",
+ "Anker M5 All-Metal 0.6 nozzle",
+ "Anker M5C 0.4 nozzle",
+ "Anker M5C 0.6 nozzle"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Anycubic.json b/resources/profiles/Anycubic.json
index 731d2b32eb..1d8f8e70cf 100644
--- a/resources/profiles/Anycubic.json
+++ b/resources/profiles/Anycubic.json
@@ -1,6 +1,6 @@
{
"name": "Anycubic",
- "version": "02.04.00.08",
+ "version": "02.04.00.09",
"force_update": "0",
"description": "Anycubic configurations",
"machine_model_list": [
diff --git a/resources/profiles/Anycubic/machine/Anycubic Vyper 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Vyper 0.4 nozzle.json
index 03da852642..f1e81a09d0 100644
--- a/resources/profiles/Anycubic/machine/Anycubic Vyper 0.4 nozzle.json
+++ b/resources/profiles/Anycubic/machine/Anycubic Vyper 0.4 nozzle.json
@@ -110,7 +110,7 @@
"default_filament_profile": [
"Generic PLA @Anycubic"
],
- "machine_start_gcode": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG0 Z0.2 F1800 ; move nozzle to print position\nG92 E0 ; specify current extruder position as zero\nG1 Y10 X180 E50 F1200 ; extrude a line in front of the printer\nG92 E0 ; specify current extruder position as zero\nG0 Z20 F6000 ; move head up\nG1 E-7 F2400 ; retract\nG04 S2 ; wait 2s\nG0 X0 F6000 ; wipe from oozed filament\nG1 E-1 F2400 ; undo some of the retraction to avoid oozing\nG1 F6000 ; set travel speed to move to start printing point\nM117",
+ "machine_start_gcode": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG0 Z0.2 F1800 ; move nozzle to print position\nG92 E0 ; specify current extruder position as zero\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Y10 X180 E50 F1200 ; extrude a line in front of the printer\nG92 E0 ; specify current extruder position as zero\nG0 Z20 F6000 ; move head up\nG1 E-7 F2400 ; retract\nG04 S2 ; wait 2s\nG0 X0 F6000 ; wipe from oozed filament\nG1 E-1 F2400 ; undo some of the retraction to avoid oozing\nG1 F6000 ; set travel speed to move to start printing point\nM117",
"machine_end_gcode": "G4 ; wait\nG92 E0\nG1{if max_layer_z < printable_height} Z{z_offset+min(max_layer_z+30, printable_height)}{endif} ; move print head up\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json
index 68d2028473..da56f36ccd 100644
--- a/resources/profiles/BBL.json
+++ b/resources/profiles/BBL.json
@@ -1,7 +1,7 @@
{
"name": "Bambulab",
"url": "http://www.bambulab.com/Parameters/vendor/BBL.json",
- "version": "02.08.00.12",
+ "version": "02.08.00.15",
"force_update": "0",
"description": "the initial version of BBL configurations",
"machine_model_list": [
diff --git a/resources/profiles/BBL/machine/Bambu Lab H2C 0.4 nozzle template machine_start_gcode.json b/resources/profiles/BBL/machine/Bambu Lab H2C 0.4 nozzle template machine_start_gcode.json
index 5132ccee2e..8d620f168d 100644
--- a/resources/profiles/BBL/machine/Bambu Lab H2C 0.4 nozzle template machine_start_gcode.json
+++ b/resources/profiles/BBL/machine/Bambu Lab H2C 0.4 nozzle template machine_start_gcode.json
@@ -2,5 +2,5 @@
"type": "machine",
"name": "Bambu Lab H2C 0.4 nozzle template machine_start_gcode",
"instantiation": "false",
- "machine_start_gcode": ";===== machine: H2C =========================\n;===== date: 20260608 =====================\n\n;M1002 set_flag extrude_cali_flag=1\n;M1002 set_flag g29_before_print_flag=1\n;M1002 set_flag auto_cali_toolhead_offset_flag=1\n;M1002 set_flag build_plate_detect_flag=1\n\nM993 A0 B0 C0 ; nozzle cam detection not allowed.\n\nM400\n;M73 P99\n\nM960 S10 P1 ; ext fan led\n\n;=====printer start sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A53 B9 L99 C53 D9 M99 E53 F9 N99\nM1006 A56 B9 L99 C56 D9 M99 E56 F9 N99\nM1006 A61 B9 L99 C61 D9 M99 E61 F9 N99\nM1006 A53 B9 L99 C53 D9 M99 E53 F9 N99\nM1006 A56 B9 L99 C56 D9 M99 E56 F9 N99\nM1006 A61 B18 L99 C61 D18 M99 E61 F18 N99\nM1006 W\n;=====printer start sound ===================\n\n;===== reset machine status =================\nM204 S10000\nM630 S0 P0\n\nG90\nM17 D ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM1002 set_gcode_claim_speed_level 5 ;Reset speed level\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nG29.1 Z{+0.0} ; clear z-trim value first\nM983.1 M1\nM901 D4\nM481 S0 ; turn off cutter pos comp\nG28.140 D0; reset pre-extrude z pos\n;===== reset machine status =================\n\nM620 M ;enable remap\nM620 N ;enable hotend remap\nM620 T0 ;print tmpr\nM620 T1 ;sn -> pos\nM620 T2 ;filament_id\n\n;===== start to heat heatbed & hotend==========\n\n M104 O-80 A\n M140 D[bed_temperature_initial_layer_single]\n\n;===== start to heat heatbead & hotend==========\n\n;===== avoid end stop =================\nG91\nG380 S2 Z42 F1200\nG380 S2 Z-12 F1200\nG90\n;===== avoid end stop =================\n\n;==== set airduct mode ====\n\n{if (overall_chamber_temperature >= 40)}\n\n M145 P1 ; set airduct mode to heating mode for heating\n M106 P2 S0 ; turn off auxiliary fan\n M106 P3 S0 ; turn off chamber fan\n\n{else}\n M145 P0 ; set airduct mode to cooling mode for cooling\n M106 P2 S178 ; turn on auxiliary fan for cooling\n M106 P3 S127 ; turn on chamber fan for cooling\n\n M1002 gcode_claim_action : 29\n M191 S0 ; wait for chamber temp\n M106 P2 S0 ; turn off auxiliary fan\n {if (min_vitrification_temperature <= 50)}\n {if (nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2)}\n M142 P1 R30 S35 T40 U0.3 V0.5 W0.8 O40 ; set PLA/TPU ND0.2 chamber autocooling\n {else}\n M142 P1 R30 S40 T45 U0.3 V0.5 W0.8 O45; set PLA/TPU ND0.4 chamber autocooling\n {endif}\n {else}\n {if (!is_all_bbl_filament)}\n M142 P1 R35 S40 T45 U0.3 V0.5 W0.8 O45 L1 ; set third-party PETG chamber autocooling\n {else}\n {if (nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2)}\n M142 P1 R35 S45 T50 U0.3 V0.5 W0.8 O50 L1 ; set PETG ND0.2 chamber autocooling\n {else}\n M142 P1 R35 S50 T55 U0.3 V0.5 W0.8 O55 L1 ; set PETG ND0.4 chamber autocooling\n {endif}\n {endif}\n {endif}\n{if(cooling_filter_enabled)}\nM145.2 P0 F0\n{else}\nM145.2 P0 F1\n{endif}\n{endif}\n;==== set airduct mode ====\n\n\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\n;===== first homing start =====\nM1002 gcode_claim_action : 13\n\nM640 S\nM640.1 R\nM641\nG28 X T300\nT1000\n\nG150.3\nM972 S24 P0 T2000 ; live-view camera foolproof\nM972 S46 P0 T5000 ; vortek anti-collision\nM640.1 S\nM640.4\n{if (first_non_support_filaments[0] != -1)}\nM640 S\nM640.8 T A{first_non_support_filaments[0]} H{first_non_support_hotend[0]}\nM640.7 L\nM641\n{endif}\n\n\n{if wipe_tower_center_pos_valid}\n M620.14 X[wipe_tower_center_pos_x] Y[wipe_tower_center_pos_y]\n{else}\n M620.14 X95.5 Y336\n{endif}\n\n\nG150.1 F18000 ; wipe mouth to avoid filament stick to heatbed\nG150.3 F18000\nM400 P200\n\nM1002 gcode_claim_action : 74 ; Heatbed surface foreign object detection\nM104 S0\n{if curr_bed_type==\"Textured PEI Plate\"}\nM972 S26 P0 C0\n{else}\nM972 S36 P0 C0 X1\n{endif}\nM972 S35 P0 C0\n\nM972 S41 P0 T5000 ; trash can anti-collision\n\nM1009 Q1 L1\nG91\nG380 S2 Z30 F1200 ; lower heatbed to move toolhead\nG90\nG1 X175 Y160 F30000\nG28 Z P0 T250\nM1009 Q1 L0\n\n\n;===== first homing end =====\n\n;===== detection start =====\n\nM1002 judge_flag build_plate_detect_flag\nM104 S0\nM622 S1\n ;M1002 gcode_claim_action : 11 ; Indentifying build plate type\n M972 S19 P0 C0 ; heatbed presence detection\n M972 S31 P0 T5000 ; toolhead camera dirty detection\n ;M1002 gcode_claim_action : 73 ; Build plate alignment detection\n M972 S34 P0 T5000 ; heatbed plate offset detection\nM623\n\nM1002 gcode_claim_action : 72 ; Hotend Type Detection\nT1001\nM972 S14 P0 T5000 ; nozzle type detection\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]} T{filament_map[initial_no_support_filament_id] % 2} ; rise temp in advance\n\nG151 P{filament_map[initial_no_support_filament_id] % 2} M ; plug the heat nozzle\n\n{if max_print_z >= 145}\nM1002 gcode_claim_action : 75 ; Heatbed underside foreign object detection\nG3811 Z{max_print_z} ; Detect obstacles at the bottom of the heated bed\n{endif}\n\n;===== detection end =====\n\nM400\n;M73 P99\n\n;===== prepare print temperature and material ==========\nM400\nM211 X0 Y0 Z0 ;turn off soft endstop\nM975 S1 ; turn on input shaping\n\nG29.2 S0 ; avoid invalid abl data\n\n{if ((filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PLA-CF\") || (filament_type[initial_no_support_filament_id] == \"PETG\")) && (nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2)}\nM620.10 A0 F74.8347 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\nM620.10 A1 F74.8347 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\n{else}\nM620.10 A0 F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60*0.8} H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\nM620.10 A1 F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60*0.8} H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\n{endif}\n\nM620.11 P1 I[initial_no_support_filament_id] B[initial_no_support_hotend] E0\n\n{if long_retraction_when_ec }\nM620.11 K1 I[initial_no_support_filament_id] B[initial_no_support_hotend] R{retraction_distance_when_ec} F{max((flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60), 200)}\n{else}\nM620.11 K0 I[initial_no_support_filament_id] B[initial_no_support_hotend] R0\n{endif}\n\nM628 S1\n{if filament_type[initial_no_support_filament_id] == \"TPU\"}\n M620.11 S0 L0 I[initial_no_support_filament_id] B[initial_no_support_hotend] E-{retraction_distances_when_cut[initial_no_support_filament_id]} F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60}\n{else}\n{if (filament_type[initial_no_support_filament_id] == \"PA\") || (filament_type[initial_no_support_filament_id] == \"PA-GF\")}\n M620.11 S1 L0 I[initial_no_support_filament_id] B[initial_no_support_hotend] R4 D2 E-{retraction_distances_when_cut[initial_no_support_filament_id]} F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60}\n{else}\n M620.11 S1 L0 I[initial_no_support_filament_id] B[initial_no_support_hotend] R10 D8 E-{retraction_distances_when_cut[initial_no_support_filament_id]} F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60}\n{endif}\n{endif}\nM629\n\nM620 S[initial_no_support_filament_id]A H[initial_no_support_hotend] ; switch material if AMS exist\nM1002 gcode_claim_action : 4\nM1002 set_filament_type:UNKNOWN\nM400\nT[initial_no_support_filament_id] H[initial_no_support_hotend]\nM400\nM628 S0\nM629\nM400\nM1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\nM621 S[initial_no_support_filament_id]A\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\nM400\nM106 P1 S0\n\nG91\nG1 Y-16 F60000\nG90\n\nG29.2 S1\n;===== prepare print temperature and material ==========\n\n\nM400\n;M73 P99\n\n;===== xy ofst cali start =====\n\nM1002 judge_flag auto_cali_toolhead_offset_flag\n\nM622 J2\n M1002 gcode_claim_action : 54\n M190 D[bed_temperature_initial_layer_single]\n\n M1002 gcode_claim_action : 39\n M620 D[initial_no_support_hotend]\n G383.3 U140 L{initial_no_support_filament_id}\nM623\n\nM622 J1\n M1002 gcode_claim_action : 54\n M190 D[bed_temperature_initial_layer_single]\n\n M1002 gcode_claim_action : 39\n M620 D[initial_no_support_hotend]\n G383 O2 U140 L{initial_no_support_filament_id}\nM623\n\n;===== xy ofst cali end =====\n\n;===== start to heat heatbed & hotend==========\n\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n G150.3\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n M140 S[bed_temperature_initial_layer_single]\n\n ;===== set chamber temperature ==========\n {if (overall_chamber_temperature >= 40)}\n M145 P1 ; set airduct mode to heating mode\n M141 S[overall_chamber_temperature] ; Let Chamber begin to heat\n {endif}\n ;===== set chamber temperature ==========\n\n;===== start to heat heatbead & hotend==========\n\n\n\nM400\n;M73 P99\n\n;===== auto extrude cali start =========================\nM975 S1\nM1002 judge_flag extrude_cali_flag\n\nM622 J0\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\nM623\n\nM622 J1\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M1002 gcode_claim_action : 8\n\n M109 S{nozzle_temperature[initial_no_support_filament_id]}\n\n G90\n M83\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n\n M400\n M106 P1 S255\n M400 S5\n M106 P1 S0\n G150.3\nM623\n\nM622 J2\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M1002 gcode_claim_action : 8\n\n M109 S{nozzle_temperature[initial_no_support_filament_id]}\n\n G90\n M83\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n\n M400\n M106 P1 S255\n M400 S5\n M106 P1 S0\n G150.3\nM623\n\n;===== auto extrude cali end =========================\n\n{if filament_type[initial_no_support_filament_id] == \"TPU\"}\n G150.2\n G150.1\n G150.2\n G150.1\n G150.2\n G150.1\n{else}\n G150.3\n M106 P1 S0\n M400 S2\n M109 S{nozzle_temperature[initial_no_support_filament_id]} ; wait tmpr to extrude\n M83\n {if(nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.8)}\n G1 E60 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n {else}\n G1 E45 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n {endif}\n G1 E-3 F1800\n M400 P500\n G150.2\n G150.1\n{endif}\n\nG91\nG1 Y-16 F12000 ; move away from the trash bin\nG90\n\nM400\n;M73 P99\n\n;===== wipe right nozzle start =====\n\nM1002 gcode_claim_action : 14\n G150 T{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n {if (overall_chamber_temperature >= 40)}\n G150 T{nozzle_temperature_initial_layer[initial_no_support_filament_id] - 80}\n {endif}\nM106 S255 ; turn on fan to cool the nozzle\n\n;===== wipe left nozzle end =====\n\nM400\n;M73 P99\n\nM1002 judge_flag auto_cali_toolhead_offset_flag\nM622 J0\n G91\n G1 Z5 F1200\n G90\n M1012.7\n G383.7 U140 J0\nM623\n\n{if (overall_chamber_temperature >= 40)}\n M1002 gcode_claim_action : 49\n M191 S[overall_chamber_temperature] ; wait for chamber temp\n{endif}\n\nM400\n;M73 P99\n\n;===== bed leveling ==================================\n\nM1002 judge_flag g29_before_print_flag\n\nM190 S[bed_temperature_initial_layer_single]; ensure bed temp\nM109 S140 A\nM106 S0 ; turn off fan , too noisy\n\nG91\nG1 Z10 F1200\n{if (first_non_support_filaments[0] != -1) && filament_type[initial_no_support_filament_id] != \"TPU\"}\nM640 S\nM640.7 U\nM640.7 L\nM640.2 R1\nM641\n{endif}\nG90\nG1 X175 Y160 F30000\n\nM622 J1\n M1002 gcode_claim_action : 1\n G29.20 A3\n G29 A1 O X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]} R\n M400\nM623\n\nM622 J2\n M1002 gcode_claim_action : 1\n {if has_tpu_in_first_layer}\n G29.20 A3\n G29 A1 O X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]} R\n {else}\n G29.20 A4\n G29 A2 O X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]} R\n {endif}\n M400\nM623\n\nM622 J0\n G28 R\nM623\n\n;===== bed leveling end ================================\n\nG39.1 ; cali nozzle wrapped detection pos\n\nG90\nG1 Z5 F1200\nG1 X270 Y-0.5 F60000\nG28.140 S0 ; cali pre-extrude z pos\n\n;============switch again==================\nM211 X0 Y0 Z0 ;turn off soft endstop\nG91\nG1 Z6 F1200\nG90\nM1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\nM620 S[initial_no_support_filament_id]A H[initial_no_support_hotend]\nM400\nT[initial_no_support_filament_id] H[initial_no_support_hotend]\nM400\nM628 S0\nM629\nM400\nM621 S[initial_no_support_filament_id]A\n\n;============switch again==================\n\nM400\n;M73 P99\n\nM141 S[overall_chamber_temperature]\n\n;===== mech mode sweep start =====\n M1002 gcode_claim_action : 3\n\n G90\n G1 Z5 F1200\n G1 X165 Y160 F20000\n M400 P200\n\n M970.3 Q1 A5 K0 O1\n M974 Q1 S2 P0\n\n M970.3 Q0 A5 K0 O1\n M974 Q0 S2 P0\n\n M970.2 Q2 K0 W38 Z0.01\n M974 Q2 S2 P0\n\n M975 S1\n;===== mech mode sweep end =====\n\n;===== wait temperature reaching the reference value =======\n\nM140 S[bed_temperature_initial_layer_single]\nM190 S[bed_temperature_initial_layer_single]\n\n ;========turn off light and fans =============\n M960 S1 P0 ; turn off laser\n M960 S2 P0 ; turn off laser\n M106 S0 ; turn off fan\n M106 P2 S0 ; turn off big fan\n ;==== set ext toodhead cooling fan ====\n {if (min_vitrification_temperature <= 50)}\n M106 P9 S255\n {endif}\n ;============set motor current==================\n M400 S1\n\n;===== wait temperature reaching the reference value =======\n\nM400\n;M73 P99\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n {if curr_bed_type==\"Textured PEI Plate\"}\n {if nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2}\n G29.1 Z{-0.01} ; for Textured PEI Plate\n {else}\n G29.1 Z{-0.02} ; for Textured PEI Plate\n {endif}\n {else}\n {if nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2}\n G29.1 Z{0.01}\n {endif}\n {endif}\nG150.1\n\nM975 S1 ; turn on mech mode supression\nM983.4 S1 ; turn on deformation compensation\nG29.2 S1 ; turn on pos comp\nG29.7 S1\n\nG90\nG1 Z5 F1200\nG1 Y295 F30000\nG1 Y265 F18000\n\n;===== nozzle load line ===============================\n G29.2 S1 ; ensure z comp turn on\n G90\n M83\n G1 Z5 F1200\n G1 X270 Y-0.5 F60000\n G28.14 R0\n G29.2 S0\n G91\n G1 Z0.8 F1200\n G90\n G1 X250 F60000\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n\n ========== record data ==========\n M1026\n M1012.8\n M1012.9\n G29.9\n ========== record data ==========\n\n M400 P50\n M500 D1\n M400 S3\n M109 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n M83\n{if nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.8}\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n{endif}\n{if (filament_type[initial_no_support_filament_id] == \"TPU\")}\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n{endif}\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n G1 X290 E10 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n G91\n G3 Z0.4 I1.217 J0 P1 F60000\n G90\n M83\n G29.2 S1 ; ensure z comp turn on\n;===== noozle load line end ===========================\n\nM400\n;M73 P99\n\nM993 A1 B1 C1 ; nozzle cam detection allowed.\n\n{if (filament_type[initial_no_support_filament_id] == \"TPU\")}\nM1015.3 S1;enable tpu clog detect\n{else}\nM1015.3 S0;disable tpu clog detect\n{endif}\n\n{if (filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PETG\")\n || (filament_type[initial_no_support_filament_id] == \"PLA-CF\") || (filament_type[initial_no_support_filament_id] == \"PETG-CF\")}\nM1015.4 S1 K1 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} ;enable E air printing detect\n{else}\nM1015.4 S0 K0 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} ;disable E air printing detect\n{endif}\n\nM620.6 I[initial_no_support_filament_id] H[initial_no_support_hotend] W1 ;enable ams air printing detect\nM620 O1\n\nM211 Z1\nG29.99\nM1002 gcode_claim_action : 0\nM400\n"
+ "machine_start_gcode": ";===== machine: H2C =========================\n;===== date: 20260608 =====================\n\n;M1002 set_flag extrude_cali_flag=1\n;M1002 set_flag g29_before_print_flag=1\n;M1002 set_flag auto_cali_toolhead_offset_flag=1\n;M1002 set_flag build_plate_detect_flag=1\n\nM993 A0 B0 C0 ; nozzle cam detection not allowed.\n\nM400\n;M73 P99\n\nM960 S10 P1 ; ext fan led\n\n;=====printer start sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A53 B9 L99 C53 D9 M99 E53 F9 N99\nM1006 A56 B9 L99 C56 D9 M99 E56 F9 N99\nM1006 A61 B9 L99 C61 D9 M99 E61 F9 N99\nM1006 A53 B9 L99 C53 D9 M99 E53 F9 N99\nM1006 A56 B9 L99 C56 D9 M99 E56 F9 N99\nM1006 A61 B18 L99 C61 D18 M99 E61 F18 N99\nM1006 W\n;=====printer start sound ===================\n\n;===== reset machine status =================\nM204 S10000\nM630 S0 P0\n\nG90\nM17 D ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM1002 set_gcode_claim_speed_level 5 ;Reset speed level\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nG29.1 Z{+0.0} ; clear z-trim value first\nM983.1 M1\nM901 D4\nM481 S0 ; turn off cutter pos comp\nG28.140 D0; reset pre-extrude z pos\n;===== reset machine status =================\n\nM620 M ;enable remap\nM620 N ;enable hotend remap\nM620 T0 ;print tmpr\nM620 T1 ;sn -> pos\nM620 T2 ;filament_id\n\n;===== start to heat heatbed & hotend==========\n\n M104 O-80 A\n M140 D[bed_temperature_initial_layer_single]\n\n;===== start to heat heatbead & hotend==========\n\n;===== avoid end stop =================\nG91\nG380 S2 Z42 F1200\nG380 S2 Z-12 F1200\nG90\n;===== avoid end stop =================\n\n;==== set airduct mode ====\n\n{if (overall_chamber_temperature >= 40)}\n\n M145 P1 ; set airduct mode to heating mode for heating\n M106 P2 S0 ; turn off auxiliary fan\n M106 P3 S0 ; turn off chamber fan\n\n{else}\n M145 P0 ; set airduct mode to cooling mode for cooling\n M106 P2 S178 ; turn on auxiliary fan for cooling\n M106 P3 S127 ; turn on chamber fan for cooling\n\n M1002 gcode_claim_action : 29\n M191 S0 ; wait for chamber temp\n M106 P2 S0 ; turn off auxiliary fan\n {if (min_vitrification_temperature <= 50)}\n {if (nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2)}\n M142 P1 R30 S35 T40 U0.3 V0.5 W0.8 O40 ; set PLA/TPU ND0.2 chamber autocooling\n {else}\n M142 P1 R30 S40 T45 U0.3 V0.5 W0.8 O45; set PLA/TPU ND0.4 chamber autocooling\n {endif}\n {else}\n {if (!is_all_bbl_filament)}\n M142 P1 R35 S40 T45 U0.3 V0.5 W0.8 O45 L1 ; set third-party PETG chamber autocooling\n {else}\n {if (nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2)}\n M142 P1 R35 S45 T50 U0.3 V0.5 W0.8 O50 L1 ; set PETG ND0.2 chamber autocooling\n {else}\n M142 P1 R35 S50 T55 U0.3 V0.5 W0.8 O55 L1 ; set PETG ND0.4 chamber autocooling\n {endif}\n {endif}\n {endif}\n{if(cooling_filter_enabled)}\nM145.2 P0 F0\n{else}\nM145.2 P0 F1\n{endif}\n{endif}\n;==== set airduct mode ====\n\n\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\n;===== first homing start =====\nM1002 gcode_claim_action : 13\n\nM640 S\nM640.1 R\nM641\nG28 X T300\nT1000\n\nG150.3\nM972 S24 P0 T2000 ; live-view camera foolproof\nM972 S46 P0 T5000 ; vortek anti-collision\nM640.1 S\nM640.4\n{if (first_non_support_filaments[0] != -1)}\nM640 S\nM640.8 T A{first_non_support_filaments[0]} H{first_non_support_hotend[0]}\nM640.7 L\nM641\n{endif}\n\n\n{if wipe_tower_center_pos_valid}\n M620.14 X[wipe_tower_center_pos_x] Y[wipe_tower_center_pos_y]\n{else}\n M620.14 X95.5 Y336\n{endif}\n\n\nG150.1 F18000 ; wipe mouth to avoid filament stick to heatbed\nG150.3 F18000\nM400 P200\n\nM1002 gcode_claim_action : 74 ; Heatbed surface foreign object detection\nM104 S0\n{if curr_bed_type==\"Textured PEI Plate\"}\nM972 S26 P0 C0\n{else}\nM972 S36 P0 C0 X1\n{endif}\nM972 S35 P0 C0\n\nM972 S41 P0 T5000 ; trash can anti-collision\n\nM1009 Q1 L1\nG91\nG380 S2 Z30 F1200 ; lower heatbed to move toolhead\nG90\nG1 X175 Y160 F30000\nG28 Z P0 T250\nM1009 Q1 L0\n\n\n;===== first homing end =====\n\n;===== detection start =====\n\nM1002 judge_flag build_plate_detect_flag\nM104 S0\nM622 S1\n ;M1002 gcode_claim_action : 11 ; Indentifying build plate type\n M972 S19 P0 C0 ; heatbed presence detection\n M972 S31 P0 T5000 ; toolhead camera dirty detection\n ;M1002 gcode_claim_action : 73 ; Build plate alignment detection\n M972 S34 P0 T5000 ; heatbed plate offset detection\nM623\n\nM1002 gcode_claim_action : 72 ; Hotend Type Detection\nT1001\nM972 S14 P0 T5000 ; nozzle type detection\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]} T{filament_map[initial_no_support_filament_id] % 2} ; rise temp in advance\n\nG151 P{filament_map[initial_no_support_filament_id] % 2} M ; plug the heat nozzle\n\n{if max_print_z >= 145}\nM1002 gcode_claim_action : 75 ; Heatbed underside foreign object detection\nG3811 Z{max_print_z} ; Detect obstacles at the bottom of the heated bed\n{endif}\n\n;===== detection end =====\n\nM400\n;M73 P99\n\n;===== prepare print temperature and material ==========\nM400\nM211 X0 Y0 Z0 ;turn off soft endstop\nM975 S1 ; turn on input shaping\n\nG29.2 S0 ; avoid invalid abl data\n\n{if ((filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PLA-CF\") || (filament_type[initial_no_support_filament_id] == \"PETG\")) && (nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2)}\nM620.10 A0 F74.8347 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\nM620.10 A1 F74.8347 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\n{else}\nM620.10 A0 F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60*0.8} H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\nM620.10 A1 F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60*0.8} H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\n{endif}\n\nM620.11 P1 I[initial_no_support_filament_id] B[initial_no_support_hotend] E0\n\n{if long_retraction_when_ec }\nM620.11 K1 I[initial_no_support_filament_id] B[initial_no_support_hotend] R{retraction_distance_when_ec} F{max((flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60), 200)}\n{else}\nM620.11 K0 I[initial_no_support_filament_id] B[initial_no_support_hotend] R0\n{endif}\n\nM628 S1\n{if filament_type[initial_no_support_filament_id] == \"TPU\"}\n M620.11 S0 L0 I[initial_no_support_filament_id] B[initial_no_support_hotend] E-{retraction_distances_when_cut[initial_no_support_filament_id]} F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60}\n{else}\n{if (filament_type[initial_no_support_filament_id] == \"PA\") || (filament_type[initial_no_support_filament_id] == \"PA-GF\")}\n M620.11 S1 L0 I[initial_no_support_filament_id] B[initial_no_support_hotend] R4 D2 E-{retraction_distances_when_cut[initial_no_support_filament_id]} F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60}\n{else}\n M620.11 S1 L0 I[initial_no_support_filament_id] B[initial_no_support_hotend] R10 D8 E-{retraction_distances_when_cut[initial_no_support_filament_id]} F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60}\n{endif}\n{endif}\nM629\n\nM620 S[initial_no_support_filament_id]A H[initial_no_support_hotend] ; switch material if AMS exist\nM1002 gcode_claim_action : 4\nM1002 set_filament_type:UNKNOWN\nM400\nT[initial_no_support_filament_id] H[initial_no_support_hotend]\nM400\nM628 S0\nM629\nM400\nM1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\nM621 S[initial_no_support_filament_id]A\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\nM400\nM106 P1 S0\n\nG91\nG1 Y-16 F60000\nG90\n\nG29.2 S1\n;===== prepare print temperature and material ==========\n\n\nM400\n;M73 P99\n\n;===== xy ofst cali start =====\n\nM1002 judge_flag auto_cali_toolhead_offset_flag\n\nM622 J2\n M1002 gcode_claim_action : 54\n M190 D[bed_temperature_initial_layer_single]\n\n M1002 gcode_claim_action : 39\n M620 D[initial_no_support_hotend]\n G383.3 U140 L{initial_no_support_filament_id}\nM623\n\nM622 J1\n M1002 gcode_claim_action : 54\n M190 D[bed_temperature_initial_layer_single]\n\n M1002 gcode_claim_action : 39\n M620 D[initial_no_support_hotend]\n G383 O2 U140 L{initial_no_support_filament_id}\nM623\n\n;===== xy ofst cali end =====\n\n;===== start to heat heatbed & hotend==========\n\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n G150.3\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n M140 S[bed_temperature_initial_layer_single]\n\n ;===== set chamber temperature ==========\n {if (overall_chamber_temperature >= 40)}\n M145 P1 ; set airduct mode to heating mode\n M141 S[overall_chamber_temperature] ; Let Chamber begin to heat\n {endif}\n ;===== set chamber temperature ==========\n\n;===== start to heat heatbead & hotend==========\n\n\n\nM400\n;M73 P99\n\n;===== auto extrude cali start =========================\nM975 S1\nM1002 judge_flag extrude_cali_flag\n\nM622 J0\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\nM623\n\nM622 J1\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M1002 gcode_claim_action : 8\n\n M109 S{nozzle_temperature[initial_no_support_filament_id]}\n\n G90\n M83\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n\n M400\n M106 P1 S255\n M400 S5\n M106 P1 S0\n G150.3\nM623\n\nM622 J2\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M1002 gcode_claim_action : 8\n\n M109 S{nozzle_temperature[initial_no_support_filament_id]}\n\n G90\n M83\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n\n M400\n M106 P1 S255\n M400 S5\n M106 P1 S0\n G150.3\nM623\n\n;===== auto extrude cali end =========================\n\n{if filament_type[initial_no_support_filament_id] == \"TPU\"}\n G150.2\n G150.1\n G150.2\n G150.1\n G150.2\n G150.1\n{else}\n G150.3\n M106 P1 S0\n M400 S2\n M109 S{nozzle_temperature[initial_no_support_filament_id]} ; wait tmpr to extrude\n M83\n {if(nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.8)}\n G1 E60 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n {else}\n G1 E45 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n {endif}\n G1 E-3 F1800\n M400 P500\n G150.2\n G150.1\n{endif}\n\nG91\nG1 Y-16 F12000 ; move away from the trash bin\nG90\n\nM400\n;M73 P99\n\n;===== wipe right nozzle start =====\n\nM1002 gcode_claim_action : 14\n G150 T{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n {if (overall_chamber_temperature >= 40)}\n G150 T{nozzle_temperature_initial_layer[initial_no_support_filament_id] - 80}\n {endif}\nM106 S255 ; turn on fan to cool the nozzle\n\n;===== wipe left nozzle end =====\n\nM400\n;M73 P99\n\nM1002 judge_flag auto_cali_toolhead_offset_flag\nM622 J0\n G91\n G1 Z5 F1200\n G90\n M1012.7\n G383.7 U140 J0\nM623\n\n{if (overall_chamber_temperature >= 40)}\n M1002 gcode_claim_action : 49\n M191 S[overall_chamber_temperature] ; wait for chamber temp\n{endif}\n\nM400\n;M73 P99\n\n;===== bed leveling ==================================\n\nM1002 judge_flag g29_before_print_flag\n\nM190 S[bed_temperature_initial_layer_single]; ensure bed temp\nM109 S140 A\nM106 S0 ; turn off fan , too noisy\n\nG91\nG1 Z10 F1200\n{if (first_non_support_filaments[0] != -1) && filament_type[initial_no_support_filament_id] != \"TPU\"}\nM640 S\nM640.7 U\nM640.7 L\nM640.2 R1\nM641\n{endif}\nG90\nG1 X175 Y160 F30000\n\nM622 J1\n M1002 gcode_claim_action : 1\n G29.20 A3\n G29 A1 O X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]} R\n M400\nM623\n\nM622 J2\n M1002 gcode_claim_action : 1\n {if has_tpu_in_first_layer}\n G29.20 A3\n G29 A1 O X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]} R\n {else}\n G29.20 A4\n G29 A2 O X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]} R\n {endif}\n M400\nM623\n\nM622 J0\n G28 R\nM623\n\n;===== bed leveling end ================================\n\nG39.1 ; cali nozzle wrapped detection pos\n\nG90\nG1 Z5 F1200\nG1 X270 Y-0.5 F60000\nG28.140 S0 ; cali pre-extrude z pos\n\n;============switch again==================\nM211 X0 Y0 Z0 ;turn off soft endstop\nG91\nG1 Z6 F1200\nG90\nM1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\nM620 S[initial_no_support_filament_id]A H[initial_no_support_hotend]\nM400\nT[initial_no_support_filament_id] H[initial_no_support_hotend]\nM400\nM628 S0\nM629\nM400\nM621 S[initial_no_support_filament_id]A\n\n;============switch again==================\n\nM400\n;M73 P99\n\nM141 S[overall_chamber_temperature]\n\n;===== mech mode sweep start =====\n M1002 gcode_claim_action : 3\n\n G90\n G1 Z5 F1200\n G1 X165 Y160 F20000\n M400 P200\n\n M970.3 Q1 A5 K0 O1\n M974 Q1 S2 P0\n\n M970.3 Q0 A5 K0 O1\n M974 Q0 S2 P0\n\n M970.2 Q2 K0 W38 Z0.01\n M974 Q2 S2 P0\n\n M975 S1\n;===== mech mode sweep end =====\n\n;===== wait temperature reaching the reference value =======\n\nM140 S[bed_temperature_initial_layer_single]\nM190 S[bed_temperature_initial_layer_single]\n\n ;========turn off light and fans =============\n M960 S1 P0 ; turn off laser\n M960 S2 P0 ; turn off laser\n M106 S0 ; turn off fan\n M106 P2 S0 ; turn off big fan\n ;==== set ext toodhead cooling fan ====\n {if (min_vitrification_temperature <= 50)}\n M106 P9 S255\n {endif}\n ;============set motor current==================\n M400 S1\n\n;===== wait temperature reaching the reference value =======\n\nM400\n;M73 P99\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n {if curr_bed_type==\"Textured PEI Plate\"}\n {if nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2}\n G29.1 Z{-0.01} ; for Textured PEI Plate\n {else}\n G29.1 Z{-0.02} ; for Textured PEI Plate\n {endif}\n {else}\n {if nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2}\n G29.1 Z{0.01}\n {endif}\n {endif}\nG150.1\n\nM975 S1 ; turn on mech mode supression\nM983.4 S1 ; turn on deformation compensation\nG29.2 S1 ; turn on pos comp\nG29.7 S1\n\nG90\nG1 Z5 F1200\nG1 Y295 F30000\nG1 Y265 F18000\n\n;===== nozzle load line ===============================\n G29.2 S1 ; ensure z comp turn on\n G90\n M83\n G1 Z5 F1200\n G1 X270 Y-0.5 F60000\n G28.14 R0\n G29.2 S0\n G91\n G1 Z0.8 F1200\n G90\n G1 X250 F60000\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n\n ;========== record data ==========\n M1026\n M1012.8\n M1012.9\n G29.9\n ;========== record data ==========\n\n M400 P50\n M500 D1\n M400 S3\n M109 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n M83\n{if nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.8}\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n{endif}\n{if (filament_type[initial_no_support_filament_id] == \"TPU\")}\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n{endif}\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n G1 X290 E10 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4053*60}\n G91\n G3 Z0.4 I1.217 J0 P1 F60000\n G90\n M83\n G29.2 S1 ; ensure z comp turn on\n;===== noozle load line end ===========================\n\nM400\n;M73 P99\n\nM993 A1 B1 C1 ; nozzle cam detection allowed.\n\n{if (filament_type[initial_no_support_filament_id] == \"TPU\")}\nM1015.3 S1;enable tpu clog detect\n{else}\nM1015.3 S0;disable tpu clog detect\n{endif}\n\n{if (filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PETG\")\n || (filament_type[initial_no_support_filament_id] == \"PLA-CF\") || (filament_type[initial_no_support_filament_id] == \"PETG-CF\")}\nM1015.4 S1 K1 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} ;enable E air printing detect\n{else}\nM1015.4 S0 K0 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} ;disable E air printing detect\n{endif}\n\nM620.6 I[initial_no_support_filament_id] H[initial_no_support_hotend] W1 ;enable ams air printing detect\nM620 O1\n\nM211 Z1\nG29.99\nM1002 gcode_claim_action : 0\nM400\n"
}
diff --git a/resources/profiles/BBL/machine/Bambu Lab P2S 0.4 nozzle template machine_start_gcode.json b/resources/profiles/BBL/machine/Bambu Lab P2S 0.4 nozzle template machine_start_gcode.json
index a7dee998fb..5abab59c71 100644
--- a/resources/profiles/BBL/machine/Bambu Lab P2S 0.4 nozzle template machine_start_gcode.json
+++ b/resources/profiles/BBL/machine/Bambu Lab P2S 0.4 nozzle template machine_start_gcode.json
@@ -2,5 +2,5 @@
"type": "machine",
"name": "Bambu Lab P2S 0.4 nozzle template machine_start_gcode",
"instantiation": "false",
- "machine_start_gcode": ";M1002 set_flag extrude_cali_flag=1\n;M1002 set_flag g29_before_print_flag=1\n;M1002 set_flag auto_cali_toolhead_offset_flag=1\n;M1002 set_flag build_plate_detect_flag=1\n\n;======== P2S start gcode==========\n;===== 2026/05/18 =====\n\n M140 S[bed_temperature_initial_layer_single] ; heat heatbed first\n M993 A0 B0 C0 ; nozzle cam detection not allowed.\n M400\n\n;=====printer start sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A53 B9 L50 C53 D9 M50 E53 F9 N50\nM1006 A56 B9 L50 C56 D9 M50 E56 F9 N50\nM1006 A61 B9 L50 C61 D9 M50 E61 F9 N50\nM1006 A53 B9 L50 C53 D9 M50 E53 F9 N50\nM1006 A56 B9 L50 C56 D9 M50 E56 F9 N50\nM1006 A61 B18 L50 C61 D18 M50 E61 F18 N50\nM1006 W\n;=====printer start sound ===================\n\n M620 M ;enable remap\n G389\n\n;===== avoid end stop =================\n G91\n G380 S2 Z22 F1200\n G380 S2 Z-12 F1200\n G90\n;===== avoid end stop =================\n\n;===== reset machine status =================\n M204 S10000\n M630 S0 P1\n G90\n M17 D ; reset motor current to default\n M960 S5 P1 ; turn on logo lamp\n G90\n M220 S100 ;Reset Feedrate\n M1002 set_gcode_claim_speed_level: 5\n M221 S100 ;Reset Flowrate\n M73.2 R1.0 ;Reset left time magnitude\n G29.1 Z{+0.0} ; clear z-trim value first\n M983.1 M1\n M982.2 S1 ; turn on cog noise reduction\n M983.4 S0\n;===== reset machine status =================\n\n;==== set airduct mode ====\n;==== if Chamber Cooling is necessary ====\n{if (overall_chamber_temperature >= 40)}\nM145 P1 ; set airduct mode to heating mode for heating\nM106 P2 S255 ; turn on filter fan\nM622.1 S0\nM1002 judge_flag ventobox_replace_aux1_fan_flag\nM622 J0\nM106 P10 S0 ; turn off left aux fan\nM623\n{else}\n{if (min_vitrification_temperature <= 50)}\nM145 P0 ; set airduct mode to cooling mode for cooling\nM106 P2 S255 ; turn on auxiliary fan for cooling\nM106 P3 S127 ; turn on chamber fan for cooling\nM1002 gcode_claim_action : 29\nM191 S0 ; wait for chamber temp\nM106 P2 S102 ; turn on chamber cooling fan\nM622.1 S0\nM1002 judge_flag ventobox_replace_aux1_fan_flag\nM622 J0\nM106 P10 S0 ; turn off left aux fan\nM623\nM142 P6 R30 S40 U0.3 V0.8 ; set PETG exhaust chamber autocooling\n{else}\nM145 P1 ; set airduct mode to heating mode for heating\nM106 P2 S127 ; turn on 50% filter fan\nM142 P6 R30 S40 U0.3 V0.8 ; set PLA/TPU exhaust chamber autocooling\n{endif}\n{endif}\n;==== set airduct mode ====\n\n;===== start to heat heatbed & hotend==========\n M1002 gcode_claim_action : 2\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M104 S140 A\n\n G29.2 S0 ; avoid invalid abl data\n\n;===== first homing start =====\n M1002 gcode_claim_action : 13\n G28 X T300\n G150.1 F8000 ; wipe mouth to avoid filament stick to heatbed\n G150.3\n M972 S24 P0\n M972 S26 P0 C0\n M972 S42 P0 T5000\n G150.1 F8000 ; wipe mouth to avoid filament stick to heatbed\n G90\n G1 X128 Y128 F30000\n G28 Z P0 T400\n M400\n;===== first homign end =====\n\n;===== detection start =====\n M1002 gcode_claim_action : 11\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]-80} A ; rise temp in advance\n M972 S19 P0 T5000 ;plate type detection\n\n {if max_print_z >= 145}\n M1002 gcode_claim_action : 75 ; Detect obstacles at the botton of the heated bed\n G150.3\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]} ; rise temp in advance\n G3811 Z{max_print_z} ; Detect obstacles at the bottom of the heated bed\n {endif}\n;===== detection end =====\n\n;===== prepare print temperature and material ==========\n M400\n M211 X0 Y0 Z0 ;turn off soft endstop\n M975 S1 ; turn on input shaping\n\n G29.2 S0 ; avoid invalid abl data\n G150.3\n{if ((filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PLA-CF\") || (filament_type[initial_no_support_filament_id] == \"PETG\")) && (nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2)}\nM620.10 A0 F74.8347 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\nM620.10 A1 F74.8347 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\n{else}\nM620.10 A0 F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60} H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\nM620.10 A1 F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60} H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\n{endif}\n\n M620.11 P0 L0 I[initial_no_support_filament_id] E0\n M620.11 K0 I[initial_no_support_filament_id] R0\n\n M620 S[initial_no_support_filament_id]A ; switch material if AMS exist\n M1002 gcode_claim_action : 4\n M1002 set_filament_type:UNKNOWN\n M400\n T[initial_no_support_filament_id]\n M400\n M628 S0\n M629\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M621 S[initial_no_support_filament_id]A\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n M400\n M106 P1 S0\n M400\n G29.2 S1\n;===== prepare print temperature and material ==========\n\n\n;===== auto extrude cali start =========================\n M975 S1\n M1002 judge_flag extrude_cali_flag\n M622 J0\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n M623\n\n M622 J1\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M1002 gcode_claim_action : 8\n M109 S{nozzle_temperature[initial_no_support_filament_id]}\n G90\n M83\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n M400\n M106 P1 S255\n M400 S5\n M106 P1 S0\n G150.3\n M623\n\n M622 J2\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M1002 gcode_claim_action : 8\n M109 S{nozzle_temperature[initial_no_support_filament_id]}\n G90\n M83\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n M400\n M106 P1 S255\n M400 S5\n M106 P1 S0\n G150.3\n M623\n;===== auto extrude cali end =========================\n\n {if hold_chamber_temp_for_flat_print}\n M1002 gcode_claim_action : 58\n M104 S{first_layer_temperature[initial_no_support_filament_id]}\n {if bed_temperature_initial_layer_single > 89}\n M1030 S1800\n SYNC R0 T1800\n {else}\n M1030 S300\n SYNC R0 T300\n {endif}\n M1030 C\n {endif}\n\n {if filament_type[initial_filament_id] == \"TPU\" || filament_type[initial_filament_id] == \"PVA\"}\n {else}\n M83\n G1 E-3 F1800\n M400 P500\n {endif}\n G150.2\n G150.1 F8000\n G150.2\n G150.1 F8000\n\n G91\n G1 Y-16 F12000 ; move away from the trash bin\n G90\n M400\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]-80} A\n\n;===== wipe right nozzle start =====\n M1002 gcode_claim_action : 14\n G150 T{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n M400\n\n{if filament_type[initial_filament_id] == \"PC\"}\n M109 S170 A\n{else}\n M109 S140 A\n{endif}\n G91\n G1 Z5 F1200\n G90\n M400\n G150.1\n;===== wipe left nozzle end =====\n\n\n;===== mech mode sweep start =====\n M1002 gcode_claim_action : 3\n G90\n G1 X128 Y128 F20000\n G1 Z5 F1200\n M400 P200\n M970.3 Q1 A5 K0 O1\n M970.2 Q1 K1 W74 Z0.01\n M974 Q1 S2 P0\n M970.3 Q0 A7 K0 O1\n M970.2 Q0 K1 W74 Z0.01\n M974 Q0 S2 P0\n M975 S1\n M400\n;===== mech mode sweep end =====\n\n;===== bed leveling ==================================\n M1002 gcode_claim_action : 54\n M190 S[bed_temperature_initial_layer_single]; ensure bed temp\n M109 S140 A\n M106 S0 ; turn off fan , too noisy\n M1002 judge_flag g29_before_print_flag\n M622 J1\n M1002 gcode_claim_action : 1\n {if hold_chamber_temp_for_flat_print}\n G29 H\n {else}\n G29 A1 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n {endif}\n M400\n M623\n\n M622 J2\n M1002 gcode_claim_action : 1\n {if hold_chamber_temp_for_flat_print}\n G29 H\n {else}\n G29 A2 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n {endif}\n M400\n M623\n\n M622 J0\n G28\n M623\n G29.2 S1\n G28\n;===== bed leveling end ================================\n\n M985.1 U0 E2\n M985.1 U1 E2\n\n M104 S{nozzle_temperature_initial_layer[initial_filament_id]} A\n G150.3 ; move to garbage can to wait for temp\n\n;===== wait temperature reaching the reference value =======\n M190 S[bed_temperature_initial_layer_single]\n\n ;========turn off light and fans =============\n M960 S1 P0 ; turn off laser\n M960 S2 P0 ; turn off laser\n M106 S0 ; turn off cooling fan\n\n;===== wait temperature reaching the reference value =======\n\n M1002 gcode_claim_action : 255\n M400\n M975 S1 ; turn on mech mode supression\n\n;============switch again==================\n M211 X0 Y0 Z0 ;turn off soft endstop\n G91\n G1 Z6 F1200\n G90\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M620 S[initial_no_support_filament_id]A\n M400\n T[initial_no_support_filament_id]\n M400\n M628 S0\n M629\n M400\n M621 S[initial_no_support_filament_id]A\n;============switch again==================\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n {if bed_temperature_initial_layer_single > 89}\n {if curr_bed_type==\"Textured PEI Plate\"}\n G29.1 Z{-0.02} ; for Textured PEI Plate\n {else}\n G29.1 Z{0.0}\n {endif}\n {else}\n {if curr_bed_type==\"Textured PEI Plate\"}\n G29.1 Z{0.01} ; for Textured PEI Plate\n {else}\n G29.1 Z{0.03}\n {endif}\n {endif}\n\n\n;===== nozzle load line ===============================\nM1002 gcode_claim_action : 51\n G29.2 S1 ; ensure z comp turn on\n G90\n M83\n M400 P50\n M500 D1\n M400 S3\n M109 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n G0 X100 Y0 F24000\n M400\n ;G130 O0 X100 Y-0.4 Z0.8 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2/2.4053} L40 E20 D5\n G130 O0 X100 Y-0.2 Z0.6 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2/2.4053} L40 E12 D4\n G90\n M83\n G1 Z1\n M400\n;===== noozle load line end ===========================\nM1002 gcode_claim_action : 0\n G29.99\n\n{if (filament_type[initial_no_support_filament_id] == \"TPU\") ||\n(filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PETG\")}\nM1015.3 S1 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]};enable tpu, pla and petg clog detect\n{else}\nM1015.3 S0;disable clog detect\n{endif}\n\n{if (filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PETG\")\n || (filament_type[initial_no_support_filament_id] == \"PLA-CF\") || (filament_type[initial_no_support_filament_id] == \"PETG-CF\")}\nM1015.4 S1 K1 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} ;enable E air printing detect\n{else}\nM1015.4 S0 K0 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} ;disable E air printing detect\n{endif}\n\nM620.6 I[initial_no_support_filament_id] W1 ;enable ams air printing detect\n\nM1010 Q0 B0.023 S0.01\nM1010 Q1 B0.005 S0.01\nM1010.1 S1\n"
+ "machine_start_gcode": ";M1002 set_flag extrude_cali_flag=1\n;M1002 set_flag g29_before_print_flag=1\n;M1002 set_flag auto_cali_toolhead_offset_flag=1\n;M1002 set_flag build_plate_detect_flag=1\n\n;======== P2S start gcode==========\n;===== Based on official 2026/05/18 start gcode =====\n\n M140 S[bed_temperature_initial_layer_single] ; heat heatbed first\n M993 A0 B0 C0 ; nozzle cam detection not allowed.\n M400\n\n;=====printer start sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A53 B9 L50 C53 D9 M50 E53 F9 N50\nM1006 A56 B9 L50 C56 D9 M50 E56 F9 N50\nM1006 A61 B9 L50 C61 D9 M50 E61 F9 N50\nM1006 A53 B9 L50 C53 D9 M50 E53 F9 N50\nM1006 A56 B9 L50 C56 D9 M50 E56 F9 N50\nM1006 A61 B18 L50 C61 D18 M50 E61 F18 N50\nM1006 W\n;=====printer start sound ===================\n\n M620 M ;enable remap\n G389\n\n;===== avoid end stop =================\n G91\n G380 S2 Z22 F1200\n G380 S2 Z-12 F1200\n G90\n;===== avoid end stop =================\n\n;===== reset machine status =================\n M204 S10000\n M630 S0 P1\n G90\n M17 D ; reset motor current to default\n M960 S5 P1 ; turn on logo lamp\n G90\n M220 S100 ;Reset Feedrate\n M1002 set_gcode_claim_speed_level: 5\n M221 S100 ;Reset Flowrate\n M73.2 R1.0 ;Reset left time magnitude\n G29.1 Z{+0.0} ; clear z-trim value first\n M983.1 M1\n M975 S1 ; turn on input shaping\n M982.2 S1 ; turn on cog noise reduction\n M983.4 S0\n;===== reset machine status =================\n\n;==== set airduct mode ====\n;==== if Chamber Cooling is necessary ====\n{if (overall_chamber_temperature >= 40)}\nM145 P1 ; set airduct mode to heating mode for heating\nM106 P2 S255 ; turn on filter fan\nM622.1 S0\nM1002 judge_flag ventobox_replace_aux1_fan_flag\nM622 J0\nM106 P10 S0 ; turn off left aux fan\nM623\n{else}\n{if (min_vitrification_temperature <= 50)}\nM145 P0 ; set airduct mode to cooling mode for cooling\nM106 P2 S255 ; turn on auxiliary fan for cooling\nM106 P3 S127 ; turn on chamber fan for cooling\nM1002 gcode_claim_action : 29\nM191 S0 ; wait for chamber temp\nM106 P2 S102 ; turn on chamber cooling fan\nM622.1 S0\nM1002 judge_flag ventobox_replace_aux1_fan_flag\nM622 J0\nM106 P10 S0 ; turn off left aux fan\nM623\nM142 P6 R30 S40 U0.3 V0.8 ; set PETG exhaust chamber autocooling\n{else}\nM145 P1 ; set airduct mode to heating mode for heating\nM106 P2 S127 ; turn on 50% filter fan\nM142 P6 R30 S40 U0.3 V0.8 ; set PLA/TPU exhaust chamber autocooling\n{endif}\n{endif}\n;==== set airduct mode ====\n\n;===== start to heat heatbed & hotend==========\n M1002 gcode_claim_action : 2\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M104 S140 A\n\n G29.2 S0 ; avoid invalid abl data\n\n;===== first homing start =====\n M1002 gcode_claim_action : 13\n G28 X T300\n G150.1 F8000 ; wipe mouth to avoid filament stick to heatbed\n G150.3\n M972 S24 P0\n M972 S26 P0 C0\n M972 S42 P0 T5000\n G150.1 F8000 ; wipe mouth to avoid filament stick to heatbed\n G90\n G1 X128 Y128 F30000\n G28 Z P0 T400\n M400\n;===== first homing end =====\n\n;===== detection start =====\n M1002 gcode_claim_action : 11\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]-80} A ; rise temp in advance\n M972 S19 P0 T5000 ;plate type detection\n\n {if max_print_z >= 145}\n M1002 gcode_claim_action : 75 ; Detect obstacles at the botton of the heated bed\n G150.3\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]} ; rise temp in advance\n G3811 Z{max_print_z} ; Detect obstacles at the bottom of the heated bed\n {endif}\n;===== detection end =====\n\n;===== prepare print temperature and material ==========\n M400\n M211 X0 Y0 Z0 ;turn off soft endstop\n G29.2 S0 ; avoid invalid abl data\n G150.3\n{if ((filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PLA-CF\") || (filament_type[initial_no_support_filament_id] == \"PETG\")) && (nozzle_diameter_at_nozzle_id[initial_nozzle_id] == 0.2)}\nM620.10 A0 F74.8347 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\nM620.10 A1 F74.8347 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\n{else}\nM620.10 A0 F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60} H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\nM620.10 A1 F{flush_volumetric_speeds[initial_no_support_filament_id]/2.4053*60} H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} T{flush_temperatures[initial_no_support_filament_id]} P{nozzle_temperature_initial_layer[initial_no_support_filament_id]} S1\n{endif}\n\n M620.11 P0 L0 I[initial_no_support_filament_id] E0\n M620.11 K0 I[initial_no_support_filament_id] R0\n\n M620 S[initial_no_support_filament_id]A ; switch material if AMS exist\n M1002 gcode_claim_action : 4\n M1002 set_filament_type:UNKNOWN\n M400\n T[initial_no_support_filament_id]\n M400\n M628 S0\n M629\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M621 S[initial_no_support_filament_id]A\n M104 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n M400\n M106 P1 S0\n M400\n G29.2 S1\n;===== prepare print temperature and material ==========\n\n\n;===== auto extrude cali start =========================\n M975 S1\n M1002 judge_flag extrude_cali_flag\n M622 J0\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n M623\n\n M622 J1\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M1002 gcode_claim_action : 8\n M109 S{nozzle_temperature[initial_no_support_filament_id]}\n G90\n M83\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n M400\n M106 P1 S255\n M400 S5\n M106 P1 S0\n G150.3\n M623\n\n M622 J2\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M1002 gcode_claim_action : 8\n M109 S{nozzle_temperature[initial_no_support_filament_id]}\n G90\n M83\n M983.3 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2.4} A0.4 ; cali dynamic extrusion compensation\n M400\n M106 P1 S255\n M400 S5\n M106 P1 S0\n G150.3\n M623\n;===== auto extrude cali end =========================\n\n {if hold_chamber_temp_for_flat_print}\n M1002 gcode_claim_action : 58\n M104 S{first_layer_temperature[initial_no_support_filament_id]}\n {if bed_temperature_initial_layer_single > 89}\n M1030 S1800\n SYNC R0 T1800\n {else}\n M1030 S300\n SYNC R0 T300\n {endif}\n M1030 C\n {endif}\n\n {if filament_type[initial_filament_id] == \"TPU\" || filament_type[initial_filament_id] == \"PVA\"}\n {else}\n M83\n G1 E-3 F1800\n M400 P500\n {endif}\n\n ; series of wipes to ensure the nozzle is as clean as possible to avoid potential z-drift issues.\n M1002 gcode_claim_action : 14\n M104 S180\n G150.2\n G150.1 F8000\n G150.2\n G150.1 F8000\n M106 P1 S255\n M109 S180 A\n G150.1 F8000 \n M109 S140 A\n M106 P1 S0\n G150.1 F8000\n G91\n G1 Y-16 F12000\n G1 X100 F6000\n G90\n M400\n\n;===== wipe right nozzle start =====\n G150 T{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n M400\n\n{if filament_type[initial_filament_id] == \"PC\"}\n M109 S170 A\n{else}\n M109 S140 A\n{endif}\n G91\n G1 Z5 F1200\n G90\n M400\n G150.1\n;===== wipe left nozzle end =====\n\n\n;===== mech mode sweep start =====\n M1002 gcode_claim_action : 3\n G90\n G1 X128 Y128 F20000\n G1 Z5 F1200\n M400 P200\n M970.3 Q1 A5 K0 O1\n M970.2 Q1 K1 W74 Z0.01\n M974 Q1 S2 P0\n M970.3 Q0 A7 K0 O1\n M970.2 Q0 K1 W74 Z0.01\n M974 Q0 S2 P0\n M975 S1\n M400\n;===== mech mode sweep end =====\n\n;===== bed leveling ==================================\n M1002 gcode_claim_action : 54\n M190 S[bed_temperature_initial_layer_single]; ensure bed temp\n M109 S140 A\n M106 S0 ; turn off fan , too noisy\n M1002 judge_flag g29_before_print_flag\n M622 J1\n M1002 gcode_claim_action : 1\n {if hold_chamber_temp_for_flat_print}\n G29 H\n {else}\n G29 A1 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n {endif}\n M400\n M623\n\n M622 J2\n M1002 gcode_claim_action : 1\n {if hold_chamber_temp_for_flat_print}\n G29 H\n {else}\n G29 A2 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n {endif}\n M400\n M623\n\n M622 J0\n ;skip to homing\n M623\n G29.2 S1\n M1002 gcode_claim_action : 13\n G28\n;===== bed leveling end ================================\n\n M985.1 U0 E2\n M985.1 U1 E2\n\n M104 S{nozzle_temperature_initial_layer[initial_filament_id]} A\n G150.3 ; move to garbage can to wait for temp\n\n;===== wait temperature reaching the reference value =======\n M190 S[bed_temperature_initial_layer_single]\n\n ;========turn off light and fans =============\n M960 S1 P0 ; turn off laser\n M960 S2 P0 ; turn off laser\n M106 S0 ; turn off cooling fan\n\n;===== wait temperature reaching the reference value =======\n\n M1002 gcode_claim_action : 255\n M400\n M975 S1 ; turn on mech mode supression\n\n;============switch again==================\n M211 X0 Y0 Z0 ;turn off soft endstop\n G91\n G1 Z6 F1200\n G90\n M1002 set_filament_type:{filament_type[initial_no_support_filament_id]}\n M620 S[initial_no_support_filament_id]A\n M400\n T[initial_no_support_filament_id]\n M400\n M628 S0\n M629\n M400\n M621 S[initial_no_support_filament_id]A\n;============switch again==================\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n {if bed_temperature_initial_layer_single > 89}\n {if curr_bed_type==\"Textured PEI Plate\"}\n G29.1 Z{-0.02} ; for Textured PEI Plate\n {else}\n G29.1 Z{0.0}\n {endif}\n {else}\n {if curr_bed_type==\"Textured PEI Plate\"}\n G29.1 Z{0.01} ; for Textured PEI Plate\n {else}\n G29.1 Z{0.03}\n {endif}\n {endif}\n\n\n;===== nozzle load line ===============================\n M1002 gcode_claim_action : 7\n G29.2 S1 ; ensure z comp turn on\n G90\n M83\n M400 P50\n M500 D1\n M400 S3\n M109 S{nozzle_temperature_initial_layer[initial_no_support_filament_id]}\n M1002 gcode_claim_action : 51\n G0 X100 Y0 F24000\n M400\n ;G130 O0 X100 Y-0.4 Z0.8 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2/2.4053} L40 E20 D5\n G130 O0 X100 Y-0.2 Z0.6 F{filament_max_volumetric_speed[initial_no_support_filament_id]/2/2.4053} L40 E12 D4\n G90\n M83\n G1 Z1\n M400\n;===== nozzle load line end ===========================\nM1002 gcode_claim_action : 0\n G29.99\n\n{if (filament_type[initial_no_support_filament_id] == \"TPU\") ||\n(filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PETG\")}\nM1015.3 S1 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]};enable tpu, pla and petg clog detect\n{else}\nM1015.3 S0;disable clog detect\n{endif}\n\n{if (filament_type[initial_no_support_filament_id] == \"PLA\") || (filament_type[initial_no_support_filament_id] == \"PETG\")\n || (filament_type[initial_no_support_filament_id] == \"PLA-CF\") || (filament_type[initial_no_support_filament_id] == \"PETG-CF\")}\nM1015.4 S1 K1 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} ;enable E air printing detect\n{else}\nM1015.4 S0 K0 H{nozzle_diameter_at_nozzle_id[initial_nozzle_id]} ;disable E air printing detect\n{endif}\n\nM620.6 I[initial_no_support_filament_id] W1 ;enable ams air printing detect\n\nM1010 Q0 B0.023 S0.01\nM1010 Q1 B0.005 S0.01\nM1010.1 S1\n"
}
diff --git a/resources/profiles/BBL/machine/fdm_bbl_3dp_001_common.json b/resources/profiles/BBL/machine/fdm_bbl_3dp_001_common.json
index c0ac9a1843..30077b81f3 100644
--- a/resources/profiles/BBL/machine/fdm_bbl_3dp_001_common.json
+++ b/resources/profiles/BBL/machine/fdm_bbl_3dp_001_common.json
@@ -8,6 +8,7 @@
"0.4"
],
"printer_variant": "0.4",
+ "use_3mf": "1",
"bed_exclude_area": [
"0x0",
"28x0",
diff --git a/resources/profiles/BBL/machine/fdm_bbl_3dp_002_common.json b/resources/profiles/BBL/machine/fdm_bbl_3dp_002_common.json
index a5eaf8c6f5..e32840036f 100644
--- a/resources/profiles/BBL/machine/fdm_bbl_3dp_002_common.json
+++ b/resources/profiles/BBL/machine/fdm_bbl_3dp_002_common.json
@@ -9,6 +9,7 @@
"0.4"
],
"printer_variant": "0.4",
+ "use_3mf": "1",
"best_object_pos": "0.3x0.5",
"bed_exclude_area": [],
"bed_temperature_formula": "by_highest_temp",
diff --git a/resources/profiles/BBL/process/0.08mm High Quality @BBL P2S 0.2 nozzle.json b/resources/profiles/BBL/process/0.08mm High Quality @BBL P2S 0.2 nozzle.json
index 8ca40003f3..44bd17e125 100644
--- a/resources/profiles/BBL/process/0.08mm High Quality @BBL P2S 0.2 nozzle.json
+++ b/resources/profiles/BBL/process/0.08mm High Quality @BBL P2S 0.2 nozzle.json
@@ -10,6 +10,7 @@
"50",
"50"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000"
diff --git a/resources/profiles/BBL/process/0.08mm High Quality @BBL P2S.json b/resources/profiles/BBL/process/0.08mm High Quality @BBL P2S.json
index bd399e65a1..1867783ab5 100644
--- a/resources/profiles/BBL/process/0.08mm High Quality @BBL P2S.json
+++ b/resources/profiles/BBL/process/0.08mm High Quality @BBL P2S.json
@@ -10,6 +10,7 @@
"50",
"50"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000",
diff --git a/resources/profiles/BBL/process/0.10mm Standard @BBL P2S 0.2 nozzle.json b/resources/profiles/BBL/process/0.10mm Standard @BBL P2S 0.2 nozzle.json
index 02ec0007ec..2d00b3d04e 100644
--- a/resources/profiles/BBL/process/0.10mm Standard @BBL P2S 0.2 nozzle.json
+++ b/resources/profiles/BBL/process/0.10mm Standard @BBL P2S 0.2 nozzle.json
@@ -9,6 +9,7 @@
"50",
"50"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000"
diff --git a/resources/profiles/BBL/process/0.12mm Balanced Quality @BBL P2S 0.2 nozzle.json b/resources/profiles/BBL/process/0.12mm Balanced Quality @BBL P2S 0.2 nozzle.json
index e3471e88b0..37194e5627 100644
--- a/resources/profiles/BBL/process/0.12mm Balanced Quality @BBL P2S 0.2 nozzle.json
+++ b/resources/profiles/BBL/process/0.12mm Balanced Quality @BBL P2S 0.2 nozzle.json
@@ -9,6 +9,7 @@
"50",
"50"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000"
diff --git a/resources/profiles/BBL/process/0.12mm High Quality @BBL P2S.json b/resources/profiles/BBL/process/0.12mm High Quality @BBL P2S.json
index a9c9eb7bdf..2847f1cae2 100644
--- a/resources/profiles/BBL/process/0.12mm High Quality @BBL P2S.json
+++ b/resources/profiles/BBL/process/0.12mm High Quality @BBL P2S.json
@@ -10,6 +10,7 @@
"50",
"50"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000",
diff --git a/resources/profiles/BBL/process/0.16mm High Quality @BBL P2S.json b/resources/profiles/BBL/process/0.16mm High Quality @BBL P2S.json
index 4d6e809633..cdd946b32f 100644
--- a/resources/profiles/BBL/process/0.16mm High Quality @BBL P2S.json
+++ b/resources/profiles/BBL/process/0.16mm High Quality @BBL P2S.json
@@ -11,6 +11,7 @@
"50",
"50"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000",
diff --git a/resources/profiles/BBL/process/0.16mm Standard @BBL P2S.json b/resources/profiles/BBL/process/0.16mm Standard @BBL P2S.json
index 657b0b7c38..41bc2ba0f0 100644
--- a/resources/profiles/BBL/process/0.16mm Standard @BBL P2S.json
+++ b/resources/profiles/BBL/process/0.16mm Standard @BBL P2S.json
@@ -11,6 +11,7 @@
"50",
"50"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000",
diff --git a/resources/profiles/BBL/process/0.18mm Balanced Quality @BBL P2S 0.6 nozzle.json b/resources/profiles/BBL/process/0.18mm Balanced Quality @BBL P2S 0.6 nozzle.json
index 4d2722df04..2103b9cc04 100644
--- a/resources/profiles/BBL/process/0.18mm Balanced Quality @BBL P2S 0.6 nozzle.json
+++ b/resources/profiles/BBL/process/0.18mm Balanced Quality @BBL P2S 0.6 nozzle.json
@@ -11,6 +11,7 @@
"30",
"30"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000",
diff --git a/resources/profiles/BBL/process/0.20mm High Quality @BBL P2S.json b/resources/profiles/BBL/process/0.20mm High Quality @BBL P2S.json
index 2a76fcba00..46a148408c 100644
--- a/resources/profiles/BBL/process/0.20mm High Quality @BBL P2S.json
+++ b/resources/profiles/BBL/process/0.20mm High Quality @BBL P2S.json
@@ -11,6 +11,7 @@
"50",
"50"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000",
diff --git a/resources/profiles/BBL/process/0.20mm Standard @BBL P2S.json b/resources/profiles/BBL/process/0.20mm Standard @BBL P2S.json
index 13c9f1e722..54ec7a734a 100644
--- a/resources/profiles/BBL/process/0.20mm Standard @BBL P2S.json
+++ b/resources/profiles/BBL/process/0.20mm Standard @BBL P2S.json
@@ -11,6 +11,7 @@
"50",
"50"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000",
diff --git a/resources/profiles/BBL/process/0.24mm Balanced Quality @BBL P2S 0.6 nozzle.json b/resources/profiles/BBL/process/0.24mm Balanced Quality @BBL P2S 0.6 nozzle.json
index 24f35fc875..6ca9a556a9 100644
--- a/resources/profiles/BBL/process/0.24mm Balanced Quality @BBL P2S 0.6 nozzle.json
+++ b/resources/profiles/BBL/process/0.24mm Balanced Quality @BBL P2S 0.6 nozzle.json
@@ -11,6 +11,7 @@
"30",
"30"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000",
diff --git a/resources/profiles/BBL/process/0.24mm Balanced Quality @BBL P2S 0.8 nozzle.json b/resources/profiles/BBL/process/0.24mm Balanced Quality @BBL P2S 0.8 nozzle.json
index 64c46e6414..47bcce8c51 100644
--- a/resources/profiles/BBL/process/0.24mm Balanced Quality @BBL P2S 0.8 nozzle.json
+++ b/resources/profiles/BBL/process/0.24mm Balanced Quality @BBL P2S 0.8 nozzle.json
@@ -10,6 +10,7 @@
"30",
"30"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
diff --git a/resources/profiles/BBL/process/0.24mm Standard @BBL P2S.json b/resources/profiles/BBL/process/0.24mm Standard @BBL P2S.json
index bec3147a16..90ef61fe8c 100644
--- a/resources/profiles/BBL/process/0.24mm Standard @BBL P2S.json
+++ b/resources/profiles/BBL/process/0.24mm Standard @BBL P2S.json
@@ -10,6 +10,7 @@
"50",
"50"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000",
diff --git a/resources/profiles/BBL/process/0.30mm Standard @BBL P2S 0.6 nozzle.json b/resources/profiles/BBL/process/0.30mm Standard @BBL P2S 0.6 nozzle.json
index d745625988..22171f7b4f 100644
--- a/resources/profiles/BBL/process/0.30mm Standard @BBL P2S 0.6 nozzle.json
+++ b/resources/profiles/BBL/process/0.30mm Standard @BBL P2S 0.6 nozzle.json
@@ -11,6 +11,7 @@
"30",
"30"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000",
diff --git a/resources/profiles/BBL/process/0.32mm Balanced Quality @BBL P2S 0.8 nozzle.json b/resources/profiles/BBL/process/0.32mm Balanced Quality @BBL P2S 0.8 nozzle.json
index 979edcca6e..b6f59a2ce1 100644
--- a/resources/profiles/BBL/process/0.32mm Balanced Quality @BBL P2S 0.8 nozzle.json
+++ b/resources/profiles/BBL/process/0.32mm Balanced Quality @BBL P2S 0.8 nozzle.json
@@ -10,6 +10,7 @@
"30",
"30"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
diff --git a/resources/profiles/BBL/process/0.40mm Standard @BBL P2S 0.8 nozzle.json b/resources/profiles/BBL/process/0.40mm Standard @BBL P2S 0.8 nozzle.json
index d3aaa84887..843a06b9a9 100644
--- a/resources/profiles/BBL/process/0.40mm Standard @BBL P2S 0.8 nozzle.json
+++ b/resources/profiles/BBL/process/0.40mm Standard @BBL P2S 0.8 nozzle.json
@@ -10,6 +10,7 @@
"30",
"30"
],
+ "enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
diff --git a/resources/profiles/BBL/process/fdm_process_common.json b/resources/profiles/BBL/process/fdm_process_common.json
index ecb2956698..cf69564fca 100644
--- a/resources/profiles/BBL/process/fdm_process_common.json
+++ b/resources/profiles/BBL/process/fdm_process_common.json
@@ -94,7 +94,7 @@
"prime_tower_flat_ironing": "0",
"raft_layers": "0",
"reduce_crossing_wall": "0",
- "reduce_infill_retraction_mode": "Auto",
+ "reduce_infill_retraction": "1",
"resolution": "0.012",
"scarf_angle_threshold": "155",
"seam_position": "aligned",
diff --git a/resources/profiles/Custom.json b/resources/profiles/Custom.json
index afbcdacbe8..ab2084d898 100644
--- a/resources/profiles/Custom.json
+++ b/resources/profiles/Custom.json
@@ -1,9 +1,13 @@
{
"name": "Custom Printer",
- "version": "02.04.00.07",
+ "version": "02.04.00.08",
"force_update": "0",
"description": "My configurations",
"machine_model_list": [
+ {
+ "name": "Generic Belt Printer",
+ "sub_path": "machine/MyBeltPrinter.json"
+ },
{
"name": "Generic Klipper Printer",
"sub_path": "machine/MyKlipper.json"
@@ -50,6 +54,10 @@
"name": "0.08mm Extra Fine @MyKlipper",
"sub_path": "process/0.08mm Extra Fine @MyKlipper.json"
},
+ {
+ "name": "0.12mm Fine @MyBeltPrinter",
+ "sub_path": "process/0.12mm Fine @MyBeltPrinter.json"
+ },
{
"name": "0.12mm Fine @MyKlipper",
"sub_path": "process/0.12mm Fine @MyKlipper.json"
@@ -62,6 +70,10 @@
"name": "0.16mm Optimal @MyKlipper",
"sub_path": "process/0.16mm Optimal @MyKlipper.json"
},
+ {
+ "name": "0.20mm Standard @MyBeltPrinter",
+ "sub_path": "process/0.20mm Standard @MyBeltPrinter.json"
+ },
{
"name": "0.20mm Standard @MyKlipper",
"sub_path": "process/0.20mm Standard @MyKlipper.json"
@@ -262,6 +274,10 @@
"name": "MyKlipper 0.8 nozzle",
"sub_path": "machine/MyKlipper 0.8 nozzle.json"
},
+ {
+ "name": "fdm_belt_common",
+ "sub_path": "machine/fdm_belt_common.json"
+ },
{
"name": "fdm_toolchanger_common",
"sub_path": "machine/fdm_toolchanger_common.json"
@@ -274,6 +290,22 @@
"name": "MyRRF 0.4 nozzle",
"sub_path": "machine/MyRRF 0.4 nozzle.json"
},
+ {
+ "name": "MyBeltPrinter 0.2 nozzle",
+ "sub_path": "machine/MyBeltPrinter 0.2 nozzle.json"
+ },
+ {
+ "name": "MyBeltPrinter 0.4 nozzle",
+ "sub_path": "machine/MyBeltPrinter 0.4 nozzle.json"
+ },
+ {
+ "name": "MyBeltPrinter 0.6 nozzle",
+ "sub_path": "machine/MyBeltPrinter 0.6 nozzle.json"
+ },
+ {
+ "name": "MyBeltPrinter 0.8 nozzle",
+ "sub_path": "machine/MyBeltPrinter 0.8 nozzle.json"
+ },
{
"name": "MyToolChanger 0.2 nozzle",
"sub_path": "machine/MyToolChanger 0.2 nozzle.json"
diff --git a/resources/profiles/Custom/Generic Belt Printer_cover.png b/resources/profiles/Custom/Generic Belt Printer_cover.png
new file mode 100644
index 0000000000..d42f2ef228
Binary files /dev/null and b/resources/profiles/Custom/Generic Belt Printer_cover.png differ
diff --git a/resources/profiles/Custom/machine/MyBeltPrinter 0.2 nozzle.json b/resources/profiles/Custom/machine/MyBeltPrinter 0.2 nozzle.json
new file mode 100644
index 0000000000..1226f4dd68
--- /dev/null
+++ b/resources/profiles/Custom/machine/MyBeltPrinter 0.2 nozzle.json
@@ -0,0 +1,27 @@
+{
+ "type": "machine",
+ "name": "MyBeltPrinter 0.2 nozzle",
+ "inherits": "fdm_belt_common",
+ "from": "system",
+ "setting_id": "3w1uyJdmm14QhDnH",
+ "instantiation": "true",
+ "printer_model": "Generic Belt Printer",
+ "default_print_profile": "0.12mm Fine @MyBeltPrinter",
+ "nozzle_diameter": [
+ "0.2"
+ ],
+ "max_layer_height": [
+ "0.16"
+ ],
+ "min_layer_height": [
+ "0.04"
+ ],
+ "printer_variant": "0.2",
+ "printable_area": [
+ "0x0",
+ "350x0",
+ "350x350",
+ "0x350"
+ ],
+ "printable_height": "300"
+}
diff --git a/resources/profiles/Custom/machine/MyBeltPrinter 0.4 nozzle.json b/resources/profiles/Custom/machine/MyBeltPrinter 0.4 nozzle.json
new file mode 100644
index 0000000000..e8149509ca
--- /dev/null
+++ b/resources/profiles/Custom/machine/MyBeltPrinter 0.4 nozzle.json
@@ -0,0 +1,20 @@
+{
+ "type": "machine",
+ "name": "MyBeltPrinter 0.4 nozzle",
+ "inherits": "fdm_belt_common",
+ "from": "system",
+ "setting_id": "6nRHUtvJOUffocbu",
+ "instantiation": "true",
+ "printer_model": "Generic Belt Printer",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "printer_variant": "0.4",
+ "printable_area": [
+ "0x0",
+ "350x0",
+ "350x350",
+ "0x350"
+ ],
+ "printable_height": "300"
+}
diff --git a/resources/profiles/Custom/machine/MyBeltPrinter 0.6 nozzle.json b/resources/profiles/Custom/machine/MyBeltPrinter 0.6 nozzle.json
new file mode 100644
index 0000000000..b8ca999dca
--- /dev/null
+++ b/resources/profiles/Custom/machine/MyBeltPrinter 0.6 nozzle.json
@@ -0,0 +1,26 @@
+{
+ "type": "machine",
+ "name": "MyBeltPrinter 0.6 nozzle",
+ "inherits": "fdm_belt_common",
+ "from": "system",
+ "setting_id": "K0m9HbUNwKT4UCJV",
+ "instantiation": "true",
+ "printer_model": "Generic Belt Printer",
+ "nozzle_diameter": [
+ "0.6"
+ ],
+ "max_layer_height": [
+ "0.4"
+ ],
+ "min_layer_height": [
+ "0.12"
+ ],
+ "printer_variant": "0.6",
+ "printable_area": [
+ "0x0",
+ "350x0",
+ "350x350",
+ "0x350"
+ ],
+ "printable_height": "300"
+}
diff --git a/resources/profiles/Custom/machine/MyBeltPrinter 0.8 nozzle.json b/resources/profiles/Custom/machine/MyBeltPrinter 0.8 nozzle.json
new file mode 100644
index 0000000000..b546b5b288
--- /dev/null
+++ b/resources/profiles/Custom/machine/MyBeltPrinter 0.8 nozzle.json
@@ -0,0 +1,26 @@
+{
+ "type": "machine",
+ "name": "MyBeltPrinter 0.8 nozzle",
+ "inherits": "fdm_belt_common",
+ "from": "system",
+ "setting_id": "rHAweDz4eNwttPNA",
+ "instantiation": "true",
+ "printer_model": "Generic Belt Printer",
+ "nozzle_diameter": [
+ "0.8"
+ ],
+ "max_layer_height": [
+ "0.6"
+ ],
+ "min_layer_height": [
+ "0.2"
+ ],
+ "printer_variant": "0.8",
+ "printable_area": [
+ "0x0",
+ "350x0",
+ "350x350",
+ "0x350"
+ ],
+ "printable_height": "300"
+}
diff --git a/resources/profiles/Custom/machine/MyBeltPrinter.json b/resources/profiles/Custom/machine/MyBeltPrinter.json
new file mode 100644
index 0000000000..0f6e0c5891
--- /dev/null
+++ b/resources/profiles/Custom/machine/MyBeltPrinter.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "Generic Belt Printer",
+ "model_id": "my_belt_01",
+ "nozzle_diameter": "0.4;0.2;0.6;0.8",
+ "machine_tech": "FFF",
+ "family": "MyPrinter",
+ "bed_model": "Custom_350_bed.stl",
+ "bed_texture": "orcaslicer_bed_texture.svg",
+ "hotend_model": "",
+ "default_materials": "Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System"
+}
diff --git a/resources/profiles/Custom/machine/fdm_belt_common.json b/resources/profiles/Custom/machine/fdm_belt_common.json
new file mode 100644
index 0000000000..96b3138832
--- /dev/null
+++ b/resources/profiles/Custom/machine/fdm_belt_common.json
@@ -0,0 +1,95 @@
+{
+ "type": "machine",
+ "name": "fdm_belt_common",
+ "inherits": "fdm_klipper_common",
+ "from": "system",
+ "instantiation": "false",
+ "gcode_flavor": "klipper",
+ "single_extruder_multi_material": "0",
+ "default_filament_profile": [
+ "Generic PLA @System"
+ ],
+ "default_print_profile": "0.20mm Standard @MyBeltPrinter",
+ "max_layer_height": [
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.08"
+ ],
+ "deretraction_speed": [
+ "30"
+ ],
+ "extruder_colour": [
+ "#FCE94F"
+ ],
+ "extruder_offset": [
+ "0x0"
+ ],
+ "long_retractions_when_cut": [
+ "0"
+ ],
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "retract_before_wipe": [
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2"
+ ],
+ "retract_lift_above": [
+ "0"
+ ],
+ "retract_lift_below": [
+ "0"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18"
+ ],
+ "retraction_length": [
+ "0.8"
+ ],
+ "retraction_minimum_travel": [
+ "1"
+ ],
+ "retraction_speed": [
+ "30"
+ ],
+ "travel_slope": [
+ "3"
+ ],
+ "wipe": [
+ "1"
+ ],
+ "wipe_distance": [
+ "1"
+ ],
+ "z_hop": [
+ "0"
+ ],
+ "z_hop_types": [
+ "Normal Lift"
+ ],
+ "gcode_remap_x": "rev_x",
+ "gcode_remap_y": "pos_z",
+ "gcode_remap_z": "pos_y",
+ "belt_printer": "1",
+ "belt_slice_rotation": "x",
+ "belt_slice_rotation_angle": "45",
+ "build_plate_tilt_x": "45",
+ "purge_in_prime_tower": "0",
+ "scan_first_layer": "0",
+ "auxiliary_fan": "0"
+}
diff --git a/resources/profiles/Custom/process/0.12mm Fine @MyBeltPrinter.json b/resources/profiles/Custom/process/0.12mm Fine @MyBeltPrinter.json
new file mode 100644
index 0000000000..15814e6725
--- /dev/null
+++ b/resources/profiles/Custom/process/0.12mm Fine @MyBeltPrinter.json
@@ -0,0 +1,20 @@
+{
+ "type": "process",
+ "name": "0.12mm Fine @MyBeltPrinter",
+ "inherits": "fdm_process_klipper_common",
+ "from": "system",
+ "setting_id": "EugqqdLJ423bgEwN",
+ "instantiation": "true",
+ "layer_height": "0.12",
+ "initial_layer_print_height": "0.12",
+ "bottom_shell_layers": "5",
+ "top_shell_layers": "6",
+ "support_top_z_distance": "0.08",
+ "support_bottom_z_distance": "0.08",
+ "skirt_loops": "0",
+ "skirt_distance": "0",
+ "compatible_printers": [
+ "MyBeltPrinter 0.2 nozzle",
+ "MyBeltPrinter 0.4 nozzle"
+ ]
+}
diff --git a/resources/profiles/Custom/process/0.20mm Standard @MyBeltPrinter.json b/resources/profiles/Custom/process/0.20mm Standard @MyBeltPrinter.json
new file mode 100644
index 0000000000..6c10b250d6
--- /dev/null
+++ b/resources/profiles/Custom/process/0.20mm Standard @MyBeltPrinter.json
@@ -0,0 +1,17 @@
+{
+ "type": "process",
+ "name": "0.20mm Standard @MyBeltPrinter",
+ "inherits": "fdm_process_klipper_common",
+ "from": "system",
+ "setting_id": "YzCDAgH3uLOM53pF",
+ "instantiation": "true",
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.2",
+ "skirt_loops": "0",
+ "skirt_distance": "0",
+ "compatible_printers": [
+ "MyBeltPrinter 0.4 nozzle",
+ "MyBeltPrinter 0.6 nozzle",
+ "MyBeltPrinter 0.8 nozzle"
+ ]
+}
diff --git a/resources/profiles/Elegoo.json b/resources/profiles/Elegoo.json
index e85c442406..e0580014a9 100644
--- a/resources/profiles/Elegoo.json
+++ b/resources/profiles/Elegoo.json
@@ -1,6 +1,6 @@
{
"name": "Elegoo",
- "version": "02.04.00.12",
+ "version": "02.04.00.11",
"force_update": "0",
"description": "Elegoo configurations",
"machine_model_list": [
diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA @base.json
index 21112c1791..8965bae8e1 100644
--- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA @base.json
+++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA @base.json
@@ -15,6 +15,6 @@
"Elegoo"
],
"filament_start_gcode": [
- "; Elegoo PLA filament start gcode\n"
+ "; filament start gcode\n"
]
}
diff --git a/resources/profiles/FELIX Printers.json b/resources/profiles/FELIX Printers.json
new file mode 100644
index 0000000000..a162bd03f5
--- /dev/null
+++ b/resources/profiles/FELIX Printers.json
@@ -0,0 +1,790 @@
+{
+ "name": "FELIX Printers",
+ "version": "1.0.0",
+ "force_update": "0",
+ "description": "Configuration file for printers by FELIX Printers",
+ "machine_model_list": [
+ {
+ "name": "FELIX Food Double",
+ "sub_path": "machine/FELIX Food Double.json"
+ },
+ {
+ "name": "FELIX Food Single",
+ "sub_path": "machine/FELIX Food Single.json"
+ },
+ {
+ "name": "FELIX Food Switch",
+ "sub_path": "machine/FELIX Food Switch.json"
+ },
+ {
+ "name": "FELIX Pro 3",
+ "sub_path": "machine/FELIX Pro 3.json"
+ },
+ {
+ "name": "FELIX Pro L 3.0",
+ "sub_path": "machine/FELIX Pro L 3.0.json"
+ },
+ {
+ "name": "FELIX Pro XL 3.0",
+ "sub_path": "machine/FELIX Pro XL 3.0.json"
+ },
+ {
+ "name": "FELIX Tec 4",
+ "sub_path": "machine/FELIX Tec 4.json"
+ }
+ ],
+ "machine_list": [
+ {
+ "name": "fdm_all_machines_common",
+ "sub_path": "machine/fdm_all_machines_common.json"
+ },
+ {
+ "name": "fdm_felix_food_common",
+ "sub_path": "machine/fdm_felix_food_common.json"
+ },
+ {
+ "name": "fdm_felix_food_double_common",
+ "sub_path": "machine/fdm_felix_food_double_common.json"
+ },
+ {
+ "name": "fdm_felix_food_switch_common",
+ "sub_path": "machine/fdm_felix_food_switch_common.json"
+ },
+ {
+ "name": "fdm_felix_plastic_common",
+ "sub_path": "machine/fdm_felix_plastic_common.json"
+ },
+ {
+ "name": "fdm_felix_pro_3_common",
+ "sub_path": "machine/fdm_felix_pro_3_common.json"
+ },
+ {
+ "name": "fdm_felix_pro_l_3_common",
+ "sub_path": "machine/fdm_felix_pro_l_3.json"
+ },
+ {
+ "name": "fdm_felix_pro_xl_3_common",
+ "sub_path": "machine/fdm_felix_pro_xl_3_common.json"
+ },
+ {
+ "name": "fdm_felix_tec_common",
+ "sub_path": "machine/fdm_felix_tec_common.json"
+ },
+ {
+ "name": "FELIX Food Single 0.50mm nozzle",
+ "sub_path": "machine/FELIX Food Single 0.50mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Single 1.00mm nozzle",
+ "sub_path": "machine/FELIX Food Single 1.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Single 2.00mm nozzle",
+ "sub_path": "machine/FELIX Food Single 2.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Single 3.00mm nozzle",
+ "sub_path": "machine/FELIX Food Single 3.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Single 4.00mm nozzle",
+ "sub_path": "machine/FELIX Food Single 4.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Double 0.50mm nozzle",
+ "sub_path": "machine/FELIX Food Double 0.50mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Double 1.00mm nozzle",
+ "sub_path": "machine/FELIX Food Double 1.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Double 2.00mm nozzle",
+ "sub_path": "machine/FELIX Food Double 2.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Double 3.00mm nozzle",
+ "sub_path": "machine/FELIX Food Double 3.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Double 4.00mm nozzle",
+ "sub_path": "machine/FELIX Food Double 4.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Switch 0.50mm nozzle",
+ "sub_path": "machine/FELIX Food Switch 0.50mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Switch 1.00mm nozzle",
+ "sub_path": "machine/FELIX Food Switch 1.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Switch 2.00mm nozzle",
+ "sub_path": "machine/FELIX Food Switch 2.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Switch 3.00mm nozzle",
+ "sub_path": "machine/FELIX Food Switch 3.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Food Switch 4.00mm nozzle",
+ "sub_path": "machine/FELIX Food Switch 4.00mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro 3 0.25mm nozzle",
+ "sub_path": "machine/FELIX Pro 3 0.25mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro 3 0.35mm nozzle",
+ "sub_path": "machine/FELIX Pro 3 0.35mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro 3 0.50mm nozzle",
+ "sub_path": "machine/FELIX Pro 3 0.50mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro 3 0.70mm nozzle",
+ "sub_path": "machine/FELIX Pro 3 0.70mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro L 3.0 0.25mm nozzle",
+ "sub_path": "machine/FELIX Pro L 3.0 0.25mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro L 3.0 0.35mm nozzle",
+ "sub_path": "machine/FELIX Pro L 3.0 0.35mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro L 3.0 0.50mm nozzle",
+ "sub_path": "machine/FELIX Pro L 3.0 0.50mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro L 3.0 0.70mm nozzle",
+ "sub_path": "machine/FELIX Pro L 3.0 0.70mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro XL 3.0 0.25mm nozzle",
+ "sub_path": "machine/FELIX Pro XL 3.0 0.25mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro XL 3.0 0.35mm nozzle",
+ "sub_path": "machine/FELIX Pro XL 3.0 0.35mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro XL 3.0 0.50mm nozzle",
+ "sub_path": "machine/FELIX Pro XL 3.0 0.50mm nozzle.json"
+ },
+ {
+ "name": "FELIX Pro XL 3.0 0.70mm nozzle",
+ "sub_path": "machine/FELIX Pro XL 3.0 0.70mm nozzle.json"
+ },
+ {
+ "name": "FELIX Tec 4 0.25mm nozzle",
+ "sub_path": "machine/FELIX Tec 4 0.25mm nozzle.json"
+ },
+ {
+ "name": "FELIX Tec 4 0.35mm nozzle",
+ "sub_path": "machine/FELIX Tec 4 0.35mm nozzle.json"
+ },
+ {
+ "name": "FELIX Tec 4 0.50mm nozzle",
+ "sub_path": "machine/FELIX Tec 4 0.50mm nozzle.json"
+ },
+ {
+ "name": "FELIX Tec 4 0.70mm nozzle",
+ "sub_path": "machine/FELIX Tec 4 0.70mm nozzle.json"
+ }
+ ],
+ "process_list": [
+ {
+ "name": "fdm_process_common",
+ "sub_path": "process/fdm_process_common.json"
+ },
+ {
+ "name": "fdm_process_felix_food_common",
+ "sub_path": "process/fdm_process_felix_food_common.json"
+ },
+ {
+ "name": "fdm_process_felix_plastic_common",
+ "sub_path": "process/fdm_process_felix_plastic_common.json"
+ },
+ {
+ "name": "FELIX Food Coarse @ 0.50mm",
+ "sub_path": "process/FELIX Food Coarse @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Food Coarse @ 1.00mm",
+ "sub_path": "process/FELIX Food Coarse @ 1.00mm.json"
+ },
+ {
+ "name": "FELIX Food Coarse @ 2.00mm",
+ "sub_path": "process/FELIX Food Coarse @ 2.00mm.json"
+ },
+ {
+ "name": "FELIX Food Coarse @ 3.00mm",
+ "sub_path": "process/FELIX Food Coarse @ 3.00mm.json"
+ },
+ {
+ "name": "FELIX Food Coarse @ 4.00mm",
+ "sub_path": "process/FELIX Food Coarse @ 4.00mm.json"
+ },
+ {
+ "name": "FELIX Food Fine @ 0.50mm",
+ "sub_path": "process/FELIX Food Fine @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Food Fine @ 1.00mm",
+ "sub_path": "process/FELIX Food Fine @ 1.00mm.json"
+ },
+ {
+ "name": "FELIX Food Fine @ 2.00mm",
+ "sub_path": "process/FELIX Food Fine @ 2.00mm.json"
+ },
+ {
+ "name": "FELIX Food Fine @ 3.00mm",
+ "sub_path": "process/FELIX Food Fine @ 3.00mm.json"
+ },
+ {
+ "name": "FELIX Food Fine @ 4.00mm",
+ "sub_path": "process/FELIX Food Fine @ 4.00mm.json"
+ },
+ {
+ "name": "FELIX Food Normal @ 0.50mm",
+ "sub_path": "process/FELIX Food Normal @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Food Normal @ 1.00mm",
+ "sub_path": "process/FELIX Food Normal @ 1.00mm.json"
+ },
+ {
+ "name": "FELIX Food Normal @ 2.00mm",
+ "sub_path": "process/FELIX Food Normal @ 2.00mm.json"
+ },
+ {
+ "name": "FELIX Food Normal @ 3.00mm",
+ "sub_path": "process/FELIX Food Normal @ 3.00mm.json"
+ },
+ {
+ "name": "FELIX Food Normal @ 4.00mm",
+ "sub_path": "process/FELIX Food Normal @ 4.00mm.json"
+ },
+ {
+ "name": "FELIX Plastic Coarse @ 0.35mm",
+ "sub_path": "process/FELIX Plastic Coarse @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX Plastic Coarse @ 0.50mm",
+ "sub_path": "process/FELIX Plastic Coarse @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Plastic Coarse @ 0.70mm",
+ "sub_path": "process/FELIX Plastic Coarse @ 0.70mm.json"
+ },
+ {
+ "name": "FELIX Plastic Fine @ 0.25mm",
+ "sub_path": "process/FELIX Plastic Fine @ 0.25mm.json"
+ },
+ {
+ "name": "FELIX Plastic Fine @ 0.35mm",
+ "sub_path": "process/FELIX Plastic Fine @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX Plastic Fine @ 0.50mm",
+ "sub_path": "process/FELIX Plastic Fine @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Plastic Fine @ 0.70mm",
+ "sub_path": "process/FELIX Plastic Fine @ 0.70mm.json"
+ },
+ {
+ "name": "FELIX Plastic Normal @ 0.25mm",
+ "sub_path": "process/FELIX Plastic Normal @ 0.25mm.json"
+ },
+ {
+ "name": "FELIX Plastic Normal @ 0.35mm",
+ "sub_path": "process/FELIX Plastic Normal @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX Plastic Normal @ 0.50mm",
+ "sub_path": "process/FELIX Plastic Normal @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Plastic Normal @ 0.70mm",
+ "sub_path": "process/FELIX Plastic Normal @ 0.70mm.json"
+ },
+ {
+ "name": "FELIX Plastic Slightly Coarse @ 0.35mm",
+ "sub_path": "process/FELIX Plastic Slightly Coarse @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX Plastic Slightly Coarse @ 0.50mm",
+ "sub_path": "process/FELIX Plastic Slightly Coarse @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Plastic Slightly Coarse @ 0.70mm",
+ "sub_path": "process/FELIX Plastic Slightly Coarse @ 0.70mm.json"
+ },
+ {
+ "name": "FELIX Plastic Super Coarse @ 0.70mm",
+ "sub_path": "process/FELIX Plastic Super Coarse @ 0.70mm.json"
+ },
+ {
+ "name": "FELIX Plastic Super Fine @ 0.25mm",
+ "sub_path": "process/FELIX Plastic Super Fine @ 0.25mm.json"
+ },
+ {
+ "name": "FELIX Plastic Super Fine @ 0.35mm",
+ "sub_path": "process/FELIX Plastic Super Fine @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX Plastic Very Coarse @ 0.50mm",
+ "sub_path": "process/FELIX Plastic Very Coarse @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Plastic Very Coarse @ 0.70mm",
+ "sub_path": "process/FELIX Plastic Very Coarse @ 0.70mm.json"
+ },
+ {
+ "name": "FELIX Plastic Very Fine @ 0.25mm",
+ "sub_path": "process/FELIX Plastic Very Fine @ 0.25mm.json"
+ },
+ {
+ "name": "FELIX Plastic Very Fine @ 0.35mm",
+ "sub_path": "process/FELIX Plastic Very Fine @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX Plastic Very Fine @ 0.50mm",
+ "sub_path": "process/FELIX Plastic Very Fine @ 0.50mm.json"
+ }
+ ],
+ "filament_list": [
+ {
+ "name": "fdm_filament_common",
+ "sub_path": "filament/fdm_filament_common.json"
+ },
+ {
+ "name": "fdm_filament_food",
+ "sub_path": "filament/fdm_filament_food.json"
+ },
+ {
+ "name": "fdm_filament_abs",
+ "sub_path": "filament/fdm_filament_abs.json"
+ },
+ {
+ "name": "fdm_filament_asa",
+ "sub_path": "filament/fdm_filament_asa.json"
+ },
+ {
+ "name": "fdm_filament_flex",
+ "sub_path": "filament/fdm_filament_flex.json"
+ },
+ {
+ "name": "fdm_filament_pa",
+ "sub_path": "filament/fdm_filament_pa.json"
+ },
+ {
+ "name": "fdm_filament_pa11cf",
+ "sub_path": "filament/fdm_filament_pa11cf.json"
+ },
+ {
+ "name": "fdm_filament_pc",
+ "sub_path": "filament/fdm_filament_pc.json"
+ },
+ {
+ "name": "fdm_filament_pccf",
+ "sub_path": "filament/fdm_filament_pccf.json"
+ },
+ {
+ "name": "fdm_filament_pet",
+ "sub_path": "filament/fdm_filament_pet.json"
+ },
+ {
+ "name": "fdm_filament_pla",
+ "sub_path": "filament/fdm_filament_pla.json"
+ },
+ {
+ "name": "fdm_filament_pva",
+ "sub_path": "filament/fdm_filament_pva.json"
+ },
+ {
+ "name": "fdm_filament_pvb",
+ "sub_path": "filament/fdm_filament_pvb.json"
+ },
+ {
+ "name": "fdm_filament_tpu",
+ "sub_path": "filament/fdm_filament_tpu.json"
+ },
+ {
+ "name": "Food Medium Plastic Syringe @0.50mm",
+ "sub_path": "filament/FELIXFood/Food Medium Plastic Syringe @0.50mm.json"
+ },
+ {
+ "name": "Food Medium Plastic Syringe @1.00mm",
+ "sub_path": "filament/FELIXFood/Food Medium Plastic Syringe @1.00mm.json"
+ },
+ {
+ "name": "Food Medium Plastic Syringe @2.00mm",
+ "sub_path": "filament/FELIXFood/Food Medium Plastic Syringe @2.00mm.json"
+ },
+ {
+ "name": "Food Medium Plastic Syringe @3.00mm",
+ "sub_path": "filament/FELIXFood/Food Medium Plastic Syringe @3.00mm.json"
+ },
+ {
+ "name": "Food Medium Plastic Syringe @4.00mm",
+ "sub_path": "filament/FELIXFood/Food Medium Plastic Syringe @4.00mm.json"
+ },
+ {
+ "name": "Food Medium Stainless Steel Syringe @0.50mm",
+ "sub_path": "filament/FELIXFood/Food Medium Stainless Steel Syringe @0.50mm.json"
+ },
+ {
+ "name": "Food Medium Stainless Steel Syringe @1.00mm",
+ "sub_path": "filament/FELIXFood/Food Medium Stainless Steel Syringe @1.00mm.json"
+ },
+ {
+ "name": "Food Medium Stainless Steel Syringe @2.00mm",
+ "sub_path": "filament/FELIXFood/Food Medium Stainless Steel Syringe @2.00mm.json"
+ },
+ {
+ "name": "Food Medium Stainless Steel Syringe @3.00mm",
+ "sub_path": "filament/FELIXFood/Food Medium Stainless Steel Syringe @3.00mm.json"
+ },
+ {
+ "name": "Food Medium Stainless Steel Syringe @4.00mm",
+ "sub_path": "filament/FELIXFood/Food Medium Stainless Steel Syringe @4.00mm.json"
+ },
+ {
+ "name": "Food Thick Stainless Steel Syringe @0.50mm",
+ "sub_path": "filament/FELIXFood/Food Thick Stainless Steel Syringe @0.50mm.json"
+ },
+ {
+ "name": "Food Thick Stainless Steel Syringe @1.00mm",
+ "sub_path": "filament/FELIXFood/Food Thick Stainless Steel Syringe @1.00mm.json"
+ },
+ {
+ "name": "Food Thick Stainless Steel Syringe @2.00mm",
+ "sub_path": "filament/FELIXFood/Food Thick Stainless Steel Syringe @2.00mm.json"
+ },
+ {
+ "name": "Food Thick Stainless Steel Syringe @3.00mm",
+ "sub_path": "filament/FELIXFood/Food Thick Stainless Steel Syringe @3.00mm.json"
+ },
+ {
+ "name": "Food Thick Stainless Steel Syringe @4.00mm",
+ "sub_path": "filament/FELIXFood/Food Thick Stainless Steel Syringe @4.00mm.json"
+ },
+ {
+ "name": "Food Thin Plastic Syringe @0.50mm",
+ "sub_path": "filament/FELIXFood/Food Thin Plastic Syringe @0.50mm.json"
+ },
+ {
+ "name": "Food Thin Plastic Syringe @1.00mm",
+ "sub_path": "filament/FELIXFood/Food Thin Plastic Syringe @1.00mm.json"
+ },
+ {
+ "name": "Food Thin Plastic Syringe @2.00mm",
+ "sub_path": "filament/FELIXFood/Food Thin Plastic Syringe @2.00mm.json"
+ },
+ {
+ "name": "Food Thin Plastic Syringe @3.00mm",
+ "sub_path": "filament/FELIXFood/Food Thin Plastic Syringe @3.00mm.json"
+ },
+ {
+ "name": "Food Thin Plastic Syringe @4.00mm",
+ "sub_path": "filament/FELIXFood/Food Thin Plastic Syringe @4.00mm.json"
+ },
+ {
+ "name": "Food Thin Stainless Steel Syringe @0.50mm",
+ "sub_path": "filament/FELIXFood/Food Thin Stainless Steel Syringe @0.50mm.json"
+ },
+ {
+ "name": "Food Thin Stainless Steel Syringe @1.00mm",
+ "sub_path": "filament/FELIXFood/Food Thin Stainless Steel Syringe @1.00mm.json"
+ },
+ {
+ "name": "Food Thin Stainless Steel Syringe @2.00mm",
+ "sub_path": "filament/FELIXFood/Food Thin Stainless Steel Syringe @2.00mm.json"
+ },
+ {
+ "name": "Food Thin Stainless Steel Syringe @3.00mm",
+ "sub_path": "filament/FELIXFood/Food Thin Stainless Steel Syringe @3.00mm.json"
+ },
+ {
+ "name": "Food Thin Stainless Steel Syringe @4.00mm",
+ "sub_path": "filament/FELIXFood/Food Thin Stainless Steel Syringe @4.00mm.json"
+ },
+ {
+ "name": "Food Very Thick Stainless Steel Syringe @1.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thick Stainless Steel Syringe @1.00mm.json"
+ },
+ {
+ "name": "Food Very Thick Stainless Steel Syringe @2.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thick Stainless Steel Syringe @2.00mm.json"
+ },
+ {
+ "name": "Food Very Thick Stainless Steel Syringe @3.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thick Stainless Steel Syringe @3.00mm.json"
+ },
+ {
+ "name": "Food Very Thick Stainless Steel Syringe @4.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thick Stainless Steel Syringe @4.00mm.json"
+ },
+ {
+ "name": "Food Very Thin Plastic Syringe @0.50mm",
+ "sub_path": "filament/FELIXFood/Food Very Thin Plastic Syringe @0.50mm.json"
+ },
+ {
+ "name": "Food Very Thin Plastic Syringe @1.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thin Plastic Syringe @1.00mm.json"
+ },
+ {
+ "name": "Food Very Thin Plastic Syringe @2.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thin Plastic Syringe @2.00mm.json"
+ },
+ {
+ "name": "Food Very Thin Plastic Syringe @3.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thin Plastic Syringe @3.00mm.json"
+ },
+ {
+ "name": "Food Very Thin Plastic Syringe @4.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thin Plastic Syringe @4.00mm.json"
+ },
+ {
+ "name": "Food Very Thin Stainless Steel Syringe @1.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thin Stainless Steel Syringe @1.00mm.json"
+ },
+ {
+ "name": "Food Very Thin Stainless Steel Syringe @2.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thin Stainless Steel Syringe @2.00mm.json"
+ },
+ {
+ "name": "Food Very Thin Stainless Steel Syringe @3.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thin Stainless Steel Syringe @3.00mm.json"
+ },
+ {
+ "name": "Food Very Thin Stainless Steel Syringe @4.00mm",
+ "sub_path": "filament/FELIXFood/Food Very Thin Stainless Steel Syringe @4.00mm.json"
+ },
+ {
+ "name": "Food Very Thin Stainless Steel Syringe @0.50mm",
+ "sub_path": "filament/FELIXFood/Food Very Thin Stainless Steel Syringe @0.50mm.json"
+ },
+ {
+ "name": "FORMFUTURA TitanX ABS Brass @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Brass @ 0.35mm.json"
+ },
+ {
+ "name": "FORMFUTURA TitanX ABS Brass @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Brass @ 0.50mm.json"
+ },
+ {
+ "name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.25mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.25mm.json"
+ },
+ {
+ "name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.35mm.json"
+ },
+ {
+ "name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.50mm.json"
+ },
+ {
+ "name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.70mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.70mm.json"
+ },
+ {
+ "name": "Ultrafuse ABS Fusion+ Brass @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Brass @ 0.35mm.json"
+ },
+ {
+ "name": "Ultrafuse ABS Fusion+ Brass @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Brass @ 0.50mm.json"
+ },
+ {
+ "name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.25mm",
+ "sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.25mm.json"
+ },
+ {
+ "name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.35mm.json"
+ },
+ {
+ "name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.50mm.json"
+ },
+ {
+ "name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.70mm",
+ "sub_path": "filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.70mm.json"
+ },
+ {
+ "name": "FORMFUTURA AppoloX ASA Brass @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Brass @ 0.35mm.json"
+ },
+ {
+ "name": "FORMFUTURA AppoloX ASA Brass @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Brass @ 0.50mm.json"
+ },
+ {
+ "name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.25mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.25mm.json"
+ },
+ {
+ "name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.35mm.json"
+ },
+ {
+ "name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.50mm.json"
+ },
+ {
+ "name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.70mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.70mm.json"
+ },
+ {
+ "name": "FELIX FLEX Brass @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FELIX FLEX Brass @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX FLEX Brass @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FELIX FLEX Brass @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX FLEX Hardened Steel @ 0.25mm",
+ "sub_path": "filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.25mm.json"
+ },
+ {
+ "name": "FELIX FLEX Hardened Steel @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX FLEX Hardened Steel @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX FLEX Hardened Steel @ 0.70mm",
+ "sub_path": "filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.70mm.json"
+ },
+ {
+ "name": "FELIX PETG Brass @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FELIX PETG Brass @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX PETG Brass @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FELIX PETG Brass @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX PETG Hardened Steel @ 0.25mm",
+ "sub_path": "filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.25mm.json"
+ },
+ {
+ "name": "FELIX PETG Hardened Steel @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX PETG Hardened Steel @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX PETG Hardened Steel @ 0.70mm",
+ "sub_path": "filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.70mm.json"
+ },
+ {
+ "name": "FELIX Premium PLA Brass @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Premium PLA Brass @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX Premium PLA Brass @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Premium PLA Brass @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Premium PLA Hardened Steel @ 0.25mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.25mm.json"
+ },
+ {
+ "name": "FELIX Premium PLA Hardened Steel @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX Premium PLA Hardened Steel @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Premium PLA Hardened Steel @ 0.70mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.70mm.json"
+ },
+ {
+ "name": "FELIX Wood Brass @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Wood Brass @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX Wood Brass @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Wood Brass @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Wood Hardened Steel @ 0.25mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.25mm.json"
+ },
+ {
+ "name": "FELIX Wood Hardened Steel @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.35mm.json"
+ },
+ {
+ "name": "FELIX Wood Hardened Steel @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.50mm.json"
+ },
+ {
+ "name": "FELIX Wood Hardened Steel @ 0.70mm",
+ "sub_path": "filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.70mm.json"
+ },
+ {
+ "name": "FORMFUTURA ePLA Brass @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Brass @ 0.35mm.json"
+ },
+ {
+ "name": "FORMFUTURA ePLA Brass @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Brass @ 0.50mm.json"
+ },
+ {
+ "name": "FORMFUTURA ePLA Hardened Steel @ 0.25mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.25mm.json"
+ },
+ {
+ "name": "FORMFUTURA ePLA Hardened Steel @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.35mm.json"
+ },
+ {
+ "name": "FORMFUTURA ePLA Hardened Steel @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.50mm.json"
+ },
+ {
+ "name": "FORMFUTURA ePLA Hardened Steel @ 0.70mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.70mm.json"
+ },
+ {
+ "name": "FORMFUTURA Aquasolve PVA Brass @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Brass @ 0.35mm.json"
+ },
+ {
+ "name": "FORMFUTURA Aquasolve PVA Brass @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Brass @ 0.50mm.json"
+ },
+ {
+ "name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.25mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.25mm.json"
+ },
+ {
+ "name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.35mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.35mm.json"
+ },
+ {
+ "name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.50mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.50mm.json"
+ },
+ {
+ "name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.70mm",
+ "sub_path": "filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.70mm.json"
+ }
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/FELIX Build plate image.svg b/resources/profiles/FELIX Printers/FELIX Build plate image.svg
new file mode 100644
index 0000000000..b933db5aa8
--- /dev/null
+++ b/resources/profiles/FELIX Printers/FELIX Build plate image.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/profiles/FELIX Printers/FELIX Food Double_cover.png b/resources/profiles/FELIX Printers/FELIX Food Double_cover.png
new file mode 100644
index 0000000000..fc02471a1a
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX Food Double_cover.png differ
diff --git a/resources/profiles/FELIX Printers/FELIX Food Extruder.stl b/resources/profiles/FELIX Printers/FELIX Food Extruder.stl
new file mode 100644
index 0000000000..57a53ebd1a
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX Food Extruder.stl differ
diff --git a/resources/profiles/FELIX Printers/FELIX Food Series build plate texture.svg b/resources/profiles/FELIX Printers/FELIX Food Series build plate texture.svg
new file mode 100644
index 0000000000..8428f6ff1c
--- /dev/null
+++ b/resources/profiles/FELIX Printers/FELIX Food Series build plate texture.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/profiles/FELIX Printers/FELIX Food Single_cover.png b/resources/profiles/FELIX Printers/FELIX Food Single_cover.png
new file mode 100644
index 0000000000..9512a690e8
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX Food Single_cover.png differ
diff --git a/resources/profiles/FELIX Printers/FELIX Food Switch_cover.png b/resources/profiles/FELIX Printers/FELIX Food Switch_cover.png
new file mode 100644
index 0000000000..32a7aa99ea
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX Food Switch_cover.png differ
diff --git a/resources/profiles/FELIX Printers/FELIX Pro 3_cover.png b/resources/profiles/FELIX Printers/FELIX Pro 3_cover.png
new file mode 100644
index 0000000000..9c66e47163
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX Pro 3_cover.png differ
diff --git a/resources/profiles/FELIX Printers/FELIX Pro L 3.0_cover.png b/resources/profiles/FELIX Printers/FELIX Pro L 3.0_cover.png
new file mode 100644
index 0000000000..40d1c28b7c
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX Pro L 3.0_cover.png differ
diff --git a/resources/profiles/FELIX Printers/FELIX Pro L Series build plate texture.svg b/resources/profiles/FELIX Printers/FELIX Pro L Series build plate texture.svg
new file mode 100644
index 0000000000..196eb8a148
--- /dev/null
+++ b/resources/profiles/FELIX Printers/FELIX Pro L Series build plate texture.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/profiles/FELIX Printers/FELIX Pro Series build plate texture.svg b/resources/profiles/FELIX Printers/FELIX Pro Series build plate texture.svg
new file mode 100644
index 0000000000..7f2b20a972
--- /dev/null
+++ b/resources/profiles/FELIX Printers/FELIX Pro Series build plate texture.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/profiles/FELIX Printers/FELIX Pro XL 3.0_cover.png b/resources/profiles/FELIX Printers/FELIX Pro XL 3.0_cover.png
new file mode 100644
index 0000000000..b842ebc3ae
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX Pro XL 3.0_cover.png differ
diff --git a/resources/profiles/FELIX Printers/FELIX Pro XL Series build plate.svg b/resources/profiles/FELIX Printers/FELIX Pro XL Series build plate.svg
new file mode 100644
index 0000000000..a67a8a1802
--- /dev/null
+++ b/resources/profiles/FELIX Printers/FELIX Pro XL Series build plate.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/profiles/FELIX Printers/FELIX Tec 4 Series build plate.svg b/resources/profiles/FELIX Printers/FELIX Tec 4 Series build plate.svg
new file mode 100644
index 0000000000..c905019d93
--- /dev/null
+++ b/resources/profiles/FELIX Printers/FELIX Tec 4 Series build plate.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/profiles/FELIX Printers/FELIX Tec 4_cover.png b/resources/profiles/FELIX Printers/FELIX Tec 4_cover.png
new file mode 100644
index 0000000000..27dfd512af
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX Tec 4_cover.png differ
diff --git a/resources/profiles/FELIX Printers/FELIX_Food_Series_Buildplate.stl b/resources/profiles/FELIX Printers/FELIX_Food_Series_Buildplate.stl
new file mode 100644
index 0000000000..8c0e6be1cc
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX_Food_Series_Buildplate.stl differ
diff --git a/resources/profiles/FELIX Printers/FELIX_Pro_2.stl b/resources/profiles/FELIX Printers/FELIX_Pro_2.stl
new file mode 100644
index 0000000000..e189d43368
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX_Pro_2.stl differ
diff --git a/resources/profiles/FELIX Printers/FELIX_Pro_L_Series_Buildplate.stl b/resources/profiles/FELIX Printers/FELIX_Pro_L_Series_Buildplate.stl
new file mode 100644
index 0000000000..6398921492
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX_Pro_L_Series_Buildplate.stl differ
diff --git a/resources/profiles/FELIX Printers/FELIX_Pro_Series_Buildplate.stl b/resources/profiles/FELIX Printers/FELIX_Pro_Series_Buildplate.stl
new file mode 100644
index 0000000000..a3230b2c90
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX_Pro_Series_Buildplate.stl differ
diff --git a/resources/profiles/FELIX Printers/FELIX_Pro_XL_Series_Buildplate.stl b/resources/profiles/FELIX Printers/FELIX_Pro_XL_Series_Buildplate.stl
new file mode 100644
index 0000000000..69dbd24011
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX_Pro_XL_Series_Buildplate.stl differ
diff --git a/resources/profiles/FELIX Printers/FELIX_Tec_Series_Buildplate.stl b/resources/profiles/FELIX Printers/FELIX_Tec_Series_Buildplate.stl
new file mode 100644
index 0000000000..dc0c0e1dc9
Binary files /dev/null and b/resources/profiles/FELIX Printers/FELIX_Tec_Series_Buildplate.stl differ
diff --git a/resources/profiles/FELIX Printers/FelixTec4_platform.3mf b/resources/profiles/FELIX Printers/FelixTec4_platform.3mf
new file mode 100644
index 0000000000..ac7fdb8db5
Binary files /dev/null and b/resources/profiles/FELIX Printers/FelixTec4_platform.3mf differ
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @0.50mm.json
new file mode 100644
index 0000000000..fd9c0d3977
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @0.50mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Medium Plastic Syringe @0.50mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "IQnumbi0N4BnvMfO",
+ "filament_id": "OFAzgHcF",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 0.50mm nozzle",
+ "FELIX Food Double 0.50mm nozzle",
+ "FELIX Food Switch 0.50mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.05"
+ ],
+ "filament_retraction_length": [
+ "3.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "6.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "0.75"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "7.2"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @1.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @1.00mm.json
new file mode 100644
index 0000000000..c6a1527b73
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @1.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Medium Plastic Syringe @1.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "p8CG6dHMUxNl7iPL",
+ "filament_id": "OFAzgHcF",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 1.00mm nozzle",
+ "FELIX Food Double 1.00mm nozzle",
+ "FELIX Food Switch 1.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.05"
+ ],
+ "filament_retraction_length": [
+ "3.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "6.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "1.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "27.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @2.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @2.00mm.json
new file mode 100644
index 0000000000..7019d69be1
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @2.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Medium Plastic Syringe @2.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "s5uPS7I3E57tiRRC",
+ "filament_id": "OFAzgHcF",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 2.00mm nozzle",
+ "FELIX Food Double 2.00mm nozzle",
+ "FELIX Food Switch 2.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.05"
+ ],
+ "filament_retraction_length": [
+ "3.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "6.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "3.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "108.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @3.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @3.00mm.json
new file mode 100644
index 0000000000..293d8ae0fe
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @3.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Medium Plastic Syringe @3.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "zlZtghh6ytU7N09m",
+ "filament_id": "OFAzgHcF",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 3.00mm nozzle",
+ "FELIX Food Double 3.00mm nozzle",
+ "FELIX Food Switch 3.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.05"
+ ],
+ "filament_retraction_length": [
+ "3.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "6.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "4.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "216.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @4.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @4.00mm.json
new file mode 100644
index 0000000000..ede6bd9bf9
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Plastic Syringe @4.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Medium Plastic Syringe @4.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "fvTZEcREMbs3JW1D",
+ "filament_id": "OFAzgHcF",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 4.00mm nozzle",
+ "FELIX Food Double 4.00mm nozzle",
+ "FELIX Food Switch 4.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.05"
+ ],
+ "filament_retraction_length": [
+ "3.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "6.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "6.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "432.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @0.50mm.json
new file mode 100644
index 0000000000..336a20b15d
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @0.50mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Medium Stainless Steel Syringe @0.50mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "2XyqnzMqyuRCqpPq",
+ "filament_id": "OFqZSD1S",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 0.50mm nozzle",
+ "FELIX Food Double 0.50mm nozzle",
+ "FELIX Food Switch 0.50mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.05"
+ ],
+ "filament_retraction_length": [
+ "1.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "10.0"
+ ],
+ "filament_deretraction_speed": [
+ "10.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "0.75"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "7.2"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @1.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @1.00mm.json
new file mode 100644
index 0000000000..46b76ba310
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @1.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Medium Stainless Steel Syringe @1.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "yNxVUGOb1kUbXLiw",
+ "filament_id": "OFqZSD1S",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 1.00mm nozzle",
+ "FELIX Food Double 1.00mm nozzle",
+ "FELIX Food Switch 1.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.05"
+ ],
+ "filament_retraction_length": [
+ "1.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "10.0"
+ ],
+ "filament_deretraction_speed": [
+ "10.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "1.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "27.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @2.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @2.00mm.json
new file mode 100644
index 0000000000..95fa126b00
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @2.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Medium Stainless Steel Syringe @2.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "4MhgYDnGFKLfurhc",
+ "filament_id": "OFqZSD1S",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 2.00mm nozzle",
+ "FELIX Food Double 2.00mm nozzle",
+ "FELIX Food Switch 2.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.05"
+ ],
+ "filament_retraction_length": [
+ "1.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "10.0"
+ ],
+ "filament_deretraction_speed": [
+ "10.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "3.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "108.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @3.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @3.00mm.json
new file mode 100644
index 0000000000..e724896dd7
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @3.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Medium Stainless Steel Syringe @3.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "mEH3Rgzzwjq9iptd",
+ "filament_id": "OFqZSD1S",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 3.00mm nozzle",
+ "FELIX Food Double 3.00mm nozzle",
+ "FELIX Food Switch 3.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.05"
+ ],
+ "filament_retraction_length": [
+ "1.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "10.0"
+ ],
+ "filament_deretraction_speed": [
+ "10.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "4.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "216.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @4.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @4.00mm.json
new file mode 100644
index 0000000000..aa01809e29
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Medium Stainless Steel Syringe @4.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Medium Stainless Steel Syringe @4.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "rJsNSIb8w9kOwhwE",
+ "filament_id": "OFqZSD1S",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 4.00mm nozzle",
+ "FELIX Food Double 4.00mm nozzle",
+ "FELIX Food Switch 4.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.05"
+ ],
+ "filament_retraction_length": [
+ "1.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "10.0"
+ ],
+ "filament_deretraction_speed": [
+ "10.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "6.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "432.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @0.50mm.json
new file mode 100644
index 0000000000..0fed63e5b7
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @0.50mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thick Stainless Steel Syringe @0.50mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "dJzDnkh8Kyn3phhF",
+ "filament_id": "OFjXHG0Z",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 0.50mm nozzle",
+ "FELIX Food Double 0.50mm nozzle",
+ "FELIX Food Switch 0.50mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.02"
+ ],
+ "filament_retraction_length": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "4.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "0.75"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "4.8"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @1.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @1.00mm.json
new file mode 100644
index 0000000000..bc0a5378c7
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @1.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thick Stainless Steel Syringe @1.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "QQi61sD4rX2jELMa",
+ "filament_id": "OFjXHG0Z",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 1.00mm nozzle",
+ "FELIX Food Double 1.00mm nozzle",
+ "FELIX Food Switch 1.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.02"
+ ],
+ "filament_retraction_length": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "4.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "1.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "18.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @2.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @2.00mm.json
new file mode 100644
index 0000000000..6462e54742
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @2.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thick Stainless Steel Syringe @2.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "KUmfC5HZL2hXPfey",
+ "filament_id": "OFjXHG0Z",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 2.00mm nozzle",
+ "FELIX Food Double 2.00mm nozzle",
+ "FELIX Food Switch 2.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.02"
+ ],
+ "filament_retraction_length": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "4.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "3.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "72.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @3.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @3.00mm.json
new file mode 100644
index 0000000000..523639a375
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @3.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thick Stainless Steel Syringe @3.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "0BbaSUre1bztrKB0",
+ "filament_id": "OFjXHG0Z",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 3.00mm nozzle",
+ "FELIX Food Double 3.00mm nozzle",
+ "FELIX Food Switch 3.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.02"
+ ],
+ "filament_retraction_length": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "4.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "4.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "144.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @4.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @4.00mm.json
new file mode 100644
index 0000000000..ed46d348e4
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thick Stainless Steel Syringe @4.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thick Stainless Steel Syringe @4.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "b179BTbFqjhnsHPT",
+ "filament_id": "OFjXHG0Z",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 4.00mm nozzle",
+ "FELIX Food Double 4.00mm nozzle",
+ "FELIX Food Switch 4.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.02"
+ ],
+ "filament_retraction_length": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "4.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "6.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "288.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @0.50mm.json
new file mode 100644
index 0000000000..1f5bacaab3
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @0.50mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thin Plastic Syringe @0.50mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "dBTTG8HJRYb7GHqy",
+ "filament_id": "OF0kP94Y",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 0.50mm nozzle",
+ "FELIX Food Double 0.50mm nozzle",
+ "FELIX Food Switch 0.50mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.1"
+ ],
+ "filament_retraction_length": [
+ "0.75"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "1.5"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "0.75"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "10.8"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @1.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @1.00mm.json
new file mode 100644
index 0000000000..764b1bc20b
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @1.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thin Plastic Syringe @1.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "FITfR7iepAteWuno",
+ "filament_id": "OF0kP94Y",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 1.00mm nozzle",
+ "FELIX Food Double 1.00mm nozzle",
+ "FELIX Food Switch 1.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.1"
+ ],
+ "filament_retraction_length": [
+ "0.75"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "1.5"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "1.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "40.5"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @2.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @2.00mm.json
new file mode 100644
index 0000000000..5ca1baf0f6
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @2.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thin Plastic Syringe @2.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "i2DZouQfWUnIm4R5",
+ "filament_id": "OF0kP94Y",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 2.00mm nozzle",
+ "FELIX Food Double 2.00mm nozzle",
+ "FELIX Food Switch 2.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.1"
+ ],
+ "filament_retraction_length": [
+ "0.75"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "1.5"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "3.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "162.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @3.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @3.00mm.json
new file mode 100644
index 0000000000..e8dd6ff92e
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @3.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thin Plastic Syringe @3.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "EzV8T0DVT0NRPa7P",
+ "filament_id": "OF0kP94Y",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 3.00mm nozzle",
+ "FELIX Food Double 3.00mm nozzle",
+ "FELIX Food Switch 3.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.1"
+ ],
+ "filament_retraction_length": [
+ "0.75"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "1.5"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "4.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "324.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @4.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @4.00mm.json
new file mode 100644
index 0000000000..fe22e6f4d1
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Plastic Syringe @4.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thin Plastic Syringe @4.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "Q6msqrC9TM0un5qw",
+ "filament_id": "OF0kP94Y",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 4.00mm nozzle",
+ "FELIX Food Double 4.00mm nozzle",
+ "FELIX Food Switch 4.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.1"
+ ],
+ "filament_retraction_length": [
+ "0.75"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "1.5"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "6.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "648.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @0.50mm.json
new file mode 100644
index 0000000000..9ab9e676f2
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @0.50mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thin Stainless Steel Syringe @0.50mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "I9W6tiEnRSMrkyzl",
+ "filament_id": "OF40XIE8",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 0.50mm nozzle",
+ "FELIX Food Double 0.50mm nozzle",
+ "FELIX Food Switch 0.50mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.1"
+ ],
+ "filament_retraction_length": [
+ "0.2"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "10.0"
+ ],
+ "filament_deretraction_speed": [
+ "10.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "0.4"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "0.75"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "10.8"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @1.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @1.00mm.json
new file mode 100644
index 0000000000..683429891c
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @1.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thin Stainless Steel Syringe @1.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "PJpJ8TTlDajNrRJo",
+ "filament_id": "OF40XIE8",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 1.00mm nozzle",
+ "FELIX Food Double 1.00mm nozzle",
+ "FELIX Food Switch 1.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.1"
+ ],
+ "filament_retraction_length": [
+ "0.2"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "10.0"
+ ],
+ "filament_deretraction_speed": [
+ "10.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "0.4"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "1.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "40.5"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @2.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @2.00mm.json
new file mode 100644
index 0000000000..03c2f6bc9c
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @2.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thin Stainless Steel Syringe @2.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "s3GOL7BWdRbaV4GM",
+ "filament_id": "OF40XIE8",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 2.00mm nozzle",
+ "FELIX Food Double 2.00mm nozzle",
+ "FELIX Food Switch 2.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.1"
+ ],
+ "filament_retraction_length": [
+ "0.2"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "10.0"
+ ],
+ "filament_deretraction_speed": [
+ "10.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "0.4"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "3.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "162.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @3.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @3.00mm.json
new file mode 100644
index 0000000000..ea5ebc1bcb
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @3.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thin Stainless Steel Syringe @3.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "WKPEMCVctL0c5FFi",
+ "filament_id": "OF40XIE8",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 3.00mm nozzle",
+ "FELIX Food Double 3.00mm nozzle",
+ "FELIX Food Switch 3.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.1"
+ ],
+ "filament_retraction_length": [
+ "0.2"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "10.0"
+ ],
+ "filament_deretraction_speed": [
+ "10.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "0.4"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "4.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "324.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @4.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @4.00mm.json
new file mode 100644
index 0000000000..b31da52cca
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Thin Stainless Steel Syringe @4.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Thin Stainless Steel Syringe @4.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "I5UEkm93zhn9hdMF",
+ "filament_id": "OF40XIE8",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 4.00mm nozzle",
+ "FELIX Food Double 4.00mm nozzle",
+ "FELIX Food Switch 4.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.1"
+ ],
+ "filament_retraction_length": [
+ "0.2"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "10.0"
+ ],
+ "filament_deretraction_speed": [
+ "10.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "0.4"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "6.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "648.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @1.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @1.00mm.json
new file mode 100644
index 0000000000..36adb93ecf
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @1.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thick Stainless Steel Syringe @1.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "OIZKSwXaRY7WZecX",
+ "filament_id": "OF0xT5HR",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 1.00mm nozzle",
+ "FELIX Food Double 1.00mm nozzle",
+ "FELIX Food Switch 1.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_retraction_length": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "4.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "0.75"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "13.5"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @2.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @2.00mm.json
new file mode 100644
index 0000000000..2d0518da10
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @2.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thick Stainless Steel Syringe @2.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "al27KBjL9MAi3ri9",
+ "filament_id": "OF0xT5HR",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 2.00mm nozzle",
+ "FELIX Food Double 2.00mm nozzle",
+ "FELIX Food Switch 2.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_retraction_length": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "4.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "1.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "53.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @3.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @3.00mm.json
new file mode 100644
index 0000000000..fa173a64de
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @3.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thick Stainless Steel Syringe @3.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "42ADzpr7vGuh3AKC",
+ "filament_id": "OF0xT5HR",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 3.00mm nozzle",
+ "FELIX Food Double 3.00mm nozzle",
+ "FELIX Food Switch 3.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_retraction_length": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "4.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "3.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "108.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @4.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @4.00mm.json
new file mode 100644
index 0000000000..97f76a52ba
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thick Stainless Steel Syringe @4.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thick Stainless Steel Syringe @4.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "FpQC7Cf5qnW1E2QO",
+ "filament_id": "OF0xT5HR",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 4.00mm nozzle",
+ "FELIX Food Double 4.00mm nozzle",
+ "FELIX Food Switch 4.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_retraction_length": [
+ "2.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "4.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "4.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "216.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @0.50mm.json
new file mode 100644
index 0000000000..d569b3367e
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @0.50mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thin Plastic Syringe @0.50mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "9OMbRBrVCyDD6A2k",
+ "filament_id": "OF1XcHqz",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 0.50mm nozzle",
+ "FELIX Food Double 0.50mm nozzle",
+ "FELIX Food Switch 0.50mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_retraction_length": [
+ "0.5"
+ ],
+ "filament_retract_restart_extra": [
+ "0.03"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "1.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "0.75"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "14.4"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @1.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @1.00mm.json
new file mode 100644
index 0000000000..c23da89567
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @1.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thin Plastic Syringe @1.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "ukd2jpvA1sHePEfs",
+ "filament_id": "OF1XcHqz",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 1.00mm nozzle",
+ "FELIX Food Double 1.00mm nozzle",
+ "FELIX Food Switch 1.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_retraction_length": [
+ "0.5"
+ ],
+ "filament_retract_restart_extra": [
+ "0.03"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "1.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "1.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "54.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @2.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @2.00mm.json
new file mode 100644
index 0000000000..b779793843
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @2.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thin Plastic Syringe @2.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "jXkY0MPClCiaCJGC",
+ "filament_id": "OF1XcHqz",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 2.00mm nozzle",
+ "FELIX Food Double 2.00mm nozzle",
+ "FELIX Food Switch 2.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_retraction_length": [
+ "0.5"
+ ],
+ "filament_retract_restart_extra": [
+ "0.03"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "1.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "3.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "218.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @3.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @3.00mm.json
new file mode 100644
index 0000000000..7a6235b6e0
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @3.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thin Plastic Syringe @3.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "jSTp7ePK9UKaNX3S",
+ "filament_id": "OF1XcHqz",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 3.00mm nozzle",
+ "FELIX Food Double 3.00mm nozzle",
+ "FELIX Food Switch 3.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_retraction_length": [
+ "0.5"
+ ],
+ "filament_retract_restart_extra": [
+ "0.03"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "1.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "4.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "432.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @4.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @4.00mm.json
new file mode 100644
index 0000000000..3d6de5dfe2
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Plastic Syringe @4.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thin Plastic Syringe @4.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "q3tLnporrSrlZl6S",
+ "filament_id": "OF1XcHqz",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 4.00mm nozzle",
+ "FELIX Food Double 4.00mm nozzle",
+ "FELIX Food Switch 4.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "31.22"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_retraction_length": [
+ "0.5"
+ ],
+ "filament_retract_restart_extra": [
+ "0.03"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "1.0"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.0"
+ ],
+ "filament_wipe_distance": [
+ "6.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "864.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @1.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @1.00mm.json
new file mode 100644
index 0000000000..ce5fbfaccc
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @1.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thin Stainless Steel Syringe @1.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "ZGtJ5dq6QEFrRzER",
+ "filament_id": "OFJDz9xO",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 1.00mm nozzle",
+ "FELIX Food Double 1.00mm nozzle",
+ "FELIX Food Switch 1.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_retraction_length": [
+ "0.1"
+ ],
+ "filament_retract_restart_extra": [
+ "0.03"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "0.2"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.03"
+ ],
+ "filament_wipe_distance": [
+ "1.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "54.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @2.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @2.00mm.json
new file mode 100644
index 0000000000..ae9f07878d
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @2.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thin Stainless Steel Syringe @2.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "il7EvApOb39ReoAt",
+ "filament_id": "OFJDz9xO",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 2.00mm nozzle",
+ "FELIX Food Double 2.00mm nozzle",
+ "FELIX Food Switch 2.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_retraction_length": [
+ "0.1"
+ ],
+ "filament_retract_restart_extra": [
+ "0.03"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "0.2"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.03"
+ ],
+ "filament_wipe_distance": [
+ "3.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "216.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @3.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @3.00mm.json
new file mode 100644
index 0000000000..48ff3e6a4b
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @3.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thin Stainless Steel Syringe @3.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "yTSl3aV0S2HD6zPy",
+ "filament_id": "OFJDz9xO",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 3.00mm nozzle",
+ "FELIX Food Double 3.00mm nozzle",
+ "FELIX Food Switch 3.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_retraction_length": [
+ "0.1"
+ ],
+ "filament_retract_restart_extra": [
+ "0.03"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "0.2"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.03"
+ ],
+ "filament_wipe_distance": [
+ "4.5"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "432.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @4.00mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @4.00mm.json
new file mode 100644
index 0000000000..c1c3f46fe4
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @4.00mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thin Stainless Steel Syringe @4.00mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "JfnwH4HjP0CQKuyr",
+ "filament_id": "OFJDz9xO",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 4.00mm nozzle",
+ "FELIX Food Double 4.00mm nozzle",
+ "FELIX Food Switch 4.00mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_retraction_length": [
+ "0.1"
+ ],
+ "filament_retract_restart_extra": [
+ "0.03"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "0.2"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.03"
+ ],
+ "filament_wipe_distance": [
+ "6.0"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "864.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @0.50mm.json
new file mode 100644
index 0000000000..6940fc9afa
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXFood/Food Very Thin Stainless Steel Syringe @0.50mm.json
@@ -0,0 +1,47 @@
+{
+ "type": "filament",
+ "name": "Food Very Thin Stainless Steel Syringe @0.50mm",
+ "inherits": "fdm_filament_food",
+ "from": "system",
+ "setting_id": "mIgwxwB2N67qAhxk",
+ "filament_id": "OFASY29j",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 0.50mm nozzle",
+ "FELIX Food Double 0.50mm nozzle",
+ "FELIX Food Switch 0.50mm nozzle"
+ ],
+ "filament_diameter": [
+ "25.4"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_retraction_length": [
+ "0.1"
+ ],
+ "filament_retract_restart_extra": [
+ "0.03"
+ ],
+ "filament_retraction_speed": [
+ "5.0"
+ ],
+ "filament_deretraction_speed": [
+ "5.0"
+ ],
+ "filament_retract_length_toolchange": [
+ "0.2"
+ ],
+ "filament_retract_restart_extra_toolchange": [
+ "0.03"
+ ],
+ "filament_wipe_distance": [
+ "0.75"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ],
+ "filament_max_volumetric_speed": [
+ "14.4"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Brass @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Brass @ 0.35mm.json
new file mode 100644
index 0000000000..4497ecfa0f
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Brass @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX FLEX Brass @ 0.35mm",
+ "inherits": "fdm_filament_flex",
+ "from": "system",
+ "setting_id": "UXX0sEaoqZvdXwi6",
+ "filament_id": "OFF6vK3j",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "215.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "215.0"
+ ],
+ "hot_plate_temp": [
+ "40.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "cool_plate_temp": [
+ "40.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "eng_plate_temp": [
+ "40.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "textured_plate_temp": [
+ "40.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.2"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.38"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Brass @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Brass @ 0.50mm.json
new file mode 100644
index 0000000000..93e0abea5c
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Brass @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX FLEX Brass @ 0.50mm",
+ "inherits": "fdm_filament_flex",
+ "from": "system",
+ "setting_id": "B4AmHHxdvhsjN34a",
+ "filament_id": "OFF6vK3j",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "215.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "215.0"
+ ],
+ "hot_plate_temp": [
+ "40.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "cool_plate_temp": [
+ "40.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "eng_plate_temp": [
+ "40.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "textured_plate_temp": [
+ "40.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.2"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.38"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.25mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.25mm.json
new file mode 100644
index 0000000000..b58fdd114e
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.25mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX FLEX Hardened Steel @ 0.25mm",
+ "inherits": "fdm_filament_flex",
+ "from": "system",
+ "setting_id": "7z6rkaF5DBbiccZP",
+ "filament_id": "OFSOY4F3",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "225.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "225.0"
+ ],
+ "hot_plate_temp": [
+ "40.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "cool_plate_temp": [
+ "40.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "eng_plate_temp": [
+ "40.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "textured_plate_temp": [
+ "40.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.2"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.38"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.35mm.json
new file mode 100644
index 0000000000..03c1885ac8
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX FLEX Hardened Steel @ 0.35mm",
+ "inherits": "fdm_filament_flex",
+ "from": "system",
+ "setting_id": "DJRiMo6Aq0BvhFC9",
+ "filament_id": "OFSOY4F3",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "225.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "225.0"
+ ],
+ "hot_plate_temp": [
+ "40.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "cool_plate_temp": [
+ "40.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "eng_plate_temp": [
+ "40.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "textured_plate_temp": [
+ "40.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.2"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.38"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.50mm.json
new file mode 100644
index 0000000000..de15baa8cc
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX FLEX Hardened Steel @ 0.50mm",
+ "inherits": "fdm_filament_flex",
+ "from": "system",
+ "setting_id": "xgFrl1QpyQFFqBYz",
+ "filament_id": "OFSOY4F3",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "225.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "225.0"
+ ],
+ "hot_plate_temp": [
+ "40.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "cool_plate_temp": [
+ "40.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "eng_plate_temp": [
+ "40.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "textured_plate_temp": [
+ "40.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.2"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.38"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.70mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.70mm.json
new file mode 100644
index 0000000000..2eded7d3e5
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX FLEX Hardened Steel @ 0.70mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX FLEX Hardened Steel @ 0.70mm",
+ "inherits": "fdm_filament_flex",
+ "from": "system",
+ "setting_id": "eZf8u1vzaQbsjyqO",
+ "filament_id": "OFSOY4F3",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "225.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "225.0"
+ ],
+ "hot_plate_temp": [
+ "40.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "cool_plate_temp": [
+ "40.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "eng_plate_temp": [
+ "40.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "textured_plate_temp": [
+ "40.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "40.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.2"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.38"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Brass @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Brass @ 0.35mm.json
new file mode 100644
index 0000000000..86bca18b04
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Brass @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX PETG Brass @ 0.35mm",
+ "inherits": "fdm_filament_pet",
+ "from": "system",
+ "setting_id": "KZzk6aIxMvt1JlOR",
+ "filament_id": "OF17qLwN",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "220.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "220.0"
+ ],
+ "hot_plate_temp": [
+ "75.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "cool_plate_temp": [
+ "75.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "eng_plate_temp": [
+ "75.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "textured_plate_temp": [
+ "75.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.2"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.27"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Brass @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Brass @ 0.50mm.json
new file mode 100644
index 0000000000..b08386f4ce
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Brass @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX PETG Brass @ 0.50mm",
+ "inherits": "fdm_filament_pet",
+ "from": "system",
+ "setting_id": "RWPOGeCx1EEYeV8R",
+ "filament_id": "OF17qLwN",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "220.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "220.0"
+ ],
+ "hot_plate_temp": [
+ "75.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "cool_plate_temp": [
+ "75.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "eng_plate_temp": [
+ "75.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "textured_plate_temp": [
+ "75.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.2"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.27"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.25mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.25mm.json
new file mode 100644
index 0000000000..f65fee3098
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.25mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX PETG Hardened Steel @ 0.25mm",
+ "inherits": "fdm_filament_pet",
+ "from": "system",
+ "setting_id": "5RK6gGxFKyADXi4x",
+ "filament_id": "OFQo5ZHk",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "235.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235.0"
+ ],
+ "hot_plate_temp": [
+ "75.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "cool_plate_temp": [
+ "75.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "eng_plate_temp": [
+ "75.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "textured_plate_temp": [
+ "75.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.2"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.27"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.35mm.json
new file mode 100644
index 0000000000..9eefe286ae
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX PETG Hardened Steel @ 0.35mm",
+ "inherits": "fdm_filament_pet",
+ "from": "system",
+ "setting_id": "rz08j2cn8mlnvAxh",
+ "filament_id": "OFQo5ZHk",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "235.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235.0"
+ ],
+ "hot_plate_temp": [
+ "75.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "cool_plate_temp": [
+ "75.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "eng_plate_temp": [
+ "75.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "textured_plate_temp": [
+ "75.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.2"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.27"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.50mm.json
new file mode 100644
index 0000000000..e3919bece6
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX PETG Hardened Steel @ 0.50mm",
+ "inherits": "fdm_filament_pet",
+ "from": "system",
+ "setting_id": "1xOwhrqAqJVO48d0",
+ "filament_id": "OFQo5ZHk",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "235.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235.0"
+ ],
+ "hot_plate_temp": [
+ "75.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "cool_plate_temp": [
+ "75.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "eng_plate_temp": [
+ "75.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "textured_plate_temp": [
+ "75.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.2"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.27"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.70mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.70mm.json
new file mode 100644
index 0000000000..4103bbfb67
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX PETG Hardened Steel @ 0.70mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX PETG Hardened Steel @ 0.70mm",
+ "inherits": "fdm_filament_pet",
+ "from": "system",
+ "setting_id": "I2QXz0yDQN6ULNeF",
+ "filament_id": "OFQo5ZHk",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "235.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235.0"
+ ],
+ "hot_plate_temp": [
+ "75.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "cool_plate_temp": [
+ "75.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "eng_plate_temp": [
+ "75.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "textured_plate_temp": [
+ "75.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "75.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.2"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "60.0"
+ ],
+ "fan_max_speed": [
+ "60.0"
+ ],
+ "filament_density": [
+ "1.27"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Brass @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Brass @ 0.35mm.json
new file mode 100644
index 0000000000..51ee49b4b1
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Brass @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Premium PLA Brass @ 0.35mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "6Ax3SY7RI04PcFFJ",
+ "filament_id": "OF8sLgrm",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "190.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "190.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Brass @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Brass @ 0.50mm.json
new file mode 100644
index 0000000000..7683715e2f
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Brass @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Premium PLA Brass @ 0.50mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "TzRWTEZl14IWlhrc",
+ "filament_id": "OF8sLgrm",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "190.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "190.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.25mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.25mm.json
new file mode 100644
index 0000000000..5f3e2878b2
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.25mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Premium PLA Hardened Steel @ 0.25mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "RtjX1Noxcsnv5cHv",
+ "filament_id": "OFi00jWL",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "205.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "205.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.35mm.json
new file mode 100644
index 0000000000..8292aa5211
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Premium PLA Hardened Steel @ 0.35mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "aQI8mIoLrX3liAlM",
+ "filament_id": "OFi00jWL",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "205.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "205.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.50mm.json
new file mode 100644
index 0000000000..752cadbdeb
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Premium PLA Hardened Steel @ 0.50mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "pdnfmqbhfYXV8MAj",
+ "filament_id": "OFi00jWL",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "205.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "205.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.70mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.70mm.json
new file mode 100644
index 0000000000..cdd49c2df0
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Premium PLA Hardened Steel @ 0.70mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Premium PLA Hardened Steel @ 0.70mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "BDxehnk3kKVRlysR",
+ "filament_id": "OFi00jWL",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "205.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "205.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Brass @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Brass @ 0.35mm.json
new file mode 100644
index 0000000000..8c49d2b969
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Brass @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Wood Brass @ 0.35mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "nRikN9oc1mOeA6dO",
+ "filament_id": "OF7CzDzq",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "185.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "185.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.15"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Brass @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Brass @ 0.50mm.json
new file mode 100644
index 0000000000..d25929324f
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Brass @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Wood Brass @ 0.50mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "SF4eGuHqUCtfEAGy",
+ "filament_id": "OFKwdz3w",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "185.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "185.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.15"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.25mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.25mm.json
new file mode 100644
index 0000000000..9a21c36383
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.25mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Wood Hardened Steel @ 0.25mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "AkZV2IjFVNLytIaY",
+ "filament_id": "OFsMMDMp",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "200.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "200.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.15"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.35mm.json
new file mode 100644
index 0000000000..627a0d1aa8
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Wood Hardened Steel @ 0.35mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "MEGMFP2nv59vZSpf",
+ "filament_id": "OFsMMDMp",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "200.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "200.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.15"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.50mm.json
new file mode 100644
index 0000000000..c35845a875
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Wood Hardened Steel @ 0.50mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "ObSufa3ZQ8tUmJUB",
+ "filament_id": "OFsMMDMp",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "200.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "200.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.15"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.70mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.70mm.json
new file mode 100644
index 0000000000..832512731e
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FELIX Wood Hardened Steel @ 0.70mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FELIX Wood Hardened Steel @ 0.70mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "LCRYcNn6HN4lviM2",
+ "filament_id": "OFsMMDMp",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "200.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "200.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "60.0"
+ ],
+ "filament_retraction_speed": [
+ "60.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.15"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_vendor": [
+ "FELIX Printers"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Brass @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Brass @ 0.35mm.json
new file mode 100644
index 0000000000..def34e2ba7
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Brass @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA AppoloX ASA Brass @ 0.35mm",
+ "inherits": "fdm_filament_asa",
+ "from": "system",
+ "setting_id": "gRmosSxV2WFOgLAa",
+ "filament_id": "OFEUX7D3",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "235.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.07"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Brass @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Brass @ 0.50mm.json
new file mode 100644
index 0000000000..7133572104
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Brass @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA AppoloX ASA Brass @ 0.50mm",
+ "inherits": "fdm_filament_asa",
+ "from": "system",
+ "setting_id": "iXdebkq6x0RsCLSh",
+ "filament_id": "OFEUX7D3",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "235.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "235.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.07"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.25mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.25mm.json
new file mode 100644
index 0000000000..2f0e9b6e1a
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.25mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.25mm",
+ "inherits": "fdm_filament_asa",
+ "from": "system",
+ "setting_id": "vDwvCcVTrlXsApST",
+ "filament_id": "OFguQdOr",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "245.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "245.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.07"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.35mm.json
new file mode 100644
index 0000000000..4ef2fe7e66
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.35mm",
+ "inherits": "fdm_filament_asa",
+ "from": "system",
+ "setting_id": "WdP7DnbgAI8O4JOR",
+ "filament_id": "OFguQdOr",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "245.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "245.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.07"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.50mm.json
new file mode 100644
index 0000000000..3c59dde2e9
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.50mm",
+ "inherits": "fdm_filament_asa",
+ "from": "system",
+ "setting_id": "wwPIQoP8z2kiDq6c",
+ "filament_id": "OFguQdOr",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "245.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "245.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.96"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.07"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.70mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.70mm.json
new file mode 100644
index 0000000000..6e7130e1ed
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA AppoloX ASA Hardened Steel @ 0.70mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA AppoloX ASA Hardened Steel @ 0.70mm",
+ "inherits": "fdm_filament_asa",
+ "from": "system",
+ "setting_id": "pc50UjGaC3hGbzLo",
+ "filament_id": "OFguQdOr",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "245.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "245.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.4"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.94"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.07"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Brass @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Brass @ 0.35mm.json
new file mode 100644
index 0000000000..c6b22edf1f
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Brass @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA Aquasolve PVA Brass @ 0.35mm",
+ "inherits": "fdm_filament_pva",
+ "from": "system",
+ "setting_id": "BJplNxEdFo9WucQi",
+ "filament_id": "OFumEwBr",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "195.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "195.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "55.0"
+ ],
+ "filament_retraction_speed": [
+ "55.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.2"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.23"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Brass @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Brass @ 0.50mm.json
new file mode 100644
index 0000000000..ed17ef07fa
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Brass @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA Aquasolve PVA Brass @ 0.50mm",
+ "inherits": "fdm_filament_pva",
+ "from": "system",
+ "setting_id": "EcGwm5A12REi6etq",
+ "filament_id": "OFumEwBr",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "195.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "195.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "55.0"
+ ],
+ "filament_retraction_speed": [
+ "55.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.2"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.23"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.25mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.25mm.json
new file mode 100644
index 0000000000..9e8a0a90f8
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.25mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.25mm",
+ "inherits": "fdm_filament_pva",
+ "from": "system",
+ "setting_id": "Dd4dc8lFUOaswJKt",
+ "filament_id": "OFQ3GEWL",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "205.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "205.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "55.0"
+ ],
+ "filament_retraction_speed": [
+ "55.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.2"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.23"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.35mm.json
new file mode 100644
index 0000000000..6e5c50b09a
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.35mm",
+ "inherits": "fdm_filament_pva",
+ "from": "system",
+ "setting_id": "3JJ4fQmtK1Ukauyz",
+ "filament_id": "OFQ3GEWL",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "205.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "205.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "55.0"
+ ],
+ "filament_retraction_speed": [
+ "55.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.2"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.23"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.50mm.json
new file mode 100644
index 0000000000..25597fe2a5
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.50mm",
+ "inherits": "fdm_filament_pva",
+ "from": "system",
+ "setting_id": "K8AI1KXSsESZvmOI",
+ "filament_id": "OFQ3GEWL",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "205.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "205.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "55.0"
+ ],
+ "filament_retraction_speed": [
+ "55.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.2"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.23"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.70mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.70mm.json
new file mode 100644
index 0000000000..e9e42bb6ea
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA Aquasolve PVA Hardened Steel @ 0.70mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA Aquasolve PVA Hardened Steel @ 0.70mm",
+ "inherits": "fdm_filament_pva",
+ "from": "system",
+ "setting_id": "zd6mqKKTLROAclKj",
+ "filament_id": "OFQ3GEWL",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "205.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "205.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "2.5"
+ ],
+ "filament_retract_speed": [
+ "55.0"
+ ],
+ "filament_retraction_speed": [
+ "55.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.2"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.23"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Brass @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Brass @ 0.35mm.json
new file mode 100644
index 0000000000..ce66c8e938
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Brass @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA TitanX ABS Brass @ 0.35mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "FVZ4hAQ2BnhoucfC",
+ "filament_id": "OF8FP7CM",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "245.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "245.0"
+ ],
+ "hot_plate_temp": [
+ "85.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "cool_plate_temp": [
+ "85.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "eng_plate_temp": [
+ "85.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "textured_plate_temp": [
+ "85.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "2.0"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.97"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.1"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Brass @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Brass @ 0.50mm.json
new file mode 100644
index 0000000000..39fcf91e18
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Brass @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA TitanX ABS Brass @ 0.50mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "kd0uoaXO3Iuox8Kx",
+ "filament_id": "OF8FP7CM",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "245.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "245.0"
+ ],
+ "hot_plate_temp": [
+ "85.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "cool_plate_temp": [
+ "85.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "eng_plate_temp": [
+ "85.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "textured_plate_temp": [
+ "85.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "2.0"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.97"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.1"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.25mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.25mm.json
new file mode 100644
index 0000000000..94bc142e4a
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.25mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.25mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "zA2tNH54ew9HLvng",
+ "filament_id": "OFUG6JEQ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "250.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "250.0"
+ ],
+ "hot_plate_temp": [
+ "85.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "cool_plate_temp": [
+ "85.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "eng_plate_temp": [
+ "85.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "textured_plate_temp": [
+ "85.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "2.0"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.97"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.1"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.35mm.json
new file mode 100644
index 0000000000..57fca247e6
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.35mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "xRkb2JzDHIJVLa6x",
+ "filament_id": "OFUG6JEQ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "250.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "250.0"
+ ],
+ "hot_plate_temp": [
+ "85.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "cool_plate_temp": [
+ "85.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "eng_plate_temp": [
+ "85.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "textured_plate_temp": [
+ "85.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "2.0"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.97"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.1"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.50mm.json
new file mode 100644
index 0000000000..edf2ac9dc4
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.50mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "fbLyhVGnJANBkUXv",
+ "filament_id": "OFUG6JEQ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "250.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "250.0"
+ ],
+ "hot_plate_temp": [
+ "85.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "cool_plate_temp": [
+ "85.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "eng_plate_temp": [
+ "85.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "textured_plate_temp": [
+ "85.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "2.0"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.97"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.1"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.70mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.70mm.json
new file mode 100644
index 0000000000..38a4cf5d21
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA TitanX ABS Hardened Steel @ 0.70mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA TitanX ABS Hardened Steel @ 0.70mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "AmsfDUahBjq8zUq8",
+ "filament_id": "OFUG6JEQ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "250.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "250.0"
+ ],
+ "hot_plate_temp": [
+ "85.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "cool_plate_temp": [
+ "85.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "eng_plate_temp": [
+ "85.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "textured_plate_temp": [
+ "85.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "85.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "2.0"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.0"
+ ],
+ "filament_flow_ratio": [
+ "0.97"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.1"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Brass @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Brass @ 0.35mm.json
new file mode 100644
index 0000000000..ffa6b3e456
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Brass @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA ePLA Brass @ 0.35mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "2CCo1KKrpDp3YhBX",
+ "filament_id": "OFxrIB3K",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "205.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "205.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.0"
+ ],
+ "filament_retract_speed": [
+ "40.0"
+ ],
+ "filament_retraction_speed": [
+ "40.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Brass @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Brass @ 0.50mm.json
new file mode 100644
index 0000000000..3b34e87aef
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Brass @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA ePLA Brass @ 0.50mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "5cMXaBCDQDehP8PI",
+ "filament_id": "OFxrIB3K",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "205.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "205.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.0"
+ ],
+ "filament_retract_speed": [
+ "40.0"
+ ],
+ "filament_retraction_speed": [
+ "40.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.25mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.25mm.json
new file mode 100644
index 0000000000..1f03f3011d
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.25mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA ePLA Hardened Steel @ 0.25mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "iTv4JjvAkWFh7NES",
+ "filament_id": "OFXW3h11",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "215.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "215.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.0"
+ ],
+ "filament_retract_speed": [
+ "40.0"
+ ],
+ "filament_retraction_speed": [
+ "40.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.35mm.json
new file mode 100644
index 0000000000..9628af6dde
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA ePLA Hardened Steel @ 0.35mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "EefsgeXTQ6SNi0Ja",
+ "filament_id": "OFXW3h11",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "215.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "215.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.0"
+ ],
+ "filament_retract_speed": [
+ "40.0"
+ ],
+ "filament_retraction_speed": [
+ "40.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.50mm.json
new file mode 100644
index 0000000000..0203b7860d
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA ePLA Hardened Steel @ 0.50mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "6ZcKggEvaIuB5DZq",
+ "filament_id": "OFXW3h11",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "215.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "215.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.0"
+ ],
+ "filament_retract_speed": [
+ "40.0"
+ ],
+ "filament_retraction_speed": [
+ "40.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.70mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.70mm.json
new file mode 100644
index 0000000000..d56f420a3b
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/FORMFUTURA ePLA Hardened Steel @ 0.70mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "FORMFUTURA ePLA Hardened Steel @ 0.70mm",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "setting_id": "Pq8oBdovfd0PecTn",
+ "filament_id": "OFXW3h11",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "215.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "215.0"
+ ],
+ "hot_plate_temp": [
+ "55.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "cool_plate_temp": [
+ "55.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "eng_plate_temp": [
+ "55.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "textured_plate_temp": [
+ "55.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "55.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "120"
+ ],
+ "filament_retract_length": [
+ "1.0"
+ ],
+ "filament_retract_speed": [
+ "40.0"
+ ],
+ "filament_retraction_speed": [
+ "40.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "100.0"
+ ],
+ "fan_max_speed": [
+ "100.0"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_vendor": [
+ "FORMFUTURA"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Brass @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Brass @ 0.35mm.json
new file mode 100644
index 0000000000..32b1e1a690
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Brass @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "Ultrafuse ABS Fusion+ Brass @ 0.35mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "n2E43foPbpAU0s2d",
+ "filament_id": "OFyzD9L0",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "265.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "265.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.6"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.08"
+ ],
+ "filament_vendor": [
+ "Ultrafuse"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Brass @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Brass @ 0.50mm.json
new file mode 100644
index 0000000000..b49bb8f02b
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Brass @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "Ultrafuse ABS Fusion+ Brass @ 0.50mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "J0sO8YVsUXIwR3mp",
+ "filament_id": "OFyzD9L0",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "265.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "265.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.6"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.08"
+ ],
+ "filament_vendor": [
+ "Ultrafuse"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.25mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.25mm.json
new file mode 100644
index 0000000000..ac3fecd251
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.25mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.25mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "XZQ072NfSJLIfcRo",
+ "filament_id": "OFDCDwNQ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "275.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "275.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.6"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.08"
+ ],
+ "filament_vendor": [
+ "Ultrafuse"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.35mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.35mm.json
new file mode 100644
index 0000000000..70dc07ac3a
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.35mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.35mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "TYWYaDx8qjNurPzD",
+ "filament_id": "OFDCDwNQ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "275.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "275.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.6"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.08"
+ ],
+ "filament_vendor": [
+ "Ultrafuse"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.50mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.50mm.json
new file mode 100644
index 0000000000..cf7e0cf4e5
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.50mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.50mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "iYZ4S4KK6kvo9EMB",
+ "filament_id": "OFDCDwNQ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "275.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "275.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.6"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.08"
+ ],
+ "filament_vendor": [
+ "Ultrafuse"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.70mm.json b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.70mm.json
new file mode 100644
index 0000000000..b00bfa1fd2
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/FELIXPlastic/Ultrafuse ABS Fusion+ Hardened Steel @ 0.70mm.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "Ultrafuse ABS Fusion+ Hardened Steel @ 0.70mm",
+ "inherits": "fdm_filament_abs",
+ "from": "system",
+ "setting_id": "HEmC2PGR1XuZxmGa",
+ "filament_id": "OFDCDwNQ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "nozzle_temperature": [
+ "270.0"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "270.0"
+ ],
+ "hot_plate_temp": [
+ "90.0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "cool_plate_temp": [
+ "90.0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "eng_plate_temp": [
+ "90.0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "textured_plate_temp": [
+ "90.0"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "90.0"
+ ],
+ "chamber_temperature": [
+ "28.0"
+ ],
+ "idle_temperature": [
+ "140"
+ ],
+ "filament_retract_length": [
+ "1.6"
+ ],
+ "filament_retract_speed": [
+ "50.0"
+ ],
+ "filament_retraction_speed": [
+ "50.0"
+ ],
+ "filament_retract_restart_extra": [
+ "0.05"
+ ],
+ "filament_flow_ratio": [
+ "1.0"
+ ],
+ "filament_max_volumetric_speed": [
+ "12.0"
+ ],
+ "fan_min_speed": [
+ "40.0"
+ ],
+ "fan_max_speed": [
+ "40.0"
+ ],
+ "filament_density": [
+ "1.08"
+ ],
+ "filament_vendor": [
+ "Ultrafuse"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_abs.json b/resources/profiles/FELIX Printers/filament/fdm_filament_abs.json
new file mode 100644
index 0000000000..6e833fd40f
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_abs.json
@@ -0,0 +1,84 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_abs",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OFvVOjhV",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "105"
+ ],
+ "eng_plate_temp": [
+ "105"
+ ],
+ "hot_plate_temp": [
+ "105"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "105"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "105"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "105"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "30"
+ ],
+ "filament_max_volumetric_speed": [
+ "28.6"
+ ],
+ "filament_type": [
+ "ABS"
+ ],
+ "filament_density": [
+ "1.04"
+ ],
+ "filament_cost": [
+ "20"
+ ],
+ "idle_temperature": "0",
+ "nozzle_temperature_initial_layer": [
+ "260"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "80"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "overhang_fan_speed": [
+ "80"
+ ],
+ "nozzle_temperature": [
+ "260"
+ ],
+ "temperature_vitrification": [
+ "110"
+ ],
+ "nozzle_temperature_range_low": [
+ "240"
+ ],
+ "nozzle_temperature_range_high": [
+ "270"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "3"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_asa.json b/resources/profiles/FELIX Printers/filament/fdm_filament_asa.json
new file mode 100644
index 0000000000..3aa054f870
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_asa.json
@@ -0,0 +1,84 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_asa",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OF8lb7Zg",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "105"
+ ],
+ "eng_plate_temp": [
+ "105"
+ ],
+ "hot_plate_temp": [
+ "105"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "105"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "105"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "105"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "35"
+ ],
+ "filament_max_volumetric_speed": [
+ "28.6"
+ ],
+ "filament_type": [
+ "ASA"
+ ],
+ "filament_density": [
+ "1.04"
+ ],
+ "filament_cost": [
+ "20"
+ ],
+ "idle_temperature": "0",
+ "nozzle_temperature_initial_layer": [
+ "260"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "80"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "overhang_fan_speed": [
+ "80"
+ ],
+ "nozzle_temperature": [
+ "260"
+ ],
+ "temperature_vitrification": [
+ "110"
+ ],
+ "nozzle_temperature_range_low": [
+ "240"
+ ],
+ "nozzle_temperature_range_high": [
+ "270"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "3"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_common.json b/resources/profiles/FELIX Printers/filament/fdm_filament_common.json
new file mode 100644
index 0000000000..a77e6172c1
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_common.json
@@ -0,0 +1,49 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_common",
+ "from": "system",
+ "instantiation": "false",
+ "cool_plate_temp": ["60"],
+ "eng_plate_temp": ["60"],
+ "hot_plate_temp": ["60"],
+ "cool_plate_temp_initial_layer": ["60"],
+ "eng_plate_temp_initial_layer": ["60"],
+ "hot_plate_temp_initial_layer": ["60"],
+ "overhang_fan_threshold": ["95%"],
+ "overhang_fan_speed": ["100"],
+ "slow_down_for_layer_cooling": ["1"],
+ "close_fan_the_first_x_layers": ["3"],
+ "filament_end_gcode": ["; filament end gcode \n"],
+ "filament_flow_ratio": ["1"],
+ "reduce_fan_stop_start_freq": ["0"],
+ "fan_cooling_layer_time": ["60"],
+ "filament_cost": ["0"],
+ "filament_density": ["0"],
+ "filament_deretraction_speed": ["nil"],
+ "filament_diameter": ["1.75"],
+ "filament_max_volumetric_speed": ["12"],
+ "filament_minimal_purge_on_wipe_tower": ["15"],
+ "filament_retraction_minimum_travel": ["nil"],
+ "filament_retract_before_wipe": ["nil"],
+ "filament_retract_when_changing_layer": ["nil"],
+ "filament_retraction_length": ["nil"],
+ "filament_z_hop": ["nil"],
+ "filament_retract_restart_extra": ["nil"],
+ "filament_retraction_speed": ["nil"],
+ "filament_settings_id": [""],
+ "filament_soluble": ["0"],
+ "filament_type": ["PLA"],
+ "filament_vendor": ["Generic"],
+ "filament_wipe": ["nil"],
+ "filament_wipe_distance": ["nil"],
+ "bed_type": ["Cool Plate"],
+ "nozzle_temperature_initial_layer": ["200"],
+ "full_fan_speed_layer": ["0"],
+ "fan_max_speed": ["100"],
+ "fan_min_speed": ["35"],
+ "slow_down_min_speed": ["10"],
+ "slow_down_layer_time": ["8"],
+ "filament_start_gcode": ["; Filament gcode\n"],
+ "nozzle_temperature": ["200"],
+ "temperature_vitrification": ["100"]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_flex.json b/resources/profiles/FELIX Printers/filament/fdm_filament_flex.json
new file mode 100644
index 0000000000..f217920ef8
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_flex.json
@@ -0,0 +1,76 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_flex",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OFKQ6RhU",
+ "instantiation": "false",
+ "hot_plate_temp_initial_layer": [
+ "50"
+ ],
+ "hot_plate_temp": [
+ "50"
+ ],
+ "fan_cooling_layer_time": [
+ "100"
+ ],
+ "filament_max_volumetric_speed": [
+ "2.5"
+ ],
+ "filament_type": [
+ "FLEX"
+ ],
+ "filament_density": [
+ "1.22"
+ ],
+ "filament_cost": [
+ "20"
+ ],
+ "filament_retraction_length": [
+ "2.5"
+ ],
+ "filament_retraction_speed": [
+ "60"
+ ],
+ "filament_deretraction_speed": [
+ "20"
+ ],
+ "filament_retraction_minimum_travel": [
+ "2"
+ ],
+ "filament_wipe": "0",
+ "idle_temperature": "70",
+ "nozzle_temperature_initial_layer": [
+ "230"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "30"
+ ],
+ "fan_min_speed": [
+ "30"
+ ],
+ "overhang_fan_speed": [
+ "80"
+ ],
+ "additional_cooling_fan_speed": [
+ "70"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "nozzle_temperature": [
+ "230"
+ ],
+ "filament_start_gcode": [
+ "M900 K0 ; Filament gcode\n\nM142 S36 ; set heatbreak target temp"
+ ],
+ "filament_end_gcode": [
+ "; Filament-specific end gcode"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_food.json b/resources/profiles/FELIX Printers/filament/fdm_filament_food.json
new file mode 100644
index 0000000000..c6e149b2c1
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_food.json
@@ -0,0 +1,55 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_food",
+ "from": "system",
+ "filament_id": "OFCK7aDj",
+ "instantiation": "false",
+ "filament_vendor": ["Generic"],
+ "filament_type": ["PVB"],
+ "filament_settings_id": [""],
+ "filament_diameter": ["1.75"],
+ "filament_density": ["1.24"],
+ "filament_cost": ["0"],
+ "filament_flow_ratio": ["1"],
+ "filament_max_volumetric_speed": ["70"],
+ "filament_minimal_purge_on_wipe_tower": ["15"],
+ "filament_soluble": ["1"],
+ "filament_is_support": ["1"],
+ "bed_type": ["Cool Plate"],
+ "cool_plate_temp": ["0"],
+ "cool_plate_temp_initial_layer": ["0"],
+ "eng_plate_temp": ["0"],
+ "eng_plate_temp_initial_layer": ["0"],
+ "hot_plate_temp": ["0"],
+ "hot_plate_temp_initial_layer": ["0"],
+ "nozzle_temperature": ["0"],
+ "nozzle_temperature_initial_layer": ["0"],
+ "nozzle_temperature_range_low": ["0"],
+ "nozzle_temperature_range_high": ["0"],
+ "idle_temperature": ["0"],
+ "temperature_vitrification": ["0"],
+ "fan_min_speed": ["0"],
+ "fan_max_speed": ["0"],
+ "additional_cooling_fan_speed": ["0"],
+ "overhang_fan_speed": ["0"],
+ "overhang_fan_threshold": ["50%"],
+ "close_fan_the_first_x_layers": ["1"],
+ "full_fan_speed_layer": ["0"],
+ "fan_cooling_layer_time": ["100"],
+ "reduce_fan_stop_start_freq": ["1"],
+ "slow_down_for_layer_cooling": ["0"],
+ "slow_down_min_speed": ["10"],
+ "slow_down_layer_time": ["4"],
+ "filament_retraction_length": ["nil"],
+ "filament_retraction_speed": ["nil"],
+ "filament_deretraction_speed": ["nil"],
+ "filament_retract_restart_extra": ["nil"],
+ "filament_retraction_minimum_travel": ["nil"],
+ "filament_retract_before_wipe": ["nil"],
+ "filament_retract_when_changing_layer": ["nil"],
+ "filament_z_hop": ["nil"],
+ "filament_wipe": ["nil"],
+ "filament_wipe_distance": ["nil"],
+ "filament_start_gcode": ["; filament start gcode\n"],
+ "filament_end_gcode": ["; filament end gcode \n"]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_pa.json b/resources/profiles/FELIX Printers/filament/fdm_filament_pa.json
new file mode 100644
index 0000000000..bc5ea50194
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_pa.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pa",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OFrAD92c",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "0"
+ ],
+ "eng_plate_temp": [
+ "100"
+ ],
+ "hot_plate_temp": [
+ "100"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "100"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "100"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "4"
+ ],
+ "filament_max_volumetric_speed": [
+ "8"
+ ],
+ "filament_type": [
+ "PA"
+ ],
+ "filament_density": [
+ "1.04"
+ ],
+ "filament_cost": [
+ "20"
+ ],
+ "idle_temperature": "0",
+ "nozzle_temperature_initial_layer": [
+ "290"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "0"
+ ],
+ "fan_max_speed": [
+ "60"
+ ],
+ "fan_min_speed": [
+ "0"
+ ],
+ "overhang_fan_speed": [
+ "30"
+ ],
+ "nozzle_temperature": [
+ "290"
+ ],
+ "temperature_vitrification": [
+ "108"
+ ],
+ "nozzle_temperature_range_low": [
+ "270"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "2"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_pa11cf.json b/resources/profiles/FELIX Printers/filament/fdm_filament_pa11cf.json
new file mode 100644
index 0000000000..d928dd606b
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_pa11cf.json
@@ -0,0 +1,81 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pa11cf",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OFNYizSv",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "0"
+ ],
+ "eng_plate_temp": [
+ "100"
+ ],
+ "hot_plate_temp": [
+ "100"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "100"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "100"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "4"
+ ],
+ "filament_max_volumetric_speed": [
+ "8"
+ ],
+ "filament_type": [
+ "PA11-CF"
+ ],
+ "filament_density": [
+ "1.04"
+ ],
+ "filament_cost": [
+ "20"
+ ],
+ "idle_temperature": "0",
+ "nozzle_temperature_initial_layer": [
+ "290"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "0"
+ ],
+ "fan_max_speed": [
+ "60"
+ ],
+ "fan_min_speed": [
+ "0"
+ ],
+ "overhang_fan_speed": [
+ "30"
+ ],
+ "nozzle_temperature": [
+ "290"
+ ],
+ "temperature_vitrification": [
+ "108"
+ ],
+ "nozzle_temperature_range_low": [
+ "270"
+ ],
+ "nozzle_temperature_range_high": [
+ "300"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "2"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_pc.json b/resources/profiles/FELIX Printers/filament/fdm_filament_pc.json
new file mode 100644
index 0000000000..4b9249a171
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_pc.json
@@ -0,0 +1,84 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pc",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OFtcKVgP",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "0"
+ ],
+ "eng_plate_temp": [
+ "110"
+ ],
+ "hot_plate_temp": [
+ "110"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "110"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "110"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "30"
+ ],
+ "filament_max_volumetric_speed": [
+ "23.2"
+ ],
+ "filament_type": [
+ "PC"
+ ],
+ "filament_density": [
+ "1.04"
+ ],
+ "filament_cost": [
+ "20"
+ ],
+ "idle_temperature": "0",
+ "nozzle_temperature_initial_layer": [
+ "270"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "60"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "overhang_fan_speed": [
+ "60"
+ ],
+ "nozzle_temperature": [
+ "280"
+ ],
+ "temperature_vitrification": [
+ "140"
+ ],
+ "nozzle_temperature_range_low": [
+ "260"
+ ],
+ "nozzle_temperature_range_high": [
+ "280"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "2"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_pccf.json b/resources/profiles/FELIX Printers/filament/fdm_filament_pccf.json
new file mode 100644
index 0000000000..afa6712c3d
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_pccf.json
@@ -0,0 +1,84 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pccf",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OF8O6WG6",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "0"
+ ],
+ "eng_plate_temp": [
+ "110"
+ ],
+ "hot_plate_temp": [
+ "110"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "0"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "110"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "110"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "fan_cooling_layer_time": [
+ "30"
+ ],
+ "filament_max_volumetric_speed": [
+ "23.2"
+ ],
+ "filament_type": [
+ "PC-CF"
+ ],
+ "filament_density": [
+ "1.04"
+ ],
+ "filament_cost": [
+ "20"
+ ],
+ "idle_temperature": "0",
+ "nozzle_temperature_initial_layer": [
+ "270"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "60"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "overhang_fan_speed": [
+ "60"
+ ],
+ "nozzle_temperature": [
+ "280"
+ ],
+ "temperature_vitrification": [
+ "140"
+ ],
+ "nozzle_temperature_range_low": [
+ "260"
+ ],
+ "nozzle_temperature_range_high": [
+ "280"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "2"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_pet.json b/resources/profiles/FELIX Printers/filament/fdm_filament_pet.json
new file mode 100644
index 0000000000..47a68311e2
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_pet.json
@@ -0,0 +1,33 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pet",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OFI26O53",
+ "instantiation": "false",
+ "cool_plate_temp": ["60"],
+ "eng_plate_temp": ["0"],
+ "hot_plate_temp": ["80"],
+ "cool_plate_temp_initial_layer": ["60"],
+ "eng_plate_temp_initial_layer": ["0"],
+ "hot_plate_temp_initial_layer": ["80"],
+ "slow_down_for_layer_cooling": ["1"],
+ "close_fan_the_first_x_layers": ["3"],
+ "fan_cooling_layer_time": ["20"],
+ "filament_max_volumetric_speed": ["25"],
+ "filament_type": ["PETG"],
+ "filament_density": ["1.27"],
+ "filament_cost": ["30"],
+ "idle_temperature": "0",
+ "nozzle_temperature_initial_layer": ["255"],
+ "reduce_fan_stop_start_freq": ["1"],
+ "fan_max_speed": ["100"],
+ "fan_min_speed": ["20"],
+ "overhang_fan_speed": ["100"],
+ "nozzle_temperature": ["255"],
+ "temperature_vitrification": ["80"],
+ "nozzle_temperature_range_low": ["220"],
+ "nozzle_temperature_range_high": ["260"],
+ "filament_start_gcode": ["; filament start gcode\n"],
+ "filament_diameter": ["1.75"]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_pla.json b/resources/profiles/FELIX Printers/filament/fdm_filament_pla.json
new file mode 100644
index 0000000000..bb2e08c51e
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_pla.json
@@ -0,0 +1,37 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pla",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OF8yxKvf",
+ "instantiation": "false",
+ "fan_cooling_layer_time": ["100"],
+ "filament_max_volumetric_speed": ["12"],
+ "filament_type": ["PLA"],
+ "filament_density": ["1.24"],
+ "filament_cost": ["20"],
+ "cool_plate_temp": ["35"],
+ "eng_plate_temp": ["0"],
+ "hot_plate_temp": ["60"],
+ "cool_plate_temp_initial_layer": ["35"],
+ "eng_plate_temp_initial_layer": ["0"],
+ "hot_plate_temp_initial_layer": ["60"],
+ "idle_temperature": "0",
+ "nozzle_temperature_initial_layer": ["220"],
+ "reduce_fan_stop_start_freq": ["1"],
+ "slow_down_for_layer_cooling": ["1"],
+ "fan_max_speed": ["100"],
+ "fan_min_speed": ["100"],
+ "overhang_fan_speed": ["100"],
+ "overhang_fan_threshold": ["50%"],
+ "close_fan_the_first_x_layers": ["1"],
+ "nozzle_temperature": ["220"],
+ "temperature_vitrification": ["60"],
+ "nozzle_temperature_range_low": ["190"],
+ "nozzle_temperature_range_high": ["230"],
+ "slow_down_min_speed": ["10"],
+ "slow_down_layer_time": ["4"],
+ "additional_cooling_fan_speed": ["70"],
+ "filament_start_gcode": ["; filament start gcode\n"],
+ "filament_diameter": ["1.75"]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_pva.json b/resources/profiles/FELIX Printers/filament/fdm_filament_pva.json
new file mode 100644
index 0000000000..b4d4eeec11
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_pva.json
@@ -0,0 +1,96 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pva",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OFxkoKWD",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "35"
+ ],
+ "eng_plate_temp": [
+ "0"
+ ],
+ "hot_plate_temp": [
+ "45"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "35"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "45"
+ ],
+ "fan_cooling_layer_time": [
+ "100"
+ ],
+ "filament_max_volumetric_speed": [
+ "15"
+ ],
+ "filament_soluble": [
+ "1"
+ ],
+ "filament_is_support": [
+ "1"
+ ],
+ "filament_type": [
+ "PVA"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_cost": [
+ "20"
+ ],
+ "idle_temperature": "0",
+ "nozzle_temperature_initial_layer": [
+ "220"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "fan_min_speed": [
+ "100"
+ ],
+ "overhang_fan_speed": [
+ "100"
+ ],
+ "overhang_fan_threshold": [
+ "50%"
+ ],
+ "close_fan_the_first_x_layers": [
+ "1"
+ ],
+ "nozzle_temperature": [
+ "220"
+ ],
+ "temperature_vitrification": [
+ "50"
+ ],
+ "nozzle_temperature_range_low": [
+ "190"
+ ],
+ "nozzle_temperature_range_high": [
+ "250"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "4"
+ ],
+ "additional_cooling_fan_speed": [
+ "70"
+ ],
+ "filament_start_gcode": [
+ "; filament start gcode\n"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_pvb.json b/resources/profiles/FELIX Printers/filament/fdm_filament_pvb.json
new file mode 100644
index 0000000000..57da2c26e0
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_pvb.json
@@ -0,0 +1,96 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_pvb",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OF1BMUQW",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "35"
+ ],
+ "eng_plate_temp": [
+ "0"
+ ],
+ "hot_plate_temp": [
+ "45"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "35"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "0"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "45"
+ ],
+ "fan_cooling_layer_time": [
+ "100"
+ ],
+ "filament_max_volumetric_speed": [
+ "15"
+ ],
+ "filament_soluble": [
+ "1"
+ ],
+ "filament_is_support": [
+ "1"
+ ],
+ "filament_type": [
+ "PVB"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_cost": [
+ "20"
+ ],
+ "idle_temperature": "0",
+ "nozzle_temperature_initial_layer": [
+ "220"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "fan_min_speed": [
+ "100"
+ ],
+ "overhang_fan_speed": [
+ "100"
+ ],
+ "overhang_fan_threshold": [
+ "50%"
+ ],
+ "close_fan_the_first_x_layers": [
+ "1"
+ ],
+ "nozzle_temperature": [
+ "220"
+ ],
+ "temperature_vitrification": [
+ "50"
+ ],
+ "nozzle_temperature_range_low": [
+ "190"
+ ],
+ "nozzle_temperature_range_high": [
+ "250"
+ ],
+ "slow_down_min_speed": [
+ "10"
+ ],
+ "slow_down_layer_time": [
+ "4"
+ ],
+ "additional_cooling_fan_speed": [
+ "70"
+ ],
+ "filament_start_gcode": [
+ "; filament start gcode\n"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/filament/fdm_filament_tpu.json b/resources/profiles/FELIX Printers/filament/fdm_filament_tpu.json
new file mode 100644
index 0000000000..9feb287ad3
--- /dev/null
+++ b/resources/profiles/FELIX Printers/filament/fdm_filament_tpu.json
@@ -0,0 +1,84 @@
+{
+ "type": "filament",
+ "name": "fdm_filament_tpu",
+ "inherits": "fdm_filament_common",
+ "from": "system",
+ "filament_id": "OFR5hJyS",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "30"
+ ],
+ "eng_plate_temp": [
+ "30"
+ ],
+ "hot_plate_temp": [
+ "35"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "30"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "30"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "35"
+ ],
+ "fan_cooling_layer_time": [
+ "100"
+ ],
+ "filament_max_volumetric_speed": [
+ "15"
+ ],
+ "filament_type": [
+ "TPU"
+ ],
+ "filament_density": [
+ "1.24"
+ ],
+ "filament_cost": [
+ "20"
+ ],
+ "filament_retraction_length": [
+ "0.4"
+ ],
+ "idle_temperature": "0",
+ "nozzle_temperature_initial_layer": [
+ "240"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "slow_down_for_layer_cooling": [
+ "1"
+ ],
+ "fan_max_speed": [
+ "100"
+ ],
+ "fan_min_speed": [
+ "100"
+ ],
+ "overhang_fan_speed": [
+ "100"
+ ],
+ "additional_cooling_fan_speed": [
+ "70"
+ ],
+ "close_fan_the_first_x_layers": [
+ "1"
+ ],
+ "nozzle_temperature": [
+ "240"
+ ],
+ "temperature_vitrification": [
+ "60"
+ ],
+ "nozzle_temperature_range_low": [
+ "200"
+ ],
+ "nozzle_temperature_range_high": [
+ "250"
+ ],
+ "filament_start_gcode": [
+ "; filament start gcode\n"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/hotend.stl b/resources/profiles/FELIX Printers/hotend.stl
new file mode 100644
index 0000000000..6b2aba77fa
Binary files /dev/null and b/resources/profiles/FELIX Printers/hotend.stl differ
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Double 0.50mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Double 0.50mm nozzle.json
new file mode 100644
index 0000000000..f5028be22c
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Double 0.50mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Double 0.50mm nozzle",
+ "inherits": "fdm_felix_food_double_common",
+ "from": "system",
+ "setting_id": "eQJVF4sIMRbqBz7M",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Double",
+ "printer_variant": "0.5",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.5",
+ "0.5"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 0.50mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @0.50mm"
+ ],
+ "min_layer_height": [
+ "0.25",
+ "0.25"
+ ],
+ "max_layer_height": [
+ "0.4",
+ "0.4"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Double 1.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Double 1.00mm nozzle.json
new file mode 100644
index 0000000000..aaedafdcc5
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Double 1.00mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Double 1.00mm nozzle",
+ "inherits": "fdm_felix_food_double_common",
+ "from": "system",
+ "setting_id": "0vKf2d2tP2vE8PDm",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Double",
+ "printer_variant": "1.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "1.0",
+ "1.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 1.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @1.00mm"
+ ],
+ "min_layer_height": [
+ "0.5",
+ "0.5"
+ ],
+ "max_layer_height": [
+ "0.75",
+ "0.75"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Double 2.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Double 2.00mm nozzle.json
new file mode 100644
index 0000000000..ae4e421020
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Double 2.00mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Double 2.00mm nozzle",
+ "inherits": "fdm_felix_food_double_common",
+ "from": "system",
+ "setting_id": "PnWMPDvxUgggrdOh",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Double",
+ "printer_variant": "2.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "2.0",
+ "2.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 2.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @2.00mm"
+ ],
+ "min_layer_height": [
+ "1.0",
+ "1.0"
+ ],
+ "max_layer_height": [
+ "1.5",
+ "1.5"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Double 3.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Double 3.00mm nozzle.json
new file mode 100644
index 0000000000..ce83d006d2
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Double 3.00mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Double 3.00mm nozzle",
+ "inherits": "fdm_felix_food_double_common",
+ "from": "system",
+ "setting_id": "AdqDfvZISNamxAnQ",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Double",
+ "printer_variant": "3.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "3.0",
+ "3.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 3.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @3.00mm"
+ ],
+ "min_layer_height": [
+ "1.5",
+ "1.5"
+ ],
+ "max_layer_height": [
+ "2.0",
+ "2.0"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Double 4.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Double 4.00mm nozzle.json
new file mode 100644
index 0000000000..c80a310f86
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Double 4.00mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Double 4.00mm nozzle",
+ "inherits": "fdm_felix_food_double_common",
+ "from": "system",
+ "setting_id": "tc84MbMEkFNI2VVq",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Double",
+ "printer_variant": "4.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "4.0",
+ "4.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 4.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @4.00mm"
+ ],
+ "min_layer_height": [
+ "2.0",
+ "2.0"
+ ],
+ "max_layer_height": [
+ "3.0",
+ "3.0"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Double.json b/resources/profiles/FELIX Printers/machine/FELIX Food Double.json
new file mode 100644
index 0000000000..90cd5a884b
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Double.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "FELIX Food Double",
+ "model_id": "felix_food_series",
+ "nozzle_diameter": "0.5;1.0;2.0;3.0;4.0",
+ "machine_tech": "FFF",
+ "family": "FELIX Printers",
+ "bed_model": "FELIX_Food_Series_Buildplate.stl",
+ "bed_texture": "FELIX Food Series build plate texture.svg",
+ "hotend_model": "FELIX Food Extruder.stl",
+ "default_materials": "Food Medium Plastic Syringe @0.50mm;Food Medium Plastic Syringe @1.00mm;Food Medium Plastic Syringe @2.00mm;Food Medium Plastic Syringe @3.00mm;Food Medium Plastic Syringe @4.00mm"
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Single 0.50mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Single 0.50mm nozzle.json
new file mode 100644
index 0000000000..a3a31b8036
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Single 0.50mm nozzle.json
@@ -0,0 +1,28 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Single 0.50mm nozzle",
+ "inherits": "fdm_felix_food_common",
+ "from": "system",
+ "setting_id": "TZeal7uyWyjYrIhJ",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Single",
+ "printer_variant": "0.5",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.5"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 0.50mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @0.50mm"
+ ],
+ "min_layer_height": [
+ "0.25"
+ ],
+ "max_layer_height": [
+ "0.4"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Single 1.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Single 1.00mm nozzle.json
new file mode 100644
index 0000000000..2c71e9e611
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Single 1.00mm nozzle.json
@@ -0,0 +1,28 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Single 1.00mm nozzle",
+ "inherits": "fdm_felix_food_common",
+ "from": "system",
+ "setting_id": "CBlIX4oJPOnd0q5d",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Single",
+ "printer_variant": "1.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "1.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 1.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @1.00mm"
+ ],
+ "min_layer_height": [
+ "0.5"
+ ],
+ "max_layer_height": [
+ "0.75"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Single 2.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Single 2.00mm nozzle.json
new file mode 100644
index 0000000000..7319f71593
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Single 2.00mm nozzle.json
@@ -0,0 +1,28 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Single 2.00mm nozzle",
+ "inherits": "fdm_felix_food_common",
+ "from": "system",
+ "setting_id": "MwhCJFurbDIKASyz",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Single",
+ "printer_variant": "2.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "2.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 2.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @2.00mm"
+ ],
+ "min_layer_height": [
+ "1.0"
+ ],
+ "max_layer_height": [
+ "1.5"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Single 3.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Single 3.00mm nozzle.json
new file mode 100644
index 0000000000..e6476621ba
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Single 3.00mm nozzle.json
@@ -0,0 +1,28 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Single 3.00mm nozzle",
+ "inherits": "fdm_felix_food_common",
+ "from": "system",
+ "setting_id": "WYYFG2qzikuh3AML",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Single",
+ "printer_variant": "3.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "3.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 3.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @3.00mm"
+ ],
+ "min_layer_height": [
+ "1.5"
+ ],
+ "max_layer_height": [
+ "2.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Single 4.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Single 4.00mm nozzle.json
new file mode 100644
index 0000000000..f2c9ec8be1
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Single 4.00mm nozzle.json
@@ -0,0 +1,28 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Single 4.00mm nozzle",
+ "inherits": "fdm_felix_food_common",
+ "from": "system",
+ "setting_id": "j9EV60X4togu55Sa",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Single",
+ "printer_variant": "4.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "4.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 4.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @4.00mm"
+ ],
+ "min_layer_height": [
+ "2.0"
+ ],
+ "max_layer_height": [
+ "3.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Single.json b/resources/profiles/FELIX Printers/machine/FELIX Food Single.json
new file mode 100644
index 0000000000..bbc35d1266
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Single.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "FELIX Food Single",
+ "model_id": "felix_food_series",
+ "nozzle_diameter": "0.5;1.0;2.0;3.0;4.0",
+ "machine_tech": "FFF",
+ "family": "FELIX Printers",
+ "bed_model": "FELIX_Food_Series_Buildplate.stl",
+ "bed_texture": "FELIX Food Series build plate texture.svg",
+ "hotend_model": "FELIX Food Extruder.stl",
+ "default_materials": "Food Medium Plastic Syringe @0.50mm;Food Medium Plastic Syringe @1.00mm;Food Medium Plastic Syringe @2.00mm;Food Medium Plastic Syringe @3.00mm;Food Medium Plastic Syringe @4.00mm"
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Switch 0.50mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Switch 0.50mm nozzle.json
new file mode 100644
index 0000000000..99114ba8d9
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Switch 0.50mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Switch 0.50mm nozzle",
+ "inherits": "fdm_felix_food_switch_common",
+ "from": "system",
+ "setting_id": "ek8J7xF71Jc5s1KH",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Switch",
+ "printer_variant": "0.5",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.5",
+ "0.5"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 0.50mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @0.50mm"
+ ],
+ "min_layer_height": [
+ "0.25",
+ "0.25"
+ ],
+ "max_layer_height": [
+ "0.4",
+ "0.4"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Switch 1.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Switch 1.00mm nozzle.json
new file mode 100644
index 0000000000..1286c45e42
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Switch 1.00mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Switch 1.00mm nozzle",
+ "inherits": "fdm_felix_food_switch_common",
+ "from": "system",
+ "setting_id": "p93yESe1FvDwTQNs",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Switch",
+ "printer_variant": "1.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "1.0",
+ "1.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 1.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @1.00mm"
+ ],
+ "min_layer_height": [
+ "0.5",
+ "0.5"
+ ],
+ "max_layer_height": [
+ "0.75",
+ "0.75"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Switch 2.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Switch 2.00mm nozzle.json
new file mode 100644
index 0000000000..2e57548e05
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Switch 2.00mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Switch 2.00mm nozzle",
+ "inherits": "fdm_felix_food_switch_common",
+ "from": "system",
+ "setting_id": "CNQdqL9Yx4i3XhBf",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Switch",
+ "printer_variant": "2.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "2.0",
+ "2.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 2.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @2.00mm"
+ ],
+ "min_layer_height": [
+ "1.0",
+ "1.0"
+ ],
+ "max_layer_height": [
+ "1.5",
+ "1.5"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Switch 3.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Switch 3.00mm nozzle.json
new file mode 100644
index 0000000000..1ed7ac7f80
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Switch 3.00mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Switch 3.00mm nozzle",
+ "inherits": "fdm_felix_food_switch_common",
+ "from": "system",
+ "setting_id": "BUCq6XvRyYOJdDLW",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Switch",
+ "printer_variant": "3.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "3.0",
+ "3.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 3.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @3.00mm"
+ ],
+ "min_layer_height": [
+ "1.5",
+ "1.5"
+ ],
+ "max_layer_height": [
+ "2.0",
+ "2.0"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Switch 4.00mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Food Switch 4.00mm nozzle.json
new file mode 100644
index 0000000000..157b6505b9
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Switch 4.00mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Food Switch 4.00mm nozzle",
+ "inherits": "fdm_felix_food_switch_common",
+ "from": "system",
+ "setting_id": "IBtU2dTE1EI3oSkf",
+ "instantiation": "true",
+ "printer_model": "FELIX Food Switch",
+ "printer_variant": "4.0",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "4.0",
+ "4.0"
+ ],
+ "default_print_profile": "FELIX Food Normal @ 4.00mm",
+ "default_filament_profile": [
+ "Food Medium Plastic Syringe @4.00mm"
+ ],
+ "min_layer_height": [
+ "2.0",
+ "2.0"
+ ],
+ "max_layer_height": [
+ "3.0",
+ "3.0"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Food Switch.json b/resources/profiles/FELIX Printers/machine/FELIX Food Switch.json
new file mode 100644
index 0000000000..df3cfa5a6b
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Food Switch.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "FELIX Food Switch",
+ "model_id": "felix_food_series",
+ "nozzle_diameter": "0.5;1.0;2.0;3.0;4.0",
+ "machine_tech": "FFF",
+ "family": "FELIX Printers",
+ "bed_model": "FELIX_Food_Series_Buildplate.stl",
+ "bed_texture": "FELIX Food Series build plate texture.svg",
+ "hotend_model": "FELIX Food Extruder.stl",
+ "default_materials": "Food Medium Plastic Syringe @0.50mm;Food Medium Plastic Syringe @1.00mm;Food Medium Plastic Syringe @2.00mm;Food Medium Plastic Syringe @3.00mm;Food Medium Plastic Syringe @4.00mm"
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.25mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.25mm nozzle.json
new file mode 100644
index 0000000000..0b331ef3a8
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.25mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro 3 0.25mm nozzle",
+ "inherits": "fdm_felix_pro_3_common",
+ "from": "system",
+ "setting_id": "n5V4bNskedrD0lzq",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro 3",
+ "printer_variant": "0.25",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.25",
+ "0.25"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.25mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.25mm"
+ ],
+ "min_layer_height": [
+ "0.05",
+ "0.05"
+ ],
+ "max_layer_height": [
+ "0.2",
+ "0.2"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.35mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.35mm nozzle.json
new file mode 100644
index 0000000000..dabeab558d
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.35mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro 3 0.35mm nozzle",
+ "inherits": "fdm_felix_pro_3_common",
+ "from": "system",
+ "setting_id": "Sp8PzAl1CVhalu7p",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro 3",
+ "printer_variant": "0.35",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.35",
+ "0.35"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.35mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.35mm"
+ ],
+ "min_layer_height": [
+ "0.05",
+ "0.05"
+ ],
+ "max_layer_height": [
+ "0.3",
+ "0.3"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.50mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.50mm nozzle.json
new file mode 100644
index 0000000000..a0aa327570
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.50mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro 3 0.50mm nozzle",
+ "inherits": "fdm_felix_pro_3_common",
+ "from": "system",
+ "setting_id": "uJblNefpl1izdxxN",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro 3",
+ "printer_variant": "0.5",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.5",
+ "0.5"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.50mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.50mm"
+ ],
+ "min_layer_height": [
+ "0.1",
+ "0.1"
+ ],
+ "max_layer_height": [
+ "0.4",
+ "0.4"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.70mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.70mm nozzle.json
new file mode 100644
index 0000000000..8607f98f42
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro 3 0.70mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro 3 0.70mm nozzle",
+ "inherits": "fdm_felix_pro_3_common",
+ "from": "system",
+ "setting_id": "f7Sdeg6zOQkGXnX7",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro 3",
+ "printer_variant": "0.7",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.7",
+ "0.7"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.70mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.70mm"
+ ],
+ "min_layer_height": [
+ "0.15",
+ "0.15"
+ ],
+ "max_layer_height": [
+ "0.5",
+ "0.5"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro 3.json b/resources/profiles/FELIX Printers/machine/FELIX Pro 3.json
new file mode 100644
index 0000000000..6b86de0397
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro 3.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "FELIX Pro 3",
+ "model_id": "felix_pro_series",
+ "nozzle_diameter": "0.25;0.35;0.5;0.7",
+ "machine_tech": "FFF",
+ "family": "FELIX Printers",
+ "bed_model": "FELIX_Pro_Series_Buildplate.stl",
+ "bed_texture": "FELIX Pro Series build plate texture.svg",
+ "hotend_model": "hotend.stl",
+ "default_materials": "FELIX Premium PLA Hardened Steel @ 0.25mm;FELIX Premium PLA Hardened Steel @ 0.35mm;FELIX Premium PLA Hardened Steel @ 0.50mm;FELIX Premium PLA Hardened Steel @ 0.70mm"
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.25mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.25mm nozzle.json
new file mode 100644
index 0000000000..10b72e0d4d
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.25mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro L 3.0 0.25mm nozzle",
+ "inherits": "fdm_felix_pro_l_3_common",
+ "from": "system",
+ "setting_id": "ilTMl98Auu1CuPL6",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro L 3.0",
+ "printer_variant": "0.25",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.25",
+ "0.25"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.25mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.25mm"
+ ],
+ "min_layer_height": [
+ "0.05",
+ "0.05"
+ ],
+ "max_layer_height": [
+ "0.2",
+ "0.2"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.35mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.35mm nozzle.json
new file mode 100644
index 0000000000..59269a5784
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.35mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro L 3.0 0.35mm nozzle",
+ "inherits": "fdm_felix_pro_l_3_common",
+ "from": "system",
+ "setting_id": "LSKzYOTkEL1GY7E7",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro L 3.0",
+ "printer_variant": "0.35",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.35",
+ "0.35"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.35mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.35mm"
+ ],
+ "min_layer_height": [
+ "0.05",
+ "0.05"
+ ],
+ "max_layer_height": [
+ "0.3",
+ "0.3"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.50mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.50mm nozzle.json
new file mode 100644
index 0000000000..44dcdbbaf3
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.50mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro L 3.0 0.50mm nozzle",
+ "inherits": "fdm_felix_pro_l_3_common",
+ "from": "system",
+ "setting_id": "sVaQJT8G62xWOEGR",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro L 3.0",
+ "printer_variant": "0.5",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.5",
+ "0.5"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.50mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.50mm"
+ ],
+ "min_layer_height": [
+ "0.1",
+ "0.1"
+ ],
+ "max_layer_height": [
+ "0.4",
+ "0.4"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.70mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.70mm nozzle.json
new file mode 100644
index 0000000000..5509aa172c
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0 0.70mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro L 3.0 0.70mm nozzle",
+ "inherits": "fdm_felix_pro_l_3_common",
+ "from": "system",
+ "setting_id": "o01lea4skAsDAAJk",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro L 3.0",
+ "printer_variant": "0.7",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.7",
+ "0.7"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.70mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.70mm"
+ ],
+ "min_layer_height": [
+ "0.15",
+ "0.15"
+ ],
+ "max_layer_height": [
+ "0.5",
+ "0.5"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0.json b/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0.json
new file mode 100644
index 0000000000..1f17cccdc7
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro L 3.0.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "FELIX Pro L 3.0",
+ "model_id": "felix_pro_series",
+ "nozzle_diameter": "0.25;0.35;0.5;0.7",
+ "machine_tech": "FFF",
+ "family": "FELIX Printers",
+ "bed_model": "FELIX_Pro_L_Series_Buildplate.stl",
+ "bed_texture": "FELIX Pro L Series build plate texture.svg",
+ "hotend_model": "hotend.stl",
+ "default_materials": "FELIX Premium PLA Hardened Steel @ 0.25mm;FELIX Premium PLA Hardened Steel @ 0.35mm;FELIX Premium PLA Hardened Steel @ 0.50mm;FELIX Premium PLA Hardened Steel @ 0.70mm"
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.25mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.25mm nozzle.json
new file mode 100644
index 0000000000..100a613b71
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.25mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro XL 3.0 0.25mm nozzle",
+ "inherits": "fdm_felix_pro_xl_3_common",
+ "from": "system",
+ "setting_id": "b1hGM5y7wvVkBViF",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro XL 3.0",
+ "printer_variant": "0.25",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.25",
+ "0.25"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.25mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.25mm"
+ ],
+ "min_layer_height": [
+ "0.05",
+ "0.05"
+ ],
+ "max_layer_height": [
+ "0.2",
+ "0.2"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.35mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.35mm nozzle.json
new file mode 100644
index 0000000000..cd13e6c87b
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.35mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro XL 3.0 0.35mm nozzle",
+ "inherits": "fdm_felix_pro_xl_3_common",
+ "from": "system",
+ "setting_id": "YV6c5V5i3r58u1Ly",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro XL 3.0",
+ "printer_variant": "0.35",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.35",
+ "0.35"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.35mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.35mm"
+ ],
+ "min_layer_height": [
+ "0.05",
+ "0.05"
+ ],
+ "max_layer_height": [
+ "0.3",
+ "0.3"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.50mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.50mm nozzle.json
new file mode 100644
index 0000000000..6c6164f7e0
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.50mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro XL 3.0 0.50mm nozzle",
+ "inherits": "fdm_felix_pro_xl_3_common",
+ "from": "system",
+ "setting_id": "39c17axr1dI0N8qK",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro XL 3.0",
+ "printer_variant": "0.5",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.5",
+ "0.5"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.50mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.50mm"
+ ],
+ "min_layer_height": [
+ "0.1",
+ "0.1"
+ ],
+ "max_layer_height": [
+ "0.4",
+ "0.4"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.70mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.70mm nozzle.json
new file mode 100644
index 0000000000..6a9e1c03dd
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0 0.70mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Pro XL 3.0 0.70mm nozzle",
+ "inherits": "fdm_felix_pro_xl_3_common",
+ "from": "system",
+ "setting_id": "Ovh8Xw4umQw6Qt9w",
+ "instantiation": "true",
+ "printer_model": "FELIX Pro XL 3.0",
+ "printer_variant": "0.7",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.7",
+ "0.7"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.70mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.70mm"
+ ],
+ "min_layer_height": [
+ "0.15",
+ "0.15"
+ ],
+ "max_layer_height": [
+ "0.5",
+ "0.5"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0.json b/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0.json
new file mode 100644
index 0000000000..751d76ac1a
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Pro XL 3.0.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "FELIX Pro XL 3.0",
+ "model_id": "felix_pro_series",
+ "nozzle_diameter": "0.25;0.35;0.5;0.7",
+ "machine_tech": "FFF",
+ "family": "FELIX Printers",
+ "bed_model": "FELIX_Pro_XL_Series_Buildplate.stl",
+ "bed_texture": "FELIX Pro XL Series build plate.svg",
+ "hotend_model": "hotend.stl",
+ "default_materials": "FELIX Premium PLA Hardened Steel @ 0.25mm;FELIX Premium PLA Hardened Steel @ 0.35mm;FELIX Premium PLA Hardened Steel @ 0.50mm;FELIX Premium PLA Hardened Steel @ 0.70mm"
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.25mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.25mm nozzle.json
new file mode 100644
index 0000000000..c8dbb7cadf
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.25mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Tec 4 0.25mm nozzle",
+ "inherits": "fdm_felix_tec_common",
+ "from": "system",
+ "setting_id": "ZCl6vJPnZDbehLUM",
+ "instantiation": "true",
+ "printer_model": "FELIX Tec 4",
+ "printer_variant": "0.25",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.25",
+ "0.25"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.25mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.25mm"
+ ],
+ "min_layer_height": [
+ "0.05",
+ "0.05"
+ ],
+ "max_layer_height": [
+ "0.2",
+ "0.2"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.35mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.35mm nozzle.json
new file mode 100644
index 0000000000..c1e792f31b
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.35mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Tec 4 0.35mm nozzle",
+ "inherits": "fdm_felix_tec_common",
+ "from": "system",
+ "setting_id": "9WF1377NtdJ297PS",
+ "instantiation": "true",
+ "printer_model": "FELIX Tec 4",
+ "printer_variant": "0.35",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.35",
+ "0.35"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.35mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.35mm"
+ ],
+ "min_layer_height": [
+ "0.05",
+ "0.05"
+ ],
+ "max_layer_height": [
+ "0.3",
+ "0.3"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.50mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.50mm nozzle.json
new file mode 100644
index 0000000000..7ee458a358
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.50mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Tec 4 0.50mm nozzle",
+ "inherits": "fdm_felix_tec_common",
+ "from": "system",
+ "setting_id": "A8agA77jP7St34uu",
+ "instantiation": "true",
+ "printer_model": "FELIX Tec 4",
+ "printer_variant": "0.5",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.5",
+ "0.5"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.50mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.50mm"
+ ],
+ "min_layer_height": [
+ "0.1",
+ "0.1"
+ ],
+ "max_layer_height": [
+ "0.4",
+ "0.4"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.70mm nozzle.json b/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.70mm nozzle.json
new file mode 100644
index 0000000000..fc1a04c4ef
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Tec 4 0.70mm nozzle.json
@@ -0,0 +1,36 @@
+{
+ "type": "machine",
+ "name": "FELIX Tec 4 0.70mm nozzle",
+ "inherits": "fdm_felix_tec_common",
+ "from": "system",
+ "setting_id": "xmC5g62UrgiGhDsu",
+ "instantiation": "true",
+ "printer_model": "FELIX Tec 4",
+ "printer_variant": "0.7",
+ "gcode_flavor": "repetier",
+ "single_extruder_multi_material": "0",
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "nozzle_diameter": [
+ "0.7",
+ "0.7"
+ ],
+ "default_print_profile": "FELIX Plastic Normal @ 0.70mm",
+ "default_filament_profile": [
+ "FELIX Premium PLA Hardened Steel @ 0.70mm"
+ ],
+ "min_layer_height": [
+ "0.15",
+ "0.15"
+ ],
+ "max_layer_height": [
+ "0.5",
+ "0.5"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/machine/FELIX Tec 4.json b/resources/profiles/FELIX Printers/machine/FELIX Tec 4.json
new file mode 100644
index 0000000000..f8db1e10f8
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/FELIX Tec 4.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "FELIX Tec 4",
+ "model_id": "felix_tec_series",
+ "nozzle_diameter": "0.25;0.35;0.5;0.7",
+ "machine_tech": "FFF",
+ "family": "FELIX Printers",
+ "bed_model": "FELIX_Tec_Series_Buildplate.stl",
+ "bed_texture": "FELIX Tec 4 Series build plate.svg",
+ "hotend_model": "hotend.stl",
+ "default_materials": "FELIX Premium PLA Hardened Steel @ 0.25mm;FELIX Premium PLA Hardened Steel @ 0.35mm;FELIX Premium PLA Hardened Steel @ 0.50mm;FELIX Premium PLA Hardened Steel @ 0.70mm"
+}
diff --git a/resources/profiles/FELIX Printers/machine/fdm_all_machines_common.json b/resources/profiles/FELIX Printers/machine/fdm_all_machines_common.json
new file mode 100644
index 0000000000..9bc5af1742
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/fdm_all_machines_common.json
@@ -0,0 +1,54 @@
+{
+ "type": "machine",
+ "name": "fdm_all_machines_common",
+ "from": "system",
+ "instantiation": "false",
+ "gcode_flavor": "marlin",
+ "machine_start_gcode": "",
+ "machine_end_gcode": "",
+ "extruder_colour": ["#018001"],
+ "extruder_offset": ["0x0"],
+ "machine_max_acceleration_e": ["5000", "5000"],
+ "machine_max_acceleration_extruding": ["2000", "2000"],
+ "machine_max_acceleration_retracting": ["5000", "5000"],
+ "machine_max_acceleration_travel": ["3000", "3000"],
+ "machine_max_acceleration_x": ["2000", "2000"],
+ "machine_max_acceleration_y": ["2000", "2000"],
+ "machine_max_acceleration_z": ["300", "200"],
+ "machine_max_speed_e": ["25", "25"],
+ "machine_max_speed_x": ["300", "200"],
+ "machine_max_speed_y": ["300", "200"],
+ "machine_max_speed_z": ["12", "12"],
+ "machine_max_jerk_e": ["2.5", "2.5"],
+ "machine_max_jerk_x": ["9", "9"],
+ "machine_max_jerk_y": ["9", "9"],
+ "machine_max_jerk_z": ["0.2", "0.4"],
+ "machine_min_extruding_rate": ["0", "0"],
+ "machine_min_travel_rate": ["0", "0"],
+ "max_layer_height": ["0.3"],
+ "min_layer_height": ["0.08"],
+ "printable_height": "250",
+ "extruder_clearance_radius": "65",
+ "extruder_clearance_height_to_rod": "36",
+ "extruder_clearance_height_to_lid": "140",
+ "nozzle_diameter": ["0.4"],
+ "printer_settings_id": "",
+ "printer_technology": "FFF",
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": ["1"],
+ "retract_before_wipe": ["70%"],
+ "retract_when_changing_layer": ["1"],
+ "retraction_length": ["0.8"],
+ "retract_length_toolchange": ["2"],
+ "z_hop": ["0.4"],
+ "retract_restart_extra": ["0"],
+ "retract_restart_extra_toolchange": ["0"],
+ "retraction_speed": ["30"],
+ "deretraction_speed": ["30"],
+ "single_extruder_multi_material": "1",
+ "change_filament_gcode": "",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
+ "layer_change_gcode": "",
+ "machine_pause_gcode": "M400 U1\n",
+ "wipe": ["1"]
+}
diff --git a/resources/profiles/FELIX Printers/machine/fdm_felix_food_common.json b/resources/profiles/FELIX Printers/machine/fdm_felix_food_common.json
new file mode 100644
index 0000000000..1cc8bc84e8
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/fdm_felix_food_common.json
@@ -0,0 +1,18 @@
+{
+ "type": "machine",
+ "name": "fdm_felix_food_common",
+ "inherits": "fdm_all_machines_common",
+ "from": "system",
+ "instantiation": "false",
+ "machine_max_speed_x": ["150", "150"],
+ "machine_max_speed_y": ["150", "150"],
+ "machine_max_speed_z": ["10", "10"],
+ "machine_max_speed_e": ["20", "20"],
+ "layer_change_gcode": "G92 E0",
+ "use_relative_e_distances": "1",
+ "gcode_flavor": "repetier",
+ "printable_area": ["0x0", "250x0", "250x195", "0x195"],
+ "printable_height": "150",
+ "machine_start_gcode": "; FELIX Food Single - OrcaSlicer Start G-code - V1.00\n{if bed_temperature_initial_layer_single>0}M190 S[bed_temperature_initial_layer_single]\n{endif}{if nozzle_temperature[0]>0}M104 S{nozzle_temperature[0]}\n{endif}G28\nG90\nM82\nM107\n; =============== Prime routine ==================\nG1 X10 Y10 Z10 F6000\nM400\nG92 E0\nG1 E{2*retraction_length[0]+retract_restart_extra[0]+0.5} F15\nG92 E0\nG1 X{20+nozzle_diameter[0]*2} Y10 Z{nozzle_diameter[0]*0.5} F{travel_speed*60}\nG1 X{40+nozzle_diameter[0]*2} Y10 E{nozzle_diameter[0]*initial_layer_print_height*20/((filament_diameter[0]/2)*(filament_diameter[0]/2)*3.14159)} F{initial_layer_speed*60}\nG92 E0\n",
+ "machine_end_gcode": "; FELIX Food Single - OrcaSlicer End G-code - V1.00\nG92 E0\nG1 E-{retraction_length[0]} F{retraction_speed[0]*60}\nG92 E0\nG91\nG1 Z10 F1200\nG90\nG28 X\nG28 Y\nM107\nM84\n"
+}
diff --git a/resources/profiles/FELIX Printers/machine/fdm_felix_food_double_common.json b/resources/profiles/FELIX Printers/machine/fdm_felix_food_double_common.json
new file mode 100644
index 0000000000..d70275a54d
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/fdm_felix_food_double_common.json
@@ -0,0 +1,21 @@
+{
+ "type": "machine",
+ "name": "fdm_felix_food_double_common",
+ "inherits": "fdm_all_machines_common",
+ "from": "system",
+ "instantiation": "false",
+ "machine_max_speed_x": ["150", "150"],
+ "machine_max_speed_y": ["150", "150"],
+ "machine_max_speed_z": ["10", "10"],
+ "machine_max_speed_e": ["20", "20"],
+ "gcode_flavor": "repetier",
+ "layer_change_gcode": "G92 E0",
+ "use_relative_e_distances": "1",
+ "single_extruder_multi_material": "0",
+ "extruder_offset": ["0x0", "0x0"],
+ "extruder_type": ["Direct Drive", "Direct Drive"],
+ "printable_area": ["0x0", "250x0", "250x195", "0x195"],
+ "printable_height": "150",
+ "machine_start_gcode": "; FELIX Food Twin - OrcaSlicer Start G-code - V1.00\nM280 S1 ; Use 'S0' to turn Ditto off, use 'S1' to turn Ditto on\n{if bed_temperature_initial_layer_single>0}M190 S[bed_temperature_initial_layer_single]\n{endif}{if nozzle_temperature[0]>0}M104 S{nozzle_temperature[0]} T0\nM104 S{nozzle_temperature[0]} T1\n{endif}G28\nG90\nM82\nM107\n; =============== Prime routine ==================\nG1 X10 Y10 Z10 F6000\nM400\nG92 E0\nG1 E{2*retraction_length[0]+retract_restart_extra[0]+0.5} F15\nG92 E0\nG1 X{20+nozzle_diameter[0]*2} Y10 Z{nozzle_diameter[0]*0.5} F{travel_speed*60}\nG1 X{40+nozzle_diameter[0]*2} Y10 E{nozzle_diameter[0]*initial_layer_print_height*20/((filament_diameter[0]/2)*(filament_diameter[0]/2)*3.14159)} F{initial_layer_speed*60}\nG92 E0\n",
+ "machine_end_gcode": "; FELIX Food Twin - OrcaSlicer End G-code - V1.00\nG92 E0\nG1 E-{retraction_length[0]} F{retraction_speed[0]*60}\nG92 E0\nG91\nG1 Z10 F1200\nG90\nG28 X\nG28 Y\nM107\nM84\n"
+}
diff --git a/resources/profiles/FELIX Printers/machine/fdm_felix_food_switch_common.json b/resources/profiles/FELIX Printers/machine/fdm_felix_food_switch_common.json
new file mode 100644
index 0000000000..9299f22813
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/fdm_felix_food_switch_common.json
@@ -0,0 +1,23 @@
+{
+ "type": "machine",
+ "name": "fdm_felix_food_switch_common",
+ "inherits": "fdm_all_machines_common",
+ "from": "system",
+ "instantiation": "false",
+ "machine_max_feedrate_x": ["150"],
+ "machine_max_feedrate_y": ["150"],
+ "machine_max_feedrate_z": ["10"],
+ "machine_max_feedrate_e": ["20"],
+ "shape": "rectangular",
+ "gcode_flavor": "repetier",
+ "layer_change_gcode": "G92 E0",
+ "use_relative_e_distances": "1",
+ "single_extruder_multi_material": "0",
+ "extruder_offset": ["0x0", "0x0"],
+ "extruder_type": ["Direct Drive", "Direct Drive"],
+ "printable_area": ["0x0", "250x0", "250x195", "0x195"],
+ "printable_height": "150",
+ "change_filament_gcode": "; FELIX Food Switch - Tool change G-code - V1.00\n{if previous_extruder>=0}; Tool [previous_extruder] deactivation\nG92 E0\nG1 E-{retract_length_toolchange[previous_extruder]} F{retraction_speed[previous_extruder]*60}\nG92 E0\n{endif}T[next_extruder]\n; Tool [next_extruder] activation\nG92 E0\nG1 E{retract_length_toolchange[next_extruder]+retract_restart_extra_toolchange[next_extruder]} F{retraction_speed[next_extruder]*60}\nG92 E0\n",
+ "machine_start_gcode": "; FELIX Food Switch - OrcaSlicer Start G-code - V1.00\n{if bed_temperature_initial_layer_single>0}M190 S[bed_temperature_initial_layer_single]\n{endif}T0\n{if nozzle_temperature[1]>0}M104 T1 S{nozzle_temperature[1]}\n{endif}{if nozzle_temperature[0]>0}M104 T0 S{nozzle_temperature[0]}\n{endif}G28\nG90\nM82\nM107\n; ============== Prime second nozzle =============\n{if is_extruder_used[1]}T1{else}T0{endif}\nG1 X70 Y10 Z10 F{travel_speed*60} S1\nM400\nG92 E0\nG1 E{2*retraction_length[1]+retract_restart_extra[1]+0.5} F15\nG92 E0\nG1 X{80+nozzle_diameter[1]*2} Y10 Z{nozzle_diameter[1]*0.5} F{travel_speed*60}\nG1 X{100+nozzle_diameter[1]*2} Y10 E{nozzle_diameter[1]*initial_layer_print_height*20/((filament_diameter[1]/2)*(filament_diameter[1]/2)*3.14159)} F{initial_layer_speed*60}\nG92 E0\nG1 E-{retract_length_toolchange[1]} F{retraction_speed[1]*60}\nG92 E0\n; ============== Prime first nozzle ==============\nT0\nG1 X70 Y20 Z10 F{travel_speed*60}\nM400\nG92 E0\nG1 E{2*retraction_length[0]+retract_restart_extra[0]+0.5} F15\nG92 E0\nG1 X{80+nozzle_diameter[0]*2} Y10 Z{nozzle_diameter[0]*0.5} F{travel_speed*60}\nG1 X{100+nozzle_diameter[0]*2} Y10 E{nozzle_diameter[0]*initial_layer_print_height*20/((filament_diameter[0]/2)*(filament_diameter[0]/2)*3.14159)} F{initial_layer_speed*60}\nG92 E0\nG1 E-{retract_length_toolchange[0]} F{retraction_speed[0]*60}\nG92 E0\n",
+ "machine_end_gcode": "; FELIX Food Switch - OrcaSlicer End G-code - V1.00\nG92 E0\nG1 E-{retraction_length[0]} F{retraction_speed[0]*60} S0\nG92 E0\nG91\nG1 Z10 F1200\nG90\nG28 X\nG28 Y\nM107\nM84\n"
+}
diff --git a/resources/profiles/FELIX Printers/machine/fdm_felix_plastic_common.json b/resources/profiles/FELIX Printers/machine/fdm_felix_plastic_common.json
new file mode 100644
index 0000000000..059d1d3f3a
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/fdm_felix_plastic_common.json
@@ -0,0 +1,13 @@
+{
+ "type": "machine",
+ "name": "fdm_felix_plastic_common",
+ "inherits": "fdm_all_machines_common",
+ "from": "system",
+ "instantiation": "false",
+ "machine_max_feedrate_x": ["300"],
+ "machine_max_feedrate_y": ["300"],
+ "machine_max_feedrate_z": ["20"],
+ "machine_max_feedrate_e": ["60"],
+ "shape": "rectangular",
+ "extruder_offset": ["0x0", "0x0"]
+}
diff --git a/resources/profiles/FELIX Printers/machine/fdm_felix_pro_3_common.json b/resources/profiles/FELIX Printers/machine/fdm_felix_pro_3_common.json
new file mode 100644
index 0000000000..078be97e40
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/fdm_felix_pro_3_common.json
@@ -0,0 +1,16 @@
+{
+ "type": "machine",
+ "name": "fdm_felix_pro_3_common",
+ "inherits": "fdm_all_machines_common",
+ "from": "system",
+ "instantiation": "false",
+ "machine_max_speed_x": ["300", "300"],
+ "machine_max_speed_y": ["300", "300"],
+ "machine_max_speed_z": ["20", "20"],
+ "machine_max_speed_e": ["60", "60"],
+ "printable_area": ["0x0", "235x0", "235x244", "0x244"],
+ "printable_height": "235",
+ "z_offset": "0",
+ "machine_start_gcode": "; FELIX [printer_model] - OrcaSlicer Start G-code - V1.00\nM107\nM190 S[bed_temperature_initial_layer_single]\n{if is_extruder_used[0]}M104 T0 S{nozzle_temperature_initial_layer[0]}\n{endif}{if is_extruder_used[1]}M104 T1 S{nozzle_temperature_initial_layer[1]}\n{endif}{if is_extruder_used[0]}M109 T0 S{nozzle_temperature_initial_layer[0]}\n{endif}{if is_extruder_used[1]}M109 T1 S{nozzle_temperature_initial_layer[1]}\n{endif}G28\nG90\nT[initial_tool]\n",
+ "machine_end_gcode": "; FELIX [printer_model] - OrcaSlicer End G-code - V1.00\nG92 E0\nG1 E-8 F{retraction_speed[0]*60}\nG92 E0\nG91\nG1 Z10 F{travel_speed*60}\nG90\nG1 X5 Y5 F6000\nM104 S0 T0\nM104 S0 T1\nM140 S0\nM107\nM84\n"
+}
diff --git a/resources/profiles/FELIX Printers/machine/fdm_felix_pro_l_3.json b/resources/profiles/FELIX Printers/machine/fdm_felix_pro_l_3.json
new file mode 100644
index 0000000000..aeaa281c61
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/fdm_felix_pro_l_3.json
@@ -0,0 +1,16 @@
+{
+ "type": "machine",
+ "name": "fdm_felix_pro_l_3_common",
+ "inherits": "fdm_all_machines_common",
+ "from": "system",
+ "instantiation": "false",
+ "machine_max_speed_x": ["800", "800"],
+ "machine_max_speed_y": ["800", "800"],
+ "machine_max_speed_z": ["50", "50"],
+ "machine_max_speed_e": ["60", "60"],
+ "extruder_offset": ["0x0", "0x0"],
+ "printable_area": ["0x0", "300x0", "300x400", "0x400"],
+ "printable_height": "400",
+ "machine_start_gcode": "; FELIX [printer_model] - OrcaSlicer Start G-code - V1.00\nM107\nM190 S[bed_temperature_initial_layer_single]\n{if is_extruder_used[0]}M104 T0 S{nozzle_temperature_initial_layer[0]}\n{endif}{if is_extruder_used[1]}M104 T1 S{nozzle_temperature_initial_layer[1]}\n{endif}{if is_extruder_used[0]}M109 T0 S{nozzle_temperature_initial_layer[0]}\n{endif}{if is_extruder_used[1]}M109 T1 S{nozzle_temperature_initial_layer[1]}\n{endif}G28\nG90\nT[initial_tool]\n",
+ "machine_end_gcode": "; FELIX [printer_model] - OrcaSlicer End G-code - V1.00\nG92 E0\nG1 E-8 F{retraction_speed[0]*60}\nG92 E0\nG91\nG1 Z20 F{travel_speed*60}\nG90\nG1 X5 Y5 F6000\nM104 S0 T0\nM104 S0 T1\nM140 S0\nM107\nM84\n"
+}
diff --git a/resources/profiles/FELIX Printers/machine/fdm_felix_pro_xl_3_common.json b/resources/profiles/FELIX Printers/machine/fdm_felix_pro_xl_3_common.json
new file mode 100644
index 0000000000..7d995a0365
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/fdm_felix_pro_xl_3_common.json
@@ -0,0 +1,17 @@
+{
+ "type": "machine",
+ "name": "fdm_felix_pro_xl_3_common",
+ "inherits": "fdm_all_machines_common",
+ "from": "system",
+ "instantiation": "false",
+ "machine_max_speed_x": ["800", "800"],
+ "machine_max_speed_y": ["800", "800"],
+ "machine_max_speed_z": ["50", "50"],
+ "machine_max_speed_e": ["60", "60"],
+ "extruder_offset": ["0x0", "0x0"],
+ "printable_area": ["0x0", "600x0", "600x400", "0x400"],
+ "printable_height": "600",
+ "z_offset": "0",
+ "machine_start_gcode": "; FELIX [printer_model] - OrcaSlicer Start G-code - V1.00\nM107\nM190 S[bed_temperature_initial_layer_single]\n{if is_extruder_used[0]}M104 T0 S{nozzle_temperature_initial_layer[0]}\n{endif}{if is_extruder_used[1]}M104 T1 S{nozzle_temperature_initial_layer[1]}\n{endif}{if is_extruder_used[0]}M109 T0 S{nozzle_temperature_initial_layer[0]}\n{endif}{if is_extruder_used[1]}M109 T1 S{nozzle_temperature_initial_layer[1]}\n{endif}G28\nG90\nT[initial_tool]\n",
+ "machine_end_gcode": "; FELIX [printer_model] - OrcaSlicer End G-code - V1.00\nG92 E0\nG1 E-8 F{retraction_speed[0]*60}\nG92 E0\nG91\nG1 Z20 F{travel_speed*60}\nG90\nG1 X5 Y5 F6000\nM104 S0 T0\nM104 S0 T1\nM140 S0\nM107\nM84\n"
+}
diff --git a/resources/profiles/FELIX Printers/machine/fdm_felix_tec_common.json b/resources/profiles/FELIX Printers/machine/fdm_felix_tec_common.json
new file mode 100644
index 0000000000..790b3228d2
--- /dev/null
+++ b/resources/profiles/FELIX Printers/machine/fdm_felix_tec_common.json
@@ -0,0 +1,19 @@
+{
+ "type": "machine",
+ "name": "fdm_felix_tec_common",
+ "inherits": "fdm_all_machines_common",
+ "from": "system",
+ "instantiation": "false",
+ "machine_max_speed_x": ["300", "300"],
+ "machine_max_speed_y": ["300", "300"],
+ "machine_max_speed_z": ["20", "20"],
+ "machine_max_speed_e": ["60", "60"],
+
+ "shape": "rectangular",
+ "extruder_offset": ["0x0", "0x0"],
+ "printable_area": ["0x0", "205x0", "205x255", "0x255"],
+ "printable_height": "255",
+ "z_offset": "0",
+ "machine_start_gcode": "; FELIX [printer_model] - OrcaSlicer Start G-code - V1.00\nM107\nM190 S[bed_temperature_initial_layer_single]\n{if is_extruder_used[0]}M104 T0 S{nozzle_temperature_initial_layer[0]}\n{endif}{if is_extruder_used[1]}M104 T1 S{nozzle_temperature_initial_layer[1]}\n{endif}{if is_extruder_used[0]}M109 T0 S{nozzle_temperature_initial_layer[0]}\n{endif}{if is_extruder_used[1]}M109 T1 S{nozzle_temperature_initial_layer[1]}\n{endif}G28\nG90\nT[initial_tool]\n",
+ "machine_end_gcode": "; FELIX [printer_model] - OrcaSlicer End G-code - V1.00\nG92 E0\nG1 E-8 F{retraction_speed[0]*60}\nG92 E0\nG91\nG1 Z10 F{travel_speed*60}\nG90\nG1 X5 Y5 F6000\nM104 S0 T0\nM104 S0 T1\nM140 S0\nM107\nM84\n"
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 0.50mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 0.50mm.json
new file mode 100644
index 0000000000..8594f10351
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 0.50mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Coarse @ 0.50mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "VfymX2iBORoxcmP6",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 0.50mm nozzle",
+ "FELIX Food Double 0.50mm nozzle",
+ "FELIX Food Switch 0.50mm nozzle"
+ ],
+ "layer_height": "0.4",
+ "initial_layer_print_height": "0.4",
+ "line_width": "0.6",
+ "outer_wall_line_width": "0.6",
+ "inner_wall_line_width": "0.6",
+ "top_surface_line_width": "0.6",
+ "sparse_infill_line_width": "0.6",
+ "internal_solid_infill_line_width": "0.6",
+ "initial_layer_line_width": "0.6",
+ "support_line_width": "0.6",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "0.4",
+ "support_bottom_z_distance": "0.4",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 1.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 1.00mm.json
new file mode 100644
index 0000000000..e9bfcea182
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 1.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Coarse @ 1.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "FwRTHCoaC64mPwvq",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 1.00mm nozzle",
+ "FELIX Food Double 1.00mm nozzle",
+ "FELIX Food Switch 1.00mm nozzle"
+ ],
+ "layer_height": "0.75",
+ "initial_layer_print_height": "0.75",
+ "line_width": "1.2",
+ "outer_wall_line_width": "1.2",
+ "inner_wall_line_width": "1.2",
+ "top_surface_line_width": "1.2",
+ "sparse_infill_line_width": "1.2",
+ "internal_solid_infill_line_width": "1.2",
+ "initial_layer_line_width": "1.2",
+ "support_line_width": "1.2",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "0.75",
+ "support_bottom_z_distance": "0.75",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 2.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 2.00mm.json
new file mode 100644
index 0000000000..4d03abe8a9
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 2.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Coarse @ 2.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "CldEMsO7x3i0nZ65",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 2.00mm nozzle",
+ "FELIX Food Double 2.00mm nozzle",
+ "FELIX Food Switch 2.00mm nozzle"
+ ],
+ "layer_height": "1.5",
+ "initial_layer_print_height": "1.5",
+ "line_width": "2.4",
+ "outer_wall_line_width": "2.4",
+ "inner_wall_line_width": "2.4",
+ "top_surface_line_width": "2.4",
+ "sparse_infill_line_width": "2.4",
+ "internal_solid_infill_line_width": "2.4",
+ "initial_layer_line_width": "2.4",
+ "support_line_width": "2.4",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "1.5",
+ "support_bottom_z_distance": "1.5",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 3.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 3.00mm.json
new file mode 100644
index 0000000000..ff0d781baf
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 3.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Coarse @ 3.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "hC2bLisn5m6NPB7c",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 3.00mm nozzle",
+ "FELIX Food Double 3.00mm nozzle",
+ "FELIX Food Switch 3.00mm nozzle"
+ ],
+ "layer_height": "2.0",
+ "initial_layer_print_height": "2.0",
+ "line_width": "3.6",
+ "outer_wall_line_width": "3.6",
+ "inner_wall_line_width": "3.6",
+ "top_surface_line_width": "3.6",
+ "sparse_infill_line_width": "3.6",
+ "internal_solid_infill_line_width": "3.6",
+ "initial_layer_line_width": "3.6",
+ "support_line_width": "3.6",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "2.0",
+ "support_bottom_z_distance": "2.0",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 4.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 4.00mm.json
new file mode 100644
index 0000000000..01176ca8fb
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Coarse @ 4.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Coarse @ 4.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "s4IF9hsk8tUwXmwl",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 4.00mm nozzle",
+ "FELIX Food Double 4.00mm nozzle",
+ "FELIX Food Switch 4.00mm nozzle"
+ ],
+ "layer_height": "3.0",
+ "initial_layer_print_height": "3.0",
+ "line_width": "4.8",
+ "outer_wall_line_width": "4.8",
+ "inner_wall_line_width": "4.8",
+ "top_surface_line_width": "4.8",
+ "sparse_infill_line_width": "4.8",
+ "internal_solid_infill_line_width": "4.8",
+ "initial_layer_line_width": "4.8",
+ "support_line_width": "4.8",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "3.0",
+ "support_bottom_z_distance": "3.0",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 0.50mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 0.50mm.json
new file mode 100644
index 0000000000..56ccd3d258
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 0.50mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Fine @ 0.50mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "6aQk1qmNjb77jkOB",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 0.50mm nozzle",
+ "FELIX Food Double 0.50mm nozzle",
+ "FELIX Food Switch 0.50mm nozzle"
+ ],
+ "layer_height": "0.25",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.6",
+ "outer_wall_line_width": "0.6",
+ "inner_wall_line_width": "0.6",
+ "top_surface_line_width": "0.6",
+ "sparse_infill_line_width": "0.6",
+ "internal_solid_infill_line_width": "0.6",
+ "initial_layer_line_width": "0.6",
+ "support_line_width": "0.6",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "4",
+ "support_top_z_distance": "0.25",
+ "support_bottom_z_distance": "0.25",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 1.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 1.00mm.json
new file mode 100644
index 0000000000..3b65bc8699
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 1.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Fine @ 1.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "AhmKoWtJY2qBbZni",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 1.00mm nozzle",
+ "FELIX Food Double 1.00mm nozzle",
+ "FELIX Food Switch 1.00mm nozzle"
+ ],
+ "layer_height": "0.5",
+ "initial_layer_print_height": "0.5",
+ "line_width": "1.2",
+ "outer_wall_line_width": "1.2",
+ "inner_wall_line_width": "1.2",
+ "top_surface_line_width": "1.2",
+ "sparse_infill_line_width": "1.2",
+ "internal_solid_infill_line_width": "1.2",
+ "initial_layer_line_width": "1.2",
+ "support_line_width": "1.2",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "0.5",
+ "support_bottom_z_distance": "0.5",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 2.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 2.00mm.json
new file mode 100644
index 0000000000..1462447bf4
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 2.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Fine @ 2.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "uqBBFs2qyrK18QeF",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 2.00mm nozzle",
+ "FELIX Food Double 2.00mm nozzle",
+ "FELIX Food Switch 2.00mm nozzle"
+ ],
+ "layer_height": "1.0",
+ "initial_layer_print_height": "1.0",
+ "line_width": "2.4",
+ "outer_wall_line_width": "2.4",
+ "inner_wall_line_width": "2.4",
+ "top_surface_line_width": "2.4",
+ "sparse_infill_line_width": "2.4",
+ "internal_solid_infill_line_width": "2.4",
+ "initial_layer_line_width": "2.4",
+ "support_line_width": "2.4",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "1.0",
+ "support_bottom_z_distance": "1.0",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 3.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 3.00mm.json
new file mode 100644
index 0000000000..10c11d656a
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 3.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Fine @ 3.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "hB5QoitbGJF8zMzj",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 3.00mm nozzle",
+ "FELIX Food Double 3.00mm nozzle",
+ "FELIX Food Switch 3.00mm nozzle"
+ ],
+ "layer_height": "1.5",
+ "initial_layer_print_height": "1.5",
+ "line_width": "3.6",
+ "outer_wall_line_width": "3.6",
+ "inner_wall_line_width": "3.6",
+ "top_surface_line_width": "3.6",
+ "sparse_infill_line_width": "3.6",
+ "internal_solid_infill_line_width": "3.6",
+ "initial_layer_line_width": "3.6",
+ "support_line_width": "3.6",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "1.5",
+ "support_bottom_z_distance": "1.5",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 4.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 4.00mm.json
new file mode 100644
index 0000000000..7e95f35420
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Fine @ 4.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Fine @ 4.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "FJMeyIGB7HUMwvPo",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 4.00mm nozzle",
+ "FELIX Food Double 4.00mm nozzle",
+ "FELIX Food Switch 4.00mm nozzle"
+ ],
+ "layer_height": "2.0",
+ "initial_layer_print_height": "2.0",
+ "line_width": "4.8",
+ "outer_wall_line_width": "4.8",
+ "inner_wall_line_width": "4.8",
+ "top_surface_line_width": "4.8",
+ "sparse_infill_line_width": "4.8",
+ "internal_solid_infill_line_width": "4.8",
+ "initial_layer_line_width": "4.8",
+ "support_line_width": "4.8",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "2.0",
+ "support_bottom_z_distance": "2.0",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 0.50mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 0.50mm.json
new file mode 100644
index 0000000000..df2c98b2b6
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 0.50mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Normal @ 0.50mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "P37ska93nTzu6uhP",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 0.50mm nozzle",
+ "FELIX Food Double 0.50mm nozzle",
+ "FELIX Food Switch 0.50mm nozzle"
+ ],
+ "layer_height": "0.32",
+ "initial_layer_print_height": "0.32",
+ "line_width": "0.6",
+ "outer_wall_line_width": "0.6",
+ "inner_wall_line_width": "0.6",
+ "top_surface_line_width": "0.6",
+ "sparse_infill_line_width": "0.6",
+ "internal_solid_infill_line_width": "0.6",
+ "initial_layer_line_width": "0.6",
+ "support_line_width": "0.6",
+ "top_shell_layers": "3",
+ "bottom_shell_layers": "3",
+ "support_top_z_distance": "0.32",
+ "support_bottom_z_distance": "0.32",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 1.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 1.00mm.json
new file mode 100644
index 0000000000..0bf9ce67dc
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 1.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Normal @ 1.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "9a41Dz8aP2DyKnq4",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 1.00mm nozzle",
+ "FELIX Food Double 1.00mm nozzle",
+ "FELIX Food Switch 1.00mm nozzle"
+ ],
+ "layer_height": "0.62",
+ "initial_layer_print_height": "0.62",
+ "line_width": "1.2",
+ "outer_wall_line_width": "1.2",
+ "inner_wall_line_width": "1.2",
+ "top_surface_line_width": "1.2",
+ "sparse_infill_line_width": "1.2",
+ "internal_solid_infill_line_width": "1.2",
+ "initial_layer_line_width": "1.2",
+ "support_line_width": "1.2",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "0.62",
+ "support_bottom_z_distance": "0.62",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 2.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 2.00mm.json
new file mode 100644
index 0000000000..3faae8b84c
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 2.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Normal @ 2.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "s55t5WGPCzjg3jQ1",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 2.00mm nozzle",
+ "FELIX Food Double 2.00mm nozzle",
+ "FELIX Food Switch 2.00mm nozzle"
+ ],
+ "layer_height": "1.25",
+ "initial_layer_print_height": "1.25",
+ "line_width": "2.4",
+ "outer_wall_line_width": "2.4",
+ "inner_wall_line_width": "2.4",
+ "top_surface_line_width": "2.4",
+ "sparse_infill_line_width": "2.4",
+ "internal_solid_infill_line_width": "2.4",
+ "initial_layer_line_width": "2.4",
+ "support_line_width": "2.4",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "1.25",
+ "support_bottom_z_distance": "1.25",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 3.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 3.00mm.json
new file mode 100644
index 0000000000..81b1a8c260
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 3.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Normal @ 3.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "evKquTtiGeQXWlJJ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 3.00mm nozzle",
+ "FELIX Food Double 3.00mm nozzle",
+ "FELIX Food Switch 3.00mm nozzle"
+ ],
+ "layer_height": "1.75",
+ "initial_layer_print_height": "1.75",
+ "line_width": "3.6",
+ "outer_wall_line_width": "3.6",
+ "inner_wall_line_width": "3.6",
+ "top_surface_line_width": "3.6",
+ "sparse_infill_line_width": "3.6",
+ "internal_solid_infill_line_width": "3.6",
+ "initial_layer_line_width": "3.6",
+ "support_line_width": "3.6",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "1.75",
+ "support_bottom_z_distance": "1.75",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 4.00mm.json b/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 4.00mm.json
new file mode 100644
index 0000000000..7d48ce8cc5
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Food Normal @ 4.00mm.json
@@ -0,0 +1,51 @@
+{
+ "type": "process",
+ "name": "FELIX Food Normal @ 4.00mm",
+ "inherits": "fdm_process_felix_food_common",
+ "from": "system",
+ "setting_id": "mRKngRmflGmqgP4A",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Food Single 4.00mm nozzle",
+ "FELIX Food Double 4.00mm nozzle",
+ "FELIX Food Switch 4.00mm nozzle"
+ ],
+ "layer_height": "2.5",
+ "initial_layer_print_height": "2.5",
+ "line_width": "4.8",
+ "outer_wall_line_width": "4.8",
+ "inner_wall_line_width": "4.8",
+ "top_surface_line_width": "4.8",
+ "sparse_infill_line_width": "4.8",
+ "internal_solid_infill_line_width": "4.8",
+ "initial_layer_line_width": "4.8",
+ "support_line_width": "4.8",
+ "top_shell_layers": "2",
+ "bottom_shell_layers": "2",
+ "support_top_z_distance": "2.5",
+ "support_bottom_z_distance": "2.5",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "60.0"
+ ],
+ "internal_solid_infill_speed": [
+ "60.0"
+ ],
+ "top_surface_speed": [
+ "60.0"
+ ],
+ "initial_layer_speed": [
+ "60.0"
+ ],
+ "initial_layer_infill_speed": [
+ "60.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Coarse @ 0.35mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Coarse @ 0.35mm.json
new file mode 100644
index 0000000000..38e9c73643
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Coarse @ 0.35mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Coarse @ 0.35mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "Z8goNtwfdtLzulwS",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "layer_height": "0.3",
+ "initial_layer_print_height": "0.3",
+ "line_width": "0.38",
+ "outer_wall_line_width": "0.38",
+ "inner_wall_line_width": "0.38",
+ "top_surface_line_width": "0.38",
+ "sparse_infill_line_width": "0.38",
+ "internal_solid_infill_line_width": "0.38",
+ "initial_layer_line_width": "0.38",
+ "support_line_width": "0.38",
+ "top_shell_layers": "3",
+ "bottom_shell_layers": "3",
+ "support_top_z_distance": "0.3",
+ "support_bottom_z_distance": "0.3",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Coarse @ 0.50mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Coarse @ 0.50mm.json
new file mode 100644
index 0000000000..3c9beee388
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Coarse @ 0.50mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Coarse @ 0.50mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "5fyV1SOacLMdAgBW",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "layer_height": "0.3",
+ "initial_layer_print_height": "0.3",
+ "line_width": "0.53",
+ "outer_wall_line_width": "0.53",
+ "inner_wall_line_width": "0.53",
+ "top_surface_line_width": "0.53",
+ "sparse_infill_line_width": "0.53",
+ "internal_solid_infill_line_width": "0.53",
+ "initial_layer_line_width": "0.53",
+ "support_line_width": "0.53",
+ "top_shell_layers": "3",
+ "bottom_shell_layers": "3",
+ "support_top_z_distance": "0.3",
+ "support_bottom_z_distance": "0.3",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Coarse @ 0.70mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Coarse @ 0.70mm.json
new file mode 100644
index 0000000000..7ebd49654a
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Coarse @ 0.70mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Coarse @ 0.70mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "0moSlAC1rSbmKNRe",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "layer_height": "0.3",
+ "initial_layer_print_height": "0.3",
+ "line_width": "0.73",
+ "outer_wall_line_width": "0.73",
+ "inner_wall_line_width": "0.73",
+ "top_surface_line_width": "0.73",
+ "sparse_infill_line_width": "0.73",
+ "internal_solid_infill_line_width": "0.73",
+ "initial_layer_line_width": "0.73",
+ "support_line_width": "0.73",
+ "top_shell_layers": "3",
+ "bottom_shell_layers": "3",
+ "support_top_z_distance": "0.3",
+ "support_bottom_z_distance": "0.3",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.25mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.25mm.json
new file mode 100644
index 0000000000..29411a8a78
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.25mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Fine @ 0.25mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "JYr82RTDgQV3m2FQ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "layer_height": "0.15",
+ "initial_layer_print_height": "0.2",
+ "line_width": "0.28",
+ "outer_wall_line_width": "0.28",
+ "inner_wall_line_width": "0.28",
+ "top_surface_line_width": "0.28",
+ "sparse_infill_line_width": "0.28",
+ "internal_solid_infill_line_width": "0.28",
+ "initial_layer_line_width": "0.28",
+ "support_line_width": "0.28",
+ "top_shell_layers": "5",
+ "bottom_shell_layers": "5",
+ "support_top_z_distance": "0.3",
+ "support_bottom_z_distance": "0.3",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.35mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.35mm.json
new file mode 100644
index 0000000000..0f45b9e4a2
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.35mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Fine @ 0.35mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "AfD8EPX5Trnn7CkL",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "layer_height": "0.15",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.38",
+ "outer_wall_line_width": "0.38",
+ "inner_wall_line_width": "0.38",
+ "top_surface_line_width": "0.38",
+ "sparse_infill_line_width": "0.38",
+ "internal_solid_infill_line_width": "0.38",
+ "initial_layer_line_width": "0.38",
+ "support_line_width": "0.38",
+ "top_shell_layers": "5",
+ "bottom_shell_layers": "5",
+ "support_top_z_distance": "0.3",
+ "support_bottom_z_distance": "0.3",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.50mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.50mm.json
new file mode 100644
index 0000000000..982ffe0ead
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.50mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Fine @ 0.50mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "Ppv1UaodCxyBtQnW",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "layer_height": "0.15",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.53",
+ "outer_wall_line_width": "0.53",
+ "inner_wall_line_width": "0.53",
+ "top_surface_line_width": "0.53",
+ "sparse_infill_line_width": "0.53",
+ "internal_solid_infill_line_width": "0.53",
+ "initial_layer_line_width": "0.53",
+ "support_line_width": "0.53",
+ "top_shell_layers": "5",
+ "bottom_shell_layers": "5",
+ "support_top_z_distance": "0.3",
+ "support_bottom_z_distance": "0.3",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.70mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.70mm.json
new file mode 100644
index 0000000000..bd65b55646
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Fine @ 0.70mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Fine @ 0.70mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "B43u1xZ6285Y4pza",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "layer_height": "0.15",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.73",
+ "outer_wall_line_width": "0.73",
+ "inner_wall_line_width": "0.73",
+ "top_surface_line_width": "0.73",
+ "sparse_infill_line_width": "0.73",
+ "internal_solid_infill_line_width": "0.73",
+ "initial_layer_line_width": "0.73",
+ "support_line_width": "0.73",
+ "top_shell_layers": "5",
+ "bottom_shell_layers": "5",
+ "support_top_z_distance": "0.3",
+ "support_bottom_z_distance": "0.3",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.25mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.25mm.json
new file mode 100644
index 0000000000..f698362b63
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.25mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Normal @ 0.25mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "MC9XOww5UNCZvNDL",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.2",
+ "line_width": "0.28",
+ "outer_wall_line_width": "0.28",
+ "inner_wall_line_width": "0.28",
+ "top_surface_line_width": "0.28",
+ "sparse_infill_line_width": "0.28",
+ "internal_solid_infill_line_width": "0.28",
+ "initial_layer_line_width": "0.28",
+ "support_line_width": "0.28",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "4",
+ "support_top_z_distance": "0.4",
+ "support_bottom_z_distance": "0.4",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.35mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.35mm.json
new file mode 100644
index 0000000000..1f2c11f979
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.35mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Normal @ 0.35mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "pKbhbYFZysxsii5C",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.38",
+ "outer_wall_line_width": "0.38",
+ "inner_wall_line_width": "0.38",
+ "top_surface_line_width": "0.38",
+ "sparse_infill_line_width": "0.38",
+ "internal_solid_infill_line_width": "0.38",
+ "initial_layer_line_width": "0.38",
+ "support_line_width": "0.38",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "4",
+ "support_top_z_distance": "0.4",
+ "support_bottom_z_distance": "0.4",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.50mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.50mm.json
new file mode 100644
index 0000000000..28a24daf24
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.50mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Normal @ 0.50mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "4Q4IPA55ILtFPtrQ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.53",
+ "outer_wall_line_width": "0.53",
+ "inner_wall_line_width": "0.53",
+ "top_surface_line_width": "0.53",
+ "sparse_infill_line_width": "0.53",
+ "internal_solid_infill_line_width": "0.53",
+ "initial_layer_line_width": "0.53",
+ "support_line_width": "0.53",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "4",
+ "support_top_z_distance": "0.4",
+ "support_bottom_z_distance": "0.4",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.70mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.70mm.json
new file mode 100644
index 0000000000..952adbc988
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Normal @ 0.70mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Normal @ 0.70mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "hhw94Vy5qcfhcNbd",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.73",
+ "outer_wall_line_width": "0.73",
+ "inner_wall_line_width": "0.73",
+ "top_surface_line_width": "0.73",
+ "sparse_infill_line_width": "0.73",
+ "internal_solid_infill_line_width": "0.73",
+ "initial_layer_line_width": "0.73",
+ "support_line_width": "0.73",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "4",
+ "support_top_z_distance": "0.4",
+ "support_bottom_z_distance": "0.4",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Slightly Coarse @ 0.35mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Slightly Coarse @ 0.35mm.json
new file mode 100644
index 0000000000..a05bc8cebb
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Slightly Coarse @ 0.35mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Slightly Coarse @ 0.35mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "2Gmm3h9FNPQPwyJl",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "layer_height": "0.25",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.38",
+ "outer_wall_line_width": "0.38",
+ "inner_wall_line_width": "0.38",
+ "top_surface_line_width": "0.38",
+ "sparse_infill_line_width": "0.38",
+ "internal_solid_infill_line_width": "0.38",
+ "initial_layer_line_width": "0.38",
+ "support_line_width": "0.38",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "4",
+ "support_top_z_distance": "0.5",
+ "support_bottom_z_distance": "0.5",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Slightly Coarse @ 0.50mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Slightly Coarse @ 0.50mm.json
new file mode 100644
index 0000000000..14f6901e19
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Slightly Coarse @ 0.50mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Slightly Coarse @ 0.50mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "ZEjrPBC702jBGbVq",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "layer_height": "0.25",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.53",
+ "outer_wall_line_width": "0.53",
+ "inner_wall_line_width": "0.53",
+ "top_surface_line_width": "0.53",
+ "sparse_infill_line_width": "0.53",
+ "internal_solid_infill_line_width": "0.53",
+ "initial_layer_line_width": "0.53",
+ "support_line_width": "0.53",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "4",
+ "support_top_z_distance": "0.5",
+ "support_bottom_z_distance": "0.5",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Slightly Coarse @ 0.70mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Slightly Coarse @ 0.70mm.json
new file mode 100644
index 0000000000..fdd480cb12
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Slightly Coarse @ 0.70mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Slightly Coarse @ 0.70mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "SG4HqmCm7QWXQldk",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "layer_height": "0.25",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.73",
+ "outer_wall_line_width": "0.73",
+ "inner_wall_line_width": "0.73",
+ "top_surface_line_width": "0.73",
+ "sparse_infill_line_width": "0.73",
+ "internal_solid_infill_line_width": "0.73",
+ "initial_layer_line_width": "0.73",
+ "support_line_width": "0.73",
+ "top_shell_layers": "4",
+ "bottom_shell_layers": "4",
+ "support_top_z_distance": "0.5",
+ "support_bottom_z_distance": "0.5",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Super Coarse @ 0.70mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Super Coarse @ 0.70mm.json
new file mode 100644
index 0000000000..776937809b
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Super Coarse @ 0.70mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Super Coarse @ 0.70mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "pm6oeAQnRqk9IWGi",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "layer_height": "0.5",
+ "initial_layer_print_height": "0.5",
+ "line_width": "0.73",
+ "outer_wall_line_width": "0.73",
+ "inner_wall_line_width": "0.73",
+ "top_surface_line_width": "0.73",
+ "sparse_infill_line_width": "0.73",
+ "internal_solid_infill_line_width": "0.73",
+ "initial_layer_line_width": "0.73",
+ "support_line_width": "0.73",
+ "top_shell_layers": "3",
+ "bottom_shell_layers": "3",
+ "support_top_z_distance": "0.5",
+ "support_bottom_z_distance": "0.5",
+ "inner_wall_speed": [
+ "40.0"
+ ],
+ "sparse_infill_speed": [
+ "40.0"
+ ],
+ "support_speed": [
+ "40.0"
+ ],
+ "outer_wall_speed": [
+ "20.0"
+ ],
+ "internal_solid_infill_speed": [
+ "20.0"
+ ],
+ "top_surface_speed": [
+ "20.0"
+ ],
+ "initial_layer_speed": [
+ "20.0"
+ ],
+ "initial_layer_infill_speed": [
+ "20.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Super Fine @ 0.25mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Super Fine @ 0.25mm.json
new file mode 100644
index 0000000000..a424644ae8
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Super Fine @ 0.25mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Super Fine @ 0.25mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "BRf5o2gjW4kTNrFJ",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "layer_height": "0.05",
+ "initial_layer_print_height": "0.2",
+ "line_width": "0.28",
+ "outer_wall_line_width": "0.28",
+ "inner_wall_line_width": "0.28",
+ "top_surface_line_width": "0.28",
+ "sparse_infill_line_width": "0.28",
+ "internal_solid_infill_line_width": "0.28",
+ "initial_layer_line_width": "0.28",
+ "support_line_width": "0.28",
+ "top_shell_layers": "9",
+ "bottom_shell_layers": "9",
+ "support_top_z_distance": "0.25",
+ "support_bottom_z_distance": "0.25",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Super Fine @ 0.35mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Super Fine @ 0.35mm.json
new file mode 100644
index 0000000000..0f346d253b
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Super Fine @ 0.35mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Super Fine @ 0.35mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "1DSAKQxF5DRpstyD",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "layer_height": "0.05",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.38",
+ "outer_wall_line_width": "0.38",
+ "inner_wall_line_width": "0.38",
+ "top_surface_line_width": "0.38",
+ "sparse_infill_line_width": "0.38",
+ "internal_solid_infill_line_width": "0.38",
+ "initial_layer_line_width": "0.38",
+ "support_line_width": "0.38",
+ "top_shell_layers": "9",
+ "bottom_shell_layers": "9",
+ "support_top_z_distance": "0.25",
+ "support_bottom_z_distance": "0.25",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Very Coarse @ 0.50mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Very Coarse @ 0.50mm.json
new file mode 100644
index 0000000000..e91332a531
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Very Coarse @ 0.50mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Very Coarse @ 0.50mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "GMaVsP4oxICByylS",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "layer_height": "0.4",
+ "initial_layer_print_height": "0.4",
+ "line_width": "0.53",
+ "outer_wall_line_width": "0.53",
+ "inner_wall_line_width": "0.53",
+ "top_surface_line_width": "0.53",
+ "sparse_infill_line_width": "0.53",
+ "internal_solid_infill_line_width": "0.53",
+ "initial_layer_line_width": "0.53",
+ "support_line_width": "0.53",
+ "top_shell_layers": "3",
+ "bottom_shell_layers": "3",
+ "support_top_z_distance": "0.4",
+ "support_bottom_z_distance": "0.4",
+ "inner_wall_speed": [
+ "50.0"
+ ],
+ "sparse_infill_speed": [
+ "50.0"
+ ],
+ "support_speed": [
+ "50.0"
+ ],
+ "outer_wall_speed": [
+ "25.0"
+ ],
+ "internal_solid_infill_speed": [
+ "25.0"
+ ],
+ "top_surface_speed": [
+ "25.0"
+ ],
+ "initial_layer_speed": [
+ "25.0"
+ ],
+ "initial_layer_infill_speed": [
+ "25.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Very Coarse @ 0.70mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Very Coarse @ 0.70mm.json
new file mode 100644
index 0000000000..a6f6da4014
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Very Coarse @ 0.70mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Very Coarse @ 0.70mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "yqr8p7P4V1HL7mPE",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.70mm nozzle",
+ "FELIX Pro L 3.0 0.70mm nozzle",
+ "FELIX Pro XL 3.0 0.70mm nozzle",
+ "FELIX Tec 4 0.70mm nozzle"
+ ],
+ "layer_height": "0.4",
+ "initial_layer_print_height": "0.4",
+ "line_width": "0.73",
+ "outer_wall_line_width": "0.73",
+ "inner_wall_line_width": "0.73",
+ "top_surface_line_width": "0.73",
+ "sparse_infill_line_width": "0.73",
+ "internal_solid_infill_line_width": "0.73",
+ "initial_layer_line_width": "0.73",
+ "support_line_width": "0.73",
+ "top_shell_layers": "3",
+ "bottom_shell_layers": "3",
+ "support_top_z_distance": "0.4",
+ "support_bottom_z_distance": "0.4",
+ "inner_wall_speed": [
+ "50.0"
+ ],
+ "sparse_infill_speed": [
+ "50.0"
+ ],
+ "support_speed": [
+ "50.0"
+ ],
+ "outer_wall_speed": [
+ "25.0"
+ ],
+ "internal_solid_infill_speed": [
+ "25.0"
+ ],
+ "top_surface_speed": [
+ "25.0"
+ ],
+ "initial_layer_speed": [
+ "25.0"
+ ],
+ "initial_layer_infill_speed": [
+ "25.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Very Fine @ 0.25mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Very Fine @ 0.25mm.json
new file mode 100644
index 0000000000..6d21447e49
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Very Fine @ 0.25mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Very Fine @ 0.25mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "CgkropmoBe2UJd0A",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.25mm nozzle",
+ "FELIX Pro L 3.0 0.25mm nozzle",
+ "FELIX Pro XL 3.0 0.25mm nozzle",
+ "FELIX Tec 4 0.25mm nozzle"
+ ],
+ "layer_height": "0.1",
+ "initial_layer_print_height": "0.2",
+ "line_width": "0.28",
+ "outer_wall_line_width": "0.28",
+ "inner_wall_line_width": "0.28",
+ "top_surface_line_width": "0.28",
+ "sparse_infill_line_width": "0.28",
+ "internal_solid_infill_line_width": "0.28",
+ "initial_layer_line_width": "0.28",
+ "support_line_width": "0.28",
+ "top_shell_layers": "6",
+ "bottom_shell_layers": "6",
+ "support_top_z_distance": "0.3",
+ "support_bottom_z_distance": "0.3",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Very Fine @ 0.35mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Very Fine @ 0.35mm.json
new file mode 100644
index 0000000000..90affeaa32
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Very Fine @ 0.35mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Very Fine @ 0.35mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "mCgIM99PAHtOgjTU",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.35mm nozzle",
+ "FELIX Pro L 3.0 0.35mm nozzle",
+ "FELIX Pro XL 3.0 0.35mm nozzle",
+ "FELIX Tec 4 0.35mm nozzle"
+ ],
+ "layer_height": "0.1",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.38",
+ "outer_wall_line_width": "0.38",
+ "inner_wall_line_width": "0.38",
+ "top_surface_line_width": "0.38",
+ "sparse_infill_line_width": "0.38",
+ "internal_solid_infill_line_width": "0.38",
+ "initial_layer_line_width": "0.38",
+ "support_line_width": "0.38",
+ "top_shell_layers": "6",
+ "bottom_shell_layers": "6",
+ "support_top_z_distance": "0.3",
+ "support_bottom_z_distance": "0.3",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/FELIX Plastic Very Fine @ 0.50mm.json b/resources/profiles/FELIX Printers/process/FELIX Plastic Very Fine @ 0.50mm.json
new file mode 100644
index 0000000000..7c2a895be6
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/FELIX Plastic Very Fine @ 0.50mm.json
@@ -0,0 +1,52 @@
+{
+ "type": "process",
+ "name": "FELIX Plastic Very Fine @ 0.50mm",
+ "inherits": "fdm_process_felix_plastic_common",
+ "from": "system",
+ "setting_id": "sIRWut1FsrhKEGIC",
+ "instantiation": "true",
+ "compatible_printers": [
+ "FELIX Pro 3 0.50mm nozzle",
+ "FELIX Pro L 3.0 0.50mm nozzle",
+ "FELIX Pro XL 3.0 0.50mm nozzle",
+ "FELIX Tec 4 0.50mm nozzle"
+ ],
+ "layer_height": "0.1",
+ "initial_layer_print_height": "0.25",
+ "line_width": "0.53",
+ "outer_wall_line_width": "0.53",
+ "inner_wall_line_width": "0.53",
+ "top_surface_line_width": "0.53",
+ "sparse_infill_line_width": "0.53",
+ "internal_solid_infill_line_width": "0.53",
+ "initial_layer_line_width": "0.53",
+ "support_line_width": "0.53",
+ "top_shell_layers": "6",
+ "bottom_shell_layers": "6",
+ "support_top_z_distance": "0.3",
+ "support_bottom_z_distance": "0.3",
+ "inner_wall_speed": [
+ "60.0"
+ ],
+ "sparse_infill_speed": [
+ "60.0"
+ ],
+ "support_speed": [
+ "60.0"
+ ],
+ "outer_wall_speed": [
+ "30.0"
+ ],
+ "internal_solid_infill_speed": [
+ "30.0"
+ ],
+ "top_surface_speed": [
+ "30.0"
+ ],
+ "initial_layer_speed": [
+ "30.0"
+ ],
+ "initial_layer_infill_speed": [
+ "30.0"
+ ]
+}
diff --git a/resources/profiles/FELIX Printers/process/fdm_process_common.json b/resources/profiles/FELIX Printers/process/fdm_process_common.json
new file mode 100644
index 0000000000..f8304ed2ad
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/fdm_process_common.json
@@ -0,0 +1,107 @@
+{
+ "type": "process",
+ "name": "fdm_process_common",
+ "from": "system",
+ "instantiation": "false",
+ "reduce_crossing_wall": "0",
+ "max_travel_detour_distance": "0",
+ "bottom_surface_pattern": "monotonic",
+ "bottom_shell_thickness": "0",
+ "bridge_speed": "50",
+ "brim_width": "5",
+ "brim_object_gap": "0.1",
+ "compatible_printers": [],
+ "compatible_printers_condition": "",
+ "print_sequence": "by layer",
+ "default_acceleration": "0",
+ "initial_layer_acceleration": "500",
+ "top_surface_acceleration": "1000",
+ "travel_acceleration": "1000",
+ "inner_wall_acceleration": "1000",
+ "outer_wall_acceleration": "700",
+ "bridge_no_support": "0",
+ "draft_shield": "disabled",
+ "elefant_foot_compensation": "0",
+ "enable_arc_fitting": "0",
+ "wall_sequence": "inner wall/outer wall",
+ "infill_direction": "45",
+ "sparse_infill_density": "15%",
+ "sparse_infill_pattern": "rectilinear",
+ "initial_layer_print_height": "0.2",
+ "infill_combination": "0",
+ "infill_wall_overlap": "15%",
+ "interface_shells": "0",
+ "ironing_flow": "10%",
+ "ironing_spacing": "0.15",
+ "ironing_speed": "30",
+ "ironing_type": "no ironing",
+ "reduce_infill_retraction": "1",
+ "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode",
+ "detect_overhang_wall": "1",
+ "slowdown_for_curled_perimeters": "1",
+ "overhang_1_4_speed": "0",
+ "overhang_2_4_speed": "50",
+ "overhang_3_4_speed": "30",
+ "overhang_4_4_speed": "10",
+ "line_width": "110%",
+ "inner_wall_line_width": "110%",
+ "outer_wall_line_width": "100%",
+ "top_surface_line_width": "93.75%",
+ "sparse_infill_line_width": "110%",
+ "initial_layer_line_width": "120%",
+ "internal_solid_infill_line_width": "120%",
+ "support_line_width": "96%",
+ "wall_loops": "3",
+ "print_settings_id": "",
+ "raft_layers": "0",
+ "seam_position": "aligned",
+ "skirt_distance": "2",
+ "skirt_height": "3",
+ "min_skirt_length": "4",
+ "skirt_loops": "0",
+ "minimum_sparse_infill_area": "15",
+ "spiral_mode": "0",
+ "standby_temperature_delta": "-5",
+ "enable_support": "1",
+ "resolution": "0.012",
+ "support_type": "tree(auto)",
+ "support_on_build_plate_only": "0",
+ "support_top_z_distance": "0.2",
+ "support_bottom_z_distance": "0.2",
+ "support_filament": "0",
+ "support_interface_loop_pattern": "0",
+ "support_interface_filament": "0",
+ "support_interface_top_layers": "2",
+ "support_interface_bottom_layers": "2",
+ "support_interface_spacing": "0.5",
+ "support_interface_speed": "80",
+ "support_base_pattern": "default",
+ "support_base_pattern_spacing": "2.5",
+ "support_speed": "150",
+ "support_threshold_angle": "30",
+ "support_object_xy_distance": "0.35",
+ "tree_support_branch_angle": "30",
+ "tree_support_wall_count": "0",
+ "detect_thin_wall": "0",
+ "top_surface_pattern": "monotonicline",
+ "top_shell_thickness": "0",
+ "enable_prime_tower": "1",
+ "prime_volume": "10",
+ "wipe_tower_no_sparse_layers": "0",
+ "prime_tower_width": "30",
+ "xy_hole_compensation": "0",
+ "xy_contour_compensation": "0",
+ "layer_height": "0.2",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "4",
+ "bridge_flow": "1",
+ "initial_layer_speed": "45",
+ "initial_layer_infill_speed": "45",
+ "outer_wall_speed": "45",
+ "inner_wall_speed": "80",
+ "sparse_infill_speed": "150",
+ "internal_solid_infill_speed": "150",
+ "top_surface_speed": "50",
+ "gap_infill_speed": "30",
+ "travel_speed": "200"
+}
diff --git a/resources/profiles/FELIX Printers/process/fdm_process_felix_food_common.json b/resources/profiles/FELIX Printers/process/fdm_process_felix_food_common.json
new file mode 100644
index 0000000000..38a22da7ac
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/fdm_process_felix_food_common.json
@@ -0,0 +1,14 @@
+{
+ "type": "process",
+ "name": "fdm_process_felix_food_common",
+ "inherits": "fdm_process_common",
+ "from": "system",
+ "instantiation": "false",
+ "enable_support": "0",
+ "enable_prime_tower": "0",
+ "wall_loops": "2",
+ "sparse_infill_density": "20%",
+ "is_infill_first": "1",
+ "travel_speed": "120",
+ "skirt_loops": "0"
+}
diff --git a/resources/profiles/FELIX Printers/process/fdm_process_felix_plastic_common.json b/resources/profiles/FELIX Printers/process/fdm_process_felix_plastic_common.json
new file mode 100644
index 0000000000..55b50c5874
--- /dev/null
+++ b/resources/profiles/FELIX Printers/process/fdm_process_felix_plastic_common.json
@@ -0,0 +1,15 @@
+{
+ "type": "process",
+ "name": "fdm_process_felix_plastic_common",
+ "inherits": "fdm_process_common",
+ "from": "system",
+ "instantiation": "false",
+ "ooze_prevention": "1",
+ "wall_loops": "3",
+ "sparse_infill_density": "20%",
+ "is_infill_first": "0",
+ "travel_speed": "140",
+ "skirt_loops": "1",
+ "skirt_distance": "5",
+ "skirt_height": "1"
+}
diff --git a/resources/profiles/Goofoo.json b/resources/profiles/Goofoo.json
new file mode 100644
index 0000000000..441e3919ab
--- /dev/null
+++ b/resources/profiles/Goofoo.json
@@ -0,0 +1,89 @@
+{
+ "name": "Goofoo",
+ "version": "02.04.00.01",
+ "force_update": "0",
+ "description": "Goofoo configurations",
+ "machine_model_list": [
+ {
+ "name": "Goofoo GP1",
+ "sub_path": "machine/Goofoo GP1.json"
+ },
+ {
+ "name": "Goofoo TurboM",
+ "sub_path": "machine/Goofoo TurboM.json"
+ },
+ {
+ "name": "Goofoo Velo+",
+ "sub_path": "machine/Goofoo Velo+.json"
+ },
+ {
+ "name": "Goofoo Velo+ Tool",
+ "sub_path": "machine/Goofoo Velo+ Tool.json"
+ }
+ ],
+ "process_list": [
+ {
+ "name": "fdm_process_common",
+ "sub_path": "process/fdm_process_common.json"
+ },
+ {
+ "name": "fdm_process_klipper_common",
+ "sub_path": "process/fdm_process_klipper_common.json"
+ },
+ {
+ "name": "0.20mm Standard @Goofoo GP1",
+ "sub_path": "process/0.20mm Standard @Goofoo GP1.json"
+ },
+ {
+ "name": "0.20mm Standard @Goofoo TurboM",
+ "sub_path": "process/0.20mm Standard @Goofoo TurboM.json"
+ },
+ {
+ "name": "0.20mm Standard @Goofoo Velo+",
+ "sub_path": "process/0.20mm Standard @Goofoo Velo+.json"
+ },
+ {
+ "name": "0.30mm Standard @Goofoo Velo+",
+ "sub_path": "process/0.30mm Standard @Goofoo Velo+.json"
+ },
+ {
+ "name": "0.10mm Standard @Goofoo Velo+",
+ "sub_path": "process/0.10mm Standard @Goofoo Velo+.json"
+ }
+ ],
+ "filament_list": [],
+ "machine_list": [
+ {
+ "name": "fdm_machine_common",
+ "sub_path": "machine/fdm_machine_common.json"
+ },
+ {
+ "name": "fdm_klipper_common",
+ "sub_path": "machine/fdm_klipper_common.json"
+ },
+ {
+ "name": "Goofoo GP1 0.4 nozzle",
+ "sub_path": "machine/Goofoo GP1 0.4 nozzle.json"
+ },
+ {
+ "name": "Goofoo TurboM 0.4 nozzle",
+ "sub_path": "machine/Goofoo TurboM 0.4 nozzle.json"
+ },
+ {
+ "name": "Goofoo Velo+ 0.2 nozzle",
+ "sub_path": "machine/Goofoo Velo+ 0.2 nozzle.json"
+ },
+ {
+ "name": "Goofoo Velo+ 0.4 nozzle",
+ "sub_path": "machine/Goofoo Velo+ 0.4 nozzle.json"
+ },
+ {
+ "name": "Goofoo Velo+ 0.6 nozzle",
+ "sub_path": "machine/Goofoo Velo+ 0.6 nozzle.json"
+ },
+ {
+ "name": "Goofoo Velo+ Tool 0.4",
+ "sub_path": "machine/Goofoo Velo+ Tool 0.4.json"
+ }
+ ]
+}
diff --git a/resources/profiles/Goofoo/Goofoo GP1_cover.png b/resources/profiles/Goofoo/Goofoo GP1_cover.png
new file mode 100644
index 0000000000..1a56866dc0
Binary files /dev/null and b/resources/profiles/Goofoo/Goofoo GP1_cover.png differ
diff --git a/resources/profiles/Goofoo/Goofoo TurboM_cover.png b/resources/profiles/Goofoo/Goofoo TurboM_cover.png
new file mode 100644
index 0000000000..1064bb3b3c
Binary files /dev/null and b/resources/profiles/Goofoo/Goofoo TurboM_cover.png differ
diff --git a/resources/profiles/Goofoo/Goofoo Velo+_cover.png b/resources/profiles/Goofoo/Goofoo Velo+_cover.png
new file mode 100644
index 0000000000..d1e80038c5
Binary files /dev/null and b/resources/profiles/Goofoo/Goofoo Velo+_cover.png differ
diff --git a/resources/profiles/Goofoo/Goofoo-GP1-texture.svg b/resources/profiles/Goofoo/Goofoo-GP1-texture.svg
new file mode 100644
index 0000000000..77c24deac5
--- /dev/null
+++ b/resources/profiles/Goofoo/Goofoo-GP1-texture.svg
@@ -0,0 +1,7 @@
+
+
+ Layer 1
+ GP1
+
+
+
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/Goofoo-GP1.stl b/resources/profiles/Goofoo/Goofoo-GP1.stl
new file mode 100644
index 0000000000..09ba1bc44a
Binary files /dev/null and b/resources/profiles/Goofoo/Goofoo-GP1.stl differ
diff --git a/resources/profiles/Goofoo/Goofoo-TurboM-texture.svg b/resources/profiles/Goofoo/Goofoo-TurboM-texture.svg
new file mode 100644
index 0000000000..94343a4d55
--- /dev/null
+++ b/resources/profiles/Goofoo/Goofoo-TurboM-texture.svg
@@ -0,0 +1,7 @@
+
+
+
+ Layer 1
+ TurboM
+
+
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/Goofoo-TurboM.stl b/resources/profiles/Goofoo/Goofoo-TurboM.stl
new file mode 100644
index 0000000000..79fa370b24
Binary files /dev/null and b/resources/profiles/Goofoo/Goofoo-TurboM.stl differ
diff --git a/resources/profiles/Goofoo/Goofoo-Velo+-texture.svg b/resources/profiles/Goofoo/Goofoo-Velo+-texture.svg
new file mode 100644
index 0000000000..a1fc804f20
--- /dev/null
+++ b/resources/profiles/Goofoo/Goofoo-Velo+-texture.svg
@@ -0,0 +1,6 @@
+
+
+ Layer 1
+ VELO+
+
+
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/Goofoo-Velo+.stl b/resources/profiles/Goofoo/Goofoo-Velo+.stl
new file mode 100644
index 0000000000..db004034e6
Binary files /dev/null and b/resources/profiles/Goofoo/Goofoo-Velo+.stl differ
diff --git a/resources/profiles/Goofoo/machine/Goofoo GP1 0.4 nozzle.json b/resources/profiles/Goofoo/machine/Goofoo GP1 0.4 nozzle.json
new file mode 100644
index 0000000000..d3713b2255
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/Goofoo GP1 0.4 nozzle.json
@@ -0,0 +1,98 @@
+{
+ "type": "machine",
+ "name": "Goofoo GP1 0.4 nozzle",
+ "inherits": "fdm_klipper_common",
+ "from": "system",
+ "setting_id": "x4GJ08PooNDQ8WJj",
+ "instantiation": "true",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "default_filament_profile": [
+ "Goofoo ABS @System"
+ ],
+ "printer_model": "Goofoo GP1",
+ "default_print_profile": "0.20mm Standard @Goofoo GP1",
+ "printer_variant": "0.4",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n;G92 E0",
+ "change_filament_gcode": "G5",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\n;layer\n;{if layer_num == 2}\n;M106 P1 S255\n;{endif}\nSET_PRINT_STATS_INFO CURRENT_LAYER=[layer_num]\n",
+ "machine_end_gcode": "; End G-code\nEND_PRINT",
+ "machine_pause_gcode": "G5",
+ "machine_start_gcode": "M117 Printing...\nM107 ; Turn off the fan\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nM104 S140\nM190 S[first_layer_bed_temperature] ; wait for bed temp\n;G32 ;Load bed mesh\nG28 ;home\nG29 bed leveling\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG0 Z2.0 F600;\nG0 X50 Y10 F8000;\nG92 E0.0 ; reset extruder distance position\nG0 Z0.4 F600;\nG1 X100.0 E10 F3000.0 ; intro line\nG92 E0.0 ; reset extruder distance position\nG1 X200.0 E15 F3000.0 ; intro line\nG92 E0.0 ; reset extruder distance position\nG0 Z0.8 F600;\nG1 X100.0 E15 F3000.0 ; intro line\nG1 Z0.4 F600 ;Wipe\nG0 Y12 F6000 ;Wipe\nG1 X100 F6000 ;Wipe\nG0 Y8 F12000 ;Wipe\nG1 X200 F6000 ;Wipe\nG1 X190 Y12 F6000 ;Wipe\nG1 X180 Y8 F6000 ;Wipe\nG1 X170 Y12 F6000 ;Wipe\nG1 X160 Y8 F6000 ;Wipe\nG1 X150 Y12 F6000 ;Wipe\n;G0 Z2.0 F600;\nG92 E0.0 ; reset extruder distance position\n;START_PRINT",
+ "purge_in_prime_tower": "0",
+ "time_lapse_gcode": ";TIMELAPSE_TAKE_FRAME",
+ "printable_height": "250",
+ "printable_area": [
+ "0x0",
+ "250x0",
+ "250x250",
+ "0x250"
+ ],
+ "deretraction_speed": [
+ "0"
+ ],
+ "extruder_clearance_height_to_lid": "140",
+ "extruder_clearance_height_to_rod": "36",
+ "extruder_clearance_radius": "65",
+ "machine_max_acceleration_e": [
+ "20000",
+ "5000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "15000",
+ "5000"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "200"
+ ],
+ "machine_max_jerk_e": [
+ "1",
+ "2.5"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "9"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "9"
+ ],
+ "machine_max_speed_e": [
+ "25",
+ "25"
+ ],
+ "machine_max_speed_x": [
+ "500",
+ "200"
+ ],
+ "machine_max_speed_y": [
+ "500",
+ "200"
+ ],
+ "machine_max_speed_z": [
+ "12",
+ "12"
+ ],
+ "retract_before_wipe": [
+ "100%"
+ ],
+ "retract_length_toolchange": [
+ "10"
+ ],
+ "retraction_length": [
+ "0.5"
+ ],
+ "retraction_minimum_travel": [
+ "2"
+ ],
+ "retraction_speed": [
+ "50"
+ ],
+ "thumbnails": "300x300/PNG",
+ "z_hop": [
+ "0"
+ ],
+ "upward_compatible_machine": []
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/machine/Goofoo GP1.json b/resources/profiles/Goofoo/machine/Goofoo GP1.json
new file mode 100644
index 0000000000..53f55c7c84
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/Goofoo GP1.json
@@ -0,0 +1,11 @@
+{
+ "type": "machine_model",
+ "name": "Goofoo GP1",
+ "nozzle_diameter": "0.4",
+ "bed_model": "Goofoo-GP1.stl",
+ "bed_texture": "Goofoo-GP1-texture.svg",
+ "family": "Goofoo",
+ "machine_tech": "FFF",
+ "model_id": "V003",
+ "default_materials": "Goofoo ABS @System"
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/machine/Goofoo TurboM 0.4 nozzle.json b/resources/profiles/Goofoo/machine/Goofoo TurboM 0.4 nozzle.json
new file mode 100644
index 0000000000..183d049d39
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/Goofoo TurboM 0.4 nozzle.json
@@ -0,0 +1,54 @@
+{
+ "type": "machine",
+ "name": "Goofoo TurboM 0.4 nozzle",
+ "inherits": "fdm_klipper_common",
+ "from": "system",
+ "setting_id": "Wmdn5zTy1HH93Q5d",
+ "instantiation": "true",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "nozzle_type": "brass",
+ "printer_model": "Goofoo TurboM",
+ "printer_variant": "0.4",
+ "default_filament_profile": [
+ "Goofoo ABS @System"
+ ],
+ "default_print_profile": "0.20mm Standard @Goofoo TurboM",
+ "printable_area": [
+ "0x0",
+ "230x0",
+ "230x200",
+ "0x200"
+ ],
+ "extruder_clearance_height_to_lid": "350",
+ "extruder_clearance_height_to_rod": "60",
+ "extruder_clearance_radius": "50",
+ "machine_end_gcode": "M104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG92 E0.0 ; reset extruder distance position;\nG1 E-1 F2100 ; retract\nG28 X Y; home X Y axis\n;M84 ; disable motors\nM107 ; turn off fan\n;SET_VELOCITY_LIMIT ACCEL_TO_DECEL=4000",
+ "machine_max_jerk_z": [
+ "3",
+ "0.4"
+ ],
+ "machine_start_gcode": "M107 ; Turn off the fan\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\n\n\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\n\nG28 ;home\n\nG1 X2 Y10 F3000;\n\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\n\nG1 Z0.28 F240\n\nG92 E0\n\nG1 Y140 E10 F1500 ; prime the nozzle\n\nG1 X2.3 F5000\nG92 E0\n\nG1 Y10 E10 F1200 ; prime the nozzle\n;G0 Z2.0 F600;\nG92 E0.0 ; reset extruder distance position;\nM82\n;SET_PRESSURE_ADVANCE ADVANCE=0.05\n;SET_VELOCITY_LIMIT ACCEL_TO_DECEL=10000\n",
+ "printable_height": "200",
+ "z_hop": [
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "25",
+ "25"
+ ],
+ "machine_max_speed_x": [
+ "500",
+ "200"
+ ],
+ "machine_max_speed_y": [
+ "500",
+ "200"
+ ],
+ "machine_max_speed_z": [
+ "12",
+ "12"
+ ],
+ "upward_compatible_machine": []
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/machine/Goofoo TurboM.json b/resources/profiles/Goofoo/machine/Goofoo TurboM.json
new file mode 100644
index 0000000000..1be44f99d9
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/Goofoo TurboM.json
@@ -0,0 +1,11 @@
+{
+ "type": "machine_model",
+ "name": "Goofoo TurboM",
+ "nozzle_diameter": "0.4",
+ "bed_model": "Goofoo-TurboM.stl",
+ "bed_texture": "Goofoo-TurboM-texture.svg",
+ "family": "Goofoo",
+ "machine_tech": "FFF",
+ "model_id": "V002",
+ "default_materials": "Goofoo ABS @System"
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/machine/Goofoo Velo+ 0.2 nozzle.json b/resources/profiles/Goofoo/machine/Goofoo Velo+ 0.2 nozzle.json
new file mode 100644
index 0000000000..43d8afdc46
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/Goofoo Velo+ 0.2 nozzle.json
@@ -0,0 +1,106 @@
+{
+ "type": "machine",
+ "name": "Goofoo Velo+ 0.2 nozzle",
+ "inherits": "fdm_klipper_common",
+ "from": "system",
+ "setting_id": "wSr6VNECZHekeNRi",
+ "instantiation": "true",
+ "nozzle_diameter": [
+ "0.2"
+ ],
+ "nozzle_type": "hardened_steel",
+ "printer_model": "Goofoo Velo+",
+ "printer_variant": "0.2",
+ "default_filament_profile": [
+ "Goofoo ABS @System"
+ ],
+ "default_print_profile": "0.10mm Standard @Goofoo Velo+",
+ "printable_area": [
+ "0x0",
+ "600x0",
+ "600x500",
+ "0x500"
+ ],
+ "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
+ "printable_height": "600",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0",
+ "change_filament_gcode": "PAUSE",
+ "deretraction_speed": [
+ "0"
+ ],
+ "extruder_clearance_height_to_lid": "350",
+ "extruder_clearance_height_to_rod": "60",
+ "extruder_clearance_radius": "50",
+ "machine_max_acceleration_e": [
+ "20000",
+ "5000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "15000",
+ "5000"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "200"
+ ],
+ "machine_max_jerk_e": [
+ "1",
+ "2.5"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "9"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "9"
+ ],
+ "machine_max_speed_e": [
+ "50",
+ "25"
+ ],
+ "machine_max_speed_x": [
+ "730",
+ "200"
+ ],
+ "machine_max_speed_y": [
+ "730",
+ "200"
+ ],
+ "machine_max_speed_z": [
+ "15",
+ "12"
+ ],
+ "machine_start_gcode": "G90 ; 绝对坐标模式\nM83 ; 挤出机相对模式\nM140 S[first_layer_bed_temperature] ; 设置热床温度\nM104 S140 ; 临时喷嘴温度=切片首层设定(防止归零渗料)\nG4 S10 ; 预热等待10秒\nG28 ; 归零所有轴\nG1 Z50 F240 ; Z轴抬升\nG1 X2 Y10 F3000 ; 移动至起始位置\nM104 S[nozzle_temperature_initial_layer] ; 正式设置喷嘴温度(与切片设置一致)\nM190 S[bed_temperature_initial_layer_single] ; 等待热床温度稳定\nM109 S[nozzle_temperature_initial_layer] ; 等待喷嘴温度稳定\nG1 Z0.28 F240 ; 喷嘴下降至打印高度\nG92 E0 ; 挤出机归零\nG1 Y140 E10 F1500 ; 画第一条 priming 线\nG1 X2.3 F5000 ; X轴微调\nG92 E0 ; 挤出机归零\nG1 Y10 E10 F1200 ; 画第二条 priming 线\nG92 E0 ; 最终挤出机归零",
+
+ "retract_before_wipe": [
+ "100%"
+ ],
+ "retract_length_toolchange": [
+ "10"
+ ],
+ "retraction_length": [
+ "0.5"
+ ],
+ "retraction_minimum_travel": [
+ "2"
+ ],
+ "retraction_speed": [
+ "50"
+ ],
+ "thumbnails": "300x300/PNG",
+ "z_hop": [
+ "0"
+ ],
+ "machine_max_acceleration_travel": [
+ "10000",
+ "10000"
+ ],
+ "max_layer_height": [
+ "0.16"
+ ],
+ "min_layer_height": [
+ "0.04"
+ ],
+ "upward_compatible_machine": []
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/machine/Goofoo Velo+ 0.4 nozzle.json b/resources/profiles/Goofoo/machine/Goofoo Velo+ 0.4 nozzle.json
new file mode 100644
index 0000000000..b334146d6a
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/Goofoo Velo+ 0.4 nozzle.json
@@ -0,0 +1,100 @@
+{
+ "type": "machine",
+ "name": "Goofoo Velo+ 0.4 nozzle",
+ "inherits": "fdm_klipper_common",
+ "from": "system",
+ "setting_id": "XzHz1vNOYg3Ofe8X",
+ "instantiation": "true",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "nozzle_type": "hardened_steel",
+ "printer_model": "Goofoo Velo+",
+ "printer_variant": "0.4",
+ "default_filament_profile": [
+ "Goofoo ABS @System"
+ ],
+ "default_print_profile": "0.20mm Standard @Goofoo Velo+",
+ "printable_area": [
+ "0x0",
+ "600x0",
+ "600x500",
+ "0x500"
+ ],
+ "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
+ "printable_height": "600",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0",
+ "change_filament_gcode": "PAUSE",
+ "deretraction_speed": [
+ "0"
+ ],
+ "extruder_clearance_height_to_lid": "350",
+ "extruder_clearance_height_to_rod": "60",
+ "extruder_clearance_radius": "50",
+ "machine_max_acceleration_e": [
+ "20000",
+ "5000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "15000",
+ "5000"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "200"
+ ],
+ "machine_max_jerk_e": [
+ "1",
+ "2.5"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "9"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "9"
+ ],
+ "machine_max_speed_e": [
+ "50",
+ "25"
+ ],
+ "machine_max_speed_x": [
+ "730",
+ "200"
+ ],
+ "machine_max_speed_y": [
+ "730",
+ "200"
+ ],
+ "machine_max_speed_z": [
+ "15",
+ "12"
+ ],
+ "machine_start_gcode": "G90 ; 绝对坐标模式\nM83 ; 挤出机相对模式\nM140 S[first_layer_bed_temperature] ; 设置热床温度\nM104 S140 ; 临时喷嘴温度=切片首层设定(防止归零渗料)\nG4 S10 ; 预热等待10秒\nG28 ; 归零所有轴\nG1 Z50 F240 ; Z轴抬升\nG1 X2 Y10 F3000 ; 移动至起始位置\nM104 S[nozzle_temperature_initial_layer] ; 正式设置喷嘴温度(与切片设置一致)\nM190 S[bed_temperature_initial_layer_single] ; 等待热床温度稳定\nM109 S[nozzle_temperature_initial_layer] ; 等待喷嘴温度稳定\nG1 Z0.28 F240 ; 喷嘴下降至打印高度\nG92 E0 ; 挤出机归零\nG1 Y140 E10 F1500 ; 画第一条 priming 线\nG1 X2.3 F5000 ; X轴微调\nG92 E0 ; 挤出机归零\nG1 Y10 E10 F1200 ; 画第二条 priming 线\nG92 E0 ; 最终挤出机归零",
+
+ "retract_before_wipe": [
+ "100%"
+ ],
+ "retract_length_toolchange": [
+ "10"
+ ],
+ "retraction_length": [
+ "0.5"
+ ],
+ "retraction_minimum_travel": [
+ "2"
+ ],
+ "retraction_speed": [
+ "50"
+ ],
+ "thumbnails": "300x300/PNG",
+ "z_hop": [
+ "0"
+ ],
+ "machine_max_acceleration_travel": [
+ "10000",
+ "10000"
+ ],
+ "upward_compatible_machine": []
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/machine/Goofoo Velo+ 0.6 nozzle.json b/resources/profiles/Goofoo/machine/Goofoo Velo+ 0.6 nozzle.json
new file mode 100644
index 0000000000..56a0824da8
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/Goofoo Velo+ 0.6 nozzle.json
@@ -0,0 +1,106 @@
+{
+ "type": "machine",
+ "name": "Goofoo Velo+ 0.6 nozzle",
+ "inherits": "fdm_klipper_common",
+ "from": "system",
+ "setting_id": "Pauu7JRq7u2OD6kv",
+ "instantiation": "true",
+ "nozzle_diameter": [
+ "0.6"
+ ],
+ "nozzle_type": "hardened_steel",
+ "printer_model": "Goofoo Velo+",
+ "printer_variant": "0.6",
+ "default_filament_profile": [
+ "Goofoo ABS @System"
+ ],
+ "default_print_profile": "0.30mm Standard @Goofoo Velo+",
+ "printable_area": [
+ "0x0",
+ "600x0",
+ "600x500",
+ "0x500"
+ ],
+ "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
+ "printable_height": "600",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0",
+ "change_filament_gcode": "PAUSE",
+ "deretraction_speed": [
+ "0"
+ ],
+ "extruder_clearance_height_to_lid": "350",
+ "extruder_clearance_height_to_rod": "60",
+ "extruder_clearance_radius": "50",
+ "machine_max_acceleration_e": [
+ "20000",
+ "5000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "15000",
+ "5000"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "200"
+ ],
+ "machine_max_jerk_e": [
+ "1",
+ "2.5"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "9"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "9"
+ ],
+ "machine_max_speed_e": [
+ "50",
+ "25"
+ ],
+ "machine_max_speed_x": [
+ "730",
+ "200"
+ ],
+ "machine_max_speed_y": [
+ "730",
+ "200"
+ ],
+ "machine_max_speed_z": [
+ "15",
+ "12"
+ ],
+ "machine_start_gcode": "G90 ; 绝对坐标模式\nM83 ; 挤出机相对模式\nM140 S[first_layer_bed_temperature] ; 设置热床温度\nM104 S140 ; 临时喷嘴温度=切片首层设定(防止归零渗料)\nG4 S10 ; 预热等待10秒\nG28 ; 归零所有轴\nG1 Z50 F240 ; Z轴抬升\nG1 X2 Y10 F3000 ; 移动至起始位置\nM104 S[nozzle_temperature_initial_layer] ; 正式设置喷嘴温度(与切片设置一致)\nM190 S[bed_temperature_initial_layer_single] ; 等待热床温度稳定\nM109 S[nozzle_temperature_initial_layer] ; 等待喷嘴温度稳定\nG1 Z0.28 F240 ; 喷嘴下降至打印高度\nG92 E0 ; 挤出机归零\nG1 Y140 E10 F1500 ; 画第一条 priming 线\nG1 X2.3 F5000 ; X轴微调\nG92 E0 ; 挤出机归零\nG1 Y10 E10 F1200 ; 画第二条 priming 线\nG92 E0 ; 最终挤出机归零",
+
+ "retract_before_wipe": [
+ "100%"
+ ],
+ "retract_length_toolchange": [
+ "10"
+ ],
+ "retraction_length": [
+ "0.5"
+ ],
+ "retraction_minimum_travel": [
+ "2"
+ ],
+ "retraction_speed": [
+ "50"
+ ],
+ "thumbnails": "300x300/PNG",
+ "z_hop": [
+ "0"
+ ],
+ "machine_max_acceleration_travel": [
+ "10000",
+ "10000"
+ ],
+ "max_layer_height": [
+ "0.4"
+ ],
+ "min_layer_height": [
+ "0.12"
+ ],
+ "upward_compatible_machine": []
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/machine/Goofoo Velo+ Tool 0.4.json b/resources/profiles/Goofoo/machine/Goofoo Velo+ Tool 0.4.json
new file mode 100644
index 0000000000..37872c1e11
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/Goofoo Velo+ Tool 0.4.json
@@ -0,0 +1,152 @@
+{
+ "type": "machine",
+ "name": "Goofoo Velo+ Tool 0.4",
+ "inherits": "Goofoo Velo+ 0.4 nozzle",
+ "from": "system",
+ "setting_id": "ww39WeaF5nYks1em",
+ "instantiation": "true",
+ "nozzle_diameter": [
+ "0.4",
+ "0.4"
+ ],
+ "printer_model": "Goofoo Velo+ Tool",
+ "change_filament_gcode": "T[next_extruder]\n;M104 S[nozzle_temperature_initial_layer] T[next_extruder]; 正式设置喷嘴温度(与切片设置一致)\n;M109 S[nozzle_temperature_initial_layer] T[next_extruder] ; 等待喷嘴温度稳定\n",
+ "default_nozzle_volume_type": [
+ "Standard",
+ "Standard"
+ ],
+ "deretraction_speed": [
+ "0",
+ "0"
+ ],
+ "extruder_colour": [
+ "#FCE94F",
+ "#FCE94F"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ],
+ "extruder_printable_height": [
+ "0",
+ "0"
+ ],
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive Standard",
+ "Direct Drive Standard"
+ ],
+ "long_retractions_when_cut": [
+ "0",
+ "0"
+ ],
+ "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nT0\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
+ "machine_start_gcode": "G90 ; 绝对坐标模式\nM83 ; 挤出机相对模式\nM140 S[first_layer_bed_temperature] ; 设置热床温度\nM104 S140 T0 ; 临时喷嘴温度=切片首层设定(防止归零渗料)\nM104 S140 T1\nG4 S10 ; 预热等待10秒\nG28 ; 归零所有轴\nG1 Z50 F240 ; Z轴抬升\nG1 X2 Y10 F3000 ; 移动至起始位置\nM104 S[nozzle_temperature_initial_layer] T0 ; 正式设置喷嘴温度(与切片设置一致)\nM104 S[nozzle_temperature_initial_layer] T1 ; 正式设置喷嘴温度(与切片设置一致)\nM190 S[bed_temperature_initial_layer_single] T0; 等待热床温度稳定\nM109 S[nozzle_temperature_initial_layer] T0 ; 等待喷嘴温度稳定\nG1 Z0.28 F240 ; 喷嘴下降至打印高度\nG92 E0 ; 挤出机归零\nG1 Y140 E10 F1500 ; 画第一条 priming 线\nG1 X2.3 F5000 ; X轴微调\nG92 E0 ; 挤出机归零\nG1 Y10 E10 F1200 ; 画第二条 priming 线\nG92 E0 ; 最终挤出机归零\nG1 Z20 F240 ; Z轴抬升\nG1 X280 Y10 F3000 ; 移动至起始位置\nT1\nM104 S[nozzle_temperature_initial_layer] T1 ; 正式设置喷嘴温度(与切片设置一致)\nM190 S[bed_temperature_initial_layer_single] T1; 等待热床温度稳定\nM109 S[nozzle_temperature_initial_layer] T1; 等待喷嘴温度稳定\nG4 S10 ; 预热等待10秒\nG1 Z0.28 F240 ; 喷嘴下降至打印高度\nG92 E0 ; 挤出机归零\nG1 Y140 E10 F1500 ; 画第一条 priming 线\nG1 X282.3 F5000 ; X轴微调\nG92 E0 ; 挤出机归零\nG1 Y10 E10 F1200 ; 画第二条 priming 线\nG92 E0 ; 最终挤出机归零",
+ "max_layer_height": [
+ "0.32",
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.08",
+ "0.08"
+ ],
+ "nozzle_flush_dataset": [
+ "nil",
+ "0"
+ ],
+ "nozzle_type": [
+ "nil",
+ "hardened_steel"
+ ],
+ "nozzle_volume": [
+ "nil",
+ "0"
+ ],
+ "printable_area": [
+ "0x0",
+ "300x0",
+ "300x300",
+ "0x300"
+ ],
+ "printer_extruder_id": [
+ "1",
+ "2"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive Standard",
+ "Direct Drive Standard"
+ ],
+ "purge_in_prime_tower": "0",
+ "retract_before_wipe": [
+ "100%",
+ "100%"
+ ],
+ "retract_length_toolchange": [
+ "10",
+ "10"
+ ],
+ "retract_lift_above": [
+ "0",
+ "0"
+ ],
+ "retract_lift_below": [
+ "0",
+ "0"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces",
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0",
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0",
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1",
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18",
+ "18"
+ ],
+ "retraction_length": [
+ "0.5",
+ "0.5"
+ ],
+ "retraction_minimum_travel": [
+ "2",
+ "2"
+ ],
+ "retraction_speed": [
+ "50",
+ "50"
+ ],
+ "single_extruder_multi_material": "0",
+ "travel_slope": [
+ "3",
+ "3"
+ ],
+ "wipe": [
+ "1",
+ "1"
+ ],
+ "wipe_distance": [
+ "1",
+ "1"
+ ],
+ "z_hop": [
+ "0",
+ "0"
+ ],
+ "z_hop_types": [
+ "Slope Lift",
+ "Slope Lift"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/machine/Goofoo Velo+ Tool.json b/resources/profiles/Goofoo/machine/Goofoo Velo+ Tool.json
new file mode 100644
index 0000000000..004352b3b3
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/Goofoo Velo+ Tool.json
@@ -0,0 +1,11 @@
+{
+ "type": "machine_model",
+ "name": "Goofoo Velo+ Tool",
+ "nozzle_diameter": "0.4",
+ "bed_model": "Goofoo-Velo+.stl",
+ "bed_texture": "Goofoo-Velo+-texture.svg",
+ "family": "Goofoo",
+ "machine_tech": "FFF",
+ "model_id": "V006",
+ "default_materials": "Goofoo ABS @System"
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/machine/Goofoo Velo+.json b/resources/profiles/Goofoo/machine/Goofoo Velo+.json
new file mode 100644
index 0000000000..3f60e1738f
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/Goofoo Velo+.json
@@ -0,0 +1,11 @@
+{
+ "type": "machine_model",
+ "name": "Goofoo Velo+",
+ "nozzle_diameter": "0.2;0.4;0.6",
+ "bed_model": "Goofoo-Velo+.stl",
+ "bed_texture": "Goofoo-Velo+-texture.svg",
+ "family": "Goofoo",
+ "machine_tech": "FFF",
+ "model_id": "V001",
+ "default_materials": "Goofoo ABS @System"
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/machine/fdm_klipper_common.json b/resources/profiles/Goofoo/machine/fdm_klipper_common.json
new file mode 100644
index 0000000000..ece1ca5052
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/fdm_klipper_common.json
@@ -0,0 +1,13 @@
+{
+ "type": "machine",
+ "name": "fdm_klipper_common",
+ "inherits": "fdm_machine_common",
+ "from": "system",
+ "instantiation": "false",
+ "gcode_flavor": "klipper",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\n\n",
+ "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nM140 S{first_layer_bed_temperature[0]} ; set bed temp\nM104 S140 ; set temporary nozzle temp to prevent oozing\nG4 S10 ; wait 10s for preheating\nG28 ; home all axes\nG1 Z50 F240 ; raise Z axis\nG1 X2 Y10 F3000 ; move to start position\nM104 S{first_layer_temperature[0]} ; set final nozzle temp\nM190 S{first_layer_bed_temperature[0]} ; wait for bed temp\nM109 S{first_layer_temperature[0]} ; wait for nozzle temp\nG1 Z0.28 F240 ; lower nozzle to print height\nG92 E0 ; reset extrusion distance\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000 ; slight X adjustment\nG92 E0 ; reset extrusion distance\nG1 Y10 E10 F1200 ; prime again\nG92 E0 ; final extrusion reset",
+ "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors",
+ "change_filament_gcode": "PAUSE",
+ "machine_pause_gcode": "PAUSE"
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/machine/fdm_machine_common.json b/resources/profiles/Goofoo/machine/fdm_machine_common.json
new file mode 100644
index 0000000000..bf8f2249cf
--- /dev/null
+++ b/resources/profiles/Goofoo/machine/fdm_machine_common.json
@@ -0,0 +1,118 @@
+{
+ "type": "machine",
+ "name": "fdm_machine_common",
+ "from": "system",
+ "instantiation": "false",
+ "printer_technology": "FFF",
+ "deretraction_speed": [
+ "40"
+ ],
+ "extruder_colour": [
+ "#FCE94F"
+ ],
+ "extruder_offset": [
+ "0x0"
+ ],
+ "gcode_flavor": "marlin",
+ "machine_max_acceleration_e": [
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "10000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "1000"
+ ],
+ "machine_max_acceleration_x": [
+ "10000"
+ ],
+ "machine_max_acceleration_y": [
+ "10000"
+ ],
+ "machine_max_acceleration_z": [
+ "500"
+ ],
+ "machine_max_speed_e": [
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "500"
+ ],
+ "machine_max_speed_y": [
+ "500"
+ ],
+ "machine_max_speed_z": [
+ "10"
+ ],
+ "machine_max_jerk_e": [
+ "5"
+ ],
+ "machine_max_jerk_x": [
+ "8"
+ ],
+ "machine_max_jerk_y": [
+ "8"
+ ],
+ "machine_max_jerk_z": [
+ "0.4"
+ ],
+ "machine_min_extruding_rate": [
+ "0"
+ ],
+ "machine_min_travel_rate": [
+ "0"
+ ],
+ "max_layer_height": [
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.08"
+ ],
+ "printable_height": "250",
+ "extruder_clearance_radius": "65",
+ "extruder_clearance_height_to_rod": "36",
+ "extruder_clearance_height_to_lid": "140",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "printer_settings_id": "",
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": [
+ "2"
+ ],
+ "retract_before_wipe": [
+ "70%"
+ ],
+ "retract_when_changing_layer": [
+ "1"
+ ],
+ "retraction_length": [
+ "1"
+ ],
+ "retract_length_toolchange": [
+ "1"
+ ],
+ "z_hop": [
+ "0"
+ ],
+ "retract_restart_extra": [
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0"
+ ],
+ "retraction_speed": [
+ "60"
+ ],
+ "single_extruder_multi_material": "1",
+ "change_filament_gcode": "",
+ "wipe": [
+ "1"
+ ],
+ "default_print_profile": "",
+ "machine_start_gcode": "G0 Z20 F9000\nG92 E0; G1 E-10 F1200\nG28\nM970 Q1 A10 B10 C130 K0\nM970 Q1 A10 B131 C250 K1\nM974 Q1 S1 P0\nM970 Q0 A10 B10 C130 H20 K0\nM970 Q0 A10 B131 C250 K1\nM974 Q0 S1 P0\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nG29 ;Home\nG90;\nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM109 S205;\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder \nG1 X110 Y110 Z2.0 F3000 ;Move Z Axis up",
+ "machine_end_gcode": "M400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-4.0 F3600; retract \nG91\nG1 Z3;\nM104 S0 ; turn off hotend\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nG90 \nG0 X110 Y200 F3600 \nprint_end",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
+ "machine_pause_gcode": "M601"
+}
diff --git a/resources/profiles/Goofoo/process/0.10mm Standard @Goofoo Velo+.json b/resources/profiles/Goofoo/process/0.10mm Standard @Goofoo Velo+.json
new file mode 100644
index 0000000000..edd118bd26
--- /dev/null
+++ b/resources/profiles/Goofoo/process/0.10mm Standard @Goofoo Velo+.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.10mm Standard @Goofoo Velo+",
+ "inherits": "0.20mm Standard @Goofoo Velo+",
+ "from": "system",
+ "setting_id": "dJV4bTrLbOPzW2YB",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Goofoo Velo+ 0.2 nozzle"
+ ],
+ "layer_height": "0.1",
+ "initial_layer_print_height": "0.1",
+ "bottom_shell_layers": "6",
+ "top_shell_layers": "12",
+ "wall_loops": "4",
+ "line_width": "0.22",
+ "initial_layer_line_width": "0.25",
+ "inner_wall_line_width": "0.22",
+ "outer_wall_line_width": "0.22",
+ "sparse_infill_line_width": "0.22",
+ "internal_solid_infill_line_width": "0.22",
+ "top_surface_line_width": "0.22",
+ "support_line_width": "0.22",
+ "support_top_z_distance": "0.1",
+ "support_bottom_z_distance": "0.1"
+}
diff --git a/resources/profiles/Goofoo/process/0.20mm Standard @Goofoo GP1.json b/resources/profiles/Goofoo/process/0.20mm Standard @Goofoo GP1.json
new file mode 100644
index 0000000000..5ee5aae3c6
--- /dev/null
+++ b/resources/profiles/Goofoo/process/0.20mm Standard @Goofoo GP1.json
@@ -0,0 +1,35 @@
+{
+ "type": "process",
+ "name": "0.20mm Standard @Goofoo GP1",
+ "inherits": "fdm_process_klipper_common",
+ "from": "system",
+ "setting_id": "zrscQBUxp6L7BlQ9",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Goofoo GP1 0.4 nozzle"
+ ],
+ "layer_height": "0.2",
+ "accel_to_decel_enable": "0",
+ "bridge_acceleration": "100%",
+ "bridge_speed": "100",
+ "brim_type": "no_brim",
+ "gap_infill_speed": "250",
+ "initial_layer_acceleration": "1000",
+ "initial_layer_infill_speed": "100",
+ "initial_layer_speed": "70",
+ "inner_wall_speed": "250",
+ "internal_bridge_speed": "200%",
+ "internal_solid_infill_speed": "250",
+ "outer_wall_acceleration": "5000",
+ "outer_wall_speed": "100",
+ "overhang_4_4_speed": "0",
+ "reduce_crossing_wall": "1",
+ "skirt_distance": "6",
+ "skirt_height": "1",
+ "skirt_loops": "1",
+ "sparse_infill_pattern": "grid",
+ "sparse_infill_speed": "250",
+ "top_surface_acceleration": "5000",
+ "top_surface_speed": "200",
+ "travel_acceleration": "5000"
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/process/0.20mm Standard @Goofoo TurboM.json b/resources/profiles/Goofoo/process/0.20mm Standard @Goofoo TurboM.json
new file mode 100644
index 0000000000..74812f5de4
--- /dev/null
+++ b/resources/profiles/Goofoo/process/0.20mm Standard @Goofoo TurboM.json
@@ -0,0 +1,67 @@
+{
+ "type": "process",
+ "name": "0.20mm Standard @Goofoo TurboM",
+ "inherits": "fdm_process_klipper_common",
+ "from": "system",
+ "setting_id": "LVXxUtAcYGCY6irA",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Goofoo TurboM 0.4 nozzle"
+ ],
+ "layer_height": "0.2",
+ "bridge_acceleration": "2000",
+ "bridge_speed": "60",
+ "brim_type": "no_brim",
+ "default_acceleration": "10000",
+ "enable_support": "1",
+ "exclude_object": "0",
+ "gap_infill_speed": "200",
+ "infill_anchor": "600%",
+ "infill_combination": "1",
+ "infill_wall_overlap": "15%",
+ "initial_layer_acceleration": "1000",
+ "initial_layer_line_width": "0.45",
+ "initial_layer_speed": "60",
+ "inner_wall_acceleration": "3000",
+ "inner_wall_line_width": "0.42",
+ "inner_wall_speed": "150",
+ "internal_solid_infill_acceleration": "3000",
+ "internal_solid_infill_line_width": "0.42",
+ "internal_solid_infill_speed": "150",
+ "line_width": "0.42",
+ "min_skirt_length": "0",
+ "minimum_sparse_infill_area": "70",
+ "only_one_wall_top": "1",
+ "outer_wall_acceleration": "2500",
+ "outer_wall_line_width": "0.42",
+ "outer_wall_speed": "100",
+ "reduce_crossing_wall": "1",
+ "skirt_distance": "6",
+ "skirt_height": "1",
+ "skirt_loops": "4",
+ "small_perimeter_speed": "200",
+ "sparse_infill_acceleration": "3000",
+ "sparse_infill_line_width": "0.42",
+ "sparse_infill_pattern": "grid",
+ "sparse_infill_speed": "150",
+ "support_base_pattern": "rectilinear",
+ "support_interface_bottom_layers": "-1",
+ "support_interface_pattern": "rectilinear",
+ "support_interface_spacing": "0",
+ "support_interface_speed": "100",
+ "support_interface_top_layers": "3",
+ "support_line_width": "0.35",
+ "support_object_xy_distance": "0.21",
+ "support_speed": "100",
+ "thick_bridges": "1",
+ "top_shell_layers": "6",
+ "top_shell_thickness": "0",
+ "top_surface_acceleration": "2500",
+ "top_surface_line_width": "0.42",
+ "top_surface_speed": "150",
+ "travel_acceleration": "10000",
+ "travel_speed": "200",
+ "wall_generator": "classic",
+ "wall_loops": "2",
+ "wall_sequence": "outer wall/inner wall"
+}
\ No newline at end of file
diff --git a/resources/profiles/Goofoo/process/0.20mm Standard @Goofoo Velo+.json b/resources/profiles/Goofoo/process/0.20mm Standard @Goofoo Velo+.json
new file mode 100644
index 0000000000..68bb4470c6
--- /dev/null
+++ b/resources/profiles/Goofoo/process/0.20mm Standard @Goofoo Velo+.json
@@ -0,0 +1,70 @@
+{
+ "type": "process",
+ "name": "0.20mm Standard @Goofoo Velo+",
+ "inherits": "fdm_process_klipper_common",
+ "from": "system",
+ "setting_id": "iWjynhCcvbF8MWev",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Goofoo Velo+ 0.4 nozzle",
+ "Goofoo Velo+ Tool 0.4"
+ ],
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.2",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "6",
+ "bridge_acceleration": "2000",
+ "bridge_speed": "60",
+ "brim_type": "no_brim",
+ "default_acceleration": "10000",
+ "enable_support": "1",
+ "exclude_object": "0",
+ "gap_infill_speed": "200",
+ "infill_anchor": "600%",
+ "infill_combination": "1",
+ "infill_wall_overlap": "15%",
+ "initial_layer_acceleration": "1000",
+ "initial_layer_line_width": "0.45",
+ "initial_layer_speed": "60",
+ "inner_wall_acceleration": "3000",
+ "inner_wall_line_width": "0.42",
+ "inner_wall_speed": "150",
+ "internal_solid_infill_acceleration": "3000",
+ "internal_solid_infill_line_width": "0.42",
+ "internal_solid_infill_speed": "150",
+ "line_width": "0.42",
+ "min_skirt_length": "0",
+ "minimum_sparse_infill_area": "70",
+ "only_one_wall_top": "1",
+ "outer_wall_acceleration": "2500",
+ "outer_wall_line_width": "0.42",
+ "outer_wall_speed": "100",
+ "reduce_crossing_wall": "1",
+ "skirt_distance": "6",
+ "skirt_height": "1",
+ "skirt_loops": "4",
+ "small_perimeter_speed": "200",
+ "sparse_infill_acceleration": "3000",
+ "sparse_infill_line_width": "0.42",
+ "sparse_infill_pattern": "grid",
+ "sparse_infill_speed": "150",
+ "support_base_pattern": "rectilinear",
+ "support_interface_bottom_layers": "-1",
+ "support_interface_pattern": "rectilinear",
+ "support_interface_spacing": "0",
+ "support_interface_speed": "100",
+ "support_interface_top_layers": "3",
+ "support_line_width": "0.35",
+ "support_object_xy_distance": "0.21",
+ "support_speed": "100",
+ "thick_bridges": "1",
+ "top_shell_thickness": "0",
+ "top_surface_acceleration": "2500",
+ "top_surface_line_width": "0.42",
+ "top_surface_speed": "150",
+ "travel_acceleration": "10000",
+ "travel_speed": "300",
+ "wall_generator": "classic",
+ "wall_loops": "2",
+ "wall_sequence": "outer wall/inner wall"
+}
diff --git a/resources/profiles/Goofoo/process/0.30mm Standard @Goofoo Velo+.json b/resources/profiles/Goofoo/process/0.30mm Standard @Goofoo Velo+.json
new file mode 100644
index 0000000000..d25f90484b
--- /dev/null
+++ b/resources/profiles/Goofoo/process/0.30mm Standard @Goofoo Velo+.json
@@ -0,0 +1,13 @@
+{
+ "type": "process",
+ "name": "0.30mm Standard @Goofoo Velo+",
+ "inherits": "fdm_process_klipper_common",
+ "from": "system",
+ "setting_id": "mi8ogYOYpqb2x60z",
+ "instantiation": "true",
+ "compatible_printers": [
+ "Goofoo Velo+ 0.6 nozzle"
+ ],
+ "initial_layer_print_height": "0.3",
+ "layer_height": "0.3"
+}
diff --git a/resources/profiles/Goofoo/process/fdm_process_common.json b/resources/profiles/Goofoo/process/fdm_process_common.json
new file mode 100644
index 0000000000..b95f1c3487
--- /dev/null
+++ b/resources/profiles/Goofoo/process/fdm_process_common.json
@@ -0,0 +1,91 @@
+{
+ "type": "process",
+ "name": "fdm_process_common",
+ "from": "system",
+ "instantiation": "false",
+ "seam_position": "aligned",
+ "resolution": "0.012",
+ "elefant_foot_compensation": "0.2",
+ "precise_outer_wall": "1",
+ "ironing_type": "no ironing",
+ "ironing_speed": "30",
+ "ironing_flow": "10%",
+ "ironing_spacing": "0.15",
+ "reduce_crossing_wall": "1",
+ "max_travel_detour_distance": "0",
+ "detect_overhang_wall": "1",
+ "wall_loops": "3",
+ "top_surface_pattern": "monotonicline",
+ "top_shell_layers": "5",
+ "top_shell_thickness": "0.7",
+ "bottom_surface_pattern": "monotonic",
+ "bottom_shell_layers": "4",
+ "bottom_shell_thickness": "0.5",
+ "sparse_infill_density": "15%",
+ "sparse_infill_pattern": "crosshatch",
+ "infill_wall_overlap": "23%",
+ "infill_direction": "45",
+ "minimum_sparse_infill_area": "15",
+ "infill_combination": "0",
+ "ensure_vertical_shell_thickness": "1",
+ "initial_layer_speed": "50",
+ "initial_layer_infill_speed": "50",
+ "initial_layer_travel_speed": "100%",
+ "outer_wall_speed": "125",
+ "inner_wall_speed": "250",
+ "sparse_infill_speed": "250",
+ "internal_solid_infill_speed": "200",
+ "top_surface_speed": "150",
+ "gap_infill_speed": "150",
+ "support_speed": "125",
+ "support_interface_speed": "80",
+ "enable_overhang_speed": "1",
+ "overhang_1_4_speed": "0",
+ "overhang_2_4_speed": "50",
+ "overhang_3_4_speed": "25",
+ "overhang_4_4_speed": "15",
+ "bridge_speed": "50",
+ "travel_speed": "300",
+ "default_acceleration": "2500",
+ "outer_wall_acceleration": "500",
+ "inner_wall_acceleration": "500",
+ "bridge_acceleration": "500",
+ "travel_acceleration": "2500",
+ "default_jerk": "15",
+ "outer_wall_jerk": "10",
+ "inner_wall_jerk": "15",
+ "infill_jerk": "15",
+ "top_surface_jerk": "12",
+ "initial_layer_jerk": "12",
+ "travel_jerk": "20",
+ "enable_support": "0",
+ "support_type": "normal(auto)",
+ "support_threshold_angle": "30",
+ "support_on_build_plate_only": "0",
+ "raft_layers": "0",
+ "support_filament": "0",
+ "support_interface_filament": "0",
+ "support_top_z_distance": "0.2",
+ "support_base_pattern": "default",
+ "support_base_pattern_spacing": "2.5",
+ "support_interface_top_layers": "2",
+ "support_interface_bottom_layers": "2",
+ "support_interface_spacing": "0.5",
+ "support_object_xy_distance": "0.5",
+ "bridge_no_support": "0",
+ "independent_support_layer_height": "1",
+ "tree_support_branch_angle": "30",
+ "tree_support_wall_count": "0",
+ "skirt_loops": "2",
+ "skirt_distance": "3",
+ "skirt_height": "1",
+ "brim_width": "5",
+ "brim_object_gap": "0.1",
+ "enable_prime_tower": "0",
+ "prime_tower_width": "60",
+ "wipe_tower_no_sparse_layers": "0",
+ "print_sequence": "by layer",
+ "spiral_mode": "0",
+ "reduce_infill_retraction": "1",
+ "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[0]}_{printer_model}.gcode"
+}
diff --git a/resources/profiles/Goofoo/process/fdm_process_klipper_common.json b/resources/profiles/Goofoo/process/fdm_process_klipper_common.json
new file mode 100644
index 0000000000..2977d9392a
--- /dev/null
+++ b/resources/profiles/Goofoo/process/fdm_process_klipper_common.json
@@ -0,0 +1,23 @@
+{
+ "type": "process",
+ "name": "fdm_process_klipper_common",
+ "inherits": "fdm_process_common",
+ "from": "system",
+ "instantiation": "false",
+ "default_acceleration": "5000",
+ "top_surface_acceleration": "3000",
+ "travel_acceleration": "7000",
+ "inner_wall_acceleration": "5000",
+ "outer_wall_acceleration": "3000",
+ "initial_layer_acceleration": "500",
+ "initial_layer_speed": "50",
+ "initial_layer_infill_speed": "105",
+ "outer_wall_speed": "120",
+ "inner_wall_speed": "200",
+ "internal_solid_infill_speed": "200",
+ "top_surface_speed": "100",
+ "gap_infill_speed": "100",
+ "sparse_infill_speed": "200",
+ "travel_speed": "350",
+ "exclude_object": "1"
+}
diff --git a/resources/profiles/IdeaFormer.json b/resources/profiles/IdeaFormer.json
new file mode 100644
index 0000000000..ebed0bc9e0
--- /dev/null
+++ b/resources/profiles/IdeaFormer.json
@@ -0,0 +1,54 @@
+{
+ "name": "IdeaFormer",
+ "version": "02.00.00.06",
+ "force_update": "0",
+ "description": "IdeaFormer belt printer configurations",
+ "machine_model_list": [
+ {
+ "name": "IdeaFormer IR3 V2",
+ "sub_path": "machine/IdeaFormer IR3 V2.json"
+ }
+ ],
+ "process_list": [
+ {
+ "name": "fdm_process_common",
+ "sub_path": "process/fdm_process_common.json"
+ },
+ {
+ "name": "0.20mm Standard @IdeaFormer IR3 V2",
+ "sub_path": "process/0.20mm Standard @IdeaFormer IR3 V2.json"
+ }
+ ],
+ "filament_list": [
+ {
+ "name": "Generic PLA @IdeaFormer IR3 V2",
+ "sub_path": "filament/Generic PLA @IdeaFormer IR3 V2.json"
+ },
+ {
+ "name": "eSUN PLA @IdeaFormer IR3 V2",
+ "sub_path": "filament/eSUN PLA @IdeaFormer IR3 V2.json"
+ },
+ {
+ "name": "Generic PETG @IdeaFormer IR3 V2",
+ "sub_path": "filament/Generic PETG @IdeaFormer IR3 V2.json"
+ }
+ ],
+ "machine_list": [
+ {
+ "name": "fdm_machine_common",
+ "sub_path": "machine/fdm_machine_common.json"
+ },
+ {
+ "name": "fdm_klipper_common",
+ "sub_path": "machine/fdm_klipper_common.json"
+ },
+ {
+ "name": "fdm_belt_common",
+ "sub_path": "machine/fdm_belt_common.json"
+ },
+ {
+ "name": "IdeaFormer IR3 V2 0.4 nozzle",
+ "sub_path": "machine/IdeaFormer IR3 V2 0.4 nozzle.json"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/IdeaFormer/IdeaFormer IR3 V2_cover.png b/resources/profiles/IdeaFormer/IdeaFormer IR3 V2_cover.png
new file mode 100644
index 0000000000..71485f54f5
Binary files /dev/null and b/resources/profiles/IdeaFormer/IdeaFormer IR3 V2_cover.png differ
diff --git a/resources/profiles/IdeaFormer/filament/Generic PETG @IdeaFormer IR3 V2.json b/resources/profiles/IdeaFormer/filament/Generic PETG @IdeaFormer IR3 V2.json
new file mode 100644
index 0000000000..28da3959f4
--- /dev/null
+++ b/resources/profiles/IdeaFormer/filament/Generic PETG @IdeaFormer IR3 V2.json
@@ -0,0 +1,77 @@
+{
+ "type": "filament",
+ "name": "Generic PETG @IdeaFormer IR3 V2",
+ "inherits": "Generic PETG @System",
+ "from": "system",
+ "setting_id": "n4zaXcUUzTqAxq5f",
+ "instantiation": "true",
+ "filament_extruder_variant": [
+ "Direct Drive Standard"
+ ],
+ "compatible_printers": [
+ "IdeaFormer IR3 V2 0.4 nozzle"
+ ],
+ "filament_type": [
+ "PETG"
+ ],
+ "filament_vendor": [
+ "Generic"
+ ],
+ "filament_settings_id": [
+ "Generic PETG @IdeaFormer IR3 V2"
+ ],
+ "filament_flow_ratio": [
+ "0.95"
+ ],
+ "filament_cost": [
+ "25"
+ ],
+ "nozzle_temperature": [
+ "240"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "245"
+ ],
+ "cool_plate_temp": [
+ "80"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "80"
+ ],
+ "fan_min_speed": [
+ "40"
+ ],
+ "fan_max_speed": [
+ "60"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "overhang_fan_speed": [
+ "80"
+ ],
+ "full_fan_speed_layer": [
+ "8"
+ ],
+ "slow_down_min_speed": [
+ "20"
+ ],
+ "slow_down_layer_time": [
+ "4"
+ ],
+ "fan_cooling_layer_time": [
+ "100"
+ ],
+ "filament_retraction_length": [
+ "2"
+ ],
+ "filament_retraction_speed": [
+ "40"
+ ],
+ "filament_deretraction_speed": [
+ "40"
+ ],
+ "filament_start_gcode": [
+ "; Generic PETG @IdeaFormer IR3 V2 — belt PETG, bed 80C"
+ ]
+}
diff --git a/resources/profiles/IdeaFormer/filament/Generic PLA @IdeaFormer IR3 V2.json b/resources/profiles/IdeaFormer/filament/Generic PLA @IdeaFormer IR3 V2.json
new file mode 100644
index 0000000000..da5d4af50a
--- /dev/null
+++ b/resources/profiles/IdeaFormer/filament/Generic PLA @IdeaFormer IR3 V2.json
@@ -0,0 +1,65 @@
+{
+ "type": "filament",
+ "name": "Generic PLA @IdeaFormer IR3 V2",
+ "inherits": "Generic PLA @System",
+ "from": "system",
+ "setting_id": "1xjycsEAFh6KQIhp",
+ "instantiation": "true",
+ "filament_extruder_variant": [
+ "Direct Drive Standard"
+ ],
+ "compatible_printers": [
+ "IdeaFormer IR3 V2 0.4 nozzle"
+ ],
+ "filament_type": [
+ "PLA"
+ ],
+ "filament_vendor": [
+ "Generic"
+ ],
+ "filament_settings_id": [
+ "Generic PLA @IdeaFormer IR3 V2"
+ ],
+ "nozzle_temperature": [
+ "215"
+ ],
+ "hot_plate_temp": [
+ "75"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "75"
+ ],
+ "cool_plate_temp": [
+ "75"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "75"
+ ],
+ "textured_plate_temp": [
+ "75"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "75"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "full_fan_speed_layer": [
+ "8"
+ ],
+ "slow_down_min_speed": [
+ "20"
+ ],
+ "filament_retraction_length": [
+ "1.5"
+ ],
+ "filament_retraction_speed": [
+ "35"
+ ],
+ "filament_deretraction_speed": [
+ "30"
+ ],
+ "filament_start_gcode": [
+ "; Generic PLA @IdeaFormer IR3 V2 — belt PLA, bed 75C"
+ ]
+}
diff --git a/resources/profiles/IdeaFormer/filament/eSUN PLA @IdeaFormer IR3 V2.json b/resources/profiles/IdeaFormer/filament/eSUN PLA @IdeaFormer IR3 V2.json
new file mode 100644
index 0000000000..b39a4c22fc
--- /dev/null
+++ b/resources/profiles/IdeaFormer/filament/eSUN PLA @IdeaFormer IR3 V2.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "name": "eSUN PLA @IdeaFormer IR3 V2",
+ "inherits": "Generic PLA @IdeaFormer IR3 V2",
+ "from": "system",
+ "setting_id": "XqkviBmFHEglXueX",
+ "filament_id": "OFkrxQC4",
+ "instantiation": "true",
+ "compatible_printers": [
+ "IdeaFormer IR3 V2 0.4 nozzle"
+ ],
+ "filament_type": [
+ "PLA"
+ ],
+ "filament_vendor": [
+ "eSUN"
+ ],
+ "filament_settings_id": [
+ "eSUN PLA @IdeaFormer IR3 V2"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "200"
+ ],
+ "nozzle_temperature": [
+ "200"
+ ],
+ "enable_pressure_advance": [
+ "1"
+ ],
+ "pressure_advance": [
+ "0.12"
+ ],
+ "filament_max_volumetric_speed": [
+ "20"
+ ]
+}
diff --git a/resources/profiles/IdeaFormer/machine/IdeaFormer IR3 V2 0.4 nozzle.json b/resources/profiles/IdeaFormer/machine/IdeaFormer IR3 V2 0.4 nozzle.json
new file mode 100644
index 0000000000..f993631921
--- /dev/null
+++ b/resources/profiles/IdeaFormer/machine/IdeaFormer IR3 V2 0.4 nozzle.json
@@ -0,0 +1,98 @@
+{
+ "type": "machine",
+ "name": "IdeaFormer IR3 V2 0.4 nozzle",
+ "inherits": "fdm_belt_common",
+ "from": "system",
+ "setting_id": "MDQZgwRgg72lmjtu",
+ "instantiation": "true",
+ "printer_model": "IdeaFormer IR3 V2",
+ "printer_variant": "0.4",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "printable_area": [
+ "0x0",
+ "250x0",
+ "250x2000",
+ "0x2000"
+ ],
+ "printable_height": "250",
+ "belt_printer_infinite_y": "1",
+ "thumbnails": [
+ "48x48/PNG",
+ "300x300/PNG"
+ ],
+ "default_filament_profile": [
+ "Generic PLA @IdeaFormer IR3 V2"
+ ],
+ "default_print_profile": "0.20mm Standard @IdeaFormer IR3 V2",
+ "use_relative_e_distances": "1",
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "1000",
+ "1000"
+ ],
+ "machine_max_acceleration_travel": [
+ "9000",
+ "9000"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "100"
+ ],
+ "machine_max_jerk_x": [
+ "10",
+ "10"
+ ],
+ "machine_max_jerk_y": [
+ "10",
+ "10"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.4"
+ ],
+ "machine_max_speed_e": [
+ "60",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "500",
+ "500"
+ ],
+ "machine_max_speed_y": [
+ "500",
+ "500"
+ ],
+ "machine_max_speed_z": [
+ "20",
+ "20"
+ ],
+ "retraction_length": [
+ "2"
+ ],
+ "retraction_speed": [
+ "40"
+ ],
+ "deretraction_speed": [
+ "40"
+ ],
+ "retract_lift_below": [
+ "300"
+ ],
+ "machine_start_gcode": "; === IdeaFormer IR3 V2 Belt Printer Start ===\n; Axes: X=lateral, Y=gantry height (probe), Z=belt\nG90 ; absolute positioning\nM82 ; absolute extruder\nG21 ; millimeters\nG28 ; home all axes\nG1 Y20 F500 ; lift nozzle 20mm from belt\n; Bed + hotend temps come from the active filament profile. Belt PLA requires 75 C bed — use Generic/eSun PLA @IdeaFormer IR3 V2 filament presets to get it automatically.\nM140 S[hot_plate_temp_initial_layer] ; set bed temp\nM104 S[nozzle_temperature_initial_layer] ; hotend temp\nM109 S[nozzle_temperature_initial_layer] ; wait hotend\nM190 S[hot_plate_temp_initial_layer] ; wait bed\n; --- Purge blob ---\nG92 E0 ; zero extruder\nG1 Y.1 ; nozzle 0.1mm above belt\nG1 E15 F1000 ; purge 15mm blob\nG1 Z20 E25 F800 ; belt advance 20mm + extrude\nG1 E23 ; retract 2mm\nG28 Y ; re-probe belt surface\nG1 E25 ; de-retract\n; --- Prime lines (full 250mm bed width) ---\nFMS_on ; filament motion sensor\nG1 X250 E50 F2000 ; prime line 1\nG92 Z0 ; reset belt origin\nG1 Z.4 ; belt advance 0.4mm\nG1 X0 E75 ; prime line 2\nG1 F1000 ; default feedrate\nG92 E0 Z0 ; zero extruder + belt = print origin\n",
+ "machine_end_gcode": "; === IdeaFormer IR3 V2 Belt Printer End ===\nM400 ; wait for moves to finish\nM104 S0 ; heater off\nM140 S0 ; bed off\nG92 E0 ; zero extruder\nG1 E-5 F300 ; retract 5mm\nG4 P5000 ; wait for ooze\nG91 ; relative mode - keep every end move relative on a belt\nG1 Y20 F1000 ; raise gantry 20mm for clearance over the part\nG1 Z676 F3000 ; advance belt one full machine-depth to eject the part and clean the belt\nG90 ; back to absolute\nG28 X ; home X only - NEVER 'G28' all: that homes Z/belt and reverses the whole print back into the gantry\nFMS_off ; filament motion sensor off\nBED_MESH_CLEAR\nM84 ; disable motors\n",
+ "machine_pause_gcode": "PAUSE",
+ "layer_change_gcode": "G92 E0 ; belt: reset extruder at layer change (relative E)"
+}
diff --git a/resources/profiles/IdeaFormer/machine/IdeaFormer IR3 V2.json b/resources/profiles/IdeaFormer/machine/IdeaFormer IR3 V2.json
new file mode 100644
index 0000000000..bc6d1a6e77
--- /dev/null
+++ b/resources/profiles/IdeaFormer/machine/IdeaFormer IR3 V2.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "IdeaFormer IR3 V2",
+ "model_id": "IdeaFormer_IR3_V2",
+ "nozzle_diameter": "0.4",
+ "machine_tech": "FFF",
+ "family": "IdeaFormer",
+ "bed_model": "",
+ "bed_texture": "",
+ "hotend_model": "",
+ "default_materials": "Generic PLA @IdeaFormer IR3 V2;Generic PETG @IdeaFormer IR3 V2"
+}
diff --git a/resources/profiles/IdeaFormer/machine/fdm_belt_common.json b/resources/profiles/IdeaFormer/machine/fdm_belt_common.json
new file mode 100644
index 0000000000..aacd36e118
--- /dev/null
+++ b/resources/profiles/IdeaFormer/machine/fdm_belt_common.json
@@ -0,0 +1,98 @@
+{
+ "type": "machine",
+ "name": "fdm_belt_common",
+ "inherits": "fdm_klipper_common",
+ "from": "system",
+ "instantiation": "false",
+ "gcode_flavor": "klipper",
+ "single_extruder_multi_material": "0",
+ "default_filament_profile": [
+ "Generic PLA @System"
+ ],
+ "default_print_profile": "0.20mm Standard @IdeaFormer IR3 V2",
+ "max_layer_height": [
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.08"
+ ],
+ "deretraction_speed": [
+ "30"
+ ],
+ "extruder_colour": [
+ "#FCE94F"
+ ],
+ "extruder_offset": [
+ "0x0"
+ ],
+ "long_retractions_when_cut": [
+ "0"
+ ],
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "retract_before_wipe": [
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2"
+ ],
+ "retract_lift_above": [
+ "0"
+ ],
+ "retract_lift_below": [
+ "0"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18"
+ ],
+ "retraction_length": [
+ "0.8"
+ ],
+ "retraction_minimum_travel": [
+ "1"
+ ],
+ "retraction_speed": [
+ "30"
+ ],
+ "travel_slope": [
+ "3"
+ ],
+ "wipe": [
+ "1"
+ ],
+ "wipe_distance": [
+ "1"
+ ],
+ "z_hop": [
+ "0"
+ ],
+ "z_hop_types": [
+ "Normal Lift"
+ ],
+ "gcode_remap_x": "rev_x",
+ "gcode_remap_y": "pos_z",
+ "gcode_remap_z": "pos_y",
+ "printer_extruder_id": [
+ "1"
+ ],
+ "belt_printer": "1",
+ "belt_slice_rotation": "x",
+ "belt_slice_rotation_angle": "45",
+ "build_plate_tilt_x": "45",
+ "purge_in_prime_tower": "0",
+ "scan_first_layer": "0",
+ "auxiliary_fan": "0"
+}
diff --git a/resources/profiles/IdeaFormer/machine/fdm_klipper_common.json b/resources/profiles/IdeaFormer/machine/fdm_klipper_common.json
new file mode 100644
index 0000000000..5297f646ff
--- /dev/null
+++ b/resources/profiles/IdeaFormer/machine/fdm_klipper_common.json
@@ -0,0 +1,140 @@
+{
+ "type": "machine",
+ "name": "fdm_klipper_common",
+ "inherits": "fdm_machine_common",
+ "from": "system",
+ "instantiation": "false",
+ "gcode_flavor": "klipper",
+ "machine_max_acceleration_e": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_x": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_y": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_z": [
+ "500",
+ "200"
+ ],
+ "machine_max_speed_e": [
+ "25",
+ "25"
+ ],
+ "machine_max_speed_x": [
+ "500",
+ "200"
+ ],
+ "machine_max_speed_y": [
+ "500",
+ "200"
+ ],
+ "machine_max_speed_z": [
+ "12",
+ "12"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "2.5"
+ ],
+ "machine_max_jerk_x": [
+ "9",
+ "9"
+ ],
+ "machine_max_jerk_y": [
+ "9",
+ "9"
+ ],
+ "machine_max_jerk_z": [
+ "0.2",
+ "0.4"
+ ],
+ "machine_min_extruding_rate": [
+ "0",
+ "0"
+ ],
+ "machine_min_travel_rate": [
+ "0",
+ "0"
+ ],
+ "max_layer_height": [
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.08"
+ ],
+ "printable_height": "250",
+ "extruder_clearance_radius": "65",
+ "extruder_clearance_height_to_rod": "36",
+ "extruder_clearance_height_to_lid": "140",
+ "printer_settings_id": "",
+ "printer_technology": "FFF",
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": [
+ "1"
+ ],
+ "retract_before_wipe": [
+ "70%"
+ ],
+ "retract_when_changing_layer": [
+ "1"
+ ],
+ "retraction_length": [
+ "0.8"
+ ],
+ "retract_length_toolchange": [
+ "2"
+ ],
+ "z_hop": [
+ "0.4"
+ ],
+ "retract_restart_extra": [
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0"
+ ],
+ "retraction_speed": [
+ "30"
+ ],
+ "deretraction_speed": [
+ "30"
+ ],
+ "z_hop_types": "Normal Lift",
+ "single_extruder_multi_material": "1",
+ "change_filament_gcode": "",
+ "wipe": [
+ "1"
+ ],
+ "default_filament_profile": [
+ "Generic PLA @System"
+ ],
+ "default_print_profile": "0.20mm Standard @MyKlipper",
+ "bed_exclude_area": [
+ "0x0"
+ ],
+ "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nPRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n",
+ "machine_end_gcode": "PRINT_END",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
+ "machine_pause_gcode": "PAUSE",
+ "scan_first_layer": "0",
+ "nozzle_type": "undefine",
+ "auxiliary_fan": "0"
+}
diff --git a/resources/profiles/IdeaFormer/machine/fdm_machine_common.json b/resources/profiles/IdeaFormer/machine/fdm_machine_common.json
new file mode 100644
index 0000000000..bf8f2249cf
--- /dev/null
+++ b/resources/profiles/IdeaFormer/machine/fdm_machine_common.json
@@ -0,0 +1,118 @@
+{
+ "type": "machine",
+ "name": "fdm_machine_common",
+ "from": "system",
+ "instantiation": "false",
+ "printer_technology": "FFF",
+ "deretraction_speed": [
+ "40"
+ ],
+ "extruder_colour": [
+ "#FCE94F"
+ ],
+ "extruder_offset": [
+ "0x0"
+ ],
+ "gcode_flavor": "marlin",
+ "machine_max_acceleration_e": [
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "10000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "1000"
+ ],
+ "machine_max_acceleration_x": [
+ "10000"
+ ],
+ "machine_max_acceleration_y": [
+ "10000"
+ ],
+ "machine_max_acceleration_z": [
+ "500"
+ ],
+ "machine_max_speed_e": [
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "500"
+ ],
+ "machine_max_speed_y": [
+ "500"
+ ],
+ "machine_max_speed_z": [
+ "10"
+ ],
+ "machine_max_jerk_e": [
+ "5"
+ ],
+ "machine_max_jerk_x": [
+ "8"
+ ],
+ "machine_max_jerk_y": [
+ "8"
+ ],
+ "machine_max_jerk_z": [
+ "0.4"
+ ],
+ "machine_min_extruding_rate": [
+ "0"
+ ],
+ "machine_min_travel_rate": [
+ "0"
+ ],
+ "max_layer_height": [
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.08"
+ ],
+ "printable_height": "250",
+ "extruder_clearance_radius": "65",
+ "extruder_clearance_height_to_rod": "36",
+ "extruder_clearance_height_to_lid": "140",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "printer_settings_id": "",
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": [
+ "2"
+ ],
+ "retract_before_wipe": [
+ "70%"
+ ],
+ "retract_when_changing_layer": [
+ "1"
+ ],
+ "retraction_length": [
+ "1"
+ ],
+ "retract_length_toolchange": [
+ "1"
+ ],
+ "z_hop": [
+ "0"
+ ],
+ "retract_restart_extra": [
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0"
+ ],
+ "retraction_speed": [
+ "60"
+ ],
+ "single_extruder_multi_material": "1",
+ "change_filament_gcode": "",
+ "wipe": [
+ "1"
+ ],
+ "default_print_profile": "",
+ "machine_start_gcode": "G0 Z20 F9000\nG92 E0; G1 E-10 F1200\nG28\nM970 Q1 A10 B10 C130 K0\nM970 Q1 A10 B131 C250 K1\nM974 Q1 S1 P0\nM970 Q0 A10 B10 C130 H20 K0\nM970 Q0 A10 B131 C250 K1\nM974 Q0 S1 P0\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nG29 ;Home\nG90;\nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM109 S205;\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder \nG1 X110 Y110 Z2.0 F3000 ;Move Z Axis up",
+ "machine_end_gcode": "M400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-4.0 F3600; retract \nG91\nG1 Z3;\nM104 S0 ; turn off hotend\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nG90 \nG0 X110 Y200 F3600 \nprint_end",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
+ "machine_pause_gcode": "M601"
+}
diff --git a/resources/profiles/IdeaFormer/process/0.20mm Standard @IdeaFormer IR3 V2.json b/resources/profiles/IdeaFormer/process/0.20mm Standard @IdeaFormer IR3 V2.json
new file mode 100644
index 0000000000..c2e46e4154
--- /dev/null
+++ b/resources/profiles/IdeaFormer/process/0.20mm Standard @IdeaFormer IR3 V2.json
@@ -0,0 +1,23 @@
+{
+ "type": "process",
+ "name": "0.20mm Standard @IdeaFormer IR3 V2",
+ "inherits": "fdm_process_common",
+ "from": "system",
+ "setting_id": "91atcIwv5728phqX",
+ "instantiation": "true",
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.2",
+ "initial_layer_line_width": "0.42",
+ "wall_loops": "2",
+ "reduce_infill_retraction": "1",
+ "detect_overhang_wall": "1",
+ "skirt_loops": "0",
+ "skirt_distance": "0",
+ "sparse_infill_pattern": "grid",
+ "sparse_infill_speed": "200",
+ "support_base_pattern": "rectilinear",
+ "support_interface_pattern": "rectilinear",
+ "compatible_printers": [
+ "IdeaFormer IR3 V2 0.4 nozzle"
+ ]
+}
diff --git a/resources/profiles/IdeaFormer/process/fdm_process_common.json b/resources/profiles/IdeaFormer/process/fdm_process_common.json
new file mode 100644
index 0000000000..0d558129af
--- /dev/null
+++ b/resources/profiles/IdeaFormer/process/fdm_process_common.json
@@ -0,0 +1,106 @@
+{
+ "type": "process",
+ "name": "fdm_process_common",
+ "from": "system",
+ "instantiation": "false",
+ "reduce_crossing_wall": "0",
+ "max_travel_detour_distance": "0",
+ "bottom_surface_pattern": "monotonic",
+ "bottom_shell_thickness": "0",
+ "bridge_speed": "50",
+ "brim_width": "5",
+ "brim_object_gap": "0.1",
+ "compatible_printers": [],
+ "compatible_printers_condition": "",
+ "print_sequence": "by layer",
+ "default_acceleration": "1000",
+ "initial_layer_acceleration": "500",
+ "top_surface_acceleration": "1000",
+ "travel_acceleration": "1000",
+ "inner_wall_acceleration": "1000",
+ "outer_wall_acceleration": "700",
+ "bridge_no_support": "0",
+ "draft_shield": "disabled",
+ "elefant_foot_compensation": "0",
+ "enable_arc_fitting": "0",
+ "wall_infill_order": "inner wall/outer wall/infill",
+ "infill_direction": "45",
+ "sparse_infill_density": "15%",
+ "sparse_infill_pattern": "crosshatch",
+ "initial_layer_print_height": "0.2",
+ "infill_combination": "0",
+ "infill_wall_overlap": "25%",
+ "interface_shells": "0",
+ "ironing_flow": "10%",
+ "ironing_spacing": "0.15",
+ "ironing_speed": "30",
+ "ironing_type": "no ironing",
+ "reduce_infill_retraction": "1",
+ "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode",
+ "detect_overhang_wall": "1",
+ "slowdown_for_curled_perimeters": "1",
+ "overhang_1_4_speed": "0",
+ "overhang_2_4_speed": "50",
+ "overhang_3_4_speed": "30",
+ "overhang_4_4_speed": "10",
+ "line_width": "110%",
+ "inner_wall_line_width": "110%",
+ "outer_wall_line_width": "100%",
+ "top_surface_line_width": "93.75%",
+ "sparse_infill_line_width": "110%",
+ "initial_layer_line_width": "120%",
+ "internal_solid_infill_line_width": "120%",
+ "support_line_width": "96%",
+ "wall_loops": "3",
+ "print_settings_id": "",
+ "raft_layers": "0",
+ "seam_position": "aligned",
+ "skirt_distance": "2",
+ "skirt_height": "3",
+ "min_skirt_length": "4",
+ "skirt_loops": "0",
+ "minimum_sparse_infill_area": "15",
+ "spiral_mode": "0",
+ "standby_temperature_delta": "-5",
+ "enable_support": "0",
+ "resolution": "0.012",
+ "support_type": "normal(auto)",
+ "support_on_build_plate_only": "0",
+ "support_top_z_distance": "0.2",
+ "support_bottom_z_distance": "0.2",
+ "support_filament": "0",
+ "support_interface_loop_pattern": "0",
+ "support_interface_filament": "0",
+ "support_interface_top_layers": "2",
+ "support_interface_bottom_layers": "2",
+ "support_interface_spacing": "0.5",
+ "support_interface_speed": "80",
+ "support_base_pattern": "default",
+ "support_base_pattern_spacing": "2.5",
+ "support_speed": "150",
+ "support_threshold_angle": "30",
+ "support_object_xy_distance": "0.35",
+ "tree_support_branch_angle": "30",
+ "tree_support_wall_count": "0",
+ "detect_thin_wall": "0",
+ "top_surface_pattern": "monotonicline",
+ "top_shell_thickness": "0.8",
+ "enable_prime_tower": "1",
+ "wipe_tower_no_sparse_layers": "0",
+ "prime_tower_width": "60",
+ "xy_hole_compensation": "0",
+ "xy_contour_compensation": "0",
+ "layer_height": "0.2",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "4",
+ "bridge_flow": "1",
+ "initial_layer_speed": "45",
+ "initial_layer_infill_speed": "45",
+ "outer_wall_speed": "45",
+ "inner_wall_speed": "80",
+ "sparse_infill_speed": "150",
+ "internal_solid_infill_speed": "150",
+ "top_surface_speed": "50",
+ "gap_infill_speed": "30",
+ "travel_speed": "200"
+}
diff --git a/resources/profiles/OrcaArena.json b/resources/profiles/OrcaArena.json
index 582bd47577..9bb97fb232 100644
--- a/resources/profiles/OrcaArena.json
+++ b/resources/profiles/OrcaArena.json
@@ -1,7 +1,7 @@
{
"name": "Orca Arena Printer",
"url": "",
- "version": "02.04.00.08",
+ "version": "02.04.00.07",
"force_update": "0",
"description": "Orca Arena configuration files",
"machine_model_list": [
diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json
index 99a78476cb..ed48c2787c 100644
--- a/resources/profiles/OrcaFilamentLibrary.json
+++ b/resources/profiles/OrcaFilamentLibrary.json
@@ -1,6 +1,6 @@
{
"name": "OrcaFilamentLibrary",
- "version": "02.04.00.19",
+ "version": "02.04.00.16",
"force_update": "0",
"description": "Orca Filament Library",
"filament_list": [
@@ -592,6 +592,10 @@
"name": "SUNLU PETG @base",
"sub_path": "filament/SUNLU/SUNLU PETG @base.json"
},
+ {
+ "name": "School House Spools PETG @base",
+ "sub_path": "filament/SchoolHouseSpools/School House Spools PETG @base.json"
+ },
{
"name": "eSUN PETG @base",
"sub_path": "filament/eSUN/eSUN PETG @base.json"
@@ -1096,6 +1100,10 @@
"name": "SUNLU Wood PLA @base",
"sub_path": "filament/SUNLU/SUNLU Wood PLA @base.json"
},
+ {
+ "name": "School House Spools PLA @base",
+ "sub_path": "filament/SchoolHouseSpools/School House Spools PLA @base.json"
+ },
{
"name": "Valment PLA @base",
"sub_path": "filament/Valment/Valment PLA @base.json"
@@ -1396,6 +1404,10 @@
"name": "addnorth ABS rABS",
"sub_path": "filament/addnorth/BBL/addnorth ABS rABS.json"
},
+ {
+ "name": "Goofoo ABS @base",
+ "sub_path": "filament/Goofoo/Goofoo ABS @base.json"
+ },
{
"name": "NIT ABS @System",
"sub_path": "filament/NIT/NIT ABS @System.json"
@@ -1480,6 +1492,10 @@
"name": "Elegoo ASA-CF @base",
"sub_path": "filament/Elegoo/Elegoo ASA-CF @base.json"
},
+ {
+ "name": "Goofoo ASA @base",
+ "sub_path": "filament/Goofoo/Goofoo ASA @base.json"
+ },
{
"name": "Overture ASA @BBL X1",
"sub_path": "filament/Overture/BBL/Overture ASA @BBL X1.json"
@@ -1636,10 +1652,22 @@
"name": "addnorth PVDF Adamant S1",
"sub_path": "filament/addnorth/BBL/addnorth PVDF Adamant S1.json"
},
+ {
+ "name": "Goofoo PA @base",
+ "sub_path": "filament/Goofoo/Goofoo PA @base.json"
+ },
{
"name": "addnorth PA-CF Adura X",
"sub_path": "filament/addnorth/BBL/addnorth PA-CF Adura X.json"
},
+ {
+ "name": "Goofoo PA-CF @base",
+ "sub_path": "filament/Goofoo/Goofoo PA-CF @base.json"
+ },
+ {
+ "name": "Goofoo PA-GF10 @base",
+ "sub_path": "filament/Goofoo/Goofoo PA-GF10 @base.json"
+ },
{
"name": "INSLOGIC PA6-66 @BBL P2S",
"sub_path": "filament/INSLOGIC/BBL/INSLOGIC PA6-66 @BBL P2S.json"
@@ -1712,6 +1740,10 @@
"name": "COEX PCTG PRIME @System",
"sub_path": "filament/COEX/COEX PCTG PRIME @System.json"
},
+ {
+ "name": "Goofoo PE @base",
+ "sub_path": "filament/Goofoo/Goofoo PE @base.json"
+ },
{
"name": "Generic PE-CF @System",
"sub_path": "filament/Generic PE-CF @System.json"
@@ -2176,6 +2208,10 @@
"name": "addnorth PETG rPETG Matte",
"sub_path": "filament/addnorth/BBL/addnorth PETG rPETG Matte.json"
},
+ {
+ "name": "Goofoo PETG @base",
+ "sub_path": "filament/Goofoo/Goofoo PETG @base.json"
+ },
{
"name": "Generic PETG HF @System",
"sub_path": "filament/Generic PETG HF @System.json"
@@ -2232,10 +2268,18 @@
"name": "SUNLU PETG @System",
"sub_path": "filament/SUNLU/SUNLU PETG @System.json"
},
+ {
+ "name": "School House Spools PETG @System",
+ "sub_path": "filament/SchoolHouseSpools/School House Spools PETG @System.json"
+ },
{
"name": "eSUN PETG @System",
"sub_path": "filament/eSUN/eSUN PETG @System.json"
},
+ {
+ "name": "Goofoo PHA @base",
+ "sub_path": "filament/Goofoo/Goofoo PHA @base.json"
+ },
{
"name": "AliZ PLA @P1-X1",
"sub_path": "filament/AliZ/BBL/AliZ PLA @P1-X1.json"
@@ -3120,6 +3164,10 @@
"name": "addnorth PLA rPLA RE-ADD",
"sub_path": "filament/addnorth/BBL/addnorth PLA rPLA RE-ADD.json"
},
+ {
+ "name": "Goofoo PLA @base",
+ "sub_path": "filament/Goofoo/Goofoo PLA @base.json"
+ },
{
"name": "addnorth PLA X-PLA High Speed",
"sub_path": "filament/addnorth/BBL/addnorth PLA X-PLA High Speed.json"
@@ -3136,6 +3184,10 @@
"name": "addnorth PLA-CF Carbon Fiber",
"sub_path": "filament/addnorth/BBL/addnorth PLA-CF Carbon Fiber.json"
},
+ {
+ "name": "Goofoo PLA-CF @base",
+ "sub_path": "filament/Goofoo/Goofoo PLA-CF @base.json"
+ },
{
"name": "INSLOGIC PLA Pro @BBL P2S",
"sub_path": "filament/INSLOGIC/BBL/INSLOGIC PLA Pro @BBL P2S.json"
@@ -3772,6 +3824,10 @@
"name": "SUNLU Wood PLA @System",
"sub_path": "filament/SUNLU/SUNLU Wood PLA @System.json"
},
+ {
+ "name": "School House Spools PLA @System",
+ "sub_path": "filament/SchoolHouseSpools/School House Spools PLA @System.json"
+ },
{
"name": "Valment PLA @System",
"sub_path": "filament/Valment/Valment PLA @System.json"
@@ -3820,6 +3876,10 @@
"name": "FILL3D PPCF @System",
"sub_path": "filament/FILL3D/FILL3D PPCF @System.json"
},
+ {
+ "name": "Goofoo PP @base",
+ "sub_path": "filament/Goofoo/Goofoo PP @base.json"
+ },
{
"name": "Generic PP-CF @System",
"sub_path": "filament/Generic PP-CF @System.json"
@@ -3840,6 +3900,10 @@
"name": "Bambu PVA @System",
"sub_path": "filament/Bambu/Bambu PVA @System.json"
},
+ {
+ "name": "Goofoo PVA @base",
+ "sub_path": "filament/Goofoo/Goofoo PVA @base.json"
+ },
{
"name": "FDplast SBS @System",
"sub_path": "filament/FDplast/FDplast SBS @System.json"
@@ -4112,6 +4176,14 @@
"name": "addnorth TPU Pro Matte 95A",
"sub_path": "filament/addnorth/BBL/addnorth TPU Pro Matte 95A.json"
},
+ {
+ "name": "Goofoo 90A TPU @base",
+ "sub_path": "filament/Goofoo/Goofoo 90A TPU @base.json"
+ },
+ {
+ "name": "Goofoo 95A TPU @base",
+ "sub_path": "filament/Goofoo/Goofoo 95A TPU @base.json"
+ },
{
"name": "Overture TPU @BBL A1",
"sub_path": "filament/Overture/BBL/Overture TPU @BBL A1.json"
@@ -4156,10 +4228,30 @@
"name": "Overture TPU @System",
"sub_path": "filament/Overture/Overture TPU @System.json"
},
+ {
+ "name": "Goofoo ABS @System",
+ "sub_path": "filament/Goofoo/Goofoo ABS @System.json"
+ },
{
"name": "Elegoo ASA-CF @System",
"sub_path": "filament/Elegoo/Elegoo ASA-CF @System.json"
},
+ {
+ "name": "Goofoo ASA @System",
+ "sub_path": "filament/Goofoo/Goofoo ASA @System.json"
+ },
+ {
+ "name": "Goofoo PA @System",
+ "sub_path": "filament/Goofoo/Goofoo PA @System.json"
+ },
+ {
+ "name": "Goofoo PA-CF @System",
+ "sub_path": "filament/Goofoo/Goofoo PA-CF @System.json"
+ },
+ {
+ "name": "Goofoo PA-GF10 @System",
+ "sub_path": "filament/Goofoo/Goofoo PA-GF10 @System.json"
+ },
{
"name": "Elegoo PC-FR @System",
"sub_path": "filament/Elegoo/Elegoo PC-FR @System.json"
@@ -4176,6 +4268,14 @@
"name": "COEX PCTG PRIME @BBL A1M 0.8 nozzle",
"sub_path": "filament/COEX/BBL/COEX PCTG PRIME @BBL A1M 0.8 nozzle.json"
},
+ {
+ "name": "Goofoo PE @System",
+ "sub_path": "filament/Goofoo/Goofoo PE @System.json"
+ },
+ {
+ "name": "Goofoo PE-CF @base",
+ "sub_path": "filament/Goofoo/Goofoo PE-CF @base.json"
+ },
{
"name": "AliZ PETG-CF @P1-X1",
"sub_path": "filament/AliZ/BBL/AliZ PETG-CF @P1-X1.json"
@@ -4236,10 +4336,26 @@
"name": "Fiberon PETG-ESD @BBL X1",
"sub_path": "filament/Polymaker/BBL/Fiberon PETG-ESD @BBL X1.json"
},
+ {
+ "name": "Goofoo PETG @System",
+ "sub_path": "filament/Goofoo/Goofoo PETG @System.json"
+ },
+ {
+ "name": "Goofoo PETG HF @base",
+ "sub_path": "filament/Goofoo/Goofoo PETG HF @base.json"
+ },
{
"name": "addnorth PETG-CF Rigid X",
"sub_path": "filament/addnorth/BBL/addnorth PETG-CF Rigid X.json"
},
+ {
+ "name": "Goofoo PETG-CF @base",
+ "sub_path": "filament/Goofoo/Goofoo PETG-CF @base.json"
+ },
+ {
+ "name": "Goofoo PHA @System",
+ "sub_path": "filament/Goofoo/Goofoo PHA @System.json"
+ },
{
"name": "COEX PLA @BBL A1M 0.2 nozzle",
"sub_path": "filament/COEX/BBL/COEX PLA @BBL A1M 0.2 nozzle.json"
@@ -4304,6 +4420,14 @@
"name": "Elegoo Rapid PLA+ @System",
"sub_path": "filament/Elegoo/Elegoo Rapid PLA+ @System.json"
},
+ {
+ "name": "Goofoo PLA @System",
+ "sub_path": "filament/Goofoo/Goofoo PLA @System.json"
+ },
+ {
+ "name": "Goofoo PLA-CF @System",
+ "sub_path": "filament/Goofoo/Goofoo PLA-CF @System.json"
+ },
{
"name": "Numakers PLA+ @BBL A1",
"sub_path": "filament/Numakers/BBL/Numakers PLA+ @BBL A1.json"
@@ -5188,9 +5312,61 @@
"name": "COEX PLA+Silk @System",
"sub_path": "filament/COEX/COEX PLA+Silk @System.json"
},
+ {
+ "name": "Goofoo PLA Silk @base",
+ "sub_path": "filament/Goofoo/Goofoo PLA Silk @base.json"
+ },
+ {
+ "name": "Goofoo PP @System",
+ "sub_path": "filament/Goofoo/Goofoo PP @System.json"
+ },
+ {
+ "name": "Goofoo PP-CF @base",
+ "sub_path": "filament/Goofoo/Goofoo PP-CF @base.json"
+ },
+ {
+ "name": "Goofoo PP-GF @base",
+ "sub_path": "filament/Goofoo/Goofoo PP-GF @base.json"
+ },
+ {
+ "name": "Goofoo PVA @System",
+ "sub_path": "filament/Goofoo/Goofoo PVA @System.json"
+ },
{
"name": "Elegoo Rapid TPU 95A @System",
"sub_path": "filament/Elegoo/Elegoo Rapid TPU 95A @System.json"
+ },
+ {
+ "name": "Goofoo 90A TPU @System",
+ "sub_path": "filament/Goofoo/Goofoo 90A TPU @System.json"
+ },
+ {
+ "name": "Goofoo 95A TPU @System",
+ "sub_path": "filament/Goofoo/Goofoo 95A TPU @System.json"
+ },
+ {
+ "name": "Goofoo PE-CF @System",
+ "sub_path": "filament/Goofoo/Goofoo PE-CF @System.json"
+ },
+ {
+ "name": "Goofoo PETG HF @System",
+ "sub_path": "filament/Goofoo/Goofoo PETG HF @System.json"
+ },
+ {
+ "name": "Goofoo PETG-CF @System",
+ "sub_path": "filament/Goofoo/Goofoo PETG-CF @System.json"
+ },
+ {
+ "name": "Goofoo PLA Silk @System",
+ "sub_path": "filament/Goofoo/Goofoo PLA Silk @System.json"
+ },
+ {
+ "name": "Goofoo PP-CF @System",
+ "sub_path": "filament/Goofoo/Goofoo PP-CF @System.json"
+ },
+ {
+ "name": "Goofoo PP-GF @System",
+ "sub_path": "filament/Goofoo/Goofoo PP-GF @System.json"
}
],
"process_list": [],
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA @base.json
index 3ba4c8c14f..45456ab6d8 100644
--- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA @base.json
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA @base.json
@@ -39,7 +39,7 @@
"60"
],
"filament_start_gcode": [
- "; Elegoo PLA filament start gcode\n"
+ "; filament start gcode\n"
],
"filament_end_gcode": [
"; filament end gcode \n"
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 90A TPU @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 90A TPU @System.json
new file mode 100644
index 0000000000..9c4d016d49
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 90A TPU @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo 90A TPU @System",
+ "inherits": "Goofoo 90A TPU @base",
+ "from": "system",
+ "setting_id": "tjq76AQe9SCzZVo6",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 90A TPU @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 90A TPU @base.json
new file mode 100644
index 0000000000..d54531f8c7
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 90A TPU @base.json
@@ -0,0 +1,41 @@
+{
+ "type": "filament",
+ "name": "Goofoo 90A TPU @base",
+ "inherits": "Generic TPU @System",
+ "from": "system",
+ "filament_id": "OFlVOXX3",
+ "instantiation": "false",
+ "fan_cooling_layer_time": [
+ "60"
+ ],
+ "fan_min_speed": [
+ "35"
+ ],
+ "filament_max_volumetric_speed": [
+ "2"
+ ],
+ "hot_plate_temp": [
+ "40"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40"
+ ],
+ "nozzle_temperature": [
+ "220"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "220"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "0"
+ ],
+ "slow_down_layer_time": [
+ "5"
+ ],
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "TPU"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 95A TPU @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 95A TPU @System.json
new file mode 100644
index 0000000000..034e46e5dc
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 95A TPU @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo 95A TPU @System",
+ "inherits": "Goofoo 95A TPU @base",
+ "from": "system",
+ "setting_id": "2YTvrE1gu1yHHTNM",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 95A TPU @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 95A TPU @base.json
new file mode 100644
index 0000000000..2847a0d028
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo 95A TPU @base.json
@@ -0,0 +1,38 @@
+{
+ "type": "filament",
+ "name": "Goofoo 95A TPU @base",
+ "inherits": "Generic TPU @System",
+ "from": "system",
+ "filament_id": "OFk50t30",
+ "instantiation": "false",
+ "fan_cooling_layer_time": [
+ "60"
+ ],
+ "fan_min_speed": [
+ "35"
+ ],
+ "hot_plate_temp": [
+ "40"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40"
+ ],
+ "nozzle_temperature": [
+ "220"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "220"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "0"
+ ],
+ "slow_down_layer_time": [
+ "5"
+ ],
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "TPU"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ABS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ABS @System.json
new file mode 100644
index 0000000000..628ca6e5bd
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ABS @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo ABS @System",
+ "inherits": "Goofoo ABS @base",
+ "from": "system",
+ "setting_id": "UeINgPGH4eaSJinC",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ABS @base.json
new file mode 100644
index 0000000000..be841b5806
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ABS @base.json
@@ -0,0 +1,23 @@
+{
+ "type": "filament",
+ "name": "Goofoo ABS @base",
+ "inherits": "Generic ABS @System",
+ "from": "system",
+ "filament_id": "OFd3PmW4",
+ "instantiation": "false",
+ "close_fan_the_first_x_layers": [
+ "1"
+ ],
+ "hot_plate_temp": [
+ "110"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "110"
+ ],
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "ABS"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ASA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ASA @System.json
new file mode 100644
index 0000000000..5b5c7355de
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ASA @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo ASA @System",
+ "inherits": "Goofoo ASA @base",
+ "from": "system",
+ "setting_id": "9ohqNl44uygTPfS9",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ASA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ASA @base.json
new file mode 100644
index 0000000000..3faf0926e2
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo ASA @base.json
@@ -0,0 +1,20 @@
+{
+ "type": "filament",
+ "name": "Goofoo ASA @base",
+ "inherits": "Generic ASA @System",
+ "from": "system",
+ "filament_id": "OFyncHIG",
+ "instantiation": "false",
+ "filament_flow_ratio": [
+ "0.93"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "100"
+ ],
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "ASA"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA @System.json
new file mode 100644
index 0000000000..1229eb0e3b
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PA @System",
+ "inherits": "Goofoo PA @base",
+ "from": "system",
+ "setting_id": "1ximJVgZZfGmGyzD",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA @base.json
new file mode 100644
index 0000000000..2a490fa4e0
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA @base.json
@@ -0,0 +1,20 @@
+{
+ "type": "filament",
+ "name": "Goofoo PA @base",
+ "inherits": "Generic PA @System",
+ "from": "system",
+ "filament_id": "OFc2x7Ly",
+ "instantiation": "false",
+ "filament_max_volumetric_speed": [
+ "12"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PA"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-CF @System.json
new file mode 100644
index 0000000000..61f3d494b2
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-CF @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PA-CF @System",
+ "inherits": "Goofoo PA-CF @base",
+ "from": "system",
+ "setting_id": "US4zznMNti8tLUHG",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-CF @base.json
new file mode 100644
index 0000000000..ad309aa6bf
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-CF @base.json
@@ -0,0 +1,17 @@
+{
+ "type": "filament",
+ "name": "Goofoo PA-CF @base",
+ "inherits": "Generic PA-CF @System",
+ "from": "system",
+ "filament_id": "OF7skcRj",
+ "instantiation": "false",
+ "filament_max_volumetric_speed": [
+ "12"
+ ],
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PA-CF"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-GF10 @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-GF10 @System.json
new file mode 100644
index 0000000000..34235b2c92
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-GF10 @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PA-GF10 @System",
+ "inherits": "Goofoo PA-GF10 @base",
+ "from": "system",
+ "setting_id": "Lea3hf2lQG0M9eTC",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-GF10 @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-GF10 @base.json
new file mode 100644
index 0000000000..c0233b81e4
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PA-GF10 @base.json
@@ -0,0 +1,23 @@
+{
+ "type": "filament",
+ "name": "Goofoo PA-GF10 @base",
+ "inherits": "Generic PA-CF @System",
+ "from": "system",
+ "filament_id": "OFtjqw2h",
+ "instantiation": "false",
+ "nozzle_temperature": [
+ "230"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "230"
+ ],
+ "reduce_fan_stop_start_freq": [
+ "1"
+ ],
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PA-GF"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE @System.json
new file mode 100644
index 0000000000..9ba71b4874
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PE @System",
+ "inherits": "Goofoo PE @base",
+ "from": "system",
+ "setting_id": "muNxvgr0vdavMaOJ",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE @base.json
new file mode 100644
index 0000000000..a6ad2ee8a1
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE @base.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Goofoo PE @base",
+ "inherits": "Generic PE @System",
+ "from": "system",
+ "filament_id": "OFAln723",
+ "instantiation": "false",
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PE"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE-CF @System.json
new file mode 100644
index 0000000000..fe4f954ade
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE-CF @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PE-CF @System",
+ "inherits": "Goofoo PE-CF @base",
+ "from": "system",
+ "setting_id": "58fMbg6AClvalw5o",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE-CF @base.json
new file mode 100644
index 0000000000..5f5719676b
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PE-CF @base.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Goofoo PE-CF @base",
+ "inherits": "Generic PE-CF @System",
+ "from": "system",
+ "filament_id": "OF4Ll1Sk",
+ "instantiation": "false",
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PE-CF"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG @System.json
new file mode 100644
index 0000000000..96a96f60f1
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PETG @System",
+ "inherits": "Goofoo PETG @base",
+ "from": "system",
+ "setting_id": "a9OKgJeoJgzfZiAB",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG @base.json
new file mode 100644
index 0000000000..5d380c9207
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG @base.json
@@ -0,0 +1,26 @@
+{
+ "type": "filament",
+ "name": "Goofoo PETG @base",
+ "inherits": "Generic PETG @System",
+ "from": "system",
+ "filament_id": "OFHdIbiu",
+ "instantiation": "false",
+ "hot_plate_temp": [
+ "80"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "80"
+ ],
+ "nozzle_temperature": [
+ "240"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "240"
+ ],
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PETG"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG HF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG HF @System.json
new file mode 100644
index 0000000000..9e7bef8497
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG HF @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PETG HF @System",
+ "inherits": "Goofoo PETG HF @base",
+ "from": "system",
+ "setting_id": "eMjhTRf5qPeeqSgk",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG HF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG HF @base.json
new file mode 100644
index 0000000000..dd5ec7628c
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG HF @base.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Goofoo PETG HF @base",
+ "inherits": "Generic PETG HF @System",
+ "from": "system",
+ "filament_id": "OF5bjxyx",
+ "instantiation": "false",
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PETG HF"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG-CF @System.json
new file mode 100644
index 0000000000..6a2a6713f5
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG-CF @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PETG-CF @System",
+ "inherits": "Goofoo PETG-CF @base",
+ "from": "system",
+ "setting_id": "ULNFo6zjgjc5MEIa",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG-CF @base.json
new file mode 100644
index 0000000000..2c937a5b7e
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PETG-CF @base.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Goofoo PETG-CF @base",
+ "inherits": "Generic PETG-CF @System",
+ "from": "system",
+ "filament_id": "OFo6Ff38",
+ "instantiation": "false",
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PETG-CF"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PHA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PHA @System.json
new file mode 100644
index 0000000000..dee540cbca
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PHA @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PHA @System",
+ "inherits": "Goofoo PHA @base",
+ "from": "system",
+ "setting_id": "cfdeMyqld72Lqh38",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PHA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PHA @base.json
new file mode 100644
index 0000000000..bf93e717ee
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PHA @base.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Goofoo PHA @base",
+ "inherits": "Generic PHA @System",
+ "from": "system",
+ "filament_id": "OFicmNhN",
+ "instantiation": "false",
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PHA"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA @System.json
new file mode 100644
index 0000000000..bb5cec6fb5
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PLA @System",
+ "inherits": "Goofoo PLA @base",
+ "from": "system",
+ "setting_id": "UFWRE1b3706Cu1Iq",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA @base.json
new file mode 100644
index 0000000000..953226b7bb
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA @base.json
@@ -0,0 +1,26 @@
+{
+ "type": "filament",
+ "name": "Goofoo PLA @base",
+ "inherits": "Generic PLA @System",
+ "from": "system",
+ "filament_id": "OFoq0Cmt",
+ "instantiation": "false",
+ "hot_plate_temp": [
+ "40"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40"
+ ],
+ "nozzle_temperature": [
+ "230"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "230"
+ ],
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PLA"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA Silk @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA Silk @System.json
new file mode 100644
index 0000000000..faff94a9dc
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA Silk @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PLA Silk @System",
+ "inherits": "Goofoo PLA Silk @base",
+ "from": "system",
+ "setting_id": "2pW2NEoY4hFCkNun",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA Silk @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA Silk @base.json
new file mode 100644
index 0000000000..0142549b3c
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA Silk @base.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Goofoo PLA Silk @base",
+ "inherits": "Generic PLA Silk @System",
+ "from": "system",
+ "filament_id": "OFpta2gc",
+ "instantiation": "false",
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PLA Silk"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA-CF @System.json
new file mode 100644
index 0000000000..b5dd4d30b2
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA-CF @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PLA-CF @System",
+ "inherits": "Goofoo PLA-CF @base",
+ "from": "system",
+ "setting_id": "R0UMDUPY9ryat8gQ",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA-CF @base.json
new file mode 100644
index 0000000000..e7c18576db
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PLA-CF @base.json
@@ -0,0 +1,29 @@
+{
+ "type": "filament",
+ "name": "Goofoo PLA-CF @base",
+ "inherits": "Generic PLA-CF @System",
+ "from": "system",
+ "filament_id": "OFMNABGJ",
+ "instantiation": "false",
+ "filament_flow_ratio": [
+ "0.98"
+ ],
+ "hot_plate_temp": [
+ "40"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "40"
+ ],
+ "nozzle_temperature": [
+ "240"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "240"
+ ],
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PLA-CF"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP @System.json
new file mode 100644
index 0000000000..239d479185
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PP @System",
+ "inherits": "Goofoo PP @base",
+ "from": "system",
+ "setting_id": "TaB8JUtjJWgRcNrv",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP @base.json
new file mode 100644
index 0000000000..e664d23e6c
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP @base.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Goofoo PP @base",
+ "inherits": "Generic PP @System",
+ "from": "system",
+ "filament_id": "OFlqlUSx",
+ "instantiation": "false",
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PP"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-CF @System.json
new file mode 100644
index 0000000000..ee7d75d9dc
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-CF @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PP-CF @System",
+ "inherits": "Goofoo PP-CF @base",
+ "from": "system",
+ "setting_id": "uHocbocT6flJhlBz",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-CF @base.json
new file mode 100644
index 0000000000..2a5650d6eb
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-CF @base.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Goofoo PP-CF @base",
+ "inherits": "Generic PP-CF @System",
+ "from": "system",
+ "filament_id": "OFUUiuIV",
+ "instantiation": "false",
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PP-CF"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-GF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-GF @System.json
new file mode 100644
index 0000000000..a532c66dd9
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-GF @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PP-GF @System",
+ "inherits": "Goofoo PP-GF @base",
+ "from": "system",
+ "setting_id": "mns8gICV0aNwJ02L",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-GF @base.json
new file mode 100644
index 0000000000..c6e692c13f
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PP-GF @base.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Goofoo PP-GF @base",
+ "inherits": "Generic PP-GF @System",
+ "from": "system",
+ "filament_id": "OFaOhzl8",
+ "instantiation": "false",
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PP-GF"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PVA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PVA @System.json
new file mode 100644
index 0000000000..a81dba232c
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PVA @System.json
@@ -0,0 +1,9 @@
+{
+ "type": "filament",
+ "name": "Goofoo PVA @System",
+ "inherits": "Goofoo PVA @base",
+ "from": "system",
+ "setting_id": "tUXbv31nYkXJ87OT",
+ "instantiation": "true",
+ "compatible_printers": []
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PVA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PVA @base.json
new file mode 100644
index 0000000000..a83b99e0d3
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/Goofoo/Goofoo PVA @base.json
@@ -0,0 +1,14 @@
+{
+ "type": "filament",
+ "name": "Goofoo PVA @base",
+ "inherits": "Generic PVA @System",
+ "from": "system",
+ "filament_id": "OF86rkt6",
+ "instantiation": "false",
+ "filament_vendor": [
+ "Goofoo"
+ ],
+ "filament_type": [
+ "PVA"
+ ]
+}
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PETG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PETG @System.json
new file mode 100644
index 0000000000..4c5a62e6d1
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PETG @System.json
@@ -0,0 +1,18 @@
+{
+ "type": "filament",
+ "name": "School House Spools PETG @System",
+ "inherits": "School House Spools PETG @base",
+ "from": "system",
+ "setting_id": "RSu2orfhR8ktT36h",
+ "instantiation": "true",
+ "filament_max_volumetric_speed": [
+ "13"
+ ],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
+ "compatible_printers": []
+}
\ No newline at end of file
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PETG @base.json
new file mode 100644
index 0000000000..4852e10c20
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PETG @base.json
@@ -0,0 +1,80 @@
+{
+ "type": "filament",
+ "name": "School House Spools PETG @base",
+ "inherits": "fdm_filament_pet",
+ "from": "system",
+ "filament_id": "OFnaCGQ9",
+ "instantiation": "false",
+ "cool_plate_temp": [
+ "0"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "0"
+ ],
+ "eng_plate_temp": [
+ "70"
+ ],
+ "eng_plate_temp_initial_layer": [
+ "70"
+ ],
+ "fan_cooling_layer_time": [
+ "30"
+ ],
+ "fan_max_speed": [
+ "40"
+ ],
+ "fan_min_speed": [
+ "10"
+ ],
+ "filament_cost": [
+ "16.00"
+ ],
+ "filament_density": [
+ "1.25"
+ ],
+ "filament_flow_ratio": [
+ "0.95"
+ ],
+ "filament_max_volumetric_speed": [
+ "8"
+ ],
+ "filament_multitool_ramming_flow": [
+ "8"
+ ],
+ "filament_vendor": [
+ "School House Spools"
+ ],
+ "hot_plate_temp": [
+ "70"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "70"
+ ],
+ "nozzle_temperature": [
+ "252"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "252"
+ ],
+ "nozzle_temperature_range_high": [
+ "270"
+ ],
+ "nozzle_temperature_range_low": [
+ "230"
+ ],
+ "overhang_fan_speed": [
+ "90"
+ ],
+ "overhang_fan_threshold": [
+ "10%"
+ ],
+ "slow_down_layer_time": [
+ "12"
+ ],
+ "textured_plate_temp": [
+ "70"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "70"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PLA @System.json
new file mode 100644
index 0000000000..f52065d5a9
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PLA @System.json
@@ -0,0 +1,18 @@
+{
+ "type": "filament",
+ "name": "School House Spools PLA @System",
+ "inherits": "School House Spools PLA @base",
+ "from": "system",
+ "setting_id": "3rHJk6SVAvFzyHI0",
+ "instantiation": "true",
+ "filament_max_volumetric_speed": [
+ "21"
+ ],
+ "filament_long_retractions_when_cut": [
+ "1"
+ ],
+ "filament_retraction_distances_when_cut": [
+ "18"
+ ],
+ "compatible_printers": []
+}
\ No newline at end of file
diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PLA @base.json
new file mode 100644
index 0000000000..00d352e66a
--- /dev/null
+++ b/resources/profiles/OrcaFilamentLibrary/filament/SchoolHouseSpools/School House Spools PLA @base.json
@@ -0,0 +1,35 @@
+{
+ "type": "filament",
+ "name": "School House Spools PLA @base",
+ "inherits": "fdm_filament_pla",
+ "from": "system",
+ "filament_id": "OFHzwmT9",
+ "instantiation": "false",
+ "filament_cost": [
+ "17.00"
+ ],
+ "filament_density": [
+ "1.26"
+ ],
+ "filament_flow_ratio": [
+ "0.98"
+ ],
+ "filament_max_volumetric_speed": [
+ "12"
+ ],
+ "filament_vendor": [
+ "School House Spools"
+ ],
+ "filament_scarf_seam_type": [
+ "none"
+ ],
+ "filament_scarf_height": [
+ "10%"
+ ],
+ "filament_scarf_gap": [
+ "0%"
+ ],
+ "filament_scarf_length": [
+ "10"
+ ]
+}
\ No newline at end of file
diff --git a/resources/profiles/Printcepts.json b/resources/profiles/Printcepts.json
new file mode 100644
index 0000000000..70338174d6
--- /dev/null
+++ b/resources/profiles/Printcepts.json
@@ -0,0 +1,54 @@
+{
+ "name": "Printcepts",
+ "version": "01.00.00.04",
+ "force_update": "0",
+ "description": "Printcepts belt printer configurations",
+ "machine_model_list": [
+ {
+ "name": "BabyBelt Pro",
+ "sub_path": "machine/BabyBelt Pro.json"
+ }
+ ],
+ "process_list": [
+ {
+ "name": "fdm_process_common",
+ "sub_path": "process/fdm_process_common.json"
+ },
+ {
+ "name": "0.20mm Standard @BabyBelt Pro",
+ "sub_path": "process/0.20mm Standard @BabyBelt Pro.json"
+ }
+ ],
+ "filament_list": [
+ {
+ "name": "Generic PLA @BabyBelt Pro",
+ "sub_path": "filament/Generic PLA @BabyBelt Pro.json"
+ },
+ {
+ "name": "eSUN PLA @BabyBelt Pro",
+ "sub_path": "filament/eSUN PLA @BabyBelt Pro.json"
+ },
+ {
+ "name": "Generic PETG @BabyBelt Pro",
+ "sub_path": "filament/Generic PETG @BabyBelt Pro.json"
+ }
+ ],
+ "machine_list": [
+ {
+ "name": "fdm_machine_common",
+ "sub_path": "machine/fdm_machine_common.json"
+ },
+ {
+ "name": "fdm_klipper_common",
+ "sub_path": "machine/fdm_klipper_common.json"
+ },
+ {
+ "name": "fdm_belt_common",
+ "sub_path": "machine/fdm_belt_common.json"
+ },
+ {
+ "name": "BabyBelt Pro 0.4 nozzle",
+ "sub_path": "machine/BabyBelt Pro 0.4 nozzle.json"
+ }
+ ]
+}
diff --git a/resources/profiles/Printcepts/BabyBelt Pro_bed_texture.svg b/resources/profiles/Printcepts/BabyBelt Pro_bed_texture.svg
new file mode 100644
index 0000000000..3193c6a284
--- /dev/null
+++ b/resources/profiles/Printcepts/BabyBelt Pro_bed_texture.svg
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/profiles/Printcepts/BabyBelt Pro_cover.png b/resources/profiles/Printcepts/BabyBelt Pro_cover.png
new file mode 100644
index 0000000000..aaf5dd266f
Binary files /dev/null and b/resources/profiles/Printcepts/BabyBelt Pro_cover.png differ
diff --git a/resources/profiles/Printcepts/filament/Generic PETG @BabyBelt Pro.json b/resources/profiles/Printcepts/filament/Generic PETG @BabyBelt Pro.json
new file mode 100644
index 0000000000..9b71a420b6
--- /dev/null
+++ b/resources/profiles/Printcepts/filament/Generic PETG @BabyBelt Pro.json
@@ -0,0 +1,77 @@
+{
+ "type": "filament",
+ "name": "Generic PETG @BabyBelt Pro",
+ "inherits": "Generic PETG @System",
+ "from": "system",
+ "setting_id": "gCzHpDNgVwQR6tgk",
+ "instantiation": "true",
+ "filament_extruder_variant": [
+ "Direct Drive Standard"
+ ],
+ "compatible_printers": [
+ "BabyBelt Pro 0.4 nozzle"
+ ],
+ "filament_type": [
+ "PETG"
+ ],
+ "filament_vendor": [
+ "Generic"
+ ],
+ "filament_settings_id": [
+ "Generic PETG @BabyBelt Pro"
+ ],
+ "filament_flow_ratio": [
+ "0.95"
+ ],
+ "filament_cost": [
+ "25"
+ ],
+ "nozzle_temperature": [
+ "240"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "245"
+ ],
+ "cool_plate_temp": [
+ "80"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "80"
+ ],
+ "fan_min_speed": [
+ "40"
+ ],
+ "fan_max_speed": [
+ "60"
+ ],
+ "overhang_fan_threshold": [
+ "25%"
+ ],
+ "overhang_fan_speed": [
+ "80"
+ ],
+ "full_fan_speed_layer": [
+ "8"
+ ],
+ "slow_down_min_speed": [
+ "20"
+ ],
+ "slow_down_layer_time": [
+ "4"
+ ],
+ "fan_cooling_layer_time": [
+ "100"
+ ],
+ "filament_retraction_length": [
+ "2"
+ ],
+ "filament_retraction_speed": [
+ "40"
+ ],
+ "filament_deretraction_speed": [
+ "40"
+ ],
+ "filament_start_gcode": [
+ "; Generic PETG @BabyBelt Pro — belt PETG, bed 80C"
+ ]
+}
diff --git a/resources/profiles/Printcepts/filament/Generic PLA @BabyBelt Pro.json b/resources/profiles/Printcepts/filament/Generic PLA @BabyBelt Pro.json
new file mode 100644
index 0000000000..3345b5f509
--- /dev/null
+++ b/resources/profiles/Printcepts/filament/Generic PLA @BabyBelt Pro.json
@@ -0,0 +1,65 @@
+{
+ "type": "filament",
+ "name": "Generic PLA @BabyBelt Pro",
+ "inherits": "Generic PLA @System",
+ "from": "system",
+ "setting_id": "24PpcnhVx9v5f4fD",
+ "instantiation": "true",
+ "filament_extruder_variant": [
+ "Direct Drive Standard"
+ ],
+ "compatible_printers": [
+ "BabyBelt Pro 0.4 nozzle"
+ ],
+ "filament_type": [
+ "PLA"
+ ],
+ "filament_vendor": [
+ "Generic"
+ ],
+ "filament_settings_id": [
+ "Generic PLA @BabyBelt Pro"
+ ],
+ "nozzle_temperature": [
+ "215"
+ ],
+ "hot_plate_temp": [
+ "75"
+ ],
+ "hot_plate_temp_initial_layer": [
+ "75"
+ ],
+ "cool_plate_temp": [
+ "75"
+ ],
+ "cool_plate_temp_initial_layer": [
+ "75"
+ ],
+ "textured_plate_temp": [
+ "75"
+ ],
+ "textured_plate_temp_initial_layer": [
+ "75"
+ ],
+ "close_fan_the_first_x_layers": [
+ "3"
+ ],
+ "full_fan_speed_layer": [
+ "8"
+ ],
+ "slow_down_min_speed": [
+ "20"
+ ],
+ "filament_retraction_length": [
+ "1.5"
+ ],
+ "filament_retraction_speed": [
+ "35"
+ ],
+ "filament_deretraction_speed": [
+ "30"
+ ],
+ "filament_start_gcode": [
+ "; Generic PLA @BabyBelt Pro — belt PLA, bed 75C"
+ ]
+}
diff --git a/resources/profiles/Printcepts/filament/eSUN PLA @BabyBelt Pro.json b/resources/profiles/Printcepts/filament/eSUN PLA @BabyBelt Pro.json
new file mode 100644
index 0000000000..1f93703e1c
--- /dev/null
+++ b/resources/profiles/Printcepts/filament/eSUN PLA @BabyBelt Pro.json
@@ -0,0 +1,36 @@
+{
+ "type": "filament",
+ "name": "eSUN PLA @BabyBelt Pro",
+ "inherits": "Generic PLA @BabyBelt Pro",
+ "from": "system",
+ "setting_id": "EH3X7oE0DU5tSpjW",
+ "filament_id": "OFkrxQC4",
+ "instantiation": "true",
+ "compatible_printers": [
+ "BabyBelt Pro 0.4 nozzle"
+ ],
+ "filament_type": [
+ "PLA"
+ ],
+ "filament_vendor": [
+ "eSUN"
+ ],
+ "filament_settings_id": [
+ "eSUN PLA @BabyBelt Pro"
+ ],
+ "nozzle_temperature_initial_layer": [
+ "200"
+ ],
+ "nozzle_temperature": [
+ "200"
+ ],
+ "enable_pressure_advance": [
+ "1"
+ ],
+ "pressure_advance": [
+ "0.12"
+ ],
+ "filament_max_volumetric_speed": [
+ "20"
+ ]
+}
diff --git a/resources/profiles/Printcepts/machine/BabyBelt Pro 0.4 nozzle.json b/resources/profiles/Printcepts/machine/BabyBelt Pro 0.4 nozzle.json
new file mode 100644
index 0000000000..84218476cb
--- /dev/null
+++ b/resources/profiles/Printcepts/machine/BabyBelt Pro 0.4 nozzle.json
@@ -0,0 +1,88 @@
+{
+ "type": "machine",
+ "name": "BabyBelt Pro 0.4 nozzle",
+ "inherits": "fdm_belt_common",
+ "from": "system",
+ "setting_id": "34OWINlJpJgA9DwQ",
+ "instantiation": "true",
+ "printer_model": "BabyBelt Pro",
+ "printer_variant": "0.4",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "default_filament_profile": [
+ "Generic PLA @BabyBelt Pro"
+ ],
+ "default_print_profile": "0.20mm Standard @BabyBelt Pro",
+ "printable_area": [
+ "0x0",
+ "95x0",
+ "95x500",
+ "0x500"
+ ],
+ "printable_height": "100",
+ "best_object_pos": "0.5,0.05",
+ "nozzle_type": [
+ "hardened_steel"
+ ],
+ "printer_extruder_id": [
+ "1"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive Standard"
+ ],
+ "thumbnails": [
+ "48x48/PNG",
+ "300x300/PNG"
+ ],
+ "machine_max_acceleration_e": [
+ "500",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "500",
+ "20000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "500",
+ "5000"
+ ],
+ "machine_max_acceleration_x": [
+ "500",
+ "20000"
+ ],
+ "machine_max_acceleration_y": [
+ "500",
+ "20000"
+ ],
+ "machine_max_junction_deviation": [
+ "0.01",
+ "0.01"
+ ],
+ "machine_max_speed_x": [
+ "50",
+ "200"
+ ],
+ "machine_max_speed_y": [
+ "50",
+ "200"
+ ],
+ "machine_max_speed_z": [
+ "5",
+ "12"
+ ],
+ "retraction_length": [
+ "1.5"
+ ],
+ "retraction_speed": [
+ "20"
+ ],
+ "deretraction_speed": [
+ "25"
+ ],
+ "retract_lift_enforce": [
+ "Top and Bottom"
+ ],
+ "support_chamber_temp_control": "0",
+ "machine_start_gcode": ";Start GCode\nPRINT_START ANGLE=[belt_slice_rotation_angle] EXTRUDER=[nozzle_temperature_initial_layer] BED=[hot_plate_temp_initial_layer] MATERIAL=[filament_type]\n"
+}
diff --git a/resources/profiles/Printcepts/machine/BabyBelt Pro.json b/resources/profiles/Printcepts/machine/BabyBelt Pro.json
new file mode 100644
index 0000000000..eb711541bd
--- /dev/null
+++ b/resources/profiles/Printcepts/machine/BabyBelt Pro.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "BabyBelt Pro",
+ "model_id": "Printcepts_BabyBelt_Pro",
+ "nozzle_diameter": "0.4",
+ "machine_tech": "FFF",
+ "family": "Printcepts",
+ "bed_model": "",
+ "bed_texture": "BabyBelt Pro_bed_texture.svg",
+ "hotend_model": "",
+ "default_materials": "Generic PLA @BabyBelt Pro;Generic PETG @BabyBelt Pro"
+}
diff --git a/resources/profiles/Printcepts/machine/fdm_belt_common.json b/resources/profiles/Printcepts/machine/fdm_belt_common.json
new file mode 100644
index 0000000000..96d38ac31a
--- /dev/null
+++ b/resources/profiles/Printcepts/machine/fdm_belt_common.json
@@ -0,0 +1,98 @@
+{
+ "type": "machine",
+ "name": "fdm_belt_common",
+ "inherits": "fdm_klipper_common",
+ "from": "system",
+ "instantiation": "false",
+ "gcode_flavor": "klipper",
+ "single_extruder_multi_material": "0",
+ "default_filament_profile": [
+ "Generic PLA @System"
+ ],
+ "default_print_profile": "0.20mm Standard @BabyBelt Pro",
+ "max_layer_height": [
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.08"
+ ],
+ "deretraction_speed": [
+ "30"
+ ],
+ "extruder_colour": [
+ "#FCE94F"
+ ],
+ "extruder_offset": [
+ "0x0"
+ ],
+ "long_retractions_when_cut": [
+ "0"
+ ],
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "retract_before_wipe": [
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2"
+ ],
+ "retract_lift_above": [
+ "0"
+ ],
+ "retract_lift_below": [
+ "0"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18"
+ ],
+ "retraction_length": [
+ "0.8"
+ ],
+ "retraction_minimum_travel": [
+ "1"
+ ],
+ "retraction_speed": [
+ "30"
+ ],
+ "travel_slope": [
+ "3"
+ ],
+ "wipe": [
+ "1"
+ ],
+ "wipe_distance": [
+ "1"
+ ],
+ "z_hop": [
+ "0"
+ ],
+ "z_hop_types": [
+ "Normal Lift"
+ ],
+ "gcode_remap_x": "rev_x",
+ "gcode_remap_y": "pos_z",
+ "gcode_remap_z": "pos_y",
+ "printer_extruder_id": [
+ "1"
+ ],
+ "belt_printer": "1",
+ "belt_slice_rotation": "x",
+ "belt_slice_rotation_angle": "45",
+ "build_plate_tilt_x": "45",
+ "purge_in_prime_tower": "0",
+ "scan_first_layer": "0",
+ "auxiliary_fan": "0"
+}
diff --git a/resources/profiles/Printcepts/machine/fdm_klipper_common.json b/resources/profiles/Printcepts/machine/fdm_klipper_common.json
new file mode 100644
index 0000000000..5297f646ff
--- /dev/null
+++ b/resources/profiles/Printcepts/machine/fdm_klipper_common.json
@@ -0,0 +1,140 @@
+{
+ "type": "machine",
+ "name": "fdm_klipper_common",
+ "inherits": "fdm_machine_common",
+ "from": "system",
+ "instantiation": "false",
+ "gcode_flavor": "klipper",
+ "machine_max_acceleration_e": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_x": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_y": [
+ "20000",
+ "20000"
+ ],
+ "machine_max_acceleration_z": [
+ "500",
+ "200"
+ ],
+ "machine_max_speed_e": [
+ "25",
+ "25"
+ ],
+ "machine_max_speed_x": [
+ "500",
+ "200"
+ ],
+ "machine_max_speed_y": [
+ "500",
+ "200"
+ ],
+ "machine_max_speed_z": [
+ "12",
+ "12"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "2.5"
+ ],
+ "machine_max_jerk_x": [
+ "9",
+ "9"
+ ],
+ "machine_max_jerk_y": [
+ "9",
+ "9"
+ ],
+ "machine_max_jerk_z": [
+ "0.2",
+ "0.4"
+ ],
+ "machine_min_extruding_rate": [
+ "0",
+ "0"
+ ],
+ "machine_min_travel_rate": [
+ "0",
+ "0"
+ ],
+ "max_layer_height": [
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.08"
+ ],
+ "printable_height": "250",
+ "extruder_clearance_radius": "65",
+ "extruder_clearance_height_to_rod": "36",
+ "extruder_clearance_height_to_lid": "140",
+ "printer_settings_id": "",
+ "printer_technology": "FFF",
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": [
+ "1"
+ ],
+ "retract_before_wipe": [
+ "70%"
+ ],
+ "retract_when_changing_layer": [
+ "1"
+ ],
+ "retraction_length": [
+ "0.8"
+ ],
+ "retract_length_toolchange": [
+ "2"
+ ],
+ "z_hop": [
+ "0.4"
+ ],
+ "retract_restart_extra": [
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0"
+ ],
+ "retraction_speed": [
+ "30"
+ ],
+ "deretraction_speed": [
+ "30"
+ ],
+ "z_hop_types": "Normal Lift",
+ "single_extruder_multi_material": "1",
+ "change_filament_gcode": "",
+ "wipe": [
+ "1"
+ ],
+ "default_filament_profile": [
+ "Generic PLA @System"
+ ],
+ "default_print_profile": "0.20mm Standard @MyKlipper",
+ "bed_exclude_area": [
+ "0x0"
+ ],
+ "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nPRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n",
+ "machine_end_gcode": "PRINT_END",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
+ "machine_pause_gcode": "PAUSE",
+ "scan_first_layer": "0",
+ "nozzle_type": "undefine",
+ "auxiliary_fan": "0"
+}
diff --git a/resources/profiles/Printcepts/machine/fdm_machine_common.json b/resources/profiles/Printcepts/machine/fdm_machine_common.json
new file mode 100644
index 0000000000..bf8f2249cf
--- /dev/null
+++ b/resources/profiles/Printcepts/machine/fdm_machine_common.json
@@ -0,0 +1,118 @@
+{
+ "type": "machine",
+ "name": "fdm_machine_common",
+ "from": "system",
+ "instantiation": "false",
+ "printer_technology": "FFF",
+ "deretraction_speed": [
+ "40"
+ ],
+ "extruder_colour": [
+ "#FCE94F"
+ ],
+ "extruder_offset": [
+ "0x0"
+ ],
+ "gcode_flavor": "marlin",
+ "machine_max_acceleration_e": [
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "10000"
+ ],
+ "machine_max_acceleration_retracting": [
+ "1000"
+ ],
+ "machine_max_acceleration_x": [
+ "10000"
+ ],
+ "machine_max_acceleration_y": [
+ "10000"
+ ],
+ "machine_max_acceleration_z": [
+ "500"
+ ],
+ "machine_max_speed_e": [
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "500"
+ ],
+ "machine_max_speed_y": [
+ "500"
+ ],
+ "machine_max_speed_z": [
+ "10"
+ ],
+ "machine_max_jerk_e": [
+ "5"
+ ],
+ "machine_max_jerk_x": [
+ "8"
+ ],
+ "machine_max_jerk_y": [
+ "8"
+ ],
+ "machine_max_jerk_z": [
+ "0.4"
+ ],
+ "machine_min_extruding_rate": [
+ "0"
+ ],
+ "machine_min_travel_rate": [
+ "0"
+ ],
+ "max_layer_height": [
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.08"
+ ],
+ "printable_height": "250",
+ "extruder_clearance_radius": "65",
+ "extruder_clearance_height_to_rod": "36",
+ "extruder_clearance_height_to_lid": "140",
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "printer_settings_id": "",
+ "printer_variant": "0.4",
+ "retraction_minimum_travel": [
+ "2"
+ ],
+ "retract_before_wipe": [
+ "70%"
+ ],
+ "retract_when_changing_layer": [
+ "1"
+ ],
+ "retraction_length": [
+ "1"
+ ],
+ "retract_length_toolchange": [
+ "1"
+ ],
+ "z_hop": [
+ "0"
+ ],
+ "retract_restart_extra": [
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0"
+ ],
+ "retraction_speed": [
+ "60"
+ ],
+ "single_extruder_multi_material": "1",
+ "change_filament_gcode": "",
+ "wipe": [
+ "1"
+ ],
+ "default_print_profile": "",
+ "machine_start_gcode": "G0 Z20 F9000\nG92 E0; G1 E-10 F1200\nG28\nM970 Q1 A10 B10 C130 K0\nM970 Q1 A10 B131 C250 K1\nM974 Q1 S1 P0\nM970 Q0 A10 B10 C130 H20 K0\nM970 Q0 A10 B131 C250 K1\nM974 Q0 S1 P0\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nG29 ;Home\nG90;\nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM109 S205;\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder \nG1 X110 Y110 Z2.0 F3000 ;Move Z Axis up",
+ "machine_end_gcode": "M400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-4.0 F3600; retract \nG91\nG1 Z3;\nM104 S0 ; turn off hotend\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nG90 \nG0 X110 Y200 F3600 \nprint_end",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
+ "machine_pause_gcode": "M601"
+}
diff --git a/resources/profiles/Printcepts/process/0.20mm Standard @BabyBelt Pro.json b/resources/profiles/Printcepts/process/0.20mm Standard @BabyBelt Pro.json
new file mode 100644
index 0000000000..f592cfe87e
--- /dev/null
+++ b/resources/profiles/Printcepts/process/0.20mm Standard @BabyBelt Pro.json
@@ -0,0 +1,23 @@
+{
+ "type": "process",
+ "name": "0.20mm Standard @BabyBelt Pro",
+ "inherits": "fdm_process_common",
+ "from": "system",
+ "setting_id": "JGfGtqX6CWjCt437",
+ "instantiation": "true",
+ "layer_height": "0.2",
+ "initial_layer_print_height": "0.2",
+ "initial_layer_line_width": "0.42",
+ "wall_loops": "2",
+ "reduce_infill_retraction": "1",
+ "detect_overhang_wall": "1",
+ "skirt_loops": "0",
+ "skirt_distance": "0",
+ "sparse_infill_pattern": "grid",
+ "sparse_infill_speed": "200",
+ "support_base_pattern": "rectilinear",
+ "support_interface_pattern": "rectilinear",
+ "compatible_printers": [
+ "BabyBelt Pro 0.4 nozzle"
+ ]
+}
diff --git a/resources/profiles/Printcepts/process/fdm_process_common.json b/resources/profiles/Printcepts/process/fdm_process_common.json
new file mode 100644
index 0000000000..0d558129af
--- /dev/null
+++ b/resources/profiles/Printcepts/process/fdm_process_common.json
@@ -0,0 +1,106 @@
+{
+ "type": "process",
+ "name": "fdm_process_common",
+ "from": "system",
+ "instantiation": "false",
+ "reduce_crossing_wall": "0",
+ "max_travel_detour_distance": "0",
+ "bottom_surface_pattern": "monotonic",
+ "bottom_shell_thickness": "0",
+ "bridge_speed": "50",
+ "brim_width": "5",
+ "brim_object_gap": "0.1",
+ "compatible_printers": [],
+ "compatible_printers_condition": "",
+ "print_sequence": "by layer",
+ "default_acceleration": "1000",
+ "initial_layer_acceleration": "500",
+ "top_surface_acceleration": "1000",
+ "travel_acceleration": "1000",
+ "inner_wall_acceleration": "1000",
+ "outer_wall_acceleration": "700",
+ "bridge_no_support": "0",
+ "draft_shield": "disabled",
+ "elefant_foot_compensation": "0",
+ "enable_arc_fitting": "0",
+ "wall_infill_order": "inner wall/outer wall/infill",
+ "infill_direction": "45",
+ "sparse_infill_density": "15%",
+ "sparse_infill_pattern": "crosshatch",
+ "initial_layer_print_height": "0.2",
+ "infill_combination": "0",
+ "infill_wall_overlap": "25%",
+ "interface_shells": "0",
+ "ironing_flow": "10%",
+ "ironing_spacing": "0.15",
+ "ironing_speed": "30",
+ "ironing_type": "no ironing",
+ "reduce_infill_retraction": "1",
+ "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode",
+ "detect_overhang_wall": "1",
+ "slowdown_for_curled_perimeters": "1",
+ "overhang_1_4_speed": "0",
+ "overhang_2_4_speed": "50",
+ "overhang_3_4_speed": "30",
+ "overhang_4_4_speed": "10",
+ "line_width": "110%",
+ "inner_wall_line_width": "110%",
+ "outer_wall_line_width": "100%",
+ "top_surface_line_width": "93.75%",
+ "sparse_infill_line_width": "110%",
+ "initial_layer_line_width": "120%",
+ "internal_solid_infill_line_width": "120%",
+ "support_line_width": "96%",
+ "wall_loops": "3",
+ "print_settings_id": "",
+ "raft_layers": "0",
+ "seam_position": "aligned",
+ "skirt_distance": "2",
+ "skirt_height": "3",
+ "min_skirt_length": "4",
+ "skirt_loops": "0",
+ "minimum_sparse_infill_area": "15",
+ "spiral_mode": "0",
+ "standby_temperature_delta": "-5",
+ "enable_support": "0",
+ "resolution": "0.012",
+ "support_type": "normal(auto)",
+ "support_on_build_plate_only": "0",
+ "support_top_z_distance": "0.2",
+ "support_bottom_z_distance": "0.2",
+ "support_filament": "0",
+ "support_interface_loop_pattern": "0",
+ "support_interface_filament": "0",
+ "support_interface_top_layers": "2",
+ "support_interface_bottom_layers": "2",
+ "support_interface_spacing": "0.5",
+ "support_interface_speed": "80",
+ "support_base_pattern": "default",
+ "support_base_pattern_spacing": "2.5",
+ "support_speed": "150",
+ "support_threshold_angle": "30",
+ "support_object_xy_distance": "0.35",
+ "tree_support_branch_angle": "30",
+ "tree_support_wall_count": "0",
+ "detect_thin_wall": "0",
+ "top_surface_pattern": "monotonicline",
+ "top_shell_thickness": "0.8",
+ "enable_prime_tower": "1",
+ "wipe_tower_no_sparse_layers": "0",
+ "prime_tower_width": "60",
+ "xy_hole_compensation": "0",
+ "xy_contour_compensation": "0",
+ "layer_height": "0.2",
+ "bottom_shell_layers": "3",
+ "top_shell_layers": "4",
+ "bridge_flow": "1",
+ "initial_layer_speed": "45",
+ "initial_layer_infill_speed": "45",
+ "outer_wall_speed": "45",
+ "inner_wall_speed": "80",
+ "sparse_infill_speed": "150",
+ "internal_solid_infill_speed": "150",
+ "top_surface_speed": "50",
+ "gap_infill_speed": "30",
+ "travel_speed": "200"
+}
diff --git a/resources/profiles/Prusa.json b/resources/profiles/Prusa.json
index 1b46c1deff..e9bd094f9e 100644
--- a/resources/profiles/Prusa.json
+++ b/resources/profiles/Prusa.json
@@ -1,6 +1,6 @@
{
"name": "Prusa",
- "version": "02.04.00.16",
+ "version": "02.04.00.17",
"force_update": "0",
"description": "Prusa configurations",
"machine_model_list": [
diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One.json
index 5138e20528..52009f8b2a 100644
--- a/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One.json
+++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One.json
@@ -45,7 +45,7 @@
"35"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.04{elsif nozzle_diameter[filament_extruder_id]==0.25}0.1{elsif nozzle_diameter[filament_extruder_id]==0.3}0.06{elsif nozzle_diameter[filament_extruder_id]==0.35}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.03{elsif nozzle_diameter[filament_extruder_id]==0.6}0.02{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.04{elsif nozzle_diameter[filament_extruder_id]==0.25}0.1{elsif nozzle_diameter[filament_extruder_id]==0.3}0.06{elsif nozzle_diameter[filament_extruder_id]==0.35}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.03{elsif nozzle_diameter[filament_extruder_id]==0.6}0.02{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp"
],
"hot_plate_temp": [
"110"
diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One.json
index d135ffcbad..70c5d4dd71 100644
--- a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One.json
+++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One.json
@@ -78,7 +78,7 @@
"35"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.04{elsif nozzle_diameter[filament_extruder_id]==0.25}0.1{elsif nozzle_diameter[filament_extruder_id]==0.3}0.06{elsif nozzle_diameter[filament_extruder_id]==0.35}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.03{elsif nozzle_diameter[filament_extruder_id]==0.6}0.02{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.04{elsif nozzle_diameter[filament_extruder_id]==0.25}0.1{elsif nozzle_diameter[filament_extruder_id]==0.3}0.06{elsif nozzle_diameter[filament_extruder_id]==0.35}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.03{elsif nozzle_diameter[filament_extruder_id]==0.6}0.02{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp"
],
"hot_plate_temp": [
"110"
diff --git a/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One.json
index 4f3e7f400c..ddfce75122 100644
--- a/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One.json
+++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One.json
@@ -50,7 +50,7 @@
"0.8"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.053{elsif nozzle_diameter[filament_extruder_id]==0.5}0.042{elsif nozzle_diameter[filament_extruder_id]==0.6}0.032{elsif nozzle_diameter[filament_extruder_id]==0.8}0.018{elsif nozzle_diameter[filament_extruder_id]==0.25}0.18{elsif nozzle_diameter[filament_extruder_id]==0.3}0.1{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.053{elsif nozzle_diameter[filament_extruder_id]==0.5}0.042{elsif nozzle_diameter[filament_extruder_id]==0.6}0.032{elsif nozzle_diameter[filament_extruder_id]==0.8}0.018{elsif nozzle_diameter[filament_extruder_id]==0.25}0.18{elsif nozzle_diameter[filament_extruder_id]==0.3}0.1{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
],
"filament_wipe": [
"1"
diff --git a/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One.json
index 6f19c61dc6..72c3046a72 100644
--- a/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One.json
+++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One.json
@@ -38,7 +38,7 @@
"15"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.07{elsif nozzle_diameter[filament_extruder_id]==0.35}0.06{elsif nozzle_diameter[filament_extruder_id]==0.6}0.03{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One|CORE One L).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.07{elsif nozzle_diameter[filament_extruder_id]==0.35}0.06{elsif nozzle_diameter[filament_extruder_id]==0.6}0.03{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
],
"filament_z_hop": [
"0.6"
diff --git a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One.json
index d22f3c6c6c..a97a88ba62 100644
--- a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One.json
+++ b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One.json
@@ -58,7 +58,7 @@
"7"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.07{elsif nozzle_diameter[0]==0.35}0.06{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[0]==0.4}0.03{elsif nozzle_diameter[0]==0.5}0.022{elsif nozzle_diameter[0]==0.6}0.018{elsif nozzle_diameter[0]==0.8}0.012{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.075{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.07{elsif nozzle_diameter[0]==0.35}0.06{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[0]==0.4}0.03{elsif nozzle_diameter[0]==0.5}0.022{elsif nozzle_diameter[0]==0.6}0.018{elsif nozzle_diameter[0]==0.8}0.012{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.075{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
],
"filament_z_hop": [
"0.6",
diff --git a/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json b/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json
index 739b511db9..5cc171531e 100644
--- a/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json
+++ b/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json
@@ -63,7 +63,7 @@
"0"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.04{elsif nozzle_diameter[filament_extruder_id]==0.25}0.1{elsif nozzle_diameter[filament_extruder_id]==0.3}0.06{elsif nozzle_diameter[filament_extruder_id]==0.35}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.03{elsif nozzle_diameter[filament_extruder_id]==0.6}0.02{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.04{elsif nozzle_diameter[filament_extruder_id]==0.25}0.1{elsif nozzle_diameter[filament_extruder_id]==0.3}0.06{elsif nozzle_diameter[filament_extruder_id]==0.35}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.03{elsif nozzle_diameter[filament_extruder_id]==0.6}0.02{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp"
],
"filament_type": [
"ASA"
diff --git a/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One.json b/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One.json
index d32a445e21..c45168bfbd 100644
--- a/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One.json
+++ b/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One.json
@@ -65,7 +65,7 @@
"0"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.6}0.025{elsif nozzle_diameter[filament_extruder_id]==0.8}0.016{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.6}0.025{elsif nozzle_diameter[filament_extruder_id]==0.8}0.016{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp"
],
"filament_type": [
"PA11-CF"
diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json
index 00b62e3e37..eb94953d62 100644
--- a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json
+++ b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json
@@ -63,7 +63,7 @@
"0"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.6}0.025{elsif nozzle_diameter[filament_extruder_id]==0.8}0.016{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.6}0.025{elsif nozzle_diameter[filament_extruder_id]==0.8}0.016{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp"
],
"filament_type": [
"PC"
diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One.json b/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One.json
index edaad073df..3079872e82 100644
--- a/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One.json
+++ b/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One.json
@@ -65,7 +65,7 @@
"0"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.6}0.025{elsif nozzle_diameter[filament_extruder_id]==0.8}0.016{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.6}0.025{elsif nozzle_diameter[filament_extruder_id]==0.8}0.016{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp"
],
"filament_type": [
"PC-CF"
diff --git a/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json b/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json
index 51aaba3419..a4e47d5e13 100644
--- a/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json
+++ b/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json
@@ -69,7 +69,7 @@
"0"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.053{elsif nozzle_diameter[filament_extruder_id]==0.5}0.042{elsif nozzle_diameter[filament_extruder_id]==0.6}0.032{elsif nozzle_diameter[filament_extruder_id]==0.8}0.018{elsif nozzle_diameter[filament_extruder_id]==0.25}0.18{elsif nozzle_diameter[filament_extruder_id]==0.3}0.1{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.053{elsif nozzle_diameter[filament_extruder_id]==0.5}0.042{elsif nozzle_diameter[filament_extruder_id]==0.6}0.032{elsif nozzle_diameter[filament_extruder_id]==0.8}0.018{elsif nozzle_diameter[filament_extruder_id]==0.25}0.18{elsif nozzle_diameter[filament_extruder_id]==0.3}0.1{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
],
"filament_type": [
"PETG"
diff --git a/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json b/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json
index a28ea07ed4..1c7a64d3ec 100644
--- a/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json
+++ b/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json
@@ -64,7 +64,7 @@
"0"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.07{elsif nozzle_diameter[filament_extruder_id]==0.35}0.06{elsif nozzle_diameter[filament_extruder_id]==0.6}0.03{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One|CORE One L).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.07{elsif nozzle_diameter[filament_extruder_id]==0.35}0.06{elsif nozzle_diameter[filament_extruder_id]==0.6}0.03{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
],
"filament_type": [
"PLA"
diff --git a/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json b/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json
index 9f6786bd38..dc2869b319 100644
--- a/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json
+++ b/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json
@@ -65,7 +65,7 @@
"1"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.07{elsif nozzle_diameter[filament_extruder_id]==0.35}0.06{elsif nozzle_diameter[filament_extruder_id]==0.6}0.03{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.07{elsif nozzle_diameter[filament_extruder_id]==0.35}0.06{elsif nozzle_diameter[filament_extruder_id]==0.6}0.03{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
],
"filament_type": [
"PVB"
diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json b/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json
index 73633d6044..da5c065f15 100644
--- a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json
+++ b/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json
@@ -64,7 +64,7 @@
"0"
],
"filament_start_gcode": [
- "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.07{elsif nozzle_diameter[filament_extruder_id]==0.35}0.06{elsif nozzle_diameter[filament_extruder_id]==0.6}0.03{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
+ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.07{elsif nozzle_diameter[filament_extruder_id]==0.35}0.06{elsif nozzle_diameter[filament_extruder_id]==0.6}0.03{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|COREONE).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp"
],
"filament_type": [
"PLA"
diff --git a/resources/profiles/Qidi.json b/resources/profiles/Qidi.json
index 4b6496df31..dcb39ee957 100644
--- a/resources/profiles/Qidi.json
+++ b/resources/profiles/Qidi.json
@@ -1,6 +1,6 @@
{
"name": "Qidi",
- "version": "02.04.00.16",
+ "version": "02.04.00.17",
"force_update": "0",
"description": "Qidi configurations",
"machine_model_list": [
diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json
index bd2398ae7a..30db0fc68b 100644
--- a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json
+++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json
@@ -83,7 +83,7 @@
"extruder_clearance_height_to_lid": "120",
"layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nLOG_Z\nG92 E0\n",
"machine_end_gcode": "M141 S0\nM104 S0\nM140 S0\nG1 E-3 F1800\nG0 Z{min(max_print_height, max_layer_z + 3)} F600\nG0 X0 Y0 F12000\n{if max_layer_z < max_print_height / 2}G1 Z{max_print_height / 2 + 10} F600{else}G1 Z{min(max_print_height, max_layer_z + 3)}{endif}",
- "machine_start_gcode": "PRINT_START BED=[hot_plate_temp_initial_layer] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperature]\nM83\nM140 S[hot_plate_temp_initial_layer]\nM104 S[nozzle_temperature_initial_layer]\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 3} Z0\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 6}\nG1 Z1 F600\n",
+ "machine_start_gcode": "PRINT_START BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperature]\nM83\nM140 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 3} Z0\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 6}\nG1 Z1 F600\n",
"thumbnails_format": "PNG",
"default_filament_profile": [
"Generic PLA @Qidi Q1 Pro 0.4 nozzle"
diff --git a/resources/profiles/Qidi/machine/Qidi X-CF Pro 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-CF Pro 0.4 nozzle.json
index a41e2b6a11..968f7f63a9 100644
--- a/resources/profiles/Qidi/machine/Qidi X-CF Pro 0.4 nozzle.json
+++ b/resources/profiles/Qidi/machine/Qidi X-CF Pro 0.4 nozzle.json
@@ -100,7 +100,7 @@
"default_filament_profile": [
"Generic PLA @Qidi"
],
- "machine_start_gcode": "G28\nM140 S[hot_plate_temp_initial_layer]\nM190 S[hot_plate_temp_initial_layer]\nM109 S[nozzle_temperature_initial_layer]\nG92 E-19\nG0 Y5 Z0.3 F3600\nG1 X5 E0 F2400\n",
+ "machine_start_gcode": "G28\nM140 S[bed_temperature_initial_layer_single]\nM190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nG92 E-19\nG0 Y5 Z0.3 F3600\nG1 X5 E0 F2400\n",
"machine_end_gcode": "M104 S0\nM140 S0\n;Retract the filament\nG92 E0\nG1 E-3 F300\nG28\nM84\n",
"scan_first_layer": "0"
}
diff --git a/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json b/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json
index 9796856379..8fe450c3c6 100644
--- a/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json
+++ b/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json
@@ -24,7 +24,7 @@
"210x210/COLPIC",
"110x110/PNG"
],
- "machine_start_gcode": "PRINT_START\nG28\nM141 S0\nG0 Z50 F600\nM190 S[hot_plate_temp_initial_layer]\nG28 Z\nG29; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM141 S{overall_chamber_temperature}\nM109 S[nozzle_temperature_initial_layer]\nM106 P3 S255\nM83\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 E{10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\n",
+ "machine_start_gcode": "PRINT_START\nG28\nM141 S0\nG0 Z50 F600\nM190 S[bed_temperature_initial_layer_single]\nG28 Z\nG29; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM141 S{overall_chamber_temperature}\nM109 S[nozzle_temperature_initial_layer]\nM106 P3 S255\nM83\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 E{10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\n",
"machine_end_gcode": "M141 S0\nM104 S0\nM140 S0\nG1 E-3 F1800\nG0 Z{min(max_print_height, max_layer_z + 3)} F600\nG0 X0 Y0 F12000\n{if max_layer_z < max_print_height / 2}G1 Z{max_print_height / 2 + 10} F600{else}G1 Z{min(max_print_height, max_layer_z + 3)}{endif}",
"scan_first_layer": "0"
}
diff --git a/resources/profiles/Ratrig.json b/resources/profiles/Ratrig.json
index 4f161b0001..c7b1c9d2bc 100644
--- a/resources/profiles/Ratrig.json
+++ b/resources/profiles/Ratrig.json
@@ -1,6 +1,6 @@
{
"name": "RatRig",
- "version": "02.04.00.06",
+ "version": "02.04.00.07",
"force_update": "0",
"description": "RatRig configurations",
"machine_model_list": [
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.4 nozzle.json
index d0582dbb37..e40317d355 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.4 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.4 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.5 nozzle.json
index 5d7eb0f671..0b1f3a657a 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.5 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.5 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.6 nozzle.json
index 685e993137..6897de5e10 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.6 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.6 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.8 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.8 nozzle.json
index db452dcf21..27a7d9c3f6 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.8 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300 0.8 nozzle.json
@@ -107,7 +107,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.4 nozzle.json
index 49b5493614..0d2be1e858 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.4 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.4 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.5 nozzle.json
index d008905900..219cd7e024 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.5 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.5 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.6 nozzle.json
index c41f2b583d..d2fff8b54a 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.6 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.6 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.8 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.8 nozzle.json
index 649efabebf..ef34d9df4e 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.8 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400 0.8 nozzle.json
@@ -107,7 +107,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.4 nozzle.json
index 21e946fa09..aca3b4cf01 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.4 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.4 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.5 nozzle.json
index f1d3d68e10..4c456c9a97 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.5 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.5 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.6 nozzle.json
index c46162faae..2162bb2a64 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.6 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.6 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.8 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.8 nozzle.json
index 75f518c286..4b5b3f1388 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.8 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500 0.8 nozzle.json
@@ -107,7 +107,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.4 nozzle.json
index cc4b18e0a0..47629925e4 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.4 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.4 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.5 nozzle.json
index 30f0b9a2b5..ca128e297f 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.5 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.5 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.6 nozzle.json
index c1e457efaf..4217094b27 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.6 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.6 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.8 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.8 nozzle.json
index 83afbf0276..0f27fc4b5f 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.8 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300 0.8 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.4 nozzle.json
index 209001647a..909c5221c1 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.4 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.4 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.5 nozzle.json
index a54260bfe6..b4385503e5 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.5 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.5 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.6 nozzle.json
index 7fcb7732fe..578b550179 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.6 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.6 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.8 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.8 nozzle.json
index 7383d39b4e..8b75789371 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.8 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400 0.8 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.4 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.4 nozzle.json
index 3a66f4e0a1..1221ac5fb1 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.4 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.4 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.5 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.5 nozzle.json
index 3755b80f9a..dce832f964 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.5 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.5 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.6 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.6 nozzle.json
index 3fa6761033..2efc7deb9a 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.6 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.6 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.8 nozzle.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.8 nozzle.json
index cce0908909..7f379f1828 100644
--- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.8 nozzle.json
+++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500 0.8 nozzle.json
@@ -106,7 +106,7 @@
"z_hop": [
"0.2"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single] TOTAL_LAYER_COUNT={total_layer_count} X0={first_layer_print_min[0]} Y0={first_layer_print_min[1]} X1={first_layer_print_max[0]} Y1={first_layer_print_max[1]}",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n_ON_LAYER_CHANGE LAYER={layer_num + 1}",
"change_filament_gcode": "M600",
diff --git a/resources/profiles/Ratrig/machine/fdm_klipper_common.json b/resources/profiles/Ratrig/machine/fdm_klipper_common.json
index ecd93a2346..2b823c38f8 100644
--- a/resources/profiles/Ratrig/machine/fdm_klipper_common.json
+++ b/resources/profiles/Ratrig/machine/fdm_klipper_common.json
@@ -131,7 +131,7 @@
"bed_exclude_area": [
"0x0"
],
- "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]",
+ "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] EXTRUDER_OTHER_LAYER_TEMP=[nozzle_temperature] BED_TEMP=[bed_temperature_initial_layer_single]",
"machine_end_gcode": "END_PRINT",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
diff --git a/resources/profiles/Vivedino.json b/resources/profiles/Vivedino.json
index c8f6b65c3e..11b384aabb 100644
--- a/resources/profiles/Vivedino.json
+++ b/resources/profiles/Vivedino.json
@@ -1,6 +1,6 @@
{
"name": "Vivedino",
- "version": "02.04.00.02",
+ "version": "02.04.00.13",
"force_update": "0",
"description": "Vivedino configurations",
"machine_model_list": [
@@ -11,6 +11,22 @@
{
"name": "Troodon 2.0 - RRF",
"sub_path": "machine/Troodon2RRF.json"
+ },
+ {
+ "name": "Xplorer Dual Gantry",
+ "sub_path": "machine/XplorerDualGantry.json"
+ },
+ {
+ "name": "Xplorer IDEX",
+ "sub_path": "machine/XplorerIDEX.json"
+ },
+ {
+ "name": "Xplorer IQEX",
+ "sub_path": "machine/XplorerIQEX.json"
+ },
+ {
+ "name": "Xplorer Single",
+ "sub_path": "machine/XplorerSingle.json"
}
],
"process_list": [
@@ -45,6 +61,86 @@
{
"name": "0.28mm Extra Draft @Troodon2",
"sub_path": "process/0.28mm Extra Draft @Troodon2.json"
+ },
+ {
+ "name": "fdm_process_xplorer_common",
+ "sub_path": "process/fdm_process_xplorer_common.json"
+ },
+ {
+ "name": "0.04mm Ultra Fine @Xplorer 0.4",
+ "sub_path": "process/0.04mm Ultra Fine @Xplorer 0.4.json"
+ },
+ {
+ "name": "0.08mm Extra Fine @Xplorer 0.4",
+ "sub_path": "process/0.08mm Extra Fine @Xplorer 0.4.json"
+ },
+ {
+ "name": "0.12mm Fine @Xplorer 0.4",
+ "sub_path": "process/0.12mm Fine @Xplorer 0.4.json"
+ },
+ {
+ "name": "0.16mm Optimal @Xplorer 0.4",
+ "sub_path": "process/0.16mm Optimal @Xplorer 0.4.json"
+ },
+ {
+ "name": "0.20mm Standard @Xplorer 0.4",
+ "sub_path": "process/0.20mm Standard @Xplorer 0.4.json"
+ },
+ {
+ "name": "0.28mm Draft @Xplorer 0.4",
+ "sub_path": "process/0.28mm Draft @Xplorer 0.4.json"
+ },
+ {
+ "name": "0.32mm Extra Draft @Xplorer 0.4",
+ "sub_path": "process/0.32mm Extra Draft @Xplorer 0.4.json"
+ },
+ {
+ "name": "fdm_process_xplorer_common_0_6",
+ "sub_path": "process/fdm_process_xplorer_common_0_6.json"
+ },
+ {
+ "name": "fdm_process_xplorer_common_0_8",
+ "sub_path": "process/fdm_process_xplorer_common_0_8.json"
+ },
+ {
+ "name": "0.18mm Fine @Xplorer 0.6",
+ "sub_path": "process/0.18mm Fine @Xplorer 0.6.json"
+ },
+ {
+ "name": "0.24mm Optimal @Xplorer 0.6",
+ "sub_path": "process/0.24mm Optimal @Xplorer 0.6.json"
+ },
+ {
+ "name": "0.30mm Standard @Xplorer 0.6",
+ "sub_path": "process/0.30mm Standard @Xplorer 0.6.json"
+ },
+ {
+ "name": "0.36mm Draft @Xplorer 0.6",
+ "sub_path": "process/0.36mm Draft @Xplorer 0.6.json"
+ },
+ {
+ "name": "0.42mm Extra Draft @Xplorer 0.6",
+ "sub_path": "process/0.42mm Extra Draft @Xplorer 0.6.json"
+ },
+ {
+ "name": "0.24mm Fine @Xplorer 0.8",
+ "sub_path": "process/0.24mm Fine @Xplorer 0.8.json"
+ },
+ {
+ "name": "0.32mm Optimal @Xplorer 0.8",
+ "sub_path": "process/0.32mm Optimal @Xplorer 0.8.json"
+ },
+ {
+ "name": "0.40mm Standard @Xplorer 0.8",
+ "sub_path": "process/0.40mm Standard @Xplorer 0.8.json"
+ },
+ {
+ "name": "0.48mm Draft @Xplorer 0.8",
+ "sub_path": "process/0.48mm Draft @Xplorer 0.8.json"
+ },
+ {
+ "name": "0.56mm Extra Draft @Xplorer 0.8",
+ "sub_path": "process/0.56mm Extra Draft @Xplorer 0.8.json"
}
],
"filament_list": [],
@@ -65,9 +161,61 @@
"name": "Troodon 2.0 Klipper 0.4 nozzle",
"sub_path": "machine/Troodon 2.0 Klipper 0.4 nozzle.json"
},
+ {
+ "name": "Xplorer common",
+ "sub_path": "machine/Xplorer common.json"
+ },
{
"name": "Troodon 2.0 RRF 0.4 nozzle",
"sub_path": "machine/Troodon 2.0 RRF 0.4 nozzle.json"
+ },
+ {
+ "name": "Xplorer Dual Gantry 0.4 nozzle",
+ "sub_path": "machine/Xplorer Dual Gantry 0.4 nozzle.json"
+ },
+ {
+ "name": "Xplorer Dual Gantry 0.6 nozzle",
+ "sub_path": "machine/Xplorer Dual Gantry 0.6 nozzle.json"
+ },
+ {
+ "name": "Xplorer Dual Gantry 0.8 nozzle",
+ "sub_path": "machine/Xplorer Dual Gantry 0.8 nozzle.json"
+ },
+ {
+ "name": "Xplorer IDEX 0.4 nozzle",
+ "sub_path": "machine/Xplorer IDEX 0.4 nozzle.json"
+ },
+ {
+ "name": "Xplorer IDEX 0.6 nozzle",
+ "sub_path": "machine/Xplorer IDEX 0.6 nozzle.json"
+ },
+ {
+ "name": "Xplorer IDEX 0.8 nozzle",
+ "sub_path": "machine/Xplorer IDEX 0.8 nozzle.json"
+ },
+ {
+ "name": "Xplorer IQEX 0.4 nozzle",
+ "sub_path": "machine/Xplorer IQEX 0.4 nozzle.json"
+ },
+ {
+ "name": "Xplorer IQEX 0.6 nozzle",
+ "sub_path": "machine/Xplorer IQEX 0.6 nozzle.json"
+ },
+ {
+ "name": "Xplorer IQEX 0.8 nozzle",
+ "sub_path": "machine/Xplorer IQEX 0.8 nozzle.json"
+ },
+ {
+ "name": "Xplorer Single 0.4 nozzle",
+ "sub_path": "machine/Xplorer Single 0.4 nozzle.json"
+ },
+ {
+ "name": "Xplorer Single 0.6 nozzle",
+ "sub_path": "machine/Xplorer Single 0.6 nozzle.json"
+ },
+ {
+ "name": "Xplorer Single 0.8 nozzle",
+ "sub_path": "machine/Xplorer Single 0.8 nozzle.json"
}
]
}
diff --git a/resources/profiles/Vivedino/Xplorer Dual Gantry_cover.png b/resources/profiles/Vivedino/Xplorer Dual Gantry_cover.png
new file mode 100644
index 0000000000..cc82af425a
Binary files /dev/null and b/resources/profiles/Vivedino/Xplorer Dual Gantry_cover.png differ
diff --git a/resources/profiles/Vivedino/Xplorer IDEX_cover.png b/resources/profiles/Vivedino/Xplorer IDEX_cover.png
new file mode 100644
index 0000000000..2462c32015
Binary files /dev/null and b/resources/profiles/Vivedino/Xplorer IDEX_cover.png differ
diff --git a/resources/profiles/Vivedino/Xplorer IQEX_cover.png b/resources/profiles/Vivedino/Xplorer IQEX_cover.png
new file mode 100644
index 0000000000..89c6092e5d
Binary files /dev/null and b/resources/profiles/Vivedino/Xplorer IQEX_cover.png differ
diff --git a/resources/profiles/Vivedino/Xplorer Single_cover.png b/resources/profiles/Vivedino/Xplorer Single_cover.png
new file mode 100644
index 0000000000..9a86cf6f9f
Binary files /dev/null and b/resources/profiles/Vivedino/Xplorer Single_cover.png differ
diff --git a/resources/profiles/Vivedino/Xplorer_bed_texture_dualgantry.svg b/resources/profiles/Vivedino/Xplorer_bed_texture_dualgantry.svg
new file mode 100644
index 0000000000..b73c3c529f
--- /dev/null
+++ b/resources/profiles/Vivedino/Xplorer_bed_texture_dualgantry.svg
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/profiles/Vivedino/Xplorer_bed_texture_idex.svg b/resources/profiles/Vivedino/Xplorer_bed_texture_idex.svg
new file mode 100644
index 0000000000..ed0d3182f8
--- /dev/null
+++ b/resources/profiles/Vivedino/Xplorer_bed_texture_idex.svg
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/profiles/Vivedino/Xplorer_bed_texture_iqex.svg b/resources/profiles/Vivedino/Xplorer_bed_texture_iqex.svg
new file mode 100644
index 0000000000..768653f848
--- /dev/null
+++ b/resources/profiles/Vivedino/Xplorer_bed_texture_iqex.svg
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/profiles/Vivedino/Xplorer_buildplate_model.stl b/resources/profiles/Vivedino/Xplorer_buildplate_model.stl
new file mode 100644
index 0000000000..0f4f99f052
Binary files /dev/null and b/resources/profiles/Vivedino/Xplorer_buildplate_model.stl differ
diff --git a/resources/profiles/Vivedino/machine/Xplorer Dual Gantry 0.4 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer Dual Gantry 0.4 nozzle.json
new file mode 100644
index 0000000000..1f8ea0fd3a
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer Dual Gantry 0.4 nozzle.json
@@ -0,0 +1,261 @@
+{
+ "type": "machine",
+ "name": "Xplorer Dual Gantry 0.4 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "DgYk8X6L1R0MKcfg",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}\n{if layer_num <= 0}\nG91\nG1 Z+10 F1200\nG90\n{endif}",
+ "change_filament_gcode": ";CHANGE_FILAMENT - Start\n;Layer#=[layer_num] - Z=[layer_z]\n{if layer_z >first_layer_height}\nG91\nG1 Z+2 F1200\nG90\n{endif}\n{if layer_num != -1 || next_extruder != 0}\n Tool{next_extruder}\n{endif}\n; <----\nG1 Z[layer_z] F1200\n{if layer_num == -1 || layer_num == 0}\n M109 S[first_layer_temperature[next_extruder]] T[next_extruder]\n{else}\n M104 S[temperature[next_extruder]] T[next_extruder]\n{endif}\n; ---->\nM83\n;Layer#=[layer_num] - Z=[layer_z]\nLOG_EXTR\n;CHANGE_FILAMENT - End",
+ "default_nozzle_volume_type": [
+ "High Flow",
+ "High Flow"
+ ],
+ "default_print_profile": "0.20mm Standard @Xplorer 0.4",
+ "deretraction_speed": [
+ "120",
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F",
+ "#729FCF"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "imex_gantry_count": "2",
+ "imex_mode_active_tools": [
+ "0:P",
+ "0:P,1:C",
+ "0:P,1:M"
+ ],
+ "imex_mode_gcodes": [
+ "SET_PRINT_MODE MODE=PRIMARY",
+ "SET_PRINT_MODE MODE=COPY",
+ "SET_PRINT_MODE MODE=MIRROR"
+ ],
+ "imex_mode_names": [
+ "primary",
+ "copy",
+ "mirror"
+ ],
+ "imex_tool_layout": "rear-left",
+ "imex_tools_per_gantry": "1",
+ "is_imex": "1",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0",
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000",
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000",
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50",
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60",
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20",
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S{first_layer_temperature[0]} T0\nM104 S{first_layer_temperature[1]} T1\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S{first_layer_temperature[0]} T0\nM109 S{first_layer_temperature[1]} T1\nstart_print\nG1 F5000\n{if first_layer_temperature[1] !=0 }\nTool1\nbrush_Tool1\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nbrush_Tool0\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nG1 Y280 X10.0 Z0.38 F5000.0 \nG1 Y100 X10.0 Z0.38 F1500.0 E15 \nG1 Y100 X10.4 Z0.38 F5000.0 \nG1 Y280 X10.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\n{if first_layer_temperature[0] !=0 }\nTool0\nG1 Y280 X11.0 Z0.38 F5000.0 \nG1 Y100 X11.0 Z0.38 F1500.0 E15 \nG1 Y100 X11.4 Z0.38 F5000.0 \nG1 Y280 X11.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\nM400\nSKEW_PROFILE LOAD=SKEW1\nG28 X\nG28 Y\nTool{initial_extruder}\nSTART_PRINTING_MODE\n\n",
+ "max_layer_height": [
+ "0.32",
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.04",
+ "0.04"
+ ],
+ "nozzle_diameter": [
+ "0.4",
+ "0.4"
+ ],
+ "nozzle_type": [
+ "hardened_steel",
+ "hardened_steel"
+ ],
+ "nozzle_volume": [
+ "0",
+ "0"
+ ],
+ "printable_area": [
+ "10x0",
+ "410x0",
+ "410x342.5",
+ "10x342.5"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1",
+ "2"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer Dual Gantry",
+ "printer_variant": "0.4",
+ "retract_before_wipe": [
+ "70%",
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2",
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2",
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400",
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces",
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0",
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0",
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1",
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18",
+ "18"
+ ],
+ "retraction_length": [
+ "1.35",
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2",
+ "2"
+ ],
+ "retraction_speed": [
+ "120",
+ "120"
+ ],
+ "travel_slope": [
+ "1",
+ "1"
+ ],
+ "wipe": [
+ "1",
+ "1"
+ ],
+ "wipe_distance": [
+ "1",
+ "1"
+ ],
+ "z_hop": [
+ "1",
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift",
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer Dual Gantry 0.6 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer Dual Gantry 0.6 nozzle.json
new file mode 100644
index 0000000000..39e9ecead3
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer Dual Gantry 0.6 nozzle.json
@@ -0,0 +1,261 @@
+{
+ "type": "machine",
+ "name": "Xplorer Dual Gantry 0.6 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "M1ZyjMxGz0TpRDcv",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}\n{if layer_num <= 0}\nG91\nG1 Z+10 F1200\nG90\n{endif}",
+ "change_filament_gcode": ";CHANGE_FILAMENT - Start\n;Layer#=[layer_num] - Z=[layer_z]\n{if layer_z >first_layer_height}\nG91\nG1 Z+2 F1200\nG90\n{endif}\n{if layer_num != -1 || next_extruder != 0}\n Tool{next_extruder}\n{endif}\n; <----\nG1 Z[layer_z] F1200\n{if layer_num == -1 || layer_num == 0}\n M109 S[first_layer_temperature[next_extruder]] T[next_extruder]\n{else}\n M104 S[temperature[next_extruder]] T[next_extruder]\n{endif}\n; ---->\nM83\n;Layer#=[layer_num] - Z=[layer_z]\nLOG_EXTR\n;CHANGE_FILAMENT - End",
+ "default_nozzle_volume_type": [
+ "High Flow",
+ "High Flow"
+ ],
+ "default_print_profile": "0.30mm Standard @Xplorer 0.6",
+ "deretraction_speed": [
+ "120",
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F",
+ "#729FCF"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "imex_gantry_count": "2",
+ "imex_mode_active_tools": [
+ "0:P",
+ "0:P,1:C",
+ "0:P,1:M"
+ ],
+ "imex_mode_gcodes": [
+ "SET_PRINT_MODE MODE=PRIMARY",
+ "SET_PRINT_MODE MODE=COPY",
+ "SET_PRINT_MODE MODE=MIRROR"
+ ],
+ "imex_mode_names": [
+ "primary",
+ "copy",
+ "mirror"
+ ],
+ "imex_tool_layout": "rear-left",
+ "imex_tools_per_gantry": "1",
+ "is_imex": "1",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0",
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000",
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000",
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50",
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60",
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20",
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S{first_layer_temperature[0]} T0\nM104 S{first_layer_temperature[1]} T1\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S{first_layer_temperature[0]} T0\nM109 S{first_layer_temperature[1]} T1\nstart_print\nG1 F5000\n{if first_layer_temperature[1] !=0 }\nTool1\nbrush_Tool1\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nbrush_Tool0\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nG1 Y280 X10.0 Z0.38 F5000.0 \nG1 Y100 X10.0 Z0.38 F1500.0 E15 \nG1 Y100 X10.4 Z0.38 F5000.0 \nG1 Y280 X10.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\n{if first_layer_temperature[0] !=0 }\nTool0\nG1 Y280 X11.0 Z0.38 F5000.0 \nG1 Y100 X11.0 Z0.38 F1500.0 E15 \nG1 Y100 X11.4 Z0.38 F5000.0 \nG1 Y280 X11.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\nM400\nSKEW_PROFILE LOAD=SKEW1\nG28 X\nG28 Y\nTool{initial_extruder}\nSTART_PRINTING_MODE\n\n",
+ "max_layer_height": [
+ "0.45",
+ "0.45"
+ ],
+ "min_layer_height": [
+ "0.12",
+ "0.12"
+ ],
+ "nozzle_diameter": [
+ "0.6",
+ "0.6"
+ ],
+ "nozzle_type": [
+ "hardened_steel",
+ "hardened_steel"
+ ],
+ "nozzle_volume": [
+ "0",
+ "0"
+ ],
+ "printable_area": [
+ "10x0",
+ "410x0",
+ "410x342.5",
+ "10x342.5"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1",
+ "2"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer Dual Gantry",
+ "printer_variant": "0.6",
+ "retract_before_wipe": [
+ "70%",
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2",
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2",
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400",
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces",
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0",
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0",
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1",
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18",
+ "18"
+ ],
+ "retraction_length": [
+ "1.35",
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2",
+ "2"
+ ],
+ "retraction_speed": [
+ "120",
+ "120"
+ ],
+ "travel_slope": [
+ "1",
+ "1"
+ ],
+ "wipe": [
+ "1",
+ "1"
+ ],
+ "wipe_distance": [
+ "1",
+ "1"
+ ],
+ "z_hop": [
+ "1",
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift",
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer Dual Gantry 0.8 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer Dual Gantry 0.8 nozzle.json
new file mode 100644
index 0000000000..4b6e2ed54d
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer Dual Gantry 0.8 nozzle.json
@@ -0,0 +1,261 @@
+{
+ "type": "machine",
+ "name": "Xplorer Dual Gantry 0.8 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "fWRcMcf9H5NP6zrX",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}\n{if layer_num <= 0}\nG91\nG1 Z+10 F1200\nG90\n{endif}",
+ "change_filament_gcode": ";CHANGE_FILAMENT - Start\n;Layer#=[layer_num] - Z=[layer_z]\n{if layer_z >first_layer_height}\nG91\nG1 Z+2 F1200\nG90\n{endif}\n{if layer_num != -1 || next_extruder != 0}\n Tool{next_extruder}\n{endif}\n; <----\nG1 Z[layer_z] F1200\n{if layer_num == -1 || layer_num == 0}\n M109 S[first_layer_temperature[next_extruder]] T[next_extruder]\n{else}\n M104 S[temperature[next_extruder]] T[next_extruder]\n{endif}\n; ---->\nM83\n;Layer#=[layer_num] - Z=[layer_z]\nLOG_EXTR\n;CHANGE_FILAMENT - End",
+ "default_nozzle_volume_type": [
+ "High Flow",
+ "High Flow"
+ ],
+ "default_print_profile": "0.40mm Standard @Xplorer 0.8",
+ "deretraction_speed": [
+ "120",
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F",
+ "#729FCF"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "imex_gantry_count": "2",
+ "imex_mode_active_tools": [
+ "0:P",
+ "0:P,1:C",
+ "0:P,1:M"
+ ],
+ "imex_mode_gcodes": [
+ "SET_PRINT_MODE MODE=PRIMARY",
+ "SET_PRINT_MODE MODE=COPY",
+ "SET_PRINT_MODE MODE=MIRROR"
+ ],
+ "imex_mode_names": [
+ "primary",
+ "copy",
+ "mirror"
+ ],
+ "imex_tool_layout": "rear-left",
+ "imex_tools_per_gantry": "1",
+ "is_imex": "1",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0",
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000",
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000",
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50",
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60",
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20",
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S{first_layer_temperature[0]} T0\nM104 S{first_layer_temperature[1]} T1\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S{first_layer_temperature[0]} T0\nM109 S{first_layer_temperature[1]} T1\nstart_print\nG1 F5000\n{if first_layer_temperature[1] !=0 }\nTool1\nbrush_Tool1\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nbrush_Tool0\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nG1 Y280 X10.0 Z0.38 F5000.0 \nG1 Y100 X10.0 Z0.38 F1500.0 E15 \nG1 Y100 X10.4 Z0.38 F5000.0 \nG1 Y280 X10.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\n{if first_layer_temperature[0] !=0 }\nTool0\nG1 Y280 X11.0 Z0.38 F5000.0 \nG1 Y100 X11.0 Z0.38 F1500.0 E15 \nG1 Y100 X11.4 Z0.38 F5000.0 \nG1 Y280 X11.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\nM400\nSKEW_PROFILE LOAD=SKEW1\nG28 X\nG28 Y\nTool{initial_extruder}\nSTART_PRINTING_MODE\n\n",
+ "max_layer_height": [
+ "0.64",
+ "0.64"
+ ],
+ "min_layer_height": [
+ "0.2",
+ "0.2"
+ ],
+ "nozzle_diameter": [
+ "0.8",
+ "0.8"
+ ],
+ "nozzle_type": [
+ "hardened_steel",
+ "hardened_steel"
+ ],
+ "nozzle_volume": [
+ "0",
+ "0"
+ ],
+ "printable_area": [
+ "10x0",
+ "410x0",
+ "410x342.5",
+ "10x342.5"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1",
+ "2"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer Dual Gantry",
+ "printer_variant": "0.8",
+ "retract_before_wipe": [
+ "70%",
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2",
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2",
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400",
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces",
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0",
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0",
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1",
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18",
+ "18"
+ ],
+ "retraction_length": [
+ "1.35",
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2",
+ "2"
+ ],
+ "retraction_speed": [
+ "120",
+ "120"
+ ],
+ "travel_slope": [
+ "1",
+ "1"
+ ],
+ "wipe": [
+ "1",
+ "1"
+ ],
+ "wipe_distance": [
+ "1",
+ "1"
+ ],
+ "z_hop": [
+ "1",
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift",
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer IDEX 0.4 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer IDEX 0.4 nozzle.json
new file mode 100644
index 0000000000..1529f22b4b
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer IDEX 0.4 nozzle.json
@@ -0,0 +1,254 @@
+{
+ "type": "machine",
+ "name": "Xplorer IDEX 0.4 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "lOZ2qJY7SsNRW03z",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}\n{if layer_num <= 0}\nG91\nG1 Z+10 F1200\nG90\n{endif}",
+ "change_filament_gcode": ";CHANGE_FILAMENT - Start\n;Layer#=[layer_num] - Z=[layer_z]\n{if layer_z >first_layer_height}\nG91\nG1 Z+2 F1200\nG90\n{endif}\n{if layer_num != -1 || next_extruder != 0}\n Tool{next_extruder}\n{endif}\n; <----\nG1 Z[layer_z] F1200\n{if layer_num == -1 || layer_num == 0}\n M109 S[first_layer_temperature[next_extruder]] T[next_extruder]\n{else}\n M104 S[temperature[next_extruder]] T[next_extruder]\n{endif}\n; ---->\nM83\n;Layer#=[layer_num] - Z=[layer_z]\nLOG_EXTR\n;CHANGE_FILAMENT - End",
+ "default_nozzle_volume_type": [
+ "High Flow",
+ "High Flow"
+ ],
+ "default_print_profile": "0.20mm Standard @Xplorer 0.4",
+ "deretraction_speed": [
+ "120",
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F",
+ "#729FCF"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "imex_mode_active_tools": [
+ "0:P",
+ "0:P,1:C",
+ "0:P,1:M"
+ ],
+ "imex_mode_gcodes": [
+ "SET_PRINT_MODE MODE=PRIMARY",
+ "SET_PRINT_MODE MODE=COPY",
+ "SET_PRINT_MODE MODE=MIRROR"
+ ],
+ "imex_mode_names": [
+ "primary",
+ "copy",
+ "mirror"
+ ],
+ "imex_nozzle_clearance_x": "40",
+ "imex_tool_layout": "front-left",
+ "is_imex": "1",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0",
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000",
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000",
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50",
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60",
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20",
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S{first_layer_temperature[0]} T0\nM104 S{first_layer_temperature[1]} T1\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S{first_layer_temperature[0]} T0\nM109 S{first_layer_temperature[1]} T1\nstart_print\nG1 F5000\n{if first_layer_temperature[1] !=0 }\nTool1\nbrush_Tool1\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nbrush_Tool0\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nG1 X280.1 Y3.0 Z0.38 F5000.0 \nG1 X100.1 Y3.0 Z0.38 F1500.0 E15 \nG1 X100.1 Y3.4 Z0.38 F5000.0 \nG1 X280.1 Y3.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nG1 X100.1 Y2.0 Z0.38 F5000.0 \nG1 X280.1 Y2.0 Z0.38 F1500.0 E15 \nG1 X280.1 Y2.4 Z0.38 F5000.0 \nG1 X100.1 Y2.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nM400\nSKEW_PROFILE LOAD=SKEW1\nG28 X\nTool{initial_extruder}\nSTART_PRINTING_MODE\n\n",
+ "max_layer_height": [
+ "0.32",
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.04",
+ "0.04"
+ ],
+ "nozzle_diameter": [
+ "0.4",
+ "0.4"
+ ],
+ "nozzle_type": [
+ "hardened_steel",
+ "hardened_steel"
+ ],
+ "nozzle_volume": [
+ "0",
+ "0"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1",
+ "2"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer IDEX",
+ "printer_variant": "0.4",
+ "retract_before_wipe": [
+ "70%",
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2",
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2",
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400",
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces",
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0",
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0",
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1",
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18",
+ "18"
+ ],
+ "retraction_length": [
+ "1.35",
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2",
+ "2"
+ ],
+ "retraction_speed": [
+ "120",
+ "120"
+ ],
+ "travel_slope": [
+ "1",
+ "1"
+ ],
+ "wipe": [
+ "1",
+ "1"
+ ],
+ "wipe_distance": [
+ "1",
+ "1"
+ ],
+ "z_hop": [
+ "1",
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift",
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer IDEX 0.6 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer IDEX 0.6 nozzle.json
new file mode 100644
index 0000000000..b6cfd97d54
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer IDEX 0.6 nozzle.json
@@ -0,0 +1,254 @@
+{
+ "type": "machine",
+ "name": "Xplorer IDEX 0.6 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "S4ZLGZuPtR3yC4IZ",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}\n{if layer_num <= 0}\nG91\nG1 Z+10 F1200\nG90\n{endif}",
+ "change_filament_gcode": ";CHANGE_FILAMENT - Start\n;Layer#=[layer_num] - Z=[layer_z]\n{if layer_z >first_layer_height}\nG91\nG1 Z+2 F1200\nG90\n{endif}\n{if layer_num != -1 || next_extruder != 0}\n Tool{next_extruder}\n{endif}\n; <----\nG1 Z[layer_z] F1200\n{if layer_num == -1 || layer_num == 0}\n M109 S[first_layer_temperature[next_extruder]] T[next_extruder]\n{else}\n M104 S[temperature[next_extruder]] T[next_extruder]\n{endif}\n; ---->\nM83\n;Layer#=[layer_num] - Z=[layer_z]\nLOG_EXTR\n;CHANGE_FILAMENT - End",
+ "default_nozzle_volume_type": [
+ "High Flow",
+ "High Flow"
+ ],
+ "default_print_profile": "0.30mm Standard @Xplorer 0.6",
+ "deretraction_speed": [
+ "120",
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F",
+ "#729FCF"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "imex_mode_active_tools": [
+ "0:P",
+ "0:P,1:C",
+ "0:P,1:M"
+ ],
+ "imex_mode_gcodes": [
+ "SET_PRINT_MODE MODE=PRIMARY",
+ "SET_PRINT_MODE MODE=COPY",
+ "SET_PRINT_MODE MODE=MIRROR"
+ ],
+ "imex_mode_names": [
+ "primary",
+ "copy",
+ "mirror"
+ ],
+ "imex_nozzle_clearance_x": "40",
+ "imex_tool_layout": "front-left",
+ "is_imex": "1",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0",
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000",
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000",
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50",
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60",
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20",
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S{first_layer_temperature[0]} T0\nM104 S{first_layer_temperature[1]} T1\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S{first_layer_temperature[0]} T0\nM109 S{first_layer_temperature[1]} T1\nstart_print\nG1 F5000\n{if first_layer_temperature[1] !=0 }\nTool1\nbrush_Tool1\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nbrush_Tool0\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nG1 X280.1 Y3.0 Z0.38 F5000.0 \nG1 X100.1 Y3.0 Z0.38 F1500.0 E15 \nG1 X100.1 Y3.4 Z0.38 F5000.0 \nG1 X280.1 Y3.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nG1 X100.1 Y2.0 Z0.38 F5000.0 \nG1 X280.1 Y2.0 Z0.38 F1500.0 E15 \nG1 X280.1 Y2.4 Z0.38 F5000.0 \nG1 X100.1 Y2.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nM400\nSKEW_PROFILE LOAD=SKEW1\nG28 X\nTool{initial_extruder}\nSTART_PRINTING_MODE\n\n",
+ "max_layer_height": [
+ "0.45",
+ "0.45"
+ ],
+ "min_layer_height": [
+ "0.12",
+ "0.12"
+ ],
+ "nozzle_diameter": [
+ "0.6",
+ "0.6"
+ ],
+ "nozzle_type": [
+ "hardened_steel",
+ "hardened_steel"
+ ],
+ "nozzle_volume": [
+ "0",
+ "0"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1",
+ "2"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer IDEX",
+ "printer_variant": "0.6",
+ "retract_before_wipe": [
+ "70%",
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2",
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2",
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400",
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces",
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0",
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0",
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1",
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18",
+ "18"
+ ],
+ "retraction_length": [
+ "1.35",
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2",
+ "2"
+ ],
+ "retraction_speed": [
+ "120",
+ "120"
+ ],
+ "travel_slope": [
+ "1",
+ "1"
+ ],
+ "wipe": [
+ "1",
+ "1"
+ ],
+ "wipe_distance": [
+ "1",
+ "1"
+ ],
+ "z_hop": [
+ "1",
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift",
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer IDEX 0.8 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer IDEX 0.8 nozzle.json
new file mode 100644
index 0000000000..599717aba4
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer IDEX 0.8 nozzle.json
@@ -0,0 +1,254 @@
+{
+ "type": "machine",
+ "name": "Xplorer IDEX 0.8 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "U50ftmONKAXI4OQ9",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}\n{if layer_num <= 0}\nG91\nG1 Z+10 F1200\nG90\n{endif}",
+ "change_filament_gcode": ";CHANGE_FILAMENT - Start\n;Layer#=[layer_num] - Z=[layer_z]\n{if layer_z >first_layer_height}\nG91\nG1 Z+2 F1200\nG90\n{endif}\n{if layer_num != -1 || next_extruder != 0}\n Tool{next_extruder}\n{endif}\n; <----\nG1 Z[layer_z] F1200\n{if layer_num == -1 || layer_num == 0}\n M109 S[first_layer_temperature[next_extruder]] T[next_extruder]\n{else}\n M104 S[temperature[next_extruder]] T[next_extruder]\n{endif}\n; ---->\nM83\n;Layer#=[layer_num] - Z=[layer_z]\nLOG_EXTR\n;CHANGE_FILAMENT - End",
+ "default_nozzle_volume_type": [
+ "High Flow",
+ "High Flow"
+ ],
+ "default_print_profile": "0.40mm Standard @Xplorer 0.8",
+ "deretraction_speed": [
+ "120",
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F",
+ "#729FCF"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "imex_mode_active_tools": [
+ "0:P",
+ "0:P,1:C",
+ "0:P,1:M"
+ ],
+ "imex_mode_gcodes": [
+ "SET_PRINT_MODE MODE=PRIMARY",
+ "SET_PRINT_MODE MODE=COPY",
+ "SET_PRINT_MODE MODE=MIRROR"
+ ],
+ "imex_mode_names": [
+ "primary",
+ "copy",
+ "mirror"
+ ],
+ "imex_nozzle_clearance_x": "40",
+ "imex_tool_layout": "front-left",
+ "is_imex": "1",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0",
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000",
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000",
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50",
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60",
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20",
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S{first_layer_temperature[0]} T0\nM104 S{first_layer_temperature[1]} T1\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S{first_layer_temperature[0]} T0\nM109 S{first_layer_temperature[1]} T1\nstart_print\nG1 F5000\n{if first_layer_temperature[1] !=0 }\nTool1\nbrush_Tool1\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nbrush_Tool0\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nG1 X280.1 Y3.0 Z0.38 F5000.0 \nG1 X100.1 Y3.0 Z0.38 F1500.0 E15 \nG1 X100.1 Y3.4 Z0.38 F5000.0 \nG1 X280.1 Y3.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nG1 X100.1 Y2.0 Z0.38 F5000.0 \nG1 X280.1 Y2.0 Z0.38 F1500.0 E15 \nG1 X280.1 Y2.4 Z0.38 F5000.0 \nG1 X100.1 Y2.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nM400\nSKEW_PROFILE LOAD=SKEW1\nG28 X\nTool{initial_extruder}\nSTART_PRINTING_MODE\n\n",
+ "max_layer_height": [
+ "0.64",
+ "0.64"
+ ],
+ "min_layer_height": [
+ "0.2",
+ "0.2"
+ ],
+ "nozzle_diameter": [
+ "0.8",
+ "0.8"
+ ],
+ "nozzle_type": [
+ "hardened_steel",
+ "hardened_steel"
+ ],
+ "nozzle_volume": [
+ "0",
+ "0"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1",
+ "2"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer IDEX",
+ "printer_variant": "0.8",
+ "retract_before_wipe": [
+ "70%",
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2",
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2",
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400",
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces",
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0",
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0",
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1",
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18",
+ "18"
+ ],
+ "retraction_length": [
+ "1.35",
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2",
+ "2"
+ ],
+ "retraction_speed": [
+ "120",
+ "120"
+ ],
+ "travel_slope": [
+ "1",
+ "1"
+ ],
+ "wipe": [
+ "1",
+ "1"
+ ],
+ "wipe_distance": [
+ "1",
+ "1"
+ ],
+ "z_hop": [
+ "1",
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift",
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer IQEX 0.4 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer IQEX 0.4 nozzle.json
new file mode 100644
index 0000000000..d98f63e703
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer IQEX 0.4 nozzle.json
@@ -0,0 +1,399 @@
+{
+ "type": "machine",
+ "name": "Xplorer IQEX 0.4 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "fbUJR4RMoMczxSkH",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}\n{if layer_num <= 0}\nG91\nG1 Z+10 F1200\nG90\n{endif}",
+ "change_filament_gcode": ";CHANGE_FILAMENT - Start\n;Layer#=[layer_num] - Z=[layer_z]\n{if layer_z >first_layer_height}\nG91\nG1 Z+2 F1200\nG90\n{endif}\n{if layer_num != -1 || next_extruder != 0}\n Tool{next_extruder}\n{endif}\n; <----\nG1 Z[layer_z] F1200\n{if layer_num == -1 || layer_num == 0}\n M109 S[first_layer_temperature[next_extruder]] T[next_extruder]\n{else}\n M104 S[temperature[next_extruder]] T[next_extruder]\n{endif}\n; ---->\nM83\n;Layer#=[layer_num] - Z=[layer_z]\nLOG_EXTR\n;CHANGE_FILAMENT - End",
+ "default_nozzle_volume_type": [
+ "High Flow",
+ "High Flow",
+ "High Flow",
+ "High Flow"
+ ],
+ "default_print_profile": "0.20mm Standard @Xplorer 0.4",
+ "deretraction_speed": [
+ "120",
+ "120",
+ "120",
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F",
+ "#729FCF",
+ "#AD7FA8",
+ "#F57900"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0",
+ "0x0",
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive",
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "imex_gantry_count": "2",
+ "imex_mode_active_tools": [
+ "0:P",
+ "0:P,1:C",
+ "0:P,1:M",
+ "0:P,1:C,2:C,3:C",
+ "0:P,1:C,2:M,3:M",
+ "0:P,1:S,2:C,3:C",
+ "0:P,1:S,2:M,3:M"
+ ],
+ "imex_mode_gcodes": [
+ "SET_PRINT_MODE MODE=PRIMARY",
+ "SET_PRINT_MODE MODE=COPY01",
+ "SET_PRINT_MODE MODE=MIRROR01",
+ "SET_PRINT_MODE MODE=COPY0123",
+ "SET_PRINT_MODE MODE=MIRROR0123",
+ "SET_PRINT_MODE MODE=MULTICOLOR_COPY01",
+ "SET_PRINT_MODE MODE=MULTICOLOR_MIRROR01"
+ ],
+ "imex_mode_names": [
+ "primary",
+ "copy",
+ "mirror",
+ "iq-copy",
+ "iq-mirror",
+ "mc-copy",
+ "mc-mirror"
+ ],
+ "imex_nozzle_clearance_x": "40",
+ "imex_tool_layout": "rear-left",
+ "is_imex": "1",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000",
+ "6000",
+ "5000",
+ "6000",
+ "5000",
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50",
+ "100",
+ "50",
+ "100",
+ "50",
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60",
+ "120",
+ "60",
+ "120",
+ "60",
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20",
+ "40",
+ "20",
+ "40",
+ "20",
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S{first_layer_temperature[0]} T0\nM104 S{first_layer_temperature[1]} T1\nM104 S{first_layer_temperature[2]} T2\nM104 S{first_layer_temperature[3]} T3\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S{first_layer_temperature[0]} T0\nM109 S{first_layer_temperature[1]} T1\nM109 S{first_layer_temperature[2]} T2\nM109 S{first_layer_temperature[3]} T3\nstart_print\nG1 F5000\n{if first_layer_temperature[3] !=0 }\nTool3\nbrush_Tool3\n{endif}\n{if first_layer_temperature[2] !=0 }\nTool2\nbrush_Tool2\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nbrush_Tool1\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nbrush_Tool0\n{endif}\n{if first_layer_temperature[3] !=0 }\nTool3\nG1 Y280 X407.0 Z0.38 F5000.0 \nG1 Y175 X407.0 Z0.38 F1500.0 E15 \nG1 Y175 X407.4 Z0.38 F5000.0 \nG1 Y280 X407.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\n{if first_layer_temperature[2] !=0 }\nTool2\nG1 Y280 X12.0 Z0.38 F5000.0 \nG1 Y175 X12.0 Z0.38 F1500.0 E15 \nG1 Y175 X12.4 Z0.38 F5000.0 \nG1 Y280 X12.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nG1 Y280 X408.0 Z0.38 F5000.0 \nG1 Y175 X408.0 Z0.38 F1500.0 E15 \nG1 Y175 X408.4 Z0.38 F5000.0 \nG1 Y280 X408.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\n{if first_layer_temperature[0] !=0 }\nTool0\nG1 Y280 X11.0 Z0.38 F5000.0 \nG1 Y175 X11.0 Z0.38 F1500.0 E15 \nG1 Y175 X11.4 Z0.38 F5000.0 \nG1 Y280 X11.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\nM400\nSKEW_PROFILE LOAD=SKEW1\nG28 X\nG28 Y\nTool{initial_extruder}\nSTART_PRINTING_MODE\n\n",
+ "max_layer_height": [
+ "0.32",
+ "0.32",
+ "0.32",
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.04",
+ "0.04",
+ "0.04",
+ "0.04"
+ ],
+ "nozzle_diameter": [
+ "0.4",
+ "0.4",
+ "0.4",
+ "0.4"
+ ],
+ "nozzle_type": [
+ "hardened_steel",
+ "hardened_steel",
+ "hardened_steel",
+ "hardened_steel"
+ ],
+ "nozzle_volume": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "printable_area": [
+ "10x0",
+ "410x0",
+ "410x342.5",
+ "10x342.5"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1",
+ "2",
+ "3",
+ "4"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer IQEX",
+ "printer_variant": "0.4",
+ "retract_before_wipe": [
+ "70%",
+ "70%",
+ "70%",
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2",
+ "2",
+ "2",
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2",
+ "0.2",
+ "0.2",
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400",
+ "400",
+ "400",
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces",
+ "All Surfaces",
+ "All Surfaces",
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18",
+ "18",
+ "18",
+ "18"
+ ],
+ "retraction_length": [
+ "1.35",
+ "1.35",
+ "1.35",
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2",
+ "2",
+ "2",
+ "2"
+ ],
+ "retraction_speed": [
+ "120",
+ "120",
+ "120",
+ "120"
+ ],
+ "travel_slope": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "wipe": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "wipe_distance": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "z_hop": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift",
+ "Normal Lift",
+ "Normal Lift",
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer IQEX 0.6 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer IQEX 0.6 nozzle.json
new file mode 100644
index 0000000000..97ab9406c5
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer IQEX 0.6 nozzle.json
@@ -0,0 +1,399 @@
+{
+ "type": "machine",
+ "name": "Xplorer IQEX 0.6 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "hOYAHBik6rxU1B0d",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}\n{if layer_num <= 0}\nG91\nG1 Z+10 F1200\nG90\n{endif}",
+ "change_filament_gcode": ";CHANGE_FILAMENT - Start\n;Layer#=[layer_num] - Z=[layer_z]\n{if layer_z >first_layer_height}\nG91\nG1 Z+2 F1200\nG90\n{endif}\n{if layer_num != -1 || next_extruder != 0}\n Tool{next_extruder}\n{endif}\n; <----\nG1 Z[layer_z] F1200\n{if layer_num == -1 || layer_num == 0}\n M109 S[first_layer_temperature[next_extruder]] T[next_extruder]\n{else}\n M104 S[temperature[next_extruder]] T[next_extruder]\n{endif}\n; ---->\nM83\n;Layer#=[layer_num] - Z=[layer_z]\nLOG_EXTR\n;CHANGE_FILAMENT - End",
+ "default_nozzle_volume_type": [
+ "High Flow",
+ "High Flow",
+ "High Flow",
+ "High Flow"
+ ],
+ "default_print_profile": "0.30mm Standard @Xplorer 0.6",
+ "deretraction_speed": [
+ "120",
+ "120",
+ "120",
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F",
+ "#729FCF",
+ "#AD7FA8",
+ "#F57900"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0",
+ "0x0",
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive",
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "imex_gantry_count": "2",
+ "imex_mode_active_tools": [
+ "0:P",
+ "0:P,1:C",
+ "0:P,1:M",
+ "0:P,1:C,2:C,3:C",
+ "0:P,1:C,2:M,3:M",
+ "0:P,1:S,2:C,3:C",
+ "0:P,1:S,2:M,3:M"
+ ],
+ "imex_mode_gcodes": [
+ "SET_PRINT_MODE MODE=PRIMARY",
+ "SET_PRINT_MODE MODE=COPY01",
+ "SET_PRINT_MODE MODE=MIRROR01",
+ "SET_PRINT_MODE MODE=COPY0123",
+ "SET_PRINT_MODE MODE=MIRROR0123",
+ "SET_PRINT_MODE MODE=MULTICOLOR_COPY01",
+ "SET_PRINT_MODE MODE=MULTICOLOR_MIRROR01"
+ ],
+ "imex_mode_names": [
+ "primary",
+ "copy",
+ "mirror",
+ "iq-copy",
+ "iq-mirror",
+ "mc-copy",
+ "mc-mirror"
+ ],
+ "imex_nozzle_clearance_x": "40",
+ "imex_tool_layout": "rear-left",
+ "is_imex": "1",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000",
+ "6000",
+ "5000",
+ "6000",
+ "5000",
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50",
+ "100",
+ "50",
+ "100",
+ "50",
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60",
+ "120",
+ "60",
+ "120",
+ "60",
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20",
+ "40",
+ "20",
+ "40",
+ "20",
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S{first_layer_temperature[0]} T0\nM104 S{first_layer_temperature[1]} T1\nM104 S{first_layer_temperature[2]} T2\nM104 S{first_layer_temperature[3]} T3\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S{first_layer_temperature[0]} T0\nM109 S{first_layer_temperature[1]} T1\nM109 S{first_layer_temperature[2]} T2\nM109 S{first_layer_temperature[3]} T3\nstart_print\nG1 F5000\n{if first_layer_temperature[3] !=0 }\nTool3\nbrush_Tool3\n{endif}\n{if first_layer_temperature[2] !=0 }\nTool2\nbrush_Tool2\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nbrush_Tool1\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nbrush_Tool0\n{endif}\n{if first_layer_temperature[3] !=0 }\nTool3\nG1 Y280 X407.0 Z0.38 F5000.0 \nG1 Y175 X407.0 Z0.38 F1500.0 E15 \nG1 Y175 X407.4 Z0.38 F5000.0 \nG1 Y280 X407.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\n{if first_layer_temperature[2] !=0 }\nTool2\nG1 Y280 X12.0 Z0.38 F5000.0 \nG1 Y175 X12.0 Z0.38 F1500.0 E15 \nG1 Y175 X12.4 Z0.38 F5000.0 \nG1 Y280 X12.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nG1 Y280 X408.0 Z0.38 F5000.0 \nG1 Y175 X408.0 Z0.38 F1500.0 E15 \nG1 Y175 X408.4 Z0.38 F5000.0 \nG1 Y280 X408.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\n{if first_layer_temperature[0] !=0 }\nTool0\nG1 Y280 X11.0 Z0.38 F5000.0 \nG1 Y175 X11.0 Z0.38 F1500.0 E15 \nG1 Y175 X11.4 Z0.38 F5000.0 \nG1 Y280 X11.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\nM400\nSKEW_PROFILE LOAD=SKEW1\nG28 X\nG28 Y\nTool{initial_extruder}\nSTART_PRINTING_MODE\n\n",
+ "max_layer_height": [
+ "0.45",
+ "0.45",
+ "0.45",
+ "0.45"
+ ],
+ "min_layer_height": [
+ "0.12",
+ "0.12",
+ "0.12",
+ "0.12"
+ ],
+ "nozzle_diameter": [
+ "0.6",
+ "0.6",
+ "0.6",
+ "0.6"
+ ],
+ "nozzle_type": [
+ "hardened_steel",
+ "hardened_steel",
+ "hardened_steel",
+ "hardened_steel"
+ ],
+ "nozzle_volume": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "printable_area": [
+ "10x0",
+ "410x0",
+ "410x342.5",
+ "10x342.5"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1",
+ "2",
+ "3",
+ "4"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer IQEX",
+ "printer_variant": "0.6",
+ "retract_before_wipe": [
+ "70%",
+ "70%",
+ "70%",
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2",
+ "2",
+ "2",
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2",
+ "0.2",
+ "0.2",
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400",
+ "400",
+ "400",
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces",
+ "All Surfaces",
+ "All Surfaces",
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18",
+ "18",
+ "18",
+ "18"
+ ],
+ "retraction_length": [
+ "1.35",
+ "1.35",
+ "1.35",
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2",
+ "2",
+ "2",
+ "2"
+ ],
+ "retraction_speed": [
+ "120",
+ "120",
+ "120",
+ "120"
+ ],
+ "travel_slope": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "wipe": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "wipe_distance": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "z_hop": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift",
+ "Normal Lift",
+ "Normal Lift",
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer IQEX 0.8 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer IQEX 0.8 nozzle.json
new file mode 100644
index 0000000000..68a22685ed
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer IQEX 0.8 nozzle.json
@@ -0,0 +1,399 @@
+{
+ "type": "machine",
+ "name": "Xplorer IQEX 0.8 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "e048HgBDJy6XnaaO",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}\n{if layer_num <= 0}\nG91\nG1 Z+10 F1200\nG90\n{endif}",
+ "change_filament_gcode": ";CHANGE_FILAMENT - Start\n;Layer#=[layer_num] - Z=[layer_z]\n{if layer_z >first_layer_height}\nG91\nG1 Z+2 F1200\nG90\n{endif}\n{if layer_num != -1 || next_extruder != 0}\n Tool{next_extruder}\n{endif}\n; <----\nG1 Z[layer_z] F1200\n{if layer_num == -1 || layer_num == 0}\n M109 S[first_layer_temperature[next_extruder]] T[next_extruder]\n{else}\n M104 S[temperature[next_extruder]] T[next_extruder]\n{endif}\n; ---->\nM83\n;Layer#=[layer_num] - Z=[layer_z]\nLOG_EXTR\n;CHANGE_FILAMENT - End",
+ "default_nozzle_volume_type": [
+ "High Flow",
+ "High Flow",
+ "High Flow",
+ "High Flow"
+ ],
+ "default_print_profile": "0.40mm Standard @Xplorer 0.8",
+ "deretraction_speed": [
+ "120",
+ "120",
+ "120",
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F",
+ "#729FCF",
+ "#AD7FA8",
+ "#F57900"
+ ],
+ "extruder_offset": [
+ "0x0",
+ "0x0",
+ "0x0",
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive",
+ "Direct Drive",
+ "Direct Drive",
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "imex_gantry_count": "2",
+ "imex_mode_active_tools": [
+ "0:P",
+ "0:P,1:C",
+ "0:P,1:M",
+ "0:P,1:C,2:C,3:C",
+ "0:P,1:C,2:M,3:M",
+ "0:P,1:S,2:C,3:C",
+ "0:P,1:S,2:M,3:M"
+ ],
+ "imex_mode_gcodes": [
+ "SET_PRINT_MODE MODE=PRIMARY",
+ "SET_PRINT_MODE MODE=COPY01",
+ "SET_PRINT_MODE MODE=MIRROR01",
+ "SET_PRINT_MODE MODE=COPY0123",
+ "SET_PRINT_MODE MODE=MIRROR0123",
+ "SET_PRINT_MODE MODE=MULTICOLOR_COPY01",
+ "SET_PRINT_MODE MODE=MULTICOLOR_MIRROR01"
+ ],
+ "imex_mode_names": [
+ "primary",
+ "copy",
+ "mirror",
+ "iq-copy",
+ "iq-mirror",
+ "mc-copy",
+ "mc-mirror"
+ ],
+ "imex_nozzle_clearance_x": "40",
+ "imex_tool_layout": "rear-left",
+ "is_imex": "1",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000",
+ "6000",
+ "5000",
+ "6000",
+ "5000",
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500",
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50",
+ "100",
+ "50",
+ "100",
+ "50",
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25",
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5",
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2",
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60",
+ "120",
+ "60",
+ "120",
+ "60",
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150",
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20",
+ "40",
+ "20",
+ "40",
+ "20",
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S{first_layer_temperature[0]} T0\nM104 S{first_layer_temperature[1]} T1\nM104 S{first_layer_temperature[2]} T2\nM104 S{first_layer_temperature[3]} T3\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S{first_layer_temperature[0]} T0\nM109 S{first_layer_temperature[1]} T1\nM109 S{first_layer_temperature[2]} T2\nM109 S{first_layer_temperature[3]} T3\nstart_print\nG1 F5000\n{if first_layer_temperature[3] !=0 }\nTool3\nbrush_Tool3\n{endif}\n{if first_layer_temperature[2] !=0 }\nTool2\nbrush_Tool2\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nbrush_Tool1\n{endif}\n{if first_layer_temperature[0] !=0 }\nTool0\nbrush_Tool0\n{endif}\n{if first_layer_temperature[3] !=0 }\nTool3\nG1 Y280 X407.0 Z0.38 F5000.0 \nG1 Y175 X407.0 Z0.38 F1500.0 E15 \nG1 Y175 X407.4 Z0.38 F5000.0 \nG1 Y280 X407.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\n{if first_layer_temperature[2] !=0 }\nTool2\nG1 Y280 X12.0 Z0.38 F5000.0 \nG1 Y175 X12.0 Z0.38 F1500.0 E15 \nG1 Y175 X12.4 Z0.38 F5000.0 \nG1 Y280 X12.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\n{if first_layer_temperature[1] !=0 }\nTool1\nG1 Y280 X408.0 Z0.38 F5000.0 \nG1 Y175 X408.0 Z0.38 F1500.0 E15 \nG1 Y175 X408.4 Z0.38 F5000.0 \nG1 Y280 X408.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\n{if first_layer_temperature[0] !=0 }\nTool0\nG1 Y280 X11.0 Z0.38 F5000.0 \nG1 Y175 X11.0 Z0.38 F1500.0 E15 \nG1 Y175 X11.4 Z0.38 F5000.0 \nG1 Y280 X11.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z2 F2000\n{endif}\nG1 F5000\nM400\nSKEW_PROFILE LOAD=SKEW1\nG28 X\nG28 Y\nTool{initial_extruder}\nSTART_PRINTING_MODE\n\n",
+ "max_layer_height": [
+ "0.64",
+ "0.64",
+ "0.64",
+ "0.64"
+ ],
+ "min_layer_height": [
+ "0.2",
+ "0.2",
+ "0.2",
+ "0.2"
+ ],
+ "nozzle_diameter": [
+ "0.8",
+ "0.8",
+ "0.8",
+ "0.8"
+ ],
+ "nozzle_type": [
+ "hardened_steel",
+ "hardened_steel",
+ "hardened_steel",
+ "hardened_steel"
+ ],
+ "nozzle_volume": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "printable_area": [
+ "10x0",
+ "410x0",
+ "410x342.5",
+ "10x342.5"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1",
+ "2",
+ "3",
+ "4"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow",
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer IQEX",
+ "printer_variant": "0.8",
+ "retract_before_wipe": [
+ "70%",
+ "70%",
+ "70%",
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2",
+ "2",
+ "2",
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2",
+ "0.2",
+ "0.2",
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400",
+ "400",
+ "400",
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces",
+ "All Surfaces",
+ "All Surfaces",
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0",
+ "0",
+ "0",
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18",
+ "18",
+ "18",
+ "18"
+ ],
+ "retraction_length": [
+ "1.35",
+ "1.35",
+ "1.35",
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2",
+ "2",
+ "2",
+ "2"
+ ],
+ "retraction_speed": [
+ "120",
+ "120",
+ "120",
+ "120"
+ ],
+ "travel_slope": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "wipe": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "wipe_distance": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "z_hop": [
+ "1",
+ "1",
+ "1",
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift",
+ "Normal Lift",
+ "Normal Lift",
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer Single 0.4 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer Single 0.4 nozzle.json
new file mode 100644
index 0000000000..2d629ad93a
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer Single 0.4 nozzle.json
@@ -0,0 +1,167 @@
+{
+ "type": "machine",
+ "name": "Xplorer Single 0.4 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "P4sDniCHVUne9JJF",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}",
+ "change_filament_gcode": "M600",
+ "default_nozzle_volume_type": [
+ "High Flow"
+ ],
+ "default_print_profile": "0.20mm Standard @Xplorer 0.4",
+ "deretraction_speed": [
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F"
+ ],
+ "extruder_offset": [
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow"
+ ],
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S[first_layer_temperature] T[initial_tool]\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG4 P10000 ; wait for temp stabilisation\nstart_print \nTool[initial_tool]\nG90\nM109 S[first_layer_temperature] T[initial_tool]\nBrush_Tool[initial_tool]\nG1 Z5.0 F3000 \nG1 X100 Y1.0 Z0.38 F5000.0 \nG1 X280 Y1.0 Z0.38 F1500.0 E15 \nG1 X280 Y1.4 Z0.38 F5000.0 \nG1 X100 Y1.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z5.0 F3000\nSKEW_PROFILE LOAD=SKEW1\n",
+ "max_layer_height": [
+ "0.32"
+ ],
+ "min_layer_height": [
+ "0.04"
+ ],
+ "nozzle_diameter": [
+ "0.4"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer Single",
+ "printer_variant": "0.4",
+ "retract_before_wipe": [
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18"
+ ],
+ "retraction_length": [
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2"
+ ],
+ "retraction_speed": [
+ "120"
+ ],
+ "travel_slope": [
+ "1"
+ ],
+ "wipe": [
+ "1"
+ ],
+ "wipe_distance": [
+ "1"
+ ],
+ "z_hop": [
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer Single 0.6 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer Single 0.6 nozzle.json
new file mode 100644
index 0000000000..da3f85454a
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer Single 0.6 nozzle.json
@@ -0,0 +1,167 @@
+{
+ "type": "machine",
+ "name": "Xplorer Single 0.6 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "AN4SjJRQBVxztQoT",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}",
+ "change_filament_gcode": "M600",
+ "default_nozzle_volume_type": [
+ "High Flow"
+ ],
+ "default_print_profile": "0.30mm Standard @Xplorer 0.6",
+ "deretraction_speed": [
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F"
+ ],
+ "extruder_offset": [
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow"
+ ],
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S[first_layer_temperature] T[initial_tool]\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG4 P10000 ; wait for temp stabilisation\nstart_print \nTool[initial_tool]\nG90\nM109 S[first_layer_temperature] T[initial_tool]\nBrush_Tool[initial_tool]\nG1 Z5.0 F3000 \nG1 X100 Y1.0 Z0.38 F5000.0 \nG1 X280 Y1.0 Z0.38 F1500.0 E15 \nG1 X280 Y1.4 Z0.38 F5000.0 \nG1 X100 Y1.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z5.0 F3000\nSKEW_PROFILE LOAD=SKEW1\n",
+ "max_layer_height": [
+ "0.45"
+ ],
+ "min_layer_height": [
+ "0.12"
+ ],
+ "nozzle_diameter": [
+ "0.6"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer Single",
+ "printer_variant": "0.6",
+ "retract_before_wipe": [
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18"
+ ],
+ "retraction_length": [
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2"
+ ],
+ "retraction_speed": [
+ "120"
+ ],
+ "travel_slope": [
+ "1"
+ ],
+ "wipe": [
+ "1"
+ ],
+ "wipe_distance": [
+ "1"
+ ],
+ "z_hop": [
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer Single 0.8 nozzle.json b/resources/profiles/Vivedino/machine/Xplorer Single 0.8 nozzle.json
new file mode 100644
index 0000000000..76e26d31bf
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer Single 0.8 nozzle.json
@@ -0,0 +1,167 @@
+{
+ "type": "machine",
+ "name": "Xplorer Single 0.8 nozzle",
+ "inherits": "Xplorer common",
+ "from": "system",
+ "setting_id": "rGCuBhLqBfV0zFLJ",
+ "instantiation": "true",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n{if layer_num != 0}\nG92 E0\n{endif}",
+ "change_filament_gcode": "M600",
+ "default_nozzle_volume_type": [
+ "High Flow"
+ ],
+ "default_print_profile": "0.40mm Standard @Xplorer 0.8",
+ "deretraction_speed": [
+ "120"
+ ],
+ "extruder_colour": [
+ "#FCE94F"
+ ],
+ "extruder_offset": [
+ "0x0"
+ ],
+ "extruder_type": [
+ "Direct Drive"
+ ],
+ "extruder_variant_list": [
+ "Direct Drive High Flow"
+ ],
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nLOG_RESUME\nLOG_EXTR",
+ "long_retractions_when_cut": [
+ "0"
+ ],
+ "machine_max_acceleration_e": [
+ "6000",
+ "5000"
+ ],
+ "machine_max_acceleration_extruding": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_retracting": [
+ "5000",
+ "5000"
+ ],
+ "machine_max_acceleration_travel": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_x": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_y": [
+ "5000",
+ "2500"
+ ],
+ "machine_max_acceleration_z": [
+ "100",
+ "50"
+ ],
+ "machine_max_jerk_e": [
+ "2.5",
+ "1.25"
+ ],
+ "machine_max_jerk_x": [
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_y": [
+ "5",
+ "2.5"
+ ],
+ "machine_max_jerk_z": [
+ "0.4",
+ "0.2"
+ ],
+ "machine_max_junction_deviation": [
+ "0",
+ "0"
+ ],
+ "machine_max_speed_e": [
+ "120",
+ "60"
+ ],
+ "machine_max_speed_x": [
+ "300",
+ "150"
+ ],
+ "machine_max_speed_y": [
+ "300",
+ "150"
+ ],
+ "machine_max_speed_z": [
+ "40",
+ "20"
+ ],
+ "machine_start_gcode": "M104 S[first_layer_temperature] T[initial_tool]\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG4 P10000 ; wait for temp stabilisation\nstart_print \nTool[initial_tool]\nG90\nM109 S[first_layer_temperature] T[initial_tool]\nBrush_Tool[initial_tool]\nG1 Z5.0 F3000 \nG1 X100 Y1.0 Z0.38 F5000.0 \nG1 X280 Y1.0 Z0.38 F1500.0 E15 \nG1 X280 Y1.4 Z0.38 F5000.0 \nG1 X100 Y1.4 Z0.38 F1500.0 E30\nG92 E0\nG1 Z5.0 F3000\nSKEW_PROFILE LOAD=SKEW1\n",
+ "max_layer_height": [
+ "0.64"
+ ],
+ "min_layer_height": [
+ "0.2"
+ ],
+ "nozzle_diameter": [
+ "0.8"
+ ],
+ "printable_height": "401",
+ "printer_extruder_id": [
+ "1"
+ ],
+ "printer_extruder_variant": [
+ "Direct Drive High Flow"
+ ],
+ "printer_model": "Xplorer Single",
+ "printer_variant": "0.8",
+ "retract_before_wipe": [
+ "70%"
+ ],
+ "retract_length_toolchange": [
+ "2"
+ ],
+ "retract_lift_above": [
+ "0.2"
+ ],
+ "retract_lift_below": [
+ "400"
+ ],
+ "retract_lift_enforce": [
+ "All Surfaces"
+ ],
+ "retract_restart_extra": [
+ "0"
+ ],
+ "retract_restart_extra_toolchange": [
+ "0"
+ ],
+ "retract_when_changing_layer": [
+ "1"
+ ],
+ "retraction_distances_when_cut": [
+ "18"
+ ],
+ "retraction_length": [
+ "1.35"
+ ],
+ "retraction_minimum_travel": [
+ "2"
+ ],
+ "retraction_speed": [
+ "120"
+ ],
+ "travel_slope": [
+ "1"
+ ],
+ "wipe": [
+ "1"
+ ],
+ "wipe_distance": [
+ "1"
+ ],
+ "z_hop": [
+ "1"
+ ],
+ "z_hop_types": [
+ "Normal Lift"
+ ]
+}
diff --git a/resources/profiles/Vivedino/machine/Xplorer common.json b/resources/profiles/Vivedino/machine/Xplorer common.json
new file mode 100644
index 0000000000..c7b2054c7b
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/Xplorer common.json
@@ -0,0 +1,51 @@
+{
+ "type": "machine",
+ "name": "Xplorer common",
+ "inherits": "fdm_klipper_common",
+ "from": "system",
+ "instantiation": "false",
+ "default_filament_profile": [
+ "Generic PLA @System"
+ ],
+ "adaptive_bed_mesh_margin": "0",
+ "bed_mesh_max": "99999,99999",
+ "bed_mesh_min": "-99999,-99999",
+ "bed_mesh_probe_distance": "50,50",
+ "best_object_pos": "0.5,0.5",
+ "disable_m73": "0",
+ "emit_machine_limits_to_gcode": "0",
+ "enable_long_retraction_when_cut": "0",
+ "extruder_clearance_height_to_rod": "43",
+ "extruder_clearance_radius": "70",
+ "fan_kickstart": "0",
+ "fan_speedup_overhangs": "1",
+ "fan_speedup_time": "0",
+ "head_wrap_detect_zone": [],
+ "machine_end_gcode": "end_print",
+ "max_resonance_avoidance_speed": "120",
+ "min_resonance_avoidance_speed": "70",
+ "nozzle_height": "2.5",
+ "nozzle_hrc": "0",
+ "nozzle_type": "hardened_steel",
+ "nozzle_volume": "0",
+ "pellet_modded_printer": "0",
+ "preferred_orientation": "0",
+ "printable_area": [
+ "10x0",
+ "410x0",
+ "410x400",
+ "10x400"
+ ],
+ "purge_in_prime_tower": "1",
+ "resonance_avoidance": "0",
+ "single_extruder_multi_material": "0",
+ "support_air_filtration": "1",
+ "support_chamber_temp_control": "1",
+ "support_multi_bed_types": "0",
+ "thumbnails": "48x48/PNG, 300x300/PNG",
+ "thumbnails_format": "PNG",
+ "time_cost": "0",
+ "use_firmware_retraction": "0",
+ "use_relative_e_distances": "1",
+ "z_offset": "0"
+}
diff --git a/resources/profiles/Vivedino/machine/XplorerDualGantry.json b/resources/profiles/Vivedino/machine/XplorerDualGantry.json
new file mode 100644
index 0000000000..bf57b9137b
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/XplorerDualGantry.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "Xplorer Dual Gantry",
+ "model_id": "XplorerDualGantry",
+ "nozzle_diameter": "0.4;0.6;0.8",
+ "machine_tech": "FFF",
+ "family": "Vivedino",
+ "bed_model": "Xplorer_buildplate_model.stl",
+ "bed_texture": "Xplorer_bed_texture_dualgantry.svg",
+ "hotend_model": "",
+ "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System"
+}
diff --git a/resources/profiles/Vivedino/machine/XplorerIDEX.json b/resources/profiles/Vivedino/machine/XplorerIDEX.json
new file mode 100644
index 0000000000..ffa5eee149
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/XplorerIDEX.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "Xplorer IDEX",
+ "model_id": "XplorerIDEX",
+ "nozzle_diameter": "0.4;0.6;0.8",
+ "machine_tech": "FFF",
+ "family": "Vivedino",
+ "bed_model": "Xplorer_buildplate_model.stl",
+ "bed_texture": "Xplorer_bed_texture_idex.svg",
+ "hotend_model": "",
+ "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System"
+}
diff --git a/resources/profiles/Vivedino/machine/XplorerIQEX.json b/resources/profiles/Vivedino/machine/XplorerIQEX.json
new file mode 100644
index 0000000000..95a45c221d
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/XplorerIQEX.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "Xplorer IQEX",
+ "model_id": "XplorerIQEX",
+ "nozzle_diameter": "0.4;0.6;0.8",
+ "machine_tech": "FFF",
+ "family": "Vivedino",
+ "bed_model": "Xplorer_buildplate_model.stl",
+ "bed_texture": "Xplorer_bed_texture_iqex.svg",
+ "hotend_model": "",
+ "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System"
+}
diff --git a/resources/profiles/Vivedino/machine/XplorerSingle.json b/resources/profiles/Vivedino/machine/XplorerSingle.json
new file mode 100644
index 0000000000..d3ad22af7a
--- /dev/null
+++ b/resources/profiles/Vivedino/machine/XplorerSingle.json
@@ -0,0 +1,12 @@
+{
+ "type": "machine_model",
+ "name": "Xplorer Single",
+ "model_id": "XplorerSingle",
+ "nozzle_diameter": "0.4;0.6;0.8",
+ "machine_tech": "FFF",
+ "family": "Vivedino",
+ "bed_model": "Xplorer_buildplate_model.stl",
+ "bed_texture": "",
+ "hotend_model": "",
+ "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System"
+}
diff --git a/resources/profiles/Vivedino/process/0.04mm Ultra Fine @Xplorer 0.4.json b/resources/profiles/Vivedino/process/0.04mm Ultra Fine @Xplorer 0.4.json
new file mode 100644
index 0000000000..22e6bd1a33
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.04mm Ultra Fine @Xplorer 0.4.json
@@ -0,0 +1,28 @@
+{
+ "type": "process",
+ "name": "0.04mm Ultra Fine @Xplorer 0.4",
+ "inherits": "fdm_process_xplorer_common",
+ "from": "system",
+ "setting_id": "7SZOHFM1nfZsGYHe",
+ "instantiation": "true",
+ "bottom_shell_layers": "7",
+ "initial_layer_print_height": "0.3",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_distance": "3",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "1",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "9",
+ "top_solid_infill_flow_ratio": "1",
+ "layer_height": "0.04",
+ "compatible_printers": [
+ "Xplorer Single 0.4 nozzle",
+ "Xplorer IDEX 0.4 nozzle",
+ "Xplorer Dual Gantry 0.4 nozzle",
+ "Xplorer IQEX 0.4 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.08mm Extra Fine @Xplorer 0.4.json b/resources/profiles/Vivedino/process/0.08mm Extra Fine @Xplorer 0.4.json
new file mode 100644
index 0000000000..f272186218
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.08mm Extra Fine @Xplorer 0.4.json
@@ -0,0 +1,28 @@
+{
+ "type": "process",
+ "name": "0.08mm Extra Fine @Xplorer 0.4",
+ "inherits": "fdm_process_xplorer_common",
+ "from": "system",
+ "setting_id": "OvD7mwbTHKOUsgiT",
+ "instantiation": "true",
+ "bottom_shell_layers": "4",
+ "initial_layer_print_height": "0.3",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_distance": "3",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "1",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "5",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.08",
+ "compatible_printers": [
+ "Xplorer Single 0.4 nozzle",
+ "Xplorer IDEX 0.4 nozzle",
+ "Xplorer Dual Gantry 0.4 nozzle",
+ "Xplorer IQEX 0.4 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.12mm Fine @Xplorer 0.4.json b/resources/profiles/Vivedino/process/0.12mm Fine @Xplorer 0.4.json
new file mode 100644
index 0000000000..fc742230b6
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.12mm Fine @Xplorer 0.4.json
@@ -0,0 +1,28 @@
+{
+ "type": "process",
+ "name": "0.12mm Fine @Xplorer 0.4",
+ "inherits": "fdm_process_xplorer_common",
+ "from": "system",
+ "setting_id": "9iNid6X4xIPh267R",
+ "instantiation": "true",
+ "bottom_shell_layers": "4",
+ "initial_layer_print_height": "0.3",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_distance": "3",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "1",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "5",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.12",
+ "compatible_printers": [
+ "Xplorer Single 0.4 nozzle",
+ "Xplorer IDEX 0.4 nozzle",
+ "Xplorer Dual Gantry 0.4 nozzle",
+ "Xplorer IQEX 0.4 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.16mm Optimal @Xplorer 0.4.json b/resources/profiles/Vivedino/process/0.16mm Optimal @Xplorer 0.4.json
new file mode 100644
index 0000000000..27a67f5a48
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.16mm Optimal @Xplorer 0.4.json
@@ -0,0 +1,28 @@
+{
+ "type": "process",
+ "name": "0.16mm Optimal @Xplorer 0.4",
+ "inherits": "fdm_process_xplorer_common",
+ "from": "system",
+ "setting_id": "6eUjAhfHVuxRSCQr",
+ "instantiation": "true",
+ "bottom_shell_layers": "4",
+ "initial_layer_print_height": "0.3",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_distance": "3",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "1",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "5",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.16",
+ "compatible_printers": [
+ "Xplorer Single 0.4 nozzle",
+ "Xplorer IDEX 0.4 nozzle",
+ "Xplorer Dual Gantry 0.4 nozzle",
+ "Xplorer IQEX 0.4 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.18mm Fine @Xplorer 0.6.json b/resources/profiles/Vivedino/process/0.18mm Fine @Xplorer 0.6.json
new file mode 100644
index 0000000000..8013e9a901
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.18mm Fine @Xplorer 0.6.json
@@ -0,0 +1,28 @@
+{
+ "type": "process",
+ "name": "0.18mm Fine @Xplorer 0.6",
+ "inherits": "fdm_process_xplorer_common_0_6",
+ "from": "system",
+ "setting_id": "tQHKzSbBNyoPQkup",
+ "instantiation": "true",
+ "bottom_shell_layers": "4",
+ "initial_layer_print_height": "0.3",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_distance": "3",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "1",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "5",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.18",
+ "compatible_printers": [
+ "Xplorer Single 0.6 nozzle",
+ "Xplorer IDEX 0.6 nozzle",
+ "Xplorer Dual Gantry 0.6 nozzle",
+ "Xplorer IQEX 0.6 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.20mm Standard @Xplorer 0.4.json b/resources/profiles/Vivedino/process/0.20mm Standard @Xplorer 0.4.json
new file mode 100644
index 0000000000..d880d2ba5a
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.20mm Standard @Xplorer 0.4.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.20mm Standard @Xplorer 0.4",
+ "inherits": "fdm_process_xplorer_common",
+ "from": "system",
+ "setting_id": "CiJAkwpq5pR6MfYD",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.3",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "10",
+ "outer_wall_speed": "130",
+ "skirt_loops": "2",
+ "slowdown_for_curled_perimeters": "1",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.20",
+ "compatible_printers": [
+ "Xplorer Single 0.4 nozzle",
+ "Xplorer IDEX 0.4 nozzle",
+ "Xplorer Dual Gantry 0.4 nozzle",
+ "Xplorer IQEX 0.4 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.24mm Fine @Xplorer 0.8.json b/resources/profiles/Vivedino/process/0.24mm Fine @Xplorer 0.8.json
new file mode 100644
index 0000000000..cd2be9355d
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.24mm Fine @Xplorer 0.8.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.24mm Fine @Xplorer 0.8",
+ "inherits": "fdm_process_xplorer_common_0_8",
+ "from": "system",
+ "setting_id": "yv9TMduh7bgD1IjO",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.3",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "10",
+ "outer_wall_speed": "130",
+ "skirt_loops": "2",
+ "slowdown_for_curled_perimeters": "1",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.24",
+ "compatible_printers": [
+ "Xplorer Single 0.8 nozzle",
+ "Xplorer IDEX 0.8 nozzle",
+ "Xplorer Dual Gantry 0.8 nozzle",
+ "Xplorer IQEX 0.8 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.24mm Optimal @Xplorer 0.6.json b/resources/profiles/Vivedino/process/0.24mm Optimal @Xplorer 0.6.json
new file mode 100644
index 0000000000..d628e1a121
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.24mm Optimal @Xplorer 0.6.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.24mm Optimal @Xplorer 0.6",
+ "inherits": "fdm_process_xplorer_common_0_6",
+ "from": "system",
+ "setting_id": "WKjOeNEZndeHrbQw",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.3",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "10",
+ "outer_wall_speed": "130",
+ "skirt_loops": "2",
+ "slowdown_for_curled_perimeters": "1",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.24",
+ "compatible_printers": [
+ "Xplorer Single 0.6 nozzle",
+ "Xplorer IDEX 0.6 nozzle",
+ "Xplorer Dual Gantry 0.6 nozzle",
+ "Xplorer IQEX 0.6 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.28mm Draft @Xplorer 0.4.json b/resources/profiles/Vivedino/process/0.28mm Draft @Xplorer 0.4.json
new file mode 100644
index 0000000000..eaad4d5f45
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.28mm Draft @Xplorer 0.4.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.28mm Draft @Xplorer 0.4",
+ "inherits": "fdm_process_xplorer_common",
+ "from": "system",
+ "setting_id": "zjvcZ59oVnh73fij",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.32",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "0",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.28",
+ "compatible_printers": [
+ "Xplorer Single 0.4 nozzle",
+ "Xplorer IDEX 0.4 nozzle",
+ "Xplorer Dual Gantry 0.4 nozzle",
+ "Xplorer IQEX 0.4 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.30mm Standard @Xplorer 0.6.json b/resources/profiles/Vivedino/process/0.30mm Standard @Xplorer 0.6.json
new file mode 100644
index 0000000000..4afd997862
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.30mm Standard @Xplorer 0.6.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.30mm Standard @Xplorer 0.6",
+ "inherits": "fdm_process_xplorer_common_0_6",
+ "from": "system",
+ "setting_id": "1NEAZrryKhhZNWoB",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.32",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "0",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.30",
+ "compatible_printers": [
+ "Xplorer Single 0.6 nozzle",
+ "Xplorer IDEX 0.6 nozzle",
+ "Xplorer Dual Gantry 0.6 nozzle",
+ "Xplorer IQEX 0.6 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.32mm Extra Draft @Xplorer 0.4.json b/resources/profiles/Vivedino/process/0.32mm Extra Draft @Xplorer 0.4.json
new file mode 100644
index 0000000000..21ac5b0f55
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.32mm Extra Draft @Xplorer 0.4.json
@@ -0,0 +1,27 @@
+{
+ "type": "process",
+ "name": "0.32mm Extra Draft @Xplorer 0.4",
+ "inherits": "fdm_process_xplorer_common",
+ "from": "system",
+ "setting_id": "IrvXoa4zZ1b2Y5cX",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.32",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "0",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "top_surface_line_width": "0.45",
+ "layer_height": "0.32",
+ "compatible_printers": [
+ "Xplorer Single 0.4 nozzle",
+ "Xplorer IDEX 0.4 nozzle",
+ "Xplorer Dual Gantry 0.4 nozzle",
+ "Xplorer IQEX 0.4 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.32mm Optimal @Xplorer 0.8.json b/resources/profiles/Vivedino/process/0.32mm Optimal @Xplorer 0.8.json
new file mode 100644
index 0000000000..57571e080b
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.32mm Optimal @Xplorer 0.8.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.32mm Optimal @Xplorer 0.8",
+ "inherits": "fdm_process_xplorer_common_0_8",
+ "from": "system",
+ "setting_id": "N3z9IBRaaeXwVLbl",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.32",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "0",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.32",
+ "compatible_printers": [
+ "Xplorer Single 0.8 nozzle",
+ "Xplorer IDEX 0.8 nozzle",
+ "Xplorer Dual Gantry 0.8 nozzle",
+ "Xplorer IQEX 0.8 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.36mm Draft @Xplorer 0.6.json b/resources/profiles/Vivedino/process/0.36mm Draft @Xplorer 0.6.json
new file mode 100644
index 0000000000..73783a0e5f
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.36mm Draft @Xplorer 0.6.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.36mm Draft @Xplorer 0.6",
+ "inherits": "fdm_process_xplorer_common_0_6",
+ "from": "system",
+ "setting_id": "uv3jUBdJRkJ4dWVd",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.32",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "0",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.36",
+ "compatible_printers": [
+ "Xplorer Single 0.6 nozzle",
+ "Xplorer IDEX 0.6 nozzle",
+ "Xplorer Dual Gantry 0.6 nozzle",
+ "Xplorer IQEX 0.6 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.40mm Standard @Xplorer 0.8.json b/resources/profiles/Vivedino/process/0.40mm Standard @Xplorer 0.8.json
new file mode 100644
index 0000000000..2082554b0c
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.40mm Standard @Xplorer 0.8.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.40mm Standard @Xplorer 0.8",
+ "inherits": "fdm_process_xplorer_common_0_8",
+ "from": "system",
+ "setting_id": "ZP9WXfiKDvSAjqU2",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.32",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "0",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.40",
+ "compatible_printers": [
+ "Xplorer Single 0.8 nozzle",
+ "Xplorer IDEX 0.8 nozzle",
+ "Xplorer Dual Gantry 0.8 nozzle",
+ "Xplorer IQEX 0.8 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.42mm Extra Draft @Xplorer 0.6.json b/resources/profiles/Vivedino/process/0.42mm Extra Draft @Xplorer 0.6.json
new file mode 100644
index 0000000000..9641ffb5ef
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.42mm Extra Draft @Xplorer 0.6.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.42mm Extra Draft @Xplorer 0.6",
+ "inherits": "fdm_process_xplorer_common_0_6",
+ "from": "system",
+ "setting_id": "JMbldCAibS7WnG1D",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.32",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "0",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.42",
+ "compatible_printers": [
+ "Xplorer Single 0.6 nozzle",
+ "Xplorer IDEX 0.6 nozzle",
+ "Xplorer Dual Gantry 0.6 nozzle",
+ "Xplorer IQEX 0.6 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.48mm Draft @Xplorer 0.8.json b/resources/profiles/Vivedino/process/0.48mm Draft @Xplorer 0.8.json
new file mode 100644
index 0000000000..a7942c6387
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.48mm Draft @Xplorer 0.8.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.48mm Draft @Xplorer 0.8",
+ "inherits": "fdm_process_xplorer_common_0_8",
+ "from": "system",
+ "setting_id": "OhseWRzfSjom4gC9",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.32",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "0",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.48",
+ "compatible_printers": [
+ "Xplorer Single 0.8 nozzle",
+ "Xplorer IDEX 0.8 nozzle",
+ "Xplorer Dual Gantry 0.8 nozzle",
+ "Xplorer IQEX 0.8 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/0.56mm Extra Draft @Xplorer 0.8.json b/resources/profiles/Vivedino/process/0.56mm Extra Draft @Xplorer 0.8.json
new file mode 100644
index 0000000000..065cbf975d
--- /dev/null
+++ b/resources/profiles/Vivedino/process/0.56mm Extra Draft @Xplorer 0.8.json
@@ -0,0 +1,26 @@
+{
+ "type": "process",
+ "name": "0.56mm Extra Draft @Xplorer 0.8",
+ "inherits": "fdm_process_xplorer_common_0_8",
+ "from": "system",
+ "setting_id": "EXEeYQRkvcwYeLDA",
+ "instantiation": "true",
+ "initial_layer_print_height": "0.32",
+ "inner_wall_speed": "190",
+ "internal_solid_infill_acceleration": "100%",
+ "min_skirt_length": "0",
+ "outer_wall_speed": "130",
+ "skirt_loops": "1",
+ "slowdown_for_curled_perimeters": "0",
+ "small_perimeter_speed": "50%",
+ "sparse_infill_acceleration": "100%",
+ "top_shell_layers": "4",
+ "top_solid_infill_flow_ratio": "0.87",
+ "layer_height": "0.56",
+ "compatible_printers": [
+ "Xplorer Single 0.8 nozzle",
+ "Xplorer IDEX 0.8 nozzle",
+ "Xplorer Dual Gantry 0.8 nozzle",
+ "Xplorer IQEX 0.8 nozzle"
+ ]
+}
diff --git a/resources/profiles/Vivedino/process/fdm_process_xplorer_common.json b/resources/profiles/Vivedino/process/fdm_process_xplorer_common.json
new file mode 100644
index 0000000000..c8f4cc55a7
--- /dev/null
+++ b/resources/profiles/Vivedino/process/fdm_process_xplorer_common.json
@@ -0,0 +1,265 @@
+{
+ "type": "process",
+ "name": "fdm_process_xplorer_common",
+ "inherits": "fdm_process_klipper_common",
+ "from": "system",
+ "instantiation": "false",
+ "accel_to_decel_enable": "1",
+ "accel_to_decel_factor": "50%",
+ "align_infill_direction_to_model": "0",
+ "alternate_extra_wall": "0",
+ "bottom_shell_thickness": "1",
+ "bottom_solid_infill_flow_ratio": "1",
+ "bottom_surface_density": "100%",
+ "bottom_surface_pattern": "monotonicline",
+ "bridge_acceleration": "1500",
+ "bridge_angle": "0",
+ "bridge_density": "100%",
+ "bridge_flow": "1.5",
+ "brim_ears_detection_length": "1",
+ "brim_ears_max_angle": "125",
+ "brim_type": "no_brim",
+ "calib_flowrate_topinfill_special_order": "0",
+ "counterbore_hole_bridging": "none",
+ "default_acceleration": "5000",
+ "default_jerk": "5",
+ "default_junction_deviation": "0",
+ "detect_narrow_internal_solid_infill": "0",
+ "dont_filter_internal_bridges": "limited",
+ "elefant_foot_compensation": "0.1",
+ "elefant_foot_compensation_layers": "2",
+ "enable_extra_bridge_layer": "disabled",
+ "enable_overhang_speed": "1",
+ "enable_prime_tower": "0",
+ "enforce_support_layers": "0",
+ "ensure_vertical_shell_thickness": "ensure_moderate",
+ "extra_perimeters_on_overhangs": "1",
+ "extra_solid_infills": "",
+ "extrusion_rate_smoothing_external_perimeter_only": "0",
+ "fill_multiline": "1",
+ "filter_out_gap_fill": "2",
+ "flush_into_infill": "0",
+ "flush_into_objects": "0",
+ "flush_into_support": "1",
+ "fuzzy_skin": "none",
+ "fuzzy_skin_first_layer": "0",
+ "fuzzy_skin_mode": "displacement",
+ "fuzzy_skin_noise_type": "classic",
+ "fuzzy_skin_octaves": "4",
+ "fuzzy_skin_persistence": "0.5",
+ "fuzzy_skin_point_distance": "0.8",
+ "fuzzy_skin_scale": "1",
+ "fuzzy_skin_thickness": "0.3",
+ "gap_fill_target": "nowhere",
+ "gap_infill_speed": "10",
+ "gcode_add_line_number": "0",
+ "gcode_comments": "0",
+ "gcode_label_objects": "1",
+ "hole_to_polyhole": "0",
+ "hole_to_polyhole_threshold": "0.01",
+ "hole_to_polyhole_twisted": "1",
+ "independent_support_layer_height": "1",
+ "infill_anchor": "10",
+ "infill_anchor_max": "10",
+ "infill_combination_max_layer_height": "100%",
+ "infill_jerk": "0",
+ "infill_lock_depth": "1",
+ "infill_overhang_angle": "60",
+ "infill_shift_step": "0.4",
+ "infill_wall_overlap": "20%",
+ "initial_layer_acceleration": "1000",
+ "initial_layer_jerk": "0",
+ "initial_layer_line_width": "120%",
+ "initial_layer_min_bead_width": "85%",
+ "initial_layer_travel_speed": "200",
+ "inner_wall_acceleration": "3000",
+ "inner_wall_jerk": "0",
+ "inner_wall_line_width": "110%",
+ "interlocking_beam": "0",
+ "interlocking_beam_layer_count": "2",
+ "interlocking_beam_width": "0.8",
+ "interlocking_boundary_avoidance": "2",
+ "interlocking_depth": "2",
+ "interlocking_orientation": "22.5",
+ "internal_bridge_angle": "0",
+ "internal_bridge_density": "100%",
+ "internal_bridge_flow": "1.5",
+ "internal_bridge_speed": "150%",
+ "internal_solid_infill_line_width": "120%",
+ "internal_solid_infill_pattern": "monotonicline",
+ "ironing_angle": "-1",
+ "ironing_inset": "0",
+ "ironing_pattern": "rectilinear",
+ "is_infill_first": "0",
+ "lateral_lattice_angle_1": "-45",
+ "lateral_lattice_angle_2": "45",
+ "line_width": "110%",
+ "make_overhang_printable": "0",
+ "make_overhang_printable_angle": "55",
+ "make_overhang_printable_hole_size": "0",
+ "max_bridge_length": "10",
+ "max_volumetric_extrusion_rate_slope": "0",
+ "max_volumetric_extrusion_rate_slope_segment_length": "1",
+ "min_bead_width": "85%",
+ "min_feature_size": "25%",
+ "min_length_factor": "0.5",
+ "min_width_top_surface": "0",
+ "mmu_segmented_region_interlocking_depth": "0",
+ "mmu_segmented_region_max_width": "0",
+ "notes": "",
+ "only_one_wall_first_layer": "0",
+ "only_one_wall_top": "1",
+ "ooze_prevention": "0",
+ "outer_wall_acceleration": "1000",
+ "outer_wall_jerk": "0",
+ "outer_wall_line_width": "100%",
+ "overhang_1_4_speed": "100",
+ "overhang_reverse": "0",
+ "overhang_reverse_internal_only": "0",
+ "overhang_reverse_threshold": "50%",
+ "post_process": [],
+ "precise_outer_wall": "1",
+ "precise_z_height": "0",
+ "preheat_steps": "1",
+ "preheat_time": "10",
+ "prime_tower_brim_width": "10",
+ "prime_tower_width": "30",
+ "prime_volume": "10",
+ "print_flow_ratio": "1",
+ "print_order": "default",
+ "raft_contact_distance": "0.1",
+ "raft_expansion": "1.5",
+ "raft_first_layer_density": "90%",
+ "raft_first_layer_expansion": "2",
+ "reduce_crossing_wall": "1",
+ "role_based_wipe_speed": "1",
+ "scarf_angle_threshold": "155",
+ "scarf_joint_flow_ratio": "1",
+ "scarf_joint_speed": "100%",
+ "scarf_overhang_threshold": "40%",
+ "seam_gap": "10%",
+ "seam_slope_conditional": "0",
+ "seam_slope_entire_loop": "0",
+ "seam_slope_inner_walls": "0",
+ "seam_slope_min_length": "20",
+ "seam_slope_start_height": "0",
+ "seam_slope_steps": "10",
+ "seam_slope_type": "none",
+ "single_extruder_multi_material_priming": "0",
+ "single_loop_draft_shield": "0",
+ "skeleton_infill_density": "25%",
+ "skeleton_infill_line_width": "100%",
+ "skin_infill_density": "25%",
+ "skin_infill_depth": "2",
+ "skin_infill_line_width": "100%",
+ "skirt_speed": "50",
+ "skirt_start_angle": "-135",
+ "skirt_type": "combined",
+ "slice_closing_radius": "0.049",
+ "slicing_mode": "regular",
+ "slow_down_layers": "0",
+ "small_area_infill_flow_compensation": "1",
+ "small_area_infill_flow_compensation_model": [
+ "0,0",
+ "\n0.2,0.4444",
+ "\n0.4,0.6145",
+ "\n0.6,0.7059",
+ "\n0.8,0.7619",
+ "\n1.5,0.8571",
+ "\n2,0.8889",
+ "\n3,0.9231",
+ "\n5,0.9520",
+ "\n10,1"
+ ],
+ "small_perimeter_threshold": "0",
+ "solid_infill_direction": "45",
+ "solid_infill_filament": "1",
+ "solid_infill_rotate_template": "45,135",
+ "sparse_infill_filament": "1",
+ "sparse_infill_line_width": "110%",
+ "sparse_infill_pattern": "gyroid",
+ "sparse_infill_rotate_template": "",
+ "spiral_finishing_flow_ratio": "0",
+ "spiral_mode_max_xy_smoothing": "200%",
+ "spiral_mode_smooth": "0",
+ "spiral_starting_flow_ratio": "0",
+ "staggered_inner_seams": "1",
+ "support_angle": "0",
+ "support_bottom_interface_spacing": "0.5",
+ "support_bottom_z_distance": "0.2",
+ "support_critical_regions_only": "0",
+ "support_expansion": "0",
+ "support_interface_not_for_body": "1",
+ "support_interface_pattern": "auto",
+ "support_ironing": "0",
+ "support_ironing_flow": "10%",
+ "support_ironing_pattern": "rectilinear",
+ "support_ironing_spacing": "0.1",
+ "support_line_width": "100%",
+ "support_object_first_layer_gap": "0.2",
+ "support_on_build_plate_only": "1",
+ "support_remove_small_overhang": "1",
+ "support_threshold_overlap": "50%",
+ "support_type": "tree(auto)",
+ "symmetric_infill_y_axis": "0",
+ "thick_bridges": "1",
+ "thick_internal_bridges": "1",
+ "timelapse_type": "0",
+ "top_bottom_infill_wall_overlap": "15%",
+ "top_surface_acceleration": "1000",
+ "top_surface_density": "100%",
+ "top_surface_jerk": "0",
+ "top_surface_line_width": "80%",
+ "top_surface_speed": "50",
+ "travel_acceleration": "5000",
+ "travel_jerk": "0",
+ "travel_speed": "250",
+ "travel_speed_z": "0",
+ "tree_support_adaptive_layer_height": "1",
+ "tree_support_angle_slow": "25",
+ "tree_support_auto_brim": "1",
+ "tree_support_branch_angle_organic": "40",
+ "tree_support_branch_diameter": "5",
+ "tree_support_branch_diameter_angle": "5",
+ "tree_support_branch_diameter_organic": "2",
+ "tree_support_branch_distance": "5",
+ "tree_support_branch_distance_organic": "1",
+ "tree_support_brim_width": "3",
+ "tree_support_tip_diameter": "0.8",
+ "tree_support_top_rate": "30%",
+ "wall_direction": "auto",
+ "wall_distribution_count": "1",
+ "wall_filament": "1",
+ "wall_generator": "arachne",
+ "wall_sequence": "inner wall/outer wall",
+ "wall_transition_angle": "10",
+ "wall_transition_filter_deviation": "25%",
+ "wall_transition_length": "100%",
+ "wipe_before_external_loop": "0",
+ "wipe_on_loops": "1",
+ "wipe_speed": "80%",
+ "wipe_tower_bridging": "10",
+ "wipe_tower_cone_angle": "10",
+ "wipe_tower_extra_flow": "100%",
+ "wipe_tower_extra_rib_length": "0",
+ "wipe_tower_extra_spacing": "100%",
+ "wipe_tower_filament": "0",
+ "wipe_tower_fillet_wall": "1",
+ "wipe_tower_max_purge_speed": "90",
+ "wipe_tower_rib_width": "8",
+ "wipe_tower_rotation_angle": "0",
+ "wipe_tower_wall_type": "rectangle",
+ "wiping_volumes_extruders": [
+ "70",
+ "70",
+ "70",
+ "70",
+ "70",
+ "70",
+ "70",
+ "70",
+ "70",
+ "70"
+ ],
+ "xy_hole_compensation": "0.05"
+}
diff --git a/resources/profiles/Vivedino/process/fdm_process_xplorer_common_0_6.json b/resources/profiles/Vivedino/process/fdm_process_xplorer_common_0_6.json
new file mode 100644
index 0000000000..3158e4f186
--- /dev/null
+++ b/resources/profiles/Vivedino/process/fdm_process_xplorer_common_0_6.json
@@ -0,0 +1,8 @@
+{
+ "type": "process",
+ "name": "fdm_process_xplorer_common_0_6",
+ "inherits": "fdm_process_xplorer_common",
+ "from": "system",
+ "instantiation": "false",
+ "initial_layer_print_height": "0.3"
+}
diff --git a/resources/profiles/Vivedino/process/fdm_process_xplorer_common_0_8.json b/resources/profiles/Vivedino/process/fdm_process_xplorer_common_0_8.json
new file mode 100644
index 0000000000..a6b36e2947
--- /dev/null
+++ b/resources/profiles/Vivedino/process/fdm_process_xplorer_common_0_8.json
@@ -0,0 +1,8 @@
+{
+ "type": "process",
+ "name": "fdm_process_xplorer_common_0_8",
+ "inherits": "fdm_process_xplorer_common",
+ "from": "system",
+ "instantiation": "false",
+ "initial_layer_print_height": "0.4"
+}
diff --git a/resources/shaders/110/gouraud.fs b/resources/shaders/110/gouraud.fs
index c5efeef277..50789327c5 100644
--- a/resources/shaders/110/gouraud.fs
+++ b/resources/shaders/110/gouraud.fs
@@ -26,6 +26,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform vec4 uniform_color;
diff --git a/resources/shaders/110/gouraud.vs b/resources/shaders/110/gouraud.vs
index 37be529b09..5ee685c070 100644
--- a/resources/shaders/110/gouraud.vs
+++ b/resources/shaders/110/gouraud.vs
@@ -23,6 +23,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform mat4 view_model_matrix;
@@ -77,8 +78,8 @@ void main()
// Point in homogenous coordinates.
world_pos = volume_world_matrix * vec4(v_position, 1.0);
- // z component of normal vector in world coordinate used for slope shading
- world_normal_z = slope.actived ? (normalize(slope.volume_world_normal_matrix * v_normal)).z : 0.0;
+ // dot product of world normal with up direction, used for slope shading
+ world_normal_z = slope.actived ? dot(normalize(slope.volume_world_normal_matrix * v_normal), slope.up_direction) : 0.0;
gl_Position = projection_matrix * position;
if (is_outline) {
diff --git a/resources/shaders/110/mm_gouraud.fs b/resources/shaders/110/mm_gouraud.fs
index 821af13f03..431c936e9c 100644
--- a/resources/shaders/110/mm_gouraud.fs
+++ b/resources/shaders/110/mm_gouraud.fs
@@ -37,6 +37,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform SlopeDetection slope;
@@ -85,7 +86,7 @@ void main()
color = LightBlue;
alpha = 1.0;
}
- else if( transformed_normal.z < slope.normal_z - EPSILON)
+ else if( dot(transformed_normal, slope.up_direction) < slope.normal_z - EPSILON)
{
color = color * 0.5 + LightRed * 0.5;
alpha = 1.0;
diff --git a/resources/shaders/110/mm_gouraud.vs b/resources/shaders/110/mm_gouraud.vs
index b0cea9cfd6..c54ae4bff5 100644
--- a/resources/shaders/110/mm_gouraud.vs
+++ b/resources/shaders/110/mm_gouraud.vs
@@ -24,6 +24,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform SlopeDetection slope;
void main()
diff --git a/resources/shaders/110/phong.fs b/resources/shaders/110/phong.fs
index a47a24fdea..7d1e7bfe8c 100644
--- a/resources/shaders/110/phong.fs
+++ b/resources/shaders/110/phong.fs
@@ -41,6 +41,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform vec4 uniform_color;
diff --git a/resources/shaders/110/phong.vs b/resources/shaders/110/phong.vs
index 10d36e233f..d857147c28 100644
--- a/resources/shaders/110/phong.vs
+++ b/resources/shaders/110/phong.vs
@@ -7,6 +7,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform mat4 view_model_matrix;
@@ -46,8 +47,8 @@ void main()
// Point in homogenous coordinates.
world_pos = volume_world_matrix * vec4(v_position, 1.0);
- // z component of normal vector in world coordinate used for slope shading
- world_normal_z = slope.actived ? (normalize(slope.volume_world_normal_matrix * v_normal)).z : 0.0;
+ // dot product of world normal with up direction, used for slope shading
+ world_normal_z = slope.actived ? dot(normalize(slope.volume_world_normal_matrix * v_normal), slope.up_direction) : 0.0;
gl_Position = projection_matrix * position;
if (is_outline) {
diff --git a/resources/shaders/110/texture_displacement_shaded.fs b/resources/shaders/110/texture_displacement_shaded.fs
index 4a2980cd64..93449af5d4 100644
--- a/resources/shaders/110/texture_displacement_shaded.fs
+++ b/resources/shaders/110/texture_displacement_shaded.fs
@@ -29,19 +29,11 @@ uniform vec3 palette_lab[64];
uniform vec3 palette_rgb[64];
uniform int palette_count;
uniform bool pure_only; // match against single filaments only (flat-colour image)
-// How each entry prints. A pure entry is one filament (a == b); a mix interleaves filaments a and b,
-// num parts of a in every den, and the print shows that interleave rather than the entry's average
-// colour. The fragment resolves it exactly as GLGizmoTextureDisplacement::make_mix_resolver() does
-// per triangle on the CPU, so the preview shows the pattern the bake will print.
+// The entry's two filaments, equal for a single filament - only so a mix can be told apart. An entry's
+// palette_rgb is already the colour it prints in (for a mix, its mixed filament slot's).
uniform int palette_a[64];
uniform int palette_b[64];
-uniform int palette_num[64];
-uniform int palette_den[64];
-uniform vec3 filament_rgb[16];
-uniform int filament_count;
-uniform int mix_mode; // ColorMixMode: 0 Z bands, 1 XY dither, 2 auto
-uniform float layer_height; // mm; one Z band per print layer
-uniform float dither_cell; // mm; one XY dither cell
+uniform float prefer_pure_de; // PREFER_PURE_DE: how much better than a single filament a mix must be
uniform sampler2D color_tex; // the layer's colour image, sampled at the same uv as the height
uniform bool has_color_tex;
uniform bool volume_mirrored;
@@ -80,17 +72,21 @@ varying float weight;
varying float island_active;
varying vec2 vertex_uv;
-// The cylinder's own frame, built exactly as libslic3r's project_cylindrical() builds it - including
-// the handedness, which comes out left-handed for an axis of +Z. Copied rather than "corrected", so
-// the preview wraps the texture the same way round as the bake.
+// The cylinder's own frame, built exactly as libslic3r's project_cylindrical() builds it - right
+// handed, so the angle taken from it grows anticlockwise about the axis, which seen from outside the
+// cylinder is to the viewer's right rather than mirrored.
void cylinder_frame(out vec3 up, out vec3 right, out vec3 fwd)
{
up = (length(patch_axis) > 1e-8) ? normalize(patch_axis) : vec3(0.0, 0.0, 1.0);
vec3 arbitrary = (abs(up.z) < 0.9) ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);
right = normalize(cross(up, arbitrary));
- fwd = normalize(cross(right, up));
+ fwd = normalize(cross(up, right));
}
+// Which side of a world plane a face is on, with zero counting as the positive side. Not GLSL's own
+// sign(), which returns 0 there and would collapse the coordinate onto a line.
+float box_face_sign(float n) { return n >= 0.0 ? 1.0 : -1.0; }
+
// The raw, millimetre-valued projection of `p` (a position in the texture frame), before the layer's
// tiling/rotation/aspect/offset - a term-for-term transcription of libslic3r's project_planar(),
// project_cylindrical() and project_spherical(). `n` is read by the planar mode only.
@@ -102,7 +98,7 @@ vec2 projection_raw(vec3 p, vec3 n)
vec3 rel = p - patch_center;
float x = dot(rel, right);
float y = dot(rel, fwd);
- return vec2(atan(y, x) * sqrt(x * x + y * y), dot(rel, up));
+ return vec2(atan(y, x) * sqrt(x * x + y * y), -dot(rel, up));
}
if (projection_mode == 2) { // Spherical: (longitude, latitude) * radius
vec3 rel = p - patch_center;
@@ -110,10 +106,18 @@ vec2 projection_raw(vec3 p, vec3 n)
if (radius < 1e-8)
return vec2(0.0);
vec3 dir = rel / radius;
- return vec2(atan(dir.y, dir.x), asin(clamp(dir.z, -1.0, 1.0))) * radius;
+ return vec2(atan(dir.y, dir.x), -asin(clamp(dir.z, -1.0, 1.0))) * radius;
}
- vec3 an = abs(n); // Triplanar: drop the dominant normal axis
- return (an.x >= an.y && an.x >= an.z) ? p.yz : ((an.y >= an.x && an.y >= an.z) ? p.xz : p.xy);
+ // Triplanar: drop the dominant normal axis. v is negated so the image's first pixel row (v = 0)
+ // sits at the top of the model instead of upside down, and u is flipped on the far side of each
+ // plane so the two faces sharing it are not mirror images. libslic3r's box_plane_yz() and its two
+ // siblings, term for term.
+ vec3 an = abs(n);
+ if (an.x >= an.y && an.x >= an.z)
+ return vec2(box_face_sign(n.x) * p.y, -p.z);
+ if (an.y >= an.x && an.y >= an.z)
+ return vec2(-box_face_sign(n.y) * p.x, -p.z);
+ return vec2(box_face_sign(n.z) * p.x, -p.y);
}
// The two surface directions projection_raw()'s u and v run along at `p`, plus how many raw units one
@@ -132,7 +136,7 @@ void projection_axes(vec3 p, vec3 n, out vec3 t, out vec3 b, out vec2 units_per_
vec2 xy = vec2(dot(rel, right), dot(rel, fwd));
float r = length(xy);
t = (r > 1e-6) ? (fwd * xy.x - right * xy.y) / r : right; // circumferential: u runs along it
- b = up; // v is the distance along the axis
+ b = -up; // v is the distance *against* the axis
return;
}
if (projection_mode == 2) {
@@ -141,20 +145,20 @@ void projection_axes(vec3 p, vec3 n, out vec3 t, out vec3 b, out vec2 units_per_
vec3 dir = (r > 1e-8) ? rel / r : vec3(0.0, 0.0, 1.0);
float c = length(dir.xy); // cos(latitude)
t = (c > 1e-6) ? vec3(-dir.y, dir.x, 0.0) / c : vec3(1.0, 0.0, 0.0);
- b = cross(dir, t); // increasing latitude, unit length
+ b = -cross(dir, t); // v grows away from the pole, unit length
units_per_mm = vec2(1.0 / max(c, 1e-3), 1.0);
return;
}
- vec3 an = abs(n);
- if (an.x >= an.y && an.x >= an.z) { // planar = p.yz
- t = vec3(0.0, 1.0, 0.0);
- b = vec3(0.0, 0.0, 1.0);
- } else if (an.y >= an.x && an.y >= an.z) { // planar = p.xz
- t = vec3(1.0, 0.0, 0.0);
- b = vec3(0.0, 0.0, 1.0);
- } else { // planar = p.xy
- t = vec3(1.0, 0.0, 0.0);
- b = vec3(0.0, 1.0, 0.0);
+ vec3 an = abs(n); // the same signed basis projection_raw() uses
+ if (an.x >= an.y && an.x >= an.z) { // planar = (+-y, -z)
+ t = vec3(0.0, box_face_sign(n.x), 0.0);
+ b = vec3(0.0, 0.0, -1.0);
+ } else if (an.y >= an.x && an.y >= an.z) { // planar = (+-x, -z)
+ t = vec3(-box_face_sign(n.y), 0.0, 0.0);
+ b = vec3(0.0, 0.0, -1.0);
+ } else { // planar = (+-x, -y)
+ t = vec3(box_face_sign(n.z), 0.0, 0.0);
+ b = vec3(0.0, -1.0, 0.0);
}
}
@@ -216,78 +220,16 @@ int nearest_palette_entry(vec3 rgb)
best = i;
}
}
- // The same bias make_palette_quantizer() applies (PREFER_PURE_DE = 10): a mix is an interleave, so
- // it is only worth taking when it beats the nearest single filament by a visible step. Without it
- // this picked a mix for almost every fragment - with four filaments the palette is 4 pure entries
- // against 30 mixes - while the bake picked a single filament for most of them, so the preview
- // interleaved the whole wall where the bake interleaves only patches. Compared on the distances
- // rather than their squares, so the threshold means the same thing as it does on the CPU (up to
- // CIE76 against CIEDE2000, the approximation already noted above).
- if (best_pure >= 0 && palette_a[best] != palette_b[best] && sqrt(bd_pure) - sqrt(bd) < 10.0)
+ // The same bias make_palette_quantizer() applies: a mix is an interleave, so it is only worth taking
+ // when it beats the nearest single filament by a visible step - otherwise the preview shows mixes
+ // where the bake prints a single filament. Compared on the distances rather than their squares, so
+ // the margin means the same thing as it does on the CPU (up to CIE76 against CIEDE2000, the
+ // approximation already noted above).
+ if (best_pure >= 0 && palette_a[best] != palette_b[best] && sqrt(bd_pure) - sqrt(bd) < prefer_pure_de)
best = best_pure;
return best;
}
-// One 2x2 Bayer cell, {0, 2; 3, 1}, for x and y in {0, 1}.
-float bayer2(float x, float y) { return 2.0 * x + 3.0 * y - 4.0 * x * y; }
-
-// The colour the printer lays down at world point `pos` for palette entry `index`: its filament, or
-// for a mix whichever of its two filaments this point falls on. Mirrors make_mix_resolver() on the
-// CPU, floors on the band/cell size included. All the modular arithmetic is done in floats with
-// mod(), which wraps negative coordinates the way the CPU's ((v % n) + n) % n does and needs no
-// integer % (not available on every GLSL 1.10 target).
-vec3 printed_color(int index, vec3 pos, vec3 normal, vec3 footprint)
-{
- int a = palette_a[index];
- int b = palette_b[index];
- if (a < 0 || a >= filament_count || b < 0 || b >= filament_count)
- return palette_rgb[index]; // no filament to resolve to: the entry's own colour
- if (a == b)
- return filament_rgb[a];
- float num = float(palette_num[index]);
- float den = float(palette_den[index]);
- // Auto: bands where the surface is steeper than ~45 degrees, the dominant filament elsewhere.
- if (mix_mode == 2 && abs(normal.z) >= 0.7)
- return filament_rgb[(num * 2.0 >= den) ? a : b];
-
- // Pre-filter. The interleave is an ordered dither the eye is meant to blend away, and no dither
- // blends when it is drawn at less than a few pixels per period - it aliases, which is what turned
- // every upright wall into horizontal streaks: the Z band cycle is den * layer_height (around a
- // millimetre), and every pixel of a row on a vertical wall shares one z, so each row came out as a
- // 1-bit threshold of the image at that row's phase. `footprint` is mm of world position per pixel,
- // so this is zoom- and resolution-correct rather than a tuned constant: where the print's own
- // pattern is finer than this view can resolve, show what the print looks like from here, which is
- // the entry's perceptual average. The Normal view remains where the per-facet truth lives.
- float period = (mix_mode == 1) ? 2.0 * max(dither_cell, 0.01) : den * max(layer_height, 0.01);
- float px = (mix_mode == 1) ? max(footprint.x, footprint.y) : footprint.z;
- float sharp = clamp(period / max(4.0 * px, 1e-6) - 0.5, 0.0, 1.0);
- if (sharp <= 0.0)
- return palette_rgb[index];
-
- vec3 picked;
- if (mix_mode == 1) {
- // Ordered 4x4 Bayer over floor(x / cell), floor(y / cell). The CPU's table
- // 0 8 2 10
- // 12 4 14 6
- // 3 11 1 9
- // 15 7 13 5
- // is 4 * bayer2(x % 2, y % 2) + bayer2(x / 2, y / 2), which needs no array (GLSL 1.10 has
- // no constant arrays).
- float cell = max(dither_cell, 0.01);
- float gx = mod(floor(pos.x / cell), 4.0);
- float gy = mod(floor(pos.y / cell), 4.0);
- float bayer = 4.0 * bayer2(mod(gx, 2.0), mod(gy, 2.0)) + bayer2(floor(gx / 2.0), floor(gy / 2.0));
- picked = filament_rgb[(num / den > (bayer + 0.5) / 16.0) ? a : b];
- } else {
- // Z bands: one per band height, the band's phase in the a/b cycle picks the filament. Both
- // operands are integer-valued, so the half keeps "phase < num" exact under float rounding.
- float slot = floor(pos.z / max(layer_height, 0.01));
- float phase = mod(slot, den);
- picked = filament_rgb[(phase < num - 0.5) ? a : b];
- }
- return mix(palette_rgb[index], picked, sharp);
-}
-
void main()
{
if (any(lessThan(clipping_planes_dots, ZERO)))
@@ -296,9 +238,6 @@ void main()
// World millimetres throughout, like the bake - see the 140 variant.
vec3 triangle_normal = normalize(cross(dFdx(world_pos.xyz), dFdy(world_pos.xyz)));
vec3 tex_pos = world_pos.xyz - tex_anchor; // the frame the texture is projected in, as the bake does
- // World mm per pixel, for pre-filtering the interleave in printed_color(). Taken here because the
- // albedo branch at the end of main() is non-uniform control flow, where derivatives are undefined.
- vec3 pos_fwidth = fwidth(world_pos.xyz);
if (volume_mirrored)
triangle_normal = -triangle_normal;
@@ -410,16 +349,11 @@ void main()
NdotL = max(dot(eye_normal, LIGHT_FRONT_DIR), 0.0);
intensity.x += NdotL * LIGHT_FRONT_DIFFUSE;
- // Diffuse albedo: the image's colour at this fragment, snapped to the nearest printable colour -
- // and, where that is a mix, the filament the interleave puts here, so the pattern that prints shows.
+ // Diffuse albedo: the image's colour at this fragment, snapped to the nearest printable colour.
// Only the albedo - the specular term (intensity.y) stays white - so a coloured fragment reads as
// the same material under the same light, and the relief this preview exists to show is unaffected.
vec3 albedo = uniform_color.rgb;
if (palette_count > 0 && has_color_tex && have_uv && weight > 0.0)
- // tex_pos, not world_pos: the bake resolves the interleave in the bake frame (world
- // orientation and scale about the volume's origin, see texture_displacement_bake_frame()), so
- // measuring z from the bed instead shifted the band phase by the volume origin's height - a
- // different filament in the same place than the bake produces.
- albedo = printed_color(nearest_palette_entry(texture2D(color_tex, color_uv).rgb), tex_pos, triangle_normal, pos_fwidth);
+ albedo = palette_rgb[nearest_palette_entry(texture2D(color_tex, color_uv).rgb)];
gl_FragColor = vec4(vec3(intensity.y) + albedo * intensity.x, uniform_color.a);
}
diff --git a/resources/shaders/110/texture_displacement_uvcheck.fs b/resources/shaders/110/texture_displacement_uvcheck.fs
index f9e998adc2..37fd1826f2 100644
--- a/resources/shaders/110/texture_displacement_uvcheck.fs
+++ b/resources/shaders/110/texture_displacement_uvcheck.fs
@@ -36,14 +36,20 @@ varying vec4 world_pos;
varying float distortion;
varying vec2 vertex_uv;
+// Right handed (up x right), like libslic3r's project_cylindrical(), so the angle taken from it grows
+// anticlockwise about the axis - to the viewer's right when seen from outside the cylinder.
void cylinder_frame(out vec3 up, out vec3 right, out vec3 fwd)
{
up = (length(patch_axis) > 1e-8) ? normalize(patch_axis) : vec3(0.0, 0.0, 1.0);
vec3 arbitrary = (abs(up.z) < 0.9) ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);
right = normalize(cross(up, arbitrary));
- fwd = normalize(cross(right, up));
+ fwd = normalize(cross(up, right));
}
+// Which side of a world plane a face is on, with zero counting as the positive side. Not GLSL's own
+// sign(), which returns 0 there and would collapse the coordinate onto a line.
+float box_face_sign(float n) { return n >= 0.0 ? 1.0 : -1.0; }
+
// Term for term libslic3r's project_planar() / project_cylindrical() / project_spherical(), in mm.
vec2 projection_raw(vec3 p, vec3 n)
{
@@ -53,7 +59,7 @@ vec2 projection_raw(vec3 p, vec3 n)
vec3 rel = p - patch_center;
float x = dot(rel, right);
float y = dot(rel, fwd);
- return vec2(atan(y, x) * sqrt(x * x + y * y), dot(rel, up));
+ return vec2(atan(y, x) * sqrt(x * x + y * y), -dot(rel, up));
}
if (projection_mode == 2) {
vec3 rel = p - patch_center;
@@ -61,10 +67,16 @@ vec2 projection_raw(vec3 p, vec3 n)
if (radius < 1e-8)
return vec2(0.0);
vec3 dir = rel / radius;
- return vec2(atan(dir.y, dir.x), asin(clamp(dir.z, -1.0, 1.0))) * radius;
+ return vec2(atan(dir.y, dir.x), -asin(clamp(dir.z, -1.0, 1.0))) * radius;
}
+ // v negated so the image's first pixel row sits at the top of the model, u flipped on the far side
+ // of each plane so the two faces sharing it are not mirror images - see libslic3r's box_plane_yz().
vec3 an = abs(n);
- return (an.x >= an.y && an.x >= an.z) ? p.yz : ((an.y >= an.x && an.y >= an.z) ? p.xz : p.xy);
+ if (an.x >= an.y && an.x >= an.z)
+ return vec2(box_face_sign(n.x) * p.y, -p.z);
+ if (an.y >= an.x && an.y >= an.z)
+ return vec2(-box_face_sign(n.y) * p.x, -p.z);
+ return vec2(box_face_sign(n.z) * p.x, -p.y);
}
vec2 project_uv(vec3 p, vec3 n)
diff --git a/resources/shaders/140/gouraud.fs b/resources/shaders/140/gouraud.fs
index 7b315f90c0..f609495597 100644
--- a/resources/shaders/140/gouraud.fs
+++ b/resources/shaders/140/gouraud.fs
@@ -29,6 +29,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform vec4 uniform_color;
diff --git a/resources/shaders/140/gouraud.vs b/resources/shaders/140/gouraud.vs
index 11fc4b70c8..7f753a3059 100644
--- a/resources/shaders/140/gouraud.vs
+++ b/resources/shaders/140/gouraud.vs
@@ -23,6 +23,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform mat4 view_model_matrix;
@@ -77,8 +78,8 @@ void main()
// Point in homogenous coordinates.
world_pos = volume_world_matrix * vec4(v_position, 1.0);
- // z component of normal vector in world coordinate used for slope shading
- world_normal_z = slope.actived ? (normalize(slope.volume_world_normal_matrix * v_normal)).z : 0.0;
+ // dot product of world normal with up direction, used for slope shading
+ world_normal_z = slope.actived ? dot(normalize(slope.volume_world_normal_matrix * v_normal), slope.up_direction) : 0.0;
gl_Position = projection_matrix * position;
if (is_outline) {
diff --git a/resources/shaders/140/mm_gouraud.fs b/resources/shaders/140/mm_gouraud.fs
index c5fe86efc5..7c77d5565e 100644
--- a/resources/shaders/140/mm_gouraud.fs
+++ b/resources/shaders/140/mm_gouraud.fs
@@ -37,6 +37,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform SlopeDetection slope;
@@ -87,7 +88,7 @@ void main()
color = LightBlue;
alpha = 1.0;
}
- else if( transformed_normal.z < slope.normal_z - EPSILON)
+ else if( dot(transformed_normal, slope.up_direction) < slope.normal_z - EPSILON)
{
color = color * 0.5 + LightRed * 0.5;
alpha = 1.0;
diff --git a/resources/shaders/140/mm_gouraud.vs b/resources/shaders/140/mm_gouraud.vs
index b191e35fa8..191613f957 100644
--- a/resources/shaders/140/mm_gouraud.vs
+++ b/resources/shaders/140/mm_gouraud.vs
@@ -24,6 +24,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform SlopeDetection slope;
void main()
diff --git a/resources/shaders/140/phong.fs b/resources/shaders/140/phong.fs
index 809621b76d..4cfae1e03e 100644
--- a/resources/shaders/140/phong.fs
+++ b/resources/shaders/140/phong.fs
@@ -44,6 +44,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform vec4 uniform_color;
diff --git a/resources/shaders/140/phong.vs b/resources/shaders/140/phong.vs
index c7570edb95..7120b62c66 100644
--- a/resources/shaders/140/phong.vs
+++ b/resources/shaders/140/phong.vs
@@ -7,6 +7,7 @@ struct SlopeDetection
bool actived;
float normal_z;
mat3 volume_world_normal_matrix;
+ vec3 up_direction;
};
uniform mat4 view_model_matrix;
@@ -46,8 +47,8 @@ void main()
// Point in homogenous coordinates.
world_pos = volume_world_matrix * vec4(v_position, 1.0);
- // z component of normal vector in world coordinate used for slope shading
- world_normal_z = slope.actived ? (normalize(slope.volume_world_normal_matrix * v_normal)).z : 0.0;
+ // dot product of world normal with up direction, used for slope shading
+ world_normal_z = slope.actived ? dot(normalize(slope.volume_world_normal_matrix * v_normal), slope.up_direction) : 0.0;
gl_Position = projection_matrix * position;
if (is_outline) {
diff --git a/resources/shaders/140/texture_displacement_shaded.fs b/resources/shaders/140/texture_displacement_shaded.fs
index 1d8bee10fa..9398b21102 100644
--- a/resources/shaders/140/texture_displacement_shaded.fs
+++ b/resources/shaders/140/texture_displacement_shaded.fs
@@ -88,19 +88,11 @@ uniform vec3 palette_lab[64];
uniform vec3 palette_rgb[64];
uniform int palette_count;
uniform bool pure_only; // match against single filaments only (flat-colour image)
-// How each entry prints. A pure entry is one filament (a == b); a mix interleaves filaments a and b,
-// num parts of a in every den, and the print shows that interleave rather than the entry's average
-// colour. The fragment resolves it exactly as GLGizmoTextureDisplacement::make_mix_resolver() does
-// per triangle on the CPU, so the preview shows the pattern the bake will print.
+// The entry's two filaments, equal for a single filament - only so a mix can be told apart. An entry's
+// palette_rgb is already the colour it prints in (for a mix, its mixed filament slot's).
uniform int palette_a[64];
uniform int palette_b[64];
-uniform int palette_num[64];
-uniform int palette_den[64];
-uniform vec3 filament_rgb[16];
-uniform int filament_count;
-uniform int mix_mode; // ColorMixMode: 0 Z bands, 1 XY dither, 2 auto
-uniform float layer_height; // mm; one Z band per print layer
-uniform float dither_cell; // mm; one XY dither cell
+uniform float prefer_pure_de; // PREFER_PURE_DE: how much better than a single filament a mix must be
uniform sampler2D color_tex; // the layer's colour image, sampled at the same uv as the height
uniform bool has_color_tex;
uniform bool volume_mirrored;
@@ -146,17 +138,21 @@ in vec2 vertex_uv;
out vec4 out_color;
-// The cylinder's own frame, built exactly as libslic3r's project_cylindrical() builds it - including
-// the handedness, which comes out left-handed for an axis of +Z. Copied rather than "corrected", so
-// the preview wraps the texture the same way round as the bake.
+// The cylinder's own frame, built exactly as libslic3r's project_cylindrical() builds it - right
+// handed, so the angle taken from it grows anticlockwise about the axis, which seen from outside the
+// cylinder is to the viewer's right rather than mirrored.
void cylinder_frame(out vec3 up, out vec3 right, out vec3 fwd)
{
up = (length(patch_axis) > 1e-8) ? normalize(patch_axis) : vec3(0.0, 0.0, 1.0);
vec3 arbitrary = (abs(up.z) < 0.9) ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);
right = normalize(cross(up, arbitrary));
- fwd = normalize(cross(right, up));
+ fwd = normalize(cross(up, right));
}
+// Which side of a world plane a face is on, with zero counting as the positive side. Not GLSL's own
+// sign(), which returns 0 there and would collapse the coordinate onto a line.
+float box_face_sign(float n) { return n >= 0.0 ? 1.0 : -1.0; }
+
// The raw, millimetre-valued projection of `p` (a position in the texture frame), before the layer's
// tiling/rotation/aspect/offset - a term-for-term transcription of libslic3r's project_planar(),
// project_cylindrical() and project_spherical(). `n` is read by the planar mode only.
@@ -168,7 +164,7 @@ vec2 projection_raw(vec3 p, vec3 n)
vec3 rel = p - patch_center;
float x = dot(rel, right);
float y = dot(rel, fwd);
- return vec2(atan(y, x) * sqrt(x * x + y * y), dot(rel, up));
+ return vec2(atan(y, x) * sqrt(x * x + y * y), -dot(rel, up));
}
if (projection_mode == 2) { // Spherical: (longitude, latitude) * radius
vec3 rel = p - patch_center;
@@ -176,10 +172,18 @@ vec2 projection_raw(vec3 p, vec3 n)
if (radius < 1e-8)
return vec2(0.0);
vec3 dir = rel / radius;
- return vec2(atan(dir.y, dir.x), asin(clamp(dir.z, -1.0, 1.0))) * radius;
+ return vec2(atan(dir.y, dir.x), -asin(clamp(dir.z, -1.0, 1.0))) * radius;
}
- vec3 an = abs(n); // Triplanar: drop the dominant normal axis
- return (an.x >= an.y && an.x >= an.z) ? p.yz : ((an.y >= an.x && an.y >= an.z) ? p.xz : p.xy);
+ // Triplanar: drop the dominant normal axis. v is negated so the image's first pixel row (v = 0)
+ // sits at the top of the model instead of upside down, and u is flipped on the far side of each
+ // plane so the two faces sharing it are not mirror images. libslic3r's box_plane_yz() and its two
+ // siblings, term for term.
+ vec3 an = abs(n);
+ if (an.x >= an.y && an.x >= an.z)
+ return vec2(box_face_sign(n.x) * p.y, -p.z);
+ if (an.y >= an.x && an.y >= an.z)
+ return vec2(-box_face_sign(n.y) * p.x, -p.z);
+ return vec2(box_face_sign(n.z) * p.x, -p.y);
}
// The two surface directions projection_raw()'s u and v run along at `p`, plus how many raw units one
@@ -198,7 +202,7 @@ void projection_axes(vec3 p, vec3 n, out vec3 t, out vec3 b, out vec2 units_per_
vec2 xy = vec2(dot(rel, right), dot(rel, fwd));
float r = length(xy);
t = (r > 1e-6) ? (fwd * xy.x - right * xy.y) / r : right; // circumferential: u runs along it
- b = up; // v is the distance along the axis
+ b = -up; // v is the distance *against* the axis
return;
}
if (projection_mode == 2) {
@@ -207,20 +211,20 @@ void projection_axes(vec3 p, vec3 n, out vec3 t, out vec3 b, out vec2 units_per_
vec3 dir = (r > 1e-8) ? rel / r : vec3(0.0, 0.0, 1.0);
float c = length(dir.xy); // cos(latitude)
t = (c > 1e-6) ? vec3(-dir.y, dir.x, 0.0) / c : vec3(1.0, 0.0, 0.0);
- b = cross(dir, t); // increasing latitude, unit length
+ b = -cross(dir, t); // v grows away from the pole, unit length
units_per_mm = vec2(1.0 / max(c, 1e-3), 1.0);
return;
}
- vec3 an = abs(n);
- if (an.x >= an.y && an.x >= an.z) { // planar = p.yz
- t = vec3(0.0, 1.0, 0.0);
- b = vec3(0.0, 0.0, 1.0);
- } else if (an.y >= an.x && an.y >= an.z) { // planar = p.xz
- t = vec3(1.0, 0.0, 0.0);
- b = vec3(0.0, 0.0, 1.0);
- } else { // planar = p.xy
- t = vec3(1.0, 0.0, 0.0);
- b = vec3(0.0, 1.0, 0.0);
+ vec3 an = abs(n); // the same signed basis projection_raw() uses
+ if (an.x >= an.y && an.x >= an.z) { // planar = (+-y, -z)
+ t = vec3(0.0, box_face_sign(n.x), 0.0);
+ b = vec3(0.0, 0.0, -1.0);
+ } else if (an.y >= an.x && an.y >= an.z) { // planar = (+-x, -z)
+ t = vec3(-box_face_sign(n.y), 0.0, 0.0);
+ b = vec3(0.0, 0.0, -1.0);
+ } else { // planar = (+-x, -y)
+ t = vec3(box_face_sign(n.z), 0.0, 0.0);
+ b = vec3(0.0, -1.0, 0.0);
}
}
@@ -282,78 +286,16 @@ int nearest_palette_entry(vec3 rgb)
best = i;
}
}
- // The same bias make_palette_quantizer() applies (PREFER_PURE_DE = 10): a mix is an interleave, so
- // it is only worth taking when it beats the nearest single filament by a visible step. Without it
- // this picked a mix for almost every fragment - with four filaments the palette is 4 pure entries
- // against 30 mixes - while the bake picked a single filament for most of them, so the preview
- // interleaved the whole wall where the bake interleaves only patches. Compared on the distances
- // rather than their squares, so the threshold means the same thing as it does on the CPU (up to
- // CIE76 against CIEDE2000, the approximation already noted above).
- if (best_pure >= 0 && palette_a[best] != palette_b[best] && sqrt(bd_pure) - sqrt(bd) < 10.0)
+ // The same bias make_palette_quantizer() applies: a mix is an interleave, so it is only worth taking
+ // when it beats the nearest single filament by a visible step - otherwise the preview shows mixes
+ // where the bake prints a single filament. Compared on the distances rather than their squares, so
+ // the margin means the same thing as it does on the CPU (up to CIE76 against CIEDE2000, the
+ // approximation already noted above).
+ if (best_pure >= 0 && palette_a[best] != palette_b[best] && sqrt(bd_pure) - sqrt(bd) < prefer_pure_de)
best = best_pure;
return best;
}
-// One 2x2 Bayer cell, {0, 2; 3, 1}, for x and y in {0, 1}.
-float bayer2(float x, float y) { return 2.0 * x + 3.0 * y - 4.0 * x * y; }
-
-// The colour the printer lays down at world point `pos` for palette entry `index`: its filament, or
-// for a mix whichever of its two filaments this point falls on. Mirrors make_mix_resolver() on the
-// CPU, floors on the band/cell size included. All the modular arithmetic is done in floats with
-// mod(), which wraps negative coordinates the way the CPU's ((v % n) + n) % n does and needs no
-// integer % (not available on every GLSL 1.10 target).
-vec3 printed_color(int index, vec3 pos, vec3 normal, vec3 footprint)
-{
- int a = palette_a[index];
- int b = palette_b[index];
- if (a < 0 || a >= filament_count || b < 0 || b >= filament_count)
- return palette_rgb[index]; // no filament to resolve to: the entry's own colour
- if (a == b)
- return filament_rgb[a];
- float num = float(palette_num[index]);
- float den = float(palette_den[index]);
- // Auto: bands where the surface is steeper than ~45 degrees, the dominant filament elsewhere.
- if (mix_mode == 2 && abs(normal.z) >= 0.7)
- return filament_rgb[(num * 2.0 >= den) ? a : b];
-
- // Pre-filter. The interleave is an ordered dither the eye is meant to blend away, and no dither
- // blends when it is drawn at less than a few pixels per period - it aliases, which is what turned
- // every upright wall into horizontal streaks: the Z band cycle is den * layer_height (around a
- // millimetre), and every pixel of a row on a vertical wall shares one z, so each row came out as a
- // 1-bit threshold of the image at that row's phase. `footprint` is mm of world position per pixel,
- // so this is zoom- and resolution-correct rather than a tuned constant: where the print's own
- // pattern is finer than this view can resolve, show what the print looks like from here, which is
- // the entry's perceptual average. The Normal view remains where the per-facet truth lives.
- float period = (mix_mode == 1) ? 2.0 * max(dither_cell, 0.01) : den * max(layer_height, 0.01);
- float px = (mix_mode == 1) ? max(footprint.x, footprint.y) : footprint.z;
- float sharp = clamp(period / max(4.0 * px, 1e-6) - 0.5, 0.0, 1.0);
- if (sharp <= 0.0)
- return palette_rgb[index];
-
- vec3 picked;
- if (mix_mode == 1) {
- // Ordered 4x4 Bayer over floor(x / cell), floor(y / cell). The CPU's table
- // 0 8 2 10
- // 12 4 14 6
- // 3 11 1 9
- // 15 7 13 5
- // is 4 * bayer2(x % 2, y % 2) + bayer2(x / 2, y / 2), which needs no array (GLSL 1.10 has
- // no constant arrays).
- float cell = max(dither_cell, 0.01);
- float gx = mod(floor(pos.x / cell), 4.0);
- float gy = mod(floor(pos.y / cell), 4.0);
- float bayer = 4.0 * bayer2(mod(gx, 2.0), mod(gy, 2.0)) + bayer2(floor(gx / 2.0), floor(gy / 2.0));
- picked = filament_rgb[(num / den > (bayer + 0.5) / 16.0) ? a : b];
- } else {
- // Z bands: one per band height, the band's phase in the a/b cycle picks the filament. Both
- // operands are integer-valued, so the half keeps "phase < num" exact under float rounding.
- float slot = floor(pos.z / max(layer_height, 0.01));
- float phase = mod(slot, den);
- picked = filament_rgb[(phase < num - 0.5) ? a : b];
- }
- return mix(palette_rgb[index], picked, sharp);
-}
-
void main()
{
if (any(lessThan(clipping_planes_dots, ZERO)))
@@ -364,9 +306,6 @@ void main()
// world position and perturb the world normal.
vec3 triangle_normal = normalize(cross(dFdx(world_pos.xyz), dFdy(world_pos.xyz)));
vec3 tex_pos = world_pos.xyz - tex_anchor; // the frame the texture is projected in, as the bake does
- // World mm per pixel, for pre-filtering the interleave in printed_color(). Taken here because the
- // albedo branch at the end of main() is non-uniform control flow, where derivatives are undefined.
- vec3 pos_fwidth = fwidth(world_pos.xyz);
if (volume_mirrored)
triangle_normal = -triangle_normal;
@@ -498,16 +437,11 @@ void main()
NdotL = max(dot(eye_normal, LIGHT_FRONT_DIR), 0.0);
intensity.x += NdotL * LIGHT_FRONT_DIFFUSE;
- // Diffuse albedo: the image's colour at this fragment, snapped to the nearest printable colour -
- // and, where that is a mix, the filament the interleave puts here, so the pattern that prints shows.
+ // Diffuse albedo: the image's colour at this fragment, snapped to the nearest printable colour.
// Only the albedo - the specular term (intensity.y) stays white - so a coloured fragment reads as
// the same material under the same light, and the relief this preview exists to show is unaffected.
vec3 albedo = uniform_color.rgb;
if (palette_count > 0 && has_color_tex && have_uv && weight > 0.0)
- // tex_pos, not world_pos: the bake resolves the interleave in the bake frame (world
- // orientation and scale about the volume's origin, see texture_displacement_bake_frame()), so
- // measuring z from the bed instead shifted the band phase by the volume origin's height - a
- // different filament in the same place than the bake produces.
- albedo = printed_color(nearest_palette_entry(texture(color_tex, color_uv).rgb), tex_pos, triangle_normal, pos_fwidth);
+ albedo = palette_rgb[nearest_palette_entry(texture(color_tex, color_uv).rgb)];
out_color = vec4(vec3(intensity.y) + albedo * intensity.x, uniform_color.a);
}
diff --git a/resources/shaders/140/texture_displacement_uvcheck.fs b/resources/shaders/140/texture_displacement_uvcheck.fs
index e6fc8036da..34f80df2bd 100644
--- a/resources/shaders/140/texture_displacement_uvcheck.fs
+++ b/resources/shaders/140/texture_displacement_uvcheck.fs
@@ -47,14 +47,20 @@ in vec2 vertex_uv;
out vec4 out_color;
+// Right handed (up x right), like libslic3r's project_cylindrical(), so the angle taken from it grows
+// anticlockwise about the axis - to the viewer's right when seen from outside the cylinder.
void cylinder_frame(out vec3 up, out vec3 right, out vec3 fwd)
{
up = (length(patch_axis) > 1e-8) ? normalize(patch_axis) : vec3(0.0, 0.0, 1.0);
vec3 arbitrary = (abs(up.z) < 0.9) ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);
right = normalize(cross(up, arbitrary));
- fwd = normalize(cross(right, up));
+ fwd = normalize(cross(up, right));
}
+// Which side of a world plane a face is on, with zero counting as the positive side. Not GLSL's own
+// sign(), which returns 0 there and would collapse the coordinate onto a line.
+float box_face_sign(float n) { return n >= 0.0 ? 1.0 : -1.0; }
+
// Term for term libslic3r's project_planar() / project_cylindrical() / project_spherical(), in mm.
vec2 projection_raw(vec3 p, vec3 n)
{
@@ -64,7 +70,7 @@ vec2 projection_raw(vec3 p, vec3 n)
vec3 rel = p - patch_center;
float x = dot(rel, right);
float y = dot(rel, fwd);
- return vec2(atan(y, x) * sqrt(x * x + y * y), dot(rel, up));
+ return vec2(atan(y, x) * sqrt(x * x + y * y), -dot(rel, up));
}
if (projection_mode == 2) {
vec3 rel = p - patch_center;
@@ -72,10 +78,16 @@ vec2 projection_raw(vec3 p, vec3 n)
if (radius < 1e-8)
return vec2(0.0);
vec3 dir = rel / radius;
- return vec2(atan(dir.y, dir.x), asin(clamp(dir.z, -1.0, 1.0))) * radius;
+ return vec2(atan(dir.y, dir.x), -asin(clamp(dir.z, -1.0, 1.0))) * radius;
}
+ // v negated so the image's first pixel row sits at the top of the model, u flipped on the far side
+ // of each plane so the two faces sharing it are not mirror images - see libslic3r's box_plane_yz().
vec3 an = abs(n);
- return (an.x >= an.y && an.x >= an.z) ? p.yz : ((an.y >= an.x && an.y >= an.z) ? p.xz : p.xy);
+ if (an.x >= an.y && an.x >= an.z)
+ return vec2(box_face_sign(n.x) * p.y, -p.z);
+ if (an.y >= an.x && an.y >= an.z)
+ return vec2(-box_face_sign(n.y) * p.x, -p.z);
+ return vec2(box_face_sign(n.z) * p.x, -p.y);
}
vec2 project_uv(vec3 p, vec3 n)
diff --git a/resources/web/data/text.js b/resources/web/data/text.js
deleted file mode 100644
index 95342acdaf..0000000000
--- a/resources/web/data/text.js
+++ /dev/null
@@ -1,1778 +0,0 @@
-var LangText = {
- en: {
- t1: "Welcome to Orca Slicer",
- t2: "Orca Slicer will be setup in several steps. Let's start!",
- t3: "User Agreement",
- t4: "Disagree",
- t5: "Agree",
- t6: "We kindly request your help to improve everyone's printing. Come and Join our Customer Experience Improvement Program",
- t7: "Join our Customer Experience Improvement Program",
- t8: "Back",
- t9: "Next",
- t10: "Printer Selection",
- t11: "All",
- t12: "Clear all",
- t13: "mm nozzle",
- t14: "Filament Selection",
- t15: "Printer",
- t16: "Filament type",
- t17: "Vendor",
- t18: "Error",
- t19: "At least one filament must be selected.",
- t20: "Do you want to use default filament ?",
- t21: "Yes",
- t22: "No",
- t23: "Release note",
- t24: "Get Started",
- t25: "Finish",
- t26: "Login",
- t27: "Register",
- t28: "Recent",
- t29: "Mall",
- t30: "Manual",
- t31: "New Project",
- t32: "Create new project",
- t33: "Open Project",
- t34: "hotspot",
- t35: "Recently opened",
- t36: "OK",
- t37: "At least one printer must be selected.",
- t38: "Cancel",
- t39: "Confirm",
- t40: "Network disconnect, please check and try again later.",
- t47: "Please select your login region",
- t48: "Asia-Pacific",
- t49: "China",
- t50: "Log out",
- t52: "Skip",
- t53: "Join",
- t54: "In the 3D Printing community, we learn from each other's successes and failures to adjust our own slicing parameters and settings. Orca Slicer follows the same principle and uses machine learning to improve its performance from the successes and failures of the vast number of prints by our users. We are training Orca Slicer to be smarter by feeding them the real-world data. If you are willing, this service will access information from your error logs and usage logs, which may include information described in ",
- t55: "Privacy Policy",
- t56: ". We will not collect any Personal Data by which an individual can be identified directly or indirectly, including without limitation names, addresses, payment information, or phone numbers. By enabling this service, you agree to these terms and the statement about Privacy Policy.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Europe",
- t61: "North America",
- t62: "Others",
- t63: "After changing the region, your account will be logged out. Please log in again later.",
- t64: "Proprietary Plugins",
- t65: "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk.",
- t66: "Full remote control",
- t67: "Liveview streaming",
- t68: "User data synchronization",
- t69: "Install Bambu Network plug-in",
- t70: "",
- t71: "Downloading",
- t72: "Downloading failed",
- t73: "Installation successful.",
- t74: "Restart",
- t75: "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers.",
- t76: "Bambu Network plug-in not detected. Click ",
- t77: "here",
- t78: " to install it.",
- t79: "Failed to install plug-in. ",
- t80: "Try the following steps:",
- t81: "1, Click ",
- t82: " to open the plug-in directory",
- t83: "2, Close all open Orca Slicer",
- t84: "3, Delete all files under the plug-in directory",
- t85: "4, Reopen Orca Slicer and install the plug-in again",
- t86: "Close",
- t87: "User Manual",
- t88: "Remove",
- t89: "Open Containing Folder",
- t90: "3D Model",
- t91: "Download 3D models",
- t92: "Create by",
- t93: "Remixed by",
- t94: "Shared by",
- t95: "Model Information",
- t96: "Accessories",
- t97: "Profile Information",
- t98: "Model name",
- t100: "Model description",
- t101: "BOM",
- t102: "Assembly Guide",
- t103: "Other",
- t104: "Profile name",
- t105: "Profile Author",
- t106: "Profile description",
- t107: "Online Models",
- t108: "MORE",
- t109: "System Filaments",
- t110: "Custom Filaments",
- t111: "Create New",
- t112: "Join the Program",
- t113: "You may change your choice in preference anytime.",
- t126: "Loading……",
- orca1: "Edit Project Info",
- orca2: "No model information",
- orca3: "Stealth Mode",
- orca4: "This disables all cloud features, including Orca Cloud profile syncing. Users who prefer to work entirely offline can enable this option.",
- orca5: "Enable Stealth Mode.",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- orca12: "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud.",
- },
- ca_ES: {
- t1: "Benvingut a Orca Slicer",
- t2: "Orca Slicer es configurarà en diversos passos. Comencem!",
- t3: "Acord de l'Usuari",
- t4: "No accepto",
- t5: "Accepto",
- t6: "Sol·licitem la vostra ajuda per millorar la impressió de tothom. Vine i uneix-te al nostre Programa de Millora de l'Experiència del Client",
- t7: "Uneix-te al nostre Programa de Millora de l'Experiència del Client",
- t8: "Enrere",
- t9: "Següent",
- t10: "Selecció d'Impressora",
- t11: "Totes",
- t12: "Netejar tot",
- t13: "mm broquet",
- t14: "Selecció de Filament",
- t15: "Impressora",
- t16: "Tipus de filament",
- t17: "Proveïdor",
- t18: "Error",
- t19: "S'ha de seleccionar almenys un filament.",
- t20: "Vols utilitzar el filament per defecte?",
- t21: "sí",
- t22: "no",
- t23: "Nota de llançament",
- t24: "Comença",
- t25: "Finalitzar",
- t26: "Iniciar sessió",
- t27: "Registrar",
- t28: "Recent",
- t29: "Botiga",
- t30: "Manual",
- t31: "Nou Projecte",
- t32: "Crear nou projecte",
- t33: "Obrir Projecte",
- t34: "hotspot",
- t35: "Obert recentment",
- t36: "D'acord",
- t37: "S'ha de seleccionar almenys una impressora.",
- t38: "Cancel·lar",
- t39: "Confirmar",
- t40: "Desconnexió de la xarxa, si us plau comprova i intenta-ho de nou més tard.",
- t47: "Si us plau selecciona la teva regió d'inici de sessió",
- t48: "Àsia-Pacífic",
- t49: "Xina",
- t50: "Tancar sessió",
- t52: "Saltar",
- t53: "Unir-se",
- t54: "A la comunitat d'Impressió 3D, aprenem dels èxits i fracassos dels altres per ajustar els nostres propis paràmetres i configuracions de laminació. Orca Slicer segueix el mateix principi i utilitza l'aprenentatge automàtic per millorar el seu rendiment a partir dels èxits i fracassos d'un gran nombre d'impressions dels nostres usuaris. Estem entrenant Orca Slicer per ser més intel·ligent alimentant-lo amb dades del món real. Si estàs disposat, aquest servei accedirà a informació dels teus registres d'errors i registres d'ús, que poden incloure informació descrita a la ",
- t55: "Política de Privacitat",
- t56: ". No recopilarem cap dada personal que pugui identificar directament o indirectament a un individu, incloent-hi noms, adreces, informació de pagament o números de telèfon. En habilitar aquest servei, acceptes aquests termes i la declaració sobre la Política de Privacitat.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Europa",
- t61: "Amèrica del Nord",
- t62: "Altres",
- t63: "Després de canviar la regió, el teu compte es tancarà la sessió. Si us plau inicia sessió de nou més tard.",
- t64: "Connectors propietaris",
- t65: "Tingues en compte que aquests connectors no són desenvolupats ni mantinguts per OrcaSlicer. S'han d'utilitzar a la teva discreció i risc.",
- t66: "Control remot complet",
- t67: "Transmissió en directe",
- t68: "Sincronització de dades de l'usuari",
- t69: "Instal·lar connector Bambu Network",
- t70: "",
- t71: "Descarregant",
- t72: "Descàrrega fallida",
- t73: "Instal·lació exitosa.",
- t74: "Reiniciar",
- t75: "Alguns proveïdors d'impressora requereixen connectors propietaris per comunicar-se amb les seves impressores. Si us plau selecciona el connector corresponent si utilitzes aquestes impressores.",
- t76: "No s'ha detectat el connector Bambu Network. Fes clic ",
- t77: "aquí",
- t78: " per instal·lar-lo.",
- t79: "No s'ha pogut instal·lar el connector.",
- t80: "Prova els següents passos:",
- t81: "1, Fes clic ",
- t82: " per obrir el directori de connectors",
- t83: "2, Tanca totes les Orca Slicer obertes",
- t84: "3, Elimina tots els fitxers del directori de connectors",
- t85: "4, Reobre Orca Slicer i instal·la el connector de nou",
- t86: "Tancar",
- t87: "Manual de l'Usuari",
- t88: "Eliminar",
- t89: "Obrir Carpeta Contenidora",
- t90: "Model 3D",
- t91: "Descarregar models 3D",
- t92: "Creat per",
- t93: "Remesclat per",
- t94: "Compartit per",
- t95: "Informació del Model",
- t96: "Accessoris",
- t97: "Informació del Perfil",
- t98: "Nom del model",
- t100: "Descripció del model",
- t101: "BOM",
- t102: "Guia d'Assemblea",
- t103: "Altres",
- t104: "Nom del perfil",
- t105: "Autor del perfil",
- t106: "Descripció del perfil",
- t107: "Models en línia",
- t108: "MÉS",
- t109: "Filaments del Sistema",
- t110: "Filaments Personalitzats",
- t111: "Crear Nou",
- t112: "Unir-se al Programa",
- t113: "Pots canviar la teva elecció en les preferències en qualsevol moment.",
- orca1: "Editar Informació del Projecte",
- orca2: "No hi ha informació del model",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- es_ES: {
- t1: "Bienvenido a Orca Slicer",
- t2: "Orca Slicer se configurará mediante varios pasos. ¡Comencemos!",
- t3: "Términos de uso",
- t4: "No acepto",
- t5: "Acepto",
- t6: "Le rogamos su ayuda para mejorar la experiencia de impresión de todos. Únase a nuestro Programa de Mejora de la Experiencia del Cliente",
- t7: "Permitir enviar datos anónimos",
- t8: "Volver",
- t9: "Siguiente",
- t10: "Selección de impresora",
- t11: "Todo",
- t12: "Limpiar todo",
- t13: "mm de boquilla",
- t14: "Selección de filamento",
- t15: "Impresora",
- t16: "Tipo de filamento",
- t17: "Fabricante",
- t18: "Error",
- t19: "Al menos se debe seleccionar un filamento.",
- t20: "¿Desea usar el filamento por defecto?",
- t21: "Sí",
- t22: "No",
- t23: "Notas de la versión",
- t24: "Comenzar",
- t25: "Finalizar",
- t26: "Iniciar sesión",
- t27: "Registrarse",
- t28: "Reciente",
- t29: "Tienda",
- t30: "Manual",
- t31: "Nuevo proyecto",
- t32: "Crear nuevo proyecto",
- t33: "Abrir proyecto",
- t34: "punto de acceso",
- t35: "Abiertos recientemente",
- t36: "OK",
- t37: "Al menos se debe seleccionar una impresora.",
- t38: "Cancelar",
- t39: "Confirmar",
- t40: "Desconectado, por favor compruebe la conexión de red e inténtelo de nuevo.",
- t47: "Por favor, seleccione su región:",
- t48: "Asia-Pacífico",
- t49: "China",
- t50: "Cerrar sesión",
- t52: "Omitir",
- t53: "Unirse",
- t54: "En la comunidad de impresión 3D aprendemos de los éxitos y fracasos de los demás para ajustar nuestros propios parámetros y configuraciones de corte. Orca Slicer sigue el mismo principio y utiliza el aprendizaje automático para mejorar su rendimiento a partir de los éxitos y fallos del gran número de impresiones realizadas por nuestros usuarios. Estamos entrenando a Orca Slicer para que sea más inteligente proporcionándole datos del mundo real. Si lo desea, este servicio accederá a la información de sus registros de errores y de uso, que pueden incluir la información descrita en nuestra ",
- t55: "Política de privacidad",
- t56: ". No recopilaremos ningún dato personal que pueda identificar directa o indirectamente a una persona, incluyendo, sin limitación, nombres, direcciones, información de pago o números de teléfono. Al habilitar este servicio, acepta estos términos y la declaración sobre la Política de privacidad.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Europa",
- t61: "América del Norte",
- t62: "Otras",
- t63: "Después de cambiar la región, su cuenta se cerrará la sesión. Por favor, vuelva a iniciar sesión.",
- t64: "Complementos propietarios",
- t65: "Tenga en cuenta que estos complementos no están desarrollados ni mantenidos por OrcaSlicer. Deben usarse bajo su propia responsabilidad.",
- t66: "Control remoto total",
- t67: "Transmisión en vivo",
- t68: "Sincronización de datos de usuario",
- t69: "Instalar plug-in Bambu Network",
- t70: "",
- t71: "Descargando",
- t72: "Descarga fallida",
- t73: "Instalación exitosa.",
- t74: "Reiniciar",
- t75: "Algunos proveedores de impresoras requieren complementos propietarios para la comunicación con sus impresoras. Seleccione el complemento correspondiente si utiliza tales impresoras.",
- t76: "Plug-in de Bambu Network no detectado. Haga clic ",
- t77: "aquí",
- t78: " para instalarlo.",
- t79: "Fallo al instalar el complemento. ",
- t80: "Intente los siguientes pasos:",
- t81: "1. Haga clic ",
- t82: " para abrir el directorio de complementos",
- t83: "2. Cierre todas las instancias de Orca Slicer",
- t84: "3. Elimine todos los archivos del directorio de complementos",
- t85: "4. Vuelva a abrir Orca Slicer e instale el complemento de nuevo",
- t86: "Cerrar",
- t87: "Manual de usuario",
- t88: "Eliminar",
- t89: "Abrir carpeta contenedora",
- t90: "Modelo 3D",
- t91: "Descargar modelos 3D",
- t92: "Creado por",
- t93: "Remixado por",
- t94: "Compartido por",
- t95: "Información del modelo",
- t96: "Accesorios",
- t97: "Información del perfil",
- t98: "Nombre del modelo",
- t100: "Descripción del modelo",
- t101: "Lista de materiales",
- t102: "Guía de ensamblaje",
- t103: "Otros",
- t104: "Nombre del perfil",
- t105: "Autor del perfil",
- t106: "Descripción del perfil",
- t107: "Modelos en línea",
- t108: "Más",
- t109: "Filamentos del sistema",
- t110: "Filamentos personalizados",
- t111: "Crear nuevo",
- t112: "Unirse al programa",
- t113: "Puede cambiar su elección en Preferencias en cualquier momento.",
- t126: "Cargando……",
- orca1: "Editar información del proyecto",
- orca2: "No hay información sobre el modelo",
- orca3: "Modo sigiloso",
- orca5: "Activar modo sigiloso.",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- it_IT: {
- t1: "Benvenuti in OrcaSlicer",
- t2: "OrcaSlicer verrà configurato seguendo diversi passaggi. Cominciamo!",
- t3: "Condizioni d'uso",
- t4: "Non accetto",
- t5: "Accetto",
- t6: "Chiediamo gentilmente il tuo aiuto per migliorare la qualità delle stampe. Iscriviti al nostro programma di miglioramento dell'esperienza utente",
- t7: "Iscriviti al nostro programma di miglioramento dell'esperienza utente",
- t8: "Indietro",
- t9: "Avanti",
- t10: "Selezione della stampante",
- t11: "Tutto",
- t12: "Cancella tutto",
- t13: "mm ugello",
- t14: "Selezione del filamento",
- t15: "Stampante",
- t16: "Tipo di filamento",
- t17: "Produttore",
- t18: "Errore",
- t19: "È necessario selezionare almeno un filamento.",
- t20: "Vuoi utilizzare il filamento predefinito?",
- t21: "Sì",
- t22: "No",
- t23: "Note di rilascio",
- t24: "Inizia",
- t25: "Fine",
- t26: "Accedi",
- t27: "Registrati",
- t28: "Recente",
- t29: "Negozio",
- t30: "Manuale",
- t31: "Nuovo progetto",
- t32: "Crea un nuovo progetto",
- t33: "Apri progetto",
- t34: "hotspot",
- t35: "Aperti di recente",
- t36: "OK",
- t37: "È necessario selezionare almeno una stampante.",
- t38: "Annulla",
- t39: "Conferma",
- t40: "Disconnesso, controlla la connessione di rete e riprova.",
- t47: "Seleziona la tua regione di accesso",
- t48: "Asia-Pacifico",
- t49: "Cina",
- t50: "Disconnettiti",
- t52: "Salta",
- t53: "Iscriviti",
- t54: "Nella comunità di stampa 3D, impariamo dai successi e dagli insuccessi di ognuno per adattare i nostri parametri e le nostre impostazioni di slicing. OrcaSlicer segue lo stesso principio, utilizzando l'apprendimento automatico per migliorare le sue prestazioni sfruttando i successi e gli insuccessi delle numerose stampe dei nostri utenti. Stiamo addestrando OrcaSlicer ad essere più intelligente, fornendogli dati del mondo reale. Se lo desideri, questo servizio accederà alle informazioni dei tuoi registri di errore e di utilizzo, i quali possono includere informazioni descritte in ",
- t55: "Politica sulla riservatezza",
- t56: ". Non raccoglieremo alcun Dato Personale tramite il quale un individuo possa essere identificato direttamente o indirettamente, inclusi (senza limitazioni) nomi, indirizzi, informazioni di pagamento o numeri di telefono. Abilitando questo servizio, accetti questi termini e la dichiarazione sulla Politica sulla riservatezza.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Europa",
- t61: "Nord America",
- t62: "Altri",
- t63: "Dopo aver cambiato la regione, il tuo profilo verrà disconnesso. Sarà necessario accedere di nuovo.",
- t64: "Moduli proprietari",
- t65: "Si prega di notare che questi moduli non sono sviluppati o mantenuti da OrcaSlicer. Dovrebbero essere utilizzati a proprio rischio e discrezione.",
- t66: "Controllo remoto completo",
- t67: "Video in diretta",
- t68: "Sincronizzazione dei dati utente",
- t69: "Installa il modulo di rete Bambu",
- t70: "",
- t71: "Scaricamento",
- t72: "Scaricamento non riuscito",
- t73: "Installazione riuscita.",
- t74: "Riavvia",
- t75: "Le stampanti di alcuni produttori richiedono dei moduli proprietari per far in modo che la comunicazione abbia successo. Seleziona il modulo corrispondente se utilizzi tali stampanti.",
- t76: "Modulo di rete Bambu non rilevato. Fai clic ",
- t77: "qui",
- t78: " per installarlo.",
- t79: "Impossibile installare il modulo. ",
- t80: "Prova i seguenti passaggi:",
- t81: "1, Fare clic ",
- t82: " per aprire la directory del modulo",
- t83: "2, Chiudere tutte le istanze di OrcaSlicer",
- t84: "3, Eliminare tutti i file all'interno della directory del modulo",
- t85: "4, Riaprire OrcaSlicer e installare nuovamente il modulo",
- t86: "Chiudi",
- t87: "Manuale d'uso",
- t88: "Rimuovi",
- t89: "Apri cartella con contenuto",
- t90: "Modello 3D",
- t91: "Scarica modelli 3D",
- t92: "Creato da",
- t93: "Modificato da",
- t94: "Condiviso da",
- t95: "Informazioni sul modello",
- t96: "Accessori",
- t97: "Informazioni sul profilo",
- t98: "Nome del modello",
- t100: "Descrizione del modello",
- t101: "Elenco dei materiali",
- t102: "Istruzioni di montaggio ",
- t103: "Altro",
- t104: "Nome del profilo",
- t105: "Autore del profilo",
- t106: "Descrizione del profilo",
- t107: "Modelli online",
- t108: "ALTRO",
- t109: "Filamenti di sistema",
- t110: "Filamenti personalizzati",
- t111: "Crea Nuovo",
- t112: "Unisciti al programma",
- t113: "Puoi modificare la tua scelta in 'Preferenze' in qualsiasi momento.",
- orca1: "Modifica informazioni progetto",
- orca2: "Nessuna informazione sul modello",
- orca3: "Modalità invisibile",
- orca5: "Abilita la modalità invisibile.",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- de_DE: {
- t1: "Willkommen im Orca Slicer",
- t2: "Das Orca Slicer wird in mehreren Schritten eingerichtet. Lass uns anfangen!",
- t3: "Nutzervereinbarung",
- t4: "Ablehnen",
- t5: "Zustimmen",
- t6: "Wir bitten um deine Hilfe, um den Druck für alle zu verbessern",
- t7: "Anonyme Daten senden erlauben",
- t8: "Zurück",
- t9: "Weiter",
- t10: "Druckerauswahl",
- t11: "Alle",
- t12: "Keinen",
- t13: "mm Düse",
- t14: "Filamentauswahl",
- t15: "Drucker",
- t16: "Filamenttyp",
- t17: "Hersteller",
- t18: "Fehler",
- t19: "Es muss mindestens ein Filament ausgewählt sein.",
- t20: "Möchten Sie das Standard-Filament verwenden?",
- t21: "Ja",
- t22: "Nein",
- t23: "Versionshinweise",
- t24: "Loslegen",
- t25: "Fertig",
- t26: "Anmelden",
- t27: "Registrieren",
- t28: "Neueste",
- t29: "Einkaufszentrum",
- t30: "Handbuch",
- t31: "Neues Projekt",
- t32: "Neues Projekt erstellen",
- t33: "Projekt öffnen",
- t34: "Hotspot",
- t35: "Zuletzt geöffnet",
- t36: "OK",
- t37: "Es muss mindestens ein Drucker ausgewählt sein.",
- t38: "Abbrechen",
- t39: "Bestätigen",
- t40: "Netzwerkunterbrechung, bitte überprüfen und später erneut versuchen.",
- t47: "Bitte wählen Sie Ihre Login-Region aus",
- t48: "Asien-Pazifik",
- t49: "China",
- t50: "Abmelden",
- t52: "Überspringen",
- t53: "Beitreten",
- t54: "In der 3D-Druck-Community lernen wir aus den Erfolgen und Misserfolgen der anderen Benutzer, um unsere eigenen Schneideparameter und Einstellungen anzupassen. Orca Slicer folgt demselben Prinzip und verbessert seine Leistung durch die Erfolge und Misserfolge der Vielzahl von Drucken unserer Benutzer mittels maschinellem Lernen. Wir trainieren Orca Slicer, indem wir ihnen die realen Daten zuführen. Wenn Sie bereit sind, greift dieser Dienst auf Informationen aus Ihren Fehler- und Nutzungsprotokollen zu, die Informationen enthalten können, die in der ",
- t55: "Datenschutzrichtlinie",
- t56: ". Wir werden keine personenbezogenen Daten sammeln, durch die eine Person direkt oder indirekt identifiziert werden kann, einschließlich, aber nicht beschränkt auf Namen, Adressen, Zahlungsinformationen oder Telefonnummern. Durch Aktivieren dieses Dienstes stimmen Sie diesen Bedingungen und der Erklärung zur Datenschutzrichtlinie zu.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Europa",
- t61: "Nordamerika",
- t62: "Andere",
- t63: "Nach Ändern der Region wird Ihr Konto abgemeldet. Bitte melden Sie sich später erneut an.",
- t64: "Bambu Network-Plug-in",
- t65: "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk.",
- t66: "Vollständige Fernsteuerung",
- t67: "Live-View-Streaming",
- t68: "Synchronisierung von Benutzerdaten",
- t69: "Bambu Network-Plug-in installieren",
- t70: "",
- t71: "Herunterladen",
- t72: "Herunterladen fehlgeschlagen",
- t73: "Installation erfolgreich.",
- t74: "Neustart",
- t75: "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers.",
- t76: "Das Bambu Network-Plug-in wurde nicht erkannt. Klicken Sie ",
- t77: "hier",
- t78: ", um es zu installieren.",
- t79: "Fehler beim Installieren des Plug-ins. ",
- t80: "Versuchen Sie die folgenden Schritte:",
- t81: "1, Klicken Sie auf ",
- t82: ", um das Plug-in-Verzeichnis zu öffnen",
- t83: "2, Schließen Sie alle geöffneten Orca Slicer",
- t84: "3, Löschen Sie alle Dateien im Plug-in-Verzeichnis",
- t85: "4, Öffnen Sie Orca Slicer erneut und installieren Sie das Plug-in erneut",
- t86: "Schließen",
- t87: "Benutzerhandbuch",
- t88: "Entfernen",
- t89: "Enthaltenden Ordner öffnen",
- t90: "3D-Modell",
- t91: "3D-Modelle herunterladen",
- t92: "Erstellt von",
- t93: "Remixed von",
- t94: "Geteilt von",
- t95: "Modellinformationen",
- t96: "Zubehör",
- t97: "Profilinformationen",
- t98: "Modellname",
- t100: "Modellbeschreibung",
- t101: "Stückliste",
- t102: "Montageanleitung",
- t103: "Andere",
- t104: "Profilname",
- t105: "Profilautor",
- t106: "Profilbeschreibung",
- t126: "Laden……",
- orca1: "Edit Project Info",
- orca2: "No model information",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- cs_CZ: {
- t1: "Vítejte v Orca Slicer",
- t2: "Orca Slicer bude nastaven v několika krocích. Začněme!",
- t3: "Uživatelská smlouva",
- t4: "Nesouhlasím",
- t5: "Souhlasím",
- t6: "Prosíme o vaši pomoc se zlepšením všech tisků",
- t7: "Povolit odesílání anonymních dat",
- t8: "Zpět",
- t9: "Další",
- t10: "Výběr tiskárny",
- t11: "Všechny",
- t12: "Vymazat vše",
- t13: "Tryska mm",
- t14: "Výběr Filamentu",
- t15: "Tiskárna",
- t16: "Typ Filamentu",
- t17: "Dodavatel",
- t18: "Chyba",
- t19: "Musí být vybraný alespoň jeden Filament.",
- t20: "Chcete použít výchozí Filament?",
- t21: "Ano",
- t22: "Ne",
- t23: "Poznámka k vydání",
- t24: "Začínáme",
- t25: "Dokončit",
- t26: "Přihlásit",
- t27: "Registrovat",
- t28: "Poslední",
- t29: "Obchodní centrum",
- t30: "Manuální",
- t31: "Nový projekt",
- t32: "Vytvořit nový projekt",
- t33: "Otevřít projekt",
- t34: "Hotspot",
- t35: "Nedávno otevřeno",
- t36: "OK",
- t37: "Musí být vybrána alespoň jedna tiskárna.",
- t38: "Zrušit",
- t39: "Potvrdit",
- t40: "Síť je odpojena, prosím zkontrolujte a zkuste to znovu později.",
- t47: "Vyberte prosím svou oblast přihlášení",
- t48: "Asie-Pacifik",
- t49: "Čína",
- t50: "Odhlásit se",
- t52: "Přeskočit",
- t53: "Připojit se",
- t54: "V komunitě 3D tisku se ze vzájemných úspěchů a neúspěchů učíme upravovat vlastní parametry a nastavení krájení. Orca Slicer se řídí stejným principem a využívá strojové učení ke zlepšení svého výkonu na základě úspěchů a neúspěchů počet výtisků našimi uživateli. Orca Slicer školíme, aby byl chytřejší tím, že jim poskytuje data z reálného světa. Pokud budete chtít, bude tato služba přistupovat k informacím z vašich protokolů chyb a protokolů použití, které mohou zahrnovat informace popsané v ",
- t55: "Zásady ochrany osobních údajů",
- t56: ". Nebudeme shromažďovat žádné osobní údaje, pomocí kterých lze přímo nebo nepřímo identifikovat jednotlivce, včetně jmen, adres, platebních údajů nebo telefonních čísel. Povolením této služby souhlasíte s těmito podmínkami a prohlášení o zásadách ochrany osobních údajů.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Evropa",
- t61: "Severní Amerika",
- t62: "Ostatní",
- t63: "Po změně regionu bude váš účet odhlášen. Přihlaste se prosím znovu později.",
- t64: "Proprietary Plugins",
- t65: "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk.",
- t66: "Plné dálkové ovládání",
- t67: "Streamování v přímém přenosu",
- t68: "Synchronizace uživatelských dat",
- t69: "Instalovat Bambu Network plug-in",
- t70: "",
- t71: "Stahování",
- t72: "Stahování se nezdařilo",
- t73: "Instalace úspěšná.",
- t74: "Restartovat",
- t75: "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers.",
- t76: "Síťový plug-in Bambu nebyl zjištěn. Klikněte na ",
- t77: "zde",
- t78: " k instalaci.",
- t79: "Nepodařilo se nainstalovat plugin.",
- t80: "Zkuste následující kroky:",
- t81: "1, klikněte",
- t82: "otevřete adresář plug-in",
- t83: "2, Zavřete všechny otevřené Orca Slicer",
- t84: "3, Smažte všechny soubory v adresáři plug-in",
- t85: "4, znovu otevřete Orca Slicer a znovu nainstalujte zásuvný modul",
- t86: "Zavřít",
- t87: "Uživatelská příručka",
- t88: "Odstranit",
- t89: "Otevřít složku obsahující",
- t90: "3D model",
- t91: "Stáhnout 3D modely",
- t92: "Vytvořil",
- t93: "Přepracováno",
- t94: "Sdíleno",
- t95: "Informace o modelu",
- t96: "Příslušenství",
- t97: "Informace o profilu",
- t98: "Název modelu",
- t100: "Popis modelu",
- t101: "Seznam součástek (BOM)",
- t102: "Průvodce sestavením",
- t103: "Jiné",
- t104: "Název profilu",
- t105: "Autor profilu",
- t106: "Popis profilu",
- t126: "Načtení probíhá……",
- orca1: "Edit Project Info",
- orca2: "No model information",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- fr_FR: {
- t1: "Bienvenue sur Orca Slicer",
- t2: "Orca Slicer sera configuré en plusieurs étapes. Commençons !",
- t3: "Accord d'utilisation",
- t4: "Décliner",
- t5: "Accepter",
- t6: "Nous sollicitons votre aide pour améliorer l'impression de chacun",
- t7: "Autoriser l'envoi de données anonymes",
- t8: "Retour",
- t9: "Suivant",
- t10: "Sélection de l'imprimante",
- t11: "Tous",
- t12: "Supprimer",
- t13: "mm",
- t14: "Sélection des filaments",
- t15: "Imprimante",
- t16: "Type de filament",
- t17: "Fournisseur",
- t18: "Erreur",
- t19: "Au moins un filament doit être sélectionné.",
- t20: "Voulez-vous utiliser le filament par défaut ?",
- t21: "Oui",
- t22: "Non",
- t23: "Note de version",
- t24: "Commencer",
- t25: "Terminer",
- t26: "Connexion",
- t27: "Inscription",
- t28: "Récent",
- t29: "Mail",
- t30: "Manuel",
- t31: "Nouveau Projet",
- t32: "Créer un nouveau projet",
- t33: "Ouvrir un Projet",
- t34: "hotspot",
- t35: "Récemment ouvert",
- t36: "OK",
- t37: "Au moins une imprimante doit être sélectionnée.",
- t38: "Annuler",
- t39: "Confirmer",
- t40: "Déconnexion du réseau, veuillez vérifier et réessayer plus tard.",
- t47: "Veuillez sélectionner votre région de connexion",
- t48: "Asie-Pacifique",
- t49: "Chine",
- t50: "Se déconnecter",
- t52: "Passer",
- t53: "Rejoindre",
- t54: "Dans la communauté de l'impression 3D, nous apprenons des succès et des échecs des uns et des autres pour ajuster nos propres paramètres et paramètres de découpage. Orca Slicer suit le même principe et utilise l'apprentissage automatique pour améliorer ses performances à partir des succès et des échecs du grand nombre d'impressions de nos utilisateurs. Nous formons Orca Slicer à être plus intelligent en leur fournissant les données du monde réel. Si vous le souhaitez, ce service accédera aux informations de vos journaux d'erreurs et de vos journaux d'utilisation, qui peuvent inclure des informations décrites dans ",
- t55: "Politique de confidentialité",
- t56: ". Nous ne collecterons aucune donnée personnelle par laquelle un individu peut être identifié directement ou indirectement, y compris, sans s'y limiter, les noms, adresses, informations de paiement ou numéros de téléphone. En activant ce service, vous acceptez ces conditions et la déclaration sur la politique de confidentialité.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Europe",
- t61: "Amérique du Nord",
- t62: "Autres",
- t63: "Après avoir changé de région, votre compte sera déconnecté. Veuillez vous reconnecter ensuite.",
- t64: "Plug-in Bambu Network",
- t65: "Veuillez noter que ces plugins ne sont pas développés ou maintenus par OrcaSlicer. Ils doivent être utilisés à votre propre discrétion et à vos propres risques.",
- t66: "Commande à distance complète",
- t67: "Diffusion en direct",
- t68: "Synchronisation des données utilisateur",
- t69: "Installer Bambu Network",
- t70: "",
- t71: "Téléchargement",
- t72: "Échec du téléchargement",
- t73: "Installation réussie.",
- t74: "Redémarrer",
- t75: "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers.",
- t76: "Le plug-in Bambu Network n'est pas détecté. Cliquez ",
- t77: "ici",
- t78: " pour l'installer.",
- t79: "Échec de l'installation du plug-in. ",
- t80: "Essayez les étapes suivantes :",
- t81: "1, Cliquez ",
- t82: " pour ouvrir le répertoire des plug-ins",
- t83: "2, Fermez toutes les fenêtres de Orca Slicer",
- t84: "3, Supprimez tous les fichiers dans le répertoire du plug-in",
- t85: "4, Relancez Orca Slicer et réinstallez le plug-in.",
- t86: "Fermer",
- t87: "Manuel d'utilisation",
- t88: "Supprimer",
- t89: "Ouvrir le dossier contenant",
- t90: "Modèle 3D",
- t91: "Télécharger des modèles 3D",
- t92: "Créé par",
- t93: "Remixé par",
- t94: "Partagé par",
- t95: "Informations sur le modèle",
- t96: "Accessoires",
- t97: "Informations de profil",
- t98: "Nom du modèle",
- t100: "Description du modèle",
- t101: "BOM",
- t102: "Guide d'assemblage",
- t103: "Autre",
- t104: "Nom du profil",
- t105: "Auteur du profil",
- t106: "Description du profil",
- t109: "Filaments du système",
- t110: "Filaments personnalisés",
- t111: "Créer un nouveau filament",
- t126: "Chargement en cours……",
- orca1: "Modifier les informations du projet",
- orca2: "Pas d'information sur le modèle",
- wk1: "Démarrage rapide",
- wk2: "Cet article présente l'utilisation la plus basique de Orca Slicer. Il guide les utilisateurs pour configurer le logiciel, créer des projets et effectuer la première tâche d'impression étape par étape.",
- wk3: "Workflow basé sur des projets",
- wk4: "Orca Slicer met en avant un workflow de pointe pour véritablement réaliser un projet « tout en un ». Basé sur le format de projet 3MF grand public, il fournit une série de nouvelles fonctionnalités révolutionnaires, telles que la prise en charge de plusieurs plaques, un gestionnaire de ressources de projet et une vue d'assemblage/de pièce. Cela améliore considérablement l'efficacité des créateurs et des utilisateurs réguliers",
- wk5: "Impression haute vitesse de qualité",
- wk6: "Il est difficile d'imprimer à grande vitesse tout en maintenant une qualité élevée. Orca Slicer rend cela possible. « Arch Move » permet à la hotend de se déplacer en douceur et réduit les vibrations de la machine. Le refroidissement intelligent est basé sur des paramètres de refroidissement affinés pour chaque type de filament. Le « ralentissement automatique » pour les paroies en porte-à-faux permet d'éviter la déformation à grande vitesse.",
- wk7: "Impression multi-couleur",
- wk8: "Orca Slicer fournit des outils de colorisation polyvalents pour créer un modèle coloré. Vous pouvez librement ajouter/supprimer des filaments dans un projet et coloriser votre modèle avec différents pinceaux. Avant l'impression, chaque filament sera automatiquement mappé sur un emplacement AMS, sans avoir besoin de modifier manuellement le placement de la bobine dans l'AMS.",
- wk9: "Guide de réglage des paramètres de découpage",
- wk10: "Les fonctionnalités de gestion des paramètres de Orca Slicer offrent un contrôle très flexible et puissant sur le processus de découpage. Cet article présente l'organisation des paramètres et fournit quelques compétences pour tirer pleinement parti de ces fonctionnalités.",
- wk11: "Contrôle et surveillance à distance",
- wk12: "Orca Slicer prend en charge l'envoi du travail d'impression à votre imprimante via le réseau WAN/LAN, contrôlant et surveillant chaque aspect de votre imprimante 3D et des travaux d'impression. Si vous avez plusieurs imprimantes, vous pouvez facilement basculer entre elles dans la liste des périphériques.",
- wk13: "Format STEP",
- wk14: "Par rapport au format STL, le format STEP apporte des informations plus efficaces. Grâce à la grande précision de ce format, de nombreuses trajectoires d'extrusion peuvent être générées sous forme d'arcs. Il inclut également la relation d'assemblage de chaque pièce d'un modèle, qui peut être utilisée pour restaurer la vue d'assemblage après la coupe d'un modèle.",
- wk15: "Texte 3D",
- wk16: "Avec l'outil Texte 3D, les utilisateurs peuvent facilement créer diverses formes de texte 3D dans le projet, ce qui rend le modèle plus personnalisé. Orca Slicer fournit des dizaines de polices et prend en charge les styles gras et italique pour donner au texte une plus grande flexibilité.",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- zh_CN: {
- t1: "欢迎使用Orca Slicer",
- t2: "Orca Slicer需要几步安装步骤,让我们开始吧!",
- t3: "用户使用协议",
- t4: "拒绝",
- t5: "同意",
- t6: "帮助提升Orca Slicer性能",
- t7: "允许发送匿名数据",
- t8: "上一步",
- t9: "下一步",
- t10: "选择打印机",
- t11: "全部",
- t12: "清空",
- t13: "mm 喷嘴",
- t14: "选择材料",
- t15: "打印机",
- t16: "材料类型",
- t17: "供应商",
- t18: "错误",
- t19: "至少要选择一款材料。",
- t20: "你希望使用默认的材料列表吗?",
- t21: "是",
- t22: "否",
- t23: "发布说明",
- t24: "开始",
- t25: "结束",
- t26: "登录",
- t27: "注册",
- t28: "近期",
- t29: "商城",
- t30: "使用手册",
- t31: "新建项目",
- t32: "创建一个新项目",
- t33: "打开项目",
- t34: "热点",
- t35: "近期打开文件",
- t36: "确定",
- t37: "至少需要选择一款打印机。",
- t38: "取消",
- t39: "确定",
- t40: "网络不通,请检查并稍后重试。",
- t47: "请选择登录区域",
- t48: "亚太",
- t49: "中国",
- t50: "退出登录",
- t52: "忽略",
- t53: "同意",
- t54: "在3D打印社区,我们从彼此的成功和失败中学习调整自己的切片参数和设置。Orca Slicer遵循同样的原则,通过机器学习的方式从大量用户打印的成功和失败中获取经验,从而改善打印性能。我们正在通过向Orca Slicer提供真实世界的数据来训练他们变得更聪明。如果您愿意,此服务将访问您的错误日志和使用日志中的信息,其中可能包括",
- t55: "隐私政策",
- t56: "中描述的信息。我们不会收集任何可以直接或间接识别个人的个人数据,包括但不限于姓名、地址、支付信息或电话号码。启用此服务即表示您同意这些条款和有关隐私政策的声明。",
- t57: "",
- t58: "",
- t59: "。",
- t60: "欧洲",
- t61: "北美",
- t62: "其他",
- t63: "切换区域后,你的账号会被登出。稍后请重新登录。",
- t64: "Bambu网络插件",
- t65: "注意:这些插件不是由OrcaSlicer开发或维护的。使用它们需自担风险",
- t66: "强大的远程控制功能",
- t67: "实时视频流",
- t68: "用户数据同步",
- t69: "安装Bambu网络插件",
- t70: "",
- t71: "正在下载",
- t72: "下载失败",
- t73: "安装成功。",
- t74: "重启",
- t75: "一些打印机厂商需要安装他们的专有插件才能与打印机通信。如果您使用这类打印机,请选择相应的插件",
- t76: "没有发现Bambu网络插件,请",
- t77: "下载",
- t78: "并安装。",
- t79: "安装插件失败。",
- t80: "请尝试如下步骤:",
- t81: "1, 点击",
- t82: "打开插件所在目录",
- t83: "2, 关闭所有Orca Slicer",
- t84: "3, 删除插件所在目录下的所有文件",
- t85: "4, 重新启动Orca Slicer并尝试安装插件",
- t86: "关闭",
- t87: "使用引导",
- t88: "移除",
- t89: "打开所在的文件夹",
- t90: "3D 模型",
- t91: "下载3D模型",
- t92: "创作",
- t93: "修改",
- t94: "分享",
- t95: "模型信息",
- t96: "附件",
- t97: "配置信息",
- t98: "模型名称",
- t100: "模型介绍",
- t101: "物料清单",
- t102: "装备指导",
- t103: "其他",
- t104: "配置名称",
- t105: "配置作者",
- t106: "配置介绍",
- t107: "在线模型",
- t108: "更多",
- t109: "系统材料",
- t110: "自建材料",
- t111: "新建",
- t112: "加入该计划",
- t113: "您可以随时更改您的偏好。",
- t126: "正在加载……",
- wk1: "快速入门指南",
- wk2: "本文介绍了Orca Slicer的最基本用法。它指导用户配置软件,创建项目,并逐步完成第一个打印任务。",
- wk3: "基于项目的工作流",
- wk4: "Orca Slicer提出了领先的工作流程,真正实现了“一体化”项目。基于主流的3MF项目格式,它提供了一系列革命性的新功能,如支持多盘、项目资源管理器和装配/零件视图。它可以大幅提高模型创作者及普通用户的使用效率。",
- wk5: "质量卓越的高速打印",
- wk6: "在保持高质量的前提下进行高速打印是非常具有挑战性的。Orca Slicer让这一切发生。支持“圆弧移动”特性使工具头移动更加顺滑,有效减少机器振动。基于不同材料类型的精细标定过的冷却控制参数,使得冷却过程可以自动开展。在悬垂区域进行“自动减速”,可防止高速打印时在此区域的外观瑕疵。",
- wk7: "多色打印",
- wk8: "Orca Slicer提供了多种着色工具来制作彩色模型。您可以在项目中自由添加/移除打印材料,并使用不同的笔刷为模型着色。开始打印时,打印任务中的各个材料将自动映射到匹配的AMS槽位,无需手动调整AMS中的料卷位置。",
- wk9: "切片参数设置指南",
- wk10: "Orca Slicer中的参数管理功能为切片过程提供了非常灵活和强大的控制。本文介绍了切片参数的组织分类和设置方法,并提供了一些使用技巧。",
- wk11: "远程控制和监控",
- wk12: "Orca Slicer支持通过WAN/LAN网络向打印机发送打印任务,控制和查看3D打印机和打印任务的各个方面。如果您有多台打印机,还可以在设备列表中轻松切换。",
- wk13: "STEP格式",
- wk14: "与STL相比,STEP带来了更多有效的信息。由于STEP的高精度,切片时可以生成更多的圆弧路径。STEP还包括模型每个零件的装配关系,可分割模型后恢复装配视图。",
- wk15: "3D文本",
- wk16: "使用3D文本工具,用户可以轻松地在项目中创建各种3D文本形状,使模型更加个性化。Orca Slicer提供了数十种字体,并支持粗体和斜体样式,使文本具有更大的灵活性。",
- orca1: "编辑项目信息",
- orca2: "该模型没有相关信息",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- zh_TW: {
- t1: "歡迎使用 Orca Slicer",
- t2: "Orca Slicer 需要幾步安裝步驟,讓我們開始吧!",
- t3: "使用者協議",
- t4: "拒絕",
- t5: "同意",
- t6: "幫助提升 Orca Slicer 性能",
- t7: "允許傳送匿名數據",
- t8: "上一步",
- t9: "下一步",
- t10: "選擇3D列印機",
- t11: "全部",
- t12: "清空",
- t13: "mm 噴嘴",
- t14: "選擇線材",
- t15: "3D列印機",
- t16: "線材類型",
- t17: "供應商",
- t18: "錯誤",
- t19: "至少要選擇一款線材。",
- t20: "你希望使用預設的線材列表嗎?",
- t21: "是",
- t22: "否",
- t23: "發布說明",
- t24: "開始",
- t25: "結束",
- t26: "登入",
- t27: "註冊",
- t28: "最近",
- t29: "商城",
- t30: "使用手冊",
- t31: "新建項目",
- t32: "創建一個新項目",
- t33: "打開項目",
- t34: "熱點",
- t35: "最近打開文件",
- t36: "確定",
- t37: "至少需要選擇一款3D列印機。",
- t38: "取消",
- t39: "確定",
- t40: "網路不通,請檢查並稍後重試。",
- t47: "請選擇登入區域",
- t48: "亞太",
- t49: "中國",
- t50: "登出",
- t52: "忽略",
- t53: "同意",
- t54: "在3D列印社區,我們從彼此的成功和失敗中學習調整自己的切片參數和設置。Orca Slicer 遵循同樣的原則,透過機器學習的方式從大量用戶列印的成功和失敗中獲取經驗,從而改善列印性能。我們正在通過向 Orca Slicer 提供真實世界的數據來訓練他們變得更聰明。如果您願意,此服務將訪問您的錯誤日誌和使用日誌中的資訊,其中可能包括",
- t55: "隱私政策",
- t56: "中描述的資訊。我們不會收集任何可以直接或間接識別個人的個人數據,包括但不限於姓名、地址、支付資訊或電話號碼。啟用此服務即表示您同意這些條款和有關隱私政策的聲明。",
- t57: "",
- t58: "",
- t59: "。",
- t60: "歐洲",
- t61: "北美",
- t62: "其他",
- t63: "切換區域後,你的帳號會被登出。稍後請重新登入。",
- t64: "Bambu網路插件",
- t65: "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk.",
- t66: "強大的遠端控制功能",
- t67: "即時影片串流",
- t68: "使用者數據同步",
- t69: "安裝 Bambu網路插件",
- t70: "",
- t71: "正在下載",
- t72: "下載失敗",
- t73: "安裝成功。",
- t74: "重啟",
- t75: "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers.",
- t76: "沒有發現Bambu網路插件,請",
- t77: "下載",
- t78: "並安裝。",
- t79: "安裝插件失敗。",
- t80: "請嘗試如下步驟:",
- t81: "1, 點擊",
- t82: "打開插件所在目錄",
- t83: "2, 關閉所有 Orca Slicer",
- t84: "3, 刪除插件所在目錄下的所有文件",
- t85: "4, 重新啟動 Orca Slicer 並嘗試安裝插件",
- t86: "關閉",
- t87: "使用引導",
- t88: "移除",
- t89: "打開所在的文件夾",
- t90: "3D 模型",
- t91: "下載3D模型",
- t92: "Bambu聖誕小屋",
- wk1: "快速入門指南",
- wk2: "本文介紹了 Orca Slicer 的最基本用法。它指導用戶配置軟體,創建項目,並逐步完成第一個列印任務。",
- wk3: "基於項目的工作流",
- wk4: "Orca Slicer 提出了領先的工作流程,真正實現了“一體化”項目。基於主流的3MF項目格式,它提供了一系列革命性的新功能,如支持多盤、項目資源管理器和裝配/零件視圖。它可以大幅提高模型創作者及普通用戶的使用效率。",
- wk5: "質量卓越的高速列印",
- wk6: "在保持高品質的前提下進行高速列印是非常具有挑戰性的。Orca Slicer 讓這一切發生。支持“圓弧移動”特性使工具頭移動更加順滑,有效減少機器振動。基於不同線材類型的精細標定過的冷卻控制參數,使得冷卻過程可以自動開展。在懸垂區域進行“自動減速”,可防止高速列印時在此區域的外觀瑕疵。",
- wk7: "多色列印",
- wk8: "Orca Slicer 提供了多種著色工具來製作彩色模型。您可以在項目中自由添加/移除列印材料,並使用不同的筆刷為模型著色。開始列印時,列印任務中的各個線材將自動映射對應到 AMS 槽位,無需手動調整 AMS 中的線材位置。",
- wk9: "切片參數設置指南",
- wk10: "Orca Slicer 中的參數管理功能為切片過程提供了非常靈活和強大的控制。本文介紹了切片參數的組織分類和設置方法,並提供了一些使用技巧。",
- wk11: "遠端控制和監控",
- wk12: "Orca Slicer 支持透過無線網路/區域網路向3D列印機發送列印任務,控制和查看3D列印機和列印任務的各個方面。如果您有多台3D列印機,還可以在設備清單中輕鬆切換。",
- wk13: "STEP格式",
- wk14: "與 STL 相比,STEP 帶來了更多有效的資訊。由於 STEP 的高精度,切片時可以生成更多的圓弧路徑。STEP 還包括模型每個零件的組裝關係,可分割模型後恢復裝配視圖。",
- wk15: "3D文本",
- wk16: "使用3D文字工具,使用者可以輕鬆地在項目中建立各種3D文字形狀,使模型更加個性化。Orca Slicer 提供了數十種字體,並支援粗體和斜體樣式,使文字具有更大的靈活性。",
- orca1: "編輯專案資訊",
- orca2: "沒有模型相關資訊",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- ru_RU: {
- t1: "Приветствуем в Orca Slicer!",
- t2: "Для настройки Orca Slicer необходимо пройти несколько этапов. Давайте начнём!",
- t3: "Пользовательское соглашение",
- t4: "Отказаться",
- t5: "Принять",
- t6: "Мы просим вашей помощи, чтобы улучшить печать",
- t7: "Разрешить отправку анонимных данных для совершенствования программы",
- t8: "Назад",
- t9: "Далее",
- t10: "Выбор принтера",
- t11: "Все",
- t12: "Очистить",
- t13: "мм сопло",
- t14: "Выбор материала",
- t15: "Принтер",
- t16: "Тип материала",
- t17: "Производитель",
- t18: "Oшибка",
- t19: "Должна быть выбрана хотя бы одна пластиковая нить.",
- t20: "Выбрать пластиковые нити по умолчанию?",
- t21: "Да",
- t22: "Нет",
- t23: "Информация о версии",
- t24: "Начать",
- t25: "Закончить",
- t26: "Войти",
- t27: "Регистрация",
- t28: "Недавние",
- t29: "Mall",
- t30: "Инструкции",
- t31: "Новый проект",
- t32: "Создать новый проект",
- t33: "Открыть проект",
- t34: "точка доступа",
- t35: "Недавно открытые",
- t36: "OK",
- t37: "Должен быть выбран хотя бы один принтер.",
- t38: "Отмена",
- t39: "Принять",
- t40: "Сеть отключена. Проверьте подключение и попробуйте снова.",
- t47: "Выбор региона",
- t48: "Азиатско-Тихоокеанский регион",
- t49: "Китай",
- t50: "Выйти",
- t52: "Пропустить",
- t53: "Войти",
- t54: "Для поиска наилучших параметров нарезки и улучшения печати участники сообщества 3D-печати учатся на успехах и неудачах друг друга. Orca Slicer следует тому же принципу и использует машинное обучение для улучшения своей работы на основе успешного и неудачного опыта печати наших пользователей. Мы обучаем Orca Slicer быть умнее на основе реальных данных. По вашему согласию эта служба получит доступ к вашим журналам ошибок и журналам использования, в которых содержатся сведения, описанные в ",
- t55: "политике конфиденциальности",
- t56: ". Мы не собираем никаких личных данных, которые могут прямо или косвенно идентифицировать отдельного человека, включая, помимо прочего, имена, адреса, платёжную информацию или номера телефонов. Разрешая отправку, вы соглашаетесь с этими условиями и заявлением о политике конфиденциальности.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Европа",
- t61: "Северная Америка",
- t62: "Другой",
- t63: "После смены региона произойдёт выход из аккаунта и понадобится войти снова.",
- t64: "Сетевой плагин Bambu",
- t65: "Имейте в виду, что эти плагины не разрабатываются и не поддерживаются OrcaSlicer. Используйте их на свой страх и риск.",
- t66: "Полное дистанционное управление",
- t67: "Просмотр прямой трансляции с камеры",
- t68: "Синхронизация данных пользователя",
- t69: "Установить сетевой плагин Bambu",
- t70: "",
- t71: "Загрузка",
- t72: "Загрузка не удалась",
- t73: "Установка выполнена успешно.",
- t74: "Перезагрузка",
- t75: "Для связи с некоторыми моделями принтеров требуются проприетарные плагины. Выберите соответствующий плагин, если у вас такой принтер.",
- t76: "Сетевой плагин Bambu не обнаружен. Нажмите ",
- t77: "здесь",
- t78: ", чтобы установить его.",
- t79: "Ошибка установки плагина. ",
- t80: "Попробуйте выполнить следующие действия:",
- t81: "1, Нажмите ",
- t82: " для открытия папки плагина",
- t83: "2, Закройте все окна Orca Slicer",
- t84: "3, Удалите все файлы в папке плагина",
- t85: "4, Откройте Orca Slicer и снова установите плагин.",
- t86: "Закрыть",
- t87: "Инструкции",
- t88: "Удалить",
- t89: "Открыть папку с файлом",
- t90: "3D-модель",
- t91: "Скачать 3D-модели",
- t92: "Автор",
- t93: "Модифицировано",
- t94: "Поделиться",
- t95: "Информация о модели",
- t96: "Прикреплённые файлы",
- t97: "Информация о профиле",
- t98: "Имя модели",
- t100: "Описание модели",
- t101: "Список материалов",
- t102: "Памятка по сборке",
- t103: "Прочее",
- t104: "Имя профиля",
- t105: "Профиль автора",
- t106: "Описание профиля",
- t107: "Модели в сети",
- t108: "Больше",
- t109: "Системные материалы",
- t110: "Пользовательские материалы",
- t111: "Создать новый",
- t112: "Присоединяйтесь к программе",
- t113: "Вы можете изменить свой выбор в любое время.",
- t126: "Загрузка...",
- orca1: "Изменить информацию",
- orca2: "Информация отсутствует",
- orca3: "Режим конфиденциальности",
- orca5: "Включить режим конфиденциальности",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- ko_KR: {
- t1: "Orca Slicer에 오신 것을 환영합니다",
- t2: "Orca Slicer는 여러 단계로 설정됩니다. 시작!",
- t3: "사용자 약관",
- t4: "거부",
- t5: "동의",
- t6: "모든 사람의 출력 품질 개선을 위해 여러분의 도움이 필요합니다.",
- t7: "익명 데이터 전송 허용",
- t8: "뒤로",
- t9: "다음",
- t10: "프린터 선택",
- t11: "전체",
- t12: "전체 해제",
- t13: "mm 노즐",
- t14: "필라멘트 선택",
- t15: "프린터",
- t16: "필라멘트 종류",
- t17: "공급업체",
- t18: "오류",
- t19: "하나 이상의 필라멘트를 선택해야 합니다.",
- t20: "기본 필라멘트를 사용하시겠습니까?",
- t21: "예",
- t22: "아니오",
- t23: "릴리스 노트",
- t24: "시작",
- t25: "완료",
- t26: "로그인",
- t27: "등록",
- t28: "최근",
- t29: "상점",
- t30: "메뉴얼",
- t31: "새 프로젝트",
- t32: "새 프로젝트 생성",
- t33: "프로젝트 열기",
- t34: "핫스팟",
- t35: "최근 사용",
- t36: "예",
- t37: "하나 이상의 프린터를 선택해야 합니다.",
- t38: "취소",
- t39: "수락",
- t40: "네트워크 연결이 끊겼습니다. 확인하고 나중에 다시 시도하세요.",
- t47: "로그인 지역을 선택해주세요",
- t48: "아시아 태평양",
- t49: "중국",
- t50: "로그 아웃",
- t52: "건너뛰기",
- t53: "가입",
- t54: "3D 프린팅 커뮤니티에서 우리는 각자의 슬라이싱 매개변수와 설정을 조정하는 과정에서 서로의 성공과 실패를 통해 배웁니다. Orca Slicer는 동일한 원칙을 따르며 기계 학습을 사용하여 사용자의 방대한 출력물의 성공과 실패를 통해 성능을 향상시킵니다. 우리는 실제 데이터를 제공하여 Orca Slicer가 더욱 똑똑해지도록 교육하고 있습니다. 귀하가 원할 경우 이 서비스는 오류 로그 및 사용 로그의 정보에 액세스합니다. 여기에는 다음에 설명된 정보가 포함될 수 있습니다.",
- t55: "개인 정보 정책",
- t56: ". 당사는 이름, 주소, 결제 정보 또는 전화번호를 포함하되 이에 국한되지 않고 개인을 직간접적으로 식별할 수 있는 개인 데이터를 수집하지 않습니다. 이 서비스를 활성화함으로써 귀하는 본 약관과 개인정보 보호정책에 대한 설명에 동의하게 됩니다.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "유럽",
- t61: "북미",
- t62: "다른 지역",
- t63: "지역을 변경하면 계정이 로그아웃됩니다. 나중에 다시 로그인해 주세요.",
- t64: "Bambu 네트워크 플러그인",
- t65: "Please be aware that these plugins are not developed or maintained by OrcaSlicer. They should be used at your own discretion and risk.",
- t66: "전체 원격 제어",
- t67: "라이브뷰 스트리밍",
- t68: "사용자 데이터 동기화",
- t69: "Bambu 네트워크 플러그인 설치",
- t70: "",
- t71: "다운로드 중",
- t72: "다운로드 실패",
- t73: "설치 완료.",
- t74: "재시작",
- t75: "Some printer vendors require proprietary plugins for communication with their printers. Please select the corresponding plugin if you use such printers.",
- t76: "Bambu 네트워크 플러그인이 감지되지 않습니다. 여기를 ",
- t77: "클릭",
- t78: " 하여 설치하세요.",
- t79: "플러그인을 설치하지 못했습니다. ",
- t80: "다음 단계를 시도해 보세요:",
- t81: "1, 클릭 ",
- t82: " 하여 플러그인 디렉토리를 엽니다.",
- t83: "2, 열려 있는 모든 Orca Slicer를 닫습니다.",
- t84: "3, 플러그인 디렉터리 아래의 모든 파일 삭제합니다",
- t85: "4, Orca Slicer를 다시 열고 플러그인을 다시 설치하세요.",
- t86: "닫기",
- t87: "사용자 메뉴얼",
- t88: "제거",
- t89: "포함된 폴더 열기",
- t90: "3D 모델",
- t91: "3D 모델 다운로드",
- t92: "Bambu Christmas Cabin",
- t93: "프린터 연결",
- t94: "장치를 보려면 프린터 연결을 설정하세요.",
- t126: "로딩 중……",
- orca1: "Edit Project Info",
- orca2: "No model information",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- tr_TR: {
- t1: "Orca Slicer'a hoş geldiniz",
- t2: "Orca Dilimleyici birkaç adımda kurulacaktır. Hadi başlayalım!",
- t3: "Kullanıcı Sözleşmesi",
- t4: "Reddet",
- t5: "Onayla",
- t6: "Herkesin yazdırma işini iyileştirmek için yardımınızı rica ediyoruz",
- t7: "Anonim verilerin gönderilmesine izin ver",
- t8: "Geri",
- t9: "İleri",
- t10: "Yazıcı Seçimi",
- t11: "Hepsi",
- t12: "Hepsini temizle",
- t13: "mm nozul",
- t14: "Filament Seçimi",
- t15: "Yazıcı",
- t16: "Filament türü",
- t17: "Üretici",
- t18: "Hata",
- t19: "En az bir filament seçilmelidir.",
- t20: "Varsayılan filamenti kullanmak ister misiniz ?",
- t21: "Evet",
- t22: "Hayır",
- t23: "Sürüm notu",
- t24: "Başla",
- t25: "Bitir",
- t26: "Giriş Yap",
- t27: "Kayıt Ol",
- t28: "Son",
- t29: "Mağaza",
- t30: "Manual",
- t31: "Yeni proje",
- t32: "Yeni proje oluştur",
- t33: "Projeyi Aç",
- t34: "Erişim noktası",
- t35: "Yakın zamanda açıldı",
- t36: "OK",
- t37: "En az bir yazıcı seçilmelidir.",
- t38: "İptal Et",
- t39: "Onayla",
- t40: "Ağ bağlantısı kesildi, lütfen kontrol edin ve daha sonra tekrar deneyin.",
- t47: "Lütfen giriş bölgenizi seçin",
- t48: "Asya-Pasifik",
- t49: "Çin",
- t50: "Çıkış Yap",
- t52: "Atla",
- t53: "Katıl",
- t54: "3D Baskı topluluğunda, kendi dilimleme parametrelerimizi ve ayarlarımızı düzenlerken birbirimizin başarılarından ve başarısızlıklarından öğreniyoruz. Orca Slicer da aynı prensibi takip ediyor ve kullanıcılarımızın yaptığı çok sayıda baskının başarı ve başarısızlıklarından performansını artırmak için makine öğrenimini kullanıyor. Orca Slicer'ı gerçek dünya verileriyle besleyerek daha akıllı olması için eğitiyoruz. İsterseniz bu hizmet, hata günlüklerinizden ve kullanım günlüklerinizden, burada açıklanan bilgileri de içerebilecek bilgilere erişecektir. ",
- t55: "Gizlilik Politikası",
- t56: ". İsimler, adresler, ödeme bilgileri veya telefon numaraları dahil ancak bunlarla sınırlı olmamak üzere, bir bireyin doğrudan veya dolaylı olarak tanımlanmasını sağlayacak hiçbir Kişisel Veri toplamayacağız. Bu hizmeti etkinleştirerek bu şartları ve Gizlilik Politikasına ilişkin beyanı kabul etmiş olursunuz.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Avrupa",
- t61: "Kuzey Amerika",
- t62: "Diğerleri",
- t63: "Bölgeyi değiştirdikten sonra hesabınızdan çıkış yapılacaktır. Lütfen daha sonra tekrar giriş yapın.",
- t64: "Bambu Ağı eklentisi",
- t65: "Lütfen bu eklentilerin OrcaSlicer tarafından geliştirilmediğini veya bakımının yapılmadığını unutmayın. Kendi takdirinize ve riskinize göre kullanılmalıdırlar.",
- t66: "Tam uzaktan kontrol",
- t67: "Canlı görüntü akışı",
- t68: "Kullanıcı veri senkronizasyonu",
- t69: "Bambu Ağı eklentisini yükleyin",
- t70: "",
- t71: "İndiriliyor",
- t72: "İndirme başarısız oldu",
- t73: "Kurulum başarılı oldu.",
- t74: "Tekrar başlat",
- t75: "Bazı yazıcı üreticileri, yazıcılarıyla iletişim için özel eklentilere ihtiyaç duyar. Bu tür yazıcılar kullanıyorsanız lütfen ilgili eklentiyi seçin.",
- t76: "Bambu Ağı eklentisi algılanmadı. Yüklemek ",
- t77: "için ",
- t78: " burayı tıklayın.",
- t79: "Eklenti yüklenemedi. ",
- t80: "Aşağıdaki adımları deneyin:",
- t81: "1, Eklenti ",
- t82: " dizinini açmak için tıklayın",
- t83: "2, Tüm açık Orca slicerı kapatın",
- t84: "3, Eklenti dizini altındaki tüm dosyaları silin",
- t85: "4, Orca Slicer'ı yeniden açın ve eklentiyi tekrar yükleyin",
- t86: "Kapat",
- t87: "Kullanım kılavuzu",
- t88: "Kaldır",
- t89: "Dosyayı içeren klasörü açınız",
- t90: "3D Model",
- t91: "3D modelleri indirin",
- t92: "Oluşturan",
- t93: "Değiştiren",
- t94: "Paylaşan",
- t95: "Model Bilgileri",
- t96: "Aksesuarlar",
- t97: "Profil Bilgisi",
- t98: "Model adı",
- t100: "Model açıklaması",
- t101: "Malzeme Listesi",
- t102: "Montaj Kılavuzu",
- t103: "Diğer",
- t104: "Profil ismi",
- t105: "Profil Yazarı",
- t106: "Profil açıklaması",
- t107: "Çevrimiçi Modeller",
- t108: "DAHA FAZLA",
- t109: "Sistem Filamentleri",
- t110: "Özel Filamentler",
- t111: "Yeni Oluştur",
- t112: "Programa Katılın",
- t113: "Tercihinizi istediğiniz zaman değiştirebilirsiniz.",
- t126: "Yükleme devam ediyor……",
- orca1: "Proje Bilgilerini Düzenle",
- orca2: "Model bilgisi yok",
- orca3: "Gizli Mod",
- orca5: "Gizli Modu etkinleştirin.",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- pl_PL: {
- t1: "Witamy w Orca Slicer",
- t2: "Orca Slicer zostanie skonfigurowany w kilku krokach. Zacznijmy!",
- t3: "Umowa użytkownika",
- t4: "Nie zgadzam się",
- t5: "Zgadzam się",
- t6: "Uprzejmie prosimy o pomoc w ulepszaniu druku dla każdego",
- t7: "Zezwól na wysyłanie anonimowych danych",
- t8: "Wstecz",
- t9: "Dalej",
- t10: "Wybór drukarki",
- t11: "Wszystkie",
- t12: "Wyczyść wszystko",
- t13: "mm dysza",
- t14: "Wybór filamentu",
- t15: "Drukarka",
- t16: "Typ filamentu",
- t17: "Dostawca",
- t18: "Błąd",
- t19: "Przynajmniej jeden filament musi być wybrany.",
- t20: "Czy chcesz użyć domyślnego filamentu?",
- t21: "Tak",
- t22: "Nie",
- t23: "Informacje o wydaniu",
- t24: "Rozpocznij",
- t25: "Zakończ",
- t26: "Logowanie",
- t27: "Rejestracja",
- t28: "Ostatnie",
- t29: "Centrum",
- t30: "Instrukcja",
- t31: "Nowy Projekt",
- t32: "Utwórz nowy projekt",
- t33: "Otwórz Projekt",
- t34: "hotspot",
- t35: "Ostatnio otwarte",
- t36: "OK",
- t37: "Przynajmniej jedna drukarka musi być wybrana.",
- t38: "Anuluj",
- t39: "Potwierdź",
- t40: "Rozłączenie sieci, proszę sprawdzić i spróbować ponownie później.",
- t47: "Proszę wybrać swój region logowania",
- t48: "Azja-Pacyfik",
- t49: "Chiny",
- t50: "Wyloguj",
- t52: "Pomiń",
- t53: "Dołącz",
- t54: "W społeczności druku 3D uczymy się od sukcesów i porażek innych, aby dostosować nasze własne parametry i ustawienia krojenia. Orca Slicer podąża tą samą zasadą i wykorzystuje uczenie maszynowe do poprawy swojej wydajności na podstawie sukcesów i porażek dużej liczby wydruków naszych użytkowników. Szkolimy Orca Slicer, aby był mądrzejszy, dostarczając mu danych z rzeczywistego świata. Jeśli chcesz, ta usługa uzyska dostęp do informacji z Twoich logów błędów i logów użytkowania, które mogą zawierać informacje opisane w ",
- t55: "Polityka Prywatności",
- t56: ". Nie będziemy zbierać żadnych Danych Osobowych, przez które można bezpośrednio lub pośrednio zidentyfikować osobę, w tym bez ograniczeń nazwisk, adresów, informacji o płatnościach lub numerów telefonów. Aktywując tę usługę, zgadzasz się na te warunki i oświadczenie dotyczące Polityki Prywatności.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Europa",
- t61: "Ameryka Północna",
- t62: "Inne",
- t63: "Po zmianie regionu, zostaniesz wylogowany z konta. Proszę zaloguj się ponownie później.",
- t64: "Wtyczka Bambu Network",
- t65: "Proszę mieć świadomość, że te wtyczki nie są rozwijane ani utrzymywane przez OrcaSlicer. Powinny być używane na własne ryzyko i z rozwagą.",
- t66: "Pełna kontrola zdalna",
- t67: "Transmisja na żywo",
- t68: "Synchronizacja danych użytkownika",
- t69: "Zainstaluj wtyczkę Bambu Network",
- t70: "",
- t71: "Pobieranie",
- t72: "Nieudane pobieranie",
- t73: "Instalacja zakończona sukcesem.",
- t74: "Uruchom ponownie",
- t75: "Niektórzy dostawcy drukarek wymagają własnych wtyczek do komunikacji ze swoimi drukarkami. Proszę wybrać odpowiednią wtyczkę, jeśli korzystasz z takich drukarek.",
- t76: "Wtyczka Bambu Network nie wykryta. Kliknij ",
- t77: "tutaj",
- t78: " aby zainstalować.",
- t79: "Nie udało się zainstalować wtyczki. ",
- t80: "Spróbuj następujących kroków:",
- t81: "1, Kliknij ",
- t82: " aby otworzyć katalog wtyczek",
- t83: "2, Zamknij wszystkie otwarte Orca Slicer",
- t84: "3, Usuń wszystkie pliki z katalogu wtyczek",
- t85: "4, Ponownie otwórz Orca Slicer i zainstaluj wtyczkę ponownie",
- t86: "Zamknij",
- t87: "Instrukcja użytkownika",
- t88: "Usuń",
- t89: "Otwórz folder zawierający",
- t90: "Model 3D",
- t91: "Pobierz modele 3D",
- t92: "Utworzone przez",
- t93: "Połączenie z drukarką",
- t94: "Proszę skonfigurować połączenie z drukarką, aby wyświetlić urządzenie.",
- t95: "Informacje o modelu",
- t96: "Akcesoria",
- t97: "Informacje o profilu",
- t98: "Nazwa modelu",
- t100: "Opis modelu",
- t101: "BOM",
- t102: "Przewodnik montażu",
- t103: "Inne",
- t104: "Nazwa profilu",
- t105: "Autor profilu",
- t106: "Opis profilu",
- t107: "Modele online",
- t108: "WIĘCEJ",
- t109: "Systemowe filamenty",
- t110: "Niestandardowe filamenty",
- t111: "Utwórz nowy",
- t112: "Dołącz do programu",
- t113: "Możesz zmienić swój wybór w preferencjach w dowolnym momencie.",
- t126: "Ładowanie trwa……",
- orca1: "Edytuj informacje o projekcie",
- orca2: "Brak informacji o modelu",
- orca3: "Tryb «Niewidzialny»",
- orca5: "Włącz tryb «Niewidzialny»",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- pt_BR: {
- t1: "Bem-vindo ao Orca Slicer",
- t2: "Orca Slicer será configurado em várias etapas. Vamos começar!",
- t3: "Termos de Uso",
- t4: "Discordo",
- t5: "Concordo",
- t6: "Nós pedimos gentilmente sua ajuda para melhorar a impressão de todos.Venha e junte-se ao nosso Programa de Melhoria de Experiência do Usuário",
- t7: "Juntar-se ao nosso Programa de Melhoria de Experiência do Usuário",
- t8: "Voltar",
- t9: "Próximo",
- t10: "Seleção de Impressora",
- t11: "Tudo",
- t12: "Limpar tudo",
- t13: "mm nozzle",
- t14: "Seleção de Filamento",
- t15: "Impressora",
- t16: "Tipo de Filamento",
- t17: "Fabricante",
- t18: "Erro",
- t19: "Pelo menos um filamento deve ser selecionado.",
- t20: "Você deseja usar o filamento padrão?",
- t21: "Sim",
- t22: "Não",
- t23: "Notas de Atualização",
- t24: "Vamos Começar",
- t25: "Terminar",
- t26: "Login",
- t27: "Registrar",
- t28: "Recente",
- t29: "Loja",
- t30: "Manual",
- t31: "Novo Projeto",
- t32: "Criar Novo Projeto",
- t33: "Abrir Projeto",
- t34: "hotspot",
- t35: "Aberto Recentemente",
- t36: "OK",
- t37: "Pelo menos uma impressora deve ser selecionada.",
- t38: "Cancelar",
- t39: "Confirmar",
- t40: "Conexão desconectada, por favor cheque e tente novamente.",
- t47: "Por favor, selecione sua região de login",
- t48: "Asia-Pacifico",
- t49: "China",
- t50: "Desconectar",
- t52: "Pular",
- t53: "Juntar",
- t54: "Na comunidade de Impressão 3D, aprendemos com os sucessos e falhas uns dos outros para ajustar nossos próprios parâmetros e configurações de fatiamento. O Orca Slicer segue o mesmo princípio e utiliza aprendizado de máquina para melhorar seu desempenho com base nos sucessos e falhas de um grande número de impressões realizadas por nossos usuários. Estamos treinando o Orca Slicer para ser mais inteligente, alimentando-o com dados do mundo real. Se você concordar, este serviço acessará informações de seus registros de erros e registros de uso, que podem incluir informações descritas em…",
- t55: "Política de Privacidade",
- t56: ". Não coletaremos nenhum dado pessoal pelo qual um indivíduo possa ser identificado diretamente ou indiretamente, incluindo, sem limitação, nomes, endereços, informações de pagamento ou números de telefone. Ao habilitar este serviço, você concorda com estes termos e com a declaração sobre a Política de Privacidade.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Europa",
- t61: "America do Norte",
- t62: "Outras",
- t63: "Após alterar sua região, sua conta será desconectada. Por favor faça login novamente mais tarde.",
- t64: "Plugins Proprietários",
- t65: "Por favor seja cuidadoso estes plugins não são desenvolvidos ou mantidos por OrcaSlicer. Eles devem ser usados por sua conta e risco.",
- t66: "Controle remoto total",
- t67: "Transmissão Ao Vivo",
- t68: "Sincronização de Dados do Usuário",
- t69: "Instalar Bambu Network plug-in",
- t70: "",
- t71: "Baixando",
- t72: "Falha baixando",
- t73: "Instalação concluída.",
- t74: "Reiniciar",
- t75: "Algumass fabricantes de impressoras exigem plugins proprietários para comunicação com suas impressoras. Se você utiliza tais impressoras, selecione o plug-in correspondente.",
- t76: "Bambu Network plug-in não detectado. Clique ",
- t77: "Aqui",
- t78: " para instalar isto.",
- t79: "Instalação do plug-in falhou. ",
- t80: "Tente os seguintes passos:",
- t81: "1, Clique ",
- t82: " para abrir a pasta do plug-in",
- t83: "2, Feche totalmente o Orca Slicer",
- t84: "3, Delete todos os arquivos na pasta do plug-in",
- t85: "4, Reabra o Orca Slicer e instale o plug-in novamente",
- t86: "Fechar",
- t87: "Manual de Usuário",
- t88: "Remover",
- t89: "Abrir pasta de Conteúdo",
- t90: "Modelo 3D",
- t91: "Baixar Modelos 3D",
- t92: "Criado por",
- t93: "Remixado por",
- t94: "Compartilhado por",
- t95: "Informações do Modelo",
- t96: "Acessórios",
- t97: "Informações do Perfil",
- t98: "Nome do Modelo",
- t100: "Descrição do Modelo",
- t101: "BOM",
- t102: "Guia de Montagem",
- t103: "Outro",
- t104: "Nome do Perfil",
- t105: "Autor do Perfil",
- t106: "Descrição do Perfil",
- t107: "Modelos Online",
- t108: "MAIS",
- t109: "Filamentos do Sistema",
- t110: "Filamentos Personalizados",
- t111: "Criar Novo",
- t112: "Junte-se ao Programa",
- t113: "Você pode alterar sua escolha nas Preferências a qualquer momento",
- t126: "Carregamento em andamento……",
- orca1: "Editar Info do Projeto",
- orca2: "Sem informação do modelo",
- orca3: "Modo Furtivo",
- orca5: "Habilita Modo Furtivo.",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud Account",
- orca8: "Not signed in",
- orca9: "Bambu Cloud Account",
- orca10: "Not connected",
- orca11: "Connected",
- },
- lt_LT: {
- t1: "Pasisveikinkite su Orca Slicer",
- t2: "Orca Slicer bus nustatyta per kelis žingsnius. Pradėkime!",
- t3: "Naudotojo sutartis",
- t4: "Nesutinku",
- t5: "Sutinku",
- t6: "Maloniai prašome jūsų pagalbos, kad pagerintume visų spausdinimą. Prisijunkite prie mūsų klientų patirties gerinimo programos",
- t7: "Prisijunkite prie mūsų klientų patirties gerinimo programos",
- t8: "Atgal",
- t9: "Pirmyn",
- t10: "Spausdintuvo pasirinkimas",
- t11: "Visi",
- t12: "Išvalyti visus",
- t13: "mm purkštukas",
- t14: "Gijos pasirinkimas",
- t15: "Spausdintuvas",
- t16: "Gijos tipas",
- t17: "Gamintojas",
- t18: "Klaida",
- t19: "Turi būti pasirinkta bent viena gija.",
- t20: "Ar norite naudoti numatytąją giją?",
- t21: "Taip",
- t22: "Ne",
- t23: "Išleidimo pastabos",
- t24: "Pradėti",
- t25: "Pabaigti",
- t26: "Prisijungti",
- t27: "Prisiregistruoti",
- t28: "Naujausi",
- t29: "Pirkti",
- t30: "Rankinis",
- t31: "Naujas projektas",
- t32: "Sukurti naują projektą",
- t33: "Atverti projektą",
- t34: "Prieigos taškas",
- t35: "Neseniai atidaryti",
- t36: "Gerai",
- t37: "Turi būti pasirinktas bent vienas spausdintuvas.",
- t38: "Atšaukti",
- t39: "Patvirtinti",
- t40: "Tinklas atjungtas, patikrinkite ir bandykite vėliau.",
- t47: "Pasirinkite prisijungimo regioną",
- t48: "Azija-Ramusis vandenynas",
- t49: "Kinija",
- t50: "Atsijungti",
- t52: "Praleisti",
- t53: "Prisijungti",
- t54: "3D spausdinimo bendruomenėje mokomės vieni iš kitų sėkmių ir nesėkmių, kad galėtume pritaikyti savo pjaustymo parametrus ir nustatymus. Orca Slicer vadovaujasi tuo pačiu principu ir naudoja mašininį mokymąsi, kad pagerintų savo veikimą, remdamasi daugybės mūsų naudotojų atspaudų sėkmėmis ir nesėkmėmis. Maitindami Orca Slicer realaus pasaulio duomenimis, mokome ją būti protingesne. Jei pageidaujate, ši paslauga pasieks informaciją iš jūsų klaidų žurnalų ir naudojimo žurnalų, į kuriuos gali būti įtraukta informacija, aprašyta ",
- t55: "privatumo politikoje",
- t56: ". Nerinksime jokių asmens duomenų, pagal kuriuos galima tiesiogiai ar netiesiogiai nustatyti asmens tapatybę, įskaitant, bet neapsiribojant vardus, adresus, mokėjimo informaciją ar telefono numerius. Įjungdami šią paslaugą sutinkate su šiomis sąlygomis ir privatumo politikos nuostatomis.",
- t57: "",
- t58: "",
- t59: ".",
- t60: "Europa",
- t61: "Šiaurės Amerika",
- t62: "Kiti",
- t63: "Pakeitus regioną, jūsų paskyra bus išregistruota. Vėliau vėl prisijunkite.",
- t64: "Patentuoti papildiniai",
- t65: "Atkreipkite dėmesį, kad OrcaSlicer šių papildinių nesukuria ir neprižiūri. Juos turėtumėte naudoti savo nuožiūra ir rizika.",
- t66: "Pilnas nuotolinis valdymas",
- t67: "Tiesioginė transliacija",
- t68: "Naudotojo duomenų sinchronizavimas",
- t69: "Įdiegti Bambu tinklo papildinį",
- t70: "",
- t71: "Atsisiunčiama",
- t72: "Nepavyko atsisiųsti",
- t73: "Diegimas sėkmingas.",
- t74: "Paleisti iš naujo",
- t75: "Kai kurie spausdintuvų gamintojai reikalauja patentuotų priedų, kad būtų galima bendrauti su jų spausdintuvais. Jei naudojate tokius spausdintuvus, pasirinkite atitinkamą įskiepį.",
- t76: "Neaptiktas Bambu tinklo papildinys. Spustelėkite ",
- t77: "čia",
- t78: " jo diegimui.",
- t79: "Nepavyko įdiegti papildinio. ",
- t80: "Išbandykite šiuos žingsnius:",
- t81: "1, Spustelkite ",
- t82: " atidaryti papildinių katalogą",
- t83: "2, Uždarykite visas veikiančias Orca Slicer programas",
- t84: "3, Ištrinkite visus failus iš papildinių katalogo",
- t85: "4, Iš naujo atverkite OrcaSlicer ir iš naujo įdiekite papildinį",
- t86: "Užverti",
- t87: "Naudotojo vadovas",
- t88: "Pašalinti",
- t89: "Atidaryti katalogą, kuriame yra",
- t90: "3D modelis",
- t91: "Atsisiųsti 3D modelius",
- t92: "Sukurta",
- t93: "Perkurta",
- t94: "Pasidalinta",
- t95: "Modelio informacija",
- t96: "Priedai",
- t97: "Profilio informacija",
- t98: "Modelio pavadinimas",
- t100: "Modelio aprašymas",
- t101: "BOM",
- t102: "Surinkimo vadovas",
- t103: "Kita",
- t104: "Profilio pavadinimas",
- t105: "Profilio autorius",
- t106: "Profilio aprašymas",
- t107: "Modeliai internete",
- t108: "DAUGIAU",
- t109: "Sistemos gijos",
- t110: "Pasirinktinės gijos",
- t111: "Sukurti naują",
- t112: "Prisijungti prie programos",
- t113: "Savo pasirinkimą galite bet kada pakeisti.",
- orca1: "Redaguoti projekto informaciją",
- orca2: "Nėra informacijos apie modelį",
- orca3: "Slaptas režimas",
- orca5: "Įjungti slaptą režimą.",
- orca6: "Bambu Cloud",
- orca7: "Orca Cloud paskyra",
- orca8: "Neprisiregistruota",
- orca9: "Bambu Cloud paskyra",
- orca10: "Neprisijungta",
- orca11: "Prisijungta",
- },
-};
-
-var LANG_COOKIE_NAME = "BambuWebLang";
-var LANG_COOKIE_EXPIRESECOND = 365 * 86400;
-
-function TranslatePage() {
- let strLang = GetQueryString("lang");
- if (strLang != null) {
- //setCookie(LANG_COOKIE_NAME,strLang,LANG_COOKIE_EXPIRESECOND,'/');
- localStorage.setItem(LANG_COOKIE_NAME, strLang);
- } else {
- //strLang=getCookie(LANG_COOKIE_NAME);
- strLang = localStorage.getItem(LANG_COOKIE_NAME);
- }
-
- //alert(strLang);
-
- if (!LangText.hasOwnProperty(strLang)) strLang = "en";
-
- let AllNode = $(".trans");
- let nTotal = AllNode.length;
- for (let n = 0; n < nTotal; n++) {
- let OneNode = AllNode[n];
-
- let tid = $(OneNode).attr("tid");
- if (LangText[strLang].hasOwnProperty(tid)) {
- $(OneNode).html(LangText[strLang][tid]);
- }
- }
-}
-
diff --git a/resources/web/dialog/ColorPickerDialog/colorpicker-model.js b/resources/web/dialog/ColorPickerDialog/colorpicker-model.js
new file mode 100644
index 0000000000..c95aed367d
--- /dev/null
+++ b/resources/web/dialog/ColorPickerDialog/colorpicker-model.js
@@ -0,0 +1,155 @@
+/* Pure color/state helpers shared by the page and its node:test contract tests. */
+(function (root, factory) {
+ "use strict";
+ const api = factory();
+ if (typeof module === "object" && module.exports) module.exports = api;
+ else root.ColorPickerModel = api;
+})(typeof globalThis === "object" ? globalThis : this, function () {
+ "use strict";
+
+ function parseHex(hex) {
+ if (typeof hex !== "string" || !/^#[0-9a-f]{6}([0-9a-f]{2})?$/i.test(hex)) return null;
+ return [1, 3, 5, 7].map((offset) => offset === 7 && hex.length === 7 ? 255 : parseInt(hex.slice(offset, offset + 2), 16));
+ }
+
+ function toHex(color) {
+ return "#" + color.map((byte) => Math.round(byte).toString(16).padStart(2, "0")).join("").toUpperCase();
+ }
+
+ const MAX_GRADIENT_COLORS = 7; // Most colors a gradient may have. A caller allows 2 (the default) up to this many.
+ const NEW_GRADIENT_HUE_SHIFT = 75; // Hue step used for every newly created gradient color.
+ const gradientLimit = (value) => Math.max(2, Math.min(MAX_GRADIENT_COLORS, Math.floor(Number(value)) || 2));
+
+ // `maxGradientColors` caps how many colors a gradient may have (2 when omitted).
+ function normalizeSelection(value, options = {}, maxGradientColors = 2) {
+ if (!value || !["solid", "gradient"].includes(value.type) || !Array.isArray(value.colors)) return null;
+ if (value.type === "gradient" && !options.allow_gradient) return null;
+ const count = value.colors.length;
+ if (value.type === "solid" ? count !== 1 : count < 2 || count > gradientLimit(maxGradientColors)) return null;
+ const colors = value.colors.map(parseHex);
+ if (colors.some((color) => color === null)) return null;
+ if (!options.allow_alpha) colors.forEach((color) => { color[3] = 255; });
+ return {type: value.type, colors: colors.map(toHex)};
+ }
+
+ function rgbToHsl(r, g, b) {
+ r /= 255; g /= 255; b /= 255;
+ const max = Math.max(r, g, b), min = Math.min(r, g, b), delta = max - min;
+ let h = 0, s = 0;
+ const l = (max + min) / 2;
+ if (delta) {
+ s = delta / (1 - Math.abs(2 * l - 1));
+ if (max === r) h = ((g - b) / delta + (g < b ? 6 : 0)) / 6;
+ else if (max === g) h = ((b - r) / delta + 2) / 6;
+ else h = ((r - g) / delta + 4) / 6;
+ }
+ return [h * 360, s * 100, l * 100];
+ }
+
+ function hslToRgb(h, s, l) {
+ h = ((h % 360) + 360) % 360 / 60; s /= 100; l /= 100;
+ const c = (1 - Math.abs(2 * l - 1)) * s;
+ const x = c * (1 - Math.abs(h % 2 - 1)), m = l - c / 2;
+ const sectors = [[c,x,0], [x,c,0], [0,c,x], [0,x,c], [x,0,c], [c,0,x]];
+ return sectors[Math.floor(h)].map((channel) => Math.round((channel + m) * 255));
+ }
+
+ function contrastColor(color, hueShift = 90) {
+ if (!Number.isFinite(hueShift)) hueShift = 90;
+ const degrees = Math.max(-180, Math.min(180, hueShift));
+ const amount = Math.abs(degrees) / 180;
+ const [h, s, l] = rgbToHsl(color[0], color[1], color[2]);
+ const grey = s < 10;
+ const target = grey ? (l < 50 ? 100 : 0) : 100 - l;
+ const rgb = hslToRgb(h + degrees, grey ? 0 : s, l + (target - l) * amount);
+ return [...rgb, color[3]];
+ }
+
+ // options.max_gradient_colors (2..7, default 2) is how many colors this page lets a gradient have.
+ function createState(options = {}, selection = {type: "solid", colors: ["#808080"]}) {
+ const capabilities = {allow_gradient: options.allow_gradient === true, allow_alpha: options.allow_alpha === true};
+ // gradient stays null until a selection provides one or the user switches to gradient mode.
+ const state = {options: capabilities, maxGradientColors: gradientLimit(options.max_gradient_colors),
+ mode: "solid", active: 0, solid: [128,128,128,255], gradient: null};
+ if (!applySelection(state, selection)) return null;
+ return state;
+ }
+
+ function applySelection(state, value) {
+ const selection = normalizeSelection(value, state.options, state.maxGradientColors);
+ if (!selection) return false;
+ state.mode = selection.type;
+ const colors = selection.colors.map(parseHex);
+ if (state.mode === "solid") state.solid = colors[0];
+ else {
+ state.gradient = colors;
+ state.active = Math.min(state.active, colors.length - 1); // A gradient with fewer colors must not leave the selected stop past its end.
+ }
+ return true;
+ }
+
+ function activeColor(state) { return state.mode === "solid" ? state.solid : state.gradient[state.active]; }
+
+ function setMode(state, mode) {
+ if (mode !== "solid" && (mode !== "gradient" || !state.options.allow_gradient)) return false;
+ // A new gradient starts at the current solid color and ends at its contrast color.
+ if (mode === "gradient" && !state.gradient) state.gradient = [[...state.solid], contrastColor(state.solid, NEW_GRADIENT_HUE_SHIFT)];
+ state.mode = mode;
+ return true;
+ }
+
+ function addGradientColor(state) {
+ if (state.mode !== "gradient" || state.gradient.length >= state.maxGradientColors) return false;
+ state.gradient.splice(state.active + 1, 0, contrastColor(state.gradient[state.active], NEW_GRADIENT_HUE_SHIFT));
+ state.active += 1;
+ return true;
+ }
+
+ function removeGradientColor(state) {
+ if (state.mode !== "gradient" || state.gradient.length <= 2) return false;
+ state.gradient.splice(state.active, 1);
+ state.active = Math.min(state.active, state.gradient.length - 1);
+ return true;
+ }
+
+ function setRgb(state, rgb) {
+ if (rgb.length !== 3 || rgb.some((v) => !Number.isFinite(v) || v < 0 || v > 255)) return false;
+ const color = activeColor(state);
+ rgb.forEach((v, i) => { color[i] = Math.round(v); });
+ return true;
+ }
+
+ function setAlphaPercent(state, value) {
+ if (!state.options.allow_alpha || !Number.isFinite(value) || value < 0 || value > 100) return false;
+ activeColor(state)[3] = Math.round(value * 255 / 100);
+ return true;
+ }
+
+ function setHex(state, hex) {
+ const color = parseHex(hex);
+ if (!color) return false;
+ if (hex.length === 7) color[3] = activeColor(state)[3];
+ if (!state.options.allow_alpha) color[3] = 255;
+ if (state.mode === "solid") state.solid = color;
+ else state.gradient[state.active] = color;
+ return true;
+ }
+
+ function exportSelection(state) {
+ const colors = state.mode === "solid" ? [state.solid] : state.gradient;
+ return normalizeSelection({type: state.mode, colors: colors.map(toHex)}, state.options, state.maxGradientColors);
+ }
+
+ // Favorites retain full capabilities regardless of what this caller can select.
+ function normalizeFavorites(values) {
+ if (!Array.isArray(values)) return [];
+ return values.slice(0, 24).map((value) => normalizeSelection(value, {allow_gradient: true, allow_alpha: true}, MAX_GRADIENT_COLORS)).filter(Boolean);
+ }
+
+ function selectionBackground(value) {
+ return value.type === "gradient" ? `linear-gradient(to right, ${value.colors.join(", ")})` : `linear-gradient(${value.colors[0]}, ${value.colors[0]})`;
+ }
+
+ return {MAX_GRADIENT_COLORS, NEW_GRADIENT_HUE_SHIFT, contrastColor, parseHex, toHex, normalizeSelection, rgbToHsl, hslToRgb, createState, applySelection, activeColor, setMode,
+ addGradientColor, removeGradientColor, setRgb, setAlphaPercent, setHex, exportSelection, normalizeFavorites, selectionBackground};
+});
diff --git a/resources/web/dialog/ColorPickerDialog/colorpicker.browser.test.js b/resources/web/dialog/ColorPickerDialog/colorpicker.browser.test.js
new file mode 100644
index 0000000000..94dd7b77b0
--- /dev/null
+++ b/resources/web/dialog/ColorPickerDialog/colorpicker.browser.test.js
@@ -0,0 +1,314 @@
+// Optional real-DOM regressions. Use an existing Playwright installation:
+// ORCA_PLAYWRIGHT_MODULE= ORCA_BROWSER_EXECUTABLE=
+// ORCA_BROWSER_ENGINE=webkit exercises the macOS WebView layout engine.
+// node --test resources/web/dialog/ColorPickerDialog/colorpicker.browser.test.js
+const {test, before, after} = require("node:test");
+const assert = require("node:assert/strict");
+const {readFileSync} = require("node:fs");
+const {resolve} = require("node:path");
+const {pathToFileURL} = require("node:url");
+const engineName = process.env.ORCA_BROWSER_ENGINE || "chromium";
+let engine;
+try { engine = require(process.env.ORCA_PLAYWRIGHT_MODULE || "playwright")[engineName]; }
+catch (error) { if (error.code !== "MODULE_NOT_FOUND") throw error; }
+const options = {skip: engine ? false : "Use an existing Playwright installation via ORCA_PLAYWRIGHT_MODULE"};
+const url = pathToFileURL(resolve(__dirname, "index.html")).href;
+let browser;
+before(async () => { if (engine) browser = await engine.launch({headless: true, ...(process.env.ORCA_BROWSER_EXECUTABLE ? {executablePath: process.env.ORCA_BROWSER_EXECUTABLE} : {})}); });
+after(async () => { if (browser) await browser.close(); });
+async function open(t, strings = {}, language = "") {
+ const page = await browser.newPage({viewport: {width: 600, height: 660}}), errors = [];
+ page.on("pageerror", error => errors.push(error.message));
+ t.after(async () => { await page.close(); assert.deepEqual(errors, []); });
+ await page.addInitScript(({table, language}) => {
+ window.ORCA_UI_STRINGS = table;
+ window.ORCA_COLOR_PICKER_LANGUAGE = language;
+ window.messages = [];
+ window.wx = {postMessage: text => messages.push(JSON.parse(text))};
+ }, {table: strings, language});
+ await page.goto(url);
+ const ready = await page.evaluate(() => messages[0]);
+ assert.equal(ready.command, "ready");
+ return {page, ready, send: payload => page.evaluate(value => ColorPickerDialog.handleMessage(value), payload)};
+}
+function init(ready, gradient = false, alpha = false) {
+ return {command: "init", page_id: ready.page_id, options: {allow_gradient: gradient, allow_alpha: alpha},
+ selection: {type: "solid", colors: ["#01234567"]},
+ ui: {sidebar_open: true, palette: "basic"},
+ favorites: [{type: "gradient", colors: ["#FF000040", "#0000FF90"]}, {type: "solid", colors: ["#ABCDEF40"]}]};
+}
+async function count(page, command) { return page.evaluate(value => messages.filter(message => message.command === value).length, command); }
+
+for (const gradient of [false, true]) for (const alpha of [false, true]) {
+ test(`Native capabilities gate gradient=${gradient} and alpha=${alpha}`, options, async t => {
+ const {page, ready, send} = await open(t);
+ assert.equal(await page.locator("#confirmBtn").isDisabled(), true);
+ assert.equal(await send({...init(ready), options: {allow_gradient: "yes", allow_alpha: alpha}}), false);
+ assert.equal(await send({...init(ready), page_id: "stale"}), false);
+ assert.equal(await send(init(ready, gradient, alpha)), true);
+ assert.equal(await page.locator("#modeControls").isVisible(), gradient);
+ assert.equal(await page.locator("#alphaControls").isVisible(), alpha);
+ assert.equal(await page.locator("#userColors button:not(.empty)").count(), gradient ? 2 : 1);
+ await page.locator("#userColors button:not(.empty)").last().click();
+ const selection = await page.evaluate(() => ColorPickerDialog.exportSelection());
+ assert.deepEqual(selection, {type: "solid", colors: [alpha ? "#ABCDEF40" : "#ABCDEFFF"]});
+ assert.equal(await send(init(ready, gradient, alpha)), true);
+ assert.deepEqual(await page.evaluate(() => ColorPickerDialog.exportSelection()), selection, "repeated ready/init retains edits");
+ await page.locator("#colorPreview").click();
+ const favorites = await page.evaluate(() => messages.at(-1).favorites);
+ assert(favorites.some(favorite => favorite.colors[0] === "#ABCDEF40"), "original favorites retain their alpha");
+ assert(favorites.some(favorite => favorite.type === "gradient"), "filtered gradients remain stored");
+ await page.locator("#confirmBtn").click();
+ assert.deepEqual(await page.evaluate(() => messages.at(-1).selection), selection);
+ });
+}
+
+test("Visible incomplete editors block confirmation and favorites until recovery", options, async t => {
+ const {page, ready, send} = await open(t); await send(init(ready, true, true));
+ for (const [id, value, valid] of [["rValue", "", "21"], ["oValue", "", "50"], ["hexInput", "GG", "12345680"]]) {
+ await page.locator("#" + id).fill(value);
+ const confirms = await count(page, "confirm"), saves = await count(page, "update_favorites");
+ await page.locator("#confirmBtn").evaluate(element => element.click()); await page.locator("#colorPreview").click();
+ assert.equal(await count(page, "confirm"), confirms); assert.equal(await count(page, "update_favorites"), saves);
+ await page.locator("#" + id).fill(valid); await page.locator("#" + id).press("Enter");
+ assert.equal(await count(page, "confirm"), confirms + 1);
+ }
+ await page.locator("#hValue").fill(""); // HSL is now visible beside RGB, so incomplete HSL must block.
+ const hslConfirms = await count(page, "confirm");
+ await page.locator("#confirmBtn").evaluate(element => element.click());
+ assert.equal(await count(page, "confirm"), hslConfirms);
+ await page.locator("#hValue").fill("100");
+ const confirms = await count(page, "confirm"); await page.locator("#confirmBtn").click();
+ assert.equal(await count(page, "confirm"), confirms + 1);
+ await page.locator("#rValue").fill(""); await page.locator("#rValue").press("Escape");
+ assert.equal(await page.evaluate(() => messages.at(-1).command), "cancel");
+});
+
+test("Numeric channel and opacity edits clamp to their field bounds", options, async t => {
+ const {page, ready, send} = await open(t); await send(init(ready, true, true));
+ for (const [id, input, expected] of [["rValue", "999", "255"], ["rValue", "-1", "0"],
+ ["hValue", "361", "360"], ["oValue", "101", "100"], ["oValue", "-1", "0"]]) {
+ await page.locator("#" + id).fill(input);
+ assert.equal(await page.locator("#" + id).inputValue(), expected);
+ assert.equal(await page.locator("#" + id).evaluate(element => element.checkValidity()), true);
+ }
+ assert.equal((await page.evaluate(() => ColorPickerDialog.exportSelection())).colors[0].slice(-2), "00");
+});
+
+test("Endpoint edits and favorites retain ordered byte alpha", options, async t => {
+ const {page, ready, send} = await open(t);
+ await send({...init(ready, true, true), selection: {type: "gradient", colors: ["#FF000001", "#0000FF80"]}});
+ await page.locator(".gradient-thumb[data-index='1']").click();
+ await page.locator('.color-item[title="Red"]').first().click();
+ assert.deepEqual(await page.evaluate(() => ColorPickerDialog.exportSelection()), {type: "gradient", colors: ["#FF000001", "#FF000080"]});
+ await page.locator("#hexInput").fill("0000FF80"); await page.locator(".gradient-thumb[data-index='0']").click();
+ assert.equal(await page.locator("#hexInput").inputValue(), "FF000001");
+ await page.locator("#colorPreview").click();
+ assert.deepEqual(await page.evaluate(() => messages.at(-1).favorites[0]), {type: "gradient", colors: ["#FF000001", "#0000FF80"]});
+});
+
+test("Read-only favorites remain selectable and late documents cannot initialize", options, async t => {
+ const {page, ready, send} = await open(t); await send({...init(ready), favorites_writable: false});
+ assert.equal(await page.locator("#colorPreview").isDisabled(), true);
+ await page.locator("#userColors button:not(.empty)").first().click();
+ assert.equal(await page.locator("#hexInput").inputValue(), "ABCDEF");
+ await page.reload();
+ assert.equal(await send(init(ready)), false); assert.equal(await page.locator("#confirmBtn").isDisabled(), true);
+});
+
+test("Document strings translate palette names and editor errors while retaining RAL codes and numeric labels", options, async t => {
+ const source = readFileSync(resolve(__dirname, "../../../../src/slic3r/GUI/ColorPickerDialog.cpp"), "utf8");
+ const keys = [...source.matchAll(/_u8L\("([^"\n]+)"\)/g)].map(match => match[1]);
+ const strings = Object.fromEntries(keys.map(key => [key, "Translated: " + key]));
+ const {page, ready, send} = await open(t, strings); await send({...init(ready, true, true), options: {allow_gradient: true, allow_alpha: true, max_gradient_colors: 7}, preserve_multi_color: true});
+ assert.equal(await page.title(), strings["Color Picker"]);
+ for (const element of await page.locator("[data-i18n]").all()) assert.equal(await element.textContent(), strings[await element.getAttribute("data-i18n")]);
+ for (const attribute of ["aria-label", "title"]) for (const element of await page.locator(`[data-i18n-${attribute}]`).all())
+ assert.equal((await element.getAttribute(attribute)).split("\n")[0], strings[await element.getAttribute(`data-i18n-${attribute}`)]);
+ assert.equal(await page.locator("#selectionNotice").textContent(), strings["The current multi-color selection is kept until you choose a different color."]);
+ for (const palette of ["basic", "orca", "ral", "gradient"]) {
+ await page.selectOption("#paletteCombo", palette);
+ const names = await page.evaluate(value => ColorPickerPalettes[value].map(entry => entry.name), palette);
+ assert.deepEqual(await page.locator(".color-name").allTextContents(), names.map(name => {
+ const ral = name.match(/^(\d{4}) (.+)$/); return ral ? `${ral[1]} ${strings[ral[2]]}` : /^%\d+$/.test(name) ? name : strings[name];
+ }));
+ }
+ await page.locator("#hexInput").fill("bad");
+ assert.equal(await page.locator("#hexInput").evaluate(element => element.validationMessage), strings["Enter a complete hexadecimal color"]);
+ await page.locator("#hexInput").fill("12345680");
+ for (const [id, invalid, valid, key] of [["rValue", "", "18", "Invalid input"],
+ ["oValue", "", "50", "Invalid input"]]) {
+ const confirms = await count(page, "confirm");
+ await page.locator("#" + id).fill(invalid);
+ await page.locator("#confirmBtn").evaluate(element => element.click());
+ await page.locator("#colorPreview").click(); // Saving invokes the same translated validation while OK is disabled.
+ assert.equal(await count(page, "confirm"), confirms);
+ assert.equal(await page.locator("#" + id).evaluate(element => element.validationMessage), strings[key]);
+ await page.locator("#" + id).fill(valid);
+ assert.equal(await page.locator("#" + id).evaluate(element => element.validationMessage), "");
+ await page.locator("#confirmBtn").click();
+ assert.equal(await count(page, "confirm"), confirms + 1);
+ }
+ await page.locator("#hValue").fill("361");
+ await page.locator("#colorPreview").click();
+ assert.equal(await page.locator("#hValue").inputValue(), "360", "out-of-range hue clamps at its boundary");
+ await page.locator(".color-item").first().click();
+ assert.equal(await page.locator("#hValue").evaluate(element => element.validationMessage), "", "a new palette selection clears the previous editor error");
+});
+
+test("Document language and escaped labels preserve untranslated English fallback", options, async t => {
+ const cancel = '取消 "Cancel" \\ /\n下一行';
+ const {page, ready, send} = await open(t, {Cancel: cancel}, "zh-CN");
+ await send(init(ready));
+ assert.equal(await page.locator("html").getAttribute("lang"), "zh-CN");
+ assert.equal(await page.locator("#cancelBtn").textContent(), cancel);
+ assert.equal(await page.title(), "Color Picker");
+ assert.equal(await page.locator(".color-name").first().textContent(), "Red");
+ assert.deepEqual(await page.locator("label[for=hValue],label[for=sValue],label[for=lValue],label[for=rValue],label[for=gValue],label[for=bValue]").allTextContents(), ["H", "S", "L", "R", "G", "B"]);
+ assert.deepEqual(await page.evaluate(() => ColorPickerDialog.exportSelection()), {type: "solid", colors: ["#012345FF"]});
+});
+
+test("Global control colors follow the system while host semantic colors follow the app", options, async t => {
+ const {page, ready, send} = await open(t); await send({...init(ready, true, true), selection: {type: "gradient", colors: ["#FF000001", "#0000FF80"]}});
+ const initial = await page.evaluate(() => ({selection: ColorPickerDialog.exportSelection(), spectrum: document.getElementById("spectrum").toDataURL()}));
+ for (const theme of ["light", "dark"]) for (const system of ["light", "dark"]) {
+ await page.emulateMedia({colorScheme: system});
+ await page.evaluate(value => {
+ document.documentElement.dataset.orcaTheme = value;
+ const colors = value === "light" ? {bg: "#ffffff", fg: "#262e30", muted: "#363636", border: "#dbdbdb", accent: "#009688"} : {bg: "#2d2d31", fg: "#efeff0", muted: "#b2b3b5", border: "#36363b", accent: "#00675b"};
+ for (const [key, color] of Object.entries(colors)) document.documentElement.style.setProperty("--orca-" + key, color);
+ document.documentElement.style.setProperty("--orca-accent-fg", "#ffffff");
+ }, theme);
+ await page.evaluate(async () => {
+ await Promise.all(document.getAnimations().map(animation => animation.finished.catch(() => {})));
+ });
+ const colors = await page.evaluate(() => {
+ const body = getComputedStyle(document.body);
+ const tokenColor = token => {
+ const probe = document.createElement("span"); probe.style.cssText = `position:absolute;visibility:hidden;color:var(${token})`;
+ document.body.appendChild(probe); const color = getComputedStyle(probe).color; probe.remove(); return color;
+ };
+ const mode = document.querySelector("label[for=modeSwitch]");
+ return {background: body.backgroundColor, foreground: body.color,
+ modeBackground: getComputedStyle(mode).backgroundColor,
+ accent: getComputedStyle(mode, "::before").backgroundColor,
+ hostPanel: tokenColor("--panel"), hostText: tokenColor("--text")};
+ });
+ assert.equal(colors.background, system === "light" ? "rgb(255, 255, 255)" : "rgb(45, 45, 49)", `${theme} app / ${system} system body`);
+ assert.equal(colors.foreground, system === "light" ? "rgb(38, 46, 48)" : "rgb(239, 239, 240)");
+ assert.equal(colors.modeBackground, system === "light" ? "rgb(240, 240, 240)" : "rgb(36, 36, 40)");
+ assert.equal(colors.accent, theme === "light" ? "rgb(0, 150, 136)" : "rgb(0, 103, 91)", "shared accent follows the injected app theme");
+ assert.equal(colors.hostPanel, theme === "light" ? "rgb(255, 255, 255)" : "rgb(45, 45, 49)");
+ assert.equal(colors.hostText, theme === "light" ? "rgb(38, 46, 48)" : "rgb(239, 239, 240)");
+ assert.deepEqual(await page.evaluate(() => ({selection: ColorPickerDialog.exportSelection(), spectrum: document.getElementById("spectrum").toDataURL()})), initial);
+ for (const id of ["modeSwitch"]) for (const checked of [false, true]) {
+ if (await page.locator("#" + id).isChecked() !== checked) await page.locator(`label[for=${id}]`).click();
+ await page.evaluate(async () => {
+ await Promise.all(document.getAnimations().map(animation => animation.finished.catch(() => {})));
+ });
+ const result = await page.locator(`label[for=${id}]`).evaluate((element, selected) => {
+ const tokenColor = token => {
+ const probe = document.createElement("span"); probe.style.cssText = `position:absolute;visibility:hidden;color:var(${token})`;
+ document.body.appendChild(probe); const color = getComputedStyle(probe).color; probe.remove(); return color;
+ };
+ const labels = element.querySelectorAll(".switch-label");
+ return {selected: getComputedStyle(labels[selected ? 1 : 0]).color,
+ unselected: getComputedStyle(labels[selected ? 0 : 1]).color,
+ accentForeground: tokenColor("--button-fg-light"), mutedForeground: tokenColor("--fg-color-label")};
+ }, checked);
+ assert.equal(result.selected, result.accentForeground, `${theme} app / ${system} system ${id} selected text uses the accent foreground`);
+ assert.equal(result.selected, "rgb(254, 254, 254)", "global selected text stays light in both system schemes");
+ assert.equal(result.unselected, result.mutedForeground, `${theme} app / ${system} system ${id} unselected text stays muted`);
+ assert.equal(result.unselected, system === "light" ? "rgb(54, 54, 54)" : "rgb(178, 179, 181)");
+ const selected = await page.evaluate(() => ColorPickerDialog.exportSelection());
+ assert.equal(selected.type, checked ? "gradient" : "solid");
+ if (checked) assert.deepEqual(selected, initial.selection, "returning to gradient keeps ordered endpoint byte alpha");
+ }
+ }
+});
+
+test("Sidebar resizes from a compact viewport and shrinks after every collapse", options, async t => {
+ const {page, ready, send} = await open(t);
+ await page.setViewportSize({width: 340, height: 380});
+ await send({...init(ready, true, true), ui: {sidebar_open: false, palette: "basic"}});
+ const selection = await page.evaluate(() => ColorPickerDialog.exportSelection());
+ for (const [index, sidebarOpen] of [false, true, false, true, false].entries()) {
+ const width = sidebarOpen ? 510 : 340;
+ await page.waitForFunction(expected => messages.filter(message => message.command === "resize").at(-1)?.width === expected, width);
+ const size = await page.evaluate(() => messages.filter(message => message.command === "resize").at(-1));
+ assert.equal(size.height, 380);
+ await page.setViewportSize({width: size.width, height: size.height});
+ await page.waitForTimeout(100);
+ assert(await page.evaluate(() => {
+ const body = document.body.getBoundingClientRect();
+ const picker = document.querySelector(".right-panel").getBoundingClientRect();
+ return body.width === innerWidth && picker.right <= body.right && picker.bottom <= body.bottom;
+ }), "the host viewport contains the full picker");
+ const resizes = await count(page, "resize");
+ await page.waitForTimeout(100);
+ assert.equal(await count(page, "resize"), resizes, "fitting the host does not cause a resize loop");
+ assert.deepEqual(await page.evaluate(() => ColorPickerDialog.exportSelection()), selection);
+ if (index < 4) await page.locator("#paletteToggle").click();
+ }
+});
+
+test("Floating panel fits capabilities and wrapped translations without a resize feedback loop", options, async t => {
+ const strings = {Color: "A long translated color label", Gradient: "A long translated gradient label", Cancel: "A longer translated cancel action", OK: "A longer translated confirmation action",
+ "The current multi-color selection is kept until you choose a different color.": "A translated explanation that wraps across the compact floating panel and keeps the original multi-color selection until another color is chosen."};
+ for (const gradient of [false, true]) for (const alpha of [false, true]) {
+ const {page, ready, send} = await open(t, strings);
+ await page.setViewportSize({width: 550, height: 520});
+ await send({...init(ready, gradient, alpha), preserve_multi_color: true});
+ await page.waitForFunction(() => messages.some(message => message.command === "resize"));
+ const height = await page.evaluate(() => messages.filter(message => message.command === "resize").at(-1).height);
+ assert(height >= 300 && height <= 900);
+ assert.equal(height, await page.locator("body").evaluate(element => Math.ceil(element.getBoundingClientRect().height)));
+ assert(await page.evaluate(() => messages.findIndex(message => message.command === "initialized") < messages.findIndex(message => message.command === "resize")));
+ await page.setViewportSize({width: 550, height});
+ await page.waitForTimeout(100);
+ const resizes = await count(page, "resize");
+ await page.setViewportSize({width: 550, height: height + 100});
+ await page.waitForTimeout(100);
+ assert.equal(await count(page, "resize"), resizes, "extra viewport height never changes intrinsic content height");
+ const controls = await page.evaluate(() => {
+ const body = document.body.getBoundingClientRect();
+ return ["confirmBtn", "cancelBtn", ...(document.getElementById("alphaControls").classList.contains("hidden") ? [] : ["oValue"])].map(id => {
+ const rect = document.getElementById(id).getBoundingClientRect();
+ return rect.left >= body.left && rect.right <= body.right && rect.bottom <= body.bottom;
+ });
+ });
+ assert(controls.every(Boolean), "wrapped buttons and opacity fit inside the panel");
+ const edited = await page.evaluate(() => ColorPickerDialog.exportSelection());
+ await page.evaluate(() => {
+ document.getElementById("selectionNotice").textContent += " Additional wrapped text. ".repeat(15);
+ });
+ await page.waitForFunction(previous => messages.filter(message => message.command === "resize").length > previous, resizes);
+ assert.deepEqual(await page.evaluate(() => ColorPickerDialog.exportSelection()), edited, "content resize leaves the selection untouched");
+ // The compact layout now puts saved swatches to the right of both previews.
+ assert(await page.evaluate(() => {
+ const favorites = document.getElementById("userColors").getBoundingClientRect();
+ const preview = document.getElementById("colorPreview").getBoundingClientRect();
+ return favorites.left >= preview.right;
+ }), "favorites do not overlap the preview");
+ await page.locator("#confirmBtn").scrollIntoViewIfNeeded();
+ assert.equal(await page.locator("#confirmBtn").isVisible(), true);
+ }
+});
+
+test("Native focus hook waits for initialization and preserves active partial edits", options, async t => {
+ const {page, ready, send} = await open(t);
+ await page.evaluate(() => ColorPickerDialog.focusInput());
+ assert.notEqual(await page.evaluate(() => document.activeElement.id), "hexInput");
+ await send(init(ready, true, true));
+ await page.evaluate(() => ColorPickerDialog.focusInput());
+ assert.equal(await page.evaluate(() => document.activeElement.id), "hexInput");
+ await page.locator("#rValue").fill("");
+ const selection = await page.evaluate(() => ColorPickerDialog.exportSelection());
+ await page.evaluate(() => ColorPickerDialog.focusInput());
+ assert.equal(await page.evaluate(() => document.activeElement.id), "rValue");
+ assert.equal(await page.locator("#rValue").inputValue(), "");
+ assert.deepEqual(await page.evaluate(() => ColorPickerDialog.exportSelection()), selection);
+ assert.equal(await count(page, "confirm"), 0);
+ await page.locator("#rValue").press("Escape");
+ assert.equal(await count(page, "cancel"), 1);
+});
diff --git a/resources/web/dialog/ColorPickerDialog/colorpicker.js b/resources/web/dialog/ColorPickerDialog/colorpicker.js
new file mode 100644
index 0000000000..42e82b8c6c
--- /dev/null
+++ b/resources/web/dialog/ColorPickerDialog/colorpicker.js
@@ -0,0 +1,464 @@
+"use strict";
+(() => {
+ if (window.ORCA_COLOR_PICKER_LANGUAGE) document.documentElement.lang = window.ORCA_COLOR_PICKER_LANGUAGE;
+ const T = (key) => window.ORCA_UI_STRINGS?.[key] || key;
+ document.title = T("Color Picker");
+ for (const element of document.querySelectorAll("[data-i18n]")) element.textContent = T(element.dataset.i18n);
+ for (const attribute of ["aria-label", "title", "placeholder"])
+ for (const element of document.querySelectorAll(`[data-i18n-${attribute}]`))
+ element.setAttribute(attribute, T(element.getAttribute(`data-i18n-${attribute}`)));
+ function paletteName(name) {
+ const ral = name.match(/^(\d{4}) (.+)$/);
+ return ral ? `${ral[1]} ${T(ral[2])}` : /^%\d+$/.test(name) ? name : T(name);
+ }
+
+ const FAVORITE_SLOTS = 16;
+ const SPECTRUM_FOLLOWS_SATURATION = true; // true: the spectrum is drawn at the current saturation, false: it always shows full saturation
+ const MULTI_COLOR_GRADIENTS = true; // true: gradients may have more than 2 colors (− / + buttons and the multi-color palette entries), false: exactly 2 colors.
+ // up to the native limit the host sends as options.max_gradient_colors.
+ let maxGradientColors = 2; // Stays 2 until init, and with a host that does not send a limit.
+
+ const model = window.ColorPickerModel;
+ const palettes = window.ColorPickerPalettes;
+ const byId = (id) => document.getElementById(id);
+ const canvas = byId("spectrum"), context = canvas.getContext("2d");
+ const paletteCombo = byId("paletteCombo"), palette = byId("palette"), preview = byId("colorPreview"), confirmBtn = byId("confirmBtn");
+ const modeSwitch = byId("modeSwitch"), satSlider = byId("satSlider"), opacitySlider = byId("opacitySlider");
+ const gradientBar = byId("gradientCtrlBar"), gradientStops = byId("gradientStops"), gradientAdd = byId("gradientAdd"), gradientRemove = byId("gradientRemove");
+ const hostGradientLimit = (options) => options.max_gradient_colors === undefined ? 2 : options.max_gradient_colors;
+ const originalPreview = byId("originalPreview"), palettePanel = byId("palettePanel"), paletteToggle = byId("paletteToggle");
+ const paletteSelect = byId("paletteSelect"), paletteFilter = byId("paletteFilter"), paletteSearchToggle = byId("paletteSearchToggle");
+ const rgbInputs = ["r", "g", "b"].map((name) => byId(name + "Value"));
+ const hslInputs = ["h", "s", "l"].map((name) => byId(name + "Value"));
+ const hexInput = byId("hexInput"), opacityInput = byId("oValue");
+ const pageId = Date.now().toString(36) + Math.random().toString(36).slice(2);
+ let state = model.createState(), favorites = [], initialized = false, favoritesWritable = true;
+ // The selection the dialog opened with; the original swatch shows it and restores it on click.
+ let originalSelection = model.exportSelection(state);
+ let lastContentHeight = 0, lastContentWidth = 0, resizePending = false;
+ // Last HSL shown or set. Kept while it still produces the current color: hue 360 and 0 are
+ // both red, and greys, black and white have no hue or saturation in RGB.
+ let hslMemory = [0, 0, 50];
+ function displayHsl(color) {
+ const rgb = model.hslToRgb(...hslMemory);
+ if (!rgb.every((value, index) => value === color[index])) hslMemory = model.rgbToHsl(...color.slice(0, 3));
+ return hslMemory;
+ }
+ // Copy of `values` with one entry replaced.
+ const replaced = (values, index, value) => values.map((current, i) => i === index ? value : current);
+ function setHslChannel(index, value) {
+ hslMemory = replaced(displayHsl(model.activeColor(state)), index, value);
+ model.setRgb(state, model.hslToRgb(...hslMemory));
+ }
+ const round1 = (value) => Math.round(value * 10) / 10;
+
+ function emit(command, data = {}) {
+ window.dispatchEvent(new CustomEvent("color-picker-message", {detail: {command, ...data}}));
+ if (window.wx && typeof window.wx.postMessage === "function")
+ window.wx.postMessage(JSON.stringify({command, page_id: pageId, ...data}));
+ }
+
+ function scheduleResize() {
+ if (!initialized || resizePending) return;
+ resizePending = true;
+ requestAnimationFrame(() => {
+ resizePending = false;
+ const rect = document.body.getBoundingClientRect();
+ const height = Math.min(900 , Math.max(300, Math.ceil(rect.height)));
+ const width = Math.min(1200, Math.max(300, Math.ceil(rect.width )));
+ if (height !== lastContentHeight || width !== lastContentWidth) {
+ lastContentHeight = height; lastContentWidth = width;
+ emit("resize", {width, height});
+ }
+ });
+ }
+ new ResizeObserver(scheduleResize).observe(document.body);
+
+ function setSwatch(element, selection) {
+ element.style.setProperty("--swatch-color", model.selectionBackground(selection));
+ }
+
+ // `editing` is the control the user is typing in. Its text is left alone so the caret,
+ // partial input like "05" and fine steps that round-trip through bytes aren't overwritten.
+ function render(resetEditors = false, editing = null) {
+ const color = model.activeColor(state), hsl = displayHsl(color);
+ const show = (input, value) => {
+ if (input === editing) return;
+ if (resetEditors) input.setCustomValidity("");
+ if (resetEditors || input.checkValidity()) input.value = value;
+ };
+ show(hexInput, model.toHex(color).slice(1, state.options.allow_alpha ? 9 : 7));
+ rgbInputs.forEach((input, index) => show(input, color[index]));
+ // Shown in whole numbers; decimals can still be typed, and hslMemory keeps exact values.
+ hslInputs.forEach((input, index) => show(input, Math.round(hsl[index])));
+ // Percentage is a display only until explicitly edited. Never round it back
+ // into the alpha byte on endpoint switches, RGB edits, or confirmation.
+ show(opacityInput, Math.round(color[3] / 255 * 100));
+ if (opacitySlider !== editing) opacitySlider.value = color[3] / 255 * 100;
+ const rgb = color.slice(0, 3).join(",");
+ opacitySlider.style.setProperty("--track-gradient", `linear-gradient(to right, rgba(${rgb},0), rgb(${rgb}))`);
+ opacitySlider.style.setProperty("--thumb-color", `rgba(${rgb},${color[3] / 255})`);
+ if (satSlider !== editing) satSlider.value = hsl[1];
+ satSlider.style.setProperty("--track-gradient", `linear-gradient(to right, hsl(${hsl[0]},0%,${hsl[2]}%), hsl(${hsl[0]},100%,${hsl[2]}%))`);
+ satSlider.style.setProperty("--thumb-color", `hsl(${hsl[0]},${hsl[1]}%,${hsl[2]}%)`);
+ modeSwitch.checked = state.mode === "gradient";
+ const selection = model.exportSelection(state);
+ // Kept in the layout (visibility only) so the grid doesn't shift between Solid and Gradient.
+ gradientBar.classList.toggle("invisible", state.mode !== "gradient");
+ if (state.mode === "gradient") renderGradient(selection);
+ setSwatch(preview, selection);
+ preview.title = `${T("Save current color")}\n${selection.colors.join(" → ")}`;
+ if (SPECTRUM_FOLLOWS_SATURATION && hsl[1] !== spectrumSaturation) { spectrumSaturation = hsl[1]; paintSpectrum(); }
+ updateIndicator(hsl);
+ updateConfirm();
+ }
+
+ // One thumb per gradient color, evenly spaced; rebuilt only when the number of colors changes.
+ function renderGradient(selection) {
+ const count = selection.colors.length;
+ setSwatch(gradientStops.querySelector(".gradient-track"), selection);
+ let thumbs = [...gradientStops.querySelectorAll(".gradient-thumb")];
+ if (thumbs.length !== count) {
+ thumbs.forEach((thumb) => thumb.remove());
+ thumbs = selection.colors.map((_, index) => {
+ const thumb = document.createElement("button");
+ thumb.type = "button"; thumb.className = "gradient-thumb"; thumb.dataset.index = index;
+ thumb.style.setProperty("--stop", index / (count - 1));
+ thumb.setAttribute("aria-label", count === 2 ? T(index ? "Gradient end" : "Gradient start") : `${T("Gradient color")} ${index + 1}`);
+ gradientStops.appendChild(thumb);
+ return thumb;
+ });
+ }
+ thumbs.forEach((thumb, index) => {
+ thumb.style.setProperty("--thumb-color", selection.colors[index]);
+ thumb.setAttribute("aria-pressed", String(state.active === index));
+ });
+
+ const multi = maxGradientColors > 2; // −/+ buttons only exist when more than 2 colors are allowed; − also needs a color to spare.
+ gradientAdd.parentElement.classList.toggle("hidden", !multi);
+ gradientRemove.classList.toggle("hidden", !multi || count <= 2);
+ gradientAdd.classList.toggle("hidden", !multi);
+ // aria-disabled instead of disabled: a disabled button gets no hover, so its tooltip would never show.
+ const full = count >= maxGradientColors;
+ gradientAdd.setAttribute("aria-disabled", String(full));
+ gradientAdd.title = full ? T("Up to %d colors supported.").replace("%d", maxGradientColors) : T("Add color");
+ }
+
+ // Every editor the user can see; alpha only when this caller allows it.
+ function editors() {
+ const inputs = [hexInput, ...rgbInputs, ...hslInputs];
+ if (state.options.allow_alpha) inputs.push(opacityInput);
+ return inputs;
+ }
+ // OK stays disabled while any visible editor holds an invalid or incomplete value.
+ function updateConfirm() {
+ confirmBtn.disabled = !editors().every((input) => input.checkValidity());
+ }
+
+ // Matches the filter against the shown (translated) name, the English name and the hex digits.
+ function paletteMatches(entry, query) {
+ if (!query) return true;
+ const haystack = [paletteName(entry.name), entry.name, entry.hex || "", entry.grad || ""].join(" ").toLowerCase();
+ return query.split(/\s+/).every((word) => haystack.includes(word.replace(/^#/, "")));
+ }
+
+ function populatePalette() {
+ palette.replaceChildren();
+ const query = paletteSearchToggle.getAttribute("aria-pressed") === "true" ? paletteFilter.value.trim().toLowerCase() : "";
+ for (const entry of palettes[paletteCombo.value] || []) {
+ const selection = {type: entry.grad ? "gradient" : "solid", colors: entry.grad ? entry.grad.split("-") : [entry.hex]};
+ if (!model.normalizeSelection(selection, state.options, maxGradientColors) || !paletteMatches(entry, query)) continue;
+ const row = document.createElement("button"); row.type = "button"; row.className = "color-item";
+ const swatch = document.createElement("span"); swatch.className = "color-swatch";
+ const name = document.createElement("span"); name.className = "color-name"; name.textContent = paletteName(entry.name);
+ setSwatch(swatch, model.normalizeSelection(selection, {allow_gradient: true, allow_alpha: true}, maxGradientColors));
+ row.append(swatch, name); row.title = paletteName(entry.name);
+ row.addEventListener("click", () => {
+ // Solid palette colors edit the active endpoint while gradient mode is on.
+ const changed = entry.grad ? model.applySelection(state, selection) : model.setHex(state, entry.hex);
+ if (changed) render(true);
+ });
+ palette.appendChild(row);
+ }
+ byId("paletteEmpty").classList.toggle("hidden", palette.childElementCount > 0);
+ palette.classList.toggle("hidden", palette.childElementCount === 0);
+ }
+
+ // Sidebar state the host keeps in the app config: open/closed and the chosen palette.
+ const uiState = () => ({sidebar_open: palettePanel.classList.contains("open"), palette: paletteCombo.value});
+ function setSidebarOpen(open) {
+ palettePanel.classList.toggle("open", open);
+ paletteToggle.setAttribute("aria-expanded", String(open));
+ }
+ // The search button swaps the combo box for a filter box; closing it clears the filter.
+ function setPaletteSearch(open) {
+ paletteSearchToggle.setAttribute("aria-pressed", String(open));
+ paletteSelect.classList.toggle("hidden", open);
+ paletteFilter.classList.toggle("hidden", !open);
+ if (open) paletteFilter.focus();
+ else paletteFilter.value = "";
+ populatePalette();
+ }
+
+ function drawFavorites() {
+ const grid = byId("userColors"); grid.replaceChildren();
+ // Favorites keep every color, but only those this page can select are shown.
+ const visible = favorites.filter((favorite) => model.normalizeSelection(favorite, {...state.options, allow_alpha: true}, maxGradientColors));
+ for (let index = 0; index < FAVORITE_SLOTS; ++index) {
+ const swatch = document.createElement("button"); swatch.type = "button"; swatch.className = "saved-swatch";
+ const favorite = visible[index];
+ if (favorite) {
+ setSwatch(swatch, favorite); swatch.title = favorite.colors.join(" → ");
+ swatch.addEventListener("click", () => { if (model.applySelection(state, favorite)) render(true); });
+ } else { swatch.classList.add("empty"); swatch.disabled = true; }
+ grid.appendChild(swatch);
+ }
+ }
+
+ function init(payload) {
+ if (!payload || typeof payload !== "object" || (payload.options !== undefined && (!payload.options || typeof payload.options !== "object"))) return false;
+ maxGradientColors = Math.min(MULTI_COLOR_GRADIENTS ? model.MAX_GRADIENT_COLORS : 2, hostGradientLimit(payload.options || {}));
+ // A gradient the host allows but this page does not (switch off) opens as its first color, like
+ // other multi-color selections the picker cannot edit; OK then replaces it, Cancel keeps it.
+ let selection = payload.selection, preserve = payload.preserve_multi_color === true;
+ if (selection?.type === "gradient" && selection.colors?.length > maxGradientColors) {
+ selection = {type: "solid", colors: [selection.colors[0]]};
+ preserve = true;
+ }
+ const next = model.createState({...payload.options, max_gradient_colors: maxGradientColors}, selection);
+ if (!next) return false;
+ byId("selectionNotice").hidden = !preserve;
+ state = next; favorites = model.normalizeFavorites(payload.favorites || []);
+ originalSelection = model.exportSelection(state);
+ setSwatch(originalPreview, originalSelection);
+ originalPreview.title = `${T("Original color")}\n${originalSelection.colors.join(" → ")}`;
+ favoritesWritable = payload.favorites_writable !== false;
+ preview.disabled = !favoritesWritable;
+ byId("modeControls").classList.toggle("hidden", !state.options.allow_gradient);
+ for (const option of paletteCombo.options) option.hidden = option.value === "gradient" && !state.options.allow_gradient;
+ const ui = payload.ui || {}; // Restore the sidebar the way it was left; a palette this caller can't use falls back to basic.
+ const saved = [...paletteCombo.options].find((option) => option.value === ui.palette && !option.hidden);
+ if (saved) paletteCombo.value = saved.value;
+ if (!state.options.allow_gradient && paletteCombo.value === "gradient") paletteCombo.value = "basic";
+ setSidebarOpen(ui.sidebar_open === true);
+ byId("alphaControls").classList.toggle("hidden", !state.options.allow_alpha);
+ hexInput.maxLength = state.options.allow_alpha ? 9 : 7;
+ populatePalette(); drawFavorites(); render(true);
+ initialized = true;
+ byId("pickerEditors").disabled = false;
+ return true;
+ }
+
+ function focusInput() {
+ if (!initialized) return;
+ // Restore initial keyboard focus without replacing an editor's in-progress input.
+ const active = document.activeElement;
+ if (!active || active === document.body || active === document.documentElement)
+ hexInput.focus({preventScroll: true});
+ }
+
+ function handleMessage(payload) {
+ if (!payload || typeof payload !== "object" || payload.page_id !== pageId) return false;
+ if (payload.command === "init") {
+ const options = payload.options;
+ const hostLimit = options && hostGradientLimit(options);
+ if (!options || typeof options.allow_gradient !== "boolean" || typeof options.allow_alpha !== "boolean" ||
+ !Number.isInteger(hostLimit) || hostLimit < 2 || hostLimit > model.MAX_GRADIENT_COLORS ||
+ !model.normalizeSelection(payload.selection, options, hostLimit) || !validFavorites(payload.favorites) ||
+ (payload.favorites_writable !== undefined && typeof payload.favorites_writable !== "boolean") ||
+ (payload.preserve_multi_color !== undefined && typeof payload.preserve_multi_color !== "boolean") ||
+ (payload.ui !== undefined && (!payload.ui || typeof payload.ui !== "object" ||
+ (payload.ui.sidebar_open !== undefined && typeof payload.ui.sidebar_open !== "boolean") ||
+ (payload.ui.palette !== undefined && typeof payload.ui.palette !== "string")))) return false;
+ if (initialized) return true;
+ if (!init(payload)) return false;
+ emit("initialized");
+ scheduleResize();
+ return true;
+ }
+ if (payload.command === "favorites" && initialized && validFavorites(payload.favorites)) {
+ favorites = model.normalizeFavorites(payload.favorites); drawFavorites(); return true;
+ }
+ return false;
+ }
+
+ function validFavorites(values) {
+ return Array.isArray(values) && values.length <= 24 && values.every((value) => model.normalizeSelection(value, {allow_gradient: true, allow_alpha: true}, model.MAX_GRADIENT_COLORS));
+ }
+
+ // Saturation the spectrum is currently painted at (always 100 when the option is off).
+ let spectrumSaturation = 100;
+ function drawSpectrum() {
+ const rect = canvas.getBoundingClientRect();
+ canvas.width = Math.max(1, Math.round(rect.width)); canvas.height = Math.max(1, Math.round(rect.height));
+ paintSpectrum();
+ }
+ function paintSpectrum() {
+ const hue = context.createLinearGradient(0, 0, canvas.width, 0);
+ for (let i = 0; i <= 6; ++i) hue.addColorStop(i / 6, `hsl(${i * 60},100%,50%)`);
+ context.fillStyle = hue; context.fillRect(0, 0, canvas.width, canvas.height);
+ const shade = context.createLinearGradient(0, 0, 0, canvas.height);
+ shade.addColorStop(0, "#FFFFFF"); shade.addColorStop(0.5, "#FFFFFF00"); shade.addColorStop(0.5, "#00000000"); shade.addColorStop(1, "#000000");
+ context.fillStyle = shade; context.fillRect(0, 0, canvas.width, canvas.height);
+ // HSL desaturation blends each color toward the grey of the same lightness, and on this
+ // canvas that grey only depends on the row (white at the top, black at the bottom).
+ if (spectrumSaturation < 100) {
+ const grey = context.createLinearGradient(0, 0, 0, canvas.height);
+ grey.addColorStop(0, "#FFFFFF"); grey.addColorStop(1, "#000000");
+ context.globalAlpha = 1 - spectrumSaturation / 100;
+ context.fillStyle = grey; context.fillRect(0, 0, canvas.width, canvas.height);
+ context.globalAlpha = 1;
+ }
+ }
+
+ const indicator = byId("colorIndicator");
+ function updateIndicator(hsl) {
+ indicator.style.left = hsl[0] / 360 * (canvas.width - 1) + "px";
+ indicator.style.top = (1 - hsl[2] / 100) * (canvas.height - 1) + "px";
+ }
+
+ // Spectrum position maps straight to hue (x, 0..360) and lightness (y, 100..0); saturation is
+ // the third dimension and comes from the slider below. hslMemory keeps these exact values,
+ // including hue 360 at the right edge and the hue of the white and black corners.
+ function sampleSpectrum(event) {
+ const rect = canvas.getBoundingClientRect();
+ const fraction = (client, start, size, pixels) =>
+ Math.max(0, Math.min(pixels - 1, Math.floor((client - start) * pixels / size))) / Math.max(1, pixels - 1);
+ const saturation = displayHsl(model.activeColor(state))[1];
+ hslMemory = [round1(fraction(event.clientX, rect.left, rect.width, canvas.width) * 360), saturation,
+ round1((1 - fraction(event.clientY, rect.top, rect.height, canvas.height)) * 100)];
+ model.setRgb(state, model.hslToRgb(...hslMemory));
+ // A pick replaces every editor's value, so clear any invalid state left from typing.
+ render(true);
+ }
+
+ const clamp = (control, value) => Math.min(Number(control.max), Math.max(Number(control.min), value));
+ function bindValue(control, apply) {
+ // Number fields are required, so an empty field is invalid; a range input always has a value.
+ if (control.type === "number") control.required = true;
+ const commit = (value) => { apply(value); render(false, control); };
+ control.addEventListener("input", () => {
+ control.setCustomValidity("");
+ // Out-of-range numbers snap to the field's min/max instead of becoming invalid.
+ if (control.value !== "") {
+ const clamped = clamp(control, Number(control.value));
+ if (clamped !== Number(control.value)) control.value = clamped;
+ }
+ if (control.checkValidity()) commit(Number(control.value));
+ });
+ control.addEventListener("wheel", (event) => {
+ event.preventDefault();
+ const step = control.type === "range" ? 5 : 1;
+ control.value = clamp(control, (Number(control.value) || 0) + (event.deltaY > 0 ? -step : step));
+ control.setCustomValidity("");
+ commit(Number(control.value));
+ }, {passive: false});
+ // Normalize the text (e.g. "05" → "5") once the user leaves the field.
+ control.addEventListener("blur", () => { if (control.checkValidity()) render(); });
+ }
+
+ rgbInputs.forEach((input, index) => bindValue(input, (value) => model.setRgb(state, replaced(model.activeColor(state).slice(0, 3), index, value))));
+ hslInputs.forEach((input, index) => bindValue(input, (value) => setHslChannel(index, value)));
+ bindValue(satSlider, (value) => setHslChannel(1, value));
+ bindValue(opacityInput, (value) => model.setAlphaPercent(state, value));
+ bindValue(opacitySlider, (value) => model.setAlphaPercent(state, value));
+ // The opacity slider takes the gradient bar's row while the opacity field or the slider is in
+ // use: it opens when the field is clicked or focused, and closes on a click or focus elsewhere.
+ const thirdRow = byId("thirdRow"), alphaControls = byId("alphaControls");
+ const inOpacityControls = (target) => target instanceof Element && target.closest("#alphaControls, #opacitySliderBar");
+ const setOpacitySliderOpen = (open) => thirdRow.classList.toggle("opacity-open", open);
+ for (const type of ["focusin", "click"]) alphaControls.addEventListener(type, () => setOpacitySliderOpen(true));
+ for (const type of ["pointerdown", "focusin"])
+ document.addEventListener(type, (event) => { if (!inOpacityControls(event.target)) setOpacitySliderOpen(false); });
+ hexInput.addEventListener("input", () => {
+ const text = hexInput.value;
+ const valid = model.setHex(state, text.startsWith("#") ? text : "#" + text);
+ hexInput.setCustomValidity(valid ? "" : T("Enter a complete hexadecimal color"));
+ // render() leaves the typed text alone, so alpha isn't appended after the sixth digit.
+ if (valid) render(false, hexInput);
+ });
+ hexInput.addEventListener("blur", () => { if (hexInput.checkValidity()) render(); });
+ modeSwitch.addEventListener("change", () => {
+
+ setOpacitySliderOpen(false); // Close the opacity slider before the row changes, so it doesn't linger over the gradient bar.
+ model.setMode(state, modeSwitch.checked ? "gradient" : "solid");
+ render(true);
+ });
+ // Click on the track selects the nearest thumb. Keyboard users tab to a thumb and press Enter or Space.
+ gradientStops.addEventListener("click", (event) => {
+ if (state.mode !== "gradient") return;
+ // A thumb is read from its index: a keyboard-triggered click has no pointer position.
+ const thumb = event.target.closest(".gradient-thumb"), rect = gradientStops.getBoundingClientRect();
+ const last = state.gradient.length - 1;
+ // Thumbs sit at 10px + (width - 20px) * i / last, matching the CSS.
+ const fraction = Math.max(0, Math.min(1, (event.clientX - rect.left - 10) / Math.max(1, rect.width - 20)));
+ const index = thumb ? Number(thumb.dataset.index) : Math.round(fraction * last);
+ if (index !== state.active) { state.active = index; render(true); }
+ });
+ gradientAdd.addEventListener("click", () => { if (gradientAdd.getAttribute("aria-disabled") !== "true" && model.addGradientColor(state)) render(true); });
+ gradientRemove.addEventListener("click", () => { if (model.removeGradientColor(state)) render(true); });
+ originalPreview.addEventListener("click", () => { if (model.applySelection(state, originalSelection)) render(true); });
+ paletteToggle.addEventListener("click", () => {
+ setSidebarOpen(!palettePanel.classList.contains("open"));
+ if (initialized) emit("update_ui", uiState());
+ });
+ paletteCombo.addEventListener("change", () => {
+ populatePalette();
+ if (initialized) emit("update_ui", uiState());
+ });
+ paletteSearchToggle.addEventListener("click", () => setPaletteSearch(paletteSearchToggle.getAttribute("aria-pressed") !== "true"));
+ paletteFilter.addEventListener("input", populatePalette);
+ // Pointer capture ends by itself on pointerup/pointercancel, so it doubles as the drag state.
+ canvas.addEventListener("pointerdown", (event) => { canvas.setPointerCapture(event.pointerId); sampleSpectrum(event); });
+ canvas.addEventListener("pointermove", (event) => { if (canvas.hasPointerCapture(event.pointerId)) sampleSpectrum(event); });
+ // The spectrum takes the panel's free height, which also changes with the notice, alpha and
+ // gradient controls, so redraw on any size change rather than on window resize only.
+ new ResizeObserver(() => { drawSpectrum(); updateIndicator(displayHsl(model.activeColor(state))); }).observe(canvas.parentElement);
+ // Bubble phase on document runs after each editor's own handler has set its validity.
+ document.addEventListener("input", updateConfirm);
+ // Hex keeps its own message from its input handler; number fields get a translated one.
+ function validateEditors() {
+ const inputs = editors();
+ for (const input of inputs.filter((input) => input !== hexInput)) {
+ input.setCustomValidity("");
+ const {valid, rangeUnderflow, rangeOverflow} = input.validity;
+ if (!valid) input.setCustomValidity(T(rangeUnderflow || rangeOverflow ? "Value is out of range." : "Invalid input"));
+ }
+ return inputs.every((input) => input.reportValidity());
+ }
+ function confirm() {
+ if (initialized && validateEditors()) emit("confirm", {selection: model.exportSelection(state)});
+ }
+ preview.addEventListener("click", () => {
+ if (!initialized || !favoritesWritable || !validateEditors()) return;
+ const selection = model.exportSelection(state);
+ const key = JSON.stringify(selection);
+ favorites = [selection, ...favorites.filter((favorite) => JSON.stringify(favorite) !== key)].slice(0, FAVORITE_SLOTS);
+ drawFavorites(); emit("update_favorites", {favorites});
+ });
+ confirmBtn.addEventListener("click", confirm);
+ byId("cancelBtn").addEventListener("click", () => emit("cancel"));
+ document.addEventListener("keydown", (event) => {
+ // Escape in the filter box closes the search first; a second Escape cancels the dialog.
+ if (event.key === "Escape" && event.target === paletteFilter) { event.preventDefault(); setPaletteSearch(false); paletteSearchToggle.focus(); }
+ else if (event.key === "Escape") { event.preventDefault(); emit("cancel"); }
+ else if (event.key === "Enter" && event.target instanceof HTMLInputElement && ["text", "number"].includes(event.target.type)) {
+ event.preventDefault(); confirm();
+ }
+ });
+
+ window.ColorPickerDialog = {
+ init, handleMessage, focusInput, exportSelection: () => model.exportSelection(state),
+ setFavorites: (values) => { favorites = model.normalizeFavorites(values); drawFavorites(); }
+ };
+ // The host passes the saved sidebar state before the page loads (the same values come again in
+ // init), so the first paint already matches the window size the host opened with.
+ const earlyUi = window.ORCA_COLOR_PICKER_UI;
+ if (earlyUi && typeof earlyUi === "object") {
+ if (typeof earlyUi.palette === "string" && [...paletteCombo.options].some((option) => option.value === earlyUi.palette))
+ paletteCombo.value = earlyUi.palette;
+ if (typeof earlyUi.sidebar_open === "boolean") setSidebarOpen(earlyUi.sidebar_open);
+ }
+ setSwatch(originalPreview, originalSelection);
+ drawSpectrum(); populatePalette(); drawFavorites(); render(true); emit("ready");
+})();
diff --git a/resources/web/dialog/ColorPickerDialog/colorpicker.test.js b/resources/web/dialog/ColorPickerDialog/colorpicker.test.js
new file mode 100644
index 0000000000..2619a84930
--- /dev/null
+++ b/resources/web/dialog/ColorPickerDialog/colorpicker.test.js
@@ -0,0 +1,103 @@
+"use strict";
+const {test} = require("node:test");
+const assert = require("node:assert/strict");
+const model = require("./colorpicker-model.js");
+
+test("complete RGB/RGBA hex accepts mixed case and rejects partial or unbounded input", () => {
+ assert.deepEqual(model.parseHex("#Ab12cD80"), [171,18,205,128]);
+ for (const hex of ["", "123456", "#123", "#1234567", "#123456789", "#12345Z", "#123456GG", " #123456", null]) assert.equal(model.parseHex(hex), null);
+ for (let byte = 0; byte <= 255; ++byte) {
+ const hex = model.toHex([byte, byte, byte, byte]);
+ assert.deepEqual(model.parseHex(hex), [byte,byte,byte,byte]);
+ }
+});
+
+test("HSL conversion preserves primary channels and hue wraps at 360", () => {
+ for (const rgb of [[255,0,0], [0,255,0], [0,0,255], [128,128,128], [37,129,240]]) assert.deepEqual(model.hslToRgb(...model.rgbToHsl(...rgb)), rgb);
+ assert.deepEqual(model.hslToRgb(360,100,50), [255,0,0]);
+ assert.deepEqual(model.hslToRgb(240,100,50), [0,0,255]);
+});
+
+test("capabilities default off and reject gradient through every model entry", () => {
+ const gradient = {type: "gradient", colors: ["#FF000080", "#0000FF20"]};
+ const state = model.createState();
+ assert.deepEqual(state.options, {allow_gradient: false, allow_alpha: false});
+ assert.equal(model.createState({}, gradient), null);
+ assert.equal(model.applySelection(state, gradient), false);
+ assert.equal(model.setMode(state, "gradient"), false);
+ assert.equal(model.setAlphaPercent(state, 20), false);
+ assert.equal(model.createState({allow_alpha: true}, gradient), null);
+ const opaque = model.createState({allow_gradient: true}, gradient);
+ assert.deepEqual(model.exportSelection(opaque), {type: "gradient", colors: ["#FF0000FF", "#0000FFFF"]});
+});
+
+test("gradient endpoint edits keep order and preserve unedited byte alpha", () => {
+ const initial = {type: "gradient", colors: ["#FF000001", "#0000FF80"]};
+ const state = model.createState({allow_gradient: true, allow_alpha: true}, initial);
+ state.active = 0; model.setRgb(state, [0,255,0]);
+ state.active = 1; model.setHex(state, "#112233");
+ assert.deepEqual(model.exportSelection(state), {type: "gradient", colors: ["#00FF0001", "#11223380"]});
+ model.setAlphaPercent(state, 0);
+ assert.deepEqual(model.exportSelection(state).colors, ["#00FF0001", "#11223300"]);
+ model.setAlphaPercent(state, 100);
+ assert.equal(model.exportSelection(state).colors[1], "#112233FF");
+ assert.deepEqual(initial.colors, ["#FF000001", "#0000FF80"]);
+});
+
+test("favorites retain alpha and gradient even when the selection disables them", () => {
+ const favorite = {type: "solid", colors: ["#ABCDEF80"]};
+ const gradient = {type: "gradient", colors: ["#FFFFFF00", "#00000010"]};
+ const favorites = model.normalizeFavorites([favorite, gradient]);
+ const state = model.createState();
+ assert.equal(model.applySelection(state, favorites[0]), true);
+ assert.deepEqual(model.exportSelection(state), {type: "solid", colors: ["#ABCDEFFF"]});
+ assert.deepEqual(favorites, [favorite, gradient]);
+ assert.equal(model.applySelection(state, favorites[1]), false);
+ assert.equal(model.normalizeFavorites(Array(25).fill(favorite)).length, 24);
+});
+
+test("invalid cardinality and channel edits cannot change a selection", () => {
+ const state = model.createState({allow_alpha: true});
+ const before = model.exportSelection(state);
+ for (const value of [{type: "solid", colors: []}, {type: "solid", colors: ["#112233", "#445566"]}, {type: "gradient", colors: ["#112233"]}, {type: "other", colors: ["#112233"]}]) assert.equal(model.applySelection(state, value), false);
+ assert.equal(model.setHex(state, "#GG2233"), false);
+ for (const value of [-1, 101, NaN, Infinity]) assert.equal(model.setAlphaPercent(state, value), false);
+ assert.equal(model.setRgb(state, [256,0,0]), false);
+ assert.deepEqual(model.exportSelection(state), before);
+});
+
+test("multi-color gradients stay at 2 colors unless the caller raises the limit", () => {
+ const five = {type: "gradient", colors: ["#FF0000", "#00FF00", "#0000FF", "#FFFF00", "#00FFFF"]};
+ assert.equal(model.normalizeSelection(five, {allow_gradient: true}), null);
+ assert.equal(model.createState({allow_gradient: true}, five), null);
+ const state = model.createState({allow_gradient: true, max_gradient_colors: 7}, five);
+ assert.equal(state.gradient.length, 5);
+ assert.equal(model.normalizeSelection({...five, colors: Array(8).fill("#000000")}, {allow_gradient: true}, 7), null);
+ assert.equal(model.createState({allow_gradient: true, max_gradient_colors: 99}).maxGradientColors, model.MAX_GRADIENT_COLORS);
+ assert.equal(model.normalizeFavorites([five]).length, 1, "favorites keep every color");
+});
+
+test("adding and removing gradient colors keeps order, selection and the 2..max limits", () => {
+ const state = model.createState({allow_gradient: true, allow_alpha: true, max_gradient_colors: 4}, {type: "gradient", colors: ["#FF000080", "#0000FFFF"]});
+ assert.equal(model.removeGradientColor(state), false, "never fewer than 2");
+ assert.equal(model.addGradientColor(state), true);
+ assert.deepEqual(model.exportSelection(state).colors, ["#FF000080", "#BFFF0080", "#0000FFFF"], "selected color turned 75° in hue, alpha kept");
+ assert.equal(model.NEW_GRADIENT_HUE_SHIFT, 75);
+ assert.equal(state.active, 1);
+ state.active = 2; assert.equal(model.addGradientColor(state), true);
+ assert.equal(state.active, 3); assert.equal(state.gradient.length, 4);
+ assert.equal(model.addGradientColor(state), false, "limit reached");
+ state.active = 1; assert.equal(model.removeGradientColor(state), true);
+ assert.deepEqual(model.exportSelection(state).colors.slice(0, 2), ["#FF000080", "#0000FFFF"]);
+ assert.equal(state.active, 1);
+ assert.equal(model.applySelection(state, {type: "gradient", colors: ["#111111", "#222222"]}), true);
+ state.active = 1; model.addGradientColor(state); model.addGradientColor(state);
+ model.applySelection(state, {type: "gradient", colors: ["#111111", "#222222"]});
+ assert.equal(state.active, 1, "a shorter gradient clamps the selected color");
+});
+
+test("a new gradient starts at the solid color and its 75° hue neighbour", () => {
+ const state = model.createState({allow_gradient: true, allow_alpha: true}, {type: "solid", colors: ["#FF000080"]});
+ assert.equal(model.setMode(state, "gradient"), true);
+ assert.deepEqual(model.exportSelection(state).colors, ["#FF000080", "#BFFF0080"]);
+});
diff --git a/resources/web/dialog/ColorPickerDialog/index.html b/resources/web/dialog/ColorPickerDialog/index.html
new file mode 100644
index 0000000000..9f6f332af8
--- /dev/null
+++ b/resources/web/dialog/ColorPickerDialog/index.html
@@ -0,0 +1,154 @@
+
+
+Color Picker
+
+
+
+
+
+
+
+
+The current multi-color selection is kept until you choose a different color.
+
+
+
+
+
+
No matching colors
+
+
+
+
+
+
+
+
+
+
+ Solid
+ Gradient
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/web/dialog/ColorPickerDialog/palettes.js b/resources/web/dialog/ColorPickerDialog/palettes.js
new file mode 100644
index 0000000000..4f65f101db
--- /dev/null
+++ b/resources/web/dialog/ColorPickerDialog/palettes.js
@@ -0,0 +1,459 @@
+"use strict";
+(() => {
+const cssColors = [
+ {hex: "#FF0000", name: "Red"},
+ {hex: "#DC143C", name: "Crimson"},
+ {hex: "#FF4500", name: "Orange red"},
+ {hex: "#FF6347", name: "Tomato"},
+ {hex: "#FFA500", name: "Orange"},
+ {hex: "#FF8C00", name: "Dark orange"},
+ {hex: "#FFD700", name: "Gold"},
+ {hex: "#DEB887", name: "Burly wood"},
+ {hex: "#FFE4C4", name: "Bisque"},
+ {hex: "#FFE4E1", name: "Misty rose"},
+ {hex: "#FFFF00", name: "Yellow"},
+ {hex: "#FFFFE0", name: "Light yellow"},
+ {hex: "#FFFACD", name: "Lemon chiffon"},
+ {hex: "#F5F5DC", name: "Beige"},
+ {hex: "#FAFAD2", name: "Light golden rod yellow"},
+ {hex: "#EEE8AA", name: "Pale golden rod"},
+ {hex: "#F0E68C", name: "Khaki"},
+ {hex: "#BDB76B", name: "Dark khaki"},
+ {hex: "#FFDAB9", name: "Peach puff"},
+ {hex: "#FFE4B5", name: "Moccasin"},
+ {hex: "#FFEFD5", name: "Papaya whip"},
+ {hex: "#FFEBCD", name: "Blanched almond"},
+ {hex: "#FAEBD7", name: "Antique white"},
+ {hex: "#FFDEAD", name: "Navajo white"},
+ {hex: "#F5DEB3", name: "Wheat"},
+ {hex: "#DAA520", name: "Golden rod"},
+ {hex: "#D2691E", name: "Chocolate"},
+ {hex: "#CD853F", name: "Peru"},
+ {hex: "#B22222", name: "Fire brick"},
+ {hex: "#A0522D", name: "Sienna"},
+ {hex: "#8B4513", name: "Saddle brown"},
+ {hex: "#A52A2A", name: "Brown"},
+ {hex: "#BC8F8F", name: "Rosy brown"},
+ {hex: "#FA8072", name: "Salmon"},
+ {hex: "#FFA07A", name: "Light salmon"},
+ {hex: "#E9967A", name: "Dark salmon"},
+ {hex: "#F4A460", name: "Sandy brown"},
+ {hex: "#FF7F50", name: "Coral"},
+ {hex: "#F08080", name: "Light coral"},
+ {hex: "#CD5C5C", name: "Indian red"},
+ {hex: "#8B0000", name: "Dark red"},
+ {hex: "#800000", name: "Maroon"},
+ {hex: "#ADFF2F", name: "Green yellow"},
+ {hex: "#9ACD32", name: "Yellow green"},
+ {hex: "#7FFF00", name: "Chartreuse"},
+ {hex: "#7CFC00", name: "Lawn green"},
+ {hex: "#32CD32", name: "Lime green"},
+ {hex: "#00FF7F", name: "Spring green"},
+ {hex: "#00FA9A", name: "Medium spring green"},
+ {hex: "#00FF00", name: "Lime"},
+ {hex: "#008000", name: "Green"},
+ {hex: "#228B22", name: "Forest green"},
+ {hex: "#006400", name: "Dark green"},
+ {hex: "#6B8E23", name: "Olive drab"},
+ {hex: "#808000", name: "Olive"},
+ {hex: "#556B2F", name: "Dark olive green"},
+ {hex: "#98FB98", name: "Pale green"},
+ {hex: "#90EE90", name: "Light green"},
+ {hex: "#3CB371", name: "Medium sea green"},
+ {hex: "#2E8B57", name: "Sea green"},
+ {hex: "#8FBC8F", name: "Dark sea green"},
+ {hex: "#5F9EA0", name: "Cadet blue"},
+ {hex: "#66CDAA", name: "Medium aqua marine"},
+ {hex: "#40E0D0", name: "Turquoise"},
+ {hex: "#48D1CC", name: "Medium turquoise"},
+ {hex: "#00CED1", name: "Dark turquoise"},
+ {hex: "#AFEEEE", name: "Pale turquoise"},
+ {hex: "#00FFFF", name: "Aqua"},
+ {hex: "#00FFFF", name: "Cyan"},
+ {hex: "#E0FFFF", name: "Light cyan"},
+ {hex: "#F5FFFA", name: "Mint cream"},
+ {hex: "#F0FFF0", name: "Honey dew"},
+ {hex: "#7FFFD4", name: "Aquamarine"},
+ {hex: "#20B2AA", name: "Light sea green"},
+ {hex: "#008B8B", name: "Dark cyan"},
+ {hex: "#008080", name: "Teal"},
+ {hex: "#2F4F4F", name: "Dark slate gray"},
+ {hex: "#778899", name: "Light slate gray"},
+ {hex: "#708090", name: "Slate gray"},
+ {hex: "#00BFFF", name: "Deep sky blue"},
+ {hex: "#1E90FF", name: "Dodger Blue"},
+ {hex: "#87CEEB", name: "Sky blue"},
+ {hex: "#87CEFA", name: "Light sky blue"},
+ {hex: "#ADD8E6", name: "Light blue"},
+ {hex: "#B0E0E6", name: "Powder blue"},
+ {hex: "#B0C4DE", name: "Light steel blue"},
+ {hex: "#4682B4", name: "Steel blue"},
+ {hex: "#6495ED", name: "Cornflower blue"},
+ {hex: "#4169E1", name: "Royal blue"},
+ {hex: "#0000FF", name: "Blue"},
+ {hex: "#0000CD", name: "Medium blue"},
+ {hex: "#191970", name: "Midnight blue"},
+ {hex: "#00008B", name: "Dark blue"},
+ {hex: "#000080", name: "Navy"},
+ {hex: "#6A5ACD", name: "Slate blue"},
+ {hex: "#483D8B", name: "Dark slate blue"},
+ {hex: "#7B68EE", name: "Medium slate blue"},
+ {hex: "#8A2BE2", name: "Blue violet"},
+ {hex: "#4B0082", name: "Indigo"},
+ {hex: "#9400D3", name: "Dark violet"},
+ {hex: "#9932CC", name: "Dark orchid"},
+ {hex: "#BA55D3", name: "Medium orchid"},
+ {hex: "#DA70D6", name: "Orchid"},
+ {hex: "#EE82EE", name: "Violet"},
+ {hex: "#9370DB", name: "Medium purple"},
+ {hex: "#800080", name: "Purple"},
+ {hex: "#663399", name: "Rebecca purple"},
+ {hex: "#C71585", name: "Medium violet red"},
+ {hex: "#DB7093", name: "PaleV violet red"},
+ {hex: "#FF1493", name: "Deep pink"},
+ {hex: "#FF69B4", name: "Hot pink"},
+ {hex: "#FFB6C1", name: "Light pink"},
+ {hex: "#FFC0CB", name: "Pink"},
+ {hex: "#DDA0DD", name: "Plum"},
+ {hex: "#D8BFD8", name: "Thistle"},
+ {hex: "#FF00FF", name: "Magenta"},
+ {hex: "#FF00FF", name: "Fuchsia"},
+ {hex: "#8B008B", name: "Dark magenta"},
+
+ {hex: "#FAF0E6", name: "Linen"},
+ {hex: "#FDF5E6", name: "Old lace"},
+ {hex: "#FFF5EE", name: "Sea shell"},
+ {hex: "#FFFFF0", name: "Ivory"},
+ {hex: "#FFFAF0", name: "Floral white"},
+ {hex: "#FFF0F5", name: "Lavender blush"},
+ {hex: "#F8F8FF", name: "Ghost white"},
+ {hex: "#F0F8FF", name: "Alice blue"},
+ {hex: "#E6E6FA", name: "Lavender"},
+ {hex: "#F5F5F5", name: "White smoke"},
+ {hex: "#DCDCDC", name: "Gainsboro"},
+];
+
+const palettes = {
+ basic: [
+ {hex: "#FF0000", name: "Red"},
+ {hex: "#FF8000", name: "Orange"},
+ {hex: "#FFFF00", name: "Yellow"},
+ {hex: "#80FF00", name: "Lime"},
+ {hex: "#00FF00", name: "Green"},
+ {hex: "#00FFFF", name: "Cyan"},
+ {hex: "#0000FF", name: "Blue"},
+ {hex: "#8000FF", name: "Purple"},
+ {hex: "#FF00FF", name: "Magenta"},
+ {hex: "#FF8080", name: "Pink"},
+ {hex: "#804000", name: "Brown"},
+ {hex: "#000000", name: "Black"},
+ {hex: "#191919", name: "%90"},
+ {hex: "#333333", name: "%80"},
+ {hex: "#4c4c4c", name: "%70"},
+ {hex: "#666666", name: "%60"},
+ {hex: "#808080", name: "%50"},
+ {hex: "#999999", name: "%40"},
+ {hex: "#b3b3b3", name: "%30"},
+ {hex: "#cccccc", name: "%20"},
+ {hex: "#e6e6e6", name: "%10"},
+ {hex: "#FFFFFF", name: "White"},
+ ...cssColors
+ ],
+ orca: [
+ {hex: "#ED1C24", name: "Coral fire"},
+ {hex: "#C41E3A", name: "Sea anemone"},
+ {hex: "#800000", name: "Deep abyss"},
+ {hex: "#B22222", name: "Lobster red"},
+ {hex: "#A0522D", name: "Sandy clay"},
+ {hex: "#8B4513", name: "Driftwood"},
+ {hex: "#D2691E", name: "Sea buckthorn"},
+ {hex: "#F26722", name: "Sunset reef"},
+ {hex: "#FF8C00", name: "Tiger coral"},
+ {hex: "#FA8173", name: "Pink coral"},
+ {hex: "#FFA07A", name: "Seashell glow"},
+ {hex: "#F4E2C1", name: "Sand"},
+ {hex: "#FFD700", name: "Golden kelp"},
+ {hex: "#F7B763", name: "Sunlit dune"},
+ {hex: "#FFAA33", name: "Amber nautilus"},
+ {hex: "#FFEB31", name: "Sea lemon"},
+ {hex: "#D4ED91", name: "Pale starfish"},
+ {hex: "#00FF7F", name: "Spring tide"},
+ {hex: "#32CD32", name: "Lime algae"},
+ {hex: "#A4C41E", name: "Sea grass"},
+ {hex: "#7CFC00", name: "Neon plankton"},
+ {hex: "#228B22", name: "Kelp forest"},
+ {hex: "#008000", name: "Emerald wave"},
+ {hex: "#345B2F", name: "Whale shadow"},
+ {hex: "#2E8B57", name: "Sea turtle"},
+ {hex: "#00C1AE", name: "Lagoon"},
+ {hex: "#20B2AA", name: "Tropical current"},
+ {hex: "#115877", name: "Midnight trench"},
+ {hex: "#008B8B", name: "Dark kelp"},
+ {hex: "#00FFFF", name: "Crystal surf"},
+ {hex: "#40E0D0", name: "Turquoise bay"},
+ {hex: "#2EBDEF", name: "Sky over reef"},
+ {hex: "#87CEEB", name: "Shallow sky"},
+ {hex: "#1E90FF", name: "Electric bel"},
+ {hex: "#4169E1", name: "Dolphin"},
+ {hex: "#0000CD", name: "Ocean depths"},
+ {hex: "#191970", name: "Whale"},
+ {hex: "#4B0082", name: "Indigo abyss"},
+ {hex: "#7841CE", name: "Sea urchin"},
+ {hex: "#9370DB", name: "Lavender coral"},
+ {hex: "#800080", name: "Violet tide"},
+ {hex: "#8B008B", name: "Deep sea orchid"},
+ {hex: "#FF00FF", name: "Neon jelly"},
+ {hex: "#ED1E79", name: "Fuchsia coral"},
+ {hex: "#FF69B4", name: "Pink jellyfish"},
+ {hex: "#FFFFFF", name: "Foam"},
+ {hex: "#D3D3D3", name: "Seashell white"},
+ {hex: "#808080", name: "Pebble gray"},
+ {hex: "#696969", name: "Storm cloud"},
+ {hex: "#000000", name: "Ink black"}
+ ],
+ ral: [
+ {hex: "#716F52", name: "1000 Green beige"},
+ {hex: "#9B8E79", name: "1001 Beige"},
+ {hex: "#D4BB87", name: "1002 Sand yellow"},
+ {hex: "#F4A460", name: "1003 Signal yellow"},
+ {hex: "#EFBF04", name: "1004 Golden yellow"},
+ {hex: "#D7A500", name: "1005 Honey yellow"},
+ {hex: "#F2D185", name: "1006 Maize yellow"},
+ {hex: "#FDD185", name: "1007 Dalmatian yellow"},
+ {hex: "#8B7D6B", name: "1011 Brown beige"},
+ {hex: "#F5DB50", name: "1012 Lemon yellow"},
+ {hex: "#F3E5AB", name: "1013 Oyster white"},
+ {hex: "#F8E4BC", name: "1014 Ivory"},
+ {hex: "#FAE6D3", name: "1015 Light ivory"},
+ {hex: "#E4B922", name: "1018 Zinc yellow"},
+ {hex: "#A19D94", name: "1019 Grey beige"},
+ {hex: "#B9975B", name: "1020 Olive yellow"},
+ {hex: "#B8860B", name: "1021 Rape yellow"},
+ {hex: "#FF8C00", name: "1023 Traffic yellow"},
+ {hex: "#CC7722", name: "1024 Ochre yellow"},
+ {hex: "#FDBA37", name: "1026 Traffic orange yellow"},
+ {hex: "#F3A55C", name: "1027 Curry"},
+ {hex: "#E87C33", name: "1028 Melon yellow"},
+ {hex: "#F2A641", name: "1032 Broom yellow"},
+ {hex: "#E09F39", name: "1033 Dahlia yellow"},
+ {hex: "#F0B76E", name: "1034 Pastel yellow"},
+ {hex: "#D1BCA0", name: "1035 Pearl beige"},
+ {hex: "#D4AF37", name: "1036 Pearl gold"},
+ {hex: "#F7C64F", name: "1037 Sun yellow"},
+ {hex: "#F28C38", name: "2000 Yellow orange"},
+ {hex: "#E55B2B", name: "2001 Deep orange"},
+ {hex: "#E34234", name: "2002 Vermilion"},
+ {hex: "#F27B33", name: "2003 Pearl orange"},
+ {hex: "#F37322", name: "2004 Pure orange"},
+ {hex: "#F75C03", name: "2005 Luminous orange"},
+ {hex: "#F46C1F", name: "2007 Luminous bright orange"},
+ {hex: "#E14423", name: "2008 Bright red orange"},
+ {hex: "#F28500", name: "2009 Traffic orange"},
+ {hex: "#F46A0A", name: "2010 Signal orange"},
+ {hex: "#E0490C", name: "2011 Deep orange"},
+ {hex: "#F46F42", name: "2012 Salmon orange"},
+ {hex: "#E6761C", name: "2013 Pearl orange"},
+ {hex: "#E8A18B", name: "2015 Pearl pink"},
+ {hex: "#B8612C", name: "2016 Copper orange"},
+ {hex: "#8B4513", name: "2017 Signal brown"},
+ {hex: "#C14A0F", name: "2018 Fir orange"},
+ {hex: "#BC2E1F", name: "2020 Signal red"},
+ {hex: "#D52713", name: "2021 Luminous red"},
+ {hex: "#9F261E", name: "2022 Carmine red"},
+ {hex: "#D53832", name: "2023 Pearl carmine red"},
+ {hex: "#C2341C", name: "2024 Pure red"},
+ {hex: "#B32D1C", name: "2025 Luminous deep red"},
+ {hex: "#A62320", name: "2027 Currant red"},
+ {hex: "#B9301E", name: "2028 Pearl ruby red"},
+ {hex: "#A91D2E", name: "3000 Fire red"},
+ {hex: "#A1262A", name: "3001 Signal red"},
+ {hex: "#8F2626", name: "3002 Carmine red"},
+ {hex: "#9B2428", name: "3003 Ruby red"},
+ {hex: "#872241", name: "3004 Purple red"},
+ {hex: "#722F37", name: "3005 Wine red"},
+ {hex: "#3D1818", name: "3007 Black red"},
+ {hex: "#8A3324", name: "3009 Oxide red"},
+ {hex: "#A22C29", name: "3011 Brown red"},
+ {hex: "#B22D20", name: "3012 Pine red"},
+ {hex: "#D23741", name: "3013 Tomato red"},
+ {hex: "#A8282E", name: "3014 Antique pink"},
+ {hex: "#C8283C", name: "3015 Light pink"},
+ {hex: "#D23F39", name: "3016 Coral red"},
+ {hex: "#D1425E", name: "3017 Rose"},
+ {hex: "#C4232F", name: "3018 Strawberry red"},
+ {hex: "#C8102E", name: "3020 Traffic red"},
+ {hex: "#E36A5A", name: "3022 Salmon pink"},
+ {hex: "#E63E62", name: "3024 Luminous rose"},
+ {hex: "#E02A27", name: "3026 Luminous bright red"},
+ {hex: "#B8315F", name: "3027 Raspberry red"},
+ {hex: "#C61C23", name: "3028 Pure red"},
+ {hex: "#AD2932", name: "3031 Orient red"},
+ {hex: "#D32F2F", name: "3032 Pearl ruby"},
+ {hex: "#D13C6F", name: "3033 Pearl pink"},
+ {hex: "#7B2B5F", name: "4001 Red purple"},
+ {hex: "#912E8C", name: "4002 Red violet"},
+ {hex: "#9C366F", name: "4003 Heather violet"},
+ {hex: "#6A1F49", name: "4004 Bordeaux violet"},
+ {hex: "#4B2663", name: "4005 Blue violet"},
+ {hex: "#5C2D3C", name: "4006 Mahogany"},
+ {hex: "#5E3559", name: "4007 Grey purple"},
+ {hex: "#9C3568", name: "4008 Signal violet"},
+ {hex: "#5E6E3A", name: "4009 Fir green"},
+ {hex: "#5B5B8A", name: "4010 Sabine grey"},
+ {hex: "#8F3A70", name: "4011 Pearl violet"},
+ {hex: "#5E3252", name: "4012 Pearl blackberry"},
+ {hex: "#1B4F72", name: "5001 Green blue"},
+ {hex: "#18669E", name: "5002 Ultramarine blue"},
+ {hex: "#0F4C8A", name: "5003 Sapphire blue"},
+ {hex: "#0D324A", name: "5004 Black blue"},
+ {hex: "#1B5583", name: "5005 Signal blue"},
+ {hex: "#2C5F9D", name: "5007 Brilliant blue"},
+ {hex: "#3B5AA9", name: "5008 Grey blue"},
+ {hex: "#0077A3", name: "5009 Azure blue"},
+ {hex: "#0A558C", name: "5010 Gentian blue"},
+ {hex: "#2B547E", name: "5011 Steel blue"},
+ {hex: "#0066A1", name: "5012 Light blue"},
+ {hex: "#124780", name: "5013 Cobalt blue"},
+ {hex: "#1F4E79", name: "5014 Pigeon blue"},
+ {hex: "#0384A7", name: "5015 Sky blue"},
+ {hex: "#006A9E", name: "5017 Traffic blue"},
+ {hex: "#005F87", name: "5018 Turquoise blue"},
+ {hex: "#5A3D5B", name: "5019 Capsanthin violet"},
+ {hex: "#04749F", name: "5020 Ocean blue"},
+ {hex: "#009AAA", name: "5021 Water blue"},
+ {hex: "#1A3D5F", name: "5022 Night blue"},
+ {hex: "#047AA6", name: "5023 Distant blue"},
+ {hex: "#5B9BB8", name: "5024 Pastel blue"},
+ {hex: "#3C6A98", name: "5025 Pearl gentian blue"},
+ {hex: "#1C3F5F", name: "5026 Pearl midnight blue"},
+ {hex: "#36673A", name: "6000 Patina green"},
+ {hex: "#0E5C34", name: "6001 Emerald green"},
+ {hex: "#437034", name: "6002 Leaf green"},
+ {hex: "#3F3F2A", name: "6003 Olive green"},
+ {hex: "#2B4E52", name: "6004 Blue green"},
+ {hex: "#3B5F3F", name: "6005 Moss green"},
+ {hex: "#4A563C", name: "6006 Grey olive"},
+ {hex: "#2B4638", name: "6007 Pine green"},
+ {hex: "#4A4139", name: "6008 Pine brown"},
+ {hex: "#3B3A2E", name: "6009 Fir green"},
+ {hex: "#3E7A5F", name: "6010 Grass green"},
+ {hex: "#5E716A", name: "6011 Reseda green"},
+ {hex: "#3A4E48", name: "6012 Brown green"},
+ {hex: "#6B8E23", name: "6013 Reed green"},
+ {hex: "#6B8E23", name: "6014 Yellow green"},
+ {hex: "#1E3E2F", name: "6015 Black green"},
+ {hex: "#1E4D4B", name: "6016 Turquoise green"},
+ {hex: "#4C7C47", name: "6017 May green"},
+ {hex: "#9CBF60", name: "6018 Yellow green"},
+ {hex: "#2E5A3A", name: "6019 Pine green"},
+ {hex: "#2E5A3A", name: "6020 Chrome oxide green"},
+ {hex: "#9DC0A5", name: "6021 Pale green"},
+ {hex: "#4A563C", name: "6022 Brown green"},
+ {hex: "#009E60", name: "6024 Traffic green"},
+ {hex: "#3F7044", name: "6025 Fern green"},
+ {hex: "#4F7942", name: "6026 Opal green"},
+ {hex: "#3B5F3F", name: "6027 Pine green"},
+ {hex: "#3B5F3F", name: "6028 Pine green"},
+ {hex: "#00A550", name: "6029 Mint green"},
+ {hex: "#3E5A40", name: "6031 Bronze green"},
+ {hex: "#3D7E5A", name: "6032 Pearl green"},
+ {hex: "#007D6E", name: "6033 Sax turquoise"},
+ {hex: "#3D7E5A", name: "6034 Pearl turquoise"},
+ {hex: "#3D7E5A", name: "6035 Pearl green"},
+ {hex: "#3D7E5A", name: "6036 Pearl jade"},
+ {hex: "#00A550", name: "6037 Pure green"},
+ {hex: "#00A550", name: "6038 Luminous green"},
+ {hex: "#00A550", name: "6039 Mint green"},
+ {hex: "#7D7D7D", name: "7000 Squirrel grey"},
+ {hex: "#A8A9AD", name: "7001 Silver grey"},
+ {hex: "#6F7368", name: "7002 Olivestone"},
+ {hex: "#8F9080", name: "7003 Moss grey"},
+ {hex: "#8E9291", name: "7004 Signal grey"},
+ {hex: "#8B8788", name: "7005 Mouse grey"},
+ {hex: "#9A8373", name: "7006 Beige grey"},
+ {hex: "#828C6A", name: "7008 Khaki grey"},
+ {hex: "#6F7368", name: "7009 Green grey"},
+ {hex: "#5F6563", name: "7010 Tarpaulin grey"},
+ {hex: "#4A5656", name: "7011 Iron grey"},
+ {hex: "#4D5656", name: "7012 Basalt grey"},
+ {hex: "#635147", name: "7013 Brown grey"},
+ {hex: "#6B6B83", name: "7015 Slate grey"},
+ {hex: "#32373D", name: "7016 Anthracite grey"},
+ {hex: "#8B8B83", name: "7021 Light grey"},
+ {hex: "#716347", name: "7022 Umber grey"},
+ {hex: "#76787A", name: "7023 Concrete grey"},
+ {hex: "#5E6565", name: "7024 Graphite grey"},
+ {hex: "#5E6565", name: "7026 Granite grey"},
+ {hex: "#8F9494", name: "7030 Stone grey"},
+ {hex: "#4A5656", name: "7031 Iron grey"},
+ {hex: "#B2BFC0", name: "7032 Pebble grey"},
+ {hex: "#9B9B9B", name: "7033 Cement grey"},
+ {hex: "#8F9D9B", name: "7034 Yellow grey"},
+ {hex: "#CBD0CC", name: "7035 Light grey"},
+ {hex: "#6D7A80", name: "7036 Platinum grey"},
+ {hex: "#8A9191", name: "7037 Dusty grey"},
+ {hex: "#7E8181", name: "7038 Agate grey"},
+ {hex: "#6E7D7E", name: "7039 Quartz grey"},
+ {hex: "#8A9191", name: "7040 Window grey"},
+ {hex: "#8A9191", name: "7042 Traffic grey A"},
+ {hex: "#6E7D7E", name: "7043 Traffic grey B"},
+ {hex: "#9B9B9B", name: "7044 Silk grey"},
+ {hex: "#A1A7B0", name: "7045 Telegrey 1"},
+ {hex: "#7E848C", name: "7046 Telegrey 2"},
+ {hex: "#7E848C", name: "7047 Telegrey 4"},
+ {hex: "#6D7A80", name: "7048 Pearl mouse grey"},
+ {hex: "#786D5F", name: "8000 Green brown"},
+ {hex: "#8B7355", name: "8001 Ochre brown"},
+ {hex: "#8B6F47", name: "8003 Clay brown"},
+ {hex: "#8B6F47", name: "8004 Copper brown"},
+ {hex: "#5C4033", name: "8007 Chocolate brown"},
+ {hex: "#6E5C4A", name: "8008 Olive brown"},
+ {hex: "#8B4513", name: "8011 Nut brown"},
+ {hex: "#8B4513", name: "8012 Red brown"},
+ {hex: "#5C3317", name: "8014 Sepia brown"},
+ {hex: "#854636", name: "8015 Chestnut brown"},
+ {hex: "#8B4513", name: "8016 Mahogany brown"},
+ {hex: "#5C3317", name: "8017 Chocolate brown"},
+ {hex: "#786D5F", name: "8019 Grey brown"},
+ {hex: "#854636", name: "8022 Chestnut brown"},
+ {hex: "#8B6F47", name: "8023 Pearl copper"},
+ {hex: "#8B7355", name: "8024 Beige brown"},
+ {hex: "#8B6F47", name: "8025 Pearl mocha brown"},
+ {hex: "#8B6F47", name: "8027 Clay brown"},
+ {hex: "#8B6F47", name: "8028 Earth brown"},
+ {hex: "#8B6F47", name: "8029 Pearl brown"},
+ {hex: "#FAF0E6", name: "9001 Cream"},
+ {hex: "#EDECE6", name: "9002 Grey white"},
+ {hex: "#FFFFFF", name: "9003 Signal white"},
+ {hex: "#000000", name: "9004 Signal black"},
+ {hex: "#1D1D1D", name: "9005 Jet black"},
+ {hex: "#C0C0C0", name: "9006 White aluminium"},
+ {hex: "#8C7853", name: "9007 Grey aluminium"},
+ {hex: "#FFFFFF", name: "9010 Pure white"},
+ {hex: "#1D1D1D", name: "9011 Graphite black"},
+ {hex: "#FFFFFF", name: "9016 Traffic white"},
+ {hex: "#000000", name: "9017 Traffic black"},
+ {hex: "#FAF0E6", name: "9018 Papyrus white"},
+ {hex: "#B2BFC0", name: "9022 Pearl light grey"}
+ ],
+ gradient: [
+ {grad: "#FFF47B-#CD9800", name: "Metal: Gold"},
+ {grad: "#373737-#F5F4F4", name: "Metal: Silver"},
+ {grad: "#C39292-#C73725", name: "Metal: Copper"},
+ {grad: "#DED699-#C99620", name: "Metal: Brass"},
+ {grad: "#6E4316-#B0742E", name: "Metal: Bronze"},
+ // More than two colors: only listed when the page enables multi-color gradients.
+ {grad: "#FF0000-#FFFF00-#00FF00-#00FFFF-#0000FF-#FF00FF-#FF0000", name: "Nature: Rainbow"},
+
+ {grad: "#D8FEE7-#FFF5BD", name: "Nature: Pearl"},
+ {grad: "#1E5AA8-#3D8BD9-#7DB9F0-#C9E6FF", name: "Nature: Clear Sky"},
+ {grad: "#2B1B5A-#7A2E7E-#D9466E-#F57C3A-#FFC857", name: "Nature: Sunset"},
+ {grad: "#3B2416-#5A3A24-#45291A-#6B4630-#3B2416", name: "Wood: Dark"},
+ {grad: "#8B5A2B-#A8733F-#946235-#B5844F-#8B5A2B", name: "Wood: Medium"},
+ {grad: "#D9B98C-#E8CFA6-#D3AE7C-#EBD5B0-#D9B98C", name: "Wood: Light"},
+ ]
+};
+
+
+window.ColorPickerPalettes = palettes;
+})();
diff --git a/resources/web/dialog/ColorPickerDialog/style.css b/resources/web/dialog/ColorPickerDialog/style.css
new file mode 100644
index 0000000000..3b5543452f
--- /dev/null
+++ b/resources/web/dialog/ColorPickerDialog/style.css
@@ -0,0 +1,534 @@
+:root {
+ --thumb-size : 20px;
+ --field-height: 28px;
+ --number-width: 52px;
+ --preview-size: 52px;
+ --checkerboard: conic-gradient(var(--checker-light) 25%, var(--checker-dark) 0 50%, var(--checker-light) 0 75%, var(--checker-dark) 0);
+}
+
+* {
+ padding: 0;
+ border: 0;
+ margin: 0;
+ user-select: none;
+ -webkit-user-select: none;
+ box-sizing: border-box;
+ min-width: 0;
+ min-height: 0;
+}
+
+html, body {
+ /* Report the full content width even before the native host expands its viewport.
+ WebKit's fit-content can clip the sidebar and retain the expanded width on close. */
+ width: max-content;
+ overflow: hidden;
+}
+
+body {
+ font-family: var(--orca-font, system-ui, sans-serif);
+ background: var(--bg-color);
+ color: var(--fg-color-text);
+ padding: 10px;
+}
+
+#selectionNotice {
+ width: 0;
+ min-width: 100%;
+ margin-bottom: 8px;
+ color: var(--fg-color-label);
+}
+
+.main-wrapper {
+ display: flex;
+ gap: 10px;
+ height: 360px;
+}
+
+/* ---------- Palette sidebar ---------- */
+.left-panel {
+ flex: 0 0 160px;
+ width: 160px;
+ display: none;
+ flex-direction: column;
+}
+.left-panel.open {
+ display: flex;
+ padding-right: 0px;
+ border-right: 1px solid var(--border-color);
+}
+
+#paletteCombo {
+ font-size: 13px;
+ width: 100%;
+}
+
+/* Combo box or filter box, with the search / close button on the right. */
+.palette-toolbar {
+ display: flex;
+ align-items: center;
+ gap: 0;
+ height: 25px;
+ margin-right:5px;
+}
+.palette-toolbar > .palette-select { flex: 1 }
+.palette-filter {
+ flex: 1;
+ height: 25px;
+ padding: 0 6px;
+ font-size: 13px;
+ font-family: inherit;
+ color: var(--fg-color-text);
+ background: var(--bg-color);
+ border: 1px solid var(--main-color);
+ outline: none;
+ -webkit-user-select: text;
+ user-select: text;
+}
+.palette-filter::-webkit-search-cancel-button { -webkit-appearance: none }
+.palette-filter:focus-visible{
+ background-color: var(--focus-bg-box);
+}
+
+.palette-search-button {
+ display: flex;
+ flex: none;
+ align-items: center;
+ justify-content: center;
+ width: 25px;
+ height: 25px;
+ background-color: var(--button-bg-normal);
+ border: 1px solid var(--border-color);
+ border-left: 0;
+}
+.palette-search-button:hover {
+ background-color: var(--button-bg-hover);
+}
+
+.palette-search-button .icon-search {
+ --icon-url: var(--icon-search);
+}
+.palette-search-button .icon-close {
+ --icon-url: url('data:image/svg+xml;utf8, ');;
+}
+.palette-search-button .icon-close,
+.palette-search-button[aria-pressed="true"] .icon-search { display: none }
+.palette-search-button[aria-pressed="true"] .icon-close { display: block }
+.palette-empty {
+ flex: 1;
+ padding: 8px 2px;
+ font-size: 13px;
+ color: var(--fg-color-label);
+}
+
+.palette {
+ flex: 1;
+ overflow-y: auto;
+ padding-right: 1px;
+ margin-bottom: 5px;
+}
+
+.color-item {
+ display: flex;
+ align-items: center;
+ padding: 1px 2px 1px 0;
+ border:1px solid transparent;
+ font-size: 13px;
+ color: var(--fg-color-text);
+}
+
+.color-item:hover {
+ border-color: var(--main-color);
+}
+
+.color-swatch {
+ flex: 0 0 18px;
+ height: 18px;
+ border-radius: 3px;
+ margin-right: 5px;
+ margin: 0 5px 0 1px;
+ border: 1px solid var(--border-color);
+}
+
+.color-name {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+/* ---------- Picker ---------- */
+.right-panel {
+ flex: 0 0 330px;
+ /* WebKit uses width, rather than flex-basis, for the parent's intrinsic width. */
+ width: 330px;
+ display: flex;
+ flex-direction: column;
+}
+
+.spectrum-row {
+ --spectrum-height: 150px;
+ display: flex;
+ gap: 8px;
+ height: var(--spectrum-height);
+ margin-bottom: 8px;
+}
+
+.spectrum-container {
+ position: relative;
+ flex: 1;
+ border-radius: 7px;
+ overflow: hidden;
+}
+
+#spectrum {
+ position: absolute; /* Absolute so the canvas's pixel size never feeds back into the flex layout */
+ inset: 0;
+ width: 100%;
+ height: 100%;
+ touch-action: none;
+}
+
+#pickerEditors:disabled #spectrum { pointer-events: none }
+
+#colorIndicator {
+ position: absolute;
+ width: var(--thumb-size);
+ height: var(--thumb-size);
+ border: 2px solid var(--color-marker-outline);
+ box-shadow: 0 0 0 2px var(--color-marker-shadow);
+ border-radius: 50%;
+ pointer-events: none;
+ transform: translate(-50%, -50%);
+ z-index: 10;
+}
+
+.saturation-slider {
+ position: relative;
+ flex: 0 0 var(--thumb-size);
+}
+
+#satSlider {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ flex: none;
+ width: var(--spectrum-height);
+ transform: translate(-50%, -50%) rotate(-90deg);
+}
+
+.valueSlider {
+ height: 14px;
+ border-radius: 8px;
+ outline: none;
+ -webkit-appearance: none;
+ background: transparent;
+}
+
+.valueSlider::-webkit-slider-runnable-track {
+ height: 14px;
+ border-radius: 8px;
+ background: var(--track-gradient);
+ border: 1px solid var(--border-color);
+}
+
+.valueSlider::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ width: var(--thumb-size);
+ height: var(--thumb-size);
+ border-radius: 50%;
+ border: 2px solid var(--color-marker-outline);
+ box-shadow: 0 0 0 2px var(--color-marker-shadow);
+ background: var(--thumb-color);
+ margin-top: -4px;
+}
+
+/* Left column: mode switch, hex + alpha, gradient endpoints. Right: H S L and R G B columns. */
+.editor-grid {
+ --editor-grid-gap: 5px;
+ display: flex;
+ gap: var(--editor-grid-gap);
+ margin-bottom: 10px;
+}
+
+.editor-column:first-of-type {flex:1}
+.editor-column {
+ display: grid;
+ grid-template-rows: repeat(3, var(--field-height));
+ gap: var(--editor-grid-gap);
+}
+
+.hex-row {
+ display: flex;
+ gap: var(--editor-grid-gap);
+}
+
+.switch-check {
+ display: none !important;
+}
+.switch-label {
+ font-size: 13px;
+ padding: 2px 10px;
+ text-align: center;
+ line-height: 18px;
+ z-index: 1;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+.switch-slider {
+ position: relative;
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ border-radius: 20px;
+ background: var(--bg-color-alt);
+ border: 2px solid var(--bg-color-alt);
+ height:26px;
+}
+.switch-slider:before {
+ content: '';
+ position: absolute;
+ width: 50%;
+ height: 100%;
+ left: 0%;
+ border-radius:20px;
+ background: var(--main-color);
+ transition: all 0.2s;
+}
+.switch-check:checked + .switch-slider:before {
+ left: 50%;
+}
+.switch-check:checked + .switch-slider div:first-child,
+.switch-check + .switch-slider div:last-child{
+ color: var(--fg-color-label);
+ transition: all 0.2s;
+}
+.switch-check:checked + .switch-slider div:last-child,
+.switch-check + .switch-slider div:first-child{
+ color: var(--button-fg-light);
+ transition: all 0.2s;
+}
+
+/* H S L / R G B / Hex / Alpha input boxes */
+.inline-field {
+ display: flex;
+ align-items: center;
+ padding-left: 5px;
+ border: 1px solid var(--border-color);
+ background: var(--bg-color);
+}
+.inline-field > label {
+ width: 8px;
+ font-size: 12px;
+ color: var(--fg-color-text);
+ opacity: 0.6;
+}
+.inline-field > input {
+ flex: 1;
+ border: 0;
+ background: transparent;
+ padding: 0 2px 0 5px;
+ color: var(--fg-color-text);
+ font-size: 15px;
+ line-height: var(--field-height);
+ appearance: textfield; /* No spinner buttons; Up/Down keys and the wheel still step by 1. */
+}
+.inline-field:focus-within {
+ border-color: var(--main-color);
+ background: var(--focus-bg-box);
+}
+.inline-field:has(input:invalid) {
+ border-color: var(--control-invalid);
+}
+.inline-field > input:focus {
+ outline: none;
+}
+
+.inline-field > input[type="number"]::-webkit-inner-spin-button,
+.inline-field > input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none }
+
+.value-field { width: var(--number-width)}
+.field-hex { flex: 1 }
+#alphaControls {
+ width: calc(var(--number-width) + 2px)
+}
+#alphaControls > input {
+ padding-left: 7px;
+}
+
+/* Third row holds the gradient bar and the opacity slider in the same cell. The slider only
+ shows while the opacity field or the slider itself is in use, and hides the gradient bar. */
+.third-row { position: relative }
+.third-row > * {
+ position: absolute;
+ inset: 0;
+ height: 100%;
+ align-items: center;
+}
+
+.third-row.opacity-open > #opacitySliderBar { display: flex }
+.third-row.opacity-open > #gradientCtrlBar { display: none }
+
+#opacitySlider { width: 100%; }
+#opacitySlider::-webkit-slider-runnable-track {
+ background: var(--track-gradient), var(--checkerboard); /* Transparent end shows the checkerboard through the color. */
+ background-size: auto, 8px 8px;
+}
+
+/* Gradient colors: thumbs are evenly spaced and fixed; a click anywhere selects the nearest. */
+#gradientCtrlBar {
+ display: flex;
+}
+.gradient-stops {
+ position: relative;
+ flex: 1;
+ height: 100%;
+}
+/* Kept 10px away from the gradient bar so a click near its right end can't hit − or +. */
+.gradient-step-buttons {
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ margin-left: 10px;
+ margin-right: 4px;
+}
+.gradient-step-button {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: var(--thumb-size);
+ height: var(--thumb-size);
+ border-radius: 4px;
+ background: var(--button-bg-normal);
+ color: var(--icon-color);
+}
+.gradient-step-button svg { display: block; flex: none }
+.gradient-step-button:hover:not([aria-disabled="true"]) { background: var(--button-bg-hover) }
+.gradient-step-button[aria-disabled="true"] { opacity: 0.4; cursor: default }
+.gradient-track {
+ position: absolute;
+ inset: 0;
+ top: 50%;
+ height: var(--thumb-size);
+ transform: translateY(-50%);
+ border-radius: 4px;
+ border: 1px solid var(--border-color);
+ background-image: var(--swatch-color, linear-gradient(transparent, transparent)), var(--checkerboard);
+ background-size: auto, 8px 8px;
+}
+.gradient-thumb {
+ position: absolute;
+ top: 50%;
+ width: 10px;
+ height: 10px;
+ border-radius: 1px;
+ border: 1px solid var(--color-marker-outline);
+ box-shadow: 0 0 0 1px var(--color-marker-shadow);
+ background: var(--thumb-color);
+ transform: translate(-50%, -50%);
+}
+/* Thumb i of n sits at 10px + (100% - 20px) * i / (n - 1), set inline as --stop. */
+.gradient-thumb { left: calc(10px + (100% - 20px) * var(--stop, 0)) }
+.gradient-thumb[aria-pressed="true"] {
+ width: var(--thumb-size);
+ height: var(--thumb-size);
+ border: 2px solid var(--color-marker-outline);
+ box-shadow: 0 0 0 2px var(--color-marker-shadow);
+ border-radius: 4px;
+}
+
+.gradient-thumb:hover {
+ box-shadow: 0 0 0 3px var(--color-marker-shadow);
+}
+
+/* ---------- Original / current / favorites ---------- */
+.bottom-container {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ height: var(--preview-size);
+}
+
+.color-preview {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: var(--preview-size);
+ height: var(--preview-size);
+ border-radius: 4px;
+ border: 1px solid var(--border-color);
+}
+
+.color-preview svg {
+ display: none;
+ pointer-events: none;
+}
+
+.color-preview:hover svg {
+ display: block;
+}
+
+.saved-grid {
+ display: grid;
+ grid-template-columns: repeat(8, minmax(0, 24px));
+ grid-template-rows: repeat(2, minmax(0, 24px));
+ gap: 4px;
+}
+
+.saved-swatch {
+ position: relative;
+ width: 24px;
+ height: 24px;
+ border-radius: 4px;
+ border: 1px solid var(--border-color);
+ cursor: pointer;
+}
+
+.saved-swatch.empty {
+ background: var(--bg-color);
+ cursor: default;
+}
+
+/* Each layer is separate so transparent RGBA shows the checkerboard beneath it. */
+.color-swatch, .saved-swatch, .color-preview {
+ background-image: var(--swatch-color, linear-gradient(transparent, transparent)), var(--checkerboard);
+ background-size: auto, 12px 12px;
+}
+.color-item { width: 100%; background: transparent; text-align: left; font-family: inherit; }
+
+/* ---------- Actions ---------- */
+
+.dialog-actions {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ padding-top: 12px;
+}
+.dialog-actions button { margin: 0 }
+#confirmBtn[disabled] { opacity: 0.5 }
+.stretch-spacer { flex: 1 }
+
+.icon-button {
+ width: 32px;
+ height: 32px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 4px;
+ background: var(--button-bg-normal);
+ color: var(--fg-color-text);
+}
+.icon-button:hover {
+ background: var(--button-bg-hover);
+}
+.icon-button[aria-expanded="true"] {
+ background: var(--main-color);
+ color: var(--button-fg-light);
+}
+.icon-button[aria-expanded="true"]:hover {
+ background: var(--main-color-hover);
+}
+
+.hidden { display: none !important }
+.invisible { visibility: hidden }
+
+.color-item:focus-visible, .saved-swatch:focus-visible,
+select:focus-visible, button:focus-visible { outline: 2px solid var(--main-color); outline-offset: -1px; }
diff --git a/resources/web/dialog/ExportPresetDialog/index.html b/resources/web/dialog/ExportPresetDialog/index.html
index e93af3af28..70f7fd19b6 100644
--- a/resources/web/dialog/ExportPresetDialog/index.html
+++ b/resources/web/dialog/ExportPresetDialog/index.html
@@ -10,7 +10,7 @@
-
+
@@ -23,14 +23,14 @@
@@ -38,14 +38,14 @@
@@ -53,22 +53,22 @@
-
Export to OrcaCloud
-
Export to folder
-
Close
+
Export to OrcaCloud
+
Export to folder
+
Close
@@ -32,8 +32,10 @@
-
+ placeholder="Search plugins" autocomplete="off" spellcheck="false" aria-label="Search plugins"
+ data-i18n-placeholder="search_plugins" data-i18n-aria-label="search_plugins" />
+
@@ -41,27 +43,28 @@
Aa
+ aria-pressed="false" title="Match case" data-i18n-title="match_case">Aa
ab
+ aria-pressed="false" title="Match whole word" data-i18n-title="match_whole_word">ab
-
+
Refresh
Install plugin
@@ -69,15 +72,15 @@
- Activate
+ Activate
Name
+ title="Sort by name" data-i18n-title="sort_by_name" data-i18n="name">Name
Plugin Version
+ title="Sort by version" data-i18n-title="sort_by_version" data-i18n="plugin_version">Plugin Version
Source
+ title="Sort by source" data-i18n-title="sort_by_source" data-i18n="source">Source
Status
+ title="Sort by status" data-i18n-title="sort_by_status" data-i18n="status">Status
@@ -85,20 +88,21 @@
+ aria-label="Resize the plugin list" title="Drag to resize; double-click to reset"
+ data-i18n-aria-label="resize_list" data-i18n-title="resize_hint">
-
+
Plugin Info
+ aria-selected="true" aria-controls="pluginInfoPanel" data-tab="plugin-info" data-i18n="tab_info">Plugin Info
Description
+ aria-selected="false" aria-controls="descriptionPanel" data-tab="description" data-i18n="description">Description
Config
+ aria-selected="false" aria-controls="configPanel" data-tab="config" data-i18n="tab_config">Config
Changelog
+ aria-selected="false" aria-controls="changelogPanel" data-tab="changelog" data-i18n="tab_changelog">Changelog
Diagnostics
+ aria-selected="false" aria-controls="diagnosticsPanel" data-tab="diagnostics" data-i18n="tab_diagnostics">Diagnostics
@@ -110,31 +114,32 @@
-
Installed Version
+
Installed Version
-
-
Latest Version
+
Latest Version
-
+ aria-label="Update available" title="Update available"
+ data-i18n-aria-label="update_available" data-i18n-title="update_available">
Update
+ title="Update to the latest version" data-i18n-title="update_title" data-i18n="update">Update
@@ -143,26 +148,27 @@
- Select a plugin to configure its capabilities
+ Select a plugin to configure its capabilities
+ aria-label="Configurable capabilities" data-i18n-aria-label="configurable_capabilities">
+ autocomplete="off" autocapitalize="off" aria-label="Capability configuration (JSON)"
+ data-i18n-aria-label="config_json_label">
-
@@ -170,10 +176,11 @@
+ title="Discard the settings saved for this capability and restore the plugin's defaults"
+ data-i18n-title="restore_title" data-i18n="restore_defaults">
Restore defaults
- Save
+ Save
@@ -182,22 +189,22 @@
+How it works Each row controls one profile in this local bundle. A switch adds or removes its source file; Delete removes the demo record and Restore returns it disabled. Every action reloads this bundle across filament, process, and machine. Local bundles lists every bundle id that orca.host.preset.bundles.list_ids() reports; Reload calls orca.host.preset.bundles.reload_local() for that id.
+
+Local bundles
+
+Close
+
+
diff --git a/resources/web/dialog/ExportPresetDialog/index.js b/resources/web/dialog/ExportPresetDialog/index.js
index e5c172e351..f380650a36 100644
--- a/resources/web/dialog/ExportPresetDialog/index.js
+++ b/resources/web/dialog/ExportPresetDialog/index.js
@@ -12,8 +12,7 @@ var g_search = {
function OnInit()
{
- if (typeof TranslatePage === "function")
- TranslatePage();
+ TranslatePage();
InstallInputSafeKeydown();
BindSearchInputs();
diff --git a/resources/web/dialog/PluginsConfigDialog/index.html b/resources/web/dialog/PluginsConfigDialog/index.html
index 6ce4d29dcc..e48eeb63dc 100644
--- a/resources/web/dialog/PluginsConfigDialog/index.html
+++ b/resources/web/dialog/PluginsConfigDialog/index.html
@@ -16,29 +16,31 @@
+ aria-label="Capabilities used by this preset" data-i18n-aria-label="capabilities_label">
diff --git a/resources/web/dialog/TerminalDialog/index.js b/resources/web/dialog/TerminalDialog/index.js
index c4e09bcb64..f5e6abb5ef 100644
--- a/resources/web/dialog/TerminalDialog/index.js
+++ b/resources/web/dialog/TerminalDialog/index.js
@@ -36,8 +36,7 @@ function WatchXtermTheme() {
}
function OnInit() {
- if (typeof TranslatePage === "function")
- TranslatePage();
+ TranslatePage();
term = new Terminal({
cursorBlink: true,
@@ -77,7 +76,7 @@ function OnInit() {
onRun();
});
- term.writeln("Plugin terminal ready.");
+ term.writeln(T("ready", "Plugin terminal ready."));
}
function onRun() {
@@ -122,7 +121,7 @@ function HandleStudio(value) {
case "process_done":
setRunning(false);
- term.writeln("\x1b[90mProcess exited with code: " + payload.exit_code + "\x1b[0m");
+ term.writeln("\x1b[90m" + T("exit_code", "Process exited with code: %s", payload.exit_code) + "\x1b[0m");
break;
case "process_error":
diff --git a/resources/web/dialog/css/theme.css b/resources/web/dialog/css/theme.css
index 00680bf0b9..8c4be59b79 100644
--- a/resources/web/dialog/css/theme.css
+++ b/resources/web/dialog/css/theme.css
@@ -55,6 +55,13 @@
/* Speed dial icon tile treatment */
--speed-tile-bg: #efefef;
--speed-tile-border: #d8d8d8;
+
+ /* Transparency and control markers are UI surfaces, never color data. */
+ --checker-light: #eeeeee;
+ --checker-dark: #aaaaaa;
+ --color-marker-outline: #ffffff;
+ --color-marker-shadow: rgba(0, 0, 0, 0.7);
+ --control-invalid: var(--plugin-status-danger);
}
:root[data-orca-theme="dark"] {
@@ -93,6 +100,8 @@
/* Speed dial icon tile treatment */
--speed-tile-bg: #34343b;
--speed-tile-border: #50505a;
+ --checker-light: #68686f;
+ --checker-dark: #414148;
}
/* Re-theme the shared common.css chrome through variables (replaces dark.css's
diff --git a/resources/web/flush/WipingDialog.html b/resources/web/flush/WipingDialog.html
index 85750866ab..94720e5334 100644
--- a/resources/web/flush/WipingDialog.html
+++ b/resources/web/flush/WipingDialog.html
@@ -2,6 +2,7 @@